ZGlmZiAtLWdpdCBhL1NXSUcvQU5OT1VOQ0UgYi9TV0lHL0FOTk9VTkNFCmluZGV4IGRmOTA2OTYuLmM1MTRiNGIgMTAwNjQ0Ci0tLSBhL1NXSUcvQU5OT1VOQ0UKKysrIGIvU1dJRy9BTk5PVU5DRQpAQCAtMSwzMSArMSwzMiBAQAogCi0qKiogQU5OT1VOQ0UgOiBTV0lHMS4zIChBbHBoYSA0KSAqKioKKyoqKiBBTk5PVU5DRTogU1dJRyAxLjMuNiAqKioKIAotU2VwdGVtYmVyIDQsIDIwMDAKK0p1bHkgOSwgMjAwMQogCiBPdmVydmlldwogLS0tLS0tLS0KKwogV2UncmUgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgbmV4dCBpbnN0YWxsbWVudCBvZiB0aGUgU1dJRzEuMwotcmVkZXZlbG9wbWVudCBlZmZvcnQuICBUaGlzIHJlbGVhc2UgcmVwcmVzZW50cyBhIHJlYXNvbmFibHkgc3RhYmxlCi1zbmFwc2hvdCBvZiB0aGUgQ1ZTIHJlcG9zaXRvcnkgdGhhdCBoYXMgdW5kZXJnb25lIGV4dGVuc2l2ZSB0ZXN0aW5nCi1hbmQgZGVidWdnaW5nLiAgSG93ZXZlciwgdGhpcyByZWxlYXNlIGFsc28gcmVwcmVzZW50cyB3b3JrIGluIHByb2dyZXNzCi1zbyB0aGVyZSBtYXkgYmUgb2JzY3VyZSBidWdzIGFuZCBwcm9ibGVtcyB0aGF0IHdlIGhhdmVuJ3QgZm91bmQgeWV0LgotUGxlYXNlIHNlbmQgdXMgeW91ciBmZWVkYmFjay4KK3JlZGV2ZWxvcG1lbnQgZWZmb3J0LiAgVGhpcyByZWxlYXNlIHJlcHJlc2VudHMgYSBuZXcgc3RhYmxlIHJlbGVhc2Ugb2YKK1NXSUcsIGFpbWluZyB0byByZXBsYWNlIHZlcnNpb25zIDEuMXA1IGFuZCAxLjEtODgzLiAgSXQgaGFzIGJlZW4KK2Rlcml2ZWQgZnJvbSB0aGUgcmVhc29uYWJseSBzdGFibGUgcmVsZWFzZSAxLjNhNTsgbWFueSBidWdzIGhhdmUgYmVlbgorZml4ZWQgc2luY2UsIHRoZSBKYXZhIG1vZHVsZSBoYXMgYmVlbiBicm91Z2h0IGJhY2sgaW50byBhY3Rpb24sIGFuZAordGhlIEd1aWxlIG1vZHVsZSBoYXMgYmVlbiBpbXByb3ZlZCBhIGxvdC4KIAogQXZhaWxhYmlsaXR5OgogLS0tLS0tLS0tLS0tLQogVGhlIHJlbGVhc2UgaXMgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBvbiBTb3VyY2Vmb3JnZSBhdAogCi0gICAgIGh0dHA6Ly9kb3dubG9hZC5zb3VyY2Vmb3JnZS5uZXQvc3dpZy9zd2lnMS4zYTQudGFyLmd6CisgICAgIGh0dHA6Ly9kb3dubG9hZC5zb3VyY2Vmb3JnZS5uZXQvc3dpZy8KIAogV2hhdCdzIG5ldz8KIC0tLS0tLS0tLS0tCiBPbiB0aGUgc3VyZmFjZSwgdGhpcyByZWxlYXNlIHN0aWxsIGxvb2tzIGEgbG90IGxpa2UgU1dJRzEuMXA1IGV4Y2VwdAogdGhhdCBhIGxvdCBvZiBidWdzIGhhdmUgYmVlbiBmaXhlZCBhbmQgdGhlIGxhbmd1YWdlIG1vZHVsZXMgdGVuZCB0bwogZ2VuZXJhdGUgc21hbGxlciBhbmQgbW9yZSBlZmZpY2llbnQgd3JhcHBlcnMuIE5ldyBtb2R1bGVzIGhhdmUgYWxzbwotYmVlbiBhZGRlZCB0byBzdXBwb3J0IFJ1YnkgYW5kIE16c2NoZW1lLiBJbiBhZGRpdGlvbiwgUHl0aG9uLCBQZXJsLAorYmVlbiBhZGRlZCB0byBzdXBwb3J0IEphdmEsIFJ1YnkgYW5kIE16c2NoZW1lLiBJbiBhZGRpdGlvbiwgUHl0aG9uLCBQZXJsLAogYW5kIEd1aWxlIHN1cHBvcnQgaGFzIGJlZW4gZW5oYW5jZWQgdG8gc3VwcG9ydCBuZXcgcmVsZWFzZXMgc3VjaCBhcwotUHl0aG9uMS42IGFuZCBQZXJsNS42LgorUHl0aG9uMS42IGFuZCBQZXJsNS42LiAKIAogVW5kZXIgdGhlIGhvb2QsIHlvdSB3aWxsIGZpbmQgdGhhdCB0aGlzIHJlbGVhc2UgaXMgYW4gYWxtb3N0IGNvbXBsZXRlCiByZWltcGxlbWVudGF0aW9uIG9mIFNXSUcncyBpbnRlcm5hbHMuICBJbiBmYWN0IHRoZSBvbmx5IGNvZGUgdGhhdApAQCAtNDEsOCArNDIsNyBAQAogLS0tLS0tLS0tLS0tLS0KIEFzIHRoaXMgaXMgYSB3b3JrIGluIHByb2dyZXNzLCBhIG51bWJlciBvZiBmZWF0dXJlcyBhcmUgc3RpbGwgbWlzc2luZwogb3IgaW5jb21wbGV0ZS4gIFRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbSBpcyBzdGlsbCBtaXNzaW5nIGFuZCB3b24ndCBiZQotcmVpbXBsZW1lbnRlZCBmb3Igc29tZSB0aW1lLiAgVGhlIEphdmEgbW9kdWxlIGlzIGFsc28gdGVtcG9yYXJpbHkgb3V0Ci1vZiBzZXJ2aWNlIGZvciB0aGlzIHJlbGVhc2UuICBJbiBhZGRpdGlvbiwgQysrIHByb2dyYW1tZXJzIHdobyBtYWtlCityZWltcGxlbWVudGVkIGZvciBzb21lIHRpbWUuIEMrKyBwcm9ncmFtbWVycyB3aG8gbWFrZQogZXh0ZW5zaXZlIHVzZSBvZiB0eXBlbWFwcyBtYXkgZW5jb3VudGVyIGEgZmV3IHN0cmFuZ2UgcHJvYmxlbXMKIChhbHRob3VnaCBTV0lHIHdpbGwgZ2VuZXJhdGUgd2FybmluZyBtZXNzYWdlcykuCiAKQEAgLTY4LDYgKzY4LDUgQEAKIFRoaWVuLVRoaSBOZ3V5ZW4KIE1hdHRoaWFzIEv2cHBlCiBNYXNha2kgRnVrdXNoaW1hCi1IYXJjbyBkZSBIaWxzdGVyCiBMb2ljIERhY2hhcnkKLU9sZWcgVG9sbWF0Y2V2CitXaWxsaWFtIEZ1bHRvbgpkaWZmIC0tZ2l0IGEvU1dJRy9DSEFOR0VTIGIvU1dJRy9DSEFOR0VTCmluZGV4IDQ2MmI2NzQuLmIyNzI0YTEgMTAwNjQ0Ci0tLSBhL1NXSUcvQ0hBTkdFUworKysgYi9TV0lHL0NIQU5HRVMKQEAgLTEsNSArMSwzOTMgQEAKIFNXSUcgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcikKIAorVGhlIFN0YWJsZSBEZXZlbG9wbWVudCBCcmFuY2gKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0luIHRoaXMgQ1ZTIGJyYW5jaCAibWtvZXBwZS0xLTMtYTUtcGF0Y2hlcyIsIGZpeGVzIGluIHRoZSBTV0lHIGNvcmUKK2FuZCBpbXByb3ZlbWVudHMgdG8gdGhlIGxhbmd1YWdlIG1vZHVsZXMgdGFrZSBwbGFjZSwgc3RhcnRpbmcgZnJvbSB0aGUKK3JlbGF0aXZlbHkgc3RhYmxlIHJlbGVhc2UgMS4zYTUuICBJdCB3b3JrcyB0b3dhcmRzIHRoZSBuZXcgc3RhYmxlCityZWxlYXNlIDEuMy42LgorCitUaGlzIGJyYW5jaCBpcyBhbHNvIHRoZSBiYXNpcyBmb3IgdGhlICJzd2lnMS4zIiBEZWJpYW4gcGFja2FnZQorKGN1cnJlbnRseSB1bm9mZmljaWFsLCBhdmFpbGFibGUgZnJvbQoraHR0cDovL3d3dy5tYXRoLnVuaS1tYWdkZWJ1cmcuZGUvfm1rb2VwcGUvaW1vLWRlYmlhbikuIAorCitFdmVudHVhbGx5IHRoaXMgYnJhbmNoIHdpbGwgYmUgbWVyZ2VkIHdpdGggdGhlIGRldmVsb3BtZW50IG9uIHRoZQordHJ1bmsgb2YgdGhlIENWUyB0cmVlLgorCitWZXJzaW9uIDEuMy42ICAoSnVseSA5LCAyMDAxKQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworNy8wOS8yMDAxOiBjaGVldGFoICh3aWxsaWFtIGZ1bHRvbikKKwkgICAqIEdJRlBsb3QgZXhhbXBsZXM6IEZPUkVHUk9VTkQgYW5kIEJBQ0tHUk9VTkQgZGVmaW5pdGlvbiBtaXNzaW5nIAorCSAgIGFmdGVyIFRSQU5TUEFSRU5UICNkZWZpbmUgZml4IGluIEdJRlBsb3QKKworNy8wMy8yMDAxOiBiZWF6bGV5CisgICAgICAgICAgIEZpeGVkIHVwIHRoZSB2ZXJzaW9uIG51bWJlcnMgc28gdGhhdCB0aGUgcmVsZWFzZSBpcyBrbm93bgorICAgICAgICAgICBhcyAxLjMuNi4gIEFsbCBmdXR1cmUgcmVsZWFzZXMgc2hvdWxkIGhhdmUgYSBzaW1pbGFyCisgICAgICAgICAgIHZlcnNpb24gZm9ybWF0LgorCis3LzAyLzIwMDE6IG1rb2VwcGUKKwkgICAqIFtQeXRob25dOiBQcmV2ZW50IHRoZSBwcm9ibGVtIG9mIHNlbGYudGhpc293biBub3QgYmVpbmcKKwkgICBkZWZpbmVkIGlmIHRoZSBDKysgY2xhc3MgY29uc3RydWN0b3IgcmFpc2VkIGFuIGV4Y2VwdGlvbi4KKwkgICBUaGFua3MgdG8gTHVpZ2kgQmFsbGFiaW8gPGJhbGxhYmlvQG1hYy5jb20+LgorCis2LzI5LzIwMDE6IG1rb2VwcGUKKwkgICAqIE1vcmUgcG9ydGFiaWxpdHkgZml4ZXM7IGZpeGVkICJnY2MgLVdhbGwiIHdhcm5pbmdzLgorCis2LzI5LzIwMDE6IGNoZWV0YWggKHdpbGxpYW0gZnVsdG9uKQorCSAgICogR0lGUGxvdCBleGFtcGxlczogVFJBTlNQQVJFTlQgI2RlZmluZSBtdWx0aXBsZSB0aW1lcyBvbiBTb2xhcmlzIAorCSAgIChjbGFzaGVzIHdpdGggc3RyZWFtLmgpLgorCSAgICogTXVsdGlwbGUgZGVmaW5pdGlvbiBidWcgZml4IGZvciBzaGFkb3cgY2xhc3Nlcy4gVGhlIHBlcmwgYW5kIHB5dGhvbiAKKwkgICBtb2R1bGVzIGhhZCB3b3JrYXJvdW5kcyB3aGljaCBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aCBmaXhlcyBpbiAKKwkgICB0aGUgY29yZS4gTWFueSBvZiB0aGUgTGFuZ3VhZ2U6OmNwcF94eHh4IGZ1bmN0aW9ucyBub3cgc2V0IGEgCisJICAgZmxhZyB3aGljaCB0aGUgZGVyaXZlZCBjbGFzc2VzIGNhbiBhY2Nlc3MgdGhyb3VnaCAKKwkgICBpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkgdG8gc2VlIHdoZXRoZXIgb3Igbm90IGNvZGUgc2hvdWxkIGJlIAorCSAgIGdlbmVyYXRlZC4gIFRoZSBjb2RlIGJlbG93IHdvdWxkIGhhdmUgcHJvZHVjZWQgdmFyeWluZyBkZWdyZWVzIAorCSAgIG9mIGluY29ycmVjdCBzaGFkb3cgY2xhc3MgY29kZSBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlczoKKwkgICBjbGFzcyBUZXN0Q2xhc3MKKwkgICB7CisJICAgcHVibGljOgorCSAgICAgVGVzdENsYXNzKCkge307CisJICAgICBUZXN0Q2xhc3MoaW50IGEpIHt9OworCSAgICAgflRlc3RDbGFzcygpIHt9OworCSAgICAgdW5zaWduZWQgbG9uZyB4eXooc2hvcnQgaykge307CisJICAgICB1bnNpZ25lZCBsb25nIHh5eihpbnQgbikge307CisJICAgICBzdGF0aWMgdm9pZCBzdGF0aWNfZnVuYygpIHt9OworCSAgICAgc3RhdGljIHZvaWQgc3RhdGljX2Z1bmMoaW50IGEpIHt9OworCSAgIH07CisJICAgdm9pZCBkZWxldGVfVGVzdENsYXNzKGludCBhKTsKKworNi8yNy8yMDAxOiBta29lcHBlCisJICAgKiBbUGVybF0gQW5vdGhlciBjb25zdC1yZWxhdGVkIHBvcnRhYmlsaXR5IGZpeC4KKworNi8yNi8yMDAxOiBjaGVldGFoICh3aWxsaWFtIGZ1bHRvbikKKwkgICAqIFtKYXZhXSBBZGRlZCBpbiBjcHBfcHJhZ21hKCkgc3VwcG9ydCB3aXRoIGEgaG9zdCBvZiBuZXcgcHJhZ21hcyAtIHNlZSAKKwkgICBqc3dpZy5odG1sLiBUaGVzZSBhcmUgZGVzaWduZWQgZm9yIGJldHRlciBtaXhpbmcgb2YgSmF2YSBhbmQgYysrLiBJdCAKKwkgICBlbmFibGVzIHRoZSB1c2VyIHRvIHNwZWNpZnkgcHVyZSBKYXZhIGNsYXNzZXMgYXMgYmFzZXMgYW5kL29yIGludGVyZmFjZXMgCisJICAgZm9yIHRoZSB3cmFwcGVkIGMvYysrLgorCSAgICogW0phdmFdIE9sZCBwcmFnbWFzIHJlbmFtZWQuIFdhcm5pbmcgZ2l2ZW4gZm9yIHRoZSBtb21lbnQgaWYgdXNlZC4KKyAgICAgICAgICAqKiogUE9URU5USUFMIElOQ09NUEFUSUJJTElUWSBGT1IgSkFWQSBNT0RVTEUgKioqCisKKzYvMjUvMjAwMTogbWtvZXBwZQorCSAgICogSW5jb3Jwb3JhdGVkIG1vcmUgYnVpbGQgY2hhbmdlcyBjb250cmlidXRlZCBieSBXeXNzIENsZW1lbnMKKwkgICA8V1lTQGhlbGJsaW5nLmNoPiBmb3Igc3dpZy9ydWJ5IG9uIGN5Z3dpbi4KKworNi8yMC8yMDAxOiBjaGVldGFoICh3aWxsaWFtIGZ1bHRvbikKKwkgICAqIE1ha2VmaWxlIG1vZHMgc28gdGhhdCAnbWFrZSBjaGVjaycgdXNlcyB0aGUgc3dpZyBvcHRpb25zIGluIHRoZSBtYWtlZmlsZXMKKwkgICAqIFtKYXZhXSBSZW1vdmVkIEdlbmVyYXRpbmcgd3JhcHBlcnMgbWVzc2FnZQorCSAgICogW0phdmFdIE5VTEwgcG9pbnRlciBidWcgZml4CisJICAgKiBbSmF2YV0gQnVnIGZpeCBmb3IgS2FmZmUgSlZNCisKKzYvMjAvMjAwMTogbWtvZXBwZQorCSAgICogU1dJR19UeXBlUXVlcnkgZnJvbSBjb21tb24uc3dnIG5vdyByZXR1cm5zIGEKKwkgICBzd2lnX3R5cGVfaW5mbyogcmF0aGVyIHRoYW4gYSB2b2lkKi4gIFRoaXMgZml4ZXMgYSBwcm9ibGVtCisJICAgd2hlbiB1c2luZyBwb2ludGVyLmkgYW5kIEMrKywgYXMgaWxsdXN0cmF0ZWQgYnkgdGhlIG5ldworCSAgIHRlc3Qtc3VpdGUgZXhhbXBsZSBwZXJsNS9wb2ludGVyLWN4eC4KKwkgICAqIFBvcnRhYmlsaXR5IGZpeGVzIChjb25zdCBjaGFyICopLiAKKwkgICAqIEluY29ycG9yYXRlZCBidWlsZCBjaGFuZ2VzIGNvbnRyaWJ1dGVkIGJ5IFd5c3MgQ2xlbWVucworCSAgIDxXWVNAaGVsYmxpbmcuY2g+LCB3aGljaCBtYWtlIHN3aWcgcnVubmFibGUgb24gY3lnd2luLgorCis2LzE5LzIwMDE6IGNoZWV0YWggKHdpbGxpYW0gZnVsdG9uKQorCSAgICogW0phdmFdIEJ1ZyBmaXggZm9yIFNGIGJ1ZyAjMjExMTQ0LiBUaGlzIGZpeCBpcyBhIHdvcmthcm91bmQgCisJICAgICB1bnRpbCBmaXhlZCBpbiB0aGUgY29yZS4KKworNi8xOS8yMDAxOiBta29lcHBlCisJICAgKiBbR3VpbGVdOiBQb3J0YWJpbGl0eSBmaXhlcyBmb3IgdXNlIHdpdGggdGhlIFN1biBGb3J0ZQorCSAgIGNvbXBpbGVycy4gCisJICAgKiBbVGNsXTogUG9ydGFiaWxpdHkgZml4IChjb25zdCBjaGFyICopLgorCSAgICogW1RjbF06IENvbmZpZ3VyZSBub3cgZmlyc3QgdHJpZXMgdG8gZmluZCBhIHRjbENvbmZpZy5zaAorCSAgIGZpbGUgaW4gb3JkZXIgdG8gZmluZCB0aGUgVGNsIGluY2x1ZGUgZGlyZWN0b3J5LCBsaWJyYXJ5CisJICAgbG9jYXRpb24gYW5kIGxpYnJhcnkgbmFtZS4KKwkgICAqIFtQeXRob25dOiBBZGRlZCBhIGZldyBwb3NzaWJsZSBsaWJyYXJ5IGxvY2F0aW9ucy4KKworNi8xOC8yMDAxOiBta29lcHBlCisJICAgKiBbR3VpbGVdOiBEb24ndCBjYWxsIHNjbV9jX2V4cG9ydCBpZiBub3RoaW5nIGlzIHRvIGJlCisJICAgICBleHBvcnRlZC4gIERvbid0IHdhcm4gb24gJW1vZHVsZSBpZiBtb2R1bGUgaGFzIGJlZW4gc2V0CisJICAgICBhbHJlYWR5ICh0aGlzIGZyZXF1ZW50bHkgb2NjdXJzIHdoZW4gJWltcG9ydCBpcyB1c2VkKS4KKworNi8xNi8yMDAxOiBta29lcHBlCisJICAgKiBbR3VpbGVdOiBOZXcgInBhc3NpdmUiIGxpbmthZ2UsIHdoaWNoIGlzIGFwcHJvcHJpYXRlIGZvcgorCSAgICAgbXVsdGktbW9kdWxlIGV4dGVuc2lvbnMgd2l0aG91dCBHdWlsZSBtb2R1bGUgbWFnaWMuCisKKzYvMTUvMjAwMTogbWtvZXBwZQorCSAgICogW0d1aWxlXTogRml4ZWQgcHJpbnRpbmcgb2Ygc21vYnMgKHNwYWNlIGFuZCBhbmdsZSB3ZXJlCisJICAgICBtaXNzaW5nKS4gCisJICAgKiBQcm9wZXJseSBnZW5lcmF0ZSB0eXBlIGluZm9ybWF0aW9uIGZvciBiYXNlIGNsYXNzZXMKKwkgICAgIGltcG9ydGVkIHdpdGggdGhlICVpbXBvcnQgZGlyZWN0aXZlLiAgVGhhbmtzIHRvIE1hcmNlbG8KKwkgICAgIE1hdHVzIDxtbWF0dXNAYWNtcy5hcml6b25hLmVkdT4gZm9yIHRoZSByZXBvcnQgYW5kIHRoZQorCSAgICAgcGF0Y2g7IHRoaXMgY2xvc2VzIFNGIGJ1ZyAjMjMxNjE5OyBzZWUgYWxzbworCSAgICAgRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQqLiAKKwkgICAqIFtHdWlsZV06IEZpeCBjYXN0aW5nIGJldHdlZW4gY2xhc3MgYW5kIGJhc2UgY2xhc3M7IHRoZQorCSAgICAgcnVudGltZSB0eXBlIHN5c3RlbSBoYWQgaXQgdGhlIHdyb25nIHdheSBhcm91bmQ7IHNlZQorCSAgICAgRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jYXN0cy5pCisJICAgKiBNYWtlIHR5cGVtYXBzIGZvciBTV0lHUE9JTlRFUiAqIHdpdGggYXJnIG5hbWUgdGFrZQorCSAgICAgcHJlY2VkZW5jZSBvdmVyIHRob3NlIHdpdGhvdXQgYXJnIG5hbWUsIHRvIG1hdGNoIG5vcm1hbAorCSAgICAgdHlwZW1hcCBwcmVjZWRlbmNlIHJ1bGVzLgorCSAgICogRml4ZWQgdGhlIHJhbmRvbS1saW5lLW51bWJlcnMgcHJvYmxlbSByZXBvcnRlZCBhcyBTRiBidWcKKwkgICAgICMyMTczMTA7IHRoYW5rcyB0byBNaWNoYWVsIFNjaGFyZiA8c2NoYXJmQHVzZXJzLnNmLm5ldD4uCisJICAgKiBbR3VpbGVdOiBIYW5kbGUgdGhlICVuYW1lIGFuZCAlcmVuYW1lIGRpcmVjdGl2ZXMuCisJICAgKiBOZXcgc3ludGF4OiAlbmFtZSBhbmQgJXJlbmFtZSBub3cgb3B0aW9uYWxseSB0YWtlIGRvdWJsZQorCSAgICAgcXVvdGVzIGFyb3VuZCB0aGUgc2NyaXB0aW5nIG5hbWUuICBUaGlzIGlzIHRvIGFsbG93IHNjcmlwdGluZworCSAgICAgbmFtZXMgdGhhdCBhcmVuJ3QgdmFsaWQgQyBpZGVudGlmaWVycy4KKworNi8xNC8yMDAxOiBiZWF6bGV5CisgICAgICAgICAgIE1hZGUgYSBtaW5vciBjaGFuZ2UgdG8gdGhlIHdheSBmaWxlcyBhcmUgbG9hZGVkIGluCisgICAgICAgICAgIG9yZGVyIHRvIGdldCBmaWxlL2xpbmUgbnVtYmVyIHJlcG9ydGluZyBjb3JyZWN0IGluCisgICAgICAgICAgIHRoZSBwcmVwcm9jZXNzb3IuCisKKzYvMTQvMjAwMTogbWtvZXBwZQorCSAgICogVGhlIHBhcnNlciBub3cgdW5kZXJzdGFuZHMgdGhlIChub24tc3RhbmRhcmQpICJsb25nIGxvbmciCisJICAgICB0eXBlcy4gSXQgaXMgdXAgdG8gdGhlIGluZGl2aWR1YWwgbGFuZ3VhZ2UgbW9kdWxlcyB0bworCSAgICAgcHJvdmlkZSB0eXBlbWFwcyBpZiBuZWVkZWQuIFJlcG9ydGVkIGJ5IFNhbSBTdGVpbmdvbGQsIFNGCisJICAgICBidWcgIzQyOTE3Ni4KKwkgICAqIFRoZSBwYXJzZXIgbm93IHVuZGVyc3RhbmRzIGFyZ3VtZW50cyBsaWtlICJjb25zdCBpbnQgKgorCSAgICAgY29uc3QgaSIuIFRoaXMgZml4ZXMgU0YgYnVnICMyMTU2NDkuCisJICAgKiBGaXhlZCB0aGUgR3VpbGUgdGVzdC1zdWl0ZS4KKworNi8xMy8yMDAxOiBta29lcHBlCisJICAgUGFydGlhbCBtZXJnZSBmcm9tIHRoZSBDVlMgdHJ1bmsgYXQgdGFnCisJICAgIm1rb2VwcGUtbWVyZ2UtMSIuIFRoaXMgY292ZXJzIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKKworfCAwMS8xNi8wMTogdHRuCit8CSAgIFdyb3RlIHRhYmxlIG9mIGNvbnRlbnRzIGZvciBEb2MvZW5naW5lZXJpbmcuaHRtbC4gIEFkZGVkIHNlY3Rpb24KK3wJICAgb24gQ1ZTIHRhZ2dpbmcgY29udmVudGlvbnMuICBBZGRlZCBjb3B5cmlnaHQgdG8gb3RoZXIgZG9jcy4KK3wgOS8yNS8wMCA6IGJlYXpsZXkKK3wgCSAgIE1vZGlmaWVkIHRoZSBwcmVwcm9jZXNzb3Igc28gdGhhdCBtYWNybyBuYW1lcyBjYW4gc3RhcnQgd2l0aCBhICclJy4KK3wgCSAgIFRoaXMgbWF5IGFsbG93IG5ldyBTV0lHICJkaXJlY3RpdmVzIiB0byBiZSBkZWZpbmVkIGFzIG1hY3JvcyBpbnN0ZWFkCit8IAkgICBvZiBoYXZpbmcgdG8gYmUgaGFyZC1jb2RlZCBpbnRvIHRoZSBwYXJzZXIuICAKK3wKK3wgKioqIEFsc28gYSB5ZXQtdG8tYmUtZG9jdW1lbnRlZCBxdW90aW5nIG1lY2hhbmlzbSB3aXRoIGJhY2txdW90ZXMKK3wgKioqIGhhcyBiZWVuIGltcGxlbWVudGVkPworCis2LzEzLzIwMDE6IG1rb2VwcGUKKwkgKiBXaGVuIGNvbmZpZ3VyZSBkb2VzIG5vdCBmaW5kIGEgbGFuZ3VhZ2UsIGRvbid0IHVzZSBkZWZhdWx0CisJICAgcGF0aHMgbGlrZSAvdXNyL2xvY2FsL2luY2x1ZGU7IHRoaXMgb25seSBjYXVzZXMgYnVpbGQKKwkgICBwcm9ibGVtcy4KKwkgKiBOZXcgZGlyZWN0b3J5OiBFeGFtcGxlcy9HdWlsZS90ZXN0LXN1aXRlLCB3aGVyZSBhIGZldworCSAgIGJ1Z3MgaW4gMS4zYTUgYXJlIGRlbW9uc3RyYXRlZC4gCisJICogSGFuZGxlIEMrKyBtZXRob2RzIHRoYXQgaGF2ZSBib3RoIGEgImNvbnN0IiBhbmQgYSAidGhyb3ciCisJICAgZGlyZWN0aXZlIChzZWUgRXhhbXBsZXMvR3VpbGUvdGVzdC1zdWl0ZS9jcGx1c3BsdXMtdGhyb3cuaSk7IAorCSAgIHRoYW5rcyB0byBTY290dCBCLiBEcnVtbW9uZHMgZm9yIHRoZSByZXBvcnQgYW5kIHRoZSBmaXguIAorCSAqIEhhbmRsZSBDKysgcG9pbnRlci1yZWZlcmVuY2UgYXJndW1lbnRzIChsaWtlICJpbnQgKiYgYXJnIikgCisJICAgKHNlZSBFeGFtcGxlcy9HdWlsZS90ZXN0LXN1aXRlL3BvaW50ZXItcmVmZXJlbmNlLmksCisJICAgcmVwb3J0ZWQgYXMgU0YgYnVnICM0MzIyMjQpLgorCSAqIFtSdWJ5XSBGaXhlZCB0eXBvIGluIHJ1YnlkZWMuc3dnOyB0aGFua3MgdG8gTHlsZSBKb2huc29uIQorCSAqIERvbid0IHN0b3AgdGVzdGluZyB3aGVuIG9uZSB0ZXN0IGZhaWxzLgorCSAqIFtHdWlsZSwgTXpTY2hlbWVdIERvbid0IHByaW50ICJHZW5lcmF0aW5nIHdyYXBwZXJzLi4uIi4KKworNi8xMi8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBWRUNUT1JMRU5JTlBVVCBhbmQgTElTVExFTklOUFVUIG5vdyBoYXZlIHNlcGFyYXRlCisJICAgbGlzdCBsZW5ndGggdmFyaWFibGVzLiBUWVBFTUFQX1BPSU5URVJfSU5QVVRfT1VUUFVUCisJICAgYXR0YWNoZXMgYXJndW1lbnQgZG9jdW1lbnRhdGlvbiBpbnZvbHZpbmcgU0NNX1RZUEUgdG8gdGhlCisJICAgc3RhbmRhcmQgcG9pbnRlciB0eXBlbWFwcy4gSU5PVVQgaXMgbm93IGFuIGFsaWFzIGZvciBCT1RILgorCis2LzEyLzIwMDE6IGNoZWV0YWggKHdpbGxpYW0gZnVsdG9uKQorCSAgIFNvbWUgSmF2YSBkb2N1bWVudGF0aW9uIGFkZGVkLgorCSAgIFtKYXZhXSBGaXhlZCBidWdzIGluIGltcG9ydCBwcmFnbWEgYW5kIHNoYWRvdyBwcmFnbWEuIAorCis2LzEyLzIwMDE6IG1rb2VwcGUKKwkgICBGaXggZGVjbGFyYXRpb25zIG9mIFNXSUdfZGVmaW5lX2NsYXNzCisJICAgKExpYi9ydWJ5L3J1YnlkZWMuc3dnKSBhbmQgU1dJR19UeXBlUXVlcnkKKwkgICAoTGliL2NvbW1vbi5zd2cpLiBUaGFua3MgdG8gTHlsZSBKb2huc29uCisJICAgPGxqb2huc29uQHJlc2dlbi5jb20+IGZvciB0aGUgcGF0Y2hlcy4KKworNi8xMS8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBVc2UgbG9uZyBpbnN0ZWFkIG9mIHNjbV9iaXRzX3Q7IHRoaXMgbWFrZXMgdGhlCisJICAgZ2VuZXJhdGVkIHdyYXBwZXIgY29kZSBjb21wYXRpYmxlIHdpdGggR3VpbGUgMS4zLjQKKwkgICBhZ2Fpbi4gVGhhbmtzIHRvIE1hc2FraSBGdWt1c2hpbWEgZm9yIHBvaW50aW5nIHRoaXMgb3V0LgorCis2LzExLzIwMDE6IGNoZWV0YWggKHdpbGxpYW0gZnVsdG9uKQorCSAgIFRoZSBnZW5lcmljIElOU1RBTEwgZmlsZSBmcm9tIGF1dG9jb25mIGFkZGVkLiBGZXcgY2hhbmdlcyB0byBSRUFETUUgZmlsZS4KKworNi8xMS8yMDAxOiBta29lcHBlCisJICAgRml4ZWQgdHlwbyBpbiBNYWtlZmlsZS5pbjsgdGhhbmtzIHRvIEdyZWcgVHJveGVsCisJICAgPGdkdEBpci5iYm4uY29tPi4gCisKKzYvMDgvMjAwMTogY2hlZXRhaCAod2lsbGlhbSBmdWx0b24pCisJICAgbWFrZSBjaGVjayB3b3JrcyBhZ2Fpbi4gRXhhbXBsZXMvR0lGUGxvdCBjb25maWd1cmUgZ2VuZXJhdGVkIGJ5CisJICAgdG9wIGxldmVsIGF1dG9jb25mIG5vdy4KKworNi8wOC8yMDAxOiBta29lcHBlCisJICAgQW5vdGhlciBidWlsZCBjaGFuZ2U6IFRoZSBuZXcgc2NyaXB0IGF1dG9nZW4uc2ggcnVucworCSAgIGF1dG9jb25mIGluIHRoZSBhcHByb3ByaWF0ZSBkaXJlY3Rvcmllcy4gIFRoZSB0b3AtbGV2ZWwKKwkgICBjb25maWd1cmUgYWxzbyBjb25maWd1cmVzIGluIEV4YW1wbGVzL0dJRlBsb3QuCisKKzYvMDcvMjAwMTogbWtvZXBwZQorCSAgIE1hZGUgdGhlIE1ha2VmaWxlIHdvcmsgd2l0aCBub24tR05VIG1ha2UgYWdhaW4uCisKKzYvMDcvMjAwMTogY2hlZXRhaCAod2lsbGlhbSBmdWx0b24pCisJICAgW0phdmFdIENsYXNzL3N0cnVjdCBtZW1iZXJzIHRoYXQgYXJlIGFycmF5cyBvZiBwb2ludGVycyB0byBjbGFzc2VzL3N0cnVjdHMgLQorCSAgIFNoYWRvdyBjbGFzcydzIGdldC9zZXQgYWNjZXNzb3JzIG5vdyB1c2UgSmF2YSBjbGFzc2VzIGluc3RlYWQgb2YgbG9uZ3MgKHBvaW50ZXJzKS4KKwkgICBbSmF2YV0gU2hhZG93IGNsYXNzZXMgd2lsbCBub3cgY2xlYW4gdXAgbWVtb3J5IGlmIGZ1bmN0aW9uIHJldHVybiB0eXBlIAorCSAgIGlzIGEgY2xhc3Mvc3RydWN0LgorCSAgIFtKYXZhXSBOZXcgZXhhbXBsZSBjYWxsZWQgcmVmZXJlbmNlIGJhc2VkIG9uIHRoZSBzYW1lIGV4YW1wbGUgZnJvbSBvdGhlciBtb2R1bGVzLgorCis2LzA2LzIwMDE6IG1rb2VwcGUKKwkgICBOZXcgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtcmVsZWFzZS1zdWZmaXggYWxsb3dzIGZvcgorCSAgIGF0dGFjaGluZyBhIHN1ZmZpeCB0byB0aGUgc3dpZyBiaW5hcnkgYW5kIHRoZSBzd2lnIHJ1bnRpbWUKKwkgICBsaWJyYXJpZXMuICBNaW5vciBjaGFuZ2VzIHRvIHRoZSBidWlsZCBzeXN0ZW0uICAic3dpZworCSAgIC1zd2lnbGliIiB3b3JrcyBhZ2Fpbi4gIElmIGludm9rZWQgd2l0aCB0aGUgbmV3IG9wdGlvbgorCSAgICItbGRmbGFncyIsIFNXSUcgcHJpbnRzIGEgbGluZSBvZiBsaW5rZXIgZmxhZ3MgbmVlZGVkIHRvCisJICAgbGluayB3aXRoIHRoZSBydW50aW1lIGxpYnJhcnkgb2YgdGhlIHNlbGVjdGVkIGxhbmd1YWdlCisJICAgbW9kdWxlLiAKKworNi8wNi8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBnc3dpZ19saXN0X3AgaXMgYW4gaW50LCBub3QgYSBTQ00uICBUaGlzIHR5cG8KKwkgICBjYXVzZWQgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgd2l0aCBhIEd1aWxlIGNvbmZpZ3VyZWQgd2l0aAorCSAgIHN0cmljdCBDIHR5cGUgY2hlY2tpbmcuIEluIElOUFVUIGFuZCBCT1RIIHR5cGVtYXBzCisJICAgZ2VuZXJhdGVkIGJ5IHRoZSBTSU1QTEVfTUFQIG1hY3JvLCB1c2UgdGhlIFNDTV9UT19DCisJICAgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIEd1aWxlIHRvIEMgKHJhdGhlciB0aGFuIENfVE9fU0NNKS4KKwkgICBVc2Ugc2NtX2ludHByaW50IHRvIHByaW50IHBvaW50ZXJzIChyYXRoZXIgdGhhbgorCSAgIHNwcmludGYpLiBBbGxvdyB1c2luZyAiLWxpbmthZ2UiIGluc3RlYWQgb2YgIi1MaW5rYWdlIi4gCisKKzYvMDUvMjAwMTogY2hlZXRhaCAod2lsbGlhbSBmdWx0b24pCisJICAgW0phdmFdIE1vZHMgZm9yIHVzaW5nIGluaGVyaXRlZCBjKysgY2xhc3NlcyBmcm9tIEphdmEKKwkgICBbSmF2YV0gTmV3IGV4YW1wbGUgY2FsbGVkIGNsYXNzIGJhc2VkIG9uIHRoZSBzYW1lIGV4YW1wbGUgZnJvbSBvdGhlciBtb2R1bGVzCisKKzYvMDUvMjAwMTogY2hlZXRhaCAod2lsbGlhbSBmdWx0b24pCisJICAgW0phdmFdIGRlc3RydWN0b3IgKF9kZWxldGUoKSkgd2FzIG5vdCBhd2FyZSBvZiAlbmFtZSByZW5hbWluZworCSAgIFtKYXZhXSBleHRlbmRzIGJhc2VjbGFzcyBkaWQgbm90IGtub3cgYWJvdXQgJW5hbWUgcmVuYW1pbmcKKwkgICBbSmF2YV0gZXh0ZW5kcyBiYXNlY2xhc3MgZGlkIGV4dGVuZCBldmVuIHdoZW4gdGhlIGJhc2VjbGFzcyB3YXMgbm90IGtub3duIHRvIHN3aWcKKwkgICBbSmF2YV0gc29tZXRpbWVzIGVudW0tZGVjbGFyYXRpb25zIG9jY3VyZWQgYmVmb3JlIHRoZSBKYXZhIGNsYXNzIGRlY2xhcmF0aW9uCisJICAgW0phdmFdIHVucmVsYXRlZCBlbnVtIGluaXRpYWxpc2F0aW9ucyBubyBsb25nZXIgYXBwZWFyIGluIEphdmEgY2xhc3MKKwkgICBbSmF2YV0gaWYgbW9kdWxlIGVuZHMgaW4gJ18nIGNvcnJlY3QgSk5JIG5hbWVzIGFyZSBub3cgcHJvZHVjZWQKKworNi8wNC8yMDAxOiBjaGVldGFoICh3aWxsaWFtIGZ1bHRvbikKKwkgICBbSmF2YV0gU2hhZG93IGNsYXNzIG1vZHMgLSBNb2RpZmllZCBjb25zdHJ1Y3RvciByZXBsYWNlcworCSAgIG5ld0luc3RhbmNlKCkuIF9kZWxldGUoKSBub3cgdGhyZWFkIHNhZmUuIGdldENQdHIoKSByZXBsYWNlcworCSAgIF9zZWxmLiBfc2VsZkNsYXNzKCkgcmVtb3ZlZCBhcyBub3cgcmVkdW5kYW50LiAKKyAgICAgICAgICAqKiogUE9URU5USUFMIElOQ09NUEFUSUJJTElUWSBGT1IgSkFWQSBNT0RVTEUgKioqCisKKwkgICBbSmF2YV0gTm90IGFsbCBvdXRwdXQgamF2YSBmaWxlcyBoYWQgU1dJRyBiYW5uZXIuIE5ldyBiYW5uZXIuCisKKwkgICBbSmF2YV0gU2hhZG93IGNsYXNzIGZpbmFsaXplcnMgYXJlIG91dHB1dCBieSBkZWZhdWx0OiBDb21tYW5kCisJICAgbGluZSBvcHRpb24gLWZpbmFsaXplIGRlcHJlY2F0ZWQgYW5kIHJlcGxhY2VkIHdpdGggLW5vZmluYWxpemUuCisgICAgICAgICAgKioqIFBPVEVOVElBTCBJTkNPTVBBVElCSUxJVFkgRk9SIEpBVkEgTU9EVUxFICoqKgorCis2LyAxLzIwMDE6IG1rb2VwcGUKKwkgICBbR3VpbGVdIENhc3QgU0NNX0NBUigpIHRvIHNjbV9iaXRzX3QgYmVmb3JlIHNoaWZ0aW5nIGl0LgorCSAgIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGNvbXBpbGluZyB3aXRoIGEgR3VpbGUgY29uZmlndXJlZCB3aXRoCisJICAgc3RyaWN0IEMgdHlwZSBjaGVja2luZy4gIAorCis2LyAxLzIwMDE6IG1rb2VwcGUKKwkgICBBZGRlZCBjb25maWd1cmUgb3B0aW9uICItLXdpdGgtc3dpZ2xpYmRpciIuCisKKzUvMzEvMjAwMTogbWtvZXBwZQorCSAgIFtHdWlsZV0gU3VwcG9ydCBtdWx0aXBsZSBwYXJhbGxlbCBsaXN0cyBvciB2ZWN0b3JzIGluCisJICAgdGhlIHR5cGVtYXBzIHByb3ZpZGVkIGJ5IGxpc3QtdmVjdG9yLmkuICBOZXcgdHlwZW1hcHMgZmlsZSwKKwkgICBwb2ludGVyLWluLW91dC5pLiAKKworNS8yNS8yMDAxOiBjaGVldGFoICh3aWxsaWFtIGZ1bHRvbikKKwkgICBbSmF2YV0gSFRNTCB1cGRhdGUgZm9yIGV4YW1wbGVzLgorCis1LzI4LzIwMDE6IG1rb2VwcGUKKwkgICBNaW5vciBjaGFuZ2VzIHRvIHRoZSBidWlsZCBzeXN0ZW0uICBBZGRlZCBzdWJkaXJlY3RvcnkgZm9yCisJICAgRGViaWFuIHBhY2thZ2UgY29udHJvbCBmaWxlcy4KKworNS8yOC8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBCdWlsZCBhIHJ1bnRpbWUgbGlicmFyeSwgbGlic3dpZ2d1aWxlLgorCis1LzI4LzIwMDE6IG1rb2VwcGUKKwkgICBbR3VpbGVdIE5ldyB0eXBlbWFwIHN1YnN0aXR1dGlvbiAkKmRlc2NyaXB0b3IuICBVc2UgdGhlIHt9CisJICAgc3ludGF4LCByYXRoZXIgdGhhbiB0aGUgIiIgc3ludGF4IGZvciB0aGUgc3RhbmRhcmQKKwkgICB0eXBlbWFwcywgaW4gb3JkZXIgdG8gd29yayBhcm91bmQgc3RyYW5nZSBtYWNyby1leHBhbnNpb24KKwkgICBiZWhhdmlvciBvZiB0aGUgU1dJRyBwcmVwcm9jZXNzb3IuICBUaGlzIGludHJvZHVjZXMgc29tZQorCSAgIGV4dHJhIGJyYWNlcy4KKworNS8yNy8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBIYW5kbGUgcG9pbnRlciB0eXBlcyB3aXRoIHR5cGVtYXBzLCByYXRoZXIgdGhhbgorCSAgIGhhcmQtY29kZWQuIE5ldyB0eXBlbWFwIHN1YnN0aXR1dGlvbnMgJGRlc2NyaXB0b3IsCisJICAgJGJhc2VkZXNjcmlwdG9yOyBzZWUgZG9jdW1lbnRhdGlvbi4gU29tZSBjbGVhbi11cCBpbiB0aGUKKwkgICB2YXJpYWJsZS9jb25zdGFudHMgd3JhcHBlciBnZW5lcmF0b3IgY29kZS4gIE5ldyBjb252ZW5pZW5jZQorCSAgIG1hY3JvIFNXSUdfR3VpbGVfTXVzdEdldFB0ciwgd2hpY2ggYWxsb3dzIGdldHRpbmcgcG9pbnRlcnMKKwkgICBmcm9tIHNtb2JzIGluIGEgZnVuY3Rpb25hbCBzdHlsZS4gIE5ldyB0eXBlbWFwIGZpbGUKKwkgICAibGlzdC12ZWN0b3IuaSIsIHByb3ZpZGluZyBtYWNyb3MgdGhhdCBkZWZpbmUgdHlwZW1hcHMgZm9yCisJICAgY29udmVydGluZyBiZXR3ZWVuIEMgYXJyYXlzIGFuZCBTY2hlbWUgbGlzdHMgYW5kIHZlY3RvcnMuCisKKzUvMjUvMjAwMTogY2hlZXRhaCAod2lsbGlhbSBmdWx0b24pCisJICAgW0phdmFdIFNUTCBzdHJpbmcgbW92ZWQgaW50byBpdHMgb3duIHR5cGVtYXAgYXMgaXQgaXMgYysrIGNvZGUgYW5kIAorCSAgIGl0IGJyZWFrIGFueSBjIGNvZGUgdXNpbmcgdGhlIHR5cGVtYXBzLmkgZmlsZS4KKwkgICAtIEZpeGVzIGZvciB3cmFwcGVycyBhcm91bmQgZ2xvYmFsIHZhcmlhYmxlcyAtIGFwcGxpZXMgdG8gcHJpbWl0aXZlIAorCSAgIHR5cGVzIGFuZCB1c2VyIHR5cGVzIChjbGFzcy9zdHJ1Y3QpIGFuZCBwb2ludGVycyB0byB0aGVzZS4KKwkgICAtIFN0cnVjdHVyZSBtZW1iZXIgdmFyaWFibGVzIGFuZCBjbGFzcyBwdWJsaWMgbWVtYmVyIHZhcmlhYmxlcyBnZXR0ZXJzIAorCSAgIGFuZCBzZXR0ZXJzIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBtZW1iZXIgYXMgd2FzIGluIDEuM2EzIGFuZCAxLjEgCisJICAgKDEuM2E1IHdhcyBwYXNzaW5nIGJ5IHZhbHVlKQorCSAgIC0gUGFyYW1ldGVycyB0aGF0IHdlcmUgYXJyYXlzIGFuZCByZXR1cm4gdHlwZXMgd2VyZSBpbmNvcnJlY3RseSAKKwkgICBiZWluZyBwYXNzZWQgdG8gY3JlYXRlX2Z1bmN0aW9uKCkgYXMgcG9pbnRlcnMuCisJICAgLSBGaXggZm9yIGFycmF5cyBvZiBlbnVtcy4gCisJICAgW0phdmFdIFVwZGF0ZWQgamF2YSBleGFtcGxlcyBhbmQgYWRkZWQgdHdvIG1vcmUuCisJICAgW0phdmFdIEphdmEgbW9kdWxlIHVwZGF0ZWQgZnJvbSBTV0lHMS4zYTMgaW5jbHVkaW5nIGNvZGUgY2xlYW51cCBldGMuCisJICAgW0phdmFdIGVudW0gc3VwcG9ydCBhZGRlZC4KKwkgICBbSmF2YV0gQXJyYXkgc3VwcG9ydCBpbXBsZW1lbnRlZAorCSAgIFtKYXZhXSBTaGFkb3cgY2xhc3NlcyBpbXByb3ZlZCAtIEphdmEgb2JqZWN0cyB1c2VkIHJhdGhlciB0aGFuIAorCSAgIGxvbmdzIGhvbGRpbmcgdGhlIGMgcG9pbnRlciB0byB0aGUgd3JhcHBlZCBzdHJ1Y3R1cmUvYysrY2xhc3MKKworNS8yMi8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBGaXhlZCBleHRlcm4gIkMiIGRlY2xhcmF0aW9ucyBpbiBDKysgbW9kZS4gVGhhbmtzCisJICAgdG8gR3JlZyBUcm94ZWwgPGdkdEBpci5iYm4uY29tPi4KKworNS8yMS8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBOZXcgbGlua2FnZSAibW9kdWxlIiBmb3IgY3JlYXRpbmcgR3VpbGUgbW9kdWxlcyBmb3IKKwkgICBHdWlsZSB2ZXJzaW9ucyA+PSAxLjUuMC4gCisKKzQvMTgvMjAwMTogbWtvZXBwZQorCSAgIFtNelNjaGVtZV0gQWRkZWQgdHlwZW1hcHMgZm9yIHBhc3NpbmcgdGhyb3VnaCBTY2hlbWVfT2JqZWN0CisJICAgcG9pbnRlcnMuIAorCis0LzkvMjAwMSA6IG1rb2VwcGUgCisJICAgW016U2NoZW1lXSBBZGRlZCB0eXBlbWFwcyBmb3IgYGJvb2wnLiAgSW5jbHVzaW9uIG9mIGhlYWRlcnMKKwkgICBhbmQgc3VwcG9ydCByb3V0aW5lcyBpcyBub3cgZGF0YS1kcml2ZW4gdmlhIG16c2NoZW1lLmkuCisJICAgSGVhZGVycyBjb21lIGZyb20gdGhlIG5ldyBmaWxlIG16c2NoZW1kZWMuc3dnLiAgRG9uJ3QgYWJvcnQKKwkgICBpbW1lZGlhdGVseSB3aGVuIGEgdHlwZS1oYW5kbGluZyBlcnJvciBpcyByZXBvcnRlZC4gIFdoZW4KKwkgICBzZWFyY2hpbmcgZm9yIHR5cGVtYXBzIGZvciBlbnVtcywgZmFsbCBiYWNrIHRvIHVzaW5nIGludCwKKwkgICBsaWtlIHRoZSBHdWlsZSBiYWNrZW5kIGRvZXMuICBTdXBwb3J0IGNoYXIgY29uc3RhbnRzLiAgRW1pdAorCSAgIGNvcnJlY3Qgd3JhcHBlciBjb2RlIGZvciB2YXJpYWJsZXMuCisKKzMvMTIvMjAwMTogbWtvZXBwZQorCSAgIFtHdWlsZV0gRml4ZWQgdHlwZW1hcHMgZm9yIGNoYXIgKipPVVRQVVQsIGNoYXIgKipCT1RILgorCiszLzIvMjAwMSA6IG1rb2VwcGUgCisJICAgW0d1aWxlXSBFdmVyeSB3cmFwcGVyIGZ1bmN0aW9uIG5vdyBnZXRzIGEgYm9vbGVhbiB2YXJpYWJsZQorCSAgIGdzd2lnX2xpc3RfcCB3aGljaCBpbmRpY2F0ZXMgd2hldGhlciBtdWx0aXBsZSB2YWx1ZXMgYXJlCisJICAgcHJlc2VudC4gVGhlIG1hY3JvcyBHVUlMRV9BUFBFTkRfUkVTVUxULCBHVUlMRV9NQVlCRV9WQUxVRVMKKwkgICBhbmQgR1VJTEVfTUFZQkVfVkVDVE9SIHVzZSB0aGlzIHZhcmlhYmxlLCByYXRoZXIgdGhhbgorCSAgIGNoZWNraW5nIHdoZXRoZXIgdGhlIGN1cnJlbnQgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdC4gVGhpcworCSAgIGFsbG93cyBmb3IgdHlwZW1hcHMgcmV0dXJuaW5nIGEgbGlzdCBhcyBhIHNpbmdsZSB2YWx1ZSAoYQorCSAgIGxpc3Qgd2FzIGVycm9uZW91c2x5IGNvbnZlcnRlZCBpbnRvIGEgdmVjdG9yIG9yIGEKKwkgICBtdWx0aXBsZS12YWx1ZSBvYmplY3QgaW4gdGhpcyBjYXNlKS4KKworMy8xLzIwMDEgOiBta29lcHBlCisJICAgW0d1aWxlXSBBZGRlZCBzdXBwb3J0IGZvciByZXR1cm5pbmcgbXVsdGlwbGUgdmFsdWVzIGFzCisJICAgdmVjdG9ycywgb3IgcGFzc2luZyB0aGVtIHRvIGEgbXVsaXBsZS12YWx1ZQorCSAgIGNvbnRpbnVhdGlvbi4gQnkgZGVmYXVsdCwgbXVsdGlwbGUgdmFsdWVzIHN0aWxsIGdldAorCSAgIHJldHVybmVkIGFzIGEgbGlzdC4KKworMy8xLzIwMDEgOiBta29lcHBlCisJICAgW0d1aWxlXSBBZGRlZCBhICJiZWZvcmVyZXR1cm4iIHByYWdtYS4gVGhlIHZhbHVlIG9mIHRoaXMKKwkgICBwcmFnbWEgaXMgaW5zZXJ0ZWQganVzdCBiZWZvcmUgZXZlcnkgcmV0dXJuIHN0YXRlbWVudC4KKworMy8xLzIwMDEgOiBta29lcHBlCisJICAgW0d1aWxlXSBBZGRlZCBzdXBwb3J0IGZvciBHdWlsZSAxLjQuMSBwcm9jZWR1cmUKKwkgICBkb2N1bWVudGF0aW9uIGZvcm1hdHMsIHNlZSBpbnRlcm5hbHMuaHRtbC4KKworMi8yNi8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBNYWRlIHRoZSB3cmFwcGVyIGNvZGUgY29tcGlsZSB3aXRoIEMrKyBpZiB0aGUKKwkgICAiLWMrKyIgY29tbWFuZC1saW5lIHN3aXRjaCBpcyBnaXZlbi4gIFRoYW5rcyB0bworCSAgIDxtb25rZXlpcUBkaW5nb2JsdWUubmV0LmF1Pi4gCisKKzIvMjYvMjAwMTogbWtvZXBwZQorCSAgIFtHdWlsZV0gTm93IHR3byB0eXBlIHRhYmxlcywgc3dpZ190eXBlcyBhbmQKKwkgICBzd2lnX3R5cGVzX2luaXRpYWwsIGFyZSB1c2VkLCBhcyBhbGwgb3RoZXIgU1dJRyBsYW5ndWFnZQorCSAgIG1vZHVsZXMgZG8uICBUaGlzIHJlbW92ZXMgdGhlIG5lZWQgZm9yIHRoZSB0cmlja3kKKwkgICBjb25zdHJ1Y3Rpb24gdXNlZCBiZWZvcmUgdGhhdCB0aGUgYnJva2VuIFJlZGhhdCA3LjAgZ2NjCisJICAgZG9lc24ndCBwYXJzZS4gUmVwb3J0ZWQgYnkgPG1vbmtleWlxQGRpbmdvYmx1ZS5uZXQuYXU+LiAKKworMi8yNi8yMDAxOiBta29lcHBlCisJICAgW0d1aWxlXSBGaXhlZCB0eXBlbWFwcyBmb3IgY2hhciAqT1VUUFVULCBjaGFyICpCT1RIOyBhIGJhZAorCSAgIGZyZWUoKSB3b3VsZCBiZSBlbWl0dGVkLiAgQWRkZWQgdHlwZW1hcCBmb3IgU0NNLgorCisKIFZlcnNpb24gMS4zIEFscGhhIDUgCiA9PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL1NXSUcvRG9jL2VuZ2luZWVyaW5nLmh0bWwgYi9TV0lHL0RvYy9lbmdpbmVlcmluZy5odG1sCmluZGV4IDlkMDFlYmIuLmU5ZDYwYjMgMTAwNjQ0Ci0tLSBhL1NXSUcvRG9jL2VuZ2luZWVyaW5nLmh0bWwKKysrIGIvU1dJRy9Eb2MvZW5naW5lZXJpbmcuaHRtbApAQCAtMjAsNyArMjAsMjQgQEAKIDxwPgogKE5vdGUgOiBUaGlzIGlzIGEgd29yayBpbiBwcm9ncmVzcy4pIAogCis8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgorPHVsPgorPGxpPjxhIG5hbWU9ImkxIiBocmVmPSIjMSI+MS4gSW50cm9kdWN0aW9uPC9hPgorPGxpPjxhIG5hbWU9ImkyIiBocmVmPSIjMiI+Mi4gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2VzIGFuZCBMaWJyYXJpZXM8L2E+Cis8bGk+PGEgbmFtZT0iaTMiIGhyZWY9IiMzIj4zLiBUaGUgU291cmNlIERpcmVjdG9yeSBhbmQgTW9kdWxlIE5hbWVzPC9hPgorPGxpPjxhIG5hbWU9Imk0IiBocmVmPSIjNCI+NC4gSW5jbHVkZSBGaWxlczwvYT4KKzxsaT48YSBuYW1lPSJpNSIgaHJlZj0iIzUiPjUuIEZpbGUgU3RydWN0dXJlPC9hPgorPGxpPjxhIG5hbWU9Imk2IiBocmVmPSIjNiI+Ni4gQm90dG9tLVVwIERlc2lnbjwvYT4KKzxsaT48YSBuYW1lPSJpNyIgaHJlZj0iIzciPjcuIEZ1bmN0aW9uczwvYT4KKzxsaT48YSBuYW1lPSJpOCIgaHJlZj0iIzgiPjguIE5hbWluZyBDb252ZW50aW9uczwvYT4KKzxsaT48YSBuYW1lPSJpOSIgaHJlZj0iIzkiPjkuIFZpc2liaWxpdHk8L2E+Cis8bGk+PGEgbmFtZT0iaTEwIiBocmVmPSIjMTAiPjEwLiBNaXNjZWxsYW5lb3VzIENvZGluZyBHdWlkZWxpbmVzPC9hPgorPGxpPjxhIG5hbWU9ImkxMSIgaHJlZj0iIzExIj4xMS4gQ1ZTIFRhZ2dpbmcgQ29udmVudGlvbnM8L2E+Cis8L3VsPgorCis8YSBuYW1lPSIxIiBocmVmPSIjaTEiPgogPGgyPjEuIEludHJvZHVjdGlvbjwvaDI+Cis8L2E+CiAKIFRoZSBwdXJwb3NlIG9mIHRoaXMgZG9jdW1lbnQgaXMgdG8gZGVzY3JpYmUgdmFyaW91cyBjb2RpbmcgY29udmVudGlvbnMKIGFuZCBvcmdhbml6YXRpb25hbCBhc3BlY3RzIGZvciBTV0lHIGRldmVsb3BlcnMuIFRoZSBpZGVhIGZvciB0aGlzCkBAIC01OCw3ICs3NSw5IEBACiBwcmltYXJpbHkgZHJhd24gZnJvbSBteSBvd24gZXhwZXJpZW5jZSBkZXZlbG9waW5nIHNvZnR3YXJlIGFuZAogb2JzZXJ2aW5nIHRoZSBwcmFjdGljZXMgb2Ygb3RoZXIgc3VjY2Vzc2Z1bCBwcm9qZWN0cy4KIAorPGEgbmFtZT0iMiIgaHJlZj0iI2kyIj4KIDxoMj4yLiBQcm9ncmFtbWluZyBMYW5ndWFnZXMgYW5kIExpYnJhcmllcyA8L2gyPgorPC9hPgogCiBBbGwgU1dJRyBtb2R1bGVzIG11c3QgYmUgd3JpdHRlbiBpbiBlaXRoZXIgQU5TSSBDIG9yIG9uZSBvZiB0aGUKIHNjcmlwdGluZyBsYW5ndWFnZXMgZm9yIHdoaWNoIFNXSUcgY2FuIGdlbmVyYXRlIGFuIGludGVyZmFjZSAoZS5nLiwKQEAgLTgxLDcgKzEwMCw5IEBACiB0aGF0IGl0IGNhbiBiZSBvbWl0dGVkIG9uIHByb2JsZW1hdGljIHBsYXRmb3Jtcy4gIElmIHlvdSBhcmUgdW5zdXJlCiBhYm91dCBhIGxpYnJhcnkgY2FsbCwgY2hlY2sgdGhlIG1hbiBwYWdlIG9yIGNvbnRhY3QgRGF2ZS4KIAorPGEgbmFtZT0iMyIgaHJlZj0iI2kzIj4KIDxoMj4zLiBUaGUgU291cmNlIERpcmVjdG9yeSBhbmQgTW9kdWxlIE5hbWVzPC9oMj4KKzwvYT4KIAogQWxsIFNXSUcgbW9kdWxlcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgIlNvdXJjZSIgZGlyZWN0b3J5LiAgV2l0aGluCiB0aGlzIGRpcmVjdG9yeSwgZWFjaCBtb2R1bGUgaXMgcGxhY2VkIGludG8gaXRzIG93biBzdWJkaXJlY3RvcnkuICBUaGUKQEAgLTEwMCw3ICsxMjEsOSBAQAogc3RhcnQgd2l0aCBudW1iZXJzLCBpbmNsdWRlIHVuZGVyc2NvcmVzIG9yIGFueSBvdGhlciBzcGVjaWFsCiBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuCiAKLTxoMj40LiBJbmNsdWRlIGZpbGVzIDwvaDI+Cis8YSBuYW1lPSI0IiBocmVmPSIjaTQiPgorPGgyPjQuIEluY2x1ZGUgRmlsZXMgPC9oMj4KKzwvYT4KIAogQWxsIG1vZHVsZXMgc2hvdWxkIGluY2x1ZGUgYSBoZWFkZXIgZmlsZSB0aGF0IGRlZmluZXMgdGhlIHB1YmxpYyBpbnRlcmZhY2UuIAogVGhlIG5hbWUgb2YgdGhpcyBoZWFkZXIgZmlsZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0gInN3aWdtb2R1bGUuaCIgd2hlcmUKQEAgLTE1MCw3ICsxNzMsOSBAQAogPHA+CiBUbyBtaW5pbWl6ZSBjb21waWxhdGlvbiB0aW1lLCBwbGVhc2UgaW5jbHVkZSBhcyBmZXcgb3RoZXIgaGVhZGVyIGZpbGVzIGFzIHBvc3NpYmxlLgogCis8YSBuYW1lPSI1IiBocmVmPSIjaTUiPgogPGgyPjUuIEZpbGUgU3RydWN0dXJlIDwvaDI+Cis8L2E+CiAKIEVhY2ggZmlsZSBpbiBhIG1vZHVsZSBzaG91bGQgYmUgZ2l2ZW4gYSBmaWxlbmFtZSB0aGF0IGlzIGFsbCBsb3dlcmNhc2UgbGV0dGVycwogc3VjaCBhcyAicGFyc2VyLmMiLCBub3QgIlBhcnNlci5jIiBvciAiUEFSU0VSLmMiLiAgIFBsZWFzZSBub3RlIHRoYXQgZmlsZW5hbWVzCkBAIC0yMTAsNyArMjM1LDkgQEAKIG1hbnkgc21hbGwgZmlsZXMgYXMgdGhpcyBpbmNyZWFzZXMgY29tcGlsYXRpb24gdGltZSBhbmQgbWFrZXMgdGhlCiBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvbyBjb21wbGljYXRlZC4KIAorPGEgbmFtZT0iNiIgaHJlZj0iI2k2Ij4KIDxoMj42LiBCb3R0b20tVXAgRGVzaWduIDwvaDI+Cis8L2E+CiAKIFdpdGhpbiBlYWNoIHNvdXJjZSBmaWxlLCB0aGUgcHJlZmVycmVkIG9yZ2FuaXphdGlvbiBpcyB0byB1c2Ugd2hhdCBpcwoga25vd24gYXMgImJvdHRvbS11cCIgZGVzaWduLiAgVW5kZXIgdGhpcyBzY2hlbWUsIGxvd2VyLWxldmVsIGZ1bmN0aW9ucwpAQCAtMjQ4LDcgKzI3NSw5IEBACiBlbGltaW5hdGVzIHRoZSBuZWVkIHRvIGluY2x1ZGUgZm9yd2FyZCByZWZlcmVuY2VzLS1yZXN1bHRpbmcgaW4KIGNsZWFuZXIgY29kZSBhbmQgZmV3ZXIgY29tcGlsYXRpb24gZXJyb3JzLgogCis8YSBuYW1lPSI3IiBocmVmPSIjaTciPgogPGgyPjcuIEZ1bmN0aW9uczwvaDI+Cis8L2E+CiAKIEFsbCBmdW5jdGlvbnMgc2hvdWxkIGhhdmUgYSBmdW5jdGlvbiBoZWFkZXIgdGhhdCBnaXZlcyB0aGUgZnVuY3Rpb24gbmFtZQogYW5kIGEgc2hvcnQgZGVzY3JpcHRpb24gbGlrZSB0aGlzOgpAQCAtMjc5LDcgKzMwOCw5IEBACiBkZWNsYXJhdGlvbiBzeW50YXguICAgVGhlIEFOU0kgc3RhbmRhcmQgaGFzIGJlZW4gYXJvdW5kIGxvbmcgZW5vdWdoIGZvciAKIHRoaXMgdG8gYmUgYSBub24taXNzdWUuCiAKKzxhIG5hbWU9IjgiIGhyZWY9IiNpOCI+CiA8aDI+OC4gTmFtaW5nIENvbnZlbnRpb25zPC9oMj4KKzwvYT4KIAogVGhlIGZvbGxvd2luZyBjb252ZW50aW9ucyBhcmUgdXNlZCB0byBuYW1lIHZhcmlvdXMgb2JqZWN0cyB0aHJvdWdob3V0IFNXSUcuCiAKQEAgLTM2Miw3ICszOTMsOSBAQAogU3RhdGljIGRlY2xhcmF0aW9ucyBhcmUgZnJlZSB0byB1c2UgYW55IG5hbWluZyBjb252ZW50aW9uIHRoYXQgaXMgYXBwcm9wcmlhdGUuIEhvd2V2ZXIsIG1vc3QKIGV4aXN0aW5nIHBhcnRzIG9mIFNXSUcgdXNlIGxvd2VyLWNhc2UgbmFtZXMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb252ZW50aW9uIGFzIGRlc2NyaWJlZCBmb3IgZnVuY3Rpb25zLgogCis8YSBuYW1lPSI5IiBocmVmPSIjaTkiPgogPGgyPjkuIFZpc2liaWxpdHk8L2gyPgorPC9hPgogCiBNb2R1bGVzIHNob3VsZCBrZWVwIHRoZSBmb2xsb3dpbmcgcnVsZXMgaW4gbWluZCB3aGVuIGV4cG9zaW5nIHRoZWlyIGludGVybmFsczoKIApAQCAtNDAzLDEyICs0MzYsNTAgQEAKIAogPC91bD4KIAotPGgyPjEwLiBNaXNjZWxsYW5lb3VzIDwvaDI+Cis8YSBuYW1lPSIxMCIgaHJlZj0iI2kxMCI+Cis8aDI+MTAuIE1pc2NlbGxhbmVvdXMgQ29kaW5nIEd1aWRlbGluZXM8L2gyPgorPC9hPgogCiA8dWw+CiA8bGk+IERvIG5vdCB1c2UgdGhlIHRlcm5hcnkgPzogb3BlcmF0b3IuICBJdCBpcyB1bm5lY2Vzc2FyaWx5IGVycm9yIHByb25lLAogaGFyZCBmb3IgcGVvcGxlIHRvIHJlYWQsIGFuZCBoYXJkIHRvIG1haW50YWluIGNvZGUgdGhhdCB1c2VzIGl0LgorW0kgZG9uJ3QgYWdyZWUgdy8gdGhpcyBndWlkZWxpbmUuICA/OiBvcGVyYXRvciBjYW4gYmUgYWJ1c2VkCitqdXN0IGxpa2UgZXZlcnl0aGluZyBlbHNlLCBidXQgaXQgY2FuIGFsc28gYmUgdXNlZCBjbGVhbmx5LiAgSW4gc29tZSBzdHlsZXMgb2YKK3Byb2dyYW1taW5nLCBpdCBpcyB0aGUgYmVzdCB0b29sIGZvciB0aGUgam9iLiAgLS10dG5dCiA8L3VsPgogCis8YSBuYW1lPSIxMSIgaHJlZj0iI2kxMSI+Cis8aDI+MTEuIENWUyBUYWdnaW5nIENvbnZlbnRpb25zPC9oMj4KKzwvYT4KKworVXNlIDx0dD5jdnMgdGFnPC90dD4gdG8gZGVjbGFyZSBzb21lIHNldCBvZiBmaWxlIHJldmlzaW9ucyBhcyByZWxhdGVkIGluIHNvbWUKK3N5bWJvbGljIHdheS4gIFRoaXMgZWFzZXMgcmVmZXJlbmNlLCByZXRyaWV2YWwgYW5kIG1hbmlwdWxhdGlvbiBvZiB0aGVzZSBmaWxlcworbGF0ZXIuICBBdCB0aGUgbW9tZW50ICgyMDAxLzAxLzE2IDE0OjAyOjUzKSwgdGhlIGNvbnZlbnRpb25zIGFyZSB2ZXJ5IHNpbXBsZTsKK2xldCdzIGhvcGUgdGhleSBzdGF5IHRoYXQgd2F5IQorCis8cD4KK1RoZXJlIGFyZSB0d28gdHlwZXMgb2YgdGFncywgaW50ZXJuYWwgKGFrYSBwZXJzb25hbCkgYW5kIGV4dGVybmFsLgorSW50ZXJuYWwgdGFncyBhcmUgdXNlZCBieSBTV0lHIGRldmVsb3BlcnMgcHJpbWFyaWx5LCB3aGVyZWFzIGV4dGVybmFsCit0YWdzIGFyZSB1c2VkIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIHBlb3BsZSB3LyBhbm9ueW1vdXMgY3ZzIGFjY2Vzcy4KKzx1bD4KKzxsaT4gSW50ZXJuYWwgdGFncyBzaG91bGQgc3RhcnQgd2l0aCB0aGUgZGV2ZWxvcGVyIG5hbWUgYW5kIGEgaHlwaGVuLgorPGxpPiBFeHRlcm5hbCB0YWdzIHNob3VsZCBzdGFydCB3aXRoICJ2LSIuCis8L3VsPgorCitUaGF0J3MgYWxsIHRoZXJlIGlzIHRvIGl0LiAgU29tZSBleGFtcGxlIHRhZ3M6CisKKzx1bD4KKzxsaT4gdHRuLXByZS14bWwtcGF0Y2gKKzxsaT4gdHRuLXBvc3QteG1sLXBhdGNoCis8bGk+IHR0bi1nb2luZy1vbi12YWNhdGlvbi1zby1kdXRpZnVsbHktdGFnZ2luZy1ub3cKKzxsaT4gdi0xLTMtYTM3LWZpeGVzLWJ1Zy0yNDMyCis8bGk+IHYtMS0zLWEzNy1maXhlcy1idWctMjQzMworPGxpPiB2LTEtMy1hMzctZml4ZXMtYnVnLTI0MzItYWdhaW4KKzxsaT4gdi0xLTMtYTM3LXJlbGVhc2UKKzwvdWw+CisKKzxocj4KK0NvcHlyaWdodCAoQykgMTk5OS0yMDAxCis8YSBocmVmPSJtYWlsdG86c3dpZy1kZXZAY3MudWNoaWNhZ28uZWR1Ij5TV0lHIERldmVsb3BtZW50IFRlYW08L2E+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9TV0lHL0RvYy9pbmRleC5odG1sIGIvU1dJRy9Eb2MvaW5kZXguaHRtbAppbmRleCBmMWU2MGNlLi5jZDJhNWRhIDEwMDY0NAotLS0gYS9TV0lHL0RvYy9pbmRleC5odG1sCisrKyBiL1NXSUcvRG9jL2luZGV4Lmh0bWwKQEAgLTEwLDcgKzEwLDEzIEBACiA8bGk+PGEgaHJlZj0id2hpdGVwYXBlci5odG1sIj5Qcm9qZWN0IE92ZXJ2aWV3IFdoaXRlcGFwZXI8L2E+CiA8bGk+PGEgaHJlZj0iZW5naW5lZXJpbmcuaHRtbCI+RW5naW5lZXJpbmcgTWFudWFsPC9hPgogPGxpPjxhIGhyZWY9ImludGVybmFscy5odG1sIj5JbnRlcm5hbHMgTWFudWFsPC9hPgorPGxpPjxhIGhyZWY9Impzd2lnLmh0bWwiPlNvbWUgSmF2YSBVc2VyIERvY3VtZW50YXRpb248L2E+Cis8bGk+PGEgaHJlZj0ibWlncmF0ZS50eHQiPlNXSUcxLjMgTWlncmF0aW9uIEd1aWRlPC9hPgogPC91bD4KIAorPGhyPgorQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKzxhIGhyZWY9Im1haWx0bzpzd2lnLWRldkBjcy51Y2hpY2Fnby5lZHUiPlNXSUcgRGV2ZWxvcG1lbnQgVGVhbTwvYT4KKwogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU1dJRy9Eb2MvaW50ZXJuYWxzLmh0bWwgYi9TV0lHL0RvYy9pbnRlcm5hbHMuaHRtbAppbmRleCAxZGE3OTE1Li43NmI1ZDA1IDEwMDY0NAotLS0gYS9TV0lHL0RvYy9pbnRlcm5hbHMuaHRtbAorKysgYi9TV0lHL0RvYy9pbnRlcm5hbHMuaHRtbApAQCAtOTQwLDcgKzk0MCw3IEBACiA8aDI+MTAuIEd1aWxlIFN1cHBvcnQ8L2gyPgogPC9hPgogCi1SZXZpc2VkOiBNYXR0aGlhcyBLJm91bWw7cHBlIChBdWd1c3QgMzAsIDIwMDApCitSZXZpc2VkOiBNYXR0aGlhcyBLJm91bWw7cHBlIChNYXkgMjksIDIwMDEpCiAKIAogPHA+CkBAIC05NjMsMjcgKzk2MywxMjkgQEAKIEd1aWxlIHN1cHBvcnQgaXMgY29tcGxpY2F0ZWQgYnkgYSBsYWNrIG9mIHVzZXIgY29tbXVuaXR5IGNvaGVzaXZlbmVzcywKIHdoaWNoIG1hbmlmZXN0cyBpbiBtdWx0aXBsZSBzaGFyZWQtbGlicmFyeSB1c2FnZSBjb252ZW50aW9ucy4gIEEgc2V0IG9mCiBwb2xpY2llcyBpbXBsZW1lbnRpbmcgYSB1c2FnZSBjb252ZW50aW9uIGlzIGNhbGxlZCBhIDxiPmxpbmthZ2U8L2I+LgotVGhlIGRlZmF1bHQgbGlua2FnZSBpcyB0aGUgc2ltcGxlc3Q7IG5vdGhpbmcgc3BlY2lhbCBpcyBkb25lLiAgSW4gdGhpcwotY2FzZSA8Y29kZT5TV0lHX2luaXQoKTwvY29kZT4gaXMgcHJvdmlkZWQgYW5kIHVzZXJzIG11c3QgZG8gc29tZXRoaW5nCi1saWtlIHRoaXM6CiAKKzxoND5TaW1wbGUgTGlua2FnZTwvaDQ+CisKK1RoZSBkZWZhdWx0IGxpbmthZ2UgaXMgdGhlIHNpbXBsZXN0OyBub3RoaW5nIHNwZWNpYWwgaXMgZG9uZS4gIEluIHRoaXMKK2Nhc2UgdGhlIGZ1bmN0aW9uIDxjb2RlPlNXSUdfaW5pdCgpPC9jb2RlPiBpcyBleHBvcnRlZC4gU2ltcGxlIGxpbmthZ2UKK2NhbiBiZSB1c2VkIGluIHNldmVyYWwgd2F5czoKKworPHVsPgorPGxpPjxiPkVtYmVkZGVkIEd1aWxlLCBubyBtb2R1bGVzLjwvYj4gWW91IHdhbnQgdG8gZW1iZWQgYSBHdWlsZQoraW50ZXJwcmV0ZXIgaW50byB5b3VyIHByb2dyYW07IGFsbCBiaW5kaW5ncyBtYWRlIGJ5IFNXSUcgc2hhbGwgc2hvdyB1cAoraW4gdGhlIHJvb3QgbW9kdWxlLiBUaGVuIGNhbGwgPGNvZGU+U1dJR19pbml0KCk8L2NvZGU+IGluIHRoZQorPGNvZGU+aW5uZXJfbWFpbigpPC9jb2RlPiBmdW5jdGlvbi4gIFNlZSB0aGUgInNpbXBsZSIgYW5kICJtYXRyaXgiIGV4YW1wbGVzIHVuZGVyCis8Y29kZT5FeGFtcGxlcy9ndWlsZTwvY29kZT4uCisKKzxsaT48Yj5EeW5hbWljIG1vZHVsZSBtaXgtaW4uPC9iPiBZb3Ugd2FudCB0byBjcmVhdGUgYSBHdWlsZSBtb2R1bGUKK3VzaW5nIDxjb2RlPmRlZmluZS1tb2R1bGU8L2NvZGU+LCBjb250YWluaW5nIGJvdGggU2NoZW1lIGNvZGUgYW5kCitiaW5kaW5ncyBtYWRlIGJ5IFNXSUc7IHlvdSB3YW50IHRvIGxvYWQgdGhlIFNXSUcgbW9kdWxlcyBhcyBzaGFyZWQKK2xpYnJhcmllcyBpbnRvIEd1aWxlLiAKIDxibG9ja3F1b3RlPgogPHByZT4KKyhkZWZpbmUtbW9kdWxlIChteSBtb2R1bGUpKQogKGRlZmluZSBteS1zbyAoZHluYW1pYy1saW5rICIuL2V4YW1wbGUuc28iKSkKLShkeW5hbWljLWNhbGwgIlNXSUdfaW5pdCIgbXktc28pCisoZHluYW1pYy1jYWxsICJTV0lHX2luaXQiIG15LXNvKSA7IG1ha2UgU1dJRyBiaW5kaW5ncworOzsgU2NoZW1lIGRlZmluaXRpb25zIGNhbiBnbyBoZXJlCiA8L3ByZT4KIDwvYmxvY2txdW90ZT4KK05ld2VyIEd1aWxlIHZlcnNpb25zIHByb3ZpZGUgYSBzaG9ydGhhbmQgZm9yIDxjb2RlPmR5bmFtaWMtbGluazwvY29kZT4KK2FuZCA8Y29kZT5keW5hbWljLWNhbGw8L2NvZGU+OgorPGJsb2NrcXVvdGU+Cis8cHJlPgorKGxvYWQtZXh0ZW5zaW9uICIuL2V4YW1wbGUuc28iICJTV0lHX2luaXQiKQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CitZb3UgbmVlZCB0byBleHBsaWNpdGx5IGV4cG9ydCB0aG9zZSBiaW5kaW5ncyBtYWRlIGJ5IFNXSUcgdGhhdCB5b3UKK3dhbnQgdG8gaW1wb3J0IGludG8gb3RoZXIgbW9kdWxlczoKKzxibG9ja3F1b3RlPgorPHByZT4KKyhleHBvcnQgZm9vIGJhcikKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorSW4gdGhpcyBleGFtcGxlLCB0aGUgcHJvY2VkdXJlcyA8Y29kZT5mb288L2NvZGU+IGFuZCA8Y29kZT5iYXI8L2NvZGU+Cit3b3VsZCBiZSBleHBvcnRlZC4KKzwvdWw+CiAKLUF0IHRoaXMgdGltZSwgdGhlIG5hbWUgPGNvZGU+U1dJR19pbml0PC9jb2RlPiBpcyBoYXJkY29kZWQ7IHRoaXMKLWFwcHJvYWNoIGRvZXMgbm90IHdvcmsgd2l0aCBtdWx0aXBsZSBzd2lnLW1vZHVsZXMuICBOT1RFOiBUaGUgInNpbXBsZSIKLWFuZCAibWF0cml4IiBleGFtcGxlcyB1bmRlciBFeGFtcGxlcy9ndWlsZSBpbmNsdWRlIGd1aWxlbWFpbi5pOyB0aGUKLXJlc3VsdGluZyBzdGFuZGFsb25lIGludGVycHJldGVyIGRvZXMgbm90IHJlcXVpcmUgY2FsbHMgdG8KLTxjb2RlPmR5bmFtaWMtbGluazwvY29kZT4gYW5kIDxjb2RlPmR5bmFtaWMtY2FsbDwvY29kZT4sIGFzIHNob3duIGhlcmUuCitJZiB5b3Ugd2FudCB0byBpbmNsdWRlIHNldmVyYWwgU1dJRyBtb2R1bGVzLCB5b3Ugd291bGQgbmVlZCB0byByZW5hbWUKKzxjb2RlPlNXSUdfaW5pdDwvY29kZT4gdmlhIGEgcHJlcHJvY2Vzc29yIGRlZmluZSB0byBhdm9pZCBzeW1ib2wKK2NsYXNoZXMuIEZvciB0aGlzIGNhc2UsIGhvd2V2ZXIsIHBhc3NpdmUgbGlua2FnZSBpcyBhdmFpbGFibGUuCiAKLTxwPgotQSBzZWNvbmQgbGlua2FnZSBjcmVhdGVzICJsaWJ0b29sIGRsIG1vZHVsZSIgd3JhcHBlcnMsIGFuZCBjdXJyZW50bHkgaXMKLWJyb2tlbi4gIFdob2V2ZXIgZml4ZXMgdGhpcyBuZWVkcyB0byB0cmFjayBHdWlsZSdzIGxpYnRvb2wgZGwgbW9kdWxlCi1jb252ZW50aW9uLCBzaW5jZSB0aGF0IGlzIG5vdCBmaW5hbGl6ZWQuCis8aDQ+UGFzc2l2ZSBMaW5rYWdlPC9oND4KKworPHA+UGFzc2l2ZSBsaW5rYWdlIGlzIGp1c3QgbGlrZSBzaW1wbGUgbGlua2FnZSwgYnV0IGl0IGdlbmVyYXRlcyBhbgoraW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gd2hvc2UgbmFtZSBpcyBkZXJpdmVkIGZyb20gdGhlIG1vZHVsZSBhbmQKK3BhY2thZ2UgbmFtZSAoc2VlIGJlbG93KS4gCisKKzxwPllvdSBzaG91bGQgdXNlIHBhc3NpdmUgbGlua2FnZSByYXRoZXIgdGhhbiBzaW1wbGUgbGlua2FnZSB3aGVuIHlvdQorYXJlIHVzaW5nIG11bHRpcGxlIG1vZHVsZXMuCisKKzxoND5OYXRpdmUgR3VpbGUgTW9kdWxlIExpbmthZ2U8L2g0PgorCis8cD5TV0lHIGNhbiBhbHNvIGdlbmVyYXRlIHdyYXBwZXIgY29kZSB0aGF0IGRvZXMgYWxsIHRoZSBHdWlsZSBtb2R1bGUKK2RlY2xhcmF0aW9ucyBvbiBpdHMgb3duIGlmIHlvdSBwYXNzIGl0IHRoZSA8Y29kZT4tTGlua2FnZQorbW9kdWxlPC9jb2RlPiBjb21tYW5kLWxpbmUgb3B0aW9uLiBUaGlzIHJlcXVpcmVzIEd1aWxlIDEuNS4wIG9yIGxhdGVyLgorCis8cD5UaGUgbW9kdWxlIG5hbWUgaXMgc2V0IHdpdGggdGhlIDxjb2RlPi1wYWNrYWdlPC9jb2RlPiBhbmQKKzxjb2RlPi1tb2R1bGU8L2NvZGU+IGNvbW1hbmQtbGluZSBvcHRpb25zLiBTdXBwb3NlIHlvdSB3YW50IHRvIGRlZmluZQorYSBtb2R1bGUgd2l0aCBuYW1lIDxjb2RlPihteSBsaWIgZm9vKTwvY29kZT47IHRoZW4geW91IHdvdWxkIGhhdmUgdG8KK3Bhc3MgdGhlIG9wdGlvbnMgPGNvZGU+LXBhY2thZ2UgPHZhcj5teTwvdmFyPi88dmFyPmxpYjwvdmFyPiAtbW9kdWxlCis8dmFyPmZvbzwvdmFyPjwvY29kZT4uIE5vdGUgdGhhdCB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBuYW1lIGNhbiBhbHNvIGJlIHNldAordmlhIHRoZSBTV0lHIGRpcmVjdGl2ZSA8Y29kZT4lbW9kdWxlPC9jb2RlPi4gCisKKzxwPllvdSBjYW4gdXNlIHRoaXMgbGlua2FnZSBpbiBzZXZlcmFsIHdheXM6CisKKzx1bD4KKzxsaT48Yj5FbWJlZGRlZCBHdWlsZSB3aXRoIFNXSUcgbW9kdWxlcy48L2I+IFlvdSB3YW50IHRvIGVtYmVkIGEgR3VpbGUKK2ludGVycHJldGVyIGludG8geW91ciBwcm9ncmFtOyB0aGUgU1dJRyBiaW5kaW5ncyBzaGFsbCBiZSBwdXQgaW50bworZGlmZmVyZW50IG1vZHVsZXMuIFNpbXBseSBjYWxsIHRoZSBmdW5jdGlvbiAKKzxjb2RlPnNjbV9pbml0Xzx2YXI+bXk8L3Zhcj5fPHZhcj5tb2R1bGVzPC92YXI+Xzx2YXI+Zm9vPC92YXI+X21vZHVsZTwvY29kZT4KK2luIHRoZSA8Y29kZT5pbm5lcl9tYWluKCk8L2NvZGU+IGZ1bmN0aW9uLgorCis8bGk+PGI+RHluYW1pYyBHdWlsZSBtb2R1bGVzLjwvYj4gWW91IHdhbnQgdG8gbG9hZCB0aGUgU1dJRyBtb2R1bGVzIGFzCitzaGFyZWQgbGlicmFyaWVzIGludG8gR3VpbGU7IGFsbCBiaW5kaW5ncyBhcmUgYXV0b21hdGljYWxseSBwdXQgaW4KK25ld2x5IGNyZWF0ZWQgR3VpbGUgbW9kdWxlcy4gCis8YmxvY2txdW90ZT4KKzxwcmU+CisoZGVmaW5lIG15LXNvIChkeW5hbWljLWxpbmsgIi4vZm9vLnNvIikpCis7OyBjcmVhdGUgbmV3IG1vZHVsZSBhbmQgcHV0IGJpbmRpbmdzIHRoZXJlOgorKGR5bmFtaWMtY2FsbCAic2NtX2luaXRfbXlfbW9kdWxlc19mb29fbW9kdWxlIiBteS1zbykgCis8L3ByZT4KKzwvYmxvY2txdW90ZT4KK05ld2VyIEd1aWxlIHZlcnNpb25zIGhhdmUgYSBzaG9ydGhhbmQgcHJvY2VkdXJlIGZvciB0aGlzOgorPGJsb2NrcXVvdGU+Cis8cHJlPgorKGxvYWQtZXh0ZW5zaW9uICIuL2Zvby5zbyIgInNjbV9pbml0X215X21vZHVsZXNfZm9vX21vZHVsZSIpCis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKzwvdWw+CisKKzxoND5PbGQgQXV0by1Mb2FkaW5nIEd1aWxlIE1vZHVsZSBMaW5rYWdlPC9oND4KKworPHA+R3VpbGUgdXNlZCB0byBzdXBwb3J0IGFuIGF1dG9sb2FkaW5nIGZhY2lsaXR5IGZvciBvYmplY3QtY29kZQorbW9kdWxlcy4gVGhpcyBzdXBwb3J0IGhhcyBiZWVuIG1hcmtlZCBkZXByZWNhdGVkIGluIHZlcnNpb24gMS40LjEgYW5kCitpcyBnb2luZyB0byBkaXNhcHBlYXIgc29vbmVyIG9yIGxhdGVyLiBTV0lHIHN0aWxsIHN1cHBvcnRzIGJ1aWxkaW5nCithdXRvLWxvYWRpbmcgbW9kdWxlcyBpZiB5b3UgcGFzcyBpdCB0aGUgPGNvZGU+LUxpbmthZ2UgbHRkbG1vZDwvY29kZT4KK2NvbW1hbmQtbGluZSBvcHRpb24uCisKKzxwPkF1dG8tbG9hZGluZyB3b3JrZWQgbGlrZSB0aGlzOiBTdXBwb3NlIGEgbW9kdWxlIHdpdGggbmFtZSA8Y29kZT4obXkKK2xpYiBmb28pPC9jb2RlPiBpcyByZXF1aXJlZCBhbmQgbm90IGxvYWRlZCB5ZXQuICBHdWlsZSB3aWxsIHRoZW4gc2VhcmNoCithbGwgZGlyZWN0b3JpZXMgaW4gaXRzIHNlYXJjaCBwYXRoCitmb3IgYSBTY2hlbWUgZmlsZSA8Y29kZT5teS9tb2R1bGVzL2Zvby5zY208L2NvZGU+IG9yIGEgc2hhcmVkIGxpYnJhcnkKKzxjb2RlPjx2YXI+bXk8L3Zhcj4vPHZhcj5tb2R1bGVzPC92YXI+L2xpYjx2YXI+Zm9vPC92YXI+LnNvPC9jb2RlPiAob3IKKzxjb2RlPjx2YXI+bXk8L3Zhcj4vPHZhcj5tb2R1bGVzPC92YXI+L2xpYjx2YXI+Zm9vPC92YXI+LmxhPC9jb2RlPjsgCitzZWUgdGhlIEdOVSBsaWJ0b29sIGRvY3VtZW50YXRpb24pLiBJZiBhCitzaGFyZWQgbGlicmFyeSBpcyBmb3VuZCB0aGF0IGNvbnRhaW5zIHRoZSBzeW1ib2wKKzxjb2RlPnNjbV9pbml0Xzx2YXI+bXk8L3Zhcj5fPHZhcj5tb2R1bGVzPC92YXI+Xzx2YXI+Zm9vPC92YXI+X21vZHVsZTwvY29kZT4sIAordGhlIGxpYnJhcnkgaXMgbG9hZGVkLCBhbmQgdGhlIGZ1bmN0aW9uIGF0IHRoYXQgc3ltYm9sIGlzIGNhbGxlZCB3aXRoCitubyBhcmd1bWVudHMgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kdWxlLgorCis8cD5XaGVuIGludm9rZWQgd2l0aCB0aGUgPGNvZGU+LUxpbmthZ2UgbHRkbG1vZDwvY29kZT4gY29tbWFuZC1saW5lCitvcHRpb24sIFNXSUcgZ2VuZXJhdGVzIGFuIGV4cG9ydGVkIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB3aXRoCithbiBhcHJvcHJpYXRlIG5hbWUuIAorCisKKzxoND5Ib2JiaXQ0RCBMaW5rYWdlPC9oND4KIAogPHA+CiBUaGUgb25seSBvdGhlciBsaW5rYWdlIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUgY3JlYXRlcyBzaGFyZWQgb2JqZWN0CkBAIC05OTEsNyArMTA5Myw2IEBACiBndWlsZSBtb2R1bGUuICBUaGlzIGlzIGNhbGxlZCB0aGUgImhvYmJpdCIgbGlua2FnZSwgYW5kIHJlcXVpcmVzIGFsc28KIHVzaW5nIHRoZSAiLXBhY2thZ2UiIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gc2V0IHRoZSBwYXJ0IG9mIHRoZSBtb2R1bGUKIG5hbWUgYmVmb3JlIHRoZSBsYXN0IHN5bWJvbC4gIEZvciBleGFtcGxlLCBib3RoIGNvbW1hbmQgbGluZXM6Ci1bY2hlY2ttZTp0dG5dCiAKIDxibG9ja3F1b3RlPgogPHByZT4KQEAgLTEwMDUsMTAgKzExMDYsMjUgQEAKIG15L2xpYi9saWJmb28uc28uWC5ZLlogYW5kIGZyaWVuZHMuICBUaGlzIHNjaGVtZSBpcyBzdGlsbCB2ZXJ5CiBleHBlcmltZW50YWw7IHRoZSAoaG9iYml0NGQgbGluaykgY29udmVudGlvbnMgYXJlIG5vdCB3ZWxsIHVuZGVyc3Rvb2QuCiAKLTxwPgotVGhlcmUgYXJlIG5vIG90aGVyIGxpbmthZ2UgdHlwZXMgcGxhbm5lZCwgYnV0IHRoYXQgY291bGQgY2hhbmdlLi4uICBUbwotYWRkIGEgbmV3IHR5cGUsIGFkZCB0aGUgbmFtZSB0byB0aGUgZW51bSBpbiBndWlsZS5oIGFuZCBhZGQgdGhlIGNhc2UgdG8KLTxjb2RlPkdVSUxFOjplbWl0X2xpbmthZ2UoKTwvY29kZT4uCisKKzxoND5HZW5lcmFsIFJlbWFya3Mgb24gTXVsdGlwbGUgU1dJRyBNb2R1bGVzPC9oND4KKworSWYgeW91IHdhbnQgdG8gdXNlIG11bHRpcGxlIFNXSUcgbW9kdWxlcywgdGhleSBoYXZlIHRvIHNoYXJlIHNvbWUgCitydW4tdGltZSBkYXRhIGZvciB0aGUgdHlwaW5nIHN5c3RlbS4gWW91IGhhdmUgdHdvIG9wdGlvbnM6CisKKzx1bD4KKzxsaT5FaXRoZXIgZ2VuZXJhdGUgYWxsIGJ1dCBvbmUgd3JhcHBlciBtb2R1bGUgd2l0aAordGhlIDxjb2RlPi1jPC9jb2RlPiBjb21tYW5kLWxpbmUgYXJndW1lbnQuICBDb21waWxlIGFsbCB3cmFwcGVyIGZpbGVzCit3aXRoIHRoZSBDIGNvbXBpbGVyIHN3aXRjaCA8Y29kZT4tRFNXSUdfR0xPQkFMPC9jb2RlPi4KKworPGxpPk9yIGdlbmVyYXRlIGFsbCB3cmFwcGVyIG1vZHVsZXMgd2l0aCB0aGUgPGNvZGU+LWM8L2NvZGU+Citjb21tYW5kLWxpbmUgYXJndW1lbnQgYW5kIGNvbXBpbGUgYWxsIHdyYXBwZXIgZmlsZXMgd2l0aCB0aGUgQworY29tcGlsZXIgc3dpdGNoIDxjb2RlPi1EU1dJR19HTE9CQUw8L2NvZGU+LiBUaGVuIGxpbmsgYWdhaW5zdCB0aGUKK3J1bnRpbWUgbGlicmFyeSA8Y29kZT5saWJzd2lnZ3VpbGU8L2NvZGU+LCB3aGljaCBpcyBidWlsdCBieQorPGNvZGU+bWFrZSBydW50aW1lPC9jb2RlPi4gVGhlIG5lZWRlZCBsaW5rZXIgZmxhZ3MgYXJlIHJlcG9ydGVkIGJ5CitTV0lHIGlmIHlvdSBpbnZva2UgaXQgd2l0aCB0aGUgPGNvZGU+LWd1aWxlIC1sZGZsYWdzPC9jb2RlPgorY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KKzwvdWw+CiAKIDxhIG5hbWU9IjEwLjMiIGhyZWY9IiNpMTAuMyI+CiA8aDM+MTAuMyBVbmRlcnNjb3JlIEZvbGRpbmc8L2gzPgpAQCAtMTAxOSwxNCArMTEzNSw2OSBAQAogZ3JvdyBhbiBvcHRpb24gdG8gaW5oaWJpdCB0aGlzIGZvbGRpbmcgaW4gdGhlIGZ1dHVyZSwgYnV0IG5vIG9uZSBoYXMKIGNvbXBsYWluZWQgc28gZmFyLgogCis8cD5Zb3UgY2FuIHVzZSB0aGUgU1dJRyBkaXJlY3RpdmVzIDxjb2RlPiVuYW1lPC9jb2RlPiBhbmQKKzxjb2RlPiVyZW5hbWU8L2NvZGU+IHRvIHNwZWNpZnkgdGhlIEd1aWxlIG5hbWUgb2YgdGhlIHdyYXBwZWQKK2Z1bmN0aW9ucyBhbmQgdmFyaWFibGVzIChzZWUgQ0hBTkdFUykuCisKIDxhIG5hbWU9IjEwLjQiIGhyZWY9IiNpMTAuNCI+CiA8aDM+MTAuNCBUeXBlbWFwczwvaDM+CiA8L2E+CiAKIDxwPgotVGhlIEd1aWxlIG1vZHVsZSBoYW5kbGVzIGFsbCBub24tcG9pbnRlciB0eXBlcyB2aWEgdHlwZW1hcHMuIFRoaXMKK1RoZSBHdWlsZSBtb2R1bGUgaGFuZGxlcyBhbGwgdHlwZXMgdmlhIHR5cGVtYXBzLiBUaGlzCiBpbmZvcm1hdGlvbiBpcyByZWFkIGZyb20gPGNvZGU+TGliL2d1aWxlL3R5cGVtYXBzLmk8L2NvZGU+LiAKIAorU29tZSBub24tc3RhbmRhcmQgdHlwZW1hcCBzdWJzdGl0dXRpb25zIGFyZSBzdXBwb3J0ZWQ6Cis8dWw+Cis8bGk+PGNvZGU+JGRlc2NyaXB0b3I8L2NvZGU+IGV4cGFuZHMgdG8gYSB0eXBlIGRlc2NyaXB0b3IgZm9yIHVzZSB3aXRoCit0aGUgPGNvZGU+U1dJR19HdWlsZV9NYWtlUHRyKCk8L2NvZGU+IGFuZAorPGNvZGU+U1dJR19HdWlsZV9HZXRQdHI8L2NvZGU+IGZ1bmN0aW9ucy4KKzxsaT5Gb3IgcG9pbnRlciB0eXBlcywgPGNvZGU+JCpkZXNjcmlwdG9yPC9jb2RlPiBleHBhbmRzIHRvIGEKK2Rlc2NyaXB0b3IgZm9yIHRoZSBkaXJlY3QgYmFzZSB0eXBlIChpLmUuLCBvbmUgcG9pbnRlciBpcyBzdHJpcHBlZCksCit3aGVyZWFzIDxjb2RlPiRiYXNlZGVzY3JpcHRvcjwvY29kZT4gZXhwYW5kcyB0byBhCitkZXNjcmlwdG9yIGZvciB0aGUgYmFzZSB0eXBlIChpLmUuLCBhbGwgcG9pbnRlcnMgYXJlIHN0cmlwcGVkKS4KKzwvdWw+CisKKzxwPkEgZnVuY3Rpb24gcmV0dXJuaW5nIDxjb2RlPnZvaWQ8L2NvZGU+IChtb3JlIHByZWNpc2VseSwgYSBmdW5jdGlvbgord2hvc2UgPGNvZGU+b3V0PC9jb2RlPiB0eXBlbWFwIHJldHVybnMgPGNvZGU+R0hfVU5TUEVDSUZJRUQ8L2NvZGU+KSBpcwordHJlYXRlZCBhcyByZXR1cm5pbmcgbm8gdmFsdWVzLiBJbiA8Y29kZT5hcmdvdXQ8L2NvZGU+IHR5cGVtYXBzLCBvbmUKK2NhbiB1c2UgdGhlIG1hY3JvIDxjb2RlPkdVSUxFX0FQUEVORF9SRVNVTFQ8L2NvZGU+IGluIG9yZGVyIHRvIGFwcGVuZAorYSB2YWx1ZSB0byB0aGUgbGlzdCBvZiBmdW5jdGlvbiByZXR1cm4gdmFsdWVzLgorCis8cD5NdWx0aXBsZSB2YWx1ZXMgY2FuIGJlIHBhc3NlZCB1cCB0byBTY2hlbWUgaW4gb25lIG9mIHRocmVlIHdheXM6Cis8dWw+Cis8bGk+PGVtPk11bHRpcGxlIHZhbHVlcyBhcyBsaXN0cy48L2VtPiAKK0J5IGRlZmF1bHQsIGlmIG1vcmUgdGhhbiBvbmUgdmFsdWUgaXMgdG8KK2JlIHJldHVybmVkLCBhIGxpc3Qgb2YgdGhlIHZhbHVlcyBpcyBjcmVhdGVkIGFuZCByZXR1cm5lZC4KKzxsaT48ZW0+TXVsdGlwbGUgdmFsdWVzIGFzIHZlY3RvcnMuPC9lbT4KK0J5IGlzc3VlaW5nIAorPGJsb2NrcXVvdGU+Cis8cHJlPiVwcmFnbWEoZ3VpbGUpIGJlZm9yZXJldHVybiA9ICJHVUlMRV9NQVlCRV9WRUNUT1IiPC9wcmU+Cis8L2Jsb2NrcXVvdGU+Cit2ZWN0b3JzIGluc3RlYWQgb2YgbGlzdHMgd2lsbCBiZSB1c2VkLgorPGxpPjxlbT5NdWx0aXBsZSB2YWx1ZXMgZm9yIG11bHRpcGxlLXZhbHVlIGNvbnRpbnVhdGlvbnMuPC9lbT4KKzxzdHJvbmc+VGhpcyBpcyB0aGUgbW9zdCBlbGVnYW50IHdheS48L3N0cm9uZz4gQnkgaXNzdWVpbmcgCis8YmxvY2txdW90ZT4KKzxwcmU+JXByYWdtYShndWlsZSkgYmVmb3JlcmV0dXJuID0gIkdVSUxFX01BWUJFX1ZBTFVFUyI8L3ByZT4KKzwvYmxvY2txdW90ZT4KK211bHRpcGxlIHZhbHVlcyBhcmUgcGFzc2VkIHRvIHRoZSBtdWx0aXBsZS12YWx1ZQorY29udGludWF0aW9uLCBhcyBjcmVhdGVkIGJ5IDxjb2RlPmNhbGwtd2l0aC12YWx1ZXM8L2NvZGU+IG9yIHRoZQorY29udmVuaWVuY2UgbWFjcm8gPGNvZGU+cmVjZWl2ZTwvY29kZT4uIFRoZSBsYXR0ZXIgaXMgYXZhaWxhYmxlIGlmIHlvdQoraXNzdWUgPGNvZGU+KHVzZS1tb2R1bGVzIChzcmZpIHNyZmktOCkpPC9jb2RlPi4gQXNzdW1pbmcgdGhhdCB5b3VyCis8Y29kZT5kaXZpZGU8L2NvZGU+IGZ1bmN0aW9uIAord2FudHMgdG8gcmV0dXJuIHR3byB2YWx1ZXMsIGEgcXVvdGllbnQgYW5kIGEgcmVtYWluZGVyLCB5b3UgY2FuIHdyaXRlOiAKKzxibG9ja3F1b3RlPgorPHByZT4KKyhyZWNlaXZlIChxdW90aWVudCByZW1haW5kZXIpCisgICAgKGRpdmlkZSAzNSAxNykKKyAgPHZhcj5ib2R5PC92YXI+Li4uKQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CitJbiA8Y29kZT48dmFyPmJvZHk8L3Zhcj48L2NvZGU+LCB0aGUgZmlyc3QgcmVzdWx0IG9mCis8Y29kZT5kaXZpZGU8L2NvZGU+IHdpbGwgYmUgYm91bmQgdG8gdGhlIHZhcmlhYmxlCis8Y29kZT5xdW90aWVudDwvY29kZT4sIGFuZCB0aGUgc2Vjb25kIHJlc3VsdCB0byA8Y29kZT5yZW1haW5kZXI8L2NvZGU+LgorPC91bD4KKwogPGEgbmFtZT0iMTAuNSIgaHJlZj0iI2kxMC41Ij4KIDxoMz4xMC41IFNtb2JzPC9oMz4KIDwvYT4KQEAgLTEwMzUsMTQgKzEyMDYsNiBAQAogRm9yIHBvaW50ZXIgdHlwZXMsIFNXSUcgdXNlcyBHdWlsZSBzbW9icy4KIAogPHA+Ci1DdXJyZW50bHksIG9uZSB3cmFwcGVyIG1vZHVsZSBtdXN0IGJlIGdlbmVyYXRlZCB3aXRob3V0Ci08Y29kZT4tYzwvY29kZT4gYW5kIGNvbXBpbGVkIHdpdGggPGNvZGU+LURTV0lHX0dMT0JBTDwvY29kZT4sIGFsbCB0aGUKLW90aGVyIHdyYXBwZXIgbW9kdWxlcyBtdXN0IGJlIGdlbmVyYXRlZCB3aXRoIDxjb2RlPi1jPC9jb2RlPi4gIE1heWJlCi1vbmUgc2hvdWxkIG1vdmUgYWxsIHRoZSBnbG9iYWwgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbWUgZnJvbQotPGNvZGU+Z3VpbGUuc3dnPC9jb2RlPiBpbnRvIGEgbGlicmFyeSwgd2hpY2ggaXMgYnVpbHQgYnkgPGNvZGU+bWFrZQotcnVudGltZTwvY29kZT4uIAotCi08cD4KIEluIGVhcmxpZXIgdmVyc2lvbnMgb2YgU1dJRywgQyBwb2ludGVycyB3ZXJlIHJlcHJlc2VudGVkIGFzIFNjaGVtZQogc3RyaW5ncyBjb250YWluaW5nIGEgaGV4YWRlY2ltYWwgcmVuZGVyaW5nIG9mIHRoZSBwb2ludGVyIHZhbHVlIGFuZCBhCiBtYW5nbGVkIHR5cGUgbmFtZS4gIEFzIEd1aWxlIGFsbG93cyByZWdpc3RlcmluZyB1c2VyIHR5cGVzLCBzby1jYWxsZWQKQEAgLTExMDYsNyArMTI2OSwyMCBAQAogPHA+SWYgaW52b2tlZCB3aXRoIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uIDxjb2RlPi1wcm9jZG9jCiA8dmFyPmZpbGU8L3Zhcj48L2NvZGU+LCBTV0lHIGNyZWF0ZXMgZG9jdW1lbnRhdGlvbiBzdHJpbmdzIGZvciB0aGUKIGdlbmVyYXRlZCB3cmFwcGVyIGZ1bmN0aW9ucywgZGVzY3JpYmluZyB0aGUgcHJvY2VkdXJlIHNpZ25hdHVyZSBhbmQKLXJldHVybiB2YWx1ZSwgYW5kIHdyaXRlcyB0aGVtIHRvIDx2YXI+ZmlsZTwvdmFyPi4KK3JldHVybiB2YWx1ZSwgYW5kIHdyaXRlcyB0aGVtIHRvIDx2YXI+ZmlsZTwvdmFyPi4gWW91IG5lZWQgR3VpbGUgMS40CitvciBsYXRlciB0byBtYWtlIHVzZSBvZiB0aGUgZG9jdW1lbnRhdGlvbiBmaWxlcy4KKworPHA+U1dJRyBjYW4gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBzdHJpbmdzIGluIHRocmVlIGZvcm1hdHMsIHdoaWNoIGFyZQorc2VsZWN0ZWQgdmlhIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uIDxjb2RlPi1wcm9jZG9jZm9ybWF0Cis8dmFyPmZvcm1hdDwvdmFyPjwvY29kZT46Cis8dWw+Cis8bGk+PGNvZGU+Z3VpbGUtMS40PC9jb2RlPiAoZGVmYXVsdCk6IEdlbmVyYXRlcyBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgR3VpbGUgMS40LgorPGxpPjxjb2RlPnBsYWluPC9jb2RlPjogR2VuZXJhdGVzIGEgZm9ybWF0IHN1aXRhYmxlIGZvciBHdWlsZSAxLjQuMSBhbmQKK2xhdGVyLgorPGxpPjxjb2RlPnRleGluZm88L2NvZGU+OiBHZW5lcmF0ZXMgdGV4aW5mbyBzb3VyY2UsIHdoaWNoIG11c3QgYmUgcnVuCit0aHJvdWdoIHRleGluZm8gaW4gb3JkZXIgdG8gZ2V0IGEgZm9ybWF0IHN1aXRhYmxlIGZvciBHdWlsZSAxLjQuMSBhbmQKK2xhdGVyLgorPC91bD4KIAogPHA+WW91IG5lZWQgdG8gcmVnaXN0ZXIgdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGZpbGUgd2l0aCBHdWlsZQogbGlrZSB0aGlzOgpAQCAtMTExNSw3ICsxMjkxLDYgQEAKIChzZXQhIGRvY3VtZW50YXRpb24tZmlsZXMgCiAgICAgICAoY29ucyAiPHZhcj5maWxlPC92YXI+IiBkb2N1bWVudGF0aW9uLWZpbGVzKSkKIDwvcHJlPgotVGhpcyByZXF1aXJlcyBHdWlsZSAxLjQgb3IgbGF0ZXIuCiAKIDxwPkRvY3VtZW50YXRpb24gc3RyaW5ncyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgR3VpbGUtc3BlY2lmaWMKIHR5cGVtYXBzIDxjb2RlPmluZG9jPC9jb2RlPiwgPGNvZGU+b3V0ZG9jPC9jb2RlPiwKQEAgLTExNjMsNSArMTMzOCw5IEBACiAKIFtUT0RPXQogCis8aHI+CitDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorPGEgaHJlZj0ibWFpbHRvOnN3aWctZGV2QGNzLnVjaGljYWdvLmVkdSI+U1dJRyBEZXZlbG9wbWVudCBUZWFtPC9hPgorCiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9TV0lHL0RvYy9qc3dpZy5odG1sIGIvU1dJRy9Eb2MvanN3aWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjI1YzM2Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9Eb2MvanN3aWcuaHRtbApAQCAtMCwwICsxLDUzOCBAQAorPCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KKzxodG1sPgorPGhlYWQ+CisgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KKyAgIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTW96aWxsYS80LjUgW2VuXSAoWDExOyBJOyBJUklYIDYuMiBJUDIyKSBbTmV0c2NhcGVdIj4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IiNGRkZGRkYiPgorCis8aDE+CitUaGUgSmF2YSBTV0lHIG1vZHVsZSBbMSUgcHVyZSBKYXZhXTwvaDE+CisKKzxoMj4KK0ludHJvZHVjdGlvbjwvaDI+CitUaGUgSmF2YSBtb2R1bGUgZXh0ZW5zaW9uIGZvciA8YSBocmVmPSJodHRwOi8vd3d3LnN3aWcub3JnLyI+U1dJRzwvYT4gKFNpbXBsaWZpZWQKK1dyYXBwZXIgSW50ZXJmYWNlIEdlbmVyYXRvcikgaXMgYSBKYXZhIEpOSSB3cmFwcGVyIGdlbmVyYXRvci4gSXQgZ2VuZXJhdGVzCitKYXZhIGFuZCBKTkkgd3JhcHBlciBjb2RlIGJhc2VkIG9uIGFuIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGUuCis8cD5TZWUgdGhlIDEuMSByZWxlYXNlIFNXSUcgZG9jdW1lbnRhdGlvbiBmb3IgYSBmdWxsIGRlc2NyaXB0aW9uIG9mIHRoZSBpbnRlcmZhY2UKK2Zvcm1hdC4gT25seSB0aGUgaXNzdWVzIHNwZWNpZmljIHRvIHRoZSBKYXZhIGltcGxlbWVudGF0aW9uIGFyZSBhZGRyZXNzZWQgaGVyZS4KKzxwPlRoZSAxMDAlIFB1cmUgSmF2YQorZWZmb3J0IGlzIGEgZ3JlYXQgaWRlYSBob3dldmVyLCBpbiB0aGUgcmVhbCB3b3JsZCBwcm9ncmFtbWVycyBlaXRoZXIgbmVlZCB0byByZS11c2UgdGhlaXIgZXhpc3RpbmcgY29kZSBvciBpbiBzb21lIHNpdHVhdGlvbnMgd2FudCB0byB0YWtlIGFkdmFudGFnZSAKK29mIEphdmEgYnV0IGhhdmUgdG8gdXNlIHNvbWUgbmF0aXZlIGNvZGUuCitXaXRoIHRoaXMgSmF2YSBleHRlbnNpb24gdG8gU1dJRyBpdCBpcyB2ZXJ5IGVhc3kgdG8gcGx1bWIgaW4gZXhpc3RpbmcgYy9jKysgY29kZSBmb3IgYWNjZXNzIGZyb20gSmF2YSwgYXMgU1dJRyB3cml0ZXMgdGhlIEpOSSBjb2RlIGZvciB5b3UuCitJdCBpcyBkaWZmZXJlbnQgdG8gdXNpbmcgdGhlICdqYXZhaCcgdG9vbCBhcyBTV0lHIHdpbGwgd3JhcCBleGlzdGluZyBjL2MrKyBjb2RlLCB3aGVyZWFzIGphdmFoIHRha2VzIGphdmEgZnVuY3Rpb25zIGFuZCBjcmVhdGVzIGMvYysrIGZ1bmN0aW9uIHByb3RvdHlwZXMuCis8YnI+Jm5ic3A7CisKKzxoMj5Vc2FnZTwvaDI+Citzd2lnIC1qYXZhIFtvcHRpb25zXSAmbHQ7aW50ZXJmYWNlIGZpbGUmZ3Q7Cis8YnI+Citzd2lnIC1qYXZhIC1oZWxwIAorPHRhYmxlPgorPHRyPgorPHRoPkphdmEgc3BlY2lmaWMgb3B0aW9uczwvdGg+Cis8L3RyPgorCis8dHI+Cis8dGQ+LW1vZHVsZTwvdGQ+Cis8dGQ+Jmx0O21vZHVsZSZndDs8L3RkPgorPHRkPnVzZSBhIG1vZHVsZSBuYW1lIG90aGVyIHRoYW4gdGhlIG9uZSBzcGVjaWZpZWQgaW4gJW1vZHVsZTwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+LXBhY2thZ2U8L3RkPgorPHRkPiZsdDtqYXZhIHBhY2thZ2UmZ3Q7PC90ZD4KKzx0ZD5wdXQgdGhlIGdlbmVyYXRlZCBjbGFzc2VzIGluIHRoaXMgcGFja2FnZTwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+LWpuaWM8L3RkPgorPHRkPjwvdGQ+Cis8dGQ+Z2VuZXJhdGUgYyBjYWxsaW5nIGludGVyZmFjZSAoZGVmYXVsdCBkZXBlbmRzIG9uIC1jKysgZmxhZyk8L3RkPgorPC90cj4KKworPHRyPgorPHRkPi1qbmljcHA8L3RkPgorPHRkPjwvdGQ+Cis8dGQ+Z2VuZXJhdGUgYysrIGNhbGxpbmcgaW50ZXJmYWNlIChkZWZhdWx0IGRlcGVuZHMgb24gLWMrKyBmbGFnKTwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+LXNoYWRvdzwvdGQ+Cis8dGQ+PC90ZD4KKzx0ZD5nZW5lcmF0ZSBzaGFkb3cgY2xhc3NlczwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+LW5vZmluYWxpemU8L3RkPgorPHRkPjwvdGQ+Cis8dGQ+ZG8gbm90IGVtaXQgZmluYWxpemVycyBpbiBzaGFkb3cgY2xhc3NlczwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGg+VXNlZnVsIFNXSUcgb3B0aW9uczwvdGg+Cis8L3RyPgorCis8dHI+Cis8dGQ+LWMrKzwvdGQ+Cis8dGQ+PC90ZD4KKzx0ZD5hY2NlcHQgYysrIHN5bnRheCBpbiBpbnB1dCBmaWxlPC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD4tbzwvdGQ+Cis8dGQ+Jmx0O291dHB1dCBmaWxlPjwvdGQ+Cis8dGQ+bmFtZSB0aGUgZ2VuZXJhdGUgYyBvdXRwdXQgZmlsZSAoZGVmYXVsdHMgdG8gJmx0O21vZHVsZT5fd3JhcC5jKTwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKworPGgyPgorUXVpY2sgSW50cm9kdWN0aW9uPC9oMj4KKworVGhlIGRpcmVjdG9yeSBFeGFtcGxlcy9qYXZhIGhhcyBhIG51bWJlciBvZiBleGFtcGxlcyB3aGljaCBpcyB0aGUgYmVzdCB3YXkgdG8gbGVhcm4gaG93IHRoZSBTV0lHIEphdmEgZXh0ZW5zaW9uIHdvcmtzLiBUaGUgPGEgaHJlZj0iLi4vRXhhbXBsZXMvaW5kZXguaHRtbCI+U1dJRyBFeGFtcGxlcyBEb2N1bWVudGF0aW9uPC9hPiBpbiB0aGUgcGFyZW50IGRpcmVjdG9yeSBpcyBhIHVzZWZ1bCBzdGFydGluZyBwb2ludC4KKworPGgyPgorQXJndW1lbnQgbWFwcGluZzwvaDI+CismbmJzcDsKKzx0YWJsZSBCT1JERVI+Cis8dHI+Cis8dGQ+YyB0eXBlPC90ZD4KKzx0ZD5KYXZhIHR5cGU8L3RkPgorPHRkPkpOSSB0eXBlPC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD5jaGFyPC90ZD4KKzx0ZD5ieXRlPC90ZD4KKzx0ZD5qYnl0ZTwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+dW5zaWduZWQgY2hhcjwvdGQ+Cis8dGQ+c2hvcnQ8L3RkPgorPHRkPmpzaG9ydDwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+c2hvcnQ8L3RkPgorPHRkPnNob3J0PC90ZD4KKzx0ZD5qc2hvcnQ8L3RkPgorPC90cj4KKworPHRyPgorPHRkPnVuc2lnbmVkIHNob3J0PC90ZD4KKzx0ZD5pbnQ8L3RkPgorPHRkPmppbnQ8L3RkPgorPC90cj4KKworPHRyPgorPHRkPmludDwvdGQ+Cis8dGQ+aW50PC90ZD4KKzx0ZD5qaW50PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD51bnNpZ25lZCBpbnQ8L3RkPgorPHRkPmxvbmc8L3RkPgorPHRkPmpsb25nPC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD5sb25nPC90ZD4KKzx0ZD5sb25nPC90ZD4KKzx0ZD5qbG9uZzwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+bG9uZzwvdGQ+Cis8dGQ+bG9uZzwvdGQ+Cis8dGQ+amxvbmc8L3RkPgorPC90cj4KKworPHRyPgorPHRkPmZsb2F0PC90ZD4KKzx0ZD5mbG9hdDwvdGQ+Cis8dGQ+amZsb2F0PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD5kb3VibGU8L3RkPgorPHRkPmRvdWJsZTwvdGQ+Cis8dGQ+amRvdWJsZTwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+Ym9vbDwvdGQ+Cis8dGQ+aW50PC90ZD4KKzx0ZD5qaW50PC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD52b2lkPC90ZD4KKzx0ZD52b2lkPC90ZD4KKzx0ZD52b2lkPC90ZD4KKzwvdHI+CisKKzwvdGFibGU+Cis8YnI+CitBcnJheXMgYXJlIGltcGxlbWVudGVkIHVzaW5nIHRoZSBzYW1lIG1hcHBpbmdzLCBmb3IgZXhhbXBsZSBhIGMgYXJyYXksIGNoYXJbc2l6ZV0sIGlzIG1hcHBlZCB0byBhIEphdmEgYXJyYXksIGJ5dGVbc2l6ZV0uCis8YnI+PGJyPgorV2hlbiBTV0lHIGlzIGJlaW5nIHVzZWQgd2l0aG91dCBzaGFkb3cgY2xhc3NlcywgbG9uZ3MgYXJlIHVzZWQgZm9yIGFsbCBwb2ludGVycy4gQWxsIGNvbXBsZXggdHlwZXMgKGMvYysrIHN0cnVjdHMgYW5kIGNsYXNzZXMpIGFyZSBhY2Nlc3NpYmxlIHVzaW5nIGEgSmF2YSBsb25nIHdoaWNoIGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGUgdW5kZXJseWluZyBjL2MrKyBvYmplY3QuIEFycmF5cyBvZiBjb21wbGV4IHR5cGVzIGFyZSBtYXBwZWQgYXMgYXJyYXlzIG9mIHBvaW50ZXJzIHRvIHRoZSB0eXBlLCB0aGF0IGlzIGEgSmF2YSBsb25nW10uCis8YnI+PGJyPgorVGhlIG91dHB1dCBpcyBkaWZmZXJlbnQgd2hlbiBTV0lHIGlzIGJlaW5nIHVzZWQgdG8gZ2VuZXJhdGUgc2hhZG93IGNsYXNzZXMuIFByaW1pdGl2ZSB0eXBlcyBhbmQgcG9pbnRlcnMgdG8gdGhlc2UgdHlwZXMgcmVtYWluIHRoZSBzYW1lOyBzbyBhIEphdmEgbG9uZyBpcyB1c2VkIGZvciBwb2ludGVycyB0byBwcmltaXRpdmUgdHlwZXMuIEhvd2V2ZXIsIGZvciBjb21wbGV4IHR5cGVzLCB0aGUgc2hhZG93IGNsYXNzZXMgdXNlIGEgSmF2YSBjbGFzcyB3aGljaCB3cmFwcyB0aGUgc3RydWN0L2NsYXNzIGluc3RlYWQgb2YgYSBKYXZhIGxvbmcuIFRoaXMgYXBwbGllcyB0byBib3RoIGFyZ3VtZW50IHBhcmFtZXRlcnMgYW5kIHJldHVybiB0eXBlcyB0aGF0IGFyZSBjb21wbGV4IHR5cGVzIG9yIHBvaW50ZXJzIHRvIGNvbXBsZXggdHlwZXMuIEFycmF5cyBvZiBjb21wbGV4IHR5cGVzIHR1cm4gaW50byBhcnJheXMgb2YgSmF2YSBjbGFzc2VzIHJhdGhlciB0aGFuIGFycmF5cyBvZiBsb25ncy4KKzxicj48YnI+CitGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIGZvbGxvd2luZyBjKysgZnVuY3Rpb24gY2FsbDoKKzxibG9ja3F1b3RlPiA8cHJlPgordm9pZCBBQ2xhc3M6OmZ1bmMoaW50IGEsIGludCogYiwgU29tZUNsYXNzIGMsIFNvbWVDbGFzcyogZCwgU29tZUNsYXNzJiBlLCBTb21lQ2xhc3MgZlsxMF0pOworPC9ibG9ja3F1b3RlPiA8L3ByZT4KK1RoZSBub24gc2hhZG93IGFjY2VzcyBmcm9tIEphdmEgaXMgc2hvd24gYmVsb3csIHdoZXJlIHRoZSBmaXJzdCBwYXJhbWV0ZXIsIHB0ciwgaXMgYSBsb25nIGNvbnRhaW5pbmcgdGhlIHBvaW50ZXIgdG8gYW4gb2JqZWN0IG9mIHR5cGUgQUNsYXNzOgorPGJsb2NrcXVvdGU+IDxwcmU+CitwdWJsaWMgZmluYWwgc3RhdGljIG5hdGl2ZSB2b2lkIEFDbGFzc19mdW5jKGxvbmcgcHRyLCBpbnQgYSwgbG9uZyBiLCBsb25nIGMsIGxvbmcgZCwgbG9uZyBlLCBsb25nW10gZik7Cis8L2Jsb2NrcXVvdGU+IDwvcHJlPgorVGhlIEphdmEgc2hhZG93IGNsYXNzLCBBQ2xhc3MsIHdpbGwgY29udGFpbiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOgorPGJsb2NrcXVvdGU+IDxwcmU+CitwdWJsaWMgdm9pZCBmdW5jKGludCBhLCBsb25nIGIsIFNvbWVDbGFzcyBjLCBTb21lQ2xhc3MgZCwgU29tZUNsYXNzIGUsIFNvbWVDbGFzcyBmW10pIHsuLi59Cis8L2Jsb2NrcXVvdGU+IDwvcHJlPgorCitBbHNvIG5vdGUgdGhhdCBTV0lHIGNvbnZlcnRzIGMvYysrIGVudW1zIGludG8gaW50ZWdlcnMuCis8YnI+Cis8aDI+CitUeXBlbWFwczwvaDI+CitXaXRoIHR5cGVtYXBzLCB5b3UgY2FuIGNoYW5nZSB0aGUgZGVmYXVsdCBjb252ZXJzaW9uIChpbnB1dCwgb3V0cHV0IGFuZAorcmV0dXJuIHZhbHVlKSBmb3IgYSBzcGVjaWZpYyB0eXBlLgorPHA+VGhlIGZvbGxvd2luZyB0eXBlbWFwcyBhcmUgc3VwcG9ydGVkLgorPGJyPiZuYnNwOworPHRhYmxlIEJPUkRFUj4KKzx0cj4KKzx0ZD48Yj50eXBlbWFwPC9iPjwvdGQ+CisKKzx0ZD48Yj5kZXNjcmlwdGlvbjwvYj48L3RkPgorPC90cj4KKworPHRyPgorPHRkPnR5cGVtYXAoamF2YSxpbik8L3RkPgorCis8dGQ+Q29udmVydHMgZnVuY3Rpb24gYXJndW1lbnRzIGZyb20gdGhlIGphdmEgcmVwcmVzZW50YXRpb24gdG8gYSBDIHJlcHJlc2VudGF0aW9uLjwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+dHlwZW1hcChqYXZhLGFyZ291dCk8L3RkPgorCis8dGQ+UmV0dXJuIHZhbHVlcyB0aHJvdWdoIGZ1bmN0aW9uIGFyZ3VtZW50czwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+dHlwZW1hcChqYXZhLG91dCk8L3RkPgorCis8dGQ+Q29udmVydHMgdGhlIHJlc3VsdCBvZiBhIEMgZnVuY3Rpb24gdG8gYSBqYXZhIHJlcHJlc2VudGF0aW9uLjwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+dHlwZW1hcChqYXZhLGp0eXBlKTwvdGQ+Cis8dGQ+T3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWFwcGluZyBvZiBiYXNpYyB0eXBlcyBmcm9tIEMgdG8gSmF2YS4gQWx3YXlzIHByb3ZpZGUgam5pLCBpbiwgYXJnb3V0IGFuZCBvdXQgdHlwZW1hcHMgaWYgeW91IHVzZSB0aGlzIHR5cGVtYXAuPC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD50eXBlbWFwKGphdmEsam5pKTwvdGQ+Cis8dGQ+T3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWFwcGluZyBvZiBiYXNpYyB0eXBlcyBmcm9tIEMgdG8gam5pLiBBbHdheXMgcHJvdmlkZSBqdHlwZSwgaW4sIGFyZ291dCBhbmQgb3V0IHR5cGVtYXBzIGlmIHlvdSB1c2UgdGhpcyB0eXBlbWFwLjwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKworT3RoZXIgdHlwZW1hcHMgbWlnaHQgd29yayAoY2hlY2ssIGZyZWVhcmcsIG5ld2ZyZWUsIHJldCksIGJ1dCBhcmUgbm90IHRlc3RlZC4KKworPGJyPiZuYnNwOworPHA+VGhlIGZvbGxvd2luZyB0eXBlbWFwcyBhcmUgcHJlZGVmaW5lZCwgYnV0IHVzZXIgZGVmaW5lZCB0eXBlbWFwcyBjYW4KK2JlIGluY2x1ZGVkIGluIHRoZSBpbnRlcmZhY2UgZmlsZS4KKzxicj4mbmJzcDsKKzx0YWJsZSBCT1JERVI+Cis8dHIgVkFMSUdOPVRPUD4KKzx0ZD48Yj5DIFR5cGU8L2I+PC90ZD4KKzx0ZD48Yj5UeXBlbWFwPC9iPjwvdGQ+Cis8dGQ+PGI+S2luZDwvYj48L3RkPgorPHRkPjxiPkphdmEgVHlwZTwvYj48L3RkPgorPHRkPjxiPkZ1bmN0aW9uPC9iPjwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+Y2hhciAqPC90ZD4KKzx0ZD5TVFJJTkc8L3RkPgorPHRkPmlucHV0Cis8YnI+b3V0cHV0Cis8YnI+cmV0dXJuPC90ZD4KKworPHRkPlN0cmluZzwvdGQ+Cis8dGQgVkFMSUdOPVRPUD5cMCB0ZXJtaW5hdGVkIHN0cmluZyZuYnNwOworPGJyPkphdmEgc3RyaW5nIGlzIGNvbnZlcnRlZCB0byBjIHN0cmluZywgd2hpY2ggaXMgcmVsZWFzZWQgYWZ0ZXJ3YXJkczwvdGQ+Cis8L3RyPgorCis8dHIgVkFMSUdOPVRPUD4KKzx0ZD48L3RkPgorPHRkPkJZVEU8L3RkPgorPHRkPmlucHV0Cis8YnI+b3V0cHV0PC90ZD4KKzx0ZD5ieXRlW108L3RkPgorCis8dGQgVkFMSUdOPVRPUD5KYXZhIGJ5dGUgYXJyYXkgaXMgY29udmVydGVkIHRvIGNoYXIgYXJyYXkgd2hpY2gKK2lzIHJlbGVhc2UgYWZ0ZXJ3YXJkczwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+Y2hhciAqKjwvdGQ+Cis8dGQ+U1RSSU5HX0lOPC90ZD4KKzx0ZD5pbnB1dDwvdGQ+Cis8dGQ+U3RyaW5nW108L3RkPgorPHRkPlwwIHRlcm1pbmF0ZWQgYXJyYXkgb2YgXDAgdGVybWluYXRlZCBzdHJpbmdzCis8YnI+dGhlIGFycmF5IGlzIG1hbGxvYy1lZCBhbmQgcmVsZWFzZWQgYWZ0ZXJ3YXJkczwvdGQ+Cis8L3RyPgorCis8dHI+Cis8dGQ+PC90ZD4KKzx0ZD5TVFJJTkdfT1VUPC90ZD4KKzx0ZD5vdXRwdXQ8L3RkPgorPHRkPlN0cmluZ1tdPC90ZD4KKzx0ZD4mYW1wO2NoYXIqCis8YnI+dGhlIGFyZ3VtZW50IGlzIHRoZSBhZGRyZXNzIG9mIGFuICdcMCcgdGVybWluYXRlZCBzdHJpbmc8L3RkPgorPC90cj4KKworPHRyPgorPHRkPjwvdGQ+Cis8dGQ+U1RSSU5HX1JFVDwvdGQ+Cis8dGQ+cmV0dXJuPC90ZD4KKzx0ZD5TdHJpbmdbXTwvdGQ+Cis8dGQ+XDAgdGVybWluYXRlZCBhcnJheSBvZiBcMCB0ZXJtaW5hdGVkIHN0cmluZ3MKKzxicj50aGUgYXJyYXkgaXMgbm90IGZyZWUtZWQuPC90ZD4KKzwvdHI+CisKKzx0cj4KKzx0ZD5pbnQgKjwvdGQ+Cis8dGQ+SU5UX09VVDwvdGQ+Cis8dGQ+b3V0cHV0PC90ZD4KKzx0ZD5pbnRbXTwvdGQ+Cis8dGQ+JmFtcDtpbnQKKworPGJyPnZhbHVlIGlzIHJldHVybmVkIGluIGFuIGludCwgd2hpY2ggaXMgc3RvcmVkIGluIHRoZSBKYXZhIGludFswXTwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKworPGJyPiZuYnNwOworPGgyPgorUHJhZ21hczwvaDI+CitUaGVyZSBhcmUgdHdvIGdyb3VwcyBvZiBwcmFnbWFzIGluIHRoZSBKYXZhIG1vZHVsZS4gVGhlIGZpcnN0IGdyb3VwIG1vZGlmeSB0aGUgSmF2YSBtb2R1bGUgb3V0cHV0IGZpbGUgYW5kIHRoZSBzZWNvbmQgbW9kaWZ5IHRoZSBKYXZhIHNoYWRvdyBvdXRwdXQgZmlsZS4gVGhlIHByYWdtYXMgYmVnaW5uaW5nIHdpdGggPGI+bW9kdWxlPC9iPiBhcHBseSB0byB0aGUgbW9kdWxlIG91dHB1dCBmaWxlLiBUaGUgcHJhZ21hcyBiZWdpbm5pbmcgd2l0aCA8Yj5hbGxzaGFkb3c8L2I+IGFwcGx5IHRvIGFsbCBzaGFkb3cgb3V0cHV0IGNsYXNzZXMuIFRoZSBwcmFnbWFzIGJlZ2lubmluZyB3aXRoIDxiPnNoYWRvdzwvYj4gYXBwbHkgdG8gdGhlIGN1cnJlbnRseSBhY3RpdmUgc2hhZG93IGNsYXNzIHNvIHRoZXNlIHByYWdtYXMgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIHdpdGhpbiB0aGUgZGVmaW5pdGlvbiBvZiBhIGNsYXNzIG9yIHN0cnVjdC4gRm9yIGV4YW1wbGU6Cis8YmxvY2txdW90ZT48cHJlPgorLyogVGVzdFN0cnVjdC5pICovCisjaWZkZWYgU1dJRworJXByYWdtYShqYXZhKSBtb2R1bGVjb2RlPSIvKlRoaXMgY29kZSBnZXRzIGFkZGVkIHRvIHRoZSBtb2R1bGUgY2xhc3MqLyIKKyVwcmFnbWEoamF2YSkgYWxsc2hhZG93Y29kZT0iLypUaGlzIGNvZGUgZ2V0cyBhZGRlZCB0byBldmVyeSBzaGFkb3cgY2xhc3MqLyIKKyNlbmRpZgordHlwZWRlZiBzdHJ1Y3QgVGVzdFN0cnVjdCB7CisjaWZkZWYgU1dJRworJXByYWdtYShqYXZhKSBzaGFkb3djb2RlPSIvKlRoaXMgY29kZSBnZXRzIGFkZGVkIHRvIHRoZSBUZXN0U3RydWN0IHNoYWRvdyBjbGFzcyBvbmx5Ki8iCisjZW5kaWYKKyAgaW50ICAgIG15SW50OworfSBUZXN0U3RydWN0OworPC9wcmU+PC9ibG9ja3F1b3RlPgorPGJyPgorQSBjb21wbGV0ZSBsaXN0IG9mIHByYWdtYXMgZm9sbG93czoKKzxicj48YnI+Cis8dGFibGUgQk9SREVSPgorPHRyIFZBTElHTj1UT1A+Cis8dGQ+PGI+UHJhZ21hPC9iPjwvdGQ+Cis8dGQ+PGI+RGVzY3JpcHRpb248L2I+PC90ZD4KKzx0ZD48Yj5FeGFtcGxlPC9iPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPm1vZHVsZWJhc2U8L3RkPgorPHRkPlNwZWNpZmllcyBhIGJhc2UgY2xhc3MgZm9yIHRoZSBKYXZhIG1vZHVsZSBjbGFzcy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgbW9kdWxlYmFzZT0iQmFzZUNsYXNzIjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPnNoYWRvd2Jhc2U8L3RkPgorPHRkPlNwZWNpZmllcyBhIGJhc2UgY2xhc3MgZm9yIHRoZSBKYXZhIHNoYWRvdyBjbGFzcy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgc2hhZG93YmFzZT0iQmFzZUNsYXNzIjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPmFsbHNoYWRvd2Jhc2U8L3RkPgorPHRkPlNwZWNpZmllcyBhIGJhc2UgY2xhc3MgZm9yIGFsbCBKYXZhIHNoYWRvdyBjbGFzc2VzLjwvdGQ+Cis8dGQ+JXByYWdtYShqYXZhKSBhbGxzaGFkb3diYXNlPSJCYXNlQ2xhc3MiPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+bW9kdWxlY29kZTwvdGQ+Cis8dGQ+QWRkcyBjb2RlIHRvIHRoZSBKYXZhIG1vZHVsZSBjbGFzcy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgbW9kdWxlY29kZT0iLyptb2R1bGUgY29kZSovIjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPnNoYWRvd2NvZGU8L3RkPgorPHRkPkFkZHMgY29kZSB0byB0aGUgSmF2YSBzaGFkb3cgY2xhc3MuPC90ZD4KKzx0ZD4lcHJhZ21hKGphdmEpIHNoYWRvd2NvZGU9Ii8qc2hhZG93IGNvZGUqLyI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5hbGxzaGFkb3djb2RlPC90ZD4KKzx0ZD5BZGRzIGNvZGUgdG8gYWxsIEphdmEgY2xhc3Nlcy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgYWxsc2hhZG93Y29kZT0iLyphbGwgc2hhZG93IGNvZGUqLyI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5tb2R1bGVjbGFzc21vZGlmaWVyczwvdGQ+Cis8dGQ+T3ZlcnJpZGVzIHRoZSBkZWZhdWx0IEphdmEgbW9kdWxlIGNsYXNzIG1vZGlmaWVycy4gVGhlIGRlZmF1bHQgaXMgcHVibGljLjwvdGQ+Cis8dGQ+JXByYWdtYShqYXZhKSBtb2R1bGVjbGFzc21vZGlmaWVycz0icHVibGljIGZpbmFsIjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPnNoYWRvd2NsYXNzbW9kaWZpZXJzPC90ZD4KKzx0ZD5PdmVycmlkZXMgdGhlIGRlZmF1bHQgSmF2YSBzaGFkb3cgY2xhc3MgbW9kaWZpZXJzLiBUaGUgZGVmYXVsdCBpcyBwdWJsaWMuIEFsc28gb3ZlcnJpZGVzIGFsbHNoYWRvd2NsYXNzbW9kaWZpZXJzIGlmIHByZXNlbnQuPC90ZD4KKzx0ZD4lcHJhZ21hKGphdmEpIHNoYWRvd2NsYXNzbW9kaWZpZXJzPSJwdWJsaWMgZmluYWwiPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+YWxsc2hhZG93Y2xhc3Ntb2RpZmllcnM8L3RkPgorPHRkPk92ZXJyaWRlcyB0aGUgZGVmYXVsdCBtb2RpZmllcnMgZm9yIGFsbCBKYXZhIGNsYXNzZXMuIFRoZSBkZWZhdWx0IGlzIHB1YmxpYy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgYWxsc2hhZG93Y2xhc3Ntb2RpZmllcnM9InB1YmxpYyBmaW5hbCI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5tb2R1bGVpbXBvcnQ8L3RkPgorPHRkPkFkZHMgYW4gaW1wb3J0IHN0YXRlbWVudCB0byB0aGUgSmF2YSBtb2R1bGUgY2xhc3MgZmlsZS48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgbW9kdWxlaW1wb3J0PSJqYXZhLmxhbmcuKiI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5zaGFkb3dpbXBvcnQ8L3RkPgorPHRkPkFkZHMgYW4gaW1wb3J0IHN0YXRlbWVudCB0byB0aGUgSmF2YSBzaGFkb3cgY2xhc3MgZmlsZS4gQWRkcyB0byBhbnkgaW1wb3J0cyBzcGVjaWZpZWQgaW4gYWxsc2hhZG93aW1wb3J0LjwvdGQ+Cis8dGQ+JXByYWdtYShqYXZhKSBzaGFkb3dpbXBvcnQ9ImphdmEubGFuZy4qIjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPmFsbHNoYWRvd2ltcG9ydDwvdGQ+Cis8dGQ+QWRkcyBhbiBpbXBvcnQgc3RhdGVtZW50IHRvIGFsbCBKYXZhIHNoYWRvdyBjbGFzcyBmaWxlcy48L3RkPgorPHRkPiVwcmFnbWEoamF2YSkgYWxsc2hhZG93aW1wb3J0PSJqYXZhLmxhbmcuKiI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5tb2R1bGVpbnRlcmZhY2U8L3RkPgorPHRkPlNwZWNpZmllcyBhbiBpbnRlcmZhY2Ugd2hpY2ggdGhlIEphdmEgbW9kdWxlIG91dHB1dCBjbGFzcyBpbXBsZW1lbnRzLiBDYW4gYmUgdXNlZCBtdWx0aXBsZSB0aW1lcyBhcyBKYXZhIHN1cHBvcnRzIG11bHRpcGxlIGludGVyZmFjZXMuPC90ZD4KKzx0ZD4lcHJhZ21hKGphdmEpIG1vZHVsZWludGVyZmFjZT0iU29tZUludGVyZmFjZSI8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD5zaGFkb3dpbnRlcmZhY2U8L3RkPgorPHRkPlNwZWNpZmllcyBhbiBpbnRlcmZhY2Ugd2hpY2ggdGhlIEphdmEgc2hhZG93IGNsYXNzIGltcGxlbWVudHMuIENhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIGFzIEphdmEgc3VwcG9ydHMgbXVsdGlwbGUgaW50ZXJmYWNlcy4gQWRkcyB0byBhbnkgaW50ZXJmYWNlcyBzcGVjaWZpZWQgaW4gYWxsc2hhZG93aW50ZXJmYWNlLjwvdGQ+Cis8dGQ+JXByYWdtYShqYXZhKSBzaGFkb3dpbnRlcmZhY2U9IlNvbWVJbnRlcmZhY2UiPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+YWxsc2hhZG93aW50ZXJmYWNlPC90ZD4KKzx0ZD5TcGVjaWZpZXMgYW4gaW50ZXJmYWNlIHdoaWNoIGFsbCBKYXZhIHNoYWRvdyBjbGFzc2VzIGltcGxlbWVudC4gQ2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgYXMgSmF2YSBzdXBwb3J0cyBtdWx0aXBsZSBpbnRlcmZhY2VzLjwvdGQ+Cis8dGQ+JXByYWdtYShqYXZhKSBhbGxzaGFkb3dpbnRlcmZhY2U9IlNvbWVJbnRlcmZhY2UiPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+bW9kdWxlbWV0aG9kbW9kaWZpZXJzPC90ZD4KKzx0ZD5PdmVycmlkZXMgdGhlIG5hdGl2ZSBkZWZhdWx0IG1ldGhvZCBtb2RpZmllcnMgZm9yIHRoZSBtb2R1bGUgY2xhc3MuIFRoZSBkZWZhdWx0IGlzIHB1YmxpYyBmaW5hbCBzdGF0aWMuPC90ZD4KKzx0ZD4lcHJhZ21hKGphdmEpIG1vZHVsZW1ldGhvZG1vZGlmaWVycz0icHJvdGVjdGVkIGZpbmFsIHN0YXRpYyBzeW5jaHJvbml6ZWQiPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorCis8L2RsPgorCis8aDM+IERlcHJlY2F0ZWQgcHJhZ21hczwvaDM+CitUaGUgZm9sbG93aW5nIHByYWdtYXMgd2VyZSBpbiBTd2lnIDEuM2EzIGFuZCBoYXZlIGJlZW4gZGVwcmVjYXRlZDo8YnI+Cis8Yj5pbXBvcnQ8L2I+OiBQbGVhc2UgcmVwbGFjZSB3aXRoIDxiPm1vZHVsZWltcG9ydDwvYj4sIDxiPnNoYWRvd2ltcG9ydDwvYj4gYW5kL29yIDxiPmFsbHNoYWRvd2ltcG9ydDwvYj4gcHJhZ21hcy48YnI+Cis8Yj5tb2R1bGU8L2I+OiBQbGVhc2UgcmVwbGFjZSB3aXRoIHRoZSA8Yj5tb2R1bGVjb2RlPC9iPiBwcmFnbWEuPGJyPgorPGI+c2hhZG93PC9iPjogUGxlYXNlIHJlcGxhY2Ugd2l0aCB0aGUgPGI+YWxsc2hhZG93Y29kZTwvYj4gcHJhZ21hLjxicj4KKzxiPm1vZGlmaWVyczwvYj46IFBsZWFzZSByZXBsYWNlIHdpdGggdGhlIDxiPm1vZHVsZW1ldGhvZG1vZGlmaWVyczwvYj4gcHJhZ21hLjxicj4KKworPGgzPiBQcmFnbWEgdXNlczwvaDM+CitUaGUgcHJhZ21hcyBhcmUgdXNlZCBwcmltYXJpbHkgdG8gbW9kaWZ5IHRoZSBkZWZhdWx0IEphdmEgb3V0cHV0IGNvZGUuIFRoZXkgcHJvdmlkZSBmbGV4aWJpbGl0eSBhcyB0byBob3cgSmF2YSBhbmQgQysrIGludGVyYWN0LiBJbiB0aGUgcHJhZ21hIG5vdGF0aW9uIGJlbG93LCA8Yj54eHhjb2RlPC9iPiBmb3IgZXhhbXBsZSB3b3VsZCBiZSB1c2VkIHRvIGRlbm90ZSB0aGUgMyBzaW1pbGFyICdjb2RlJyBwcmFnbWFzLCB0aGF0IGlzIDxiPm1vZHVsZWNvZGU8L2I+LCA8Yj5zaGFkb3djb2RlPC9iPiBhbmQgPGI+YWxsc2hhZG93Y29kZTwvYj4uIAorCis8aDQ+IERlcml2ZSBDKysgZnJvbSBKYXZhIGFuZCB2aXNhLXZlcnNhPC9oND4KK0l0IGlzIHBvc3NpYmxlIHRvIGRlcml2ZSBhIEphdmEgY2xhc3MgZnJvbSBhIHNoYWRvdyBjbGFzcyAoaS5lLiBhIEMrKyBjbGFzcykgd2l0aCB0aGUgSmF2YSBtb2R1bGUuIEhvd2V2ZXIsIHdpdGggdGhlIHByYWdtYXMgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBkZXJpdmUgdGhlIFNXSUcgcHJvZHVjZWQgSmF2YSBzaGFkb3cgY2xhc3NlcyAoaS5lLiBDKysgY2xhc3MpIGZyb20geW91ciBvd24gSmF2YSBjbGFzcyBieSB1c2luZyB0aGUgPGI+eHh4YmFzZTwvYj4gcHJhZ21hIHdpdGggdGhlIDxiPnh4eGltcG9ydDwvYj4sIDxiPnh4eGNvZGU8L2I+IGFuZCA8Yj54eHhjbGFzc21vZGlmaWVyczwvYj4gcHJhZ21hcy4gSXQgaXMgYWxzbyBwb3NzaWJsZSBmb3IgdGhlIFNXSUcgcHJvZHVjZWQgSmF2YSBjbGFzc2VzIHRvIGltcGxlbWVudCBpbnRlcmZhY2VzIHVzaW5nIHRoZSA8Yj54eHhpbnRlcmZhY2U8L2I+IHByYWdtYXMuCisKKzwhLS0KKzxoMz4gSmF2YURvYyA8L2gzPgorVGhlIFNXSUcgZG9jdW1lbnRhdGlvbiBzeXN0ZW0gdGhhdCB3YXMgc2hpcHBlZCB3aXRoIFNXSUcgMS4xIGlzIGN1cnJlbnRseSBkaXNhYmxlZCBhbmQgd2lsbCBiZSByZXBsYWNlZCBpbiB0aGUgZnV0dXJlLiBJZiB5b3UgcmVxdWlyZSBzb21lIGRvY3VtZW50YXRpb24gaW4gdGhlIG1lYW50aW1lIGluIHlvdXIgSmF2YSBtb2R1bGUgY2xhc3Mgb3Igc2hhZG93IGNsYXNzLCBpdCBjYW4gYmUgYWRkZWQgdXNpbmcgdGhlIDxiPnh4eGNvZGU8L2I+IHByYWdtYXMuIEphdmFEb2MgY29tbWVudHMgY2FuIGJlIGluc2VydGVkIGluc3RlYWQgb2YgSmF2YSBjb2RlLiBBbHRob3VnaCB5b3UgY2FuIGluc2VydCBhcyBtYW55IG9mIHRoZXNlIGNvZGUgcHJhZ21hcyBhcyB5b3UgbGlrZSBzY2F0dGVyZWQgdGhyb3VnaG91dCB0aGUgYy9jKysgY29kZSwgdGhleSBhcmUgYWxsIG91dHB1dCB0b2dldGhlciBpbiB0aGUgSmF2YSBjbGFzcy4gVGh1cyB5b3UgY2FuIGhhdmUgYSBibG9jayBvZiBKYXZhRG9jIGNvbW1lbnRzIHBlciBjbGFzcywgYnV0IGl0IGlzIG5vdCBmbGV4aWJsZSBlbm91Z2ggdG8gaGF2ZSBhIEphdmFEb2MgY29tbWVudCBhYm92ZSBlYWNoIG1lbWJlciBmdW5jdGlvbi4gPGI+IERvZXMgbm90IHdvcmshIFRoZSBkb2N1bWVuYXRpb24gb25seSBnZXRzIGFkZGVkIHRvIG9uZSBtZXRob2QhITwvYj4KKy0tPgorCis8aDI+CitTaGFkb3cgQ2xhc3NlcyBhbmQgR2FyYmFnZSBDb2xsZWN0aW9uPC9oMj4KK0lmIHlvdSBnZXQgU1dJRyB0byBwcm9kdWNlIHNoYWRvdyBjbGFzc2VzLCB5b3Ugd2lsbCBub3RpY2UgdGhlIGdlbmVyYXRlZCA8Y29kZT5fZGVsZXRlKCk8L2NvZGU+IGFuZCA8Y29kZT5maW5hbGl6ZSgpPC9jb2RlPiBtZXRob2RzLiBUaGUgPGNvZGU+ZmluYWxpemUoKTwvY29kZT4gbWV0aG9kIGNhbGxzIDxjb2RlPl9kZWxldGUoKTwvY29kZT4gd2hpY2ggZnJlZXMgYW55IFNXSUcgbWFsbG9jZWQgYyBtZW1vcnkgZm9yIHdyYXBwZWQgc3RydWN0cyBvciBkZWxldGVzIGFueSBTV0lHIHdyYXBwZWQgY2xhc3NlcyBjcmVhdGVkIG9uIHRoZSBoZWFwLCB3aGljaCBpbiB0dXJuIGNhbGxzIHRoZSBjbGFzcycgZGVzdHJ1Y3Rvci4gVGhlIGlkZWEgaXMgZm9yIDxjb2RlPl9kZWxldGUoKTwvY29kZT4gdG8gYmUgY2FsbGVkIHdoZW4geW91IGhhdmUgZmluaXNoZWQgd2l0aCB0aGUgYy9jKysgb2JqZWN0LiBJZGVhbGx5IHlvdSBuZWVkIG5vdCBjYWxsIDxjb2RlPl9kZWxldGUoKTwvY29kZT4sIGJ1dCByYXRoZXIgbGVhdmUgaXQgdG8gdGhlIGdhcmJhZ2UgY29sbGVjdG9yIHRvIGNhbGwgaXQgZnJvbSB0aGUgZmluYWxpemVyLiBUaGUgdW5mb3J0dW5hdGUgdGhpbmcgaXMgdGhhdCBTdW4sIGluIHRoZWlyIHdpc2RvbSwgZG8gbm90IGd1YXJhbnRlZSB0aGF0IHRoZSBmaW5hbGl6ZXJzIHdpbGwgYmUgY2FsbGVkLiBXaGVuIGEgcHJvZ3JhbSBleGl0cywgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGRvZXMgbm90IGFsd2F5cyBjYWxsIHRoZSBmaW5hbGl6ZXJzLiBEZXBlbmRpbmcgb24gd2hhdCB0aGUgZmluYWxpemVycyBkbyBhbmQgd2hpY2ggb3BlcmF0aW5nIHN5c3RlbSB5b3UgdXNlLCB0aGlzIG1heSBvciBtYXkgbm90IGJlIGEgcHJvYmxlbS4gCis8YnI+PGJyPgorCitJZiB0aGUgPGNvZGU+X2RlbGV0ZSgpPC9jb2RlPiBjYWxsIGludG8gSk5JIGNvZGUgaXMganVzdCBmb3IgbWVtb3J5IGhhbmRsaW5nLCB0aGVyZSBpcyBub3QgYSBwcm9ibGVtIHdoZW4gcnVuIG9uIFdpbmRvd3MgYW5kIFVuaXguIFNheSB5b3VyIEpOSSBjb2RlIGNyZWF0ZXMgbWVtb3J5IG9uIHRoZSBoZWFwIHdoaWNoIHlvdXIgZmluYWxpemVycyB3aWxsIGNsZWFuIHVwLCB0aGUgZmluYWxpemVycyBtYXkgb3IgbWF5IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBwcm9ncmFtIGV4aXRzLiBJbiBXaW5kb3dzIGFuZCBVbml4IGFsbCBtZW1vcnkgdGhhdCBhIHByb2Nlc3MgdXNlcyBpcyByZXR1cm5lZCB0byB0aGUgc3lzdGVtLCBzbyB0aGlzIGlzbid0IGEgcHJvYmxlbS4gVGhpcyBpcyBub3QgdGhlIGNhc2UgaW4gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBsaWtlIHZ4V29ya3MuIElmIGhvd2V2ZXIsIHlvdXIgZmluYWxpemVycyBjYWxsIGludG8gSk5JIGNvZGUgaW52b2tlcyBhIGMrKyBkZXN0cnVjdG9yIHdoaWNoIGluIHR1cm4gcmVsZWFzZXMgYSBzb2NrZXQgZm9yIGV4YW1wbGUsIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgYmUgcmVsZWFzZWQuIE5vdGUgdGhhdCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3Igd2lsbCBldmVudHVhbGx5IHJ1biwgc28gbG9uZyBydW5uaW5nIHByb2dyYW1zIHdpbGwgaGF2ZSB0aGVpciBmaW5hbGl6ZXJzIGNhbGxlZCBwZXJpb2RpY2FsbHkuCis8YnI+PGJyPgorCitTb21lIG5vdCBzbyBpZGVhbCBzb2x1dGlvbnMgYXJlOgorPG9sPgorPGxpIHN0YXJ0PTE+CitDYWxsIHRoZSA8Y29kZT5TeXN0ZW0ucnVuRmluYWxpemVyc09uRXhpdCh0cnVlKTwvY29kZT4gb3IgPGNvZGU+UnVudGltZS5nZXRSdW50aW1lKCkucnVuRmluYWxpemVyc09uRXhpdCh0cnVlKTwvY29kZT4gdG8gZW5zdXJlIHRoZSBmaW5hbGl6ZXJzIGFyZSBjYWxsZWQgYmVmb3JlIHRoZSBwcm9ncmFtIGV4aXRzLiBUaGUgY2F0Y2ggaXMgdGhhdCB0aGlzIGlzIGEgZGVwcmVjYXRlZCBmdW5jdGlvbiBjYWxsIGFzIHRoZSBkb2N1bWVuYXRpb24gc2F5czogCis8YmxvY2txdW90ZT48aT4KK1RoaXMgbWV0aG9kIGlzIGluaGVyZW50bHkgdW5zYWZlLiBJdCBtYXkgcmVzdWx0IGluIGZpbmFsaXplcnMgYmVpbmcgY2FsbGVkIG9uIGxpdmUgb2JqZWN0cyB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBjb25jdXJyZW50bHkgbWFuaXB1bGF0aW5nIHRob3NlIG9iamVjdHMsIHJlc3VsdGluZyBpbiBlcnJhdGljIGJlaGF2aW9yIG9yIGRlYWRsb2NrLgorPC9pPjwvYmxvY2txdW90ZT4gCitJbiBtYW55IGNhc2VzIHlvdSB3aWxsIGJlIGx1Y2t5IGFuZCBmaW5kIHRoYXQgaXQgd29ya3MsIGJ1dCBpdCBpcyBub3QgdG8gYmUgYWR2b2NhdGVkLiBIYXZlIGEgbG9vayBhdCA8YSBocmVmPWh0dHA6Ly9qYXZhLnN1bi5jb20+U3VuJ3MgSmF2YSB3ZWIgc2l0ZTwvYT4gYW5kIHNlYXJjaCBmb3IgPGNvZGU+cnVuRmluYWxpemVyc09uRXhpdDwvY29kZT4uCis8L2xpPgorPHA+Cis8bGk+CitGcm9tIGpkazEuMyBvbndhcmRzIGEgbmV3IGZ1bmN0aW9uLCA8Y29kZT5hZGRTaHV0ZG93bkhvb2soKTwvY29kZT4sIHdhcyBpbnRyb2R1Y2VkIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIHdoZW4geW91ciBwcm9ncmFtIGV4aXRzLiBZb3UgY2FuIGVuY291cmFnZSB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgdG8gY2FsbCB0aGUgZmluYWxpemVycywgZm9yIGV4YW1wbGUsIGFkZCB0aGlzIHN0YXRpYyBibG9jayB0byB0aGUgY2xhc3MgdGhhdCBoYXMgdGhlIDxjb2RlPm1haW4oKTwvY29kZT4gZnVuY3Rpb246IAorPGJsb2NrcXVvdGU+PHByZT4KKyAgc3RhdGljIHsKKyAgICBSdW50aW1lLmdldFJ1bnRpbWUoKS5hZGRTaHV0ZG93bkhvb2soIAorICAgICAgbmV3IFRocmVhZCgpIHsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeyBTeXN0ZW0uZ2MoKTsgU3lzdGVtLnJ1bkZpbmFsaXphdGlvbigpOyB9CisgICAgICB9CisgICAgKTsKKyAgfQorPC9wcmU+PC9ibG9ja3F1b3RlPgorQWx0aG91Z2ggdGhpcyB1c3VhbGx5IHdvcmtzLCB0aGUgZG9jdW1lbnRhdGlvbiBkb2Vzbid0IGd1YXJhbnRlZSB0aGF0IDxjb2RlPnJ1bkZpbmFsaXphdGlvbigpPC9jb2RlPiB3aWxsIGFjdHVhbGx5IGNhbGwgdGhlIGZpbmFsaXplcnMuIEFzIHRoZSB0aGUgc2h1dGRvd24gaG9vayBpcyBndWFyYW50ZWVkIHlvdSBjb3VsZCBhbHNvIG1ha2UgYSBKTkkgY2FsbCB0byBjbGVhbiB1cCBhbnkgcmVzb3VyY2VzIHRoYXQgYXJlIGJlaW5nIHRyYWNrZWQgaW4gdGhlIGMvYysrIGNvZGUuCis8L2xpPgorPHA+Cis8bGk+CitDYWxsIHRoZSA8Y29kZT5fZGVsZXRlKCk8L2NvZGU+IGZ1bmN0aW9uIG1hbnVhbGx5LiBBcyBhIHN1Z2dlc3Rpb24gaXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIHNldCB0aGUgb2JqZWN0IHRvIG51bGwgc28gdGhhdCBzaG91bGQgdGhlIG9iamVjdCBiZSBpbmFkdmVydGFudGx5IHVzZWQgYWdhaW4gYSBKYXZhIG51bGwgcG9pbnRlciBleGNlcHRpb24gaXMgdGhyb3duLCB0aGUgYWx0ZXJuYXRpdmUgd291bGQgY3Jhc2ggdGhlIEpWTSBieSB1c2luZyBhIG51bGwgYyBwb2ludGVyLiBGb3IgZXhhbXBsZSBnaXZlbiBhIFNXSUcgZ2VuZXJhdGVkIGNsYXNzIEE6Cis8YmxvY2txdW90ZT48cHJlPgorQSBteUEgPSBuZXcgQSgpOworLy8gdXNlIG15QSAuLi4KK215QS5fZGVsZXRlKCk7CisvLyBhbnkgdXNlIG9mIG15QSBoZXJlIHdvdWxkIGNyYXNoIHRoZSBKVk0gCitteUE9bnVsbDsKKy8vIGFueSB1c2Ugb2YgbXlBIGhlcmUgd291bGQgY2F1c2UgYSBqYXZhIG51bGwgcG9pbnRlciBleGNlcHRpb24gdG8gYmUgdGhyb3duCis8L3ByZT48L2Jsb2NrcXVvdGU+CitUaGUgU1dJRyBnZW5lcmF0ZWQgY29kZSBlbnN1cmVzIHRoYXQgdGhlIG1lbW9yeSBpcyBub3QgZGVsZXRlZCB0d2ljZSwgaW4gdGhlIGV2ZW50IHRoZSBmaW5hbGl6ZXJzIGdldCBjYWxsZWQgaW4gYWRkaXRpb24gdG8gdGhlIG1hbnVhbCA8Y29kZT5fZGVsZXRlKCk8L2NvZGU+IGNhbGwuCis8L2xpPgorCis8cD4KKzxsaT4KK1dyaXRlIHlvdXIgb3duIG9iamVjdCBtYW5hZ2VyIGluIEphdmEuIFlvdSBjb3VsZCBkZXJpdmUgYWxsIFNXSUcgY2xhc3NlcyBmcm9tIGEgc2luZ2xlIGJhc2UgY2xhc3Mgd2hpY2ggY291bGQgdHJhY2sgd2hpY2ggb2JqZWN0cyBoYXZlIGhhZCB0aGVpciBmaW5hbGl6ZXJzIHJ1biwgdGhlbiBjYWxsIHRoZSByZXN0IG9mIHRoZW0gb24gcHJvZ3JhbSB0ZXJtaW5hdGlvbi4gQ3VycmVudGx5IHlvdSBjYW5ub3QgdGVsbCBTV0lHIHRvIGRlcml2ZSBhIFNXSUcgc2hhZG93IGNsYXNzIGZyb20gYW55IG5hbWVkIEphdmEgY2xhc3MsIGJ1dCB0aGlzIGlzIHBsYW5uZWQgaW4gdGhlIG5lYXIgZnV0dXJlLiBBbiBhbHRlcm5hdGl2ZSBpcyB0byBhZGQgdGhlIG9iamVjdCBoYW5kbGluZyBjb2RlIHRvIGFsbCBnZW5lcmF0ZWQgc2hhZG93IGNsYXNzZXMgdXNpbmcgdGhlIHNoYWRvdyBwcmFnbWEuCis8L2xpPgorPC9vbD4KKworPGgyPgorRHluYW1pYyBMaW5raW5nIFByb2JsZW1zPC9oMj4KK1RoZSBjb2RlIHRvIGxvYWQgYSBuYXRpdmUgbGlicmFyeSBpcyA8Y29kZT5TeXN0ZW0ubG9hZExpYnJhcnkoIm5hbWUiKTwvY29kZT4uIENvbW1vbmx5IHRoaXMgd2lsbCBmYWlsIGFuZCBpdCBjYW4gYmUgZHVlIHRvIGEgbnVtYmVyIG9mIHJlYXNvbnMuIFRoZSBtb3N0IGNvbW1vbiBpcyBhbiBpbmNvcnJlY3QgbmFtaW5nIG9mIHRoZSBuYXRpdmUgbGlicmFyeSBmb3IgdGhlIG5hbWUgcGFzc2VkIHRvIHRoZSA8Y29kZT5sb2FkTGlicmFyeTwvY29kZT4gZnVuY3Rpb24uIFRoZSB0ZXh0IHBhc3NlZCB0byB0aGUgPGNvZGU+bG9hZExpYnJhcnk8L2NvZGU+IGZ1bmN0aW9uIG11c3Qgbm90IGluY2x1ZGUgdGhlIHRoZSBleHRlbnNpb24gbmFtZSBpbiB0aGUgdGV4dCwgdGhhdCBpcyA8aT4uZGxsPC9pPiBvciA8aT4uc288L2k+LiBUaGUgdGV4dCBtdXN0IGJlIDxpPm5hbWU8L2k+IGFuZCBub3QgPGk+bGlibmFtZTwvaT4gZm9yIGFsbCBwbGF0Zm9ybXMuIE9uIFdpbmRvd3MgdGhlIG5hdGl2ZSBsaWJyYXJ5IG11c3QgdGhlbiBiZSBjYWxsZWQgPGk+bmFtZS5kbGw8L2k+IGFuZCBvbiBVbml4IGl0IG11c3QgYmUgY2FsbGVkIDxpPmxpYm5hbWUuc288L2k+LiBJZiB5b3UgYXJlIGRlYnVnZ2luZyB1c2luZyA8Y29kZT4gamF2YSAtZGVidWc8L2NvZGU+LCB0aGVuIHRoZSBuYXRpdmUgbGlicmFyeSBtdXN0IGJlIGNhbGxlZCA8aT5uYW1lX2cuZGxsPC9pPiBvbiBXaW5kb3dzIGFuZCA8aT5saWJuYW1lX2cuc288L2k+IG9uIFVuaXguCisKKzxoMj4KK1RpcHM8L2gyPgorCis8dWw+Cis8bGk+CitVc2UgJW5hbWUgdG8gcmVuYW1lIHRoZSBzaGFkb3cgY2xhc3Nlcy48L2xpPgorCis8cHJlPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAlbmFtZShKUGFzc3dkKSBzdHJ1Y3QgcGFzc3dkIHsKKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAuLi4uCismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTs8L3ByZT4KKzxsaT4KK1RoZSAlbmF0aXZlIGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCB0byBtaXggaGFuZCB3cml0dGVuIEpOSSBmdW5jdGlvbnMgd2l0aCB0aGUgYXV0byBnZW5lcmF0ZWQgZnVuY3Rpb25zLgorPC91bD4KKworPGgyPgorQ2F2ZWF0czwvaDI+CisKKzx1bD4KKzxsaT4KK1BvaW50ZXJzIGFyZSBzdG9yZWQgaW4gYSBKYXZhIGxvbmcsIHdoaWNoIGlzIHJlcHJlc2VudGVkIGFzIGEgYyBsb25nIGxvbmcKK29uIG1vc3QgbWFjaGluZXMuIFRoZSBwb2ludGVyIGFkZHJlc3MgaXMgc3RvcmVkIGluIHRoZSBoaWdoIG9yZGVyIGxvbmcKK29mIHRoZSBsb25nIGxvbmcsIGFuZCBjYW5ub3QgYmUgbWFuaXB1bGF0ZWQgZGlyZWN0bHkgZnJvbSBKYXZhLjwvbGk+CisKKzxsaT4KK0lmIGEgdHlwZW1hcChqYXZhLGluKSBpcyBzcGVjaWZpZWQsIHRoZSB0eXBlbWFwKGphdmEsYXJnb3V0KSBtdXN0IGFsc28KK2JlIHNwZWNpZmllZCwgYmVjYXVzZSB0aGUgZGVmYXVsdCAnYXJnb3V0JyBjb2RlIGRlcGVuZHMgb24gdGhlIGRlZmF1bHQKKydpbicgY29kZS48L2xpPgorPC91bD4KKworPGgyPgorQnVnczwvaDI+Cis8dWw+Cis8bGk+V3JhcHBpbmcgb2Ygc3RhdGljIGMrKyBtZW1iZXIgdmFyaWFibGVzIGRvZXMgbm90IHdvcmsuPC9saT4KKzxsaT5HbG9iYWwgYXJyYXlzIGRvIG5vdCB3b3JrLjwvbGk+Cis8L3VsPgorCis8aDI+Q29udGFjdDwvaDI+CitVc2UgdGhlIFNXSUcgbWFpbGluZyBsaXN0IGZvciBhbGwgcXVlcmllcyA8YSBocmVmPW1haWx0bzpzd2lnQGNzLnVjaGljYWdvLmVkdT5zd2lnQGNzLnVjaGljYWdvLmVkdTwvYT4gb3IgaGF2ZSBhIGxvb2sgYXQgPGEgaHJlZj1odHRwOi8vd3d3LnN3aWcub3JnPmh0dHA6Ly93d3cuc3dpZy5vcmc8L2E+LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9DKysvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvQysrLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFjMzZiYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvQysrLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAordGVzdF9jb25mLnB5CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0MrKy9KYXZhLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL0MrKy9KYXZhLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI2NDI2NAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvQysrL0phdmEvLmN2c2lnbm9yZQpAQCAtMCwwICsxLDcgQEAKK2NsYXNzCitjcHB0ZXN0LmphcgorY3BwdGVzdC5qYXZhCitjcHB0ZXN0SmF2YS5qYXZhCitjcHB0ZXN0X2Jhc2UuamF2YQorY3BwdGVzdF9lbXB0eS5qYXZhCitjcHB0ZXN0X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9DKysvSmF2YS9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvQysrL0phdmEvTWFrZWZpbGUKaW5kZXggYzQxYWM1ZC4uMGVkYjBjNiAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9DKysvSmF2YS9NYWtlZmlsZQorKysgYi9TV0lHL0V4YW1wbGVzL0MrKy9KYXZhL01ha2VmaWxlCkBAIC0xNyw0ICsxNywxNSBAQAogCiBQWVRIT04gPSBqcHl0aG9uCiAKLVRFU1RTID0gJCh3aWxkY2FyZCAuLi90ZXN0X3JlcG8vKi5weSkKK1RFU1RTID0gCisKKyMgV2UgaGF2ZW4ndCBjaGVja2VkIGZvciBKUHl0aG9uIGluIHRoZSBjb25maWd1cmUgc3RlcCwgc28gZG9uJ3QgcnVuCisjIGFueSB0ZXN0cyB0aGF0IHJlcXVpcmUgaXQuCisKKyMgLi4vdGVzdF9yZXBvL2NvbnN0cnVjdG9yLnB5ICBcCisjIAkuLi90ZXN0X3JlcG8vY29uc3RydWN0b3JfdXNlcl90eXBlLnB5IFwKKyMgCS4uL3Rlc3RfcmVwby9pbmhlcml0ZW5jZV9tYXBfdG9fYmFzZV9jbGFzcy5weSBcCisjIAkuLi90ZXN0X3JlcG8vb2JqZWN0X21ldGhvZC5weSBcCisjIAkuLi90ZXN0X3JlcG8vb2JqZWN0X21ldGhvZF91c2VyX3R5cGUucHkgXAorIyAJLi4vdGVzdF9yZXBvL3ByaW1pdGl2ZV9tZXRob2QucHkgXAorIyAJLi4vdGVzdF9yZXBvL3ByaW1pdGl2ZV9tZXRob2RfdXNlcl90eXBlLnB5CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0MrKy9QeXRob24vLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvQysrL1B5dGhvbi8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMTcwOGEKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0MrKy9QeXRob24vLmN2c2lnbm9yZQpAQCAtMCwwICsxLDMgQEAKK2NwcHRlc3QucHkKK2NwcHRlc3QucHljCitjcHB0ZXN0X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9DKysvUHl0aG9uL01ha2VmaWxlIGIvU1dJRy9FeGFtcGxlcy9DKysvUHl0aG9uL01ha2VmaWxlCmluZGV4IGVjYmJkYjguLmQ4NjQwZmIgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvQysrL1B5dGhvbi9NYWtlZmlsZQorKysgYi9TV0lHL0V4YW1wbGVzL0MrKy9QeXRob24vTWFrZWZpbGUKQEAgLTEzLDQgKzEzLDEwIEBACiAKIFBZVEhPTiA9IHB5dGhvbgogCi1URVNUUyA9ICQod2lsZGNhcmQgLi4vdGVzdF9yZXBvLyoucHkpCitURVNUUyA9IC4uL3Rlc3RfcmVwby9jb25zdHJ1Y3Rvci5weSAgXAorCS4uL3Rlc3RfcmVwby9jb25zdHJ1Y3Rvcl91c2VyX3R5cGUucHkgXAorCS4uL3Rlc3RfcmVwby9pbmhlcml0ZW5jZV9tYXBfdG9fYmFzZV9jbGFzcy5weSBcCisJLi4vdGVzdF9yZXBvL29iamVjdF9tZXRob2QucHkgXAorCS4uL3Rlc3RfcmVwby9vYmplY3RfbWV0aG9kX3VzZXJfdHlwZS5weSBcCisJLi4vdGVzdF9yZXBvL3ByaW1pdGl2ZV9tZXRob2QucHkgXAorCS4uL3Rlc3RfcmVwby9wcmltaXRpdmVfbWV0aG9kX3VzZXJfdHlwZS5weQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9DKysvY29tbW9uLm1rIGIvU1dJRy9FeGFtcGxlcy9DKysvY29tbW9uLm1rCmluZGV4IDhhODkwM2IuLjQ0NjQ4ZWUgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvQysrL2NvbW1vbi5taworKysgYi9TV0lHL0V4YW1wbGVzL0MrKy9jb21tb24ubWsKQEAgLTE4LDcgKzE4LDcgQEAKIAogY2hlY2s6OiBhbGwKIAliYWRfc3RhdHVzPSIiIDsgXAotCWZvciBpIGluICQoVEVTVFMpOyBkbyBcCisJdGVzdHM9IiQoVEVTVFMpIjsgZm9yIGkgaW4gJCR0ZXN0czsgZG8gXAogCSAgTERfTElCUkFSWV9QQVRIPS4gUFlUSE9OUEFUSD0uIENMQVNTUEFUSD0uLyQoSkFSKSA7IFwKIAkgICggJChQWVRIT04pICQkaSAmJiBlY2hvICIkJGk6IFBBU1NFRCIgKSB8fCBlY2hvICIkJGk6IEZBSUxFRCI7IFwKIAlkb25lCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0MrKy9pbnRlcmZhY2UvY3BwdGVzdC5pIGIvU1dJRy9FeGFtcGxlcy9DKysvaW50ZXJmYWNlL2NwcHRlc3QuaQppbmRleCBhMGQxYzE2Li4yMjU1ZGI0IDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL0MrKy9pbnRlcmZhY2UvY3BwdGVzdC5pCisrKyBiL1NXSUcvRXhhbXBsZXMvQysrL2ludGVyZmFjZS9jcHB0ZXN0LmkKQEAgLTE5LDcgKzE5LDcgQEAKICVpbmNsdWRlICJjcHB0ZXN0LkgiCiAKICNpZmRlZiBTV0lHSkFWQQotJXByYWdtYShqYXZhKSBtb2R1bGU9IgorJXByYWdtYShqYXZhKSBtb2R1bGVjb2RlPSIKIHN0YXRpYyB7CiAJU3lzdGVtLmxvYWRMaWJyYXJ5KFwiY3BwdGVzdFwiKTsKIH0iOwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90Ly5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjdlYzc5Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90Ly5jdnNpZ25vcmUKQEAgLTAsMCArMSw0IEBACitNYWtlZmlsZQorY29uZmlnLmxvZworY29uZmlnLnN0YXR1cworY29uZmlndXJlCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvR3VpbGUvZnVsbC8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0d1aWxlL2Z1bGwvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjRkMzVmCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0d1aWxlL2Z1bGwvLmN2c2lnbm9yZQpAQCAtMCwwICsxLDMgQEAKK2dpZnBsb3QtZ3VpbGUKK2dpZnBsb3Rfd3JhcC5jCitpbWFnZS5naWYKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9HdWlsZS9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9HdWlsZS9zaW1wbGUvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmM1ZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0d1aWxlL3NpbXBsZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsNCBAQAorZ2lmZ3VpbGUKK2ltYWdlLmdpZgorc2ltcGxlLWd1aWxlCitzaW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSW5jbHVkZS9naWZwbG90LmggYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSW5jbHVkZS9naWZwbG90LmgKaW5kZXggZjBmYjNiMS4uMTU4YjM5MyAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0luY2x1ZGUvZ2lmcGxvdC5oCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9JbmNsdWRlL2dpZnBsb3QuaApAQCAtMTI1LDkgKzEyNSw5IEBACiBleHRlcm4gdm9pZCAgICAgIFBpeE1hcF9zZXQoUGl4TWFwICpwbSwgaW50IHgsIGludCB5LCBpbnQgcGl4KTsKIGV4dGVybiB2b2lkICAgICAgRnJhbWVCdWZmZXJfZHJhd3BpeG1hcChGcmFtZUJ1ZmZlciAqZiwgUGl4TWFwICpwbSwgaW50IHgsIGludCB5LCBpbnQgZmdjb2xvciwgaW50IGJnY29sb3IpOwogCi0jZGVmaW5lICAgVFJBTlNQQVJFTlQgIDAKLSNkZWZpbmUgICBGT1JFR1JPVU5EICAgMQotI2RlZmluZSAgIEJBQ0tHUk9VTkQgICAyCisjZGVmaW5lICAgR0lGUExPVF9UUkFOU1BBUkVOVCAgMAorI2RlZmluZSAgIEdJRlBMT1RfRk9SRUdST1VORCAgIDEKKyNkZWZpbmUgICBHSUZQTE9UX0JBQ0tHUk9VTkQgICAyCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUGxvdDJECmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSW50ZXJmYWNlL2dpZnBsb3QuaSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9JbnRlcmZhY2UvZ2lmcGxvdC5pCmluZGV4IDY5YTdjZGIuLmFkNDQ4NTcgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9JbnRlcmZhY2UvZ2lmcGxvdC5pCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9JbnRlcmZhY2UvZ2lmcGxvdC5pCkBAIC0xMTksOSArMTE5LDkgQEAKIGV4dGVybiB2b2lkICAgICAgZGVsZXRlX1BpeE1hcChQaXhNYXAgKnBtKTsKIGV4dGVybiB2b2lkICAgICAgUGl4TWFwX3NldChQaXhNYXAgKnBtLCBpbnQgeCwgaW50IHksIGludCBwaXgpOwogCi0jZGVmaW5lICAgVFJBTlNQQVJFTlQgIDAKLSNkZWZpbmUgICBGT1JFR1JPVU5EICAgMQotI2RlZmluZSAgIEJBQ0tHUk9VTkQgICAyCisjZGVmaW5lICAgR0lGUExPVF9UUkFOU1BBUkVOVCAgMAorI2RlZmluZSAgIEdJRlBMT1RfRk9SRUdST1VORCAgIDEKKyNkZWZpbmUgICBHSUZQTE9UX0JBQ0tHUk9VTkQgICAyCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQbG90MkQKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9KYXZhLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMWI1NTkKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMyBAQAorKi5qYXZhCisqLmNsYXNzCitnaWZwbG90X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0phdmEvTWFrZWZpbGUgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS9NYWtlZmlsZQppbmRleCA2MDE3ZTFhLi43YzQ1ZDA1IDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS9NYWtlZmlsZQorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS9NYWtlZmlsZQpAQCAtMSw2ICsxLDYgQEAKIFRPUCAgICAgICAgPSAuLi8uLgotU1dJRyAgICAgICA9ICQoVE9QKS8uLi9zd2lnIC1zaGFkb3cKLVNXSUdPUFQgICAgPSAtSS4uL0luY2x1ZGUKK1NXSUcgICAgICAgPSAkKFRPUCkvLi4vc3dpZworU1dJR09QVCAgICA9IC1JLi4vSW5jbHVkZSAtc2hhZG93CiBTUkNTICAgICAgID0KIFRBUkdFVCAgICAgPSBsaWJqZ2lmcGxvdAogSU5URVJGQUNFICA9IGdpZnBsb3QuaQpAQCAtMTEsNiArMTEsNyBAQAogCSQoTUFLRSkgLWYgJChUT1ApL01ha2VmaWxlIFNSQ1M9JyQoU1JDUyknIFNXSUc9JyQoU1dJRyknIFwKIAlJTkNMVURFPSckKElOQ0xVREUpJyBMSUJTPSckKExJQlMpJyBTV0lHT1BUPSckKFNXSUdPUFQpJyBcCiAJVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBqYXZhCisJamF2YWMgKi5qYXZhCiAKIGNsZWFuOjoKIAlybSAtZiAqX3dyYXAqICoubyAqfiAqLnNvIC5+KiBjb3JlICouZ2lmICouY2xhc3MgQ29sb3JNYXAuamF2YSBGcmFtZUJ1ZmZlci5qYXZhIFBsb3QyRC5qYXZhIFBsb3QzRC5qYXZhIGdpZnBsb3QuamF2YQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0phdmEvZ2lmcGxvdC5pIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0phdmEvZ2lmcGxvdC5pCmluZGV4IGI4ZjE3ZjYuLjM5N2UzOTkgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9KYXZhL2dpZnBsb3QuaQorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvSmF2YS9naWZwbG90LmkKQEAgLTExOSw5ICsxMTksOSBAQAogZXh0ZXJuIHZvaWQgICAgICBkZWxldGVfUGl4TWFwKFBpeE1hcCAqcG0pOwogZXh0ZXJuIHZvaWQgICAgICBQaXhNYXBfc2V0KFBpeE1hcCAqcG0sIGludCB4LCBpbnQgeSwgaW50IHBpeCk7CiAKLSNkZWZpbmUgICBUUkFOU1BBUkVOVCAgMAotI2RlZmluZSAgIEZPUkVHUk9VTkQgICAxCi0jZGVmaW5lICAgQkFDS0dST1VORCAgIDIKKyNkZWZpbmUgICBHSUZQTE9UX1RSQU5TUEFSRU5UICAwCisjZGVmaW5lICAgR0lGUExPVF9GT1JFR1JPVU5EICAgMQorI2RlZmluZSAgIEdJRlBMT1RfQkFDS0dST1VORCAgIDIKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBsb3QyRApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0xpYi8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0xpYi8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYzdhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvTGliLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorTWFrZWZpbGUKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9MaWIvcGl4bWFwLmMgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvTGliL3BpeG1hcC5jCmluZGV4IGZmOGUwYmYuLmE1NWNmMDQgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9MaWIvcGl4bWFwLmMKKysrIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L0xpYi9waXhtYXAuYwpAQCAtOTksMTAgKzk5LDEwIEBACiAgICAgZm9yIChpID0gc3RhcnR4OyBpIDwgZW5keDsgaSsrKSB7CiAgICAgICBjID0gcG0tPm1hcFtweSpwbS0+d2lkdGggKyBweF07CiAgICAgICBzd2l0Y2ggKGMpIHsKLSAgICAgIGNhc2UgRk9SRUdST1VORDoKKyAgICAgIGNhc2UgR0lGUExPVF9GT1JFR1JPVU5EOgogCWYtPnBpeGVsc1tqXVtpXSA9IGZnY29sb3I7CiAJYnJlYWs7Ci0gICAgICBjYXNlIEJBQ0tHUk9VTkQ6CisgICAgICBjYXNlIEdJRlBMT1RfQkFDS0dST1VORDoKIAlmLT5waXhlbHNbal1baV0gPSBiZ2NvbG9yOwogCWJyZWFrOwogICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL2Z1bGwvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL2Z1bGwvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjYzNzM1Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1BlcmwvZnVsbC8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZ2lmcGxvdC5wbQorZ2lmcGxvdF93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL3NoYWRvdy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1Blcmwvc2hhZG93Ly5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y2MzczNQotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL3NoYWRvdy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZ2lmcGxvdC5wbQorZ2lmcGxvdF93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL3NpbXBsZS8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1Blcmwvc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdjNjJhNAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QZXJsL3NpbXBsZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorc2ltcGxlLnBtCitzaW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUHl0aG9uL2Z1bGwvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vZnVsbC8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NzAzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUHl0aG9uL2Z1bGwvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitnaWZwbG90X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1B5dGhvbi9zaGFkb3cvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2hhZG93Ly5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM3NDZiMwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2hhZG93Ly5jdnNpZ25vcmUKQEAgLTAsMCArMSwyIEBACitnaWZwbG90LnB5CitnaWZwbG90X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1B5dGhvbi9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYzYTU0MAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2ltcGxlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorc2ltcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1JFQURNRSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9SRUFETUUKaW5kZXggNzk2MGE2Zi4uNzNlY2RkZCAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1JFQURNRQorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUkVBRE1FCkBAIC00LDcgKzQsNyBAQAogVG8gaWxsdXN0cmF0ZSB2YXJpb3VzIFNXSUcgZmVhdHVyZXMsIHRoZSBmb2xsb3dpbmcgZXhhbXBsZXMgaW52b2x2ZQogYnVpbGRpbmcgYW4gaW50ZXJmYWNlIHRvIGEgc21hbGwsIGJ1dCBzb21ld2hhdCB1c2VmdWwgZ3JhcGhpY3MgbGlicmFyeQogZm9yIGNyZWF0aW5nIDJEIGFuZCAzRCBpbWFnZXMgaW4gdGhlIGZvcm0gb2YgR0lGIGZpbGVzLiAgVGhlIFBlcmwsCi1QeXRob24sIFRjbCwgYW5kIFJ1YnkgZGlyZWN0b3JpZXMgY29udGFpbiB2YXJpb3VzIGV4YW1wbGVzIHNwZWNpZmljIHRvCitQeXRob24sIFRjbCwgSmF2YSBhbmQgUnVieSBkaXJlY3RvcmllcyBjb250YWluIHZhcmlvdXMgZXhhbXBsZXMgc3BlY2lmaWMgdG8KIHRob3NlIGxhbmd1YWdlcy4KIAogVGhpcyBsaWJyYXJ5IHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBhcyBwYXJ0IG9mIHRoZSBTUGFTTSBtb2xlY3VsYXIKQEAgLTM2LDcgKzM2LDcgQEAKIFJ1bm5pbmcgdGhlIEV4YW1wbGVzCiA9PT09PT09PT09PT09PT09PT09PQogCi1PbmNlIHRoZSBsaWJyYXJ5IGhhcyBiZWVuIGJ1aWx0LCBnbyB0aGUgUGVybCwgUHl0aG9uLCBUY2wsIG9yIFJ1YnkgZGlyZWN0b3J5CitPbmNlIHRoZSBsaWJyYXJ5IGhhcyBiZWVuIGJ1aWx0LCBnbyB0aGUgUGVybCwgUHl0aG9uLCBUY2wsIEphdmEgb3IgUnVieSBkaXJlY3RvcnkKIHRvIHNlZSB2YXJpb3VzIFNXSUcgZXhhbXBsZXMuICAgRWFjaCBleGFtcGxlIHNob3VsZCBoYXZlIGEgUkVBRE1FIGZpbGUgd2l0aCBhCiBkZXNjcmlwdGlvbi4KIApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1J1YnkvZnVsbC8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1J1YnkvZnVsbC8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NzAzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUnVieS9mdWxsLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZ2lmcGxvdF93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9SdWJ5L3NoYWRvdy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1J1Ynkvc2hhZG93Ly5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk3MDMwNwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9SdWJ5L3NoYWRvdy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2dpZnBsb3Rfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUnVieS9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9SdWJ5L3NpbXBsZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmM2E1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvUnVieS9zaW1wbGUvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitzaW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvVGNsL2Z1bGwvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9UY2wvZnVsbC8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NzAzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL0dJRlBsb3QvVGNsL2Z1bGwvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitnaWZwbG90X3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1RjbC9tYW5kZWwvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9UY2wvbWFuZGVsLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYzOTg4YwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9UY2wvbWFuZGVsLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorbWFuZGVsX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L1RjbC9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9UY2wvc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYzYTU0MAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9UY2wvc2ltcGxlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorc2ltcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L2NvbmZpZ3VyZSBiL1NXSUcvRXhhbXBsZXMvR0lGUGxvdC9jb25maWd1cmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDM5OTdiNGQuLjAwMDAwMDAKLS0tIGEvU1dJRy9FeGFtcGxlcy9HSUZQbG90L2NvbmZpZ3VyZQorKysgL2Rldi9udWxsCkBAIC0xLDEyOTkgKzAsMCBAQAotIyEgL2Jpbi9zaAotCi0jIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IHVzaW5nIGF1dG9jb25mIHZlcnNpb24gMi4xMyAKLSMgQ29weXJpZ2h0IChDKSAxOTkyLCA5MywgOTQsIDk1LCA5NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSMKLSMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgotCi0jIERlZmF1bHRzOgotYWNfaGVscD0KLWFjX2RlZmF1bHRfcHJlZml4PS91c3IvbG9jYWwKLSMgQW55IGFkZGl0aW9ucyBmcm9tIGNvbmZpZ3VyZS5pbjoKLQotIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKLSMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KLWJ1aWxkPU5PTkUKLWNhY2hlX2ZpbGU9Li9jb25maWcuY2FjaGUKLWV4ZWNfcHJlZml4PU5PTkUKLWhvc3Q9Tk9ORQotbm9fY3JlYXRlPQotbm9ub3B0PU5PTkUKLW5vX3JlY3Vyc2lvbj0KLXByZWZpeD1OT05FCi1wcm9ncmFtX3ByZWZpeD1OT05FCi1wcm9ncmFtX3N1ZmZpeD1OT05FCi1wcm9ncmFtX3RyYW5zZm9ybV9uYW1lPXMseCx4LAotc2lsZW50PQotc2l0ZT0KLXNyY2Rpcj0KLXRhcmdldD1OT05FCi12ZXJib3NlPQoteF9pbmNsdWRlcz1OT05FCi14X2xpYnJhcmllcz1OT05FCi1iaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKLXNiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCi1saWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwotZGF0YWRpcj0nJHtwcmVmaXh9L3NoYXJlJwotc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKLXNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwotbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKLWxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwotaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCi1vbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCi1pbmZvZGlyPScke3ByZWZpeH0vaW5mbycKLW1hbmRpcj0nJHtwcmVmaXh9L21hbicKLQotIyBJbml0aWFsaXplIHNvbWUgb3RoZXIgdmFyaWFibGVzLgotc3ViZGlycz0KLU1GTEFHUz0gTUFLRUZMQUdTPQotU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2hlbGwgaGVyZSBkb2N1bWVudC4KLWFjX21heF9oZXJlX2xpbmVzPTEyCi0KLWFjX3ByZXY9Ci1mb3IgYWNfb3B0aW9uCi1kbwotCi0gICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgotICBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KLSAgICBldmFsICIkYWNfcHJldj1cJGFjX29wdGlvbiIKLSAgICBhY19wcmV2PQotICAgIGNvbnRpbnVlCi0gIGZpCi0KLSAgY2FzZSAiJGFjX29wdGlvbiIgaW4KLSAgLSo9KikgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0aW9uIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0gICopIGFjX29wdGFyZz0gOzsKLSAgZXNhYwotCi0gICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0KLSAgY2FzZSAiJGFjX29wdGlvbiIgaW4KLQotICAtYmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5kIHwgLS1iaW4gfCAtLWJpKQotICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0gIC1iaW5kaXI9KiB8IC0tYmluZGlyPSogfCAtLWJpbmRpPSogfCAtLWJpbmQ9KiB8IC0tYmluPSogfCAtLWJpPSopCi0gICAgYmluZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCi0gICAgYWNfcHJldj1idWlsZCA7OwotICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKLSAgICBidWlsZD0iJGFjX29wdGFyZyIgOzsKLQotICAtY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsZSB8IC0tY2FjaGUtZmlsIHwgLS1jYWNoZS1maSBcCi0gIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotICAgIGFjX3ByZXY9Y2FjaGVfZmlsZSA7OwotICAtY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbD0qIHwgLS1jYWNoZS1maT0qIFwKLSAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSAgICBjYWNoZV9maWxlPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkIHwgLS1kYXRhIHwgLS1kYXQgfCAtLWRhKQotICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotICAtZGF0YWRpcj0qIHwgLS1kYXRhZGlyPSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qIHwgLS1kYXRhPSogfCAtLWRhdD0qIFwKLSAgfCAtLWRhPSopCi0gICAgZGF0YWRpcj0iJGFjX29wdGFyZyIgOzsKLQotICAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSopCi0gICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfb3B0aW9ufHNlZCAtZSAncy8tKmRpc2FibGUtLy8nYAotICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSAgICBpZiB0ZXN0IC1uICJgZWNobyAkYWNfZmVhdHVyZXwgc2VkICdzL1stYS16QS1aMC05X10vL2cnYCI7IHRoZW4KLSAgICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogJGFjX2ZlYXR1cmU6IGludmFsaWQgZmVhdHVyZSBuYW1lIiAxPiYyOyBleGl0IDE7IH0KLSAgICBmaQotICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmV8IHNlZCAncy8tL18vZydgCi0gICAgZXZhbCAiZW5hYmxlXyR7YWNfZmVhdHVyZX09bm8iIDs7Ci0KLSAgLWVuYWJsZS0qIHwgLS1lbmFibGUtKikKLSAgICBhY19mZWF0dXJlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qZW5hYmxlLS8vJyAtZSAncy89LiovLydgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19mZWF0dXJlfCBzZWQgJ3MvWy1fYS16QS1aMC05XS8vZydgIjsgdGhlbgotICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfZmVhdHVyZTogaW52YWxpZCBmZWF0dXJlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotICAgIGZpCi0gICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZXwgc2VkICdzLy0vXy9nJ2AKLSAgICBjYXNlICIkYWNfb3B0aW9uIiBpbgotICAgICAgKj0qKSA7OwotICAgICAgKikgYWNfb3B0YXJnPXllcyA7OwotICAgIGVzYWMKLSAgICBldmFsICJlbmFibGVfJHthY19mZWF0dXJlfT0nJGFjX29wdGFyZyciIDs7Ci0KLSAgLWV4ZWMtcHJlZml4IHwgLS1leGVjX3ByZWZpeCB8IC0tZXhlYy1wcmVmaXggfCAtLWV4ZWMtcHJlZmkgXAotICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0tZXhlYy1wciB8IC0tZXhlYy1wIHwgLS1leGVjLSBcCi0gIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQotICAgIGFjX3ByZXY9ZXhlY19wcmVmaXggOzsKLSAgLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWNfcHJlZml4PSogfCAtLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCi0gIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCi0gIHwgLS1leGVjPSogfCAtLWV4ZT0qIHwgLS1leD0qKQotICAgIGV4ZWNfcHJlZml4PSIkYWNfb3B0YXJnIiA7OwotCi0gIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0gICAgd2l0aF9nYXM9eWVzIDs7Ci0KLSAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUpCi0gICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCi0gICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotICAgIGNhdCA8PCBFT0YKLVVzYWdlOiBjb25maWd1cmUgW29wdGlvbnNdIFtob3N0XQotT3B0aW9uczogW2RlZmF1bHRzIGluIGJyYWNrZXRzIGFmdGVyIGRlc2NyaXB0aW9uc10KLUNvbmZpZ3VyYXRpb246Ci0gIC0tY2FjaGUtZmlsZT1GSUxFICAgICAgIGNhY2hlIHRlc3QgcmVzdWx0cyBpbiBGSUxFCi0gIC0taGVscCAgICAgICAgICAgICAgICAgIHByaW50IHRoaXMgbWVzc2FnZQotICAtLW5vLWNyZWF0ZSAgICAgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcwotICAtLXF1aWV0LCAtLXNpbGVudCAgICAgICBkbyBub3QgcHJpbnQgXGBjaGVja2luZy4uLicgbWVzc2FnZXMKLSAgLS12ZXJzaW9uICAgICAgICAgICAgICAgcHJpbnQgdGhlIHZlcnNpb24gb2YgYXV0b2NvbmYgdGhhdCBjcmVhdGVkIGNvbmZpZ3VyZQotRGlyZWN0b3J5IGFuZCBmaWxlIG5hbWVzOgotICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KLSAgLS1leGVjLXByZWZpeD1FUFJFRklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGluIEVQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgW3NhbWUgYXMgcHJlZml4XQotICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIGluIERJUiBbRVBSRUZJWC9iaW5dCi0gIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBpbiBESVIgW0VQUkVGSVgvc2Jpbl0KLSAgLS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBpbiBESVIgW0VQUkVGSVgvbGliZXhlY10KLSAgLS1kYXRhZGlyPURJUiAgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIGluIERJUgotICAgICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYL3NoYXJlXQotICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0YSBpbiBESVIgW1BSRUZJWC9ldGNdCi0gIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgIG1vZGlmaWFibGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgaW4gRElSCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVgvY29tXQotICAtLWxvY2Fsc3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgaW4gRElSIFtQUkVGSVgvdmFyXQotICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgaW4gRElSIFtFUFJFRklYL2xpYl0KLSAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAgQyBoZWFkZXIgZmlsZXMgaW4gRElSIFtQUkVGSVgvaW5jbHVkZV0KLSAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgaW4gRElSIFsvdXNyL2luY2x1ZGVdCi0gIC0taW5mb2Rpcj1ESVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBpbiBESVIgW1BSRUZJWC9pbmZvXQotICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBpbiBESVIgW1BSRUZJWC9tYW5dCi0gIC0tc3JjZGlyPURJUiAgICAgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIC4uXQotICAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCBwcmVwZW5kIFBSRUZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotICAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCBhcHBlbmQgU1VGRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0gIC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT1QUk9HUkFNCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcwotRU9GCi0gICAgY2F0IDw8IEVPRgotSG9zdCB0eXBlOgotICAtLWJ1aWxkPUJVSUxEICAgICAgICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxEIFtCVUlMRD1IT1NUXQotICAtLWhvc3Q9SE9TVCAgICAgICAgICAgICBjb25maWd1cmUgZm9yIEhPU1QgW2d1ZXNzZWRdCi0gIC0tdGFyZ2V0PVRBUkdFVCAgICAgICAgIGNvbmZpZ3VyZSBmb3IgVEFSR0VUIFtUQVJHRVQ9SE9TVF0KLUZlYXR1cmVzIGFuZCBwYWNrYWdlczoKLSAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQotICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0gIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdFIFtBUkc9eWVzXQotICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCi0gIC0teC1pbmNsdWRlcz1ESVIgICAgICAgIFggaW5jbHVkZSBmaWxlcyBhcmUgaW4gRElSCi0gIC0teC1saWJyYXJpZXM9RElSICAgICAgIFggbGlicmFyeSBmaWxlcyBhcmUgaW4gRElSCi1FT0YKLSAgICBpZiB0ZXN0IC1uICIkYWNfaGVscCI7IHRoZW4KLSAgICAgIGVjaG8gIi0tZW5hYmxlIGFuZCAtLXdpdGggb3B0aW9ucyByZWNvZ25pemVkOiRhY19oZWxwIgotICAgIGZpCi0gICAgZXhpdCAwIDs7Ci0KLSAgLWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCi0gICAgYWNfcHJldj1ob3N0IDs7Ci0gIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCi0gICAgaG9zdD0iJGFjX29wdGFyZyIgOzsKLQotICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0gIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1pbmNsIHwgLS1pbmMpCi0gICAgYWNfcHJldj1pbmNsdWRlZGlyIDs7Ci0gIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0gIHwgLS1pbmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9KikKLSAgICBpbmNsdWRlZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1pbmZvZGlyIHwgLS1pbmZvZGlyIHwgLS1pbmZvZGkgfCAtLWluZm9kIHwgLS1pbmZvIHwgLS1pbmYpCi0gICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0gIC1pbmZvZGlyPSogfCAtLWluZm9kaXI9KiB8IC0taW5mb2RpPSogfCAtLWluZm9kPSogfCAtLWluZm89KiB8IC0taW5mPSopCi0gICAgaW5mb2Rpcj0iJGFjX29wdGFyZyIgOzsKLQotICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQotICAgIGFjX3ByZXY9bGliZGlyIDs7Ci0gIC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAtLWxpYmQ9KikKLSAgICBsaWJkaXI9IiRhY19vcHRhcmciIDs7Ci0KLSAgLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaXIgfCAtLWxpYmV4ZWNkaSB8IC0tbGliZXhlY2QgfCAtLWxpYmV4ZWMgXAotICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSAgICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKLSAgLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGk9KiB8IC0tbGliZXhlY2Q9KiB8IC0tbGliZXhlYz0qIFwKLSAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0gICAgbGliZXhlY2Rpcj0iJGFjX29wdGFyZyIgOzsKLQotICAtbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpciB8IC0tbG9jYWxzdGF0ZWRpIHwgLS1sb2NhbHN0YXRlZCBcCi0gIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IFwKLSAgfCAtLWxvY2FscyB8IC0tbG9jYWwgfCAtLWxvY2EgfCAtLWxvYyB8IC0tbG8pCi0gICAgYWNfcHJldj1sb2NhbHN0YXRlZGlyIDs7Ci0gIC1sb2NhbHN0YXRlZGlyPSogfCAtLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpPSogfCAtLWxvY2Fsc3RhdGVkPSogXAotICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIFwKLSAgfCAtLWxvY2Fscz0qIHwgLS1sb2NhbD0qIHwgLS1sb2NhPSogfCAtLWxvYz0qIHwgLS1sbz0qKQotICAgIGxvY2Fsc3RhdGVkaXI9IiRhY19vcHRhcmciIDs7Ci0KLSAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKLSAgICBhY19wcmV2PW1hbmRpciA7OwotICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCi0gICAgbWFuZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1uZnAgfCAtLW5mcCB8IC0tbmYpCi0gICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSAgICB3aXRoX2ZwPW5vIDs7Ci0KLSAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSAgfCAtLW5vLWNyIHwgLS1uby1jKQotICAgIG5vX2NyZWF0ZT15ZXMgOzsKLQotICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLSAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5vLXIpCi0gICAgbm9fcmVjdXJzaW9uPXllcyA7OwotCi0gIC1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGluY2x1ZGVkIFwKLSAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xkaW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCi0gIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKLSAgICBhY19wcmV2PW9sZGluY2x1ZGVkaXIgOzsKLSAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCi0gIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKLSAgfCAtLW9sZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikKLSAgICBvbGRpbmNsdWRlZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1wcmVmaXggfCAtLXByZWZpeCB8IC0tcHJlZmkgfCAtLXByZWYgfCAtLXByZSB8IC0tcHIgfCAtLXApCi0gICAgYWNfcHJldj1wcmVmaXggOzsKLSAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQotICAgIHByZWZpeD0iJGFjX29wdGFyZyIgOzsKLQotICAtcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpIHwgLS1wcm9ncmFtLXByZWYgXAotICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKLSAgICBhY19wcmV2PXByb2dyYW1fcHJlZml4IDs7Ci0gIC1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpeD0qIHwgLS1wcm9ncmFtLXByZWZpPSogXAotICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0gICAgcHJvZ3JhbV9wcmVmaXg9IiRhY19vcHRhcmciIDs7Ci0KLSAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKLSAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCi0gICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OwotICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKLSAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQotICAgIHByb2dyYW1fc3VmZml4PSIkYWNfb3B0YXJnIiA7OwotCi0gIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSAgfCAtLXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2YgXAotICB8IC0tcHJvZ3JhbS10cmFucyB8IC0tcHJvZ3JhbS10cmFuIFwKLSAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA7OwotICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS09KiBcCi0gIHwgLS1wcm9ncmFtLXRyYW5zZm9ybT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9yPSogXAotICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotICB8IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCi0gIHwgLS1wcm9nci10cmE9KiB8IC0tcHJvZ3JhbS10cj0qIHwgLS1wcm9ncmFtLXQ9KikKLSAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0gIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQotICAgIHNpbGVudD15ZXMgOzsKLQotICAtc2JpbmRpciB8IC0tc2JpbmRpciB8IC0tc2JpbmRpIHwgLS1zYmluZCB8IC0tc2JpbiB8IC0tc2JpIHwgLS1zYikKLSAgICBhY19wcmV2PXNiaW5kaXIgOzsKLSAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSAgfCAtLXNiaT0qIHwgLS1zYj0qKQotICAgIHNiaW5kaXI9IiRhY19vcHRhcmciIDs7Ci0KLSAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCi0gIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAotICB8IC0tc2hhcmVkc3QgfCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAotICB8IC0tc2hhIHwgLS1zaCkKLSAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7Ci0gIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpPSogXAotICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAotICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKLSAgfCAtLXNoYT0qIHwgLS1zaD0qKQotICAgIHNoYXJlZHN0YXRlZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCi0gICAgYWNfcHJldj1zaXRlIDs7Ci0gIC1zaXRlPSogfCAtLXNpdGU9KiB8IC0tc2l0PSopCi0gICAgc2l0ZT0iJGFjX29wdGFyZyIgOzsKLQotICAtc3JjZGlyIHwgLS1zcmNkaXIgfCAtLXNyY2RpIHwgLS1zcmNkIHwgLS1zcmMgfCAtLXNyKQotICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0gIC1zcmNkaXI9KiB8IC0tc3JjZGlyPSogfCAtLXNyY2RpPSogfCAtLXNyY2Q9KiB8IC0tc3JjPSogfCAtLXNyPSopCi0gICAgc3JjZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKLSAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCi0gICAgYWNfcHJldj1zeXNjb25mZGlyIDs7Ci0gIC1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9KiBcCi0gIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKLSAgICBzeXNjb25mZGlyPSIkYWNfb3B0YXJnIiA7OwotCi0gIC10YXJnZXQgfCAtLXRhcmdldCB8IC0tdGFyZ2UgfCAtLXRhcmcgfCAtLXRhciB8IC0tdGEgfCAtLXQpCi0gICAgYWNfcHJldj10YXJnZXQgOzsKLSAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotICAgIHRhcmdldD0iJGFjX29wdGFyZyIgOzsKLQotICAtdiB8IC12ZXJib3NlIHwgLS12ZXJib3NlIHwgLS12ZXJib3MgfCAtLXZlcmJvIHwgLS12ZXJiKQotICAgIHZlcmJvc2U9eWVzIDs7Ci0KLSAgLXZlcnNpb24gfCAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMpCi0gICAgZWNobyAiY29uZmlndXJlIGdlbmVyYXRlZCBieSBhdXRvY29uZiB2ZXJzaW9uIDIuMTMiCi0gICAgZXhpdCAwIDs7Ci0KLSAgLXdpdGgtKiB8IC0td2l0aC0qKQotICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX29wdGlvbnxzZWQgLWUgJ3MvLSp3aXRoLS8vJyAtZSAncy89LiovLydgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvWy1fYS16QS1aMC05XS8vZydgIjsgdGhlbgotICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfcGFja2FnZTogaW52YWxpZCBwYWNrYWdlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotICAgIGZpCi0gICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZXwgc2VkICdzLy0vXy9nJ2AKLSAgICBjYXNlICIkYWNfb3B0aW9uIiBpbgotICAgICAgKj0qKSA7OwotICAgICAgKikgYWNfb3B0YXJnPXllcyA7OwotICAgIGVzYWMKLSAgICBldmFsICJ3aXRoXyR7YWNfcGFja2FnZX09JyRhY19vcHRhcmcnIiA7OwotCi0gIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSAgICBhY19wYWNrYWdlPWBlY2hvICRhY19vcHRpb258c2VkIC1lICdzLy0qd2l0aG91dC0vLydgCi0gICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19wYWNrYWdlfCBzZWQgJ3MvWy1hLXpBLVowLTlfXS8vZydgIjsgdGhlbgotICAgICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiAkYWNfcGFja2FnZTogaW52YWxpZCBwYWNrYWdlIG5hbWUiIDE+JjI7IGV4aXQgMTsgfQotICAgIGZpCi0gICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZXwgc2VkICdzLy0vXy9nJ2AKLSAgICBldmFsICJ3aXRoXyR7YWNfcGFja2FnZX09bm8iIDs7Ci0KLSAgLS14KQotICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KLSAgICB3aXRoX3g9eWVzIDs7Ci0KLSAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAotICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0teC1pbiB8IC0teC1pKQotICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OwotICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWluY2x1PSogXAotICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCi0gICAgeF9pbmNsdWRlcz0iJGFjX29wdGFyZyIgOzsKLQotICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotICB8IC0teC1saWJyYXIgfCAtLXgtbGlicmEgfCAtLXgtbGliciB8IC0teC1saWIgfCAtLXgtbGkgfCAtLXgtbCkKLSAgICBhY19wcmV2PXhfbGlicmFyaWVzIDs7Ci0gIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSAgfCAtLXgtbGlicmFyPSogfCAtLXgtbGlicmE9KiB8IC0teC1saWJyPSogfCAtLXgtbGliPSogfCAtLXgtbGk9KiB8IC0teC1sPSopCi0gICAgeF9saWJyYXJpZXM9IiRhY19vcHRhcmciIDs7Ci0KLSAgLSopIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogJGFjX29wdGlvbjogaW52YWxpZCBvcHRpb247IHVzZSAtLWhlbHAgdG8gc2hvdyB1c2FnZSIgMT4mMjsgZXhpdCAxOyB9Ci0gICAgOzsKLQotICAqKQotICAgIGlmIHRlc3QgLW4gImBlY2hvICRhY19vcHRpb258IHNlZCAncy9bLWEtejAtOS5dLy9nJ2AiOyB0aGVuCi0gICAgICBlY2hvICJjb25maWd1cmU6IHdhcm5pbmc6ICRhY19vcHRpb246IGludmFsaWQgaG9zdCB0eXBlIiAxPiYyCi0gICAgZmkKLSAgICBpZiB0ZXN0ICJ4JG5vbm9wdCIgIT0geE5PTkU7IHRoZW4KLSAgICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG9ubHkgY29uZmlndXJlIGZvciBvbmUgaG9zdCBhbmQgb25lIHRhcmdldCBhdCBhIHRpbWUiIDE+JjI7IGV4aXQgMTsgfQotICAgIGZpCi0gICAgbm9ub3B0PSIkYWNfb3B0aW9uIgotICAgIDs7Ci0KLSAgZXNhYwotZG9uZQotCi1pZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KLSAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvIC0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYCIgMT4mMjsgZXhpdCAxOyB9Ci1maQotCi10cmFwICdybSAtZnIgY29uZnRlc3QqIGNvbmZkZWZzKiBjb3JlIGNvcmUuKiAqLmNvcmUgJGFjX2NsZWFuX2ZpbGVzOyBleGl0IDEnIDEgMiAxNQotCi0jIEZpbGUgZGVzY3JpcHRvciB1c2FnZToKLSMgMCBzdGFuZGFyZCBpbnB1dAotIyAxIGZpbGUgY3JlYXRpb24KLSMgMiBlcnJvcnMgYW5kIHdhcm5pbmdzCi0jIDMgc29tZSBzeXN0ZW1zIG1heSBvcGVuIGl0IHRvIC9kZXYvdHR5Ci0jIDQgdXNlZCBvbiB0aGUgS3Vib3RhIFRpdGFuCi0jIDYgY2hlY2tpbmcgZm9yLi4uIG1lc3NhZ2VzIGFuZCByZXN1bHRzCi0jIDUgY29tcGlsZXIgbWVzc2FnZXMgc2F2ZWQgaW4gY29uZmlnLmxvZwotaWYgdGVzdCAiJHNpbGVudCIgPSB5ZXM7IHRoZW4KLSAgZXhlYyA2Pi9kZXYvbnVsbAotZWxzZQotICBleGVjIDY+JjEKLWZpCi1leGVjIDU+Li9jb25maWcubG9nCi0KLWVjaG8gIlwKLVRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi1ydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgotIiAxPiY1Ci0KLSMgU3RyaXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVwLgotIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3RlcnMuCi1hY19jb25maWd1cmVfYXJncz0KLWZvciBhY19hcmcKLWRvCi0gIGNhc2UgIiRhY19hcmciIGluCi0gIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCi0gIHwgLS1uby1jciB8IC0tbm8tYykgOzsKLSAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpbyB8IC0tbm8tcmVjdXJzaSBcCi0gIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKSA7OwotICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP10qKQotICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICckYWNfYXJnJyIgOzsKLSAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAkYWNfYXJnIiA7OwotICBlc2FjCi1kb25lCi0KLSMgTkxTIG51aXNhbmNlcy4KLSMgT25seSBzZXQgdGhlc2UgdG8gQyBpZiBhbHJlYWR5IHNldC4gIFRoZXNlIG11c3Qgbm90IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkKLSMgYmVjYXVzZSBub3QgYWxsIHN5c3RlbXMgdW5kZXJzdGFuZCBlLmcuIExBTkc9QyAobm90YWJseSBTQ08pLgotIyBGaXhpbmcgTENfTUVTU0FHRVMgcHJldmVudHMgU29sYXJpcyBzaCBmcm9tIHRyYW5zbGF0aW5nIHZhciB2YWx1ZXMgaW4gYHNldCchCi0jIE5vbi1DIExDX0NUWVBFIHZhbHVlcyBicmVhayB0aGUgY3R5cGUgY2hlY2suCi1pZiB0ZXN0ICIke0xBTkcrc2V0fSIgICA9IHNldDsgdGhlbiBMQU5HPUM7ICAgZXhwb3J0IExBTkc7ICAgZmkKLWlmIHRlc3QgIiR7TENfQUxMK3NldH0iID0gc2V0OyB0aGVuIExDX0FMTD1DOyBleHBvcnQgTENfQUxMOyBmaQotaWYgdGVzdCAiJHtMQ19NRVNTQUdFUytzZXR9IiA9IHNldDsgdGhlbiBMQ19NRVNTQUdFUz1DOyBleHBvcnQgTENfTUVTU0FHRVM7IGZpCi1pZiB0ZXN0ICIke0xDX0NUWVBFK3NldH0iICAgID0gc2V0OyB0aGVuIExDX0NUWVBFPUM7ICAgIGV4cG9ydCBMQ19DVFlQRTsgICAgZmkKLQotIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KLXJtIC1yZiBjb25mdGVzdCogY29uZmRlZnMuaAotIyBBSVggY3BwIGxvc2VzIG9uIGFuIGVtcHR5IGZpbGUsIHNvIG1ha2Ugc3VyZSBpdCBjb250YWlucyBhdCBsZWFzdCBhIG5ld2xpbmUuCi1lY2hvID4gY29uZmRlZnMuaAotCi0jIEEgZmlsZW5hbWUgdW5pcXVlIHRvIHRoaXMgcGFja2FnZSwgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSB0aGF0Ci0jIGNvbmZpZ3VyZSBpcyBpbiwgd2hpY2ggd2UgY2FuIGxvb2sgZm9yIHRvIGZpbmQgb3V0IGlmIHNyY2RpciBpcyBjb3JyZWN0LgotYWNfdW5pcXVlX2ZpbGU9SW5jbHVkZS9naWZwbG90LmgKLQotIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgotaWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KLSAgYWNfc3JjZGlyX2RlZmF1bHRlZD15ZXMKLSAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIGl0cyBwYXJlbnQuCi0gIGFjX3Byb2c9JDAKLSAgYWNfY29uZmRpcj1gZWNobyAkYWNfcHJvZ3xzZWQgJ3MlL1teL11bXi9dKiQlJSdgCi0gIHRlc3QgIngkYWNfY29uZmRpciIgPSAieCRhY19wcm9nIiAmJiBhY19jb25mZGlyPS4KLSAgc3JjZGlyPSRhY19jb25mZGlyCi0gIGlmIHRlc3QgISAtciAkc3JjZGlyLyRhY191bmlxdWVfZmlsZTsgdGhlbgotICAgIHNyY2Rpcj0uLgotICBmaQotZWxzZQotICBhY19zcmNkaXJfZGVmYXVsdGVkPW5vCi1maQotaWYgdGVzdCAhIC1yICRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlOyB0aGVuCi0gIGlmIHRlc3QgIiRhY19zcmNkaXJfZGVmYXVsdGVkIiA9IHllczsgdGhlbgotICAgIHsgZWNobyAiY29uZmlndXJlOiBlcnJvcjogY2FuIG5vdCBmaW5kIHNvdXJjZXMgaW4gJGFjX2NvbmZkaXIgb3IgLi4iIDE+JjI7IGV4aXQgMTsgfQotICBlbHNlCi0gICAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBjYW4gbm90IGZpbmQgc291cmNlcyBpbiAkc3JjZGlyIiAxPiYyOyBleGl0IDE7IH0KLSAgZmkKLWZpCi1zcmNkaXI9YGVjaG8gIiR7c3JjZGlyfSIgfCBzZWQgJ3MlXChbXi9dXCkvKiQlXDElJ2AKLQotIyBQcmVmZXIgZXhwbGljaXRseSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KLWlmIHRlc3QgLXogIiRDT05GSUdfU0lURSI7IHRoZW4KLSAgaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0aGVuCi0gICAgQ09ORklHX1NJVEU9IiRwcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUgJHByZWZpeC9ldGMvY29uZmlnLnNpdGUiCi0gIGVsc2UKLSAgICBDT05GSUdfU0lURT0iJGFjX2RlZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlICRhY19kZWZhdWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUiCi0gIGZpCi1maQotZm9yIGFjX3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRvCi0gIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCi0gICAgZWNobyAibG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIgotICAgIC4gIiRhY19zaXRlX2ZpbGUiCi0gIGZpCi1kb25lCi0KLWlmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgotICBlY2hvICJsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIgotICAuICRjYWNoZV9maWxlCi1lbHNlCi0gIGVjaG8gImNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgotICA+ICRjYWNoZV9maWxlCi1maQotCi1hY19leHQ9YwotIyBDRkxBR1MgaXMgbm90IGluIGFjX2NwcCBiZWNhdXNlIC1nLCAtTywgZXRjLiBhcmUgbm90IHZhbGlkIGNwcCBvcHRpb25zLgotYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLWFjX2NvbXBpbGU9JyR7Q0MtY2N9IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgMT4mNScKLWFjX2xpbms9JyR7Q0MtY2N9IC1vIGNvbmZ0ZXN0JHthY19leGVleHR9ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgMT4mNScKLWNyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotCi1hY19leGVleHQ9Ci1hY19vYmpleHQ9bwotaWYgKGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDMpIHwgZ3JlcCBjID4vZGV2L251bGw7IHRoZW4KLSAgIyBTdGFyZGVudCBWaXN0cmEgU1ZSNCBncmVwIGxhY2tzIC1lLCBzYXlzIGdoYXppQGNhaXAucnV0Z2Vycy5lZHUuCi0gIGlmIChlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDMpIHwgc2VkIHMvLW4veG4vIHwgZ3JlcCB4biA+L2Rldi9udWxsOyB0aGVuCi0gICAgYWNfbj0gYWNfYz0nCi0nIGFjX3Q9JwknCi0gIGVsc2UKLSAgICBhY19uPS1uIGFjX2M9IGFjX3Q9Ci0gIGZpCi1lbHNlCi0gIGFjX249IGFjX2M9J1xjJyBhY190PQotZmkKLQotCi0KLQotIyBTZXQgbmFtZSBmb3IgbWFjaGluZS1kZXBlbmRlbnQgbGlicmFyeSBmaWxlcwotCi1lY2hvICRhY19uICJjaGVja2luZyBNQUNIREVQIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo1MzA6IGNoZWNraW5nIE1BQ0hERVAiID4mNQotaWYgdGVzdCAteiAiJE1BQ0hERVAiCi10aGVuCi0JaWYgdGVzdCAtZiAvdXNyL2xpYi9OZXh0U3RlcC9zb2Z0d2FyZV92ZXJzaW9uOyB0aGVuCi0JCXNldCBYIGBob3N0aW5mbyB8IGdyZXAgJ05lWFQgTWFjaC4qOicgfCBcCi0JCQlzZWQgLWUgJ3MvOi8vJyAtZSAncy9cLi9fLydgICYmIFwKLQkJYWNfc3lzX3N5c3RlbT1uZXh0ICYmIGFjX3N5c19yZWxlYXNlPSQ0Ci0JCU1BQ0hERVA9IiRhY19zeXNfc3lzdGVtJGFjX3N5c19yZWxlYXNlJGFjX3N5c19jcHUiCi0JZWxzZQotCQlhY19zeXNfc3lzdGVtPWB1bmFtZSAtc2AKLQkJaWYgdGVzdCAiJGFjX3N5c19zeXN0ZW0iID0gIkFJWCIgOyB0aGVuCi0JCQlhY19zeXNfcmVsZWFzZT1gdW5hbWUgLXZgCi0JCWVsc2UKLQkJCWFjX3N5c19yZWxlYXNlPWB1bmFtZSAtcmAKLQkJZmkKLQkJYWNfbWRfc3lzdGVtPWBlY2hvICRhY19zeXNfc3lzdGVtIHwKLQkJCQkgICB0ciAtZCAnLyAnIHwgdHIgJ1tBLVpdJyAnW2Etel0nYAotCQlhY19tZF9yZWxlYXNlPWBlY2hvICRhY19zeXNfcmVsZWFzZSB8Ci0JCQkJICAgdHIgLWQgJy8gJyB8IHNlZCAncy9cLi4qLy8nYAotCQlNQUNIREVQPSIkYWNfbWRfc3lzdGVtJGFjX21kX3JlbGVhc2UiCi0JZmkKLQljYXNlIE1BQ0hERVAgaW4KLQknJykJTUFDSERFUD11bmtub3duOzsKLQllc2FjCi1maQotZWNobyAiJGFjX3QiIiRNQUNIREVQIiAxPiY2Ci0KLWFjX2V4dD1jCi0jIENGTEFHUyBpcyBub3QgaW4gYWNfY3BwIGJlY2F1c2UgLWcsIC1PLCBldGMuIGFyZSBub3QgdmFsaWQgY3BwIG9wdGlvbnMuCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJHtDQy1jY30gLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCAxPiY1JwotYWNfbGluaz0nJHtDQy1jY30gLW8gY29uZnRlc3Qke2FjX2V4ZWV4dH0gJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyAxPiY1JwotY3Jvc3NfY29tcGlsaW5nPSRhY19jdl9wcm9nX2NjX2Nyb3NzCi0KLQotIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgotZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYKLWVjaG8gImNvbmZpZ3VyZTo1Njg6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1pZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DQycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci1lbHNlCi0gIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLSAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSAgYWNfZHVtbXk9IiRQQVRIIgotICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotICAgICAgYWNfY3ZfcHJvZ19DQz0iZ2NjIgotICAgICAgYnJlYWsKLSAgICBmaQotICBkb25lCi0gIElGUz0iJGFjX3NhdmVfaWZzIgotZmkKLWZpCi1DQz0iJGFjX2N2X3Byb2dfQ0MiCi1pZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGVjaG8gIiRhY190IiIkQ0MiIDE+JjYKLWVsc2UKLSAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci1maQotCi1pZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi1lY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjU5ODogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotICBhY19wcm9nX3JlamVjdGVkPW5vCi0gIGFjX2R1bW15PSIkUEFUSCIKLSAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0gICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KLSAgICAgIGlmIHRlc3QgIiRhY19kaXIvJGFjX3dvcmQiID0gIi91c3IvdWNiL2NjIjsgdGhlbgotICAgICAgICBhY19wcm9nX3JlamVjdGVkPXllcwotCWNvbnRpbnVlCi0gICAgICBmaQotICAgICAgYWNfY3ZfcHJvZ19DQz0iY2MiCi0gICAgICBicmVhawotICAgIGZpCi0gIGRvbmUKLSAgSUZTPSIkYWNfc2F2ZV9pZnMiCi1pZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVkID0geWVzOyB0aGVuCi0gICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KLSAgc2V0IGR1bW15ICRhY19jdl9wcm9nX0NDCi0gIHNoaWZ0Ci0gIGlmIHRlc3QgJCMgLWd0IDA7IHRoZW4KLSAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KLSAgICAjIEhvd2V2ZXIsIGl0IGhhcyB0aGUgc2FtZSBiYXNlbmFtZSwgc28gdGhlIGJvZ29uIHdpbGwgYmUgY2hvc2VuCi0gICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCi0gICAgc2hpZnQKLSAgICBzZXQgZHVtbXkgIiRhY19kaXIvJGFjX3dvcmQiICIkQCIKLSAgICBzaGlmdAotICAgIGFjX2N2X3Byb2dfQ0M9IiRAIgotICBmaQotZmkKLWZpCi1maQotQ0M9IiRhY19jdl9wcm9nX0NDIgotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYWNfdCIiJENDIiAxPiY2Ci1lbHNlCi0gIGVjaG8gIiRhY190IiJubyIgMT4mNgotZmkKLQotICBpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0gICAgY2FzZSAiYHVuYW1lIC1zYCIgaW4KLSAgICAqd2luMzIqIHwgKldJTjMyKikKLSAgICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGNsOyBhY193b3JkPSQyCi1lY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjY0OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSI6IgotICBhY19kdW1teT0iJFBBVEgiCi0gIGZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0gICAgaWYgdGVzdCAtZiAkYWNfZGlyLyRhY193b3JkOyB0aGVuCi0gICAgICBhY19jdl9wcm9nX0NDPSJjbCIKLSAgICAgIGJyZWFrCi0gICAgZmkKLSAgZG9uZQotICBJRlM9IiRhY19zYXZlX2lmcyIKLWZpCi1maQotQ0M9IiRhY19jdl9wcm9nX0NDIgotaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotICBlY2hvICIkYWNfdCIiJENDIiAxPiY2Ci1lbHNlCi0gIGVjaG8gIiRhY190IiJubyIgMT4mNgotZmkKLSA7OwotICAgIGVzYWMKLSAgZmkKLSAgdGVzdCAteiAiJENDIiAmJiB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgY2MgZm91bmQgaW4gXCRQQVRIIiAxPiYyOyBleGl0IDE7IH0KLWZpCi0KLWVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdTKSB3b3JrcyIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NjgxOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgd29ya3MiID4mNQotCi1hY19leHQ9YwotIyBDRkxBR1MgaXMgbm90IGluIGFjX2NwcCBiZWNhdXNlIC1nLCAtTywgZXRjLiBhcmUgbm90IHZhbGlkIGNwcCBvcHRpb25zLgotYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLWFjX2NvbXBpbGU9JyR7Q0MtY2N9IC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgMT4mNScKLWFjX2xpbms9JyR7Q0MtY2N9IC1vIGNvbmZ0ZXN0JHthY19leGVleHR9ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgMT4mNScKLWNyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotCi1jYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8IEVPRgotCi0jbGluZSA2OTIgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotCi1tYWluKCl7cmV0dXJuKDApO30KLUVPRgotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo2OTc6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotICBhY19jdl9wcm9nX2NjX3dvcmtzPXllcwotICAjIElmIHdlIGNhbid0IHJ1biBhIHRyaXZpYWwgcHJvZ3JhbSwgd2UgYXJlIHByb2JhYmx5IHVzaW5nIGEgY3Jvc3MgY29tcGlsZXIuCi0gIGlmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbDsgdGhlbgotICAgIGFjX2N2X3Byb2dfY2NfY3Jvc3M9bm8KLSAgZWxzZQotICAgIGFjX2N2X3Byb2dfY2NfY3Jvc3M9eWVzCi0gIGZpCi1lbHNlCi0gIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0gIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotICBhY19jdl9wcm9nX2NjX3dvcmtzPW5vCi1maQotcm0gLWZyIGNvbmZ0ZXN0KgotYWNfZXh0PWMKLSMgQ0ZMQUdTIGlzIG5vdCBpbiBhY19jcHAgYmVjYXVzZSAtZywgLU8sIGV0Yy4gYXJlIG5vdCB2YWxpZCBjcHAgb3B0aW9ucy4KLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPScke0NDLWNjfSAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0IDE+JjUnCi1hY19saW5rPScke0NDLWNjfSAtbyBjb25mdGVzdCR7YWNfZXhlZXh0fSAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTIDE+JjUnCi1jcm9zc19jb21waWxpbmc9JGFjX2N2X3Byb2dfY2NfY3Jvc3MKLQotZWNobyAiJGFjX3QiIiRhY19jdl9wcm9nX2NjX3dvcmtzIiAxPiY2Ci1pZiB0ZXN0ICRhY19jdl9wcm9nX2NjX3dvcmtzID0gbm87IHRoZW4KLSAgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBpbnN0YWxsYXRpb24gb3IgY29uZmlndXJhdGlvbiBwcm9ibGVtOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMuIiAxPiYyOyBleGl0IDE7IH0KLWZpCi1lY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgaXMgYSBjcm9zcy1jb21waWxlciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NzIzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgaXMgYSBjcm9zcy1jb21waWxlciIgPiY1Ci1lY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfY2NfY3Jvc3MiIDE+JjYKLWNyb3NzX2NvbXBpbGluZz0kYWNfY3ZfcHJvZ19jY19jcm9zcwotCi1lY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyBHTlUgQyIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NzI4OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyBHTlUgQyIgPiY1Ci1pZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19nY2MnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotZWxzZQotICBjYXQgPiBjb25mdGVzdC5jIDw8RU9GCi0jaWZkZWYgX19HTlVDX18KLSAgeWVzOwotI2VuZGlmCi1FT0YKLWlmIHsgYWNfdHJ5PScke0NDLWNjfSAtRSBjb25mdGVzdC5jJzsgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo3Mzc6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9OyB9IHwgZWdyZXAgeWVzID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djYz15ZXMKLWVsc2UKLSAgYWNfY3ZfcHJvZ19nY2M9bm8KLWZpCi1maQotCi1lY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfZ2NjIiAxPiY2Ci0KLWlmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjID0geWVzOyB0aGVuCi0gIEdDQz15ZXMKLWVsc2UKLSAgR0NDPQotZmkKLQotYWNfdGVzdF9DRkxBR1M9IiR7Q0ZMQUdTK3NldH0iCi1hY19zYXZlX0NGTEFHUz0iJENGTEFHUyIKLUNGTEFHUz0KLWVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgJHtDQy1jY30gYWNjZXB0cyAtZyIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6NzU2OiBjaGVja2luZyB3aGV0aGVyICR7Q0MtY2N9IGFjY2VwdHMgLWciID4mNQotaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfY2NfZycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci1lbHNlCi0gIGVjaG8gJ3ZvaWQgZigpe30nID4gY29uZnRlc3QuYwotaWYgdGVzdCAteiAiYCR7Q0MtY2N9IC1nIC1jIGNvbmZ0ZXN0LmMgMj4mMWAiOyB0aGVuCi0gIGFjX2N2X3Byb2dfY2NfZz15ZXMKLWVsc2UKLSAgYWNfY3ZfcHJvZ19jY19nPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWVjaG8gIiRhY190IiIkYWNfY3ZfcHJvZ19jY19nIiAxPiY2Ci1pZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0gIENGTEFHUz0iJGFjX3NhdmVfQ0ZMQUdTIgotZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KLSAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgICBDRkxBR1M9Ii1nIC1PMiIKLSAgZWxzZQotICAgIENGTEFHUz0iLWciCi0gIGZpCi1lbHNlCi0gIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0gICAgQ0ZMQUdTPSItTzIiCi0gIGVsc2UKLSAgICBDRkxBR1M9Ci0gIGZpCi1maQotCi0jIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCi1lY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjc5MDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX1JBTkxJQicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuCi0gIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2Ci1lbHNlCi0gIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0gIGFjX2N2X3Byb2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLSAgSUZTPSIke0lGUz0gCX0iOyBhY19zYXZlX2lmcz0iJElGUyI7IElGUz0iOiIKLSAgYWNfZHVtbXk9IiRQQVRIIgotICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kYWNfd29yZDsgdGhlbgotICAgICAgYWNfY3ZfcHJvZ19SQU5MSUI9InJhbmxpYiIKLSAgICAgIGJyZWFrCi0gICAgZmkKLSAgZG9uZQotICBJRlM9IiRhY19zYXZlX2lmcyIKLSAgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIiAmJiBhY19jdl9wcm9nX1JBTkxJQj0iOiIKLWZpCi1maQotUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi1pZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotICBlY2hvICIkYWNfdCIiJFJBTkxJQiIgMT4mNgotZWxzZQotICBlY2hvICIkYWNfdCIibm8iIDE+JjYKLWZpCi0KLQotZm9yIGFjX3Byb2cgaW4gYXIgYWFsCi1kbwotIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLWVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6ODIzOiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X3Byb2dfQVInK3NldH0nYFwiID0gc2V0IjsgdGhlbgotICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0gIGFjX2N2X3Byb2dfQVI9IiRBUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi0gIElGUz0iJHtJRlM9IAl9IjsgYWNfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IjoiCi0gIGFjX2R1bW15PSIkUEFUSCIKLSAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0gICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSAgICBpZiB0ZXN0IC1mICRhY19kaXIvJGFjX3dvcmQ7IHRoZW4KLSAgICAgIGFjX2N2X3Byb2dfQVI9IiRhY19wcm9nIgotICAgICAgYnJlYWsKLSAgICBmaQotICBkb25lCi0gIElGUz0iJGFjX3NhdmVfaWZzIgotZmkKLWZpCi1BUj0iJGFjX2N2X3Byb2dfQVIiCi1pZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0gIGVjaG8gIiRhY190IiIkQVIiIDE+JjYKLWVsc2UKLSAgZWNobyAiJGFjX3QiIm5vIiAxPiY2Ci1maQotCi10ZXN0IC1uICIkQVIiICYmIGJyZWFrCi1kb25lCi10ZXN0IC1uICIkQVIiIHx8IEFSPSJhciIKLQotCi1lY2hvICRhY19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIiLi4uICRhY19jIiAxPiY2Ci1lY2hvICJjb25maWd1cmU6ODU1OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1Ci0jIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KLSAgQ1BQPQotZmkKLWlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi1pZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DUFAnK3NldH0nYFwiID0gc2V0IjsgdGhlbgotICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNgotZWxzZQotICAgICMgVGhpcyBtdXN0IGJlIGluIGRvdWJsZSBxdW90ZXMsIG5vdCBzaW5nbGUgcXVvdGVzLCBiZWNhdXNlIENQUCBtYXkgZ2V0Ci0gICMgc3Vic3RpdHV0ZWQgaW50byB0aGUgTWFrZWZpbGUgYW5kICIke0NDLWNjfSIgd2lsbCBjb25mdXNlIG1ha2UuCi0gIENQUD0iJHtDQy1jY30gLUUiCi0gICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0gICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuCi0gIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDg3MCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci1TeW50YXggRXJyb3IKLUVPRgotYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCIKLXsgKGV2YWwgZWNobyBjb25maWd1cmU6ODc2OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQotYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYAotaWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4KLSAgOgotZWxzZQotICBlY2hvICIkYWNfZXJyIiA+JjUKLSAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gIHJtIC1yZiBjb25mdGVzdCoKLSAgQ1BQPSIke0NDLWNjfSAtRSAtdHJhZGl0aW9uYWwtY3BwIgotICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSA4ODcgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1ZGUgPGFzc2VydC5oPgotU3ludGF4IEVycm9yCi1FT0YKLWFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiCi17IChldmFsIGVjaG8gY29uZmlndXJlOjg5MzogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0KLWFjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImAKLWlmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuCi0gIDoKLWVsc2UKLSAgZWNobyAiJGFjX2VyciIgPiY1Ci0gIGVjaG8gImNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0gIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotICBybSAtcmYgY29uZnRlc3QqCi0gIENQUD0iJHtDQy1jY30gLW5vbG9nbyAtRSIKLSAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgOTA0ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxhc3NlcnQuaD4KLVN5bnRheCBFcnJvcgotRU9GCi1hY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo5MTA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci1hY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi1pZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhY19lcnIiID4mNQotICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgcm0gLXJmIGNvbmZ0ZXN0KgotICBDUFA9L2xpYi9jcHAKLWZpCi1ybSAtZiBjb25mdGVzdCoKLWZpCi1ybSAtZiBjb25mdGVzdCoKLWZpCi1ybSAtZiBjb25mdGVzdCoKLSAgYWNfY3ZfcHJvZ19DUFA9IiRDUFAiCi1maQotICBDUFA9IiRhY19jdl9wcm9nX0NQUCIKLWVsc2UKLSAgYWNfY3ZfcHJvZ19DUFA9IiRDUFAiCi1maQotZWNobyAiJGFjX3QiIiRDUFAiIDE+JjYKLQotZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiIi4uLiAkYWNfYyIgMT4mNgotZWNobyAiY29uZmlndXJlOjkzNTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQotaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRlcl9zdGRjJytzZXR9J2BcIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYKLWVsc2UKLSAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgOTQwICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdGRhcmcuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxmbG9hdC5oPgotRU9GCi1hY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0IgoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo5NDg6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9Ci1hY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgCi1pZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbgotICBybSAtcmYgY29uZnRlc3QqCi0gIGFjX2N2X2hlYWRlcl9zdGRjPXllcwotZWxzZQotICBlY2hvICIkYWNfZXJyIiA+JjUKLSAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gIHJtIC1yZiBjb25mdGVzdCoKLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgOTY1ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLUVPRgotaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICBlZ3JlcCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgOgotZWxzZQotICBybSAtcmYgY29uZnRlc3QqCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KLWNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKLSNsaW5lIDk4MyAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci1FT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgZWdyZXAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIHJtIC1yZiBjb25mdGVzdCoKLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLQotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgOgotZWxzZQotICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxMDA0ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxjdHlwZS5oPgotI2RlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0jZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi1pbnQgbWFpbiAoKSB7IGludCBpOyBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi1pZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpIHx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKSBleGl0KDIpOwotZXhpdCAoMCk7IH0KLQotRU9GCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEwMTU6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwKLXRoZW4KLSAgOgotZWxzZQotICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgcm0gLWZyIGNvbmZ0ZXN0KgotICBhY19jdl9oZWFkZXJfc3RkYz1ubwotZmkKLXJtIC1mciBjb25mdGVzdCoKLWZpCi0KLWZpCi1maQotCi1lY2hvICIkYWNfdCIiJGFjX2N2X2hlYWRlcl9zdGRjIiAxPiY2Ci1pZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotICBjYXQgPj4gY29uZmRlZnMuaCA8PFxFT0YKLSNkZWZpbmUgU1REQ19IRUFERVJTIDEKLUVPRgotCi1maQotCi0KLXRyYXAgJycgMSAyIDE1Ci1jYXQgPiBjb25mY2FjaGUgPDxcRU9GCi0jIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKLSMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQotIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucy4gIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lzdGVtcy4KLSMgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UgbWF5IHJlbW92ZSBvciBlZGl0IGl0LgotIwotIyBCeSBkZWZhdWx0LCBjb25maWd1cmUgdXNlcyAuL2NvbmZpZy5jYWNoZSBhcyB0aGUgY2FjaGUgZmlsZSwKLSMgY3JlYXRpbmcgaXQgaWYgaXQgZG9lcyBub3QgZXhpc3QgYWxyZWFkeS4gIFlvdSBjYW4gZ2l2ZSBjb25maWd1cmUKLSMgdGhlIC0tY2FjaGUtZmlsZT1GSUxFIG9wdGlvbiB0byB1c2UgYSBkaWZmZXJlbnQgY2FjaGUgZmlsZTsgdGhhdCBpcwotIyB3aGF0IGNvbmZpZ3VyZSBkb2VzIHdoZW4gaXQgY2FsbHMgY29uZmlndXJlIHNjcmlwdHMgaW4KLSMgc3ViZGlyZWN0b3JpZXMsIHNvIHRoZXkgc2hhcmUgdGhlIGNhY2hlLgotIyBHaXZpbmcgLS1jYWNoZS1maWxlPS9kZXYvbnVsbCBkaXNhYmxlcyBjYWNoaW5nLCBmb3IgZGVidWdnaW5nIGNvbmZpZ3VyZS4KLSMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0IHRoZQotIyAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KLSMKLUVPRgotIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKLSMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCi0jIFNvLCBkb24ndCBwdXQgbmV3bGluZXMgaW4gY2FjaGUgdmFyaWFibGVzJyB2YWx1ZXMuCi0jIFVsdHJpeCBzaCBzZXQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKLSMgYW5kIHNldHMgdGhlIGhpZ2ggYml0IGluIHRoZSBjYWNoZSBmaWxlIHVubGVzcyB3ZSBhc3NpZ24gdG8gdGhlIHZhcnMuCi0oc2V0KSAyPiYxIHwKLSAgY2FzZSBgKGFjX3NwYWNlPScgJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KLSAgKmFjX3NwYWNlPVwgKikKLSAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlIHN1YnN0aXR1dGlvbgotICAgICMgdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCi0gICAgc2VkIC1uIFwKLSAgICAgIC1lICJzLycvJ1xcXFwnJy9nIiBcCi0gICAgICAtZSAicy9eXFwoW2EtekEtWjAtOV9dKl9jdl9bYS16QS1aMC05X10qXFwpPVxcKC4qXFwpL1xcMT1cJHtcXDE9J1xcMid9L3AiCi0gICAgOzsKLSAgKikKLSAgICAjIGBzZXQnIHF1b3RlcyBjb3JyZWN0bHkgYXMgcmVxdWlyZWQgYnkgUE9TSVgsIHNvIGRvIG5vdCBhZGQgcXVvdGVzLgotICAgIHNlZCAtbiAtZSAncy9eXChbYS16QS1aMC05X10qX2N2X1thLXpBLVowLTlfXSpcKT1cKC4qXCkvXDE9JHtcMT1cMn0vcCcKLSAgICA7OwotICBlc2FjID4+IGNvbmZjYWNoZQotaWYgY21wIC1zICRjYWNoZV9maWxlIGNvbmZjYWNoZTsgdGhlbgotICA6Ci1lbHNlCi0gIGlmIHRlc3QgLXcgJGNhY2hlX2ZpbGU7IHRoZW4KLSAgICBlY2hvICJ1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKLSAgICBjYXQgY29uZmNhY2hlID4gJGNhY2hlX2ZpbGUKLSAgZWxzZQotICAgIGVjaG8gIm5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIgotICBmaQotZmkKLXJtIC1mIGNvbmZjYWNoZQotCi10cmFwICdybSAtZnIgY29uZnRlc3QqIGNvbmZkZWZzKiBjb3JlIGNvcmUuKiAqLmNvcmUgJGFjX2NsZWFuX2ZpbGVzOyBleGl0IDEnIDEgMiAxNQotCi10ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4Ci0jIExldCBtYWtlIGV4cGFuZCBleGVjX3ByZWZpeC4KLXRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLQotIyBBbnkgYXNzaWdubWVudCB0byBWUEFUSCBjYXVzZXMgU3VuIG1ha2UgdG8gb25seSBleGVjdXRlCi0jIHRoZSBmaXJzdCBzZXQgb2YgZG91YmxlLWNvbG9uIHJ1bGVzLCBzbyByZW1vdmUgaXQgaWYgbm90IG5lZWRlZC4KLSMgSWYgdGhlcmUgaXMgYSBjb2xvbiBpbiB0aGUgcGF0aCwgd2UgbmVlZCB0byBrZWVwIGl0LgotaWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KLSAgYWNfdnBzdWI9Jy9eWyAJXSpWUEFUSFsgCV0qPVteOl0qJC9kJwotZmkKLQotdHJhcCAncm0gLWYgJENPTkZJR19TVEFUVVMgY29uZnRlc3QqOyBleGl0IDEnIDEgMiAxNQotCi0jIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gREVGUy4KLSMgUHJvdGVjdCBhZ2FpbnN0IHNoZWxsIGV4cGFuc2lvbiB3aGlsZSBleGVjdXRpbmcgTWFrZWZpbGUgcnVsZXMuCi0jIFByb3RlY3QgYWdhaW5zdCBNYWtlZmlsZSBtYWNybyBleHBhbnNpb24uCi1jYXQgPiBjb25mdGVzdC5kZWZzIDw8XEVPRgotcyUjZGVmaW5lIFwoW0EtWmEtel9dW0EtWmEtejAtOV9dKlwpICpcKC4qXCklLURcMT1cMiVnCi1zJVsgCWB+IyReJiooKXt9XFx8OyciPD4/XSVcXCYlZwotcyVcWyVcXCYlZwotcyVcXSVcXCYlZwotcyVcJCUkJCVnCi1FT0YKLURFRlM9YHNlZCAtZiBjb25mdGVzdC5kZWZzIGNvbmZkZWZzLmggfCB0ciAnXDAxMicgJyAnYAotcm0gLWYgY29uZnRlc3QuZGVmcwotCi0KLSMgV2l0aG91dCB0aGUgIi4vIiwgc29tZSBzaGVsbHMgbG9vayBpbiBQQVRIIGZvciBjb25maWcuc3RhdHVzLgotOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotCi1lY2hvIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTCi1ybSAtZiAkQ09ORklHX1NUQVRVUwotY2F0ID4gJENPTkZJR19TVEFUVVMgPDxFT0YKLSMhIC9iaW4vc2gKLSMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY29uZmlndXJlLgotIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0jIFRoaXMgZGlyZWN0b3J5IHdhcyBjb25maWd1cmVkIGFzIGZvbGxvd3MsCi0jIG9uIGhvc3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotIwotIyAkMCAkYWNfY29uZmlndXJlX2FyZ3MKLSMKLSMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSMgY29uZmlndXJlLCBpcyBpbiAuL2NvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgotCi1hY19jc191c2FnZT0iVXNhZ2U6ICRDT05GSUdfU1RBVFVTIFstLXJlY2hlY2tdIFstLXZlcnNpb25dIFstLWhlbHBdIgotZm9yIGFjX29wdGlvbgotZG8KLSAgY2FzZSAiXCRhY19vcHRpb24iIGluCi0gIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNoZWMgfCAtLXJlY2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotICAgIGVjaG8gInJ1bm5pbmcgXCR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICQwICRhY19jb25maWd1cmVfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIKLSAgICBleGVjIFwke0NPTkZJR19TSEVMTC0vYmluL3NofSAkMCAkYWNfY29uZmlndXJlX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24gOzsKLSAgLXZlcnNpb24gfCAtLXZlcnNpb24gfCAtLXZlcnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtLXZlciB8IC0tdmUgfCAtLXYpCi0gICAgZWNobyAiJENPTkZJR19TVEFUVVMgZ2VuZXJhdGVkIGJ5IGF1dG9jb25mIHZlcnNpb24gMi4xMyIKLSAgICBleGl0IDAgOzsKLSAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtLWgpCi0gICAgZWNobyAiXCRhY19jc191c2FnZSI7IGV4aXQgMCA7OwotICAqKSBlY2hvICJcJGFjX2NzX3VzYWdlIjsgZXhpdCAxIDs7Ci0gIGVzYWMKLWRvbmUKLQotYWNfZ2l2ZW5fc3JjZGlyPSRzcmNkaXIKLQotdHJhcCAncm0gLWZyIGBlY2hvICJNYWtlZmlsZSBMaWIvTWFrZWZpbGUiIHwgc2VkICJzLzpbXiBdKi8vZyJgIGNvbmZ0ZXN0KjsgZXhpdCAxJyAxIDIgMTUKLUVPRgotY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8RU9GCi0KLSMgUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluIGNvbmZpZy5zdGF0dXMuCi1zZWQgJ3MvJUAvQEAvOyBzL0AlL0BALzsgcy8lZ1wkL0BnLzsgL0BnXCQvcy9bXFxcXCYlXS9cXFxcJi9nOwotIHMvQEAvJUAvOyBzL0BAL0AlLzsgcy9AZ1wkLyVnLycgPiBjb25mdGVzdC5zdWJzIDw8XFxDRU9GCi0kYWNfdnBzdWIKLSRleHRyYXN1YgotcyVAU0hFTExAJSRTSEVMTCVnCi1zJUBDRkxBR1NAJSRDRkxBR1MlZwotcyVAQ1BQRkxBR1NAJSRDUFBGTEFHUyVnCi1zJUBDWFhGTEFHU0AlJENYWEZMQUdTJWcKLXMlQEZGTEFHU0AlJEZGTEFHUyVnCi1zJUBERUZTQCUkREVGUyVnCi1zJUBMREZMQUdTQCUkTERGTEFHUyVnCi1zJUBMSUJTQCUkTElCUyVnCi1zJUBleGVjX3ByZWZpeEAlJGV4ZWNfcHJlZml4JWcKLXMlQHByZWZpeEAlJHByZWZpeCVnCi1zJUBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQCUkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSVnCi1zJUBiaW5kaXJAJSRiaW5kaXIlZwotcyVAc2JpbmRpckAlJHNiaW5kaXIlZwotcyVAbGliZXhlY2RpckAlJGxpYmV4ZWNkaXIlZwotcyVAZGF0YWRpckAlJGRhdGFkaXIlZwotcyVAc3lzY29uZmRpckAlJHN5c2NvbmZkaXIlZwotcyVAc2hhcmVkc3RhdGVkaXJAJSRzaGFyZWRzdGF0ZWRpciVnCi1zJUBsb2NhbHN0YXRlZGlyQCUkbG9jYWxzdGF0ZWRpciVnCi1zJUBsaWJkaXJAJSRsaWJkaXIlZwotcyVAaW5jbHVkZWRpckAlJGluY2x1ZGVkaXIlZwotcyVAb2xkaW5jbHVkZWRpckAlJG9sZGluY2x1ZGVkaXIlZwotcyVAaW5mb2RpckAlJGluZm9kaXIlZwotcyVAbWFuZGlyQCUkbWFuZGlyJWcKLXMlQE1BQ0hERVBAJSRNQUNIREVQJWcKLXMlQENDQCUkQ0MlZwotcyVAUkFOTElCQCUkUkFOTElCJWcKLXMlQEFSQCUkQVIlZwotcyVAQ1BQQCUkQ1BQJWcKLQotQ0VPRgotRU9GCi0KLWNhdCA+PiAkQ09ORklHX1NUQVRVUyA8PFxFT0YKLQotIyBTcGxpdCB0aGUgc3Vic3RpdHV0aW9ucyBpbnRvIGJpdGUtc2l6ZWQgcGllY2VzIGZvciBzZWRzIHdpdGgKLSMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgotYWNfbWF4X3NlZF9jbWRzPTkwICMgTWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gcHV0IGluIGEgc2VkIHNjcmlwdC4KLWFjX2ZpbGU9MSAjIE51bWJlciBvZiBjdXJyZW50IGZpbGUuCi1hY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLWFjX2VuZD0kYWNfbWF4X3NlZF9jbWRzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KLWFjX21vcmVfbGluZXM9OgotYWNfc2VkX2NtZHM9IiIKLXdoaWxlICRhY19tb3JlX2xpbmVzOyBkbwotICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KLSAgICBzZWQgIjEsJHthY19iZWd9ZDsgJHthY19lbmR9cSIgY29uZnRlc3Quc3VicyA+IGNvbmZ0ZXN0LnMkYWNfZmlsZQotICBlbHNlCi0gICAgc2VkICIke2FjX2VuZH1xIiBjb25mdGVzdC5zdWJzID4gY29uZnRlc3QucyRhY19maWxlCi0gIGZpCi0gIGlmIHRlc3QgISAtcyBjb25mdGVzdC5zJGFjX2ZpbGU7IHRoZW4KLSAgICBhY19tb3JlX2xpbmVzPWZhbHNlCi0gICAgcm0gLWYgY29uZnRlc3QucyRhY19maWxlCi0gIGVsc2UKLSAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCi0gICAgICBhY19zZWRfY21kcz0ic2VkIC1mIGNvbmZ0ZXN0LnMkYWNfZmlsZSIKLSAgICBlbHNlCi0gICAgICBhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mIGNvbmZ0ZXN0LnMkYWNfZmlsZSIKLSAgICBmaQotICAgIGFjX2ZpbGU9YGV4cHIgJGFjX2ZpbGUgKyAxYAotICAgIGFjX2JlZz0kYWNfZW5kCi0gICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9jbWRzYAotICBmaQotZG9uZQotaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgotICBhY19zZWRfY21kcz1jYXQKLWZpCi1FT0YKLQotY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8RU9GCi0KLUNPTkZJR19GSUxFUz1cJHtDT05GSUdfRklMRVMtIk1ha2VmaWxlIExpYi9NYWtlZmlsZSJ9Ci1FT0YKLWNhdCA+PiAkQ09ORklHX1NUQVRVUyA8PFxFT0YKLWZvciBhY19maWxlIGluIC4uICRDT05GSUdfRklMRVM7IGRvIGlmIHRlc3QgIngkYWNfZmlsZSIgIT0geC4uOyB0aGVuCi0gICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KLSAgY2FzZSAiJGFjX2ZpbGUiIGluCi0gICo6KikgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUifHNlZCAncyVbXjpdKjolJSdgCi0gICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUifHNlZCAncyU6LiolJSdgIDs7Ci0gICopIGFjX2ZpbGVfaW49IiR7YWNfZmlsZX0uaW4iIDs7Ci0gIGVzYWMKLQotICAjIEFkanVzdCBhIHJlbGF0aXZlIHNyY2RpciwgdG9wX3NyY2RpciwgYW5kIElOU1RBTEwgZm9yIHN1YmRpcmVjdG9yaWVzLgotCi0gICMgUmVtb3ZlIGxhc3Qgc2xhc2ggYW5kIGFsbCB0aGF0IGZvbGxvd3MgaXQuICBOb3QgYWxsIHN5c3RlbXMgaGF2ZSBkaXJuYW1lLgotICBhY19kaXI9YGVjaG8gJGFjX2ZpbGV8c2VkICdzJS9bXi9dW14vXSokJSUnYAotICBpZiB0ZXN0ICIkYWNfZGlyIiAhPSAiJGFjX2ZpbGUiICYmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KLSAgICAjIFRoZSBmaWxlIGlzIGluIGEgc3ViZGlyZWN0b3J5LgotICAgIHRlc3QgISAtZCAiJGFjX2RpciIgJiYgbWtkaXIgIiRhY19kaXIiCi0gICAgYWNfZGlyX3N1ZmZpeD0iL2BlY2hvICRhY19kaXJ8c2VkICdzJV5cLi8lJSdgIgotICAgICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gICAgYWNfZG90cz1gZWNobyAkYWNfZGlyX3N1ZmZpeHxzZWQgJ3MlL1teL10qJS4uLyVnJ2AKLSAgZWxzZQotICAgIGFjX2Rpcl9zdWZmaXg9IGFjX2RvdHM9Ci0gIGZpCi0KLSAgY2FzZSAiJGFjX2dpdmVuX3NyY2RpciIgaW4KLSAgLikgIHNyY2Rpcj0uCi0gICAgICBpZiB0ZXN0IC16ICIkYWNfZG90cyI7IHRoZW4gdG9wX3NyY2Rpcj0uCi0gICAgICBlbHNlIHRvcF9zcmNkaXI9YGVjaG8gJGFjX2RvdHN8c2VkICdzJS8kJSUnYDsgZmkgOzsKLSAgLyopIHNyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciRhY19kaXJfc3VmZml4IjsgdG9wX3NyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciIgOzsKLSAgKikgIyBSZWxhdGl2ZSBwYXRoLgotICAgIHNyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyJGFjX2Rpcl9zdWZmaXgiCi0gICAgdG9wX3NyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyIiA7OwotICBlc2FjCi0KLQotICBlY2hvIGNyZWF0aW5nICIkYWNfZmlsZSIKLSAgcm0gLWYgIiRhY19maWxlIgotICBjb25maWd1cmVfaW5wdXQ9IkdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gYGVjaG8gJGFjX2ZpbGVfaW58c2VkICdzJS4qLyUlJ2AgYnkgY29uZmlndXJlLiIKLSAgY2FzZSAiJGFjX2ZpbGUiIGluCi0gICpNYWtlZmlsZSopIGFjX2NvbXN1Yj0iMWlcXAotIyAkY29uZmlndXJlX2lucHV0IiA7OwotICAqKSBhY19jb21zdWI9IDs7Ci0gIGVzYWMKLQotICBhY19maWxlX2lucHV0cz1gZWNobyAkYWNfZmlsZV9pbnxzZWQgLWUgInMlXiUkYWNfZ2l2ZW5fc3JjZGlyLyUiIC1lICJzJTolICRhY19naXZlbl9zcmNkaXIvJWciYAotICBzZWQgLWUgIiRhY19jb21zdWIKLXMlQGNvbmZpZ3VyZV9pbnB1dEAlJGNvbmZpZ3VyZV9pbnB1dCVnCi1zJUBzcmNkaXJAJSRzcmNkaXIlZwotcyVAdG9wX3NyY2RpckAlJHRvcF9zcmNkaXIlZwotIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiAkYWNfZmlsZQotZmk7IGRvbmUKLXJtIC1mIGNvbmZ0ZXN0LnMqCi0KLUVPRgotY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8RU9GCi0KLUVPRgotY2F0ID4+ICRDT05GSUdfU1RBVFVTIDw8XEVPRgotCi1leGl0IDAKLUVPRgotY2htb2QgK3ggJENPTkZJR19TVEFUVVMKLXJtIC1mciBjb25mZGVmcyogJGFjX2NsZWFuX2ZpbGVzCi10ZXN0ICIkbm9fY3JlYXRlIiA9IHllcyB8fCAke0NPTkZJR19TSEVMTC0vYmluL3NofSAkQ09ORklHX1NUQVRVUyB8fCBleGl0IDEKLQotCi0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9NYWtlZmlsZS5pbiBiL1NXSUcvRXhhbXBsZXMvTWFrZWZpbGUuaW4KaW5kZXggNmFlODIzOC4uMDcwM2RjZCAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9NYWtlZmlsZS5pbgorKysgYi9TV0lHL0V4YW1wbGVzL01ha2VmaWxlLmluCkBAIC0zMiw3ICszMiw3IEBACiBMSUJTICAgICAgID0KIElOVEVSRkFDRSAgPQogU1dJR09QVCAgICA9Ci1TV0lHICAgICAgID0gU1dJRworU1dJRyAgICAgICA9IHN3aWdAcmVsZWFzZV9zdWZmaXhACiAKIExJQk0gICAgICAgPSBATElCTUAKIExJQkMgICAgICAgPSBATElCQ0AKQEAgLTY4LDEyICs2OCwxMiBAQAogU089CQlAU09ACiBMRFNIQVJFRD0JQExEU0hBUkVEQAogQ0NTSEFSRUQ9CUBDQ1NIQVJFREAKLUNYWFNIQVJFRD0gICAgICBATERTSEFSRURACitDWFhTSEFSRUQ9ICAgICAgQENYWFNIQVJFREAKIAogIyBUaGlzIGlzIHVzZWQgZm9yIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCBhIG51bWJlciBvZiBDKysKICMgY29tcGlsZXJzLiAgIElmIGl0IGRvZXNuJ3Qgd29yaywgIGNvbW1lbnQgaXQgb3V0LgogCi1DWFhTSEFSRUQ9ICAgICAgQENYWEAgLXNoYXJlZAorQFRSWUxJTktJTkdXSVRIQ1hYQAogCiBPQkpTICAgICAgPSAkKFNSQ1M6LmM9Lm8pICQoQ1hYU1JDUzouY3h4PS5vKQogSU9CSlMgICAgID0gJChJU1JDUzouYz0ubykKQEAgLTg2LDcgKzg2LDcgQEAKIAogVENMX0lOQ0xVREUgPSBAVENMSU5DTFVERUAKIFRDTF9MSUIgICAgID0gQFRDTExJQkAKLVRDTF9PUFRTICAgID0gLWx0Y2wgQExJQlNACitUQ0xfT1BUUyAgICA9IEBMSUJTQAogVEtfT1BUUyAgICAgPSAtbHRrIC1sdGNsIEBMSUJTQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjAsNyArMjYwLDcgQEAKIGd1aWxlX2NwcDogJChTUkNTKQogCSQoU1dJRykgLWMrKyAtZ3VpbGUgLUxpbmthZ2UgbHRkbG1vZCAkKFNXSUdPUFQpICQoSU5URVJGQUNFKQogCSQoQ1hYKSAtYyAkKENDU0hBUkVEKSAkKENGTEFHUykgJChJTkNMVURFKSAkKEdVSUxFX0lOQ0xVREUpICQoSVNSQ1MpICQoU1JDUykgJChDWFhTUkNTKQotCSQoTERTSEFSRUQpICQoT0JKUykgJChJT0JKUykgJChMSUJTKSAtbyBsaWIkKFRBUkdFVCkkKFNPKQorCSQoQ1hYU0hBUkVEKSAkKE9CSlMpICQoSU9CSlMpICQoTElCUykgLW8gbGliJChUQVJHRVQpJChTTykKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBCdWlsZCBzdGF0aWNhbGx5IGxpbmtlZCBHdWlsZSBpbnRlcnByZXRlcgpAQCAtMzI5LDcgKzMyOSwxMSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKICMgTWFrZSBzdXJlIHRoZXNlIGxvY2F0ZSB5b3VyIFJ1YnkgaW5zdGFsbGF0aW9uCi1SVUJZX0lOQ0xVREU9IC1ESEFWRV9DT05GSUdfSCBAUlVCWUlOQ0xVREVACitSVUJZX0NGTEFHUz0gQFJVQllDQ0RMRkxBR1NAIC1ESEFWRV9DT05GSUdfSAorUlVCWV9JTkNMVURFPSBAUlVCWUlOQ0xVREVACitSVUJZX0xJQiAgICAgPSBAUlVCWUxJQkAKK1JVQllfTElCT1BUUyA9IEBSVUJZTElOS0AgQExJQlNAICQoU1lTTElCUykKK1JVQllfTElCUlVCWUFSRz0gQFJVQllMSUJSVUJZQVJHQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQnVpbGQgYSBDIGR5bmFtaWNhbGx5IGxvYWRhYmxlIG1vZHVsZQpAQCAtMzM3LDggKzM0MSw4IEBACiAKIHJ1Ynk6ICQoU1JDUykKIAkkKFNXSUcpIC1ydWJ5ICQoU1dJR09QVCkgJChJTlRFUkZBQ0UpCi0JJChDQykgLWMgJChDQ1NIQVJFRCkgJChDRkxBR1MpICQoSVNSQ1MpICQoU1JDUykgJChJTkNMVURFKSAkKFJVQllfSU5DTFVERSkKLQkkKExEU0hBUkVEKSAkKE9CSlMpICQoSU9CSlMpICQoTElCUykgLW8gJChUQVJHRVQpJChTTykKKwkkKENDKSAtYyAkKENDU0hBUkVEKSAkKENGTEFHUykgJChSVUJZX0NGTEFHUykgJChJU1JDUykgJChTUkNTKSAkKElOQ0xVREUpICQoUlVCWV9JTkNMVURFKQorCSQoTERTSEFSRUQpICQoT0JKUykgJChJT0JKUykgJChMSUJTKSAkKFJVQllfTElCUlVCWUFSRykgLW8gJChUQVJHRVQpJChTTykKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBCdWlsZCBhIEMrKyBkeW5hbWljYWxseSBsb2FkYWJsZSBtb2R1bGUKQEAgLTM0Niw4ICszNTAsOCBAQAogCiBydWJ5X2NwcDogJChTUkNTKQogCSQoU1dJRykgLWMrKyAtcnVieSAkKFNXSUdPUFQpICQoSU5URVJGQUNFKQotCSQoQ1hYKSAtYyAkKENDU0hBUkVEKSAkKENGTEFHUykgJChJU1JDUykgJChTUkNTKSAkKENYWFNSQ1MpICQoSU5DTFVERSkgJChSVUJZX0lOQ0xVREUpCi0JJChDWFhTSEFSRUQpICQoT0JKUykgJChJT0JKUykgJChMSUJTKSAkKENQUF9ETExJQlMpIC1vICQoVEFSR0VUKSQoU08pCisJJChDWFgpIC1jICQoQ0NTSEFSRUQpICQoQ0ZMQUdTKSAkKFJVQllfQ0ZMQUdTKSAkKElTUkNTKSAkKFNSQ1MpICQoQ1hYU1JDUykgJChJTkNMVURFKSAkKFJVQllfSU5DTFVERSkKKwkkKENYWFNIQVJFRCkgJChPQkpTKSAkKElPQkpTKSAkKExJQlMpICQoQ1BQX0RMTElCUykgJChSVUJZX0xJQlJVQllBUkcpIC1vICQoVEFSR0VUKSQoU08pCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQnVpbGQgc3RhdGljYWxseSBsaW5rZWQgUnVieSBpbnRlcnByZXRlcgpAQCAtMzU2LDE3ICszNjAsMTQgQEAKICMgbGlicmFyeSBmaWxlCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJVQllfTElCICAgICA9IEBSVUJZTElCQAotUlVCWV9MSUJPUFRTID0gQFJVQllMSU5LQCBATElCU0AgJChTWVNMSUJTKQotCiBydWJ5X3N0YXRpYzogJChTUkNTKQogCSQoU1dJRykgLXJ1YnkgLWxlbWJlZC5pICQoU1dJR09QVCkgJChJTlRFUkZBQ0UpCi0JJChDQykgJChDRkxBR1MpIEBMSU5LRk9SU0hBUkVEQCAkKElTUkNTKSAkKFNSQ1MpICQoSU5DTFVERSkgXAorCSQoQ0MpICQoQ0ZMQUdTKSAkKFJVQllfQ0ZMQUdTKSBATElOS0ZPUlNIQVJFREAgJChJU1JDUykgJChTUkNTKSAkKElOQ0xVREUpIFwKIAkkKFJVQllfSU5DTFVERSkgJChMSUJTKSAtTCQoUlVCWV9MSUIpICQoUlVCWV9MSUJPUFRTKSAtbyAkKFRBUkdFVCkKIAotcnVieV9zdGF0aWNfY3BwOiAkKFNSQ1MpCitydWJ5X2NwcF9zdGF0aWM6ICQoU1JDUykKIAkkKFNXSUcpIC1jKysgLXJ1YnkgLWxlbWJlZC5pICQoU1dJR09QVCkgJChJTlRFUkZBQ0UpCi0JJChDWFgpICQoQ0ZMQUdTKSAkKElTUkNTKSAkKFNSQ1MpICQoQ1hYU1JDUykgJChJTkNMVURFKSBcCisJJChDWFgpICQoQ0ZMQUdTKSAkKFJVQllfQ0ZMQUdTKSAkKElTUkNTKSAkKFNSQ1MpICQoQ1hYU1JDUykgJChJTkNMVURFKSBcCiAJJChSVUJZX0lOQ0xVREUpICQoTElCUykgIC1MJChSVUJZX0xJQikgJChSVUJZX0xJQk9QVFMpIC1vICQoVEFSR0VUKQogCiAKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvUkVBRE1FIGIvU1dJRy9FeGFtcGxlcy9SRUFETUUKaW5kZXggM2E0NzZhNy4uYzE4ZDMwZSAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9SRUFETUUKKysrIGIvU1dJRy9FeGFtcGxlcy9SRUFETUUKQEAgLTM3LDggKzM3LDYgQEAKICAgICBUaGlzIGNhbiBiZSBzZXQgYnkgbW9kaWZ5aW5nIHRoZSBzZXR0aW5nIG9mIENQUF9ETExJQlMgaW4gdGhlCiAgICAgTWFrZWZpbGUuCiAKLSAtICBSVE0gKHNvcnJ5KQotCiAKICoqKiBTcGVjaWFsIG5vdGUgZm9yIFNXSUcgTWFpbnRhaW5lcnMgKioqCiAKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvTWFrZWZpbGUuaW4gYi9TV0lHL0V4YW1wbGVzL2d1aWxlL01ha2VmaWxlLmluCmluZGV4IDFjMzFhNjcuLmJhYzA0NmMgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvTWFrZWZpbGUuaW4KKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS9NYWtlZmlsZS5pbgpAQCAtMSwxMSArMSwxNSBAQAogIyBNYWtlZmlsZSBmb3IgR3VpbGUuICBVc2VkIGJ5IGFsbCBvZiB0aGUgZXhhbXBsZSBwcm9ncmFtcy4KIAotc3ViZGlycwkJPSBzaW1wbGUgbWF0cml4CitzdWJkaXJzCQk9IHNpbXBsZSBtYXRyaXggcG9ydAogCiB0b3Bfc3JjZGlyCT0gQHRvcF9zcmNkaXJACi0KK1NXSUcJCT0gLi4vJCh0b3Bfc3JjZGlyKS9zd2lnQHJlbGVhc2Vfc3VmZml4QAorQ0MJCT0gQENDQAorQ1hYCQk9IEBDWFhACitDRkxBR1MJCT0gQENGTEFHU0AKIEdVSUxFSU5DTFVERQk9IEBHVUlMRUlOQ0xVREVACiBHVUlMRUxJTksJPSBAR1VJTEVMSU5LQAorU1dJR09QVAkJPSAKIAogV1JBUAkJPSAkKElGSUxFOi5pPV93cmFwLmMpCiAKQEAgLTE1LDEzICsxOSwxOCBAQAogY2xlYW46OgogCWNkIHNpbXBsZTsgbWFrZSBjbGVhbgogCWNkIG1hdHJpeDsgbWFrZSBjbGVhbgorCWNkIHBvcnQ7IG1ha2UgY2xlYW4KIAlybSAtZiAqfiAufioKIAogIyBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgdy8gIm1ha2UgLWYgLi4vTWFrZWZpbGUiIGZyb20gc3ViZGlycy4KICMgRG9lc24ndCBtYWtlIHNlbnNlIHRvIHVzZSBpdCBmcm9tIGhlcmUuCiAKIHN1Yi1hbGw6OgotCS4uLyQodG9wX3NyY2Rpcikvc3dpZyAtZ3VpbGUgJChJRklMRSkKLQkkKENDKSAtbyAkKFRBUkdFVCkgJChTUkNTKSAkKFdSQVApICQoR1VJTEVJTkNMVURFKSAkKEdVSUxFTElOSykKKwkkKFNXSUcpIC1ndWlsZSAkKFNXSUdPUFQpICQoSUZJTEUpCisJJChDQykgJChDRkxBR1MpIC1vICQoVEFSR0VUKSAkKFNSQ1MpICQoV1JBUCkgJChHVUlMRUlOQ0xVREUpICQoR1VJTEVMSU5LKQorCitzdWItYWxsLWN4eDo6CisJJChTV0lHKSAtYysrIC1ndWlsZSAkKFNXSUdPUFQpICQoSUZJTEUpCisJJChDWFgpICQoQ0ZMQUdTKSAtbyAkKFRBUkdFVCkgJChTUkNTKSAkKFdSQVApICQoR1VJTEVJTkNMVURFKSAkKEdVSUxFTElOSykKIAogIyBNYWtlZmlsZSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L01ha2VmaWxlIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS9tYXRyaXgvTWFrZWZpbGUKaW5kZXggYmJlNzg1My4uZjkwZDlhYSAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9ndWlsZS9tYXRyaXgvTWFrZWZpbGUKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS9tYXRyaXgvTWFrZWZpbGUKQEAgLTEsNCArMSwzIEBACi1DQyAgICAgPSBnY2MKIFNSQ1MgICA9IG1hdHJpeC5jIHZlY3Rvci5jCiBUQVJHRVQgPSBtYXRyaXgKIElGSUxFICA9IHBhY2thZ2UuaQpAQCAtMTAsNyArOSw2IEBACiAJCVNSQ1M9JyQoU1JDUyknCQkJXAogCQlUQVJHRVQ9JChUQVJHRVQpCQlcCiAJCUlGSUxFPSQoSUZJTEUpCQkJXAotCQlDQz0kKENDKQkJCVwKIAkJTU9EVUxFPSQoTU9EVUxFKQkJXAogCSAgc3ViLWFsbAogCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL21hdHJpeC9tYXRyaXguYyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L21hdHJpeC5jCmluZGV4IDdlY2I2ZGQuLjZjZTEwMDkgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L21hdHJpeC5jCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L21hdHJpeC5jCkBAIC0xLDQgKzEsNiBAQAogLyogICBGSUxFIDogbWF0cml4LmMgOiBzb21lIHNpbXBsZSA0eDQgbWF0cml4IG9wZXJhdGlvbnMgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgogCiBkb3VibGUgKipuZXdfbWF0cml4KCkgewogCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL21hdHJpeC92ZWN0b3IuYyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L3ZlY3Rvci5jCmluZGV4IGNkYjcyNmEuLjMwMTI5OTMgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L3ZlY3Rvci5jCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvbWF0cml4L3ZlY3Rvci5jCkBAIC0xLDUgKzEsNyBAQAogLyogRmlsZSA6IHZlY3Rvci5jICovCiAKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInZlY3Rvci5oIgogCiBWZWN0b3IgKmNyZWF0ZXYoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91YmxlIHcpIHsKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvcG9ydC9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvcG9ydC9NYWtlZmlsZQppbmRleCA2NjhjNjZiLi43ZTAyNTBjIDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3BvcnQvTWFrZWZpbGUKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS9wb3J0L01ha2VmaWxlCkBAIC0xLDQgKzEsMyBAQAotQ0MgICAgID0gZ2NjCiBTUkNTICAgPSBwb3J0LmMKIFRBUkdFVCA9IHBvcnQKIElGSUxFICA9IHBvcnQuaQpAQCAtMTAsNyArOSw2IEBACiAJCVNSQ1M9JyQoU1JDUyknCQkJXAogCQlUQVJHRVQ9JChUQVJHRVQpCQlcCiAJCUlGSUxFPSQoSUZJTEUpCQkJXAotCQlDQz0kKENDKQkJCVwKIAkJTU9EVUxFPSQoTU9EVUxFKQkJXAogCSAgc3ViLWFsbAogCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3BvcnQvcG9ydC5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS9wb3J0L3BvcnQuaQppbmRleCA1NTNjZmJhLi4xYTExMjJkIDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3BvcnQvcG9ydC5pCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvcG9ydC9wb3J0LmkKQEAgLTcsNSArNyw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICV9CiAKKyVpbmxpbmUgJXsKIHZvaWQgcHJpbnRfaW50KEZJTEUgKmYsIGludCBpKTsKIGludCByZWFkX2ludChGSUxFICpmKTsKKyV9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3NpbXBsZS9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvc2ltcGxlL01ha2VmaWxlCmluZGV4IDE1MWRjYzQuLjg3ZWUyZWMgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvc2ltcGxlL01ha2VmaWxlCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvc2ltcGxlL01ha2VmaWxlCkBAIC0xLDQgKzEsMyBAQAotQ0MgICAgID0gZ2NjCiBTUkNTICAgPSBleGFtcGxlLmMKIFRBUkdFVCA9IG15LWd1aWxlCiBJRklMRSAgPSBleGFtcGxlLmkKQEAgLTksNyArOCw2IEBACiAJCVNSQ1M9JyQoU1JDUyknCQkJXAogCQlUQVJHRVQ9JChUQVJHRVQpCQlcCiAJCUlGSUxFPSQoSUZJTEUpCQkJXAotCQlDQz0kKENDKQkJCVwKIAkgICAgc3ViLWFsbAogCiBjbGVhbjo6CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3NpbXBsZS9leGFtcGxlLmMgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3NpbXBsZS9leGFtcGxlLmMKaW5kZXggMGU2YjI4NC4uZGNhZmM0ZCAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9ndWlsZS9zaW1wbGUvZXhhbXBsZS5jCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvc2ltcGxlL2V4YW1wbGUuYwpAQCAtMSw3ICsxLDcgQEAKIC8qIFNpbXBsZSBleGFtcGxlIGZyb20gZG9jdW1lbnRhdGlvbiAqLwogLyogRmlsZSA6IGV4YW1wbGUuYyAqLwogCi0jaW5jbHVkZSA8L3Vzci9pbmNsdWRlL3RpbWUuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CiAKIGRvdWJsZSBNeV92YXJpYWJsZSA9IDMuMDsKIApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2MxYzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSwzIEBACisqX3dyYXAqCisqdGVzdC14CitNYWtlZmlsZQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL01ha2VmaWxlLmluIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL01ha2VmaWxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNTBjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw2MCBAQAordG9wX3NyY2Rpcgk9IEB0b3Bfc3JjZGlyQAorU1dJRwkJPSAuLi8kKHRvcF9zcmNkaXIpL3N3aWdAcmVsZWFzZV9zdWZmaXhACitDQwkJPSBAQ0NACitDWFgJCT0gQENYWEAKK0NGTEFHUwkJPSBAQ0ZMQUdTQAorR1VJTEVJTkNMVURFCT0gQEdVSUxFSU5DTFVERUAKK0dVSUxFTElOSwk9IEBHVUlMRUxJTktACisKK2FsbDo6ICAgbWFjcm8tMi50ZXN0IFwKKwlsb25nLWxvbmcudGVzdCBjb25zdC1jb25zdC50ZXN0IFwKKwljcGx1c3BsdXMtdGhyb3cuY3BsdXNwbHVzdGVzdCBcCisJY2hhci1jb25zdGFudC5ydW50ZXN0IFwKKwlwb2ludGVyLXJlZmVyZW5jZS5jcGx1c3BsdXN0ZXN0IFwKKwljYXN0cy5jcGx1c3BsdXNydW50ZXN0IFwKKwlpbXBvcnQuY3BsdXNwbHVzcnVudGVzdCBcCisJbmFtZS5ydW50ZXN0IFwKKwl0ZW1wbGF0ZS13aGl0ZXNwYWNlLmNwbHVzcGx1c3Rlc3QKKworLlNVRkZJWEVTOiAuaSAudGVzdCAuY3BsdXNwbHVzdGVzdCAucnVudGVzdCAuY3BsdXNwbHVzcnVudGVzdAorCisuaS50ZXN0OgorCUBlY2hvIENoZWNraW5nIEV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvJDwKKwlAJChTV0lHKSAtZ3VpbGUgLWxndWlsZW1haW4uaSAkPCB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogU1dJRyBGQUlMRUQgIjsgZXhpdCAxKQorCUAkKENDKSAkKENGTEFHUykgJCpfd3JhcC5jIC1vICRALXggJChHVUlMRUlOQ0xVREUpICQoR1VJTEVMSU5LKSB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogQ09NUElMRS9MSU5LIEZBSUxFRCI7IGV4aXQgMSkKKwlAZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogUEFTU0VEIgorCisuaS5jcGx1c3BsdXN0ZXN0OgorCUBlY2hvIENoZWNraW5nIEV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvJDwKKwlAJChTV0lHKSAtZ3VpbGUgLWMrKyAtbGd1aWxlbWFpbi5pICQ8IHx8IChlY2hvICJFeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLyQ8OiBTV0lHIEZBSUxFRCAiOyBleGl0IDEpCisJQCQoQ1hYKSAkKENGTEFHUykgJCpfd3JhcC5jIC1vICRALXggJChHVUlMRUlOQ0xVREUpICQoR1VJTEVMSU5LKSB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogQ09NUElMRS9MSU5LIEZBSUxFRCI7IGV4aXQgMSkKKwlAZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogUEFTU0VEIgorCisuaS5ydW50ZXN0OgorCUBlY2hvIENoZWNraW5nIEV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvJDwKKwlAJChTV0lHKSAtZ3VpbGUgLWxndWlsZW1haW4uaSAkPCB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogU1dJRyBGQUlMRUQgIjsgZXhpdCAxKQorCUAkKENDKSAkKENGTEFHUykgJCpfd3JhcC5jIC1vICRALXggJChHVUlMRUlOQ0xVREUpICQoR1VJTEVMSU5LKSB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogQ09NUElMRS9MSU5LIEZBSUxFRCI7IGV4aXQgMSkKKwlALi8kQC14IC1sICQqLnNjbSB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPDogUlVOIFRFU1QgRkFJTEVEIjsgZXhpdCAxKQorCUBlY2hvICJFeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLyQ8OiBQQVNTRUQiCisKKy5pLmNwbHVzcGx1c3J1bnRlc3Q6CisJQGVjaG8gQ2hlY2tpbmcgRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS8kPAorCUAkKFNXSUcpIC1ndWlsZSAtYysrIC1sZ3VpbGVtYWluLmkgJDwgfHwgKGVjaG8gIkV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvJDw6IFNXSUcgRkFJTEVEICI7IGV4aXQgMSkKKwlAJChDWFgpICQoQ0ZMQUdTKSAkKl93cmFwLmMgLW8gJEAteCAkKEdVSUxFSU5DTFVERSkgJChHVUlMRUxJTkspIHx8IChlY2hvICJFeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLyQ8OiBDT01QSUxFL0xJTksgRkFJTEVEIjsgZXhpdCAxKQorCUAuLyRALXggLWwgJCouc2NtIHx8IChlY2hvICJFeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlLyQ8OiBSVU4gVEVTVCBGQUlMRUQiOyBleGl0IDEpCisJQGVjaG8gIkV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvJDw6IFBBU1NFRCIKKworaW1wb3J0LmNwbHVzcGx1c3J1bnRlc3Q6CisJQGVjaG8gQ2hlY2tpbmcgRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQKKwlAJChTV0lHKSAtYysrIC1ndWlsZSAtTGlua2FnZSBwYXNzaXZlIC1jIGltcG9ydC1hLmkgfHwgKGVjaG8gIkV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0OiBTV0lHIEZBSUxFRCAiOyBleGl0IDEpCisJQCQoU1dJRykgLWMrKyAtZ3VpbGUgLUxpbmthZ2UgcGFzc2l2ZSBpbXBvcnQtYi5pICB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQ6IFNXSUcgRkFJTEVEICI7IGV4aXQgMSkKKwlAJChDWFgpICQoQ0ZMQUdTKSAtRFNXSUdfR0xPQkFMIC1vIGltcG9ydC1hX3dyYXAubyAtYyBpbXBvcnQtYV93cmFwLmMgJChHVUlMRUlOQ0xVREUpICB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQ6IENPTVBJTEUgRkFJTEVEICI7IGV4aXQgMSkKKwlAJChDWFgpICQoQ0ZMQUdTKSAtRFNXSUdfR0xPQkFMIC1vIGltcG9ydC1iX3dyYXAubyAtYyBpbXBvcnQtYl93cmFwLmMgJChHVUlMRUlOQ0xVREUpfHwgKGVjaG8gIkV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0OiBDT01QSUxFIEZBSUxFRCAiOyBleGl0IDEpCisJQCQoQ1hYKSAkKENGTEFHUykgLW8gJEAteCBpbXBvcnQtYV93cmFwLm8gaW1wb3J0LWJfd3JhcC5vIGltcG9ydC1tYWluLmNjICQoR1VJTEVJTkNMVURFKSAkKEdVSUxFTElOSyl8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQ6IExJTksgRkFJTEVEICI7IGV4aXQgMSkKKwlALi8kQC14IC1sICQqLnNjbSB8fCAoZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQ6IFJVTiBURVNUIEZBSUxFRCI7IGV4aXQgMSkKKwlAZWNobyAiRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQ6IFBBU1NFRCIKKworY2xlYW46OgorCXJtIC1mIG1hdHJpeCAqX3dyYXAqICp0ZXN0LXggKn4gLn4qIGNvcmUKKworY2hlY2s6IGFsbApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL1JFQURNRSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNmNDA2NAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9SRUFETUUKQEAgLTAsMCArMSw3IEBACitUaGlzIGRpcmVjdG9yeSBjb250YWlucyBhIHRlc3Qgc3VpdGUgZm9yIFNXSUcuICBUaGUgaWRlYSBpcyB0aGF0Cit3aGVuZXZlciBhIGJ1ZyBpbiBTV0lHIGlzIGRpc2NvdmVyZWQsIHdlIGFkZCBhIHRlc3QgdGhhdCBmYWlscywKK3Nob3dpbmcgdGhlIGJ1Zy4gIFdoZW4gd2UgYmVsaWV2ZSB0byBoYXZlIGZpeGVkIHRoZSBidWcsIHdlIGNhbiBjaGVjaword2hldGhlciB0ZXN0IHdvcmtzLiAgVGhlIHRlc3RzIGFyZSBrZXB0IGhlcmUgd2hlbiB0aGUgYnVnIGlzIGZpeGVkIC0tCitzbyB3ZSBjYW4gbWFrZSBzdXJlIHRoYXQgdGhlIGJ1ZyAob3IgcmVsYXRlZCBidWdzKSBkb24ndCBjcmVlcCBiYWNrCitpbnRvIFNXSUcuCisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jYXN0cy5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2Nhc3RzLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI2YzE4YgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jYXN0cy5pCkBAIC0wLDAgKzEsMTkgQEAKKyVpbmxpbmUgJXsKKworY2xhc3MgQSB7IAorIHB1YmxpYzogCisgIEEoKSB7fSAKKyAgCisgIHZvaWQgaGVsbG8oKSAKKyAgICB7IAorICAgIH0gCit9OyAKKworY2xhc3MgQiA6IHB1YmxpYyBBIAoreyAKKyBwdWJsaWM6IAorICBCKCkge30gCisgIAorfTsKKworJX0KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jYXN0cy5zY20gYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvY2FzdHMuc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNTY2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvY2FzdHMuc2NtCkBAIC0wLDAgKzEsOCBAQAorKGRlZmluZSB4IChuZXctQikpCisKKzs7IFRoaXMgZmFpbHMgaW4gMS4zYTUgYmVjYXVzZSB0aGUgU1dJRy9HdWlsZSBydW50aW1lIGNvZGUgZ2V0cyB0aGUKKzs7IHNvdXJjZSBhbmQgdGhlIHRhcmdldCBvZiBhIGNhc3QgdGhlIHdyb25nIHdheSBhcm91bmQuCisKKyhBLWhlbGxvIHgpCQkJCQorCisoZXhpdCAwKQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2NoYXItY29uc3RhbnQuaSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jaGFyLWNvbnN0YW50LmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlkOWI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jaGFyLWNvbnN0YW50LmkKQEAgLTAsMCArMSw2IEBACisvKiBUaGlzIGludGVyZmFjZSBmaWxlIHRlc3RzIHdoZXRoZXIgY2hhcmFjdGVyIGNvbnN0YW50cyBhcmUgY29ycmVjdGx5CisgICB3cmFwcGVkIGFzIHByb2NlZHVyZXMgcmV0dXJuaW5nIFNjaGVtZSBjaGFyYWN0ZXJzIChyYXRoZXIgdGhhbgorICAgU2NoZW1lIHN0cmluZ3MpLiAKKyovCisKKyNkZWZpbmUgQ0hBUl9DT05TVEFOVCAneCcKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jaGFyLWNvbnN0YW50LnNjbSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jaGFyLWNvbnN0YW50LnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjAxZjMyCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2NoYXItY29uc3RhbnQuc2NtCkBAIC0wLDAgKzEsMyBAQAorKGlmIChjaGFyPyAoQ0hBUi1DT05TVEFOVCkpCisgICAgKGV4aXQgMCkKKyAgICAoZXhpdCAxKSkKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jb25zdC1jb25zdC5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2NvbnN0LWNvbnN0LmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzllYjNiMAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jb25zdC1jb25zdC5pCkBAIC0wLDAgKzEsOSBAQAorLyogVGhpcyBpbnRlcmZhY2UgZmlsZSB0ZXN0cyB3aGV0aGVyIFNXSUcgaGFuZGxlcyB0eXBlcyBsaWtlCisgICAiY29uc3QgaW50ICpjb25zdCIgcmlnaHQuCisKKyAgIFNXSUcgMS4zYTUgc2lnbmFscyBhIHN5bnRheCBlcnJvci4KKyovCisKKyVpbmxpbmUgJXsKK3ZvaWQgZm9vKGNvbnN0IGludCAqY29uc3QgaSkge30KKyV9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvY3BsdXNwbHVzLXRocm93LmkgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvY3BsdXNwbHVzLXRocm93LmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY4ZTQ4NQotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9jcGx1c3BsdXMtdGhyb3cuaQpAQCAtMCwwICsxLDEwIEBACisvKiBUaGlzIGludGVyZmFjZSBmaWxlIGNoZWNrcyB3aGV0aGVyIHRoZSBTV0lHIHBhcnNlcyB0aGUgdGhyb3cKKyAgIGRpcmVjdGl2ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBjb25zdCBkaXJlY3RpdmUuICBCdWcgcmVwb3J0ZWQgYnkKKyAgIFNjb3R0IEIuIERydW1tb25kcywgMDggSnVuZSAyMDAxLiAgCisqLworCitjbGFzcyBiYXIgeworICB2b2lkIGJheigpIGNvbnN0OworICB2b2lkIGZvbygpIHRocm93IChleGNlcHRpb24pOworICB2b2lkIGJhemZvbygpIGNvbnN0IHRocm93ICgpOworfQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1hLmggYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWU3YmMzCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1hLmgKQEAgLTAsMCArMSwxMCBAQAorI2luY2x1ZGUgPGlvc3RyZWFtLmg+IAorCitjbGFzcyBBIHsgCisgcHVibGljOiAKKyAgQSgpIHt9IAorICAKKyAgdm9pZCBoZWxsbygpIAorICAgIHsgCisgICAgfSAKK307IApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1hLmkgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LWEuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODY1MjViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1hLmkKQEAgLTAsMCArMSwxMiBAQAorLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYSB0ZXN0IGZvciBTRiBidWcgIzIzMTYxOS4gCisgICBJdCBzaG93cyB0aGF0IHRoZSAlaW1wb3J0IGRpcmVjdGl2ZSBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IGluIFNXSUcKKyAgIDEuM2E1OiAgVHlwZSBpbmZvcm1hdGlvbiBpcyBub3QgcHJvcGVybHkgZ2VuZXJhdGVkIGlmIGEgYmFzZSBjbGFzcworICAgY29tZXMgZnJvbSBhbiAlaW1wb3J0LWVkIGZpbGUuICovCisKKyVtb2R1bGUgYQorCisleyAKKyAgI2luY2x1ZGUgImltcG9ydC1hLmgiIAorJX0gCisKKyVpbmNsdWRlICJpbXBvcnQtYS5oIgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1iLmggYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDQ4ZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1iLmgKQEAgLTAsMCArMSwxMiBAQAorI2luY2x1ZGUgImltcG9ydC1hLmgiCisKK2NsYXNzIEIgOiBwdWJsaWMgQSAKK3sgCisgcHVibGljOiAKKyAgQigpIHt9IAorICAKKyAgdm9pZCBieWUoKSAKKyAgICB7IAorICAgIH0gCit9OworCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LWIuaSBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9pbXBvcnQtYi5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMzc4ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LWIuaQpAQCAtMCwwICsxLDE0IEBACisvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBhIHRlc3QgZm9yIFNGIGJ1ZyAjMjMxNjE5LiAKKyAgIEl0IHNob3dzIHRoYXQgdGhlICVpbXBvcnQgZGlyZWN0aXZlIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgaW4gU1dJRworICAgMS4zYTU6ICBUeXBlIGluZm9ybWF0aW9uIGlzIG5vdCBwcm9wZXJseSBnZW5lcmF0ZWQgaWYgYSBiYXNlIGNsYXNzCisgICBjb21lcyBmcm9tIGFuICVpbXBvcnQtZWQgZmlsZS4gKi8KKworJW1vZHVsZSBiCisKKyV7IAorI2luY2x1ZGUgImltcG9ydC1iLmgiIAorJX0gCisKKyVpbXBvcnQgImltcG9ydC1hLmgiIAorCislaW5jbHVkZSAiaW1wb3J0LWIuaCIgIApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1tYWluLmNjIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC1tYWluLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmM2QzMTcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LW1haW4uY2MKQEAgLTAsMCArMSwyNCBAQAorI2luY2x1ZGUgPGxpYmd1aWxlLmg+CisKK2V4dGVybiAiQyIgeworCisgIFNDTSBzY21faW5pdF9hX21vZHVsZSgpOworICBTQ00gc2NtX2luaXRfYl9tb2R1bGUoKTsKKyAgCisgIHN0YXRpYyB2b2lkCisgIGlubmVyX21haW4odm9pZCAqY2xvc3VyZSwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICB7CisgICAgc2NtX2luaXRfYV9tb2R1bGUoKTsKKyAgICBzY21faW5pdF9iX21vZHVsZSgpOworICAgIHNjbV9zaGVsbChhcmdjLCBhcmd2KTsJLyogc2NoZW1lIGludGVycHJldGVyICovCisgICAgLyogbmV2ZXIgcmVhY2hlZDogc2NtX3NoZWxsIHdpbGwgcGVyZm9ybSBhbiBleGl0ICovCisgIH0KKworfQorCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICBzY21fYm9vdF9ndWlsZShhcmdjLCBhcmd2LCBpbm5lcl9tYWluLCAwKTsgCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC5zY20gYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvaW1wb3J0LnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjNjYzhiCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2ltcG9ydC5zY20KQEAgLTAsMCArMSwxMyBAQAorOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGEgdGVzdCBmb3IgU0YgYnVnICMyMzE2MTkuIAorOzs7IEl0IHNob3dzIHRoYXQgdGhlICVpbXBvcnQgZGlyZWN0aXZlIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgaW4gU1dJRworOzs7IDEuM2E1OiAgVHlwZSBpbmZvcm1hdGlvbiBpcyBub3QgcHJvcGVybHkgZ2VuZXJhdGVkIGlmIGEgYmFzZSBjbGFzcworOzs7IGNvbWVzIGZyb20gYW4gJWltcG9ydC1lZCBmaWxlLiAKKworKGRlZmluZSB4IChuZXctQikpCisKKzs7IFRoaXMgZmFpbHMgaW4gMS4zYTUgYmVjYXVzZSB0aGUgU1dJRyBydW50aW1lIGNvZGUgZG9lcyBub3Qga25vdworOzsgdGhhdCB4IChhbiBpbnN0YW5jZSBvZiBjbGFzcyBCKSBjYW4gYmUgcGFzc2VkIHRvIG1ldGhvZHMgb2YgY2xhc3MgQS4gCisKKyhBLWhlbGxvIHgpCQkJCQorCisoZXhpdCAwKQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2xvbmctbG9uZy5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL2xvbmctbG9uZy5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyZWUxMGYKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbG9uZy1sb25nLmkKQEAgLTAsMCArMSwyNiBAQAorLyogVGhpcyBpbnRlcmZhY2UgZmlsZSB0ZXN0cyB3aGV0aGVyIFNXSUcgaGFuZGxlcyB0aGUgKG5vbi1zdGFuZGFyZCkKKyAgIGxvbmcgbG9uZyB0eXBlcy4KKworICAgU1dJRyAxLjNhNSB0aHJvd3MgYSBzeW50YXggZXJyb3IuCisqLworCisvKiBTaWxseSBzYW1wbGUgdHlwZW1hcHMgKi8KKyV0eXBlbWFwKGluKSBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZyAiJHRhcmdldCA9IDQyOyI7CisldHlwZW1hcChvdXQpIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nICIkdGFyZ2V0ID0gU0NNX0JPT0xfRjsiOworCislaW5saW5lICV7Cit2b2lkIGZvbzEobG9uZyBsb25nIHgpIHt9Cit2b2lkIGZvbzIobG9uZyBsb25nIGludCB4KSB7fQordm9pZCBmb28zKHNpZ25lZCBsb25nIGxvbmcgaW50IHgpIHt9Cit2b2lkIGZvbzQodW5zaWduZWQgbG9uZyBsb25nIGludCB4KSB7fQordm9pZCBmb281KHNpZ25lZCBsb25nIGxvbmcgeCkge30KK3ZvaWQgZm9vNih1bnNpZ25lZCBsb25nIGxvbmcgeCkge30KKworbG9uZyBsb25nIGJhcjEoKSB7cmV0dXJuIDA7fQorbG9uZyBsb25nIGludCBiYXIyKCkge3JldHVybiAwO30KK3NpZ25lZCBsb25nIGxvbmcgaW50IGJhcjMoKSB7cmV0dXJuIDA7fQordW5zaWduZWQgbG9uZyBsb25nIGludCBiYXI0KCkge3JldHVybiAwO30KK3NpZ25lZCBsb25nIGxvbmcgYmFyNSgpIHtyZXR1cm4gMDt9Cit1bnNpZ25lZCBsb25nIGxvbmcgYmFyNigpIHtyZXR1cm4gMDt9CislfQorCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbWFjcm8tMi5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL21hY3JvLTIuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmQ1ZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL21hY3JvLTIuaQpAQCAtMCwwICsxLDE3IEBACisvKiBUaGlzIGludGVyZmFjZSBmaWxlIHRlc3RzIHdoZXRoZXIgU1dJRydzIGV4dGVuZGVkIEMKKyAgIHByZXByb2Nlc3NvciBpcyB3b3JraW5nIHJpZ2h0LiAKKworICAgSW4gdGhpcyBleGFtcGxlLCBTV0lHIDEuM2E1IHJlcG9ydHMgbWlzc2luZyBtYWNybyBhcmd1bWVudHMsIHdoaWNoCisgICBpcyBib2d1cy4KKyovCisKKyVkZWZpbmUgRk9PKENfVFlQRSwgR0VUTEVOR1RIKQorICAgICAvKiBub3RoaW5nICovCislZW5kZGVmCisKKyVkZWZpbmUgQkFSKFhZWlpZKQorICBGT08oWFlaWlksIDEpCislZW5kZGVmCisKK0JBUihpbnQpCisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9uYW1lLmkgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbmFtZS5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZTZiODAKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbmFtZS5pCkBAIC0wLDAgKzEsMTUgQEAKKy8qIFRoaXMgaW50ZXJmYWNlIGZpbGUgdGVzdHMgd2hldGhlciBTV0lHL0d1aWxlIGhhbmRsZSB0aGUgJXJlbmFtZSBhbmQKKyAgICVuYW1lIGRpcmVjdGl2ZXMsIHdoaWNoIHdhcyBub3QgdGhlIGNhc2UgaW4gMS4zYTUuCisqLworCislcmVuYW1lIGZvb18xICJmb28tMiI7CislaW5saW5lICV7Cit2b2lkIGZvb18xKCkge30KKyV9CisKKyVuYW1lKCJiYXItMiIpCislaW5saW5lICV7CitpbnQgYmFyXzEgPSAxNzsKKyV9CisKKyVjb25zdGFudChpbnQpIGJhel8xID0gNDc7CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbmFtZS5zY20gYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvbmFtZS5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBjZGJhMwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZS9uYW1lLnNjbQpAQCAtMCwwICsxLDUgQEAKKyhmb28tMikKK2Jhci0yCitiYXotMQorCisoZXhpdCAwKQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL3BvaW50ZXItcmVmZXJlbmNlLmkgYi9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvcG9pbnRlci1yZWZlcmVuY2UuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjE1YTVlCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL3BvaW50ZXItcmVmZXJlbmNlLmkKQEAgLTAsMCArMSwxMyBAQAorLyogVGhpcyBpbnRlcmZhY2UgZmlsZSB0ZXN0cyB3aGV0aGVyIFNXSUcgaGFuZGxlcyBwb2ludGVyLXJlZmVyZW5jZQorICAgKComKSBhcmd1bWVudHMuCisKKyAgIFNXSUcgMS4zYTUgc2lnbmFscyBhIHN5bnRheCBlcnJvci4KKyovCisKKy8qIEEgc2lsbHkgdGVzdGluZyB0eXBlbWFwIGZvciBmZWVkaW5nIGEgZG91Ymx5IGluZGlyZWN0IGludGVnZXIgKi8KKyV0eXBlbWFwKGluKSBpbnQgKiZYWVpaWSAoaW50IHRlbXAxLCBpbnQgKnRlbXAyKQorICAidGVtcDEgPSBnaF9zY20yaW50KCRzb3VyY2UpOyB0ZW1wMiA9ICZ0ZW1wMTsgJHRhcmdldCA9ICZ0ZW1wMjsiOworCislaW5saW5lICV7Cit2b2lkIGZvbyhpbnQgKiZYWVpaWSkge30KKyV9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvdGVtcGxhdGUtd2hpdGVzcGFjZS5pIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL3RlbXBsYXRlLXdoaXRlc3BhY2UuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWQ1NmFhCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ndWlsZS90ZXN0LXN1aXRlL3RlbXBsYXRlLXdoaXRlc3BhY2UuaQpAQCAtMCwwICsxLDEzIEBACisvKiBUaGlzIGludGVyZmFjZSBmaWxlIHRlc3RzIHdoZXRoZXIgd2hpdGVzcGFjZSBpbiBhbmdsZSBicmFja2V0cworICAgZWZmZWN0cyB0aGUgU1dJRyB0eXBlcy4gU0YgQnVnICMyMjE5MTcsIHJlcG9ydGVkIGJ5CisgICBidXJjaGFuYkBjcy50YW11LmVkdS4gKi8KKworJXsKKyNpbmNsdWRlIDx2ZWN0b3I+CislfQorCisldHlwZW1hcChpbikgdmVjdG9yPGludD4gIiI7CisKKyVpbmxpbmUgJXsKK3ZvaWQgZm9vKHZlY3RvcjxpbnQgPiB2KSB7fQorJX0KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvaW5kZXguaHRtbCBiL1NXSUcvRXhhbXBsZXMvaW5kZXguaHRtbAppbmRleCA3NzM3ZTFiLi42NDc5ODE5IDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL2luZGV4Lmh0bWwKKysrIGIvU1dJRy9FeGFtcGxlcy9pbmRleC5odG1sCkBAIC00MSw3ICs0MSw3IEBACiA8bGk+PGEgaHJlZj0icGVybDUvaW5kZXguaHRtbCI+UGVybDU8L2E+CiA8bGk+PGEgaHJlZj0idGNsL2luZGV4Lmh0bWwiPlRjbDwvYT4KIDxsaT48YSBocmVmPSJndWlsZS8iPkd1aWxlPC9hPgotPGxpPjxhIGhyZWY9ImphdmEvIj5KYXZhPC9hPgorPGxpPjxhIGhyZWY9ImphdmEvaW5kZXguaHRtbC8iPkphdmE8L2E+CiA8bGk+PGEgaHJlZj0ibXpzY2hlbWUvIj5NenNjaGVtZTwvYT4KIDxsaT48YSBocmVmPSJydWJ5L2luZGV4Lmh0bWwiPlJ1Ynk8L2E+CiA8L3VsPgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDA3MmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzLy5jdnNpZ25vcmUKQEAgLTAsMCArMSwzIEBACisqLmphdmEKKyouY2xhc3MKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvTWFrZWZpbGUgYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU0OTc0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9jbGFzcy9NYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBACitUT1AgICAgICAgID0gLi4vLi4KK1NXSUcgICAgICAgPSAkKFRPUCkvLi4vc3dpZworU1JDUyAgICAgICA9IGV4YW1wbGUuY3h4CitUQVJHRVQgICAgID0gbGliZXhhbXBsZQorSU5URVJGQUNFICA9IGV4YW1wbGUuaQorU1dJR09QVCAgICA9IC1zaGFkb3cKKworYWxsOjoJamF2YQorCitqYXZhOjoKKwkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBTUkNTPSckKFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCisJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBqYXZhX2NwcAorCWphdmFjICouamF2YQorCitjbGVhbjo6CisJbXYgbWFpbi5qYXZhIG1haW4uamF2YS50bXAKKwlybSAtZiAqX3dyYXAqICoubyBjb3JlICp+ICouc28gKi5jbGFzcyAqLmphdmEgCisJbXYgbWFpbi5qYXZhLnRtcCBtYWluLmphdmEKKworY2hlY2s6IGFsbApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzL2V4YW1wbGUuY3h4IGIvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzL2V4YW1wbGUuY3h4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjY4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvZXhhbXBsZS5jeHgKQEAgLTAsMCArMSwyOSBAQAorLyogRmlsZSA6IGV4YW1wbGUuYyAqLworCisjaW5jbHVkZSAiZXhhbXBsZS5oIgorI2luY2x1ZGUgPG1hdGguaD4KKworLyogTW92ZSB0aGUgc2hhcGUgdG8gYSBuZXcgbG9jYXRpb24gKi8KK3ZvaWQgU2hhcGU6Om1vdmUoZG91YmxlIGR4LCBkb3VibGUgZHkpIHsKKyAgeCArPSBkeDsKKyAgeSArPSBkeTsKK30KKworaW50IG5zaGFwZXMgPSAwOyAvL2dsb2JhbCB2YXJpYWJsZSB0ZW1wb3JhcmlseSByZXBsYWNpbmcgc3RhdGljIG1lbWJlciB2YXJpYWJsZSBkdWUgdG8gc3RhdGljIG1lbWJlciB2YXJpYWJsZSBidWcgaW4gc3dpZyBjb3JlCisvL2ludCBTaGFwZTo6bnNoYXBlcyA9IDA7CisKK2RvdWJsZSBDaXJjbGU6OmFyZWEoKSB7CisgIHJldHVybiBNX1BJKnJhZGl1cypyYWRpdXM7Cit9CisKK2RvdWJsZSBDaXJjbGU6OnBlcmltZXRlcigpIHsKKyAgcmV0dXJuIDIqTV9QSSpyYWRpdXM7Cit9CisKK2RvdWJsZSBTcXVhcmU6OmFyZWEoKSB7CisgIHJldHVybiB3aWR0aCp3aWR0aDsKK30KKworZG91YmxlIFNxdWFyZTo6cGVyaW1ldGVyKCkgeworICByZXR1cm4gNCp3aWR0aDsKK30KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9jbGFzcy9leGFtcGxlLmggYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvZXhhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0MTYyZTQKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvZXhhbXBsZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qIEZpbGUgOiBleGFtcGxlLmggKi8KKworZXh0ZXJuIGludCBuc2hhcGVzOyAvL2dsb2JhbCB2YXJpYWJsZSB0ZW1wb3JhcmlseSByZXBsYWNpbmcgc3RhdGljIG1lbWJlciB2YXJpYWJsZSBkdWUgdG8gc3RhdGljIG1lbWJlciB2YXJpYWJsZSBidWcgaW4gc3dpZyBjb3JlCitjbGFzcyBTaGFwZSB7CitwdWJsaWM6CisgIFNoYXBlKCkgeworICAgIG5zaGFwZXMrKzsKKyAgfQorICB2aXJ0dWFsIH5TaGFwZSgpIHsKKyAgICBuc2hhcGVzLS07CisgIH07CisgIGRvdWJsZSAgeCwgeTsgICAKKyAgdm9pZCAgICBtb3ZlKGRvdWJsZSBkeCwgZG91YmxlIGR5KTsKKyAgdmlydHVhbCBkb3VibGUgYXJlYSgpID0gMDsKKyAgdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOworLy8gIHN0YXRpYyAgaW50IG5zaGFwZXM7Cit9OworCitjbGFzcyBDaXJjbGUgOiBwdWJsaWMgU2hhcGUgeworcHJpdmF0ZToKKyAgZG91YmxlIHJhZGl1czsKK3B1YmxpYzoKKyAgQ2lyY2xlKGRvdWJsZSByKSA6IHJhZGl1cyhyKSB7IH07CisgIHZpcnR1YWwgZG91YmxlIGFyZWEoKTsKKyAgdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCk7Cit9OworICAKK2NsYXNzIFNxdWFyZSA6IHB1YmxpYyBTaGFwZSB7Citwcml2YXRlOgorICBkb3VibGUgd2lkdGg7CitwdWJsaWM6CisgIFNxdWFyZShkb3VibGUgdykgOiB3aWR0aCh3KSB7IH07CisgIHZpcnR1YWwgZG91YmxlIGFyZWEoKTsKKyAgdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCk7Cit9OworCisKKworCisgIApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzL2V4YW1wbGUuaSBiL1NXSUcvRXhhbXBsZXMvamF2YS9jbGFzcy9leGFtcGxlLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU3MDBiMwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9jbGFzcy9leGFtcGxlLmkKQEAgLTAsMCArMSwxMCBAQAorLyogRmlsZSA6IGV4YW1wbGUuaSAqLworJW1vZHVsZSBleGFtcGxlCisKKyV7CisjaW5jbHVkZSAiZXhhbXBsZS5oIgorJX0KKworLyogTGV0J3MganVzdCBncmFiIHRoZSBvcmlnaW5hbCBoZWFkZXIgZmlsZSBoZXJlICovCislaW5jbHVkZSAiZXhhbXBsZS5oIgorCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvaW5kZXguaHRtbCBiL1NXSUcvRXhhbXBsZXMvamF2YS9jbGFzcy9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMTM1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvaW5kZXguaHRtbApAQCAtMCwwICsxLDIyMiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TV0lHOkV4YW1wbGVzOmphdmE6Y2xhc3M8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KKworCis8dHQ+U1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzLzwvdHQ+Cis8aHI+CisKKzxIMj5XcmFwcGluZyBhIHNpbXBsZSBDKysgY2xhc3M8L0gyPgorCis8dHQ+JEhlYWRlciQ8L3R0Pjxicj4KKworPHA+CitUaGlzIGV4YW1wbGUgaWxsdXN0cmF0ZXMgdGhlIGhpZ2ggbGV2ZWwgZm9ybSBvZiBDKysgY2xhc3Mgd3JhcHBpbmcgcGVyZm9ybWVkCitieSBTV0lHLiAgSW4gdGhpcyBjYXNlLCBhIEMrKyBjbGFzcyBoYXMgYSBwcm94eSBKYXZhIGNsYXNzLCB3aGljaCAKK3Byb3ZpZGVzIGFjY2VzcyB0byBDKysgY2xhc3MgbWVtYmVycy4KKworPGgyPlRoZSBDKysgQ29kZTwvaDI+CisKK1N1cHBvc2UgeW91IGhhdmUgc29tZSBDKysgY2xhc3NlcyBkZXNjcmliZWQgYnkgdGhlIGZvbGxvd2luZyAoYW5kIGFkbWl0dGVkbHkgbGFtZSkgCitoZWFkZXIgZmlsZToKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorLyogRmlsZSA6IGV4YW1wbGUuaCAqLworCitjbGFzcyBTaGFwZSB7CitwdWJsaWM6CisgIFNoYXBlKCkgeworICAgIG5zaGFwZXMrKzsKKyAgfQorICB2aXJ0dWFsIH5TaGFwZSgpIHsKKyAgICBuc2hhcGVzLS07CisgIH07CisgIGRvdWJsZSAgeCwgeTsgICAKKyAgdm9pZCAgICBtb3ZlKGRvdWJsZSBkeCwgZG91YmxlIGR5KTsKKyAgdmlydHVhbCBkb3VibGUgYXJlYSgpID0gMDsKKyAgdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOworICBzdGF0aWMgIGludCBuc2hhcGVzOworfTsKKworY2xhc3MgQ2lyY2xlIDogcHVibGljIFNoYXBlIHsKK3ByaXZhdGU6CisgIGRvdWJsZSByYWRpdXM7CitwdWJsaWM6CisgIENpcmNsZShkb3VibGUgcikgOiByYWRpdXMocikgeyB9OworICB2aXJ0dWFsIGRvdWJsZSBhcmVhKCk7CisgIHZpcnR1YWwgZG91YmxlIHBlcmltZXRlcigpOworfTsKKworY2xhc3MgU3F1YXJlIDogcHVibGljIFNoYXBlIHsKK3ByaXZhdGU6CisgIGRvdWJsZSB3aWR0aDsKK3B1YmxpYzoKKyAgU3F1YXJlKGRvdWJsZSB3KSA6IHdpZHRoKHcpIHsgfTsKKyAgdmlydHVhbCBkb3VibGUgYXJlYSgpOworICB2aXJ0dWFsIGRvdWJsZSBwZXJpbWV0ZXIoKTsKK307Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPGgyPlRoZSBTV0lHIGludGVyZmFjZTwvaDI+CisKK0Egc2ltcGxlIFNXSUcgaW50ZXJmYWNlIGZvciB0aGlzIGNhbiBiZSBidWlsdCBieSBzaW1wbHkgZ3JhYmJpbmcgdGhlIGhlYWRlciBmaWxlCitsaWtlIHRoaXM6CisKKzxibG9ja3F1b3RlPgorPHByZT4KKy8qIEZpbGUgOiBleGFtcGxlLmkgKi8KKyVtb2R1bGUgZXhhbXBsZQorCisleworI2luY2x1ZGUgImV4YW1wbGUuaCIKKyV9CisKKy8qIExldCdzIGp1c3QgZ3JhYiB0aGUgb3JpZ2luYWwgaGVhZGVyIGZpbGUgaGVyZSAqLworJWluY2x1ZGUgImV4YW1wbGUuaCIKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCitOb3RlOiB3aGVuIGNyZWF0aW5nIGEgQysrIGV4dGVuc2lvbiwgeW91IG11c3QgcnVuIFNXSUcgd2l0aCB0aGUgPHR0Pi1jKys8L3R0PiBvcHRpb24gbGlrZSB0aGlzOgorPGJsb2NrcXVvdGU+Cis8cHJlPgorJSBzd2lnIC1jKysgLWphdmEgZXhhbXBsZS5pCis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPGgyPkEgc2FtcGxlIEphdmEgc2NyaXB0PC9oMj4KKworQ2xpY2sgPGEgaHJlZj0ibWFpbi5qYXZhIj5oZXJlPC9hPiB0byBzZWUgYSBzY3JpcHQgdGhhdCBjYWxscyB0aGUgQysrIGZ1bmN0aW9ucyBmcm9tIEphdmEuCisKKzxoMj5LZXkgcG9pbnRzPC9oMj4KKworPHVsPgorPGxpPlRvIGNyZWF0ZSBhIG5ldyBvYmplY3QsIHlvdSBjYWxsIGEgY29uc3RydWN0b3IgbGlrZSB0aGlzOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CitDaXJjbGUgYyA9IG5ldyBDaXJjbGUoMTApOworPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKKzxwPgorPGxpPlRvIGFjY2VzcyBtZW1iZXIgZGF0YSwgYSBwYWlyIG9mIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcmUgdXNlZC4KK0ZvciBleGFtcGxlOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CitjLnNldFgoMTUpOyAgICAgICAgLy8gU2V0IG1lbWJlciBkYXRhCit4ID0gYy5nZXRYKCk7ICAgICAgLy8gR2V0IG1lbWJlciBkYXRhCis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPHA+Cis8bGk+VG8gaW52b2tlIGEgbWVtYmVyIGZ1bmN0aW9uLCB5b3Ugc2ltcGx5IGRvIHRoaXMKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorU3lzdGVtLm91dC5wcmludGxuKCAiVGhlIGFyZWEgaXMgIiArIGMuYXJlYSgpICk7Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPHA+Cis8bGk+VG8gaW52b2tlIGEgZGVzdHJ1Y3Rvciwgc2ltcGx5IGRvIHRoaXMKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorYy5fZGVsZXRlKCk7ICAgICAvLyBEZWxldGVzIGEgc2hhcGUKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCis8cD4KKzxsaT5TdGF0aWMgbWVtYmVyIHZhcmlhYmxlcyBhcmUgd3JhcHBlZCB3aXRoIGphdmEgc3RhdGljIGdldCBhbmQgc2V0IGFjY2VzcyBmdW5jdGlvbnMuICBGb3IgZXhhbXBsZToKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorbiA9IFNoYXBlLmdldE5zaGFwZXMoKTsgICAgIC8vIEdldCBhIHN0YXRpYyBkYXRhIG1lbWJlcgorU2hhcGUuc2V0TnNoYXBlcygxMyk7ICAgICAgIC8vIFNldCBhIHN0YXRpYyBkYXRhIG1lbWJlcgorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKKzwvdWw+CisKKzxoMj5HZW5lcmFsIENvbW1lbnRzPC9oMj4KKworPHVsPgorPGxpPlRoaXMgaGlnaC1sZXZlbCBpbnRlcmZhY2UgdXNpbmcgc2hhZG93IGNsYXNzZXMgaXMgbm90IHRoZSBvbmx5IHdheSB0byBoYW5kbGUgQysrIGNvZGUuIAorQSBsb3cgbGV2ZWwgaW50ZXJmYWNlIHVzaW5nIGMgZnVuY3Rpb25zIHRvIGFjY2VzcyBtZW1iZXIgdmFyaWFibGVzIGFuZCBtZW1iZXIgZnVuY3Rpb25zIGlzIHRoZSBhbHRlcm5hdGl2ZSBTV0lHCithcHByb2FjaC4gVGhpcyBlbnRhaWxzIHBhc3NpbmcgYXJvdW5kIHRoZSBjIHBvaW50ZXIgb3IgYysrICd0aGlzJyBwb2ludGVyIGFuZCBhcyBzdWNoIGl0IGlzIG5vdCBkaWZmaWN1bHQgdG8gY3Jhc2ggdGhlIEpWTS4gCitUaGUgYWJzdHJhY3Rpb24gb2YgdGhlIHVuZGVybHlpbmcgcG9pbnRlciBieSB0aGUgamF2YSBzaGFkb3cgY2xhc3NlcyBmYXIgYmV0dGVyIGZpdHMgdGhlIGphdmEgcHJvZ3JhbW1pbmcgcGFyYWRpZ20uCisKKzxwPgorPGxpPlNXSUcgKmRvZXMqIGtub3cgaG93IHRvIHByb3Blcmx5IHBlcmZvcm0gdXBjYXN0aW5nIG9mIG9iamVjdHMgaW4gYW4gaW5oZXJpdGFuY2UKK2hpZXJhcmNoeSAoaW5jbHVkaW5nIG11bHRpcGxlIGluaGVyaXRhbmNlKS4gIEhvd2V2ZXIgSmF2YSBjbGFzc2VzIGNhbiBvbmx5IGRlcml2ZSBmcm9tIG9uZSBiYXNlIGNsYXNzIHNvIG11bHRpcGxlIGluaGVyaXRhbmNlCitpcyBub3QgaW1wbGVtZW50ZWQuIEphdmEgY2xhc3NlcyBjYW4gaW1wbGVtZW50IG1vcmUgdGhhbiBvbmUgaW50ZXJmYWNlIHNvIHRoZXJlIGlzIHNjb3BlIGZvciBpbXByb3ZlbWVudCBpbiB0aGUgZnV0dXJlLiAKKworPHA+Cis8bGk+QSB3aWRlIHZhcmlldHkgb2YgQysrIGZlYXR1cmVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCBieSBTV0lHLiAgSGVyZSBpcyB0aGUKK3Nob3J0IGFuZCBpbmNvbXBsZXRlIGxpc3Q6CisKKzxwPgorPHVsPgorPGxpPk92ZXJsb2FkZWQgbWV0aG9kcyBhbmQgZnVuY3Rpb25zLiAgU1dJRyB3cmFwcGVycyBkb24ndCBrbm93IGhvdyB0byByZXNvbHZlIG5hbWUKK2NvbmZsaWN0cyBzbyB5b3UgbXVzdCBnaXZlIGFuIGFsdGVybmF0aXZlIG5hbWUgdG8gYW55IG92ZXJsb2FkZWQgbWV0aG9kIG5hbWUgdXNpbmcgdGhlCislbmFtZSBkaXJlY3RpdmUgbGlrZSB0aGlzOgorCis8YmxvY2txdW90ZT4KKzxwcmU+Cit2b2lkIGZvbyhpbnQgYSk7ICAKKyVuYW1lKGZvbzIpIHZvaWQgZm9vKGRvdWJsZSBhLCBkb3VibGUgYik7Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPHA+Cis8bGk+T3ZlcmxvYWRlZCBvcGVyYXRvcnMuICBOb3Qgc3VwcG9ydGVkIGF0IGFsbC4gVGhlIG9ubHkgd29ya2Fyb3VuZCBmb3IgdGhpcyBpcwordG8gd3JpdGUgYSBoZWxwZXIgZnVuY3Rpb24uIEZvciBleGFtcGxlOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CislaW5saW5lICV7CisgICAgVmVjdG9yICp2ZWN0b3JfYWRkKFZlY3RvciAqYSwgVmVjdG9yICpiKSB7CisgICAgICAgICAgLi4uIHdoYXRldmVyIC4uLgorICAgIH0KKyV9Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPHA+Cis8bGk+TmFtZXNwYWNlcy4gIE5vdCBzdXBwb3J0ZWQgYXQgYWxsLiBXb24ndCBiZSBzdXBwb3J0ZWQgdW50aWwgU1dJRzIuMCAoaWYgYXQgYWxsKS4KKworPHA+Cis8bGk+VGVtcGxhdGVzLiAgTm90IHN1cHBvcnRlZCBhdCBhbGwuIFNXSUcgdGhyb3dzIG91dCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSB0ZW1wbGF0ZS4KK1lvdSBjYW4gd29yayBhcm91bmQgdGhlIHByb2JsZW0gYnkgYWxpYXNpbmcgYSB0ZW1wbGF0ZSBjbGFzcyBiZWhpbmQgYSB0eXBlZGVmIGhvd2V2ZXIuIAorRm9yIGV4YW1wbGU6CisKKzxibG9ja3F1b3RlPgorPHByZT4KKyV7Cit0eXBlZGVmIHZlY3RvcjxpbnQ+IEludFZlY3RvcjsKKyV9CisKK2NsYXNzIEludFZlY3RvciB7CitwdWJsaWM6CisgICAgLi4uIG1ldGhvZHMgLi4uCit9OworPC9wcmU+Cis8L2Jsb2NrcXVvdGU+Cis8L3VsPgorPHA+Cis8bGk+VGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYW4gZXh0cmVtZWx5IGNvbXBsZXggQysrIGFwcGxpY2F0aW9uIHdpbGwgYmUgYWJsZSB0byBjb21waWxlCithcyBhIEphdmEgZXh0ZW5zaW9uLiAgU29ycnkuCisKKzxwPgorCis8L3VsPgorCis8aHI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY2xhc3MvbWFpbi5qYXZhIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzL21haW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzEwM2YzCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2NsYXNzL21haW4uamF2YQpAQCAtMCwwICsxLDc2IEBACisvLyBmaWxlOiBtYWluLmphdmEKKworLy8gVGhpcyBmaWxlIGlsbHVzdHJhdGVzIHRoZSBoaWdoIGxldmVsIEMrKyBpbnRlcmZhY2UKKy8vIGNyZWF0ZWQgYnkgU1dJRy4gIFRoZSBqYXZhIGNsYXNzIGdldHMgbWFwcGVkIG9udG8gdGhlIGMrKyBjbGFzcworLy8gYW5kIGJlaGF2ZXMgYXMgaWYgaXQgaXMgYSBqYXZhIGNsYXNzLgorCitpbXBvcnQgZXhhbXBsZTsKKworcHVibGljIGNsYXNzIG1haW4geworICBzdGF0aWMgeworICAgIHRyeSB7CisgICAgICAgIFN5c3RlbS5sb2FkTGlicmFyeSgiZXhhbXBsZSIpOworICAgIH0gY2F0Y2ggKFVuc2F0aXNmaWVkTGlua0Vycm9yIGUpIHsKKyAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ2Fubm90IGxvYWQgdGhlIGV4YW1wbGUgbmF0aXZlIGNvZGUuXG5NYWtlIHN1cmUgeW91ciBMRF9MSUJSQVJZX1BBVEggY29udGFpbnMgXCcuXCdcbiIgKyBlKTsKKyAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIAorICB7CisgICAgLy8gLS0tLS0gT2JqZWN0IGNyZWF0aW9uIC0tLS0tCisgICAgCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ3JlYXRpbmcgc29tZSBvYmplY3RzOiIgKTsKKyAgICBDaXJjbGUgYyA9IG5ldyBDaXJjbGUoMTApOworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIiAgICBDcmVhdGVkIGNpcmNsZSAiICsgYyApOworICAgIFNxdWFyZSBzID0gbmV3IFNxdWFyZSgxMCk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgIENyZWF0ZWQgc3F1YXJlICIgKyBzICk7CisgICAgCisgICAgLy8gLS0tLS0gQWNjZXNzIGEgc3RhdGljIG1lbWJlciAtLS0tLQorICAgIAorICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIlxuLS0tLS0gU3RhdGljIG1lbWJlciB2YXJpYWJsZXMgYnJva2VuLiBVc2luZyBhIGdsb2JhbCB2YXJpYWJsZSBpbnN0ZWFkIC0tLS0tIiApOworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIlxuQSB0b3RhbCBvZiAiICsgZXhhbXBsZS5nZXRfbnNoYXBlcygpICsgIiBzaGFwZXMgd2VyZSBjcmVhdGVkIiApOworICAgIAorICAgIC8vIC0tLS0tIE1lbWJlciBkYXRhIGFjY2VzcyAtLS0tLQorICAgIAorICAgIC8vIE5vdGljZSBob3cgd2UgY2FuIGRvIHRoaXMgdXNpbmcgZnVuY3Rpb25zIHNwZWNpZmljIHRvCisgICAgLy8gdGhlICdDaXJjbGUnIGNsYXNzLgorICAgIGMuc2V0WCgyMCk7CisgICAgYy5zZXRZKDMwKTsKKyAgICAKKyAgICAvLyBOb3cgdXNlIHRoZSBzYW1lIGZ1bmN0aW9ucyBpbiB0aGUgYmFzZSBjbGFzcworICAgIFNoYXBlIHNoYXBlID0gczsKKyAgICBzaGFwZS5zZXRYKC0xMCk7CisgICAgc2hhcGUuc2V0WSg1KTsKKyAgICAKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJcbkhlcmUgaXMgdGhlaXIgY3VycmVudCBwb3NpdGlvbjoiICk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgIENpcmNsZSA9ICgiICsgYy5nZXRYKCkgKyAiICIgKyBjLmdldFkoKSArICIpIiApOworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIiAgICBTcXVhcmUgPSAoIiArIHMuZ2V0WCgpICsgIiAiICsgcy5nZXRZKCkgKyAiKSIgKTsKKyAgICAKKyAgICAvLyAtLS0tLSBDYWxsIHNvbWUgbWV0aG9kcyAtLS0tLQorICAgIAorICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIlxuSGVyZSBhcmUgc29tZSBwcm9wZXJ0aWVzIG9mIHRoZSBzaGFwZXM6IiApOworICAgIFNoYXBlW10gc2hhcGVzID0ge2Msc307CisgICAgZm9yIChpbnQgaT0wOyBpPHNoYXBlcy5sZW5ndGg7IGkrKykKKyAgICB7CisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgIiArIHNoYXBlc1tpXS50b1N0cmluZygpICk7CisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgICAgICBhcmVhICAgICAgPSAiICsgc2hhcGVzW2ldLmFyZWEoKSApOworICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIiAgICAgICAgcGVyaW1ldGVyID0gIiArIHNoYXBlc1tpXS5wZXJpbWV0ZXIoKSApOworICAgIH0KKyAgICAKKyAgICAvLyBOb3RpY2UgaG93IHRoZSBhcmVhKCkgYW5kIHBlcmltZXRlcigpIGZ1bmN0aW9ucyByZWFsbHkKKyAgICAvLyBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHZpcnR1YWwgbWV0aG9kIG9uIGVhY2ggb2JqZWN0LgorICAgIAorICAgIC8vIC0tLS0tIERlbGV0ZSBldmVyeXRoaW5nIC0tLS0tCisgICAgCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiXG5HdWVzcyBJJ2xsIGNsZWFuIHVwIG5vdyIgKTsKKyAgICAKKyAgICAvLyBOb3RlOiB0aGlzIGludm9rZXMgdGhlIHZpcnR1YWwgZGVzdHJ1Y3RvcgorICAgIC8vIFlvdSBjb3VsZCBsZWF2ZSB0aGlzIHRvIHRoZSBnYXJiYWdlIGNvbGxlY3RvcgorICAgIGMuX2RlbGV0ZSgpOworICAgIHMuX2RlbGV0ZSgpOworICAgIAorICAgIFN5c3RlbS5vdXQucHJpbnRsbiggZXhhbXBsZS5nZXRfbnNoYXBlcygpICsgIiBzaGFwZXMgcmVtYWluIiApOworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkdvb2RieWUiICk7CisgIH0KK30KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDA3MmY2Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2NvbnN0YW50cy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMyBAQAorKi5qYXZhCisqLmNsYXNzCitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2NvbnN0YW50cy9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE1NDc4YwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvTWFrZWZpbGUKQEAgLTAsMCArMSwyMCBAQAorVE9QICAgICAgICA9IC4uLy4uCitTV0lHICAgICAgID0gJChUT1ApLy4uL3N3aWcKK1NSQ1MgICAgICAgPSAKK1RBUkdFVCAgICAgPSBsaWJleGFtcGxlCitJTlRFUkZBQ0UgID0gZXhhbXBsZS5pCitTV0lHT1BUICAgID0gLXNoYWRvdworCithbGw6OglqYXZhCisKK2phdmE6OgorCSQoTUFLRSkgLWYgJChUT1ApL01ha2VmaWxlIFNSQ1M9JyQoU1JDUyknIFNXSUc9JyQoU1dJRyknIFwKKwlTV0lHT1BUPSckKFNXSUdPUFQpJyBUQVJHRVQ9JyQoVEFSR0VUKScgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIGphdmFfY3BwCisJamF2YWMgKi5qYXZhCisKK2NsZWFuOjoKKwltdiBtYWluLmphdmEgbWFpbi5qYXZhLnRtcAorCXJtIC1mICpfd3JhcCogKi5vIGNvcmUgKn4gKi5zbyAqLmNsYXNzICouamF2YSAKKwltdiBtYWluLmphdmEudG1wIG1haW4uamF2YQorCitjaGVjazogYWxsCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL2V4YW1wbGUuaSBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvZXhhbXBsZS5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YTFhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL2V4YW1wbGUuaQpAQCAtMCwwICsxLDI2IEBACisvKiBGaWxlIDogZXhhbXBsZS5pICovCislbW9kdWxlIGV4YW1wbGUKKworLyogQSBmZXcgcHJlcHJvY2Vzc29yIG1hY3JvcyAqLworCisjZGVmaW5lICAgIElDT05TVCAgICAgIDQyCisjZGVmaW5lICAgIEZDT05TVCAgICAgIDIuMTgyOAorI2RlZmluZSAgICBDQ09OU1QgICAgICAneCcKKyNkZWZpbmUgICAgQ0NPTlNUMiAgICAgJ1xuJworI2RlZmluZSAgICBTQ09OU1QgICAgICAiSGVsbG8gV29ybGQiCisjZGVmaW5lICAgIFNDT05TVDIgICAgICJcIkhlbGxvIFdvcmxkXCIiCisKKy8qIFRoaXMgc2hvdWxkIHdvcmsganVzdCBmaW5lICovCisjZGVmaW5lICAgIEVYUFIgICAgICAgIElDT05TVCArIDMqKEZDT05TVCkKKworLyogVGhpcyBzaG91bGRuJ3QgZG8gYW55dGhpbmcgKi8KKyNkZWZpbmUgICAgRVhURVJOICAgICAgZXh0ZXJuCisKKy8qIE5laXRoZXIgc2hvdWxkIHRoaXMgKEJBUiBpc24ndCBkZWZpbmVkKSAqLworI2RlZmluZSAgICBGT08gICAgICAgICAoSUNPTlNUICsgQkFSKQorCisvKiBUaGUgZm9sbG93aW5nIHN0YXRlbWVudHMgYWxzbyBwcm9kdWNlIGNvbnN0YW50cyAqLworY29uc3QgaW50ICAgICBpY29uc3QgPSAzNzsKK2NvbnN0IGRvdWJsZSAgZmNvbnN0ID0gMy4xNDsKKworCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL2luZGV4Lmh0bWwgYi9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkwYWNjNgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvaW5kZXguaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlNXSUc6RXhhbXBsZXM6amF2YTpjb25zdGFudHM8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KKworPHR0PlNXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvPC90dD4KKzxocj4KKworPEgyPldyYXBwaW5nIEMgQ29uc3RhbnRzPC9IMj4KKworPHR0PiRIZWFkZXIkPC90dD48YnI+CisKKzxwPgorV2hlbiBTV0lHIGVuY291bnRlcnMgQyBwcmVwcm9jZXNzb3IgbWFjcm9zIGFuZCBDIGRlY2xhcmF0aW9ucyB0aGF0IGxvb2sgbGlrZSBjb25zdGFudHMsCitpdCBjcmVhdGVzIEphdmEgY29uc3RhbnQgd2l0aCBhbiBpZGVudGljYWwgdmFsdWUuICBDbGljayA8YSBocmVmPSJleGFtcGxlLmkiPmhlcmU8L2E+Cit0byBzZWUgYSBTV0lHIGludGVyZmFjZSB3aXRoIHNvbWUgY29uc3RhbnQgZGVjbGFyYXRpb25zIGluIGl0LgorCis8aDI+QWNjZXNzaW5nIENvbnN0YW50cyBmcm9tIEphdmE8L2gyPgorCitDbGljayA8YSBocmVmPSJtYWluLmphdmEiPmhlcmU8L2E+IHRvIHNlZSBhIEphdmEgcHJvZ3JhbSB0aGF0IHByaW50cyBvdXQgdGhlIHZhbHVlcworb2YgdGhlIGNvbnN0YW50cyBjb250YWluZWQgaW4gdGhlIGFib3ZlIGZpbGUuCisKKzxoMj5LZXkgcG9pbnRzPC9oMj4KKworPHVsPgorPGxpPlRoZSB2YWx1ZXMgb2YgcHJlcHJvY2Vzc29yIG1hY3JvcyBhcmUgY29udmVydGVkIGludG8gSmF2YSBjb25zdGFudHMuCis8bGk+VHlwZXMgYXJlIGluZmVycmVkIGJ5IHN5bnRheCAoZS5nLiwgIjMiIGlzIGFuIGludGVnZXIgYW5kICIzLjUiIGlzIGEgZmxvYXQpLgorPGxpPkNoYXJhY3RlciBjb25zdGFudHMgc3VjaCBhcyAneCcgYXJlIGNvbnZlcnRlZCBpbnRvIEphdmEgc3RyaW5ncy4KKzxsaT5DIHN0cmluZyBsaXRlcmFscyBzdWNoIGFzICJIZWxsbyBXb3JsZCIgYXJlIGNvbnZlcnRlZCBpbnRvIEphdmEgc3RyaW5ncy4KKzxsaT5NYWNyb3MgdGhhdCBhcmUgbm90IGZ1bGx5IGRlZmluZWQgYXJlIHNpbXBseSBpZ25vcmVkLiAgRm9yIGV4YW1wbGU6Cis8YmxvY2txdW90ZT4KKzxwcmU+CisjZGVmaW5lIEVYVEVSTiBleHRlcm4KKzwvcHJlPgorPC9ibG9ja3F1b3RlPgoraXMgaWdub3JlZCBiZWNhdXNlIFNXSUcgaGFzIG5vIGlkZWEgd2hhdCB0eXBlIG9mIHZhcmlhYmxlIHRoaXMgd291bGQgYmUuCisKKzxwPgorPGxpPkV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIHByb3ZpZGVkIHRoYXQgYWxsIG9mIHRoZWlyIGNvbXBvbmVudHMgYXJlIGRlZmluZWQuIE90aGVyd2lzZSwgdGhlIGNvbnN0YW50IGlzIGlnbm9yZWQuCisKKzxsaT5DZXJ0YWluIEMgZGVjbGFyYXRpb25zIGludm9sdmluZyAnY29uc3QnIGFyZSBhbHNvIHR1cm5lZCBpbnRvIEphdmEgY29uc3RhbnRzLiAKKzxsaT5UaGUgY29uc3RhbnRzIHRoYXQgYXBwZWFyIGluIGEgU1dJRyBpbnRlcmZhY2UgZmlsZSBkbyBub3QgaGF2ZSB0byBhcHBlYXIgaW4gYW55IHNvcnQKK29mIG1hdGNoaW5nIEMgc291cmNlIGZpbGUgc2luY2UgdGhlIGNyZWF0aW9uIG9mIGEgY29uc3RhbnQgZG9lcyBub3QgcmVxdWlyZSBsaW5rYWdlCit0byBhIHN0b3JlZCB2YWx1ZSAoaS5lLiwgYSB2YWx1ZSBoZWxkIGluIGEgQyBnbG9iYWwgdmFyaWFibGUgb3IgbWVtb3J5IGxvY2F0aW9uKS4KKzwvdWw+CisKKzxocj4KKworCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL21haW4uamF2YSBiL1NXSUcvRXhhbXBsZXMvamF2YS9jb25zdGFudHMvbWFpbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNzkzZjQKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvY29uc3RhbnRzL21haW4uamF2YQpAQCAtMCwwICsxLDQ1IEBACitpbXBvcnQgZXhhbXBsZTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOworCitwdWJsaWMgY2xhc3MgbWFpbiB7CisgIHN0YXRpYyB7CisgICAgdHJ5IHsKKyAgICAgICAgU3lzdGVtLmxvYWRMaWJyYXJ5KCJleGFtcGxlIik7CisgICAgfSBjYXRjaCAoVW5zYXRpc2ZpZWRMaW5rRXJyb3IgZSkgeworICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYW5ub3QgbG9hZCB0aGUgZXhhbXBsZSBuYXRpdmUgY29kZS5cbk1ha2Ugc3VyZSB5b3VyIExEX0xJQlJBUllfUEFUSCBjb250YWlucyBcJy5cJ1xuIiArIGUpOworICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgCisgIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIklDT05TVCAgPSAiICsgZXhhbXBsZS5JQ09OU1QgKyAiIChzaG91bGQgYmUgNDIpIik7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJGQ09OU1QgID0gIiArIGV4YW1wbGUuRkNPTlNUICsgIiAoc2hvdWxkIGJlIDIuMTgyOCkiKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNDT05TVCAgPSAiICsgZXhhbXBsZS5DQ09OU1QgKyAiIChzaG91bGQgYmUgJ3gnKSIpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ0NPTlNUMiA9ICIgKyBleGFtcGxlLkNDT05TVDIgKyAiICh0aGlzIHNob3VsZCBiZSBvbiBhIG5ldyBsaW5lKSIpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU0NPTlNUICA9ICIgKyBleGFtcGxlLlNDT05TVCArICIgKHNob3VsZCBiZSAnSGVsbG8gV29ybGQnKSIpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU0NPTlNUMiA9ICIgKyBleGFtcGxlLlNDT05TVDIgKyAiIChzaG91bGQgYmUgJ1wiSGVsbG8gV29ybGRcIicpIik7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJFWFBSICAgID0gIiArIGV4YW1wbGUuRVhQUiArICAgIiAoc2hvdWxkIGJlIDQ4LjU0ODQpIik7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJpY29uc3QgID0gIiArIGV4YW1wbGUuaWNvbnN0ICsgIiAoc2hvdWxkIGJlIDM3KSIpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmNvbnN0ICA9ICIgKyBleGFtcGxlLmZjb25zdCArICIgKHNob3VsZCBiZSAzLjE0KSIpOworCisvLyBVc2UgcmVmbGVjdGlvbiB0byBjaGVjayBpZiB0aGVzZSB2YXJpYWJsZXMgYXJlIGRlZmluZWQ6CisgICAgdHJ5CisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVYVEVSTiA9ICIgKyBleGFtcGxlLmNsYXNzLmdldEZpZWxkKCJFWFRFUk4iKSArICIgKEFyZyEgVGhpcyBzaG91bGRuJ3QgcHJpbnQgYW55dGhpbmcpIik7CisgICAgfQorICAgIGNhdGNoIChOb1N1Y2hGaWVsZEV4Y2VwdGlvbiBlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFWFRFUk4gaXNuJ3QgZGVmaW5lZCAoZ29vZCkiKTsKKyAgICB9CisKKyAgICB0cnkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRk9PICAgID0gIiArIGV4YW1wbGUuY2xhc3MuZ2V0RmllbGQoIkZPTyIpICsgIiAoQXJnISBUaGlzIHNob3VsZG4ndCBwcmludCBhbnl0aGluZykiKTsKKyAgICB9CisgICAgY2F0Y2ggKE5vU3VjaEZpZWxkRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZPTyBpc24ndCBkZWZpbmVkIChnb29kKSIpOworICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQwNzJmNgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtLy5jdnNpZ25vcmUKQEAgLTAsMCArMSwzIEBACisqLmphdmEKKyouY2xhc3MKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NDk3NGYKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9NYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBACitUT1AgICAgICAgID0gLi4vLi4KK1NXSUcgICAgICAgPSAkKFRPUCkvLi4vc3dpZworU1JDUyAgICAgICA9IGV4YW1wbGUuY3h4CitUQVJHRVQgICAgID0gbGliZXhhbXBsZQorSU5URVJGQUNFICA9IGV4YW1wbGUuaQorU1dJR09QVCAgICA9IC1zaGFkb3cKKworYWxsOjoJamF2YQorCitqYXZhOjoKKwkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBTUkNTPSckKFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCisJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBqYXZhX2NwcAorCWphdmFjICouamF2YQorCitjbGVhbjo6CisJbXYgbWFpbi5qYXZhIG1haW4uamF2YS50bXAKKwlybSAtZiAqX3dyYXAqICoubyBjb3JlICp+ICouc28gKi5jbGFzcyAqLmphdmEgCisJbXYgbWFpbi5qYXZhLnRtcCBtYWluLmphdmEKKworY2hlY2s6IGFsbApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vZXhhbXBsZS5jeHggYi9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9leGFtcGxlLmN4eApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjdiYjYzCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vZXhhbXBsZS5jeHgKQEAgLTAsMCArMSwzNyBAQAorLyogRmlsZSA6IGV4YW1wbGUuY3h4ICovCisKKyNpbmNsdWRlICJleGFtcGxlLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKwordm9pZCBGb286OmVudW1fdGVzdChzcGVlZCBzKSB7CisgIGlmIChzID09IElNUFVMU0UpIHsKKyAgICBwcmludGYoIklNUFVMU0Ugc3BlZWRcbiIpOworICB9IGVsc2UgaWYgKHMgPT0gV0FSUCkgeworICAgIHByaW50ZigiV0FSUCBzcGVlZFxuIik7CisgIH0gZWxzZSBpZiAocyA9PSBMVURJQ1JPVVMpIHsKKyAgICBwcmludGYoIkxVRElDUk9VUyBzcGVlZFxuIik7CisgIH0gZWxzZSB7CisgICAgcHJpbnRmKCJVbmtub3duIHNwZWVkXG4iKTsKKyAgfQorfQorCit2b2lkIGVudW1fdGVzdChjb2xvciBjLCBGb286OnNwZWVkIHMpIHsKKyAgaWYgKGMgPT0gUkVEKSB7CisgICAgcHJpbnRmKCJjb2xvciA9IFJFRCwgIik7CisgIH0gZWxzZSBpZiAoYyA9PSBCTFVFKSB7CisgICAgcHJpbnRmKCJjb2xvciA9IEJMVUUsICIpOworICB9IGVsc2UgaWYgKGMgPT0gR1JFRU4pIHsKKyAgICBwcmludGYoImNvbG9yID0gR1JFRU4sICIpOworICB9IGVsc2UgeworICAgIHByaW50ZigiY29sb3IgPSBVbmtub3duIGNvbG9yISwgIik7CisgIH0KKyAgaWYgKHMgPT0gRm9vOjpJTVBVTFNFKSB7CisgICAgcHJpbnRmKCJzcGVlZCA9IElNUFVMU0Ugc3BlZWRcbiIpOworICB9IGVsc2UgaWYgKHMgPT0gRm9vOjpXQVJQKSB7CisgICAgcHJpbnRmKCJzcGVlZCA9IFdBUlAgc3BlZWRcbiIpOworICB9IGVsc2UgaWYgKHMgPT0gRm9vOjpMVURJQ1JPVVMpIHsKKyAgICBwcmludGYoInNwZWVkID0gTFVESUNST1VTIHNwZWVkXG4iKTsKKyAgfSBlbHNlIHsKKyAgICBwcmludGYoInNwZWVkID0gVW5rbm93biBzcGVlZCFcbiIpOworICB9Cit9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9leGFtcGxlLmggYi9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9leGFtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI1ZDYyYQotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL2V4YW1wbGUuaApAQCAtMCwwICsxLDEzIEBACisvKiBGaWxlIDogZXhhbXBsZS5oICovCisKK2VudW0gY29sb3IgeyBSRUQsIEJMVUUsIEdSRUVOIH07CisKK2NsYXNzIEZvbyB7CisgcHVibGljOgorICBGb28oKSB7IH0KKyAgZW51bSBzcGVlZCB7IElNUFVMU0UsIFdBUlAsIExVRElDUk9VUyB9OworICB2b2lkIGVudW1fdGVzdChzcGVlZCBzKTsKK307CisKK3ZvaWQgZW51bV90ZXN0KGNvbG9yIGMsIEZvbzo6c3BlZWQgcyk7CisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL2V4YW1wbGUuaSBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL2V4YW1wbGUuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Yzg3MzgyCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vZXhhbXBsZS5pCkBAIC0wLDAgKzEsMTMgQEAKKy8qIEZpbGUgOiBleGFtcGxlLmkgKi8KKyVtb2R1bGUgZXhhbXBsZQorCisleworI2luY2x1ZGUgImV4YW1wbGUuaCIKKyV9CisKKyVwcmFnbWEgbWFrZV9kZWZhdWx0CisKKy8qIExldCdzIGp1c3QgZ3JhYiB0aGUgb3JpZ2luYWwgaGVhZGVyIGZpbGUgaGVyZSAqLworCislaW5jbHVkZSAiZXhhbXBsZS5oIgorCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvZW51bS9pbmRleC5odG1sIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDgxMjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vaW5kZXguaHRtbApAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlNXSUc6RXhhbXBsZXM6amF2YTplbnVtPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKworPHR0PlNXSUcvRXhhbXBsZXMvamF2YS9lbnVtLzwvdHQ+Cis8aHI+CisKKzxIMj5XcmFwcGluZyBlbnVtZXJhdGlvbnM8L0gyPgorCis8dHQ+JEhlYWRlciQ8L3R0Pjxicj4KKworPHA+CitUaGlzIGV4YW1wbGUgdGVzdHMgU1dJRydzIGFiaWxpdHkgdG8gd3JhcCBlbnVtZXJhdGlvbnMuICBCeSBkZWZhdWx0LCBTV0lHCitjb252ZXJ0cyBlbnVtZXJhdGlvbiBzcGVjaWZpY2F0aW9ucyBpbnRvIGludGVnZXIgY29uc3RhbnRzLiAgRnVydGhlciB1c2UKK29mIGVudW1lcmF0ZWQgdHlwZXMgYXJlIGhhbmRsZWQgYXMgaW50ZWdlcnMuCisKKzx1bD4KKzxsaT48YSBocmVmPSJleGFtcGxlLmgiPmV4YW1wbGUuaDwvYT4uICBIZWFkZXIgZmlsZSBjb250YWluaW5nIHNvbWUgZW51bXMuCis8bGk+PGEgaHJlZj0iZXhhbXBsZS5pIj5leGFtcGxlLmk8L2E+LiAgSW50ZXJmYWNlIGZpbGUuCis8bGk+PGEgaHJlZj0ibWFpbi5qYXZhIj5tYWluLmphdmE8L2E+LiBTYW1wbGUgSmF2YSBwcm9ncmFtLgorPC91bD4KKworPGgyPk5vdGVzPC9oMj4KKworPHVsPgorPGxpPlNXSUcgYWxsb3dzIGFyYml0cmFyeSBpbnRlZ2VycyB0byBiZSBwYXNzZWQgYXMgZW51bSB2YWx1ZXMuICBIb3dldmVyLAordGhlIHJlc3VsdCBvZiBwYXNzaW5nIGFuIGludGVnZXIgbm90IGNvcnJlc3BvbmRpbmcgdG8gYW55IG9mIHRoZSB2YWx1ZXMKK3NwZWNpZmllZCBpbiB0aGUgPHR0PmVudW08L3R0PiBzcGVjaWZpY2F0aW9uIGlzIHVuZGVmaW5lZC4KKzwvdWw+CisKKzxocj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL21haW4uamF2YSBiL1NXSUcvRXhhbXBsZXMvamF2YS9lbnVtL21haW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTdlNTQyCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2VudW0vbWFpbi5qYXZhCkBAIC0wLDAgKzEsNDAgQEAKK2ltcG9ydCBleGFtcGxlOworCitwdWJsaWMgY2xhc3MgbWFpbiB7CisgIHN0YXRpYyB7CisgICAgdHJ5IHsKKyAgICAgICAgU3lzdGVtLmxvYWRMaWJyYXJ5KCJleGFtcGxlIik7CisgICAgfSBjYXRjaCAoVW5zYXRpc2ZpZWRMaW5rRXJyb3IgZSkgeworICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYW5ub3QgbG9hZCB0aGUgZXhhbXBsZSBuYXRpdmUgY29kZS5cbk1ha2Ugc3VyZSB5b3VyIExEX0xJQlJBUllfUEFUSCBjb250YWlucyBcJy5cJ1xuIiArIGUpOworICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgCisgIHsKKyAgICAvLyBQcmludCBvdXQgdGhlIHZhbHVlIG9mIHNvbWUgZW51bXMKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKiBjb2xvciAqKioiKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICBSRUQgICAgPSAiICsgZXhhbXBsZS5SRUQpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIEJMVUUgICA9ICIgKyBleGFtcGxlLkJMVUUpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIEdSRUVOICA9ICIgKyBleGFtcGxlLkdSRUVOKTsKKworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4qKiogRm9vOjpzcGVlZCAqKioiKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICBGb286OklNUFVMU0UgICA9ICIgKyBGb28uSU1QVUxTRSk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgRm9vOjpXQVJQICAgICAgPSAiICsgRm9vLldBUlApOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIEZvbzo6TFVESUNST1VTID0gIiArIEZvby5MVURJQ1JPVVMpOworCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblRlc3RpbmcgdXNlIG9mIGVudW1zIHdpdGggZnVuY3Rpb25zXG4iKTsKKworICAgIGV4YW1wbGUuZW51bV90ZXN0KGV4YW1wbGUuUkVELCBGb28uSU1QVUxTRSk7CisgICAgZXhhbXBsZS5lbnVtX3Rlc3QoZXhhbXBsZS5CTFVFLCBGb28uV0FSUCk7CisgICAgZXhhbXBsZS5lbnVtX3Rlc3QoZXhhbXBsZS5HUkVFTiwgRm9vLkxVRElDUk9VUyk7CisgICAgZXhhbXBsZS5lbnVtX3Rlc3QoMTIzNCw1Njc4KTsKKworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIlxuVGVzdGluZyB1c2Ugb2YgZW51bSB3aXRoIGNsYXNzIG1ldGhvZCIgKTsKKyAgICBGb28gZiA9IG5ldyBGb28oKTsKKworICAgIGYuZW51bV90ZXN0KEZvby5JTVBVTFNFKTsKKyAgICBmLmVudW1fdGVzdChGb28uV0FSUCk7CisgICAgZi5lbnVtX3Rlc3QoRm9vLkxVRElDUk9VUyk7CisgIH0KK30KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9pbmRleC5odG1sIGIvU1dJRy9FeGFtcGxlcy9qYXZhL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA4NDM2NwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9pbmRleC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U1dJRzpFeGFtcGxlczpqYXZhPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Cis8SDE+U1dJRyBKYXZhIEV4YW1wbGVzPC9IMT4KKworPHR0PiRIZWFkZXIkPC90dD48YnI+CisKKzxwPgorVGhlIGZvbGxvd2luZyBleGFtcGxlcyBpbGx1c3RyYXRlIHRoZSB1c2Ugb2YgU1dJRyB3aXRoIEphdmEuCisKKzx1bD4KKzxsaT48YSBocmVmPSJzaW1wbGUvaW5kZXguaHRtbCI+c2ltcGxlPC9hPi4gIEEgbWluaW1hbCBleGFtcGxlIHNob3dpbmcgaG93IFNXSUcgY2FuCitiZSB1c2VkIHRvIHdyYXAgYSBDIGZ1bmN0aW9uLCBhIGdsb2JhbCB2YXJpYWJsZSwgYW5kIGEgY29uc3RhbnQuCis8bGk+PGEgaHJlZj0ibmF0aXZlL2luZGV4Lmh0bWwiPm5hdGl2ZTwvYT4uIENvbXBhcmluZyB0aGUgbWFudWFsIGFuZCB0aGUgU1dJRyBhcHByb2FjaCB0byBjYWxsaW5nIG5hdGl2ZSBjb2RlLgorPGxpPjxhIGhyZWY9InR5cGVtYXAvaW5kZXguaHRtbCI+dHlwZW1hcDwvYT4uIE1vZGlmeWluZyB0aGUgSmF2YSBtb2R1bGUncyBkZWZhdWx0IGJlaGF2aW91ciBieSB1c2luZyB0eXBlbWFwcy4KKzxsaT48YSBocmVmPSJjb25zdGFudHMvaW5kZXguaHRtbCI+Y29uc3RhbnRzPC9hPi4gIFRoaXMgc2hvd3MgaG93IHByZXByb2Nlc3NvciBtYWNyb3MgYW5kCitjZXJ0YWluIEMgZGVjbGFyYXRpb25zIGFyZSB0dXJuZWQgaW50byBjb25zdGFudHMuCis8bGk+PGEgaHJlZj0iZW51bS9pbmRleC5odG1sIj5lbnVtPC9hPi4gV3JhcHBpbmcgZW51bWVyYXRpb25zLgorPGxpPjxhIGhyZWY9ImNsYXNzL2luZGV4Lmh0bWwiPmNsYXNzPC9hPi4gSG93IHRvIHdyYXAgYSBzaW1wbGUgQysrIGNsYXNzLgorPGxpPjxhIGhyZWY9InJlZmVyZW5jZS9pbmRleC5odG1sIj5yZWZlcmVuY2U8L2E+LiBDKysgcmVmZXJlbmNlcy4KKzwvdWw+CisKKzxoMj5SdW5uaW5nIHRoZSBleGFtcGxlczwvaDI+CitNb3N0IG9mIHRoZSBleGFtcGxlcyB3b3JrIGJ5IG1ha2luZyB0aGUgTWFrZWZpbGUgYmVmb3JlIGV4ZWN1dGluZyB0aGUgcHJvZ3JhbSBtYWluLmphdmEuIFRoZSBNYWtlZmlsZSB3aWxsIG91dHB1dCB0aGUgc3dpZyBnZW5lcmF0ZWQgSk5JIGMgY29kZSBhcyB3ZWxsIGFzIHRoZSBqYXZhIHdyYXBwZXIgY2xhc3Nlcy4gQWRkaXRpb25hbGx5IHRoZSBKTkkgYy9jKysgY29kZSBpcyBjb21waWxlZCBpbnRvIHRoZSBzaGFyZWQgb2JqZWN0IChkeW5hbWljIGxpbmsgbGlicmFyeSkgd2hpY2ggaXMgbmVlZGVkIGZvciBkeW5hbWljIGxpbmtpbmcgdG8gdGhlIG5hdGl2ZSBjb2RlLiBUaGUgTWFrZWZpbGVzIGFsc28gY29tcGlsZSB0aGUgamF2YSBmaWxlcyB1c2luZyBqYXZhYy4gCis8cD4KK0Vuc3VyZSB0aGF0IHRoZSBkeW5hbWljIGxpbmsgbGlicmFyeSBmaWxlIGlzIGluIHRoZSBhcHByb3ByaWF0ZSBwYXRoIGJlZm9yZSBleGVjdXRpbmcgdGhlIGphdmEgcHJvZ3JhbS4gRm9yIGV4YW1wbGUgaW4gdW5peCwgbGliZXhhbXBsZS5zbyBtdXN0IGJlIGluIHRoZSBMRF9MSUJSQVJZX1BBVEguIAorPHA+CitBbiBleGFtcGxlOgorPGJsb2NrcXVvdGU+Cis8cHJlPgorJCBtYWtlCiskIGV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9LiAja3NoIAorJCBqYXZhIG1haW4KKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorPHA+CisKKzwvdWw+CisKKzxoMj5Db21wYXRpYmlsaXR5PC9oMj4KKworVGhlIGV4YW1wbGVzIGhhdmUgYmVlbiBleHRlbnNpdmVseSB0ZXN0ZWQgb24gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXM6CisKKzx1bD4KKzxsaT5Tb2xhcmlzCis8L3VsPgorCitBbGwgb2YgdGhlIGV4YW1wbGVzIHdlcmUgbGFzdCB0ZXN0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gKDI4IE1heSAyMDAxKToKKworPHVsPgorPGxpPlNwYXJjIFNvbGFyaXMgMi42LgorPGxpPmdjYy0yLjk1LjIKKzxsaT5KYXZhIGpkazEuMi4xCis8L3VsPgorCitZb3VyIG1pbGVhZ2UgbWF5IHZhcnkuICBJZiB5b3UgZXhwZXJpZW5jZSBhIHByb2JsZW0sIHBsZWFzZSBsZXQgdXMga25vdyBieSAKK3NlbmRpbmcgYSBtZXNzYWdlIHRvIDxhIGhyZWY9Im1haWx0bzpzd2lnLWRldkBjcy51Y2hpY2Fnby5lZHUiPnN3aWctZGV2QGNzLnVjaGljYWdvLmVkdTwvYT4uCis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NTI3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSw0IEBACisqLmNsYXNzCisqLmphdmEKK2V4YW1wbGVfd3JhcC5jCisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9uYXRpdmUvTWFrZWZpbGUgYi9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlL01ha2VmaWxlCmluZGV4IDFiZDVkZGQuLmZhY2FjNmUgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvamF2YS9uYXRpdmUvTWFrZWZpbGUKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9NYWtlZmlsZQpAQCAtMSwxNSArMSwxNiBAQAogVE9QICAgICAgICA9IC4uLy4uCiBTV0lHICAgICAgID0gJChUT1ApLy4uL3N3aWcKLVNXSUdPUFQgICAgPQogU1JDUyAgICAgICA9IAogVEFSR0VUICAgICA9IGxpYmV4YW1wbGUKIElOVEVSRkFDRSAgPSBleGFtcGxlLmkKK1NXSUdPUFQgICAgPQogCiBhbGw6OglqYXZhCiAKIGphdmE6OgogCSQoTUFLRSkgLWYgJChUT1ApL01ha2VmaWxlIFNSQ1M9JyQoU1JDUyknIFNXSUc9JyQoU1dJRyknIFwKIAlTV0lHT1BUPSckKFNXSUdPUFQpJyBUQVJHRVQ9JyQoVEFSR0VUKScgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIGphdmEKKwlqYXZhYyAqLmphdmEKIAogY2xlYW46OgogCXJtIC1mICpfd3JhcCogZXhhbXBsZS5qYXZhICouY2xhc3MgKi5vICp+IC5+KiBjb3JlICouc28gKi5zbCBzb19sb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9uYXRpdmUvUkVBRE1FIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNWJiY2QuLjAwMDAwMDAKLS0tIGEvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXR5cGU6Ci1tYWtlCi1qYXZhYyAqLmphdmEKLWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9LiAjIHNoCi1zZXRlbnYgTERfTElCUkFSWV9QQVRIIC4gIyBjc2gKLWphdmEgbWFpbgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9leGFtcGxlLmkgYi9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlL2V4YW1wbGUuaQppbmRleCAzMzFhMjI2Li5kY2JlMTQ5IDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlL2V4YW1wbGUuaQorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlL2V4YW1wbGUuaQpAQCAtMjAsMTEgKzIwLDExIEBACiAKIC8qIHRoaXMgZnVuY3Rpb24gd2lsbCBiZSB3cmFwcGVkIGJ5IGpzd2lnICovCiBjaGFyICpwb2ludF90b1N0cmluZzEoUG9pbnQgKnApIHsKLSAgY2hhciBidWZbODBdOworICBzdGF0aWMgY2hhciBidWZbODBdOwogCiAgIHNwcmludGYoYnVmLCAiKCVkLCVkKSIsIHAtPngsIHAtPnkpOwogCi0gIHJldHVybiBzdHJkdXAoYnVmKTsgLyogbWVtb3J5IGxlYWsgKi8KKyAgcmV0dXJuIGJ1ZjsKIH0KIAogLyogdGhpcyBvbmUgd2Ugd3JhcHBlZCBtYW51YWxseSovCkBAIC00NSwxMCArNDUsOCBAQAogCiBQb2ludCAqcG9pbnRfY3JlYXRlKGludCB4LCBpbnQgeSk7CiBjaGFyICpwb2ludF90b1N0cmluZzEoUG9pbnQgKnApOwotLyoKLSAgVXNlICVuZXcgdG8gZnJlZSB0aGUgbWVtb3J5IHJldHVybmVkIGJ5IHBvaW50X3RvU3RyaW5nMQogCi0gICVuZXcgY2hhciAqcG9pbnRfdG9TdHJpbmcxKFBvaW50ICpwKTsKLSovCisvKiBnaXZlIGFjY2VzcyB0byBmcmVlKCkgZm9yIG1lbW9yeSBjbGVhbnVwIG9mIHRoZSBtYWxsb2MnZCBQb2ludCAqLworZXh0ZXJuIHZvaWQgZnJlZSh2b2lkICptZW1ibG9jayk7CiAKICVuYXRpdmUocG9pbnRfdG9TdHJpbmcyKSBjaGFyICpwb2ludF90b1N0cmluZzIoUG9pbnQgKnApOwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9pbmRleC5odG1sIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NDJkNzQKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvbmF0aXZlL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5TV0lHOkV4YW1wbGVzOmphdmE6bmF0aXZlPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKworPHR0PlNXSUcvRXhhbXBsZXMvamF2YS9uYXRpdmUvPC90dD4KKzxocj4KKworPEgyPlNXSUcgd3JhcHBlZCBhbmQgbWFudWFsbHkgd3JhcHBlZCBmdW5jdGlvbnMgaW4gSmF2YTwvSDI+CisKKzx0dD4kSGVhZGVyJDwvdHQ+PGJyPgorCis8cD4KK1RoaXMgZXhhbXBsZSBjb21wYXJlcyB3cmFwcGluZyBhIGMgZ2xvYmFsIGZ1bmN0aW9uIHVzaW5nIHRoZSBtYW51YWwgd2F5IGFuZCB0aGUgU1dJRyB3YXkuCisKKzx1bD4KKzxsaT48YSBocmVmPSJleGFtcGxlLmkiPmV4YW1wbGUuaTwvYT4uIEludGVyZmFjZSBmaWxlIGNvbXBhcmluZyBjb2RlIHdyYXBwZWQgYnkgU1dJRyBhbmQgd3JhcHBlZCBtYW51YWxseS4gCis8bGk+PGEgaHJlZj0ibWFpbi5qYXZhIj5tYWluLmphdmE8L2E+LiBTYW1wbGUgSmF2YSBwcm9ncmFtIHNob3dpbmcgY2FsbHMgdG8gYm90aCBtYW51YWxseSB3cmFwcGVkIGFuZCBTV0lHIHdyYXBwZWQgYyBmdW5jdGlvbnMuCis8L3VsPgorCis8aDI+Tm90ZXM8L2gyPgorCis8dWw+Cis8bGk+U1dJRyB3cml0ZXMgYWxsIHRoZSBhd2t3YXJkIEpOSSBjb2RlIGZvciB5b3UuIFlvdSBqdXN0IGhhdmUgdG8gdGVsbCBTV0lHIHdoaWNoIGZ1bmN0aW9ucyB0byB3cmFwLgorPGxpPklmIG1lbW9yeSBpcyBhbGxvY2F0ZWQgaW4gYyBpdCBuZWVkcyB0byBiZSBmcmVlJ2QuIEEgZnVuY3Rpb24sIHN1Y2ggYXMgZnJlZSgpLCBjYW4gYmUgcHJvdmlkZWQgd2l0aCBhY2Nlc3MgZnJvbSBKYXZhIHRvIGZyZWUgdGhlIG1lbW9yeS4KKzwvdWw+CisKKzxocj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9uYXRpdmUvbWFpbi5qYXZhIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9tYWluLmphdmEKaW5kZXggNDQ0ZDUzYi4uNzg0NDhmMSAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9tYWluLmphdmEKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL25hdGl2ZS9tYWluLmphdmEKQEAgLTE1LDUgKzE1LDYgQEAKICAgICBsb25nIHAgPSBleGFtcGxlLnBvaW50X2NyZWF0ZSgxLCAyKTsKICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImF1dG8gd3JhcHBlZCAgOiAiICsgZXhhbXBsZS5wb2ludF90b1N0cmluZzEocCkpOwogICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWFudWFsIHdyYXBwZWQ6ICIgKyBleGFtcGxlLnBvaW50X3RvU3RyaW5nMihwKSk7CisgICAgZXhhbXBsZS5mcmVlKHApOyAvL2NsZWFuIHVwIGMgYWxsb2NhdGVkIG1lbW9yeQogICB9CiB9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQwNzJmNgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvLmN2c2lnbm9yZQpAQCAtMCwwICsxLDMgQEAKKyouamF2YQorKi5jbGFzcworZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvTWFrZWZpbGUgYi9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NDk3NGYKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlL01ha2VmaWxlCkBAIC0wLDAgKzEsMjAgQEAKK1RPUCAgICAgICAgPSAuLi8uLgorU1dJRyAgICAgICA9ICQoVE9QKS8uLi9zd2lnCitTUkNTICAgICAgID0gZXhhbXBsZS5jeHgKK1RBUkdFVCAgICAgPSBsaWJleGFtcGxlCitJTlRFUkZBQ0UgID0gZXhhbXBsZS5pCitTV0lHT1BUICAgID0gLXNoYWRvdworCithbGw6OglqYXZhCisKK2phdmE6OgorCSQoTUFLRSkgLWYgJChUT1ApL01ha2VmaWxlIFNSQ1M9JyQoU1JDUyknIFNXSUc9JyQoU1dJRyknIFwKKwlTV0lHT1BUPSckKFNXSUdPUFQpJyBUQVJHRVQ9JyQoVEFSR0VUKScgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIGphdmFfY3BwCisJamF2YWMgKi5qYXZhCisKK2NsZWFuOjoKKwltdiBtYWluLmphdmEgbWFpbi5qYXZhLnRtcAorCXJtIC1mICpfd3JhcCogKi5vIGNvcmUgKn4gKi5zbyAqLmNsYXNzICouamF2YSAKKwltdiBtYWluLmphdmEudG1wIG1haW4uamF2YQorCitjaGVjazogYWxsCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlL2V4YW1wbGUuY3h4IGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9leGFtcGxlLmN4eApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODRlNDBiCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9leGFtcGxlLmN4eApAQCAtMCwwICsxLDQxIEBACisvKiBGaWxlIDogZXhhbXBsZS5jeHggKi8KKworI2luY2x1ZGUgImV4YW1wbGUuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitWZWN0b3Igb3BlcmF0b3IrKGNvbnN0IFZlY3RvciAmYSwgY29uc3QgVmVjdG9yICZiKSB7CisgIFZlY3RvciByOworICByLnggPSBhLnggKyBiLng7CisgIHIueSA9IGEueSArIGIueTsKKyAgci56ID0gYS56ICsgYi56OworICByZXR1cm4gcjsKK30KKworY2hhciAqVmVjdG9yOjpwcmludCgpIHsKKyAgc3RhdGljIGNoYXIgdGVtcFs1MTJdOworICBzcHJpbnRmKHRlbXAsIlZlY3RvciAleCAoJWcsJWcsJWcpIiwgdGhpcywgeCx5LHopOworICByZXR1cm4gdGVtcDsKK30KKworVmVjdG9yQXJyYXk6OlZlY3RvckFycmF5KGludCBzaXplKSB7CisgIGl0ZW1zID0gbmV3IFZlY3RvcltzaXplXTsKKyAgbWF4c2l6ZSA9IHNpemU7Cit9CisKK1ZlY3RvckFycmF5Ojp+VmVjdG9yQXJyYXkoKSB7CisgIGRlbGV0ZSBbXSBpdGVtczsKK30KKworVmVjdG9yICZWZWN0b3JBcnJheTo6b3BlcmF0b3JbXShpbnQgaW5kZXgpIHsKKyAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBtYXhzaXplKSkgeworICAgIHByaW50ZigiUGFuaWMhIEFycmF5IGluZGV4IG91dCBvZiBib3VuZHMuXG4iKTsKKyAgICBleGl0KDEpOworICB9CisgIHJldHVybiBpdGVtc1tpbmRleF07Cit9CisKK2ludCBWZWN0b3JBcnJheTo6c2l6ZSgpIHsKKyAgcmV0dXJuIG1heHNpemU7Cit9CisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvZXhhbXBsZS5oIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9leGFtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkxNWFkYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvZXhhbXBsZS5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qIEZpbGUgOiBleGFtcGxlLmggKi8KKworY2xhc3MgVmVjdG9yIHsKK3ByaXZhdGU6CisgIGRvdWJsZSB4LHksejsKK3B1YmxpYzoKKyAgVmVjdG9yKCkgOiB4KDApLCB5KDApLCB6KDApIHsgfTsKKyAgVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopIDogeCh4KSwgeSh5KSwgeih6KSB7IH07CisgIGZyaWVuZCBWZWN0b3Igb3BlcmF0b3IrKGNvbnN0IFZlY3RvciAmYSwgY29uc3QgVmVjdG9yICZiKTsKKyAgY2hhciAqcHJpbnQoKTsKK307CisKK2NsYXNzIFZlY3RvckFycmF5IHsKK3ByaXZhdGU6CisgIFZlY3RvciAqaXRlbXM7CisgIGludCAgICAgbWF4c2l6ZTsKK3B1YmxpYzoKKyAgVmVjdG9yQXJyYXkoaW50IG1heHNpemUpOworICB+VmVjdG9yQXJyYXkoKTsKKyAgVmVjdG9yICZvcGVyYXRvcltdKGludCk7CisgIGludCBzaXplKCk7Cit9OworCisKKworICAKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvZXhhbXBsZS5pIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9leGFtcGxlLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUzODMyNgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9yZWZlcmVuY2UvZXhhbXBsZS5pCkBAIC0wLDAgKzEsNDYgQEAKKy8qIEZpbGUgOiBleGFtcGxlLmkgKi8KKworLyogVGhpcyBmaWxlIGhhcyBhIGZldyAidHlwaWNhbCIgdXNlcyBvZiBDKysgcmVmZXJlbmNlcy4gKi8KKworJW1vZHVsZSBleGFtcGxlCisKKyV7CisjaW5jbHVkZSAiZXhhbXBsZS5oIgorJX0KKworY2xhc3MgVmVjdG9yIHsKK3B1YmxpYzoKKyAgICBWZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeik7CisgICB+VmVjdG9yKCk7CisgICAgY2hhciAqcHJpbnQoKTsKK307CisKKy8qIFRoaXMgaGVscGVyIGZ1bmN0aW9uIGNhbGxzIGFuIG92ZXJsb2FkZWQgb3BlcmF0b3IgKi8KKyVpbmxpbmUgJXsKK1ZlY3RvciBhZGR2KFZlY3RvciAmYSwgVmVjdG9yICZiKSB7CisgIHJldHVybiBhK2I7Cit9CislfQorCisvKiBXcmFwcGVyIGFyb3VuZCBhbiBhcnJheSBvZiB2ZWN0b3JzIGNsYXNzICovCisKK2NsYXNzIFZlY3RvckFycmF5IHsKK3B1YmxpYzoKKyAgVmVjdG9yQXJyYXkoaW50IG1heHNpemUpOworICB+VmVjdG9yQXJyYXkoKTsKKyAgaW50IHNpemUoKTsKKyAgCisgIC8qIFRoaXMgd3JhcHBlciBwcm92aWRlcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgW10gb3BlcmF0b3IgKi8KKyAgJWFkZG1ldGhvZHMgeworICAgIFZlY3RvciAmZ2V0KGludCBpbmRleCkgeworICAgICAgcmV0dXJuICgqc2VsZilbaW5kZXhdOworICAgIH0KKyAgICB2b2lkIHNldChpbnQgaW5kZXgsIFZlY3RvciAmYSkgeworICAgICAgKCpzZWxmKVtpbmRleF0gPSBhOworICAgIH0KKyAgfQorfTsKKworCisKKwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9pbmRleC5odG1sIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMzViYTIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U1dJRzpFeGFtcGxlczpqYXZhOnJlZmVyZW5jZTwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgorCisKKzx0dD5TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlLzwvdHQ+Cis8aHI+CisKKzxIMj5DKysgUmVmZXJlbmNlIEhhbmRsaW5nPC9IMj4KKworPHR0PiRIZWFkZXIkPC90dD48YnI+CisKKzxwPgorVGhpcyBleGFtcGxlIHRlc3RzIFNXSUcncyBoYW5kbGluZyBvZiBDKysgcmVmZXJlbmNlcy4gIFNpbmNlIEMrKworcmVmZXJlbmNlcyBhcmUgY2xvc2VseSByZWxhdGVkIHRvIHBvaW50ZXJzIChhcyBib3RoIHJlZmVyIHRvIGEKK2xvY2F0aW9uIGluIG1lbW9yeSksIFNXSUcgc2ltcGx5IGNvbGxhcHNlcyBhbGwgcmVmZXJlbmNlcyBpbnRvCitwb2ludGVycyB3aGVuIGNyZWF0aW5nIHdyYXBwZXJzLgorCis8aDI+U29tZSBleGFtcGxlczwvaDI+CisKK1JlZmVyZW5jZXMgYXJlIG1vc3QgY29tbW9ubHkgdXNlZCBhcyBmdW5jdGlvbiBwYXJhbWV0ZXIuICBGb3IgZXhhbXBsZSwKK3lvdSBtaWdodCBoYXZlIGFuIG9wZXJhdG9yIGxpa2UgdGhpczoKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorVmVjdG9yIG9wZXJhdG9yKyhjb25zdCBWZWN0b3IgJmEsIGNvbnN0IFZlY3RvciAmYikgeworICAgVmVjdG9yIHJlc3VsdDsKKyAgIHJlc3VsdC54ID0gYS54ICsgYi54OworICAgcmVzdWx0LnkgPSBhLnkgKyBiLnk7CisgICByZXN1bHQueiA9IGEueiArIGIuejsKKyAgIHJldHVybiByZXN1bHQ7Cit9Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworb3IgYSBmdW5jdGlvbjoKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorVmVjdG9yIGFkZHYoY29uc3QgVmVjdG9yICZhLCBjb25zdCBWZWN0b3IgJmIpIHsKKyAgIFZlY3RvciByZXN1bHQ7CisgICByZXN1bHQueCA9IGEueCArIGIueDsKKyAgIHJlc3VsdC55ID0gYS55ICsgYi55OworICAgcmVzdWx0LnogPSBhLnogKyBiLno7CisgICByZXR1cm4gcmVzdWx0OworfQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKK0luIHRoZXNlIGNhc2VzLCBTV0lHIHRyYW5zZm9ybXMgZXZlcnl0aGluZyBpbnRvIGEgcG9pbnRlciBhbmQgY3JlYXRlcyBhIHdyYXBwZXIKK3RoYXQgbG9va3MgbGlrZSB0aGlzOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CitWZWN0b3Igd3JhcF9hZGR2KFZlY3RvciAqYSwgVmVjdG9yICpiKSB7CisgICAgcmV0dXJuIGFkZHYoKmEsKmIpOworfQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKK09jY2FzaW9uYWxseSwgYSByZWZlcmVuY2UgaXMgdXNlZCBhcyBhIHJldHVybiB2YWx1ZSBvZiBhIGZ1bmN0aW9uCit3aGVuIHRoZSByZXR1cm4gcmVzdWx0IGlzIHRvIGJlIHVzZWQgYXMgYW4gbHZhbHVlIGluIGFuIGV4cHJlc3Npb24uCitUaGUgcHJvdG90eXBpY2FsIGV4YW1wbGUgaXMgYW4gb3BlcmF0b3IgbGlrZSB0aGlzOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CitWZWN0b3IgJm9wZXJhdG9yW10oaW50IGluZGV4KTsKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCitvciBhIG1ldGhvZDoKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorVmVjdG9yICZnZXQoaW50IGluZGV4KTsKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCitGb3IgZnVuY3Rpb25zIHJldHVybmluZyByZWZlcmVuY2VzLCBhIHdyYXBwZXIgbGlrZSB0aGlzIGlzIGNyZWF0ZWQ6CisKKzxibG9ja3F1b3RlPgorPHByZT4KK1ZlY3RvciAqd3JhcF9PYmplY3RfZ2V0KE9iamVjdCAqc2VsZiwgaW50IGluZGV4KSB7CisgICAgVmVjdG9yICZyZXN1bHQgPSBzZWxmLT5nZXQoaW5kZXgpOworICAgIHJldHVybiAmcmVzdWx0OworfQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKK1RoZSBmb2xsb3dpbmcgPGEgaHJlZj0iZXhhbXBsZS5oIj5oZWFkZXIgZmlsZTwvYT4gY29udGFpbnMgc29tZSBjbGFzcworZGVmaW5pdGlvbnMgd2l0aCBzb21lIG9wZXJhdG9ycyBhbmQgdXNlIG9mIHJlZmVyZW5jZXMuCisKKzxoMj5TV0lHIEludGVyZmFjZTwvaDI+CisKK1NXSUcgZG9lcyBOT1Qgc3VwcG9ydCBvdmVybG9hZGVkIG9wZXJhdG9ycyBzbyBpdCBjYW4gbm90IGRpcmVjdGx5IGJ1aWxkCithbiBpbnRlcmZhY2UgdG8gdGhlIGNsYXNzZXMgaW4gdGhlIGFib3ZlIGZpbGUuICAgSG93ZXZlciwgYSBudW1iZXIgb2Ygd29ya2Fyb3VuZHMKK2NhbiBiZSBtYWRlLiAgRm9yIGV4YW1wbGUsIGFuIG92ZXJsb2FkZWQgb3BlcmF0b3IgY2FuIGJlIHN0dWNrIGJlaGluZCBhIGZ1bmN0aW9uCitjYWxsIHN1Y2ggYXMgdGhlIDx0dD5hZGR2KCk8L3R0PiBmdW5jdGlvbiBhYm92ZS4gIEFycmF5IGFjY2VzcyBjYW4gYmUgaGFuZGxlZAord2l0aCBhIHBhaXIgb2Ygc2V0L2dldCBmdW5jdGlvbnMgbGlrZSB0aGlzOgorCis8YmxvY2txdW90ZT4KKzxwcmU+CitjbGFzcyBWZWN0b3JBcnJheSB7CitwdWJsaWM6CisgLi4uCisgICAlYWRkbWV0aG9kcyB7CisgICAgVmVjdG9yICZnZXQoaW50IGluZGV4KSB7CisgICAgICByZXR1cm4gKCpzZWxmKVtpbmRleF07CisgICAgfQorICAgIHZvaWQgc2V0KGludCBpbmRleCwgVmVjdG9yICZhKSB7CisgICAgICAoKnNlbGYpW2luZGV4XSA9IGE7CisgICAgfQorICAgfQorICAgLi4uCit9Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworQ2xpY2sgPGEgaHJlZj0iZXhhbXBsZS5pIj5oZXJlPC9hPiB0byBzZWUgYSBTV0lHIGludGVyZmFjZSBmaWxlIHdpdGggdGhlc2UgYWRkaXRpb25zLgorCis8aDI+U2FtcGxlIEphdmEgc2NyaXB0PC9oMj4KKworQ2xpY2sgPGEgaHJlZj0ibWFpbi5qYXZhIj5oZXJlPC9hPiB0byBzZWUgYSBzY3JpcHQgdGhhdCBtYW5pcHVsYXRlcyBzb21lIEMrKyByZWZlcmVuY2VzLgorCis8aDI+Tm90ZXM6PC9oMj4KKworPHVsPgorPGxpPkMrKyByZWZlcmVuY2VzIHByaW1hcmlseSBwcm92aWRlIG5vdGF0aW9uYWwgY29udmVuaWVuY2UgZm9yIEMrKworc291cmNlIGNvZGUuICBIb3dldmVyLCBKYXZhIG9ubHkgc3VwcG9ydHMgdGhlICd4LmEnIAorbm90YXRpb24gc28gaXQgZG9lc24ndCBtdWNoIG1hdHRlci4KKworPHA+Cis8bGk+V2hlbiBhIHByb2dyYW0gcmV0dXJucyBhIHJlZmVyZW5jZSwgYSBwb2ludGVyIGlzIHJldHVybmVkLgorVW5saWtlIHJldHVybiBieSB2YWx1ZSwgbWVtb3J5IGlzIG5vdCBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUKK3JldHVybiByZXN1bHQuCisKKzxwPgorPGxpPlNXSUcgaGFzIHBhcnRpY3VsYXIgdHJvdWJsZSBoYW5kbGluZyB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiByZWZlcmVuY2VzCithbmQgcG9pbnRlcnMuICBUaGlzIGlzIHNpZGUgZWZmZWN0IG9mIGFuIG9sZCBwYXJzaW5nIHNjaGVtZSBhbmQKK3R5cGUgcmVwcmVzZW50YXRpb24gdGhhdCB3aWxsIGJlIHJlcGxhY2VkIGluIGZ1dHVyZSB2ZXJzaW9ucy4KKworPC91bD4KKworPGhyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9tYWluLmphdmEgYi9TV0lHL0V4YW1wbGVzL2phdmEvcmVmZXJlbmNlL21haW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWNhNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3JlZmVyZW5jZS9tYWluLmphdmEKQEAgLTAsMCArMSw5MSBAQAorLy8gZmlsZTogbWFpbi5qYXZhCisKKy8vIFRoaXMgZmlsZSBpbGx1c3RyYXRlcyB0aGUgbWFuaXB1bGF0aW9uIG9mIEMrKyByZWZlcmVuY2VzIGluIEphdmEuCisKK2ltcG9ydCBleGFtcGxlOworCitwdWJsaWMgY2xhc3MgbWFpbiB7CisgIHN0YXRpYyB7CisgICAgdHJ5IHsKKyAgICAgICAgU3lzdGVtLmxvYWRMaWJyYXJ5KCJleGFtcGxlIik7CisgICAgfSBjYXRjaCAoVW5zYXRpc2ZpZWRMaW5rRXJyb3IgZSkgeworICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDYW5ub3QgbG9hZCB0aGUgZXhhbXBsZSBuYXRpdmUgY29kZS5cbk1ha2Ugc3VyZSB5b3VyIExEX0xJQlJBUllfUEFUSCBjb250YWlucyBcJy5cJ1xuIiArIGUpOworICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgCisgIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDcmVhdGluZyBzb21lIG9iamVjdHM6IiApOworICAgIFZlY3RvciBhID0gbmV3IFZlY3RvcigzLDQsNSk7CisgICAgVmVjdG9yIGIgPSBuZXcgVmVjdG9yKDEwLDExLDEyKTsKKyAgICAKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICIgICAgQ3JlYXRlZCAiICsgYS5wcmludCgpICk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgIENyZWF0ZWQgIiArIGIucHJpbnQoKSApOworICAgIAorICAgIC8vIC0tLS0tIENhbGwgYW4gb3ZlcmxvYWRlZCBvcGVyYXRvciAtLS0tLQorICAgIAorICAgIC8vIFRoaXMgY2FsbHMgdGhlIHdyYXBwZXIgd2UgcGxhY2VkIGFyb3VuZAorICAgIC8vCisgICAgLy8gICAgICBvcGVyYXRvcisoY29uc3QgVmVjdG9yICZhLCBjb25zdCBWZWN0b3IgJikgCisgICAgLy8KKyAgICAvLyBJdCByZXR1cm5zIGEgbmV3IGFsbG9jYXRlZCBvYmplY3QuCisgICAgCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQWRkaW5nIGErYiIgKTsKKyAgICBWZWN0b3IgYyA9IG5ldyBWZWN0b3IgKGV4YW1wbGUuYWRkdihhLmdldENQdHIoKSxiLmdldENQdHIoKSksIGZhbHNlKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICIgICAgYStiID0gIiArIGMucHJpbnQoKSApOworICAgIAorICAgIC8vIE5vdGU6IFVubGVzcyB3ZSBmcmVlIHRoZSByZXN1bHQsIGEgbWVtb3J5IGxlYWsgd2lsbCBvY2N1cgorICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB3ZSB1c2VkICdmYWxzZScgZm9yIGNNZW1vcnlPd24gaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGMuCisgICAgLy8gSWYgd2UgaGFkIHVzZWQgJ3RydWUnLCB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgaXMgYmVzdCBsZWZ0IHRvIHRoZSBnYXJiYWdlIGNvbGxlY3Rvci4KKyAgICAvLyBZb3UgY2FuIHN0aWxsIGNhbGwgX2RlbGV0ZSgpLiBJdCB3aWxsIGZyZWUgdGhlIGMrKyBtZW1vcnkgaW1tZWRpYXRlbHksIGJ1dCBub3QgdGhlIAorICAgIC8vIEphdmEgbWVtb3J5ISBZb3UgdGhlbiBtdXN0IGJlIGNhcmVmdWwgbm90IHRvIGNhbGwgYW55IG1lbWJlciBmdW5jdGlvbnMgYXMgaXQgd2lsbCAKKyAgICAvLyB1c2UgYSBOVUxMIGMgcG9pbnRlciBvbiB0aGUgdW5kZXJseWluZyBjKysgb2JqZWN0LgorICAgIGMuX2RlbGV0ZSgpOworICAgIAorICAgIC8vIC0tLS0tIENyZWF0ZSBhIHZlY3RvciBhcnJheSAtLS0tLQorICAgIAorICAgIC8vIE5vdGU6IFVzaW5nIHRoZSBoaWdoLWxldmVsIGludGVyZmFjZSBoZXJlCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ3JlYXRpbmcgYW4gYXJyYXkgb2YgdmVjdG9ycyIgKTsKKyAgICBWZWN0b3JBcnJheSB2YSA9IG5ldyBWZWN0b3JBcnJheSgxMCk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiICAgIHZhID0gIiArIHZhLnRvU3RyaW5nKCkgKTsKKyAgICAKKyAgICAvLyAtLS0tLSBTZXQgc29tZSB2YWx1ZXMgaW4gdGhlIGFycmF5IC0tLS0tCisgICAgCisgICAgLy8gVGhlc2Ugb3BlcmF0b3JzIGNvcHkgdGhlIHZhbHVlIG9mIFZlY3RvciBhIGFuZCBWZWN0b3IgYiB0byB0aGUgdmVjdG9yIGFycmF5CisgICAgdmEuc2V0KDAsYSk7CisgICAgdmEuc2V0KDEsYik7CisgICAgCisgICAgLy8gVGhpcyB3aWxsIHdvcmssIGJ1dCBpdCB3aWxsIGNhdXNlIGEgbWVtb3J5IGxlYWshCisgICAgLy8gVGhpcyBpcyB0aGUgbG93IGxldmVsIHdheSBvZiB1c2luZyBKYXZhIHdpdGggU1dJRyBhbmQgaXNuJ3QgdmVyeSByZWFkYWJsZSEKKyAgICAKKyAgICBleGFtcGxlLlZlY3RvckFycmF5X3NldCh2YS5nZXRDUHRyKCksMixleGFtcGxlLmFkZHYoYS5nZXRDUHRyKCksYi5nZXRDUHRyKCkpKTsKKyAgICAKKyAgICAvLyBUaGUgbm9uLWxlYWt5IHdheSB0byBkbyBpdC4gVGhpcyBpcyB0aGUgaGlnaCBsZXZlbCB3YXkgb2YgdXNpbmcgSmF2YSB3aXRoIFNXSUcuCisgICAgLy8gVGhpcyByZWxpZXMgb24gdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGZvciBmcmVlaW5nIG1lbW9yeQorICAgIC8vIEFuIGV2ZW4gYmV0dGVyIHdheSB3b3VsZCBoYXZlIGJlZW4gcG9zc2libGUgaWYgYWRkdiB3YXMgYSBzdGF0aWMgZnVuY3Rpb24gaW4gdGhlIAorICAgIC8vIGMrKyBjbGFzcy4gVGhlIGNvZGUgd291bGQgdGhlbiBpbnN0ZWFkIGJlOgorICAgIC8vIGMgPSBWZWN0b3IuYWRkdihhLGIpOyAKKyAgICAKKyAgICBjID0gbmV3IFZlY3RvcihleGFtcGxlLmFkZHYoYS5nZXRDUHRyKCksYi5nZXRDUHRyKCkpLCB0cnVlKTsKKyAgICB2YS5zZXQoMyxjKTsKKyAgICAKKyAgICAvLyBHZXQgc29tZSB2YWx1ZXMgZnJvbSB0aGUgYXJyYXkKKyAgICAKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJHZXR0aW5nIHNvbWUgYXJyYXkgdmFsdWVzIiApOworICAgIGZvciAoaW50IGk9MDsgaTw1OyBpKyspCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIiAgICB2YSgiICsgaSArICIpID0gIiArIHZhLmdldChpKS5wcmludCgpICk7CisgICAgCisgICAgLy8gV2F0Y2ggdW5kZXIgcmVzb3VyY2UgbWV0ZXIgdG8gY2hlY2sgb24gdGhpcworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIk1ha2luZyBzdXJlIHdlIGRvbid0IGxlYWsgbWVtb3J5LiIgKTsKKyAgICBmb3IgKGludCBpPTA7IGk8MTAwMDAwMDsgaSsrKQorICAgICAgICBjID0gdmEuZ2V0KGklMTApOworICAgIAorICAgIC8vIC0tLS0tIENsZWFuIHVwIC0tLS0tCisgICAgLy8gVGhpcyBjb3VsZCBiZSBvbWl0dGVkLiBUaGUgZ2FyYmFnZSBjb2xsZWN0b3Igd291bGQgdGhlbiBjbGVhbiB1cCBmb3IgdXMuCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ2xlYW5pbmcgdXAiICk7CisgICAgdmEuX2RlbGV0ZSgpOworICAgIGEuX2RlbGV0ZSgpOworICAgIGIuX2RlbGV0ZSgpOworICB9Cit9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvc2ltcGxlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL2phdmEvc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU1Mjc3MgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS9zaW1wbGUvLmN2c2lnbm9yZQpAQCAtMCwwICsxLDQgQEAKKyouY2xhc3MKKyouamF2YQorZXhhbXBsZV93cmFwLmMKKwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvamF2YS9zaW1wbGUvTWFrZWZpbGUKaW5kZXggZjU1NjAxYi4uNWYwOTQ0ZSAxMDA2NDQKLS0tIGEvU1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS9NYWtlZmlsZQorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvc2ltcGxlL01ha2VmaWxlCkBAIC0zLDEzICszLDE0IEBACiBTUkNTICAgICAgID0gZXhhbXBsZS5jCiBUQVJHRVQgICAgID0gbGliZXhhbXBsZQogSU5URVJGQUNFICA9IGV4YW1wbGUuaQotU1dJR09QVCAgICA9IAorU1dJR09QVCAgICA9IC1zaGFkb3cKIAogYWxsOjoJamF2YQogCiBqYXZhOjoKIAkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBTUkNTPSckKFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCiAJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBqYXZhCisJamF2YWMgKi5qYXZhCiAKIGNsZWFuOjoKIAlybSAtZiAqX3dyYXAqICoubyBjb3JlICp+ICouc28gKi5jbGFzcyBleGFtcGxlLmphdmEKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9zaW1wbGUvUkVBRE1FIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MmI3ZDcuLjAwMDAwMDAKLS0tIGEvU1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVNpbXBsZSBleGFtcGxlIGZyb20gdXNlcnMgbWFudWFsLgotCi10eXBlOgotbWFrZQotamF2YWMgKi5qYXZhCi1leHBvcnQgTERfTElCUkFSWV9QQVRIPS4gIyBzaAotc2V0ZW52IExEX0xJQlJBUllfUEFUSCAuICMgY3NoCi1qYXZhIG1haW4KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS9zaW1wbGUvaW5kZXguaHRtbCBiL1NXSUcvRXhhbXBsZXMvamF2YS9zaW1wbGUvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTRlNDNiCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlNXSUc6RXhhbXBsZXM6amF2YTpzaW1wbGU8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KKworCis8dHQ+U1dJRy9FeGFtcGxlcy9qYXZhL3NpbXBsZS88L3R0PgorPGhyPgorCis8SDI+U2ltcGxlIEphdmEgRXhhbXBsZTwvSDI+CisKKzx0dD4kSGVhZGVyJDwvdHQ+PGJyPgorCis8cD4KK1RoaXMgZXhhbXBsZSBpbGx1c3RyYXRlcyBob3cgeW91IGNhbiBob29rIEphdmEgdG8gYSB2ZXJ5IHNpbXBsZSBDIHByb2dyYW0gY29udGFpbmluZworYSBmdW5jdGlvbiBhbmQgYSBnbG9iYWwgdmFyaWFibGUuCisKKzxoMj5UaGUgQyBDb2RlPC9oMj4KKworU3VwcG9zZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIEMgY29kZToKKworPGJsb2NrcXVvdGU+Cis8cHJlPgorLyogRmlsZSA6IGV4YW1wbGUuYyAqLworCisvKiBBIGdsb2JhbCB2YXJpYWJsZSAqLworZG91YmxlIEZvbyA9IDMuMDsKKworLyogQ29tcHV0ZSB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgcG9zaXRpdmUgaW50ZWdlcnMgKi8KK2ludCBnY2QoaW50IHgsIGludCB5KSB7CisgIGludCBnOworICBnID0geTsKKyAgd2hpbGUgKHggPiAwKSB7CisgICAgZyA9IHg7CisgICAgeCA9IHkgJSB4OworICAgIHkgPSBnOworICB9CisgIHJldHVybiBnOworfQorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+CisKKzxoMj5UaGUgU1dJRyBpbnRlcmZhY2U8L2gyPgorCitIZXJlIGlzIGEgc2ltcGxlIFNXSUcgaW50ZXJmYWNlIGZpbGU6CisKKzxibG9ja3F1b3RlPgorPHByZT4KKy8qIEZpbGU6IGV4YW1wbGUuaSAqLworJW1vZHVsZSBleGFtcGxlCisKK2V4dGVybiBpbnQgZ2NkKGludCB4LCBpbnQgeSk7CitleHRlcm4gZG91YmxlIEZvbzsKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCis8aDI+Q29tcGlsYXRpb248L2gyPgorCis8b2w+Cis8bGk+PHR0PnN3aWcgLWphdmEgPGEgaHJlZj0iZXhhbXBsZS5pIj5leGFtcGxlLmk8L2E+PC90dD4KKzxwPgorPGxpPkNvbXBpbGUgPHR0PjxhIGhyZWY9ImV4YW1wbGVfd3JhcC5jIj5leGFtcGxlX3dyYXAuYzwvYT48L3R0PiBhbmQgPHR0PjxhIGhyZWY9ImV4YW1wbGUuYyI+ZXhhbXBsZS5jPC9hPjwvdHQ+Cit0byBjcmVhdGUgdGhlIGV4dGVuc2lvbiA8dHQ+bGliZXhhbXBsZS5zbyAodW5peCk8L3R0Pi4gCis8L29sPgorCis8aDI+VXNpbmcgdGhlIGV4dGVuc2lvbjwvaDI+CisKK0NsaWNrIDxhIGhyZWY9Im1haW4uamF2YSI+aGVyZTwvYT4gdG8gc2VlIGEgcHJvZ3JhbSB0aGF0IGNhbGxzIG91ciBDIGZ1bmN0aW9ucyBmcm9tIEphdmEuCis8cD4KK0NvbXBpbGUgdGhlIGphdmEgZmlsZXMgPHR0PjxhIGhyZWY9ImV4YW1wbGUuamF2YSI+ZXhhbXBsZS5qYXZhPC9hPjwvdHQ+IGFuZCA8dHQ+PGEgaHJlZj0ibWFpbi5qYXZhIj5tYWluLmphdmE8L2E+PC90dD4KK3RvIGNyZWF0ZSB0aGUgY2xhc3MgZmlsZXMgZXhhbXBsZS5jbGFzcyBhbmQgbWFpbi5jbGFzcyBiZWZvcmUgcnVubmluZyBtYWluIGluIHRoZSBKVk0uICBFbnN1cmUgdGhhdCB0aGUgbGliZXhhbXBsZS5zbyBmaWxlIGlzIGluIHlvdXIgTERfTElCUkFSWV9QQVRIIGJlZm9yZSBydW5uaW5nLiBGb3IgZXhhbXBsZToKKzxibG9ja3F1b3RlPgorPHByZT4KK2V4cG9ydCBMRF9MSUJSQVJZX1BBVEg9LiAja3NoIAoramF2YWMgKi5qYXZhCitqYXZhIG1haW4KKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCis8aDI+S2V5IHBvaW50czwvaDI+CisKKzx1bD4KKzxsaT5Vc2UgdGhlIDx0dD5pbXBvcnQ8L3R0PiBhbmQgPHR0PmltcG9ydDwvdHQ+IHN0YXRlbWVudHMgZnJvbSBqYXZhIHRvIGxvYWQgYW5kIGFjY2VzcyB0aGUgZ2VuZXJhdGVkIGphdmEgY2xhc3Nlcy4gRm9yIGV4YW1wbGU6Cis8YmxvY2txdW90ZT4KKzxwcmU+CitpbXBvcnQgZXhhbXBsZTsKKworU3lzdGVtLmxvYWRMaWJyYXJ5KCJleGFtcGxlIik7Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKworPGxpPkMgZnVuY3Rpb25zIHdvcmsganVzdCBsaWtlIEphdmEgZnVuY3Rpb25zLiBGb3IgZXhhbXBsZToKKzxibG9ja3F1b3RlPgorPHByZT4KK2ludCBnID0gZXhhbXBsZS5nY2QoNDIsMTA1KTsKKzwvcHJlPgorPC9ibG9ja3F1b3RlPgorCis8bGk+QyBnbG9iYWwgdmFyaWFibGVzIGFyZSBhY2Nlc3NlZCB0aHJvdWdoIGdldCBhbmQgc2V0IGZ1bmN0aW9ucyBpbiB0aGUgbW9kdWxlIGNsYXNzLiBGb3IgZXhhbXBsZToKKzxibG9ja3F1b3RlPgorPHByZT4KK2RvdWJsZSBhID0gZXhhbXBsZS5nZXRfRm9vKCk7CitleGFtcGxlLnNldF9Gb28oMjAuMCk7Cis8L3ByZT4KKzwvYmxvY2txdW90ZT4KKzwvdWw+CisKKzxocj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NTI3NzIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsNCBAQAorKi5jbGFzcworKi5qYXZhCitleGFtcGxlX3dyYXAuYworCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL01ha2VmaWxlCmluZGV4IGRkYmE2NjQuLjU2MmFjZjcgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL01ha2VmaWxlCisrKyBiL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL01ha2VmaWxlCkBAIC0xMCw2ICsxMCw3IEBACiBqYXZhOjoKIAkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBTUkNTPSckKFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCiAJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBqYXZhCisJamF2YWMgKi5qYXZhCiAKIGNsZWFuOjoKIAlybSAtZiAqX3dyYXAqICoubyBjb3JlICp+ICouc28gKi5jbGFzcyBleGFtcGxlLmphdmEKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL1JFQURNRSBiL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjdkYWJiZi4uMDAwMDAwMAotLS0gYS9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUV4YW1wbGUgb2YgYSB0eXBlbWFwIHRvIGhhbmRsZSByZXR1cm4gdmFsdWVzIGluIGNoYXIgKiBhcmd1bWVudHMuCi0KLXR5cGU6Ci1tYWtlCi1qYXZhYyAqLmphdmEKLWV4cG9ydCBMRF9MSUJSQVJZX1BBVEg9LiAjIHNoCi1zZXRlbnYgTERfTElCUkFSWV9QQVRIIC4gIyBjc2gKLWphdmEgbWFpbgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9qYXZhL3R5cGVtYXAvZXhhbXBsZS5pIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3R5cGVtYXAvZXhhbXBsZS5pCmluZGV4IDQ2YzEzNzQuLjAwOTIxYjQgMTAwNjQ0Ci0tLSBhL1NXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwL2V4YW1wbGUuaQorKysgYi9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC9leGFtcGxlLmkKQEAgLTE4LDExICsxOCwxMSBAQAogfQogCiB2b2lkIGYyKGNoYXIgKnMpIHsKLSAgcmV0dXJuIGYxKHMpOworICBmMShzKTsKIH0KIAogdm9pZCBmMyhjaGFyICpzKSB7Ci0gIHJldHVybiBmMShzKTsKKyAgZjEocyk7CiB9CiAKICV9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL2phdmEvdHlwZW1hcC9pbmRleC5odG1sIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3R5cGVtYXAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTlmNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9qYXZhL3R5cGVtYXAvaW5kZXguaHRtbApAQCAtMCwwICsxLDM0IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlNXSUc6RXhhbXBsZXM6amF2YTp0eXBlbWFwPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+CisKKworPHR0PlNXSUcvRXhhbXBsZXMvamF2YS90eXBlbWFwLzwvdHQ+Cis8aHI+CisKKzxIMj5UeXBlbWFwcyBpbiBKYXZhPC9IMj4KKworPHR0PiRIZWFkZXIkPC90dD48YnI+CisKKzxwPgorVGhpcyBleGFtcGxlIHNob3dzIGhvdyB0eXBlbWFwcyBjYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBKYXZhIFNXSUcgbW9kdWxlLgorCis8dWw+Cis8bGk+PGEgaHJlZj0iZXhhbXBsZS5pIj5leGFtcGxlLmk8L2E+LiBJbnRlcmZhY2UgZmlsZS4gCis8bGk+PGEgaHJlZj0ibWFpbi5qYXZhIj5tYWluLmphdmE8L2E+LiBTYW1wbGUgSmF2YSBwcm9ncmFtLgorPC91bD4KKworPGgyPk5vdGVzPC9oMj4KKworPHVsPgorPGxpPlNob3dzIGhvdyB0byBwYXNzIHN0cmluZ3MgdG8gSmF2YSBmcm9tIGMgYW5kIHZpc2EgdmVyc2EuCis8bGk+VHlwZW1hcHMgY2FuIG1vZGlmeSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIEphdmEgU1dJRyBtb2R1bGUuCis8bGk+VGhlIGRlZmF1bHQgYyB0byBqYXZhIG1hcHBpbmcgY2FuIGJlIG1vZGlmaWVkIHVzaW5nIHR5cGVtYXBzLgorPC91bD4KKworPGhyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9tenNjaGVtZS9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvbXpzY2hlbWUvc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvbXpzY2hlbWUvc2ltcGxlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvY2xhc3MvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcGVybDUvY2xhc3MvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGZiNDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9jbGFzcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvY29uc3RhbnRzLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L2NvbnN0YW50cy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmI0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L2NvbnN0YW50cy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvZnVuY3B0ci8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9mdW5jcHRyLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhmYjQzNwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcGVybDUvZnVuY3B0ci8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGZiNDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLWN4eC8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgvTWFrZWZpbGUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlOTFkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L01ha2VmaWxlCkBAIC0wLDAgKzEsMTggQEAKK1RPUCAgICAgICAgPSAuLi8uLgorU1dJRyAgICAgICA9ICQoVE9QKS8uLi9zd2lnCitDWFhTUkNTICAgID0gZXhhbXBsZS5jCitUQVJHRVQgICAgID0gZXhhbXBsZQorSU5URVJGQUNFICA9IGV4YW1wbGUuaQorU1dJR09QVCAgICA9IAorYWxsOjoKKwkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBDWFhTUkNTPSckKENYWFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCisJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSckKFRBUkdFVCknIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBwZXJsNV9jcHAKKworc3RhdGljOjoKKwkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBDWFhTUkNTPSckKENYWFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCisJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSdteXBlcmwnIElOVEVSRkFDRT0nJChJTlRFUkZBQ0UpJyBwZXJsNV9jcHBfc3RhdGljCisKK2NsZWFuOjoKKwlybSAtZiAqX3dyYXAqICoubyBjb3JlICp+ICouc28gKi5wbSBteXBlcmwKKworY2hlY2s6IGFsbApkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLWN4eC9SRUFETUUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzA2YzA3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLWN4eC9SRUFETUUKQEAgLTAsMCArMSw1IEBACitUaGUgZXhhbXBsZSBpbiB0aGlzIGRpcmVjdG9yeSBpcyBhIGNvcHkgb2YgdGhlIGBwb2ludGVyJyBleGFtcGxlLAorZXhjZXB0IHRoYXQgaXQgdXNlZCBDKysgaW5zdGVhZCBvZiBDLiAKKworSXQgaXMgcHJvdmlkZWQgaGVyZSBvbmx5IGZvciB0aGUgcHVycG9zZSBvZiBTV0lHJ3MgdGVzdCBzdWl0ZTsgaXQgZGlkCitub3QgY29tcGlsZSBpbiBTV0lHIDEuM2E1LgpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLWN4eC9leGFtcGxlLmMgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODc3ZDlhCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLWN4eC9leGFtcGxlLmMKQEAgLTAsMCArMSwxNiBAQAorLyogRmlsZSA6IGV4YW1wbGUuYyAqLworCit2b2lkIGFkZChpbnQgKngsIGludCAqeSwgaW50ICpyZXN1bHQpIHsKKyAgKnJlc3VsdCA9ICp4ICsgKnk7Cit9CisKK3ZvaWQgc3ViKGludCAqeCwgaW50ICp5LCBpbnQgKnJlc3VsdCkgeworICAqcmVzdWx0ID0gKnggLSAqeTsKK30KKworaW50IGRpdmlkZShpbnQgbiwgaW50IGQsIGludCAqcikgeworICAgaW50IHE7CisgICBxID0gbi9kOworICAgKnIgPSBuIC0gcSpkOworICAgcmV0dXJuIHE7Cit9CmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L2V4YW1wbGUuaSBiL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgvZXhhbXBsZS5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlZDJiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L2V4YW1wbGUuaQpAQCAtMCwwICsxLDIzIEBACisvKiBGaWxlIDogZXhhbXBsZS5pICovCislbW9kdWxlIGV4YW1wbGUKKworLyogVGhpcyBleGFtcGxlIGlsbHVzdHJhdGVzIGEgY291cGxlIG9mIGRpZmZlcmVudCB0ZWNobmlxdWVzCisgICBmb3IgbWFuaXB1bGF0aW5nIEMgcG9pbnRlcnMgKi8KKworLyogRmlyc3Qgd2UnbGwgdXNlIHRoZSBwb2ludGVyIGxpYnJhcnkgKi8KK2V4dGVybiB2b2lkIGFkZChpbnQgKngsIGludCAqeSwgaW50ICpyZXN1bHQpOworJWluY2x1ZGUgcG9pbnRlci5pCisKKy8qIE5leHQgd2UnbGwgdXNlIHNvbWUgdHlwZW1hcHMgKi8KKworJWluY2x1ZGUgdHlwZW1hcHMuaQorZXh0ZXJuIHZvaWQgc3ViKGludCAqSU5QVVQsIGludCAqSU5QVVQsIGludCAqT1VUUFVUKTsKKworLyogTmV4dCB3ZSdsbCB1c2UgdHlwZW1hcHMgYW5kIHRoZSAlYXBwbHkgZGlyZWN0aXZlICovCisKKyVhcHBseSBpbnQgKk9VVFBVVCB7IGludCAqciB9OworZXh0ZXJuIGludCBkaXZpZGUoaW50IG4sIGludCBkLCBpbnQgKnIpOworCisKKworCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L2V4YW1wbGUucGwgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3BvaW50ZXItY3h4L2V4YW1wbGUucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxODE0NAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgvZXhhbXBsZS5wbApAQCAtMCwwICsxLDQyIEBACisjIGZpbGU6IGV4YW1wbGUucGwKKwordXNlIGV4YW1wbGU7CisKKyMgRmlyc3QgY3JlYXRlIHNvbWUgb2JqZWN0cyB1c2luZyB0aGUgcG9pbnRlciBsaWJyYXJ5LgorcHJpbnQgIlRlc3RpbmcgdGhlIHBvaW50ZXIgbGlicmFyeVxuIjsKKyRhID0gZXhhbXBsZTo6cHRyY3JlYXRlKCJpbnQiLDM3KTsKKyRiID0gZXhhbXBsZTo6cHRyY3JlYXRlKCJpbnQiLDQyKTsKKyRjID0gZXhhbXBsZTo6cHRyY3JlYXRlKCJpbnQiKTsgIAorCitwcmludCAiICAgICBhID0gJGFcbiI7CitwcmludCAiICAgICBiID0gJGJcbiI7CitwcmludCAiICAgICBjID0gJGNcbiI7CisKKyMgQ2FsbCB0aGUgYWRkKCkgZnVuY3Rpb24gd2l0aCBzb21lIHBvaW50ZXJzCitleGFtcGxlOjphZGQoJGEsJGIsJGMpOworCisjIE5vdyBnZXQgdGhlIHJlc3VsdAorJHIgPSBleGFtcGxlOjpwdHJ2YWx1ZSgkYyk7CitwcmludCAiICAgICAzNyArIDQyID0gJHJcbiI7CisKKyMgQ2xlYW4gdXAgdGhlIHBvaW50ZXJzCitleGFtcGxlOjpwdHJmcmVlKCRhKTsKK2V4YW1wbGU6OnB0cmZyZWUoJGIpOworZXhhbXBsZTo6cHRyZnJlZSgkYyk7CisKKyMgTm93IHRyeSB0aGUgdHlwZW1hcCBsaWJyYXJ5CisjIFRoaXMgc2hvdWxkIGJlIG11Y2ggZWFzaWVyLiBOb3cgaG93IGl0IGlzIG5vIGxvbmdlcgorIyBuZWNlc3NhcnkgdG8gbWFudWZhY3R1cmUgcG9pbnRlcnMuCisKK3ByaW50ICJUcnlpbmcgdGhlIHR5cGVtYXAgbGlicmFyeVxuIjsKKyRyID0gZXhhbXBsZTo6c3ViKDM3LDQyKTsKK3ByaW50ICIgICAgIDM3IC0gNDIgPSAkclxuIjsKKworIyBOb3cgdHJ5IHRoZSB2ZXJzaW9uIHdpdGggbXVsdGlwbGUgcmV0dXJuIHZhbHVlcworCitwcmludCAiVGVzdGluZyBtdWx0aXBsZSByZXR1cm4gdmFsdWVzXG4iOworKCRxLCRyKSA9IGV4YW1wbGU6OmRpdmlkZSg0MiwzNyk7CitwcmludCAiICAgICA0Mi8zNyA9ICRxIHJlbWFpbmRlciAkclxuIjsKKworCisKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS9wb2ludGVyLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhmYjQzNwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcGVybDUvcG9pbnRlci8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvcmVmZXJlbmNlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3JlZmVyZW5jZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmI0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3JlZmVyZW5jZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvc2ltcGxlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3NpbXBsZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmI0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3NpbXBsZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvdmFsdWUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcGVybDUvdmFsdWUvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGZiNDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9wZXJsNS92YWx1ZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcGVybDUvdmFyaWFibGVzLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3ZhcmlhYmxlcy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmI0MzcKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3Blcmw1L3ZhcmlhYmxlcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5wbQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcHl0aG9uL2NsYXNzLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9jbGFzcy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9jbGFzcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3B5dGhvbi9jb25zdGFudHMvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL2NvbnN0YW50cy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9jb25zdGFudHMvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9weXRob24vZW51bS8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9weXRob24vZW51bS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9lbnVtLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcHl0aG9uL2Z1bmNwdHIvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL2Z1bmNwdHIvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9weXRob24vZnVuY3B0ci8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3B5dGhvbi9wb2ludGVyLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9wb2ludGVyLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3BvaW50ZXIvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9weXRob24vcmVmZXJlbmNlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9yZWZlcmVuY2UvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9weXRob24vcmVmZXJlbmNlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3NoYWRvdy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9weXRob24vc2hhZG93Ly5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJlZWU5NgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3NoYWRvdy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsMiBAQAorZXhhbXBsZS5weQorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3NoYWRvdy9NYWtlZmlsZSBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3NoYWRvdy9NYWtlZmlsZQppbmRleCA5MDhlZGM5Li4wZTljMWIxIDEwMDY0NAotLS0gYS9TV0lHL0V4YW1wbGVzL3B5dGhvbi9zaGFkb3cvTWFrZWZpbGUKKysrIGIvU1dJRy9FeGFtcGxlcy9weXRob24vc2hhZG93L01ha2VmaWxlCkBAIC0xLDE3ICsxLDE4IEBACiBUT1AgICAgICAgID0gLi4vLi4KLVNXSUcgICAgICAgPSAkKFRPUCkvLi4vc3dpZyAtc2hhZG93CitTV0lHICAgICAgID0gJChUT1ApLy4uL3N3aWcKIENYWFNSQ1MgICAgPSBleGFtcGxlLmN4eAogVEFSR0VUICAgICA9IGV4YW1wbGVjCiBJTlRFUkZBQ0UgID0gZXhhbXBsZS5pCiBMSUJTICAgICAgID0gLWxtCitTV0lHT1BUICAgID0gLXNoYWRvdwogCiBhbGw6OgogCSQoTUFLRSkgLWYgJChUT1ApL01ha2VmaWxlIENYWFNSQ1M9JyQoQ1hYU1JDUyknIFNXSUc9JyQoU1dJRyknIFwKLQlUQVJHRVQ9JyQoVEFSR0VUKScgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIHB5dGhvbl9jcHAKKwlTV0lHT1BUPSckKFNXSUdPUFQpJyBUQVJHRVQ9JyQoVEFSR0VUKScgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIHB5dGhvbl9jcHAKIAogc3RhdGljOjoKIAkkKE1BS0UpIC1mICQoVE9QKS9NYWtlZmlsZSBDWFhTUkNTPSckKENYWFNSQ1MpJyBTV0lHPSckKFNXSUcpJyBcCi0JVEFSR0VUPSdteXB5dGhvbicgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIHB5dGhvbl9jcHBfc3RhdGljCisJU1dJR09QVD0nJChTV0lHT1BUKScgVEFSR0VUPSdteXB5dGhvbicgSU5URVJGQUNFPSckKElOVEVSRkFDRSknIHB5dGhvbl9jcHBfc3RhdGljCiAKIGNsZWFuOjoKIAlybSAtZiAqX3dyYXAqICoubyAqfiAqLnNvIG15cHl0aG9uICoucHljIC5+KiBjb3JlCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3B5dGhvbi9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3NpbXBsZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3B5dGhvbi9zaW1wbGUvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9weXRob24vdmFsdWUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3ZhbHVlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3ZhbHVlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3ZhcmlhYmxlcy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9weXRob24vdmFyaWFibGVzLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcHl0aG9uL3ZhcmlhYmxlcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3J1YnkvY2xhc3MvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcnVieS9jbGFzcy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3J1YnkvY2xhc3MvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ydWJ5L2NvbnN0YW50cy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L2NvbnN0YW50cy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3J1YnkvY29uc3RhbnRzLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcnVieS9lbnVtLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3J1YnkvZW51bS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3J1YnkvZW51bS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3J1YnkvZnVuY3B0ci8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L2Z1bmNwdHIvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L2Z1bmNwdHIvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ydWJ5L3BvaW50ZXIvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcnVieS9wb2ludGVyLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcnVieS9wb2ludGVyLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcnVieS9yZWZlcmVuY2UvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcnVieS9yZWZlcmVuY2UvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L3JlZmVyZW5jZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3J1Ynkvc2ltcGxlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3J1Ynkvc2ltcGxlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvcnVieS9zaW1wbGUvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy9ydWJ5L3ZhbHVlLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3J1YnkvdmFsdWUvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L3ZhbHVlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvcnVieS92YXJpYWJsZXMvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvcnVieS92YXJpYWJsZXMvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy9ydWJ5L3ZhcmlhYmxlcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3RjbC9jbGFzcy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy90Y2wvY2xhc3MvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy90Y2wvY2xhc3MvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy90Y2wvY29uc3RhbnRzLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3RjbC9jb25zdGFudHMvLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy90Y2wvY29uc3RhbnRzLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvdGNsL2VudW0vLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvdGNsL2VudW0vLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTU1MGViCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9FeGFtcGxlcy90Y2wvZW51bS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3RjbC9mdW5jcHRyLy5jdnNpZ25vcmUgYi9TV0lHL0V4YW1wbGVzL3RjbC9mdW5jcHRyLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvdGNsL2Z1bmNwdHIvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy90Y2wvcG9pbnRlci8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy90Y2wvcG9pbnRlci8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3RjbC9wb2ludGVyLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvdGNsL3JlZmVyZW5jZS8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy90Y2wvcmVmZXJlbmNlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvdGNsL3JlZmVyZW5jZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0V4YW1wbGVzL3RjbC9zaW1wbGUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvdGNsL3NpbXBsZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExNTUwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0V4YW1wbGVzL3RjbC9zaW1wbGUvLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACitleGFtcGxlX3dyYXAuYwpkaWZmIC0tZ2l0IGEvU1dJRy9FeGFtcGxlcy90Y2wvdmFsdWUvLmN2c2lnbm9yZSBiL1NXSUcvRXhhbXBsZXMvdGNsL3ZhbHVlLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvdGNsL3ZhbHVlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorZXhhbXBsZV93cmFwLmMKZGlmZiAtLWdpdCBhL1NXSUcvRXhhbXBsZXMvdGNsL3ZhcmlhYmxlcy8uY3ZzaWdub3JlIGIvU1dJRy9FeGFtcGxlcy90Y2wvdmFyaWFibGVzLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NTBlYgotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvRXhhbXBsZXMvdGNsL3ZhcmlhYmxlcy8uY3ZzaWdub3JlCkBAIC0wLDAgKzEgQEAKK2V4YW1wbGVfd3JhcC5jCmRpZmYgLS1naXQgYS9TV0lHL0lOU1RBTEwgYi9TV0lHL0lOU1RBTEwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY2ZmZkOQotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvSU5TVEFMTApAQCAtMCwwICsxLDIyNiBAQAorQmFzaWMgSW5zdGFsbGF0aW9uCis9PT09PT09PT09PT09PT09PT0KKworICAgVGhlc2UgYXJlIGdlbmVyaWMgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KKworICAgVGhlIGBjb25maWd1cmUnIHNoZWxsIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBjb3JyZWN0IHZhbHVlcyBmb3IKK3ZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24uICBJdCB1c2VzCit0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KK0l0IG1heSBhbHNvIGNyZWF0ZSBvbmUgb3IgbW9yZSBgLmgnIGZpbGVzIGNvbnRhaW5pbmcgc3lzdGVtLWRlcGVuZGVudAorZGVmaW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0Cit5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCitmaWxlIGBjb25maWcubG9nJyBjb250YWluaW5nIGNvbXBpbGVyIG91dHB1dCAodXNlZnVsIG1haW5seSBmb3IKK2RlYnVnZ2luZyBgY29uZmlndXJlJykuCisKKyAgIEl0IGNhbiBhbHNvIHVzZSBhbiBvcHRpb25hbCBmaWxlICh0eXBpY2FsbHkgY2FsbGVkIGBjb25maWcuY2FjaGUnCithbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJyBvciBzaW1wbHkgYC1DJykgdGhhdCBzYXZlcwordGhlIHJlc3VsdHMgb2YgaXRzIHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICAoQ2FjaGluZyBpcworZGlzYWJsZWQgYnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3RhbGUKK2NhY2hlIGZpbGVzLikKKworICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQordG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAorZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBhZGRyZXNzIGdpdmVuIGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgorYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlvdSBhcmUgdXNpbmcgdGhlIGNhY2hlLCBhbmQgYXQKK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKK21heSByZW1vdmUgb3IgZWRpdCBpdC4KKworICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQorYGNvbmZpZ3VyZScgYnkgYSBwcm9ncmFtIGNhbGxlZCBgYXV0b2NvbmYnLiAgWW91IG9ubHkgbmVlZAorYGNvbmZpZ3VyZS5hYycgaWYgeW91IHdhbnQgdG8gY2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcKK2EgbmV3ZXIgdmVyc2lvbiBvZiBgYXV0b2NvbmYnLgorCitUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgorCisgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKKyAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLiAgSWYgeW91J3JlCisgICAgIHVzaW5nIGBjc2gnIG9uIGFuIG9sZCB2ZXJzaW9uIG9mIFN5c3RlbSBWLCB5b3UgbWlnaHQgbmVlZCB0byB0eXBlCisgICAgIGBzaCAuL2NvbmZpZ3VyZScgaW5zdGVhZCB0byBwcmV2ZW50IGBjc2gnIGZyb20gdHJ5aW5nIHRvIGV4ZWN1dGUKKyAgICAgYGNvbmZpZ3VyZScgaXRzZWxmLgorCisgICAgIFJ1bm5pbmcgYGNvbmZpZ3VyZScgdGFrZXMgYXdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzIHNvbWUKKyAgICAgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCisKKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKworICAzLiBPcHRpb25hbGx5LCB0eXBlIGBtYWtlIGNoZWNrJyB0byBydW4gYW55IHNlbGYtdGVzdHMgdGhhdCBjb21lIHdpdGgKKyAgICAgdGhlIHBhY2thZ2UuCisKKyAgNC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCisgICAgIGRvY3VtZW50YXRpb24uCisKKyAgNS4gWW91IGNhbiByZW1vdmUgdGhlIHByb2dyYW0gYmluYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBmcm9tIHRoZQorICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKKyAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBjb21wdXRlciksIHR5cGUgYG1ha2UgZGlzdGNsZWFuJy4gIFRoZXJlIGlzCisgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAorICAgICBhbGwgc29ydHMgb2Ygb3RoZXIgcHJvZ3JhbXMgaW4gb3JkZXIgdG8gcmVnZW5lcmF0ZSBmaWxlcyB0aGF0IGNhbWUKKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCitDb21waWxlcnMgYW5kIE9wdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PQorCisgICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMgZm9yIGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAordGhlIGBjb25maWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhlbHAnCitmb3IgZGV0YWlscyBvbiBzb21lIG9mIHRoZSBwZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorCisgICBZb3UgY2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMgZm9yIHZhcmlhYmxlcyBieSBzZXR0aW5nCit0aGVtIGluIHRoZSBlbnZpcm9ubWVudC4gIFlvdSBjYW4gZG8gdGhhdCBvbiB0aGUgY29tbWFuZCBsaW5lIGxpa2UgdGhpczoKKworICAgICAuL2NvbmZpZ3VyZSBDQz1jODkgQ0ZMQUdTPS1PMiBMSUJTPS1scG9zaXgKKworICAgKk5vdGUgRW52aXJvbm1lbnQgVmFyaWFibGVzOjosIGZvciBtb3JlIGRldGFpbHMuCisKK0NvbXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgIFlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IgbW9yZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCitvd24gZGlyZWN0b3J5LiAgVG8gZG8gdGhpcywgeW91IG11c3QgdXNlIGEgdmVyc2lvbiBvZiBgbWFrZScgdGhhdAorc3VwcG9ydHMgdGhlIGBWUEFUSCcgdmFyaWFibGUsIHN1Y2ggYXMgR05VIGBtYWtlJy4gIGBjZCcgdG8gdGhlCitkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQgZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1bgordGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUKK3NvdXJjZSBjb2RlIGluIHRoZSBkaXJlY3RvcnkgdGhhdCBgY29uZmlndXJlJyBpcyBpbiBhbmQgaW4gYC4uJy4KKworICAgSWYgeW91IGhhdmUgdG8gdXNlIGEgYG1ha2UnIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgYFZQQVRIJwordmFyaWFibGUsIHlvdSBoYXZlIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lCitpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBwYWNrYWdlIGZvcgorb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlIHJlY29uZmlndXJpbmcgZm9yIGFub3RoZXIKK2FyY2hpdGVjdHVyZS4KKworSW5zdGFsbGF0aW9uIE5hbWVzCis9PT09PT09PT09PT09PT09PT0KKworICAgQnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIHRoZSBwYWNrYWdlJ3MgZmlsZXMgaW4KK2AvdXNyL2xvY2FsL2JpbicsIGAvdXNyL2xvY2FsL21hbicsIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeSBhbgoraW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCitvcHRpb24gYC0tcHJlZml4PVBBVEgnLgorCisgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVzIGZvcgorYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKK2dpdmUgYGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QQVRIJywgdGhlIHBhY2thZ2Ugd2lsbCB1c2UKK1BBVEggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgorRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyB3aWxsIHN0aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCisKKyAgIEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKK29wdGlvbnMgbGlrZSBgLS1iaW5kaXI9UEFUSCcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCitraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKK3lvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uCisKKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAord2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKK29wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisKK09wdGlvbmFsIEZlYXR1cmVzCis9PT09PT09PT09PT09PT09PQorCisgICBTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRpb24gdG8gYC0tZW5hYmxlLUZFQVRVUkUnIG9wdGlvbnMgdG8KK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgorVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQoraXMgc29tZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFggV2luZG93IFN5c3RlbSkuICBUaGUKK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKK3BhY2thZ2UgcmVjb2duaXplcy4KKworICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5CitmaW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCit5b3UgY2FuIHVzZSB0aGUgYGNvbmZpZ3VyZScgb3B0aW9ucyBgLS14LWluY2x1ZGVzPURJUicgYW5kCitgLS14LWxpYnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgorCitTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2Fubm90IGZpZ3VyZSBvdXQKK2F1dG9tYXRpY2FsbHksIGJ1dCBuZWVkcyB0byBkZXRlcm1pbmUgYnkgdGhlIHR5cGUgb2YgaG9zdCB0aGUgcGFja2FnZQord2lsbCBydW4gb24uICBVc3VhbGx5IGBjb25maWd1cmUnIGNhbiBmaWd1cmUgdGhhdCBvdXQsIGJ1dCBpZiBpdCBwcmludHMKK2EgbWVzc2FnZSBzYXlpbmcgaXQgY2Fubm90IGd1ZXNzIHRoZSBob3N0IHR5cGUsIGdpdmUgaXQgdGhlCitgLS1idWlsZD1UWVBFJyBvcHRpb24uICBUWVBFIGNhbiBlaXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUgc3lzdGVtCit0eXBlLCBzdWNoIGFzIGBzdW40Jywgb3IgYSBjYW5vbmljYWwgbmFtZSB3aGljaCBoYXMgdGhlIGZvcm06CisKKyAgICAgQ1BVLUNPTVBBTlktU1lTVEVNCisKK3doZXJlIFNZU1RFTSBjYW4gaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisKKyAgICAgT1MKKyAgICAgS0VSTkVMLU9TCisKKyAgIFNlZSB0aGUgZmlsZSBgY29uZmlnLnN1YicgZm9yIHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCitgY29uZmlnLnN1YicgaXNuJ3QgaW5jbHVkZWQgaW4gdGhpcyBwYWNrYWdlLCB0aGVuIHRoaXMgcGFja2FnZSBkb2Vzbid0CituZWVkIHRvIGtub3cgdGhlIGhvc3QgdHlwZS4KKworICAgSWYgeW91IGFyZSBfYnVpbGRpbmdfIGNvbXBpbGVyIHRvb2xzIGZvciBjcm9zcy1jb21waWxpbmcsIHlvdSBzaG91bGQKK3VzZSB0aGUgYC0tdGFyZ2V0PVRZUEUnIG9wdGlvbiB0byBzZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorcHJvZHVjZSBjb2RlIGZvci4KKworICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21waWxlciwgdGhhdCBnZW5lcmF0ZXMgY29kZSBmb3IgYQorcGxhdGZvcm0gZGlmZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhlIGhvc3QKK3BsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRoZSBnZW5lcmF0ZWQgcHJvZ3JhbXMgd2lsbCBldmVudHVhbGx5IGJlCitydW4pIHdpdGggYC0taG9zdD1UWVBFJy4gIEluIHRoaXMgY2FzZSwgeW91IHNob3VsZCBhbHNvIHNwZWNpZnkgdGhlCitidWlsZCBwbGF0Zm9ybSB3aXRoIGAtLWJ1aWxkPVRZUEUnLCBiZWNhdXNlLCBpbiB0aGlzIGNhc2UsIGl0IG1heSBub3QKK2JlIHBvc3NpYmxlIHRvIGd1ZXNzIHRoZSBidWlsZCBwbGF0Zm9ybSAoaXQgc29tZXRpbWVzIGludm9sdmVzCitjb21waWxpbmcgYW5kIHJ1bm5pbmcgc2ltcGxlIHRlc3QgcHJvZ3JhbXMsIGFuZCB0aGlzIGNhbid0IGJlIGRvbmUgaWYKK3RoZSBjb21waWxlciBpcyBhIGNyb3NzIGNvbXBpbGVyKS4KKworU2hhcmluZyBEZWZhdWx0cworPT09PT09PT09PT09PT09PQorCisgICBJZiB5b3Ugd2FudCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlwdHMgdG8gc2hhcmUsCit5b3UgY2FuIGNyZWF0ZSBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbGxlZCBgY29uZmlnLnNpdGUnIHRoYXQgZ2l2ZXMKK2RlZmF1bHQgdmFsdWVzIGZvciB2YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBgcHJlZml4Jy4KK2Bjb25maWd1cmUnIGxvb2tzIGZvciBgUFJFRklYL3NoYXJlL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KK2BQUkVGSVgvZXRjL2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMuICBPciwgeW91IGNhbiBzZXQgdGhlCitgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCitBIHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBsb29rIGZvciBhIHNpdGUgc2NyaXB0LgorCitFbnZpcm9ubWVudCBWYXJpYWJsZXMKKz09PT09PT09PT09PT09PT09PT09PQorCisgICBWYXJpYWJsZXMgbm90IGRlZmluZWQgaW4gYSBzaXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorZW52aXJvbm1lbnQgcGFzc2VkIHRvIGNvbmZpZ3VyZS4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKK3ZhcmlhYmxlcyBtYXkgYmUgbG9zdC4gIEluIG9yZGVyIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91IHNob3VsZCBzZXQKK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1hbmQgbGluZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKworICAgICAuL2NvbmZpZ3VyZSBDQz0vdXNyL2xvY2FsMi9iaW4vZ2NjCisKK3dpbGwgY2F1c2UgdGhlIHNwZWNpZmllZCBnY2MgdG8gYmUgdXNlZCBhcyB0aGUgQyBjb21waWxlciAodW5sZXNzIGl0IGlzCitvdmVycmlkZGVuIGluIHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisKK2Bjb25maWd1cmUnIEludm9jYXRpb24KKz09PT09PT09PT09PT09PT09PT09PT0KKworICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQKK29wZXJhdGVzLgorCitgLS1oZWxwJworYC1oJworICAgICBQcmludCBhIHN1bW1hcnkgb2YgdGhlIG9wdGlvbnMgdG8gYGNvbmZpZ3VyZScsIGFuZCBleGl0LgorCitgLS12ZXJzaW9uJworYC1WJworICAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBBdXRvY29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJworICAgICBzY3JpcHQsIGFuZCBleGl0LgorCitgLS1jYWNoZS1maWxlPUZJTEUnCisgICAgIEVuYWJsZSB0aGUgY2FjaGU6IHVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSwKKyAgICAgdHJhZGl0aW9uYWxseSBgY29uZmlnLmNhY2hlJy4gIEZJTEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKyAgICAgZGlzYWJsZSBjYWNoaW5nLgorCitgLS1jb25maWctY2FjaGUnCitgLUMnCisgICAgIEFsaWFzIGZvciBgLS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScuCisKK2AtLXF1aWV0JworYC0tc2lsZW50JworYC1xJworICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCisgICAgIHN1cHByZXNzIGFsbCBub3JtYWwgb3V0cHV0LCByZWRpcmVjdCBpdCB0byBgL2Rldi9udWxsJyAoYW55IGVycm9yCisgICAgIG1lc3NhZ2VzIHdpbGwgc3RpbGwgYmUgc2hvd24pLgorCitgLS1zcmNkaXI9RElSJworICAgICBMb29rIGZvciB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5CisgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBkaXJlY3RvcnkgYXV0b21hdGljYWxseS4KKworYGNvbmZpZ3VyZScgYWxzbyBhY2NlcHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVsLCBvcHRpb25zLiAgUnVuCitgY29uZmlndXJlIC0taGVscCcgZm9yIG1vcmUgZGV0YWlscy4KKwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvY29tbW9uLnN3ZyBiL1NXSUcvTGliL2NvbW1vbi5zd2cKaW5kZXggNmE1MWI4NC4uMjE0ZWY0MiAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvY29tbW9uLnN3ZworKysgYi9TV0lHL0xpYi9jb21tb24uc3dnCkBAIC00NCw5ICs0NCw5IEBACiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3Qgc3dpZ190eXBlX2luZm8gewotICBjaGFyICAqbmFtZTsgICAgICAgICAgICAgICAgIAorICBjb25zdCBjaGFyICAqbmFtZTsgICAgICAgICAgICAgICAgIAogICB2b2lkICooKmNvbnZlcnRlcikodm9pZCAqKTsKLSAgY2hhciAgKnN0cjsKKyAgY29uc3QgY2hhciAgKnN0cjsKICAgc3RydWN0IHN3aWdfdHlwZV9pbmZvICAqbmV4dDsKICAgc3RydWN0IHN3aWdfdHlwZV9pbmZvICAqcHJldjsKIH0gc3dpZ190eXBlX2luZm87CkBAIC01NSw2ICs1NSw3IEBACiBTV0lHRVhQT1JUKHN3aWdfdHlwZV9pbmZvICopIFNXSUdfVHlwZVJlZ2lzdGVyKHN3aWdfdHlwZV9pbmZvICopOwogU1dJR0VYUE9SVChzd2lnX3R5cGVfaW5mbyAqKSBTV0lHX1R5cGVDaGVjayhjaGFyICpjLCBzd2lnX3R5cGVfaW5mbyAqKTsKIFNXSUdFWFBPUlQodm9pZCAqKSBTV0lHX1R5cGVDYXN0KHN3aWdfdHlwZV9pbmZvICosIHZvaWQgKik7CitTV0lHRVhQT1JUKHN3aWdfdHlwZV9pbmZvICopIFNXSUdfVHlwZVF1ZXJ5KGNvbnN0IGNoYXIgKik7CiAjZWxzZQogCiBzdGF0aWMgc3dpZ190eXBlX2luZm8gKnN3aWdfdHlwZV9saXN0ID0gMDsKQEAgLTEzMiw3ICsxMzMsNyBAQAogfQogCiAvKiBTZWFyY2ggZm9yIGEgc3dpZ190eXBlX2luZm8gc3RydWN0dXJlICovCi1TV0lHUlVOVElNRSh2b2lkICopCitTV0lHUlVOVElNRShzd2lnX3R5cGVfaW5mbyAqKQogU1dJR19UeXBlUXVlcnkoY29uc3QgY2hhciAqbmFtZSkgewogICBzd2lnX3R5cGVfaW5mbyAqdHkgPSBzd2lnX3R5cGVfbGlzdDsKICAgd2hpbGUgKHR5KSB7CmRpZmYgLS1naXQgYS9TV0lHL0xpYi9ndWlsZS9ndWlsZS5pIGIvU1dJRy9MaWIvZ3VpbGUvZ3VpbGUuaQppbmRleCBkZjgxZGU5Li5mNGZjMWVhIDEwMDY0NAotLS0gYS9TV0lHL0xpYi9ndWlsZS9ndWlsZS5pCisrKyBiL1NXSUcvTGliL2d1aWxlL2d1aWxlLmkKQEAgLTEsNCArMSw0IEBACi0vKiBTV0lHIENvbmZpZ3VyYXRpb24gRmlsZSBmb3IgR3VpbGUuIAorLyogU1dJRyBDb25maWd1cmF0aW9uIEZpbGUgZm9yIEd1aWxlLiAtKi1jLSotCiAgICBUaGlzIGZpbGUgaXMgcGFyc2VkIGJ5IFNXSUcgYmVmb3JlIHJlYWRpbmcgYW55IG90aGVyIGludGVyZmFjZQogICAgZmlsZS4gKi8KIApkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvZ3VpbGUvZ3VpbGUuc3dnIGIvU1dJRy9MaWIvZ3VpbGUvZ3VpbGUuc3dnCmluZGV4IDNiNWRkMWUuLjg0MTExNWEgMTAwNjQ0Ci0tLSBhL1NXSUcvTGliL2d1aWxlL2d1aWxlLnN3ZworKysgYi9TV0lHL0xpYi9ndWlsZS9ndWlsZS5zd2cKQEAgLTcsNiArNywxMCBAQAogCiAvKiBTV0lHIHBvaW50ZXIgc3RydWN0dXJlICovCiAKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwogc3RydWN0IFN3aWdDYXN0IHsKICAgdW5zaWduZWQgc2hvcnQgICAgICB0eXBlOwkJICAvKiBJbmRleCBpbnRvIFN3aWdQdHJUYmwgICAgICAgICAgKi8KICAgdm9pZCAgICAgICAgICAgICAgICooKmNhc3QpKHZvaWQgKik7ICAgIC8qIFBvaW50ZXIgY2FzdGluZyBmdW5jdGlvbiAgICAgICAqLwpAQCAtMTQsOCArMTgsOCBAQAogfTsKIAogc3RydWN0IFN3aWdQdHJUeXBlIHsKLSAgY2hhciAgICAgICAgICAgICAgICpuYW1lOyAgICAgICAgICAgICAgIC8qIERhdGF0eXBlIG5hbWUgICAgICAgICAgICAgICAgICAqLwotICBjaGFyCQkgICAgICpwcmV0dHluYW1lOyAgICAgICAgIC8qIFByZXR0eSBkYXRhdHlwZSBuYW1lICAgICAgICAgICAqLworICBjb25zdCBjaGFyICAgICAgICAgKm5hbWU7ICAgICAgICAgICAgICAgLyogRGF0YXR5cGUgbmFtZSAgICAgICAgICAgICAgICAgICovCisgIGNvbnN0IGNoYXIJICAgICAqcHJldHR5bmFtZTsgICAgICAgICAvKiBQcmV0dHkgZGF0YXR5cGUgbmFtZSAgICAgICAgICAgKi8KICAgdW5zaWduZWQgc2hvcnQgICAgICB0YWc7CQkgIC8qIEluZGV4IGluIFN3aWdQdHJUYWJsZSAgICAgICAgICAqLwogICBzdHJ1Y3QgU3dpZ0Nhc3QgICAgKmNhc3Q7CQkgIC8qIExpc3Qgb2YgY29tcGF0aWJsZSB0eXBlcyAgICAgICAqLwogfTsKQEAgLTQ1LDcgKzQ5LDcgQEAKIAogLyogUmVnaXN0ZXIgYSBuZXcgZGF0YXR5cGUgd2l0aCB0aGUgdHlwZS1jaGVja2VyICovCiBTV0lHU1RBVElDIHNpemVfdAotU1dJR19SZWdpc3RlclR5cGUgKGNoYXIgKnR5cGUsIGNoYXIgKnByZXR0eW5hbWUpCitTV0lHX1JlZ2lzdGVyVHlwZSAoY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqcHJldHR5bmFtZSkKIHsKICAgaW50IGk7CiAKQEAgLTkwLDkgKzk0LDggQEAKIAogLyogUmVnaXN0ZXIgdHdvIGRhdGEgdHlwZXMgYW5kIHRoZWlyIG1hcHBpbmcgd2l0aCB0aGUgdHlwZSBjaGVja2VyLiAqLwogU1dJR1NUQVRJQyB2b2lkCi1TV0lHX1JlZ2lzdGVyTWFwcGluZyAoY2hhciAqb3JpZ3R5cGUsIGNoYXIgKm5ld3R5cGUsIHZvaWQgKigqY2FzdCkodm9pZCAqKSkKK1NXSUdfUmVnaXN0ZXJNYXBwaW5nIChjb25zdCBjaGFyICpvcmlndHlwZSwgY29uc3QgY2hhciAqbmV3dHlwZSwgdm9pZCAqKCpjYXN0KSh2b2lkICopKQogewotICBpbnQgaTsKICAgc2l6ZV90IHQgPSBTV0lHX1JlZ2lzdGVyVHlwZShvcmlndHlwZSwgTlVMTCk7CiAKICAgaWYgKG5ld3R5cGUhPU5VTEwpIHsKQEAgLTExOCw3ICsxMjEsNiBAQAogc3RhdGljIHZvaWQKIFNXSUdfU29ydFRhYmxlICh2b2lkKQogewotICBpbnQgaTsKICAgcXNvcnQgKCh2b2lkICopIFN3aWdQdHJUYmwsIFN3aWdQdHJOLCBzaXplb2Yoc2l6ZV90KSwgc3dpZ3NvcnQpOwogICAvKiBJbmRpY2F0ZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgc29ydGVkICovCiAgIFN3aWdQdHJTb3J0ID0gMTsKQEAgLTEzNywxMCArMTM5LDkgQEAKIHN0YXRpYyBTd2lnUHRyVHlwZSAqCiBTV0lHX0dldFB0clR5cGUgKGNvbnN0IGNoYXIgKl90KQogewotICBpbnQgIHN0YXJ0LCBlbmQ7CiAgIHNpemVfdCAqcmVzdWx0OwogICBpZiAoIVN3aWdQdHJTb3J0KSBTV0lHX1NvcnRUYWJsZSgpOwotICByZXN1bHQgPSBic2VhcmNoKF90LCBTd2lnUHRyVGJsLCBTd2lnUHRyTiwgc2l6ZW9mKHNpemVfdCksIHN3aWdjbXApOworICByZXN1bHQgPSAoc2l6ZV90ICopIGJzZWFyY2goX3QsIFN3aWdQdHJUYmwsIFN3aWdQdHJOLCBzaXplb2Yoc2l6ZV90KSwgc3dpZ2NtcCk7CiAgIGlmIChyZXN1bHQhPU5VTEwpIHJldHVybiBTd2lnUHRyTGlzdCsqcmVzdWx0OwogICBlbHNlIHJldHVybiBOVUxMOwogfQpAQCAtMTU2LDggKzE1Nyw4IEBACiAgICAgICAgbWFwcGluZyB0YWJsZSB0byBmaWd1cmUgb3V0IHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhY2NlcHQgdGhpcwogICAgICAgIGRhdGF0eXBlLiAgKi8KICAgICBzdHJ1Y3QgU3dpZ0Nhc3QgKmM7Ci0gICAgZm9yIChjID0gU3dpZ1B0ckxpc3Rbc291cmNlX3R5cGVdLmNhc3Q7Ci0JIGMgJiYgYy0+dHlwZSE9ZGVzdF90eXBlOyBjID0gYy0+bmV4dCkgLyogbm90aGluZyAqLzsKKyAgICBmb3IgKGMgPSBTd2lnUHRyTGlzdFtkZXN0X3R5cGVdLmNhc3Q7CisJIGMgJiYgYy0+dHlwZSE9c291cmNlX3R5cGU7IGMgPSBjLT5uZXh0KSAvKiBub3RoaW5nICovOwogICAgIGlmIChjKSB7CiAgICAgICAvKiBHZXQgcG9pbnRlciB2YWx1ZS4gKi8KICAgICAgIGlmIChjLT5jYXN0KSAqcHRyID0gKCooYy0+Y2FzdCkpKHNvdXJjZSk7CkBAIC0xOTksNyArMjAwLDcgQEAKIAkgICAmJiAodW5zaWduZWQgbG9uZykgU0NNX1RZUDE2KHMpID09IHN3aWdfdGFnKSB7CiAgICAgaWYgKHR5cGUpIAogICAgICAgcmV0dXJuICFTV0lHX0Nhc3QoKHZvaWQgKikgU0NNX0NEUihzKSwKLQkJCVNDTV9DQVIocykgPj4gMTYsCisJCQkobG9uZykgU0NNX0NBUihzKSA+PiAxNiwKIAkJCXJlc3VsdCwgdHlwZS0+dGFnKTsKICAgICBlbHNlIHsKICAgICAgICpyZXN1bHQgPSAodm9pZCAqKSBTQ01fQ0RSKHMpOwpAQCAtMjA5LDE4ICsyMTAsMzAgQEAKICAgcmV0dXJuIDE7CiB9CiAKK1NXSUdTVEFUSUMgdm9pZCAqCitTV0lHX0d1aWxlX011c3RHZXRQdHJfIChTQ00gcywgc3dpZ190eXBlX2luZm8gKnR5cGUsCisJCQlpbnQgYXJnbnVtLCBjb25zdCBjaGFyICpmdW5jX25hbWUpCit7CisgIHZvaWQgKnJlc3VsdDsKKyAgaWYgKFNXSUdfR3VpbGVfR2V0UHRyKHMsICZyZXN1bHQsIHR5cGUpKSB7CisgICAgLyogdHlwZSBtaXNtYXRjaCAqLworICAgIHNjbV93cm9uZ190eXBlX2FyZygoY2hhciAqKSBmdW5jX25hbWUsIGFyZ251bSwgcyk7CisgIH0KKyAgcmV0dXJuIHJlc3VsdDsKK30KKwogLyogSW5pdCAqLwogCiBzdGF0aWMgaW50CiBwcmludF9zd2lnIChTQ00gc3dpZ19zbW9iLCBTQ00gcG9ydCwgc2NtX3ByaW50X3N0YXRlICpwc3RhdGUpCiB7Ci0gIGNoYXIgYnVmWzE2XTsKICAgc2NtX3B1dHMoIiM8c3dpZyAiLCBwb3J0KTsKLSAgaWYgKFN3aWdQdHJMaXN0W1NDTV9DQVIoc3dpZ19zbW9iKSA+PiAxNl0ucHJldHR5bmFtZSAhPSBOVUxMKQotICAgIHNjbV9wdXRzKFN3aWdQdHJMaXN0W1NDTV9DQVIoc3dpZ19zbW9iKSA+PiAxNl0ucHJldHR5bmFtZSwgcG9ydCk7Ci0gIGVsc2Ugc2NtX3B1dHMoU3dpZ1B0ckxpc3RbU0NNX0NBUihzd2lnX3Ntb2IpID4+IDE2XS5uYW1lLCBwb3J0KTsKLSAgc3ByaW50ZihidWYsICIgMHglbHg+IiwgU0NNX0NEUihzd2lnX3Ntb2IpKTsKLSAgc2NtX3B1dHMoYnVmLCBwb3J0KTsKKyAgaWYgKFN3aWdQdHJMaXN0Wyhsb25nKSBTQ01fQ0FSKHN3aWdfc21vYikgPj4gMTZdLnByZXR0eW5hbWUgIT0gTlVMTCkKKyAgICBzY21fcHV0cyhTd2lnUHRyTGlzdFsobG9uZykgU0NNX0NBUihzd2lnX3Ntb2IpID4+IDE2XS5wcmV0dHluYW1lLCBwb3J0KTsKKyAgZWxzZSBzY21fcHV0cyhTd2lnUHRyTGlzdFsobG9uZykgU0NNX0NBUihzd2lnX3Ntb2IpID4+IDE2XS5uYW1lLCBwb3J0KTsKKyAgc2NtX3B1dHMoIiAiLCBwb3J0KTsKKyAgc2NtX2ludHByaW50KChsb25nKSBTQ01fQ0RSKHN3aWdfc21vYiksIDE2LCBwb3J0KTsKKyAgc2NtX3B1dHMoIj4iLCBwb3J0KTsKICAgLyogbm9uLXplcm8gbWVhbnMgc3VjY2VzcyAqLwogICByZXR1cm4gMTsKIH0KQEAgLTIzOCw3ICsyNTEsNyBAQAogU1dJR19HdWlsZV9Jbml0ICh2b2lkKQogewogICBpZiAoc3dpZ190YWcgPT0gMCkgewotICAgIHN3aWdfdGFnID0gc2NtX21ha2Vfc21vYl90eXBlX21mcGUoInN3aWciLCAwLCBOVUxMLCBOVUxMLAorICAgIHN3aWdfdGFnID0gc2NtX21ha2Vfc21vYl90eXBlX21mcGUoKGNoYXIgKikgInN3aWciLCAwLCBOVUxMLCBOVUxMLAogCQkJCSAgICAgICBwcmludF9zd2lnLCBlcXVhbHBfc3dpZyk7CiAgIH0KIH0KQEAgLTI0NiwxMSArMjU5LDEyIEBACiAvKiBDb252ZXJ0IGRhdGF0eXBlIHRhYmxlICovCiAKIFNXSUdTVEFUSUMKLXZvaWQgU1dJR19HdWlsZV9SZWdpc3RlclR5cGVzKHN3aWdfdHlwZV9pbmZvICoqdGFibGUpCit2b2lkIFNXSUdfR3VpbGVfUmVnaXN0ZXJUeXBlcyhzd2lnX3R5cGVfaW5mbyAqKnRhYmxlLAorCQkJICAgICAgc3dpZ190eXBlX2luZm8gKippbml0KQogewotICBmb3IgKDsgKnRhYmxlOyB0YWJsZSsrKSB7Ci0gICAgc3dpZ190eXBlX2luZm8gKnR5cGUgPSAqdGFibGU7Ci0gICAgY2hhciAqb3JpZ25hbWUgPSB0eXBlLT5uYW1lOworICBmb3IgKDsgKmluaXQ7IHRhYmxlKyssIGluaXQrKykgeworICAgIHN3aWdfdHlwZV9pbmZvICp0eXBlID0gKnRhYmxlID0gKmluaXQ7CisgICAgY29uc3QgY2hhciAqb3JpZ25hbWUgPSB0eXBlLT5uYW1lOwogICAgIC8qIFJlZ2lzdGVyIGRhdGF0eXBlIGl0c2VsZiBhbmQgc3RvcmUgcG9pbnRlciBiYWNrICovCiAgICAgdHlwZS0+dGFnID0gU1dJR19SZWdpc3RlclR5cGUob3JpZ25hbWUsIHR5cGUtPnN0cik7CiAgICAgLyogUmVnaXN0ZXIgY29tcGF0aWJsZSB0eXBlcyAqLwpAQCAtMjY3LDcgKzI4MSw3IEBACiAgIGludCBpOwogICBmb3IgKGkgPSAwOyBpPHJlcWFyZ3M7IGkrKykgewogICAgIGlmICghU0NNX0NPTlNQKHJlc3QpKQotICAgICAgc2NtX3dyb25nX251bV9hcmdzKGdoX3N0cjAyc2NtKHByb2NuYW1lKSk7CisgICAgICBzY21fd3JvbmdfbnVtX2FyZ3MoZ2hfc3RyMDJzY20oKGNoYXIgKikgcHJvY25hbWUpKTsKICAgICAqZGVzdCsrID0gU0NNX0NBUihyZXN0KTsKICAgICByZXN0ID0gU0NNX0NEUihyZXN0KTsKICAgfQpAQCAtMjc4LDcgKzI5Miw3IEBACiAgIGZvciAoOyBpPG9wdGFyZ3M7IGkrKykKICAgICAqZGVzdCsrID0gR0hfTk9UX1BBU1NFRDsKICAgaWYgKCFTQ01fTlVMTFAocmVzdCkpCi0gICAgc2NtX3dyb25nX251bV9hcmdzKGdoX3N0cjAyc2NtKHByb2NuYW1lKSk7CisgICAgc2NtX3dyb25nX251bV9hcmdzKGdoX3N0cjAyc2NtKChjaGFyICopIHByb2NuYW1lKSk7CiB9CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvZ3VpbGUvZ3VpbGVkZWMuc3dnIGIvU1dJRy9MaWIvZ3VpbGUvZ3VpbGVkZWMuc3dnCmluZGV4IDk0NzYxOWMuLmQ3NjNmMDggMTAwNjQ0Ci0tLSBhL1NXSUcvTGliL2d1aWxlL2d1aWxlZGVjLnN3ZworKysgYi9TV0lHL0xpYi9ndWlsZS9ndWlsZWRlYy5zd2cKQEAgLTI3LDE3ICsyNywyOSBAQAogI2RlZmluZSBHSF9OT1RfUEFTU0VEICAgIFNDTV9VTkRFRklORUQKICNkZWZpbmUgR0hfVU5TUEVDSUZJRUQgICBTQ01fVU5TUEVDSUZJRUQKIAotI2RlZmluZSBHVUlMRV9BUFBFTkRfUkVTVUxUKG9iamVjdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoZ3N3aWdfcmVzdWx0ID09IEdIX1VOU1BFQ0lGSUVEKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGdzd2lnX3Jlc3VsdCA9IG9iamVjdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKCFnaF9wYWlyX3AoZ3N3aWdfcmVzdWx0KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JICAgIGdzd2lnX3Jlc3VsdCA9IGdoX2xpc3QoZ3N3aWdfcmVzdWx0LCBvYmplY3QsIEdIX05PVF9QQVNTRUQpOyBcCi0gICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgZ3N3aWdfcmVzdWx0ID0gZ2hfYXBwZW5kMihnc3dpZ19yZXN1bHQsICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2hfbGlzdChvYmplY3QsIEdIX05PVF9QQVNTRUQpKTsgICBcCisjZGVmaW5lIEdVSUxFX0FQUEVORF9SRVNVTFQob2JqZWN0KQkJCQkJCVwKKyAgICBpZiAoZ3N3aWdfcmVzdWx0ID09IEdIX1VOU1BFQ0lGSUVEKQkJCQkJCVwKKyAgICAgICAgZ3N3aWdfcmVzdWx0ID0gb2JqZWN0OwkJCQkJCQlcCisgICAgZWxzZSB7CQkJCQkJCQkJXAorICAgICAgICBpZiAoIWdzd2lnX2xpc3RfcCkgewkJCQkJCQlcCisJICAgIGdzd2lnX2xpc3RfcCA9IDE7CQkJCQkJCVwKKwkgICAgZ3N3aWdfcmVzdWx0ID0gZ2hfbGlzdChnc3dpZ19yZXN1bHQsIG9iamVjdCwgR0hfTk9UX1BBU1NFRCk7CVwKKyAgICAgICAgfQkJCQkJCQkJCVwKKyAgICAgICAgZWxzZQkJCQkJCQkJCVwKKyAgICAgICAgICAgIGdzd2lnX3Jlc3VsdCA9IGdoX2FwcGVuZDIoZ3N3aWdfcmVzdWx0LAkJCQlcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdoX2xpc3Qob2JqZWN0LCBHSF9OT1RfUEFTU0VEKSk7CQlcCiAgICAgfQogCisvKiBzY21fdmFsdWVzIHdhcyBpbXBsZW1lbnRlZCBvbiBDIGxldmVsIGluIDEuNC4xLCBhbmQgdGhlIHByb3RvdHlwZQorICAgaXMgbm90IGluY2x1ZGVkIGluIGxpYmd1aWxlLmgsIHNvIHBsYXkgc2FmZSBhbmQgbG9va3VwIGB2YWx1ZXMnLi4uICovCisjZGVmaW5lIEdVSUxFX01BWUJFX1ZBTFVFUwkJCQkJCVwKKyAgICBpZiAoZ3N3aWdfbGlzdF9wKQkJCQkJCQlcCisgICAgICAgIGdzd2lnX3Jlc3VsdCA9IGdoX2FwcGx5KGdoX2xvb2t1cCgidmFsdWVzIiksIGdzd2lnX3Jlc3VsdCk7CisgICAgCisjZGVmaW5lIEdVSUxFX01BWUJFX1ZFQ1RPUgkJCQlcCisgICAgaWYgKGdzd2lnX2xpc3RfcCkJCQkJCVwKKyAgICAgICAgZ3N3aWdfcmVzdWx0ID0gZ2hfbGlzdF90b192ZWN0b3IoZ3N3aWdfcmVzdWx0KTsKKwogc3RhdGljIGNoYXIgKgogR1NXSUdfc2NtMnN0ciAoU0NNIHMpCiB7CkBAIC03MiwxNiArODQsMTUgQEAKIHR5cGVkZWYgc3RydWN0IFN3aWdQdHJUeXBlIFN3aWdQdHJUeXBlOwogCiB0eXBlZGVmIHN0cnVjdCBzd2lnX3R5cGVfaW5mbyB7Ci0gIGNoYXIgICpuYW1lOworICBjb25zdCBjaGFyICAqbmFtZTsKICAgdm9pZCAqKCpjb252ZXJ0ZXIpKHZvaWQgKik7Ci0gIGNoYXIgICpzdHI7CisgIGNvbnN0IGNoYXIgICpzdHI7CiAgIHNpemVfdCB0YWc7CiB9IHN3aWdfdHlwZV9pbmZvOwogCi0jZGVmaW5lIHN3aWdfdHlwZXNfaW5pdGlhbCBzd2lnX3R5cGVzCi0KIFNXSUdTVEFUSUMgdm9pZAotU1dJR19HdWlsZV9SZWdpc3RlclR5cGVzIChzd2lnX3R5cGVfaW5mbyAqKnRhYmxlKTsKK1NXSUdfR3VpbGVfUmVnaXN0ZXJUeXBlcyAoc3dpZ190eXBlX2luZm8gKip0YWJsZSwKKwkJCSAgc3dpZ190eXBlX2luZm8gKippbml0KTsKIAogLyogUmVnaXN0ZXIgYSBuZXcgdHlwZS1tYXBwaW5nIHdpdGggdGhlIHR5cGUtY2hlY2tlci4gIG9yaWd0eXBlIGlzIHRoZQogICAgb3JpZ2luYWwgZGF0YXR5cGUgYW5kIG5ld3R5cGUgaXMgYW4gZXF1aXZhbGVudCB0eXBlLiAgY2FzdCBpcyBvcHRpb25hbApAQCAtOTAsNyArMTAxLDcgQEAKICAgIEMrKykuICAqLwogCiBTV0lHU1RBVElDIHZvaWQKLVNXSUdfUmVnaXN0ZXJNYXBwaW5nIChjaGFyICpvcmlndHlwZSwgY2hhciAqbmV3dHlwZSwKK1NXSUdfUmVnaXN0ZXJNYXBwaW5nIChjb25zdCBjaGFyICpvcmlndHlwZSwgY29uc3QgY2hhciAqbmV3dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKmNhc3QpKHZvaWQgKikpOwogCiAvKiBSZWdpc3RlciBTV0lHIHNtb2JzIHdpdGggR3VpbGUuICAqLwpAQCAtMTA2LDYgKzExNywxNiBAQAogU1dJR1NUQVRJQyBpbnQKIFNXSUdfR3VpbGVfR2V0UHRyIChTQ00gcywgdm9pZCAqKnJlc3VsdCwgc3dpZ190eXBlX2luZm8gKnR5cGUpOwogCisvKiBHZXQgYSBwb2ludGVyIHZhbHVlIGZyb20gYSBzbW9iLiAgSWYgdGhlcmUgaXMgYSB0eXBlLW1pc21hdGNoLAorICAgc2lnbmFsIGEgd3JvbmctdHlwZS1hcmcgZXJyb3IgZm9yIHRoZSBnaXZlbiBhcmd1bWVudCBudW1iZXIuICovCitTV0lHU1RBVElDIHZvaWQgKgorU1dJR19HdWlsZV9NdXN0R2V0UHRyXyAoU0NNIHMsIHN3aWdfdHlwZV9pbmZvICp0eXBlLAorCQkJaW50IGFyZ251bSwgY29uc3QgY2hhciAqZnVuY19uYW1lKTsKKworLyogVXNlIHRoaXMgY29udmVuaWVuY2UgbWFjcm8gaW5zdGVhZCBvZiB0aGUgYWJvdmUgZnVuY3Rpb24uICovCisjZGVmaW5lIFNXSUdfR3VpbGVfTXVzdEdldFB0cihzLCB0eXBlLCBhcmdudW0pIFwKKyAgU1dJR19HdWlsZV9NdXN0R2V0UHRyXyhzLCB0eXBlLCBhcmdudW0sIEZVTkNfTkFNRSkKKwogLyogTWFrZSBhIHNtb2IgZnJvbSBhIHBvaW50ZXIgYW5kIHR5cGVpbmZvLiAgKi8KIFNXSUdTVEFUSUMgU0NNCiBTV0lHX0d1aWxlX01ha2VQdHIgKHZvaWQgKnB0ciwgc3dpZ190eXBlX2luZm8gKnR5cGUpOwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvZ3VpbGUvZ3VpbGVtYWluLmkgYi9TV0lHL0xpYi9ndWlsZS9ndWlsZW1haW4uaQppbmRleCBjZDdkYTk4Li43ZDVlYWNmIDEwMDY0NAotLS0gYS9TV0lHL0xpYi9ndWlsZS9ndWlsZW1haW4uaQorKysgYi9TV0lHL0xpYi9ndWlsZS9ndWlsZW1haW4uaQpAQCAtMjcsNiArMjcsMTAgQEAKICV7CiAjaW5jbHVkZSA8bGliZ3VpbGUuaD4KIAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCiAvKiBEZWJ1Z2dlciBpbnRlcmZhY2UgKGRvbid0IGNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIGZvbGxvd2luZyBsaW5lcykgKi8KICNkZWZpbmUgR0RCX1RZUEUgU0NNCiAjaW5jbHVkZSA8bGliZ3VpbGUvZ2RiX2ludGVyZmFjZS5oPgpAQCAtNDQsNiArNDgsMTAgQEAKICAgLyogbmV2ZXIgcmVhY2hlZDogc2NtX3NoZWxsIHdpbGwgcGVyZm9ybSBhbiBleGl0ICovCiB9CiAKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKIGludAogbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CmRpZmYgLS1naXQgYS9TV0lHL0xpYi9ndWlsZS9saXN0LXZlY3Rvci5pIGIvU1dJRy9MaWIvZ3VpbGUvbGlzdC12ZWN0b3IuaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2E1YzdkCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9MaWIvZ3VpbGUvbGlzdC12ZWN0b3IuaQpAQCAtMCwwICsxLDIyMiBAQAorLyogbGlzdC12ZWN0b3IuaSAtLS0gR3VpbGUgdHlwZW1hcHMgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiAtKi0gYyAtKi0gYXJyYXlzCisJCSAgICAgYW5kIFNjaGVtZSBsaXN0cyBvciB2ZWN0b3JzICAKKworICAgQ29weXJpZ2h0IChDKSAyMDAxIE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUBtYWlsLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4KKworICAgJEhlYWRlciQKKyovCisKKy8qIEhlcmUgaXMgYSBtYWNybyB0aGF0IHdpbGwgZGVmaW5lIHR5cGVtYXBzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gQworICAgYXJyYXlzIGFuZCBTY2hlbWUgbGlzdHMgb3IgdmVjdG9ycyB3aGVuIHBhc3NpbmcgYXJndW1lbnRzIHRvIHRoZSBDCisgICBmdW5jdGlvbi4KKworICAgVFlQRU1BUF9MSVNUX1ZFQ1RPUl9JTlBVVF9PVVRQVVQoQ19UWVBFLCBTQ01fVE9fQywgQ19UT19TQ00sIFNDTV9UWVBFKQorICAgCisgICBTdXBwb3J0ZWQgY2FsbGluZyBjb252ZW50aW9uczoKKworICAgZnVuYyhpbnQgVkVDVE9STEVOSU5QVVQsIFtjb25zdF0gQ19UWVBFICpWRUNUT1JJTlBVVCkgIG9yCisgICBmdW5jKFtjb25zdF0gQ19UWVBFICpWRUNUT1JJTlBVVCwgaW50IFZFQ1RPUkxFTklOUFVUKQorCisgICAgICAgU2NoZW1lIHdyYXBwZXIgd2lsbCB0YWtlIG9uZSBhcmd1bWVudCwgYSB2ZWN0b3IuICBBIHRlbXBvcmFyeSBDCisgICAgICAgYXJyYXkgb2YgZWxlbWVudHMgb2YgdHlwZSBDX1RZUEUgd2lsbCBiZSBhbGxvY2F0ZWQgYW5kIGZpbGxlZAorICAgICAgIHdpdGggdGhlIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3JzLCBjb252ZXJ0ZWQgdG8gQyB3aXRoIHRoZQorICAgICAgIFNDTV9UT19DIGZ1bmN0aW9uLiAgTGVuZ3RoIGFuZCBhZGRyZXNzIG9mIHRoZSBhcnJheSBhcmUgcGFzc2VkCisgICAgICAgdG8gdGhlIEMgZnVuY3Rpb24uCisKKyAgICAgICBTQ01fVFlQRSBpcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBTY2hlbWUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaW4KKyAgICAgICB0aGUgR3VpbGUgcHJvY2VkdXJlIGRvY3VtZW50YXRpb24uCisgICAKKyAgIGZ1bmMoaW50IExJU1RMRU5JTlBVVCwgW2NvbnN0XSBDX1RZUEUgKkxJU1RJTlBVVCkgb3IKKyAgIGZ1bmMoW2NvbnN0XSBDX1RZUEUgKkxJU1RJTlBVVCwgaW50IExJU1RMRU5JTlBVVCkKKworICAgICAgIExpa2V3aXNlLCBidXQgdGhlIFNjaGVtZSB3cmFwcGVyIHdpbGwgdGFrZSBvbmUgYXJndW1lbnQsIGEgbGlzdC4KKworICAgZnVuYyhpbnQgKlZFQ1RPUkxFTk9VVFBVVCwgQ19UWVBFICoqVkVDVE9ST1VUUFVUKSBvcgorICAgZnVuYyhDX1RZUEUgKipWRUNUT1JPVVRQVVQsIGludCAqVkVDVE9STEVOT1VUUFVUKQorCisgICAgICAgU2NoZW1lIHdyYXBwZXIgd2lsbCB0YWtlIG5vIGFyZ3VtZW50cy4gIEFkZHJlc3NlcyBvZiBhbiBpbnRlZ2VyCisgICAgICAgYW5kIGEgQ19UWVBFICogdmFyaWFibGUgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIEMgZnVuY3Rpb24uICBUaGUKKyAgICAgICBDIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhZGRyZXNzIGFuZCBsZW5ndGggb2YgYQorICAgICAgIGZyZXNobHkgYWxsb2NhdGVkIGFycmF5IG9mIGVsZW1lbnRzIG9mIHR5cGUgQ19UWVBFIHRocm91Z2gKKyAgICAgICB0aGVzZSBwb2ludGVycy4gIFRoZSBlbGVtZW50cyBvZiB0aGlzIGFycmF5IGFyZSBjb252ZXJ0ZWQgdG8KKyAgICAgICBTY2hlbWUgd2l0aCB0aGUgQ19UT19TQ00gZnVuY3Rpb24gYW5kIHJldHVybmVkIGFzIGEgU2NoZW1lCisgICAgICAgdmVjdG9yLiAKKworICAgICAgIElmIHRoZSBmdW5jdGlvbiBoYXMgYSB2b2lkIHJldHVybiB2YWx1ZSwgdGhlIHZlY3RvciBjb25zdHJ1Y3RlZAorICAgICAgIGJ5IHRoaXMgdHlwZW1hcCBiZWNvbWVzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIFNjaGVtZSB3cmFwcGVyLgorICAgICAgIE90aGVyd2lzZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgbXVsdGlwbGUgdmFsdWVzLiAgKFNlZQorICAgICAgIERvYy9pbnRlcm5hbHMuaHRtbCBvbiBob3cgdG8gZGVhbCB3aXRoIG11bHRpcGxlIHZhbHVlcy4pCisKKyAgIGZ1bmMoaW50ICpMSVNUTEVOT1VUUFVULCBDX1RZUEUgKipMSVNUT1VUUFVUKSBvcgorICAgZnVuYyhDX1RZUEUgKipMSVNUT1VUUFVULCBpbnQgKkxJU1RMRU5PVVRQVVQpCisKKyAgICAgICBMaWtld2lzZSwgYnV0IHRoZSBTY2hlbWUgd3JhcHBlciB3aWxsIHJldHVybiBhIGxpc3QgaW5zdGVhZCBvZgorICAgICAgIGEgdmVjdG9yLgorCisgICBNdWx0aXBsZSBwYXJhbGxlbCBsaXN0cyBhbmQgdmVjdG9ycyAoc2hhcmluZyBvbmUgbGVuZ3RoIGFyZ3VtZW50CisgICBlYWNoKSBhcmUgYWxzbyBzdXBwb3J0ZWQuICAqLworCislZGVmaW5lIFRZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKENfVFlQRSwgU0NNX1RPX0MsIENfVE9fU0NNLCBTQ01fVFlQRSkKKworICAvKiBpbnB1dCAqLworICAgICAKKyAgICAgLyogUGFzc2luZyBkYXRhIGlzIGEgbGl0dGxlIGNvbXBsaWNhdGVkIGhlcmU7IGp1c3QgcmVtZW1iZXI6CisJSUdOT1JFIHR5cGVtYXBzIGNvbWUgZmlyc3QsIHRoZW4gSU4sIHRoZW4gQ0hFQ0suICBCdXQgaWYKKwlJR05PUkUgaXMgZ2l2ZW4sIElOIHdvbid0IGJlIHVzZWQgZm9yIHRoaXMgdHlwZS4KKworCVdlIG5lZWQgdG8gImlnbm9yZSIgb25lIG9mIHRoZSBwYXJhbWV0ZXJzIGJlY2F1c2UgdGhlcmUgc2hhbGwKKwliZSBvbmx5IG9uZSBhcmd1bWVudCBvbiB0aGUgU2NoZW1lIHNpZGUuICBIZXJlIHdlIG9ubHkKKwlpbml0aWFsaXplIHRoZSBhcnJheSBsZW5ndGggdG8gMCBidXQgc2F2ZSBpdHMgYWRkcmVzcyBmb3IgYQorCWxhdGVyIGNoYW5nZS4gICovCisgICAgIAorICAgICAldHlwZW1hcChpZ25vcmUpIGludCBWRUNUT1JMRU5JTlBVVCAoaW50ICp2ZWN0b3JfbGVuZ3RoKQorICAgICB7CQkgICAgICAKKyAgICAgICAkdGFyZ2V0ID0gMDsKKyAgICAgICB2ZWN0b3JfbGVuZ3RoID0gJiR0YXJnZXQ7CisgICAgIH0KKworICAgICAldHlwZW1hcChpZ25vcmUpIGludCBMSVNUTEVOSU5QVVQgKGludCAqbGlzdF9sZW5ndGgpICAgCisgICAgIHsJCSAgICAgIAorICAgICAgICR0YXJnZXQgPSAwOworICAgICAgIGxpc3RfbGVuZ3RoID0gJiR0YXJnZXQ7CisgICAgIH0KKworICAgICAvKiBBbGwgdGhlIHdvcmsgaXMgZG9uZSBpbiBJTi4gKi8KKworICAgICAldHlwZW1hcChpbikgQ19UWVBFICpWRUNUT1JJTlBVVCwKKwkJICBjb25zdCBDX1RZUEUgKlZFQ1RPUklOUFVUCisgICAgIHsKKyAgICAgICBTQ01fVkFMSURBVEVfVkVDVE9SKCRhcmdudW0sICRzb3VyY2UpOworICAgICAgICp2ZWN0b3JfbGVuZ3RoID0gZ2hfdmVjdG9yX2xlbmd0aCgkc291cmNlKTsKKyAgICAgICBpZiAoKnZlY3Rvcl9sZW5ndGggPiAwKSB7CisJIGludCBpOworCSAkdGFyZ2V0ID0gU0NNX01VU1RfTUFMTE9DKHNpemVvZihDX1RZUEUpCisJCQkJICAgKiAoKnZlY3Rvcl9sZW5ndGgpKTsKKwkgZm9yIChpID0gMDsgaTwqdmVjdG9yX2xlbmd0aDsgaSsrKSB7CisJICAgU0NNIGVsdCA9IGdoX3ZlY3Rvcl9yZWYoJHNvdXJjZSwgZ2hfaW50MnNjbShpKSk7CisJICAgJHRhcmdldFtpXSA9IFNDTV9UT19DKGVsdCk7CisJIH0KKyAgICAgICB9CisgICAgICAgZWxzZSAkdGFyZ2V0ID0gTlVMTDsKKyAgICAgfQorCSAKKyAgICAgJXR5cGVtYXAoaW4pIENfVFlQRSAqTElTVElOUFVULAorCQkgIGNvbnN0IENfVFlQRSAqTElTVElOUFVUCisgICAgIHsKKyAgICAgICBTQ01fVkFMSURBVEVfTElTVCgkYXJnbnVtLCAkc291cmNlKTsKKyAgICAgICAqbGlzdF9sZW5ndGggPSBnaF9sZW5ndGgoJHNvdXJjZSk7CisgICAgICAgaWYgKCpsaXN0X2xlbmd0aCA+IDApIHsKKwkgaW50IGk7CisJIFNDTSByZXN0OworCSAkdGFyZ2V0ID0gU0NNX01VU1RfTUFMTE9DKHNpemVvZihDX1RZUEUpCisJCQkJICAgKiAoKmxpc3RfbGVuZ3RoKSk7CisJIGZvciAoaSA9IDAsIHJlc3QgPSAkc291cmNlOworCSAgICAgIGk8Kmxpc3RfbGVuZ3RoOworCSAgICAgIGkrKywgcmVzdCA9IGdoX2NkcihyZXN0KSkgeworCSAgIFNDTSBlbHQgPSBnaF9jYXIocmVzdCk7CisJICAgJHRhcmdldFtpXSA9IFNDTV9UT19DKGVsdCk7CisJIH0KKyAgICAgICB9CisgICAgICAgZWxzZSAkdGFyZ2V0ID0gTlVMTDsKKyAgICAgfQorCisgICAgIC8qIERvbid0IGNoZWNrIGZvciBOVUxMIHBvaW50ZXJzIChvdmVycmlkZSBjaGVja3MpLiAqLworCisgICAgICV0eXBlbWFwKGNoZWNrKSBDX1RZUEUgKlZFQ1RPUklOUFVULCAKKwkJICAgICBjb25zdCBDX1RZUEUgKlZFQ1RPUklOUFVULAorCQkgICAgIENfVFlQRSAqTElTVElOUFVULCAKKwkJICAgICBjb25zdCBDX1RZUEUgKkxJU1RJTlBVVAorICAgICAgICIvKiBubyBjaGVjayBmb3IgTlVMTCBwb2ludGVyICovIjsKKworICAgICAvKiBEaXNjYXJkIHRoZSB0ZW1wb3JhcnkgYXJyYXkgYWZ0ZXIgdGhlIGNhbGwuICovCisKKyAgICAgJXR5cGVtYXAoZnJlZWFyZykgQ19UWVBFICpWRUNUT1JJTlBVVCwgCisJCSAgICAgICBjb25zdCBDX1RZUEUgKlZFQ1RPUklOUFVULAorCQkgICAgICAgQ19UWVBFICpMSVNUSU5QVVQsIAorCQkgICAgICAgY29uc3QgQ19UWVBFICpMSVNUSU5QVVQKKyAgICAgICAiaWYgKCR0YXJnZXQhPU5VTEwpIHNjbV9tdXN0X2ZyZWUoJHRhcmdldCk7IjsKKworICAgICAvKiBPbiB0aGUgU2NoZW1lIHNpZGUsIHRoZSBhcmd1bWVudCBpcyBhIHZlY3RvciBvciBhIGxpc3QsIHNvIHNheQorCXNvIGluIHRoZSBhcmdsaXN0IGRvY3VtZW50YXRpb24uICovCisKKyAgICAgJXR5cGVtYXAoaW5kb2MpIENfVFlQRSAqVkVDVE9SSU5QVVQsCisJCSAgICAgY29uc3QgQ19UWVBFICpWRUNUT1JJTlBVVCAKKyAgICAgICAiKCRhcmcgPHZlY3RvciBvZiA8U0NNX1RZUEU+PikiOworCisgICAgICV0eXBlbWFwKGluZG9jKSBDX1RZUEUgKkxJU1RJTlBVVCwKKwkJICAgICBjb25zdCBDX1RZUEUgKkxJU1RJTlBVVCAKKyAgICAgICAiKCRhcmcgPGxpc3Qgb2YgPFNDTV9UWVBFPj4pIjsKKworICAvKiBvdXRwdXQgKi8KKworICAgICAvKiBGaXJzdCB3ZSBtYWtlIGEgdGVtcG9yYXJ5IHZhcmlhYmxlIEFSUkFZTEVOVEVNUCwgdXNlIGl0cworICAgICAgICBhZGRyZXNzIGFzIHRoZSAuLi5MRU5PVVRQVVQgYXJndW1lbnQgZm9yIHRoZSBDIGZ1bmN0aW9uIGFuZAorICAgICAgICAiaWdub3JlIiB0aGUgLi4uTEVOT1VUUFVUIGFyZ3VtZW50IGZvciBTY2hlbWUuICAqLworCisgICAgICV0eXBlbWFwKGlnbm9yZSkgaW50ICpWRUNUT1JMRU5PVVRQVVQgKGludCBhcnJheWxlbnRlbXApLAorCQkgICAgICBpbnQgKkxJU1RMRU5PVVRQVVQgICAoaW50IGFycmF5bGVudGVtcCkKKyAgICAgICAiJHRhcmdldCA9ICZhcnJheWxlbnRlbXA7IjsKKworICAgICAvKiBXZSBhbHNvIG5lZWQgdG8gaWdub3JlIHRoZSAuLi5PVVRQVVQgYXJndW1lbnQuICovCisKKyAgICAgJXR5cGVtYXAoaWdub3JlKSBDX1RZUEUgKipWRUNUT1JPVVRQVVQgKENfVFlQRSAqYXJyYXl0ZW1wKSwKKwkJICAgICAgQ19UWVBFICoqTElTVE9VVFBVVCAgIChDX1RZUEUgKmFycmF5dGVtcCkKKyAgICAgICAiJHRhcmdldCA9ICZhcnJheXRlbXA7IjsKKworICAgICAvKiBJbiB0aGUgQVJHT1VUIHR5cGVtYXBzLCB3ZSBjb252ZXJ0IHRoZSBhcnJheSBpbnRvIGEgdmVjdG9yIG9yCisgICAgICAgIGEgbGlzdCBhbmQgYXBwZW5kIGl0IHRvIHRoZSByZXN1bHRzLiAqLworCisgICAgICV0eXBlbWFwKGFyZ291dCkgQ19UWVBFICoqVkVDVE9ST1VUUFVUCisgICAgIHsKKyAgICAgICBpbnQgaTsKKyAgICAgICBTQ00gcmVzID0gZ2hfbWFrZV92ZWN0b3IoZ2hfaW50MnNjbShhcnJheWxlbnRlbXApLAorCQkJCVNDTV9CT09MX0YpOworICAgICAgIGZvciAoaSA9IDA7IGk8YXJyYXlsZW50ZW1wOyBpKyspIHsKKwkgU0NNIGVsdCA9IENfVE9fU0NNKCgqJHRhcmdldClbaV0pOworCSBnaF92ZWN0b3Jfc2V0X3gocmVzLCBnaF9pbnQyc2NtKGkpLCBlbHQpOworICAgICAgIH0KKyAgICAgICBpZiAoKCokdGFyZ2V0KSE9TlVMTCkgZnJlZSgqJHRhcmdldCk7CisgICAgICAgR1VJTEVfQVBQRU5EX1JFU1VMVChyZXMpOworICAgICB9CisKKyAgICAgJXR5cGVtYXAoYXJnb3V0KSBDX1RZUEUgKipMSVNUT1VUUFVUCisgICAgIHsKKyAgICAgICBpbnQgaTsKKyAgICAgICBTQ00gcmVzID0gU0NNX0VPTDsKKyAgICAgICBmb3IgKGkgPSBhcnJheWxlbnRlbXAgLSAxOyBpPj0wOyBpLS0pIHsKKwkgU0NNIGVsdCA9IENfVE9fU0NNKCgqJHRhcmdldClbaV0pOworCSByZXMgPSBnaF9jb25zKGVsdCwgcmVzKTsKKyAgICAgICB9CisgICAgICAgaWYgKCgqJHRhcmdldCkhPU5VTEwpIGZyZWUoKiR0YXJnZXQpOworICAgICAgIEdVSUxFX0FQUEVORF9SRVNVTFQocmVzKTsKKyAgICAgfQorCisgICAgIC8qIFdlIHJldHVybiBhIHZlY3RvciBvciBhIGxpc3QsIHNvIHNheSBzbyBpbiB0aGUgcHJvY2VkdXJlCisgICAgICAgIGRvY3VtZW50YXRpb24uICovCisKKyAgICAgJXR5cGVtYXAoYXJnb3V0ZG9jKSBDX1RZUEUgKipWRUNUT1JPVVRQVVQgCisgICAgICAgIigkYXJnIDx2ZWN0b3Igb2YgPFNDTV9UWVBFPj4pIjsKKworICAgICAldHlwZW1hcChhcmdvdXRkb2MpIENfVFlQRSAqKkxJU1RPVVRQVVQKKyAgICAgICAiKCRhcmcgPGxpc3Qgb2YgPFNDTV9UWVBFPj4pIjsKKworJWVuZGRlZgorCisvKiBXZSB1c2UgdGhlIG1hY3JvIHRvIGRlZmluZSB0eXBlbWFwcyBmb3Igc29tZSBzdGFuZGFyZCB0eXBlcy4gKi8KKworVFlQRU1BUF9MSVNUX1ZFQ1RPUl9JTlBVVF9PVVRQVVQoYm9vbCwgZ2hfc2NtMmJvb2wsIGdoX2Jvb2wyc2NtLCBib29sZWFuKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKGNoYXIsIEdTV0lHX3NjbTJjaGFyLCBnaF9jaGFyMnNjbSwgY2hhcik7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVCh1bnNpZ25lZCBjaGFyLCBHU1dJR19zY20yY2hhciwgZ2hfY2hhcjJzY20sIGNoYXIpOworVFlQRU1BUF9MSVNUX1ZFQ1RPUl9JTlBVVF9PVVRQVVQoaW50LCBnaF9zY20yaW50LCBnaF9pbnQyc2NtLCBpbnRlZ2VyKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKHNob3J0LCBnaF9zY20yaW50LCBnaF9pbnQyc2NtLCBpbnRlZ2VyKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKGxvbmcsIGdoX3NjbTJsb25nLCBnaF9sb25nMnNjbSwgaW50ZWdlcik7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVChwdHJkaWZmX3QsIGdoX3NjbTJsb25nLCBnaF9sb25nMnNjbSwgaW50ZWdlcik7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVCh1bnNpZ25lZCBpbnQsIGdoX3NjbTJ1bG9uZywgZ2hfdWxvbmcyc2NtLCBpbnRlZ2VyKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKHVuc2lnbmVkIHNob3J0LCBnaF9zY20ydWxvbmcsIGdoX3Vsb25nMnNjbSwgaW50ZWdlcik7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVCh1bnNpZ25lZCBsb25nLCBnaF9zY20ydWxvbmcsIGdoX3Vsb25nMnNjbSwgaW50ZWdlcik7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVChzaXplX3QsIGdoX3NjbTJ1bG9uZywgZ2hfdWxvbmcyc2NtLCBpbnRlZ2VyKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKGZsb2F0LCBnaF9zY20yZG91YmxlLCBnaF9kb3VibGUyc2NtLCByZWFsKTsKK1RZUEVNQVBfTElTVF9WRUNUT1JfSU5QVVRfT1VUUFVUKGRvdWJsZSwgZ2hfc2NtMmRvdWJsZSwgZ2hfZG91YmxlMnNjbSwgcmVhbCk7CitUWVBFTUFQX0xJU1RfVkVDVE9SX0lOUFVUX09VVFBVVChjaGFyICosIEdTV0lHX3NjbTJzdHIsIGdoX3N0cjAyc2NtLCBzdHJpbmcpOworVFlQRU1BUF9MSVNUX1ZFQ1RPUl9JTlBVVF9PVVRQVVQoY29uc3QgY2hhciAqLCBHU1dJR19zY20yc3RyLCBnaF9zdHIwMnNjbSwgc3RyaW5nKTsKKwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvZ3VpbGUvcG9pbnRlci1pbi1vdXQuaSBiL1NXSUcvTGliL2d1aWxlL3BvaW50ZXItaW4tb3V0LmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYxYjllNQotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvTGliL2d1aWxlL3BvaW50ZXItaW4tb3V0LmkKQEAgLTAsMCArMSw2OCBAQAorLyogcG9pbnRlci1pbi1vdXQuaSAtLS0gR3VpbGUgdHlwZW1hcHMgZm9yIHBhc3NpbmcgLSotIGMgLSotIHBvaW50ZXJzIGluZGlyZWN0bHkgCisKKyAgIENvcHlyaWdodCAoQykgMjAwMSBNYXR0aGlhcyBLb2VwcGUgPG1rb2VwcGVAbWFpbC5tYXRoLnVuaS1tYWdkZWJ1cmcuZGU+CisKKyAgICRIZWFkZXIkCisqLworCisvKiBIZXJlIGlzIGEgbWFjcm8gdGhhdCB3aWxsIGRlZmluZSB0eXBlbWFwcyBmb3IgY29udmVydGluZyBiZXR3ZWVuIEMKKyAgIGFycmF5cyBhbmQgU2NoZW1lIGxpc3RzIG9yIHZlY3RvcnMgd2hlbiBwYXNzaW5nIGFyZ3VtZW50cyB0byB0aGUgQworICAgZnVuY3Rpb24uCisgIAorICAgVFlQRU1BUF9QT0lOVEVSX0lOUFVUX09VVFBVVChQVFJUWVBFLCBTQ01fVFlQRSkKKworICAgU3VwcG9ydGVkIGNhbGxpbmcgY29udmVudGlvbnMgKGluIHRoaXMgZXhhbXBsZSwgUFRSVFlQRSBpcyBpbnQgKik6CisKKyAgIGZ1bmMoaW50ICoqSU5QVVQpCisKKyAgICAgICBTY2hlbWUgd3JhcHBlciB3aWxsIHRha2Ugb25lIGFyZ3VtZW50LCBhIHdyYXBwZWQgQyBwb2ludGVyLgorICAgICAgIFRoZSBhZGRyZXNzIG9mIGEgdmFyaWFibGUgY29udGFpbmluZyB0aGlzIHBvaW50ZXIgd2lsbCBiZQorICAgICAgIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCisKKyAgIGZ1bmMoaW50ICoqT1VUUFVUKQorCisgICAgICAgU2NoZW1lIHdyYXBwZXIgd2lsbCB0YWtlIG5vIGFyZ3VtZW50cy4gIFRoZSBhZGRyZXNzIG9mIGFuIGludCAqCisgICAgICAgdmFyaWFibGUgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLiAgVGhlIGZ1bmN0aW9uIGlzCisgICAgICAgZXhwZWN0ZWQgdG8gbW9kaWZ5IHRoZSB2YXJpYWJsZTsgaXRzIHZhbHVlIGlzIHdyYXBwZWQgYW5kCisgICAgICAgYmVjb21lcyBhbiBleHRyYSByZXR1cm4gdmFsdWUuICAoU2VlIERvYy9pbnRlcm5hbHMuaHRtbCBvbiBob3cKKyAgICAgICB0byBkZWFsIHdpdGggbXVsdGlwbGUgdmFsdWVzLikKKyAgIAorICAgZnVuYyhpbnQgKipCT1RIKQorCisgICAgICAgVGhpcyBhbm5vdGF0aW9uIGNvbWJpbmVzIElOUFVUIGFuZCBPVVRQVVQuCisKKyovCisKKyVkZWZpbmUgVFlQRU1BUF9QT0lOVEVSX0lOUFVUX09VVFBVVChQVFJUWVBFLCBTQ01fVFlQRSkKKworJXR5cGVtYXAoaW4pIFBUUlRZUEUgKklOUFVUKFBUUlRZUEUgdGVtcCkKK3sKKyAgICBpZiAoU1dJR19HdWlsZV9HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICZ0ZW1wLCAkKmRlc2NyaXB0b3IpKSB7CisJc2NtX3dyb25nX3R5cGVfYXJnKEZVTkNfTkFNRSwgJGFyZ251bSwgJHNvdXJjZSk7CisgICAgfQorICAgICR0YXJnZXQgPSAmdGVtcDsKK30KKyV0eXBlbWFwKGluZG9jKSBQVFJUWVBFICpJTlBVVCAiKCRhcmcgPFNDTV9UWVBFPikiOworCisldHlwZW1hcChpZ25vcmUpIFBUUlRZUEUgKk9VVFBVVChQVFJUWVBFIHRlbXApIAorICAgICAiJHRhcmdldCA9ICZ0ZW1wOyI7CisKKyV0eXBlbWFwKGFyZ291dCkgUFRSVFlQRSAqT1VUUFVUCisgICAgICJHVUlMRV9BUFBFTkRfUkVTVUxUKFNXSUdfR3VpbGVfTWFrZVB0cigqJHRhcmdldCwgJCpkZXNjcmlwdG9yKSk7IjsgCisKKyV0eXBlbWFwKGFyZ291dGRvYykgUFRSVFlQRSAqT1VUUFVUICI8U0NNX1RZUEU+IjsKKworJXR5cGVtYXAoaW4pIFBUUlRZUEUgKkJPVEggPSBQVFJUWVBFICpJTlBVVDsKKyV0eXBlbWFwKGFyZ291dCkgUFRSVFlQRSAqQk9USCA9IFBUUlRZUEUgKk9VVFBVVDsKKyV0eXBlbWFwKGFyZ291dGRvYykgUFRSVFlQRSAqQk9USCA9IFBUUlRZUEUgKk9VVFBVVDsKKyV0eXBlbWFwKGluKSBQVFJUWVBFICpJTk9VVCA9IFBUUlRZUEUgKklOUFVUOworJXR5cGVtYXAoYXJnb3V0KSBQVFJUWVBFICpJTk9VVCA9IFBUUlRZUEUgKk9VVFBVVDsKKyV0eXBlbWFwKGFyZ291dGRvYykgUFRSVFlQRSAqSU5PVVQgPSBQVFJUWVBFICpPVVRQVVQ7CisKKy8qIEFzIGEgc3BlY2lhbCBjb252ZW5pZW5jZSBtZWFzdXJlLCBhbHNvIGF0dGFjaCBkb2NzIGludm9sdmluZworICAgU0NNX1RZUEUgdG8gdGhlIHN0YW5kYXJkIHBvaW50ZXIgdHlwZW1hcHMgKi8KKworJXR5cGVtYXAoaW5kb2MpIFBUUlRZUEUgIjwoJGFyZyA8U0NNX1RZUEU+KT4iOworJXR5cGVtYXAob3V0ZG9jKSBQVFJUWVBFICI8U0NNX1RZUEU+IjsKKworJWVuZGRlZgpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvZ3VpbGUvcG9ydHMuaSBiL1NXSUcvTGliL2d1aWxlL3BvcnRzLmkKaW5kZXggMzc0MTA3MC4uMzM3MzdlMSAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvZ3VpbGUvcG9ydHMuaQorKysgYi9TV0lHL0xpYi9ndWlsZS9wb3J0cy5pCkBAIC03LDEwICs3LDExIEBACiAlewogICAjaWZuZGVmIF9QT1NJWF9TT1VSQ0UKICAgLyogVGhpcyBpcyBuZWVkZWQgb24gU29sYXJpcyBmb3IgZmRvcGVuKCkuICovCi0gICMgIGRlZmluZSBfUE9TSVhfU09VUkNFPTE5OTUwNkwKKyAgIyAgZGVmaW5lIF9QT1NJWF9TT1VSQ0UgMTk5NTA2TAogICAjZW5kaWYKICAgI2luY2x1ZGUgPHN0ZGlvLmg+CiAgICNpbmNsdWRlIDxlcnJuby5oPgorICAjaW5jbHVkZSA8dW5pc3RkLmg+CiAlfQogCiAvKiBGZWVkIEZJTEUgKiBhcmd1bWVudHMgZnJvbSBmaWxlIHBvcnRzICovCmRpZmYgLS1naXQgYS9TV0lHL0xpYi9ndWlsZS90eXBlbWFwcy5pIGIvU1dJRy9MaWIvZ3VpbGUvdHlwZW1hcHMuaQppbmRleCAyMWQ2MTUwLi45MGRlZTJhIDEwMDY0NAotLS0gYS9TV0lHL0xpYi9ndWlsZS90eXBlbWFwcy5pCisrKyBiL1NXSUcvTGliL2d1aWxlL3R5cGVtYXBzLmkKQEAgLTQsMzMgKzQsNjggQEAKICAgICRIZWFkZXIkICAqLwogCiAvKiBVbmxpa2Ugb3RoZXIgU1dJRyBsYW5ndWFnZSBtb2R1bGVzLCB0aGUgR3VpbGUgbW9kdWxlIGhhbmRsZXMgYWxsCi0gICBub24tcG9pbnRlciB0eXBlcyB1bmlmb3JtbHkgdmlhIHR5cGVtYXBzLiBIZXJlIGFyZSB0aGUKLSAgIGRlZmluaXRpb25zLgorICAgdHlwZXMgdW5pZm9ybWx5IHZpYSB0eXBlbWFwcy4gSGVyZSBhcmUgdGhlIGRlZmluaXRpb25zLgorKi8KIAotICAgVGhlIFNJTVBMRV9NQVAgbWFjcm8gYmVsb3cgZGVmaW5lcyB0aGUgd2hvbGUgc2V0IG9mIHR5cGVtYXBzIG5lZWRlZAorLyogUG9pbnRlcnMgKi8KKworJXR5cGVtYXAoaW4pIFNXSUdQT0lOVEVSICogeworICBpZiAoU1dJR19HdWlsZV9HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICYkdGFyZ2V0LCAkZGVzY3JpcHRvcikpCisgICAgc2NtX3dyb25nX3R5cGVfYXJnKEZVTkNfTkFNRSwgJGFyZ251bSwgJHNvdXJjZSk7Cit9CisKKyV0eXBlbWFwKGluKSB2b2lkICogeworICBpZiAoU1dJR19HdWlsZV9HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICYkdGFyZ2V0LCBOVUxMKSkKKyAgICBzY21fd3JvbmdfdHlwZV9hcmcoRlVOQ19OQU1FLCAkYXJnbnVtLCAkc291cmNlKTsKK30KKworJXR5cGVtYXAodmFyaW4pIFNXSUdQT0lOVEVSICogeworICBpZiAoU1dJR19HdWlsZV9HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICYkdGFyZ2V0LCAkZGVzY3JpcHRvcikpCisgICAgc2NtX3dyb25nX3R5cGVfYXJnKEZVTkNfTkFNRSwgJGFyZ251bSwgJHNvdXJjZSk7Cit9CisKKyV0eXBlbWFwKHZhcmluKSB2b2lkICogeworICBpZiAoU1dJR19HdWlsZV9HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICYkdGFyZ2V0LCBOVUxMKSkKKyAgICBzY21fd3JvbmdfdHlwZV9hcmcoRlVOQ19OQU1FLCAkYXJnbnVtLCAkc291cmNlKTsKK30KKworJXR5cGVtYXAob3V0KSBTV0lHUE9JTlRFUiAqIHsKKyAgICAkdGFyZ2V0ID0gU1dJR19HdWlsZV9NYWtlUHRyICgkc291cmNlLCAkZGVzY3JpcHRvcik7Cit9CisgICAgCisldHlwZW1hcCh2YXJvdXQpIFNXSUdQT0lOVEVSICogeworICAgICR0YXJnZXQgPSBTV0lHX0d1aWxlX01ha2VQdHIgKCRzb3VyY2UsICRkZXNjcmlwdG9yKTsKK30KKworLyogVGhlIFNJTVBMRV9NQVAgbWFjcm8gYmVsb3cgZGVmaW5lcyB0aGUgd2hvbGUgc2V0IG9mIHR5cGVtYXBzIG5lZWRlZAogICAgZm9yIHNpbXBsZSB0eXBlcy4gKi8KIAogJWRlZmluZSBTSU1QTEVfTUFQKENfTkFNRSwgU0NNX1RPX0MsIENfVE9fU0NNLCBTQ01fTkFNRSkKLSAldHlwZW1hcCAoZ3VpbGUsIGluKSAgICAgICAgICBDX05BTUUgIiR0YXJnZXQgPSBTQ01fVE9fQygkc291cmNlKTsiOwotICV0eXBlbWFwIChndWlsZSwgdmFyaW4pICAgICAgIENfTkFNRSAiJHRhcmdldCA9IFNDTV9UT19DKCRzb3VyY2UpOyI7Ci0gJXR5cGVtYXAgKGd1aWxlLCBvdXQpICAgICAgICAgQ19OQU1FICIkdGFyZ2V0ID0gQ19UT19TQ00oJHNvdXJjZSk7IjsKLSAldHlwZW1hcCAoZ3VpbGUsIHZhcm91dCkgICAgICBDX05BTUUgIiR0YXJnZXQgPSBDX1RPX1NDTSgkc291cmNlKTsiOworICV0eXBlbWFwIChndWlsZSwgaW4pICAgICAgICAgIENfTkFNRSB7JHRhcmdldCA9IFNDTV9UT19DKCRzb3VyY2UpO30KKyAldHlwZW1hcCAoZ3VpbGUsIHZhcmluKSAgICAgICBDX05BTUUgeyR0YXJnZXQgPSBTQ01fVE9fQygkc291cmNlKTt9CisgJXR5cGVtYXAgKGd1aWxlLCBvdXQpICAgICAgICAgQ19OQU1FIHskdGFyZ2V0ID0gQ19UT19TQ00oJHNvdXJjZSk7fQorICV0eXBlbWFwIChndWlsZSwgdmFyb3V0KSAgICAgIENfTkFNRSB7JHRhcmdldCA9IENfVE9fU0NNKCRzb3VyY2UpO30KICAldHlwZW1hcCAoZ3VpbGUsIGluZG9jKSAgICAgICBDX05BTUUgIigkYXJnIDxTQ01fTkFNRT4pIjsKICAldHlwZW1hcCAoZ3VpbGUsIHZhcmluZG9jKSAgICBDX05BTUUgIigkYXJnIDxTQ01fTkFNRT4pIjsKICAldHlwZW1hcCAoZ3VpbGUsIG91dGRvYykgICAgICBDX05BTUUgIjxTQ01fTkFNRT4iOwogICV0eXBlbWFwIChndWlsZSwgdmFyb3V0ZG9jKSAgIENfTkFNRSAiPFNDTV9OQU1FPiI7Ci0gJXR5cGVtYXAgKGd1aWxlLCBpbikgICAgICAgICAgQ19OQU1FICpJTlBVVCAoQ19OQU1FIHRlbXApCi0gInRlbXAgPSAoQ19OQU1FKSBDX1RPX1NDTSgkc291cmNlKTsgJHRhcmdldCA9ICZ0ZW1wOyIKKyAldHlwZW1hcCAoZ3VpbGUsIGluKSAgICAgICAgICBDX05BTUUgKklOUFVUIChDX05BTUUgdGVtcCkgeworICAgdGVtcCA9IChDX05BTUUpIFNDTV9UT19DKCRzb3VyY2UpOyAkdGFyZ2V0ID0gJnRlbXA7CisgfQogICV0eXBlbWFwIChndWlsZSwgaW5kb2MpICAgICAgIENfTkFNRSAqSU5QVVQgIigkYXJnIDxTQ01fTkFNRT4pIjsKICAldHlwZW1hcCAoZ3VpbGUsIGlnbm9yZSkgICAgICBDX05BTUUgKk9VVFBVVCAoQ19OQU1FIHRlbXApCi0gIiR0YXJnZXQgPSAmdGVtcDsiCisgICB7JHRhcmdldCA9ICZ0ZW1wO30KICAldHlwZW1hcCAoZ3VpbGUsIGFyZ291dCkgICAgICBDX05BTUUgKk9VVFBVVAotICJHVUlMRV9BUFBFTkRfUkVTVUxUKENfVE9fU0NNKCokdGFyZ2V0KSk7IjsKKyAgIHtHVUlMRV9BUFBFTkRfUkVTVUxUKENfVE9fU0NNKCokdGFyZ2V0KSk7fQogICV0eXBlbWFwIChndWlsZSwgYXJnb3V0ZG9jKSAgIENfTkFNRSAqT1VUUFVUICIoJGFyZyA8U0NNX05BTUU+KSI7CiAgJXR5cGVtYXAgKGd1aWxlLCBpbikgICAgICAgICAgQ19OQU1FICpCT1RIID0gQ19OQU1FICpJTlBVVDsKICAldHlwZW1hcCAoZ3VpbGUsIGluZG9jKSAgICAgICBDX05BTUUgKkJPVEggPSBDX05BTUUgKklOUFVUOwogICV0eXBlbWFwIChndWlsZSwgYXJnb3V0KSAgICAgIENfTkFNRSAqQk9USCA9IENfTkFNRSAqT1VUUFVUOwogICV0eXBlbWFwIChndWlsZSwgYXJnb3V0ZG9jKSAgIENfTkFNRSAqQk9USCA9IENfTkFNRSAqT1VUUFVUOworICV0eXBlbWFwIChndWlsZSwgaW4pICAgICAgICAgIENfTkFNRSAqSU5PVVQgPSBDX05BTUUgKklOUFVUOworICV0eXBlbWFwIChndWlsZSwgaW5kb2MpICAgICAgIENfTkFNRSAqSU5PVVQgPSBDX05BTUUgKklOUFVUOworICV0eXBlbWFwIChndWlsZSwgYXJnb3V0KSAgICAgIENfTkFNRSAqSU5PVVQgPSBDX05BTUUgKk9VVFBVVDsKKyAldHlwZW1hcCAoZ3VpbGUsIGFyZ291dGRvYykgICBDX05BTUUgKklOT1VUID0gQ19OQU1FICpPVVRQVVQ7CiAlZW5kZGVmCiAgCiAgU0lNUExFX01BUChib29sLCBnaF9zY20yYm9vbCwgZ2hfYm9vbDJzY20sIGJvb2xlYW4pOwpAQCAtNTQsOSArODksMjkgQEAKIAogJXR5cGVtYXAgKGd1aWxlLCBmcmVlYXJnKSBjaGFyICosIGNvbnN0IGNoYXIgKiAiaWYgKCR0YXJnZXQpIHNjbV9tdXN0X2ZyZWUoJHRhcmdldCk7IjsKIAorJXR5cGVtYXAgKGd1aWxlLCBmcmVlYXJnKSBjaGFyICoqT1VUUFVULCBjaGFyICoqQk9USCAiaWYgKCokdGFyZ2V0KSBzY21fbXVzdF9mcmVlKCokdGFyZ2V0KTsiCisKKy8qIEJ1dCB0aGlzIHNoYWxsIG5vdCBhcHBseSBpZiB3ZSB0cnkgdG8gcGFzcyBhIHNpbmdsZSBjaGFyIGJ5CisgICByZWZlcmVuY2UuICovCisKKyV0eXBlbWFwIChndWlsZSwgZnJlZWFyZykgY2hhciAqT1VUUFVULCBjaGFyICpCT1RIICIiOworCisvKiBJZiB3ZSBzZXQgYSBzdHJpbmcgdmFyaWFibGUsIGRlbGV0ZSB0aGUgb2xkIHJlc3VsdCBmaXJzdC4gKi8KKworJXR5cGVtYXAgKHZhcmluKSBjaGFyICosIGNvbnN0IGNoYXIgKiB7CisgICAgaWYgKCR0YXJnZXQpIGZyZWUoJHRhcmdldCk7CisgICAgJHRhcmdldCA9IEdTV0lHX3NjbTJzdHIoJHNvdXJjZSk7Cit9CisKIC8qIFZvaWQgKi8KIAogJXR5cGVtYXAgKGd1aWxlLCBvdXQpIHZvaWQgImdzd2lnX3Jlc3VsdCA9IEdIX1VOU1BFQ0lGSUVEOyI7CiAldHlwZW1hcCAoZ3VpbGUsIG91dGRvYykgdm9pZCAiIjsKIAorLyogU0NNIGlzIHBhc3NlZCB0aHJvdWdoICovCisKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBTQ007CisldHlwZW1hcCAoZ3VpbGUsIGluKSBTQ00gIiR0YXJnZXQ9JHNvdXJjZTsiOworJXR5cGVtYXAgKGd1aWxlLCBvdXQpIFNDTSAiJHRhcmdldD0kc291cmNlOyI7CisKIC8qIHR5cGVtYXBzLmkgZW5kcyBoZXJlICovCmRpZmYgLS1naXQgYS9TV0lHL0xpYi9qYXZhL2phdmFfYXJyYXlzLmkgYi9TV0lHL0xpYi9qYXZhL2phdmFfYXJyYXlzLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk4YzQzMAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvTGliL2phdmEvamF2YV9hcnJheXMuaQpAQCAtMCwwICsxLDExIEBACisvKiAKK1N1cHBvcnQgZm9yIHNldHRpbmcgdmFsdWVzIGluIGFycmF5cy4gVGhpcyBpcyBpbnRlbmRlZCB0byBjb3ZlciBhbGwgdHlwZXMgb2YKK2FycmF5cywgdGhhdCBpcyBhcnJheXMgb2YgYmFzaWMgdHlwZXMsIGVnIGludCwgdW5zaWduZWQgaW50LCBhcnJheXMgb2YKK3N0cnVjdHVyZXMvY2xhc3NlcywgYXJyYXlzIG9mIGVudW1zIGFuZCBhcnJheXMgb2YgcG9pbnRlcnMuCisqLworJXR5cGVtYXAoamF2YSwgbWVtYmVyaW4pIFNXSUdBUlJBWSBbXSB7CisgICAgaW50IGk7CisgICAgZm9yIChpPTA7IGk8JGRpbTA7IGkrKykKKyAgICAgICAgJHRhcmdldFtpXSA9ICRzb3VyY2VbaV07Cit9CisKZGlmZiAtLWdpdCBhL1NXSUcvTGliL2phdmEvc3RsX3N0cmluZy5pIGIvU1dJRy9MaWIvamF2YS9zdGxfc3RyaW5nLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNhZmNkYwotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvTGliL2phdmEvc3RsX3N0cmluZy5pCkBAIC0wLDAgKzEsODIgQEAKKy8vLSotYysrLSotCisvKgorICogdHlwZW1hcHMgZm9yIHN0YW5kYXJkIEMrKyBzdHJpbmcgYW5kIHdzdHJpbmcKKyAqIGJ5OiBUYWwgU2hhbGlmIDx0YWxAc2x0LmF0ci5jby5qcD4KKyAqLworLyogd2hhdCB0eXBlIHRvIHVzZSBpbiBqYXZhIHNvdXJjZSBjb2RlICovCisldHlwZW1hcChqYXZhLGp0eXBlKSBjb25zdCBzdHJpbmcgJiB7U3RyaW5nfQorCisvKiB3aGF0IGlzIHRoZSBjb3JyZXNwb25kaW5nIGpuaSB0eXBlICovCisldHlwZW1hcChqYXZhLGpuaSkgY29uc3Qgc3RyaW5nICYge2pzdHJpbmd9CisKKy8qIGhvdyB0byBjb252ZXJ0IHRoZSBjKysgdHlwZSB0byB0aGUgamF2YSB0eXBlICovCisldHlwZW1hcChqYXZhLG91dCkgY29uc3Qgc3RyaW5nICYgeworICR0YXJnZXQgPSBKQ0FMTChOZXdTdHJpbmdVVEYsIGplbnYpICRzb3VyY2UtPmNfc3RyKCkpOworfQorCisvKiBob3cgdG8gY29udmVydCBqYXZhIHR5cGUgdG8gcmVxdWVzdGVkIGMrKyB0eXBlICovCisldHlwZW1hcChqYXZhLGluKSBjb25zdCBzdHJpbmcgJiB7CisgICR0YXJnZXQgPSBOVUxMOworICBpZigkc291cmNlICE9IE5VTEwpIHsKKyAgICAvKiBnZXQgdGhlIFN0cmluZyBmcm9tIHRoZSBTdHJpbmdCdWZmZXIgKi8KKyAgICBjaGFyICpwID0gKGNoYXIgKilqZW52LT5HZXRTdHJpbmdVVEZDaGFycygkc291cmNlLCAwKTsgCisgICAgJHRhcmdldCA9ICBuZXcgc3RyaW5nKHApOworICAgIEpDQUxMKFJlbGVhc2VTdHJpbmdVVEZDaGFycywgamVudikgJHNvdXJjZSwgcCk7CisgIH0KK30KKy8qIGZyZWUgcmVzb3VyY2Ugb25jZSBmaW5pc2hlZCB1c2luZyAqLworJXR5cGVtYXAoamF2YSxmcmVlYXJnKSBjb25zdCBzdHJpbmcgJiB7CisgIGRlbGV0ZSAkdGFyZ2V0OworfQorCisldHlwZW1hcChqYXZhLGp0eXBlKSBzdHJpbmcgJiA9IGNvbnN0IHN0cmluZyAmOworJXR5cGVtYXAoamF2YSxqbmkpIHN0cmluZyAmID0gY29uc3Qgc3RyaW5nICY7CisldHlwZW1hcChqYXZhLGluKSBzdHJpbmcgJiA9IGNvbnN0IHN0cmluZyAmOworJXR5cGVtYXAoamF2YSxvdXQpIHN0cmluZyAmID0gY29uc3Qgc3RyaW5nICY7CisldHlwZW1hcChqYXZhLGZyZWVhcmcpIHN0cmluZyAmID0gY29uc3Qgc3RyaW5nICY7CisKKy8qIHdoYXQgdHlwZSB0byB1c2UgaW4gamF2YSBzb3VyY2UgY29kZSAqLworJXR5cGVtYXAoamF2YSxqdHlwZSkgY29uc3Qgd3N0cmluZyAmIHtTdHJpbmd9CisKKy8qIHdoYXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcgam5pIHR5cGUgKi8KKyV0eXBlbWFwKGphdmEsam5pKSBjb25zdCB3c3RyaW5nICYge2pzdHJpbmd9CisKKy8qIGhvdyB0byBjb252ZXJ0IHRoZSBjKysgdHlwZSB0byB0aGUgamF2YSB0eXBlICovCisldHlwZW1hcChqYXZhLG91dCkgY29uc3Qgd3N0cmluZyAmIHsKKyAgdW5zaWduZWQgaW50IGxlbiA9ICRzb3VyY2UtPmxlbmd0aCgpOworICBqY2hhciAqY29udl9idWYgPSBuZXcgamNoYXJbbGVuXTsKKyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgIGNvbnZfYnVmW2ldID0gKGpjaGFyKSgqJHNvdXJjZSlbaV07CisgIH0KKyAkdGFyZ2V0ID0gSkNBTEwoTmV3U3RyaW5nLCBqZW52KSBjb252X2J1ZiwgbGVuKTsKKyBkZWxldGUgW10gY29udl9idWY7Cit9CisKKy8qIGhvdyB0byBjb252ZXJ0IGphdmEgdHlwZSB0byByZXF1ZXN0ZWQgYysrIHR5cGUgKi8KKyV0eXBlbWFwKGphdmEsaW4pIGNvbnN0IHdzdHJpbmcgJiB7CisgICR0YXJnZXQgPSBOVUxMOworICBpZigkc291cmNlICE9IE5VTEwpIHsKKyAgICAvKiBnZXQgdGhlIFN0cmluZyBmcm9tIHRoZSBTdHJpbmdCdWZmZXIgKi8KKyAgICBjb25zdCBqY2hhciAqamNoYXJfcCA9IGplbnYtPkdldFN0cmluZ0NoYXJzKCRzb3VyY2UsIDApOworICAgIHVuc2lnbmVkIGludCBsZW47CisgICAgZm9yIChsZW4gPSAwOyBqY2hhcl9wW2xlbl07ICsrbGVuKTsKKyAgICBpZiAobGVuKSB7CisgICAgICB3Y2hhcl90ICpjb252X2J1ZiA9IG5ldyB3Y2hhcl90W2xlbl07CisgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICBjb252X2J1ZltpXSA9IGpjaGFyX3BbaV07CisgICAgICAgfQorICAgICAgICR0YXJnZXQgPSAgbmV3IHdzdHJpbmcoY29udl9idWYsIGxlbik7CisgICAgICAgZGVsZXRlIFtdIGNvbnZfYnVmOworICAgIH0KKworICAgIEpDQUxMKFJlbGVhc2VTdHJpbmdDaGFycywgamVudikgJHNvdXJjZSwgamNoYXJfcCk7CisgIH0KK30KKworCisldHlwZW1hcChqYXZhLGp0eXBlKSB3c3RyaW5nICYgPSBjb25zdCB3c3RyaW5nICY7CisldHlwZW1hcChqYXZhLGpuaSkgd3N0cmluZyAmID0gY29uc3Qgd3N0cmluZyAmOworJXR5cGVtYXAoamF2YSxpbikgd3N0cmluZyAmID0gY29uc3Qgd3N0cmluZyAmOworJXR5cGVtYXAoamF2YSxvdXQpIHdzdHJpbmcgJiA9IGNvbnN0IHdzdHJpbmcgJjsKKyV0eXBlbWFwKGphdmEsZnJlZWFyZykgd3N0cmluZyAmID0gY29uc3Qgd3N0cmluZyAmOworCmRpZmYgLS1naXQgYS9TV0lHL0xpYi9qYXZhL3R5cGVtYXBzLmkgYi9TV0lHL0xpYi9qYXZhL3R5cGVtYXBzLmkKaW5kZXggMzA3Y2M1Ni4uMmIyYWI1NSAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvamF2YS90eXBlbWFwcy5pCisrKyBiL1NXSUcvTGliL2phdmEvdHlwZW1hcHMuaQpAQCAtMSw0ICsxLDQgQEAKLS8vLSotYysrLSotCisvLwogLy8gU1dJRyBUeXBlbWFwIGxpYnJhcnkKIC8vIGZvciBKYXZhCiAKQEAgLTEyNSw4NSArMTI1LDMgQEAKICV0eXBlbWFwKGphdmEsaWdub3JlKSBqb2JqZWN0IGpvYmogewogICAkdGFyZ2V0ID0gam9iajsKIH0KLQotLyoKLSAqIHR5cGVtYXBzIGZvciBzdGFuZGFyZCBDKysgc3RyaW5nIGFuZCB3c3RyaW5nCi0gKiBieTogVGFsIFNoYWxpZiA8dGFsQHNsdC5hdHIuY28uanA+Ci0gKi8KLS8qIHdoYXQgdHlwZSB0byB1c2UgaW4gamF2YSBzb3VyY2UgY29kZSAqLwotJXR5cGVtYXAoamF2YSxqdHlwZSkgY29uc3Qgc3RyaW5nICYge1N0cmluZ30KLQotLyogd2hhdCBpcyB0aGUgY29ycmVzcG9uZGluZyBqbmkgdHlwZSAqLwotJXR5cGVtYXAoamF2YSxqbmkpIGNvbnN0IHN0cmluZyAmIHtqc3RyaW5nfQotCi0vKiBob3cgdG8gY29udmVydCB0aGUgYysrIHR5cGUgdG8gdGhlIGphdmEgdHlwZSAqLwotJXR5cGVtYXAoamF2YSxvdXQpIGNvbnN0IHN0cmluZyAmIHsKLSAkdGFyZ2V0ID0gSkNBTEwoTmV3U3RyaW5nVVRGLCBqZW52KSAkc291cmNlLT5jX3N0cigpKTsKLX0KLQotLyogaG93IHRvIGNvbnZlcnQgamF2YSB0eXBlIHRvIHJlcXVlc3RlZCBjKysgdHlwZSAqLwotJXR5cGVtYXAoamF2YSxpbikgY29uc3Qgc3RyaW5nICYgewotICAkdGFyZ2V0ID0gTlVMTDsKLSAgaWYoJHNvdXJjZSAhPSBOVUxMKSB7Ci0gICAgLyogZ2V0IHRoZSBTdHJpbmcgZnJvbSB0aGUgU3RyaW5nQnVmZmVyICovCi0gICAgY2hhciAqcCA9IChjaGFyICopamVudi0+R2V0U3RyaW5nVVRGQ2hhcnMoJHNvdXJjZSwgMCk7IAotICAgICR0YXJnZXQgPSAgbmV3IHN0cmluZyhwKTsKLSAgICBKQ0FMTChSZWxlYXNlU3RyaW5nVVRGQ2hhcnMsIGplbnYpICRzb3VyY2UsIHApOwotICB9Ci19Ci0vKiBmcmVlIHJlc291cmNlIG9uY2UgZmluaXNoZWQgdXNpbmcgKi8KLSV0eXBlbWFwKGphdmEsZnJlZWFyZykgY29uc3Qgc3RyaW5nICYgewotICBkZWxldGUgJHRhcmdldDsKLX0KLQotJXR5cGVtYXAoamF2YSxqdHlwZSkgc3RyaW5nICYgPSBjb25zdCBzdHJpbmcgJjsKLSV0eXBlbWFwKGphdmEsam5pKSBzdHJpbmcgJiA9IGNvbnN0IHN0cmluZyAmOwotJXR5cGVtYXAoamF2YSxpbikgc3RyaW5nICYgPSBjb25zdCBzdHJpbmcgJjsKLSV0eXBlbWFwKGphdmEsb3V0KSBzdHJpbmcgJiA9IGNvbnN0IHN0cmluZyAmOwotJXR5cGVtYXAoamF2YSxmcmVlYXJnKSBzdHJpbmcgJiA9IGNvbnN0IHN0cmluZyAmOwotCi0vKiB3aGF0IHR5cGUgdG8gdXNlIGluIGphdmEgc291cmNlIGNvZGUgKi8KLSV0eXBlbWFwKGphdmEsanR5cGUpIGNvbnN0IHdzdHJpbmcgJiB7U3RyaW5nfQotCi0vKiB3aGF0IGlzIHRoZSBjb3JyZXNwb25kaW5nIGpuaSB0eXBlICovCi0ldHlwZW1hcChqYXZhLGpuaSkgY29uc3Qgd3N0cmluZyAmIHtqc3RyaW5nfQotCi0vKiBob3cgdG8gY29udmVydCB0aGUgYysrIHR5cGUgdG8gdGhlIGphdmEgdHlwZSAqLwotJXR5cGVtYXAoamF2YSxvdXQpIGNvbnN0IHdzdHJpbmcgJiB7Ci0gIHVuc2lnbmVkIGludCBsZW4gPSAkc291cmNlLT5sZW5ndGgoKTsKLSAgamNoYXIgKmNvbnZfYnVmID0gbmV3IGpjaGFyW2xlbl07Ci0gIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKLSAgICBjb252X2J1ZltpXSA9IChqY2hhcikoKiRzb3VyY2UpW2ldOwotICB9Ci0gJHRhcmdldCA9IEpDQUxMKE5ld1N0cmluZywgamVudikgY29udl9idWYsIGxlbik7Ci0gZGVsZXRlIFtdIGNvbnZfYnVmOwotfQotCi0vKiBob3cgdG8gY29udmVydCBqYXZhIHR5cGUgdG8gcmVxdWVzdGVkIGMrKyB0eXBlICovCi0ldHlwZW1hcChqYXZhLGluKSBjb25zdCB3c3RyaW5nICYgewotICAkdGFyZ2V0ID0gTlVMTDsKLSAgaWYoJHNvdXJjZSAhPSBOVUxMKSB7Ci0gICAgLyogZ2V0IHRoZSBTdHJpbmcgZnJvbSB0aGUgU3RyaW5nQnVmZmVyICovCi0gICAgY29uc3QgamNoYXIgKmpjaGFyX3AgPSBqZW52LT5HZXRTdHJpbmdDaGFycygkc291cmNlLCAwKTsKLSAgICB1bnNpZ25lZCBpbnQgbGVuOwotICAgIGZvciAobGVuID0gMDsgamNoYXJfcFtsZW5dOyArK2xlbik7Ci0gICAgaWYgKGxlbikgewotICAgICAgd2NoYXJfdCAqY29udl9idWYgPSBuZXcgd2NoYXJfdFtsZW5dOwotICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgewotICAgICAgICAgY29udl9idWZbaV0gPSBqY2hhcl9wW2ldOwotICAgICAgIH0KLSAgICAgICAkdGFyZ2V0ID0gIG5ldyB3c3RyaW5nKGNvbnZfYnVmLCBsZW4pOwotICAgICAgIGRlbGV0ZSBbXSBjb252X2J1ZjsKLSAgICB9Ci0KLSAgICBKQ0FMTChSZWxlYXNlU3RyaW5nQ2hhcnMsIGplbnYpICRzb3VyY2UsIGpjaGFyX3ApOwotICB9Ci19Ci0KLQotJXR5cGVtYXAoamF2YSxqdHlwZSkgd3N0cmluZyAmID0gY29uc3Qgd3N0cmluZyAmOwotJXR5cGVtYXAoamF2YSxqbmkpIHdzdHJpbmcgJiA9IGNvbnN0IHdzdHJpbmcgJjsKLSV0eXBlbWFwKGphdmEsaW4pIHdzdHJpbmcgJiA9IGNvbnN0IHdzdHJpbmcgJjsKLSV0eXBlbWFwKGphdmEsb3V0KSB3c3RyaW5nICYgPSBjb25zdCB3c3RyaW5nICY7Ci0ldHlwZW1hcChqYXZhLGZyZWVhcmcpIHdzdHJpbmcgJiA9IGNvbnN0IHdzdHJpbmcgJjsKLQpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvbXpzY2hlbWUvbXpzY2hlbWUuaSBiL1NXSUcvTGliL216c2NoZW1lL216c2NoZW1lLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVhNGU0MAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvTGliL216c2NoZW1lL216c2NoZW1lLmkKQEAgLTAsMCArMSwxNCBAQAorLyogU1dJRyBDb25maWd1cmF0aW9uIEZpbGUgZm9yIE16U2NoZW1lLiAtKi1jLSotCisgICBUaGlzIGZpbGUgaXMgcGFyc2VkIGJ5IFNXSUcgYmVmb3JlIHJlYWRpbmcgYW55IG90aGVyIGludGVyZmFjZQorICAgZmlsZS4gKi8KKworLyogSW5jbHVkZSBoZWFkZXJzICovCislaW5zZXJ0KHJ1bnRpbWUpICJtenNjaGVtZWRlYy5zd2ciCisKKy8qI2lmbmRlZiBTV0lHX05PSU5DTFVERSovCislaW5zZXJ0KHJ1bnRpbWUpICJtenNjaGVtZS5zd2ciCisvKiNlbmRpZiovCisKKy8qIFJlYWQgaW4gc3RhbmRhcmQgdHlwZW1hcHMuICovCislaW5jbHVkZSAidHlwZW1hcHMuaSIKKwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvbXpzY2hlbWUvbXpzY2hlbWUuc3dnIGIvU1dJRy9MaWIvbXpzY2hlbWUvbXpzY2hlbWUuc3dnCmluZGV4IGNkMGE3MzIuLmM5N2NkMmMgMTAwNjQ0Ci0tLSBhL1NXSUcvTGliL216c2NoZW1lL216c2NoZW1lLnN3ZworKysgYi9TV0lHL0xpYi9tenNjaGVtZS9tenNjaGVtZS5zd2cKQEAgLTEsNCArMSw0IEBACi0jaW5jbHVkZSA8ZXNjaGVtZS5oPgorLyogLSotYy0qLSAqLwogCiB0eXBlZGVmIHN0cnVjdCBzd2lnX3Byb3h5IHsKICAgICBTY2hlbWVfVHlwZSB0eXBlOwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvbXpzY2hlbWUvbXpzY2hlbWVkZWMuc3dnIGIvU1dJRy9MaWIvbXpzY2hlbWUvbXpzY2hlbWVkZWMuc3dnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxN2IxNjgKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL0xpYi9tenNjaGVtZS9tenNjaGVtZWRlYy5zd2cKQEAgLTAsMCArMSw4IEBACisvKiAtKi1jLSotICovCisvKiBJbXBsZW1lbnRhdGlvbiA6IE1aU0NIRU1FICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSA8ZXNjaGVtZS5oPgpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvbXpzY2hlbWUvdHlwZW1hcHMuaSBiL1NXSUcvTGliL216c2NoZW1lL3R5cGVtYXBzLmkKaW5kZXggZWE1OTg5YS4uNmY0YjE4NiAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvbXpzY2hlbWUvdHlwZW1hcHMuaQorKysgYi9TV0lHL0xpYi9tenNjaGVtZS90eXBlbWFwcy5pCkBAIC0xLDQgKzEsNCBAQAotLyoKKy8qIC0qLWMtKi0KICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGFyZ291dCB0eXBlbWFwcwogIGNvbnZlcnQgYXJndW1lbnRzIGZyb20gQyB0byBTY2hlbWUKQEAgLTcxLDYgKzcxLDEyIEBACiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKKyV0eXBlbWFwKG16c2NoZW1lLCBpbikgYm9vbCB7CisgICAgaWYoIVNDSEVNRV9CT09MUCgkc291cmNlKSkKKwlzY2hlbWVfd3JvbmdfdHlwZSgiJG5hbWUiLCAiYm9vbGVhbiIsICRhcmdudW0sIGFyZ2MsIGFyZ3YpOworICAgICR0YXJnZXQgPSBTQ0hFTUVfVFJVRVAoJHNvdXJjZSk7Cit9CisKICV0eXBlbWFwKG16c2NoZW1lLCBpbikgY2hhciB7CiAgICAgaWYoIVNDSEVNRV9DSEFSUCgkc291cmNlKSkKIAlzY2hlbWVfd3JvbmdfdHlwZSgiJG5hbWUiLCAiY2hhcmFjdGVyIiwgJGFyZ251bSwgYXJnYywgYXJndik7CkBAIC0yNjMsNiArMjY5LDEwIEBACiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAorJXR5cGVtYXAobXpzY2hlbWUsIG91dCkgYm9vbCB7CisgICAgJHRhcmdldCA9ICRzb3VyY2UgPyBzY2hlbWVfdHJ1ZSA6IHNjaGVtZV9mYWxzZTsKK30KKwogJXR5cGVtYXAobXpzY2hlbWUsIG91dCkgY2hhciB7CiAgICAgJHRhcmdldCA9IHNjaGVtZV9tYWtlX2NoYXJhY3Rlcigkc291cmNlKTsKIH0KQEAgLTM3NCw2ICszODQsMTIgQEAKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCisldHlwZW1hcChtenNjaGVtZSwgdmFyaW4pIGJvb2wgeworICAgICBpZighU0NIRU1FX0JPT0xQKCRzb3VyY2UpKQorCXNjaGVtZV93cm9uZ190eXBlKCIkbmFtZSIsICJib29sZWFuIiwgJGFyZ251bSwgYXJnYywgYXJndik7CisgICAgJHRhcmdldCA9IFNDSEVNRV9UUlVFUCgkc291cmNlKTsKK30KKwogJXR5cGVtYXAobXpzY2hlbWUsIHZhcmluKSBjaGFyIHsKICAgICBpZighU0NIRU1FX0NIQVJQKCRzb3VyY2UpKQogCXNjaGVtZV93cm9uZ190eXBlKCIkbmFtZSIsICJjaGFyYWN0ZXIiLCAkYXJnbnVtLCBhcmdjLCBhcmd2KTsKQEAgLTU2Nyw2ICs1ODMsMTAgQEAKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKKyV0eXBlbWFwKG16c2NoZW1lLCB2YXJvdXQpIGJvb2wgeworICAgICR0YXJnZXQgPSAkc291cmNlID8gc2NoZW1lX3RydWUgOiBzY2hlbWVfZmFsc2U7Cit9CisKICV0eXBlbWFwKG16c2NoZW1lLCB2YXJvdXQpIGNoYXIgewogICAgICR0YXJnZXQgPSBzY2hlbWVfbWFrZV9jaGFyYWN0ZXIoJHNvdXJjZSk7CiB9CkBAIC02NzEsMyArNjkxLDkgQEAKICAgICAkdGFyZ2V0ID0gc2NoZW1lX21ha2VfZG91YmxlKCokc291cmNlKTsKIH0KICovCisKKy8qIFBhc3MgdGhyb3VnaCBTY2hlbWVfT2JqZWN0ICogKi8KKworJXR5cGVtYXAgKGd1aWxlLCBpbikgU2NoZW1lX09iamVjdCAqICIkdGFyZ2V0PSRzb3VyY2U7IjsKKyV0eXBlbWFwIChndWlsZSwgb3V0KSBTY2hlbWVfT2JqZWN0ICogIiR0YXJnZXQ9JHNvdXJjZTsiOworCmRpZmYgLS1naXQgYS9TV0lHL0xpYi9wZXJsNS9wZXJsNS5zd2cgYi9TV0lHL0xpYi9wZXJsNS9wZXJsNS5zd2cKaW5kZXggODBkMzNhNC4uYjllNzYwMCAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvcGVybDUvcGVybDUuc3dnCisrKyBiL1NXSUcvTGliL3Blcmw1L3Blcmw1LnN3ZwpAQCAtMTUzLDE5ICsxNTMsMTkgQEAKIF9TV0lHX01ha2VQdHIoQ1BlcmxPYmogKnBQZXJsLCBTViAqc3YsIHZvaWQgKnB0ciwgc3dpZ190eXBlX2luZm8gKnQpCiAjZW5kaWYKIHsKLSAgc3Zfc2V0cmVmX3B2KHN2LCB0LT5uYW1lLCBwdHIpOworICBzdl9zZXRyZWZfcHYoc3YsIChjaGFyICopIHQtPm5hbWUsIHB0cik7CiB9CiAKIC8qIE1hZ2ljIHZhcmlhYmxlIGNvZGUgKi8KICNpZm5kZWYgUEVSTF9PQkpFQ1QKICNkZWZpbmUgc3dpZ19jcmVhdGVfbWFnaWMocyxhLGIsYykgX3N3aWdfY3JlYXRlX21hZ2ljKHMsYSxiLGMpCi1zdGF0aWMgdm9pZCBfc3dpZ19jcmVhdGVfbWFnaWMoU1YgKnN2LCBjaGFyICpuYW1lLCBpbnQgKCpzZXQpKFNWICosIE1BR0lDICopLCBpbnQgKCpnZXQpKFNWICosTUFHSUMgKikpIHsKK3N0YXRpYyB2b2lkIF9zd2lnX2NyZWF0ZV9tYWdpYyhTViAqc3YsIGNvbnN0IGNoYXIgKm5hbWUsIGludCAoKnNldCkoU1YgKiwgTUFHSUMgKiksIGludCAoKmdldCkoU1YgKixNQUdJQyAqKSkgewogI2Vsc2UKICNkZWZpbmUgc3dpZ19jcmVhdGVfbWFnaWMocyxhLGIsYykgX3N3aWdfY3JlYXRlX21hZ2ljKHBQZXJsLHMsYSxiLGMpCi1zdGF0aWMgdm9pZCBfc3dpZ19jcmVhdGVfbWFnaWMoQ1BlcmxPYmogKnBQZXJsLCBTViAqc3YsIGNoYXIgKm5hbWUsIGludCAoQ1BlcmxPYmo6OipzZXQpKFNWICosIE1BR0lDICopLCBpbnQgKENQZXJsT2JqOjoqZ2V0KShTViAqLCBNQUdJQyAqKSkgeworc3RhdGljIHZvaWQgX3N3aWdfY3JlYXRlX21hZ2ljKENQZXJsT2JqICpwUGVybCwgU1YgKnN2LCBjb25zdCBjaGFyICpuYW1lLCBpbnQgKENQZXJsT2JqOjoqc2V0KShTViAqLCBNQUdJQyAqKSwgaW50IChDUGVybE9iajo6KmdldCkoU1YgKiwgTUFHSUMgKikpIHsKICNlbmRpZgogICBNQUdJQyAqbWc7Ci0gIHN2X21hZ2ljKHN2LHN2LCdVJyxuYW1lLHN0cmxlbihuYW1lKSk7CisgIHN2X21hZ2ljKHN2LHN2LCdVJywoY2hhciAqKSBuYW1lLHN0cmxlbihuYW1lKSk7CiAgIG1nID0gbWdfZmluZChzdiwnVScpOwogICBtZy0+bWdfdmlydHVhbCA9IChNR1ZUQkwgKikgbWFsbG9jKHNpemVvZihNR1ZUQkwpKTsKICAgbWctPm1nX3ZpcnR1YWwtPnN2dF9nZXQgPSBnZXQ7CmRpZmYgLS1naXQgYS9TV0lHL0xpYi9wZXJsNS9wdHJsYW5nLmkgYi9TV0lHL0xpYi9wZXJsNS9wdHJsYW5nLmkKaW5kZXggZTBjZWU5Yy4uNTZjZmU1YiAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvcGVybDUvcHRybGFuZy5pCisrKyBiL1NXSUcvTGliL3Blcmw1L3B0cmxhbmcuaQpAQCAtNTAsMTAgKzUwLDEwIEBACiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZkZWYgUEVSTF9PQkpFQ1QKLXN0YXRpYyBTViAqX3B0cnZhbHVlKENQZXJsT2JqICpwUGVybCxTViAqX1BUUlZBTFVFLCBpbnQgaW5kZXgsIGNoYXIgKnR5cGUpIHsKK3N0YXRpYyBTViAqX3B0cnZhbHVlKENQZXJsT2JqICpwUGVybCxTViAqX1BUUlZBTFVFLCBpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKnR5cGUpIHsKICNkZWZpbmUgcHRydmFsdWUoYSxiLGMpIF9wdHJ2YWx1ZShwUGVybCxhLGIsYykKICNlbHNlCi1zdGF0aWMgU1YgKl9wdHJ2YWx1ZShTViAqX1BUUlZBTFVFLCBpbnQgaW5kZXgsIGNoYXIgKnR5cGUpIHsKK3N0YXRpYyBTViAqX3B0cnZhbHVlKFNWICpfUFRSVkFMVUUsIGludCBpbmRleCwgY29uc3QgY2hhciAqdHlwZSkgewogI2RlZmluZSBwdHJ2YWx1ZShhLGIsYykgX3B0cnZhbHVlKGEsYixjKQogI2VuZGlmCiAKQEAgLTI1OCwxMCArMjU4LDEwIEBACiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZkZWYgUEVSTF9PQkpFQ1QKLXN0YXRpYyB2b2lkIF9wdHJzZXQoQ1BlcmxPYmogKnBQZXJsLFNWICpfUFRSVkFMVUUsIFNWICp2YWx1ZSwgaW50IGluZGV4LCBjaGFyICp0eXBlKSB7CitzdGF0aWMgdm9pZCBfcHRyc2V0KENQZXJsT2JqICpwUGVybCxTViAqX1BUUlZBTFVFLCBTViAqdmFsdWUsIGludCBpbmRleCwgY29uc3QgY2hhciAqdHlwZSkgewogI2RlZmluZSBwdHJzZXQoYSxiLGMsZCkgX3B0cnNldChwUGVybCxhLGIsYyxkKQogI2Vsc2UKLXN0YXRpYyB2b2lkIF9wdHJzZXQoU1YgKl9QVFJWQUxVRSwgU1YgKnZhbHVlLCBpbnQgaW5kZXgsIGNoYXIgKnR5cGUpIHsKK3N0YXRpYyB2b2lkIF9wdHJzZXQoU1YgKl9QVFJWQUxVRSwgU1YgKnZhbHVlLCBpbnQgaW5kZXgsIGNvbnN0IGNoYXIgKnR5cGUpIHsKICNkZWZpbmUgcHRyc2V0KGEsYixjLGQpIF9wdHJzZXQoYSxiLGMsZCkKICNlbmRpZgogICB2b2lkICAgICAqcHRyOwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvcnVieS9ydWJ5ZGVjLnN3ZyBiL1NXSUcvTGliL3J1YnkvcnVieWRlYy5zd2cKaW5kZXggZmUxZmMyNy4uOGYzYTNkMCAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvcnVieS9ydWJ5ZGVjLnN3ZworKysgYi9TV0lHL0xpYi9ydWJ5L3J1YnlkZWMuc3dnCkBAIC0zLDcgKzMsNyBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotU1dJR0VYUE9SVCh2b2lkKSAgIFNXSUdfZGVmaW5lX2NsYXNzKFZBTFVFLCBzd2lnX3R5cGVfaW5mbyAqKQorU1dJR0VYUE9SVCh2b2lkKSAgIFNXSUdfZGVmaW5lX2NsYXNzKHN3aWdfdHlwZV9pbmZvICopOwogU1dJR0VYUE9SVChWQUxVRSkgIFNXSUdfTmV3UG9pbnRlck9iaih2b2lkICosIHN3aWdfdHlwZV9pbmZvICopOwogU1dJR0VYUE9SVChjaGFyICopIFNXSUdfTWFuZ2xlU3RyKFZBTFVFKTsKIFNXSUdFWFBPUlQodm9pZCAqKSBTV0lHX0NvbnZlcnRQdHIoVkFMVUUsIHN3aWdfdHlwZV9pbmZvICopOwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvdGNsL29iamVjdC5zd2cgYi9TV0lHL0xpYi90Y2wvb2JqZWN0LnN3ZwppbmRleCA3ZTgwNmM2Li5iMDg3ZjM2IDEwMDY0NAotLS0gYS9TV0lHL0xpYi90Y2wvb2JqZWN0LnN3ZworKysgYi9TV0lHL0xpYi90Y2wvb2JqZWN0LnN3ZwpAQCAtNTcsNyArNTcsNyBAQAogCiAgIG9ianYgPSAoVGNsX09iaiAqKikgX29ianY7CiAgIGlmIChvYmpjIDwgMikgewotICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCJ3cm9uZyAjIGFyZ3MuIiwgVENMX1NUQVRJQyk7CisgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJ3cm9uZyAjIGFyZ3MuIiwgVENMX1NUQVRJQyk7CiAgICAgcmV0dXJuIFRDTF9FUlJPUjsKICAgfQogICBtZXRoID0gaW5zdC0+Y2xhc3NwdHItPm1ldGhvZHM7CkBAIC03OSw3ICs3OSw3IEBACiAgIC8qIENoZWNrIGNsYXNzIG1ldGhvZHMgZm9yIGEgbWF0Y2ggKi8KICAgaWYgKHN0cmNtcChtZXRob2QsImNnZXQiKSA9PSAwKSB7CiAgICAgaWYgKG9iamMgPCAzKSB7Ci0gICAgICBUY2xfU2V0UmVzdWx0KGludGVycCwid3JvbmcgIyBhcmdzLiIsIFRDTF9TVEFUSUMpOworICAgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJ3cm9uZyAjIGFyZ3MuIiwgVENMX1NUQVRJQyk7CiAgICAgICByZXR1cm4gVENMX0VSUk9SOwogICAgIH0KICAgICBhdHRybmFtZSA9IFRjbF9HZXRTdHJpbmdGcm9tT2JqKG9ianZbMl0sTlVMTCk7CkBAIC0xMDAsMTIgKzEwMCwxMiBAQAogICAgICAgVGNsX1NldE9ialJlc3VsdChpbnRlcnAsIFRjbF9EdXBsaWNhdGVPYmooaW5zdC0+dGhpc3B0cikpOwogICAgICAgcmV0dXJuIFRDTF9PSzsKICAgICB9Ci0gICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIkludmFsaWQgYXR0cmlidXRlLiIsIFRDTF9TVEFUSUMpOworICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAiSW52YWxpZCBhdHRyaWJ1dGUuIiwgVENMX1NUQVRJQyk7CiAgICAgcmV0dXJuIFRDTF9FUlJPUjsKICAgfSBlbHNlIGlmIChzdHJjbXAobWV0aG9kLCAiY29uZmlndXJlIikgPT0gMCkgewogICAgIGludCBpOwogICAgIGlmIChvYmpjIDwgNCkgewotICAgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIndyb25nICMgYXJncy4iLCBUQ0xfU1RBVElDKTsKKyAgICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAid3JvbmcgIyBhcmdzLiIsIFRDTF9TVEFUSUMpOwogICAgICAgcmV0dXJuIFRDTF9FUlJPUjsKICAgICB9CiAgICAgaSA9IDI7CkBAIC0xMjcsMTYgKzEyNywxNiBAQAogCWF0dHIrKzsKICAgICAgIH0KICAgICAgIGlmIChpbnN0LT5jbGFzc3B0ci0+YXR0cmlidXRlcyAmJiAhKGF0dHItPm5hbWUpKSB7Ci0JVGNsX1NldFJlc3VsdChpbnRlcnAsIkludmFsaWQgYXR0cmlidXRlIG5hbWUuIiwgVENMX1NUQVRJQyk7CisJVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lLiIsIFRDTF9TVEFUSUMpOwogCXJldHVybiBUQ0xfRVJST1I7CiAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBUQ0xfT0s7CiAgIH0gZWxzZSB7Ci0gICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIkludmFsaWQgbWV0aG9kLiBNdXN0IGJlIG9uZSBvZjogY29uZmlndXJlIGNnZXQgIiwgVENMX1NUQVRJQyk7CisgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJJbnZhbGlkIG1ldGhvZC4gTXVzdCBiZSBvbmUgb2Y6IGNvbmZpZ3VyZSBjZ2V0ICIsIFRDTF9TVEFUSUMpOwogICAgIG1ldGggPSBpbnN0LT5jbGFzc3B0ci0+bWV0aG9kczsKICAgICB3aGlsZSAobWV0aCAmJiBtZXRoLT5uYW1lKSB7Ci0gICAgICBUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsIG1ldGgtPm5hbWUpOworICAgICAgVGNsX0FwcGVuZEVsZW1lbnQoaW50ZXJwLCAoY2hhciAqKSBtZXRoLT5uYW1lKTsKICAgICAgIG1ldGgrKzsKICAgICB9CiAgICAgcmV0dXJuIFRDTF9FUlJPUjsKQEAgLTE2MSw3ICsxNjEsNyBAQAogICAgIFRjbF9DbWRJbmZvICAgICAgIGNpOwogCiAgICAgaWYgKCFjbGFzc3B0cikgewotICAgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsInN3aWc6IGludGVybmFsIHJ1bnRpbWUgZXJyb3IuIE5vIGNsYXNzIG9iamVjdCBkZWZpbmVkLiIsIFRDTF9TVEFUSUMpOworICAgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJzd2lnOiBpbnRlcm5hbCBydW50aW1lIGVycm9yLiBObyBjbGFzcyBvYmplY3QgZGVmaW5lZC4iLCBUQ0xfU1RBVElDKTsKICAgICAgIHJldHVybiBUQ0xfRVJST1I7CiAgICAgfQogICAgIGNvbnMgPSBjbGFzc3B0ci0+Y29uc3RydWN0b3I7CkBAIC0yMDEsMTEgKzIwMSwxMSBAQAogCW5ld09iaiA9IFRjbF9EdXBsaWNhdGVPYmoob2Jqdlt0aGlzYXJnXSk7CiAJaWYgKCFuYW1lKSBuYW1lID0gVGNsX0dldFN0cmluZ0Zyb21PYmoobmV3T2JqLE5VTEwpOwogICAgICAgfSBlbHNlIHsKLQlUY2xfU2V0UmVzdWx0KGludGVycCwid3JvbmcgIyBhcmdzLiIsIFRDTF9TVEFUSUMpOworCVRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAid3JvbmcgIyBhcmdzLiIsIFRDTF9TVEFUSUMpOwogCXJldHVybiBUQ0xfRVJST1I7CiAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCJObyBjb25zdHJ1Y3RvciBhdmFpbGFibGUuIiwgVENMX1NUQVRJQyk7CisgICAgICBUY2xfU2V0UmVzdWx0KGludGVycCwgKGNoYXIgKikgIk5vIGNvbnN0cnVjdG9yIGF2YWlsYWJsZS4iLCBUQ0xfU1RBVElDKTsKICAgICAgIHJldHVybiBUQ0xfRVJST1I7CiAgICAgfQogICAgIGlmICghVGNsX0dldENvbW1hbmRJbmZvKGludGVycCxuYW1lLCZjaSkpIHsKQEAgLTIyMiw3ICsyMjIsNyBAQAogICAgICAgVGNsX0NyZWF0ZU9iakNvbW1hbmQoaW50ZXJwLG5hbWUsIFN3aWdNZXRob2RDbWQsIChDbGllbnREYXRhKSBuZXdpbnN0LCBTd2lnT2JqZWN0RGVsZXRlKTsKICAgICAgIHJldHVybiBUQ0xfT0s7CiAgICAgfSBlbHNlIHsKLSAgICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCJPYmplY3QgbmFtZSBhbHJlYWR5IGV4aXN0cyEiLCBUQ0xfU1RBVElDKTsKKyAgICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAiT2JqZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMhIiwgVENMX1NUQVRJQyk7CiAgICAgICByZXR1cm4gVENMX0VSUk9SOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NXSUcvTGliL3RjbC9zd2lndGNsOC5zd2cgYi9TV0lHL0xpYi90Y2wvc3dpZ3RjbDguc3dnCmluZGV4IDQ0MDg3MjUuLjEzODI4NTggMTAwNjQ0Ci0tLSBhL1NXSUcvTGliL3RjbC9zd2lndGNsOC5zd2cKKysrIGIvU1dJRy9MaWIvdGNsL3N3aWd0Y2w4LnN3ZwpAQCAtMzMsNyArMzMsNyBAQAogICBpZiAoKmMgIT0gJ18nKSB7CiAgICAgKnB0ciA9ICh2b2lkICopIDA7CiAgICAgaWYgKHN0cmNtcChjLCJOVUxMIikgPT0gMCkgcmV0dXJuIFRDTF9PSzsKLSAgICBUY2xfU2V0UmVzdWx0KGludGVycCwiVHlwZSBlcnJvci4gRXhwZWN0ZWQgYSBwb2ludGVyIiwgVENMX1NUQVRJQyk7CisgICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIChjaGFyICopICJUeXBlIGVycm9yLiBFeHBlY3RlZCBhIHBvaW50ZXIiLCBUQ0xfU1RBVElDKTsKICAgICByZXR1cm4gVENMX0VSUk9SOwogICB9CiAgIGMrKzsKQEAgLTUxLDggKzUxLDggQEAKICAgaWYgKHR5KSB7CiAgICAgdGMgPSBTV0lHX1R5cGVDaGVjayhjLHR5KTsKICAgICBpZiAoIXRjKSB7Ci0gICAgICBUY2xfU2V0UmVzdWx0KGludGVycCwiVHlwZSBlcnJvci4gRXhwZWN0ZWQgIiwgVENMX1NUQVRJQyk7Ci0gICAgICBUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsIHR5LT5uYW1lKTsKKyAgICAgIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAiVHlwZSBlcnJvci4gRXhwZWN0ZWQgIiwgVENMX1NUQVRJQyk7CisgICAgICBUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsIChjaGFyICopIHR5LT5uYW1lKTsKICAgICAgIHJldHVybiBUQ0xfRVJST1I7CiAgICAgfQogICAgICpwdHIgPSBTV0lHX1R5cGVDYXN0KHRjLCh2b2lkICopcCk7CkBAIC0xMzksNyArMTM5LDcgQEAKICAgICB9CiAgICAgaWYgKGFyZ25vID49IChvYmpjLTEpKSB7CiAgICAgICBpZiAoIW9wdCkgewotCVRjbF9TZXRSZXN1bHQoaW50ZXJwLCJXcm9uZyAjIGFyZ3MuICIsIFRDTF9TVEFUSUMpOworCVRjbF9TZXRSZXN1bHQoaW50ZXJwLCAoY2hhciAqKSAiV3JvbmcgIyBhcmdzLiAiLCBUQ0xfU1RBVElDKTsKIAlnb3RvIGFyZ2Vycm9yOwogICAgICAgfSBlbHNlIHsKIAl2YV9lbmQoYXApOwpAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgfQogICB9CiAgIGlmICgob2JqYy0xKSA+IGFyZ25vKSB7Ci0gICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIldyb25nICMgYXJncy4iLCBUQ0xfU1RBVElDKTsKKyAgICBUY2xfU2V0UmVzdWx0KGludGVycCwgKGNoYXIgKikgIldyb25nICMgYXJncy4iLCBUQ0xfU1RBVElDKTsKICAgICBnb3RvIGFyZ2Vycm9yOwogICB9CiAgIHZhX2VuZChhcCk7CmRpZmYgLS1naXQgYS9TV0lHL0xpYi90Y2wvdGNsc2guaSBiL1NXSUcvTGliL3RjbC90Y2xzaC5pCmluZGV4IDgzOWRlM2IuLjYzMDFiMjAgMTAwNjQ0Ci0tLSBhL1NXSUcvTGliL3RjbC90Y2xzaC5pCisrKyBiL1NXSUcvTGliL3RjbC90Y2xzaC5pCkBAIC00OCwxMiArNDgsMTIgQEAKICAgaWYgKFNXSUdfaW5pdChpbnRlcnApID09IFRDTF9FUlJPUikKICAgICByZXR1cm4gVENMX0VSUk9SOwogI2lmIFRDTF9NQUpPUl9WRVJTSU9OID4gNyB8fCBUQ0xfTUFKT1JfVkVSU0lPTiA9PSA3ICYmIFRDTF9NSU5PUl9WRVJTSU9OID49IDUKLSAgIFRjbF9TZXRWYXIoaW50ZXJwLCJ0Y2xfcmNGaWxlTmFtZSIsU1dJR19SY0ZpbGVOYW1lLFRDTF9HTE9CQUxfT05MWSk7CisgICBUY2xfU2V0VmFyKGludGVycCwgKGNoYXIgKikgInRjbF9yY0ZpbGVOYW1lIixTV0lHX1JjRmlsZU5hbWUsVENMX0dMT0JBTF9PTkxZKTsKICNlbHNlCiAgICB0Y2xfUmNGaWxlTmFtZSA9IFNXSUdfUmNGaWxlTmFtZTsKICNlbmRpZgogI2lmZGVmIFNXSUdfUmNSc3JjTmFtZQotICBUY2xfU2V0VmFyKGludGVycCwidGNsX3JjUnNyY05hbWUiLFNXSUdfUmNSc3JjTmFtZSxUQ0xfR0xPQkFMKTsKKyAgVGNsX1NldFZhcihpbnRlcnAsIChjaGFyICopICJ0Y2xfcmNSc3JjTmFtZSIsU1dJR19SY1JzcmNOYW1lLFRDTF9HTE9CQUwpOwogI2VuZGlmCiAgIAogICByZXR1cm4gVENMX09LOwpkaWZmIC0tZ2l0IGEvU1dJRy9MaWIvdGNsL3dpc2guaSBiL1NXSUcvTGliL3RjbC93aXNoLmkKaW5kZXggMjAxYTQzOC4uNmJlZjNiYSAxMDA2NDQKLS0tIGEvU1dJRy9MaWIvdGNsL3dpc2guaQorKysgYi9TV0lHL0xpYi90Y2wvd2lzaC5pCkBAIC03LDYgKzcsOSBAQAogLy8KIC8qIFJldmlzaW9uIEhpc3RvcnkKICAqICRMb2ckCisgKiBSZXZpc2lvbiAxLjEuMi4xICAyMDAxLzA2LzIwIDExOjQ3OjI5ICBta29lcHBlCisgKiBQb3J0YWJpbGl0eSBmaXhlcworICoKICAqIFJldmlzaW9uIDEuMSAgMjAwMC8wMS8xMSAyMToxNTo1NCAgYmVhemxleQogICogQWRkZWQgZmlsZXMKICAqCkBAIC0xMjIsNyArMTI1LDcgQEAKICAgICAgKi8KIAogI2lmIFRDTF9NQUpPUl9WRVJTSU9OID49IDggfHwgVENMX01BSk9SX1ZFUlNJT04gPT0gNyAmJiBUQ0xfTUlOT1JfVkVSU0lPTiA+PSA1Ci0gICBUY2xfU2V0VmFyKGludGVycCwidGNsX3JjRmlsZU5hbWUiLFNXSUdfUmNGaWxlTmFtZSxUQ0xfR0xPQkFMX09OTFkpOworICAgVGNsX1NldFZhcihpbnRlcnAsIChjaGFyICopICJ0Y2xfcmNGaWxlTmFtZSIsU1dJR19SY0ZpbGVOYW1lLFRDTF9HTE9CQUxfT05MWSk7CiAjZWxzZQogICAgdGNsX1JjRmlsZU5hbWUgPSBTV0lHX1JjRmlsZU5hbWU7CiAjZW5kaWYKQEAgLTEzMSw3ICsxMzQsNyBAQAogCiAjaWZkZWYgTUFDX1RDTAogI2lmZGVmIFNXSUdfUmNSc3JjTmFtZQotICAgIFRjbF9TZXRWYXIoaW50ZXJwLCJ0Y2xfcmNSc3JjTmFtZSIsU1dJR19SY1JzcmNOYW1lLFRDTF9HTE9CQUxfT05MWSk7CisgICAgVGNsX1NldFZhcihpbnRlcnAsIChjaGFyICopICJ0Y2xfcmNSc3JjTmFtZSIsU1dJR19SY1JzcmNOYW1lLFRDTF9HTE9CQUxfT05MWSk7CiAjZW5kaWYKICNlbmRpZgogICAgIHJldHVybiBUQ0xfT0s7CmRpZmYgLS1naXQgYS9TV0lHL01ha2VmaWxlLmluIGIvU1dJRy9NYWtlZmlsZS5pbgppbmRleCA3ZTA5NzI3Li4wMmJmY2VlIDEwMDY0NAotLS0gYS9TV0lHL01ha2VmaWxlLmluCisrKyBiL1NXSUcvTWFrZWZpbGUuaW4KQEAgLTIwLDkgKzIwLDEwIEBACiAKICMgTm90ZTogRmlsZXMgaW4gYFNXSUdfTElCJyBhcmUgbWFjaGluZSBpbmRlcGVuZGVudCBzbyB3ZSB1c2UgYHByZWZpeCcKICMgaW5zdGVhZCBvZiBgZXhlY19wcmVmaXgnIG9yLCBkZXJpdmF0aXZlbHksIGBsaWJkaXInLgotU1dJR19MSUIgICAgPSAkKHByZWZpeCkvbGliL3N3aWcxLjMKK1NXSUdfTElCICAgID0gQHN3aWdfbGliQAogQklOX0RJUiAgICAgPSBAYmluZGlyQAotVEFSR0VUICAgICAgPSBzd2lnCitSRUxFQVNFU1VGRklYID0gQHJlbGVhc2Vfc3VmZml4QAorVEFSR0VUICAgICAgPSBzd2lnJChSRUxFQVNFU1VGRklYKQogU09VUkNFICAgICAgPSBTb3VyY2UKIFNPVVJDRURJUlMgID0gYGxzICQoU09VUkNFKWAKIApAQCAtMzUsNyArMzYsNyBAQAogCSQoU09VUkNFKS9ET0gvbGliZG9oLmEgXAogCSQoTElCUykKIAotZXhwZXJpbWVudDogU3dpZyBQcmVwcm9jZXNzb3IgTFBhcnNlIEV4cGVyaW1lbnQgRE9IIE1vZHVsZXMKK2V4cGVyaW1lbnQ6IFN3aWcgUHJlcHJvY2Vzc29yIExQYXJzZSBET0ggTW9kdWxlcwogCSQoQ1hYKSAtbyAkKFRBUkdFVCkgXAogCSQoU09VUkNFKS9FeHBlcmltZW50L2xpYmV4cC5hIFwKIAkkKFNPVVJDRSkvTFBhcnNlL2xpYmxwYXJzZS5hIFwKQEAgLTQ1LDMzICs0NiwzNyBAQAogCSQoU09VUkNFKS9ET0gvbGliZG9oLmEgXAogCSQoTElCUykKIAotU1dJRzEuMToKK1NXSUcxLjE6IFNvdXJjZS9JbmNsdWRlL3N3aWdjb25maWcuaAogCUBjZCAkKFNPVVJDRSkvU1dJRzEuMTsgJChNQUtFKQogCi1Nb2R1bGVzMS4xOgorTW9kdWxlczEuMTogU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oCiAJQGNkICQoU09VUkNFKS9Nb2R1bGVzMS4xOyAkKE1BS0UpCiAKLVN3aWc6CitTd2lnOiBTb3VyY2UvSW5jbHVkZS9zd2lnY29uZmlnLmgKIAlAY2QgJChTT1VSQ0UpL1N3aWc7ICQoTUFLRSkKIAotUHJlcHJvY2Vzc29yOgorUHJlcHJvY2Vzc29yOiBTb3VyY2UvSW5jbHVkZS9zd2lnY29uZmlnLmgKIAlAY2QgJChTT1VSQ0UpL1ByZXByb2Nlc3NvcjsgJChNQUtFKQogCi1MUGFyc2U6CitMUGFyc2U6IFNvdXJjZS9JbmNsdWRlL3N3aWdjb25maWcuaAogCUBjZCAkKFNPVVJDRSkvTFBhcnNlOyAkKE1BS0UpCiAKLUV4cGVyaW1lbnQ6Ci0JQGNkICQoU09VUkNFKS9FeHBlcmltZW50OyAkKE1BS0UpCi0KLURPSDoKK0RPSDogU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oCiAJQGNkICQoU09VUkNFKS9ET0g7ICQoTUFLRSkKIAotTW9kdWxlczoKK01vZHVsZXM6IFNvdXJjZS9JbmNsdWRlL3N3aWdjb25maWcuaAogCUBjZCAkKFNPVVJDRSkvTW9kdWxlczsgJChNQUtFKQogCiAuUEhPTlk6IFNXSUcxLjEgTW9kdWxlczEuMSBTd2lnIFByZXByb2Nlc3NvciBMUGFyc2UgXAogICAgICAgICBFeHBlcmltZW50IFN3aW0gU1dJTEwgRE9IIFN3aXRoZQogCisjIENvbmZpZyBmaWxlIG11c3QgYmUgZ2VuZXJhdGVkIGF0IG1ha2UgdGltZSwgcmF0aGVyIHRoYW4gYXQgY29uZmlndXJlCisjIHRpbWUgYmVjYXVzZSBpdCBwYXRocyBuZWVkIHRvIGJlIHN1YnN0aXR1dGVkLgorCitTb3VyY2UvSW5jbHVkZS9zd2lnY29uZmlnLmg6IFNvdXJjZS9JbmNsdWRlL3N3aWdjb25maWcuaC5pbiBNYWtlZmlsZS5pbiBjb25maWcuc3RhdHVzCisJc2VkICdzfEAtc3dpZ19saWItQHwkKFNXSUdfTElCKXxnO3N8QC1leGVjX3ByZWZpeC1AfCQoZXhlY19wcmVmaXgpfGc7c3xALXJlbGVhc2Vfc3VmZml4LUB8JChSRUxFQVNFU1VGRklYKXxnJyBTb3VyY2UvSW5jbHVkZS9zd2lnY29uZmlnLmguaW4gPiAkQAorCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBSdW50aW1lIGxpYnJhcmllcwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC05Miw1NiArOTcsMTIyIEBACiBza2lwLXJ1YnkJPSBbIC16ICJAUlVCWUAiIC1vIC16ICJAUlVCWUlOQ0xVREVAIiAtbyAteiAiQFJVQllMSUJAIiBdCiAKIGNoay1zd2lnbGliID0gQFJPT1RfRElSQC9MaWIKLWNoayA9ICQoTUFLRSkgU1dJR19MSUI9JChjaGstc3dpZ2xpYikgY2hlY2sKK2NoayA9ICQoTUFLRSkgLWsgLXMgU1dJR19MSUI9JChjaGstc3dpZ2xpYikgU1dJRz1AUk9PVF9ESVJALyQoVEFSR0VUKSBjaGVjawogCiBjaGVjay1hbGl2ZW5lc3M6Ci0JdGVzdCAteCAuL3N3aWcKLQkuL3N3aWcgLXZlcnNpb24KLQkuL3N3aWcgLWhlbHAKLQkkKHNraXAtdGNsKSB8fCAuL3N3aWcgLXRjbCAtaGVscAotCSQoc2tpcC1wZXJsKSB8fCAuL3N3aWcgLXBlcmwgLWhlbHAKLQkkKHNraXAtcHl0aG9uKSB8fCAuL3N3aWcgLXB5dGhvbiAtaGVscAotCSQoc2tpcC1qYXZhKSB8fCAuL3N3aWcgLWphdmEgLWhlbHAKLQkkKHNraXAtZ3VpbGUpIHx8IC4vc3dpZyAtZ3VpbGUgLWhlbHAKLQkkKHNraXAtbXpzY2hlbWUpIHx8IC4vc3dpZyAtbXpzY2hlbWUgLWhlbHAKLQkkKHNraXAtcnVieSkgfHwgLi9zd2lnIC1ydWJ5IC1oZWxwCisJdGVzdCAteCAuLyQoVEFSR0VUKQorCS4vJChUQVJHRVQpIC12ZXJzaW9uCisJLi8kKFRBUkdFVCkgLWhlbHAKKwkkKHNraXAtdGNsKSB8fCAuLyQoVEFSR0VUKSAtdGNsIC1oZWxwCisJJChza2lwLXBlcmwpIHx8IC4vJChUQVJHRVQpIC1wZXJsIC1oZWxwCisJJChza2lwLXB5dGhvbikgfHwgLi8kKFRBUkdFVCkgLXB5dGhvbiAtaGVscAorCSQoc2tpcC1qYXZhKSB8fCAuLyQoVEFSR0VUKSAtamF2YSAtaGVscAorCSQoc2tpcC1ndWlsZSkgfHwgLi8kKFRBUkdFVCkgLWd1aWxlIC1oZWxwCisJJChza2lwLW16c2NoZW1lKSB8fCAuLyQoVEFSR0VUKSAtbXpzY2hlbWUgLWhlbHAKKwkkKHNraXAtcnVieSkgfHwgLi8kKFRBUkdFVCkgLXJ1YnkgLWhlbHAKIAotY2hlY2stZXhhbXBsZXM6Ci0JJChza2lwLXRjbCkgfHwgKGNkIEV4YW1wbGVzL3RjbC9jbGFzcyAmJiAkKGNoaykpCi0JJChza2lwLXRjbCkgfHwgKGNkIEV4YW1wbGVzL3RjbC9jb25zdGFudHMgJiYgJChjaGspKQotCSQoc2tpcC10Y2wpIHx8IChjZCBFeGFtcGxlcy90Y2wvcG9pbnRlciAmJiAkKGNoaykpCi0JJChza2lwLXRjbCkgfHwgKGNkIEV4YW1wbGVzL3RjbC9yZWZlcmVuY2UgJiYgJChjaGspKQotCSQoc2tpcC10Y2wpIHx8IChjZCBFeGFtcGxlcy90Y2wvc2ltcGxlICYmICQoY2hrKSkKLQkkKHNraXAtdGNsKSB8fCAoY2QgRXhhbXBsZXMvdGNsL3ZhbHVlICYmICQoY2hrKSkKLQkkKHNraXAtdGNsKSB8fCAoY2QgRXhhbXBsZXMvdGNsL3ZhcmlhYmxlcyAmJiAkKGNoaykpCi0JJChza2lwLXBlcmwpIHx8IChjZCBFeGFtcGxlcy9wZXJsNS9jbGFzcyAmJiAkKGNoaykpCi0JJChza2lwLXBlcmwpIHx8IChjZCBFeGFtcGxlcy9wZXJsNS9jb25zdGFudHMgJiYgJChjaGspKQotCSQoc2tpcC1wZXJsKSB8fCAoY2QgRXhhbXBsZXMvcGVybDUvcG9pbnRlciAmJiAkKGNoaykpCi0JJChza2lwLXBlcmwpIHx8IChjZCBFeGFtcGxlcy9wZXJsNS9yZWZlcmVuY2UgJiYgJChjaGspKQotCSQoc2tpcC1wZXJsKSB8fCAoY2QgRXhhbXBsZXMvcGVybDUvc2ltcGxlICYmICQoY2hrKSkKLQkkKHNraXAtcGVybCkgfHwgKGNkIEV4YW1wbGVzL3Blcmw1L3ZhbHVlICYmICQoY2hrKSkKLQkkKHNraXAtcGVybCkgfHwgKGNkIEV4YW1wbGVzL3Blcmw1L3ZhcmlhYmxlcyAmJiAkKGNoaykpCi0JJChza2lwLXB5dGhvbikgfHwgKGNkIEV4YW1wbGVzL3B5dGhvbi9jbGFzcyAmJiAkKGNoaykpCi0JJChza2lwLXB5dGhvbikgfHwgKGNkIEV4YW1wbGVzL3B5dGhvbi9jb25zdGFudHMgJiYgJChjaGspKQotCSQoc2tpcC1weXRob24pIHx8IChjZCBFeGFtcGxlcy9weXRob24vcG9pbnRlciAmJiAkKGNoaykpCi0JJChza2lwLXB5dGhvbikgfHwgKGNkIEV4YW1wbGVzL3B5dGhvbi9yZWZlcmVuY2UgJiYgJChjaGspKQotCSQoc2tpcC1weXRob24pIHx8IChjZCBFeGFtcGxlcy9weXRob24vc2ltcGxlICYmICQoY2hrKSkKLQkkKHNraXAtcHl0aG9uKSB8fCAoY2QgRXhhbXBsZXMvcHl0aG9uL3ZhbHVlICYmICQoY2hrKSkKLQkkKHNraXAtcHl0aG9uKSB8fCAoY2QgRXhhbXBsZXMvcHl0aG9uL3ZhcmlhYmxlcyAmJiAkKGNoaykpCi0JJChza2lwLWphdmEpIHx8IChjZCBFeGFtcGxlcy9qYXZhL25hdGl2ZSAmJiAkKGNoaykpCi0JJChza2lwLWphdmEpIHx8IChjZCBFeGFtcGxlcy9qYXZhL3NpbXBsZSAmJiAkKGNoaykpCi0JJChza2lwLWphdmEpIHx8IChjZCBFeGFtcGxlcy9qYXZhL3R5cGVtYXAgJiYgJChjaGspKQotCSQoc2tpcC1ndWlsZSkgfHwgKGNkIEV4YW1wbGVzL2d1aWxlL21hdHJpeCAmJiAkKGNoaykpCi0JJChza2lwLWd1aWxlKSB8fCAoY2QgRXhhbXBsZXMvZ3VpbGUvc2ltcGxlICYmICQoY2hrKSkKLQkkKHNraXAtZ3VpbGUpIHx8IChjZCBFeGFtcGxlcy9ndWlsZS9wb3J0ICYmICQoY2hrKSkKLQkkKHNraXAtbXpzY2hlbWUpIHx8IChjZCBFeGFtcGxlcy9tenNjaGVtZS9zaW1wbGUgJiYgJChjaGspKQotCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvcnVieS9jbGFzcyAmJiAkKGNoaykpCi0JJChza2lwLXJ1YnkpIHx8IChjZCBFeGFtcGxlcy9ydWJ5L2NvbnN0YW50cyAmJiAkKGNoaykpCi0JJChza2lwLXJ1YnkpIHx8IChjZCBFeGFtcGxlcy9ydWJ5L3BvaW50ZXIgJiYgJChjaGspKQotCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvcnVieS9yZWZlcmVuY2UgJiYgJChjaGspKQotCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvcnVieS9zaW1wbGUgJiYgJChjaGspKQotCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvcnVieS92YWx1ZSAmJiAkKGNoaykpCi0JJChza2lwLXJ1YnkpIHx8IChjZCBFeGFtcGxlcy9ydWJ5L3ZhcmlhYmxlcyAmJiAkKGNoaykpCitUQ0xfRVhBTVBMRVMgPSBjbGFzcyBjb25zdGFudHMgZW51bSBmdW5jcHRyIHBvaW50ZXIgcmVmZXJlbmNlIHNpbXBsZSB2YWx1ZSB2YXJpYWJsZXMKK1BFUkw1X0VYQU1QTEVTID0gY2xhc3MgY29uc3RhbnRzIGZ1bmNwdHIgcG9pbnRlciByZWZlcmVuY2Ugc2ltcGxlIHZhbHVlIHZhcmlhYmxlcyBwb2ludGVyLWN4eAorUFlUSE9OX0VYQU1QTEVTID0gY2xhc3MgY29uc3RhbnRzIGVudW0gZnVuY3B0ciBwb2ludGVyIHJlZmVyZW5jZSBzaGFkb3cgc2ltcGxlIHZhbHVlIHZhcmlhYmxlcyAKK0pBVkFfRVhBTVBMRVMgPSBjbGFzcyBjb25zdGFudHMgZW51bSBuYXRpdmUgcmVmZXJlbmNlIHNpbXBsZSB0eXBlbWFwCitHVUlMRV9FWEFNUExFUyA9IG1hdHJpeCBzaW1wbGUgcG9ydCB0ZXN0LXN1aXRlCitNWlNDSEVNRV9FWEFNUExFUyA9IHNpbXBsZQorUlVCWV9FWEFNUExFUyA9IGNsYXNzIGNvbnN0YW50cyBlbnVtIGZ1bmNwdHIgcG9pbnRlciByZWZlcmVuY2Ugc2ltcGxlIHZhbHVlIHZhcmlhYmxlcworCitjaGVjay1leGFtcGxlczogY2hlY2stdGNsLWV4YW1wbGVzIGNoZWNrLXBlcmw1LWV4YW1wbGVzIGNoZWNrLXB5dGhvbi1leGFtcGxlcyBcCisJCWNoZWNrLWphdmEtZXhhbXBsZXMgY2hlY2stZ3VpbGUtZXhhbXBsZXMgY2hlY2stbXpzY2hlbWUtZXhhbXBsZXMgXAorCQljaGVjay1ydWJ5LWV4YW1wbGVzCisKK2NoZWNrLXRjbC1leGFtcGxlczoKKwlAaWYgJChza2lwLXRjbCk7IHRoZW4JCQlcCisJICBlY2hvIFNraXBwaW5nIFRjbCB0ZXN0czsJCVwKKwllbHNlCQkJCQlcCisJICBwYXNzZWQ9dHJ1ZTsJCQkJXAorCSAgZm9yIGEgaW4gJChUQ0xfRVhBTVBMRVMpOyBkbwkJXAorCSAgICBlY2hvIENoZWNraW5nIEV4YW1wbGVzL3RjbC8kJGE7CVwKKwkgICAgKGNkIEV4YW1wbGVzL3RjbC8kJGEgJiYgJChjaGspKQlcCisJICAgIHx8IHBhc3NlZD1mYWxzZTsJCQlcCisJICBkb25lOwkJCQkJXAorCSAgdGVzdCAkJHBhc3NlZCA9IHRydWU7CQkJXAorCWZpCisKK2NoZWNrLXBlcmw1LWV4YW1wbGVzOgorCUBpZiAkKHNraXAtcGVybCk7IHRoZW4JCQlcCisJICBlY2hvIFNraXBwaW5nIFBlcmwgdGVzdHM7CQlcCisJZWxzZQkJCQkJXAorCSAgcGFzc2VkPXRydWU7CQkJCVwKKwkgIGZvciBhIGluICQoUEVSTDVfRVhBTVBMRVMpOyBkbwlcCisJICAgIGVjaG8gQ2hlY2tpbmcgRXhhbXBsZXMvcGVybDUvJCRhOwlcCisJICAgIChjZCBFeGFtcGxlcy9wZXJsNS8kJGEgJiYgJChjaGspKQlcCisJICAgIHx8IHBhc3NlZD1mYWxzZTsJCQlcCisJICBkb25lOwkJCQkJXAorCSAgdGVzdCAkJHBhc3NlZCA9IHRydWU7CQkJXAorCWZpCisKK2NoZWNrLXB5dGhvbi1leGFtcGxlczoKKwlAaWYgJChza2lwLXB5dGhvbik7IHRoZW4JCQlcCisJICBlY2hvIFNraXBwaW5nIFB5dGhvbiB0ZXN0czsJCQlcCisJZWxzZQkJCQkJCVwKKwkgIHBhc3NlZD10cnVlOwkJCQkJXAorCSAgZm9yIGEgaW4gJChQWVRIT05fRVhBTVBMRVMpOyBkbwkJXAorCSAgICBlY2hvIENoZWNraW5nIEV4YW1wbGVzL3B5dGhvbi8kJGE7CQlcCisJICAgIChjZCBFeGFtcGxlcy9weXRob24vJCRhICYmICQoY2hrKSkJCVwKKwkgICAgfHwgcGFzc2VkPWZhbHNlOwkJCQlcCisJICBkb25lOwkJCQkJCVwKKwkgIHRlc3QgJCRwYXNzZWQgPSB0cnVlOwkJCQlcCisJZmkKKworY2hlY2stamF2YS1leGFtcGxlczoKKwlAaWYgJChza2lwLWphdmEpOyB0aGVuCQkJXAorCSAgZWNobyBTa2lwcGluZyBKYXZhIHRlc3RzOwkJXAorCWVsc2UJCQkJCVwKKwkgIHBhc3NlZD10cnVlOwkJCQlcCisJICBmb3IgYSBpbiAkKEpBVkFfRVhBTVBMRVMpOyBkbwkJXAorCSAgICBlY2hvIENoZWNraW5nIEV4YW1wbGVzL2phdmEvJCRhOwlcCisJICAgIChjZCBFeGFtcGxlcy9qYXZhLyQkYSAmJiAkKGNoaykpCVwKKwkgICAgfHwgcGFzc2VkPWZhbHNlOwkJCVwKKwkgIGRvbmU7CQkJCQlcCisJICB0ZXN0ICQkcGFzc2VkID0gdHJ1ZTsJCQlcCisJZmkKKworY2hlY2stZ3VpbGUtZXhhbXBsZXM6CisJQGlmICQoc2tpcC1ndWlsZSk7IHRoZW4JCQlcCisJICBlY2hvIFNraXBwaW5nIEd1aWxlIHRlc3RzOwkJXAorCWVsc2UJCQkJCVwKKwkgIHBhc3NlZD10cnVlOwkJCQlcCisJICBmb3IgYSBpbiAkKEdVSUxFX0VYQU1QTEVTKTsgZG8JXAorCSAgICBlY2hvIENoZWNraW5nIEV4YW1wbGVzL2d1aWxlLyQkYTsJXAorCSAgICAoY2QgRXhhbXBsZXMvZ3VpbGUvJCRhICYmICQoY2hrKSkJXAorCSAgICB8fCBwYXNzZWQ9ZmFsc2U7CQkJXAorCSAgZG9uZTsJCQkJCVwKKwkgIHRlc3QgJCRwYXNzZWQgPSB0cnVlOwkJCVwKKwlmaQorCitjaGVjay1tenNjaGVtZS1leGFtcGxlczoKKwlAaWYgJChza2lwLW16c2NoZW1lKTsgdGhlbgkJCVwKKwkgIGVjaG8gU2tpcHBpbmcgTXpTY2hlbWUgdGVzdHM7CQkJXAorCWVsc2UJCQkJCQlcCisJICBwYXNzZWQ9dHJ1ZTsJCQkJCVwKKwkgIGZvciBhIGluICQoTVpTQ0hFTUVfRVhBTVBMRVMpOyBkbwkJXAorCSAgICBlY2hvIENoZWNraW5nIEV4YW1wbGVzL216c2NoZW1lLyQkYTsJXAorCSAgICAoY2QgRXhhbXBsZXMvbXpzY2hlbWUvJCRhICYmICQoY2hrKSkJXAorCSAgICB8fCBwYXNzZWQ9ZmFsc2U7CQkJCVwKKwkgIGRvbmU7CQkJCQkJXAorCSAgdGVzdCAkJHBhc3NlZCA9IHRydWU7CQkJCVwKKwlmaQorCitjaGVjay1ydWJ5LWV4YW1wbGVzOgorCUBpZiAkKHNraXAtcnVieSk7IHRoZW4JCQlcCisJICBlY2hvIFNraXBwaW5nIFJ1YnkgdGVzdHM7CQlcCisJZWxzZQkJCQkJXAorCSAgcGFzc2VkPXRydWU7CQkJCVwKKwkgIGZvciBhIGluICQoUlVCWV9FWEFNUExFUyk7IGRvCQlcCisJICAgIGVjaG8gQ2hlY2tpbmcgRXhhbXBsZXMvcnVieS8kJGE7CVwKKwkgICAgKGNkIEV4YW1wbGVzL3J1YnkvJCRhICYmICQoY2hrKSkJXAorCSAgICB8fCBwYXNzZWQ9ZmFsc2U7CQkJXAorCSAgZG9uZTsJCQkJCVwKKwkgIHRlc3QgJCRwYXNzZWQgPSB0cnVlOwkJCVwKKwlmaQogCiBFeGFtcGxlcy9HSUZQbG90L2xpYmdpZnBsb3QuYToKIAljZCBFeGFtcGxlcy9HSUZQbG90L0xpYiA7ICQoTUFLRSkKQEAgLTE1MSwxMiArMjIyLDE0IEBACiAJJChza2lwLXBlcmwpIHx8IChjZCBFeGFtcGxlcy9HSUZQbG90L1Blcmwvc2ltcGxlICYmICQoY2hrKSkKIAkkKHNraXAtcGVybCkgfHwgKGNkIEV4YW1wbGVzL0dJRlBsb3QvUGVybC9zaGFkb3cgJiYgJChjaGspKQogCSQoc2tpcC1weXRob24pIHx8IChjZCBFeGFtcGxlcy9HSUZQbG90L1B5dGhvbi9mdWxsICYmICQoY2hrKSkKKwkkKHNraXAtcHl0aG9uKSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2hhZG93ICYmICQoY2hrKSkKIAkkKHNraXAtcHl0aG9uKSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9QeXRob24vc2ltcGxlICYmICQoY2hrKSkKIAkkKHNraXAtdGNsKSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9UY2wvZnVsbCAmJiAkKGNoaykpCiAJJChza2lwLXRjbCkgfHwgKGNkIEV4YW1wbGVzL0dJRlBsb3QvVGNsL21hbmRlbCAmJiAkKGNoaykpCiAJJChza2lwLXRjbCkgfHwgKGNkIEV4YW1wbGVzL0dJRlBsb3QvVGNsL3NpbXBsZSAmJiAkKGNoaykpCiAJJChza2lwLWd1aWxlKSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9HdWlsZS9mdWxsICYmICQoY2hrKSkKIAkkKHNraXAtZ3VpbGUpIHx8IChjZCBFeGFtcGxlcy9HSUZQbG90L0d1aWxlL3NpbXBsZSAmJiAkKGNoaykpCisJJChza2lwLWphdmEpIHx8IChjZCBFeGFtcGxlcy9HSUZQbG90L0phdmEgJiYgJChjaGspKQogCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9SdWJ5L2Z1bGwgJiYgJChjaGspKQogCSQoc2tpcC1ydWJ5KSB8fCAoY2QgRXhhbXBsZXMvR0lGUGxvdC9SdWJ5L3NpbXBsZSAmJiAkKGNoaykpCiAJJChza2lwLXJ1YnkpIHx8IChjZCBFeGFtcGxlcy9HSUZQbG90L1J1Ynkvc2hhZG93ICYmICQoY2hrKSkKQEAgLTE3OSw3ICsyNTIsNyBAQAogCSAgIGZpIFwKIAlkb25lOwogCUBjZCBSdW50aW1lOyAkKE1BS0UpIGNsZWFuCi0Jcm0gLWYgc3dpZworCXJtIC1mICQoVEFSR0VUKQogCiBkaXN0Y2xlYW4tZGVhZCA9IGNvbmZpZy5zdGF0dXMgY29uZmlnLmxvZyBjb25maWcuY2FjaGUgXAogCQkgQGNvbmZpZ3VyZV9zdWJzdGl0dXRlZF9maWxlc0AKQEAgLTIwMiw2NCArMjc1LDY0IEBACiAKIGluc3RhbGwtbWFpbjoKIAlAZWNobyAiSW5zdGFsbGluZyAkKEJJTl9ESVIpL3N3aWciCi0JQCQoTUtJTlNURElSUykgJChCSU5fRElSKQotCUBpZiBbIC1mIHN3aWcuZXhlIF07IHRoZW4JCQkJCVwKLQkJJChJTlNUQUxMX1BST0dSQU0pIHN3aWcuZXhlICQoQklOX0RJUikvc3dpZy5leGU7CVwKLQllbHNlCQkJCQkJCQlcCi0JCSQoSU5TVEFMTF9QUk9HUkFNKSBzd2lnICQoQklOX0RJUikvc3dpZzsJCVwKKwlAJChNS0lOU1RESVJTKSAkKERFU1RESVIpJChCSU5fRElSKQorCUBpZiBbIC1mIHN3aWcuZXhlIF07IHRoZW4JCQkJCQlcCisJCSQoSU5TVEFMTF9QUk9HUkFNKSBzd2lnLmV4ZSAkKERFU1RESVIpJChCSU5fRElSKS9zd2lnLmV4ZTsJXAorCWVsc2UJCQkJCQkJCQlcCisJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKFRBUkdFVCkgJChERVNURElSKSQoQklOX0RJUikvJChUQVJHRVQpOwlcCiAJZmkKIAogaW5zdGFsbC1saWI6CiAJQGVjaG8gIkluc3RhbGxpbmcgdGhlIFNXSUcgbGlicmFyeSIKLQlAJChNS0lOU1RESVJTKSAkKFNXSUdfTElCKQorCUAkKE1LSU5TVERJUlMpICQoREVTVERJUikkKFNXSUdfTElCKQogIwljZCAkKFNXSUdfTElCKTsgcm0gLXJmICoKICMJVGhlIGZvbGxvd2luZyBsaW5lIGhhcyBgKi5zd2cnIHJlbW92ZWQgLS0gYWRkIGl0IGJhY2sgaWYgbmVlZGVkLgogCUBjZCAkKHNyY2RpcikvTGliOyBmb3IgaSBpbiAqLmkgKi5zd2c7IFwKIAkgICAgZG8gXAogCSAgICBlY2hvICJJbnN0YWxsaW5nIExpYi8kJGkiOyBcCi0gICAgICAgICAgICAuLi8kKElOU1RBTExfREFUQSkgJCRpICQoU1dJR19MSUIpLyQkaTsgXAorICAgICAgICAgICAgLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKERFU1RESVIpJChTV0lHX0xJQikvJCRpOyBcCiAJICAgIGRvbmU7Ci0JQCQoTUtJTlNURElSUykgJChTV0lHX0xJQikvdGNsCisJQCQoTUtJTlNURElSUykgJChERVNURElSKSQoU1dJR19MSUIpL3RjbAogCUBjZCAkKHNyY2RpcikvTGliL3RjbDsgZm9yIGkgaW4gKi5pICouc3dnOyBcCiAJICAgIGRvIFwKIAkgICAgZWNobyAiSW5zdGFsbGluZyBMaWIvdGNsLyQkaSI7IFwKLSAgICAgICAgICAgIC4uLy4uLyQoSU5TVEFMTF9EQVRBKSAkJGkgJChTV0lHX0xJQikvdGNsLyQkaTsgXAorICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKERFU1RESVIpJChTV0lHX0xJQikvdGNsLyQkaTsgXAogCSAgICBkb25lOwotCUAkKE1LSU5TVERJUlMpICQoU1dJR19MSUIpL3Blcmw1CisJQCQoTUtJTlNURElSUykgJChERVNURElSKSQoU1dJR19MSUIpL3Blcmw1CiAJQGNkICQoc3JjZGlyKS9MaWIvcGVybDU7IGZvciBpIGluICouaSAqLnN3ZyBNYWtlZmlsZS5wbDsgXAogCSAgICBkbyBcCiAJICAgIGVjaG8gIkluc3RhbGxpbmcgTGliL3Blcmw1LyQkaSI7IFwKLSAgICAgICAgICAgIC4uLy4uLyQoSU5TVEFMTF9EQVRBKSAkJGkgJChTV0lHX0xJQikvcGVybDUvJCRpOyBcCisgICAgICAgICAgICAuLi8uLi8kKElOU1RBTExfREFUQSkgJCRpICQoREVTVERJUikkKFNXSUdfTElCKS9wZXJsNS8kJGk7IFwKIAkgICAgZG9uZTsKLQlAJChNS0lOU1RESVJTKSAkKFNXSUdfTElCKS9weXRob24KKwlAJChNS0lOU1RESVJTKSAkKERFU1RESVIpJChTV0lHX0xJQikvcHl0aG9uCiAJQGNkICQoc3JjZGlyKS9MaWIvcHl0aG9uOyBmb3IgaSBpbiAqLmkgKi5zd2c7IFwKIAkgICAgZG8gXAogCSAgICBlY2hvICJJbnN0YWxsaW5nIExpYi9weXRob24vJCRpIjsgXAotICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKFNXSUdfTElCKS9weXRob24vJCRpOyBcCisgICAgICAgICAgICAuLi8uLi8kKElOU1RBTExfREFUQSkgJCRpICQoREVTVERJUikkKFNXSUdfTElCKS9weXRob24vJCRpOyBcCiAJICAgIGRvbmU7Ci0JQCQoTUtJTlNURElSUykgJChTV0lHX0xJQikvZ3VpbGUKKwlAJChNS0lOU1RESVJTKSAkKERFU1RESVIpJChTV0lHX0xJQikvZ3VpbGUKIAlAY2QgJChzcmNkaXIpL0xpYi9ndWlsZTsgZm9yIGkgaW4gKi5pICouc3dnOyBcCiAJICAgIGRvIFwKIAkgICAgZWNobyAiSW5zdGFsbGluZyBMaWIvZ3VpbGUvJCRpIjsgXAotICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKFNXSUdfTElCKS9ndWlsZS8kJGk7IFwKKyAgICAgICAgICAgIC4uLy4uLyQoSU5TVEFMTF9EQVRBKSAkJGkgJChERVNURElSKSQoU1dJR19MSUIpL2d1aWxlLyQkaTsgXAogCSAgICBkb25lOwotCUAkKE1LSU5TVERJUlMpICQoU1dJR19MSUIpL2phdmEKKwlAJChNS0lOU1RESVJTKSAkKERFU1RESVIpJChTV0lHX0xJQikvamF2YQogCUBjZCAkKHNyY2RpcikvTGliL2phdmE7IGZvciBpIGluICouaSAqLnN3ZzsgXAogCSAgICBkbyBcCiAJICAgIGVjaG8gIkluc3RhbGxpbmcgTGliL2phdmEvJCRpIjsgXAotICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKFNXSUdfTElCKS9qYXZhLyQkaTsgXAorICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKERFU1RESVIpJChTV0lHX0xJQikvamF2YS8kJGk7IFwKIAkgICAgZG9uZTsKLQlAJChNS0lOU1RESVJTKSAkKFNXSUdfTElCKS9tenNjaGVtZQorCUAkKE1LSU5TVERJUlMpICQoREVTVERJUikkKFNXSUdfTElCKS9tenNjaGVtZQogCUBjZCAkKHNyY2RpcikvTGliL216c2NoZW1lOyBmb3IgaSBpbiAqLmkgKi5zd2c7IFwKIAkgICAgZG8gXAogCSAgICBlY2hvICJJbnN0YWxsaW5nIExpYi9tenNjaGVtZS8kJGkiOyBcCi0gICAgICAgICAgICAuLi8uLi8kKElOU1RBTExfREFUQSkgJCRpICQoU1dJR19MSUIpL216c2NoZW1lLyQkaTsgXAorICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKERFU1RESVIpJChTV0lHX0xJQikvbXpzY2hlbWUvJCRpOyBcCiAJICAgIGRvbmU7Ci0JQCQoTUtJTlNURElSUykgJChTV0lHX0xJQikvcnVieQorCUAkKE1LSU5TVERJUlMpICQoREVTVERJUikkKFNXSUdfTElCKS9ydWJ5CiAJQGNkICQoc3JjZGlyKS9MaWIvcnVieTsgZm9yIGkgaW4gKi5pICouc3dnIE1ha2VmaWxlLnN3aWcgZXh0Y29uZi5yYjsgXAogCSAgICBkbyBcCiAJICAgIGVjaG8gIkluc3RhbGxpbmcgTGliL3J1YnkvJCRpIjsgXAotICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKFNXSUdfTElCKS9ydWJ5LyQkaTsgXAorICAgICAgICAgICAgLi4vLi4vJChJTlNUQUxMX0RBVEEpICQkaSAkKERFU1RESVIpJChTV0lHX0xJQikvcnVieS8kJGk7IFwKIAkgICAgZG9uZTsKIAogaW5zdGFsbC1ydW50aW1lOgpkaWZmIC0tZ2l0IGEvU1dJRy9ORVcgYi9TV0lHL05FVwppbmRleCAyZmIxOTVkLi43NjBjNjEzIDEwMDY0NAotLS0gYS9TV0lHL05FVworKysgYi9TV0lHL05FVwpAQCAtMTg3LDcgKzE4Nyw3IEBACiA2LiBOZXcgRmVhdHVyZXMKIC0tLS0tLS0tLS0tLS0tLQogCi02LjEgSmF2YSBtb2R1bGUgYWRkZWQgKGFsdGhvdWdoIGJyb2tlbiBpbiBTV0lHMS4zYTQpCis2LjEgSmF2YSBtb2R1bGUgYWRkZWQKIAogNi4yIFJ1YnkgbW9kdWxlIGFkZGVkCiAKZGlmZiAtLWdpdCBhL1NXSUcvUkVBRE1FIGIvU1dJRy9SRUFETUUKaW5kZXggZTg0OTE4Zi4uOGYxMzQwZiAxMDA2NDQKLS0tIGEvU1dJRy9SRUFETUUKKysrIGIvU1dJRy9SRUFETUUKQEAgLTEsNTQgKzEsNzIgQEAKIFNXSUcgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcikKIAotVmVyc2lvbjogMS4zIChhbHBoYSkKK1ZlcnNpb246IDEuMy42IChKdWx5IDksIDIwMDEpCiAKICRIZWFkZXIkCiAKLVRhZ2xpbmU6IFNXSUcgaXMgYSBjb21waWxlciB0aGF0IGludGVncmF0ZXMgQyBhbmQgQysrIHdpdGggc2NyaXB0aW5nCitUYWdsaW5lOiBTV0lHIGlzIGEgY29tcGlsZXIgdGhhdCBpbnRlZ3JhdGVzIEMgYW5kIEMrKyB3aXRoCiAgICAgICAgICBsYW5ndWFnZXMgaW5jbHVkaW5nIFBlcmwsIFB5dGhvbiwgVGNsLCBHdWlsZSwgTXpzY2hlbWUsCi0gICAgICAgICBhbmQgUnVieS4KKyAgICAgICAgIEphdmEgYW5kIFJ1YnkuCiAKLVRoaXMgZGlzdHJpYnV0aW9uIHJlcHJlc2VudHMgd29yayBpbiBwcm9ncmVzcyB0b3dhcmRzIGJ1aWxkaW5nIGEgbmV3Ci1TV0lHIHJlbGVhc2UuICBUaGUgZ3VpbHR5IHBhcnRpZXMgd29ya2luZyBvbiB0aGlzIGFyZToKK1NXSUcgcmVhZHMgYW5ub3RhdGVkIEMvQysrIGhlYWRlciBmaWxlcyBhbmQgY3JlYXRlcyB3cmFwcGVyIGNvZGUgKGdsdWUKK2NvZGUpIGluIG9yZGVyIHRvIG1ha2UgdGhlIGNvcnJlc3BvbmRpbmcgQy9DKysgbGlicmFyaWVzIGF2YWlsYWJsZSB0bwordGhlIGxpc3RlZCBsYW5ndWFnZXMsIG9yIHRvIGV4dGVuZCBDL0MrKyBwcm9ncmFtcyB3aXRoIGEgc2NyaXB0aW5nCitsYW5ndWFnZS4KKworVGhpcyBkaXN0cmlidXRpb24gcmVwcmVzZW50cyB0aGUgbmV3IHN0YWJsZSByZWxlYXNlIG9mIFNXSUcsIGFpbWluZyB0bworcmVwbGFjZSB2ZXJzaW9ucyAxLjFwNSBhbmQgMS4xLTg4My4gVGhlIGd1aWx0eSBwYXJ0aWVzIHdvcmtpbmcgb24gdGhpcworYXJlOgogCiAgRGF2ZSBCZWF6bGV5IChiZWF6bGV5QGNzLnVjaGljYWdvLmVkdSkgICAgICAgICAgICAgICAgIChTV0lHIGNvcmUpCiAgTG9pYyBEYWNoYXJ5IChsb2ljQGNlaWMuY29tKSAgICAgICAgICAgICAgICAgICAgICAgICAgIChQZXJsNSkKLSBIYXJjbyBkZSBIaWxzdGVyIChIYXJjby5kZS5IaWxzdGVyQEFUQ29tcHV0aW5nLm5sKSAgICAgKEphdmEpCisgV2lsbGlhbSBGdWx0b24gKHdmdWx0b24xQG1vdG9yb2xhLmNvbSkgICAgICAgICAgICAgICAgIChKYXZhKQogIFRoaWVuLVRoaSBOZ3V5ZW4gKHR0bkBnbHVnLm9yZykgICAgICAgICAgICAgICAgICAgICAgICAoVGVzdGluZy9NaXNjKQogIE1hc2FraSBGdWt1c2hpbWEgKGZ1a3VzaW1hQGdvdG8uaW5mby53YXNlZGEuYWMuanApICAgICAoUnVieSkKLSBNYXR0aGlhcyBL9nBwZSAobWtvZXBwZUBzYXR1cm4uTWF0aC5VbmktTWFnZGVidXJnLkRFKSAgKEd1aWxlKQotIE9sZWcgVG9sbWF0Y2V2IChvLnRAYWx0YXZpc3RhLm5ldCkgICAgICAgICAgICAgICAgICAgICAoTXpzY2hlbWUpCisgTWF0dGhpYXMgS/ZwcGUgKG1rb2VwcGVAbWFpbC5tYXRoLnVuaS1tYWdkZWJ1cmcuZGUpICAgIChHdWlsZS9NelNjaGVtZSkKIAotUGFzdCBjb250cmlidXRvcnMgKGN1cnJlbnRseSBpbmNvbXBsZXRlKToKK1Bhc3QgY29udHJpYnV0b3JzIChzZWUgdGhlIENIQU5HRVMgZmlsZSBmb3IgYSBjb21wbGV0ZSBsaXN0KToKIAotRHVzdGluIE1pdGNoZWxsLCBJYW4gQ29va2UsIENhdGFsaW4gRHVtaXRyZXNjdSwgQmFyYW4gS292dWssIEdhcnkgSG9sdCwKLURhdmlkIEZsZXRjaGVyLgorQ2xhcmsgTWNHcmV3LCBEdXN0aW4gTWl0Y2hlbGwsIElhbiBDb29rZSwgQ2F0YWxpbiBEdW1pdHJlc2N1LCBCYXJhbgorS292dWssIEdhcnkgSG9sdCwgRGF2aWQgRmxldGNoZXIsIE9sZWcgVG9sbWF0Y2V2LCBIYXJjbyBkZSBIaWxzdGVyLgogCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKioqKiogICAgICAgSU1QT1JUQU5UIE5PVElDRSAtLSBSRUFEIFRISVMgTk9XIChPUiBFTFNFKSAgICAgICAgICAgKioqKioKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitVcC10by1kYXRlIFNXSUcgcmVsYXRlZCBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQKIAotSWYgeW91IGRvd25sb2FkZWQgU1dJRyBhcyBhIHByZXBhY2thZ2VkIHJlbGVhc2Ugc3VjaCBhcyBTV0lHMS4zYTQsIGJlCi1hZHZpc2VkIHRoYXQgdGhpcyBkaXN0cmlidXRpb24gcmVwcmVzZW50cyBhIHNuYXBzaG90IG9mIHRoZSBtb3N0Ci0ic3RhYmxlIiBwYXJ0IG9mIHRoZSBTV0lHIENWUyByZXBvc2l0b3J5LiAgQXMgdGhpcyBpcyBhbiB1bnN0YWJsZQotcmVsZWFzZSwgdGhlcmUgaXMgYSBwcmV0dHkgZ29vZCBjaGFuY2UgdGhhdCBhIG51bWJlciBvZiBmZWF0dXJlcyBhcmUKLWJyb2tlbiBvciB1bmRlciByZXBhaXIuICBDdXJyZW50bHksIFNXSUcgaXMgdW5kZXJnb2luZyBhIGxhcmdlCi1yZWRldmVsb3BtZW50IGVmZm9ydCBpbiB3aGljaCBpdCBpcyBiZWluZyBjb252ZXJ0ZWQgZnJvbSBDKysgdG8gQU5TSSBDCi1hbmQgcmVzdHJ1Y3R1cmVkIHRvIGJlIG1vcmUgZXh0ZW5zaWJsZS4gIEFzIGEgcmVzdWx0LCB0aGUgc291cmNlIGNvZGUKLWlzIHZlcnkgZGlzb3JnYW5pemVkIGF0IHRoZSBtb21lbnQuIFRoZSBTV0lHMS4zIHNlcmllcyBvZiByZWxlYXNlcwotc2hvdWxkIGJlIHZpZXdlZCBhcyB0cmFuc2l0aW9uYWwgcmVsZWFzZXMgbGVhZGluZyB0byB0aGUgZXZlbnR1YWwKLXJlbGVhc2Ugb2YgU1dJRzIuMC4gRmlyc3QtdGltZSB1c2VycyBzaG91bGQgcHJvYmFibHkgc3RhcnQgd2l0aAotU1dJRzEuMXA1IHdoaWNoIGlzIHNpZ25pZmljYW50bHkgbW9yZSBzdGFibGUgKGFuZCBpbmNsdWRlcyBhIHdpZGVyCi1yYW5nZSBvZiBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcykuCisgICAgICAgIGh0dHA6Ly93d3cuc3dpZy5vcmcKIAotKioqIFdFIE5FRUQgWU9VUiBIRUxQISAqKioKK1doYXQncyBOZXc/Cis9PT09PT09PT09PQorSGVyZSBhcmUgdGhlIG1vc3Qgbm90YWJsZSBjaGFuZ2VzIChzbyBmYXIpOgogCi1QbGVhc2UgcmVwb3J0IGFueSBlcnJvcnMgYW5kIHN1Ym1pdCBwYXRjaGVzIChpZiBwb3NzaWJsZSkhICBOb3Qgb25seQotYXJlIHdlIG1ha2luZyByYWRpY2FsIGNoYW5nZXMgdG8gdGhlIHN5c3RlbSwgd2Ugb25seSBoYXZlIGFjY2VzcyB0byBhCi1saW1pdGVkIHZhcmlldHkgb2YgaGFyZHdhcmUgKExpbnV4LCBTb2xhcmlzLCBhbmQgV2luZG93cykuIEFsbAotY29udHJpYnV0aW9ucyBoZWxwLgorICAgLSBTV0lHIG5vdyBoYXMgYSBmdWxsIEMgcHJlcHJvY2Vzc29yLgogCi0qKiogQmFja3dhcmRzIENvbXBhdGliaWxpdHkgKioqCisgICAtIENvZGUgZ2VuZXJhdGlvbiBmb3IgdGhlIFRjbCBhbmQgUHl0aG9uIG1vZHVsZXMgaGFzIGJlZW4KKyAgICAgc3Vic3RhbnRpYWxseSBpbXByb3ZlZCBib3RoIGluIHRlcm1zIG9mIHNpemUgYW5kIHJ1bnRpbWUKKyAgICAgZWZmaWNpZW5jeSAoUGVybDUgaXMgY29taW5nIGFsb25nIHRvbykuCisKKyAgIC0gVGhlIEd1aWxlIG1vZHVsZSBpcyBzdGFibGUuIEl0IHJlcHJlc2VudHMgQyBwb2ludGVycyBhcyBzbW9icyBhbmQKKyAgICAgc3VwcG9ydHMgdGhlIEd1aWxlIG1vZHVsZSBzeXN0ZW0gYW5kIGV4Y2VwdGlvbnMuCisKKyAgIC0gSmF2YSwgUnVieSwgYW5kIE16U2NoZW1lIG1vZHVsZXMgYWRkZWQuCisKKyAgIC0gVGVzdGluZyBmcmFtZXdvcmsgcGFydCBvZiB0aGUgZGlzdHJpYnV0aW9uICgibWFrZSBjaGVjayIgc3VwcG9ydCkuCisKKyAgIC0gQSBsb3Qgb2YgbWlub3IgYnVnIGZpeGVzIGFuZCBjbGVhbnVwLgorCisgICAtIFNXSUcgcmVxdWlyZXMgYW4gQU5TSSBDIGNvbXBpbGVyLgorCitIZXJlIGFyZSBhIGZldyBtaXNzaW5nIGZlYXR1cmVzOgorCisgICAtIFRoZSBTV0lHMS4xIGRvY3VtZW50YXRpb24gc3lzdGVtIGlzIGdvbmUgYW5kIGhhc24ndCBiZWVuCisgICAgIHJlcGxhY2VkIHlldC4gIFRoaXMgaXMgb24gdGhlIGxvbmctdGVybSB0by1kbyBsaXN0LgorCisgICAtIFRoZSBUY2w3LnggYW5kIFBlcmw0IG1vZHVsZXMgYXJlIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlcgorICAgICBpbmNsdWRlZC4KKworICAgLSBBIHdpZGUgdmFyaWV0eSBvZiBvbGQgU1dJRyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhbmQKKyAgICAgb2JzY3VyZSBmZWF0dXJlcyBhcmUgZ29uZS4KKworICAgLSBPYmplY3RpdmUgQyBzdXBwb3J0IGRvZXNuJ3Qgd29yayByaWdodCBub3cuICBObyBFVEEgYXMgdG8KKyAgICAgd2hlbiBpdCB3aWxsIHJldHVybi4KIAogQWx0aG91Z2ggd2UgYXJlIG1ha2luZyBldmVyeSBhdHRlbXB0IHByZXNlcnZlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiB3aXRoIGludGVyZmFjZXMgd3JpdHRlbiBmb3IgU1dJRzEuMSwgU1dJRzEuMyBpbmNvcnBvcmF0ZXMgYSBudW1iZXIgb2YKQEAgLTYzLDU2ICs4MSw5IEBACiB0aGUgQysrIEFQSSBsZXZlbCBzbyBsYW5ndWFnZSBtb2R1bGVzIHdyaXR0ZW4gZm9yIFNXSUcxLjEgd2lsbCBtb3N0CiBkZWZpbml0ZWx5IG5vdCB3b3JrIHdpdGggdGhpcyByZWxlYXNlLgogCi1XaGF0J3MgTmV3PwotPT09PT09PT09PT0KLUhlcmUgYXJlIHRoZSBtb3N0IG5vdGFibGUgY2hhbmdlcyAoc28gZmFyKToKLQotICAgLSBTV0lHIG5vdyBoYXMgYSBmdWxsIEMgcHJlcHJvY2Vzc29yLgotCi0gICAtIENvZGUgZ2VuZXJhdGlvbiBmb3IgdGhlIFRjbCBhbmQgUHl0aG9uIG1vZHVsZXMgaGFzIGJlZW4KLSAgICAgc3Vic3RhbnRpYWxseSBpbXByb3ZlZCBib3RoIGluIHRlcm1zIG9mIHNpemUgYW5kIHJ1bnRpbWUKLSAgICAgZWZmaWNpZW5jeSAoUGVybDUgaXMgY29taW5nIGFsb25nIHRvbykuCi0KLSAgIC0gSmF2YSBtb2R1bGUgaXMgbm93IGluY2x1ZGVkLgotCi0gICAtIFRoZSBHdWlsZSBtb2R1bGUgaXMgc3RhYmxlLiBJdCByZXByZXNlbnRzIEMgcG9pbnRlcnMgYXMgc21vYnMgYW5kCi0gICAgIHN1cHBvcnRzIHRoZSBHdWlsZSBtb2R1bGUgc3lzdGVtIGFuZCBleGNlcHRpb25zLgotCi0gICAtIFJ1YnkgYW5kIG16c2NoZW1lIG1vZHVsZXMgYWRkZWQuCi0KLSAgIC0gVGVzdGluZyBmcmFtZXdvcmsgcGFydCBvZiB0aGUgZGlzdHJpYnV0aW9uICgibWFrZSBjaGVjayIgc3VwcG9ydCkuCi0KLSAgIC0gQSBsb3Qgb2YgbWlub3IgYnVnIGZpeGVzIGFuZCBjbGVhbnVwLgotCi1IZXJlIGFyZSBhIGZldyBtaXNzaW5nIGZlYXR1cmVzCi0KLSAgIC0gVGhlIFNXSUcxLjEgZG9jdW1lbnRhdGlvbiBzeXN0ZW0gaXMgZ29uZSBhbmQgaGFzbid0IGJlZW4KLSAgICAgcmVwbGFjZWQgeWV0LiAgVGhpcyBpcyBvbiB0aGUgbG9uZy10ZXJtIHRvLWRvIGxpc3QuCi0KLSAgIC0gVGhlIFRjbDcueCBhbmQgUGVybDQgbW9kdWxlcyBhcmUgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyCi0gICAgIGluY2x1ZGVkLgotCi0gICAtIEEgd2lkZSB2YXJpZXR5IG9mIG9sZCBTV0lHIGNvbW1hbmQtbGluZSBvcHRpb25zIGFuZAotICAgICBvYnNjdXJlIGZlYXR1cmVzIGFyZSBnb25lLgotCi1XaGF0J3MgQnJva2VuPwotPT09PT09PT09PT09PT0KLQotICAgLSBUaGUgSmF2YSBtb2R1bGUgaXMgYnJva2VuIGFuZCB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZSAoU1dJRzEuM2E0KS4KLQotICAgLSBPYmplY3RpdmUgQyBzdXBwb3J0IGRvZXNuJ3Qgd29yayByaWdodCBub3cuICBObyBFVEEgYXMgdG8KLSAgICAgd2hlbiBpdCB3aWxsIHJldHVybi4KLQotICAgLSBTV0lHIHJlcXVpcmVzIGFuIEFOU0kgQyBjb21waWxlci4KLQotICAgLSBBIG51bWJlciBvZiBsb3ctbGV2ZWwgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgYmVlbiBjb252ZXJ0ZWQKLSAgICAgdG8gQy4gIFNpbmNlIHRoaW5ncyBoYXZlbid0IHlldCBiZWVuIGZ1bGx5IHRlc3RlZCwgdGhlcmUncwotICAgICBhIGNoYW5jZSB0aGF0IHVudXN1YWwgY29ybmVyIGNhc2VzIG1pZ2h0IGNhdXNlIFNXSUcgdG8gY3Jhc2guCi0gICAgIElmIHNvLCBwbGVhc2Ugc2VuZCB1cyBhIGRlYnVnZ2VyIHRyYWNlYmFjayBpZiBwb3NzaWJsZS4KLQotICAgLSBUaGUgQ0hBTkdFUyBmaWxlIGRlc2NyaWJlcyBpbiBzb21lIGRldGFpbCBhbGwgb2YgdGhlIGltcG9ydGFudAotICAgICBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG1hZGUgdG8gdGhlIHN5c3RlbS4gIEV4cGVyaWVuY2VkCi0gICAgIHVzZXJzIHdvdWxkIGJlIGFkdmlzZWQgdG8gcmVhZCB0aGlzLgorVGhlIGZpbGVzIE5FVyBhbmQgQ0hBTkdFUyBkZXNjcmliZSBpbiBzb21lIGRldGFpbCBhbGwgb2YgdGhlIGltcG9ydGFudAorY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBzeXN0ZW0uICBFeHBlcmllbmNlZCB1c2VycyB3b3VsZCBiZQorYWR2aXNlZCB0byByZWFkIHRoaXMuCiAKIEluc3RhbGxhdGlvbgogPT09PT09PT09PT09CkBAIC0xMzEsMTIgKzEwMiwyMSBAQAogSWYgeW91IGRvbid0IGtub3cgd2hhdCB0aGUgcnVudGltZSBsaWJyYXJpZXMgYXJlLCBkb24ndCB3b3JyeQogYWJvdXQgdGhpcyBzdGVwLgogCi1UaGUgRXhhbXBsZXMgZGlyZWN0b3J5IGNvbnRhaW5zIGEgZmV3IGV4YW1wbGVzIG9mIHVzaW5nIFNXSUcuCitUaGUgZmlsZSBJTlNUQUxMIGRldGFpbHMgbW9yZSBhYm91dCB1c2luZyBjb25maWd1cmUuIEFsc28gdHJ5CisKKyAgICAgJSAuL2NvbmZpZ3VyZSAtLWhlbHAuIAorCitUaGUgY29uZmlndXJlIHNjcmlwdCB3aWxsIGF0dGVtcHQgdG8gbG9jYXRlIHZhcmlvdXMgcGFja2FnZXMgb24geW91ciAKK21hY2hpbmUsIGluY2x1ZGluZyBUY2wsIFBlcmw1LCBQeXRob24gYW5kIG90aGVyIHRhcmdldCBsYW5ndWFnZXMgdGhhdCBTV0lHIAordXNlcy4gIERvbid0IHBhbmljIGlmIHlvdSBnZXQgJ25vdCBmb3VuZCcgbWVzc2FnZXMtLVNXSUcgZG9lcyBub3QgbmVlZCB0aGVzZSAKK3BhY2thZ2VzIHRvIGNvbXBpbGUgb3IgcnVuLiAgIFRoZSBjb25maWd1cmUgc2NyaXB0IGlzIGFjdHVhbGx5IGxvb2tpbmcgZm9yIAordGhlc2UgcGFja2FnZXMgc28gdGhhdCB5b3UgY2FuIHRyeSBvdXQgdGhlIFNXSUcgZXhhbXBsZXMgY29udGFpbmVkCitpbiB0aGUgJ0V4YW1wbGVzJyBkaXJlY3Rvcnkgd2l0aG91dCBoYXZpbmcgdG8gaGFjayBNYWtlZmlsZXMuCiAKIE5vdGVzOgogCi0oMSkgSWYgeW91IGNoZWNrZWQgdGhlIGNvZGUgb3V0IHZpYSBDVlMsIHlvdSB3aWxsIGhhdmUgdG8gcnVuIGF1dG9jb25mCi0gICAgYmVmb3JlIHR5cGluZyAnY29uZmlndXJlLicgIEluIGFkZGl0aW9uLCBhIGZ1bGwgYnVpbGQgb2YgU1dJRyByZXF1aXJlcworKDEpIElmIHlvdSBjaGVja2VkIHRoZSBjb2RlIG91dCB2aWEgQ1ZTLCB5b3Ugd2lsbCBoYXZlIHRvIHJ1biAuL2F1dG9nZW4uc2gKKyAgICBiZWZvcmUgdHlwaW5nICdjb25maWd1cmUnLiAgICBJbiBhZGRpdGlvbiwgYSBmdWxsIGJ1aWxkIG9mIFNXSUcgcmVxdWlyZXMKICAgICB0aGUgdXNlIG9mIGJpc29uLgogCiAoMikgSWYgeW91IGFyZSB1c2luZyBXaW5kb3dzLCB0aGUgZWFzaWVzdCB3YXkgdG8gaW5zdGFsbCBhbmQgYnVpbGQKQEAgLTE0NiwzOCArMTI2LDM2IEBACiAgICAgVGhlIFNXSUcxLjFwNSBkaXN0cmlidXRpb24gYWxzbyBjb250YWlucyBhIG51bWJlciBvZiBleGFtcGxlcyBjb25maWd1cmVkCiAgICAgdG8gd29yayB3aXRoIFZpc3VhbCBDKysgKG1vc3Qgb2Ygd2hpY2ggc2hvdWxkIGFsc28gd29yayB3aXRoIFNXSUcxLjMpLgogCi0oMykgJ21ha2UgY2hlY2snIGlzIGEgbmV3IGZlYXR1cmUgdGhhdCByZXF1aXJlcyBhbGwgb2YgdGhlIHRhcmdldCBsYW5ndWFnZXMKLSAgICAgdG8gYmUgaW5zdGFsbGVkIGFuZCB3aGljaCBwZXJmb3JtcyBjb21waWxlL2xpbmsgbGV2ZWwgdGVzdGluZwotICAgICBvZiB0aGUgZXhhbXBsZXMuICBJZiBpdCBmYWlscywgaXQgbWF5IG1lYW4gdGhhdCB5b3UgaGF2ZSBhbiB1bmluc3RhbGxlZAotICAgICBsYW5ndWFnZSBtb2R1bGUgb3IgdGhhdCB0aGUgZmlsZSAnRXhhbXBsZXMvTWFrZWZpbGUnIGhhcyBiZWVuCi0gICAgIGluY29ycmVjdGx5IGNvbmZpZ3VyZWQuICBJdCBtYXkgYWxzbyBmYWlsIGR1ZSB0byBjb21waWxlciBpc3N1ZXMgCi0gICAgIHN1Y2ggYXMgYnJva2VuIEMrKyBjb21waWxlci4gIEV2ZW4gaWYgJ21ha2UgY2hlY2snIGZhaWxzLCB0aGVyZSBpcyBhIAotICAgICBwcmV0dHkgZ29vZCBjaGFuY2UgU1dJRyBzdGlsbCB3b3JrcyBjb3JyZWN0bHktLS15b3Ugd2lsbCBqdXN0IGhhdmUKLSAgICAgdG8gbWVzcyBhcm91bmQgd2l0aCBvbmUgb2YgdGhlIGV4YW1wbGVzIGFuZCBzb21lIG1ha2VmaWxlcyBmaXJzdC4KKygzKSAnbWFrZSBjaGVjaycgaXMgYSBuZXcgZmVhdHVyZSB0aGF0IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvZiB0aGUgdGFyZ2V0CisgICAgbGFuZ3VhZ2VzIHRvIGJlIGluc3RhbGxlZCBhbmQgd2hpY2ggcGVyZm9ybXMgY29tcGlsZS9saW5rIGxldmVsIHRlc3RpbmcKKyAgICBvZiB0aGUgZXhhbXBsZXMuICBJZiBpdCBmYWlscywgaXQgbWF5IG1lYW4gdGhhdCB5b3UgaGF2ZSBhbiB1bmluc3RhbGxlZAorICAgIGxhbmd1YWdlIG1vZHVsZSBvciB0aGF0IHRoZSBmaWxlICdFeGFtcGxlcy9NYWtlZmlsZScgaGFzIGJlZW4KKyAgICBpbmNvcnJlY3RseSBjb25maWd1cmVkLiAgSXQgbWF5IGFsc28gZmFpbCBkdWUgdG8gY29tcGlsZXIgaXNzdWVzIAorICAgIHN1Y2ggYXMgYnJva2VuIEMrKyBjb21waWxlci4gIEV2ZW4gaWYgJ21ha2UgY2hlY2snIGZhaWxzLCB0aGVyZSBpcyBhIAorICAgIHByZXR0eSBnb29kIGNoYW5jZSBTV0lHIHN0aWxsIHdvcmtzIGNvcnJlY3RseS0tLXlvdSB3aWxsIGp1c3QgaGF2ZQorICAgIHRvIG1lc3MgYXJvdW5kIHdpdGggb25lIG9mIHRoZSBleGFtcGxlcyBhbmQgc29tZSBtYWtlZmlsZXMgZmlyc3QuCiAKIEV4YW1wbGVzCiA9PT09PT09PQotVGhlIEV4YW1wbGVzIGRpcmVjdG9yeSBjb250YWlucyBhIHZhcmlldHkgb2YgbmV3IGV4YW1wbGVzIGFuZCBpdCBoYXMgc29tZQotYnJvd3NhYmxlIGRvY3VtZW50YXRpb24uICBTaW1wbHkgcG9pbnQgeW91ciBicm93c2VyIHRvIHRoZSBmaWxlCi0iRXhhbXBsZS9pbmRleC5odG1sIi4KK1RoZSBFeGFtcGxlcyBkaXJlY3RvcnkgY29udGFpbnMgYSB2YXJpZXR5IG9mIGV4YW1wbGVzIG9mIHVzaW5nIFNXSUcKK2FuZCBpdCBoYXMgc29tZSBicm93c2FibGUgZG9jdW1lbnRhdGlvbi4gIFNpbXBseSBwb2ludCB5b3VyIGJyb3dzZXIgdG8KK3RoZSBmaWxlICJFeGFtcGxlL2luZGV4Lmh0bWwiLgogCiBEb2N1bWVudGF0aW9uCiA9PT09PT09PT09PT09Ci1ObyBkb2N1bWVudGF0aW9uIGlzIGN1cnJlbnRseSBpbmNsdWRlZCBpbiB0aGlzIHJlbGVhc2UuICBIb3dldmVyLCBtb3N0Ci1vZiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgU1dJRzEuMSBzdGlsbCBhcHBsaWVzLiAgVGhpcyBjYW4gYmUgb2J0YWluZWQKLW9uIGh0dHA6Ly93d3cuc3dpZy5vcmcuCitObyB1c2VyIGRvY3VtZW50YXRpb24gaXMgY3VycmVudGx5IGluY2x1ZGVkIGluIHRoaXMgcmVsZWFzZS4gIEhvd2V2ZXIsCittb3N0IG9mIHRoZSBkb2N1bWVudGF0aW9uIGZvciBTV0lHMS4xIHN0aWxsIGFwcGxpZXMuICBUaGlzIGNhbiBiZQorb2J0YWluZWQgb24gaHR0cDovL3d3dy5zd2lnLm9yZy4KKworVGhlcmUgaXMgc29tZSB0ZWNobmljYWwgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgaW4gdGhlIERvYyBzdWJkaXJlY3RvcnkuCiAKIFBhcnRpY2lwYXRlIQogPT09PT09PT09PT09Ci1XZSBhcmUgbG9va2luZyBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGpvaW4gdGhlIGVmZm9ydCBvZiBnZXR0aW5nIHRoaXMKLW5leHQgcmVsZWFzZSBvZmYgdGhlIGdyb3VuZC4gIFBsZWFzZSBzZW5kIG1lIGVtYWlsIGZvciBkZXRhaWxzLgogCi0tLSBEYXZlIChiZWF6bGV5QGNzLnVjaGljYWdvLmVkdSkKK1BsZWFzZSByZXBvcnQgYW55IGVycm9ycyBhbmQgc3VibWl0IHBhdGNoZXMgKGlmIHBvc3NpYmxlKSEgIFdlIG9ubHkKK2hhdmUgYWNjZXNzIHRvIGEgbGltaXRlZCB2YXJpZXR5IG9mIGhhcmR3YXJlIChMaW51eCwgU29sYXJpcywgYW5kCitXaW5kb3dzKS4gQWxsIGNvbnRyaWJ1dGlvbnMgaGVscC4KIAorQ29udHJpYnV0aW9ucyBvZiBuZXcgbGFuZ3VhZ2UgbW9kdWxlcyB3aWxsIGFsc28gYmUgYWNjZXB0ZWQuCiAKLURldmVsb3BlciBJbmZvcm1hdGlvbgotPT09PT09PT09PT09PT09PT09PT09Ci1UaGUgcHJpbWFyeSBnb2FsIG9mIGZ1dHVyZSBkZXZlbG9wbWVudCBpcyB0byBtYWtlIFNXSUcgbW9yZSBtb2R1bGFyLAotZXh0ZW5zaWJsZSwgYW5kIGVhc2llciB0byBtYWludGFpbi4gIFRvIHRoaXMgZW5kLCB0aGUgc291cmNlIGNvZGUgaGFzCi1iZWVuIGNvbnNvbGlkYXRlZCBhbmQgcmVvcmdhbml6ZWQgd2l0aCB0aGUgU291cmNlIGRpcmVjdG9yeS4gIEZvciBtb3JlCi1pbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSBEb2MvaW50ZXJuYWxzLmh0bWwuCisgLS0gVGhlIFNXSUcgTWFpbnRhaW5lcnMKZGlmZiAtLWdpdCBhL1NXSUcvUnVudGltZS8uY3ZzaWdub3JlIGIvU1dJRy9SdW50aW1lLy5jdnNpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2RhNGU3OAotLS0gL2Rldi9udWxsCisrKyBiL1NXSUcvUnVudGltZS8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsNyBAQAorLmxpYnMKK01ha2VmaWxlCitsaWIqLmMKK2xpYioubG8KK2xpYioubGEKK3N3aWd0Y2w4LmMKK3N3aWd0Y2w4LmxvCmRpZmYgLS1naXQgYS9TV0lHL1J1bnRpbWUvTWFrZWZpbGUuaW4gYi9TV0lHL1J1bnRpbWUvTWFrZWZpbGUuaW4KaW5kZXggNmI2MDMxYy4uNmY5Y2VmMyAxMDA2NDQKLS0tIGEvU1dJRy9SdW50aW1lL01ha2VmaWxlLmluCisrKyBiL1NXSUcvUnVudGltZS9NYWtlZmlsZS5pbgpAQCAtMTMsMTkgKzEzLDI2IEBACiBDQyAgICAgICAgICA9IEBDQ0AKIExJQlRPT0wgICAgID0gLi4vVG9vbHMvbGlidG9vbAogU1dJR0xJQiAgICAgPSAuLi9MaWIKLUxJQlMgICAgICAgID0gbGlic3dpZ3BsLmxhIGxpYnN3aWdweS5sYSBsaWJzd2lndGNsOC5sYSBsaWJzd2lncmIubGEKK1JFTEVBU0VTVUZGSVggPSBAcmVsZWFzZV9zdWZmaXhACitMSUJTICAgICAgICA9IGxpYnN3aWdwbCQoUkVMRUFTRVNVRkZJWCkubGEgbGlic3dpZ3B5JChSRUxFQVNFU1VGRklYKS5sYSBcCisJICAgICAgbGlic3dpZ3RjbDgkKFJFTEVBU0VTVUZGSVgpLmxhIGxpYnN3aWdyYiQoUkVMRUFTRVNVRkZJWCkubGEgXAorCSAgICAgIGxpYnN3aWdndWlsZSQoUkVMRUFTRVNVRkZJWCkubGEKIExJQl9ESVIgICAgID0gJChleGVjX3ByZWZpeCkvbGliCiAKIGFsbDoKLQlAc2ggJChzcmNkaXIpL21ha2Uuc2gKLQorCS0kKE1BS0UpIHBlcmw1CisJLSQoTUFLRSkgcHl0aG9uCisJLSQoTUFLRSkgdGNsCisJLSQoTUFLRSkgcnVieQorCS0kKE1BS0UpIGd1aWxlCiAKIGluc3RhbGw6CiAJQGVjaG8gIkluc3RhbGxpbmcgcnVudGltZSBsaWJyYXJpZXMiCiAJQGZvciBpIGluICQoTElCUyk7IFwKIAlkbyBcCiAJaWYgWyAtZiAkJGkgXTsgdGhlbiBcCi0JICAgJChMSUJUT09MKSBpbnN0YWxsIC1jICQkaSAkKExJQl9ESVIpLyQkaTsgXAorCSAgIGVjaG8gJChMSUJUT09MKSBpbnN0YWxsIC1jICQkaSAkKERFU1RESVIpJChMSUJfRElSKS8kJGk7IFwKKwkgICAkKExJQlRPT0wpIGluc3RhbGwgLWMgJCRpICQoREVTVERJUikkKExJQl9ESVIpLyQkaTsgXAogICAgICAgICBmaTsgXAogCWRvbmU7CiAKQEAgLTQyLDE0ICs0OSwxNCBAQAogVENMX1JVTlRJTUUgPSAkKFNXSUdMSUIpL3RjbC9zd2lndGNsOC5zd2cKICMgVGNsIDgueAogCi10Y2w6IGxpYnN3aWd0Y2w4LmxhCit0Y2w6IGxpYnN3aWd0Y2w4JChSRUxFQVNFU1VGRklYKS5sYQogCi1saWJzd2lndGNsOC5sYToKK2xpYnN3aWd0Y2w4JChSRUxFQVNFU1VGRklYKS5sYToKIAlybSAtZiBzd2lndGNsOC5jCiAJY2F0ICQoc3JjZGlyKS8kKFNXSUdfVFlQRUNIRUNLKSAkKHNyY2RpcikvJChUQ0xfUlVOVElNRSkgPj4gc3dpZ3RjbDguYwogIwktY3AgJChzcmNkaXIpLyQoVENMX1JVTlRJTUUpIHN3aWd0Y2w4LmMKIAkkKExJQlRPT0wpICQoQ0MpIC1jICQoVENMX0lOQ0xVREUpIC1EU1dJR19HTE9CQUwgc3dpZ3RjbDguYwotCSQoTElCVE9PTCkgJChDQykgLW8gbGlic3dpZ3RjbDgubGEgc3dpZ3RjbDgubG8gLXJwYXRoICQoTElCX0RJUikgLWF2b2lkLXZlcnNpb24KKwkkKExJQlRPT0wpICQoQ0MpIC1vIGxpYnN3aWd0Y2w4JChSRUxFQVNFU1VGRklYKS5sYSBzd2lndGNsOC5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbiAKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFB5dGhvbiBydW4tdGltZSBsaWJyYXJ5CkBAIC02MCwxNCArNjcsMTQgQEAKIAogIyBQeXRob24gc2hhcmVkCiAKLXB5dGhvbjogbGlic3dpZ3B5LmxhCitweXRob246IGxpYnN3aWdweSQoUkVMRUFTRVNVRkZJWCkubGEKIAotbGlic3dpZ3B5LmxhOgorbGlic3dpZ3B5JChSRUxFQVNFU1VGRklYKS5sYToKIAlybSAtZiBsaWJweS5jCiAJY2F0ICQoc3JjZGlyKS8kKFNXSUdfVFlQRUNIRUNLKSAkKHNyY2RpcikvJChQWVRIT05fUlVOVElNRSkgPj4gbGlicHkuYwkKICMJLWNwICQoc3JjZGlyKS8kKFBZVEhPTl9SVU5USU1FKSBsaWJweS5jCiAJJChMSUJUT09MKSAkKENDKSAtYyAkKFBZVEhPTl9JTkNMVURFKSAtRFNXSUdfR0xPQkFMIGxpYnB5LmMKLQkkKExJQlRPT0wpICQoQ0MpIC1vIGxpYnN3aWdweS5sYSBsaWJweS5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbgorCSQoTElCVE9PTCkgJChDQykgLW8gbGlic3dpZ3B5JChSRUxFQVNFU1VGRklYKS5sYSBsaWJweS5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbiAKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFBlcmwgcnVuLXRpbWUgbGlicmFyeQpAQCAtNzgsMTQgKzg1LDE0IEBACiAKICMgUGVybCBzaGFyZWQKIAotcGVybDU6IGxpYnN3aWdwbC5sYQorcGVybDU6IGxpYnN3aWdwbCQoUkVMRUFTRVNVRkZJWCkubGEKIAotbGlic3dpZ3BsLmxhOgorbGlic3dpZ3BsJChSRUxFQVNFU1VGRklYKS5sYToKIAlAcm0gLWYgbGlicGVybC5jCiAjCWNhdCAkKHNyY2RpcikvcGVybHJ1bi5oID4+IGxpYnBlcmwuYwogCWNhdCAkKHNyY2RpcikvJChTV0lHX1RZUEVDSEVDSykgJChzcmNkaXIpLyQoUEVSTDVfUlVOVElNRSkgPj4gbGlicGVybC5jCiAJJChMSUJUT09MKSAkKENDKSAtYyAkKFBFUkw1X0lOQ0xVREUpIC1EU1dJR19HTE9CQUwgLURib29sPWNoYXIgLURleHBsaWNpdD0gbGlicGVybC5jCi0JJChMSUJUT09MKSAkKENDKSAtbyBsaWJzd2lncGwubGEgbGlicGVybC5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbgorCSQoTElCVE9PTCkgJChDQykgLW8gbGlic3dpZ3BsJChSRUxFQVNFU1VGRklYKS5sYSBsaWJwZXJsLmxvIC1ycGF0aCAkKExJQl9ESVIpIC1hdm9pZC12ZXJzaW9uIAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUnVieSBydW4tdGltZSBsaWJyYXJ5CkBAIC05NiwxMSArMTAzLDI5IEBACiAKICMgUnVieSBzaGFyZWQKIAotcnVieTogbGlic3dpZ3JiLmxhCitydWJ5OiBsaWJzd2lncmIkKFJFTEVBU0VTVUZGSVgpLmxhCiAKLWxpYnN3aWdyYi5sYToKK2xpYnN3aWdyYiQoUkVMRUFTRVNVRkZJWCkubGE6CiAJcm0gLWYgbGlicmIuYwogIwljcCAkKHNyY2RpcikvJChSVUJZX1JVTlRJTUUpIGxpYnJiLmMKIAljYXQgJChzcmNkaXIpLyQoU1dJR19UWVBFQ0hFQ0spICQoc3JjZGlyKS8kKFJVQllfUlVOVElNRSkgJChTV0lHTElCKS9ydWJ5L3J1YnlkZWYuc3dnID4+IGxpYnJiLmMKIAkkKExJQlRPT0wpICQoQ0MpIC1jICQoUlVCWV9JTkNMVURFKSAtRFNXSUdfR0xPQkFMIGxpYnJiLmMKLQkkKExJQlRPT0wpICQoQ0MpIC1vIGxpYnN3aWdyYi5sYSBsaWJyYi5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbgorCSQoTElCVE9PTCkgJChDQykgLW8gbGlic3dpZ3JiJChSRUxFQVNFU1VGRklYKS5sYSBsaWJyYi5sbyAtcnBhdGggJChMSUJfRElSKSAtYXZvaWQtdmVyc2lvbiAKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEd1aWxlIHJ1bi10aW1lIGxpYnJhcnkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitHVUlMRV9JTkNMVURFID0gQEdVSUxFSU5DTFVERUAKK0dVSUxFX1JVTlRJTUUgPSAkKFNXSUdMSUIpL2d1aWxlL2d1aWxlZGVjLnN3ZyAkKFNXSUdMSUIpL2d1aWxlL2d1aWxlLnN3ZworCisjIEd1aWxlIHNoYXJlZAorCitndWlsZTogbGlic3dpZ2d1aWxlJChSRUxFQVNFU1VGRklYKS5sYQorCitsaWJzd2lnZ3VpbGUkKFJFTEVBU0VTVUZGSVgpLmxhOgorCXJtIC1mIGxpYmd1aWxlLmMKKwljYXQgJChzcmNkaXIpLyQoR1VJTEVfUlVOVElNRSkgPj4gbGliZ3VpbGUuYworCSQoTElCVE9PTCkgJChDQykgLWMgJChHVUlMRV9JTkNMVURFKSAtRFNXSUdfR0xPQkFMIGxpYmd1aWxlLmMKKwkkKExJQlRPT0wpICQoQ0MpIC1vIGxpYnN3aWdndWlsZSQoUkVMRUFTRVNVRkZJWCkubGEgbGliZ3VpbGUubG8gLXJwYXRoICQoTElCX0RJUikgLWF2b2lkLXZlcnNpb24gCisKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL0RPSC9Eb2gvTWFrZWZpbGUgYi9TV0lHL1NvdXJjZS9ET0gvRG9oL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOTA4OTQ2Li4wMDAwMDAwCi0tLSBhL1NXSUcvU291cmNlL0RPSC9Eb2gvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0jIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gTWFrZWZpbGUuaW4gYnkgY29uZmlndXJlLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgJEhlYWRlciQKLSMgRE9IIAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIy5LRUVQX1NUQVRFOgotCi0jIFNldCB5b3VyIEMrKyBjb21waWxlciBoZXJlLiAgIGcrKyB3b3JrcyBvbiBtb3N0IG1hY2hpbmVzLAotIyBidXQgeW91IG1pZ2h0IGhhdmUgdG8gY2hhbmdlIGl0IGRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbi4KLSMKLUNDICAgICAgPSBjYwotcHJlZml4ICAgICA9IC9yMC9iZWF6bGV5L1Byb2plY3RzCi0KLSMgQ29tbWVudCBvdXQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIHlvdSdyZSBvbiBhbiBTR0kgb3IgZG9uJ3QgaGF2ZSByYW5saWIhCi1SQU5MSUIgID0gcmFubGliCi1BUiAgICAgID0gYXIKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE5vcm1hbGx5LCB5b3Ugc2hvdWxkbid0IGhhdmUgdG8gY2hhbmdlIGFueXRoaW5nIGJlbG93IHRoaXMgcG9pbnQgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1MSUJPQkpTID0gY2FsbGFibGUubyB2b2lkLm8gZmlvLm8gbWVtb3J5Lm8gYmFzZS5vIGZpbGUubyBsaXN0Lm8gaGFzaC5vIHN0cmluZy5vIAotCi1MSUJTUkNTID0gY2FsbGFibGUuYyB2b2lkLmMgZmlvLmMgbWVtb3J5LmMgYmFzZS5jIGZpbGUuYyBsaXN0LmMgaGFzaC5jIHN0cmluZy5jCi0KLUxJQkhFQURFUlMgPSAuLi9JbmNsdWRlL2RvaC5oCi1MSUIgICAgICA9IC4uL2xpYmRvaC5hCi1JTkNMVURFICA9IC1JLi4vSW5jbHVkZQotQ0ZMQUdTICAgPSAtRERPSF9TVFJJTkdfVVBEQVRFX0xJTkVTCi1TSEVMTCAgPSAvYmluL3NoCi0KLSMKLSMgUnVsZXMgZm9yIGNyZWF0aW9uIG9mIGEgLm8gZmlsZSBmcm9tIC5jeHgKLS5TVUZGSVhFUzogLmMKLS5jLm86IAotCSQoQ0MpICQoSU5DTFVERSkgJChDRkxBR1MpIC1jIC1vICQqLm8gJDwKLQotYWxsOiAkKExJQikKLQotJChMSUIpOiAkKExJQk9CSlMpIAotCUBlY2hvICJCdWlsZGluZyBsaWJyYXJ5IgotCSQoQVIpIGNyICQoTElCKSAkKExJQk9CSlMpCi0JJChSQU5MSUIpICQoTElCKQotCi1jbGVhbjo6Ci0Jcm0gLWYgKi5vIC4uL2xpYmRvaC5hCi1udWtlOjoKLQlybSAtZiBNYWtlZmlsZSAqfiAjKiBjb3JlIGEub3V0Ci0KZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL0RPSC9jb25maWd1cmUuaW4gYi9TV0lHL1NvdXJjZS9ET0gvY29uZmlndXJlLmluCmluZGV4IDBjMTE0OTAuLjZmZDJlNDYgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL0RPSC9jb25maWd1cmUuaW4KKysrIGIvU1dJRy9Tb3VyY2UvRE9IL2NvbmZpZ3VyZS5pbgpAQCAtNDEsNCArNDEsNCBAQAogQUNfSEVBREVSX1NUREMKIGRubCBDaGVja3MgZm9yIGxpYnJhcnkgZnVuY3Rpb25zLgogCi1BQ19PVVRQVVQoTWFrZWZpbGUgRG9oL01ha2VmaWxlIFRlc3QvTWFrZWZpbGUpCitBQ19PVVRQVVQoTWFrZWZpbGUgRG9oL01ha2VmaWxlKQpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvSW5jbHVkZS8uY3ZzaWdub3JlIGIvU1dJRy9Tb3VyY2UvSW5jbHVkZS8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NTEyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL1NvdXJjZS9JbmNsdWRlLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorc3dpZ2NvbmZpZy5oCmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9JbmNsdWRlL3N3aWdjb25maWcuaC5pbiBiL1NXSUcvU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oLmluCmluZGV4IDdhMDJkMjcuLjZjNjcyYjUgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oLmluCisrKyBiL1NXSUcvU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oLmluCkBAIC0xLDYgKzEsMTggQEAKLS8qIFRoaXMgZmlsZSBjb250YWlucyBTV0lHIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhvc2UgbW9kdWxlcworLyogVGhpcyAtKi1jLSotIGZpbGUgY29udGFpbnMgU1dJRyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGRhdGEgZm9yIHRob3NlIG1vZHVsZXMKICAgIHRoYXQgY2FyZSAqLwogCi0jZGVmaW5lIFNXSUdfTElCICAgIkBwcmVmaXhAL2xpYi9zd2lnMS4zIgorLyogRGlyZWN0b3J5IHdoZXJlIHRvIGZpbmQgdGhlIG1hY2hpbmUtaW5kZXBlbmRlbnQgU1dJRyBmaWxlcyAqLworCisjZGVmaW5lIFNXSUdfTElCICAgIkAtc3dpZ19saWItQCIKKworLyogRGVmYXVsdCBsYW5ndWFnZSAqLworCiAjZGVmaW5lIFNXSUdfTEFORyAgVENMOAogCisvKiBWYWx1ZXMgcmV0dXJuZWQgYnkgc3dpZyB3aGVuIGludm9rZWQgd2l0aCB0aGUgLWxkZmxhZ3Mgb3B0aW9uICovCisKKyNkZWZpbmUgU1dJR19QRVJMX1JVTlRJTUUgIi1MQC1leGVjX3ByZWZpeC1AL2xpYiAtbHN3aWdwbEAtcmVsZWFzZV9zdWZmaXgtQCIKKyNkZWZpbmUgU1dJR19QWVRIT05fUlVOVElNRSAiLUxALWV4ZWNfcHJlZml4LUAvbGliIC1sc3dpZ3B5QC1yZWxlYXNlX3N1ZmZpeC1AIgorI2RlZmluZSBTV0lHX1RDTF9SVU5USU1FICItTEAtZXhlY19wcmVmaXgtQC9saWIgLWxzd2lndGNsQC1yZWxlYXNlX3N1ZmZpeC1AIgorI2RlZmluZSBTV0lHX1JVQllfUlVOVElNRSAiLUxALWV4ZWNfcHJlZml4LUAvbGliIC1sc3dpZ3JiQC1yZWxlYXNlX3N1ZmZpeC1AIgorI2RlZmluZSBTV0lHX0dVSUxFX1JVTlRJTUUgIi1MQC1leGVjX3ByZWZpeC1AL2xpYiAtbHN3aWdndWlsZUAtcmVsZWFzZV9zdWZmaXgtQCIKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL0luY2x1ZGUvc3dpZ3Zlci5oIGIvU1dJRy9Tb3VyY2UvSW5jbHVkZS9zd2lndmVyLmgKaW5kZXggOWRhNDM5Yi4uN2JkYjdlNCAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvSW5jbHVkZS9zd2lndmVyLmgKKysrIGIvU1dJRy9Tb3VyY2UvSW5jbHVkZS9zd2lndmVyLmgKQEAgLTIsOSArMiw5IEBACiAvKiBTV0lHIHZlcnNpb24gaW5mb3JtYXRpb24gKi8KIAogI2lmbmRlZiBTV0lHX1ZFUlNJT04KLSNkZWZpbmUgU1dJR19WRVJTSU9OICIxLjN1LTIwMDAwNzEyLTE1MDIiCisjZGVmaW5lIFNXSUdfVkVSU0lPTiAiMS4zdS0yMDAxMDYyOC0xMTAzIgogI2VuZGlmCiAKICNpZm5kZWYgU1dJR19TUElOCi0jZGVmaW5lIFNXSUdfU1BJTiAiKEFscGhhIDMpIgorI2RlZmluZSBTV0lHX1NQSU4gIihBbHBoYSA1KSIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlcy8uY3ZzaWdub3JlIGIvU1dJRy9Tb3VyY2UvTW9kdWxlcy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYzdhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzLy5jdnNpZ25vcmUKQEAgLTAsMCArMSBAQAorTWFrZWZpbGUKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvTWFrZWZpbGUuaW4gYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL01ha2VmaWxlLmluCmluZGV4IGI5ZjY4NmEuLjg4ODU5YTAgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvTWFrZWZpbGUuaW4KKysrIGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9NYWtlZmlsZS5pbgpAQCAtMTMsOCArMTMsOCBAQAogUkFOTElCICAgPSBAUkFOTElCQAogCiBUQVJHRVQgICA9IGxpYm1vZHVsZXMxMS5hCi1PQkpTICAgICA9IHN3aWdtYWluLm8gdGNsOC5vIHB5dGhvbi5vIHBlcmw1Lm8gZ3VpbGUubyBydWJ5Lm8gbXpzY2hlbWUubyAjamF2YS5vCi1TUkNTICAgICA9IHN3aWdtYWluLmN4eCB0Y2w4LmN4eCBweXRob24uY3h4IHBlcmw1LmN4eCBndWlsZS5jeHggcnVieS5jeHggbXpzY2hlbWUuY3h4ICNqYXZhLmN4eAorT0JKUyAgICAgPSBzd2lnbWFpbi5vIHRjbDgubyBweXRob24ubyBwZXJsNS5vIGd1aWxlLm8gcnVieS5vIG16c2NoZW1lLm8gamF2YS5vCitTUkNTICAgICA9IHN3aWdtYWluLmN4eCB0Y2w4LmN4eCBweXRob24uY3h4IHBlcmw1LmN4eCBndWlsZS5jeHggcnVieS5jeHggbXpzY2hlbWUuY3h4IGphdmEuY3h4CiAKIElOQ0xVREUgID0gLUkkKHNyY2RpcikvLi4vSW5jbHVkZQkJXAogCSAgIC1JJChzcmNkaXIpLy4uL1NXSUcxLjEJCVwKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvZ3VpbGUuY3h4IGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ndWlsZS5jeHgKaW5kZXggODM3NjkzMS4uZmE0YjUxMyAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ndWlsZS5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ndWlsZS5jeHgKQEAgLTI1LDIxICsyNSwyOCBAQAogCiAjaW5jbHVkZSAibW9kMTEuaCIKICNpbmNsdWRlICJndWlsZS5oIgorI2luY2x1ZGUgInN3aWdjb25maWcuaCIKIAogc3RhdGljIGNoYXIgKmd1aWxlX3VzYWdlID0gKGNoYXIqKSJcCiBHdWlsZSBPcHRpb25zIChhdmFpbGFibGUgd2l0aCAtZ3VpbGUpXG5cCi0gICAgIC1tb2R1bGUgbmFtZSAgICAtIFNldCBiYXNlIG5hbWUgb2YgbW9kdWxlXG5cCisgICAgIC1sZGZsYWdzICAgICAgICAtIFByaW50IHJ1bnRpbWUgbGlicmFyaWVzIHRvIGxpbmsgd2l0aFxuXAorICAgICAtbW9kdWxlIG5hbWUgICAgLSBTZXQgbmFtZSBvZiBtb2R1bGUgW2RlZmF1bHQgXCJzd2lnXCJdXG5cCiAgICAgIC1wcmVmaXggbmFtZSAgICAtIFVzZSBOQU1FIGFzIHByZWZpeCBbZGVmYXVsdCBcImdzd2lnX1wiXVxuXAogICAgICAtcGFja2FnZSBuYW1lICAgLSBTZXQgdGhlIHBhdGggb2YgdGhlIG1vZHVsZSBbZGVmYXVsdCBOVUxMXVxuXAotICAgICAtTGlua2FnZSBsc3R5bGUgLSBVc2UgbGlua2FnZSBwcm90b2NvbCBMU1RZTEUgW2RlZmF1bHQgYGx0ZGxtb2QnXVxuXAotICAgICAtcHJvY2RvYyBmaWxlICAgLSBPdXRwdXQgcHJvY2VkdXJlIGRvY3VtZW50YXRpb24gdG8gZmlsZVxuXAorICAgICAtbGlua2FnZSBsc3R5bGUgLSBVc2UgbGlua2FnZSBwcm90b2NvbCBMU1RZTEUgW2RlZmF1bHQgYG1vZHVsZSddXG5cCisgICAgIC1wcm9jZG9jIGZpbGUgICAtIE91dHB1dCBwcm9jZWR1cmUgZG9jdW1lbnRhdGlvbiB0byBGSUxFXG5cCiBcblwKKyAgICAgLXByb2Nkb2Nmb3JtYXQgZm9ybWF0IC0gT3V0cHV0IHByb2NlZHVyZSBkb2N1bWVudGF0aW9uIGluIEZPUk1BVDtcblwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lIG9mIGBndWlsZS0xLjQnLCBgcGxhaW4nLCBgdGV4aW5mbydcblwKICAgVGhlIG1vZHVsZSBvcHRpb24gZG9lcyBub3QgY3JlYXRlIGEgZ3VpbGUgbW9kdWxlIHdpdGggYSBzZXBhcmF0ZSBuYW1lXG5cCiAgIHNwYWNlLiAgSXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhbmQgaXNcblwKICAgY2FsbGVkIGEgbW9kdWxlIGhlcmUgc28gdGhhdCBpdCBpcyBjb21wYWRpYmxlIHdpdGggdGhlIHJlc3Qgb2YgU1dJRy5cblwKIFxuXAotICBXaGVuIHVuc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBMU1RZTEUgaXMgYGx0ZGxtb2QnIGZvciBsaWJ0b29sIGx0ZGxcblwKLSAgbW9kdWxlcy4gIE90aGVyIExTVFlMRSB2YWx1ZXMgYXJlOiBgaG9iYml0JyBmb3IgaG9iYml0IG1vZHVsZXMuXG5cCisgIFdoZW4gdW5zcGVjaWZpZWQsIHRoZSBkZWZhdWx0IExTVFlMRSBpcyBgc2ltcGxlJy4gIEZvciBuYXRpdmUgR3VpbGVcblwKKyAgbW9kdWxlIGxpbmtpbmcgKGZvciBHdWlsZSB2ZXJzaW9ucyA+PTEuNS4wKSwgdXNlIGBtb2R1bGUnLiAgT3RoZXJcblwKKyAgTFNUWUxFIHZhbHVlcyBhcmU6IGBwYXNzaXZlJyBmb3IgcGFzc2l2ZSBsaW5raW5nIChubyBtb2R1bGUtaGFuZGxpbmdcblwKKyAgY29kZSksIGBsdGRsbW9kJyBmb3IgR3VpbGUncyBvbGQgZHluYW1pYyBtb2R1bGUgY29udmVudGlvblxuXAorICAodmVyc2lvbnMgPD0gMS40KSwgb3IgYGhvYmJpdCcgZm9yIGhvYmJpdCBtb2R1bGVzLlxuXAogXG4iOwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTU5LDggKzY2LDExIEBACiAgIHBhY2thZ2UgPSBOVUxMOwogICBsaW5rYWdlID0gR1VJTEVfTFNUWUxFX1NJTVBMRTsKICAgcHJvY2RvYyA9IE5VTEw7CisgIGRvY2Zvcm1hdCA9IEdVSUxFXzFfNDsKICAgZW1pdF9zZXR0ZXJzID0gMDsKICAgc3RydWN0X21lbWJlciA9IDA7CisgIGJlZm9yZV9yZXR1cm4gPSBOVUxMOworICBleHBvcnRlZF9zeW1ib2xzID0gTmV3U3RyaW5nKCIiKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTUsMTUgKzEyNSwyNCBAQAogCSAgU3dpZ19hcmdfZXJyb3IoKTsKIAl9CiAgICAgICB9Ci0gICAgICAvKiBCb2d1cyB1cGNhc2UgcmVxdWlyZW1lbnQgZHVlIHRvIHRvcC1sZXZlbCBwYXJzaW5nIG5vdCByZXNwZWN0aW5nCi0gICAgICAgICBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLiAgVG9wLWxldmVsIHNob3VsZCBzdG9wIHdoZW4gaXQgc2VlcyAiLWd1aWxlIgotICAgICAgICAgb3Igb3RoZXIgbGFuZ3VhZ2VzLiAgKi8KLSAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1MaW5rYWdlIikgPT0gMCkgeworICAgICAgZWxzZSBpZiAoc3RyY21wIChhcmd2W2ldLCAiLWxkZmxhZ3MiKSA9PSAwKSB7CisJcHJpbnRmKCIlc1xuIiwgU1dJR19HVUlMRV9SVU5USU1FKTsKKwlTV0lHX2V4aXQgKEVYSVRfU1VDQ0VTUyk7CisgICAgICB9CisgICAgICAvKiBUaGUgdXBjYXNlIHZhcmlhbnQgaXMgYSBoaXN0b3JpYyBhcnRlZmFjdC4gKi8KKyAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1MaW5rYWdlIikgPT0gMAorCSAgICAgICB8fCBzdHJjbXAgKGFyZ3ZbaV0sICItbGlua2FnZSIpID09IDApIHsKICAgICAgICAgaWYgKGFyZ3ZbaSArIDFdKSB7CiAgICAgICAgICAgaWYgKDAgPT0gc3RyY21wIChhcmd2W2kgKyAxXSwgImx0ZGxtb2QiKSkKLSAgICAgICAgICAgIGxpbmthZ2UgPSBHVUlMRV9MU1RZTEVfTFRETE1PRDsKKyAgICAgICAgICAgIGxpbmthZ2UgPSBHVUlMRV9MU1RZTEVfTFRETE1PRF8xXzQ7CiAgICAgICAgICAgZWxzZSBpZiAoMCA9PSBzdHJjbXAgKGFyZ3ZbaSArIDFdLCAiaG9iYml0IikpCiAgICAgICAgICAgICBsaW5rYWdlID0gR1VJTEVfTFNUWUxFX0hPQkJJVDsKKyAJICBlbHNlIGlmICgwID09IHN0cmNtcCAoYXJndltpICsgMV0sICJzaW1wbGUiKSkKKwkgICAgbGlua2FnZSA9IEdVSUxFX0xTVFlMRV9TSU1QTEU7CisgCSAgZWxzZSBpZiAoMCA9PSBzdHJjbXAgKGFyZ3ZbaSArIDFdLCAicGFzc2l2ZSIpKQorCSAgICBsaW5rYWdlID0gR1VJTEVfTFNUWUxFX1BBU1NJVkU7CisJICBlbHNlIGlmICgwID09IHN0cmNtcCAoYXJndltpICsgMV0sICJtb2R1bGUiKSkKKwkgICAgbGlua2FnZSA9IEdVSUxFX0xTVFlMRV9NT0RVTEU7CiAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgU3dpZ19hcmdfZXJyb3IgKCk7CiAgICAgICAgICAgU3dpZ19tYXJrX2FyZyAoaSk7CkBAIC0xNDMsNiArMTYyLDE4IEBACiAJICBTd2lnX2FyZ19lcnJvcigpOwogICAgICAgICB9CiAgICAgICB9CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItcHJvY2RvY2Zvcm1hdCIpID09IDApIHsKKwlpZiAoc3RyY21wKGFyZ3ZbaSsxXSwgImd1aWxlLTEuNCIpID09IDApCisJICBkb2Nmb3JtYXQgPSBHVUlMRV8xXzQ7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaSsxXSwgInBsYWluIikgPT0gMCkKKwkgIGRvY2Zvcm1hdCA9IFBMQUlOOworCWVsc2UgaWYgKHN0cmNtcChhcmd2W2krMV0sICJ0ZXhpbmZvIikgPT0gMCkKKwkgIGRvY2Zvcm1hdCA9IFRFWElORk87CisJZWxzZSBTd2lnX2FyZ19lcnJvcigpOworCVN3aWdfbWFya19hcmcoaSk7CisJU3dpZ19tYXJrX2FyZyhpKzEpOworCWkrKzsKKyAgICAgIH0KICAgICAgIGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1lbWl0LXNldHRlcnMiKSA9PSAwKSB7CiAJZW1pdF9zZXR0ZXJzID0gMTsKIAlTd2lnX21hcmtfYXJnIChpKTsKQEAgLTE3NCw4ICsyMDUsNiBAQAogdm9pZAogR1VJTEU6OnBhcnNlICgpCiB7Ci0gIHByaW50ZiAoIkdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIEd1aWxlXG4iKTsKLQogICAvLyBQcmludCBvdXQgR1VJTEUgc3BlY2lmaWMgaGVhZGVycwogCiAgIGhlYWRlcnMoKTsKQEAgLTE5NywxMCArMjI2LDcgQEAKIHZvaWQKIEdVSUxFOjpzZXRfbW9kdWxlIChjaGFyICptb2RfbmFtZSkKIHsKLSAgaWYgKG1vZHVsZSkgewotICAgIHByaW50ZiAoIm1vZHVsZSBhbHJlYWR5IHNldCAoJXMpLCByZXR1cm5pbmdcbiIsIG1vZHVsZSk7Ci0gICAgcmV0dXJuOwotICB9CisgIGlmIChtb2R1bGUpIHJldHVybjsKIAogICBtb2R1bGUgPSBuZXcgY2hhciBbc3RybGVuIChtb2RfbmFtZSkgKyAxXTsKICAgc3RyY3B5IChtb2R1bGUsIG1vZF9uYW1lKTsKQEAgLTI1Miw2ICsyNzgsOSBAQAogdm9pZAogR1VJTEU6OmluaXRpYWxpemUgKHZvaWQpCiB7CisgIGlmIChDUGx1c1BsdXMpIHsKKyAgICBQcmludGYoZl9ydW50aW1lLCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7CisgIH0KICAgc3dpdGNoIChsaW5rYWdlKSB7CiAgIGNhc2UgR1VJTEVfTFNUWUxFX1NJTVBMRToKICAgICAvKiBTaW1wbGUgbGlua2FnZTsgd2UgaGF2ZSB0byBleHBvcnQgdGhlIFNXSUdfaW5pdCBmdW5jdGlvbi4gVGhlIHVzZXIgY2FuCkBAIC0yNjYsNiArMjk1LDkgQEAKICAgICBicmVhazsKICAgfQogICBQcmludGYgKGZfaW5pdCwgIlx0U1dJR19HdWlsZV9Jbml0KCk7XG4iKTsKKyAgaWYgKENQbHVzUGx1cykgeworICAgIFByaW50ZihmX3J1bnRpbWUsICJcbn1cbiIpOworICB9CiB9CiAKIHZvaWQKQEAgLTI3Myw2ICszMDUsMTAgQEAKIHsKICAgRE9IU3RyaW5nICptb2R1bGVfZnVuYyA9IE5ld1N0cmluZygiIik7CiAKKyAgaWYgKENQbHVzUGx1cykgeworICAgIFByaW50ZihmX2luaXQsICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgfQorCiAgIFByaW50dihtb2R1bGVfZnVuYyxtb2R1bGVfbmFtZSwwKTsKICAgUmVwbGFjZShtb2R1bGVfZnVuYywiLSIsICJfIiwgRE9IX1JFUExBQ0VfQU5ZKTsKIApAQCAtMjgwLDcgKzMxNiwxOCBAQAogICBjYXNlIEdVSUxFX0xTVFlMRV9TSU1QTEU6CiAgICAgUHJpbnRmIChmX2luaXQsICJcbi8qIExpbmthZ2U6IHNpbXBsZSAqL1xuIik7CiAgICAgYnJlYWs7Ci0gIGNhc2UgR1VJTEVfTFNUWUxFX0xURExNT0Q6CisgIGNhc2UgR1VJTEVfTFNUWUxFX1BBU1NJVkU6CisgICAgUHJpbnRmIChmX2luaXQsICJcbi8qIExpbmthZ2U6IHBhc3NpdmUgKi9cbiIpOworICAgIFJlcGxhY2UobW9kdWxlX2Z1bmMsIi8iLCAiXyIsIERPSF9SRVBMQUNFX0FOWSk7CisgICAgSW5zZXJ0KG1vZHVsZV9mdW5jLDAsICJzY21faW5pdF8iKTsKKyAgICBBcHBlbmQobW9kdWxlX2Z1bmMsIl9tb2R1bGUiKTsKKworICAgIFByaW50ZiAoZl9pbml0LCAiU0NNXG4lcyAodm9pZClcbntcbiIsIG1vZHVsZV9mdW5jKTsKKyAgICBQcmludGYgKGZfaW5pdCwgIiAgU1dJR19pbml0KCk7XG4iKTsKKyAgICBQcmludGYgKGZfaW5pdCwgIiAgcmV0dXJuIFNDTV9VTlNQRUNJRklFRDtcbiIpOworICAgIFByaW50ZiAoZl9pbml0LCAifVxuIik7CisgICAgYnJlYWs7CisgIGNhc2UgR1VJTEVfTFNUWUxFX0xURExNT0RfMV80OgogICAgIFByaW50ZiAoZl9pbml0LCAiXG4vKiBMaW5rYWdlOiBsdGRsbW9kICovXG4iKTsKICAgICBSZXBsYWNlKG1vZHVsZV9mdW5jLCIvIiwgIl8iLCBET0hfUkVQTEFDRV9BTlkpOwogICAgIEluc2VydChtb2R1bGVfZnVuYywwLCAic2NtX2luaXRfIik7CkBAIC0yOTYsNiArMzQzLDI5IEBACiAgICAgfQogICAgIFByaW50ZiAoZl9pbml0LCAifVxuIik7CiAgICAgYnJlYWs7CisgIGNhc2UgR1VJTEVfTFNUWUxFX01PRFVMRToKKyAgICBQcmludGYgKGZfaW5pdCwgIlxuLyogTGlua2FnZTogbW9kdWxlICovXG4iKTsKKyAgICBSZXBsYWNlKG1vZHVsZV9mdW5jLCIvIiwgIl8iLCBET0hfUkVQTEFDRV9BTlkpOworICAgIEluc2VydChtb2R1bGVfZnVuYywwLCAic2NtX2luaXRfIik7CisgICAgQXBwZW5kKG1vZHVsZV9mdW5jLCJfbW9kdWxlIik7CisKKyAgICBQcmludGYgKGZfaW5pdCwgInN0YXRpYyB2b2lkIFNXSUdfaW5pdF9oZWxwZXIodm9pZCAqZGF0YSlcbiIpOworICAgIFByaW50ZiAoZl9pbml0LCAie1xuICAgIFNXSUdfaW5pdCgpO1xuIik7CisgICAgaWYgKExlbihleHBvcnRlZF9zeW1ib2xzKSA+IDApCisgICAgICBQcmludGYgKGZfaW5pdCwgIiAgICBzY21fY19leHBvcnQoJXNOVUxMKTsiLAorCSAgICAgIGV4cG9ydGVkX3N5bWJvbHMpOworICAgIFByaW50ZiAoZl9pbml0LCAiXG59XG5cbiIpOworICAgIAorICAgIFByaW50ZiAoZl9pbml0LCAiU0NNXG4lcyAodm9pZClcbntcbiIsIG1vZHVsZV9mdW5jKTsKKyAgICB7CisgICAgICBET0hTdHJpbmcgKm1vZCA9IE5ld1N0cmluZyhtb2R1bGVfbmFtZSk7CisgICAgICBSZXBsYWNlKG1vZCwiLyIsICIgIiwgRE9IX1JFUExBQ0VfQU5ZKTsKKyAgICAgIFByaW50ZihmX2luaXQsICIgICAgU0NNIG1vZHVsZSA9IHNjbV9jX2RlZmluZV9tb2R1bGUoXCIlc1wiLFxuIiwgbW9kKTsKKyAgICAgIFByaW50ZihmX2luaXQsICIgICAgICBTV0lHX2luaXRfaGVscGVyLCBOVUxMKTtcbiIpOworICAgICAgUHJpbnRmKGZfaW5pdCwgIiAgICByZXR1cm4gU0NNX1VOU1BFQ0lGSUVEO1xuIik7CisgICAgfQorICAgIFByaW50ZiAoZl9pbml0LCAifVxuIik7CisgICAgYnJlYWs7CiAgIGNhc2UgR1VJTEVfTFNUWUxFX0hPQkJJVDoKICAgICBQcmludGYgKGZfaW5pdCwgIlxuLyogTGlua2FnZTogaG9iYml0ICovXG4iKTsKICAgICBSZXBsYWNlKG1vZHVsZV9mdW5jLCIvIiwgIl9zbGFzaF8iLCBET0hfUkVQTEFDRV9BTlkpOwpAQCAtMzE1LDYgKzM4NSw5IEBACiAgICAgYWJvcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdwogICB9CiAgIERlbGV0ZShtb2R1bGVfZnVuYyk7CisgIGlmIChDUGx1c1BsdXMpIHsKKyAgICBQcmludGYoZl9pbml0LCAiXG59XG4iKTsKKyAgfQogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTMyOCw3ICs0MDEsNyBAQAogewogICBTd2lnVHlwZV9lbWl0X3R5cGVfdGFibGUgKGZfcnVudGltZSwgZl93cmFwcGVycyk7CiAKLSAgUHJpbnRmIChmX2luaXQsICJTV0lHX0d1aWxlX1JlZ2lzdGVyVHlwZXMoc3dpZ190eXBlcyk7XG4iKTsKKyAgUHJpbnRmIChmX2luaXQsICJTV0lHX0d1aWxlX1JlZ2lzdGVyVHlwZXMoc3dpZ190eXBlcywgc3dpZ190eXBlc19pbml0aWFsKTtcbiIpOwogICBQcmludGYgKGZfaW5pdCwgIn1cblxuIik7CiAgIGNoYXIgbW9kdWxlX25hbWVbMjU2XTsKIApAQCAtMzQxLDQyICs0MTQsMTMgQEAKICAgICAgIHN0cmNweShtb2R1bGVfbmFtZSxtb2R1bGUpOwogICB9CiAgIGVtaXRfbGlua2FnZSAobW9kdWxlX25hbWUpOwotCisgIAogICBpZiAocHJvY2RvYykgewogICAgIERlbGV0ZShwcm9jZG9jKTsKICAgICBwcm9jZG9jID0gTlVMTDsKICAgfQogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBnZXRfcG9pbnRlcigpCi0vLwotLy8gRW1pdHMgY29kZSB0byBnZXQgYSBwb2ludGVyIGZyb20gYSBwYXJhbWV0ZXIgYW5kIGRvIHR5cGUgY2hlY2tpbmcuCi0vLyBwYXJtIGlzIHRoZSBwYXJhbWV0ZXIgbnVtYmVyLiAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2VkCi0vLyBpbiBjcmVhdGVfZnVuY3Rpb24oKS4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3RhdGljIHZvaWQKLWdldF9wb2ludGVyIChjaGFyICppbmFtZSwgaW50IHBhcm0sIFN3aWdUeXBlICp0LAotCSAgICAgV3JhcHBlciAqZiwgRE9IU3RyaW5nX29yX2NoYXIgKnByb2NfbmFtZSwKLQkgICAgIGludCBudW1fc2NoZW1lX3Bhcm0pCi17Ci0gIFN3aWdUeXBlX3JlbWVtYmVyKHQpOwotICAvKiBQb2ludGVycyBhcmUgc21vYnMgKi8KLSAgUHJpbnRmKGYtPmNvZGUsICIgICAgaWYgKFNXSUdfR3VpbGVfR2V0UHRyKHNfJWQsKHZvaWQgKiopICZhcmclZCIsIHBhcm0sIHBhcm0pOwotICBpZiAoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX1ZPSUQpCi0gICAgUHJpbnRmKGYtPmNvZGUsICIsIE5VTEwpKSB7XG4iKTsKLSAgZWxzZQotICAgIFByaW50dihmLT5jb2RlLCAiLCBTV0lHVFlQRSIsIFN3aWdUeXBlX21hbmdsZXN0cih0KSwgIikpIHtcbiIsIDApOwotICAvKiBSYWlzZSBleGNlcHRpb24gKi8KLSAgUHJpbnR2KGYtPmNvZGUsCi0JIHRhYjgsCi0gICAgICAgICAic2NtX3dyb25nX3R5cGVfYXJnKFwiIixwcm9jX25hbWUsICJcIiwgIiwKLQkgMCk7Ci0gIFByaW50ZihmLT5jb2RlLCIlZCwgc18lZCk7XG4iLCBudW1fc2NoZW1lX3Bhcm0sIHBhcm0pOwotICBQcmludHYoZi0+Y29kZSwgdGFiNCwgIn1cbiIsIDApOwotfQotCiAvKiBSZXR1cm4gdHJ1ZSBpZmYgVCBpcyBhIHBvaW50ZXIgdHlwZSAqLwogCiBzdGF0aWMgaW50CkBAIC00MTcsMTEgKzQ2MSw0MiBAQAogICBpZiAoKHRtID0gZ3VpbGVfdHlwZW1hcF9sb29rdXAob3AsIHR5cGUsIGFyZywKIAkJCQkgc291cmNlLCB0YXJnZXQsIGYpKSkgewogICAgIFN0cmluZyAqcyA9IE5ld1N0cmluZyh0bSk7CisgICAgU3RyaW5nICpkZXNjcmlwdG9yID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTdHJpbmcgKmJhc2VkZXNjcmlwdG9yID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTdHJpbmcgKnN0YXJkZXNjcmlwdG9yID0gTmV3U3RyaW5nKCIiKTsKICAgICBjaGFyIGFyZ251bV9zWzEwXTsKKyAgICBTd2lnVHlwZSAqc3RhcnR5cGUgPSBOVUxMOworCisgICAgaWYgKFN3aWdUeXBlX2lzcG9pbnRlcih0eXBlKSkgeworICAgICAgc3RhcnR5cGUgPSBDb3B5KHR5cGUpOworICAgICAgU3dpZ1R5cGVfZGVsX3BvaW50ZXIoc3RhcnR5cGUpOworICAgICAgUHJpbnRmKHN0YXJkZXNjcmlwdG9yLCAiU1dJR1RZUEUlcyIsCisJICAgICBTd2lnVHlwZV9tYW5nbGVzdHIoc3RhcnR5cGUpKTsKKyAgICB9CisgICAgZWxzZSBQcmludGYoc3RhcmRlc2NyaXB0b3IsICJTV0lHVFlQRV9CQUQiKTsKKyAgICBQcmludGYoZGVzY3JpcHRvciwgIlNXSUdUWVBFJXMiLAorCSAgIFN3aWdUeXBlX21hbmdsZXN0cih0eXBlKSk7CisgICAgUHJpbnRmKGJhc2VkZXNjcmlwdG9yLCAiU1dJR1RZUEUlcyIsCisJICAgU3dpZ1R5cGVfbWFuZ2xlc3RyKFN3aWdUeXBlX2Jhc2UodHlwZSkpKTsKICAgICBzcHJpbnRmKGFyZ251bV9zLCAiJWQiLCBhcmdudW0pOwogICAgIFJlcGxhY2UocywiJGFyZ251bSIsIGFyZ251bV9zLCBET0hfUkVQTEFDRV9BTlkpOwogICAgIFJlcGxhY2UocywiJGFyZyIsICAgIGFyZywgICAgICBET0hfUkVQTEFDRV9BTlkpOwogICAgIFJlcGxhY2UocywiJG5hbWUiLCAgIG5hbWUsICAgICBET0hfUkVQTEFDRV9BTlkpOworICAgIGlmIChSZXBsYWNlKHMsICIkZGVzY3JpcHRvciIsCisJCWRlc2NyaXB0b3IsIERPSF9SRVBMQUNFX0FOWSkpCisgICAgICBTd2lnVHlwZV9yZW1lbWJlcih0eXBlKTsKKyAgICBpZiAoUmVwbGFjZShzLCAiJGJhc2VkZXNjcmlwdG9yIiwKKwkJYmFzZWRlc2NyaXB0b3IsIERPSF9SRVBMQUNFX0FOWSkpCisgICAgICBTd2lnVHlwZV9yZW1lbWJlcihTd2lnVHlwZV9iYXNlKHR5cGUpKTsKKyAgICBpZiAoUmVwbGFjZShzLCAiJCpkZXNjcmlwdG9yIiwgc3RhcmRlc2NyaXB0b3IsCisJCURPSF9SRVBMQUNFX0FOWSkpIHsKKyAgICAgIGlmICghc3RhcnR5cGUpIHsKKwlQcmludGYgKHN0ZGVyciwgIiVzIDogTGluZSAlZC4gJCpkZXNjcmlwdG9yIGlzIG1lYW5pbmdsZXNzIGZvciBub24tcG9pbnRlciB0eXBlcy5cbiIsCisJCWlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKKwllcnJvcl9jb3VudCsrOworICAgICAgfQorICAgICAgZWxzZSBTd2lnVHlwZV9yZW1lbWJlcihzdGFydHlwZSk7CisgICAgfQogICAgIGlmIChub25ld2xpbmVfcCkKICAgICAgIFByaW50dihmaWxlLCBzLCAwKTsKICAgICBlbHNlIFByaW50dihmaWxlLCBzLCAiXG4iLCAwKTsKQEAgLTQ2MCw2ICs1MzUsMzUgQEAKICAgZXJyb3JfY291bnQrKzsKIH0KIAorCisvKiBXcml0ZSBvdXQgcHJvY2VkdXJlIGRvY3VtZW50YXRpb24gKi8KKwordm9pZAorR1VJTEU6OndyaXRlX2RvYyhjb25zdCBTdHJpbmcgKnByb2NfbmFtZSwKKwkJIGNvbnN0IFN0cmluZyAqc2lnbmF0dXJlLAorCQkgY29uc3QgU3RyaW5nICpkb2MpCit7CisgIHN3aXRjaCAoZG9jZm9ybWF0KSB7CisgIGNhc2UgR1VJTEVfMV80OgorICAgIFByaW50dihwcm9jZG9jLCAiXGZcbiIsIDApOworICAgIFByaW50dihwcm9jZG9jLCAiKCIsIHNpZ25hdHVyZSwgIilcbiIsIDApOworICAgIFByaW50dihwcm9jZG9jLCBkb2MsICJcbiIsIDApOworICAgIGJyZWFrOworICBjYXNlIFBMQUlOOgorICAgIFByaW50dihwcm9jZG9jLCAiXGYiLCBwcm9jX25hbWUsICJcblxuIiwgMCk7CisgICAgUHJpbnR2KHByb2Nkb2MsICIoIiwgc2lnbmF0dXJlLCAiKVxuIiwgMCk7CisgICAgUHJpbnR2KHByb2Nkb2MsIGRvYywgIlxuXG4iLCAwKTsKKyAgICBicmVhazsKKyAgY2FzZSBURVhJTkZPOgorICAgIFByaW50dihwcm9jZG9jLCAiXGYiLCBwcm9jX25hbWUsICJcbiIsIDApOworICAgIFByaW50dihwcm9jZG9jLCAiQGRlZmZuIHByaW1pdGl2ZSAiLCBzaWduYXR1cmUsICJcbiIsIDApOworICAgIFByaW50dihwcm9jZG9jLCBkb2MsICJcbiIsIDApOworICAgIFByaW50dihwcm9jZG9jLCAiQGVuZCBkZWZmblxuXG4iLCAwKTsKKyAgICBicmVhazsKKyAgfQorfQorCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdVSUxFOjpjcmVhdGVfZnVuY3Rpb24oY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICpkLAogLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcm1MaXN0ICpsKQpAQCAtNDcyLDcgKzU3Niw3IEBACiB7CiAgIFBhcm0gKnA7CiAgIERPSFN0cmluZyAqcHJvY19uYW1lID0gMDsKLSAgY2hhciBzb3VyY2VbMjU2XSwgdGFyZ2V0WzI1Nl07CisgIGNoYXIgc291cmNlWzI1Nl0sIHRhcmdldFsyNTZdLCB3bmFtZVsyNTZdOwogICBXcmFwcGVyICpmID0gTmV3V3JhcHBlcigpOzsKICAgU3RyaW5nICpjbGVhbnVwID0gTmV3U3RyaW5nKCIiKTsKICAgU3RyaW5nICpvdXRhcmcgPSBOZXdTdHJpbmcoIiIpOwpAQCAtNDg1LDggKzU4OSw3IEBACiAgIGludCBudW1vcHQgPSAwOwogCiAgIC8vIE1ha2UgYSB3cmFwcGVyIG5hbWUgZm9yIHRoaXMKLSAgY2hhciAqIHduYW1lID0gbmV3IGNoYXIgW3N0cmxlbiAocHJlZml4KSArIHN0cmxlbiAoaW5hbWUpICsgMl07Ci0gIHNwcmludGYgKHduYW1lLCAiJXMlcyIsIHByZWZpeCwgaW5hbWUpOworICBzdHJjcHkod25hbWUsIENoYXIoU3dpZ19uYW1lX3dyYXBwZXIobmFtZSkpKTsKIAogICAvLyBCdWlsZCB0aGUgbmFtZSBmb3Igc2NoZW1lLgogICBwcm9jX25hbWUgPSBOZXdTdHJpbmcoaW5hbWUpOwpAQCAtNDk4LDYgKzYwMSw3IEBACiAgIC8qIERlY2xhcmUgcmV0dXJuIHZhcmlhYmxlICovCiAKICAgV3JhcHBlcl9hZGRfbG9jYWwgKGYsImdzd2lnX3Jlc3VsdCIsICJTQ00gZ3N3aWdfcmVzdWx0Iik7CisgIFdyYXBwZXJfYWRkX2xvY2FsIChmLCJnc3dpZ19saXN0X3AiLCAiaW50IGdzd2lnX2xpc3RfcCA9IDAiKTsKIAogICBpZiAocHJvY2RvYykKICAgICBndWlsZV9kb19kb2NfdHlwZW1hcChyZXR1cm5zLCAib3V0ZG9jIiwgZCwgTlVMTCwKQEAgLTUwNiw3ICs2MTAsNyBAQAogICAvKiBPcGVuIHByb3RvdHlwZSBhbmQgc2lnbmF0dXJlICovCiAKICAgUHJpbnR2KGYtPmRlZiwgInN0YXRpYyBTQ01cbiIsIHduYW1lLCIgKCIsIDApOwotICBQcmludHYoc2lnbmF0dXJlLCAiKCIsIHByb2NfbmFtZSwgMCk7CisgIFByaW50dihzaWduYXR1cmUsIHByb2NfbmFtZSwgMCk7CiAKICAgLyogTm93IHdyaXRlIGNvZGUgdG8gZXh0cmFjdCB0aGUgcGFyYW1ldGVycyAqLwogCkBAIC01MzYsOSArNjQwLDYgQEAKIAkJCSAgIHNvdXJjZSwgdGFyZ2V0LCBudW1hcmdzLCBwcm9jX25hbWUsIGYsIDApKSB7CiAJLyogbm90aGluZyB0byBkbyAqLwogICAgICAgfQotICAgICAgZWxzZSBpZiAoaXNfYV9wb2ludGVyKHB0KSkgewotICAgICAgICBnZXRfcG9pbnRlciAoaW5hbWUsIGksIHB0LCBmLCBwcm9jX25hbWUsIG51bWFyZ3MpOwotICAgICAgfQogICAgICAgZWxzZSB7CiAgICAgICAgIHRocm93X3VuaGFuZGxlZF9ndWlsZV90eXBlX2Vycm9yIChwdCk7CiAgICAgICB9CkBAIC01ODMsOSArNjg0LDggQEAKIAkJICAgICBzb3VyY2UsIHRhcmdldCwgbnVtYXJncywgcHJvY19uYW1lLCBmLCAwKTsKICAgfQogCi0gIC8qIENsb3NlIHByb3RvdHlwZSBhbmQgc2lnbmF0dXJlICovCisgIC8qIENsb3NlIHByb3RvdHlwZSAqLwogCi0gIFByaW50dihzaWduYXR1cmUsICIpXG4iLCAwKTsKICAgUHJpbnRmKGYtPmRlZiwgIilcbntcbiIpOwogCiAgIC8qIERlZmluZSB0aGUgc2NoZW1lIG5hbWUgaW4gQy4gVGhpcyBkZWZpbmUgaXMgdXNlZCBieSBzZXZlcmFsIEd1aWxlCkBAIC02MDQsMTUgKzcwNCw2IEBACiAJCSAgICAgICAwLCBwcm9jX25hbWUsIGYsIDApKSB7CiAgICAgLyogbm90aGluZyAqLwogICB9Ci0gIGVsc2UgaWYgKGlzX2FfcG9pbnRlcihkKSkgewotICAgIFN3aWdUeXBlX3JlbWVtYmVyKGQpOwotICAgIFByaW50dihmLT5jb2RlLCB0YWI0LAotICAgICAgICAgICAiZ3N3aWdfcmVzdWx0ID0gU1dJR19HdWlsZV9NYWtlUHRyICgiLAotICAgICAgICAgICAicmVzdWx0LCAiLAotICAgICAgICAgICAiU1dJR1RZUEUiLCBTd2lnVHlwZV9tYW5nbGVzdHIoZCksCi0gICAgICAgICAgICIpO1xuIiwKLQkgICAwKTsKLSAgfQogICBlbHNlIHsKICAgICB0aHJvd191bmhhbmRsZWRfZ3VpbGVfdHlwZV9lcnJvciAoZCk7CiAgIH0KQEAgLTYzNyw2ICs3MjgsOCBAQAogCiAgIC8vIFdyYXAgdGhpbmdzIHVwIChpbiBhIG1hbm5lciBvZiBzcGVha2luZykKIAorICBpZiAoYmVmb3JlX3JldHVybikKKyAgICBQcmludHYoZi0+Y29kZSwgYmVmb3JlX3JldHVybiwgIlxuIiwgMCk7CiAgIFByaW50dihmLT5jb2RlLCAicmV0dXJuIGdzd2lnX3Jlc3VsdDtcbiIsIDApOwogCiAgIC8vIFVuZGVmaW5lIHRoZSBzY2hlbWUgbmFtZQpAQCAtNjYyLDcgKzc1NSw3IEBACiAgICAgUHJpbnR2KGZfd3JhcHBlcnMsICIpO1xuIiwgMCk7CiAgICAgUHJpbnR2KGZfd3JhcHBlcnMsICJ9XG4iLCAwKTsKICAgICAvKiBSZWdpc3RlciBpdCAqLwotICAgIFByaW50ZiAoZl9pbml0LCAiZ2hfbmV3X3Byb2NlZHVyZShcIiVzXCIsICVzX3Jlc3QsIDAsIDAsIDEpO1xuIiwKKyAgICBQcmludGYgKGZfaW5pdCwgImdoX25ld19wcm9jZWR1cmUoXCIlc1wiLCAoU0NNICgqKSAoKSkgJXNfcmVzdCwgMCwgMCwgMSk7XG4iLAogICAgICAgICAgICAgIHByb2NfbmFtZSwgd25hbWUsIG51bWFyZ3MtbnVtb3B0LCBudW1vcHQpOwogICB9CiAgIGVsc2UgaWYgKGVtaXRfc2V0dGVycyAmJiBzdHJ1Y3RfbWVtYmVyICYmIHN0cmxlbihDaGFyKHByb2NfbmFtZSkpPjMpIHsKQEAgLTY3NSw3ICs3NjgsNyBAQAogICAgICAgc3RydWN0X21lbWJlciA9IDI7IC8qIGhhdmUgYSBzZXR0ZXIgKi8KICAgICB9CiAgICAgZWxzZSBQcmludGYoZl9pbml0LCAiU0NNIGdldHRlciA9ICIpOwotICAgIFByaW50ZiAoZl9pbml0LCAiZ2hfbmV3X3Byb2NlZHVyZShcIiVzXCIsICVzLCAlZCwgJWQsIDApO1xuIiwKKyAgICBQcmludGYgKGZfaW5pdCwgImdoX25ld19wcm9jZWR1cmUoXCIlc1wiLCAoU0NNICgqKSAoKSkgJXMsICVkLCAlZCwgMCk7XG4iLAogCSAgICBwcm9jX25hbWUsIHduYW1lLCBudW1hcmdzLW51bW9wdCwgbnVtb3B0KTsKICAgICBpZiAoIWlzX3NldHRlcikgewogICAgICAgLyogU3RyaXAgb2ZmICItZ2V0IiAqLwpAQCAtNjkzLDIyICs3ODYsMjQgQEAKIAlQcmludGYgKGZfaW5pdCwgImdoX2RlZmluZShcIiVzXCIsIGdldHRlcik7XG4iLAogCQlwd3NfbmFtZSk7CiAgICAgICB9CisgICAgICBQcmludGYgKGV4cG9ydGVkX3N5bWJvbHMsICJcIiVzXCIsICIsIHB3c19uYW1lKTsKICAgICAgIGZyZWUocHdzX25hbWUpOwogICAgIH0KICAgfQogICBlbHNlIHsKICAgICAvKiBSZWdpc3RlciB0aGUgZnVuY3Rpb24gKi8KLSAgICBQcmludGYgKGZfaW5pdCwgImdoX25ld19wcm9jZWR1cmUoXCIlc1wiLCAlcywgJWQsICVkLCAwKTtcbiIsCisgICAgUHJpbnRmIChmX2luaXQsICJnaF9uZXdfcHJvY2VkdXJlKFwiJXNcIiwgKFNDTSAoKikgKCkpICVzLCAlZCwgJWQsIDApO1xuIiwKIAkgICAgcHJvY19uYW1lLCB3bmFtZSwgbnVtYXJncy1udW1vcHQsIG51bW9wdCk7CiAgIH0KKyAgUHJpbnRmIChleHBvcnRlZF9zeW1ib2xzLCAiXCIlc1wiLCAiLCBwcm9jX25hbWUpOwogICBpZiAocHJvY2RvYykgewotICAgIC8qIFdyaXRlIG91dCBwcm9jZWR1cmUgZG9jdW1lbnRhdGlvbiAqLwotICAgIFByaW50dihzaWduYXR1cmUsICJSZXR1cm5zICIsIDApOwotICAgIGlmIChMZW4ocmV0dXJucyk9PTApIFByaW50dihzaWduYXR1cmUsICJ1bnNwZWNpZmllZCIsIDApOwotICAgIGVsc2UgaWYgKHJldHVybnNfbGlzdCkgUHJpbnR2KHNpZ25hdHVyZSwgImxpc3QgKCIsIHJldHVybnMsICIpIiwgMCk7Ci0gICAgZWxzZSBQcmludHYoc2lnbmF0dXJlLCByZXR1cm5zLCAwKTsKLSAgICBQcmludHYoc2lnbmF0dXJlLCAiXG4iLCAwKTsKLSAgICBQcmludHYocHJvY2RvYywgIlxmXG4iLCBzaWduYXR1cmUsIDApOworICAgIFN0cmluZyAqcmV0dXJuc190ZXh0ID0gTmV3U3RyaW5nKCIiKTsKKyAgICBQcmludHYocmV0dXJuc190ZXh0LCAiUmV0dXJucyAiLCAwKTsKKyAgICBpZiAoTGVuKHJldHVybnMpPT0wKSBQcmludHYocmV0dXJuc190ZXh0LCAidW5zcGVjaWZpZWQiLCAwKTsKKyAgICBlbHNlIGlmIChyZXR1cm5zX2xpc3QpIFByaW50dihyZXR1cm5zX3RleHQsICJsaXN0ICgiLCByZXR1cm5zLCAiKSIsIDApOworICAgIGVsc2UgUHJpbnR2KHJldHVybnNfdGV4dCwgcmV0dXJucywgMCk7CisgICAgd3JpdGVfZG9jKHByb2NfbmFtZSwgc2lnbmF0dXJlLCByZXR1cm5zX3RleHQpOworICAgIERlbGV0ZShyZXR1cm5zX3RleHQpOwogICB9CiAKICAgRGVsZXRlKHByb2NfbmFtZSk7CkBAIC03MTgsNyArODEzLDYgQEAKICAgRGVsZXRlKHJldHVybnMpOwogICBEZWxldGUodG1wKTsKICAgRGVsV3JhcHBlcihmKTsKLSAgZGVsZXRlW10gd25hbWU7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC03NDMsNyArODM3LDcgQEAKICAgZiA9IE5ld1dyYXBwZXIoKTsKICAgLy8gZXZhbHVhdGlvbiBmdW5jdGlvbiBuYW1lcwogCi0gIHNwcmludGYgKHZhcl9uYW1lLCAiJXN2YXJfJXMiLCBwcmVmaXgsIGluYW1lKTsKKyAgc3RyY3B5KHZhcl9uYW1lLCBDaGFyKFN3aWdfbmFtZV93cmFwcGVyKG5hbWUpKSk7IAogCiAgIC8vIEJ1aWxkIHRoZSBuYW1lIGZvciBzY2hlbWUuCiAgIHByb2NfbmFtZSA9IE5ld1N0cmluZyhpbmFtZSk7CkBAIC03NTEsNyArODQ1LDExIEBACiAKICAgaWYgKChTd2lnVHlwZV90eXBlKHQpICE9IFRfVVNFUikgfHwgKGlzX2FfcG9pbnRlcih0KSkpIHsKIAotICAgIFByaW50ZiAoZl93cmFwcGVycywgIlNDTSAlcyhTQ00gc18wKSB7XG4iLCB2YXJfbmFtZSk7CisgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAic3RhdGljIFNDTSAlcyhTQ00gc18wKVxue1xuIiwgdmFyX25hbWUpOworCisgICAgLyogRGVmaW5lIHRoZSBzY2hlbWUgbmFtZSBpbiBDLiBUaGlzIGRlZmluZSBpcyB1c2VkIGJ5IHNldmVyYWwgR3VpbGUKKyAgICAgICBtYWNyb3MuICovCisgICAgUHJpbnR2KGZfd3JhcHBlcnMsICIjZGVmaW5lIEZVTkNfTkFNRSBcIiIsIHByb2NfbmFtZSwgIlwiXG4iLCAwKTsKIAogICAgIGlmICghKFN0YXR1cyAmIFNUQVRfUkVBRE9OTFkpICYmIFN3aWdUeXBlX3R5cGUodCkgPT0gVF9TVFJJTkcpIHsKICAgICAgIFByaW50ZiAoZl93cmFwcGVycywgIlx0IGNoYXIgKl90ZW1wO1xuIik7CkBAIC03NzAsMzEgKzg2OCw5IEBACiAJICAgICAgICJcIlVuYWJsZSB0byBzZXQgJXMuIFZhcmlhYmxlIGlzIHJlYWQgb25seS5cIiwgU0NNX0VPTCk7XG4iLAogCSAgICAgICBwcm9jX25hbWUsIHByb2NfbmFtZSk7CiAgICAgfQotICAgIGVsc2UgaWYgKCh0bSA9IGd1aWxlX3R5cGVtYXBfbG9va3VwICgidmFyaW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LCBuYW1lLCAoY2hhciopInNfMCIsIG5hbWUsIGYpKSkgewotICAgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAiJXNcbiIsIHRtKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoaXNfYV9wb2ludGVyKHQpKSB7Ci0gICAgICBpZiAoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX1NUUklORykgewotICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdFx0IF90ZW1wID0gZ2hfc2NtMm5ld3N0cihzXzAsICZfbGVuKTtcbiIpOwotICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdFx0IGlmICglcykgeyBmcmVlKCVzKTt9XG4iLCBuYW1lLCBuYW1lKTsKLSAgICAgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAiXHRcdCAlcyA9IChjaGFyICopICIKLSAgICAgICAgICAgICAgICAgIm1hbGxvYygoX2xlbisxKSpzaXplb2YoY2hhcikpO1xuIiwgbmFtZSk7Ci0gICAgICAgIFByaW50ZiAoZl93cmFwcGVycywgIlx0XHQgc3RybmNweSglcyxfdGVtcCxfbGVuKTtcbiIsIG5hbWUpOwotICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdFx0ICVzW19sZW5dID0gMDtcbiIsIG5hbWUpOwotICAgICAgfSBlbHNlIHsKLSAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSBvZiBhIHBvaW50ZXIKLSAgICAgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAiXHQgaWYgKFNXSUdfR3VpbGVfR2V0UHRyKHNfMCwgIgotICAgICAgICAgICAgICAgICAiKHZvaWQgKiopICYlcywgIiwgbmFtZSk7Ci0gICAgICAgIGlmIChTd2lnVHlwZV90eXBlKHQpID09IFRfVk9JRCkKLSAgICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJOVUxMKSkge1xuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJTV0lHVFlQRSVzKSkge1xuIiwgU3dpZ1R5cGVfbWFuZ2xlc3RyKHQpKTsKLQkvKiBSYWlzZSBleGNlcHRpb24gKi8KLQlQcmludGYoZl93cmFwcGVycywgIlx0c2NtX3dyb25nX3R5cGVfYXJnKFwiJXNcIiwgIgotCQkiJWQsIHNfMCk7XG4iLCBwcm9jX25hbWUsIDEpOwotICAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdH1cbiIpOwotICAgICAgfQorICAgIGVsc2UgaWYgKGd1aWxlX2RvX3R5cGVtYXAoZl93cmFwcGVycywgInZhcmluIiwKKwkJCSAgICAgIHQsIG5hbWUsIChjaGFyKikgInNfMCIsIG5hbWUsIDEsIG5hbWUsIGYsIDApKSB7CisgICAgICAvKiBub3RoaW5nICovCiAgICAgfQogICAgIGVsc2UgewogICAgICAgdGhyb3dfdW5oYW5kbGVkX2d1aWxlX3R5cGVfZXJyb3IgKHQpOwpAQCAtODA0LDI0ICs4ODAsMTcgQEAKICAgICAvLyBOb3cgcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgKHJlZ2FyZGxlc3MKICAgICAvLyBvZiBldmFsdWF0aW5nIG9yIHNldHRpbmcpCiAKLSAgICBpZiAoKHRtID0gZ3VpbGVfdHlwZW1hcF9sb29rdXAgKCJ2YXJvdXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCwgbmFtZSwgbmFtZSwgKGNoYXIqKSJnc3dpZ19yZXN1bHQiLCBmKSkpIHsKLSAgICAgIFByaW50ZiAoZl93cmFwcGVycywgIiVzXG4iLCB0bSk7Ci0gICAgfQotICAgIGVsc2UgaWYgKGlzX2FfcG9pbnRlcih0KSkgewotICAgICAgaWYgKFN3aWdUeXBlX3R5cGUodCkgPT0gVF9TVFJJTkcpIHsKLSAgICAgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAiXHQgZ3N3aWdfcmVzdWx0ID0gZ2hfc3RyMDJzY20oJXMpO1xuIiwgbmFtZSk7Ci0gICAgICB9IGVsc2UgewotICAgICAgICAvLyBJcyBhbiBvcmRpbmFyeSBwb2ludGVyIHR5cGUuCi0gICAgICAgIFByaW50ZiAoZl93cmFwcGVycywgIlx0IGdzd2lnX3Jlc3VsdCA9IFNXSUdfR3VpbGVfTWFrZVB0ciAoIgotICAgICAgICAgICAgICAgICAiJXMsIFNXSUdUWVBFJXMpO1xuIiwgbmFtZSwgU3dpZ1R5cGVfbWFuZ2xlc3RyKHQpKTsKLSAgICAgIH0KKyAgICBpZiAoZ3VpbGVfZG9fdHlwZW1hcCAoZl93cmFwcGVycywgInZhcm91dCIsCisJCQkgIHQsIG5hbWUsIG5hbWUsIChjaGFyKikiZ3N3aWdfcmVzdWx0IiwKKwkJCSAgMCwgbmFtZSwgZiwgMSkpIHsKKyAgICAgIC8qIG5vdGhpbmcgKi8KICAgICB9CiAgICAgZWxzZSB7CiAgICAgICB0aHJvd191bmhhbmRsZWRfZ3VpbGVfdHlwZV9lcnJvciAodCk7CiAgICAgfQogICAgIFByaW50ZiAoZl93cmFwcGVycywgIlx0IHJldHVybiBnc3dpZ19yZXN1bHQ7XG4iKTsKLSAgICBQcmludGYgKGZfd3JhcHBlcnMsICJ9XG4iKTsKKyAgICBQcmludGYgKGZfd3JhcHBlcnMsICIjdW5kZWYgRlVOQ19OQU1FXG4iKTsKKyAgICBQcmludGYgKGZfd3JhcHBlcnMsICJ9XG5cbiIpOwogCiAgICAgLy8gTm93IGFkZCBzeW1ib2wgdG8gdGhlIEd1aWxlIGludGVycHJldGVyCiAKQEAgLTgyOSw0NCArODk4LDQ0IEBACiAJfHwgU3RhdHVzICYgU1RBVF9SRUFET05MWSkgewogICAgICAgLyogUmVhZC1vbmx5IHZhcmlhYmxlcyBiZWNvbWUgYSBzaW1wbGUgcHJvY2VkdXJlIHJldHVybmluZyB0aGUKIAkgdmFsdWUuICovCi0gICAgICBQcmludGYgKGZfaW5pdCwgIlx0IGdoX25ld19wcm9jZWR1cmUoXCIlc1wiLCAlcywgMCwgMSwgMCk7XG4iLAorICAgICAgUHJpbnRmIChmX2luaXQsICJcdCBnaF9uZXdfcHJvY2VkdXJlKFwiJXNcIiwgKFNDTSAoKikgKCkpICVzLCAwLCAxLCAwKTtcbiIsCiAJICAgICAgcHJvY19uYW1lLCB2YXJfbmFtZSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgLyogUmVhZC93cml0ZSB2YXJpYWJsZXMgYmVjb21lIGEgcHJvY2VkdXJlIHdpdGggc2V0dGVyLiAqLwotICAgICAgUHJpbnRmIChmX2luaXQsICJcdHsgU0NNIHAgPSBnaF9uZXdfcHJvY2VkdXJlKFwiJXNcIiwgJXMsIDAsIDEsIDApO1xuIiwKKyAgICAgIFByaW50ZiAoZl9pbml0LCAiXHR7IFNDTSBwID0gZ2hfbmV3X3Byb2NlZHVyZShcIiVzXCIsIChTQ00gKCopICgpKSAlcywgMCwgMSwgMCk7XG4iLAogCSAgICAgIHByb2NfbmFtZSwgdmFyX25hbWUpOwogICAgICAgUHJpbnRmIChmX2luaXQsICJcdCAgZ2hfZGVmaW5lKFwiJXNcIiwgIgogCSAgICAgICJzY21fbWFrZV9wcm9jZWR1cmVfd2l0aF9zZXR0ZXIocCwgcCkpOyB9XG4iLAogCSAgICAgIHByb2NfbmFtZSk7CiAgICAgfQorICAgIFByaW50ZiAoZXhwb3J0ZWRfc3ltYm9scywgIlwiJXNcIiwgIiwgcHJvY19uYW1lKTsKIAogICAgIGlmIChwcm9jZG9jKSB7CiAgICAgICAvKiBDb21wdXRlIGRvY3VtZW50YXRpb24gKi8KICAgICAgIFN0cmluZyAqc2lnbmF0dXJlID0gTmV3U3RyaW5nKCIiKTsKKyAgICAgIFN0cmluZyAqZG9jID0gTmV3U3RyaW5nKCIiKTsKIAogICAgICAgaWYgKFN0YXR1cyAmIFNUQVRfUkVBRE9OTFkpIHsKLQlQcmludHYoc2lnbmF0dXJlLCAiKCIsIHByb2NfbmFtZSwgIilcbiIsIDApOwotCVByaW50dihzaWduYXR1cmUsICJSZXR1cm5zIGNvbnN0YW50ICIsIDApOwotCWd1aWxlX2RvX2RvY190eXBlbWFwKHNpZ25hdHVyZSwgInZhcm91dGRvYyIsIHQsIE5VTEwsCisJUHJpbnR2KHNpZ25hdHVyZSwgcHJvY19uYW1lLCAwKTsKKwlQcmludHYoZG9jLCAiUmV0dXJucyBjb25zdGFudCAiLCAwKTsKKwlndWlsZV9kb19kb2NfdHlwZW1hcChkb2MsICJ2YXJvdXRkb2MiLCB0LCBOVUxMLAogCQkJICAgICAwLCBwcm9jX25hbWUsIGYpOwotCVByaW50dihzaWduYXR1cmUsICJcbiIsIDApOwogICAgICAgfQogICAgICAgZWxzZSB7Ci0JUHJpbnR2KHNpZ25hdHVyZSwgIigiLCBwcm9jX25hbWUsCisJUHJpbnR2KHNpZ25hdHVyZSwgcHJvY19uYW1lLAogCSAgICAgICAiICM6b3B0aW9uYWwgIiwgMCk7CiAJZ3VpbGVfZG9fZG9jX3R5cGVtYXAoc2lnbmF0dXJlLCAidmFyaW5kb2MiLCB0LCAibmV3LXZhbHVlIiwKIAkJCSAgICAgMSwgcHJvY19uYW1lLCBmKTsKLQlQcmludHYoc2lnbmF0dXJlLCAiKVxuIiwgMCk7Ci0JUHJpbnR2KHNpZ25hdHVyZSwgIklmIE5FVy1WQUxVRSBpcyBwcm92aWRlZCwgIgorCVByaW50dihkb2MsICJJZiBORVctVkFMVUUgaXMgcHJvdmlkZWQsICIKIAkgICAgICAgInNldCBDIHZhcmlhYmxlIHRvIHRoaXMgdmFsdWUuXG4iLCAwKTsKLQlQcmludHYoc2lnbmF0dXJlLCAiUmV0dXJucyB2YXJpYWJsZSB2YWx1ZSAiLCAwKTsKLQlndWlsZV9kb19kb2NfdHlwZW1hcChzaWduYXR1cmUsICJ2YXJvdXRkb2MiLCB0LCBOVUxMLAorCVByaW50dihkb2MsICJSZXR1cm5zIHZhcmlhYmxlIHZhbHVlICIsIDApOworCWd1aWxlX2RvX2RvY190eXBlbWFwKGRvYywgInZhcm91dGRvYyIsIHQsIE5VTEwsCiAJCQkgICAgIDAsIHByb2NfbmFtZSwgZik7Ci0JUHJpbnR2KHNpZ25hdHVyZSwgIlxuIiwgMCk7CiAgICAgICB9Ci0gICAgICBQcmludHYocHJvY2RvYywgIlxmXG4iLCBzaWduYXR1cmUsIDApOworICAgICAgd3JpdGVfZG9jKHByb2NfbmFtZSwgc2lnbmF0dXJlLCBkb2MpOwogICAgICAgRGVsZXRlKHNpZ25hdHVyZSk7CisgICAgICBEZWxldGUoZG9jKTsKICAgICB9CiAKICAgfSBlbHNlIHsKQEAgLTg4MSwxMiArOTUwLDExIEBACiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gR1VJTEU6OmRlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkKIC8vCi0vLyBNYWtlcyBhIGNvbnN0YW50LiAgIE5vdCBzdXJlIGhvdyB0aGlzIGlzIHJlYWxseSBzdXBwb3NlZCB0byB3b3JrLgotLy8gSSdtIGdvaW5nIHRvIGZha2Ugb3V0IFNXSUcgYW5kIGNyZWF0ZSBhIHZhcmlhYmxlIGluc3RlYWQuCisvLyBXZSBjcmVhdGUgYSByZWFkLW9ubHkgdmFyaWFibGUuCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogdm9pZAotR1VJTEU6OmRlY2xhcmVfY29uc3QgKGNoYXIgKm5hbWUsIGNoYXIgKiwgU3dpZ1R5cGUgKnR5cGUsIGNoYXIgKnZhbHVlKQorR1VJTEU6OmRlY2xhcmVfY29uc3QgKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdHlwZSwgY2hhciAqdmFsdWUpCiB7CiAgIGludCBPbGRTdGF0dXMgPSBTdGF0dXM7ICAgICAgLy8gU2F2ZSBvbGQgc3RhdHVzIGZsYWdzCiAgIERPSFN0cmluZyAqcHJvY19uYW1lOwpAQCAtOTAzLDcgKzk3MSw3IEBACiAgIHNwcmludGYgKHZhcl9uYW1lLCAiJXNjb25zdF8lcyIsIHByZWZpeCwgbmFtZSk7CiAKICAgLy8gQnVpbGQgdGhlIG5hbWUgZm9yIHNjaGVtZS4KLSAgcHJvY19uYW1lID0gTmV3U3RyaW5nKG5hbWUpOworICBwcm9jX25hbWUgPSBOZXdTdHJpbmcoaW5hbWUpOwogICBSZXBsYWNlKHByb2NfbmFtZSwiXyIsICItIiwgRE9IX1JFUExBQ0VfQU5ZKTsKIAogICBpZiAoKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9VU0VSKSAmJiAoIWlzX2FfcG9pbnRlcih0eXBlKSkpIHsKQEAgLTkyMSwyNSArOTg5LDE3IEBACiAgIH0gZWxzZSB7CiAgICAgcnZhbHVlID0gTmV3U3RyaW5nKHZhbHVlKTsKICAgfQotICBpZiAoKHRtID0gZ3VpbGVfdHlwZW1hcF9sb29rdXAgKCJjb25zdCIsIHR5cGUsIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcihydmFsdWUpLCBuYW1lLCBmKSkpIHsKLSAgICBQcmludGYgKGZfaW5pdCwgIiVzXG4iLCB0bSk7CisgIGlmIChndWlsZV9kb190eXBlbWFwKGZfaGVhZGVyLCAiY29uc3QiLCB0eXBlLCBuYW1lLAorCQkgICAgICAgQ2hhcihydmFsdWUpLCBuYW1lLCAwLCBuYW1lLCBmLCAwKSkgeworICAgIC8qIG5vdGhpbmcgKi8KICAgfSBlbHNlIHsKICAgICAvLyBDcmVhdGUgdmFyaWFibGUgYW5kIGFzc2lnbiBpdCBhIHZhbHVlCi0KLSAgICBQcmludGYgKGZfaGVhZGVyLCAic3RhdGljICVzICVzID0gIiwgU3dpZ1R5cGVfbHN0cih0eXBlLDApLCB2YXJfbmFtZSk7Ci0gICAgaWYgKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9TVFJJTkcpIHsKLSAgICAgIFByaW50ZiAoZl9oZWFkZXIsICJcIiVzXCI7XG4iLCB2YWx1ZSk7Ci0gICAgfSBlbHNlIGlmIChTd2lnVHlwZV90eXBlKHR5cGUpID09IFRfQ0hBUikgewotICAgICAgUHJpbnRmIChmX2hlYWRlciwgIlwnJXNcJztcbiIsIHZhbHVlKTsKLSAgICB9IGVsc2UgewotICAgICAgUHJpbnRmIChmX2hlYWRlciwgIiVzO1xuIiwgdmFsdWUpOwotICAgIH0KLSAgICAvLyBOb3cgY3JlYXRlIGEgdmFyaWFibGUgZGVjbGFyYXRpb24KLQotICAgIGxpbmtfdmFyaWFibGUgKHZhcl9uYW1lLCBuYW1lLCB0eXBlKTsKLSAgICBTdGF0dXMgPSBPbGRTdGF0dXM7CisgICAgUHJpbnRmIChmX2hlYWRlciwgInN0YXRpYyAlcyAlcyA9ICVzO1xuIiwgU3dpZ1R5cGVfbHN0cih0eXBlLDApLAorCSAgICB2YXJfbmFtZSwgcnZhbHVlKTsKICAgfQorICAvLyBOb3cgY3JlYXRlIGEgdmFyaWFibGUgZGVjbGFyYXRpb24KKyAgbGlua192YXJpYWJsZSAodmFyX25hbWUsIGluYW1lLCB0eXBlKTsKKyAgU3RhdHVzID0gT2xkU3RhdHVzOwogICBEZWxldGUocHJvY19uYW1lKTsKICAgRGVsZXRlKHJ2YWx1ZSk7CiAgIERlbFdyYXBwZXIoZik7CkBAIC05NTksMyArMTAxOSwxNCBAQAogICAgIExhbmd1YWdlOjpjcHBfdmFyaWFibGUobmFtZSwgaW5hbWUsIHQpOwogICB9CiB9CisKK3ZvaWQgR1VJTEU6OnByYWdtYShjaGFyICpsYW5nLCBjaGFyICpjbWQsIGNoYXIgKnZhbHVlKQoreworICBpZiAoc3RyY21wKGxhbmcsKGNoYXIqKSJndWlsZSIpID09IDApIHsKKyAgICBpZiAoc3RyY21wKGNtZCwgKGNoYXIqKSJiZWZvcmVyZXR1cm4iKT09MCkgeworICAgICAgaWYgKGJlZm9yZV9yZXR1cm4pCisJRGVsZXRlKGJlZm9yZV9yZXR1cm4pOworICAgICAgYmVmb3JlX3JldHVybiA9IE5ld1N0cmluZyh2YWx1ZSk7CisgICAgfQorICB9Cit9CmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL2d1aWxlLmggYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL2d1aWxlLmgKaW5kZXggYmRmYzVmNy4uMDkzMTA3YiAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ndWlsZS5oCisrKyBiL1NXSUcvU291cmNlL01vZHVsZXMxLjEvZ3VpbGUuaApAQCAtMzIsMTQgKzMyLDI2IEBACiAgIGNoYXIgICAqcGFja2FnZTsKICAgZW51bSB7CiAgICAgR1VJTEVfTFNUWUxFX1NJTVBMRSwgICAgICAgICAgICAgICAgLy8gY2FsbCBgU1dJR19pbml0KCknCi0gICAgR1VJTEVfTFNUWUxFX0xURExNT0QsICAgICAgICAgICAgICAgLy8gIm5hdGl2ZSIgZ3VpbGU/CisgICAgR1VJTEVfTFNUWUxFX1BBU1NJVkUsICAgICAgICAgICAgICAgLy8gcGFzc2l2ZSBsaW5raW5nIChubyBtb2R1bGUgY29kZSkKKyAgICBHVUlMRV9MU1RZTEVfTU9EVUxFLCAgICAgICAgICAgICAgICAvLyBuYXRpdmUgZ3VpbGUgbW9kdWxlIGxpbmtpbmcgKEd1aWxlID49IDEuNC4xKQorICAgIEdVSUxFX0xTVFlMRV9MVERMTU9EXzFfNCwJCS8vIG9sZCAoR3VpbGUgPD0gMS40KSBkeW5hbWljIG1vZHVsZSBjb252ZW50aW9uCiAgICAgR1VJTEVfTFNUWUxFX0hPQkJJVCAgICAgICAgICAgICAgICAgLy8gdXNlIChob2JiaXQ0ZCBsaW5rKQogICB9IGxpbmthZ2U7CiAgIEZpbGUgICpwcm9jZG9jOworICBlbnVtIHsKKyAgICBHVUlMRV8xXzQsCisgICAgUExBSU4sCisgICAgVEVYSU5GTworICB9IGRvY2Zvcm1hdDsKICAgaW50CSBlbWl0X3NldHRlcnM7CiAgIGludCAgICBzdHJ1Y3RfbWVtYmVyOworICBTdHJpbmcgKmJlZm9yZV9yZXR1cm47CisgIFN0cmluZyAqcHJhZ21hX25hbWU7CisgIFN0cmluZyAqZXhwb3J0ZWRfc3ltYm9sczsKICAgdm9pZCAgIGVtaXRfbGlua2FnZShjaGFyICptb2R1bGVfbmFtZSk7Ci0KKyAgdm9pZCAgIHdyaXRlX2RvYyhjb25zdCBTdHJpbmcgKnByb2NfbmFtZSwKKwkJICAgY29uc3QgU3RyaW5nICpzaWduYXR1cmUsCisJCSAgIGNvbnN0IFN0cmluZyAqZG9jKTsKIHB1YmxpYyA6CiAgIEdVSUxFICgpOwogICB2b2lkIHBhcnNlX2FyZ3MgKGludCwgY2hhciAqYXJndltdKTsKQEAgLTU0LDYgKzY2LDcgQEAKICAgdm9pZCBzZXRfaW5pdCAoY2hhciAqKTsKICAgdm9pZCBjcmVhdGVfY29tbWFuZCAoY2hhciAqLCBjaGFyICopIHsgfTsKICAgdm9pZCBjcHBfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0KTsKKyAgdm9pZCBwcmFnbWEoY2hhciAqbGFuZywgY2hhciAqY21kLCBjaGFyICp2YWx1ZSk7CiB9OwogCiAvKiBndWlsZS5oIGVuZHMgaGVyZSAqLwpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9qYXZhLmN4eCBiL1NXSUcvU291cmNlL01vZHVsZXMxLjEvamF2YS5jeHgKaW5kZXggMThiNzAxMS4uZTQ0YWJjYSAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9qYXZhLmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL2phdmEuY3h4CkBAIC0xLDMyICsxLDExIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogU1dJRyBKYXZhIG1vZHVsZQotICogQXV0aG9yOiBIYXJjbyBkZSBIaWxzdGVyCi0gKgkgICBBVCBDb25zdWx0YW5jeQotICoJICAgVG9lcm5vb2l2ZWxkIDEwNAotICoJICAgUC5PLiBCb3ggMTQyOAotICoJICAgNjUwMSBCSyBOaWptZWdlbgotICoJICAgKzMxIDI0IDM1MjcyODIKLSAqCSAgIGhhcmNvaEBBVENvbnN1bHRhbmN5Lm5sCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogamF2YS5jeHgKICAqCi0gKiB0aGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZXJzb25zIGZvciBzdWJtaXR0aW5nIGJ1Zy1yZXBvcnRzOgorICogICAgIEphdmEgd3JhcHBlciBtb2R1bGUuCiAgKgotICoJSmFtZXMgSGlja3MgPGphbWV5QGNybC5kZWMuY29tPgotICogICAgCUxhcnMgU2NobWlkdC1UaGllbWUgPGxzY2htaWR0QGl4LnVyei51bmktaGVpZGVsYmVyZy5kZT4KLSAqCVBlciBPRXl2aW5kIEh2aWRzdGVuIFBlci1PeXZpbmQuSHZpZHN0ZW5AZmZpLm5vCi0gKglHZW9mZiBEaWxsb24gPGdkaWxsb25AcGVydmFzaXZlLmNvbT4KLSAqICAgIAlNaWNoYWVsIEhhbGxlciA8aGFsbGVyQGxpb25iaW8uY28udWs+Ci0gKiAgICAJIlNpbW9uIEouIEp1bGllciIgPHNqdWxpZXJAZXJvbHMuY29tPgotICogICAgICAiUHJpdGFtIEthbWF0IiA8cHJpdGFtQGFsaWVyLmNvbT4KLSAqICAgICAgTWFyYyBIYWRsZXkgPG1hcmNfaGFkbGV5QGNocnlzdGFsLmNvLnVrPgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSovCi0KLS8qICEhISEhISEKLSAqIERCIDcvMjQvMDA6ICBJcyB0aGVyZSBhbnkgd2F5IHRvIGNsZWFuIHVwIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1vZHVsZT8KLSAqIEkndmUgdHJpZWQgdG8gYnJpbmcgaXQgYXMgZmFyIGFzIEkgY2FuIHdpdGggY29yZSBjaGFuZ2VzLCBidXQgaXQncyBnZXR0aW5nCi0gKiB0byBiZSBhIGxpdHRsZSByb3VnaC4KLSAqICEhISEhISEKLSAqLworICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAuICBUaGUgVW5pdmVyc2l0eSBvZiBDaGljYWdvCisgKiBTZWUgdGhlIGZpbGUgTElDRU5TRSBmb3IgaW5mb3JtYXRpb24gb24gdXNhZ2UgYW5kIHJlZGlzdHJpYnV0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2luY2x1ZGUgPGN0eXBlLmg+CiAKQEAgLTM3LDIwNCArMTYsMjY2IEBACiAKIHN0YXRpYyBjaGFyICp1c2FnZSA9IChjaGFyKikiXAogSmF2YSBPcHRpb25zXG5cCi0gICAgIC1qbmljICAgICAgICAgICAgLSB1c2UgYyBzeW50YXggZm9yIGpuaSBjYWxsc1xuXAotICAgICAtam5pY3BwICAgICAgICAgIC0gdXNlIGMrKyBzeW50YXggZm9yIGpuaSBjYWxsc1xuXAotICAgICAtbW9kdWxlIG5hbWUgICAgIC0gc2V0IG5hbWUgb2YgbW9kdWxlXG5cCi0gICAgIC1wYWNrYWdlIG5hbWUgICAgLSBzZXQgbmFtZSBvZiBwYWNrYWdlXG5cCi0gICAgIC1zaGFkb3cgICAgICAgICAgLSBlbmFibGUgc2hhZG93IGNsYXNzZXNcblwKLSAgICAgLWZpbmFsaXplICAgICAgICAtIGdlbmVyYXRlIGZpbmFsaXplIG1ldGhvZHNcblwKKyAgICAgLWpuaWMgICAgICAgICAgICAtIHVzZSBjIHN5bnRheCBmb3IgSk5JIGNhbGxzXG5cCisgICAgIC1qbmljcHAgICAgICAgICAgLSB1c2UgYysrIHN5bnRheCBmb3IgSk5JIGNhbGxzXG5cCisgICAgIC1tb2R1bGUgPG5hbWU+ICAgLSBzZXQgbmFtZSBvZiB0aGUgbW9kdWxlXG5cCisgICAgIC1wYWNrYWdlIDxuYW1lPiAgLSBzZXQgbmFtZSBvZiB0aGUgcGFja2FnZVxuXAorICAgICAtc2hhZG93ICAgICAgICAgIC0gZ2VuZXJhdGUgc2hhZG93IGNsYXNzZXNcblwKKyAgICAgLW5vZmluYWxpemUgICAgICAtIGRvIG5vdCBnZW5lcmF0ZSBmaW5hbGl6ZSBtZXRob2RzIGluIHNoYWRvdyBjbGFzc2VzXG5cCiAgICAgIC1ybiAgICAgICAgICAgICAgLSBnZW5lcmF0ZSByZWdpc3RlciBuYXRpdmVzIGNvZGVcblxuIjsKIAotc3RhdGljIGNoYXIgICAgICAgICAqbW9kdWxlID0gMDsgICAgICAgICAgLy8gTmFtZSBvZiB0aGUgbW9kdWxlCi1zdGF0aWMgIGNoYXIgICAgICAgICAqamF2YV9wYXRoID0gKGNoYXIqKSJqYXZhIjsKLXN0YXRpYyAgY2hhciAgICAgICAgICpwYWNrYWdlID0gMDsgICAgICAgICAvLyBOYW1lIG9mIHRoZSBwYWNrYWdlCi1zdGF0aWMgIGNoYXIgICAgICAgICAqY19wa2dzdHI7ICAgICAgICAgLy8gTmFtZSBvZiB0aGUgcGFja2FnZQotc3RhdGljICBjaGFyICAgICAgICAgKmpuaV9wa2dzdHI7ICAgICAgICAgLy8gTmFtZSBvZiB0aGUgcGFja2FnZQotc3RhdGljICBjaGFyICAgICAgICAgKnNoYWRvd19jbGFzc25hbWU7Ci1zdGF0aWMgIGNoYXIgICAgICAgICAqamltcG9ydCA9IDA7Ci1zdGF0aWMgIGNoYXIgICAgICAgICAqbWV0aG9kX21vZGlmaWVycyA9IChjaGFyKikicHVibGljIGZpbmFsIHN0YXRpYyI7Ci1zdGF0aWMgIEZJTEUgICAgICAgICAqZl9qYXZhID0gMDsKLXN0YXRpYyAgRklMRSAgICAgICAgICpmX3NoYWRvdyA9IDA7Ci1zdGF0aWMgIGludCAgICAgICAgICBzaGFkb3cgPSAwOwotc3RhdGljICBET0hIYXNoICAgICAgKnNoYWRvd19jbGFzc2VzOwotc3RhdGljICBET0hTdHJpbmcgICAgKnNoYWRvd19jbGFzc2RlZjsKLXN0YXRpYyAgY2hhciAgICAgICAgICpzaGFkb3dfbmFtZSA9IDA7Ci1zdGF0aWMgIGNoYXIgICAgICAgICAqc2hhZG93X2Jhc2VjbGFzcyA9IDA7Ci1zdGF0aWMgIGludCAgICAgICAgICBjbGFzc2RlZl9lbWl0dGVkID0gMDsKLXN0YXRpYyAgaW50ICAgICAgICAgIHNoYWRvd19jbGFzc2RlZl9lbWl0dGVkID0gMDsKLXN0YXRpYyAgaW50ICAgICAgICAgIGhhdmVfZGVmYXVsdF9jb25zdHJ1Y3RvciA9IDA7Ci1zdGF0aWMgIGludCAgICAgICAgICBuYXRpdmVfZnVuYyA9IDA7ICAgICAgICAgICAvLyBTZXQgdG8gMSB3aGVuIHdyYXBwaW5nIGEgbmF0aXZlIGZ1bmN0aW9uCi1zdGF0aWMgIGludCAgICAgICAgICBtZW1iZXJfZnVuYyA9IDA7ICAgICAgICAgICAvLyBTZXQgdG8gMSB3aGVuIHdyYXBwaW5nIGEgbWVtYmVyIGZ1bmN0aW9uCi1zdGF0aWMgIGludCAgICAgICAgICBqbmljID0gLTE7ICAgICAgICAgIC8vIDE6IHVzZSBjIHN5bnRheCBqbmk7IDA6IHVzZSBjKysgc3ludGF4IGpuaQotc3RhdGljICBpbnQgICAgICAgICAgZmluYWxpemUgPSAwOyAgICAgICAgICAvLyBnZW5lcmF0ZSBmaW5hbGl6ZSBtZXRob2RzCi1zdGF0aWMgIGludCAgICAgICAgICB1c2VSZWdpc3Rlck5hdGl2ZXMgPSAwOyAgICAgICAgLy8gU2V0IHRvIDEgd2hlbiBkb2luZyBzdHVmZiB3aXRoIHJlZ2lzdGVyIG5hdGl2ZXMKLXN0YXRpYyAgRE9IU3RyaW5nICAgKnJlZ2lzdGVyTmF0aXZlc0xpc3QgPSAwOworc3RhdGljIGNoYXIgICAqbW9kdWxlID0gMDsgICAgICAgICAgLy8gTmFtZSBvZiB0aGUgbW9kdWxlCitzdGF0aWMgY2hhciAgICpqYXZhX3BhdGggPSAoY2hhciopImphdmEiOworc3RhdGljIGNoYXIgICAqcGFja2FnZSA9IDA7ICAgICAgICAgLy8gTmFtZSBvZiB0aGUgcGFja2FnZQorc3RhdGljIGNoYXIgICAqY19wa2dzdHI7ICAgICAgICAgLy8gTmFtZSBvZiB0aGUgcGFja2FnZQorc3RhdGljIGNoYXIgICAqam5pX3BrZ3N0cjsgICAgICAgICAvLyBOYW1lIG9mIHRoZSBwYWNrYWdlCitzdGF0aWMgY2hhciAgICpzaGFkb3dfY2xhc3NuYW1lOworc3RhdGljIEZJTEUgICAqZl9qYXZhID0gMDsKK3N0YXRpYyBGSUxFICAgKmZfc2hhZG93ID0gMDsKK3N0YXRpYyBpbnQgICAgc2hhZG93ID0gMDsKK3N0YXRpYyBIYXNoICAgKnNoYWRvd19jbGFzc2VzOworc3RhdGljIFN0cmluZyAqc2hhZG93X2NsYXNzZGVmOworc3RhdGljIGNoYXIgICAqc2hhZG93X3ZhcmlhYmxlX25hbWUgPSAwOyAvL05hbWUgb2YgYSBjIHN0cnVjdCB2YXJpYWJsZSBvciBjKysgcHVibGljIG1lbWJlciB2YXJpYWJsZSAobWF5IG9yIG1heSBub3QgYmUgY29uc3QpCitzdGF0aWMgaW50ICAgIGNsYXNzZGVmX2VtaXR0ZWQgPSAwOworc3RhdGljIGludCAgICBzaGFkb3dfY2xhc3NkZWZfZW1pdHRlZCA9IDA7CitzdGF0aWMgaW50ICAgIGhhdmVfZGVmYXVsdF9jb25zdHJ1Y3RvciA9IDA7CitzdGF0aWMgaW50ICAgIG5hdGl2ZV9mdW5jID0gMDsgICAgIC8vIFNldCB0byAxIHdoZW4gd3JhcHBpbmcgYSBuYXRpdmUgZnVuY3Rpb24KK3N0YXRpYyBpbnQgICAgZW51bV9mbGFnID0gMDsgLy8gU2V0IHRvIDEgd2hlbiB3cmFwcGluZyBhbiBlbnVtCitzdGF0aWMgaW50ICAgIHN0YXRpY19mbGFnID0gMDsgLy8gU2V0IHRvIDEgd2hlbiB3cmFwcGluZyBhIHN0YXRpYyBmdW5jdGlvbnMgb3IgbWVtYmVyIHZhcmlhYmxlcworc3RhdGljIGludCAgICB2YXJpYWJsZV93cmFwcGVyX2ZsYWcgPSAwOyAvLyBTZXQgdG8gMSB3aGVuIHdyYXBwaW5nIGEgbWVtYmVyIHZhcmlhYmxlCitzdGF0aWMgaW50ICAgIHdyYXBwaW5nX21lbWJlciA9IDA7IC8vIFNldCB0byAxIHdoZW4gd3JhcHBpbmcgYSBtZW1iZXIgdmFyaWFibGUvZW51bS9jb25zdAorc3RhdGljIGludCAgICBqbmljID0gLTE7ICAgICAgICAgIC8vIDE6IHVzZSBjIHN5bnRheCBqbmk7IDA6IHVzZSBjKysgc3ludGF4IGpuaQorc3RhdGljIGludCAgICBub2ZpbmFsaXplID0gMDsgICAgICAgICAgLy8gZm9yIGdlbmVyYXRpbmcgZmluYWxpemUgbWV0aG9kcworc3RhdGljIGludCAgICB1c2VSZWdpc3Rlck5hdGl2ZXMgPSAwOyAgICAgICAgLy8gU2V0IHRvIDEgd2hlbiBkb2luZyBzdHVmZiB3aXRoIHJlZ2lzdGVyIG5hdGl2ZXMKK3N0YXRpYyBTdHJpbmcgKnJlZ2lzdGVyTmF0aXZlc0xpc3QgPSAwOworc3RhdGljIFN0cmluZyAqc2hhZG93X2VudW1fY29kZSA9IDA7CitzdGF0aWMgU3RyaW5nICpqYXZhX2VudW1fY29kZSA9IDA7CitzdGF0aWMgU3RyaW5nICptb2R1bGVfZXh0cmFfY29kZSA9IDA7IC8vIEV4dHJhIGNvZGUgZm9yIHRoZSBtb2R1bGUgY2xhc3MgZnJvbSAlcHJhZ21hCitzdGF0aWMgU3RyaW5nICphbGxfc2hhZG93X2V4dHJhX2NvZGUgPSAwOyAvLyBFeHRyYSBjb2RlIGZvciBhbGwgc2hhZG93IGNsYXNzZXMgZnJvbSAlcHJhZ21hCitzdGF0aWMgU3RyaW5nICp0aGlzX3NoYWRvd19leHRyYV9jb2RlID0gMDsgLy8gRXh0cmEgY29kZSBmb3IgY3VycmVudCBzaW5nbGUgc2hhZG93IGNsYXNzIGZyb20gJXByYWdtYQorc3RhdGljIFN0cmluZyAqbW9kdWxlX2ltcG9ydCA9IDA7IC8vbW9kdWxlIGltcG9ydCBmcm9tICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKmFsbF9zaGFkb3dfaW1wb3J0ID0gMDsgLy9pbXBvcnQgZm9yIGFsbCBzaGFkb3cgY2xhc3NlcyBmcm9tICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKnRoaXNfc2hhZG93X2ltcG9ydCA9IDA7IC8vaW1wb3J0IGZvciBjdXJyZW50IHNoYWRvdyBjbGFzc2VzIGZyb20gJXByYWdtYQorc3RhdGljIFN0cmluZyAqbW9kdWxlX2Jhc2VjbGFzcyA9IDA7IC8vaW5oZXJpdGFuY2UgZm9yIG1vZHVsZSBjbGFzcyBmcm9tICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKmFsbF9zaGFkb3dfYmFzZWNsYXNzID0gMDsgLy9pbmhlcml0YW5jZSBmb3IgYWxsIHNoYWRvdyBjbGFzc2VzIGZyb20gJXByYWdtYQorc3RhdGljIFN0cmluZyAqdGhpc19zaGFkb3dfYmFzZWNsYXNzID0gMDsgLy9pbmhlcml0YW5jZSBmb3Igc2hhZG93IGNsYXNzIGZyb20gJXByYWdtYSBhbmQgY3BwX2luaGVyaXQKK3N0YXRpYyBTdHJpbmcgKm1vZHVsZV9pbnRlcmZhY2VzID0gMDsgLy9pbnRlcmZhY2VzIGZvciBtb2R1bGUgY2xhc3MgZnJvbSAlcHJhZ21hCitzdGF0aWMgU3RyaW5nICphbGxfc2hhZG93X2ludGVyZmFjZXMgPSAwOyAvL2ludGVyZmFjZXMgZm9yIGFsbCBzaGFkb3cgY2xhc3NlcyBmcm9tICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKnRoaXNfc2hhZG93X2ludGVyZmFjZXMgPSAwOyAvL2ludGVyZmFjZXMgZm9yIHNoYWRvdyBjbGFzcyBmcm9tICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKm1vZHVsZV9jbGFzc19tb2RpZmllcnMgPSAwOyAvL2NsYXNzIG1vZGlmaWVycyBmb3IgbW9kdWxlIGNsYXNzIG92ZXJyaWRlbiBieSAlcHJhZ21hCitzdGF0aWMgU3RyaW5nICphbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycyA9IDA7IC8vY2xhc3MgbW9kaWZpZXJzIGZvciBhbGwgc2hhZG93IGNsYXNzZXMgb3ZlcnJpZGVuIGJ5ICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKnRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycyA9IDA7IC8vY2xhc3MgbW9kaWZpZXJzIGZvciBzaGFkb3cgY2xhc3Mgb3ZlcnJpZGVuIGJ5ICVwcmFnbWEKK3N0YXRpYyBTdHJpbmcgKm1vZHVsZV9tZXRob2RfbW9kaWZpZXJzID0gMDsgLy9uYXRpdmUgbWV0aG9kIG1vZGlmaWVycyBvdmVycmlkZGVuIGJ5ICVwcmFnbWEKIAotY2hhciAqSkFWQTo6U3dpZ1RjVG9KbmlUeXBlKERhdGFUeXBlICp0LCBpbnQgcmV0KSB7Ci0gIGlmKERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPT0gMSkgewotCSAgc3dpdGNoKERhdGFUeXBlX0dldHR5cGVjb2RlKHQpKSB7Ci0JICAgIGNhc2UgVF9JTlQ6CQlyZXR1cm4gKGNoYXIqKSJqaW50QXJyYXkiOwotCSAgICBjYXNlIFRfU0hPUlQ6CXJldHVybiAoY2hhciopImpzaG9ydEFycmF5IjsKLQkgICAgY2FzZSBUX0xPTkc6CXJldHVybiAoY2hhciopImpsb25nQXJyYXkiOwotCSAgICBjYXNlIFRfQ0hBUjoJcmV0dXJuIChjaGFyKikianN0cmluZyI7Ci0JICAgIGNhc2UgVF9GTE9BVDoJcmV0dXJuIChjaGFyKikiamZsb2F0QXJyYXkiOwotCSAgICBjYXNlIFRfRE9VQkxFOglyZXR1cm4gKGNoYXIqKSJqZG91YmxlQXJyYXkiOwotCSAgICBjYXNlIFRfVUlOVDoJcmV0dXJuIChjaGFyKikiamludEFycmF5IjsKLQkgICAgY2FzZSBUX1VTSE9SVDoJcmV0dXJuIChjaGFyKikianNob3J0QXJyYXkiOwotCSAgICBjYXNlIFRfVUxPTkc6CXJldHVybiAoY2hhciopImpsb25nQXJyYXkiOwotCSAgICBjYXNlIFRfVUNIQVI6CXJldHVybiAoY2hhciopImpieXRlQXJyYXkiOwotCSAgICBjYXNlIFRfU0NIQVI6CXJldHVybiAoY2hhciopImpieXRlQXJyYXkiOwotCSAgICBjYXNlIFRfQk9PTDoJcmV0dXJuIChjaGFyKikiamJvb2xlYW5BcnJheSI7Ci0JICAgIGNhc2UgVF9WT0lEOgotCSAgICBjYXNlIFRfVVNFUjoJcmV0dXJuIChjaGFyKikiamxvbmciOwotCSAgfQotICB9IGVsc2UgaWYoRGF0YVR5cGVfaXNfcG9pbnRlcih0KSA+IDEpIHsKLSAgICBpZihyZXQpCi0JcmV0dXJuIChjaGFyKikiamxvbmciOwotICAgIGVsc2UgcmV0dXJuIChjaGFyKikiamxvbmdBcnJheSI7Ci0gIH0gZWxzZSB7Ci0JICBzd2l0Y2goRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkpIHsKLQkgICAgY2FzZSBUX0lOVDogcmV0dXJuIChjaGFyKikiamludCI7Ci0JICAgIGNhc2UgVF9TSE9SVDogcmV0dXJuIChjaGFyKikianNob3J0IjsKLQkgICAgY2FzZSBUX0xPTkc6IHJldHVybiAoY2hhciopImpsb25nIjsKLQkgICAgY2FzZSBUX0NIQVI6IHJldHVybiAoY2hhciopImpieXRlIjsKLQkgICAgY2FzZSBUX0ZMT0FUOiByZXR1cm4gKGNoYXIqKSJqZmxvYXQiOwotCSAgICBjYXNlIFRfRE9VQkxFOiByZXR1cm4gKGNoYXIqKSJqZG91YmxlIjsKLQkgICAgY2FzZSBUX1VJTlQ6IHJldHVybiAoY2hhciopImppbnQiOwotCSAgICBjYXNlIFRfVVNIT1JUOiByZXR1cm4gKGNoYXIqKSJqc2hvcnQiOwotCSAgICBjYXNlIFRfVUxPTkc6IHJldHVybiAoY2hhciopImpsb25nIjsKLQkgICAgY2FzZSBUX1VDSEFSOiByZXR1cm4gKGNoYXIqKSJqYnl0ZSI7Ci0JICAgIGNhc2UgVF9TQ0hBUjogcmV0dXJuIChjaGFyKikiamJ5dGUiOwotCSAgICBjYXNlIFRfQk9PTDogcmV0dXJuIChjaGFyKikiamJvb2xlYW4iOwotCSAgICBjYXNlIFRfVk9JRDogcmV0dXJuIChjaGFyKikidm9pZCI7Ci0JICAgIGNhc2UgVF9VU0VSOiByZXR1cm4gKGNoYXIqKSJqbG9uZyI7Ci0JICB9Ci0gIH0KLSAgUHJpbnRmKHN0ZGVyciwgIlN3aWdUY1RvSm5pVHlwZTogdW5oYW5kbGVkIFNXSUcgdHlwZSAlc1xuIiwgRGF0YVR5cGVfc3RyKHQsMCkpOwotICByZXR1cm4gTlVMTDsKKy8qIFRlc3QgdG8gc2VlIGlmIGEgdHlwZSBjb3JyZXNwb25kcyB0byBzb21ldGhpbmcgd3JhcHBlZCB3aXRoIGEgc2hhZG93IGNsYXNzICovCisvKiBSZXR1cm4gTlVMTCBpZiBub3Qgb3RoZXJ3aXNlIHRoZSBzaGFkb3cgbmFtZSAqLworc3RhdGljIFN0cmluZyAqaXNfc2hhZG93KFN3aWdUeXBlICp0KSB7CisgIFN0cmluZyAqcjsKKyAgU3dpZ1R5cGUgKmx0ID0gU3dpZ19jbG9jYWxfdHlwZSh0KTsKKyAgciA9IEdldGF0dHIoc2hhZG93X2NsYXNzZXMsbHQpOworICBEZWxldGUobHQpOworICByZXR1cm4gcjsKIH0KIAotY2hhciAqSkFWQTo6U3dpZ1RjVG9KYXZhVHlwZShEYXRhVHlwZSAqdCwgaW50IHJldCwgaW50IGluU2hhZG93KSB7Ci0gIGlmKERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPT0gMSkgewotCSAgc3dpdGNoKERhdGFUeXBlX0dldHR5cGVjb2RlKHQpKSB7Ci0JICAgIGNhc2UgVF9JTlQ6ICAgIHJldHVybiAoY2hhciopImludCBbXSI7Ci0JICAgIGNhc2UgVF9TSE9SVDogIHJldHVybiAoY2hhciopInNob3J0IFtdIjsKLQkgICAgY2FzZSBUX0xPTkc6ICAgcmV0dXJuIChjaGFyKikibG9uZyBbXSI7Ci0JICAgIGNhc2UgVF9DSEFSOiAgIHJldHVybiAoY2hhciopIlN0cmluZyI7Ci0JICAgIGNhc2UgVF9GTE9BVDogIHJldHVybiAoY2hhciopImZsb2F0IFtdIjsKLQkgICAgY2FzZSBUX0RPVUJMRTogcmV0dXJuIChjaGFyKikiZG91YmxlIFtdIjsKLQkgICAgY2FzZSBUX1VJTlQ6ICAgcmV0dXJuIChjaGFyKikiaW50IFtdIjsKLQkgICAgY2FzZSBUX1VTSE9SVDogcmV0dXJuIChjaGFyKikic2hvcnQgW10iOwotCSAgICBjYXNlIFRfVUxPTkc6ICByZXR1cm4gKGNoYXIqKSJsb25nIFtdIjsKLQkgICAgY2FzZSBUX1VDSEFSOiAgcmV0dXJuIChjaGFyKikiYnl0ZSBbXSI7Ci0JICAgIGNhc2UgVF9TQ0hBUjogIHJldHVybiAoY2hhciopImJ5dGUgW10iOwotCSAgICBjYXNlIFRfQk9PTDogICByZXR1cm4gKGNoYXIqKSJib29sZWFuIFtdIjsKLQkgICAgY2FzZSBUX1ZPSUQ6Ci0gICAgICAgIGNhc2UgVF9VU0VSOiAgIGlmKGluU2hhZG93ICYmIEdldGF0dHIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZSh0KSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldENoYXIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZSh0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIChjaGFyKikibG9uZyI7Ci0JICB9Ci0gIH0gZWxzZSBpZihEYXRhVHlwZV9pc19wb2ludGVyKHQpID4gMSkgewotICAgIGlmKHJldCkKLQkgIHJldHVybiAoY2hhciopImxvbmciOwotICAgIGVsc2UgcmV0dXJuIChjaGFyKikibG9uZyBbXSI7Ci0gIH0gZWxzZSB7Ci0JICBzd2l0Y2goRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkpIHsKLQkgICAgY2FzZSBUX0lOVDogcmV0dXJuIChjaGFyKikiaW50IjsKLQkgICAgY2FzZSBUX1NIT1JUOiByZXR1cm4gKGNoYXIqKSJzaG9ydCI7Ci0JICAgIGNhc2UgVF9MT05HOiByZXR1cm4gKGNoYXIqKSJsb25nIjsKLQkgICAgY2FzZSBUX0NIQVI6IHJldHVybiAoY2hhciopImJ5dGUiOwotCSAgICBjYXNlIFRfRkxPQVQ6IHJldHVybiAoY2hhciopImZsb2F0IjsKLQkgICAgY2FzZSBUX0RPVUJMRTogcmV0dXJuIChjaGFyKikiZG91YmxlIjsKLQkgICAgY2FzZSBUX1VJTlQ6IHJldHVybiAoY2hhciopImludCI7Ci0JICAgIGNhc2UgVF9VU0hPUlQ6IHJldHVybiAoY2hhciopInNob3J0IjsKLQkgICAgY2FzZSBUX1VMT05HOiByZXR1cm4gKGNoYXIqKSJsb25nIjsKLQkgICAgY2FzZSBUX1VDSEFSOiByZXR1cm4gKGNoYXIqKSJieXRlIjsKLQkgICAgY2FzZSBUX1NDSEFSOiByZXR1cm4gKGNoYXIqKSJieXRlIjsKLQkgICAgY2FzZSBUX0JPT0w6IHJldHVybiAoY2hhciopImJvb2xlYW4iOwotCSAgICBjYXNlIFRfVk9JRDogcmV0dXJuIChjaGFyKikidm9pZCI7Ci0JICAgIGNhc2UgVF9VU0VSOiByZXR1cm4gKGNoYXIqKSJsb25nIjsKLQkgIH0KKy8vIFJldHVybiB0aGUgdHlwZSBvZiB0aGUgYyBhcnJheQorc3RhdGljIFN3aWdUeXBlICpnZXRfYXJyYXlfdHlwZShTd2lnVHlwZSAqdCkgeworICBTd2lnVHlwZSAqdGEgPSAwOworICBpZiAoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX0FSUkFZKSB7CisgICAgU3dpZ1R5cGUgKmFvcDsKKyAgICB0YSA9IENvcHkodCk7CisgICAgYW9wID0gU3dpZ1R5cGVfcG9wKHRhKTsKICAgfQotICBQcmludGYoc3RkZXJyLCAiU3dpZ1RjVG9KYXZhVHlwZTogdW5oYW5kbGVkIFNXSUcgdHlwZSAlc1xuIiwgRGF0YVR5cGVfc3RyKHQsMCkpOwotICByZXR1cm4gTlVMTDsKKyAgcmV0dXJuIHRhOwogfQogCi1jaGFyICpKQVZBOjpTd2lnVGNUb0puaVNjYWxhclR5cGUoRGF0YVR5cGUgKnQpIHsKLSAgaWYoRGF0YVR5cGVfaXNfcG9pbnRlcih0KSA9PSAxKSB7Ci0gICAgc3dpdGNoKERhdGFUeXBlX0dldHR5cGVjb2RlKHQpKSB7Ci0JICAgIGNhc2UgVF9JTlQ6IHJldHVybiAoY2hhciopIkludCI7Ci0JICAgIGNhc2UgVF9TSE9SVDogcmV0dXJuIChjaGFyKikiU2hvcnQiOwotCSAgICBjYXNlIFRfTE9ORzogcmV0dXJuIChjaGFyKikiTG9uZyI7Ci0JICAgIGNhc2UgVF9DSEFSOiByZXR1cm4gKGNoYXIqKSJCeXRlIjsKLQkgICAgY2FzZSBUX0ZMT0FUOiByZXR1cm4gKGNoYXIqKSJGbG9hdCI7Ci0JICAgIGNhc2UgVF9ET1VCTEU6IHJldHVybiAoY2hhciopIkRvdWJsZSI7Ci0JICAgIGNhc2UgVF9VSU5UOiByZXR1cm4gKGNoYXIqKSJJbnQiOwotCSAgICBjYXNlIFRfVVNIT1JUOiByZXR1cm4gKGNoYXIqKSJTaG9ydCI7Ci0JICAgIGNhc2UgVF9VTE9ORzogcmV0dXJuIChjaGFyKikiTG9uZyI7Ci0JICAgIGNhc2UgVF9VQ0hBUjogcmV0dXJuIChjaGFyKikiQnl0ZSI7Ci0JICAgIGNhc2UgVF9TQ0hBUjogcmV0dXJuIChjaGFyKikiQnl0ZSI7Ci0JICAgIGNhc2UgVF9CT09MOiByZXR1cm4gKGNoYXIqKSJCb29sZWFuIjsKLSAgICAgICAgICAgIGNhc2UgVF9WT0lEOgotCSAgICBjYXNlIFRfVVNFUjogcmV0dXJuIChjaGFyKikiTG9uZyI7Ci0JICB9Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIChjaGFyKikiTG9uZyI7Ci0gIH0KKy8qIAorUmV0dXJuIGphdmEgdHlwZSBpbiBqYXZhX3R5cGUuIAorVGhlIHR5cGUgcmV0dXJuZWQgaXMgdGhlIGphdmEgdHlwZSB3aGVuIHNoYWRvd19mbGFnPTAuCitUaGUgdHlwZSByZXR1cm5lZCBpcyB0aGUgamF2YSBzaGFkb3cgdHlwZSB3aGVuIHNoYWRvd19mbGFnPTEuCisqLwordm9pZCBKQVZBOjpTd2lnVG9KYXZhVHlwZShTd2lnVHlwZSAqdCwgU3RyaW5nX29yX2NoYXIgKnBuYW1lLCBTdHJpbmcqIGphdmFfdHlwZSwgaW50IHNoYWRvd19mbGFnKSB7CisgIGNoYXIgKmp0eXBlID0gMDsKKyAgaWYgKHNoYWRvd19mbGFnKQorICAgIGp0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImpzdHlwZSIsIHQsIHBuYW1lKTsKKyAgaWYgKCFqdHlwZSkKKyAgICBqdHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqdHlwZSIsIHQsIHBuYW1lKTsKIAotICBQcmludGYoc3RkZXJyLCAiU3dpZ1RjVG9KbmlTY2FsYXJUeXBlOiB1bmhhbmRsZWQgU1dJRyB0eXBlICVzXG4iLCBEYXRhVHlwZV9zdHIodCwwKSk7Ci0gIHJldHVybiBOVUxMOworICBpZihqdHlwZSkgeworICAgIFByaW50ZihqYXZhX3R5cGUsIGp0eXBlKTsKKyAgfQorICBlbHNlIHsKKyAgICAvKiBNYXAgdHlwZSBoZXJlICovCisgICAgc3dpdGNoKFN3aWdUeXBlX3R5cGUodCkpIHsKKyAgICAgIGNhc2UgVF9DSEFSOiAgICBQcmludGYoamF2YV90eXBlLCAiYnl0ZSIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9TQ0hBUjogICBQcmludGYoamF2YV90eXBlLCAiYnl0ZSIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9VQ0hBUjogICBQcmludGYoamF2YV90eXBlLCAic2hvcnQiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfU0hPUlQ6ICAgUHJpbnRmKGphdmFfdHlwZSwgInNob3J0Iik7IGJyZWFrOworICAgICAgY2FzZSBUX1VTSE9SVDogIFByaW50ZihqYXZhX3R5cGUsICJpbnQiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfSU5UOiAgICAgUHJpbnRmKGphdmFfdHlwZSwgImludCIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9VSU5UOiAgICBQcmludGYoamF2YV90eXBlLCAibG9uZyIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9MT05HOiAgICBQcmludGYoamF2YV90eXBlLCAibG9uZyIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9VTE9ORzogICBQcmludGYoamF2YV90eXBlLCAibG9uZyIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9GTE9BVDogICBQcmludGYoamF2YV90eXBlLCAiZmxvYXQiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfRE9VQkxFOiAgUHJpbnRmKGphdmFfdHlwZSwgImRvdWJsZSIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9CT09MOiAgICBQcmludGYoamF2YV90eXBlLCAiYm9vbGVhbiIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9TVFJJTkc6ICBQcmludGYoamF2YV90eXBlLCAiU3RyaW5nIik7IGJyZWFrOworICAgICAgY2FzZSBUX1ZPSUQ6ICAgIFByaW50ZihqYXZhX3R5cGUsICJ2b2lkIik7IGJyZWFrOworICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgICAgY2FzZSBUX1VTRVI6ICAgIAorICAgICAgICAgICAgICAgICAgICAgIGlmKHNoYWRvd19mbGFnICYmIGlzX3NoYWRvdyh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIFByaW50ZihqYXZhX3R5cGUsIENoYXIoaXNfc2hhZG93KHQpKSk7CisgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRmKGphdmFfdHlwZSwgImxvbmciKTsgCisgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFRfQVJSQVk6CisgICAgICAgICAgICAgICAgICAgICAgaWYoc2hhZG93X2ZsYWcgJiYgaXNfc2hhZG93KHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRmKGphdmFfdHlwZSwgIiVzW10iLCBDaGFyKGlzX3NoYWRvdyh0KSkpOworICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3dpZ1R5cGUqIGFycmF5X3R5cGUgPSBnZXRfYXJyYXlfdHlwZSh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFycmF5cyBvZiBhcnJheXMgbm90IHNoYWRvd2VkIHByb3Blcmx5IHlldCAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFN3aWdUeXBlX3R5cGUoYXJyYXlfdHlwZSkgIT0gVF9BUlJBWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpZ1RvSmF2YVR5cGUoYXJyYXlfdHlwZSwgcG5hbWUsIGphdmFfdHlwZSwgc2hhZG93X2ZsYWcpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRmKGphdmFfdHlwZSwgImxvbmciKTsgIAorICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnR2KGphdmFfdHlwZSwgIltdIiwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgZGVmYXVsdDoKKyAgICAgICAgUHJpbnRmKHN0ZGVyciwgIlN3aWdUb0phdmFUeXBlOiB1bmhhbmRsZWQgZGF0YSB0eXBlOiAlc1xuIiwgU3dpZ1R5cGVfc3RyKHQsMCkpOworICAgICAgICBicmVhazsKKyAgICB9CisvLyAgcHJpbnRmKCJTd2lnVG9KYXZhVHlwZSAlZCBbJXNdXG4iLCBTd2lnVHlwZV90eXBlKHQpLCBDaGFyKGphdmFfdHlwZSkpOworICB9CiB9CiAKLWNoYXIgKkpBVkE6OkphdmFNZXRob2RTaWduYXR1cmUoRGF0YVR5cGUgKnQsIGludCByZXQsIGludCBpblNoYWRvdykgewotICBpZihEYXRhVHlwZV9pc19wb2ludGVyKHQpID09IDEpIHsKLQkgIHN3aXRjaChEYXRhVHlwZV9HZXR0eXBlY29kZSh0KSkgewotCSAgIGNhc2UgVF9JTlQ6ICAgIHJldHVybiAoY2hhciopIltJIjsKLQkgICAgY2FzZSBUX1NIT1JUOiAgcmV0dXJuIChjaGFyKikiW1MiOwotCSAgICBjYXNlIFRfTE9ORzogICByZXR1cm4gKGNoYXIqKSJbSiI7CisvKiBSZXR1cm4gSk5JIHR5cGUgaW4gam5pX3R5cGUuICovCit2b2lkIEpBVkE6OlN3aWdUb0pOSVR5cGUoU3dpZ1R5cGUgKnQsIFN0cmluZ19vcl9jaGFyICpwbmFtZSwgU3RyaW5nKiBqbmlfdHlwZSkgeworICBjaGFyICpqdHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqbmkiLCB0LCBwbmFtZSk7CisKKyAgaWYoanR5cGUpIHsKKyAgICBQcmludGYoam5pX3R5cGUsIGp0eXBlKTsKKyAgfQorICBlbHNlIHsKKyAgICAvKiBNYXAgdHlwZSBoZXJlICovCisgICAgc3dpdGNoKFN3aWdUeXBlX3R5cGUodCkpIHsKKyAgICAgIGNhc2UgVF9DSEFSOiAgICAgIFByaW50ZihqbmlfdHlwZSwgImpieXRlIik7IGJyZWFrOworICAgICAgY2FzZSBUX1NDSEFSOiAgICAgUHJpbnRmKGpuaV90eXBlLCAiamJ5dGUiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfVUNIQVI6ICAgICBQcmludGYoam5pX3R5cGUsICJqc2hvcnQiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfU0hPUlQ6ICAgICBQcmludGYoam5pX3R5cGUsICJqc2hvcnQiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfVVNIT1JUOiAgICBQcmludGYoam5pX3R5cGUsICJqaW50Iik7IGJyZWFrOworICAgICAgY2FzZSBUX0lOVDogICAgICAgUHJpbnRmKGpuaV90eXBlLCAiamludCIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9VSU5UOiAgICAgIFByaW50ZihqbmlfdHlwZSwgImpsb25nIik7IGJyZWFrOworICAgICAgY2FzZSBUX0xPTkc6ICAgICAgUHJpbnRmKGpuaV90eXBlLCAiamxvbmciKTsgYnJlYWs7CisgICAgICBjYXNlIFRfVUxPTkc6ICAgICBQcmludGYoam5pX3R5cGUsICJqbG9uZyIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9GTE9BVDogICAgIFByaW50ZihqbmlfdHlwZSwgImpmbG9hdCIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9ET1VCTEU6ICAgIFByaW50ZihqbmlfdHlwZSwgImpkb3VibGUiKTsgYnJlYWs7CisgICAgICBjYXNlIFRfQk9PTDogICAgICBQcmludGYoam5pX3R5cGUsICJqYm9vbGVhbiIpOyBicmVhazsKKyAgICAgIGNhc2UgVF9TVFJJTkc6ICAgIFByaW50ZihqbmlfdHlwZSwgImpzdHJpbmciKTsgYnJlYWs7CisgICAgICBjYXNlIFRfVk9JRDogICAgICBQcmludGYoam5pX3R5cGUsICJ2b2lkIik7IGJyZWFrOworICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgICAgY2FzZSBUX1VTRVI6ICAgICAgUHJpbnRmKGpuaV90eXBlLCAiamxvbmciKTsgYnJlYWs7CisgICAgICBjYXNlIFRfQVJSQVk6CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBTd2lnVHlwZSogYXJyYXlfdHlwZSA9IGdldF9hcnJheV90eXBlKHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFN3aWdUeXBlX3R5cGUoYXJyYXlfdHlwZSkgIT0gVF9BUlJBWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3dpZ1RvSk5JVHlwZShhcnJheV90eXBlLCBwbmFtZSwgam5pX3R5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludGYoam5pX3R5cGUsICJqbG9uZyIpOyAgLy8gQXJyYXlzIG9mIGFycmF5cyBub3QgaW1wbGVtZW50ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIFByaW50dihqbmlfdHlwZSwgIkFycmF5IiwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICBQcmludGYoc3RkZXJyLCAiU3dpZ1RvSk5JVHlwZTogdW5oYW5kbGVkIGRhdGEgdHlwZTogJXNcbiIsIFN3aWdUeXBlX3N0cih0LDApKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorLy8gIHByaW50ZigiU3dpZ1RvSk5JVHlwZSAlZCBbJXNdXG4iLCBTd2lnVHlwZV90eXBlKHQpLCBDaGFyKGpuaV90eXBlKSk7CisgIH0KK30KKworY2hhciAqSkFWQTo6U3dpZ1RvSmF2YUFycmF5VHlwZShTd2lnVHlwZSAqdCkgeworICBzd2l0Y2goU3dpZ1R5cGVfdHlwZSh0KSkgeworICAgIGNhc2UgVF9DSEFSOiByZXR1cm4gKGNoYXIqKSJCeXRlIjsKKyAgICBjYXNlIFRfU0NIQVI6IHJldHVybiAoY2hhciopIkJ5dGUiOworICAgIGNhc2UgVF9VQ0hBUjogcmV0dXJuIChjaGFyKikiU2hvcnQiOworICAgIGNhc2UgVF9TSE9SVDogcmV0dXJuIChjaGFyKikiU2hvcnQiOworICAgIGNhc2UgVF9VU0hPUlQ6IHJldHVybiAoY2hhciopIkludCI7CisgICAgY2FzZSBUX0lOVDogcmV0dXJuIChjaGFyKikiSW50IjsKKyAgICBjYXNlIFRfVUlOVDogcmV0dXJuIChjaGFyKikiTG9uZyI7CisgICAgY2FzZSBUX0xPTkc6IHJldHVybiAoY2hhciopIkxvbmciOworICAgIGNhc2UgVF9VTE9ORzogcmV0dXJuIChjaGFyKikiTG9uZyI7CisgICAgY2FzZSBUX0ZMT0FUOiByZXR1cm4gKGNoYXIqKSJGbG9hdCI7CisgICAgY2FzZSBUX0RPVUJMRTogcmV0dXJuIChjaGFyKikiRG91YmxlIjsKKyAgICBjYXNlIFRfQk9PTDogcmV0dXJuIChjaGFyKikiQm9vbGVhbiI7CisgICAgY2FzZSBUX1NUUklORzoJcmV0dXJuIChjaGFyKikiU3RyaW5nIjsKKyAgICBjYXNlIFRfUE9JTlRFUjoKKyAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgIGNhc2UgVF9BUlJBWToKKyAgICBjYXNlIFRfVk9JRDoKKyAgICBjYXNlIFRfVVNFUjoKKyAgICBkZWZhdWx0IDogcmV0dXJuIChjaGFyKikiTG9uZyI7IC8vIFRyZWF0IGFzIGEgcG9pbnRlcgorICB9Cit9CisKKy8qIEphdmFNZXRob2RTaWduYXR1cmUgc3RpbGwgbmVlZHMgdXBkYXRpbmcgZm9yIGNoYW5nZXMgZnJvbSBTV0lHMS4zYTMgdG8gU1dJRzEuM2E1ICovCitjaGFyICpKQVZBOjpKYXZhTWV0aG9kU2lnbmF0dXJlKFN3aWdUeXBlICp0LCBpbnQgcmV0LCBpbnQgaW5TaGFkb3cpIHsKKyAgaWYoU3dpZ1R5cGVfaXNwb2ludGVyKHQpID09IDEpIHsKKwkgIHN3aXRjaChTd2lnVHlwZV90eXBlKHQpKSB7CiAJICAgIGNhc2UgVF9DSEFSOiAgIHJldHVybiAoY2hhciopIkxqYXZhL2xhbmcvU3RyaW5nOyI7CisJICAgIGNhc2UgVF9TQ0hBUjogIHJldHVybiAoY2hhciopIltCIjsKKwkgICAgY2FzZSBUX1VDSEFSOiAgcmV0dXJuIChjaGFyKikiW1MiOworCSAgICBjYXNlIFRfU0hPUlQ6ICByZXR1cm4gKGNoYXIqKSJbUyI7CisJICAgIGNhc2UgVF9VU0hPUlQ6IHJldHVybiAoY2hhciopIltJIjsKKwkgICAgY2FzZSBUX0lOVDogICAgcmV0dXJuIChjaGFyKikiW0kiOworCSAgICBjYXNlIFRfVUlOVDogICByZXR1cm4gKGNoYXIqKSJbSiI7CisJICAgIGNhc2UgVF9MT05HOiAgIHJldHVybiAoY2hhciopIltKIjsKKwkgICAgY2FzZSBUX1VMT05HOiAgcmV0dXJuIChjaGFyKikiW0oiOwogCSAgICBjYXNlIFRfRkxPQVQ6ICByZXR1cm4gKGNoYXIqKSJbRiI7CiAJICAgIGNhc2UgVF9ET1VCTEU6IHJldHVybiAoY2hhciopIltEIjsKLQkgICAgY2FzZSBUX1VJTlQ6ICAgcmV0dXJuIChjaGFyKikiW0kiOwotCSAgICBjYXNlIFRfVVNIT1JUOiByZXR1cm4gKGNoYXIqKSJbUyI7Ci0JICAgIGNhc2UgVF9VTE9ORzogIHJldHVybiAoY2hhciopIltKIjsKLQkgICAgY2FzZSBUX1VDSEFSOiAgcmV0dXJuIChjaGFyKikiW0IiOwotCSAgICBjYXNlIFRfU0NIQVI6ICByZXR1cm4gKGNoYXIqKSJbQiI7CiAJICAgIGNhc2UgVF9CT09MOiAgIHJldHVybiAoY2hhciopIltaIjsKKwkgICAgY2FzZSBUX1NUUklORzoJcmV0dXJuIChjaGFyKikiTGphdmEvbGFuZy9TdHJpbmc7IjsKKwkgICAgY2FzZSBUX1BPSU5URVI6CXJldHVybiAoY2hhciopIltKIjsKKwkgICAgY2FzZSBUX1JFRkVSRU5DRToJcmV0dXJuIChjaGFyKikiW0oiOworCSAgICBjYXNlIFRfQVJSQVk6CXJldHVybiAoY2hhciopIj8/PyI7CiAJICAgIGNhc2UgVF9WT0lEOgotICAgICAgICBjYXNlIFRfVVNFUjogICBpZihpblNoYWRvdyAmJiBHZXRhdHRyKHNoYWRvd19jbGFzc2VzLERhdGFUeXBlX0dldG5hbWUodCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHZXRDaGFyKHNoYWRvd19jbGFzc2VzLERhdGFUeXBlX0dldG5hbWUodCkpOworICAgICAgICBjYXNlIFRfVVNFUjogICBpZihpblNoYWRvdyAmJiBpc19zaGFkb3codCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENoYXIoaXNfc2hhZG93KHQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSByZXR1cm4gKGNoYXIqKSJKIjsKIAkgIH0KLSAgfSBlbHNlIGlmKERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPiAxKSB7CisgIH0gZWxzZSBpZihTd2lnVHlwZV9pc3BvaW50ZXIodCkgPiAxKSB7CiAgICAgaWYocmV0KSByZXR1cm4gKGNoYXIqKSJKIjsKICAgICBlbHNlIHJldHVybiAoY2hhciopIltKIjsKICAgfSBlbHNlIHsKLQkgIHN3aXRjaChEYXRhVHlwZV9HZXR0eXBlY29kZSh0KSkgewotCSAgICBjYXNlIFRfSU5UOiByZXR1cm4gKGNoYXIqKSJJIjsKLQkgICAgY2FzZSBUX1NIT1JUOiByZXR1cm4gKGNoYXIqKSJTIjsKLQkgICAgY2FzZSBUX0xPTkc6IHJldHVybiAoY2hhciopIkoiOworCSAgc3dpdGNoKFN3aWdUeXBlX3R5cGUodCkpIHsKIAkgICAgY2FzZSBUX0NIQVI6IHJldHVybiAoY2hhciopIkIiOworCSAgICBjYXNlIFRfU0NIQVI6IHJldHVybiAoY2hhciopIkIiOworCSAgICBjYXNlIFRfVUNIQVI6IHJldHVybiAoY2hhciopIlMiOworCSAgICBjYXNlIFRfU0hPUlQ6IHJldHVybiAoY2hhciopIlMiOworCSAgICBjYXNlIFRfVVNIT1JUOiByZXR1cm4gKGNoYXIqKSJJIjsKKwkgICAgY2FzZSBUX0lOVDogcmV0dXJuIChjaGFyKikiSSI7CisJICAgIGNhc2UgVF9VSU5UOiByZXR1cm4gKGNoYXIqKSJKIjsKKwkgICAgY2FzZSBUX0xPTkc6IHJldHVybiAoY2hhciopIkoiOworCSAgICBjYXNlIFRfVUxPTkc6IHJldHVybiAoY2hhciopIkoiOwogCSAgICBjYXNlIFRfRkxPQVQ6IHJldHVybiAoY2hhciopIkYiOwogCSAgICBjYXNlIFRfRE9VQkxFOiByZXR1cm4gKGNoYXIqKSJEIjsKLQkgICAgY2FzZSBUX1VJTlQ6IHJldHVybiAoY2hhciopIkkiOwotCSAgICBjYXNlIFRfVVNIT1JUOiByZXR1cm4gKGNoYXIqKSJTIjsKLQkgICAgY2FzZSBUX1VMT05HOiByZXR1cm4gKGNoYXIqKSJKIjsKLQkgICAgY2FzZSBUX1VDSEFSOiByZXR1cm4gKGNoYXIqKSJCIjsKLQkgICAgY2FzZSBUX1NDSEFSOiByZXR1cm4gKGNoYXIqKSJCIjsKIAkgICAgY2FzZSBUX0JPT0w6IHJldHVybiAoY2hhciopIloiOworCSAgICBjYXNlIFRfU1RSSU5HOglyZXR1cm4gKGNoYXIqKSJMamF2YS9sYW5nL1N0cmluZzsiOworCSAgICBjYXNlIFRfUE9JTlRFUjoJcmV0dXJuIChjaGFyKikiSiI7CisJICAgIGNhc2UgVF9SRUZFUkVOQ0U6CXJldHVybiAoY2hhciopIkoiOworCSAgICBjYXNlIFRfQVJSQVk6CXJldHVybiAoY2hhciopIj8/PyI7CiAJICAgIGNhc2UgVF9WT0lEOiByZXR1cm4gKGNoYXIqKSJWIjsKIAkgICAgY2FzZSBUX1VTRVI6IHJldHVybiAoY2hhciopIkoiOwogCSAgfQogICB9Ci0gIFByaW50ZihzdGRlcnIsICJKYXZhTWV0aG9kU2lnbmF0dXJlOiB1bmhhbmRsZWQgU1dJRyB0eXBlICVzXG4iLCBEYXRhVHlwZV9zdHIodCwwKSk7CisgIFByaW50ZihzdGRlcnIsICJKYXZhTWV0aG9kU2lnbmF0dXJlOiB1bmhhbmRsZWQgU1dJRyB0eXBlIFslZF0gJXNcbiIsIFN3aWdUeXBlX3R5cGUodCksIFN3aWdUeXBlX3N0cih0LDApKTsKICAgcmV0dXJuIE5VTEw7CiB9CiAKLWNoYXIgKkpBVkE6OkphdmFUeXBlRnJvbVR5cGVtYXAoY2hhciAqb3AsIGNoYXIgKmxhbmcsIERhdGFUeXBlICp0LCBjaGFyICpwbmFtZSkgeworY2hhciAqSkFWQTo6SmF2YVR5cGVGcm9tVHlwZW1hcChjaGFyICpvcCwgU3dpZ1R5cGUgKnQsIFN0cmluZ19vcl9jaGFyICpwbmFtZSkgewogICBjaGFyICp0bTsKICAgY2hhciAqYyA9IGJpZ2J1ZjsKLSAgaWYoISh0bSA9IHR5cGVtYXBfbG9va3VwKG9wLCBsYW5nLCB0LCBwbmFtZSwgKGNoYXIqKSIiLCAoY2hhciopIiIpKSkgcmV0dXJuIE5VTEw7CisgIGlmKCEodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKG9wLCB0LCBwbmFtZSwgKGNoYXIqKSIiLCAoY2hhciopIiIsIE5VTEwpKSkgcmV0dXJuIE5VTEw7CiAgIHdoaWxlKCp0bSAmJiAoaXNzcGFjZSgqdG0pIHx8ICp0bSA9PSAneycpKSB0bSsrOwogICB3aGlsZSgqdG0gJiYgKnRtICE9ICd9JykgKmMrKyA9ICp0bSsrOwogICAqYz0nXDAnOwpAQCAtMjQ4LDcgKzI4OSw4IEBACiAKICAgd2hpbGUoKmMpIHsKICAgICAqYisrID0gKmM7Ci0gICAgaWYoKmMgPT0gJ18nKSAqYisrID0gJzEnOworICAgIGlmKCpjID09ICdfJykKKyAgICAgICpiKysgPSAnMSc7CiAgICAgYysrOwogICB9CiAgICpiID0gJ1wwJzsKQEAgLTI1Nyw3ICsyOTksNyBAQAogfQogCiAvLyAhISB0aGlzIGFwcHJvYWNoIGZhaWxzIGZvciBmdW5jdGlvbnMgd2l0aG91dCBhcmd1bWVudHMKLWNoYXIgKkpBVkE6OkpOSUNBTEwoRE9IU3RyaW5nX29yX2NoYXIgKmZ1bmMpIHsKK2NoYXIgKkpBVkE6OkpOSUNBTEwoU3RyaW5nX29yX2NoYXIgKmZ1bmMpIHsKICAgaWYoam5pYykKIAlzcHJpbnRmKGJpZ2J1ZiwgIigqamVudiktPiVzKGplbnYsICIsIENoYXIoZnVuYykpOwogICBlbHNlCkBAIC0zMjcsNyArMzY5LDcgQEAKICAgICBpZiAoYXJndltpXSkgewogICAgICAgaWYgKHN0cmNtcChhcmd2W2ldLCItbW9kdWxlIikgPT0gMCkgewogCWlmIChhcmd2W2krMV0pIHsKLQkgIHNldF9tb2R1bGUoYXJndltpKzFdLDApOworCSAgc2V0X21vZHVsZShhcmd2W2krMV0pOwogCSAgU3dpZ19tYXJrX2FyZyhpKTsKIAkgIFN3aWdfbWFya19hcmcoaSsxKTsKIAkgIGkrKzsKQEAgLTM1MCw5ICszOTIsOSBAQAogICAgICAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLWpuaWMiKSA9PSAwKSB7CiAJICAgIFN3aWdfbWFya19hcmcoaSk7CiAgICAgICAgIGpuaWMgPSAxOwotICAgICAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLWZpbmFsaXplIikgPT0gMCkgeworICAgICAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLW5vZmluYWxpemUiKSA9PSAwKSB7CiAJICAgIFN3aWdfbWFya19hcmcoaSk7Ci0gICAgICAgIGZpbmFsaXplID0gMTsKKyAgICAgICAgbm9maW5hbGl6ZSA9IDE7CiAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCItcm4iKSA9PSAwKSB7CiAJICAgIFN3aWdfbWFya19hcmcoaSk7CiAgICAgICAgIHVzZVJlZ2lzdGVyTmF0aXZlcyA9IDE7CkBAIC0zODYsMjggKzQyOCwzNSBAQAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIHZvaWQgSkFWQTo6cGFyc2UoKSB7Ci0KLSAgUHJpbnRmKHN0ZGVyciwiR2VuZXJhdGluZyB3cmFwcGVycyBmb3IgSmF2YVxuIik7Ci0KICAgc2hhZG93X2NsYXNzZXMgPSBOZXdIYXNoKCk7CiAgIHNoYWRvd19jbGFzc2RlZiA9IE5ld1N0cmluZygiIik7CiAgIHJlZ2lzdGVyTmF0aXZlc0xpc3QgPSBOZXdTdHJpbmcoIiIpOworICBqYXZhX2VudW1fY29kZSA9IE5ld1N0cmluZygiIik7CisgIG1vZHVsZV9leHRyYV9jb2RlID0gTmV3U3RyaW5nKCIiKTsKKyAgbW9kdWxlX2Jhc2VjbGFzcyA9IE5ld1N0cmluZygiIik7CisgIG1vZHVsZV9pbnRlcmZhY2VzID0gTmV3U3RyaW5nKCIiKTsKKyAgbW9kdWxlX2NsYXNzX21vZGlmaWVycyA9IE5ld1N0cmluZygiIik7CisgIGFsbF9zaGFkb3dfZXh0cmFfY29kZSA9IE5ld1N0cmluZygiIik7CisgIGFsbF9zaGFkb3dfaW1wb3J0ID0gTmV3U3RyaW5nKCIiKTsKKyAgYWxsX3NoYWRvd19iYXNlY2xhc3MgPSBOZXdTdHJpbmcoIiIpOworICBhbGxfc2hhZG93X2ludGVyZmFjZXMgPSBOZXdTdHJpbmcoIiIpOworICBhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycyA9IE5ld1N0cmluZygiIik7CisgIG1vZHVsZV9pbXBvcnQgPSBOZXdTdHJpbmcoIiIpOworICBtb2R1bGVfbWV0aG9kX21vZGlmaWVycyA9IE5ld1N0cmluZygicHVibGljIGZpbmFsIHN0YXRpYyIpOwogCiAgIGhlYWRlcnMoKTsgICAgICAgLy8gRW1pdCBoZWFkZXIgZmlsZXMgYW5kIG90aGVyIHN1cHBvcnRpbmcgY29kZQogICB5eXBhcnNlKCk7ICAgICAgIC8vIFJ1biB0aGUgU1dJRyBwYXJzZXIKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBKQVZBOjpzZXRfbW9kdWxlKGNoYXIgKm1vZF9uYW1lLGNoYXIgKiptb2RfbGlzdCkKKy8vIEpBVkE6OnNldF9tb2R1bGUoY2hhciAqbW9kX25hbWUpCiAvLwogLy8gU2V0cyB0aGUgbW9kdWxlIG5hbWUuICBEb2VzIG5vdGhpbmcgaWYgaXQncyBhbHJlYWR5IHNldCAoc28gaXQgY2FuCiAvLyBiZSBvdmVycmlkZGVudCBhcyBhIGNvbW1hbmQgbGluZSBvcHRpb24pLgogLy8KLS8vIG1vZF9saXN0IGlzIGEgTlVMTC10ZXJtaW5hdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBtb2R1bGVzLiAgVGhpcwotLy8gaXMgcmVhbGx5IG9ubHkgdXNlZnVsIHdoZW4gYnVpbGRpbmcgc3RhdGljIGV4ZWN1dGFibGVzLgogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXZvaWQgSkFWQTo6c2V0X21vZHVsZShjaGFyICptb2RfbmFtZSwgY2hhciAqKm1vZF9saXN0KSB7Cit2b2lkIEpBVkE6OnNldF9tb2R1bGUoY2hhciAqbW9kX25hbWUpIHsKICAgaWYgKG1vZHVsZSkgcmV0dXJuOwogICBtb2R1bGUgPSBuZXcgY2hhcltzdHJsZW4obW9kX25hbWUpKzFdOwogICBzdHJjcHkobW9kdWxlLG1vZF9uYW1lKTsKQEAgLTQ0NywxMyArNDk2LDEzIEBACiAgIH0KIAogICBpZihwYWNrYWdlKSB7Ci0gICAgRE9IU3RyaW5nICpzID0gTmV3U3RyaW5nKHBhY2thZ2UpOworICAgIFN0cmluZyAqcyA9IE5ld1N0cmluZyhwYWNrYWdlKTsKICAgICBSZXBsYWNlKHMsIi4iLCJfIiwgRE9IX1JFUExBQ0VfQU5ZKTsKICAgICBBcHBlbmQocywiXyIpOwogICAgIGNfcGtnc3RyID0gU3dpZ19jb3B5X3N0cmluZyhDaGFyKHMpKTsKICAgICBEZWxldGUocyk7CiAKLSAgICBET0hTdHJpbmcgKnMyID0gTmV3U3RyaW5nKHBhY2thZ2UpOworICAgIFN0cmluZyAqczIgPSBOZXdTdHJpbmcocGFja2FnZSk7CiAgICAgUmVwbGFjZShzMiwiLiIsIi8iLCBET0hfUkVQTEFDRV9BTlkpOwogICAgIEFwcGVuZChzMiwiLyIpOwogICAgIGpuaV9wa2dzdHIgPSBTd2lnX2NvcHlfc3RyaW5nKENoYXIoczIpKTsKQEAgLTQ2NCw3ICs1MTMsMTIgQEAKIAogICBzcHJpbnRmKGJpZ2J1ZiwgIkphdmFfJXMlcyIsIGNfcGtnc3RyLCBtb2R1bGUpOwogICBjX3BrZ3N0ciA9IFN3aWdfY29weV9zdHJpbmcoYmlnYnVmKTsKLSAgc3ByaW50ZihiaWdidWYsICIlc18lJWYiLCBjX3BrZ3N0cik7CisKKyAgaWYgKHN0cmNocihtb2R1bGUgKyBzdHJsZW4obW9kdWxlKS0xLCAnXycpKSAvL2lmIG1vZHVsZSBoYXMgYSAnXycgYXMgbGFzdCBjaGFyYWN0ZXIKKyAgICBzcHJpbnRmKGJpZ2J1ZiwgIiVzMV8lJWYiLCBjX3BrZ3N0cik7IC8vc2VwYXJhdGUgZG91YmxlIHVuZGVyc2NvcmUgd2l0aCAxCisgIGVsc2UKKyAgICBzcHJpbnRmKGJpZ2J1ZiwgIiVzXyUlZiIsIGNfcGtnc3RyKTsKKwogICBTd2lnX25hbWVfcmVnaXN0ZXIoKGNoYXIqKSJ3cmFwcGVyIiwgU3dpZ19jb3B5X3N0cmluZyhiaWdidWYpKTsKICAgU3dpZ19uYW1lX3JlZ2lzdGVyKChjaGFyKikic2V0IiwgKGNoYXIqKSJzZXRfJXYiKTsKICAgU3dpZ19uYW1lX3JlZ2lzdGVyKChjaGFyKikiZ2V0IiwgKGNoYXIqKSJnZXRfJXYiKTsKQEAgLTQ4Niw5ICs1NDAsMzYgQEAKICAgfQogfQogCit2b2lkIGVtaXRfYmFubmVyKEZJTEUgKmYpIHsKKyAgUHJpbnRmKGYsICIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKyAgUHJpbnRmKGYsICIgKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFNXSUcgKGh0dHA6Ly93d3cuc3dpZy5vcmcpLlxuIik7CisgIFByaW50ZihmLCAiICogVmVyc2lvbjogJXNcbiIsIFNXSUdfVkVSU0lPTik7CisgIFByaW50ZihmLCAiICpcbiIpOworICBQcmludGYoZiwgIiAqIERvIG5vdCBtYWtlIGNoYW5nZXMgdG8gdGhpcyBmaWxlIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmctLW1vZGlmeVxuIik7CisgIFByaW50ZihmLCAiICogdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgaW5zdGVhZC5cbiIpOworICBQcmludGYoZiwgIiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiIpOworfQorCiB2b2lkIEpBVkE6OmVtaXRfY2xhc3NkZWYoKSB7Ci0gIGlmKCFjbGFzc2RlZl9lbWl0dGVkKQotICAgIFByaW50ZihmX2phdmEsICJwdWJsaWMgY2xhc3MgJXMge1xuIiwgbW9kdWxlKTsKKyAgaWYoIWNsYXNzZGVmX2VtaXR0ZWQpIHsKKyAgICBlbWl0X2Jhbm5lcihmX2phdmEpOworICAgIGlmKG1vZHVsZV9pbXBvcnQpCisgICAgICBQcmludGYoZl9qYXZhLCAiJXNcbiIsIG1vZHVsZV9pbXBvcnQpOworCisgICAgaWYgKG1vZHVsZV9jbGFzc19tb2RpZmllcnMgJiYgKkNoYXIobW9kdWxlX2NsYXNzX21vZGlmaWVycykpCisgICAgICBQcmludGYoZl9qYXZhLCAiJXMiLCBtb2R1bGVfY2xhc3NfbW9kaWZpZXJzKTsKKyAgICBlbHNlCisgICAgICBQcmludGYoZl9qYXZhLCAicHVibGljIik7CisgICAgUHJpbnRmKGZfamF2YSwgIiBjbGFzcyAlcyAiLCBtb2R1bGUpOworCisgICAgaWYgKG1vZHVsZV9iYXNlY2xhc3MpCisgICAgICBQcmludHYoZl9qYXZhLCBtb2R1bGVfYmFzZWNsYXNzLCAwKTsKKyAgICBpZiAobW9kdWxlX2ludGVyZmFjZXMpCisgICAgICBQcmludHYoZl9qYXZhLCBtb2R1bGVfaW50ZXJmYWNlcywgIiAiLCAwKTsKKyAgICBQcmludGYoZl9qYXZhLCAie1xuIiwgbW9kdWxlKTsKKyAgICBpZiAobW9kdWxlX2V4dHJhX2NvZGUpCisgICAgICBQcmludHYoZl9qYXZhLCBtb2R1bGVfZXh0cmFfY29kZSwgMCk7CisgIH0KICAgY2xhc3NkZWZfZW1pdHRlZCA9IDE7CiB9CiAKQEAgLTUwMiwxMiArNTgzLDMzIEBACiB7CiAgIGlmKCFjbGFzc2RlZl9lbWl0dGVkKSBlbWl0X2NsYXNzZGVmKCk7CiAKKyAgLy8gV3JpdGUgdGhlIGVudW0gaW5pdGlhbGlzYXRpb24gY29kZSBpbiBhIHN0YXRpYyBibG9jay4KKyAgLy8gVGhlc2UgYXJlIGFsbCB0aGUgZW51bXMgZGVmaW5lZCBpbiB0aGUgZ2xvYmFsIGMgY29udGV4dC4KKyAgaWYgKHN0cmxlbihDaGFyKGphdmFfZW51bV9jb2RlKSkgIT0gMCApCisgICAgUHJpbnR2KGZfamF2YSwgIiAgc3RhdGljIHtcbiAgLy8gSW5pdGlhbGlzZSBqYXZhIGNvbnN0YW50cyBmcm9tIGMvYysrIGVudW1zXG4iLCBqYXZhX2VudW1fY29kZSwgIiAgfVxuIiwwKTsKKwogICAvLyBGaW5pc2ggb2ZmIHRoZSBqYXZhIGNsYXNzCiAgIFByaW50ZihmX2phdmEsICJ9XG4iKTsKICAgZmNsb3NlKGZfamF2YSk7CiAKICAgaWYodXNlUmVnaXN0ZXJOYXRpdmVzKQogCXdyaXRlUmVnaXN0ZXJOYXRpdmVzKCk7CisKKyAgRGVsZXRlKHNoYWRvd19jbGFzc2VzKTsgc2hhZG93X2NsYXNzZXMgPSBOVUxMOworICBEZWxldGUoc2hhZG93X2NsYXNzZGVmKTsgc2hhZG93X2NsYXNzZGVmID0gTlVMTDsKKyAgRGVsZXRlKHJlZ2lzdGVyTmF0aXZlc0xpc3QpOyByZWdpc3Rlck5hdGl2ZXNMaXN0ID0gTlVMTDsKKyAgRGVsZXRlKGphdmFfZW51bV9jb2RlKTsgamF2YV9lbnVtX2NvZGUgPSBOVUxMOworICBEZWxldGUobW9kdWxlX2V4dHJhX2NvZGUpOyBtb2R1bGVfZXh0cmFfY29kZSA9IE5VTEw7CisgIERlbGV0ZShtb2R1bGVfYmFzZWNsYXNzKTsgbW9kdWxlX2Jhc2VjbGFzcyA9IE5VTEw7CisgIERlbGV0ZShtb2R1bGVfaW50ZXJmYWNlcyk7IG1vZHVsZV9pbnRlcmZhY2VzID0gTlVMTDsKKyAgRGVsZXRlKG1vZHVsZV9jbGFzc19tb2RpZmllcnMpOyBtb2R1bGVfY2xhc3NfbW9kaWZpZXJzID0gTlVMTDsKKyAgRGVsZXRlKGFsbF9zaGFkb3dfZXh0cmFfY29kZSk7IGFsbF9zaGFkb3dfZXh0cmFfY29kZSA9IE5VTEw7CisgIERlbGV0ZShhbGxfc2hhZG93X2ltcG9ydCk7IGFsbF9zaGFkb3dfaW1wb3J0ID0gTlVMTDsKKyAgRGVsZXRlKGFsbF9zaGFkb3dfYmFzZWNsYXNzKTsgYWxsX3NoYWRvd19iYXNlY2xhc3MgPSBOVUxMOworICBEZWxldGUoYWxsX3NoYWRvd19pbnRlcmZhY2VzKTsgYWxsX3NoYWRvd19pbnRlcmZhY2VzID0gTlVMTDsKKyAgRGVsZXRlKGFsbF9zaGFkb3dfY2xhc3NfbW9kaWZpZXJzKTsgYWxsX3NoYWRvd19jbGFzc19tb2RpZmllcnMgPSBOVUxMOworICBEZWxldGUobW9kdWxlX2ltcG9ydCk7IG1vZHVsZV9pbXBvcnQgPSBOVUxMOworICBEZWxldGUobW9kdWxlX21ldGhvZF9tb2RpZmllcnMpOyBtb2R1bGVfbWV0aG9kX21vZGlmaWVycyA9IE5VTEw7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTUxOSwzMSArNjIxLDU0IEBACiB2b2lkIEpBVkE6OmNyZWF0ZV9jb21tYW5kKGNoYXIgKmNuYW1lLCBjaGFyICppbmFtZSkgewogfQogCi12b2lkIEpBVkE6OmFkZF9uYXRpdmUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0LCBQYXJtTGlzdCAqbCkgewordm9pZCBKQVZBOjphZGRfbmF0aXZlKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdCwgUGFybUxpc3QgKmwpIHsKICAgbmF0aXZlX2Z1bmMgPSAxOwogICBjcmVhdGVfZnVuY3Rpb24obmFtZSwgaW5hbWUsIHQsIGwpOwogICBuYXRpdmVfZnVuYyA9IDA7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIEpBVkE6OmNyZWF0ZV9mdW5jdGlvbihjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKmQsIFBhcm1MaXN0ICpsKQorLy8gSkFWQTo6Y3JlYXRlX2Z1bmN0aW9uKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqZCwgUGFybUxpc3QgKmwpCiAvLwogLy8gQ3JlYXRlIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gYW5kIHJlZ2lzdGVyIGl0IHdpdGggdGhlIGludGVycHJldGVyLgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi12b2lkIEpBVkE6OmNyZWF0ZV9mdW5jdGlvbihjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKnQsIFBhcm1MaXN0ICpsKQordm9pZCBKQVZBOjpjcmVhdGVfZnVuY3Rpb24oY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0LCBQYXJtTGlzdCAqbCkKIHsKLSAgY2hhciAgICAgICAgICAgc291cmNlWzI1Nl0sIHRhcmdldFsyNTZdOworICBjaGFyICAgICAgc291cmNlWzI1Nl0sIHRhcmdldFsyNTZdOwogICBjaGFyCSAJKnRtOwotICBET0hTdHJpbmcgICAgICpjbGVhbnVwLCAqb3V0YXJnLCAqYm9keTsKICAgY2hhcgkJKmphdmFSZXR1cm5TaWduYXR1cmUgPSAwOwotICBET0hTdHJpbmcgICAgICpqYXZhUGFyYW1ldGVyU2lnbmF0dXJlOwotICBQYXJtICpwOworICBTdHJpbmcgICAgKmpuaXJldHR5cGUgPSBOZXdTdHJpbmcoIiIpOworICBTdHJpbmcgICAgKmphdmFyZXR0eXBlID0gTmV3U3RyaW5nKCIiKTsKKyAgU3RyaW5nICAgICpjbGVhbnVwID0gTmV3U3RyaW5nKCIiKTsKKyAgU3RyaW5nICAgICpvdXRhcmcgPSBOZXdTdHJpbmcoIiIpOworICBTdHJpbmcgICAgKmJvZHkgPSBOZXdTdHJpbmcoIiIpOworICBTdHJpbmcgICAgKmphdmFQYXJhbWV0ZXJTaWduYXR1cmUgPSBOZXdTdHJpbmcoIiIpOwogCi0gIGNsZWFudXAgPSBOZXdTdHJpbmcoIiIpOwotICBvdXRhcmcgPSBOZXdTdHJpbmcoIiIpOwotICBib2R5ID0gTmV3U3RyaW5nKCIiKTsKLSAgamF2YVBhcmFtZXRlclNpZ25hdHVyZSA9IE5ld1N0cmluZygiIik7CisgIC8qIAorICBHZW5lcmF0ZSB0aGUgamF2YSBjbGFzcyB3cmFwcGVyIGZ1bmN0aW9uIGllIHRoZSBqYXZhIHNoYWRvdyBjbGFzcy4gT25seSBkb25lIGZvciBwdWJsaWMKKyAgbWVtYmVyIHZhcmlhYmxlcy4gVGhhdCBpcyB0aGlzIGdlbmVyYXRlcyB0aGUgZ2V0dGVycy9zZXR0ZXJzIGZvciBtZW1iZXIgdmFyaWFibGVzLgorICAqLworICBpZihzaGFkb3cgJiYgd3JhcHBpbmdfbWVtYmVyICYmICFlbnVtX2ZsYWcpIHsKKyAgICBTdHJpbmcgKm1lbWJlcl9mdW5jdGlvbl9uYW1lID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTdHJpbmcgKmphdmFfZnVuY3Rpb25fbmFtZSA9IE5ld1N0cmluZyhpbmFtZSk7CisgICAgaWYoc3RyY21wKGluYW1lLCBDaGFyKFN3aWdfbmFtZV9zZXQoU3dpZ19uYW1lX21lbWJlcihzaGFkb3dfY2xhc3NuYW1lLCBzaGFkb3dfdmFyaWFibGVfbmFtZSkpKSkgPT0gMCkKKyAgICAgIFByaW50ZihtZW1iZXJfZnVuY3Rpb25fbmFtZSwic2V0Iik7CisgICAgZWxzZSBQcmludGYobWVtYmVyX2Z1bmN0aW9uX25hbWUsImdldCIpOworICAgIFB1dGModG91cHBlcigoaW50KSAqc2hhZG93X3ZhcmlhYmxlX25hbWUpLCBtZW1iZXJfZnVuY3Rpb25fbmFtZSk7CisgICAgUHJpbnRmKG1lbWJlcl9mdW5jdGlvbl9uYW1lLCAiJXMiLCBzaGFkb3dfdmFyaWFibGVfbmFtZSsxKTsKKworICAgIGNwcF9mdW5jKENoYXIobWVtYmVyX2Z1bmN0aW9uX25hbWUpLCB0LCBsLCBqYXZhX2Z1bmN0aW9uX25hbWUpOworCisgICAgRGVsZXRlKGphdmFfZnVuY3Rpb25fbmFtZSk7CisgICAgRGVsZXRlKG1lbWJlcl9mdW5jdGlvbl9uYW1lKTsKKyAgfQorCisgIC8qCisgIFRoZSByZXN0IG9mIGNyZWF0ZV9mdW5jdGlvbiBkZWFscyB3aXRoIGdlbmVyYXRpbmcgdGhlIGphdmEgd3JhcHBlciBmdW5jdGlvbiAodGhhdCB3cmFwcworICBhIGMvYysrIGZ1bmN0aW9uKSBhbmQgZ2VuZXJhdGluZyB0aGUgSk5JIGMgY29kZS4gRWFjaCBqYXZhIHdyYXBwZXIgZnVuY3Rpb24gaGFzIGEgCisgIG1hdGNoaW5nIEpOSSBjIGZ1bmN0aW9uIGNhbGwuCisgICovCiAKICAgLy8gQSBuZXcgd3JhcHBlciBmdW5jdGlvbiBvYmplY3QKICAgV3JhcHBlciAqZiA9IE5ld1dyYXBwZXIoKTsKQEAgLTU1MSwxNSArNjc2LDE0IEBACiAgIGlmKCFjbGFzc2RlZl9lbWl0dGVkKSBlbWl0X2NsYXNzZGVmKCk7CiAKICAgLy8gTWFrZSBhIHdyYXBwZXIgbmFtZSBmb3IgdGhpcyBmdW5jdGlvbgotCiAgIGNoYXIgKmpuaW5hbWUgPSBtYWtlVmFsaWRKbmlOYW1lKGluYW1lKTsKLSAgY2hhciAqd25hbWUgPSBTd2lnX25hbWVfd3JhcHBlcihqbmluYW1lKTsKKyAgU3RyaW5nICp3bmFtZSA9IFN3aWdfbmFtZV93cmFwcGVyKGpuaW5hbWUpOworCiAgIGZyZWUoam5pbmFtZSk7CiAKLSAgY2hhciAqam5pcmV0dHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqbmkiLCB0eXBlbWFwX2xhbmcsIHQsIGluYW1lKTsKLSAgaWYoIWpuaXJldHR5cGUpIGpuaXJldHR5cGUgPSBTd2lnVGNUb0puaVR5cGUodCwgMSk7Ci0gIGNoYXIgKmphdmFyZXR0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImp0eXBlIiwgdHlwZW1hcF9sYW5nLCB0LCBpbmFtZSk7Ci0gIGlmKCFqYXZhcmV0dHlwZSkgamF2YXJldHR5cGUgPSBTd2lnVGNUb0phdmFUeXBlKHQsIDEsIDApOworICAvKiBHZXQgdGhlIGphdmEgYW5kIGpuaSB0eXBlcyBvZiB0aGUgcmV0dXJuICovCisgIFN3aWdUb0pOSVR5cGUodCwgaW5hbWUsIGpuaXJldHR5cGUpOworICBTd2lnVG9KYXZhVHlwZSh0LCBpbmFtZSwgamF2YXJldHR5cGUsIDApOwogCiAgIC8vIElmIGR1bXBpbmcgdGhlIHJlZ2lzdGVyTmF0aXZlIG91dHB1dHMsIHN0b3JlIHRoZSBtZXRob2QgcmV0dXJuIHR5cGUKICAgLy8gc2lnbmF0dXJlCkBAIC01NjcsMjUgKzY5MSwxNSBAQAogICAgICAgamF2YVJldHVyblNpZ25hdHVyZSA9IEphdmFNZXRob2RTaWduYXR1cmUodCwgMSwgMCk7CiAgIH0KIAotICBpZiAoRGF0YVR5cGVfdHlwZSh0KSAhPSBUX1ZPSUQpIHsKLQkgV3JhcHBlcl9hZGRfbG9jYWx2KGYsIl9qcmVzdWx0Iiwgam5pcmV0dHlwZSwgIl9qcmVzdWx0ID0gMCIsMCk7CisgIGlmIChTd2lnVHlwZV90eXBlKHQpICE9IFRfVk9JRCkgeworCSBXcmFwcGVyX2FkZF9sb2NhbHYoZiwianJlc3VsdCIsIGpuaXJldHR5cGUsICJqcmVzdWx0ID0gMCIsMCk7CiAgIH0KIAotICBQcmludGYoZl9qYXZhLCAiICAlcyAiLCBtZXRob2RfbW9kaWZpZXJzKTsKKyAgUHJpbnRmKGZfamF2YSwgIiAgJXMgIiwgbW9kdWxlX21ldGhvZF9tb2RpZmllcnMpOwogICBQcmludGYoZl9qYXZhLCAibmF0aXZlICVzICVzKCIsIGphdmFyZXR0eXBlLCBpbmFtZSk7Ci0gIGlmKHNoYWRvdyAmJiBtZW1iZXJfZnVuYykgewotICAgIERPSFN0cmluZyAqbWVtYmVyX25hbWUgPSBOZXdTdHJpbmcoIiIpOwotICAgIGlmKHN0cmNtcChpbmFtZSwgU3dpZ19uYW1lX3NldChTd2lnX25hbWVfbWVtYmVyKHNoYWRvd19jbGFzc25hbWUsIHNoYWRvd19uYW1lKSkpID09IDApCi0gICAgICBQcmludGYobWVtYmVyX25hbWUsInNldCIpOwotICAgIGVsc2UgUHJpbnRmKG1lbWJlcl9uYW1lLCJnZXQiKTsKLSAgICBQdXRjKHRvdXBwZXIoKGludCkgKnNoYWRvd19uYW1lKSwgbWVtYmVyX25hbWUpOwotICAgIFByaW50ZihtZW1iZXJfbmFtZSwgIiVzIiwgc2hhZG93X25hbWUrMSk7Ci0gICAgUHJpbnRmKGZfc2hhZG93LCAiICBwdWJsaWMgJXMgJXMoIiwgamF2YXJldHR5cGUsIG1lbWJlcl9uYW1lKTsKLSAgICBQcmludHYoYm9keSwgdGFiNCwgInJldHVybiAiLCBtb2R1bGUsICIuIiwgaW5hbWUsICIoX3NlbGYiLCAwKTsKLSAgICBEZWxldGUobWVtYmVyX25hbWUpOwotICB9CiAKLSAgaWYoIWpuaWMpIFByaW50ZihmLT5kZWYsImV4dGVybiBcIkNcIlxuIik7CisgIGlmKCFqbmljKSAKKyAgICBQcmludHYoZi0+ZGVmLCAiZXh0ZXJuIFwiQ1wie1xuIiwgMCk7CiAgIFByaW50dihmLT5kZWYsICJKTklFWFBPUlQgIiwgam5pcmV0dHlwZSwgIiBKTklDQUxMICIsIHduYW1lLCAiKEpOSUVudiAqamVudiwgamNsYXNzIGpjbHMiLCAwKTsKIAogICAvLyBFbWl0IGFsbCBvZiB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBob2xkaW5nIGFyZ3VtZW50cy4KQEAgLTU5NCwxOTggKzcwOCwyODggQEAKICAgaW50IGdlbmNvbW1hID0gMDsKIAogICAvLyBOb3cgd2FsayB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyIGxpc3QgYW5kIGdlbmVyYXRlIGNvZGUgdG8gZ2V0IGFyZ3VtZW50cwotICBwID0gbDsKKyAgUGFybSAqcCA9IGw7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGNvdW50IDsgaSsrLCBwID0gR2V0bmV4dChwKSkgewotICAgIERhdGFUeXBlICpwdCA9IEdldHR5cGUocCk7Ci0gICAgY2hhciAgICAgKnBuID0gR2V0bmFtZShwKTsKLSAgICBjaGFyICp0YXJnZXRfY29weSA9IE5VTEw7Ci0gICAgY2hhciAqdGFyZ2V0X2xlbmd0aCA9IE5VTEw7Ci0gICAgY2hhciAqbG9jYWxfaSA9IE5VTEw7CisgICAgU3dpZ1R5cGUgKnB0ID0gR2V0dHlwZShwKTsKKyAgICBTdHJpbmcgICAqcG4gPSBHZXRuYW1lKHApOworICAgIFN0cmluZyAgICpqYXZhcGFyYW10eXBlID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTdHJpbmcgICAqam5pX3BhcmFtX3R5cGUgPSBOZXdTdHJpbmcoIiIpOwogCiAgICAgLy8gUHJvZHVjZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc291cmNlIGFuZCB0YXJnZXQgYXJndW1lbnRzCi0gICAgc3ByaW50Zihzb3VyY2UsImphcmclZCIsaSk7Ci0gICAgc3ByaW50Zih0YXJnZXQsIiVzIiwgR2V0bG5hbWUocCkpOworICAgIHNwcmludGYodGFyZ2V0LCIlcyIsIENoYXIoR2V0bG5hbWUocCkpKTsKKyAgICBzcHJpbnRmKHNvdXJjZSwiaiVzIiwgdGFyZ2V0KTsKIAotICAgIGNoYXIgKmpuaXR5cGUgPSBKYXZhVHlwZUZyb21UeXBlbWFwKChjaGFyKikiam5pIiwgdHlwZW1hcF9sYW5nLCBwdCwgcG4pOwotICAgIGlmKCFqbml0eXBlKSBqbml0eXBlID0gU3dpZ1RjVG9KbmlUeXBlKHB0LCAwKTsKLSAgICBjaGFyICpqdHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqdHlwZSIsIHR5cGVtYXBfbGFuZywgcHQsIHBuKTsKLSAgICBpZighanR5cGUpIGp0eXBlID0gU3dpZ1RjVG9KYXZhVHlwZShwdCwgMCwgMCk7CiAgICAgaWYgKHVzZVJlZ2lzdGVyTmF0aXZlcykgewogICAgICAgUHJpbnR2KGphdmFQYXJhbWV0ZXJTaWduYXR1cmUsIEphdmFNZXRob2RTaWduYXR1cmUocHQsIDAsIDApLCAwKTsKICAgICB9CiAKICAgICBpZihHZXRpZ25vcmUocCkpIGNvbnRpbnVlOwogCi0gICAgICAvLyBBZGQgdG8gamF2YSBmdW5jdGlvbiBoZWFkZXIKLSAgICAgIGlmKHNoYWRvdyAmJiBtZW1iZXJfZnVuYykgewotICAgICAgICBpZihpID4gMCkgewotICAgICAgICAgIGlmKGk+MSkgUHJpbnRmKGZfc2hhZG93LCAiLCAiKTsKLSAgICAgICAgICBQcmludGYoZl9zaGFkb3csICIlcyAlcyIsIGp0eXBlLCBzb3VyY2UpOwotCSAgUHJpbnR2KGJvZHksIiwgIiwgc291cmNlLCAwKTsKLSAgICAgICAgfQotICAgICAgfQorICAgIC8qIEdldCB0aGUgamF2YSBhbmQgam5pIHR5cGVzIG9mIHRoZSBwYXJhbWV0ZXIgKi8KKyAgICBTd2lnVG9KTklUeXBlKHB0LCBwbiwgam5pX3BhcmFtX3R5cGUpOworICAgIFN3aWdUb0phdmFUeXBlKHB0LCBwbiwgamF2YXBhcmFtdHlwZSwgMCk7IAogCisgICAgLyogQWRkIHRvIGphdmEgZnVuY3Rpb24gaGVhZGVyICovCiAgICAgICBpZihnZW5jb21tYSkgUHJpbnRmKGZfamF2YSwgIiwgIik7Ci0gICAgICBQcmludGYoZl9qYXZhLCAiJXMgJXMiLCBqdHlwZSwgc291cmNlKTsKKyAgICAgIFByaW50ZihmX2phdmEsICIlcyAlcyIsIGphdmFwYXJhbXR5cGUsIHNvdXJjZSk7CiAKICAgICAgIGdlbmNvbW1hID0gMTsKIAogICAgICAgLy8gQWRkIHRvIEpuaSBmdW5jdGlvbiBoZWFkZXIKLSAgICAgIFByaW50dihmLT5kZWYsICIsICIsIGpuaXR5cGUsICIgIiwgc291cmNlLCAwKTsKKyAgICAgIFByaW50dihmLT5kZWYsICIsICIsIGpuaV9wYXJhbV90eXBlLCAiICIsIHNvdXJjZSwgMCk7CiAKICAgICAgIC8vIEdldCB0eXBlbWFwIGZvciB0aGlzIGFyZ3VtZW50Ci0gICAgICB0bSA9IHR5cGVtYXBfbG9va3VwKChjaGFyKikiaW4iLHR5cGVtYXBfbGFuZyxwdCxwbixzb3VyY2UsdGFyZ2V0LGYpOworICAgICAgdG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikiaW4iLHB0LHBuLHNvdXJjZSx0YXJnZXQsZik7CiAgICAgICBpZiAodG0pIHsKLQlQcmludGYoZi0+Y29kZSwiJXNcbiIsIHRtKTsKLQlSZXBsYWNlKGYtPmNvZGUsIiRhcmciLHNvdXJjZSwgRE9IX1JFUExBQ0VfQU5ZKTsKKyAgICAgICAgUHJpbnRmKGYtPmNvZGUsIiVzXG4iLCB0bSk7CisgICAgICAgIFJlcGxhY2UoZi0+Y29kZSwiJGFyZyIsc291cmNlLCBET0hfUkVQTEFDRV9BTlkpOwogICAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYoIURhdGFUeXBlX2lzX3BvaW50ZXIocHQpKQotCSAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsIHRhcmdldCwgIiA9ICgiLCBEYXRhVHlwZV9sc3RyKHB0LDApLCAiKSAiLCBzb3VyY2UsICI7XG4iLCAwKTsKLSAgICAgICAgZWxzZSBpZigoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVk9JRCAmJiAoRGF0YVR5cGVfaXNfcG9pbnRlcihwdCkgPT0gMSkpIHx8Ci0JICAgICAgICAoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVVNFUiAmJiAoRGF0YVR5cGVfaXNfcG9pbnRlcihwdCkgPT0gMSkpKSB7Ci0gICAgICAgICAgICBEYXRhVHlwZV9hZGRfcG9pbnRlcihwdCk7Ci0JICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCB0YXJnZXQsICIgPSAqKCIsIERhdGFUeXBlX2xzdHIocHQsMCksICIpJiIsIHNvdXJjZSwgIjtcbiIsIDApOwotICAgICAgICAgICAgRGF0YVR5cGVfZGVsX3BvaW50ZXIocHQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGlmKERhdGFUeXBlX3R5cGUocHQpID09IFRfU1RSSU5HKSB7Ci0JICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCB0YXJnZXQsICIgPSAoIiwgc291cmNlLCAiKSA/IChjaGFyICopIiwgSk5JQ0FMTCgoY2hhciopIkdldFN0cmluZ1VURkNoYXJzIiksIHNvdXJjZSwgIiwgMCkgOiBOVUxMO1xuIiwgMCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNoYXIgKnNjYWxhclR5cGUgPSBTd2lnVGNUb0puaVNjYWxhclR5cGUocHQpOworICAgICAgICBzd2l0Y2goU3dpZ1R5cGVfdHlwZShwdCkpIHsKKyAgICAgICAgY2FzZSBUX0JPT0w6CisgICAgICAgIGNhc2UgVF9DSEFSOgorICAgICAgICBjYXNlIFRfU0NIQVI6CisgICAgICAgIGNhc2UgVF9VQ0hBUjoKKyAgICAgICAgY2FzZSBUX1NIT1JUOgorICAgICAgICBjYXNlIFRfVVNIT1JUOgorICAgICAgICBjYXNlIFRfSU5UOgorICAgICAgICBjYXNlIFRfVUlOVDoKKyAgICAgICAgY2FzZSBUX0xPTkc6CisgICAgICAgIGNhc2UgVF9VTE9ORzoKKyAgICAgICAgY2FzZSBUX0ZMT0FUOgorICAgICAgICBjYXNlIFRfRE9VQkxFOgorICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCB0YXJnZXQsICIgPSAoIiwgU3dpZ1R5cGVfbHN0cihwdCwwKSwgIikgIiwgc291cmNlLCAiO1xuIiwgMCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9TVFJJTkc6CisgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsIHRhcmdldCwgIiA9ICgiLCBzb3VyY2UsICIpID8gKGNoYXIgKikiLCBKTklDQUxMKChjaGFyKikiR2V0U3RyaW5nVVRGQ2hhcnMiKSwgc291cmNlLCAiLCAwKSA6IE5VTEw7XG4iLCAwKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUX1ZPSUQ6CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9VU0VSOgorICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCB0YXJnZXQsICIgPSAqKCIsIFN3aWdUeXBlX2xzdHIocHQsMCksICIqKikmIiwgc291cmNlLCAiO1xuIiwgMCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9QT0lOVEVSOgorICAgICAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCB0YXJnZXQsICIgPSAqKCIsIFN3aWdUeXBlX2xzdHIocHQsMCksICIqKSYiLCBzb3VyY2UsICI7XG4iLCAwKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUX0FSUkFZOgorICAgICAgICAgIHsKKyAgICAgICAgICBTdHJpbmcgKmpuaV9hcnJheV90eXBlID0gTmV3U3RyaW5nKCIiKTsKKyAgICAgICAgICBTd2lnVHlwZSAqYXJyYXlfdHlwZSA9IGdldF9hcnJheV90eXBlKHB0KTsKKyAgICAgICAgICBjaGFyICpqYXZhX2FycmF5X3R5cGUgPSBTd2lnVG9KYXZhQXJyYXlUeXBlKGFycmF5X3R5cGUpOworICAgICAgICAgIFN3aWdUb0pOSVR5cGUoYXJyYXlfdHlwZSwgcG4sIGpuaV9hcnJheV90eXBlKTsKIAotICAgICAgICAgICAgRGF0YVR5cGVfZGVsX3BvaW50ZXIocHQpOwotICAgICAgICAgICAgY29uc3QgY2hhciAqYmFzaWNfam5pdHlwZSA9IChEYXRhVHlwZV9pc19wb2ludGVyKHB0KSA+IDApID8gImpsb25nIiA6IFN3aWdUY1RvSm5pVHlwZShwdCwgMCk7Ci0gICAgICAgICAgICBjaGFyICpjdHlwZSA9IERhdGFUeXBlX2xzdHIocHQsMCk7Ci0JICAgIGlmKHNjYWxhclR5cGUgPT0gTlVMTCB8fCBiYXNpY19qbml0eXBlID09IE5VTEwpIHsKLQkgICAgICBQcmludGYoc3RkZXJyLCAiXCclc1wnIGRvZXMgbm90IGhhdmUgYSBpbi9qbmkgdHlwZW1hcCwgYW5kIGlzIG5vdCBhIGJhc2ljIHR5cGUuXG4iLCBjdHlwZSk7Ci0gICAgCSAgICAgIFNXSUdfZXhpdCgxKTsKLQkgICAgfTsKLSAgICAgICAgICAgIERhdGFUeXBlX2FkZF9wb2ludGVyKHB0KTsKKyAgICAgICAgICBTdHJpbmcgKmN0eXBlID0gU3dpZ1R5cGVfbHN0cihhcnJheV90eXBlLCAwKTsKIAotCSAgICBET0hTdHJpbmcgKmJhc2ljX2puaXB0cnR5cGUgPSBOZXdTdHJpbmdmKCIlcyoiLGJhc2ljX2puaXR5cGUpOwotICAgICAgICAgICAgRE9IU3RyaW5nICpzb3VyY2VfbGVuZ3RoID0gTmV3U3RyaW5nZigiJXMlcykiLCBKTklDQUxMKChjaGFyKikiR2V0QXJyYXlMZW5ndGgiKSwgc291cmNlKTsKKyAgICAgICAgICBTdHJpbmcgKmJhc2ljX2puaXB0cnR5cGUgPSBOZXdTdHJpbmdmKCIlcyoiLCBqbmlfYXJyYXlfdHlwZSk7CisgICAgICAgICAgU3RyaW5nICpzb3VyY2VfbGVuZ3RoID0gTmV3U3RyaW5nZigiJXMlcykiLCBKTklDQUxMKChjaGFyKikiR2V0QXJyYXlMZW5ndGgiKSwgc291cmNlKTsKKyAgICAgICAgICBTdHJpbmcgKmNfYXJyYXkgPSBOZXdTdHJpbmdmKCIlc19jYXJyYXkiLCBzb3VyY2UpOworICAgICAgICAgIFN0cmluZyAqYXJyYXlfbGVuID0gTmV3U3RyaW5nZigiJXNfbGVuIiwgc291cmNlKTsKKyAgICAgICAgICBTdHJpbmcgKmdldF9hcnJheV9mdW5jID0gTmV3U3RyaW5nZigiR2V0JXNBcnJheUVsZW1lbnRzIiwgamF2YV9hcnJheV90eXBlKTsKIAotICAgICAgICAgICAgdGFyZ2V0X2NvcHkgPSBTd2lnX2NvcHlfc3RyaW5nKFdyYXBwZXJfbmV3X2xvY2FsdihmLHRhcmdldCxDaGFyKGJhc2ljX2puaXB0cnR5cGUpLCB0YXJnZXQsIDApKTsKLSAgICAgICAgICAgIHRhcmdldF9sZW5ndGggPSBTd2lnX2NvcHlfc3RyaW5nKFdyYXBwZXJfbmV3X2xvY2FsdihmLHRhcmdldCwianNpemUiLCB0YXJnZXQsICI9IiwgQ2hhcihzb3VyY2VfbGVuZ3RoKSwwKSk7Ci0gICAgICAgICAgICBpZihsb2NhbF9pID09IE5VTEwpIGxvY2FsX2kgPSBTd2lnX2NvcHlfc3RyaW5nKFdyYXBwZXJfbmV3X2xvY2FsKGYsImkiLCJpbnQgaSIpKTsKKyAgICAgICAgICBXcmFwcGVyX2FkZF9sb2NhbHYoZiwgImkiLCAiaW50IiwgImkiLCAwKTsgLy8gT25seSBnZXRzIGFkZGVkIG9uY2UgaWYgY2FsbGVkIG1vcmUgdGhhbiBvbmNlCisgICAgICAgICAgV3JhcHBlcl9hZGRfbG9jYWx2KGYsIGNfYXJyYXksIGJhc2ljX2puaXB0cnR5cGUsIGNfYXJyYXksIDApOworICAgICAgICAgIFdyYXBwZXJfYWRkX2xvY2FsdihmLCBhcnJheV9sZW4sICJqc2l6ZSIsIGFycmF5X2xlbiwgIj0gIiwgc291cmNlX2xlbmd0aCwgMCk7CiAKLQkgICAgRE9IU3RyaW5nICpzY2FsYXJGdW5jID0gTmV3U3RyaW5nZigiR2V0JXNBcnJheUVsZW1lbnRzIixzY2FsYXJUeXBlKTsKKyAgICAgICAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgY19hcnJheSwgIiA9ICIsIEpOSUNBTEwoZ2V0X2FycmF5X2Z1bmMpLCBzb3VyY2UsICIsIDApO1xuIiwgMCk7CisgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsIHRhcmdldCwgIiA9ICgiLCBTd2lnVHlwZV9sc3RyKHB0LCAwKSwgIikgbWFsbG9jKCIsIGFycmF5X2xlbiwgIiAqIHNpemVvZigiLCBjdHlwZSwgIikpO1xuIiwgMCk7CisgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICJmb3IoaT0wOyBpPCIsIGFycmF5X2xlbiwgIjsgaSsrKVxuIiwgMCk7CiAKLQkgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsIHRhcmdldF9jb3B5LCAiID0gIiwgSk5JQ0FMTChzY2FsYXJGdW5jKSwgc291cmNlLCAiLCAwKTtcbiIsIDApOwotCSAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgdGFyZ2V0LCAiID0gKCIsIERhdGFUeXBlX2xzdHIocHQsMCksICIpIG1hbGxvYygiLCB0YXJnZXRfbGVuZ3RoLCAiICogc2l6ZW9mKCIsIGN0eXBlLCAiKSk7XG4iLCAwKTsKLQkgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICJmb3IoaT0wOyBpPCIsIHRhcmdldF9sZW5ndGgsICI7IGkrKylcbiIsIDApOwotCSAgICBpZihEYXRhVHlwZV9pc19wb2ludGVyKHB0KSA+IDEpIHsKLQkgICAgICBQcmludHYoZi0+Y29kZSwgdGFiOCwgdGFyZ2V0LCAiW2ldID0gKigiLCBEYXRhVHlwZV9sc3RyKHB0LDApLCAiKSYiLCB0YXJnZXRfY29weSwgIltpXTtcbiIsIDApOwotCSAgICB9IGVsc2UgewotICAgICAgICAgICAgICBEYXRhVHlwZV9kZWxfcG9pbnRlcihwdCk7Ci0JICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjgsIHRhcmdldCwgIltpXSA9ICgiLCBEYXRhVHlwZV9sc3RyKHB0LDApLCAiKSIsIHRhcmdldF9jb3B5LCAiW2ldO1xuIiwgMCk7Ci0JICAgICAgRGF0YVR5cGVfYWRkX3BvaW50ZXIocHQpOwotCSAgICB9Ci0JICAgIERlbGV0ZShzY2FsYXJGdW5jKTsKLQkgICAgRGVsZXRlKHNvdXJjZV9sZW5ndGgpOwotCSAgICBEZWxldGUoYmFzaWNfam5pcHRydHlwZSk7CisgICAgICAgICAgICBzd2l0Y2goU3dpZ1R5cGVfdHlwZShhcnJheV90eXBlKSkgeworICAgICAgICAgICAgY2FzZSBUX1VTRVI6CisgICAgICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI4LCB0YXJnZXQsICJbaV0gPSAqKigiLCBjdHlwZSwgIioqKSYiLCBjX2FycmF5LCAiW2ldO1xuIiwgMCk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI4LCB0YXJnZXQsICJbaV0gPSAqKCIsIGN0eXBlLCAiKikmIiwgY19hcnJheSwgIltpXTtcbiIsIDApOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI4LCB0YXJnZXQsICJbaV0gPSAoIiwgY3R5cGUsICIpIiwgY19hcnJheSwgIltpXTtcbiIsIDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBEZWxldGUoam5pX2FycmF5X3R5cGUpOworICAgICAgICAgIERlbGV0ZShiYXNpY19qbmlwdHJ0eXBlKTsKKyAgICAgICAgICBEZWxldGUoc291cmNlX2xlbmd0aCk7CisgICAgICAgICAgRGVsZXRlKGNfYXJyYXkpOworICAgICAgICAgIERlbGV0ZShhcnJheV9sZW4pOworICAgICAgICAgIERlbGV0ZShnZXRfYXJyYXlfZnVuYyk7CiAgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gRXJyb3I6IFVua25vd24gdHlwZWNvZGUgZm9yIHR5cGUgJXNcbiIsIGlucHV0X2ZpbGUsbGluZV9udW1iZXIsU3dpZ1R5cGVfc3RyKHB0LDApKTsKKyAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgfQogCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZXJlIHdhcyBhbnkgc29ydCBvZiBhIGNvbnN0YWludCB0eXBlbWFwCi0gICAgaWYgKCh0bSA9IHR5cGVtYXBfbG9va3VwKChjaGFyKikiY2hlY2siLHR5cGVtYXBfbGFuZyxwdCxwbixzb3VyY2UsdGFyZ2V0KSkpIHsKKyAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCgoY2hhciopImNoZWNrIixwdCxwbixzb3VyY2UsdGFyZ2V0LE5VTEwpKSkgewogICAgICAgLy8gWWVwLiAgVXNlIGl0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKICAgICAgIFByaW50ZihmLT5jb2RlLCIlc1xuIiwgdG0pOwogICAgICAgUmVwbGFjZShmLT5jb2RlLCIkYXJnIixzb3VyY2UsIERPSF9SRVBMQUNFX0FOWSk7CiAgICAgfQogCiAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGFueSBjbGVhbnVwIGNvZGUgKHNhdmUgaXQgZm9yIGxhdGVyKQotICAgIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgoY2hhciopImZyZWVhcmciLHR5cGVtYXBfbGFuZyxwdCxwbixzb3VyY2UsdGFyZ2V0KSkpIHsKKyAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCgoY2hhciopImZyZWVhcmciLHB0LHBuLHNvdXJjZSx0YXJnZXQsTlVMTCkpKSB7CiAgICAgICAvLyBZZXAuICBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdAogICAgICAgUHJpbnRmKGNsZWFudXAsIiVzXG4iLCB0bSk7CiAgICAgICBSZXBsYWNlKGNsZWFudXAsIiRhcmciLHNvdXJjZSwgRE9IX1JFUExBQ0VfQU5ZKTsKICAgICB9CiAKLSAgICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJhcmdvdXQiLHR5cGVtYXBfbGFuZyxwdCxwbixzb3VyY2UsdGFyZ2V0KSkpIHsKKyAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCgoY2hhciopImFyZ291dCIscHQscG4sc291cmNlLHRhcmdldCxOVUxMKSkpIHsKICAgICAgIC8vIFllcC4gIFVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CiAgICAgICBQcmludGYob3V0YXJnLCIlc1xuIiwgdG0pOwogICAgICAgUmVwbGFjZShvdXRhcmcsIiRhcmciLHNvdXJjZSwgRE9IX1JFUExBQ0VfQU5ZKTsKICAgICB9IGVsc2UgewotICAgICAgIC8vIGlmKHB0LT5pc19wb2ludGVyICYmIHB0LT50eXBlICE9IFRfVVNFUiAmJiAgcHQtPnR5cGUgIT0gVF9WT0lEKSB7Ci0gICAgICAgaWYoRGF0YVR5cGVfaXNfcG9pbnRlcihwdCkpIHsKLSAgICAgICAgIGlmKERhdGFUeXBlX3R5cGUocHQpID09IFRfU1RSSU5HKSB7Ci0JICAgUHJpbnR2KG91dGFyZywgdGFiNCwgImlmKCIsIHRhcmdldCwiKSAiLCBKTklDQUxMKChjaGFyKikiUmVsZWFzZVN0cmluZ1VURkNoYXJzIiksIHNvdXJjZSwgIiwgIiwgdGFyZ2V0LCAiKTtcbiIsIDApOwotICAgICAgICAgfSBlbHNlIGlmKCgoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVk9JRCkgJiYgRGF0YVR5cGVfaXNfcG9pbnRlcihwdCkgPT0gMSkgfHwKLSAgICAgICAgICAgICAgICAoKERhdGFUeXBlX0dldHR5cGVjb2RlKHB0KSA9PSBUX1VTRVIpICYmIERhdGFUeXBlX2lzX3BvaW50ZXIocHQpID09IDEpKSB7Ci0JICAgLy8gbm90aGluZyB0byBkbwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNoYXIgKnNjYWxhclR5cGUgPSBTd2lnVGNUb0puaVNjYWxhclR5cGUocHQpOworICAgICAgICBzd2l0Y2goU3dpZ1R5cGVfdHlwZShwdCkpIHsKKyAgICAgICAgY2FzZSBUX0JPT0w6CisgICAgICAgIGNhc2UgVF9DSEFSOgorICAgICAgICBjYXNlIFRfU0NIQVI6CisgICAgICAgIGNhc2UgVF9VQ0hBUjoKKyAgICAgICAgY2FzZSBUX1NIT1JUOgorICAgICAgICBjYXNlIFRfVVNIT1JUOgorICAgICAgICBjYXNlIFRfSU5UOgorICAgICAgICBjYXNlIFRfVUlOVDoKKyAgICAgICAgY2FzZSBUX0xPTkc6CisgICAgICAgIGNhc2UgVF9VTE9ORzoKKyAgICAgICAgY2FzZSBUX0ZMT0FUOgorICAgICAgICBjYXNlIFRfRE9VQkxFOgorICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUX1NUUklORzoKKyAgICAgICAgICBQcmludHYob3V0YXJnLCB0YWI0LCAiaWYoIiwgdGFyZ2V0LCIpICIsIEpOSUNBTEwoKGNoYXIqKSJSZWxlYXNlU3RyaW5nVVRGQ2hhcnMiKSwgc291cmNlLCAiLCAiLCB0YXJnZXQsICIpO1xuIiwgMCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9WT0lEOgorICAgICAgICBjYXNlIFRfVVNFUjoKKyAgICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICAgIGNhc2UgVF9SRUZFUkVOQ0U6CisgICAgICAgICAgLy8gbm90aGluZyB0byBkbworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRfQVJSQVk6CisgICAgICAgICAgeworICAgICAgICAgIFN0cmluZyAqam5pX2FycmF5X3R5cGUgPSBOZXdTdHJpbmcoIiIpOworICAgICAgICAgIFN3aWdUeXBlICphcnJheV90eXBlID0gZ2V0X2FycmF5X3R5cGUocHQpOworICAgICAgICAgIGNoYXIgKmphdmFfYXJyYXlfdHlwZSA9IFN3aWdUb0phdmFBcnJheVR5cGUoYXJyYXlfdHlwZSk7CisgICAgICAgICAgU3dpZ1RvSk5JVHlwZShhcnJheV90eXBlLCBwbiwgam5pX2FycmF5X3R5cGUpOwogCi0gICAgICAgICAgICBEYXRhVHlwZV9kZWxfcG9pbnRlcihwdCk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyICpiYXNpY19qbml0eXBlID0gKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpID4gMCkgPyAiamxvbmciIDogU3dpZ1RjVG9KbmlUeXBlKHB0LCAwKTsKLSAgICAgICAgICAgIGNoYXIgKmN0eXBlID0gRGF0YVR5cGVfbHN0cihwdCwwKTsKLQkgICAgaWYoc2NhbGFyVHlwZSA9PSBOVUxMIHx8IGJhc2ljX2puaXR5cGUgPT0gTlVMTCkgewotCSAgICAgIFByaW50ZihzdGRlcnIsICJcJyVzXCcgZG9lcyBub3QgaGF2ZSBhIGFyZ291dC9qbmkgdHlwZW1hcCwgYW5kIGlzIG5vdCBhIGJhc2ljIHR5cGUuXG4iLCBjdHlwZSk7Ci0gICAgCSAgICAgIFNXSUdfZXhpdCgxKTsKLQkgICAgfTsKLSAgICAgICAgICAgIERhdGFUeXBlX2FkZF9wb2ludGVyKHB0KTsKLQkgICAgUHJpbnRmKG91dGFyZywgIiAgICBmb3IoaT0wOyBpPCAlZDsgaSsrKVxuIiwgdGFyZ2V0X2xlbmd0aCk7Ci0JICAgIGlmKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpID4gMSkgewotCSAgICAgIFByaW50dihvdXRhcmcsIHRhYjgsICIqKCIsIERhdGFUeXBlX2xzdHIocHQsMCksICIpJiIsIHRhcmdldF9jb3B5LCAiW2ldID0gIiwgIHRhcmdldCwgIltpXTtcbiIsIDApOwotCSAgICB9IGVsc2UgewotCSAgICAgIFByaW50dihvdXRhcmcsIHRhYjgsIHRhcmdldF9jb3B5LCAiW2ldID0gKCIsIGJhc2ljX2puaXR5cGUsICIpICIsIHRhcmdldCwgIltpXTtcbiIsIDApOwotCSAgICB9Ci0JICAgIERPSFN0cmluZyAqc2NhbGFyRnVuYyA9IE5ld1N0cmluZ2YoIlJlbGVhc2Ulc0FycmF5RWxlbWVudHMiLHNjYWxhclR5cGUpOwotCSAgICBQcmludHYob3V0YXJnLCB0YWI0LCBKTklDQUxMKHNjYWxhckZ1bmMpLCBzb3VyY2UsICIsICIsIHRhcmdldF9jb3B5LCAiLCAwKTtcbiIsIDApOwotCSAgICBQcmludHYob3V0YXJnLCB0YWI0LCAiZnJlZSgiLCB0YXJnZXQsICIpO1xuIiwgMCk7Ci0JICAgIERlbGV0ZShzY2FsYXJGdW5jKTsKLSAgICAgICAgICAgIGZyZWUodGFyZ2V0X2NvcHkpOwotICAgICAgICAgICAgZnJlZSh0YXJnZXRfbGVuZ3RoKTsKLSAgICAgICAgICAgIGZyZWUobG9jYWxfaSk7Ci0gICAgICAgICB9Ci0gICAgICAgfQorICAgICAgICAgIFN0cmluZyAqY19hcnJheSA9IE5ld1N0cmluZ2YoIiVzX2NhcnJheSIsIHNvdXJjZSk7CisgICAgICAgICAgU3RyaW5nICpyZWxlYXNlX2FycmF5X2Z1bmMgPSBOZXdTdHJpbmdmKCJSZWxlYXNlJXNBcnJheUVsZW1lbnRzIiwgamF2YV9hcnJheV90eXBlKTsKKworICAgICAgICAgIFByaW50dihvdXRhcmcsIHRhYjQsIEpOSUNBTEwocmVsZWFzZV9hcnJheV9mdW5jKSwgc291cmNlLCAiLCAiLCBjX2FycmF5LCAiLCAwKTtcbiIsIDApOworICAgICAgICAgIFByaW50dihvdXRhcmcsIHRhYjQsICJmcmVlKCIsIHRhcmdldCwgIik7XG4iLCAwKTsKKworICAgICAgICAgIERlbGV0ZShqbmlfYXJyYXlfdHlwZSk7CisgICAgICAgICAgRGVsZXRlKGNfYXJyYXkpOworICAgICAgICAgIERlbGV0ZShyZWxlYXNlX2FycmF5X2Z1bmMpOworICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIEVycm9yOiBVbmtub3duIHR5cGVjb2RlIGZvciB0eXBlICVzXG4iLCBpbnB1dF9maWxlLGxpbmVfbnVtYmVyLFN3aWdUeXBlX3N0cihwdCwwKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICBEZWxldGUoamF2YXBhcmFtdHlwZSk7CisgICAgRGVsZXRlKGpuaV9wYXJhbV90eXBlKTsKICAgICB9Ci0gIH0KIAogICBQcmludGYoZl9qYXZhLCAiKTtcbiIpOwotICBpZihzaGFkb3cgJiYgbWVtYmVyX2Z1bmMpIHsKLSAgICBQcmludGYoZl9zaGFkb3csICIpIHtcbiIpOwotICAgIFByaW50Zihib2R5LCIpIik7Ci0gICAgUHJpbnRmKGZfc2hhZG93LCAiJXM7XG4gIH1cblxuIixib2R5KTsKLSAgfQogICBQcmludGYoZi0+ZGVmLCIpIHsiKTsKIAogICAvLyBOb3cgd3JpdGUgY29kZSB0byBtYWtlIHRoZSBmdW5jdGlvbiBjYWxsCiAKICAgaWYoIW5hdGl2ZV9mdW5jKQogCWVtaXRfZnVuY19jYWxsKG5hbWUsdCxsLGYpOwotCiAgIC8vIFJldHVybiB2YWx1ZSBpZiBuZWNlc3NhcnkKIAotICBpZigoRGF0YVR5cGVfdHlwZSh0KSAhPSBUX1ZPSUQpICYmICFuYXRpdmVfZnVuYykgewotICAgIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgoY2hhciopIm91dCIsdHlwZW1hcF9sYW5nLHQsaW5hbWUsKGNoYXIqKSJyZXN1bHQiLChjaGFyKikiX2pyZXN1bHQiKSkpIHsKKyAgaWYoKFN3aWdUeXBlX3R5cGUodCkgIT0gVF9WT0lEKSAmJiAhbmF0aXZlX2Z1bmMpIHsKKyAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCgoY2hhciopIm91dCIsdCxpbmFtZSwoY2hhciopInJlc3VsdCIsKGNoYXIqKSJqcmVzdWx0IixOVUxMKSkpIHsKICAgICAgIFByaW50ZihmLT5jb2RlLCIlc1xuIiwgdG0pOwogICAgIH0gZWxzZSB7Ci0gICAgICBpZihEYXRhVHlwZV90eXBlKHQpID09IFRfVVNFUikgeyAvKiByZXR1cm4gYnkgdmFsdWUgKi8KLQlEYXRhVHlwZV9hZGRfcG9pbnRlcih0KTsKLQlEYXRhVHlwZV9hZGRfcG9pbnRlcih0KTsKLQkgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICIqKCIsIERhdGFUeXBlX2xzdHIodCwwKSwgIikmX2pyZXN1bHQgPSByZXN1bHQ7XG4iLCAwKTsKLQkgICAgRGF0YVR5cGVfZGVsX3BvaW50ZXIodCk7Ci0JICAgIERhdGFUeXBlX2RlbF9wb2ludGVyKHQpOwotICAgICAgfSBlbHNlIGlmKERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPT0gMCAmJiAoRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkgIT0gVF9VU0VSKSkgewotCVByaW50dihmLT5jb2RlLCB0YWI0LCAiX2pyZXN1bHQgPSAoIiwgam5pcmV0dHlwZSwgIikgcmVzdWx0O1xuIiwgMCk7Ci0gICAgICB9IGVsc2UgaWYoKChEYXRhVHlwZV9HZXR0eXBlY29kZSh0KSA9PSBUX1ZPSUQpICYmIERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPT0gMSkgfHwKLQkgICAgICAgICgoRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkgPT0gVF9VU0VSKSAmJiBEYXRhVHlwZV9pc19wb2ludGVyKHQpID09IDEpKSB7Ci0JICAgIERhdGFUeXBlX2FkZF9wb2ludGVyKHQpOwotCSAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgIiooIiwgRGF0YVR5cGVfbHN0cih0LDApLCAiKSZfanJlc3VsdCA9IHJlc3VsdDtcbiIsIDApOwotCSAgICBEYXRhVHlwZV9kZWxfcG9pbnRlcih0KTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmKERhdGFUeXBlX3R5cGUodCkgPT0gVF9TVFJJTkcpIHsKLQkgIFByaW50dihmLT5jb2RlLCB0YWI0LCAiaWYocmVzdWx0ICE9IE5VTEwpXG4iLCAwKTsKLSAgICAgICAgICBQcmludHYoZi0+Y29kZSwgdGFiOCwgIl9qcmVzdWx0ID0gKGpzdHJpbmcpIiwgSk5JQ0FMTCgoY2hhciopIk5ld1N0cmluZ1VURiIpLCAgInJlc3VsdCk7XG4iLCAwKTsKLSAgICAgICAgfSBlbHNlIHsKLQkgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gV2FybmluZzogbm8gcmV0dXJuIHR5cGVtYXAgZm9yIGRhdGF0eXBlICVzXG4iLCBpbnB1dF9maWxlLGxpbmVfbnVtYmVyLERhdGFUeXBlX3N0cih0LDApKTsKLQkgICAgRGF0YVR5cGVfYWRkX3BvaW50ZXIodCk7Ci0JICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCAiKigiLCBEYXRhVHlwZV9sc3RyKHQsMCksICIpJl9qcmVzdWx0ID0gcmVzdWx0O1xuIiwgMCk7Ci0JICAgIERhdGFUeXBlX2RlbF9wb2ludGVyKHQpOworICAgICAgICBzd2l0Y2goU3dpZ1R5cGVfdHlwZSh0KSkgeworICAgICAgICBjYXNlIFRfQk9PTDoKKyAgICAgICAgY2FzZSBUX0NIQVI6CisgICAgICAgIGNhc2UgVF9TQ0hBUjoKKyAgICAgICAgY2FzZSBUX1VDSEFSOgorICAgICAgICBjYXNlIFRfU0hPUlQ6CisgICAgICAgIGNhc2UgVF9VU0hPUlQ6CisgICAgICAgIGNhc2UgVF9JTlQ6CisgICAgICAgIGNhc2UgVF9VSU5UOgorICAgICAgICBjYXNlIFRfTE9ORzoKKyAgICAgICAgY2FzZSBUX1VMT05HOgorICAgICAgICBjYXNlIFRfRkxPQVQ6CisgICAgICAgIGNhc2UgVF9ET1VCTEU6CisgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICJqcmVzdWx0ID0gKCIsIGpuaXJldHR5cGUsICIpIHJlc3VsdDtcbiIsIDApOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRfU1RSSU5HOgorICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCAiaWYocmVzdWx0ICE9IE5VTEwpXG4iLCAwKTsKKyAgICAgICAgICBQcmludHYoZi0+Y29kZSwgdGFiOCwgImpyZXN1bHQgPSAoanN0cmluZykiLCBKTklDQUxMKChjaGFyKikiTmV3U3RyaW5nVVRGIiksICAicmVzdWx0KTtcbiIsIDApOworICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRfVk9JRDoKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUX1VTRVI6CisgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICIqKCIsIFN3aWdUeXBlX2xzdHIodCwwKSwgIioqKSZqcmVzdWx0ID0gcmVzdWx0O1xuIiwgMCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9QT0lOVEVSOgorICAgICAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCAiKigiLCBTd2lnVHlwZV9sc3RyKHQsMCksICIqKSZqcmVzdWx0ID0gcmVzdWx0O1xuIiwgMCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVF9BUlJBWToKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSByZXR1cm4gdmFsdWVzIHRoYXQgYXJlIG9uZSBkaW1lbnNpb24gYXJyYXlzIAorICAgICAgICAgICAgLy8gVG9kbzogV2hhdCBhYm91dCB2b2lkIHBvaW50ZXJzPworICAgICAgICAgICAgLy8gVG9kbzogQ2hlY2sgb24gYXJyYXkgc2l6ZSAtIGNoZWNrIHVzZXIgaGFzIHBhc3NlZCBjb3JyZWN0IHNpemUgaW4KKworICAgICAgICAgICAgY29uc3QgaW50IGRpbV9ubyA9IDA7IC8vIERpbWVuc2lvbiBudW1iZXIgKDAgPT0gMXN0ICkgLSBjdXJyZW50bHkgb25seSAxIHN1cHBvcnRlZAorICAgICAgICAgICAgU3RyaW5nICpqbml0eXBlX3B0ciA9IE5ld1N0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgKmpuaWNhbGxfbmV3ID0gTmV3U3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyAqam5pY2FsbF9nZXQgPSBOZXdTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nICpqbmljYWxsX3JlbGVhc2UgPSBOZXdTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nICpqbmlfYXJyYXlfdHlwZSA9IE5ld1N0cmluZygiIik7CisgICAgICAgICAgICBTd2lnVHlwZSAqYXJyYXlfdHlwZSA9IGdldF9hcnJheV90eXBlKHQpOworICAgICAgICAgICAgY2hhciAqamF2YV9hcnJheV90eXBlID0gU3dpZ1RvSmF2YUFycmF5VHlwZShhcnJheV90eXBlKTsKKyAgICAgICAgICAgIFN3aWdUb0pOSVR5cGUoYXJyYXlfdHlwZSwgaW5hbWUsIGpuaV9hcnJheV90eXBlKTsKKworICAgICAgICAgICAgUHJpbnR2KGpuaXR5cGVfcHRyLCBqbmlfYXJyYXlfdHlwZSwgIioiLCAwKTsKKyAgICAgICAgICAgIFdyYXBwZXJfYWRkX2xvY2FsdihmLCAiam5pdHlwZV9wdHIiLCBqbml0eXBlX3B0ciwgImpuaXR5cGVfcHRyIiwgIj0gMCIsIDApOworICAgICAgICAgICAgV3JhcHBlcl9hZGRfbG9jYWx2KGYsICJrIiwgImludCIsICJrIiwgMCk7CisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBhIGphdmEgYXJyYXkgZm9yIHJldHVybiB0byBKYXZhIHN1YnN5c3RlbSwgZWcgZm9yIGludCBhcnJheQorICAgICAgICAgICAgLy8gU3RyaW5nIGpyZXN1bHQgPSAoKmplbnYpLT5OZXdJbnRBcnJheShqZW52LCBhcnJheV9zaXplKTsgCisgICAgICAgICAgICBQcmludHYoam5pY2FsbF9uZXcsICJOZXciLCBqYXZhX2FycmF5X3R5cGUsICJBcnJheSIsIDApOworICAgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICJqcmVzdWx0ID0gIiwgSk5JQ0FMTCgoY2hhciopam5pY2FsbF9uZXcpLCBTd2lnVHlwZV9hcnJheV9nZXRkaW0odCwgZGltX25vKSwgIik7XG4iLCAwKTsKKworICAgICAgICAgICAgLy8gR2V0IHRoZSBjIG1lbW9yeSBwb2ludGVyIHRvIHRoZSBqYXZhIGFycmF5LCBlZyBmb3IgaW50IGFycmF5CisgICAgICAgICAgICAvLyBqbml0eXBlX3B0ciA9ICgqamVudiktPkdldEludEFycmF5RWxlbWVudHMoamVudiwganJlc3VsdCwgMCk7CisgICAgICAgICAgICBQcmludHYoam5pY2FsbF9nZXQsICJHZXQiLCBqYXZhX2FycmF5X3R5cGUsICJBcnJheUVsZW1lbnRzIiwgMCk7CisgICAgICAgICAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgImpuaXR5cGVfcHRyID0gIiwgSk5JQ0FMTCgoY2hhciopam5pY2FsbF9nZXQpLCAianJlc3VsdCwgMCk7XG4iLCAwKTsKKworICAgICAgICAgICAgLy8gUG9wdWxhdGUgdGhlIGphdmEgYXJyYXkgZnJvbSB0aGUgYyBhcnJheQorICAgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsICJmb3IgKGs9MDsgazwiLCBTd2lnVHlwZV9hcnJheV9nZXRkaW0odCwgZGltX25vKSwgIjsgaysrKVxuIiwgMCk7CisgICAgICAgICAgICBzd2l0Y2goU3dpZ1R5cGVfdHlwZShhcnJheV90eXBlKSkgeworICAgICAgICAgICAgY2FzZSBUX1VTRVI6CisgICAgICAgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjgsICIqKCIsIFN3aWdUeXBlX2xzdHIoYXJyYXlfdHlwZSwgMCksICIqKikmam5pdHlwZV9wdHJba10gPSAmcmVzdWx0W2tdO1xuIiwgMCk7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICAgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjgsICIqKCIsIFN3aWdUeXBlX2xzdHIoYXJyYXlfdHlwZSwgMCksICIqKSZqbml0eXBlX3B0cltrXSA9IHJlc3VsdFtrXTtcbiIsIDApOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjgsICJqbml0eXBlX3B0cltrXSA9ICgiLCBqbmlfYXJyYXlfdHlwZSwgIilyZXN1bHRba107XG4iLCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gUmVsZWFzZSByZWZlcmVuY2UgdG8gdGhlIGFycmF5IHNvIHRoYXQgaXQgbWF5IGJlIGdhcmJhZ2UgY29sbGVjdGVkIGluIHRoZSBmdXR1cmUKKyAgICAgICAgICAgIC8vICgqamVudiktPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzKGplbnYsIGpyZXN1bHQsIF9hcmcwMCwgMCk7CisgICAgICAgICAgICBQcmludHYoam5pY2FsbF9yZWxlYXNlLCAiUmVsZWFzZSIsIGphdmFfYXJyYXlfdHlwZSwgIkFycmF5RWxlbWVudHMiLCAwKTsKKyAgICAgICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCBKTklDQUxMKChjaGFyKilqbmljYWxsX3JlbGVhc2UpLCAianJlc3VsdCwgIiwgImpuaXR5cGVfcHRyIiwgIiwgMCk7XG4iLCAwKTsKKyAgICAgICAgICAgIERlbGV0ZShqbml0eXBlX3B0cik7CisgICAgICAgICAgICBEZWxldGUoam5pY2FsbF9uZXcpOworICAgICAgICAgICAgRGVsZXRlKGpuaWNhbGxfZ2V0KTsKKyAgICAgICAgICAgIERlbGV0ZShqbmljYWxsX3JlbGVhc2UpOworICAgICAgICAgICAgRGVsZXRlKGpuaV9hcnJheV90eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIEVycm9yOiBVbmtub3duIHR5cGVjb2RlIGZvciB0eXBlICVzXG4iLCBpbnB1dF9maWxlLGxpbmVfbnVtYmVyLFN3aWdUeXBlX3N0cih0LDApKTsKKyAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgfQotICAgIH0KICAgfQogCiAgIC8vIER1bXAgYXJndW1lbnQgb3V0cHV0IGNvZGU7CkBAIC03OTcsMjAgKzEwMDEsMjIgQEAKICAgLy8gTG9vayBmb3IgYW55IHJlbWFpbmluZyBjbGVhbnVwCiAKICAgaWYgKE5ld09iamVjdCkgewotICAgIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgoY2hhciopIm5ld2ZyZWUiLHR5cGVtYXBfbGFuZyx0LGluYW1lLChjaGFyKikicmVzdWx0IiwoY2hhciopIiIpKSkgeworICAgIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikibmV3ZnJlZSIsdCxpbmFtZSwoY2hhciopInJlc3VsdCIsKGNoYXIqKSIiLE5VTEwpKSkgewogICAgICAgUHJpbnRmKGYtPmNvZGUsIiVzXG4iLCB0bSk7CiAgICAgfQogICB9CiAKLSAgaWYoKERhdGFUeXBlX3R5cGUodCkgIT0gVF9WT0lEKSAmJiAhbmF0aXZlX2Z1bmMpIHsKLSAgICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJyZXQiLHR5cGVtYXBfbGFuZyx0LGluYW1lLChjaGFyKikicmVzdWx0IiwoY2hhciopIl9qcmVzdWx0IiwgTlVMTCkpKSB7CisgIGlmKChTd2lnVHlwZV90eXBlKHQpICE9IFRfVk9JRCkgJiYgIW5hdGl2ZV9mdW5jKSB7CisgICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJyZXQiLHQsaW5hbWUsKGNoYXIqKSJyZXN1bHQiLChjaGFyKikianJlc3VsdCIsIE5VTEwpKSkgewogICAgICAgUHJpbnRmKGYtPmNvZGUsIiVzXG4iLCB0bSk7CiAgICAgfQogICB9CiAKICAgLy8gV3JhcCB0aGluZ3MgdXAgKGluIGEgbWFubmVyIG9mIHNwZWFraW5nKQotICBpZihEYXRhVHlwZV90eXBlKHQpICE9IFRfVk9JRCkKLSAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgInJldHVybiBfanJlc3VsdDtcbiIsIDApOworICBpZihTd2lnVHlwZV90eXBlKHQpICE9IFRfVk9JRCkKKyAgICBQcmludHYoZi0+Y29kZSwgdGFiNCwgInJldHVybiBqcmVzdWx0O1xuIiwgMCk7CisgIGlmKCFqbmljKQorICAgIFByaW50ZihmLT5jb2RlLCAifSIpOwogICBQcmludGYoZi0+Y29kZSwgIn1cbiIpOwogCiAgIC8vIFN1YnN0aXR1dGUgdGhlIGNsZWFudXAgY29kZSAoc29tZSBleGNlcHRpb24gaGFuZGxlcnMgbGlrZSB0byBoYXZlIHRoaXMpCkBAIC04MzEsNiArMTAzNyw4IEBACiAKICAgfQogCisgIERlbGV0ZShqbmlyZXR0eXBlKTsKKyAgRGVsZXRlKGphdmFyZXR0eXBlKTsKICAgRGVsZXRlKGNsZWFudXApOwogICBEZWxldGUob3V0YXJnKTsKICAgRGVsZXRlKGJvZHkpOwpAQCAtODM5LDEwMyArMTA0NywxNjMgQEAKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIEpBVkE6OmxpbmtfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KQorLy8gSkFWQTo6bGlua192YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnQpCiAvLwogLy8gQ3JlYXRlIGEgSkFWQSBsaW5rIHRvIGEgQyB2YXJpYWJsZS4KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXZvaWQgSkFWQTo6bGlua192YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKnQpCit2b2lkIEpBVkE6OmxpbmtfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0KQogewogICBlbWl0X3NldF9nZXQobmFtZSxpbmFtZSwgdCk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBKQVZBOjpkZWNsYXJlX2NvbnN0KGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBEYXRhVHlwZSAqdHlwZSwgY2hhciAqdmFsdWUpCisvLyBKQVZBOjpkZWNsYXJlX2NvbnN0KGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdHlwZSwgY2hhciAqdmFsdWUpCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotdm9pZCBKQVZBOjpkZWNsYXJlX2NvbnN0KGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBEYXRhVHlwZSAqdHlwZSwgY2hhciAqdmFsdWUpIHsKK3ZvaWQgSkFWQTo6ZGVjbGFyZV9jb25zdChjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnR5cGUsIGNoYXIgKnZhbHVlKSB7CisgIGludCBPbGRTdGF0dXMgPSBTdGF0dXM7CiAgIGNoYXIgKnRtOwogICBGSUxFICpqZmlsZTsKICAgY2hhciAqam5hbWU7CisgIFN0YXR1cyA9IFNUQVRfUkVBRE9OTFk7CisgIFN0cmluZyAqamF2YV90eXBlID0gTmV3U3RyaW5nKCIiKTsKIAogICBpZighY2xhc3NkZWZfZW1pdHRlZCkgZW1pdF9jbGFzc2RlZigpOwogCi0gIGlmKHNoYWRvdyAmJiBtZW1iZXJfZnVuYykgeworICBpZihzaGFkb3cgJiYgd3JhcHBpbmdfbWVtYmVyKSB7CisgICAgaWYoIXNoYWRvd19jbGFzc2RlZl9lbWl0dGVkKSBlbWl0X3NoYWRvd19jbGFzc2RlZigpOwogICAgIGpmaWxlID0gZl9zaGFkb3c7Ci0gICAgam5hbWUgPSBzaGFkb3dfbmFtZTsKKyAgICBqbmFtZSA9IHNoYWRvd192YXJpYWJsZV9uYW1lOwogICB9IGVsc2UgewogICAgIGpmaWxlID0gZl9qYXZhOwogICAgIGpuYW1lID0gbmFtZTsKICAgfQogCi0gIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgoY2hhciopImNvbnN0Iix0eXBlbWFwX2xhbmcsdHlwZSxuYW1lLG5hbWUsaW5hbWUpKSkgewotICAgIERPSFN0cmluZyAqc3RyID0gTmV3U3RyaW5nKHRtKTsKKyAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJjb25zdCIsdHlwZSxuYW1lLG5hbWUsaW5hbWUsTlVMTCkpKSB7CisgICAgU3RyaW5nICpzdHIgPSBOZXdTdHJpbmcodG0pOwogICAgIFJlcGxhY2Uoc3RyLCIkdmFsdWUiLHZhbHVlLCBET0hfUkVQTEFDRV9BTlkpOwogICAgIFByaW50ZihqZmlsZSwiICAlc1xuXG4iLCBzdHIpOwogICAgIERlbGV0ZShzdHIpOwogICB9IGVsc2UgewotICAgIGlmKChEYXRhVHlwZV9pc19wb2ludGVyKHR5cGUpID09IDApKSB7Ci0gICAgICBjaGFyICpqdHlwZSA9IHR5cGVtYXBfbG9va3VwKChjaGFyKikianR5cGUiLCB0eXBlbWFwX2xhbmcsIHR5cGUsIG5hbWUsIG5hbWUsIGluYW1lKTsKLSAgICAgIGlmKCFqdHlwZSkganR5cGUgPSBTd2lnVGNUb0phdmFUeXBlKHR5cGUsIDAsIDApOwotICAgICAgaWYoc3RyY21wKGpuYW1lLCB2YWx1ZSkgPT0gMCB8fCBzdHJzdHIodmFsdWUsIjo6IikgIT0gTlVMTCkgewotICAgICAgICBQcmludGYoc3RkZXJyLCAiaWdub3JpbmcgZW51bSBjb25zdGFudDogJXNcbiIsIGpuYW1lKTsKLSAgICAgIH0gZWxzZQotICAgICAgICBQcmludGYoamZpbGUsICIgIHB1YmxpYyBmaW5hbCBzdGF0aWMgJXMgJXMgPSAlcztcblxuIiwganR5cGUsIGpuYW1lLCB2YWx1ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGlmKERhdGFUeXBlX3R5cGUodHlwZSkgPT0gVF9TVFJJTkcpIHsKLSAgICAgICAgUHJpbnRmKGpmaWxlLCAiICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyAlcyA9IFwiJXNcIjtcblxuIiwgam5hbWUsIHZhbHVlKTsKLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGVtaXRfc2V0X2dldChuYW1lLGluYW1lLCB0eXBlKTsKKyAgICBTd2lnVG9KYXZhVHlwZSh0eXBlLCBpbmFtZSwgamF2YV90eXBlLCBzaGFkb3cgJiYgd3JhcHBpbmdfbWVtYmVyKTsKKyAgICBpZihzdHJjbXAoam5hbWUsIHZhbHVlKSA9PSAwIHx8IHN0cnN0cih2YWx1ZSwiOjoiKSAhPSBOVUxMKSB7CisgICAgICAvKiAKKyAgICAgIFdlIGhhdmUgZm91bmQgYW4gZW51bS4gCisgICAgICBUaGUgZW51bSBpbXBsZW1lbnRhdGlvbiBpcyBkb25lIHVzaW5nIGEgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQKKyAgICAgIGluIEphdmEuIFRoZXkgYXJlIHRoZW4gaW5pdGlhbGlzZWQgdGhyb3VnaCBhIEpOSSBjYWxsIHRvIGMgaW4gYSBKYXZhIHN0YXRpYyBibG9jay4KKyAgICAgICovCisgICAgICBQcmludGYoamZpbGUsICIgIHB1YmxpYyBmaW5hbCBzdGF0aWMgJXMgJXM7XG4iLCBqYXZhX3R5cGUsIGpuYW1lLCB2YWx1ZSk7CisKKyAgICAgIGlmKHNoYWRvdyAmJiB3cmFwcGluZ19tZW1iZXIpIHsKKyAgICAgICAgUHJpbnR2KHNoYWRvd19lbnVtX2NvZGUsIHRhYjQsIGpuYW1lLCAiID0gIiwgbW9kdWxlLCAiLiIsIFN3aWdfbmFtZV9nZXQoaW5hbWUpLCAiKCk7XG4iLCAwKTsKKyAgICAgICAgLyogCisgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMgYSB3b3JrIGFyb3VuZCBmb3IgYW4gYXBwYXJlbnQgYnVnIGluIHRoZSBzd2lnIGNvcmUuCisgICAgICAgIFdoZW4gYW4gZW51bSBpcyBkZWZpbmVkIGluIGEgYysrIGNsYXNzIHRoZSBlbWl0X2Z1bmNfY2FsbCgpIHNob3VsZCAKKyAgICAgICAgb3V0cHV0IENsYXNzTmFtZTo6RW51bU5hbWUsIGJ1dCBpbnN0ZWFkIGl0IG91dHB1dHMgQ2xhc3NOYW1lX0VudW1OYW1lLgorICAgICAgICAqLworICAgICAgICBQcmludHYoZl9oZWFkZXIsICIjZGVmaW5lICIsIGluYW1lLCAiICIsIHZhbHVlLCAiXG4iLCAwKTsKICAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBQcmludHYoamF2YV9lbnVtX2NvZGUsIHRhYjQsIGpuYW1lLCAiID0gIiwgU3dpZ19uYW1lX2dldChpbmFtZSksICIoKTtcbiIsIDApOworICAgICAgfQorICAgICAgZW51bV9mbGFnID0gMTsKKyAgICAgIGVtaXRfc2V0X2dldChuYW1lLGluYW1lLCB0eXBlKTsKKyAgICAgIGVudW1fZmxhZyA9IDA7CisgICAgfSBlbHNlIHsKKyAgICAgIGlmKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9TVFJJTkcpCisgICAgICAgIFByaW50ZihqZmlsZSwgIiAgcHVibGljIGZpbmFsIHN0YXRpYyAlcyAlcyA9IFwiJXNcIjtcbiIsIGphdmFfdHlwZSwgam5hbWUsIHZhbHVlKTsKKyAgICAgIGVsc2UKKyAgICAgICAgUHJpbnRmKGpmaWxlLCAiICBwdWJsaWMgZmluYWwgc3RhdGljICVzICVzID0gJXM7XG4iLCBqYXZhX3R5cGUsIGpuYW1lLCB2YWx1ZSk7CiAgICAgfQogICB9CisgIERlbGV0ZShqYXZhX3R5cGUpOworICBTdGF0dXMgPSBPbGRTdGF0dXM7CiB9Ci0KLXZvaWQgZW1pdF9zaGFkb3dfYmFubmVyKEZJTEUgKmYpIHsKLSAgUHJpbnRmKGYsICIvKlxuIik7Ci0gIFByaW50ZihmLCAiICpcbiIpOwotICBQcmludGYoZiwgIiAqIFRoaXMgZmlsZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgOlxuIik7Ci0gIFByaW50ZihmLCAiICogU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yIChTV0lHKVxuIik7Ci0gIFByaW50ZihmLCAiICogVmVyc2lvbjogJXNcbiIsIFNXSUdfVkVSU0lPTik7Ci0gIFByaW50ZihmLCAiICpcbiIpOwotICBQcmludGYoZiwgIiAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NS0xOTk3XG4iKTsKLSAgUHJpbnRmKGYsICIgKiBUaGUgVW5pdmVyc2l0eSBvZiBVdGFoIGFuZCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLlxuIik7Ci0gIFByaW50ZihmLCAiICogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGluIGFueSBtYW5uZXIgcHJvdmlkZWRcbiIpOwotICBQcmludGYoZiwgIiAqIHRoaXMgbm90aWNlIHJlbWFpbnMgaW50YWN0LlxuIik7Ci0gIFByaW50ZihmLCAiICpcbiIpOwotICBQcmludGYoZiwgIiAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ny0xOTk5XG4iKTsKLSAgUHJpbnRmKGYsICIgKiBIYXJjbyBkZSBIaWxzdGVyLCBIYXJjby5kZS5IaWxzdGVyQEFUQ29uc3VsdGFuY3kubmxcbiIpOwotICBQcmludGYoZiwgIiAqXG4iKTsKLSAgUHJpbnRmKGYsICIgKiBEbyBub3QgbWFrZSBjaGFuZ2VzIHRvIHRoaXMgZmlsZS0tY2hhbmdlcyB3aWxsIGJlIGxvc3QhXG4iKTsKLSAgUHJpbnRmKGYsICIgKlxuIik7Ci0gIFByaW50ZihmLCAiICovXG5cblxuIik7Ci19Ci0KKy8qCitWYWxpZCBQcmFnbWFzOgorVGhlc2UgcHJhZ21hcyBzdGFydCB3aXRoICdhbGxzaGFkb3cnIG9yICdtb2R1bGUnCisgbW9kdWxlYmFzZSAgICAgICAgIC0gYmFzZSAoZXh0ZW5kcykgZm9yIHRoZSBqYXZhIG1vZHVsZSBjbGFzcworIGFsbHNoYWRvd2Jhc2UgICAgICAtIGJhc2UgKGV4dGVuZHMpIGZvciBhbGwgamF2YSBzaGFkb3cgY2xhc3NlcworIG1vZHVsZWNvZGUgICAgICAgICAtIHRleHQgKGphdmEgY29kZSkgaXMgY29waWVkIHZlcmJhdGltIHRvIHRoZSBqYXZhIG1vZHVsZSBjbGFzcworIGFsbHNoYWRvd2NvZGUgICAgICAtIHRleHQgKGphdmEgY29kZSkgaXMgY29waWVkIHZlcmJhdGltIHRvIGFsbCBqYXZhIHNoYWRvdyBjbGFzc2VzCisgbW9kdWxlY2xhc3Ntb2RpZmllcnMgICAgIC0gY2xhc3MgbW9kaWZpZXJzIGZvciB0aGUgbW9kdWxlIGNsYXNzCisgYWxsc2hhZG93Y2xhc3Ntb2RpZmllcnMgIC0gY2xhc3MgbW9kaWZpZXJzIGZvciBhbGwgc2hhZG93IGNsYXNzZXMKKyBtb2R1bGVpbXBvcnQgICAgICAgLSBpbXBvcnQgc3RhdGVtZW50IGdlbmVyYXRpb24gZm9yIHRoZSBqYXZhIG1vZHVsZSBjbGFzcworIGFsbHNoYWRvd2ltcG9ydCAgICAtIGltcG9ydCBzdGF0ZW1lbnQgZ2VuZXJhdGlvbiBmb3IgYWxsIGphdmEgc2hhZG93IGNsYXNzZXMKKyBtb2R1bGVpbnRlcmZhY2UgICAgLSBpbnRlcmZhY2UgKGltcGxlbWVudHMpIGZvciB0aGUgbW9kdWxlIGNsYXNzCisgYWxsc2hhZG93aW50ZXJmYWNlIC0gaW50ZXJmYWNlIChpbXBsZW1lbnRzKSBmb3IgYWxsIHNoYWRvdyBjbGFzc2VzCisgbW9kdWxlbWV0aG9kbW9kaWZpZXJzICAgIC0gcmVwbGFjZXMgdGhlIGdlbmVyYXRlZCBuYXRpdmUgY2FsbHMnIGRlZmF1bHQgbW9kaWZpZXJzCisqLwogdm9pZCBKQVZBOjpwcmFnbWEoY2hhciAqbGFuZywgY2hhciAqY29kZSwgY2hhciAqdmFsdWUpIHsKICAgaWYoc3RyY21wKGxhbmcsICJqYXZhIikgIT0gMCkgcmV0dXJuOwogCi0gIERPSFN0cmluZyAqcyA9IE5ld1N0cmluZyh2YWx1ZSk7Ci0gIFJlcGxhY2UocywiXFxcIiIsICJcIiIsIERPSF9SRVBMQUNFX0FOWSk7Ci0gIGlmKHN0cmNtcChjb2RlLCAiaW1wb3J0IikgPT0gMCkgewotICAgIGppbXBvcnQgPSBTd2lnX2NvcHlfc3RyaW5nKENoYXIocykpOwotICAgIFByaW50ZihmX2phdmEsICIvLyBwcmFnbWFcbmltcG9ydCAlcztcblxuIiwgamltcG9ydCk7Ci0gIH0gZWxzZSBpZihzdHJjbXAoY29kZSwgIm1vZHVsZSIpID09IDApIHsKLSAgICBpZighY2xhc3NkZWZfZW1pdHRlZCkgZW1pdF9jbGFzc2RlZigpOwotICAgIFByaW50ZihmX2phdmEsICIvLyBwcmFnbWFcbiIpOwotICAgIFByaW50ZihmX2phdmEsICIlcyIsIHMpOwotICAgIFByaW50ZihmX2phdmEsICJcblxuIik7Ci0gIH0gZWxzZSBpZihzdHJjbXAoY29kZSwgInNoYWRvdyIpID09IDApIHsKLSAgICBpZihzaGFkb3cgJiYgZl9zaGFkb3cpIHsKLSAgICAgIFByaW50ZihmX3NoYWRvdywgIi8vIHByYWdtYVxuIik7Ci0gICAgICBQcmludGYoZl9zaGFkb3csICIlcyIsIHMpOwotICAgICAgUHJpbnRmKGZfc2hhZG93LCAiXG5cbiIpOwotICAgIH0KLSAgfSBlbHNlIGlmKHN0cmNtcChjb2RlLCAibW9kaWZpZXJzIikgPT0gMCkgewotICAgIG1ldGhvZF9tb2RpZmllcnMgPSBTd2lnX2NvcHlfc3RyaW5nKHZhbHVlKTsKLSAgfSBlbHNlIHsKLSAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFVucmVjb2duaXplZCBwcmFnbWEuXG4iLCBpbnB1dF9maWxlLGxpbmVfbnVtYmVyKTsKKyAgU3RyaW5nICpzdHJ2YWx1ZSA9IE5ld1N0cmluZyh2YWx1ZSk7CisgIFJlcGxhY2Uoc3RydmFsdWUsIlxcXCIiLCAiXCIiLCBET0hfUkVQTEFDRV9BTlkpOworCisgIGlmKHN0cmNtcChjb2RlLCAibW9kdWxlaW1wb3J0IikgPT0gMCkgeworICAgIFByaW50Zihtb2R1bGVfaW1wb3J0LCAiaW1wb3J0ICVzO1xuIiwgc3RydmFsdWUpOworICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAiYWxsc2hhZG93aW1wb3J0IikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBhbGxfc2hhZG93X2ltcG9ydCkKKyAgICAgIFByaW50ZihhbGxfc2hhZG93X2ltcG9ydCwgImltcG9ydCAlcztcbiIsIHN0cnZhbHVlKTsKKyAgfSAKKyAgZWxzZSBpZihzdHJjbXAoY29kZSwgImltcG9ydCIpID09IDApIHsKKyAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIElnbm9yZWQ6IERlcHJlY2F0ZWQgcHJhZ21hLiBQbGVhc2UgcmVwbGFjZSB3aXRoIG1vZHVsZWltcG9ydCwgc2hhZG93aW1wb3J0IGFuZC9vciBhbGxzaGFkb3dpbXBvcnQgcHJhZ21hcy5cbiIsIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKICAgfQotICBEZWxldGUocyk7CisgIGVsc2UgaWYoc3RyY21wKGNvZGUsICJtb2R1bGVjb2RlIikgPT0gMCB8fCBzdHJjbXAoY29kZSwgIm1vZHVsZSIpID09IDApIHsKKyAgICBpZihzdHJjbXAoY29kZSwgIm1vZHVsZSIpID09IDApCisgICAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFNvb24gdG8gYmUgZGVwcmVjYXRlZCBwcmFnbWEuIFBsZWFzZSByZXBsYWNlIHdpdGggbW9kdWxlY29kZSBwcmFnbWEuXG4iLCBpbnB1dF9maWxlLCBsaW5lX251bWJlcik7CisgICAgUHJpbnRmKG1vZHVsZV9leHRyYV9jb2RlLCAiJXNcbiIsIHN0cnZhbHVlKTsKKyAgfSAKKyAgZWxzZSBpZihzdHJjbXAoY29kZSwgImFsbHNoYWRvd2NvZGUiKSA9PSAwIHx8IHN0cmNtcChjb2RlLCAic2hhZG93IikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBhbGxfc2hhZG93X2V4dHJhX2NvZGUpIHsKKyAgICAgIGlmKHN0cmNtcChjb2RlLCAic2hhZG93IikgPT0gMCkKKyAgICAgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBTb29uIHRvIGJlIGRlcHJlY2F0ZWQgcHJhZ21hLiBQbGVhc2UgcmVwbGFjZSB3aXRoIGFsbHNoYWRvd2NvZGUgcHJhZ21hLlxuIiwgaW5wdXRfZmlsZSwgbGluZV9udW1iZXIpOworICAgICAgUHJpbnRmKGFsbF9zaGFkb3dfZXh0cmFfY29kZSwgIiVzXG4iLCBzdHJ2YWx1ZSk7CisgICAgfQorICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAibW9kdWxlYmFzZSIpID09IDApIHsKKyAgICBpZihzaGFkb3cgJiYgbW9kdWxlX2Jhc2VjbGFzcykKKyAgICAgIFByaW50Zihtb2R1bGVfYmFzZWNsYXNzLCAiZXh0ZW5kcyAlcyAiLCBzdHJ2YWx1ZSk7CisgIH0gCisgIGVsc2UgaWYoc3RyY21wKGNvZGUsICJhbGxzaGFkb3diYXNlIikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBhbGxfc2hhZG93X2Jhc2VjbGFzcykKKyAgICAgIFByaW50ZihhbGxfc2hhZG93X2Jhc2VjbGFzcywgImV4dGVuZHMgJXMgIiwgc3RydmFsdWUpOworICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAibW9kdWxlaW50ZXJmYWNlIikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBtb2R1bGVfaW50ZXJmYWNlcykKKyAgICAgIGlmICghKkNoYXIobW9kdWxlX2ludGVyZmFjZXMpKQorICAgICAgICBQcmludGYobW9kdWxlX2ludGVyZmFjZXMsICJpbXBsZW1lbnRzICVzIiwgc3RydmFsdWUpOworICAgICAgZWxzZQorICAgICAgICBQcmludGYobW9kdWxlX2ludGVyZmFjZXMsICIsICVzIiwgc3RydmFsdWUpOworICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAiYWxsc2hhZG93aW50ZXJmYWNlIikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBhbGxfc2hhZG93X2ludGVyZmFjZXMpIHsKKyAgICAgIGlmICghKkNoYXIoYWxsX3NoYWRvd19pbnRlcmZhY2VzKSkKKyAgICAgICAgUHJpbnRmKGFsbF9zaGFkb3dfaW50ZXJmYWNlcywgImltcGxlbWVudHMgJXMiLCBzdHJ2YWx1ZSk7CisgICAgICBlbHNlCisgICAgICAgIFByaW50ZihhbGxfc2hhZG93X2ludGVyZmFjZXMsICIsICVzIiwgc3RydmFsdWUpOworICAgIH0KKyAgfSAKKyAgZWxzZSBpZihzdHJjbXAoY29kZSwgImFsbHNoYWRvd2NsYXNzbW9kaWZpZXJzIikgPT0gMCkgeworICAgIGlmKHNoYWRvdyAmJiBhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycykKKyAgICAgIFByaW50dihhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycywgc3RydmFsdWUsIDApOworICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAibW9kdWxlY2xhc3Ntb2RpZmllcnMiKSA9PSAwKSB7CisgICAgaWYoc2hhZG93ICYmIG1vZHVsZV9jbGFzc19tb2RpZmllcnMpCisgICAgICBQcmludHYobW9kdWxlX2NsYXNzX21vZGlmaWVycywgc3RydmFsdWUsIDApOworICB9IAorICBlbHNlIGlmKHN0cmNtcChjb2RlLCAibW9kdWxlbWV0aG9kbW9kaWZpZXJzIikgPT0gMCB8fCBzdHJjbXAoY29kZSwgIm1vZGlmaWVycyIpID09IDApIHsKKyAgICBpZihzdHJjbXAoY29kZSwgIm1vZGlmaWVycyIpID09IDApCisgICAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFNvb24gdG8gYmUgZGVwcmVjYXRlZCBwcmFnbWEuIFBsZWFzZSByZXBsYWNlIHdpdGggbW9kdWxlbWV0aG9kbW9kaWZpZXJzIHByYWdtYS5cbiIsIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKKyAgICBDbGVhcihtb2R1bGVfbWV0aG9kX21vZGlmaWVycyk7CisgICAgUHJpbnR2KG1vZHVsZV9tZXRob2RfbW9kaWZpZXJzLCBzdHJ2YWx1ZSwgMCk7CisgIH0gCisgIGVsc2UgeworICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gVW5yZWNvZ25pemVkIHByYWdtYS5cbiIsIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKKyAgfQorICBEZWxldGUoc3RydmFsdWUpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk0NSwyMiArMTIxMyw2MCBAQAogLy8gQyBzdHJ1Y3RzLgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXZvaWQgSkFWQTo6YWRkX3R5cGVkZWYoRGF0YVR5cGUgKnQsIGNoYXIgKm5hbWUpIHsKKy8qIAorQysrIHByYWdtYXM6IHByYWdtYXMgZGVjbGFyZWQgd2l0aGluIGEgY2xhc3Mgb3IgYyBzdHJ1Y3QgZm9yIHRoZSBzaGFkb3cgY2xhc3MuIAorVGhlc2UgcHJhZ21hcyBzdGFydCB3aXRoICdzaGFkb3cnCitWYWxpZCBwcmFnbWFzOgorIHNoYWRvd2Jhc2UgICAgICAtIGJhc2UgKGV4dGVuZHMpIGZvciBhbGwgamF2YSBzaGFkb3cgY2xhc3NlcworIHNoYWRvd2NvZGUgICAgICAtIHRleHQgKGphdmEgY29kZSkgaXMgY29waWVkIHZlcmJhdGltIHRvIHRoZSBzaGFkb3cgY2xhc3MKKyBzaGFkb3djbGFzc21vZGlmaWVycyAgLSBjbGFzcyBtb2RpZmllcnMgZm9yIHRoZSBzaGFkb3cgY2xhc3MKKyBzaGFkb3dpbXBvcnQgICAgLSBpbXBvcnQgc3RhdGVtZW50IGdlbmVyYXRpb24gZm9yIHRoZSBzaGFkb3cgY2xhc3MKKyBzaGFkb3dpbnRlcmZhY2UgLSBpbnRlcmZhY2VzIChleHRlbmRzKSBmb3IgdGhlIHNoYWRvdyBjbGFzcworKi8KK3ZvaWQgSkFWQTo6Y3BwX3ByYWdtYShQcmFnbWEqIHBsaXN0KSB7CisgIHdoaWxlIChwbGlzdCkgeworICAgIGlmICggKHN0cmNtcChDaGFyKHBsaXN0LT5sYW5nKSwoY2hhciopImphdmEiKSA9PSAwKSAmJiBzaGFkb3cpIHsKKyAgICAgIFN0cmluZyogc3RydmFsdWUgPSBOZXdTdHJpbmcocGxpc3QtPnZhbHVlKTsKKyAgICAgIFJlcGxhY2Uoc3RydmFsdWUsIlxcXCIiLCAiXCIiLCBET0hfUkVQTEFDRV9BTlkpOworCisgICAgICBpZiAoc3RyY21wKENoYXIocGxpc3QtPm5hbWUpLCJzaGFkb3djb2RlIikgPT0gMCkgeworICAgICAgICBpZiAodGhpc19zaGFkb3dfZXh0cmFfY29kZSkKKyAgICAgICAgICBQcmludGYodGhpc19zaGFkb3dfZXh0cmFfY29kZSwgIiVzXG4iLCBzdHJ2YWx1ZSk7CisgICAgICB9IAorICAgICAgZWxzZSBpZiAoc3RyY21wKENoYXIocGxpc3QtPm5hbWUpLCJzaGFkb3dpbXBvcnQiKSA9PSAwKSB7CisgICAgICAgIGlmICh0aGlzX3NoYWRvd19pbXBvcnQpCisgICAgICAgICAgUHJpbnRmKHRoaXNfc2hhZG93X2ltcG9ydCwgImltcG9ydCAlcztcbiIsIHN0cnZhbHVlKTsKKyAgICAgIH0gCisgICAgICBlbHNlIGlmIChzdHJjbXAoQ2hhcihwbGlzdC0+bmFtZSksInNoYWRvd2Jhc2UiKSA9PSAwKSB7CisgICAgICAgIGlmICh0aGlzX3NoYWRvd19iYXNlY2xhc3MpCisgICAgICAgICAgUHJpbnRmKHRoaXNfc2hhZG93X2Jhc2VjbGFzcywgImV4dGVuZHMgJXMgIiwgc3RydmFsdWUpOworICAgICAgfSAKKyAgICAgIGVsc2UgaWYgKHN0cmNtcChDaGFyKHBsaXN0LT5uYW1lKSwic2hhZG93aW50ZXJmYWNlIikgPT0gMCkgeworICAgICAgICBpZiAodGhpc19zaGFkb3dfaW50ZXJmYWNlcykgeworICAgICAgICAgIGlmICghKkNoYXIodGhpc19zaGFkb3dfaW50ZXJmYWNlcykpCisgICAgICAgICAgICBQcmludGYodGhpc19zaGFkb3dfaW50ZXJmYWNlcywgImltcGxlbWVudHMgJXMiLCBzdHJ2YWx1ZSk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgUHJpbnRmKHRoaXNfc2hhZG93X2ludGVyZmFjZXMsICIsICVzIiwgc3RydmFsdWUpOworICAgICAgICB9CisgICAgICB9IAorICAgICAgZWxzZSBpZiAoc3RyY21wKENoYXIocGxpc3QtPm5hbWUpLCJzaGFkb3djbGFzc21vZGlmaWVycyIpID09IDApIHsKKyAgICAgICAgaWYgKHRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycykKKyAgICAgICAgICBQcmludHYodGhpc19zaGFkb3dfY2xhc3NfbW9kaWZpZXJzLCBzdHJ2YWx1ZSwgMCk7CisgICAgICB9IAorICAgICAgZWxzZSB7CisgICAgICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gVW5yZWNvZ25pemVkIHByYWdtYSBmb3Igc2hhZG93IGNsYXNzLlxuIiwgcGxpc3QtPmZpbGVuYW1lLCBwbGlzdC0+bGluZW5vKTsKKyAgICAgIH0KKworICAgICAgRGVsZXRlKHN0cnZhbHVlKTsKKyAgICB9CisgICAgcGxpc3QgPSBwbGlzdC0+bmV4dDsKKyAgfQorfQorCit2b2lkIEpBVkE6OmFkZF90eXBlZGVmKFN3aWdUeXBlICp0LCBjaGFyICpuYW1lKSB7CiAgIGlmKCFzaGFkb3cpIHJldHVybjsKLQotICAvLyBGaXJzdCBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlbid0IHRvbyBtYW55IHBvaW50ZXJzCi0KLSAgaWYgKERhdGFUeXBlX2lzX3BvaW50ZXIodCkgPiAxKSByZXR1cm47Ci0KLSAgaWYoR2V0YXR0cihzaGFkb3dfY2xhc3NlcyxuYW1lKSkgcmV0dXJuOyAgICAgIC8vIEFscmVhZHkgYWRkZWQKLQotICAvLyBOb3cgbG9vayB1cCB0aGUgZGF0YXR5cGUgaW4gb3VyIHNoYWRvdyBjbGFzcyBoYXNoIHRhYmxlCi0KLSAgaWYgKEdldGF0dHIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZSh0KSkpIHsKLQotICAgIC8vIFllcC4gICBUaGlzIGRhdGF0eXBlIGlzIGluIHRoZSBoYXNoCi0gICAgLy8gUHV0IHRoaXMgdHlwZXMgJ25ldycgbmFtZSBpbnRvIHRoZSBoYXNoCi0gICAgU2V0YXR0cihzaGFkb3dfY2xhc3NlcyxuYW1lLEdldENoYXIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZSh0KSkpOworICBpZiAoaXNfc2hhZG93KHQpKSB7CisgICAgY3BwX2NsYXNzX2RlY2wobmFtZSxDaGFyKGlzX3NoYWRvdyh0KSksIChjaGFyKikgIiIpOwogICB9CiB9CiAKQEAgLTk5MCw0NCArMTI5Niw4NiBAQAogICAgIFByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gY3JlYXRlIHNoYWRvdyBjbGFzcyBmaWxlOiAlc1xuIiwgYmlnYnVmKTsKICAgfQogCi0gIGVtaXRfc2hhZG93X2Jhbm5lcihmX3NoYWRvdyk7CisgIGVtaXRfYmFubmVyKGZfc2hhZG93KTsKIAogICBpZigqcGFja2FnZSkKLQlQcmludGYoZl9zaGFkb3csICJwYWNrYWdlICVzO1xuXG4iLCBwYWNrYWdlKTsKLSAgZWxzZSBQcmludGYoZl9zaGFkb3csICJpbXBvcnQgJXM7XG5cbiIsIG1vZHVsZSk7Ci0gIGlmKGppbXBvcnQgIT0gTlVMTCkKLQlQcmludGYoZl9zaGFkb3csICJpbXBvcnQgJXM7XG5cbiIsIGppbXBvcnQpOworICAgIFByaW50ZihmX3NoYWRvdywgInBhY2thZ2UgJXM7XG5cbiIsIHBhY2thZ2UpOworICBlbHNlIAorICAgIFByaW50ZihmX3NoYWRvdywgImltcG9ydCAlcztcbiIsIG1vZHVsZSk7CisgIGlmKGFsbF9zaGFkb3dfaW1wb3J0KQorICAgIFByaW50ZihmX3NoYWRvdywgIiVzIiwgYWxsX3NoYWRvd19pbXBvcnQpOwogCiAgIENsZWFyKHNoYWRvd19jbGFzc2RlZik7Ci0gIFByaW50dihzaGFkb3dfY2xhc3NkZWYsICJwdWJsaWMgY2xhc3MgIiwgc2hhZG93X2NsYXNzbmFtZSwgIiAlQkFTRUNMQVNTJSAiLCAie1xuIiwgMCk7CisgIFByaW50dihzaGFkb3dfY2xhc3NkZWYsICIkY2xhc3Ntb2RpZmllcnMgY2xhc3MgIiwgc2hhZG93X2NsYXNzbmFtZSwgIiAkYmFzZXMiLCAie1xuIiwgMCk7CiAKLSAgc2hhZG93X2Jhc2VjbGFzcyA9IChjaGFyKikgIiI7CiAgIHNoYWRvd19jbGFzc2RlZl9lbWl0dGVkID0gMDsKICAgaGF2ZV9kZWZhdWx0X2NvbnN0cnVjdG9yID0gMDsKKyAgc2hhZG93X2VudW1fY29kZSA9IE5ld1N0cmluZygiIik7CisgIHRoaXNfc2hhZG93X2Jhc2VjbGFzcyA9ICBOZXdTdHJpbmcoIiIpOworICB0aGlzX3NoYWRvd19leHRyYV9jb2RlID0gTmV3U3RyaW5nKCIiKTsKKyAgdGhpc19zaGFkb3dfaW50ZXJmYWNlcyA9IE5ld1N0cmluZygiIik7CisgIHRoaXNfc2hhZG93X2ltcG9ydCA9IE5ld1N0cmluZygiIik7CisgIHRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycyA9IE5ld1N0cmluZygiIik7CisKKyAgaWYoYWxsX3NoYWRvd19pbnRlcmZhY2VzKQorICAgIFByaW50dih0aGlzX3NoYWRvd19pbnRlcmZhY2VzLCBhbGxfc2hhZG93X2ludGVyZmFjZXMsIDApOwogfQogCiB2b2lkIEpBVkE6OmVtaXRfc2hhZG93X2NsYXNzZGVmKCkgewotICBpZigqc2hhZG93X2Jhc2VjbGFzcykgewotICAgIHNwcmludGYoYmlnYnVmLCAiZXh0ZW5kcyAlcyIsIHNoYWRvd19iYXNlY2xhc3MpOwotICAgIFJlcGxhY2Uoc2hhZG93X2NsYXNzZGVmLCIlQkFTRUNMQVNTJSIsIGJpZ2J1ZiwgRE9IX1JFUExBQ0VfQU5ZKTsKLSAgICBQcmludHYoc2hhZG93X2NsYXNzZGVmLCAiICBwdWJsaWMgIiwgc2hhZG93X2NsYXNzbmFtZSwgIihqYXZhLmxhbmcuTG9uZyBvYmopIHtcbiIsIHRhYjQsICJfc2VsZiA9IG9iai5sb25nVmFsdWUoKTtcbiAgfVxuXG4iLCAwKTsKLSAgfSBlbHNlIHsKLSAgICBSZXBsYWNlKHNoYWRvd19jbGFzc2RlZiwiJUJBU0VDTEFTUyUiLCAiIixET0hfUkVQTEFDRV9BTlkpOworICBTdHJpbmcqIHRlbXBfc3RyID0gTmV3U3RyaW5nKCIiKTsKKyAgaWYodGhpc19zaGFkb3dfYmFzZWNsYXNzKQorICAgIFByaW50dih0ZW1wX3N0ciwgdGhpc19zaGFkb3dfYmFzZWNsYXNzLCAwKTsKKyAgaWYoYWxsX3NoYWRvd19iYXNlY2xhc3MpCisgICAgUHJpbnR2KHRlbXBfc3RyLCBhbGxfc2hhZG93X2Jhc2VjbGFzcywgMCk7CisgIGlmKHRoaXNfc2hhZG93X2ludGVyZmFjZXMgJiYgKkNoYXIodGhpc19zaGFkb3dfaW50ZXJmYWNlcykpCisgICAgUHJpbnR2KHRlbXBfc3RyLCB0aGlzX3NoYWRvd19pbnRlcmZhY2VzLCAiICIsIDApOworICBSZXBsYWNlKHNoYWRvd19jbGFzc2RlZiwiJGJhc2VzIiwgdGVtcF9zdHIsIERPSF9SRVBMQUNFX0FOWSk7CiAKLSAgICBQcmludHYoc2hhZG93X2NsYXNzZGVmLAotCSAgICIgIHB1YmxpYyBsb25nIF9zZWxmID0gMDtcbiIsCi0JICAgIiAgcHVibGljIGJvb2xlYW4gX3NlbGZvd24gPSBmYWxzZTtcblxuIiwKLSAgICAgICAgICAgIiAgcHVibGljIHN0YXRpYyBPYmplY3QgbmV3SW5zdGFuY2UobG9uZyBwKSB7XG4iLAotCSAgICIgICAgcmV0dXJuIG5ldyAiLCBzaGFkb3dfY2xhc3NuYW1lLCAiKG5ldyBMb25nKHApKTtcbiIsCi0JICAgIiAgfTtcblxuIiwKLQotCSAgICIgIHB1YmxpYyAiLCBzaGFkb3dfY2xhc3NuYW1lLCAiKGphdmEubGFuZy5Mb25nIG9iaikge1xuIiwgdGFiNCwgIl9zZWxmID0gb2JqLmxvbmdWYWx1ZSgpO1xuICB9XG5cbiIsCi0JICAgMCk7CisgIC8vRGlzcGxheSB3YXJuaW5nIG9uIGF0dGVtcHQgdG8gdXNlIG11bHRpcGxlIGluaGVyaXRhbmNlCisgIGNoYXIqIHNlYXJjaF9zdHIgPSBDaGFyKHRlbXBfc3RyKTsKKyAgaW50IGNvdW50ID0gMDsKKyAgd2hpbGUoc2VhcmNoX3N0ciA9IHN0cnN0cihzZWFyY2hfc3RyLCAiZXh0ZW5kcyIpKSB7CisgICAgc2VhcmNoX3N0ciArPSBzdHJsZW4oImV4dGVuZHMiKTsKKyAgICBjb3VudCsrOwogICB9Ci0gIFByaW50dihzaGFkb3dfY2xhc3NkZWYsICIgIHB1YmxpYyBDbGFzcyBfc2VsZkNsYXNzKCkge1xuIiwgdGFiNCwgInJldHVybiAiLCBzaGFkb3dfY2xhc3NuYW1lLCAiLmNsYXNzO1xuIiwgIiAgfTtcblxuIiwgMCk7CisgIGlmIChjb3VudCA+IDEpCisgICAgUHJpbnRmKHN0ZGVyciwgIldhcm5pbmcgZm9yIHNoYWRvdyBjbGFzcyAlczogTXVsdGlwbGUgaW5oZXJpdGFuY2UgaXMgbm90IHN1cHBvcnRlZCBpbiBKYXZhLlxuIiwgc2hhZG93X2NsYXNzbmFtZSk7CisKKyAgaWYgKHRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycyAmJiAqQ2hhcih0aGlzX3NoYWRvd19jbGFzc19tb2RpZmllcnMpKQorICAgIFJlcGxhY2Uoc2hhZG93X2NsYXNzZGVmLCAiJGNsYXNzbW9kaWZpZXJzIiwgdGhpc19zaGFkb3dfY2xhc3NfbW9kaWZpZXJzLCBET0hfUkVQTEFDRV9BTlkpOworICBlbHNlIGlmIChhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycyAmJiAqQ2hhcihhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycykpCisgICAgUmVwbGFjZShzaGFkb3dfY2xhc3NkZWYsICIkY2xhc3Ntb2RpZmllcnMiLCBhbGxfc2hhZG93X2NsYXNzX21vZGlmaWVycywgRE9IX1JFUExBQ0VfQU5ZKTsKKyAgZWxzZQorICAgIFJlcGxhY2Uoc2hhZG93X2NsYXNzZGVmLCAiJGNsYXNzbW9kaWZpZXJzIiwgInB1YmxpYyIsIERPSF9SRVBMQUNFX0FOWSk7CisKKyAgUHJpbnR2KHNoYWRvd19jbGFzc2RlZiwKKyAgICAiICBwcml2YXRlIGxvbmcgX2NQdHIgPSAwO1xuIiwKKyAgICAiICBwcml2YXRlIGJvb2xlYW4gX2NNZW1Pd24gPSBmYWxzZTtcbiIsCisgICAgIlxuIiwKKyAgICAiICBwdWJsaWMgJGNsYXNzKGxvbmcgY1BvaW50ZXIsIGJvb2xlYW4gY01lbW9yeU93bikge1xuIiwKKyAgICAiICAgIF9jUHRyID0gY1BvaW50ZXI7XG4iLAorICAgICIgICAgX2NNZW1Pd24gPSBjTWVtb3J5T3duO1xuIiwKKyAgICAiICB9XG4iLAorICAgICJcbiIsCisgICAgIiAgcHVibGljIGxvbmcgZ2V0Q1B0cigpIHtcbiIsCisgICAgIiAgICByZXR1cm4gX2NQdHI7XG4iLAorICAgICIgIH07XG4iLAorICAgICJcbiIsIDApOworICBSZXBsYWNlKHNoYWRvd19jbGFzc2RlZiwgIiRjbGFzcyIsIHNoYWRvd19jbGFzc25hbWUsIERPSF9SRVBMQUNFX0FOWSk7CisKKyAgaWYgKGFsbF9zaGFkb3dfZXh0cmFfY29kZSkKKyAgICBQcmludHYoc2hhZG93X2NsYXNzZGVmLCBhbGxfc2hhZG93X2V4dHJhX2NvZGUsIDApOworCisgIGlmICh0aGlzX3NoYWRvd19leHRyYV9jb2RlKQorICAgIFByaW50dihzaGFkb3dfY2xhc3NkZWYsIHRoaXNfc2hhZG93X2V4dHJhX2NvZGUsIDApOworCisgIGlmKHRoaXNfc2hhZG93X2ltcG9ydCkKKyAgICBQcmludGYoZl9zaGFkb3csICIlcyIsIHRoaXNfc2hhZG93X2ltcG9ydCk7CisgIFByaW50ZihmX3NoYWRvdywgIlxuIik7CiAKICAgUHJpbnR2KGZfc2hhZG93LCBzaGFkb3dfY2xhc3NkZWYsMCk7CiAgIHNoYWRvd19jbGFzc2RlZl9lbWl0dGVkID0gMTsKKyAgRGVsZXRlKHRlbXBfc3RyKTsKIH0KIAogdm9pZCBKQVZBOjpjcHBfY2xvc2VfY2xhc3MoKSB7CkBAIC0xMDM2LDI3MCArMTM4NCwzMDUgQEAKIAogICBpZighc2hhZG93X2NsYXNzZGVmX2VtaXR0ZWQpIGVtaXRfc2hhZG93X2NsYXNzZGVmKCk7CiAKKyAgLy8gTm8gZGVmYXVsdCBjb25zdHJ1Y3RvciBpbXBsaWVzIGNsYXNzIGlzIGFic3RyYWN0LgorICAvLyBOb3RlIHRoYXQgYWJzdHJhY3QgaW4gY3BsdXMuY3h4IGhhcyB0aGlzIGluZm9ybWF0aW9uIC0gaXQgb3VnaHQgdG8gYmUgcGFzc2VkIHRvIGVhY2gKKyAgLy8gbW9kdWxlIHdoZW4gdGhlIGNsYXNzIGlzIG9wZW5lZC4KICAgaWYoaGF2ZV9kZWZhdWx0X2NvbnN0cnVjdG9yID09IDApIHsKLSAgICBQcmludGYoZl9zaGFkb3csICIgIHB1YmxpYyAlcygpIHt9XG5cbiIsIHNoYWRvd19jbGFzc25hbWUpOworICAgIFByaW50ZihmX3NoYWRvdywgIiAgcHJvdGVjdGVkICVzKCkge31cblxuIiwgc2hhZG93X2NsYXNzbmFtZSk7CiAgIH0KIAorICAvLyBXcml0ZSB0aGUgZW51bSBpbml0aWFsaXNhdGlvbiBjb2RlIGluIGEgc3RhdGljIGJsb2NrLgorICAvLyBUaGVzZSBhcmUgYWxsIHRoZSBlbnVtcyBkZWZpbmVkIHdpdGhpbiB0aGUgYysrIGNsYXNzLgorICBpZiAoc3RybGVuKENoYXIoc2hhZG93X2VudW1fY29kZSkpICE9IDAgKQorICAgIFByaW50dihmX3NoYWRvdywgIiAgc3RhdGljIHtcbiAgLy8gSW5pdGlhbGlzZSBqYXZhIGNvbnN0YW50cyBmcm9tIGMrKyBlbnVtc1xuIiwgc2hhZG93X2VudW1fY29kZSwgIiAgfVxuIiwwKTsKKwogICBQcmludGYoZl9zaGFkb3csICJ9XG4iKTsKICAgZmNsb3NlKGZfc2hhZG93KTsKICAgZl9zaGFkb3cgPSBOVUxMOwogCiAgIGZyZWUoc2hhZG93X2NsYXNzbmFtZSk7CiAgIHNoYWRvd19jbGFzc25hbWUgPSBOVUxMOworCisgIERlbGV0ZShzaGFkb3dfZW51bV9jb2RlKTsgc2hhZG93X2VudW1fY29kZSA9IE5VTEw7CisgIERlbGV0ZSh0aGlzX3NoYWRvd19iYXNlY2xhc3MpOyB0aGlzX3NoYWRvd19iYXNlY2xhc3MgPSBOVUxMOworICBEZWxldGUodGhpc19zaGFkb3dfZXh0cmFfY29kZSk7IHRoaXNfc2hhZG93X2V4dHJhX2NvZGUgPSBOVUxMOworICBEZWxldGUodGhpc19zaGFkb3dfaW50ZXJmYWNlcyk7IHRoaXNfc2hhZG93X2ludGVyZmFjZXMgPSBOVUxMOworICBEZWxldGUodGhpc19zaGFkb3dfaW1wb3J0KTsgdGhpc19zaGFkb3dfaW1wb3J0ID0gTlVMTDsKKyAgRGVsZXRlKHRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycyk7IHRoaXNfc2hhZG93X2NsYXNzX21vZGlmaWVycyA9IE5VTEw7CiB9CiAKLXZvaWQgSkFWQTo6Y3BwX21lbWJlcl9mdW5jKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBEYXRhVHlwZSAqdCwgUGFybUxpc3QgKmwpIHsKLSAgY2hhciAgICAgICAgICAgICAgICBhcmdbMjU2XTsKLSAgRE9IU3RyaW5nICAgICAgICAgICAqbmF0aXZlY2FsbDsKLQotICBuYXRpdmVjYWxsID0gTmV3U3RyaW5nKCIiKTsKLQordm9pZCBKQVZBOjpjcHBfbWVtYmVyX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0LCBQYXJtTGlzdCAqbCkgewogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX21lbWJlcl9mdW5jKG5hbWUsaW5hbWUsdCxsKTsKIAotICBpZighc2hhZG93KSByZXR1cm47Ci0gIGlmKCFzaGFkb3dfY2xhc3NkZWZfZW1pdHRlZCkgZW1pdF9zaGFkb3dfY2xhc3NkZWYoKTsKLQotICBjaGFyICpqYXZhcmV0dHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqdHlwZSIsIHR5cGVtYXBfbGFuZywgdCwgaW5hbWUpOwotICBpZighamF2YXJldHR5cGUpIGphdmFyZXR0eXBlID0gU3dpZ1RjVG9KYXZhVHlwZSh0LCAxLCAwKTsKLSAgY2hhciAqc2hhZG93cmV0dHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqc3R5cGUiLCB0eXBlbWFwX2xhbmcsIHQsIGluYW1lKTsKLSAgaWYoIXNoYWRvd3JldHR5cGUgJiYgKERhdGFUeXBlX0dldHR5cGVjb2RlKHQpID09IFRfVVNFUikgJiYgRGF0YVR5cGVfaXNfcG9pbnRlcih0KSA8PSAxKSB7Ci0gICAgc2hhZG93cmV0dHlwZSA9IEdldENoYXIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZSh0KSk7CisvKgorLy8gVE9ETzogbW9kaWZ5IG91dHB1dCBzbyB0aGF0IHB1cmUgdmlydHVhbCBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIGFic3RyYWN0IGFuZCAKKy8vIGhhdmUgbm8gYm9keS4gQWxzbyBtYWtlIHRoZSBjbGFzcyBkZWNsYXJhdGlvbiBhYnN0cmFjdC4gTWFrZSBvdGhlciBjb25zdHJ1Y3RvciBwcm90ZWN0ZWQuCitleHRlcm4gaW50IElzVmlydHVhbDsKKyAgcHJpbnRmKCJJc1ZpcnR1YWw6ICVkIFslc10gJXNcbiIsIElzVmlydHVhbCwgbmFtZSwgc2hhZG93X2NsYXNzbmFtZSk7CisgIGlmIChJc1ZpcnR1YWwgPT0gUFVSRV9WSVJUVUFMKSB7CiAgIH0KKyovCisgIGlmIChzaGFkb3cgJiYgIWlzX211bHRpcGxlX2RlZmluaXRpb24oKSkgeworICAgIGNoYXIqIHJlYWxuYW1lID0gaW5hbWUgPyBpbmFtZSA6IG5hbWU7CisgICAgU3RyaW5nKiBqYXZhX2Z1bmN0aW9uX25hbWUgPSBTd2lnX25hbWVfbWVtYmVyKHNoYWRvd19jbGFzc25hbWUsIHJlYWxuYW1lKTsKIAotICBQcmludGYoZl9zaGFkb3csICIgIHB1YmxpYyAlcyAlcygiLCAoc2hhZG93cmV0dHlwZSkgPyBzaGFkb3dyZXR0eXBlIDogamF2YXJldHR5cGUsIGluYW1lKTsKLQotICBpZihEYXRhVHlwZV90eXBlKHQpICE9IFRfVk9JRCkgewotICAgIFByaW50ZihuYXRpdmVjYWxsLCJyZXR1cm4gIik7Ci0gICAgaWYoc2hhZG93cmV0dHlwZSkgewotICAgICAgUHJpbnR2KG5hdGl2ZWNhbGwsICJuZXcgIiwgc2hhZG93cmV0dHlwZSwgIihuZXcgTG9uZygiLCAwKTsKLSAgICB9CisgICAgY3BwX2Z1bmMoaW5hbWUsIHQsIGwsIGphdmFfZnVuY3Rpb25fbmFtZSk7CiAgIH0KLSAgUHJpbnR2KG5hdGl2ZWNhbGwsIG1vZHVsZSwgIi4iLCBTd2lnX25hbWVfbWVtYmVyKHNoYWRvd19jbGFzc25hbWUsaW5hbWUpLCAiKF9zZWxmIiwgMCk7Ci0KLSAgaW50IHBjb3VudCA9IFBhcm1MaXN0X2xlbihsKTsKLQotICBQYXJtICpwID0gbDsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBwY291bnQgOyBpKyssIHAgPSBHZXRuZXh0KHApKSB7Ci0gICAgRGF0YVR5cGUgKnB0ID0gR2V0dHlwZShwKTsKLSAgICBjaGFyICAgICAqcG4gPSBHZXRuYW1lKHApOwotCi0gICAgLy8gUHJvZHVjZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc291cmNlIGFuZCB0YXJnZXQgYXJndW1lbnRzCi0gICAgaWYocG4gJiYgKihwbikpCi0gICAgICBzdHJjcHkoYXJnLHBuKTsKLSAgICBlbHNlIHsKLSAgICAgIHNwcmludGYoYXJnLCJhcmclZCIsaSk7Ci0gICAgfQotCi0gICAgICBpZigoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVVNFUikgJiYgKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpIDw9IDEpICYmIEdldGF0dHIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZShwdCkpKSB7Ci0JUHJpbnR2KG5hdGl2ZWNhbGwsICIsICIsIGFyZywgIi5fc2VsZiIsIDApOwotICAgICAgfSBlbHNlIFByaW50dihuYXRpdmVjYWxsLCAiLCAiLCBhcmcsIDApOwotCi0gICAgICBjaGFyICpqdHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqdHlwZSIsIHR5cGVtYXBfbGFuZywgcHQsIHBuKTsKLSAgICAgIGlmKCFqdHlwZSkganR5cGUgPSBTd2lnVGNUb0phdmFUeXBlKHB0LCAwLCAwKTsKLQotICAgICAgY2hhciAqanN0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImpzdHlwZSIsIHR5cGVtYXBfbGFuZywgcHQsIHBuKTsKLSAgICAgIGlmKCFqc3R5cGUgJiYgKERhdGFUeXBlX0dldHR5cGVjb2RlKHB0KSA9PSBUX1VTRVIpICYmIChEYXRhVHlwZV9pc19wb2ludGVyKHB0KSA8PSAxKSkgewotCSAgICBqc3R5cGUgPSBHZXRDaGFyKHNoYWRvd19jbGFzc2VzLERhdGFUeXBlX0dldG5hbWUocHQpKTsKLSAgICAgIH0KLQotICAgICAgLy8gQWRkIHRvIGphdmEgZnVuY3Rpb24gaGVhZGVyCi0gICAgICBQcmludGYoZl9zaGFkb3csICIlcyAlcyIsIChqc3R5cGUpID8ganN0eXBlIDoganR5cGUsIGFyZyk7Ci0gICAgICBpZihpICE9IHBjb3VudC0xKSB7Ci0gICAgICAgIFByaW50ZihmX3NoYWRvdywgIiwgIik7Ci0gICAgICB9Ci0gIH0KLQotICBpZigoRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkgIT0gVF9WT0lEKSAmJiBzaGFkb3dyZXR0eXBlKQotICAgIFByaW50ZihuYXRpdmVjYWxsLCAiKSkiKTsKLQotICBQcmludGYobmF0aXZlY2FsbCwiKTtcbiIpOwotCi0gIFByaW50ZihmX3NoYWRvdywgIikge1xuIik7Ci0gIFByaW50ZihmX3NoYWRvdywgIlx0JXNcbiIsIG5hdGl2ZWNhbGwpOwotICBQcmludGYoZl9zaGFkb3csICIgIH1cblxuIik7Ci0gIERlbGV0ZShuYXRpdmVjYWxsKTsKLQogfQogCi12b2lkIEpBVkE6OmNwcF9zdGF0aWNfZnVuYyhjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKnQsIFBhcm1MaXN0ICpsKSB7Ci0gIGNoYXIgICAgICAgICAgICAgYXJnWzI1Nl07Ci0gIERPSFN0cmluZyAgICAgICAqbmF0aXZlY2FsbDsKLQordm9pZCBKQVZBOjpjcHBfc3RhdGljX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0LCBQYXJtTGlzdCAqbCkgewogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX3N0YXRpY19mdW5jKG5hbWUsaW5hbWUsdCxsKTsKIAorICBpZiAoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKKyAgICBjaGFyKiByZWFsbmFtZSA9IGluYW1lID8gaW5hbWUgOiBuYW1lOworICAgIFN0cmluZyogamF2YV9mdW5jdGlvbl9uYW1lID0gU3dpZ19uYW1lX21lbWJlcihzaGFkb3dfY2xhc3NuYW1lLCByZWFsbmFtZSk7CisKKyAgICBzdGF0aWNfZmxhZyA9IDE7CisgICAgY3BwX2Z1bmMoaW5hbWUsIHQsIGwsIGphdmFfZnVuY3Rpb25fbmFtZSk7CisgICAgc3RhdGljX2ZsYWcgPSAwOworICB9Cit9CisKKy8qIAorRnVuY3Rpb24gY2FsbGVkIGZvciBjcmVhdGluZyBhIGphdmEgY2xhc3Mgd3JhcHBlciBmdW5jdGlvbiBhcm91bmQgYSBjKysgZnVuY3Rpb24gaW4gdGhlIAoramF2YSB3cmFwcGVyIGNsYXNzLiBVc2VkIGZvciBib3RoIHN0YXRpYyBhbmQgbm9uIHN0YXRpYyBmdW5jdGlvbnMuCitDKysgc3RhdGljIGZ1bmN0aW9ucyBtYXAgdG8gamF2YSBzdGF0aWMgZnVuY3Rpb25zLgoraW5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGphdmEgY2xhc3Mgd3JhcHBlciBmdW5jdGlvbiwgd2hpY2ggaW4gdHVybiB3aWxsIGNhbGwgCitqYXZhX2Z1bmN0aW9uX25hbWUsIHRoZSBqYXZhIGZ1bmN0aW9uIHdoaWNoIHdyYXBzIHRoZSBjKysgZnVuY3Rpb24uCisqLwordm9pZCBKQVZBOjpjcHBfZnVuYyhjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnQsIFBhcm1MaXN0ICpsLCBTdHJpbmcqIGphdmFfZnVuY3Rpb25fbmFtZSkgeworICBjaGFyICAgICBhcmdbMjU2XTsKKyAgU3RyaW5nICAgKm5hdGl2ZWNhbGwgPSBOZXdTdHJpbmcoIiIpOworICBTdHJpbmcgICAqc2hhZG93cmV0dHlwZSA9IE5ld1N0cmluZygiIik7CisgIFN0cmluZyAgICp1c2VyX2FycmF5cyA9IE5ld1N0cmluZygiIik7CisKICAgaWYoIXNoYWRvdykgcmV0dXJuOwotICBuYXRpdmVjYWxsID0gTmV3U3RyaW5nKCIiKTsKICAgaWYoIXNoYWRvd19jbGFzc2RlZl9lbWl0dGVkKSBlbWl0X3NoYWRvd19jbGFzc2RlZigpOwogCi0gIGNoYXIgKmphdmFyZXR0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImp0eXBlIiwgdHlwZW1hcF9sYW5nLCB0LCBpbmFtZSk7Ci0gIGlmKCFqYXZhcmV0dHlwZSkgamF2YXJldHR5cGUgPSBTd2lnVGNUb0phdmFUeXBlKHQsIDEsIDApOwotICBjaGFyICpzaGFkb3dyZXR0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImpzdHlwZSIsIHR5cGVtYXBfbGFuZywgdCwgaW5hbWUpOwotICBpZighc2hhZG93cmV0dHlwZSAmJiAoRGF0YVR5cGVfR2V0dHlwZWNvZGUodCkgPT0gVF9VU0VSKSAmJiAoRGF0YVR5cGVfaXNfcG9pbnRlcih0KSA8PSAxKSkgewotICAgIHNoYWRvd3JldHR5cGUgPSBHZXRDaGFyKHNoYWRvd19jbGFzc2VzLERhdGFUeXBlX0dldG5hbWUodCkpOworICAvKiBHZXQgdGhlIGphdmEgcmV0dXJuIHR5cGUgKi8KKyAgU3dpZ1RvSmF2YVR5cGUodCwgaW5hbWUsIHNoYWRvd3JldHR5cGUsIHNoYWRvdyk7CisKKyAgUHJpbnRmKGZfc2hhZG93LCAiICBwdWJsaWMgJXMgJXMgJXMoIiwgKHN0YXRpY19mbGFnID8gInN0YXRpYyI6IiIpLCBzaGFkb3dyZXR0eXBlLCBpbmFtZSk7CisKKyAgaWYoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX0FSUkFZICYmIGlzX3NoYWRvdyhnZXRfYXJyYXlfdHlwZSh0KSkpIHsKKyAgICBQcmludGYobmF0aXZlY2FsbCwgImxvbmdbXSBjQXJyYXkgPSAiKTsKICAgfQotCi0gIFByaW50ZihmX3NoYWRvdywgIiAgcHVibGljIHN0YXRpYyAlcyAlcygiLCAoc2hhZG93cmV0dHlwZSkgPyBzaGFkb3dyZXR0eXBlIDogamF2YXJldHR5cGUsIGluYW1lKTsKLQotICBpZihEYXRhVHlwZV90eXBlKHQpICE9IFRfVk9JRCkgewotICAgIFByaW50ZihuYXRpdmVjYWxsLCAicmV0dXJuICIpOwotICAgIGlmKHNoYWRvd3JldHR5cGUpIHsKLSAgICAgIFByaW50dihuYXRpdmVjYWxsLCAibmV3ICIsIHNoYWRvd3JldHR5cGUsICIobmV3IExvbmcoIiwgMCk7CisgIGVsc2UgeworICAgIGlmKFN3aWdUeXBlX3R5cGUodCkgIT0gVF9WT0lEKSB7CisgICAgICBQcmludGYobmF0aXZlY2FsbCwicmV0dXJuICIpOworICAgIH0KKyAgICBpZihpc19zaGFkb3codCkpIHsKKyAgICAgIFByaW50dihuYXRpdmVjYWxsLCAibmV3ICIsIHNoYWRvd3JldHR5cGUsICIoIiwgMCk7CiAgICAgfQogICB9Ci0gIFByaW50dihuYXRpdmVjYWxsLCBtb2R1bGUsICIuIiwgU3dpZ19uYW1lX21lbWJlcihzaGFkb3dfY2xhc3NuYW1lLGluYW1lKSwgIigiLCAwKTsKIAorICBQcmludHYobmF0aXZlY2FsbCwgbW9kdWxlLCAiLiIsIGphdmFfZnVuY3Rpb25fbmFtZSwgIigiLCAwKTsKKyAgaWYgKCFzdGF0aWNfZmxhZykKKyAgICBQcmludHYobmF0aXZlY2FsbCwgImdldENQdHIoKSIsIDApOworCisgIGludCBnZW5jb21tYSA9ICFzdGF0aWNfZmxhZzsKICAgaW50IHBjb3VudCA9IFBhcm1MaXN0X2xlbihsKTsKLSAgaW50IGdlbmNvbW1hID0gMDsKIAorICAvKiBPdXRwdXQgZWFjaCBwYXJhbWV0ZXIgKi8KICAgUGFybSAqcCA9IGw7CisKKy8qIFdvcmthcm91bmQgdG8gb3ZlcmNvbWUgR2V0aWdub3JlKHApIG5vdCB3b3JraW5nIC0gcCBkb2VzIG5vdCBhbHdheXMgaGF2ZSB0aGUgR2V0aWdub3JlIAorYXR0cmlidXRlIHNldC4gTm90aWNlYWJsZSB3aGVuIGNwcF9mdW5jIGlzIGNhbGxlZCBmcm9tIGNwcF9tZW1iZXJfZnVuYygpICovCitXcmFwcGVyKiBmID0gTmV3V3JhcHBlcigpOworZW1pdF9hcmdzKE5VTEwsIGwsIGYpOworRGVsV3JhcHBlcihmKTsKKy8qIFdvcmthcm91bmQgZW5kICovCisKICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwY291bnQgOyBpKyssIHAgPSBHZXRuZXh0KHApKSB7Ci0gICAgRGF0YVR5cGUgKnB0ID0gR2V0dHlwZShwKTsKLSAgICBjaGFyICAgICAqcG4gPSBHZXRuYW1lKHApOworICAgIGlmKEdldGlnbm9yZShwKSkgY29udGludWU7CiAKLSAgICAvLyBQcm9kdWNlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBzb3VyY2UgYW5kIHRhcmdldCBhcmd1bWVudHMKLSAgICBpZihwbiAmJiAqKHBuKSkKLSAgICAgIHN0cmNweShhcmcscG4pOwotICAgIGVsc2UgewotICAgICAgc3ByaW50ZihhcmcsImFyZyVkIixpKTsKLSAgICB9CisgICAgLyogSWdub3JlIHRoZSAndGhpcycgYXJndW1lbnQgZm9yIHZhcmlhYmxlIHdyYXBwZXJzICovCisgICAgaWYgKCEodmFyaWFibGVfd3JhcHBlcl9mbGFnICYmIGk9PTApKSAKKyAgICB7CisgICAgICBTd2lnVHlwZSAqcHQgPSBHZXR0eXBlKHApOworICAgICAgU3RyaW5nICAgKnBuID0gR2V0bmFtZShwKTsKKyAgICAgIFN0cmluZyAgICpqYXZhcGFyYW10eXBlID0gTmV3U3RyaW5nKCIiKTsKKyAgCisgICAgICAvKiBQcm9kdWNlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBzb3VyY2UgYW5kIHRhcmdldCBhcmd1bWVudHMgKi8KKyAgICAgIGlmKHBuICYmICooQ2hhcihwbikpKQorICAgICAgICBzdHJjcHkoYXJnLENoYXIocG4pKTsKKyAgICAgIGVsc2UgeworICAgICAgICBzcHJpbnRmKGFyZywiYXJnJWQiLGkpOworICAgICAgfQorICAKKyAgICAgIGlmIChnZW5jb21tYSkKKyAgICAgICAgUHJpbnRmKG5hdGl2ZWNhbGwsICIsICIpOwogCi0gICAgaWYoZ2VuY29tbWEpIFByaW50ZihuYXRpdmVjYWxsLCIsICIpOworICAgICAgaWYoU3dpZ1R5cGVfdHlwZShwdCkgPT0gVF9BUlJBWSAmJiBpc19zaGFkb3coZ2V0X2FycmF5X3R5cGUocHQpKSkgeworICAgICAgICBQcmludHYodXNlcl9hcnJheXMsIHRhYjQsICJsb25nW10gJGFyZ19jQXJyYXkgPSBuZXcgbG9uZ1skYXJnLmxlbmd0aF07XG4iLCAwKTsKKyAgICAgICAgUHJpbnR2KHVzZXJfYXJyYXlzLCB0YWI0LCAiZm9yIChpbnQgaT0wOyBpPCRhcmcubGVuZ3RoOyBpKyspXG4iLCAwKTsKKyAgICAgICAgUHJpbnR2KHVzZXJfYXJyYXlzLCB0YWI0LCAiICAkYXJnX2NBcnJheVtpXSA9ICRhcmdbaV0uZ2V0Q1B0cigpO1xuIiwgMCk7CisgICAgICAgIFJlcGxhY2UodXNlcl9hcnJheXMsICIkYXJnIiwgcG4sIERPSF9SRVBMQUNFX0FOWSk7CiAKLSAgICBpZigoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVVNFUikgJiYgKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpIDw9IDEpICYmIEdldGF0dHIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZShwdCkpKSB7Ci0gICAgICBQcmludHYobmF0aXZlY2FsbCwgYXJnLCAiLl9zZWxmIiwgMCk7Ci0gICAgfSBlbHNlIFByaW50dihuYXRpdmVjYWxsLGFyZywwKTsKKyAgICAgICAgUHJpbnR2KG5hdGl2ZWNhbGwsIGFyZywgIl9jQXJyYXkiLCAwKTsKKyAgICAgIH0gZWxzZSBpZiAoaXNfc2hhZG93KHB0KSkgeworICAgICAgICBQcmludHYobmF0aXZlY2FsbCwgYXJnLCAiLmdldENQdHIoKSIsIDApOworICAgICAgfSBlbHNlIFByaW50dihuYXRpdmVjYWxsLCBhcmcsIDApOwogCi0gICAgZ2VuY29tbWEgPSAxOworICAgICAgLyogR2V0IHRoZSBqYXZhIHR5cGUgb2YgdGhlIHBhcmFtZXRlciAqLworICAgICAgU3dpZ1RvSmF2YVR5cGUocHQsIHBuLCBqYXZhcGFyYW10eXBlLCBzaGFkb3cpOyAKKyAgCisgICAgICAvKiBBZGQgdG8gamF2YSBzaGFkb3cgZnVuY3Rpb24gaGVhZGVyICovCisgICAgICBpZiAoZ2VuY29tbWEgPj0gMikKKyAgICAgICAgUHJpbnRmKGZfc2hhZG93LCAiLCAiKTsKKyAgICAgIGdlbmNvbW1hID0gMjsKKyAgICAgIFByaW50ZihmX3NoYWRvdywgIiVzICVzIiwgamF2YXBhcmFtdHlwZSwgYXJnKTsKIAotICAgIGNoYXIgKmp0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImp0eXBlIiwgdHlwZW1hcF9sYW5nLCBwdCwgcG4pOwotICAgIGlmKCFqdHlwZSkganR5cGUgPSBTd2lnVGNUb0phdmFUeXBlKHB0LCAwLCAwKTsKLQotICAgIGNoYXIgKmpzdHlwZSA9IEphdmFUeXBlRnJvbVR5cGVtYXAoKGNoYXIqKSJqc3R5cGUiLCB0eXBlbWFwX2xhbmcsIHB0LCBwbik7Ci0gICAgaWYoIWpzdHlwZSAmJiAoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVVNFUikgJiYgKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpIDw9IDEpKSB7Ci0JICBqc3R5cGUgPSBHZXRDaGFyKHNoYWRvd19jbGFzc2VzLCBEYXRhVHlwZV9HZXRuYW1lKHB0KSk7Ci0gICAgfQotCi0gICAgLy8gQWRkIHRvIGphdmEgZnVuY3Rpb24gaGVhZGVyCi0gICAgUHJpbnRmKGZfc2hhZG93LCAiJXMgJXMiLCAoanN0eXBlKSA/IGpzdHlwZSA6IGp0eXBlLCBhcmcpOwotICAgIGlmKGkgIT0gcGNvdW50LTEpIHsKLSAgICAgIFByaW50ZihmX3NoYWRvdywgIiwgIik7CisgICAgICBEZWxldGUoamF2YXBhcmFtdHlwZSk7CiAgICAgfQogICB9CiAKKyAgaWYoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX0FSUkFZICYmIGlzX3NoYWRvdyhnZXRfYXJyYXlfdHlwZSh0KSkpIHsKKyAgICBTdHJpbmcqIGFycmF5X3JldCA9IE5ld1N0cmluZygiIik7CisgICAgU3RyaW5nKiB1c2VyX3JldHVybl90eXBlID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTd2lnVHlwZSAqYXJyYXlfdHlwZSA9IGdldF9hcnJheV90eXBlKHQpOworICAgIFByaW50ZihhcnJheV9yZXQsIik7XG4iKTsKKyAgICBQcmludHYoYXJyYXlfcmV0LCB0YWI0LCAiJHR5cGVbXSBhcnJheVdyYXBwZXIgPSBuZXcgJHR5cGVbY0FycmF5Lmxlbmd0aF07XG4iLCAwKTsKKyAgICBQcmludHYoYXJyYXlfcmV0LCB0YWI0LCAiZm9yIChpbnQgaT0wOyBpPGNBcnJheS5sZW5ndGg7IGkrKylcbiIsIDApOworICAgIFByaW50dihhcnJheV9yZXQsIHRhYjQsICIgIGFycmF5V3JhcHBlcltpXSA9IG5ldyAkdHlwZShjQXJyYXlbaV0sIGZhbHNlKTtcbiIsIDApOworICAgIFByaW50dihhcnJheV9yZXQsIHRhYjQsICJyZXR1cm4gYXJyYXlXcmFwcGVyO1xuIiwgMCk7CiAKLSAgaWYoKERhdGFUeXBlX3R5cGUodCkgIT0gVF9WT0lEKSAmJiBzaGFkb3dyZXR0eXBlKQotICAgIFByaW50ZihuYXRpdmVjYWxsLCIpKSIpOwotCi0gIFByaW50ZihuYXRpdmVjYWxsLCIpO1xuIik7CisgICAgU3dpZ1RvSmF2YVR5cGUoYXJyYXlfdHlwZSwgaW5hbWUsIHVzZXJfcmV0dXJuX3R5cGUsIHNoYWRvdyk7CisgICAgUmVwbGFjZShhcnJheV9yZXQsICIkdHlwZSIsIHVzZXJfcmV0dXJuX3R5cGUsIERPSF9SRVBMQUNFX0FOWSk7CisgICAgUHJpbnR2KG5hdGl2ZWNhbGwsIGFycmF5X3JldCwgMCk7CisgICAgRGVsZXRlKGFycmF5X3JldCk7CisgICAgRGVsZXRlKHVzZXJfcmV0dXJuX3R5cGUpOworICB9CisgIGVsc2UgeworICAgIGlmKGlzX3NoYWRvdyh0KSkgeworICAgICAgc3dpdGNoKFN3aWdUeXBlX3R5cGUodCkpIHsKKyAgICAgIGNhc2UgVF9VU0VSOgorICAgICAgICBQcmludGYobmF0aXZlY2FsbCwgIiksIHRydWUiKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFRfUkVGRVJFTkNFOgorICAgICAgY2FzZSBUX1BPSU5URVI6CisgICAgICAgIFByaW50ZihuYXRpdmVjYWxsLCAiKSwgZmFsc2UiKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICBQcmludGYoc3RkZXJyLCAiSW50ZXJuYWwgRXJyb3I6IHVua25vd24gc2hhZG93IHR5cGU6ICVzXG4iLCBTd2lnVHlwZV9zdHIodCwwKSk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0KKyAgICBQcmludGYobmF0aXZlY2FsbCwiKTtcbiIpOworICB9CiAKICAgUHJpbnRmKGZfc2hhZG93LCAiKSB7XG4iKTsKLSAgUHJpbnRmKGZfc2hhZG93LCAiXHQlc1xuIiwgbmF0aXZlY2FsbCk7CisgIFByaW50dihmX3NoYWRvdywgdXNlcl9hcnJheXMsIDApOworICBQcmludGYoZl9zaGFkb3csICJcdCVzIiwgbmF0aXZlY2FsbCk7CiAgIFByaW50ZihmX3NoYWRvdywgIiAgfVxuXG4iKTsKKyAgRGVsZXRlKHNoYWRvd3JldHR5cGUpOwogICBEZWxldGUobmF0aXZlY2FsbCk7CisgIERlbGV0ZSh1c2VyX2FycmF5cyk7CiB9CiAKIHZvaWQgSkFWQTo6Y3BwX2NvbnN0cnVjdG9yKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBQYXJtTGlzdCAqbCkgewogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX2NvbnN0cnVjdG9yKG5hbWUsaW5hbWUsbCk7CiAKLSAgaWYoIXNoYWRvdykgcmV0dXJuOwotICBpZighc2hhZG93X2NsYXNzZGVmX2VtaXR0ZWQpIGVtaXRfc2hhZG93X2NsYXNzZGVmKCk7Ci0KLSAgRE9IU3RyaW5nICpuYXRpdmVjYWxsID0gTmV3U3RyaW5nKCIiKTsKLSAgY2hhciBhcmdbMjU2XTsKLQotICBQcmludGYoZl9zaGFkb3csICIgIHB1YmxpYyAlcygiLCBzaGFkb3dfY2xhc3NuYW1lKTsKLQotICBQcmludHYobmF0aXZlY2FsbCwgIiAgICBpZihfc2VsZiA9PSAwICYmICIsIHNoYWRvd19jbGFzc25hbWUsICIuY2xhc3MgPT0gX3NlbGZDbGFzcygpKSB7XG4iLCAwKTsKLSAgaWYgKGluYW1lICE9IE5VTEwpCi0gICAgUHJpbnR2KG5hdGl2ZWNhbGwsIHRhYjgsICIgX3NlbGYgPSAiLCBtb2R1bGUsICIuIiwgU3dpZ19uYW1lX2NvbnN0cnVjdChpbmFtZSksICIoIiwgMCk7Ci0gIGVsc2UKLSAgICBQcmludHYobmF0aXZlY2FsbCwgdGFiOCwgIiBfc2VsZiA9ICIsIG1vZHVsZSwgIi4iLCBTd2lnX25hbWVfY29uc3RydWN0KHNoYWRvd19jbGFzc25hbWUpLCAiKCIsIDApOwotCi0gIGludCBwY291bnQgPSBQYXJtTGlzdF9sZW4obCk7Ci0gIGlmKHBjb3VudCA9PSAwKSAgLy8gV2UgbXVzdCBoYXZlIGEgZGVmYXVsdCBjb25zdHJ1Y3RvcgotICAgIGhhdmVfZGVmYXVsdF9jb25zdHJ1Y3RvciA9IDE7Ci0KLSAgUGFybSAqcCA9IGw7Ci0gIGZvciAoaW50IGkgPSAwOyBpIDwgcGNvdW50IDsgaSsrLCBwID0gR2V0bmV4dChwKSkgewotICAgIERhdGFUeXBlICpwdCA9IEdldHR5cGUocCk7Ci0gICAgY2hhciAgICAgKnBuID0gR2V0bmFtZShwKTsKLQotICAgIC8vIFByb2R1Y2Ugc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZ3VtZW50cwotICAgIGlmKHBuICYmICoocG4pKQotICAgICAgc3RyY3B5KGFyZyxwbik7Ci0gICAgZWxzZSB7Ci0gICAgICBzcHJpbnRmKGFyZywiYXJnJWQiLGkpOworICBpZihzaGFkb3cgJiYgIWlzX211bHRpcGxlX2RlZmluaXRpb24oKSkgeworICAgIGlmKCFzaGFkb3dfY2xhc3NkZWZfZW1pdHRlZCkgZW1pdF9zaGFkb3dfY2xhc3NkZWYoKTsKKyAgCisgICAgU3RyaW5nICpuYXRpdmVjYWxsID0gTmV3U3RyaW5nKCIiKTsKKyAgICBjaGFyIGFyZ1syNTZdOworICAKKyAgICBQcmludGYoZl9zaGFkb3csICIgIHB1YmxpYyAlcygiLCBzaGFkb3dfY2xhc3NuYW1lKTsKKyAgCisgICAgUHJpbnR2KG5hdGl2ZWNhbGwsICIgICAgaWYoZ2V0Q1B0cigpID09IDApIHtcbiIsIDApOworICAgIGlmIChpbmFtZSAhPSBOVUxMKQorICAgICAgUHJpbnR2KG5hdGl2ZWNhbGwsIHRhYjgsICIgX2NQdHIgPSAiLCBtb2R1bGUsICIuIiwgU3dpZ19uYW1lX2NvbnN0cnVjdChpbmFtZSksICIoIiwgMCk7CisgICAgZWxzZQorICAgICAgUHJpbnR2KG5hdGl2ZWNhbGwsIHRhYjgsICIgX2NQdHIgPSAiLCBtb2R1bGUsICIuIiwgU3dpZ19uYW1lX2NvbnN0cnVjdChzaGFkb3dfY2xhc3NuYW1lKSwgIigiLCAwKTsKKyAgCisgICAgaW50IHBjb3VudCA9IFBhcm1MaXN0X2xlbihsKTsKKyAgICBpZihwY291bnQgPT0gMCkgIC8vIFdlIG11c3QgaGF2ZSBhIGRlZmF1bHQgY29uc3RydWN0b3IKKyAgICAgIGhhdmVfZGVmYXVsdF9jb25zdHJ1Y3RvciA9IDE7CisgIAorICAgIC8qIE91dHB1dCBlYWNoIHBhcmFtZXRlciAqLworICAgIFBhcm0gKnAgPSBsOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGNvdW50IDsgaSsrLCBwID0gR2V0bmV4dChwKSkgeworICAgICAgU3dpZ1R5cGUgKnB0ID0gR2V0dHlwZShwKTsKKyAgICAgIFN0cmluZyAgICpwbiA9IEdldG5hbWUocCk7CisgICAgICBTdHJpbmcgICAqamF2YXBhcmFtdHlwZSA9IE5ld1N0cmluZygiIik7CisgIAorICAgICAgLyogUHJvZHVjZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc291cmNlIGFuZCB0YXJnZXQgYXJndW1lbnRzICovCisgICAgICBpZihwbiAmJiAqKENoYXIocG4pKSkKKyAgICAgICAgc3RyY3B5KGFyZyxDaGFyKHBuKSk7CisgICAgICBlbHNlIHsKKyAgICAgICAgc3ByaW50ZihhcmcsImFyZyVkIixpKTsKKyAgICAgIH0KKyAgCisgICAgICBpZihpc19zaGFkb3cocHQpKSB7CisgIAkgIFByaW50dihuYXRpdmVjYWxsLCBhcmcsICIuZ2V0Q1B0cigpIiwgMCk7CisgICAgICB9IGVsc2UgUHJpbnR2KG5hdGl2ZWNhbGwsIGFyZywgMCk7CisgIAorICAgICAgLyogR2V0IHRoZSBqYXZhIHR5cGUgb2YgdGhlIHBhcmFtZXRlciAqLworICAgICAgU3dpZ1RvSmF2YVR5cGUocHQsIHBuLCBqYXZhcGFyYW10eXBlLCBzaGFkb3cpOyAKKyAgCisgICAgICAvKiBBZGQgdG8gamF2YSBzaGFkb3cgZnVuY3Rpb24gaGVhZGVyICovCisgICAgICBQcmludGYoZl9zaGFkb3csICIlcyAlcyIsIGphdmFwYXJhbXR5cGUsIGFyZyk7CisgIAorICAgICAgaWYoaSAhPSBwY291bnQtMSkgeworICAgICAgICBQcmludGYobmF0aXZlY2FsbCwgIiwgIik7CisgICAgICAgIFByaW50ZihmX3NoYWRvdywgIiwgIik7CisgICAgICB9CisgICAgICBEZWxldGUoamF2YXBhcmFtdHlwZSk7CiAgICAgfQotCi0gICAgY2hhciAqanR5cGUgPSBKYXZhVHlwZUZyb21UeXBlbWFwKChjaGFyKikianR5cGUiLCB0eXBlbWFwX2xhbmcsIHB0LCBwbik7Ci0gICAgaWYoIWp0eXBlKSBqdHlwZSA9IFN3aWdUY1RvSmF2YVR5cGUocHQsIDAsIDApOwotCi0gICAgY2hhciAqanN0eXBlID0gSmF2YVR5cGVGcm9tVHlwZW1hcCgoY2hhciopImpzdHlwZSIsIHR5cGVtYXBfbGFuZywgcHQsIHBuKTsKLSAgICBpZighanN0eXBlICYmIChEYXRhVHlwZV9HZXR0eXBlY29kZShwdCkgPT0gVF9VU0VSKSAmJiAoRGF0YVR5cGVfaXNfcG9pbnRlcihwdCkgPD0gMSkpIHsKLQkgIGpzdHlwZSA9IEdldENoYXIoc2hhZG93X2NsYXNzZXMsIERhdGFUeXBlX0dldG5hbWUocHQpKTsKLSAgICB9Ci0KLSAgICAvLyBBZGQgdG8gamF2YSBmdW5jdGlvbiBoZWFkZXIKLSAgICBQcmludGYoZl9zaGFkb3csICIlcyAlcyIsIChqc3R5cGUpID8ganN0eXBlIDoganR5cGUsIGFyZyk7Ci0KLSAgICBpZigoRGF0YVR5cGVfR2V0dHlwZWNvZGUocHQpID09IFRfVVNFUikgJiYgKERhdGFUeXBlX2lzX3BvaW50ZXIocHQpIDw9IDEpICYmIEdldGF0dHIoc2hhZG93X2NsYXNzZXMsRGF0YVR5cGVfR2V0bmFtZShwdCkpKSB7Ci0JUHJpbnR2KG5hdGl2ZWNhbGwsYXJnLCAiLl9zZWxmIiwgMCk7Ci0gICAgfSBlbHNlIFByaW50dihuYXRpdmVjYWxsLCBhcmcsIDApOwotCi0gICAgaWYoaSAhPSBwY291bnQtMSkgewotICAgICAgUHJpbnRmKG5hdGl2ZWNhbGwsICIsICIpOwotICAgICAgUHJpbnRmKGZfc2hhZG93LCAiLCAiKTsKLSAgICB9CisgIAorICAKKyAgICBQcmludGYoZl9zaGFkb3csICIpIHtcbiIpOworICAgIFByaW50dihuYXRpdmVjYWxsLAorICAJICIpO1xuIiwKKyAgCSB0YWI4LCAiIF9jTWVtT3duID0gdHJ1ZTtcbiIsCisgIAkgIiAgICB9XG4iLAorICAJIDApOworICAKKyAgICBQcmludGYoZl9zaGFkb3csICIlcyIsIG5hdGl2ZWNhbGwpOworICAgIFByaW50ZihmX3NoYWRvdywgIiAgfVxuXG4iKTsKKyAgICBEZWxldGUobmF0aXZlY2FsbCk7CiAgIH0KLQotCi0gIFByaW50ZihmX3NoYWRvdywgIikge1xuIik7Ci0gIFByaW50dihuYXRpdmVjYWxsLAotCSAiKTtcbiIsCi0JIHRhYjgsICIgX3NlbGZvd24gPSB0cnVlO1xuIiwKLQkgIiAgICB9XG4iLAotCSAwKTsKLQotICBQcmludGYoZl9zaGFkb3csICIlcyIsIG5hdGl2ZWNhbGwpOwotICBQcmludGYoZl9zaGFkb3csICIgIH1cblxuIik7Ci0gIERlbGV0ZShuYXRpdmVjYWxsKTsKIH0KIAogdm9pZCBKQVZBOjpjcHBfZGVzdHJ1Y3RvcihjaGFyICpuYW1lLCBjaGFyICpuZXduYW1lKSB7CiAgIHRoaXMtPkxhbmd1YWdlOjpjcHBfZGVzdHJ1Y3RvcihuYW1lLG5ld25hbWUpOwogCi0gIGlmKCFzaGFkb3cpIHJldHVybjsKLSAgaWYoIXNoYWRvd19jbGFzc2RlZl9lbWl0dGVkKSBlbWl0X3NoYWRvd19jbGFzc2RlZigpOwotCi0gIGNoYXIgKnJlYWxuYW1lID0gKG5ld25hbWUpID8gbmV3bmFtZSA6IG5hbWU7Ci0KLSAgaWYoZmluYWxpemUpIHsKLSAgICBQcmludGYoZl9zaGFkb3csICIgIHByb3RlY3RlZCB2b2lkIGZpbmFsaXplKCkge1xuIik7Ci0gICAgUHJpbnRmKGZfc2hhZG93LCAiICAgIGlmKF9zZWxmb3duKSB7XG4iKTsKLSAgICBQcmludGYoZl9zaGFkb3csICIgICAgICBfZGVsZXRlKCk7XG4iKTsKKyAgaWYoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKKyAgICBpZighc2hhZG93X2NsYXNzZGVmX2VtaXR0ZWQpIGVtaXRfc2hhZG93X2NsYXNzZGVmKCk7CisgIAorICAgIGNoYXIgKnJlYWxuYW1lID0gKG5ld25hbWUpID8gbmV3bmFtZSA6IG5hbWU7CisgIAorICAgIGlmKCFub2ZpbmFsaXplKSB7CisgICAgICBQcmludGYoZl9zaGFkb3csICIgIHByb3RlY3RlZCB2b2lkIGZpbmFsaXplKCkge1xuIik7CisgICAgICBQcmludGYoZl9zaGFkb3csICIgICAgX2RlbGV0ZSgpO1xuIik7CisgICAgICBQcmludGYoZl9zaGFkb3csICIgIH07XG5cbiIpOworICAgIH0KKyAgCisgICAgUHJpbnRmKGZfc2hhZG93LCAiICBwdWJsaWMgdm9pZCBfZGVsZXRlKCkge1xuIik7CisgICAgUHJpbnRmKGZfc2hhZG93LCAiICAgIGlmKGdldENQdHIoKSAhPSAwICYmIF9jTWVtT3duKSB7XG4iKTsKKyAgICBQcmludGYoZl9zaGFkb3csICJcdCVzLiVzKF9jUHRyKTtcbiIsIG1vZHVsZSwgU3dpZ19uYW1lX2Rlc3Ryb3koc2hhZG93X2NsYXNzbmFtZSkpOworICAgIFByaW50ZihmX3NoYWRvdywgIlx0X2NQdHIgPSAwO1xuIik7CiAgICAgUHJpbnRmKGZfc2hhZG93LCAiICAgIH1cbiIpOwotICAgIFByaW50ZihmX3NoYWRvdywgIiAgfTtcblxuIik7CisgICAgUHJpbnRmKGZfc2hhZG93LCAiICB9XG5cbiIpOwogICB9Ci0KLSAgUHJpbnRmKGZfc2hhZG93LCAiICBwdWJsaWMgdm9pZCBfZGVsZXRlKCkge1xuIik7Ci0gIFByaW50ZihmX3NoYWRvdywgIiAgICBpZihfc2VsZiAhPSAwICYmICVzLmNsYXNzID09IF9zZWxmQ2xhc3MoKSkge1xuIiwgc2hhZG93X2NsYXNzbmFtZSk7Ci0gIFByaW50ZihmX3NoYWRvdywgIlx0JXMuJXMoX3NlbGYpO1xuIiwgbW9kdWxlLCBTd2lnX25hbWVfZGVzdHJveShyZWFsbmFtZSkpOwotICBQcmludGYoZl9zaGFkb3csICJcdF9zZWxmID0gMDtcbiIpOwotICBQcmludGYoZl9zaGFkb3csICIgICAgfVxuIik7Ci0gIFByaW50ZihmX3NoYWRvdywgIiAgfVxuXG4iKTsKIH0KIAogdm9pZCBKQVZBOjpjcHBfY2xhc3NfZGVjbChjaGFyICpuYW1lLCBjaGFyICpyZW5hbWUsIGNoYXIgKnR5cGUpIHsKLSAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9jbGFzc19kZWNsKG5hbWUscmVuYW1lLCB0eXBlKTsKLQotICBpZighc2hhZG93KSByZXR1cm47Ci0KLSAgY2hhciAqcmVhbG5hbWUgPSAocmVuYW1lKSA/IHJlbmFtZSA6IG5hbWU7Ci0KLSAgU2V0YXR0cihzaGFkb3dfY2xhc3NlcyxuYW1lLCByZWFsbmFtZSk7Ci0gIGlmKHR5cGUgJiYgc3RyY21wKHR5cGUsICJzdHJ1Y3QiKSA9PSAwKSB7Ci0gICAgc3ByaW50ZihiaWdidWYsICJzdHJ1Y3QgJXMiLCBuYW1lKTsKLSAgICBTZXRhdHRyKHNoYWRvd19jbGFzc2VzLCBiaWdidWYsIHJlbmFtZSk7CisgIFN0cmluZyAqc3R5cGU7CisvKiBSZWdpc3RlciB0aGUgY2xhc3MgYXMgb25lIGZvciB3aGljaCB0aGVyZSB3aWxsIGJlIGEgamF2YSBzaGFkb3cgY2xhc3MgKi8KKyAgaWYgKHNoYWRvdykgeworICAgIHN0eXBlID0gTmV3U3RyaW5nKG5hbWUpOworICAgIFN3aWdUeXBlX2FkZF9wb2ludGVyKHN0eXBlKTsKKyAgICBTZXRhdHRyKHNoYWRvd19jbGFzc2VzLHN0eXBlLHJlbmFtZSk7CisgICAgRGVsZXRlKHN0eXBlKTsKKyAgICBpZiAoc3RybGVuKHR5cGUpID4gMCkgeworICAgICAgc3R5cGUgPSBOZXdTdHJpbmdmKCIlcyAlcyIsdHlwZSxuYW1lKTsKKyAgICAgIFN3aWdUeXBlX2FkZF9wb2ludGVyKHN0eXBlKTsKKyAgICAgIFNldGF0dHIoc2hhZG93X2NsYXNzZXMsc3R5cGUscmVuYW1lKTsKKyAgICAgIERlbGV0ZShzdHlwZSk7CisgICAgfQogICB9CiB9CiAKQEAgLTEzMDgsMzkgKzE2OTEsNTUgQEAKIAogICBpZighc2hhZG93KSByZXR1cm47CiAKLSAgaW50IGNudCA9IDA7Ci0gIGNoYXIgKipiYyA9IGJhc2VjbGFzczsKLSAgd2hpbGUoKmJjKyspIGNudCsrOworICBpbnQgaSA9IDA7CisgIHdoaWxlKGJhc2VjbGFzc1tpXSkgaSsrOwogCi0gIGlmKGNudCA+IDEpCisgIGlmKGkgPiAxKQogICAgIFByaW50ZihzdGRlcnIsICJXYXJuaW5nOiAlcyBpbmhlcml0cyBmcm9tIG11bHRpcGxlIGJhc2UgY2xhc3Nlcy4gTXVsdGlwbGUgaW5oZXJpdGFuY2UgaXMgbm90IHN1cHBvcnRlZC5cbiIsIHNoYWRvd19jbGFzc25hbWUpOwogCi0gIHNoYWRvd19iYXNlY2xhc3MgPSBTd2lnX2NvcHlfc3RyaW5nKCpiYXNlY2xhc3MpOworICBpPTA7CisgIGNoYXIgKmJjOworICBpZiAoYmFzZWNsYXNzW2ldKSB7CisgICAgLyogU2VlIGlmIHRoaXMgaXMgYSBjbGFzcyB3ZSBrbm93IGFib3V0ICovCisgICAgU3RyaW5nICpiID0gTmV3U3RyaW5nKGJhc2VjbGFzc1tpXSk7CisgICAgYmMgPSBDaGFyKGlzX3NoYWRvdyhiKSk7CisgICAgaWYgKGJjICYmIHRoaXNfc2hhZG93X2Jhc2VjbGFzcykKKyAgICAgIFByaW50Zih0aGlzX3NoYWRvd19iYXNlY2xhc3MsICJleHRlbmRzICVzICIsIGJjKTsKKyAgICBEZWxldGUoYik7CisgIH0KIH0KIAotdm9pZCBKQVZBOjpjcHBfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KSB7Ci0gIGlmKHNoYWRvdyAmJiAhc2hhZG93X2NsYXNzZGVmX2VtaXR0ZWQpIGVtaXRfc2hhZG93X2NsYXNzZGVmKCk7Cit2b2lkIEpBVkE6OmNwcF92YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnQpIHsKKyAgc2hhZG93X3ZhcmlhYmxlX25hbWUgPSBTd2lnX2NvcHlfc3RyaW5nKChpbmFtZSkgPyBpbmFtZSA6IG5hbWUpOwogCi0gIGlmKHNoYWRvdykgbWVtYmVyX2Z1bmMgPSAxOwotICBzaGFkb3dfbmFtZSA9IFN3aWdfY29weV9zdHJpbmcoKGluYW1lKSA/IGluYW1lIDogbmFtZSk7CisgIHdyYXBwaW5nX21lbWJlciA9IDE7CisgIHZhcmlhYmxlX3dyYXBwZXJfZmxhZyA9IDE7CiAgIHRoaXMtPkxhbmd1YWdlOjpjcHBfdmFyaWFibGUobmFtZSwgaW5hbWUsIHQpOwotICBtZW1iZXJfZnVuYyA9IDA7CisgIHdyYXBwaW5nX21lbWJlciA9IDA7CisgIHZhcmlhYmxlX3dyYXBwZXJfZmxhZyA9IDA7CiB9CiAKLXZvaWQgSkFWQTo6Y3BwX3N0YXRpY192YXIoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KSB7Ci0gIGlmKHNoYWRvdykgbWVtYmVyX2Z1bmMgPSAxOwotICBzaGFkb3dfbmFtZSA9IFN3aWdfY29weV9zdHJpbmcoKGluYW1lKSA/IGluYW1lIDogbmFtZSk7Cit2b2lkIEpBVkE6OmNwcF9zdGF0aWNfdmFyKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdCkgeworICBzaGFkb3dfdmFyaWFibGVfbmFtZSA9IFN3aWdfY29weV9zdHJpbmcoKGluYW1lKSA/IGluYW1lIDogbmFtZSk7CisKKy8qCisgIHdyYXBwaW5nX21lbWJlciA9IDE7CisgIHN0YXRpY19mbGFnID0gMTsKKyAgdmFyaWFibGVfd3JhcHBlcl9mbGFnID0gMTsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9zdGF0aWNfdmFyKG5hbWUsIGluYW1lLCB0KTsKLSAgbWVtYmVyX2Z1bmMgPSAwOworICB3cmFwcGluZ19tZW1iZXIgPSAwOworICBzdGF0aWNfZmxhZyA9IDA7CisgIHZhcmlhYmxlX3dyYXBwZXJfZmxhZyA9IDA7CisqLworICBQcmludGYoc3RkZXJyLCAiSWdub3JpbmcgJXM6OiVzLiBTdGF0aWMgbWVtYmVyIHZhcmlhYmxlcyBhcmUgYnJva2VuIGluIFNXSUchXG4iLCBzaGFkb3dfY2xhc3NuYW1lLCBzaGFkb3dfdmFyaWFibGVfbmFtZSk7CiB9CiAKLXZvaWQgSkFWQTo6Y3BwX2RlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkgewotICBpZihzaGFkb3cgJiYgIXNoYWRvd19jbGFzc2RlZl9lbWl0dGVkKSBlbWl0X3NoYWRvd19jbGFzc2RlZigpOwordm9pZCBKQVZBOjpjcHBfZGVjbGFyZV9jb25zdChjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnR5cGUsIGNoYXIgKnZhbHVlKSB7CisgIHNoYWRvd192YXJpYWJsZV9uYW1lID0gU3dpZ19jb3B5X3N0cmluZygoaW5hbWUpID8gaW5hbWUgOiBuYW1lKTsKIAotICBpZihzaGFkb3cpIG1lbWJlcl9mdW5jID0gMTsKLSAgc2hhZG93X25hbWUgPSBTd2lnX2NvcHlfc3RyaW5nKChpbmFtZSkgPyBpbmFtZSA6IG5hbWUpOworICB3cmFwcGluZ19tZW1iZXIgPSAxOwogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX2RlY2xhcmVfY29uc3QobmFtZSwgaW5hbWUsIHR5cGUsIHZhbHVlKTsKLSAgbWVtYmVyX2Z1bmMgPSAwOworICB3cmFwcGluZ19tZW1iZXIgPSAwOwogfQogCiAKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvamF2YS5oIGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9qYXZhLmgKaW5kZXggNmM4NmI0NS4uZDViMWVkYiAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9qYXZhLmgKKysrIGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9qYXZhLmgKQEAgLTE4LDExICsxOCwxMiBAQAogICB2b2lkIGluaXRpYWxpemUodm9pZCk7CiAgIHZvaWQgaGVhZGVycyh2b2lkKTsKICAgdm9pZCBjbG9zZSh2b2lkKTsKLSAgdm9pZCBzZXRfbW9kdWxlKGNoYXIgKixjaGFyICoqKTsKKyAgdm9pZCBzZXRfbW9kdWxlKGNoYXIgKik7CiAgIHZvaWQgY3JlYXRlX2NvbW1hbmQoY2hhciAqLCBjaGFyICopOwogCiAgIHZvaWQgcHJhZ21hKGNoYXIgKmxhbmcsIGNoYXIgKmNvZGUsIGNoYXIgKnZhbHVlKTsKICAgdm9pZCBhZGRfdHlwZWRlZihTd2lnVHlwZSAqdCwgY2hhciAqbmFtZSk7CisgIHZvaWQgY3BwX3ByYWdtYShQcmFnbWEgKnBsaXN0KTsKICAgdm9pZCBjcHBfb3Blbl9jbGFzcyhjaGFyICpjbGFzc25hbWUsIGNoYXIgKnJlbmFtZSwgY2hhciAqY3R5cGUsIGludCBzdHJpcCk7CiAgIHZvaWQgY3BwX2Nsb3NlX2NsYXNzKCk7CiAgIHZvaWQgY3BwX21lbWJlcl9mdW5jKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdCwgUGFybUxpc3QgKmwpOyAKQEAgLTM5LDExICs0MCwxMiBAQAogICB2b2lkIGVtaXRfY2xhc3NkZWYoKTsKICAgdm9pZCBlbWl0X3NoYWRvd19jbGFzc2RlZigpOwogICBjaGFyICpKTklDQUxMKERPSFN0cmluZ19vcl9jaGFyICpmdW5jKTsKLSAgY2hhciAqU3dpZ1RjVG9KbmlUeXBlKFN3aWdUeXBlICp0LCBpbnQgcmV0KTsKLSAgY2hhciAqU3dpZ1RjVG9KYXZhVHlwZShTd2lnVHlwZSAqdCwgaW50IHJldCwgaW50IGluU2hhZG93KTsKLSAgY2hhciAqU3dpZ1RjVG9KbmlTY2FsYXJUeXBlKFN3aWdUeXBlICp0KTsKLSAgY2hhciAqSmF2YVR5cGVGcm9tVHlwZW1hcChjaGFyICpvcCwgY2hhciAqbGFuZywgU3dpZ1R5cGUgKnQsIGNoYXIgKnBuYW1lKTsKKyAgdm9pZCBTd2lnVG9KTklUeXBlKFN3aWdUeXBlICp0LCBTdHJpbmdfb3JfY2hhciAqcG5hbWUsIFN0cmluZyogam5pX3R5cGUpOworICB2b2lkIFN3aWdUb0phdmFUeXBlKFN3aWdUeXBlICp0LCBTdHJpbmdfb3JfY2hhciAqcG5hbWUsIFN0cmluZyogamF2YV90eXBlLCBpbnQgc2hhZG93X2ZsYWcpOworICBjaGFyICpTd2lnVG9KYXZhQXJyYXlUeXBlKFN3aWdUeXBlICp0KTsKKyAgY2hhciAqSmF2YVR5cGVGcm9tVHlwZW1hcChjaGFyICpvcCwgU3dpZ1R5cGUgKnQsIFN0cmluZ19vcl9jaGFyICpwbmFtZSk7CiAgIGNoYXIgKm1ha2VWYWxpZEpuaU5hbWUoY2hhciAqbmFtZSk7CiAgIGNoYXIgKkphdmFNZXRob2RTaWduYXR1cmUoU3dpZ1R5cGUgKnQsIGludCByZXQsIGludCBpblNoYWRvdyk7CiAgIHZvaWQgd3JpdGVSZWdpc3Rlck5hdGl2ZXMoKTsKKyAgdm9pZCBjcHBfZnVuYyhjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnQsIFBhcm1MaXN0ICpsLCBTdHJpbmcqIGphdmFfZnVuY3Rpb25fbmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9tenNjaGVtZS5jeHggYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL216c2NoZW1lLmN4eAppbmRleCA3NDE0YmE4Li5lYjNjYzI1IDEwMDY0NAotLS0gYS9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL216c2NoZW1lLmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL216c2NoZW1lLmN4eApAQCAtMTAxLDYgKzEwMSw5IEBACiAgIC8vIFNldCBuYW1lIG9mIHR5cGVtYXBzCiAKICAgdHlwZW1hcF9sYW5nID0gKGNoYXIqKSJtenNjaGVtZSI7CisKKyAgLy8gUmVhZCBpbiBkZWZhdWx0IHR5cGVtYXBzICovCisgIFNXSUdfY29uZmlnX2ZpbGUoIm16c2NoZW1lLmkiKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExMyw5ICsxMTYsNiBAQAogTVpTQ0hFTUU6OnBhcnNlICgpCiB7CiAgIGluaXRfZnVuY19kZWYgPSBOZXdTdHJpbmcoIiIpOwotICBwcmludGYgKCJHZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBNenNjaGVtZVxuIik7Ci0KLSAgaW5pdF9mdW5jX2RlZiA9IE5ld1N0cmluZygiIik7CiAKICAgLy8gUHJpbnQgb3V0IE1aU0NIRU1FIHNwZWNpZmljIGhlYWRlcnMKIApAQCAtMTcyLDIxICsxNzIsMTEgQEAKIHZvaWQKIE1aU0NIRU1FOjpoZWFkZXJzICh2b2lkKQogewotICBTd2lnX2Jhbm5lciAoZl9oZWFkZXIpOworICBQcmludGYoZl9ydW50aW1lLCAiLyogLSotIGJ1ZmZlci1yZWFkLW9ubHk6IHQgLSotIHZpOiBzZXQgcm86ICovXG4iKTsKKyAgU3dpZ19iYW5uZXIgKGZfcnVudGltZSk7CiAKLSAgUHJpbnRmIChmX2hlYWRlciwgIi8qIEltcGxlbWVudGF0aW9uIDogTVpTQ0hFTUUgKi9cblxuIik7Ci0gIFByaW50ZiAoZl9oZWFkZXIsICIjaW5jbHVkZSA8c3RkaW8uaD5cbiIpOwotICBQcmludGYgKGZfaGVhZGVyLCAiI2luY2x1ZGUgPHN0cmluZy5oPlxuIik7Ci0gIFByaW50ZiAoZl9oZWFkZXIsICIjaW5jbHVkZSA8c3RkbGliLmg+XG4iKTsKLQotICAvLyBpbnNlcnQgbXpzY2hlbWUuc3dnCi0KLSAgaWYgKCFOb0luY2x1ZGUpIHsKLSAgICBpZiAoU3dpZ19pbnNlcnRfZmlsZSAoIm16c2NoZW1lLnN3ZyIsIGZfaGVhZGVyKSA9PSAtMSkgewotICAgICAgUHJpbnRmIChzdGRlcnIsICJTV0lHIDogRmF0YWwgZXJyb3IuICAiKTsKLSAgICAgIFByaW50ZiAoc3RkZXJyLCAiVW5hYmxlIHRvIGxvY2F0ZSAnbXpzY2hlbWUuc3dnJyBpbiBTV0lHIGxpYnJhcnkuXG4iKTsKLSAgICAgIFNXSUdfZXhpdCAoMSk7Ci0gICAgfQorICBpZiAoTm9JbmNsdWRlKSB7CisgICAgUHJpbnRmKGZfcnVudGltZSwgIiNkZWZpbmUgU1dJR19OT0lOQ0xVREVcbiIpOwogICB9CiB9CiAKQEAgLTI1NywxMyArMjQ3LDM0IEBACiBzdGF0aWMgdm9pZAogdGhyb3dfdW5oYW5kbGVkX216c2NoZW1lX3R5cGVfZXJyb3IgKFN3aWdUeXBlICpkKQogewotICBmZmx1c2ggKHN0ZG91dCk7Ci0gIGZwcmludGYgKHN0ZGVyciwgIkVSUk9SOiBVbmhhbmRsZWQgTVpTQ0hFTUUgdHlwZSBlcnJvci5cbiIpOwotICBmcHJpbnRmIChzdGRlcnIsICJzdHI6ICVzXG4iLCBDaGFyKFN3aWdUeXBlX3N0cihkLDApKSk7Ci0gIGZwcmludGYgKHN0ZGVyciwgImxzdHI6ICVzXG4iLCBDaGFyKFN3aWdUeXBlX2xzdHIoZCwwKSkpOwotICBmcHJpbnRmIChzdGRlcnIsICJtYW5nbGVzdHI6ICVzXG4iLCBDaGFyKFN3aWdUeXBlX21hbmdsZXN0cihkKSkpOwotICBQcmludGYgKHN0ZGVyciwgIlxuXG5CQUlMSU5HLi4uXG4iKTsgLy8gZm9yIG5vdyAtdHRuCi0gIGFib3J0KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyAtdHRuCisgIFByaW50ZiAoc3RkZXJyLCAiJXMgOiBMaW5lICVkLiBVbmFibGUgdG8gaGFuZGxlIHR5cGUgJXMuXG4iLCBpbnB1dF9maWxlLCBsaW5lX251bWJlciwgU3dpZ1R5cGVfc3RyKGQsMCkpOworICBlcnJvcl9jb3VudCsrOworfQorCisvKiBSZXR1cm4gdHJ1ZSBpZmYgVCBpcyBhIHBvaW50ZXIgdHlwZSAqLworCitzdGF0aWMgaW50Citpc19hX3BvaW50ZXIgKFN3aWdUeXBlICp0KQoreworICByZXR1cm4gU3dpZ1R5cGVfaXNwb2ludGVyKFN3aWdUeXBlX3R5cGVkZWZfcmVzb2x2ZV9hbGwodCkpOworfQorCisvKiBTYW1lIGFzIFN3aWdfdHlwZW1hcF9sb29rdXAgYnV0IGZhbGwgYmFjayB0byBgaW50JyB3aGVuIGBlbnVtJyBpcworICAgcmVxdWVzdGVkIC0tIGVudW0gaGFuZGxpbmcgaXMgc29tZXdoYXQgYnJva2VuIGluIHRoZSAxLjEgcGFyc2VyLgorICAgQnV0IHdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIGl0IG5vdyBzaW5jZSBpdCBpcyBkZXByZWNhdGVkLiAqLworCitzdGF0aWMgY2hhciAqCittenNjaGVtZV90eXBlbWFwX2xvb2t1cChjb25zdCBjaGFyICpvcCwgU3dpZ1R5cGUgKnR5cGUsIGNvbnN0IFN0cmluZ19vcl9jaGFyICpwbmFtZSwgU3RyaW5nX29yX2NoYXIgKnNvdXJjZSwKKwkJICAgICBTdHJpbmdfb3JfY2hhciAqdGFyZ2V0LCBXcmFwcGVyICpmKQoreworICBjaGFyICp0bTsKKyAgdG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikgb3AsIHR5cGUsIChjaGFyKilwbmFtZSwgc291cmNlLCB0YXJnZXQsIGYpOworICBpZiAoIXRtKSB7CisgICAgU3dpZ1R5cGUgKmJhc2UgPSBTd2lnVHlwZV90eXBlZGVmX3Jlc29sdmVfYWxsKHR5cGUpOworICAgIGlmIChzdHJuY21wKENoYXIoYmFzZSksICJlbnVtICIsIDUpPT0wKQorICAgICAgdG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikgb3AsIChjaGFyKikgImludCIsIChjaGFyKilwbmFtZSwgc291cmNlLCB0YXJnZXQsIGYpOworICB9CisgIHJldHVybiB0bTsKIH0KIAogdm9pZApAQCAtMjgxLDkgKzI5Miw2IEBACiAgIFN0cmluZyAqYnVpbGQgPSBOZXdTdHJpbmcoIiIpOwogICBTd2lnVHlwZSAqdDsKICAgY2hhciAgKnRtOwotICBpbnQgbmVlZF9sZW4gPSAwOwotICBpbnQgbmVlZF90ZW1wYyA9IDA7Ci0gIGludCBoYXZlX2J1aWxkID0gMDsKICAgaW50IGFyZ291dF9zZXQgPSAwOwogICBpbnQgaSA9IDA7CiAKQEAgLTMwNCw5ICszMTIsOCBAQAogICAvLyB0aGV5IGFyZSBjYWxsZWQgYXJnMCwgYXJnMSwgLi4uCiAgIC8vIHRoZSByZXR1cm4gdmFsdWUgaXMgY2FsbGVkIHJlc3VsdAogCi0gIGludCBwY291bnQgPSBlbWl0X2FyZ3MoZCwgbCwgZik7CisgIC8qIHBjb3VudCA9ICovIGVtaXRfYXJncyhkLCBsLCBmKTsKICAgaW50IG51bWFyZ3MgPSAwOwotICBpbnQgbnVtb3B0ID0gMDsKIAogICAvLyBhZGRzIGxvY2FsIHZhcmlhYmxlcwogICBXcmFwcGVyX2FkZF9sb2NhbChmLCAiX3RlbXBjIiwgImNoYXIgKl90ZW1wYyIpOwpAQCAtMzMyLDcgKzMzOSw3IEBACiAgICAgICBQcmludHYoZi0+Y29kZSwgIi8qICIsIENoYXIoR2V0bmFtZShwKSksICIgaWdub3JlZC4uLiAqL1xuIiwgMCk7CiAgICAgZWxzZSB7CiAgICAgICArK251bWFyZ3M7Ci0gICAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCAoKGNoYXIqKSJpbiIsCisgICAgICBpZiAoKHRtID0gbXpzY2hlbWVfdHlwZW1hcF9sb29rdXAgKCJpbiIsCiAJCQkJICAgICBHZXR0eXBlKHApLCBHZXRuYW1lKHApLCBzb3VyY2UsIHRhcmdldCwgZikpKSB7CiAJUHJpbnR2KGYtPmNvZGUsIHRtLCAiXG4iLCAwKTsKIAltcmVwbGFjZSAoZi0+Y29kZSwgYXJnbnVtLCBhcmcsIHByb2NfbmFtZSk7CkBAIC0zNDMsNyArMzUwLDcgQEAKIAl0ID0gU3dpZ1R5cGVfdHlwZWRlZl9yZXNvbHZlKEdldHR5cGUocCkpOwogCiAJLy8gaWYgYSBwb2ludGVyIHRoZW4gZ2V0IGl0IAotCWlmIChTd2lnVHlwZV9pc3BvaW50ZXIodCkpIHsKKwlpZiAoaXNfYV9wb2ludGVyKHQpKSB7CiAJICBnZXRfcG9pbnRlciAocHJvY19uYW1lLCBpLCB0LCBmKTsKIAl9CiAJLy8gbm90IGEgcG9pbnRlcgpAQCAtMzUzLDcgKzM2MCw3IEBACiAKICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbnN0cmFpbnRzLgogCi0gICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAgKChjaGFyKikiY2hlY2siLCAKKyAgICBpZiAoKHRtID0gbXpzY2hlbWVfdHlwZW1hcF9sb29rdXAgKCJjaGVjayIsIAogCQkJCSAgIEdldHR5cGUocCksIEdldG5hbWUocCksIHNvdXJjZSwgdGFyZ2V0LCBmKSkpIHsKICAgICAgIC8vIFllcC4gIFVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CiAgICAgICBQcmludHYoZi0+Y29kZSwgdG0sICJcbiIsIDApOwpAQCAtMzYyLDcgKzM2OSw3IEBACiAKICAgICAvLyBQYXNzIG91dHB1dCBhcmd1bWVudHMgYmFjayB0byB0aGUgY2FsbGVyLgogCi0gICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAgKChjaGFyKikiYXJnb3V0IiwgCisgICAgaWYgKCh0bSA9IG16c2NoZW1lX3R5cGVtYXBfbG9va3VwICgiYXJnb3V0IiwgCiAJCQkJICAgR2V0dHlwZShwKSwgR2V0bmFtZShwKSwgc291cmNlLCB0YXJnZXQsIGYpKSkgewogICAgICAgLy8gWWVwLiAgVXNlIGl0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQKICAgICAgIFByaW50dihvdXRhcmcsIHRtLCAiXG4iLDApOwpAQCAtMzcxLDcgKzM3OCw3IEBACiAgICAgfQogCiAgICAgLy8gRnJlZSB1cCBhbnkgbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhlIGFyZ3VtZW50cy4KLSAgICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCAoKGNoYXIqKSJmcmVlYXJnIiwKKyAgICBpZiAoKHRtID0gbXpzY2hlbWVfdHlwZW1hcF9sb29rdXAgKCJmcmVlYXJnIiwKIAkJCQkgICBHZXR0eXBlKHApLCBHZXRuYW1lKHApLCBzb3VyY2UsIHRhcmdldCwgZikpKSB7CiAgICAgICAvLyBZZXAuICBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdAogICAgICAgUHJpbnR2KGNsZWFudXAsIHRtLCAiXG4iLDApOwpAQCAtMzkxLDE0ICszOTgsMTQgQEAKICAgICAgIFByaW50dihmLT5jb2RlLCB0YWI0LCAic3dpZ19yZXN1bHQgPSBzY2hlbWVfdm9pZDtcbiIsMCk7CiAgIH0KIAotICBlbHNlIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwICgoY2hhciopIm91dCIsCisgIGVsc2UgaWYgKCh0bSA9IG16c2NoZW1lX3R5cGVtYXBfbG9va3VwICgib3V0IiwKIAkJCQkgICAgICBkLCBuYW1lLCAoY2hhciopInJlc3VsdCIsIChjaGFyKikic3dpZ19yZXN1bHQiLCBmKSkpIHsKICAgICBQcmludHYoZi0+Y29kZSwgdG0sICJcbiIsMCk7CiAgICAgbXJlcGxhY2UgKGYtPmNvZGUsIGFyZ251bSwgYXJnLCBwcm9jX25hbWUpOwogICB9CiAgIC8vIG5vIHR5cGVtYXAgZm91bmQgYW5kIG5vdCB2b2lkIHRoZW4gY3JlYXRlIGEgU2NoZW1lX09iamVjdCBob2xkaW5nCiAgIC8vIHRoZSBDIHBvaW50ZXIgYW5kIHJldHVybiBpdAotICBlbHNlIGlmIChTd2lnVHlwZV9pc3BvaW50ZXIoZCkpIHsKKyAgZWxzZSBpZiAoaXNfYV9wb2ludGVyKGQpKSB7CiAgICAgUHJpbnR2KGYtPmNvZGUsIHRhYjQsCiAJICAgInN3aWdfcmVzdWx0ID0gc3dpZ19tYWtlX2NfcG9pbnRlcigiLAogCSAgICJyZXN1bHQsIFwiIiwKQEAgLTQxOCw3ICs0MjUsNyBAQAogICAvLyBMb29rIGZvciBhbnkgcmVtYWluaW5nIGNsZWFudXAKIAogICBpZiAoTmV3T2JqZWN0KSB7Ci0gICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAgKChjaGFyKikibmV3ZnJlZSIsCisgICAgaWYgKCh0bSA9IG16c2NoZW1lX3R5cGVtYXBfbG9va3VwICgibmV3ZnJlZSIsCiAJCQkJICAgZCwgaW5hbWUsIChjaGFyKikicmVzdWx0IiwgKGNoYXIqKSIiLCBmKSkpIHsKICAgICAgIFByaW50dihmLT5jb2RlLCB0bSwgIlxuIiwwKTsKICAgICAgIG1yZXBsYWNlIChmLT5jb2RlLCBhcmdudW0sIGFyZywgcHJvY19uYW1lKTsKQEAgLTQyNyw3ICs0MzQsNyBAQAogCiAgIC8vIEZyZWUgYW55IG1lbW9yeSBhbGxvY2F0ZWQgYnkgdGhlIGZ1bmN0aW9uIGJlaW5nIHdyYXBwZWQuLgogCi0gIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwICgoY2hhciopInJldCIsCisgIGlmICgodG0gPSBtenNjaGVtZV90eXBlbWFwX2xvb2t1cCAoInJldCIsCiAJCQkJIGQsIG5hbWUsIChjaGFyKikicmVzdWx0IiwgKGNoYXIqKSIiLCBmKSkpIHsKICAgICAvLyBZZXAuICBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdAogICAgIFByaW50dihmLT5jb2RlLCB0bSwgIlxuIiwwKTsKQEAgLTUwNCwxMSArNTExLDExIEBACiAgIFByaW50dihwcm9jX25hbWUsIGluYW1lLDApOwogICBSZXBsYWNlKHByb2NfbmFtZSwgIl8iLCAiLSIsIERPSF9SRVBMQUNFX0FOWSk7CiAKLSAgaWYgKChTd2lnVHlwZV90eXBlKHQpICE9IFRfVVNFUikgfHwgKFN3aWdUeXBlX2lzcG9pbnRlcih0KSkpIHsKKyAgaWYgKChTd2lnVHlwZV90eXBlKHQpICE9IFRfVVNFUikgfHwgKGlzX2FfcG9pbnRlcih0KSkpIHsKIAogICAgIFByaW50ZiAoZl93cmFwcGVycywgInN0YXRpYyBTY2hlbWVfT2JqZWN0IColcyhpbnQgYXJnYywgU2NoZW1lX09iamVjdCoqIGFyZ3YpIHtcbiIsIHZhcl9uYW1lKTsKIAotICAgIGlmICgoU3dpZ1R5cGVfdHlwZSh0KSA9PSBUX0NIQVIpIHx8IChTd2lnVHlwZV9pc3BvaW50ZXIodCkpKXsKKyAgICBpZiAoKFN3aWdUeXBlX3R5cGUodCkgPT0gVF9DSEFSKSB8fCAoaXNfYV9wb2ludGVyKHQpKSl7CiAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdCBjaGFyICpfdGVtcCwgX3B0ZW1wWzEyOF07XG4iKTsKICAgICAgIFByaW50ZiAoZl93cmFwcGVycywgIlx0IGludCAgX2xlbjtcbiIpOwogICAgIH0KQEAgLTUyOCwxNCArNTM1LDE0IEBACiAgICAgICBQcmludGYgKGZfd3JhcHBlcnMsICJcdFx0IHNjaGVtZV9zaWduYWxfZXJyb3IoXCJVbmFibGUgdG8gc2V0ICVzLiAgIgogCSAgICAgICJWYXJpYWJsZSBpcyByZWFkIG9ubHkuXCIpO1xuIiwgaW5hbWUpOwogICAgIH0KLSAgICBlbHNlIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwICgoY2hhciopInZhcmluIiwKKyAgICBlbHNlIGlmICgodG0gPSBtenNjaGVtZV90eXBlbWFwX2xvb2t1cCAoInZhcmluIiwKIAkJCQkJdCwgbmFtZSwgKGNoYXIqKSJhcmd2WzBdIiwgbmFtZSwwKSkpIHsKICAgICAgIFByaW50dih0bTIsIHRtLDApOwogICAgICAgbXJlcGxhY2UodG0yLCBhcmdudW0sIGFyZywgcHJvY19uYW1lKTsKICAgICAgIFByaW50dihmX3dyYXBwZXJzLCB0bTIsICJcbiIsMCk7CiAgICAgfQotICAgIGVsc2UgaWYgKFN3aWdUeXBlX2lzcG9pbnRlcih0KSkgewotICAgICAgaWYgKChTd2lnVHlwZV90eXBlKHQpID09IFRfQ0hBUikgJiYgKFN3aWdUeXBlX2lzcG9pbnRlcih0KSA9PSAxKSkgeworICAgIGVsc2UgaWYgKGlzX2FfcG9pbnRlcih0KSkgeworICAgICAgaWYgKChTd2lnVHlwZV90eXBlKHQpID09IFRfQ0hBUikgJiYgKGlzX2FfcG9pbnRlcih0KSA9PSAxKSkgewogCVByaW50ZiAoZl93cmFwcGVycywgIlx0XHQgX3RlbXAgPSBTQ0hFTUVfU1RSX1ZBTChhcmd2WzBdKTtcbiIpOwogCVByaW50ZiAoZl93cmFwcGVycywgIlx0XHQgX2xlbiA9IFNDSEVNRV9TVFJMRU5fVkFMKGFyZ3ZbMF0pO1xuIik7CiAJUHJpbnRmIChmX3dyYXBwZXJzLCAiXHRcdCBpZiAoJXMpIHsgZnJlZSglcyk7fVxuIiwgbmFtZSwgbmFtZSk7CkBAIC01NDQsOSArNTUxLDkgQEAKIAlQcmludGYgKGZfd3JhcHBlcnMsICJcdFx0IHN0cm5jcHkoJXMsX3RlbXAsX2xlbik7XG4iLCBuYW1lKTsKICAgICAgIH0gZWxzZSB7CiAJLy8gU2V0IHRoZSB2YWx1ZSBvZiBhIHBvaW50ZXIKLQlQcmludGYoZl93cmFwcGVycywgIlx0XHRpZiAoIXN3aWdfZ2V0X2NfcG9pbnRlcihhcmd2WzBdLCBcIiVzXCIsICh2b2lkICoqKSAmYXJnMCkpXG4iLAotCSAgICAgICBTd2lnVHlwZV9tYW5nbGVzdHIodCkpOwotCVByaW50ZihmX3dyYXBwZXJzLCAiXHRcdFx0c2NoZW1lX3dyb25nX3R5cGUoXCIlc1wiLCAlcywgMCwgYXJnYywgYXJndiIsIFwKKwlQcmludGYoZl93cmFwcGVycywgIlx0XHRpZiAoIXN3aWdfZ2V0X2NfcG9pbnRlcihhcmd2WzBdLCBcIiVzXCIsICh2b2lkICoqKSAmJXMpKVxuIiwKKwkgICAgICAgU3dpZ1R5cGVfbWFuZ2xlc3RyKHQpLCBuYW1lKTsKKwlQcmludGYoZl93cmFwcGVycywgIlx0XHRcdHNjaGVtZV93cm9uZ190eXBlKFwiJXNcIiwgXCIlc1wiLCAwLCBhcmdjLCBhcmd2KTsiLCBcCiAJICAgICAgIHZhcl9uYW1lLCBTd2lnVHlwZV9tYW5nbGVzdHIodCkpOwogICAgICAgfQogICAgIH0KQEAgLTU1OCwxMiArNTY1LDEyIEBACiAgICAgLy8gTm93IHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIChyZWdhcmRsZXNzCiAgICAgLy8gb2YgZXZhbHVhdGluZyBvciBzZXR0aW5nKQogCi0gICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAgKChjaGFyKikidmFyb3V0IiwKKyAgICBpZiAoKHRtID0gbXpzY2hlbWVfdHlwZW1hcF9sb29rdXAgKCJ2YXJvdXQiLAogCQkJCSAgIHQsIG5hbWUsIG5hbWUsIChjaGFyKikic3dpZ19yZXN1bHQiLDApKSkgewogICAgICAgUHJpbnRmIChmX3dyYXBwZXJzLCAiJXNcbiIsIHRtKTsKICAgICB9Ci0gICAgZWxzZSBpZiAoU3dpZ1R5cGVfaXNwb2ludGVyKHQpKSB7Ci0gICAgICBpZiAoKFN3aWdUeXBlX3R5cGUodCkgPT0gVF9DSEFSKSAmJiAoU3dpZ1R5cGVfaXNwb2ludGVyKHQpID09IDEpKSB7CisgICAgZWxzZSBpZiAoaXNfYV9wb2ludGVyKHQpKSB7CisgICAgICBpZiAoKFN3aWdUeXBlX3R5cGUodCkgPT0gVF9DSEFSKSAmJiAoaXNfYV9wb2ludGVyKHQpID09IDEpKSB7CiAJUHJpbnRmIChmX3dyYXBwZXJzLCAiXHQgc3dpZ19yZXN1bHQgPSBzY2hlbWVfbWFrZV9zdHJpbmcoJXMpO1xuIiwgbmFtZSk7CiAgICAgICB9IGVsc2UgewogCS8vIElzIGFuIG9yZGluYXJ5IHBvaW50ZXIgdHlwZS4KQEAgLTYzMCw3ICs2MzcsNyBAQAogICBQcmludHYocHJvY19uYW1lLCBuYW1lLDApOwogICBSZXBsYWNlKHByb2NfbmFtZSwgIl8iLCAiLSIsIERPSF9SRVBMQUNFX0FOWSk7CiAKLSAgaWYgKChTd2lnVHlwZV90eXBlKHR5cGUpID09IFRfVVNFUikgJiYgKCFTd2lnVHlwZV9pc3BvaW50ZXIodHlwZSkpKSB7CisgIGlmICgoU3dpZ1R5cGVfdHlwZSh0eXBlKSA9PSBUX1VTRVIpICYmICghaXNfYV9wb2ludGVyKHR5cGUpKSkgewogICAgIGZwcmludGYgKHN0ZGVyciwgIiVzIDogTGluZSAlZC4gIFVuc3VwcG9ydGVkIGNvbnN0YW50IHZhbHVlLlxuIiwKIAkgICAgIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKICAgICByZXR1cm47CkBAIC02MzksMTggKzY0NiwxOCBAQAogICAvLyBTZWUgaWYgdGhlcmUncyBhIHR5cGVtYXAKIAogICBQcmludHYocnZhbHVlLCB2YWx1ZSwwKTsKLSAgaWYgKChTd2lnVHlwZV90eXBlKHR5cGUpID09IFRfQ0hBUikgJiYgKFN3aWdUeXBlX2lzcG9pbnRlcih0eXBlKSA9PSAxKSkgeworICBpZiAoKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9DSEFSKSAmJiAoaXNfYV9wb2ludGVyKHR5cGUpID09IDEpKSB7CiAgICAgdGVtcCA9IENvcHkocnZhbHVlKTsKICAgICBDbGVhcihydmFsdWUpOwogICAgIFByaW50dihydmFsdWUsICJcIiIsIHRlbXAsICJcIiIsMCk7CiAgIH0KLSAgaWYgKChTd2lnVHlwZV90eXBlKHR5cGUpID09IFRfQ0hBUikgJiYgKFN3aWdUeXBlX2lzcG9pbnRlcih0eXBlKSA9PSAwKSkgeworICBpZiAoKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9DSEFSKSAmJiAoaXNfYV9wb2ludGVyKHR5cGUpID09IDApKSB7CiAgICAgRGVsZXRlKHRlbXApOwogICAgIHRlbXAgPSBDb3B5KHJ2YWx1ZSk7CiAgICAgQ2xlYXIocnZhbHVlKTsKICAgICBQcmludHYocnZhbHVlLCAiJyIsIHRlbXAsICInIiwwKTsKICAgfQotICBpZiAoKHRtID0gU3dpZ190eXBlbWFwX2xvb2t1cCAoKGNoYXIqKSJjb25zdCIsIHR5cGUsIG5hbWUsCisgIGlmICgodG0gPSBtenNjaGVtZV90eXBlbWFwX2xvb2t1cCAoImNvbnN0IiwgdHlwZSwgbmFtZSwKIAkJCQkgcnZhbHVlLCBuYW1lLDApKSkgewogICAgIC8vIFllcC4gIFVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CiAgICAgUHJpbnRmIChmX2luaXQsICIlc1xuIiwgdG0pOwpAQCAtNjU4LDggKzY2NSwxMCBAQAogICAgIC8vIENyZWF0ZSB2YXJpYWJsZSBhbmQgYXNzaWduIGl0IGEgdmFsdWUKIAogICAgIFByaW50ZiAoZl9oZWFkZXIsICJzdGF0aWMgJXMgJXMgPSAiLCBTd2lnVHlwZV9zdHIodHlwZSwwKSwgdmFyX25hbWUpOwotICAgIGlmICgoU3dpZ1R5cGVfdHlwZSh0eXBlKSA9PSBUX0NIQVIpICYmIChTd2lnVHlwZV9pc3BvaW50ZXIodHlwZSkgPD0gMSkpIHsKKyAgICBpZiAoKFN3aWdUeXBlX3R5cGUodHlwZSkgPT0gVF9TVFJJTkcpKSB7CiAgICAgICBQcmludGYgKGZfaGVhZGVyLCAiXCIlc1wiO1xuIiwgdmFsdWUpOworICAgIH0gZWxzZSBpZiAoU3dpZ1R5cGVfdHlwZSh0eXBlKSA9PSBUX0NIQVIpIHsKKyAgICAgIFByaW50ZiAoZl9oZWFkZXIsICJcJyVzXCc7XG4iLCB2YWx1ZSk7CiAgICAgfSBlbHNlIHsKICAgICAgIFByaW50ZiAoZl9oZWFkZXIsICIlcztcbiIsIHZhbHVlKTsKICAgICB9CkBAIC03MjEsOCArNzMwLDggQEAKIAogICAgICAgLy8gUHJpbnQgdGhlIHR5cGUuCiAgICAgICBQcmludHYodXNhZ2UsIiA8IiwgR2V0bmFtZShwdCksIDApOwotICAgICAgaWYgKFN3aWdUeXBlX2lzcG9pbnRlcihwdCkpIHsKLQlmb3IgKGludCBqID0gMDsgaiA8IFN3aWdUeXBlX2lzcG9pbnRlcihwdCk7IGorKykgeworICAgICAgaWYgKGlzX2FfcG9pbnRlcihwdCkpIHsKKwlmb3IgKGludCBqID0gMDsgaiA8IGlzX2FfcG9pbnRlcihwdCk7IGorKykgewogCSAgUHV0YygnKicsIHVzYWdlKTsKIAl9CiAgICAgICB9CkBAIC03NzMsOCArNzgyLDggQEAKIAogICAgICAgLy8gUHJpbnQgdGhlIHR5cGUuCiAgICAgICBQcmludHYocGFyYW0sIiAkIiwgR2V0bmFtZShwdCksIDApOwotICAgICAgaWYgKFN3aWdUeXBlX2lzcG9pbnRlcihwdCkpIHsKLQlmb3IgKGogPSAwOyBqIDwgU3dpZ1R5cGVfaXNwb2ludGVyKHB0KSAtIDE7IGorKykgeworICAgICAgaWYgKGlzX2FfcG9pbnRlcihwdCkpIHsKKwlmb3IgKGogPSAwOyBqIDwgaXNfYV9wb2ludGVyKHB0KSAtIDE7IGorKykgewogCSAgUHV0YygnKicscGFyYW0pOwogCX0KICAgICAgIH0KZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvcGVybDUuY3h4IGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9wZXJsNS5jeHgKaW5kZXggYzE3MTczZC4uOGJjZWI2MSAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9wZXJsNS5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9wZXJsNS5jeHgKQEAgLTE5LDkgKzE5LDExIEBACiAKICNpbmNsdWRlICJtb2QxMS5oIgogI2luY2x1ZGUgInBlcmw1LmgiCisjaW5jbHVkZSAic3dpZ2NvbmZpZy5oIgogCiBzdGF0aWMgY2hhciAqdXNhZ2UgPSAoY2hhciopIlwKIFBlcmw1IE9wdGlvbnMgKGF2YWlsYWJsZSB3aXRoIC1wZXJsNSlcblwKKyAgICAgLWxkZmxhZ3MgICAgICAgIC0gUHJpbnQgcnVudGltZSBsaWJyYXJpZXMgdG8gbGluayB3aXRoXG5cCiAgICAgIC1tb2R1bGUgbmFtZSAgICAtIFNldCBtb2R1bGUgbmFtZVxuXAogICAgICAtaW50ZXJmYWNlIG5hbWUgLSBTZXQgaW50ZXJmYWNlIG5hbWVcblwKICAgICAgLXBhY2thZ2UgbmFtZSAgIC0gU2V0IHBhY2thZ2UgcHJlZml4XG5cCkBAIC00OSw3ICs1MSw2IEBACiAKIHN0YXRpYyAgaW50ICAgICAgYmxlc3NlZCA9IDA7ICAgICAgICAgICAgICAgIC8qIEVuYWJsZSBvYmplY3Qgb3JpZW50ZWQgZmVhdHVyZXMgKi8KIHN0YXRpYyAgSGFzaCAgICAgKmNsYXNzZXMgPSAwOyAgICAgICAgICAgICAgIC8qIEEgaGFzaCB0YWJsZSBmb3Igc3RvcmluZyB0aGUgY2xhc3NlcyB3ZSd2ZSBzZWVuIHNvIGZhciAqLwotc3RhdGljICBIYXNoICAgICAqc3ltYm9scyA9IDA7CiBzdGF0aWMgIGludCAgICAgIGhhdmVfY29uc3RydWN0b3IgPSAwOwogc3RhdGljICBpbnQgICAgICBoYXZlX2Rlc3RydWN0b3I9IDA7CiBzdGF0aWMgIGludCAgICAgIGhhdmVfZGF0YV9tZW1iZXJzID0gMDsKQEAgLTEzNCw2ICsxMzUsOSBAQAogCSAgICBTd2lnX21hcmtfYXJnKGkpOwogCSAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLWhlbHAiKSA9PSAwKSB7CiAJICAgIGZwdXRzKHVzYWdlLHN0ZGVycik7CisJICB9IGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1sZGZsYWdzIikgPT0gMCkgeworCSAgICBwcmludGYoIiVzXG4iLCBTV0lHX1BFUkxfUlVOVElNRSk7CisJICAgIFNXSUdfZXhpdCAoRVhJVF9TVUNDRVNTKTsKIAkgIH0KICAgICAgIH0KICAgfQpAQCAtMTUwLDcgKzE1NCw2IEBACiBQRVJMNTo6cGFyc2UoKSB7CiAKICAgY2xhc3NlcyA9IE5ld0hhc2goKTsKLSAgc3ltYm9scyA9IE5ld0hhc2goKTsKIAogICB2aW5pdCAgICAgICAgICA9IE5ld1N0cmluZygiIik7CiAgIHBtICAgICAgICAgICAgID0gTmV3U3RyaW5nKCIiKTsKQEAgLTI4MiwxMiArMjg1LDEyIEBACiAgIFByaW50ZihmX2luaXQsIlhTKFNXSUdfaW5pdCkge1xuIik7CiAgIFByaW50ZihmX2luaXQsIlx0IGRYU0FSR1M7XG4iKTsKICAgUHJpbnRmKGZfaW5pdCwiXHQgaW50IGk7XG4iKTsKLSAgUHJpbnRmKGZfaW5pdCwiXHQgY2hhciAqZmlsZSA9IF9fRklMRV9fO1xuIik7CisgIFByaW50ZihmX2luaXQsIlx0IGNoYXIgKmZpbGUgPSAoY2hhciAqKSBfX0ZJTEVfXztcbiIpOwogICBQcmludHYoZl9pbml0LAogCSAiZm9yIChpID0gMDsgc3dpZ190eXBlc19pbml0aWFsW2ldOyBpKyspIHtcbiIsCiAJICJzd2lnX3R5cGVzW2ldID0gU1dJR19UeXBlUmVnaXN0ZXIoc3dpZ190eXBlc19pbml0aWFsW2ldKTtcbiIsCiAJICJ9XG4iLCAwKTsKLSAgUHJpbnRmKGZfaW5pdCwiXHQgbmV3WFMoXCIlczo6dmFyXyVzX2luaXRcIiwgX3dyYXBfcGVybDVfJXNfdmFyX2luaXQsIGZpbGUpO1xuIixwYWNrYWdlLGNtb2R1bGUsIGNtb2R1bGUpOworICBQcmludGYoZl9pbml0LCJcdCBuZXdYUygoY2hhciAqKSBcIiVzOjp2YXJfJXNfaW5pdFwiLCBfd3JhcF9wZXJsNV8lc192YXJfaW5pdCwgZmlsZSk7XG4iLHBhY2thZ2UsY21vZHVsZSwgY21vZHVsZSk7CiAKICAgUHJpbnR2KHZpbml0LAogCSAiWFMoX3dyYXBfcGVybDVfIiwgY21vZHVsZSwgIl92YXJfaW5pdCkge1xuIiwKQEAgLTQ4OCw3ICs0OTEsNyBAQAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIHZvaWQKIFBFUkw1OjpjcmVhdGVfY29tbWFuZChjaGFyICpjbmFtZSwgY2hhciAqaW5hbWUpIHsKLSAgUHJpbnRmKGZfaW5pdCwiXHQgbmV3WFMoXCIlczo6JXNcIiwgJXMsIGZpbGUpO1xuIiwgcGFja2FnZSwgaW5hbWUsIFN3aWdfbmFtZV93cmFwcGVyKGNuYW1lKSk7CisgIFByaW50ZihmX2luaXQsIlx0IG5ld1hTKChjaGFyICopIFwiJXM6OiVzXCIsICVzLCBmaWxlKTtcbiIsIHBhY2thZ2UsIGluYW1lLCBTd2lnX25hbWVfd3JhcHBlcihjbmFtZSkpOwogICBpZiAoZXhwb3J0X2FsbCkgewogICAgIFByaW50ZihleHBvcnRlZCwiJXMgIixpbmFtZSk7CiAgIH0KQEAgLTcyNyw3ICs3MzAsNyBAQAogCiAgIC8qIE5vdyByZWdpc3RlciB0aGUgZnVuY3Rpb24gKi8KIAotICBQcmludGYoZl9pbml0LCJcdCBuZXdYUyhcIiVzOjolc1wiLCAlcywgZmlsZSk7XG4iLCBwYWNrYWdlLCBpbmFtZSwgU3dpZ19uYW1lX3dyYXBwZXIoaW5hbWUpKTsKKyAgUHJpbnRmKGZfaW5pdCwiXHQgbmV3WFMoKGNoYXIgKikgXCIlczo6JXNcIiwgJXMsIGZpbGUpO1xuIiwgcGFja2FnZSwgaW5hbWUsIFN3aWdfbmFtZV93cmFwcGVyKGluYW1lKSk7CiAKICAgaWYgKGV4cG9ydF9hbGwpIHsKICAgICBQcmludGYoZXhwb3J0ZWQsIiVzICIsIGluYW1lKTsKQEAgLTEyNTksNyArMTI2Miw3IEBACiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogdm9pZAogUEVSTDU6OmFkZF9uYXRpdmUoY2hhciAqbmFtZSwgY2hhciAqZnVuY25hbWUsIFN3aWdUeXBlICosIFBhcm1MaXN0ICopIHsKLSAgUHJpbnRmKGZfaW5pdCwiXHQgbmV3WFMoXCIlczo6JXNcIiwgJXMsIGZpbGUpO1xuIiwgcGFja2FnZSxuYW1lLCBmdW5jbmFtZSk7CisgIFByaW50ZihmX2luaXQsIlx0IG5ld1hTKChjaGFyICopIFwiJXM6OiVzXCIsICVzLCBmaWxlKTtcbiIsIHBhY2thZ2UsbmFtZSwgZnVuY25hbWUpOwogICBpZiAoZXhwb3J0X2FsbCkKICAgICBQcmludGYoZXhwb3J0ZWQsIiVzICIsbmFtZSk7CiAgIGlmIChibGVzc2VkKSB7CkBAIC0xNDg5LDExMCArMTQ5MiwxMDUgQEAKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9tZW1iZXJfZnVuYyhuYW1lLGluYW1lLHQsbCk7CiAgIG1lbWJlcl9mdW5jID0gMDsKIAotICBpZiAoIWJsZXNzZWQpIHJldHVybjsKLQotICBmdW5jID0gTmV3U3RyaW5nKCIiKTsKLSAgY25hbWUgPSBOZXdTdHJpbmcoInBlcmw1OiIpOwotCi0gIC8qIE5vdyBlbWl0IGEgUGVybCB3cmFwcGVyIGZ1bmN0aW9uIGFyb3VuZCBvdXIgbWVtYmVyIGZ1bmN0aW9uLCB3ZSBtaWdodCBuZWVkCi0gICAgIHRvIHBhdGNoIHVwIHNvbWUgYXJndW1lbnRzIGFsb25nIHRoZSB3YXkgKi8KLQotICBpZiAoIWluYW1lKQotICAgIHJlYWxuYW1lID0gbmFtZTsKLSAgZWxzZQotICAgIHJlYWxuYW1lID0gaW5hbWU7Ci0KLSAgUHJpbnRmKGNuYW1lLCIlczo6JXMiLGNsYXNzX25hbWUscmVhbG5hbWUpOwotICBpZiAoR2V0YXR0cihzeW1ib2xzLGNuYW1lKSkgewotICAgIHJldHVybjsgICAvKiBGb3JnZXQgaXQsIHdlIHNhdyB0aGlzIGFscmVhZHkgKi8KLSAgfQotICBTZXRhdHRyKHN5bWJvbHMsY25hbWUsY25hbWUpOwotCi0gIFByaW50dihmdW5jLAotCSAic3ViICIsIHJlYWxuYW1lLCAiIHtcbiIsCi0JIHRhYjQsICJteSBAYXJncyA9IEBfO1xuIiwKLQkgMCk7Ci0KLSAgLyogTm93IHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBhbmQgcGF0Y2ggdXAgdGhlIGFyZ3VtZW50IGxpc3QuICBJZiBhbnkKLSAgICAgYXJndW1lbnRzIHRvIG91ciBmdW5jdGlvbiBjb3JyZXNwb25kIHRvIG90aGVyIFBlcmwgb2JqZWN0cywgd2UKLSAgICAgbmVlZCB0byBleHRyYWN0IHRoZW0gZnJvbSBhIHRpZWQtaGFzaCB0YWJsZSBvYmplY3QuICovCi0KLSAgcCA9IGw7Ci0gIHBjb3VudCA9IFBhcm1MaXN0X2xlbihsKTsKLSAgbnVtb3B0ID0gY2hlY2tfbnVtb3B0KGwpOwotICBpID0gMTsKLSAgd2hpbGUocCkgewotICAgIFN3aWdUeXBlICpwdCA9IEdldHR5cGUocCk7Ci0gICAgaWYgKCFHZXRpZ25vcmUocCkpIHsKLSAgICAgIGNoYXIgc291cmNlTnRhcmdldFs1MTJdOwotICAgICAgc3ByaW50Zihzb3VyY2VOdGFyZ2V0LCAiJGFyZ3NbJWRdIiwgaSk7Ci0KLSAgICAgIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikicGVybDVpbiIscHQsKGNoYXIqKSIiLHNvdXJjZU50YXJnZXQsc291cmNlTnRhcmdldCwwKSkpIHsKLQlQcmludGYoZnVuYywiJXNcbiIsdG0pOwotCW5lZWRfd3JhcHBlciA9IDE7CisgIGlmIChibGVzc2VkICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKKyAgICBmdW5jID0gTmV3U3RyaW5nKCIiKTsKKyAgICBjbmFtZSA9IE5ld1N0cmluZygicGVybDU6Iik7CisgIAorICAgIC8qIE5vdyBlbWl0IGEgUGVybCB3cmFwcGVyIGZ1bmN0aW9uIGFyb3VuZCBvdXIgbWVtYmVyIGZ1bmN0aW9uLCB3ZSBtaWdodCBuZWVkCisgICAgICAgdG8gcGF0Y2ggdXAgc29tZSBhcmd1bWVudHMgYWxvbmcgdGhlIHdheSAqLworICAKKyAgICBpZiAoIWluYW1lKQorICAgICAgcmVhbG5hbWUgPSBuYW1lOworICAgIGVsc2UKKyAgICAgIHJlYWxuYW1lID0gaW5hbWU7CisgIAorICAgIFByaW50ZihjbmFtZSwiJXM6OiVzIixjbGFzc19uYW1lLHJlYWxuYW1lKTsKKyAgICBQcmludHYoZnVuYywKKyAgICAgICJzdWIgIiwgcmVhbG5hbWUsICIge1xuIiwKKyAgICAgIHRhYjQsICJteSBAYXJncyA9IEBfO1xuIiwKKyAgICAgIDApOworICAKKyAgICAvKiBOb3cgd2UgaGF2ZSB0byBnbyB0aHJvdWdoIGFuZCBwYXRjaCB1cCB0aGUgYXJndW1lbnQgbGlzdC4gIElmIGFueQorICAgICAgIGFyZ3VtZW50cyB0byBvdXIgZnVuY3Rpb24gY29ycmVzcG9uZCB0byBvdGhlciBQZXJsIG9iamVjdHMsIHdlCisgICAgICAgbmVlZCB0byBleHRyYWN0IHRoZW0gZnJvbSBhIHRpZWQtaGFzaCB0YWJsZSBvYmplY3QuICovCisgIAorICAgIHAgPSBsOworICAgIHBjb3VudCA9IFBhcm1MaXN0X2xlbihsKTsKKyAgICBudW1vcHQgPSBjaGVja19udW1vcHQobCk7CisgICAgaSA9IDE7CisgICAgd2hpbGUocCkgeworICAgICAgU3dpZ1R5cGUgKnB0ID0gR2V0dHlwZShwKTsKKyAgICAgIGlmICghR2V0aWdub3JlKHApKSB7CisgICAgICAgIGNoYXIgc291cmNlTnRhcmdldFs1MTJdOworICAgICAgICBzcHJpbnRmKHNvdXJjZU50YXJnZXQsICIkYXJnc1slZF0iLCBpKTsKKyAgCisgICAgICAgIGlmICgodG0gPSBTd2lnX3R5cGVtYXBfbG9va3VwKChjaGFyKikicGVybDVpbiIscHQsKGNoYXIqKSIiLHNvdXJjZU50YXJnZXQsc291cmNlTnRhcmdldCwwKSkpIHsKKyAgICAgIFByaW50ZihmdW5jLCIlc1xuIix0bSk7CisgICAgICBuZWVkX3dyYXBwZXIgPSAxOworICAgICAgICB9CisgICAgICAgIGkrKzsKICAgICAgIH0KLSAgICAgIGkrKzsKKyAgICAgIHAgPSBHZXRuZXh0KHApOwogICAgIH0KLSAgICBwID0gR2V0bmV4dChwKTsKLSAgfQotCi0gIC8qIE9rYXkuICBXZSd2ZSBtYWRlIGFyZ3VtZW50IGFkanVzdG1lbnRzLCBub3cgY2FsbCBpbnRvIHRoZSBwYWNrYWdlICovCi0KLSAgUHJpbnR2KGZ1bmMsCi0JIHRhYjQsICJteSAkcmVzdWx0ID0gIiwgcGFja2FnZSwgIjo6IiwgU3dpZ19uYW1lX21lbWJlcihjbGFzc19uYW1lLHJlYWxuYW1lKSwKLSAgICAgICAgIihAYXJncyk7XG4iLAotCSAwKTsKLQotICAvKiBOb3cgY2hlY2sgdG8gc2VlIHdoYXQga2luZCBvZiByZXR1cm4gcmVzdWx0IHdhcyBmb3VuZC4KLSAgICogSWYgdGhpcyBmdW5jdGlvbiBpcyByZXR1cm5pbmcgYSByZXN1bHQgYnkgJ3ZhbHVlJywgU1dJRyBkaWQgYW4KLSAgICogaW1wbGljaXQgbWFsbG9jL25ldy4gICBXZSdsbCBtYXJrIHRoZSBvYmplY3QgbGlrZSBpdCB3YXMgY3JlYXRlZAotICAgKiBpbiBQZXJsIHNvIHdlIGNhbiBnYXJiYWdlIGNvbGxlY3QgaXQuICovCi0KLSAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJwZXJsNW91dCIsdCwoY2hhciopIiIsbmFtZSwoY2hhciopInN2IiwwKSkpIHsKKyAgCisgICAgLyogT2theS4gIFdlJ3ZlIG1hZGUgYXJndW1lbnQgYWRqdXN0bWVudHMsIG5vdyBjYWxsIGludG8gdGhlIHBhY2thZ2UgKi8KKyAgCiAgICAgUHJpbnR2KGZ1bmMsCi0JICAgdG0sICJcbiIsCi0JICAgdGFiNCwicmV0dXJuICRyZXN1bHQ7XG4iLAotCSAgICJ9XG4iLAotCSAgIDApOwotICAgIG5lZWRfd3JhcHBlciA9IDE7Ci0KLSAgfSBlbHNlIGlmIChpc19zaGFkb3codCkpIHsKLQotICAgIFByaW50dihmdW5jLHRhYjQsICJyZXR1cm4gdW5kZWYgaWYgKCFkZWZpbmVkKCRyZXN1bHQpKTtcbiIsIDApOwotCi0gICAgLyogSWYgd2UncmUgcmV0dXJuaW5nIGFuIG9iamVjdCBieSB2YWx1ZSwgcHV0IGl0J3MgcmVmZXJlbmNlCi0gICAgICAgaW50byBvdXIgbG9jYWwgaGFzaCB0YWJsZSAqLwotCi0gICAgaWYgKCFTd2lnVHlwZV9pc3BvaW50ZXIodCkgfHwgTmV3T2JqZWN0KSB7Ci0gICAgICBQcmludHYoZnVuYywgdGFiNCwgIiQiLCBpc19zaGFkb3codCksICI6Ok9XTkVSeyRyZXN1bHR9ID0gMTsgXG4iLCAwKTsKKyAgICAgIHRhYjQsICJteSAkcmVzdWx0ID0gIiwgcGFja2FnZSwgIjo6IiwgU3dpZ19uYW1lX21lbWJlcihjbGFzc19uYW1lLHJlYWxuYW1lKSwKKyAgICAgICAgICAiKEBhcmdzKTtcbiIsCisgICAgICAgICAgMCk7CisgIAorICAgIC8qIE5vdyBjaGVjayB0byBzZWUgd2hhdCBraW5kIG9mIHJldHVybiByZXN1bHQgd2FzIGZvdW5kLgorICAgICAqIElmIHRoaXMgZnVuY3Rpb24gaXMgcmV0dXJuaW5nIGEgcmVzdWx0IGJ5ICd2YWx1ZScsIFNXSUcgZGlkIGFuCisgICAgICogaW1wbGljaXQgbWFsbG9jL25ldy4gICBXZSdsbCBtYXJrIHRoZSBvYmplY3QgbGlrZSBpdCB3YXMgY3JlYXRlZAorICAgICAqIGluIFBlcmwgc28gd2UgY2FuIGdhcmJhZ2UgY29sbGVjdCBpdC4gKi8KKyAgCisgICAgaWYgKCh0bSA9IFN3aWdfdHlwZW1hcF9sb29rdXAoKGNoYXIqKSJwZXJsNW91dCIsdCwoY2hhciopIiIsbmFtZSwoY2hhciopInN2IiwwKSkpIHsKKyAgICAgIFByaW50dihmdW5jLAorICAgICAgICAgIHRtLCAiXG4iLAorICAgICAgICAgIHRhYjQsInJldHVybiAkcmVzdWx0O1xuIiwKKyAgICAgICAgICAifVxuIiwKKyAgICAgICAgICAwKTsKKyAgICAgIG5lZWRfd3JhcHBlciA9IDE7CisgIAorICAgIH0gZWxzZSBpZiAoaXNfc2hhZG93KHQpKSB7CisgIAorICAgICAgUHJpbnR2KGZ1bmMsdGFiNCwgInJldHVybiB1bmRlZiBpZiAoIWRlZmluZWQoJHJlc3VsdCkpO1xuIiwgMCk7CisgIAorICAgICAgLyogSWYgd2UncmUgcmV0dXJuaW5nIGFuIG9iamVjdCBieSB2YWx1ZSwgcHV0IGl0J3MgcmVmZXJlbmNlCisgICAgICAgICBpbnRvIG91ciBsb2NhbCBoYXNoIHRhYmxlICovCisgIAorICAgICAgaWYgKCFTd2lnVHlwZV9pc3BvaW50ZXIodCkgfHwgTmV3T2JqZWN0KSB7CisgICAgICAgIFByaW50dihmdW5jLCB0YWI0LCAiJCIsIGlzX3NoYWRvdyh0KSwgIjo6T1dORVJ7JHJlc3VsdH0gPSAxOyBcbiIsIDApOworICAgICAgfQorICAKKyAgICAgIC8qIFdlJ3JlIHJldHVybmluZyBhIFBlcmwgIm9iamVjdCIgb2Ygc29tZSBraW5kLiAgVHVybiBpdCBpbnRvCisgICAgICAgICBhIHRpZWQgaGFzaCAqLworICAKKyAgICAgIFByaW50dihmdW5jLAorICAgICAgICAgIHRhYjQsICJteSAlcmVzdWx0aGFzaDtcbiIsCisgICAgICAgICAgdGFiNCwgInRpZSAlcmVzdWx0aGFzaCwgcmVmKCRyZXN1bHQpLCAkcmVzdWx0O1xuIiwKKyAgICAgICAgICB0YWI0LCAicmV0dXJuIGJsZXNzIFxcJXJlc3VsdGhhc2gsIHJlZigkcmVzdWx0KTtcbiIsCisgICAgICAgICAgIn1cbiIsCisgICAgICAgICAgMCk7CisgIAorICAgICAgbmVlZF93cmFwcGVyID0gMTsKKyAgICB9IGVsc2UgeworICAKKyAgICAgIC8qIEhtbW0uICBUaGlzIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGFueXRoaW5nIEkga25vdyBhYm91dCBzbyBqdXN0CisgICAgICAgICByZXR1cm4gaXQgdW5tb2RpZmllZCAqLworICAKKyAgICAgIFByaW50dihmdW5jLCB0YWI0LCJyZXR1cm4gJHJlc3VsdDtcbiIsICJ9XG4iLCAwKTsKICAgICB9Ci0KLSAgICAvKiBXZSdyZSByZXR1cm5pbmcgYSBQZXJsICJvYmplY3QiIG9mIHNvbWUga2luZC4gIFR1cm4gaXQgaW50bwotICAgICAgIGEgdGllZCBoYXNoICovCi0KLSAgICBQcmludHYoZnVuYywKLQkgICB0YWI0LCAibXkgJXJlc3VsdGhhc2g7XG4iLAotCSAgIHRhYjQsICJ0aWUgJXJlc3VsdGhhc2gsIHJlZigkcmVzdWx0KSwgJHJlc3VsdDtcbiIsCi0JICAgdGFiNCwgInJldHVybiBibGVzcyBcXCVyZXN1bHRoYXNoLCByZWYoJHJlc3VsdCk7XG4iLAotCSAgICJ9XG4iLAotCSAgIDApOwotCi0gICAgbmVlZF93cmFwcGVyID0gMTsKLSAgfSBlbHNlIHsKLQotICAgIC8qIEhtbW0uICBUaGlzIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGFueXRoaW5nIEkga25vdyBhYm91dCBzbyBqdXN0Ci0gICAgICAgcmV0dXJuIGl0IHVubW9kaWZpZWQgKi8KLQotICAgIFByaW50dihmdW5jLCB0YWI0LCJyZXR1cm4gJHJlc3VsdDtcbiIsICJ9XG4iLCAwKTsKKyAgCisgICAgaWYgKG5lZWRfd3JhcHBlcikgeworICAgICAgUHJpbnR2KHBjb2RlLGZ1bmMsMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIFByaW50dihwY29kZSwiKiIscmVhbG5hbWUsIiA9ICoiLCBwYWNrYWdlLCAiOjoiLCBTd2lnX25hbWVfbWVtYmVyKGNsYXNzX25hbWUscmVhbG5hbWUpLCAiO1xuIiwgMCk7CisgICAgfQorICAgIERlbGV0ZShmdW5jKTsKKyAgICBEZWxldGUoY25hbWUpOwogICB9Ci0KLSAgaWYgKG5lZWRfd3JhcHBlcikgewotICAgIFByaW50dihwY29kZSxmdW5jLDApOwotICB9IGVsc2UgewotICAgIFByaW50dihwY29kZSwiKiIscmVhbG5hbWUsIiA9ICoiLCBwYWNrYWdlLCAiOjoiLCBTd2lnX25hbWVfbWVtYmVyKGNsYXNzX25hbWUscmVhbG5hbWUpLCAiO1xuIiwgMCk7Ci0gIH0KLSAgRGVsZXRlKGZ1bmMpOwotICBEZWxldGUoY25hbWUpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTYxNSw5ICsxNjEzLDYgQEAKIHZvaWQgUEVSTDU6OmNwcF92YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgU3dpZ1R5cGUgKnQpIHsKIAogICBjaGFyICpyZWFsbmFtZTsKLSAgU3RyaW5nICpjbmFtZTsKLQotICBjbmFtZSA9IE5ld1N0cmluZygicGVybDU6Iik7CiAKICAgLyogRW1pdCBhIHBhaXIgb2YgZ2V0L3NldCBmdW5jdGlvbnMgZm9yIHRoZSB2YXJpYWJsZSAqLwogCkBAIC0xNjI1LDE2ICsxNjIwLDkgQEAKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF92YXJpYWJsZShuYW1lLCBpbmFtZSwgdCk7CiAgIG1lbWJlcl9mdW5jID0gMDsKIAotICBpZiAoaW5hbWUpIHJlYWxuYW1lID0gaW5hbWU7Ci0gIGVsc2UgcmVhbG5hbWUgPSBuYW1lOwotCi0gIGlmIChibGVzc2VkKSB7Ci0gICAgUHJpbnRmKGNuYW1lLCIlczo6JXMiLCBjbGFzc19uYW1lLCByZWFsbmFtZSk7Ci0gICAgaWYgKEdldGF0dHIoc3ltYm9scyxjbmFtZSkpIHsKLSAgICAgIERlbGV0ZShjbmFtZSk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotICAgIFNldGF0dHIoc3ltYm9scyxjbmFtZSxjbmFtZSk7CisgIGlmIChibGVzc2VkICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKKyAgICBpZiAoaW5hbWUpIHJlYWxuYW1lID0gaW5hbWU7CisgICAgZWxzZSByZWFsbmFtZSA9IG5hbWU7CiAKICAgICAvKiBTdG9yZSBuYW1lIG9mIGtleSBmb3IgZnV0dXJlIHJlZmVyZW5jZSAqLwogICAgIFByaW50ZihtZW1iZXJfa2V5cywiJyVzJywgIiwgcmVhbG5hbWUpOwpAQCAtMTY1Miw3ICsxNjQwLDYgQEAKICAgICAgfQogICB9CiAgIGhhdmVfZGF0YV9tZW1iZXJzKys7Ci0gIERlbGV0ZShjbmFtZSk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjY4LDE2ICsxNjU1LDEzIEBACiAgIFBhcm0gKnA7CiAgIGludCAgIGk7CiAgIFN0cmluZyAqcmVhbG5hbWU7Ci0gIFN0cmluZyAqY25hbWU7Ci0KLSAgY25hbWUgPSBOZXdTdHJpbmcoInBlcmw1OmNvbnN0cnVjdG9yOiIpOwogCiAgIC8qIEVtaXQgYW4gb2xkLXN0eWxlIGNvbnN0cnVjdG9yIGZvciB0aGlzIGNsYXNzICovCiAKICAgbWVtYmVyX2Z1bmMgPSAxOwogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX2NvbnN0cnVjdG9yKG5hbWUsIGluYW1lLCBsKTsKIAotICBpZiAoYmxlc3NlZCkgeworICBpZiAoYmxlc3NlZCAmJiAhaXNfbXVsdGlwbGVfZGVmaW5pdGlvbigpKSB7CiAKICAgICBpZiAoaW5hbWUpCiAgICAgICByZWFsbmFtZSA9IGluYW1lOwpAQCAtMTY4NiwxMiArMTY3MCw2IEBACiAgICAgICBlbHNlIHJlYWxuYW1lID0gY2xhc3NfbmFtZTsKICAgICB9CiAKLSAgICBQcmludGYoY25hbWUsIiVzOjolcyIsIGNsYXNzX25hbWUsIHJlYWxuYW1lKTsKLSAgICBpZiAoR2V0YXR0cihzeW1ib2xzLGNuYW1lKSkgewotICAgICAgRGVsZXRlKGNuYW1lKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgU2V0YXR0cihzeW1ib2xzLGNuYW1lLCBjbmFtZSk7CiAgICAgaWYgKChDbXAocmVhbG5hbWUsY2xhc3NfbmFtZSkgPT0gMCkgfHwgKCghaW5hbWUpICYmIChPYmpDQ2xhc3MpKSApewogCiAgICAgICAvKiBFbWl0IGEgYmxlc3NlZCBjb25zdHJ1Y3RvciAgKi8KQEAgLTE3NDEsNyArMTcxOSw2IEBACiAgICAgaGF2ZV9jb25zdHJ1Y3RvciA9IDE7CiAKICAgfQotICBEZWxldGUoY25hbWUpOwogICBtZW1iZXJfZnVuYyA9IDA7CiB9CiAKQEAgLTE3NTQsNyArMTczMSw3IEBACiAgIG1lbWJlcl9mdW5jID0gMTsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9kZXN0cnVjdG9yKG5hbWUsIG5ld25hbWUpOwogCi0gIGlmIChibGVzc2VkKSB7CisgIGlmIChibGVzc2VkICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKICAgICBpZiAobmV3bmFtZSkgcmVhbG5hbWUgPSBuZXduYW1lOwogICAgIGVsc2UgewogICAgICAgaWYgKGNsYXNzX3JlbmFtZWQpIHJlYWxuYW1lID0gY2xhc3NfbmFtZTsKQEAgLTE3ODYsMTEgKzE3NjMsMTIgQEAKIHZvaWQKIFBFUkw1OjpjcHBfc3RhdGljX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0LCBQYXJtTGlzdCAqbCkgewogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX3N0YXRpY19mdW5jKG5hbWUsaW5hbWUsdCxsKTsKLSAgY2hhciAqcmVhbG5hbWU7Ci0gIGlmIChpbmFtZSkgcmVhbG5hbWUgPSBuYW1lOwotICBlbHNlIHJlYWxuYW1lID0gaW5hbWU7CiAKLSAgaWYgKGJsZXNzZWQpIHsKKyAgaWYgKGJsZXNzZWQgJiYgIWlzX211bHRpcGxlX2RlZmluaXRpb24oKSkgeworICAgIGNoYXIgKnJlYWxuYW1lOworICAgIGlmIChpbmFtZSkgcmVhbG5hbWUgPSBuYW1lOworICAgIGVsc2UgcmVhbG5hbWUgPSBpbmFtZTsKKwogICAgIFByaW50dihwY29kZSwgIioiLCByZWFsbmFtZSwgIiA9ICoiLCByZWFscGFja2FnZSwgIjo6IiwgU3dpZ19uYW1lX21lbWJlcihjbGFzc19uYW1lLHJlYWxuYW1lKSwgIjtcbiIsIDApOwogICB9CiB9CkBAIC0xODQwLDI1ICsxODE4LDE4IEBACiBQRVJMNTo6Y3BwX2RlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkgewogICBTdHJpbmcgKnJlYWxuYW1lOwogICBpbnQgICBvbGRibGVzc2VkID0gYmxlc3NlZDsKLSAgY2hhciAgY25hbWVbMjU2XTsKIAogICAvKiBDcmVhdGUgYSBub3JtYWwgY29uc3RhbnQgKi8KICAgYmxlc3NlZCA9IDA7CiAgIHRoaXMtPkxhbmd1YWdlOjpjcHBfZGVjbGFyZV9jb25zdChuYW1lLCBpbmFtZSwgdHlwZSwgdmFsdWUpOwogICBibGVzc2VkID0gb2xkYmxlc3NlZDsKIAotICBpZiAoYmxlc3NlZCkgeworICBpZiAoYmxlc3NlZCAmJiAhaXNfbXVsdGlwbGVfZGVmaW5pdGlvbigpKSB7CiAgICAgaWYgKCFpbmFtZSkKICAgICAgIHJlYWxuYW1lID0gbmFtZTsKICAgICBlbHNlCiAgICAgICByZWFsbmFtZSA9IGluYW1lOwogCi0gICAgc3ByaW50ZihjbmFtZSwiJXM6OiVzIixDaGFyKGNsYXNzX25hbWUpLENoYXIocmVhbG5hbWUpKTsKLSAgICBpZiAoR2V0YXR0cihzeW1ib2xzLCBjbmFtZSkpIHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgU2V0YXR0cihzeW1ib2xzLCBjbmFtZSxjbmFtZSk7Ci0KICAgICAvKiBDcmVhdGUgYSBzeW1ib2wgdGFibGUgZW50cnkgZm9yIGl0ICovCiAgICAgUHJpbnR2KHBjb2RlLCAiKiIsIHJlYWxuYW1lLCAiID0gKiIsIHBhY2thZ2UsICI6OiIsIFN3aWdfbmFtZV9tZW1iZXIoY2xhc3NfbmFtZSxyZWFsbmFtZSksICI7XG4iLCAwKTsKICAgfQpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9weXRob24uY3h4IGIvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9weXRob24uY3h4CmluZGV4IDE0MDY2OGUuLjIzYThlODUgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL01vZHVsZXMxLjEvcHl0aG9uLmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3B5dGhvbi5jeHgKQEAgLTEzLDYgKzEzLDcgQEAKIAogI2luY2x1ZGUgIm1vZDExLmgiCiAjaW5jbHVkZSAicHl0aG9uLmgiCisjaW5jbHVkZSAic3dpZ2NvbmZpZy5oIgogCiBzdGF0aWMgIFN0cmluZyAgICAgICAqY29uc3RfY29kZSA9IDA7CiBzdGF0aWMgIFN0cmluZyAgICAgICAqc2hhZG93X21ldGhvZHMgPSAwOwpAQCAtMjYsNyArMjcsNiBAQAogc3RhdGljICBpbnQgICAgICAgICAgIG5vb3B0ID0gMTsKIHN0YXRpYyAgRklMRSAgICAgICAgICpmX3NoYWRvdzsKIHN0YXRpYyAgSGFzaCAgICAgICAgICpoYXNoOwotc3RhdGljICBIYXNoICAgICAgICAgKnN5bWJvbHM7CiBzdGF0aWMgIFN0cmluZyAgICAgICAqY2xhc3NlczsKIHN0YXRpYyAgU3RyaW5nICAgICAgICpmdW5jOwogc3RhdGljICBTdHJpbmcgICAgICAgKnZhcnM7CkBAIC0zNyw2ICszNyw3IEBACiAKIHN0YXRpYyBjaGFyICp1c2FnZSA9IChjaGFyICopIlwKIFB5dGhvbiBPcHRpb25zIChhdmFpbGFibGUgd2l0aCAtcHl0aG9uKVxuXAorICAgICAtbGRmbGFncyAgICAgICAgLSBQcmludCBydW50aW1lIGxpYnJhcmllcyB0byBsaW5rIHdpdGhcblwKICAgICAgLWdsb2JhbHMgbmFtZSAgIC0gU2V0IG5hbWUgdXNlZCB0byBhY2Nlc3MgQyBnbG9iYWwgdmFyaWFibGUgKCdjdmFyJyBieSBkZWZhdWx0KS5cblwKICAgICAgLW1vZHVsZSBuYW1lICAgIC0gU2V0IG1vZHVsZSBuYW1lXG5cCiAgICAgIC1pbnRlcmZhY2UgbmFtZSAtIFNldCB0aGUgbGliIG5hbWVcblwKQEAgLTEwOCw2ICsxMDksOSBAQAogCSAgICBTd2lnX21hcmtfYXJnKGkpOwogCSAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLWhlbHAiKSA9PSAwKSB7CiAJICAgIGZwdXRzKHVzYWdlLHN0ZGVycik7CisJICB9IGVsc2UgaWYgKHN0cmNtcCAoYXJndltpXSwgIi1sZGZsYWdzIikgPT0gMCkgeworCSAgICBwcmludGYoIiVzXG4iLCBTV0lHX1BZVEhPTl9SVU5USU1FKTsKKwkgICAgU1dJR19leGl0IChFWElUX1NVQ0NFU1MpOwogCSAgfQogICAgICAgfQogICB9CkBAIC0xMjMsNyArMTI3LDYgQEAKIFBZVEhPTjo6cGFyc2UoKSB7CiAKICAgaGFzaCAgICAgICAgICAgPSBOZXdIYXNoKCk7Ci0gIHN5bWJvbHMgICAgICAgID0gTmV3SGFzaCgpOwogICBjb25zdF9jb2RlICAgICA9IE5ld1N0cmluZygiIik7CiAgIHNoYWRvd19tZXRob2RzID0gTmV3U3RyaW5nKCIiKTsKICAgY2xhc3NlcyAgICAgICAgPSBOZXdTdHJpbmcoIiIpOwpAQCAtMTIyNywyMCArMTIzMCwxNSBAQAogUFlUSE9OOjpjcHBfbWVtYmVyX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFN3aWdUeXBlICp0LCBQYXJtTGlzdCAqbCkgewogICBjaGFyICpyZWFsbmFtZTsKICAgaW50ICAgb2xkc2hhZG93OwotICBjaGFyICBjbmFtZVsxMDI0XTsKIAogICAvKiBDcmVhdGUgdGhlIGRlZmF1bHQgbWVtYmVyIGZ1bmN0aW9uICovCiAgIG9sZHNoYWRvdyA9IHNoYWRvdzsgICAgLyogRGlzYWJsZSBzaGFkb3dpbmcgd2hlbiB3cmFwcGluZyBtZW1iZXIgZnVuY3Rpb25zICovCiAgIGlmIChzaGFkb3cpIHNoYWRvdyA9IHNoYWRvdyB8IFBZU0hBRE9XX01FTUJFUjsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9tZW1iZXJfZnVuYyhuYW1lLGluYW1lLHQsbCk7CiAgIHNoYWRvdyA9IG9sZHNoYWRvdzsKLSAgaWYgKHNoYWRvdykgewotICAgIHJlYWxuYW1lID0gaW5hbWUgPyBpbmFtZSA6IG5hbWU7CiAKLSAgICAvKiBDaGVjayB0byBzZWUgaWYgd2UndmUgYWxyZWFkeSBzZWVuIHRoaXMgKi8KLSAgICBzcHJpbnRmKGNuYW1lLCJweXRob246JXM6OiVzIixjbGFzc19uYW1lLHJlYWxuYW1lKTsKLSAgICBpZiAoR2V0YXR0cihzeW1ib2xzLGNuYW1lKSkgcmV0dXJuOwotICAgIFNldGF0dHIoc3ltYm9scyxjbmFtZSxjbmFtZSk7CisgIGlmIChzaGFkb3cgJiYgIWlzX211bHRpcGxlX2RlZmluaXRpb24oKSkgeworICAgIHJlYWxuYW1lID0gaW5hbWUgPyBpbmFtZSA6IG5hbWU7CiAKICAgICBpZiAoc3RyY21wKHJlYWxuYW1lLCJfX3JlcHJfXyIpID09IDApCiAgICAgICBoYXZlX3JlcHIgPSAxOwpAQCAtMTI4NywyMCArMTI4NSwxNCBAQAogUFlUSE9OOjpjcHBfY29uc3RydWN0b3IoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFBhcm1MaXN0ICpsKSB7CiAgIGNoYXIgKnJlYWxuYW1lOwogICBpbnQgICBvbGRzaGFkb3cgPSBzaGFkb3c7Ci0gIGNoYXIgIGNuYW1lWzEwMjRdOwogCiAgIGlmIChzaGFkb3cpIHNoYWRvdyA9IHNoYWRvdyB8IFBZU0hBRE9XX01FTUJFUjsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9jb25zdHJ1Y3RvcihuYW1lLGluYW1lLGwpOwogICBzaGFkb3cgPSBvbGRzaGFkb3c7CiAKLSAgaWYgKHNoYWRvdykgeworICBpZiAoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKICAgICByZWFsbmFtZSA9IGluYW1lID8gaW5hbWUgOiBjbGFzc19uYW1lOwogCi0gICAgLyogQ2hlY2sgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgc2VlbiB0aGlzICovCi0gICAgc3ByaW50ZihjbmFtZSwiOnB5dGhvbjpjb25zdHJ1Y3Rvcjolczo6JXMiLGNsYXNzX25hbWUscmVhbG5hbWUpOwotICAgIGlmIChHZXRhdHRyKHN5bWJvbHMsY25hbWUpKSByZXR1cm47Ci0gICAgU2V0YXR0cihzeW1ib2xzLGNuYW1lLGNuYW1lKTsKLQogICAgIGlmICghaGF2ZV9jb25zdHJ1Y3RvcikgewogICAgICAgaWYgKHVzZV9rdykKIAlQcmludHYoY29uc3RydWN0LCB0YWI0LCAiZGVmIF9faW5pdF9fKHNlbGYsKmFyZ3MsKiprd2FyZ3MpOlxuIiwgMCk7CkBAIC0xMzQ1LDEzICsxMzM3LDEzIEBACiAgIGlmIChzaGFkb3cpIHNoYWRvdyA9IHNoYWRvdyB8IFBZU0hBRE9XX01FTUJFUjsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9kZXN0cnVjdG9yKG5hbWUsbmV3bmFtZSk7CiAgIHNoYWRvdyA9IG9sZHNoYWRvdzsKLSAgaWYgKHNoYWRvdykgeworICBpZiAoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKICAgICBpZiAobmV3bmFtZSkgcmVhbG5hbWUgPSBuZXduYW1lOwogICAgIGVsc2UgcmVhbG5hbWUgPSBjbGFzc19yZW5hbWVkID8gY2xhc3NfbmFtZSA6IG5hbWU7CiAKICAgICBQcmludHYocHljbGFzcywgdGFiNCwgImRlZiBfX2RlbF9fKHNlbGYsIiwgbW9kdWxlLCAiPSIsIG1vZHVsZSwgIik6XG4iLCAwKTsKICAgICBlbWl0QWRkUHJhZ21hcyhweWNsYXNzLChjaGFyKikiX19kZWxfXyIsKGNoYXIqKXRhYjgpOwotICAgIFByaW50dihweWNsYXNzLCB0YWI4LCAiaWYgc2VsZi50aGlzb3duID09IDEgOlxuIiwKKyAgICBQcmludHYocHljbGFzcywgdGFiOCwgImlmIGdldGF0dHIoc2VsZiwndGhpc293bicsMCk6XG4iLAogCSAgIHRhYjgsIHRhYjQsIG1vZHVsZSwgIi4iLCBTd2lnX25hbWVfZGVzdHJveShyZWFsbmFtZSksICIoc2VsZilcbiIsIDApOwogCiAgICAgaGF2ZV9kZXN0cnVjdG9yID0gMTsKQEAgLTE0NzgsMjMgKzE0NzAsMTYgQEAKICAgY2hhciAqcmVhbG5hbWU7CiAgIGludCAgIGluaGFzaCA9IDA7CiAgIGludCAgIG9sZHNoYWRvdyA9IHNoYWRvdzsKLSAgY2hhciAgY25hbWVbNTEyXTsKIAogICBpZiAoc2hhZG93KSBzaGFkb3cgPSBzaGFkb3cgfCBQWVNIQURPV19NRU1CRVI7CiAgIHRoaXMtPkxhbmd1YWdlOjpjcHBfdmFyaWFibGUobmFtZSxpbmFtZSx0KTsKICAgc2hhZG93ID0gb2xkc2hhZG93OwogCi0gIGlmIChzaGFkb3cpIHsKKyAgaWYgKHNoYWRvdyAmJiAhaXNfbXVsdGlwbGVfZGVmaW5pdGlvbigpKSB7CiAgICAgaGF2ZV9nZXRhdHRyID0gMTsKICAgICBoYXZlX3NldGF0dHIgPSAxOwogICAgIHJlYWxuYW1lID0gaW5hbWUgPyBpbmFtZSA6IG5hbWU7CiAKLSAgICAvKiBDaGVjayB0byBzZWUgaWYgd2UndmUgYWxyZWFkeSBzZWVuIHRoaXMgKi8KLSAgICBzcHJpbnRmKGNuYW1lLCJweXRob246JXM6OiVzOiIsY2xhc3NfbmFtZSxyZWFsbmFtZSk7Ci0gICAgaWYgKEdldGF0dHIoc3ltYm9scyxjbmFtZSkpIHJldHVybjsKLQotICAgIFNldGF0dHIoc3ltYm9scyxjbmFtZSxjbmFtZSk7Ci0KICAgICAvKiBGaWd1cmUgb3V0IGlmIHdlJ3ZlIHNlZW4gdGhpcyBkYXRhdHlwZSBiZWZvcmUgKi8KICAgICBpZiAoaXNfc2hhZG93KHQpKSBpbmhhc2ggPSAxOwogCkBAIC0xNTE4LDE5ICsxNTAzLDEzIEBACiBQWVRIT046OmNwcF9kZWNsYXJlX2NvbnN0KGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdHlwZSwgY2hhciAqdmFsdWUpIHsKICAgY2hhciAqcmVhbG5hbWU7CiAgIGludCAgIG9sZHNoYWRvdyA9IHNoYWRvdzsKLSAgY2hhciAgY25hbWVbNTEyXTsKIAogICBpZiAoc2hhZG93KSBzaGFkb3cgPSBzaGFkb3cgfCBQWVNIQURPV19NRU1CRVI7CiAgIHRoaXMtPkxhbmd1YWdlOjpjcHBfZGVjbGFyZV9jb25zdChuYW1lLGluYW1lLHR5cGUsdmFsdWUpOwogICBzaGFkb3cgPSBvbGRzaGFkb3c7CiAKLSAgaWYgKHNoYWRvdykgeworICBpZiAoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKICAgICByZWFsbmFtZSA9IGluYW1lID8gaW5hbWUgOiBuYW1lOwotCi0gICAgLyogQ2hlY2sgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgc2VlbiB0aGlzICovCi0gICAgc3ByaW50ZihjbmFtZSwicHl0aG9uOiVzOjolcyIsIGNsYXNzX25hbWUsIHJlYWxuYW1lKTsKLSAgICBpZiAoR2V0YXR0cihzeW1ib2xzLGNuYW1lKSkgcmV0dXJuOwotICAgIFNldGF0dHIoc3ltYm9scyxjbmFtZSxjbmFtZSk7CiAgICAgUHJpbnR2KGNpbml0LCB0YWI0LCByZWFsbmFtZSwgIiA9ICIsIG1vZHVsZSwgIi4iLCBTd2lnX25hbWVfbWVtYmVyKGNsYXNzX25hbWUscmVhbG5hbWUpLCAiXG4iLCAwKTsKICAgfQogfQpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ydWJ5LmN4eCBiL1NXSUcvU291cmNlL01vZHVsZXMxLjEvcnVieS5jeHgKaW5kZXggODRhMmVlMy4uNmI0MDE1MiAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9ydWJ5LmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3J1YnkuY3h4CkBAIC0xNCw2ICsxNCw3IEBACiAKICNpbmNsdWRlICJtb2QxMS5oIgogI2luY2x1ZGUgInJ1YnkuaCIKKyNpbmNsdWRlICJzd2lnY29uZmlnLmgiCiAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgpAQCAtOTIsNiArOTMsNyBAQAogCiBzdGF0aWMgY2hhciAqdXNhZ2UgPSAoY2hhciopIlwKIFJ1YnkgT3B0aW9ucyAoYXZhaWxhYmxlIHdpdGggLXJ1YnkpXG5cCisgICAgIC1sZGZsYWdzICAgICAgICAtIFByaW50IHJ1bnRpbWUgbGlicmFyaWVzIHRvIGxpbmsgd2l0aFxuXAogICAgICAtbW9kdWxlIG5hbWUgICAgLSBTZXQgbW9kdWxlIG5hbWVcblwKICAgICAgLWZlYXR1cmUgbmFtZSAgIC0gU2V0IGZlYXR1cmUgbmFtZSAodXNlZCBieSBgcmVxdWlyZScpXG4iOwogCkBAIC0xNTUsNiArMTU3LDkgQEAKIAl9CiAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCItaGVscCIpID09IDApIHsKIAlQcmludGYoc3RkZXJyLCIlc1xuIiwgdXNhZ2UpOworICAgICAgfSBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbGRmbGFncyIpID09IDApIHsKKwlwcmludGYoIiVzXG4iLCBTV0lHX1JVQllfUlVOVElNRSk7CisJU1dJR19leGl0IChFWElUX1NVQ0NFU1MpOwogICAgICAgfQogICAgIH0KICAgfQpAQCAtMTMwOSwzOSArMTMxNCw0MSBAQAogICBjdXJyZW50ID0gREVTVFJVQ1RPUjsKICAgdGhpcy0+TGFuZ3VhZ2U6OmNwcF9kZXN0cnVjdG9yKG5hbWUsIG5ld25hbWUpOwogCi0gIFN0cmluZyAqZnJlZWZ1bmMgPSBOZXdTdHJpbmcoIiIpOwotICBTdHJpbmcgKmZyZWVwcm90byA9IE5ld1N0cmluZygiIik7Ci0gIFN0cmluZyAqZnJlZWJvZHkgPSBOZXdTdHJpbmcoIiIpOwotCi0gIFByaW50dihmcmVlZnVuYywgImZyZWVfIiwga2xhc3MtPmNuYW1lLCAwKTsKLSAgUHJpbnR2KGZyZWVwcm90bywgInN0YXRpYyB2b2lkICIsIGZyZWVmdW5jLCAiKCIsIGtsYXNzLT50eXBlLCAiICopO1xuIiwgMCk7Ci0gIFByaW50dihmcmVlYm9keSwgInN0YXRpYyB2b2lkXG4iLAotCSBmcmVlZnVuYywgIigiLCBrbGFzcy0+dHlwZSwgIiAqIiwgU3dpZ19jcGFybV9uYW1lKDAsMCksICIpIHtcbiIsCi0JIHRhYjQsIDApOwotICBpZiAoQWRkTWV0aG9kcykgewotICAgIFByaW50dihmcmVlYm9keSwgU3dpZ19uYW1lX2Rlc3Ryb3kobmFtZSksICIoIiwgU3dpZ19jcGFybV9uYW1lKDAsMCksICIpIiwgMCk7Ci0gIH0gZWxzZSB7Ci0gICAgLyogV2hlbiBubyBhZGRtZXRob2RzIG1vZGUsIHN3aWcgZW1pdHMgbm8gZGVzdHJveSBmdW5jdGlvbi4gKi8KLSAgICBpZiAoQ1BsdXNQbHVzKQotICAgICAgUHJpbnR2KGZyZWVib2R5LCBTd2lnX2NwcGRlc3RydWN0b3JfY2FsbCgpLCAwKTsKLSAgICBlbHNlCi0gICAgICBQcmludHYoZnJlZWJvZHksIFN3aWdfY2Rlc3RydWN0b3JfY2FsbCgpLCAwKTsKKyAgaWYgKCFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKKyAgICBTdHJpbmcgKmZyZWVmdW5jID0gTmV3U3RyaW5nKCIiKTsKKyAgICBTdHJpbmcgKmZyZWVwcm90byA9IE5ld1N0cmluZygiIik7CisgICAgU3RyaW5nICpmcmVlYm9keSA9IE5ld1N0cmluZygiIik7CisgIAorICAgIFByaW50dihmcmVlZnVuYywgImZyZWVfIiwga2xhc3MtPmNuYW1lLCAwKTsKKyAgICBQcmludHYoZnJlZXByb3RvLCAic3RhdGljIHZvaWQgIiwgZnJlZWZ1bmMsICIoIiwga2xhc3MtPnR5cGUsICIgKik7XG4iLCAwKTsKKyAgICBQcmludHYoZnJlZWJvZHksICJzdGF0aWMgdm9pZFxuIiwKKyAgCSBmcmVlZnVuYywgIigiLCBrbGFzcy0+dHlwZSwgIiAqIiwgU3dpZ19jcGFybV9uYW1lKDAsMCksICIpIHtcbiIsCisgIAkgdGFiNCwgMCk7CisgICAgaWYgKEFkZE1ldGhvZHMpIHsKKyAgICAgIFByaW50dihmcmVlYm9keSwgU3dpZ19uYW1lX2Rlc3Ryb3kobmFtZSksICIoIiwgU3dpZ19jcGFybV9uYW1lKDAsMCksICIpIiwgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgIC8qIFdoZW4gbm8gYWRkbWV0aG9kcyBtb2RlLCBzd2lnIGVtaXRzIG5vIGRlc3Ryb3kgZnVuY3Rpb24uICovCisgICAgICBpZiAoQ1BsdXNQbHVzKQorICAgICAgICBQcmludHYoZnJlZWJvZHksIFN3aWdfY3BwZGVzdHJ1Y3Rvcl9jYWxsKCksIDApOworICAgICAgZWxzZQorICAgICAgICBQcmludHYoZnJlZWJvZHksIFN3aWdfY2Rlc3RydWN0b3JfY2FsbCgpLCAwKTsKKyAgICB9CisgICAgUHJpbnR2KGZyZWVib2R5LCAiO1xufVxuIiwgMCk7CisgICAgaWYgKENQbHVzUGx1cykgeworICAgICAgSW5zZXJ0KGZyZWVmdW5jLDAsIlZPSURGVU5DKCIpOworICAgICAgQXBwZW5kKGZyZWVmdW5jLCIpIik7CisgICAgfQorICAKKyAgICBSZXBsYWNlKGtsYXNzLT5oZWFkZXIsIiRmcmVlZnVuYyIsIGZyZWVmdW5jLCBET0hfUkVQTEFDRV9BTlkpOworICAgIFJlcGxhY2Uoa2xhc3MtPmhlYWRlciwiJGZyZWVwcm90byIsIGZyZWVwcm90bywgRE9IX1JFUExBQ0VfQU5ZKTsKKyAgICBQcmludHYoZl93cmFwcGVycywgZnJlZWJvZHksIDApOworICAKKyAgICBrbGFzcy0+ZGVzdHJ1Y3Rvcl9kZWZpbmVkID0gMTsKKyAgICBjdXJyZW50ID0gTk9fQ1BQOworICAgIERlbGV0ZShmcmVlZnVuYyk7CisgICAgRGVsZXRlKGZyZWVwcm90byk7CisgICAgRGVsZXRlKGZyZWVib2R5KTsKICAgfQotICBQcmludHYoZnJlZWJvZHksICI7XG59XG4iLCAwKTsKLSAgaWYgKENQbHVzUGx1cykgewotICAgIEluc2VydChmcmVlZnVuYywwLCJWT0lERlVOQygiKTsKLSAgICBBcHBlbmQoZnJlZWZ1bmMsIikiKTsKLSAgfQotCi0gIFJlcGxhY2Uoa2xhc3MtPmhlYWRlciwiJGZyZWVmdW5jIiwgZnJlZWZ1bmMsIERPSF9SRVBMQUNFX0FOWSk7Ci0gIFJlcGxhY2Uoa2xhc3MtPmhlYWRlciwiJGZyZWVwcm90byIsIGZyZWVwcm90bywgRE9IX1JFUExBQ0VfQU5ZKTsKLSAgUHJpbnR2KGZfd3JhcHBlcnMsIGZyZWVib2R5LCAwKTsKLQotICBrbGFzcy0+ZGVzdHJ1Y3Rvcl9kZWZpbmVkID0gMTsKLSAgY3VycmVudCA9IE5PX0NQUDsKLSAgRGVsZXRlKGZyZWVmdW5jKTsKLSAgRGVsZXRlKGZyZWVwcm90byk7Ci0gIERlbGV0ZShmcmVlYm9keSk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS9zd2lnbWFpbi5jeHggYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3N3aWdtYWluLmN4eAppbmRleCA1MGY3NzUyLi44NmU4YTJmIDEwMDY0NAotLS0gYS9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3N3aWdtYWluLmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3N3aWdtYWluLmN4eApAQCAtMzIsOSArMzIsNyBAQAogCiAjaW5jbHVkZSAicGVybDUuaCIKICNpbmNsdWRlICJndWlsZS5oIgotI2lmZGVmIE9MRAogI2luY2x1ZGUgImphdmEuaCIKLSNlbmRpZgogI2luY2x1ZGUgIm16c2NoZW1lLmgiCiAjaW5jbHVkZSAicnVieS5oIgogCkBAIC04OCwxMSArODYsOSBAQAogCSAgfSBlbHNlIGlmIChzdHJjbXAoYXJndltpXSwiLWd1aWxlIikgPT0gMCkgewogCSAgICAgIGRsID0gbmV3IEdVSUxFOwogCSAgICAgIFN3aWdfbWFya19hcmcoaSk7Ci0jaWZkZWYgT0xECiAJICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCItamF2YSIpID09IDApIHsKIAkgICAgICBkbCA9IG5ldyBKQVZBOwogCSAgICAgIFN3aWdfbWFya19hcmcoaSk7Ci0jZW5kaWYKIAkgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1tenNjaGVtZSIpID09IDApIHsKIAkgICAgICBkbCA9IG5ldyBNWlNDSEVNRTsKIAkgICAgICBTd2lnX21hcmtfYXJnKGkpOwpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS90Y2w4LmN4eCBiL1NXSUcvU291cmNlL01vZHVsZXMxLjEvdGNsOC5jeHgKaW5kZXggOGVkMWVkNC4uMTA1ODA4YyAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvTW9kdWxlczEuMS90Y2w4LmN4eAorKysgYi9TV0lHL1NvdXJjZS9Nb2R1bGVzMS4xL3RjbDguY3h4CkBAIC0xNCw5ICsxNCwxMSBAQAogI2luY2x1ZGUgIm1vZDExLmgiCiAjaW5jbHVkZSAidGNsOC5oIgogI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSAic3dpZ2NvbmZpZy5oIgogCiBzdGF0aWMgY2hhciAqdXNhZ2UgPSAoY2hhciopIlwKIFRjbCA4LjAgT3B0aW9ucyAoYXZhaWxhYmxlIHdpdGggLXRjbClcblwKKyAgICAgLWxkZmxhZ3MgICAgICAgIC0gUHJpbnQgcnVudGltZSBsaWJyYXJpZXMgdG8gbGluayB3aXRoXG5cCiAgICAgIC1tb2R1bGUgbmFtZSAgICAtIFNldCBuYW1lIG9mIG1vZHVsZVxuXAogICAgICAtcHJlZml4IG5hbWUgICAgLSBTZXQgYSBwcmVmaXggdG8gYmUgYXBwZW5kZWQgdG8gYWxsIG5hbWVzXG5cCiAgICAgIC1uYW1lc3BhY2UgICAgICAtIEJ1aWxkIG1vZHVsZSBpbnRvIGEgVGNsIDggbmFtZXNwYWNlLiBcblwKQEAgLTc2LDYgKzc4LDkgQEAKIAkgICAgU3dpZ19tYXJrX2FyZyhpKTsKIAkgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1oZWxwIikgPT0gMCkgewogCSAgICBmcHV0cyh1c2FnZSxzdGRlcnIpOworCSAgfSBlbHNlIGlmIChzdHJjbXAgKGFyZ3ZbaV0sICItbGRmbGFncyIpID09IDApIHsKKwkgICAgcHJpbnRmKCIlc1xuIiwgU1dJR19UQ0xfUlVOVElNRSk7CisJICAgIFNXSUdfZXhpdCAoRVhJVF9TVUNDRVNTKTsKIAkgIH0KICAgICAgIH0KICAgfQpAQCAtMjMwLDcgKzIzNSw3IEBACiAgIFByaW50ZihmX2luaXQsIn1cbiIpOwogCiAgIFByaW50ZihmX2luaXQsImZvciAoaSA9IDA7IHN3aWdfdmFyaWFibGVzW2ldLm5hbWU7IGkrKykge1xuIik7Ci0gIFByaW50ZihmX2luaXQsIlRjbF9TZXRWYXIoaW50ZXJwLCAoY2hhciAqKSBzd2lnX3ZhcmlhYmxlc1tpXS5uYW1lLCBcIlwiLCBUQ0xfR0xPQkFMX09OTFkpO1xuIik7CisgIFByaW50ZihmX2luaXQsIlRjbF9TZXRWYXIoaW50ZXJwLCAoY2hhciAqKSBzd2lnX3ZhcmlhYmxlc1tpXS5uYW1lLCAoY2hhciAqKSBcIlwiLCBUQ0xfR0xPQkFMX09OTFkpO1xuIik7CiAgIFByaW50ZihmX2luaXQsIlRjbF9UcmFjZVZhcihpbnRlcnAsIChjaGFyICopIHN3aWdfdmFyaWFibGVzW2ldLm5hbWUsIFRDTF9UUkFDRV9SRUFEUyB8IFRDTF9HTE9CQUxfT05MWSwgc3dpZ192YXJpYWJsZXNbaV0uZ2V0LCAoQ2xpZW50RGF0YSkgc3dpZ192YXJpYWJsZXNbaV0uYWRkcik7XG4iKTsKICAgUHJpbnRmKGZfaW5pdCwiVGNsX1RyYWNlVmFyKGludGVycCwgKGNoYXIgKikgc3dpZ192YXJpYWJsZXNbaV0ubmFtZSwgVENMX1RSQUNFX1dSSVRFUyB8IFRDTF9HTE9CQUxfT05MWSwgc3dpZ192YXJpYWJsZXNbaV0uc2V0LCAoQ2xpZW50RGF0YSkgc3dpZ192YXJpYWJsZXNbaV0uYWRkcik7XG4iKTsKICAgUHJpbnRmKGZfaW5pdCwifVxuIik7CkBAIC0xMDE0LDcgKzEwMTksNyBAQAogICBTdHJpbmcgICpybmFtZTsKIAogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX21lbWJlcl9mdW5jKG5hbWUsaW5hbWUsdCxsKTsKLSAgaWYgKHNoYWRvdykgeworICBpZiAoc2hhZG93ICYmICFpc19tdWx0aXBsZV9kZWZpbml0aW9uKCkpIHsKICAgICByZWFsbmFtZSA9IGluYW1lID8gaW5hbWUgOiBuYW1lOwogICAgIC8qIEFkZCBzdHVicyBmb3IgdGhpcyBtZW1iZXIgdG8gb3VyIGNsYXNzIGhhbmRsZXIgZnVuY3Rpb24gKi8KIApAQCAtMTAzMyw3ICsxMDM4LDcgQEAKIAogICB0aGlzLT5MYW5ndWFnZTo6Y3BwX3ZhcmlhYmxlKG5hbWUsIGluYW1lLCB0KTsKIAotICBpZiAoc2hhZG93KSB7CisgIGlmIChzaGFkb3cgJiYgIWlzX211bHRpcGxlX2RlZmluaXRpb24oKSkgewogICAgIHJlYWxuYW1lID0gaW5hbWUgPyBpbmFtZSA6IG5hbWU7CiAgICAgUHJpbnR2KGF0dHJpYnV0ZXMsIHRhYjQsICJ7IFwiLSIsIHJlYWxuYW1lLCAiXCIsIiwgMCk7CiAKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1ByZXByb2Nlc3Nvci9jcHAuYyBiL1NXSUcvU291cmNlL1ByZXByb2Nlc3Nvci9jcHAuYwppbmRleCBlNzJlNjU1Li43ZmU1ZjU5IDEwMDY0NAotLS0gYS9TV0lHL1NvdXJjZS9QcmVwcm9jZXNzb3IvY3BwLmMKKysrIGIvU1dJRy9Tb3VyY2UvUHJlcHJvY2Vzc29yL2NwcC5jCkBAIC0xNzMsNyArMTczLDcgQEAKIAlnb3RvIG1hY3JvX2Vycm9yOwogICAgICAgfQogICAgICAgYnJlYWs7Ci0gICAgfSBlbHNlIGlmIChpc2lkY2hhcihjKSkgeworICAgIH0gZWxzZSBpZiAoaXNpZGNoYXIoYykgfHwgKGMgPT0gJyUnKSkgewogICAgICAgUHV0YyhjLG1hY3JvbmFtZSk7CiAgICAgfSBlbHNlIGlmIChpc3NwYWNlKGMpKSB7CiAgICAgICBicmVhazsKQEAgLTI4MywxOSArMjgzLDIxIEBACiAgIERPSExpc3QgICAqYXJnczsKICAgRE9IU3RyaW5nICpzdHI7CiAgIGludCAgIGMsIGxldmVsOworICBsb25nICBwb3M7CiAKICAgLyogQ3JlYXRlIGEgbmV3IGxpc3QgKi8KICAgYXJncyA9IE5ld0xpc3QoKTsKICAgY29weV9sb2NhdGlvbihzLGFyZ3MpOwogCiAgIC8qIEZpcnN0IGxvb2sgZm9yIGEgJygnICovCisgIHBvcyA9IFRlbGwocyk7CiAgIHNraXBfd2hpdGVzcGFjZShzLDApOwogCiAgIC8qIE5vdyBzZWUgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgJygnICovCiAgIGMgPSBHZXRjKHMpOwogICBpZiAoYyAhPSAnKCcpIHsKICAgICAvKiBOb3QgYSBtYWNybywgYmFpbCBvdXQgbm93ISAqLwotICAgIGNwcF9lcnJvcihHZXRmaWxlKHMpLEdldGxpbmUocyksIk1pc3NpbmcgbWFjcm8gYXJndW1lbnRzXG4iKTsKKyAgICBTZWVrKHMscG9zLCBTRUVLX1NFVCk7CiAgICAgcmV0dXJuIGFyZ3M7CiAgIH0KICAgYyA9IEdldGMocyk7CkBAIC00MDEsMTIgKzQwMywxNCBAQAogICAgIG5zID0gTmV3U3RyaW5nKCIiKTsKICAgICBQcmludGYobnMsIiVzIixuYW1lKTsKICAgICBpZiAoYXJncykgewotICAgICAgUHV0YygnKCcsbnMpOworICAgICAgaWYgKExlbihhcmdzKSkKKwlQdXRjKCcoJyxucyk7CiAgICAgICBmb3IgKGkgPSAwOyBpIDwgTGVuKGFyZ3MpOyBpKyspIHsKIAlQcmludGYobnMsIiVzIixHZXRpdGVtKGFyZ3MsaSkpOwogCWlmIChpIDwgKExlbihhcmdzKSAtMSkpIFB1dGMoJywnLG5zKTsKICAgICAgIH0KLSAgICAgIFB1dGMoJyknLG5zKTsKKyAgICAgIGlmIChpKQorCVB1dGMoJyknLG5zKTsKICAgICB9CiAgICAgcmV0dXJuIG5zOwogICB9CkBAIC00NTYsNiArNDYwLDI2IEBACiAJUHJpbnRmKHRlbXBhLCJcIiVzXCIiLGFyZyk7CiAJUmVwbGFjZShucywgdGVtcCwgdGVtcGEsIERPSF9SRVBMQUNFX0FOWSk7CiAgICAgICB9CisKKyAgICAgIC8qIE5vbi1zdGFuZGFyZCBtYWNybyBleHBhbnNpb24uICAgVGhlIHZhbHVlIGB4YCBpcyByZXBsYWNlZCBieSBhIHF1b3RlZAorCSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBleGNlcHQgdGhhdCBpZiB0aGUgYXJndW1lbnQgaXMgYWxyZWFkeSBxdW90ZWQKKwkgbm90aGluZyBoYXBwZW5zICovCisKKyAgICAgIGlmIChzdHJzdHIoQ2hhcihucyksImAiKSkgeworCVN0cmluZyAqcmVwOworCWNoYXIgKmM7CisJQ2xlYXIodGVtcCk7CisJUHJpbnRmKHRlbXAsImAlc2AiLGFuYW1lKTsKKwljID0gQ2hhcihhcmcpOworCWlmICgqYyA9PSAnXCInKSB7CisJICByZXAgPSBhcmc7CisJfSBlbHNlIHsKKwkgIENsZWFyKHRlbXBhKTsKKwkgIFByaW50Zih0ZW1wYSwiXCIlc1wiIixhcmcpOworCSAgcmVwID0gdGVtcGE7CisJfQorCVJlcGxhY2UobnMsdGVtcCxyZXAsIERPSF9SRVBMQUNFX0FOWSk7CisgICAgICB9CiAgICAgICBSZXBsYWNlKG5zLCBhbmFtZSwgYXJnLCBET0hfUkVQTEFDRV9JRCk7CiAgICAgfQogICB9CkBAIC01MTMsNyArNTM3LDcgQEAKICAgd2hpbGUgKChjID0gR2V0YyhzKSkgIT0gRU9GKSB7CiAgICAgc3dpdGNoIChzdGF0ZSkgewogICAgIGNhc2UgMDoKLSAgICAgIGlmIChpc2lkZW50aWZpZXIoYykpIHsKKyAgICAgIGlmIChpc2lkZW50aWZpZXIoYykgfHwgKGMgPT0gJyUnKSkgewogCUNsZWFyKGlkKTsKIAljb3B5X2xvY2F0aW9uKHMsaWQpOwogCVB1dGMoYyxpZCk7CkBAIC02NzUsMTkgKzY5OSwyOCBAQAogY2hlY2tfaWQoRE9IICpzKQogewogICBpbnQgYywgc3RhdGUgPSAwOworICBpbnQgaGFzdmFsdWUgPSAwOwogICBTZWVrKHMsMCxTRUVLX1NFVCk7CiAgIHdoaWxlICgoYyA9IEdldGMocykpICE9IEVPRikgewogICAgIHN3aXRjaChzdGF0ZSkgewogCiAgICAgY2FzZSAwOgotICAgICAgaWYgKGlzZGlnaXQoYykpIHN0YXRlID0gMTsKKyAgICAgIGlmIChpc2RpZ2l0KGMpKSB7CisJaGFzdmFsdWUgPTE7CisJc3RhdGUgPSAxOworICAgICAgfQogICAgICAgZWxzZSBpZiAoaXNpZGVudGlmaWVyKGMpKSByZXR1cm4gMTsKLSAgICAgIGVsc2UgaWYgKGMgPT0gJ1wiJykgc2tpcF90b2NoYXIocywnXCInLDApOwotICAgICAgZWxzZSBpZiAoYyA9PSAnXCcnKSBza2lwX3RvY2hhcihzLCdcJycsMCk7Ci0gICAgICBlbHNlIGlmIChjID09ICcvJykgc3RhdGUgPSAzOworICAgICAgZWxzZSBpZiAoYyA9PSAnXCInKSB7CisJc2tpcF90b2NoYXIocywnXCInLDApOworCWhhc3ZhbHVlID0gMTsKKyAgICAgIH0gZWxzZSBpZiAoYyA9PSAnXCcnKSB7CisJc2tpcF90b2NoYXIocywnXCcnLDApOworCWhhc3ZhbHVlID0gMTsKKyAgICAgIH0gZWxzZSBpZiAoYyA9PSAnLycpIHN0YXRlID0gMzsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgMToKICAgICAgIGlmIChpc3NwYWNlKGMpKSBzdGF0ZSA9IDA7CisgICAgICBoYXN2YWx1ZSA9IDE7CiAgICAgICBicmVhazsKICAgICBjYXNlIDM6CiAgICAgICBpZiAoYyA9PSAnKicpIHN0YXRlID0gMTA7CkBAIC03MDksNiArNzQyLDcgQEAKICAgICAgIGJyZWFrOwogICAgIH0KICAgfQorICBpZiAoIWhhc3ZhbHVlKSByZXR1cm4gMTsKICAgcmV0dXJuIDA7CiB9CiAKQEAgLTkwNiw3ICs5NDAsMTIgQEAKICAgICBjYXNlIDQ1OgogICAgICAgaWYgKGMgPT0gJy8nKSBzdGF0ZSA9IDQ2OwogICAgICAgZWxzZSBpZiAoYyA9PSAnKicpIHN0YXRlID0gNDc7Ci0gICAgICBlbHNlIHsKKyAgICAgIGVsc2UgaWYgKGMgPT0gJ1xuJykgeworCVB1dGMoJy8nLHZhbHVlKTsKKwlVbmdldGMoYyxzKTsKKwljcHBfbGluZXMrKzsKKwlzdGF0ZSA9IDUwOworICAgICAgfSBlbHNlIHsKIAlQdXRjKCcvJyx2YWx1ZSk7CiAJUHV0YyhjLHZhbHVlKTsKIAlzdGF0ZSA9IDQzOwpAQCAtOTQ2LDYgKzk4NSw3IEBACiAJICAgICAgc2lsZW50X2Vycm9ycyA9IDE7CiAJICAgICAgdjEgPSBQcmVwcm9jZXNzb3JfcmVwbGFjZSh2KTsKIAkgICAgICBzaWxlbnRfZXJyb3JzID0gMDsKKwkgICAgICAvKgkgICAgICBQcmludGYoc3Rkb3V0LCJjaGVja2luZyAnJXMnXG4iLCB2MSk7ICovCiAJICAgICAgaWYgKCFjaGVja19pZCh2MSkpIHsKIAkJaWYgKExlbihjb21tZW50KSA9PSAwKQogCQkgIFByaW50ZihucywiJSVjb25zdGFudCAlcyAlcztcbiIsIEdldGF0dHIobSwibmFtZSIpLCB2MSk7CmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9TV0lHMS4xLy5jdnNpZ25vcmUgYi9TV0lHL1NvdXJjZS9TV0lHMS4xLy5jdnNpZ25vcmUKaW5kZXggMWM0OTU0YS4uODkwNTY4MCAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvU1dJRzEuMS8uY3ZzaWdub3JlCisrKyBiL1NXSUcvU291cmNlL1NXSUcxLjEvLmN2c2lnbm9yZQpAQCAtMSw2ICsxLDggQEAKLU1ha2VmaWxlCiAqLmZsYwogLmRlcHMKLXN3aWcKLXBhcnNlci5oCitNYWtlZmlsZQogcGFyc2VyLmN4eAorcGFyc2VyLmgKK3N3aWcKK3kudGFiLmMKK3kudGFiLmgKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1NXSUcxLjEvY3BsdXMuY3h4IGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9jcGx1cy5jeHgKaW5kZXggOTA2YzgxYS4uYzc3MDQ3NSAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvU1dJRzEuMS9jcGx1cy5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9jcGx1cy5jeHgKQEAgLTY5OSw2ICs2OTksMTYgQEAKIAljLT5lbWl0X2RlY2xzKCk7CiAJbGFuZy0+Y3BwX2Nsb3NlX2NsYXNzKCk7CiAgICAgICB9CisgICAgICAvLyBGb3JjZSBicnV0ZSBwYXRjaCB0byBwcm9kdWNlIHRoZSBwcm9wZXIgY2FzdGluZyBjb2RlCisgICAgICAvLyBiZXR3ZWVuICJsb2NhbCIgY2xhc3NlcyBhbmQgImV4dGVybmFsIiBvbmVzIHdoZW4KKyAgICAgIC8vICVpbXBvcnQgaXMgdXNlZC4KKyAgICAgIGVsc2UgaWYgKCAoYy0+d2V4dGVybikgJiYgKGMtPmNsYXNzdHlwZSkgKSB7CisJU3dpZ1R5cGUgKnQ7CisJdCA9IE5ld1N0cmluZyhjLT5jbGFzc25hbWUpOworCVN3aWdUeXBlX2FkZF9wb2ludGVyKHQpOworCVN3aWdUeXBlX3JlbWVtYmVyKHQpOworCURlbGV0ZSh0KTsKKyAgICAgIH0KICAgICB9CiAgICAgYyA9IGMtPm5leHQ7CiAgIH0KZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1NXSUcxLjEvbGFuZy5jeHggYi9TV0lHL1NvdXJjZS9TV0lHMS4xL2xhbmcuY3h4CmluZGV4IDcwYTgwOGYuLmI2MGY3YTIgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1NXSUcxLjEvbGFuZy5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9sYW5nLmN4eApAQCAtNDQsNiArNDQsNyBAQAogc3RhdGljIGNoYXIgICpDbGFzc05hbWUgPSAwOyAgICAgICAgLyogVGhpcyBpcyB0aGUgcmVhbCBuYW1lIG9mIHRoZSBjdXJyZW50IGNsYXNzICovCiBzdGF0aWMgY2hhciAgKkNsYXNzUmVuYW1lID0gMDsgICAgICAvKiBUaGlzIGlzIG5vbi1OVUxMIGlmIHRoZSBjbGFzcyBoYXMgYmVlbiByZW5hbWVkICovCiBzdGF0aWMgY2hhciAgKkNsYXNzVHlwZSA9IDA7ICAgICAgICAvKiBUeXBlIG9mIGNsYXNzIChpZS4gdW5pb24sIHN0cnVjdCwgY2xhc3MpICAqLworc3RhdGljIGludCBtdWx0aXBsZV9kZWZpbml0aW9uID0gMDsgLyogRGVmaW5lcyB3aGV0aGVyIGEgZnVuY3Rpb24gaGFzIGJlZW4gbXVsdGlwbHkgZGVmaW5lZCovCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBMYW5ndWFnZTo6Y3BwX29wZW5fY2xhc3MoKQpAQCAtOTAsNiArOTEsNyBAQAogdm9pZCBMYW5ndWFnZTo6Y3BwX21lbWJlcl9mdW5jKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdCwgUGFybUxpc3QgKmwpIHsKICAgY2hhciAgICAgICBuZXdfbmFtZVsyNTZdOwogICBjaGFyICAgICAgICpwcmVmaXg7CisgIG11bHRpcGxlX2RlZmluaXRpb24gPSAwOwogCiAgIC8qIEdlbmVyYXRlIHRoZSBDIHdyYXBwZXIgZnVuY3Rpb24gbmFtZSBhbmQgaW50ZXJwcmV0ZXIgbmFtZSBvZiB0aGlzIGZ1bmN0aW9uKi8KICAgCkBAIC0xMTAsOCArMTEyLDkgQEAKICAgLyogTm93IGRvIGEgc3ltYm9sIHRhYmxlIGxvb2t1cCBvbiBpdCA6ICovCiAKICAgaWYgKGFkZF9zeW1ib2wobmV3X25hbWUpKSB7Ci0gICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBGdW5jdGlvbiAlcyAobWVtYmVyICVzKSBtdWx0aXBseSBkZWZpbmVkICgybmQgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCisgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBGdW5jdGlvbiAlcyAobWVtYmVyICVzKSBtdWx0aXBseSBkZWZpbmVkIChtdWx0aXBsZSBkZWZpbml0aW9uIGlnbm9yZWQpLlxuIiwKIAkgICAgaW5wdXRfZmlsZSwgbGluZV9udW1iZXIsIGluYW1lLCBuYW1lKTsKKyAgICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMTsKICAgICByZXR1cm47CiAgIH0KICAgY3BsdXNfZW1pdF9tZW1iZXJfZnVuYyhDbGFzc05hbWUsIENsYXNzVHlwZSwgQ2xhc3NSZW5hbWUsIG5hbWUsIGluYW1lLCB0LCBsLCBBZGRNZXRob2RzKTsKQEAgLTEyNCw2ICsxMjcsNyBAQAogdm9pZCBMYW5ndWFnZTo6Y3BwX2NvbnN0cnVjdG9yKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBQYXJtTGlzdCAqbCkgewogCiAgIGNoYXIgKnByZWZpeCwgKmNuYW1lOworICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMDsKIAogICBpZiAoKHN0cmNtcChuYW1lLENsYXNzTmFtZSkpICYmICghT2JqQ0NsYXNzKSkgewogICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gIEZ1bmN0aW9uICVzIG11c3QgaGF2ZSBhIHJldHVybiB0eXBlLlxuIiwgCkBAIC0xNDYsOCArMTUwLDkgQEAKICAgLyogQWRkIHRoaXMgZnVuY3Rpb24gdG8gdGhlIFNXSUcgc3ltYm9sIHRhYmxlICovCiAKICAgaWYgKGFkZF9zeW1ib2woY25hbWUpKSB7Ci0gICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBDb25zdHJ1Y3RvciAlcyBtdWx0aXBseSBkZWZpbmVkICgybmQgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCisgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBDb25zdHJ1Y3RvciAlcyBtdWx0aXBseSBkZWZpbmVkIChtdWx0aXBsZSBkZWZpbml0aW9uIGlnbm9yZWQpLlxuIiwKIAkgICAgaW5wdXRfZmlsZSwgbGluZV9udW1iZXIsIGNuYW1lKTsKKyAgICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMTsKICAgICByZXR1cm47CiAgIH0KIApAQCAtMTY0LDYgKzE2OSw3IEBACiB2b2lkIExhbmd1YWdlOjpjcHBfZGVzdHJ1Y3RvcihjaGFyICpuYW1lLCBjaGFyICppbmFtZSkgewogCiAgIGNoYXIgKmNuYW1lOworICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMDsKIAogICBpZiAoQ2xhc3NSZW5hbWUpIAogICAgIGNuYW1lID0gQ2hhcihTd2lnX25hbWVfZGVzdHJveShDbGFzc1JlbmFtZSkpOwpAQCAtMTczLDggKzE3OSw5IEBACiAgIC8qIEFkZCB0aGlzIGZ1bmN0aW9uIHRvIHRoZSBTV0lHIHN5bWJvbCB0YWJsZSAqLwogCiAgIGlmIChhZGRfc3ltYm9sKGNuYW1lKSkgewotICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gRGVzdHJ1Y3RvciAlcyBtdWx0aXBseSBkZWZpbmVkICgybmQgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCisgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBEZXN0cnVjdG9yICVzIG11bHRpcGx5IGRlZmluZWQgKG11bHRpcGxlIGRlZmluaXRpb24gaWdub3JlZCkuXG4iLAogCSAgICBpbnB1dF9maWxlLCBsaW5lX251bWJlciwgY25hbWUpOworICAgIG11bHRpcGxlX2RlZmluaXRpb24gPSAxOwogICAgIHJldHVybjsKICAgfQogCkBAIC0yMTcsNiArMjI0LDcgQEAKIAogdm9pZCBMYW5ndWFnZTo6Y3BwX3ZhcmlhYmxlKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBTd2lnVHlwZSAqdCkgewogICBjaGFyICpwcmVmaXgsICpjbmFtZTsKKyAgbXVsdGlwbGVfZGVmaW5pdGlvbiA9IDA7CiAKICAgLyogU2V0IHRoZSBjbGFzcyBwcmVmaXggKi8KICAgCkBAIC0yMzQsNyArMjQyLDggQEAKICAgLyogQ2hlY2sgdGhlIHN5bWJvbCB0YWJsZSAqLwogCiAgIGlmIChhZGRfc3ltYm9sKGNuYW1lKSkgewotICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gVmFyaWFibGUgJXMgbXVsdGlwbHkgZGVmaW5lZCAoMm5kIGRlZmluaXRpb24gaWdub3JlZCkuXG4iLCBpbnB1dF9maWxlLCBsaW5lX251bWJlciwgY25hbWUpOworICAgIFByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gVmFyaWFibGUgJXMgbXVsdGlwbHkgZGVmaW5lZCAobXVsdGlwbGUgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyLCBjbmFtZSk7CisgICAgbXVsdGlwbGVfZGVmaW5pdGlvbiA9IDE7CiAgICAgcmV0dXJuOwogICB9CiAKQEAgLTI1OSw2ICsyNjgsNyBAQAogICBjaGFyICAqcHJlZml4OwogICBjaGFyICAqbW5hbWU7CiAgIGNoYXIgICpjbmFtZTsKKyAgbXVsdGlwbGVfZGVmaW5pdGlvbiA9IDA7CiAKICAgLyogU2V0IHRoZSBjbGFzc25hbWUgcHJlZml4ICovCiAgIApAQCAtMjgwLDExICsyOTAsMTIgQEAKIAogICBpZiAoYWRkX3N5bWJvbChjbmFtZSkpIHsKICAgICBpZiAoT2JqQ0NsYXNzKQotICAgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBjbGFzcyBmdW5jdGlvbiAlcyBtdWx0aXBseSBkZWZpbmVkICgybmQgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCisgICAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIGNsYXNzIGZ1bmN0aW9uICVzIG11bHRpcGx5IGRlZmluZWQgKG11bHRpcGxlIGRlZmluaXRpb24gaWdub3JlZCkuXG4iLAogCSAgICAgIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyLCBjbmFtZSk7CiAgICAgZWxzZQotICAgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBzdGF0aWMgZnVuY3Rpb24gJXMgbXVsdGlwbHkgZGVmaW5lZCAoMm5kIGRlZmluaXRpb24gaWdub3JlZCkuXG4iLAorICAgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBzdGF0aWMgZnVuY3Rpb24gJXMgbXVsdGlwbHkgZGVmaW5lZCAobXVsdGlwbGUgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCiAJICAgICAgaW5wdXRfZmlsZSwgbGluZV9udW1iZXIsIGNuYW1lKTsKKyAgICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMTsKICAgICByZXR1cm47CiAgIH0KICAgY3BsdXNfZW1pdF9zdGF0aWNfZnVuYyhDbGFzc05hbWUsQ2xhc3NUeXBlLCBDbGFzc1JlbmFtZSwgbmFtZSwgaW5hbWUsIHQsIGwsIEFkZE1ldGhvZHMpOwpAQCAtMzAyLDYgKzMxMyw3IEBACiAgIGNoYXIgIG1uYW1lWzI1Nl07CiAgIGNoYXIgICpuZXdfdmFsdWU7CiAgIGNoYXIgICpwcmVmaXg7CisgIG11bHRpcGxlX2RlZmluaXRpb24gPSAwOwogCiAgIC8qIFNldCB0aGUgY2xhc3NuYW1lIHByZWZpeCAqLwogICAKQEAgLTMyMSw4ICszMzMsOSBAQAogICAvKiBOb3cgZG8gYSBzeW1ib2wgdGFibGUgbG9va3VwIG9uIGl0IDogKi8KIAogICBpZiAoYWRkX3N5bWJvbChjbmFtZSkpIHsKLSAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIENvbnN0YW50ICVzIChtZW1iZXIgJXMpIG11bHRpcGx5IGRlZmluZWQgKDJuZCBkZWZpbml0aW9uIGlnbm9yZWQpLlxuIiwKKyAgICBQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIENvbnN0YW50ICVzIChtZW1iZXIgJXMpIG11bHRpcGx5IGRlZmluZWQgKG11bHRpcGxlIGRlZmluaXRpb24gaWdub3JlZCkuXG4iLAogCSAgICBpbnB1dF9maWxlLCBsaW5lX251bWJlciwgY25hbWUsIG5hbWUpOworICAgIG11bHRpcGxlX2RlZmluaXRpb24gPSAxOwogICAgIHJldHVybjsKICAgfQogCkBAIC0zNTQsNiArMzY3LDcgQEAKICAgY2hhciAgKmNuYW1lOwogICBjaGFyICBtbmFtZVsyNTZdOwogICBjaGFyICAqcHJlZml4OworICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMDsKIAogICAvKiBTZXQgdGhlIGNsYXNzbmFtZSBwcmVmaXggKi8KICAgCkBAIC0zNzMsOCArMzg3LDkgQEAKICAgLyogTm93IGRvIGEgc3ltYm9sIHRhYmxlIGxvb2t1cCBvbiBpdCA6ICovCiAKICAgaWYgKGFkZF9zeW1ib2woY25hbWUpKSB7Ci0gICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBWYXJpYWJsZSAlcyAobWVtYmVyICVzKSBtdWx0aXBseSBkZWZpbmVkICgybmQgZGVmaW5pdGlvbiBpZ25vcmVkKS5cbiIsCisgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBWYXJpYWJsZSAlcyAobWVtYmVyICVzKSBtdWx0aXBseSBkZWZpbmVkIChtdWx0aXBsZSBkZWZpbml0aW9uIGlnbm9yZWQpLlxuIiwKIAkgICAgaW5wdXRfZmlsZSwgbGluZV9udW1iZXIsIGNuYW1lLCBuYW1lKTsKKyAgICBtdWx0aXBsZV9kZWZpbml0aW9uID0gMTsKICAgICByZXR1cm47CiAgIH0KIApAQCAtNDI2LDMgKzQ0MSwxMSBAQAogdm9pZCBMYW5ndWFnZTo6aW1wb3J0KGNoYXIgKikgewogICAvKiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdCAqLwogfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogTGFuZ3VhZ2U6OmlzX211bHRpcGxlX2RlZmluaXRpb24oKQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworaW50IExhbmd1YWdlOjppc19tdWx0aXBsZV9kZWZpbml0aW9uKCkgeworICByZXR1cm4gbXVsdGlwbGVfZGVmaW5pdGlvbjsKK30KZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1NXSUcxLjEvbWFpbi5jeHggYi9TV0lHL1NvdXJjZS9TV0lHMS4xL21haW4uY3h4CmluZGV4IDBlNmRkMjYuLmYwNDJjNGEgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1NXSUcxLjEvbWFpbi5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9tYWluLmN4eApAQCAtMjQ1LDEwICsyNDUsMTIgQEAKIAkJU3dpZ19hcmdfZXJyb3IoKTsKIAkgICAgICB9CiAJICB9IGVsc2UgaWYgKHN0cmNtcChhcmd2W2ldLCItdmVyc2lvbiIpID09IDApIHsKLSAJICAgICAgZnByaW50ZihzdGRlcnIsIlxuU1dJRyBWZXJzaW9uICVzICVzXG4iLAotCQkgICAgICBTV0lHX1ZFUlNJT04sIFNXSUdfU1BJTik7Ci0JICAgICAgZnByaW50ZihzdGRlcnIsIkNvcHlyaWdodCAoYykgMTk5NS05OFxuIik7CisgCSAgICAgIGZwcmludGYoc3RkZXJyLCJcblNXSUcgVmVyc2lvbiAlc1xuIiwKKwkJICAgICAgU1dJR19WRVJTSU9OKTsKKwkgICAgICBmcHJpbnRmKHN0ZGVyciwiQ29weXJpZ2h0IChjKSAxOTk1LTE5OThcbiIpOwogCSAgICAgIGZwcmludGYoc3RkZXJyLCJVbml2ZXJzaXR5IG9mIFV0YWggYW5kIHRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWFcbiIpOworICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwiQ29weXJpZ2h0IChjKSAxOTk4LTIwMDFcbiIpOworCSAgICAgIGZwcmludGYoc3RkZXJyLCJVbml2ZXJzaXR5IG9mIENoaWNhZ29cbiIpOwogCSAgICAgIGZwcmludGYoc3RkZXJyLCJcbkNvbXBpbGVkIHdpdGggJXNcbiIsIFNXSUdfQ0MpOwogCSAgICAgIFNXSUdfZXhpdCAoRVhJVF9TVUNDRVNTKTsKIAkgIH0gZWxzZSBpZiAoc3RybmNtcChhcmd2W2ldLCItbCIsMikgPT0gMCkgewpAQCAtMzkzLDE4ICszOTUsMTYgQEAKICAgICAgIERPSCAqY3BwczsKICAgICAgIGludCBpOwogICAgICAgU3RyaW5nICpmcyA9IE5ld1N0cmluZygiIik7Ci0gICAgICBTdHJpbmcgKmRzID0gU3dpZ19pbmNsdWRlKGlucHV0X2ZpbGUpOwotICAgICAgaWYgKCFkcykgeworICAgICAgRklMRSAqZGYgPSBTd2lnX29wZW4oaW5wdXRfZmlsZSk7CisgICAgICBpZiAoIWRmKSB7CiAJUHJpbnRmKHN0ZGVyciwiVW5hYmxlIHRvIGZpbmQgJyVzJ1xuIiwgaW5wdXRfZmlsZSk7CiAJU1dJR19leGl0IChFWElUX0ZBSUxVUkUpOwogICAgICAgfQorICAgICAgZmNsb3NlKGRmKTsKICAgICAgIGlmIChsYW5nX2NvbmZpZykgewogCVByaW50ZihmcywiXG4lJWluY2x1ZGUgXCIlc1wiXG4iLCBsYW5nX2NvbmZpZyk7CiAgICAgICB9Ci0gICAgICBQcmludGYoZnMsIlxuJSVpbmNsdWRlZmlsZSBcIiVzXCIge1xuIiwgU3dpZ19sYXN0X2ZpbGUoKSk7Ci0gICAgICBBcHBlbmQoZnMsIGRzKTsKLSAgICAgIEFwcGVuZChmcywiXG59XG4iKTsKLSAgICAgIERlbGV0ZShkcyk7CisgICAgICBQcmludGYoZnMsIiUlaW5jbHVkZSBcIiVzXCJcbiIsIFN3aWdfbGFzdF9maWxlKCkpOwogICAgICAgZm9yIChpID0gMDsgaSA8IExlbihsaWJmaWxlcyk7IGkrKykgewogCVByaW50ZihmcywiXG4lJWluY2x1ZGUgXCIlc1wiXG4iLCBHZXRpdGVtKGxpYmZpbGVzLGkpKTsKICAgICAgIH0KZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1NXSUcxLjEvcGFyc2VyLnl4eCBiL1NXSUcvU291cmNlL1NXSUcxLjEvcGFyc2VyLnl4eAppbmRleCBmNzdhODA5Li5kYmJmMDRhIDEwMDY0NAotLS0gYS9TV0lHL1NvdXJjZS9TV0lHMS4xL3BhcnNlci55eHgKKysrIGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9wYXJzZXIueXh4CkBAIC01MTQsNyArNTE0LDcgQEAKICV0eXBlIDxpZD4gICAgICAgcG5hbWUgY3BwdHlwZSBiYXNlX3NwZWNpZmllciBhY2Nlc3Nfc3BlY2lmaWVyIHR5cGVtYXBfbmFtZSB0bV9tZXRob2Q7CiAldHlwZSA8dHlwZT4gICAgIHR5cGUgb3B0X3NpZ25lZCBvcHRfdW5zaWduZWQgc3RyaWN0X3R5cGU7CiAldHlwZSA8ZGVjbD4gICAgIGRlY2xhcmF0aW9uIG5lc3RlZF9kZWNsOwotJXR5cGUgPGl2YWx1ZT4gICBzdGFycyBjcHBfdmVuZDsKKyV0eXBlIDxpdmFsdWU+ICAgc3RhcnMgbWF5YmVzdGFycyBjcHBfdmVuZDsKICV0eXBlIDxpbGlzdD4gICAgaW5pdGxpc3QgYmFzZV9saXN0IGluaGVyaXQ7CiAldHlwZSA8ZHR5cGU+ICAgIGRlZmluZXR5cGUgZGVmX2FyZ3M7CiAldHlwZSA8ZHR5cGU+ICAgIGV0eXBlOwpAQCAtNzUyLDEyICs3NTIsMjYgQEAKIAkJIFJlbmFtZV90cnVlID0gMTsKICAgICAgICAgICAgICAgIH0KIAorLyogYW5kIGl0cyBzdHJpbmcgdmVyc2lvbiAqLworCisJICAgICAgIHwgTkFNRSBMUEFSRU4gU1RSSU5HIFJQQVJFTiB7CisJICAgICAgICAgc3RyY3B5KHl5X3JlbmFtZSwkMyk7CisJCSBSZW5hbWVfdHJ1ZSA9IDE7CisJICAgICAgIH0KKwogLyogJXJlbmFtZSBkaXJlY3RpdmUgKi8KICAgICAgICAgICAgICAgIHwgUkVOQU1FIElEIElEIFNFTUkgewogCQkgaWYgKCFuYW1lX2hhc2gpIG5hbWVfaGFzaCA9IE5ld0hhc2goKTsKIAkJIFNldGF0dHIobmFtZV9oYXNoLCQyLCQzKTsKIAkgICAgICAgfQogCisvKiBhbmQgaXRzIHN0cmluZyB2ZXJzaW9uICovCisKKwkgICAgICAgfCBSRU5BTUUgSUQgU1RSSU5HIFNFTUkgeworCQkgaWYgKCFuYW1lX2hhc2gpIG5hbWVfaGFzaCA9IE5ld0hhc2goKTsKKwkJIFNldGF0dHIobmFtZV9oYXNoLCQyLCQzKTsKKwkgICAgICAgfQorCiAvKiAlbmV3IGRpcmVjdGl2ZSAqLwogCiAgICAgICAgICAgICAgICB8IE5FVyB7CkBAIC0xNDg3LDE3ICsxNTAxLDI4IEBACiAJCSAgIGZyZWUoJDMpOwogCQl9CiAKLSAgICAgICAgICAgICAgICB8IHR5cGUgQU5EIHBuYW1lIHsKLQkJICAkJCA9IE5ld1Bhcm0oJDEsJDMpOworCQl8IHR5cGUgbWF5YmVzdGFycyBDT05TVCBwbmFtZSB7CisJCSAgICQkID0gTmV3UGFybSgkMSwkNCk7CisJCSAgIGFkZF9wb2ludGVycyhHZXR0eXBlKCQkKSwgJDIpOworCQkgICBTd2lnVHlwZV9hZGRfcXVhbGlmaWVyKCQkLChjaGFyKikiY29uc3QiKTsKKwkJICAgU2V0dmFsdWUoJCQsRGVmQXJnKTsKKwkJICAgRGVsZXRlKCQxKTsKKwkJICAgZnJlZSgkNCk7CisJCX0KKworICAgICAgICAgICAgICAgIHwgdHlwZSBtYXliZXN0YXJzIEFORCBwbmFtZSB7CisJCSAgJCQgPSBOZXdQYXJtKCQxLCQ0KTsKIAkJICBTd2lnVHlwZSAqcHQgPSBHZXR0eXBlKCQkKTsKKwkJICBhZGRfcG9pbnRlcnMoR2V0dHlwZSgkJCksICQyKTsKIAkJICBTd2lnVHlwZV9hZGRfcmVmZXJlbmNlKHB0KTsKIAkJICBTZXR2YWx1ZSgkJCxEZWZBcmcpOwogCQkgIGlmICghQ1BsdXNQbHVzKSB7CiAJCQlQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFdhcm5pbmcuICBVc2Ugb2YgQysrIFJlZmVyZW5jZSBkZXRlY3RlZC4gIFVzZSB0aGUgLWMrKyBvcHRpb24uXG4iLCBpbnB1dF9maWxlLCBsaW5lX251bWJlcik7CiAJCSAgfQogCQkgIERlbGV0ZSgkMSk7Ci0JCSAgZnJlZSgkMyk7CisJCSAgZnJlZSgkNCk7CiAJCX0KKwogICAgICAgICAgICAgICAgIHwgdHlwZSBMUEFSRU4gc3RhcnMgcG5hbWUgUlBBUkVOIExQQVJFTiBwYXJtcyBSUEFSRU4gewogCQkgICQkID0gTmV3UGFybSgkMSwkNCk7CiAJCSAgU3dpZ1R5cGUgKnB0ID0gR2V0dHlwZSgkJCk7CkBAIC0xNTg1LDYgKzE2MTAsOSBAQAogICAgICAgICAgICAgICAgfCBTVEFSIHN0YXJzIHsgJCQgPSAkMiArIDE7fQogICAgICAgICAgICAgICAgOwogCittYXliZXN0YXJzIDogICBlbXB0eSB7ICQkID0gMDsgfQorCSAgICAgICB8IHN0YXJzIHsgJCQgPSAkMTsgfQorCSAgICAgICA7CiAKIGFycmF5IDogICAgICAgIExCUkFDS0VUICBSQlJBQ0tFVCBhcnJheTIgewogCQkgJCQgPSAkMyArIDE7CkBAIC0xNjE2LDYgKzE2NDQsOSBAQAogICAgICAgICAgICAgICAgfCBUWVBFX0xPTkcgb3B0X2ludCB7CiAgICAgICAgICAgICAgICAgICAgJCQgPSAkMTsKIAkgICAgICAgfQorCSAgICAgICB8IFRZUEVfTE9ORyBUWVBFX0xPTkcgb3B0X2ludCB7CisJICAgICAgICAgICAkJCA9IE5ld1N0cmluZygibG9uZyBsb25nIik7CisJICAgICAgIH0KICAgICAgICAgICAgICAgIHwgVFlQRV9DSEFSIHsKICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwogCSAgICAgICB9CkBAIC0xNjgzLDYgKzE3MTQsOSBAQAogICAgICAgICAgICAgICAgfCBUWVBFX0xPTkcgb3B0X2ludCB7CiAgICAgICAgICAgICAgICAgICAgJCQgPSAkMTsKIAkgICAgICAgfQorCSAgICAgICB8IFRZUEVfTE9ORyBUWVBFX0xPTkcgb3B0X2ludCB7CisJCSAgICQkID0gTmV3U3RyaW5nKCJsb25nIGxvbmciKTsKKwkgICAgICAgfQogICAgICAgICAgICAgICAgfCBUWVBFX0NIQVIgewogICAgICAgICAgICAgICAgICAgICQkID0gJDE7CiAJICAgICAgIH0KQEAgLTE3MzUsNiArMTc2OSw5IEBACiAgICAgICAgICAgICAgICB8IFRZUEVfTE9ORyBvcHRfaW50IHsKICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwogCSAgICAgICB9CisJICAgICAgIHwgVFlQRV9MT05HIFRZUEVfTE9ORyBvcHRfaW50IHsKKwkgICAgICAgICAgICQkID0gTmV3U3RyaW5nKCJsb25nIGxvbmciKTsKKwkgICAgICAgfQogICAgICAgICAgICAgICAgfCBUWVBFX0NIQVIgewogICAgICAgICAgICAgICAgICAgICQkID0gTmV3U3RyaW5nKCJzaWduZWQgY2hhciIpOwogCSAgICAgICB9CkBAIC0xNzU0LDYgKzE3OTEsOSBAQAogICAgICAgICAgICAgICAgfCBUWVBFX0xPTkcgb3B0X2ludCB7CiAgICAgICAgICAgICAgICAgICAgJCQgPSBOZXdTdHJpbmcoInVuc2lnbmVkIGxvbmciKTsKIAkgICAgICAgfQorCSAgICAgICB8IFRZUEVfTE9ORyBUWVBFX0xPTkcgb3B0X2ludCB7CisJICAgICAgICAgICAkJCA9IE5ld1N0cmluZygidW5zaWduZWQgbG9uZyBsb25nIik7CisJICAgICAgIH0KICAgICAgICAgICAgICAgIHwgVFlQRV9DSEFSIHsKICAgICAgICAgICAgICAgICAgICAkJCA9IE5ld1N0cmluZygidW5zaWduZWQgY2hhciIpOwogCSAgICAgICB9CkBAIC0yODAyLDYgKzI4NDIsNyBAQAogCiBjcHBfY29uc3QgICAgICA6IENPTlNUIHt9CiAgICAgICAgICAgICAgICB8IFRIUk9XIExQQVJFTiBwYXJtcyBSUEFSRU4geyBEZWxldGUoJDMpO30KKyAgICAgICAgICAgICAgIHwgQ09OU1QgVEhST1cgTFBBUkVOIHBhcm1zIFJQQVJFTiB7IERlbGV0ZSgkNCk7fQogICAgICAgICAgICAgICAgfCBlbXB0eSB7fQogICAgICAgICAgICAgICAgOwogCkBAIC0zMjEyLDE3ICszMjUzLDE4IEBACiAJCSAgIGZyZWUoJDMpOwogCQl9CiAKLSAgICAgICAgICAgICAgICB8IHR5cGUgQU5EIHR5cGVtYXBfbmFtZSB7CisgICAgICAgICAgICAgICAgfCB0eXBlIG1heWJlc3RhcnMgQU5EIHR5cGVtYXBfbmFtZSB7CiAgICAgICAgICAgICAgICAgICAkJCA9IE5ld1RNUGFybSgpOwotCQkgICQkLT5wID0gTmV3UGFybSgkMSwkMyk7CisJCSAgJCQtPnAgPSBOZXdQYXJtKCQxLCQ0KTsKIAkJICBTd2lnVHlwZSAqcHQgPSBHZXR0eXBlKCQkLT5wKTsKKwkJICBhZGRfcG9pbnRlcnMocHQsJDIpOwogCQkgIFN3aWdUeXBlX2FkZF9yZWZlcmVuY2UocHQpOwogCQkgIGlmICghQ1BsdXNQbHVzKSB7CiAJCQlQcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFdhcm5pbmcuICBVc2Ugb2YgQysrIFJlZmVyZW5jZSBkZXRlY3RlZC4gIFVzZSB0aGUgLWMrKyBvcHRpb24uXG4iLCBpbnB1dF9maWxlLCBsaW5lX251bWJlcik7CiAJCSAgfQogCQkgICQkLT5hcmdzID0gdG1fcGFybTsKIAkJICBEZWxldGUoJDEpOwotCQkgIGZyZWUoJDMpOworCQkgIGZyZWUoJDQpOwogCQl9CiAgICAgICAgICAgICAgICAgfCB0eXBlIExQQVJFTiBzdGFycyB0eXBlbWFwX25hbWUgUlBBUkVOIExQQVJFTiBwYXJtcyBSUEFSRU4gewogICAgICAgICAgICAgICAgICAgUHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBFcnJvci4gRnVuY3Rpb24gcG9pbnRlciBub3QgYWxsb3dlZCAocmVtYXAgd2l0aCB0eXBlZGVmKS5cbiIsIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NXSUcvU291cmNlL1NXSUcxLjEvc2Nhbm5lci5jeHggYi9TV0lHL1NvdXJjZS9TV0lHMS4xL3NjYW5uZXIuY3h4CmluZGV4IDU4YzY5ZmYuLjZlNGYxMzUgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1NXSUcxLjEvc2Nhbm5lci5jeHgKKysrIGIvU1dJRy9Tb3VyY2UvU1dJRzEuMS9zY2FubmVyLmN4eApAQCAtODMsNiArODMsNyBAQAogICBpbi0+ZXh0ZXJuX21vZGUgPSBXcmFwRXh0ZXJuOwogICBpbi0+Zm9yY2VfZXh0ZXJuID0gRm9yY2VFeHRlcm47CiAgIGluLT5pbmxpbmVfbW9kZSA9IDA7CisgIGluLT5saW5lX251bWJlciA9IDE7CiAgIGlmICghaW5faGVhZCkgaW4tPnByZXYgPSAwOwogICBlbHNlIGluLT5wcmV2ID0gaW5faGVhZDsKICAgaW5faGVhZCA9IGluOwpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvU1dJRzEuMS9zd2lnMTEuaCBiL1NXSUcvU291cmNlL1NXSUcxLjEvc3dpZzExLmgKaW5kZXggOWIwZmU4OC4uYWYxYzdkMCAxMDA2NDQKLS0tIGEvU1dJRy9Tb3VyY2UvU1dJRzEuMS9zd2lnMTEuaAorKysgYi9TV0lHL1NvdXJjZS9TV0lHMS4xL3N3aWcxMS5oCkBAIC0yMTQsNiArMjE0LDggQEAKIAogICB2aXJ0dWFsIHZvaWQgaW1wb3J0KGNoYXIgKmZpbGVuYW1lKTsKIAorcHJvdGVjdGVkOgorICBpbnQgaXNfbXVsdGlwbGVfZGVmaW5pdGlvbigpOyAvLyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkCiB9OwogCiAvKiBFbWl0IGZ1bmN0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvU3dpZy9jd3JhcC5jIGIvU1dJRy9Tb3VyY2UvU3dpZy9jd3JhcC5jCmluZGV4IDMzYWY0YzkuLjU2ZTI1ODggMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1N3aWcvY3dyYXAuYworKysgYi9TV0lHL1NvdXJjZS9Td2lnL2N3cmFwLmMKQEAgLTc0LDcgKzc0LDcgQEAKICAqIFN3aWdfY2xvY2FsX3R5cGUoKQogICoKICAqIENyZWF0ZXMgYSBzdHJpbmcgdGhhdCBkZWNsYXJlcyBhIEMgbG9jYWwgdmFyaWFibGUgdHlwZS4gIENvbnZlcnRzIHJlZmVyZW5jZXMKLSAqIGFuZCB1c2VyIGRlZmluZWQgdHlwZXMgdG8gcG9pbnRlcnMuCisgKiBhbmQgdXNlciBkZWZpbmVkIHR5cGVzIGFuZCBhcnJheXMgdG8gcG9pbnRlcnMuCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBTd2lnVHlwZSAqCkBAIC05NCw2ICs5NCwyNyBAQAogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3dpZ193cmFwcGVkX3Zhcl9jb252ZXJ0KCkKKyAqCisgKiBDb252ZXJ0cyBhIG1lbWJlciB2YXJpYWJsZSBmb3IgdXNlIGluIHRoZSBnZXQgYW5kIHNldCB3cmFwcGVyIG1ldGhvZHMuCisgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgY29udmVydHMgdXNlciBkZWZpbmVkIHR5cGVzIHRvIHBvaW50ZXJzLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworU3dpZ1R5cGUgKgorU3dpZ193cmFwcGVkX3Zhcl90eXBlKFN3aWdUeXBlICp0KSB7CisgIFN3aWdUeXBlICp0eTsKKyAgdHkgPSBDb3B5KHQpOworICBzd2l0Y2goU3dpZ1R5cGVfdHlwZSh0KSkgeworICBjYXNlIFRfVVNFUjoKKyAgICBTd2lnVHlwZV9hZGRfcG9pbnRlcih0eSk7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgYnJlYWs7CisgIH0KKyAgcmV0dXJuIHR5OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3dpZ19jbG9jYWxfZGVyZWYoKQogICoKICAqIENyZWF0ZXMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXJlZiBhIGxvY2FsIHZhcmlhYmxlIHdyYXBwZWQgd2l0aCAKQEAgLTI1Myw3ICsyNzQsNyBAQAogICAKICAgc3dpdGNoKFN3aWdUeXBlX3R5cGUodCkpIHsKICAgY2FzZSBUX1VTRVI6Ci0gICAgUHJpbnRmKGZjYWxsLCIpOyIpOworICAgIFByaW50ZihmY2FsbCwiKTtcbiIpOwogICAgIGJyZWFrOwogICBjYXNlIFRfUkVGRVJFTkNFOgogICAgIFByaW50ZihmY2FsbCwiO1xuIik7CkBAIC03OTcsNiArODE4LDcgQEAKICAgUGFybSAgICAgKnA7CiAgIFN3aWdUeXBlICp0OwogICBTd2lnVHlwZSAqbHQ7CisgIFN3aWdUeXBlICp0eTsKIAogICB3ID0gTmV3V3JhcHBlcigpOwogCkBAIC04MTAsNyArODMyLDkgQEAKICAgRGVsZXRlKHQpOwogCiAgIGx0ID0gU3dpZ19jbG9jYWxfdHlwZSh0eXBlKTsKLSAgcCA9IE5ld1Bhcm0obHQsInZhbHVlIik7CisgIHR5ID0gU3dpZ193cmFwcGVkX3Zhcl90eXBlKHR5cGUpOworICBwID0gTmV3UGFybSh0eSwidmFsdWUiKTsKKwogICBTZXRuZXh0KGwscCk7CiAgIAogICAvKiAgUHJpbnRmKHctPmRlZiwiJXMgJXMoJXMpIHsiLCBTd2lnVHlwZV9zdHIobHQsMCksIFdyYXBwZXJfR2V0bmFtZSh3KSwgUGFybUxpc3Rfc3RyKGwpKTsgKi8KQEAgLTgyOSw2ICs4NTMsNyBAQAogICBXcmFwcGVyX1NldHBhcm1zKHcsbCk7CiAgIERlbGV0ZShsKTsKICAgRGVsZXRlKGx0KTsKKyAgRGVsZXRlKHR5KTsKICAgcmV0dXJuIHc7CiB9CiAKQEAgLTg1MCw2ICs4NzUsNyBAQAogICBQYXJtICAgICAqcDsKICAgU3dpZ1R5cGUgKnQ7CiAgIFN3aWdUeXBlICpsdDsKKyAgU3dpZ1R5cGUgKnR5OwogCiAgIHcgPSBOZXdXcmFwcGVyKCk7CiAKQEAgLTg3MiwxMCArODk4LDEzIEBACiAgICAgUHJpbnR2KHctPmNvZGUsIGNvZGUsICJcbiIsIDApOwogICB9CiAgIFByaW50Zih3LT5jb2RlLCJ9XG4iKTsKLSAgV3JhcHBlcl9TZXR0eXBlKHcsbHQpOworICB0eSA9IFN3aWdfd3JhcHBlZF92YXJfdHlwZSh0eXBlKTsKKyAgV3JhcHBlcl9TZXR0eXBlKHcsdHkpOworCiAgIFdyYXBwZXJfU2V0cGFybXModyxsKTsKICAgRGVsZXRlKGwpOwogICBEZWxldGUobHQpOworICBEZWxldGUodHkpOwogICByZXR1cm4gdzsKIH0KIApAQCAtODk0LDYgKzkyMyw3IEBACiAgIFBhcm1MaXN0ICpsOwogICBQYXJtICAgICAqcDsKICAgU3dpZ1R5cGUgKmx0OworICBTd2lnVHlwZSAqdHk7CiAKICAgdyA9IE5ld1dyYXBwZXIoKTsKIApAQCAtOTAxLDE1ICs5MzEsMTYgQEAKICAgV3JhcHBlcl9TZXRuYW1lKHcsU3dpZ19uYW1lX3NldCh2YXJuYW1lKSk7CiAKICAgbHQgPSBTd2lnX2Nsb2NhbF90eXBlKHR5cGUpOwotICBwID0gTmV3UGFybShsdCwidmFsdWUiKTsKKyAgdHkgPSBTd2lnX3dyYXBwZWRfdmFyX3R5cGUodHlwZSk7CisgIHAgPSBOZXdQYXJtKHR5LCJ2YWx1ZSIpOwogICBsID0gcDsKICAgCi0gIFByaW50Zih3LT5kZWYsIiVzICVzKCVzKSB7IiwgU3dpZ1R5cGVfc3RyKGx0LDApLCBXcmFwcGVyX0dldG5hbWUodyksIFBhcm1MaXN0X3N0cihsKSk7CisvKiAgUHJpbnRmKHctPmRlZiwiJXMgJXMoJXMpIHsiLCBTd2lnVHlwZV9zdHIobHQsMCksIFdyYXBwZXJfR2V0bmFtZSh3KSwgUGFybUxpc3Rfc3RyKGwpKTsqLworICBQcmludGYody0+ZGVmLCJ2b2lkICVzKCVzKSB7IiwgV3JhcHBlcl9HZXRuYW1lKHcpLCBQYXJtTGlzdF9zdHIobCkpOwogCiAgIGlmICghY29kZSkgewogICAgIC8qIE5vIGNvZGUgc3VwcGxpZWQuICBXcml0ZSBhIGZ1bmN0aW9uIG1hbnVhbGx5ICovCi0gICAgUHJpbnRmKHctPmNvZGUsIiVzID0gJXM7XG4iLCB2YXJuYW1lLCBTd2lnX2Nsb2NhbF9kZXJlZihsdCwidmFsdWUiKSk7Ci0gICAgUHJpbnRmKHctPmNvZGUsInJldHVybiAlcztcbiIsIFN3aWdfY2xvY2FsX2Fzc2lnbihsdCx2YXJuYW1lKSk7CisgICAgUHJpbnRmKHctPmNvZGUsIiVzID0gJXM7XG4iLCB2YXJuYW1lLCBTd2lnX2Nsb2NhbF9kZXJlZih0eXBlLCJ2YWx1ZSIpKTsKICAgfSBlbHNlIHsKICAgICBQcmludHYody0+Y29kZSwgY29kZSwgIlxuIiwgMCk7CiAgICAgUmVwbGFjZSh3LT5jb2RlLCIkdGFyZ2V0Iix2YXJuYW1lLCBET0hfUkVQTEFDRV9BTlkpOwpAQCAtOTE4LDEwICs5NDksMTEgQEAKICAgICBSZXBsYWNlKHctPmNvZGUsIiRydHlwZSIsIFN3aWdUeXBlX3N0cih0eXBlLCIiKSwgRE9IX1JFUExBQ0VfQU5ZKTsKICAgfQogICBQcmludGYody0+Y29kZSwifVxuIik7Ci0gIFdyYXBwZXJfU2V0dHlwZSh3LGx0KTsKKyAgV3JhcHBlcl9TZXR0eXBlKHcsInZvaWQiKTsKICAgV3JhcHBlcl9TZXRwYXJtcyh3LGwpOwogICBEZWxldGUobCk7CiAgIERlbGV0ZShsdCk7CisgIERlbGV0ZSh0eSk7CiAgIHJldHVybiB3OwogfQogCkBAIC05MzksNiArOTcxLDcgQEAKICAgV3JhcHBlciAqdzsKICAgUGFybUxpc3QgKmwgPSAwOwogICBTd2lnVHlwZSAqbHQ7CisgIFN3aWdUeXBlICp0eTsKIAogICB3ID0gTmV3V3JhcHBlcigpOwogCkBAIC05NTYsMTAgKzk4OSwxMiBAQAogICAgIFByaW50dih3LT5jb2RlLCBjb2RlLCAiXG4iLCAwKTsKICAgfQogICBQcmludGYody0+Y29kZSwifVxuIik7Ci0gIFdyYXBwZXJfU2V0dHlwZSh3LGx0KTsKKyAgdHkgPSBTd2lnX3dyYXBwZWRfdmFyX3R5cGUodHlwZSk7CisgIFdyYXBwZXJfU2V0dHlwZSh3LHR5KTsKICAgV3JhcHBlcl9TZXRwYXJtcyh3LGwpOwogICBEZWxldGUobCk7CiAgIERlbGV0ZShsdCk7CisgIERlbGV0ZSh0eSk7CiAgIHJldHVybiB3OwogfQogCmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9Td2lnL21pc2MuYyBiL1NXSUcvU291cmNlL1N3aWcvbWlzYy5jCmluZGV4IGJkNGRlMmUuLjc0ODk5YTUgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1N3aWcvbWlzYy5jCisrKyBiL1NXSUcvU291cmNlL1N3aWcvbWlzYy5jCkBAIC00MiwxMyArNDIsMTMgQEAKICAgUHJpbnRmKGYsCiAiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXAogICogVGhpcyBmaWxlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBTV0lHIChodHRwOi8vd3d3LnN3aWcub3JnKS5cblwKLSAqIFZlcnNpb24gJXMgJXNcblwKKyAqIFZlcnNpb24gJXNcblwKICAqIFxuXAogICogVGhpcyBmaWxlIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBlYXNpbHkgcmVhZGFibGUgYW5kIGNvbnRhaW5zIGEgbnVtYmVyIG9mIFxuXAogICogY29kaW5nIGNvbnZlbnRpb25zIGRlc2lnbmVkIHRvIGltcHJvdmUgcG9ydGFiaWxpdHkgYW5kIGVmZmljaWVuY3kuIERvIG5vdCBtYWtlXG5cCiAgKiBjaGFuZ2VzIHRvIHRoaXMgZmlsZSB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLS1tb2RpZnkgdGhlIFNXSUcgXG5cCiAgKiBpbnRlcmZhY2UgZmlsZSBpbnN0ZWFkLiBcblwKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiIsIFNXSUdfVkVSU0lPTiwgU1dJR19TUElOKTsKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiIsIFNXSUdfVkVSU0lPTik7CiAKIH0KIApkaWZmIC0tZ2l0IGEvU1dJRy9Tb3VyY2UvU3dpZy9zdHlwZS5jIGIvU1dJRy9Tb3VyY2UvU3dpZy9zdHlwZS5jCmluZGV4IDY2MThlYTcuLjgwNDdjZDEgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1N3aWcvc3R5cGUuYworKysgYi9TV0lHL1NvdXJjZS9Td2lnL3N0eXBlLmMKQEAgLTgxMiw2ICs4MTIsOCBAQAogICAgICAgQXBwZW5kKHJlc3VsdCwiKSIpOwogICAgICAgRGVsZXRlKHBhcm1zKTsKICAgICB9IGVsc2UgaWYgKFN3aWdUeXBlX2lzcXVhbGlmaWVyKGVsZW1lbnQpKSB7CisgICAgfSBlbHNlIGlmIChTd2lnVHlwZV9pc2VudW0oZWxlbWVudCkpIHsKKyAgICAgIEluc2VydChyZXN1bHQsMCwiIGludCAiKTsKICAgICB9IGVsc2UgewogICAgICAgSW5zZXJ0KHJlc3VsdCwwLCIgIik7CiAgICAgICBJbnNlcnQocmVzdWx0LDAsZWxlbWVudCk7CkBAIC0xMzI5LDYgKzEzMzEsOCBAQAogICBpZiAoc3RyY21wKGMsImRvdWJsZSIpID09IDApIHJldHVybiBUX0RPVUJMRTsKICAgaWYgKHN0cmNtcChjLCJ2b2lkIikgPT0gMCkgcmV0dXJuIFRfVk9JRDsKICAgaWYgKHN0cmNtcChjLCJib29sIikgPT0gMCkgcmV0dXJuIFRfQk9PTDsKKyAgaWYgKHN0cmNtcChjLCJsb25nIGxvbmciKSA9PSAwKSByZXR1cm4gVF9MT05HTE9ORzsKKyAgaWYgKHN0cmNtcChjLCJ1bnNpZ25lZCBsb25nIGxvbmciKSA9PSAwKSByZXR1cm4gVF9VTE9OR0xPTkc7CiAgIGlmIChzdHJuY21wKGMsImVudW0gIiw1KSA9PSAwKSByZXR1cm4gVF9JTlQ7CiAgIC8qIEhtbW0uIFVua25vd24gdHlwZSAqLwogICBpZiAoU3dpZ1R5cGVfaXN0eXBlZGVmKHQpKSB7CmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9Td2lnL3N3aWcuaCBiL1NXSUcvU291cmNlL1N3aWcvc3dpZy5oCmluZGV4IDMwY2VhZTYuLmQzMmViMjEgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1N3aWcvc3dpZy5oCisrKyBiL1NXSUcvU291cmNlL1N3aWcvc3dpZy5oCkBAIC00Nyw2ICs0Nyw4IEBACiAjZGVmaW5lICAgVF9DSEFSICAgICAgIDEyCiAjZGVmaW5lICAgVF9VU0VSICAgICAgIDEzCiAjZGVmaW5lICAgVF9WT0lEICAgICAgIDE0CisjZGVmaW5lICAgVF9MT05HTE9ORyAgIDE1CisjZGVmaW5lICAgVF9VTE9OR0xPTkcgIDE2CiAjZGVmaW5lICAgVF9TVFJJTkcgICAgIDIwCiAjZGVmaW5lICAgVF9QT0lOVEVSICAgIDIxCiAjZGVmaW5lICAgVF9SRUZFUkVOQ0UgIDIyCmRpZmYgLS1naXQgYS9TV0lHL1NvdXJjZS9Td2lnL3R5cGVtYXAuYyBiL1NXSUcvU291cmNlL1N3aWcvdHlwZW1hcC5jCmluZGV4IGQ3MWQzN2EuLjJhNmFmMzMgMTAwNjQ0Ci0tLSBhL1NXSUcvU291cmNlL1N3aWcvdHlwZW1hcC5jCisrKyBiL1NXSUcvU291cmNlL1N3aWcvdHlwZW1hcC5jCkBAIC0zMjksNyArMzI5LDE0IEBACiAgICAgaWYgKCFwcmltaXRpdmUpCiAgICAgICBwcmltaXRpdmUgPSBTd2lnVHlwZV9kZWZhdWx0KHR5cGUpOwogICAgIHRtID0gR2V0YXR0cih0eXBlbWFwc1t0c10scHJpbWl0aXZlKTsKLSAgICBpZiAodG0pIHsKKyAgICBpZiAodG0gJiYgY25hbWUpIHsKKyAgICAgIHRtMSA9IEdldGF0dHIodG0sY25hbWUpOworICAgICAgaWYgKHRtMSkgeworCXJlc3VsdCA9IEdldGF0dHIodG0xLG9wKTsgICAgICAgICAgLyogU2VlIGlmIHRoZXJlIGlzIGEgdHlwZS1uYW1lIG1hdGNoICovCisJaWYgKHJlc3VsdCkgZ290byByZXRfcmVzdWx0OworICAgICAgfQorICAgIH0KKyAgICBpZiAodG0pIHsJCQkvKiBTZWUgaWYgdGhlcmUgaXMgc2ltcGx5IGEgdHlwZSBtYXRjaCAqLwogICAgICAgcmVzdWx0ID0gR2V0YXR0cih0bSxvcCk7CiAgICAgICBpZiAocmVzdWx0KSBnb3RvIHJldF9yZXN1bHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU1dJRy9UT0RPIGIvU1dJRy9UT0RPCmluZGV4IGQwNWU2NzUuLmQxOGJiOWIgMTAwNjQ0Ci0tLSBhL1NXSUcvVE9ETworKysgYi9TV0lHL1RPRE8KQEAgLTEsMjUgKzEsODQgQEAKIAkJCQkJCS0qLSBvdXRsaW5lIC0qLQogCi0qIGZvciAxLjNhNCByZWxlYXNlCisqIGZvciByZWxlYXNlIDEuMy42CiAKLSoqIFt0dG5dIGFkZCB0ZXN0LXN1aXRlIGJhc2VkIG9uIEV4YW1wbGVzCisqKiBUZXN0aW5nCiAKLVtvcGVuXSBUaGUgYmVoYXZpb3Igb2YgU1dJRyB3aXRoIHJlc3BlY3QgdG8gY2FsbC9yZXR1cm4tYnktdmFsdWUgbmVlZHMKLSAgICAgICB0byBiZSB2ZXJpZmllZCBmb3IgYWxsIGxhbmd1YWdlIG1vZHVsZXMuICAgUHJldmlvdXNseSwgdGhlCisqIGZvciByZWxlYXNlIDEuMy43CisKKyoqIERpc2N1c3MgdGhlICVwcmFnbWEgZGlyZWN0aXZlIHN5bnRheCBjaGFuZ2UgZnJvbSBDVlMgaGVhZC4gIAorICAgV2h5IGlzIHRoZSBzeW50YXggY2hhbmdpbmcgYWxsIHRoZSB0aW1lPyAgQ2FuJ3Qgd2UganVzdCBzdGljayB0bworICAgdGhlIHN5bnRheCBpbiAxLjNhNT8gCisKKyoqIE1heWJlIHBvcnQgb3RoZXIgcGFyc2VyLXJlbGF0ZWQgc3R1ZmYgZnJvbSBDVlMgaGVhZAorCisqKiBNYXliZSBnZXQgdGhlIDEwLzE0LzAwIGNoYW5nZXMgZnJvbSBDVlMgaGVhZAorCisqKiBGaXggYWxsIHRoZSBidWdzIG9uIFNvdXJjZUZvcmdlCisKKyoqIEluY29ycG9yYXRlIGFsbCB0aGUgcGF0Y2hlcyBvbiBTb3VyY2VGb3JnZQorCisqKiBNYWtlIGEgcHJvcGVyIHRlc3Qgc3VpdGUgd2l0aCBib3RoIGxhbmd1YWdlLWluZGVwZW5kZW50IGFuZCBsYW5ndWFnZS1kZXBlbmRlbnQgdGVzdHMuCisgICBUaGUgZGlyZWN0b3JpZXMgRXhhbXBsZXMvZ3VpbGUvdGVzdC1zdWl0ZSwgRXhhbXBsZXMvcGVybDUvcG9pbnRlci1jeHgsIEV4YW1wbGVzL0MrKworICAgY29udGFpbiBzb21lIG1hdGVyaWFsIHRoYXQgY2FuIGJlIHVzZWQuCisKKyogZXZlbnR1YWxseQorCisqKiAgICAgUmV2aXZlIHRoZSBkb2N1bWVudGF0aW9uCisKKyoqICAgICBNYXliZSB1c2UgbGlidG9vbCByYXRoZXIgdGhhbiBhbGwgdGhlIGhvbWUtZ3Jvd24gY29tcGlsZS9saW5rIHN0dWZmCisKKyoqICAgICBUaGUgYmVoYXZpb3Igb2YgU1dJRyB3aXRoIHJlc3BlY3QgdG8gY2FsbC9yZXR1cm4tYnktdmFsdWUgbmVlZHMKKyAgICAgICB0byBiZSB2ZXJpZmllZCBmb3IgYWxsIGxhbmd1YWdlIG1vZHVsZXMuICBQcmV2aW91c2x5LCB0aGUKICAgICAgICBwYXJzZXIgYXV0b21hdGljYWxseSBwZXJmb3JtZWQgdGhlIGNvbnZlcnNpb24gb2YgcGFzcy1ieS12YWx1ZQogICAgICAgIHRvIHBhc3MtYnktcmVmZXJlbmNlLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBjb25mdXNlZCB0eXBlbWFwCiAgICAgICAgaGFuZGxpbmcgYW5kIG90aGVyIGFzcGVjdHMgb2YgdGhlIHN5c3RlbS4gICBJIGhhdmUgcmVtb3ZlZAogICAgICAgIHRoaXMgYmVoYXZpb3IuICBIb3dldmVyLCBpbiBkb2luZyBzbywgdGhlIGhhbmRsaW5nIG9mIHVzZXIKICAgICAgICBkZWZpbmVkIHR5cGVzIGlzIHBhc3NlZCBvbiB0byB0aGUgbGFuZ3VhZ2UgbW9kdWxlcy4KIAotW29wZW5dIEFsbCBvZiB0aGUgU1dJRyAxLjFwNSBleGFtcGxlcyBuZWVkIHRvIGJlIHZlcmlmaWVkLiAgQ2hhbmdlcworKiogICAgIEFsbCBvZiB0aGUgU1dJRyAxLjFwNSBleGFtcGxlcyBuZWVkIHRvIGJlIHZlcmlmaWVkLiAgQ2hhbmdlcwogICAgICAgIGluIHR5cGUgaGFuZGxpbmcgYW5kIGludGVybmFsIGRhdGEgc3RydWN0dXJlcyBtYXkgaGF2ZSBicm9rZW4KICAgICAgICBhIHZhcmlldHkgb2YgdGhpbmdzLgogCi0qIGZvciAxLjNhNSByZWxlYXNlCisqKiBbR3VpbGVdIE5ldyAlcHJhZ21hICJkb2N1bWVudGF0aW9uIiwgd2hpY2ggYWxsb3dzIHRvIGF0dGFjaCBkb2N1bWVudGF0aW9uCisgICBzdHJpbmdzIHRvIGEgcHJvY2VkdXJlLgogCi0qIGZvciAxLjNiMSByZWxlYXNlCisqKiBbR3VpbGVdIE1heWJlIHN1cHBvcnQga2V5d29yZCBhcmdzCiAKLSogZm9yIDEuM2IyIHJlbGVhc2UKKyoqIFtHdWlsZV0gTWF5YmUgc3VwcG9ydCBHT09QUyBzaGFkb3cgY2xhc3NlcwogCi0qIGZvciAyLnggcmVsZWFzZQorKiogW0d1aWxlXSBTdXBwb3J0IGdhcmJhZ2UgY29sbGVjdGlvbi4KKworKioqICVuZXcgYW5ub3RhdGlvbiBkZWNpZGVzIHdoZXRoZXIgYSBwb2ludGVyIHNtb2IgY2FuIGJlIGdjJ2VkLgorCisqKiogTmV3IHNtb2IgdHlwZSBgc3dpZy1nYyc7IGluc3RhbmNlcyBjcmVhdGVkIHdpdGgKKyAgICBTV0lHX0d1aWxlX01ha2VDb2xsZWN0YWJsZVB0ci4gICVuZXcgdmVyc2lvbnMgb2YgdGhlIHBvaW50ZXIKKyAgICB0eXBlbWFwcyB1c2UgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiBTV0lHX0d1aWxlX01ha2VQdHIuCisKKyoqKiBOZXcgdHlwZW1hcHMgImRlc3RydWN0b3IiLCAiZ2NtYXJrZXIiLiAgVGhlaXIgdmFsdWVzIGFyZSB0YWtlbiBhcworICAgIGlkZW50aWZpZXJzIGZvciBmdW5jdGlvbnMgdGFraW5nIG9uZSBhcmd1bWVudDogYSBwb2ludGVyIHRvIHRoZQorICAgIG9iamVjdCB0byBiZSBkZXN0cm95ZWQsIG9yIHdob3NlIFNDTS12YWx1ZWQgc3Vib2JqZWN0cyBhcmUgdG8gYmUKKyAgICBtYXJrZWQuICBBZnRlciBjcmVhdGluZyB0aGUgcG9pbnRlciBlcXVpdmFsZW5jZSB0YWJsZSwgd2UgaXRlcmF0ZQorICAgIGFnYWluIG92ZXIgdGhlIHJlbWVtYmVyZWQgcG9pbnRlciB0eXBlcywgZW1pdHRpbmcgY29kZSB0aGF0IHB1dHMKKyAgICB0aGUgZnVuY3Rpb25zIGludG8gb3VyIHR5cGUgdGFibGUuICBObyBhZGRpdGlvbmFsIGZ1bmN0aW9ucyBhcmUKKyAgICBnZW5lcmF0ZWQuCisKKyoqKiBUaGUgZGVmYXVsdCBmb3IgYWxsIHBvaW50ZXIgdHlwZXMgd291bGQgYmU6IAorICAgICV0eXBlbWFwKGRlc3RydWN0b3IpIFNXSUdQT0lOVEVSICogImZyZWUiOworCisqKiogQSBzcGVjaWFsIGFubm90YXRpb24sIGUuZy4gRlJFRUQsIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgYXJndW1lbnRzCisgICAgb2YgZGVzdHJ1Y3RvciBmdW5jdGlvbnMsIHNvIHRoYXQgZXhwbGljaXRseSBmcmVlZCBzdHJ1Y3RzIHdvbid0IGJlCisgICAgY29sbGVjdGVkIGJ5IHRoZSBHQyBhZ2Fpbi4gTGlrZSB0aGlzOgorCisgICAgJXR5cGVtYXAoYXJnb3V0KSBTV0lHUE9JTlRFUiAqRlJFRUQgeworICAgICAgc21vYi10YWcoJHNvdXJjZSkgPSBzd2lnOyAvKiBub24tZ2MgKi8KKyAgICAgIHNtb2ItZGF0YSgkc291cmNlKSA9IE5VTEw7CisgICAgfQorICAgIHZvaWQgZnJlZV9mb28oc3RydWN0IGZvbyAqRlJFRUQpOworICAgIAorKiogTWFrZSBhIHRyaWNreSBoZWFkZXIgZmlsZSBkZWZpbmluZyBhbm5vdGF0aW9ucyBpbnZpc2libGUgdG8gdGhlIEMgY29tcGlsZXIuIAorICAgVGhlIGlkZWEgaXMgdG8gcHJlcGFyZSBvbmUgZmlsZSB0aGF0IHNlcnZlcyBib3RoIGFzIGEgQyBoZWFkZXIgZmlsZSAKKyAgIGFuZCBhIFNXSUcgaW50ZXJmYWNlIGZpbGUuCisKKyAgIHZvaWQgYWRkKFNXSUdfT1VUUFVUKGludCkgKnosIGludCB4LCBpbnQgeSkKKwpkaWZmIC0tZ2l0IGEvU1dJRy9Ub29scy8uY3ZzaWdub3JlIGIvU1dJRy9Ub29scy8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0M2Y1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL1Rvb2xzLy5jdnNpZ25vcmUKQEAgLTAsMCArMSw0IEBACitjb25maWcubG9nCitjb25maWcuc3RhdHVzCitjb25maWd1cmUKK2xpYnRvb2wKZGlmZiAtLWdpdCBhL1NXSUcvVkVSU0lPTiBiL1NXSUcvVkVSU0lPTgppbmRleCBkMTY0MzViLi40YjIwYzc3IDEwMDY0NAotLS0gYS9TV0lHL1ZFUlNJT04KKysrIGIvU1dJRy9WRVJTSU9OCkBAIC0xNCwxMCArMTQsMTAgQEAKIGRldnJlbGVhc2VfdG9kYXk9dS1gZGF0ZSArJVklbSVkLSVIJU1gCiAKIFNXSUdfTUFKT1JfVkVSU0lPTj0xCi1TV0lHX01JTk9SX1ZFUlNJT049MyRkZXZyZWxlYXNlX3RvZGF5CitTV0lHX01JTk9SX1ZFUlNJT049MworU1dJR19TUElOPTYKIAotU1dJR19WRVJTSU9OPSRTV0lHX01BSk9SX1ZFUlNJT04uJFNXSUdfTUlOT1JfVkVSU0lPTgotU1dJR19TUElOPScoQWxwaGEgNSknCitTV0lHX1ZFUlNJT049JFNXSUdfTUFKT1JfVkVSU0lPTi4kU1dJR19NSU5PUl9WRVJTSU9OLiRTV0lHX1NQSU4kZGV2cmVsZWFzZV90b2RheQogCiAjIEZvciBhdXRvY29uZi4KIFZFUlNJT049JFNXSUdfVkVSU0lPTgpkaWZmIC0tZ2l0IGEvU1dJRy9hdXRvZ2VuLnNoIGIvU1dJRy9hdXRvZ2VuLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY1YmFlYjUKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2F1dG9nZW4uc2gKQEAgLTAsMCArMSw2IEBACisjISAvYmluL3NoCisjIEJvb3RzdHJhcCB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQKK2F1dG9jb25mCisoY2QgU291cmNlL0RPSDsgYXV0b2NvbmYpCisoY2QgVG9vbHM7IGF1dG9jb25mKQorKGNkIEV4YW1wbGVzL0dJRlBsb3Q7IGF1dG9jb25mKQpkaWZmIC0tZ2l0IGEvU1dJRy9jb25maWd1cmUuaW4gYi9TV0lHL2NvbmZpZ3VyZS5pbgppbmRleCBhNGIzMzQyLi5mYWNhNjA0IDEwMDY0NAotLS0gYS9TV0lHL2NvbmZpZ3VyZS5pbgorKysgYi9TV0lHL2NvbmZpZ3VyZS5pbgpAQCAtNjEsNiArNjEsOCBAQAogQUNfU1VCU1QoU08pCiBBQ19TVUJTVChMRFNIQVJFRCkKIEFDX1NVQlNUKENDU0hBUkVEKQorQUNfU1VCU1QoQ1hYU0hBUkVEKQorQUNfU1VCU1QoVFJZTElOS0lOR1dJVEhDWFgpCiBBQ19TVUJTVChMSU5LRk9SU0hBUkVEKQogCiAjIFNPIGlzIHRoZSBleHRlbnNpb24gb2Ygc2hhcmVkIGxpYnJhcmllcyBgKGluY2x1ZGluZyB0aGUgZG90ISkKQEAgLTgzLDYgKzg1LDggQEAKIHRoZW4KIAljYXNlICRhY19zeXNfc3lzdGVtLyRhY19zeXNfcmVsZWFzZSBpbgogCUFJWCopIExEU0hBUkVEPSJcJChzcmNkaXIpL2xkX3NvX2FpeCBcJChDQykiOzsKKyAgICAgICAgIyBjeWd3aW4gdXNlcyBkbGx3cmFwIHRvIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzCisJQ1lHV0lOKikgTERTSEFSRUQ9ImRsbHdyYXAgLS10YXJnZXQ9Y3lnd2luIC0tYXM9YXMgLS1kbGx0b29sLW5hbWU9ZGxsdG9vbCAtLWRyaXZlci1uYW1lPSRDQyAtLWV4cG9ydC1hbGwgLXMgIjs7CiAJSVJJWC81KikgTERTSEFSRUQ9ImxkIC1zaGFyZWQiOzsKIAlJUklYKi82KikgTERTSEFSRUQ9ImxkICR7U0dJX0FCSX0gLXNoYXJlZCAtYWxsIjs7CiAJU3VuT1MvNCopIExEU0hBUkVEPSJsZCI7OwpAQCAtMTE0LDYgKzExOCwzMiBAQAogCWVzYWMKIGZpCiBBQ19NU0dfUkVTVUxUKCRMRFNIQVJFRCkKKyMgQ1hYU0hBUkVEIGlzIHRoZSBsZCAqY29tbWFuZCogdXNlZCB0byBjcmVhdGUgQysrIHNoYXJlZCBsaWJyYXJ5CisjIC0tICJsZCIgb24gU3VuT1MgNC54LngsICJsZCAtRyIgb24gU3VuT1MgNS54LCAibGQgLXNoYXJlZCIgb24gSVJJWCA1CisjIChTaGFyZWQgbGlicmFyaWVzIGluIHRoaXMgaW5zdGFuY2UgYXJlIHNoYXJlZCBtb2R1bGVzIHRvIGJlIGxvYWRlZCBpbnRvCisjIFB5dGhvbiwgYXMgb3Bwb3NlZCB0byBidWlsZGluZyBQeXRob24gaXRzZWxmIGFzIGEgc2hhcmVkIGxpYnJhcnkuKQorQUNfTVNHX0NIRUNLSU5HKENYWFNIQVJFRCkKK2lmIHRlc3QgLXogIiRDWFhTSEFSRUQiCit0aGVuCisJY2FzZSAkYWNfc3lzX3N5c3RlbS8kYWNfc3lzX3JlbGVhc2UgaW4KKyAgICAgICAgIyBjeWd3aW4gdXNlcyBkbGx3cmFwIHRvIGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzCisJQ1lHV0lOKikgQ1hYU0hBUkVEPSJkbGx3cmFwIC0tdGFyZ2V0PWN5Z3dpbiAtLWFzPWFzIC0tZGxsdG9vbC1uYW1lPWRsbHRvb2wgLS1kcml2ZXItbmFtZT0kQ1hYIC0tZXhwb3J0LWFsbCAtcyAiOzsKKyAgICAgICAgIyBhbGwgb3RoZXIgcGxhdGZvcm1zIG1ha2Ugbm8gZGlzdGluY3Rpb24gYmV0d2VlbiBDIGFuZCBDKysgc2hhcmVkIGxpYnJhcmllcworCSopCUNYWFNIQVJFRD0iJExEU0hBUkVEIjs7CisJZXNhYworZmkKK0FDX01TR19SRVNVTFQoJENYWFNIQVJFRCkKKyMKK0FDX01TR19DSEVDS0lORyhUUllMSU5LSU5HV0lUSENYWCkKK2lmIHRlc3QgLXogIiRUUllMSU5LSU5HV0lUSENYWCIKK3RoZW4KKwljYXNlICRhY19zeXNfc3lzdGVtLyRhY19zeXNfcmVsZWFzZSBpbgorICAgICAgICAjIGN5Z3dpbiB1c2VzIGRsbHdyYXAgdG8gY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMKKyAgICAgICAgQ1lHV0lOKikgVFJZTElOS0lOR1dJVEhDWFg9IiMgTm90IGZvciBDWUdXSU46IENYWFNIQVJFRD0gICAgICAkQ1hYIC1zaGFyZWQgIjs7CisgICAgICAgICopICAgICAgIFRSWUxJTktJTkdXSVRIQ1hYPSJDWFhTSEFSRUQ9ICAgICAgJENYWCAtc2hhcmVkICI7OworICAgICAgICBlc2FjCitmaQorQUNfTVNHX1JFU1VMVCgkVFJZTElOS0lOR1dJVEhDWFgpCiAjIENDU0hBUkVEIGFyZSB0aGUgQyAqZmxhZ3MqIHVzZWQgdG8gY3JlYXRlIG9iamVjdHMgdG8gZ28gaW50byBhIHNoYXJlZAogIyBsaWJyYXJ5IChtb2R1bGUpIC0tIHRoaXMgaXMgb25seSBuZWVkZWQgZm9yIGEgZmV3IHN5c3RlbXMKIEFDX01TR19DSEVDS0lORyhDQ1NIQVJFRCkKQEAgLTE0NSwxMCArMTc1LDEwIEBACiBpZiB0ZXN0IC16ICIkUlBBVEgiCiB0aGVuCiAJY2FzZSAkYWNfc3lzX3N5c3RlbS8kYWNfc3lzX3JlbGVhc2UgaW4KLQlTdW5PUy81KikgUlBBVEg9Ii1SLiAtUiQoZXhlY19wcmVmaXgpL2xpYiI7OwotICAgICAgICBJUklYKikgUlBBVEg9Ii1ycGF0aCAuOiQoZXhlY19wcmVmaXgpL2xpYiI7OwotCUxpbnV4KikgUlBBVEg9Ii1YbGlua2VyIC1ycGF0aCAkKGV4ZWNfcHJlZml4KS9saWIgLVhsaW5rZXIgLXJwYXRoIC4iOzsKLQkqKQlSUEFUSD0iIjs7CisJU3VuT1MvNSopIFJQQVRIPSctUi4gLVIkKGV4ZWNfcHJlZml4KS9saWInOzsKKyAgICAgICAgSVJJWCopIFJQQVRIPSctcnBhdGggLjokKGV4ZWNfcHJlZml4KS9saWInOzsKKwlMaW51eCopIFJQQVRIPSctWGxpbmtlciAtcnBhdGggJChleGVjX3ByZWZpeCkvbGliIC1YbGlua2VyIC1ycGF0aCAuJzs7CisJKikJUlBBVEg9Jyc7OwogCWVzYWMKIGZpCiBBQ19NU0dfUkVTVUxUKCRSUEFUSCkKQEAgLTI5OCw2ICszMjgsOCBAQAogVENMTElCPQogVENMUEFDS0FHRT0KIAorQUNfQVJHX1dJVEgodGNsY29uZmlnLFsgIC0td2l0aC10Y2xjb25maWc9cGF0aCAgU2V0IGxvY2F0aW9uIG9mIHRjbENvbmZpZy5zaF0sCisgICAgICAgIHdpdGhfdGNsY29uZmlnPSIkd2l0aHZhbCIpCiBBQ19BUkdfV0lUSCh0Y2wsWyAgLS13aXRoLXRjbD1wYXRoICAgICAgICAgU2V0IGxvY2F0aW9uIG9mIFRjbCBwYWNrYWdlXSxbCiAJVENMUEFDS0FHRT0iJHdpdGh2YWwiXSwgW1RDTFBBQ0tBR0U9XSkKIEFDX0FSR19XSVRIKHRjbGluY2wsWyAgLS13aXRoLXRjbGluY2w9cGF0aCAgICAgU2V0IGxvY2F0aW9uIG9mIFRjbCBpbmNsdWRlIGRpcmVjdG9yeV0sWwpAQCAtMzA1LDYgKzMzNywzNSBAQAogQUNfQVJHX1dJVEgodGNsbGliLFsgIC0td2l0aC10Y2xsaWI9cGF0aCAgICAgIFNldCBsb2NhdGlvbiBvZiBUY2wgbGlicmFyeSBkaXJlY3RvcnldLFsKIAlUQ0xMSUI9Ii1MJHdpdGh2YWwiXSwgW1RDTExJQj1dKQogCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBUY2wgY29uZmlndXJhdGlvbl0pCisjIEZpcnN0IGNoZWNrIHRvIHNlZSBpZiAtLXdpdGgtdGNsY29uZmlnIHdhcyBzcGVjaWZpZWQuCitpZiB0ZXN0IHgiJHt3aXRoX3RjbGNvbmZpZ30iICE9IHggOyB0aGVuCisgICBpZiB0ZXN0IC1mICIke3dpdGhfdGNsY29uZmlnfS90Y2xDb25maWcuc2giIDsgdGhlbgorICAgICAgVENMQ09ORklHPWAoY2QgJHt3aXRoX3RjbGNvbmZpZ307IHB3ZClgCisgICBlbHNlCisgICAgICBBQ19NU0dfRVJST1IoWyR7d2l0aF90Y2x9IGRpcmVjdG9yeSBkb2Vzbid0IGNvbnRhaW4gdGNsQ29uZmlnLnNoXSkKKyAgIGZpCitmaQorIyBjaGVjayBpbiBhIGZldyBjb21tb24gaW5zdGFsbCBsb2NhdGlvbnMKK2lmIHRlc3QgeCIke1RDTENPTkZJR30iID0geCA7IHRoZW4KKyAgICBmb3IgaSBpbiBgbHMgLWQgL3Vzci9saWIgMj4vZGV2L251bGxgIFwKKwkgICAgIGBscyAtZCAke3ByZWZpeH0vbGliIDI+L2Rldi9udWxsYCBcCisJICAgIGBscyAtZCAvdXNyL2xvY2FsL2xpYiAyPi9kZXYvbnVsbGAgOyBkbworCWlmIHRlc3QgLWYgIiRpL3RjbENvbmZpZy5zaCIgOyB0aGVuCisJICAgIFRDTENPTkZJRz1gKGNkICRpOyBwd2QpYAorCSAgICBicmVhaworCWZpCisgICAgZG9uZQorZmkKK2lmIHRlc3QgeCIke1RDTENPTkZJR30iID0geCA7IHRoZW4KKyAgICBBQ19NU0dfUkVTVUxUKG5vKQorZWxzZQorICAgIEFDX01TR19SRVNVTFQoZm91bmQgJFRDTENPTkZJRy90Y2xDb25maWcuc2gpCisgICAgLiAkVENMQ09ORklHL3RjbENvbmZpZy5zaAorICAgIFRDTElOQ0xVREU9LUkkVENMX1BSRUZJWC9pbmNsdWRlCisgICAgVENMTElCPSRUQ0xfTElCX1NQRUMKK2ZpCisKIGlmIHRlc3QgLXogIiRUQ0xJTkNMVURFIjsgdGhlbgogICAgaWYgdGVzdCAtbiAiJFRDTFBBQ0tBR0UiOyB0aGVuCiAJVENMSU5DTFVERT0iLUkkVENMUEFDS0FHRS9pbmNsdWRlIgpAQCAtMzEzLDcgKzM3NCw3IEBACiAKIGlmIHRlc3QgLXogIiRUQ0xMSUIiOyB0aGVuCiAgICBpZiB0ZXN0IC1uICIkVENMUEFDS0FHRSI7IHRoZW4KLQlUQ0xMSUI9Ii1MJFRDTFBBQ0tBR0UvbGliIgorCVRDTExJQj0iLUwkVENMUEFDS0FHRS9saWIgLWx0Y2wiCiAgICBmaQogZmkKIApAQCAtMzMxLDcgKzM5Miw3IEBACiAJZG9uZQogZmkKIGlmIHRlc3QgLXogIiRUQ0xJTkNMVURFIjsgdGhlbgotCVRDTElOQ0xVREU9Ii1JL3Vzci9sb2NhbC9pbmNsdWRlIgorIwlUQ0xJTkNMVURFPSItSS91c3IvbG9jYWwvaW5jbHVkZSIKICAgICAJQUNfTVNHX1JFU1VMVChub3QgZm91bmQpCiBmaQogZWxzZQpAQCAtMzQ0LDEzICs0MDUsMTMgQEAKIGZvciBpIGluICRkaXJzIDsgZG8KIAlpZiB0ZXN0IC1yICRpL2xpYnRjbC5hOyB0aGVuCiAJICAgIEFDX01TR19SRVNVTFQoJGkpCi0JICAgIFRDTExJQj0iLUwkaSIKKwkgICAgVENMTElCPSItTCRpIC1sdGNsIgogCSAgICBicmVhawogCWZpCiBkb25lCiBpZiB0ZXN0IC16ICIkVENMTElCIjsgdGhlbgogCUFDX01TR19SRVNVTFQobm90IGZvdW5kKQotCVRDTExJQj0iLUwvdXNyL2xvY2FsL2xpYiIKKyMJVENMTElCPSItTC91c3IvbG9jYWwvbGliIgogZmkKIGVsc2UKIEFDX01TR19SRVNVTFQoJFRDTExJQikKQEAgLTM5MCw3ICs0NTEsNyBAQAogCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIFB5dGhvbiBoZWFkZXIgZmlsZXMpCiAKLWRpcnM9IiRQWUlOQ0xVREUgJFBZSU5DTFVERS9weXRob24xLjYgJFBZSU5DTFVERS9weXRob24xLjUgJFBZSU5DTFVERS9weXRob24xLjQgJFBZSU5DTFVERS9QeSAkcHJlZml4PS9pbmNsdWRlL3B5dGhvbjEuNiAkcHJlZml4L2luY2x1ZGUvcHl0aG9uMS41ICRwcmVmaXgvaW5jbHVkZS9weXRob24xLjQgL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhvbjEuNiAvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS41IC91c3IvaW5jbHVkZS9weXRob24xLjUgL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhvbjEuNCAvdXNyL2luY2x1ZGUvcHl0aG9uMS40ICRwcmVmaXgvaW5jbHVkZS9QeSAvdXNyL2xvY2FsL2luY2x1ZGUvUHkgL3Vzci9pbmNsdWRlL1B5IgorZGlycz0iJFBZSU5DTFVERSAkUFlJTkNMVURFL3B5dGhvbjIuMSAkUFlJTkNMVURFL3B5dGhvbjIuMCAkUFlJTkNMVURFL3B5dGhvbjEuNiAkUFlJTkNMVURFL3B5dGhvbjEuNSAkUFlJTkNMVURFL3B5dGhvbjEuNCAkUFlJTkNMVURFL1B5ICRwcmVmaXgvaW5jbHVkZS9weXRob24yLjEgJHByZWZpeC9pbmNsdWRlL3B5dGhvbjIuMCAkcHJlZml4L2luY2x1ZGUvcHl0aG9uMS42ICRwcmVmaXgvaW5jbHVkZS9weXRob24xLjUgJHByZWZpeC9pbmNsdWRlL3B5dGhvbjEuNCAvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMi4xIC91c3IvbG9jYWwvaW5jbHVkZS9weXRob24yLjAgL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhvbjEuNiAvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS41IC91c3IvaW5jbHVkZS9weXRob24xLjUgL3Vzci9sb2NhbC9pbmNsdWRlL3B5dGhvbjEuNCAvdXNyL2luY2x1ZGUvcHl0aG9uMS40ICRwcmVmaXgvaW5jbHVkZS9QeSAvdXNyL2xvY2FsL2luY2x1ZGUvUHkgL3Vzci9pbmNsdWRlL1B5IgogZm9yIGkgaW4gJGRpcnMgOyBkbwogCWlmIHRlc3QgLXIgJGkvUHl0aG9uLmg7IHRoZW4KIAkJQUNfTVNHX1JFU1VMVCgkaSkKQEAgLTM5OSwxNCArNDYwLDI4IEBACiAJZmkKIGRvbmUKIGlmIHRlc3QgLXogIiRQWUlOQ0xVREUiOyB0aGVuCi0JUFlJTkNMVURFPSItSS91c3IvbG9jYWwvaW5jbHVkZS9QeSIKKyMJUFlJTkNMVURFPSItSS91c3IvbG9jYWwvaW5jbHVkZS9QeSIKICAgICAJQUNfTVNHX1JFU1VMVChub3QgZm91bmQpCiBmaQogCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIFB5dGhvbiBsaWJyYXJ5KQotZGlycz0iJFBZTElCICRQWUxJQi9jb25maWcgJFBZTElCL2xpYiAkUFlMSUIvcHl0aG9uMS42L2NvbmZpZyAkUFlMSUIvcHl0aG9uMS41L2NvbmZpZyAkUFlMSUIvcHl0aG9uMS40L2NvbmZpZyAkUFlMSUIvcHl0aG9uL2xpYiAkcHJlZml4L2xpYi9weXRob24xLjYvY29uZmlnICRwcmVmaXgvbGliL3B5dGhvbjEuNS9jb25maWcgJHByZWZpeC9saWIvcHl0aG9uMS40L2NvbmZpZyAvdXNyL2xvY2FsL2xpYi9weXRob24xLjYvY29uZmlnIC91c3IvbG9jYWwvbGliL3B5dGhvbjEuNS9jb25maWcgL3Vzci9saWIvcHl0aG9uMS41IC91c3IvbG9jYWwvbGliL3B5dGhvbjEuNC9jb25maWcgL3Vzci9saWIvcHl0aG9uMS40ICRwcmVmaXgvbGliL3B5dGhvbi9saWIgL3Vzci9sb2NhbC9saWIvcHl0aG9uL2xpYiAvdXNyL2xpYi9weXRob24vbGliIC9ob21lL3NjaS9sb2NhbC9saWIvcHl0aG9uIgorZGlycz0iJFBZTElCICRQWUxJQi9jb25maWcgJFBZTElCL2xpYiAkUFlMSUIvcHl0aG9uMi4xL2NvbmZpZyAkUFlMSUIvcHl0aG9uMi4wL2NvbmZpZyAkUFlMSUIvcHl0aG9uMS42L2NvbmZpZyAkUFlMSUIvcHl0aG9uMS41L2NvbmZpZyAkUFlMSUIvcHl0aG9uMS40L2NvbmZpZyAkUFlMSUIvcHl0aG9uL2xpYiAkcHJlZml4L2xpYi9weXRob24yLjEvY29uZmlnICRwcmVmaXgvbGliL3B5dGhvbjIuMC9jb25maWcgJHByZWZpeC9saWIvcHl0aG9uMS42L2NvbmZpZyAkcHJlZml4L2xpYi9weXRob24xLjUvY29uZmlnICRwcmVmaXgvbGliL3B5dGhvbjEuNC9jb25maWcgL3Vzci9sb2NhbC9saWIvcHl0aG9uMi4xL2NvbmZpZyAvdXNyL2xvY2FsL2xpYi9weXRob24yLjAvY29uZmlnIC91c3IvbG9jYWwvbGliL3B5dGhvbjEuNi9jb25maWcgL3Vzci9sb2NhbC9saWIvcHl0aG9uMS41L2NvbmZpZyAvdXNyL2xpYi9weXRob24xLjUvY29uZmlnIC91c3IvbGliL3B5dGhvbjEuNSAvdXNyL2xvY2FsL2xpYi9weXRob24xLjQvY29uZmlnIC91c3IvbGliL3B5dGhvbjEuNC9jb25maWcgL3Vzci9saWIvcHl0aG9uMS40ICRwcmVmaXgvbGliL3B5dGhvbi9saWIgL3Vzci9sb2NhbC9saWIvcHl0aG9uL2xpYiAvdXNyL2xpYi9weXRob24vbGliIC9ob21lL3NjaS9sb2NhbC9saWIvcHl0aG9uIgogCiBmb3IgaSBpbiAkZGlycyA7IGRvCisJaWYgdGVzdCAtciAkaS9saWJweXRob24yLjEuYTsgdGhlbgorCSAgICBBQ19NU0dfUkVTVUxUKCRpKQorCSAgICBQWUxJQj0iJGkiCisJICAgIFBZSU5DTFVERT0iJFBZSU5DTFVERSAtSSRpIgorICAgICAgICAgICAgUFlMSU5LPSItbHB5dGhvbjIuMSIKKwkgICAgYnJlYWsKKwlmaQorCWlmIHRlc3QgLXIgJGkvbGlicHl0aG9uMi4wLmE7IHRoZW4KKwkgICAgQUNfTVNHX1JFU1VMVCgkaSkKKwkgICAgUFlMSUI9IiRpIgorCSAgICBQWUlOQ0xVREU9IiRQWUlOQ0xVREUgLUkkaSIKKyAgICAgICAgICAgIFBZTElOSz0iLWxweXRob24yLjAiCisJICAgIGJyZWFrCisJZmkKIAlpZiB0ZXN0IC1yICRpL2xpYnB5dGhvbjEuNi5hOyB0aGVuCiAJICAgIEFDX01TR19SRVNVTFQoJGkpCiAJICAgIFBZTElCPSIkaSIKQEAgLTQzMCw4ICs1MDUsOCBAQAogZG9uZQogaWYgdGVzdCAteiAiJFBZTElCIjsgdGhlbgogCUFDX01TR19SRVNVTFQobm90IGZvdW5kKQotCVBZTElCPSIvdXNyL2xvY2FsL2xpYi9weXRob24vbGliIgotCVBZSU5DTFVERT0iJFBZSU5DTFVERSAtSSRQWUxJQiIKKyMJUFlMSUI9Ii91c3IvbG9jYWwvbGliL3B5dGhvbi9saWIiCisjCVBZSU5DTFVERT0iJFBZSU5DTFVERSAtSSRQWUxJQiIKIGZpCiAKIEFDX1NVQlNUKFBZSU5DTFVERSkKQEAgLTQ0OSw3ICs1MjQsNyBAQAogIyBGaXJzdCBmaWd1cmUgb3V0IHdoYXQgdGhlIG5hbWUgb2YgUGVybDUgaXMKIAogaWYgdGVzdCAteiAiJFBFUkxCSU4iOyB0aGVuCi1BQ19DSEVDS19QUk9HUyhQRVJMLCBwZXJsNS4wMDQgcGVybDUuMDAzIHBlcmw1LjAwMiBwZXJsNS4wMDEgcGVybDUgcGVybCkKK0FDX0NIRUNLX1BST0dTKFBFUkwsIHBlcmw1LjYuMSBwZXJsNS42LjAgcGVybDUuMDA0IHBlcmw1LjAwMyBwZXJsNS4wMDIgcGVybDUuMDAxIHBlcmw1IHBlcmwpCiBlbHNlCiBQRVJMPSIkUEVSTEJJTiIKIGZpCkBAIC00NzYsNyArNTUxLDcgQEAKIAlmaQogICAgIGVsc2UKICAgICAgICAJQUNfTVNHX1JFU1VMVChjb3VsZCBub3QgZmlndXJlIG91dCBob3cgdG8gcnVuIHBlcmw1KQotCVBFUkw1RVhUPSIvdXNyL2xvY2FsL2xpYi9wZXJsL2FyY2huYW1lLzUuMDAzL0NPUkUiCisjCVBFUkw1RVhUPSIvdXNyL2xvY2FsL2xpYi9wZXJsL2FyY2huYW1lLzUuMDAzL0NPUkUiCiAgICAgZmkKIAogQUNfU1VCU1QoUEVSTDVFWFQpCkBAIC01ODIsNyArNjU3LDcgQEAKICAgCWZpCiAgIGRvbmUKICAgaWYgdGVzdCAteiAiJEdVSUxFSU5DTFVERSI7IHRoZW4KLSAgCUdVSUxFSU5DTFVERT0iLUkvdXNyL2xvY2FsL2luY2x1ZGUiCisjICAJR1VJTEVJTkNMVURFPSItSS91c3IvbG9jYWwvaW5jbHVkZSIKICAgICAgIAlBQ19NU0dfUkVTVUxUKG5vdCBmb3VuZCkKICAgZmkKIApAQCAtNTk3LDcgKzY3Miw3IEBACiAgIGRvbmUKICAgaWYgdGVzdCAteiAiJEdVSUxFTElCIjsgdGhlbgogICAJQUNfTVNHX1JFU1VMVChub3QgZm91bmQpCi0gIAlHVUlMRUxJQj0iL3Vzci9sb2NhbC9saWIiCisjICAJR1VJTEVMSUI9Ii91c3IvbG9jYWwvbGliIgogICBmaQogCiAgIEdVSUxFTElOSz0iYGd1aWxlLWNvbmZpZyBsaW5rYCIKQEAgLTYzMCw4ICs3MDUsOSBAQAogUlVCWT0iJFJVQllCSU4iCiBmaQogQUNfTVNHX0NIRUNLSU5HKGZvciBSdWJ5IGhlYWRlciBmaWxlcykKK1JVQllMSUJSVUJZQVJHPSIiCiBpZiB0ZXN0IC1uICIkUlVCWSI7IHRoZW4KLQlSVUJZRElSPWAoJFJVQlkgLXJta21mIC1lICdwcmludCAkYXJjaGRpcicpIDI+L2Rldi9udWxsYAorCVJVQllESVI9YCgkUlVCWSAtcm1rbWYgLWUgJ3ByaW50IENvbmZpZzo6Q09ORklHW1siYXJjaGRpciJdXSB8fCAkYXJjaGRpcicpIDI+L2Rldi9udWxsYAogCWlmIHRlc3QgIiRSVUJZRElSIiAhPSAiIjsgdGhlbgogCQlkaXJzPSIkUlVCWURJUiIKIAkJUlVCWUlOQ0xVREU9bm9uZQpAQCAtNjUwLDcgKzcyNiw4IEBACiAJCUFDX01TR19DSEVDS0lORyhmb3IgUnVieSBsaWJyYXJ5KQogCQlSVUJZTElCPW5vbmUKIAkJZm9yIGkgaW4gJGRpcnM7IGRvCi0JCQlpZiB0ZXN0IC1yICRpL2xpYnJ1YnkuYTsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgIyBjeWd3aW4gcHJvZHVjZXMgImxpYnJ1YnlzLmEiIGluc3RlYWQgb2YgImxpYnJ1YnkuYSIKKwkJCWlmICgodGVzdCAtciAkaS9saWJydWJ5LmE7KSB8fCAodGVzdCAtciAkaS9saWJydWJ5cy5hOykpIHRoZW4KIAkJCQlBQ19NU0dfUkVTVUxUKCRpKQogCQkJCVJVQllMSUI9IiRpIgogCQkJCWJyZWFrOwpAQCAtNjY4LDYgKzc0NSwxMiBAQAogCVJVQllMSU5LPWAoJFJVQlkgLXJyYmNvbmZpZyAtZSAncHJpbnQgQ29uZmlnOjpDT05GSUdbWyJSVUJZX0lOU1RBTExfTkFNRSJdXScpIDI+L2Rldi9udWxsYAogCVJVQllMSU5LPSItbCRSVUJZTElOSyIKIAlSVUJZTElOSz0iJFJVQllMSU5LIGAoJFJVQlkgLXJyYmNvbmZpZyAtZSAncHJpbnQgQ29uZmlnOjpDT05GSUdbWyJMSUJTIl1dJykgMj4vZGV2L251bGxgIgorICAgICAgICBSVUJZQ0NETEZMQUdTPWAoJFJVQlkgLXJyYmNvbmZpZyAtZSAncHJpbnQgQ29uZmlnOjpDT05GSUdbWyJDQ0RMRkxBR1MiXV0nKSAyPi9kZXYvbnVsbGAKKwkjIEF0IGxlYXN0IGZvciBjeWd3aW4gdGhlIGZvbGxvd2luZyBhcmd1bWVudHMgY2FuIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSBDT05GSUctaGFzaAorCWNhc2UgJGFjX3N5c19zeXN0ZW0vJGFjX3N5c19yZWxlYXNlIGluCQorCUNZR1dJTiopCVJVQllMSUJSVUJZQVJHPWAoJFJVQlkgLXJyYmNvbmZpZyAtZSAncHJpbnQgQ29uZmlnOjpDT05GSUdbWyJMSUJSVUJZQVJHIl1dJykgMj4vZGV2L251bGxgOzsKKwkqKQkJUlVCWUxJQlJVQllBUkc9IiI7OworCWVzYWMKIGVsc2UKICAgICAgICAJQUNfTVNHX1JFU1VMVChjb3VsZCBub3QgZmlndXJlIG91dCBob3cgdG8gcnVuIHJ1YnkpCiAJUlVCWUlOQ0xVREU9Ii1JL3Vzci9sb2NhbC9saWIvcnVieS8xLjQvYXJjaCIKQEAgLTY3OCw3ICs3NjEsMjEgQEAKIEFDX1NVQlNUKFJVQllJTkNMVURFKQogQUNfU1VCU1QoUlVCWUxJQikKIEFDX1NVQlNUKFJVQllMSU5LKQorQUNfU1VCU1QoUlVCWUNDRExGTEFHUykKK0FDX1NVQlNUKFJVQllMSUJSVUJZQVJHKQogCisjIENvbmZpZ3VyZSBTV0lHX0xJQiBwYXRoCisKK0FDX0FSR19XSVRIKHN3aWdsaWJkaXIsWyAgLS13aXRoLXN3aWdsaWJkaXI9RElSICAgUHV0IFNXSUcgc3lzdGVtLWluZGVwZW5kZW50IGxpYnJhcmllcyBpbnRvIERJUi5dLAorICBbc3dpZ19saWI9IiR3aXRodmFsIl0sIFtzd2lnX2xpYj0iXCQocHJlZml4KS9saWIvc3dpZzEuMyJdKQorQUNfU1VCU1Qoc3dpZ19saWIpCisKKyMgQ29uZmlndXJlIFJFTEVBU0VTVUZGSVggKGZvciBzZXR1cHMgaGF2aW5nIGJvdGggU1dJRyAxLjEgYW5kIDEuMyBvbiBhIHN5c3RlbS4uLikKKworQUNfQVJHX1dJVEgocmVsZWFzZS1zdWZmaXgsIAorICBbICAtLXdpdGgtcmVsZWFzZS1zdWZmaXg9U1VGRklYICAgIEF0dGFjaCBTVUZGSVggdG8gdGhlIGJpbmFyeSBhbmQgdGhlIHJ1bnRpbWUgbGlicy4gXSwKKyAgW3JlbGVhc2Vfc3VmZml4PSIkd2l0aHZhbCJdLCBbcmVsZWFzZV9zdWZmaXg9IiJdKQorQUNfU1VCU1QocmVsZWFzZV9zdWZmaXgpCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIE1pc2NlbGxhbmVvdXMKQEAgLTcwNSwxMiArODAyLDE2IEBACiAJKGNkICRzcmNkaXIvVG9vbHMgOyBhdXRvY29uZikKIGZpCiAKK2lmIHRlc3QgISAtciAkc3JjZGlyL0V4YW1wbGVzL0dJRlBsb3QvY29uZmlndXJlIDsgdGhlbgorCShjZCAkc3JjZGlyL0V4YW1wbGVzL0dJRlBsb3QgOyBhdXRvY29uZikKK2ZpCisKICMKICNBQ19PVVRQVVRfQ09NTUFORFModGVzdCAtZiBFeGFtcGxlcy9pbnN0YWxsLXNoIHx8IGNwIGluc3RhbGwtc2ggRXhhbXBsZXMpCiAjIERCOiBNYXliZSBJJ20gbWlzc2luZ3Mgc29tZXRoaW5nLCBidXQgd2h5IGlzIGl0IG5lY2Vzc2FyeSB0byBwdXQKICMgYW4gJ2luc3RhbGwtc2gnIHNjcmlwdCBpbiB0aGUgRXhhbXBsZXMgZGlyZWN0b3J5PwogCi1BQ19DT05GSUdfU1VCRElSUyhTb3VyY2UvRE9IIFRvb2xzKQorQUNfQ09ORklHX1NVQkRJUlMoU291cmNlL0RPSCBUb29scyBFeGFtcGxlcy9HSUZQbG90KQogCiAjIE5PVEU6IFRoZSBmb2xsb3dpbmcgcmVmIHRvIGBTb3VyY2UnIHNob3VsZCBOT1QgYmUgcHJlZml4ZWQgdy8gYCRzcmNkaXIvJy4KICMgV2UgY2FuIHJlbW92ZSBpdCBpZiBgU291cmNlJyBldmVyIGhhcyBhIGdlbmVyYXRlZCBmaWxlIGJ1dCBub3QgYmVmb3JlLgpAQCAtNzIxLDEwICs4MjIsOSBAQAogICAgIEV4YW1wbGVzL01ha2VmaWxlCQkJXAogICAgIEV4YW1wbGVzL0MrKy90ZXN0X2NvbmYucHkJCVwKICAgICBFeGFtcGxlcy9ndWlsZS9NYWtlZmlsZQkJXAorICAgIEV4YW1wbGVzL2d1aWxlL3Rlc3Qtc3VpdGUvTWFrZWZpbGUJXAogICAgIE1ha2VmaWxlCQkJCVwKICAgICBSdW50aW1lL01ha2VmaWxlCQkJXAotICAgIFNvdXJjZS9FeHBlcmltZW50L01ha2VmaWxlCQlcCi0gICAgU291cmNlL0luY2x1ZGUvc3dpZ2NvbmZpZy5oCQlcCiAgICAgU291cmNlL0luY2x1ZGUvc3dpZ3Zlci5oCQlcCiAgICAgU291cmNlL0xQYXJzZS9NYWtlZmlsZQkJXAogICAgIFNvdXJjZS9Nb2R1bGVzL01ha2VmaWxlCQlcCmRpZmYgLS1naXQgYS9TV0lHL2RlYmlhbi8uY3ZzaWdub3JlIGIvU1dJRy9kZWJpYW4vLmN2c2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmFiZTlmCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9kZWJpYW4vLmN2c2lnbm9yZQpAQCAtMCwwICsxIEBACisqLmRlYmhlbHBlcgpkaWZmIC0tZ2l0IGEvU1dJRy9kZWJpYW4vUkVBRE1FIGIvU1dJRy9kZWJpYW4vUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYmU5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9SRUFETUUKQEAgLTAsMCArMSwyMCBAQAorVGhlIERlYmlhbiBQYWNrYWdlIHN3aWcxLjMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgaXMgU1dJRyAxLjMgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcikKK3BhY2thZ2VkIGZvciBEZWJpYW4gR05VL0xpbnV4LgorCitTV0lHIDEuMyBpcyBub3QgZnVsbHkgY29tcGF0aWJsZSB3aXRoIFNXSUcgMS4xLiBJdCBpcyBhIHJlLWRldmVsb3BtZW50CitlZmZvcnQgb2YgU1dJRyAxLjEgKHdoaWNoIHdhcyB3cml0dGVuIGluIEMrKykgaW4gQU5TSSBDLiAgVGhlIDEuMworc2VyaWVzIGlzIGluICJhbHBoYSIgc3RhdGUuICBSZWxlYXNlIDEuM2E1IHdhcyByYXRoZXIgc3RhYmxlLCBhbmQgaXQKK3Nob3VsZCBiZSB1c2VkIGZvciBuZXcgcHJvamVjdHMgcmF0aGVyIHRoYW4gdGhlIGFuY2llbnQgcmVsZWFzZQorMS4xcDUuICBTZWUgdGhlIGZpbGUgYE5FVycgZm9yIGluZm9ybWF0aW9uIG9uIHRoZSBuZXcgZmVhdHVyZXMgb2YgdGhlCisxLjMgc2VyaWVzLgorCitUaGlzIERlYmlhbiBwYWNrYWdlIGRlcml2ZXMgZnJvbSB0aGUgcmVsZWFzZSAxLjNhNSBhbmQgY29ycmVzcG9uZHMgdG8KK3RoZSAibWtvZXBwZS0xLTMtYTUtcGF0Y2hlcyIgYnJhbmNoIG9mIHRoZSBTV0lHIENWUyByZXBvc2l0b3J5LiAgSXQKK2ZpeGVzIHNldmVyYWwgYnVncyBhbmQgZW5oYW5jZXMgc2V2ZXJhbCBsYW5ndWFnZSBiYWNrZW5kcy4gIFNlZSB0aGUKK3RvcCBvZiB0aGUgZmlsZSBgQ0hBTkdFUycgZm9yIGRldGFpbHMuCisKKworTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQG1haWwubWF0aC51bmktbWFnZGVidXJnLmRlPiwgTW9uLCAyOCBNYXkgMjAwMSAxNTowODo1NSArMDIwMApkaWZmIC0tZ2l0IGEvU1dJRy9kZWJpYW4vY2hhbmdlbG9nIGIvU1dJRy9kZWJpYW4vY2hhbmdlbG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYWVlMDkKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9jaGFuZ2Vsb2cKQEAgLTAsMCArMSw2MCBAQAorc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtOSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFdlZCwgIDYgSnVuIDIwMDEgMTY6MTE6NDEgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtOCkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFdlZCwgIDYgSnVuIDIwMDEgMTQ6MDY6NTEgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtNykgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFdlZCwgIDYgSnVuIDIwMDEgMTM6MzQ6NDQgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtNikgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFR1ZSwgIDUgSnVuIDIwMDEgMTQ6MTE6NTIgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtNSkgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbi4KKworIC0tIE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUByb3RlaG9ybi5tYXRoLnVuaS1tYWdkZWJ1cmcuZGU+ICBGcmksICAxIEp1biAyMDAxIDE4OjQ4OjU5ICswMjAwCisKK3N3aWcxLjMgKDEuMy5hNStwYXRjaGVzLTQpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdworCisgICogRml4IGhhcmQtY29kZWQgbG9jYXRpb24gb2Ygc3dpZyBsaWJyYXJ5LiAgQWRkZWQgYnVpbGQtZGVwZW5kZW5jeSBvbgorICAgIHRjbC1kZXYuIAorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIEZyaSwgIDEgSnVuIDIwMDEgMTM6MzI6MzQgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtMykgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBOZXcgdXBzdHJlYW0gdmVyc2lvbgorCisgLS0gTWF0dGhpYXMgS29lcHBlIDxta29lcHBlQHJvdGVob3JuLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFRodSwgMzEgTWF5IDIwMDEgMTM6MTU6MjAgKzAyMDAKKworc3dpZzEuMyAoMS4zLmE1K3BhdGNoZXMtMikgdW5zdGFibGU7IHVyZ2VuY3k9bG93CisKKyAgKiBCaW5hcnkgYW5kIG1hbnBhZ2Ugbm93IGluY2x1ZGUgdmVyc2lvbiBudW1iZXIsIHRvIGltcHJvdmUKKyAgICBjb29wZXJhdGlvbiB3aXRoIHRoZSAic3dpZyIgcGFja2FnZS4KKworIC0tIE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUByb3RlaG9ybi5tYXRoLnVuaS1tYWdkZWJ1cmcuZGU+ICBUdWUsIDI5IE1heSAyMDAxIDE1OjE1OjA3ICswMjAwCisKK3N3aWcxLjMgKDEuMy5hNStwYXRjaGVzLTEpIHVuc3RhYmxlOyB1cmdlbmN5PWxvdworCisgICogRmlyc3QgcmVsZWFzZS4KKworIC0tIE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUBtYWlsLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4gIFNhdCwgMjAgTm92IDE5OTkgMDE6MDk6MTEgKzAxMDAKKworTG9jYWwgdmFyaWFibGVzOgorbW9kZTogZGViaWFuLWNoYW5nZWxvZworYWRkLWxvZy1tYWlsaW5nLWFkZHJlc3M6ICJta29lcHBlQG1haWwubWF0aC51bmktbWFnZGVidXJnLmRlIgorRW5kOgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NXSUcvZGViaWFuL2NvbnRyb2wgYi9TV0lHL2RlYmlhbi9jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZTBhNzAKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9jb250cm9sCkBAIC0wLDAgKzEsMTggQEAKK1NvdXJjZTogc3dpZzEuMworU2VjdGlvbjogaW50ZXJwcmV0ZXJzCitQcmlvcml0eTogb3B0aW9uYWwKK01haW50YWluZXI6IE1hdHRoaWFzIEtvZXBwZSA8bWtvZXBwZUBtYWlsLm1hdGgudW5pLW1hZ2RlYnVyZy5kZT4KK0J1aWxkLURlcGVuZHM6IGRlYmhlbHBlciAoPj4gMy4wLjApLCBsaWJndWlsZS1kZXYsIHB5dGhvbi1kZXYsIHBlcmwsCisgcnVieS1kZXYsIHJ1YnksIHRjbDguMC1kZXYKK1N0YW5kYXJkcy1WZXJzaW9uOiAzLjUuMgorCitQYWNrYWdlOiBzd2lnMS4zCitBcmNoaXRlY3R1cmU6IGFueQorRGVwZW5kczogJHtzaGxpYnM6RGVwZW5kc30KK0Rlc2NyaXB0aW9uOiBHZW5lcmF0ZSBzY3JpcHRpbmcgaW50ZXJmYWNlcyB0byBDL0MrKyBjb2RlCisgU1dJRyAoU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yKSBpcyBhIHN5c3RlbSBmb3IKKyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRpbmcgd3JhcHBlci9nbHVlIGNvZGUgZm9yIHNldmVyYWwgbGFuZ3VhZ2VzCisgKFRjbCwgUHl0aG9uLCBQZXJsLCBSdWJ5LCBNelNjaGVtZSwgR3VpbGUsIEphdmEpIGZyb20gYW5ub3RhdGVkIEMgb3IKKyBDKysgaGVhZGVyIGZpbGVzLgorIFRoaXMgcGFja2FnZSByZXByZXNlbnRzIHNvbWUgcG9pbnQgaW4gdGhlIFNXSUcgMS4zIGRldmVsb3BtZW50Cisgc2VyaWVzLiBJdCBpcyBub3QgZnVsbHkgY29tcGF0aWJsZSB3aXRoIHRoZSBTV0lHIDEuMSByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU1dJRy9kZWJpYW4vY29weXJpZ2h0IGIvU1dJRy9kZWJpYW4vY29weXJpZ2h0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYjg2OTIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9jb3B5cmlnaHQKQEAgLTAsMCArMSw4MyBAQAorVGhpcyBpcyBTV0lHLCB3cml0dGVuIGFuZCBtYWludGFpbmVkIGJ5OgorCisgRGF2ZSBCZWF6bGV5IChiZWF6bGV5QGNzLnVjaGljYWdvLmVkdSkgICAgICAgICAgICAgICAgIChTV0lHIGNvcmUpCisgTG9pYyBEYWNoYXJ5IChsb2ljQGNlaWMuY29tKSAgICAgICAgICAgICAgICAgICAgICAgICAgIChQZXJsNSkKKyBIYXJjbyBkZSBIaWxzdGVyIChIYXJjby5kZS5IaWxzdGVyQEFUQ29tcHV0aW5nLm5sKSAgICAgKEphdmEpCisgVGhpZW4tVGhpIE5ndXllbiAodHRuQGdsdWcub3JnKSAgICAgICAgICAgICAgICAgICAgICAgIChUZXN0aW5nL01pc2MpCisgTWFzYWtpIEZ1a3VzaGltYSAoZnVrdXNpbWFAZ290by5pbmZvLndhc2VkYS5hYy5qcCkgICAgIChSdWJ5KQorIE1hdHRoaWFzIEtvZXBwZSAobWtvZXBwZUBtYWlsLm1hdGgudW5pLW1hZ2RlYnVyZy5kZSkgICAoR3VpbGUvTXpTY2hlbWUpCisKK1Bhc3QgY29udHJpYnV0b3JzOgorCisgRHVzdGluIE1pdGNoZWxsLCBJYW4gQ29va2UsIENhdGFsaW4gRHVtaXRyZXNjdSwgQmFyYW4gS292dWssIEdhcnkgSG9sdCwKKyBEYXZpZCBGbGV0Y2hlciwgT2xlZyBUb2xtYXRjZXYuCisKK1NXSUcgY2FuIGJlIG9idGFpbmVkIGJ5IGFub255bW91cyBDVlM6CisKKyAgICAgY3ZzIC1kIDpwc2VydmVyOmN2c0Bzd2lnLmNzLnVjaGljYWdvLmVkdTovY3Zzcm9vdCBjbyBTV0lHCisKK1NXSUcgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGZvbGxvd2luZyB0ZXJtczoKKworSS4KKworQ29weXJpZ2h0IChDKSAxOTk4LTIwMDAKK1RoZSBVbml2ZXJzaXR5IG9mIENoaWNhZ28KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgd2l0aG91dCB3cml0dGVuIGFncmVlbWVudCBhbmQgd2l0aG91dAorbGljZW5zZSBvciByb3lhbHR5IGZlZXMsIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzCitzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlLCBwcm92aWRlZCB0aGF0IAorKDEpIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGUgZm9sbG93aW5nIHR3byBwYXJhZ3JhcGhzCithcHBlYXIgaW4gYWxsIGNvcGllcyBvZiB0aGUgc291cmNlIGNvZGUgYW5kICgyKSByZWRpc3RyaWJ1dGlvbnMKK2luY2x1ZGluZyBiaW5hcmllcyByZXByb2R1Y2VzIHRoZXNlIG5vdGljZXMgaW4gdGhlIHN1cHBvcnRpbmcKK2RvY3VtZW50YXRpb24uICAgU3Vic3RhbnRpYWwgbW9kaWZpY2F0aW9ucyB0byB0aGlzIHNvZnR3YXJlIG1heSBiZQorY29weXJpZ2h0ZWQgYnkgdGhlaXIgYXV0aG9ycyBhbmQgbmVlZCBub3QgZm9sbG93IHRoZSBsaWNlbnNpbmcgdGVybXMKK2Rlc2NyaWJlZCBoZXJlLCBwcm92aWRlZCB0aGF0IHRoZSBuZXcgdGVybXMgYXJlIGNsZWFybHkgaW5kaWNhdGVkIGluCithbGwgZmlsZXMgd2hlcmUgdGhleSBhcHBseS4KKworSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiwgVEhFIFVOSVZFUlNJVFkgT0YgQ0hJQ0FHTywgT1IKK0RJU1RSSUJVVE9SUyBPRiBUSElTIFNPRlRXQVJFIEJFIExJQUJMRSBUTyBBTlkgUEFSVFkgRk9SIERJUkVDVCwKK0lORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YKK1RIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT04sIEVWRU4gSUYgVEhFIEFVVEhPUlMgT1IKK0FOWSBPRiBUSEUgQUJPVkUgUEFSVElFUyBIQVZFIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSAorREFNQUdFLgorCitUSEUgQVVUSE9SIEFORCBUSEUgVU5JVkVSU0lUWSBPRiBDSElDQUdPIFNQRUNJRklDQUxMWSBESVNDTEFJTSBBTlkKK1dBUlJBTlRJRVMsSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRSBTT0ZUV0FSRQorUFJPVklERUQgSEVSRVVOREVSIElTIE9OIEFOICJBUyBJUyIgQkFTSVMsIEFORCBUSEUgQVVUSE9SUyBBTkQKK0RJU1RSSUJVVE9SUyBIQVZFIE5PIE9CTElHQVRJT04gVE8gUFJPVklERSBNQUlOVEVOQU5DRSwgU1VQUE9SVCwKK1VQREFURVMsIEVOSEFOQ0VNRU5UUywgT1IgTU9ESUZJQ0FUSU9OUy4KKworCitJSS4KKworQ29weXJpZ2h0IChjKSAxOTk1LTE5OTgKK1RoZSBVbml2ZXJzaXR5IG9mIFV0YWggYW5kIHRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKK0FsbCBSaWdodHMgUmVzZXJ2ZWQKKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgd2l0aG91dCB3cml0dGVuIGFncmVlbWVudCBhbmQgd2l0aG91dAorbGljZW5zZSBvciByb3lhbHR5IGZlZXMsIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzCitzb2Z0d2FyZSBhbmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlLCBwcm92aWRlZCB0aGF0IAorKDEpIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGUgZm9sbG93aW5nIHR3byBwYXJhZ3JhcGhzCithcHBlYXIgaW4gYWxsIGNvcGllcyBvZiB0aGUgc291cmNlIGNvZGUgYW5kICgyKSByZWRpc3RyaWJ1dGlvbnMKK2luY2x1ZGluZyBiaW5hcmllcyByZXByb2R1Y2VzIHRoZXNlIG5vdGljZXMgaW4gdGhlIHN1cHBvcnRpbmcKK2RvY3VtZW50YXRpb24uICAgU3Vic3RhbnRpYWwgbW9kaWZpY2F0aW9ucyB0byB0aGlzIHNvZnR3YXJlIG1heSBiZQorY29weXJpZ2h0ZWQgYnkgdGhlaXIgYXV0aG9ycyBhbmQgbmVlZCBub3QgZm9sbG93IHRoZSBsaWNlbnNpbmcgdGVybXMKK2Rlc2NyaWJlZCBoZXJlLCBwcm92aWRlZCB0aGF0IHRoZSBuZXcgdGVybXMgYXJlIGNsZWFybHkgaW5kaWNhdGVkIGluCithbGwgZmlsZXMgd2hlcmUgdGhleSBhcHBseS4KKworSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiwgVEhFIFVOSVZFUlNJVFkgT0YgQ0FMSUZPUk5JQSwgVEhFIAorVU5JVkVSU0lUWSBPRiBVVEFIIE9SIERJU1RSSUJVVE9SUyBPRiBUSElTIFNPRlRXQVJFIEJFIExJQUJMRSBUTyBBTlkKK1BBUlRZIEZPUiBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMCitEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT04sCitFVkVOIElGIFRIRSBBVVRIT1JTIE9SIEFOWSBPRiBUSEUgQUJPVkUgUEFSVElFUyBIQVZFIEJFRU4gQURWSVNFRCBPRgorVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitUSEUgQVVUSE9SLCBUSEUgVU5JVkVSU0lUWSBPRiBDQUxJRk9STklBLCBBTkQgVEhFIFVOSVZFUlNJVFkgT0YgVVRBSAorU1BFQ0lGSUNBTExZIERJU0NMQUlNIEFOWSBXQVJSQU5USUVTLElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCAKK1RIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKK1BVUlBPU0UuIFRIRSBTT0ZUV0FSRSBQUk9WSURFRCBIRVJFVU5ERVIgSVMgT04gQU4gIkFTIElTIiBCQVNJUywgQU5EIAorVEhFIEFVVEhPUlMgQU5EIERJU1RSSUJVVE9SUyBIQVZFIE5PIE9CTElHQVRJT04gVE8gUFJPVklERSBNQUlOVEVOQU5DRSwKK1NVUFBPUlQsIFVQREFURVMsIEVOSEFOQ0VNRU5UUywgT1IgTU9ESUZJQ0FUSU9OUy4KKworCmRpZmYgLS1naXQgYS9TV0lHL2RlYmlhbi9kaXJzIGIvU1dJRy9kZWJpYW4vZGlycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWIxYTc0Ci0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9kZWJpYW4vZGlycwpAQCAtMCwwICsxLDQgQEAKK3Vzci9iaW4KK3Vzci9saWIKK3Vzci9zaGFyZS9zd2lnMS4zCit1c3Ivc2hhcmUvZG9jL3N3aWcxLjMKZGlmZiAtLWdpdCBhL1NXSUcvZGViaWFuL2RvY3MgYi9TV0lHL2RlYmlhbi9kb2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MDU5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9kb2NzCkBAIC0wLDAgKzEsMTAgQEAKK1JFQURNRQorVE9ETworQU5OT1VOQ0UKK0NIQU5HRVMKK05FVworRG9jL2VuZ2luZWVyaW5nLmh0bWwKK0RvYy9pbmRleC5odG1sCitEb2MvaW50ZXJuYWxzLmh0bWwKK0RvYy9taWdyYXRlLnR4dAorRG9jL3doaXRlcGFwZXIuaHRtbApkaWZmIC0tZ2l0IGEvU1dJRy9kZWJpYW4vcG9zdGluc3QgYi9TV0lHL2RlYmlhbi9wb3N0aW5zdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjRiNWZmCi0tLSAvZGV2L251bGwKKysrIGIvU1dJRy9kZWJpYW4vcG9zdGluc3QKQEAgLTAsMCArMSw0NSBAQAorIyEgL2Jpbi9zaAorIyBwb3N0aW5zdCBzY3JpcHQgZm9yIHN3aWcxLjMKKyMKKyMgc2VlOiBkaF9pbnN0YWxsZGViKDEpCisKK3NldCAtZQorCisjIHN1bW1hcnkgb2YgaG93IHRoaXMgc2NyaXB0IGNhbiBiZSBjYWxsZWQ6CisjICAgICAgICAqIDxwb3N0aW5zdD4gYGNvbmZpZ3VyZScgPG1vc3QtcmVjZW50bHktY29uZmlndXJlZC12ZXJzaW9uPgorIyAgICAgICAgKiA8b2xkLXBvc3RpbnN0PiBgYWJvcnQtdXBncmFkZScgPG5ldyB2ZXJzaW9uPgorIyAgICAgICAgKiA8Y29uZmxpY3RvcidzLXBvc3RpbnN0PiBgYWJvcnQtcmVtb3ZlJyBgaW4tZmF2b3VyJyA8cGFja2FnZT4KKyMgICAgICAgICAgPG5ldy12ZXJzaW9uPgorIyAgICAgICAgKiA8ZGVjb25maWd1cmVkJ3MtcG9zdGluc3Q+IGBhYm9ydC1kZWNvbmZpZ3VyZScgYGluLWZhdm91cicKKyMgICAgICAgICAgPGZhaWxlZC1pbnN0YWxsLXBhY2thZ2U+IDx2ZXJzaW9uPiBgcmVtb3ZpbmcnCisjICAgICAgICAgIDxjb25mbGljdGluZy1wYWNrYWdlPiA8dmVyc2lvbj4KKyMgZm9yIGRldGFpbHMsIHNlZSAvdXNyL3NoYXJlL2RvYy9wYWNrYWdpbmctbWFudWFsLworIworIyBxdW90aW5nIGZyb20gdGhlIHBvbGljeToKKyMgICAgIEFueSBuZWNlc3NhcnkgcHJvbXB0aW5nIHNob3VsZCBhbG1vc3QgYWx3YXlzIGJlIGNvbmZpbmVkIHRvIHRoZQorIyAgICAgcG9zdC1pbnN0YWxsYXRpb24gc2NyaXB0LCBhbmQgc2hvdWxkIGJlIHByb3RlY3RlZCB3aXRoIGEgY29uZGl0aW9uYWwKKyMgICAgIHNvIHRoYXQgdW5uZWNlc3NhcnkgcHJvbXB0aW5nIGRvZXNuJ3QgaGFwcGVuIGlmIGEgcGFja2FnZSdzCisjICAgICBpbnN0YWxsYXRpb24gZmFpbHMgYW5kIHRoZSBgcG9zdGluc3QnIGlzIGNhbGxlZCB3aXRoIGBhYm9ydC11cGdyYWRlJywKKyMgICAgIGBhYm9ydC1yZW1vdmUnIG9yIGBhYm9ydC1kZWNvbmZpZ3VyZScuCisKK2Nhc2UgIiQxIiBpbgorICAgIGNvbmZpZ3VyZSkKKworICAgIDs7CisKKyAgICBhYm9ydC11cGdyYWRlfGFib3J0LXJlbW92ZXxhYm9ydC1kZWNvbmZpZ3VyZSkKKworICAgIDs7CisKKyAgICAqKQorICAgICAgICBlY2hvICJwb3N0aW5zdCBjYWxsZWQgd2l0aCB1bmtub3duIGFyZ3VtZW50IFxgJDEnIiA+JjIKKyAgICAgICAgZXhpdCAwCisgICAgOzsKK2VzYWMKKworIyBkaF9pbnN0YWxsZGViIHdpbGwgcmVwbGFjZSB0aGlzIHdpdGggc2hlbGwgY29kZSBhdXRvbWF0aWNhbGx5CisjIGdlbmVyYXRlZCBieSBvdGhlciBkZWJoZWxwZXIgc2NyaXB0cy4KKworI0RFQkhFTFBFUiMKKworZXhpdCAwCmRpZmYgLS1naXQgYS9TV0lHL2RlYmlhbi9ydWxlcyBiL1NXSUcvZGViaWFuL3J1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0ZGYyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9ydWxlcwpAQCAtMCwwICsxLDc2IEBACisjIS91c3IvYmluL21ha2UgLWYKKyMgU2FtcGxlIGRlYmlhbi9ydWxlcyB0aGF0IHVzZXMgZGViaGVscGVyLgorIyBHTlUgY29weXJpZ2h0IDE5OTcgdG8gMTk5OSBieSBKb2V5IEhlc3MuCisKKyMgVW5jb21tZW50IHRoaXMgdG8gdHVybiBvbiB2ZXJib3NlIG1vZGUuCitleHBvcnQgREhfVkVSQk9TRT0xCisKKyMgVGhpcyBpcyB0aGUgZGViaGVscGVyIGNvbXBhdGFiaWxpdHkgdmVyc2lvbiB0byB1c2UuCitleHBvcnQgREhfQ09NUEFUPTMKKworY29uZmlndXJlOiBjb25maWd1cmUtc3RhbXAKK2NvbmZpZ3VyZS1zdGFtcDoKKwlkaF90ZXN0ZGlyCisJLi9hdXRvZ2VuLnNoCisJLi9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLXdpdGgtc3dpZ2xpYmRpcj0vdXNyL3NoYXJlL3N3aWcxLjMgLS13aXRoLXJlbGVhc2Utc3VmZml4PS0xLjMKKwl0b3VjaCBjb25maWd1cmUtc3RhbXAKKworYnVpbGQ6IGNvbmZpZ3VyZS1zdGFtcCBidWlsZC1zdGFtcAorYnVpbGQtc3RhbXA6CisJZGhfdGVzdGRpcgorCSQoTUFLRSkgCisJJChNQUtFKSBydW50aW1lCisJdG91Y2ggYnVpbGQtc3RhbXAKKworY2xlYW46CisJZGhfdGVzdGRpcgorCWRoX3Rlc3Ryb290CisJcm0gLWYgYnVpbGQtc3RhbXAgY29uZmlndXJlLXN0YW1wCisKKwktJChNQUtFKSBjbGVhbgorCisJZGhfY2xlYW4KKworaW5zdGFsbDogYnVpbGQKKwlkaF90ZXN0ZGlyCisJZGhfdGVzdHJvb3QKKwlkaF9jbGVhbiAtaworCWRoX2luc3RhbGxkaXJzCisJJChNQUtFKSBpbnN0YWxsIERFU1RESVI9JChDVVJESVIpL2RlYmlhbi9zd2lnMS4zCisKKyMgQnVpbGQgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGhlcmUuCitiaW5hcnktaW5kZXA6IGJ1aWxkIGluc3RhbGwKKyMgV2UgaGF2ZSBub3RoaW5nIHRvIGRvIGJ5IGRlZmF1bHQuCisKKyMgQnVpbGQgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBoZXJlLgorYmluYXJ5LWFyY2g6IGJ1aWxkIGluc3RhbGwKKwlkaF90ZXN0ZGlyCisJZGhfdGVzdHJvb3QKKyMJZGhfaW5zdGFsbGRlYmNvbmYJCisJZGhfaW5zdGFsbGRvY3MKKwlkaF9pbnN0YWxsZXhhbXBsZXMKKwlkaF9pbnN0YWxsbWVudQorIwlkaF9pbnN0YWxsbG9ncm90YXRlCisjCWRoX2luc3RhbGxlbWFjc2VuCisjCWRoX2luc3RhbGxwYW0KKyMJZGhfaW5zdGFsbG1pbWUKKyMJZGhfaW5zdGFsbGluaXQKKyMJZGhfaW5zdGFsbGNyb24KKwlkaF9pbnN0YWxsbWFuCisJZGhfaW5zdGFsbGluZm8KKwlkaF91bmRvY3VtZW50ZWQgc3dpZy0xLjMuMQorCWRoX2luc3RhbGxjaGFuZ2Vsb2dzIENIQU5HRVMKKwlkaF9saW5rCisJZGhfc3RyaXAKKwlkaF9jb21wcmVzcworCWRoX2ZpeHBlcm1zCisJZGhfbWFrZXNobGlicworCWRoX2luc3RhbGxkZWIKKyMJZGhfcGVybAorCWRoX3NobGliZGVwcworCWRoX2dlbmNvbnRyb2wKKwlkaF9tZDVzdW1zCisJZGhfYnVpbGRkZWIKKworYmluYXJ5OiBiaW5hcnktaW5kZXAgYmluYXJ5LWFyY2gKKy5QSE9OWTogYnVpbGQgY2xlYW4gYmluYXJ5LWluZGVwIGJpbmFyeS1hcmNoIGJpbmFyeSBpbnN0YWxsIGNvbmZpZ3VyZQpkaWZmIC0tZ2l0IGEvU1dJRy9kZWJpYW4vc3Vic3R2YXJzIGIvU1dJRy9kZWJpYW4vc3Vic3R2YXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ZGY2OGIKLS0tIC9kZXYvbnVsbAorKysgYi9TV0lHL2RlYmlhbi9zdWJzdHZhcnMKQEAgLTAsMCArMSBAQAorc2hsaWJzOkRlcGVuZHM9bGliYzYgKD49IDIuMi4zLTEpLCBsaWJzdGRjKysyLjEwLWdsaWJjMi4yCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0Fib3V0Lmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZjljNjAuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9BYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5BYm91dCB0aGlzIG1hbnVhbDwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGgxPkFib3V0IFRoaXMgTWFudWFsPC9oMT48cD4KLQotVGhlIEhUTUwgdmVyc2lvbiBvZiB0aGUgU1dJRyBVc2VycyBNYW51YWwgaXMgYSBkaXJlY3QgdHJhbnNsYXRpb24KLW9mIHRoZSBwcmludGVkIHZlcnNpb24gd2hpY2ggaXMgcHJvZHVjZWQgdXNpbmcgRnJhbWVtYWtlciA1LiAgVGhlCi1jb252ZXJzaW9uIHByb2Nlc3Mgd2FzIHJvdWdobHkgYXMgZm9sbG93cyA6Ci0KLTx1bD4KLTxsaT4gUmF3IEhUTUwgd2FzIHByb2R1Y2VkIHVzaW5nIEZyYW1lbWFrZXIgNSBhbmQgUXVhZHJhbGF5IFdlYldvcmtzIExpdGUuCi08bGk+IFRhYmxlcyBhbmQgZmlndXJlcyB3ZXJlIGNvbnZlcnRlZCBpbnRvIEdJRiBpbWFnZXMuCi08bGk+IEFsbCBvZiB0aGlzIG91dHB1dCB3YXMgZmVkIGludG8gYSBtYWdpYyBQeXRob24gc2NyaXB0IHRoYXQgY2xlYW5lZAotdXAgdGhlIEhUTUwgc291cmNlIGFuZCBtZXJnZWQgdGhlIEdJRiBmaWd1cmVzIGludG8gdGhlIHRleHQuCi08bGk+IEEgdGFibGUgb2YgY29udGVudHMgYW5kIGFscGhhYmV0aXplZCB0b3BpYyBpbmRleCB3ZXJlIHByb2R1Y2VkIGZyb20KLUhUTUwgaGVhZGluZyB0YWdzIGJ5IHRoZSBzYW1lIHNjcmlwdC4KLTwvdWw+Ci0KLVdoaWxlIHRoZSBjb252ZXJzaW9uIHByb2Nlc3MgaXMgbW9zdGx5IGNvbXBsZXRlLCB0aGVyZSBhcmUgYSBmZXcgdGhpbmdzCi10byBrZWVwIGluIG1pbmQgOgotCi08dWw+Ci08bGk+IFNvbWUgc2VjdGlvbnMgb2YgcHJlZm9ybWF0dGVkIHRleHQgbWF5IGhhdmUgd2VpcmQgZm9ybWF0dGluZwotcHJvYmxlbXMuCi08bGk+IEZyYW1lbWFrZXIgdGFibGVzIHdlcmUgY29udmVydGVkIGludG8gR0lGIGltYWdlcyBpbnN0ZWFkCi1vZiBIVE1MIHRhYmxlcy0tdGhpcyBpcyBhIGxpdHRsZSB3ZWlyZCwgYnV0IHRoZSBlYXNpZXN0IAotYXBwcm9hY2ggZm9yIG5vdy4KLTxsaT4gVGhlcmUgbWF5IGJlIGEgZmV3IG1pbm9yIGZvcm1hdHRpbmcgcHJvYmxlbXMgdGhyb3VnaG91dCAKLWR1ZSB0byBtaW5vciAiZ2xpdGNoZXMiIHRoYXQgc2xpcHBlZCB0aHJvdWdoIHRoZSBjb252ZXJzaW9uIHByb2Nlc3MKLShhbHRob3VnaCBJJ3ZlIHRyaWVkIHRvIGNvcnJlY3QgYXMgbWFueSBhcyB0aGVzZSBhcyBwb3NzaWJsZSkuCi08bGk+IFRoZSBwcmludGVkIHZlcnNpb24gb2YgdGhlIFNXSUcgbWFudWFsIGlzIG1vcmUgdGhhbiAKLTMwMCBwYWdlcyBsb25nLS1yZXN1bHRpbmcgaW4gYWJvdXQgNjcwIEtieXRlcyBvZiBIVE1MLiBUaGUgSFRNTCB2ZXJzaW9uCi1pcyBicm9rZW4gdXAgaW50byBjaGFwdGVycy4gIEVhY2ggY2hhcHRlciBpcyBmYWlybHkgd2VsbC1jb250YWluZWQsIGJ1dAotc29tZSBtYXkgY29udGFpbiBhcyBtYW55IGFzIDUwIHBhZ2VzIG9mIHByaW50ZWQgdGV4dC4KLTwvdWw+Ci0KLVBsZWFzZSByZXBvcnQgYW55IHByb2JsZW1zIHdpdGggdGhlIGRvY3VtZW50YXRpb24gdG8gYmVhemxleUBjcy51dGFoLmVkdS4KLQotPGhyPgotPGFkZHJlc3M+Ci1MYXN0IE1vZGlmaWVkIDogQXVndXN0IDMsIDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9BZHZhbmNlZC5odG1sIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9BZHZhbmNlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTU1OTkwLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvQWR2YW5jZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwNSArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkFkdmFuY2VkIFRvcGljczwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+MTEgQWR2YW5jZWQgVG9waWNzPC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+Q3JlYXRpbmcgbXVsdGktbW9kdWxlIHBhY2thZ2VzPC9hPgotPGxpPiA8YSBocmVmPSIjbjIiPkR5bmFtaWMgTG9hZGluZyBvZiBDKysgbW9kdWxlczwvYT4KLTxsaT4gPGEgaHJlZj0iI24zIj5JbnNpZGUgdGhlIFNXSUcgdHlwZS1jaGVja2VyPC9hPgotPC91bD4KLQotPGEgbmFtZT0ibjEiPjwvYT48aDI+IENyZWF0aW5nIG11bHRpLW1vZHVsZSBwYWNrYWdlczwvaDI+Ci1TV0lHIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBwYWNrYWdlcyBjb25zaXN0aW5nIG9mIG1hbnkgZGlmZmVyZW50IG1vZHVsZXMuIEhvd2V2ZXIsIHRoZXJlIGFyZSBzb21lIHRlY2huaWNhbCBhc3BlY3RzIG9mIGRvaW5nIHRoaXMgYW5kIHRlY2huaXF1ZXMgZm9yIG1hbmFnaW5nIHRoZSBwcm9ibGVtLjxwPgotPGEgbmFtZT0ibjQiPjwvYT48aDM+IFJ1bnRpbWUgc3VwcG9ydCAoYW5kIHBvdGVudGlhbCBwcm9ibGVtcyk8L2gzPgotQWxsIFNXSUcgZ2VuZXJhdGVkIG1vZHVsZXMgcmVseSB1cG9uIGEgc21hbGwgY29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgdXNlZCBkdXJpbmcgcnVuLXRpbWUuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcHJpbWFyaWx5IHVzZWQgZm9yIHBvaW50ZXIgdHlwZS1jaGVja2luZywgZXhjZXB0aW9uIGhhbmRsaW5nLCBhbmQgc28gb24uIFdoZW4geW91IHJ1biBTV0lHLCB0aGVzZSBmdW5jdGlvbnMgYXJlIGluY2x1ZGVkIGluIHRoZSB3cmFwcGVyIGZpbGUgKGFuZCBkZWNsYXJlZCBhcyBzdGF0aWMpLiBJZiB5b3UgY3JlYXRlIGEgc3lzdGVtIGNvbnNpc3Rpbmcgb2YgbWFueSBtb2R1bGVzLCBlYWNoIG9uZSB3aWxsIGhhdmUgYW4gaWRlbnRpY2FsIGNvcHkgb2YgdGhlc2UgcnVudGltZSBsaWJyYXJpZXMgOjxwPgotPGNlbnRlcj48aW1nIHNyYz0iY2gxMS4xLnBuZyI+PC9jZW50ZXI+PHA+Ci08cD4KLVRoaXMgZHVwbGljYXRpb24gb2YgcnVudGltZSBsaWJyYXJpZXMgaXMgdXN1YWxseSBoYXJtbGVzcyBzaW5jZSB0aGVyZSBhcmUgbm8gbmFtZXNwYWNlIGNvbmZsaWN0cyBhbmQgbWVtb3J5IG92ZXJoZWFkIGlzIG1pbmltYWwuIEhvd2V2ZXIsIHRoZXJlIGlzIHNlcmlvdXMgcHJvYmxlbSByZWxhdGVkIHRvIHRoZSBmYWN0IHRoYXQgbW9kdWxlcyBkbyBub3Qgc2hhcmUgdHlwZS1pbmZvcm1hdGlvbi4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGEgcHJvYmxlbSB3aGVuIHdvcmtpbmcgd2l0aCBDKysgKGFzIGRlc2NyaWJlZCBuZXh0KS48cD4KLTxhIG5hbWU9Im41Ij48L2E+PGgzPiBXaHkgZG9lc24ndCBDKysgaW5oZXJpdGFuY2Ugd29yayBiZXR3ZWVuIG1vZHVsZXM/PC9oMz4KLUNvbnNpZGVyIGZvciBhIG1vbWVudCB0aGUgZm9sbG93aW5nIHR3byBpbnRlcmZhY2UgZmlsZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEZpbGUgOiBhLmkKLSVtb2R1bGUgYQotCi0vLyBIZXJlIGlzIGEgYmFzZSBjbGFzcwotY2xhc3MgYSB7Ci1wdWJsaWM6Ci0JYSgpOwotCX5hKCk7Ci0Jdm9pZCBmb28oZG91YmxlKTsKLX07Ci0KLQotLy8gRmlsZSA6IGIuaQotJW1vZHVsZSBiCi0KLS8vIEhlcmUgaXMgYSBkZXJpdmVkIGNsYXNzCi0lZXh0ZXJuIGEuaSAgICAgICAgICAgICAgICAgLy8gR2V0cyBkZWZpbml0aW9uIG9mIGJhc2UgY2xhc3MKLQotY2xhc3MgYiA6IHB1YmxpYyBhIHsKLXB1YmxpYzoKLQliYXIoKTsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gY29tcGlsZWQgaW50byB0d28gc2VwYXJhdGUgbW9kdWxlcywgdGhlIGNvZGUgZG9lcyBub3Qgd29yayBwcm9wZXJseS4gSW4gZmFjdCwgeW91IGdldCBhIHR5cGUgZXJyb3Igc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5bYmVhemxleUBndWlubmVzcyBzaGFkb3ddJCBweXRob24KLVB5dGhvbiAxLjQgKEphbiAxNiAxOTk3KSAgW0dDQyAyLjcuMl0KLUNvcHlyaWdodCAxOTkxLTE5OTUgU3RpY2h0aW5nIE1hdGhlbWF0aXNjaCBDZW50cnVtLCBBbXN0ZXJkYW0KLSZndDsmZ3Q7Jmd0OyBmcm9tIGEgaW1wb3J0ICoKLSZndDsmZ3Q7Jmd0OyBmcm9tIGIgaW1wb3J0ICoKLSZndDsmZ3Q7Jmd0OyAjIENyZWF0ZSBhIG5ldyAiYiIKLSZndDsmZ3Q7Jmd0OyBiID0gbmV3X2IoKQotJmd0OyZndDsmZ3Q7ICMgQ2FsbCBhIGZ1bmN0aW9uIGluIHRoZSBiYXNlIGNsYXNzCi0uLi4KLSZndDsmZ3Q7Jmd0OyBhX2ZvbyhiLDMpCi1UcmFjZWJhY2sgKGlubmVybW9zdCBsYXN0KToKLSAgRmlsZSAiJmx0O3N0ZGluJmd0OyIsIGxpbmUgMSwgaW4gPwotVHlwZUVycm9yOiBUeXBlIGVycm9yIGluIGFyZ3VtZW50IDEgb2YgYV9mb28uIEV4cGVjdGVkIF9hX3AuCi0mZ3Q7Jmd0OyZndDsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSG93ZXZlciwgZnJvbSBvdXIgY2xhc3MgZGVmaW5pdGlvbnMgd2Uga25vdyB0aGF0ICJiIiBpcyBhbiAiYSIgYnkgaW5oZXJpdGFuY2UgYW5kIHRoZXJlIHNob3VsZCBiZSBubyB0eXBlLWVycm9yLiBUaGlzIHByb2JsZW0gaXMgZGlyZWN0bHkgZHVlIHRvIHRoZSBsYWNrIG9mIHR5cGUtc2hhcmluZyBiZXR3ZWVuIG1vZHVsZXMuIElmIHdlIGxvb2sgY2xvc2VseSBhdCB0aGUgbW9kdWxlIG1vZHVsZXMgY3JlYXRlZCBoZXJlLCB0aGV5IGxvb2sgbGlrZSB0aGlzIDo8cD4KLTxjZW50ZXI+PGltZyBzcmM9ImNoMTEuMi5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci1UaGUgdHlwZSBpbmZvcm1hdGlvbiBsaXN0ZWQgc2hvd3MgdGhlIGFjY2VwdGFibGUgdmFsdWVzIGZvciB2YXJpb3VzIEMgZGF0YXR5cGVzLiAgSW4gdGhlICJhIiBtb2R1bGUsIHdlIHNlZSB0aGF0ICJhIiBjYW4gb25seSBhY2NlcHQgaW5zdGFuY2VzIG9mIGl0c2VsZi4gIEluIHRoZSAiYiIgbW9kdWxlLCB3ZSBzZWUgdGhhdCAiYSIgIGNhbiBhY2NlcHQgYm90aCAiYSIgYW5kICJiIiBpbnN0YW5jZXMtLXdoaWNoIGlzIGNvcnJlY3QgZ2l2ZW4gdGhhdCBhICJiIiAgaXMgYW4gImEiIGJ5IGluaGVyaXRhbmNlLjxwPgotPHA+Ci1VbmZvcnR1bmF0ZWx5LCB0aGlzIHByb2JsZW0gaXMgaW5oZXJlbnQgaW4gdGhlIG1ldGhvZCBieSB3aGljaCBTV0lHIG1ha2VzIG1vZHVsZXMuICBXaGVuIHdlIG1hZGUgdGhlICJhIiBtb2R1bGUsIHdlIGhhZCBubyBpZGVhIHdoYXQgZGVyaXZlZCBjbGFzc2VzIG1pZ2h0IGJlIHVzZWQgYXQgYSBsYXRlciB0aW1lLiBIb3dldmVyLCBpdCdzIGltcG9zc2libGUgdG8gcHJvZHVjZSB0aGUgcHJvcGVyIHR5cGUgaW5mb3JtYXRpb24gdW50aWwgYWZ0ZXIgd2Uga25vdyBhbGwgb2YgdGhlIGRlcml2ZWQgY2xhc3Nlcy4gICBBIG5pY2UgcHJvYmxlbSB0byBiZSBzdXJlLCBidXQgb25lIHRoYXQgY2FuIGJlIGZpeGVkIGJ5IG1ha2luZyBhbGwgbW9kdWxlcyBzaGFyZSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBTV0lHIHJ1bi10aW1lIGxpYnJhcnkuPHA+Ci08YSBuYW1lPSJuNiI+PC9hPjxoMz4gVGhlIFNXSUcgcnVudGltZSBsaWJyYXJ5PC9oMz4KLVRvIHJlZHVjZSBvdmVyaGVhZCBhbmQgdG8gZml4IHR5cGUtaGFuZGxpbmcgcHJvYmxlbXMsIGl0IGlzIHBvc3NpYmxlIHRvIHNoYXJlIHRoZSBTV0lHIHJ1bi10aW1lIGZ1bmN0aW9ucyBiZXR3ZWVuIG11bHRpcGxlIG1vZHVsZXMuICAgIFRoaXMgcmVxdWlyZXMgdGhlIHVzZSBvZiB0aGUgU1dJRyBydW50aW1lIGxpYnJhcnkgd2hpY2ggaXMgb3B0aW9uYWxseSBidWlsdCBkdXJpbmcgU1dJRyBpbnN0YWxsYXRpb24uICBUbyB1c2UgdGhlIHJ1bnRpbWUgbGlicmFyaWVzLCBmb2xsb3cgdGhlc2Ugc3RlcHMgOjxwPgotPHA+Ci0xLiAgQnVpbGQgdGhlIFNXSUcgcnVuLXRpbWUgbGlicmFyaWVzLiAgVGhlIDx0dD5TV0lHMS4xL1J1bnRpbWU8L3R0PiBkaXJlY3RvcnkgY29udGFpbnMgYSBtYWtlZmlsZSBmb3IgZG9pbmcgdGhpcy4gICBJZiBzdWNjZXNzZnVsbHkgYnVpbHQsIHlvdSB3aWxsIGVuZCB1cCB3aXRoIDYgZmlsZXMgdGhhdCBhcmUgdXN1YWxseSBpbnN0YWxsZWQgaW4gPHR0Pi91c3IvbG9jYWwvbGliPC90dD4uPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+bGlic3dpZ3RjbC5hICAgICAgICAgICAgICAgICAjIFRjbCBsaWJyYXJ5IChzdGF0aWMpCi1saWJzd2lndGNsLnNvICAgICAgICAgICAgICAgICMgVGNsIGxpYnJhcnkgKHNoYXJlZCkKLWxpYnN3aWdwbC5hICAgICAgICAgICAgICAgICAgIyBQZXJsIGxpYnJhcnkgKHN0YXRpYykKLWxpYnN3aWdwbC5zbyAgICAgICAgICAgICAgICAgIyBQZXJsIGxpYnJhcnkgKHNoYXJlZCkKLWxpYnN3aWdweS5hICAgICAgICAgICAgICAgICAgIyBQeXRob24gbGlicmFyeSAoc3RhdGljKQotbGlic3dpZ3B5LnNvICAgICAgICAgICAgICAgICAjIFB5dGhvbiBsaWJyYXJ5IChzaGFyZWQpCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdGUgdGhhdCBjZXJ0YWluIGxpYnJhcmllcyBtYXkgYmUgbWlzc2luZyBkdWUgdG8gbWlzc2luZyBwYWNrYWdlcyBvciB1bnN1cHBvcnRlZCBmZWF0dXJlcyAobGlrZSBkeW5hbWljIGxvYWRpbmcpIG9uIHlvdXIgbWFjaGluZS48cD4KLTxwPgotMi4gICBDb21waWxlIGFsbCBTV0lHIG1vZHVsZXMgdXNpbmcgdGhlIDx0dD4tYzwvdHQ+IG9wdGlvbi4gICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1jIC1weXRob24gYS5pCi0lIHN3aWcgLWMgLXB5dGhvbiBiLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD4tYzwvdHQ+IG9wdGlvbiB0ZWxscyBTV0lHIHRvIG9taXQgcnVudGltZSBzdXBwb3J0LiAgSXQncyBub3cgdXAgdG8geW91IHRvIHByb3ZpZGUgaXQgc2VwYXJhdGVseS0td2hpY2ggd2Ugd2lsbCBkbyB1c2luZyBvdXIgbGlicmFyaWVzLjxwPgotPHA+Ci0zLiAgIEJ1aWxkIFNXSUcgbW9kdWxlcyBieSBsaW5raW5nIGFnYWluc3QgdGhlIGFwcHJvcHJpYXRlIHJ1bnRpbWUgbGlicmFyaWVzLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtYyAtcHl0aG9uIGEuaQotJSBzd2lnIC1jIC1weXRob24gYi5pCi0lIGdjYyAtYyBhX3dyYXAuYyBiX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZQotJSBsZCAtc2hhcmVkIGFfd3JhcC5vIGJfd3JhcC5vIC1sc3dpZ3B5ICAtbyBhLnNvCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yIGlmIGJ1aWxkaW5nIGEgbmV3IGV4ZWN1dGFibGUgKHN0YXRpYyBsaW5raW5nKTxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtYyAtdGNsIC1sdGNsc2guaSBhLmkKLSUgZ2NjIGFfd3JhcC5jIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1ML3Vzci9sb2NhbC9saWIgLWx0Y2wgLWxzd2lndGNsIC1sbSAtbyBteXRjbHNoCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBjb21wbGV0ZWQgeW91IHNob3VsZCBub3cgZW5kIHVwIHdpdGggYSBjb2xsZWN0aW9uIG9mIG1vZHVsZXMgbGlrZSB0aGlzIDo8cD4KLTxjZW50ZXI+PGltZyBzcmM9ImNoMTEuMy5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08cD4KLUluIHRoaXMgY29uZmlndXJhdGlvbiwgdGhlIHJ1bnRpbWUgbGlicmFyeSBtYW5hZ2VzIGFsbCBkYXRhdHlwZXMgYW5kIG90aGVyIGluZm9ybWF0aW9uIGJldHdlZW4gbW9kdWxlcy4gICBUaGlzIG1hbmFnZW1lbnQgcHJvY2VzcyBpcyBkeW5hbWljIGluIG5hdHVyZS0td2hlbiBuZXcgbW9kdWxlcyBhcmUgbG9hZGVkLCB0aGV5IGNvbnRyaWJ1dGUgaW5mb3JtYXRpb24gdG8gdGhlIHJ1bi10aW1lIHN5c3RlbS4gICBJbiB0aGUgQysrIHdvcmxkLCBvbmUgY291bGQgaW5jcmVtZW50YWxseSBsb2FkIGNsYXNzZXMgYXMgbmVlZGVkLiAgQXMgdGhpcyBwcm9jZXNzIG9jY3VycywgdHlwZSBpbmZvcm1hdGlvbiBpcyB1cGRhdGVkIGFuZCBiYXNlLWNsYXNzZXMgbGVhcm4gYWJvdXQgZGVyaXZlZCBjbGFzc2VzIGFzIG5lZWRlZC48cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgzPiBBIGZldyBkeW5hbWljIGxvYWRpbmcgZ290Y2hhczwvaDM+Ci1XaGVuIHdvcmtpbmcgd2l0aCBkeW5hbWljIGxvYWRpbmcsIGl0IGlzIGNyaXRpY2FsIHRvIGNoZWNrIHRoYXQgb25seSBvbmUgY29weSBvZiB0aGUgcnVuLXRpbWUgbGlicmFyeSBpcyBiZWluZyBsb2FkZWQgaW50byB0aGUgc3lzdGVtLiAgV2hlbiB3b3JraW5nIHdpdGggPHR0Pi5hPC90dD4gbGlicmFyeSBmaWxlcywgcHJvYmxlbXMgY2FuIHNvbWV0aW1lcyBvY2N1ciBzbyB0aGVyZSBhcmUgYSBmZXcgYXBwcm9hY2hlcyB0byB0aGUgcHJvYmxlbS48cD4KLTxwPgotMS4gIFJlYnVpbGQgdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBleGVjdXRhYmxlIHdpdGggdGhlIFNXSUcgcnVudGltZSBsaWJyYXJ5IGF0dGFjaGVkIHRvIGl0LiAgIFRoaXMgaXMgYWN0dWFsbHksIGZhaXJseSBlYXN5IHRvIGRvIHVzaW5nIFNXSUcuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBteXRjbHNoCi0lewotCi1zdGF0aWMgdm9pZCAqX19lbWJlZGZ1bmModm9pZCAqYSkgeyByZXR1cm4gYX07Ci0lfQotCi12b2lkICpfX2VtYmVkZnVuYyh2b2lkICopOwotJWluY2x1ZGUgdGNsc2guaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdywgcnVuIFNXSUcgYW5kIGNvbXBpbGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1jIC10Y2wgbXl0Y2xzaC5pCi0lIGdjYyBteXRjbHNoX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtTC91c3IvbG9jYWwvbGliIC1sdGNsIC1sc3dpZ3RjbCAtbGRsIC1sbSBcCi0gICAgICAtbyB0Y2xzaAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHByb2R1Y2VzIGEgbmV3IGV4ZWN1dGFibGUgIjx0dD50Y2xzaDwvdHQ+IiB0aGF0IGNvbnRhaW5zIGEgY29weSBvZiB0aGUgU1dJRyBydW50aW1lIGxpYnJhcnkuICAgVGhlIHdlaXJkIDx0dD5fX2VtYmVkZnVuYygpPC90dD4gZnVuY3Rpb24gaXMgbmVlZGVkIHRvIGZvcmNlIHRoZSBmdW5jdGlvbnMgaW4gdGhlIHJ1bnRpbWUgbGlicmFyeSB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgZXhlY3V0YWJsZS4gICAgPHA+Ci08cD4KLVRvIG1ha2UgbmV3IGR5bmFtaWNhbGx5IGxvYWRhYmxlIFNXSUcgbW9kdWxlcywgc2ltcGx5IGNvbXBpbGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1jIC10Y2wgZXhhbXBsZS5pCi0lIGdjYyAtYyBleGFtcGxlX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZQotJSBsZCAtc2hhcmVkIGV4YW1wbGVfd3JhcC5vIC1vIGV4YW1wbGUuc28KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTGlua2luZyBhZ2FpbnN0IHRoZSA8dHQ+c3dpZ3RjbDwvdHQ+IGxpYnJhcnkgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBhcyBhbGwgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgbm93IGluY2x1ZGVkIGluIHRoZSA8dHQ+dGNsc2g8L3R0PiBleGVjdXRhYmxlIGFuZCB3aWxsIGJlIHJlc29sdmVkIHdoZW4geW91ciBtb2R1bGUgaXMgbG9hZGVkLjxwPgotPHA+Ci0yLiAgVXNpbmcgc2hhcmVkIGxpYnJhcnkgdmVyc2lvbnMgb2YgdGhlIHJ1bnRpbWUgbGlicmFyeTxwPgotPHA+Ci1JZiBzdXBwb3J0ZWQgb24geW91ciBtYWNoaW5lLCB0aGUgcnVudGltZSBsaWJyYXJpZXMgd2lsbCBiZSBidWlsdCBhcyBzaGFyZWQgbGlicmFyaWVzIChpbmRpY2F0ZWQgYnkgYSA8dHQ+LnNvPC90dD4sIDx0dD4uc2w8L3R0Piwgb3IgLjx0dD5kbGw8L3R0PiBzdWZmaXgpLiAgIFRvIGNvbXBpbGUgdXNpbmcgdGhlIHJ1bnRpbWUgbGlicmFyaWVzLCB5b3UgbGluayBwcm9jZXNzIHNob3VsZCBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSUgbGQgLXNoYXJlZCBzd2lndGNsX3dyYXAubyAtbyBsaWJzd2lndGNsLnNvICAgICAgICAgICAgICMgSXJpeAotJSBnY2MgLXNoYXJlZCBzd2lndGNsX3dyYXAubyAtbyBsaWJzd2lndGNsLnNvICAgICAgICAgICAgIyBMaW51eAotJSBsZCAtRyBzd2lndGNsX3dyYXAubyAtbyBsaWJzd2lndGNsLnNvICAgICAgICAgICAgICAgICAgIyBTb2xhcmlzCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiBvcmRlciBmb3IgdGhlIDx0dD5saWJzd2lndGNsLnNvPC90dD4gbGlicmFyeSB0byB3b3JrLCBpdCBuZWVkcyB0byBiZSBwbGFjZWQgaW4gYSBsb2NhdGlvbiB3aGVyZSB0aGUgZHluYW1pYyBsb2FkZXIgY2FuIGZpbmQgaXQuICBUeXBpY2FsbHkgdGhpcyBpcyBhIHN5c3RlbSBsaWJyYXJ5IGRpcmVjdG9yeSAoaWUuIDx0dD4vdXNyL2xvY2FsL2xpYjwvdHQ+IG9yIDx0dD4vdXNyL2xpYjwvdHQ+KS4gICA8cD4KLTxwPgotV2hlbiBydW5uaW5nIHdpdGggdGhlIHNoYXJlZCBsaWJhcnkgdmVyc2lvbiwgeW91IG1heSBnZXQgZXJyb3IgbWVzc2FnZXMgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlVuYWJsZSB0byBsb2NhdGUgbGlic3dpZ3RjbC5zbyAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgbG9hZGVyIHdhcyB1bmFibGUgdG8gZmluZCB0aGUgc2hhcmVkIGxpYmFyeSBhdCBydW4tdGltZS4gICAgIFRvIGZpbmQgc2hhcmVkIGxpYmFyaWVzLCB0aGUgbG9hZGVyIGxvb2tzIHRocm91Z2ggYSBjb2xsZWN0aW9uIG9mIHByZWRldGVybWluZWQgcGF0aHMuICBJZiB0aGUgPHR0PmxpYnN3aWd0Y2wuc288L3R0PiBmaWxlIGlzIG5vdCBpbiBhbnkgb2YgdGhlc2UgZGlyZWN0b3JpZXMsIGl0IHJlc3VsdHMgaW4gYW4gZXJyb3IuICAgT24gbW9zdCBtYWNoaW5lcywgeW91IGNhbiBjaGFuZ2UgdGhlIGxvYWRlciBzZWFyY2ggcGF0aCBieSBjaGFuZ2luZyB0aGUgVW5peCBlbnZpcm9ubWVudCB2YXJpYWJsZSA8dHQ+TERfTElCUkFSWV9QQVRIPC90dD4uICAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0ZW52IExEX0xJQlJBUllfUEFUSCAuOi9ob21lL2JlYXpsZXkvcGFja2FnZXMvbGliCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUEgc29tZXdoYXQgYmV0dGVyIGFwcHJvYWNoIGlzIHRvIGxpbmsgeW91ciBtb2R1bGUgd2l0aCB0aGUgcHJvcGVyIHBhdGggZW5jb2RlZC4gIFRoaXMgaXMgdHlwaWNhbGx5IGRvbmUgdXNpbmcgdGhlIGAtcnBhdGgnIG9yIGAtUicgb3B0aW9uIHRvIHlvdXIgbGlua2VyIChzZWUgdGhlIG1hbiBwYWdlKS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGxkIC1zaGFyZWQgZXhhbXBsZV93cmFwLm8gZXhhbXBsZS5vIC1ycGF0aCAvaG9tZS9iZWF6bGV5L3BhY2thZ2VzL2xpYiBcCi0gICAgICAgLUwvaG9tZS9iZWF6bGV5L3BhY2thZ2VzL2xpYiAtbHN3aWd0Y2wuc28gLW8gZXhhbXBsZS5zbwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0Pi1ycGF0aDwvdHQ+IG9wdGlvbiBlbmNvZGVzIHRoZSBsb2NhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzIGludG8geW91ciBtb2R1bGVzIGFuZCBnZXRzIGFyb3VuZCBoYXZpbmcgdG8gc2V0IHRoZSA8dHQ+TERfTElCUkFSWV9QQVRIPC90dD4gdmFyaWFibGUuICA8cD4KLTxwPgotSWYgYWxsIGVsc2UgZmFpbHMsIHB1bGwgdXAgdGhlIG1hbiBwYWdlcyBmb3IgeW91ciBsaW5rZXIgYW5kIHN0YXJ0IHBsYXlpbmcgYXJvdW5kLiAgIDxwPgotPGEgbmFtZT0ibjIiPjwvYT48aDI+IER5bmFtaWMgTG9hZGluZyBvZiBDKysgbW9kdWxlczwvaDI+Ci1EeW5hbWljIGxvYWRpbmcgb2YgQysrIG1vZHVsZXMgcHJlc2VudHMgYSBzcGVjaWFsIHByb2JsZW0gZm9yIG1hbnkgc3lzdGVtcy4gICBUaGlzIGlzIGJlY2F1c2UgQysrIG1vZHVsZXMgb2Z0ZW4gbmVlZCBhZGRpdGlvbmFsIHN1cHBvcnRpbmcgY29kZSBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIGFuZCBvcGVyYXRpb24uICAgU3RhdGljIGNvbnN0cnVjdG9ycyBhcmUgYWxzbyBhIGJpdCBvZiBhIHByb2JsZW0uPHA+Ci08cD4KLVdoaWxlIHRoZSBwcm9jZXNzIG9mIGJ1aWxkaW5nIEMrKyBtb2R1bGVzIGlzLCBieSBubyBtZWFucywgYW5kIGV4YWN0IHNjaWVuY2UsIGhlcmUgYXJlIGEgZmV3IHJ1bGVzIG9mIHRodW1iIHRvIGZvbGxvdyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5Eb24ndCB1c2Ugc3RhdGljIGNvbnN0cnVjdG9ycyBpZiBhdCBhbGwgcG9zc2libGUgKG5vdCBhbHdheXMgYXZvaWRhYmxlKS4KLTxsaT5UcnkgbGlua2luZyB5b3VyIG1vZHVsZSB3aXRoIHRoZSBDKysgY29tcGlsZXIgdXNpbmcgYSBjb21tYW5kIGxpa2UgYGMrKyAtc2hhcmVkJy4gIFRoaXMgb2Z0ZW4gc29sdmVzIGFsb3Qgb2YgcHJvYmxlbXMuCi08bGk+U29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBsaW5rIGFnYWluc3Qgc3BlY2lhbCBsaWJyYXJpZXMuICBGb3IgZXhhbXBsZSwgbW9kdWxlcyBjb21waWxlZCB3aXRoIGcrKyBvZnRlbiBuZWVkIHRvIGJlIGxpbmtlZCBhZ2FpbnN0IHRoZSA8dHQ+bGliZ2NjLmE8L3R0PiwgPHR0PmxpYmcrKy5hPC90dD4sIGFuZCA8dHQ+bGlic3RkYysrLmE8L3R0PiBsaWJyYXJpZXMuCi08bGk+UmVhZCB0aGUgY29tcGlsZXIgYW5kIGxpbmtlciBtYW4gcGFnZXMgb3ZlciBhbmQgb3ZlciB1bnRpbCB5b3UgaGF2ZSB0aGVtIG1lbW9yaXplZCAodGhpcyBtYXkgbm90IGhlbHAgaW4gc29tZSBjYXNlcyBob3dldmVyKS4KLTxsaT5TZWFyY2ggYXJ0aWNsZXMgb24gVXNlbmV0LCBwYXJ0aWN1bGFybHkgaW4gPHR0PmNvbXAubGFuZy50Y2w8L3R0PiwgPHR0PmNvbXAubGFuZy5wZXJsPC90dD4sIGFuZCA8dHQ+Y29tcC5sYW5nLnB5dGhvbjwvdHQ+LiAgICBCdWlsZGluZyBDKysgbW9kdWxlcyBpcyBhIGNvbW1vbiBwcm9ibGVtLgotPC91bD4KLTxwPgotVGhlIFNXSUcgZGlzdHJpYnV0aW9uIGNvbnRhaW5zIHNvbWUgYWRkaXRpb25hbCBkb2N1bWVudGF0aW9uIGFib3V0IEMrKyBtb2R1bGVzIGluIHRoZSBEb2MgZGlyZWN0b3J5IGFzIHdlbGwuPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gSW5zaWRlIHRoZSBTV0lHIHR5cGUtY2hlY2tlcjwvaDI+Ci1UaGUgU1dJRyBydW50aW1lIHR5cGUtY2hlY2tlciBwbGF5cyBhIGNyaXRpY2FsIHJvbGUgaW4gdGhlIGNvcnJlY3Qgb3BlcmF0aW9uIG9mIFNXSUcgbW9kdWxlcy4gICBJdCBub3Qgb25seSBjaGVja3MgdGhlIHZhbGlkaXR5IG9mIHBvaW50ZXIgdHlwZXMsIGJ1dCBhbHNvIG1hbmFnZXMgQysrIGluaGVyaXRhbmNlLCBhbmQgcGVyZm9ybXMgcHJvcGVyIHR5cGUtY2FzdGluZyBvZiBwb2ludGVycyB3aGVuIG5lY2Vzc2FyeS4gIFRoaXMgc2VjdGlvbiBwcm92aWRlcyBzb21lIGluc2lnaHQgaW50byB3aGF0IGl0IGRvZXMsIGhvdyBpdCB3b3JrcywgYW5kIHdoeSBpdCBpcyB0aGUgd2F5IGl0IGlzLjxwPgotPGEgbmFtZT0ibjgiPjwvYT48aDM+IFR5cGUgZXF1aXZhbGVuY2U8L2gzPgotU1dJRyB1c2VzIGEgbmFtZS1iYXNlZCBhcHByb2FjaCB0byBtYW5hZ2luZyBwb2ludGVyIGRhdGF0eXBlcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgdXNpbmcgYSBwb2ludGVyIGxpa2UgIjx0dD5kb3VibGUgKjwvdHQ+IiwgdGhlIHR5cGUtY2hlY2tlciB3aWxsIGxvb2sgZm9yIGEgcGFydGljdWxhciBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhhdCBkYXRhdHlwZSBzdWNoIGFzICI8dHQ+X2RvdWJsZV9wPC90dD4iLiAgIElmIG5vIG1hdGNoIGlzIGZvdW5kLCBhIHR5cGUtZXJyb3IgaXMgcmVwb3J0ZWQuPHA+Ci08cD4KLUhvd2V2ZXIsIHRoZSBtYXRjaGluZyBwcm9jZXNzIGlzIGNvbXBsaWNhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgZGF0YXR5cGVzIG1heSB1c2UgYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBuYW1lcy4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9uczxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgZG91YmxlICAgUmVhbDsKLXR5cGVkZWYgUmVhbCAqICAgUmVhbFB0cjsKLXR5cGVkZWYgZG91YmxlICAgRmxvYXQ7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLWRlZmluZSB0d28gc2V0cyBvZiBlcXVpdmFsZW50IHR5cGVzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT57ZG91YmxlLCBSZWFsLCBGbG9hdH0KLXtSZWFsUHRyLCBSZWFsICp9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFsbCBvZiB0aGUgdHlwZXMgaW4gZWFjaCBzZXQgYXJlIGZyZWVseSBpbnRlcmNoYW5nYWJsZSBhbmQgdGhlIHR5cGUtY2hlY2tlciBrbm93cyBhYm91dCB0aGUgcmVsYXRpb25zaGlwcyBieSBtYW5hZ2luZyBhIHRhYmxlIG9mIGVxdWl2YWxlbmNlcyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWRvdWJsZSAgICA9Jmd0OyB7IFJlYWwsIEZsb2F0IH0KLVJlYWwgICAgICA9Jmd0OyB7IGRvdWJsZSwgRmxvYXQgfQotRmxvYXQgICAgID0mZ3Q7IHsgZG91YmxlLCBSZWFsIH0KLVJlYWxQdHIgICA9Jmd0OyB7IFJlYWwgKiB9Ci1SZWFsICogICAgPSZndDsgeyBSZWFsUHRyIH0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIHlvdSBkZWNsYXJlIGEgZnVuY3Rpb24gc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGZvbyhSZWFsICphKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU1dJRyBmaXJzdCBjaGVja3MgdG8gc2VlIGlmIHRoZSBhcmd1bWVudCBwYXNzZWQgaXMgYSAiPHR0PlJlYWwgKjwvdHQ+Ii4gICBJZiBub3QsIGl0IGNoZWNrcyB0byBzZWUgaWYgaXQgaXMgYW55IG9mIHRoZSBvdGhlciBlcXVpdmFsZW50IHR5cGVzICg8dHQ+ZG91YmxlICo8L3R0PiwgPHR0PlJlYWxQdHI8L3R0PiwgPHR0PkZsb2F0ICo8L3R0PikuICBJZiBzbywgdGhlIHZhbHVlIGlzIGFjY2VwdGVkIGFuZCBubyBlcnJvciBvY2N1cnMuPHA+Ci08cD4KLURlcml2ZWQgdmVyc2lvbnMgb2YgdGhlIHZhcmlvdXMgZGF0YXR5cGVzIGFyZSBhbHNvIGxlZ2FsLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBoYWQgYSBmdW5jdGlvbiBsaWtlIHRoaXMsPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBiYXIoRmxvYXQgKioqYSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSB0eXBlLWNoZWNrZXIgd2lsbCBhY2NlcHQgcG9pbnRlcnMgb2YgdHlwZSA8dHQ+ZG91YmxlICoqKjwvdHQ+IGFuZCA8dHQ+UmVhbCAqKiouPC90dD4gIEhvd2V2ZXIsIHRoZSB0eXBlLWNoZWNrZXIgZG9lcyBub3QgYWx3YXlzIGNhcHR1cmUgdGhlIGZ1bGwtcmFuZ2Ugb2YgcG9zc2liaWxpdGllcy4gIEZvciBleGFtcGxlLCBhIGRhdGF0eXBlIG9mIGA8dHQ+UmVhbFB0ciAqKjwvdHQ+JyBpcyBlcXVpdmFsZW50IHRvIGEgYDx0dD5GbG9hdCAqKio8L3R0PicgYnV0IHdvdWxkIGJlIGZsYWdnZWQgYXMgYSB0eXBlIGVycm9yLiAgIElmIHlvdSBlbmNvdW50ZXIgdGhpcyBraW5kIG9mIHByb2JsZW0sIHlvdSBjYW4gbWFudWFsbHkgZm9yY2UgU1dJRyB0byBtYWtlIGFuIGVxdWl2YWxlbmNlIGFzIGZvbGxvd3M6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gVGVsbCB0aGUgdHlwZSBjaGVja2VyIHRoYXQgYEZsb2F0X3BwcCcgYW5kIGBSZWFsUHRyX3BwJyBhcmUgZXF1aXZhbGVudC4KLSVpbml0ICV7Ci0JU1dJR19SZWdpc3Rlck1hcHBpbmcoIkZsb2F0X3BwcCIsIlJlYWxQdHJfcHAiLDApOwotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRG9pbmcgdGhpcyBzaG91bGQgaGFyZGx5IGV2ZXIgYmUgbmVjZXNzYXJ5IChJIGhhdmUgbmV2ZXIgZW5jb3VudGVyZWQgYSBjYXNlIHdoZXJlIHRoaXMgd2FzIG5lY2Vzc2FyeSksIGJ1dCBpZiBhbGwgZWxzZSBmYWlscywgeW91IGNhbiBmb3JjZSB0aGUgcnVuLXRpbWUgdHlwZSBjaGVja2VyIGludG8gZG9pbmcgd2hhdCB5b3Ugd2FudC48cD4KLTxwPgotVHlwZS1lcXVpdmFsZW5jZSBvZiBDKysgY2xhc3NlcyBpcyBoYW5kbGVkIGluIGEgc2ltaWxhciBtYW5uZXIsIGJ1dCBpcyBlbmNvZGVkIGluIGEgbWFubmVyIHRvIHN1cHBvcnQgaW5oZXJpdGFuY2UuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBjbGFzc2VzIGhpZXJhcmNoeSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2xhc3MgQSB7IH07Ci1jbGFzcyBCIDogcHVibGljIEEgeyB9OwotY2xhc3MgQyA6IHB1YmxpYyBCIHsgfTsKLWNsYXNzIEQge307Ci1jbGFzcyBFIDogcHVibGljIEMsIHB1YmxpYyBEIHt9OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgdHlwZS1jaGVja2VyIGVuY29kZXMgdGhpcyBpbnRvIHRoZSBmb2xsb3dpbmcgc2V0cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+QSA9Jmd0OyB7IEIsIEMsIEUgfSAgICAgICAgICAgICAgIkIgaXNhIEEsIEMgaXNhIEEsIEUgaXNhIEEiCi1CID0mZ3Q7IHsgQywgRSB9ICAgICAgICAgICAgICAgICAiQyBpc2EgQiwgRSBpc2EgQiIKLUMgPSZndDsgeyBFIH0gICAgICAgICAgICAgICAgICAgICJFIGlzYSBDIgotRCA9Jmd0OyB7IEUgfSAgICAgICAgICAgICAgICAgICAgIkUgaXNhIEQiCi1FID0mZ3Q7IHsgfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgZW5jb2RpbmcgcmVmbGVjdHMgdGhlIGNsYXNzIGhpZXJhcmNoeS4gRm9yIGV4YW1wbGUsIGFueSBvYmplY3Qgb2YgdHlwZSAiQSIgd2lsbCBhbHNvIGFjY2VwdCBvYmplY3RzIG9mIHR5cGUgQixDLCBhbmQgRSBiZWNhdXNlIHRoZXNlIGFyZSBhbGwgZGVyaXZlZCBmcm9tIEEuICBIb3dldmVyLCBpdCBpcyBub3QgbGVnYWwgdG8gZ28gdGhlIG90aGVyIHdheS4gRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gb3BlcmF0aW5nIG9uIGEgb2JqZWN0IGZyb20gY2xhc3MgRSB3aWxsIG5vdCBhY2NlcHQgYW4gb2JqZWN0IGZyb20gY2xhc3MgQS48cD4KLTxhIG5hbWU9Im45Ij48L2E+PGgzPiBUeXBlIGNhc3Rpbmc8L2gzPgotV2hlbiB3b3JraW5nIHdpdGggQysrIGNsYXNzZXMsIFNXSUcgbmVlZHMgdG8gcGVyZm9ybSBwcm9wZXIgdHlwZWNhc3RpbmcgYmV0d2VlbiBkZXJpdmVkIGFuZCBiYXNlIGNsYXNzZXMuICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgd2hlbiB3b3JraW5nIHdpdGggbXVsdGlwbGUgaW5oZXJpdGFuY2UuICAgVG8gZG8gdGhpcywgY29udmVyc2lvbiBmdW5jdGlvbnMgYXJlIGNyZWF0ZWQgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkICpFdG9BKHZvaWQgKnB0cikgewotCUUgKmluID0gKEUgKikgcHRyOwotCUEgKm91dCA9IChBICopIGluOyAgICAgICAvLyBDYXN0IHVzaW5nIEMrKwotCXJldHVybiAodm9pZCAqKSBvdXQ7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFsbCBwb2ludGVycyBhcmUgaW50ZXJuYWxseSByZXByZXNlbnRlZCBhcyB2b2lkICosIGJ1dCBjb252ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIGludm9rZWQgd2hlbiBwb2ludGVyIHZhbHVlcyBhcmUgY29udmVydGVkIGJldHdlZW4gYmFzZSBhbmQgZGVyaXZlZCBjbGFzc2VzIGluIGEgQysrIGNsYXNzIGhpZXJhcmNoeS48cD4KLTxhIG5hbWU9Im4xMCI+PC9hPjxoMz4gV2h5IGEgbmFtZSBiYXNlZCBhcHByb2FjaD88L2gzPgotU1dJRyB1c2VzIGEgbmFtZS1iYXNlZCBhcHByb2FjaCB0byB0eXBlLWNoZWNraW5nIGZvciBhIG51bWJlciBvZiByZWFzb25zIDo8cD4KLTxwPgotPHVsPgotPGxpPk9uZSBvZiBTV0lHJ3MgbWFpbiB1c2VzIGlzIGNvZGUgZGV2ZWxvcG1lbnQgYW5kIGRlYnVnZ2luZy4gICBJbiB0aGlzIGVudmlyb25tZW50LCB0aGUgdHlwZSBuYW1lIG9mIGFuIG9iamVjdCB0dXJucyBvdXQgdG8gYmUgYSB1c2VmdWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gaW4gdHJhY2tpbmcgZG93biBwcm9ibGVtcy4KLTxsaT5JbiBsYW5ndWFnZXMgbGlrZSBQZXJsLCB0aGUgbmFtZSBvZiBhIGRhdGF0eXBlIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoaW5ncyBsaWtlIHBhY2thZ2VzIGFuZCBjbGFzc2VzLiAgICBCeSB1c2luZyBkYXRhdHlwZSBuYW1lcyB3ZSBnZXQgYSBuYXR1cmFsIG1hcHBpbmcgYmV0d2VlbiBDIGFuZCBQZXJsLgotPGxpPkkgYmVsaWV2ZSB1c2luZyB0aGUgb3JpZ2luYWwgbmFtZXMgb2YgZGF0YXR5cGVzIGlzIG1vcmUgaW50dWl0aXZlIHRoYW4gbXVuZ2luZyB0aGVtIGludG8gc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50LgotPC91bD4KLTxwPgotQW4gYWx0ZXJuYXRpdmUgdG8gYSBuYW1lIGJhc2VkIHNjaGVtZSB3b3VsZCBiZSB0byBnZW5lcmF0ZSB0eXBlLXNpZ25hdHVyZXMgYmFzZWQgb24gdGhlIHN0cnVjdHVyZSBvZiBhIGRhdGF0eXBlLiAgIFN1Y2ggYSBzY2hlbWUgd291bGQgcmVzdWx0IGluIHBlcmZlY3QgdHlwZS1jaGVja2luZywgYnV0IEkgdGhpbmsgaXQgd291bGQgYWxzbyByZXN1bHQgaW4gYSB2ZXJ5IGNvbmZ1c2luZyBzY3JpcHRpbmcgbGFuZ3VhZ2UgbW9kdWxlLiAgRm9yIHRoaXMgcmVhc29uLCBJIHNlZSBTV0lHIHN0aWNraW5nIHdpdGggdGhlIG5hbWUtYmFzZWQgYXBwcm9hY2gtLWF0IGxlYXN0IGZvciB0aGUgZm9yZXNlZWFibGUgZnV0dXJlLiAgPHA+Ci08YSBuYW1lPSJuMTEiPjwvYT48aDM+IFBlcmZvcm1hbmNlIG9mIHRoZSB0eXBlLWNoZWNrZXI8L2gzPgotVGhlIHR5cGUtY2hlY2tlciBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzIHdoZW4gbWF0Y2hpbmcgYSBkYXRhdHlwZSA6PHA+Ci08cD4KLQotPGRsPgotPGR0PjEuCSBDaGVjayBhIHBvaW50ZXIgYWdhaW5zdCB0aGUgdHlwZSBzdXBwbGllZCBpbiB0aGUgb3JpZ2luYWwgQyBkZWNsYXJhdGlvbi4gIElmIHRoZXJlIGlzIGEgcGVyZmVjdCBtYXRjaCwgd2UncmUgZG9uZS4KLTxkdD4yLgkgQ2hlY2sgdGhlIHN1cHBsaWVkIHBvaW50ZXIgYWdhaW5zdCBhIGNhY2hlIG9mIHJlY2VudGx5IHVzZWQgZGF0YXR5cGVzLiAgCi08ZHQ+My4JIFNlYXJjaCBmb3IgYSBtYXRjaCBhZ2FpbnN0IHRoZSBmdWxsIGxpc3Qgb2YgZXF1aXZhbGVudCBkYXRhdHlwZXMuCi08ZHQ+NC4JIElmIG5vdCBmb3VuZCwgcmVwb3J0IGFuIGVycm9yLgotCi08L2RsPgotPHA+Ci1Nb3N0IHdlbGwtc3RydWN0dXJlZCBDIGNvZGVzIHdpbGwgZmluZCBhbiBleGFjdCBtYXRjaCBvbiB0aGUgZmlyc3QgYXR0ZW1wdCwgcHJvdmlkaW5nIHRoZSBiZXN0IHBvc3NpYmxlIHBlcmZvcm1hbmNlLiAgRm9yIEMrKyBjb2RlcywgaXQgaXMgcXVpdGUgY29tbW9uIHRvIGJlIHBhc3NpbmcgdmFyaW91cyBvYmplY3RzIG9mIGEgY29tbW9uIGJhc2UtY2xhc3MgYXJvdW5kIGJldHdlZW4gZnVuY3Rpb25zLiAgIFdoZW4gYmFzZS1jbGFzcyBmdW5jdGlvbnMgYXJlIGludm9rZWQsIGl0IGFsbW9zdCBhbHdheXMgcmVzdWx0cyBpbiBhIG1pc2NvbXBhcmUgKGJlY2F1c2UgdGhlIHR5cGUtY2hlY2tlciBpcyBsb29raW5nIGZvciB0aGUgYmFzZS10eXBlKS4gIEluIHRoaXMgY2FzZSwgd2UgZHJvcCBkb3duIHRvIGEgc21hbGwgY2FjaGUgb2YgcmVjZW50bHkgdXNlZCBkYXRhdHlwZXMuICAgSWYgd2UndmUgdXNlZCBhIHBvaW50ZXIgb2YgdGhlIHNhbWUgdHlwZSByZWNlbnRseSwgaXQgd2lsbCBiZSBpbiB0aGUgY2FjaGUgYW5kIHdlIGNhbiBtYXRjaCBhZ2FpbnN0IGl0LiAgICBGb3IgdGlnaHQgbG9vcHMsIHRoaXMgcmVzdWx0cyBpbiBhYm91dCAxMC0xNSUgb3ZlcmhlYWQgb3ZlciBmaW5kaW5nIGEgbWF0Y2ggb24gdGhlIGZpcnN0IHRyeS4gICBGaW5hbGx5LCBhcyBhIGxhc3QgcmVzb3J0LCB3ZSBuZWVkIHRvIHNlYXJjaCB0aGUgaW50ZXJuYWwgcG9pbnRlciB0YWJsZXMgZm9yIGEgbWF0Y2guICBUaGlzIGludm9sdmVzIGEgY29tYmluYXRpb24gb2YgaGFzaCB0YWJsZSBsb29rdXAgYW5kIGxpbmVhciBzZWFyY2guICBJZiBhIG1hdGNoIGlzIGZvdW5kLCBpdCBpcyBwbGFjZWQgaW50byB0aGUgY2FjaGUgYW5kIHRoZSByZXN1bHQgcmV0dXJuZWQuICBJZiBub3QsIHdlIGZpbmFsbHkgcmVwb3J0IGEgdHlwZS1taXNtYXRjaC48cD4KLTxwPgotQXMgYSBydWxlIG9mICB0aHVtYiwgQysrIHByb2dyYW1zIHJlcXVpcmUgc29tZXdoYXQgbW9yZSBwcm9jZXNzaW5nIHRoYW4gQyBwcm9ncmFtcywgYnV0IHRoaXMgc2VlbXMgdG8gYmUgYXZvaWRhYmxlLiAgICBBbHNvLCBrZWVwIGluIG1pbmQgdGhhdCBwZXJmb3JtYW5jZSBwZW5hbHRpZXMgaW4gdGhlIHR5cGUtY2hlY2tlciBkb24ndCBuZWNlc3NhcmlseSB0cmFuc2xhdGUgaW50byBiaWcgcGVuYWx0aWVzIGluIHRoZSBvdmVyYWxsIGFwcGxpY2F0aW9uLiAgUGVyZm9ybWFuY2UgaXMgbW9zdCBncmVhdGx5IGFmZmVjdGVkIGJ5IHRoZSBlZmZpY2llbmN5IG9mIHRoZSB0YXJnZXQgc2NyaXB0aW5nIGxhbmd1YWdlIGFuZCB0aGUgdHlwZXMgb2Ygb3BlcmF0aW9ucyB5b3VyIEMgY29kZSBpcyBwZXJmb3JtaW5nLjxwPgotPHA+Ci08cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ3OjEzIDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0NvbnRlbnRzLmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0NvbnRlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZTVlNWIuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9Db250ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTg0ICswLDAgQEAKLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT4gU1dJRyAxLjEgVXNlcnMgTWFudWFsIC0gVGFibGUgb2YgQ29udGVudHMgPC90aXRsZT4KLTwvaGVhZD4KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotCi08aDE+IFNXSUcgMS4xIFVzZXJzIE1hbnVhbCA8L2gxPgotCi08dWw+Ci08bGk+IDxhIGhyZWY9IkNvcHlyaWdodC5odG1sIj5Db3B5cmlnaHQ8L2E+Ci08bGk+IDxhIGhyZWY9IkFib3V0Lmh0bWwiPkFib3V0IHRoaXMgbWFudWFsPC9hPgotPGxpPiA8YSBocmVmPSJJbmRleC5odG1sIj5BbHBoYWJldGljYWwgVG9waWMgSW5kZXg8L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IlByZWZhY2UuaHRtbCI+UHJlZmFjZTwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iUHJlZmFjZS5odG1sI24xIj5JbnRyb2R1Y3Rpb248L2E+Ci08bGk+IDxhIGhyZWY9IlByZWZhY2UuaHRtbCNuMiI+U1dJRyByZXNvdXJjZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlByZWZhY2UuaHRtbCNuMyI+QWJvdXQgdGhpcyBtYW51YWw8L2E+Ci08bGk+IDxhIGhyZWY9IlByZWZhY2UuaHRtbCNuNCI+Q3JlZGl0czwvYT4KLTxsaT4gPGEgaHJlZj0iUHJlZmFjZS5odG1sI241Ij5XaGF0J3MgbmV3PzwvYT4KLTxsaT4gPGEgaHJlZj0iUHJlZmFjZS5odG1sI242Ij5CdWcgcmVwb3J0czwvYT4KLTxsaT4gPGEgaHJlZj0iUHJlZmFjZS5odG1sI243Ij5TV0lHIGlzIGZyZWU8L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sIj4xIEludHJvZHVjdGlvbjwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjEiPldoYXQgaXMgU1dJRz88L2E+Ci08bGk+IDxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24yIj5MaWZlIGJlZm9yZSBTV0lHPC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMyI+TGlmZSBhZnRlciBTV0lHPC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuNCI+VGhlIFNXSUcgcGFja2FnZTwvYT4KLTxsaT4gPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjUiPkEgU1dJRyBleGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuNiI+QyBzeW50YXgsIGJ1dCBub3QgYSBDIGNvbXBpbGVyPC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuNyI+Tm9uLWludHJ1c2l2ZSBpbnRlcmZhY2UgYnVpbGRpbmc8L2E+Ci08bGk+IDxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI244Ij5IYW5kcyBvZmYgY29kZSBnZW5lcmF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuOSI+RXZlbnQgZHJpdmVuIEMgcHJvZ3JhbW1pbmc8L2E+Ci08bGk+IDxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24xMCI+QXV0b21hdGljIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbjwvYT4KLTxsaT4gPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjExIj5TdW1tYXJ5PC9hPgotPGxpPiA8YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMTIiPlNXSUcgZm9yIFdpbmRvd3MgYW5kIE1hY2ludG9zaDwvYT4KLTwvdWw+Ci08aDI+PGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwiPjIgU2NyaXB0aW5nIExhbmd1YWdlczwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjEiPlRoZSB0d28gbGFuZ3VhZ2UgdmlldyBvZiB0aGUgd29ybGQ8L2E+Ci08bGk+IDxhIGhyZWY9IlNjcmlwdGluZy5odG1sI24yIj5Ib3cgZG9lcyBhIHNjcmlwdGluZyBsYW5ndWFnZSB0YWxrIHRvIEM/PC9hPgotPGxpPiA8YSBocmVmPSJTY3JpcHRpbmcuaHRtbCNuMyI+QnVpbGRpbmcgc2NyaXB0aW5nIGxhbmd1YWdlIGV4dGVuc2lvbnM8L2E+Ci08bGk+IDxhIGhyZWY9IlNjcmlwdGluZy5odG1sI240Ij5TaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljIGxvYWRpbmc8L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IlNXSUcuaHRtbCI+MyBTV0lHIEJhc2ljczwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iU1dJRy5odG1sI24xIj5SdW5uaW5nIFNXSUc8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuMiI+U2ltcGxlIEMgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBjb25zdGFudHM8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuMyI+UG9pbnRlcnMgYW5kIGNvbXBsZXggb2JqZWN0czwvYT4KLTxsaT4gPGEgaHJlZj0iU1dJRy5odG1sI240Ij5HZXR0aW5nIGRvd24gdG8gYnVzaW5lc3M8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuNSI+U3RydWN0dXJlcywgdW5pb25zLCBhbmQgb2JqZWN0IG9yaWVudGVkIEMgcHJvZ3JhbW1pbmc8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuNiI+QysrIHN1cHBvcnQ8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuNyI+T2JqZWN0aXZlLUM8L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuOCI+Q29uZGl0aW9uYWwgY29tcGlsYXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuOSI+Q29kZSBJbnNlcnRpb248L2E+Ci08bGk+IDxhIGhyZWY9IlNXSUcuaHRtbCNuMTAiPkEgZ2VuZXJhbCBpbnRlcmZhY2UgYnVpbGRpbmcgc3RyYXRlZ3k8L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IkxpYnJhcnkuaHRtbCI+NCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeTwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI24xIj5UaGUgJWluY2x1ZGUgZGlyZWN0aXZlPC9hPgotPGxpPiA8YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjIiPlRoZSAlZXh0ZXJuIGRpcmVjdGl2ZTwvYT4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI24zIj5UaGUgJWltcG9ydCBkaXJlY3RpdmU8L2E+Ci08bGk+IDxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuNCI+SW5jbHVkaW5nIGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmU8L2E+Ci08bGk+IDxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuNSI+VGhlIFNXSUcgbGlicmFyeTwvYT4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI242Ij5MaWJyYXJ5IGV4YW1wbGU8L2E+Ci08bGk+IDxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuNyI+Q3JlYXRpbmcgTGlicmFyeSBGaWxlczwvYT4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI244Ij5Xb3JraW5nIHdpdGggbGlicmFyeSBmaWxlczwvYT4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI245Ij5TdGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgbXVsdGlwbGUgbW9kdWxlczwvYT4KLTxsaT4gPGEgaHJlZj0iTGlicmFyeS5odG1sI24xMCI+TW9yZSBhYm91dCB0aGUgU1dJRyBsaWJyYXJ5PC9hPgotPC91bD4KLTxoMj48YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwiPjUgRG9jdW1lbnRhdGlvbiBTeXN0ZW08L2E+PC9oMj48cD48dWw+Ci08bGk+IDxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMSI+SW50cm9kdWN0aW9uPC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjIiPkhvdyBpdCB3b3JrczwvYT4KLTxsaT4gPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24zIj5DaG9vc2luZyBhIGRvY3VtZW50YXRpb24gZm9ybWF0PC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjQiPkZ1bmN0aW9uIHVzYWdlIGFuZCBhcmd1bWVudCBuYW1lczwvYT4KLTxsaT4gPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI241Ij5UaXRsZXMsIHNlY3Rpb25zLCBhbmQgc3Vic2VjdGlvbnM8L2E+Ci08bGk+IDxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuNiI+Rm9ybWF0dGluZzwvYT4KLTxsaT4gPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI243Ij5BZGRpbmcgQWRkaXRpb25hbCBUZXh0PC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjgiPkRpc2FibGluZyBhbGwgZG9jdW1lbnRhdGlvbjwvYT4KLTxsaT4gPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI245Ij5BbiBFeGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjEwIj5BU0NJSSBEb2N1bWVudGF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjExIj5IVE1MIERvY3VtZW50YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTIiPkxhVGVYIERvY3VtZW50YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTMiPkMrKyBTdXBwb3J0PC9hPgotPGxpPiA8YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjE0Ij5UaGUgRmluYWwgV29yZD88L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IlR5cGVtYXBzLmh0bWwiPjYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHM8L2E+PC9oMj48cD48dWw+Ci08bGk+IDxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjEiPkludHJvZHVjdGlvbjwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMiI+VGhlIFNXSUcgUG9pbnRlciBMaWJyYXJ5PC9hPgotPGxpPiA8YSBocmVmPSJUeXBlbWFwcy5odG1sI24zIj5JbnRyb2R1Y3Rpb24gdG8gdHlwZW1hcHM8L2E+Ci08bGk+IDxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjQiPk1hbmFnaW5nIGlucHV0IGFuZCBvdXRwdXQgcGFyYW1ldGVyczwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuNSI+QXBwbHlpbmcgY29uc3RyYWludHMgdG8gaW5wdXQgdmFsdWVzPC9hPgotPGxpPiA8YSBocmVmPSJUeXBlbWFwcy5odG1sI242Ij5Xcml0aW5nIG5ldyB0eXBlbWFwczwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuNyI+Q29tbW9uIHR5cGVtYXAgbWV0aG9kczwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuOCI+V3JpdGluZyB0eXBlbWFwIGNvZGU8L2E+Ci08bGk+IDxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjkiPlR5cGVtYXBzIGZvciBoYW5kbGluZyBhcnJheXM8L2E+Ci08bGk+IDxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjEwIj5UeXBlbWFwcyBhbmQgdGhlIFNXSUcgTGlicmFyeTwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTEiPkltcGxlbWVudGluZyBjb25zdHJhaW50cyB3aXRoIHR5cGVtYXBzPC9hPgotPGxpPiA8YSBocmVmPSJUeXBlbWFwcy5odG1sI24xMiI+VHlwZW1hcCBleGFtcGxlczwvYT4KLTxsaT4gPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTMiPkhvdyB0byBicmVhayBldmVyeXRoaW5nIHdpdGggYSB0eXBlbWFwPC9hPgotPGxpPiA8YSBocmVmPSJUeXBlbWFwcy5odG1sI24xNCI+VHlwZW1hcHMgYW5kIHRoZSBmdXR1cmU8L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IkV4Y2VwdGlvbnMuaHRtbCI+NyBFeGNlcHRpb24gSGFuZGxpbmc8L2E+PC9oMj48cD48dWw+Ci08bGk+IDxhIGhyZWY9IkV4Y2VwdGlvbnMuaHRtbCNuMSI+VGhlICVleGNlcHQgZGlyZWN0aXZlPC9hPgotPGxpPiA8YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjIiPkhhbmRsaW5nIGV4Y2VwdGlvbnMgaW4gQyBjb2RlPC9hPgotPGxpPiA8YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjMiPkV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIGxvbmdqbXAoKTwvYT4KLTxsaT4gPGEgaHJlZj0iRXhjZXB0aW9ucy5odG1sI240Ij5IYW5kbGluZyBDKysgZXhjZXB0aW9uczwvYT4KLTxsaT4gPGEgaHJlZj0iRXhjZXB0aW9ucy5odG1sI241Ij5EZWZpbmluZyBkaWZmZXJlbnQgZXhjZXB0aW9uIGhhbmRsZXJzPC9hPgotPGxpPiA8YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjYiPlVzaW5nIFRoZSBTV0lHIGV4Y2VwdGlvbiBsaWJyYXJ5PC9hPgotPGxpPiA8YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjciPkRlYnVnZ2luZyBhbmQgb3RoZXIgaW50ZXJlc3RpbmcgdXNlcyBmb3IgJWV4Y2VwdDwvYT4KLTxsaT4gPGEgaHJlZj0iRXhjZXB0aW9ucy5odG1sI244Ij5Nb3JlIEV4YW1wbGVzPC9hPgotPC91bD4KLTxoMj48YSBocmVmPSJQZXJsNS5odG1sIj44IFNXSUcgYW5kIFBlcmw1PC9hPjwvaDI+PHA+PHVsPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI24xIj5QcmVsaW1pbmFyaWVzPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI24yIj5CdWlsZGluZyBQZXJsIEV4dGVuc2lvbnMgdW5kZXIgV2luZG93cyA5NS9OVDwvYT4KLTxsaT4gPGEgaHJlZj0iUGVybDUuaHRtbCNuMyI+TW9kdWxlcywgcGFja2FnZXMsIGFuZCBjbGFzc2VzPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI240Ij5CYXNpYyBQZXJsIGludGVyZmFjZTwvYT4KLTxsaT4gPGEgaHJlZj0iUGVybDUuaHRtbCNuNSI+QSBzaW1wbGUgUGVybCBleGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI242Ij5BY2Nlc3NpbmcgYXJyYXlzIGFuZCBvdGhlciBzdHJhbmdlIG9iamVjdHM8L2E+Ci08bGk+IDxhIGhyZWY9IlBlcmw1Lmh0bWwjbjciPkltcGxlbWVudGluZyBtZXRob2RzIGluIFBlcmw8L2E+Ci08bGk+IDxhIGhyZWY9IlBlcmw1Lmh0bWwjbjgiPlNoYWRvdyBjbGFzc2VzPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI245Ij5HZXR0aW5nIHNlcmlvdXM8L2E+Ci08bGk+IDxhIGhyZWY9IlBlcmw1Lmh0bWwjbjEwIj5XcmFwcGluZyBDIGxpYnJhcmllcyBhbmQgb3RoZXIgcGFja2FnZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlBlcmw1Lmh0bWwjbjExIj5CdWlsZGluZyBhIFBlcmw1IGludGVyZmFjZSB0byBNQVRMQUI8L2E+Ci08bGk+IDxhIGhyZWY9IlBlcmw1Lmh0bWwjbjEyIj5IYW5kbGluZyBvdXRwdXQgdmFsdWVzICh0aGUgZWFzeSB3YXkpPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI24xMyI+RXhjZXB0aW9uIGhhbmRsaW5nPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI24xNCI+UmVtYXBwaW5nIGRhdGF0eXBlcyB3aXRoIHR5cGVtYXBzPC9hPgotPGxpPiA8YSBocmVmPSJQZXJsNS5odG1sI24xNSI+VGhlIGdvcnkgZGV0YWlscyBvbiBzaGFkb3cgY2xhc3NlczwvYT4KLTxsaT4gPGEgaHJlZj0iUGVybDUuaHRtbCNuMTYiPldoZXJlIHRvIGdvIGZyb20gaGVyZT88L2E+Ci08L3VsPgotPGgyPjxhIGhyZWY9IlB5dGhvbi5odG1sIj45IFNXSUcgYW5kIFB5dGhvbjwvYT48L2gyPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjEiPlByZWxpbWluYXJpZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI24yIj5CdWlsZGluZyBQeXRob24gRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9hPgotPGxpPiA8YSBocmVmPSJQeXRob24uaHRtbCNuMyI+VGhlIGxvdy1sZXZlbCBQeXRob24vQyBpbnRlcmZhY2U8L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI240Ij5QeXRob24gc2hhZG93IGNsYXNzZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI241Ij5BYm91dCB0aGUgRXhhbXBsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI242Ij5Tb2x2aW5nIGEgc2ltcGxlIGhlYXQtZXF1YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI243Ij5XcmFwcGluZyBhIEMgbGlicmFyeTwvYT4KLTxsaT4gPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjgiPlB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyPC9hPgotPGxpPiA8YSBocmVmPSJQeXRob24uaHRtbCNuOSI+RXhjZXB0aW9uIGhhbmRsaW5nPC9hPgotPGxpPiA8YSBocmVmPSJQeXRob24uaHRtbCNuMTAiPlJlbWFwcGluZyBDIGRhdGF0eXBlcyB3aXRoIHR5cGVtYXBzPC9hPgotPGxpPiA8YSBocmVmPSJQeXRob24uaHRtbCNuMTEiPkltcGxlbWVudGluZyBDIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbiBQeXRob248L2E+Ci08bGk+IDxhIGhyZWY9IlB5dGhvbi5odG1sI24xMiI+T3RoZXIgb2RkcyBhbmQgZW5kczwvYT4KLTxsaT4gPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjEzIj5UaGUgZ29yeSBkZXRhaWxzIG9mIHNoYWRvdyBjbGFzc2VzPC9hPgotPC91bD4KLTxoMj48YSBocmVmPSJUY2wuaHRtbCI+MTAgU1dJRyBhbmQgVGNsPC9hPjwvaDI+PHA+PHVsPgotPGxpPiA8YSBocmVmPSJUY2wuaHRtbCNuMSI+UHJlbGltaW5hcmllczwvYT4KLTxsaT4gPGEgaHJlZj0iVGNsLmh0bWwjbjIiPkJ1aWxkaW5nIFRjbC9UayBFeHRlbnNpb25zIHVuZGVyIFdpbmRvd3MgOTUvTlQ8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI24zIj5CYXNpYyBUY2wgSW50ZXJmYWNlPC9hPgotPGxpPiA8YSBocmVmPSJUY2wuaHRtbCNuNCI+VGhlIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2U8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI241Ij5BYm91dCB0aGUgZXhhbXBsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI242Ij5CaW5hcnkgdHJlZXMgaW4gVGNsPC9hPgotPGxpPiA8YSBocmVmPSJUY2wuaHRtbCNuNyI+QnVpbGRpbmcgQy9DKysgZGF0YSBzdHJ1Y3R1cmVzIHdpdGggVGs8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI244Ij5BY2Nlc3NpbmcgYXJyYXlzPC9hPgotPGxpPiA8YSBocmVmPSJUY2wuaHRtbCNuOSI+QnVpbGRpbmcgYSBzaW1wbGUgT3BlbkdMIG1vZHVsZTwvYT4KLTxsaT4gPGEgaHJlZj0iVGNsLmh0bWwjbjEwIj5FeGNlcHRpb24gaGFuZGxpbmc8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI24xMSI+VHlwZW1hcHM8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI24xMiI+Q29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHdpdGggU1dJRzwvYT4KLTxsaT4gPGEgaHJlZj0iVGNsLmh0bWwjbjEzIj5CdWlsZGluZyBuZXcga2luZHMgb2YgVGNsIGludGVyZmFjZXMgKGluIFRjbCk8L2E+Ci08bGk+IDxhIGhyZWY9IlRjbC5odG1sI24xNCI+RXh0ZW5kaW5nIHRoZSBUY2wgTmV0c2NhcGUgUGx1Z2luPC9hPgotPGxpPiA8YSBocmVmPSJUY2wuaHRtbCNuMTUiPlRjbDguMCBmZWF0dXJlczwvYT4KLTwvdWw+Ci08aDI+PGEgaHJlZj0iQWR2YW5jZWQuaHRtbCI+MTEgQWR2YW5jZWQgVG9waWNzPC9hPjwvaDI+PHA+PHVsPgotPGxpPiA8YSBocmVmPSJBZHZhbmNlZC5odG1sI24xIj5DcmVhdGluZyBtdWx0aS1tb2R1bGUgcGFja2FnZXM8L2E+Ci08bGk+IDxhIGhyZWY9IkFkdmFuY2VkLmh0bWwjbjIiPkR5bmFtaWMgTG9hZGluZyBvZiBDKysgbW9kdWxlczwvYT4KLTxsaT4gPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuMyI+SW5zaWRlIHRoZSBTV0lHIHR5cGUtY2hlY2tlcjwvYT4KLTwvdWw+Ci08aDI+PGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwiPjEyIEV4dGVuZGluZyBTV0lHPC9hPjwvaDI+PHA+PHVsPgotPGxpPiA8YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMSI+SW50cm9kdWN0aW9uPC9hPgotPGxpPiA8YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMiI+Q29tcGlsaW5nIGEgU1dJRyBleHRlbnNpb248L2E+Ci08bGk+IDxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24zIj5TV0lHIG91dHB1dDwvYT4KLTxsaT4gPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjQiPlRoZSBMYW5ndWFnZSBjbGFzcyAoc2ltcGxlIHZlcnNpb24pPC9hPgotPGxpPiA8YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNSI+QSB0b3VyIG9mIFNXSUcgZGF0YXR5cGVzPC9hPgotPGxpPiA8YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNiI+VHlwZW1hcHMgKGZyb20gQyk8L2E+Ci08bGk+IDxhIGhyZWY9IkV4dGVuZGluZy5odG1sI243Ij5GaWxlIG1hbmFnZW1lbnQ8L2E+Ci08bGk+IDxhIGhyZWY9IkV4dGVuZGluZy5odG1sI244Ij5OYW1pbmcgU2VydmljZXM8L2E+Ci08bGk+IDxhIGhyZWY9IkV4dGVuZGluZy5odG1sI245Ij5Db2RlIEdlbmVyYXRpb24gRnVuY3Rpb25zPC9hPgotPGxpPiA8YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTAiPldyaXRpbmcgYSBSZWFsIExhbmd1YWdlIE1vZHVsZTwvYT4KLTxsaT4gPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjExIj5DKysgUHJvY2Vzc2luZzwvYT4KLTxsaT4gPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjEyIj5Eb2N1bWVudGF0aW9uIFByb2Nlc3Npbmc8L2E+Ci08bGk+IDxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24xMyI+VGhlIEZ1dHVyZSBvZiBTV0lHPC9hPgotPC91bD4KLQotPHA+PGhyPgotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0NzoxOCAxOTk3IDwvYWRkcmVzcz4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0NvcHlyaWdodC5odG1sIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9Db3B5cmlnaHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRkODgyOC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0NvcHlyaWdodC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotPEhUTUw+Ci08SEVBRD4KLTx0aXRsZT4gU1dJRyBEb2N1bWVudGF0aW9uIENvcHlyaWdodDwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IEJHQ09MT1I9IiNGRkZGRkYiPgotPGgyPiBTV0lHIFVzZXJzIE1hbnVhbCA8L2gyPgotPGI+Ci1WZXJzaW9uIDEuMTxicj4KLUp1bmUsIDE5OTcgPGJyPgotPC9iPgotPHA+Ci1Db3B5cmlnaHQoQykgMTk5NiwgMTk5Nzxicj4KLUFsbCBSaWdodHMgUmVzZXJ2ZWQ8YnI+Ci08YnI+Ci1EYXZpZCBNLiBCZWF6bGV5PGJyPgotRGVwYXJ0bWVudCBvZiBDb21wdXRlciBTY2llbmNlIDxicj4KLVVuaXZlcnNpdHkgb2YgVXRhaCA8YnI+Ci1TYWx0IExha2UgQ2l0eSwgVXRhaCA4NDExMiA8L2JyPgotPHR0PmJlYXpsZXlAY3MudXRhaC5lZHU8L3R0PgotCi08cD4KLVRoaXMgZG9jdW1lbnQgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBpbiB3aG9sZSBvciBwYXJ0IHByb3ZpZGVkIHRoaXMKLWNvcHlyaWdodCBub3RpY2UgaXMgcmV0YWluZWQuICBDb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGRvY3VtZW50Ci1pcyBwcm9oaWJpdGVkIHdpdGhvdXQgdGhlIGV4cHJlc3Mgd3JpdHRlbiBjb25zZW50IG9mIHRoZSBhdXRob3IuCi0KLTxocj4KLVNXSUcgMS4xIGlzIENvcHlyaWdodCAoQykgMTk5NS0xOTk3IGJ5IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWggYW5kIHRoZQotVW5pdmVyaXR5IG9mIENhbGlmb3JuaWEgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZS4KLQotPHA+Ci1UaGlzIHNvZnR3YXJlIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWggYW5kIHRoZSBSZWdlbnRzCi1vZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgVGhlIGZvbGxvd2luZyB0ZXJtcyBhcHBseSB0byBhbGwKLWZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc29mdHdhcmUgdW5sZXNzIGV4cGxpY2l0bHkgZGlzY2xhaW1lZAotaW4gaW5kaXZpZHVhbCBmaWxlcy4KLQotPHA+Ci1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCB3aXRob3V0IHdyaXR0ZW4gYWdyZWVtZW50IGFuZCB3aXRob3V0Ci1saWNlbnNlIG9yIHJveWFsdHkgZmVlcywgdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMKLXNvZnR3YXJlIGFuZCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UsIHByb3ZpZGVkIHRoYXQgCi0oMSkgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoZSBmb2xsb3dpbmcgdHdvIHBhcmFncmFwaHMKLWFwcGVhciBpbiBhbGwgY29waWVzIG9mIHRoZSBzb3VyY2UgY29kZSBhbmQgKDIpIHJlZGlzdHJpYnV0aW9ucwotaW5jbHVkaW5nIGJpbmFyaWVzIHJlcHJvZHVjZXMgdGhlc2Ugbm90aWNlcyBpbiB0aGUgc3VwcG9ydGluZwotZG9jdW1lbnRhdGlvbi4gICBTdWJzdGFudGlhbCBtb2RpZmljYXRpb25zIHRvIHRoaXMgc29mdHdhcmUgbWF5IGJlCi1jb3B5cmlnaHRlZCBieSB0aGVpciBhdXRob3JzIGFuZCBuZWVkIG5vdCBmb2xsb3cgdGhlIGxpY2Vuc2luZyB0ZXJtcwotZGVzY3JpYmVkIGhlcmUsIHByb3ZpZGVkIHRoYXQgdGhlIG5ldyB0ZXJtcyBhcmUgY2xlYXJseSBpbmRpY2F0ZWQgaW4KLWFsbCBmaWxlcyB3aGVyZSB0aGV5IGFwcGx5LgotPHA+Ci1JTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SLCBUSEUgVU5JVkVSU0lUWSBPRiBDQUxJRk9STklBLCBUSEUgCi1VTklWRVJTSVRZIE9GIFVUQUggT1IgRElTVFJJQlVUT1JTIE9GIFRISVMgU09GVFdBUkUgQkUgTElBQkxFIFRPIEFOWQotUEFSVFkgRk9SIERJUkVDVCwgSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNFUVVFTlRJQUwKLURBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTiwKLUVWRU4gSUYgVEhFIEFVVEhPUlMgT1IgQU5ZIE9GIFRIRSBBQk9WRSBQQVJUSUVTIEhBVkUgQkVFTiBBRFZJU0VEIE9GCi1USEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLTxwPgotVEhFIEFVVEhPUiwgVEhFIFVOSVZFUlNJVFkgT0YgQ0FMSUZPUk5JQSwgQU5EIFRIRSBVTklWRVJTSVRZIE9GIFVUQUgKLVNQRUNJRklDQUxMWSBESVNDTEFJTSBBTlkgV0FSUkFOVElFUyxJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgCi1USEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi1QVVJQT1NFLiBUSEUgU09GVFdBUkUgUFJPVklERUQgSEVSRVVOREVSIElTIE9OIEFOICJBUyBJUyIgQkFTSVMsIEFORCAKLVRIRSBBVVRIT1JTIEFORCBESVNUUklCVVRPUlMgSEFWRSBOTyBPQkxJR0FUSU9OIFRPIFBST1ZJREUgTUFJTlRFTkFOQ0UsCi1TVVBQT1JULCBVUERBVEVTLCBFTkhBTkNFTUVOVFMsIE9SIE1PRElGSUNBVElPTlMuCi0KLTxocj4KLTxhZGRyZXNzPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudXRhaC5lZHUvfmJlYXpsZXkiPiBiZWF6bGV5QGNzLnV0YWguZWR1IDwvYT4gPGJyPgotTGFzdCBNb2RpZmllZCwgQXVndXN0IDMsIDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9Eb2N1bWVudGF0aW9uLmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0RvY3VtZW50YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdlODM2Zi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0RvY3VtZW50YXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1MiArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkRvY3VtZW50YXRpb24gU3lzdGVtPC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08YSBuYW1lPSJuMCI+PC9hPjxoMT41IERvY3VtZW50YXRpb24gU3lzdGVtPC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+SW50cm9kdWN0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjIiPkhvdyBpdCB3b3JrczwvYT4KLTxsaT4gPGEgaHJlZj0iI24zIj5DaG9vc2luZyBhIGRvY3VtZW50YXRpb24gZm9ybWF0PC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPkZ1bmN0aW9uIHVzYWdlIGFuZCBhcmd1bWVudCBuYW1lczwvYT4KLTxsaT4gPGEgaHJlZj0iI241Ij5UaXRsZXMsIHNlY3Rpb25zLCBhbmQgc3Vic2VjdGlvbnM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNiI+Rm9ybWF0dGluZzwvYT4KLTxsaT4gPGEgaHJlZj0iI243Ij5BZGRpbmcgQWRkaXRpb25hbCBUZXh0PC9hPgotPGxpPiA8YSBocmVmPSIjbjgiPkRpc2FibGluZyBhbGwgZG9jdW1lbnRhdGlvbjwvYT4KLTxsaT4gPGEgaHJlZj0iI245Ij5BbiBFeGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSIjbjEwIj5BU0NJSSBEb2N1bWVudGF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjExIj5IVE1MIERvY3VtZW50YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTIiPkxhVGVYIERvY3VtZW50YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTMiPkMrKyBTdXBwb3J0PC9hPgotPGxpPiA8YSBocmVmPSIjbjE0Ij5UaGUgRmluYWwgV29yZD88L2E+Ci08L3VsPgotCi08YSBuYW1lPSJuMSI+PC9hPjxoMj4gSW50cm9kdWN0aW9uPC9oMj4KLVdoaWxlIFNXSUcgbWFrZXMgaXQgZWFzeSB0byBidWlsZCBpbnRlcmZhY2VzLCBpdCBpcyBvZnRlbiBkaWZmaWN1bHQgdG8ga2VlcCB0cmFjayBvZiBhbGwgb2YgdGhlIGRpZmZlcmVudCBmdW5jdGlvbnMsIHZhcmlhYmxlcywgY29uc3RhbnRzLCBhbmQgb3RoZXIgb2JqZWN0cyB0aGF0IGhhdmUgYmVlbiB3cmFwcGVkLiBUaGlzIGVzcGVjaWFsbHkgYmVjb21lcyBhIHByb2JsZW0gd2hlbiB5b3VyIGludGVyZmFjZSBzdGFydHMgdG8gZ3JvdyBpbiBzaXplIGZyb20gYSBoYW5kZnVsIHRvIHNldmVyYWwgaHVuZHJlZCBmdW5jdGlvbnMuIFRvIGFkZHJlc3MgdGhlc2UgY29uY2VybnMsIFNXSUcgY2FuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBpbiBhIG51bWJlciBvZiBmb3JtYXRzIGluY2x1ZGluZyBBU0NJSSwgSFRNTCwgYW5kIExhVGVYLiBUaGUgZ29hbCBpcyB0aGF0IHlvdSBjb3VsZCBsb29rIGF0IHRoZSBkb2N1bWVudGF0aW9uIGZpbGUgdG8gc2VlIHdoYXQgZnVuY3Rpb25zIHdlcmUgd3JhcHBlZCBhbmQgaG93IHRoZXkgYXJlIHVzZWQgaW4gdGhlIHRhcmdldCBzY3JpcHRpbmcgbGFuZ3VhZ2UuPHA+Ci08cD4KLVVzYWdlIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkIGZvciBlYWNoIGRlY2xhcmF0aW9uIGZvdW5kIGluIGFuIGludGVyZmFjZSBmaWxlLiBUaGlzIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkIGJ5IHRoZSB0YXJnZXQgbGFuZ3VhZ2UgbW9kdWxlIHNvIHRoZSBUY2wgbW9kdWxlIHdpbGwgZm9sbG93IFRjbCBzeW50YXgsIHRoZSBQZXJsIG1vZHVsZSB3aWxsIHVzZSBQZXJsIHN5bnRheCwgYW5kIHNvIG9uLiBJbiBhZGRpdGlvbiwgQy9DKysgY29tbWVudHMgY2FuIGJlIHVzZWQgdG8gYWRkIGRlc2NyaXB0aXZlIHRleHQgdG8gZWFjaCBmdW5jdGlvbi4gQ29tbWVudHMgY2FuIGJlIHByb2Nlc3NlZCBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgc3R5bGVzIHRvIHN1aXQgcGVyc29uYWwgcHJlZmVyZW5jZXMgb3IgdG8gbWF0Y2ggdGhlIHN0eWxlIHVzZWQgaW4gYSBwYXJ0aWN1bGFyIGlucHV0IGZpbGUuPHA+Ci08cD4KLUF1dG9tYXRpYyBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gZm9yIEMvQysrIHByb2dyYW1zIGlzIGEgZmFpcmx5IGZvcm1pZGFibGUgcHJvYmxlbSBhbmQgU1dJRyB3YXMgbmV2ZXIgaW50ZW5kZWQgdG8gYmUgYSBzdWJzdGl0dXRlIGZvciBhIGZ1bGwtYmxvd24gZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IuIEhvd2V2ZXIsIEkgZmVlbCB0aGF0IGlzIGRvZXMgYSByZWFzb25hYmxlIGpvYiBvZiAgZG9jdW1lbnRpbmcgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZXMuIEl0IHNlZW1zIHRvIGRvIGp1c3QgZmluZSBmb3IgbWFueSBvZiBTV0lHJ3MgcHJpbWFyeSBhcHBsaWNhdGlvbnMtLXJhcGlkIHByb3RvdHlwaW5nLCBkZWJ1Z2dpbmcsIGFuZCBkZXZlbG9wbWVudC48cD4KLTxhIG5hbWU9Im4yIj48L2E+PGgyPiBIb3cgaXQgd29ya3M8L2gyPgotRm9yIGVhY2ggZGVjbGFyYXRpb24gaW4gYW4gaW50ZXJmYWNlIGZpbGUsIFNXSUcgY3JlYXRlcyBhICJEb2N1bWVudGF0aW9uIEVudHJ5LiIgVGhpcyBlbnRyeSBjb250YWlucyB0aHJlZSBjb21wb25lbnRzOyAoMSkgYSB1c2FnZSBzdHJpbmcsICgyKSBhIEMgaW5mb3JtYXRpb24gc3RyaW5nLCBhbmQgKDMpIGRlc2NyaXB0aXZlIHRleHQuIEZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSBoYXZlIHRoaXMgZGVjbGFyYXRpb24gaW4gYW4gaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludCBmYWN0KGludCBuKTsKLS8qIFRoaXMgZnVuY3Rpb24gY29tcHV0ZXMgYSBmYWN0b3JpYWwgKi8KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGRvY3VtZW50YXRpb24gZW50cnkgcHJvZHVjZWQgYnkgdGhlIFNXSUcgQVNDSUkgbW9kdWxlIHdpbGwgbG9vayBsaWtlIHRoaXMgZm9yIFRjbDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5mYWN0IG4KLQlbIHJldHVybnMgaW50IF0KLQlUaGlzIGZ1bmN0aW9uIGNvbXB1dGVzIGEgZmFjdG9yaWFsCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBmaXJzdCBsaW5lIHNob3dzIGhvdyB0byBjYWxsIHRoZSBmdW5jdGlvbiwgdGhlIHNlY29uZCBsaW5lIHNob3dzIHNvbWUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZnVuY3Rpb24gKHJlbGF0ZWQgdG8gaXRzIEMgaW1wbGVtZW50YXRpb24pLCB3aGlsZSB0aGUgdGhpcmQgbGluZSBjb250YWlucyB0aGUgY29tbWVudCB0ZXh0LiBUaGUgZmlyc3QgdHdvIGxpbmVzIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBTV0lHIGFuZCBtYXkgYmUgZGlmZmVyZW50IGZvciBlYWNoIGxhbmd1YWdlIG1vZHVsZS4gRm9yIGV4YW1wbGUsIHRoZSBQZXJsNSBtb2R1bGUgd291bGQgZ2VuZXJhdGUgdGhlIGZvbGxvd2luZyBvdXRwdXQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmZhY3QoJG4pCi0JWyByZXR1cm5zIGludCBdCi0JVGhpcyBmdW5jdGlvbiBjb21wdXRlcyBhIGZhY3RvcmlhbAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU9mIGNvdXJzZSwgdGhpcyBpcyBvbmx5IGEgc2ltcGxlIGV4YW1wbGUsIG1vcmUgc29waGlzdGljYXRlZCB0aGluZ3MgYXJlIHBvc3NpYmxlLjxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IENob29zaW5nIGEgZG9jdW1lbnRhdGlvbiBmb3JtYXQ8L2gyPgotVGhlIHR5cGUgb2YgZG9jdW1lbnRhdGlvbiBpcyBzZWxlY3RlZCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZSBvcHRpb25zIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0tZGFzY2lpCQkJUHJvZHVjZSBBU0NJSSBkb2N1bWVudGF0aW9uCi0tZGh0bWwJCQlQcm9kdWNlIEhUTUwgZG9jdW1lbnRhdGlvbgotLWRsYXRleAkJCVByb2R1Y2UgTGFUZVggZG9jdW1lbnRhdGlvbgotLWRub25lCQkJUHJvZHVjZSBubyBkb2N1bWVudGF0aW9uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSB2YXJpb3VzIGRvY3VtZW50YXRpb24gbW9kdWxlcyBhcmUgaW1wbGVtZW50ZWQgaW4gYSBtYW5uZXIgc2ltaWxhciB0byBsYW5ndWFnZSBtb2R1bGVzIHNvIHRoZSBleGFjdCBjaG9pY2UgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlLiBXaXRoIGEgbGl0dGxlIEMrKyBoYWNraW5nLCBpdCBpcyBhbHNvIHBvc3NpYmxlIGZvciB5b3UgdG8gYWRkIHlvdXIgb3duIG1vZHVsZXMgdG8gU1dJRy4gRm9yIGV4YW1wbGUsIHdpdGggYSBiaXQgb2Ygd29yayB5b3UgY291bGQgdHVybiBhbGwgb2YgdGhlIGRvY3VtZW50YXRpb24gaW50byBhbiBvbmxpbmUgaGVscCBjb21tYW5kIGluIHlvdXIgc2NyaXB0aW5nIGxhbmd1YWdlLiA8cD4KLTxhIG5hbWU9Im40Ij48L2E+PGgyPiBGdW5jdGlvbiB1c2FnZSBhbmQgYXJndW1lbnQgbmFtZXM8L2gyPgotVGhlIGZ1bmN0aW9uIHVzYWdlIHN0cmluZyBpcyBwcm9kdWNlZCB0byBtYXRjaCB0aGUgZGVjbGFyYXRpb24gZ2l2ZW4gaW4gdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUuIFRoZSBuYW1lcyBvZiBhcmd1bWVudHMgY2FuIGJlIHNwZWNpZmllZCBieSB1c2luZyBhcmd1bWVudCBuYW1lcy4gRm9yIGV4YW1wbGUsIHRoZSBkZWNsYXJhdGlvbnM8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGluc2VydF9pdGVtKExpc3QgKiwgY2hhciAqKTsKLWNoYXIgKmxvb2t1cF9pdGVtKGNoYXIgKm5hbWUpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci13aWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyBkb2N1bWVudGF0aW9uIChmb3IgUHl0aG9uKSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aW5zZXJ0X2l0ZW0oTGlzdCAqLCBjaGFyICopCi0JWyByZXR1cm5zIHZvaWQgXQotCi1sb29rdXBfaXRlbShuYW1lKQotCVsgcmV0dXJucyBjaGFyICogXQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIGFyZ3VtZW50IG5hbWVzIGFyZSBvbWl0dGVkLCBTV0lHIHdpbGwgdXNlIHRoZSBDIGRhdGF0eXBlcyBvZiB0aGUgYXJndW1lbnRzIGluIHRoZSBkb2N1bWVudGF0aW9uLiAgIElmIGFuIGFyZ3VtZW50IG5hbWUgaXMgc3BlY2lmaWVkLCBTV0lHIHdpbGwgdXNlIHRoYXQgaW4gdGhlIGRvY3VtZW50YXRpb24gaW5zdGVhZC4gIE9mIGNvdXJzZSwgaXQgaXMgdXAgdG8gZWFjaCBsYW5ndWFnZSBtb2R1bGUgdG8gY3JlYXRlIGFuIGFwcHJvcHJpYXRlIHVzYWdlIHN0cmluZyBzbyB5b3VyIHJlc3VsdHMgbWF5IHZhcnkgZGVwZW5kaW5nIG9uIGhvdyB0aGluZ3MgaGF2ZSBiZWVuIGltcGxlbWVudGVkIGluIGVhY2ggbW9kdWxlLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IFRpdGxlcywgc2VjdGlvbnMsIGFuZCBzdWJzZWN0aW9uczwvaDI+Ci1UaGUgU1dJRyBkb2N1bWVudGF0aW9uIHN5c3RlbSBpcyBoaWVyYXJjaGljYWwgaW4gbmF0dXJlIGFuZCBpcyBvcmdhbml6ZWQgaW50byBhIGNvbGxlY3Rpb24gb2Ygc2VjdGlvbnMsIHN1YnNlY3Rpb25zLCBzdWJzdWJzZWN0aW9ucywgYW5kIHNvIG9uLiBUaGUgZm9sbG93aW5nIFNXSUcgZGlyZWN0aXZlcyBjYW4gYmUgdXNlZCB0byBvcmdhbml6ZSBhbiBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTx1bD4KLTxsaT48dHQ+JXRpdGxlICJUaXRsZSBUZXh0IjwvdHQ+LiBTZXQgdGhlIGRvY3VtZW50YXRpb24gdGl0bGUgKG1heSBvbmx5IGJlIHVzZWQgb25jZSkKLTxsaT48dHQ+JXNlY3Rpb24gIlNlY3Rpb24gdGl0bGUiPC90dD4uIFN0YXJ0IGEgbmV3IHNlY3Rpb24uCi08bGk+PHR0PiVzdWJzZWN0aW9uICJTdWJzZWN0aW9uIHRpdGxlIjwvdHQ+LiBDcmVhdGUgYSBuZXcgc3Vic2VjdGlvbi4KLTxsaT48dHQ+JXN1YnN1YnNlY3Rpb24gIlN1YnN1YnNlY3Rpb24gdGl0bGUiPC90dD4uIENyZWF0ZSBhIG5ldyBzdWJzdWJzZWN0aW9uLgotPC91bD4KLTxwPgotVGhlIDx0dD4ldGl0bGU8L3R0PiBkaXJlY3RpdmUgc2hvdWxkIGJlIHBsYWNlZCBwcmlvciB0byB0aGUgZmlyc3QgZGVjbGFyYXRpb24gaW4gYW4gaW50ZXJmYWNlIGZpbGUgYW5kIG1heSBvbmx5IGJlIHVzZWQgb25jZSAoc3Vic2VxdWVudCBvY2N1cnJlbmNlcyB3aWxsIHNpbXBseSBiZSBpZ25vcmVkKS4gVGhlIHNlY3Rpb24gZGlyZWN0aXZlcyBtYXkgYmUgcGxhY2VkIGFueXdoZXJlLiBIb3dldmVyLCA8dHQ+JXN1YnNlY3Rpb248L3R0PiBjYW4gb25seSBiZSB1c2VkIGFmdGVyIGEgPHR0PiVzZWN0aW9uPC90dD4gZGlyZWN0aXZlIGFuZCA8dHQ+JXN1YnN1YnNlY3Rpb248L3R0PiBjYW4gb25seSBiZSB1c2VkIGFmdGVyIGEgPHR0PiVzdWJzZWN0aW9uPC90dD4gZGlyZWN0aXZlLjxwPgotPHA+Ci1XaXRoIHRoZSBvcmdhbml6YXRpb24gZGlyZWN0aXZlcywgYSBTV0lHIGludGVyZmFjZSBmaWxlIGxvb2tzIHNvbWV0aGluZyBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0aXRsZSAiRXhhbXBsZSBJbnRlcmZhY2UgRmlsZSIKLSVtb2R1bGUgZXhhbXBsZQotJXsKLSNpbmNsdWRlICJteV9oZWFkZXIuaCIKLSV9Ci0KLSVzZWN0aW9uICJNYXRoZW1hdGljYWwgRnVuY3Rpb25zIgotCi0uLi4gZGVjbGFyYXRpb25zIC4uLgotCi0lc2VjdGlvbiAiR3JhcGhpY3MiCi0lc3Vic2VjdGlvbiAiMkQgUGxvdHRpbmciCi0uLi4gRGVjbGFyYXRpb25zIC4uLgotJXN1YnNlY3Rpb24gIjNEIFBsb3R0aW5nIgotJXN1YnN1YnNlY3Rpb24gIlZpZXdpbmcgdHJhbnNmb3JtYXRpb25zIgotLi4uIERlY2xhcmF0aW9ucyAuLi4KLSVzdWJzdWJzZWN0aW9uICJMaWdodGluZyIKLS4uLiBEZWNsYXJhdGlvbnMgLi4uCi0lc3Vic3Vic2VjdGlvbiAiUHJpbWl0aXZlcyIKLS4uLiBEZWNsYXJhdGlvbnMgLi4uCi0KLSVzZWN0aW9uICJGaWxlIEkvTyIKLQotLi4uIERlY2xhcmF0aW9ucyAuLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im42Ij48L2E+PGgyPiBGb3JtYXR0aW5nPC9oMj4KLURvY3VtZW50YXRpb24gdGV4dCBjYW4gYmUgc29ydGVkLCBjaG9wcGVkLCBzbGljZWQsIGFuZCBkaWNlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy4gRm9ybWF0dGluZyBpbmZvcm1hdGlvbiBpcyBzcGVjaWZpZWQgdXNpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBwYXJhbWV0ZXJzIGFmdGVyIHRoZSA8dHQ+JXRpdGxlPC90dD4sIDx0dD4lc2VjdGlvbjwvdHQ+LCA8dHQ+JXN1YnNlY3Rpb248L3R0Piwgb3IgPHR0PiVzdWJzdWJzZWN0aW9uPC90dD4gZGlyZWN0aXZlcy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0aXRsZSAiTXkgRG9jdW1lbnRhdGlvbiIsIHNvcnQsIGJlZm9yZSwgcHJlCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgdGVsbHMgU1dJRyB0byBzb3J0IGFsbCBvZiB0aGUgZG9jdW1lbnRhdGlvbiwgdXNlIGNvbW1lbnRzIHRoYXQgYXJlIGJlZm9yZSBlYWNoIGRlY2xhcmF0aW9uLCBhbmQgYXNzdW1lIHRoYXQgdGV4dCBpcyBwcmVmb3JtYXR0ZWQuIFRoZXNlIGZvcm1hdHRpbmcgZGlyZWN0aXZlcyBhcmUgYXBwbGllZCB0byBhbGwgY2hpbGRyZW4gaW4gdGhlIGRvY3VtZW50YXRpb24gdHJlZS0taW4gdGhpcyBjYXNlLCBldmVyeXRoaW5nIGluIGFuIGludGVyZmFjZSBmaWxlLjxwPgotPHA+Ci1JZiBmb3JtYXR0aW5nIGluZm9ybWF0aW9uIGlzIHNwZWNpZmllZCBmb3IgYSBzZWN0aW9uIGxpa2UgdGhpczxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVzdWJzZWN0aW9uICIzRCBHcmFwaGljcyIsIG5vc29ydCwgYWZ0ZXIKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotdGhlbiB0aGUgZWZmZWN0IHdpbGwgb25seSBhcHBseSB0byB0aGF0IHBhcnRpY3VsYXIgc2VjdGlvbiAoYW5kIGFsbCBvZiBpdHMgc3Vic2VjdGlvbnMpLiBJbiB0aGlzIGNhc2UsIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBzdWJzZWN0aW9uIHdvdWxkIG92ZXJyaWRlIGFueSBwcmV2aW91cyBmb3JtYXR0aW5nLCBidXQgdGhlc2UgY2hhbmdlcyB3b3VsZCBvbmx5IGFwcGx5IHRvIHRoaXMgc3Vic2VjdGlvbi4gVGhlIG5leHQgc3Vic2VjdGlvbiBjb3VsZCB1c2UgaXRzIG93biBmb3JtYXR0aW5nIG9yIHRoYXQgb2YgaXRzIHBhcmVudC48cD4KLTxwPgotU3R5bGUgcGFyYW1ldGVycyBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgdXNpbmcgdGhlIDx0dD4lc3R5bGU8L3R0PiBhbmQgPHR0PiVsb2NhbHN0eWxlPC90dD4gcGFyYW1ldGVycy4gVGhlIDx0dD4lc3R5bGU8L3R0PiBkaXJlY3RpdmUgYXBwbGllcyBhIG5ldyBmb3JtYXQgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbiBhbmQgYWxsIG9mIGl0cyBwYXJlbnRzLiBUaGUgPHR0PiVsb2NhbHN0eWxlPC90dD4gZGlyZWN0aXZlIGFwcGxpZXMgYSBuZXcgZm9ybWF0IHRvIHRoZSBjdXJyZW50IHNlY3Rpb24uIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lc3R5bGUgc29ydCxiZWZvcmUsIHNraXA9MSAgICAgICMgQXBwbHkgdGhlc2UgZm9ybWF0cyBldmVyeXdoZXJlCi0lbG9jYWxzdHlsZSBzb3J0ICAgICAgICAgICAgICAgICMgQXBwbHkgdGhpcyBmb3JtYXQgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Vc2Ugb2YgdGhlc2UgZGlyZWN0aXZlcyB1c3VhbGx5IGlzbid0IHJlcXVpcmVkIHNpbmNlIGl0J3MgZWFzeSBlbm91Z2ggdG8gc2ltcGx5IHNwZWNpZnkgdGhlIGluZm9ybWF0aW9uIGFmdGVyIGVhY2ggc2VjdGlvbi48cD4KLTxhIG5hbWU9Im4xNSI+PC9hPjxoMz4gRGVmYXVsdCBGb3JtYXR0aW5nPC9oMz4KLUJ5IGRlZmF1bHQsIFNXSUcgd2lsbCByZWZvcm1hdCBjb21tZW50IHRleHQsIHByb2R1Y2UgZG9jdW1lbnRhdGlvbiBpbiB0aGUgb3JkZXIgZW5jb3VudGVyZWQgaW4gYW4gaW50ZXJmYWNlIGZpbGUgKG5vc29ydCksIGFuZCBhbm5vdGF0ZSBkZXNjcmlwdGlvbnMgd2l0aCBhIEMgaW5mb3JtYXRpb24gc3RyaW5nLiAgIFRoaXMgYmVoYXZpb3IgbW9zdCBjbG9zZWx5IG1hdGNoZXMgdGhhdCB1c2VkIGluIFNXSUcgMS4wLCBhbHRob3VnaCBpdCBpcyBub3QgYW4gZXhhY3QgbWF0Y2ggZHVlIHRvIGRpZmZlcmVuY2VzIGluIHRoZSBvbGQgZG9jdW1lbnRhdGlvbiBzeXN0ZW0uPHA+Ci08cD4KLVdoZW4gdXNlZCBpbiB0aGUgZGVmYXVsdCBtb2RlLCBjb21tZW50IHRleHQgbWF5IGNvbnRhaW4gZG9jdW1lbnRhdGlvbiBzcGVjaWZpYyBmb3JtYXR0aW5nIG1hcmt1cC4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBlbWJlZCBMYVRlWCBvciBIVE1MIG1hcmt1cCBpbiBjb21tZW50cyB0byBoYXZlIHByZWNpc2UgY29udHJvbCBvdmVyIHRoZSBsb29rIG9mIHRoZSBmaW5hbCBkb2N1bWVudC48cD4KLTxhIG5hbWU9Im4xNiI+PC9hPjxoMz4gQ29tbWVudCBGb3JtYXR0aW5nIHZhcmlhYmxlczwvaDM+Ci1UaGUgZGVmYXVsdCBmb3JtYXR0aW5nIGNhbiBiZSBjaGFuZ2VkIGJ5IGNoYW5naW5nIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0dGluZyB2YXJpYWJsZXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWFmdGVyICAgICAgICAgICAgICAgICBVc2UgY29tbWVudHMgYWZ0ZXIgYSBkZWNsYXJhdGlvbiAoZGVmYXVsdCkKLWJlZm9yZSAgICAgICAgICAgICAgICBVc2UgY29tbWVudHMgYmVmb3JlIGEgZGVjbGFyYXRpb24KLWNob3BfdG9wPW5saW5lcyAgICAgICBDb21tZW50IGNob3BwaW5nIChwcmVmb3JtYXR0ZWQpCi1jaG9wX2JvdHRvbT1ubGluZXMgICAgQ29tbWVudCBjaG9wcGluZyAocHJlZm9ybWF0dGVkKQotY2hvcF9sZWZ0PW5jaGFyICAgICAgIENvbW1lbnQgY2hvcHBpbmcgKHByZWZvcm1hdHRlZCkKLWNob3BfcmlnaHQ9bmNoYXIgICAgICBDb21tZW50IGNob3BwaW5nIChwcmVmb3JtYXR0ZWQpCi1mb3JtYXQgICAgICAgICAgICAgICAgQWxsb3cgU1dJRyB0byByZWZvcm1hdCB0ZXh0ICh0aGUgZGVmYXVsdCkKLWlnbm9yZSAgICAgICAgICAgICAgICBJZ25vcmUgY29tbWVudHMKLWluZm8gICAgICAgICAgICAgICAgICBQcmludCBDIGluZm9ybWF0aW9uIHRleHQgKGRlZmF1bHQpCi1rZWVwICAgICAgICAgICAgICAgICAgS2VlcCBjb21tZW50cyAob3Bwb3NpdGUgb2YgaWdub3JlKQotbm9pbmZvICAgICAgICAgICAgICAgIERvbid0IHByaW50IEMgaW5mb3JtYXRpb24gdGV4dAotbm9zb3J0ICAgICAgICAgICAgICAgIERvbid0IHNvcnQgZG9jdW1lbnRhdGlvbiAoZGVmYXVsdCkKLXByZSAgICAgICAgICAgICAgICAgICBBc3N1bWUgdGV4dCBpcyBwcmVmb3JtYXR0ZWQKLXNraXA9bmxpbmVzICAgICAgICAgICBOdW1iZXIgb2YgYmxhbmsgbGluZXMgYmV0d2VlbiBjb21tZW50IGFuZCBkZWNsYXJhdGlvbgotc29ydCAgICAgICAgICAgICAgICAgIFNvcnQgZG9jdW1lbnRhdGlvbgotdGFiaWZ5ICAgICAgICAgICAgICAgIExlYXZlIHRhYnMgaW50YWN0Ci11bnRhYmlmeSAgICAgICAgICAgICAgQ29udmVydCB0YWJzIHRvIHNwYWNlcyAoZGVmYXVsdCkKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTW9yZSB2YXJpYWJsZXMgbWF5IGJlIGF2YWlsYWJsZSBkZXBlbmRpbmcgb24gcGFydGljdWxhciBkb2N1bWVudGF0aW9uIG1vZHVsZXMuIFRoZSB1c2Ugb2YgdGhlc2UgdmFyaWFibGVzIGlzIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCBmZXcgc2VjdGlvbnMuPHA+Ci08YSBuYW1lPSJuMTciPjwvYT48aDM+IFNvcnRpbmcgPC9oMz4KLURvY3VtZW50YXRpb24gY2FuIGJlIHNvcnRlZCB1c2luZyB0aGUgYDx0dD5zb3J0PC90dD4nIHBhcmFtZXRlci4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0aXRsZSAiTXkgaW50ZXJmYWNlIixzb3J0Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdoZW4gdXNlZCwgYWxsIGRvY3VtZW50YXRpb24gZW50cmllcywgaW5jbHVkaW5nIHNlY3Rpb25zIHdpbGwgYmUgYWxwaGFiZXRpY2FsbHkgc29ydGVkLiBTb3J0aW5nIGNhbiBiZSBkaXNhYmxlZCBpbiBwYXJ0aWN1bGFyIHNlY3Rpb25zIGFuZCBzdWJzZWN0aW9uIGJ5IHNwZWNpZnlpbmcgdGhlIGA8dHQ+bm9zb3J0PC90dD4nIHBhcmFtZXRlciBpbiBhIHNlY3Rpb24gZGVjbGFyYXRpb24uIEJ5IGRlZmF1bHQsIFNXSUcgZG9lcyBub3Qgc29ydCBkb2N1bWVudGF0aW9uLiBBcyBhIGdlbmVyYWwgcnVsZSwgaXQgcmVhbGx5IG9ubHkgY29tZXMgaW4gaGFuZHkgaWYgeW91IGhhdmUgYSByZWFsbHkgbWVzc3kgaW50ZXJmYWNlIGZpbGUuPHA+Ci08cD4KLUZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YgU1dJRywgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmVzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgc29ydGluZy4gPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWFscGhhIAkJU29ydCBkb2N1bWVudGF0aW9uIGFscGhhYmV0aWNhbGx5IChvYnNvbGV0ZSkKLSVyYXcJCUtlZXAgZG9jdW1lbnRhdGlvbiBpbiBvcmRlciAob2Jzb2xldGUpCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZXNlIGRpcmVjdGl2ZXMgb25seSBhcHBseSBnbG9iYWxseSBhbmQgc2hvdWxkIG5lYXIgdGhlIGJlZ2lubmluZyBvZiBmaWxlLiBGdXR1cmUgc3VwcG9ydCBvZiB0aGVzZSBkaXJlY3RpdmVzIGlzIG5vdCBndWFyYW50ZWVkIGFuZCBnZW5lcmFsbHkgZGlzY291cmFnZWQuPHA+Ci08YSBuYW1lPSJuMTgiPjwvYT48aDM+IENvbW1lbnQgcGxhY2VtZW50IGFuZCBmb3JtYXR0aW5nPC9oMz4KLUNvbW1lbnRzIG1heSBiZSBwbGFjZWQgYmVmb3JlIG9yIGFmdGVyIGEgZGVjbGFyYXRpb24uIFRoaXMgaXMgc3BlY2lmaWVkIHVzaW5nIHRoZSBgPHR0PmJlZm9yZTwvdHQ+JyBhbmQgYDx0dD5hZnRlcjwvdHQ+JyBwYXJhbWV0ZXJzLiAgICBUaGUgc3BhY2UgYmV0d2VlbiBhIGNvbW1lbnQgYW5kIGEgZGVjbGFyYXRpb24gY2FuIGJlIHNldCBieSBjaGFuZ2luZyB0aGUgYDx0dD5za2lwPC90dD4nIHBhcmFtZXRlci4gIEJ5IGRlZmF1bHQsIDx0dD5za2lwPTE8L3R0PiwgaW5kaWNhdGluZyB0aGF0IGEgY29tbWVudCBhbmQgZGVjbGFyYXRpb24gbXVzdCBiZSBvbiBhZGphY2VudCBsaW5lcy4gICAgVXNlIG9mIHRoZSA8dHQ+c2tpcDwvdHQ+IHBhcmFtZXRlciBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIHRvIGlnbm9yZSBjb21tZW50cyB0aGF0IGFyZSB0b28gZmFyIGF3YXkgYW5kIHBvc3NpYmx5IHVucmVsYXRlZCB0byBhIGRlY2xhcmF0aW9uLjxwPgotPHA+Ci1CeSBkZWZhdWx0LCBTV0lHIHJlZm9ybWF0cyB0aGUgdGV4dCBmb3VuZCBpbiBhIGNvbW1lbnQuICAgSG93ZXZlciwgaW4gbWFueSBjYXNlcywgeW91ciBmaWxlIG1heSBoYXZlIHByZWZvcm1hdHRlZCBjb21tZW50cyBvciBjb21tZW50IGJsb2Nrcy4gICBUbyBoYW5kbGUgc3VjaCBjb21tZW50cyBjb3JyZWN0bHksIHlvdSBjYW4gdXNlIHByZWZvcm1hdHRlZCBtb2RlLiAgVGhpcyBpcyBzcGVjaWZpZWQgdXNpbmcgdGhlIGBwcmUnIHBhcmFtZXRlciBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lc2VjdGlvbiAiUHJlZm9ybWF0dGVkIFNlY3Rpb24iLHByZQotJXNlY3Rpb24gIlJlZm9ybWF0dGVkIFNlY3Rpb24iLCBmb3JtYXQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQWxsIGRlY2xhcmF0aW9ucyBpbiB0aGlzIHNlY3Rpb24gd2lsbCBub3cgYmUgYXNzdW1lZCB0byBoYXZlIHByZWZvcm1hdHRlZCBjb21tZW50cy4gICBXaGVuIHVzaW5nIHRoZSBwcmVmb3JtYXQgbW9kZSwgYSB2YXJpZXR5IG9mIG90aGVyIHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZSBhcyBzaG93biBpbiB0aGUgZm9sbG93aW5nIGRpYWdyYW0gOjxwPgotPGNlbnRlcj48aW1nIHNyYz0iY2g1LjEucG5nIj48L2NlbnRlcj4KLQotLjxwPgotPHA+Ci1UaGUgY2hvcHBpbmcgcGFyYW1ldGVycyBjYW4gYmUgdXNlZCB0byBzdHJpcCBvdXQgdGhlIHRleHQgb2YgYmxvY2sgY29tbWVudHMuICBGb3IgZXhhbXBsZSwgdXNpbmcgPHR0PmNob3BfbGVmdD0zPC90dD4sIDx0dD5jaG9wX3RvcD0xPC90dD4sIDx0dD5jaG9wX2JvdHRvbT0xPC90dD4gb24gdGhlIGFib3ZlIGNvbW1lbnQgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLVBsb3QyRF9saW5lIHgxIHkxIHgyIHkyIGNvbG9yCi0JWyByZXR1cm5zIHZvaWQgXQotCXZvaWQgUGxvdDJEX2xpbmUoaW50IHgxLCBpbnQgeTEsIGludCB4MiwgaW50IHkyLCBQaXhlbCBjb2xvcikgIAotCi0JRHJhd3MgYSBsaW5lIGJldHdlZW4gdGhlIHBvaW50cyAoeDEseTEpIGFuZCAoeDIseTIpIHVzaW5nIHRoZSAKLQl0aGUgZ2l2ZW4gY29sb3IuICAgVGhlIGxpbmUgaXMgY3JvcHBlZCB0byBmaXQgaW4gdGhlIGN1cnJlbnQgIAotCWJvdW5kaW5nIGJveC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotCi0JVXNlcyB0aGUgQnJlc2VuaGFtIGxpbmUgZHJhd2luZyBhbGdvcml0aG0uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBjaG9wcGluZyBwYXJhbWV0ZXJzIG9ubHkgYXBwbHkgaWYgYSBjb21tZW50IGlzIHN1ZmZpY2llbnRseSBsYXJnZSAoaS5lLi4gaWYgdGhlIG51bWJlciBvZiBsaW5lcyBleGNlZWQgPHR0PmNob3BfdG9wPC90dD4rPHR0PmNob3BfYm90dG9tPC90dD4pLiAgIFRodXMsIGluIG91ciBleGFtcGxlLCBhIG9uZSBsaW5lIGNvbW1lbnQgd2lsbCBiZSB1bmFsdGVyZWQgZXZlbiB0aG91Z2ggY2hvcHBpbmcgaGFzIGJlZW4gc2V0LiAgIEJ5IGRlZmF1bHQsIFNXSUcgc2V0cyBjaG9wX2xlZnQ9MyBhbmQgYWxsIG90aGVycyB0byB6ZXJvLiAgIFRoaXMgc2V0dGluZyByZW1vdmVzIHRoZSAgYDx0dD4vKiA8L3R0PmAgb3IgYDx0dD4vLyA8L3R0PmAgcHJlY2VlZGluZyBhIGNvbW1lbnQuPHA+Ci08YSBuYW1lPSJuMTkiPjwvYT48aDM+IFRhYnMgYW5kIG90aGVyIGFubm95YW5jZXM8L2gzPgotV2hlbiB1c2luZyB0aGUgcHJlZm9ybWF0dGVkIG1vZGUsIFNXSUcgd2lsbCBhdXRvbWF0aWNhbGx5IGNvbnZlcnQgdGFicyB0byB3aGl0ZSBzcGFjZS4gIFRoaXMgaXMgZG9uZSBhc3N1bWluZyB0aGF0IHRhYnMgYXJlIHBsYWNlZCBldmVyeSA4IGNoYXJhY3RlcnMuICAgVGhlIHRhYmlmaWNhdGlvbiBtb2RlIGNhbiBiZSBzZWxlY3RlZCB1c2luZyB0aGUgYHRhYmlmeScgYW5kIGB1bnRhYmlmeScgcGFyYW1ldGVycyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXNlY3Rpb24gIlVudGFiaWZpZWQgU2VjdGlvbiIsdW50YWJpZnkKLSVzZWN0aW9uICJMZWF2ZSB0aG9zZSB0YWJzIGFsb25lIiwgdGFiaWZ5Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRhYnMgYXJlIHNpbXBseSBpZ25vcmVkIHdoZW4gY29tbWVudHMgYXJlIHJlZm9ybWF0dGVkICh3ZWxsLCBhY3R1YWxseSwgdGhleSdyZSBqdXN0IGNvcGllZCBpbnRvIHRoZSBvdXRwdXQsIGJ1dCB0aGUgdGFyZ2V0IGRvY3VtZW50YXRpb24gbWV0aG9kIHdpbGwgaWdub3JlIHRoZW0pLjxwPgotPGEgbmFtZT0ibjIwIj48L2E+PGgzPiBJZ25vcmluZyBjb21tZW50czwvaDM+Ci1UbyBpZ25vcmUgdGhlIGNvbW1lbnRzIGluIGEgcGFydGljdWxhciBzZWN0aW9uLCB5b3UgY2FuIHVzZSB0aGUgYGlnbm9yZScgcGFyYW1ldGVyLiAgRm9yIGV4YW1wbGUgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVzZWN0aW9uICJObyBDb21tZW50cyIsIGlnbm9yZQotJXNlY3Rpb24gIktlZXAgQ29tbWVudHMiLCBrZWVwCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBgPHR0PmtlZXA8L3R0PicgcGFyYW1ldGVyIGlzIHVzZWQgdG8gZGlzYWJsZSB0aGUgZWZmZWN0IG9mIGFuIGlnbm9yZSBwYXJhbWV0ZXIgKGlmIHNldCBieSBhIHNlY3Rpb24ncyBwYXJlbnQpLjxwPgotPGEgbmFtZT0ibjIxIj48L2E+PGgzPiBDIEluZm9ybWF0aW9uPC9oMz4KLU5vcm1hbGx5LCBlYWNoIGRlY2xhcmF0aW9uIGluIGEgZmlsZSB3aWxsIGhhdmUgYSBDIGluZm9ybWF0aW9uIHRhZyBhdHRhY2hlZCB0byBpdC4gIFRoaXMgaXMgdXN1YWxseSBlbmNsb3NlZCBpbiBbIF0gYW5kIGNvbnRhaW5zIHRoZSByZXR1cm4gdHlwZSBvZiBhIGZ1bmN0aW9uIGFsb25nIHdpdGggb3RoZXIgaW5mb3JtYXRpb24uICAgVGhpcyB0ZXh0IGNhbiBkaXNhYmxlZCB1c2luZyB0aGUgYG5vaW5mbycgcGFyYW1ldGVycyBhbmQgcmVlbmFibGVkIHVzaW5nIHRoZSBgaW5mbycgcGFyYW1ldGVyLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVzZWN0aW9uICJObyBDIEluZm9ybWF0aW9uIiwgbm9pbmZvCi0lc2VjdGlvbiAiUHJpbnQgQyBJbmZvcm1hdGlvbiIsIGluZm8KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjciPjwvYT48aDI+IEFkZGluZyBBZGRpdGlvbmFsIFRleHQ8L2gyPgotQWRkaXRpb25hbCBkb2N1bWVudGF0aW9uIHRleHQgY2FuIGJlIGFkZGVkIHVzaW5nIHRoZSA8dHQ+JXRleHQ8L3R0PiBkaXJlY3RpdmUgYXMgc2hvd24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPjx0dD4ldGV4dCAlewotPC90dD4KLVRoaXMgaXMgc29tZSBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24gdGV4dC4KLQotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD4ldGV4dDwvdHQ+IGRpcmVjdGl2ZSBpcyBwcmltYXJpbHkgdXNlZCB0byBhZGQgdGV4dCB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHBhcnRpY3VsYXIgZGVjbGFyYXRpb24uICAgRm9yIGV4YW1wbGUsIHlvdSBtYXkgd2FudCB0byBwcm92aWRlIGEgZ2VuZXJhbCBkZXNjcmlwdGlvbiBvZiBhIG1vZHVsZSBiZWZvcmUgZGVmaW5pbmcgYWxsIG9mIHRoZSBmdW5jdGlvbnMuICAgQW55IHRleHQgY2FuIGJlIHBsYWNlZCBpbnNpZGUgdGhlIDx0dD4leywlfTwvdHQ+IGJsb2NrIGV4Y2VwdCBmb3IgYSBgPHR0PiV9PC90dD4nIHRoYXQgZW5kcyB0aGUgYmxvY2suIEZvciB0aGUgcHVycG9zZXMgb2Ygc29ydGluZywgdGV4dCBzZWdtZW50cyB3aWxsIGFsd2F5cyBhcHBlYXIgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHByZXZpb3VzIGRlY2xhcmF0aW9uLjxwPgotPGEgbmFtZT0ibjgiPjwvYT48aDI+IERpc2FibGluZyBhbGwgZG9jdW1lbnRhdGlvbjwvaDI+Ci1BbGwgZG9jdW1lbnRhdGlvbiBjYW4gYmUgc3VwcHJlc3NlZCBmb3IgYSBwb3J0aW9uIG9mIGFuIGludGVyZmFjZSBmaWxlIGJ5IHVzaW5nIHRoZSA8dHQ+JWRpc2FibGVkb2M8L3R0PiBhbmQgPHR0PiVlbmFibGVkb2MgPC90dD5kaXJlY3RpdmVzLiAgIFRoZXNlIHdvdWxkIGJlIHVzZWQgYXMgZm9sbG93czo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZGlzYWJsZWRvYwotLi4uIEEgYSBidW5jaCBvZiBkZWNsYXJhdGlvbnMgd2l0aCBubyBkb2N1bWVudGF0aW9uIC4uLgotJWVuYWJsZWRvYwotLi4uIE5vdyBkZWNsYXJhdGlvbnMgYXJlIGRvY3VtZW50ZWQgYWdhaW4gLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZXNlIGRpcmVjdGl2ZXMgY2FuIGJlIHNhZmVseSBuZXN0ZWQuICBUaHVzLCB0aGUgb2NjdXJyZW5jZSBvZiB0aGVzZSBkaXJlY3RpdmVzIGluc2lkZSBhIDx0dD4lZGlzYWJsZWRvYyA8L3R0PnNlY3Rpb24gaGFzIG5vIGVmZmVjdCAob25seSB0aGUgb3V0ZXItbW9zdCBvY2N1cnJlbmNlIGlzIGltcG9ydGFudCkuPHA+Ci08cD4KLVRoZSBwcmltYXJ5IHVzZSBvZiB0aGVzZSBkaXJlY3RpdmVzIGlzIGZvciBkaXNhYmxpbmcgdGhlIGRvY3VtZW50YXRpb24gb24gY29tbW9ubHkgdXNlZCBtb2R1bGVzIHRoYXQgeW91IG1pZ2h0IHVzZSByZXBlYXRlZGx5IChidXQgZG9uJ3Qgd2FudCBhbnkgZG9jdW1lbnRhdGlvbiBmb3IpLiAgRm9yIGV4YW1wbGUgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVkaXNhYmxlZG9jCi0laW5jbHVkZSB3aXNoLmkKLSVpbmNsdWRlIGFycmF5LmkKLSVpbmNsdWRlIHRpbWVyLmkKLSVlbmFibGVkb2MKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMj4gQW4gRXhhbXBsZTwvaDI+Ci1UbyBpbGx1c3RyYXRlIHRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbSBpbiBhY3Rpb24sIGhlcmUgaXMgc29tZSBjb2RlIGZyb20gdGhlIFNXSUcgbGlicmFyeSBmaWxlIGBhcnJheS5pJy48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLwotLy8gYXJyYXkuaQotLy8gVGhpcyBTV0lHIGxpYnJhcnkgZmlsZSBwcm92aWRlcyBhY2Nlc3MgdG8gQyBhcnJheXMuCi0KLSVtb2R1bGUgY2FycmF5Ci0KLSVzZWN0aW9uICJTV0lHIEMgQXJyYXkgTW9kdWxlIixpbmZvLGFmdGVyLHByZSxub3NvcnQsc2tpcD0xLGNob3BfbGVmdD0zLAotY2hvcF9yaWdodD0wLGNob3BfdG9wPTAsY2hvcF9ib3R0b209MAotCi0ldGV4dCAlewotJWluY2x1ZGUgYXJyYXkuaQotCi1UaGlzIG1vZHVsZSBwcm92aWRlcyBzY3JpcHRpbmcgbGFuZ3VhZ2UgYWNjZXNzIHRvIHZhcmlvdXMga2luZHMgb2YgQy9DKysKLWFycmF5cy4gRm9yIGVhY2ggZGF0YXR5cGUsIGEgY29sbGVjdGlvbiBvZiBmb3VyIGZ1bmN0aW9ucyBhcmUgY3JlYXRlZCA6Ci0KLSAgICZsdDt0eXBlJmd0O19hcnJheShzaXplKSAgICAgICAgICAgICAgOiBDcmVhdGUgYSBuZXcgYXJyYXkgb2YgZ2l2ZW4gc2l6ZQotICAgJmx0O3R5cGUmZ3Q7X2dldChhcnJheSwgaW5kZXgpICAgICAgICA6IEdldCBhbiBlbGVtZW50IGZyb20gdGhlIGFycmF5Ci0gICAmbHQ7dHlwZSZndDtfc2V0KGFycmF5LCBpbmRleCwgdmFsdWUpIDogU2V0IGFuIGVsZW1lbnQgaW4gdGhlIGFycmF5Ci0gICAmbHQ7dHlwZSZndDtfZGVzdHJveShhcnJheSkgICAgICAgICAgIDogRGVzdHJveSBhbiBhcnJheQotCi1UaGUgZnVuY3Rpb25zIGluIHRoaXMgbGlicmFyeSBhcmUgb25seSBsb3ctbGV2ZWwgYWNjZXNzb3IgZnVuY3Rpb25zCi1kZXNpZ25lZCB0byBkaXJlY3RseSBhY2Nlc3MgQyBhcnJheXMuICBMaWtlIEMsIG5vIGJvdW5kcyBjaGVja2luZyBpcwotcGVyZm9ybWVkIHNvIHVzZSBhdCB5b3VyIG93biBwZXJpbC4KLSV9Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBJbnRlZ2VyIGFycmF5IHN1cHBvcnQKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSVzdWJzZWN0aW9uICJJbnRlZ2VyIEFycmF5cyIKLS8qIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHByb3ZpZGUgYWNjZXNzIHRvIGludGVnZXIgYXJyYXlzIChtYXBwZWQKLSAgIG9udG8gdGhlIEMgJ2ludCcgZGF0YXR5cGUuICovCi0KLSV7Ci0JLi4uIFN1cHBvcnRpbmcgQyBjb2RlIC4uLgotJX0KLWludCAqaW50X2FycmF5KGludCBuaXRlbXMpOwotLyogQ3JlYXRlcyBhIG5ldyBhcnJheSBvZiBpbnRlZ2Vycy4gbml0ZW1zIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgVGhlIGFycmF5IGlzIGNyZWF0ZWQgdXNpbmcgbWFsbG9jKCkgaW4gQyBhbmQgbmV3KCkgaW4gQysrLiAqLwotCi12b2lkIGludF9kZXN0cm95KGludCAqYXJyYXkpOwotLyogRGVzdHJveXMgdGhlIGdpdmVuIGFycmF5LiAqLwotCi1pbnQgaW50X2dldChpbnQgKmFycmF5LCBpbnQgaW5kZXgpOwotLyogUmV0dXJucyB0aGUgdmFsdWUgb2YgYXJyYXlbaW5kZXhdLiAqLwotCi1pbnQgaW50X3NldChpbnQgKmFycmF5LCBpbnQgaW5kZXgsIGludCB2YWx1ZSk7Ci0vKiBTZXRzIGFycmF5W2luZGV4XSA9IHZhbHVlLiAgUmV0dXJucyB2YWx1ZS4gKi8KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIEZsb2F0aW5nIHBvaW50Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0lc3Vic2VjdGlvbiAiRmxvYXRpbmcgUG9pbnQgQXJyYXlzIgotLyogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgcHJvdmlkZSBhY2Nlc3MgdG8gYXJyYXlzIG9mIGZsb2F0cyBhbmQgZG91Ymxlcy4gKi8KLQotJXsKLQkuLiBTdXBwb3J0aW5nIEMgY29kZSAuLi4KLSV9Ci1kb3VibGUgKmRvdWJsZV9hcnJheShpbnQgbml0ZW1zKTsKLS8qIENyZWF0ZXMgYSBuZXcgYXJyYXkgb2YgZG91Ymxlcy4gbml0ZW1zIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgVGhlIGFycmF5IGlzIGNyZWF0ZWQgdXNpbmcgbWFsbG9jKCkgaW4gQyBhbmQgbmV3KCkgaW4gQysrLiAqLwotCi12b2lkIGRvdWJsZV9kZXN0cm95KGRvdWJsZSAqYXJyYXkpOwotLyogRGVzdHJveXMgdGhlIGdpdmVuIGFycmF5LiAqLwotCi1kb3VibGUgZG91YmxlX2dldChkb3VibGUgKmFycmF5LCBpbnQgaW5kZXgpOwotLyogUmV0dXJucyB0aGUgdmFsdWUgb2YgYXJyYXlbaW5kZXhdLiAqLwotCi1kb3VibGUgZG91YmxlX3NldChkb3VibGUgKmFycmF5LCBpbnQgaW5kZXgsIGRvdWJsZSB2YWx1ZSk7Ci0vKiBTZXRzIGFycmF5W2luZGV4XSA9IHZhbHVlLiAgUmV0dXJucyB2YWx1ZS4gKi8KLQotZmxvYXQgKmZsb2F0X2FycmF5KGludCBuaXRlbXMpOwotLyogQ3JlYXRlcyBhIG5ldyBhcnJheSBvZiBmbG9hdHMuIG5pdGVtcyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBlbGVtZW50cy4KLSAgIFRoZSBhcnJheSBpcyBjcmVhdGVkIHVzaW5nIG1hbGxvYygpIGluIEMgYW5kIG5ldygpIGluIEMrKy4gKi8KLQotdm9pZCBmbG9hdF9kZXN0cm95KGZsb2F0ICphcnJheSk7Ci0vKiBEZXN0cm95cyB0aGUgZ2l2ZW4gYXJyYXkuICovCi0KLWZsb2F0IGZsb2F0X2dldChmbG9hdCAqYXJyYXksIGludCBpbmRleCk7Ci0vKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhcnJheVtpbmRleF0uICovCi0KLWZsb2F0IGZsb2F0X3NldChmbG9hdCAqYXJyYXksIGludCBpbmRleCwgZmxvYXQgdmFsdWUpOwotLyogU2V0cyBhcnJheVtpbmRleF0gPSB2YWx1ZS4gIFJldHVybnMgdmFsdWUuICovCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBDaGFyYWN0ZXIgc3RyaW5ncwotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotJXN1YnNlY3Rpb24gIlN0cmluZyBBcnJheXMiCi0KLSV0ZXh0ICV7Ci1UaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBwcm92aWRlIHN1cHBvcnQgZm9yIHRoZSAnY2hhciAqKicgZGF0YXR5cGUuICAgVGhpcwotaXMgcHJpbWFyaWx5IHVzZWQgdG8gaGFuZGxlIGFyZ3VtZW50IGxpc3RzIGFuZCBvdGhlciBzaW1pbGFyIHN0cnVjdHVyZXMgdGhhdAotbmVlZCB0byBiZSBwYXNzZWQgdG8gYSBDL0MrKyBmdW5jdGlvbi4KLSV9Ci0KLSNpZiBkZWZpbmVkKFNXSUdUQ0wpCi0ldGV4dCAlewotVG8gY29udmVydCBmcm9tIGEgVGNsIGxpc3QgaW50byBhICdjaGFyICoqJywgdGhlIGZvbGxvd2luZyBjb2RlIGNhbiBiZSB1c2VkIDoKLQotICAgICAjICRsaXN0IGlzIGEgbGlzdAotICAgICBzZXQgYXJncyBbc3RyaW5nX2FycmF5IGV4cHIge1tsbGVuZ3RoICRsaXN0XSArIDF9XQotICAgICBzZXQgaSAwCi0gICAgIGZvcmVhY2ggYSAkbGlzdCB7Ci0gICAgICAgIHN0cmluZ19zZXQgJGFyZ3MgJGkgJGEKLSAgICAgICAgaW5jciBpIDEKLSAgICAgfQotICAgICBzdHJpbmdfc2V0ICRpICIiCi0gICAgICMgJGFyZ3MgaXMgbm93IGEgY2hhciAqKiB0eXBlCi0lfQotI2VsaWYgZGVmaW5lZChTV0lHUEVSTCkKLQotJXRleHQgJXsKLVRvIGNvbnZlcnQgZnJvbSBhIFBlcmwgbGlzdCBpbnRvIGEgJ2NoYXIgKionLCBjb2RlIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZwotY2FuIGJlIHVzZWQgOgotCi0gICAgIyBAbGlzdCBpcyBhIGxpc3QKLSAgICBteSAkbCA9IHNjYWxhcihAbGlzdCk7Ci0gICAgbXkgJGFyZ3MgPSBzdHJpbmdfYXJyYXkoJGwrMSk7Ci0gICAgbXkgJGkgPSAwOwotICAgIGZvcmVhY2ggJGFyZyAoQGxpc3QpIHsKLSAgICAgICAgc3RyaW5nX3NldCgkYXJncywkaSwkYXJnKTsKLSAgICAgICAgJGkrKzsKLSAgICB9ICAgCi0gICAgc3RyaW5nX3NldCgkYXJncywkaSwiIik7Ci0KLShvZiBjb3Vyc2UsIHRoZXJlIGlzIGFsd2F5cyBtb3JlIHRoYW4gb25lIHdheSB0byBkbyBpdCkKLSV9Ci0jZWxpZiBkZWZpbmVkKFNXSUdQWVRIT04pCi0KLSV0ZXh0ICV7Ci1UbyBjb252ZXJ0IGZyb20gYSBQeXRob24gbGlzdCB0byBhICdjaGFyICoqJywgY29kZSBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcKLWNhbiBiZSB1c2VkIDoKLQotICAgICMgJ2xpc3QnIGlzIGEgbGlzdAotICAgIGFyZ3MgPSBzdHJpbmdfYXJyYXkobGVuKGxpc3QpKzEpCi0gICAgZm9yIGkgaW4gcmFuZ2UoMCxsZW4obGlzdCkpOgotCXN0cmluZ19zZXQoYXJncyxpLGxpc3RbaV0pCi0gICAgc3RyaW5nX3NldChhcmdzLGxlbihsaXN0KSwiIikKLSV9Ci0KLSNlbmRpZgotCi0lewotCS4uLiBTdXBwb3J0aW5nIEMgY29kZSAuLi4KLSV9Ci1jaGFyICoqc3RyaW5nX2FycmF5KGludCBuaXRlbXMpOwotLyogQ3JlYXRlcyBhIG5ldyBhcnJheSBvZiBzdHJpbmdzLiBuaXRlbXMgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMuCi0gICBUaGUgYXJyYXkgaXMgY3JlYXRlZCB1c2luZyBtYWxsb2MoKSBpbiBDIGFuZCBuZXcoKSBpbiBDKysuIEVhY2ggZWxlbWVudAotICAgb2YgdGhlIGFycmF5IGlzIHNldCB0byBOVUxMIHVwb24gaW5pdGlhbGl6YXRpb24uICovCi0KLXZvaWQgc3RyaW5nX2Rlc3Ryb3koY2hhciAqYXJyYXkpOwotLyogRGVzdHJveXMgdGhlIGdpdmVuIGFycmF5LiBFYWNoIGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGFzc3VtZWQgdG8gYmUKLSAgIGEgTlVMTC10ZXJtaW5hdGVkIHN0cmluZyBhbGxvY2F0ZWQgd2l0aCBtYWxsb2MoKSBvciBuZXcoKS4gIEFsbCBvZgotICAgdGhlc2Ugc3RyaW5ncyB3aWxsIGJlIGRlc3Ryb3llZCBhcyB3ZWxsLiAoSXQgaXMgcHJvYmFibHkgb25seSBzYWZlIHRvCi0gICB1c2UgdGhpcyBmdW5jdGlvbiBvbiBhbiBhcnJheSBjcmVhdGVkIGJ5IHN0cmluZ19hcnJheSkgKi8KLQotY2hhciAqc3RyaW5nX2dldChjaGFyICoqYXJyYXksIGludCBpbmRleCk7Ci0vKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhcnJheVtpbmRleF0uIFJldHVybnMgYSBzdHJpbmcgb2YgemVybyBsZW5ndGgKLSAgIGlmIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaXMgTlVMTC4gKi8KLQotY2hhciAqc3RyaW5nX3NldChjaGFyICoqYXJyYXksIGludCBpbmRleCwgY2hhciAqdmFsdWUpOwotLyogU2V0cyBhcnJheVtpbmRleF0gPSB2YWx1ZS4gIHZhbHVlIGlzIGFzc3VtZWQgdG8gYmUgYSBOVUxMLXRlcm1pbmF0ZWQKLSAgIHN0cmluZy4gIEEgc3RyaW5nIG9mIHplcm8gbGVuZ3RoIGlzIG1hcHBlZCBpbnRvIGEgTlVMTCB2YWx1ZS4gIFdoZW4KLSAgIHNldHRpbmcgdGhlIHZhbHVlLCB0aGUgdmFsdWUgd2lsbCBiZSBjb3BpZWQgaW50byBhIG5ldyBzdHJpbmcgYWxsb2NhdGVkCi0gICB3aXRoIG1hbGxvYygpIG9yIG5ldygpLiAgQW55IHByZXZpb3VzIHZhbHVlIGluIHRoZSBhcnJheSB3aWxsIGJlCi0gICBkZXN0cm95ZWQuICovCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUluIHRoaXMgZmlsZSwgYWxsIG9mIHRoZSBkZWNsYXJhdGlvbnMgYXJlIHBsYWNlZCBpbnRvIGEgbmV3IHNlY3Rpb24uICBXZSBzcGVjaWZ5IGZvcm1hdHRpbmcgaW5mb3JtYXRpb24gZm9yIG91ciBzZWN0aW9uLiAgU2luY2UgdGhpcyBpcyBhIGdlbmVyYWwgcHVycG9zZSBsaWJyYXJ5IGZpbGUsIHdlIGhhdmUgbm8gaWRlYSB3aGF0IGZvcm1hdHRpbmcgb3VyIHBhcmVudCBtaWdodCBiZSB1c2luZyBzbyBhbiBleHBsaWNpdCBkZWNsYXJhdGlvbiBtYWtlcyBzdXJlIHdlIGdldCBpdCByaWdodC4gRWFjaCBjb21tZW50IGNvbnRhaW5zIHByZWZvcm1hdHRlZCB0ZXh0IGRlc2NyaWJpbmcgZWFjaCBmdW5jdGlvbi4gICBGaW5hbGx5LCBpbiB0aGUgY2FzZSBvZiB0aGUgc3RyaW5nIGZ1bmN0aW9ucywgd2UgYXJlIHVzaW5nIGEgY29tYmluYXRpb24gb2YgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYW5kIGRvY3VtZW50YXRpb24gc3lzdGVtIGRpcmVjdGl2ZXMgdG8gcHJvZHVjZSBsYW5ndWFnZS1zcGVjaWZpYyBkb2N1bWVudGF0aW9uLiAgIEluIHRoaXMgY2FzZSwgdGhlIGRvY3VtZW50YXRpb24gY29udGFpbnMgYSB1c2FnZSBleGFtcGxlIGluIHRoZSB0YXJnZXQgc2NyaXB0aW5nIGxhbmd1YWdlLjxwPgotPHA+Ci1XaGVuIHByb2Nlc3NlZCB0aHJvdWdoIHRoZSBBU0NJSSBtb2R1bGUsIHRoaXMgZmlsZSB3aWxsIHByb2R1Y2UgZG9jdW1lbnRhdGlvbiBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPjcuICBTV0lHIEMgQXJyYXkgTW9kdWxlCi09PT09PT09PT09PT09PT09PT09PT09PQotCi0laW5jbHVkZSBhcnJheS5pCi0KLVRoaXMgbW9kdWxlIHByb3ZpZGVzIHNjcmlwdGluZyBsYW5ndWFnZSBhY2Nlc3MgdG8gdmFyaW91cyBraW5kcyBvZiBDL0MrKwotYXJyYXlzLiBGb3IgZWFjaCBkYXRhdHlwZSwgYSBjb2xsZWN0aW9uIG9mIGZvdXIgZnVuY3Rpb25zIGFyZSBjcmVhdGVkIDoKLQotICAgJmx0O3R5cGUmZ3Q7X2FycmF5KHNpemUpICAgICAgICAgICAgICA6IENyZWF0ZSBhIG5ldyBhcnJheSBvZiBnaXZlbiBzaXplCi0gICAmbHQ7dHlwZSZndDtfZ2V0KGFycmF5LCBpbmRleCkgICAgICAgIDogR2V0IGFuIGVsZW1lbnQgZnJvbSB0aGUgYXJyYXkKLSAgICZsdDt0eXBlJmd0O19zZXQoYXJyYXksIGluZGV4LCB2YWx1ZSkgOiBTZXQgYW4gZWxlbWVudCBpbiB0aGUgYXJyYXkKLSAgICZsdDt0eXBlJmd0O19kZXN0cm95KGFycmF5KSAgICAgICAgICAgOiBEZXN0cm95IGFuIGFycmF5Ci0KLVRoZSBmdW5jdGlvbnMgaW4gdGhpcyBsaWJyYXJ5IGFyZSBvbmx5IGxvdy1sZXZlbCBhY2Nlc3NvciBmdW5jdGlvbnMKLWRlc2lnbmVkIHRvIGRpcmVjdGx5IGFjY2VzcyBDIGFycmF5cy4gIExpa2UgQywgbm8gYm91bmRzIGNoZWNraW5nIGlzCi1wZXJmb3JtZWQgc28gdXNlIGF0IHlvdXIgb3duIHBlcmlsLgotCi03LjEuICBJbnRlZ2VyIEFycmF5cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHByb3ZpZGUgYWNjZXNzIHRvIGludGVnZXIgYXJyYXlzIChtYXBwZWQKLW9udG8gdGhlIEMgJ2ludCcgZGF0YXR5cGUuICAgCi0KLQotaW50X2FycmF5KG5pdGVtcykKLSAgICAgICAgWyByZXR1cm5zIGludCAqIF0KLSAgICAgICAgQ3JlYXRlcyBhIG5ldyBhcnJheSBvZiBpbnRlZ2Vycy4gbml0ZW1zIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgICAgICBUaGUgYXJyYXkgaXMgY3JlYXRlZCB1c2luZyBtYWxsb2MoKSBpbiBDIGFuZCBuZXcoKSBpbiBDKysuICAgCi0gICAgICAgIAotaW50X2Rlc3Ryb3koYXJyYXkpCi0gICAgICAgIFsgcmV0dXJucyB2b2lkICBdCi0gICAgICAgIERlc3Ryb3lzIHRoZSBnaXZlbiBhcnJheS4gICAKLSAgICAgICAgCi1pbnRfZ2V0KGFycmF5LGluZGV4KQotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0gICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIGFycmF5W2luZGV4XS4gICAKLSAgICAgICAgCi1pbnRfc2V0KGFycmF5LGluZGV4LHZhbHVlKQotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0gICAgICAgIFNldHMgYXJyYXlbaW5kZXhdID0gdmFsdWUuICBSZXR1cm5zIHZhbHVlLiAgIAotICAgICAgICAKLTcuMi4gIEZsb2F0aW5nIFBvaW50IEFycmF5cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1UaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBwcm92aWRlIGFjY2VzcyB0byBhcnJheXMgb2YgZmxvYXRzIGFuZCBkb3VibGVzLiAgIAotCi0KLWRvdWJsZV9hcnJheShuaXRlbXMpCi0gICAgICAgIFsgcmV0dXJucyBkb3VibGUgKiBdCi0gICAgICAgIENyZWF0ZXMgYSBuZXcgYXJyYXkgb2YgZG91Ymxlcy4gbml0ZW1zIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgICAgICBUaGUgYXJyYXkgaXMgY3JlYXRlZCB1c2luZyBtYWxsb2MoKSBpbiBDIGFuZCBuZXcoKSBpbiBDKysuICAgCi0gICAgICAgIAotZG91YmxlX2Rlc3Ryb3koYXJyYXkpCi0gICAgICAgIFsgcmV0dXJucyB2b2lkICBdCi0gICAgICAgIERlc3Ryb3lzIHRoZSBnaXZlbiBhcnJheS4gICAKLSAgICAgICAgCi1kb3VibGVfZ2V0KGFycmF5LGluZGV4KQotICAgICAgICBbIHJldHVybnMgZG91YmxlICBdCi0gICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIGFycmF5W2luZGV4XS4gICAKLSAgICAgICAgCi1kb3VibGVfc2V0KGFycmF5LGluZGV4LHZhbHVlKQotICAgICAgICBbIHJldHVybnMgZG91YmxlICBdCi0gICAgICAgIFNldHMgYXJyYXlbaW5kZXhdID0gdmFsdWUuICBSZXR1cm5zIHZhbHVlLiAgIAotICAgICAgICAKLWZsb2F0X2FycmF5KG5pdGVtcykKLSAgICAgICAgWyByZXR1cm5zIGZsb2F0ICogXQotICAgICAgICBDcmVhdGVzIGEgbmV3IGFycmF5IG9mIGZsb2F0cy4gbml0ZW1zIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgICAgICBUaGUgYXJyYXkgaXMgY3JlYXRlZCB1c2luZyBtYWxsb2MoKSBpbiBDIGFuZCBuZXcoKSBpbiBDKysuICAgCi0gICAgICAgIAotZmxvYXRfZGVzdHJveShhcnJheSkKLSAgICAgICAgWyByZXR1cm5zIHZvaWQgIF0KLSAgICAgICAgRGVzdHJveXMgdGhlIGdpdmVuIGFycmF5LiAgIAotICAgICAgICAKLWZsb2F0X2dldChhcnJheSxpbmRleCkKLSAgICAgICAgWyByZXR1cm5zIGZsb2F0ICBdCi0gICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIGFycmF5W2luZGV4XS4gICAKLSAgICAgICAgCi1mbG9hdF9zZXQoYXJyYXksaW5kZXgsdmFsdWUpCi0gICAgICAgIFsgcmV0dXJucyBmbG9hdCAgXQotICAgICAgICBTZXRzIGFycmF5W2luZGV4XSA9IHZhbHVlLiAgUmV0dXJucyB2YWx1ZS4gICAKLSAgICAgICAgCi03LjMuICBTdHJpbmcgQXJyYXlzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhlICdjaGFyICoqJyBkYXRhdHlwZS4gICBUaGlzCi1pcyBwcmltYXJpbHkgdXNlZCB0byBoYW5kbGUgYXJndW1lbnQgbGlzdHMgYW5kIG90aGVyIHNpbWlsYXIgc3RydWN0dXJlcyB0aGF0Ci1uZWVkIHRvIGJlIHBhc3NlZCB0byBhIEMvQysrIGZ1bmN0aW9uLgotCi1UbyBjb252ZXJ0IGZyb20gYSBQeXRob24gbGlzdCB0byBhICdjaGFyICoqJywgY29kZSBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcKLWNhbiBiZSB1c2VkIDoKLQotICAgICMgJ2xpc3QnIGlzIGEgbGlzdAotICAgIGFyZ3MgPSBzdHJpbmdfYXJyYXkobGVuKGxpc3QpKzEpCi0gICAgZm9yIGkgaW4gcmFuZ2UoMCxsZW4obGlzdCkpOgotCXN0cmluZ19zZXQoYXJncyxpLGxpc3RbaV0pCi0gICAgc3RyaW5nX3NldChhcmdzLGxlbihsaXN0KSwiIikKLQotc3RyaW5nX2FycmF5KG5pdGVtcykKLSAgICAgICAgWyByZXR1cm5zIGNoYXIgKiogXQotICAgICAgICBDcmVhdGVzIGEgbmV3IGFycmF5IG9mIHN0cmluZ3MuIG5pdGVtcyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBlbGVtZW50cy4KLSAgICAgICAgVGhlIGFycmF5IGlzIGNyZWF0ZWQgdXNpbmcgbWFsbG9jKCkgaW4gQyBhbmQgbmV3KCkgaW4gQysrLiBFYWNoIGVsZW1lbnQKLSAgICAgICAgb2YgdGhlIGFycmF5IGlzIHNldCB0byBOVUxMIHVwb24gaW5pdGlhbGl6YXRpb24uICAgCi0gICAgICAgIAotc3RyaW5nX2Rlc3Ryb3koYXJyYXkpCi0gICAgICAgIFsgcmV0dXJucyB2b2lkICBdCi0gICAgICAgIERlc3Ryb3lzIHRoZSBnaXZlbiBhcnJheS4gRWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhc3N1bWVkIHRvIGJlCi0gICAgICAgIGEgTlVMTC10ZXJtaW5hdGVkIHN0cmluZyBhbGxvY2F0ZWQgd2l0aCBtYWxsb2MoKSBvciBuZXcoKS4gIEFsbCBvZgotICAgICAgICB0aGVzZSBzdHJpbmdzIHdpbGwgYmUgZGVzdHJveWVkIGFzIHdlbGwuIChJdCBpcyBwcm9iYWJseSBvbmx5IHNhZmUgdG8KLSAgICAgICAgdXNlIHRoaXMgZnVuY3Rpb24gb24gYW4gYXJyYXkgY3JlYXRlZCBieSBzdHJpbmdfYXJyYXkpICAgCi0gICAgICAgIAotc3RyaW5nX2dldChhcnJheSxpbmRleCkKLSAgICAgICAgWyByZXR1cm5zIGNoYXIgKiBdCi0gICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIGFycmF5W2luZGV4XS4gUmV0dXJucyBhIHN0cmluZyBvZiB6ZXJvIGxlbmd0aAotICAgICAgICBpZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGlzIE5VTEwuICAgCi0gICAgICAgIAotc3RyaW5nX3NldChhcnJheSxpbmRleCx2YWx1ZSkKLSAgICAgICAgWyByZXR1cm5zIGNoYXIgKiBdCi0gICAgICAgIFNldHMgYXJyYXlbaW5kZXhdID0gdmFsdWUuICB2YWx1ZSBpcyBhc3N1bWVkIHRvIGJlIGEgTlVMTC10ZXJtaW5hdGVkCi0gICAgICAgIHN0cmluZy4gIEEgc3RyaW5nIG9mIHplcm8gbGVuZ3RoIGlzIG1hcHBlZCBpbnRvIGEgTlVMTCB2YWx1ZS4gIFdoZW4KLSAgICAgICAgc2V0dGluZyB0aGUgdmFsdWUsIHRoZSB2YWx1ZSB3aWxsIGJlIGNvcGllZCBpbnRvIGEgbmV3IHN0cmluZyBhbGxvY2F0ZWQKLSAgICAgICAgd2l0aCBtYWxsb2MoKSBvciBuZXcoKS4gIEFueSBwcmV2aW91cyB2YWx1ZSBpbiB0aGUgYXJyYXkgd2lsbCBiZQotICAgICAgICBkZXN0cm95ZWQuICAgCi0gICAgICAgIAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjEwIj48L2E+PGgyPiBBU0NJSSBEb2N1bWVudGF0aW9uPC9oMj4KLVRoZSBBU0NJSSBtb2R1bGUgcHJvZHVjZXMgZG9jdW1lbnRhdGlvbiBpbiBwbGFpbnRleHQgYXMgc2hvd24gaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUuICBUd28gZm9ybWF0dGluZyBvcHRpb25zIGFyZSBhdmFpbGFibGUgKGRlZmF1bHQgdmFsdWVzIHNob3duKSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+YXNjaWlfaW5kZW50ID0gOAotYXNjaWlfY29sdW1ucyA9IDcwCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLWA8dHQ+YXNjaWlfaW5kZW50PC90dD4nIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gaW5kZW50IGVhY2ggZnVuY3Rpb24gZGVzY3JpcHRpb24uICAgYDx0dD5hc2NpaV9jb2x1bW5zPC90dD4nIHNwZWNpZmllcyB0aGUgd2lkdGggb2YgdGhlIG91dHB1dCB3aGVuIHJlZm9ybWF0dGluZyB0ZXh0LjxwPgotPHA+Ci1XaGVuIHJlZm9ybWF0dGluZyB0ZXh0LCBhbGwgZXh0cmFuZW91cyB3aGl0ZS1zcGFjZSBpcyBzdHJpcHBlZCBhbmQgdGV4dCBpcyBmaWxsZWQgdG8gZml0IGluIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNvbHVtbnMuICAgVGhlIG91dHB1dCB0ZXh0IHdpbGwgYmUgbGVmdC1qdXN0aWZpZWQuICAgIEEgc2luZ2xlIG5ld2xpbmUgaXMgaWdub3JlZCwgYnV0IG11bHRpcGxlIG5ld2xpbmVzIGNhbiBiZSB1c2VkIHRvIHN0YXJ0IGEgbmV3IHBhcmFncmFwaC4gICBUaGUgY2hhcmFjdGVyIHNlcXVlbmNlIGBcXCcgY2FuIGJlIHVzZWQgdG8gZm9yY2UgYSBuZXdsaW5lLjxwPgotPHA+Ci1QcmVmb3JtYXR0ZWQgdGV4dCBpcyBwcmludGVkIGludG8gdGhlIHJlc3VsdGluZyBvdXRwdXQgdW5tb2RpZmllZCBhbHRob3VnaCBpdCBtYXkgYmUgaW5kZW50ZWQgd2hlbiB1c2VkIGFzIHBhcnQgb2YgYSBmdW5jdGlvbiBkZXNjcmlwdGlvbi48cD4KLTxhIG5hbWU9Im4xMSI+PC9hPjxoMj4gSFRNTCBEb2N1bWVudGF0aW9uPC9oMj4KLVRoZSBIVE1MIG1vZHVsZSBwcm9kdWNlcyBkb2N1bWVudGF0aW9uIGluIEhUTUwgZm9ybWF0ICh3aG8gd291bGQgaGF2ZSBndWVzc2VkPykuICBIb3dldmVyLCBhIG51bWJlciBvZiBzdHlsZSBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGUgIChzaG93biB3aXRoIGRlZmF1bHQgdmFsdWVzKTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWh0bWxfdGl0bGUgPSAiJmx0O0gxJmd0OzombHQ7L0gxJmd0OyIKLWh0bWxfY29udGVudHMgPSAiJmx0O0gxJmd0OzombHQ7L0gxJmd0OyIKLWh0bWxfc2VjdGlvbiA9ICImbHQ7SFImZ3Q7Jmx0O0gyJmd0OzombHQ7L0gyJmd0OyIKLWh0bWxfc3Vic2VjdGlvbiA9ICImbHQ7SDMmZ3Q7OiZsdDsvSDMmZ3Q7IgotaHRtbF9zdWJzdWJzZWN0aW9uID0gIiZsdDtINCZndDs6Jmx0Oy9INCZndDsiCi1odG1sX3VzYWdlID0gIiZsdDtCJmd0OyZsdDtUVCZndDs6Jmx0Oy9UVCZndDsmbHQ7L0ImZ3Q7IgotaHRtbF9kZXNjcmlwID0gIiZsdDtCTE9DS1FVT1RFJmd0OzombHQ7L0JMT0NLUVVPVEUmZ3Q7IgotaHRtbF90ZXh0ID0gIiZsdDtQJmd0OyIKLWh0bWxfY2luZm8gPSAiIgotaHRtbF9wcmVmb3JtYXQgPSAiJmx0O1BSRSZndDs6Jmx0Oy9QUkUmZ3Q7IgotaHRtbF9ib2R5ID0gIiZsdDtCT0RZIGJnX2NvbG9yPVwiI2ZmZmZmZlwiJmd0OzombHQ7L0JPRFkmZ3Q7IgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1Bbnkgb2YgdGhlc2UgcGFyYW1ldGVycyBjYW4gYmUgY2hhbmdlZCwgYnkgc2ltcGx5IHNwZWNpZnlpbmcgdGhlbSBhZnRlciBhIDx0dD4ldGl0bGU8L3R0PiBvciA8dHQ+JXNlY3Rpb248L3R0PiBkaXJlY3RpdmUuICBIb3dldmVyLCB0aGUgZWZmZWN0cyBhcmUgYXBwbGllZCBnbG9iYWxseSBzbyBpdCBwcm9iYWJseSBtYWtlcyBzZW5zZSB0byB1c2UgdGhlIDx0dD4lc3R5bGU8L3R0PiBkaXJlY3RpdmUgaW5zdGVhZC4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lc3R5bGUgaHRtbF9jb250ZW50cz0iJmx0O0hSJmd0OyZsdDtIMSZndDs6Jmx0Oy9IMSZndDsiCi0uLi4gUmVzdCBvZiBkZWNsYXJhdGlvbnMgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUVhY2ggdGFnIHVzZXMgYSAiOiIgdG8gc2VwYXJhdGUgdGhlIHN0YXJ0IGFuZCBlbmQgdGFncy4gICBBbnkgdGV4dCB3aWxsIGJlIGluc2VydGVkIGluIHBsYWNlIG9mIHRoZSAiOiIuICBTaW5jZSBzdHJpbmdzIGFyZSBzcGVjaWZpZWQgaW4gU1dJRyB1c2luZyBxdW90ZXMsIGFueSBxdW90ZXMgdGhhdCBuZWVkIHRvIGJlIGluc2VydGVkIGludG8gYSB0YWcgc2hvdWxkIGJlIGVzY2FwZWQgdXNpbmcgdGhlICJcIiBjaGFyYWN0ZXIuPHA+Ci08cD4KLVNhbXBsZSBIVE1MIG91dHB1dCBpcyBzaG93biBiZWxvdyA6PHA+Ci08cD48YSBocmVmPSJjaDUuMi5wbmciPlNhbXBsZSBTY3JlZW5zaG90IDEgPC9hPjxwPgotPHA+Ci08cD4KLVNpbmNlIG91ciBleGFtcGxlIHVzZWQgcHJlZm9ybWF0dGVkIHRleHQsIHRoZSBvdXRwdXQgaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSBBU0NJSSBtb2R1bGUuICBIb3dldmVyLCBpZiB5b3UgdXNlIHRoZSBkZWZhdWx0IG1vZGUsIGl0IGlzIHBvc3NpYmxlIHRvIGluc2VydCBIVE1MIG1hcmt1cCBkaXJlY3RseSBpbnRvIHlvdXIgQyBjb21tZW50cyBmb3IgYSBtb3JlIHBlcnNvbmFsaXplZCBkb2N1bWVudC48cD4KLTxwPgotRm9yIG5hdmlnYXRpb24gd2l0aGluIHRoZSBkb2N1bWVudCwgU1dJRyBhbHNvIHByb2R1Y2VzIGEgdGFibGUgb2YgY29udGVudHMgd2l0aCBsaW5rcyB0byBlYWNoIHNlY3Rpb24gd2l0aGluIHRoZSBkb2N1bWVudC4gIFdpdGggYSBsYXJnZSBpbnRlcmZhY2UsIHRoZSBjb250ZW50cyBtYXkgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzIDo8cD4KLTxwPjxhIGhyZWY9ImNoNS4zLnBuZyI+U2FtcGxlIFNjcmVlbnNob3QgMiA8L2E+PHA+Ci08cD4KLTxwPgotPGEgbmFtZT0ibjEyIj48L2E+PGgyPiBMYVRlWCBEb2N1bWVudGF0aW9uPC9oMj4KLVRoZSBMYVRlWCBtb2R1bGUgb3BlcmF0ZXMgaW4gYSBtYW5uZXIgc2ltaWxhciB0byB0aGUgSFRNTCBtb2R1bGUuICBUaGUgZm9sbG93aW5nIHN0eWxlIHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZSAoc29tZSBrbm93bGVkZ2Ugb2YgTGFUZVggaXMgYXNzdW1lZCkuPHA+Ci08YmxvY2txdW90ZT48cHJlPgotbGF0ZXhfcGFyaW5kZW50ID0gIjAuMGluIgotbGF0ZXhfdGV4dHdpZHRoID0gIjYuNWluIgotbGF0ZXhfZG9jdW1lbnRzdHlsZSA9ICJbMTFwdF17YXJ0aWNsZX0iCi1sYXRleF9vZGRzaWRlbWFyZ2luID0gIjAuMGluIgotbGF0ZXhfcGFnZXN0eWxlID0gIlxccGFnZXN0eWxle2hlYWRpbmdzfSIKLWxhdGV4X3RpdGxlID0gIntcXExhcmdlIFxcYmYgOn0gXFxcXFxuIgotbGF0ZXhfcHJlZm9ybWF0ID0gIntcXHNtYWxsIFxcYmVnaW57dmVyYmF0aW19OlxcZW5ke3ZlcmJhdGltfX0iCi1sYXRleF91c2FnZSA9ICJ7XFx0dCBcXGJmIDogfSIKLWxhdGV4X2Rlc2NyaXAgPSAie1xcXFxcbiBcXG1ha2Vib3hbMC41aW5de30gXGJlZ2lue21pbmlwYWdlfVt0XXs2aW59IDogXG4gCi1cXGVuZHttaW5pcGFnZX0gXFxcXCI7Ci1sYXRleF90ZXh0ID0gIjpcXFxcIgotbGF0ZXhfY2luZm8gPSAie1xcdHQgOiB9IgotbGF0ZXhfc2VjdGlvbiA9ICJcXHNlY3Rpb257On0iCi1sYXRleF9zdWJzZWN0aW9uID0gIlxcc3Vic2VjdGlvbns6fSIKLWxhdGV4X3N1YnN1YnNlY3Rpb24gPSAiXFxzdWJzdWJzZWN0aW9uezp9IgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgc3R5bGUgcGFyYW1ldGVycywgd2VsbCwgbG9vayBkb3ducmlnaHQgdWdseS4gICBLZWVwIGluIG1pbmQgdGhhdCB0aGUgc3RyaW5ncyB1c2VkIGJ5IFNXSUcgaGF2ZSBlc2NhcGUgY29kZXMgaW4gdGhlbSBzbyBpdCdzIG5lY2Vzc2FyeSB0byByZXByZXNlbnQgdGhlIGBcJyBjaGFyYWN0ZXIgYXMgYFxcJy4gICBUaHVzLCB3aXRoaW4gU1dJRyB5b3VyIGNvZGUgd2lsbCBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVzdHlsZSBsYXRleF9zZWN0aW9uPSJcXG5ld3BhZ2UgXG4gXFxzZWN0aW9uezp9IgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgZGVmYXVsdCB2YWx1ZXMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGNyZWF0aW5nIGEgcmVhZGFibGUgTGFUZVggZG9jdW1lbnQgaW4gYW55IGNhc2UgeW91IGRvbid0IHdhbnQgdG8gd29ycnkgY2hhbmdpbmcgdGhlIGRlZmF1bHQgc3R5bGUgcGFyYW1ldGVycy48cD4KLTxhIG5hbWU9Im4xMyI+PC9hPjxoMj4gQysrIFN1cHBvcnQ8L2gyPgotQysrIGNsYXNzZXMgYXJlIGVuY2Fwc3VsYXRlZCBpbiBhIG5ldyBzdWJzZWN0aW9uIG9mIHRoZSBjdXJyZW50IHNlY3Rpb24uICBUaGlzIHN1YnNlY3Rpb24gY29udGFpbnMgZGVzY3JpcHRpb25zIG9mIGFsbCBvZiB0aGUgbWVtYmVyIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLiAgU2luY2UgbGFuZ3VhZ2UgbW9kdWxlcyBhcmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBkb2N1bWVudGF0aW9uLCB0aGUgdXNlIG9mIHNoYWRvdyBjbGFzc2VzIHdpbGwgcmVzdWx0IGluIGRvY3VtZW50YXRpb24gZGVzY3JpYmluZyB0aGUgcmVzdWx0aW5nIHNoYWRvdyBjbGFzc2VzLCBub3QgdGhlIGxvd2VyIGxldmVsIGludGVyZmFjZSB0byB0aGUgY29kZS48cD4KLTxwPgotV2hpbGUgaXQncyBub3QgZW50aXJlbHkgY2xlYXIgdGhhdCB0aGlzIGlzIHRoZSBiZXN0IHdheSB0byBkb2N1bWVudCBDKysgY29kZSwgaXQgaXMgYSBzdGFydCAoYW5kIGl0J3MgYmV0dGVyIHRoYW4gbm8gZG9jdW1lbnRhdGlvbikuPHA+Ci08YSBuYW1lPSJuMTQiPjwvYT48aDI+IFRoZSBGaW5hbCBXb3JkPzwvaDI+Ci1FYXJseSB2ZXJzaW9ucyBvZiBTV0lHIHVzZWQgYSBmYWlybHkgcHJpbWl0aXZlIGRvY3VtZW50YXRpb24gc3lzdGVtLCB0aGF0IGNvdWxkIGJlc3QgYmUgZGVzY3JpYmVkIGFzICJiYXJlbHkgdXNhYmxlLiIgIFRoZSBzeXN0ZW0gZGVzY3JpYmVkIGhlcmUgcmVwcmVzZW50cyBhbiBhbG1vc3QgdG90YWwgcmV3cml0ZSBvZiB0aGUgZG9jdW1lbnRhdGlvbiBzeXN0ZW0uICBXaGlsZSBpdCBpcywgYnkgbm8gbWVhbnMsIGEgcGVyZmVjdCBzb2x1dGlvbiwgSSB0aGluayBpdCBpcyBhIHN0ZXAgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbi4gICAgIFRoZSBTV0lHIGxpYnJhcnkgaXMgbm93IGVudGlyZWx5IHNlbGYtZG9jdW1lbnRpbmcgYW5kIGlzIGEgZ29vZCBzb3VyY2Ugb2YgZG9jdW1lbnRhdGlvbiBleGFtcGxlcy4gICBBcyBhbHdheXMgc3VnZ2VzdGlvbnMgYW5kIGltcHJvdmVtZW50cyBhcmUgd2VsY29tZS48cD4KLTxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0Njo1NSAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9FeGNlcHRpb25zLmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0V4Y2VwdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2VlNTc1Yi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0V4Y2VwdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5NSArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkV4Y2VwdGlvbiBIYW5kbGluZzwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+NyBFeGNlcHRpb24gSGFuZGxpbmc8L2gxPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iI24xIj5UaGUgJWV4Y2VwdCBkaXJlY3RpdmU8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMiI+SGFuZGxpbmcgZXhjZXB0aW9ucyBpbiBDIGNvZGU8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+RXhjZXB0aW9uIGhhbmRsaW5nIHdpdGggbG9uZ2ptcCgpPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPkhhbmRsaW5nIEMrKyBleGNlcHRpb25zPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPkRlZmluaW5nIGRpZmZlcmVudCBleGNlcHRpb24gaGFuZGxlcnM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNiI+VXNpbmcgVGhlIFNXSUcgZXhjZXB0aW9uIGxpYnJhcnk8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNyI+RGVidWdnaW5nIGFuZCBvdGhlciBpbnRlcmVzdGluZyB1c2VzIGZvciAlZXhjZXB0PC9hPgotPGxpPiA8YSBocmVmPSIjbjgiPk1vcmUgRXhhbXBsZXM8L2E+Ci08L3VsPgotCi1JbiBzb21lIGNhc2VzLCBpdCBpcyBkZXNpcmFibGUgdG8gY2F0Y2ggZXJyb3JzIHRoYXQgb2NjdXIgaW4gQyBmdW5jdGlvbnMgYW5kIHByb3BhZ2F0ZSB0aGVtIHVwIHRvIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlIChpZS4gcmFpc2UgYW4gZXhjZXB0aW9uKS4gQnkgZGVmYXVsdCwgU1dJRyBkb2VzIG5vdGhpbmcsIGJ1dCB5b3UgY2FuIGNyZWF0ZSBhIHVzZXItZGVmaW5hYmxlIGV4Y2VwdGlvbiBoYW5kbGVyIHVzaW5nIHRoZSA8dHQ+JWV4Y2VwdDwvdHQ+IGRpcmVjdGl2ZS48cD4KLTxhIG5hbWU9Im4xIj48L2E+PGgyPiBUaGUgJWV4Y2VwdCBkaXJlY3RpdmU8L2gyPgotVGhlIDx0dD4lZXhjZXB0PC90dD4gZGlyZWN0aXZlIGFsbG93cyB5b3UgdG8gZGVmaW5lIGFuIGV4Y2VwdGlvbiBoYW5kbGVyLiBJdCB3b3JrcyBzb21ldGhpbmcgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHB5dGhvbikgewotCXRyeSB7Ci0JJGZ1bmN0aW9uCi0JfQotCWNhdGNoIChSYW5nZUVycm9yKSB7Ci0JIAlQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW5kZXhFcnJvciwiaW5kZXggb3V0LW9mLWJvdW5kcyIpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUFzIGFuIGFyZ3VtZW50LCB5b3UgbmVlZCB0byBzcGVjaWZ5IHRoZSB0YXJnZXQgbGFuZ3VhZ2UuIFRoZSBleGNlcHRpb24gaGFuZGxpbmcgQy9DKysgY29kZSBpcyB0aGVuIGVuY2xvc2VkIGluIGJyYWNlcy4gVGhlIHN5bWJvbCA8dHQ+JGZ1bmN0aW9uIDwvdHQ+aXMgcmVwbGFjZWQgd2l0aCB0aGUgcmVhbCBDL0MrKyBmdW5jdGlvbiBjYWxsIHRoYXQgU1dJRyB3b3VsZCBiZSBvcmRpbmFyaWx5IG1ha2UgaW4gdGhlIHdyYXBwZXIgY29kZS4gVGhlIEMgY29kZSB5b3Ugc3BlY2lmeSBpbnNpZGUgdGhlIDx0dD4lZXhjZXB0PC90dD4gZGlyZWN0aXZlIGNhbiBiZSBhbnl0aGluZyB5b3UgbGlrZSBpbmNsdWRpbmcgY3VzdG9tIEMgY29kZSBhbmQgQysrIGV4Y2VwdGlvbnMuPHA+Ci08cD4KLVRvIGRlbGV0ZSBhbiBleGNlcHRpb24gaGFuZGxlciwgc2ltcGx5IHVzZSB0aGUgPHR0PiVleGNlcHQ8L3R0PiBkaXJlY3RpdmUgd2l0aCBubyBjb2RlLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWV4Y2VwdChweXRob24pOyAJCQkJLy8gRGVsZXRlcyBhbnkgcHJldmlvdXNseSBkZWZpbmVkIGhhbmRsZXIKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRXhjZXB0aW9ucyBjYW4gYmUgcmVkZWZpbmVkIGFzIG5lY2Vzc2FyeS4gVGhlIHNjb3BlIG9mIGFuIGV4Y2VwdGlvbiBoYW5kbGVyIGlzIGZyb20gdGhlIHBvaW50IG9mIGRlZmluaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSwgdGhlIGRlZmluaXRpb24gb2YgYSBuZXcgZXhjZXB0aW9uIGhhbmRsZXIsIG9yIHVudGlsIHRoZSBoYW5kbGVyIGlzIGRlbGV0ZWQuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gSGFuZGxpbmcgZXhjZXB0aW9ucyBpbiBDIGNvZGU8L2gyPgotQyBoYXMgbm8gZm9ybWFsIG1lY2hhbmlzbSBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyBzbyB0aGVyZSBhcmUgbWFueSBwb3NzaWJpbGl0aWVzLiBUaGUgZmlyc3QgYXBwcm9hY2ggaXMgdG8gc2ltcGx5IHByb3ZpZGUgc29tZSBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIGNoZWNraW5nIGFuIGVycm9yIGNvZGUuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLQotLyogRmlsZSA6IGV4Y2VwdC5jICovCi0KLXN0YXRpYyBjaGFyIGVycm9yX21lc3NhZ2VbMjU2XTsKLXN0YXRpYyBpbnQgZXJyb3Jfc3RhdHVzID0gMDsKLQotdm9pZCB0aHJvd19leGNlcHRpb24oY2hhciAqbXNnKSB7Ci0Jc3RybmNweShlcnJvcl9tZXNzYWdlLG1zZywyNTYpOwotCWVycm9yX3N0YXR1cyA9IDE7Ci19Ci0KLXZvaWQgY2xlYXJfZXhjZXB0aW9uKCkgewotCWVycm9yX3N0YXR1cyA9IDA7Ci19Ci1jaGFyICpjaGVja19leGNlcHRpb24oKSB7Ci0JaWYgKGVycm9yX3N0YXR1cykgcmV0dXJuIGVycm9yX21lc3NhZ2U7Ci0JZWxzZSByZXR1cm4gTlVMTDsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVG8gd29yaywgZnVuY3Rpb25zIHdpbGwgbmVlZCB0byBleHBsaWNpdGx5IGNhbGwgPHR0PnRocm93X2V4Y2VwdGlvbigpPC90dD4gdG8gaW5kaWNhdGUgYW4gZXJyb3Igb2NjdXJyZWQuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kb3VibGUgaW52KGRvdWJsZSB4KSB7Ci0JaWYgKHggIT0gMCkgcmV0dXJuIDEuMC94OwotCWVsc2UgewotCQl0aHJvd19leGNlcHRpb24oIkRpdmlzaW9uIGJ5IHplcm8iKTsKLQkJcmV0dXJuIDA7Ci0JfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBjYXRjaCB0aGUgZXhjZXB0aW9uLCB5b3UgY2FuIHdyaXRlIGEgc2ltcGxlIGV4Y2VwdGlvbiBoYW5kbGVyIHN1Y2ggYXMgdGhlIGZvbGxvd2luZyAoc2hvd24gZm9yIFBlcmw1KSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWV4Y2VwdChwZXJsNSkgewotCWNoYXIgKmVycjsKLQljbGVhcl9leGNlcHRpb24oKTsKLQkkZnVuY3Rpb24KLQlpZiAoKGVyciA9IGNoZWNrX2V4Y2VwdGlvbigpKSkgewotCQljcm9hayhlcnIpOwotCX0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTm93LCB3aGVuIGFuIGVycm9yIG9jY3VycywgaXQgd2lsbCBiZSB0cmFuc2xhdGVkIGludG8gYSBQZXJsIGVycm9yLiBUaGUgZG93bnNpZGUgdG8gdGhpcyBhcHByb2FjaCBpcyB0aGF0IGl0IGlzbid0IHBhcnRpY3VsYXJseSBjbGVhbiBhbmQgaXQgYXNzdW1lcyB0aGF0IHlvdXIgQyBjb2RlIGlzIGEgd2lsbGluZyBwYXJ0aWNpcGFudCBpbiBnZW5lcmF0aW5nIGVycm9yIG1lc3NhZ2VzLiAoVGhpcyBpc24ndCBnb2luZyB0byBtYWdpY2FsbHkgYWRkIGV4Y2VwdGlvbnMgdG8gYSBjb2RlIHRoYXQgZG9lc24ndCBoYXZlIHRoZW0pLjxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IEV4Y2VwdGlvbiBoYW5kbGluZyB3aXRoIGxvbmdqbXAoKTwvaDI+Ci1FeGNlcHRpb24gaGFuZGxpbmcgY2FuIGFsc28gYmUgYWRkZWQgdG8gQyBjb2RlIHVzaW5nIHRoZSA8dHQ+Jmx0O3NldGptcC5oJmd0OzwvdHQ+IGxpYnJhcnkuIFRoaXMgdXN1YWxseSBpc24ndCBkb2N1bWVudGVkIHZlcnkgd2VsbCAoYXQgbGVhc3Qgbm90IGluIGFueSBvZiBteSBDIGJvb2tzKS4gSW4gYW55IGNhc2UsIGhlcmUncyBvbmUgaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzIHRoZSBDIHByZXByb2Nlc3NvciA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotLyogRmlsZSA6IGV4Y2VwdC5jCi0gICBKdXN0IHRoZSBkZWNsYXJhdGlvbiBvZiBhIGZldyBnbG9iYWwgdmFyaWFibGVzIHdlJ3JlIGdvaW5nIHRvIHVzZSAqLwotCi0jaW5jbHVkZSAmbHQ7c2V0am1wLmgmZ3Q7Ci1qbXBfYnVmIGV4Y2VwdGlvbl9idWZmZXI7Ci1pbnQgZXhjZXB0aW9uX3N0YXR1czsKLQotLyogRmlsZSA6IGV4Y2VwdC5oICovCi0jaW5jbHVkZSAmbHQ7c2V0am1wLmgmZ3Q7Ci1leHRlcm4gam1wX2J1ZiBleGNlcHRpb25fYnVmZmVyOwotZXh0ZXJuIGludCBleGNlcHRpb25fc3RhdHVzOwotCi0jZGVmaW5lIHRyeSBpZiAoKGV4Y2VwdGlvbl9zdGF0dXMgPSBzZXRqbXAoZXhjZXB0aW9uX2J1ZmZlcikpID09IDApCi0jZGVmaW5lIGNhdGNoKHZhbCkgZWxzZSBpZiAoZXhjZXB0aW9uX3N0YXR1cyA9PSB2YWwpCi0jZGVmaW5lIHRocm93KHZhbCkgbG9uZ2ptcChleGNlcHRpb25fYnVmZmVyLHZhbCkKLSNkZWZpbmUgZmluYWxseSBlbHNlCi0KLS8qIEV4Y2VwdGlvbiBjb2RlcyAqLwotCi0jZGVmaW5lIFJhbmdlRXJyb3IgICAgIDEKLSNkZWZpbmUgRGl2aXNpb25CeVplcm8gMgotI2RlZmluZSBPdXRPZk1lbW9yeSAgICAzCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgd2l0aGluIGEgQyBwcm9ncmFtLCB5b3UgY2FuIGRvIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRvdWJsZSBpbnYoZG91YmxlIHgpIHsKLQlpZiAoeCkgcmV0dXJuIDEuMC94OwotCWVsc2Uge3Rocm93KERpdmlzaW9uQnlaZXJvKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRmluYWxseSwgdG8gY3JlYXRlIGEgU1dJRyBleGNlcHRpb24gaGFuZGxlciwgd3JpdGUgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXsKLSNpbmNsdWRlICJleGNlcHQuaCIKLSV9Ci0KLSVleGNlcHQocGVybDUpIHsKLQl0cnkgewotCQkkZnVuY3Rpb24KLQl9IGNhdGNoKFJhbmdlRXJyb3IpIHsKLQkJY3JvYWsoIlJhbmdlIEVycm9yIik7Ci0JfSBjYXRjaChEaXZpc2lvbkJ5WmVybykgewotCQljcm9haygiRGl2aXNpb24gYnkgemVybyIpOwotCX0gY2F0Y2goT3V0T2ZNZW1vcnkpIHsKLQkJY3JvYWsoIk91dCBvZiBtZW1vcnkiKTsKLQl9IGZpbmFsbHkgewotCQljcm9haygiVW5rbm93biBleGNlcHRpb24iKTsKLQl9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQXQgdGhpcyBwb2ludCwgeW91J3JlIHNheWluZyB0aGlzIHN1cmUgbG9va3MgYWxvdCBsaWtlIEMrKyBhbmQgeW91J2QgYmUgcmlnaHQgKEMrKyBleGNlcHRpb25zIGFyZSBvZnRlbiBpbXBsZW1lbnRlZCBpbiBhIHNpbWlsYXIgbWFubmVyKS4gIEFzIGFsd2F5cywgdGhlIHVzdWFsIGRpc2NsYWltZXJzIGFwcGx5LS15b3VyIG1pbGVhZ2UgbWF5IHZhcnkuICA8cD4KLTxhIG5hbWU9Im40Ij48L2E+PGgyPiBIYW5kbGluZyBDKysgZXhjZXB0aW9uczwvaDI+Ci1IYW5kbGluZyBDKysgZXhjZXB0aW9ucyBpcyBhbG1vc3QgY29tcGxldGVseSB0cml2aWFsICh3ZWxsLCBhbGwgZXhjZXB0IGZvciB0aGUgYWN0dWFsIEMrKyBwYXJ0KS4gICBBIHR5cGljYWwgU1dJRyBleGNlcHRpb24gaGFuZGxlciB3aWxsIGxvb2sgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHBlcmw1KSB7Ci0JdHJ5IHsKLQkJJGZ1bmN0aW9uCi0JfSBjYXRjaChSYW5nZUVycm9yKSB7Ci0JCWNyb2FrKCJSYW5nZSBFcnJvciIpOwotCX0gY2F0Y2goRGl2aXNpb25CeVplcm8pIHsKLQkJY3JvYWsoIkRpdmlzaW9uIGJ5IHplcm8iKTsKLQl9IGNhdGNoKE91dE9mTWVtb3J5KSB7Ci0JCWNyb2FrKCJPdXQgb2YgbWVtb3J5Iik7Ci0JfSBjYXRjaCguLi4pIHsKLQkJY3JvYWsoIlVua25vd24gZXhjZXB0aW9uIik7Ci0JfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgZXhjZXB0aW9uIHR5cGVzIG5lZWQgdG8gYmUgZGVjbGFyZWQgYXMgY2xhc3NlcyBlbHNld2hlcmUsIHBvc3NpYmx5IGluIGEgaGVhZGVyIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmNsYXNzIFJhbmdlRXJyb3Ige307Ci1jbGFzcyBEaXZpc2lvbkJ5WmVybyB7fTsKLWNsYXNzIE91dE9mTWVtb3J5IHt9OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1OZXdlciB2ZXJzaW9ucyBvZiB0aGUgU1dJRyBwYXJzZXIgc2hvdWxkIGlnbm9yZSBleGNlcHRpb25zIHNwZWNpZmllZCBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kb3VibGUgaW52KGRvdWJsZSkgdGhyb3coRGl2aXNpb25CeVplcm8pOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNSI+PC9hPjxoMj4gRGVmaW5pbmcgZGlmZmVyZW50IGV4Y2VwdGlvbiBoYW5kbGVyczwvaDI+Ci1CeSBkZWZhdWx0LCB0aGUgPHR0PiVleGNlcHQ8L3R0PiBkaXJlY3RpdmUgY3JlYXRlcyBhbiBleGNlcHRpb24gaGFuZGxlciB0aGF0IGlzIHVzZWQgZm9yIGFsbCB3cmFwcGVyIGZ1bmN0aW9ucyB0aGF0IGZvbGxvdyBpdC4gICBDcmVhdGluZyBvbmUgdW5pdmVyc2FsIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciBhbGwgZnVuY3Rpb25zIG1heSBiZSB1bndpZWxkeSBhbmQgcHJvbW90ZSBleGNlc3NpdmUgY29kZSBibG9hdCBzaW5jZSB0aGUgaGFuZGxlciB3aWxsIGJlIGlubGluZWQgaW50byBlYWNoIHdyYXBwZXIgZnVuY3Rpb24gY3JlYXRlZC4gICBGb3IgdGhpcyByZWFzb24sIHRoZSBleGNlcHRpb24gaGFuZGxlciBjYW4gYmUgcmVkZWZpbmVkIGF0IGFueSBwb2ludCBpbiBhbiBpbnRlcmZhY2UgZmlsZS4gIFRodXMsIGEgbW9yZSBlZmZpY2llbnQgdXNlIG9mIGV4Y2VwdGlvbiBoYW5kbGluZyBtYXkgd29yayBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVleGNlcHQocHl0aG9uKSB7Ci0JLi4uIHlvdXIgZXhjZXB0aW9uIGhhbmRsZXIgLi4uCi19Ci0vKiBEZWZpbmUgY3JpdGljYWwgb3BlcmF0aW9ucyB0aGF0IGNhbiB0aHJvdyBleGNlcHRpb25zIGhlcmUgKi8KLQotJWV4Y2VwdChweXRob24pOyAgICAgICAgIC8vIENsZWFyIHRoZSBleGNlcHRpb24gaGFuZGxlcgotCi0vKiBEZWZpbmUgbm9uLWNyaXRpY2FsIG9wZXJhdGlvbnMgdGhhdCBkb24ndCB0aHJvdyBleGNlcHRpb25zICovCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im45Ij48L2E+PGgzPiBBcHBseWluZyBleGNlcHRpb24gaGFuZGxlcnMgdG8gc3BlY2lmaWMgZGF0YXR5cGVzLjwvaDM+Ci1BbiBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byB1c2luZyB0aGUgPHR0PiVleGNlcHQ8L3R0PiBkaXJlY3RpdmUgaXMgdG8gdXNlIHRoZSAiZXhjZXB0IiB0eXBlbWFwLiAgVGhpcyBhbGxvd3MgeW91IHRvIGF0dGFjaCBhbiBlcnJvciBoYW5kbGVyIHRvIHNwZWNpZmljIGRhdGF0eXBlcyBhbmQgZnVuY3Rpb24gbmFtZS4gICBUaGUgdHlwZW1hcCBpcyBhcHBsaWVkIHRvIHRoZSByZXR1cm4gdmFsdWUgb2YgYSBmdW5jdGlvbi4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChweXRob24sZXhjZXB0KSB2b2lkICogewotCSRmdW5jdGlvbgotCWlmICghJHNvdXJjZSkgewotCQlQeUV4Y19TZXRTdHJpbmcoUHlFeGNfTWVtb3J5RXJyb3IsIk91dCBvZiBtZW1vcnkgaW4gJG5hbWUiKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotfQotCi12b2lkICptYWxsb2MoaW50IHNpemUpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIGFwcGxpZWQsIHRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgPHR0Pm1hbGxvYygpPC90dD4gYW5kIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBpdCdzIGludmFsaWQuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+UHl0aG9uIDEuNCAoSmFuIDE2IDE5OTcpICBbR0NDIDIuNy4yXQotQ29weXJpZ2h0IDE5OTEtMTk5NSBTdGljaHRpbmcgTWF0aGVtYXRpc2NoIENlbnRydW0sIEFtc3RlcmRhbQotJmd0OyZndDsmZ3Q7IGZyb20gZXhhbXBsZSBpbXBvcnQgKgotJmd0OyZndDsmZ3Q7IGEgPSBtYWxsb2MoMjA0OCkKLSZndDsmZ3Q7Jmd0OyBiID0gbWFsbG9jKDE1MDAwMDAwMDApCi1UcmFjZWJhY2sgKGlubmVybW9zdCBsYXN0KToKLSAgRmlsZSAiJmx0O3N0ZGluJmd0OyIsIGxpbmUgMSwgaW4gPwotTWVtb3J5RXJyb3I6IE91dCBvZiBtZW1vcnkgaW4gbWFsbG9jCi0mZ3Q7Jmd0OyZndDsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotU2luY2UgdHlwZW1hcHMgY2FuIGJlIG5hbWVkLCB5b3UgY2FuIGRlZmluZSBhbiBleGNlcHRpb24gaGFuZGxlciBmb3IgYSBzcGVjaWZpYyBmdW5jdGlvbiBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChweXRob24sZXhjZXB0KSB2b2lkICptYWxsb2MgewotCS4uLgotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHdpbGwgb25seSBiZSBhcHBsaWVkIHRvIHRoZSA8dHQ+bWFsbG9jKCk8L3R0PiBmdW5jdGlvbiByZXR1cm5pbmcgPHR0PnZvaWQgKjwvdHQ+LiAgV2hpbGUgeW91IHByb2JhYmx5IHdvdWxkbid0IHdhbnQgdG8gd3JpdGUgYSBkaWZmZXJlbnQgZXhjZXB0aW9uIGhhbmRsZXIgZm9yIGV2ZXJ5IGZ1bmN0aW9uLCBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIGEgaGlnaCBkZWdyZWUgb2YgY29udHJvbCBpZiB5b3UgbmVlZCBpdC4gICAgV2hlbiB0eXBlbWFwcyBhcmUgdXNlZCwgdGhleSBvdmVycmlkZSBhbnkgZXhjZXB0aW9uIGhhbmRsZXIgZGVmaW5lZCB3aXRoIDx0dD4lZXhjZXB0PC90dD4uPHA+Ci08YSBuYW1lPSJuNiI+PC9hPjxoMj4gVXNpbmcgVGhlIFNXSUcgZXhjZXB0aW9uIGxpYnJhcnk8L2gyPgotVGhlIDx0dD5leGNlcHRpb24uaTwvdHQ+IGxpYnJhcnkgZmlsZSBwcm92aWRlcyBzdXBwb3J0IGZvciBjcmVhdGluZyBsYW5ndWFnZSBpbmRlcGVuZGVudCBleGNlcHRpb25zIGluIHlvdXIgaW50ZXJmYWNlcy4gICAgVG8gdXNlIGl0LCBzaW1wbHkgcHV0IGFuICI8dHQ+JWluY2x1ZGUgZXhjZXB0aW9uLmk8L3R0PiIgaW4geW91ciBpbnRlcmZhY2UgZmlsZS4gICBUaGlzIGNyZWF0ZXMgYSBmdW5jdGlvbjx0dD4gU1dJR19leGNlcHRpb24oKTwvdHQ+IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmFpc2Ugc2NyaXB0aW5nIGxhbmd1YWdlIGV4Y2VwdGlvbnMgaW4gYSBwb3J0YWJsZSBtYW5uZXIuICAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIExhbmd1YWdlIGluZGVwZW5kZW50IGV4Y2VwdGlvbiBoYW5kbGVyCi0laW5jbHVkZSBleGNlcHRpb24uaSAgICAgICAKLQotJWV4Y2VwdCB7Ci0JdHJ5IHsKLQkJJGZ1bmN0aW9uCi0JfSBjYXRjaChSYW5nZUVycm9yKSB7Ci0JCVNXSUdfZXhjZXB0aW9uKFNXSUdfVmFsdWVFcnJvciwgIlJhbmdlIEVycm9yIik7Ci0JfSBjYXRjaChEaXZpc2lvbkJ5WmVybykgewotCQlTV0lHX2V4Y2VwdGlvbihTV0lHX0RpdmlzaW9uQnlaZXJvLCAiRGl2aXNpb24gYnkgemVybyIpOwotCX0gY2F0Y2goT3V0T2ZNZW1vcnkpIHsKLQkJU1dJR19leGNlcHRpb24oU1dJR19NZW1vcnlFcnJvciwgIk91dCBvZiBtZW1vcnkiKTsKLQl9IGNhdGNoKC4uLikgewotCQlTV0lHX2V4Y2VwdGlvbihTV0lHX1J1bnRpbWVFcnJvciwiVW5rbm93biBleGNlcHRpb24iKTsKLQl9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFzIGFyZ3VtZW50cywgIDx0dD5TV0lHX2V4Y2VwdGlvbigpPC90dD4gIHRha2VzIGFuIGVycm9yIHR5cGUgY29kZSAoYW4gaW50ZWdlcikgYW5kIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLiAgIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIGVycm9yIHR5cGVzIGFyZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+U1dJR19NZW1vcnlFcnJvcgotU1dJR19JT0Vycm9yCi1TV0lHX1J1bnRpbWVFcnJvcgotU1dJR19JbmRleEVycm9yCi1TV0lHX1R5cGVFcnJvcgotU1dJR19EaXZpc2lvbkJ5WmVybwotU1dJR19PdmVyZmxvd0Vycm9yCi1TV0lHX1N5bnRheEVycm9yCi1TV0lHX1ZhbHVlRXJyb3IKLVNXSUdfU3lzdGVtRXJyb3IKLVNXSUdfVW5rbm93bkVycm9yCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVNpbmNlIHRoZSA8dHQ+U1dJR19leGNlcHRpb24oKTwvdHQ+IGZ1bmN0aW9uIGlzIGRlZmluZWQgYXQgdGhlIEMtbGV2ZWwgaXQgY2FuIGJlIHVzZWQgZWxzZXdoZXJlIGluIFNXSUcuIFRoaXMgaW5jbHVkZXMgdHlwZW1hcHMgYW5kIGhlbHBlciBmdW5jdGlvbnMuICAgVGhlIGV4Y2VwdGlvbiBsaWJyYXJ5IHByb3ZpZGVzIGEgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgZXhjZXB0aW9uIGhhbmRsaW5nIG1lY2hhbmlzbSwgc28gbWFueSBvZiBTV0lHJ3MgbGlicmFyeSBmaWxlcyBub3cgcmVseSB1cG9uIHRoZSBsaWJyYXJ5IGFzIHdlbGwuPHA+Ci08YSBuYW1lPSJuNyI+PC9hPjxoMj4gRGVidWdnaW5nIGFuZCBvdGhlciBpbnRlcmVzdGluZyB1c2VzIGZvciAlZXhjZXB0PC9oMj4KLVNpbmNlIHRoZSA8dHQ+JWV4Y2VwdCA8L3R0PmRpcmVjdGl2ZSBhbGxvd3MgeW91IHRvIGVuY2Fwc3VsYXRlIHRoZSBhY3R1YWwgQyBmdW5jdGlvbiBjYWxsLCBpdCBjYW4gYWxzbyBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNpbmcgb3BlcmF0aW9ucy4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHRjbCkgewotCXByaW50ZigiRW50ZXJpbmcgZnVuY3Rpb24gOiAkbmFtZVxuIik7Ci0JJGZ1bmN0aW9uCi0JcHJpbnRmKCJMZWF2aW5nIGZ1bmN0aW9uIDogJG5hbWVcbiIpOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1hbGxvd3MgeW91IHRvICBmb2xsb3cgdGhlIGZ1bmN0aW9uIGNhbGxzIGluIG9yZGVyIHRvIHNlZSB3aGVyZSBhbiBhcHBsaWNhdGlvbiBtaWdodCBiZSBjcmFzaGluZy4gICA8cD4KLTxwPgotRXhjZXB0aW9uIGhhbmRsZXJzIGNhbiBhbHNvIGJlIGNoYWluZWQuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWV4Y2VwdCh0Y2wpIHsKLQlwcmludGYoIkVudGVyaW5nIGZ1bmN0aW9uIDogJG5hbWVcbiIpOwotCSRleGNlcHQKLQlwcmludGYoIkxlYXZpbmcgZnVuY3Rpb24gOiAkbmFtZVxuIik7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFueSBwcmV2aW91c2x5IGRlZmluZWQgZXhjZXB0aW9uIGhhbmRsZXIgd2lsbCBiZSBpbnNlcnRlZCBpbiBwbGFjZSBvZiB0aGUgIjx0dD4kZXhjZXB0PC90dD4iIHN5bWJvbC4gIEFzIGEgcmVzdWx0LCB5b3UgY2FuIGF0dGFjaCBkZWJ1Z2dpbmcgY29kZSB0byBleGlzdGluZyBoYW5kbGVycyBpZiBuZWNlc3NhcnkuICAgSG93ZXZlciwgaXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgdGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIGFueSBDL0MrKyBkZWNsYXJhdGlvbnMgYXJlIG1hZGUgKGFzIGV4Y2VwdGlvbiBoYW5kbGVycyBhcmUgYXBwbGllZCBpbW1lZGlhdGVseSB0byBhbGwgZnVuY3Rpb25zIHRoYXQgZm9sbG93IHRoZW0pLjxwPgotPGEgbmFtZT0ibjgiPjwvYT48aDI+IE1vcmUgRXhhbXBsZXM8L2gyPgotQnkgbm93LCB5b3Uga25vdyBtb3N0IG9mIHRoZSBleGNlcHRpb24gYmFzaWNzLiAgU2VlIHRoZSBTV0lHIEV4YW1wbGVzIGRpcmVjdG9yeSBmb3IgbW9yZSBleGFtcGxlcyBhbmQgaWRlYXMuICBGdXJ0aGVyIGNoYXB0ZXJzIHNob3cgaG93IHRvIGdlbmVyYXRlIGV4Y2VwdGlvbnMgaW4gc3BlY2lmaWMgc2NyaXB0aW5nIGxhbmd1YWdlcy48cD4KLTxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0Njo1NyAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9FeHRlbmRpbmcuaHRtbCBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvRXh0ZW5kaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZDJkMmYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9FeHRlbmRpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4NDggKzAsMCBAQAotPCEtLSBQdWJsaXNoZWQgYnkgUXVhZHJhbGF5IFdlYldvcmtzIEhUTUwgTGl0ZSAxLjUuMSAtLT4KLTwhLS0gQW5kIG11bmdlZCBieSBEYXZlJ3Mgc3BlY2lhbCBQeXRob24gc2NyaXB0IC0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5FeHRlbmRpbmcgU1dJRzwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+MTIgRXh0ZW5kaW5nIFNXSUc8L2gxPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iI24xIj5JbnRyb2R1Y3Rpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuMiI+Q29tcGlsaW5nIGEgU1dJRyBleHRlbnNpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+U1dJRyBvdXRwdXQ8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNCI+VGhlIExhbmd1YWdlIGNsYXNzIChzaW1wbGUgdmVyc2lvbik8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNSI+QSB0b3VyIG9mIFNXSUcgZGF0YXR5cGVzPC9hPgotPGxpPiA8YSBocmVmPSIjbjYiPlR5cGVtYXBzIChmcm9tIEMpPC9hPgotPGxpPiA8YSBocmVmPSIjbjciPkZpbGUgbWFuYWdlbWVudDwvYT4KLTxsaT4gPGEgaHJlZj0iI244Ij5OYW1pbmcgU2VydmljZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOSI+Q29kZSBHZW5lcmF0aW9uIEZ1bmN0aW9uczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMCI+V3JpdGluZyBhIFJlYWwgTGFuZ3VhZ2UgTW9kdWxlPC9hPgotPGxpPiA8YSBocmVmPSIjbjExIj5DKysgUHJvY2Vzc2luZzwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMiI+RG9jdW1lbnRhdGlvbiBQcm9jZXNzaW5nPC9hPgotPGxpPiA8YSBocmVmPSIjbjEzIj5UaGUgRnV0dXJlIG9mIFNXSUc8L2E+Ci08L3VsPgotCi08YSBuYW1lPSJuMSI+PC9hPjxoMj4gSW50cm9kdWN0aW9uPC9oMj4KLVRoaXMgY2hhcHRlciBhdHRlbXB0cyB0byBkZXNjcmliZSB0aGUgcHJvY2VzcyBvZiBleHRlbmRpbmcgU1dJRyB0byBzdXBwb3J0IG5ldyB0YXJnZXQgbGFuZ3VhZ2VzIGFuZCBkb2N1bWVudGF0aW9uIG1ldGhvZHMuIEZpcnN0IGEgd29yZCBvZiB3YXJuaW5nLS1TV0lHIHN0YXJ0ZWQgb3V0IGJlaW5nIGEgcmVsYXRpdmVseSBzaW1wbGUgc3lzdGVtIGZvciBidWlsZGluZyBpbnRlcmZhY2VzIHRvIEFOU0kgQyBwcm9ncmFtcy4gU2luY2UgdGhlbiwgaXQgaGFzIGdyb3duIGludG8gc29tZXRoaW5nIG11Y2ggbW9yZSB0aGFuIHRoYXQgKGFsdGhvdWdoIEknbSBzdGlsbCB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGF0KS4gQXMgYSByZXN1bHQsIGl0IGlzIHVuZGVyZ29pbmcgYSBudW1iZXIgb2YgZ3Jvd2luZyBwYWlucy4gQ2VydGFpbiBwYXJ0cyBvZiB0aGUgY29kZSBoYXZlIGJlZW4gcmV3cml0dGVuIGFuZCBvdGhlcnMgY2FuIHByb2JhYmx5IGJlIGRlc2NyaWJlZCBhcyBhIGhhY2tpc2ggbmlnaHRtYXJlLiBJJ20gYWx3YXlzIHdvcmtpbmcgb24gd2F5cyB0byBpbXByb3ZlIHRoZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGV4cGVjdCB0byBmaW5kIGEgZmV3IHdhcnRzIGFuZCBpbmNvbnNpc3RlbmNpZXMuPHA+Ci08YSBuYW1lPSJuMTQiPjwvYT48aDM+IFByZXJlcXVpc2l0ZXM8L2gzPgotSW4gb3JkZXIgdG8gZGV2ZWxvcCBvciBtb2RpZnkgYSBTV0lHIG1vZHVsZSwgSSBhc3N1bWUgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5UaGF0IHlvdSB1bmRlcnN0YW5kIHRoZSBDIEFQSSBmb3IgdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBvZiBpbnRlcmVzdC4KLTxsaT5Zb3UgaGF2ZSBhIGdvb2QgdW5kZXJzdGFuZGluZyBvZiBob3cgU1dJRyBvcGVyYXRlcyBhbmQgYSBnb29kIGlkZWEgb2YgaG93IHR5cGVtYXBzIHdvcmsuCi08bGk+VGhhdCB5b3UgaGF2ZSBzb21lIGV4cGVyaWVuY2Ugd2l0aCBDKysuIFNXSUcgaXMgd3JpdHRlbiBpbiBDKyssIGJ1dCBkb2Vzbid0IHVzZSBpdCBtYXhpbWFsbHkuIEhvd2V2ZXIsIGZhbWlsaWFyaXR5IHdpdGggY2xhc3NlcywgaW5oZXJpdGFuY2UsIGFuZCBvcGVyYXRvciBvdmVybG9hZGluZyB3aWxsIGhlbHAuCi08bGk+VGhhdCB5b3UncmUganVzdCBhIGxpdHRsZSBjcmF6eSAodGhpcyB3aWxsIGhlbHAgYWxvdCkuCi08L3VsPgotPGEgbmFtZT0ibjE1Ij48L2E+PGgzPiBTV0lHIE9yZ2FuaXphdGlvbjwvaDM+Ci1TV0lHIGlzIGJ1aWx0IGFyb3VuZCBhIGNlbnRyYWwgY29yZSBvZiBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgcmVzcG9uc2libGUgZm9yIHBhcnNpbmcgaW50ZXJmYWNlIGZpbGVzLCBtYW5hZ2luZyBkb2N1bWVudGF0aW9uLCBoYW5kbGluZyBkYXRhdHlwZXMsIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucy4gVGhpcyBjb2RlIGlzIGNvbnRhaW5lZCBpbiB0aGUgIlNXSUciIGRpcmVjdG9yeSBvZiB0aGUgZGlzdHJpYnV0aW9uLCBidXQgY29udGFpbnMgbm8gaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gYW55IG9uZSBzY3JpcHRpbmcgbGFuZ3VhZ2UuIFRoZSB2YXJpb3VzIHNjcmlwdGluZyBsYW5ndWFnZSBtb2R1bGVzIGFyZSBpbXBsZW1lbnRlZCBhcyBDKysgY2xhc3NlcyBhbmQgZm91bmQgaW4gdGhlICJNb2R1bGVzIiBkaXJlY3Rvcnkgb2YgdGhlIGRpc3RyaWJ1dGlvbi4gVGhlIGJhc2ljIGlkZWEgYmVoaW5kIHdyaXRpbmcgYSBtb2R1bGUgaXMgdGhhdCB5b3Ugd3JpdGUgYSBsYW5ndWFnZSBjbGFzcyBjb250YWluaW5nIGFib3V0IGEgZG96ZW4gbWV0aG9kcyBmb3IgY3JlYXRpbmcgd3JhcHBlciBmdW5jdGlvbnMsIHZhcmlhYmxlcywgY29uc3RhbnRzLCBldGMuLi4uIFRvIHVzZSB0aGUgbGFuZ3VhZ2UsIHlvdSBzaW1wbHkgY3JlYXRlIGEgbGFuZ3VhZ2UgIm9iamVjdCIsIHBhc3MgaXQgb24gdGhlIHBhcnNlciBhbmQgeW91IG1hZ2ljYWxseSBnZXQgd3JhcHBlciBjb2RlLiBEb2N1bWVudGF0aW9uIG1vZHVsZXMgYXJlIHdyaXR0ZW4gaW4gYSBzaW1pbGFyIG1hbm5lci48cD4KLTxwPgotQW4gaW1wb3J0YW50IGFzcGVjdCBvZiB0aGUgZGVzaWduIGlzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBBTlNJIEMgYW5kIEMrKy4gVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgU1dJRyB3YXMgZGV2ZWxvcGVkIHRvIHN1cHBvcnQgQU5TSSBDIHByb2dyYW1zLiBUbyBhZGQgQysrIHN1cHBvcnQsIGFuIGFkZGl0aW9uYWwgImxheWVyIiB3YXMgYWRkZWQgdG8gdGhlIHN5c3RlbS0tLXRoYXQgaXMsIGFsbCBvZiB0aGUgQysrIHN1cHBvcnQgaXMgcmVhbGx5IGJ1aWx0IG9uIHRvcCBvZiB0aGUgQU5TSSBDIHN1cHBvcnQuIExhbmd1YWdlIG1vZHVsZXMgY2FuIHRha2UgYWR2YW50YWdlIG9mIGJvdGggQyBhbmQgQysrIGFsdGhvdWdoIGEgbW9kdWxlIHdyaXR0ZW4gb25seSBmb3IgQyBjYW4gc3RpbGwgd29yayB3aXRoIEMrKyAoZHVlIHRvIHRoZSBsYXllcmVkIGltcGxlbWVudGF0aW9uKS4gPHA+Ci08cD4KLUFzIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBTV0lHLCBhbGwgZmlsZXMgaW4gdGhlICJTV0lHIiBkaXJlY3Rvcnkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgImNyaXRpY2FsLiIgTWFraW5nIGNoYW5nZXMgaGVyZSBjYW4gY2F1c2Ugc2VyaW91cyBwcm9ibGVtcyBpbiBhbGwgU1dJRyBsYW5ndWFnZSBtb2R1bGVzLiAgV2hlbiBtYWtpbmcgY3VzdG9taXphdGlvbnMsIG9uZSBzaG91bGQgb25seSBjb25zaWRlciBmaWxlcyBpbiB0aGUgIk1vZHVsZXMiIGRpcmVjdG9yeSBpZiBhdCBhbGwgcG9zc2libGUuPHA+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IFRoZSBvcmdhbml6YXRpb24gb2YgdGhpcyBjaGFwdGVyPC9oMz4KLVRoZSByZW1haW5kZXIgb2YgdGhpcyBjaGFwdGVyIGlzIGEgYm90dG9tLXVwIGFwcHJvYWNoIGlzIHRvIGJ1aWxkaW5nIFNXSUcgbW9kdWxlcy4gSXQgd2lsbCBzdGFydCB3aXRoIHRoZSBiYXNpY3MgYW5kIGdyYWR1YWxseSBidWlsZCB1cCBhIHdvcmtpbmcgbGFuZ3VhZ2UgbW9kdWxlLCBpbnRyb2R1Y2luZyBuZXcgY29uY2VwdHMgYXMgbmVlZGVkLjxwPgotPGEgbmFtZT0ibjIiPjwvYT48aDI+IENvbXBpbGluZyBhIFNXSUcgZXh0ZW5zaW9uPC9oMj4KLVRoZSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcyBpcyB0aGF0IG9mIGNvbXBpbGluZyBhbiBleHRlbnNpb24gdG8gU1dJRyBhbmQgdXNpbmcgaXQuIFRoaXMgaXMgdGhlIGVhc3kgcGFydC48cD4KLTxhIG5hbWU9Im4xNyI+PC9hPjxoMz4gUmVxdWlyZWQgZmlsZXM8L2gzPgotVG8gYnVpbGQgYW55IFNXSUcgZXh0ZW5zaW9uIHlvdSBuZWVkIHRvIGxvY2F0ZSB0aGUgZmlsZXMgIjx0dD5zd2lnLmg8L3R0PiIgYW5kICI8dHQ+bGlic3dpZy5hPC90dD4iLiBJbiBhIHR5cGljYWwgaW5zdGFsbGF0aW9uLCB0aGVzZSB3aWxsIHVzdWFsbHkgYmUgZm91bmQgaW4gPHR0Pi91c3IvbG9jYWwvaW5jbHVkZTwvdHQ+IGFuZCA8dHQ+L3Vzci9sb2NhbC9saWI8L3R0PiByZXNwZWN0aXZlbHkuIEFsbCBleHRlbnNpb24gbW9kdWxlcyB3aWxsIG5lZWQgdG8gaW5jbHVkZSB0aGUgIjx0dD5zd2lnLmg8L3R0PiIgaGVhZGVyIGZpbGUgYW5kIGxpbmsgYWdhaW5zdCB0aGUgPHR0PmxpYnN3aWcuYTwvdHQ+IGxpYnJhcnkuIDxwPgotPGEgbmFtZT0ibjE4Ij48L2E+PGgzPiBSZXF1aXJlZCBDKysgY29tcGlsZXI8L2gzPgotRHVlIHRvIG5hbWUtbWFuZ2xpbmcgaW4gdGhlIEMrKyBjb21waWxlciAod2hpY2ggaXMgZGlmZmVyZW50IGJldHdlZW4gY29tcGlsZXIgaW1wbGVtZW50YXRpb25zKSwgeW91IHdpbGwgbmVlZCB0byB1c2UgdGhlIHNhbWUgQysrIGNvbXBpbGVyIHVzZWQgdG8gY29tcGlsZSBTV0lHLiBJZiB5b3UgZG9uJ3Qga25vdyB3aGljaCBDKysgY29tcGlsZXIgd2FzIHVzZWQsIHR5cGluZyBgPHR0PnN3aWcgLXZlcnNpb248L3R0Picgd2lsbCBjYXVzZSBTV0lHIHRvIHByaW50IG91dCBpdHMgdmVyc2lvbiBudW1iZXIgYW5kIHRoZSBDKysgY29tcGlsZXIgdGhhdCB3YXMgdXNlZCB0byBidWlsZCBpdC48cD4KLTxhIG5hbWU9Im4xOSI+PC9hPjxoMz4gV3JpdGluZyBhIG1haW4gcHJvZ3JhbTwvaDM+Ci1UbyBnZXQgYW55IGV4dGVuc2lvbiB0byB3b3JrLCBpdCBpcyBuZWNlc3NhcnkgdG8gd3JpdGUgYSBzbWFsbCA8dHQ+bWFpbigpPC90dD4gcHJvZ3JhbSB0byBjcmVhdGUgYSBsYW5ndWFnZSBvYmplY3QgYW5kIHN0YXJ0IHRoZSBTV0lHIHBhcnNlci4gRm9yIGV4YW1wbGUgOjxicj48cD4KLTxibG9ja3F1b3RlPjxwcmU+I2luY2x1ZGUgJmx0O3N3aWcuaCZndDsKLSNpbmNsdWRlICJzd2lndGNsLmgiICAgICAgICAgICAgICAgICAgICAgICAvLyBMYW5ndWFnZSBzcGVjaWZpYyBoZWFkZXIKLQotZXh0ZXJuIGludCBTV0lHX21haW4oaW50LCBjaGFyICoqLCBMYW5ndWFnZSAqLCBEb2N1bWVudGF0aW9uICopOwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0JCi0JVENMICpsID0gbmV3IFRjbDsgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IExhbmd1YWdlIG9iamVjdAotCWluaXRfYXJncyhhcmdjLCBhcmd2KTsgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgYXJncwotCXJldHVybiBTV0lHX21haW4oYXJnYywgYXJndiwgbCwgMCk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMjAiPjwvYT48aDM+IENvbXBpbGluZzwvaDM+Ci1UbyBjb21waWxlIHlvdXIgZXh0ZW5zaW9uLCBkbyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGMrKyB0Y2wuY3h4IG1haW4uY3h4IC1sc3dpZyAtbyBteXN3aWcKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlIHdlIGdldCBhIHNwZWNpYWwgdmVyc2lvbiBvZiBTV0lHIHRoYXQgY29tcGlsZXMgVGNsIGV4dGVuc2lvbnMuPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gU1dJRyBvdXRwdXQ8L2gyPgotVGhlIG91dHB1dCBvZiBTV0lHIGlzIGEgc2luZ2xlIGZpbGUgdGhhdCBpcyBvcmdhbml6ZWQgYXMgZm9sbG93cyA6PHA+Ci08Y2VudGVyPjxpbWcgc3JjPSJjaDEyLjEucG5nIj48L2NlbnRlcj48cD4KLTxwPgotPHA+Ci1EdXJpbmcgY29kZSBnZW5lcmF0aW9uLCB0aGUgdGhyZWUgc2VjdGlvbnMgYXJlIGNyZWF0ZWQgYXMgc2VwYXJhdGUgZmlsZXMgdGhhdCBhcmUgYWNjZXNzZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBmaWxlIGhhbmRsZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkZJTEUgKmZfaGVhZGVyOyAgICAgICAgICAgICAgLy8gSGVhZGVyIHNlY3Rpb24KLUZJTEUgKmZfd3JhcHBlcnM7ICAgICAgICAgICAgLy8gV3JhcHBlciBzZWN0aW9uCi1GSUxFICpmX2luaXQ7ICAgICAgICAgICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU9uIGV4aXQsIHRoZSB0aHJlZSBmaWxlcyBhcmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgb3V0cHV0IGZpbGUuPHA+Ci08cD4KLVdoZW4gZ2VuZXJhdGluZyBjb2RlLCB5b3VyIGxhbmd1YWdlIG1vZHVsZSBzaG91bGQgdXNlIHRoZSBJL08gZnVuY3Rpb25zIGluIHRoZSBDIDx0dD4mbHQ7c3RkaW8uaCZndDs8L3R0PiBsaWJyYXJ5LiBTV0lHIGRvZXMgbm90IHVzZSB0aGUgQysrIHN0cmVhbXMgbGlicmFyeS48cD4KLTxwPgotVGhlIHVzZSBvZiBlYWNoIG91dHB1dCBzZWN0aW9uIGNhbiBiZSByb3VnaGx5IGRlc2NyaWJlZCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPHVsPgotPGxpPlRoZSBoZWFkZXIgc2VjdGlvbiBjb250YWlucyBmb3J3YXJkIGRlY2xhcmF0aW9ucywgaGVhZGVyIGZpbGVzLCBoZWxwZXIgZnVuY3Rpb25zLCBhbmQgcnVuLXRpbWUgZnVuY3Rpb25zIChzdWNoIGFzIHRoZSBwb2ludGVyIHR5cGUtY2hlY2tlcikuIEFsbCBjb2RlIGluY2x1ZGVkIHdpdGggJXssJX0gYWxzbyBlbmRzIHVwIGhlcmUuCi08bGk+VGhlIHdyYXBwZXIgc2VjdGlvbiBjb250YWlucyBhbGwgb2YgdGhlIFNXSUcgZ2VuZXJhdGVkIHdyYXBwZXIgZnVuY3Rpb25zLiAKLTxsaT5UaGUgaW5pdGlhbGl6YXRpb24gc2VjdGlvbiBpcyBhIHNpbmdsZSBDIGZ1bmN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kdWxlLiBGb3IgbGFyZ2UgbW9kdWxlcywgdGhpcyBmdW5jdGlvbiBjYW4gYmUgcXVpdGUgbGFyZ2UuIEluIGFueSBjYXNlLCBvdXRwdXQgdG8gPHR0PmZfaW5pdDwvdHQ+IHNob3VsZCBiZSB0cmVhdGVkIHdpdGggc29tZSBjYXJlIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGZpbGUgaXMgZXNzZW50aWFsbHkgb25lIGJpZyBDIGZ1bmN0aW9uLgotPC91bD4KLTxhIG5hbWU9Im40Ij48L2E+PGgyPiBUaGUgTGFuZ3VhZ2UgY2xhc3MgKHNpbXBsZSB2ZXJzaW9uKTwvaDI+Ci1Xcml0aW5nIGEgbmV3IGxhbmd1YWdlIG1vZHVsZSBpbnZvbHZlcyBpbmhlcml0aW5nIGZyb20gdGhlIFNXSUcgPHR0Pkxhbmd1YWdlPC90dD4gY2xhc3MgYW5kIGltcGxlbWVudGluZyBtZXRob2RzIGZvciBhIGZldyB2aXJ0dWFsIGZ1bmN0aW9ucy4gQSBtaW5pbWFsIGRlZmluaXRpb24gb2YgYSBuZXcgTGFuZ3VhZ2UgbW9kdWxlIGlzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEZpbGUgOiBteWxhbmcuaAotLy8gQSBtaW5pbWFsIFNXSUcgTGFuZ3VhZ2UgbW9kdWxlCi0KLWNsYXNzIE1ZTEFORyA6IHB1YmxpYyBMYW5ndWFnZSB7Ci1wcml2YXRlOgotCWNoYXIgKm1vZHVsZTsKLXB1YmxpYyA6Ci0JTVlMQU5HKCkgeyAKLQkJbW9kdWxlID0gMDsKLQl9OwotCS8vIFZpcnR1YWwgZnVuY3Rpb25zIHJlcXVpcmVkIGJ5IHRoZSBTV0lHIHBhcnNlcgotCSB2b2lkIHBhcnNlX2FyZ3MoaW50LCBjaGFyICphcmd2W10pOwotCSB2b2lkIHBhcnNlKCk7Ci0JIHZvaWQgY3JlYXRlX2Z1bmN0aW9uKGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqLCBQYXJtTGlzdCAqKTsKLQkgdm9pZCBsaW5rX3ZhcmlhYmxlKGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqKTsKLQkgdm9pZCBkZWNsYXJlX2NvbnN0KGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqLCBjaGFyICopOwotCSB2b2lkIGluaXRpYWxpemUodm9pZCk7Ci0JIHZvaWQgaGVhZGVycyh2b2lkKTsKLQkgdm9pZCBjbG9zZSh2b2lkKTsKLQkgdm9pZCBzZXRfbW9kdWxlKGNoYXIgKixjaGFyICoqKTsKLQkgdm9pZCBjcmVhdGVfY29tbWFuZChjaGFyICosIGNoYXIgKik7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUdpdmVuIHRoZSBhYm92ZSBoZWFkZXIgZmlsZSwgd2UgY2FuIGNyZWF0ZSBhIHZlcnkgc2ltcGxpc3RpYyBsYW5ndWFnZSBtb2R1bGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBBIHNpbXBsZSBTV0lHIExhbmd1YWdlIG1vZHVsZQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNpbmNsdWRlICJzd2lnLmgiCi0jaW5jbHVkZSAibXlsYW5nLmgiCi0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpwYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0vLwotLy8gUGFyc2UgY29tbWFuZCBsaW5lIG9wdGlvbnMgYW5kIGluaXRpYWxpemVzIHZhcmlhYmxlcy4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotdm9pZCBNWUxBTkc6OnBhcnNlX2FyZ3MoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotCXByaW50ZigiR2V0dGluZyBjb21tYW5kIGxpbmUgb3B0aW9uc1xuIik7Ci0JdHlwZW1hcF9sYW5nID0gIm15bGFuZyI7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gdm9pZCBNWUxBTkc6OnBhcnNlKCkKLS8vCi0vLyBTdGFydCBwYXJzaW5nIGFuIGludGVyZmFjZSBmaWxlLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIE1ZTEFORzo6cGFyc2UoKSB7Ci0JZnByaW50ZihzdGRlcnIsIk1ha2luZyB3cmFwcGVycyBmb3IgTXkgTGFuZ3VhZ2VcbiIpOwotCWhlYWRlcnMoKTsKLQl5eXBhcnNlKCk7ICAgICAgIC8vIFJ1biB0aGUgU1dJRyBwYXJzZXIKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBNWUxBTkc6OnNldF9tb2R1bGUoY2hhciAqbW9kX25hbWUsY2hhciAqKm1vZF9saXN0KQotLy8KLS8vIFNldHMgdGhlIG1vZHVsZSBuYW1lLiAgRG9lcyBub3RoaW5nIGlmIGl0J3MgYWxyZWFkeSBzZXQgKHNvIGl0IGNhbgotLy8gYmUgb3ZlcnJpZGRlbiBhcyBhIGNvbW1hbmQgbGluZSBvcHRpb24pLgotLy8KLS8vIG1vZF9saXN0IGlzIGEgTlVMTC10ZXJtaW5hdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBtb2R1bGVzLiAgVGhpcwotLy8gaXMgcmVhbGx5IG9ubHkgdXNlZnVsIHdoZW4gYnVpbGRpbmcgc3RhdGljIGV4ZWN1dGFibGVzLgotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXZvaWQgTVlMQU5HOjpzZXRfbW9kdWxlKGNoYXIgKm1vZF9uYW1lLCBjaGFyICoqbW9kX2xpc3QpIHsKLSAgaWYgKG1vZHVsZSkgcmV0dXJuOwotICBtb2R1bGUgPSBuZXcgY2hhcltzdHJsZW4obW9kX25hbWUpKzFdOwotICBzdHJjcHkobW9kdWxlLG1vZF9uYW1lKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpoZWFkZXJzKHZvaWQpCi0vLwotLy8gR2VuZXJhdGUgdGhlIGFwcHJvcHJpYXRlIGhlYWRlciBmaWxlcyBmb3IgTVlMQU5HIGludGVyZmFjZS4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgTVlMQU5HOjpoZWFkZXJzKHZvaWQpIHsKLSAgCWVtaXRfYmFubmVyKGZfaGVhZGVyKTsgICAgICAgIC8vIFByaW50IHRoZSBTV0lHIGJhbm5lciBtZXNzYWdlCi0JZnByaW50ZihmX2hlYWRlciwiLyogSW1wbGVtZW50YXRpb24gOiBNeSBMYW5ndWFnZSAqL1xuXG4iKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBNWUxBTkc6OmluaXRpYWxpemUodm9pZCkKLS8vCi0vLyBQcm9kdWNlcyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gICBBc3N1bWVzIHRoYXQgdGhlIG1vZHVsZQotLy8gbmFtZSBoYXMgYWxyZWFkeSBiZWVuIHNwZWNpZmllZC4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotdm9pZCBNWUxBTkc6OmluaXRpYWxpemUoKSB7Ci0JaWYgKCFtb2R1bGUpIG1vZHVsZSA9ICJzd2lnIjsgICAgICAgICAvLyBQaWNrIGEgZGVmYXVsdCBuYW1lCi0JLy8gU3RhcnQgZ2VuZXJhdGluZyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KLQlmcHJpbnRmKGZfaW5pdCwiaW50ICVzX2luaXRpYWxpemUoKSB7XG4iLCBtb2R1bGUpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6Y2xvc2Uodm9pZCkKLS8vCi0vLyBGaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiBDbG9zZSBhbnkgYWRkaXRpb25hbCBmaWxlcyBhbmQKLS8vIHJlc291cmNlcyBpbiB1c2UuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgTVlMQU5HOjpjbG9zZSh2b2lkKSB7Ci0JLy8gRmluaXNoIG9mZiBvdXIgaW5pdCBmdW5jdGlvbgotCWZwcmludGYoZl9pbml0LCJ9XG4iKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBNWUxBTkc6OmNyZWF0ZV9jb21tYW5kKGNoYXIgKmNuYW1lLCBjaGFyICppbmFtZSkKLS8vCi0vLyBDcmVhdGVzIGEgbmV3IGNvbW1hbmQgZnJvbSBhIEMgZnVuY3Rpb24uCi0vLyAJCWNuYW1lID0gTmFtZSBvZiB0aGUgQyBmdW5jdGlvbgotLy8JCWluYW1lID0gTmFtZSBvZiBmdW5jdGlvbiBpbiBzY3JpcHRpbmcgbGFuZ3VhZ2UKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotdm9pZCBNWUxBTkc6OmNyZWF0ZV9jb21tYW5kKGNoYXIgKmNuYW1lLCBjaGFyICppbmFtZSkgewotCWZwcmludGYoZl9pbml0LCJcdCBDcmVhdGluZyBjb21tYW5kICVzXG4iLCBpbmFtZSk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpjcmVhdGVfZnVuY3Rpb24oY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICpkLCBQYXJtTGlzdCAqbCkKLS8vCi0vLyBDcmVhdGUgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgcmVnaXN0ZXIgaXQgd2l0aCB0aGUgaW50ZXJwcmV0ZXIuCi0vLwkJbmFtZSA9IE5hbWUgb2YgcmVhbCBDIGZ1bmN0aW9uCi0vLwkJaW5hbWUgPSBOYW1lIG9mIGZ1bmN0aW9uIGluIHNjcmlwdGluZyBsYW5ndWFnZQotLy8JCWQgPSBSZXR1cm4gZGF0YXR5cGUKLS8vCQlsID0gRnVuY3Rpb24gcGFyYW1ldGVycwotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi12b2lkIE1ZTEFORzo6Y3JlYXRlX2Z1bmN0aW9uKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBEYXRhVHlwZSAqZCwgUGFybUxpc3QgKmwpIHsKLQlmcHJpbnRmKGZfd3JhcHBlcnMsIlxud3JhcF8lcygpIHsgfVxuXG4iLCBuYW1lKTsKLQljcmVhdGVfY29tbWFuZChuYW1lLGluYW1lKTsKLX0KLQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6bGlua192YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKnQpCi0vLwotLy8gQ3JlYXRlIGEgbGluayB0byBhIEMgdmFyaWFibGUuCi0vLwkJbmFtZSA9IE5hbWUgb2YgQyB2YXJpYWJsZQotLy8JCWluYW1lID0gTmFtZSBvZiB2YXJpYWJsZSBpbiBzY3JpcHRpbmcgbGFuZ3VhZ2UKLS8vCQl0ID0gRGF0YXR5cGUgb2YgdGhlIHZhcmlhYmxlCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXZvaWQgTVlMQU5HOjpsaW5rX3ZhcmlhYmxlKGNoYXIgKm5hbWUsIGNoYXIgKmluYW1lLCBEYXRhVHlwZSAqdCkgewotCWZwcmludGYoZl9pbml0LCJcdCBMaW5raW5nIHZhcmlhYmxlIDogJXNcbiIsIGluYW1lKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBNWUxBTkc6OmRlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkKLS8vCi0vLyBNYWtlcyBhIGNvbnN0YW50LiAKLS8vCQluYW1lID0gTmFtZSBvZiB0aGUgY29uc3RhbnQKLS8vIAkJaW5hbWUgPSBTY3JpcHRpbmcgbGFuZ3VhZ2UgbmFtZSBvZiBjb25zdGFudAotLy8JCXR5cGUgPSBEYXRhdHlwZSBvZiB0aGUgY29uc3RhbnQKLS8vCQl2YWx1ZSA9IENvbnN0YW50IHZhbHVlIChhcyBhIHN0cmluZykKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotdm9pZCBNWUxBTkc6OmRlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkgewotCWZwcmludGYoZl9pbml0LCJcdCBDcmVhdGluZyBjb25zdGFudCA6ICVzID0gJXNcbiIsIG5hbWUsIHZhbHVlKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVG8gY29tcGlsZSBvdXIgbmV3IGxhbmd1YWdlLCB3ZSB3cml0ZSBhIG1haW4gcHJvZ3JhbSAoYXMgZGVzY3JpYmVkIHByZXZpb3VzbHkpIGFuZCBkbyB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGcrKyBtYWluLmN4eCBteWxhbmcuY3h4IC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1ML3Vzci9sb2NhbC9saWIgLWxzd2lnIC1vIG15c3dpZwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Ob3csIHRyeSBydW5uaW5nIHRoaXMgbmV3IHZlcnNpb24gb2YgU1dJRyBvbiBhIGZldyBpbnRlcmZhY2UgZmlsZXMgdG8gc2VlIHdoYXQgaGFwcGVucy4gVGhlIHZhcmlvdXMgPHR0PnByaW50ZigpPC90dD4gc3RhdGVtZW50cyB3aWxsIHNob3cgeW91IHdoZXJlIG91dHB1dCBhcHBlYXJzIGFuZCBob3cgaXQgaXMgc3RydWN0dXJlZC4gRm9yIGV4YW1wbGUsIGlmIHdlIHJ1biB0aGlzIG1vZHVsZSBvbiB0aGUgZm9sbG93aW5nIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogZXhhbXBsZS5pICovCi0lbW9kdWxlIGV4YW1wbGUKLSV7Ci0vKiBQdXQgaGVhZGVycyBhbmQgb3RoZXIgZGVjbGFyYXRpb25zIGhlcmUgKi8KLSV9Ci0KLS8vIEEgZnVuY3Rpb24KLWV4dGVybiBkb3VibGUgZm9vKGRvdWJsZSBhLCBkb3VibGUgYik7Ci0KLS8vIEEgdmFyaWFibGUKLWV4dGVybiBpbnQgYmFyOwotCi0vLyBBIGNvbnN0YW50Ci0jZGVmaW5lIFNQQU0gNDIKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2UgZ2V0IHRoZSBmb2xsb3dpbmcgb3V0cHV0IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKgotICogRklMRSA6IGV4YW1wbGVfd3JhcC5jCi0gKgotICogVGhpcyBmaWxlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSA6Ci0gKiBTaW1wbGlmaWVkIFdyYXBwZXIgYW5kIEludGVyZmFjZSBHZW5lcmF0b3IgKFNXSUcpCi0gKiBWZXJzaW9uIDEuMSAgKEZpbmFsKQotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NS0xOTk3Ci0gKiBUaGUgVW5pdmVyc2l0eSBvZiBVdGFoIGFuZCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgotICogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGluIGFueSBtYW5uZXIgcHJvdmlkZWQKLSAqIHRoaXMgbm90aWNlIHJlbWFpbnMgaW50YWN0LgotICoKLSAqIERvIG5vdCBtYWtlIGNoYW5nZXMgdG8gdGhpcyBmaWxlLS1jaGFuZ2VzIHdpbGwgYmUgbG9zdCEKLSAqCi0gKi8KLQotCi0jZGVmaW5lIFNXSUdDT0RFCi0vKiBJbXBsZW1lbnRhdGlvbiA6IE15IExhbmd1YWdlICovCi0KLQotLyogUHV0IGhlYWRlcnMgYW5kIG90aGVyIGRlY2xhcmF0aW9ucyBoZXJlICovCi1leHRlcm4gZG91YmxlIGZvbyhkb3VibGUgLGRvdWJsZSApOwotZXh0ZXJuIGludCAgYmFyOwotCi13cmFwX2ZvbygpIHsgfQotCi1pbnQgZXhhbXBsZV9pbml0aWFsaXplKCkgewotICAgICAgICAgQ3JlYXRpbmcgY29tbWFuZCBmb28KLSAgICAgICAgIExpbmtpbmcgdmFyaWFibGUgOiBiYXIKLSAgICAgICAgIENyZWF0aW5nIGNvbnN0YW50IDogU1BBTSA9IDQyCi19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUxvb2tpbmcgYXQgdGhlIGxhbmd1YWdlIG1vZHVsZSBhbmQgdGhlIG91dHB1dCBnaXZlcyBzb21lIGlkZWEgb2YgaG93IHRoaW5ncyBhcmUgc3RydWN0dXJlZC4gIFRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBmaWxlIGlzIGEgYmFubmVyIG1lc3NhZ2UgcHJpbnRlZCBieSB0aGUgPHR0PmVtaXRfYmFubmVyKCk8L3R0PiBmdW5jdGlvbi4gICAgVGhlICJleHRlcm4iIGRlY2xhcmF0aW9ucyBhcmUgYXV0b21hdGljYWxseSBzdXBwbGllZCBieSB0aGUgU1dJRyBjb21waWxlciB3aGVuIHVzZSBhbiBleHRlcm4gbW9kaWZpZXIuICAgVGhlIHdyYXBwZXIgZnVuY3Rpb25zIGFwcGVhciBhZnRlciBhbGwgb2YgdGhlIGhlYWRlcnMgYW5kIGZvcndhcmQgZGVjbGFyYXRpb25zLiAgRmluYWxseSwgIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBpcyB3cml0dGVuLjxwPgotPHA+Ci1JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoaXMgbWluaW1hbCBtb2R1bGUgaXMgZW5vdWdoIHRvIHVzZSB2aXJ0dWFsbHkgYWxsIGFzcGVjdHMgb2YgU1dJRy4gSWYgd2UgZmVlZCBTV0lHIGEgQysrIGZpbGUsIHdlIHdpbGwgc2VlIG91ciBsb3ctbGV2ZWwgbW9kdWxlIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQgZXZlbiB0aG91Z2ggd2UgaGF2ZSBub3QgZXhwbGljaXRseSBkZWZpbmVkIGFueSBDKysgaGFuZGxpbmcgKHRoaXMgaXMgZHVlIHRvIHRoZSBsYXllcmVkIGFwcHJvYWNoIG9mIGltcGxlbWVudGluZyBDKysgb24gdG9wIG9mIEMpLiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgPHA+Ci08YmxvY2txdW90ZT48cHJlPgotJW1vZHVsZSBleGFtcGxlCi1zdHJ1Y3QgVmVjdG9yIHsKLSAgICAgICAgZG91YmxlIHgseSx6OwotICAgICAgICBWZWN0b3IoKTsKLSAgICAgICAgflZlY3RvcigpOwotICAgICAgICBkb3VibGUgbWFnbml0dWRlKCk7Ci19OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1wcm9kdWNlcyBhY2Nlc3NvciBmdW5jdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgb3V0cHV0IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKgotICogRklMRSA6IGV4YW1wbGVfd3JhcC5jCi0gKgotICogVGhpcyBmaWxlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSA6Ci0gKiBTaW1wbGlmaWVkIFdyYXBwZXIgYW5kIEludGVyZmFjZSBHZW5lcmF0b3IgKFNXSUcpCi0gKiBWZXJzaW9uIDEuMSAgKEZpbmFsKQotICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NS0xOTk3Ci0gKiBUaGUgVW5pdmVyc2l0eSBvZiBVdGFoIGFuZCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLgotICogUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGluIGFueSBtYW5uZXIgcHJvdmlkZWQKLSAqIHRoaXMgbm90aWNlIHJlbWFpbnMgaW50YWN0LgotICoKLSAqIERvIG5vdCBtYWtlIGNoYW5nZXMgdG8gdGhpcyBmaWxlLS1jaGFuZ2VzIHdpbGwgYmUgbG9zdCEKLSAqCi0gKi8KLQotCi0jZGVmaW5lIFNXSUdDT0RFCi0vKiBJbXBsZW1lbnRhdGlvbiA6IE15IExhbmd1YWdlICovCi0KLXN0YXRpYyBkb3VibGUgIFZlY3Rvcl94X3NldChWZWN0b3IgKm9iaiwgZG91YmxlICB2YWwpIHsKLSAgICBvYmotJmd0O3ggPSB2YWw7Ci0gICAgcmV0dXJuIHZhbDsKLX0KLQotd3JhcF9WZWN0b3JfeF9zZXQoKSB7IH0KLQotc3RhdGljIGRvdWJsZSAgVmVjdG9yX3hfZ2V0KFZlY3RvciAqb2JqKSB7Ci0gICAgZG91YmxlICByZXN1bHQ7Ci0gICAgcmVzdWx0ID0gKGRvdWJsZSApIG9iai0mZ3Q7eDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi13cmFwX1ZlY3Rvcl94X2dldCgpIHsgfQotCi1zdGF0aWMgZG91YmxlICBWZWN0b3JfeV9zZXQoVmVjdG9yICpvYmosIGRvdWJsZSAgdmFsKSB7Ci0gICAgb2JqLSZndDt5ID0gdmFsOwotICAgIHJldHVybiB2YWw7Ci19Ci0KLXdyYXBfVmVjdG9yX3lfc2V0KCkgeyB9Ci0KLXN0YXRpYyBkb3VibGUgIFZlY3Rvcl95X2dldChWZWN0b3IgKm9iaikgewotICAgIGRvdWJsZSAgcmVzdWx0OwotICAgIHJlc3VsdCA9IChkb3VibGUgKSBvYmotJmd0O3k7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotd3JhcF9WZWN0b3JfeV9nZXQoKSB7IH0KLQotc3RhdGljIGRvdWJsZSAgVmVjdG9yX3pfc2V0KFZlY3RvciAqb2JqLCBkb3VibGUgIHZhbCkgewotICAgIG9iai0mZ3Q7eiA9IHZhbDsKLSAgICByZXR1cm4gdmFsOwotfQotCi13cmFwX1ZlY3Rvcl96X3NldCgpIHsgfQotCi1zdGF0aWMgZG91YmxlICBWZWN0b3Jfel9nZXQoVmVjdG9yICpvYmopIHsKLSAgICBkb3VibGUgIHJlc3VsdDsKLSAgICByZXN1bHQgPSAoZG91YmxlICkgb2JqLSZndDt6OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXdyYXBfVmVjdG9yX3pfZ2V0KCkgeyB9Ci0KLXN0YXRpYyBWZWN0b3IgKm5ld19WZWN0b3IoKSB7Ci0gICAgcmV0dXJuIG5ldyBWZWN0b3IoKTsKLX0KLQotd3JhcF9uZXdfVmVjdG9yKCkgeyB9Ci0KLXN0YXRpYyB2b2lkIGRlbGV0ZV9WZWN0b3IoVmVjdG9yICpvYmopIHsKLSAgICBkZWxldGUgb2JqOwotfQotCi13cmFwX2RlbGV0ZV9WZWN0b3IoKSB7IH0KLQotc3RhdGljIGRvdWJsZSAgVmVjdG9yX21hZ25pdHVkZShWZWN0b3IgKm9iaikgewotICAgIGRvdWJsZSAgX3Jlc3VsdCA9IChkb3VibGUgKW9iai0mZ3Q7bWFnbml0dWRlKCk7Ci0gICAgcmV0dXJuIF9yZXN1bHQ7Ci19Ci0KLXdyYXBfVmVjdG9yX21hZ25pdHVkZSgpIHsgfQotCi1pbnQgZXhhbXBsZV9pbml0aWFsaXplKCkgewotICAgICAgICAgQ3JlYXRpbmcgY29tbWFuZCBWZWN0b3JfeF9zZXQKLSAgICAgICAgIENyZWF0aW5nIGNvbW1hbmQgVmVjdG9yX3hfZ2V0Ci0gICAgICAgICBDcmVhdGluZyBjb21tYW5kIFZlY3Rvcl95X3NldAotICAgICAgICAgQ3JlYXRpbmcgY29tbWFuZCBWZWN0b3JfeV9nZXQKLSAgICAgICAgIENyZWF0aW5nIGNvbW1hbmQgVmVjdG9yX3pfc2V0Ci0gICAgICAgICBDcmVhdGluZyBjb21tYW5kIFZlY3Rvcl96X2dldAotICAgICAgICAgQ3JlYXRpbmcgY29tbWFuZCBuZXdfVmVjdG9yCi0gICAgICAgICBDcmVhdGluZyBjb21tYW5kIGRlbGV0ZV9WZWN0b3IKLSAgICAgICAgIENyZWF0aW5nIGNvbW1hbmQgVmVjdG9yX21hZ25pdHVkZQotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaXRoIGp1c3QgYSBsaXR0bGUgd29yaywgd2UgYWxyZWFkeSBzZWUgdGhhdCBTV0lHIGRvZXMgcXVpdGUgYWxvdCBmb3IgdXMuICAgTm93IG91ciB0YXNrIGlzIHRvIGZpbGwgaW4gdGhlIHZhcmlvdXMgTGFuZ3VhZ2UgbWV0aG9kcyB3aXRoIHRoZSByZWFsIGNvZGUgbmVlZGVkIHRvIHByb2R1Y2UgYSB3b3JraW5nIG1vZHVsZS4gICBCZWZvcmUgZG9pbmcgdGhhdCwgd2UgZmlyc3QgbmVlZCB0byB0YWtlIGEgdG91ciBvZiBzb21lIGltcG9ydGFudCBTV0lHIGRhdGF0eXBlcyBhbmQgZnVuY3Rpb25zLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IEEgdG91ciBvZiBTV0lHIGRhdGF0eXBlczwvaDI+Ci1XaGlsZSBTV0lHIGhhcyBiZWNvbWUgc29tZXdoYXQgY29tcGxpY2F0ZWQgb3ZlciB0aGUgbGFzdCB5ZWFyLCBpdHMgaW50ZXJuYWwgb3BlcmF0aW9uIGlzIGJhc2VkIG9uIGp1c3QgYSBmZXcgZnVuZGFtZW50YWwgZGF0YXR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgZGVzY3JpYmVkIG5vdyBhbHRob3VnaCBleGFtcGxlcyBvZiB1c2luZyB0aGUgdmFyaW91cyBkYXRhdHlwZXMgYXJlIHNob3duIGxhdGVyLjxwPgotPGEgbmFtZT0ibjIxIj48L2E+PGgzPiBUaGUgRGF0YVR5cGUgY2xhc3M8L2gzPgotQWxsIEMgZGF0YXR5cGVzIGFyZSByZXByZXNlbnRlZCBieSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZSA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotCi1jbGFzcyBEYXRhVHlwZSB7Ci1wdWJsaWM6Ci0JRGF0YVR5cGUoKTsKLQlEYXRhVHlwZShEYXRhVHlwZSAqKTsKLQl+RGF0YVR5cGUoKTsKLQlpbnQgICAgICAgICB0eXBlOyAgICAgICAgICAgICAgICAvLyBTV0lHIFR5cGUgY29kZQotCWNoYXIgICAgICAgIG5hbWVbTUFYTkFNRV07ICAgICAgIC8vIE5hbWUgb2YgdHlwZQotCWNoYXIgICAgICAgIGlzX3BvaW50ZXI7ICAgICAgICAgIC8vIElzIHRoaXMgYSBwb2ludGVyPwotCWNoYXIgICAgICAgIGltcGxpY2l0X3B0cjsgICAgICAgIC8vIEltcGxpY2l0IHB0cgotCWNoYXIgICAgICAgIGlzX3JlZmVyZW5jZTsgICAgICAgIC8vIEEgQysrIHJlZmVyZW5jZSB0eXBlCi0JY2hhciAgICAgICAgc3RhdHVzOyAgICAgICAgICAgICAgLy8gSXMgdGhpcyBkYXRhdHlwZSByZWFkLW9ubHk/Ci0JY2hhciAgICAgICAgKnF1YWxpZmllcjsgICAgICAgICAgLy8gQSBxdWFsaWZpZXIgc3RyaW5nIChpZS4gY29uc3QpLgotCWNoYXIgICAgICAgICphcnJheXN0cjsgICAgICAgICAgIC8vIFN0cmluZyBjb250YWluaW5nIGFycmF5IHBhcnQKLQlpbnQgICAgICAgICBpZDsgICAgICAgICAgICAgICAgICAvLyB0eXBlIGlkZW50aWZpZXIgKHVuaXF1ZSBmb3IgZXZlcnkgdHlwZSkuCi0JLy8gT3V0cHV0IG1ldGhvZHMKLQljaGFyICAgICAgICpwcmludF90eXBlKCk7ICAgICAgICAvLyBSZXR1cm4gc3RyaW5nIGNvbnRhaW5pbmcgZGF0YXR5cGUKLQljaGFyICAgICAgICpwcmludF9mdWxsKCk7ICAgICAgICAvLyBSZXR1cm4gc3RyaW5nIHdpdGggZnVsbCBkYXRhdHlwZQotCWNoYXIgICAgICAgKnByaW50X2Nhc3QoKTsgICAgICAgIC8vIFJldHVybiBzdHJpbmcgZm9yIHR5cGUgY2FzdGluZwotCWNoYXIgICAgICAgKnByaW50X21hbmdsZSgpOyAgICAgIC8vIFJldHVybiBtYW5nbGVkIHZlcnNpb24gb2YgdHlwZQotCWNoYXIgICAgICAgKnByaW50X21hbmdsZV9kZWZhdWx0KCk7IC8vIERlZmF1bHQgbWFuZ2xpbmcgc2NoZW1lCi0JY2hhciAgICAgICAqcHJpbnRfcmVhbCgpOyAgICAgICAgLy8gUHJpbnQgdGhlIHJlYWwgZGF0YXR5cGUKLQljaGFyICAgICAgICpwcmludF9hcnJheWNhc3QoKTsgICAvLyBQcmludHMgYW4gYXJyYXkgY2FzdAotCS8vIEFycmF5IHF1ZXJ5IGZ1bmN0aW9ucwotCWludCAgICAgICAgYXJyYXlfZGltZW5zaW9ucygpOyAgIC8vIFJldHVybiBudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoaWYgYW55KQotCWNoYXIgICAgICAgKmdldF9kaW1lbnNpb24oaW50KTsgIC8vIFJldHVybiBzdHJpbmcgZm9yIGEgcGFydGljdWxhciBkaW1lbnNpb24KLX07Ci0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGZ1bmRhbWVudGFsIEMgZGF0YXR5cGVzIGFyZSBnaXZlbiBhIHVuaXF1ZSBudW1lcmljYWwgY29kZSB3aGljaCBpcyBzdG9yZWQgaW4gdGhlIDx0dD50eXBlPC90dD4gZmllbGQuIFRoZSBjdXJyZW50IGxpc3Qgb2YgdHlwZXMgaXMgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+QyBEYXRhdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICBTV0lHIFR5cGUgQ29kZQotaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9JTlQKLXNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0hPUlQKLWxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfTE9ORwotY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9DSEFSCi1mbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX0ZMT0FUCi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX0RPVUJMRQotdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9WT0lECi11bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICBUX1VJTlQKLXVuc2lnbmVkIHNob3J0ICAgICAgICAgICAgICAgICAgICAgIFRfVVNIT1JUCi11bnNpZ25lZCBsb25nICAgICAgICAgICAgICAgICAgICAgICBUX1VMT05HCi11bnNpZ25lZCBjaGFyICAgICAgICAgICAgICAgICAgICAgICBUX1VDSEFSCi1zaWduZWQgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICBUX1NDSEFSCi1ib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX0JPT0wKLSZsdDt1c2VyJmd0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfVVNFUgotZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9FUlJPUgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgPHR0PlRfVVNFUjwvdHQ+IHR5cGUgaXMgdXNlZCBmb3IgYWxsIGRlcml2ZWQgZGF0YXR5cGVzIGluY2x1ZGluZyBzdHJ1Y3R1cmVzIGFuZCBjbGFzc2VzLiBUaGUgPHR0PlRfRVJST1I8L3R0PiB0eXBlIGluZGljYXRlcyB0aGF0IGEgcGFyc2UvdHlwZSBlcnJvciBoYXMgb2NjdXJyZWQgYW5kIHdlbnQgdW5kZXRlY3RlZCAoYXMgZmFyIGFzIEkga25vdyB0aGlzIGRvZXNuJ3QgaGFwcGVuKS48cD4KLTxwPgotVGhlIDx0dD5uYW1lW108L3R0PiBmaWVsZCBjb250YWlucyB0aGUgYWN0dWFsIG5hbWUgb2YgdGhlIGRhdGF0eXBlIGFzIHNlZW4gYnkgdGhlIHBhcnNlciBhbmQgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8gYSBtYXhpbXVtIG9mIDk2IGJ5dGVzIChtb3JlIHRoYW4gZW5vdWdoIGZvciBtb3N0IGFwcGxpY2F0aW9ucykuICBJZiBhIHR5cGVkZWYgaGFzIGJlZW4gdXNlZCwgdGhlIG5hbWUgZmllbGQgY29udGFpbnMgdGhlIGFjdHVhbCBuYW1lIHVzZWQsIG5vdCB0aGUgbmFtZSBvZiB0aGUgcHJpbWl0aXZlIEMgZGF0YXR5cGUuIEhlcmUgYXJlIHNvbWUgZXhhbXBsZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkMgRGF0YXR5cGUgICAgICAgICAgICB0eXBlICAgICAgICAgICAgICAgIG5hbWVbXQotZG91YmxlICAgICAgICAgICAgICAgIFRfRE9VQkxFICAgICAgICAgICAgZG91YmxlCi11bnNpZ25lZCBpbnQgICAgICAgICAgVF9VSU5UICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQKLXNpZ25lZCBsb25nICAgICAgICAgICBUX0xPTkcgICAgICAgICAgICAgIHNpZ25lZCBsb25nCi1zdHJ1Y3QgVmVjdG9yICAgICAgICAgVF9VU0VSICAgICAgICAgICAgICBzdHJ1Y3QgVmVjdG9yCi1SZWFsICAgICAgICAgICAgICAgICAgVF9ET1VCTEUgICAgICAgICAgICBSZWFsCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUMgcXVhbGlmaWVycyBzdWNoIGFzICI8dHQ+Y29uc3Q8L3R0PiIgb3IgIjx0dD52b2xhdGlsZTwvdHQ+IiBhcmUgc3RvcmVkIHNlcGFyYXRlbHkgaW4gdGhlIDx0dD5xdWFsaWZpZXI8L3R0PiBmaWVsZC4gSW4gb3JkZXIgdG8gcHJvZHVjZSB1c2FibGUgd3JhcHBlciBjb2RlLCBTV0lHIG9mdGVuIG5lZWRzIHRvIHN0cmlwIHRoZSBxdWFsaWZpZXJzLiBGb3IgZXhhbXBsZSwgdHJ5aW5nIHRvIGFzc2lnbiBhIHBhc3NlZCBmdW5jdGlvbiBhcmd1bWVudCBpbnRvIGEgdHlwZSBvZiAiPHR0PmNvbnN0IGludDwvdHQ+IiB3aWxsIGlycml0YXRlIG1vc3QgY29tcGlsZXJzLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGtpbmQgb2YgYXNzaWdubWVudCBpcyB1bmF2b2lkYWJsZSB3aGVuIGNvbnZlcnRpbmcgYXJndW1lbnRzIGJldHdlZW4gYSBzY3JpcHRpbmcgYW5kIEMgcmVwcmVzZW50YXRpb24uPHA+Ci08cD4KLVRoZSA8dHQ+aXNfcG9pbnRlcjwvdHQ+IGZpZWxkIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhIHBhcnRpY3VsYXIgZGF0YXR5cGUgaXMgYSBwb2ludGVyLiBUaGUgdmFsdWUgb2YgPHR0PmlzX3BvaW50ZXI8L3R0PiBkZXRlcm1pbmVzIHRoZSBsZXZlbCBvZiBpbmRpcmVjdGlvbiB1c2VkLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+QyBEYXRhdHlwZSAgICAgICAgICAgdHlwZSAgICAgICAgICAgICAgICAgIGlzX3BvaW50ZXIKLWRvdWJsZSAqICAgICAgICAgICAgIFRfRE9VQkxFICAgICAgICAgICAgICAxCi1pbnQgKioqICAgICAgICAgICAgICBUX0lOVCAgICAgICAgICAgICAgICAgMwotY2hhciAqICAgICAgICAgICAgICAgVF9DSEFSICAgICAgICAgICAgICAgIDEKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5pbXBsaWNpdF9wdHI8L3R0PiBmaWVsZCBpcyBhbiBpbnRlcm5hbGx5IHVzZWQgcGFyYW1ldGVyIHRoYXQgaXMgdXNlZCB0byBwcm9wZXJseSBoYW5kbGUgdGhlIHVzZSBvZiBwb2ludGVycyBpbiB0eXBlZGVmIHN0YXRlbWVudHMuIEhvd2V2ZXIsIGZvciB0aGUgY3VyaW91cywgaW4gaW5kaWNhdGVzIHRoZSBsZXZlbCBvZiBpbmRpcmVjdGlvbiBpbXBsaWNpdGx5IGRlZmluZWQgaW4gYSBkYXRhdHlwZS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgY2hhciAqU3RyaW5nOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1pcyByZXByZXNlbnRlZCBieSBhIGRhdGF0eXBlIHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT50eXBlICAgICAgICAgICA9IFRfQ0hBUjsKLW5hbWVbXSAgICAgICAgID0gIlN0cmluZyI7Ci1pc19wb2ludGVyICAgICA9IDE7Ci1pbXBsaWNpdF9wdHIgICA9IDE7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vcm1hbGx5LCBsYW5ndWFnZSBtb2R1bGVzIGRvIG5vdCB3b3JyeSBhYm91dCB0aGUgPHR0PmltcGxpY2l0X3B0ciA8L3R0PmZpZWxkLjxwPgotPHA+Ci1DKysgcmVmZXJlbmNlcyBhcmUgaW5kaWNhdGVkIGJ5IHRoZSA8dHQ+aXNfcmVmZXJlbmNlPC90dD4gZmllbGQuIEJ5IGRlZmF1bHQsIHRoZSBwYXJzZXIgY29udmVydHMgcmVmZXJlbmNlcyBpbnRvIHBvaW50ZXJzIHdoaWNoIG1ha2VzIHRoZW0gaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBvdGhlciBwb2ludGVyIGRhdGF0eXBlcy4gSG93ZXZlciwga25vd2luZyB0aGF0IHNvbWV0aGluZyBpcyBhIHJlZmVyZW5jZSBlZmZlY3RzIHNvbWUgY29kZSBnZW5lcmF0aW9uIHByb2NlZHVyZXMgc28gdGhpcyBmaWVsZCBjYW4gYmUgY2hlY2tlZCB0byBzZWUgaWYgYSBkYXRhdHlwZSByZWFsbHkgaXMgYSBDKysgcmVmZXJlbmNlLjxwPgotPHA+Ci1UaGUgPHR0PmFycmF5c3RyPC90dD4gZmllbGQgaXMgdXNlZCB0byBob2xkIHRoZSBhcnJheSBkaW1lbnNpb25zIG9mIGFycmF5IGRhdGF0eXBlcy4gVGhlIGRpbWVuc2lvbnMgYXJlIHNpbXBseSByZXByZXNlbnRlZCBieSBhIHN0cmluZy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkMgRGF0YXR5cGUgICAgICAgICAgICB0eXBlICAgICAgICAgIGlzX3BvaW50ZXIgICAgICAgIGFycmF5c3RyCi1kb3VibGUgYVs1MF0gICAgICAgICAgVF9ET1VCTEUgICAgICAgMSAgICAgICAgICAgICAgICBbNTBdCi1pbnQgYlsyMF1bMzBdWzUwXSAgICAgVF9JTlQgICAgICAgICAgMSAgICAgICAgICAgICAgICBbMjBdWzMwXVs1MF0KLWNoYXIgKltNQVhdICAgICAgICAgICBUX0NIQVIgICAgICAgICAyICAgICAgICAgICAgICAgIFtNQVhdCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVNXSUcgY29udmVydHMgYWxsIGFycmF5cyBpbnRvIHBvaW50ZXJzLiBUaHVzIGEgIjx0dD5kb3VibGUgWzUwXTwvdHQ+IiBpcyByZWFsbHkganVzdCBhIHNwZWNpYWwgdmVyc2lvbiBvZiAiPHR0PmRvdWJsZSAqPC90dD4iLiBJZiBhIGRhdGF0eXBlIGlzIG5vdCBkZWNsYXJlZCBhcyBhbiBhcnJheSwgdGhlIDx0dD5hcnJheXN0cjwvdHQ+IGZpZWxkIGNvbnRhaW5zIHRoZSBOVUxMIHBvaW50ZXIuPHA+Ci08cD4KLUEgY29sbGVjdGlvbiBvZiAib3V0cHV0IiBtZXRob2RzIGFyZSBhdmFpbGFibGUgZm9yIGRhdGF0eXBlcy4gVGhlIG5hbWVzIG9mIHRoZXNlIG1ldGhvZHMgYXJlIG1haW5seSAiaGlzdG9yaWNhbCIgaW4gdGhhdCB0aGV5IGRvbid0IGFjdHVhbGx5ICJwcmludCIgYW55dGhpbmcsIGJ1dCBub3cgcmV0dXJuIGNoYXJhY3RlciBzdHJpbmdzIGluc3RlYWQuIEFzc3VtaW5nIHRoYXQgPHR0PnQ8L3R0PiBpcyBhIGRhdGF0eXBlIHJlcHJlc2VudGluZyB0aGUgQyBkYXRhdHlwZSAiPHR0PmNvbnN0IGludCAqPC90dD4iLCBoZXJlJ3Mgd2hhdCB0aGUgbWV0aG9kcyBwcm9kdWNlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5PcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQKLXQtJmd0O3ByaW50X3R5cGUoKSAgICAgICAgICAgICAgICAgICAgIGludCAqCi10LSZndDtwcmludF9mdWxsKCkgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKgotdC0mZ3Q7cHJpbnRfY2FzdCgpICAgICAgICAgICAgICAgICAgICAgKGludCAqKQotdC0mZ3Q7cHJpbnRfbWFuZ2xlKCkgICAgICAgICAgICAgICAgICAgJmx0OyBsYW5ndWFnZSBkZXBlbmRlbnQgJmd0OwotdC0mZ3Q7cHJpbnRfbWFuZ2xlX2RlZmF1bHQoKSAgICAgICAgICAgX2ludF9wCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUEgZmV3IGFkZGl0aW9uYWwgb3V0cHV0IG1ldGhvZHMgYXJlIHByb3ZpZGVkIGZvciBkZWFsaW5nIHdpdGggYXJyYXlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT50eXBlICAgICAgICAgICAgICAgICBPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgIE91dHB1dAotaW50IGFbNTBdICAgICAgICAgICAgdC0mZ3Q7cHJpbnRfdHlwZSgpICAgICAgICAgICAgICBpbnQgKgotaW50IGFbNTBdICAgICAgICAgICAgdC0mZ3Q7cHJpbnRfcmVhbCgpICAgICAgICAgICAgICBpbnQgWzUwXQotaW50IGFbNTBdICAgICAgICAgICAgdC0mZ3Q7cHJpbnRfYXJyYXljYXN0KCkgICAgICAgICAoaW50ICopCi1pbnQgYVs1MF1bNTBdICAgICAgICB0LSZndDtwcmludF9hcnJheWNhc3QoKSAgICAgICAgIChpbnQgKCopWzUwXSkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhcnJheXMgaXMgYWxzbyBhdmFpbGFibGUgdXNpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGUgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgUmVzdWx0Ci1pbnQgYVs1MF0gICAgICAgICAgICB0LSZndDthcnJheV9kaW1lbnNpb24oKSAgICAgICAgIDEKLWludCBhWzUwXSAgICAgICAgICAgIHQtJmd0O2dldF9kaW1lbnNpb24oMCkgICAgICAgICAgNTAKLWludCBiW01BWE5dWzEwXSAgICAgIHQtJmd0O2FycmF5X2RpbWVuc2lvbigpICAgICAgICAgMgotaW50IGJbTUFYTl1bMTBdICAgICAgdC0mZ3Q7Z2V0X2RpbWVuc2lvbigwKSAgICAgICAgICBNQVhOCi1pbnQgYltNQVhOXVsxMF0gICAgICB0LSZndDtnZXRfZGltZW5zaW9uKDEpICAgICAgICAgIDEwCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+RGF0YVR5cGU8L3R0PiBjbGFzcyBjb250YWlucyBhIHZhcmlldHkgb2Ygb3RoZXIgbWV0aG9kcyBmb3IgbWFuYWdpbmcgdHlwZWRlZnMsIHNjb3BpbmcsIGFuZCBvdGhlciBvcGVyYXRpb25zLiAgICBUaGVzZSBhcmUgdXN1YWxseSBvbmx5IHVzZWQgYnkgdGhlIFNXSUcgcGFyc2VyLiAgIFdoaWxlIGF2YWlsYWJsZSB0byBsYW5ndWFnZSBtb2R1bGVzIHRvbywgdGhleSBhcmUgbmV2ZXIgdXNlZCAoYXQgbGVhc3Qgbm90IGluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uKSwgYW5kIHNob3VsZCBwcm9iYWJseSBiZSBhdm9pZGVkIHVubGVzcyB5b3UgYWJzb2x1dGVseSBrbm93IHdoYXQgeW91J3JlIGRvaW5nIChub3QgdGhhdCB0aGlzIGlzIGEgc3RyaWN0IHJlcXVpcmVtZW50IG9mIGNvdXJzZSkuPHA+Ci08YSBuYW1lPSJuMjIiPjwvYT48aDM+IEZ1bmN0aW9uIFBhcmFtZXRlcnM8L2gzPgotRWFjaCBhcmd1bWVudCBvZiBhIGZ1bmN0aW9uIGNhbGwgaXMgcmVwcmVzZW50ZWQgdXNpbmcgdGhlIDx0dD5QYXJtPC90dD4gc3RydWN0dXJlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zdHJ1Y3QgUGFybSB7Ci0JUGFybShEYXRhVHlwZSAqdHlwZSwgY2hhciAqbmFtZSk7Ci0JUGFybShQYXJtICpwKTsKLQl+UGFybSgpOwotCURhdGFUeXBlICAgKnQ7ICAgICAgICAgICAgICAgIC8vIERhdGF0eXBlIG9mIHRoaXMgcGFyYW1ldGVyCi0JaW50ICAgICAgICBjYWxsX3R5cGU7ICAgICAgICAgLy8gQ2FsbCB0eXBlICh2YWx1ZSBvciByZWZlcmVuY2Ugb3IgdmFsdWUpCi0JY2hhciAgICAgICAqbmFtZTsgICAgICAgICAgICAgLy8gTmFtZSBvZiBwYXJhbWV0ZXIgKG9wdGlvbmFsKQotCWNoYXIgICAgICAgKmRlZnZhbHVlOyAgICAgICAgIC8vIERlZmF1bHQgdmFsdWUgKGFzIGEgc3RyaW5nKQotCWludCAgICAgICAgaWdub3JlOyAgICAgICAgICAgIC8vIElnbm9yZSBmbGFnCi19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08dHQ+dDwvdHQ+IGlzIHRoZSBkYXRhdHlwZSBvZiB0aGUgcGFyYW1ldGVyLCA8dHQ+bmFtZTwvdHQ+IGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBuYW1lLCBhbmQgPHR0PmRlZnZhbHVlPC90dD4gaXMgYSBkZWZhdWx0IGFyZ3VtZW50IHZhbHVlIChpZiBzdXBwbGllZCkuIDxwPgotPHA+Ci08dHQ+Y2FsbF90eXBlPC90dD4gaXMgYW4gaW50ZWdlciBjb2RlIGRlc2NyaWJpbmcgYW55IHNwZWNpYWwgcHJvY2Vzc2luZy4gIEl0IGNhbiBiZSBvbmUgb2YgdHdvIHZhbHVlcyA6PHA+Ci08cD4KLTx1bD4KLTxsaT48dHQ+Q0FMTF9WQUxVRTwvdHQ+LiAgVGhpcyBtZWFucyB0aGF0IHRoZSBhcmd1bWVudCBpcyBhIHBvaW50ZXIsIGJ1dCB3ZSBzaG91bGQgbWFrZSBpdCB3b3JrIGxpa2UgYSBjYWxsLWJ5LXZhbHVlIGFyZ3VtZW50IGluIHRoZSBzY3JpcHRpbmcgaW50ZXJmYWNlLiAgIFRoaXMgdmFsdWUgdXNlZCB0byBiZSBzZXQgYnkgdGhlIDx0dD4ldmFsPC90dD4gZGlyZWN0aXZlLCBidXQgdGhpcyBhcHByb2FjaCBpcyBub3cgZGVwcmVjYXRlZCAoc2luY2UgdGhlIHNhbWUgZWZmZWN0IGNhbiBiZSBhY2hpZXZlZCBieSB0eXBlbWFwcykuCi08bGk+PHR0PkNBTExfUkVGRVJFTkNFPC90dD4uICBUaGlzIGlzIHNldCB3aGVuIGEgY29tcGxleCBkYXRhdHlwZSBpcyBiZWluZyBwYXNzZWQgYnkgdmFsdWUgdG8gYSBmdW5jdGlvbi4gIFNpbmNlIFNXSUcgY2FuJ3QgaGFuZGxlIGNvbXBsZXggZGF0YXR5cGVzIGJ5IHZhbHVlLCB0aGUgZGF0YXR5cGUgaXMgaW1wbGljaXRseSBjaGFuZ2VkIGludG8gYSBwb2ludGVyIGFuZDx0dD4gY2FsbF90eXBlPC90dD4gc2V0IHRvIDx0dD5DQUxMX1JFRkVSRU5DRTwvdHQ+LiAgICBNYW55IG9mIFNXSUcncyBpbnRlcm5hbHMgbG9vayBhdCB0aGlzIHdoZW4gZ2VuZXJhdGluZyBjb2RlLiAgICBBIGNvbW1vbiBtaXN0YWtlIGlzIGZvcmdldHRpbmcgdGhhdCBhbGwgY29tcGxleCBkYXRhdHlwZXMgaW4gU1dJRyBhcmUgcG9pbnRlcnMuICAgIFRoaXMgaXMgZXZlbiB0aGUgY2FzZSB3aGVuIHdyaXRpbmcgYSBsYW5ndWFnZS1tb2R1bGUtLS10aGUgY29udmVyc2lvbiB0byBwb2ludGVycyB0YWtlcyBwbGFjZSBpbiB0aGUgcGFyc2VyIGJlZm9yZSBkYXRhIGlzIGV2ZW4gcGFzc2VkIGludG8gYSBwYXJ0aWN1bGFyIG1vZHVsZS4KLTwvdWw+Ci08cD4KLVRoZSA8dHQ+aWdub3JlPC90dD4gZmllbGQgaXMgc2V0IHdoZW4gU1dJRyBkZXRlY3RzIHRoYXQgYSBmdW5jdGlvbiBwYXJhbWV0ZXIgaXMgdG8gYmUgImlnbm9yZWQiIHdoZW4gZ2VuZXJhdGluZyB3cmFwcGVyIGZ1bmN0aW9ucy4gICBBbiAiaWdub3JlZCIgcGFyYW1ldGVyIGlzIHVzdWFsbHkgc2V0IHRvIGEgZGVmYXVsdCB2YWx1ZSBhbmQgZWZmZWN0aXZlbHkgZGlzYXBwZWFycyB3aGVuIGEgZnVuY3Rpb24gY2FsbCBpcyBtYWRlIGZyb20gYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgKHRoYXQgaXMsIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBmZXdlciBhcmd1bWVudHMgdGhhbiBhcmUgc3BlY2lmaWVkIGluIHRoZSBpbnRlcmZhY2UgZmlsZSkuICAgICBUaGUgIDx0dD5pZ25vcmU8L3R0PiBmaWVsZCBpcyBub3JtYWxseSBvbmx5IHNldCB3aGVuIGFuICJpZ25vcmUiIHR5cGVtYXAgIGhhcyBiZWVuIHVzZWQuPHA+Ci08cD4KLUFsbCBvZiB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyBhcmUgcGFzc2VkIGluIHRoZSBzdHJ1Y3R1cmUgPHR0PlBhcm1MaXN0PC90dD4uICAgIFRoaXMgc3RydWN0dXJlIGhhcyB0aGUgZm9sbG93aW5nIHVzZXItYWNjZXNpYmxlIG1ldGhvZHMgYXZhaWxhYmxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBQYXJtTGlzdCB7Ci1wdWJsaWM6Ci0gIGludCAgIG5wYXJtczsgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIHBhcm1zIGluIGxpc3QKLSAgdm9pZCAgYXBwZW5kKFBhcm0gKnApOyAgICAgICAgICAvLyBBcHBlbmQgYSBwYXJhbWV0ZXIgdG8gdGhlIGVuZAotICB2b2lkICBpbnNlcnQoUGFybSAqcCwgaW50IHBvcyk7IC8vIEluc2VydCBhIHBhcmFtZXRlciBpbnRvIHRoZSBsaXN0Ci0gIHZvaWQgIGRlbChpbnQgcG9zKTsgICAgICAgICAgICAgLy8gRGVsZXRlIGEgcGFyYW1ldGVyIGF0IHBvc2l0aW9uIHBvcwotICBpbnQgICBudW1vcHQoKTsgICAgICAgICAgICAgICAgIC8vIEdldCBudW1iZXIgb2Ygb3B0aW9uYWwgYXJndW1lbnRzCi0gIGludCAgIG51bWFyZygpOyAgICAgICAgICAgICAgICAgLy8gR2V0IG51bWJlciBvZiBhY3RpdmUgYXJndW1lbnRzCi0gIFBhcm0gKmdldChpbnQgcG9zKTsgICAgICAgICAgICAgLy8gR2V0IHRoZSBwYXJhbWV0ZXIgYXQgcG9zaXRpb24gcG9zCi19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgbWV0aG9kcyBvcGVyYXRlIGluIHRoZSBtYW5uZXIgdGhhdCB5b3Ugd291bGQgZXhwZWN0LiAgICBUaGUgbW9zdCBjb21tb24gb3BlcmF0aW9uIHRoYXQgd2lsbCBiZSBwZXJmb3JtZWQgaW4gYSBsYW5ndWFnZSBtb2R1bGUgaXMgd2Fsa2luZyBkb3duIHRoZSBwYXJhbWV0ZXIgbGlzdCBhbmQgcHJvY2Vzc2luZyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuICBUaGlzIGNhbiBiZSBkb25lIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFdhbGsgZG93biBhIHBhcmFtZXRlciBsaXN0Ci1QYXJtTGlzdCAqbDsgICAgICAgICAgICAgICAgICAgICAgICAvLyBGdW5jdGlvbiBwYXJhbWV0ZXIgbGlzdCAoYWxyZWFkeSBjcmVhdGVkKQotUGFybSAqcDsKLQotZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBsLSZndDtucGFybXM7IGkrKykgewotCXAgPSBsLSZndDtnZXQoaSk7ICAgICAgICAgICAgICAvLyBHZXQgaXRoIHBhcmFtZXRlcgotCS8vIGRvIHNvbWV0aGluZyB3aXRoIHRoZSBwYXJhbWV0ZXIKLQkuLi4KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjIzIj48L2E+PGgzPiBUaGUgU3RyaW5nIENsYXNzPC9oMz4KLVRoZSBwcm9jZXNzIG9mIHdyaXRpbmcgd3JhcHBlciBmdW5jdGlvbnMgaXMgbWFpbmx5IGp1c3QgYSB0ZWRpb3VzIGV4ZXJjaXNlIGluIHN0cmluZyBtYW5pcHVsYXRpb24uICBUbyBtYWtlIHRoaXMgZWFzaWVyLCAgdGhlIDx0dD5TdHJpbmc8L3R0PiBjbGFzcyBwcm92aWRlcyByZWxhdGl2ZWx5IHNpbXBsZSBtZWNoYW5pc20gZm9yIGNvbnN0cnVjdGluZyBzdHJpbmdzLCBjb25jYXRlbmF0aW5nIHZhbHVlcywgcmVwbGFjaW5nIHN5bWJvbHMsIGFuZCBzbyBvbi4gICAgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2xhc3MgU3RyaW5nIHsKLXB1YmxpYzoKLSAgU3RyaW5nKCk7Ci0gIFN0cmluZyhjb25zdCBjaGFyICpzKTsKLSAgflN0cmluZygpOwotICBjaGFyICAqZ2V0KCkgY29uc3Q7Ci0gIGZyaWVuZCBTdHJpbmcmYW1wOyBvcGVyYXRvciZsdDsmbHQ7KFN0cmluZyZhbXA7LGNvbnN0IGNoYXIgKnMpOwotICBmcmllbmQgU3RyaW5nJmFtcDsgb3BlcmF0b3ImbHQ7Jmx0OyhTdHJpbmcmYW1wOyxjb25zdCBpbnQpOwotICBmcmllbmQgU3RyaW5nJmFtcDsgb3BlcmF0b3ImbHQ7Jmx0OyhTdHJpbmcmYW1wOyxjb25zdCBjaGFyKTsKLSAgZnJpZW5kIFN0cmluZyZhbXA7IG9wZXJhdG9yJmx0OyZsdDsoU3RyaW5nJmFtcDssU3RyaW5nJmFtcDspOwotICBmcmllbmQgU3RyaW5nJmFtcDsgb3BlcmF0b3ImZ3Q7Jmd0Oyhjb25zdCBjaGFyICpzLCBTdHJpbmcmYW1wOyk7Ci0gIGZyaWVuZCBTdHJpbmcmYW1wOyBvcGVyYXRvciZndDsmZ3Q7KFN0cmluZyZhbXA7LFN0cmluZyZhbXA7KTsKLSAgU3RyaW5nJmFtcDsgb3BlcmF0b3I9KGNvbnN0IGNoYXIgKik7Ci0gIG9wZXJhdG9yIGNoYXIqKCkgY29uc3QgeyByZXR1cm4gc3RyOyB9Ci0gIHZvaWQgICB1bnRhYmlmeSgpOwotICB2b2lkICAgcmVwbGFjZShjaGFyICp0b2tlbiwgY2hhciAqcmVwKTsKLSAgdm9pZCAgIHJlcGxhY2VpZChjaGFyICppZCwgY2hhciAqcmVwKTsKLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVN0cmluZ3MgY2FuIGJlIG1hbmlwdWxhdGVkIGluIGEgbWFubmVyIHRoYXQgbG9va3Mgc2ltaWxhciB0byBDKysgSS9PIG9wZXJhdGlvbnMuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+U3RyaW5nIHM7Ci0KLXMgJmx0OyZsdDsgInZvaWQiICZsdDsmbHQ7ICIgZm9vKCkge1xuIgotICAmbHQ7Jmx0OyB0YWI0ICZsdDsmbHQ7ICJwcmludGYoXCJIZWxsbyBXb3JsZFwiKTtcbiIKLSAgJmx0OyZsdDsgIn1cbiI7Ci0KLWZwcmludGYoZl93cmFwcGVycywiJXMiLCAoY2hhciAqKSBzKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotcHJvZHVjZXMgdGhlIG91dHB1dCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBmb28oKSB7Ci0gICAgcHJpbnRmKCJIZWxsbyBXb3JsZCIpOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PiZsdDsmbHQ7PC90dD4gb3BlcmF0b3IgYWx3YXlzIGFwcGVuZHMgdG8gdGhlIGVuZCBvZiBhIHN0cmluZyB3aGlsZSA8dHQ+Jmd0OyZndDs8L3R0PiBjYW4gYmUgdXNlZCB0byBpbnNlcnQgYSBzdHJpbmcgYXQgdGhlIGJlZ2lubmluZy4gICBTdHJpbmdzIG1heSBiZSB1c2VkIGFueXdoZXJlIGEgPHR0PmNoYXIgKjwvdHQ+IGlzIGV4cGVjdGVkLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlN0cmluZyBzMSxzMjsKLS4uLgotaWYgKHN0cmNtcChzMSxzMikgPT0gMCkgewotCXByaW50ZigiRXF1YWwhXG4iKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5nZXQoKTwvdHQ+IG1ldGhvZCBjYW4gYmUgdXNlZCB0byBleHBsaWNpdGx5IHJldHVybiB0aGUgPHR0PmNoYXIgKjwvdHQ+IGNvbnRhaW5pbmcgdGhlIHN0cmluZyBkYXRhLiAgIFRoZSA8dHQ+dW50YWJpZnkoKTwvdHQ+IG1ldGhvZCByZXBsYWNlcyB0YWJzIHdpdGggd2hpdGVzcGFjZS4gICBUaGUgPHR0PnJlcGxhY2UoKTwvdHQ+IG1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIHN1YnN0cmluZyByZXBsYWNlbWVudCBhbmQgaXMgdXNlZCBieSB0eXBlbWFwcy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnMucmVwbGFjZSgiJHRhcmdldCIsIl9hcmczIik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+cmVwbGFjZWlkKCk8L3R0PiBtZXRob2QgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB2YWxpZCBDIGlkZW50aWZpZXJzIHdpdGggYSBuZXcgdmFsdWUuICBDIGlkZW50aWZpZXJzIG11c3QgYmUgc3Vycm91bmRlZCBieSB3aGl0ZS1zcGFjZSBvciBvdGhlciBub24taWRlbnRpZmllciBjaGFyYWN0ZXJzLiAgICBUaGUgPHR0PnJlcGxhY2UoKTwvdHQ+IG1ldGhvZCBkb2VzIG5vdCBoYXZlIHRoaXMgcmVzdHJpY3Rpb24uPHA+Ci08YSBuYW1lPSJuMjQiPjwvYT48aDM+IEhhc2ggVGFibGVzPC9oMz4KLUhhc2ggdGFibGVzIGNhbiBiZSBjcmVhdGVkIHVzaW5nIHRoZSA8dHQ+SGFzaDwvdHQ+IGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBIYXNoIHsKLXB1YmxpYzoKLSAgSGFzaCgpOwotICB+SGFzaCgpOwotICBpbnQgICAgYWRkKGNvbnN0IGNoYXIgKmtleSwgdm9pZCAqb2JqZWN0KTsKLSAgaW50ICAgIGFkZChjb25zdCBjaGFyICprZXksIHZvaWQgKm9iamVjdCwgdm9pZCAoKmRlbCkodm9pZCAqKSk7Ci0gIHZvaWQgICpsb29rdXAoY29uc3QgY2hhciAqa2V5KTsKLSAgdm9pZCAgIHJlbW92ZShjb25zdCBjaGFyICprZXkpOwotICB2b2lkICAqZmlyc3QoKTsKLSAgdm9pZCAgKm5leHQoKTsKLSAgY2hhciAgKmZpcnN0a2V5KCk7Ci0gIGNoYXIgICpuZXh0a2V5KCk7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1IYXNoIHRhYmxlcyBzdG9yZSBhcmJpdHJhcnkgb2JqZWN0cyAoY2FzdCB0byA8dHQ+dm9pZCAqPC90dD4pIHdpdGggc3RyaW5nIGtleXMuICAgIEFuIG9wdGlvbmFsIG9iamVjdCBkZWxldGlvbiBmdW5jdGlvbiBtYXkgYmUgcmVnaXN0ZXJlZCB3aXRoIGVhY2ggZW50cnkgdG8gZGVsZXRlIG9iamVjdHMgd2hlbiB0aGUgaGFzaCBpcyBkZXN0cm95ZWQuICBIYXNoIHRhYmxlcyBhcmUgcHJpbWFyaWx5IHVzZWQgZm9yIG1hbmFnaW5nIGludGVybmFsIHN5bWJvbCB0YWJsZXMgYWx0aG91Z2ggbGFuZ3VhZ2UgbW9kdWxlcyBtYXkgYWxzbyB1c2UgdGhlbSB0byBrZWVwIHRyYWNrIG9mIHNwZWNpYWwgc3ltYm9scyBhbmQgb3RoZXIgc3RhdGUuPHA+Ci08cD4KLVRoZSBmb2xsb3dpbmcgaGFzaCB0YWJsZSBzaG93cyBob3cgb25lIG1pZ2h0IGtlZXAgdHJhY2sgb2YgcmVhbCBhbmQgcmVuYW1lZCBmdW5jdGlvbiBuYW1lcy48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5IYXNoIHdyYXBwZWRfZnVuY3Rpb25zOwotCi1pbnQgYWRkX2Z1bmN0aW9uKGNoYXIgKm5hbWUsIGNoYXIgKnJlbmFtZWQpIHsKLQljaGFyICpubiA9IG5ldyBjaGFyW3N0cmxlbihyZW5hbWVkKSsxXTsKLQlzdHJjcHkobm4scmVuYW1lZCk7Ci0JaWYgKHdyYXBwZWRfZnVuY3Rpb25zLmFkZChuYW1lLG5uKSA9PSAtMSkgewotCQlwcmludGYoIkZ1bmN0aW9uIG11bHRpcGx5IGRlZmluZWQhXG4iKTsKLQkJZGVsZXRlIFtdIG5uOwotCQlyZXR1cm4gLTE7Ci0JfQotfQotY2hhciAqZ2V0X3JlbmFtZWQoY2hhciAqbmFtZSkgewotCWNoYXIgKnJuID0gKGNoYXIgKikgd3JhcHBlZF9mdW5jdGlvbnMubG9va3VwKG5hbWUpOwotCXJldHVybiBybjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5yZW1vdmUoKTwvdHQ+IG1ldGhvZCByZW1vdmVzIGEgaGFzaC10YWJsZSBlbnRyeS4gIFRoZSA8dHQ+Zmlyc3QoKTwvdHQ+IGFuZCA8dHQ+bmV4dCgpPC90dD4gbWV0aG9kcyBhcmUgaXRlcmF0b3JzIGZvciBleHRyYWN0aW5nIGFsbCBvZiB0aGUgaGFzaGVkIG9iamVjdHMuICAgIFRoZXkgcmV0dXJuIE5VTEwgd2hlbiBubyBtb3JlIG9iamVjdHMgYXJlIGZvdW5kIGluIHRoZSBoYXNoLiAgIFRoZSA8dHQ+Zmlyc3RrZXkoKTwvdHQ+IGFuZCA8dHQ+bmV4dGtleSgpIDwvdHQ+bWV0aG9kcyBhcmUgaXRlcmF0b3JzIHRoYXQgcmV0dXJuIHRoZSBoYXNoIGtleXMuICAgTlVMTCBpcyByZXR1cm5lZCB3aGVuIG5vIG1vcmUga2V5cyBhcmUgZm91bmQuPHA+Ci08YSBuYW1lPSJuMjUiPjwvYT48aDM+IFRoZSBXcmFwcGVyRnVuY3Rpb24gY2xhc3M8L2gzPgotRmluYWxseSwgYSA8dHQ+V3JhcHBlckZ1bmN0aW9uPC90dD4gY2xhc3MgaXMgYXZhaWxhYmxlIGZvciBzaW1wbGlmeWluZyB0aGUgY3JlYXRpb24gb2Ygd3JhcHBlciBmdW5jdGlvbnMuICAgVGhlIGNsYXNzIGlzIHByaW1hcmlseSBkZXNpZ25lZCB0byBvcmdhbml6ZSBjb2RlIGdlbmVyYXRpb24gYW5kIHByb3ZpZGUgYSBmZXcgc3VwcG9ydGluZyBzZXJ2aWNlcy4gICAgIFRoZSBjbGFzcyBpcyBkZWZpbmVkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmNsYXNzIFdyYXBwZXJGdW5jdGlvbiB7Ci1wdWJsaWM6Ci0gIFN0cmluZyAgZGVmOwotICBTdHJpbmcgIGxvY2FsczsKLSAgU3RyaW5nICBjb2RlOwotICB2b2lkICAgIHByaW50KEZJTEUgKmYpOwotICB2b2lkICAgIHByaW50KFN0cmluZyAmYW1wO2YpOwotICB2b2lkICAgIGFkZF9sb2NhbChjaGFyICp0eXBlLCBjaGFyICpuYW1lLCBjaGFyICpkZWZ2YWx1ZSA9IDApOwotICBjaGFyICAgKm5ld19sb2NhbChjaGFyICp0eXBlLCBjaGFyICpuYW1lLCBjaGFyICpkZWZ2YWx1ZSA9IDApOwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhyZWUgc3RyaW5ncyBhcmUgYXZhaWxhYmxlLiAgVGhlIDx0dD5kZWY8L3R0PiBzdHJpbmcgY29udGFpbnMgdGhlIGFjdHVhbCBmdW5jdGlvbiBkZWNsYXJhdGlvbiwgdGhlIDx0dD5sb2NhbHM8L3R0PiBzdHJpbmcgY29udGFpbiBsb2NhbCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMsIGFuZCB0aGUgPHR0PmNvZGU8L3R0PiBzdHJpbmcgY29udGFpbnMgdGhlIHJlc3VsdGluZyB3cmFwcGVyIGNvZGUuPHA+Ci08cD4KLVRoZSBtZXRob2QgPHR0PmFkZF9sb2NhbCgpPC90dD4gY3JlYXRlcyBhIG5ldyBsb2NhbCB2YXJpYWJsZSB3aGljaCBpcyBtYW5hZ2VkIHdpdGggYW4gaW50ZXJuYWwgc3ltYm9sIHRhYmxlICh0aGF0IGRldGVjdHMgdmFyaWFibGUgY29uZmxpY3RzIGFuZCByZXBvcnRzIHBvdGVudGlhbCBlcnJvcnMpLiAgICAgVGhlIDx0dD5uZXdfbG9jYWwoKTwvdHQ+IG1ldGhvZCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuZXcgbG9jYWwgdmFyaWFibGUgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIHVuaXF1ZS4gICBTaW5jZSBhIHJlbmFtaW5nIG1pZ2h0IGJlIHJlcXVpcmVkLCB0aGlzIGxhdHRlciBtZXRob2QgcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgdGhhdCB3YXMgYWN0dWFsbHkgc2VsZWN0ZWQgZm9yIHVzZSAodHlwaWNhbGx5LCB0aGlzIGlzIGRlcml2ZWQgZnJvbSB0aGUgb3JpZ2luYWwgbmFtZSkuPHA+Ci08cD4KLVRoZSA8dHQ+cHJpbnQoKTwvdHQ+IG1ldGhvZCBjYW4gYmUgdXNlZCB0byBlbWl0IHRoZSB3cmFwcGVyIGZ1bmN0aW9uIHRvIGEgZmlsZS4gIFRoZSBwcmludGluZyBwcm9jZXNzIGNvbnNvbGlkYXRlcyBhbGwgb2YgdGhlIHN0cmluZ3MgaW50byBhIHNpbmdsZSByZXN1bHQuPHA+Ci08cD4KLUhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSBleGFtcGxlIG9mIHRoZSB3cmFwcGVyIGZ1bmN0aW9uIGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5XcmFwcGVyRnVuY3Rpb24gZjsKLQotZi5kZWYgJmx0OyZsdDsgInZvaWQgY291bnRfbihpbnQgbikgeyI7Ci1mLmFkZF9sb2NhbCgiaW50IiwiaSIpOwotZi5jb2RlICZsdDsmbHQ7IHRhYjQgJmx0OyZsdDsgImZvciAoaSA9IDA7IGkgJmx0OyBuOyBpKyspIHtcbiIKLSAgICAgICAmbHQ7Jmx0OyB0YWI4ICZsdDsmbHQ7ICJwcmludGYoXCIlZFxcblwiLGkpO1xuIgotICAgICAgICZsdDsmbHQ7IHRhYjQgJmx0OyZsdDsgIn1cbiIKLSAgICAgICAmbHQ7Jmx0OyAifVxuIjsKLQotZi5wcmludChmX3dyYXBwZXJzKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBjb3VudF9uKGludCBuKSB7Ci0gICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSAmbHQ7IG47IGkrKykgewotICAgICAgICAgcHJpbnRmKCIlZFxuIixpKTsKLSAgICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU9mIGNvdXJzZSwgYXMgeW91IGNhbiBndWVzcywgdGhlIGZ1bmN0aW9ucyBhY3R1YWxseSBnZW5lcmF0ZWQgYnkgeW91ciBsYW5ndWFnZSBtb2R1bGUgd2lsbCBiZSBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhpcy48cD4KLTxhIG5hbWU9Im42Ij48L2E+PGgyPiBUeXBlbWFwcyAoZnJvbSBDKTwvaDI+Ci1UaGUgdHlwZW1hcHBlciBwbGF5cyBhIGJpZyByb2xlIGluIGdlbmVyYXRpbmcgY29kZSBmb3IgYWxsIG9mIFNXSUcncyBtb2R1bGVzLiAgICBVbmRlcnN0YW5kaW5nIHRoZSA8dHQ+JXR5cGVtYXA8L3R0PiBkaXJlY3RpdmUgYW5kIGhvdyBpdCB3b3JrcyBpcyBwcm9iYWJseSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhpcyBzZWN0aW9uLjxwPgotPGEgbmFtZT0ibjI2Ij48L2E+PGgzPiBUaGUgdHlwZW1hcCBDIEFQSS48L2gzPgotIFRoZXJlIGlzIGEgcmVsYXRpdmVseSBzaW1wbGUgQyBBUEkgZm9yIG1hbmFnaW5nIHR5cGVtYXBzIGluIGxhbmd1YWdlIG1vZHVsZXMuPHA+Ci08cD4KLTxoNj4gPGI+dm9pZCB0eXBlbWFwX3JlZ2lzdGVyKGNoYXIgKm9wLCBjaGFyICpsYW5nLCBEYXRhVHlwZSAqdHlwZSwgY2hhciAqcG5hbWUsPC9iPiA8Yj4gICAgICAgICAgICAgICAgICAgY2hhciAqY29kZSwgUGFybUxpc3QgKmwgPSAwKTs8L2I+PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Ci08ZHQ+PGRkPlJlZ2lzdGVycyBhIG5ldyB0eXBlbWFwIHdpdGggdGhlIHR5cGVtYXBwZXIuICAgVGhpcyBpcyB0aGUgQyBlcXVpdmFsZW50IG9mIHRoZSA8dHQ+JXR5cGVtYXAgPC90dD5kaXJlY3RpdmUuICBGb3IgZXhhbXBsZSA6Ci08ZHQ+PGRkPgotPGJsb2NrcXVvdGU+PHByZT4JJXR5cGVtYXAobGFuZyxvcCkgdHlwZSBwbmFtZSB7IC4uLiBjb2RlIC4uLiB9OwotCSV0eXBlbWFwKGxhbmcsb3ApIHR5cGUgcG5hbWUoUGFybUxpc3QpIHsgLi4uIGNvZGUgLi4uIH07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxkdD48ZGQ+PHR0PmNvZGU8L3R0PiBjb250YWlucyB0aGUgYWN0dWFsIHR5cGVtYXAgY29kZSwgd2hpbGUgPHR0Pmw8L3R0PiBpcyBhIHBhcmFtZXRlciBsaXN0IGNvbnRhaW5pbmcgbG9jYWwgdmFyaWFibGUgZGVjbGFyYXRpb25zLiAgICBOb3JtYWxseSwgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBleGVjdXRlIHRoaXMgZnVuY3Rpb24gZnJvbSBsYW5ndWFnZSBtb2R1bGVzLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgdHlwZW1hcF9yZWdpc3Rlcl9kZWZhdWx0KGNoYXIgKm9wLCBjaGFyICpsYW5nLCBpbnQgdHlwZSwgaW50IHB0ciwgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYXJyYXlzdHIsICBjaGFyICpjb2RlLCBQYXJtTGlzdCAqYXJncyk8L2g2PgotPGRsPgotPGR0PjxkZD4KLTxkdD48ZGQ+UmVnaXN0ZXJzIGEgZGVmYXVsdCB0eXBlbWFwLiAgVGhpcyB3b3JrcyBpbiB0aGUgc2FtZSB3YXkgYXMgdGhlIG5vcm1hbCByZWdpc3RyYXRpb24gZnVuY3Rpb24sIGJ1dCB0YWtlcyBhIHR5cGUgY29kZSAoYW4gaW50ZWdlcikgaW5zdGVhZC4gICAgRGVmYXVsdCB0eXBlbWFwcyBhcmUgbW9yZSBnZW5lcmFsIHRoYW4gbm9ybWFsIHR5cGVtYXBzIChzZWUgYmVsb3cpLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IGNoYXIgKnR5cGVtYXBfbG9va3VwKGNoYXIgKm9wLCBjaGFyICpsYW5nLCBEYXRhVHlwZSAqdHlwZSwgICAgICAgICAgICAgICAgICAgICAgY2hhciAqcG5hbWUsIGNoYXIgKnNvdXJjZSwgY2hhciAqdGFyZ2V0LCAgICAgICAgICAgICAgICAgICAgICBXcmFwcGVyRnVuY3Rpb24gKmYgPSAwKTs8L2g2PgotPGRsPgotPGR0PjxkZD4KLTxkdD48ZGQ+TG9va3MgdXAgYSB0eXBlbWFwLCBwZXJmb3JtcyB2YXJpYWJsZSBzdWJzdGl0dXRpb25zLCBhbmQgcmV0dXJucyBhIHN0cmluZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHR5cGVtYXAgY29kZS4gICAgVGhlIHR1cGxlIDx0dD4ob3AsIGxhbmcsIHR5cGUsIHBuYW1lKTwvdHQ+IGRldGVybWluZSB3aGljaCB0eXBlbWFwIHRvIGZpbmQuICA8dHQ+c291cmNlPC90dD4gY29udGFpbnMgdGhlIHN0cmluZyAgdG8gYmUgYXNzaWduZWQgdG8gdGhlIDx0dD4kc291cmNlPC90dD4gdmFyaWFibGUsIDx0dD50YXJnZXQ8L3R0PiBjb250YWlucyB0aGUgc3RyaW5nIHRvIGJlIGFzc2lnbmVkIHRvIHRoZTx0dD4gJHRhcmdldDwvdHQ+IHZhcmlhYmxlLiAgPHR0PmY8L3R0PiBpcyBhbiBvcHRpb25hbCAgd3JhcHBlciBmdW5jdGlvbiBvYmplY3QuICAgSXQgc2hvdWxkIGJlIHN1cHBsaWVkIHRvIHN1cHBvcnQgcGFyYW1ldGVyaXplZCB0eXBlbWFwcyAoaWUuIHR5cGVtYXBzIHRoYXQgZGVjbGFyZSBhZGRpdGlvbmFsIGxvY2FsIHZhcmlhYmxlcykuIAotPGR0PjxkZD4KLTxkdD48ZGQ+PHR0PnR5cGVtYXBfbG9va3VwKCk8L3R0PiByZXR1cm5zIE5VTEwgaXMgbm8gdHlwZW1hcCBpcyBmb3VuZC4gIE90aGVyd2lzZSBpdCByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgdHlwZW1hcCBjb2RlLiAgICBUaGlzIGNvZGUgaGFzIGEgbnVtYmVyIG9mIHZhcmlhYmxlcyBzdWJzdGl0dXRlZCBpbmNsdWRpbmcgPHR0PiRzb3VyY2U8L3R0PiwgPHR0PiR0YXJnZXQ8L3R0PiwgPHR0PiR0eXBlPC90dD4sIDx0dD4kbWFuZ2xlPC90dD4sIGFuZCA8dHQ+JGJhc2V0eXBlPC90dD4uICAKLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiBjaGFyICp0eXBlbWFwX2NoZWNrKGNoYXIgKm9wLCBjaGFyICpsYW5nLCBEYXRhVHlwZSAqdHlwZSwgY2hhciAqcG5hbWUpPC9oNj4KLTxwPgotPGRsPgotPGR0PjxkZD5DaGVja3MgdG8gc2VlIGlmIGEgdHlwZW1hcCBleGlzdHMuICBUaGUgdHVwbGUgPHR0PihvcCwgbGFuZywgdHlwZSwgcG5hbWUpPC90dD4gZGV0ZXJtaW5lIHdoaWNoIHR5cGVtYXAgdG8gZmluZC4gICAgSWYgdGhlIHR5cGVtYXAgZXhpc3RzLCB0aGUgcmF3IHR5cGVtYXAgY29kZSBpcyByZXR1cm5lZC4gIE90aGVyd2lzZSwgTlVMTCBpcyByZXR1cm5lZC4gICBXaGlsZSA8dHQ+dHlwZW1hcF9sb29rdXAoKTwvdHQ+IGNvdWxkIGJlIHVzZWQgdG8gYWNjb21wbGlzaCB0aGUgc2FtZSB0aGluZywgdGhpcyBmdW5jdGlvbiBpcyBtb3JlIGNvbXBhY3QgYW5kIGlzIHNpZ25pZmljYW50bHkgZmFzdGVyIHNpbmNlIGl0IGRvZXMgbm90IHBlcmZvcm0gYW55IHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMuCi08ZHQ+PGRkPgotPC9kbD4KLTxhIG5hbWU9Im4yNyI+PC9hPjxoMz4gV2hhdCBoYXBwZW5zIG9uIHR5cGVtYXAgbG9va3VwPzwvaDM+Ci1XaGVuIGxvb2tpbmcgZm9yIGEgdHlwZW1hcCwgU1dJRyBzZWFyY2hlcyBmb3IgYSBtYXRjaCBpbiBhIHNlcmllcyBvZiBzdGVwcy48cD4KLTxwPgotPHVsPgotPGxpPkV4cGxpY2l0IHR5cGVtYXBzLiAgIFRoZXNlIGFyZSBzcGVjaWZpZWQgZGlyZWN0bHkgd2l0aCB0aGUgPHR0PiV0eXBlbWFwKCk8L3R0PiBkaXJlY3RpdmUuICBOYW1lZCB0eXBlbWFwcyBoYXZlIHRoZSBoaWdoZXN0IHByZWNlZGVuY2Ugd2hpbGUgYXJyYXlzIGhhdmUgaGlnaGVyIHByZWNlZGVuY2UgdGhhbiBwb2ludGVycyAoc2VlIHRoZSB0eXBlbWFwIGNoYXB0ZXIgZm9yIG1vcmUgZGV0YWlscykuCi08bGk+SWYgbm8gZXhwbGljaXQgdHlwZW1hcCBpcyBmb3VuZCwgbWFwcGluZ3MgYXBwbGllZCB3aXRoIHRoZSA8dHQ+JWFwcGx5IDwvdHQ+ZGlyZWN0aXZlIGFyZSBjaGVja2VkLiAgIEJhc2ljYWxseSwgPHR0PiVhcHBseSA8L3R0PmlzIG5vdGhpbmcgbW9yZSB0aGFuIGEgZ2xvcmlmaWVkIHJlbmFtaW5nIG9wZXJhdGlvbi4gICBXZSByZW5hbWUgdGhlIGRhdGF0eXBlIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBleHBsaWNpdCB0eXBlbWFwcyB0aGF0IG1hdGNoLiAgSWYgc28sIHdlIHVzZSB0aGUgdHlwZW1hcCB0aGF0IHdhcyBmb3VuZC4KLTxsaT5EZWZhdWx0IHR5cGVtYXBzLiAgIElmIG5vIG1hdGNoIGlzIGZvdW5kIHdpdGggZWl0aGVyIGV4cGxpY2l0IHR5cGVtYXBzIG9yIGFwcGx5IGRpcmVjdGl2ZXMsIHdlIG1ha2UgYSBmaW5hbCBzZWFyY2ggdXNpbmcgdGhlIGRlZmF1bHQgdHlwZW1hcC4gIFVubGlrZSBvdGhlciB0eXBlbWFwcywgZGVmYXVsdCB0eXBlbWFwcyBhcmUgYXBwbGllZCB0byB0aGUgcmF3IFNXSUcgaW50ZXJuYWwgZGF0YXR5cGVzICg8dHQ+VF9JTlQ8L3R0PiwgPHR0PlRfRE9VQkxFPC90dD4sIDx0dD5UX0NIQVI8L3R0PiwgZXRjLi4uKS4gICBBcyBhIHJlc3VsdCwgdGhleSBhcmUgaW5zZW50aXZlIHRvIHR5cGVkZWZzIGFuZCByZW5hbWluZyBvcGVyYXRpb25zLiAgICBJZiBub3RoaW5nIGlzIGZvdW5kIGhlcmUsIGEgTlVMTCBwb2ludGVyIGlzIHJldHVybmVkIGluZGljYXRpbmcgdGhhdCBubyBtYXBwaW5nIHdhcyBmb3VuZCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGRhdGF0eXBlLgotPC91bD4KLTxwPgotQW5vdGhlciB3YXkgdG8gdGhpbmsgb2YgdGhlIHR5cGVtYXAgbWVjaGFuaXNtIGlzIHRoYXQgaXQgYWx3YXlzIHRyaWVzIHRvIGFwcGx5IHRoZSBtb3N0IHNwZWNpZmljIHR5cGVtYXAgdGhhdCBjYW4gYmUgZm91bmQgZm9yIGFueSBwYXJ0aWN1bGFyIGRhdGF0eXBlLiAgIFdoZW4gc2VhcmNoaW5nLCBpdCBzdGFydHMgd2l0aCB0aGUgbW9zdCBzcGVjaWZpYyBhbmQgd29ya3MgaXRzIHdheSBvdXQgdG8gdGhlIG1vc3QgZ2VuZXJhbCBzcGVjaWZpY2F0aW9uLiAgIElmIG5vdGhpbmcgaXMgZm91bmQgaXQgZ2l2ZXMgdXAgYW5kIHJldHVybnMgYSBOVUxMIHBvaW50ZXIuPHA+Ci08YSBuYW1lPSJuMjgiPjwvYT48aDM+IEhvdyBtYW55IHR5cGVtYXBzIGFyZSB0aGVyZT88L2gzPgotQWxsIHR5cGVtYXBzIGFyZSBpZGVudGlmaWVkIGJ5IGFuIG9wZXJhdGlvbiBzdHJpbmcgc3VjaCBhcyAiaW4iLCAib3V0IiwgIm1lbWJlcmluIiwgZXRjLi4uICBBIG51bWJlciBvZiB0eXBlbWFwcyBhcmUgZGVmaW5lZCBieSBvdGhlciBwYXJ0cyBvZiBTV0lHLCBidXQgeW91IGNhbiBjcmVhdGUgYW55IHNvcnQgb2YgdHlwZW1hcCB0aGF0IHlvdSB3aXNoIGJ5IHNpbXBseSBwaWNraW5nIGEgbmV3IG5hbWUgYW5kIHVzaW5nIGl0IHdoZW4gbWFraW5nIGNhbGxzIHRvIDx0dD50eXBlbWFwX2xvb2t1cCgpPC90dD4gIGFuZCA8dHQ+dHlwZW1hcF9jaGVjaygpPC90dD4uICAgIDxwPgotPGEgbmFtZT0ibjciPjwvYT48aDI+IEZpbGUgbWFuYWdlbWVudDwvaDI+Ci1UaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgcHJvdmlkZWQgZm9yIG1hbmFnaW5nIGZpbGVzIHdpdGhpbiBTV0lHLiAgPHA+Ci08cD4KLTxoNj4gdm9pZCBhZGRfZGlyZWN0b3J5KGNoYXIgKmRpcm5hbWUpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPgotPGR0PjxkZD5BZGRzIGEgbmV3IGRpcmVjdG9yeSB0byB0aGUgc2VhcmNoIHBhdGggdXNlZCB0byBsb2NhdGUgU1dJRyBsaWJyYXJ5IGZpbGVzLiAgVGhpcyBpcyB0aGUgQyBlcXVpdmFsZW50IG9mIHRoZSA8dHQ+c3dpZzwvdHQ+IDx0dD4tSTwvdHQ+IG9wdGlvbi4KLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiBpbnQgaW5zZXJ0X2ZpbGUoY2hhciAqZmlsZW5hbWUsIEZJTEUgKm91dHB1dCk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Ci08ZHQ+PGRkPlNlYXJjaGVzIGZvciBhIGZpbGUgYW5kIGNvcGllcyBpdCBpbnRvIHRoZSBnaXZlbiBvdXRwdXQgc3RyZWFtLiAgIFRoZSBzZWFyY2ggcHJvY2VzcyBnb2VzIHRocm91Z2ggdGhlIFNXSUcgbGlicmFyeSBtZWNoYW5pc20gd2hpY2ggZmlyc3QgY2hlY2tzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdGhlbiBpbiB2YXJpb3VzIHBhcnRzIG9mIHRoZSBTV0lHIGxpYnJhcnkgZm9yIGEgbWF0Y2guICBSZXR1cm5zIC0xIGlmIHRoZSBmaWxlIGlzIG5vdCBmb3VuZC4gTGFuZ3VhZ2UgbW9kdWxlcyBvZnRlbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBpbnNlcnQgc3VwcG9ydGluZyBjb2RlLiAgVXN1YWxseSB0aGVzZSBjb2RlIGZyYWdtZW50cyBhcmUgZ2l2ZW4gYSBgPHR0Pi5zd2c8L3R0Picgc3VmZml4IGFuZCBhcmUgcGxhY2VkIGluIHRoZSBTV0lHIGxpYnJhcnkuIAotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IGludCBnZXRfZmlsZShjaGFyICpmaWxlbmFtZSwgU3RyaW5nICZhbXA7c3RyKTs8L2g2PgotPGRsPgotPGR0PjxkZD4KLTxkdD48ZGQ+CVNlYXJjaGVzIGZvciBhIGZpbGUgYW5kIHJldHVybnMgaXRzIGNvbnRlbnRzICBpbiB0aGUgU3RyaW5nIDx0dD5zdHIuPC90dD5SZXR1cm5zIGEgLTEgaWYgdGhlIGZpbGUgaXMgbm90IGZvdW5kLgotPC9kbD4KLTxwPgotPGg2PiBpbnQgY2hlY2tvdXRfZmlsZShjaGFyICpzb3VyY2UsIGNoYXIgKmRlc3QpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPgotPGR0PjxkZD5Db3BpZXMgYSBmaWxlIGZyb20gdGhlIFNXSUcgbGlicmFyeSBpbnRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIDx0dD5kZXN0IDwvdHQ+aXMgdGhlIGZpbGVuYW1lIG9mIHRoZSBkZXNpcmVkIGZpbGUuICAgVGhpcyBmdW5jdGlvbiB3aWxsIG5vdCByZXBsYWNlIGEgZmlsZSB0aGF0IGFscmVhZHkgZXhpc3RzLiAgVGhlIHByaW1hcnkgdXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZ2l2ZSB0aGUgdXNlciBzdXBwb3J0aW5nIGNvZGUuIEZvciBleGFtcGxlLCB3ZSBjb3VsZCBjaGVjayBvdXQgYSBNYWtlZmlsZSBpZiBub25lIGV4aXN0cy4gIFJldHVybnMgLTEgb24gZmFpbHVyZS4KLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiBpbnQgaW5jbHVkZV9maWxlKGNoYXIgKmZpbGVuYW1lKTs8L2g2PgotPGRsPgotPGR0PjxkZD4KLTxkdD48ZGQ+VGhlIEMgZXF1aXZhbGVudCBvZiB0aGUgU1dJRyA8dHQ+JWluY2x1ZGU8L3R0PiBkaXJlY3RpdmUuICAgV2hlbiBjYWxsZWQsIFNXSUcgd2lsbCBhdHRlbXB0IHRvIG9wZW4gPHR0PmZpbGVuYW1lPC90dD4gYW5kIHN0YXJ0IHBhcnNpbmcgYWxsIG9mIGl0cyBjb250ZW50cy4gICBJZiBzdWNjZXNzZnVsLCBwYXJzaW5nIG9mIHRoZSBuZXcgZmlsZSB3aWxsIHRha2UgcGxhY2UgaW1tZWRpYXRlbHkuICBXaGVuIHRoZSBlbmQgb2YgdGhlIGZpbGUgaXMgcmVhY2hlZCwgdGhlIHBhcnNlciBzd2l0Y2hlcyBiYWNrIHRvIHRoZSBpbnB1dCBmaWxlIGJlaW5nIHJlYWQgcHJpb3IgdG8gdGhpcyBjYWxsLiAgICAgUmV0dXJucyAtMSBpZiB0aGUgZmlsZSBpcyBub3QgZm91bmQuCi08L2RsPgotPGEgbmFtZT0ibjgiPjwvYT48aDI+IE5hbWluZyBTZXJ2aWNlczwvaDI+Ci1UaGUgbmFtaW5nIG1vZHVsZSBwcm92aWRlcyBtZXRob2RzIGZvciBnZW5lcmF0aW5nIHRoZSBuYW1lcyBvZiB3cmFwcGVyIGZ1bmN0aW9ucywgYWNjZXNzb3IgZnVuY3Rpb25zLCBhbmQgb3RoZXIgYXNwZWN0cyBvZiBTV0lHLiAgIEVhY2ggZnVuY3Rpb24gcmV0dXJucyBhIG5ldyBuYW1lIHRoYXQgaXMgYSBzeW50YWN0aWNhbGx5IGNvcnJlY3QgQyBpZGVudGlmaWVyIHdoZXJlIGludmFsaWQgY2hhcmFjdGVycyBoYXZlIGJlZW4gY29udmVydGVkIHRvIGEgIl8iLiAgPHA+Ci08cD4KLTxoNj4gY2hhciAgKm5hbWVfd3JhcHBlcihjaGFyICpmbmFtZSwgY2hhciAqcHJlZml4KTs8L2g2PgotPGRsPgotPGR0PjxkZD5SZXR1cm5zIHRoZSBuYW1lIG9mIGEgd3JhcHBlciBmdW5jdGlvbi4gIEJ5IGRlZmF1bHQsIGl0IHdpbGwgYmUgIjx0dD5fd3JhcF9wcmVmaXhmbmFtZTwvdHQ+Ii4KLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiBjaGFyICAqbmFtZV9tZW1iZXIoY2hhciAqbW5hbWUsIGNoYXIgKmNsYXNzbmFtZTs8L2g2PgotPGRsPgotPGR0PjxkZD5SZXR1cm5zIHRoZSBuYW1lIG9mIGEgQysrIGFjY2Vzc29yIGZ1bmN0aW9uLiAgTm9ybWFsbHksIHRoaXMgaXMgIjx0dD5jbGFzc25hbWVfbW5hbWU8L3R0PiIuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gY2hhciAgKm5hbWVfZ2V0KGNoYXIgKnZuYW1lKTs8L2g2PgotPGRsPgotPGR0PjxkZD5SZXR1cm5zIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIG9yIGNsYXNzIGRhdGEgbWVtYmVyLiAgTm9ybWFsbHkgIjx0dD52bmFtZV9nZXQ8L3R0PiIgaXMgcmV0dXJuZWQuIAotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IGNoYXIgICpuYW1lX3NldChjaGFyICp2bmFtZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+UmV0dXJucyB0aGUgbmFtZSBvZiBhIGZ1bmN0aW9uIHRvIHNldCB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBvciBjbGFzcyBkYXRhIG1lbWJlci4gIE5vcm1hbGx5LCAiPHR0PnZuYW1lX3NldDwvdHQ+IiBpcyByZXR1cm5lZC4gCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gY2hhciAgKm5hbWVfY29uc3RydWN0KGNoYXIgKmNsYXNzbmFtZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+UmV0dXJucyB0aGUgbmFtZSBvZiBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uLiAgTm9ybWFsbHkgcmV0dXJucyAiPHR0Pm5ld19jbGFzc25hbWU8L3R0PiIuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gY2hhciAgKm5hbWVfZGVzdHJveShjaGFyICpjbGFzc25hbWUpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPlJldHVybnMgdGhlIG5hbWUgb2YgYSBkZXN0cnVjdG9yIGZ1bmN0aW9uLiBOb3JtYWxseSByZXR1cm5zICI8dHQ+ZGVsZXRlX2NsYXNzbmFtZTwvdHQ+Ii4KLTxkdD48ZGQ+Ci08L2RsPgotRWFjaCBmdW5jdGlvbiBtYXkgYWxzbyBhY2NlcHQgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIG9mIDx0dD5BU19JUzwvdHQ+LiAgVGhpcyBzdXBwcmVzc2VzIHRoZSBjb252ZXJzaW9uIG9mIGlsbGVnYWwgY2hhcmFjdGVycyAoYSBwcm9jZXNzIHRoYXQgaXMgc29tZXRpbWVzIHJlcXVpcmVkKS4gICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2hhciAqbmFtZSA9IG5hbWVfbWVtYmVyKCJmb28iLCJiYXIiLEFTX0lTKTsgICAvLyBQcm9kdWNlIGEgbmFtZSwgYnV0IGRvbid0IGNoYW5nZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbGxlZ2FsIGNoYXJhY3RlcnMuCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUl0IGlzIGNyaXRpY2FsIHRoYXQgbGFuZ3VhZ2UgbW9kdWxlcyB1c2UgdGhlIG5hbWluZyBmdW5jdGlvbnMuICAgVGhlc2UgZnVuY3Rpb24gYXJlIHVzZWQgdGhyb3VnaG91dCBTV0lHIGFuZCBwcm92aWRlIGEgY2VudHJhbGl6ZWQgbWVjaGFuaXNtIGZvciBrZWVwaW5nIHRyYWNrIG9mIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiBnZW5lcmF0ZWQsIG1hbmFnaW5nIG11bHRpcGxlIGZpbGVzLCBhbmQgc28gZm9ydGguICBJbiBmdXR1cmUgcmVsZWFzZXMsIGl0IG1heSBiZSBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIG5hbWluZyBzY2hlbWUgdXNlZCBieSBTV0lHLiAgVXNpbmcgdGhlc2UgZnVuY3Rpb25zIHNob3VsZCBpbnN1cmUgZnV0dXJlIGNvbXBhdGliaWxpdHkuPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMj4gQ29kZSBHZW5lcmF0aW9uIEZ1bmN0aW9uczwvaDI+Ci1UaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBlbWl0IGNvZGUgdGhhdCBpcyBnZW5lcmFsbHkgdXNlZnVsIGFuZCB1c2VkIGluIGVzc2VudGlhbGx5IGV2ZXJ5IFNXSUcgbGFuZ3VhZ2UgbW9kdWxlLjxwPgotPHA+Ci08aDY+IGludCBlbWl0X2FyZ3MoRGF0YVR5cGUgKnQsIFBhcm1MaXN0ICpsLCBXcmFwcGVyRnVuY3Rpb24gJmFtcDtmKTs8L2g2PgotPGRsPgotPGR0PjxkZD5DcmVhdGVzIGFsbCBvZiB0aGUgbG9jYWwgdmFyaWFibGVzIHVzZWQgZm9yIGZ1bmN0aW9uIGFyZ3VtZW50cyBhbmQgcmV0dXJuIHZhbHVlLiAgPHR0PnQ8L3R0PiBpcyB0aGUgcmV0dXJuIGRhdGF0eXBlIG9mIHRoZSBmdW5jdGlvbiwgPHR0Pmw8L3R0PiBpcyB0aGUgcGFyYW1ldGVyIGxpc3QgaG9sZGluZyBhbGwgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cy4gIDx0dD5mPC90dD4gaXMgYSBXcmFwcGVyRnVuY3Rpb24gb2JqZWN0IHdoZXJlIHRoZSBsb2NhbCAgdmFyaWFibGVzIHdpbGwgYmUgY3JlYXRlZC4KLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiB2b2lkIGVtaXRfZnVuY19jYWxsKGNoYXIgKm5hbWUsIERhdGFUeXBlICp0LCBQYXJtTGlzdCAqbCwgICAgICAgICAgICAgICAgICAgICBXcmFwcGVyRnVuY3Rpb24gJmFtcDtmKTs8L2g2PgotPGRsPgotPGR0PjxkZD5DcmVhdGVzIGEgZnVuY3Rpb24gY2FsbCB0byBhIEMgZnVuY3Rpb24uICA8dHQ+bmFtZTwvdHQ+IGlzIHRoZSBuYW1lIG9mIHRoZSBDIGZ1bmN0aW9uLCA8dHQ+dDwvdHQ+IGlzIHRoZSByZXR1cm4gZGF0YXR5cGUsIDx0dD5sPC90dD4gaXMgdGhlIGZ1bmN0aW9uIHBhcmFtZXRlcnMgYW5kIDx0dD5mPC90dD4gaXMgYSBXcmFwcGVyRnVuY3Rpb24gb2JqZWN0LiAgVGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IG9uZSBoYXMgZmlyc3QgY2FsbGVkIDx0dD5lbWl0X2FyZ3MoKTwvdHQ+LgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgZW1pdF9iYW5uZXIoRklMRSAqZmlsZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+RW1pdHMgdGhlIFNXSUcgYmFubmVyIGNvbW1lbnQgdG8gdGhlIG91dHB1dCBmaWxlLiAgCi08L2RsPgotPHA+Ci08aDY+IHZvaWQgIGVtaXRfc2V0X2dldChjaGFyICpuYW1lLCBjaGFyICpyZW5hbWUsIERhdGFUeXBlICp0KTs8L2g2PgotPGRsPgotPGR0PjxkZD5HaXZlbiBhIHZhcmlhYmxlIG9mIHR5cGUgPHR0PnQ8L3R0PiwgdGhpcyBmdW5jdGlvbiBjcmVhdGVzIHR3byBmdW5jdGlvbnMgdG8gc2V0IGFuZCBnZXQgdGhlIHZhbHVlLiAgVGhlc2UgZnVuY3Rpb25zIGFyZSB0aGVuIHdyYXBwZWQgbGlrZSBub3JtYWwgQyBmdW5jdGlvbnMuICA8dHQ+bmFtZTwvdHQ+IGlzIHRoZSByZWFsIG5hbWUgb2YgdGhlIHZhcmlhYmxlLiAgPHR0PnJlbmFtZTwvdHQ+IGlzIHRoZSByZW5hbWVkIHZlcnNpb24gb2YgdGhlIHZhcmlhYmxlLiAgCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCAgZW1pdF9wdHJfZXF1aXZhbGVuY2UoRklMRSAqZmlsZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+VG8ga2VlcCB0cmFjayBvZiBkYXRhdHlwZXMsIFNXSUcgbWFpbnRhaW5zIGFuIGludGVybmFsIHRhYmxlIG9mICJlcXVpdmFsZW50IiBkYXRhdHlwZXMuICBUaGlzIHRhYmxlIGlzIHVwZGF0ZWQgYnkgdHlwZWRlZiwgY2xhc3MgZGVmaW5pdGlvbnMsIGFuZCBvdGhlciBDIGNvbnN0cnVjdHMuICAgVGhpcyBmdW5jdGlvbiBlbWl0cyBjb2RlIGNvbXBhdGlibGUgd2l0aCB0aGUgdHlwZS1jaGVja2VyIHRoYXQgaXMgbmVlZGVkIHRvIG1ha2Ugc3VyZSBwb2ludGVycyB3b3JrIGNvcnJlY3RseS4gIFR5cGljYWxseSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhZnRlciBhbiBpbnRlcmZhY2UgZmlsZSBoYXMgYmVlbiBwYXJzZWQgY29tcGxldGVseS4KLTwvZGw+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDI+IFdyaXRpbmcgYSBSZWFsIExhbmd1YWdlIE1vZHVsZTwvaDI+Ci1XaGV3LCBhc3N1bWluZyB5b3UndmUgbWFkZSBpdCB0aGlzIGZhciwgd2UncmUgcmVhZHkgdG8gd3JpdGUgYSByZWFsIGxhbmd1YWdlIG1vZHVsZS4gIEluIHRoaXMgZXhhbXBsZSwgd2UnbGwgZGV2ZWxvcCBhIHNpbXBsZSBUY2wgbW9kdWxlLiAgIFRjbCBoYXMgYmVlbiBjaG9zZW4gYmVjYXVzZSBpdCBoYXMgYSByZWxhdGl2ZWx5IHNpbXBsZSBDIEFQSSB0aGF0IGlzIHdlbGwgZG9jdW1lbnRlZCBhbmQgZWFzeSB0byB1bmRlcnN0YW5kLiAgICBUaGUgbW9kdWxlIGRldmVsb3BlZCBoZXJlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgcmVhbCBTV0lHIFRjbCBtb2R1bGUgKHdoaWNoIGlzIHNpZ25pZmljYW50bHkgbW9yZSBjb21wbGljYXRlZCkuICAgPHA+Ci08YSBuYW1lPSJuMjkiPjwvYT48aDM+IFRoZSBoZWFkZXIgZmlsZTwvaDM+Ci1XZSB3aWxsIHN0YXJ0IHdpdGggdGhlIHNhbWUgaGVhZGVyIGZpbGUgYXMgYmVmb3JlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBGaWxlIDogbXlsYW5nLmgKLS8vIEEgc2ltcGxlIFNXSUcgTGFuZ3VhZ2UgbW9kdWxlCi0KLWNsYXNzIE1ZTEFORyA6IHB1YmxpYyBMYW5ndWFnZSB7Ci1wcml2YXRlOgotCWNoYXIgKm1vZHVsZTsKLXB1YmxpYyA6Ci0JTVlMQU5HKCkgeyAKLQkJbW9kdWxlID0gMDsKLQl9OwotCS8vIFZpcnR1YWwgZnVuY3Rpb25zIHJlcXVpcmVkIGJ5IHRoZSBTV0lHIHBhcnNlcgotCSB2b2lkIHBhcnNlX2FyZ3MoaW50LCBjaGFyICphcmd2W10pOwotCSB2b2lkIHBhcnNlKCk7Ci0JIHZvaWQgY3JlYXRlX2Z1bmN0aW9uKGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqLCBQYXJtTGlzdCAqKTsKLQkgdm9pZCBsaW5rX3ZhcmlhYmxlKGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqKTsKLQkgdm9pZCBkZWNsYXJlX2NvbnN0KGNoYXIgKiwgY2hhciAqLCBEYXRhVHlwZSAqLCBjaGFyICopOwotCSB2b2lkIGluaXRpYWxpemUodm9pZCk7Ci0JIHZvaWQgaGVhZGVycyh2b2lkKTsKLQkgdm9pZCBjbG9zZSh2b2lkKTsKLQkgdm9pZCBzZXRfbW9kdWxlKGNoYXIgKixjaGFyICoqKTsKLQkgdm9pZCBjcmVhdGVfY29tbWFuZChjaGFyICosIGNoYXIgKik7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMzAiPjwvYT48aDM+IENvbW1hbmQgTGluZSBPcHRpb25zIGFuZCBCYXNpYyBJbml0aWFsaXphdGlvbjwvaDM+Ci1Db21tYW5kIGxpbmUgb3B0aW9ucyBhcmUgcGFyc2VkIHVzaW5nIHRoZSA8dHQ+cGFyc2VfYXJncygpPC90dD4gbWV0aG9kIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIEEgc2ltcGxlIFNXSUcgTGFuZ3VhZ2UgbW9kdWxlCi0vLwotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSNpbmNsdWRlICJzd2lnLmgiCi0jaW5jbHVkZSAibXlsYW5nLmgiCi0KLXN0YXRpYyBjaGFyICp1c2FnZSA9ICJcCi1NeSBMYW5ndWFnZSBPcHRpb25zXG5cCi0gICAgIC1tb2R1bGUgbmFtZSAgICAtIFNldCBuYW1lIG9mIG1vZHVsZVxuXG4iOwotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6cGFyc2VfYXJncyhpbnQgYXJnYywgY2hhciAqYXJndltdKQotLy8KLS8vIFBhcnNlIG15IGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBpbml0aWFsaXplIGJ5IHZhcmlhYmxlcy4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi12b2lkIE1ZTEFORzo6cGFyc2VfYXJncyhpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gIC8vIExvb2sgZm9yIGNlcnRhaW4gY29tbWFuZCBsaW5lIG9wdGlvbnMKLSAgZm9yIChpbnQgaSA9IDE7IGkgJmx0OyBhcmdjOyBpKyspIHsKLSAgICBpZiAoYXJndltpXSkgewotICAgICAgaWYgKHN0cmNtcChhcmd2W2ldLCItbW9kdWxlIikgPT0gMCkgewotICAgICAgICBpZiAoYXJndltpKzFdKSB7Ci0gICAgICAgICAgc2V0X21vZHVsZShhcmd2W2krMV0sMCk7Ci0gICAgICAgICAgbWFya19hcmcoaSk7Ci0gICAgICAgICAgbWFya19hcmcoaSsxKTsKLSAgICAgICAgICBpKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgYXJnX2Vycm9yKCk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1oZWxwIikgPT0gMCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwiJXNcbiIsIHVzYWdlKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLSAgLy8gU2V0IGxvY2F0aW9uIG9mIFNXSUcgbGlicmFyeQotICBzdHJjcHkoTGliRGlyLCJ0Y2wiKTsKLQotICAvLyBBZGQgYSBzeW1ib2wgdG8gdGhlIHBhcnNlciBmb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24KLSAgYWRkX3N5bWJvbCgiU1dJR1RDTCIsMCwwKTsKLQotICAvLyBBZGQgdHlwZW1hcCBkZWZpbml0aW9ucwotICB0eXBlbWFwX2xhbmcgPSAidGNsIjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotUGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb2xsb3dzIHRoZSBzYW1lIGNvbnZlbnRpb25zIGFzIGZvciB3cml0aW5nIGEgQysrIG1haW4gcHJvZ3JhbSB3aXRoIG9uZSBjYXZlYXQuICBGb3IgZWFjaCBvcHRpb24gdGhhdCB5b3VyIGxhbmd1YWdlIG1vZHVsZSBwYXJzZXMsIHlvdSBuZWVkIHRvIGNhbGwgdGhlIGZ1bmN0aW9uIDx0dD5tYXJrX2FyZygpPC90dD4uICAgVGhpcyB0ZWxscyB0aGUgU1dJRyBtYWluIHByb2dyYW0gdGhhdCB5b3VyIG1vZHVsZSBmb3VuZCBhIHZhbGlkIG9wdGlvbiBhbmQgdXNlZCBpdC4gICBJZiB5b3UgZG9uJ3QgZG8gdGhpcywgU1dJRyB3aWxsIGV4aXQgd2l0aCBhbiBlcnJvciBtZXNzYWdlIGFib3V0IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9ucy48cD4KLTxwPgotQWZ0ZXIgcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywgeW91IG5leHQgbmVlZCB0byBzZXQgdGhlIHZhcmlhYmxlIDx0dD5MaWJEaXI8L3R0PiB3aXRoIHRoZSBuYW1lIG9mIHRoZSBzdWJkaXJlY3RvcnkgeW91ciAgbGFuZ3VhZ2Ugd2lsbCB1c2UgdG8gZmluZCBmaWxlcyBpbiB0aGUgU1dJRyBsaWJyYXJ5LiAgICBTaW5jZSB3ZSBhcmUgbWFraW5nIGEgbmV3IFRjbCBtb2R1bGUsIHdlJ2xsIGp1c3Qgc2V0IHRoaXMgdG8gIjx0dD50Y2w8L3R0PiIuPHA+Ci08cD4KLU5leHQsIHdlIG1heSB3YW50IHRvIGFkZCBhIHN5bWJvbCB0byBTV0lHJ3Mgc3ltYm9sIHRhYmxlLiAgSW4gdGhpcyBjYXNlIHdlJ3JlIGFkZGluZyAiPHR0PlNXSUdUQ0w8L3R0PiIgdG8gaW5kaWNhdGUgdGhhdCB3ZSdyZSB1c2luZyBUY2wuICBTV0lHIG1vZHVsZXMgY2FuIHVzZSB0aGlzIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhbmQgZGV0ZWN0aW5nIHlvdXIgbW9kdWxlIHVzaW5nIDx0dD4jaWZkZWY8L3R0Pi4gICAgPHA+Ci08cD4KLUZpbmFsbHksIHdlIG5lZWQgdG8gc2V0IHRoZSB2YXJpYWJsZSA8dHQ+dHlwZW1hcF9sYW5nPC90dD4uICBUaGlzIHNob3VsZCBiZSBhc3NpZ25lZCBhIG5hbWUgdGhhdCB5b3Ugd291bGQgbGlrZSB0byB1c2UgZm9yIGFsbCB0eXBlbWFwIGRlY2xhcmF0aW9ucy4gICAgV2hlbiBhIHVzZXIgZ2l2ZXMgYSB0eXBlbWFwLCB0aGV5IHdvdWxkIHVzZSB0aGlzIG5hbWUgYXMgdGhlIHRhcmdldCBsYW5ndWFnZS48cD4KLTxhIG5hbWU9Im4zMSI+PC9hPjxoMz4gU3RhcnRpbmcgdGhlIHBhcnNlcjwvaDM+Ci1UbyBzdGFydCB0aGUgU1dJRyBwYXJzZXIsIHRoZSA8dHQ+cGFyc2UoKTwvdHQ+IG1ldGhvZCBpcyB1c2VkIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIHZvaWQgTVlMQU5HOjpwYXJzZSgpCi0vLwotLy8gU3RhcnQgcGFyc2luZyBhbiBpbnRlcmZhY2UgZmlsZSBmb3IgTVlMQU5HLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXZvaWQgTVlMQU5HOjpwYXJzZSgpIHsKLQotCWZwcmludGYoc3RkZXJyLCJNYWtpbmcgd3JhcHBlcnMgZm9yIFRjbFxuIik7Ci0JaGVhZGVycygpOyAgICAgICAvLyBFbWl0IGhlYWRlciBmaWxlcyBhbmQgb3RoZXIgc3VwcG9ydGluZyBjb2RlCi0KLQkvLyBUZWxsIHRoZSBwYXJzZXIgdG8gZmlyc3QgaW5jbHVkZSBhIHR5cGVtYXAgZGVmaW5pdGlvbiBmaWxlCi0KLQlpZiAoaW5jbHVkZV9maWxlKCJsYW5nLm1hcCIpID09IC0xKSB7Ci0JICAgIGZwcmludGYoc3RkZXJyLCJVbmFibGUgdG8gZmluZCBsYW5nLm1hcCFcbiIpOwotCSAgICBTV0lHX2V4aXQoMSk7Ci0gICAgICAgfQotCXl5cGFyc2UoKTsgICAgICAgLy8gUnVuIHRoZSBTV0lHIHBhcnNlcgotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIGZ1bmN0aW9uIHNob3VsZCBwcmludCBzb21lIGtpbmQgb2YgbWVzc2FnZSB0byB0aGUgdXNlciBpbmRpY2F0aW5nIHdoYXQgbGFuZ3VhZ2UgaXMgYmVpbmcgdGFyZ2V0ZWQuICBUaGUgPHR0PmhlYWRlcnMoKTwvdHQ+IG1ldGhvZCBpcyBjYWxsZWQgKHNlZSBiZWxvdykgdG8gZW1pdCBzdXBwb3J0IGNvZGUgYW5kIGhlYWRlciBmaWxlcy4gICAgRmluYWxseSwgd2UgbWFrZSBhIGNhbGwgdG8gPHR0Pnl5cGFyc2UoKTwvdHQ+LiAgVGhpcyBzdGFydHMgdGhlIFNXSUcgcGFyc2VyIGFuZCBkb2VzIG5vdCByZXR1cm4gdW50aWwgdGhlIGVudGlyZSBpbnRlcmZhY2UgZmlsZSBoYXMgYmVlbiByZWFkLiAgPHA+Ci08cD4KLUluIG91ciBpbXBsZW1lbnRhdGlvbiwgd2UgaGF2ZSBhbHNvIGFkZGVkIGNvZGUgdG8gaW1tZWRpYXRlbHkgaW5jbHVkZSBhIGZpbGUgYDx0dD5sYW5nLm1hcDwvdHQ+Jy4gIFRoaXMgZmlsZSB3aWxsIGNvbnRhaW4gdHlwZW1hcCBkZWZpbml0aW9ucyB0byBiZSB1c2VkIGJ5IG91ciBtb2R1bGUgYW5kIGlzIGRlc2NyaWJlZCBpbiBkZXRhaWwgbGF0ZXIuICAgPHA+Ci08YSBuYW1lPSJuMzIiPjwvYT48aDM+IEVtaXR0aW5nIGhlYWRlcnMgYW5kIHN1cHBvcnQgY29kZTwvaDM+Ci1QcmlvciB0byBlbWl0dGluZyBhbnkgY29kZSwgb3VyIG1vZHVsZSBzaG91bGQgZW1pdCBzdGFuZGFyZCBoZWFkZXIgZmlsZXMgYW5kIHN1cHBvcnQgY29kZS4gIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUgPHR0PmhlYWRlcnMoKTwvdHQ+IG1ldGhvZCA6PHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpoZWFkZXJzKHZvaWQpCi0vLwotLy8gR2VuZXJhdGUgdGhlIGFwcHJvcHJpYXRlIGhlYWRlciBmaWxlcyBmb3IgTVlMQU5HIGludGVyZmFjZS4KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBNWUxBTkc6OmhlYWRlcnModm9pZCkKLXsKLSAgZW1pdF9iYW5uZXIoZl9oZWFkZXIpOyAgICAgICAgICAgICAgIC8vIFByaW50IHRoZSBTV0lHIGJhbm5lciBtZXNzYWdlCi0gIGZwcmludGYoZl9oZWFkZXIsIi8qIEltcGxlbWVudGF0aW9uIDogTXkgVENMICovXG5cbiIpOwotCi0gIC8vIEluY2x1ZGUgaGVhZGVyIGZpbGUgY29kZSBmcmFnbWVudCBpbnRvIHRoZSBvdXRwdXQKLSAgaWYgKGluc2VydF9maWxlKCJoZWFkZXIuc3dnIixmX2hlYWRlcikgPT0gLTEpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwiRmF0YWwgRXJyb3IuIFVuYWJsZSB0byBsb2NhdGUgJ2hlYWRlci5zd2cnLlxuIik7Ci0gICAgU1dJR19leGl0KDEpOwotICB9Ci0KLSAgLy8gRW1pdCB0aGUgZGVmYXVsdCBTV0lHIHBvaW50ZXIgdHlwZS1jaGVja2VyIChmb3Igc3RyaW5ncykKLSAgaWYgKGluc2VydF9maWxlKCJzd2lncHRyLnN3ZyIsZl9oZWFkZXIpID09IC0xKSB7Ci0gICAgZnByaW50ZihzdGRlcnIsIkZhdGFsIEVycm9yLiBVbmFibGUgdG8gbG9jYXRlICdzd2lncHRyLnN3ZycuXG4iKTsKLSAgICBTV0lHX2V4aXQoMSk7Ci0gIH0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgaW1wbGVtZW50YXRpb24sIHdlIGVtaXQgdGhlIHN0YW5kYXJkIFNXSUcgYmFubmVyIGZvbGxvd2VkIGJ5IGEgY29tbWVudCBpbmRpY2F0aW5nIHdoaWNoIGxhbmd1YWdlIG1vZHVsZSBpcyBiZWluZyB1c2VkLiAgIEFmdGVyIHRoYXQsIHdlIGFyZSBnb2luZyB0byBpbmNsdWRlIHR3byBkaWZmZXJlbnQgZmlsZXMuICBgPHR0PmhlYWRlci5zd2cnPC90dD4gaXMgYSBmaWxlIGNvbnRhaW5pbmcgc3RhbmRhcmQgZGVjbGFyYXRpb25zIG5lZWRlZCB0byBidWlsZCBhIFRjbCBleHRlbnNpb24uICBGb3Igb3VyIGV4YW1wbGUsIGl0IHdpbGwgbG9vayBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiBoZWFkZXIuc3dnICovCi0jaW5jbHVkZSAmbHQ7dGNsLmgmZ3Q7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBmaWxlIGA8dHQ+c3dpZ3B0ci5zd2cnPC90dD4gY29udGFpbnMgdGhlIHN0YW5kYXJkIFNXSUcgcG9pbnRlci10eXBlIGNoZWNraW5nIGxpYnJhcnkuICAgVGhpcyBsaWJyYXJ5IGNvbnRhaW5zIGFib3V0IDMwMCBsaW5lcyBvZiByYXRoZXIgbmFzdHkgbG9va2luZyBzdXBwb3J0IGNvZGUgdGhhdCBkZWZpbmUgdGhlIGZvbGxvd2luZyAzIGZ1bmN0aW9ucyA6PHA+Ci08cD4KLTxoNj4gdm9pZCBTV0lHX1JlZ2lzdGVyTWFwcGluZyhjaGFyICp0eXBlMSwgY2hhciAqdHlwZSwgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICooKmNhc3QpKHZvaWQgKikpPC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q3JlYXRlcyBhIG1hcHBpbmcgYmV0d2VlbiBDIGRhdGF0eXBlcyA8dHQ+dHlwZTE8L3R0PiBhbmQgPHR0PnR5cGUyPC90dD4uICBUaGlzIGlzIHJlZ2lzdGVyZWQgd2l0aCB0aGUgcnVudGltZSB0eXBlLWNoZWNrZXIgYW5kIGlzIHNpbWlsaWFyIHRvIGEgdHlwZWRlZi4gIDx0dD5jYXN0PC90dD4gaXMgYW4gb3B0aW9uYWwgIGZ1bmN0aW9uIHBvaW50ZXIgZGVmaW5pbmcgYSBtZXRob2QgZm9yIHByb3BlciBwb2ludGVyIGNvbnZlcnNpb24gKGlmIG5lZWRlZCkuICBOb3JtYWxseSwgY2FzdCBpcyBvbmx5IHVzZWQgd2hlbiBjb252ZXJ0aW5nIGJldHdlZW4gYmFzZSBhbmQgZGVyaXZlZCBjbGFzc2VzIGluIEMrKyBhbmQgaXMgbmVlZGVkIGZvciBwcm9wZXIgaW1wbGVtZW50YXRpb24gb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCi08L2RsPgotPHA+Ci08aDY+IHZvaWQgU1dJR19NYWtlUHRyKGNoYXIgKnN0ciwgdm9pZCAqcHRyLCBjaGFyICp0eXBlKTs8L2g2PgotPGRsPgotPGR0PjxkZD5NYWtlcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIEMgcG9pbnRlci4gIFRoZSByZXN1bHQgaXMgc3RvcmVkIGluIDx0dD5zdHI8L3R0PiB3aGljaCBpcyBhc3N1bWVkIHRvIGJlIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSByZXN1bHQuICA8dHQ+cHRyPC90dD4gY29udGFpbnMgdGhlIHBvaW50ZXIgdmFsdWUgYW5kIDx0dD50eXBlPC90dD4gaXMgYSBzdHJpbmcgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBkYXRhdHlwZS4gCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gY2hhciAqU1dJR19HZXRQdHIoY2hhciAqc3RyLCB2b2lkICoqcHRyLCBjaGFyICp0eXBlKTs8L2g2PgotPGRsPgotPGR0PjxkZD5FeHRyYWN0cyBhIHBvaW50ZXIgZnJvbSBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBwZXJmb3JtcyB0eXBlLWNoZWNraW5nLCBhbmQgY2FzdGluZy4gICA8dHQ+c3RyPC90dD4gaXMgdGhlIHN0cmluZyBjb250YWluaW5nIHRoZSBwb2ludGVyLXZhbHVlIHJlcHJlc2VudGF0aW9uLCA8dHQ+cHRyPC90dD4gaXMgdGhlIGFkZHJlc3Mgb2YgdGhlIHBvaW50ZXIgdGhhdCB3aWxsIGJlIHJldHVybmVkLCBhbmQgPHR0PnR5cGUgPC90dD5pcyB0aGUgc3RyaW5nIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGUgZGF0YXR5cGUuICBJZiBhIHR5cGUtZXJyb3Igb2NjdXJzLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBhIDx0dD5jaGFyICo8L3R0PiBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJ0IG9mIHRoZSBpbnB1dCBzdHJpbmcgdGhhdCB3YXMgaW52YWxpZCwgb3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiByZXR1cm5zIE5VTEwuICAgSWYgYSBOVUxMIHBvaW50ZXIgaXMgZ2l2ZW4gZm9yIDx0dD50eXBlPC90dD4sIHRoZSBmdW5jdGlvbiB3aWxsIGFjY2VwdCBhIHBvaW50ZXIgb2YgYW55IHR5cGUuCi08L2RsPgotPHA+Ci1XZSB3aWxsIHVzZSB0aGVzZSBmdW5jdGlvbnMgbGF0ZXIuPHA+Ci08YSBuYW1lPSJuMzMiPjwvYT48aDM+IFNldHRpbmcgYSBtb2R1bGUgbmFtZTwvaDM+Ci1UaGUgPHR0PnNldF9tb2R1bGUoKTwvdHQ+IG1ldGhvZCBpcyB1c2VkIHdoZW5ldmVyIHRoZSA8dHQ+JW1vZHVsZTwvdHQ+IGRpcmVjdGl2ZSBpcyBlbmNvdW50ZXJlZC48cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6c2V0X21vZHVsZShjaGFyICptb2RfbmFtZSxjaGFyICoqbW9kX2xpc3QpCi0vLwotLy8gU2V0cyB0aGUgbW9kdWxlIG5hbWUuICBEb2VzIG5vdGhpbmcgaWYgaXQncyBhbHJlYWR5IHNldCAoc28gaXQgY2FuCi0vLyBiZSBvdmVycmlkZGVudCBhcyBhIGNvbW1hbmQgbGluZSBvcHRpb24pLgotLy8KLS8vIG1vZF9saXN0IGlzIGEgTlVMTC10ZXJtaW5hdGVkIGxpc3Qgb2YgYWRkaXRpb25hbCBtb2R1bGVzIHRvIGluaXRpYWxpemUKLS8vIGFuZCBpcyBvbmx5IHByb3ZpZGVkIGlmIHRoZSB1c2VyIHNwZWNpZmllcyBzb21ldGhpbmcgbGlrZSB0aGlzIDoKLS8vICVtb2R1bGUgZm9vLCBtb2QxLCBtb2QyLCBtb2QzLCBtb2Q0Ci0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBNWUxBTkc6OnNldF9tb2R1bGUoY2hhciAqbW9kX25hbWUsIGNoYXIgKiptb2RfbGlzdCkgewotCWlmIChtb2R1bGUpIHJldHVybjsKLQltb2R1bGUgPSBuZXcgY2hhcltzdHJsZW4obW9kX25hbWUpKzFdOwotCXN0cmNweShtb2R1bGUsbW9kX25hbWUpOwotCS8vIE1ha2Ugc3VyZSB0aGUgbmFtZSBjb25mb3JtcyB0byBUY2wgbmFtaW5nIGNvbnZlbnRpb25zCi0JZm9yIChjaGFyICpjID0gbW9kdWxlOyAoKmMpOyBjKyspCi0JCSpjID0gdG9sb3dlcigqYyk7Ci0JdG91cHBlcihtb2R1bGUpOwotfSAKLQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGZ1bmN0aW9uIG1heSwgaW4gZmFjdCwgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGluIHRoZSBjb3Vyc2Ugb2YgcHJvY2Vzc2luZy4gIE5vcm1hbGx5LCB3ZSBvbmx5IGFsbG93IGEgbW9kdWxlIG5hbWUgdG8gYmUgc2V0IG9uY2UgYW5kIGlnbm9yZSBhbGwgc3Vic2VxdWVudCBjYWxscyBob3dldmVyLjxwPgotPGEgbmFtZT0ibjM0Ij48L2E+PGgzPiBGaW5hbCBJbml0aWFsaXphdGlvbjwvaDM+Ci1UaGUgaW5pdGlhbGl6YXRpb24gb2YgYSBtb2R1bGUgdGFrZXMgc2V2ZXJhbCBzdGVwcy0tcGFyc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywgcHJpbnRpbmcgc3RhbmRhcmQgaGVhZGVyIGZpbGVzLCBzdGFydGluZyB0aGUgcGFyc2VyLCBhbmQgc2V0dGluZyB0aGUgbW9kdWxlIG5hbWUuICBUaGUgZmluYWwgc3RlcCBpbiBpbml0aWFsaXphdGlvbiBpcyBjYWxsaW5nIHRoZSA8dHQ+aW5pdGlhbGl6ZSgpPC90dD4gbWV0aG9kIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjppbml0aWFsaXplKHZvaWQpCi0vLwotLy8gUHJvZHVjZXMgYW4gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uICAgQXNzdW1lcyB0aGF0IHRoZSBtb2R1bGUKLS8vIG5hbWUgaGFzIGFscmVhZHkgYmVlbiBzcGVjaWZpZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBNWUxBTkc6OmluaXRpYWxpemUoKQotewotCS8vIENoZWNrIGlmIGEgbW9kdWxlIGhhcyBiZWVuIGRlZmluZWQKLQlpZiAoIW1vZHVsZSkgewotCQlmcHJpbnRmKHN0ZGVyciwiV2FybmluZy4gTm8gbW9kdWxlIG5hbWUgZ2l2ZW4hXG4iKTsKLQkJbW9kdWxlID0gInN3aWciOwotCX0KLQotCS8vIEdlbmVyYXRlIGEgQ1BQIHN5bWJvbCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgotCWZwcmludGYoZl9oZWFkZXIsIiNkZWZpbmUgU1dJR19pbml0ICAgICVzX0luaXRcblxuXG4iLCBtb2R1bGUpOwotCi0JLy8gU3RhcnQgZ2VuZXJhdGluZyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KLQlmcHJpbnRmKGZfaW5pdCwiaW50IFNXSUdfaW5pdChUY2xfSW50ZXJwICppbnRlcnApIHtcbiIpOwotCWZwcmludGYoZl9pbml0LCJcdCBpZiAoaW50ZXJwID09IDApIHJldHVybiBUQ0xfRVJST1I7XG4iKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5pbml0aWFsaXplKCk8L3R0PiBtZXRob2Qgc2hvdWxkIGNyZWF0ZSB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGJ5IGVtaXR0aW5nIGNvZGUgdG8gPHR0PmZfaW5pdDwvdHQ+IGFzIHNob3duLiAgIEJ5IHRoaXMgcG9pbnQsIHdlIHNob3VsZCBhbHJlYWR5IGtub3cgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSwgYnV0IHNob3VsZCBjaGVjayBqdXN0IGluIGNhc2UuICAgVGhlIHByZWZlcnJlZCBzdHlsZSBvZiBjcmVhdGluZyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gaXMgdG8gY3JlYXRlIGEgQyBwcmVwcm9jZXNzb3Igc3ltYm9sIDx0dD5TV0lHX2luaXQ8L3R0Pi4gICAgICBEb2luZyBzbyBtYXkgbG9vayB3ZWlyZCwgYnV0IGl0IHR1cm5zIG91dCB0aGF0IG1hbnkgU1dJRyBsaWJyYXJ5IGZpbGVzIG1heSB3YW50IHRvIGtub3cgdGhlIG5hbWUgb2YgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiAgIElmIHdlIGRlZmluZSBhIHN5bWJvbCBmb3IgaXQsIHRoZXNlIGZpbGVzIGNhbiBzaW1wbHkgYXNzdW1lIHRoYXQgaXQncyBjYWxsZWQgPHR0PlNXSUdfaW5pdCgpPC90dD4gYW5kIGV2ZXJ5dGhpbmcgd2lsbCB3b3JrIG91dCAob2theSwgc28gaXQncyBhIGhhY2spLjxwPgotPGEgbmFtZT0ibjM1Ij48L2E+PGgzPiBDbGVhbnVwIDwvaDM+Ci1XaGVuIGFuIGludGVyZmFjZSBmaWxlIGhhcyBmaW5pc2hlZCBwYXJzaW5nLCB3ZSBuZWVkIHRvIGNsZWFuIGV2ZXJ5dGhpbmcgdXAuICBUaGlzIGlzIGRvbmUgdXNpbmcgdGhlIDx0dD5jbG9zZSgpPC90dD4gbWV0aG9kIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6Y2xvc2Uodm9pZCkKLS8vCi0vLyBXcmFwIHRoaW5ncyB1cC4gIENsb3NlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXZvaWQgTVlMQU5HOjpjbG9zZSh2b2lkKQotewotICAvLyBEdW1wIHRoZSBwb2ludGVyIGVxdWl2YWxlbmN5IHRhYmxlCi0gIGVtaXRfcHRyX2VxdWl2YWxlbmNlKGZfaW5pdCk7Ci0KLSAgLy8gRmluaXNoIG9mZiBvdXIgaW5pdCBmdW5jdGlvbiBhbmQgcHJpbnQgaXQgdG8gdGhlIGluaXQgZmlsZQotICBmcHJpbnRmKGZfaW5pdCwiXHQgcmV0dXJuIFRDTF9PSztcbiIpOwotICBmcHJpbnRmKGZfaW5pdCwifVxuIik7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+Y2xvc2UoKTwvdHQ+IG1ldGhvZCBzaG91bGQgZmlyc3QgY2FsbCA8dHQ+ZW1pdF9wdHJfZXF1aXZhbGVuY2UoKTwvdHQ+IGlmIHRoZSBTV0lHIHBvaW50ZXIgdHlwZSBjaGVja2VyIGhhcyBiZWVuIHVzZWQuICBUaGlzIGR1bXBzIG91dCBzdXBwb3J0IGNvZGUgdG8gbWFrZSBzdXJlIHRoZSB0eXBlLWNoZWNrZXIgd29ya3MgY29ycmVjdGx5LiAgQWZ0ZXJ3YXJkcywgd2Ugc2ltcGx5IG5lZWQgdG8gdGVybWluYXRlIG91ciBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhcyBzaG93bi4gIEFmdGVyIHRoaXMgZnVuY3Rpb24gaGFzIGJlZW4gY2FsbGVkLCBTV0lHIGR1bXBzIG91dCBhbGwgb2YgaXRzIGRvY3VtZW50YXRpb24gZmlsZXMgYW5kIGV4aXRzLjxwPgotPGEgbmFtZT0ibjM2Ij48L2E+PGgzPiBDcmVhdGluZyBDb21tYW5kczwvaDM+Ci1Ob3csIHdlJ3JlIG1vdmluZyBpbnRvIHRoZSBjb2RlIGdlbmVyYXRpb24gcGFydCBvZiBTV0lHLiAgICBUaGUgZmlyc3Qgc3RlcCBpcyB0byBtYWtlIGEgZnVuY3Rpb24gdG8gY3JlYXRlIHNjcmlwdGluZyBsYW5ndWFnZSBjb21tYW5kcy4gIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUgPHR0PmNyZWF0ZV9jb21tYW5kKCk8L3R0PiBmdW5jdGlvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpjcmVhdGVfY29tbWFuZChjaGFyICpjbmFtZSwgY2hhciAqaW5hbWUpCi0vLwotLy8gQ3JlYXRlcyBhIFRjbCBjb21tYW5kIGZyb20gYSBDIGZ1bmN0aW9uLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotdm9pZCBNWUxBTkc6OmNyZWF0ZV9jb21tYW5kKGNoYXIgKmNuYW1lLCBjaGFyICppbmFtZSkgewotCS8vIENyZWF0ZSBhIG5hbWUgZm9yIHRoZSB3cmFwcGVyIGZ1bmN0aW9uCi0JY2hhciAqd25hbWUgPSBuYW1lX3dyYXBwZXIoY25hbWUsIiIpOwotCi0JLy8gQ3JlYXRlIGEgVGNsIGNvbW1hbmQKLQlmcHJpbnRmKGZfaW5pdCwiXHQgVGNsX0NyZWF0ZUNvbW1hbmQoaW50ZXJwLFwiJXNcIiwlcywgKENsaWVudERhdGEpIE5VTEwsCi0JCShUY2xfQ21kRGVsZXRlUHJvYyAqKSBOVUxMKTtcbiIsIGluYW1lLCB3bmFtZSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUZvciBvdXIgVGNsIG1vZHVsZSwgdGhpcyBqdXN0IGNhbGxzIFRjbF9DcmVhdGVDb21tYW5kIHRvIG1ha2UgYSBuZXcgc2NyaXB0aW5nIGxhbmd1YWdlIGNvbW1hbmQuIDxwPgotPGEgbmFtZT0ibjM3Ij48L2E+PGgzPiBDcmVhdGluZyBhIFdyYXBwZXIgRnVuY3Rpb248L2gzPgotVGhlIG1vc3QgY29tcGxpY2F0ZWQgcGFydCBvZiB3cml0aW5nIGEgbGFuZ3VhZ2UgbW9kdWxlIGlzIHRoZSBwcm9jZXNzIG9mIGNyZWF0aW5nIHdyYXBwZXIgZnVuY3Rpb25zLiAgVGhpcyBpcyBkb25lIHVzaW5nIHRoZSA8dHQ+Y3JlYXRlX2Z1bmN0aW9uKCk8L3R0PiBtZXRob2QgYXMgc2hvd24gaGVyZSA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gTVlMQU5HOjpjcmVhdGVfZnVuY3Rpb24oY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICpkLCBQYXJtTGlzdCAqbCkKLS8vCi0vLyBDcmVhdGUgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgcmVnaXN0ZXIgaXQgd2l0aCB0aGUgaW50ZXJwcmV0ZXIuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXZvaWQgTVlMQU5HOjpjcmVhdGVfZnVuY3Rpb24oY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0LCBQYXJtTGlzdCAqbCkKLXsKLSAgU3RyaW5nICAgICAgICAgICBzb3VyY2UsIHRhcmdldDsKLSAgY2hhciAgICAgICAgICAgICAqdG07Ci0gIFN0cmluZyAgICAgICAgICAgY2xlYW51cCwgb3V0YXJnOwotICBXcmFwcGVyRnVuY3Rpb24gIGY7Ci0KLSAgLy8gTWFrZSBhIHdyYXBwZXIgbmFtZSBmb3IgdGhpcyBmdW5jdGlvbgotICBjaGFyICp3bmFtZSA9IG5hbWVfd3JhcHBlcihpbmFtZSwiIik7Ci0KLSAgLy8gTm93IHdyaXRlIHRoZSB3cmFwcGVyIGZ1bmN0aW9uIGl0c2VsZgotICBmLmRlZiAmbHQ7Jmx0OyAic3RhdGljIGludCAiICZsdDsmbHQ7IHduYW1lICZsdDsmbHQ7ICIoQ2xpZW50RGF0YSBjbGllbnREYXRhLCBUY2xfSW50ZXJwICppbnRlcnAsIGludCAKLWFyZ2MsIGNoYXIgKmFyZ3ZbXSkge1xuIjsKLQotICAvLyBFbWl0IGFsbCBvZiB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBob2xkaW5nIGFyZ3VtZW50cy4KLSAgaW50IHBjb3VudCA9IGVtaXRfYXJncyh0LGwsZik7Ci0KLSAgLy8gR2V0IG51bWJlciBvZiBvcHRpb25hbC9kZWZhdWx0IGFyZ3VtZW50cwotICBpbnQgbnVtb3B0ID0gbC0mZ3Q7bnVtb3B0KCk7Ci0KLSAgLy8gRW1pdCBjb3VudCB0byBjaGVjayB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cwotICBmLmNvZGUgJmx0OyZsdDsgdGFiNCAmbHQ7Jmx0OyAiaWYgKChhcmdjICZsdDsgIiAmbHQ7Jmx0OyAocGNvdW50LW51bW9wdCkgKyAxICZsdDsmbHQ7ICIpIHx8IChhcmdjICZndDsgIiAKLSAgICAgICAgICZsdDsmbHQ7IGwtJmd0O251bWFyZygpKzEgJmx0OyZsdDsgIikpIHtcbiIKLSAgICAgICAgICZsdDsmbHQ7IHRhYjggJmx0OyZsdDsgIlRjbF9TZXRSZXN1bHQoaW50ZXJwLCBcIldyb25nICMgYXJncy5cIixUQ0xfU1RBVElDKTtcbiIKLSAgICAgICAgICZsdDsmbHQ7IHRhYjggJmx0OyZsdDsgInJldHVybiBUQ0xfRVJST1I7XG4iCi0gICAgICAgICAmbHQ7Jmx0OyB0YWI0ICZsdDsmbHQ7ICJ9XG4iOwotCi0gIC8vIE5vdyB3YWxrIHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIgbGlzdCBhbmQgZ2VuZXJhdGUgY29kZSB0byBnZXQgYXJndW1lbnRzCi0gIGludCBqID0gMDsgICAgICAgICAgICAgICAgLy8gVG90YWwgbnVtYmVyIG9mIG5vbi1vcHRpb25hbCBhcmd1bWVudHMKLQotICBmb3IgKGludCBpID0gMDsgaSAmbHQ7IHBjb3VudCA7IGkrKykgewotICAgIFBhcm0gJmFtcDtwID0gKCpsKVtpXTsgICAgICAgICAvLyBHZXQgdGhlIGl0aCBhcmd1bWVudAotICAgIHNvdXJjZSA9ICIiOwotICAgIHRhcmdldCA9ICIiOwotCi0gICAgLy8gUHJvZHVjZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Ygc291cmNlIGFuZCB0YXJnZXQgYXJndW1lbnRzCi0gICAgc291cmNlICZsdDsmbHQ7ICJhcmd2WyIgJmx0OyZsdDsgaisxICZsdDsmbHQ7ICJdIjsKLSAgICB0YXJnZXQgJmx0OyZsdDsgIl9hcmciICZsdDsmbHQ7IGk7Ci0gICAgaWYgKCFwLmlnbm9yZSkgewotICAgICAgaWYgKGogJmd0Oz0gKHBjb3VudC1udW1vcHQpKSAgLy8gQ2hlY2sgaWYgcGFyc2luZyBhbiBvcHRpb25hbCBhcmd1bWVudAotICAgICAgICBmLmNvZGUgJmx0OyZsdDsgdGFiNCAmbHQ7Jmx0OyAiaWYgYXJnYyAmZ3Q7IiAmbHQ7Jmx0OyBqKzEgJmx0OyZsdDsgIikge1xuIjsKLQotICAgICAgLy8gR2V0IHR5cGVtYXAgZm9yIHRoaXMgYXJndW1lbnQKLSAgICAgIHRtID0gdHlwZW1hcF9sb29rdXAoImluIix0eXBlbWFwX2xhbmcscC50LHAubmFtZSxzb3VyY2UsdGFyZ2V0LCZhbXA7Zik7Ci0gICAgICBpZiAodG0pIHsKLSAgICAgICAgZi5jb2RlICZsdDsmbHQ7IHRtICZsdDsmbHQ7ICJcbiI7Ci0gICAgICAgIGYuY29kZS5yZXBsYWNlKCIkYXJnIixzb3VyY2UpOyAgIC8vIFBlcmZvcm0gYSB2YXJpYWJsZSByZXBsYWNlbWVudAotICAgICAgfSBlbHNlIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gTm8gdHlwZW1hcHBpbmcgZm9yIGRhdGF0eXBlICVzXG4iLAotICAgICAgICAgICAgICAgIGlucHV0X2ZpbGUsbGluZV9udW1iZXIsIHAudC0mZ3Q7cHJpbnRfdHlwZSgpKTsKLSAgICAgIH0KLSAgICAgIGlmIChqICZndDs9IChwY291bnQtbnVtb3B0KSkKLSAgICAgICAgZi5jb2RlICZsdDsmbHQ7IHRhYjQgJmx0OyZsdDsgIn0gXG4iOwotICAgICAgaisrOwotICAgIH0KLQotICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGVyZSB3YXMgYW55IHNvcnQgb2YgYSBjb25zdGFpbnQgdHlwZW1hcAotICAgIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgiY2hlY2siLHR5cGVtYXBfbGFuZyxwLnQscC5uYW1lLHNvdXJjZSx0YXJnZXQpKSkgewotICAgICAgZi5jb2RlICZsdDsmbHQ7IHRtICZsdDsmbHQ7ICJcbiI7Ci0gICAgICBmLmNvZGUucmVwbGFjZSgiJGFyZyIsc291cmNlKTsKLSAgICB9Ci0KLSAgICAvLyBDaGVjayBpZiB0aGVyZSB3YXMgYW55IGNsZWFudXAgY29kZSAoc2F2ZSBpdCBmb3IgbGF0ZXIpCi0gICAgaWYgKCh0bSA9IHR5cGVtYXBfbG9va3VwKCJmcmVlYXJnIix0eXBlbWFwX2xhbmcscC50LHAubmFtZSx0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcnAtJmd0O3Jlc3VsdCIpKSkgewotICAgICAgY2xlYW51cCAmbHQ7Jmx0OyB0bSAmbHQ7Jmx0OyAiXG4iOwotICAgICAgY2xlYW51cC5yZXBsYWNlKCIkYXJnIixzb3VyY2UpOwotICAgIH0KLSAgICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoImFyZ291dCIsdHlwZW1hcF9sYW5nLHAudCxwLm5hbWUsdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJwLSZndDtyZXN1bHQiKSkpIHsKLSAgICAgIG91dGFyZyAmbHQ7Jmx0OyB0bSAmbHQ7Jmx0OyAiXG4iOwotICAgICAgb3V0YXJnLnJlcGxhY2UoIiRhcmciLHNvdXJjZSk7Ci0gICAgfQotICB9Ci0KLSAgLy8gTm93IHdyaXRlIGNvZGUgdG8gbWFrZSB0aGUgZnVuY3Rpb24gY2FsbAotICBlbWl0X2Z1bmNfY2FsbChuYW1lLHQsbCxmKTsKLQotICAvLyBSZXR1cm4gdmFsdWUgaWYgbmVjZXNzYXJ5Ci0gIGlmICgodC0mZ3Q7dHlwZSAhPSBUX1ZPSUQpIHx8ICh0LSZndDtpc19wb2ludGVyKSkgewotICAgIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgib3V0Iix0eXBlbWFwX2xhbmcsdCxuYW1lLCJfcmVzdWx0IiwiaW50ZXJwLSZndDtyZXN1bHQiKSkpIHsKLSAgICAgIC8vIFllcC4gIFVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0Ci0gICAgICBmLmNvZGUgJmx0OyZsdDsgdG0gJmx0OyZsdDsgIlxuIjsKLSAgICB9IGVsc2UgewotICAgICAgZnByaW50ZihzdGRlcnIsIiVzIDogTGluZSAlZC4gTm8gcmV0dXJuIHR5cGVtYXAgZm9yIGRhdGF0eXBlICVzXG4iLAotICAgICAgICAgICAgICBpbnB1dF9maWxlLGxpbmVfbnVtYmVyLHQtJmd0O3ByaW50X3R5cGUoKSk7Ci0gICAgfQotICB9Ci0KLSAgLy8gRHVtcCBhcmd1bWVudCBvdXRwdXQgY29kZTsKLSAgZi5jb2RlICZsdDsmbHQ7IG91dGFyZzsKLQotICAvLyBEdW1wIHRoZSBhcmd1bWVudCBjbGVhbnVwIGNvZGUKLSAgZi5jb2RlICZsdDsmbHQ7IGNsZWFudXA7Ci0KLSAgLy8gTG9vayBmb3IgYW55IHJlbWFpbmluZyBjbGVhbnVwLiAgVGhpcyBwcm9jZXNzZXMgdGhlICVuZXcgZGlyZWN0aXZlCi0gIGlmIChOZXdPYmplY3QpIHsKLSAgICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoIm5ld2ZyZWUiLHR5cGVtYXBfbGFuZyx0LGluYW1lLCJfcmVzdWx0IiwiIikpKSB7Ci0gICAgICBmLmNvZGUgJmx0OyZsdDsgdG0gJmx0OyZsdDsgIlxuIjsKLSAgICB9Ci0gIH0KLQotICAvLyBTcGVjaWFsIHByb2Nlc3Npbmcgb24gcmV0dXJuIHZhbHVlLgotICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoInJldCIsdHlwZW1hcF9sYW5nLHQsbmFtZSwiX3Jlc3VsdCIsIiIpKSkgewotICAgIGYuY29kZSAmbHQ7Jmx0OyB0bSAmbHQ7Jmx0OyAiXG4iOwotICB9Ci0KLSAgLy8gV3JhcCB0aGluZ3MgdXAgKGluIGEgbWFubmVyIG9mIHNwZWFraW5nKQotICBmLmNvZGUgJmx0OyZsdDsgdGFiNCAmbHQ7Jmx0OyAicmV0dXJuIFRDTF9PSztcbn0iOwotCi0gIC8vIFN1YnN0aXR1dGUgdGhlIGNsZWFudXAgY29kZSAoc29tZSBleGNlcHRpb24gaGFuZGxlcnMgbGlrZSB0byBoYXZlIHRoaXMpCi0gIGYuY29kZS5yZXBsYWNlKCIkY2xlYW51cCIsY2xlYW51cCk7Ci0KLSAgLy8gRW1pdCB0aGUgZnVuY3Rpb24KLSAgZi5wcmludChmX3dyYXBwZXJzKTsKLQotICAvLyBOb3cgcmVnaXN0ZXIgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGxhbmd1YWdlCi0gIGNyZWF0ZV9jb21tYW5kKGluYW1lLGluYW1lKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQ3JlYXRpbmcgYSB3cmFwcGVyIGZ1bmN0aW9uIHJlYWxseSBib2lscyBkb3duIHRvIDMgY29tcG9uZW50cyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5FbWl0IGxvY2FsIHZhcmlhYmxlcyBhbmQgaGFuZGxpbmcgaW5wdXQgYXJndW1lbnRzLiAgCi08bGk+Q2FsbCB0aGUgcmVhbCBDIGZ1bmN0aW9uLgotPGxpPkNvbnZlcnQgdGhlIHJldHVybiB2YWx1ZSB0byBhIHNjcmlwdGluZyBsYW5ndWFnZSByZXByZXNlbnRhdGlvbi4KLTwvdWw+Ci08cD4KLUluIG91ciBpbXBsZW1lbnRhdGlvbiwgbW9zdCBvZiB0aGlzIHdvcmsgaXMgZG9uZSB1c2luZyB0eXBlbWFwcy4gICBJbiBmYWN0LCB0aGUgcm9sZSBvZiB0aGUgQysrIGNvZGUgaXMgcmVhbGx5IGp1c3QgdG8gcHJvY2VzcyB0eXBlbWFwcyBpbiB0aGUgYXBwcm9wcmlhdGUgb3JkZXIgYW5kIHRvIGNvbWJpbmUgc3RyaW5ncyBpbiB0aGUgY29ycmVjdCBtYW5uZXIuICBUaGUgZm9sbG93aW5nIHR5cGVtYXBzIGFyZSB1c2VkIGluIHRoaXMgcHJvY2VkdXJlIDo8cD4KLTxwPgotPHVsPgotPGxpPiJpbiIuICBUaGlzIGlzIHVzZWQgdG8gY29udmVydCBmdW5jdGlvbiBhcmd1bWVudHMgZnJvbSBUY2wgdG8gQy4KLTxsaT4ib3V0Ii4gVGhpcyBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHJldHVybiB2YWx1ZSBmcm9tIEMgdG8gVGNsLgotPGxpPiJjaGVjayIuIFRoaXMgaXMgdXNlZCB0byBhcHBseSBjb25zdHJhaW50cyB0byB0aGUgaW5wdXQgdmFsdWVzLgotPGxpPiJhcmdvdXQiLiBVc2VkIHRvIHJldHVybiB2YWx1ZXMgdGhyb3VnaCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgotPGxpPiJmcmVlYXJnIi4gVXNlZCB0byAgY2xlYW4gdXAgYXJndW1lbnRzIGFmdGVyIGEgZnVuY3Rpb24gY2FsbCAocG9zc2libHkgdG8gcmVsZWFzZSBtZW1vcnksIGV0Yy4uLikKLTxsaT4icmV0Ii4gVXNlZCB0byBjbGVhbiB1cCB0aGUgcmV0dXJuIHZhbHVlIG9mIGEgQyBmdW5jdGlvbiAocG9zc2libHkgdG8gcmVsZWFzZSBtZW1vcnkpLgotPGxpPiJuZXdmcmVlIiB0aGlzIGlzIHNwZWNpYWwgcHJvY2Vzc2luZyBhcHBsaWVkIHdoZW4gdGhlIDx0dD4lbmV3PC90dD4gZGlyZWN0aXZlIGhhcyBiZWVuIHVzZWQuICBVc3VhbGx5IGl0cyB1c2VkIHRvIGNsZWFuIHVwIG1lbW9yeS4KLTwvdWw+Ci08cD4KLUl0IG1heSB0YWtlIGF3aGlsZSBmb3IgdGhpcyBmdW5jdGlvbiB0byBzaW5rIGluLCBidXQgaXRzIG9wZXJhdGlvbiB3aWxsIGhvcGVmdWxseSBiZWNvbWUgbW9yZSBjbGVhciBzaG9ydGx5LiAgIDxwPgotPGEgbmFtZT0ibjM4Ij48L2E+PGgzPiBNYW5pcHVsYXRpbmcgR2xvYmFsIFZhcmlhYmxlczwvaDM+Ci1UbyBwcm92aWRlIGFjY2VzcyB0byBDIGdsb2JhbCB2YXJpYWJsZXMsIHRoZSA8dHQ+bGlua192YXJpYWJsZSgpPC90dD4gbWV0aG9kIGlzIHVzZWQuIEluIHRoZSBjYXNlIG9mIFRjbCwgb25seSA8dHQ+aW50PC90dD4sIDx0dD5kb3VibGU8L3R0PiwgYW5kIDx0dD5jaGFyICogPC90dD5kYXRhdHlwZXMgY2FuIGJlIHNhZmVseSBsaW5rZWQuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIE1ZTEFORzo6bGlua192YXJpYWJsZShjaGFyICpuYW1lLCBjaGFyICppbmFtZSwgRGF0YVR5cGUgKnQpCi0vLwotLy8gQ3JlYXRlIGEgVGNsIGxpbmsgdG8gYSBDIHZhcmlhYmxlLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBNWUxBTkc6OmxpbmtfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KSB7Ci0gIGNoYXIgKnRtOwotCi0gIC8vIFVzZXMgYSB0eXBlbWFwIHRvIHN0aWNrIGNvZGUgaW50byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCi0gIGlmICgodG0gPSB0eXBlbWFwX2xvb2t1cCgidmFyaW5pdCIsdHlwZW1hcF9sYW5nLHQsbmFtZSxuYW1lLGluYW1lKSkpIHsKLSAgICBTdHJpbmcgdGVtcCA9IHRtOwotICAgIGlmIChTdGF0dXMgJmFtcDsgU1RBVF9SRUFET05MWSkKLSAgICAgIHRlbXAucmVwbGFjZSgiJHN0YXR1cyIsIiB8IFRDTF9MSU5LX1JFQURfT05MWSIpOwotICAgIGVsc2UKLSAgICAgIHRlbXAucmVwbGFjZSgiJHN0YXR1cyIsIiIpOwotICAgIGZwcmludGYoZl9pbml0LCIlc1xuIiwoY2hhciAqKSB0ZW1wKTsKLSAgfSBlbHNlIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwiJXMgOiBMaW5lICVkLiBVbmFibGUgdG8gbGluayB3aXRoIHZhcmlhYmxlIHR5cGUgJXNcbiIsCi0gICAgICAgICAgICBpbnB1dF9maWxlLGxpbmVfbnVtYmVyLHQtJmd0O3ByaW50X3R5cGUoKSk7Ci0gIH0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSW4gdGhpcyBjYXNlLCAgdGhlIHByb2NlZHVyZSBpcyBsb29raW5nIGZvciBhIHR5cGVtYXAgInZhcmluaXQiLiAgV2UnbGwgdXNlIHRoZSBjb2RlIHNwZWNpZmllZCB3aXRoIHRoaXMgdHlwZW1hcCB0byBjcmVhdGUgdmFyaWFibGUgbGlua3MuICBJZiBubyB0eXBlbWFwIGlzIHN1cHBsaWVkIG9yIHRoZSB1c2VyIGdpdmVzIGFuIHVuc3VwcG9ydGVkIGRhdGF0eXBlcywgYSB3YXJuaW5nIG1lc3NhZ2Ugd2lsbCBiZSBnZW5lcmF0ZWQuPHA+Ci08cD4KLUl0IGlzIGFsc28gd29ydGggbm90aW5nIHRoYXQgdGhlIDx0dD5TdGF0dXM8L3R0PiB2YXJpYWJsZSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIG9yIG5vdCBhIHZhcmlhYmxlIGlzIHJlYWQtb25seSBvciBub3QuICBUbyB0ZXN0IGZvciB0aGlzLCB1c2UgdGhlIHRlY2huaXF1ZSBzaG93biBpbiB0aGUgY29kZSBhYm92ZS4gICBSZWFkLW9ubHkgdmFyaWFibGVzIG1heSByZXF1aXJlIHNwZWNpYWwgcHJvY2Vzc2luZyBhcyBzaG93bi48cD4KLTxhIG5hbWU9Im4zOSI+PC9hPjxoMz4gQ29uc3RhbnRzPC9oMz4KLUZpbmFsbHksIGNyZWF0aW5nIGNvbnN0YW50cyBpcyBhY2NvbXBsaXNoZWQgdXNpbmcgdGhlIDx0dD5kZWNsYXJlX2NvbnN0KCk8L3R0PiBtZXRob2QuICAgRm9yIFRjbCwgd2UgY291bGQgZG8gdGhpcyA6PHA+Ci0gPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBNWUxBTkc6OmRlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkKLS8vCi0vLyBNYWtlcyBhIGNvbnN0YW50LiAgCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBNWUxBTkc6OmRlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCBjaGFyICp2YWx1ZSkgewotCi0gIGNoYXIgKnRtOwotICBpZiAoKHRtID0gdHlwZW1hcF9sb29rdXAoImNvbnN0Iix0eXBlbWFwX2xhbmcsdHlwZSxuYW1lLG5hbWUsaW5hbWUpKSkgewotICAgIFN0cmluZyBzdHIgPSB0bTsKLSAgICBzdHIucmVwbGFjZSgiJHZhbHVlIix2YWx1ZSk7Ci0gICAgZnByaW50ZihmX2luaXQsIiVzXG4iLCAoY2hhciAqKSBzdHIpOwotICB9IGVsc2UgewotICAgIGZwcmludGYoc3RkZXJyLCIlcyA6IExpbmUgJWQuIFVuYWJsZSB0byBjcmVhdGUgY29uc3RhbnQgJXMgPSAlc1xuIiwKLSAgICAgICAgICAgIGlucHV0X2ZpbGUsIGxpbmVfbnVtYmVyLCB0eXBlLSZndDtwcmludF90eXBlKCksIHZhbHVlKTsKLSAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XZSB0YWtlIHRoZSBzYW1lIGFwcHJvYWNoIHVzZWQgdG8gY3JlYXRlIHZhcmlhYmxlcy4gIEluIHRoaXMgY2FzZSwgdGhlIGA8dHQ+Y29uc3Q8L3R0PicgdHlwZW1hcCBzcGVjaWZpZXMgdGhlIHNwZWNpYWwgcHJvY2Vzc2luZy48cD4KLTxwPgotVGhlIHZhbHVlIG9mIGEgY29uc3RhbnQgaXMgYSBzdHJpbmcgcHJvZHVjZWQgYnkgdGhlIFNXSUcgcGFyc2VyLiAgSXQgbWF5IGNvbnRhaW4gYW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIHN1Y2ggYXMgIjMgKyA0Kig3KzgpIi4gICBCZWNhdXNlIG9mIHRoaXMsIGl0IGlzIGNyaXRpY2FsIHRvIHVzZSB0aGlzIHN0cmluZyBpbiBhIHdheSB0aGF0IGFsbG93cyBpdCB0byBiZSBldmFsdWF0ZWQgYnkgdGhlIEMgY29tcGlsZXIgKHRoaXMgd2lsbCBiZSBhcHBhcmVudCB3aGVuIHRoZSB0eXBlbWFwcyBhcmUgZ2l2ZW4pLjxwPgotPGEgbmFtZT0ibjQwIj48L2E+PGgzPiBBIFF1aWNrIEludGVybWlzc2lvbjwvaDM+Ci1XZSBhcmUgbm93IGRvbmUgd3JpdGluZyBhbGwgb2YgdGhlIG1ldGhvZHMgZm9yIG91ciBsYW5ndWFnZSBjbGFzcy4gICBPZiBhbGwgb2YgdGhlIG1ldGhvZHMsIDx0dD5jcmVhdGVfZnVuY3Rpb24oKTwvdHQ+IGlzIHRoZSBtb3N0IGNvbXBsaWNhdGVkIGFuZCB0ZW5kcyB0byBkbyBtb3N0IG9mIHRoZSB3b3JrLiAgIFdlIGhhdmUgYWxzbyBpZ25vcmVkIGlzc3VlcyByZWxhdGVkIHRvIGRvY3VtZW50YXRpb24gcHJvY2Vzc2luZyBhbmQgQysrIGhhbmRsaW5nIChhbHRob3VnaCBDKysgd2lsbCB3b3JrIHdpdGggdGhlIGZ1bmN0aW9ucyB3ZSBoYXZlIGRlZmluZWQgc28gZmFyKS48cD4KLTxwPgotV2hpbGUgb3VyIEMrKyBpbXBsZW1lbnRhdGlvbiBpcyBkb25lLCB3ZSBzdGlsbCBkbyBub3QgaGF2ZSBhIHdvcmtpbmcgbGFuZ3VhZ2UgbW9kdWxlLiAgIEluIGZhY3QsIGlmIHdlIHJ1biBTV0lHIG9uIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiBleGFtcGxlLmkgKi8KLSVtb2R1bGUgZXhhbXBsZQotJXsKLS8qIFB1dCBoZWFkZXJzIGFuZCBvdGhlciBkZWNsYXJhdGlvbnMgaGVyZSAqLwotJX0KLQotLy8gQSBmdW5jdGlvbgotZXh0ZXJuIGRvdWJsZSBmb28oZG91YmxlIGEsIGRvdWJsZSBiKTsKLQotLy8gQSB2YXJpYWJsZQotZXh0ZXJuIGludCBiYXI7Ci0KLS8vIEEgY29uc3RhbnQKLSNkZWZpbmUgU1BBTSA0MgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci13ZSBnZXQgdGhlIGZvbGxvd2luZyBlcnJvcnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPltiZWF6bGV5QGd1aW5uZXNzIGxhbmddJCAuL215c3dpZyBleGFtcGxlLmkKLU1ha2luZyB3cmFwcGVycyBmb3IgTXkgVGNsCi1leGFtcGxlLmkgOiBMaW5lIDkuIE5vIHR5cGVtYXBwaW5nIGZvciBkYXRhdHlwZSBkb3VibGUKLWV4YW1wbGUuaSA6IExpbmUgOS4gTm8gdHlwZW1hcHBpbmcgZm9yIGRhdGF0eXBlIGRvdWJsZQotZXhhbXBsZS5pIDogTGluZSA5LiBObyByZXR1cm4gdHlwZW1hcCBmb3IgZGF0YXR5cGUgZG91YmxlCi1leGFtcGxlLmkgOiBMaW5lIDEyLiBVbmFibGUgdG8gbGluayB3aXRoIHZhcmlhYmxlIHR5cGUgaW50Ci1leGFtcGxlLmkgOiBMaW5lIDE2LiBVbmFibGUgdG8gY3JlYXRlIGNvbnN0YW50IGludCAgPSA0MgotW2JlYXpsZXlAZ3Vpbm5lc3MgbGFuZ10kCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCB3ZSBoYXZlIG5vdCB5ZXQgZGVmaW5lZCBhbnkgcHJvY2Vzc2luZyBmb3IgcmVhbCBkYXRhdHlwZXMuIEZvciBleGFtcGxlLCBvdXIgbGFuZ3VhZ2UgbW9kdWxlIGhhcyBubyBpZGVhIGhvdyB0byBjb252ZXJ0IGRvdWJsZXMgaW50byBUY2wgc3RyaW5ncywgaG93IHRvIGxpbmsgd2l0aCBDIHZhcmlhYmxlcyBhbmQgc28gb24uICAgVG8gZG8gdGhpcywgd2UgbmVlZCB0byB3cml0ZSBhIGNvbGxlY3Rpb24gb2YgdHlwZW1hcHMuPHA+Ci08YSBuYW1lPSJuNDEiPjwvYT48aDM+IFdyaXRpbmcgdGhlIGRlZmF1bHQgdHlwZW1hcHM8L2gzPgotSW4gb3VyIGVhcmxpZXIgPHR0PnBhcnNlKCk8L3R0PiBtZXRob2QsIHRoZXJlIGlzIGEgc3RhdGVtZW50IHRvIGluY2x1ZGUgdGhlIGZpbGUgYDx0dD5sYW5nLm1hcDwvdHQ+Jy4gICBXZSB3aWxsIHVzZSB0aGlzIGZpbGUgdG8gd3JpdGUgdHlwZW1hcHMgZm9yIG91ciBuZXcgbGFuZ3VhZ2UgbW9kdWxlLiAgVGhlIGA8dHQ+bGFuZy5tYXA8L3R0PicgZmlsZSB3aWxsIGFjdHVhbGx5IGdvIHRocm91Z2ggdGhlIFNXSUcgcGFyc2VyIHNvIHdlIGNhbiB3cml0ZSBvdXIgdHlwZW1hcHMgdXNpbmcgdGhlIG5vcm1hbCA8dHQ+JXR5cGVtYXA8L3R0PiBkaXJlY3RpdmUuICBUaGlzIGFwcHJvYWNoIG1ha2VzIGl0IGVhc3kgZm9yIHVzIHRvIGRlYnVnIGFuZCB0ZXN0IG91ciBtb2R1bGUgYmVjYXVzZSB0aGUgdHlwZW1hcHMgY2FuIGJlIGRldmVsb3BlZCBhbmQgdGVzdGVkIHdpdGhvdXQgaGF2aW5nIHRvIHJlcGVhdGVkbHkgcmVjb21waWxlIHRoZSBDKysgcGFydCBvZiB0aGUgbW9kdWxlLiAgPHA+Ci08cD4KLVdpdGhvdXQgZnVydGhlciBkZWxheSwgaGVyZSBpcyB0aGUgdHlwZW1hcCBmaWxlIGZvciBvdXIgbW9kdWxlICh5b3UgbWlnaHQgd2FudCB0byBzaXQgZG93bikgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIGxhbmcubWFwCi0vLwotLy8gVGhpcyBmaWxlIGRlZmluZXMgYWxsIG9mIHRoZSB0eXBlLW1hcHBpbmdzIGZvciBvdXIgbGFuZ3VhZ2UgKFRDTCkuCi0vLyBBIHR5cGVtYXAgb2YgJ1NXSUdfREVGQVVMVF9UWVBFJyBzaG91bGQgYmUgdXNlZCB0byBjcmVhdGUgZGVmYXVsdAotLy8gbWFwcGluZ3MuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIEZVTkNUSU9OIElOUFVUUyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vLyBJbnRlZ2VycwotJXR5cGVtYXAoaW4pIGludCAgICAgICAgICAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICBzaG9ydCAgICAgICAgICAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgbG9uZyAgICAgICAgICAgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgIHVuc2lnbmVkIGludCAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgIHNpZ25lZCBjaGFyICAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICAgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgaW50ICB0ZW1wOwotICBpZiAoVGNsX0dldEludChpbnRlcnAsICRzb3VyY2UsICZhbXA7dGVtcCkgPT0gVENMX0VSUk9SKSByZXR1cm4gVENMX0VSUk9SOwotICAkdGFyZ2V0ID0gKCR0eXBlKSB0ZW1wOwotfQotCi0vLyBGbG9hdGluZyBwb2ludAotJXR5cGVtYXAoaW4pIGZsb2F0ICAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgZG91YmxlICBTV0lHX0RFRkFVTFRfVFlQRQotewotICBkb3VibGUgdGVtcDsKLSAgaWYgKFRjbF9HZXREb3VibGUoaW50ZXJwLCAkc291cmNlLCAmYW1wO3RlbXApID09IFRDTF9FUlJPUikgcmV0dXJuIFRDTF9FUlJPUjsKLSAgJHRhcmdldCA9ICgkdHlwZSkgdGVtcDsKLX0KLQotLy8gU3RyaW5ncwotJXR5cGVtYXAoaW4pIGNoYXIgKiAgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgJHRhcmdldCA9ICRzb3VyY2U7Ci19Ci0KLS8vIHZvaWQgKgotJXR5cGVtYXAoaW4pIHZvaWQgKiAgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgaWYgKFNXSUdfR2V0UHRyKCRzb3VyY2UsKHZvaWQgKiopICZhbXA7JHRhcmdldCwgKGNoYXIgKikgMCkpIHsKLSAgICBUY2xfU2V0UmVzdWx0KGludGVycCwiVHlwZSBlcnJvci4gIEV4cGVjdGVkIGEgcG9pbnRlciIsVENMX1NUQVRJQyk7Ci0gICAgcmV0dXJuIFRDTF9FUlJPUjsKLSAgfQotfQotCi0vLyBVc2VyIGRlZmluZWQgdHlwZXMgYW5kIGFsbCBvdGhlciBwb2ludGVycwotJXR5cGVtYXAoaW4pIFVzZXIgKiBTV0lHX0RFRkFVTFRfVFlQRQotewotICBpZiAoU1dJR19HZXRQdHIoJHNvdXJjZSwodm9pZCAqKikgJmFtcDskdGFyZ2V0LCAiJG1hbmdsZSIpKSB7Ci0gICAgVGNsX1NldFJlc3VsdChpbnRlcnAsIlR5cGUgZXJyb3IuICBFeHBlY3RlZCBhICRtYW5nbGUiLFRDTF9TVEFUSUMpOwotICAgIHJldHVybiBUQ0xfRVJST1I7Ci0gIH0KLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogRlVOQ1RJT04gT1VUUFVUUyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vLyBTaWduZWQgaW50ZWdlcnMKLSV0eXBlbWFwKG91dCkgaW50ICAgICAgICAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgIHNob3J0ICAgICAgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgICBsb25nICAgICAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgc3ByaW50ZigkdGFyZ2V0LCIlbGQiLCAobG9uZykgJHNvdXJjZSk7Ci19Ci0KLS8vIFVuc2lnbmVkIGludGVnZXJzCi0ldHlwZW1hcChvdXQpIHVuc2lnbmVkICAgICAgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgIFNXSUdfREVGQVVMVF9UWVBFCi17Ci0gIHNwcmludGYoJHRhcmdldCwiJWx1IiwgKHVuc2lnbmVkIGxvbmcpICRzb3VyY2UpOwotfQotCi0vLyBGbG9hdGluZyBwb2ludAotJXR5cGVtYXAob3V0KSBkb3VibGUgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgIGZsb2F0ICBTV0lHX0RFRkFVTFRfVFlQRQotewotICBUY2xfUHJpbnREb3VibGUoaW50ZXJwLChkb3VibGUpICRzb3VyY2UsaW50ZXJwLSZndDtyZXN1bHQpOwotfQotCi0vLyBTdHJpbmdzCi0ldHlwZW1hcChvdXQpIGNoYXIgKlNXSUdfREVGQVVMVF9UWVBFCi17Ci0gIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCRzb3VyY2UsVENMX1ZPTEFUSUxFKTsKLX0KLQotLy8gUG9pbnRlcnMKLSV0eXBlbWFwKG91dCkgVXNlciAqU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgU1dJR19NYWtlUHRyKCR0YXJnZXQsKHZvaWQgKikgJHNvdXJjZSwgIiRtYW5nbGUiKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVkFSSUFCTEUgQ1JFQVRJT04gKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLy8gSW50ZWdlcnMKLSV0eXBlbWFwKHZhcmluaXQpIGludCAgICAgICAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBTV0lHX0RFRkFVTFRfVFlQRQotewotICBUY2xfTGlua1ZhcihpbnRlcnAsICIkdGFyZ2V0IiwgKGNoYXIgKikgJmFtcDskc291cmNlLCBUQ0xfTElOS19JTlQgJHN0YXR1cyk7Ci19Ci0KLS8vIERvdWJsZXMKLSV0eXBlbWFwKHZhcmluaXQpIGRvdWJsZSBTV0lHX0RFRkFVTFRfVFlQRSB7Ci0gIFRjbF9MaW5rVmFyKGludGVycCwiJHRhcmdldCIsIChjaGFyICopICZhbXA7JHNvdXJjZSwgVENMX0xJTktfRE9VQkxFICRzdGF0dXMpOwotfQotCi0vLyBTdHJpbmdzCi0ldHlwZW1hcCh2YXJpbml0KSBjaGFyICogU1dJR19ERUZBVUxUX1RZUEUgewotICBUY2xfTGlua1ZhcihpbnRlcnAsIiR0YXJnZXQiLCAoY2hhciAqKSAmYW1wOyRzb3VyY2UsIFRDTF9MSU5LX1NUUklORyAkc3RhdHVzKTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDT05TVEFOVFMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLy8gU2lnbmVkIEludGVnZXJzCi0ldHlwZW1hcChjb25zdCkgaW50ICAgICAgICAgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgICBzaG9ydCAgICAgICAgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgICAgIGxvbmcgICAgICAgICAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgICBTV0lHX0RFRkFVTFRfVFlQRQotewotICBzdGF0aWMgY2hhciAqX3dyYXBfJHRhcmdldDsKLSAgX3dyYXBfJHRhcmdldCA9IChjaGFyICopIG1hbGxvYyg0MCk7Ci0gIHNwcmludGYoX3dyYXBfJHRhcmdldCwiJWxkIiwkdmFsdWUpOwotICBUY2xfTGlua1ZhcihpbnRlcnAsIiR0YXJnZXQiLCAoY2hhciAqKSAmYW1wO193cmFwXyR0YXJnZXQsIFRDTF9MSU5LX1NUUklORyB8IAotVENMX0xJTktfUkVBRF9PTkxZKTsKLX0KLQotLy8gVW5zaWduZWQgaW50ZWdlcnMKLSV0eXBlbWFwKGNvbnN0KSB1bnNpZ25lZCAgICAgICAgU1dJR19ERUZBVUxUX1RZUEUsCi0gICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgIFNXSUdfREVGQVVMVF9UWVBFLAotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgICBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICAgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgc3RhdGljIGNoYXIgKl93cmFwXyR0YXJnZXQ7Ci0gIF93cmFwXyR0YXJnZXQgPSAoY2hhciAqKSBtYWxsb2MoNDApOwotICBzcHJpbnRmKF93cmFwXyR0YXJnZXQsIiVsdSIsJHZhbHVlKTsKLSAgVGNsX0xpbmtWYXIoaW50ZXJwLCIkdGFyZ2V0IiwgKGNoYXIgKikgJmFtcDtfd3JhcF8kdGFyZ2V0LCBUQ0xfTElOS19TVFJJTkcgfCAKLVRDTF9MSU5LX1JFQURfT05MWSk7Ci19Ci0KLS8vIERvdWJsZXMgYW5kIGZsb2F0cwotJXR5cGVtYXAoY29uc3QpIGRvdWJsZSBTV0lHX0RFRkFVTFRfVFlQRSwKLSAgICAgICAgICAgICAgICBmbG9hdCAgU1dJR19ERUZBVUxUX1RZUEUKLXsKLSAgc3RhdGljIGNoYXIgKl93cmFwXyR0YXJnZXQ7Ci0gIF93cmFwXyR0YXJnZXQgPSAoY2hhciAqKSBtYWxsb2MoNDApOwotICBzcHJpbnRmKF93cmFwXyR0YXJnZXQsIiVmIiwkdmFsdWUpOwotICBUY2xfTGlua1ZhcihpbnRlcnAsIiR0YXJnZXQiLCAoY2hhciAqKSAmYW1wO193cmFwXyR0YXJnZXQsIFRDTF9MSU5LX1NUUklORyB8IAotVENMX0xJTktfUkVBRF9PTkxZKTsKLX0KLQotLy8gU3RyaW5ncwotJXR5cGVtYXAoY29uc3QpIGNoYXIgKlNXSUdfREVGQVVMVF9UWVBFCi17Ci0gIHN0YXRpYyBjaGFyICpfd3JhcF8kdGFyZ2V0ID0gIiR2YWx1ZSI7Ci0gIFRjbF9MaW5rVmFyKGludGVycCwiJHRhcmdldCIsIChjaGFyICopICZhbXA7X3dyYXBfJHRhcmdldCwgVENMX0xJTktfU1RSSU5HIHwgCi1UQ0xfTElOS19SRUFEX09OTFkpOwotfQotCi0vLyBQb2ludGVycwotJXR5cGVtYXAoY29uc3QpIFVzZXIgKlNXSUdfREVGQVVMVF9UWVBFCi17Ci0gIHN0YXRpYyBjaGFyICpfd3JhcF8kdGFyZ2V0OwotICBfd3JhcF8kdGFyZ2V0ID0gKGNoYXIgKikgbWFsbG9jKDIwK3N0cmxlbigiJG1hbmdsZSIpKTsKLSAgU1dJR19NYWtlUHRyKF93cmFwXyR0YXJnZXQsICh2b2lkICopICR2YWx1ZSwgIiRtYW5nbGUiKTsKLSAgVGNsX0xpbmtWYXIoaW50ZXJwLCIkdGFyZ2V0IiwgKGNoYXIgKikgJmFtcDtfd3JhcF8kdGFyZ2V0LCBUQ0xfTElOS19TVFJJTkcgfCAKLVRDTF9MSU5LX1JFQURfT05MWSk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdyB0aGF0IHdlIGhhdmUgb3VyIHR5cGVtYXBzIGZpbGUsIHdlIGFyZSBkb25lIGFuZCBjYW4gc3RhcnQgcHJvZHVjaW5nIGEgdmFyaWV0eSBvZiBpbnRlcmVzdGluZyBUY2wgZXh0ZW5zaW9uIG1vZHVsZXMuICAgU2hvdWxkIGVycm9ycyBhcnJpc2UsIG9uZSB3aWxsIGVpdGhlciBoYXZlIHRvIHByeSBpbnRvIHRoZSBDKysgbW9kdWxlIG9yIHRoZSB0eXBlbWFwcyBmaWxlIGZvciBhIGNvcnJlY3Rpb24uIDxwPgotPGEgbmFtZT0ibjQyIj48L2E+PGgzPiBUaGUgU1dJRyBsaWJyYXJ5IGFuZCBpbnN0YWxsYXRpb24gaXNzdWVzPC9oMz4KLVRvIG1ha2UgYSBuZXcgU1dJRyBtb2R1bGUgZ2VuZXJhbGx5IHVzYWJsZSwgeW91IHdpbGwgd2FudCB0byBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHMgOjxwPgotPHA+Ci08dWw+Ci08bGk+UHV0IHRoZSBuZXcgYmluYXJ5IGluIGEgcHVibGljbHkgYWNjZXNzaWJsZSBsb2NhdGlvbiAoaWUuIDx0dD4vdXNyL2xvY2FsL2JpbjwvdHQ+KS4KLTxsaT5NYWtlIGEgc3ViZGlyZWN0b3J5IGZvciB5b3VyIGxhbmd1YWdlIGluIHRoZSBTV0lHIGxpYnJhcnkuICBUaGUgbGlicmFyeSBzaG91bGQgbWF0Y2ggdXAgd2l0aCB0aGUgbmFtZSB5b3UgYXNzaWduZWQgdG8gdGhlIDx0dD5MaWJEaXI8L3R0PiB2YXJpYWJsZSBpbiA8dHQ+cGFyc2VfYXJncygpPC90dD4uICAKLTxsaT5Db3B5IHRoZSBmaWxlIGA8dHQ+bGFuZy5tYXA8L3R0PicgdG8gdGhlIFNXSUcgbGlicmFyeSBkaXJlY3RvcnkuICAgWW91ciBuZXcgdmVyc2lvbiBvZiBTV0lHIHdpbGwgbm93IGJlIGFibGUgdG8gZmluZCBpdCBubyBtYXR0ZXIgd2hhdCBkaXJlY3RvcnkgU1dJRyBpcyBleGVjdXRlZCBmcm9tLgotPGxpPlByb3ZpZGUgc29tZSBkb2N1bWVudGF0aW9uIGFib3V0IGhvdyB5b3VyIG1vZHVsZSB3b3Jrcy4KLTwvdWw+Ci08cD4KLVNXSUcgZXh0ZW5zaW9ucyBhcmUgb25seSBhYmxlIHRvIHRhcmdldCBhIHNpbmdsZSBzY3JpcHRpbmcgbGFuZ3VhZ2UuICBJZiB5b3Ugd291bGQgbGlrZSB0byBtYWtlIHlvdXIgbW9kdWxlIHBhcnQgb2YgdGhlIGZ1bGwgdmVyc2lvbiBvZiBTV0lHLCB5b3Ugd2lsbCBuZWVkIHRvIG1vZGlmeSB0aGUgZmlsZSBgPHR0PnN3aWdtYWluLmN4eDwvdHQ+JyBpbiB0aGUgPHR0PlNXSUcxLjEvTW9kdWxlczwvdHQ+IGRpcmVjdG9yeS4gICAgVG8gZG8gdGhpcywgZm9sbG93IHRoZXNlIHN0ZXBzIDo8cD4KLTxwPgotPHVsPgotPGxpPkFkZCBhIDx0dD4jaW5jbHVkZSAibGFuZy5oIjwvdHQ+IHRvIHRoZTx0dD4gc3dpZ21haW4uY3h4PC90dD4gZmlsZS4KLTxsaT5DcmVhdGUgYSBjb21tYW5kIGxpbmUgb3B0aW9uIGZvciB5b3VyIG1vZHVsZSBhbmQgd3JpdGUgY29kZSB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgeW91ciBsYW5ndWFnZSAoanVzdCBjb3B5IHRoZSB0ZWNobmlxdWUgdXNlZCBmb3IgdGhlIG90aGVyIGxhbmd1YWdlcykuCi08bGk+TW9kaWZ5ICA8dHQ+TW9kdWxlcy9NYWtlZmlsZTwvdHQ+IHRvIGluY2x1ZGUgeW91ciBtb2R1bGUgYXMgcGFydCBvZiBpdHMgY29tcGlsYXRpb24gcHJvY2Vzcy4KLTxsaT5SZWJ1aWxkIFNXSUcgYnkgdHlwaW5nIGBtYWtlJy4KLTwvdWw+Ci08YSBuYW1lPSJuMTEiPjwvYT48aDI+IEMrKyBQcm9jZXNzaW5nPC9oMj4KLUxhbmd1YWdlIG1vZHVsZXMgaGF2ZSB0aGUgb3B0aW9uIHRvIHByb3ZpZGUgc3BlY2lhbCBwcm9jZXNzaW5nIGZvciBDKysgY2xhc3Nlcy4gICBVc3VhbGx5IHRoaXMgaXMgdG8gcHJvdmlkZSBzb21lIHNvcnQgb2Ygb2JqZWN0LW9yaWVudGVkIGludGVyZmFjZSBzdWNoIGFzIHNoYWRvdyBjbGFzc2VzLiAgVGhlIHByb2Nlc3Mgb2YgZGV2ZWxvcGluZyB0aGVzZSBleHRlbnNpb25zIGlzIGhpZ2hseSB0ZWNobmljYWwgYW5kIHRoZSBiZXN0IGFwcHJvYWNoIG1heSBiZSB0byBjb3B5IHBpZWNlcyBmcm9tIG90aGVyIFNXSUcgbW9kdWxlcyB0aGF0IHByb3ZpZGUgb2JqZWN0IG9yaWVudGVkIHN1cHBvcnQuPHA+Ci08YSBuYW1lPSJuNDMiPjwvYT48aDM+IEhvdyBDKysgcHJvY2Vzc2luZyB3b3JrczwvaDM+Ci1UaGUgd3JhcHBpbmcgb2YgQysrIGNsYXNzZXMgZm9sbG93cyBhICJmaWxlIiBtZXRhcGhvci4gICBXaGVuIGEgY2xhc3MgaXMgZW5jb3VudGVyZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHBlcmZvcm1lZCA6PHA+Ci08cD4KLTx1bD4KLTxsaT5PcGVuIGEgbmV3IGNsYXNzLgotPGxpPkluaGVyaXQgZnJvbSBiYXNlIGNsYXNzZXMuCi08bGk+QWRkIG1lbWJlcnMgdG8gdGhlIGNsYXNzIChmdW5jdGlvbnMsIHZhcmlhYmxlcywgY29uc3RhbnRzLCBldGMuLi4pCi08bGk+Q2xvc2UgdGhlIGNsYXNzIGFuZCBlbWl0IG9iamVjdC1vcmllbnRlZCBjb2RlLgotPC91bD4KLTxwPgotQXMgYSBjbGFzcyBpcyBjb25zdHJ1Y3RlZCwgYSBsYW5ndWFnZSBtb2R1bGUgbWF5IG5lZWQgdG8ga2VlcCB0cmFjayBvZiAgYSB2YXJpZXR5IG9mIGRhdGEgc3VjaCBhcyB3aGV0aGVyIGNvbnN0cnVjdG9ycyBvciBkZXN0cnVjdG9ycyBoYXZlIGJlZW4gZ2l2ZW4sIGFyZSB0aGVyZSBhbnkgZGF0YSBtZW1iZXJzLCBoYXZlIGRhdGF0eXBlcyBiZWVuIHJlbmFtZWQsIGFuZCBzbyBvbi4gICBJdCBpcyBub3QgYWx3YXlzIGEgY2xlYXItY3V0IHByb2Nlc3MuPHA+Ci08YSBuYW1lPSJuNDQiPjwvYT48aDM+IExhbmd1YWdlIGV4dGVuc2lvbnM8L2gzPgotUHJvdmlkaW5nIGFkZGl0aW9uYWwgc3VwcG9ydCBmb3Igb2JqZWN0LW9yaWVudGVkIHByb2dyYW1taW5nIHJlcXVpcmVzIHRoZSB1c2Ugb2YgdGhlIGZvbGxvd2luZyBMYW5ndWFnZSBleHRlbnNpb25zLiAgVGhlc2UgYXJlIGFkZGl0aW9uYWwgbWV0aG9kcyB0aGF0IGNhbiBiZSBkZWZpbmVkIGZvciB0aGUgTGFuZ3VhZ2UgY2xhc3MuPHA+Ci08cD4KLTxoNj4gdm9pZCBjcHBfb3Blbl9jbGFzcyhjaGFyICpuYW1lLCBjaGFyICpyZW5hbWUsIGNoYXIgKmN0eXBlLCBpbnQgc3RyaXApOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPk9wZW5zIGEgbmV3IGNsYXNzLiAgPHR0Pm5hbWU8L3R0PiBpcyB0aGUgbmFtZSBvZiB0aGUgY2xhc3MsIDx0dD5yZW5hbWU8L3R0PiBpcyB0aGUgcmVuYW1lZCB2ZXJzaW9uIG9mIHRoZSBjbGFzcyAob3IgTlVMTCBpZiBub3QgcmVuYW1lZCksIDx0dD5jdHlwZTwvdHQ+IGlzIHRoZSBjbGFzcyB0eXBlICg8dHQ+c3RydWN0PC90dD4sIDx0dD5jbGFzczwvdHQ+LCA8dHQ+dW5pb248L3R0PiksIGFuZCA8dHQ+c3RyaXA8L3R0PiBpcyBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBpdHMgc2FmZSB0byBkcm9wIHRoZSBsZWFkaW5nIHR5cGUgc3BlY2lmaWVyICh0aGlzIGlzIG9mdGVuIHVuc2FmZSBmb3IgQU5TSSBDKS4KLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiB2b2lkIGNwcF9pbmhlcml0KGNoYXIgKipiYXNlY2xhc3MsIGludCBtb2RlID0gSU5IRVJJVF9BTEwpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPkluaGVyaXRzIGZyb20gYmFzZSBjbGFzc2VzLiAgPHR0PmJhc2VjbGFzczwvdHQ+IGlzIGEgTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIGNsYXNzIG5hbWVzIGNvcnJlc3BvbmRpbmcgdG8gYWxsIG9mIHRoZSBiYXNlIGNsYXNzZXMgb2YgYW4gb2JqZWN0LiAgIDx0dD5tb2RlPC90dD4gaXMgYW4gaW5oZXJpdGFuY2UgbW9kZSB0aGF0IGlzIHRoZSBvcidkIHZhbHVlIG9mIDx0dD5JTkhFUklUX0ZVTkM8L3R0PiAsIDx0dD5JTkhFUklUX1ZBUjwvdHQ+LCA8dHQ+SU5IRVJJVF9DT05TVDwvdHQ+LCAgb3IgPHR0PklOSEVSSVRfQUxMPC90dD4uCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBjcHBfbWVtYmVyX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0LCAgICAgICAgICAgICAgICAgICAgICBQYXJtTGlzdCAqbCk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q3JlYXRlcyBhIG1lbWJlciBmdW5jdGlvbi4gIDx0dD5uYW1lPC90dD4gaXMgdGhlIHJlYWwgbmFtZSBvZiB0aGUgbWVtYmVyLCA8dHQ+aW5hbWU8L3R0PiBpcyB0aGUgcmVuYW1lZCB2ZXJzaW9uIChOVUxMIGlmIG5vdCByZW5hbWVkKSwgPHR0PnQ8L3R0PiBpcyB0aGUgcmV0dXJuIGRhdGF0eXBlLCBhbmQgPHR0Pmw8L3R0PiBpcyB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyIGxpc3QuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBjcHBfc3RhdGljX2Z1bmMoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0LCAgICAgICAgICAgICAgICAgICAgICBQYXJtTGlzdCAqbCk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q3JlYXRlIGEgc3RhdGljIG1lbWJlciBmdW5jdGlvbi4gIFRoZSBjYWxsaW5nIGNvbnZlbnRpb25zIGFyZSB0aGUgc2FtZSBhcyBmb3IgPHR0PmNwcF9tZW1iZXJfZnVuYygpPC90dD4uCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBjcHBfdmFyaWFibGUoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KTs8L2g2PgotPGRsPgotPGR0PjxkZD5DcmVhdGVzIGEgbWVtYmVyIHZhcmlhYmxlLiAgPHR0Pm5hbWU8L3R0PiBpcyB0aGUgcmVhbCBuYW1lIG9mIHRoZSBtZW1iZXIsIDx0dD5pbmFtZTwvdHQ+IGlzIHRoZSByZW5hbWVkIHZlcnNpb24gKE5VTEwgaXMgbm90IHJlbmFtZWQpLiAgPHR0PnQ8L3R0PiBpcyB0aGUgdHlwZSBvZiB0aGUgbWVtYmVyLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgY3BwX3N0YXRpY192YXIoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0KTs8L2g2PgotPGRsPgotPGR0PjxkZD5DcmVhdGVzIGEgc3RhdGljIG1lbWJlciB2YXJpYWJsZS4gIFRoZSBjYWxsaW5nIGNvbnZlbnRpb24gaXMgdGhlIHNhbWUgYXMgZm9yIDx0dD5jcHBfdmFyaWFibGUoKTwvdHQ+LgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgY3BwX2RlY2xhcmVfY29uc3QoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIERhdGFUeXBlICp0eXBlLCAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICp2YWx1ZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q3JlYXRlcyBhIGNvbnN0YW50IGluc2lkZSBhIEMrKyBjbGFzcy4gTm9ybWFsbHkgdGhpcyBpcyBhbiBlbnVtIG9yIG1lbWJlciBkZWNsYXJlZCBhcyBjb25zdC4gIDx0dD5uYW1lPC90dD4gaXMgdGhlIHJlYWwgbmFtZSwgPHR0PmluYW1lPC90dD4gaXMgdGhlIHJlbmFtZWQgdmVyc2lvbiAoTlVMTCBpZiBub3QgcmVuYW1lZCksIDx0dD50eXBlPC90dD4gaXMgdGhlIHR5cGUgb2YgdGhlIGNvbnN0YW50LCBhbmQgPHR0PnZhbHVlPC90dD4gaXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBjcHBfY29uc3RydWN0b3IoY2hhciAqbmFtZSwgY2hhciAqaW5hbWUsIFBhcm1MaXN0ICpsKTs8L2g2PgotPGRsPgotPGR0PjxkZD5DcmVhdGVzIGEgY29uc3RydWN0b3IuIDx0dD5uYW1lPC90dD4gaXMgdGhlIG5hbWUgb2YgdGhlIGNvbnN0cnVjdG9yLCA8dHQ+aW5hbWU8L3R0PiBpcyB0aGUgcmVuYW1lZCB2ZXJzaW9uLCBhbmQgPHR0Pmw8L3R0PiBpcyB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyIGxpc3QuICBOb3JtYWxseSwgPHR0Pm5hbWU8L3R0PiBpcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBjbGFzcy4gIElmIG5vdCwgdGhpcyBtYXkgYWN0dWFsbHkgYmUgYSBtZW1iZXIgZnVuY3Rpb24gd2l0aCBubyBkZWNsYXJlZCByZXR1cm4gdHlwZSAoYXNzdW1lZCB0byBiZSBhbiBpbnQgaW4gQysrKS4gICAKLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiB2b2lkIGNwcF9kZXN0cnVjdG9yKGNoYXIgKm5hbWUsIGNoYXIgKm5ld25hbWUpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPkNyZWF0ZXMgYSBkZXN0cnVjdG9yLiAgPHR0Pm5hbWU8L3R0PiBpcyB0aGUgcmVhbCBuYW1lIG9mIHRoZSBkZXN0cnVjdG9yICh1c3VhbGx5IHRoZSBzYW1lIG5hbWUgYXMgdGhlIGNsYXNzKSwgYW5kIDx0dD5uZXduYW1lPC90dD4gaXMgdGhlIHJlbmFtZWQgdmVyc2lvbiAoTlVMTCBpZiBub3QgcmVuYW1lZCkuICAKLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiB2b2lkIGNwcF9jbG9zZV9jbGFzcygpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPkNsb3NlcyB0aGUgY3VycmVudCBjbGFzcy4gICBMYW5ndWFnZSBtb2R1bGVzIHNob3VsZCBmaW5pc2ggb2ZmIGNvZGUgZ2VuZXJhdGlvbiBmb3IgYSBjbGFzcyBvbmNlIHRoaXMgaGFzIGJlZW4gY2FsbGVkLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgY3BwX2NsZWFudXAoKTs8L2g2PgotPGRsPgotPGR0PjxkZD5DYWxsZWQgYWZ0ZXIgYWxsIEMrKyBjbGFzc2VzIGhhdmUgYmVlbiBnZW5lcmF0ZWQuICBPbmx5IHVzZWQgdG8gcHJvdmlkZSBzb21lIGtpbmQgb2YgZ2xvYmFsIGNsZWFudXAgZm9yIGFsbCBjbGFzc2VzLgotPC9kbD4KLTxhIG5hbWU9Im40NSI+PC9hPjxoMz4gSGludHM8L2gzPgotU3BlY2lhbCBDKysgY29kZSBnZW5lcmF0aW9uIGlzIG5vdCBmb3IgdGhlIHdlYWsgb2YgaGVhcnQuICBNb3N0IG9mIFNXSUcncyBidWlsdCBpbiBtb2R1bGVzIGhhdmUgYmVlbiBkZXZlbG9wZWQgZm9yIHdlbGwgb3ZlciBhIHllYXIgYW5kIG9iamVjdCBvcmllbnRlZCBzdXBwb3J0IGhhcyBiZWVuIGluIGNvbnRpbnVhbCBkZXZlbG9wbWVudC4gIElmIHdyaXRpbmcgYSBuZXcgbGFuZ3VhZ2UgbW9kdWxlLCBsb29raW5nIGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgUHl0aG9uLCBUY2wsIG9yIFBlcmw1IHdvdWxkIGJlIGEgZ29vZCBzdGFydC48cD4KLTxhIG5hbWU9Im4xMiI+PC9hPjxoMj4gRG9jdW1lbnRhdGlvbiBQcm9jZXNzaW5nPC9oMj4KLVRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbSBvcGVyYXRlcyAoZm9yIHRoZSBtb3N0IHBhcnQpLCBpbmRlcGVuZGVudGx5IG9mIHRoZSBsYW5ndWFnZSBtb2R1bGVzLiAgSG93ZXZlciwgbGFuZ3VhZ2UgbW9kdWxlcyBhcmUgc3RpbGwgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgYSAidXNhZ2UiIHN0cmluZyBkZXNjcmliaW5nIGhvdyBlYWNoIGZ1bmN0aW9uLCB2YXJpYWJsZSwgb3IgY29uc3RhbnQgaXMgdG8gYmUgdXNlZCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlLjxwPgotPGEgbmFtZT0ibjQ2Ij48L2E+PGgzPiBEb2N1bWVudGF0aW9uIGVudHJpZXM8L2gzPgotRWFjaCBDL0MrKyBkZWNsYXJhdGlvbiBpbiBhbiBpbnRlcmZhY2UgZmlsZSBnZXRzIGFzc2lnbmVkIHRvIGEgIkRvY3VtZW50YXRpb24gRW50cnkiIHRoYXQgaXMgZGVzY3JpYmVkIGJ5IHRoZSA8dHQ+RG9jRW50cnk8L3R0PiBvYmplY3QgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmNsYXNzIERvY0VudHJ5IHsKLXB1YmxpYzoKLSAgU3RyaW5nICAgICAgdXNhZ2U7ICAgICAgICAgICAgLy8gU2hvcnQgZGVzY3JpcHRpb24gCi0gIFN0cmluZyAgICAgIGNpbmZvOyAgICAgICAgICAgIC8vIEluZm9ybWF0aW9uIGFib3V0IEMgaW50ZXJmYWNlIChvcHRpb25hbCkuCi0gIFN0cmluZyAgICAgIHRleHQ7ICAgICAgICAgICAgIC8vIFN1cHBvcnRpbmcgdGV4dCAob3B0aW9uYWwpCi19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PnVzYWdlPC90dD4gc3RyaW5nIGlzIHVzZWQgdG8gaG9sZCB0aGUgY2FsbGluZyBzZXF1ZW5jZSBmb3IgdGhlIGZ1bmN0aW9uLiAgVGhlIDx0dD5jaW5mbzwvdHQ+IGZpZWxkIGlzIHVzZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1bmRlcmx5aW5nIEMgY29kZS4gIDx0dD50ZXh0PC90dD4gaXMgZmlsbGVkIGluIHdpdGggY29tbWVudCB0ZXh0LjxwPgotPHA+Ci1UaGUgZ2xvYmFsIHZhcmlhYmxlIDx0dD5kb2NfZW50cnk8L3R0PiBhbHdheXMgY29udGFpbnMgdGhlIGRvY3VtZW50YXRpb24gZW50cnkgZm9yIHRoZSBjdXJyZW50IGRlY2xhcmF0aW9uIGJlaW5nIHByb2Nlc3NlZC4gIExhbmd1YWdlIG1vZHVsZXMgY2FuIGNob29zZSB0byB1cGRhdGUgdGhlIGRvY3VtZW50YXRpb24gYnkgcmVmZXJyaW5nIHRvIGFuZCBtb2RpZnlpbmcgaXRzIGZpZWxkcy48cD4KLTxhIG5hbWU9Im40NyI+PC9hPjxoMz4gQ3JlYXRpbmcgYSB1c2FnZSBzdHJpbmc8L2gzPgotVG8gY3JlYXRlIGEgZG9jdW1lbnRhdGlvbiB1c2FnZSBzdHJpbmcsIGxhbmd1YWdlIG1vZHVsZXMgbmVlZCB0byBtb2RpZnkgdGhlIGB1c2FnZScgZmllbGQgb2YgPHR0PmRvY19lbnRyeTwvdHQ+LiAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgY3JlYXRpbmcgYSBmdW5jdGlvbiBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gY2hhciAqVENMOjp1c2FnZV9zdHJpbmcoY2hhciAqaW5hbWUsIERhdGFUeXBlICp0LCBQYXJtTGlzdCAqbCksCi0vLwotLy8gR2VuZXJhdGVzIGEgZ2VuZXJpYyB1c2FnZSBzdHJpbmcgZm9yIGEgVGNsIGZ1bmN0aW9uLgotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWNoYXIgKiBUQ0w6OnVzYWdlX3N0cmluZyhjaGFyICppbmFtZSwgRGF0YVR5cGUgKiwgUGFybUxpc3QgKmwpIHsKLQotICBzdGF0aWMgU3RyaW5nIHRlbXA7Ci0gIFBhcm0gICpwOwotICBpbnQgICBpLCBudW1vcHQscGNvdW50OwotCi0gIHRlbXAgPSAiIjsKLSAgdGVtcCAmbHQ7Jmx0OyBpbmFtZSAmbHQ7Jmx0OyAiICI7Ci0KLSAgLyogTm93IGdvIHRocm91Z2ggYW5kIHByaW50IHBhcmFtZXRlcnMgKi8KLSAgaSA9IDA7Ci0gIHBjb3VudCA9IGwtJmd0O25wYXJtczsKLSAgbnVtb3B0ID0gbC0mZ3Q7bnVtb3B0KCk7Ci0gIHAgPSBsLSZndDtnZXRfZmlyc3QoKTsKLSAgd2hpbGUgKHAgIT0gMCkgewotICAgIGlmICghcC0mZ3Q7aWdub3JlKSB7Ci0gICAgICBpZiAoaSAmZ3Q7PSAocGNvdW50LW51bW9wdCkpCi0gICAgICAgIHRlbXAgJmx0OyZsdDsgIj8iOwotCi0gICAgICAvKiBJZiBwYXJhbWV0ZXIgaGFzIGJlZW4gbmFtZWQsIHVzZSB0aGF0LiAgIE90aGVyd2lzZSwganVzdCBwcmludCBhIHR5cGUgICovCi0KLSAgICAgIGlmICgocC0mZ3Q7dC0mZ3Q7dHlwZSAhPSBUX1ZPSUQpIHx8IChwLSZndDt0LSZndDtpc19wb2ludGVyKSkgewotICAgICAgICBpZiAoc3RybGVuKHAtJmd0O25hbWUpICZndDsgMCkgewotICAgICAgICAgIHRlbXAgJmx0OyZsdDsgcC0mZ3Q7bmFtZTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICB0ZW1wICZsdDsmbHQ7ICJ7ICIgJmx0OyZsdDsgcC0mZ3Q7dC0mZ3Q7cHJpbnRfdHlwZSgpICZsdDsmbHQ7ICIgfSI7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChpICZndDs9IChwY291bnQtbnVtb3B0KSkKLSAgICAgICAgdGVtcCAmbHQ7Jmx0OyAiPyI7Ci0gICAgICB0ZW1wICZsdDsmbHQ7ICIgIjsKLSAgICAgIGkrKzsKLSAgICB9Ci0gICAgcCA9IGwtJmd0O2dldF9uZXh0KCk7Ci0gIH0KLSAgcmV0dXJuIHRlbXA7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdywgd2l0aGluIHRoZSBmdW5jdGlvbiB0byBjcmVhdGUgYSB3cmFwcGVyIGZ1bmN0aW9uLCBpbmNsdWRlIGNvZGUgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBGaWxsIGluIHRoZSBkb2N1bWVudGF0aW9uIGVudHJ5Ci1kb2NfZW50cnktJmd0O3VzYWdlICZsdDsmbHQ7IHVzYWdlX3N0cmluZyhpbmFtZSx0LGwpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBwcm9kdWNlIGZ1bGwgZG9jdW1lbnRhdGlvbiwgZWFjaCBsYW5ndWFnZSBtb2R1bGUgbmVlZHMgdG8gZmlsbCBpbiB0aGUgZG9jdW1lbnRhdGlvbiB1c2FnZSBzdHJpbmcgZm9yIGFsbCBkZWNsYXJhdGlvbnMuICAgIExvb2tpbmcgYXQgZXhpc3RpbmcgU1dJRyBtb2R1bGVzIGNhbiBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkLjxwPgotPGEgbmFtZT0ibjQ4Ij48L2E+PGgzPiBXcml0aW5nIGEgbmV3IGRvY3VtZW50YXRpb24gbW9kdWxlPC9oMz4KLVdyaXRpbmcgYSBuZXcgZG9jdW1lbnRhdGlvbiBtb2R1bGUgaXMgcm91Z2hseSB0aGUgc2FtZSBpZGVhIGFzIHdyaXRpbmcgYSBuZXcgTGFuZ3VhZ2UgY2xhc3MuICBUbyBkbyBpdCwgeW91IG5lZWQgdG8gaW1wbGVtZW50IGEgIkRvY3VtZW50YXRpb24gT2JqZWN0IiBieSBpbmhlcml0aW5nIGZyb20gdGhlIGZvbGxvd2luZyBiYXNlIGNsYXNzIGFuZCBkZWZpbmluZyBhbGwgb2YgdGhlIHZpcnR1YWwgbWV0aG9kcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2xhc3MgRG9jdW1lbnRhdGlvbiB7Ci1wdWJsaWM6Ci0gIHZpcnR1YWwgdm9pZCBwYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndikgPSAwOwotICB2aXJ0dWFsIHZvaWQgdGl0bGUoRG9jRW50cnkgKmRlKSA9IDA7Ci0gIHZpcnR1YWwgdm9pZCBuZXdzZWN0aW9uKERvY0VudHJ5ICpkZSwgaW50IHNlY3RudW0pID0gMDsKLSAgdmlydHVhbCB2b2lkIGVuZHNlY3Rpb24oKSA9IDA7Ci0gIHZpcnR1YWwgdm9pZCBwcmludF9kZWNsKERvY0VudHJ5ICpkZSkgPSAwOwotICB2aXJ0dWFsIHZvaWQgcHJpbnRfdGV4dChEb2NFbnRyeSAqZGUpID0gMDsKLSAgdmlydHVhbCB2b2lkIHNlcGFyYXRvcigpID0gMDsKLSAgdmlydHVhbCB2b2lkIGluaXQoY2hhciAqZmlsZW5hbWUpID0gMDsKLSAgdmlydHVhbCB2b2lkIGNsb3NlKHZvaWQpID0gMDsKLSAgdmlydHVhbCB2b2lkIHN0eWxlKGNoYXIgKm5hbWUsIGNoYXIgKnZhbHVlKSA9IDA7Ci19OwotCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxoNj4gdm9pZCBwYXJzZV9hcmdzKGludCBhcmdjLCBjaGFyICoqYXJndik7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+UGFyc2VzIGNvbW1hbmQgbGluZSBvcHRpb25zLiAgIEFueSBzcGVjaWFsIG9wdGlvbnMgeW91IHdhbnQgdG8gcHJvdmlkZSBzaG91bGQgYmUgcGxhY2VkIGhlcmUuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gIHZvaWQgdGl0bGUoRG9jRW50cnkgKmRlOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPlByb2R1Y2VzIGRvY3VtZW50YXRpb24gb3V0cHV0IGZvciBhIHRpdGxlLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgbmV3c2VjdGlvbihEb2NFbnRyeSAqZGUsIGludCBzZWN0bnVtOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPkNhbGxlZCB3aGVuZXZlciBhIG5ldyBzZWN0aW9uIGlzIGNyZWF0ZWQuICAgVGhlIGRvY3VtZW50YXRpb24gc3lzdGVtIGlzIGhpZXJhcmNoaWNhbCBpbiBuYXR1cmUgc28gZWFjaCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZ29lcyBkb3duIG9uZSBsZXZlbCBpbiB0aGUgaGllcmFyY2h5LgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgZW5kc2VjdGlvbigpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPkVuZHMgdGhlIGN1cnJlbnQgc2VjdGlvbi4gIE1vdmVzIHVwIG9uZSBsZXZlbCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBoaWVyYXJjaHkuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBwcmludF9kZWNsKERvY0VudHJ5ICpkZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q3JlYXRlcyBkb2N1bWVudGF0aW9uIGZvciBhIEMgZGVjbGFyYXRpb24gKGZ1bmN0aW9uLCB2YXJpYWJsZSwgb3IgY29uc3RhbnQpLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgcHJpbnRfdGV4dChEb2NFbnRyeSAqZGUpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPlByaW50cyBkb2N1bWVudGF0aW9uIHRoYXQgaGFzIGJlZW4gZ2l2ZW4gd2l0aCB0aGUgPHR0PiV0ZXh0ICV7ICV9PC90dD4gZGlyZWN0aXZlLiAKLTxkdD48ZGQ+Ci08L2RsPgotPGg2PiB2b2lkIHNlcGFyYXRvcigpOzwvaDY+Ci08ZGw+Ci08ZHQ+PGRkPlByaW50cyBhbiBvcHRpb25hbCBzZXBhcmF0b3IgYmV0d2VlbiBzZWN0aW9ucy4gIAotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgaW5pdChjaGFyICpmaWxlbmFtZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+SW5pdGlhbGl6ZXMgdGhlIGRvY3VtZW50YXRpb24gc3lzdGVtLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWZ0ZXIgY29tbWFuZCBsaW5lIG9wdGlvbnMgaGF2ZSBiZWVuIHBhcnNlZC4gPHR0PmZpbGVuYW1lPC90dD4gaXMgdGhlIGZpbGUgd2hlcmUgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcGxhY2VkLgotPGR0PjxkZD4KLTwvZGw+Ci08aDY+IHZvaWQgY2xvc2Uodm9pZCk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q2xvc2VzIHRoZSBkb2N1bWVudGF0aW9uIGZpbGUuICBBbGwgcmVtYWluaW5nIG91dHB1dCBzaG91bGQgYmUgY29tcGxldGUgYW5kIGZpbGVzIGNsb3NlZCB1cG9uIGV4aXQuCi08ZHQ+PGRkPgotPC9kbD4KLTxoNj4gdm9pZCBzdHlsZShjaGFyICpuYW1lLCBjaGFyICp2YWx1ZSk7PC9oNj4KLTxkbD4KLTxkdD48ZGQ+Q2FsbGVkIHRvIHNldCBzdHlsZSBwYXJhbWV0ZXJzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIDx0dD4lc3R5bGU8L3R0PiBhbmQgPHR0PiVsb2NhbHN0eWxlPC90dD4gZGlyZWN0aXZlcy4gIEl0IGlzIGFsc28gY2FsbGVkIHdoZW5ldmVyIHN0eWxlIHBhcmFtZXRlcnMgYXJlIGdpdmVuIGFmdGVyIGEgc2VjdGlvbiBkaXJlY3RpdmUuCi08L2RsPgotPGEgbmFtZT0ibjQ5Ij48L2E+PGgzPiBVc2luZyBhIG5ldyBkb2N1bWVudGF0aW9uIG1vZHVsZTwvaDM+Ci1Vc2luZyBhIG5ldyBkb2N1bWVudGF0aW9uIG1vZHVsZSByZXF1aXJlcyBhIGNoYW5nZSB0byBTV0lHJ3MgbWFpbiBwcm9ncmFtLiBJZiB5b3UgYXJlIHdyaXRpbmcgeW91ciBvd24gbWFpbigpIHByb2dyYW0sIHlvdSBjYW4gdXNlIGEgbmV3IGRvY3VtZW50YXRpb24gbW9kdWxlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiNpbmNsdWRlICZsdDtzd2lnLmgmZ3Q7Ci0jaW5jbHVkZSAic3dpZ3RjbC5oIiAgICAgICAgICAgICAgICAgICAgICAgLy8gTGFuZ3VhZ2Ugc3BlY2lmaWMgaGVhZGVyCi0jaW5jbHVkZSAibXlkb2MuaCIgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV3IERvY3VtZW50YXRpb24gbW9kdWxlCi0KLWV4dGVybiBpbnQgU1dJR19tYWluKGludCwgY2hhciAqKiwgTGFuZ3VhZ2UgKiwgRG9jdW1lbnRhdGlvbiAqKTsKLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotCQotCVRDTCAqbCA9IG5ldyBUQ0w7ICAgICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyBMYW5ndWFnZSBvYmplY3QKLQlNeURvYyAqZCA9IG5ldyBNeURvYzsgICAgICAgICAgICAgICAvLyBOZXcgZG9jdW1lbnRhdGlvbiBvYmplY3QKLQlpbml0X2FyZ3MoYXJnYywgYXJndik7ICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIGFyZ3MKLQlyZXR1cm4gU1dJR19tYWluKGFyZ2MsIGFyZ3YsIGwsIGQpOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjUwIj48L2E+PGgzPiBXaGVyZSB0byBnbyBmb3IgbW9yZSBpbmZvcm1hdGlvbjwvaDM+Ci1UbyBmaW5kIG91dCBtb3JlIGFib3V0IGRvY3VtZW50YXRpb24gbW9kdWxlcywgbG9vayBhdCBzb21lIG9mIHRoZSBleGlzdGluZyBTV0lHIG1vZHVsZXMgY29udGFpbmVkIGluIHRoZSA8dHQ+U1dJRzEuMS9TV0lHPC90dD4gZGlyZWN0b3J5LiAgVGhlIEFTQ0lJIGFuZCBIVE1MIG1vZHVsZXMgYXJlIGdvb2Qgc3RhcnRpbmcgcG9pbnRzIGZvciBmaW5kaW5nIG1vcmUgaW5mb3JtYXRpb24uIDxwPgotPGEgbmFtZT0ibjEzIj48L2E+PGgyPiBUaGUgRnV0dXJlIG9mIFNXSUc8L2gyPgotU1dJRydzIEMrKyBBUEkgaXMgdGhlIG1vc3QgcmFwaWRseSBldm9sdmluZyBwb3J0aW9uIG9mIFNXSUcuICBXaGlsZSBpbnRlcmZhY2UtZmlsZSBjb21wYXRpYmlsaXR5IHdpbGwgYmUgbWFpbnRhaW5lZCBhcyBtdWNoIGFzIHBvc3NpYmxlIGluIGZ1dHVyZSByZWxlYXNlcywgdGhlIGludGVybmFsIHN0cnVjdHVyZSBvZiBTV0lHIGlzIGxpa2VseSB0byBjaGFuZ2Ugc2lnbmlmaWNhbnRseSBpbiB0aGUgZnV0dXJlLiAgIFRoaXMgd2lsbCBwb3NzaWJseSBoYXZlIG1hbnkgcmFtaWZpY2F0aW9ucyBvbiB0aGUgY29uc3RydWN0aW9uIG9mIGxhbmd1YWdlIG1vZHVsZXMuICAgSGVyZSBhcmUgYSBmZXcgc2lnbmlmaWNhbnQgY2hhbmdlcyB0aGF0IGFyZSBjb21pbmcgOjxwPgotPHA+Ci0KLTxkbD4KLTxkdD4xLgkgQSBjb21wbGV0ZSByZW9yZ2FuaXphdGlvbiBvZiB0aGUgU1dJRyB0eXBlIHN5c3RlbS4gICBEYXRhdHlwZXMgd2lsbCBiZSByZXByZXNlbnRlZCBpbiBhIG1vcmUgZmxleGlibGUgbWFubmVyIHRoYXQgcHJvdmlkZSBmdWxsIHN1cHBvcnQgZm9yIGFycmF5cywgZnVuY3Rpb24gcG9pbnRlcnMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIGFuZCB0eXBlcyBwb3NzaWJseSBjb21pbmcgZnJvbSBvdGhlciBsYW5ndWFnZXMgKHN1Y2ggYXMgRm9ydHJhbikuICAgCi08ZHQ+Mi4JIE9iamVjdGlmaWNhdGlvbiBvZiBmdW5jdGlvbnMsIHZhcmlhYmxlcywgY29uc3RhbnRzLCBjbGFzc2VzLCBldGMuLi4gQ3VycmVudGx5IG1hbnkgb2YgU1dJRydzIGZ1bmN0aW9ucyB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cyBzdWNoIGFzIGZ1bmN0aW9ucyBiZWluZyBkZXNjcmliZWQgYnkgbmFtZSwgcmV0dXJuIGRhdGF0eXBlLCBhbmQgcGFyYW1ldGVycy4gIFRoZXNlIGF0dHJpYnV0ZXMgd2lsbCBiZSBjb25zb2xpZGF0ZWQgaW50byBhIHNpbmdsZSAiRnVuY3Rpb24iIG9iamVjdCwgIlZhcmlhYmxlIiBvYmplY3QsICJDb25zdGFudCIgb2JqZWN0LCBhbmQgc28gZm9ydGguICAKLTxkdD4zLgkgQSBjb21wbGV0ZSByZXdyaXRlIG9mIHRoZSBTV0lHIHBhcnNlci4gICAgVGhpcyB3aWxsIGJlIGNsb3NlbHkgdGllZCB0byB0aGUgY2hhbmdlIGluIGRhdGF0eXBlIHJlcHJlc2VudGF0aW9uIGFtb25nIG90aGVyIHRoaW5ncy4KLTxkdD40LgkgSW5jcmVhc2VkIHJlbGlhbmNlIG9uIHR5cGVtYXBzLiAgIE1hbnkgb2YgU1dJRydzIG9sZGVyIG1vZHVsZXMgZG8gbm90IHJlbHkgb24gdHlwZW1hcHMsIGJ1dCB0aGlzIGlzIGxpa2VseSB0byBjaGFuZ2UuICBUeXBlbWFwcyBwcm92aWRlIGEgbW9yZSBjb25jaXNlIGltcGxlbWVudGF0aW9uIGFuZCBhcmUgZWFzaWVyIHRvIG1haW50YWluLiAgTW9kdWxlcyB3cml0dGVuIGZvciAxLjEgdGhhdCBhZG9wdCB0eXBlbWFwcyBub3cgd2lsbCBiZSBtdWNoIGVhc2llciB0byBpbnRlZ3JhdGUgaW50byBmdXR1cmUgcmVsZWFzZXMuCi08ZHQ+NS4JIEEgcG9zc2libGUgcmVvcmdhbml6YXRpb24gb2Ygb2JqZWN0LW9yaWVudGVkIGNvZGUgZ2VuZXJhdGlvbi4gICBUaGUgbGF5ZXJlZCBhcHByb2FjaCB3aWxsIHByb2JhYmx5IHJlbWFpbiBpbiBwbGFjZSBob3dldmVyLgotPGR0PjYuCSBCZXR0ZXIgc3VwcG9ydCBmb3IgbXVsdGlwbGUtZmlsZXMgKGV4cG9ydGluZywgaW1wb3J0aW5nLCBldGMuLi4pCi0KLTwvZGw+Ci08cD4KLUluIHBsYW5uaW5nIGZvciB0aGUgZnV0dXJlLCAgbXVjaCBvZiBhIGxhbmd1YWdlJ3MgZnVuY3Rpb25hbGl0eSBjYW4gYmUgZGVzY3JpYmVkIGluIHRlcm1zIG9mIHR5cGVtYXBzLiAgU3RpY2tpbmcgdG8gdGhpcyBhcHByb2FjaCB3aWxsIG1ha2UgaXQgc2lnbmlmaWNhbnRseSBlYXNpZXIgdG8gbW92ZSB0byBuZXcgcmVsZWFzZXMuICAgIEkgYW50aWNpcGF0ZSB0aGF0IHRoZXJlIHdpbGwgYmUgZmV3IGRyYXN0aWMgY2hhbmdlcyB0byB0aGUgTGFuZ3VhZ2UgbW9kdWxlIHByZXNlbnRlZCBpbiB0aGlzIHNlY3Rpb24gKG90aGVyIHRoYW4gY2hhbmdlcyB0byBtYW55IG9mIHRoZSBjYWxsaW5nIG1lY2hhbmlzbXMpLjxwPgotCi08cD48aHI+Ci0KLTxhZGRyZXNzPlNXSUcgMS4xIC0gTGFzdCBNb2RpZmllZCA6IE1vbiBBdWcgIDQgMTA6NDc6MTcgMTk5NzwvYWRkcmVzcz4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvSW5kZXguaHRtbCBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvSW5kZXguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc2NjJlYS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NTkgKzAsMCBAQAotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPiBTV0lHIDEuMSBVc2VycyBNYW51YWwgLSBUb3BpYyBJbmRleCA8L3RpdGxlPgotPC9oZWFkPgotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci0KLTxoMT4gQWxwaGFiZXRpY2FsIFRvcGljIEluZGV4IDwvaDE+Ci08aDI+IC0gQSAtIDwvaDI+Ci08YmxvY2txdW90ZT4KLQotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjUzIj5BIGNvbXBsZXRlIGFwcGxpY2F0aW9uPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuNyI+QSBmZXcgZHluYW1pYyBsb2FkaW5nIGdvdGNoYXM8L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjQ5Ij5BIGZldyBoZWxwZXIgZnVuY3Rpb25zPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMTAiPkEgZ2VuZXJhbCBpbnRlcmZhY2UgYnVpbGRpbmcgc3RyYXRlZ3k8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI240NiI+QSBtYXRoZW1hdGljYWwgZnVuY3Rpb24gIHBsb3R0ZXI8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNDAiPkEgUXVpY2sgSW50ZXJtaXNzaW9uPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjI5Ij5BIHNpbXBsZSBleGFtcGxlPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTYiPkEgc2ltcGxlIGV4YW1wbGU8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjUiPkEgc2ltcGxlIFBlcmwgZXhhbXBsZTwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjY3Ij5BIHNpbXBsZSBzaGFkb3cgY2xhc3M8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24zMSI+QSBzaW1wbGUgU1dJRyBpbnRlcmZhY2UgZmlsZTwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMzciPkEgc2ltcGxlIHR5cGVtYXAgZXhhbXBsZTwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjUiPkEgU1dJRyBleGFtcGxlPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjUiPkEgdG91ciBvZiBTV0lHIGRhdGF0eXBlczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjMwIj5BIFR5cGVtYXAgSW1wbGVtZW50YXRpb248L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI241Ij5BYm91dCB0aGUgZXhhbXBsZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjUiPkFib3V0IHRoZSBFeGFtcGxlczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlByZWZhY2UuaHRtbCNuMyI+QWJvdXQgdGhpcyBtYW51YWw8L2E+IChQcmVmYWNlKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24zNyI+QWNjZXNzaW5nIGFycmF5IGRhdGE8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI240MyI+QWNjZXNzaW5nIGFycmF5IHN0cnVjdHVyZSBtZW1iZXJzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNjIiPkFjY2Vzc2luZyBhcnJheSBzdHJ1Y3R1cmUgbWVtYmVyczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI244Ij5BY2Nlc3NpbmcgYXJyYXlzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjYiPkFjY2Vzc2luZyBhcnJheXMgYW5kIG90aGVyIHN0cmFuZ2Ugb2JqZWN0czwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjM2Ij5BY2Nlc3NpbmcgbWVtYmVyIGRhdGE8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI243Ij5BZGRpbmcgQWRkaXRpb25hbCBUZXh0PC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjQwIj5BZGRpbmcgbWVtYmVyIGZ1bmN0aW9ucyB0byBDIHN0cnVjdHVyZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI242NiI+QWRkaW5nIG5hdGl2ZSBQeXRob24gZnVuY3Rpb25zIHRvIGEgU1dJRyBtb2R1bGU8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjU1Ij5BZGRpbmcgbmV3IG1ldGhvZHM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzEiPkFkZGluZyBuZXcgbWV0aG9kczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjE3Ij5BZGRpdGlvbmFsIFNXSUcgb3B0aW9uczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjkiPkFuIEV4YW1wbGU8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI241MCI+QW4gT3BlbkdMIHBhY2thZ2U8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuNSI+QXBwbHlpbmcgY29uc3RyYWludHMgdG8gaW5wdXQgdmFsdWVzPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24yNyI+QXBwbHlpbmcgY29uc3RyYWludHMgdG8gbmV3IGRhdGF0eXBlczwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iRXhjZXB0aW9ucy5odG1sI245Ij5BcHBseWluZyBleGNlcHRpb24gaGFuZGxlcnMgdG8gc3BlY2lmaWMgZGF0YXR5cGVzLjwvYT4gKDcgRXhjZXB0aW9uIEhhbmRsaW5nKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMzgiPkFycmF5IG1lbWJlcnM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMzAiPkFycmF5czwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24xMCI+QVNDSUkgRG9jdW1lbnRhdGlvbjwvYT4gKDUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0pPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjMxIj5BdXRvbWF0ZWQgc2hhZG93IGNsYXNzIGdlbmVyYXRpb248L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMTAiPkF1dG9tYXRpYyBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb248L2E+ICgxIEludHJvZHVjdGlvbik8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIEIgLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjQiPkJhc2ljIFBlcmwgaW50ZXJmYWNlPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMyI+QmFzaWMgVGNsIEludGVyZmFjZTwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNiI+QmluYXJ5IHRyZWVzIGluIFRjbDwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQcmVmYWNlLmh0bWwjbjYiPkJ1ZyByZXBvcnRzPC9hPiAoUHJlZmFjZSk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNDIiPkJ1aWxkaW5nIGEgQyBkYXRhIHN0cnVjdHVyZSBpbiBUY2w8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMjAiPkJ1aWxkaW5nIGEgZHluYW1pYyBtb2R1bGUgd2l0aCBNYWtlTWFrZXI8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjExIj5CdWlsZGluZyBhIFBlcmw1IGludGVyZmFjZSB0byBNQVRMQUI8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24xNSI+QnVpbGRpbmcgYSBQZXJsNSBtb2R1bGU8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMTYiPkJ1aWxkaW5nIGEgUHl0aG9uIG1vZHVsZTwvYT4gKDEgSW50cm9kdWN0aW9uKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI240NSI+QnVpbGRpbmcgYSBzaW1wbGUgMkQgaW1hZ2luZyBjbGFzczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI245Ij5CdWlsZGluZyBhIHNpbXBsZSBPcGVuR0wgbW9kdWxlPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjIxIj5CdWlsZGluZyBhIHN0YXRpYyB2ZXJzaW9uIG9mIFBlcmw8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI240NCI+QnVpbGRpbmcgYW4gb2JqZWN0IG9yaWVudGVkIEMgaW50ZXJmYWNlPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI243Ij5CdWlsZGluZyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMgd2l0aCBUazwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNTIiPkJ1aWxkaW5nIGxhcmdlICBtdWx0aS1tb2R1bGUgc3lzdGVtczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24xOSI+QnVpbGRpbmcgbGlicmFyaWVzIGFuZCBtb2R1bGVzPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjEzIj5CdWlsZGluZyBuZXcga2luZHMgb2YgVGNsIGludGVyZmFjZXMgKGluIFRjbCk8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMiI+QnVpbGRpbmcgUGVybCBFeHRlbnNpb25zIHVuZGVyIFdpbmRvd3MgOTUvTlQ8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24yIj5CdWlsZGluZyBQeXRob24gRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjMiPkJ1aWxkaW5nIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb25zPC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24yIj5CdWlsZGluZyBUY2wvVGsgRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj48L2Jsb2NrcXVvdGU+Ci08aDI+IC0gQyAtIDwvaDI+Ci08YmxvY2txdW90ZT4KLQotPGEgaHJlZj0iU1dJRy5odG1sI24zOSI+QyBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNDAiPkMgZmlsZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24yMSI+QyBJbmZvcm1hdGlvbjwvYT4gKDUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0pPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24xNCI+QyBQcmVwcm9jZXNzb3IgZGlyZWN0aXZlczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjYiPkMgc3ludGF4LCBidXQgbm90IGEgQyBjb21waWxlcjwvYT4gKDEgSW50cm9kdWN0aW9uKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24zMiI+QysrIENsYXNzZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjI4Ij5DKysgQ2xhc3NlczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNDQiPkMrKyBleGFtcGxlPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTEiPkMrKyBQcm9jZXNzaW5nPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI242Ij5DKysgc3VwcG9ydDwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24xMyI+QysrIFN1cHBvcnQ8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNjgiPkNhdGVnb3JpZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24zNyI+Q2hhbmdpbmcgbWVtYmVyIGRhdGE8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24xOSI+Q2hhcmFjdGVyIFN0cmluZ3M8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMzciPkNoYXJhY3RlciBzdHJpbmdzIGFuZCBzdHJ1Y3R1cmVzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjE3Ij5DaGVja2luZyBpbiBsaWJyYXJ5IGZpbGVzPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjE1Ij5DaGVja2luZyBvdXQgbGlicmFyeSBmaWxlczwvYT4gKDQgTXVsdGlwbGUgZmlsZXMgYW5kIHRoZSBTV0lHIGxpYnJhcnkpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24zIj5DaG9vc2luZyBhIGRvY3VtZW50YXRpb24gZm9ybWF0PC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjYyIj5DbGFzcyBtZXRob2RzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMzUiPkNsZWFudXA8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjc3Ij5Db2RlIGJsb2NrczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjkiPkNvZGUgR2VuZXJhdGlvbiBGdW5jdGlvbnM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjkiPkNvZGUgSW5zZXJ0aW9uPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNjYiPkNvbWJpbmluZyBUY2wvVGsgRXh0ZW5zaW9uczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMzAiPkNvbW1hbmQgTGluZSBPcHRpb25zIGFuZCBCYXNpYyBJbml0aWFsaXphdGlvbjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTYiPkNvbW1lbnQgRm9ybWF0dGluZyB2YXJpYWJsZXM8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTgiPkNvbW1lbnQgcGxhY2VtZW50IGFuZCBmb3JtYXR0aW5nPC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjEzIj5Db21tZW50czwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuNyI+Q29tbW9uIHR5cGVtYXAgbWV0aG9kczwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjIyIj5Db21waWxhdGlvbiBwcm9ibGVtczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24yMiI+Q29tcGlsYXRpb24gcHJvYmxlbXMgYW5kIGNvbXBpbGluZyB3aXRoIEMrKzwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjE5Ij5Db21waWxhdGlvbiBwcm9ibGVtcyBhbmQgY29tcGlsaW5nIHdpdGggQysrPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjIwIj5Db21waWxpbmc8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24xOSI+Q29tcGlsaW5nIGEgZHluYW1pYyBtb2R1bGU8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24xNiI+Q29tcGlsaW5nIGEgZHluYW1pYyBtb2R1bGU8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMTkiPkNvbXBpbGluZyBhIGR5bmFtaWMgbW9kdWxlIChVbml4KTwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMiI+Q29tcGlsaW5nIGEgU1dJRyBleHRlbnNpb248L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMzIiPkNvbXBpbGluZyBtb2R1bGVzIHdpdGggc2hhZG93IGNsYXNzZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjgiPkNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMTIiPkNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCB3aXRoIFNXSUc8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjM5Ij5Db25zdGFudHM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjIxIj5Db25zdGFudHM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24yNSI+Q29uc3RhbnRzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjkiPkNvbnN0YW50czwvYT4gKDIgU2NyaXB0aW5nIExhbmd1YWdlcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMjkiPkNvbnN0YW50czwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24yNyI+Q29uc3RhbnRzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24yNiI+Q29uc3RyYWludCBtZXRob2RzPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjYwIj5Db25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNzIiPkNvbnN0cnVjdG9ycyBhbmQgRGVzdHJ1Y3RvcnM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjQ1Ij5Db25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNTciPkNvbnZlcnRpbmcgIGEgVGNsIGxpc3QgdG8gYSBjaGFyICoqPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241OCI+Q29udmVydGluZyAgUHl0aG9uIGxpc3QgdG8gYSBjaGFyICoqPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuNDEiPkNvbnZlcnRpbmcgYSBQZXJsNSBhcnJheSB0byBhIGNoYXIgKio8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241OSI+Q29udmVydGluZyBhIFB5dGhvbiBmaWxlIG9iamVjdCB0byBhIEZJTEUgKjwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjM0Ij5Db3B5aW5nIGEgdHlwZW1hcDwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjY1Ij5DcmVhdGluZyBhIG5ldyBwYWNrYWdlIGluaXRpYWxpemF0aW9uIGxpYnJhcnk8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMzIiPkNyZWF0aW5nIGEgbmV3IHR5cGVtYXA8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240NyI+Q3JlYXRpbmcgYSB1c2FnZSBzdHJpbmc8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMzciPkNyZWF0aW5nIGEgV3JhcHBlciBGdW5jdGlvbjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjE3Ij5DcmVhdGluZyBhcnJheXM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24zNiI+Q3JlYXRpbmcgQ29tbWFuZHM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjciPkNyZWF0aW5nIExpYnJhcnkgRmlsZXM8L2E+ICg0IE11bHRpcGxlIGZpbGVzIGFuZCB0aGUgU1dJRyBsaWJyYXJ5KTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjM3Ij5DcmVhdGluZyBsb2NhbCB2YXJpYWJsZXM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkFkdmFuY2VkLmh0bWwjbjEiPkNyZWF0aW5nIG11bHRpLW1vZHVsZSBwYWNrYWdlczwvYT4gKDExIEFkdmFuY2VkIFRvcGljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMzMiPkNyZWF0aW5nIG5ldyBvYmplY3RzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMzEiPkNyZWF0aW5nIHJlYWQtb25seSB2YXJpYWJsZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlByZWZhY2UuaHRtbCNuNCI+Q3JlZGl0czwvYT4gKFByZWZhY2UpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjIyIj5Dcm9zcyBwbGF0Zm9ybSB3b2VzPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBEIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjciPkRlYnVnZ2luZyBhbmQgb3RoZXIgaW50ZXJlc3RpbmcgdXNlcyBmb3IgJWV4Y2VwdDwvYT4gKDcgRXhjZXB0aW9uIEhhbmRsaW5nKTxicj4KLTxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTUiPkRlZmF1bHQgRm9ybWF0dGluZzwvYT4gKDUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0pPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24zNCI+RGVmYXVsdC9vcHRpb25hbCBhcmd1bWVudHM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IkV4Y2VwdGlvbnMuaHRtbCNuNSI+RGVmaW5pbmcgZGlmZmVyZW50IGV4Y2VwdGlvbiBoYW5kbGVyczwvYT4gKDcgRXhjZXB0aW9uIEhhbmRsaW5nKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzMiPkRlZmluaW5nIHN5bWJvbHM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjMzIj5EZWxldGluZyBhIHR5cGVtYXA8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24zNSI+RGVsZXRpbmcgb2JqZWN0czwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjI0Ij5EZXJpdmVkIHR5cGVzLCBzdHJ1Y3RzLCBhbmQgY2xhc3NlczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI244Ij5EaXNhYmxpbmcgYWxsIGRvY3VtZW50YXRpb248L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240NiI+RG9jdW1lbnRhdGlvbiBlbnRyaWVzPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjE4Ij5Eb2N1bWVudGF0aW9uIGdlbmVyYXRpb248L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTIiPkRvY3VtZW50YXRpb24gUHJvY2Vzc2luZzwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI242OCI+RHluYW1pYyBsb2FkaW5nPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IkFkdmFuY2VkLmh0bWwjbjIiPkR5bmFtaWMgTG9hZGluZyBvZiBDKysgbW9kdWxlczwvYT4gKDExIEFkdmFuY2VkIFRvcGljcyk8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIEUgLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24zMiI+RW1pdHRpbmcgaGVhZGVycyBhbmQgc3VwcG9ydCBjb2RlPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI241MCI+RW51bXMgYW5kIGNvbnN0YW50czwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjkiPkV2ZW50IGRyaXZlbiBDIHByb2dyYW1taW5nPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjkiPkV4Y2VwdGlvbiBoYW5kbGluZzwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjEzIj5FeGNlcHRpb24gaGFuZGxpbmc8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24xMCI+RXhjZXB0aW9uIGhhbmRsaW5nPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IkV4Y2VwdGlvbnMuaHRtbCNuMyI+RXhjZXB0aW9uIGhhbmRsaW5nIHdpdGggbG9uZ2ptcCgpPC9hPiAoNyBFeGNlcHRpb24gSGFuZGxpbmcpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjQ0Ij5FeHRlbmRpbmcgYW5kIGZpeGluZyB0aGUgZ2QgbW9kdWxlPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjE0Ij5FeHRlbmRpbmcgdGhlIFRjbCBOZXRzY2FwZSBQbHVnaW48L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBGIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNyI+RmlsZSBtYW5hZ2VtZW50PC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjM0Ij5GaW5hbCBJbml0aWFsaXphdGlvbjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMTgiPkZsb2F0aW5nIFBvaW50PC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjYiPkZvcm1hdHRpbmc8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI240OCI+RnJvbSBDIHRvIFNXSUcgdG8gUHl0aG9uPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjIyIj5GdW5jdGlvbiBQYXJhbWV0ZXJzPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI240Ij5GdW5jdGlvbiB1c2FnZSBhbmQgYXJndW1lbnQgbmFtZXM8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24yNyI+RnVuY3Rpb25zPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24yMyI+RnVuY3Rpb25zPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMjUiPkZ1bmN0aW9uczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBHIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJTV0lHLmh0bWwjbjQiPkdldHRpbmcgZG93biB0byBidXNpbmVzczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjM5Ij5HZXR0aW5nIGV2ZW4gbW9yZSBzZXJpb3VzIGFib3V0IGFycmF5IGFjY2VzczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjkiPkdldHRpbmcgc2VyaW91czwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMTgiPkdldHRpbmcgdGhlIHJpZ2h0IGhlYWRlciBmaWxlczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjE1Ij5HZXR0aW5nIHRoZSByaWdodCBoZWFkZXIgZmlsZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjg0Ij5HZXR0aW5nIHRoZSByaWdodCBoZWFkZXIgZmlsZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24xOCI+R2V0dGluZyB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzIGFuZCBsaWJyYXJpZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjI4Ij5HbG9iYWwgdmFyaWFibGVzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjI2Ij5HbG9iYWwgdmFyaWFibGVzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24zNiI+R3JhcGhpY2FsIFdlYi1TdGF0aXN0aWNzIGluIFBlcmw1PC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24zMCI+R3JhcGhzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIEggLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IkV4Y2VwdGlvbnMuaHRtbCNuNCI+SGFuZGxpbmcgQysrIGV4Y2VwdGlvbnM8L2E+ICg3IEV4Y2VwdGlvbiBIYW5kbGluZyk8YnI+Ci08YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjIiPkhhbmRsaW5nIGV4Y2VwdGlvbnMgaW4gQyBjb2RlPC9hPiAoNyBFeGNlcHRpb24gSGFuZGxpbmcpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMTIiPkhhbmRsaW5nIG91dHB1dCB2YWx1ZXMgKHRoZSBlYXN5IHdheSk8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI244Ij5IYW5kcyBvZmYgY29kZSBnZW5lcmF0aW9uPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjI0Ij5IYXNoIFRhYmxlczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240NSI+SGludHM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNDMiPkhvdyBDKysgcHJvY2Vzc2luZyB3b3JrczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI24yIj5Ib3cgZG9lcyBhIHNjcmlwdGluZyBsYW5ndWFnZSB0YWxrIHRvIEM/PC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMiI+SG93IGl0IHdvcmtzPC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMjgiPkhvdyBtYW55IHR5cGVtYXBzIGFyZSB0aGVyZT88L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjg4Ij5Ib3cgdG8gYXZvaWQgY3JlYXRpbmcgdGhlIGludGVyZmFjZSBmcm9tIGhlbGw8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlByZWZhY2UuaHRtbCNuMTAiPkhvdyB0byBhdm9pZCByZWFkaW5nIHRoZSBtYW51YWw8L2E+IChQcmVmYWNlKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjEzIj5Ib3cgdG8gYnJlYWsgZXZlcnl0aGluZyB3aXRoIGEgdHlwZW1hcDwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI244NyI+SG93IHRvIGNvcGUgd2l0aCBDKys8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24yMyI+SG93IHRvIHN1cnZpdmUgdGhpcyBtYW51YWw8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjExIj5IVE1MIERvY3VtZW50YXRpb248L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj48L2Jsb2NrcXVvdGU+Ci08aDI+IC0gSSAtIDwvaDI+Ci08YmxvY2txdW90ZT4KLQotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24yMCI+SWdub3JpbmcgY29tbWVudHM8L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNjkiPkltcGxlbWVudGF0aW9ucyBhbmQgUHJvdG9jb2xzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMTEiPkltcGxlbWVudGluZyBDIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbiBQeXRob248L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24xMSI+SW1wbGVtZW50aW5nIGNvbnN0cmFpbnRzIHdpdGggdHlwZW1hcHM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI240MyI+SW1wbGVtZW50aW5nIG1ldGhvZHMgaW4gQzwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI243Ij5JbXBsZW1lbnRpbmcgbWV0aG9kcyBpbiBQZXJsPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNDAiPkltcGxlbWVudGluZyBzcGVjaWFsIFB5dGhvbiBtZXRob2RzIGluIEM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjQiPkluY2x1ZGluZyBmaWxlcyBvbiB0aGUgY29tbWFuZCBsaW5lPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI241NCI+SW5oZXJpdGFuY2U8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNTIiPkluaGVyaXRhbmNlPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjY2Ij5Jbmhlcml0YW5jZTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjc3Ij5Jbmhlcml0YW5jZSBhbmQgc2hhZG93IGNsYXNzZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjc5Ij5Jbml0aWFsaXphdGlvbiBibG9ja3M8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzgiPklubGluZWQgY29kZSBibG9ja3M8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMTEiPklucHV0IGZvcm1hdDwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMjEiPklucHV0IE1ldGhvZHM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjIzIj5JbnB1dC9PdXRwdXQgTWV0aG9kczwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuMyI+SW5zaWRlIHRoZSBTV0lHIHR5cGUtY2hlY2tlcjwvYT4gKDExIEFkdmFuY2VkIFRvcGljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjYxIj5JbnN0YW5jZSBtZXRob2RzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjE3Ij5JbnRlZ2VyczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMSI+SW50cm9kdWN0aW9uPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjEiPkludHJvZHVjdGlvbjwvYT4gKDUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0pPGJyPgotPGEgaHJlZj0iUHJlZmFjZS5odG1sI24xIj5JbnRyb2R1Y3Rpb248L2E+IChQcmVmYWNlKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24xIj5JbnRyb2R1Y3Rpb248L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24zIj5JbnRyb2R1Y3Rpb24gdG8gdHlwZW1hcHM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24zNCI+SW52b2tpbmcgbWVtYmVyIGZ1bmN0aW9uczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI241NSI+SXRlcmF0b3JzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIEwgLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240NCI+TGFuZ3VhZ2UgZXh0ZW5zaW9uczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkRvY3VtZW50YXRpb24uaHRtbCNuMTIiPkxhVGVYIERvY3VtZW50YXRpb248L2E+ICg1IERvY3VtZW50YXRpb24gU3lzdGVtKTxicj4KLTxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuNiI+TGlicmFyeSBleGFtcGxlPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMyI+TGlmZSBhZnRlciBTV0lHPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjIiPkxpZmUgYmVmb3JlIFNXSUc8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjE2Ij5MaW1pdGF0aW9ucyBpbiB0aGUgUGFyc2VyIChhbmQgdmFyaW91cyB0aGluZ3MgdG8ga2VlcCBpbiBtaW5kKTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjY3Ij5MaW1pdGF0aW9ucyB0byB0aGlzIGFwcHJvYWNoPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMjkiPkxpbmtpbmcgdG8gY29tcGxleCB2YXJpYWJsZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI24xMyI+TGlua2luZyB3aXRoIHNoYXJlZCBsaWJyYXJpZXM8L2E+ICgyIFNjcmlwdGluZyBMYW5ndWFnZXMpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBNIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJUY2wuaHRtbCNuNDEiPk1ha2luZyBhIHF1aWNrIGEgZGlydHkgVGNsIG1vZHVsZTwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMzUiPk1ha2luZyBhIHF1aWNrIGFuZCBkaXJ0eSBQeXRob24gbW9kdWxlPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iTGlicmFyeS5odG1sI24xMiI+bWFsbG9jLmk8L2E+ICg0IE11bHRpcGxlIGZpbGVzIGFuZCB0aGUgU1dJRyBsaWJyYXJ5KTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjQiPk1hbmFnaW5nIGlucHV0IGFuZCBvdXRwdXQgcGFyYW1ldGVyczwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMjkiPk1hbmFnaW5nIHNwZWNpYWwgZGF0YS10eXBlcyB3aXRoIGhlbHBlciBmdW5jdGlvbnM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24zOCI+TWFuaXB1bGF0aW5nIEdsb2JhbCBWYXJpYWJsZXM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNjAiPk1hcHBpbmcgQyBzdHJ1Y3R1cmVzIGludG8gVGNsIExpc3RzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI242MSI+TWFwcGluZyBQeXRob24gdHVwbGVzIGludG8gc21hbGwgYXJyYXlzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjczIj5NZW1iZXIgZGF0YTwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNDgiPk1lbWJlciBkYXRhPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjYzIj5NZW1iZXIgZGF0YTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI240NiI+TWVtYmVyIGZ1bmN0aW9uczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjQ5Ij5NZXJnaW5nIG1vZHVsZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNzgiPk1ldGhvZHMgdGhhdCByZXR1cm4gbmV3IG9iamVjdHM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI240OSI+TW9kdWxlIGFuZCBwYWNrYWdlIG5hbWVzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNjgiPk1vZHVsZSBuYW1lczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24yMiI+TW9kdWxlczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjMiPk1vZHVsZXMsIHBhY2thZ2VzLCBhbmQgY2xhc3NlczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iTGlicmFyeS5odG1sI24xMCI+TW9yZSBhYm91dCB0aGUgU1dJRyBsaWJyYXJ5PC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjgiPk1vcmUgRXhhbXBsZXM8L2E+ICg3IEV4Y2VwdGlvbiBIYW5kbGluZyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24yOCI+TW90aXZhdGlvbnMgZm9yIHVzaW5nIHR5cGVtYXBzPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIE4gLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IlRjbC5odG1sI241NiI+TmFtZSBiYXNlZCB0eXBlIGNvbnZlcnNpb248L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjU3Ij5OYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbjwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjQwIj5OYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbjwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjgiPk5hbWluZyBTZXJ2aWNlczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI243NiI+TmVzdGVkIG9iamVjdHM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI241MiI+TmVzdGVkIE9iamVjdHM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNDEiPk5lc3RlZCBzdHJ1Y3R1cmVzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuNyI+Tm9uLWludHJ1c2l2ZSBpbnRlcmZhY2UgYnVpbGRpbmc8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIE8gLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjUxIj5PYmplY3QgT3duZXJzaGlwPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNzEiPk9iamVjdCBvd25lcnNoaXA8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjciPk9iamVjdGl2ZS1DPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjU5Ij5PYmplY3RpdmUtQyBFeGFtcGxlPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQcmVmYWNlLmh0bWwjbjkiPk9yZ2FuaXphdGlvbiBvZiB0aGlzIG1hbnVhbDwvYT4gKFByZWZhY2UpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI243MiI+T3RoZXIgaXNzdWVzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMTIiPk90aGVyIG9kZHMgYW5kIGVuZHM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjQyIj5PdGhlciB0aGluZ3MgdG8gbm90ZSBhYm91dCBzdHJ1Y3R1cmVzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24yMiI+T3V0cHV0IE1ldGhvZHM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMzMiPk92ZXJyaWRpbmcgY2FsbCBieSByZWZlcmVuY2U8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj48L2Jsb2NrcXVvdGU+Ci08aDI+IC0gUCAtIDwvaDI+Ci08YmxvY2txdW90ZT4KLQotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTgiPlBhY2tpbmcgYSBkYXRhIHN0cnVjdHVyZTwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI241NiI+UGFydGlhbCBjbGFzcyBkZWZpbml0aW9uczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24yNyI+UGFzc2luZyBjb21wbGV4IGRhdGF0eXBlcyBieSB2YWx1ZTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjM5Ij5QZXJmb3JtYW5jZSBjb25jZXJucyBhbmQgZGlzYWJsaW5nIHRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI243OSI+UGVyZm9ybWFuY2UgY29uY2VybnMgYW5kIGhpbnRzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuMTEiPlBlcmZvcm1hbmNlIG9mIHRoZSB0eXBlLWNoZWNrZXI8L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMzgiPlBlcmw1IHR5cGVtYXBzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjEzIj5QbGFjaW5nIHRoZSBmaWxlcyBpbiB0aGUgbGlicmFyeTwvYT4gKDQgTXVsdGlwbGUgZmlsZXMgYW5kIHRoZSBTV0lHIGxpYnJhcnkpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjQ3Ij5QbG90dGluZyBhbiB1bnN0cnVjdHVyZWQgbWVzaDwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjQ3Ij5Qb2ludGVyIGhhbmRsaW5nPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNjMiPlBvaW50ZXIgaGFuZGxpbmc8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjY1Ij5Qb2ludGVyIGhhbmRsaW5nPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTUiPlBvaW50ZXIgTGlicmFyeSBGdW5jdGlvbnM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjI4Ij5Qb2ludGVyczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjMwIj5Qb2ludGVyczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMjYiPlBvaW50ZXJzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24zIj5Qb2ludGVycyBhbmQgY29tcGxleCBvYmplY3RzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjM1Ij5Qb2ludGVycyB0byBmdW5jdGlvbnM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzUiPlByZWRlZmluZWQgU3ltYm9sczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjEiPlByZWxpbWluYXJpZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMSI+UHJlbGltaW5hcmllczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjEiPlByZWxpbWluYXJpZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjgxIj5QcmVwYXJpbmcgYSBDIHByb2dyYW0gZm9yIFNXSUc8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI240MiI+UHJlcGFyaW5nIGEgbW9kdWxlPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUHJlZmFjZS5odG1sI244Ij5QcmVyZXF1aXNpdGVzPC9hPiAoUHJlZmFjZSk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTQiPlByZXJlcXVpc2l0ZXM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNzQiPlByaW50aW5nPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjUyIj5Qcm9ibGVtcyB3aXRoIHRoZSBPcGVuR0wgaW50ZXJmYWNlPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNDkiPlByb3RlY3Rpb248L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNjQiPlByb3RlY3Rpb248L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI244Ij5QdXR0aW5nIGl0IGFsbCB0b2dldGhlcjwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjM1Ij5QdXR0aW5nIGl0IGFsbCB0b2dldGhlcjwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjQiPlB5dGhvbiBzaGFkb3cgY2xhc3NlczwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241NSI+UHl0aG9uIHR5cGVtYXBzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBSIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJQeXRob24uaHRtbCNuMTciPlJlYnVpbGRpbmcgdGhlIFB5dGhvbiBpbnRlcnByZXRlciAoYWthLiBzdGF0aWMgbGlua2luZyk8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjUxIj5SZWZlcmVuY2VzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjY3Ij5SZWZlcnJpbmcgdG8gb3RoZXIgY2xhc3NlczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjM4Ij5SZWxhdGlvbnNoaXAgd2l0aCBwb2ludGVyczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMTAiPlJlbWFwcGluZyBDIGRhdGF0eXBlcyB3aXRoIHR5cGVtYXBzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjU4Ij5SZW1hcHBpbmcgY29uc3RhbnRzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjE0Ij5SZW1hcHBpbmcgZGF0YXR5cGVzIHdpdGggdHlwZW1hcHM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzAiPlJlbmFtaW5nPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjU0Ij5SZW5hbWluZzwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24zMiI+UmVuYW1pbmcgZGVjbGFyYXRpb25zPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTgiPlJlcXVpcmVkIEMrKyBjb21waWxlcjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24xNyI+UmVxdWlyZWQgZmlsZXM8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNDUiPlJlcXVpcmVkIGZpbGVzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMjgiPlJldHVybiBieSB2YWx1ZTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuNDgiPlJldHVybiB2YWx1ZXM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI241OSI+UmV0dXJuaW5nIHZhbHVlcyBpbiBhcmd1bWVudHM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24yMyI+UnVuIHRpbWUgcG9pbnRlciB0eXBlIGNoZWNraW5nPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24xNyI+UnVubmluZyBTV0lHPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMTQiPlJ1bm5pbmcgU1dJRzwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMSI+UnVubmluZyBTV0lHPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMTYiPlJ1bm5pbmcgU1dJRzwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMjUiPlJ1bm5pbmcgU1dJRyBmcm9tIERldmVsb3BlciBTdHVkaW88L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjIwIj5SdW5uaW5nIFNXSUcgZnJvbSBEZXZlbG9wZXIgU3R1ZGlvPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMjMiPlJ1bm5pbmcgU1dJRyBmcm9tIERldmVsb3BlciBTdHVkaW88L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IkFkdmFuY2VkLmh0bWwjbjQiPlJ1bnRpbWUgc3VwcG9ydCAoYW5kIHBvdGVudGlhbCBwcm9ibGVtcyk8L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBTIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJQZXJsNS5odG1sI24zMiI+U2FtcGxlIFBlcmwgU2NyaXB0PC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24zNiI+U2NvcGU8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24zMyI+U2V0dGluZyBhIG1vZHVsZSBuYW1lPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjIzIj5TZXR0aW5nIGEgcGFja2FnZSBwcmVmaXg8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuOCI+U2hhZG93IGNsYXNzZXM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI243MCI+U2hhZG93IGNsYXNzZXM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjExIj5TaGFkb3cgY2xhc3NlczwvYT4gKDIgU2NyaXB0aW5nIExhbmd1YWdlcyk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI241MyI+U2hhZG93IEZ1bmN0aW9uczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjc1Ij5TaGFkb3cgRnVuY3Rpb25zPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjQiPlNoYXJlZCBsaWJyYXJpZXMgYW5kIGR5bmFtaWMgbG9hZGluZzwvYT4gKDIgU2NyaXB0aW5nIExhbmd1YWdlcyk8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMTciPlNob3J0Y3V0czwvYT4gKDEgSW50cm9kdWN0aW9uKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMiI+U2ltcGxlIEMgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBjb25zdGFudHM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjI1Ij5TaW1wbGUgY29uc3RyYWludCBleGFtcGxlPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjIyIj5TaW1wbGUgcG9pbnRlcnM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI242Ij5Tb2x2aW5nIGEgc2ltcGxlIGhlYXQtZXF1YXRpb248L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjE3Ij5Tb3J0aW5nPC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24zOCI+U3BlY2lhbCB2YXJpYWJsZXM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI242NCI+U3RhbmRhcmQgIHR5cGVtYXBzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjYyIj5TdGFuZGFyZCAgdHlwZW1hcHM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuNDYiPlN0YW5kYXJkIHR5cGVtYXBzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMzEiPlN0YXJ0aW5nIHRoZSBwYXJzZXI8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjkiPlN0YXRpYyBpbml0aWFsaXphdGlvbiBvZiBtdWx0aXBsZSBtb2R1bGVzPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJTY3JpcHRpbmcuaHRtbCNuMTIiPlN0YXRpYyBsaW5raW5nPC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24yMSI+U3RhdGljIGxpbmtpbmc8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI240NyI+U3RhdGljIG1lbWJlcnM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24zMSI+U3RydWN0dXJlczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMjciPlN0cnVjdHVyZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24yOSI+U3RydWN0dXJlcyBhbmQgQysrIGNsYXNzZXM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI24xMCI+U3RydWN0dXJlcyBhbmQgY2xhc3NlczwvYT4gKDIgU2NyaXB0aW5nIExhbmd1YWdlcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjUiPlN0cnVjdHVyZXMsIHVuaW9ucywgYW5kIG9iamVjdCBvcmllbnRlZCBDIHByb2dyYW1taW5nPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJJbnRyb2R1Y3Rpb24uaHRtbCNuMTEiPlN1bW1hcnk8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNDEiPlN1bW1hcnkgKHNvIGZhcik8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjQzIj5TdXBwb3J0ZWQgQysrIGZlYXR1cmVzPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjE1Ij5TV0lHIERpcmVjdGl2ZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24xMiI+U1dJRyBmb3IgV2luZG93cyBhbmQgTWFjaW50b3NoPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjEzIj5TV0lHIGludGVyZmFjZSBmaWxlPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iUHJlZmFjZS5odG1sI243Ij5TV0lHIGlzIGZyZWU8L2E+IChQcmVmYWNlKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24yMSI+U1dJRyBvbiB0aGUgUG93ZXIgTWFjaW50b3NoPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjIwIj5TV0lHIG9uIFdpbmRvd3MgOTUvTlQ8L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMTUiPlNXSUcgT3JnYW5pemF0aW9uPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjMiPlNXSUcgb3V0cHV0PC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24xMiI+U1dJRyBPdXRwdXQ8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlByZWZhY2UuaHRtbCNuMiI+U1dJRyByZXNvdXJjZXM8L2E+IChQcmVmYWNlKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNTciPlNXSUcsIEMrKywgYW5kIHRoZSBMZWdpc2xhdGlvbiBvZiBNb3JhbGl0eTwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBUIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjE5Ij5UYWJzIGFuZCBvdGhlciBhbm5veWFuY2VzPC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNTQiPlRjbCB0eXBlbWFwczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMTUiPlRjbDguMCBmZWF0dXJlczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjExIj50Y2xzaC5pPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjUzIj5UZW1wbGF0ZXM8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzQiPlRoZSAjaWYgZGlyZWN0aXZlPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjEiPlRoZSAlZXhjZXB0IGRpcmVjdGl2ZTwvYT4gKDcgRXhjZXB0aW9uIEhhbmRsaW5nKTxicj4KLTxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuMiI+VGhlICVleHRlcm4gZGlyZWN0aXZlPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjMiPlRoZSAlaW1wb3J0IGRpcmVjdGl2ZTwvYT4gKDQgTXVsdGlwbGUgZmlsZXMgYW5kIHRoZSBTV0lHIGxpYnJhcnkpPGJyPgotPGEgaHJlZj0iTGlicmFyeS5odG1sI24xIj5UaGUgJWluY2x1ZGUgZGlyZWN0aXZlPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMzQiPlRoZSBDKysgY29kZTwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24yMSI+VGhlIERhdGFUeXBlIGNsYXNzPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iRG9jdW1lbnRhdGlvbi5odG1sI24xNCI+VGhlIEZpbmFsIFdvcmQ/PC9hPiAoNSBEb2N1bWVudGF0aW9uIFN5c3RlbSk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjU4Ij5UaGUgZnV0dXJlIG9mIEMrKyBhbmQgU1dJRzwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjEzIj5UaGUgRnV0dXJlIG9mIFNXSUc8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMTMiPlRoZSBnb3J5IGRldGFpbHMgb2Ygc2hhZG93IGNsYXNzZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24xNSI+VGhlIGdvcnkgZGV0YWlscyBvbiBzaGFkb3cgY2xhc3NlczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjI5Ij5UaGUgaGVhZGVyIGZpbGU8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24xOSI+VGhlIGlkZWEgKGluIGEgbnV0c2hlbGwpPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNCI+VGhlIExhbmd1YWdlIGNsYXNzIChzaW1wbGUgdmVyc2lvbik8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMyI+VGhlIGxvdy1sZXZlbCBQeXRob24vQyBpbnRlcmZhY2U8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24zMyI+VGhlIE1BVExBQiBlbmdpbmUgaW50ZXJmYWNlPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNCI+VGhlIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2U8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjE2Ij5UaGUgb3JnYW5pemF0aW9uIG9mIHRoaXMgY2hhcHRlcjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuNzYiPlRoZSBvdXRwdXQgb2YgU1dJRzwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjcxIj5UaGUgc3RlcC1ieS1zdGVwIHByb2Nlc3MgZm9yIG1ha2luZyBhIHBsdWdpbiBleHRlbnNpb24uPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24yMyI+VGhlIFN0cmluZyBDbGFzczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI24xNCI+VGhlIHN3aWcgY29tbWFuZDwvYT4gKDEgSW50cm9kdWN0aW9uKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuODIiPlRoZSBTV0lHIGludGVyZmFjZSBmaWxlPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjUiPlRoZSBTV0lHIGxpYnJhcnk8L2E+ICg0IE11bHRpcGxlIGZpbGVzIGFuZCB0aGUgU1dJRyBsaWJyYXJ5KTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240MiI+VGhlIFNXSUcgbGlicmFyeSBhbmQgaW5zdGFsbGF0aW9uIGlzc3VlczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkludHJvZHVjdGlvbi5odG1sI240Ij5UaGUgU1dJRyBwYWNrYWdlPC9hPiAoMSBJbnRyb2R1Y3Rpb24pPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMiI+VGhlIFNXSUcgUG9pbnRlciBMaWJyYXJ5PC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJBZHZhbmNlZC5odG1sI242Ij5UaGUgU1dJRyBydW50aW1lIGxpYnJhcnk8L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjcwIj5UaGUgdGhpcyBwb2ludGVyPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iU2NyaXB0aW5nLmh0bWwjbjEiPlRoZSB0d28gbGFuZ3VhZ2UgdmlldyBvZiB0aGUgd29ybGQ8L2E+ICgyIFNjcmlwdGluZyBMYW5ndWFnZXMpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjI2Ij5UaGUgdHlwZW1hcCBDIEFQSS48L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjY1Ij5UaGUgdXNlIG9mIGlkPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjE2Ij5UaGUgd29ybGQncyBmYXN0ZXN0IHdheSB0byB3cml0ZSBhIE1ha2VmaWxlPC9hPiAoNCBNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMjUiPlRoZSBXcmFwcGVyRnVuY3Rpb24gY2xhc3M8L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJEb2N1bWVudGF0aW9uLmh0bWwjbjUiPlRpdGxlcywgc2VjdGlvbnMsIGFuZCBzdWJzZWN0aW9uczwvYT4gKDUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjY5Ij5UdXJuaW5nIGEgU1dJRyBtb2R1bGUgaW50byBhIFRjbCBQYWNrYWdlLjwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI240NCI+VHVybmluZyBQZXJsIHJlZmVyZW5jZXMgaW50byBDIHBvaW50ZXJzPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNjkiPlR3byBjbGFzc2VzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuOSI+VHlwZSBjYXN0aW5nPC9hPiAoMTEgQWR2YW5jZWQgVG9waWNzKTxicj4KLTxhIGhyZWY9IkFkdmFuY2VkLmh0bWwjbjgiPlR5cGUgZXF1aXZhbGVuY2U8L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24yNiI+VHlwZWRlZjwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iU1dJRy5odG1sI24zNiI+VHlwZWRlZiBhbmQgc3RydWN0dXJlczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTIiPlR5cGVtYXAgZXhhbXBsZXM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjM1Ij5UeXBlbWFwIG1hdGNoaW5nIHJ1bGVzPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24zOSI+VHlwZW1hcCB2YXJpYWJsZXM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241NiI+VHlwZW1hcCB2YXJpYWJsZXM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNTUiPlR5cGVtYXAgdmFyaWFibGVzPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24xMSI+VHlwZW1hcHM8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjYiPlR5cGVtYXBzIChmcm9tIEMpPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMTQiPlR5cGVtYXBzIGFuZCB0aGUgZnV0dXJlPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJUeXBlbWFwcy5odG1sI24xMCI+VHlwZW1hcHMgYW5kIHRoZSBTV0lHIExpYnJhcnk8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjkiPlR5cGVtYXBzIGZvciBoYW5kbGluZyBhcnJheXM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj48L2Jsb2NrcXVvdGU+Ci08aDI+IC0gVSAtIDwvaDI+Ci08YmxvY2txdW90ZT4KLQotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjM4Ij5Vc2UgUHl0aG9uIGZvciBjb250cm9sLCBDIGZvciBwZXJmb3JtYW5jZTwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241MSI+VXNlIHN0YXRpYyBsaW5raW5nPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjYxIj5Vc2VmdWwgZnVuY3Rpb25zPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjQ1Ij5Vc2VmdWwgZnVuY3Rpb25zPC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNjMiPlVzZWZ1bCBGdW5jdGlvbnM8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMzYiPlVzaW5nICBvdXIgbmV3IG1vZHVsZTwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24yMCI+VXNpbmcgYSBkeW5hbWljIG1vZHVsZTwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuNDkiPlVzaW5nIGEgbmV3IGRvY3VtZW50YXRpb24gbW9kdWxlPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMjQiPlVzaW5nIGRpZmZlcmVudCBuYW1lczwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjUwIj5Vc2luZyBkeW5hbWljIGxvYWRpbmc8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJQZXJsNS5odG1sI24yNCI+VXNpbmcgTk1BS0U8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI24yNiI+VXNpbmcgTk1BS0U8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjIxIj5Vc2luZyBOTUFLRTwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjIwIj5Vc2luZyBzb21lIHR5cGVtYXBzPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNDMiPlVzaW5nIHRoZSBnZCBtb2R1bGU8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuNTEiPlVzaW5nIHRoZSBPcGVuR0wgbW9kdWxlPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI243MiI+VXNpbmcgdGhlIHBsdWdpbjwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+Ci08YSBocmVmPSJFeGNlcHRpb25zLmh0bWwjbjYiPlVzaW5nIFRoZSBTV0lHIGV4Y2VwdGlvbiBsaWJyYXJ5PC9hPiAoNyBFeGNlcHRpb24gSGFuZGxpbmcpPGJyPgotPGEgaHJlZj0iUHl0aG9uLmh0bWwjbjYwIj5Vc2luZyB0eXBlbWFwcyB0byByZXR1cm4gYXJndW1lbnRzPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuNDIiPlVzaW5nIHR5cGVtYXBzIHRvIHJldHVybiB2YWx1ZXM8L2E+ICg4IFNXSUcgYW5kIFBlcmw1KTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24xOCI+VXNpbmcgeW91ciBtb2R1bGU8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJUY2wuaHRtbCNuMjQiPlVzaW5nIFtpbmNyIFRjbF0gbmFtZXNwYWNlczwvYT4gKDEwIFNXSUcgYW5kIFRjbCk8YnI+PC9ibG9ja3F1b3RlPgotPGgyPiAtIFYgLSA8L2gyPgotPGJsb2NrcXVvdGU+Ci0KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24yNCI+VmFyaWFibGUgTGlua2luZzwvYT4gKDkgU1dJRyBhbmQgUHl0aG9uKTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI244Ij5WYXJpYWJsZSBsaW5raW5nPC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuMjAiPlZhcmlhYmxlczwvYT4gKDMgU1dJRyBCYXNpY3MpPGJyPjwvYmxvY2txdW90ZT4KLTxoMj4gLSBXIC0gPC9oMj4KLTxibG9ja3F1b3RlPgotCi08YSBocmVmPSJQZXJsNS5odG1sI241MCI+V2hhdCBnZXRzIGNyZWF0ZWQ/PC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJFeHRlbmRpbmcuaHRtbCNuMjciPldoYXQgaGFwcGVucyBvbiB0eXBlbWFwIGxvb2t1cD88L2E+ICgxMiBFeHRlbmRpbmcgU1dJRyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjI1Ij5XaGF0IGhhcHBlbnMgd2hlbiBTV0lHIGVuY291bnRlcnMgYW4gdW5rbm93biBkYXRhdHlwZT88L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI241NCI+V2hhdCBpcyBhIHR5cGVtYXA/PC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjUzIj5XaGF0IGlzIGEgdHlwZW1hcD88L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuMzEiPldoYXQgaXMgYSB0eXBlbWFwPzwvYT4gKDYgUG9pbnRlcnMsIENvbnN0cmFpbnRzLCBhbmQgVHlwZW1hcHMpPGJyPgotPGEgaHJlZj0iSW50cm9kdWN0aW9uLmh0bWwjbjEiPldoYXQgaXMgU1dJRz88L2E+ICgxIEludHJvZHVjdGlvbik8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjg1Ij5XaGF0IHRvIGRvIHdpdGggbWFpbigpPC9hPiAoMyBTV0lHIEJhc2ljcyk8YnI+Ci08YSBocmVmPSJQcmVmYWNlLmh0bWwjbjUiPldoYXQncyBuZXc/PC9hPiAoUHJlZmFjZSk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuMzMiPldoZXJlIHRvIGdvIGZvciBtb3JlIGluZm9ybWF0aW9uPC9hPiAoOSBTV0lHIGFuZCBQeXRob24pPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjUwIj5XaGVyZSB0byBnbyBmb3IgbW9yZSBpbmZvcm1hdGlvbjwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlBlcmw1Lmh0bWwjbjE2Ij5XaGVyZSB0byBnbyBmcm9tIGhlcmU/PC9hPiAoOCBTV0lHIGFuZCBQZXJsNSk8YnI+Ci08YSBocmVmPSJBZHZhbmNlZC5odG1sI24xMCI+V2h5IGEgbmFtZSBiYXNlZCBhcHByb2FjaD88L2E+ICgxMSBBZHZhbmNlZCBUb3BpY3MpPGJyPgotPGEgaHJlZj0iQWR2YW5jZWQuaHRtbCNuNSI+V2h5IGRvZXNuJ3QgQysrIGluaGVyaXRhbmNlIHdvcmsgYmV0d2VlbiBtb2R1bGVzPzwvYT4gKDExIEFkdmFuY2VkIFRvcGljcyk8YnI+Ci08YSBocmVmPSJTV0lHLmh0bWwjbjgzIj5XaHkgdXNlIHNlcGFyYXRlIGludGVyZmFjZSBmaWxlcz88L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlB5dGhvbi5odG1sI24zMCI+V2h5IHdyaXRlIHNoYWRvdyBjbGFzc2VzIGluIFB5dGhvbj88L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJTY3JpcHRpbmcuaHRtbCNuNiI+V2lsbCBhZGRpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgdG8gbXkgQyBwcm9ncmFtIG1ha2UgaXQgdW5tYW5hZ2FibGU/PC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI241Ij5XaWxsIHNjcmlwdGluZyBsYW5ndWFnZXMgbWFrZSBteSBDIHByb2dyYW0gaW5lZmZpY2llbnQ/PC9hPiAoMiBTY3JpcHRpbmcgTGFuZ3VhZ2VzKTxicj4KLTxhIGhyZWY9IkxpYnJhcnkuaHRtbCNuOCI+V29ya2luZyB3aXRoIGxpYnJhcnkgZmlsZXM8L2E+ICg0IE11bHRpcGxlIGZpbGVzIGFuZCB0aGUgU1dJRyBsaWJyYXJ5KTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuODYiPldvcmtpbmcgd2l0aCB0aGUgQyBwcmVwcm9jZXNzb3I8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNXSUcuaHRtbCNuODAiPldyYXBwZXIgY29kZSBibG9ja3M8L2E+ICgzIFNXSUcgQmFzaWNzKTxicj4KLTxhIGhyZWY9IlNjcmlwdGluZy5odG1sI243Ij5XcmFwcGVyIGZ1bmN0aW9uczwvYT4gKDIgU2NyaXB0aW5nIExhbmd1YWdlcyk8YnI+Ci08YSBocmVmPSJQeXRob24uaHRtbCNuNyI+V3JhcHBpbmcgYSBDIGxpYnJhcnk8L2E+ICg5IFNXSUcgYW5kIFB5dGhvbik8YnI+Ci08YSBocmVmPSJMaWJyYXJ5Lmh0bWwjbjE0Ij5XcmFwcGluZyBhIGxpYnJhcnkgZmlsZTwvYT4gKDQgTXVsdGlwbGUgZmlsZXMgYW5kIHRoZSBTV0lHIGxpYnJhcnkpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMTAiPldyYXBwaW5nIEMgbGlicmFyaWVzIGFuZCBvdGhlciBwYWNrYWdlczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjQ2Ij5XcmFwcGluZyBnbC5oPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IlRjbC5odG1sI240NyI+V3JhcHBpbmcgZ2x1Lmg8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjQ4Ij5XcmFwcGluZyB0aGUgYXV4IGxpYnJhcnk8L2E+ICgxMCBTV0lHIGFuZCBUY2wpPGJyPgotPGEgaHJlZj0iUGVybDUuaHRtbCNuMzQiPldyYXBwaW5nIHRoZSBNQVRMQUIgbWF0cml4IGZ1bmN0aW9uczwvYT4gKDggU1dJRyBhbmQgUGVybDUpPGJyPgotPGEgaHJlZj0iRXh0ZW5kaW5nLmh0bWwjbjE5Ij5Xcml0aW5nIGEgbWFpbiBwcm9ncmFtPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iVGNsLmh0bWwjbjY0Ij5Xcml0aW5nIGEgbWFpbiBwcm9ncmFtIGFuZCBUY2xfQXBwSW5pdCgpPC9hPiAoMTAgU1dJRyBhbmQgVGNsKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240OCI+V3JpdGluZyBhIG5ldyBkb2N1bWVudGF0aW9uIG1vZHVsZTwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI24xMCI+V3JpdGluZyBhIFJlYWwgTGFuZ3VhZ2UgTW9kdWxlPC9hPiAoMTIgRXh0ZW5kaW5nIFNXSUcpPGJyPgotPGEgaHJlZj0iVHlwZW1hcHMuaHRtbCNuNiI+V3JpdGluZyBuZXcgdHlwZW1hcHM8L2E+ICg2IFBvaW50ZXJzLCBDb25zdHJhaW50cywgYW5kIFR5cGVtYXBzKTxicj4KLTxhIGhyZWY9IkV4dGVuZGluZy5odG1sI240MSI+V3JpdGluZyB0aGUgZGVmYXVsdCB0eXBlbWFwczwvYT4gKDEyIEV4dGVuZGluZyBTV0lHKTxicj4KLTxhIGhyZWY9IlR5cGVtYXBzLmh0bWwjbjgiPldyaXRpbmcgdHlwZW1hcCBjb2RlPC9hPiAoNiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwcyk8YnI+PC9ibG9ja3F1b3RlPgotCi08cD48aHI+Ci08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ3OjE4IDE5OTcgPC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvSW50cm9kdWN0aW9uLmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0ludHJvZHVjdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGNmY2U5Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvSW50cm9kdWN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjMgKzAsMCBAQAotPCEtLSBQdWJsaXNoZWQgYnkgUXVhZHJhbGF5IFdlYldvcmtzIEhUTUwgTGl0ZSAxLjUuMSAtLT4KLTwhLS0gQW5kIG11bmdlZCBieSBEYXZlJ3Mgc3BlY2lhbCBQeXRob24gc2NyaXB0IC0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5JbnRyb2R1Y3Rpb248L3RpdGxlPgotPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxhIG5hbWU9Im4wIj48L2E+PGgxPjEgSW50cm9kdWN0aW9uPC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+V2hhdCBpcyBTV0lHPzwvYT4KLTxsaT4gPGEgaHJlZj0iI24yIj5MaWZlIGJlZm9yZSBTV0lHPC9hPgotPGxpPiA8YSBocmVmPSIjbjMiPkxpZmUgYWZ0ZXIgU1dJRzwvYT4KLTxsaT4gPGEgaHJlZj0iI240Ij5UaGUgU1dJRyBwYWNrYWdlPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPkEgU1dJRyBleGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSIjbjYiPkMgc3ludGF4LCBidXQgbm90IGEgQyBjb21waWxlcjwvYT4KLTxsaT4gPGEgaHJlZj0iI243Ij5Ob24taW50cnVzaXZlIGludGVyZmFjZSBidWlsZGluZzwvYT4KLTxsaT4gPGEgaHJlZj0iI244Ij5IYW5kcyBvZmYgY29kZSBnZW5lcmF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjkiPkV2ZW50IGRyaXZlbiBDIHByb2dyYW1taW5nPC9hPgotPGxpPiA8YSBocmVmPSIjbjEwIj5BdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjExIj5TdW1tYXJ5PC9hPgotPGxpPiA8YSBocmVmPSIjbjEyIj5TV0lHIGZvciBXaW5kb3dzIGFuZCBNYWNpbnRvc2g8L2E+Ci08L3VsPgotCi08YSBuYW1lPSJuMSI+PC9hPjxoMj4gV2hhdCBpcyBTV0lHPzwvaDI+Ci1TV0lHIGlzIGEgY29kZSBkZXZlbG9wbWVudCB0b29sIHRoYXQgbWFrZXMgaXQgcG9zc2libGUgdG8gcXVpY2tseSBidWlsZCBwb3dlcmZ1bCBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlcyB0byBDLCBDKyssIG9yIE9iamVjdGl2ZS1DIHByb2dyYW1zLiBJbiBhIG51dHNoZWxsLCBTV0lHIGlzIGEgY29tcGlsZXIgdGhhdCB0YWtlcyBDIGRlY2xhcmF0aW9ucyBhbmQgdHVybnMgdGhlbSBpbnRvIHRoZSAiZ2x1ZSIgbmVlZGVkIHRvIGFjY2VzcyB0aGVtIGZyb20gY29tbW9uIHNjcmlwdGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIFBlcmwsIFB5dGhvbiwgYW5kIFRjbC4gU1dJRyB1c3VhbGx5IHJlcXVpcmVzIG5vIG1vZGlmaWNhdGlvbnMgdG8gZXhpc3RpbmcgQyBjb2RlIGFuZCBjYW4gb2Z0ZW4gYmUgdXNlZCB0byBidWlsZCBhIHdvcmtpbmcgaW50ZXJmYWNlIGluIGEgbWF0dGVyIG9mIG1pbnV0ZXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZG8gYSBudW1iZXIgb2YgaW50ZXJlc3RpbmcgdGhpbmdzIGluY2x1ZGluZyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5CdWlsZGluZyBwb3dlcmZ1bCBpbnRlcmZhY2VzIHRvIGV4aXN0aW5nIEMgcHJvZ3JhbXMuCi08bGk+UmFwaWQgcHJvdG90eXBpbmcgYW5kIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LgotPGxpPkludGVyYWN0aXZlIGRlYnVnZ2luZy4KLTxsaT5NYWtpbmcgYSBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UgKHVzaW5nIFRrIGZvciBleGFtcGxlKS4KLTxsaT5Qb3dlcmZ1bCB0ZXN0aW5nIG9mIEMgbGlicmFyaWVzIGFuZCBwcm9ncmFtcyAodXNpbmcgc2NyaXB0cykuCi08bGk+QnVpbGRpbmcgaGlnaCBwZXJmb3JtYW5jZSBDIG1vZHVsZXMgZm9yIHNjcmlwdGluZyBsYW5ndWFnZXMuCi08bGk+TWFraW5nIEMgcHJvZ3JhbW1pbmcgbW9yZSBlbmpveWFibGUgKG9yIHRvbGVyYWJsZSBkZXBlbmRpbmcgb24geW91ciBwb2ludCBvZiB2aWV3KQotPGxpPkltcHJlc3NpbmcgeW91ciBmcmllbmRzLgotPC91bD4KLTxwPgotVGhlcmUgYXJlIHNvbWUgY29tcHV0ZXIgc2NpZW50aXN0cyB3aG8gc2VlbSB0byBiZWxpZXZlIHRoYXQgdGhlIG9ubHkgd2F5IHRvIHNvbHZlIGNvbXBsaWNhdGVkIHByb2JsZW1zIGlzIHRvIGNyZWF0ZSBzb2Z0d2FyZSBvZiBlcGljIHByb3BvcnRpb25zIGFuZCB0byBoYXZlIHNvbWUgc29ydCBvZiAiZ3JhbmQiIHNvZnR3YXJlIGRlc2lnbi4gVW5mb3J0dW5hdGVseSB0aGlzIHNlZW1zIHRvIGxlYWQgdG8gc29sdXRpb25zIHRoYXQgYXJlIGV2ZW4gbW9yZSBjb21wbGljYXRlZCB0aGFuIHRoZSBvcmlnaW5hbCBwcm9ibGVtLiBUaGlzLCBpbiB0dXJuIGVuYWJsZXMgdGhlIHVzZXIgdG8gZm9yZ2V0IGFib3V0IHRoZSBvcmlnaW5hbCBwcm9ibGVtIGFuZCBzcGVuZCB0aGVpciB0aW1lIGN1cnNpbmcgYXQgdGhlaXIgbWFjaGluZSAoaGVuY2UsIHRoZSB0ZXJtICJlbmFibGluZyB0ZWNobm9sb2d5IikuIFNXSUcsIG9uIHRoZSBvdGhlciBoYW5kLCB3YXMgZGV2ZWxvcGVkIGJlY2F1c2UgSSB3YXMgZmVkIHVwIHdpdGggaG93IG11Y2ggdGltZSBJIHdhcyB3YXN0aW5nIHRyeWluZyB0byBkZXZlbG9wIGZsZXhpYmxlIHNjaWVudGlmaWMgYXBwbGljYXRpb25zLiBJIHdhbnRlZCBhIHRvb2wgdGhhdCB3b3VsZCBsZXQgbWUgdXNlIHNjcmlwdGluZyBsYW5ndWFnZXMgdG8gZ2x1ZSBkaWZmZXJlbnQgdGhpbmdzIHRvZ2V0aGVyLCBidXQgZGlkbid0IGdldCBpbiB0aGUgd2F5IG9mIHRoZSByZWFsIHByb2JsZW1zIEkgd2FzIHdvcmtpbmcgb24uIEkgd2FudGVkIGEgc2ltcGxlIHRvb2wgdGhhdCBzY2llbnRpc3RzIGFuZCBlbmdpbmVlcnMgY291bGQgdXNlIHRvIHB1dCB0b2dldGhlciBhcHBsaWNhdGlvbnMgaW52b2x2aW5nIG51bWJlciBjcnVuY2hpbmcsIGRhdGEgYW5hbHlzaXMsIGFuZCB2aXN1YWxpemF0aW9uIHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IHRlZGlvdXMgc3lzdGVtcyBwcm9ncmFtbWluZywgbWFraW5nIHN1YnN0YW50aWFsIG1vZGlmaWNhdGlvbnMgdG8gZXhpc3RpbmcgY29kZSwgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgYSBiaWcgbW9ub2xpdGhpYyBjb21wdXRpbmcgImVudmlyb25tZW50LCIgb3IgaGF2aW5nIHRvIGdldCBhIHNlY29uZCBkZWdyZWUgaW4gY29tcHV0ZXIgc2NpZW5jZS4gSW4gIHNob3J0LCBJIHdhbnRlZCB0byBoYXZlIGEgdG9vbCB0aGF0IHdvdWxkIGltcHJvdmUgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQsIGJ1dCBzdGF5IG91dCBvZiB0aGUgd2F5IGFzIG11Y2ggYXMgcG9zc2libGUuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gTGlmZSBiZWZvcmUgU1dJRzwvaDI+Ci1TV0lHIHdhcyBkZXZlbG9wZWQgdG8gbWFrZSBteSBsaWZlIGVhc2llciBhcyBhIEMgcHJvZ3JhbW1lci4gV2hpbGUgQyBpcyBncmVhdCBmb3IgaGlnaCBwZXJmb3JtYW5jZSBhbmQgc3lzdGVtcyBwcm9ncmFtbWluZywgdHJ5aW5nIHRvIG1ha2UgYW4gaW50ZXJhY3RpdmUgYW5kIGhpZ2hseSBmbGV4aWJsZSBDIHByb2dyYW0gaXMgYSBuaWdodG1hcmUgKGluIGZhY3QsIGl0J3MgbXVjaCB3b3JzZSB0aGFuIHRoYXQpLiBUaGUgcmVhbCBwcm9ibGVtIGlzIHRoYXQgZm9yIGV2ZXJ5IEMgcHJvZ3JhbSBJIHdyb3RlLCBJIG5lZWRlZCB0byBoYXZlIHNvbWUgc29ydCBvZiBpbnRlcmZhY2UsIGJ1dCBiZWluZyBtb3JlIGludGVyZXN0ZWQgaW4gb3RoZXIgcHJvYmxlbXMsIEkgd291bGQgYWx3YXlzIGVuZCB1cCB3cml0aW5nIGEgcmVhbGx5IGJhZCBpbnRlcmZhY2UgdGhhdCB3YXMgaGFyZCB0byBleHRlbmQsIGhhcmQgdG8gbW9kaWZ5LCBhbmQgaGFyZCB0byB1c2UuICBJIHN1cHBvc2UgSSBjb3VsZCBoYXZlIHRyaWVkIHRvIGRvIHNvbWV0aGluZyBmYW5jeSB1c2luZyBYMTEsIGJ1dCB3aG8gaGFzIHRpbWUgdG8gd2FzdGUgd2Vla3Mgb3IgbW9udGhzIHRyeWluZyB0byBjb21lIHVwIHdpdGggYW4gaW50ZXJmYWNlIHRoYXQgaXMgcHJvYmFibHkgZ29pbmcgdG8gZW5kIHVwIGJlaW5nIGxhcmdlciB0aGFuIHRoZSBvcmlnaW5hbCBDIGNvZGU/IFRoZXJlIGFyZSBtb3JlIGludGVyZXN0aW5nIHByb2JsZW1zIHRvIHdvcmsgb24uPHA+Ci08cD4KLVRoZSByZWFsIHByb2JsZW0sIHBlcmhhcHMsIGlzIHRoYXQgbW9zdCBDIHByb2dyYW1zIGVuZCB1cCBiZWluZyBzdHJ1Y3R1cmVkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08dWw+Ci08bGk+QSBjb2xsZWN0aW9uIG9mIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLgotPGxpPkEgPHR0Pm1haW4oKTwvdHQ+IHByb2dyYW0gdGhhdCBzdGFydHMgZXZlcnl0aGluZyB1cC4KLTxsaT5BIGJ1bmNoIG9mIGhhY2tzIGFkZGVkIHRvIG1ha2UgaXQgdXNhYmxlLgotPC91bD4KLTxwPgotVGhlIDx0dD5tYWluKCk8L3R0PiBwcm9ncmFtIG1heSBiZSB3cml0dGVuIHRvIGhhbmRsZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIG9yIHRvIHJlYWQgZGF0YSBmcm9tIDx0dD5zdGRpbjwvdHQ+LCBidXQgZWl0aGVyIHdheSwgbW9kaWZ5aW5nIG9yIGV4dGVuZGluZyB0aGUgcHJvZ3JhbSB0byBkbyBzb21ldGhpbmcgbmV3IHJlcXVpcmVzIGNoYW5naW5nIHRoZSBDIGNvZGUsIHJlY29tcGlsaW5nLCBhbmQgdGVzdGluZy4gSWYgeW91IG1ha2UgYSBtaXN0YWtlLCB5b3UgbmVlZCB0byByZXBlYXQgdGhpcyBjeWNsZSB1bnRpbCB0aGluZ3Mgd29yay4gT2YgY291cnNlLCBhcyBtb3JlIGFuZCBtb3JlIGZlYXR1cmVzIGFyZSBhZGRlZCwgeW91ciBDIHByb2dyYW0gdHVybnMgaW50byBhIGhpZGVvdXMgdW5pbnRlbGxpZ2libGUgbWVzcyB0aGF0IGlzIGV2ZW4gbW9yZSBkaWZmaWN1bHQgdG8gbW9kaWZ5IHRoYW4gaXQgd2FzIGJlZm9yZSAoT2YgY291cnNlLCBpZiB5b3UncmUgbHVja3ksIHlvdXIgcHJvamVjdCBzdGFydHMgb3V0IGFzIGFuIHVuaW50ZWxsaWdpYmxlIG1lc3MpLjxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IExpZmUgYWZ0ZXIgU1dJRzwvaDI+Ci1XaXRoIFNXSUcsIEkgd2FzIGhvcGluZyB0byBhdm9pZCBtYW55IG9mIHRoZSBoZWFkYWNoZXMgb2Ygd29ya2luZyB3aXRoIEMgcHJvZ3JhbXMsIGJ5IHN0cnVjdHVyaW5nIHRoaW5ncyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPHVsPgotPGxpPkEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcy4KLTxsaT5BIG5pY2UgaW50ZXJwcmV0ZWQgaW50ZXJmYWNlIGxhbmd1YWdlIHRoYXQgY2FuIGJlIHVzZWQgdG8gYWNjZXNzIGV2ZXJ5dGhpbmcuCi08L3VsPgotPHA+Ci1XaXRoIHRoaXMgbW9kZWwsIHlvdSBrZWVwIGFsbCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBvZiB5b3VyIEMgcHJvZ3JhbSwgYnV0IGFjY2VzcyBpdCB0aHJvdWdoIGEgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZSBpbnN0ZWFkIG9mIHdyaXRpbmcgbW9yZSBDIGNvZGUuIFRoaXMgaXMgbmljZSBiZWNhdXNlIHlvdSBhcmUgZ2l2ZW4gZnVsbCBmcmVlZG9tIHRvIGNhbGwgZnVuY3Rpb25zIGluIGFueSBvcmRlciwgYWNjZXNzIHZhcmlhYmxlcywgYW5kIHdyaXRlIHNjcmlwdHMgdG8gZG8gYWxsIHNvcnRzIG9mIGludGVyZXN0aW5nIHRoaW5ncy4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHNvbWV0aGluZywganVzdCBtb2RpZnkgYSBzY3JpcHQsIGFuZCByZXJ1biBpdC4gSWYgeW91J3JlIHRyeWluZyB0byBkZWJ1ZyBhIGNvbGxlY3Rpb24gb2YgZnVuY3Rpb25zLCB5b3UgY2FuIGNhbGwgdGhlbSBpbmRpdmlkdWFsbHkgYW5kIHNlZSB3aGF0IHRoZXkgZG8uIElmIHlvdSdyZSB0cnlpbmcgdG8gYnVpbGQgYSBwYWNrYWdlIG91dCBvZiB2YXJpb3VzIGNvbXBvbmVudHMsIHlvdSBjYW4ganVzdCBnbHVlIGV2ZXJ5dGhpbmcgdG9nZXRoZXIgd2l0aCBhIHNjcmlwdGluZyBsYW5ndWFnZSBhbmQgaGF2ZSBhIGNvbW1vbiBpbnRlcmZhY2UgdG8gYWxsIG9mIHRoZSB2YXJpb3VzIHBpZWNlcy4gPHA+Ci08cD4KLVNXSUcgdHJpZXMgdG8gbWFrZSB0aGUgaW50ZWdyYXRpb24gYmV0d2VlbiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGFuZCBDIGFzIHBhaW5sZXNzIGFzIHBvc3NpYmxlLiBUaGlzIGFsbG93cyB5b3UgdG8gZm9jdXMgb24gdGhlIHVuZGVybHlpbmcgQyBwcm9ncmFtIGFuZCB1c2luZyB0aGUgaGlnaC1sZXZlbCBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLCBidXQgbm90IHRoZSB0ZWRpb3VzIGFuZCBjb21wbGV4IGNob3JlIG9mIG1ha2luZyB0aGUgdHdvIGxhbmd1YWdlcyB0YWxrIHRvIGVhY2ggb3RoZXIuPHA+Ci08cD4KLUkgbGlrZSB0aGlzIG1vZGVsIG9mIHByb2dyYW1taW5nLiBXaGlsZSBpdCdzIGNlcnRhaW5seSBubyAic2lsdmVyLWJ1bGxldCIsIGl0IGhhcyBtYWRlIHByb2dyYW1taW5nIGFsb3QgbW9yZSBlbmpveWFibGUgYW5kIGhhcyBlbmFibGVkIHVzIHRvIHNvbHZlIGNvbXBsaWNhdGVkIHByb2JsZW1zIHRoYXQgd291bGQgaGF2ZSBiZWVuIHVubmVjY2Vzc2FyaWx5IGRpZmZpY3VsdCB1c2luZyBvbmx5IEMuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gVGhlIFNXSUcgcGFja2FnZTwvaDI+Ci1TV0lHIGlzIGEgY29tcGlsZXIgdGhhdCB0YWtlcyBBTlNJIEMgZGVjbGFyYXRpb25zIGFuZCB0dXJucyB0aGVtIGludG8gYSBmaWxlIGNvbnRhaW5pbmcgdGhlIEMgY29kZSBmb3IgYmluZGluZyBDIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgY29uc3RhbnRzIHRvIGEgc2NyaXB0aW5nIGxhbmd1YWdlIChTV0lHIGFsc28gc3VwcG9ydHMgQysrIGNsYXNzIGFuZCBPYmplY3RpdmUtQyBpbnRlcmZhY2UgZGVmaW5pdGlvbnMpLiBJbnB1dCBpcyBzcGVjaWZpZWQgaW4gdGhlIGZvcm0gb2YgYW4gImludGVyZmFjZSBmaWxlIiBjb250YWluaW5nIGRlY2xhcmF0aW9ucyAoaW5wdXQgY2FuIGFsc28gYmUgZ2l2ZW4gZnJvbSBDIHNvdXJjZSBmaWxlcyBwcm92aWRlZCB0aGV5IGFyZSBzdWZmaWNpZW50bHkgY2xlYW4pLiBUaGUgU1dJRyBwYXJzZXIgdGFrZXMgdGhpcyBpbnB1dCBmaWxlIGFuZCBwYXNzZXMgaXQgb24gdG8gYSBjb2RlIGdlbmVyYXRpb24gYW5kIGRvY3VtZW50YXRpb24gbW9kdWxlLiBUaGVzZSBtb2R1bGVzIHByb2R1Y2UgYW4gaW50ZXJmYWNlIGZvciBhIHBhcnRpY3VsYXIgc2NyaXB0aW5nIGxhbmd1YWdlIGFsb25nIHdpdGggYSBkb2N1bWVudCBkZXNjcmliaW5nIHRoZSBpbnRlcmZhY2UgdGhhdCB3YXMgY3JlYXRlZC4gRGlmZmVyZW50IHNjcmlwdGluZyBsYW5ndWFnZXMgYXJlIHN1cHBvcnRlZCBieSB3cml0aW5nIG5ldyBiYWNrLWVuZCBtb2R1bGVzIHRvIHRoZSBzeXN0ZW0uPHA+Ci08cD48Y2VudGVyPjxpbWcgc3JjPSJjaDEuMS5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08YSBuYW1lPSJuNSI+PC9hPjxoMj4gQSBTV0lHIGV4YW1wbGU8L2gyPgotVGhlIGJlc3Qgd2F5IHRvIGlsbHVzdHJhdGUgU1dJRyBpcyB3aXRoIGEgc2ltcGxlIGV4YW1wbGUuIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgQyBjb2RlOiA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogZXhhbXBsZS5jICovCi0KLWRvdWJsZSAgTXlfdmFyaWFibGUgID0gMy4wOwotCi0vKiBDb21wdXRlIGZhY3RvcmlhbCBvZiBuICovCi1pbnQgIGZhY3QoaW50IG4pIHsKLQlpZiAobiAmbHQ7PSAxKSByZXR1cm4gMTsKLQllbHNlIHJldHVybiBuKmZhY3Qobi0xKTsKLX0KLQotLyogQ29tcHV0ZSBuIG1vZCBtICovCi1pbnQgbXlfbW9kKGludCBuLCBpbnQgbSkgewotCXJldHVybihuICUgbSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVN1cHBvc2UgdGhhdCB5b3Ugd2FudGVkIHRvIGFjY2VzcyB0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZSBnbG9iYWwgdmFyaWFibGUgIDx0dD5NeV92YXJpYWJsZTwvdHQ+IGZyb20gVGNsLiAgV2Ugc3RhcnQgYnkgbWFraW5nIGEgU1dJRyBpbnRlcmZhY2UgZmlsZSBhcyBzaG93biBiZWxvdyAoYnkgY29udmVudGlvbiwgdGhlc2UgZmlsZXMgY2FycnkgYSAuaSBzdWZmaXgpIDogIDxwPgotPGEgbmFtZT0ibjEzIj48L2E+PGgzPiBTV0lHIGludGVyZmFjZSBmaWxlPC9oMz4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBGaWxlIDogZXhhbXBsZS5pICovCi0lbW9kdWxlIGV4YW1wbGUKLSV7Ci0vKiBQdXQgaGVhZGVycyBhbmQgb3RoZXIgZGVjbGFyYXRpb25zIGhlcmUgKi8KLSV9Ci0KLWV4dGVybiBkb3VibGUgTXlfdmFyaWFibGU7Ci1leHRlcm4gaW50ICAgIGZhY3QoaW50KTsKLWV4dGVybiBpbnQgICAgbXlfbW9kKGludCBuLCBpbnQgbSk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBpbnRlcmZhY2UgZmlsZSBjb250YWlucyBBTlNJIEMgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb25zLiAgVGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlIGRlZmluZXMgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY3JlYXRlZCBieSBTV0lHLiAgIFRoZSA8dHQ+JXssJX08L3R0PiBibG9jayBwcm92aWRlcyBhIGxvY2F0aW9uIGZvciBpbnNlcnRpbmcgYWRkaXRpb25hbCBjb2RlIHN1Y2ggYXMgQyBoZWFkZXIgZmlsZXMgb3IgYWRkaXRpb25hbCBDIGZ1bmN0aW9ucy4gPHA+Ci08YSBuYW1lPSJuMTQiPjwvYT48aDM+IFRoZSBzd2lnIGNvbW1hbmQ8L2gzPgotU1dJRyBpcyBpbnZva2VkIHVzaW5nIHRoZSA8dHQ+c3dpZzwvdHQ+IGNvbW1hbmQuIFdlIGNhbiB1c2UgdGhpcyB0byBidWlsZCBhIFRjbCBtb2R1bGUgKHVuZGVyIExpbnV4KSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtdGNsIGV4YW1wbGUuaQotR2VuZXJhdGluZyB3cmFwcGVycyBmb3IgVGNsLgotdW5peCAmZ3Q7IGdjYyAtYyAtZnBpYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUKLXVuaXggJmd0OyBnY2MgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZS5zbyAKLXVuaXggJmd0OyB0Y2xzaAotJSBsb2FkIC4vZXhhbXBsZS5zbwotJSBmYWN0IDQKLTI0Ci0lIG15X21vZCAyMyA3Ci0yCi0lIGV4cHIgJE15X3ZhcmlhYmxlICsgNC41Ci03LjUKLSUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQk8cD4KLVRoZSA8dHQ+c3dpZzwvdHQ+IGNvbW1hbmQgcHJvZHVjZWQgYSBuZXcgZmlsZSBjYWxsZWQgPHR0PmV4YW1wbGVfd3JhcC5jPC90dD4gdGhhdCBzaG91bGQgYmUgY29tcGlsZWQgYWxvbmcgd2l0aCB0aGUgPHR0PmV4YW1wbGUuYzwvdHQ+IGZpbGUuICBNb3N0IG9wZXJhdGluZyBzeXN0ZW1zIGFuZCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIG5vdyBzdXBwb3J0IGR5bmFtaWMgbG9hZGluZyBvZiBtb2R1bGVzLiAgIEluIG91ciBleGFtcGxlLCBvdXIgVGNsIG1vZHVsZSBoYXMgYmVlbiBjb21waWxlZCBpbnRvIGEgc2hhcmVkIGxpYnJhcnkgdGhhdCBjYW4gYmUgbG9hZGVkIGludG8gVGNsIGFuZCB1c2VkLiAgIFdoZW4gbG9hZGVkLCBUY2wgd2lsbCBub3cgaGF2ZSBvdXIgbmV3IGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGFkZGVkIHRvIGl0LiAgVGFraW5nIGEgY2FyZWZ1bCBsb29rIGF0IHRoZSBmaWxlIDx0dD5leGFtcGxlX3dyYXAuYzwvdHQ+IHJldmVhbHMgYSBoaWRlb3VzIG1lc3MsIGJ1dCBmb3J0dW5hdGVseSB5b3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gd29ycnkgYWJvdXQgaXQuPHA+Ci08YSBuYW1lPSJuMTUiPjwvYT48aDM+IEJ1aWxkaW5nIGEgUGVybDUgbW9kdWxlPC9oMz4KLU5vdywgbGV0J3MgdHVybiB0aGVzZSBmdW5jdGlvbnMgaW50byBhIFBlcmw1IG1vZHVsZS4gV2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZXMgdHlwZSB0aGUgZm9sbG93aW5nIChzaG93biBmb3IgU29sYXJpcyk6PHA+Ci08cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtcGVybDUgZXhhbXBsZS5pCi1HZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBQZXJsNQotdW5peCAmZ3Q7IGdjYyAtYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgXAotCS1JL3Vzci9sb2NhbC9saWIvcGVybDUvc3VuNC1zb2xhcmlzLzUuMDAzL0NPUkUKLXVuaXgmZ3Q7IGxkIC1HIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlLnNvIAkJCQkJCQkJIyBUaGlzIGlzIGZvciBTb2xhcmlzCi11bml4ICZndDsgcGVybDUuMDAzCi11c2UgZXhhbXBsZTsKLXByaW50IGV4YW1wbGU6OmZhY3QoNCksICJcbiI7Ci1wcmludCBleGFtcGxlOjpteV9tb2QoMjMsNyksICJcbiI7Ci1wcmludCAkZXhhbXBsZTo6TXlfdmFyaWFibGUgKyA0LjUsICJcbiI7Ci0mbHQ7Y3RybC1kJmd0OwotMjQKLTIKLTcuNQotdW5peCAmZ3Q7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IEJ1aWxkaW5nIGEgUHl0aG9uIG1vZHVsZTwvaDM+Ci1GaW5hbGx5LCBsZXQncyBidWlsZCBhIG1vZHVsZSBmb3IgUHl0aG9uMS40IChzaG93biBmb3IgSXJpeCkuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dW5peCAmZ3Q7IHN3aWcgLXB5dGhvbiBleGFtcGxlLmkKLUdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIFB5dGhvbgotdW5peCAmZ3Q7IGdjYyAtYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS40Ci11bml4ICZndDsgbGQgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZW1vZHVsZS5zbyAgICAgIyBJcml4Ci11bml4ICZndDsgUHl0aG9uCi1QeXRob24gMS40IChTZXAgMTAgMTk5NikgIFtHQ0MgMi43LjBdCi1Db3B5cmlnaHQgMTk5MS0xOTk2IFN0aWNodGluZyBNYXRoZW1hdGlzY2ggQ2VudHJ1bSwKLUFtc3RlcmRhbQotJmd0OyZndDsmZ3Q7IGltcG9ydCBleGFtcGxlCi0mZ3Q7Jmd0OyZndDsgZXhhbXBsZS5mYWN0KDQpCi0yNAotJmd0OyZndDsmZ3Q7IGV4YW1wbGUubXlfbW9kKDIzLDcpCi0yCi0mZ3Q7Jmd0OyZndDsgZXhhbXBsZS5jdmFyLk15X3ZhcmlhYmxlICsgNC41Ci03LjUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4xNyI+PC9hPjxoMz4gU2hvcnRjdXRzPC9oMz4KLVRvIHRoZSB0cnVseSBsYXp5IHByb2dyYW1tZXIsIG9uZSBtYXkgd29uZGVyIHdoeSB3ZSBuZWVkZWQgdGhlIGV4dHJhIGludGVyZmFjZSBmaWxlIGF0IGFsbC4gQXMgaXQgdHVybnMgb3V0LCB3ZSBjYW4gb2Z0ZW4gZG8gd2l0aG91dCBpdC4gRm9yIGV4YW1wbGUsIHdlIGNvdWxkIGFsc28gYnVpbGQgYSBQZXJsNSBtb2R1bGUgYnkganVzdCBydW5uaW5nIFNXSUcgb24gdGhlIEMgc291cmNlIGFuZCBzcGVjaWZ5aW5nIGEgbW9kdWxlIG5hbWUgYXMgZm9sbG93czxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtcGVybDUgLW1vZHVsZSBleGFtcGxlIGV4YW1wbGUuYwotdW5peCAmZ3Q7IGdjYyAtYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgXAotCS1JL3Vzci9sb2NhbC9saWIvcGVybDUvc3VuNC1zb2xhcmlzLzUuMDAzL0NPUkUKLXVuaXgmZ3Q7IGxkIC1HIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlLnNvCi11bml4ICZndDsgcGVybDUuMDAzCi11c2UgZXhhbXBsZTsKLXByaW50IGV4YW1wbGU6OmZhY3QoNCksICJcbiI7Ci1wcmludCBleGFtcGxlOjpteV9tb2QoMjMsNyksICJcbiI7Ci1wcmludCAkZXhhbXBsZTo6TXlfdmFyaWFibGUgKyA0LjUsICJcbiI7Ci0mbHQ7Y3RybC1kJmd0OwotMjQKLTIKLTcuNQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1PZiBjb3Vyc2UsIHRoZXJlIGFyZSBzb21lIHJlc3RyaWN0aW9ucyBhcyBTV0lHIGlzIG5vdCBhIGZ1bGwgQy9DKysgcGFyc2VyLiBJZiB5b3UgbWFrZSBoZWF2eSB1c2Ugb2YgdGhlIEMgcHJlcHJvY2Vzc29yLCBjb21wbGljYXRlZCBkZWNsYXJhdGlvbnMsIG9yIEMrKywgZ2l2aW5nIFNXSUcgYSByYXcgc291cmNlIGZpbGUgcHJvYmFibHkgaXNuJ3QgZ29pbmcgdG8gd29yayB2ZXJ5IHdlbGwgKGluIHRoaXMgY2FzZSwgeW91IHdvdWxkIHByb2JhYmx5IHdhbnQgdG8gdXNlIGEgc2VwYXJhdGUgaW50ZXJmYWNlIGZpbGUpLiA8cD4KLTxwPgotU1dJRyBhbHNvIHN1cHBvcnRzIGEgbGltaXRlZCBmb3JtIG9mIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiBJZiB3ZSB3YW50ZWQgdG8gbWFrZSBhIGNvbWJpbmF0aW9uIFNXSUcvQyBoZWFkZXIgZmlsZSwgd2UgbWlnaHQgZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+LyogRmlsZSA6IGV4YW1wbGUuaCAqLwotI2lmZGVmIFNXSUcKLSVtb2R1bGUgZXhhbXBsZQotJWluY2x1ZGUgdGNsc2guaQotI2VuZGlmCi1leHRlcm4gZG91YmxlIE15X3ZhcmlhYmxlOwotZXh0ZXJuIGludCAgICBmYWN0KGludCk7Ci1leHRlcm4gaW50ICAgIG15X21vZChpbnQgbiwgaW50IG0pOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMTgiPjwvYT48aDM+IERvY3VtZW50YXRpb24gZ2VuZXJhdGlvbjwvaDM+Ci1JbiBhZGRpdGlvbiB0byBwcm9kdWNpbmcgYW4gaW50ZXJmYWNlLCBTV0lHIGFsc28gcHJvZHVjZXMgZG9jdW1lbnRhdGlvbi4gRm9yIG91ciBzaW1wbGUgZXhhbXBsZSwgdGhlIGRvY3VtZW50YXRpb24gZmlsZSBtYXkgbG9vayBsaWtlIHRoaXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWV4YW1wbGVfd3JhcC5jCi0KLVsgTW9kdWxlIDogZXhhbXBsZSwgUGFja2FnZSA6IGV4YW1wbGUgXQotCi0kTXlfdmFyaWFibGUKLSAgICAgICAgWyBHbG9iYWwgOiBkb3VibGUgTXlfdmFyaWFibGUgXQotCi1mYWN0KG4pOwotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0KLW15X21vZChuLG0pOwotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0KLWdldF90aW1lKCk7Ci0gICAgICAgIFsgcmV0dXJucyBjaGFyICogXQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUMgY29tbWVudHMgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGRlc2NyaXB0aW9ucy4gU1dJRyBjYW4gZXZlbiBncmFiIHRoZXNlIG91dCBvZiBDIHNvdXJjZSBmaWxlcyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4gRm9yIGV4YW1wbGUsIGlmIHdlIHByb2Nlc3MgPHR0PmV4YW1wbGUuYzwvdHQ+IGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXBlcmw1IC1TYmVmb3JlIC1tb2R1bGUgZXhhbXBsZSBleGFtcGxlLmMKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2Ugd2lsbCBnZXQgYSBkb2N1bWVudGF0aW9uIGZpbGUgdGhhdCBsb29rcyBsaWtlIHRoaXMgKHdpdGggb3VyIEMgY29tbWVudHMgYWRkZWQpIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1leGFtcGxlX3dyYXAuYwotCi1bIE1vZHVsZSA6IGV4YW1wbGUsIFBhY2thZ2UgOiBleGFtcGxlIF0KLQotCi0kTXlfdmFyaWFibGUKLSAgICAgICAgWyBHbG9iYWwgOiBkb3VibGUgTXlfdmFyaWFibGUgXQotCi1mYWN0KG4pOwotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0gICAgICAgIENvbXB1dGUgZmFjdG9yaWFsIG9mIG4gCi0KLW15X21vZChuLG0pOwotICAgICAgICBbIHJldHVybnMgaW50ICBdCi0gICAgICAgIENvbXB1dGUgbiBtb2QgbSAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjE5Ij48L2E+PGgzPiBCdWlsZGluZyBsaWJyYXJpZXMgYW5kIG1vZHVsZXM8L2gzPgotSW4gYWRkaXRpb24gdG8gZ2VuZXJhdGluZyB3cmFwcGVyIGNvZGUsIFNXSUcgcHJvdmlkZXMgZXh0ZW5zaXZlIHN1cHBvcnQgZm9yIGhhbmRsaW5nIG11bHRpcGxlIGZpbGVzIGFuZCBidWlsZGluZyBpbnRlcmZhY2UgbGlicmFyaWVzLiBGb3IgZXhhbXBsZSwgb3VyIDx0dD5leGFtcGxlLmk8L3R0PiBmaWxlLCBjb3VsZCBiZSB1c2VkIGluIGFub3RoZXIgaW50ZXJmYWNlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZm9vCi0laW5jbHVkZSBleGFtcGxlLmkgICAgICAgICAgICAgLy8gR2V0IGRlZmluaXRpb25zIGZyb20gZXhhbXBsZS5pCi0KLS4uLiBOb3cgbW9yZSBkZWNsYXJhdGlvbnMgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIGEgbGFyZ2Ugc3lzdGVtLCBhbiBpbnRlcmZhY2UgbWlnaHQgYmUgYnVpbHQgZnJvbSBhIHZhcmlldHkgb2YgcGllY2VzIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBwYWNrYWdlCi0KLSVpbmNsdWRlIG5ldHdvcmsuaQotJWluY2x1ZGUgZmlsZS5pCi0laW5jbHVkZSBncmFwaGljcy5pCi0laW5jbHVkZSBvYmplY3RzLmkKLSVpbmNsdWRlIHNpbXVsYXRpb24uaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1TV0lHIGNvbWVzIHdpdGggYSBsaWJyYXJ5IG9mIGV4aXN0aW5nIGZ1bmN0aW9ucyBrbm93biBhcyB0aGUgU1dJRyBsaWJyYXJ5LiAgVGhlIGxpYnJhcnkgY29udGFpbnMgYSBtaXggb2YgbGFuZ3VhZ2UgaW5kZXBlbmRlbnQgYW5kIGxhbmd1YWdlIGRlcGVuZGVudCBmdW5jdGlvbmFsaXR5LiAgIEZvciBleGFtcGxlLCB0aGUgZmlsZSBgPHR0PmFycmF5Lmk8L3R0PicgcHJvdmlkZXMgYWNjZXNzIHRvIEMgYXJyYXlzIHdoaWxlIHRoZSBmaWxlIGA8dHQ+d2lzaC5pPC90dD4nIGluY2x1ZGVzIHNwZWNpYWxpemVkIGNvZGUgZm9yIHJlYnVpbGRpbmcgdGhlIFRjbCB3aXNoIGludGVycHJldGVyLiAgIFVzaW5nIHRoZSBsaWJyYXJ5LCB5b3UgY2FuIHVzZSBleGlzdGluZyBtb2R1bGVzIHRvIGJ1aWxkIHVwIHlvdXIgb3duIHBlcnNvbmFsaXplZCBlbnZpcm9ubWVudCBmb3IgYnVpbGRpbmcgaW50ZXJmYWNlcy4gICBJZiBjaGFuZ2VzIGFyZSBtYWRlIHRvIGFueSBvZiB0aGUgY29tcG9uZW50cywgdGhleSB3aWxsIGFwcGVhciBhdXRvbWF0aWNhbGx5IHRoZSBuZXh0IHRpbWUgU1dJRyBpcyBydW4uIDxwPgotPGEgbmFtZT0ibjYiPjwvYT48aDI+IEMgc3ludGF4LCBidXQgbm90IGEgQyBjb21waWxlcjwvaDI+Ci1TV0lHIHVzZXMgQU5TSSBDIHN5bnRheCwgYnV0IGlzIG5vdCBhIGZ1bGwgQU5TSSBDIGNvbXBpbGVyLiBCeSB1c2luZyBDIHN5bnRheCwgSSBob3BlIHRvIG1ha2UgU1dJRyBlYXN5IHRvIHVzZSB3aXRoIG1vc3QgQyBwcm9ncmFtcywgZWFzeSB0byBsZWFybiwgYW5kIGVhc3kgdG8gcmVtZW1iZXIuIE90aGVyIHRvb2xzIHRlbmQgdG8gdXNlIGEgcHJlY2lzZSBpbnRlcmZhY2UgZGVmaW5pdGlvbiBsYW5ndWFnZSwgYnV0IEkgcGVyc29uYWxseSBmaW5kIHRoaXMgYXBwcm9hY2ggdG8gYmUgcGFpbmZ1bC4gV2hlbiBJIHdhbnQgdG8gYnVpbGQgYW4gaW50ZXJmYWNlIHRvIGEgY29sbGVjdGlvbiBvZiBzZXZlcmFsIGh1bmRyZWQgQyBmdW5jdGlvbnMsIEkgZG9uJ3QgbmVjZXNzYXJpbHkgd2FudCB0byB3cml0ZSBhIHNwZWNpYWwgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIGVhY2ggb25lLiBOb3IgZG8gSSB3YW50IHRvIGhhdmUgdG8gZ28gZGlnIHVwIHRoZSBtYW51YWwgYmVjYXVzZSBJIGNhbid0IHJlbWVtYmVyIHRoZSBzeW50YXguPHA+Ci08cD4KLU9uIHRoZSBvdGhlciBoYW5kLCB1c2luZyBDIHN5bnRheCBjYW4gYmUgYW1iaWd1b3VzLiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbiA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgZm9vKGRvdWJsZSAqYSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdlIGRvbid0IHJlYWxseSBrbm93IGlmIDx0dD5hPC90dD4gaXMgYW4gYXJyYXkgb2Ygc29tZSBmaXhlZCBzaXplLCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBibG9jayBvZiBtZW1vcnksIGEgc2luZ2xlIHZhbHVlLCBvciBhbiBvdXRwdXQgdmFsdWUgb2YgdGhlIGZ1bmN0aW9uLiBGb3IgdGhlIG1vc3QgcGFydCwgU1dJRyB0YWtlcyBhIGxpdGVyYWwgYXBwcm9hY2ggKDx0dD5hPC90dD4gaXMgb2J2aW91c2x5IGEgPHR0PmRvdWJsZSAqPC90dD4pIGFuZCBsZWF2ZXMgaXQgdXAgdG8gdGhlIHVzZXIgdG8gdXNlIHRoZSBmdW5jdGlvbiBpbiBhIGNvcnJlY3QgbWFubmVyLiAgRm9ydHVuYXRlbHksIHRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gaGVscCBTV0lHIG91dCB1c2luZyBhZGRpdGlvbmFsIGRpcmVjdGl2ZXMgYW5kICJoZWxwZXIiIGZ1bmN0aW9ucy4gVGh1cywgdGhlIGlucHV0IHRvIFNXSUcgaXMgb2Z0ZW4gYSBtaXggb2YgQyBkZWNsYXJhdGlvbnMsIHNwZWNpYWwgZGlyZWN0aXZlcyBhbmQgaGludHMuICAgTGlrZSBQZXJsIHByb2dyYW1taW5nLCB0aGVyZSBpcyBhbG1vc3QgYWx3YXlzIG1vcmUgdGhhbiBvbmUgd2F5IHRvIGRvIGFsbW9zdCBhbnl0aGluZy48cD4KLTxwPgotU1dJRyBkb2VzIG5vdCBjdXJyZW50bHkgcGFyc2UgZXZlcnkgY29uY2VpdmFibGUgdHlwZSBvZiBDIGRlY2xhcmF0aW9uIHRoYXQgaXQgbWlnaHQgZW5jb3VudGVyIGluIGEgQy9DKysgZmlsZS4gTWFueSB0aGluZ3MgbWF5IGJlIGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlIHRvIGludGVncmF0ZSB3aXRoIGEgc2NyaXB0aW5nIGxhbmd1YWdlIChDKysgdGVtcGxhdGVzIGZvciBleGFtcGxlKS4gVGh1cywgU1dJRyBtYXkgbm90IHJlY29nbml6ZSBhZHZhbmNlZCBDL0MrKyBjb25zdHJ1Y3RzLiAgSSBtYWtlIG5vIGFwb2xvZ2llcyBmb3IgdGhpcy0tU1dJRyB3YXMgZGVzaWduZWQgdG8gYWNjZXNzIEMsIGJ1dCB3YXMgbmV2ZXIgaW50ZW5kZWQgdG8gbWFnaWNhbGx5IHR1cm4gc2NyaXB0aW5nIGxhbmd1YWdlcyBpbnRvIHNvbWUgc29ydCBvZiBiaXphcnJlIEMrKyBpbnRlcnByZXRlci4gICBPZiBjb3Vyc2UsIFNXSUcncyBwYXJzZXIgaXMgYWx3YXlzIGJlaW5nIGltcHJvdmVkIHNvIGN1cnJlbnRseSB1bnN1cHBvcnRlZCBmZWF0dXJlcyBtYXkgYmUgc3VwcG9ydGVkIGluIGxhdGVyIHJlbGVhc2VzLjxwPgotPGEgbmFtZT0ibjciPjwvYT48aDI+IE5vbi1pbnRydXNpdmUgaW50ZXJmYWNlIGJ1aWxkaW5nPC9oMj4KLVdoZW4gdXNlZCBhcyBJIGludGVuZGVkLCBTV0lHIHJlcXVpcmVzIG1pbmltYWwgbW9kaWZpY2F0aW9uIHRvIGV4aXN0aW5nIEMgY29kZS4gVGhpcyBtYWtlcyBTV0lHIGV4dHJlbWVseSBlYXN5IHRvIHVzZSB3aXRoIGV4aXN0aW5nIHBhY2thZ2VzLCBidXQgYWxzbyBwcm9tb3RlcyBzb2Z0d2FyZSByZXVzZSBhbmQgbW9kdWxhcml0eS4gQnkgbWFraW5nIHRoZSBDIGNvZGUgaW5kZXBlbmRlbnQgb2YgdGhlIGhpZ2ggbGV2ZWwgaW50ZXJmYWNlLCB5b3UgY2FuIGNoYW5nZSB0aGUgaW50ZXJmYWNlIGFuZCByZXVzZSB0aGUgY29kZSBpbiBvdGhlciBhcHBsaWNhdGlvbnMuIEluIGEgc2ltaWxhciBzcGlyaXQsIEkgZG9uJ3QgYmVsaWV2ZSB0aGF0IHRoZXJlIGlzIGFueSBvbmUgImJlc3QiIHNjcmlwdGluZyBsYW5ndWFnZS0tdXNlIHdoaWNoZXZlciBvbmUgeW91IGxpa2UgKHRoZXkncmUgYWxsIHByZXR0eSBnb29kKS4gVGhlcmUncyBubyByZWFsIHJlYXNvbiB3aHkgYSBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIGNvdWxkbid0IHN1cHBvcnQgbXVsdGlwbGUgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZXMgdG8gc2VydmUgZGlmZmVyZW50IG5lZWRzIChvciB0byBoYXZlIG5vIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2UgYXQgYWxsKS48cD4KLTxhIG5hbWU9Im44Ij48L2E+PGgyPiBIYW5kcyBvZmYgY29kZSBnZW5lcmF0aW9uPC9oMj4KLVNXSUcgaXMgZGVzaWduZWQgdG8gcHJvZHVjZSB3b3JraW5nIGNvZGUgdGhhdCBuZWVkcyBubyBoYW5kLW1vZGlmaWNhdGlvbiAoaW4gZmFjdCwgaWYgeW91IGxvb2sgYXQgdGhlIG91dHB1dCwgeW91IHByb2JhYmx5IHdvbid0IHdhbnQgdG8gbW9kaWZ5IGl0KS4gSWRlYWxseSwgU1dJRyBzaG91bGQgYmUgaW52b2tlZCBhdXRvbWF0aWNhbGx5IGluc2lkZSBhIE1ha2VmaWxlIGp1c3QgYXMgb25lIHdvdWxkIGNhbGwgdGhlIEMgY29tcGlsZXIuIFlvdSBzaG91bGQgdGhpbmsgb2YgeW91ciBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlIGJlaW5nIGRlZmluZWQgZW50aXJlbHkgYnkgdGhlIGlucHV0IHRvIFNXSUcsIG5vdCB0aGUgcmVzdWx0aW5nIG91dHB1dCBmaWxlLiBXaGlsZSB0aGlzIGFwcHJvYWNoIG1heSBsaW1pdCBmbGV4aWJpbGl0eSBmb3IgaGFyZC1jb3JlIGhhY2tlcnMsIGl0IGFsbG93cyBvdGhlcnMgdG8gZm9yZ2V0IGFib3V0IHRoZSBsb3ctbGV2ZWwgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gVGhpcyBpcyBteSBnb2FsLjxwPgotPGEgbmFtZT0ibjkiPjwvYT48aDI+IEV2ZW50IGRyaXZlbiBDIHByb2dyYW1taW5nPC9oMj4KLUJ5IGFkZGluZyBhIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2UgdG8gYSBwcm9ncmFtLCBTV0lHIGVuY291cmFnZXMgYW4gZXZlbnQtZHJpdmVuIHN0eWxlIG9mIHByb2dyYW1taW5nIChhbHRob3VnaCBpdCBtYXkgbm90IGJlIGltbWVkaWF0ZWx5IG9idmlvdXMpLiBBbiBldmVudCBkcml2ZW4gcHJvZ3JhbSBiYXNpY2FsbHkgY29uc2lzdHMgb2YgYSBsYXJnZS1jb2xsZWN0aW9uIG9mIGZ1bmN0aW9ucyAoY2FsbGVkIGNhbGxiYWNrIGZ1bmN0aW9ucyksIGFuZCBhbiBpbmZpbml0ZSBsb29wIHRoYXQganVzdCBzaXRzIGFuZCB3YWl0cyBmb3IgdGhlIHVzZXIgdG8gZG8gc29tZXRoaW5nLiBXaGVuIHRoZSB1c2VyIGRvZXMgc29tZXRoaW5nIGxpa2UgdHlwZSBhIGNvbW1hbmQsIGhpdCBhIGtleSwgb3IgbW92ZSB0aGUgbW91c2UgdGhlIHByb2dyYW0gd2lsbCBjYWxsIGEgZnVuY3Rpb24gdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24tLXRoaXMgaXMgYW4gZXZlbnQuIE9mIGNvdXJzZSwgdW5sZXNzIHlvdSd2ZSBiZWVuIGxpdmluZyBpbiBjYXZlIGZvciB0aGUgbGFzdCAyMCB5ZWFycywgeW91J3ZlIHVzZWQgdGhpcyBraW5kIG9mIGFwcHJvYWNoIHdoZW4gcnVubmluZyBhbnkgc29ydCBvZiBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UuPHA+Ci08cD4KLVdoaWxlIHlvdSBtYXkgbm90IGJlIHVzaW5nIFNXSUcgdG8gZGV2ZWxvcCBhIEdVSSwgdGhlIHVuZGVybHlpbmcgY29uY2VwdCBpcyB0aGUgc2FtZS4gVGhlIHNjcmlwdGluZyBsYW5ndWFnZSBhY3RzIGFzIGFuIGV2ZW50LWxvb3Agd2FpdGluZyBmb3IgeW91IHRvIGlzc3VlIGNvbW1hbmRzLiBVbmxpa2UgYSB0cmFkaXRpb25hbCBDIGFwcGxpY2F0aW9uICh0aGF0IG1heSB1c2UgY29tbWFuZCBsaW5lIG9wdGlvbnMpLCB0aGVyZSBpcyBubyBsb25nZXIgYSBmaXhlZCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zLiBGdW5jdGlvbnMgbWF5IGJlIGlzc3VlZCBpbiBhbnkgb3JkZXIgYW5kIGF0IGFueSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgZmxleGliaWxpdHkgaXMgZXhhY3RseSB3aGF0IHdlIHdhbnQhIDxwPgotPHA+Ci1Ib3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgdGhpbmdzIHRvIGtlZXAgaW4gbWluZCB3aGVuIGRldmVsb3BpbmcgYW4gYXBwbGljYXRpb24gd2l0aCBTV0lHIDo8cD4KLTxwPgotPHVsPgotPGxpPkZ1bmN0aW9ucyBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lIGFuZCBpbiBhbnkgb3JkZXIuIEl0IGlzIGFsd2F5cyBhIGdvb2QgaWRlYSBmb3IgZnVuY3Rpb25zIHRvIGNoZWNrIHRoZWlyIGFyZ3VtZW50cyBhbmQgaW50ZXJuYWwgc3RhdGUgdG8gc2VlIGlmIGl0J3MgbGVnYWwgdG8gcHJvY2VlZCAoTm90IGRvaW5nIHNvIHVzdWFsbHkgcmVzdWx0cyBpbiBteXN0ZXJpb3VzIGNyYXNoZXMgbGF0ZXIgb24pLgotPGxpPkNvZGUgc2hvdWxkIGJlIHN0cnVjdHVyZWQgYXMgYSBjb2xsZWN0aW9uIG9mIGluZGVwZW5kZW50IG1vZHVsZXMsIG5vdCBhIGh1Z2UgbWVzcyBvZiBpbnRlcnJlbGF0ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgKGllLiBzcGFnaGV0dGkgY29kZSkuCi08bGk+R2xvYmFsIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCB3aXRoIGNhcmUuCi08bGk+Q2FyZWZ1bCBhdHRlbnRpb24gdG8gdGhlIG5hbWluZyBvZiB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucyBtYXkgYmUgcmVxdWlyZWQgdG8gYXZvaWQgbmFtZXNwYWNlIGNvbmZsaWN0cyB3aGVuIGNvbWJpbmluZyBwYWNrYWdlcy4KLTwvdWw+Ci08cD4KLVdoaWxlIGl0IG1heSBiZSBoYXJkIChvciBpbXBvc3NpYmxlKSB0byBhZGRyZXNzIGFsbCB0aGVzZSBwcm9ibGVtcyBpbiBhIGxlZ2FjeSBjb2RlLCBJIGJlbGlldmUgdGhhdCB1c2luZyBTV0lHIGVuY291cmFnZXMgYWxsIG9mIHRoZSBhYm92ZSBxdWFsaXRpZXMgd2hlbiBkZXZlbG9waW5nIG5ldyBhcHBsaWNhdGlvbnMuIFRoaXMgcmVzdWx0cyBpbiBjb2RlIHRoYXQgaXMgbW9yZSByZWxpYWJsZSwgbW9yZSBtb2R1bGFyLCBhbmQgZWFzaWVyIHRvIGludGVncmF0ZSBpbnRvIGxhcmdlciBwYWNrYWdlcy4gIEJ5IHByb3ZpZGluZyBhIG5vbi1pbnRydXNpdmUsIGVhc3kgdG8gdXNlIHRvb2wsIGl0IGlzIHBvc3NpYmxlIHRvIGRldmVsb3AgaGlnaGx5IHJlbGlhYmxlIGV2ZW50LWRyaXZlbiBjb2RlIGZyb20gdGhlIHN0YXJ0LS1ub3QgYXMgYSBoYWNrIHRvIGJlIGFkZGVkIGxhdGVyLiBBcyBhIGZpbmFsIHNhbGVzIHBpdGNoLCBpbiB0aGUgaW5pdGlhbCBhcHBsaWNhdGlvbiBmb3Igd2hpY2ggU1dJRyB3YXMgZGV2ZWxvcGVkLCBjb2RlIHJlbGlhYmlsaXR5IGFuZCBmbGV4aWJpbGl0eSBoYXMgaW5jcmVhc2VkIHN1YnN0YW50aWFsbHkgd2hpbGUgY29kZSBzaXplIGhhcyBkZWNyZWFzZWQgYnkgbW9yZSB0aGFuIDI1JS4gSSBiZWxpZXZlIHRoaXMgaXMgYSBnb29kIHRoaW5nLjxwPgotPGEgbmFtZT0ibjEwIj48L2E+PGgyPiBBdXRvbWF0aWMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uPC9oMj4KLVNXSUcgbWFrZXMgaXQgdmVyeSBlYXN5IHRvIGJ1aWxkIGxhcmdlIGludGVyYWN0aXZlIEMgcHJvZ3JhbXMsIGJ1dCBpdCBjYW4gc29tZXRpbWVzIGJlIGhhcmQgdG8gcmVtZW1iZXIgd2hhdCBDIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlIGFuZCBob3cgdGhleSBhcmUgY2FsbGVkIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBUbyBhZGRyZXNzIHRoaXMgcHJvYmxlbSwgU1dJRyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIGRvY3VtZW50YXRpb24gZmlsZSBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgZm9ybWF0cy4gQyBjb21tZW50cyBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGFkZGl0aW9uYWwgZGVzY3JpcHRpb25zIG9mIGVhY2ggZnVuY3Rpb24sIGFuZCBkb2N1bWVudGF0aW9uIGNhbiBiZSBncm91cGVkIGludG8gYSBoaWVyYXJjaHkgb2Ygc2VjdGlvbnMgYW5kIHN1YnNlY3Rpb25zLiBUaGUgZG9jdW1lbnRhdGlvbiBmaWxlIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYSByZWFzb25hYmxlIGRlc2NyaXB0aW9uIG9mIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBXaGlsZSBpdCdzIG5vIGNvbXBldGl0aW9uIGZvciBhIGZ1bGwtYmxvd24gQyBjb2RlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yLCB0aGUgZG9jdW1lbnRhdGlvbiBzeXN0ZW0gY2FuIGRvIGEgcmVhc29uYWJsZSBqb2Igb2YgZG9jdW1lbnRpbmcgYW4gaW50ZXJmYWNlLjxwPgotPGEgbmFtZT0ibjExIj48L2E+PGgyPiBTdW1tYXJ5PC9oMj4KLUF0IHRoaXMgcG9pbnQsIHlvdSBrbm93IGFib3V0IDk1JSBvZiBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cgdG8gc3RhcnQgdXNpbmcgU1dJRy4gRmlyc3QsIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIGFyZSBzcGVjaWZpZWQgdXNpbmcgQU5TSSBDLCBDKyssIG9yIE9iamVjdGl2ZS1DIHN5bnRheC4gVGhlc2UgbWF5IGFwcGVhciBpbiBhIHNlcGFyYXRlIGludGVyZmFjZSBmaWxlIG9yIHlvdSBjYW4gdXNlIGEgQyBzb3VyY2UgZmlsZSAoaWYgaXQgaXMgc3VmZmljaWVudGx5IGNsZWFuKS4gU1dJRyByZXF1aXJlcyBubyBtb2RpZmljYXRpb25zIHRvIGV4aXN0aW5nIEMgY29kZSBzbyBpdCdzIGVhc3kgdG8gZ2V0IHN0YXJ0ZWQuIFRvIGJ1aWxkIGEgbW9kdWxlLCB1c2UgdGhlIDx0dD5zd2lnPC90dD4gY29tbWFuZCB3aXRoIGFuIGFwcHJvcHJpYXRlIHRhcmdldCBsYW5ndWFnZSBvcHRpb24uIFRoaXMgZ2VuZXJhdGVzIGEgQyBmaWxlIHRoYXQgeW91IG5lZWQgdG8gY29tcGlsZSB3aXRoIHRoZSByZXN0IG9mIHlvdXIgY29kZSBhbmQgeW91J3JlIHJlYWR5IHRvIGdvLiA8cD4KLTxwPgotSSBkb24ndCBjb25zaWRlciB0aGVyZSB0byBiZSBhICJyaWdodCIgb3IgIndyb25nIiB3YXkgdG8gdXNlIFNXSUcsIGFsdGhvdWdoIEkgcGVyc29uYWxseSB1c2Ugc2VwYXJhdGUgaW50ZXJmYWNlIGZpbGVzIGZvciBhIHZhcmlldHkgb2YgcmVhc29ucyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5JdCBoZWxwcyBrZWVwIG1lIG9yZ2FuaXplZC4KLTxsaT5JdCdzIHVzdWFsbHkgbm90IG5lY2Vzc2FyeSB0byB3cmFwIGV2ZXJ5IHNpbmdsZSBDIGZ1bmN0aW9uIGluIGEgcHJvZ3JhbS4KLTxsaT5TV0lHIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGRpcmVjdGl2ZXMgdGhhdCBJIHRlbmQgdG8gdXNlIGFsb3QuCi08bGk+SGF2aW5nIGEgc3BlY2lhbCBpbnRlcmZhY2UgZmlsZSBtYWtlcyBpdCBjbGVhciB3aGVyZSB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZSBpcyBkZWZpbmVkLiBJZiB5b3UgZGVjaWRlIHRvIGNoYW5nZSBzb21ldGhpbmcgaW4gdGhlIGludGVyZmFjZSwgaXQncyBlYXN5IHRvIHRyYWNrIGRvd24gaWYgeW91IGhhdmUgc3BlY2lhbCBmaWxlLiAKLTwvdWw+Ci08cD4KLU9mIGNvdXJzZSwgeW91ciBtaWxlYWdlIG1heSB2YXJ5LiA8cD4KLTxhIG5hbWU9Im4xMiI+PC9hPjxoMj4gU1dJRyBmb3IgV2luZG93cyBhbmQgTWFjaW50b3NoPC9oMj4KLVNXSUcgaGFzIGJlZW4gcHJpbWFyaWx5IGRldmVsb3BlZCBhbmQgZGVzaWduZWQgdG8gd29yayB3aXRoIFVuaXgtYmFzZWQgYXBwbGljYXRpb25zLiBIb3dldmVyLCBtb3N0IG9mIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHN1cHBvcnRlZCBieSBTV0lHIGFyZSBhdmFpbGFibGUgb24gYSB2YXJpZXR5IG9mIG90aGVyIHBsYXRmb3JtcyBpbmNsdWRpbmcgV2luZG93cyA5NS9OVCBhbmQgTWFjaW50b3NoLiBTV0lHIGdlbmVyYXRlZCBjb2RlIGlzIG1vc3RseSBjb21wYXRpYmxlIHdpdGggdGhlc2UgdmVyc2lvbnMgKGFuZCBTV0lHIGl0c2VsZiBjYW4gbm93IHJ1biBvbiB0aGVzZSBwbGF0Zm9ybXMpLiA8cD4KLTxhIG5hbWU9Im4yMCI+PC9hPjxoMz4gU1dJRyBvbiBXaW5kb3dzIDk1L05UPC9oMz4KLVRoZSBXaW5kb3dzIDk1L05UIHBvcnQgb2YgU1dJRyAocHJvdmlkZWQgYnkgS2V2aW4gQnV0bGVyKSwgaXMgYSBzdHJhaWdodGZvcndhcmQgdHJhbnNsYXRpb24gb2YgdGhlIFVuaXggdmVyc2lvbi4gQXQgdGhpcyB0aW1lIGl0IGlzIG9ubHkga25vd24gdG8gd29yayB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgQysrIDQueCwgYnV0IHRoZXJlIGlzIG5vdGhpbmcgdG8gcHJldmVudCBpdHMgdXNlIHdpdGggb3RoZXIgY29tcGlsZXJzIChhdCBsZWFzdCBub3QgdGhhdCBJJ20gYXdhcmUgb2YpLiBTV0lHIHNob3VsZCBiZSBpbnZva2VkIGZyb20gdGhlIE1TLURPUyBwcm9tcHQgaW4gZXhhY3RseSB0aGUgc2FtZSBtYW5uZXIgYXMgaW4gVW5peC4gU1dJRyBjYW4gYWxzbyBiZSB1c2VkIGluIE5NQUtFIGJ1aWxkIGZpbGVzIGFuZCBhZGRlZCB0byBWaXN1YWwgQysrIHByb2plY3RzIHVuZGVyIHRoZSBjdXN0b20gYnVpbGQgc2V0dGluZy4gQXMgb2YgdGhpcyB3cml0aW5nLCBTV0lHIGlzIGtub3duIHRvIHdvcmsgd2l0aCBXaW5kb3dzIHZlcnNpb25zIG9mIFRjbC9UaywgUHl0aG9uLCBhbmQgUGVybCAoaW5jbHVkaW5nIHRoZSBBY3RpdmVXYXJlIFBlcmwgZm9yIFdpbjMyIHBvcnQpLiBTV0lHIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgbG9uZyBmaWxlbmFtZXMsIHNvIGl0IGlzIHVubGlrZWx5IHRoYXQgdGhlIFNXSUcgY29tcGlsZXIgd2lsbCBvcGVyYXRlIGNvcnJlY3RseSB1bmRlciBXaW5kb3dzIDMuMSBvciBET1MgKHRoZSB3cmFwcGVyIGNvZGUgZ2VuZXJhdGVkIGJ5IFNXSUcgbWF5IGNvbXBpbGUgaG93ZXZlcikuPHA+Ci08YSBuYW1lPSJuMjEiPjwvYT48aDM+IFNXSUcgb24gdGhlIFBvd2VyIE1hY2ludG9zaDwvaDM+Ci1BIE1hY2ludG9zaCBwb3J0IG9mIFNXSUcgaXMgYWxzbyBhdmFpbGFibGUsIGJ1dCBpcyBoaWdobHkgZXhwZXJpbWVudGFsIGF0IHRoaXMgdGltZS4gSXQgb25seSB3b3JrcyBvbiBQb3dlclBDIGJhc2VkIE1hY2ludG9zaCBzeXN0ZW1zIHJ1bm5pbmcgU3lzdGVtIDcgb3IgbGF0ZXIuIE1vZHVsZXMgY2FuIGJlIGNvbXBpbGVkIHdpdGggdGhlIE1ldHJvd2Vya3MgQ29kZSBXYXJyaW9yIGNvbXBpbGVyLCBidXQgc3VwcG9ydCBmb3Igb3RoZXIgY29tcGlsZXJzIGlzIHVua25vd24uIER1ZSB0byB0aGUgbGFjayBvZiBjb21tYW5kIGxpbmUgb3B0aW9ucyBvbiB0aGUgTWFjLCBTV0lHIGhhcyBiZWVuIHBhY2thZ2VkIGluIGEgVGNsL1RrIGludGVyZmFjZSB0aGF0IGFsbG93cyB2YXJpb3VzIHNldHRpbmdzIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBiZSBzcGVjaWZpZWQgd2l0aCBhIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZS4gVW5kZXJuZWF0aCB0aGUgaG9vZCwgU1dJRyBpcyBpZGVudGljYWwgdG8gdGhlIFVuaXgvV2luZG93cyB2ZXJzaW9uLiBJdCByZWNvZ25pemVzIHRoZSBzYW1lIHNldCBvZiBvcHRpb25zIGFuZCBnZW5lcmF0ZXMgaWRlbnRpY2FsIGNvZGUuIEFueSBTV0lHIGNvbW1hbmQgbGluZSBvcHRpb24gbGlzdGVkIGluIHRoaXMgbWFudWFsIGNhbiBiZSBnaXZlbiB0byB0aGUgTWFjIHZlcnNpb24gdW5kZXIgIkFkdmFuY2VkIE9wdGlvbnMiIHNob3duIGluIHRoZSBmaWd1cmUuIEF0IHRoaXMgd3JpdGluZywgU1dJRyBpcyBvbmx5IGtub3duIHRvIHN1cHBvcnQgTWFjIHZlcnNpb25zIG9mIFRjbC9Uay4gV29yayBvbiBNYWNpbnRvc2ggdmVyc2lvbnMgb2YgUHl0aG9uIGFuZCBQZXJsIGlzIHVuZGVyd2F5LjxwPgotPHA+Q2xpY2sgPGEgaHJlZj0iY2gxLjIucG5nIj5oZXJlPC9hPiB0byBzZWUgYSBNYWNpbnRvc2ggc2NyZWVuIHNob3QuPHA+Ci08cD4KLTxwPgotPGEgbmFtZT0ibjIyIj48L2E+PGgzPiBDcm9zcyBwbGF0Zm9ybSB3b2VzPC9oMz4KLVdoaWxlIFNXSUcgYW5kIHZhcmlvdXMgZnJlZWx5IGF2YWlsYWJsZSBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGFyZSBzdXBwb3J0ZWQgb24gZGlmZmVyZW50IHBsYXRmb3JtcywgZGV2ZWxvcGluZyBjcm9zcyBwbGF0Zm9ybSBhcHBsaWNhdGlvbnMgd2l0aCB0aGVzZSB0b29scyBpcyBzdGlsbCBpbW1hdHVyZSBhbmQgZmlsbGVkIHdpdGggcGl0ZmFsbHMuIEluIGZhY3QsIGl0J3MgcHJvYmFibHkgb25seSByZWNvbW1lbmRlZCBmb3IgdHJ1ZSBtYXNvY2hpc3RzLiBEZXNwaXRlIHRoaXMsIGl0J3MgaW50ZXJlc3RpbmcgdG8gdGhpbmsgYWJvdXQgdXNpbmcgZnJlZWx5IGF2YWlsYWJsZSB0b29scyB0byBwcm92aWRlIGNvbW1vbiBpbnRlcmZhY2VzIHRvIEMvQysrIGNvZGUuIEkgYmVsaWV2ZSB0aGF0IFNXSUcgbWF5IGhlbHAsIGJ1dCBpdCBpcyBieSBubyBtZWFucyBhIGNyb3NzLXBsYXRmb3JtIHNvbHV0aW9uIGJ5IGl0c2VsZi4gPHA+Ci08YSBuYW1lPSJuMjMiPjwvYT48aDM+IEhvdyB0byBzdXJ2aXZlIHRoaXMgbWFudWFsPC9oMz4KLVRoaXMgbWFudWFsIHdhcyB3cml0dGVuIHRvIHN1cHBvcnQgdGhlIFVuaXggdmVyc2lvbiBvZiBTV0lHLiBIb3dldmVyLCBhbGwgb2YgdGhlIG1haW4gY29uY2VwdHMgYW5kIHVzYWdlIG9mIFNXSUcgYWxzbyBhcHBseSB0byB0aGUgV2luZG93cyBhbmQgTWFjaW50b3NoIHZlcnNpb25zLiBZb3Ugc2hvdWxkIGJlIGZvcmV3YXJuZWQgdGhhdCBtb3N0IG9mIHRoZSBleGFtcGxlcyBhcmUgVW5peC1jZW50cmljIGFuZCBtYXkgbm90IGNvbXBpbGUgY29ycmVjdGx5IG9uIG90aGVyIG1hY2hpbmVzLiBIb3dldmVyLCBtb3N0IG9mIHRoZSBleGFtcGxlcyBwcm92aWRlZCB3aXRoIHRoZSBTV0lHIGRpc3RyaWJ1dGlvbiBoYXZlIG5vdyBiZWVuIHRlc3RlZCB1bmRlciBib3RoIFVuaXggYW5kIFdpbmRvd3MtTlQuICBXaGVuIGFwcGxpY2FibGUsIEkgd2lsbCB0cnkgdG8gcG9pbnQgb3V0IGluY29tcGF0aWJpbGl0aWVzLCBidXQgbWFrZSBubyBwcm9taXNlcy4uLiA8cD4KLTxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0Njo1MCAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9MaWJyYXJ5Lmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML0xpYnJhcnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNmNzEzZi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML0xpYnJhcnkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyNSArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPk11bHRpcGxlIEZpbGVzIGFuZCB0aGUgU1dJRyBMaWJyYXJ5PC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08YSBuYW1lPSJuMCI+PC9hPjxoMT40IE11bHRpcGxlIGZpbGVzIGFuZCB0aGUgU1dJRyBsaWJyYXJ5PC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+VGhlICVpbmNsdWRlIGRpcmVjdGl2ZTwvYT4KLTxsaT4gPGEgaHJlZj0iI24yIj5UaGUgJWV4dGVybiBkaXJlY3RpdmU8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+VGhlICVpbXBvcnQgZGlyZWN0aXZlPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPkluY2x1ZGluZyBmaWxlcyBvbiB0aGUgY29tbWFuZCBsaW5lPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPlRoZSBTV0lHIGxpYnJhcnk8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNiI+TGlicmFyeSBleGFtcGxlPC9hPgotPGxpPiA8YSBocmVmPSIjbjciPkNyZWF0aW5nIExpYnJhcnkgRmlsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOCI+V29ya2luZyB3aXRoIGxpYnJhcnkgZmlsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOSI+U3RhdGljIGluaXRpYWxpemF0aW9uIG9mIG11bHRpcGxlIG1vZHVsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTAiPk1vcmUgYWJvdXQgdGhlIFNXSUcgbGlicmFyeTwvYT4KLTwvdWw+Ci0KLUZvciBpbmNyZWFzZWQgbW9kdWxhcml0eSBhbmQgY29udmVuaWVuY2UsIGl0IGlzIHVzdWFsbHkgdXNlZnVsIHRvIGJyZWFrIGFuIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uIHVwIGludG8gbXVsdGlwbGUgZmlsZXMgb3IgbW9kdWxlcy4gU1dJRyBwcm92aWRlcyBhIG51bWJlciBvZiBmZWF0dXJlcyBmb3IgZG9pbmcganVzdCB0aGlzLjxwPgotPGEgbmFtZT0ibjEiPjwvYT48aDI+IFRoZSAlaW5jbHVkZSBkaXJlY3RpdmU8L2gyPgotVGhlIDx0dD4laW5jbHVkZTwvdHQ+IGRpcmVjdGl2ZSBpbnNlcnRzIGNvZGUgZnJvbSBhbm90aGVyIGZpbGUgaW50byB0aGUgY3VycmVudCBpbnRlcmZhY2UgZmlsZS4gSXQgaXMgcHJpbWFyaWx5IHVzZWQgdG8gYnVpbGQgYSBwYWNrYWdlIGZyb20gYSBjb2xsZWN0aW9uIG9mIHNtYWxsZXIgbW9kdWxlcy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEZpbGUgOiBpbnRlcmZhY2UuaQotJW1vZHVsZSBwYWNrYWdlCi0laW5jbHVkZSBlcXVhdGlvbnMuaQotJWluY2x1ZGUgZ3JhcGhpY3MuaQotJWluY2x1ZGUgZmlsZWlvLmkKLSVpbmNsdWRlIGRhdGEuaQotJWluY2x1ZGUgbmV0d29yay5jCi0laW5jbHVkZSAiLi4vSW5jbHVkZS91c2VyLmgiCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdoZW4gdXNlZCBpbiB0aGlzIG1hbm5lciwgU1dJRyB3aWxsIGNyZWF0ZSBhIHNpbmdsZSB3cmFwcGVyIGZpbGUgY29udGFpbmluZyBhbGwgb2YgdGhlIGluY2x1ZGVkIGZ1bmN0aW9ucy4gPHA+Ci08cD4KLVRoZSA8dHQ+JWluY2x1ZGU8L3R0PiBkaXJlY3RpdmUgY2FuIHByb2Nlc3MgU1dJRyBpbnRlcmZhY2UgZmlsZXMsIEMgaGVhZGVyIGZpbGVzLCBhbmQgQyBzb3VyY2UgZmlsZXMgKHByb3ZpZGVkIHRoZXkgYXJlIHN1ZmZpY2llbnRseSBjbGVhbikuIFdoZW4gcHJvY2Vzc2luZyBhIEMgc291cmNlIGZpbGUsIFNXSUcgd2lsbCBhdXRvbWF0aWNhbGx5IGRlY2xhcmUgYWxsIGZ1bmN0aW9ucyBpdCBmaW5kcyBhcyAiZXh0ZXJuIi4gVGh1cywgdXNlIG9mIGEgaGVhZGVyIGZpbGUgbWF5IG5vdCBiZSByZXF1aXJlZCBpbiB0aGlzIGNhc2UuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gVGhlICVleHRlcm4gZGlyZWN0aXZlPC9oMj4KLVRoZSA8dHQ+JWV4dGVybjwvdHQ+IGRpcmVjdGl2ZSBpcyBsaWtlIDx0dD4laW5jbHVkZTwvdHQ+IGV4Y2VwdCB0aGF0IGl0IG9ubHkgc2NhbnMgYSBmaWxlIGZvciB0eXBlIGFuZCBjbGFzcyBpbmZvcm1hdGlvbi4gSXQgZG9lcyBub3QgYWN0dWFsbHkgd3JhcCBhbnl0aGluZyBmb3VuZCBpbiB0aGUgaW5wdXQgZmlsZS4gVGhpcyBkaXJlY3RpdmUgaXMgcHJpbWFyaWx5IHVzZWQgZm9yIGhhbmRsaW5nIGNsYXNzIGhpZXJhcmNoaWVzIGFuZCBtdWx0aXBsZSBtb2R1bGVzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBkZXJpdmVkCi0lZXh0ZXJuIGJhc2VjbGFzcy5oIAkJCQkvLyBHcmFiIGRlZmluaXRpb24gb2YgYSBiYXNlIGNsYXNzCi0KLS8vIE5vdyB3cmFwIGEgZGVyaXZlZCBjbGFzcwotY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlQ2xhc3MgewotcHVibGljOgotCS4uLgotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBpbnRlcmZhY2UgZmlsZSB3b3VsZCBncmFiIHRoZSBtZW1iZXIgZnVuY3Rpb25zIGFuZCBkYXRhIGZyb20gYSBiYXNlY2xhc3MsIGJ1dCBvbmx5IHVzZSB0aGVtIGluIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgZGVyaXZlZCBjbGFzcy4gPHR0PiVleHRlcm48L3R0PiBwcm9jZXNzaW5nIG9mIGZpbGVzIGlzIGFsc28gdXNlZnVsIGZvciBwaWNraW5nIHVwIGNvbW1vbiB0eXBlZGVmcyBhbmQgZGVmaW5pdGlvbnMgaW4gYSBsYXJnZSBwYWNrYWdlLjxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IFRoZSAlaW1wb3J0IGRpcmVjdGl2ZTwvaDI+Ci1UaGUgPHR0PiVleHRlcm48L3R0PiBkaXJlY3RpdmUgaXMgdXNlZCB0byBnYXRoZXIgZGVjbGFyYXRpb25zIGZyb20gZmlsZXMgdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byB3cmFwIGludG8gYW4gaW50ZXJmYWNlLiBVbmZvcm51bmF0ZWx5LCB0aGUgZXhhY3Qgcm9sZSBvZiB0aGVzZSBmaWxlcyBpcyBub3QgYWx3YXlzIGNsZWFyLiBUaGV5IGNvdWxkIGp1c3QgY29udGFpbiBkZWZpbml0aW9ucywgb3IgdGhleSBtaWdodCBjb3JyZXNwb25kIHRvIGFuIGVudHJpcmVseSBkaWZmZXJlbnQgU1dJRyBtb2R1bGUuIFRoZSA8dHQ+JWltcG9ydDwvdHQ+IGRpcmVjdGl2ZSBpcyBhIHN0cm9uZ2VyIHZlcnNpb24gb2YgPHR0PiVleHRlcm48L3R0PiB0aGF0IHRlbGxzIFNXSUcgdGhhdCBhbGwgb2YgdGhlIGRlY2xhcmF0aW9ucyBpbiB0aGUgZmlsZSBhcmUgaW5kZWVkLCBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQgbW9kdWxlLiBUaGlzIGluZm9ybWF0aW9uIG1heSBhZmZlY3QgdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IHZhcmlvdXMgbGFuZ3VhZ2UgbW9kdWxlcyBzaW5jZSB0aGV5IHdpbGwgaGF2ZSBhIGJldHRlciBpZGVhIG9mIHdoZXJlIHRoaW5ncyBhcmUgZGVmaW5lZCBhbmQgaG93IHRoZXkgYXJlIHRvIGJlIHVzZWQuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gSW5jbHVkaW5nIGZpbGVzIG9uIHRoZSBjb21tYW5kIGxpbmU8L2gyPgotTXVjaCBsaWtlIHRoZSBDIG9yIEMrKyBjb21waWxlciwgU1dJRyBjYW4gYWxzbyBpbmNsdWRlIGxpYnJhcnkgZmlsZXMgb24gdGhlIGNvbW1hbmQgbGluZSB1c2luZyB0aGUgPHR0Pi1sPC90dD4gb3B0aW9uIGFzIHNob3duPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIEluY2x1ZGUgYSBsaWJyYXJ5IGZpbGUgYXQgY29tcGlsZSB0aW1lCi0lIHN3aWcgLXRjbCAtbHdpc2guaSBpbnRlcmZhY2UuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGFwcHJvYWNoIHR1cm5zIG91dCB0byBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIGJ1aWxkaW5nIGV4dGVuc2lvbnMgdG8gZGlmZmVyZW50IGtpbmRzIG9mIGxhbmd1YWdlcy4gV2hlbiBsaWJyYXJpZXMgYXJlIHNwZWNpZmllZCBpbiB0aGlzIG1hbm5lciwgdGhleSBhcmUgaW5jbHVkZWQgYWZ0ZXIgYWxsIG9mIHRoZSBkZWNsYXJhdGlvbnMgaW4gPHR0PmludGVyZmFjZS5pPC90dD4gaGF2ZSBiZWVuIHdyYXBwZWQuIFRodXMsIHRoaXMgZG9lcyBub3Qgd29yayBpZiB5b3UgYXJlIHRyeWluZyB0byBpbmNsdWRlIGNvbW1vbiBkZWNsYXJhdGlvbnMsIHR5cGVtYXBzLCBhbmQgb3RoZXIgZmlsZXMuPHA+Ci08YSBuYW1lPSJuNSI+PC9hPjxoMj4gVGhlIFNXSUcgbGlicmFyeSA8L2gyPgotU1dJRyBjb21lcyB3aXRoIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBidWlsZCB1cCBtb3JlIGNvbXBsZXggaW50ZXJmYWNlcy4gQXMgeW91IGJ1aWxkIHVwIGEgY29sbGVjdGlvbiBvZiBtb2R1bGVzLCB5b3UgbWF5IGFsc28gZmluZCB5b3Vyc2VsZiB3aXRoIGEgbGFyZ2UgbnVtYmVyIG9mIGludGVyZmFjZSBmaWxlcy4gV2hpbGUgdGhlIDx0dD4laW5jbHVkZTwvdHQ+IGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCB0byBpbnNlcnQgZmlsZXMsIGl0IGFsc28gc2VhcmNoZXMgdGhlIGZpbGVzIGluc3RhbGxlZCBpbiB0aGUgU1dJRyBsaWJyYXJ5ICh0aGluayBvZiB0aGlzIGFzIHRoZSBTV0lHIGVxdWl2YWxlbnQgb2YgdGhlIEMgbGlicmFyeSkuIFdoZW4geW91IHVzZSA8dHQ+JWluY2x1ZGU8L3R0PiwgU1dJRyB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpbGUgaW4gdGhlIGZvbGxvd2luZyBvcmRlciA6PHA+Ci08cD4KLTx1bD4KLTxsaT5UaGUgY3VycmVudCBkaXJlY3RvcnkKLTxsaT5EaXJlY3RvcmllcyBzcGVjaWZpZWQgd2l0aCB0aGUgLUkgb3B0aW9uCi08bGk+Ljx0dD4vc3dpZ19saWI8L3R0PgotPGxpPjx0dD4vdXNyL2xvY2FsL2xpYi9zd2lnX2xpYjwvdHQ+IChvciB3aGVyZXZlciB5b3UgaW5zdGFsbGVkIFNXSUcpCi08L3VsPgotPHA+Ci1XaXRoaW4gZWFjaCBkaXJlY3RvcnksIHlvdSBjYW4gYWxzbyBjcmVhdGUgc3ViZGlyZWN0b3JpZXMgZm9yIGVhY2ggdGFyZ2V0IGxhbmd1YWdlLiBJZiBmb3VuZCwgU1dJRyB3aWxsIHNlYXJjaCB0aGVzZSBkaXJlY3RvcmllcyBmaXJzdCwgYWxsb3dpbmcgdGhlIGNyZWF0aW9uIG9mIGxhbmd1YWdlLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZiBhIHBhcnRpY3VsYXIgbGlicmFyeSBmaWxlLjxwPgotPHA+Ci1Zb3UgY2FuIG92ZXJyaWRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgU1dJRyBsaWJyYXJ5IGJ5IHNldHRpbmcgdGhlIDx0dD5TV0lHX0xJQjwvdHQ+IGVudmlyb25tZW50IHZhcmlhYmxlLjxwPgotPGEgbmFtZT0ibjYiPjwvYT48aDI+IExpYnJhcnkgZXhhbXBsZTwvaDI+Ci1UaGUgU1dJRyBsaWJyYXJ5IGlzIHJlYWxseSBhIHJlcG9zaXRvcnkgb2YgInVzZWZ1bCBtb2R1bGVzIiB0aGF0IGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGJldHRlciBpbnRlcmZhY2VzLiBUbyB1c2UgYSBsaWJyYXJ5IGZpbGUsIHlvdSBjYW4gc2ltcGx5IHVzZSB0aGUgPHR0PiVpbmNsdWRlIDwvdHQ+ZGlyZWN0aXZlIHdpdGggdGhlIG5hbWUgb2YgYSBsaWJyYXJ5IGZpbGUuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLQotJWluY2x1ZGUgcG9pbnRlci5pIAkJCQkvLyBHcmFiIHRoZSBTV0lHIHBvaW50ZXIgbGlicmFyeQotCi0vLyBhK2IgLS0mZ3Q7IGMKLWV4dGVybiBkb3VibGUgYWRkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICpjKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBleGFtcGxlLCB3ZSBhcmUgaW5jbHVkaW5nIHRoZSBTV0lHIHBvaW50ZXIgbGlicmFyeSB0aGF0IGFkZHMgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgQyBwb2ludGVycy4gVGhlc2UgYWRkZWQgZnVuY3Rpb25zIGJlY29tZSBwYXJ0IG9mIHlvdXIgbW9kdWxlIHRoYXQgY2FuIGJlIHVzZWQgYXMgbmVlZGVkLiBGb3IgZXhhbXBsZSwgd2UgY2FuIHdyaXRlIGEgVGNsIHNjcmlwdCBsaWtlIHRoaXMgdGhhdCBpbnZvbHZlcyBib3RoIHRoZSA8dHQ+YWRkKCk8L3R0PiBmdW5jdGlvbiBhbmQgdHdvIGZ1bmN0aW9ucyBmcm9tIHRoZSA8dHQ+cG9pbnRlci5pPC90dD4gbGlicmFyeSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c2V0IGMgW3B0cmNyZWF0ZSBkb3VibGUgMF0gICAgOyMgQ3JlYXRlIGEgZG91YmxlICogZm9yIGhvbGRpbmcgdGhlIHJlc3VsdAotYWRkIDQgMy41ICRjICAgICAgICAgICAgICAgICAgOyMgQ2FsbCBvdXIgQyBmdW5jdGlvbgotcHV0cyBbcHRydmFsdWUgJGNdICAgICAgICAgICAgOyMgUHJpbnQgb3V0IHRoZSByZXN1bHQKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im43Ij48L2E+PGgyPiBDcmVhdGluZyBMaWJyYXJ5IEZpbGVzPC9oMj4KLUl0IGlzIGVhc3kgdG8gY3JlYXRlIHlvdXIgb3duIGxpYnJhcnkgZmlsZXMuIFRvIGlsbHVzdHJhdGUgdGhlIHByb2Nlc3MsIHdlIGNvbnNpZGVyIHR3byBkaWZmZXJlbnQgbGlicmFyeSBmaWxlcy0tb25lIHRvIGJ1aWxkIGEgbmV3IDx0dD50Y2xzaDwvdHQ+IHByb2dyYW0sIGFuZCBvbmUgdG8gYWRkIGEgZmV3IG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucy48cD4KLTxhIG5hbWU9Im4xMSI+PC9hPjxoMz4gdGNsc2guaTwvaDM+Ci1UbyBidWlsZCBhIG5ldyA8dHQ+dGNsc2g8L3R0PiBhcHBsaWNhdGlvbiwgeW91IG5lZWQgdG8gc3VwcGx5IGEgPHR0PlRjbF9BcHBJbml0KCk8L3R0PiBmdW5jdGlvbi4gICBUaGlzIGNhbiBiZSBkb25lIHVzaW5nIHRoZSBmb2xsb3dpbmcgU1dJRyBpbnRlcmZhY2UgZmlsZSAoc2ltcGxpZmllZCBzb21ld2hhdCBmb3IgY2xhcml0eSkgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLS8vIEZpbGUgOiB0Y2xzaC5pCi0lewotI2lmIFRDTF9NQUpPUl9WRVJTSU9OID09IDcgJmFtcDsmYW1wOyBUQ0xfTUlOT1JfVkVSU0lPTiAmZ3Q7PSA0Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgVGNsX01haW4oYXJnYywgYXJndiwgVGNsX0FwcEluaXQpOwotICByZXR1cm4oMCk7Ci19Ci0jZWxzZQotZXh0ZXJuIGludCBtYWluKCk7Ci0jZW5kaWYKLWludCBUY2xfQXBwSW5pdChUY2xfSW50ZXJwICppbnRlcnApewotICBpbnQgU1dJR19pbml0KFRjbF9JbnRlcnAgKik7IAotCi0gIGlmIChUY2xfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgCi0gICAgcmV0dXJuIFRDTF9FUlJPUjsKLQotICAvKiBOb3cgaW5pdGlhbGl6ZSBvdXIgZnVuY3Rpb25zICovCi0KLSAgaWYgKFNXSUdfaW5pdChpbnRlcnApID09IFRDTF9FUlJPUikKLSAgICByZXR1cm4gVENMX0VSUk9SOwotCi0gIHJldHVybiBUQ0xfT0s7Ci19Ci0lfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCB0aGUgZW50aXJlIGZpbGUgY29uc2lzdHMgb2YgYSBzaW5nbGUgY29kZSBibG9jay4gVGhpcyBjb2RlIHdpbGwgYmUgaW5zZXJ0ZWQgZGlyZWN0bHkgaW50byB0aGUgcmVzdWx0aW5nIHdyYXBwZXIgZmlsZSwgcHJvdmlkaW5nIHVzIHdpdGggdGhlIG5lZWRlZCA8dHQ+VGNsX0FwcEluaXQoKTwvdHQ+IGZ1bmN0aW9uLjxwPgotPGEgbmFtZT0ibjEyIj48L2E+PGgzPiBtYWxsb2MuaTwvaDM+Ci1Ob3cgc3VwcG9zZSB3ZSB3YW50ZWQgdG8gd3JpdGUgYSBmaWxlIDx0dD5tYWxsb2MuaTwvdHQ+IHRoYXQgYWRkZWQgYSBmZXcgbWVtb3J5IG1hbmFnZW1lbnQgZnVuY3Rpb25zLiAgV2UgY291bGQgZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gRmlsZSA6IG1hbGxvYy5pCi0lewotI2luY2x1ZGUgJmx0O21hbGxvYy5oJmd0OwotJX0KLQotJXR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdAotdm9pZCAqbWFsbG9jKHNpemVfdCBuYnl0ZXMpOwotdm9pZCAqcmVhbGxvYyh2b2lkICpwdHIsIHNpemVfdCBuYnl0ZXMpOwotdm9pZCBmcmVlKHZvaWQgKik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUluIHRoaXMgY2FzZSwgd2UgaGF2ZSBhIGdlbmVyYWwgcHVycG9zZSBsaWJyYXJ5IHRoYXQgY291bGQgYmUgdXNlZCB3aGVuZXZlciB3ZSBuZWVkZWQgYWNjZXNzIHRvIHRoZSA8dHQ+bWFsbG9jKCk8L3R0PiBmdW5jdGlvbnMuIFNpbmNlIHRoaXMgaW50ZXJmYWNlIGZpbGUgaXMgbGFuZ3VhZ2UgaW5kZXBlbmRlbnQsIHdlIGNhbiB1c2UgaXQgYW55d2hlcmUuPHA+Ci08YSBuYW1lPSJuMTMiPjwvYT48aDM+IFBsYWNpbmcgdGhlIGZpbGVzIGluIHRoZSBsaWJyYXJ5PC9oMz4KLVdoaWxlIGJvdGggb2Ygb3VyIGV4YW1wbGVzIGFyZSBTV0lHIGludGVyZmFjZSBmaWxlcywgdGhleSBhcmUgcXVpdGUgZGlmZmVyZW50IGluIGZ1bmN0aW9uYWxpdHkgc2luY2UgPHR0PnRjbHNoLmk8L3R0PiB3b3VsZCBvbmx5IHdvcmsgd2l0aCBUY2wgd2hpbGUgPHR0Pm1hbGxvYy5pPC90dD4gd291bGQgd29yayB3aXRoIGFueSBvZiB0aGUgdGFyZ2V0IGxhbmd1YWdlcy4gICAgVGh1cywgd2Ugc2hvdWxkIHB1dCB0aGVzZSBmaWxlcyBpbnRvIHRoZSBTV0lHIGxpYnJhcnkgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPjx0dD4KLS4vc3dpZ19saWIvbWFsbG9jLmkKLS4vc3dpZ19saWIvdGNsL3RjbHNoLmkKLTwvdHQ+PC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIHVzZWQgaW4gb3RoZXIgaW50ZXJmYWNlIGZpbGVzLCB0aGlzIGFsbG93cyB1cyB0byB1c2UgPHR0Pm1hbGxvYy5pPC90dD4gd2l0aCBhbnkgdGFyZ2V0IGxhbmd1YWdlIHdoaWxlIDx0dD50Y2xzaC5pPC90dD4gd2lsbCBvbmx5IGJlIGFjY2Vzc2libGUgaWYgY3JlYXRpbmcgZm9yIHdyYXBwZXJzIGZvciBUY2wgKGllLiAgd2hlbiBjcmVhdGluZyBhIFBlcmw1IG1vZHVsZSwgU1dJRyB3aWxsIG5vdCBsb29rIGluIHRoZSA8dHQ+dGNsPC90dD4gc3ViZGlyZWN0b3J5LjxwPgotPHA+Ci1JdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBsYW5ndWFnZSBzcGVjaWZpYyBsaWJyYXJpZXMgY2FuIG1hc2sgZ2VuZXJhbCBsaWJyYXJpZXMuICBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnRlZCB0byBtYWtlIGEgUGVybCBzcGVjaWZpYyBtb2RpZmljYXRpb24gdG8gPHR0Pm1hbGxvYy5pPC90dD4sIHlvdSBjb3VsZCBtYWtlIGEgc3BlY2lhbCB2ZXJzaW9uIGFuZCBjYWxsIGl0IDx0dD4uL3N3aWdfbGliL3Blcmw1L21hbGxvYy5pPC90dD4uIFdoZW4gdXNpbmcgUGVybCwgeW91J2QgZ2V0IHRoaXMgdmVyc2lvbiwgd2hpbGUgYWxsIG90aGVyIHRhcmdldCAgbGFuZ3VhZ2VzIHdvdWxkIHVzZSB0aGUgZ2VuZXJhbCBwdXJwb3NlIHZlcnNpb24uPHA+Ci08YSBuYW1lPSJuOCI+PC9hPjxoMj4gV29ya2luZyB3aXRoIGxpYnJhcnkgZmlsZXM8L2gyPgotVGhlcmUgYXJlIGEgdmFyaWV0eSBvZiBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIHdvcmtpbmcgd2l0aCBmaWxlcyBpbiB0aGUgU1dJRyBsaWJyYXJ5IGRlc2NyaWJlZCBuZXh0LjxwPgotPGEgbmFtZT0ibjE0Ij48L2E+PGgzPiBXcmFwcGluZyBhIGxpYnJhcnkgZmlsZTwvaDM+Ci1JZiB5b3Ugd291bGQgbGlrZSB0byB3cmFwIGEgZmlsZSBpbiB0aGUgU1dJRyBsaWJyYXJ5LCBzaW1wbHkgZ2l2ZSBTV0lHIHRoZSBuYW1lIG9mIHRoZSBhcHByb3ByaWF0ZSBsaWJyYXJ5IGZpbGUgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVuaXggJmd0OyBzd2lnIC1weXRob24gcG9pbnRlci5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUlmIHRoZSBmaWxlIDx0dD5wb2ludGVyLmk8L3R0PiBpcyBub3QgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBTV0lHIHdpbGwgbG9vayBpdCB1cCBpbiB0aGUgbGlicmFyeSwgZ2VuZXJhdGUgd3JhcHBlciBjb2RlLCBhbmQgcGxhY2UgdGhlIG91dHB1dCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuIFRoaXMgdGVjaG5pcXVlIGNhbiBiZSB1c2VkIHRvIHF1aWNrbHkgbWFrZSBhIG1vZHVsZSBvdXQgb2YgYSBsaWJyYXJ5IGZpbGUgcmVnYXJkbGVzcyBvZiB3aGVyZSB5b3UgYXJlIHdvcmtpbmcuPHA+Ci08YSBuYW1lPSJuMTUiPjwvYT48aDM+IENoZWNraW5nIG91dCBsaWJyYXJ5IGZpbGVzPC9oMz4KLUF0IHRpbWVzLCBpdCBpcyB1c2VmdWwgdG8gY2hlY2sgYSBmaWxlIG91dCBvZiB0aGUgbGlicmFyeSBhbmQgY29weSBpdCBpbnRvIHRoZSB3b3JraW5nIGRpcmVjdG9yeS4gVGhpcyBhbGxvd3MgeW91IHRvIG1vZGlmeSB0aGUgZmlsZSBvciB0byBzaW1wbHkgcmV0cmlldmUgdXNlZnVsIGZpbGVzLiBUbyBjaGVjayBhIGZpbGUgb3V0IG9mIHRoZSBsaWJyYXJ5LCBydW4gU1dJRyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtY28gLXB5dGhvbiBhcnJheS5pCi1hcnJheS5pIGNoZWNrZWQgb3V0IGZyb20gdGhlIFNXSUcgbGlicmFyeQotdW5peCAmZ3Q7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBsaWJyYXJ5IGZpbGUgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHVubGVzcyBhIGZpbGUgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkgZXhpc3RzIChpbiB3aGljaCBjYXNlIG5vdGhpbmcgaXMgZG9uZSkuIDxwPgotPHA+Ci1UaGUgU1dJRyBsaWJyYXJ5IGlzIG5vdCByZXN0cmljdGVkIHRvIGludGVyZmFjZSBmaWxlcy4gU3VwcG9zZSB5b3UgaGFkIGEgY29vbCBQZXJsIHNjcmlwdCB0aGF0IHlvdSBsaWtlZCB0byB1c2UgYWxvdC4gWW91IGNvdWxkIHBsYWNlIHRoaXMgaW4gdGhlIFNXSUcgbGlicmFyeS4gTm93IHdoZW5ldmVyIHlvdSB3YW50ZWQgdG8gdXNlIGl0LCB5b3UgY291bGQgcmV0cmlldmUgaXQgYnkgaXNzdWluZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dW5peCAmZ3Q7IHN3aWcgLXBlcmw1IC1jbyBteXNjcmlwdC5wbAotbXlzY3JpcHQucGwgY2hlY2tlZCBvdXQgZnJvbSB0aGUgU1dJRyBsaWJyYXJ5Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVN1cHBvcnQgZmlsZXMgY2FuIGFsc28gYmUgY2hlY2tlZCBvdXQgd2l0aGluIGFuIGludGVyZmFjZSBmaWxlIHVzaW5nIHRoZSA8dHQ+JWNoZWNrb3V0PC90dD4gZGlyZWN0aXZlLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVjaGVja291dCBteXNjcmlwdC5wbAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHdpbGwgYXR0ZW1wdCB0byBjb3B5IHRoZSBmaWxlIDx0dD5teXNjcmlwdC5wbDwvdHQ+IHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGVuIFNXSUcgaXMgcnVuLiBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cywgbm90aGluZyBpcyBkb25lLjxwPgotPGEgbmFtZT0ibjE2Ij48L2E+PGgzPiBUaGUgd29ybGQncyBmYXN0ZXN0IHdheSB0byB3cml0ZSBhIE1ha2VmaWxlPC9oMz4KLVNpbmNlIHRoZSBTV0lHIGxpYnJhcnkgaXMgbm90IHJlc3RyaWN0ZWQgdG8gU1dJRyBpbnRlcmZhY2UgZmlsZXMsIGl0IGNhbiBiZSB1c2VkIHRvIGhvbGQgb3RoZXIga2luZHMgb2YgdXNlZnVsIGZpbGVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IG5lZWQgYSBxdWljayBNYWtlZmlsZSBmb3IgYnVpbGRpbmcgVGNsIGV4dGVuc2lvbnMsIHR5cGUgdGhlIGZvbGxvd2luZzo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci11bml4Jmd0OyBzd2lnIC10Y2wgLWNvIE1ha2VmaWxlCi1NYWtlZmlsZSBjaGVja2VkIG91dCBmcm9tIHRoZSBTV0lHIGxpYnJhcnkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRHVyaW5nIGluc3RhbGxhdGlvbiwgU1dJRyBjcmVhdGVzIGEgY29sbGVjdGlvbiBvZiBwcmVjb25maWd1cmVkIE1ha2VmaWxlcyBmb3IgdmFyaW91cyBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiBJZiB5b3UgbmVlZCB0byBtYWtlIGEgbmV3IG1vZHVsZSwganVzdCBjaGVjayBvdXQgb25lIG9mIHRoZXNlIE1ha2VmaWxlcywgbWFrZSBhIGZldyBjaGFuZ2VzLCBhbmQgeW91IHNob3VsZCBiZSByZWFkeSB0byBjb21waWxlIGFuZCBleHRlbnNpb24gZm9yIHlvdXIgc3lzdGVtLjxwPgotPGEgbmFtZT0ibjE3Ij48L2E+PGgzPiBDaGVja2luZyBpbiBsaWJyYXJ5IGZpbGVzPC9oMz4KLUl0IGlzIGFsc28gcG9zc2libGUgdG8gY2hlY2sgZmlsZXMgaW50byB0aGUgU1dJRyBsaWJyYXJ5LiBJZiB5b3UndmUgbWFkZSBhbiBpbnRlcmVzdGluZyBpbnRlcmZhY2UgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBrZWVwIGFyb3VuZCwgc2ltcGx5IHR5cGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVuaXggJmd0OyBzd2lnIC1jaSAtcHl0aG9uIGNvb2wuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1hbmQgdGhlIGZpbGUgYDx0dD5jb29sLmk8L3R0Picgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIFB5dGhvbiBzZWN0aW9uIG9mIHRoZSBsaWJyYXJ5LiBJZiB5b3VyIGludGVyZmFjZSBmaWxlIGlzIGdlbmVyYWwgcHVycG9zZSwgeW91IGNhbiBpbnN0YWxsIGl0IGludG8gdGhlIGdlbmVyYWwgbGlicmFyeSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtY2kgLi4vY29vbC5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gZmlsZXMgYXJlIGNoZWNrZWQgaW4sIHRoZXkgYXJlIHBsYWNlZCBpbnRvIHRoZSBkaXJlY3RvcnkgZGVmaW5lZCBieSB0aGUgPHR0PlNXSUdfTElCPC90dD4gdmFyaWFibGUgdGhhdCB3YXMgdXNlZCBkdXJpbmcgU1dJRyBjb21waWxhdGlvbiBvciB0aGUgPHR0PlNXSUdfTElCPC90dD4gZW52aXJvbm1lbnQgdmFyaWFibGUgKGlmIHNldCkuIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMsIHR5cGUgdGhlIGZvbGxvd2luZyB0byBkaXNwbGF5IGl0cyBsb2NhdGlvbi48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtc3dpZ2xpYgotL3Vzci9sb2NhbC9saWIvc3dpZ19saWIKLXVuaXggJmd0OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiBvcmRlciB0byBjaGVjayBmaWxlcyBpbnRvIHRoZSBsaWJyYXJ5LCB5b3UgbXVzdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gb24gdGhlIGxpYnJhcnkgZGlyZWN0b3J5LiBGb3IgdGhpcyByZWFzb24sIG9uZSBvZiB0aGUgcHJpbWFyeSB1c2VzIGZvciB0aGUgPHR0Pi1jaTwvdHQ+IG9wdGlvbiBpcyB0byBwcm92aWRlIGEgc2ltcGxlIG1lY2hhbmlzbSBmb3IgaW5zdGFsbGluZyBTV0lHIGV4dGVuc2lvbnMuIElmIHRoZXNlIGV4dGVuc2lvbnMgbmVlZCB0byBpbnN0YWxsIGxpYnJhcnkgZmlsZXMsIHRoYXQgY2FuIGJlIGRvbmUgYnkgc2ltcGx5IHJ1bm5pbmcgU1dJRy48cD4KLTxhIG5hbWU9Im45Ij48L2E+PGgyPiBTdGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgbXVsdGlwbGUgbW9kdWxlczwvaDI+Ci1XaGVuIHVzaW5nIHN0YXRpYyBsaW5raW5nLCBzb21lIGxhbmd1YWdlIG1vZHVsZXMgYWxsb3cgbXVsdGlwbGUgbW9kdWxlcyB0byBiZSBpbml0aWFsaXplZCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIHBhY2thZ2UsIGVxdWF0aW9ucywgZ3JhcGhpY3MsIGZpbGVpbywgZGF0YSwgbmV0d29yaywgdXNlcgotCi0uLi4gTW9yZSBkZWNsYXJhdGlvbnMgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBtb2R1bGUgbGlzdCBjYW4gY29udGFpbiBTV0lHIGdlbmVyYXRlZCBtb2R1bGVzIG9yIHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucy4gUmVmZXIgdG8gdGhlIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGNoYXB0ZXIgZm9yIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhpcyBmZWF0dXJlLjxwPgotPGEgbmFtZT0ibjEwIj48L2E+PGgyPiBNb3JlIGFib3V0IHRoZSBTV0lHIGxpYnJhcnk8L2gyPgotRnVsbCBkb2N1bWVudGF0aW9uIGFib3V0IHRoZSBTV0lHIGxpYnJhcnkgaXMgaW5jbHVkZWQgaW4gdGhlIFNXSUcgc291cmNlIGRpc3RyaWJ1dGlvbi4gSW4gZmFjdCwgdGhlIGRvY3VtZW50YXRpb24gaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgU1dJRywgd2hpY2ggbGVhZHMgdXMgdG8gdGhlIG5leHQgc2VjdGlvbi4uLjxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0Njo1NCAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9QZXJsNS5odG1sIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9QZXJsNS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZGNhZmI4Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvUGVybDUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5MTkgKzAsMCBAQAotPCEtLSBQdWJsaXNoZWQgYnkgUXVhZHJhbGF5IFdlYldvcmtzIEhUTUwgTGl0ZSAxLjUuMSAtLT4KLTwhLS0gQW5kIG11bmdlZCBieSBEYXZlJ3Mgc3BlY2lhbCBQeXRob24gc2NyaXB0IC0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TV0lHIGFuZCBQZXJsNTwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+OCBTV0lHIGFuZCBQZXJsNTwvaDE+PHA+PHVsPgotPGxpPiA8YSBocmVmPSIjbjEiPlByZWxpbWluYXJpZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMiI+QnVpbGRpbmcgUGVybCBFeHRlbnNpb25zIHVuZGVyIFdpbmRvd3MgOTUvTlQ8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+TW9kdWxlcywgcGFja2FnZXMsIGFuZCBjbGFzc2VzPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPkJhc2ljIFBlcmwgaW50ZXJmYWNlPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPkEgc2ltcGxlIFBlcmwgZXhhbXBsZTwvYT4KLTxsaT4gPGEgaHJlZj0iI242Ij5BY2Nlc3NpbmcgYXJyYXlzIGFuZCBvdGhlciBzdHJhbmdlIG9iamVjdHM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNyI+SW1wbGVtZW50aW5nIG1ldGhvZHMgaW4gUGVybDwvYT4KLTxsaT4gPGEgaHJlZj0iI244Ij5TaGFkb3cgY2xhc3NlczwvYT4KLTxsaT4gPGEgaHJlZj0iI245Ij5HZXR0aW5nIHNlcmlvdXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTAiPldyYXBwaW5nIEMgbGlicmFyaWVzIGFuZCBvdGhlciBwYWNrYWdlczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMSI+QnVpbGRpbmcgYSBQZXJsNSBpbnRlcmZhY2UgdG8gTUFUTEFCPC9hPgotPGxpPiA8YSBocmVmPSIjbjEyIj5IYW5kbGluZyBvdXRwdXQgdmFsdWVzICh0aGUgZWFzeSB3YXkpPC9hPgotPGxpPiA8YSBocmVmPSIjbjEzIj5FeGNlcHRpb24gaGFuZGxpbmc8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTQiPlJlbWFwcGluZyBkYXRhdHlwZXMgd2l0aCB0eXBlbWFwczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xNSI+VGhlIGdvcnkgZGV0YWlscyBvbiBzaGFkb3cgY2xhc3NlczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xNiI+V2hlcmUgdG8gZ28gZnJvbSBoZXJlPzwvYT4KLTwvdWw+Ci0KLUluIHRoaXMgY2hhcHRlciwgd2UgZGlzY3VzcyBTV0lHJ3Mgc3VwcG9ydCBvZiBQZXJsNS4gV2hpbGUgdGhlIFBlcmw1IG1vZHVsZSBpcyBvbmUgb2YgdGhlIGVhcmxpZXN0IFNXSUcgbW9kdWxlcywgaXQgaGFzIGNvbnRpbnVlZCB0byBldm9sdmUgYW5kIGhhcyBiZWVuIGltcHJvdmVkIGdyZWF0bHkgd2l0aCB0aGUgaGVscCBvZiBTV0lHIHVzZXJzLiBGb3IgdGhlIGJlc3QgcmVzdWx0cywgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCBTV0lHIGJlIHVzZWQgd2l0aCBQZXJsNS4wMDMgb3IgbGF0ZXIuIEVhcmxpZXIgdmVyc2lvbnMgYXJlIHByb2JsZW1hdGljIGFuZCBTV0lHIGdlbmVyYXRlZCBleHRlbnNpb25zIG1heSBub3QgY29tcGlsZSBvciBydW4gY29ycmVjdGx5LjxwPgotPGEgbmFtZT0ibjEiPjwvYT48aDI+IFByZWxpbWluYXJpZXM8L2gyPgotSW4gb3JkZXIgZm9yIHRoaXMgc2VjdGlvbiB0byBtYWtlIG11Y2ggc2Vuc2UsIHlvdSB3aWxsIG5lZWQgdG8gaGF2ZSBQZXJsNS4wMDIgKG9yIGxhdGVyKSBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0uIFlvdSBzaG91bGQgYWxzbyBkZXRlcm1pbmUgaWYgeW91ciB2ZXJzaW9uIG9mIFBlcmwgaGFzIGJlZW4gY29uZmlndXJlZCB0byB1c2UgZHluYW1pYyBsb2FkaW5nIG9yIG5vdC4gU1dJRyB3aWxsIHdvcmsgd2l0aCBvciB3aXRob3V0IGl0LCBidXQgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3Mgd2lsbCBiZSBkaWZmZXJlbnQuPHA+Ci08YSBuYW1lPSJuMTciPjwvYT48aDM+IFJ1bm5pbmcgU1dJRzwvaDM+Ci1UbyBidWlsZCBhIFBlcmw1IG1vZHVsZSwgcnVuIHN3aWcgdXNpbmcgdGhlIDx0dD4tcGVybDU8L3R0PiBvcHRpb24gYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotc3dpZyAtcGVybDUgZXhhbXBsZS5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgd2lsbCBwcm9kdWNlIDMgZmlsZXMuIFRoZSBmaXJzdCBmaWxlLCA8dHQ+ZXhhbXBsZV93cmFwLmM8L3R0PiBjb250YWlucyBhbGwgb2YgdGhlIEMgY29kZSBuZWVkZWQgdG8gYnVpbGQgYSBQZXJsNSBtb2R1bGUuIFRoZSBzZWNvbmQgZmlsZSwgPHR0PmV4YW1wbGUucG08L3R0PiBjb250YWlucyBzdXBwb3J0aW5nIFBlcmwgY29kZSBuZWVkZWQgdG8gcHJvcGVybHkgbG9hZCB0aGUgbW9kdWxlIGludG8gUGVybC4gVGhlIHRoaXJkIGZpbGUgd2lsbCBiZSBhIGRvY3VtZW50YXRpb24gZmlsZSAodGhlIGV4YWN0IGZpbGVuYW1lIGRlcGVuZHMgb24gdGhlIGRvY3VtZW50YXRpb24gc3R5bGUpLiBUbyBmaW5pc2ggYnVpbGRpbmcgYSBtb2R1bGUsIHlvdSB3aWxsIG5lZWQgdG8gY29tcGlsZSB0aGUgZmlsZSA8dHQ+ZXhhbXBsZV93cmFwLmM8L3R0PiBhbmQgbGluayBpdCB3aXRoIHRoZSByZXN0IG9mIHlvdXIgcHJvZ3JhbSAoYW5kIHBvc3NpYmx5IFBlcmwgaXRzZWxmKS4gVGhlcmUgYXJlIHNldmVyYWwgbWV0aG9kcyBmb3IgZG9pbmcgdGhpcy48cD4KLTxhIG5hbWU9Im4xOCI+PC9hPjxoMz4gR2V0dGluZyB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzPC9oMz4KLUluIG9yZGVyIHRvIGNvbXBpbGUsIHlvdSB3aWxsIG5lZWQgdG8gdXNlIHRoZSBmb2xsb3dpbmcgUGVybDUgaGVhZGVyIGZpbGVzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0jaW5jbHVkZSAiRXh0ZXJuLmgiCi0jaW5jbHVkZSAicGVybC5oIgotI2luY2x1ZGUgIlhTVUIuaCIKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlc2UgYXJlIHVzdWFsbHkgbG9jYXRlZCBpbiBhIGRpcmVjdG9yeSBsaWtlIHRoaXM8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vdXNyL2xvY2FsL2xpYi9wZXJsNS9hcmNoLW9zbmFtZS81LjAwMy9DT1JFCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBTV0lHIGNvbmZpZ3VyYXRpb24gc2NyaXB0IHdpbGwgdHJ5IHRvIGZpbmQgdGhpcyBkaXJlY3RvcnksIGJ1dCBpdCdzIG5vdCBlbnRpcmVseSBmb29scHJvb2YuIFlvdSBtYXkgaGF2ZSB0byBkaWcgYXJvdW5kIHlvdXJzZWxmLjxwPgotPGEgbmFtZT0ibjE5Ij48L2E+PGgzPiBDb21waWxpbmcgYSBkeW5hbWljIG1vZHVsZTwvaDM+Ci1UbyBjb21waWxlIGEgZHluYW1pY2FsbHkgbG9hZGFibGUgbW9kdWxlLCB5b3Ugd2lsbCBuZWVkIHRvIGRvIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcsIDxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSUgZ2NjIGV4YW1wbGUuYwotJSBnY2MgZXhhbXBsZV93cmFwLmMgLUkvdXNyL2xvY2FsL2xpYi9wZXJsNS9hcmNoLW9zbmFtZS81LjAwMy9DT1JFIAotCS1EYm9vbD1jaGFyIC1jCi0lIGxkIC1zaGFyZWQgZXhhbXBsZS5vIGV4YW1wbGVfd3JhcC5vIC1vIGV4YW1wbGUuc28gICAgIyBJcml4Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBuYW1lIG9mIHRoZSBzaGFyZWQgb2JqZWN0IGZpbGUgbXVzdCBtYXRjaCB0aGUgbW9kdWxlIG5hbWUgdXNlZCBpbiB0aGUgU1dJRyBpbnRlcmZhY2UgZmlsZS4gSWYgeW91IHVzZWQgYDx0dD4lbW9kdWxlIGV4YW1wbGU8L3R0PicsIHRoZW4gdGhlIHRhcmdldCBzaG91bGQgYmUgbmFtZWQgYDx0dD5leGFtcGxlLnNvPC90dD4nLCBgPHR0PmV4YW1wbGUuc2w8L3R0PicsIG9yIHRoZSBhcHByb3ByaWF0ZSBuYW1lIG9uIHlvdXIgc3lzdGVtIChjaGVjayB0aGUgbWFuIHBhZ2VzIGZvciB0aGUgbGlua2VyKS48cD4KLTxwPgotVW5mb3J0dW5hdGVseSwgdGhlIHByb2Nlc3Mgb2YgYnVpbGRpbmcgZHluYW1pYyBtb2R1bGVzIHZhcmllcyBvbiBldmVyeSBzaW5nbGUgbWFjaGluZS4gQm90aCB0aGUgQyBjb21waWxlciBhbmQgbGlua2VyIG1heSBuZWVkIHNwZWNpYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMuIFNXSUcgdHJpZXMgdG8gZ3Vlc3MgaG93IHRvIGJ1aWxkIGR5bmFtaWMgbW9kdWxlcyBvbiB5b3VyIG1hY2hpbmUgaW4gb3JkZXIgdG8gcnVuIGl0cyBleGFtcGxlIHByb2dyYW1zLiBBZ2FpbiwgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgaXNuJ3QgZm9vbHByb29mIC48cD4KLTxhIG5hbWU9Im4yMCI+PC9hPjxoMz4gQnVpbGRpbmcgYSBkeW5hbWljIG1vZHVsZSB3aXRoIE1ha2VNYWtlcjwvaDM+Ci1JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSBQZXJsIHRvIGJ1aWxkIGR5bmFtaWNhbGx5IGxvYWRhYmxlIG1vZHVsZXMgZm9yIHlvdSB1c2luZyB0aGUgTWFrZU1ha2VyIHV0aWxpdHkuICAgIFRvIGRvIHRoaXMsIHdyaXRlIGEgc2ltcGxlIFBlcmwgc2NyaXB0IHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBGaWxlIDogTWFrZWZpbGUuUEwKLXVzZSBFeHRVdGlsczo6TWFrZU1ha2VyOwotV3JpdGVNYWtlZmlsZSgKLQlgTkFNRScgICAgPSZndDsgYGV4YW1wbGUnLCAgICAgICAgICAgICAgICAgICMgTmFtZSBvZiBwYWNrYWdlCi0JYExJQlMnICAgID0mZ3Q7IFtgLWxtJ10sICAgICAgICAgICAgICAgICAgICAjIE5hbWUgb2YgY3VzdG9tIGxpYnJhcmllcwotCWBPQkpFQ1QnICA9Jmd0OyBgZXhhbXBsZS5vIGV4YW1wbGVfd3JhcC5vJyAgIyBPYmplY3QgZmlsZXMKLSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgdG8gYnVpbGQgYSBtb2R1bGUsIHNpbXBseSBmb2xsb3cgdGhlc2Ugc3RlcHMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgcGVybCBNYWtlZmlsZS5QTAotJSBtYWtlCi0lIG1ha2UgaW5zdGFsbAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIGlzIHRoZSBwcmVmZXJyZWQgYXBwcm9hY2ggaWYgeW91IGJ1aWxkaW5nIGdlbmVyYWwgcHVycG9zZSBQZXJsNSBtb2R1bGVzIGZvciBkaXN0cmlidXRpb24uICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IE1ha2VNYWtlciBjYW4gYmUgZm91bmQgaW4gIlByb2dyYW1taW5nIFBlcmwsIDJuZCBlZC4iIGJ5IExhcnJ5IFdhbGwsIFRvbSBDaHJpc3RpYW5zZW4sIGFuZCBSYW5kYWwgU2Nod2FydHouPHA+Ci08YSBuYW1lPSJuMjEiPjwvYT48aDM+IEJ1aWxkaW5nIGEgc3RhdGljIHZlcnNpb24gb2YgUGVybDwvaDM+Ci1JZiB5b3UgbWFjaGluZSBkb2VzIG5vdCBzdXBwb3J0IGR5bmFtaWMgbG9hZGluZywgb3IgaWYgeW91J3ZlIHRyaWVkIHRvIHVzZSBpdCB3aXRob3V0IHN1Y2Nlc3MsIHlvdSBjYW4gYnVpbGQgYSBuZXcgdmVyc2lvbiBvZiB0aGUgUGVybCBpbnRlcnByZXRlciB3aXRoIHlvdXIgU1dJRyBleHRlbnNpb25zIGFkZGVkIHRvIGl0LiBUbyBidWlsZCBhIHN0YXRpYyBleHRlbnNpb24sIHlvdSBmaXJzdCBuZWVkIHRvIGludm9rZSBTV0lHIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtcGVybDUgLXN0YXRpYyBleGFtcGxlLmkKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQnkgZGVmYXVsdCBTV0lHIGluY2x1ZGVzIGNvZGUgZm9yIGR5bmFtaWMgbG9hZGluZywgYnV0IHRoZSA8dHQ+LXN0YXRpYzwvdHQ+IG9wdGlvbiB0YWtlcyBpdCBvdXQuPHA+Ci08cD4KLU5leHQsIHlvdSB3aWxsIG5lZWQgdG8gc3VwcGx5IGEgPHR0Pm1haW4oKTwvdHQ+IGZ1bmN0aW9uIHRoYXQgaW5pdGlhbGl6ZXMgeW91ciBleHRlbnNpb24gYW5kIHN0YXJ0cyB0aGUgUGVybCBpbnRlcnByZXRlci4gV2hpbGUsIHRoaXMgbWF5IHNvdW5kIGRhdW50aW5nLCBTV0lHIGNhbiBkbyB0aGlzIGZvciB5b3UgYXV0b21hdGljYWxseSBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0lbW9kdWxlIGV4YW1wbGUKLQotZXh0ZXJuIGRvdWJsZSBNeV92YXJpYWJsZTsKLWV4dGVybiBpbnQgZmFjdChpbnQpOwotCi0vLyBJbmNsdWRlIGNvZGUgZm9yIHJlYnVpbGRpbmcgUGVybAotJWluY2x1ZGUgcGVybG1haW4uaQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgc2FtZSB0aGluZyBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IHJ1bm5pbmcgU1dJRyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXBlcmw1IC1zdGF0aWMgLWxwZXJsbWFpbi5pIGV4YW1wbGUuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PnBlcm1haW4uaTwvdHQ+IGZpbGUgaW5zZXJ0cyBQZXJsJ3MgPHR0Pm1haW4oKTwvdHQ+IGZ1bmN0aW9uIGludG8gdGhlIHdyYXBwZXIgY29kZSBhbmQgYXV0b21hdGljYWxseSBpbml0aWFsaXplcyB0aGUgU1dJRyBnZW5lcmF0ZWQgbW9kdWxlLiBJZiB5b3UganVzdCB3YW50IHRvIG1ha2UgYSBxdWljayBhIGRpcnR5IG1vZHVsZSwgdGhpcyBtYXkgYmUgdGhlIGVhc2llc3Qgd2F5LiBCeSBkZWZhdWx0LCB0aGUgPHR0PnBlcmxtYWluLmk8L3R0PiBjb2RlIGRvZXMgbm90IGluaXRpYWxpemUgYW55IG90aGVyIFBlcmwgZXh0ZW5zaW9ucy4gSWYgeW91IG5lZWQgdG8gdXNlIG90aGVyIHBhY2thZ2VzLCB5b3Ugd2lsbCBuZWVkIHRvIG1vZGlmeSBpdCBhcHByb3ByaWF0ZWx5LiBZb3UgY2FuIGRvIHRoaXMgYnkganVzdCBjb3B5aW5nIDx0dD5wZXJsbWFpbi5pPC90dD4gb3V0IG9mIHRoZSBTV0lHIGxpYnJhcnksIHBsYWNpbmcgaXQgaW4geW91ciBvd24gZGlyZWN0b3J5LCAgYW5kIG1vZGlmeWluZyBpdCB0byBzdWl0IHlvdXIgcHVycG9zZXMuPHA+Ci08cD4KLVRvIGJ1aWxkIHlvdXIgbmV3IFBlcmwgZXhlY3V0YWJsZSwgZm9sbG93IHRoZSBleGFjdCBzYW1lIHByb2NlZHVyZSBhcyBmb3IgYSBkeW5hbWljIG1vZHVsZSwgYnV0IGNoYW5nZSB0aGUgbGluayBsaW5lIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSUgbGQgZXhhbXBsZS5vIGV4YW1wbGVfd3JhcC5vIC1ML3Vzci9sb2NhbC9saWIvcGVybDUvYXJjaC81LjAwMy9DT1JFIFwKLQktbHBlcmwgLWxzb2NrZXQgLWxuc2wgLWxtIC1vIG15cGVybAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIHdpbGwgcHJvZHVjZSBhIG5ldyB2ZXJzaW9uIG9mIFBlcmwgY2FsbGVkIDx0dD5teXBlcmw8L3R0Pi4gSXQgc2hvdWxkIGJlIGZ1bmN0aW9uYWxpdHkgaWRlbnRpY2FsIHRvIFBlcmwgd2l0aCB5b3VyIEMvQysrIGV4dGVuc2lvbiBhZGRlZCB0byBpdC4gIERlcGVuZGluZyBvbiB5b3VyIG1hY2hpbmUsIHlvdSBtYXkgbmVlZCB0byBsaW5rIHdpdGggYWRkaXRpb25hbCBsaWJyYXJpZXMgc3VjaCBhcyA8dHQ+LWxzb2NrZXQsIC1sbnNsLCAtbGRsPC90dD4sIGV0Yy4uLjxwPgotPGEgbmFtZT0ibjIyIj48L2E+PGgzPiBDb21waWxhdGlvbiBwcm9ibGVtcyBhbmQgY29tcGlsaW5nIHdpdGggQysrPC9oMz4KLUluIHNvbWUgY2FzZXMsIHlvdSBtYXkgZ2V0IGFsb3Qgb2YgZXJyb3IgbWVzc2FnZXMgYWJvdXQgdGhlIGA8dHQ+Ym9vbDwvdHQ+JyBkYXRhdHlwZSB3aGVuIGNvbXBpbGluZyBhIFNXSUcgbW9kdWxlLiBJZiB5b3UgZXhwZXJpZW5jZSB0aGlzIHByb2JsZW0sIHlvdSBjYW4gdHJ5IHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08dWw+Ci08bGk+VXNlIDx0dD4tREhBU19CT09MPC90dD4gd2hlbiBjb21waWxpbmcgdGhlIFNXSUcgd3JhcHBlciBjb2RlCi08bGk+T3IgdXNlIDx0dD4tRGJvb2w9Y2hhcjwvdHQ+IHdoZW4gY29tcGlsaW5nLgotPC91bD4KLTxwPgotQ29tcGlsaW5nIGR5bmFtaWMgbW9kdWxlcyBmb3IgQysrIGlzIGFsc28gYSB0cmlja3kgYnVzaW5lc3MuICBXaGVuIGNvbXBpbGluZyBDKysgbW9kdWxlcywgeW91IG1heSBuZWVkIHRvIGxpbmsgdXNpbmcgdGhlIEMrKyBjb21waWxlciBzdWNoIGFzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci11bml4ICZndDsgYysrIC1zaGFyZWQgZXhhbXBsZV93cmFwLm8gZXhhbXBsZS5vIC1vIGV4YW1wbGUuc28KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSXQgbWF5IGFsc28gYmUgbmVjZXNzYXJ5IHRvIGxpbmsgYWdhaW5zdCB0aGUgPHR0PmxpYmdjYy5hPC90dD4sIDx0dD5saWJnKysuYTwvdHQ+LCBhbmQgPHR0PmxpYnN0ZGMrKy5hPC90dD4gbGlicmFyaWVzIChhc3N1bWluZyBnKyspLiBDKysgbWF5IGFsc28gY29tcGxhaW4gYWJvdXQgb25lIGxpbmUgaW4gdGhlIFBlcmwgaGVhZGVyIGZpbGUgIjx0dD5wZXJsLmg8L3R0PiIgYW5kIHRoZSBpbnZhbGlkIHVzZSBvZiB0aGUgImV4cGxpY2l0IiBrZXl3b3JkLiBUbyB3b3JrIGFyb3VuZCB0aGlzIHByb2JsZW0sIHB1dCB0aGUgb3B0aW9uIDx0dD4tRGV4cGxpY2l0PTwvdHQ+IGluIHlvdXIgY29tcGlsZXIgZmxhZ3MuPHA+Ci08cD4KLUlmIGFsbCBlbHNlIGZhaWxzLCBwdXQgb24geW91ciB3aXphcmQgY2FwIGFuZCBzdGFydCBsb29raW5nIGFyb3VuZCBpbiB0aGUgaGVhZGVyIGZpbGVzLiAgT25jZSB5b3UndmUgZmlndXJlZCBvdXQgaG93IHRvIGdldCBvbmUgbW9kdWxlIHRvIGNvbXBpbGUsIHlvdSBjYW4gY29tcGlsZSBqdXN0IGFib3V0IGFsbCBvdGhlciBtb2R1bGVzLjxwPgotPGEgbmFtZT0ibjIiPjwvYT48aDI+IEJ1aWxkaW5nIFBlcmwgRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9oMj4KLUJ1aWxkaW5nIGEgU1dJRyBleHRlbnNpb24gdG8gUGVybCB1bmRlciBXaW5kb3dzIDk1L05UIGlzIHJvdWdobHkgc2ltaWxhciB0byB0aGUgcHJvY2VzcyB1c2VkIHdpdGggVW5peC4gICBOb3JtYWxseSwgeW91IHdpbGwgd2FudCB0byBwcm9kdWNlIGEgRExMIHRoYXQgY2FuIGJlIGxvYWRlZCBpbnRvIHRoZSBQZXJsIGludGVycHJldGVyLiAgICBUaGlzIHNlY3Rpb24gYXNzdW1lcyB5b3UgYXJlIHVzaW5nIFNXSUcgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIEMrKyA0LnggYWx0aG91Z2ggdGhlIHByb2NlZHVyZSBtYXkgYmUgc2ltaWxhciB3aXRoIG90aGVyIGNvbXBpbGVycy4gICBTV0lHIGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgQWN0aXZlV2FyZSBQZXJsIGZvciBXaW4zMiBwb3J0IGFuZCBQZXJsIDUuMDA0LiAgSWYgdXNpbmcgdGhlIEFjdGl2ZVdhcmUgdmVyc2lvbiwgYWxsIFBlcmwgZXh0ZW5zaW9ucyBtdXN0IGJlIGNvbXBpbGVkIHVzaW5nIEMrKyE8cD4KLTxhIG5hbWU9Im4yMyI+PC9hPjxoMz4gUnVubmluZyBTV0lHIGZyb20gRGV2ZWxvcGVyIFN0dWRpbzwvaDM+Ci1JZiB5b3UgYXJlIGRldmVsb3BpbmcgeW91ciBhcHBsaWNhdGlvbiB3aXRoaW4gTWljcm9zb2Z0IGRldmVsb3BlciBzdHVkaW8sIFNXSUcgY2FuIGJlIGludm9rZWQgYXMgYSBjdXN0b20gYnVpbGQgb3B0aW9uLiAgICAgIFRoZSBwcm9jZXNzIHJvdWdobHkgcmVxdWlyZXMgdGhlc2Ugc3RlcHMgOjxwPgotPHA+Ci08dWw+Ci08bGk+T3BlbiB1cCBhIG5ldyB3b3Jrc3BhY2UgYW5kIHVzZSB0aGUgQXBwV2l6YXJkIHRvIHNlbGVjdCBhIERMTCBwcm9qZWN0LgotPGxpPkFkZCBib3RoIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlICh0aGUgLmkgZmlsZSksIGFueSBzdXBwb3J0aW5nIEMgZmlsZXMsIGFuZCB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlciBmaWxlIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGJ5IFNXSUcgKGllLiA8dHQ+ZXhhbXBsZV93cmFwLmM8L3R0PikuICAgTm90ZSA6IElmIHVzaW5nIEMrKywgY2hvb3NlIGEgZGlmZmVyZW50IHN1ZmZpeCBmb3IgdGhlIHdyYXBwZXIgZmlsZSBzdWNoIGFzIDx0dD5leGFtcGxlX3dyYXAuY3h4PC90dD4uIERvbid0IHdvcnJ5IGlmIHRoZSB3cmFwcGVyIGZpbGUgZG9lc24ndCBleGlzdCB5ZXQtLURldmVsb3BlciBzdHVkaW8gd2lsbCBrZWVwIGEgcmVmZXJlbmNlIHRvIGl0IGFyb3VuZC4KLTxsaT5TZWxlY3QgdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgYW5kIGdvIHRvIHRoZSBzZXR0aW5ncyBtZW51LiAgIFVuZGVyIHNldHRpbmdzLCBzZWxlY3QgdGhlICJDdXN0b20gQnVpbGQiIG9wdGlvbi4KLTxsaT5FbnRlciAiU1dJRyIgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkLgotPGxpPkVudGVyICI8dHQ+c3dpZyAtcGVybDUgLW8gJChQcm9qRGlyKVwkKElucHV0TmFtZSlfd3JhcC5jeHggJChJbnB1dFBhdGgpPC90dD4iIGluIHRoZSAiQnVpbGQgY29tbWFuZChzKSBmaWVsZCIKLTxsaT5FbnRlciAiPHR0PiQoUHJvakRpcilcJChJbnB1dE5hbWUpX3dyYXAuYzwvdHQ+eHgiIGluIHRoZSAiT3V0cHV0IGZpbGVzKHMpIGZpZWxkIi4KLTxsaT5OZXh0LCBzZWxlY3QgdGhlIHNldHRpbmdzIGZvciB0aGUgZW50aXJlIHByb2plY3QgYW5kIGdvIHRvICJDKys6UHJlcHJvY2Vzc29yIi4gQWRkIHRoZSBpbmNsdWRlIGRpcmVjdG9yaWVzIGZvciB5b3VyIFBlcmwgNSBpbnN0YWxsYXRpb24gdW5kZXIgIkFkZGl0aW9uYWwgaW5jbHVkZSBkaXJlY3RvcmllcyIuCi08bGk+RGVmaW5lIHRoZSBzeW1ib2xzIFdJTjMyIGFuZCBNU1dJTjMyIHVuZGVyIHByZXByb2Nlc3NvciBvcHRpb25zLiAgSWYgdXNpbmcgdGhlIEFjdGl2ZVdhcmUgcG9ydCwgYWxzbyBkZWZpbmUgdGhlIHN5bWJvbCBQRVJMX09CSkVDVC4gICBOb3RlIHRoYXQgYWxsIGV4dGVuc2lvbnMgdG8gdGhlIEFjdGl2ZVdhcmUgcG9ydCBtdXN0IGJlIGNvbXBpbGVkIHdpdGggdGhlIEMrKyBjb21waWxlciBzaW5jZSBQZXJsIGhhcyBiZWVuIGVuY2Fwc3VsYXRlZCBpbiBhIEMrKyBjbGFzcy4KLTxsaT5GaW5hbGx5LCBzZWxlY3QgdGhlIHNldHRpbmdzIGZvciB0aGUgZW50aXJlIHByb2plY3QgYW5kIGdvIHRvICJMaW5rIE9wdGlvbnMiLiAgQWRkIHRoZSBQZXJsIGxpYnJhcnkgIGZpbGUgdG8geW91ciBsaW5rIGxpYnJhcmllcy4gIEZvciBleGFtcGxlICJwZXJsLmxpYiIuICBBbHNvLCBzZXQgdGhlIG5hbWUgb2YgdGhlIG91dHB1dCBmaWxlIHRvIG1hdGNoIHRoZSBuYW1lIG9mIHlvdXIgUGVybCBtb2R1bGUgKGllLiBleGFtcGxlLmRsbCkuCi08bGk+QnVpbGQgeW91ciBwcm9qZWN0LgotPC91bD4KLTxwPgotTm93LCBhc3N1bWluZyBhbGwgd2VudCB3ZWxsLCBTV0lHIHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnZva2VkIHdoZW4geW91IGJ1aWxkIHlvdXIgcHJvamVjdC4gIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGludGVyZmFjZSBmaWxlIHdpbGwgcmVzdWx0IGluIFNXSUcgYmVpbmcgYXV0b21hdGljYWxseSBpbnZva2VkIHRvIHByb2R1Y2UgYSBuZXcgdmVyc2lvbiBvZiB0aGUgd3JhcHBlciBmaWxlLiAgVG8gcnVuIHlvdXIgbmV3IFBlcmwgZXh0ZW5zaW9uLCBzaW1wbHkgcnVuIFBlcmwgYW5kIHVzZSB0aGUgdXNlIGNvbW1hbmQgYXMgbm9ybWFsLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1ET1MgJmd0OyBwZXJsCi11c2UgZXhhbXBsZTsKLSRhID0gZXhhbXBsZTo6ZmFjdCg0KTsKLXByaW50ICIkYVxuIjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSXQgYXBwZWFycyB0aGF0IERMTCdzIHdpbGwgd29yayBpZiB0aGV5IGFyZSBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuICAgVG8gbWFrZSBhIGdlbmVyYWxseSBETEwgYXZhaWxhYmxlLCBpdCBzaG91bGQgYmUgcGxhY2UgKGFsb25nIHdpdGggaXRzIHN1cHBvcnQgZmlsZXMpIGluIHRoZSA8dHQ+TGliXEF1dG9cW21vZHVsZV0gPC90dD5zdWItZGlyZWN0b3J5IG9mIHRoZSBQZXJsIGRpcmVjdG9yeSB3aGVyZSBbbW9kdWxlXSBpcyB0aGUgbmFtZSBvZiB5b3VyIG1vZHVsZS48cD4KLTxhIG5hbWU9Im4yNCI+PC9hPjxoMz4gVXNpbmcgTk1BS0U8L2gzPgotQWx0ZXJuYXRpdmVseSwgU1dJRyBleHRlbnNpb25zIGNhbiBiZSBidWlsdCBieSB3cml0aW5nIGEgTWFrZWZpbGUgZm9yIE5NQUtFLiAgIFRvIGRvIHRoaXMsIG1ha2Ugc3VyZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBNU1ZDKysgYXJlIGF2YWlsYWJsZSBhbmQgdGhlIE1TVkMrKyB0b29scyBhcmUgaW4geW91ciBwYXRoLiAgIE5vdywganVzdCB3cml0ZSBhIHNob3J0IE1ha2VmaWxlIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBNYWtlZmlsZSBmb3IgYnVpbGRpbmcgYW4gQWN0aXZlV2FyZSBQZXJsIGZvciBXaW4zMiBleHRlbnNpb24KLSMgTm90ZSA6IEV4dGVuc2lvbnMgbXVzdCBiZSBjb21waWxlZCB3aXRoIHRoZSBDKysgY29tcGlsZXIhCi0KLVNSQ1MgICAgICAgICAgPSBleGFtcGxlLmN4eAotSUZJTEUgICAgICAgICA9IGV4YW1wbGUKLUlOVEVSRkFDRSAgICAgPSAkKElGSUxFKS5pCi1XUkFQRklMRSAgICAgID0gJChJRklMRSlfd3JhcC5jeHgKLQotIyBMb2NhdGlvbiBvZiB0aGUgVmlzdWFsIEMrKyB0b29scyAoMzIgYml0IGFzc3VtZWQpCi0KLVRPT0xTICAgICAgICAgPSBjOlxtc2RldgotVEFSR0VUICAgICAgICA9IGV4YW1wbGUuZGxsCi1DQyAgICAgICAgICAgID0gJChUT09MUylcYmluXGNsLmV4ZQotTElOSyAgICAgICAgICA9ICQoVE9PTFMpXGJpblxsaW5rLmV4ZQotSU5DTFVERTMyICAgICA9IC1JJChUT09MUylcaW5jbHVkZQotTUFDSElORSAgICAgICA9IElYODYKLQotIyBDIExpYnJhcnkgbmVlZGVkIHRvIGJ1aWxkIGEgRExMCi0KLURMTElCQyAgICAgICAgPSBtc3ZjcnQubGliIG9sZG5hbWVzLmxpYiAgCi0KLSMgV2luZG93cyBsaWJyYXJpZXMgdGhhdCBhcmUgYXBwYXJlbnRseSBuZWVkZWQKLVdJTkxJQiAgICAgICAgPSBrZXJuZWwzMi5saWIgYWR2YXBpMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIGNvbWRsZzMyLmxpYiAKLXdpbnNwb29sLmxpYgotCi0jIExpYnJhcmllcyBjb21tb24gdG8gYWxsIERMTHMKLUxJQlMgICAgICAgICAgPSAkKERMTElCQykgJChXSU5MSUIpIAotCi0jIExpbmtlciBvcHRpb25zCi1MT1BUICAgICAgPSAtZGVidWc6ZnVsbCAtZGVidWd0eXBlOmN2IC9OT0RFRkFVTFRMSUIgL1JFTEVBU0UgL05PTE9HTyAvCi1NQUNISU5FOiQoTUFDSElORSkgLWVudHJ5Ol9EbGxNYWluQ1JUU3RhcnR1cEAxMiAtZGxsCi0KLSMgQyBjb21waWxlciBmbGFncwotCi1DRkxBR1MgICAgICAgID0gL1o3IC9PZCAvYyAvVzMgL25vbG9nbwotCi0jIFBlcmwgNS4wMDQKLVBFUkxfSU5DTFVERSA9IC1JZDpccGVybDVcbGliXENPUkUKLVBFUkxMSUIgICAgICA9IGQ6XHBlcmw1XGxpYlxDT1JFXHBlcmwubGliCi1QRVJMRkxBR1MgICAgPSAvRFdJTjMyIC9ETVNXSU4zMiAvRFdJTjMySU9fSVNfU1RESU8KLQotIyBBY3RpdmVXYXJlCi1QRVJMX0lOQ0xVREUgID0gLUlkOlxwZXJsIC1JZDpccGVybFxpbmMgCi1QRVJMX0xJQiAgICAgICAgPSBkOlxwZXJsXFJlbGVhc2VccGVybDMwMC5saWIKLVBFUkxGTEFHUyA9IC9EV0lOMzIgL0RNU1dJTjMyIC9EUEVSTF9PQkpFQ1QKLQotcGVybDo6Ci0JLi5cLi5cc3dpZyAtcGVybDUgLW8gJChXUkFQRklMRSkgJChJTlRFUkZBQ0UpCi0JJChDQykgJChDRkxBR1MpICQoUEVSTEZMQUdTKSAkKFBFUkxfSU5DTFVERSkgJChTUkNTKSAkKFdSQVBGSUxFKQotCXNldCBMSUI9JChUT09MUylcbGliCi0JJChMSU5LKSAkKExPUFQpIC1vdXQ6ZXhhbXBsZS5kbGwgJChMSUJTKSAkKFBFUkxMSUIpIGV4YW1wbGUub2JqIAotZXhhbXBsZV93cmFwLm9iagotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UbyBidWlsZCB0aGUgZXh0ZW5zaW9uLCBydW4gTk1BS0UgKG5vdGUgdGhhdCB5b3UgbWF5IGJlIHRvIHJ1biA8dHQ+dmN2YXJzMzI8L3R0PiBiZWZvcmUgZG9pbmcgdGhpcyB0byBzZXQgdGhlIGNvcnJlY3QgZW52aXJvbm1lbnQgdmFyaWFibGVzKS4gVGhpcyBpcyBhIHNpbXBsaXN0aWMgTWFrZWZpbGUsIGJ1dCBob3BlZnVsbHkgaXRzIGVub3VnaCB0byBnZXQgeW91IHN0YXJ0ZWQuICAgPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gTW9kdWxlcywgcGFja2FnZXMsIGFuZCBjbGFzc2VzPC9oMj4KLVdoZW4geW91IGNyZWF0ZSBhIFNXSUcgZXh0ZW5zaW9uLCBldmVyeXRoaW5nIGdldHMgdGhyb3duIHRvZ2V0aGVyIGludG8gYSBzaW5nbGUgUGVybDUgbW9kdWxlLiBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIGlzIGRldGVybWluZWQgYnkgdGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlLiBUbyB1c2UgdGhlIG1vZHVsZSwgZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBwZXJsNQotdXNlIGV4YW1wbGU7ICAgICAgICAgICAgICAgICAgICAgICMgbG9hZCB0aGUgZXhhbXBsZSBtb2R1bGUKLXByaW50IGV4YW1wbGU6OmZhY3QoNCksIlxuIiAgICAgICAjIENhbGwgYSBmdW5jdGlvbiBpbiBpdAotMjQKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVXN1YWxseSwgYSBtb2R1bGUgY29uc2lzdHMgb2YgYSBjb2xsZWN0aW9uIG9mIGNvZGUgdGhhdCBpcyBjb250YWluZWQgd2l0aGluIGEgc2luZ2xlIGZpbGUuIEEgcGFja2FnZSwgb24gdGhlIG90aGVyIGhhbmQsIGlzIHRoZSBQZXJsIGVxdWl2YWxlbnQgb2YgYSBuYW1lc3BhY2UuIEEgcGFja2FnZSBpcyBhbG90IGxpa2UgYSBtb2R1bGUsIGV4Y2VwdCB0aGF0IGl0IGlzIGluZGVwZW5kZW50IG9mIGZpbGVzLiBBbnkgbnVtYmVyIG9mIGZpbGVzIG1heSBiZSBwYXJ0IG9mIHRoZSBzYW1lIHBhY2thZ2UtLW9yIGEgcGFja2FnZSBtYXkgYmUgYnJva2VuIHVwIGludG8gYSBjb2xsZWN0aW9uIG9mIG1vZHVsZXMgaWYgeW91IHByZWZlciB0byB0aGluayBhYm91dCBpdCBpbiB0aGlzIHdheS48cD4KLTxwPgotQnkgZGVmYXVsdCwgU1dJRyBpbnN0YWxscyBpdHMgZnVuY3Rpb25zIGludG8gYSBwYWNrYWdlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgbW9kdWxlLiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IGdpdmluZyBTV0lHIHRoZSAtcGFja2FnZSBvcHRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtcGVybDUgLXBhY2thZ2UgRm9vQmFyIGV4YW1wbGUuaQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiB0aGlzIGNhc2UsIHdlIHN0aWxsIGNyZWF0ZSBhIG1vZHVsZSBjYWxsZWQgYDx0dD5leGFtcGxlPC90dD4nLCBidXQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgaW4gdGhhdCBtb2R1bGUgd2lsbCBiZSBpbnN0YWxsZWQgaW50byB0aGUgcGFja2FnZSBgPHR0PkZvb0JhcjwvdHQ+LicgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVzZSBleGFtcGxlOyAgICAgICAgICAgICAgICAgICAgICAgIyBMb2FkIHRoZSBtb2R1bGUgbGlrZSBiZWZvcmUKLXByaW50IEZvb0Jhcjo6ZmFjdCg0KSwiXG4iOyAgICAgICAgIyBDYWxsIGEgZnVuY3Rpb24gaW4gcGFja2FnZSBGb29CYXIKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotUGVybCBzdXBwb3J0cyBvYmplY3Qgb3JpZW50ZWQgcHJvZ3JhbW1pbmcgdXNpbmcgcGFja2FnZXMuIEEgcGFja2FnZSBjYW4gYmUgdGhvdWdodCBvZiBhcyBhIG5hbWVzcGFjZSBmb3IgYSBjbGFzcyBjb250YWluaW5nIG1ldGhvZHMgYW5kIGRhdGEuIFRoZSByZWFkZXIgaXMgd2VsbCBhZHZpc2VkIHRvIGNvbnN1bHQgIlByb2dyYW1taW5nIFBlcmwsIDJuZCBFZC4iIGJ5IFdhbGwsIENocmlzdGlhbnNlbiwgYW5kIFNjaHdhcnR6IGZvciBtb3N0IG9mIHRoZSBnb3J5IGRldGFpbHMuIDxwPgotPGEgbmFtZT0ibjQiPjwvYT48aDI+IEJhc2ljIFBlcmwgaW50ZXJmYWNlPC9oMj4KLTxhIG5hbWU9Im4yNSI+PC9hPjxoMz4gRnVuY3Rpb25zPC9oMz4KLUMgZnVuY3Rpb25zIGFyZSBjb252ZXJ0ZWQgaW50byBuZXcgUGVybCBjb21tYW5kcyAob3Igc3Vicm91dGluZXMpLiBEZWZhdWx0L29wdGlvbmFsIGFyZ3VtZW50cyBhcmUgYWxzbyBhbGxvd2VkLiAgIEFuIGludGVyZmFjZSBmaWxlIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi1pbnQgZm9vKGludCBhKTsKLWRvdWJsZSBiYXIgKGRvdWJsZSwgZG91YmxlIGIgPSAzLjApOwotLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdpbGwgYmUgdXNlZCBpbiBQZXJsIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dXNlIGV4YW1wbGU7Ci0kYSA9ICZhbXA7ZXhhbXBsZTo6Zm9vKDIpOwotJGIgPSAmYW1wO2V4YW1wbGU6OmJhcigzLjUsLTEuNSk7Ci0kYyA9ICZhbXA7ZXhhbXBsZTo6YmFyKDMuNSk7ICAgICAgICAgICAgIyBVc2UgZGVmYXVsdCBhcmd1bWVudCBmb3IgMm5kIHBhcmFtZXRlcgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Pa2F5LCB0aGlzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuLi5lbm91Z2ggc2FpZC48cD4KLTxhIG5hbWU9Im4yNiI+PC9hPjxoMz4gR2xvYmFsIHZhcmlhYmxlczwvaDM+Ci1HbG9iYWwgdmFyaWFibGVzIGFyZSBoYW5kbGVkIHVzaW5nIHB1cmUgbWFnaWMtLXdlbGwsIFBlcmwncyBtYWdpYyB2YXJpYWJsZSBtZWNoYW5pc20gdGhhdCBpcy4gIEluIGEgbnV0c2hlbGwsIGl0IGlzIHBvc3NpYmxlIHRvIG1ha2UgY2VydGFpbiBQZXJsIHZhcmlhYmxlcyAibWFnaWNhbCIgYnkgYXR0YWNoaW5nIG1ldGhvZHMgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgdmFsdWVzIGFtb25nIG90aGVyIHRoaW5ncy4gICBTV0lHIGdlbmVyYXRlcyBhIHBhaXIgb2YgZnVuY3Rpb25zIGZvciBhY2Nlc3NpbmcgQyBnbG9iYWwgdmFyaWFibGVzIGFuZCBhdHRhY2hlcyB0aGVtIHRvIGEgUGVybCB2YXJpYWJsZSBvZiB0aGUgc2FtZSBuYW1lLiAgVGh1cywgYW4gaW50ZXJmYWNlIGxpa2UgdGhpcyA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGU7Ci0uLi4KLWRvdWJsZSBTcGFtOwotLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLWlzIGFjY2Vzc2VkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVzZSBleGFtcGxlOwotcHJpbnQgJGV4YW1wbGU6OlNwYW0sIlxuIjsKLSRleGFtcGxlOjpTcGFtID0gJGV4YW1wbGU6OlNwYW0gKyA0Ci0jIC4uLiBldGMgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVNXSUcgc3VwcG9ydHMgZ2xvYmFsIHZhcmlhYmxlcyBvZiBhbGwgQyBkYXRhdHlwZXMgaW5jbHVkaW5nIHBvaW50ZXJzIGFuZCBjb21wbGV4IG9iamVjdHMuPHA+Ci08YSBuYW1lPSJuMjciPjwvYT48aDM+IENvbnN0YW50czwvaDM+Ci1Db25zdGFudHMgYXJlIGNyZWF0ZWQgYXMgcmVhZC1vbmx5IG1hZ2ljYWwgdmFyaWFibGVzIGFuZCBvcGVyYXRlIGluIGV4YWN0bHkgdGhlIHNhbWUgbWFubmVyLjxwPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBQb2ludGVyczwvaDM+Ci1TV0lHIHJlcHJlc2VudHMgcG9pbnRlcnMgYXMgYmxlc3NlZCByZWZlcmVuY2VzLiAgQSBibGVzc2VkIHJlZmVyZW5jZSBpcyB0aGUgc2FtZSBhcyBhIFBlcmwgcmVmZXJlbmNlIGV4Y2VwdCB0aGF0IGl0IGhhcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGF0dGFjaGVkIHRvIGl0IGluZGljYXRpbmcgd2hhdCBraW5kIG9mIHJlZmVyZW5jZSBpdCBpcy4gVGhhdCBpcywgaWYgeW91IGhhdmUgYSBDIGRlY2xhcmF0aW9uIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+TWF0cml4ICpuZXdfTWF0cml4KGludCBuLCBpbnQgbSk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVNXSUcgd2lsbCByZXR1cm4gYSB2YWx1ZSBhcyBpZiB5b3UgaGFkIGRvbmUgdGhpcyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJHB0ciA9IG5ld19NYXRyaXgoaW50IG4sIGludCBtKTsgICAgICMgU2F2ZSBwb2ludGVyIHJldHVybiByZXN1bHQKLWJsZXNzICRwdHIsICJNYXRyaXhQdHIiOyAgICAgICAgICAgICAjIEJsZXNzIGl0IGFzIGEgTWF0cml4UHRyCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVNXSUcgdXNlcyB0aGUgImJsZXNzaW5nIiB0byBjaGVjayB0aGUgZGF0YXR5cGUgb2YgdmFyaW91cyBwb2ludGVycy4gICBJbiB0aGUgZXZlbnQgb2YgYSBtaXNtYXRjaCwgYW4gZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlIHdpbGwgYmUgZ2VuZXJhdGVkLjxwPgotPHA+Ci1UbyBjaGVjayB0byBzZWUgaWYgYSB2YWx1ZSBpcyB0aGUgTlVMTCBwb2ludGVyLCB1c2UgdGhlIDx0dD5kZWZpbmVkKCk8L3R0PiBjb21tYW5kIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1pZiAoZGVmaW5lZCgkcHRyKSkgewotCXByaW50ICJOb3QgYSBOVUxMIHBvaW50ZXIuIjsKLX0gZWxzZSB7Ci0JcHJpbnQgIklzIGEgTlVMTCBwb2ludGVyLiI7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRvIGNyZWF0ZSBhIE5VTEwgcG9pbnRlciwgeW91IHNob3VsZCBwYXNzIHRoZSA8dHQ+dW5kZWYgPC90dD52YWx1ZSB0byBhIGZ1bmN0aW9uLiAgIDxwPgotPHA+Ci1UaGUgInZhbHVlIiBvZiBhIFBlcmwgcmVmZXJlbmNlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgdW5kZXJseWluZyBDIHBvaW50ZXIgdGhhdCBTV0lHIHdyYXBwZXIgZnVuY3Rpb25zIHJldHVybi4gICAgU3VwcG9zZSB0aGF0IDx0dD4kYTwvdHQ+IGFuZCA8dHQ+JGI8L3R0PiBhcmUgdHdvIHJlZmVyZW5jZXMgdGhhdCBwb2ludCB0byB0aGUgc2FtZSBDIG9iamVjdC4gICBJbiBnZW5lcmFsLCA8dHQ+JGE8L3R0PiBhbmQgPHR0PiRiPC90dD4gd2lsbCBiZSBkaWZmZXJlbnQtLXNpbmNlIHRoZXkgYXJlIGRpZmZlcmVudCByZWZlcmVuY2VzLiAgIFRodXMsIGl0IGlzIGEgbWlzdGFrZSB0byBjaGVjayB0aGUgZXF1YWxpdHkgb2YgPHR0PiRhIDwvdHQ+YW5kIDx0dD4kYjwvdHQ+IHRvIGNoZWNrIHRoZSBlcXVhbGl0eSBvZiB0d28gQyBwb2ludGVycy4gIFRoZSBjb3JyZWN0IG1ldGhvZCB0byBjaGVjayBlcXVhbGl0eSBvZiBDIHBvaW50ZXJzIGlzIHRvIGRlcmVmZXJlbmNlIHRoZW0gYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aWYgKCQkYSA9PSAkJGIpIHsKLQlwcmludCAiYSBhbmQgYiBwb2ludCB0byB0aGUgc2FtZSB0aGluZyBpbiBDIjsKLX0gZWxzZSB7Ci0JcHJpbnQgImEgYW5kIGIgcG9pbnQgdG8gZGlmZmVyZW50IG9iamVjdHMuIjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSXQgaXMgZWFzeSB0byBnZXQgYnVybmVkIGJ5ICByZWZlcmVuY2VzIGluIG1vcmUgc3VidGxlIHdheXMuICBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZSBzdG9yaW5nIGEgaGFzaCB0YWJsZSBvZiBvYmplY3RzLCBpdCBtYXkgYmUgYmVzdCB0byB1c2UgdGhlIGFjdHVhbCBDIHBvaW50ZXIgdmFsdWUgcmF0aGVyIHRoYW4gdGhlIFBlcmwgcmVmZXJlbmNlIGFzIGEga2V5LiAgU2luY2UgZWFjaCBQZXJsIHJlZmVyZW5jZSB0byB0aGUgc2FtZSBDIG9iamVjdCBtYXkgYmUgZGlmZmVyZW50LCBpdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIGZpbmQgYW55dGhpbmcgaW4gdGhlIGhhc2ggd2l0aG91dCB0aGlzLiBBcyBhIGdlbmVyYWwgcnVsZSwgdGhlIGJlc3Qgd2F5IHRvIGF2b2lkIHByb2JsZW1zIHdpdGggcmVmZXJlbmNlcyBpcyB0byBtYWtlIHN1cmUgaGFzaCB0YWJsZXMsIGNvbXBhcmlzb25zLCBhbmQgb3RoZXIgcG9pbnRlciBvcGVyYXRpb25zIHVzZSB0aGUgdmFsdWUgb2YgdGhlIHJlZmVyZW5jZSAoaWUuIDx0dD4kJGE8L3R0PiksIG5vdCB0aGUgcmVmZXJlbmNlIGl0c2VsZi48cD4KLTxhIG5hbWU9Im4yOSI+PC9hPjxoMz4gU3RydWN0dXJlcyBhbmQgQysrIGNsYXNzZXM8L2gzPgotRm9yIHN0cnVjdHVyZXMgYW5kIGNsYXNzZXMsIFNXSUcgcHJvZHVjZXMgYSBzZXQgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIGZvciBtZW1iZXIgZnVuY3Rpb25zIGFuZCBtZW1iZXIgZGF0YS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIHZlY3RvcgotCi1jbGFzcyBWZWN0b3IgewotcHVibGljOgotCWRvdWJsZSB4LHksejsKLQlWZWN0b3IoKTsKLQl+VmVjdG9yKCk7Ci0JZG91YmxlIG1hZ25pdHVkZSgpOwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBnZXRzIHR1cm5lZCBpbnRvIHRoZSBmb2xsb3dpbmcgY29sbGVjdGlvbiBvZiBQZXJsIGZ1bmN0aW9ucyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPnZlY3Rvcjo6VmVjdG9yX3hfZ2V0KCRvYmopOwotdmVjdG9yOjpWZWN0b3JfeF9zZXQoJG9iaiwkeCk7Ci12ZWN0b3I6OlZlY3Rvcl95X2dldCgkb2JqKTsKLXZlY3Rvcjo6VmVjdG9yX3lfc2V0KCRvYmosJHkpOwotdmVjdG9yOjpWZWN0b3Jfel9nZXQoJG9iaik7Ci12ZWN0b3I6OlZlY3Rvcl96X3NldCgkb2JqLCR6KTsKLXZlY3Rvcjo6bmV3X1ZlY3RvcigpOwotdmVjdG9yOjpkZWxldGVfVmVjdG9yKCRvYmopOwotdmVjdG9yOjpWZWN0b3JfbWFnbml0dWRlKCRvYmopOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyB1c2UgdGhlIGNsYXNzLCBzaW1wbHkgdXNlIHRoZXNlIGZ1bmN0aW9ucy4gIEFzIGl0IHR1cm5zIG91dCwgU1dJRyBoYXMgYSBtZWNoYW5pc20gZm9yIGNyZWF0aW5nIHNoYWRvdyBjbGFzc2VzIHRoYXQgaGlkZXMgdGhlc2UgZnVuY3Rpb25zIGFuZCB1c2VzIGFuIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UgaW5zdGVhZC0ta2VlcCByZWFkaW5nLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IEEgc2ltcGxlIFBlcmwgZXhhbXBsZTwvaDI+Ci1JbiB0aGUgbmV4dCBmZXcgc2VjdGlvbnMsIHVzZSBvZiB0aGUgUGVybDUgbW9kdWxlIHdpbGwgYmUgaWxsdXN0cmF0ZWQgdGhyb3VnaCBhIHNlcmllcyBvZiBpbmNyZWFzaW5nbHkgY29tcGxleCBleGFtcGxlcy4gSW4gdGhlIGV4YW1wbGUsIHdlIHdpbGwgd3JpdGUgc29tZSBzaW1wbGUgZ3JhcGggYWxnb3JpdGhtcyB0byBpbGx1c3RyYXRlIGhvdyBDIGFuZCBQZXJsIGNhbiBpbnRlcmFjdCB3aXRoIGVhY2ggb3RoZXIuIDxwPgotPGEgbmFtZT0ibjMwIj48L2E+PGgzPiBHcmFwaHM8L2gzPgotQSBkaXJlY3RlZCBncmFwaCBpcyBzaW1wbHkgYSBjb2xsZWN0aW9uIG9mIG5vZGVzIChvciB2ZXJ0aWNlcykgdGhhdCBhcmUgY29ubmVjdGVkIHRvIGVhY2ggb3RoZXIgYnkgYSBjb2xsZWN0aW9uIG9mIGVkZ2VzIDo8cD4KLTxwPgotPGNlbnRlcj48aW1nIHNyYz0iY2g4LjEucG5nIj48L2NlbnRlcj48cD48cD4KLTxwPgotVG8gcmVwcmVzZW50IHNpbXBsZSBncmFwaHMsIHdlIGNhbiB1c2UgdGhlIGZvbGxvd2luZyBDIGRhdGEgc3RydWN0dXJlcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+LyogRmlsZSA6IGdyYXBoLmggKi8KLS8qIFNpbXBsZSBkYXRhIHN0cnVjdHVyZXMgZm9yIGRpcmVjdGVkIGdyYXBoIG9mIE5vZGVzIGFuZCBFZGdlcyAqLwotCi1zdHJ1Y3QgRWRnZTsKLXR5cGVkZWYgc3RydWN0IE5vZGUgewotICBpbnQgICAgICAgICAgIHY7ICAgICAgICAgICAgLyogVmVydGV4IG51bWJlciAgICAgICAgICAgICAgKi8KLSAgc3RydWN0IEVkZ2UgICphZGo7ICAgICAgICAgIC8qIEFkamFjZW5jeSBMaXN0ICAgICAgICAgICAgICovCi19IE5vZGU7Ci0KLXR5cGVkZWYgc3RydWN0IEVkZ2UgewotICBOb2RlICAgICAgICAgICpub2RlOyAgICAgICAgLyogQ29ubmVjdGluZyBOb2RlICAgICAgICAgICAgKi8KLSAgZG91YmxlICAgICAgICAgICAgdzsgICAgICAgIC8qIFdlaWdodCAob3B0aW9uYWwpICAgICAgICAgICovCi0gIHN0cnVjdCBFZGdlICAgKm5leHQ7ICAgICAgICAvKiBOZXh0IGVkZ2UgICAgICAgICAgICAgICAgICAqLwotfSBFZGdlOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1FYWNoIG5vZGUgY29udGFpbnMgYSB1bmlxdWUgbnVtYmVyIHYgZm9yIGlkZW50aWZ5aW5nIGl0LCBhbmQgYSBsaW5rZWQgbGlzdCBvZiBvdGhlciBub2RlcyB0aGF0IGFyZSBuZWFyYnkuICAgVGhpcyBsaW5rZWQgbGlzdCBpcyBtYW5hZ2VkIGJ5IHRoZSA8dHQ+RWRnZTwvdHQ+IHN0cnVjdHVyZS4gICBBc3NvY2lhdGVkIHdpdGggZWFjaCBlZGdlIGlzIGFuIG9wdGlvbmFsIHdlaWdodGluZyBmYWN0b3IuICAgIFRoaXMgY291bGQgYmUgc29tZXRoaW5nIGxpa2UgbWlsZXMgYmV0d2VlbiBjaXRpZXMsIGJhbmR3aWR0aCwgb3Igc29tZSBvdGhlciBudW1lcmljYWwgcHJvcGVydHkgYWJvdXQgYSBwYXJ0aWN1bGFyIGxpbmsuICAgT2theSwgZW5vdWdoIHRhbGsgYWJvdXQgZGF0YSBzdHJ1Y3R1cmVzIGZvciBub3cuPHA+Ci08cD4KLVRvIGNvbnN0cnVjdCBub2RlcyBhbmQgYWRkIGVkZ2VzLCB3ZSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgQyBjb2RlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogZ3JhcGguYyAgICAgICAgICAgKi8KLS8qIERpcmVjdGVkIGdyYXBoIGZ1bmN0aW9ucyAqLwotCi0jaW5jbHVkZSAiZ3JhcGguaCIKLXN0YXRpYyBpbnQgbm9kZV9jb3VudCA9IDA7ICAgICAgICAgIC8qIE51bWJlciBvZiBub2RlcyBjcmVhdGVkICovCi0KLS8qIENyZWF0ZSBhIG5ldyBOb2RlICovCi1Ob2RlICpuZXdfTm9kZSgpIHsKLSAgTm9kZSAqbm9kZTsKLSAgbm9kZSA9IChOb2RlICopIG1hbGxvYyhzaXplb2YoTm9kZSkpOwotICBub2RlLSZndDt2ID0gbm9kZV9jb3VudCsrOyAgICAgICAvKiBCdW1wIHVwIHRoZSBjb3VudCAqLwotICBub2RlLSZndDthZGogPSAoRWRnZSAqKSAwOyAgICAgICAgICAgCi0gIHJldHVybiBub2RlOwotfQotCi0vKiBBZGQgYW4gImVkZ2UiIHRvIGFub3RoZXIgbm9kZS4gKi8KLQotRWRnZSAqTm9kZV9hZGRlZGdlKE5vZGUgKm15bm9kZSwgTm9kZSAqb3RoZXJub2RlLCBkb3VibGUgdykgewotICBFZGdlICplZGdlOwotICBlZGdlID0gKEVkZ2UgKikgbWFsbG9jKHNpemVvZihFZGdlKSk7Ci0gIGVkZ2UtJmd0O25vZGUgPSBvdGhlcm5vZGU7ICAgICAgICAKLSAgZWRnZS0mZ3Q7dyA9IHc7Ci0gIGVkZ2UtJmd0O25leHQgPSBteW5vZGUtJmd0O2FkajsgICAgLyogYWRkIHRvIG15IGFkamFjZW5jeSBsaXN0ICovCi0gIG15bm9kZS0mZ3Q7YWRqID0gZWRnZTsgICAgICAgICAgIAotICByZXR1cm4gZWRnZTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjMxIj48L2E+PGgzPiBBIHNpbXBsZSBTV0lHIGludGVyZmFjZSBmaWxlPC9oMz4KLVNvIGZhciwgdGhlIGNvZGUgZG9lc24ndCBkbyBtdWNoLCBidXQgaXQncyBlbm91Z2ggdG8gd3JhcCBpbnRvIFBlcmw1IG1vZHVsZS4gIFNpbmNlIHRoZSBDIGNvZGUgaXMgZmFpcmx5IHNpbXBsZSByaWdodCBub3csIHdlIGNhbiBkbyB0aGlzIGJ5IGNyZWF0aW5nIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVtb2R1bGUgZ3JhcGgKLSV7Ci0jaW5jbHVkZSAiZ3JhcGguaCIKLSV9Ci0laW5jbHVkZSBncmFwaC5oICAgICAgICAgICAgIC8vIEdldCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotJWluY2x1ZGUgZ3JhcGguYyAgICAgICAgICAgICAvLyBHZXQgc3VwcG9ydCBmdW5jdGlvbnMKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2UnbGwgY2FsbCBvdXIgbW9kdWxlICJncmFwaCIgYW5kIHNpbXBseSByZWFkIGluIGJvdGggdGhlIGZpbGVzIDx0dD5ncmFwaC5oPC90dD4gYW5kIDx0dD5ncmFwaC5jPC90dD4gdG8gYnVpbGQgYW4gaW50ZXJmYWNlLiAgIDxwPgotPGEgbmFtZT0ibjMyIj48L2E+PGgzPiBTYW1wbGUgUGVybCBTY3JpcHQ8L2gzPgotT25jZSBjb21waWxlZCwgd2UgY2FuIG5vdyBzdGFydCB1c2luZyBvdXIgbmV3IG1vZHVsZS4gICBBbGwgb2YgdGhlIEMgZnVuY3Rpb25zIGZvdW5kIGluIDx0dD5ncmFwaC5oPC90dD4gYW5kIDx0dD5ncmFwaC5jPC90dD4gY2FuIGJlIGNhbGxlZCBub3JtYWxseSAuICAgRXZlbiB0aG91Z2ggd2UgYXJlIHVzaW5nIHBvaW50ZXJzLCB0aGlzIGlzIG5vdCBhIHByb2JsZW0uICBIZXJlIGlzIGEgdmVyeSBzaW1wbGUgc2NyaXB0IDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIFBlcmwgY29kZSB0byB1c2Ugb3VyIGdyYXBoIGNvZGUKLQotdXNlIGdyYXBoOwotcGFja2FnZSBncmFwaDsKLQotIyBDcmVhdGUgc29tZSBub2RlcwotJG4wID0gbmV3X05vZGUoKTsKLSRuMSA9IG5ld19Ob2RlKCk7Ci0kbjIgPSBuZXdfTm9kZSgpOwotCi0jIE1ha2Ugc29tZSBlZGdlcwotTm9kZV9hZGRlZGdlKCRuMCwkbjEsMCk7ICAgICAgICAjICAwIC0mZ3Q7IDEKLU5vZGVfYWRkZWRnZSgkbjAsJG4yLDApOyAgICAgICAgIyAgMCAtJmd0OyAyCi1Ob2RlX2FkZGVkZ2UoJG4xLCRuMiwwKTsgICAgICAgICMgIDEgLSZndDsgMgotTm9kZV9hZGRlZGdlKCRuMiwkbjAsMCk7ICAgICAgICAjICAyIC0mZ3Q7IDAKLQotIyBBIHByb2NlZHVyZSB0byBwcmludCBvdXQgYSBub2RlIGFuZCBpdHMgYWRqYWNlbmN5IGxpc3QKLXN1YiBwcmludF9ub2RlIHsKLQlteSAkbm9kZSA9IHNoaWZ0OwotICAgIAlwcmludCAiTm9kZSA6ICIsIE5vZGVfdl9nZXQoJG5vZGUpLCAiLCBBZGogOiAiOwotICAgIAlteSAkYWRqID0gTm9kZV9hZGpfZ2V0KCRub2RlKTsKLSAgICAJd2hpbGUgKGRlZmluZWQoJGFkaikpIHsgICAgICAgICAgICAgICAgICAjIFRoaXMgY2hlY2tzIGZvciBhIE5VTEwgcG9pbnRlcgotCQlteSAkYW5vZGUgPSBFZGdlX25vZGVfZ2V0KCRhZGopOwotCQlteSAkdiA9IE5vZGVfdl9nZXQoJGFub2RlKTsKLQkJcHJpbnQgIiR2ICI7Ci0JCSRhZGogPSBFZGdlX25leHRfZ2V0KCRhZGopOyAgICAgICAjIE1vdmUgdG8gbmV4dCBub2RlCi0gICAgCX0KLSAgICAJcHJpbnQgIlxuIjsKLX0KLQotIyBQcmludCBvdXQgbm9kZSBpbmZvcm1hdGlvbgotcHJpbnRfbm9kZSgkbjApOwotcHJpbnRfbm9kZSgkbjEpOwotcHJpbnRfbm9kZSgkbjIpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIGV4ZWN1dGVkLCB0aGlzIHNjcmlwdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Tm9kZSA6IDAsIEFkaiA6IDIgMSAKLU5vZGUgOiAxLCBBZGogOiAyIAotTm9kZSA6IDIsIEFkaiA6IDAgCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hpbGUgb3VyIHR3byBDIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbiB0aGUgc2NyaXB0LCBTV0lHIGFsc28gY3JlYXRlZCBhIGNvbGxlY3Rpb24gb2YgYWNjZXNzb3IgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB0aGUgdHdvIEMgZGF0YSBzdHJ1Y3R1cmVzLiAgIFRoZSBmdW5jdGlvbnMgPHR0Pk5vZGVfdl9nZXQoKTwvdHQ+LCA8dHQ+Tm9kZV9hZGpfZ2V0KCk8L3R0PiwgIDx0dD5FZGdlX25vZGVfZ2V0KCk8L3R0PiwgYW5kIDx0dD5FZGdlX25leHRfZ2V0KCk8L3R0PiBhcmUgdXNlZCB0byBhY2Nlc3MgIHRoZSBjb3JyZXNwb25kaW5nIG1lbWJlcnMgb2Ygb3VyIDx0dD5Ob2RlPC90dD4gYW5kIDx0dD5FZGdlPC90dD4gc3RydWN0dXJlcy4gICAgQXMgYXJndW1lbnRzLCB0aGVzZSBmdW5jdGlvbnMgc2ltcGx5IHRha2UgYSBwb2ludGVyIHRvIHRoZSBjb3JyZXNwb25kaW5nIHN0cnVjdHVyZS48cD4KLTxwPgotVGhlcmUgYXJlIGEgZmV3IG90aGVyIHRoaW5ncyB0byBub3RpY2UgYWJvdXQgdGhlIGNvZGUuPHA+Ci08cD4KLTx1bD4KLTxsaT5Qb2ludGVycyB0byBjb21wbGV4IG9iamVjdHMgYXJlIG1hbmlwdWxhdGVkIGxpa2Ugb3JkaW5hcnkgc2NhbGFyIHZhbHVlcywgYnV0IGluIHJlYWxpdHkgdGhleSBhcmUgYmxlc3NlZCByZWZlcmVuY2VzLiAgRm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMsIHlvdSBzaG91bGQgdGhpbmsgb2YgdGhlbSBhcyBmdW5ueSBvcGFxdWUgb2JqZWN0cyAoaW4gb3RoZXIgd29yZHMsIGRvbid0IHdvcnJ5IGFib3V0IGl0KS4KLTxsaT5UbyBjaGVjayBmb3IgYSBOVUxMIHBvaW50ZXIsIHVzZSB0aGUgZXhwcmVzc2lvbiA8dHQ+ZGVmaW5lZCgkcHRyKTwvdHQ+LiAgVGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIGEgcG9pbnRlciBpcyBub24tTlVMTCwgZmFsc2UgaWYgaXQgaXNuJ3QuICAgSW4gb3VyIGV4YW1wbGUsIHdlIHVzZSB0aGlzIHRvIHdhbGsgZG93biBhIGxpbmtlZCBsaXN0IG9mIHBvaW50ZXJzIHVudGlsIHdlIHJlYWNoIGEgTlVMTCB2YWx1ZS4KLTwvdWw+Ci08cD4KLUV2ZW4gdGhvdWdoIHRoZSBvcmlnaW5hbCBDIGNvZGUgd2FzIHJhdGhlciB1c2VsZXNzIGJ5IGl0c2VsZiwgIHdlIGhhdmUgdXNlZCBpdCB0byBidWlsZCBhIHNpbXBsZSBncmFwaCBpbiBQZXJsIGFsb25nIHdpdGggYSBkZWJ1Z2dpbmcgZnVuY3Rpb24gZm9yIHByaW50aW5nIG91dCBub2RlIGluZm9ybWF0aW9uLiAgSW4gZmFjdCwgd2l0aG91dCBtYWtpbmcgYW55IG1vZGlmaWNhdGlvbnMgdG8gdGhlIEMgY29kZSwgd2UgY2FuIHVzZSB0aGlzIHRvIGJ1aWxkIHVwIHNvbWV0aGluZyBtb3JlIGNvbXBsZXggc3VjaCBhcyBhIGRhdGFiYXNlIG9mIGNpdGllcyBhbmQgbWlsZWFnZXMuIDxwPgotPHA+Ci08ZW0+U29tZSBjaXRpZXMgYW5kIG1pbGVhZ2VzPC9lbT48cD4KLTxwPgotSGVyZSdzIGEgc2xpZ2h0bHkgbW9yZSBjb21wbGljYXRlZCBQZXJsIHNjcmlwdCB0byByZWFkIGluIHRoZSBhYm92ZSBtaWxlYWdlIHRhYmxlIGFuZCB0dXJuIGl0IGludG8gYSBncmFwaDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFJlYWQgYSBmaWxlIHdpdGggY2l0aWVzIGludG8gYSBncmFwaAotCi11c2UgZ3JhcGg7Ci1wYWNrYWdlIGdyYXBoOwotCi0lQ2l0aWVzID0gKCk7ICAgICAgICAgICAgICAjIEhhc2ggdGFibGUgbWFwcGluZyBjaXRpZXMgdG8gbm9kZXMKLSVOb2RlcyA9ICgpOyAgICAgICAgICAgICAgICMgTWFwcGluZyBvZiBOb2RlIGluZGljaWVzIHRvIGNpdGllcwotc3ViIHJlYWRfY2l0aWVzIHsKLSAgICBteSAkZmlsZW5hbWUgPSBzaGlmdDsKLSAgICBvcGVuKENJVElFUywkZmlsZW5hbWUpOwotICAgIHdoaWxlICgmbHQ7Q0lUSUVTJmd0OykgewotCQljaG9wOwotCQlteSBAYSA9IHNwbGl0KC8sICsvKTsKLQkJbXkgJG5vZGUxOwotCQlteSAkbm9kZTI7Ci0JCSMgQ2hlY2sgdG8gc2VlIGlmIGEgZ2l2ZW4gY2l0eSBpcyBhbHJlYWR5IGEgbm9kZQotCQlpZiAoIWV4aXN0cyAkQ2l0aWVzeyRhWzBdfSkgewotCQkJJG5vZGUxID0gbmV3X05vZGUoKTsKLQkJCSRDaXRpZXN7JGFbMF19ID0gJG5vZGUxOwotCQkJbXkgJG5vZGVfbnVtID0gTm9kZV92X2dldCgkbm9kZTEpOwotCQkJJE5vZGVzeyRub2RlX251bX0gPSAkYVswXTsKLQkJfSBlbHNlIHsKLQkJCSRub2RlMSA9ICRDaXRpZXN7JGFbMF19OwotCQl9Ci0JCWlmICghZXhpc3RzICRDaXRpZXN7JGFbMV19KSB7Ci0JCQkkbm9kZTIgPSBuZXdfTm9kZSgpOwotCQkJJENpdGllc3skYVsxXX0gPSAkbm9kZTI7Ci0JCQlteSAkbm9kZV9udW0gPSBOb2RlX3ZfZ2V0KCRub2RlMik7Ci0JCQkkTm9kZXN7JG5vZGVfbnVtfSA9ICRhWzFdOwotCQl9IGVsc2UgewotCQkJJG5vZGUyID0gJENpdGllc3skYVsxXX07Ci0JCX0KLQkJIyBBZGQgZWRnZXMKLQkJTm9kZV9hZGRlZGdlKCRub2RlMSwkbm9kZTIsJGFbMl0pOwotCQlOb2RlX2FkZGVkZ2UoJG5vZGUyLCRub2RlMSwkYVsyXSk7Ci0JfQotfQotCi0KLQotc3ViIHByaW50X25lYXIgewotICAgIG15ICRjaXR5ID0gc2hpZnQ7Ci0gICAgaWYgKGV4aXN0cyAkQ2l0aWVzeyRjaXR5fSkgewotCQlteSAkbm9kZSA9ICRDaXRpZXN7JGNpdHl9OwotCQlwcmludCAiQ2l0aWVzIG5lYXIgJGNpdHkgOiAiOwotCQlteSAkYWRqID0gTm9kZV9hZGpfZ2V0KCRub2RlKTsKLQkJd2hpbGUgKGRlZmluZWQoJGFkaikpIHsKLQkJCSBteSAkYW5vZGUgPSBFZGdlX25vZGVfZ2V0KCRhZGopOwotCQkJIG15ICR2ID0gTm9kZV92X2dldCgkYW5vZGUpOwotCQkJIHByaW50ICROb2Rlc3skdn0sIiwgIjsKLQkJCSAkYWRqID0gRWRnZV9uZXh0X2dldCgkYWRqKTsKLQkJfQotICAgIH0KLSAgICBwcmludCAiXG4iOwotfQotcmVhZF9jaXRpZXMoImNpdGllcyIpOwotcHJpbnRfbmVhcigiRGVudmVyIik7Ci1wcmludF9uZWFyKCJMYXMgVmVnYXMiKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIG91dHB1dCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Q2l0aWVzIG5lYXIgRGVudmVyIDogTW9hYiwgS2Fuc2FzIENpdHksIFNhbnRhIEZlLCBDaGV5ZW5uZSwgQWxidXF1ZXJxdWUsIAotQ2l0aWVzIG5lYXIgTGFzIFZlZ2FzIDogRmxhZ3N0YWZmLCBMb3MgQW5nZWxlcywgTW9hYiwgU2FsdCBMYWtlIENpdHksIAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiB0aGlzIGV4YW1wbGUsIHdlIGFyZSB1c2luZyB0aGUgc2FtZSBmdW5jdGlvbnMgYXMgYmVmb3JlLCBidXQgd2UgYXJlIG5vdyBpbnRyb2R1Y2luZyB0d28gUGVybCBoYXNoIHRhYmxlcy4gICBUaGUgPHR0PiVDaXRpZXM8L3R0PiBoYXNoIGlzIHVzZWQgdG8gYXNzb2NpYXRlIGNpdHkgbmFtZXMgd2l0aCBhIGNvcnJlc3BvbmRpbmcgbm9kZSBpbiB0aGUgZ3JhcGguICBUaGUgPHR0PiVOb2RlczwvdHQ+IGhhc2ggZG9lcyBleGFjdGx5IHRoZSBvcHBvc2l0ZS0tLW1hcHBpbmcgbm9kZSBudW1iZXJzIGJhY2sgdG8gdGhlIG5hbWVzIG9mIGNpdGllcy4gICBCb3RoIG9mIHRoZXNlIHdpbGwgY29tZSBpbiBxdWl0ZSBoYW5keSBmb3IgbWFwcGluZyB0aGluZ3MgYmV0d2VlbiB0aGUgUGVybCB3b3JsZCBhbmQgdGhlIEMgd29ybGQgbGF0ZXIuPHA+Ci08cD4KLUJlZm9yZSBwcm9jZWVkaW5nLCBsZXQncyBzdG9wIGFuZCBzdW1tYXJpemUgd2hhdCB3ZSBoYXZlIGRvbmUuICAgICBHaXZlbiBhIGNvdXBsZSBvZiB2ZXJ5IHNpbXBsZSBDIGRhdGEgc3RydWN0dXJlcyBmb3IgYSBncmFwaCwgd2UgaGF2ZSB3cml0dGVuIGEgcHJvZ3JhbSB0aGF0IGNhbiByZWFkIGluIGEgbWlsZWFnZSB0YWJsZSwgY29uc3RydWN0IGEgd2VpZ2h0ZWQgZ3JhcGggb2YgdGhlIGRhdGEgYW5kIHByaW50IG91dCBhIGxpc3Qgb2YgdGhlIGNpdGllcyB0aGF0IGFyZSBuZWFyYnkgb3RoZXIgY2l0aWVzLiAgICAgWWV0LCB0aGUgQyBjb2RlIGtub3dzIG5vdGhpbmcgYWJvdXQgdGhlIFBlcmwgaW50ZXJmYWNlIG9yIHRoaXMgd2hvbGUgbWlsZWFnZSBwcm9ncmFtIHdlJ3ZlIGJ1aWx0IHVwIGFyb3VuZCBpdC4gICAgIFdoaWxlIHdlIGNvdWxkIGhhdmUgd3JpdHRlbiB0aGUgZW50aXJlIHByb2dyYW0gaW4gQywgd2Ugd291bGQgaGF2ZSBoYWQgdG8gd3JpdGUgYSBtYWluIHByb2dyYW0sIHNvbWUgY29kZSB0byByZWFkIHRoZSBpbnB1dCBmaWxlLCBhbmQgYSBoYXNoIHRhYmxlIHN0cnVjdHVyZSB0byBrZWVwIHRyYWNrIG9mIHRoZSBtYXBwaW5nIGJldHdlZW4gbm9kZXMgYW5kIGNpdGllcy4gIFBlcmwsIG9uIHRoZSBvdGhlciBoYW5kLCBpcyB2ZXJ5IGdvb2QgYXQgbWFuYWdpbmcgdGhlc2UgdGFza3MuPHA+Ci08YSBuYW1lPSJuNiI+PC9hPjxoMj4gQWNjZXNzaW5nIGFycmF5cyBhbmQgb3RoZXIgc3RyYW5nZSBvYmplY3RzPC9oMj4KLU5vdyBsZXQncyBhZGQgc29tZSBuZXcgZnVuY3Rpb25hbGl0eSB0byBvdXIgZ3JhcGggcHJvZ3JhbSBmcm9tIHRoZSBwcmV2aW91cyBleGFtcGxlLiAgSW4gdGhpcyBjYXNlLCB3ZSdsbCBhZGQgYSBkZXB0aC1maXJzdCBzZWFyY2ggYWxnb3JpdGhtIHRvIHNlZSBpZiB0d28gbm9kZXMgYXJlIGNvbm5lY3RlZCB0byBlYWNoIG90aGVyIChwb3NzaWJseSB0aHJvdWdoIG1hbnkgb3RoZXIgbm9kZXMgaW4tYmV0d2VlbikuICA8cD4KLTxwPgotV2UnbGwgZmlyc3QgYWRkIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIHRvIHRoZSBmaWxlIDx0dD5ncmFwaC5oPC90dD48cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBGaWxlIDogZ3JhcGguaCAqLwotLi4uCi0jZGVmaW5lIE1BWF9OT0RFUyAgIDEwMDAKLSNkZWZpbmUgVU5TRUVOICAgICAgLTEKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTm93LCBhICBtb2RpZmllZCB2ZXJzaW9uIG9mIDx0dD5ncmFwaC5jPC90dD4gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiBncmFwaC5jICovCi0vKiBEaXJlY3RlZCBncmFwaCBmdW5jdGlvbnMgKi8KLQotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0jaW5jbHVkZSAiZ3JhcGguaCIKLQotaW50IG5vZGVfY291bnQgPSAwOyAgICAgICAgICAvKiBOdW1iZXIgb2Ygbm9kZXMgY3JlYXRlZCAgICAgKi8KLWludCBzZWVuW01BWF9OT0RFU107ICAgICAgICAgLyogVXNlZCBieSB0aGUgc2VhcmNoIGZ1bmN0aW9uICovCi0KLS4uLgotCi0vKiBGdW5jdGlvbiB0byBzZWFyY2ggZm9yIG5vZGUgd2l0aCBnaXZlbiB2ZXJ0ZXggbnVtYmVyICovCi1zdGF0aWMgaW50IHZpc2l0KE5vZGUgKm4saW50IHYpIHsKLSAgRWRnZSAqZTsKLQotICBpZiAoc2VlbltuLSZndDt2XSAhPSBVTlNFRU4pIHJldHVybiBVTlNFRU47ICAvKiBDeWNsZSBkZXRlY3RlZCAqLwotICBpZiAobi0mZ3Q7diA9PSB2KSByZXR1cm4gMTsgICAgICAgICAgICAgICAgICAvKiBNYXRjaCBmb3VuZCAgICAqLwotICBlID0gbi0mZ3Q7YWRqOwotICB3aGlsZSAoZSkgewotICAgIHNlZW5bbi0mZ3Q7dl0gPSBlLSZndDtub2RlLSZndDt2OwotICAgIGlmICh2aXNpdChlLSZndDtub2RlLHYpICZndDsgMCkgcmV0dXJuIDE7ICAgICAKLSAgICBlID0gZS0mZ3Q7bmV4dDsKLSAgfQotICByZXR1cm4gMDsKLX0KLQotCi0vKiBEZXB0aC1maXJzdCBzZWFyY2ggZm9yIGEgZ2l2ZW4gbm9kZSAqLwotaW50IE5vZGVfc2VhcmNoKE5vZGUgKnN0YXJ0LCBpbnQgdikgewotICBpbnQgaTsKLSAgCi0gIGZvciAoaSA9IDA7IGkgJmx0OyBub2RlX2NvdW50OyBpKyspCi0gICAgc2VlbltpXSA9IFVOU0VFTjsKLSAgcmV0dXJuIHZpc2l0KHN0YXJ0LHYpOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgaWRlYSBoZXJlIGlzIHNpbXBsZSwgdGhlIGZ1bmN0aW9uIDx0dD5Ob2RlX3NlYXJjaCgpPC90dD4gdGFrZXMgYSBzdGFydGluZyBub2RlIGFuZCBzdGFydHMgbG9va2luZyBmb3IgYSBub2RlIHdpdGggZ2l2ZW4gdmVydGV4LiAgIFVwb24gc3RhcnR1cCwgdGhlIHNlYXJjaCBmdW5jdGlvbiBjbGVhcnMgYW4gYXJyYXkgb2YgdmFsdWVzIGluZGljYXRpbmcgd2hldGhlciBhIG5vZGUgaGFzIGJlZW4gc2VlbiBvciBub3QuICAgV2hpbGUgdGhpcyBhcnJheSBpcyBwcmltYXJpbHkgdXNlZCB0byBkZXRlY3QgY3ljbGVzLCBpdCBjYW4gYWxzbyBiZSB1c2VkIHRvIHN0b3JlIHRoZSBwYXRoIGJldHdlZW4gdHdvIG5vZGVzIGFzIHdlIHByb2NlZWQgdGhyb3VnaCB0aGUgYWxnb3JpdGhtLiAgIFVwb24gZXhpdCwgd2UgY2FuIHRoZW4gdXNlIHRoZSBhcnJheSB0byBmaWd1cmUgb3V0IGhvdyB3ZSBnb3QgYmV0d2VlbiB0aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBub2RlLiAgICBPZiBjb3Vyc2UsIHRoaXMgbGVhZHMgdXMgdG8gdGhlIHF1ZXN0aW9uIG9mIGhvdyB3ZSBhY2Nlc3MgdGhpcyBhcnJheSBpbiBQZXJsLjxwPgotPHA+Ci1BcyBhIGdlbmVyYWwgcnVsZSwgaGFuZGxpbmcgYXJyYXlzIGlzIHNvbWV3aGF0IHByb2JsZW1hdGljIHNpbmNlIHRoZSBtYXBwaW5nIGJldHdlZW4gYXJyYXlzIGFuZCBwb2ludGVycyBtYXkgbm90IGJlIHdoYXQgeW91IGV4cGVjdCAoZXZlbiBpbiBDKSBhbmQgdGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IGEgbmF0dXJhbCBtYXBwaW5nIGJldHdlZW4gYXJyYXlzIGluIEMgYW5kIGFycmF5cyBpbiBQZXJsIChmb3IgZXhhbXBsZSwgaWYgd2UndmUgZ290IGEgQyBhcnJheSB3aXRoIDEgbWlsbGlvbiBlbGVtZW50cyBpbiBpdCwgd2UgYWxtb3N0IGNlcnRhaW5seSB3b3VsZG4ndCB3YW50IHRvIGNvbnZlcnQgaXQgdG8gYSBQZXJsIGFycmF5ISkuPHA+Ci08cD4KLVRvIGFjY2VzcyBvdXIgYXJyYXksIHdlIHdpbGwgd3JpdGUgYSBDIGhlbHBlciBmdW5jdGlvbiB0aGF0IGFsbG93cyB1cyB0byBhY2Nlc3MgaW52aWR1YWwgZWxlbWVudHMuICAgSG93ZXZlciwgcmF0aGVyIHRoYW4gYWRkaW5nIHRoaXMgZnVuY3Rpb24gdG8gdGhlIEMgY29kZSwgd2UgY2FuIGluc2VydCBpdCBkaXJlY3RseSBpbnRvIG91ciBTV0lHIGludGVyZmFjZSBmaWxlLiAgICBXZSB3aWxsIGFsc28gc3RyaXAgdGhlIGZ1bmN0aW9uIG5hbWVzIG91dCBvZiB0aGUgPHR0Pi5jPC90dD4gZmlsZSBhbmQgcHV0IHRoZWlyIHByb3RvdHlwZXMgaW4gdGhlIGhlYWRlciBmaWxlIDogPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBncmFwaAotJXsKLSNpbmNsdWRlICJncmFwaC5oIgotJX0KLSVpbmNsdWRlIGdyYXBoLmgKLQotJWlubGluZSAlewotLyogR2V0IHNlZW4gdmFsdWUgZm9yIGEgcGFydGljdWxhciBub2RlICAqLwotaW50IGdldF9zZWVuKGludCBpbmRleCkgewotICBleHRlcm4gaW50IG5vZGVfY291bnQ7Ci0gIGV4dGVybiBpbnQgc2VlbltdOwotICBpZiAoKGluZGV4ICZsdDsgMCkgfHwgKGluZGV4ICZndDs9IG5vZGVfY291bnQpKSByZXR1cm4gLTE7Ci0gIGVsc2UgcmV0dXJuIHNlZW5baW5kZXhdOwotfQotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhpcyBpbnRlcmZhY2UgZmlsZSBpbGx1c3RyYXRlcyBvbmUgb2YgdGhlIGtleSBwb2ludHMgYWJvdXQgU1dJRy0tZXZlbiB0aG91Z2ggU1dJRyB1c2VzIEMgc3ludGF4LCB3cmFwcGluZyBhcmJpdHJhcnkgQyBjb2RlIGRvZXNuJ3QgYWx3YXlzIHJlc3VsdCBpbiBhIGdvb2QgaW50ZXJmYWNlLiAgQWxtb3N0IGFueSBzaWduaWZpY2FudCBwYWNrYWdlIHdpbGwgcmVxdWlyZSB0aGUgdXNlIG9mICBhIGZldyAiaGVscGVyIiBmdW5jdGlvbnMgdG8gZ2V0IGF0IGNlcnRhaW4gZGF0YSBzdHJ1Y3R1cmVzIG9yIHRvIGNoYW5nZSB0aGUgd2F5IGluIHdoaWNoIGEgZnVuY3Rpb24gaXMgY2FsbGVkLiAgIDxwPgotPHA+Ci1XaXRoIG91ciBuZXcgQyBzZWFyY2ggZnVuY3Rpb24sIHdlIGNhbiBub3cgd3JpdGUgYSBQZXJsIGZ1bmN0aW9uIHRvIGZpbmQgYSByb3V0ZSBiZXR3ZWVuIHR3byBjaXRpZXMuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSB0YWtlcyB0aGUgbmFtZXMgb2YgdHdvIGNpdGllcywgdXNlcyB0aGUgPHR0PkNpdGllczwvdHQ+IGhhc2ggdG8gbG9vayB1cCB0aGVpciBub2RlcyBhbmQgY2FsbHMgdGhlIEMgPHR0Pk5vZGVfc2VhcmNoKCk8L3R0PiBmdW5jdGlvbi4gICBBZnRlcndhcmRzLCB3ZSB3YWxrIHRocm91Z2ggdGhlIDx0dD5zZWVuW108L3R0PiBhcnJheSB1c2luZyBvdXIgaGVscGVyIGZ1bmN0aW9uIGFuZCBwcmludCB0aGUgcm91dGUuPHA+Ci08YmxvY2txdW90ZT48cHJlPgotc3ViIGZpbmRfcm91dGUgewotICAgIG15ICRzdGFydCA9IHNoaWZ0OwotICAgIG15ICRkZXN0ID0gc2hpZnQ7Ci0gICAgIyBMb29rdXAgbm9kZXMgZnJvbSBuYW1lcwotICAgIGlmICgoIWV4aXN0cyAkQ2l0aWVzeyRzdGFydH0pIHx8ICghZXhpc3RzICRDaXRpZXN7JGRlc3R9KSkgewotCXJldHVybjsKLSAgICB9Ci0gICAgbXkgJG5vZGUxID0gJENpdGllc3skc3RhcnR9OwotICAgIG15ICRub2RlMiA9ICRDaXRpZXN7JGRlc3R9OwotICAgIHByaW50ICIkc3RhcnQgLS0mZ3Q7ICRkZXN0IDpcbiI7Ci0KLSAgICAjIERlcHRoIGZpcnN0IHNlYXJjaCBmb3IgYSByb3V0ZSBiZXR3ZWVuIGNpdGllcwotICAgIG15ICRmb3VuZCA9IE5vZGVfc2VhcmNoKCRub2RlMSxOb2RlX3ZfZ2V0KCRub2RlMikpOwotICAgIGlmICgkZm91bmQpIHsKLQkkdiA9IE5vZGVfdl9nZXQoJG5vZGUxKTsKLQl3aGlsZSAoJHYgIT0gJFVOU0VFTikgewotCSAgICBwcmludCAiICAgICROb2Rlc3skdn1cbiI7Ci0JICAgICR2ID0gZ2V0X3NlZW4oJHYpOwotCX0KLSAgICB9IGVsc2UgewotCXByaW50ICIgICAgWW91IGNhbid0IGdldCB0aGVyZSBmcm9tIGhlcmVcbiI7Ci0gICAgfQotfQotICAgIAotcmVhZF9jaXRpZXMoImNpdGllcyIpOwotZmluZF9yb3V0ZSgiU2FsdCBMYWtlIENpdHkiLCJEZW52ZXIiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotT2YgY291cnNlLCBkZXB0aCBmaXJzdCBzZWFyY2ggaXNuJ3QgdmVyeSBnb29kIGF0IGZpbmRpbmcgYW4gb3B0aW1hbCByb3V0ZS0tLW9idmlvdXNseSB0aGlzIG91dHB1dCBtdXN0IGJlIHRoZSB2ZXJ5IHNjZW5pYyByb3V0ZSE8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5TYWx0IExha2UgQ2l0eSAtLSZndDsgRGVudmVyIDoKLSAgICBTYWx0IExha2UgQ2l0eQotICAgIFR3aW4gRmFsbHMKLSAgICBCb2lzZQotICAgIFBvcnRsYW5kCi0gICAgRXVnZW5lCi0gICAgU2FuIEZyYW5jaXNjbwotICAgIExvcyBBbmdlbGVzCi0gICAgTGFzIFZlZ2FzCi0gICAgRmxhZ3N0YWZmCi0gICAgQWxidXF1ZXJxdWUKLSAgICBTYW50YSBGZQotICAgIER1cmFuZ28KLSAgICBNb2FiCi0gICAgRGVudmVyCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNyI+PC9hPjxoMj4gSW1wbGVtZW50aW5nIG1ldGhvZHMgaW4gUGVybDwvaDI+Ci1PYnZpb3VzbHksIG91ciBkZXB0aCBzZWFyY2ggYWxnb3JpdGhtIGlzbid0IHNvIHVzZWZ1bCBpbiB0aGlzIHNwZWNpZmljIGFwcGxpY2F0aW9uLiAgIFBlcmhhcHMgd2Ugd291bGQgbGlrZSB0byAgdHJ5IGEgYnJlYWR0aC1maXJzdCBzZWFyY2ggYWxnb3JpdGhtIGluc3RlYWQuICAgIFdlIGNvdWxkIGNob29zZSB0byB3cml0ZSBpdCBpbiBDLCBidXQgdGhlIGJyZWFkdGggZmlyc3Qgc2VhcmNoIGFsZ29yaXRobSBkZXBlbmRzIG9uIHRoZSB1c2Ugb2YgYSBxdWV1ZSB0byBob2xkIHRoZSBsaXN0IG9mIG5vZGVzIHRvIHZpc2l0LiAgVGh1cywgd2UnZCBoYXZlIHRvIHdyaXRlIGEgcXVldWUgZGF0YSBzdHJ1Y3R1cmUgZmlyc3QuICAgSG93ZXZlciwgYSBQZXJsIGFycmF5IHNtZWxscyBhbG90IGxpa2UgYSBxdWV1ZSBpZiB3ZSBtYW5pcHVsYXRlIGl0IGluIHRoZSByaWdodCB3YXkuICBTbyB3ZSBjYW4gdXNlIFBlcmwgdG8gY29tZSB1cCB3aXRoIGEgcXVpY2sgYW5kIGRpcnR5IGJyZWFkdGggZmlyc3Qgc2VhcmNoIHdpdGhvdXQgZHJvcHBpbmcgZG93biBpbnRvIEMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV2aXNpdCA9ICgpOwotc3ViIGJyZWFkdGhfc2VhcmNoIHsKLSAgICBteSAkbm9kZTEgPSBzaGlmdDsKLSAgICBteSAkbm9kZTIgPSBzaGlmdDsKLSAgICBteSBAcXVldWU7Ci0gICAgJXZpc2l0ID0gKCk7Ci0gICAgIyBQdXQgc3RhcnRpbmcgbm9kZSBpbnRvIHF1ZXVlCi0gICAgcHVzaCBAcXVldWUsICRub2RlMTsKLSAgICAkdmlzaXR7Tm9kZV92X2dldCgkbm9kZTEpfSA9IE5vZGVfdl9nZXQoJG5vZGUxKTsKLSAgICB3aGlsZSAoQHF1ZXVlKSB7ICAgICAgICAgICAgIyBMb29wIHVudGlsIHF1ZXVlIGlzIGVtcHR5Ci0JbXkgJG4gPSBzaGlmdCBAcXVldWU7ICAgICAjIFBvcCBvZmYgYW4gbm9kZQotCW15ICRudiA9IE5vZGVfdl9nZXQoJG4pOwotCXJldHVybiAxIGlmICgkJG4gPT0gJCRub2RlMik7ICAgIyBFeGl0IGlmIHdlIGZvdW5kIHRoZSBkZXN0aW5hdGlvbgotCSMgUHV0IGNoaWxkcmVuIG9udG8gdGhlIHF1ZXVlCi0JbXkgJGUgPSBOb2RlX2Fkal9nZXQoJG4pOwotCXdoaWxlIChkZWZpbmVkKCRlKSkgewotCSAgICBteSAkbSA9IEVkZ2Vfbm9kZV9nZXQoJGUpOwotCSAgICBteSAkdiA9IE5vZGVfdl9nZXQoJG0pOwotCSAgICBpZiAoIWV4aXN0cyAkdmlzaXR7JHZ9KSB7Ci0JCXB1c2ggQHF1ZXVlLCAkbTsKLQkJJHZpc2l0eyR2fSA9ICRudjsKLQkgICAgfQotCSAgICAkZSA9IEVkZ2VfbmV4dF9nZXQoJGUpOwotCX0KLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN1YiBmaW5kX3JvdXRlIHsKLSAgICBteSAkc3RhcnQgPSBzaGlmdDsKLSAgICBteSAkZGVzdCA9IHNoaWZ0OwotICAgICMgTG9va3VwIG5vZGVzIGZyb20gbmFtZXMKLSAgICByZXR1cm4gaWYgKCghZXhpc3RzICRDaXRpZXN7JHN0YXJ0fSkgfHwgKCFleGlzdHMgJENpdGllc3skZGVzdH0pKTsKLSAgICBwcmludCAiJHN0YXJ0IC0tJmd0OyAkZGVzdCA6XG4iOwotICAgIG15ICRub2RlMSA9ICRDaXRpZXN7JHN0YXJ0fTsKLSAgICBteSAkbm9kZTIgPSAkQ2l0aWVzeyRkZXN0fTsKLSAgICBteSAkZm91bmQgPSBicmVhZHRoX3NlYXJjaCgkbm9kZTEsJG5vZGUyKTsKLSAgICBteSBAcGF0aDsKLSAgICBpZiAoJGZvdW5kKSB7Ci0JbXkgJHYgPSBOb2RlX3ZfZ2V0KCRub2RlMik7Ci0JZGVsZXRlICR2aXNpdHtOb2RlX3ZfZ2V0KCRub2RlMSl9OwotCXdoaWxlIChleGlzdHMoJHZpc2l0eyR2fSkpIHsKLQkgICAgdW5zaGlmdCBAcGF0aCwkTm9kZXN7JHZ9OwotCSAgICAkdiA9ICR2aXNpdHskdn07Ci0JfQotCXVuc2hpZnQgQHBhdGgsJHN0YXJ0OwotCWZvcmVhY2ggJGMgKEBwYXRoKSB7IHByaW50ICIgICAgJGNcbiI7fQotICAgIH0gZWxzZSB7Ci0JcHJpbnQgIiAgICBZb3UgY2FuJ3QgZ2V0IHRoZXJlIGZyb20gaGVyZVxuIjsKLSAgICB9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU91ciBQZXJsIGltcGxlbWVudGF0aW9uIGNyZWF0ZXMgYSBxdWV1ZSB1c2luZyBhbiBhcnJheSBhbmQgbWFuaXB1bGF0aW5nIGl0IHdpdGggc2hpZnQgYW5kIHB1c2ggb3BlcmF0aW9ucy4gICBUaGUgZ2xvYmFsIGhhc2ggPHR0PiV2aXNpdDwvdHQ+IGlzIHVzZWQgdG8gZGV0ZWN0IGN5Y2xlcyBhbmQgdG8gZGV0ZXJtaW5lIGhvdyB3ZSBnb3QgdG8gZWFjaCBub2RlLiAgICBXaGVuIHdlIGZpbmQgYSByb3V0ZSwgd2UgY2FuIG1hcmNoIGJhY2t3YXJkcyB0aHJvdWdoIHRoZSByb3V0ZSB0byBkZXRlcm1pbmUgdGhlIGVudGlyZSBwYXRoLiAgIFdoZW4gd2UgcnVuIG91ciBuZXcgY29kZSwgd2UgZ2V0IHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmZpbmRfcm91dGUoIlNhbHQgTGFrZSBDaXR5IiwgIkRlbnZlciIpOwotU2FsdCBMYWtlIENpdHkgLS0mZ3Q7IERlbnZlciA6Ci0gICAgU2FsdCBMYWtlIENpdHkKLSAgICBDaGV5ZW5uZQotICAgIERlbnZlcgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1DbGVhcmx5IHRoaXMgaXMgYSBtb3JlIGVmZmljaWVudCByb3V0ZS0tYWx0aG91Z2ggYWRtaXR0ZWRseSBub3QgdmVyeSBzY2VuaWMuICAgSWYgd2Ugd2FudGVkIHRvIGdldCBldmVuIG1vcmUgc2VyaW91cywgd2UgY291bGQgYWRkIGEgcHJpb3JpdHkgc2VhcmNoIGJhc2VkIG9uIG1pbGVhZ2VzLiAgICBMYXRlciBvbiB3ZSBtaWdodCBpbXBsZW1lbnQgdGhlc2UgZmVhdHVyZXMgaW4gQyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLiAgIEVpdGhlciB3YXksIGl0IGlzIHJlYXNvbmFibHkgZWFzeSB0byBtYW5pcHVsYXRlIGNvbXBsZXggc3RydWN0dXJlcyBpbiBQZXJsIGFuZCB0byBtaXggdGhlbSB3aXRoIEMgY29kZSAod2VsbCwgd2l0aCBhIGxpdHRsZSBwcmFjdGljZSBwZXJoYXBzKS4gPHA+Ci08YSBuYW1lPSJuOCI+PC9hPjxoMj4gU2hhZG93IGNsYXNzZXM8L2gyPgotQnkgbm93LCB5b3UndmUgcHJvYmFibHkgbm90aWNlZCB0aGF0IGV4YW1wbGVzIGhhdmUgYmVlbiB1c2luZyAgYWxvdCBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgdG8gZ2V0IGF0IHRoZSBtZW1iZXJzIG9mIG91ciA8dHQ+Tm9kZTwvdHQ+IGFuZCA8dHQ+RWRnZTwvdHQ+IHN0cnVjdHVyZXMuICBUaGlzIHRlbmRzIHRvIG1ha2UgdGhlIFBlcmwgY29kZSBsb29rIHJhdGhlciBjbHV0dGVyZWQgKHdlbGwsIG1vcmUgdGhhbiBub3JtYWwgUGVybCBjb2RlIGluIGFueSBjYXNlKSBhbmQgaXQgaXNuJ3QgdmVyeSBvYmplY3Qgb3JpZW50ZWQuPHA+Ci08cD4KLVdpdGggYSBsaXR0bGUgbWFnaWMsIFNXSUcgY2FuIHR1cm4gQyBzdHJ1Y3RzIGFuZCBDKysgY2xhc3NlcyBpbnRvIGZ1bGx5IGZ1bmN0aW9uYWwgUGVybCBjbGFzc2VzIHRoYXQgd29yayBpbiBhIG1vcmUtb3ItbGVzcyBub3JtYWwgZmFzaGlvbi4gICAgIFRoaXMgdHJhbnNmb3JtYXRpb24gaXMgZG9uZSBieSB3cml0aW5nIGFuIGFkZGl0aW9uYWwgUGVybCBsYXllciB0aGF0IGJ1aWxkcyBQZXJsIGNsYXNzZXMgb24gdG9wIG9mIHRoZSBsb3ctbGV2ZWwgU1dJRyBpbnRlcmZhY2UuICBUaGVzZSBQZXJsIGNsYXNzZXMgYXJlIHNhaWQgdG8gInNoYWRvdyIgYW4gdW5kZXJseWluZyBDL0MrKyBjbGFzcy4gICAgPHA+Ci08cD4KLVRvIGhhdmUgU1dJRyBjcmVhdGUgc2hhZG93IGNsYXNzZXMsIHVzZSB0aGUgPHR0Pi1zaGFkb3cgPC90dD5vcHRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtcGVybDUgLXNoYWRvdyBncmFwaC5pCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgd2lsbCBwcm9kdWNlIHRoZSBzYW1lIGZpbGVzIGFzIGJlZm9yZSBleGNlcHQgdGhhdCB0aGUgPHR0Pi5wbTwvdHQ+IGZpbGUgd2lsbCBub3cgY29udGFpbiBzaWduaWZpY2FudGx5IG1vcmUgc3VwcG9ydGluZyBQZXJsIGNvZGUuICAgV2hpbGUgdGhlcmUgYXJlIHNvbWUgcmF0aGVyIHN1YnRsZSBhc3BlY3RzIG9mIHRoaXMgdHJhbnNmb3JtYXRpb24sIGZvciBub3cgd2UnbGwgb21pdCB0aGUgZGV0YWlscyBhbmQgaWxsdXN0cmF0ZSB0aGUgY2hhbmdlcyBpbiBhbiBleGFtcGxlIGZpcnN0ICh0aGUgdXNlIG9mIHNoYWRvdyBjbGFzc2VzIGhhcyBiZWVuIHVuZGVybGluZWQpPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBSZWFkIGEgZmlsZSB3aXRoIGNpdGllcyBpbnRvIGEgZ3JhcGgKLSMgVXNlcyBzaGFkb3cgY2xhc3NlcwotCi11c2UgZ3JhcGg7Ci1wYWNrYWdlIGdyYXBoOwotCi0lQ2l0aWVzID0gKCk7ICAgICAgICAgICAgICAjIEhhc2ggdGFibGUgbWFwcGluZyBjaXRpZXMgdG8gbm9kZXMKLSVOb2RlcyA9ICgpOyAgICAgICAgICAgICAgICMgTWFwcGluZyBvZiBOb2RlIGluZGljaWVzIHRvIGNpdGllcwotCi1zdWIgcmVhZF9jaXRpZXMgewotICAgIG15ICRmaWxlbmFtZSA9IHNoaWZ0OwotICAgIG9wZW4oQ0lUSUVTLCRmaWxlbmFtZSk7Ci0gICAgd2hpbGUgKCZsdDtDSVRJRVMmZ3Q7KSB7Ci0JY2hvcDsKLQlteSBAYSA9IHNwbGl0KC8sICsvKTsKLQlteSAkbm9kZTE7Ci0JbXkgJG5vZGUyOwotCSMgQ2hlY2sgdG8gc2VlIGlmIGEgZ2l2ZW4gY2l0eSBpcyBhbHJlYWR5IGEgbm9kZQotCWlmICghZXhpc3RzICRDaXRpZXN7JGFbMF19KSB7Ci0JICAgICRub2RlMSA9IG5ld19Ob2RlKCk7Ci0JICAgICRDaXRpZXN7JGFbMF19ID0gJG5vZGUxOwotCSAgICAkTm9kZXN7JG5vZGUxLSZndDt7dn19ID0gJGFbMF07ICAgICAgIyBOb3RlIGFjY2VzcyBvZiBgdicKLQl9IGVsc2UgewotCSAgICAkbm9kZTEgPSAkQ2l0aWVzeyRhWzBdfTsKLQl9Ci0JaWYgKCFleGlzdHMgJENpdGllc3skYVsxXX0pIHsKLQkgICAgJG5vZGUyID0gbmV3X05vZGU7Ci0JICAgICRDaXRpZXN7JGFbMV19ID0gJG5vZGUyOwotCSAgICAkTm9kZXN7JG5vZGUyLSZndDt7dn19ID0gJGFbMV07Ci0JfSBlbHNlIHsKLQkgICAgJG5vZGUyID0gJENpdGllc3skYVsxXX07Ci0JfQotCSMgQWRkIGVkZ2VzCi0JTm9kZV9hZGRlZGdlKCRub2RlMSwkbm9kZTIsJGFbMl0pOwotCU5vZGVfYWRkZWRnZSgkbm9kZTIsJG5vZGUxLCRhWzJdKTsKLSAgICB9Ci19Ci0KLSV2aXNpdDsKLXN1YiBicmVhZHRoX3NlYXJjaCB7Ci0gICAgbXkgJG5vZGUxID0gc2hpZnQ7Ci0gICAgbXkgJG5vZGUyID0gc2hpZnQ7Ci0gICAgbXkgQHF1ZXVlOwotICAgICV2aXNpdCA9ICgpOwotICAgIG15ICRkZXN0ID0gJG5vZGUyLSZndDt7dn07Ci0gICAgIyBQdXQgc3RhcnRpbmcgbm9kZSBpbnRvIHF1ZXVlCi0gICAgcHVzaCBAcXVldWUsICRub2RlMTsKLSAgICAkdmlzaXR7JG5vZGUxLSZndDt7dn19ID0gJG5vZGUxLSZndDt7dn07Ci0gICAgd2hpbGUgKEBxdWV1ZSkgewotCW15ICRuID0gc2hpZnQgQHF1ZXVlOwotCXJldHVybiAxIGlmICgkbi0mZ3Q7e3Z9ID09ICRub2RlMi0mZ3Q7e3Z9KTsKLQkjIFB1dCBjaGlsZHJlbiBvbnRvIHRoZSBxdWV1ZQotCW15ICRlID0gJG4tJmd0O3thZGp9OwotCXdoaWxlIChkZWZpbmVkKCRlKSkgewotCSAgICBpZiAoIWV4aXN0cyAkdmlzaXR7JGUtJmd0O3tub2RlfS0mZ3Q7e3Z9fSkgewotCQlwdXNoIEBxdWV1ZSwgJGUtJmd0O3tub2RlfTsKLQkJJHZpc2l0eyRlLSZndDt7bm9kZX0tJmd0O3t2fX0gPSAkbi0mZ3Q7e3Z9OwotCSAgICB9Ci0JICAgICRlID0gJGUtJmd0O3tuZXh0fTsKLQl9Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1zdWIgZmluZF9yb3V0ZSB7Ci0gICAgbXkgJHN0YXJ0ID0gc2hpZnQ7Ci0gICAgbXkgJGRlc3QgPSBzaGlmdDsKLSAgICAjIExvb2t1cCBub2RlcyBmcm9tIG5hbWVzCi0gICAgcmV0dXJuIGlmICgoIWV4aXN0cyAkQ2l0aWVzeyRzdGFydH0pIHx8ICghZXhpc3RzICRDaXRpZXN7JGRlc3R9KSk7Ci0gICAgcHJpbnQgIiRzdGFydCAtLSZndDsgJGRlc3QgOlxuIjsKLSAgICBteSAkbm9kZTEgPSAkQ2l0aWVzeyRzdGFydH07Ci0gICAgbXkgJG5vZGUyID0gJENpdGllc3skZGVzdH07Ci0gICAgbXkgJGZvdW5kID0gYnJlYWR0aF9zZWFyY2goJG5vZGUxLCRub2RlMik7Ci0gICAgbXkgQHBhdGg7Ci0gICAgaWYgKCRmb3VuZCkgewotCW15ICR2ID0gJG5vZGUyLSZndDt7dn07Ci0JZGVsZXRlICR2aXNpdHskbm9kZTEtJmd0O3t2fX07Ci0Jd2hpbGUgKGV4aXN0cygkdmlzaXR7JHZ9KSkgewotCSAgICB1bnNoaWZ0IEBwYXRoLCROb2Rlc3skdn07Ci0JICAgICR2ID0gJHZpc2l0eyR2fTsKLQl9Ci0JdW5zaGlmdCBAcGF0aCwkc3RhcnQ7Ci0JZm9yZWFjaCAkYyAoQHBhdGgpIHsKLQkgICAgcHJpbnQgIiAgICAkY1xuIjsKLQl9Ci0gICAgfSBlbHNlIHsKLQlwcmludCAiICAgIFlvdSBjYW4ndCBnZXQgdGhlcmUgZnJvbSBoZXJlXG4iOwotICAgIH0KLX0KLXJlYWRfY2l0aWVzKCJjaXRpZXMiKTsKLQotZmluZF9yb3V0ZSgiU2FsdCBMYWtlIENpdHkiLCJEZW52ZXIiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotRm9yIHRoZSBtb3N0IHBhcnQsIHRoZSBjb2RlIGlzIHRoZSBzYW1lIGV4Y2VwdCB0aGF0IHdlIGNhbiBub3cgYWNjZXNzIG1lbWJlcnMgb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgdXNpbmcgPHR0Pi0mZ3Q7PC90dD4gaW5zdGVhZCBvZiB0aGUgbG93IGxldmVsIGFjY2Vzc29yIGZ1bmN0aW9ucy4gbGlrZSBiZWZvcmUuICBIb3dldmVyLCB0aGlzIGV4YW1wbGUgaXMgb25seSBzY3JhdGNoaW5nIHRoZSBzdXJmYWNlIG9mIHdoYXQgY2FuIGJlIGRvbmUgd2l0aCBzaGFkb3cgY2xhc3Nlcy4uLmtlZXAgcmVhZGluZy48cD4KLTxhIG5hbWU9Im45Ij48L2E+PGgyPiBHZXR0aW5nIHNlcmlvdXM8L2gyPgotTm93IHRoYXQgd2UndmUgZ290IGEgdmVyeSBzaW1wbGUgZXhhbXBsZSB3b3JraW5nLCBpdCdzIHRpbWUgdG8gZ2V0IHJlYWxseSBzZXJpb3VzLiAgU3VwcG9zZSB0aGF0IGluIGFkZGl0aW9uIHRvIHdvcmtpbmcgd2l0aCB0aGUgbWlsZWFnZSBkYXRhIG9mIHZhcmlvdXMgY2l0aWVzLCB3ZSB3YW50IHRvIG1ha2UgYSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gZnJvbSBnZW9ncmFwaGljYWwgZGF0YSAobGF0dGl0dWRlL2xvbmdpdHVkZSkuICAgICBUbyBkbyB0aGlzLCB3ZSdsbCB1c2UgU1dJRyB0byAgZ2x1ZSB0b2dldGhlciBhIGJ1bmNoIG9mIHN0dWZmLiAgIEZpcnN0LCBmb3IgdGhlIHB1cnBvc2VzIG9mIGlsbHVzdHJhdGlvbiwgbGV0J3MgY3JlYXRlIGEgbmV3IEMgZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgYSBnZW9ncmFwaGljYWwgbG9jYXRpb24gd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IHdlIG1pZ2h0IHdhbnQgdG8gdXNlIGl0IGluIHNvbWUgQyBmdW5jdGlvbnMgbGF0ZXIgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiBsb2NhdGlvbi5oICovCi0vKiBEYXRhIHN0cnVjdHVyZSBmb3IgaG9sZGluZyBsb25naXR1ZGUgYW5kIGxhdHRpdHVkZSBpbmZvcm1hdGlvbiAqLwotCi10eXBlZGVmIHN0cnVjdCBMb2NhdGlvbiB7Ci0gIGNoYXIgICAgKm5hbWU7Ci0gIGRvdWJsZSAgbGF0X2RlZ3JlZXM7Ci0gIGRvdWJsZSAgbGF0X21pbnV0ZXM7Ci0gIGRvdWJsZSAgbGF0X3NlY29uZHM7Ci0gIGNoYXIgICAgbGF0X2RpcmVjdGlvbjsKLSAgZG91YmxlICBsb25nX2RlZ3JlZXM7Ci0gIGRvdWJsZSAgbG9uZ19taW51dGVzOwotICBkb3VibGUgIGxvbmdfc2Vjb25kczsKLSAgY2hhciAgICBsb25nX2RpcmVjdGlvbjsKLX0gTG9jYXRpb247Ci0KLWV4dGVybiBMb2NhdGlvbiAqbmV3X0xvY2F0aW9uKGNoYXIgKm5hbWUpOwotIAotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2UgYWxzbyAgcHJvYmFibHkgd2FudCBhIEMgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIG9uZSBvZiB0aGVzZSBvYmplY3RzOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiBsb2NhdGlvbi5jICovCi0jaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7Ci0KLS8qIE1ha2UgYSBuZXcgbG9jYXRpb24gKi8KLUxvY2F0aW9uICpuZXdfTG9jYXRpb24oY2hhciAqbmFtZSkgewotICBMb2NhdGlvbiAqbDsKLSAgbCA9IChMb2NhdGlvbiAqKSBtYWxsb2Moc2l6ZW9mKExvY2F0aW9uKSk7Ci0gIGwtJmd0O25hbWUgPSAoY2hhciAqKSBtYWxsb2Moc3RybGVuKG5hbWUpKzEpOwotICBzdHJjcHkobC0mZ3Q7bmFtZSxuYW1lKTsKLSAgcmV0dXJuIGw7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdyBsZXQncyBtYWtlIGFuIGludGVyZmFjZSBmaWxlIGZvciB0aGlzIG1vZHVsZSA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gRmlsZSA6IGxvY2F0aW9uLmkKLSVtb2R1bGUgbG9jYXRpb24KLSV7Ci0jaW5jbHVkZSAibG9jYXRpb24uaCIKLSV9Ci0KLSVpbmNsdWRlIGxvY2F0aW9uLmgKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2UgY291bGQgdXNlIHRoaXMgaW50ZXJmYWNlIGZpbGUgdG8gbWFrZSBhbiBlbnRpcmVseSBuZXcgUGVybDUgbW9kdWxlIG9yIHdlIGNhbiBjb21iaW5lIGl0IHdpdGggdGhlIGdyYXBoIG1vZHVsZS4gICAgSW4gdGhpcyBsYXR0ZXIgY2FzZSwgd2Ugc2ltcGx5IG5lZWQgdG8gcHV0ICI8dHQ+JWluY2x1ZGUgbG9jYXRpb24uaTwvdHQ+IiBpbiB0aGUgZmlsZSA8dHQ+Z3JhcGguaTwvdHQ+LjxwPgotPHA+Ci1Ob3csIGZpbmFsbHksIHdlIGNvdWxkIHdyaXRlIGEgUGVybCBmdW5jdGlvbiB0byByZWFkIGRhdGEgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQgOjxwPgotPHA+Ci08ZW0+R2VvZ3JhcGhpYyBkYXRhPC9lbT48cD4KLTxibG9ja3F1b3RlPjxwcmU+c3ViIHJlYWRfbG9jYXRpb25zIHsKLSAgICBteSAkZmlsZW5hbWUgPSBzaGlmdDsKLSAgICBvcGVuKExPQ0FUSU9OUywkZmlsZW5hbWUpOwotICAgIHdoaWxlICgmbHQ7TE9DQVRJT05TJmd0OykgewotCWNob3A7Ci0JbXkgQGEgPSBzcGxpdCgvLCArLyk7Ci0JbXkgJGxvYzsKLQkjIENoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGEgY2l0eSBJIGtub3cgYWJvdXQKLQlpZiAoZXhpc3RzICRDaXRpZXN7JGFbMF19KSB7Ci0JICAgICMgQ3JlYXRlIGEgbmV3IGxvY2F0aW9uCi0JICAgICRsb2MgPSBuZXdfTG9jYXRpb24oJGFbMF0pOwotCSAgICBteSBAY29vcmRzID0gc3BsaXQoJyAnLCRhWzFdKTsKLQkgICAgIyBBIG5pY2Ugd2F5IHRvIGFzc2lnbiBhdHRyaWJ1dGVzIHRvIGFuIG9iamVjdAotCSAgICAlJGxvYyA9IChsYXRfZGVncmVlcyA9Jmd0OyAkY29vcmRzWzBdLAotCQkgICAgIGxhdF9taW51dGVzID0mZ3Q7ICRjb29yZHNbMV0sCi0JCSAgICAgbGF0X3NlY29uZHMgPSZndDsgJGNvb3Jkc1syXSwKLQkJICAgICBsYXRfZGlyZWN0aW9uID0mZ3Q7ICRjb29yZHNbM10sCi0JCSAgICAgbG9uZ19kZWdyZWVzID0mZ3Q7ICRjb29yZHNbNF0sCi0JCSAgICAgbG9uZ19taW51dGVzID0mZ3Q7ICRjb29yZHNbNV0sCi0JCSAgICAgbG9uZ19zZWNvbmRzID0mZ3Q7ICRjb29yZHNbNl0sCi0JCSAgICAgbG9uZ19kaXJlY3Rpb24gPSZndDsgJGNvb3Jkc1s3XSk7Ci0JICAgIG15ICR2ID0gJENpdGllc3skYVswXX0tJmd0O3t2fTsKLQkgICAgJExvY2F0aW9uc3skdn0gPSAkbG9jOwotCX0KLSAgICB9Ci0gICAgY2xvc2UgTE9DQVRJT05TOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQWdhaW4sIHdlIGFyZSB1c2luZyBzaGFkb3cgY2xhc3NlcyB3aGljaCBhcmUgYWxsb3dpbmcgdXMgdG8gYXNzaWduIGFsbCBvZiB0aGUgYXR0cmlidXRlcyBvZiBhIEMgc3RydWN0dXJlIGluIHRoZSBzYW1lIHdheSBhcyBvbmUgd291bGQgY3JlYXRlIGEgUGVybCBoYXNoIHRhYmxlLiBXZSBoYXZlIGFsc28gY3JlYXRlZCB0aGUgPHR0PiVMb2NhdGlvbnM8L3R0PiBoYXNoIHRvIGFzc29jaWF0ZSBub2RlIG51bWJlcnMgd2l0aCBhIGdpdmVuIGxvY2F0aW9uIG9iamVjdC48cD4KLTxwPgotT2YgY291cnNlLCBoYXZpbmcgbG9jYXRpb25zIGlzbid0IHRvbyB1c2VmdWwgd2l0aG91dCBhIHdheSB0byBsb29rIGF0IHRoZW0gc28gd2UnbGwgZ3JhYiB0aGUgcHVibGljIGRvbWFpbiA8dHQ+Z2Q8L3R0PiBsaWJyYXJ5IGJ5IFRob21hcyBCb3V0ZWxsLiAgIEZpcnN0LCB3ZSdsbCB3cml0ZSBhIHNpbXBsZSBDIGZ1bmN0aW9uIHRvIGRyYXcgdHdvIGxvY2F0aW9ucyBhbmQgZHJhdyBhIGxpbmUgYmV0d2VlbiB0aGVtIChzb21lIGNvZGUgaGFzIGJlZW4gb21pdHRlZCBmb3IgY2xhcml0eSkgOi48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogcGxvdC5jICovCi0jaW5jbHVkZSAmbHQ7Z2QuaCZndDsKLSNpbmNsdWRlICZsdDtnZGZvbnRzLmgmZ3Q7Ci0jaW5jbHVkZSAibG9jYXRpb24uaCIKLWRvdWJsZSB4bWluLHltaW4seG1heCx5bWF4OyAgIC8qIFBsb3R0aW5nIHJhbmdlICovCi0KLS8qIE1ha2UgYSBwbG90IG9mIHR3byBsb2NhdGlvbnMgd2l0aCBhIGxpbmUgYmV0d2VlbiB0aGVtICovCi12b2lkIHBsb3RfY2l0aWVzKGdkSW1hZ2VQdHIgaW0sIExvY2F0aW9uICpjaXR5MSwgTG9jYXRpb24gKmNpdHkyLAotCQkgICAgIGludCBjb2xvcikgewotLi4uCi0gIC8qIENvbnZlcnQgdGhlIHR3byBsb2NhdGlvbnMgaW50byBzY3JlZW4gY29vcmRpbmF0ZXMgKGJ1bmNoIGBvIG1hdGgpICovCi0uLi4KLSAgLyogRHJhdyB0aGUgY2l0aWVzICovCi0gIGdkSW1hZ2VTdHJpbmcoaW0sZ2RGb250U21hbGwsLi4uKQotICBnZEltYWdlU3RyaW5nKGltLGdkRm9udFNtYWxsLC4uLikKLSAgZ2RJbWFnZUxpbmUoaW0saXgxLGhlaWdodC1peTEsaXgyLGhlaWdodC1peTIsY29sb3IpOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1OZXh0LCB3ZSdsbCB3cmFwIGEgZmV3IGNyaXRpY2FsIGdkIGZ1bmN0aW9ucyBpbnRvIFBlcmwuICAgV2UgZG9uJ3QgbmVlZCB0aGUgZW50aXJlIGxpYnJhcnkgc28gdGhlcmUncyBub3QgbXVjaCBzZW5zZSBpbiB3cmFwcGluZyB0aGUgd2hvbGUgdGhpbmcgKGl0J3MgZWFzeSBlbm91Z2ggdG8gZG8gaWYgeW91IHJlYWxseSB3YW50IHRvIG9mIGNvdXJzZSkuIFdlJ2xsIGp1c3Qgd3JhcCBhIGNvdXBsZSBvZiBmdW5jdGlvbnMgdG8gaWxsdXN0cmF0ZSBob3cgaXQgY2FuIGJlIHVzZWQgKG9uZSBtaWdodCBhbHNvIGNvbnNpZGVyIHVzaW5nIHRoZSBhbHJlYWR5IGV4aXN0aW5nIGdkIG1vZHVsZSBmb3IgUGVybCBhcyB3ZWxsKS4gPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBnZAotJXsKLSNpbmNsdWRlICJnZC5oIgotJX0KLXR5cGVkZWYgc3RydWN0IGdkSW1hZ2VTdHJ1Y3QgZ2RJbWFnZTsKLXR5cGVkZWYgZ2RJbWFnZSAqIGdkSW1hZ2VQdHI7Ci0KLS8qIEZ1bmN0aW9ucyB0byBtYW5pcHVsYXRlIGltYWdlcy4gKi8KLWdkSW1hZ2VQdHIgZ2RJbWFnZUNyZWF0ZShpbnQgc3gsIGludCBzeSk7Ci1pbnQgIGdkSW1hZ2VDb2xvckFsbG9jYXRlKGdkSW1hZ2VQdHIgaW0sIGludCByLCBpbnQgZywgaW50IGIpOwotJWlubGluZSAlewotICAvKiBTaG9ydGN1dCBmb3IgZHVtcGluZyBhIGZpbGUgKi8KLSAgdm9pZCBkdW1wX2dpZihnZEltYWdlUHRyIGltLCBjaGFyICpmaWxlbmFtZSkgewotICAgIEZJTEUgKmY7Ci0gICAgZiA9IGZvcGVuKGZpbGVuYW1lLCAidyIpOwotICAgIGdkSW1hZ2VHaWYoaW0sZik7Ci0gICAgZmNsb3NlKGYpOwotICB9Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XZSBjYW4gbm93IHNsYXAgZXZlcnl0aGluZyB0b2dldGhlciB1c2luZyBhIG5ldyBpbnRlcmZhY2UgZmlsZSBsaWtlIHRoaXMuIHdlJ2xsIGtlZXAgdGhlIG9sZCBncmFwaCBtb2R1bGUgbmFtZSBzbyBvdXIgZXhpc3Rpbmcgc2NyaXB0cyBzdGlsbCB3b3JrIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyBGaWxlIDogcGFja2FnZS5pCi0lbW9kdWxlIGdyYXBoCi0laW5jbHVkZSBncmFwaC5pICAgICAgICAgICAvLyBUaGUgb3JpZ2luYWwgZ3JhcGggcHJvZ3JhbQotJWluY2x1ZGUgbG9jYXRpb24uaSAgICAgICAgLy8gVGhlIGxvY2F0aW9uIGRhdGEgc3RydWN0dXJlIGFuZCBmdW5jdGlvbnMKLSVpbmNsdWRlIGdkLmkgICAgICAgICAgICAgIC8vIGdkIG1vZHVsZQotJWluY2x1ZGUgcGxvdC5jICAgICAgICAgICAgLy8gRnVuY3Rpb24gdG8gcGxvdCBjaXRpZXMKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hldyEgQWZ0ZXIgYWxsIG9mIHRoYXQgd29yaywgd2UgY2FuIGRvIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnJlYWRfY2l0aWVzKCJjaXRpZXMiKTsKLXJlYWRfbG9jYXRpb25zKCJsb2NhdGlvbnMiKTsKLQotIyBDcmVhdGUgYSBuZXcgaW1hZ2Ugd2l0aCBnZAotJGltID0gZ2RJbWFnZUNyZWF0ZSg1MDAsNTAwKTsKLSR3aGl0ZSA9IGdkSW1hZ2VDb2xvckFsbG9jYXRlKCRpbSwyNTUsMjU1LDI1NSk7Ci0kYmxhY2sgPSBnZEltYWdlQ29sb3JBbGxvY2F0ZSgkaW0sMCwwLDApOwotCi0jIFNldCBwbG90dGluZyByYW5nZSAodmFyaWFibGVzIGluIHRoZSBDIGNvZGUpCi0keG1pbiA9IC0xMzA7Ci0keG1heCA9IC05MDsKLSR5bWluID0gMzA7Ci0keW1heCA9IDUwOwotCi0jIE1ha2UgYSBwbG90IG9mIHRoZSBlbnRpcmUgZ3JhcGgKLUBsb2MgPSBlYWNoICVDaXRpZXM7Ci13aGlsZSAoQGxvYykgewotICAgIG15ICRjaXR5ID0gJGxvY1swXTsKLSAgICBteSAkbm9kZSA9ICRDaXRpZXN7JGNpdHl9OwotICAgIGlmIChleGlzdHMgJExvY2F0aW9uc3skbm9kZS0mZ3Q7e3Z9fSkgewotCW15ICRsb2MxID0gJExvY2F0aW9uc3skbm9kZS0mZ3Q7e3Z9fTsKLQlteSAkZSA9ICRub2RlLSZndDt7YWRqfTsKLQl3aGlsZSAoZGVmaW5lZCgkZSkpIHsKLSAgIAkgICAgICBpZiAoZXhpc3RzICRMb2NhdGlvbnN7JGUtJmd0O3tub2RlfS0mZ3Q7e3Z9fSkgewotCQkgIG15ICRsb2MyID0gJExvY2F0aW9uc3skZS0mZ3Q7e25vZGV9LSZndDt7dn19OwotCQkgIHBsb3RfY2l0aWVzKCRpbSwkbG9jMSwkbG9jMiwkYmxhY2spOwotCSAgICAgIH0KLQkgICAgICAkZSA9ICRlLSZndDt7bmV4dH07Ci0JICB9Ci0gICAgfQotICAgIEBsb2MgPSBlYWNoICVDaXRpZXM7Ci19Ci0jIER1bXAgb3V0IGEgR0lGIGZpbGUKLWR1bXBfZ2lmKCRpbSwidGVzdC5naWYiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBydW4sIHdlIG5vdyBnZXQgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD48Y2VudGVyPjxpbWcgc3JjPSJjaDguMi5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08cD4KLU5vdCB0b28gYmFkIGZvciBqdXN0IGEgbGl0dGxlIHdvcmsuLi4uPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDI+IFdyYXBwaW5nIEMgbGlicmFyaWVzIGFuZCBvdGhlciBwYWNrYWdlczwvaDI+Ci1TV0lHIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIFBlcmwgaW50ZXJmYWNlcyB0byBleGlzdGluZyBDIGxpYnJhcmllcyBhbmQgcGFja2FnZXMuIFRoZSBnZW5lcmFsIHN0cmF0ZWd5IGZvciBkb2luZyB0aGlzIGlzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08dWw+Ci08bGk+TG9jYXRlIGltcG9ydGFudCBoZWFkZXIgZmlsZXMgZm9yIHRoZSBwYWNrYWdlLgotPGxpPkNvcHkgdGhlbSBpbnRvIGEgU1dJRyBpbnRlcmZhY2UgZmlsZS4KLTxsaT5FZGl0IHRoZSBpbnRlcmZhY2UgZmlsZSBieSByZW1vdmluZyBwcm9ibGVtYXRpYyBkZWNsYXJhdGlvbnMsIHVubmVlZGVkIGZ1bmN0aW9ucywgYW5kIG90aGVyIGNsdXR0ZXIgKHRoaXMgY2FuIG9mdGVuIGJlIGZvdW5kIGJ5IGp1c3QgcnVubmluZyBTV0lHKS4KLTxsaT5BZGQgc3VwcG9ydCBmdW5jdGlvbnMgdG8gaW1wcm92ZSB0aGUgaW50ZXJmYWNlLgotPC91bD4KLTxwPgotV2hpbGUgU1dJRyBjYW4gc29tZXRpbWVzIGJlIHVzZWQgdG8gc2ltcGx5IHByb2Nlc3MgYSByYXcgaGVhZGVyIGZpbGUsIHRoZSByZXN1bHRzIGFyZW4ndCBhbHdheXMgd2hhdCB5b3Ugd291bGQgZXhwZWN0LiAgIEJ5IHdvcmtpbmcgd2l0aCBhIHNlcGFyYXRlIGludGVyZmFjZSBmaWxlLCB5b3UgZ2V0IGFuIG9wcG9ydHVuaXR5IHRvIGNsZWFuIHRoaW5ncyB1cC4gICBJZiB5b3UncmUgdXNpbmcgYSBzdGFibGUgcGFja2FnZSwgY2hhbmNlcyBhcmUgdGhhdCBpdCdzIG5vdCBnb2luZyB0byBjaGFuZ2Ugc3VkZGVubHkgc28gdGhlcmUgaXMgcmVhbGx5IGxpdHRsZSBwcm9ibGVtIGluIGRvaW5nIHRoaXMuICAgVG8gaWxsdXN0cmF0ZSB0aGUgcHJvY2Vzcywgd2Ugd2lsbCBidWlsZCBhIFBlcmw1IGludGVyZmFjZSB0byBNQVRMQUIgaW4gdGhlIG5leHQgZXhhbXBsZS48cD4KLTxhIG5hbWU9Im4xMSI+PC9hPjxoMj4gQnVpbGRpbmcgYSBQZXJsNSBpbnRlcmZhY2UgdG8gTUFUTEFCPC9oMj4KLVRvIGlsbHVzdHJhdGUgdGhlIHByb2Nlc3MsIHdlIGNhbiBidWlsZCBhIFBlcmw1IGludGVyZmFjZSB0byBNQVRMQUIgYnkgd3JhcHBpbmcgaXRzIEMgQVBJLiAgVGhlIE1BVExBQiBzeXN0ZW0gY29uc2lzdHMgb2YgdGhlIE1BVExBQiBlbmdpbmUsIGFuZCBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyBtYXRyaWNlcywgYW5kIGEgY29sbGVjdGlvbiBvZiB1dGlsaXR5IGZ1bmN0aW9uLiAgQSBmdWxsIGRlc2NyaXB0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgIkV4dGVybmFsIEludGVyZmFjZSBHdWlkZSIgcHJvdmlkZWQgd2l0aCBNQVRMQUIuICAgRXZlbiBpZiB5b3UgZG9uJ3QgaGF2ZSBNQVRMQUIsIHRoaXMgc2VjdGlvbiBjYW4gcHJvdmlkZSBzb21lIGlkZWFzIG9uIGhvdyB0byBoYW5kbGUgb3RoZXIgbGlicmFyaWVzLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBUaGUgTUFUTEFCIGVuZ2luZSBpbnRlcmZhY2U8L2gzPgotVGhlIGZpcnN0IHN0ZXAgaW4gYnVpbGRpbmcgYW4gaW50ZXJmYWNlIHdpbGwgYmUgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gdGhlIE1BVExBQiBlbmdpbmUuICBUaGlzIGlzIGEgc2VwYXJhdGUgcHJvY2VzcyB0aGF0IHJ1bnMgaW4gdGhlIGJhY2tncm91bmQsIGJ1dCB3ZSBuZWVkIHRvIGhhdmUgc29tZSBtZWNoYW5pc20gZm9yIHN0YXJ0aW5nIGl0IGFuZCBpc3N1aW5nIGNvbW1hbmRzLiAgICAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gdGhlIE1BVExBQiBpbnRlcmZhY2UuLDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPjx0dD5pbnQgICAgICBlbmdDbG9zZShFbmdpbmUgKmVwKTsKLWludCAgICAgIGVuZ0V2YWxTdHJpbmcoRW5naW5lICplcCwgY2hhciAqc3RyaW5nKTsKLU1hdHJpeCAgKmVuZ0dldE1hdHJpeChFbmdpbmUgKmVwLCBjaGFyICpuYW1lKTsKLWludCAgICAgIGVuZ1B1dE1hdHJpeChFbmdpbmUgKmVwLCBNYXRyaXggKm1wKTsKLUVuZ2luZSAgKmVuZ09wZW4oY2hhciAqc3RhcnRjb21tYW5kKTsKLXZvaWQgICAgIGVuZ091dHB1dEJ1ZmZlcihFbmdpbmUgKmVwLCBjaGFyICpwLCBpbnQgc2l6ZSk7Ci0KLTwvdHQ+PC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpbGUgd2UgY291bGQgd3JhcCB0aGVzZSBkaXJlY3RseSwgZWFjaCBmdW5jdGlvbiByZXF1aXJlcyBhbiBvYmplY3QgIkVuZ2luZSIuICAgVGhleSBjb3VsZCBiZSBhIGxpdHRsZSBhbm5veWluZyB0byB1c2UgaW4gUGVybCBzaW5jZSB3ZSB3b3VsZCBoYXZlIHRvIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBlbmdpbmUgd2l0aCBldmVyeSBjb21tYW5kLiAgIFRoaXMgcHJvYmFibHkgaXNuJ3QgbmVjZXNzYXJ5IG9yIGRlc2lyZWQuICAgICBUaHVzLCB3ZSBjb3VsZCB3cml0ZSBzb21lIHdyYXBwZXJzIGFyb3VuZCB0aGVzZSB0byBwcm9kdWNlIGEgYmV0dGVyIGludGVyZmFjZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBlbmdpbmUuaSA6IFNXSUcgZmlsZSBmb3IgTUFUTEFCIGVuZ2luZQotJXsKLSNkZWZpbmUgQlVGRkVSX1NJWkUgICAzMjc2OAotc3RhdGljIEVuZ2luZSAgKmVuZyA9IDA7Ci1zdGF0aWMgY2hhciAgIG1sX291dHB1dFtCVUZGRVJfU0laRV07ICAgLyogUmVzdWx0IEJ1ZmZlciAqLwotJX0KLQotJWlubGluZSAlewotCi0KLS8qIEluaXRpYWxpemUgdGhlIE1BVExBQiBlbmdpbmUgKi8KLWludCBpbml0KHZvaWQpIHsKLQlpZiAoZW5nKSByZXR1cm4gLTE7ICAgLyogQWxyZWFkeSBvcGVuICovCi0JaWYgKCEoZW5nID0gZW5nT3BlbigibWF0bGFiNDIiKSkpIHsKLQkgIGZwcmludGYoc3RkZXJyLCJVbmFibGUgdG8gb3BlbiBtYXRsYWIuXG4iKTsKLQkgIHJldHVybiAtMTsKLSAgICAgICB9Ci0JZW5nT3V0cHV0QnVmZmVyKGVuZyxtbF9vdXRwdXQsQlVGRkVSX1NJWkUpOwotCXJldHVybiAwOwotfQotLyogRXhlY3V0ZSBhIE1BVExBQiBjb21tYW5kICovCi1jaGFyICptYXRsYWIoY2hhciAqYykgewotCWlmICghZW5nKSByZXR1cm4gIm5vdCBpbml0aWFsaXplZCEiOwotCWVuZ0V2YWxTdHJpbmcoZW5nLCBjKTsKLQlyZXR1cm4gJmFtcDttbF9vdXRwdXRbMF07Ci19Ci0KLS8qIEdldCBhIG1hdHJpeCBmcm9tIE1BVExBQiAqLwotTWF0cml4ICpHZXRNYXRyaXgoY2hhciAqbmFtZSkgewotCWlmICghZW5nKSByZXR1cm4gKE1hdHJpeCAqKSAwOwotCXJldHVybihlbmdHZXRNYXRyaXgoZW5nLG5hbWUpKTsKLX0KLQotLyogU2VuZCBhIG1hdHJpeCB0byBNQVRMQUIgKi8KLWludCBQdXRNYXRyaXgoTWF0cml4ICptKSB7Ci0JaWYgKCFlbmcpIHJldHVybiAtMTsKLQlyZXR1cm4oZW5nUHV0TWF0cml4KGVuZyxtKSk7Ci19Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMzQiPjwvYT48aDM+IFdyYXBwaW5nIHRoZSBNQVRMQUIgbWF0cml4IGZ1bmN0aW9uczwvaDM+Ci1OZXh0LCB3ZSBuZWVkIHRvIGJ1aWxkIGFuIGludGVyZmFjZSB0byB0aGUgTUFUTEFCIG1hdHJpeCBtYW5pcHVsYXRpb24gbGlicmFyeS4gICBUaGlzIGxpYnJhcnkgY29udGFpbnMgYWJvdXQgMzAgZnVuY3Rpb25zIHRvIG1hbmlwdWxhdGUgYm90aCByZWFsIGFuZCBjb21wbGV4IHZhbHVlZCBtYXRyaWNlcy4gIEhlcmUgd2Ugd2lsbCBvbmx5IGNvbnNpZGVyIHJlYWwtdmFsdWVkIG1hdHJpY2VzLiAgICBUbyBwcm92aWRlIGFjY2VzcyB0byB0aGUgbWF0cmljZXMsIHdlJ2xsIHdyaXRlIGEgZGlmZmVyZW50IGludGVyZmFjZSBmaWxlIHdpdGggYSBsaXN0IG9mIHRoZSBmdW5jdGlvbnMgYWxvbmcgd2l0aCBhIGZldyBoZWxwZXIgZnVuY3Rpb25zLjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLS8vCi0vLyBteC5pIDogU1dJRyBmaWxlIGZvciBNQVRMQUIgbWF0cml4IG1hbmlwdWxhdGlvbgotJWlubGluZSAlewotLyogR2V0IGFuIGVsZW1lbnQgZnJvbSBhIG1hdHJpeCAqLwotZG91YmxlIGdldHIoTWF0cml4ICptYXQsIGludCBpLCBpbnQgaikgewotICBkb3VibGUgKnByOwotICBpbnQgbTsKLSAgcHIgPSBteEdldFByKG1hdCk7Ci0gIG0gPSBteEdldE0obWF0KTsKLSAgcmV0dXJuIHByW20qaiArIGldOwotfQotLyogU2V0IGFuIGVsZW1lbnQgb2YgYSBtYXRyaXggKi8KLXZvaWQgc2V0cihNYXRyaXggKm1hdCwgaW50IGksIGludCBqLCBkb3VibGUgdmFsKSB7Ci0gIGRvdWJsZSAqcHI7Ci0gIGludCBtOwotICBwciA9IG14R2V0UHIobWF0KTsKLSAgbSA9IG14R2V0TShtYXQpOwotICAgIHByW20qaiArIGldID0gdmFsOwotfQotJX0KLQotLyogTm93IHNvbWUgTUFUTEFCIGNvbW1hbmQgKi8KLU1hdHJpeCAqbXhDcmVhdGVGdWxsKGludCBtLCBpbnQgbiwgaW50IENvbXBsZXhGbGFnKTsKLWludCBteEdldE0oTWF0cml4ICptYXQpOwotaW50IG14R2V0TihNYXRyaXggKm1hdCk7Ci1jaGFyICpteEdldE5hbWUoTWF0cml4ICptYXQpOwotdm9pZCBteFNldE5hbWUoTWF0cml4ICptYXQsIGNoYXIgKm5hbWUpOwotZG91YmxlICpteEdldFByKE1hdHJpeCAqbWF0KTsKLXZvaWQgbXhTZXRQcihNYXRyaXggKm1hdCwgZG91YmxlICpwcik7Ci1kb3VibGUgbXhHZXRTY2FsYXIoTWF0cml4ICptYXQpOwotdm9pZCBteEZyZWVNYXRyaXgoTWF0cml4ICpwbSk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMzUiPjwvYT48aDM+IFB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyPC9oMz4KLUZpbmFsbHkgd2UgYXJlIHJlYWR5IHRvIHB1dCBvdXIgaW50ZXJmYWNlIHRvZ2V0aGVyLiAgIFRoZXJlIGlzIG5vIG5lZWQgdG8gYnVpbGQgYSBiaWcgbW9ub2xpdGhpYyBpbnRlcmZhY2UgZmlsZS0td2UgY2FuIHNpbXBseSBidWlsZCBpdCB1cCBpbiBwaWVjZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIG1hdGxhYi5pCi0vLyBTaW1wbGUgU1dJRyBpbnRlcmZhY2UgdG8gTUFUTEFCCi0lbW9kdWxlIG1hdGxhYgotJXsKLSNpbmNsdWRlICJlbmdpbmUuaCIKLSV9Ci0laW5jbHVkZSBlbmdpbmUuaQotJWluY2x1ZGUgbXguaQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1PdXIgbW9kdWxlIGNhbiBiZSBjb21waWxlZCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtcGVybDUgbWF0bGFiLmkKLXVuaXggJmd0OyBnY2MgLWMgbWF0bGFiX3dyYXAuYyAtSS91c3IvbG9jYWwvbGliL3Blcmw1L2FyY2gtb3NuYW1lLzUuMDAzL0NPUkUgLURib29sPWNoYXIgCi0JLUkkKE1BVExBQikvZXh0ZXJuL2luY2x1ZGUKLXVuaXggJmd0OyBsZCAtc2hhcmVkIG1hdGxhYl93cmFwLm8gLUwkKE1BVExBQikvZXh0ZXJuL2xpYiAtbG1hdCAtbyBtYXRsYWIuc28KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlcmU8dHQ+ICQoTUFUTEFCKSA8L3R0PmlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgTUFUTEFCIGluc3RhbGxhdGlvbiAoeW91IG1heSBoYXZlIHRvIGRpZyBmb3IgdGhpcykuPHA+Ci08cD4KLVdpdGggb3VyIG5ldyBNQVRMQUIgbW9kdWxlLCB3ZSBjYW4gbm93IHdyaXRlIFBlcmwgc2NyaXB0cyB0aGF0IGlzc3VlIE1BVExBQiBjb21tYW5kcy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVzZSBtYXRsYWI7Ci1tYXRsYWI6OmluaXQoKTsKLW1hdGxhYjo6bWF0bGFiKCJ4ID0gLTg6LjI1Ojg7IFwKLSAgICAgICAgICAgICAgICB5ID0geDsgXAotICAgICAgICAgICAgICAgIFtYLFldID0gbWVzaGdyaWQoeCx5KTsgXAotICAgICAgICAgICAgICAgIFIgPSBzcXJ0KFguXjIgKyBZLl4yKStlcHM7IFwKLSAgICAgICAgICAgICAgICBaID0gc2luKFIpLi9SOyBcCi0gICAgICAgICAgICAgICAgbWVzaChaKTsgIik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUNyZWF0ZXMgYSBzaW1wbGUgM0Qgc3VyZmFjZSBwbG90LjxwPgotPGEgbmFtZT0ibjM2Ij48L2E+PGgzPiBHcmFwaGljYWwgV2ViLVN0YXRpc3RpY3MgaW4gUGVybDU8L2gzPgotTm93LCBsZXRzIHVzZSBvdXIgTUFUTEFCIG1vZHVsZSB0byBnZW5lcmF0ZSBwbG90cyBvZiB3ZWItc2VydmVyIGhpdHMgZm9yIGEgZ2l2ZW4gbW9udGguICBUbyBkbyB0aGlzLCB3ZSdsbCB1c2Ugb3VyIE1BVExBQiBtb2R1bGUsIGFuZCBjcmVhdGUgYSBzcGVjaWFsIHB1cnBvc2UgZnVuY3Rpb24gZm9yIHByb2Nlc3NpbmcgZGF5cyBhbmQgaG91cnMuICAgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gU2ltcGxlIEMgZnVuY3Rpb24gZm9yIHJlY29yZGluZyBhIGhpdAotJW1vZHVsZSB3ZWJncmFwaAotJWlubGluZSAlCi0Jdm9pZCBoaXQoZG91YmxlICptLCBpbnQgZGF5LCBpbnQgaG91cikgewotCQlpZiAoKGRheSAmZ3Q7PSAwKSAmYW1wOyZhbXA7IChkYXkgJmx0Oz0gMzEpKSB7Ci0JCQkqKG0rMjQqKGRheS0xKStob3VyKSArPSAxLjA7Ci0JCX0KLQl9Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGlsZSB3ZSBjb3VsZCB3cml0ZSB0aGlzIGZ1bmN0aW9uIGluIFBlcmwsIGl0IHdpbGwgYmUgbXVjaCBmYXN0ZXIgaW4gQy4gIElmIHdlJ3JlIHByb2Nlc3NpbmcgYSBodWdlIGZpbGUsIHRoZW4gdGhlIGV4dHJhIGJpdCBvZiBwZXJmb3JtYW5jZSB3aWxsIGhlbHAgdXMgb3V0LiAgT25jZSBjb21waWxlZCwgd2UgY2FuIG5vdyB3cml0ZSBhIFBlcmw1IHNjcmlwdCBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVzZSBtYXRsYWI7Ci11c2Ugd2ViZ3JhcGg7Ci0KLSMgSW5pdGlhbGl6ZSBtYXRsYWIgZW5naW5lCi1tYXRsYWI6OmluaXQoKTsKLSMgTWFrZSBhIG1hdHJpeCBmb3IgYWxsIGhpdHMKLSRtX2FsbCA9IG1hdGxhYjo6bXhDcmVhdGVGdWxsKDI0LDMxLDApOwotbWF0bGFiOjpteFNldE5hbWUoJG1fYWxsLCJhbGwiKTsKLSRhbGwgPSBtYXRsYWI6Om14R2V0UHIoJG1fYWxsKTsgICAgICAgICAjIEdldCBkb3VibGUgKiBvZiBNYXRyaXgKLQotZm9yZWFjaCAkZmlsZSAoQEFSR1YpIHsKLSAgb3BlbihGSUxFLCRmaWxlKTsKLSAgcHJpbnQgIlByb2Nlc3NpbmcgIiwkZmlsZSwiXG4iOwotICB3aGlsZSAoJmx0O0ZJTEUmZ3Q7KSB7CQkKLSAgICBAZmllbGRzID0gc3BsaXQoL1xzKy8sICRfKTsKLSAgICBuZXh0IGlmICgkZmllbGRzWzhdICE9IDIwMCk7Ci0gICAgQGRhdGV0aW1lID0gc3BsaXQoL1xbfFwvfDovLCAkZmllbGRzWzNdKTsKLSAgICBpZiAoJGRhdGV0aW1lWzJdID1+IC9BcHIvKSB7Ci0gICAgICB3ZWJncmFwaDo6aGl0KCRhbGwsICRkYXRldGltZVsxXSwkZGF0ZXRpbWVbNF0pOwotICAgIH0KLSAgfQotICAjIER1bXAgdGVtcG9yYXJ5IHJlc3VsdHMKLX0gICNmb3JlYWNoCi1tYXRsYWI6OlB1dE1hdHJpeCgkbV9hbGwpOwotbWF0bGFiOjptYXRsYWIoImZpZ3VyZSgxKTsgXAotICAgICAgICAgICAgICAgIHN1cmYoYWxsKTsgXAotICAgICAgICAgICAgICAgIHZpZXcoNDAsNDApOyBcCi0gICAgICAgICAgICAgICAgc2hhZGluZyBpbnRlcnA7IFwKLSAgICAgICAgICAgICAgICB0aXRsZSgnQWxsIGhpdHMnKTsgXAotICAgICAgICAgICAgICAgIHNldChnY2EsJ3hsYWJlbCcsdGV4dCgwLDAsJ0RheScpKTsgXAotICAgICAgICAgICAgICAgIHNldChnY2EsJ3lsYWJlbCcsdGV4dCgwLDAsJ0hvdXInKSk7IFwKLSAgICAgICAgICAgICAgICBwcmludCAtZGdpZjggc3RhdHNfYWxsLmdpZiIpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHJ1biBvbiB0aGUgd2ViLXNlcnZlciBsb2dzIGZvciB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCB0aGlzIHNjcmlwdCBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIEdJRiBmaWxlIChzaG93aW5nIGhpdHMgcGVyIGhvdXIpIDo8cD4KLTxwPjxjZW50ZXI+PGltZyBzcmM9ImNoOC4zLnBuZyI+PC9jZW50ZXI+PHA+Ci08cD4KLTxwPgotPGEgbmFtZT0ibjEyIj48L2E+PGgyPiBIYW5kbGluZyBvdXRwdXQgdmFsdWVzICh0aGUgZWFzeSB3YXkpPC9oMj4KLVNvbWUgQyBsaWJyYXJpZXMgcmVseSBvbiBmdW5jdGlvbnMgdGhhdCByZXR1cm4gdmFsdWVzIGluIHRoZWlyIGFyZ3VtZW50cy4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGZhZGQoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKnJlc3VsdCkgewotCSpyZXN1bHQgPSBhK2I7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUJ5IGRlZmF1bHQsIFNXSUcgZG9lcyBub3QgaGFuZGxlIHRoaXMgY2FzZSAobGVhdmluZyBpdCB1cCB0byB5b3UgdG8gZmlndXJlIG91dCB3aGF0IHRvIGRvIGFib3V0IHRoZSA8dHQ+cmVzdWx0PC90dD4gcGFyYW1ldGVyKS4gIEhvd2V2ZXIsIHRoaXMgcHJvYmxlbSBpcyBlYXNpbHkgZml4ZWQgdXNpbmcgdGhlIDx0dD50eXBlbWFwcy5pPC90dD4gbGlicmFyeSBmaWxlIChzZWUgdGhlIFR5cGVtYXBzIGNoYXB0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLiAgIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBTV0lHIGludGVyZmFjZSBmaWxlIHdpdGggb3V0cHV0IGFyZ3VtZW50cwotJW1vZHVsZSBleGFtcGxlCi0KLSVpbmNsdWRlIHR5cGVtYXBzLmkgICAgICAgICAgICAgICAgICAgICAgIC8vIExvYWQgdGhlIHR5cGVtYXBzIGxpYnJheXIKLSVhcHBseSBkb3VibGUgKk9VVFBVVCB7ZG91YmxlICpyZXN1bHR9OyAgIC8vIE1ha2UgInJlc3VsdCIgYW4gb3V0cHV0IHBhcmFtZXRlcgotCi12b2lkIGZhZGQoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKnJlc3VsdCk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdoZW4gdXNlZCBpbiBhIFBlcmwgc2NyaXB0LCB0aGUgZmFkZCBmdW5jdGlvbiBub3cgdGFrZXMgMiBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JGEgPSBmYWRkKDMsNCk7ICAgICAgICAgICAgIyAkYSBnZXRzIHRoZSB2YWx1ZSBvZiBkb3VibGUgKnJlc3VsdAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIG11bHRpcGxlIG91dHB1dCBhcmd1bWVudHMgYXJlIGludm9sdmVkLCBhIFBlcmwgYXJyYXkgb2YgdmFsdWVzIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGVhZC4gICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSBQZXJsIHJlZmVyZW5jZXMgYXMgZnVuY3Rpb24gdmFsdWVzLiAgVGhpcyBpcyBkb25lIGFzIHNob3duIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBTV0lHIGludGVyZmFjZSBmaWxlIHdpdGggb3V0cHV0IGFyZ3VtZW50cwotJW1vZHVsZQotJWluY2x1ZGUgdHlwZW1hcHMuaQotCi0lYXBwbHkgZG91YmxlICpSRUZFUkVOQ0Uge2RvdWJsZSAqcmVzdWx0fTsgICAgLy8gTWFrZSAicmVzdWx0IiBhIFBlcmwgcmVmZXJlbmNlCi0KLXZvaWQgZmFkZChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqcmVzdWx0KTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93IGluIGEgUGVybCBzY3JpcHQsIHRoZSBmdW5jdGlvbiB3b3JrcyBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiRjID0gMC4wOyAgICAgICAgICAgICAgICAgICAgIyBWYXJpYWJsZSBmb3IgaG9sZGluZyB0aGUgcmVzdWx0Ci1mYWRkKDMsNCxcJGMpOyAgICAgICAgICAgICAgICMgZmFkZCgpIHBsYWNlcyB0aGUgcmVzdWx0IGluICRjCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIGFkZGl0aW9uIHRvIGhhbmRsaW5nIHBvaW50ZXJzIGFzIG91dHB1dCB2YWx1ZXMgb3IgcmVmZXJlbmNlcywgdHdvIG90aGVyIG1ldGhvZHMgYXJlIGF2YWlsYWJsZS4gIFRoZSA8dHQ+SU5QVVQ8L3R0PiBtZXRob2QgaW5kaWNhdGVzIHRoYXQgYSBwb2ludGVyIGlzIGFuIGlucHV0IHZhbHVlIGFuZCB0aGUgPHR0PkJPVEg8L3R0PiBtZXRob2QgaW5kaWNhdGVzIHRoYXQgYSBwb2ludGVyIGlzIGJvdGggYW4gaW5wdXQgYW5kIG91dHB1dCB2YWx1ZS4gICAgVGhlc2Ugd291bGQgYmUgc3BlY2lmaWVkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVhcHBseSBkb3VibGUgKklOUFVUIHtkb3VibGUgKmlufTsgICAgICAgICAvLyBkb3VibGUgKmluIGlzIGFuIGlucHV0IHZhbHVlCi0lYXBwbHkgZG91YmxlICpCT1RIIHtkb3VibGUgKnJ9OyAgICAgICAgICAgLy8gZG91YmxlICpyIGlzIGJvdGggYW4gaW5wdXQvb3V0cHV0IHZhbHVlCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgcHJvY2Vzc2luZyBvZiBkYXRhdHlwZXMgaXMgYnVpbHQgdXNpbmcgU1dJRydzIHR5cGVtYXAgbWVjaGFuaXNtLiAgIFRoZSBkZXRhaWxzIG9mIHR5cGVtYXBzIGlzIGRlc2NyaWJlZCBzaG9ydGx5IGFsdGhvdWdoIHRoZSA8dHQ+dHlwZW1hcHMuaTwvdHQ+IGxpYnJhcnkgYWxyZWFkeSBpbmNsdWRlcyBhIHZhcmlldHkgb2YgdXNlZnVsIHR5cGVtYXBzIHJlYWR5IGZvciB1c2UuPHA+Ci08YSBuYW1lPSJuMTMiPjwvYT48aDI+IEV4Y2VwdGlvbiBoYW5kbGluZyA8L2gyPgotVGhlIFNXSUcgPHR0PiVleGNlcHQ8L3R0PiBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgdXNlci1kZWZpbmFibGUgZXhjZXB0aW9uIGhhbmRsZXIgZm9yIGNvbnZlcnRpbmcgZXhjZXB0aW9ucyBpbiB5b3VyIEMvQysrIHByb2dyYW0gaW50byBQZXJsIGV4Y2VwdGlvbnMuICBUaGUgY2hhcHRlciBvbiBleGNlcHRpb24gaGFuZGxpbmcgY29udGFpbnMgbW9yZSBkZXRhaWxzLCBidXQgc3VwcG9zZSB5b3UgaGF2ZSBhIEMrKyBjbGFzcyBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWNsYXNzIFJhbmdlRXJyb3Ige307ICAgLy8gVXNlZCBmb3IgYW4gZXhjZXB0aW9uCi0KLWNsYXNzIERvdWJsZUFycmF5IHsKLSAgcHJpdmF0ZToKLSAgICBpbnQgbjsKLSAgICBkb3VibGUgKnB0cjsKLSAgcHVibGljOgotICAgIC8vIENyZWF0ZSBhIG5ldyBhcnJheSBvZiBmaXhlZCBzaXplCi0gICAgRG91YmxlQXJyYXkoaW50IHNpemUpIHsKLSAgICAgIHB0ciA9IG5ldyBkb3VibGVbc2l6ZV07Ci0gICAgICBuID0gc2l6ZTsKLSAgICB9Ci0gICAgLy8gRGVzdHJveSBhbiBhcnJheQotICAgIH5Eb3VibGVBcnJheSgpIHsKLSAgICAgICBkZWxldGUgcHRyOwotICAgIH0KLSAgICAvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkKLSAgICBpbnQgICBsZW5ndGgoKSB7Ci0gICAgICByZXR1cm4gbjsKLSAgICB9Ci0KLSAgICAvLyBHZXQgYW4gaXRlbSBmcm9tIHRoZSBhcnJheSBhbmQgcGVyZm9ybSBib3VuZHMgY2hlY2tpbmcuCi0gICAgZG91YmxlIGdldGl0ZW0oaW50IGkpIHsKLSAgICAgIGlmICgoaSAmZ3Q7PSAwKSAmYW1wOyZhbXA7IChpICZsdDsgbikpCi0gICAgICAgIHJldHVybiBwdHJbaV07Ci0gICAgICBlbHNlCi0gICAgICAgIHRocm93IFJhbmdlRXJyb3IoKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kIHBlcmZvcm0gYm91bmRzIGNoZWNraW5nLgotICAgIHZvaWQgc2V0aXRlbShpbnQgaSwgZG91YmxlIHZhbCkgewotICAgICAgaWYgKChpICZndDs9IDApICZhbXA7JmFtcDsgKGkgJmx0OyBuKSkKLSAgICAgICAgcHRyW2ldID0gdmFsOwotICAgICAgZWxzZSB7Ci0gICAgICAgIHRocm93IFJhbmdlRXJyb3IoKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBmdW5jdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2xhc3MgY2FuIHRocm93IGEgcmFuZ2UgZXhjZXB0aW9uIGZvciBhbiBvdXQtb2YtYm91bmRzIGFycmF5IGFjY2Vzcy4gICBXZSBjYW4gY2F0Y2ggdGhpcyBpbiBvdXIgUGVybCBleHRlbnNpb24gYnkgc3BlY2lmeWluZyB0aGUgZm9sbG93aW5nIGluIGFuIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHBlcmw1KSB7Ci0gIHRyeSB7Ci0gICAgJGZ1bmN0aW9uICAgICAgICAgICAgICAgIC8vIEdldHMgc3Vic3RpdHV0ZWQgYnkgYWN0dWFsIGZ1bmN0aW9uIGNhbGwKLSAgfQotICBjYXRjaCAoUmFuZ2VFcnJvcikgewotICAgIGNyb2FrKCJBcnJheSBpbmRleCBvdXQtb2YtYm91bmRzIik7Ci0gIH0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93LCB3aGVuIHRoZSBDKysgY2xhc3MgdGhyb3dzIGEgUmFuZ2VFcnJvciBleGNlcHRpb24sIG91ciB3cmFwcGVyIGZ1bmN0aW9ucyB3aWxsIGNhdGNoIGl0LCB0dXJuIGl0IGludG8gYSBQZXJsIGV4Y2VwdGlvbiwgYW5kIGFsbG93IGEgZ3JhY2VmdWwgZGVhdGggYXMgb3Bwb3NlZCB0byBqdXN0IGhhdmluZyBzb21lIHNvcnQgb2YgbXlzdGVyaW91cyBwcm9ncmFtIGNyYXNoLiAgICAgU2luY2UgU1dJRydzIGV4Y2VwdGlvbiBoYW5kbGluZyBpcyB1c2VyLWRlZmluYWJsZSwgd2UgYXJlIG5vdCBsaW1pdGVkIHRvIEMrKyBleGNlcHRpb24gaGFuZGxpbmcuICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB3cml0ZSBhIGxhbmd1YWdlLWluZGVwZW5kZW50IGV4Y2VwdGlvbiBoYW5kbGVyIHRoYXQgd29ya3Mgd2l0aCBvdGhlciBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiBQbGVhc2Ugc2VlIHRoZSBjaGFwdGVyIG9uIGV4Y2VwdGlvbiBoYW5kbGluZyBmb3IgbW9yZSBkZXRhaWxzLjxwPgotPGEgbmFtZT0ibjE0Ij48L2E+PGgyPiBSZW1hcHBpbmcgZGF0YXR5cGVzIHdpdGggdHlwZW1hcHM8L2gyPgotV2hpbGUgU1dJRyBkb2VzIGEgcmVhc29uYWJsZSBqb2Igd2l0aCBtb3N0IEMvQysrIGRhdGF0eXBlcywgaXQgZG9lc24ndCBhbHdheXMgZG8gd2hhdCB5b3Ugd2FudC4gICBIb3dldmVyLCB5b3UgY2FuIHJlbWFwIFNXSUcncyB0cmVhdG1lbnQgb2YganVzdCBhYm91dCBhbnkgZGF0YXR5cGUgdXNpbmcgYSB0eXBlbWFwLiAgQSB0eXBlbWFwIHNpbXBseSBzcGVjaWZpZXMgYSBjb252ZXJzaW9uIGJldHdlZW4gUGVybCBhbmQgQyBkYXRhdHlwZXMgYW5kIGNhbiBiZSB1c2VkIHRvIHByb2Nlc3MgZnVuY3Rpb24gYXJndW1lbnRzLCBmdW5jdGlvbiByZXR1cm4gdmFsdWVzLCBhbmQgbW9yZS4gIEEgc2ltaWxpYXIgbWVjaGFuaXNtIGlzIHVzZWQgYnkgdGhlIHhzdWJwcCBjb21waWxlciBwcm92aWRlZCB3aXRoIFBlcmwgYWx0aG91Z2ggdGhlIFNXSUcgdmVyc2lvbiBwcm92aWRlcyBtYW55IG1vcmUgb3B0aW9ucy48cD4KLTxhIG5hbWU9Im4zNyI+PC9hPjxoMz4gQSBzaW1wbGUgdHlwZW1hcCBleGFtcGxlPC9oMz4KLVRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgYSBzaW1wbGUgdHlwZW1hcCBjYW4gYmUgd3JpdHRlbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0KLSV0eXBlbWFwKHBlcmw1LGluKSBpbnQgewotCSR0YXJnZXQgPSAoaW50KSBTdklWKCRzb3VyY2UpOwotCXByaW50ZigiUmVjZWl2ZWQgYW4gaW50ZWdlciA6ICVkXG4iLCAkdGFyZ2V0KTsKLX0KLS4uLgotZXh0ZXJuIGludCBmYWN0KGludCBuKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVHlwZW1hcCBzcGVjaWZpY2F0aW9ucyByZXF1aXJlIGEgbGFuZ3VhZ2UgbmFtZSwgbWV0aG9kIG5hbWUsIGRhdGF0eXBlLCBhbmQgY29udmVyc2lvbiBjb2RlLiBGb3IgUGVybDUsICJwZXJsNSIgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGxhbmd1YWdlIG5hbWUuICBUaGUgImluIiBtZXRob2QgcmVmZXJzIHRvIHRoZSBpbnB1dCBhcmd1bWVudHMgb2YgYSBmdW5jdGlvbi4gIFRoZSBgaW50JyBkYXRhdHlwZSB0ZWxscyBTV0lHIHRoYXQgd2UgYXJlIHJlbWFwcGluZyBpbnRlZ2Vycy4gICBUaGUgY29udmVyc2lvbiBjb2RlIGlzIHVzZWQgdG8gY29udmVydCBmcm9tIGEgUGVybCBzY2FsYXIgdmFsdWUgdG8gIHRoZSBjb3JyZXNwb25kaW5nIGRhdGF0eXBlLiAgV2l0aGluIHRoZSBzdXBwb3J0IGNvZGUsIHRoZSB2YXJpYWJsZTx0dD4gJHNvdXJjZTwvdHQ+IGNvbnRhaW5zIHRoZSBzb3VyY2UgZGF0YSAoYSBQZXJsIG9iamVjdCkgYW5kIDx0dD4kdGFyZ2V0PC90dD4gY29udGFpbnMgdGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBjb252ZXJzaW9uIChhIEMgbG9jYWwgdmFyaWFibGUpLiA8cD4KLTxwPgotV2hlbiB0aGlzIGV4YW1wbGUgaXMgdXNlZCBpbiBQZXJsNSwgaXQgd2lsbCBvcGVyYXRlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVzZSBleGFtcGxlOwotJG4gPSBleGFtcGxlOjpmYWN0KDYpOwotcHJpbnQgIiRuXG4iOwotLi4uCi0KLU91dHB1dCA6Ci1SZWNlaXZlZCBhbiBpbnRlZ2VyIDogNgotNzIwCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUdlbmVyYWwgZGlzY3Vzc2lvbiBvZiB0eXBlbWFwcyBjYW4gYmUgZm91bmQgaW4gdGhlIG1haW4gU1dJRyB1c2VycyByZWZlcmVuY2UuICA8cD4KLTxhIG5hbWU9Im4zOCI+PC9hPjxoMz4gUGVybDUgdHlwZW1hcHM8L2gzPgotVGhlIGZvbGxvd2luZyB0eXBlbWFwIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSB0byBQZXJsNSBtb2R1bGVzPHA+Ci08cD4KLTx0dD4ldHlwZW1hcChwZXJsNSxpbik8L3R0PiAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnRzIFBlcmw1IG9iamVjdCB0byBpbnB1dCBmdW5jdGlvbiBhcmd1bWVudHMuPHA+Ci08dHQ+JXR5cGVtYXAocGVybDUsb3V0KTwvdHQ+ICAgICAgICAgICAgICAgICAgICAgQ29udmVydHMgZnVuY3Rpb24gcmV0dXJuIHZhbHVlIHRvIGEgUGVybDUgdmFsdWUuPHA+Ci08dHQ+JXR5cGVtYXAocGVybDUsdmFyaW4pPC90dD4gICAgICAgICAgICAgICAgQ29udmVydHMgYSBQZXJsNSBvYmplY3QgdG8gYSBnbG9iYWwgdmFyaWFibGUuPHA+Ci08dHQ+JXR5cGVtYXAocGVybDUsdmFyb3V0KTwvdHQ+ICAgICAgICAgICAgIENvbnZlcnRzIGEgZ2xvYmFsIHZhcmlhYmxlIHRvIGEgUGVybDUgb2JqZWN0LjxwPgotPHR0PiV0eXBlbWFwKHBlcmw1LGZyZWVhcmcpPC90dD4gICAgICAgICAgQ2xlYW5zIHVwIGEgZnVuY3Rpb24gYXJndW1lbnQgYWZ0ZXIgYSBmdW5jdGlvbiBjYWxsPHA+Ci08dHQ+JXR5cGVtYXAocGVybDUsYXJnb3V0KTwvdHQ+ICAgICAgICAgICAgIE91dHB1dCBhcmd1bWVudCBoYW5kbGluZzxwPgotPHR0PiV0eXBlbWFwKHBlcmw1LHJldCkgICAgICAgIDwvdHQ+Q2xlYW4gdXAgcmV0dXJuIHZhbHVlIGZyb20gYSBmdW5jdGlvbi48cD4KLTx0dD4ldHlwZW1hcChtZW1iZXJpbik8L3R0PiAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgb2YgQysrIG1lbWJlciBkYXRhIChhbGwgbGFuZ3VhZ2VzKS48cD4KLTx0dD4ldHlwZW1hcChtZW1iZXJvdXQpPC90dD4gICAgICAgICAgICAgICAgICAgICBSZXR1cm4gb2YgQysrIG1lbWJlciBkYXRhIChhbGwgbGFuZ3VhZ2VzKS48cD4KLTx0dD4ldHlwZW1hcChwZXJsNSxjaGVjayk8L3R0PiAgICAgICAgICAgICAgIENoZWNrIHZhbHVlIG9mIGlucHV0IHBhcmFtZXRlci48cD4KLTxhIG5hbWU9Im4zOSI+PC9hPjxoMz4gVHlwZW1hcCB2YXJpYWJsZXM8L2gzPgotVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgbWF5IGJlIHVzZWQgd2l0aGluIHRoZSBDIGNvZGUgdXNlZCBpbiBhIHR5cGVtYXAgOjxwPgotPHA+Ci08dHQ+JHNvdXJjZTwvdHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2UgdmFsdWUgb2YgYSBjb252ZXJzaW9uPHA+Ci08dHQ+JHRhcmdldDwvdHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQgb2YgY29udmVyc2lvbiAod2hlcmUgcmVzdWx0IHNob3VsZCBiZSBzdG9yZWQpPHA+Ci08dHQ+JHR5cGU8L3R0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQyBkYXRhdHlwZSBiZWluZyByZW1hcHBlZDxwPgotPHR0PiRtYW5nbGU8L3R0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuZ2xlZCB2ZXJzaW9uIG9mIGRhdGF0eXBlIChmb3IgYmxlc3Npbmcgb2JqZWN0cyk8cD4KLTx0dD4kYXJnPC90dD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb24gYXJndW1lbnQgKHdoZW4gYXBwbGljYWJsZSkuPHA+Ci08YSBuYW1lPSJuNDAiPjwvYT48aDM+IE5hbWUgYmFzZWQgdHlwZSBjb252ZXJzaW9uPC9oMz4KLVR5cGVtYXBzIGFyZSBiYXNlZCBib3RoIG9uIHRoZSBkYXRhdHlwZSBhbmQgYW4gb3B0aW9uYWwgbmFtZSBhdHRhY2hlZCB0byBhIGRhdGF0eXBlLiAgIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGZvbwotCi0vLyBUaGlzIHR5cGVtYXAgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBjaGFyICoqIGZ1bmN0aW9uIGFyZ3VtZW50cwotJXR5cGVtYXAocGVybDUsaW4pIGNoYXIgKiogeyAuLi4gfQotCi0vLyBUaGlzIHR5cGVtYXAgaXMgYXBwbGllZCBvbmx5IHRvIGNoYXIgKiogYXJndW1lbnRzIG5hbWVkIGBhcmd2JwotJXR5cGVtYXAocGVybDUsaW4pIGNoYXIgKiphcmd2IHsgLi4uIH0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBleGFtcGxlLCB0d28gdHlwZW1hcHMgYXJlIGFwcGxpZWQgdG8gdGhlIGNoYXIgKiogZGF0YXR5cGUuICBIb3dldmVyLCB0aGUgc2Vjb25kIHR5cGVtYXAgd2lsbCBvbmx5IGJlIGFwcGxpZWQgdG8gYXJndW1lbnRzIG5hbWVkIGBhcmd2Jy4gIEEgbmFtZWQgdHlwZW1hcCB3aWxsIGFsd2F5cyBvdmVycmlkZSBhbiB1bm5hbWVkIHR5cGVtYXAuPHA+Ci08cD4KLUR1ZSB0byB0aGUgbmFtZSBtYXRjaGluZyBzY2hlbWUsIHR5cGVtYXBzIGRvIG5vdCBmb2xsb3cgdHlwZWRlZiBkZWNsYXJhdGlvbnMuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXR5cGVtYXAocGVybDUsaW4pIGRvdWJsZSB7Ci0JLi4uIGdldCBhIGRvdWJsZSAuLi4KLX0KLQotZG91YmxlIGZvbyhkb3VibGUpOyAgICAgICAgICAgICAgLy8gVXNlcyB0aGUgZG91YmxlIHR5cGVtYXAgYWJvdmUKLXR5cGVkZWYgZG91YmxlIFJlYWw7Ci1SZWFsIGJhcihSZWFsKTsgICAgICAgICAgICAgICAgICAvLyBEb2VzIG5vdCB1c2UgdGhlIHR5cGVtYXAgYWJvdmUgKGRvdWJsZSAhPSBSZWFsKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JcyBpcyBvZGQgYmVoYXZpb3IgdG8gYmUgc3VyZSwgYnV0IHlvdSBjYW4gd29yayBhcm91bmQgdGhlIHByb2JsZW0gdXNpbmcgdGhlIDx0dD4lYXBwbHk8L3R0PiBkaXJlY3RpdmUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXR5cGVtYXAocGVybDUsaW4pIGRvdWJsZSB7Ci0JLi4uIGdldCBhIGRvdWJsZSAuLi4KLX0KLWRvdWJsZSBmb28oZG91YmxlKTsgICAgICAgICAgICAgIC8vIFVzZXMgdGhlIGRvdWJsZSB0eXBlbWFwIGFib3ZlCi0KLXR5cGVkZWYgZG91YmxlIFJlYWw7Ci0lYXBwbHkgZG91YmxlIHsgUmVhbCB9OyAgICAgICAgICAvLyBBcHBseSB0aGUgZG91YmxlIHR5cGVtYXAgdG8gUmVhbHMuCi1SZWFsIGJhcihSZWFsKTsgICAgICAgICAgICAgICAgICAvLyBVc2VzIHRoZSBkb3VibGUgdHlwZW1hcCBhbHJlYWR5IGRlZmluZWQuCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5hbWVkIHR5cGVtYXBzIGFyZSBleHRyZW1lbHkgdXNlZnVsIGZvciBtYW5hZ2luZyBzcGVjaWFsIGNhc2VzLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2UgbmFtZWQgdHlwZW1hcHMgdG8gcHJvY2VzcyBvdXRwdXQgYXJndW1lbnRzIChpZS4gZnVuY3Rpb24gYXJndW1lbnRzIHRoYXQgaGF2ZSB2YWx1ZXMgcmV0dXJuZWQgaW4gdGhlbSkuPHA+Ci08YSBuYW1lPSJuNDEiPjwvYT48aDM+IENvbnZlcnRpbmcgYSBQZXJsNSBhcnJheSB0byBhIGNoYXIgKiogPC9oMz4KLUEgY29tbW9uIHByb2JsZW0gaW4gbWFueSBDIHByb2dyYW1zIGlzIHRoZSBwcm9jZXNzaW5nIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsIHdoaWNoIGFyZSB1c3VhbGx5IHBhc3NlZCBpbiBhbiBhcnJheSBvZiBOVUxMIHRlcm1pbmF0ZWQgc3RyaW5ncy4gIFRoZSBmb2xsb3dpbmcgU1dJRyBpbnRlcmZhY2UgZmlsZSBhbGxvd3MgYSBQZXJsNSBhcnJheSByZWZlcmVuY2UgdG8gYmUgdXNlZCBhcyBhIGNoYXIgKiogZGF0YXR5cGUuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBhcmd2Ci0KLS8vIFRoaXMgdGVsbHMgU1dJRyB0byB0cmVhdCBjaGFyICoqIGFzIGEgc3BlY2lhbCBjYXNlCi0ldHlwZW1hcChwZXJsNSxpbikgY2hhciAqKiB7Ci0JQVYgKnRlbXBhdjsKLQlJMzIgbGVuOwotCWludCBpOwotCVNWICAqKnR2OwotCWlmICghU3ZST0soJHNvdXJjZSkpCi0JICAgIGNyb2FrKCIkc291cmNlIGlzIG5vdCBhIHJlZmVyZW5jZS4iKTsKLSAgICAgICAgaWYgKFN2VFlQRShTdlJWKCRzb3VyY2UpKSAhPSBTVnRfUFZBVikKLQkgICAgY3JvYWsoIiRzb3VyY2UgaXMgbm90IGFuIGFycmF5LiIpOwotICAgICAgIHRlbXBhdiA9IChBViopU3ZSVigkc291cmNlKTsKLQlsZW4gPSBhdl9sZW4odGVtcGF2KTsKLQkkdGFyZ2V0ID0gKGNoYXIgKiopIG1hbGxvYygobGVuKzIpKnNpemVvZihjaGFyICopKTsKLQlmb3IgKGkgPSAwOyBpICZsdDs9IGxlbjsgaSsrKSB7Ci0JICAgIHR2ID0gYXZfZmV0Y2godGVtcGF2LCBpLCAwKTsJCi0JICAgICR0YXJnZXRbaV0gPSAoY2hhciAqKSBTdlBWKCp0dixuYSk7Ci0gICAgICAgIH0KLQkkdGFyZ2V0W2ldID0gMDsKLX07Ci0KLS8vIFRoaXMgY2xlYW5zIHVwIG91ciBjaGFyICoqIGFycmF5IGFmdGVyIHRoZSBmdW5jdGlvbiBjYWxsCi0ldHlwZW1hcChwZXJsNSxmcmVlYXJnKSBjaGFyICoqIHsKLQlmcmVlKCRzb3VyY2UpOwotfQotCi0vLyBDcmVhdGVzIGEgbmV3IFBlcmwgYXJyYXkgYW5kIHBsYWNlcyBhIGNoYXIgKiogaW50byBpdAotJXR5cGVtYXAocGVybDUsb3V0KSBjaGFyICoqIHsKLQlBViAqbXlhdjsKLQlTViAqKnN2czsKLQlpbnQgaSA9IDAsbGVuID0gMDsKLQkvKiBGaWd1cmUgb3V0IGhvdyBtYW55IGVsZW1lbnRzIHdlIGhhdmUgKi8KLQl3aGlsZSAoJHNvdXJjZVtsZW5dKQotCSAgIGxlbisrOwotCXN2cyA9IChTViAqKikgbWFsbG9jKGxlbipzaXplb2YoU1YgKikpOwotCWZvciAoaSA9IDA7IGkgJmx0OyBsZW4gOyBpKyspIHsKLQkgICAgc3ZzW2ldID0gc3ZfbmV3bW9ydGFsKCk7Ci0JICAgIHN2X3NldHB2KChTViopc3ZzW2ldLCRzb3VyY2VbaV0pOwotCX07Ci0JbXlhdiA9CWF2X21ha2UobGVuLHN2cyk7Ci0JZnJlZShzdnMpOwotICAgICAgICR0YXJnZXQgPSBuZXdSVigoU1YqKW15YXYpOwotICAgICAgIHN2XzJtb3J0YWwoJHRhcmdldCk7Ci19Ci0KLS8vIE5vdyBhIGZldyB0ZXN0IGZ1bmN0aW9ucwotJWlubGluZSAlewotaW50IHByaW50X2FyZ3MoY2hhciAqKmFyZ3YpIHsKLSAgICBpbnQgaSA9IDA7Ci0gICAgd2hpbGUgKGFyZ3ZbaV0pIHsKLSAgICAgICAgIHByaW50ZigiYXJndlslZF0gPSAlc1xuIiwgaSxhcmd2W2ldKTsKLSAgICAgICAgIGkrKzsKLSAgICB9Ci0gICAgcmV0dXJuIGk7Ci19Ci0KLS8vIFJldHVybnMgYSBjaGFyICoqIGxpc3QgCi1jaGFyICoqZ2V0X2FyZ3MoKSB7Ci0gICAgc3RhdGljIGNoYXIgKnZhbHVlc1tdID0geyAiRGF2ZSIsICJNaWtlIiwgIlN1c2FuIiwgIkpvaG4iLCAiTWljaGVsbGUiLCAwfTsKLSAgICByZXR1cm4gJmFtcDt2YWx1ZXNbMF07Ci19Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHRoaXMgbW9kdWxlIGlzIGNvbXBpbGVkLCBvdXIgd3JhcHBlZCBDIGZ1bmN0aW9ucyBjYW4gYmUgdXNlZCBpbiBhIFBlcmwgc2NyaXB0IGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXVzZSBhcmd2OwotQGEgPSAoIkRhdmUiLCAiTWlrZSIsICJKb2huIiwgIk1hcnkiKTsgICAgICAgICAgICMgQ3JlYXRlIGFuIGFycmF5IG9mIHN0cmluZ3MKLWFyZ3Y6OnByaW50X2FyZ3MoXEBhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFBhc3MgaXQgdG8gb3VyIEMgZnVuY3Rpb24KLSRiID0gYXJndjo6Z2V0X2FyZ3MoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEdldCBhcnJheSBvZiBzdHJpbmdzIGZyb20gQwotcHJpbnQgQCRiLCJcbiI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUHJpbnQgaXQgb3V0Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU9mIGNvdXJzZSwgdGhlcmUgYXJlIG1hbnkgb3RoZXIgcG9zc2liaWxpdGllcy4gIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFycmF5IHJlZmVyZW5jZXMsIHdlIGNvdWxkIHBhc3MgaW4gc3RyaW5ncyBzZXBhcmF0ZWQgYnkgc29tZSBkZWxpbWV0ZXIgYW5kIHBlcmZvcm0gYSBzcGxpdHRpbmcgb3BlcmF0aW9uIGluIEMuIDxwPgotPGEgbmFtZT0ibjQyIj48L2E+PGgzPiBVc2luZyB0eXBlbWFwcyB0byByZXR1cm4gdmFsdWVzPC9oMz4KLVNvbWV0aW1lcyBpdCBpcyBkZXNpcmFibGUgZm9yIGEgZnVuY3Rpb24gdG8gcmV0dXJuIGEgdmFsdWUgaW4gb25lIG9mIGl0cyBhcmd1bWVudHMuIEEgbmFtZWQgdHlwZW1hcCBjYW4gYmUgdXNlZCB0byBoYW5kbGUgdGhpcyBjYXNlLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgcmV0dXJuCi0KLS8vIFRoaXMgdGVsbHMgU1dJRyB0byB0cmVhdCBhbiBkb3VibGUgKiBhcmd1bWVudCB3aXRoIG5hbWUgJ091dERvdWJsZScgYXMKLS8vIGFuIG91dHB1dCB2YWx1ZS4gIAotCi0ldHlwZW1hcChwZXJsNSxhcmdvdXQpIGRvdWJsZSAqT3V0RG91YmxlIHsKLQkkdGFyZ2V0ID0gc3ZfbmV3bW9ydGFsKCk7Ci0Jc3Zfc2V0bnYoJHRhcmdldCwgKiRzb3VyY2UpOwotCWFyZ3ZpKys7ICAgICAgICAgICAgICAgICAgICAgLyogSW5jcmVtZW50IHJldHVybiBjb3VudCAtLSBpbXBvcnRhbnQhICovCi19Ci0KLS8vIElmIHdlIGRvbid0IGNhcmUgd2hhdCB0aGUgaW5wdXQgdmFsdWUgaXMsIHdlIGNhbiBtYWtlIHRoZSB0eXBlbWFwIGlnbm9yZSBpdC4KLQotJXR5cGVtYXAocGVybDUsaWdub3JlKSBkb3VibGUgKk91dERvdWJsZShkb3VibGUganVuaykgewotCSR0YXJnZXQgPSAmYW1wO2p1bms7ICAgICAgIC8qIGp1bmsgaXMgYSBsb2NhbCB2YXJpYWJsZSB0aGF0IGhhcyBiZWVuIGRlY2xhcmVkICovCi19Ci0KLS8vIE5vdyBhIGZ1bmN0aW9uIHRvIHRlc3QgaXQKLSV7Ci0vKiBSZXR1cm5zIHRoZSBmaXJzdCB0d28gaW5wdXQgYXJndW1lbnRzICovCi1pbnQgbXVsdG91dChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqb3V0MSwgZG91YmxlICpvdXQyKSB7Ci0JKm91dDEgPSBhOwotCSpvdXQyID0gYjsKLQlyZXR1cm4gMDsKLX07Ci0lfQotCi0vLyBJZiB3ZSBuYW1lIGJvdGggcGFyYW1ldGVycyBPdXREb3VibGUgYm90aCB3aWxsIGJlIG91dHB1dAotCi1pbnQgbXVsdG91dChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqT3V0RG91YmxlLCBkb3VibGUgKk91dERvdWJsZSk7Ci0uLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBvdXRwdXQgYXJndW1lbnRzIGFyZSBlbmNvdW50ZXJlZCwgdGhleSBhcmUgc2ltcGx5IGFwcGVuZGVkIHRvIHRoZSBzdGFjayB1c2VkIHRvIHJldHVybiByZXN1bHRzLiAgIFRoaXMgd2lsbCBzaG93IHVwIGFzIGFuIGFycmF5IHdoZW4gdXNlZCBpbiBQZXJsLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkByID0gbXVsdG91dCg3LDEzKTsKLXByaW50ICJtdWx0b3V0KDcsMTMpID0gQHJcbiI7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im40MyI+PC9hPjxoMz4gQWNjZXNzaW5nIGFycmF5IHN0cnVjdHVyZSBtZW1iZXJzPC9oMz4KLUNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiNkZWZpbmUgTkFNRUxFTiAgIDMyCi10eXBlZGVmIHN0cnVjdCB7Ci0JY2hhciAgIG5hbWVbTkFNRUxFTl07Ci0JLi4uCi19IFBlcnNvbjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQnkgZGVmYXVsdCwgU1dJRyBkb2Vzbid0IGtub3cgaG93IHRvIHRoZSBoYW5kbGUgdGhlIG5hbWUgc3RydWN0dXJlIHNpbmNlIGl0J3MgYW4gYXJyYXksIG5vdCBhIHBvaW50ZXIuICBJbiB0aGlzIGNhc2UsIFNXSUcgd2lsbCBtYWtlIHRoZSBhcnJheSBtZW1iZXIgcmVhZG9ubHkuICAgIEhvd2V2ZXIsIG1lbWJlciB0eXBlbWFwcyBjYW4gYmUgdXNlZCB0byBtYWtlIHRoaXMgbWVtYmVyIHdyaXRhYmxlIGZyb20gUGVybCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChtZW1iZXJpbikgY2hhcltOQU1FTEVOXSB7Ci0JLyogQ29weSBhdCBtb3N0IE5BTUVMRU4gY2hhcmFjdGVycyBpbnRvICR0YXJnZXQgKi8KLQlzdHJuY3B5KCR0YXJnZXQsJHNvdXJjZSxOQU1FTEVOKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbmV2ZXIgYSA8dHQ+Y2hhcltOQU1FTEVOXTwvdHQ+IHR5cGUgaXMgZW5jb3VudGVyZWQgaW4gYSBzdHJ1Y3R1cmUgb3IgY2xhc3MsIHRoaXMgdHlwZW1hcCBwcm92aWRlcyBhIHNhZmUgbWVjaGFuaXNtIGZvciBzZXR0aW5nIGl0cyB2YWx1ZS4gICBBbiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBjaG9vc2UgdG8gcHJpbnQgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgbmFtZSB3YXMgdG9vIGxvbmcgdG8gZml0IGludG8gdGhlIGZpZWxkLjxwPgotPHA+Ci1JdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGUgPHR0PltOQU1FTEVOXTwvdHQ+IGFycmF5IHNpemUgaXMgYXR0YWNoZWQgdG8gdGhlIHR5cGVtYXAuIEEgZGF0YXR5cGUgaW52b2x2aW5nIHNvbWUgb3RoZXIga2luZCBvZiBhcnJheSB3b3VsZCBiZSBhZmZlY3RlZC4gICBIb3dldmVyLCB3ZSBjYW4gd3JpdGUgYSB0eXBlbWFwIHRoYXQgd2lsbCB3b3JrIGZvciBhbnkgYXJyYXkgZGltZW5zaW9uIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSV0eXBlbWFwKG1lbWJlcmluKSBjaGFyIFtBTlldIHsKLQlzdHJuY3B5KCR0YXJnZXQsJHNvdXJjZSwkZGltMCk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gY29kZSBpcyBnZW5lcmF0ZWQsIDx0dD4kZGltMDwvdHQ+IGdldHMgZmlsbGVkIGluIHdpdGggdGhlIHJlYWwgYXJyYXkgZGltZW5zaW9uLjxwPgotPGEgbmFtZT0ibjQ0Ij48L2E+PGgzPiBUdXJuaW5nIFBlcmwgcmVmZXJlbmNlcyBpbnRvIEMgcG9pbnRlcnM8L2gzPgotQSBmcmVxdWVudCBjb25mdXNpb24gb24gdGhlIFNXSUcgbWFpbGluZyBsaXN0IGlzIGVycm9ycyBjYXVzZWQgYnkgdGhlIG1peGluZyBvZiBQZXJsIHJlZmVyZW5jZXMgYW5kIEMgcG9pbnRlcnMuICBGb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgaGF2ZSBhIEMgZnVuY3Rpb24gdGhhdCBtb2RpZmllcyBpdHMgYXJndW1lbnRzIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBhZGQoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKmMpIHsKLQkqYyA9IGEgKyBiOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BIGNvbW1vbiBtaXNpbnRlcnByZXRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRoZSBmb2xsb3dpbmcgUGVybCBzY3JpcHQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgUGVybCBzY3JpcHQKLSRhID0gMy41OwotJGIgPSA3LjU7Ci0kYyA9IDAuMDsgICAgICAgICAgIyBPdXRwdXQgdmFsdWUKLWFkZCgkYSwkYixcJGMpOyAgICAjIFBsYWNlIHJlc3VsdCBpbiBjIChFeGNlcHQgdGhhdCBpdCBkb2Vzbid0IHdvcmspCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVVuZm9ydHVuYXRlbHksIHRoaXMgZG9lcyBOT1Qgd29yay4gIFRoZXJlIGFyZSBtYW55IHJlYXNvbnMgZm9yIHRoaXMsIGJ1dCB0aGUgbWFpbiBvbmUgaXMgdGhhdCBTV0lHIGhhcyBubyBpZGVhIHdoYXQgYSA8dHQ+ZG91YmxlICo8L3R0PiByZWFsbHkgaXMuICBJdCBjb3VsZCBiZSBhbiBpbnB1dCB2YWx1ZSwgYW4gb3V0cHV0IHZhbHVlLCBvciBhbiBhcnJheSBvZiAyIG1pbGxpb24gZWxlbWVudHMuICBBcyBhIHJlc3VsdCwgU1dJRyBsZWF2ZXMgaXQgYWxvbmUgYW5kIGxvb2tzIGV4Y2x1c2l2ZWx5IGZvciBhIEMgcG9pbnRlciB2YWx1ZSAod2hpY2ggaXMgbm90IHRoZSBzYW1lIGFzIGEgUGVybCByZWZlcmVuY2UtLXdlbGwsIGF0IGxlYXN0IG5vdGUgb2YgdGhlIHR5cGUgdXNlZCBpbiB0aGUgYWJvdmUgc2NyaXB0KS48cD4KLTxwPgotSG93ZXZlciwgeW91IGNhbiB1c2UgYSB0eXBlbWFwIHRvIGdldCB0aGUgZGVzaXJlZCBlZmZlY3QuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChwZXJsNSxpbikgZG91YmxlICogKGRvdWJsZSBkdmFsdWUpIHsKLSAgU1YqIHRlbXBzdjsKLSAgaWYgKCFTdlJPSygkc291cmNlKSkgewotICAgIGNyb2FrKCJleHBlY3RlZCBhIHJlZmVyZW5jZVxuIik7Ci0gIH0KLSAgdGVtcHN2ID0gU3ZSVigkc291cmNlKTsKLSAgaWYgKCghU3ZOT0sodGVtcHN2KSkgJmFtcDsmYW1wOyAoIVN2SU9LKHRlbXBzdikpKSB7Ci0gICAgY3JvYWsoImV4cGVjdGVkIGEgZG91YmxlIHJlZmVyZW5jZVxuIik7Ci0gIH0KLSAgZHZhbHVlID0gU3ZOVih0ZW1wc3YpOwotICAkdGFyZ2V0ID0gJmFtcDtkdmFsdWU7Ci19Ci0KLSV0eXBlbWFwKHBlcmw1LGFyZ291dCkgZG91YmxlICogewotICBTViAqdGVtcHN2OwotICB0ZW1wc3YgPSBTdlJWKCRhcmcpOwotICBzdl9zZXRudih0ZW1wc3YsICokc291cmNlKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTm93LCBpZiB5b3UgcGxhY2UgdGhpcyBiZWZvcmUgb3VyIGFkZCBmdW5jdGlvbiwgd2UgY2FuIGRvIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiRhID0gMy41OwotJGIgPSA3LjU7Ci0kYyA9IDAuMDsKLWFkZCgkYSwkYixcJGMpOyAgICAgICAgICAgICMgTm93IGl0IHdvcmtzIQotcHJpbnQgIiRjXG4iOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Zb3UnbGwgZ2V0IHRoZSBvdXRwdXQgdmFsdWUgb2YgIjExLjAiIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSB3YW50ZWQuICAgV2hpbGUgdGhpcyBpcyBwcmV0dHkgY29vbCwgaXQgc2hvdWxkIGJlIHN0cmVzc2VkIHRoYXQgeW91IGNhbiBlYXNpbHkgc2hvb3QgeW91cnNlbGYgaW4gdGhlIGZvb3Qgd2l0aCB0eXBlbWFwcy0tb2YgY291cnNlIFNXSUcgaXMgaGFzIG5ldmVyIGJlZW4gdG9vIGNvbmNlcm5lZCBhYm91dCBsZWdpc2xhdGluZyBtb3JhbGl0eS4uLi48cD4KLTxhIG5hbWU9Im40NSI+PC9hPjxoMz4gVXNlZnVsIGZ1bmN0aW9uczwvaDM+Ci1XaGVuIHdyaXRpbmcgdHlwZW1hcHMsIGl0IGlzIG5lY2Vzc2FyeSB0byB3b3JrIGRpcmVjdGx5IHdpdGggUGVybDUgb2JqZWN0cy4gICAgVGhpcywgdW5mb3J0dW5hdGVseSwgY2FuIGJlIGEgZGF1bnRpbmcgdGFzay4gIENvbnN1bHQgdGhlICJwZXJsZ3V0cyIgbWFuLXBhZ2UgZm9yIGFsbCBvZiB0aGUgcmVhbGx5IHVnbHkgZGV0YWlscy4gIEEgc2hvcnQgc3VtbWFyeSBvZiBjb21tb25seSB1c2VkIGZ1bmN0aW9ucyBpcyBwcm92aWRlZCBoZXJlIGZvciByZWZlcmVuY2UuICBJdCBzaG91bGQgYmUgc3RyZXNzZWQgdGhhdCBTV0lHIGNhbiBiZSB1c2VmIHF1aXRlIGVmZmVjdGl2ZWx5IHdpdGhvdXQga25vd2luZyBhbnkgb2YgdGhlc2UgZGV0YWlscy0tZXNwZWNpYWxseSBub3cgdGhhdCB0aGVyZSBhcmUgdHlwZW1hcCBsaWJyYXJpZXMgdGhhdCBjYW4gYWxyZWFkeSBiZWVuIHdyaXR0ZW4uPHA+Ci08Y2VudGVyPgotPGltZyBzcmM9ImNoOC50YWJsZS4xLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOC50YWJsZS4yLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOC50YWJsZS4zLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOC50YWJsZS40LnBuZyI+PGJyPgotPC9jZW50ZXI+PHA+Ci08cD4KLTxhIG5hbWU9Im40NiI+PC9hPjxoMz4gU3RhbmRhcmQgdHlwZW1hcHM8L2gzPgotVGhlIGZvbGxvd2luZyB0eXBlbWFwcyBzaG93IGhvdyB0byBjb252ZXJ0IGEgZmV3IGNvbW1vbiB0eXBlcyBvZiBvYmplY3RzIGJldHdlZW4gUGVybCBhbmQgQyAoYW5kIHRvIGdpdmUgYSBiZXR0ZXIgaWRlYSBvZiBob3cgZXZlcnl0aGluZyB3b3JrcykuIDxwPgotPGNlbnRlcj4KLTxpbWcgc3JjPSJjaDgudGFibGUuNS5wbmciPjxicj4KLTxpbWcgc3JjPSJjaDgudGFibGUuNi5wbmciPjxicj4KLTwvY2VudGVyPjxwPgotPHA+Ci08YSBuYW1lPSJuNDciPjwvYT48aDM+IFBvaW50ZXIgaGFuZGxpbmc8L2gzPgotU1dJRyBwb2ludGVycyBhcmUgcmVwcmVzZW50ZWQgYXMgYmxlc3NlZCByZWZlcmVuY2VzLiAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuZCByZWFkIHBvaW50ZXIgdmFsdWVzLjxwPgotPGNlbnRlcj4KLTxpbWcgc3JjPSJjaDgudGFibGUuNy5wbmciPgotPC9jZW50ZXI+PHA+Ci08YSBuYW1lPSJuNDgiPjwvYT48aDM+IFJldHVybiB2YWx1ZXMgPC9oMz4KLVJldHVybiB2YWx1ZXMgYXJlIHBsYWNlZCBvbiB0aGUgYXJndW1lbnQgc3RhY2sgb2YgZWFjaCB3cmFwcGVyIGZ1bmN0aW9uLiAgVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGFyZ3VtZW50IHN0YWNrIHBvaW50ZXIgaXMgY29udGFpbmVkIGluIGEgdmFyaWFibGUgPHR0PmFyZ3ZpPC90dD4uICBXaGVuZXZlciBhIG5ldyBvdXRwdXQgdmFsdWUgaXMgYWRkZWQsIGl0IGlzIGNyaXRpY2FsIHRoYXQgdGhpcyB2YWx1ZSBiZSBpbmNyZW1lbnRlZC4gICBGb3IgbXVsdGlwbGUgb3V0cHV0IHZhbHVlcywgdGhlIGZpbmFsIHZhbHVlIG9mIDx0dD5hcmd2aTwvdHQ+IHNob3VsZCBiZSB0aGUgdG90YWwgbnVtYmVyIG9mIG91dHB1dCB2YWx1ZXMuIDxwPgotPHA+Ci1UaGUgdG90YWwgbnVtYmVyIG9mIHJldHVybiB2YWx1ZXMgc2hvdWxkIG5vdCBleGNlZWQgdGhlIG51bWJlciBvZiBpbnB1dCB2YWx1ZXMgdW5sZXNzIHlvdSBleHBsaWNpdGx5IGV4dGVuZCB0aGUgYXJndW1lbnQgc3RhY2suICAgVGhpcyBjYW4gYmUgZG9uZSB1c2luZyB0aGUgPHR0PkVYVEVORCgpPC90dD4gbWFjcm8gYXMgaW4gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHBlcmw1LGFyZ291dCkgaW50ICpPVVRQVVQgewotCWlmIChhcmd2aSAmZ3Q7PSBpdGVtcykgeyAgICAgICAgICAgIAotCQlFWFRFTkQoc3AsMSk7ICAgICAgICAgICAgICAvKiBFeHRlbmQgdGhlIHN0YWNrIGJ5IDEgb2JqZWN0ICovCi0JfQotCSR0YXJnZXQgPSBzdl9uZXdtb3J0YWwoKTsKLQlzdl9zZXRpdigkdGFyZ2V0LChJVikgKigkc291cmNlKSk7Ci0JYXJndmkrKzsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4xNSI+PC9hPjxoMj4gVGhlIGdvcnkgZGV0YWlscyBvbiBzaGFkb3cgY2xhc3NlczwvaDI+Ci1QZXJsNSBzaGFkb3cgY2xhc3NlcyBhcmUgY29uc3RydWN0ZWQgb24gdG9wIG9mIHRoZSBsb3ctbGV2ZWwgQyBpbnRlcmZhY2UgcHJvdmlkZWQgYnkgU1dJRy4gICBCeSBpbXBsZW1lbnRpbmcgdGhlIGNsYXNzZXMgaW4gUGVybCBpbnN0ZWFkIG9mIEMsIHdlIGdldCBhIG51bWJlciBvZiBhZHZhbnRhZ2VzIDo8cD4KLTxwPgotPHVsPgotPGxpPlRoZSBjbGFzc2VzIGFyZSBlYXNpZXIgdG8gaW1wbGVtZW50IChhZnRlciBhbGwgUGVybCBtYWtlcyBsb3RzIG9mIHRoaW5ncyBlYXNpZXIpLgotPGxpPkJ5IHdyaXRpbmcgaW4gUGVybCwgdGhlIGNsYXNzZXMgdGVuZCB0byBpbnRlcmFjdCBiZXR0ZXIgd2l0aCBvdGhlciBQZXJsIG9iamVjdHMgYW5kIHByb2dyYW1zLgotPGxpPllvdSBjYW4gbW9kaWZ5IHRoZSByZXN1bHRpbmcgUGVybCBjb2RlIHdpdGhvdXQgcmVjb21waWxpbmcgdGhlIEMgbW9kdWxlLgotPC91bD4KLTxwPgotU2hhZG93IGNsYXNzZXMgYXJlIG5ldyBpbiBTV0lHIDEuMSBhbmQgc3RpbGwgc29tZXdoYXQgZXhwZXJpbWVudGFsLiAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIGEgY29tYmluYXRpb24gb2YgY29udHJpYnV0aW9ucyBwcm92aWRlZCBieSBHYXJ5IEhvbHQgYW5kIERhdmlkIEZsZXRjaGVyLS1tYW55IHRoYW5rcyE8cD4KLTxhIG5hbWU9Im40OSI+PC9hPjxoMz4gIE1vZHVsZSBhbmQgcGFja2FnZSBuYW1lczwvaDM+Ci1XaGVuIHNoYWRvdyBjbGFzc2luZyBpcyBlbmFibGVkLCBTV0lHIGdlbmVyYXRlcyBhIGxvdy1sZXZlbCBwYWNrYWdlIG5hbWVkIGBtb2R1bGVjJyB3aGVyZSBgbW9kdWxlJyBpcyB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHlvdSBwcm92aWRlZCB3aXRoIHRoZSA8dHQ+JW1vZHVsZTwvdHQ+IGRpcmVjdGl2ZSAoU1dJRyBhcHBlbmRzIGEgYGMnIHRvIHRoZSBuYW1lIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgdGhlIGxvdy1sZXZlbCBDIGJpbmRpbmdzKS4gICAgIFRoaXMgbG93LWxldmVsIHBhY2thZ2UgaXMgZXhhY3RseSB0aGUgc2FtZSBtb2R1bGUgdGhhdCBTV0lHIHdvdWxkIGhhdmUgY3JlYXRlZCB3aXRob3V0IHRoZSA8dHQ+YC1zaGFkb3c8L3R0Picgb3B0aW9uLCBvbmx5IHJlbmFtZWQuPHA+Ci08cD4KLVVzaW5nIHRoZSBsb3ctbGV2ZWwgaW50ZXJmYWNlLCBTV0lHIGNyZWF0ZXMgUGVybCB3cmFwcGVycyBhcm91bmQgY2xhc3Nlcywgc3RydWN0cywgYW5kIGZ1bmN0aW9ucy4gICAgVGhpcyBjb2xsZWN0aW9uIG9mIHdyYXBwZXJzIGJlY29tZXMgdGhlIFBlcmwgbW9kdWxlIHRoYXQgeW91IHdpbGwgdXNlIGluIHlvdXIgUGVybCBjb2RlLCBub3QgdGhlIGxvdy1sZXZlbCBwYWNrYWdlICh0aGUgb3JpZ2luYWwgcGFja2FnZSBpcyBoaWRkZW4sIGJ1dCB3b3JraW5nIGJlaGluZCB0aGUgc2NlbmVzKS48cD4KLTxhIG5hbWU9Im41MCI+PC9hPjxoMz4gV2hhdCBnZXRzIGNyZWF0ZWQ/PC9oMz4KLVN1cHBvc2UgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBTV0lHIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIHZlY3Rvcgotc3RydWN0IFZlY3RvciB7Ci0JVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOwotCX5WZWN0b3IoKTsKLQlkb3VibGUgeCx5LHo7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHdyYXBwZWQsIFNXSUcgY3JlYXRlcyB0aGUgZm9sbG93aW5nIHNldCBvZiBsb3ctbGV2ZWwgYWNjZXNzb3IgZnVuY3Rpb25zLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlZlY3RvciAqbmV3X1ZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KTsKLXZvaWQgICAgZGVsZXRlX1ZlY3RvcihWZWN0b3IgKnYpOwotZG91YmxlICBWZWN0b3JfeF9nZXQoVmVjdG9yICp2KTsKLWRvdWJsZSAgVmVjdG9yX3hfc2V0KFZlY3RvciAqdiwgZG91YmxlIHZhbHVlKTsKLWRvdWJsZSAgVmVjdG9yX3lfZ2V0KFZlY3RvciAqdik7Ci1kb3VibGUgIFZlY3Rvcl95X3NldChWZWN0b3IgKnYsIGRvdWJsZSB2YWx1ZSk7Ci1kb3VibGUgIFZlY3Rvcl96X2dldChWZWN0b3IgKnYpOwotZG91YmxlICBWZWN0b3Jfel9zZXQoVmVjdG9yICp2LCBkb3VibGUgdmFsdWUpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGVzZSBmdW5jdGlvbnMgY2FuIG5vdyBiZSB1c2VkIHRvIGNyZWF0ZSBhIFBlcmwgc2hhZG93IGNsYXNzIHRoYXQgbG9va3MgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5wYWNrYWdlIFZlY3RvcjsKLUBJU0EgPSBxdyggdmVjdG9yICk7Ci0lT1dORVIgPSAoKTsKLSVCTEVTU0VETUVNQkVSUyA9ICgpOwotCi1zdWIgbmV3ICgpIHsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15IEBhcmdzID0gQF87Ci0gICAgJHNlbGYgPSB2ZWN0b3JjOjpuZXdfVmVjdG9yKEBhcmdzKTsKLSAgICByZXR1cm4gdW5kZWYgaWYgKCFkZWZpbmVkKCRzZWxmKSk7Ci0gICAgYmxlc3MgJHNlbGYsICJWZWN0b3IiOwotICAgICRPV05FUnskc2VsZn0gPSAxOwotICAgIG15ICVyZXR2YWw7Ci0gICAgdGllICVyZXR2YWwsICJWZWN0b3IiLCAkc2VsZjsKLSAgICByZXR1cm4gYmxlc3MgXCVyZXR2YWwsIlZlY3RvciI7Ci19Ci0KLXN1YiBERVNUUk9ZIHsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OyAKLSAgICBpZiAoZXhpc3RzICRPV05FUnskc2VsZn0pIHsKLQkgZGVsZXRlX1ZlY3Rvcigkc2VsZikpOwotCSBkZWxldGUgJE9XTkVSeyRzZWxmfTsKLX0KLQotc3ViIEZFVENIIHsKLSAgICBteSAoJHNlbGYsJGZpZWxkKSA9IEBfOwotICAgIG15ICRtZW1iZXJfZnVuYyA9ICJ2ZWN0b3JjOjpWZWN0b3JfJHtmaWVsZH1fZ2V0IjsKLSAgICBteSAkdmFsID0gJmFtcDskbWVtYmVyX2Z1bmMoJHNlbGYpOwotICAgIGlmIChleGlzdHMgJEJMRVNTRURNRU1CRVJTeyRmaWVsZH0pIHsKLSAgICAgICAgcmV0dXJuIHVuZGVmIGlmICghZGVmaW5lZCgkdmFsKSk7Ci0gICAgICAgIG15ICVyZXR2YWw7Ci0gICAgICAgIHRpZSAlcmV0dmFsLCRCTEVTU0VETUVNQkVSU3skZmllbGR9LCR2YWw7Ci0gICAgICAgIHJldHVybiBibGVzcyBcJXJldHZhbCwgJEJMRVNTRURNRU1CRVJTeyRmaWVsZH07Ci0gICAgfQotICAgIHJldHVybiAkdmFsOwotfQotCi1zdWIgU1RPUkUgewotICAgIG15ICgkc2VsZiwkZmllbGQsJG5ld3ZhbCkgPSBAXzsKLSAgICBteSAkbWVtYmVyX2Z1bmMgPSAidmVjdG9yYzo6VmVjdG9yXyR7ZmllbGR9X3NldCI7Ci0gICAgaWYgKGV4aXN0cyAkQkxFU1NFRE1FTUJFUlN7JGZpZWxkfSkgewotICAgICAgICAmYW1wOyRtZW1iZXJfZnVuYygkc2VsZix0aWVkKCV7JG5ld3ZhbH0pKTsKLSAgICB9IGVsc2UgewotICAgICAgICAmYW1wOyRtZW1iZXJfZnVuYygkc2VsZiwkbmV3dmFsKTsKLSAgICB9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUVhY2ggc3RydWN0dXJlIG9yIGNsYXNzIGlzIG1hcHBlZCBpbnRvIGEgUGVybCBwYWNrYWdlIG9mIHRoZSBzYW1lIG5hbWUuIFRoZSBDKysgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBhcmUgbWFwcGVkIGludG8gY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBmb3IgdGhlIHBhY2thZ2UgYW5kIGFyZSBhbHdheXMgbmFtZWQgIm5ldyIgYW5kICJERVNUUk9ZIi4gICAgVGhlIGNvbnN0cnVjdG9yIGFsd2F5cyByZXR1cm5zIGEgdGllZCBoYXNoIHRhYmxlLiAgIFRoaXMgaGFzaCB0YWJsZSBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgbWVtYmVyIHZhcmlhYmxlcyBvZiBhIHN0cnVjdHVyZSBpbiBhZGRpdGlvbiB0byBiZWluZyBhYmxlIHRvIGludm9rZSBtZW1iZXIgZnVuY3Rpb25zLiAgVGhlIDx0dD4lT1dORVI8L3R0PiBhbmQgPHR0PiVCTEVTU0VETUVNQkVSUzwvdHQ+IGhhc2ggdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgYW5kIGRlc2NyaWJlZCBzaG9ydGx5LiA8cD4KLTxwPgotVG8gdXNlIG91ciBuZXcgc2hhZG93IGNsYXNzIHdlIGNhbiBzaW1wbHkgZG8gdGhlIGZvbGxvd2luZzo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFBlcmwgY29kZSB1c2luZyBWZWN0b3IgY2xhc3MKLSR2ID0gbmV3IFZlY3RvcigyLDMsNCk7Ci0kdyA9IFZlY3Rvci0mZ3Q7bmV3KC0xLC0yLC0zKTsKLQotIyBBc3NpZ25tZW50IG9mIGEgc2luZ2xlIG1lbWJlcgotJHYtJmd0O3t4fSA9IDcuNTsKLQotIyBBc3NpZ25tZW50IG9mIGFsbCBtZW1iZXJzCi0lJHYgPSAoIHg9Jmd0OzMsCi0JIHk9Jmd0OzksCi0JIHo9Jmd0Oy0yKTsKLQotIyBSZWFkaW5nIG1lbWJlcnMKLSR4ID0gJHYtJmd0O3t4fTsKLQotIyBEZXN0cnVjdGlvbgotJHYtJmd0O0RFU1RST1koKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjUxIj48L2E+PGgzPiBPYmplY3QgT3duZXJzaGlwPC9oMz4KLUluIG9yZGVyIGZvciBzaGFkb3cgY2xhc3NlcyB0byB3b3JrIHByb3Blcmx5LCBpdCBpcyBuZWNlc3NhcnkgZm9yIFBlcmwgdG8gbWFuYWdlIHNvbWUgbWVjaGFuaXNtIG9mIG9iamVjdCBvd25lcnNoaXAuICAgSGVyZSdzIHRoZSBjcnV4IG9mIHRoZSBwcm9ibGVtLS0tc3VwcG9zZSB5b3UgaGFkIGEgZnVuY3Rpb24gbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5WZWN0b3IgKlZlY3Rvcl9nZXQoVmVjdG9yICp2LCBpbnQgaW5kZXgpIHsKLQlyZXR1cm4gJmFtcDt2W2ldOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGZ1bmN0aW9uIHRha2VzIGEgVmVjdG9yIHBvaW50ZXIgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGFub3RoZXIgVmVjdG9yLiAgIFN1Y2ggYSBmdW5jdGlvbiBtaWdodCBiZSB1c2VkIHRvIG1hbmFnZSBhcnJheXMgb3IgbGlzdHMgb2YgdmVjdG9ycyAoaW4gQykuICAgTm93IGNvbnRyYXN0IHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgY29uc3RydWN0b3IgZm9yIGEgVmVjdG9yIG9iamVjdCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+VmVjdG9yICpuZXdfVmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopIHsKLQlWZWN0b3IgKnY7Ci0JdiA9IG5ldyBWZWN0b3IoeCx5LHopOyAgICAgICAgLy8gQ2FsbCBDKysgY29uc3RydWN0b3IKLQlyZXR1cm4gdjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQm90aCBmdW5jdGlvbnMgcmV0dXJuIGEgVmVjdG9yLCBidXQgdGhlIGNvbnN0cnVjdG9yIGlzIHJldHVybmluZyBhIGJyYW5kLW5ldyBWZWN0b3Igd2hpbGUgdGhlIG90aGVyIGZ1bmN0aW9uIGlzIHJldHVybmluZyBhIFZlY3RvciB0aGF0IHdhcyBhbHJlYWR5IGNyZWF0ZWQgKGhvcGVmdWxseSkuICAgIEluIFBlcmwsIGJvdGggdmVjdG9ycyB3aWxsIGJlIGluZGlzdGluZ3Vpc2hhYmxlLS0tY2xlYXJseSBhIHByb2JsZW0gY29uc2lkZXJpbmcgdGhhdCB3ZSB3b3VsZCBwcm9iYWJseSBsaWtlIHRoZSBuZXdseSBjcmVhdGVkIFZlY3RvciB0byBiZSBkZXN0cm95ZWQgd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGl0LjxwPgotPHA+Ci1UbyBtYW5hZ2UgdGhlc2UgcHJvYmxlbXMsIGVhY2ggY2xhc3MgY29udGFpbnMgdHdvIG1ldGhvZHMgdGhhdCBhY2Nlc3MgYW4gaW50ZXJuYWwgaGFzaCB0YWJsZSBjYWxsZWQgPHR0PiVPV05FUjwvdHQ+LiAgIFRoaXMgaGFzaCBrZWVwcyBhIGxpc3Qgb2YgYWxsIG9mIHRoZSBvYmplY3RzIHRoYXQgUGVybCBrbm93cyB0aGF0IGl0IGhhcyBjcmVhdGVkLiAgICBUaGlzIGhhcHBlbnMgaW4gdHdvIGNhc2VzOiAoMSkgd2hlbiB0aGUgY29uc3RydWN0b3IgaGFzIGJlZW4gY2FsbGVkLCAgYW5kICgyKSB3aGVuIGEgZnVuY3Rpb24gaW1wbGljaXRseSBjcmVhdGVzIGEgbmV3IG9iamVjdCAoYXMgaXMgZG9uZSB3aGVuIFNXSUcgbmVlZHMgdG8gcmV0dXJuIGEgY29tcGxleCBkYXRhdHlwZSBieSB2YWx1ZSkuICAgV2hlbiB0aGUgZGVzdHJ1Y3RvciBpcyBpbnZva2VkLCB0aGUgUGVybCBzaGFkb3cgY2xhc3MgbW9kdWxlIGNoZWNrcyB0aGUgPHR0PiVPV05FUjwvdHQ+IGhhc2ggdG8gc2VlIGlmIFBlcmwgY3JlYXRlZCB0aGUgb2JqZWN0LiAgIElmIHNvLCB0aGUgQy9DKysgZGVzdHJ1Y3RvciBpcyBpbnZva2VkLiAgSWYgbm90LCB3ZSBzaW1wbHkgZGVzdHJveSB0aGUgUGVybCBvYmplY3QgYW5kIGxlYXZlIHRoZSB1bmRlcmx5aW5nIEMgb2JqZWN0IGFsb25lICh1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHNvbWVvbmUgZWxzZSBtdXN0IGhhdmUgY3JlYXRlZCBpdCkuPHA+Ci08cD4KLVRoaXMgc2NoZW1lIHdvcmtzIHJlbWFya2FibHkgd2VsbCBpbiBwcmFjdGljZSBidXQgaXQgaXNuJ3QgZm9vbHByb29mLiAgSW4gZmFjdCwgaXQgd2lsbCBmYWlsIGlmIHlvdSBjcmVhdGUgYSBuZXcgQyBvYmplY3QgaW4gUGVybCwgcGFzcyBpdCBvbiB0byBhIEMgZnVuY3Rpb24gdGhhdCByZW1lbWJlcnMgdGhlIG9iamVjdCwgYW5kIHRoZW4gZGVzdHJveSB0aGUgY29ycmVzcG9uZGluZyBQZXJsIG9iamVjdCAodGhpcyBzaXR1YXRpb24gdHVybnMgb3V0IHRvIGNvbWUgdXAgZnJlcXVlbnRseSB3aGVuIGNvbnN0cnVjdGluZyBvYmplY3RzIGxpa2UgbGlua2VkIGxpc3RzIGFuZCB0cmVlcykuICAgV2hlbiBDIHRha2VzIHBvc3Nlc3Npb24gb2YgYW4gb2JqZWN0LCB5b3UgY2FuIGNoYW5nZSBQZXJsJ3Mgb3dlcnNoaXAgYnkgc2ltcGx5IGRlbGV0aW5nIHRoZSBvYmplY3QgZnJvbSB0aGUgPHR0PiVPV05FUjwvdHQ+IGhhc2guICBUaGlzIGlzIGRvbmUgdXNpbmcgdGhlIDx0dD5ESVNPV04gPC90dD5tZXRob2QuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBQZXJsIGNvZGUgdG8gY2hhbmdlIG93bmVyc2hpcCBvZiBhbiBvYmplY3QKLSR2ID0gbmV3IFZlY3Rvcih4LHkseik7Ci0kdi0mZ3Q7RElTT1dOKCk7ICAgICAKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVG8gYWNxdWlyZSBvd25lcnNoaXAgb2YgYW4gb2JqZWN0LCB0aGUgPHR0PkFDUVVJUkU8L3R0PiBtZXRob2QgY2FuIGJlIHVzZWQuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBHaXZlbiBQZXJsIG93bmVyc2hpcCBvZiBhIGZpbGUKLSR1ID0gVmVjdG9yX2dldCgkdik7Ci0kdS0mZ3Q7QUNRVUlSRSgpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BcyBhbHdheXMsIGEgbGl0dGxlIGNhcmUgaXMgaW4gb3JkZXIuICAgIFNXSUcgZG9lcyBub3QgcHJvdmlkZSByZWZlcmVuY2UgY291bnRpbmcsIGdhcmJhZ2UgY29sbGVjdGlvbiwgb3IgYWR2YW5jZWQgZmVhdHVyZXMgb25lIG1pZ2h0IGZpbmQgaW4gc29waGlzdGljYXRlZCBsYW5ndWFnZXMuPHA+Ci08YSBuYW1lPSJuNTIiPjwvYT48aDM+IE5lc3RlZCBPYmplY3RzPC9oMz4KLVN1cHBvc2UgdGhhdCB3ZSBoYXZlIGEgbmV3IG9iamVjdCB0aGF0IGxvb2tzIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3RydWN0IFBhcnRpY2xlIHsKLQlWZWN0b3IgcjsKLQlWZWN0b3IgdjsKLQlWZWN0b3IgZjsKLQlpbnQJdHlwZTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCB0aGUgbWVtYmVycyBvZiB0aGUgc3RydWN0dXJlIGFyZSBjb21wbGV4IG9iamVjdHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBlbmNhcHN1bGF0ZWQgaW4gYSBQZXJsIHNoYWRvdyBjbGFzcy4gICAgVG8gaGFuZGxlIHRoZXNlIGNvcnJlY3RseSwgd2UgdXNlIHRoZSA8dHQ+JUJMRVNTRURNRU1CRVJTPC90dD4gaGFzaCB3aGljaCB3b3VsZCBsb29rIGxpa2UgdGhpcyAoYWxvbmcgd2l0aCBzb21lIHN1cHBvcnRpbmcgY29kZSkgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnBhY2thZ2UgUGFydGljbGU7Ci0uLi4KLSVCTEVTU0VETUVNQkVSUyA9ICgKLQlyID0mZ3Q7IGBWZWN0b3InLAotCXYgPSZndDsgYFZlY3RvcicsCi0JZiA9Jmd0OyBgVmVjdG9yJywKLSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gZmV0Y2hpbmcgbWVtYmVycyBmcm9tIHRoZSBzdHJ1Y3R1cmUsICA8dHQ+JUJMRVNTRURNRU1CRVJTPC90dD4gaXMgY2hlY2tlZC4gICBJZiB0aGUgcmVxdWVzdGVkIGZpZWxkIGlzIHByZXNlbnQsIHdlIGNyZWF0ZSBhIHRpZWQtaGFzaCB0YWJsZSBhbmQgcmV0dXJuIGl0LiAgIElmIG5vdCwgd2UganVzdCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgbWVtYmVyIHVubW9kaWZpZWQuPHA+Ci08cD4KLVRoaXMgaW1wbGVtZW50YXRpb24gYWxsb3dzIHVzIHRvIG9wZXJhdGUgb24gbmVzdGVkIHN0cnVjdHVyZXMgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotIyBQZXJsIGFjY2VzcyBvZiBuZXN0ZWQgc3RydWN0dXJlCi0kcCA9IG5ldyBQYXJ0aWNsZSgpOwotJHAtJmd0O3tmfS0mZ3Q7e3h9ID0gMC4wOwotJSR7JHAtJmd0O3t2fX0gPSAoIHg9Jmd0OzAsIHk9Jmd0OzAsIHo9Jmd0OzApOyAgICAgICAgIAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08YSBuYW1lPSJuNTMiPjwvYT48aDM+IFNoYWRvdyBGdW5jdGlvbnM8L2gzPgotV2hlbiBmdW5jdGlvbnMgdGFrZSBhcmd1bWVudHMgaW52b2x2aW5nIGEgY29tcGxleCBvYmplY3QsIGl0IGlzIHNvbWV0aW1lcyBuZWNlc3NhcnkgdG8gd3JpdGUgYSBzaGFkb3cgZnVuY3Rpb24uICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+ZG91YmxlIGRvdF9wcm9kdWN0KFZlY3RvciAqdjEsIFZlY3RvciAqdjIpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1TaW5jZSBWZWN0b3IgaXMgYW4gb2JqZWN0IGFscmVhZHkgd3JhcHBlZCBpbnRvIGEgc2hhZG93IGNsYXNzLCB3ZSBuZWVkIHRvIG1vZGlmeSB0aGlzIGZ1bmN0aW9uIHRvIGFjY2VwdCBhcmd1bWVudHMgdGhhdCBhcmUgZ2l2ZW4gaW4gdGhlIGZvcm0gb2YgdGllZCBoYXNoIHRhYmxlcy4gICBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgYSBQZXJsIGZ1bmN0aW9uIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3ViIGRvdF9wcm9kdWN0IHsKLSAgICBteSBAYXJncyA9IEBfOwotICAgICRhcmdzWzBdID0gdGllZCgleyRhcmdzWzBdfSk7ICAgICAgICAgIyBHZXQgdGhlIHJlYWwgcG9pbnRlciB2YWx1ZXMKLSAgICAkYXJnc1sxXSA9IHRpZWQoJXskYXJnc1sxXX0pOwotICAgIG15ICRyZXN1bHQgPSB2ZWN0b3JjOjpkb3RfcHJvZHVjdChAYXJncyk7Ci0gICAgcmV0dXJuICRyZXN1bHQ7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgZnVuY3Rpb24gcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLCBidXQgb3BlcmF0ZXMgaW4gYW4gaWRlbnRpY2FsIG1hbm5lci48cD4KLTxhIG5hbWU9Im41NCI+PC9hPjxoMz4gIEluaGVyaXRhbmNlPC9oMz4KLVNpbXBsZSBDKysgaW5oZXJpdGFuY2UgaXMgaGFuZGxlZCB1c2luZyB0aGUgUGVybCA8dHQ+QElTQTwvdHQ+IGFycmF5IGluIGVhY2ggY2xhc3MgcGFja2FnZS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIHNoYXBlcy5pCi0vLyBTV0lHIGludGVyZmFjZSBmaWxlIGZvciBzaGFwZXMgY2xhc3MKLSVtb2R1bGUgc2hhcGVzCi0lewotI2luY2x1ZGUgInNoYXBlcy5oIgotJX0KLQotY2xhc3MgU2hhcGUgewotcHVibGljOgotCXZpcnR1YWwgZG91YmxlIGFyZWEoKSA9IDA7Ci0JdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOwotCXZvaWQgICAgc2V0X2xvY2F0aW9uKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci19OwotY2xhc3MgQ2lyY2xlIDogcHVibGljIFNoYXBlIHsKLXB1YmxpYzoKLQlDaXJjbGUoZG91YmxlIHJhZGl1cyk7Ci0JfkNpcmNsZSgpOwotCWRvdWJsZSBhcmVhKCk7Ci0JZG91YmxlIHBlcmltZXRlcigpOwotfTsKLWNsYXNzIFNxdWFyZSA6IHB1YmxpYyBTaGFwZSB7Ci1wdWJsaWM6Ci0JU3F1YXJlKGRvdWJsZSBzaXplKTsKLQl+U3F1YXJlKCk7Ci0JZG91YmxlIGFyZWEoKTsKLQlkb3VibGUgcGVyaW1ldGVyKCk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSByZXN1bHRpbmcsIFBlcmwgd3JhcHBlciBjbGFzcyB3aWxsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIGNvZGUgOjxwPgotPGJsb2NrcXVvdGU+PHByZT5QYWNrYWdlIFNoYXBlOwotQElTQSA9IChzaGFwZXMpOwotLi4uCi1QYWNrYWdlIENpcmNsZTsKLUBJU0EgPSAoc2hhcGVzIFNoYXBlKTsKLS4uLgotUGFja2FnZSBTcXVhcmU7Ci1ASVNBID0gKHNoYXBlcyBTaGFwZSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+QElTQTwvdHQ+IGFycmF5IGRldGVybWluZXMgd2hlcmUgdG8gbG9vayBmb3IgbWV0aG9kcyBvZiBhIHBhcnRpY3VsYXIgY2xhc3MuICBJbiB0aGlzIGNhc2UsIGJvdGggdGhlIDx0dD5DaXJjbGU8L3R0PiBhbmQgPHR0PlNxdWFyZTwvdHQ+IGNsYXNzZXMgaW5oZXJpdCBmdW5jdGlvbnMgZnJvbSA8dHQ+U2hhcGU8L3R0PiBzbyB3ZSdsbCB3YW50IHRvIGxvb2sgaW4gdGhlIDx0dD5TaGFwZTwvdHQ+IGJhc2UgY2xhc3MgZm9yIHRoZW0uICAgIEFsbCBjbGFzc2VzIGFsc28gaW5oZXJpdCBmcm9tIHRoZSB0b3AtbGV2ZWwgbW9kdWxlIDx0dD5zaGFwZXM8L3R0Pi4gICBUaGlzIGlzIGJlY2F1c2UgY2VydGFpbiBjb21tb24gb3BlcmF0aW9ucyBuZWVkZWQgdG8gaW1wbGVtZW50IHNoYWRvdyBjbGFzc2VzIGFyZSBpbXBsZW1lbnRlZCBvbmx5IG9uY2UgYW5kIHJldXNlZCBpbiB0aGUgd3JhcHBlciBjb2RlIGZvciB2YXJpb3VzIGNsYXNzZXMgYW5kIHN0cnVjdHVyZXMuPHA+Ci08cD4KLVNpbmNlIFNXSUcgc2hhZG93IGNsYXNzZXMgYXJlIGltcGxlbWVudGVkIGluIFBlcmwsIGl0IGlzIGVhc3kgdG8gc3ViY2xhc3MgZnJvbSBhbnkgU1dJRyBnZW5lcmF0ZWQgY2xhc3MuICBUbyBkbyB0aGlzLCBzaW1wbHkgcHV0IHRoZSBuYW1lIG9mIGEgU1dJRyBjbGFzcyBpbiB0aGUgPHR0PkBJU0E8L3R0PiBhcnJheSBmb3IgeW91ciBuZXcgY2xhc3MuIEhvd2V2ZXIsIGJlIGZvcmV3YXJuZWQgdGhhdCB0aGlzIGlzIG5vdCBhIHRyaXZpYWwgcHJvYmxlbS4gIEluIHBhcnRpY3VsYXIsIGluaGVyaXRhbmNlIG9mIGRhdGEgbWVtYmVycyBpcyBleHRyZW1lbHkgdHJpY2t5IChhbmQgSSdtIG5vdCBldmVuIHN1cmUgaWYgaXQgcmVhbGx5IHdvcmtzKS4gPHA+Ci08YSBuYW1lPSJuNTUiPjwvYT48aDM+IEl0ZXJhdG9yczwvaDM+Ci1XaXRoIGVhY2ggY2xhc3Mgb3Igc3RydWN0dXJlLCBTV0lHIGFsc28gZ2VuZXJhdGVzIGEgcGFpciBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCBQZXJsIGl0ZXJhdG9ycy4gIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlIHRoZSA8dHQ+a2V5czwvdHQ+IGFuZCA8dHQ+ZWFjaDwvdHQ+IGZ1bmN0aW9ucyBvbiBhIEMvQysrIG9iamVjdC4gIEl0ZXJhdG9ycyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgY29kZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN1YiBGSVJTVEtFWSB7Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBASVRFUkFUT1JTeyRzZWxmfSA9IFtgeCcsJ3knLCd6JywgXTsKLSAgICBteSAkZmlyc3QgPSBzaGlmdCBAeyRJVEVSQVRPUlN7JHNlbGZ9fTsKLSAgICByZXR1cm4gJGZpcnN0OwotfQotCi1zdWIgTkVYVEtFWSB7Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICAkbmVsZW0gPSBzY2FsYXIgQHskSVRFUkFUT1JTeyRzZWxmfX07Ci0gICAgaWYgKCRuZWxlbSAmZ3Q7IDApIHsKLSAgICAgICAgbXkgJG1lbWJlciA9IHNoaWZ0IEB7JElURVJBVE9SU3skc2VsZn19OwotICAgICAgICByZXR1cm4gJG1lbWJlcjsKLSAgICB9IGVsc2UgewotICAgICAgICBASVRFUkFUT1JTeyRzZWxmfSA9IFtgeCcsJ3knLCd6JywgXTsKLSAgICAgICAgcmV0dXJuICgpOwotICAgIH0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+JUlURVJBVE9SUzwvdHQ+IGhhc2ggdGFibGUgbWFpbnRhaW5zIHRoZSBzdGF0ZSBvZiBlYWNoIG9iamVjdCBmb3Igd2hpY2ggdGhlIDx0dD5rZXlzPC90dD4gb3IgPHR0PmVhY2g8L3R0PiBmdW5jdGlvbiBoYXMgYmVlbiBhcHBsaWVkIHRvLiAgICBUaGUgc3RhdGUgaXMgbWFpbnRhaW5lZCBieSBrZWVwaW5nIGEgbGlzdCBvZiB0aGUgbWVtYmVyIG5hbWVzLjxwPgotPHA+Ci1XaGlsZSBpdGVyYXRvcnMgbWF5IGJlIG9mIGxpbWl0ZWQgdXNlIHdoZW4gd29ya2luZyB3aXRoIEMvQysrIGNvZGUsIGl0IHR1cm5zIG91dCB0aGV5IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gYW4gZWxlbWVudCBieSBlbGVtZW50IGNvcHkgb2YgYW4gb2JqZWN0LjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiR2ID0gbmV3IFZlY3RvcigxLDIsMyk7Ci0kdyA9IG5ldyBWZWN0b3IoMCwwLDApOwotJSR3ID0gJSR2OyAgICAgICAgICAgICAgICAjIENvcHkgY29udGVudHMgb2YgdiBpbnRvIHcKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSG93ZXZlciwgdGhpcyBpcyBub3QgYSBkZWVwIGNvcHkgc28gdGhleSBwcm9iYWJseSB3b3JrcyBiZXR0ZXIgd2l0aCBDIHRoYW4gd2l0aCBDKysuPHA+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDI+IFdoZXJlIHRvIGdvIGZyb20gaGVyZT88L2gyPgotVGhlIFNXSUcgUGVybDUgbW9kdWxlIGlzIGNvbnN0YW50bHkgaW1wcm92aW5nIHRvIHByb3ZpZGUgYmV0dGVyIGludGVncmF0aW9uIHdpdGggUGVybCBhbmQgdG8gYmUgZWFzaWVyIHRvIHVzZS4gICBUaGUgaW50cm9kdWN0aW9uIG9mIHNoYWRvdyBjbGFzc2VzIGFuZCB0eXBlbWFwcyBpbiB0aGlzIHJlbGVhc2UgYXJlIG9uZSBtb3JlIHN0ZXAgaW4gdGhhdCBkaXJlY3Rpb24uICAgIFRoZSBTV0lHIDx0dD5FeGFtcGxlczwvdHQ+IGRpcmVjdG9yeSBjb250YWlucyBtb3JlIHNpbXBsZSBleGFtcGxlcyBvZiBidWlsZGluZyBQZXJsNSBtb2R1bGVzLiBBcyBhbHdheXMsIHN1Z2dlc3Rpb25zIGZvciBpbXByb3ZpbmcgdGhlIFBlcmw1IGltcGxlbWVudGF0aW9uIGFyZSB3ZWxjb21lLjxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0NzowMSAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9QcmVmYWNlLmh0bWwgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML1ByZWZhY2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDcyMDdmOS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1ByZWZhY2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLTwhLS0gUHVibGlzaGVkIGJ5IFF1YWRyYWxheSBXZWJXb3JrcyBIVE1MIExpdGUgMS41LjEgLS0+Ci08IS0tIEFuZCBtdW5nZWQgYnkgRGF2ZSdzIHNwZWNpYWwgUHl0aG9uIHNjcmlwdCAtLT4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+UHJlZmFjZTwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+IFByZWZhY2U8L2gxPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iI24xIj5JbnRyb2R1Y3Rpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuMiI+U1dJRyByZXNvdXJjZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+QWJvdXQgdGhpcyBtYW51YWw8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNCI+Q3JlZGl0czwvYT4KLTxsaT4gPGEgaHJlZj0iI241Ij5XaGF0J3MgbmV3PzwvYT4KLTxsaT4gPGEgaHJlZj0iI242Ij5CdWcgcmVwb3J0czwvYT4KLTxsaT4gPGEgaHJlZj0iI243Ij5TV0lHIGlzIGZyZWU8L2E+Ci08L3VsPgotCi08YSBuYW1lPSJuMSI+PC9hPjxoMj4gSW50cm9kdWN0aW9uPC9oMj4KLVNXSUcgaXMgYSB0b29sIGZvciBzb2x2aW5nIHByb2JsZW1zLjxwPgotPHA+Ci1Nb3JlIHNwZWNpZmljYWxseSwgU1dJRyBpcyBhIHNpbXBsZSB0b29sIGZvciBidWlsZGluZyBpbnRlcmFjdGl2ZSBDLCBDKyssIG9yIE9iamVjdGl2ZS1DIHByb2dyYW1zIHdpdGggY29tbW9uIHNjcmlwdGluZyBsYW5ndWFnZXMgc3VjaCBhcyBUY2wsIFBlcmwsIGFuZCBQeXRob24uIE9mIGNvdXJzZSwgbW9yZSBpbXBvcnRhbnRseSwgU1dJRyBpcyBhIHRvb2wgZm9yIG1ha2luZyBDIHByb2dyYW1taW5nIG1vcmUgZW5qb3lhYmxlIGFuZCBwcm9tb3RpbmcgbGF6aW5lc3MgKGFuIGVzc2VudGlhbCBmZWF0dXJlKS4gU1dJRyBpcyBub3QgcGFydCBvZiBhbiBvdmVyZ3Jvd24gc29mdHdhcmUgZW5naW5lZXJpbmcgcHJvamVjdCwgYW4gYXR0ZW1wdCB0byBidWlsZCBzb21lIHNvcnQgb2YgbW9ub2xpdGhpYyBwcm9ncmFtbWluZyBlbnZpcm9ubWVudCwgb3IgYW4gYXR0ZW1wdCB0byBmb3JjZSBldmVyeW9uZSB0byByZXdyaXRlIGFsbCBvZiB0aGVpciBjb2RlIChpZS4gY29kZSByZXVzZSkuIEluIGZhY3QsIG5vbmUgb2YgdGhlc2UgdGhpbmdzIGhhdmUgZXZlciBiZWVuIGEgcHJpb3JpdHkuPHA+Ci08cD4KLVNXSUcgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGluIHRoZSBUaGVvcmV0aWNhbCBQaHlzaWNzIERpdmlzaW9uIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeSBmb3IgYnVpbGRpbmcgaW50ZXJmYWNlcyB0byBsYXJnZSBtYXRlcmlhbHMgc2NpZW5jZSByZXNlYXJjaCBzaW11bGF0aW9ucyBiZWluZyBydW4gb24gdGhlIENvbm5lY3Rpb24gTWFjaGluZSA1IHN1cGVyY29tcHV0ZXIuIEluIHRoaXMgZW52aXJvbm1lbnQsIHdlIHdlcmUgZmFjZWQgd2l0aCB0aGUgcHJvYmxlbXMgb2Ygd29ya2luZyB3aXRoIGh1Z2UgYW1vdW50cyBvZiBkYXRhLCBjb21wbGljYXRlZCBtYWNoaW5lcywgYW5kIGNvbnN0YW50bHkgY2hhbmdpbmcgY29kZS4gQXMgc2NpZW50aXN0cywgd2UgbmVlZGVkIGEgbWVjaGFuaXNtIGZvciBidWlsZGluZyBpbnRlcmFjdGl2ZSBwcm9ncmFtcyB0aGF0IHdhcyBleHRyZW1lbHkgZWFzeSB0byB1c2UsIGNvdWxkIGtlZXAgcGFjZSB3aXRoIGNvZGUgdGhhdCB3YXMgY29uc3RhbnRseSBjaGFuZ2luZywgYW5kIGRpZG4ndCBnZXQgaW4gdGhlIHdheSBvZiB0aGUgcmVhbCBwcm9ibGVtcyB0aGF0IHdlcmUgYmVpbmcgc29sdmVkLiBNYWlubHksIHdlIGp1c3Qgd2FudGVkIHRvICJjdXQgdGhlIGNyYXAiIGFuZCB3b3JrIG9uIHRoZSByZWFsIHByb2JsZW1zIGF0IGhhbmQuPHA+Ci08cD4KLVdoaWxlIFNXSUcgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGZvciBzY2llbnRpZmljIGFwcGxpY2F0aW9ucywgaXQgaGFzIGJlY29tZSBhIGdlbmVyYWwgcHVycG9zZSB0b29sIHRoYXQgaXMgYmVpbmcgdXNlZCBpbiBhbiBpbmNyZWFzaW5nIHZhcmlldHkgb2Ygb3RoZXIgY29tcHV0aW5nIGFwcGxpY2F0aW9ucy0taW4gZmFjdCBhbG1vc3QgYW55dGhpbmcgd2hlcmUgQyBwcm9ncmFtbWluZyBpcyBpbnZvbHZlZC4gU29tZSBvZiB0aGUgYXBwbGljYXRpb24gYXJlYXMgdGhhdCBJIGFtIGF3YXJlIG9mIGluY2x1ZGUgc2NpZW50aWZpYyBhcHBsaWNhdGlvbnMsIHZpc3VhbGl6YXRpb24sIGRhdGFiYXNlcywgc2VtaWNvbmR1Y3RvciBDQUQsIHJlbW90ZSBzZW5zaW5nIGFuZCBkaXN0cmlidXRlZCBvYmplY3RzLiBEZXZlbG9wbWVudCBoYXMgYmVlbiBwcmFnbWF0aWMgaW4gbmF0dXJlLS1mZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gYWRkcmVzcyBpbnRlcmVzdGluZyBwcm9ibGVtcyBhcyB0aGV5IGFyaXNlLiBNb3N0IG9mIHRoZSByZWFsbHkgY29vbCBzdHVmZiBoYXMgYmVlbiBjb250cmlidXRlZCBvciBzdWdnZXN0ZWQgYnkgU1dJRydzIHVzZXJzLiBUaGVyZSBoYXMgbmV2ZXIgcmVhbGx5IGJlZW4gYSAiZ3JhbmQiIGRlc2lnbiB0byBTV0lHIG90aGVyIHRoYW4gdGhlIGdvYWwgb2YgY3JlYXRpbmcgYSBwcmFjdGljYWwgcHJvZ3JhbW1pbmcgdG9vbCB0aGF0IGNvdWxkIGJlIHVzZWQgaW4gb3RoZXIgYXBwbGljYXRpb25zLjxwPgotPGEgbmFtZT0ibjIiPjwvYT48aDI+IFNXSUcgcmVzb3VyY2VzPC9oMj4KLVRoZSBvZmZpY2lhbCBsb2NhdGlvbiBvZiBTV0lHIHJlbGF0ZWQgbWF0ZXJpYWwgaXM8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1odHRwOi8vd3d3LmNzLnV0YWguZWR1L35iZWF6bGV5L1NXSUcKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhpcyBzaXRlIGNvbnRhaW5zIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgc29mdHdhcmUsIHVzZXJzIGd1aWRlLCBhbmQgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGJ1Z3MsIGluc3RhbGxhdGlvbiBwcm9ibGVtcywgYW5kIGltcGxlbWVudGF0aW9uIHRyaWNrcy4gVGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBzb2Z0d2FyZSBhbmQgcmVsYXRlZCBmaWxlcyBhcmUgYWxzbyBhdmFpbGFibGUgdmlhIGFub255bW91cyBmdHAgYXQgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+ZnRwOi8vZnRwLmNzLnV0YWguZWR1L3B1Yi9iZWF6bGV5L1NXSUcKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotWW91IGNhbiBhbHNvIHN1YnNjcmliZSB0byB0aGUgU1dJRyBtYWlsaW5nIGxpc3QgYnkgc2VuZGluZyBhIG1lc3NhZ2Ugd2l0aCB0aGUgdGV4dCAic3Vic2NyaWJlIHN3aWciIHRvIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPm1ham9yZG9tb0Bjcy51dGFoLmVkdQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgbWFpbGluZyBsaXN0IG9mdGVuIGRpc2N1c3NlcyBzb21lIG9mIHRoZSBtb3JlIHRlY2huaWNhbCBhc3BlY3RzIG9mIFNXSUcgYWxvbmcgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBiZXRhIHJlbGVhc2VzIGFuZCBmdXR1cmUgd29yay48cD4KLTxhIG5hbWU9Im4zIj48L2E+PGgyPiBBYm91dCB0aGlzIG1hbnVhbDwvaDI+Ci1UaGlzIG1hbnVhbCBoYXMgYmVlbiB3cml0dGVuIGluIHBhcmFsbGVsIHdpdGggdGhlIGRldmVsb3BtZW50IG9mIFNXSUcgYmVjYXVzZSBJIGhhdGUgYmxhY2sgYm94ZXMgYW5kIEkgZG9uJ3QgbGlrZSB1c2luZyBzb2Z0d2FyZSB0aGF0IGlzIHBvb3JseSBkb2N1bWVudGVkLiBUaGlzIG1hbnVhbCBhdHRlbXB0cyB0byBkZXNjcmliZSBhbGwgYXNwZWN0cyBvZiBTV0lHIGFuZCBob3cgaXQgY2FuIGJlIHVzZWQgdG8gc29sdmUgaW50ZXJlc3RpbmcgcHJvYmxlbXMuIERvbid0IGxldCB0aGUgc2l6ZSBzY2FyZSB5b3UsIFNXSUcgY2FuIGJlIHF1aXRlIGVhc3kgdG8gdXNlLiBIb3dldmVyLCBjb3ZlcmluZyBhdXRvbWF0aWMgY29kZSBnZW5lcmF0aW9uIGZvciBmb3VyIGRpZmZlcmVudCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHRha2VzIGFiaXQgb2YgZXhwbGFuYXRpb24uIFNXSUcgY2FuIGRvIHF1aXRlIGEgZmV3IGludGVyZXN0aW5nIHRoaW5ncyB0aGF0IG1pZ2h0IG5vdCBiZSBzbyBvYnZpb3VzIHNvIEkgaG9wZSB0aGF0IHRoZSBtYW51YWwgY2FuIHNoZWQgc29tZSBsaWdodCBvbiBtYW55IG9mIHRoZXNlIGlzc3Vlcy4gVGhlIG1hbnVhbCBhbHNvIHNlcnZlcyBhcyBhIGdlbmVyYWwgcmVmZXJlbmNlIGRlc2NyaWJpbmcgbWFueSBvZiBTV0lHJ3MgaW1wbGVtZW50YXRpb24gaXNzdWVzIChJIHVzZSB0aGUgbWFudWFsIHF1aXRlIHJlZ3VsYXJseSBteXNlbGYpLjxwPgotPGEgbmFtZT0ibjgiPjwvYT48aDM+IFByZXJlcXVpc2l0ZXM8L2gzPgotVGhpcyBtYW51YWwgYXNzdW1lcyB0aGF0IHlvdSBhcmUgaW50ZXJlc3RlZCBpbiB3cml0aW5nIGludGVyYWN0aXZlIEMgcHJvZ3JhbXMgYW5kIHRoYXQgeW91IGhhdmUgYXQgbGVhc3QgaGVhcmQgb2Ygc2NyaXB0aW5nIGxhbmd1YWdlcyBzdWNoIGFzIFRjbCwgUHl0aG9uLCBhbmQgUGVybC4gQSBkZXRhaWxlZCBrbm93bGVkZ2Ugb2YgdGhlc2Ugc2NyaXB0aW5nIGxhbmd1YWdlcyBpcyBub3QgcmVxdWlyZWQgYWx0aG91Z2ggc29tZSBmYW1pbGlhcml0eSBjZXJ0YWlubHkgd29uJ3QgaHVydC4gTm8gcHJpb3IgZXhwZXJpZW5jZSB3aXRoIGJ1aWxkaW5nIEMgZXh0ZW5zaW9ucyB0byB0aGVzZSBsYW5ndWFnZXMgaXMgcmVxdWlyZWQtLS1hZnRlciBhbGwsIHRoaXMgaXMgd2hhdCBTV0lHIGFsbG93cyB5b3UgdG8gZG8gYXV0b21hdGljYWxseS4gSG93ZXZlciwgSSBkbyBhc3N1bWUgdGhhdCB5b3UgYXJlIHJlYXNvbmFibHkgZmFtaWxpYXIgd2l0aCB0aGUgdXNlIG9mIGNvbXBpbGVycywgbGlua2VycywgYW5kIG1ha2VmaWxlcyBzaW5jZSBtYWtpbmcgc2NyaXB0aW5nIGxhbmd1YWdlIGV4dGVuc2lvbnMgaXMgc29tZXdoYXQgbW9yZSBjb21wbGljYXRlZCB0aGFuIHdyaXRpbmcgYSBub3JtYWwgQyBwcm9ncmFtIChhbHRob3VnaCBub3Qgc2lnbmlmaWNhbnRseSBtb3JlIGNvbXBsZXgpLjxwPgotPGEgbmFtZT0ibjkiPjwvYT48aDM+IE9yZ2FuaXphdGlvbiBvZiB0aGlzIG1hbnVhbDwvaDM+Ci1UaGUgZmlyc3QgZmV3IGNoYXB0ZXJzIG9mIHRoaXMgbWFudWFsIGRlc2NyaWJlIFNXSUcgaW4gZ2VuZXJhbCBhbmQgcHJvdmlkZSBhbiBvdmVydmlldyBvZiBpdHMgY2FwYWJpbGl0aWVzLiBUaGUgcmVtYWluaW5nIGNoYXB0ZXJzIGFyZSBkZXZvdGVkIHRvIHNwZWNpZmljIFNXSUcgbGFuZ3VhZ2UgbW9kdWxlcyBhbmQgYXJlIHNlbGYgY29udGFpbmVkLiBUaHVzLCBpZiB5b3UgYXJlIHVzaW5nIFNXSUcgdG8gYnVpbGQgUHl0aG9uIGludGVyZmFjZXMsIHlvdSBjYW4gc2tpcCByaWdodCB0byB0aGF0IGNoYXB0ZXIgYW5kIGZpbmQganVzdCBhYm91dCBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cuIFNvLCBpbiBhIHNlbnNlLCB5b3UgYXJlIHJlYWxseSBnZXR0aW5nIDMgb3IgNCBtYW51YWxzIGluIG9uZS48cD4KLTxhIG5hbWU9Im4xMCI+PC9hPjxoMz4gSG93IHRvIGF2b2lkIHJlYWRpbmcgdGhlIG1hbnVhbDwvaDM+Ci1JZiB5b3UgaGF0ZSByZWFkaW5nIG1hbnVhbHMsIGdsYW5jZSBhdCB0aGUgIkludHJvZHVjdGlvbiIgd2hpY2ggY29udGFpbnMgYSBmZXcgc2ltcGxlIGV4YW1wbGVzIGFuZCB0aGUgb3ZlcmFsbCBwaGlsb3NvcGh5LiBUaGVzZSBleGFtcGxlcyBjb250YWluIGFib3V0IDk1JSBvZiBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cgdG8gdXNlIFNXSUcuIEFmdGVyIHRoYXQsIHNpbXBseSB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIGNoYXB0ZXJzIGZvciByZWZlcmVuY2UuIFRoZSBTV0lHIGRpc3RyaWJ1dGlvbiBhbHNvIGNvbWVzIHdpdGggYSBsYXJnZSBkaXJlY3Rvcnkgb2YgZXhhbXBsZXMgdGhhdCBpbGx1c3RyYXRlIGhvdyB0byBkbyBtb3N0IGtpbmRzIG9mIHRoaW5ncy4gPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gQ3JlZGl0czwvaDI+Ci1UaGlzIHdvcmsgd291bGQgY2VydGFpbmx5IG5vdCBiZSBwb3NzaWJsZSB3aXRob3V0IHRoZSBzdXBwb3J0IG9mIG1hbnkgcGVvcGxlLiBJIHdvdWxkIGxpa2UgdG8gYWNrbm93bGVkZ2UgUGV0ZXIgTG9tZGFobCwgQnJhZCBIb2xpYW4sIFNodWppYSBaaG91LCBOaWVscyBKZW5zZW4sIGFuZCBUaW0gR2VybWFubiBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkgZm9yIGFsbG93aW5nIG1lIHRvIHB1cnN1ZSB0aGlzIHByb2plY3QgYW5kIGZvciBiZWluZyB0aGUgZmlyc3QgdXNlcnMuIFBhdHJpY2sgVHVsbG1hbm4gYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCBzdWdnZXN0ZWQgdGhlIGlkZWEgb2YgYXV0b21hdGljIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbi4gSm9obiBTY2htaWR0IGFuZCBLdXJ0aXMgQmxlZWtlciBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoIHRlc3RlZCBvdXQgdGhlIGVhcmx5IHZlcnNpb25zLiBJJ2QgYWxzbyBsaWtlIHRvIGFja25vd2xlZGdlIENocmlzIEpvaG5zb24gYW5kIHRoZSBTY2llbnRpZmljIENvbXB1dGluZyBhbmQgSW1hZ2luZyBHcm91cCBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoIGZvciB0aGVpciBjb250aW51ZWQgc3VwcG9ydC4gSm9obiBCdWNrbWFuLCBMYXJyeSBWaXJkZW4sIGFuZCBUb20gU2Nod2FsbGVyIHByb3ZpZGVkIHZhbHVhYmxlIGlucHV0IG9uIHRoZSBmaXJzdCByZWxlYXNlcyBhbmQgaW1wcm92aW5nIHRoZSBwb3J0YWJpbGl0eSBvZiBTV0lHLiBEYXZpZCBGbGV0Y2hlciBhbmQgR2FyeSBIb2x0IGhhdmUgcHJvdmlkZWQgYSBncmVhdCBkZWFsIG9mIGlucHV0IG9uIGltcHJvdmluZyBTV0lHJ3MgUGVybDUgaW1wbGVtZW50YXRpb24uIEknZCBhbHNvIGxpa2UgdG8gdGhhbmsgS2V2aW4gQnV0bGVyIGZvciBoaXMgdmFsdWFibGUgaW5wdXQgYW5kIGNvbnRyaWJ1dGlvbiBvZiBhIFdpbmRvd3MgTlQgcG9ydC4gRmluYWxseSwgSSdkIGxpa2UgdG8gYWNrbm93bGVkZ2UgYWxsIG9mIHRoZSB1c2VycyB3aG8gaGF2ZSBicmF2ZWQgdGhlIGZpcnN0IGZldyByZWxlYXNlcyBhbmQgaGF2ZSBiZWVuIGluc3RydW1lbnRhbCBpbiBzdWdnZXN0aW5nIHdheSB0byBtYWtlIFNXSUcgbW9yZSBmdW4gdG8gdXNlIHRoYW4gSSBldmVyIGltYWdpbmVkIHBvc3NpYmxlLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IFdoYXQncyBuZXc/PC9oMj4KLVRoZSBmb2xsb3dpbmcgc2lnbmlmaWNhbnQgZmVhdHVyZXMgYXJlIG5ldyBpbiB2ZXJzaW9uIDEuMTxwPgotPHA+Ci08dWw+Ci08bGk+U3VwcG9ydCBmb3IgdHlwZW1hcHMgKGEgbWVjaGFuaXNtIGZvciBjdXN0b21pemluZyBTV0lHKS4KLTxsaT5NdWx0aXBsZSBpbmhlcml0YW5jZS4KLTxsaT5EZWZhdWx0L29wdGlvbmFsIGFyZ3VtZW50cy4KLTxsaT5QZXJsNSBzaGFkb3cgY2xhc3Nlcy4KLTxsaT5UY2w4LjAgbW9kdWxlICh1c2VzIHRoZSBuYXRpdmUgVGNsOCBvYmplY3QgaW50ZXJmYWNlKS4KLTxsaT5BbiBlbnRpcmVseSBuZXcgZG9jdW1lbnRhdGlvbiBzeXN0ZW0uCi08bGk+TGltaXRlZCBzdXBwb3J0IGZvciBuZXN0ZWQgc3RydWN0dXJlcy4KLTxsaT5OZXcgb2JqZWN0IG9yaWVudGVkIFRjbCBpbnRlcmZhY2UuCi08bGk+VXNlciBkZWZpbmVkIGV4Y2VwdGlvbiBoYW5kbGluZy4KLTxsaT5OZXcgZGlyZWN0aXZlcyBmb3IgYmV0dGVyIGxpYnJhcnkgc3VwcG9ydCAoJWlubGluZSwgJWV4dGVybiAlaW1wb3J0KQotPGxpPk9iamVjdGl2ZS1DIHN1cHBvcnQuCi08bGk+U3VwcG9ydCBmb3IgV2luZG93cy1OVCBhbmQgTWFjaW50b3NoLgotPGxpPkxvdHMgb2YgbWlub3IgYnVnIGZpeGVzIHRvIGFsbW9zdCBldmVyeXRoaW5nLgotPC91bD4KLTxwPgotVGhpcyByZWxlYXNlIHNob3VsZCBiZSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIGludGVyZmFjZSBmaWxlcyBnZW5lcmF0ZWQgZm9yIFNXSUcgMS4wLiBIb3dldmVyLCBtYW55IHRoaW5ncyBoYXZlIGNoYW5nZWQgaW4gdGhlIFNXSUcgQysrIEFQSSBzbyBzcGVjaWFsIHB1cnBvc2UgU1dJRyBDKysgZXh0ZW5zaW9ucyB3cml0dGVuIGZvciAxLjAgd2lsbCBuZWVkIHRvIGJlIG1vZGlmaWVkLjxwPgotPGEgbmFtZT0ibjYiPjwvYT48aDI+IEJ1ZyByZXBvcnRzPC9oMj4KLVdoaWxlIGV2ZXJ5IGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byBtYWtlIFNXSUcgYnVnLWZyZWUsIG9jY2FzaW9uYWxseSBidWdzIHdpbGwgYXJyaXNlLiBUbyByZXBvcnQgYSBidWcsIHNlbmQgbWFpbCB0byB0aGUgU1dJRyBtYWlsaW5nIGxpc3QgYXQgPHR0PnN3aWdAY3MudXRhaC5lZHU8L3R0Pi4gSW4geW91ciBtZXNzYWdlLCBiZSBhcyBzcGVjaWZpYyBhcyBwb3NzaWJsZSwgaW5jbHVkaW5nIChpZiBhcHBsaWNhYmxlKSwgZXJyb3IgbWVzc2FnZXMsIHRyYWNlYmFja3MgKGlmIGEgY29yZSBkdW1wIG9jY3VycmVkKSwgY29ycmVzcG9uZGluZyBwb3J0aW9ucyBvZiB0aGUgU1dJRyBpbnRlcmZhY2UgZmlsZSB1c2VkLCBhbmQgYW55IGltcG9ydGFudCBwaWVjZXMgb2YgdGhlIFNXSUcgZ2VuZXJhdGVkIHdyYXBwZXIgY29kZS4gSSBhdHRlbXB0IHRvIHJlc3BvbmQgdG8gYWxsIGJ1ZyByZXBvcnRzLCBidXQgSSBjYW4gb25seSBmaXggYnVncyBpZiBJIGtub3cgYWJvdXQgdGhlbS48cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgyPiBTV0lHIGlzIGZyZWU8L2gyPgotU1dJRyBpcyBhIGNvbXBsZXRlbHkgZnJlZSBwYWNrYWdlIHRoYXQgeW91IGNhbiB1c2UgaW4gYW55IG1hbm5lciB0aGF0IHlvdSB3aXNoLCBpbmNsdWRpbmcgbW9kaWZpY2F0aW9uLCByZWRpc3RyaWJ1dGlvbiwgYW5kIHVzZSBpbiBjb21tZXJjaWFsIHByb2R1Y3RzLiBUaGUgb25seSByZXN0cmljdGlvbiBvbiBpdHMgdXNlIGlzIHRoYXQgcmVkaXN0cmlidXRpb25zIG9mIHRoZSBTV0lHIGNvbXBpbGVyIHNob3VsZCByZXByb2R1Y2UgdGhlIFNXSUcgY29weXJpZ2h0IG5vdGljZSBpbiB0aGUgc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLiBUaGUgY29kZSBnZW5lcmF0ZWQgYnkgU1dJRyBjYW4gYmUgcmVkaXN0cmlidXRlZCBpbiBhbnkgbWFubmVyLiBPbiBhIG1vcmUgcGVyc29uYWwgbm90ZSwgaWYgeW91J3ZlIHVzZWQgU1dJRyB0byBtYWtlIHNvbWV0aGluZyBjb29sLCBJJ2QgbGlrZSB0byBmaW5kIG91dCBtb3JlIGFib3V0IGl0IHNvIHRoYXQgSSBjYW4gbWFrZSBTV0lHIGJldHRlciAoYW5kIHRvIHNhdGlzZnkgbXkgY3VyaW9zaXR5KS48cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ2OjQ5IDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1B5dGhvbi5odG1sIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9QeXRob24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU3YWI1My4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1B5dGhvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMzNCArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlNXSUcgYW5kIFB5dGhvbjwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+OSBTV0lHIGFuZCBQeXRob248L2gxPjxwPjx1bD4KLTxsaT4gPGEgaHJlZj0iI24xIj5QcmVsaW1pbmFyaWVzPC9hPgotPGxpPiA8YSBocmVmPSIjbjIiPkJ1aWxkaW5nIFB5dGhvbiBFeHRlbnNpb25zIHVuZGVyIFdpbmRvd3MgOTUvTlQ8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+VGhlIGxvdy1sZXZlbCBQeXRob24vQyBpbnRlcmZhY2U8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNCI+UHl0aG9uIHNoYWRvdyBjbGFzc2VzPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPkFib3V0IHRoZSBFeGFtcGxlczwvYT4KLTxsaT4gPGEgaHJlZj0iI242Ij5Tb2x2aW5nIGEgc2ltcGxlIGhlYXQtZXF1YXRpb248L2E+Ci08bGk+IDxhIGhyZWY9IiNuNyI+V3JhcHBpbmcgYSBDIGxpYnJhcnk8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOCI+UHV0dGluZyBpdCBhbGwgdG9nZXRoZXI8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOSI+RXhjZXB0aW9uIGhhbmRsaW5nPC9hPgotPGxpPiA8YSBocmVmPSIjbjEwIj5SZW1hcHBpbmcgQyBkYXRhdHlwZXMgd2l0aCB0eXBlbWFwczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMSI+SW1wbGVtZW50aW5nIEMgY2FsbGJhY2sgZnVuY3Rpb25zIGluIFB5dGhvbjwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMiI+T3RoZXIgb2RkcyBhbmQgZW5kczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMyI+VGhlIGdvcnkgZGV0YWlscyBvZiBzaGFkb3cgY2xhc3NlczwvYT4KLTwvdWw+Ci0KLVRoaXMgY2hhcHRlciBkZXNjcmliZXMgU1dJRydzIHN1cHBvcnQgb2YgUHl0aG9uLiBNYW55IG9mIHRoZSBleGFtcGxlIHByZXNlbnRlZCBoZXJlIHdpbGwgaGF2ZSBhIHNjaWVudGlmaWMgYmlhcyBnaXZlbiBQeXRob24ncyBpbmNyZWFzaW5nIHVzZSBpbiBzY2llbnRpZmljIGFwcGxpY2F0aW9ucyAodGhpcyBpcyBob3cgSSBwcmltYXJpbHkgdXNlIFB5dGhvbiksIGJ1dCB0aGUgdGVjaG5pcXVlcyBhcmUgd2lkZWx5IGFwcGxpY2FibGUgdG8gb3RoZXIgYXJlYXMuPHA+Ci08YSBuYW1lPSJuMSI+PC9hPjxoMj4gUHJlbGltaW5hcmllczwvaDI+Ci1TV0lHIDEuMSB3b3JrcyB3aXRoIFB5dGhvbiAxLjMgYW5kIFB5dGhvbiAxLjQuIEdpdmVuIHRoZSBjaG9pY2UsIHlvdSBzaG91bGQgdXNlIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBQeXRob24uIFlvdSBzaG91bGQgYWxzbyBkZXRlcm1pbmUgaWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyBhbmQgZHluYW1pYyBsb2FkaW5nLiBTV0lHIHdpbGwgd29yayB3aXRoIG9yIHdpdGhvdXQgZHluYW1pYyBsb2FkaW5nLCBidXQgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3Mgd2lsbCB2YXJ5LjxwPgotPGEgbmFtZT0ibjE0Ij48L2E+PGgzPiBSdW5uaW5nIFNXSUc8L2gzPgotVG8gYnVpbGQgYSBQeXRob24gbW9kdWxlLCBydW4gU1dJRyB1c2luZyB0aGUgPHR0Pi1weXRob248L3R0PiBvcHRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVzd2lnIC1weXRob24gZXhhbXBsZS5pCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgd2lsbCBwcm9kdWNlIDIgZmlsZXMuIFRoZSBmaWxlIDx0dD5leGFtcGxlX3dyYXAuYzwvdHQ+IGNvbnRhaW5zIGFsbCBvZiB0aGUgQyBjb2RlIG5lZWRlZCB0byBidWlsZCBhIFB5dGhvbiBtb2R1bGUgYW5kIGEgZG9jdW1lbnRhdGlvbiBmaWxlIGRlc2NyaWJlcyB0aGUgcmVzdWx0aW5nIGludGVyZmFjZS4gVG8gYnVpbGQgYSBQeXRob24gbW9kdWxlLCB5b3Ugd2lsbCBuZWVkIHRvIGNvbXBpbGUgdGhlIGZpbGUgPHR0PmV4YW1wbGVfd3JhcC5jPC90dD4gYW5kIGxpbmsgaXQgd2l0aCB0aGUgcmVzdCBvZiB5b3VyIHByb2dyYW0gKGFuZCBwb3NzaWJseSBQeXRob24gaXRzZWxmKS4gV2hlbiB3b3JraW5nIHdpdGggc2hhZG93IGNsYXNzZXMsIFNXSUcgd2lsbCBhbHNvIHByb2R1Y2UgYSA8dHQ+LnB5PC90dD4gZmlsZSwgYnV0IHRoaXMgaXMgZGVzY3JpYmVkIGxhdGVyLjxwPgotPGEgbmFtZT0ibjE1Ij48L2E+PGgzPiBHZXR0aW5nIHRoZSByaWdodCBoZWFkZXIgZmlsZXM8L2gzPgotSW4gb3JkZXIgdG8gY29tcGlsZSwgeW91IG5lZWQgdG8gbG9jYXRlIHRoZSBmb2xsb3dpbmcgZGlyZWN0b3JpZXMgdGhhdCBhcmUgcGFydCBvZiB0aGUgUHl0aG9uIGRpc3RyaWJ1dGlvbiA6PHA+Ci08cD4KLUZvciBQeXRob24gMS4zIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vdXNyL2xvY2FsL2luY2x1ZGUvUHkgCi0vdXNyL2xvY2FsL2xpYi9weXRob24vbGliCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUZvciBQeXRob24gMS40IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS40Ci0vdXNyL2xvY2FsL2xpYi9weXRob24xLjQvY29uZmlnCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBleGFjdCBsb2NhdGlvbiBtYXkgdmFyeSBvbiB5b3VyIG1hY2hpbmUsIGJ1dCB0aGUgYWJvdmUgbG9jYXRpb25zIGFyZSB0eXBpY2FsLiA8cD4KLTxhIG5hbWU9Im4xNiI+PC9hPjxoMz4gQ29tcGlsaW5nIGEgZHluYW1pYyBtb2R1bGU8L2gzPgotVG8gYnVpbGQgYSBzaGFyZWQgb2JqZWN0IGZpbGUsIHlvdSBuZWVkIHRvIGNvbXBpbGUgeW91ciBtb2R1bGUgaW4gYSBtYW5uZXIgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIChzaG93biBmb3IgSXJpeCk6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1weXRob24gZXhhbXBsZS5pCi0lIGdjYyAtYyBleGFtcGxlLmMKLSUgZ2NjIC1jIGV4YW1wbGVfd3JhcC5jIC1ESEFWRV9DT05GSUdfSCAtSS91c3IvbG9jYWwvaW5jbHVkZS9weXRob24xLjQgXAotCS1JL3Vzci9sb2NhbC9saWIvcHl0aG9uMS40L2NvbmZpZwotJSBsZCAtc2hhcmVkIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlbW9kdWxlLnNvCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVVuZm9ydHVuYXRlbHksIHRoZSBwcm9jZXNzIG9mIGJ1aWxkaW5nIGEgc2hhcmVkIG9iamVjdCBmaWxlIHZhcmllcyBvbiBldmVyeSBzaW5nbGUgbWFjaGluZSBzbyB5b3UgbWF5IG5lZWQgdG8gcmVhZCB1cCBvbiB0aGUgbWFuIHBhZ2VzIGZvciB5b3VyIEMgY29tcGlsZXIgYW5kIGxpbmtlci48cD4KLTxwPgotV2hlbiBidWlsZGluZyBhIGR5bmFtaWMgbW9kdWxlLCB0aGUgbmFtZSBvZiB0aGUgb3V0cHV0IGZpbGUgaXMgaW1wb3J0YW50LiBJZiB0aGUgbmFtZSBvZiB5b3VyIFNXSUcgbW9kdWxlIGlzICI8dHQ+ZXhhbXBsZTwvdHQ+IiwgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGZpbGUgc2hvdWxkIGJlICI8dHQ+ZXhhbXBsZW1vZHVsZS5zbzwvdHQ+IiAob3IgZXF1aXZhbGVudCBkZXBlbmRpbmcgb24geW91ciBtYWNoaW5lKS4gVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBpcyBzcGVjaWZpZWQgdXNpbmcgdGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlIG9yPHR0PiAtbW9kdWxlPC90dD4gY29tbWFuZCBsaW5lIG9wdGlvbi48cD4KLTxwPgotV2hpbGUgZHluYW1pYyBsb2FkaW5nIGlzIHRoZSBwcmVmZXJyZWQgbWV0aG9kIGZvciBtYWtpbmcgU1dJRyBtb2R1bGVzLCBpdCBpcyBub3QgZm9vbHByb29mIGFuZCBub3Qgc3VwcG9ydGVkIG9uIGFsbCBtYWNoaW5lcy4gIEluIHRoZXNlIGNhc2VzLCB5b3UgY2FuIHJlYnVpbGQgdGhlIFB5dGhvbiBpbnRlcnByZXRlciB3aXRoIHlvdXIgZXh0ZW5zaW9ucyBhZGRlZC48cD4KLTxhIG5hbWU9Im4xNyI+PC9hPjxoMz4gUmVidWlsZGluZyB0aGUgUHl0aG9uIGludGVycHJldGVyIChha2EuIHN0YXRpYyBsaW5raW5nKTwvaDM+Ci1UaGUgbm9ybWFsIHByb2NlZHVyZSBmb3IgYWRkaW5nIGEgbmV3IG1vZHVsZSB0byBQeXRob24gaW52b2x2ZXMgZmluZGluZyB0aGUgUHl0aG9uIHNvdXJjZSwgYWRkaW5nIGFuIGVudHJ5IHRvIHRoZSA8dHQ+TW9kdWxlcy9TZXR1cDwvdHQ+IGZpbGUsIGFuZCByZWJ1aWxkaW5nIHRoZSBpbnRlcnByZXRlciB1c2luZyB0aGUgUHl0aG9uIE1ha2VmaWxlLiBXaGlsZSBpdCdzIHBvc3NpYmxlIHRvIHNpbXBsaWZ5IHRoZSBwcm9jZXNzIGJ5IHVzaW5nIHRoZSBWUEFUSCBmZWF0dXJlIG9mIGBtYWtlJywgSSd2ZSBhbHdheXMgZm91bmQgdGhlIHByb2Nlc3MgdG8gYmUgYSBsaXR0bGUgdG9vIGNvbXBsaWNhdGVkLiA8cD4KLTxwPgotU1dJRyBwcm92aWRlcyBhbiBleHRyZW1lbHkgZWFzeSwgYWx0aG91Z2ggc29tZXdoYXQgdW5jb252ZW50aW9uYWwsIG1lY2hhbmlzbSBmb3IgcmVidWlsZGluZyBQeXRob24gdXNpbmcgU1dJRydzIGxpYnJhcnkgZmVhdHVyZS4gV2hlbiB5b3Ugd2FudCB0byBidWlsZCBhIHN0YXRpYyB2ZXJzaW9uIG9mIFB5dGhvbiwgc2ltcGx5IG1ha2UgYW4gaW50ZXJmYWNlIGZpbGUgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLQotZXh0ZXJuIGludCBmYWN0KGludCk7Ci1leHRlcm4gaW50IG1vZChpbnQsIGludCk7Ci1leHRlcm4gZG91YmxlIE15X3ZhcmlhYmxlOwotCi0laW5jbHVkZSBlbWJlZC5pICAgICAgICAgICAgICAvLyBJbmNsdWRlIGNvZGUgZm9yIGEgc3RhdGljIHZlcnNpb24gb2YgUHl0aG9uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+ZW1iZWQuaTwvdHQ+IGxpYnJhcnkgZmlsZSBpbmNsdWRlcyBzdXBwb3J0aW5nIGNvZGUgdGhhdCBjb250YWlucyBldmVyeXRoaW5nIG5lZWRlZCB0byByZWJ1aWxkIFB5dGhvbi4gVG8gYnVpbGQgeW91ciBtb2R1bGUsIHNpbXBseSBkbyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXB5dGhvbiBleGFtcGxlLmkKLSUgZ2NjIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyAtREhBVkVfQ09ORklHX0ggLUkvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS40IFwKLQktSS91c3IvbG9jYWwvbGliL3B5dGhvbjEuNC9jb25maWcgXAotCS1ML3Vzci9sb2NhbC9saWIvcHl0aG9uMS40L2NvbmZpZyAtbE1vZHVsZXMgLWxQeXRob24gLWxPYmplY3RzIC1sUGFyc2VyIC1sbSBcCi0JLW8gbXlweXRob24KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotT24gc29tZSBtYWNoaW5lcywgeW91IG1heSBuZWVkIG5lZWQgdG8gc3VwcGx5IGFkZGl0aW9uYWwgbGlicmFyaWVzIG9uIHRoZSBsaW5rIGxpbmUuIEluIHBhcnRpY3VsYXIsIHlvdSBtYXkgbmVlZCB0byBzdXBwbHkgPHR0Pi1sc29ja2V0PC90dD4sPHR0PiAtbG5zbDwvdHQ+LCBhbmQgPHR0Pi1sZGw8L3R0Pi4gPHA+Ci08cD4KLUl0IGlzIGFsc28gcG9zc2libGUgdG8gYWRkIHRoZSBlbWJlZC5pIGxpYnJhcnkgdG8gYW4gZXhpc3RpbmcgaW50ZXJmYWNlIGJ5IHJ1bm5pbmcgU1dJRyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXB5dGhvbiAtbGVtYmVkLmkgZXhhbXBsZS5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+ZW1iZWQuaTwvdHQ+IGZpbGUgdXNlcyBhbGwgb2YgdGhlIG1vZHVsZXMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIHVzZWQgaW4geW91ciBpbnN0YWxsZWQgdmVyc2lvbiBvZiBQeXRob24uIFRodXMsIHlvdXIgbmV3IHZlcnNpb24gb2YgUHl0aG9uIHdpbGwgYmUgaWRlbnRpY2FsIHRvIHRoZSBvbGQgb25lIGV4Y2VwdCB3aXRoIHlvdXIgbmV3IG1vZHVsZSBhZGRlZC4gSWYgeW91IGhhdmUgY29uZmlndXJlZCBQeXRob24gdG8gdXNlIG1vZHVsZXMgc3VjaCBhcyA8dHQ+dGtpbnRlciw8L3R0PiB5b3UgbWF5IG5lZWQgdG8gc3VwcGx5IGxpbmthZ2UgdG8gdGhlIFRjbC9UayBsaWJyYXJpZXMgYW5kIFgxMSBsaWJyYXJpZXMuPHA+Ci08cD4KLVB5dGhvbidzIDx0dD5tYWluKCk8L3R0PiBwcm9ncmFtIGlzIHJhdGhlciB1bmZyaWVuZGx5IHRvd2FyZHMgQysrIGNvZGUsIGJ1dCBTV0lHJ3MgPHR0PmVtYmVkLmk8L3R0PiBtb2R1bGUgcHJvdmlkZXMgYSByZXBsYWNlbWVudCB0aGF0IGNhbiBiZSBjb21waWxlZCB3aXRoIHRoZSBDKysgY29tcGlsZXItLW1ha2luZyBpdCBlYXN5IHRvIGJ1aWxkIEMrKyBQeXRob24gZXh0ZW5zaW9ucy48cD4KLTxwPgotVGhlIDx0dD5lbWJlZC5pPC90dD4gbGlicmFyeSBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggUHl0aG9uIDEuNC4gSWYgeW91IGFyZSB1c2luZyBQeXRob24gMS4zLCB5b3Ugc2hvdWxkIHVzZSB0aGUgZmlsZSA8dHQ+ZW1iZWQxMy5pPC90dD4gaW5zdGVhZCAodGhpcyBjYW4gYmUgZG9uZSBieSBtYWtpbmcgYSBzeW1ib2xpYyBsaW5rIGluIHRoZSBTV0lHIGxpYnJhcnkpIG9yIHNpbXBseSB1c2luZyB0aGUgPHR0Pi1sPC90dD4gb3B0aW9uLjxwPgotPGEgbmFtZT0ibjE4Ij48L2E+PGgzPiBVc2luZyB5b3VyIG1vZHVsZTwvaDM+Ci1UbyB1c2UgeW91ciBtb2R1bGUgaW4gUHl0aG9uLCBzaW1wbHkgdXNlIFB5dGhvbidzIGltcG9ydCBjb21tYW5kLiBUaGUgcHJvY2VzcyBpcyBpZGVudGljYWwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB5b3UgdXNlZCBkeW5hbWljIGxvYWRpbmcgb3IgcmVidWlsdCB0aGUgUHl0aG9uIGludGVycHJldGVyIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHB5dGhvbgotJmd0OyZndDsmZ3Q7IGltcG9ydCBleGFtcGxlCi0mZ3Q7Jmd0OyZndDsgZXhhbXBsZS5mYWN0KDQpCi0yNAotJmd0OyZndDsmZ3Q7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4xOSI+PC9hPjxoMz4gQ29tcGlsYXRpb24gcHJvYmxlbXMgYW5kIGNvbXBpbGluZyB3aXRoIEMrKzwvaDM+Ci1Gb3IgdGhlIG1vc3QgcGFydCwgY29tcGlsaW5nIGEgUHl0aG9uIG1vZHVsZSBpcyBzdHJhaWdodGZvcndhcmQsIGJ1dCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcG90ZW50aWFsIHByb2JsZW1zIDo8cD4KLTxwPgotPHVsPgotPGxpPkR5bmFtaWMgbG9hZGluZyBpcyBub3Qgc3VwcG9ydGVkIG9uIGFsbCBtYWNoaW5lcy4gSWYgeW91IGNhbid0IGdldCBhIG1vZHVsZSB0byBidWlsZCwgeW91IG1pZ2h0IHRyeSBidWlsZGluZyBhIG5ldyB2ZXJzaW9uIG9mIFB5dGhvbiB1c2luZyBzdGF0aWMgbGlua2luZyBpbnN0ZWFkLgotPGxpPkluIG9yZGVyIHRvIGJ1aWxkIEMrKyBtb2R1bGVzLCB5b3UgbWF5IG5lZWQgdG8gbGluayB3aXRoIHRoZSBDKysgY29tcGlsZSB1c2luZyBhIGNvbW1hbmQgbGlrZSBgPHR0PmMrKyAtc2hhcmVkIGV4YW1wbGVfd3JhcC5vIGV4YW1wbGUubyAtbyBleGFtcGxlbW9kdWxlLnNvPC90dD4nCi08bGk+SWYgYnVpbGRpbmcgYSBkeW5hbWljIEMrKyBtb2R1bGUgdXNpbmcgZysrLCB5b3UgbWF5IGFsc28gbmVlZCB0byBsaW5rIGFnYWluc3QgPHR0PmxpYmdjYy5hPC90dD4sIDx0dD5saWJnKysuYTwvdHQ+LCBhbmQgPHR0PmxpYnN0YysrLmE8L3R0PiBsaWJyYXJpZXMuCi08bGk+TWFrZSBzdXJlIHlvdSBhcmUgdXNpbmcgdGhlIGNvcnJlY3QgaGVhZGVyIGZpbGVzIGFuZCBsaWJyYXJpZXMuIEEgbW9kdWxlIGNvbXBpbGVkIHdpdGggUHl0aG9uIDEuMyBoZWFkZXJzIHByb2JhYmx5IHdvbid0IHdvcmsgd2l0aCBQeXRob24gMS40LgotPC91bD4KLTxhIG5hbWU9Im4yIj48L2E+PGgyPiBCdWlsZGluZyBQeXRob24gRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9oMj4KLUJ1aWxkaW5nIGEgU1dJRyBleHRlbnNpb24gdG8gUHl0aG9uIHVuZGVyIFdpbmRvd3MgOTUvTlQgaXMgcm91Z2hseSBzaW1pbGFyIHRvIHRoZSBwcm9jZXNzIHVzZWQgd2l0aCBVbml4LiAgIE5vcm1hbGx5LCB5b3Ugd2lsbCB3YW50IHRvIHByb2R1Y2UgYSBETEwgdGhhdCBjYW4gYmUgbG9hZGVkIGludG8gdGhlIFB5dGhvbiBpbnRlcnByZXRlci4gICAgVGhpcyBzZWN0aW9uIGNvdmVycyB0aGUgcHJvY2VzcyBvZiB1c2luZyBTV0lHIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBDKysgNC54IGFsdGhvdWdoIHRoZSBwcm9jZWR1cmUgbWF5IGJlIHNpbWlsYXIgd2l0aCBvdGhlciBjb21waWxlcnMuICAgU1dJRyBjdXJyZW50bHkgc3VwcG9ydHMgYm90aCB0aGUgYmFzaWMgUHl0aG9uIHJlbGVhc2UgYW5kIFB5dGhvbndpbi4gIEluIG9yZGVyIHRvIGJ1aWxkIGV4dGVuc2lvbnMsIHlvdSB3aWxsIG5lZWQgdG8gZG93bmxvYWQgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gdG8gdGhlc2UgcGFja2FnZXMgYXMgeW91IHdpbGwgbmVlZCB0aGUgUHl0aG9uIGhlYWRlciBmaWxlcy48cD4KLTxhIG5hbWU9Im4yMCI+PC9hPjxoMz4gUnVubmluZyBTV0lHIGZyb20gRGV2ZWxvcGVyIFN0dWRpbzwvaDM+Ci1JZiB5b3UgYXJlIGRldmVsb3BpbmcgeW91ciBhcHBsaWNhdGlvbiB3aXRoaW4gTWljcm9zb2Z0IGRldmVsb3BlciBzdHVkaW8sIFNXSUcgY2FuIGJlIGludm9rZWQgYXMgYSBjdXN0b20gYnVpbGQgb3B0aW9uLiAgICAgIFRoZSBwcm9jZXNzIHJvdWdobHkgZm9sbG93cyB0aGVzZSBzdGVwcyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5PcGVuIHVwIGEgbmV3IHdvcmtzcGFjZSBhbmQgdXNlIHRoZSBBcHBXaXphcmQgdG8gc2VsZWN0IGEgRExMIHByb2plY3QuCi08bGk+QWRkIGJvdGggdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgKHRoZSAuaSBmaWxlKSwgYW55IHN1cHBvcnRpbmcgQyBmaWxlcywgYW5kIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVyIGZpbGUgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgU1dJRyAoaWUuIDx0dD5leGFtcGxlX3dyYXAuYzwvdHQ+KS4gICBOb3RlIDogSWYgdXNpbmcgQysrLCBjaG9vc2UgYSBkaWZmZXJlbnQgc3VmZml4IGZvciB0aGUgd3JhcHBlciBmaWxlIHN1Y2ggYXMgPHR0PmV4YW1wbGVfd3JhcC5jeHg8L3R0Pi4gRG9uJ3Qgd29ycnkgaWYgdGhlIHdyYXBwZXIgZmlsZSBkb2Vzbid0IGV4aXN0IHlldC0tRGV2ZWxvcGVyIFN0dWRpbyB3aWxsIGtlZXAgYSByZWZlcmVuY2UgdG8gaXQgYXJvdW5kLgotPGxpPlNlbGVjdCB0aGUgU1dJRyBpbnRlcmZhY2UgZmlsZSBhbmQgZ28gdG8gdGhlIHNldHRpbmdzIG1lbnUuICAgVW5kZXIgc2V0dGluZ3MsIHNlbGVjdCB0aGUgIkN1c3RvbSBCdWlsZCIgb3B0aW9uLgotPGxpPkVudGVyICJTV0lHIiBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQuCi08bGk+RW50ZXIgIjx0dD5zd2lnIC1weXRob24gLW8gJChQcm9qRGlyKVwkKElucHV0TmFtZSlfd3JhcC5jICQoSW5wdXRQYXRoKTwvdHQ+IiBpbiB0aGUgIkJ1aWxkIGNvbW1hbmQocykgZmllbGQiCi08bGk+RW50ZXIgIjx0dD4kKFByb2pEaXIpXCQoSW5wdXROYW1lKV93cmFwLmM8L3R0PiIgaW4gdGhlICJPdXRwdXQgZmlsZXMocykgZmllbGQiLgotPGxpPk5leHQsIHNlbGVjdCB0aGUgc2V0dGluZ3MgZm9yIHRoZSBlbnRpcmUgcHJvamVjdCBhbmQgZ28gdG8gIkMrKzpQcmVwcm9jZXNzb3IiLiBBZGQgdGhlIGluY2x1ZGUgZGlyZWN0b3JpZXMgZm9yIHlvdXIgUHl0aG9uIGluc3RhbGxhdGlvbiB1bmRlciAiQWRkaXRpb25hbCBpbmNsdWRlIGRpcmVjdG9yaWVzIi4KLTxsaT5EZWZpbmUgdGhlIHN5bWJvbCAgX19XSU4zMl9fIHVuZGVyIHByZXByb2Nlc3NvciBvcHRpb25zLiAgCi08bGk+RmluYWxseSwgc2VsZWN0IHRoZSBzZXR0aW5ncyBmb3IgdGhlIGVudGlyZSBwcm9qZWN0IGFuZCBnbyB0byAiTGluayBPcHRpb25zIi4gIEFkZCB0aGUgUHl0aG9uIGxpYnJhcnkgIGZpbGUgdG8geW91ciBsaW5rIGxpYnJhcmllcy4gIEZvciBleGFtcGxlICJweXRob24xNC5saWIiLiAgQWxzbywgc2V0IHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZSB0byBtYXRjaCB0aGUgbmFtZSBvZiB5b3VyIFB5dGhvbiBtb2R1bGUgKGllLiBleGFtcGxlLmRsbCkuCi08bGk+QnVpbGQgeW91ciBwcm9qZWN0LgotPC91bD4KLTxwPgotTm93LCBhc3N1bWluZyBhbGwgd2VudCB3ZWxsLCBTV0lHIHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnZva2VkIHdoZW4geW91IGJ1aWxkIHlvdXIgcHJvamVjdC4gIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGludGVyZmFjZSBmaWxlIHdpbGwgcmVzdWx0IGluIFNXSUcgYmVpbmcgYXV0b21hdGljYWxseSBpbnZva2VkIHRvIHByb2R1Y2UgYSBuZXcgdmVyc2lvbiBvZiB0aGUgd3JhcHBlciBmaWxlLiAgVG8gcnVuIHlvdXIgbmV3IFB5dGhvbiBleHRlbnNpb24sIHNpbXBseSBydW4gUHl0aG9uIGFuZCB1c2UgdGhlIDx0dD5pbXBvcnQ8L3R0PiBjb21tYW5kIGFzIG5vcm1hbC4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPgotTVNET1MgJmd0OyBweXRob24KLSZndDsmZ3Q7Jmd0OyBpbXBvcnQgZXhhbXBsZQotJmd0OyZndDsmZ3Q7IHByaW50IGV4YW1wbGUuZmFjdCg0KQotMjQKLSZndDsmZ3Q7Jmd0OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjIxIj48L2E+PGgzPiBVc2luZyBOTUFLRTwvaDM+Ci1BbHRlcm5hdGl2ZWx5LCBTV0lHIGV4dGVuc2lvbnMgY2FuIGJlIGJ1aWx0IGJ5IHdyaXRpbmcgYSBNYWtlZmlsZSBmb3IgTk1BS0UuICAgTWFrZSBzdXJlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIE1TVkMrKyBhcmUgYXZhaWxhYmxlIGFuZCB0aGUgTVNWQysrIHRvb2xzIGFyZSBpbiB5b3VyIHBhdGguICAgTm93LCBqdXN0IHdyaXRlIGEgc2hvcnQgTWFrZWZpbGUgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIE1ha2VmaWxlIGZvciBidWlsZGluZyBhIFB5dGhvbiBleHRlbnNpb24KLQotU1JDUyAgICAgICAgICA9IGV4YW1wbGUuYwotSUZJTEUgICAgICAgICA9IGV4YW1wbGUKLUlOVEVSRkFDRSAgICAgPSAkKElGSUxFKS5pCi1XUkFQRklMRSAgICAgID0gJChJRklMRSlfd3JhcC5jCi0KLSMgTG9jYXRpb24gb2YgdGhlIFZpc3VhbCBDKysgdG9vbHMgKDMyIGJpdCBhc3N1bWVkKQotCi1UT09MUyAgICAgICAgID0gYzpcbXNkZXYKLVRBUkdFVCAgICAgICAgPSBleGFtcGxlLmRsbAotQ0MgICAgICAgICAgICA9ICQoVE9PTFMpXGJpblxjbC5leGUKLUxJTksgICAgICAgICAgPSAkKFRPT0xTKVxiaW5cbGluay5leGUKLUlOQ0xVREUzMiAgICAgPSAtSSQoVE9PTFMpXGluY2x1ZGUKLU1BQ0hJTkUgICAgICAgPSBJWDg2Ci0KLSMgQyBMaWJyYXJ5IG5lZWRlZCB0byBidWlsZCBhIERMTAotCi1ETExJQkMgICAgICAgID0gbXN2Y3J0LmxpYiBvbGRuYW1lcy5saWIgIAotCi0jIFdpbmRvd3MgbGlicmFyaWVzIHRoYXQgYXJlIGFwcGFyZW50bHkgbmVlZGVkCi1XSU5MSUIgICAgICAgID0ga2VybmVsMzIubGliIGFkdmFwaTMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiBjb21kbGczMi5saWIgCi13aW5zcG9vbC5saWIKLQotIyBMaWJyYXJpZXMgY29tbW9uIHRvIGFsbCBETExzCi1MSUJTICAgICAgICAgID0gJChETExJQkMpICQoV0lOTElCKSAKLQotIyBMaW5rZXIgb3B0aW9ucwotTE9QVCAgICAgID0gLWRlYnVnOmZ1bGwgLWRlYnVndHlwZTpjdiAvTk9ERUZBVUxUTElCIC9SRUxFQVNFIC9OT0xPR08gXAotICAgICAgICAgICAgIC9NQUNISU5FOiQoTUFDSElORSkgLWVudHJ5Ol9EbGxNYWluQ1JUU3RhcnR1cEAxMiAtZGxsCi0KLSMgQyBjb21waWxlciBmbGFncwotCi1DRkxBR1MgICAgICAgID0gL1o3IC9PZCAvYyAvbm9sb2dvCi1QWV9JTkNMVURFICAgID0gLUlkOlxweXRob24tMS40XEluY2x1ZGUgLUlkOlxweXRob24tMS40IC1JZDpccHl0aG9uLTEuNFxQYwotUFlfTElCICAgICAgICA9IGQ6XHB5dGhvbi0xLjRcdmM0MFxweXRob24xNC5saWIKLVBZX0ZMQUdTID0gL0RfX1dJTjMyX18KLQotcHl0aG9uOjoKLQlzd2lnIC1weXRob24gLW8gJChXUkFQRklMRSkgJChJTlRFUkZBQ0UpCi0JJChDQykgJChDRkxBR1MpICQoUFlfRkxBR1MpICQoUFlfSU5DTFVERSkgJChTUkNTKSAkKFdSQVBGSUxFKQotCXNldCBMSUI9JChUT09MUylcbGliCi0JJChMSU5LKSAkKExPUFQpIC1vdXQ6ZXhhbXBsZS5kbGwgJChMSUJTKSAkKFBZX0xJQikgZXhhbXBsZS5vYmogZXhhbXBsZV93cmFwLm9iagotCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVG8gYnVpbGQgdGhlIGV4dGVuc2lvbiwgcnVuIE5NQUtFICh5b3UgbWF5IG5lZWQgdG8gcnVuIDx0dD52Y3ZhcnMzMjwvdHQ+IGZpcnN0KS4gVGhpcyBpcyBhIHByZXR0eSBzaW1wbGlzdGljIE1ha2VmaWxlLCBidXQgaG9wZWZ1bGx5IGl0cyBlbm91Z2ggdG8gZ2V0IHlvdSBzdGFydGVkLiAgIDxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IFRoZSBsb3ctbGV2ZWwgUHl0aG9uL0MgaW50ZXJmYWNlPC9oMj4KLVRoZSBTV0lHIFB5dGhvbiBtb2R1bGUgaXMgYmFzZWQgdXBvbiBhIGJhc2ljIGxvdy1sZXZlbCBpbnRlcmZhY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gQyBmdW5jdGlvbnMsIHZhcmlhYmxlcywgY29uc3RhbnRzLCBhbmQgQysrIGNsYXNzZXMuIFRoaXMgbG93LWxldmVsIGludGVyZmFjZSBpcyBvZnRlbiB1c2VkIHRvIGNyZWF0ZSBtb3JlIHNvcGhpc3RpY2F0ZWQgaW50ZXJmYWNlcyAoc3VjaCBhcyBzaGFkb3cgY2xhc3Nlcykgc28gaXQgbWF5IGJlIGhpZGRlbiBpbiBwcmFjdGljZS48cD4KLTxhIG5hbWU9Im4yMiI+PC9hPjxoMz4gTW9kdWxlczwvaDM+Ci1UaGUgU1dJRyA8dHQ+JW1vZHVsZTwvdHQ+IGRpcmVjdGl2ZSBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIFB5dGhvbiBtb2R1bGUuIElmIHlvdSBzcGVjaWZpZWQgYDx0dD4lbW9kdWxlIGV4YW1wbGU8L3R0PicsIHRoZW4gZXZlcnl0aGluZyBmb3VuZCBpbiBhIFNXSUcgaW50ZXJmYWNlIGZpbGUgd2lsbCBiZSBjb250YWluZWQgd2l0aGluIHRoZSBQeXRob24gYDx0dD5leGFtcGxlPC90dD4nIG1vZHVsZS4gIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgdXNlIHRoZSBzYW1lIG5hbWUgYXMgYSBidWlsdC1pbiBQeXRob24gY29tbWFuZCBvciBzdGFuZGFyZCBtb2R1bGUgb3IgeW91ciByZXN1bHRzIG1heSBiZSB1bnByZWRpY3RhYmxlLiA8cD4KLTxhIG5hbWU9Im4yMyI+PC9hPjxoMz4gRnVuY3Rpb25zPC9oMz4KLUMvQysrIGZ1bmN0aW9ucyBhcmUgbWFwcGVkIGRpcmVjdGx5IGludG8gYSBtYXRjaGluZyBQeXRob24gZnVuY3Rpb24uIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLWV4dGVybiBpbnQgZmFjdChpbnQgbik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLWdldHMgdHVybmVkIGludG8gdGhlIFB5dGhvbiBmdW5jdGlvbiA8dHQ+ZXhhbXBsZS5mYWN0KG4pPC90dD4gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiZndDsmZ3Q7Jmd0OyBpbXBvcnQgZXhhbXBsZQotJmd0OyZndDsmZ3Q7IHByaW50IGV4YW1wbGUuZmFjdCg0KQotMjQKLSZndDsmZ3Q7Jmd0OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjI0Ij48L2E+PGgzPiBWYXJpYWJsZSBMaW5raW5nPC9oMz4KLVNXSUcgcHJvdmlkZXMgYWNjZXNzIHRvIEMvQysrIGdsb2JhbCB2YXJpYWJsZXMsIGJ1dCB0aGUgbWVjaGFuaXNtIGlzIHNsaWdodGx5IGRpZmZlcmVudCB0aGFuIG9uZSBtaWdodCBleHBlY3QgZHVlIHRvIHRoZSBvYmplY3QgbW9kZWwgdXNlZCBpbiBQeXRob24uIFdoZW4geW91IHR5cGUgdGhlIGZvbGxvd2luZyBpbiBQeXRob24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmEgPSAzLjQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotImEiIGJlY29tZXMgYSBuYW1lIGZvciBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgdmFsdWUgMy40LiBJZiB5b3UgbGF0ZXIgdHlwZTxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmIgPSBhCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZW4gImEiIGFuZCAiYiIgYXJlIGJvdGggbmFtZXMgZm9yIHRoZSBvYmplY3QgY29udGFpbmluZyB0aGUgdmFsdWUgMy40LiBJbiBvdGhlciB3b3JkcywgdGhlcmUgaXMgb25seSBvbmUgb2JqZWN0IGNvbnRhaW5pbmcgMy40IGFuZCAiYSIgYW5kICJiIiBhcmUgYm90aCBuYW1lcyB0aGF0IHJlZmVyIHRvIGl0LiBUaGlzIGlzIGEgdmVyeSBkaWZmZXJlbnQgbW9kZWwgdGhhbiB0aGF0IHVzZWQgaW4gQy4gRm9yIHRoaXMgcmVhc29uLCB0aGVyZSBpcyBubyBtZWNoYW5pc20gZm9yIG1hcHBpbmcgImFzc2lnbm1lbnQiIGluIFB5dGhvbiBvbnRvIEMgZ2xvYmFsIHZhcmlhYmxlcyAoYmVjYXVzZSBhc3NpZ25tZW50IGlzIFB5dGhvbiBpcyByZWFsbHkgYSBuYW1pbmcgb3BlcmF0aW9uKS48cD4KLTxwPgotVG8gcHJvdmlkZSBhY2Nlc3MgdG8gQyBnbG9iYWwgdmFyaWFibGVzLCBTV0lHIGNyZWF0ZXMgYSBzcGVjaWFsIFB5dGhvbiBvYmplY3QgY2FsbGVkIGA8dHQ+Y3ZhcjwvdHQ+JyB0aGF0IGlzIGFkZGVkIHRvIGVhY2ggU1dJRyBnZW5lcmF0ZWQgbW9kdWxlLiBUaGlzIG9iamVjdCBpcyB1c2VkIHRvIGFjY2VzcyBnbG9iYWwgdmFyaWFibGVzICBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyBTV0lHIGludGVyZmFjZSBmaWxlIHdpdGggZ2xvYmFsIHZhcmlhYmxlcwotJW1vZHVsZSBleGFtcGxlCi0uLi4KLWV4dGVybiBpbnQgTXlfdmFyaWFibGU7Ci1leHRlcm4gZG91YmxlIGRlbnNpdHk7Ci0uLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTm93IGluIFB5dGhvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGltcG9ydCBleGFtcGxlCi0mZ3Q7Jmd0OyZndDsgIyBQcmludCBvdXQgdmFsdWUgb2YgYSBDIGdsb2JhbCB2YXJpYWJsZQotJmd0OyZndDsmZ3Q7IHByaW50IGV4YW1wbGUuY3Zhci5NeV92YXJpYWJsZQotNAotJmd0OyZndDsmZ3Q7ICMgU2V0IHRoZSB2YWx1ZSBvZiBhIEMgZ2xvYmFsIHZhcmlhYmxlCi0mZ3Q7Jmd0OyZndDsgZXhhbXBsZS5jdmFyLmRlbnNpdHkgPSAwLjg0NDIKLSZndDsmZ3Q7Jmd0OyAjIFVzZSBpbiBhIG1hdGggb3BlcmF0aW9uCi0mZ3Q7Jmd0OyZndDsgZXhhbXBsZS5jdmFyLmRlbnNpdHkgPSBleGFtcGxlLmN2YXIuZGVuc2l0eSoxLjEwCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUp1c3QgcmVtZW1iZXIsIGFsbCBDIGdsb2JhbHMgbmVlZCB0byBiZSBwcmVmaXhlZCB3aXRoIGEgIjx0dD5jdmFyLjwvdHQ+IiBhbmQgeW91IHdpbGwgYmUgc2V0LiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgYSBuYW1lIG90aGVyIHRoYW4gIjx0dD5jdmFyPC90dD4iLCBpdCBjYW4gYmUgY2hhbmdlZCB1c2luZyB0aGUgPHR0Pi1nbG9iYWxzPC90dD4gb3B0aW9uIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXB5dGhvbiAtZ2xvYmFscyBteXZhciBleGFtcGxlLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU29tZSBjYXJlIGlzIGluIG9yZGVyIHdoZW4gaW1wb3J0aW5nIG11bHRpcGxlIFNXSUcgbW9kdWxlcy4gSWYgeW91IHVzZSB0aGUgIjx0dD5mcm9tICZsdDtmaWxlJmd0OyBpbXBvcnQgKjwvdHQ+IiBzdHlsZSBvZiBpbXBvcnRpbmcsIHlvdSB3aWxsIGdldCBhIG5hbWUgY2xhc2ggb24gdGhlIHZhcmlhYmxlIGA8dHQ+Y3ZhcjwvdHQ+JyBhbmQgd2lsbCBvbmx5IGJlIGFibGUgdG8gYWNjZXNzIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSB0aGUgbGFzdCBtb2R1bGUgbG9hZGVkLiBTV0lHIGRvZXMgbm90IGNyZWF0ZSA8dHQ+Y3ZhcjwvdHQ+IGlmIHRoZXJlIGFyZSBubyBnbG9iYWwgdmFyaWFibGVzIGluIGEgbW9kdWxlLjxwPgotPGEgbmFtZT0ibjI1Ij48L2E+PGgzPiBDb25zdGFudHM8L2gzPgotQy9DKysgY29uc3RhbnRzIGFyZSBpbnN0YWxsZWQgYXMgbmV3IFB5dGhvbiBvYmplY3RzIGNvbnRhaW5pbmcgdGhlIGFwcHJvcHJpYXRlIHZhbHVlLiBUaGVzZSBjb25zdGFudHMgYXJlIGdpdmVuIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGNvcnJlc3BvbmRpbmcgQyBjb25zdGFudC4gIkNvbnN0YW50cyIgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGNvbnN0YW50cyBpbiBQeXRob24tLS1pbiBvdGhlciB3b3JkcywgeW91IGFyZSBmcmVlIHRvIGNoYW5nZSB0aGVtIGFuZCBzdWZmZXIgdGhlIGNvbnNlcXVlbmNlcyE8cD4KLTxhIG5hbWU9Im4yNiI+PC9hPjxoMz4gUG9pbnRlcnM8L2gzPgotUG9pbnRlcnMgdG8gQy9DKysgb2JqZWN0cyBhcmUgcmVwcmVzZW50ZWQgYXMgY2hhcmFjdGVyIHN0cmluZ3Mgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5fMTAwZjhlMl9WZWN0b3JfcAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BIE5VTEwgcG9pbnRlciBpcyByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nICJOVUxMIi4gWW91IGNhbiBhbHNvIGV4cGxpY2l0bHkgY3JlYXRlIGEgTlVMTCBwb2ludGVyIGNvbnNpc3Rpbmcgb2YgdGhlIHZhbHVlIDAgYW5kIGEgdHlwZSBzdWNoIGFzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5fMF9WZWN0b3JfcAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBzb21lIFB5dGhvbiB1c2VycywgdGhlIGlkZWEgb2YgcmVwcmVzZW50aW5nIHBvaW50ZXJzIGFzIHN0cmluZ3MgbWF5IHNlZW0gc3RyYW5nZSwgYnV0IGtlZXAgaW4gbWluZCB0aGF0IHBvaW50ZXJzIGFyZSBtZWFudCB0byBiZSBvcGFxdWUgb2JqZWN0cy4gSW4gcHJhY3RpY2UsIHlvdSBtYXkgbmV2ZXIgbm90aWNlIHRoYXQgcG9pbnRlcnMgYXJlIGNoYXJhY3RlciBzdHJpbmdzLiBUaGVyZSBpcyBhbHNvIGEgY2VydGFpbiBlZmZpY2llbmN5IGluIHVzaW5nIHRoaXMgcmVwcmVzZW50YXRpb24gYXMgaXQgaXMgZWFzeSB0byBwYXNzIHBvaW50ZXJzIGFyb3VuZCBiZXR3ZWVuIG1vZHVsZXMgYW5kIGl0IGlzIHVubmVjZXNzYXJ5IHRvIHJlbHkgb24gYSBuZXcgUHl0aG9uIGRhdGF0eXBlLiBFdmVudHVhbGx5LCBwb2ludGVycyBtYXkgYmUgcmVwcmVzZW50ZWQgYXMgc3BlY2lhbCBQeXRob24gb2JqZWN0cywgYnV0IHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gd29ya3MgcmVtYXJrYWJseSB3ZWxsIHNvIHRoZXJlIGhhcyBiZWVuIGxpdHRsZSBuZWVkIHRvIHJlcGxhY2UgaXQuPHA+Ci08YSBuYW1lPSJuMjciPjwvYT48aDM+IFN0cnVjdHVyZXMgPC9oMz4KLVRoZSBsb3ctbGV2ZWwgU1dJRyBpbnRlcmZhY2Ugb25seSBwcm92aWRlcyBhIHNpbXBsZSBpbnRlcmZhY2UgdG8gQyBzdHJ1Y3R1cmVzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3RydWN0IFZlY3RvciB7Ci0JZG91YmxlIHgseSx6OwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotZ2V0cyBtYXBwZWQgaW50byB0aGUgZm9sbG93aW5nIGNvbGxlY3Rpb24gb2YgQyBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRvdWJsZSBWZWN0b3JfeF9nZXQoVmVjdG9yICpvYmopCi1kb3VibGUgVmVjdG9yX3hfc2V0KFZlY3RvciAqb2JqLCBkb3VibGUgeCkKLWRvdWJsZSBWZWN0b3JfeV9nZXQoVmVjdG9yICpvYmopCi1kb3VibGUgVmVjdG9yX3lfc2V0KFZlY3RvciAqb2JqLCBkb3VibGUgeSkKLWRvdWJsZSBWZWN0b3Jfel9nZXQoVmVjdG9yICpvYmopCi1kb3VibGUgVmVjdG9yX3pfc2V0KFZlY3RvciAqb2JqLCBkb3VibGUgeikKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlc2UgZnVuY3Rpb25zIGFyZSB0aGVuIHVzZWQgaW4gdGhlIHJlc3VsdGluZyBQeXRob24gaW50ZXJmYWNlLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyB2IGlzIGEgVmVjdG9yIHRoYXQgZ290IGNyZWF0ZWQgc29tZWhvdwotJmd0OyZndDsmZ3Q7IFZlY3Rvcl94X2dldCh2KQotMy41Ci0mZ3Q7Jmd0OyZndDsgVmVjdG9yX3hfc2V0KHYsNy44KSAgICAgICAjIENoYW5nZSB4IGNvbXBvbmVudAotJmd0OyZndDsmZ3Q7IHByaW50IFZlY3Rvcl94X2dldCh2KSwgVmVjdG9yX3lfZ2V0KHYpLCBWZWN0b3Jfel9nZXQodikKLTcuOCAtNC41IDAuMAotJmd0OyZndDsmZ3Q7IAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TaW1pbGFyIGFjY2VzcyBpcyBwcm92aWRlZCBmb3IgdW5pb25zIGFuZCB0aGUgZGF0YSBtZW1iZXJzIG9mIEMrKyBjbGFzc2VzLjxwPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBDKysgQ2xhc3NlczwvaDM+Ci1DKysgY2xhc3NlcyBhcmUgaGFuZGxlZCBieSBidWlsZGluZyBhIHNldCBvZiBsb3cgbGV2ZWwgYWNjZXNzb3IgZnVuY3Rpb25zLiBDb25zaWRlciB0aGUgZm9sbG93aW5nIGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLSAgTGlzdCgpOwotICB+TGlzdCgpOwotICBpbnQgIHNlYXJjaChjaGFyICppdGVtKTsKLSAgdm9pZCBpbnNlcnQoY2hhciAqaXRlbSk7Ci0gIHZvaWQgcmVtb3ZlKGNoYXIgKml0ZW0pOwotICBjaGFyICpnZXQoaW50IG4pOwotICBpbnQgIGxlbmd0aDsKLXN0YXRpYyB2b2lkIHByaW50KExpc3QgKmwpOwotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiB3cmFwcGVkIGJ5IFNXSUcsIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHdpbGwgYmUgY3JlYXRlZCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+TGlzdCAgICAqbmV3X0xpc3QoKTsKLXZvaWQgICAgIGRlbGV0ZV9MaXN0KExpc3QgKmwpOwotaW50ICAgICAgTGlzdF9zZWFyY2goTGlzdCAqbCwgY2hhciAqaXRlbSk7Ci12b2lkICAgICBMaXN0X2luc2VydChMaXN0ICpsLCBjaGFyICppdGVtKTsKLXZvaWQgICAgIExpc3RfcmVtb3ZlKExpc3QgKmwsIGNoYXIgKml0ZW0pOwotY2hhciAgICAqTGlzdF9nZXQoTGlzdCAqbCwgaW50IG4pOwotaW50ICAgICAgTGlzdF9sZW5ndGhfZ2V0KExpc3QgKmwpOwotaW50ICAgICAgTGlzdF9sZW5ndGhfc2V0KExpc3QgKmwsIGludCBuKTsKLXZvaWQgICAgIExpc3RfcHJpbnQoTGlzdCAqbCk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdpdGhpbiBQeXRob24sIHRoZXNlIGZ1bmN0aW9ucyB1c2VkIHRvIGFjY2VzcyB0aGUgQysrIGNsYXNzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0mZ3Q7Jmd0OyZndDsgbCA9IG5ld19MaXN0KCkKLSZndDsmZ3Q7Jmd0OyBMaXN0X2luc2VydChsLCJBbGUiKQotJmd0OyZndDsmZ3Q7IExpc3RfaW5zZXJ0KGwsIlN0b3V0IikKLSZndDsmZ3Q7Jmd0OyBMaXN0X2luc2VydChsLCJMYWdlciIpCi0mZ3Q7Jmd0OyZndDsgTGlzdF9wcmludChsKQotTGFnZXIKLVN0b3V0Ci1BbGUKLSZndDsmZ3Q7Jmd0OyBwcmludCBMaXN0X2xlbmd0aF9nZXQobCkKLTMKLSZndDsmZ3Q7Jmd0OyBwcmludCBsCi1fMTAwODU2MF9MaXN0X3AKLSZndDsmZ3Q7Jmd0OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1DKysgb2JqZWN0cyBhcmUgcmVhbGx5IGp1c3QgcG9pbnRlcnMuIE1lbWJlciBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIGFjY2Vzc2VkIGJ5IHNpbXBseSBwYXNzaW5nIGEgcG9pbnRlciBpbnRvIGEgY29sbGVjdGlvbiBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgdGhhdCB0YWtlIHRoZSBwb2ludGVyIGFzIHRoZSBmaXJzdCBhcmd1bWVudC48cD4KLTxwPgotV2hpbGUgc29tZXdoYXQgcHJpbWl0aXZlLCB0aGUgbG93LWxldmVsIFNXSUcgaW50ZXJmYWNlIHByb3ZpZGVzIGRpcmVjdCBhbmQgZmxleGlibGUgYWNjZXNzIHRvIEMrKyBvYmplY3RzLiBBcyBpdCB0dXJucyBvdXQsIGEgbW9yZSBlbGVnYW50IG1ldGhvZCBvZiBhY2Nlc3Npbmcgc3RydWN0dXJlcyBhbmQgY2xhc3NlcyBpcyBhdmFpbGFibGUgdXNpbmcgc2hhZG93IGNsYXNzZXMuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gUHl0aG9uIHNoYWRvdyBjbGFzc2VzPC9oMj4KLVRoZSBsb3ctbGV2ZWwgaW50ZXJmYWNlIGdlbmVyYXRlZCBieSBTV0lHIHByb3ZpZGVzIGFjY2VzcyB0byBDIHN0cnVjdHVyZXMgYW5kIEMrKyBjbGFzc2VzLCBidXQgaXQgZG9lc24ndCBsb29rIG11Y2ggbGlrZSBhIGNsYXNzIHRoYXQgbWlnaHQgYmUgY3JlYXRlZCBpbiBQeXRob24uIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGUgbG93LWxldmVsIEMgaW50ZXJmYWNlIHRvIHdyaXRlIGEgUHl0aG9uIGNsYXNzIHRoYXQgbG9va3MgbGlrZSB0aGUgb3JpZ2luYWwgQysrIGNsYXNzLiBJbiB0aGlzIGNhc2UsIHRoZSBQeXRob24gY2xhc3MgaXMgc2FpZCB0byAic2hhZG93IiB0aGUgQysrIGNsYXNzLiAgVGhhdCBpcywgaXQgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBjbGFzcywgYnV0IGlzIHJlYWxseSBqdXN0IGEgd3JhcHBlciBhcm91bmQgYSBDKysgY2xhc3MuPHA+Ci08YSBuYW1lPSJuMjkiPjwvYT48aDM+IEEgc2ltcGxlIGV4YW1wbGU8L2gzPgotRm9yIG91ciBlYXJsaWVyIExpc3QgY2xhc3MsIGEgUHl0aG9uIHNoYWRvdyBjbGFzcyBjb3VsZCBiZSB3cml0dGVuIGJ5IGhhbmQgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBMaXN0OgotCWRlZiBfX2luaXRfXyhzZWxmKToKLQkJc2VsZi50aGlzID0gbmV3X0xpc3QoKQotCWRlZiBfX2RlbF9fKHNlbGYpOgotCQlkZWxldGVfTGlzdChzZWxmLnRoaXMpCi0JZGVmIHNlYXJjaChzZWxmLGl0ZW0pOgotCQlyZXR1cm4gTGlzdF9zZWFyY2goc2VsZi50aGlzLGl0ZW0pCi0JZGVmIGluc2VydChzZWxmLGl0ZW0pOgotCQlMaXN0X2luc2VydChzZWxmLnRoaXMsaXRlbSkKLQlkZWYgcmVtb3ZlKHNlbGYsaXRlbSk6Ci0JCUxpc3RfcmVtb3ZlKHNlbGYudGhpcyxpdGVtKQotCWRlZiBnZXQoc2VsZixuKToKLQkJcmV0dXJuIExpc3RfZ2V0KHNlbGYudGhpcyxuKQotCWRlZiBfX2dldGF0dHJfXyhzZWxmLG5hbWUpOgotCQlpZiBuYW1lID09ICJsZW5ndGgiIDogcmV0dXJuIExpc3RfbGVuZ3RoX2dldChzZWxmLnRoaXMpKQotCQllbHNlIDogcmV0dXJuIHNlbGYuX19kaWN0X19bbmFtZV0KLQlkZWYgX19zZXRhdHRyX18oc2VsZixuYW1lLHZhbHVlKToKLQkJaWYgbmFtZSA9PSAibGVuZ3RoIjogTGlzdF9sZW5ndGhfc2V0KHNlbGYudGhpcyx2YWx1ZSkKLQkJZWxzZSA6IHNlbGYuX19kaWN0X19bbmFtZV0gPSB2YWx1ZQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIHVzZWQgaW4gYSBQeXRob24gc2NyaXB0LCB3ZSBjYW4gdXNlIHRoZSBjbGFzcyBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0KLSZndDsmZ3Q7Jmd0OyBsID0gTGlzdCgpCi0mZ3Q7Jmd0OyZndDsgbC5pbnNlcnQoIkFsZSIpCi0mZ3Q7Jmd0OyZndDsgbC5pbnNlcnQoIlN0b3V0IikKLSZndDsmZ3Q7Jmd0OyBsLmluc2VydCgiTGFnZXIiKQotJmd0OyZndDsmZ3Q7IExpc3RfcHJpbnQobC50aGlzKQotTGFnZXIKLVN0b3V0Ci1BbGUKLSZndDsmZ3Q7Jmd0OyBsLmxlbmd0aAotMwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1PYnZpb3VzbHksIHRoaXMgaXMgYSBtdWNoIG5pY2VyIGludGVyZmFjZSB0aGFuIGJlZm9yZS0tYW5kIGl0IG9ubHkgcmVxdWlyZWQgYSBzbWFsbCBhbW91bnQgb2YgUHl0aG9uIGNvZGluZy48cD4KLTxhIG5hbWU9Im4zMCI+PC9hPjxoMz4gV2h5IHdyaXRlIHNoYWRvdyBjbGFzc2VzIGluIFB5dGhvbj88L2gzPgotV2hpbGUgb25lIGNvdWxkIHdyYXAgQy9DKysgb2JqZWN0cyBkaXJlY3RseSBpbnRvIFB5dGhvbiBhcyBuZXcgUHl0aG9uIHR5cGVzLCB0aGlzIGFwcHJvYWNoIGhhcyBhIG51bWJlciBvZiBwcm9ibGVtcy4gRmlyc3QsIGFzIHRoZSBDL0MrKyBjb2RlIGdldHMgY29tcGxpY2F0ZWQsIHRoZSByZXN1bHRpbmcgd3JhcHBlciBjb2RlIHN0YXJ0cyB0byBiZWNvbWUgZXh0cmVtZWx5IHVnbHkuIEl0IGFsc28gYmVjb21lcyBoYXJkIHRvIGhhbmRsZSBpbmhlcml0YW5jZSBhbmQgbW9yZSBhZHZhbmNlZCBsYW5ndWFnZSBmZWF0dXJlcy4gQSBzZWNvbmQsIGFuZCBtb3JlIHNlcmlvdXMgcHJvYmxlbSwgaXMgdGhhdCBQeXRob24gInR5cGVzIiBjcmVhdGVkIGluIEMgY2FuIG5vdCBiZSBzdWJjbGFzc2VkIG9yIHVzZWQgaW4gdGhlIHNhbWUgd2F5IGFzIG9uZSBtaWdodCB1c2UgYSByZWFsIFB5dGhvbiBjbGFzcy4gQXMgYSByZXN1bHQsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkbyBpbnRlcmVzdGluZyB0aGluZ3MgbGlrZSBjcmVhdGUgUHl0aG9uIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gQysrIGNsYXNzZXMuICA8cD4KLTxwPgotQnkgd3JpdGluZyBzaGFkb3cgY2xhc3NlcyBpbiBQeXRob24gaW5zdGVhZCBvZiBDLCB0aGUgY2xhc3NlcyBiZWNvbWUgcmVhbCBQeXRob24gY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2VkIGFzIGJhc2UtY2xhc3NlcyBpbiBhbiBpbmhlcml0YW5jZSBoaWVyYXJjaHkgb3IgZm9yIG90aGVyIGFwcGxpY2F0aW9ucy4gV3JpdGluZyB0aGUgc2hhZG93IGNsYXNzZXMgaW4gUHl0aG9uIGFsc28gZ3JlYXRseSBzaW1wbGllcyBjb2RpbmcgY29tcGxleGl0eSBhcyB3cml0aW5nIGluIFB5dGhvbiBpcyBtdWNoIGVhc2llciB0aGFuIHRyeWluZyB0byBhY2NvbXBsaXNoIHRoZSBzYW1lIHRoaW5nIGluIEMuIEZpbmFsbHksIGJ5IHdyaXRpbmcgc2hhZG93IGNsYXNzZXMgaW4gUHl0aG9uLCB0aGV5IGFyZSBlYXN5IHRvIG1vZGlmeSBhbmQgY2FuIGJlIGNoYW5nZWQgd2l0aG91dCBldmVyIHJlY29tcGlsaW5nIGFueSBvZiB0aGUgQyBjb2RlLiAgIFRoZSBkb3duc2lkZSB0byB0aGlzIGFwcHJvYWNoIGlzIHdvcnNlIHBlcmZvcm1hbmNlLS1hIGNvbmNlcm4gZm9yIHNvbWUgdXNlcnMuPHA+Ci08cD4KLVRoZSBwcm9ibGVtcyBvZiBjb21iaW5pbmcgQysrIGFuZCBQeXRob24gaGF2ZSBiZWVuIG9mIGdyZWF0IGludGVyZXN0IHRvIHRoZSBQeXRob24gY29tbXVuaXR5LiAgIFNXSUcgaXMgcHJpbWFyaWx5IGNvbmNlcm5lZCB3aXRoIGFjY2Vzc2luZyBDKysgZnJvbSBQeXRob24uICAgUmVhZGVycyB3aG8gYXJlIGludGVyZXN0ZWQgaW4gbW9yZSB0aGFuIHRoaXMgKGFuZCB0aGUgaWRlYSBvZiBhY2Nlc3NpbmcgUHl0aG9uIGNsYXNzZXMgZnJvbSBDKyspIGFyZSBlbmNvdXJhZ2VkIHRvIGxvb2sgaW50byB0aGUgTUVTUyBleHRlbnNpb24gd2hpY2ggYWltcyB0byBwcm92aWRlIGEgdGlnaHRlciBpbnRlZ3JhdGlvbiBiZXR3ZWVuIEMrKyBhbmQgUHl0aG9uLiAgVGhlIHJlY2VudGx5IGFubm91bmNlZCBHUkFEIHBhY2thZ2UgYWxzbyBzaG93cyBtdWNoIHByb21pc2UgYW5kIHByb3ZpZGVzIHZlcnkgY29tcHJlaGVuc2l2ZSBDKysvUHl0aG9uIGludGVyZmFjZS48cD4KLTxhIG5hbWU9Im4zMSI+PC9hPjxoMz4gQXV0b21hdGVkIHNoYWRvdyBjbGFzcyBnZW5lcmF0aW9uPC9oMz4KLVNXSUcgY2FuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgc2hhZG93IGNsYXNzZXMgaWYgeW91IHVzZSB0aGUgPHR0Pi1zaGFkb3c8L3R0PiBvcHRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXB5dGhvbiAtc2hhZG93IGludGVyZmFjZS5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgd2lsbCBjcmVhdGUgdGhlIGZvbGxvd2luZyB0d28gZmlsZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludGVyZmFjZV93cmFwLmMKLW1vZHVsZS5weQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgZmlsZSA8dHQ+aW50ZXJmYWNlX3dyYXAuYzwvdHQ+IGNvbnRhaW5zIHRoZSBub3JtYWwgU1dJRyBDL0MrKyB3cmFwcGVycy4gVGhlIGZpbGUgPHR0Pm1vZHVsZS5weTwvdHQ+IGNvbnRhaW5zIHRoZSBQeXRob24gY29kZSBjb3JyZXNwb25kaW5nIHRvIHNoYWRvdyBjbGFzc2VzLiBUaGUgbmFtZSBvZiB0aGlzIGZpbGUgd2lsbCBiZSB0aGUgc2FtZSBhcyBzcGVjaWZpZWQgYnkgdGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlIGluIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlLjxwPgotPHA+Ci1Bc3NvY2lhdGVkIHdpdGggdGhlIHR3byBmaWxlcyBhcmUgVFdPIFB5dGhvbiBtb2R1bGVzLiBUaGUgQyBtb2R1bGUgYDx0dD5tb2R1bGVjPC90dD4nIGNvbnRhaW5zIHRoZSBsb3ctbGV2ZWwgQyBpbnRlcmZhY2UgdGhhdCB3b3VsZCBoYXZlIGJlZW4gY3JlYXRlZCB3aXRob3V0IHRoZSA8dHQ+LXNoYWRvdzwvdHQ+IG9wdGlvbi4gVGhlIFB5dGhvbiBtb2R1bGUgYDx0dD5tb2R1bGU8L3R0PicgY29udGFpbnMgdGhlIFB5dGhvbiBzaGFkb3cgY2xhc3NlcyB0aGF0IGhhdmUgYmVlbiBidWlsdCBhcm91bmQgdGhlIGxvdy1sZXZlbCBpbnRlcmZhY2UuIFRvIHVzZSB0aGUgbW9kdWxlLCBzaW1wbHkgdXNlIGA8dHQ+aW1wb3J0IG1vZHVsZTwvdHQ+Jy4gRm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMsIHRoZSBgPHR0Pm1vZHVsZWM8L3R0PicgbW9kdWxlIGlzIGNvbXBsZXRlbHkgaGlkZGVuIGFsdGhvdWdoIHlvdSBjYW4gY2VydGFpbmx5IHVzZSBpdCBpZiB5b3Ugd2FudCB0by48cD4KLTxhIG5hbWU9Im4zMiI+PC9hPjxoMz4gQ29tcGlsaW5nIG1vZHVsZXMgd2l0aCBzaGFkb3cgY2xhc3NlczwvaDM+Ci1UbyBjb21waWxlIGEgbW9kdWxlIGludm9sdmluZyBzaGFkb3cgY2xhc3NlcywgeW91IGNhbiB1c2UgdGhlIHNhbWUgcHJvY2VkdXJlIGFzIGJlZm9yZSBleGNlcHQgdGhhdCB0aGUgbW9kdWxlIG5hbWUgbm93IGhhcyBhbiBleHRyYSBgPHR0PmM8L3R0PicgYXBwZW5kZWQgdG8gdGhlIG5hbWUuIFRodXMsIGFuIGludGVyZmFjZSBmaWxlIGxpa2UgdGhpcyA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLS4uLiBhIGJ1bmNoIG9mIGRlY2xhcmF0aW9ucyAuLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotbWlnaHQgYmUgY29tcGlsZWQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1weXRob24gLXNoYWRvdyBleGFtcGxlLmkKLSUgZ2NjIC1jIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZS9weXRob24xLjQgXAotCS1JL3Vzci9sb2NhbC9saWIvcHl0aG9uMS40L2NvbmZpZyAtREhBVkVfQ09ORklHX0gKLSUgbGQgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZWNtb2R1bGUuc28KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm90aWNlIHRoZSBuYW1pbmcgb2YgYDx0dD5leGFtcGxlY21vZHVsZS5zbzwvdHQ+JyBhcyBvcHBvc2VkIHRvIGA8dHQ+ZXhhbXBsZW1vZHVsZS5zbzwvdHQ+JyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBjcmVhdGVkIHdpdGhvdXQgc2hhZG93IGNsYXNzZXMuPHA+Ci08cD4KLVdoZW4gdXNpbmcgc3RhdGljIGxpbmtpbmcsIG5vIGNoYW5nZXMgbmVlZCB0byBiZSBtYWRlIHRvIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBXaGVyZSB0byBnbyBmb3IgbW9yZSBpbmZvcm1hdGlvbjwvaDM+Ci1TaGFkb3cgY2xhc3NlcyB0dXJuIG91dCB0byBiZSBzbyB1c2VmdWwgdGhhdCB0aGV5IGFyZSB1c2VkIGFsbW9zdCBhbGwgb2YgdGhlIHRpbWUgd2l0aCBTV0lHLiBBbGwgb2YgdGhlIGV4YW1wbGVzIHByZXNlbnRlZCBoZXJlIHdpbGwgYXNzdW1lIHRoYXQgc2hhZG93IGNsYXNzZXMgaGF2ZSBiZWVuIGVuYWJsZWQuIFRoZSBwcmVjaXNlIGltcGxlbWVudGF0aW9uIG9mIHNoYWRvdyBjbGFzc2VzIGlzIGRlc2NyaWJlZCBhdCB0aGUgZW5kIG9mIHRoaXMgY2hhcHRlciBhbmQgaXMgbm90IG5lY2Vzc2FyeSAgdG8gZWZmZWN0aXZlbHkgdXNlIFNXSUcuPHA+Ci08YSBuYW1lPSJuNSI+PC9hPjxoMj4gQWJvdXQgdGhlIEV4YW1wbGVzPC9oMj4KLVRoZSBuZXh0IGZldyBzZWN0aW9ucyB3aWxsIGdvIHRocm91Z2ggYSBzZXJpZXMgb2YgUHl0aG9uIGV4YW1wbGVzIG9mIHZhcnlpbmcgY29tcGxleGl0eS4gVGhlc2UgZXhhbXBsZXMgYXJlIGRlc2lnbmVkIHRvIGlsbHVzdHJhdGUgaG93IFNXSUcgY2FuIGJlIHVzZWQgdG8gaW50ZWdyYXRlIEMvQysrIGFuZCBQeXRob24gaW4gYSB2YXJpZXR5IG9mIHdheXMuIFNvbWUgb2YgdGhlIHRoaW5ncyB0aGF0IHdpbGwgYmUgY292ZXJlZCBpbmNsdWRlIDo8cD4KLTxwPgotPHVsPgotPGxpPkNvbnRyb2xsaW5nIGEgc2ltcGxlIEMrKyBwcm9ncmFtIHdpdGggUHl0aG9uCi08bGk+V3JhcHBpbmcgYSBDIGxpYnJhcnkuCi08bGk+QWRkaW5nIFB5dGhvbiBtZXRob2RzIHRvIGV4aXN0aW5nIEMrKyBjbGFzc2VzCi08bGk+QWNjZXNzaW5nIGFycmF5cyBhbmQgb3RoZXIgY29tbW9uIGRhdGEgc3RydWN0dXJlcy4KLTxsaT5CdWlsZGluZyByZXVzYWJsZSBjb21wb25lbnRzLgotPGxpPldyaXRpbmcgQy9DKysgY2FsbGJhY2sgZnVuY3Rpb25zIGluIFB5dGhvbi4KLTwvdWw+Ci08YSBuYW1lPSJuNiI+PC9hPjxoMj4gU29sdmluZyBhIHNpbXBsZSBoZWF0LWVxdWF0aW9uPC9oMj4KLUluIHRoaXMgZXhhbXBsZSwgd2Ugd2lsbCBzaG93IGhvdyBQeXRob24gY2FuIGJlIHVzZWQgdG8gY29udHJvbCBhIHNpbXBsZSBwaHlzaWNzIGFwcGxpY2F0aW9uLS1pbiB0aGlzIGNhc2UsIHNvbWUgQysrIGNvZGUgZm9yIHNvbHZpbmcgYSAyRCBoZWF0IGVxdWF0aW9uLiAgVGhpcyBleGFtcGxlIGlzIHByb2JhYmx5IG92ZXJseSBzaW1wbGlzdGljLCBidXQgaG9wZWZ1bGx5IGl0J3MgZW5vdWdoIHRvIGdpdmUgeW91IHNvbWUgaWRlYXMuPHA+Ci08YSBuYW1lPSJuMzQiPjwvYT48aDM+IFRoZSBDKysgY29kZSA8L2gzPgotT3VyIHNpbXBsZSBhcHBsaWNhdGlvbiBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIHR3byBmaWxlcyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gRmlsZSA6IHBkZS5oCi0vLyBIZWFkZXIgZmlsZSBmb3IgSGVhdCBlcXVhdGlvbiBzb2x2ZXIKLQotI2luY2x1ZGUgJmx0O21hdGguaCZndDsKLSNpbmNsdWRlICZsdDtzdGRpby5oJmd0OwotCi0vLyBBIHNpbXBsZSAyRCBHcmlkIHN0cnVjdHVyZSAKLQotLy8gQSBzaW1wbGUgc3RydWN0dXJlIGZvciBob2xkaW5nIGEgMkQgZ3JpZCBvZiB2YWx1ZXMKLXN0cnVjdCBHcmlkMmQgewotICBHcmlkMmQoaW50IG5pLCBpbnQgbmopOwotICB+R3JpZDJkKCk7Ci0gIGRvdWJsZSAqKmRhdGE7Ci0gIGludCAgICAgIHhwb2ludHM7Ci0gIGludCAgICAgIHlwb2ludHM7Ci19OwotCi0vLyBTaW1wbGUgY2xhc3MgZm9yIHNvbHZpbmcgYSBoZWF0IGVxdWF0aW9uICovCi1jbGFzcyBIZWF0MmQgewotcHJpdmF0ZToKLSAgR3JpZDJkICAgICp3b3JrOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZW1wb3JhcnkgZ3JpZCwgbmVlZGVkIGZvciBzb2x2ZXIKLSAgZG91YmxlICAgIGgsazsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHcmlkIHNwYWNpbmcKLXB1YmxpYzogICAgCi0gIEhlYXQyZChpbnQgbmksIGludCBuaik7IAotICB+SGVhdDJkKCk7Ci0gIEdyaWQyZCAgICAqZ3JpZDsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGF0YQotICBkb3VibGUgICAgIGR0OyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRpbWVzdGVwCi0gIGRvdWJsZSAgICAgdGltZTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRWxhcHNlZCB0aW1lCi0gIHZvaWQgICAgICAgc29sdmUoaW50IG5zdGVwcyk7ICAgICAgICAgICAgLy8gUnVuIGZvciBuc3RlcHMKLSAgdm9pZCAgICAgICBzZXRfdGVtcChkb3VibGUgdGVtcCk7ICAgICAgICAvLyBTZXQgdGVtcGVyYXR1cmUKLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBzdXBwb3J0aW5nIEMrKyBjb2RlIGltcGxlbWVudHMgYSBzaW1wbGUgcGFydGlhbCBkaWZmZXJlbnRpYWwgZXF1YXRpb24gc29sdmVyIGFuZCBzb21lIG9wZXJhdGlvbnMgb24gdGhlIGdyaWQgZGF0YSBzdHJ1Y3R1cmUuICAgVGhlIHByZWNpc2UgaW1wbGVtZW50YXRpb24gaXNuJ3QgaW1wb3J0YW50IGhlcmUsIGJ1dCBhbGwgb2YgdGhlIGNvZGUgY2FuIGJlIGZvdW5kIGluIHRoZSAiPHR0PkV4YW1wbGVzL3B5dGhvbi9tYW51YWwiIDwvdHQ+ZGlyZWN0b3J5IG9mIHRoZSBTV0lHIGRpc3RyaWJ1dGlvbi4gPHA+Ci08YSBuYW1lPSJuMzUiPjwvYT48aDM+IE1ha2luZyBhIHF1aWNrIGFuZCBkaXJ0eSBQeXRob24gbW9kdWxlPC9oMz4KLUdpdmVuIG91ciBzaW1wbGUgYXBwbGljYXRpb24sIG1ha2luZyBhIFB5dGhvbiBtb2R1bGUgaXMgZWFzeS4gIFNpbXBseSB1c2UgdGhlIGZvbGxvd2luZyBTV0lHIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBGaWxlIDogcGRlLmkKLSVtb2R1bGUgcGRlCi0lewotI2luY2x1ZGUgInBkZS5oIgotJX0KLQotJWluY2x1ZGUgcGRlLmgKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU2luY2UgPHR0PnBkZS5oPC90dD4gaXMgZmFpcmx5IHNpbXBsZSwgd2UgY2FuIHNpbXBseSBpbmNsdWRlIGl0IGRpcmVjdGx5IGludG8gb3VyIGludGVyZmFjZSBmaWxlIHVzaW5nIDx0dD4laW5jbHVkZTwvdHQ+LiAgSG93ZXZlciwgd2UgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBhbHNvIGluY2x1ZGUgaXQgaW4gdGhlIDx0dD4leywlfTwvdHQ+IGJsb2NrLS1vdGhlcndpc2Ugd2UnbGwgZ2V0IGEgaHVnZSBudW1iZXIgb2YgY29tcGlsZXIgZXJyb3JzIHdoZW4gd2UgY29tcGlsZSB0aGUgcmVzdWx0aW5nIHdyYXBwZXIgZmlsZS4gIDxwPgotPHA+Ci1UbyBidWlsZCB0aGUgbW9kdWxlIHNpbXBseSBydW4gU1dJRyB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9uczxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXB5dGhvbiAtc2hhZG93IHBkZS5pCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLWFuZCBjb21waWxlIHVzaW5nIHRoZSB0ZWNobmlxdWVzIGRlc2NyaWJlZCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgY2hhcHRlci48cD4KLTxhIG5hbWU9Im4zNiI+PC9hPjxoMz4gVXNpbmcgIG91ciBuZXcgbW9kdWxlPC9oMz4KLVdlIGFyZSBub3cgcmVhZHkgdG8gdXNlIG91ciBuZXcgbW9kdWxlLiAgIFRvIGRvIHRoaXMsIHdlIGNhbiBzaW1wbHkgd3JpdGUgYSBQeXRob24gc2NyaXB0IGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBBIGZhaXJseSB1bmludGVyZXN0aW5nIGV4YW1wbGUKLQotZnJvbSBwZGUgaW1wb3J0ICoKLQotaCA9IEhlYXQyZCg1MCw1MCkgICAgICAgICAgIyBDcmVhdGVzIGEgbmV3ICJwcm9ibGVtIgotCi1oLnNldF90ZW1wKDEuMCkKLXByaW50ICJEdCA9ICIsIGguZHQKLQotIyBTb2x2ZSBzb21ldGhpbmcKLQotZm9yIGkgaW4gcmFuZ2UoMCwyNSk6CQotCWguc29sdmUoMTAwKQotCXByaW50ICJ0aW1lID0gIiwgaC50aW1lCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBydW4sIHdlIGdldCByYXRoZXIgZXhjaXRpbmcgb3V0cHV0IHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotRHQgPSAgMi41ZS0wNQotdGltZSA9ICAwLjAwMjUKLXRpbWUgPSAgMC4wMDUKLXRpbWUgPSAgMC4wMDc1Ci0uLi4KLXRpbWUgPSAgMC4wNgotdGltZSA9ICAwLjA2MjUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotKG9rYXksIGl0J3Mgbm90IHRoYXQgZXhjaXRpbmctLXdlbGwsIG1heWJlIGl0IGlzIGlmIHlvdSBkb24ndCBnZXQgb3V0IG11Y2gpLjxwPgotPHA+Ci1XaGlsZSB0aGlzIGhhcyBvbmx5IGJlZW4gYSBzaW1wbGUgZXhhbXBsZSBpdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHdlIGNvdWxkIGhhdmUganVzdCBhcyBlYXNpbHkgd3JpdHRlbiB0aGUgc2FtZSB0aGluZyBpbiBDKysuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBQeXRob24gZXhhbXBsZSB3cml0dGVuIGluIEMrKwotCi0jaW5jbHVkZSAicGRlLmgiCi0jaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDsKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0KLSAgSGVhdDJkICpoOwotCi0gIGggPSBuZXcgSGVhdDJkKDUwLDUwKTsKLSAgcHJpbnRmKCJEdCA9ICVnXG4iLCBoLSZndDtkdCk7Ci0gIAotICBoLSZndDtzZXRfdGVtcCgxLjApOwotCi0gIGZvciAoaW50IGkgPSAwOyBpICZsdDsgMjU7IGkrKykgewotICAgIGgtJmd0O3NvbHZlKDEwMCk7Ci0gICAgcHJpbnRmKCJ0aW1lID0gJWdcbiIsIGgtJmd0O3RpbWUpOwotICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgY29kZSBsb29rcyBpZGVudGljYWwgKGFsdGhvdWdoIHRoZSBQeXRob24gdmVyc2lvbiBpcyBzaW1wbGVyKS4gIEFzIGZvciBwZXJmb3JtYW5jZSwgdGhlIFB5dGhvbiB2ZXJzaW9uIHJ1bnMgbGVzcyB0aGFuIDElIHNsb3dlciB0aGFuIHRoZSBDKysgdmVyc2lvbiBvbiBteSBtYWNoaW5lLiAgR2l2ZW4gdGhhdCBtb3N0IG9mIHRoZSBjb21wdXRhdGlvbmFsIHdvcmsgaXMgd3JpdHRlbiBpbiBDKyssIHRoZXJlIGlzIHZlcnkgbGl0dGxlIHBlcmZvcm1hbmNlIHBlbmFsdHkgZm9yIHdyaXRpbmcgdGhlIG91dGVyIGxvb3Agb2Ygb3VyIGNhbGN1bGF0aW9uIGluIFB5dGhvbiBpbiB0aGlzIGNhc2UuPHA+Ci08cD4KLVVuZm9ydHVuYXRlbHksIG91ciBQeXRob24gdmVyc2lvbiBzdWZmZXJzIGEgbnVtYmVyIG9mIGRyYXdiYWNrcy4gIE1vc3Qgbm90YWJseSwgdGhlcmUgaXMgbm8gd2F5IGZvciB1cyB0byBhY2Nlc3MgYW55IG9mIHRoZSBncmlkIGRhdGEgKHdoaWNoIGlzIGVhc2lseSBhY2NvbXBsaXNoZWQgaW4gQysrKS4gSG93ZXZlciwgdGhlcmUgYXJlIHdheXMgdG8gZml4IHRoaXMgOjxwPgotPGEgbmFtZT0ibjM3Ij48L2E+PGgzPiBBY2Nlc3NpbmcgYXJyYXkgZGF0YTwvaDM+Ci1MZXQncyBtb2RpZnkgb3VyIGhlYXQgZXF1YXRpb24gcHJvYmxlbSBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgZ3JpZCBkYXRhIGRpcmVjdGx5IGZyb20gUHl0aG9uLiAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgbW9kaWZ5aW5nIG91ciBpbnRlcmZhY2UgZmlsZSBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0lbW9kdWxlIHBkZQotJXsKLSNpbmNsdWRlICJwZGUuaCIKLSV9Ci0KLSVpbmNsdWRlIHBkZS5oCi0KLS8vIEFkZCBhIGZldyAiaGVscGVyIiBmdW5jdGlvbnMgdG8gZXh0cmFjdCBncmlkIGRhdGEgCi0laW5saW5lICV7Ci1kb3VibGUgIEdyaWQyZF9nZXQoR3JpZDJkICpnLCBpbnQgaSwgaW50IGopIHsKLSAgICAgIHJldHVybiBnLSZndDtkYXRhW2ldW2pdOwotfQotdm9pZCAgICBHcmlkMmRfc2V0KEdyaWQyZCAqZywgaW50IGksIGludCBqLCBkb3VibGUgdmFsKSB7Ci0gICAgICBnLSZndDtkYXRhW2ldW2pdID0gdmFsOwotfQotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotUmF0aGVyIHRoYW4gbW9kaWZ5aW5nIG91ciBDKysgY29kZSwgaXQgaXMgZWFzeSBlbm91Z2ggdG8gc3VwcGx5IGEgZmV3IGFjY2Vzc29yIGZ1bmN0aW9ucyBkaXJlY3RseSBpbiBvdXIgaW50ZXJmYWNlIGZpbGUuICBUaGVzZSBmdW5jdGlvbiBtYXkgb25seSBiZSB1c2VkIGZyb20gUHl0aG9uIHNvIHRoaXMgYXBwcm9hY2ggbWFrZXMgc2Vuc2UgYW5kIGl0IGhlbHBzIHVzIGtlZXAgb3VyIEMrKyBjb2RlIGZyZWUgZnJvbSB1bm5lY2Vzc2FyeSBjbHV0dGVyLiAgIFRoZSA8dHQ+JWlubGluZTwvdHQ+IGRpcmVjdGl2ZSBpcyBhIGNvbnZlbmllbnQgbWV0aG9kIGZvciBhZGRpbmcgaGVscGVyIGZ1bmN0aW9ucyBzaW5jZSB0aGUgZnVuY3Rpb25zIHlvdSBkZWNsYXJlIHNob3cgdXAgaW4gdGhlIGludGVyZmFjZSBhdXRvbWF0aWNhbGx5LjxwPgotPHA+Ci1XZSBjYW4gbm93IHVzZSBvdXIgYWNjZXNzb3IgZnVuY3Rpb25zIHRvIHdyaXRlIGEgbW9yZSBzb3BoaXN0aWNhdGVkIFB5dGhvbiBzY3JpcHQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgQW4gZXhhbXBsZSB1c2luZyBvdXIgc2V0L2dldCBmdW5jdGlvbnMKLQotZnJvbSBwZGUgaW1wb3J0ICoKLQotIyBTZXQgdXAgYW4gaW5pdGlhbCBjb25kaXRpb24KLWRlZiBpbml0Y29uZChoKToKLQloLnNldF90ZW1wKDAuMCkKLQlueCA9IGguZ3JpZC54cG9pbnRzCi0JZm9yIGkgaW4gcmFuZ2UoMCxueCk6Ci0JCUdyaWQyZF9zZXQoaC5ncmlkLGksMCwxLjApICAgICAgICAgICAgICAgICAgICAgICAgIyBTZXQgZ3JpZCB2YWx1ZXMKLQotIyBEdW1wIG91dCB0byBhIGZpbGUKLWRlZiBkdW1wKGgsZmlsZW5hbWUpOgotCWYgPSBvcGVuKGZpbGVuYW1lLCJ3IikKLQlueCA9IGguZ3JpZC54cG9pbnRzCi0JbnkgPSBoLmdyaWQueXBvaW50cwotCWZvciBpIGluIHJhbmdlKDAsbngpOgotCQlmb3IgaiBpbiByYW5nZSgwLG55KToKLQkJCWYud3JpdGUoc3RyKEdyaWQyZF9nZXQoaC5ncmlkLGksaikpKyJcbiIpICAjIEdldCBncmlkIHZhbHVlCi0JZi5jbG9zZSgpCi0KLSMgU2V0IHVwIGEgcHJvYmxlbSBhbmQgcnVuIGl0Ci0KLWggPSBIZWF0MmQoNTAsNTApCi1pbml0Y29uZChoKQotZmlsZW5vID0gMQotZm9yIGkgaW4gcmFuZ2UoMCwyNSk6Ci0JaC5zb2x2ZSgxMDApCi0JZHVtcChoLCJEYXQiK3N0cihmaWxlbm8pKQotCXByaW50ICJ0aW1lID0gIiwgaC50aW1lCi0JZmlsZW5vID0gZmlsZW5vKzEKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XZSBub3cgaGF2ZSBhIFB5dGhvbiBzY3JpcHQgdGhhdCBjYW4gY3JlYXRlIGEgZ3JpZCwgc2V0IHVwIGFuIGluaXRpYWwgY29uZGl0aW9uLCBydW4gYSBzaW11bGF0aW9uLCBhbmQgZHVtcCBhIGNvbGxlY3Rpb24gb2YgZGF0YWZpbGVzLiAgU28sIHdpdGgganVzdCBhIGxpdHRsZSBzdXBwb3J0aW5nIGNvZGUgaW4gb3VyIGludGVyZmFjZSBmaWxlLCB3ZSBjYW4gc3RhcnQgdG8gZG8gdXNlZnVsIHdvcmsgZnJvbSBQeXRob24uICA8cD4KLTxhIG5hbWU9Im4zOCI+PC9hPjxoMz4gVXNlIFB5dGhvbiBmb3IgY29udHJvbCwgQyBmb3IgcGVyZm9ybWFuY2U8L2gzPgotTm93IHRoYXQgaXQgaXMgcG9zc2libGUgdG8gYWNjZXNzIGdyaWQgZGF0YSBmcm9tIFB5dGhvbiwgaXQgaXMgcG9zc2libGUgdG8gcXVpY2tseSB3cml0ZSBjb2RlIGZvciBhbGwgc29ydHMgb2Ygb3BlcmF0aW9ucy4gICBIb3dldmVyLCBQeXRob24gbWF5IG5vdCBwcm92aWRlIGVub3VnaCBwZXJmb3JtYW5jZSBmb3IgY2VydGFpbiBvcGVyYXRpb25zLiAgRm9yIGV4YW1wbGUsIHRoZSA8dHQ+ZHVtcCgpPC90dD4gZnVuY3Rpb24gaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUgbWF5IGJlY29tZSBxdWl0ZSBzbG93IGFzIHByb2JsZW0gc2l6ZXMgaW5jcmVhc2UuICAgVGh1cywgd2UgbWlnaHQgY29uc2lkZXIgd3JpdGluZyBpdCBpbiBDKysgc3VjaCBhcyB0aGUgZm9sbG93czo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGR1bXAoSGVhdDJkICpoLCBjaGFyICpmaWxlbmFtZSkgewotICAgICAgRklMRSAqZjsKLSAgICAgIGludCAgIGksajsKLQotICAgICAgZiA9IGZvcGVuKGZpbGVuYW1lLCJ3Iik7Ci0gICAgICBmb3IgKGkgPSAwOyBpICZsdDsgaC0mZ3Q7Z3JpZC0mZ3Q7eHBvaW50czsgaSsrKQotCWZvciAoaiA9IDA7IGogJmx0OyBoLSZndDtncmlkLSZndDt5cG9pbnRzOyBqKyspCi0JICBmcHJpbnRmKGYsIiUwLjE3ZlxuIixoLSZndDtncmlkLSZndDtkYXRhW2ldW2pdKTsKLSAgICAgIGZjbG9zZShmKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVG8gdXNlIHRoaXMgbmV3IGZ1bmN0aW9uLCBzaW1wbGUgcHV0IGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgU1dJRyBpbnRlcmZhY2UgZmlsZSBhbmQgZ2V0IHJpZCBvZiB0aGUgb2xkIFB5dGhvbiB2ZXJzaW9uLiAgVGhlIFB5dGhvbiBzY3JpcHQgd29uJ3Qga25vdyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBpbXBsZW1lbnRhdGlvbi48cD4KLTxhIG5hbWU9Im4zOSI+PC9hPjxoMz4gR2V0dGluZyBldmVuIG1vcmUgc2VyaW91cyBhYm91dCBhcnJheSBhY2Nlc3M8L2gzPgotV2UgaGF2ZSBwcm92aWRlZCBhY2Nlc3MgdG8gZ3JpZCBkYXRhIHVzaW5nIGEgcGFpciBvZiBnZXQvc2V0IGZ1bmN0aW9ucy4gIEhvd2V2ZXIsIHVzaW5nIHRoZXNlIGZ1bmN0aW9ucyBpcyBhIGxpdHRsZSBjbHVtc3kgYmVjYXVzZSB0aGV5IGFsd2F5cyBoYXZlIHRvIGJlIGNhbGxlZCBhcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+R3JpZDJkX3NldChncmlkLGksaiwxLjApCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUl0IG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSB0byBtYWtlIHRoZSBnZXQvc2V0IGZ1bmN0aW9ucyBhcHBlYXIgbGlrZSAgbWVtYmVyIGZ1bmN0aW9ucyBvZiB0aGUgPHR0PkdyaWQyRDwvdHQ+IGNsYXNzLiAgIFRoYXQgd2F5IHdlIGNvdWxkIHVzZSB0aGVtIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Z3JpZC5zZXQoaSxqLDEuMCkKLWdyaWQuZ2V0KGksaikKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU1dJRyBwcm92aWRlcyBhIHNpbXBsZSB0ZWNobmlxdWUgZm9yIGRvaW5nIHRoaXMgYXMgaWxsdXN0cmF0ZWQgaW4gdGhlIGZvbGxvd2luZyBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBwZGUKLSV7Ci0jaW5jbHVkZSAicGRlLmgiCi0lfQotJWluY2x1ZGUgcGRlLmgKLQotLy8gQWRkIGEgZmV3ICJoZWxwZXIiIGZ1bmN0aW9ucyB0byBleHRyYWN0IGdyaWQgZGF0YSAKLSV7Ci0gICAgZG91YmxlICBHcmlkMmRfZ2V0KEdyaWQyZCAqZywgaW50IGksIGludCBqKSB7Ci0gICAgICByZXR1cm4gZy0mZ3Q7ZGF0YVtpXVtqXTsKLSAgICB9Ci0gICAgdm9pZCAgICBHcmlkMmRfc2V0KEdyaWQyZCAqZywgaW50IGksIGludCBqLCBkb3VibGUgdmFsKSB7Ci0gICAgICBnLSZndDtkYXRhW2ldW2pdID0gdmFsOwotICAgIH0KLSV9Ci0KLS8vIE5vdyBhZGQgdGhlc2UgaGVscGVyIGZ1bmN0aW9ucyBhcyBtZXRob2RzIG9mIEdyaWQyZAotCi0lYWRkbWV0aG9kcyBHcmlkMmQgewotICAgIGRvdWJsZSBnZXQoaW50IGksIGludCBqKTsgICAgICAgICAgICAgIC8vIEdldHMgZXhwYW5kZWQgdG8gR3JpZDJkX2dldCgpCi0gICAgdm9pZCAgIHNldChpbnQgaSwgaW50IGosIGRvdWJsZSB2YWwpOyAgLy8gR2V0cyBleHBhbmRlZCB0byBHcmlkMmRfc2V0KCkKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIDx0dD4lYWRkbWV0aG9kczwvdHQ+IGRpcmVjdGl2ZSB0ZWxscyBTV0lHIHRoYXQgeW91IHdhbnQgdG8gYWRkIG5ldyBmdW5jdGlvbnMgdG8gYW4gZXhpc3RpbmcgQysrIGNsYXNzIG9yIEMgc3RydWN0dXJlIGZvciB0aGUgcHVycG9zZXMgb2YgYnVpbGRpbmcgYW4gaW50ZXJmYWNlLiAgIEluIHJlYWxpdHksIFNXSUcgbGVhdmVzIHRoZSBvcmlnaW5hbCBDKysgY2xhc3MgdW5jaGFuZ2VkLCBidXQgdGhlIHJlc3VsdGluZyBQeXRob24gaW50ZXJmYWNlIHdpbGwgaGF2ZSBzb21lIG5ldyBmdW5jdGlvbnMgdGhhdCBhcHBlYXIgdG8gYmUgY2xhc3MgbWVtYmVycy48cD4KLTxwPgotU1dJRyB1c2VzIGEgbmFtaW5nIGNvbnZlbnRpb24gZm9yIGFkZGluZyBtZXRob2RzIHRvIGEgY2xhc3MuICBJZiB5b3UgaGF2ZSBhIGNsYXNzIDx0dD5Gb288L3R0PiBhbmQgeW91IGFkZCBhIG1lbWJlciBmdW5jdGlvbiA8dHQ+YmFyKGFyZ3MpLDwvdHQ+IFNXSUcgd2lsbCBsb29rIGZvciBhIGZ1bmN0aW9uIGNhbGxlZCA8dHQ+Rm9vX2Jhcih0aGlzLGFyZ3MpPC90dD4gdGhhdCBpbXBsZW1lbnRzIHRoZSBkZXNpcmVkIGZ1bmN0aW9uYWxpdHkuICAgWW91IGNhbiB3cml0ZSB0aGlzIGZ1bmN0aW9uIHlvdXJzZWxmLCBhcyBpbiB0aGUgcHJldmlvdXMgaW50ZXJmYWNlIGZpbGUsIGJ1dCB5b3UgY2FuIGFsc28ganVzdCBzdXBwbHkgdGhlIGNvZGUgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBkZWNsYXJhdGlvbiBsaWtlIHRoaXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVtb2R1bGUgcGRlCi0lewotI2luY2x1ZGUgInBkZS5oIgotJX0KLSVpbmNsdWRlIHBkZS5oCi0KLS8vIEFkZCBzb21lIG5ldyBhY2Nlc3NvciBtZXRob2RzIHRvIHRoZSBHcmlkMkQgY2xhc3MKLSVhZGRtZXRob2RzIEdyaWQyZCB7Ci0gIGRvdWJsZSBnZXQoaW50IGksIGludCBqKSB7Ci0gICAgcmV0dXJuIHNlbGYtJmd0O2RhdGFbaV1bal07Ci0gIH07Ci0gIHZvaWQgc2V0KGludCBpLCBpbnQgaiwgZG91YmxlIHZhbCkgewotICAgIHNlbGYtJmd0O2RhdGFbaV1bal0gPSB2YWw7Ci0gIH07Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUluIHRoaXMgY2FzZSwgU1dJRyB3aWxsIHRha2UgdGhlIHN1cHBsaWVkIGNvZGUsIGFuZCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgZnVuY3Rpb24gZm9yIHRoZSBtZXRob2QuICBUaGUgc3BlY2lhbCB2YXJpYWJsZSAiPHR0PnNlbGY8L3R0PiIgaXMgdXNlZCB0byBob2xkIGEgcG9pbnRlciB0byB0aGUgY29ycmVzcG9uZGluZyBvYmplY3QuICBUaGUgPHR0PnNlbGYgPC90dD5wb2ludGVyIGlzIGV4YWN0bHkgbGlrZSB0aGUgQysrICI8dHQ+dGhpczwvdHQ+IiBwb2ludGVyLCBleGNlcHQgdGhhdCB0aGUgbmFtZSBoYXMgYmVlbiBjaGFuZ2VkIGluIG9yZGVyIHRvIHJlbWluZCB5b3UgdGhhdCB5b3UgYXJlbid0IHJlYWxseSB3cml0aW5nIGEgcmVhbCBjbGFzcyBtZW1iZXIgZnVuY3Rpb24uICAoQWN0dWFsbHksIHRoZSByZWFsIHJlYXNvbiB3ZSBjYW4ndCB1c2UgInRoaXMiIGlzIGJlY2F1c2UgdGhlIEMrKyBjb21waWxlciB3aWxsIHN0YXJ0IGNvbXBsYWluaW5nISk8cD4KLTxwPgotIEZpbmFsbHksIGl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IHRoZSA8dHQ+JWFkZG1ldGhvZHM8L3R0PiBkaXJlY3RpdmUgbWF5IGFsc28gYmUgdXNlZCBpbnNpZGUgYSBjbGFzcyBkZWZpbml0aW9uIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3RydWN0IEdyaWQyZCB7Ci0gIEdyaWQyZChpbnQgbmksIGludCBuaik7Ci0gIH5HcmlkMmQoKTsKLSAgZG91YmxlICoqZGF0YTsKLSAgaW50ICAgICAgeHBvaW50czsKLSAgaW50ICAgICAgeXBvaW50czsKLSAgJWFkZG1ldGhvZHMgewotCWRvdWJsZSBnZXQoaW50IGksIGludCBqKTsKLQl2b2lkICAgc2V0KGludCBpLCBpbnQgaiwgZG91YmxlIHZhbHVlKTsKLSAgfQotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBsYXR0ZXIgY2FzZSBpcyByZWFsbHkgb25seSB1c2VmdWwgaWYgdGhlIEMrKyBjbGFzcyBkZWZpbml0aW9uIGlzIGluY2x1ZGVkIGluIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlIGl0c2VsZi4gICBJZiB5b3UgYXJlIHB1bGxpbmcgdGhlIGNsYXNzIGRlZmluaXRpb24gb3V0IG9mIGEgc2VwYXJhdGUgZmlsZSBvciBhIEMrKyBoZWFkZXIgZmlsZSwgdXNpbmcgYSBzZXBhcmF0ZSA8dHQ+JWFkZG1ldGhvZHM8L3R0PiBkaXJlY3RpdmUgaXMgcHJlZmVyYWJsZS4gIEl0IGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSA8dHQ+JWFkZG1ldGhvZHM8L3R0PiBkaXJlY3RpdmUgYXBwZWFycyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHJlYWwgY2xhc3MgZGVmaW5pdGlvbi0tU1dJRyB3aWxsIGNvcnJlY3RseSBhc3NvY2lhdGUgdGhlIHR3byBkZWZpbml0aW9ucy48cD4KLTxwPgotT2theSwgZW5vdWdoIHRhbGsuICBCeSBhZGRpbmcgdGhlIHNldC9nZXQgZnVuY3Rpb25zIGFzIG1ldGhvZHMsIHdlIGNhbiBub3cgY2hhbmdlIG91ciBQeXRob24gc2NyaXB0IHRvIGxvb2sgbGlrZSB0aGlzIChjaGFuZ2VzIGFyZSB1bmRlcmxpbmVkKSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBBbiBleGFtcGxlIHVzaW5nIG91ciBuZXcgc2V0L2dldCBmdW5jdGlvbnMKLQotZnJvbSBwZGUgaW1wb3J0ICoKLQotIyBTZXQgdXAgYW4gaW5pdGlhbCBjb25kaXRpb24KLQotZGVmIGluaXRjb25kKGgpOgotCWguc2V0X3RlbXAoMC4wKQotCW54ID0gaC5ncmlkLnhwb2ludHMKLQlmb3IgaSBpbiByYW5nZSgwLG54KToKLQkJaC5ncmlkLnNldChpLDAsMS4wKSAgICAgICAgICMgTm90ZSBjaGFuZ2VkIGludGVyZmFjZQotCi0jIER1bXAgb3V0IHRvIGEgZmlsZQotZGVmIGR1bXAoaCxmaWxlbmFtZSk6Ci0JZiA9IG9wZW4oZmlsZW5hbWUsInciKQotCW54ID0gaC5ncmlkLnhwb2ludHMKLQlueSA9IGguZ3JpZC55cG9pbnRzCi0JZm9yIGkgaW4gcmFuZ2UoMCxueCk6Ci0JCWZvciBqIGluIHJhbmdlKDAsbnkpOgotCQkJZi53cml0ZShzdHIoaC5ncmlkLmdldChpLGopKSsiXG4iKQotCWYuY2xvc2UoKQotCi0jIFNldCB1cCBhIHByb2JsZW0gYW5kIHJ1biBpdAotCi1oID0gSGVhdDJkKDUwLDUwKQotaW5pdGNvbmQoaCkKLWZpbGVubyA9IDEKLQotZm9yIGkgaW4gcmFuZ2UoMCwyNSk6Ci0JaC5zb2x2ZSgxMDApCi0JaC5kdW1wKCJEYXQiK3N0cihmaWxlbm8pKQotCXByaW50ICJ0aW1lID0gIiwgaC50aW1lCi0JZmlsZW5vID0gZmlsZW5vKzEKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1Ob3cgaXQncyBzdGFydGluZyB0byBsb29rIGEgbGl0dGxlIGJldHRlciwgYnV0IHdlIGNhbiBkbyBldmVuIGJldHRlci4uLjxwPgotPGEgbmFtZT0ibjQwIj48L2E+PGgzPiBJbXBsZW1lbnRpbmcgc3BlY2lhbCBQeXRob24gbWV0aG9kcyBpbiBDPC9oMz4KLU5vdyB0aGF0IHlvdSdyZSBnZXR0aW5nIGludG8gdGhlIHNwaXJpdCBvZiB0aGluZ3MsIGxldCdzIG1ha2UgaXQgc28gdGhhdCB3ZSBjYW4gYWNjZXNzIG91ciA8dHQ+R3JpZDJEPC90dD4gZGF0YSBsaWtlIGEgUHl0aG9uIGFycmF5LiAgQXMgaXQgdHVybnMgb3V0LCB3ZSBjYW4gZG8gdGhpcyB3aXRoIGEgbGl0dGxlIHRyaWNrZXJ5IGluIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlLiAgRG9uJ3QgZm9yZ2V0IHRvIHB1dCBvbiB5b3VyIFB5dGhvbiB3aXphcmQgY2FwLi4uPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gU1dJRyBpbnRlcmZhY2UgZmlsZSB3aXRoIFB5dGhvbiBhcnJheSBtZXRob2RzIGFkZGVkCi0lbW9kdWxlIHBkZQotJXsKLSNpbmNsdWRlICJwZGUuaCIKLSV9Ci0KLSVpbmNsdWRlIHBkZS5oCi0KLSVpbmxpbmUgJXsKLSAgLy8gRGVmaW5lIGEgbmV3IEdyaWQyZCByb3cgY2xhc3MgCi0gIHN0cnVjdCBHcmlkMmRSb3cgewotICAgIEdyaWQyZCAqZzsgICAgICAgLy8gR3JpZAotICAgIGludCAgICByb3c7ICAgICAgLy8gUm93IG51bWJlcgotICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZCBieSBQeXRob24gdG8gYWNjZXNzIHNlcXVlbmNlIHR5cGVzIChsaXN0cywgdHVwbGVzLCAuLi4pCi0gICAgZG91YmxlIF9fZ2V0aXRlbV9fKGludCBpKSB7Ci0gICAgICByZXR1cm4gZy0mZ3Q7ZGF0YVtyb3ddW2ldOwotICAgIH07Ci0gICAgdm9pZCBfX3NldGl0ZW1fXyhpbnQgaSwgZG91YmxlIHZhbCkgewotICAgICAgZy0mZ3Q7ZGF0YVtyb3ddW2ldID0gdmFsOwotICAgIH07Ci0gIH07Ci0lfQotCi0vLyBOb3cgYWRkIGEgX19nZXRpdGVtX18gbWV0aG9kIHRvIEdyaWQyRCB0byByZXR1cm4gYSByb3cKLSVhZGRtZXRob2RzIEdyaWQyZCB7Ci0gIEdyaWQyZFJvdyBfX2dldGl0ZW1fXyhpbnQgaSkgewotICAgIEdyaWQyZFJvdyByOwotICAgIHIuZyA9IHNlbGY7Ci0gICAgci5yb3cgPSBpOwotICAgIHJldHVybiByOwotICB9OwotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2UgaGF2ZSBub3cgcmVwbGFjZWQgb3VyIGdldC9zZXQgZnVuY3Rpb25zIHdpdGg8dHQ+IHRoZSBfX2dldGl0ZW1fXzwvdHQ+IGFuZCA8dHQ+X19zZXRpdGVtX188L3R0PiBmdW5jdGlvbnMgdGhhdCBQeXRob24gbmVlZHMgdG8gYWNjZXNzIGFycmF5cy4gIFdlIGhhdmUgYWxzbyBhZGRlZCBhIHNwZWNpYWwgPHR0PkdyaWQyZFJvdzwvdHQ+IGNsYXNzLiAgVGhpcyBpcyBuZWVkZWQgdG8gYWxsb3cgdXMgdG8gbWFrZSBhIGZ1bm55IGtpbmQgb2YgIm11bHRpZGltZW5zaW9uYWwiIGFycmF5IGluIFB5dGhvbiAodGhpcyBtYXkgdGFrZSBhIGZldyBtaW51dGVzIG9mIHRob3VnaHQgdG8gZmlndXJlIG91dCkuIFVzaW5nIHRoaXMgbmV3IGludGVyZmFjZSBmaWxlLCB3ZSBjYW4gbm93IHdyaXRlIGEgUHl0aG9uIHNjcmlwdCBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgQW4gZXhhbXBsZSBzY3JpcHQgdXNpbmcgb3VyIGFycmF5IGFjY2VzcyBmdW5jdGlvbnMKLQotZnJvbSBwZGUgaW1wb3J0ICoKLQotIyBTZXQgdXAgYW4gaW5pdGlhbCBjb25kaXRpb24KLQotZGVmIGluaXRjb25kKGgpOgotCWguc2V0X3RlbXAoMC4wKQotCW54ID0gaC5ncmlkLnhwb2ludHMKLQlmb3IgaSBpbiByYW5nZSgwLG54KToKLQkJaC5ncmlkW2ldWzBdID0gMS4wICAgICAgICAgICAgIyBOb3RlIG5pY2UgYXJyYXkgYWNjZXNzCi0KLSMgU2V0IHVwIGEgcHJvYmxlbSBhbmQgcnVuIGl0Ci0KLWggPSBIZWF0MmQoNTAsNTApCi1pbml0Y29uZChoKQotZmlsZW5vID0gMQotCi1mb3IgaSBpbiByYW5nZSgwLDI1KToKLQloLnNvbHZlKDEwMCkKLQloLmR1bXAoIkRhdCIrc3RyKGZpbGVubykpCi0JcHJpbnQgInRpbWUgPSAiLCBoLnRpbWUKLQlmaWxlbm8gPSBmaWxlbm8rMQotCi0jIENhbGN1bGF0ZSBhdmVyYWdlIHRlbXBlcmF0dXJlIG92ZXIgdGhlIHJlZ2lvbgotCi1zdW0gPSAwLjAKLWZvciBpIGluIHJhbmdlKDAsaC5ncmlkLnhwb2ludHMpOgotCWZvciBqIGluIHJhbmdlKDAsaC5ncmlkLnlwb2ludHMpOgotCQlzdW0gPSBzdW0gKyBoLmdyaWRbaV1bal0gICAgICAgICMgTm90ZSBuaWNlIGFycmF5IGFjY2VzcwotCi1hdmcgPSBzdW0vKGguZ3JpZC54cG9pbnRzKmguZ3JpZC55cG9pbnRzKQotCi1wcmludCAiQXZnIHRlbXBlcmF0dXJlID0gIixhdmcKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im40MSI+PC9hPjxoMz4gU3VtbWFyeSAoc28gZmFyKTwvaDM+Ci1JbiBvdXIgZmlyc3QgZXhhbXBsZSwgd2UgaGF2ZSB0YWtlbiBhIHZlcnkgc2ltcGxlIEMrKyBwcm9ibGVtIGFuZCB3cmFwcGVkIGl0IGludG8gYSBQeXRob24gbW9kdWxlLiAgV2l0aCBhIGxpdHRsZSBleHRyYSB3b3JrLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBwcm92aWRlIGFycmF5IHR5cGUgYWNjZXNzIHRvIG91ciBDKysgZGF0YSBmcm9tIFB5dGhvbiBhbmQgdG8gd3JpdGUgc29tZSBjb21wdXRhdGlvbmFsbHkgaW50ZW5zaXZlIG9wZXJhdGlvbnMgaW4gQysrLiAgICBBdCB0aGlzIHBvaW50LCBpdCB3b3VsZCBlYXN5IHRvIHdyaXRlIGFsbCBzb3J0cyBvZiBQeXRob24gc2NyaXB0cyB0byBzZXQgdXAgcHJvYmxlbXMsIHJ1biBzaW11bGF0aW9ucywgbG9vayBhdCB0aGUgZGF0YSwgYW5kIHRvIGRlYnVnIG5ldyBvcGVyYXRpb25zIGltcGxlbWVudGVkIGluIEMrKy4gICA8cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgyPiBXcmFwcGluZyBhIEMgbGlicmFyeTwvaDI+Ci1JbiB0aGlzIG5leHQgZXhhbXBsZSwgd2UgZm9jdXMgb24gd3JhcHBpbmcgdGhlIGdkLTEuMiBsaWJyYXJ5LiAgZ2QgaXMgcHVibGljIGRvbWFpbiBsaWJyYXJ5IGZvciBmYXN0IEdJRiBpbWFnZSBjcmVhdGlvbiB3cml0dGVuIGJ5IFRob21hcyBCb3V0ZWxsIGFuZCBhdmFpbGFibGUgb24gdGhlIGludGVybmV0LiAgIGdkLTEuMiBpcyBjb3B5cmlnaHQgMTk5NCwxOTk1LCBRdWVzdCBQcm90ZWluIERhdGFiYXNlIENlbnRlciwgQ29sZCBTcHJpbmcgSGFyYm9yIExhYnMuICBUaGlzIGV4YW1wbGUgYXNzdW1lcyB0aGF0IHlvdSBoYXZlIGdkLTEuMiBhdmFpbGFibGUsIGJ1dCB5b3UgY2FuIHVzZSB0aGUgaWRlYXMgaGVyZSB0byB3cmFwIG90aGVyIGtpbmRzIG9mIEMgbGlicmFyaWVzLjxwPgotPGEgbmFtZT0ibjQyIj48L2E+PGgzPiBQcmVwYXJpbmcgYSBtb2R1bGU8L2gzPgotV3JhcHBpbmcgYSBDIGxpYnJhcnkgaW50byBhIFB5dGhvbiBtb2R1bGUgdXN1YWxseSBpbnZvbHZlcyB3b3JraW5nIHdpdGggdGhlIEMgaGVhZGVyIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgbGlicmFyeS4gIEluIHNvbWUgY2FzZXMsIGEgaGVhZGVyIGZpbGUgY2FuIGJlIHVzZWQgZGlyZWN0bHkgKHdpdGhvdXQgbW9kaWZpY2F0aW9uKSB3aXRoIFNXSUcuICBPdGhlciB0aW1lcywgaXQgbWF5IGJlIG5lY2Vzc2FyeSB0byBjb3B5IHRoZSBoZWFkZXIgZmlsZSBpbnRvIGEgU1dJRyBpbnRlcmZhY2UgZmlsZSBhbmQgbWFrZSBhIGZldyB0b3VjaC11cHMgYW5kIG1vZGlmaWNhdGlvbnMuIEluIGVpdGhlciBjYXNlLCBpdCdzIHVzdWFsbHkgbm90IHRvbyBkaWZmaWN1bHQuPHA+Ci08cD4KLVRvIG1ha2UgYSBtb2R1bGUsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY2hlY2tsaXN0IDo8cD4KLTxwPgotPHVsPgotPGxpPkxvY2F0ZSB0aGUgaGVhZGVyIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBhIHBhY2thZ2UKLTxsaT5Mb29rIGF0IHRoZSBjb250ZW50cyBvZiB0aGUgaGVhZGVyIGZpbGVzIHRvIHNlZSBpZiBTV0lHIGNhbiBoYW5kbGUgdGhlbS4gIEluIHBhcnRpY3VsYXIsIFNXSUcgY2FuIG5vdCBoYW5kbGUgZXhjZXNzaXZlIHVzZSBvZiBDIHByZXByb2Nlc3NvciBtYWNyb3MsIG9yIG5vbi1BTlNJIEMgc3ludGF4LiBUaGUgYmVzdCB3YXkgdG8gaWRlbnRpZnkgcHJvYmxlbXMgaXMgdG8gc2ltcGx5IHJ1biBTV0lHIG9uIHRoZSBmaWxlIGFuZCBzZWUgd2hhdCBlcnJvcnMgKGlmIGFueSkgZ2V0IHJlcG9ydGVkLgotPGxpPk1ha2UgYSBTV0lHIGludGVyZmFjZSBmaWxlIGZvciB5b3VyIG1vZHVsZSBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUsIHRoZSBhcHByb3ByaWF0ZSBoZWFkZXIgZmlsZXMsIGFuZCBhbnkgc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gcHJvdmlkZS4KLTxsaT5JZiB0aGUgaGVhZGVyIGZpbGUgaXMgY2xlYW4sIHNpbXBseSB1c2UgU1dJRydzIDx0dD4laW5jbHVkZTwvdHQ+IGRpcmVjdGl2ZS4gIElmIG5vdCwgcGFzdGUgdGhlIGhlYWRlciBmaWxlIGludG8geW91ciBpbnRlcmZhY2UgZmlsZSBhbmQgZWRpdCBpdCB1bnRpbCBTV0lHIGNhbiBoYW5kbGUgaXQuCi08bGk+Q2xlYW4gdXAgdGhlIGludGVyZmFjZSBieSBwb3NzaWJseSBhZGRpbmcgc3VwcG9ydGluZyBjb2RlLCBkZWxldGluZyB1bm5lY2Vzc2FyeSBmdW5jdGlvbnMsIGFuZCBlbGltaW5hdGluZyBjbHV0dGVyLgotPGxpPlJ1biBTV0lHIGFuZCBjb21waWxlLgotPC91bD4KLTxwPgotSW4gdGhlIGNhc2Ugb2YgdGhlIGdkIGxpYnJhcnksIHdlIGNhbiBzaW1wbHkgdXNlIHRoZSBmb2xsb3dpbmcgU1dJRyBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBnZAotJXsKLSNpbmNsdWRlICJnZC5oIgotJX0KLQotJXNlY3Rpb24gImdkLTEuMiIsaWdub3JlCi0laW5jbHVkZSAiZ2QuaCIKLQotLy8gVGhlc2Ugd2lsbCBjb21lIGluIGhhbmR5IGxhdGVyCi1GSUxFICpmb3BlbihjaGFyICosIGNoYXIgKik7Ci12b2lkIGZjbG9zZShGSUxFICpmKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiB0aGlzIGZpbGUsIHdlIGZpcnN0IHRlbGwgU1dJRyB0byBwdXQgYWxsIG9mIHRoZSBnZCBmdW5jdGlvbnMgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudGF0aW9uIHNlY3Rpb24gYW5kIHRvIGlnbm9yZSBhbGwgY29tbWVudHMuICAgVGhpcyB1c3VhbGx5IGhlbHBzIGNsZWFuIHVwIHRoZSBkb2N1bWVudGF0aW9uIHdoZW4gd29ya2luZyB3aXRoIHJhdyBoZWFkZXIgZmlsZXMuICAgTmV4dCwgd2Ugc2ltcGx5IGluY2x1ZGUgdGhlIGNvbnRlbnRzIG9mICJnZC5oIiBkaXJlY3RseS4gICBGaW5hbGx5LCB3ZSBwcm92aWRlIHdyYXBwZXJzIHRvIDx0dD5mb3BlbigpPC90dD4gYW5kIDx0dD5mY2xvc2UoKTwvdHQ+IHNpbmNlIHRoZXNlIHdpbGwgY29tZSBpbiBoYW5keSBpbiBvdXIgUHl0aG9uIGludGVyZmFjZS48cD4KLTxwPgotSWYgd2UgZ2l2ZSB0aGlzIGludGVyZmFjZSBmaWxlIHRvIFNXSUcsIHdlIHdpbGwgZ2V0IHRoZSBmb2xsb3dpbmcgb3V0cHV0IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXB5dGhvbiAtc2hhZG93ICAtSS91c3IvbG9jYWwvaW5jbHVkZSBnZC5pCi1HZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBQeXRob24KLS91c3IvbG9jYWwvaW5jbHVkZS9nZC5oIDogTGluZSAzMi4gIEFycmF5cyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCAoaWdub3JlZCkuCi0vdXNyL2xvY2FsL2luY2x1ZGUvZ2QuaCA6IExpbmUgMzMuICBBcnJheXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgKGlnbm9yZWQpLgotL3Vzci9sb2NhbC9pbmNsdWRlL2dkLmggOiBMaW5lIDM0LiAgQXJyYXlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChpZ25vcmVkKS4KLS91c3IvbG9jYWwvaW5jbHVkZS9nZC5oIDogTGluZSAzNS4gIEFycmF5cyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCAoaWdub3JlZCkuCi0vdXNyL2xvY2FsL2luY2x1ZGUvZ2QuaCA6IExpbmUgNDEuICBBcnJheXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgKGlnbm9yZWQpLgotL3Vzci9sb2NhbC9pbmNsdWRlL2dkLmggOiBMaW5lIDQyLiAgQXJyYXlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChpZ25vcmVkKS4KLSUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpbGUgU1dJRyB3YXMgYWJsZSB0byBoYW5kbGUgbW9zdCBvZiB0aGUgaGVhZGVyIGZpbGUsIGl0IGFsc28gcmFuIGludG8gYSBmZXcgdW5zdXBwb3J0ZWQgZGVjbGFyYXRpb25zLS0taW4gdGhpcyBjYXNlLCBhIGZldyBkYXRhIHN0cnVjdHVyZXMgd2l0aCBhcnJheSBtZW1iZXJzLiAgSG93ZXZlciwgdGhlIHdhcm5pbmcgbWVzc2FnZXMgYWxzbyB0ZWxsIHVzIHRoYXQgdGhlc2UgZGVjbGFyYXRpb25zIGhhdmUgc2ltcGx5IGJlZW4gaWdub3JlZC4gICBUaHVzLCB3ZSBjYW4gY2hvb3NlIHRvIGNvbnRpbnVlIGFuZCBidWlsZCBvdXIgaW50ZXJmYWNlIGFueXdheXMuICBBcyBpdCB0dXJucyBvdXQgaW4gdGhpcyBjYXNlLCB0aGUgaWdub3JlZCBkZWNsYXJhdGlvbnMgYXJlIG9mIGxpdHRsZSBvciBubyBjb25zZXF1ZW5jZSBzbyB3ZSBjYW4gaWdub3JlIHRoZSB3YXJuaW5ncy48cD4KLTxwPgotSWYgU1dJRyBpcyB1bmFibGUgdG8gcHJvY2VzcyBhIHJhdyBoZWFkZXIgZmlsZSBvciBpZiB5b3Ugd291bGQgbGlrZSB0byBlbGltaW5hdGUgdGhlIHdhcm5pbmcgbWVzc2FnZXMsIHlvdSBjYW4gc3RydWN0dXJlIHlvdXIgaW50ZXJmYWNlIGZpbGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBnZAotJXsKLSNpbmNsdWRlICJnZC5oIgotJX0KLQotJXNlY3Rpb24gImdkLTEuMiIsaWdub3JlCi0KLS4uLiBwYXN0ZSB0aGUgY29udGVudHMgb2YgZ2QuaCBoZXJlIGFuZCByZW1vdmUgcHJvYmxlbXMgLi4uCi0KLS8vIEEgZmV3IGV4dHJhIHN1cHBvcnQgZnVuY3Rpb25zCi0KLUZJTEUgKmZvcGVuKGNoYXIgKiwgY2hhciAqKTsKLXZvaWQgZmNsb3NlKEZJTEUgKmYpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGxhdHRlciBvcHRpb24gcmVxdWlyZXMgYSBsaXR0bGUgbW9yZSB3b3JrIChzaW5jZSB5b3UgbmVlZCB0byBwYXN0ZSB0aGUgY29udGVudHMgb2YgZ2QuaCBpbnRvIHRoZSBmaWxlIGFuZCBlZGl0IGl0KSwgYnV0IGlzIG90aGVyd2lzZSBub3QgbXVjaCBtb3JlIGRpZmZpY3VsdCB0byBkby4gICBGb3IgaGlnaGx5IGNvbXBsZXggQyBsaWJyYXJpZXMgb3IgaGVhZGVyIGZpbGVzIHRoYXQgZ28gb3ZlcmJvYXJkIHdpdGggdGhlIEMgcHJlcHJvY2Vzc29yLCB5b3UgbWF5IG5lZWQgdG8gZG8gdGhpcyBtb3JlIG9mdGVuLiAgPHA+Ci08YSBuYW1lPSJuNDMiPjwvYT48aDM+IFVzaW5nIHRoZSBnZCBtb2R1bGU8L2gzPgotTm93LCB0aGF0IHdlIGhhdmUgY3JlYXRlZCBhIG1vZHVsZSBmcm9tIHRoZSBnZCBsaWJyYXJ5LCB3ZSBjYW4gdXNlIGl0IGluIFB5dGhvbiBzY3JpcHRzLiAgVGhlIGZvbGxvd2luZyBzY3JpcHQgbWFrZXMgYSBzaW1wbGUgaW1hZ2Ugb2YgYSBibGFjayBiYWNrZ3JvdW5kIHdpdGggYSB3aGl0ZSBsaW5lIGRyYXduIG9uIGl0LiAgTm90aWNlIGhvdyB3ZSBoYXZlIHVzZWQgb3VyIHdyYXBwZWQgdmVyc2lvbnMgb2YgPHR0PmZvcGVuKCk8L3R0PiBhbmQgPHR0PmZjbG9zZSgpPC90dD4gdG8gY3JlYXRlIGEgRklMRSBoYW5kbGUgZm9yIHVzZSBpbiB0aGUgZ2QgbGlicmFyeSAodGhlcmUgYXJlIGFsc28gd2F5cyB0byB1c2UgUHl0aG9uIGZpbGUgb2JqZWN0cywgYnV0IHRoaXMgaXMgZGVzY3JpYmVkIGxhdGVyKS48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFNpbXBsZSBnZCBwcm9ncmFtCi0KLWZyb20gZ2QgaW1wb3J0ICoKLQotaW0gPSBnZEltYWdlQ3JlYXRlKDY0LDY0KQotYmxhY2sgPSBnZEltYWdlQ29sb3JBbGxvY2F0ZShpbSwwLDAsMCkKLXdoaXRlID0gZ2RJbWFnZUNvbG9yQWxsb2NhdGUoaW0sMjU1LDI1NSwyNTUpCi1nZEltYWdlTGluZShpbSwwLDAsNjMsNjMsd2hpdGUpCi1vdXQgPSBmb3BlbigidGVzdC5naWYiLCJ3IikKLWdkSW1hZ2VHaWYoaW0sb3V0KQotZmNsb3NlKG91dCkKLWdkSW1hZ2VEZXN0cm95KGltKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoYXQgd2FzIHNpbXBsZSBlbm91Z2gtLWFuZCBpdCBvbmx5IHJlcXVpcmVkIGFib3V0IDUgbWludXRlcyBvZiB3b3JrLiAgVW5mb3J0dW5hdGVseSwgb3VyIGdkIG1vZHVsZSBzdGlsbCBoYXMgYSBmZXcgcHJvYmxlbXMuLi48cD4KLTxhIG5hbWU9Im40NCI+PC9hPjxoMz4gRXh0ZW5kaW5nIGFuZCBmaXhpbmcgdGhlIGdkIG1vZHVsZTwvaDM+Ci1XaGlsZSBvdXIgZmlyc3QgYXR0ZW1wdCBhdCB3cmFwcGluZyBnZCB3b3JrcyBmb3Igc2ltcGxlIGZ1bmN0aW9ucywgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHByb2JsZW1zLiAgIEZvciBleGFtcGxlLCB0aGUgZ2QtMS4yIGxpYnJhcnkgY29udGFpbnMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBmb3IgZHJhd2luZyBwb2x5Z29ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBnZEltYWdlUG9seWdvbihnZEltYWdlUHRyIGltLCBnZFBvaW50UHRyIHBvaW50cywgaW50IHBvaW50c1RvdGFsLCBpbnQgY29sb3IpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PmdkSW1hZ2VQdHI8L3R0PiB0eXBlIGlzIGNyZWF0ZWQgYnkgYW5vdGhlciBmdW5jdGlvbiBpbiBvdXIgbW9kdWxlIGFuZCB0aGUgcGFyYW1ldGVycyA8dHQ+cG9pbnRzVG90YWw8L3R0PiBhbmQgPHR0PmNvbG9yPC90dD4gYXJlIHNpbXBsZSBpbnRlZ2Vycy4gIEhvd2V2ZXIsIHRoZSAybmQgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgaW4gdGhlIGdkLTEuMiBoZWFkZXIgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dHlwZWRlZiBzdHJ1Y3QgewotCWludCB4LCB5OwotfSBnZFBvaW50LCAqZ2RQb2ludFB0cjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgbm8gd2F5IHRvIGNyZWF0ZSBhIGdkUG9pbnQgaW4gUHl0aG9uIGFuZCBjb25zZXF1ZW50bHkgbm8gd2F5IHRvIGNhbGwgdGhlIGdkSW1hZ2VQb2x5Z29uIGZ1bmN0aW9uLiAgIEEgdGVtcG9yYXJ5IHNldGJhY2ssIGJ1dCBvbmUgdGhhdCBpcyBub3QgZGlmZmljdWx0IHRvIHNvbHZlIHVzaW5nIHRoZSAgPHR0PiVhZGRtZXRob2RzPC90dD4gZGlyZWN0aXZlIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVtb2R1bGUgZ2QKLSV7Ci0jaW5jbHVkZSAiZ2QuaCIKLSV9Ci0KLSVpbmNsdWRlICJnZC5oIgotCi0vLyBGaXggdXAgdGhlIGdkUG9pbnQgc3RydWN0dXJlIGEgbGl0dGxlIGJpdAotJWFkZG1ldGhvZHMgZ2RQb2ludCB7Ci0gIC8vIENvbnN0cnVjdG9yIHRvIG1ha2UgYW4gYXJyYXkgb2YgIlBvaW50cyIKLSAgZ2RQb2ludChpbnQgbnBvaW50cykgewotICAgIHJldHVybiAoZ2RQb2ludCAqKSBtYWxsb2MobnBvaW50cypzaXplb2YoZ2RQb2ludCkpOwotICB9OwotICAvLyBEZXN0cnVjdG9yIHRvIGRlc3Ryb3kgdGhpcyBhcnJheQotICB+Z2RQb2ludCgpIHsKLSAgICBmcmVlKHNlbGYpOwotICB9OwotICAvLyBQeXRob24gbWV0aG9kIGZvciBhcnJheSBhY2Nlc3MKLSAgZ2RQb2ludCAqX19nZXRpdGVtX18oaW50IGkpIHsKLSAgICByZXR1cm4gc2VsZitpOwotICB9OwotfTsKLQotRklMRSAqZm9wZW4oY2hhciAqLCBjaGFyICopOwotdm9pZCBmY2xvc2UoRklMRSAqZik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdpdGggdGhlc2Ugc2ltcGxlIGFkZGl0aW9ucywgd2UgY2FuIG5vdyBjcmVhdGUgYXJyYXlzIG9mIHBvaW50cyBhbmQgdXNlIHRoZSBwb2x5Z29uIGZ1bmN0aW9uIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgU2ltcGxlIGdkIHByb2dyYW0KLQotZnJvbSBnZCBpbXBvcnQgKgotCi1pbSA9IGdkSW1hZ2VDcmVhdGUoNjQsNjQpCi1ibGFjayA9IGdkSW1hZ2VDb2xvckFsbG9jYXRlKGltLDAsMCwwKQotd2hpdGUgPSBnZEltYWdlQ29sb3JBbGxvY2F0ZShpbSwyNTUsMjU1LDI1NSkKLQotcHRzID0gZ2RQb2ludCgzKTsgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgYW4gYXJyYXkgb2YgUG9pbnRzCi1wdHNbMF0ueCxwdHNbMF0ueSA9ICg1LDUpICAgICAgICAgICAjIEFzc2lnbiBhIHNldCBvZiBwb2ludHMKLXB0c1sxXS54LHB0c1sxXS55ID0gKDYwLDI1KQotcHRzWzJdLngscHRzWzJdLnkgPSAoMTYsNjApCi0KLWdkSW1hZ2VQb2x5Z29uKGltLHB0cywzLHdoaXRlKSAgICAgICMgRHJhdyBhIHBvbHlnb24gZnJvbSBvdXIgYXJyYXkgb2YgcG9pbnRzCi1vdXQgPSBmb3BlbigidGVzdC5naWYiLCJ3IikKLWdkSW1hZ2VHaWYoaW0sb3V0KQotZmNsb3NlKG91dCkKLWdkSW1hZ2VEZXN0cm95KGltKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNDUiPjwvYT48aDM+IEJ1aWxkaW5nIGEgc2ltcGxlIDJEIGltYWdpbmcgY2xhc3M8L2gzPgotTm93IGl0J3MgdGltZSB0byBnZXQgZG93biB0byBidXNpbmVzcy4gIFVzaW5nIG91ciBnZC0xLjIgbW9kdWxlLCB3ZSBjYW4gd3JpdGUgYSBzaW1wbGUgMkQgaW1hZ2luZyBjbGFzcyB0aGF0IGhpZGVzIGFsb3Qgb2YgdGhlIHVuZGVybHlpbmcgZGV0YWlscyBhbmQgcHJvdmlkZXMgc2NhbGluZywgdHJhbnNsYXRpb25zLCBhbmQgYSBob3N0IG9mIG90aGVyIG9wZXJhdGlvbnMuICAoSXQncyBhIGZhaXIgYW1vdW50IGNvZGUsIGJ1dCBhbiBpbnRlcmVzdGluZyBleGFtcGxlIG9mIGhvdyBvbmUgY2FuIHRha2UgYSBzaW1wbGUgQyBsaWJyYXJ5IGFuZCB0dXJuIGl0IGludG8gc29tZXRoaW5nIHRoYXQgbG9va3MgY29tcGxldGVseSBkaWZmZXJlbnQpLjxwPgotPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBpbWFnZS5weQotIyBHZW5lcmljIDJEIEltYWdlIENsYXNzCi0jCi0jIEJ1aWx0IHVzaW5nIHRoZSAnZ2QtMS4yJyBsaWJyYXJ5IGJ5IFRob21hcyBCb3V0ZWxsCi0jCi0KLWltcG9ydCBnZAotCi1jbGFzcyBJbWFnZToKLQlkZWYgX19pbml0X18oc2VsZix3aWR0aCxoZWlnaHQseG1pbj0wLjAseW1pbj0wLjAseG1heD0xLjAseW1heD0xLjApOgotCQlzZWxmLmltID0gZ2QuZ2RJbWFnZUNyZWF0ZSh3aWR0aCxoZWlnaHQpCi0JCXNlbGYueG1pbiAgID0geG1pbgotCQlzZWxmLnltaW4gICA9IHltaW4KLQkJc2VsZi54bWF4ICAgPSB4bWF4Ci0JCXNlbGYueW1heCAgID0geW1heAotCQlzZWxmLndpZHRoICA9IHdpZHRoCi0JCXNlbGYuaGVpZ2h0ID0gaGVpZ2h0Ci0JCXNlbGYuZHggICAgID0gMS4wKih4bWF4LXhtaW4pCi0JCXNlbGYuZHkgICAgID0gMS4wKih5bWF4LXltaW4pCi0JCXNlbGYueHRpY2sgID0gc2VsZi5keC8xMC4wCi0JCXNlbGYueXRpY2sgID0gc2VsZi5keS8xMC4wCi0JCXNlbGYudGlja2xlbj0gMwotCQlzZWxmLm5hbWUgICA9ICJpbWFnZS5naWYiCi0JCWdkLmdkSW1hZ2VDb2xvckFsbG9jYXRlKHNlbGYuaW0sMCwwLDApICAgICAgICAjIEJsYWNrCi0JCWdkLmdkSW1hZ2VDb2xvckFsbG9jYXRlKHNlbGYuaW0sMjU1LDI1NSwyNTUpICAjIFdoaXRlCi0JCWdkLmdkSW1hZ2VDb2xvckFsbG9jYXRlKHNlbGYuaW0sMjU1LDAsMCkgICAgICAjIFJlZAotCQlnZC5nZEltYWdlQ29sb3JBbGxvY2F0ZShzZWxmLmltLDAsMjU1LDApICAgICAgIyBHcmVlbgotCQlnZC5nZEltYWdlQ29sb3JBbGxvY2F0ZShzZWxmLmltLDAsMCwyNTUpICAgICAgIyBCbHVlCi0KLQlkZWYgX19kZWxfXyhzZWxmKToKLQkJcHJpbnQgIkRlbGV0aW5nIgotCQlnZC5nZEltYWdlRGVzdHJveShzZWxmLmltKQotCQotCSMgRHVtcCBvdXQgdGhpcyBpbWFnZSB0byBhIGZpbGUKLQlkZWYgd3JpdGUoc2VsZixuYW1lPSJOT05FIik6Ci0JCWlmIG5hbWUgPT0gIk5PTkUiOgotCQkJbmFtZSA9IHNlbGYubmFtZQotCQlmID0gZ2QuZm9wZW4obmFtZSwidyIpCi0JCWdkLmdkSW1hZ2VHaWYoc2VsZi5pbSxmKQotCQlnZC5mY2xvc2UoZikKLQkJc2VsZi5uYW1lID0gbmFtZQotCQotCSMgVmlydHVhbCBtZXRob2QgdGhhdCBkZXJpdmVkIGNsYXNzZXMgZGVmaW5lCi0JZGVmIGRyYXcoc2VsZik6Ci0JCXByaW50ICJObyBkcmF3aW5nIG1ldGhvZCBzcGVjaWZpZWQuIgotCi0JIyBBIGNvbWJpbmF0aW9uIG9mIHdyaXRlIGFuZCBkcmF3Ci0JZGVmIHNob3coc2VsZixmaWxlbmFtZT0iTk9ORSIpOgotCQlzZWxmLmRyYXcoKQotCQlzZWxmLndyaXRlKGZpbGVuYW1lKQotCi0JIyBMb2FkIHVwIGEgY29sb3JtYXAgZnJvbSBhIFB5dGhvbiBhcnJheSBvZiAoUixHLEIpIHR1cGxlcwotCWRlZiBjb2xvcm1hcChzZWxmLCBjbWFwKToKLQkJZm9yIGkgaW4gcmFuZ2UoMCwyNTUpOgotCQkJZ2QuZ2RJbWFnZUNvbG9yRGVhbGxvY2F0ZShzZWxmLmltLGkpCi0JCWZvciBjIGluIGNtYXA6Ci0JCQlnZC5nZEltYWdlQ29sb3JBbGxvY2F0ZShzZWxmLmltLGNbMF0sY1sxXSxjWzJdKQotCi0JIyBDaGFuZ2Ugdmlld2luZyByZWdpb24KLQlkZWYgcmVnaW9uKHNlbGYseG1pbix5bWluLHhtYXgseW1heCk6Ci0JCXNlbGYueG1pbiA9IHhtaW4KLQkJc2VsZi55bWluID0geW1pbgotCQlzZWxmLnhtYXggPSB4bWF4Ci0JCXNlbGYueW1heCA9IHltYXgKLQkJc2VsZi5keCAgICAgPSAxLjAqKHhtYXgteG1pbikKLQkJc2VsZi5keSAgICAgPSAxLjAqKHltYXgteW1pbikKLQotCSMgVHJhbnNmb3JtcyBhIDJEIHBvaW50IGludG8gc2NyZWVuIGNvb3JkaW5hdGVzCi0JZGVmIHRyYW5zZm9ybShzZWxmLHgseSk6Ci0JCW5wdCA9IFtdCi0JCWl4ID0gKHgtc2VsZi54bWluKS9zZWxmLmR4KnNlbGYud2lkdGggKyAwLjUKLQkJaXkgPSAoc2VsZi55bWF4LXkpL3NlbGYuZHkqc2VsZi5oZWlnaHQgKyAwLjUKLQkJcmV0dXJuIChpeCxpeSkKLQotCSMgQSBmZXcgZ3JhcGhpY3MgcHJpbWl0aXZlcwotCWRlZiBjbGVhcihzZWxmLGNvbG9yKToKLQkJZ2QuZ2RJbWFnZUZpbGxlZFJlY3RhbmdsZShzZWxmLmltLDAsMCxzZWxmLndpZHRoLHNlbGYuaGVpZ2h0LGNvbG9yKQotCi0JZGVmIHBsb3Qoc2VsZix4LHksY29sb3IpOgotCQlpeCxpeSA9IHNlbGYudHJhbnNmb3JtKHgseSkKLQkJZ2QuZ2RJbWFnZVNldFBpeGVsKHNlbGYuaW0saXgsaXksY29sb3IpCi0KLQlkZWYgbGluZShzZWxmLHgxLHkxLHgyLHkyLGNvbG9yKToKLQkJaXgxLGl5MSA9IHNlbGYudHJhbnNmb3JtKHgxLHkxKQotCQlpeDIsaXkyID0gc2VsZi50cmFuc2Zvcm0oeDIseTIpCi0JCWdkLmdkSW1hZ2VMaW5lKHNlbGYuaW0saXgxLGl5MSxpeDIsaXkyLGNvbG9yKQotCi0JZGVmIGJveChzZWxmLHgxLHkxLHgyLHkyLGNvbG9yKToKLQkJaXgxLGl5MSA9IHNlbGYudHJhbnNmb3JtKHgxLHkxKQotCQlpeDIsaXkyID0gc2VsZi50cmFuc2Zvcm0oeDIseTIpCi0JCWdkLmdkSW1hZ2VSZWN0YW5nbGUoc2VsZi5pbSxpeDEsaXkxLGl4MixpeTIsY29sb3IpCi0KLQlkZWYgc29saWRib3goc2VsZix4MSx5MSx4Mix5Mixjb2xvcik6Ci0JCWl4MSxpeTEgPSBzZWxmLnRyYW5zZm9ybSh4MSx5MSkKLQkJaXgyLGl5MiA9IHNlbGYudHJhbnNmb3JtKHgyLHkyKQotCQlnZC5nZEltYWdlRmlsbGVkUmVjdGFuZ2xlKHNlbGYuaW0saXgxLGl5MSxpeDIsaXkyLGNvbG9yKQotCQotCWRlZiBhcmMoc2VsZixjeCxjeSx3LGgscyxlLGNvbG9yKToKLQkJaXgsaXkgPSBzZWxmLnRyYW5zZm9ybShjeCxjeSkKLQkJaXcgPSAoeCAtIHNlbGYueG1pbikvc2VsZi5keCAqIHNlbGYud2lkdGgKLQkJaWggPSAoeSAtIHNlbGYueW1pbikvc2VsZi5keSAqIHNlbGYuaGVpZ2h0Ci0JCWdkLmdkSW1hZ2VBcmMoc2VsZi5pbSxpeCxpeSxpdyxpaCxzLGUsY29sb3IpCi0KLQlkZWYgZmlsbChzZWxmLHgseSxjb2xvcik6Ci0JCWl4LGl5ID0gc2VsZi50cmFuc2Zvcm0oeCx5KQotCQlnZC5nZEltYWdlRmlsbChzZWxmLGl4LGl5LGNvbG9yKQotCi0JZGVmIGF4aXMoc2VsZixjb2xvcik6Ci0JCXNlbGYubGluZShzZWxmLnhtaW4sMCxzZWxmLnhtYXgsMCxjb2xvcikKLQkJc2VsZi5saW5lKDAsc2VsZi55bWluLDAsc2VsZi55bWF4LGNvbG9yKQotCQl4ID0gLXNlbGYueHRpY2sqKGludCgtc2VsZi54bWluL3NlbGYueHRpY2spKzEpCi0JCXdoaWxlIHggJmx0Oz0gc2VsZi54bWF4OgotCQkgICAgaXgsaXkgPSBzZWxmLnRyYW5zZm9ybSh4LDApCi0JCSAgICBnZC5nZEltYWdlTGluZShzZWxmLmltLGl4LGl5LXNlbGYudGlja2xlbixpeCxpeStzZWxmLnRpY2tsZW4sY29sb3IpCi0JCSAgICB4ID0geCArIHNlbGYueHRpY2sKLQkJeSA9IC1zZWxmLnl0aWNrKihpbnQoLXNlbGYueW1pbi9zZWxmLnl0aWNrKSsxKQotCQl3aGlsZSB5ICZsdDs9IHNlbGYueW1heDoKLQkJICAgIGl4LGl5ID0gc2VsZi50cmFuc2Zvcm0oMCx5KQotCQkgICAgZ2QuZ2RJbWFnZUxpbmUoc2VsZi5pbSxpeC1zZWxmLnRpY2tsZW4saXksaXgrc2VsZi50aWNrbGVuLGl5LGNvbG9yKQotCQkgICAgeSA9IHkgKyBzZWxmLnl0aWNrCi0KLQkjIHNjYWxleChzKS4gIFNjYWxlcyB0aGUgeC1heGlzLiAgcyBpcyBnaXZlbiBhcyBhIHNjYWxpbmcgZmFjdG9yCi0JZGVmIHNjYWxleChzZWxmLHMpOgotCQl4YyA9IHNlbGYueG1pbiArIHNlbGYuZHgvMi4wCi0JCWR4ID0gc2VsZi5keCpzCi0JCXhtaW4gPSB4YyAtIGR4LzIuMAotCQl4bWF4ID0geGMgKyBkeC8yLjAKLQkJc2VsZi5yZWdpb24oeG1pbixzZWxmLnltaW4seG1heCxzZWxmLnltYXgpCi0KLQkjIHNjYWxleShzKS4gIFNjYWxlcyB0aGUgeS1heGlzLiAgCi0JZGVmIHNjYWxleShzZWxmLHMpOgotCQl5YyA9IHNlbGYueW1pbiArIHNlbGYuZHkvMi4wCi0JCWR5ID0gc2VsZi5keSpzCi0JCXltaW4gPSB5YyAtIGR5LzIuMAotCQl5bWF4ID0geWMgKyBkeS8yLjAKLQkJc2VsZi5yZWdpb24oc2VsZi54bWluLHltaW4sc2VsZi54bWF4LHltYXgpCi0KLQkjIFpvb21zIGEgY3VycmVudCBpbWFnZS4gIHMgaXMgZ2l2ZW4gYXMgYSBwZXJjZW50IAotCWRlZiB6b29tKHNlbGYscyk6Ci0JCXMgPSAxMDAuMC9zCi0JCXNlbGYuc2NhbGV4KHMpCi0JCXNlbGYuc2NhbGV5KHMpCi0KLQkjIE1vdmUgaW1hZ2UgbGVmdC4gIHMgaXMgZ2l2ZW4gaW4gcmFuZ2UgMCwxMDAuIDEwMCBtb3ZlcyBhIGZ1bGwgc2NyZWVuIGxlZnQKLQlkZWYgbGVmdChzZWxmLHMpOgotCQlkeCA9IHNlbGYuZHgqcy8xMDAuMAotCQl4bWluID0gc2VsZi54bWluICsgZHgKLQkJeG1heCA9IHNlbGYueG1heCArIGR4Ci0JCXNlbGYucmVnaW9uKHhtaW4sc2VsZi55bWluLHhtYXgsc2VsZi55bWF4KQotCi0JIyBNb3ZlIGltYWdlIHJpZ2h0LiAgcyBpcyBnaXZlbiBpbiByYW5nZSAwLDEwMC4gMTAwIG1vdmVzIGEgZnVsbCBzY3JlZW4gcmlnaHQKLQlkZWYgcmlnaHQoc2VsZixzKToKLQkJc2VsZi5sZWZ0KC1zKQotCi0JIyBNb3ZlIGltYWdlIGRvd24uICBzIGlzIGdpdmVuIGluIHJhbmdlIDAsMTAwLiAxMDAgbW92ZXMgYSBmdWxsIHNjcmVlbiBkb3duCi0JZGVmIGRvd24oc2VsZixzKToKLQkJZHkgPSBzZWxmLmR5KnMvMTAwLjAKLQkJeW1pbiA9IHNlbGYueW1pbiArIGR5Ci0JCXltYXggPSBzZWxmLnltYXggKyBkeQotCQlzZWxmLnJlZ2lvbihzZWxmLnhtaW4seW1pbixzZWxmLnhtYXgseW1heCkKLQotCSMgTW92ZSBpbWFnZSB1cC4gIHMgaXMgZ2l2ZW4gaW4gcmFuZ2UgMCwxMDAuIDEwMCBtb3ZlcyBhIGZ1bGwgc2NyZWVuIHVwCi0JZGVmIHVwKHNlbGYscyk6Ci0JCXNlbGYuZG93bigtcykKLQotCSMgQ2VudGVyIGltYWdlCi0JZGVmIGNlbnRlcihzZWxmLHgseSk6Ci0JCXNlbGYucmlnaHQoNTAteCkKLQkJc2VsZi51cCg1MC15KQotCQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1PdXIgaW1hZ2UgY2xhc3MgcHJvdmlkZXMgYSBudW1iZXIgb2YgbWV0aG9kcyBmb3IgY3JlYXRpbmcgaW1hZ2VzLCBwbG90dGluZyBwb2ludHMsIG1ha2luZyBsaW5lcywgYW5kIG90aGVyIGdyYXBoaWNhbCBvYmplY3RzLiAgV2UgaGF2ZSBhbHNvIHByb3ZpZGVkIHNvbWUgbWV0aG9kcyBmb3IgbW92aW5nIGFuZCBzY2FsaW5nIHRoZSBpbWFnZS4gICBOb3csIGxldCdzIHVzZSB0aGlzIGltYWdlIGNsYXNzIHRvIGRvIHNvbWUgaW50ZXJlc3RpbmcgdGhpbmdzIDo8cD4KLTxwPgotPGEgbmFtZT0ibjQ2Ij48L2E+PGgzPiBBIG1hdGhlbWF0aWNhbCBmdW5jdGlvbiAgcGxvdHRlciA8L2gzPgotSGVyZSdzICBhIHNpbXBsZSBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHBsb3QgbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBmdW5jcGxvdC5weQotCi1mcm9tIGltYWdlIGltcG9ydCAqCi0KLWNsYXNzIFBsb3RGdW5jKEltYWdlKToKLQlkZWYgX19pbml0X18oc2VsZixmdW5jLHhtaW4seW1pbix4bWF4LHltYXgsd2lkdGg9NTAwLGhlaWdodD01MDApOgotCQlJbWFnZS5fX2luaXRfXyhzZWxmLHdpZHRoLGhlaWdodCx4bWluLHltaW4seG1heCx5bWF4KQotCQlzZWxmLmZ1bmMgPSBmdW5jICAgICAgICAgICAgIyBUaGUgZnVuY3Rpb24gYmVpbmcgcGxvdHRlZAotCQlzZWxmLm5wb2ludHMgPSAxMDAgICAgICAgICAgIyBOdW1iZXIgb2Ygc2FtcGxlcwotCQlzZWxmLmNvbG9yID0gMQotCWRlZiBkcmF3KHNlbGYpOgotCQlzZWxmLmNsZWFyKDApCi0JCWxhc3R4ID0gc2VsZi54bWluCi0JCWxhc3R5ID0gc2VsZi5mdW5jKGxhc3R4KQotCQlkeCA9IDEuMCooc2VsZi54bWF4LXNlbGYueG1pbikvc2VsZi5ucG9pbnRzCi0JCXggPSBsYXN0eCtkeAotCQlmb3IgaSBpbiByYW5nZSgwLHNlbGYubnBvaW50cyk6Ci0JCQl5ID0gc2VsZi5mdW5jKHgpCi0JCQlzZWxmLmxpbmUobGFzdHgsbGFzdHkseCx5LHNlbGYuY29sb3IpCi0JCQlsYXN0eCA9IHgKLQkJCWxhc3R5ID0geQotCQkJeCA9IHggKyBkeAotCQlzZWxmLmF4aXMoMSkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTW9zdCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBpcyBpbXBsZW1lbnRlZCBpbiBvdXIgYmFzZSBpbWFnZSBjbGFzcyBzbyB0aGlzIGlzIHByZXR0eSBzaW1wbGUuICBIb3dldmVyLCBpZiB3ZSB3YW50ZWQgdG8gbWFrZSBhIEdJRiBpbWFnZSBvZiBhIG1hdGhlbWF0aWNhbCBmdW5jdGlvbiwgd2UgY291bGQganVzdCBkbyB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgZnJvbSBmdW5jcGxvdCBpbXBvcnQgKgotJmd0OyZndDsmZ3Q7IGltcG9ydCBtYXRoCi0mZ3Q7Jmd0OyZndDsgcCA9IFBsb3RGdW5jKGxhbWJkYSB4OiAwLjUqbWF0aC5zaW4oeCkrMC43NSptYXRoLnNpbigyKngpLTAuNiptYXRoLnNpbigzKngpLAotICAgICAgICAgICAgICAgICAtMTAsLTIsMTAsMikKLSZndDsmZ3Q7Jmd0OyBwLnNob3coInBsb3QuZ2lmIikKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpY2ggd291bGQgcHJvZHVjZSB0aGUgZm9sbG93aW5nIEdJRiBpbWFnZSA6PHA+Ci08cD48Y2VudGVyPjxpbWcgc3JjPSJjaDkuMS5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08cD4KLTxhIG5hbWU9Im40NyI+PC9hPjxoMz4gUGxvdHRpbmcgYW4gdW5zdHJ1Y3R1cmVkIG1lc2g8L2gzPgotT2YgY291cnNlLCBwZXJoYXBzIHdlIHdhbnQgdG8gcGxvdCBzb21ldGhpbmcgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZCBsaWtlIGEgbWVzaC4gUmVjZW50bHksIGEgY29sbGVhZ3VlIGNhbWUgdG8gbWUgd2l0aCBzb21lIHVuc3RydWN0dXJlZCBtZXNoIGRhdGEgY29udGFpbmVkIGluIGEgcGFpciBvZiBBU0NJSSBmb3JtYXR0ZWQgZmlsZXMuICAgVGhlc2UgZmlsZXMgY29udGFpbmVkIGEgY29sbGVjdGlvbiBvZiBwb2ludHMsIGFuZCBhIGxpc3Qgb2YgY29ubmVjdGl2aXRpZXMgZGVmaW5pbmcgYSBtZXNoIG9uIHRoZXNlIHBvaW50cy4gICBSZWFkaW5nIGFuZCBwbG90dGluZyB0aGlzIGRhdGEgaW4gUHl0aG9uIHR1cm5lZCBvdXQgdG8gYmUgcmVsYXRpdmVseSBlYXN5IHVzaW5nIHRoZSBmb2xsb3dpbmcgc2NyaXB0IGFuZCBvdXIgaW1hZ2UgYmFzZSBjbGFzcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBwbG90bWVzaC5weQotIyBQbG90cyBhbiB1bnN0cnVjdHVyZWQgbWVzaCBzdG9yZWQgYXMgYW4gQVNDSUkgZmlsZQotZnJvbSBpbWFnZSBpbXBvcnQgKgotaW1wb3J0IHN0cmluZwotCi1jbGFzcyBQbG90TWVzaChJbWFnZSk6Ci0JZGVmIF9faW5pdF9fKHNlbGYsZmlsZW5hbWUseG1pbix5bWluLHhtYXgseW1heCx3aWR0aD01MDAsaGVpZ2h0PTUwMCk6Ci0JCUltYWdlLl9faW5pdF9fKHNlbGYsd2lkdGgsaGVpZ2h0LHhtaW4seW1pbix4bWF4LHltYXgpCi0JCSMgcmVhZCBpbiBhIG1lc2ggZmlsZSBpbiBwaWVjZXMKLQkJcHRzID0gW10KLQkJIyBSZWFkIGluIGRhdGEgcG9pbnRzCi0JCWF0b2kgPSBzdHJpbmcuYXRvaQotCQlhdG9mID0gc3RyaW5nLmF0b2YKLQkJZiA9IG9wZW4oZmlsZW5hbWUrIi5wdHMiLCJyIikKLQkJbnBvaW50cyA9IGF0b2koZi5yZWFkbGluZSgpKQotCQlmb3IgaSBpbiByYW5nZSgwLG5wb2ludHMpOgotCQkJbCA9IHN0cmluZy5zcGxpdChmLnJlYWRsaW5lKCkpCi0JCQlwdHMuYXBwZW5kKChhdG9mKGxbMF0pLGF0b2YobFsxXSkpKQotCQlmLmNsb3NlKCkJCi0KLQkJIyBSZWFkIGluIG1lc2ggZGF0YQotCQlmID0gb3BlbihmaWxlbmFtZSsiLnRyaXMiLCJyIikKLQkJbnRyaXMgPSBzdHJpbmcuYXRvaShmLnJlYWRsaW5lKCkpCi0JCXRyaXMgPSBbIF0KLQkJZm9yIGkgaW4gcmFuZ2UoMCxudHJpcyk6Ci0JCQlsID0gc3RyaW5nLnNwbGl0KGYucmVhZGxpbmUoKSkKLQkJCXRyaXMuYXBwZW5kKChhdG9pKGxbMF0pLTEsYXRvaShsWzFdKS0xLGF0b2kobFsyXSktMSxhdG9pKGxbM10pKSkKLQkJZi5jbG9zZSgpCi0KLQkjIFNldCB1cCBsb2NhbCBhdHRyaWJ1dGVzCi0JCXNlbGYucHRzID0gcHRzCi0JCXNlbGYubnBvaW50cyA9IG5wb2ludHMKLQkJc2VsZi50cmlzID0gdHJpcwotCQlzZWxmLm50cmlzID0gbnRyaXMKLQotCSMgRHJhdyBtZXNoCi0JZGVmIGRyYXcoc2VsZik6Ci0JCXNlbGYuY2xlYXIoMCk7Ci0JCWkgPSAwCi0JCXdoaWxlIGkgJmx0OyBzZWxmLm50cmlzOgotCQkJdHJpID0gc2VsZi50cmlzW2ldCi0JCQlwdDEgPSBzZWxmLnB0c1t0cmlbMF1dCi0JCQlwdDIgPSBzZWxmLnB0c1t0cmlbMV1dCi0JCQlwdDMgPSBzZWxmLnB0c1t0cmlbMl1dCi0JCQkjIE5vdyBkcmF3IHRoZSBtZXNoCi0JCQlzZWxmLnRyaWFuZ2xlKHB0MVswXSxwdDFbMV0scHQyWzBdLHB0MlsxXSxwdDNbMF0scHQzWzFdLHRyaVszXSk7Ci0JCQlpID0gaSArIDEKLQotCSMgRHJhdyBhIHRyaWFuZ2xlCi0JZGVmIHRyaWFuZ2xlKHNlbGYseDEseTEseDIseTIseDMseTMsY29sb3IpOgotCQlzZWxmLmxpbmUoeDEseTEseDIseTIsY29sb3IpCi0JCXNlbGYubGluZSh4Mix5Mix4Myx5Myxjb2xvcikKLQkJc2VsZi5saW5lKHgzLHkzLHgxLHkxLGNvbG9yKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB0aGUgZGF0YSBpbnRvIGEgZmV3IFB5dGhvbiBsaXN0cywgaGFzIGEgZHJhd2luZyBmdW5jdGlvbiBmb3IgbWFraW5nIGEgcGxvdCwgYW5kIGFkZHMgYSBzcGVjaWFsIG1ldGhvZCBmb3IgbWFraW5nIHRyaWFuZ2xlcy4gIE1ha2luZyBhIHBsb3QgaXMgbm93IGVhc3ksIGp1c3QgZG8gdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGZyb20gcGxvdG1lc2gucHkgaW1wb3J0ICoKLSZndDsmZ3Q7Jmd0OyBtZXNoID0gUGxvdE1lc2goIm1lc2giLDUsMCwzNSwyNSkKLSZndDsmZ3Q7Jmd0OyBtZXNoLnNob3coIm1lc2guZ2lmIikKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBwcm9kdWNlcyB0aGUgZm9sbG93aW5nIEdJRiBpbWFnZSA6PHA+Ci08cD48Y2VudGVyPjxpbWcgc3JjPSJjaDkuMi5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08cD4KLVdoZW4gcnVuIGludGVyYWN0aXZlbHksIHdlIGNhbiBhbHNvIHVzZSBzaW1wbGUgY29tbWFuZHMgdG8gem9vbSBpbiBhbmQgbW92ZSB0aGUgaW1hZ2UgYXJvdW5kLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IG1lc2ggPSBQbG90TWVzaCgibWVzaCIsNSwwLDM1LDI1KQotJmd0OyZndDsmZ3Q7IG1lc2guem9vbSgyMDApICAgICAgICAgICAgICAgICAgICMgRW5sYXJnZSBieSAyMDAlCi0mZ3Q7Jmd0OyZndDsgbWVzaC5sZWZ0KDUwKSAgICAgICAgICAgICAgICAgICAgIyBNb3ZlIGltYWdlIGhhbGYgYSBzY3JlZW4gdG8gbGVmdAotJmd0OyZndDsmZ3Q7IG1lc2guc2hvdygpCi0mZ3Q7Jmd0OyZndDsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hpbGUgYSBQeXRob24tb25seSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSB1bnN1aXRhYmxlIGZvciBodWdlIGRhdGFzZXRzLCBwZXJmb3JtYW5jZSBjcml0aWNhbCBvcGVyYXRpb25zIGNvdWxkIGJlIG1vdmVkIHRvIEMgYW5kIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBvdXIgSW1hZ2UgYmFzZSBjbGFzcy4gIDxwPgotPGEgbmFtZT0ibjQ4Ij48L2E+PGgzPiBGcm9tIEMgdG8gU1dJRyB0byBQeXRob248L2gzPgotVGhpcyBleGFtcGxlIGlsbHVzdHJhdGVzIGEgbnVtYmVyIG9mIHRoaW5ncyB0aGF0IGFyZSBwb3NzaWJsZSB3aXRoIFNXSUcgYW5kIFB5dGhvbi4gIEZpcnN0LCBpdCBpcyB1c3VhbGx5IHJlbGF0aXZlbHkgZWFzeSB0byBidWlsZCBhIFB5dGhvbiBpbnRlcmZhY2UgdG8gYW4gZXhpc3RpbmcgQyBsaWJyYXJ5LiAgICBXaXRoIGEgbGl0dGxlIGV4dHJhIHdvcmssIGl0IGlzIHBvc3NpYmxlIHRvIGltcHJvdmUgdGhlIGludGVyZmFjZSBieSBhZGRpbmcgYSBmZXcgc3VwcG9ydCBmdW5jdGlvbnMgc3VjaCBhcyBvdXIgUG9pbnQgIGV4dGVuc2lvbnMuICBGaW5hbGx5LCBvbmNlIGluIFB5dGhvbiwgaXQgaXMgcG9zc2libGUgdG8gZW5jYXBzdWxhdGUgQyBsaWJyYXJpZXMgaW4gbmV3IGtpbmRzIG9mIFB5dGhvbiBvYmplY3RzIGFuZCBjbGFzc2VzLiAgV2UgYnVpbHQgYSBzaW1wbGUgSW1hZ2UgYmFzZSBjbGFzcyBhbmQgdXNlZCBpdCB0byBwbG90IG1hdGhlbWF0aWNhbCBmdW5jdGlvbnMgYW5kIHVuc3RydWN0dXJlZCAyRCBtZXNoIGRhdGEtLS10d28gZW50aXJlbHkgZGlmZmVyZW50IHRhc2tzLCB5ZXQgZWFzaWx5IGFjY29tcGxpc2hlZCB3aXRoIGEgc21hbGwgYW1vdW50IG9mIFB5dGhvbiBjb2RlLiAgIElmIHdlIGxhdGVyIGRlY2lkZWQgdG8gdXNlIGEgZGlmZmVyZW50IEMgbGlicmFyeSBzdWNoIGFzIE9wZW5HTCwgd2UgY291bGQgd3JhcCBpdCBpbiBTV0lHLCBjaGFuZ2UgdGhlIEltYWdlIGJhc2UgY2xhc3MgYXBwcm9wcmlhdGVseSAsIGFuZCB1c2UgdGhlIGZ1bmN0aW9uIGFuZCBtZXNoIHBsb3R0aW5nIGV4YW1wbGVzICB3aXRob3V0IG1vZGlmaWNhdGlvbi4gICBJIHRoaW5rIHRoaXMgaXMgcHJldHR5IGNvb2wuPHA+Ci08YSBuYW1lPSJuOCI+PC9hPjxoMj4gUHV0dGluZyBpdCBhbGwgdG9nZXRoZXI8L2gyPgotRmluYWxseSwgbGV0J3MgY29tYmluZSBvdXIgaGVhdCBlcXVhdGlvbiBzb2x2ZXIgYW5kIGdyYXBoaWNzIG1vZHVsZSBpbnRvIGEgc2luZ2xlIGFwcGxpY2F0aW9uLiAgIFRvIGRvIHRoaXMsIHdlIGZpcnN0IG5lZWQgdG8ga25vdyBob3cgdG8gY29tYmluZSB0d28gZGlmZmVyZW50IFNXSUcgZ2VuZXJhdGVkIG1vZHVsZXMuIFdoZW4gZGlmZmVyZW50IFNXSUcgbW9kdWxlcyBuZWVkIHRvIGJlIGNvbWJpbmVkLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgdGhpbmdzIHlvdSBjYW4gZG8uPHA+Ci08YSBuYW1lPSJuNDkiPjwvYT48aDM+IE1lcmdpbmcgbW9kdWxlczwvaDM+Ci1Ud28gU1dJRyBtb2R1bGVzIGNhbiBiZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIG1vZHVsZSBpZiB5b3UgbWFrZSBhbiBpbnRlcmZhY2UgZmlsZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgcGFja2FnZQotJWluY2x1ZGUgcGRlLmkKLSVpbmNsdWRlIGdkLmkKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhpcyB3aWxsIGNvbWJpbmUgZXZlcnl0aGluZyBpbiBib3RoIGludGVyZmFjZSBmaWxlcyBpbnRvIGEgc2luZ2xlIHN1cGVyLW1vZHVsZSBjYWxsZWQgInBhY2thZ2UiLiBUaGUgYWR2YW50YWdlIHRvIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBpdCBpcyBleHRyZW1lbHkgcXVpY2sgYW5kIGVhc3kuICBUaGUgZGlzYWR2YW50YWdlIGlzIHRoYXQgdGhlIG1vZHVsZSBuYW1lcyBvZiAicGRlIiBhbmQgImdkIiB3aWxsIGJlIGxvc3QuICBJZiB5b3UgaGFkIGEgYnVuY2ggb2Ygc2NyaXB0cyB0aGF0IHJlbGllZCBvbiB0aG9zZSBuYW1lcywgdGhleSB3b3VsZCBubyBsb25nZXIgd29yay4gICAgVGh1cywgY29tYmluaW5nIG1vZHVsZXMgaW4gdGhpcyB3YXkgaXMgcHJvYmFibHkgb25seSBhIGdvb2QgaWRlYSBpZiB0aGUgbW9kdWxlcyBhcmUgY2xvc2VseSByZWxhdGVkLjxwPgotPGEgbmFtZT0ibjUwIj48L2E+PGgzPiBVc2luZyBkeW5hbWljIGxvYWRpbmc8L2gzPgotSWYgeW91ciBzeXN0ZW0gc3VwcG9ydHMgZHluYW1pYyBsb2FkaW5nLCB5b3UgY2FuIGJ1aWxkIGVhY2ggU1dJRyBtb2R1bGUgaW50byBhIHNlcGFyYXRlIGR5bmFtaWNhbGx5IGxvYWRhYmxlIG1vZHVsZSBhbmQgbG9hZCBlYWNoIG9uZSBpbmRpdmlkdWFsbHkgaW50byBQeXRob24uICBUaGlzIGlzIHRoZSBwcmVmZXJyZWQgYXBwcm9hY2ggaWYgaXQgaXMgc3VwcG9ydGVkIG9uIHlvdXIgc3lzdGVtLiAgIFNXSUcgd3JhcHBlciBmaWxlcyBkZWNsYXJlIHZpcnR1YWxseSBldmVyeXRoaW5nIGFzICJzdGF0aWMiIHNvIHVzaW5nIGR5bmFtaWMgbG9hZGluZyB3aXRoIG11bHRpcGxlIFNXSUcgZ2VuZXJhdGVkIG1vZHVsZXMgd2lsbCBub3QgdXN1YWxseSBjYXVzZSBhbnkgbmFtZXNwYWNlIGNsYXNoZXMuICA8cD4KLTxhIG5hbWU9Im41MSI+PC9hPjxoMz4gVXNlIHN0YXRpYyBsaW5raW5nPC9oMz4KLUFzIGFuIGFsdGVybmF0aXZlIHRvIGR5bmFtaWMgbG9hZGluZywgeW91IGNhbiB1c2UgYSBzcGVjaWFsIGZvcm0gb2YgdGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgcGFja2FnZSwgcGRlYywgZ2RjCi0laW5jbHVkZSBlbWJlZC5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgd2lsbCBidWlsZCBhIHN0YXRpYyB2ZXJzaW9uIG9mIFB5dGhvbiB3aXRoIDMgQyBleHRlbnNpb24gbW9kdWxlcyBhZGRlZCAoPHR0PnBhY2thZ2U8L3R0PiwgPHR0PnBkZWM8L3R0PiwgYW5kIDx0dD5nZGM8L3R0PikuICBXaGVuIHVzaW5nIHRoaXMgdGVjaG5pcXVlLCB0aGUgbmFtZXMgb2YgdGhlIG1vZHVsZXMgcmVmZXIgdG8gdGhlIGxvdy1sZXZlbCBTV0lHIGdlbmVyYXRlZCBDL0MrKyBtb2R1bGVzLiAgU2luY2Ugc2hhZG93IGNsYXNzZXMgYXJlIGJlaW5nIHVzZWQsIHRoZXNlIG1vZHVsZXMgbXVzdCBoYXZlIGFuIGV4dHJhIGBjJyBhcHBlbmRlZCB0byB0aGUgbmFtZSAodGh1cywgInBkZWMiIGFuZCAiZ2RjIiBpbnN0ZWFkIG9mICJwZGUiIGFuZCAiZ2QiKS4gICBUaGUgZXh0cmEgbW9kdWxlcyBzcGVjaWZpZWQgd2l0aCB0aGUgPHR0PiVtb2R1bGVzPC90dD4gZGlyZWN0aXZlIGRvIG5vdCBuZWNlc3NhcmlseSBoYXZlIHRvIGJlIFNXSUctZ2VuZXJhdGVkIG1vZHVsZXMuIEluIHByYWN0aWNlLCBhbG1vc3QgYW55IGtpbmQgb2YgUHl0aG9uIG1vZHVsZSBjYW4gYmUgbGlzdGVkIGhlcmUuICBJdCBzaG91bGQgYWxzbyBiZSBub3RlZCB0aGF0IGV4dHJhIG1vZHVsZXMgbmFtZXMgYXJlIGNvbXBsZXRlbHkgaWdub3JlZCBpZiB0aGUgPHR0PmVtYmVkLmkgPC90dD5saWJyYXJ5IGZpbGUgaXMgbm90IHVzZWQuPHA+Ci08YSBuYW1lPSJuNTIiPjwvYT48aDM+IEJ1aWxkaW5nIGxhcmdlICBtdWx0aS1tb2R1bGUgc3lzdGVtczwvaDM+Ci1CeSBkZWZhdWx0LCBTV0lHIGluY2x1ZGVzIHRoZSBDIGNvZGUgZm9yIHRoZSBTV0lHIHR5cGUtY2hlY2tlciBhbmQgdmFyaWFibGUgbGlua2luZyBpbnRvIGV2ZXJ5IG1vZHVsZS4gIEhvd2V2ZXIsIHdoZW4sIGJ1aWxkaW5nIHN5c3RlbXMgaW52b2x2aW5nIGxhcmdlIG51bWJlcnMgb2YgU1dJRyBtb2R1bGVzLCAgY29tbW9uIGNvZGUgc3VjaCBhcyB0aGUgU1dJRyBwb2ludGVyIHR5cGUtY2hlY2tlciBhbmQgdmFyaWFibGUgbGlua2luZyBleHRlbnNpb25zIGNhbiBiZSBzaGFyZWQgaWYgeW91IHJ1biBTV0lHIHdpdGggdGhlIDx0dD4tYzwvdHQ+IG9wdGlvbi4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLWMgLXB5dGhvbiBncmFwaGljcy5pCi0lIHN3aWcgLWMgLXB5dGhvbiBuZXR3b3JrLmkKLSUgc3dpZyAtYyAtcHl0aG9uIGFuYWx5c2lzLmkKLSUgc3dpZyAtYyAtcHl0aG9uIG1hdGguaQotJSBnY2MgLWMgZ3JhcGhpY3Nfd3JhcC5jIG5ldHdvcmtfd3JhcC5jIGFuYWx5c2lzX3dyYXAuYyBtYXRoX3dyYXAuYwotJSBsZCAtc2hhcmVkIGdyYXBoaWNzX3dyYXAubyAtbHN3aWdweSAtbyBncmFwaGljc21vZHVsZS5zbyAKLSUgbGQgLXNoYXJlZCBuZXR3b3JrX3dyYXAubyAtbHN3aWdweSAtbyBuZXR3b3JrbW9kdWxlLnNvIAotJSBsZCAtc2hhcmVkIGFuYWx5c2lzX3dyYXAubyAtbHN3aWdweSAtbyBhbmFseXNpc21vZHVsZS5zbyAKLSUgbGQgLXNoYXJlZCBtYXRoX3dyYXAubyAtbyAtbHN3aWdweSBteW1hdGhtb2R1bGUuc28gCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTx0dD5zd2lncHk8L3R0PiBpcyBhIHNwZWNpYWwgcHVycG9zZSBsaWJyYXJ5IHRoYXQgY29udGFpbnMgdGhlIFNXSUcgcG9pbnRlciB0eXBlIGNoZWNrZXIgYW5kIG90aGVyIHN1cHBvcnQgY29kZSAoc2VlIHRoZSA8dHQ+TWlzYzwvdHQ+IHN1YmRpcmVjdG9yeSBvZiB0aGUgU1dJRyBkaXN0cmlidXRpb24pLiBXaGVuIHVzZWQgaW4gdGhpcyBtYW5uZXIsIHRoZSBzYW1lIHN1cHBvcnQgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGFsbCBvZiB0aGUgbW9kdWxlcy4gICBUaGUgPHR0PnN3aWdweTwvdHQ+IGxpYnJhcnkgY2FuIGFsc28gYmUgYXBwbGllZCB3aGVuIHN0YXRpYyBsaW5raW5nIGlzIGJlaW5nIHVzZWQuICBTZWUgdGhlIEFkdmFuY2VkIFRvcGljcyBjaGFwdGVyIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVzaW5nIFNXSUcgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLjxwPgotPGEgbmFtZT0ibjUzIj48L2E+PGgzPiBBIGNvbXBsZXRlIGFwcGxpY2F0aW9uPC9oMz4KLVRoZSBmb2xsb3dpbmcgUHl0aG9uIHNjcmlwdCBzaG93cyBhbiBhcHBsaWNhdGlvbiB0aGF0IGNvbWJpbmVzIG91ciBDKysgaGVhdCBlcXVhdGlvbiBzb2x2ZXIsIG91ciBnZCBsaWJyYXJ5LCBhbmQgb3VyIEltYWdlIGJhc2UgY2xhc3MgdGhhdCB3ZSBkZXZlbG9wZWQuIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgU29sdmUgdGhlIGhlYXQgZXF1YXRpb24uCi0jIE1ha2UgYSBzZXJpZXMgb2YgZGF0YSBmaWxlcwotIyBNYWtlIGEgbW92aWUgb2YgR0lGIGltYWdlcwotCi1mcm9tIHBkZSBpbXBvcnQgKgotZnJvbSBpbWFnZSBpbXBvcnQgKgotaW1wb3J0IHN0cmluZwotCi0jIEltYWdlIGNsYXNzCi1jbGFzcyBIZWF0SW1nKEltYWdlKToKLQlkZWYgX19pbml0X18oc2VsZixoLHdpZHRoPTMwMCxoZWlnaHQ9MzAwKToKLQkJSW1hZ2UuX19pbml0X18oc2VsZix3aWR0aCxoZWlnaHQsMC4wLDAuMCwxLjAsMS4wKQotCQlzZWxmLmggPSBoCi0JCSMgQ3JlYXRlIGEgZ3JleXNjYWxlIGNvbG9ybWFwCi0JCWNtYXAgPSBbXQotCQlmb3IgaSBpbiByYW5nZSgwLDI1NSk6Ci0JCQljbWFwLmFwcGVuZCgoaSxpLGkpKQotCQlzZWxmLmNvbG9ybWFwKGNtYXApCi0JCXNlbGYuY21pbiA9IDAuMAotCQlzZWxmLmNtYXggPSAxLjAKLQkJc2VsZi5pbWdubyA9IDEKLQlkZWYgZHJhdyhzZWxmKToKLQkJc2VsZi5jbGVhcigwKQotCQlkeCA9IDEuMC8oc2VsZi5oLmdyaWQueHBvaW50cy0yKQotCQlkeSA9IDEuMC8oc2VsZi5oLmdyaWQueXBvaW50cy0yKQotCQlpID0gMQotCQl4ID0gMC4wCi0JCXdoaWxlIGkgJmx0OyBzZWxmLmguZ3JpZC54cG9pbnRzOgotCQkJaiA9IDE7Ci0JCQl5ID0gMC4wCi0JCQl3aGlsZSBqICZsdDsgc2VsZi5oLmdyaWQueXBvaW50czoKLQkJCQljID0gaW50KChzZWxmLmguZ3JpZFtpXVtqXS1zZWxmLmNtaW4pLyhzZWxmLmNtYXgtIAotCQkJCQkgc2VsZi5jbWluKSoyNTUpCi0JCQkJc2VsZi5zb2xpZGJveCh4LHkrZHkseCtkeCx5LGMpCi0JCQkJaiA9IGogKyAxCi0JCQkJeSA9IHkgKyBkeQotCQkJaSA9IGkgKyAxCi0JCQl4ID0geCArIGR4Ci0JCXNlbGYubmFtZSA9ICJpbWFnZSIrc3RyaW5nLnpmaWxsKHNlbGYuaW1nbm8sNCkrIi5naWYiCi0JCXNlbGYuaW1nbm8gPSBzZWxmLmltZ25vKzEKLQotIyBTZXQgdXAgYW4gaW5pdGlhbCBjb25kaXRpb24KLWRlZiBpbml0Y29uZChoKToKLQloLnNldF90ZW1wKDAuMCkKLQlueCA9IGguZ3JpZC54cG9pbnRzCi0JZm9yIGkgaW4gcmFuZ2UoMCxueCk6Ci0JCWguZ3JpZFtpXVswXSA9IDEuMAotCi0jIFNldCB1cCBhIHByb2JsZW0gYW5kIHJ1biBpdAotaCA9IEhlYXQyZCg1MCw1MCkKLQotIyBNYWtlIGFuIGltYWdlIG9iamVjdAotaW1nID0gSGVhdEltZyhoKQotCi1pbml0Y29uZChoKQotZmlsZW5vID0gMQotCi0jIFJ1biBpdAotZm9yIGkgaW4gcmFuZ2UoMCwyNSk6Ci0JaC5zb2x2ZSgxMDApCi0JaC5kdW1wKCJEYXQiK3N0cihmaWxlbm8pKQotCWltZy5zaG93KCkKLQlwcmludCAidGltZSA9ICIsIGgudGltZQotCWZpbGVubyA9IGZpbGVubysxCi0KLSMgQ2FsY3VsYXRlIGF2ZXJhZ2UgdGVtcGVyYXR1cmUgYW5kIGV4aXQKLXN1bSA9IDAuMAotZm9yIGkgaW4gcmFuZ2UoMCxoLmdyaWQueHBvaW50cyk6Ci0JZm9yIGogaW4gcmFuZ2UoMCxoLmdyaWQueXBvaW50cyk6Ci0JCXN1bSA9IHN1bSArIGguZ3JpZFtpXVtqXQotYXZnID0gc3VtLyhoLmdyaWQueHBvaW50cypoLmdyaWQueXBvaW50cykKLXByaW50ICJBdmcgdGVtcGVyYXR1cmUgPSAiLGF2ZwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIHJ1biwgd2Ugbm93IGdldCBhIGNvbGxlY3Rpb24gb2YgZGF0YWZpbGVzIGFuZCBzZXJpZXMgb2YgaW1hZ2VzIGxpa2UgdGhpcyA6PHA+Ci08cD48Y2VudGVyPjxpbWcgc3JjPSJjaDkuMy5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08cD4KLVRodXMsIHdlIGhhdmUgYSBzaW1wbGUgcGh5c2ljcyBhcHBsaWNhdGlvbiB0aGF0IG9ubHkgdGFrZXMgYWJvdXQgMSBwYWdlIG9mIFB5dGhvbiBjb2RlLCBydW5zIGEgc2ltdWxhdGlvbiwgY3JlYXRlcyBkYXRhIGZpbGVzLCBhbmQgYSBtb3ZpZSBvZiBpbWFnZXMuICBXZSBjYW4gZWFzaWx5IGNoYW5nZSBhbnkgYXNwZWN0IG9mIHRoZSBzaW11bGF0aW9uLCBpbnRlcmFjdGl2ZWx5IHF1ZXJ5IHZhcmlhYmxlcyBhbmQgZXhhbWluZSBkYXRhLiAgTmV3IHByb2NlZHVyZXMgY2FuIGJlIHdyaXR0ZW4gYW5kIHRlc3RlZCBpbiBQeXRob24gYW5kIGxhdGVyIGltcGxlbWVudGVkIGluIEMrKyBpZiBuZWVkZWQuICAgTW9yZSBpbXBvcnRhbnRseSwgd2UgaGF2ZSBhbiBhcHBsaWNhdGlvbiB0aGF0IGlzIGFjdHVhbGx5IGZ1biB0byB1c2UgYW5kIG1vZGlmeSAod2VsbCwgYXQgbGVhc3QgSSB0aGluayBzbykuPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMj4gRXhjZXB0aW9uIGhhbmRsaW5nIDwvaDI+Ci1UaGUgU1dJRyA8dHQ+JWV4Y2VwdDwvdHQ+IGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSB1c2VyLWRlZmluYWJsZSBleGNlcHRpb24gaGFuZGxlciBpbiBjaGFyZ2Ugb2YgY29udmVydGluZyBleGNlcHRpb25zIGluIHlvdXIgQy9DKysgcHJvZ3JhbSBpbnRvIFB5dGhvbiBleGNlcHRpb25zLiAgVGhlIGNoYXB0ZXIgb24gZXhjZXB0aW9uIGhhbmRsaW5nIGNvbnRhaW5zIG1vcmUgZGV0YWlscywgYnV0IHN1cHBvc2UgeW91IGhhdmUgYSBDKysgY2xhc3MgbGlrZSB0aGUgZm9sbG93aW5nIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1jbGFzcyBSYW5nZUVycm9yIHt9OyAgIC8vIFVzZWQgZm9yIGFuIGV4Y2VwdGlvbgotCi1jbGFzcyBEb3VibGVBcnJheSB7Ci0gIHByaXZhdGU6Ci0gICAgaW50IG47Ci0gICAgZG91YmxlICpwdHI7Ci0gIHB1YmxpYzoKLSAgICAvLyBDcmVhdGUgYSBuZXcgYXJyYXkgb2YgZml4ZWQgc2l6ZQotICAgIERvdWJsZUFycmF5KGludCBzaXplKSB7Ci0gICAgICBwdHIgPSBuZXcgZG91YmxlW3NpemVdOwotICAgICAgbiA9IHNpemU7Ci0gICAgfQotICAgIC8vIERlc3Ryb3kgYW4gYXJyYXkKLSAgICB+RG91YmxlQXJyYXkoKSB7Ci0gICAgICAgZGVsZXRlIHB0cjsKLSAgICB9Ci0gICAgLy8gUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5Ci0gICAgaW50ICAgbGVuZ3RoKCkgewotICAgICAgcmV0dXJuIG47Ci0gICAgfQotCi0gICAgLy8gR2V0IGFuIGl0ZW0gZnJvbSB0aGUgYXJyYXkgYW5kIHBlcmZvcm0gYm91bmRzIGNoZWNraW5nLgotICAgIGRvdWJsZSBnZXRpdGVtKGludCBpKSB7Ci0gICAgICBpZiAoKGkgJmd0Oz0gMCkgJmFtcDsmYW1wOyAoaSAmbHQ7IG4pKQotICAgICAgICByZXR1cm4gcHRyW2ldOwotICAgICAgZWxzZQotICAgICAgICB0aHJvdyBSYW5nZUVycm9yKCk7Ci0gICAgfQotCi0gICAgLy8gU2V0IGFuIGl0ZW0gaW4gdGhlIGFycmF5IGFuZCBwZXJmb3JtIGJvdW5kcyBjaGVja2luZy4KLSAgICB2b2lkIHNldGl0ZW0oaW50IGksIGRvdWJsZSB2YWwpIHsKLSAgICAgIGlmICgoaSAmZ3Q7PSAwKSAmYW1wOyZhbXA7IChpICZsdDsgbikpCi0gICAgICAgIHB0cltpXSA9IHZhbDsKLSAgICAgIGVsc2UgewotICAgICAgICB0aHJvdyBSYW5nZUVycm9yKCk7Ci0gICAgICB9Ci0gICAgfQotICB9OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgZnVuY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNsYXNzIGNhbiB0aHJvdyBhIHJhbmdlIGV4Y2VwdGlvbiBmb3IgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MuICAgV2UgY2FuIGNhdGNoIHRoaXMgaW4gb3VyIFB5dGhvbiBleHRlbnNpb24gYnkgc3BlY2lmeWluZyB0aGUgZm9sbG93aW5nIGluIGFuIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHB5dGhvbikgewotICB0cnkgewotICAgICRmdW5jdGlvbgotICB9Ci0gIGNhdGNoIChSYW5nZUVycm9yKSB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0luZGV4RXJyb3IsImluZGV4IG91dC1vZi1ib3VuZHMiKTsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHRoZSBDKysgY2xhc3MgdGhyb3dzIGEgUmFuZ2VFcnJvciBleGNlcHRpb24sIG91ciB3cmFwcGVyIGZ1bmN0aW9ucyB3aWxsIGNhdGNoIGl0LCB0dXJuIGl0IGludG8gYSBQeXRob24gZXhjZXB0aW9uLCBhbmQgYWxsb3cgYSBncmFjZWZ1bCBkZWF0aCBhcyBvcHBvc2VkIHRvIGp1c3QgaGF2aW5nIHNvbWUgc29ydCBvZiBteXN0ZXJpb3VzIHByb2dyYW0gY3Jhc2guICAgICBTaW5jZSBTV0lHJ3MgZXhjZXB0aW9uIGhhbmRsaW5nIGlzIHVzZXItZGVmaW5hYmxlLCB3ZSBhcmUgbm90IGxpbWl0ZWQgdG8gQysrIGV4Y2VwdGlvbiBoYW5kbGluZy4gICBQbGVhc2Ugc2VlIHRoZSBjaGFwdGVyIG9uIGV4Y2VwdGlvbiBoYW5kbGluZyBmb3IgbW9yZSBkZXRhaWxzIGFuZCB1c2luZyB0aGUgPHR0PmV4Y2VwdGlvbi5pPC90dD4gbGlicmFyeSBmb3Igd3JpdGluZyBsYW5ndWFnZS1pbmRlcGVuZGVudCBleGNlcHRpb24gaGFuZGxlcnMuPHA+Ci08cD4KLVB5dGhvbiBleGNlcHRpb25zIGNhbiBiZSByYWlzZWQgdXNpbmcgdGhlIDx0dD5QeUVycl9TZXRTdHJpbmcoKTwvdHQ+IGZ1bmN0aW9uIGFzIHNob3duIGFib3ZlLiAgVGhlIGZvbGxvd2luZyB0YWJsZSBwcm92aWRlcyBhIGxpc3Qgb2YgdGhlIGRpZmZlcmVudCBQeXRob24gZXhjZXB0aW9ucyBhdmFpbGFibGUuPHA+Ci08Y2VudGVyPjxpbWcgc3JjPSJjaDkudGFibGUuMS5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDI+IFJlbWFwcGluZyBDIGRhdGF0eXBlcyB3aXRoIHR5cGVtYXBzPC9oMj4KLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgaG93IFNXSUcncyB0cmVhdG1lbnQgb2YgdmFyaW91cyBDL0MrKyBkYXRhdHlwZXMgY2FuIGJlIHJlbWFwcGVkIHVzaW5nIHRoZSBTV0lHIDx0dD4ldHlwZW1hcDwvdHQ+IGRpcmVjdGl2ZS4gICBXaGlsZSBub3QgcmVxdWlyZWQsIHRoaXMgc2VjdGlvbiBhc3N1bWVzIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCAgUHl0aG9uJ3MgQyBBUEkuICAgVGhlIHJlYWRlciBpcyBhZHZpc2VkIHRvIGNvbnN1bHQgIHRoZSBQeXRob24gcmVmZXJlbmNlIG1hbnVhbCBvciBvbmUgb2YgdGhlIGJvb2tzIG9uIFB5dGhvbi4gIEEgZ2xhbmNlIGF0IHRoZSBjaGFwdGVyIG9uIFNXSUcgdHlwZW1hcHMgd2lsbCBhbHNvIGJlIHVzZWZ1bC4gIDxwPgotPGEgbmFtZT0ibjU0Ij48L2E+PGgzPiBXaGF0IGlzIGEgdHlwZW1hcD88L2gzPgotQSB0eXBlbWFwIGlzIG1lY2hhbmlzbSBieSB3aGljaCBTV0lHJ3MgcHJvY2Vzc2luZyBvZiBhIHBhcnRpY3VsYXIgQyBkYXRhdHlwZSBjYW4gYmUgb3ZlcnJpZGRlbi4gICBBIHNpbXBsZSB0eXBlbWFwIG1pZ2h0IGxvb2sgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLQotJXR5cGVtYXAocHl0aG9uLGluKSBpbnQgewotCSR0YXJnZXQgPSAoaW50KSBQeUxvbmdfQXNMb25nKCRzb3VyY2UpOwotCXByaW50ZigiUmVjZWl2ZWQgYW4gaW50ZWdlciA6ICVkXG4iLCR0YXJnZXQpOwotfQotZXh0ZXJuIGludCBmYWN0KGludCBuKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVHlwZW1hcHMgcmVxdWlyZSBhIGxhbmd1YWdlICBuYW1lLCAgbWV0aG9kIG5hbWUsIGRhdGF0eXBlLCBhbmQgY29udmVyc2lvbiBjb2RlLiAgRm9yIFB5dGhvbiwgInB5dGhvbiIgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGxhbmd1YWdlIG5hbWUuIFRoZSAiaW4iIG1ldGhvZCBpbiB0aGlzIGV4YW1wbGUgcmVmZXJzIHRvIGFuIGlucHV0IGFyZ3VtZW50IG9mIGEgZnVuY3Rpb24uIFRoZSBkYXRhdHlwZSBgaW50JyB0ZWxscyBTV0lHIHRoYXQgd2UgYXJlIHJlbWFwcGluZyBpbnRlZ2Vycy4gIFRoZSBzdXBwbGllZCBjb2RlIGlzIHVzZWQgdG8gY29udmVydCBmcm9tIGEgPHR0PlB5T2JqZWN0ICo8L3R0PiB0byB0aGUgY29ycmVzcG9uZGluZyBDIGRhdGF0eXBlLiAgV2l0aGluIHRoZSBzdXBwb3J0aW5nIEMgY29kZSwgdGhlIHZhcmlhYmxlIDx0dD4kc291cmNlPC90dD4gY29udGFpbnMgdGhlIHNvdXJjZSBkYXRhICh0aGUgPHR0PlB5T2JqZWN0PC90dD4gaW4gdGhpcyBjYXNlKSBhbmQgPHR0PiR0YXJnZXQ8L3R0PiBjb250YWlucyB0aGUgZGVzdGluYXRpb24gb2YgYSBjb252ZXJzaW9uLiAgPHA+Ci08cD4KLVdoZW4gdGhpcyBleGFtcGxlIGlzIGNvbXBpbGVkIGludG8gYSBQeXRob24gbW9kdWxlLCBpdCB3aWxsIG9wZXJhdGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGZyb20gZXhhbXBsZSBpbXBvcnQgKgotJmd0OyZndDsmZ3Q7IGZhY3QoNikKLVJlY2VpdmVkIGFuIGludGVnZXIgOiA2Ci03MjAKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQSBmdWxsIGRpc2N1c3Npb24gb2YgdHlwZW1hcHMgY2FuIGJlIGZvdW5kIGluIHRoZSBtYWluIFNXSUcgdXNlcnMgcmVmZXJlbmNlLiAgV2Ugd2lsbCBwcmltYXJpbHkgYmUgY29uY2VybmVkIHdpdGggUHl0aG9uIHR5cGVtYXBzIGhlcmUuPHA+Ci08YSBuYW1lPSJuNTUiPjwvYT48aDM+IFB5dGhvbiB0eXBlbWFwczwvaDM+Ci1UaGUgZm9sbG93aW5nIHR5cGVtYXAgbWV0aG9kcyBhcmUgYXZhaWxhYmxlIHRvIFB5dGhvbiBtb2R1bGVzIDo8cD4KLTxwPgotPHR0PiV0eXBlbWFwKHB5dGhvbixpbikJPC90dD5Db252ZXJ0cyBQeXRob24gb2JqZWN0cyB0byBpbnB1dCBmdW5jdGlvbiBhcmd1bWVudHM8cD4KLTx0dD4ldHlwZW1hcChweXRob24sb3V0KTwvdHQ+CUNvbnZlcnRzIHJldHVybiB2YWx1ZSBvZiBhIEMgZnVuY3Rpb24gdG8gYSBQeXRob24gb2JqZWN0PHA+Ci08dHQ+JXR5cGVtYXAocHl0aG9uLHZhcmluKQk8L3R0PkFzc2lnbnMgYSBnbG9iYWwgdmFyaWFibGUgZnJvbSBhIFB5dGhvbiBvYmplY3Q8cD4KLTx0dD4ldHlwZW1hcChweXRob24sdmFyb3V0KTwvdHQ+CVJldHVybnMgYSBnbG9iYWwgdmFyaWFibGUgYXMgYSBQeXRob24gb2JqZWN0PHA+Ci08dHQ+JXR5cGVtYXAocHl0aG9uLGZyZWVhcmcpPC90dD4JQ2xlYW5zIHVwIGEgZnVuY3Rpb24gYXJndW1lbnQgKGlmIG5lY2Vzc2FyeSk8cD4KLTx0dD4ldHlwZW1hcChweXRob24sYXJnb3V0KTwvdHQ+CU91dHB1dCBhcmd1bWVudCBwcm9jZXNzaW5nPHA+Ci08dHQ+JXR5cGVtYXAocHl0aG9uLHJldCk8L3R0PglDbGVhbnVwIG9mIGZ1bmN0aW9uIHJldHVybiB2YWx1ZXM8cD4KLTx0dD4ldHlwZW1hcChweXRob24sY29uc3QpPC90dD4JQ3JlYXRpb24gb2YgUHl0aG9uIGNvbnN0YW50czxwPgotPHR0PiV0eXBlbWFwKG1lbWJlcmluKTwvdHQ+CVNldHRpbmcgb2YgQysrIG1lbWJlciBkYXRhPHA+Ci08dHQ+JXR5cGVtYXAobWVtYmVyb3V0KTwvdHQ+CVJldHVybiBvZiBDKysgbWVtYmVyIGRhdGE8cD4KLTx0dD4ldHlwZW1hcChweXRob24sY2hlY2spPC90dD4JQ2hlY2tzIGZ1bmN0aW9uIGlucHV0IHZhbHVlcy48cD4KLTxhIG5hbWU9Im41NiI+PC9hPjxoMz4gVHlwZW1hcCB2YXJpYWJsZXM8L2gzPgotVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgbWF5IGJlIHVzZWQgd2l0aGluIHRoZSBDIGNvZGUgdXNlZCBpbiBhIHR5cGVtYXA6PHA+Ci08cD4KLTx0dD4kc291cmNlPC90dD4JU291cmNlIHZhbHVlIG9mIGEgY29udmVyc2lvbjxwPgotPHR0PiR0YXJnZXQ8L3R0PglUYXJnZXQgb2YgY29udmVyc2lvbiAod2hlcmUgdGhlIHJlc3VsdCBzaG91bGQgYmUgc3RvcmVkKTxwPgotPHR0PiR0eXBlPC90dD4JQyBkYXRhdHlwZSBiZWluZyByZW1hcHBlZDxwPgotPHR0PiRtYW5nbGU8L3R0PglNYW5nbGVkIHZlcnNpb24gb2YgZGF0YSAodXNlZCBmb3IgcG9pbnRlciB0eXBlLWNoZWNraW5nKTxwPgotPHR0PiR2YWx1ZTwvdHQ+CVZhbHVlIG9mIGEgY29uc3RhbnQgKGNvbnN0IHR5cGVtYXAgb25seSk8cD4KLTxhIG5hbWU9Im41NyI+PC9hPjxoMz4gTmFtZSBiYXNlZCB0eXBlIGNvbnZlcnNpb248L2gzPgotVHlwZW1hcHMgYXJlIGJhc2VkIGJvdGggb24gdGhlIGRhdGF0eXBlIGFuZCBhbiBvcHRpb25hbCBuYW1lIGF0dGFjaGVkIHRvIGEgZGF0YXR5cGUuICAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZm9vCi0KLS8vIFRoaXMgdHlwZW1hcCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGNoYXIgKiogZnVuY3Rpb24gYXJndW1lbnRzCi0ldHlwZW1hcChweXRob24saW4pIGNoYXIgKiogeyAuLi4gfQotCi0vLyBUaGlzIHR5cGVtYXAgaXMgYXBwbGllZCBvbmx5IHRvIGNoYXIgKiogYXJndW1lbnRzIG5hbWVkIGBhcmd2JwotJXR5cGVtYXAocHl0aG9uLGluKSBjaGFyICoqYXJndiB7IC4uLiB9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgZXhhbXBsZSwgdHdvIHR5cGVtYXBzIGFyZSBhcHBsaWVkIHRvIHRoZSA8dHQ+Y2hhciAqKjwvdHQ+IGRhdGF0eXBlLiAgSG93ZXZlciwgdGhlIHNlY29uZCB0eXBlbWFwIHdpbGwgb25seSBiZSBhcHBsaWVkIHRvIGFyZ3VtZW50cyBuYW1lZCBgPHR0PmFyZ3Y8L3R0PicuICBBIG5hbWVkIHR5cGVtYXAgd2lsbCBhbHdheXMgb3ZlcnJpZGUgYW4gdW5uYW1lZCB0eXBlbWFwLjxwPgotPHA+Ci1EdWUgdG8gdGhlIG5hbWUtYmFzZWQgbmF0dXJlIG9mIHR5cGVtYXBzLCBpdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHR5cGVtYXBzIGFyZSBpbmRlcGVuZGVudCBvZiB0eXBlZGVmIGRlY2xhcmF0aW9ucy4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChweXRob24sIGluKSBkb3VibGUgewotCS4uLiBnZXQgYSBkb3VibGUgLi4uCi19Ci12b2lkIGZvbyhkb3VibGUpOyAgICAgICAgICAgIC8vIFVzZXMgdGhlIGFib3ZlIHR5cGVtYXAKLXR5cGVkZWYgZG91YmxlIFJlYWw7Ci12b2lkIGJhcihSZWFsKTsgICAgICAgICAgICAgIC8vIERvZXMgbm90IHVzZSB0aGUgYWJvdmUgdHlwZW1hcCAoZG91YmxlICE9IFJlYWwpCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRvIGdldCBhcm91bmQgdGhpcyBwcm9ibGVtLCB0aGUgPHR0PiVhcHBseTwvdHQ+IGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0ldHlwZW1hcChweXRob24saW4pIGRvdWJsZSB7Ci0JLi4uIGdldCBhIGRvdWJsZSAuLi4KLX0KLXZvaWQgZm9vKGRvdWJsZSk7Ci0KLXR5cGVkZWYgZG91YmxlIFJlYWw7ICAgICAgICAgLy8gVXNlcyB0eXBlbWFwCi0lYXBwbHkgZG91YmxlIHsgUmVhbCB9OyAgICAgIC8vIEFwcGxpZXMgYWxsICJkb3VibGUiIHR5cGVtYXBzIHRvIFJlYWwuCi12b2lkIGJhcihSZWFsKTsgICAgICAgICAgICAgIC8vIE5vdyB1c2VzIHRoZSBzYW1lIHR5cGVtYXAuCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNTgiPjwvYT48aDM+IENvbnZlcnRpbmcgIFB5dGhvbiBsaXN0IHRvIGEgY2hhciAqKiA8L2gzPgotQSBjb21tb24gcHJvYmxlbSBpbiBtYW55IEMgcHJvZ3JhbXMgaXMgdGhlIHByb2Nlc3Npbmcgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cywgd2hpY2ggYXJlIHVzdWFsbHkgcGFzc2VkIGluIGFuIGFycmF5IG9mIE5VTEwgdGVybWluYXRlZCBzdHJpbmdzLiAgIFRoZSBmb2xsb3dpbmcgU1dJRyBpbnRlcmZhY2UgZmlsZSBhbGxvd3MgYSBQeXRob24gbGlzdCBvYmplY3QgdG8gYmUgdXNlZCBhcyBhIDx0dD5jaGFyICoqPC90dD4gb2JqZWN0LjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgYXJndgotCi0vLyBUaGlzIHRlbGxzIFNXSUcgdG8gdHJlYXQgY2hhciAqKiBhcyBhIHNwZWNpYWwgY2FzZQotJXR5cGVtYXAocHl0aG9uLGluKSBjaGFyICoqIHsKLSAgLyogQ2hlY2sgaWYgaXMgYSBsaXN0ICovCi0gIGlmIChQeUxpc3RfQ2hlY2soJHNvdXJjZSkpIHsKLSAgICBpbnQgc2l6ZSA9IFB5TGlzdF9TaXplKCRzb3VyY2UpOwotICAgIGludCBpID0gMDsKLSAgICAkdGFyZ2V0ID0gKGNoYXIgKiopIG1hbGxvYygoc2l6ZSsxKSpzaXplb2YoY2hhciAqKSk7Ci0gICAgZm9yIChpID0gMDsgaSAmbHQ7IHNpemU7IGkrKykgewotICAgICAgUHlPYmplY3QgKm8gPSBQeUxpc3RfR2V0SXRlbSgkc291cmNlLGkpOwotICAgICAgaWYgKFB5U3RyaW5nX0NoZWNrKG8pKQotCSR0YXJnZXRbaV0gPSBQeVN0cmluZ19Bc1N0cmluZyhQeUxpc3RfR2V0SXRlbSgkc291cmNlLGkpKTsKLSAgICAgIGVsc2UgewotCVB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsImxpc3QgbXVzdCBjb250YWluIHN0cmluZ3MiKTsKLQlmcmVlKCR0YXJnZXQpOwotCXJldHVybiBOVUxMOwotICAgICAgfQotICAgIH0KLSAgICAkdGFyZ2V0W2ldID0gMDsKLSAgfSBlbHNlIHsKLSAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCJub3QgYSBsaXN0Iik7Ci0gICAgcmV0dXJuIE5VTEw7Ci0gIH0KLX0KLQotLy8gVGhpcyBjbGVhbnMgdXAgdGhlIGNoYXIgKiogYXJyYXkgd2UgbWFsbG9jJ2QgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsCi0ldHlwZW1hcChweXRob24sZnJlZWFyZykgY2hhciAqKiB7Ci0gIGZyZWUoKGNoYXIgKikgJHNvdXJjZSk7Ci19Ci0KLS8vIFRoaXMgYWxsb3dzIGEgQyBmdW5jdGlvbiB0byByZXR1cm4gYSBjaGFyICoqIGFzIGEgUHl0aG9uIGxpc3QKLSV0eXBlbWFwKHB5dGhvbixvdXQpIGNoYXIgKiogewotICBpbnQgbGVuLGk7Ci0gIGxlbiA9IDA7Ci0gIHdoaWxlICgkc291cmNlW2xlbl0pIGxlbisrOwotICAkdGFyZ2V0ID0gUHlMaXN0X05ldyhsZW4pOwotICBmb3IgKGkgPSAwOyBpICZsdDsgbGVuOyBpKyspIHsKLSAgICBQeUxpc3RfU2V0SXRlbSgkdGFyZ2V0LGksUHlTdHJpbmdfRnJvbVN0cmluZygkc291cmNlW2ldKSk7Ci0gIH0KLX0KLQotLy8gTm93IGEgZmV3IHRlc3QgZnVuY3Rpb25zCi0laW5saW5lICV7Ci1pbnQgcHJpbnRfYXJncyhjaGFyICoqYXJndikgewotICAgIGludCBpID0gMDsKLSAgICB3aGlsZSAoYXJndltpXSkgewotICAgICAgICAgcHJpbnRmKCJhcmd2WyVkXSA9ICVzXG4iLCBpLGFyZ3ZbaV0pOwotICAgICAgICAgaSsrOwotICAgIH0KLSAgICByZXR1cm4gaTsKLX0KLQotLy8gUmV0dXJucyBhIGNoYXIgKiogbGlzdCAKLQotY2hhciAqKmdldF9hcmdzKCkgewotICAgIHN0YXRpYyBjaGFyICp2YWx1ZXNbXSA9IHsgIkRhdmUiLCAiTWlrZSIsICJTdXNhbiIsICJKb2huIiwgIk1pY2hlbGxlIiwgMH07Ci0gICAgcmV0dXJuICZhbXA7dmFsdWVzWzBdOwotfQotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiB0aGlzIG1vZHVsZSBpcyBjb21waWxlZCwgb3VyIHdyYXBwZWQgQyBmdW5jdGlvbnMgbm93IG9wZXJhdGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGZyb20gYXJndiBpbXBvcnQgKgotJmd0OyZndDsmZ3Q7IHByaW50X2FyZ3MoWyJEYXZlIiwiTWlrZSIsIk1hcnkiLCJKYW5lIiwiSm9obiJdKQotYXJndlswXSA9IERhdmUKLWFyZ3ZbMV0gPSBNaWtlCi1hcmd2WzJdID0gTWFyeQotYXJndlszXSA9IEphbmUKLWFyZ3ZbNF0gPSBKb2huCi01Ci0mZ3Q7Jmd0OyZndDsgZ2V0X2FyZ3MoKQotW2BEYXZlJywgYE1pa2UnLCBgU3VzYW4nLCBgSm9obicsIGBNaWNoZWxsZSddCi0mZ3Q7Jmd0OyZndDsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotT3VyIHR5cGUtbWFwcGluZyBtYWtlcyB0aGUgUHl0aG9uIGludGVyZmFjZSB0byB0aGVzZSBmdW5jdGlvbnMgbW9yZSBuYXR1cmFsIGFuZCBlYXN5IHRvIHVzZS4gICAgIDxwPgotPGEgbmFtZT0ibjU5Ij48L2E+PGgzPiBDb252ZXJ0aW5nIGEgUHl0aG9uIGZpbGUgb2JqZWN0IHRvIGEgRklMRSAqPC9oMz4KLUluIG91ciBwcmV2aW91cyBleGFtcGxlIGludm9sdmluZyBnZC0xLjIsIHdlIGhhZCB0byB3cml0ZSB3cmFwcGVycyBhcm91bmQgPHR0PmZvcGVuKCk8L3R0PiBhbmQgPHR0PmZjbG9zZSgpPC90dD4gc28gdGhhdCB3ZSBjb3VsZCBwcm92aWRlIGdkIHdpdGggYSA8dHQ+RklMRSAqPC90dD4gcG9pbnRlci4gIEhvd2V2ZXIsIHdlIGNvdWxkIGhhdmUgdXNlZCBhIHR5cGVtYXAgbGlrZSB0aGlzIGluc3RlYWQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFR5cGUgbWFwcGluZyBmb3IgZ3JhYmJpbmcgYSBGSUxFICogZnJvbSBQeXRob24KLQotJXR5cGVtYXAocHl0aG9uLGluKSBGSUxFICogewotICBpZiAoIVB5RmlsZV9DaGVjaygkc291cmNlKSkgewotICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIk5lZWQgYSBmaWxlISIpOwotICAgICAgcmV0dXJuIE5VTEw7Ci0gIH0KLSAgJHRhcmdldCA9IFB5RmlsZV9Bc0ZpbGUoJHNvdXJjZSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdywgd2UgY2FuIHJld3JpdGUgb25lIG9mIG91ciBlYXJsaWVyIGV4YW1wbGVzIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBTaW1wbGUgZ2QgcHJvZ3JhbQotCi1mcm9tIGdkIGltcG9ydCAqCi0KLWltID0gZ2RJbWFnZUNyZWF0ZSg2NCw2NCkKLWJsYWNrID0gZ2RJbWFnZUNvbG9yQWxsb2NhdGUoaW0sMCwwLDApCi13aGl0ZSA9IGdkSW1hZ2VDb2xvckFsbG9jYXRlKGltLDI1NSwyNTUsMjU1KQotZ2RJbWFnZUxpbmUoaW0sMCwwLDYzLDYzLHdoaXRlKQotZiA9IG9wZW4oInRlc3QuZ2lmIiwidyIpICAgICAgICAgICAgICAgIyBDcmVhdGUgYSBQeXRob24gZmlsZSBvYmplY3QKLWdkSW1hZ2VHaWYoaW0sZikgICAgICAgICAgICAgICAgICAgICAgICMgUGFzcyB0byBhIEMgZnVuY3Rpb24gYXMgRklMRSAqCi1mLmNsb3NlKCkKLWdkSW1hZ2VEZXN0cm95KGltKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjYwIj48L2E+PGgzPiBVc2luZyB0eXBlbWFwcyB0byByZXR1cm4gYXJndW1lbnRzPC9oMz4KLUEgY29tbW9uIHByb2JsZW0gaW4gc29tZSBDIHByb2dyYW1zIGlzIHRoYXQgdmFsdWVzIG1heSBiZSByZXR1cm5lZCBpbiBhcmd1bWVudHMgcmF0aGVyIHRoYW4gaW4gdGhlIHJldHVybiB2YWx1ZSBvZiBhIGZ1bmN0aW9uLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIFJldHVybnMgYSBzdGF0dXMgdmFsdWUgYW5kIHR3byB2YWx1ZXMgaW4gb3V0MSBhbmQgb3V0MiAqLwotaW50IHNwYW0oZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKm91dDEsIGRvdWJsZSAqb3V0MikgewotCS4uLiBEbyBhIGJ1bmNoIG9mIHN0dWZmIC4uLgotCSpvdXQxID0gcmVzdWx0MTsKLQkqb3V0MiA9IHJlc3VsdDI7Ci0JcmV0dXJuIHN0YXR1czsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUEgbmFtZWQgdHlwZW1hcCBjYW4gYmUgdXNlZCB0byBoYW5kbGUgdGhpcyBjYXNlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgb3V0YXJnCi0KLS8vIFRoaXMgdGVsbHMgU1dJRyB0byB0cmVhdCBhbiBkb3VibGUgKiBhcmd1bWVudCB3aXRoIG5hbWUgJ091dFZhbHVlJyBhcwotLy8gYW4gb3V0cHV0IHZhbHVlLiAgV2UnbGwgYXBwZW5kIHRoZSB2YWx1ZSB0byB0aGUgY3VycmVudCByZXN1bHQgd2hpY2ggCi0vLyBpcyBndWFyYW50ZWVkIHRvIGJlIGEgTGlzdCBvYmplY3QgYnkgU1dJRy4KLQotJXR5cGVtYXAocHl0aG9uLGFyZ291dCkgZG91YmxlICpPdXRWYWx1ZSB7Ci0JUHlPYmplY3QgKm87Ci0JbyA9IFB5RmxvYXRfRnJvbURvdWJsZSgqJHNvdXJjZSk7Ci0JaWYgKCghJHRhcmdldCkgfHwgKCR0YXJnZXQgPT0gUHlfTm9uZSkpIHsKLQkJJHRhcmdldCA9IG87Ci0JfSBlbHNlIHsKLQkJaWYgKCFQeUxpc3RfQ2hlY2soJHRhcmdldCkpIHsKLQkJCVB5T2JqZWN0ICpvMiA9ICR0YXJnZXQ7Ci0JCQkkdGFyZ2V0ID0gUHlMaXN0X05ldygwKTsKLQkJCVB5TGlzdF9BcHBlbmQoJHRhcmdldCxvMik7Ci0JCQlQeV9YREVDUkVGKG8yKTsKLQkJfQotCQlQeUxpc3RfQXBwZW5kKCR0YXJnZXQsbyk7Ci0JCVB5X1hERUNSRUYobyk7Ci0JfQotfQotaW50IHNwYW0oZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKk91dFZhbHVlLCBkb3VibGUgKk91dFZhbHVlKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2l0aCB0aGlzIHR5cGVtYXAsIHdlIGZpcnN0IGNoZWNrIHRvIHNlZSBpZiBhbnkgcmVzdWx0IGV4aXN0cy4gIElmIHNvLCB3ZSB0dXJuIGl0IGludG8gYSBsaXN0IGFuZCBhcHBlbmQgb3VyIG5ldyBvdXRwdXQgdmFsdWUgdG8gaXQuICAgSWYgdGhpcyBpcyB0aGUgb25seSByZXN1bHQsIHdlIHNpbXBseSByZXR1cm4gaXQgbm9ybWFsbHkuIEZvciBvdXIgc2FtcGxlIGZ1bmN0aW9uLCB0aGVyZSBhcmUgdGhyZWUgb3V0cHV0IHZhbHVlcyBzbyB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBsaXN0IG9mIDMgZWxlbWVudHMuICAgQXMgd3JpdHRlbiwgb3VyIGZ1bmN0aW9uIG5lZWRzIHRvIHRha2UgNCBhcmd1bWVudHMsIHRoZSBsYXN0IHR3byBiZWluZyBwb2ludGVycyB0byBkb3VibGVzLiAgIFdlIG1heSBub3Qgd2FudCB0byBwYXNzIGFueXRoaW5nIGludG8gdGhlc2UgYXJndW1lbnRzIGlmIHRoZXkgYXJlIG9ubHkgdXNlZCB0byBob2xkIG91dHB1dCB2YWx1ZXMgc28gd2UgY291bGQgY2hhbmdlIHRoaXMgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJXR5cGVtYXAocHl0aG9uLGlnbm9yZSkgZG91YmxlICpPdXRWYWx1ZShkb3VibGUgdGVtcCkgewotCSR0YXJnZXQgPSAmYW1wO3RlbXA7ICAgICAgIC8qIEFzc2lnbiB0aGUgcG9pbnRlciB0byBhIGxvY2FsIHZhcmlhYmxlICovCi19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgaW4gYSBQeXRob24gc2NyaXB0LCAgd2UgY291bGQgZG8gdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGEgPSBzcGFtKDQsNSkKLSZndDsmZ3Q7Jmd0OyBwcmludCBhCi1bMCwgMi40NSwgNS4wXQotJmd0OyZndDsmZ3Q7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjEiPjwvYT48aDM+IE1hcHBpbmcgUHl0aG9uIHR1cGxlcyBpbnRvIHNtYWxsIGFycmF5czwvaDM+Ci1JbiBzb21lIGFwcGxpY2F0aW9ucywgaXQgaXMgc29tZXRpbWVzIGRlc2lyYWJsZSB0byBwYXNzIHNtYWxsIGFycmF5cyBvZiBudW1iZXJzIGFzIGFyZ3VtZW50cy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmV4dGVybiB2b2lkIHNldF9kaXJlY3Rpb24oZG91YmxlIGFbNF0pOyAgICAgICAvLyBTZXQgZGlyZWN0aW9uIHZlY3RvcgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIHRvbywgY2FuIGJlIGhhbmRsZWQgdXNlZCB0eXBlbWFwcyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBHcmFiIGEgNCBlbGVtZW50IGFycmF5IGFzIGEgUHl0aG9uIDQtdHVwbGUKLSV0eXBlbWFwKHB5dGhvbixpbikgZG91YmxlWzRdKGRvdWJsZSB0ZW1wWzRdKSB7ICAgLy8gdGVtcFs0XSBiZWNvbWVzIGEgbG9jYWwgdmFyaWFibGUKLSAgaW50IGk7Ci0gIGlmIChQeVR1cGxlX0NoZWNrKCRzb3VyY2UpKSB7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKCRzb3VyY2UsImRkZGQiLHRlbXAsdGVtcCsxLHRlbXArMix0ZW1wKzMpKSB7Ci0gICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCJ0dXBsZSBtdXN0IGhhdmUgNCBlbGVtZW50cyIpOwotICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgICR0YXJnZXQgPSAmYW1wO3RlbXBbMF07Ci0gIH0gZWxzZSB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwiZXhwZWN0ZWQgYSB0dXBsZS4iKTsKLSAgICByZXR1cm4gTlVMTDsKLSAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGFsbG93cyBvdXIgPHR0PnNldF9kaXJlY3Rpb248L3R0PiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgZnJvbSBQeXRob24gYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IHNldF9kaXJlY3Rpb24oKDAuNSwwLjAsMS4wLC0wLjI1KSkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU2luY2Ugb3VyIG1hcHBpbmcgY29waWVzIHRoZSBjb250ZW50cyBvZiBhIFB5dGhvbiB0dXBsZSBpbnRvIGEgQyBhcnJheSwgc3VjaCBhbiBhcHByb2FjaCB3b3VsZCBub3QgYmUgcmVjb21tZW5kZWQgZm9yIGh1Z2UgYXJyYXlzLCBidXQgZm9yIHNtYWxsIHN0cnVjdHVyZXMsIHRoaXMga2luZCBvZiBzY2hlbWUgd29ya3MgZmluZS48cD4KLTxhIG5hbWU9Im42MiI+PC9hPjxoMz4gQWNjZXNzaW5nIGFycmF5IHN0cnVjdHVyZSBtZW1iZXJzPC9oMz4KLUNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiNkZWZpbmUgTkFNRUxFTiAgIDMyCi10eXBlZGVmIHN0cnVjdCB7Ci0JY2hhciAgIG5hbWVbTkFNRUxFTl07Ci0JLi4uCi19IFBlcnNvbjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQnkgZGVmYXVsdCwgU1dJRyBkb2Vzbid0IGtub3cgaG93IHRvIHRoZSBoYW5kbGUgdGhlIG5hbWUgc3RydWN0dXJlIHNpbmNlIGl0J3MgYW4gYXJyYXksIG5vdCBhIHBvaW50ZXIuICBJbiB0aGlzIGNhc2UsIFNXSUcgd2lsbCBtYWtlIHRoZSBhcnJheSBtZW1iZXIgcmVhZG9ubHkuICAgIEhvd2V2ZXIsIG1lbWJlciB0eXBlbWFwcyBjYW4gYmUgdXNlZCB0byBtYWtlIHRoaXMgbWVtYmVyIHdyaXRhYmxlIGZyb20gUHl0aG9uIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKG1lbWJlcmluKSBjaGFyW05BTUVMRU5dIHsKLQkvKiBDb3B5IGF0IG1vc3QgTkFNRUxFTiBjaGFyYWN0ZXJzIGludG8gJHRhcmdldCAqLwotCXN0cm5jcHkoJHRhcmdldCwkc291cmNlLE5BTUVMRU4pOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuZXZlciBhIDx0dD5jaGFyW05BTUVMRU5dPC90dD4gdHlwZSBpcyBlbmNvdW50ZXJlZCBpbiBhIHN0cnVjdHVyZSBvciBjbGFzcywgdGhpcyB0eXBlbWFwIHByb3ZpZGVzIGEgc2FmZSBtZWNoYW5pc20gZm9yIHNldHRpbmcgaXRzIHZhbHVlLiAgIEFuIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGNob29zZSB0byBwcmludCBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZSBuYW1lIHdhcyB0b28gbG9uZyB0byBmaXQgaW50byB0aGUgZmllbGQuPHA+Ci08cD4KLUl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZSA8dHQ+W05BTUVMRU5dPC90dD4gYXJyYXkgc2l6ZSBpcyBhdHRhY2hlZCB0byB0aGUgdHlwZW1hcC4gQSBkYXRhdHlwZSBpbnZvbHZpbmcgc29tZSBvdGhlciBraW5kIG9mIGFycmF5IHdvdWxkIG5vdCBiZSBhZmZlY3RlZC4gICBIb3dldmVyLCB5b3UgY2FuIHdyaXRlIGEgdHlwZW1hcCB0byBtYXRjaCBhbnkgc2l6ZWQgYXJyYXkgdXNpbmcgdGhlIDx0dD5BTlk8L3R0PiBrZXl3b3JkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKG1lbWJlcmluKSBjaGFyIFtBTlldIHsKLQlzdHJuY3B5KCR0YXJnZXQsJHNvdXJjZSwkZGltMCk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUR1cmluZyBjb2RlIGdlbmVyYXRpb24sIDx0dD4kZGltMDwvdHQ+IHdpbGwgYmUgZmlsbGVkIGluIHdpdGggdGhlIHJlYWwgYXJyYXkgZGltZW5zaW9uLiAgPHA+Ci08YSBuYW1lPSJuNjMiPjwvYT48aDM+IFVzZWZ1bCBGdW5jdGlvbnM8L2gzPgotV2hlbiB3cml0aW5nIHR5cGVtYXBzLCBpdCBpcyBvZnRlbiBuZWNlc3NhcnkgdG8gd29yayBkaXJlY3RseSB3aXRoIFB5dGhvbiBvYmplY3RzIGluc3RlYWQgb2YgdXNpbmcgdGhlIGNvbnZlbnRpb25hbCA8dHQ+UHlBcmdfUGFyc2VUdXBsZSgpPC90dD4gZnVuY3Rpb24gdGhhdCBpcyB1c3VhbGx5IHVzZWQgd2hlbiB3cml0aW5nIFB5dGhvbiBleHRlbnNpb25zLiAgIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiB1c2VmdWwgUHl0aG9uIGZ1bmN0aW9ucyBhdmFpbGFibGUgZm9yIHlvdSB0byB1c2UuPHA+Ci08Y2VudGVyPgotPGltZyBzcmM9ImNoOS50YWJsZS4yLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOS50YWJsZS4zLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOS50YWJsZS40LnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOS50YWJsZS41LnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOS50YWJsZS42LnBuZyI+PGJyPgotPGltZyBzcmM9ImNoOS50YWJsZS43LnBuZyI+PGJyPgotPC9jZW50ZXI+PHA+Ci08cD4KLTxhIG5hbWU9Im42NCI+PC9hPjxoMz4gU3RhbmRhcmQgIHR5cGVtYXBzPC9oMz4KLVRoZSBmb2xsb3dpbmcgdHlwZW1hcHMgc2hvdyBob3cgdG8gY29udmVydCBhIGZldyBjb21tb24ga2luZHMgb2Ygb2JqZWN0cyBiZXR3ZWVuIFB5dGhvbiBhbmQgQyAoYW5kIHRvIGdpdmUgYSBiZXR0ZXIgaWRlYSBvZiBob3cgdHlwZW1hcHMgd29yayk8cD4KLTxjZW50ZXI+Ci08aW1nIHNyYz0iY2g5LnRhYmxlLjgucG5nIj48YnI+Ci08aW1nIHNyYz0iY2g5LnRhYmxlLjkucG5nIj48YnI+Ci08L2NlbnRlcj48cD4KLTxwPgotPGEgbmFtZT0ibjY1Ij48L2E+PGgzPiBQb2ludGVyIGhhbmRsaW5nPC9oMz4KLVNXSUcgcG9pbnRlcnMgYXJlIG1hcHBlZCBpbnRvIFB5dGhvbiBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIGhleGFkZWNpbWFsIHZhbHVlIGFuZCB0eXBlLiAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuZCByZWFkIHBvaW50ZXIgdmFsdWVzLjxwPgotPGNlbnRlcj4KLTxpbWcgc3JjPSJjaDkudGFibGUuMTAucG5nIj4KLTwvY2VudGVyPjxwPgotPHA+Ci1UaGVzZSBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaW4gdHlwZW1hcHMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHR5cGVtYXAgbWFrZXMgYW4gYXJndW1lbnQgb2YgIjx0dD5jaGFyICpidWZmZXI8L3R0PiIgYWNjZXB0IGEgcG9pbnRlciBpbnN0ZWFkIG9mIGEgTlVMTC10ZXJtaW5hdGVkIEFTQ0lJIHN0cmluZy48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChweXRob24saW4pIGNoYXIgKmJ1ZmZlciB7Ci0JUHlPYmplY3QgKm87Ci0JY2hhciAgICAgKnN0cjsKLQlpZiAoIVB5U3RyaW5nX0NoZWNrKG8pKSB7Ci0JCVB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIm5vdCBhIHN0cmluZyIpOwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0Jc3RyID0gUHlTdHJpbmdfQXNTdHJpbmcobyk7Ci0JaWYgKFNXSUdfR2V0UHRyKHN0ciwgKHZvaWQgKiopICZhbXA7JHRhcmdldCwgIiRtYW5nbGUiKSkgewotCQlQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCJub3QgYSBwb2ludGVyIik7Ci0JCXJldHVybiBOVUxMOwotCX0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm90ZSB0aGF0IHRoZSA8dHQ+JG1hbmdsZTwvdHQ+IHZhcmlhYmxlIGdlbmVyYXRlcyB0aGUgdHlwZSBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhdHlwZSB1c2VkIGluIHRoZSB0eXBlbWFwLjxwPgotPHA+Ci1CeSBub3cgeW91IGhvcGVmdWxseSBoYXZlIHRoZSBpZGVhIHRoYXQgdHlwZW1hcHMgYXJlIGEgcG93ZXJmdWwgbWVjaGFuaXNtIGZvciBidWlsZGluZyBtb3JlIHNwZWNpYWxpemVkIGFwcGxpY2F0aW9ucy4gIFdoaWxlIHdyaXRpbmcgdHlwZW1hcHMgY2FuIGJlIHRlY2huaWNhbCwgbWFueSBoYXZlIGFscmVhZHkgYmVlbiB3cml0dGVuIGZvciB5b3UuICBTZWUgdGhlIFR5cGVtYXBzIGNoYXB0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgbGlicmFyeSBmaWxlcy48cD4KLTxhIG5hbWU9Im4xMSI+PC9hPjxoMj4gSW1wbGVtZW50aW5nIEMgY2FsbGJhY2sgZnVuY3Rpb25zIGluIFB5dGhvbjwvaDI+Ci1Ob3cgdGhhdCB5b3UncmUgYW4gZXhwZXJ0LCAgd2Ugd2lsbCBpbXBsZW1lbnQgIHNpbXBsZSBDIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbiBQeXRob24gYW5kIHVzZSB0aGVtIGluIGEgQysrIGNvZGUuPHA+Ci08cD4KLUxldCdzIHNheSB0aGF0IHdlIHdhbnRlZCB0byB3cml0ZSBhIHNpbXBsZSBDKysgMkQgcGxvdHRpbmcgd2lkZ2V0IGxheWVyZWQgb24gdG9wIG9mIHRoZSBnZC0xLjIgbGlicmFyeS4gICBBIGNsYXNzIGRlZmluaXRpb24gbWlnaHQgbG9vayBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBDcmVhdGUgYSBDKysgcGxvdHRpbmcgIndpZGdldCIgdXNpbmcgdGhlIGdkLTEuMiBsaWJyYXJ5IGJ5IFRob21hcyBCb3V0ZWxsCi0vLyAgCi0vLyBUaGlzIGV4YW1wbGUgcHJpbWFyaWx5IGlsbHVzdHJhdGVzIGhvdyBjYWxsYmFjayBmdW5jdGlvbnMgY2FuIGJlCi0vLyBpbXBsZW1lbnRlZCBpbiBQeXRob24uCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jaW5jbHVkZSAmbHQ7c3RkaW8uaCZndDsKLWV4dGVybiAiQyIgewotI2luY2x1ZGUgImdkLmgiCi19Ci0KLXR5cGVkZWYgZG91YmxlICgqUExPVEZVTkMpKGRvdWJsZSwgdm9pZCAqKTsKLQotY2xhc3MgUGxvdFdpZGdldCB7Ci1wcml2YXRlOgotICBkb3VibGUgICAgICB4bWluLHltaW4seG1heCx5bWF4OyAgICAgICAgIC8vIFBsb3R0aW5nIHJhbmdlCi0gIFBMT1RGVU5DICAgIGNhbGxiYWNrOyAgICAgICAgICAgICAgICAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24KLSAgdm9pZCAgICAgICAqY2xpZW50ZGF0YTsgICAgICAgICAgICAgICAgICAvLyBDbGllbnQgZGF0YSBmb3IgY2FsbGJhY2sKLSAgaW50ICAgICAgICAgbnBvaW50czsgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgb2YgcG9pbnRzIHRvIHBsb3QKLSAgaW50ICAgICAgICAgd2lkdGg7ICAgICAgICAgICAgICAgICAgICAgICAvLyBJbWFnZSB3aWR0aAotICBpbnQgICAgICAgICBoZWlnaHQ7ICAgICAgICAgICAgICAgICAgICAgIC8vIEltYWdlIGhlaWdodAotICBpbnQgICAgICAgICBibGFjayx3aGl0ZTsgICAgICAgICAgICAgICAgIC8vIFNvbWUgY29sb3JzCi0gIGdkSW1hZ2VQdHIgIGltOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2UgcG9pbnRlcgotICB2b2lkICAgICAgICB0cmFuc2Zvcm0oZG91YmxlLGRvdWJsZSxpbnQmYW1wOyxpbnQmYW1wOyk7Ci1wdWJsaWM6Ci0gIFBsb3RXaWRnZXQoaW50IHcsIGludCBoLGRvdWJsZSxkb3VibGUsZG91YmxlLGRvdWJsZSk7Ci0gIH5QbG90V2lkZ2V0KCk7Ci0gIHZvaWQgc2V0X21ldGhvZChQTE9URlVOQyBmdW5jLCB2b2lkICpjbGllbnRkYXRhKTsgICAgLy8gU2V0IGNhbGxiYWNrIG1ldGhvZAotICB2b2lkIHNldF9yYW5nZShkb3VibGUsZG91YmxlLGRvdWJsZSxkb3VibGUpOyAgICAgICAgIC8vIFNldCBwbG90IHJhbmdlCi0gIHZvaWQgc2V0X3BvaW50cyhpbnQgbnApIHtucG9pbnRzID0gbnA7fSAgICAgICAgICAgICAgLy8gU2V0IG51bWJlciBvZiBwb2ludHMKLSAgdm9pZCBwbG90KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIGEgcGxvdAotICB2b2lkIHNhdmUoRklMRSAqZik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhdmUgYSBwbG90IHRvIGRpc2sKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSB3aWRnZXQgY2xhc3MgaGlkZXMgYWxsIG9mIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMgc28gdGhpcyBjb3VsZCBoYXZlIGp1c3QgYXMgZWFzaWx5IGJlZW4gaW1wbGVtZW50ZWQgb24gdG9wIG9mIE9wZW5HTCwgWDExIG9yIHNvbWUgb3RoZXIga2luZCBvZiBsaWJyYXJ5LiAgIFdoZW4gdXNlZCBpbiBDKyssIHRoZSB3aWRnZXQgd29ya3MgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBTaW1wbGUgbWFpbiBwcm9ncmFtIHRvIHRlc3Qgb3V0IG91ciB3aWRnZXQKLSNpbmNsdWRlICZsdDtzdGRpby5oJmd0OwotI2luY2x1ZGUgIndpZGdldC5oIgotI2luY2x1ZGUgJmx0O21hdGguaCZndDsKLQotLy8gQ2FsbGJhY2sgZnVuY3Rpb24KLWRvdWJsZSBteV9mdW5jKGRvdWJsZSBhLCB2b2lkICpjbGllbnRkYXRhKSB7Ci0gIHJldHVybiBzaW4oYSk7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBQbG90V2lkZ2V0ICp3OwotICBGSUxFICpmOwotCi0gIHcgPSBuZXcgUGxvdFdpZGdldCg1MDAsNTAwLC02LjMsLTEuNSw2LjMsMS41KTsKLSAgdy0mZ3Q7c2V0X21ldGhvZChteV9mdW5jLDApOyAgICAgICAgICAgICAgLy8gU2V0IGNhbGxiYWNrIGZ1bmN0aW9uCi0gIHctJmd0O3Bsb3QoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2UgcGxvdAotICBmID0gZm9wZW4oInBsb3QuZ2lmIiwidyIpOwotICB3LSZndDtzYXZlKGYpOwotICBmY2xvc2UoZik7Ci0gIHByaW50Zigid3JvdGUgcGxvdC5naWZcbiIpOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Ob3cgc3VwcG9zZSB0aGF0IHdlIHdhbnRlZCB0byB1c2Ugb3VyIHdpZGdldCBpbnRlcmFjdGl2ZWx5IGZyb20gUHl0aG9uLiAgV2hpbGUgcG9zc2libGUsIGl0IGlzIGdvaW5nIHRvIGJlIGRpZmZpY3VsdCBiZWNhdXNlIHdlIHdvdWxkIHJlYWxseSBsaWtlIHRvIGltcGxlbWVudCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaW4gUHl0aG9uLCBub3QgQysrLiAgIFdlIGFsc28gZG9uJ3Qgd2FudCB0byBnbyBpbiBhbmQgaGFjayBvciBDKysgY29kZSB0byBzdXBwb3J0IHRoaXMuICAgRm9ydHVuYXRlbHksIHlvdSBjYW4gZG8gaXQgd2l0aCBTV0lHIHVzaW5nIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFNXSUcgaW50ZXJmYWNlIHRvIG91ciBQbG90V2lkZ2V0IAotJW1vZHVsZSBwbG90d2lkZ2V0Ci0lewotI2luY2x1ZGUgIndpZGdldC5oIgotJX0KLQotLy8gR3JhYiBhIFB5dGhvbiBmdW5jdGlvbiBvYmplY3QgYXMgYSBQeXRob24gb2JqZWN0LgotJXR5cGVtYXAocHl0aG9uLGluKSBQeU9iamVjdCAqcHlmdW5jIHsKLSAgaWYgKCFQeUNhbGxhYmxlX0NoZWNrKCRzb3VyY2UpKSB7Ci0gICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiTmVlZCBhIGNhbGxhYmxlIG9iamVjdCEiKTsKLSAgICAgIHJldHVybiBOVUxMOwotICB9Ci0gICR0YXJnZXQgPSAkc291cmNlOwotfQotCi0vLyBUeXBlIG1hcHBpbmcgZm9yIGdyYWJiaW5nIGEgRklMRSAqIGZyb20gUHl0aG9uCi0ldHlwZW1hcChweXRob24saW4pIEZJTEUgKiB7Ci0gIGlmICghUHlGaWxlX0NoZWNrKCRzb3VyY2UpKSB7Ci0gICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiTmVlZCBhIGZpbGUhIik7Ci0gICAgICByZXR1cm4gTlVMTDsKLSAgfQotICAkdGFyZ2V0ID0gUHlGaWxlX0FzRmlsZSgkc291cmNlKTsKLX0KLQotLy8gR3JhYiB0aGUgY2xhc3MgZGVmaW5pdGlvbgotJWluY2x1ZGUgd2lkZ2V0LmgKLQotJXsKLS8qIFRoaXMgZnVuY3Rpb24gbWF0Y2hlcyB0aGUgcHJvdG90eXBlIG9mIHRoZSBub3JtYWwgQyBjYWxsYmFjawotICAgZnVuY3Rpb24gZm9yIG91ciB3aWRnZXQuIEhvd2V2ZXIsIHdlIHVzZSB0aGUgY2xpZW50ZGF0YSBwb2ludGVyCi0gICBmb3IgaG9sZGluZyBhIHJlZmVyZW5jZSB0byBhIFB5dGhvbiBjYWxsYWJsZSBvYmplY3QuICovCi0KLXN0YXRpYyBkb3VibGUgUHl0aG9uQ2FsbEJhY2soZG91YmxlIGEsIHZvaWQgKmNsaWVudGRhdGEpCi17Ci0gICBQeU9iamVjdCAqZnVuYywgKmFyZ2xpc3Q7Ci0gICBQeU9iamVjdCAqcmVzdWx0OwotICAgZG91YmxlICAgIGRyZXMgPSAwOwotICAgCi0gICBmdW5jID0gKFB5T2JqZWN0ICopIGNsaWVudGRhdGE7ICAgICAgICAgICAgICAgLy8gR2V0IFB5dGhvbiBmdW5jdGlvbgotICAgYXJnbGlzdCA9IFB5X0J1aWxkVmFsdWUoIihkKSIsYSk7ICAgICAgICAgICAgIC8vIEJ1aWxkIGFyZ3VtZW50IGxpc3QKLSAgIHJlc3VsdCA9IFB5RXZhbF9DYWxsT2JqZWN0KGZ1bmMsYXJnbGlzdCk7ICAgICAvLyBDYWxsIFB5dGhvbgotICAgUHlfREVDUkVGKGFyZ2xpc3QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyYXNoIGFyZ2xpc3QKLSAgIGlmIChyZXN1bHQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyBlcnJvcnMsIHJldHVybiBkb3VibGUKLSAgICAgZHJlcyA9IFB5RmxvYXRfQXNEb3VibGUocmVzdWx0KTsKLSAgIH0KLSAgIFB5X1hERUNSRUYocmVzdWx0KTsKLSAgIHJldHVybiBkcmVzOwotfQotJX0KLQotLy8gQXR0YWNoIGEgbmV3IG1ldGhvZCB0byBvdXIgcGxvdCB3aWRnZXQgZm9yIGFkZGluZyBQeXRob24gZnVuY3Rpb25zCi0lYWRkbWV0aG9kcyBQbG90V2lkZ2V0IHsKLSAgIC8vIFNldCBhIFB5dGhvbiBmdW5jdGlvbiBvYmplY3QgYXMgYSBjYWxsYmFjayBmdW5jdGlvbgotICAgLy8gTm90ZSA6IFB5T2JqZWN0ICpweWZ1bmMgaXMgcmVtYXBwZWQgd2l0aCBhIHR5cGVtcGFwCi0gICB2b2lkIHNldF9weW1ldGhvZChQeU9iamVjdCAqcHlmdW5jKSB7Ci0gICAgIHNlbGYtJmd0O3NldF9tZXRob2QoUHl0aG9uQ2FsbEJhY2ssICh2b2lkICopIHB5ZnVuYyk7Ci0gICAgIFB5X0lOQ1JFRihweWZ1bmMpOwotICAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGlsZSB0aGlzIGlzIGNlcnRhaW5seSBub3QgYSB0cml2aWFsIFNXSUcgaW50ZXJmYWNlIGZpbGUsICB0aGUgcmVzdWx0cyBhcmUgcXVpdGUgY29vbC4gIExldCdzIHRyeSBvdXQgb3VyIG5ldyBQeXRob24gbW9kdWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIE5vdyB1c2Ugb3VyIHBsb3R0aW5nIHdpZGdldCBpbiB2YXJpZXR5IG9mIHdheXMKLQotZnJvbSBwbG90d2lkZ2V0IGltcG9ydCAqCi1mcm9tIG1hdGggaW1wb3J0ICoKLQotIyBNYWtlIGEgcGxvdCB1c2luZyBhIG5vcm1hbCBQeXRob24gZnVuY3Rpb24gYXMgYSBjYWxsYmFjawotZGVmIGZ1bmMxKHgpOgotCXJldHVybiAwLjUqc2luKHgpKzAuMjUqc2luKDIqeCkrMC4xMjUqY29zKDQqeCkKLQotcHJpbnQgIk1ha2luZyBwbG90MS5naWYuLi4iCi0jIE1ha2UgYSB3aWRnZXQgYW5kIHNldCBjYWxsYmFjawotdyA9IFBsb3RXaWRnZXQoNTAwLDUwMCwtMTAsLTIsMTAsMikKLXcuc2V0X3B5bWV0aG9kKGZ1bmMxKSAgICAgICAgICAgICAgICAgICAgICMgUmVnaXN0ZXIgb3VyIFB5dGhvbiBmdW5jdGlvbgotdy5wbG90KCkKLWYgPSBvcGVuKCJwbG90MS5naWYiLCJ3IikKLXcuc2F2ZShmKQotZi5jbG9zZSgpCi0KLSMgTWFrZSBhIHBsb3QgdXNpbmcgYW4gYW5vbnltb3VzIGZ1bmN0aW9uCi0KLXByaW50ICJNYWtpbmcgcGxvdDIuZ2lmLi4uIgotdzEgPSBQbG90V2lkZ2V0KDUwMCw1MDAsLTQsLTEsNCwxNikKLXcxLnNldF9weW1ldGhvZChsYW1iZGEgeDogeCp4KSAgICAgICAgICAgICMgUmVnaXN0ZXIgeF4yIGFzIGEgY2FsbGJhY2sKLXcxLnBsb3QoKQotZiA9IG9wZW4oInBsb3QyLmdpZiIsInciKQotdzEuc2F2ZShmKQotZi5jbG9zZSgpCi0KLSMgTWFrZSBhbm90aGVyIHBsb3QgdXNpbmcgYSBidWlsdC1pbiBmdW5jdGlvbgotCi1wcmludCAiTWFraW5nIHBsb3QzLmdpZi4uLiIKLXcyID0gUGxvdFdpZGdldCg1MDAsNTAwLC03LC0xLjUsNywxLjUpCi13Mi5zZXRfcHltZXRob2Qoc2luKSAgICAgICAgICAgICAgICAgICAgICAjIFJlZ2lzdGVyIHNpbih4KSBhcyBhIGNhbGxiYWNrCi13Mi5wbG90KCkKLWYgPSBvcGVuKCJwbG90My5naWYiLCJ3IikKLXcyLnNhdmUoZikKLWYuY2xvc2UoKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08cD4KLVRoZSAicGxvdCIgbWV0aG9kIGZvciBlYWNoIHdpZGdldCBpcyB3cml0dGVuIGVudGlyZWx5IGluIEMrKyBhbmQgYXNzdW1lcyB0aGF0IGl0IGlzIGNhbGxpbmcgYSBjYWxsYmFjayBmdW5jdGlvbiB3cml0dGVuIGluIEMvQysrLiAgIExpdHRsZSBkb2VzIGl0IGtub3cgdGhhdCB3ZSBoYXZlIGFjdHVhbGx5IGltcGxlbWVudGVkIHRoaXMgZnVuY3Rpb24gaW4gUHl0aG9uLiAgIFdpdGggYSBsaXR0bGUgbW9yZSB3b3JrLCB3ZSBjYW4gZXZlbiB3cml0ZSBhIHNpbXBsZSBmdW5jdGlvbiBwbG90dGluZyB0b29sIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFBsb3QgYSBmdW5jdGlvbiBhbmQgc3Bhd24geHYKLQotaW1wb3J0IHBvc2l4Ci1pbXBvcnQgc3lzCi1pbXBvcnQgc3RyaW5nCi1mcm9tIHBsb3R3aWRnZXQgaW1wb3J0ICoKLWZyb20gbWF0aCBpbXBvcnQgKgotCi1saW5lID0gcmF3X2lucHV0KCJFbnRlciBhIGZ1bmN0aW9uIG9mIHggOiAiKQotcmFuZ2VzID0gc3RyaW5nLnNwbGl0KHJhd19pbnB1dCgiRW50ZXIgeG1pbix5bWluLHhtYXgseW1heCA6IiksIiwiKQotCi1wcmludCAiTWFraW5nIGEgcGxvdC4uLiIKLXcgPSBQbG90V2lkZ2V0KDUwMCw1MDAsc3RyaW5nLmF0b2YocmFuZ2VzWzBdKSxzdHJpbmcuYXRvZihyYW5nZXNbMV0pLAotICAgICAgICAgICAgICAgc3RyaW5nLmF0b2YocmFuZ2VzWzJdKSxzdHJpbmcuYXRvZihyYW5nZXNbM10pKQotCi0jIFR1cm4gdXNlciBpbnB1dCBpbnRvIGEgUHl0aG9uIGZ1bmN0aW9uCi1jb2RlID0gImRlZiBmdW5jKHgpOiByZXR1cm4gIiArIGxpbmUKLWV4ZWMoY29kZSkKLQotdy5zZXRfcHltZXRob2QoZnVuYykKLXcucGxvdCgpCi1mID0gb3BlbigicGxvdC5naWYiLCJ3IikKLXcuc2F2ZShmKQotZi5jbG9zZSgpCi1wb3NpeC5zeXN0ZW0oInh2IHBsb3QuZ2lmICZhbXA7IikKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjEyIj48L2E+PGgyPiBPdGhlciBvZGRzIGFuZCBlbmRzPC9oMj4KLTxhIG5hbWU9Im42NiI+PC9hPjxoMz4gQWRkaW5nIG5hdGl2ZSBQeXRob24gZnVuY3Rpb25zIHRvIGEgU1dJRyBtb2R1bGU8L2gzPgotU29tZXRpbWVzIGl0IGlzIGRlc2lyYWJsZSB0byBhZGQgYSBuYXRpdmUgUHl0aG9uIG1ldGhvZCB0byBhIFNXSUcgd3JhcHBlciBmaWxlLiAgU3VwcG9zZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIFB5dGhvbi9DIGZ1bmN0aW9uIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5QeU9iamVjdCAqc3BhbV9zeXN0ZW0oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKSB7Ci0JY2hhciAqY29tbWFuZDsKLQlpbnQgc3RzOwotCWlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJzIiwmYW1wO2NvbW1hbmQpKQotCQlyZXR1cm4gTlVMTDsKLQlzdHMgPSBzeXN0ZW0oY29tbWFuZCk7Ci0JcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLHN0cyk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgZnVuY3Rpb24gY2FuIGJlIGFkZGVkIHRvIGEgU1dJRyBtb2R1bGUgdXNpbmcgdGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW5hdGl2ZShzeXN0ZW0pIHNwYW1fc3lzdGVtOyAgICAgICAgLy8gQ3JlYXRlIGEgY29tbWFuZCBjYWxsZWQgYHN5c3RlbScKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgdGhlIGZ1bGwgZnVuY3Rpb24gZGVjbGFyYXRpb24gbGlrZSB0aGlzIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVuYXRpdmUoc3lzdGVtKSBQeU9iamVjdCAqc3BhbV9zeXN0ZW0oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotb3I8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbmF0aXZlKHN5c3RlbSkgZXh0ZXJuIFB5T2JqZWN0ICpzcGFtX3N5c3RlbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjEzIj48L2E+PGgyPiBUaGUgZ29yeSBkZXRhaWxzIG9mIHNoYWRvdyBjbGFzc2VzPC9oMj4KLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHByb2Nlc3MgYnkgd2hpY2ggU1dJRyBjcmVhdGVzIHNoYWRvdyBjbGFzc2VzIGFuZCBzb21lIG9mIHRoZSBtb3JlIHN1YnRsZSBhc3BlY3RzIG9mIHVzaW5nIHRoZW0uPHA+Ci08YSBuYW1lPSJuNjciPjwvYT48aDM+IEEgc2ltcGxlIHNoYWRvdyBjbGFzczwvaDM+Ci1Db25zaWRlciB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9uIGZyb20gb3VyIHByZXZpb3VzIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgcGRlCi1zdHJ1Y3QgR3JpZDJkIHsKLSAgR3JpZDJkKGludCBuaSwgaW50IG5qKTsKLSAgfkdyaWQyZCgpOwotICBkb3VibGUgKipkYXRhOwotICBpbnQgICAgICB4cG9pbnRzOwotICBpbnQgICAgICB5cG9pbnRzOwotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIFNXSUcgZ2VuZXJhdGVkIGNsYXNzIGZvciB0aGlzIHN0cnVjdHVyZSBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgVGhpcyBmaWxlIHdhcyBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYnkgU1dJRy4KLWltcG9ydCBwZGVjCi1jbGFzcyBHcmlkMmRQdHIgOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLHRoaXMpOgotICAgICAgICBzZWxmLnRoaXMgPSB0aGlzCi0gICAgICAgIHNlbGYudGhpc293biA9IDAKLSAgICBkZWYgX19kZWxfXyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi50aGlzb3duID09IDEgOgotICAgICAgICAgICAgcGRlYy5kZWxldGVfR3JpZDJkKHNlbGYudGhpcykKLSAgICBkZWYgX19zZXRhdHRyX18oc2VsZixuYW1lLHZhbHVlKToKLSAgICAgICAgaWYgbmFtZSA9PSAiZGF0YSIgOgotICAgICAgICAgICAgcGRlYy5HcmlkMmRfZGF0YV9zZXQoc2VsZi50aGlzLHZhbHVlKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIG5hbWUgPT0gInhwb2ludHMiIDoKLSAgICAgICAgICAgIHBkZWMuR3JpZDJkX3hwb2ludHNfc2V0KHNlbGYudGhpcyx2YWx1ZSkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBuYW1lID09ICJ5cG9pbnRzIiA6Ci0gICAgICAgICAgICBwZGVjLkdyaWQyZF95cG9pbnRzX3NldChzZWxmLnRoaXMsdmFsdWUpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5fX2RpY3RfX1tuYW1lXSA9IHZhbHVlCi0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsbmFtZSk6Ci0gICAgICAgIGlmIG5hbWUgPT0gImRhdGEiIDogCi0gICAgICAgICAgICByZXR1cm4gcGRlYy5HcmlkMmRfZGF0YV9nZXQoc2VsZi50aGlzKQotICAgICAgICBpZiBuYW1lID09ICJ4cG9pbnRzIiA6IAotICAgICAgICAgICAgcmV0dXJuIHBkZWMuR3JpZDJkX3hwb2ludHNfZ2V0KHNlbGYudGhpcykKLSAgICAgICAgaWYgbmFtZSA9PSAieXBvaW50cyIgOiAKLSAgICAgICAgICAgIHJldHVybiBwZGVjLkdyaWQyZF95cG9pbnRzX2dldChzZWxmLnRoaXMpCi0gICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fW25hbWVdCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIiZsdDtDIEdyaWQyZCBpbnN0YW5jZSZndDsiCi1jbGFzcyBHcmlkMmQoR3JpZDJkUHRyKToKLSAgICBkZWYgX19pbml0X18oc2VsZixhcmcwLGFyZzEpIDoKLSAgICAgICAgc2VsZi50aGlzID0gcGRlYy5uZXdfR3JpZDJkKGFyZzAsYXJnMSkKLSAgICAgICAgc2VsZi50aGlzb3duID0gMQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjgiPjwvYT48aDM+IE1vZHVsZSBuYW1lczwvaDM+Ci1TaGFkb3cgY2xhc3NlcyBhcmUgYnVpbHQgdXNpbmcgdGhlIGxvdy1sZXZlbCBTV0lHIGdlbmVyYXRlZCBDIGludGVyZmFjZS4gIFRoaXMgaW50ZXJmYWNlIGlzIG5hbWVkICJtb2R1bGVjIiB3aGVyZSAibW9kdWxlIiBpcyB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlIHNwZWNpZmllZCBpbiBhIFNXSUcgaW50ZXJmYWNlIGZpbGUuICAgVGhlIFB5dGhvbiBjb2RlIGZvciB0aGUgc2hhZG93IGNsYXNzZXMgaXMgY3JlYXRlZCBpbiBhIGZpbGUgIm1vZHVsZS5weSIuICBUaGlzIGlzIHRoZSBmaWxlIHRoYXQgc2hvdWxkIGJlIGxvYWRlZCB3aGVuIGEgdXNlciB3YW50cyB0byB1c2UgdGhlIG1vZHVsZS48cD4KLTxhIG5hbWU9Im42OSI+PC9hPjxoMz4gVHdvIGNsYXNzZXM8L2gzPgotRm9yIGVhY2ggc3RydWN0dXJlIG9yIGNsYXNzIGZvdW5kIGluIGFuIGludGVyZmFjZSBmaWxlLCBTV0lHIGNyZWF0ZXMgdHdvIFB5dGhvbiBjbGFzc2VzLiAgSWYgYSBjbGFzcyBpcyBuYW1lZCAiPHR0PkdyaWQyZDwvdHQ+Iiwgb25lIG9mIHRoZXNlIGNsYXNzZXMgd2lsbCBiZSBuYW1lZCAiPHR0PkdyaWQyZFB0cjwvdHQ+IiBhbmQgdGhlIG90aGVyIG5hbWVkICI8dHQ+R3JpZDJkPC90dD4iLiAgVGhlIDx0dD5HcmlkMmRQdHI8L3R0PiBjbGFzcyBpcyB1c2VkIHRvIHR1cm4gd3JhcCBhIFB5dGhvbiBjbGFzcyBhcm91bmQgYW4gYWxyZWFkeSBwcmVleGlzdGluZyA8dHQ+R3JpZDJkPC90dD4gcG9pbnRlci4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgZ3B0ciA9IGNyZWF0ZV9ncmlkMmQoKSAgICAgICAgICMgUmV0dXJucyBhIEdyaWQyZCBmcm9tIHNvbWV3aGVyZQotJmd0OyZndDsmZ3Q7IGcgPSBHcmlkMmRQdHIoZ3B0cikgICAgICAgICAgICAjIFR1cm4gaXQgaW50byBhIFB5dGhvbiBjbGFzcwotJmd0OyZndDsmZ3Q7IGcueHBvaW50cwotNTAKLSZndDsmZ3Q7Jmd0OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PkdyaWQyZDwvdHQ+IGNsYXNzLCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgdXNlZCB3aGVuIHlvdSB3YW50IHRvIGNyZWF0ZSBhIG5ldyA8dHQ+R3JpZDJkPC90dD4gb2JqZWN0IGZyb20gUHl0aG9uLiAgIEluIHJlYWxpdHksIGl0IGluaGVyaXRzIGFsbCBvZiB0aGUgYXR0cmlidXRlcyBvZiBhIDx0dD5HcmlkMmRQdHI8L3R0PiwgZXhjZXB0IHRoYXQgaXRzIGNvbnN0cnVjdG9yIGNhbGxzIHRoZSBjb3JyZXNwb25kaW5nIEMrKyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBuZXcgb2JqZWN0LiAgICBUaHVzLCBpbiBQeXRob24sIHRoaXMgd291bGQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgZyA9IEdyaWQyZCg1MCw1MCkgICAgICAgICAgICMgQ3JlYXRlIGEgbmV3IEdyaWQyZAotJmd0OyZndDsmZ3Q7IGcueHBvaW50cwotNTAKLSZndDsmZ3Q7Jmd0OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHR3byBjbGFzcyBtb2RlbCBpcyBhIHRyYWRlb2ZmLiAgSW4gb3JkZXIgdG8gc3VwcG9ydCBDL0MrKyBwcm9wZXJseSwgaXQgaXMgbmVjZXNzYXJ5IHRvIGJlIGFibGUgdG8gY3JlYXRlIFB5dGhvbiBvYmplY3RzIGZyb20gYm90aCBwcmUtZXhpc3RpbmcgQysrIG9iamVjdHMgYW5kIHRvIGNyZWF0ZSBlbnRpcmVseSBuZXcgQysrIG9iamVjdHMgaW4gUHl0aG9uLiAgIFdoaWxlIHRoaXMgbWlnaHQgYmUgYWNjb21wbGlzaGVkIHVzaW5nIGEgc2luZ2xlIGNsYXNzLCBpdCB3b3VsZCBjb21wbGljYXRlIHRoZSBoYW5kbGluZyBvZiBjb25zdHJ1Y3RvcnMgY29uc2lkZXJhYmx5LiAgVGhlIHR3byBjbGFzcyBtb2RlbCwgb24gdGhlIG90aGVyIGhhbmQsIHdvcmtzLCBpcyBjb25zaXN0ZW50LCBhbmQgaXMgcmVsYXRpdmVseSBlYXN5IHRvIHVzZS4gICBJbiBwcmFjdGljZSwgeW91IHByb2JhYmx5IHdvbid0IGV2ZW4gYmUgYXdhcmUgdGhhdCB0aGVyZSBhcmUgdHdvIGNsYXNzZXMgd29ya2luZyBiZWhpbmQgdGhlIHNjZW5lcy48cD4KLTxhIG5hbWU9Im43MCI+PC9hPjxoMz4gVGhlIHRoaXMgcG9pbnRlcjwvaDM+Ci1XaXRoaW4gZWFjaCBzaGFkb3cgY2xhc3MsIHRoZSBtZW1iZXIgIjx0dD50aGlzPC90dD4iIGNvbnRhaW5zIHRoZSBhY3R1YWwgQy9DKysgcG9pbnRlciB0byB0aGUgb2JqZWN0LiAgWW91IGNhbiBjaGVjayB0aGlzIG91dCB5b3Vyc2VsZiBieSB0eXBpbmcgc29tZXRoaW5nIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IGcgPSBHcmlkMmQoNTAsNTApCi0mZ3Q7Jmd0OyZndDsgcHJpbnQgZy50aGlzCi1fMTAwOGZlOF9HcmlkMmRfcAotJmd0OyZndDsmZ3Q7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLURpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlICI8dHQ+dGhpczwvdHQ+IiBwb2ludGVyIGlzIGdlbmVyYWxseSBkaXNjb3VyYWdlZC4gSW4gZmFjdCBmb3JnZXQgdGhhdCB5b3UgcmVhZCB0aGlzLjxwPgotPGEgbmFtZT0ibjcxIj48L2E+PGgzPiBPYmplY3Qgb3duZXJzaGlwPC9oMz4KLU93bmVyc2hpcCBpcyBhIGNyaXRpY2FsIGlzc3VlIHdoZW4gbWl4aW5nIEMrKyBhbmQgUHl0aG9uLiAgRm9yIGV4YW1wbGUsIHN1cHBvc2UgSSBjcmVhdGUgYSBuZXcgb2JqZWN0IGluIEMrKywgYnV0IGxhdGVyIHVzZSBpdCAgdG8gY3JlYXRlIGEgUHl0aG9uIG9iamVjdC4gIElmIHRoYXQgb2JqZWN0IGlzIGJlaW5nIHVzZWQgZWxzZXdoZXJlIGluIHRoZSBDKysgY29kZSwgd2UgY2xlYXJseSBkb24ndCB3YW50IFB5dGhvbiB0byBkZWxldGUgdGhlIEMrKyBvYmplY3Qgd2hlbiB0aGUgUHl0aG9uIG9iamVjdCBpcyBkZWxldGVkLiAgU2ltaWxhcmx5LCB3aGF0IGlmIEkgY3JlYXRlIGEgbmV3IG9iamVjdCBpbiBQeXRob24sIGJ1dCBDKysgc2F2ZXMgYSBwb2ludGVyIHRvIGl0IGFuZCBzdGFydHMgdXNpbmcgaXQgcmVwZWF0ZWRseS4gIENsZWFybHksIHdlIG5lZWQgc29tZSBub3Rpb24gb2Ygd2hvIG93bnMgd2hhdC4gIFNpbmNlIHNvcnRpbmcgb3V0IGFsbCBvZiB0aGUgcG9zc2liaWxpdGllcyBpcyBwcm9iYWJseSBpbXBvc3NpYmxlLCBTV0lHIHNoYWRvdyBjbGFzc2VzIGFsd2F5cyBoYXZlIGFuIGF0dHJpYnV0ZSAiPHR0PnRoaXNvd248L3R0PiIgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgUHl0aG9uIG93bnMgYW4gb2JqZWN0LiAgV2hlbmV2ZXIgYW4gb2JqZWN0IGlzIGNyZWF0ZWQgaW4gUHl0aG9uLCBQeXRob24gd2lsbCBiZSBnaXZlbiBvd25lcnNoaXAgYnkgc2V0dGluZyA8dHQ+dGhpc293biA8L3R0PiB0byA8dHQ+IDE8L3R0Pi4gIFdoZW4gYSBQeXRob24gY2xhc3MgaXMgY3JlYXRlZCBmcm9tIGEgcHJlLWV4aXN0aW5nIEMvQysrIHBvaW50ZXIsIG93bmVyc2hpcCBpcyBhc3N1bWVkIHRvIGJlbG9uZyB0byB0aGUgQy9DKysgY29kZSBhbmQgPHR0PnRoaXNvd248L3R0PiB3aWxsIGJlIHNldCB0byAwLjxwPgotPHA+Ci1Pd25lcnNoaXAgb2YgYW4gb2JqZWN0IGNhbiBiZSBjaGFuZ2VkIGFzIG5lY2Vzc2FyeSBieSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgPHR0PnRoaXNvd248L3R0Pi4gIFdoZW4gc2V0LCBQeXRob24gd2lsbCBjYWxsIHRoZSBDL0MrKyBkZXN0cnVjdG9yIHdoZW4gdGhlIG9iamVjdCBpcyBkZWxldGVkLiAgIElmIGl0IGlzIHplcm8sIFB5dGhvbiB3aWxsIG5ldmVyIGNhbGwgdGhlIEMvQysrIGRlc3RydWN0b3IuPHA+Ci08YSBuYW1lPSJuNzIiPjwvYT48aDM+IENvbnN0cnVjdG9ycyBhbmQgRGVzdHJ1Y3RvcnM8L2gzPgotQysrIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgd2lsbCBiZSBtYXBwZWQgaW50byBQeXRob24ncyA8dHQ+X19pbml0X188L3R0PiBhbmQgIDx0dD5fX2RlbF9fPC90dD4gbWV0aG9kcyByZXNwZWN0aXZlbHkuICBTaGFkb3cgY2xhc3NlcyBhbHdheXMgY29udGFpbiB0aGVzZSBtZXRob2RzIGV2ZW4gaWYgbm8gY29uc3RydWN0b3JzIG9yIGRlc3RydWN0b3JzIHdlcmUgYXZhaWxhYmxlIGluIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlLiAgVGhlIFB5dGhvbiBkZXN0cnVjdG9yIHdpbGwgb25seSBjYWxsIGEgQy9DKysgZGVzdHJ1Y3RvciBpZiA8dHQ+c2VsZi50aGlzb3duPC90dD4gaXMgc2V0LjxwPgotPGEgbmFtZT0ibjczIj48L2E+PGgzPiBNZW1iZXIgZGF0YTwvaDM+Ci1NZW1iZXIgZGF0YSBvZiBhbiBvYmplY3QgaXMgYWNjZXNzZWQgdGhyb3VnaCBQeXRob24ncyA8dHQ+X19nZXRhdHRyX188L3R0PiBhbmQgPHR0Pl9fc2V0YXR0cl9fPC90dD4gbWV0aG9kcy48cD4KLTxhIG5hbWU9Im43NCI+PC9hPjxoMz4gUHJpbnRpbmc8L2gzPgotU1dJRyBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBQeXRob248dHQ+IF9fcmVwcl9fPC90dD4gbWV0aG9kIGZvciBlYWNoIGNsYXNzLiAgVGhpcyBmb3JjZXMgdGhlIGNsYXNzIHRvIGJlIHJlbGF0aXZlbHkgd2VsbC1iZWhhdmVkIHdoZW4gcHJpbnRpbmcgb3IgYmVpbmcgdXNlZCBpbnRlcmFjdGl2ZWx5IGluIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIuPHA+Ci08YSBuYW1lPSJuNzUiPjwvYT48aDM+IFNoYWRvdyBGdW5jdGlvbnM8L2gzPgotU3VwcG9zZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9ucyBpbiBhbiBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSB2ZWN0b3IKLXN0cnVjdCBWZWN0b3IgewotCVZlY3RvcigpOwotCX5WZWN0b3IoKTsKLQlkb3VibGUgeCx5LHo7Ci19OwotCi1WZWN0b3IgYWRkdihWZWN0b3IgYSwgVmVjdG9yIGIpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1CeSBkZWZhdWx0LCB0aGUgZnVuY3Rpb24gPHR0PmFkZHY8L3R0PiB3aWxsIG9wZXJhdGUgb24gPHR0PlZlY3RvcjwvdHQ+IHBvaW50ZXJzLCBub3QgUHl0aG9uIGNsYXNzZXMuICBIb3dldmVyLCB0aGUgU1dJRyBQeXRob24gbW9kdWxlIGlzIHNtYXJ0IGVub3VnaCB0byBrbm93IHRoYXQgPHR0PlZlY3RvcjwvdHQ+IGhhcyBiZWVuIHdyYXBwZWQgaW50byBhIFB5dGhvbiBjbGFzcyBzbyBpdCB3aWxsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50IGZvciB0aGUgPHR0PmFkZHYoKTwvdHQ+IGZ1bmN0aW9uLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRlZiBhZGR2KGEsYik6Ci0JcmVzdWx0ID0gVmVjdG9yUHRyKHZlY3RvcmMuYWRkdihhLnRoaXMsYi50aGlzKSkKLQlyZXN1bHQudGhpc293biA9IDEKLQlyZXR1cm4gcmVzdWx0Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZ1bmN0aW9uIGFyZ3VtZW50cyBhcmUgbW9kaWZpZWQgdG8gdXNlIHRoZSAidGhpcyIgcG9pbnRlciBvZiBhIFB5dGhvbiBWZWN0b3Igb2JqZWN0LiAgVGhlIHJlc3VsdCBpcyBhIHBvaW50ZXIgdG8gdGhlIHJlc3VsdCB3aGljaCBoYXMgYmVlbiBhbGxvY2F0ZWQgYnkgbWFsbG9jIG9yIG5ldyAodGhpcyBiZWhhdmlvciBpcyBkZXNjcmliZWQgaW4gdGhlIGNoYXB0ZXIgb24gU1dJRyBiYXNpY3MpLCBzbyB3ZSBzaW1wbHkgY3JlYXRlIGEgbmV3IFZlY3RvclB0ciB3aXRoIHRoZSByZXR1cm4gdmFsdWUuICBTaW5jZSB0aGUgcmVzdWx0IGludm9sdmVkIGFuIGltcGxpY2l0IG1hbGxvYywgd2Ugc2V0IHRoZSBvd25lcnNoaXAgdG8gMSBpbmRpY2F0aW5nIHRoYXQgdGhlIHJlc3VsdCBpcyB0byBiZSBvd25lZCBieSBQeXRob24gYW5kIHRoYXQgaXQgc2hvdWxkIGJlIGRlbGV0ZWQgd2hlbiB0aGUgUHl0aG9uIG9iamVjdCBpcyBkZWxldGVkLiAgQXMgYSByZXN1bHQsIG9wZXJhdGlvbnMgbGlrZSB0aGlzICBhcmUgcGVyZmVjdGx5IGxlZ2FsIGFuZCByZXN1bHQgaW4gbm8gbWVtb3J5IGxlYWtzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgdiA9IGFkZChhZGQoYWRkKGFkZChhLGIpLGMpLGQpLGUpCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVN1YnN0aXR1dGlvbiBvZiBjb21wbGV4IGRhdGF0eXBlcyBvY2N1cnMgZm9yIGFsbCBmdW5jdGlvbnMgYW5kIG1lbWJlciBmdW5jdGlvbnMgaW52b2x2aW5nIHN0cnVjdHVyZSBvciBjbGFzcyBkZWZpbml0aW9ucy4gIEl0IGlzIHJhcmVseSBuZWNlc3NhcnkgdG8gdXNlIHRoZSBsb3ctbGV2ZWwgQyBpbnRlcmZhY2Ugd2hlbiB3b3JraW5nIHdpdGggc2hhZG93IGNsYXNzZXMuPHA+Ci08YSBuYW1lPSJuNzYiPjwvYT48aDM+IE5lc3RlZCBvYmplY3RzPC9oMz4KLVNXSUcgc2hhZG93IGNsYXNzZXMgc3VwcG9ydCBuZXN0aW5nIG9mIGNvbXBsZXggb2JqZWN0cy4gIEZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSBoYWQgdGhlIGZvbGxvd2luZyBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBwYXJ0aWNsZQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gIFZlY3RvcigpOwotICBkb3VibGUgeCx5LHo7Ci19IFZlY3RvcjsKLQotdHlwZWRlZiBzdHJ1Y3QgewotICBQYXJ0aWNsZSgpOwotIH5QYXJ0aWNsZSgpOwotICBWZWN0b3IgcjsKLSAgVmVjdG9yIHY7Ci0gIFZlY3RvciBmOwotICBpbnQgICAgdHlwZTsKLX0gUGFydGljbGU7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSW4gdGhpcyBjYXNlIHlvdSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIG1lbWJlcnMgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IHAgPSBQYXJ0aWNsZSgpCi0mZ3Q7Jmd0OyZndDsgcC5yLnggPSAwLjAKLSZndDsmZ3Q7Jmd0OyBwLnIueSA9IC0xLjUKLSZndDsmZ3Q7Jmd0OyBwLnIueiA9IDIuMAotJmd0OyZndDsmZ3Q7IHAudiA9IGFkZHYodjEsdjIpCi0mZ3Q7Jmd0OyZndDsgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5lc3Rpbmcgb2Ygb2JqZWN0cyBpcyBpbXBsZW1lbnRlZCB1c2luZyBQeXRob24nczx0dD4gX19zZXRhdHRyX188L3R0PiBhbmQgPHR0Pl9fZ2V0YXR0cl9fPC90dD4gZnVuY3Rpb25zLiBJbiB0aGlzIGNhc2UsIHRoZXkgd291bGQgbG9vayBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmNsYXNzIFBhcnRpY2xlUHRyOgotCS4uLgotCWRlZiBfX2dldGF0dHJfXyhzZWxmLG5hbWUpOgotCQlpZiBuYW1lID09ICJyIjoKLQkJCXJldHVybiBwYXJ0aWNsZWMuVmVjdG9yUHRyKFBhcnRpY2xlX3JfZ2V0KHNlbGYudGhpcykpCi0JCWVsaWYgbmFtZSA9PSAidiI6Ci0JCQlyZXR1cm4gcGFydGljbGVjLlZlY3RvclB0cihQYXJ0aWNsZV92X2dldChzZWxmLnRoaXMpKQotCQkuLi4KLQkKLQlkZWYgX19zZXRhdHRyX18oc2VsZixuYW1lLHZhbHVlKToKLQkJaWYgbmFtZSA9PSAiciI6Ci0JCQlwYXJ0aWNsZWMuUGFydGljbGVfcl9zZXQoc2VsZi50aGlzLHZhbHVlLnRoaXMpCi0JCWVsaWYgbmFtZSA9PSAidiI6Ci0JCQlwYXJ0aWNsZWMuUGFydGljbGVfdl9zZXQoc2VsZi50aGlzLHZhbHVlLnRoaXMpCi0JCS4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgYXR0cmlidXRlcyBvZiBhbnkgZ2l2ZW4gb2JqZWN0IGFyZSBvbmx5IGNvbnZlcnRlZCBpbnRvIGEgUHl0aG9uIG9iamVjdCB3aGVuIHJlZmVyZW5jZWQuIFRoaXMgYXBwcm9hY2ggaXMgbW9yZSBtZW1vcnkgZWZmaWNpZW50LCBmYXN0ZXIgaWYgeW91IGhhdmUgYSBsYXJnZSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgdGhhdCBhcmVuJ3QgZXhhbWluZWQgdmVyeSBvZnRlbiwgYW5kIHdvcmtzIHdpdGggcmVjdXJzaXZlIHN0cnVjdHVyZSBkZWZpbml0aW9ucyBzdWNoIGFzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zdHJ1Y3QgTm9kZSB7Ci0JY2hhciAqbmFtZTsKLQlzdHJ1Y3QgTm9kZSAqbmV4dDsKLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5lc3RlZCBzdHJ1Y3R1cmVzIHN1Y2ggYXMgdGhlIGZvbGxvd2luZyBhcmUgYWxzbyBzdXBwb3J0ZWQgYnkgU1dJRy4gVGhlc2UgdHlwZXMgb2Ygc3RydWN0dXJlcyB0ZW5kIHRvIGFyaXNlIGZyZXF1ZW50bHkgaW4gZGF0YWJhc2UgYW5kIGluZm9ybWF0aW9uIHByb2Nlc3NpbmcgYXBwbGljYXRpb25zLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgc3RydWN0IHsgIAotCXVuc2lnbmVkIGludCBkYXRhVHlwZTsKLQl1bmlvbiB7Ci0JCWludCAgICAgICBpbnR2YWw7Ci0JCWRvdWJsZSAgICBkb3VibGV2YWw7Ci0JCWNoYXIgICAgICpjaGFydmFsOwotCQl2b2lkICAgICAqcHRydmFsdWU7Ci0JCWxvbmcgICAgICBsb25ndmFsOwotCQlzdHJ1Y3QgewotCQkJaW50ICAgIGk7Ci0JCQlkb3VibGUgZjsKLQkJCXZvaWQgICAqdjsKLQkJCWNoYXIgbmFtZVszMl07Ci0gICAgICAgICAgICAgIH0gdjsKLQl9IHU7Ci19IFZhbHVlU3RydWN0OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BY2Nlc3MgaXMgcHJvdmlkZWQgaW4gYW4gZW50aXJlbHkgbmF0dXJhbCBtYW5uZXIsPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IHYgPSBuZXdfVmFsdWVTdHJ1Y3QoKSAgICAgICAjIENyZWF0ZSBhIFZhbHVlU3RydWN0IHNvbWVob3cKLSZndDsmZ3Q7Jmd0OyB2LmRhdGFUeXBlCi0xCi0mZ3Q7Jmd0OyZndDsgdi51LmludHZhbAotNDUKLSZndDsmZ3Q7Jmd0OyB2LnUubG9uZ3ZhbAotNDUKLSZndDsmZ3Q7Jmd0OyB2LnUudi52ID0gXzBfdm9pZF9wCi0mZ3Q7Jmd0OyZndDsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVG8gc3VwcG9ydCB0aGUgZW1iZWRkZWQgc3RydWN0dXJlIGRlZmluaXRpb25zLCBTV0lHIGhhcyB0byBleHRyYWN0IHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgYW5kIHVzZSB0aGVtIHRvIGNyZWF0ZSBuZXcgUHl0aG9uIGNsYXNzZXMuICBJbiB0aGlzIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgc2hhZG93IGNsYXNzZXMgYXJlIGNyZWF0ZWQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgQ2xhc3MgY29ycmVzcG9uZGluZyB0byB1bmlvbiB1IG1lbWJlcgotY2xhc3MgVmFsdWVTdHJ1Y3RfdSA6Ci0JLi4uCi0jIENsYXNzIGNvcnJlc3BvbmRpbmcgdG8gc3RydWN0IHYgbWVtYmVyIG9mIHVuaW9uIHUKLWNsYXNzIFZhbHVlU3RydWN0X3VfdiA6Ci0JLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBuYW1lcyBvZiB0aGUgbmV3IGNsYXNzZXMgYXJlIGZvcm1lZCBieSBhcHBlbmRpbmcgdGhlIG1lbWJlciBuYW1lcyBvZiBlYWNoIGVtYmVkZGVkIHN0cnVjdHVyZS48cD4KLTxhIG5hbWU9Im43NyI+PC9hPjxoMz4gSW5oZXJpdGFuY2UgYW5kIHNoYWRvdyBjbGFzc2VzPC9oMz4KLVNpbmNlIHNoYWRvdyBjbGFzc2VzIGFyZSBpbXBsZW1lbnRlZCBpbiBQeXRob24sIHlvdSBjYW4gdXNlIGFueSBvZiB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgY2xhc3NlcyBhcyBhIGJhc2UgY2xhc3MgZm9yIG1vcmUgUHl0aG9uIGNsYXNzZXMuICBIb3dldmVyLCB5b3UgbmVlZCB0byBiZSBleHRyZW1lbHkgY2FyZWZ1bCB3aGVuIHVzaW5nIG11bHRpcGxlIGluaGVyaXRhbmNlLiAgV2hlbiBtdWx0aXBsZSBpbmhlcml0YW5jZSBpcyB1c2VkLCBhdCBtb3N0IE9ORSBTV0lHIGdlbmVyYXRlZCBzaGFkb3cgY2xhc3MgY2FuIGJlIGludm9sdmVkLiAgSWYgbXVsdGlwbGUgU1dJRyBnZW5lcmF0ZWQgY2xhc3NlcyBhcmUgdXNlZCBpbiBhIG11bHRpcGxlIGluaGVyaXRhbmNlIGhpZXJhcmNoeSwgeW91IHdpbGwgZ2V0IG5hbWUgY2xhc2hlcyBvbiB0aGUgPHR0PnRoaXM8L3R0PiBwb2ludGVyLCB0aGUgPHR0Pl9fZ2V0YXR0cl9fPC90dD4gYW5kIDx0dD5fX3NldGF0dHJfXzwvdHQ+IGZ1bmN0aW9ucyB3b24ndCB3b3JrIHByb3Blcmx5IGFuZCB0aGUgd2hvbGUgdGhpbmcgd2lsbCBwcm9iYWJseSBjcmFzaCBhbmQgYnVybi4gUGVyaGFwcyBpdCdzIGJlc3QgdG8gdGhpbmsgb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYXMgYSBiaWcgaGFtbWVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gc29sdmUgYWxvdCBvZiBwcm9ibGVtcywgYnV0IGl0IGh1cnRzIHF1aXRlIGFsb3QgaWYgeW91IGFjY2lkZW50bHkgZHJvcCBpdCBvbiB5b3VyIGZvb3QuLi4uIDxwPgotPGEgbmFtZT0ibjc4Ij48L2E+PGgzPiBNZXRob2RzIHRoYXQgcmV0dXJuIG5ldyBvYmplY3RzPC9oMz4KLUJ5IGRlZmF1bHQgU1dJRyBhc3N1bWVzIHRoYXQgY29uc3RydWN0b3JzIGFyZSB0aGUgb25seSBmdW5jdGlvbnMgcmV0dXJuaW5nIG5ldyBvYmplY3RzIHRvIFB5dGhvbi4gIEhvd2V2ZXIsIHlvdSBtYXkgaGF2ZSBvdGhlciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gbmV3IG9iamVjdHMgYXMgd2VsbC4gIEZvciBleGFtcGxlIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1WZWN0b3IgKmNyb3NzX3Byb2R1Y3QoVmVjdG9yICp2MSwgVmVjdG9yICp2MikgewotCVZlY3RvciAqcmVzdWx0ID0gbmV3IFZlY3RvcigpOwotCXJlc3VsdCA9IC4uLiBjb21wdXRlIGNyb3NzIHByb2R1Y3QgLi4uCi0JcmV0dXJuIHJlc3VsdDsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiB0aGUgdmFsdWUgaXMgcmV0dXJuZWQgdG8gUHl0aG9uLCB3ZSB3YW50IFB5dGhvbiB0byBhc3N1bWUgb3duZXJzaGlwLiAgVGhlIGJydXRlIGZvcmNlIHdheSB0byBkbyB0aGlzIGlzIHRvIHNpbXBseSBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXNvd24uICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IHYgPSBjcm9zc19wcm9kdWN0KGEsYikKLSZndDsmZ3Q7Jmd0OyB2LnRoaXNvd24gPSAxICAgICAgICAgICAgICAgICAgICAgICAgIyBOb3cgUHl0aG9uIG93bnMgaXQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVW5mb3J0dW5hdGVseSwgdGhpcyBpcyB1Z2x5IGFuZCBpdCBkb2Vzbid0IHdvcmsgaWYgd2UgdXNlIHRoZSByZXN1bHQgYXMgYSAgdGVtcG9yYXJ5IHZhbHVlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT53ID0gdmVjdG9yX2FkZChjcm9zc19wcm9kdWN0KGEsYiksYykgICAgICMgUmVzdWx0cyBpbiBhIG1lbW9yeSBsZWFrCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUhvd2V2ZXIsIHlvdSBjYW4gcHJvdmlkZSBhIGhpbnQgdG8gU1dJRyB3aGVuIHdvcmtpbmcgd2l0aCBzdWNoIGEgZnVuY3Rpb24gYXMgc2hvd24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEMgRnVuY3Rpb24gcmV0dXJuaW5nIGEgbmV3IG9iamVjdAotJW5ldyBWZWN0b3IgKmNyb3NzX3Byb2R1Y3QoVmVjdG9yICp2MSwgVmVjdG9yICp2Mik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+JW5ldzwvdHQ+IGRpcmVjdGl2ZSBvbmx5IHByb3ZpZGVzIGEgaGludCB0aGF0IHRoZSBmdW5jdGlvbiBpcyByZXR1cm5pbmcgYSBuZXcgb2JqZWN0LiAgVGhlIFB5dGhvbiBtb2R1bGUgd2lsbCBhc3NpZ24gcHJvcGVyIG93bmVyc2hpcCBvZiB0aGUgb2JqZWN0IHdoZW4gdGhpcyBpcyB1c2VkLjxwPgotPGEgbmFtZT0ibjc5Ij48L2E+PGgzPiBQZXJmb3JtYW5jZSBjb25jZXJucyBhbmQgaGludHM8L2gzPgotU2hhZG93IGNsYXNzaW5nIGlzIHByaW1hcmlseSBpbnRlbmRlZCB0byBiZSBhIGNvbnZlbmllbnQgd2F5IG9mIGFjY2Vzc2luZyBDL0MrKyBvYmplY3RzIGZyb20gUHl0aG9uLiAgIEhvd2V2ZXIsIGlmIHlvdSdyZSBkaXJlY3RseSBtYW5pcHVsYXRpbmcgaHVnZSBhcnJheXMgb2YgY29tcGxleCBvYmplY3RzIGZyb20gUHl0aG9uLCBwZXJmb3JtYW5jZSBtYXkgc3VmZmVyIGdyZWF0bHkuICBJbiB0aGVzZSBjYXNlcywgeW91IHNob3VsZCBjb25zaWRlciBpbXBsZW1lbnRpbmcgdGhlIGZ1bmN0aW9ucyBpbiBDIG9yIHRoaW5raW5nIG9mIHdheXMgdG8gb3B0aW1pemUgdGhlIHByb2JsZW0uPHA+Ci08cD4KLVRoZXJlIGFyZSBhIG51bWJlciBvZiB3YXlzIHRvIG9wdGltaXplIHByb2dyYW1zIHRoYXQgdXNlIHNoYWRvdyBjbGFzc2VzLiAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyAgdHdvIGNvZGUgZnJhZ21lbnRzIGludm9sdmluZyB0aGUgPHR0PlBhcnRpY2xlPC90dD4gZGF0YSBzdHJ1Y3R1cmUgaW4gYSBwcmV2aW91cyBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kZWYgZm9yY2UxKHAxLHAyKToKLQlkeCA9IHAyLnIueCAtIHAxLnIueAotCWR5ID0gcDIuci55IC0gcDEuci55Ci0JZHogPSBwMi5yLnogLSBwMS5yLnoKLQlyMiA9IGR4KmR4ICsgZHkqZHkgKyBkeipkegotCWYgPSAxLjAvKHIyKm1hdGguc3FydChyMikpCi0JcDEuZi54ID0gcDEuZi54ICsgZipkeAotCXAyLmYueCA9IHAyLmYueCAtIGYqZHgKLQlwMS5mLnkgPSBwMS5mLnkgKyBmKmR5Ci0JcDIuZi55ID0gcDIuZi55IC0gZipkeQotCXAxLmYueiA9IHAxLmYueiArIGYqZHoKLQlwMi5mLnogPSBwMi5mLnogLSBmKmR6Ci0KLWRlZiBmb3JjZTIocDEscDIpOgotCXIxID0gcDEucgotCXIyID0gcDIucgotCWR4ID0gcjIueCAtIHIxLngKLQlkeSA9IHIyLnkgLSByMS55Ci0JZHogPSByMi56IC0gcjEuegotCXIyID0gZHgqZHggKyBkeSpkeSArIGR6KmR6Ci0JZiA9IDEuMC8ocjIqbWF0aC5zcXJ0KHIyKSkKLQlmMSA9IHAxLmYKLQlmMiA9IHAyLmYKLQlmMS54ID0gZjEueCArIGYqZHgKLQlmMi54ID0gZjIueCAtIGYqZHgKLQlmMS55ID0gZjEueSArIGYqZHkKLQlmMi55ID0gZjIueSAtIGYqZHkKLQlmMS56ID0gZjEueiArIGYqZHoKLQlmMi56ID0gZjIueiAtIGYqZHoKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGZpcnN0IGNhbGN1bGF0aW9uIHNpbXBseSB3b3JrcyB3aXRoIGVhY2ggUGFydGljbGUgc3RydWN0dXJlIGRpcmVjdGx5LiAgVW5mb3J0dW5hdGVseSwgaXQgcGVyZm9ybXMgYWxvdCBvZiBkZXJlZmVyZW5jaW5nIG9mIG9iamVjdHMuICBJZiB0aGUgY2FsY3VsYXRpb24gaXMgcmVzdHJ1Y3R1cmVkIHRvIHVzZSB0ZW1wb3JhcnkgdmFyaWFibGVzIGFzIHNob3duIGluIGZvcmNlMiwgaXQgd2lsbCBydW4gc2lnbmlmaWNhbnRseSBmYXN0ZXItLWluIGZhY3QsIG9uIG15IG1hY2hpbmUsIHRoZSBzZWNvbmQgY29kZSBmcmFnbWVudCBydW5zIG1vcmUgdGhhbiB0d2ljZSBhcyBmYXN0IGFzIHRoZSBmaXJzdCBvbmUuPHA+Ci08cD4KLUlmIHBlcmZvcm1hbmNlIGlzIGV2ZW4gbW9yZSBjcml0aWNhbCB5b3UgY2FuIHVzZSB0aGUgbG93LWxldmVsIEMgaW50ZXJmYWNlIHdoaWNoIGVsaW1pbmF0ZXMgYWxsIG9mIHRoZSBvdmVyaGVhZCBvZiBnb2luZyB0aHJvdWdoIFB5dGhvbidzIGNsYXNzIG1lY2hhbmlzbSAoYXQgdGhlIGV4cGVuc2Ugb2YgY29kaW5nIHNpbXBsaWNpdHkpLiBXaGVuIFB5dGhvbiBzaGFkb3cgY2xhc3NlcyBhcmUgdXNlZCwgdGhlIGxvdyBsZXZlbCBDIGludGVyZmFjZSBjYW4gc3RpbGwgYmUgdXNlZCBieSBpbXBvcnRpbmcgdGhlIGBtb2R1bGVjJyBtb2R1bGUgd2hlcmUgYG1vZHVsZScgaXMgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB5b3UgdXNlZCBpbiB0aGUgU1dJRyBpbnRlcmZhY2UgZmlsZS48cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ3OjA3IDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1NXSUcuaHRtbCBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvU1dJRy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGViNmRhLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvU1dJRy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTU4NiArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlNXSUcgQmFzaWNzPC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08YSBuYW1lPSJuMCI+PC9hPjxoMT4zIFNXSUcgQmFzaWNzPC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+UnVubmluZyBTV0lHPC9hPgotPGxpPiA8YSBocmVmPSIjbjIiPlNpbXBsZSBDIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgY29uc3RhbnRzPC9hPgotPGxpPiA8YSBocmVmPSIjbjMiPlBvaW50ZXJzIGFuZCBjb21wbGV4IG9iamVjdHM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNCI+R2V0dGluZyBkb3duIHRvIGJ1c2luZXNzPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPlN0cnVjdHVyZXMsIHVuaW9ucywgYW5kIG9iamVjdCBvcmllbnRlZCBDIHByb2dyYW1taW5nPC9hPgotPGxpPiA8YSBocmVmPSIjbjYiPkMrKyBzdXBwb3J0PC9hPgotPGxpPiA8YSBocmVmPSIjbjciPk9iamVjdGl2ZS1DPC9hPgotPGxpPiA8YSBocmVmPSIjbjgiPkNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjkiPkNvZGUgSW5zZXJ0aW9uPC9hPgotPGxpPiA8YSBocmVmPSIjbjEwIj5BIGdlbmVyYWwgaW50ZXJmYWNlIGJ1aWxkaW5nIHN0cmF0ZWd5PC9hPgotPC91bD4KLQotPGEgbmFtZT0ibjEiPjwvYT48aDI+IFJ1bm5pbmcgU1dJRzwvaDI+Ci1TV0lHIGlzIGludm9rZWQgYnkgdGhlIDx0dD5zd2lnPC90dD4gY29tbWFuZC4gVGhpcyBjb21tYW5kIGhhcyBhIG51bWJlciBvZiBvcHRpb25zIGluY2x1ZGluZzo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zd2lnICZsdDtvcHRpb25zJmd0OyBmaWxlbmFtZQotCi0tdGNsICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgVGNsIHdyYXBwZXJzCi0tdGNsOCAgICAgICAgICAgICAgICAgR2VuZXJhdGUgVGNsIDguMCB3cmFwcGVycwotLXBlcmwgICAgICAgICAgICAgICAgIEdlbmVyYXRlIFBlcmw1IHdyYXBwZXJzCi0tcHl0aG9uICAgICAgICAgICAgICAgR2VuZXJhdGUgUHl0aG9uIHdyYXBwZXJzCi0tcGVybDQgICAgICAgICAgICAgICAgR2VuZXJhdGUgUGVybDQgd3JhcHBlcnMKLS1ndWlsZSAgICAgICAgICAgICAgICBHZW5lcmF0ZSBHdWlsZSB3cmFwcGVycwotLWRhc2NpaSAgICAgICAgICAgICAgIEFTQ0lJIGRvY3VtZW50YXRpb24KLS1kbGF0ZXggICAgICAgICAgICAgICBMYVRlWCBkb2N1bWVudGF0aW9uCi0tZGh0bWwgICAgICAgICAgICAgICAgSFRNTCBkb2N1bWVudGF0aW9uCi0tZG5vbmUgICAgICAgICAgICAgICAgTm8gZG9jdW1lbnRhdGlvbgotLWMrKyAgICAgICAgICAgICAgICAgIEVuYWJsZSBDKysgaGFuZGxpbmcKLS1vYmpjICAgICAgICAgICAgICAgICBFbmFibGUgT2JqZWN0aXZlLUMgaGFuZGxpbmcuCi0tSWRpciAgICAgICAgICAgICAgICAgU2V0IFNXSUcgaW5jbHVkZSBkaXJlY3RvcnkKLS1sZmlsZSAgICAgICAgICAgICAgICBJbmNsdWRlIGEgU1dJRyBsaWJyYXJ5IGZpbGUuCi0tYyAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgcmF3IHdyYXBwZXIgY29kZSAob21pdCBzdXBwb3J0aW5nIGNvZGUpCi0tdiAgICAgICAgICAgICAgICAgICAgVmVyYm9zZSBtb2RlIChwZXJoYXBzIG92ZXJseSB2ZXJib3NlKQotLW8gb3V0ZmlsZSAgICAgICAgICAgIE5hbWUgb2Ygb3V0cHV0IGZpbGUKLS1kIGRvY2ZpbGUgICAgICAgICAgICBTZXQgbmFtZSBvZiBkb2N1bWVudGF0aW9uIGZpbGUgKHdpdGhvdXQgc3VmZml4KQotLW1vZHVsZSBuYW1lICAgICAgICAgIFNldCBuYW1lIG9mIFNXSUcgbW9kdWxlCi0tRHN5bWJvbCAgICAgICAgICAgICAgRGVmaW5lIGEgc3ltYm9sCi0tdmVyc2lvbiAgICAgICAgICAgICAgU2hvdyBTV0lHJ3MgdmVyc2lvbiBudW1iZXIKLS1oZWxwICAgICAgICAgICAgICAgICBEaXNwbGF5IGFsbCBvcHRpb25zCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgaXMgb25seSBhIHBhcnRpYWwgbGlzdCBvZiBvcHRpb25zLiBBIGZ1bGwgbGlzdGluZyBvZiBvcHRpb25zIGNhbiBiZSBvYnRhaW5lZCBieSBpbnZva2luZyAiPHR0PnN3aWcgLWhlbHA8L3R0PiIuIEVhY2ggdGFyZ2V0IGxhbmd1YWdlIG1heSBoYXZlIGFkZGl0aW9uYWwgb3B0aW9ucyB3aGljaCBjYW4gYmUgZGlzcGxheWVkIHVzaW5nICI8dHQ+c3dpZyAtbGFuZyAtaGVscDwvdHQ+IiB3aGVyZSA8dHQ+LWxhbmc8L3R0PiBpcyBvbmUgb2YgdGhlIHRhcmdldCBsYW5ndWFnZXMgYWJvdmUuPHA+Ci08YSBuYW1lPSJuMTEiPjwvYT48aDM+IElucHV0IGZvcm1hdDwvaDM+Ci1BcyBpbnB1dCwgU1dJRyB0YWtlcyBhIGZpbGUgY29udGFpbmluZyBBTlNJIEMvQysrIGRlY2xhcmF0aW9ucy4gVGhpcyBmaWxlIG1heSBiZSBhIHNwZWNpYWwgImludGVyZmFjZSBmaWxlIiAodXN1YWxseSBnaXZlbiBhIC5pIHN1ZmZpeCksIGEgQyBoZWFkZXIgZmlsZSBvciBhIEMgc291cmNlIGZpbGUuIFRoZSBtb3N0IGNvbW1vbiBtZXRob2Qgb2YgdXNpbmcgU1dJRyBpcyB3aXRoIGEgc3BlY2lhbCBpbnRlcmZhY2UgZmlsZS4gVGhlc2UgZmlsZXMgY29udGFpbiBBTlNJIEMgZGVjbGFyYXRpb25zIGxpa2UgYSBoZWFkZXIgZmlsZSwgYnV0IGFsc28gY29udGFpbiBTV0lHIGRpcmVjdGl2ZXMgYW5kIGRvY3VtZW50YXRpb24uIEludGVyZmFjZSBmaWxlcyB1c3VhbGx5IGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtYXQgOjxwPgotPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBteW1vZHVsZSAKLSV7Ci0jaW5jbHVkZSAibXloZWFkZXIuaCIKLSV9Ci0vLyBOb3cgbGlzdCBBTlNJIEMgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgbmFtZSBvZiB0aGUgbW9kdWxlIChpZiBzdXBwbGllZCkgbXVzdCBhbHdheXMgYXBwZWFyIGJlZm9yZSB0aGUgZmlyc3QgQyBkZWNsYXJhdGlvbiBvciBiZSBzdXBwbGllZCBvbiB0aGUgU1dJRyBjb21tYW5kIGxpbmUgdXNpbmcgdGhlIDx0dD4tbW9kdWxlPC90dD4gb3B0aW9uIChXaGVuIHRoZSBtb2R1bGUgbmFtZSBpcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSwgaXQgd2lsbCBvdmVycmlkZSBhbnkgbW9kdWxlIG5hbWUgcHJlc2VudCBpbiBhIGZpbGUpLiBFdmVyeXRoaW5nIGluc2lkZSB0aGUgPHR0PiV7LCU8L3R0Pn0gYmxvY2sgaXMgY29waWVkIHZlcmJhdGltIGludG8gdGhlIHJlc3VsdGluZyBvdXRwdXQgZmlsZS4gVGhlIDx0dD4leywlfTwvdHQ+IGJsb2NrIGlzIG9wdGlvbmFsLCBidXQgbW9zdCBpbnRlcmZhY2UgZmlsZXMgdXNlIG9uZSB0byBpbmNsdWRlIHRoZSBwcm9wZXIgaGVhZGVyIGZpbGVzLjxwPgotPGEgbmFtZT0ibjEyIj48L2E+PGgzPiBTV0lHIE91dHB1dDwvaDM+Ci1CeSBkZWZhdWx0IGFuIGludGVyZmFjZSBmaWxlIHdpdGggdGhlIG5hbWUgPHR0Pm15ZmlsZS5pPC90dD4gd2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgZmlsZSBjYWxsZWQgPHR0Pm15ZmlsZV93cmFwLmM8L3R0Pi4gVGhlIG5hbWUgb2YgdGhlIG91dHB1dCBmaWxlIGNhbiBiZSBjaGFuZ2VkIHVzaW5nIHRoZSA8dHQ+LW88L3R0PiBvcHRpb24uIFdoZW4gd29ya2luZyB3aXRoIHNvbWUgQysrIGNvbXBpbGVycywgdGhlIDx0dD4tbzwvdHQ+IG9wdGlvbiBjYW4gYmUgdXNlZCB0byBnaXZlIHRoZSBvdXRwdXQgZmlsZSBhIHByb3BlciBDKysgc3VmZml4LiBUaGUgb3V0cHV0IGZpbGUgdXN1YWxseSBjb250YWlucyBldmVyeXRoaW5nIHRoYXQgaXMgbmVlZGVkIHRvIGJ1aWxkIGEgd29ya2luZyBtb2R1bGUgZm9yIHRoZSB0YXJnZXQgc2NyaXB0aW5nIGxhbmd1YWdlLiBDb21waWxlIGl0IGFsb25nIHdpdGggeW91ciBDIHByb2dyYW0sIGxpbmsgaXQsIGFuZCB5b3Ugc2hvdWxkIGJlIHJlYWR5IHRvIHJ1bi48cD4KLTxhIG5hbWU9Im4xMyI+PC9hPjxoMz4gQ29tbWVudHM8L2gzPgotQyBhbmQgQysrIHN0eWxlIGNvbW1lbnRzIG1heSBiZSBwbGFjZWQgaW4gaW50ZXJmYWNlIGZpbGVzLCBidXQgdGhlc2UgYXJlIHVzZWQgdG8gc3VwcG9ydCB0aGUgYXV0b21hdGljIGRvY3VtZW50YXRpb24gc3lzdGVtLiBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIHNlY3Rpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGlzLiBPdGhlcndpc2UsIFNXSUcgdGhyb3dzIG91dCBhbGwgY29tbWVudHMgc28geW91IGNhbiB1c2UgYSBDKysgc3R5bGUgY29tbWVudCBldmVuIGlmIHRoZSByZXN1bHRpbmcgd3JhcHBlciBmaWxlIGlzIGNvbXBpbGVkIHdpdGggdGhlIEMgY29tcGlsZXIuIDxwPgotPGEgbmFtZT0ibjE0Ij48L2E+PGgzPiBDIFByZXByb2Nlc3NvciBkaXJlY3RpdmVzPC9oMz4KLVNXSUcgZG9lcyBub3QgcnVuIHRoZSBDIHByZXByb2Nlc3Nvci4gSWYgeW91ciBpbnB1dCBmaWxlIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIEMgcHJlcHJvY2Vzc29yLCBTV0lHIHdpbGwgcHJvYmFibHkgaGF0ZSBpdC4gSG93ZXZlciwgU1dJRyBkb2VzIHJlY29nbml6ZSBhIGZldyBDIHByZXByb2Nlc3NvciBjb25zdHJ1Y3RzIHRoYXQgYXJlIHF1aXRlIGNvbW1vbiBpbiBDIGNvZGUgOjxwPgotPHA+Ci08dWw+Ci08bGk+PHR0PiNkZWZpbmU8L3R0Pi4gVXNlZCB0byBjcmVhdGUgY29uc3RhbnRzCi08bGk+PHR0PiNpZmRlZiwjaWZuZGVmLCNlbHNlLCNlbmRpZjwvdHQ+LCA8dHQ+I2lmLCAjZWxpZjwvdHQ+LiBVc2VkIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbgotPC91bD4KLTxwPgotQWxsIG90aGVyIEMgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgYXJlIGlnbm9yZWQgYnkgU1dJRyAoaW5jbHVkaW5nIG1hY3JvcyBjcmVhdGVkIHVzaW5nIDx0dD4jZGVmaW5lPC90dD4pLiA8cD4KLTxhIG5hbWU9Im4xNSI+PC9hPjxoMz4gU1dJRyBEaXJlY3RpdmVzPC9oMz4KLVNXSUcgZGlyZWN0aXZlcyBhcmUgYWx3YXlzIHByZWNlZGVkIGJ5IGEgIjx0dD4lPC90dD4iIHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBub3JtYWwgQyBkaXJlY3RpdmVzIGFuZCBkZWNsYXJhdGlvbnMuIFRoZXJlIGFyZSBhYm91dCB0d28gZG96ZW4gZGlmZmVyZW50IGRpcmVjdGl2ZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBnaXZlIFNXSUcgaGludHMsIHByb3ZpZGUgYW5ub3RhdGlvbiwgYW5kIGNoYW5nZSBTV0lHJ3MgYmVoYXZpb3IgaW4gc29tZSB3YXkgb3IgYW5vdGhlci4gPHA+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IExpbWl0YXRpb25zIGluIHRoZSBQYXJzZXIgKGFuZCB2YXJpb3VzIHRoaW5ncyB0byBrZWVwIGluIG1pbmQpPC9oMz4KLUl0IHdhcyBuZXZlciBteSBpbnRlbnQgdG8gd3JpdGUgYSBmdWxsIEMvQysrIHBhcnNlci4gVGhlcmVmb3JlIFNXSUcgaGFzIGEgbnVtYmVyIG9mIGxpbWl0YXRpb25zIHRvIGtlZXAgaW4gbWluZC48cD4KLTxwPgotPHVsPgotPGxpPkZ1bmN0aW9ucyB3aXRoIHZhcmlhYmxlIGxlbmd0aCBhcmd1bWVudHMgKGllLiAiLi4uIikgYXJlIG5vdCBzdXBwb3J0ZWQuCi08bGk+Q29tcGxleCBkZWNsYXJhdGlvbnMgc3VjaCBhcyBmdW5jdGlvbiBwb2ludGVycyBhbmQgYXJyYXlzIGFyZSBwcm9ibGVtYXRpYy4gWW91IG1heSBuZWVkIHRvIHJlbW92ZSB0aGVzZSBmcm9tIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlIG9yIGhpZGUgdGhlbSB3aXRoIGEgdHlwZWRlZi4KLTxsaT5DKysgc291cmNlIGNvZGUgKHdoYXQgd291bGQgYXBwZWFyIGluIGEgLkMgZmlsZSkgaXMgZXNwZWNpYWxseSBwcm9ibGVtYXRpYy4gUnVubmluZyBTV0lHIG9uIEMrKyBzb3VyY2UgY29kZSBpcyBoaWdobHkgZGlzY291cmFnZWQuCi08bGk+TW9yZSBzb3BoaXN0aWNhdGVkIGZlYXR1cmVzIG9mIEMrKyBzdWNoIGFzIHRlbXBsYXRlcyBhbmQgb3BlcmF0b3Igb3ZlcmxvYWRpbmcgYXJlIG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSBzZWUgdGhlIHNlY3Rpb24gb24gdXNpbmcgU1dJRyB3aXRoIEMrKyBmb3IgbW9yZSBkZXRhaWxzLiBXaGVuIGVuY291bnRlcmVkLCBTV0lHIG1heSBpc3N1ZSBhIHdhcm5pbmcgbWVzc2FnZSBvciBhIHN5bnRheCBlcnJvciBpZiBpdCBjYW4ndCBmaWd1cmUgb3V0IHlvdSBhcmUgdHJ5aW5nIHRvIGRvLgotPC91bD4KLTxwPgotTWFueSBvZiB0aGVzZSBsaW1pdGF0aW9ucyBtYXkgYmUgZWxpbWluYXRlZCBpbiBmdXR1cmUgcmVsZWFzZXMuIEl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IG1hbnkgb2YgdGhlIHByb2JsZW1zIGFzc29jaWF0ZWQgd2l0aCBjb21wbGV4IGRlY2xhcmF0aW9ucyBjYW4gc29tZXRpbWVzIGJlIGZpeGVkIGJ5IGNsZXZlciB1c2Ugb2YgPHR0PnR5cGVkZWY8L3R0Pi48cD4KLTxwPgotSWYgeW91IGFyZSBub3Qgc3VyZSB3aGV0aGVyIFNXSUcgY2FuIGhhbmRsZSBhIHBhcnRpY3VsYXIgZGVjbGFyYXRpb24sIHRoZSBiZXN0IHRoaW5nIHRvIGRvIGlzIHRyeSBpdCBhbmQgc2VlLiBTV0lHIHdpbGwgY29tcGxhaW4gbG91ZGx5IGlmIGl0IGNhbid0IGZpZ3VyZSBvdXQgd2hhdCdzIGdvaW5nIG9uLiBXaGVuIGVycm9ycyBvY2N1ciwgeW91IGNhbiBlaXRoZXIgcmVtb3ZlIHRoZSBvZmZlbmRpbmcgZGVjbGFyYXRpb24sIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBpdCBvdXQgKFNXSUcgZGVmaW5lcyBhIHN5bWJvbCA8dHQ+U1dJRzwvdHQ+IHRoYXQgY2FuIGJlIHVzZWQgZm9yIHRoaXMpLCBvciB3cml0ZSBhIGhlbHBlciBmdW5jdGlvbiB0byB3b3JrIGFyb3VuZCB0aGUgcHJvYmxlbS4gPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gU2ltcGxlIEMgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGFuZCBjb25zdGFudHM8L2gyPgotU1dJRyBzdXBwb3J0cyBqdXN0IGFib3V0IGFueSBDIGZ1bmN0aW9uLCB2YXJpYWJsZSwgb3IgY29uc3RhbnQgaW52b2x2aW5nIGJ1aWx0LWluIEMgZGF0YXR5cGVzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0KLWV4dGVybiBkb3VibGUgc2luKGRvdWJsZSB4KTsKLWV4dGVybiBpbnQgc3RyY21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLWV4dGVybiBpbnQgTXlfdmFyaWFibGU7Ci0jZGVmaW5lIFNUQVRVUyA1MAotY29uc3QgY2hhciAqVkVSU0lPTj0iMS4xIjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotd2lsbCBjcmVhdGUgdHdvIGNvbW1hbmRzIGNhbGxlZCAiPHR0PnNpbjwvdHQ+IiBhbmQgIjx0dD5zdHJjbXA8L3R0PiIsIGEgZ2xvYmFsIHZhcmlhYmxlICI8dHQ+TXlfdmFyaWFibGU8L3R0PiIsIGFuZCB0d28gY29uc3RhbnRzICI8dHQ+U1RBVFVTPC90dD4iIGFuZCAiPHR0PlZFUlNJT048L3R0PiIuIFRoaW5ncyB3b3JrIGFib3V0IGxpa2UgeW91IHdvdWxkIGV4cGVjdC4gRm9yIGV4YW1wbGUsIGluIFRjbCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzaW4gMwotNS4yMzM1OTU2Ci0lIHN0cmNtcCBEYXZlIE1pa2UKLS0xCi0lIHB1dHMgJE15X3ZhcmlhYmxlCi00MgotJSBwdXRzICRTVEFUVVMKLTUwCi0lIHB1dHMgJFZFUlNJT04KLTEuMQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgbWFpbiBjb25jZXJuIHdoZW4gd29ya2luZyB3aXRoIHNpbXBsZSBmdW5jdGlvbnMgaXMgU1dJRydzIHRyZWF0bWVudCBvZiBiYXNpYyBkYXRhdHlwZXMuIFRoaXMgaXMgZGVzY3JpYmVkIG5leHQuPHA+Ci08YSBuYW1lPSJuMTciPjwvYT48aDM+IEludGVnZXJzPC9oMz4KLVNXSUcgbWFwcyB0aGUgZm9sbG93aW5nIEMgZGF0YXR5cGVzIGludG8gaW50ZWdlcnMgaW4gdGhlIHRhcmdldCBzY3JpcHRpbmcgbGFuZ3VhZ2UuIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludAotc2hvcnQKLWxvbmcKLXVuc2lnbmVkCi1zaWduZWQKLXVuc2lnbmVkIHNob3J0Ci11bnNpZ25lZCBsb25nCi11bnNpZ25lZCBjaGFyCi1zaWduZWQgY2hhcgotYm9vbAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TY3JpcHRpbmcgbGFuZ3VhZ2VzIHVzdWFsbHkgb25seSBzdXBwb3J0IGEgc2luZ2xlIGludGVnZXIgdHlwZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGVpdGhlciB0aGUgPHR0PmludDwvdHQ+IG9yIDx0dD5sb25nPC90dD4gZGF0YXR5cGUgaW4gQy4gV2hlbiBjb252ZXJ0aW5nIGZyb20gQywgYWxsIG9mIHRoZSBhYm92ZSBkYXRhdHlwZXMgYXJlIGNhc3QgaW50byB0aGUgcmVwcmVzZW50YXRpb24gdXNlZCBieSB0aGUgdGFyZ2V0IHNjcmlwdGluZyBsYW5ndWFnZS4gVGh1cywgYSAxNiBiaXQgc2hvcnQgaW4gQyBtYXkgYmUgY29udmVydGVkIHRvIGEgMzIgYml0IGludGVnZXIuIFdoZW4gaW50ZWdlcnMgYXJlIGNvbnZlcnRlZCBmcm9tIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgYmFjayBpbnRvIEMsIHRoZSB2YWx1ZSB3aWxsIGJlIGNhc3QgaW50byB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gVGhlIHZhbHVlIHdpbGwgYmUgdHJ1bmNhdGVkIGlmIGl0IGlzIHRvbyBsYXJnZSB0byBmaXQgaW50byB0aGUgY29ycmVzcG9uZGluZyBDIGRhdGF0eXBlLiBUaGlzIHRydW5jYXRpb24gaXMgbm90IGN1cnJlbnRseSBjaGVja2VkLjxwPgotPHA+Ci1UaGUgPHR0PnVuc2lnbmVkIGNoYXI8L3R0PiBhbmQgPHR0PnNpZ25lZCBjaGFyPC90dD4gZGF0YXR5cGVzIGFyZSBzcGVjaWFsIGNhc2VzIHRoYXQgYXJlIHRyZWF0ZWQgYXMgaW50ZWdlcnMgYnkgU1dJRy4gTm9ybWFsbHksIHRoZSA8dHQ+Y2hhcjwvdHQ+IGRhdGF0eXBlIGlzIG1hcHBlZCBhcyBhbiBBU0NJSSBzdHJpbmcuIDxwPgotPHA+Ci1UaGUgPHR0PmJvb2w8L3R0PiBkYXRhdHlwZSBpcyBjYXN0IHRvIGFuZCBmcm9tIGFuIGludGVnZXIgdmFsdWUgb2YgMCBhbmQgMS48cD4KLTxwPgotU29tZSBjYXJlIGlzIGluIG9yZGVyIGZvciBsYXJnZSBpbnRlZ2VyIHZhbHVlcy4gTW9zdCBzY3JpcHRpbmcgbGFuZ3VhZ2UgdXNlIDMyIGJpdCBpbnRlZ2VycyBzbyBtYXBwaW5nIGEgNjQgYml0IGxvbmcgaW50ZWdlciBtYXkgbGVhZCB0byB0cnVuY2F0aW9uIGVycm9ycy4gU2ltaWxhciBwcm9ibGVtcyBtYXkgYXJpc2Ugd2l0aCAzMiBiaXQgdW5zaWduZWQgaW50ZWdlcnMgdGhhdCBtYXkgc2hvdyB1cCBhcyBuZWdhdGl2ZSBudW1iZXJzLiBBcyBhIHJ1bGUgb2YgdGh1bWIsIHRoZSA8dHQ+aW50PC90dD4gZGF0YXR5cGUgYW5kIGFsbCB2YXJpYXRpb25zIG9mIDx0dD5jaGFyPC90dD4gYW5kIDx0dD5zaG9ydDwvdHQ+IGRhdGF0eXBlcyBhcmUgc2FmZSB0byB1c2UuIEZvciA8dHQ+dW5zaWduZWQgaW50PC90dD4gYW5kIDx0dD5sb25nPC90dD4gZGF0YXR5cGVzLCB5b3Ugc2hvdWxkIHZlcmlmeSB0aGUgY29ycmVjdCBvcGVyYXRpb24gb2YgeW91ciBwcm9ncmFtIGFmdGVyIHdyYXBwaW5nIGl0IHdpdGggU1dJRy48cD4KLTxhIG5hbWU9Im4xOCI+PC9hPjxoMz4gRmxvYXRpbmcgUG9pbnQ8L2gzPgotU1dJRyByZWNvZ25pemVzIHRoZSBmb2xsb3dpbmcgZmxvYXRpbmcgcG9pbnQgdHlwZXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWZsb2F0Ci1kb3VibGUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotRmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhcmUgbWFwcGVkIHRvIGFuZCBmcm9tIHRoZSBuYXR1cmFsIHJlcHJlc2VudGF0aW9uIG9mIGZsb2F0cyBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlLiBUaGlzIGlzIGFsbW9zdCBhbHdheXMgYSA8dHQ+ZG91YmxlPC90dD4gZXhjZXB0IGluIFRjbCA3Lnggd2hpY2ggdXNlcyBjaGFyYWN0ZXIgc3RyaW5ncy4gVGhlIHJhcmVseSB1c2VkIGRhdGF0eXBlIG9mICJsb25nIGRvdWJsZSIgaXMgbm90IHN1cHBvcnRlZCBieSBTV0lHLjxwPgotPGEgbmFtZT0ibjE5Ij48L2E+PGgzPiBDaGFyYWN0ZXIgU3RyaW5nczwvaDM+Ci1UaGUgPHR0PmNoYXI8L3R0PiBkYXRhdHlwZSBpcyBtYXBwZWQgaW50byBhIE5VTEwgdGVybWluYXRlZCBBU0NJSSBzdHJpbmcgd2l0aCBhIHNpbmdsZSBjaGFyYWN0ZXIuIFdoZW4gdXNlZCBpbiBhIHNjcmlwdGluZyBsYW5ndWFnZSBpdCB3aWxsIHNob3cgdXAgYXMgYSB0aW55IHN0cmluZyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgdmFsdWUuIFdoZW4gY29udmVydGluZyB0aGUgdmFsdWUgYmFjayBpbnRvIEMsIFNXSUcgd2lsbCB0YWtlIGEgY2hhcmFjdGVyIHN0cmluZyBmcm9tIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgYW5kIHN0cmlwIG9mZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFzIHRoZSBjaGFyIHZhbHVlLiBUaHVzIGlmIHlvdSB0cnkgdG8gYXNzaWduZWQgdGhlIHZhbHVlICJmb28iIHRvIGEgPHR0PmNoYXI8L3R0PiBkYXRhdHlwZSwgaXQgd2lsbCBnZXQgdGhlIHZhbHVlIGBmJy48cD4KLTxwPgotVGhlIDx0dD5jaGFyICo8L3R0PiBkYXRhdHlwZSBpcyBhc3N1bWVkIHRvIGJlIGEgTlVMTC10ZXJtaW5hdGVkIEFTQ0lJIHN0cmluZy4gU1dJRyBtYXBzIHRoaXMgaW50byBhIGNoYXJhY3RlciBzdHJpbmcgaW4gdGhlIHRhcmdldCBsYW5ndWFnZS4gU1dJRyBjb252ZXJ0cyBjaGFyYWN0ZXIgc3RyaW5ncyBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIE5VTEwgdGVybWluYXRlZCBzdHJpbmdzIGJlZm9yZSBwYXNzaW5nIHRoZW0gaW50byBDL0MrKy4gSXQgaXMgaWxsZWdhbCBmb3IgdGhlc2Ugc3RyaW5ncyB0byBoYXZlIGVtYmVkZGVkIE5VTEwgYnl0ZXMgYWx0aG91Z2ggdGhlcmUgYXJlIHdheXMgdG8gd29yayBhcm91bmQgdGhpcyBwcm9ibGVtLjxwPgotPHA+Ci1UaGUgPHR0PnNpZ25lZCBjaGFyPC90dD4gYW5kIDx0dD51bnNpZ25lZCBjaGFyPC90dD4gZGF0YXR5cGVzIGFyZSBtYXBwZWQgaW50byBpbnRlZ2VyIHZhbHVlcy4gVGhlIGZvbGxvd2luZyBleGFtcGxlIGlsbHVzdHJhdGVzIHRoZSBtYXBwaW5nIG9mIDx0dD5jaGFyPC90dD4gZGF0YXR5cGVzLjxwPgotPHR0PjwvdHQ+PHA+Ci08YmxvY2txdW90ZT48cHJlPjx0dD4lewotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0jaW5jbHVkZSAmbHQ7Y3R5cGUuaCZndDsKLSNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDsKLXNpZ25lZCBjaGFyIHN1bShzaWduZWQgY2hhciBhLCBzaWduZWQgY2hhciBiKSB7IHJldHVybiBhK2I7fQotJX0KLQotaW50ICBzdHJjbXAoY2hhciAqLCBjaGFyICopOwotY2hhciB0b3VwcGVyKGNoYXIpOwotc2lnbmVkIGNoYXIgc3VtKHNpZ25lZCBjaGFyIGEsIHNpZ25lZCBjaGFyIGIpOwotPC90dD48L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUEgVGNsIHNjcmlwdCB1c2luZyB0aGVzZSBmdW5jdGlvbnMgKGFuZCB0aGUgcmVzdWx0aW5nIG91dHB1dCkgbWlnaHQgYmUgYXMgZm9sbG93cy48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT50Y2xzaCAmZ3Q7IHN0cmNtcCBNaWtlIEpvaG4KLTEKLXRjbHNoICZndDsgdG91cHBlciBnCi1HCi10Y2xzaCAmZ3Q7IHN1bSAxNyAtOAotOQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjIwIj48L2E+PGgzPiBWYXJpYWJsZXM8L2gzPgotU1dJRyBhdHRlbXB0cyB0byBtYXAgQy9DKysgZ2xvYmFsIHZhcmlhYmxlcyBpbnRvIHNjcmlwdGluZyBsYW5ndWFnZSB2YXJpYWJsZXMuIEZvciBleGFtcGxlOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZXhhbXBsZQotCi1kb3VibGUgZm9vOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci13aWxsIHJlc3VsdCBpbiBhIHNjcmlwdGluZyBsYW5ndWFnZSB2YXJpYWJsZSB0aGF0IGNhbiBiZSB1c2VkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgVGNsCi1zZXQgZm9vIFszLjVdIAkJCTsjIFNldCBmb28gdG8gMy41Ci1wdXRzICRmb28JCQk7IyBQcmludCB0aGUgdmFsdWUgb2YgZm9vCi0KLSMgUHl0aG9uCi1jdmFyLmZvbyA9IDMuNQkJCTsjIFNldCBmb28gdG8gMy41Ci1wcmludCBjdmFyLmZvbwkJCTsjIFByaW50IHZhbHVlIG9mIGZvbwotCi0jIFBlcmwKLSRmb28gPSAzLjU7CQkJOyMgU2V0IGZvbyB0byAzLjUKLXByaW50ICRmb28sIlxuIjsJCQk7IyBQcmludCB2YWx1ZSBvZiBmb28KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbmV2ZXIgdGhpcyAic3BlY2lhbCIgdmFyaWFibGUgaXMgdXNlZCwgdGhlIHVuZGVybHlpbmcgQyBnbG9iYWwgdmFyaWFibGUgd2lsbCBiZSBhY2Nlc3NlZC4gQXMgaXQgdHVybnMgb3V0LCB3b3JraW5nIHdpdGggZ2xvYmFsIHZhcmlhYmxlcyBpcyBvbmUgb2YgdGhlIG1vc3QgdHJpY2t5IGFzcGVjdHMgb2YgU1dJRy4gV2hlbmV2ZXIgcG9zc2libGUsIHlvdSBzaG91bGQgdHJ5IHRvIGF2b2lkIHRoZSB1c2Ugb2YgZ2xvYmFscy4gRm9ydHVuYXRlbHksIG1vc3QgbW9kdWxhciBwcm9ncmFtcyBtYWtlIGxpbWl0ZWQgKG9yIG5vKSB1c2Ugb2YgZ2xvYmFscy48cD4KLTxhIG5hbWU9Im4yMSI+PC9hPjxoMz4gQ29uc3RhbnRzPC9oMz4KLUNvbnN0YW50cyBjYW4gYmUgY3JlYXRlZCB1c2luZyA8dHQ+I2RlZmluZTwvdHQ+LCA8dHQ+Y29uc3Q8L3R0Piwgb3IgZW51bWVyYXRpb25zLiBDb25zdGFudCBleHByZXNzaW9ucyBhcmUgYWxzbyBhbGxvd2VkLiBUaGUgZm9sbG93aW5nIGludGVyZmFjZSBmaWxlIHNob3dzIGEgZmV3IHZhbGlkIGNvbnN0YW50IGRlY2xhcmF0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+I2RlZmluZSBJX0NPTlNUICAgICAgIDUgICAgICAgICAgICAgICAvLyBBbiBpbnRlZ2VyIGNvbnN0YW50Ci0jZGVmaW5lIEZfQ09OU1QgICAgICAgMy4xNDE1OSAgICAgICAgIC8vIEEgRmxvYXRpbmcgcG9pbnQgY29uc3RhbnQKLSNkZWZpbmUgU19DT05TVCAgICAgICAiaGVsbG8gd29ybGQiICAgLy8gQSBzdHJpbmcgY29uc3RhbnQKLSNkZWZpbmUgTkVXTElORSAgICAgICAnXG4nICAgICAgICAgICAgLy8gQ2hhcmFjdGVyIGNvbnN0YW50Ci0jZGVmaW5lIE1PREUgICAgICAgICAgREVCVUcgICAgICAgICAgIC8vIFNldHMgTU9ERSB0byBERUJVRy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gREVCVUcgaXMgYXNzdW1lZCB0byBiZSBhbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnQgdW5sZXNzIGRlY2xhcmVkIGVhcmxpZXIKLWVudW0gYm9vbGVhbiB7Tk89MCwgWUVTPTF9OwotZW51bSBtb250aHMge0pBTiwgRkVCLCBNQVIsIEFQUiwgTUFZLCBKVU4sIEpVTCwgQVVHLAotICAgICAgICAgICAgIFNFUCwgT0NULCBOT1YsIERFQ307Ci1jb25zdCBkb3VibGUgUEkgMy4xNDE1OTI2NTQ7Ci0jZGVmaW5lIEZfQ09OU1QgKGRvdWJsZSkgNSAgICAgICAgICAgIC8vIEEgZmxvYXRpbmcgcG9pbnRlciBjb25zdGFudCB3aXRoIGNhc3QKLSNkZWZpbmUgUElfNCBQSS80Ci0jZGVmaW5lIEZMQUdTIDB4MDQgfCAweDA4IHwgMHg0MAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiA8dHQ+I2RlZmluZTwvdHQ+IGRlY2xhcmF0aW9ucywgdGhlIHR5cGUgb2YgYSBjb25zdGFudCBpcyBpbmZlcnJlZCBieSBzeW50YXggb3IgY2FuIGJlIGV4cGxpY2l0bHkgc2V0IHVzaW5nIGEgY2FzdC4gRm9yIGV4YW1wbGUsIGEgbnVtYmVyIHdpdGggYSBkZWNpbWFsIHBvaW50IGlzIGFzc3VtZWQgdG8gYmUgZmxvYXRpbmcgcG9pbnQuIFdoZW4gbm8gZXhwbGljaXQgdmFsdWUgaXMgYXZhaWxhYmxlIGZvciBhIGNvbnN0YW50LCBTV0lHIHdpbGwgdXNlIHRoZSB2YWx1ZSBhc3NpZ25lZCBieSB0aGUgQyBjb21waWxlci4gRm9yIGV4YW1wbGUsIG5vIHZhbHVlcyBhcmUgZ2l2ZW4gdG8gdGhlIDx0dD5tb250aHM8L3R0PiBlbnVtZXJhdGlvbiwgYnV0IHRoaXMgaXMgbm8gcHJvYmxlbS0tLVNXSUcgd2lsbCB1c2Ugd2hhdGV2ZXIgdGhlIEMgY29tcGlsZXIgcGlja3MuIDxwPgotPHA+Ci1UaGUgdXNlIG9mIGNvbnN0YW50IGV4cHJlc3Npb25zIGlzIGFsbG93ZWQsIGJ1dCBTV0lHIGRvZXMgbm90IGV2YWx1YXRlIHRoZW0uIFJhdGhlciwgaXQgcGFzc2VzIHRoZW0gdGhyb3VnaCB0byB0aGUgb3V0cHV0IGZpbGUgYW5kIGxldHMgdGhlIEMgY29tcGlsZXIgcGVyZm9ybSB0aGUgZmluYWwgZXZhbHVhdGlvbiAoU1dJRyBkb2VzIHBlcmZvcm0gYSBsaW1pdGVkIGZvcm0gb2YgdHlwZS1jaGVja2luZyBob3dldmVyKS48cD4KLTxwPgotRm9yIGVudW1lcmF0aW9ucywgaXQgaXMgY3JpdGljYWwgdGhhdCB0aGUgb3JpZ2luYWwgZW51bSBkZWZpbml0aW9uIGJlIGluY2x1ZGVkIHNvbWV3aGVyZSBpbiB0aGUgaW50ZXJmYWNlIGZpbGUgKGVpdGhlciBpbiBhIGhlYWRlciBmaWxlIG9yIGluIHRoZSA8dHQ+JXssJX08L3R0PiBibG9jaykuIFNXSUcgb25seSB0cmFuc2xhdGVzIHRoZSBlbnVtZXJhdGlvbiBpbnRvIGNvZGUgbmVlZGVkIHRvIGFkZCB0aGUgY29uc3RhbnRzIHRvIGEgc2NyaXB0aW5nIGxhbmd1YWdlLiBJdCBuZWVkcyB0aGUgb3JpZ2luYWwgZW51bWVyYXRpb24gZGVjbGFyYXRpb24gdG8gcmV0cmlldmUgdGhlIGNvcnJlY3QgZW51bSB2YWx1ZXMuPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gUG9pbnRlcnMgYW5kIGNvbXBsZXggb2JqZWN0czwvaDI+Ci1BcyB3ZSBhbGwga25vdywgbW9zdCBDIHByb2dyYW1zIGhhdmUgbXVjaCBtb3JlIHRoYW4ganVzdCBpbnRlZ2VycywgZmxvYXRpbmcgcG9pbnQgbnVtYmVycywgYW5kIGNoYXJhY3RlciBzdHJpbmdzLiBUaGVyZSBtYXkgYmUgcG9pbnRlcnMsIGFycmF5cywgc3RydWN0dXJlcywgYW5kIG90aGVyIG9iamVjdHMgZmxvYXRpbmcgYXJvdW5kLiBGb3J0dW5hdGVseSwgdGhpcyBpcyB1c3VhbGx5IG5vdCBhIHByb2JsZW0gZm9yIFNXSUcuPHA+Ci08YSBuYW1lPSJuMjIiPjwvYT48aDM+IFNpbXBsZSBwb2ludGVyczwvaDM+Ci1Qb2ludGVycyB0byBiYXNpYyBDIGRhdGF0eXBlcyBzdWNoIGFzIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludCAqCi1kb3VibGUgKioqCi1jaGFyICoqCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLWNhbiBiZSB1c2VkIGZyZWVseSBpbiBhbiBpbnRlcmZhY2UgZmlsZS4gU1dJRyBlbmNvZGVzIHBvaW50ZXJzIGludG8gYSByZXByZXNlbnRhdGlvbiBjb250YWluaW5nIHRoZSBhY3R1YWwgdmFsdWUgb2YgdGhlIHBvaW50ZXIgYW5kIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgZGF0YXR5cGUuIFRodXMsIHRoZSBTV0lHIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhYm92ZSBwb2ludGVycyAoaW4gVGNsKSwgbWlnaHQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPl8xMDA4MTAxMl9pbnRfcAotXzEwMDhlMTI0X2RvdWJsZV9wcHAKLV9mOGFjX2NoYXJfcHAKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQSBOVUxMIHBvaW50ZXIgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyAiTlVMTCIgb3IgdGhlIHZhbHVlIDAgZW5jb2RlZCB3aXRoIHR5cGUgaW5mb3JtYXRpb24uPHA+Ci08cD4KLUFsbCBwb2ludGVycyBhcmUgdHJlYXRlZCBhcyBvcGFxdWUgb2JqZWN0cyBieSBTV0lHLiBBIHBvaW50ZXIgbWF5IGJlIHJldHVybmVkIGJ5IGEgZnVuY3Rpb24gYW5kIHBhc3NlZCBhcm91bmQgdG8gb3RoZXIgQyBmdW5jdGlvbnMgYXMgbmVlZGVkLiBGb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcywgdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2Ugd29ya3MgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgeW91IHdvdWxkIHdyaXRlIGEgQyBwcm9ncmFtICh3ZWxsLCB3aXRoIGEgZmV3IGxpbWl0YXRpb25zKS48cD4KLTxwPgotVGhlIHNjcmlwdGluZyBsYW5ndWFnZSByZXByZXNlbnRhdGlvbiBvZiBhIHBvaW50ZXIgc2hvdWxkIG5ldmVyIGJlIG1hbmlwdWxhdGVkIGRpcmVjdGx5IChhbHRob3VnaCBub3RoaW5nIHByZXZlbnRzIHRoaXMpLiBTV0lHIGRvZXMgbm90IG5vcm1hbGx5IG1hcCBwb2ludGVycyBpbnRvIGhpZ2gtbGV2ZWwgb2JqZWN0cyBzdWNoIGFzIGFzc29jaWF0aXZlIGFycmF5cyBvciBsaXN0cyAoZm9yIGV4YW1wbGUsIGl0IG1pZ2h0IGJlIGRlc2lyYWJsZSB0byBjb252ZXJ0IGFuIDx0dD5pbnQgKjwvdHQ+IGludG8gYW4gbGlzdCBvZiBpbnRlZ2VycykuIFRoZXJlIGFyZSBzZXZlcmFsIHJlYXNvbnMgZm9yIHRoaXMgOjxwPgotPHA+Ci08dWw+Ci08bGk+QWRkaW5nIHNwZWNpYWwgY2FzZXMgd291bGQgbWFrZSBTV0lHIG1vcmUgY29tcGxpY2F0ZWQgYW5kIGRpZmZpY3VsdCB0byBtYWludGFpbi4KLTxsaT5UaGVyZSBpcyBub3QgZW5vdWdoIGluZm9ybWF0aW9uIGluIGEgQyBkZWNsYXJhdGlvbiB0byBwcm9wZXJseSBtYXAgcG9pbnRlcnMgaW50byBoaWdoZXIgbGV2ZWwgY29uc3RydWN0cy4gRm9yIGV4YW1wbGUsIGFuIDx0dD5pbnQgKjwvdHQ+IG1heSBpbmRlZWQgYmUgYW4gYXJyYXkgb2YgaW50ZWdlcnMsIGJ1dCBpZiBpdCBjb250YWlucyBvbmUgbWlsbGlvbiBlbGVtZW50cywgY29udmVydGluZyBpdCBpbnRvIGEgVGNsLCBQZXJsLCBvciBQeXRob24gbGlzdCB3b3VsZCBwcm9iYWJseSBiZSBhbiBleHRyZW1lbHkgYmFkIGlkZWEuCi08bGk+QnkgdHJlYXRpbmcgYWxsIHBvaW50ZXJzIGVxdWFsbHksIGl0IGlzIGVhc3kgdG8ga25vdyB3aGF0IHlvdSdyZSBnb2luZyB0byBnZXQgd2hlbiB5b3UgY3JlYXRlIGFuIGludGVyZmFjZSAocG9pbnRlcnMgYXJlIHRyZWF0ZWQgaW4gYSBjb25zaXN0ZW50IG1hbm5lcikuCi08L3VsPgotPHA+Ci1BcyBpdCB0dXJucyBvdXQsIHlvdSBjYW4gcmVtYXAgYW55IEMgZGF0YXR5cGUgdG8gYmVoYXZlIGluIG5ldyB3YXlzIHNvIHRoZXNlIHJ1bGVzIGFyZSBub3Qgc2V0IGluIHN0b25lLiBJbnRlcmVzdGVkIHJlYWRlcnMgc2hvdWxkIGxvb2sgYXQgdGhlIGNoYXB0ZXIgb24gdHlwZW1hcHMuPHA+Ci08YSBuYW1lPSJuMjMiPjwvYT48aDM+IFJ1biB0aW1lIHBvaW50ZXIgdHlwZSBjaGVja2luZzwvaDM+Ci1CeSBhbGxvd2luZyBwb2ludGVycyB0byBiZSBtYW5pcHVsYXRlZCBpbnRlcmFjdGl2ZWx5IGluIGEgc2NyaXB0aW5nIGxhbmd1YWdlLCB3ZSBoYXZlIGVmZmVjdGl2ZWx5IGJ5cGFzc2VkIHRoZSB0eXBlLWNoZWNrZXIgaW4gdGhlIEMvQysrIGNvbXBpbGVyLiBCeSBlbmNvZGluZyBwb2ludGVyIHZhbHVlcyB3aXRoIGEgZGF0YXR5cGUsIFNXSUcgaXMgYWJsZSB0byBwZXJmb3JtIHJ1bi10aW1lIHR5cGUtY2hlY2tpbmcgaW4gb3JkZXIgdG8gcHJldmVudCBteXN0ZXJpb3VzIHN5c3RlbSBjcmFzaGVzIGFuZCBvdGhlciBhbm9tYWxpZXMuIEJ5IGRlZmF1bHQsIFNXSUcgdXNlcyBhIHN0cmljdC10eXBlIGNoZWNraW5nIG1vZGVsIHRoYXQgY2hlY2tzIHRoZSBkYXRhdHlwZSBvZiBhbGwgcG9pbnRlcnMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byBDL0MrKy4gSG93ZXZlciwgeW91IGNhbiBjaGFuZ2UgdGhlIGhhbmRsaW5nIG9mIHBvaW50ZXJzIHVzaW5nIHRoZSA8dHQ+LXN0cmljdDwvdHQ+IG9wdGlvbjo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4tc3RyaWN0IDAJCQlObyB0eXBlLWNoZWNraW5nIChsaXZpbmcgb24gdGhlIGVkZ2UpCi0tc3RyaWN0IDEJCQlHZW5lcmF0ZSB3YXJuaW5nIG1lc3NhZ2VzIChzb21ld2hhdCBhbm5veWluZykKLS1zdHJpY3QgMgkJCVN0cmljdCB0eXBlIGNoZWNraW5nICh0aGUgZGVmYXVsdCkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU3RyaWN0IHR5cGUgY2hlY2tpbmcgaXMgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQgc2luY2UgaXMgdGhlIG1vc3QgcmVsaWFibGUgYW5kIG1vc3QgY2xvc2VseSBmb2xsb3dzIHRoZSB0eXBlIGNoZWNraW5nIHJ1bGVzIG9mIEMuIEluIGZhY3QsIGF0IHRoaXMgdGltZSwgdGhlIG90aGVyIHR3byBtb2RlcyBzaG91bGQgYmUgY29uc2lkZXJlZCB0byBiZSBvdXRkYXRlZCBTV0lHIGZlYXR1cmVzIHRoYXQgYXJlIHN1cHBvcnRlZCwgYnV0IG5vIGxvbmdlciBuZWNlc3NhcnkuPHA+Ci08cD4KLUJ5IGRlZmF1bHQsIFNXSUcgYWxsb3dzICJOVUxMIiBwb2ludGVycyB0byBiZSBwYXNzZWQgdG8gQy9DKysuIFRoaXMgaGFzIHRoZSBwb3RlbnRpYWwgdG8gY3Jhc2ggY29kZSBhbmQgY2F1c2Ugb3RoZXIgcHJvYmxlbXMgaWYgeW91IGFyZSBub3QgY2FyZWZ1bC4gQ2hlY2tzIGNhbiBiZSBwbGFjZWQgb24gY2VydGFpbiB2YWx1ZXMgdG8gcHJldmVudCB0aGlzIGJ1dCB0aGlzIHJlcXVpcmVzIHRoZSB1c2Ugb2YgdHlwZW1hcHMgKGRlc2NyaWJlZCBpbiBsYXRlciBjaGFwdGVycykuPHA+Ci08YmxvY2txdW90ZT48cHJlPgotPC9wcmU+PC9ibG9ja3F1b3RlPgotTGlrZSBDLCBpdCBzaG91bGQgYWxzbyBiZSBub3RlZCB0aGF0IGZ1bmN0aW9ucyBpbnZvbHZpbmcgPHR0PnZvaWQ8L3R0PiBwb2ludGVycyBjYW4gYWNjZXB0IGFueSBraW5kIG9mIHBvaW50ZXIgb2JqZWN0LjxwPgotPGEgbmFtZT0ibjI0Ij48L2E+PGgzPiBEZXJpdmVkIHR5cGVzLCBzdHJ1Y3RzLCBhbmQgY2xhc3NlczwvaDM+Ci1Gb3IgZXZlcnl0aGluZyBlbHNlIChzdHJ1Y3RzLCBjbGFzc2VzLCBhcnJheXMsIGV0Yy4uLikgU1dJRyBhcHBsaWVzIGEgdmVyeSBzaW1wbGUgcnVsZSA6PHA+Ci08cD4KLUFsbCBjb21wbGV4IGRhdGF0eXBlcyBhcmUgcG9pbnRlcnM8cD4KLTxwPgotSW4gb3RoZXIgd29yZHMsIFNXSUcgbWFuaXB1bGF0ZXMgZXZlcnl0aGluZyBlbHNlIGJ5IHJlZmVyZW5jZS4gVGhpcyBtb2RlbCBtYWtlcyBzZW5zZSBiZWNhdXNlIG1vc3QgQy9DKysgcHJvZ3JhbXMgbWFrZSBoZWF2eSB1c2Ugb2YgcG9pbnRlcnMgYW5kIHdlIGNhbiB1c2UgdGhlIHR5cGUtY2hlY2tlZCBwb2ludGVyIG1lY2hhbmlzbSBhbHJlYWR5IHByZXNlbnQgZm9yIGhhbmRsaW5nIHBvaW50ZXJzIHRvIGJhc2ljIGRhdGF0eXBlcy48cD4KLTxwPgotV2hpbGUgYWxsIG9mIHRoaXMgcHJvYmFibHkgc291bmRzIGNvbXBsaWNhdGVkLCBpdCdzIHJlYWxseSBxdWl0ZSBzaW1wbGUuIFN1cHBvc2UgeW91IGhhdmUgYW4gaW50ZXJmYWNlIGZpbGUgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGZpbGVpbwotRklMRSAqZm9wZW4oY2hhciAqLCBjaGFyICopOwotaW50IGZjbG9zZShGSUxFICopOwotdW5zaWduZWQgZnJlYWQodm9pZCAqcHRyLCB1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBub2JqLCBGSUxFICopOwotdW5zaWduZWQgZndyaXRlKHZvaWQgKnB0ciwgdW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgbm9iaiwgRklMRSAqKTsKLXZvaWQgKm1hbGxvYyhpbnQgbmJ5dGVzKTsKLXZvaWQgZnJlZSh2b2lkICopOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiB0aGlzIGZpbGUsIFNXSUcgZG9lc24ndCBrbm93IHdoYXQgYSA8dHQ+RklMRTwvdHQ+IGlzLCBidXQgaXQncyB1c2VkIGFzIGEgcG9pbnRlciwgc28gaXQgZG9lc24ndCByZWFsbHkgbWF0dGVyIHdoYXQgaXQgaXMuIElmIHlvdSB3cmFwcGVkIHRoaXMgbW9kdWxlIGludG8gUHl0aG9uLCB5b3UgY291bGQgdXNlIHRoZSBmdW5jdGlvbnMganVzdCBsaWtlIHlvdSB3b3VsZCBleHBlY3QgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgQ29weSBhIGZpbGUgCi1kZWYgZmlsZWNvcHkoc291cmNlLHRhcmdldCk6Ci0JZjEgPSBmb3Blbihzb3VyY2UsInIiKQotCWYyID0gZm9wZW4odGFyZ2V0LCJ3IikKLQlidWZmZXIgPSBtYWxsb2MoODE5MikKLQluYnl0ZXMgPSBmcmVhZChidWZmZXIsODE5MiwxLGYxKQotCXdoaWxlIChuYnl0ZXMgJmd0OyAwKToKLQkJZndyaXRlKGJ1ZmZlciw4MTkyLDEsZjIpCi0JCW5ieXRlcyA9IGZyZWFkKGJ1ZmZlciw4MTkyLDEsZjEpCi0JZnJlZShidWZmZXIpCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgY2FzZSA8dHQ+ZjE8L3R0Piw8dHQ+IGYyPC90dD4sIGFuZCA8dHQ+YnVmZmVyPC90dD4gYXJlIGFsbCBvcGFxdWUgb2JqZWN0cyBjb250YWluaW5nIEMgcG9pbnRlcnMuIEl0IGRvZXNuJ3QgbWF0dGVyIHdoYXQgdmFsdWUgdGhleSBjb250YWluLS1vdXIgcHJvZ3JhbSB3b3JrcyBqdXN0IGZpbmUgd2l0aG91dCB0aGlzIGtub3dsZWRnZS48cD4KLTxhIG5hbWU9Im4yNSI+PC9hPjxoMz4gV2hhdCBoYXBwZW5zIHdoZW4gU1dJRyBlbmNvdW50ZXJzIGFuIHVua25vd24gZGF0YXR5cGU/PC9oMz4KLVdoZW4gU1dJRyBlbmNvdW50ZXJzIGFuIHVua25vd24gZGF0YXR5cGUsIGl0IGF1dG9tYXRpY2FsbHkgYXNzdW1lcyB0aGF0IGl0IGlzIHNvbWUgc29ydCBvZiBjb21wbGV4IGRhdGF0eXBlLiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGFwcGVhcmVkIGluIGEgU1dJRyBpbnB1dCBmaWxlOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnZvaWQgbWF0cml4X211bHRpcGx5KE1hdHJpeCAqYSwgTWF0cml4ICpiLCBNYXRyaXggKmMpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TV0lHIGhhcyBubyBpZGVhIHdoYXQgYSAiPHR0Pk1hdHJpeDwvdHQ+IiBpcyBzbyBpdCB3aWxsIGFzc3VtZSB0aGF0IHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyBhbmQgbWFwIGl0IGludG8gYSBwb2ludGVyLiBUaGlzIG1ha2VzIHBlcmZlY3Qgc2Vuc2UgYmVjYXVzZSB0aGUgdW5kZXJseWluZyBDIGZ1bmN0aW9uIGlzIHVzaW5nIHBvaW50ZXJzIGluIHRoZSBmaXJzdCBwbGFjZS4gVW5saWtlIEMgb3IgQysrLCBTV0lHIGRvZXMgbm90IGFjdHVhbGx5IGNhcmUgd2hldGhlciA8dHQ+TWF0cml4PC90dD4gaGFzIGJlZW4gcHJldmlvdXNseSBkZWZpbmVkIGluIHRoZSBpbnRlcmZhY2UgZmlsZSBvciBub3QuIFdoaWxlIHRoaXMgbWF5IHNvdW5kIHN0cmFuZ2UsIGl0IG1ha2VzIGl0IHBvc3NpYmxlIGZvciBTV0lHIHRvIGdlbmVyYXRlIGludGVyZmFjZXMgZnJvbSBvbmx5IHBhcnRpYWwgaW5mb3JtYXRpb24uIEluIG1hbnkgY2FzZXMsIHlvdSBtYXkgbm90IGNhcmUgd2hhdCBhIDx0dD5NYXRyaXg8L3R0PiByZWFsbHkgaXMgYXMgbG9uZyBhcyB5b3UgY2FuIHBhc3MgcmVmZXJlbmNlcyB0byBvbmUgYXJvdW5kIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBUaGUgZG93bnNpZGUgdG8gdGhpcyByZWxheGVkIGFwcHJvYWNoIGlzIHRoYXQgdHlwb3MgbWF5IGdvIGNvbXBsZXRlbHkgdW5kZXRlY3RlZCBieSBTV0lHLiBZb3UgY2FuIGFsc28gZW5kIHVwIHNob290aW5nIHlvdXJzZWxmIGluIHRoZSBmb290LCBidXQgcHJlc3VtYWJseSB5b3UndmUgcGFzc2VkIHlvdXIgcHJvZ3JhbW1pbmcgc2FmZXR5IGNvdXJzZSBpZiB5b3UndmUgbWFkZSBpdCB0aGlzIGZhci48cD4KLTxwPgotQXMgYSBkZWJ1Z2dpbmcgdG9vbCwgU1dJRyB3aWxsIHJlcG9ydCBhIGxpc3Qgb2YgdXNlZCwgYnV0IHVuZGVmaW5lZCBkYXRhdHlwZXMsIGlmIHlvdSBydW4gaXQgd2l0aCB0aGUgPHR0Pi1zdGF0PC90dD4gb3B0aW9uLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPltiZWF6bGV5QGd1aW5uZXNzIFNXSUcxLjFiNl0kIHN3aWcgLXN0YXQgbWF0cml4LmkKLU1ha2luZyB3cmFwcGVycyBmb3IgVGNsCi1XcmFwcGVkIDEgZnVuY3Rpb25zCi1XcmFwcGVkIDAgdmFyaWFibGVzCi1XcmFwcGVkIDAgY29uc3RhbnRzCi1UaGUgZm9sbG93aW5nIGRhdGF0eXBlcyB3ZXJlIHVzZWQsIGJ1dCB1bmRlZmluZWQuCi0gICAgIE1hdHJpeAotW2JlYXpsZXlAZ3Vpbm5lc3MgU1dJRzEuMWI2XSQKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4yNiI+PC9hPjxoMz4gVHlwZWRlZjwvaDM+Ci08dHQ+dHlwZWRlZjwvdHQ+IGNhbiBiZSB1c2VkIHRvIHJlbWFwIGRhdGF0eXBlcyB3aXRoaW4gU1dJRy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBtYWtlcyBTV0lHIHRyZWF0IDx0dD5zaXplX3Q8L3R0PiBsaWtlIGFuIHVuc2lnbmVkIGludC4gVXNlIG9mIDx0dD50eXBlZGVmPC90dD4gaXMgZmFpcmx5IGNyaXRpY2FsIGluIG1vc3QgYXBwbGljYXRpb25zLiBXaXRob3V0IGl0LCBTV0lHIHdvdWxkIGNvbnNpZGVyIDx0dD5zaXplX3Q8L3R0PiB0byBiZSBhIGNvbXBsZXggb2JqZWN0ICh3aGljaCB3b3VsZCBiZSBpbmNvcnJlY3RseSBjb252ZXJ0ZWQgaW50byBhIHBvaW50ZXIpLjxwPgotPGEgbmFtZT0ibjQiPjwvYT48aDI+IEdldHRpbmcgZG93biB0byBidXNpbmVzczwvaDI+Ci1TbyBmYXIsIHlvdSBrbm93IGp1c3QgYWJvdXQgZXZlcnl0aGluZyB5b3UgbmVlZCB0byBrbm93IHRvIHVzZSBTV0lHIHRvIGJ1aWxkIGludGVyZmFjZXMuIEluIGZhY3QsIHVzaW5nIG5vdGhpbmcgYnV0IGJhc2ljIGRhdGF0eXBlcyBhbmQgb3BhcXVlIHBvaW50ZXJzIGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2VzIHRvIG1vc3Qga2luZHMgb2YgQy9DKysgcGFja2FnZXMuIEhvd2V2ZXIsIGFzIHRoZSBub3ZlbHR5IHdlYXJzIG9mZiwgeW91IHdpbGwgd2FudCB0byBkbyBtb3JlLiBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIFNXSUcncyB0cmVhdG1lbnQgb2YgbW9yZSBzb3Boc3RpY2F0ZWQgaXNzdWVzLjxwPgotPGEgbmFtZT0ibjI3Ij48L2E+PGgzPiBQYXNzaW5nIGNvbXBsZXggZGF0YXR5cGVzIGJ5IHZhbHVlPC9oMz4KLVVuZm9ydHVuYXRlbHksIG5vdCBhbGwgQyBwcm9ncmFtcyBtYW5pcHVsYXRlIGNvbXBsZXggb2JqZWN0cyBieSByZWZlcmVuY2UuIFdoZW4gZW5jb3VudGVyZWQsIFNXSUcgd2lsbCB0cmFuc2Zvcm0gdGhlIGNvcnJlc3BvbmRpbmcgQy9DKysgZGVjbGFyYXRpb24gdG8gdXNlIHJlZmVyZW5jZXMgaW5zdGVhZC4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91IGhhZCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kb3VibGUgZG90X3Byb2R1Y3QoVmVjdG9yIGEsIFZlY3RvciBiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotU1dJRyB3aWxsIHRyYW5zZm9ybSB0aGlzIGZ1bmN0aW9uIGNhbGwgaW50byB0aGUgZXF1aXZhbGVudCBvZiB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kb3VibGUgd3JhcF9kb3RfcHJvZHVjdChWZWN0b3IgKmEsIFZlY3RvciAqYikgewotCXJldHVybiBkb3RfcHJvZHVjdCgqYSwqYik7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2U8dHQ+LCBkb3RfcHJvZHVjdDwvdHQ+IHdpbGwgbm93IHRha2UgcmVmZXJlbmNlcyB0byBWZWN0b3JzIGluc3RlYWQgb2YgVmVjdG9ycywgYWx0aG91Z2ggeW91IG1heSBub3Qgbm90aWNlIHRoZSBjaGFuZ2UuIDxwPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBSZXR1cm4gYnkgdmFsdWU8L2gzPgotQyBmdW5jdGlvbnMgdGhhdCByZXR1cm4gY29tcGxleCBkYXRhdHlwZXMgYnkgdmFsdWUgYXJlIG1vcmUgZGlmZmljdWx0IHRvIGhhbmRsZS4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBmdW5jdGlvbjo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5WZWN0b3IgY3Jvc3MoVmVjdG9yIHYxLCBWZWN0b3IgdjIpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGZ1bmN0aW9uIGlzIHJldHVybmluZyBhIGNvbXBsZXggb2JqZWN0LCB5ZXQgU1dJRyBvbmx5IGxpa2VzIHRvIHdvcmsgd2l0aCByZWZlcmVuY2VzLiBDbGVhcmx5LCBzb21ldGhpbmcgbXVzdCBiZSBkb25lIHdpdGggdGhlIHJldHVybiByZXN1bHQsIG9yIGl0IHdpbGwgYmUgbG9zdCBmb3JldmVyLiBBcyBhIHJlc3VsdCwgU1dJRyB0cmFuc2Zvcm1zIHRoaXMgZnVuY3Rpb24gaW50byB0aGUgZm9sbG93aW5nIGNvZGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlZlY3RvciAqd3JhcF9jcm9zcyhWZWN0b3IgKnYxLCBWZWN0b3IgKnYyKSB7Ci0JVmVjdG9yICpyZXN1bHQ7Ci0JcmVzdWx0ID0gKFZlY3RvciAqKSBtYWxsb2Moc2l6ZW9mKFZlY3RvcikpOwotCSoocmVzdWx0KSA9IGNyb3NzKCp2MSwqdjIpOwotCXJldHVybiByZXN1bHQ7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLW9yIGlmIHVzaW5nIEMrKyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+VmVjdG9yICp3cmFwX2Nyb3NzKFZlY3RvciAqdjEsIFZlY3RvciAqdjIpIHsKLQlWZWN0b3IgKnJlc3VsdCA9IG5ldyBWZWN0b3IoY3Jvc3MoKnYxLCp2MikpOyAvLyBVc2VzIGRlZmF1bHQgY29weSBjb25zdHJ1Y3RvcgotCXJldHVybiByZXN1bHQ7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVNXSUcgaXMgZm9yY2VkIHRvIGNyZWF0ZSBhIG5ldyBvYmplY3QgYW5kIHJldHVybiBhIHJlZmVyZW5jZSB0byBpdC4gSXQgaXMgdXAgdG8gdGhlIHVzZXIgdG8gZGVsZXRlIHRoZSByZXR1cm5lZCBvYmplY3Qgd2hlbiBpdCBpcyBubyBsb25nZXIgaW4gdXNlLiBXaGVuIHVzZWQgaW1wcm9wZXJseSwgdGhpcyBjYW4gbGVhZCB0byBtZW1vcnkgbGVha3MgYW5kIG90aGVyIHByb2JsZW1zLiBQZXJzb25hbGx5LCBJJ2QgcmF0aGVyIGxpdmUgd2l0aCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhayB0aGFuIGZvcmJpZCB0aGUgdXNlIG9mIHN1Y2ggYSBmdW5jdGlvbi4gTmVlZGxlc3MgdG8gc2F5LCBzb21lIGNhcmUgaXMgcHJvYmFibHkgaW4gb3JkZXIgKHlvdSBuZWVkIHRvIGJlIGF3YXJlIG9mIHRoaXMgYmVoYXZpb3IgaW4gYW55IGNhc2UpLiA8cD4KLTxhIG5hbWU9Im4yOSI+PC9hPjxoMz4gTGlua2luZyB0byBjb21wbGV4IHZhcmlhYmxlczwvaDM+Ci1XaGVuIGdsb2JhbCB2YXJpYWJsZXMgb3IgY2xhc3MgbWVtYmVycyBpbnZvbHZpbmcgY29tcGxleCBkYXRhdHlwZXMgYXJlIGVuY291bnRlcmVkLCBTV0lHIGNvbnZlcnRzIHRoZW0gaW50byByZWZlcmVuY2VzLiBGb3IgZXhhbXBsZSwgYSBnbG9iYWwgdmFyaWFibGUgbGlrZSB0aGlzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1WZWN0b3IgdW5pdF9pOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1nZXRzIG1hcHBlZCB0byBhIHBhaXIgb2Ygc2V0L2dldCBmdW5jdGlvbnMgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5WZWN0b3IgKnVuaXRfaV9nZXQoKSB7Ci0JcmV0dXJuICZhbXA7dW5pdF9pOwotfQotVmVjdG9yICp1bml0X2lfc2V0KFZlY3RvciAqdmFsdWUpIHsKLQl1bml0X2kgPSAqdmFsdWU7Ci0JcmV0dXJuICZhbXA7dW5pdF9pOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1SZXR1cm5pbmcgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIG1ha2VzIGl0IGFjY2Vzc2libGUgbGlrZSBhbnkgb3RoZXIgb2JqZWN0IG9mIHRoaXMgdHlwZS4gV2hlbiBzZXR0aW5nIHRoZSB2YWx1ZSwgd2Ugc2ltcGx5IG1ha2UgYSBjb3B5IG9mIHNvbWUgb3RoZXIgVmVjdG9yIHJlZmVyZW5jZS4gQWdhaW4gc29tZSBjYXV0aW9uIGlzIGluIG9yZGVyLiBBIGdsb2JhbCB2YXJpYWJsZSBjcmVhdGVkIGluIHRoaXMgbWFubmVyIHdpbGwgc2hvdyB1cCBhcyBhIHJlZmVyZW5jZSBpbiB0aGUgdGFyZ2V0IHNjcmlwdGluZyBsYW5ndWFnZS4gSXQgd291bGQgYmUgYW4gZXh0cmVtZWx5IGJhZCBpZGVhIHRvIGZyZWUgb3IgZGVzdHJveSBzdWNoIGEgcmVmZXJlbmNlLiBTaW1pbGFybHksIG9uZSBjYW4gcnVuIGludG8gcHJvYmxlbXMgd2hlbiBjb3B5aW5nIGNvbXBsZXggQysrIG9iamVjdHMgaW4gdGhpcyBtYW5uZXIuIEZvcnR1bmF0ZWx5LCBpbiB3ZWxsLXdyaXR0ZW4gbW9kdWxhciBjb2RlLCBleGNlc3NpdmUgdXNlIChvciBhYnVzZSkgb2YgZ2xvYmFsIHZhcmlhYmxlcyBpcyByYXJlLjxwPgotPGEgbmFtZT0ibjMwIj48L2E+PGgzPiBBcnJheXM8L2gzPgotVGhlIHVzZSBvZiBhcnJheXMgaW4gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBTV0lHIGlzIHN1cHBvcnRlZCwgYnV0IHdpdGggY2F1dGlvbi4gSWYgc2ltcGxlIGFycmF5cyBhcHBlYXIsIHRoZXkgd2lsbCBiZSBtYXBwZWQgaW50byBhIHBvaW50ZXIgcmVwcmVzZW50YXRpb24uIFRodXMsIHRoZSBmb2xsb3dpbmcgZGVjbGFyYXRpb25zIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgZm9vYmFyKGludCBhWzQwXSk7Ci12b2lkIGdyb2soY2hhciAqYXJndltdKTsKLXZvaWQgdHJhbnNwb3NlKGRvdWJsZSBhWzIwXVsyMF0pOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci13aWxsIGJlIHByb2Nlc3NlZCBhcyBpZiB0aGV5IHdlcmUgZGVjbGFyZWQgbGlrZSB0aGlzOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludCBmb29iYXIoaW50ICphKTsKLXZvaWQgZ3JvayhjaGFyICoqYXJndik7Ci12b2lkIHRyYW5zcG9zZShkb3VibGUgKCphKVsyMF0pOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1NdWx0aS1kaW1lbnNpb25hbCBhcnJheXMgYXJlIHRyYW5zZm9ybWVkIGludG8gYSBzaW5nbGUgcG9pbnRlciBzaW5jZSA8dHQ+YVtdW108L3R0PiBhbmQgPHR0PioqYTwvdHQ+IGFyZSBub3QgdGhlIHNhbWUgdGhpbmcgKGV2ZW4gdGhvdWdoIHRoZXkgY2FuIGJlIHVzZWQgaW4gc2ltaWxhciB3YXlzKS4gUmF0aGVyLCA8dHQ+YVtdW108L3R0PiBpcyBtYXBwZWQgdG8gKmEsIHdoZXJlIDx0dD4qYTwvdHQ+IGlzIHRoZSBlcXVpdmFsZW50IG9mIDx0dD4mYW1wO2FbMF1bMF08L3R0Pi4gVGhlIHJlYWRlciBpcyBlbmNvdXJhZ2VkIHRvIGR1c3Qgb2ZmIHRoZWlyIEMgYm9vayBhbmQgbG9vayBhdCB0aGUgc2VjdGlvbiBvbiBhcnJheXMgYmVmb3JlIHVzaW5nIHRoZW0gd2l0aCBTV0lHLjxwPgotPHA+Ci1CZSBhd2FyZSB0aGF0IHVzZSBvZiBhcnJheXMgbWF5IGNhdXNlIGNvbXBpbGVyIHdhcm5pbmdzIG9yIGVycm9ycyB3aGVuIGNvbXBpbGluZyBTV0lHIGdlbmVyYXRlZCBtb2R1bGVzLiBXaGlsZSBldmVyeSBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gZWxpbWluYXRlIHRoZXNlIHByb2JsZW1zLCBoYW5kbGluZyBvZiBhcnJheXMgY2FuIGJlIHNvbWV3aGF0IHByb2JsZW1hdGljIGR1ZSB0byB0aGUgc3VidGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gYW4gYXJyYXkgYW5kIGEgcG9pbnRlci48cD4KLTxhIG5hbWU9Im4zMSI+PC9hPjxoMz4gQ3JlYXRpbmcgcmVhZC1vbmx5IHZhcmlhYmxlczwvaDM+Ci1BIHJlYWQtb25seSB2YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB1c2luZyB0aGUgPHR0PiVyZWFkb25seTwvdHQ+IGRpcmVjdGl2ZSBhcyBzaG93biA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gRmlsZSA6IGludGVyZmFjZS5pCi0KLWludCAJYTsgCQkJLy8gQ2FuIHJlYWQvd3JpdGUKLSVyZWFkb25seQotaW50CWIsYyxkCQkJLy8gUmVhZCBvbmx5IHZhcmlhYmxlcwotJXJlYWR3cml0ZQotZG91YmxlCXgseQkJCS8vIHJlYWQvd3JpdGUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIDx0dD4lcmVhZG9ubHk8L3R0PiBkaXJlY3RpdmUgZW5hYmxlcyByZWFkLW9ubHkgbW9kZSB1bnRpbCBpdCBpcyBleHBsaWNpdGx5IGRpc2FibGVkIHVzaW5nIHRoZSA8dHQ+JXJlYWR3cml0ZTwvdHQ+IGRpcmVjdGl2ZS48cD4KLTxhIG5hbWU9Im4zMiI+PC9hPjxoMz4gUmVuYW1pbmcgZGVjbGFyYXRpb25zPC9oMz4KLU5vcm1hbGx5LCB0aGUgbmFtZSBvZiBhIEMgZnVuY3Rpb24gaXMgdXNlZCBhcyB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBhZGRlZCB0byB0aGUgdGFyZ2V0IHNjcmlwdGluZyBsYW5ndWFnZS4gVW5mb3J0dW5hdGVseSwgdGhpcyBuYW1lIG1heSBjb25mbGljdCB3aXRoIGEga2V5d29yZCBvciBhbHJlYWR5IGV4aXN0aW5nIGZ1bmN0aW9uIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UuIE5hbWluZyBjb25mbGljdHMgY2FuIGJlIHJlc29sdmVkIHVzaW5nIHRoZSA8dHQ+JW5hbWU8L3R0PiBkaXJlY3RpdmUgYXMgc2hvd24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGludGVyZmFjZS5pCi0KLSVuYW1lKG15X3ByaW50KSBleHRlcm4gdm9pZCBwcmludChjaGFyICopOwotJW5hbWUoZm9vKSBleHRlcm4gaW50IGFfcmVhbGx5X2xvbmdfYW5kX2Fubm95aW5nX25hbWU7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVNXSUcgc3RpbGwgY2FsbHMgdGhlIGNvcnJlY3QgQyBmdW5jdGlvbnMsIGJ1dCBpbiB0aGlzIGNhc2UgdGhlIGZ1bmN0aW9uIDx0dD5wcmludCgpPC90dD4gd2lsbCByZWFsbHkgYmUgY2FsbGVkICI8dHQ+bXlfcHJpbnQoKTwvdHQ+IiBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlLiA8cD4KLTxwPgotQSBtb3JlIHBvd2VyZnVsIHJlbmFtaW5nIG9wZXJhdGlvbiBjYW4gYmUgcGVyZm9ybWVkIHdpdGggdGhlPHR0PiAlcmVuYW08L3R0PmUgZGlyZWN0aXZlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVyZW5hbWUgb2xkbmFtZSBuZXduYW1lOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08dHQ+JXJlbmFtZSA8L3R0PmFwcGxpZXMgYSByZW5hbWluZyBvcGVyYXRpb24gdG8gYWxsIGZ1dHVyZSBvY2N1cnJlbmNlcyBvZiBhIG5hbWUuIFRoZSByZW5hbWluZyBhcHBsaWVzIHRvIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBjbGFzcyBhbmQgc3RydWN0dXJlIG5hbWVzLCBtZW1iZXIgZnVuY3Rpb25zLCBhbmQgbWVtYmVyIGRhdGEuIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIHR3by1kb3plbiBDKysgY2xhc3NlcywgYWxsIHdpdGggYSBtZW1iZXIgZnVuY3Rpb24gbmFtZWQgYHByaW50JyAod2hpY2ggaXMgYSBrZXl3b3JkIGluIFB5dGhvbiksIHlvdSBjb3VsZCByZW5hbWUgdGhlbSBhbGwgdG8gYG91dHB1dCcgYnkgc3BlY2lmeWluZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXJlbmFtZSBwcmludCBvdXRwdXQ7IC8vIFJlbmFtZSBhbGwgYHByaW50JyBmdW5jdGlvbnMgdG8gYG91dHB1dCcKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotU1dJRyBkb2VzIG5vdCBwZXJmb3JtIGFueSBjaGVja3MgdG8gc2VlIGlmIHRoZSBmdW5jdGlvbnMgaXQgYWRkcyBhcmUgYWxyZWFkeSBkZWZpbmVkIGluIHRoZSB0YXJnZXQgc2NyaXB0aW5nIGxhbmd1YWdlLiBIb3dldmVyLCBpZiB5b3UgYXJlIGNhcmVmdWwgYWJvdXQgbmFtZXNwYWNlcyBhbmQgeW91ciB1c2Ugb2YgbW9kdWxlcywgeW91IGNhbiB1c3VhbGx5IGF2b2lkIHRoZXNlIHByb2JsZW1zLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBPdmVycmlkaW5nIGNhbGwgYnkgcmVmZXJlbmNlPC9oMz4KLVNXSUcgaXMgcXVpdGUgbGl0ZXJhbCBpbiBpdHMgaW50ZXJwcmV0YXRpb24gb2YgZGF0YXR5cGVzLiBJZiB5b3UgZ2l2ZSBpdCBhIHBvaW50ZXIsIGl0IHdpbGwgdXNlIHBvaW50ZXJzLiBGb3IgZXhhbXBsZSwgaWYgeW91J3JlIHRyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gaW4gYSBGb3J0cmFuIGxpYnJhcnkgKHRocm91Z2ggaXRzIEMgaW50ZXJmYWNlKSBhbGwgZnVuY3Rpb24gcGFyYW1ldGVycyB3aWxsIGhhdmUgdG8gYmUgcGFzc2VkIGJ5IHJlZmVyZW5jZS4gU2ltaWxhcmx5LCBzb21lIEMgZnVuY3Rpb25zIG1heSB1c2UgcG9pbnRlcnMgaW4gdW51c3VhbCB3YXlzLiBUaGUgPHR0PiV2YWw8L3R0PiBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSBjYWxsaW5nIG1lY2hhbmlzbSBmb3IgYSBDIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gaW50ZXJmYWNlLmkKLSV7Ci0jaW5jbHVkZSAmbHQ7dGltZS5oJmd0OwotJX0KLQotdHlwZWRlZiBsb25nIHRpbWVfdDsKLXRpbWVfdCB0aW1lKHRpbWVfdCAqdCk7Ci1zdHJ1Y3QgdG0gKmxvY2FsdGltZSgldmFsIHRpbWVfdCAqdCk7Ci1jaGFyICphc2N0aW1lKHN0cnVjdCB0bSAqKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5sb2NhbHRpbWUoKTwvdHQ+IGZ1bmN0aW9uIHRha2VzIGEgcG9pbnRlciB0byBhIDx0dD50aW1lX3Q8L3R0PiB2YWx1ZSwgYnV0IHdlIGhhdmUgZm9yY2VkIGl0IHRvIHRha2UgYSB2YWx1ZSBpbnN0ZWFkIGluIG9yZGVyIHRvIG1hdGNoIHVwIG5pY2VseSB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIDx0dD50aW1lKCk8L3R0PiBmdW5jdGlvbi4gV2hlbiB1c2VkIGluIFBlcmwsIHRoaXMgYWxsb3dzIHVzIHRvIGRvIHNvbWV0aGluZyBsaWtlIHRoaXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSR0ID0gdGltZSgwKTsKLSR0bSA9IGxvY2FsdGltZSgkdCk7ICMgTm90ZSBwYXNzaW5nICR0IGJ5IHZhbHVlIGhlcmUKLXByaW50ICRhc2N0aW1lKCR0bSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUludGVybmFsbHksIHRoZSA8dHQ+JXZhbDwvdHQ+IGRpcmVjdGl2ZSBjcmVhdGVzIGEgdGVtcG9yYXJ5IHZhcmlhYmxlLiBUaGUgYXJndW1lbnQgdmFsdWUgaXMgc3RvcmVkIGluIHRoaXMgdmFyaWFibGUgYW5kIGEgZnVuY3Rpb24gY2FsbCBpcyBtYWRlIHVzaW5nIGEgcG9pbnRlciB0byB0aGUgdGVtcG9yYXJ5IHZhcmlhYmxlLiBPZiBjb3Vyc2UsIGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFsdWUgaW4gdGhpcyB0ZW1wb3JhcnkgdmFyaWFibGUsIGl0IHdpbGwgYmUgbG9zdCBmb3JldmVyLiA8cD4KLTxhIG5hbWU9Im4zNCI+PC9hPjxoMz4gRGVmYXVsdC9vcHRpb25hbCBhcmd1bWVudHM8L2gzPgotU1dJRyBhbGxvd3MgZGVmYXVsdCBhcmd1bWVudHMgdG8gYmUgdXNlZCBpbiBib3RoIEMvQysrIGNvZGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aW50IHBsb3QoZG91YmxlIHgsIGRvdWJsZSB5LCBpbnQgY29sb3I9V0hJVEUpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBzcGVjaWZ5IGEgZGVmYXVsdCBhcmd1bWVudCwgc2ltcGx5IHNwZWNpZnkgaXQgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZSBhcyBzaG93bi4gU1dJRyB3aWxsIGdlbmVyYXRlIHdyYXBwZXIgY29kZSBpbiB3aGljaCB0aGUgZGVmYXVsdCBhcmd1bWVudHMgYXJlIG9wdGlvbmFsLiBGb3IgZXhhbXBsZSwgdGhpcyBmdW5jdGlvbiBjb3VsZCBiZSB1c2VkIGluIFRjbCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHBsb3QgLTMuNCA3LjUgCQkJCSMgVXNlIGRlZmF1bHQgdmFsdWUKLSUgcGxvdCAtMy40IDcuNSAxMAkJCQkjIHNldCBjb2xvciB0byAxMCBpbnN0ZWFkCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoaWxlIHRoZSBBTlNJIEMgc3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSBkZWZhdWx0IGFyZ3VtZW50cywgZGVmYXVsdCBhcmd1bWVudHMgdXNlZCBpbiBhIFNXSUcgZ2VuZXJhdGVkIGludGVyZmFjZSB3b3JrIHdpdGggYm90aCBDIGFuZCBDKysuPHA+Ci08YSBuYW1lPSJuMzUiPjwvYT48aDM+IFBvaW50ZXJzIHRvIGZ1bmN0aW9uczwvaDM+Ci1BdCB0aGUgbW9tZW50LCB0aGUgU1dJRyBwYXJzZXIgaGFzIGRpZmZpY3VsdHkgaGFuZGxpbmcgcG9pbnRlcnMgdG8gZnVuY3Rpb25zIChhIGRlZmljaWVuY3kgdGhhdCBpcyBiZWluZyBjb3JyZWN0ZWQpLiBIb3dldmVyLCBoYXZpbmcgZnVuY3Rpb24gcG9pbnRlcnMgaXMgdXNlZnVsIGZvciBtYW5hZ2luZyBDIGNhbGxiYWNrIGZ1bmN0aW9ucyBhbmQgb3RoZXIgdGhpbmdzLiBUbyBwcm9wZXJseSBoYW5kbGUgZnVuY3Rpb24gcG9pbnRlcnMsIGl0IGlzIGN1cnJlbnRseSBuZWNlc3NhcnkgdG8gdXNlIDx0dD50eXBlZGVmLjwvdHQ+IEZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gPHA+Ci08YmxvY2txdW90ZT48cHJlPgotdm9pZCBkb19vcGVyYXRpb24oZG91YmxlICgqb3ApKGRvdWJsZSxkb3VibGUpLCBkb3VibGUgYSwgZG91YmxlIGIpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1zaG91bGQgYmUgaGFuZGxlZCBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci10eXBlZGVmIGRvdWJsZSAoKk9QX0ZVTkMpKGRvdWJsZSxkb3VibGUpOwotdm9pZCBkb19vcGVyYXRpb24oT1BfRlVOQyBvcCwgZG91YmxlIGEsIGRvdWJsZSBiKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU1dJRyB1bmRlcnN0YW5kcyBib3RoIHRoZSB0eXBlZGVmIGRlY2xhcmF0aW9uIGFuZCB0aGUgbGF0ZXIgZnVuY3Rpb24gY2FsbC4gSXQgd2lsbCB0cmVhdCA8dHQ+T1BfRlVOQzwvdHQ+IGp1c3QgbGlrZSBhbnkgb3RoZXIgY29tcGxleCBkYXRhdHlwZS4gSW4gb3JkZXIgZm9yIHRoaXMgYXBwcm9hY2ggdG8gd29yaywgaXQgaXMgbmVjZXNzYXJ5IHRoYXQgdGhlIHR5cGVkZWYgZGVjbGFyYXRpb24gYmUgcHJlc2VudCBpbiB0aGUgb3JpZ2luYWwgQyBjb2RlLS1vdGhlcndpc2UsIHRoZSBDIGNvbXBpbGVyIHdpbGwgY29tcGxhaW4uIElmIHlvdSBhcmUgYnVpbGRpbmcgYSBzZXBhcmF0ZSBpbnRlcmZhY2UgZmlsZSB0byBhbiBleGlzdGluZyBDIHByb2dyYW0gYW5kIGRvIG5vdCB3YW50IHRvIG1ha2UgY2hhbmdlcyB0byB0aGUgQyBzb3VyY2UsIHlvdSBjYW4gYWxzbyBkbyB0aGUgZm9sbG93aW5nIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyBGaWxlIDogaW50ZXJmYWNlLmkKLSV0eXBlZGVmIGRvdWJsZSAoKk9QX0ZVTkMpKGRvdWJsZSxkb3VibGUpOwotZG91YmxlIGRvX29wZXJhdGlvbihPUF9GVU5DIG9wLCBkb3VibGUgYSwgZG91YmxlIGIpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08dHQ+JXR5cGVkZWY8L3R0PiBmb3JjZXMgU1dJRyB0byBnZW5lcmF0ZSBhIDx0dD50eXBlZGVmPC90dD4gaW4gdGhlIEMgb3V0cHV0IGNvZGUgZm9yIHlvdS4gVGhpcyB3b3VsZCBhbGxvdyB0aGUgaW50ZXJmYWNlIGZpbGUgc2hvd24gdG8gd29yayB3aXRoIHRoZSBvcmlnaW5hbCB1bm1vZGlmaWVkIEMgZnVuY3Rpb24gZGVjbGFyYXRpb24uPHA+Ci08cD4KLUNvbnN0YW50cyBjb250YWluaW5nIHRoZSBhZGRyZXNzZXMgb2YgQyBmdW5jdGlvbnMgY2FuIGFsc28gYmUgY3JlYXRlZC4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBjYWxsYmFjayBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmV4dGVybiBkb3VibGUgb3BfYWRkKGRvdWJsZSBhLCBkb3VibGUgYik7Ci1leHRlcm4gZG91YmxlIG9wX3N1Yihkb3VibGUgYSwgZG91YmxlIGIpOwotZXh0ZXJuIGRvdWJsZSBvcF9tdWwoZG91YmxlIGEsIGRvdWJsZSBiKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGFkZHJlc3NlcyBvZiB0aGVzZSBmdW5jdGlvbnMgY291bGQgYmUgaW5zdGFsbGVkIGFzIHNjcmlwdGluZyBsYW5ndWFnZSBjb25zdGFudHMgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gaW50ZXJmYWNlLmkKLXR5cGVkZWYgZG91YmxlICgqT1BfRlVOQykoZG91YmxlLGRvdWJsZSk7Ci0uLi4KLWNvbnN0IE9QX0ZVTkMgQUREID0gb3BfYWRkOwotY29uc3QgT1BfRlVOQyBTVUIgPSBvcF9zdWI7Ci1jb25zdCBPUF9GVU5DIE1VTCA9IG9wX211bDsKLS4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHdyYXBwZWQsIHRoaXMgd291bGQgY3JlYXRlIHRoZSBjb25zdGFudHMgPHR0PkFERDwvdHQ+LDx0dD5TVUI8L3R0PiwgYW5kIDx0dD5NVUw8L3R0PiBjb250YWluaW5nIHRoZSBhZGRyZXNzZXMgb2YgQyBjYWxsYmFjayBmdW5jdGlvbnMuIFdlIGNvdWxkIHRoZW4gcGFzcyB0aGVzZSB0byBvdGhlciBDIGZ1bmN0aW9ucyBleHBlY3Rpbmcgc3VjaCBmdW5jdGlvbiBwb2ludGVycyBhcyBhcmd1bWVudHMgYXMgc2hvd24gKGZvciBUY2wpIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZG9fb3BlcmF0aW9uICRBREQgMyA0Ci03Ci0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNSI+PC9hPjxoMj4gU3RydWN0dXJlcywgdW5pb25zLCBhbmQgb2JqZWN0IG9yaWVudGVkIEMgcHJvZ3JhbW1pbmc8L2gyPgotSWYgU1dJRyBlbmNvdW50ZXJzIHRoZSBkZWZpbml0aW9uIG9mIGEgc3RydWN0dXJlIG9yIHVuaW9uLCBpdCB3aWxsIGNyZWF0ZSBhIHNldCBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgZm9yIHlvdS4gV2hpbGUgU1dJRyBkb2VzIG5vdCBuZWVkIHN0cnVjdHVyZSBkZWZpbml0aW9ucyB0byBidWlsZCBhbiBpbnRlcmZhY2UsIHByb3ZpZGluZyBkZWZpbml0aW9ucyBtYWtlIGl0IHBvc3NpYmxlIHRvIGFjY2VzcyBzdHJ1Y3R1cmUgbWVtYmVycy4gVGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBnZW5lcmF0ZWQgYnkgU1dJRyBzaW1wbHkgdGFrZSBhIHBvaW50ZXIgdG8gYW4gb2JqZWN0IGFuZCBhbGxvdyBhY2Nlc3MgdG8gYW4gaW5kaXZpZHVhbCBtZW1iZXIuIEZvciBleGFtcGxlLCB0aGUgZGVjbGFyYXRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN0cnVjdCBWZWN0b3IgewotCWRvdWJsZSB4LHksejsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotZ2V0cyBtYXBwZWQgaW50byB0aGUgZm9sbG93aW5nIHNldCBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRvdWJsZSBWZWN0b3JfeF9nZXQoVmVjdG9yICpvYmopIHsKLQlyZXR1cm4gb2JqLSZndDt4OwotfQotZG91YmxlIFZlY3Rvcl95X2dldChWZWN0b3IgKm9iaikgeyAKLQlyZXR1cm4gb2JqLSZndDt5OwotfQotZG91YmxlIFZlY3Rvcl96X2dldChWZWN0b3IgKm9iaikgeyAKLQlyZXR1cm4gb2JqLSZndDt6OwotfQotZG91YmxlIFZlY3Rvcl94X3NldChWZWN0b3IgKm9iaiwgZG91YmxlIHZhbHVlKSB7Ci0Jb2JqLSZndDt4ID0gdmFsdWU7Ci0JcmV0dXJuIHZhbHVlOwotfQotZG91YmxlIFZlY3Rvcl95X3NldChWZWN0b3IgKm9iaiwgZG91YmxlIHZhbHVlKSB7Ci0Jb2JqLSZndDt5ID0gdmFsdWU7Ci0JcmV0dXJuIHZhbHVlOwotfQotZG91YmxlIFZlY3Rvcl96X3NldChWZWN0b3IgKm9iaiwgZG91YmxlIHZhbHVlKSB7Ci0Jb2JqLSZndDt6ID0gdmFsdWU7Ci0JcmV0dXJuIHZhbHVlOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjM2Ij48L2E+PGgzPiBUeXBlZGVmIGFuZCBzdHJ1Y3R1cmVzPC9oMz4KLVNXSUcgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBjb25zdHJ1Y3Qgd2hpY2ggaXMgcXVpdGUgY29tbW9uIGluIEMgcHJvZ3JhbXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgc3RydWN0IHsKLQlkb3VibGUgeCx5LHo7Ci19IFZlY3RvcjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBlbmNvdW50ZXJlZCwgU1dJRyB3aWxsIGFzc3VtZSB0aGF0IHRoZSBuYW1lIG9mIHRoZSBvYmplY3QgaXMgYFZlY3RvcicgYW5kIGNyZWF0ZSBhY2Nlc3NvciBmdW5jdGlvbnMgbGlrZSBiZWZvcmUuIElmIHR3byBkaWZmZXJlbnQgbmFtZXMgYXJlIHVzZWQgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT50eXBlZGVmIHN0cnVjdCB2ZWN0b3Jfc3RydWN0IHsKLQlkb3VibGUgeCx5LHo7Ci19IFZlY3RvcjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotdGhlIG5hbWUgYFZlY3Rvcicgd2lsbCBzdGlsbCBiZSB1c2VkIGluc3RlYWQgb2YgInZlY3Rvcl9zdHJ1Y3QiLjxwPgotPGEgbmFtZT0ibjM3Ij48L2E+PGgzPiBDaGFyYWN0ZXIgc3RyaW5ncyBhbmQgc3RydWN0dXJlczwvaDM+Ci1TdHJ1Y3R1cmVzIGludm9sdmluZyBjaGFyYWN0ZXIgc3RyaW5ncyByZXF1aXJlIHNvbWUgY2FyZS4gU1dJRyBhc3N1bWVzIHRoYXQgYWxsIG1lbWJlcnMgb2YgdHlwZSA8dHQ+Y2hhciAqPC90dD4gaGF2ZSBiZWVuIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB1c2luZyA8dHQ+bWFsbG9jKCk8L3R0PiBhbmQgdGhhdCB0aGV5IGFyZSBOVUxMLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5ncy4gV2hlbiBzdWNoIGEgbWVtYmVyIGlzIG1vZGlmaWVkLCB0aGUgcHJldmlvdXNseSBjb250ZW50cyB3aWxsIGJlIHJlbGVhc2VkLCBhbmQgdGhlIG5ldyBjb250ZW50cyBhbGxvY2F0ZWQuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIG15bW9kdWxlCi0uLi4KLXN0cnVjdCBGb28gewotCWNoYXIgKm5hbWU7Ci0JLi4uCi19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgcmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIGZ1bmN0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2hhciAqRm9vX25hbWVfZ2V0KEZvbyAqb2JqKSB7Ci0JcmV0dXJuIEZvby0mZ3Q7bmFtZTsKLX0KLQotY2hhciAqRm9vX25hbWVfc2V0KEZvbyAqb2JqLCBjaGFyICpjKSB7Ci0JaWYgKG9iai0mZ3Q7bmFtZSkgZnJlZShvYmotJmd0O25hbWUpOwotCW9iai0mZ3Q7bmFtZSA9IChjaGFyICopIG1hbGxvYyhzdHJsZW4oYykrMSk7Ci0Jc3RyY3B5KG9iai0mZ3Q7bmFtZSxjKTsKLQlyZXR1cm4gb2JqLSZndDtuYW1lOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIHNlZW1zIHRvIHdvcmsgbW9zdCBvZiB0aGUgdGltZSwgYnV0IG9jY2FzaW9uYWxseSBpdCdzIG5vdCBhbHdheXMgd2hhdCB5b3Ugd2FudC4gVHlwZW1hcHMgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IgaWYgbmVjZXNzYXJ5LjxwPgotPGEgbmFtZT0ibjM4Ij48L2E+PGgzPiBBcnJheSBtZW1iZXJzPC9oMz4KLUFycmF5cyBtYXkgYXBwZWFyIGFzIHRoZSBtZW1iZXJzIG9mIHN0cnVjdHVyZXMsIGJ1dCB0aGV5IHdpbGwgYmUgcmVhZC1vbmx5LiBTV0lHIHdpbGwgd3JpdGUgYW4gYWNjZXNzb3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBwb2ludGVyIHRvIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBhcnJheSwgYnV0IHdpbGwgbm90IHdyaXRlIGEgZnVuY3Rpb24gdG8gY2hhbmdlIHRoZSBhcnJheSBpdHNlbGYuIFRoaXMgcmVzdHJpY3Rpb24gaXMgZHVlIHRvIHRoZSBmYWN0IHRoYXQgQyB3b24ndCBsZXQgdXMgY2hhbmdlIHRoZSAidmFsdWUiIG9mIGFuIGFycmF5LiBXaGVuIHRoaXMgc2l0dWF0aW9uIGlzIGRldGVjdGVkLCBTV0lHIGdlbmVyYXRlcyBhIHdhcm5pbmcgbWVzc2FnZSBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludGVyZmFjZS5pIDogTGluZSAxMTYuIFdhcm5pbmcuIEFycmF5IG1lbWJlciB3aWxsIGJlIHJlYWQtb25seQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBlbGltaW5hdGUgdGhlIHdhcm5pbmcgbWVzc2FnZSwgdHlwZW1hcHMgY2FuIGJlIHVzZWQsIGJ1dCB0aGlzIGlzIGRpc2N1c3NlZCBpbiBhIGxhdGVyIGNoYXB0ZXIgKGFuZCBiZXN0IHJlc2VydmVkIGZvciBleHBlcmllbmNlZCB1c2VycykuIE90aGVyd2lzZSwgaWYgeW91IGdldCB0aGlzIHdhcm5pbmcsIGl0IG1heSBiZSBoYXJtbGVzcy48cD4KLTxhIG5hbWU9Im4zOSI+PC9hPjxoMz4gQyBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzIDwvaDM+Ci1XaGlsZSBub3QgcGFydCBvZiB0aGUgQyBsYW5ndWFnZSwgaXQgaXMgdXN1YWxseSB1c2VmdWwgdG8gaGF2ZSBzb21lIG1lY2hhbmlzbSBmb3IgY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgYW4gb2JqZWN0LiBZb3UgY2FuLCBvZiBjb3Vyc2UsIGRvIHRoaXMgeW91cnNlbGYgYnkgbWFraW5nIGFuIGFwcHJvcHJpYXRlIGNhbGwgdG8gPHR0Pm1hbGxvYygpPC90dD4sIGJ1dCBTV0lHIGNhbiBtYWtlIHN1Y2ggZnVuY3Rpb25zIGZvciB5b3UgYXV0b21hdGljYWxseSBpZiB5b3UgdXNlIEMrKyBzeW50YXggbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIG15bW9kdWxlCi0uLi4KLXN0cnVjdCBWZWN0b3IgewotCVZlY3RvcigpOyAJCQkvLyBUZWxsIFNXSUcgdG8gY3JlYXRlIGEgQyBjb25zdHJ1Y3RvcgotCX5WZWN0b3IoKTsJCQkvLyBUZWxsIFNXSUcgdG8gY3JlYXRlIGEgQyBkZXN0cnVjdG9yCi0JZG91YmxlIHgseSx6OwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHVzZWQgd2l0aCBDIGNvZGUsIFNXSUcgd2lsbCBjcmVhdGUgdHdvIGFkZGl0aW9uYWwgZnVuY3Rpb25zIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+VmVjdG9yICpuZXdfVmVjdG9yKCkgewotCXJldHVybiAoVmVjdG9yICopIG1hbGxvYyhzaXplb2YoVmVjdG9yKSk7Ci19Ci0KLXZvaWQgZGVsZXRlX1ZlY3RvcihWZWN0b3IgKnYpIHsKLQlmcmVlKHYpOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGlsZSBDIGtub3dzIG5vdGhpbmcgYWJvdXQgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycywgU1dJRyBkb2VzLS0tYW5kIGl0IGNhbiBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBzb21lIGZvciB5b3UgaWYgeW91IHdhbnQuIFRoaXMgb25seSBhcHBsaWVzIHRvIEMgY29kZS0taGFuZGxpbmcgb2YgQysrIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkuPHA+Ci08cD4KLUFzIGFuIGFsdGVybmF0aXZlIHRvIGV4cGxpY2l0bHkgZGVmaW5pbmcgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycywgU1dJRyBjYW4gYWxzbyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZW0gdXNpbmcgZWl0aGVyIGEgY29tbWFuZCBsaW5lIG9wdGlvbiBvciBhIHByYWdtYS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLW1ha2VfZGVmYXVsdCBleGFtcGxlLmkgCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBmb28KLS4uLgotJXByYWdtYSBtYWtlX2RlZmF1bHQgCQkJCQkvLyBNYWtlIGRlZmF1bHQgY29uc3RydWN0b3JzCi0uLi4gZGVjbGFyYXRpb25zIC4uLgotJXByYWdtYSBub19kZWZhdWx0CQkJCQkvLyBEaXNhYmxlIGRlZmF1bHQgY29uc3RydWN0b3JzCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgd29ya3Mgd2l0aCBib3RoIEMgYW5kIEMrKy48cD4KLTxhIG5hbWU9Im40MCI+PC9hPjxoMz4gQWRkaW5nIG1lbWJlciBmdW5jdGlvbnMgdG8gQyBzdHJ1Y3R1cmVzPC9oMz4KLU1hbnkgc2NyaXB0aW5nIGxhbmd1YWdlcyBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBjcmVhdGluZyBjbGFzc2VzIGFuZCBzdXBwb3J0aW5nIG9iamVjdCBvcmllbnRlZCBwcm9ncmFtbWluZy4gRnJvbSBhIEMgc3RhbmRwb2ludCwgb2JqZWN0IG9yaWVudGVkIHByb2dyYW1taW5nIHJlYWxseSBqdXN0IGJvaWxzIGRvd24gdG8gdGhlIHByb2Nlc3Mgb2YgYXR0YWNoaW5nIGZ1bmN0aW9ucyB0byBzdHJ1Y3R1cmVzLiBUaGVzZSBmdW5jdGlvbnMgdHlwaWNhbGx5IG9wZXJhdGUgb24gdGhlIHN0cnVjdHVyZSAob3Igb2JqZWN0KSBpbiBzb21lIHdheSBvciBhbm90aGVyLiBXaGlsZSB0aGVyZSBpcyBhIG5hdHVyYWwgbWFwcGluZyBvZiBDKysgdG8gc3VjaCBhIHNjaGVtZSwgdGhlcmUgaXMgbm8gZGlyZWN0IG1lY2hhbmlzbSBmb3IgdXRpbGl6aW5nIGl0IHdpdGggQyBjb2RlLiBIb3dldmVyLCBTV0lHIHByb3ZpZGVzIGEgc3BlY2lhbCA8dHQ+JWFkZG1ldGhvZHM8L3R0PiBkaXJlY3RpdmUgdGhhdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBhdHRhY2ggbWV0aG9kcyB0byBDIHN0cnVjdHVyZXMgZm9yIHB1cnBvc2VzIG9mIGJ1aWxkaW5nIGFuIG9iamVjdCBvcmllbnRlZCBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBTdXBwb3NlIHlvdSBoYXZlIGEgQyBoZWFkZXIgZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgZGVjbGFyYXRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIGZpbGUgOiB2ZWN0b3IuaCAqLwotLi4uCi10eXBlZGVmIHN0cnVjdCB7Ci0JZG91YmxlIHgseSx6OwotfSBWZWN0b3I7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVlvdSBjYW4gbWFrZSBhIFZlY3RvciBsb29rIGFsb3QgbGlrZSBhIGNsYXNzIGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmcgaW4gYW4gaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGZpbGUgOiB2ZWN0b3IuaQotJW1vZHVsZSBteW1vZHVsZQotJXsKLSNpbmNsdWRlICJ2ZWN0b3IuaCIKLSV9Ci0KLSVpbmNsdWRlIHZlY3Rvci5oIAkJCQkvLyBKdXN0IGdyYWIgb3JpZ2luYWwgQyBoZWFkZXIgZmlsZQotJWFkZG1ldGhvZHMgVmVjdG9yIHsgCQkJCS8vIEF0dGFjaCB0aGVzZSBmdW5jdGlvbnMgdG8gc3RydWN0IFZlY3RvcgotCVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KSB7Ci0JCVZlY3RvciAqdjsKLQkJdiA9IChWZWN0b3IgKnYpIG1hbGxvYyhzaXplb2YoVmVjdG9yKSk7Ci0JCXYtJmd0O3ggPSB4OwotCQl2LSZndDt5ID0geTsKLQkJdi0mZ3Q7eiA9IHo7Ci0JCXJldHVybiB2OwotCX0KLQl+VmVjdG9yKCkgewotCQlmcmVlKHNlbGYpOwotCX0KLQlkb3VibGUgbWFnbml0dWRlKCkgewotCQlyZXR1cm4gc3FydChzZWxmLSZndDt4KnNlbGYtJmd0O3grc2VsZi0mZ3Q7eSpzZWxmLSZndDt5K3NlbGYtJmd0O3oqc2VsZi0mZ3Q7eik7Ci0JfQotCXZvaWQgcHJpbnQoKSB7Ci0JCXByaW50ZigiVmVjdG9yIFslZywgJWcsICVnXVxuIiwgc2VsZi0mZ3Q7eCxzZWxmLSZndDt5LHNlbGYtJmd0O3opOwotCX0KLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgd2hlbiB1c2VkIHdpdGggc2hhZG93IGNsYXNzZXMgaW4gUHl0aG9uLCB5b3UgY2FuIGRvIHRoaW5ncyBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiZndDsmZ3Q7Jmd0OyB2ID0gVmVjdG9yKDMsNCwwKSAJCQkJCSMgQ3JlYXRlIGEgbmV3IHZlY3RvcgotJmd0OyZndDsmZ3Q7IHByaW50IHYubWFnbml0dWRlKCkJCQkJCSMgUHJpbnQgbWFnbml0dWRlCi01LjAKLSZndDsmZ3Q7Jmd0OyB2LnByaW50KCkJCQkJCSMgUHJpbnQgaXQgb3V0Ci1bIDMsIDQsIDAgXQotJmd0OyZndDsmZ3Q7IGRlbCB2CQkJCQkjIERlc3Ryb3kgaXQKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIDx0dD4lYWRkbWV0aG9kczwvdHQ+IGRpcmVjdGl2ZSBjYW4gYWxzbyBiZSB1c2VkIGluIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBWZWN0b3Igc3RydWN0dXJlLiBGb3IgZXhhbXBsZTo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gZmlsZSA6IHZlY3Rvci5pCi0lbW9kdWxlIG15bW9kdWxlCi0lewotI2luY2x1ZGUgInZlY3Rvci5oIgotJX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotCWRvdWJsZSB4LHksejsKLQklYWRkbWV0aG9kcyB7Ci0JCVZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KSB7IC4uLiB9Ci0JCX5WZWN0b3IoKSB7IC4uLiB9Ci0JCS4uLgotCX0KLX0gVmVjdG9yOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1GaW5hbGx5LCA8dHQ+JWFkZG1ldGhvZHM8L3R0PiBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgZXh0ZXJuYWxseSB3cml0dGVuIGZ1bmN0aW9ucyBwcm92aWRlZCB0aGV5IGZvbGxvdyB0aGUgbmFtaW5nIGNvbnZlbnRpb24gdXNlZCBpbiB0aGlzIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiB2ZWN0b3IuYyAqLwotLyogVmVjdG9yIG1ldGhvZHMgKi8KLSNpbmNsdWRlICJ2ZWN0b3IuaCIKLVZlY3RvciAqbmV3X1ZlY3Rvcihkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KSB7Ci0JVmVjdG9yICp2OwotCXYgPSAoVmVjdG9yICopIG1hbGxvYyhzaXplb2YoVmVjdG9yKSk7Ci0Jdi0mZ3Q7eCA9IHg7Ci0Jdi0mZ3Q7eSA9IHk7Ci0Jdi0mZ3Q7eiA9IHo7Ci0JcmV0dXJuIHY7Ci19Ci12b2lkIGRlbGV0ZV9WZWN0b3IoVmVjdG9yICp2KSB7Ci0JZnJlZSh2KTsKLX0KLQotZG91YmxlIFZlY3Rvcl9tYWduaXR1ZGUoVmVjdG9yICp2KSB7Ci0JcmV0dXJuIHNxcnQodi0mZ3Q7eCp2LSZndDt4K3YtJmd0O3kqdi0mZ3Q7eSt2LSZndDt6KnYtJmd0O3opOwotfQotCi0vLyBGaWxlIDogdmVjdG9yLmkKLS8vIEludGVyZmFjZSBmaWxlCi0lbW9kdWxlIG15bW9kdWxlCi0lewotI2luY2x1ZGUgInZlY3Rvci5oIgotJX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotCWRvdWJsZSB4LHksejsKLQklYWRkbWV0aG9kcyB7Ci0JCWRvdWJsZSBtYWduaXR1ZGUoKTsgCQkJLy8gVGhpcyB3aWxsIGNhbGwgVmVjdG9yX21hZ25pdHVkZQotCQkuLi4KLQl9Ci19IFZlY3RvcjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU28gd2h5IGJvdGhlciB3aXRoIGFsbCBvZiB0aGlzIDx0dD4lYWRkbWV0aG9kczwvdHQ+IGJ1c2luZXNzPyBJbiBzaG9ydCwgeW91IGNhbiB1c2UgaXQgdG8gbWFrZSBzb21lIHByZXR0eSBjb29sIGBvYmplY3Qgb3JpZW50ZWQnIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2VzIHRvIEMgcHJvZ3JhbXMgd2l0aG91dCBoYXZpbmcgdG8gcmV3cml0ZSBhbnl0aGluZyBpbiBDKysuIDxwPgotPGEgbmFtZT0ibjQxIj48L2E+PGgzPiBOZXN0ZWQgc3RydWN0dXJlczwvaDM+Ci1PY2Nhc2lvbmFsbHksIGEgQyBwcm9ncmFtIHdpbGwgaW52b2x2ZSBzdHJ1Y3R1cmVzIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dHlwZWRlZiBzdHJ1Y3QgT2JqZWN0IHsKLQlpbnQgb2JqdHlwZTsKLQl1bmlvbiB7Ci0JCWludCAJaXZhbHVlOwotCQlkb3VibGUJZHZhbHVlOwotCQljaGFyCSpzdHJ2YWx1ZTsKLQkJdm9pZAkqcHRydmFsdWU7Ci0JfSBpbnRSZXA7Ci19IE9iamVjdDsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBTV0lHIGVuY291bnRlcnMgdGhpcywgaXQgcGVyZm9ybXMgYSBzdHJ1Y3R1cmUgc3BsaXR0aW5nIG9wZXJhdGlvbiB0aGF0IHRyYW5zZm9ybXMgdGhlIGRlY2xhcmF0aW9uIGludG8gdGhlIGVxdWl2YWxlbnQgb2YgdGhlIGZvbGxvd2luZzo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT50eXBlZGVmIHVuaW9uIHsKLQlpbnQgCQlpdmFsdWU7Ci0JZG91YmxlCQlkdmFsdWU7Ci0JY2hhcgkJKnN0cnZhbHVlOwotCXZvaWQJCSpwdHJ2YWx1ZTsKLX0gT2JqZWN0X2ludFJlcDsKLQotdHlwZWRlZiBzdHJ1Y3QgT2JqZWN0IHsKLQlpbnQgb2JqVHlwZTsKLQlPYmplY3RfaW50UmVwIGludFJlcDsKLX0gT2JqZWN0OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1TV0lHIHdpbGwgY3JlYXRlIGFuIDx0dD5PYmplY3RfaW50UmVwPC90dD4gc3RydWN0dXJlIGZvciB1c2UgaW5zaWRlIHRoZSBpbnRlcmZhY2UgZmlsZS4gQWNjZXNzb3IgZnVuY3Rpb25zIHdpbGwgYmUgY3JlYXRlZCBmb3IgYm90aCBzdHJ1Y3R1cmVzLiBJbiB0aGlzIGNhc2UsIGZ1bmN0aW9ucyBsaWtlIHRoaXMgd291bGQgYmUgY3JlYXRlZCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+T2JqZWN0X2ludFJlcCAqT2JqZWN0X2ludFJlcF9nZXQoT2JqZWN0ICpvKSB7Ci0JcmV0dXJuIChPYmplY3RfaW50UmVwICopICZhbXA7by0mZ3Q7aW50UmVwOwotfQotaW50IE9iamVjdF9pbnRSZXBfaXZhbHVlX2dldChPYmplY3RfaW50UmVwICpvKSB7Ci0JcmV0dXJuIG8tJmd0O2l2YWx1ZTsKLX0KLWludCBPYmplY3RfaW50UmVwX2l2YWx1ZV9zZXQoT2JqZWN0X2ludFJlcCAqbywgaW50IHZhbHVlKSB7Ci0JcmV0dXJuIChvLSZndDtpdmFsdWUgPSB2YWx1ZSk7Ci19Ci1kb3VibGUgT2JqZWN0X2ludFJlcF9kdmFsdWVfZ2V0KE9iamVjdF9pbnRSZXAgKm8pIHsKLQlyZXR1cm4gby0mZ3Q7ZHZhbHVlOwotfQotLi4uIGV0YyAuLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSXMgaXQgaGFpcnk/IFlvdSBiZXQuIERvZXMgaXQgd29yaz8gV2VsbCwgc3VycHJpc2luZ2x5IHllcy4gV2hlbiB1c2VkIHdpdGggUHl0aG9uIGFuZCBQZXJsNSBzaGFkb3cgY2xhc3NlcywgaXQncyBldmVuIHBvc3NpYmxlIHRvIGFjY2VzcyB0aGUgbmVzdGVkIG1lbWJlcnMganVzdCBsaWtlIHlvdSBleHBlY3QgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgUGVybDUgc2NyaXB0IGZvciBhY2Nlc3NpbmcgbmVzdGVkIG1lbWJlcgotJG8gPSBDcmVhdGVPYmplY3QoKTsgCQkJCSMgQ3JlYXRlIGFuIG9iamVjdCBzb21laG93Ci0kby0mZ3Q7e2ludFJlcH0tJmd0O3tpdmFsdWV9ID0gNyAJCQkJIyBDaGFuZ2UgdmFsdWUgb2Ygby5pbnRSZXAuaXZhbHVlCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUlmIHlvdSd2ZSBnb3QgYSBidW5jaCBvZiBuZXN0ZWQgc3RydWN0dXJlIGRlY2xhcmF0aW9ucywgaXQgaXMgY2VydGFpbmx5IGFkdmlzYWJsZSB0byBjaGVjayB0aGVtIG91dCBhZnRlciBydW5uaW5nIFNXSUcuIEhvd2V2ZXIsIHRoZXJlIGlzIGEgZ29vZCBjaGFuY2UgdGhhdCB0aGV5IHdpbGwgd29yay4gSWYgbm90LCB5b3UgY2FuIGFsd2F5cyByZW1vdmUgdGhlIG5lc3RlZCBzdHJ1Y3R1cmUgZGVjbGFyYXRpb24gYW5kIHdyaXRlIHlvdXIgb3duIHNldCBvZiBhY2Nlc3NvciBmdW5jdGlvbnMuPHA+Ci08YSBuYW1lPSJuNDIiPjwvYT48aDM+IE90aGVyIHRoaW5ncyB0byBub3RlIGFib3V0IHN0cnVjdHVyZXM8L2gzPgotU1dJRyBkb2Vzbid0IGNhcmUgaWYgdGhlIGRlZmluaXRpb24gb2YgYSBzdHJ1Y3R1cmUgZXhhY3RseSBtYXRjaGVzIHRoYXQgdXNlZCBpbiB0aGUgdW5kZXJseWluZyBDIGNvZGUgKGV4Y2VwdCBpbiB0aGUgY2FzZSBvZiBuZXN0ZWQgc3RydWN0dXJlcykuIEZvciB0aGlzIHJlYXNvbiwgdGhlcmUgYXJlIG5vIHByb2JsZW1zIG9taXR0aW5nIHByb2JsZW1hdGljIG1lbWJlcnMgb3Igc2ltcGx5IG9taXR0aW5nIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBhbHRvZ2V0aGVyLiBJZiB5b3UgYXJlIGhhcHB5IHNpbXBseSBwYXNzaW5nIHBvaW50ZXJzIGFyb3VuZCwgdGhpcyBjYW4gYmUgZG9uZSB3aXRob3V0IGV2ZXIgZ2l2aW5nIFNXSUcgYSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbi48cD4KLTxwPgotSXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IG1vc3QgbGFuZ3VhZ2UgbW9kdWxlcyBtYXkgY2hvb3NlIHRvIGJ1aWxkIGEgbW9yZSBhZHZhbmNlZCBpbnRlcmZhY2UuIFlvdSBtYXkgbmV2ZXIgdXNlIHRoZSBsb3ctbGV2ZWwgaW50ZXJmYWNlIGRlc2NyaWJlZCBoZXJlLCBhbHRob3VnaCBtb3N0IG9mIFNXSUcncyBsYW5ndWFnZSBtb2R1bGVzIHVzZSBpdCBpbiBzb21lIHdheSBvciBhbm90aGVyLjxwPgotPGEgbmFtZT0ibjYiPjwvYT48aDI+IEMrKyBzdXBwb3J0PC9oMj4KLVNXSUcncyBzdXBwb3J0IGZvciBDKysgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBzdXBwb3J0IGZvciBDIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBhbmQgc3RydWN0dXJlcy4gSG93ZXZlciwgU1dJRyBvbmx5IHN1cHBvcnRzIGEgc3Vic2V0IG9mIHRoZSBDKysgbGFuZ3VhZ2UuIEl0IGhhcyBuZXZlciBiZWVuIG15IGdvYWwgdG8gd3JpdGUgYSBmdWxsIEMrKyBjb21waWxlciBvciB0byB0dXJuIHNjcmlwdGluZyBsYW5ndWFnZXMgaW50byBzb21lIHNvcnQgb2Ygd2VpcmQgcHNldWRvIEMrKyBpbnRlcnByZXRlciAoY29uc2lkZXJpbmcgaG93IGhhcmQgaXQgaXMgdG8gd3JpdGUgYSBDKysgY29tcGlsZXIsIEknbSBub3Qgc3VyZSB0aGlzIHdvdWxkIGV2ZW4gYmUgZmVhc2libGUgYW55d2F5cykuIDxwPgotPHA+Ci1UaGlzIHNlY3Rpb24gZGVzY3JpYmVzIFNXSUcncyBsb3ctbGV2ZWwgYWNjZXNzIHRvIEMrKyBkZWNsYXJhdGlvbnMuIEluIG1hbnkgaW5zdGFuY2VzLCB0aGlzIGxvdy1sZXZlbCBpbnRlcmZhY2UgbWF5IGJlIGhpZGRlbiBieSBzaGFkb3cgY2xhc3NlcyBvciBhbiBhbHRlcm5hdGl2ZSBjYWxsaW5nIG1lY2hhbmlzbSAodGhpcyBpcyB1c3VhbGx5IGxhbmd1YWdlIGRlcGVuZGVudCBhbmQgaXMgZGVzY3JpYmVkIGluIGRldGFpbCBpbiBsYXRlciBjaGFwdGVycykuPHA+Ci08YSBuYW1lPSJuNDMiPjwvYT48aDM+IFN1cHBvcnRlZCBDKysgZmVhdHVyZXM8L2gzPgotU1dJRyBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEMrKyBmZWF0dXJlcyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5TaW1wbGUgY2xhc3MgZGVmaW5pdGlvbnMKLTxsaT5Db25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzCi08bGk+VmlydHVhbCBmdW5jdGlvbnMKLTxsaT5QdWJsaWMgaW5oZXJpdGFuY2UgKGluY2x1ZGluZyBtdWx0aXBsZSBpbmhlcml0YW5jZSkKLTxsaT5TdGF0aWMgZnVuY3Rpb25zCi08bGk+UmVmZXJlbmNlcwotPC91bD4KLTxwPgotVGhlIGZvbGxvd2luZyBDKysgZmVhdHVyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIDo8cD4KLTxwPgotPHVsPgotPGxpPk9wZXJhdG9yIG92ZXJsb2FkaW5nCi08bGk+RnVuY3Rpb24gb3ZlcmxvYWRpbmcgKHdpdGhvdXQgcmVuYW1pbmcpCi08bGk+VGVtcGxhdGVzIChhbnl0aGluZyB0aGF0IHdvdWxkIGJlIGRlZmluZWQgdXNpbmcgdGhlIGA8dHQ+dGVtcGxhdGU8L3R0Picga2V5d29yZCkuCi08bGk+RnJpZW5kcwotPGxpPk5lc3RlZCBjbGFzc2VzCi08bGk+TmFtZXNwYWNlcwotPGxpPlBvaW50ZXJzIHRvIG1lbWJlciBmdW5jdGlvbnMuCi08L3VsPgotPHA+Ci1TaW5jZSBTV0lHJ3MgQysrIHN1cHBvcnQgaXMgYSAid29yayBpbiBwcm9ncmVzcyIsIG1hbnkgb2YgdGhlc2UgbGltaXRhdGlvbnMgbWF5IGJlIGxpZnRlZCBpbiBmdXR1cmUgcmVsZWFzZXMuIEluIHBhcnRpY3VsYXIsIGZ1bmN0aW9uIG92ZXJsb2FkaW5nIGFuZCBuZXN0ZWQgY2xhc3NlcywgbWF5IGJlIHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlLiBPcGVyYXRvciBvdmVybG9hZGluZyBhbmQgdGVtcGxhdGVzIGFyZSB1bmxpa2VseSB0byBiZSBzdXBwb3J0ZWQgYW55dGltZSBpbiB0aGUgbmVhciBmdXR1cmUsIGJ1dCBJJ20gbm90IGdvaW5nIHRvIHJ1bGUgb3V0IHRoZSBwb3NzaWJpbGl0eSBpbiBsYXRlciByZWxlYXNlcy48cD4KLTxhIG5hbWU9Im40NCI+PC9hPjxoMz4gQysrIGV4YW1wbGU8L2gzPgotVGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGEgU1dJRyBpbnRlcmZhY2UgZmlsZSBmb3IgYSBzaW1wbGUgQysrIGNsYXNzLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgbGlzdAotJXsKLSNpbmNsdWRlICJsaXN0LmgiCi0lfQotCi0vLyBWZXJ5IHNpbXBsZSBDKysgZXhhbXBsZSBmb3IgbGlua2VkIGxpc3QKLQotY2xhc3MgTGlzdCB7Ci1wdWJsaWM6Ci0gIExpc3QoKTsKLSAgfkxpc3QoKTsKLSAgaW50ICBzZWFyY2goY2hhciAqdmFsdWUpOwotICB2b2lkIGluc2VydChjaGFyICopOwotICB2b2lkIHJlbW92ZShjaGFyICopOwotICBjaGFyICpnZXQoaW50IG4pOwotICBpbnQgIGxlbmd0aDsKLXN0YXRpYyB2b2lkIHByaW50KExpc3QgKmwpOwotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBjb21waWxpbmcgQysrIGNvZGUsIGl0IGlzIGNyaXRpY2FsIHRoYXQgU1dJRyBiZSBjYWxsZWQgd2l0aCB0aGUgYDx0dD4tYysrPC90dD4nIG9wdGlvbi4gVGhpcyBjaGFuZ2VzIHRoZSB3YXkgYSBudW1iZXIgb2YgY3JpdGljYWwgZmVhdHVyZXMgYXJlIGhhbmRsZWQgd2l0aCByZXNwZWN0IHRvIGRpZmZlcmVuY2VzIGJldHdlZW4gQyBhbmQgQysrLiBJdCBhbHNvIGVuYWJsZXMgdGhlIGRldGVjdGlvbiBvZiBDKysga2V5d29yZHMuIFdpdGhvdXQgdGhlIDx0dD4tYysrPC90dD4gZmxhZywgU1dJRyB3aWxsIGVpdGhlciBpc3N1ZSBhIHdhcm5pbmcgb3IgYSBsYXJnZSBudW1iZXIgb2Ygc3ludGF4IGVycm9ycyBpZiBpdCBlbmNvdW50ZXJzIGFueSBDKysgY29kZSBpbiBhbiBpbnRlcmZhY2UgZmlsZS48cD4KLTxhIG5hbWU9Im40NSI+PC9hPjxoMz4gQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9yczwvaDM+Ci1DKysgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBhcmUgdHJhbnNsYXRlZCBpbnRvIGFjY2Vzc29yIGZ1bmN0aW9ucyBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkxpc3QgKiBuZXdfTGlzdCh2b2lkKSB7Ci0JcmV0dXJuIG5ldyBMaXN0OwotfQotdm9pZCBkZWxldGVfTGlzdChMaXN0ICpsKSB7Ci0JZGVsZXRlIGw7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUlmIHRoZSBvcmlnaW5hbCBDKysgY2xhc3MgZG9lcyBub3QgaGF2ZSBhbnkgY29uc3RydWN0b3JzIG9yIGRlc3RydWN0b3JzLCBwdXR0aW5nIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMgaW4gdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgd2lsbCBjYXVzZSBTV0lHIHRvIGdlbmVyYXRlIHdyYXBwZXJzIGZvciB0aGUgZGVmYXVsdCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBvZiBhbiBvYmplY3QuPHA+Ci08YSBuYW1lPSJuNDYiPjwvYT48aDM+IE1lbWJlciBmdW5jdGlvbnM8L2gzPgotTWVtYmVyIGZ1bmN0aW9ucyBhcmUgdHJhbnNsYXRlZCBpbnRvIGFjY2Vzc29yIGZ1bmN0aW9ucyBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmludCBMaXN0X3NlYXJjaChMaXN0ICpvYmosIGNoYXIgKnZhbHVlKSB7Ci0JcmV0dXJuIG9iai0mZ3Q7c2VhcmNoKHZhbHVlKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVmlydHVhbCBtZW1iZXIgZnVuY3Rpb25zIGFyZSB0cmVhdGVkIGluIGFuIGlkZW50aWNhbCBtYW5uZXIgc2luY2UgdGhlIEMrKyBjb21waWxlciB0YWtlcyBjYXJlIG9mIHRoaXMgZm9yIHVzIGF1dG9tYXRpY2FsbHkuPHA+Ci08YSBuYW1lPSJuNDciPjwvYT48aDM+IFN0YXRpYyBtZW1iZXJzPC9oMz4KLVN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZGlyZWN0bHkgd2l0aG91dCBtYWtpbmcgYW55IGFkZGl0aW9uYWwgQyB3cmFwcGVycy4gRm9yIGV4YW1wbGUsIHRoZSBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uIDx0dD5wcmludChMaXN0ICpsKTwvdHQ+IHdpbGwgc2ltcGx5IGJlIGNhbGxlZCBhcyA8dHQ+TGlzdDo6cHJpbnQoTGlzdCAqbCk8L3R0PiBpbiB0aGUgcmVzdWx0aW5nIHdyYXBwZXIgY29kZS48cD4KLTxhIG5hbWU9Im40OCI+PC9hPjxoMz4gTWVtYmVyIGRhdGE8L2gzPgotTWVtYmVyIGRhdGEgaXMgaGFuZGxlZCBpbiBleGFjdGx5IHRoZSBzYW1lIG1hbm5lciBhcyB1c2VkIGZvciBDIHN0cnVjdHVyZXMuIEEgcGFpciBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgd2lsbCBiZSBjcmVhdGVkLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aW50IExpc3RfbGVuZ3RoX2dldChMaXN0ICpvYmopIHsKLQlyZXR1cm4gb2JqLSZndDtsZW5ndGg7Ci19Ci1pbnQgTGlzdF9sZW5ndGhfc2V0KExpc3QgKm9iaiwgaW50IHZhbHVlKSB7Ci0Jb2JqLSZndDtsZW5ndGggPSB2YWx1ZTsKLQlyZXR1cm4gdmFsdWU7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUEgcmVhZC1vbmx5IG1lbWJlciBjYW4gYmUgY3JlYXRlZCB1c2luZyB0aGUgPHR0PiVyZWFkb25seTwvdHQ+IGFuZCA8dHQ+JXJlYWR3cml0ZTwvdHQ+IGRpcmVjdGl2ZXMuIEZvciBleGFtcGxlLCB3ZSBwcm9iYWJseSB3b3VsZG4ndCB3YW50IHRoZSB1c2VyIHRvIGNoYW5nZSB0aGUgbGVuZ3RoIG9mIGEgbGlzdCBzbyB3ZSBjb3VsZCBkbyB0aGUgZm9sbG93aW5nIHRvIG1ha2UgdGhlIHZhbHVlIGF2YWlsYWJsZSwgYnV0IHJlYWQtb25seS48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLS4uLgotJXJlYWRvbmx5Ci0JaW50IGxlbmd0aDsKLSVyZWFkd3JpdGUKLS4uLgotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im40OSI+PC9hPjxoMz4gUHJvdGVjdGlvbjwvaDM+Ci1TV0lHIGNhbiBvbmx5IHdyYXAgY2xhc3MgbWVtYmVycyB0aGF0IGFyZSBkZWNsYXJlZCBwdWJsaWMuIEFueXRoaW5nIHNwZWNpZmllZCBpbiBhIHByaXZhdGUgb3IgcHJvdGVjdGVkIHNlY3Rpb24gd2lsbCBzaW1wbHkgYmUgaWdub3JlZC4gVG8gc2ltcGxpZnkgeW91ciBpbnRlcmZhY2UgZmlsZSwgeW91IG1heSB3YW50IHRvIGNvbnNpZGVyIGVsaW1pbmF0aW5nIGFsbCBwcml2YXRlIGFuZCBwcm90ZWN0ZWQgZGVjbGFyYXRpb25zIChpZiB5b3UndmUgY29waWVkIGEgQysrIGhlYWRlciBmaWxlIGZvciBleGFtcGxlKS48cD4KLTxwPgotQnkgZGVmYXVsdCwgbWVtYmVycyBvZiBhIGNsYXNzIGRlZmluaXRpb24gYXJlIGFzc3VtZWQgdG8gYmUgcHJpdmF0ZSB1bnRpbCB5b3UgZXhwbGljaXRseSBnaXZlIGEgYDx0dD5wdWJsaWM6PC90dD4nIGRlY2xhcmF0aW9uIChUaGlzIGlzIHRoZSBzYW1lIGNvbnZlbnRpb24gdXNlZCBieSBDKyspLjxwPgotPGEgbmFtZT0ibjUwIj48L2E+PGgzPiBFbnVtcyBhbmQgY29uc3RhbnRzPC9oMz4KLUVudW1lcmF0aW9ucyBhbmQgY29uc3RhbnRzIHBsYWNlZCBpbiBhIGNsYXNzIGRlZmluaXRpb24gYXJlIG1hcHBlZCBpbnRvIGNvbnN0YW50cyB3aXRoIHRoZSBjbGFzc25hbWUgYXMgYSBwcmVmaXguIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBTd2lnIHsKLXB1YmxpYzoKLQllbnVtIHtBTEUsIExBR0VSLCBQT1JURVIsIFNUT1VUfTsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUdlbmVyYXRlcyB0aGUgZm9sbG93aW5nIHNldCBvZiBjb25zdGFudHMgaW4gdGhlIHRhcmdldCBzY3JpcHRpbmcgbGFuZ3VhZ2UgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlN3aWdfQUxFID0gU3dpZzo6QUxFCi1Td2lnX0xBR0VSID0gU3dpZzo6TEFHRVIKLVN3aWdfUE9SVEVSID0gU3dpZzo6UE9SVEVSCi1Td2lnX1NUT1VUID0gU3dpZzo6U1RPVVQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTWVtYmVycyBkZWNsYXJlZCBhcyA8dHQ+Y29uc3Q8L3R0PiBhcmUgd3JhcHBlZCBpbiBhIHNpbWlsYXIgbWFubmVyLjxwPgotPGEgbmFtZT0ibjUxIj48L2E+PGgzPiBSZWZlcmVuY2VzPC9oMz4KLUMrKyByZWZlcmVuY2VzIGFyZSBzdXBwb3J0ZWQsIGJ1dCBTV0lHIHdpbGwgdHJlYXQgdGhlbSBhcyBwb2ludGVycy4gRm9yIGV4YW1wbGUsIGEgZGVjbGFyYXRpb24gbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBGb28gewotcHVibGljOgotCWRvdWJsZSBiYXIoZG91YmxlICZhbXA7YSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLXdpbGwgYmUgYWNjZXNzZWQgdXNpbmcgYSBmdW5jdGlvbiBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRvdWJsZSBGb29fYmFyKEZvbyAqb2JqLCBkb3VibGUgKmEpIHsKLQlvYmotJmd0O2JhcigqYSk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZ1bmN0aW9ucyByZXR1cm5pbmcgYSByZWZlcmVuY2Ugd2lsbCBiZSBtYXBwZWQgaW50byBmdW5jdGlvbnMgcmV0dXJuaW5nIHBvaW50ZXJzLjxwPgotPGEgbmFtZT0ibjUyIj48L2E+PGgzPiBJbmhlcml0YW5jZTwvaDM+Ci1TV0lHIHN1cHBvcnRzIGJhc2ljIEMrKyBwdWJsaWMgaW5oZXJpdGFuY2Ugb2YgY2xhc3NlcyBhbmQgYWxsb3dzIGJvdGggc2luZ2xlIGFuZCBtdWx0aXBsZSBpbmhlcml0YW5jZS4gVGhlIFNXSUcgdHlwZS1jaGVja2VyIGtub3dzIGFib3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBiYXNlIGFuZCBkZXJpdmVkIGNsYXNzZXMgYW5kIHdpbGwgYWxsb3cgcG9pbnRlcnMgdG8gYW55IG9iamVjdCBvZiBhIGRlcml2ZWQgY2xhc3MgdG8gYmUgdXNlZCBpbiBmdW5jdGlvbnMgb2YgYSBiYXNlIGNsYXNzLiBUaGUgdHlwZS1jaGVja2VyIHByb3Blcmx5IGNhc3RzIHBvaW50ZXIgdmFsdWVzIGFuZCBpcyBzYWZlIHRvIHVzZSB3aXRoIG11bHRpcGxlIGluaGVyaXRhbmNlLjxwPgotU1dJRyBkb2VzIG5vdCBzdXBwb3J0IHByaXZhdGUgb3IgcHJvdGVjdGVkIGluaGVyaXRhbmNlIChpdCB3aWxsIGJlIHBhcnNlZCwgYnV0IGlnbm9yZWQpLjxwPgotPHA+Ci1UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IFNXSUcgaGFuZGxlcyBpbmhlcml0YW5jZS4gRm9yIGNsYXJpdHksIHRoZSBmdWxsIEMrKyBjb2RlIGhhcyBiZWVuIG9taXR0ZWQuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gc2hhcGVzLmkKLSVtb2R1bGUgc2hhcGVzCi0lewotI2luY2x1ZGUgInNoYXBlcy5oIgotJX0KLQotY2xhc3MgU2hhcGUgewotcHVibGljOgotCXZpcnR1YWwgZG91YmxlIGFyZWEoKSA9IDA7Ci0JdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOwotCXZvaWQgICAgc2V0X2xvY2F0aW9uKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci19OwotY2xhc3MgQ2lyY2xlIDogcHVibGljIFNoYXBlIHsKLXB1YmxpYzoKLQlDaXJjbGUoZG91YmxlIHJhZGl1cyk7Ci0JfkNpcmNsZSgpOwotCWRvdWJsZSBhcmVhKCk7Ci0JZG91YmxlIHBlcmltZXRlcigpOwotfTsKLWNsYXNzIFNxdWFyZSA6IHB1YmxpYyBTaGFwZSB7Ci1wdWJsaWM6Ci0JU3F1YXJlKGRvdWJsZSBzaXplKTsKLQl+U3F1YXJlKCk7Ci0JZG91YmxlIGFyZWEoKTsKLQlkb3VibGUgcGVyaW1ldGVyKCk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdoZW4gd3JhcHBlZCBpbnRvIFBlcmw1LCB3ZSBjYW4gbm93IHBlcmZvcm0gdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5iZWF6bGV5QHNsYWNrJSBwZXJsNS4wMDMKLXVzZSBzaGFwZXM7Ci0kY2lyY2xlID0gc2hhcGVzOjpuZXdfQ2lyY2xlKDcpOwotJHNxdWFyZSA9IHNoYXBlczo6bmV3X1NxdWFyZSgxMCk7Ci1wcmludCBzaGFwZXM6OkNpcmNsZV9hcmVhKCRjaXJjbGUpLCJcbiI7Ci0jIE5vdGljZSB1c2Ugb2YgYmFzZSBjbGFzcyBiZWxvdwotcHJpbnQgc2hhcGVzOjpTaGFwZV9hcmVhKCRjaXJjbGUpLCJcbiI7Ci1wcmludCBzaGFwZXM6OlNoYXBlX2FyZWEoJHNxdWFyZSksIlxuIjsKLXNoYXBlczo6U2hhcGVfc2V0X2xvY2F0aW9uKCRzcXVhcmUsMiwtMyk7Ci1wcmludCBzaGFwZXM6OlNoYXBlX3BlcmltZXRlcigkc3F1YXJlKSwiXG4iOwotJmx0O2N0cmwtZCZndDsKLTE1My45MzgwNDAwNDU5OTk5OTc1NwotMTUzLjkzODA0MDA0NTk5OTk5NzU3Ci0xMDAuMDAwMDAwMDAwMDAwMDAwMDAKLTQwLjAwMDAwMDAwMDAwMDAwMDAwCi0gCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiBvdXIgZXhhbXBsZSwgd2UgaGF2ZSBjcmVhdGVkIENpcmNsZSBhbmQgU3F1YXJlIG9iamVjdHMuIFdlIGNhbiBjYWxsIG1lbWJlciBmdW5jdGlvbnMgb24gZWFjaCBvYmplY3QgYnkgbWFraW5nIGNhbGxzIHRvIDx0dD5DaXJjbGVfYXJlYTwvdHQ+LCA8dHQ+U3F1YXJlX2FyZWE8L3R0PiwgYW5kIHNvIG9uLiBIb3dldmVyLCB3ZSBjYW4gY2FuIGFjY29tcGxpc2ggdGhlIHNhbWUgdGhpbmcgYnkgc2ltcGx5IHVzaW5nIHRoZSA8dHQ+U2hhcGVfYXJlYTwvdHQ+IGZ1bmN0aW9uIG9uIGVpdGhlciBvYmplY3QuPHA+Ci08YSBuYW1lPSJuNTMiPjwvYT48aDM+IFRlbXBsYXRlczwvaDM+Ci1TV0lHIGRvZXMgbm90IHN1cHBvcnQgdGVtcGxhdGUgZGVmaW5pdGlvbnMtLXRoYXQgaXMsIGl0IGRvZXMgbm90IHN1cHBvcnQgYW55dGhpbmcgdGhhdCB3b3VsZCBiZSBkZWNsYXJlZCBpbiBDKysgdXNpbmcgdGhlIGA8dHQ+dGVtcGxhdGU8L3R0Picga2V5d29yZC4gSWYgYSB0ZW1wbGF0ZSBkZWZpbml0aW9uIGlzIGZvdW5kLCBTV0lHIHdpbGwgaXNzdWUgYSB3YXJuaW5nIG1lc3NhZ2UgYW5kIGF0dGVtcHQgdG8gaWdub3JlIHRoZSBjb250ZW50cyBvZiB0aGUgZW50aXJlIGRlY2xhcmF0aW9uLiBGb3IgZXhhbXBsZSwgYSB0ZW1wbGF0ZSBjbGFzcyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgd291bGQgYmUgaWdub3JlZCBieSBTV0lHIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBGaWxlIDogbGlzdC5oCi0jZGVmaW5lIE1BWElURU1TIDEwMAotdGVtcGxhdGUmbHQ7Y2xhc3MgVCZndDsgY2xhc3MgTGlzdCB7IAkJCQkJCS8vIEVudGlyZSBjbGFzcyBpcyBpZ25vcmVkIGJ5IFNXSUcKLXByaXZhdGU6Ci0gICAgVCAqZGF0YTsKLSAgICBpbnQgbml0ZW1zOwotcHVibGljOgotICAgIExpc3QoKSB7Ci0gICAgICBkYXRhID0gbmV3IFQgW01BWElURU1TXTsKLSAgICAgIG5pdGVtcyA9IDA7Ci0gICAgfQotICAgIH5MaXN0KCkgewotICAgICAgZGVsZXRlIFtdIGRhdGE7Ci0gICAgfTsKLSAgICB2b2lkIGFwcGVuZChUIG9iaikgewotICAgICAgaWYgKG5pdGVtcyAmbHQ7IE1BWElURU1TKSB7Ci0gICAgICAgIGRhdGFbbml0ZW1zKytdID0gb2JqOwotICAgICAgfQotICAgIH0KLSAgICBpbnQgbGVuZ3RoKCkgewotICAgICAgcmV0dXJuIG5pdGVtczsKLSAgICB9Ci0gICAgVCBnZXQoaW50IG4pIHsKLSAgICAgIHJldHVybiBkYXRhW25dOwotICAgIH0KLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUhvd2V2ZXIsIFNXSUcgY2FuIHN1cHBvcnQgaW5zdGFudGlhdGlvbnMgb2YgYSB0ZW1wbGF0ZSBhbmQgdHlwZXMgaW52b2x2aW5nIHRlbXBsYXRlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgd291bGQgYmUgbGVnYWwgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFNXSUcgaW50ZXJmYWNlIGludm9sdmluZyBhIHRlbXBsYXRlCi0lbW9kdWxlIGV4YW1wbGUKLSV7Ci0jaW5jbHVkZSAibGlzdC5oIgkJCQkvLyBHZXQgVGVtcGxhdGUgZGVmaW5pdGlvbiAKLSV9Ci0KLS8vIE5vdyBhIGZ1bmN0aW9uIGludm9sdmluZyB0ZW1wbGF0ZXMKLWV4dGVybiB2b2lkIFByaW50RGF0YShMaXN0Jmx0O2RvdWJsZSZndDsgJmFtcDtsKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIHR5cGUgIjx0dD5MaXN0Jmx0O2RvdWJsZTwvdHQ+Jmd0OyIgYmVjb21lcyB0aGUgZGF0YXR5cGUgZm9yIHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIuIEluLCBQeXRob24gaXQgbWlnaHQgYXBwZWFyIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7IHByaW50IGNsCi1fODBhMmRmOF9MaXN0Jmx0O2RvdWJsZSZndDtfcAotJmd0OyZndDsmZ3Q7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRvIGNyZWF0ZSBzcGVjaWZpYyBvYmplY3RzLCB5b3UgbWF5IG5lZWQgdG8gc3VwcGx5IGhlbHBlciBmdW5jdGlvbnMgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0laW5saW5lICV7Ci0vLyBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgTGlzdCZsdDtkb3VibGUmZ3Q7Ci1MaXN0Jmx0O2RvdWJsZSZndDsgKm5ld19Eb3VibGVMaXN0KCkgewotCXJldHVybiBuZXcgTGlzdCZsdDtkb3VibGUmZ3Q7OwotfQotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotU3BlY2lmaWMgdGVtcGxhdGVzIGNhbiBhbHNvIGJlIHdyYXBwZWQgaW4gYSBjbGV2ZXIgd2F5IHVzaW5nIDx0dD50eXBlZGVmLjwvdHQ+IEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHdvdWxkIGFsc28gd29yayA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0lewotI2luY2x1ZGUgImxpc3QuaCIKLXR5cGVkZWYgTGlzdCZsdDtkb3VibGUmZ3Q7IERvdWJsZUxpc3Q7Ci0lfQotCi1jbGFzcyBEb3VibGVMaXN0IHsKLXB1YmxpYzoKLQlEb3VibGVMaXN0KCk7Ci0JfkRvdWJsZUxpc3QoKTsKLQl2b2lkIGFwcGVuZChkb3VibGUpOwotCWludCBsZW5ndGgoKTsKLQlkb3VibGUgZ2V0KGludCBuKTsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgY2FzZSwgU1dJRyB0aGlua3MgdGhhdCB0aGVyZSBpcyBhIGNsYXNzICI8dHQ+RG91YmxlTGlzdDwvdHQ+IiB3aXRoIHRoZSBtZXRob2RzIHN1cHBsaWVkLiBJdCBnZW5lcmF0ZXMgdGhlIGFwcHJvcHJpYXRlIGNvZGUgYW5kIGV2ZXJ5dGhpbmcgd29ya3MgbGlrZSB5b3Ugd291bGQgZXhwZWN0IChvZiBjb3Vyc2UsIGluIHJlYWxpdHkgdGhlcmUgaXMgbm8gc3VjaCBjbGFzcykuIFdoZW4gdGhlIFNXSUcgbW9kdWxlIGlzIGNvbXBpbGVkLCBhbGwgb2YgdGhlIG1ldGhvZHMgZ2V0IHN1cHBsaWVkIGJ5IHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZSBjbGFzcy4gQSBrZXkgdGhpbmcgdG8ga2VlcCBpbiBtaW5kIHdoZW4gd29ya2luZyB3aXRoIHRlbXBsYXRlcyBpcyB0aGF0IFNXSUcgY2FuIG9ubHkgaGFuZGxlIHBhcnRpY3VsYXIgaW5zdGFudGlhdGlvbnMgb2YgYSB0ZW1wbGF0ZSAoc3VjaCBhcyBhIGxpc3Qgb2YgZG91YmxlKS4gTW9yZSBnZW5lcmFsIHN1cHBvcnQgaXMgbm90IHlldCBwcm92aWRlZCAoYnV0IG1heSBiZSBhZGRlZCBzb21lZGF5KS48cD4KLTxhIG5hbWU9Im41NCI+PC9hPjxoMz4gUmVuYW1pbmc8L2gzPgotQysrIG1lbWJlciBmdW5jdGlvbnMgYW5kIGRhdGEgY2FuIGJlIHJlbmFtZWQgd2l0aCB0aGUgPHR0PiVuYW1lPC90dD4gZGlyZWN0aXZlLiBUaGUgPHR0PiVuYW1lPC90dD4gZGlyZWN0aXZlIG9ubHkgcmVwbGFjZXMgdGhlIG1lbWJlciBmdW5jdGlvbiBuYW1lLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Y2xhc3MgTGlzdCB7Ci1wdWJsaWM6Ci0gIExpc3QoKTsKLSVuYW1lKExpc3RTaXplKSBMaXN0KGludCBtYXhzaXplKTsKLSAgfkxpc3QoKTsKLSAgaW50ICBzZWFyY2goY2hhciAqdmFsdWUpOyAKLSVuYW1lKGZpbmQpICAgIHZvaWQgaW5zZXJ0KGNoYXIgKik7IAotJW5hbWUoZGVsZXRlKSAgdm9pZCByZW1vdmUoY2hhciAqKTsgCi0gIGNoYXIgKmdldChpbnQgbik7Ci0gIGludCAgbGVuZ3RoOwotc3RhdGljIHZvaWQgcHJpbnQoTGlzdCAqbCk7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHdpbGwgY3JlYXRlIHRoZSBmdW5jdGlvbnMgPHR0Pkxpc3RfZmluZDwvdHQ+LCA8dHQ+TGlzdF9kZWxldGU8L3R0PiwgYW5kIGEgZnVuY3Rpb24gbmFtZWQgPHR0Pm5ld19MaXN0U2l6ZTwvdHQ+IGZvciB0aGUgb3ZlcmxvYWRlZCBjb25zdHJ1Y3Rvci48cD4KLTxwPgotVGhlIDx0dD4lbmFtZSA8L3R0PmRpcmVjdGl2ZSBjYW4gYmUgYXBwbGllZCB0byBhbGwgbWVtYmVycyBpbmNsdWRpbmcgY29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycywgc3RhdGljIGZ1bmN0aW9ucywgZGF0YSBtZW1iZXJzLCBhbmQgZW51bWVyYXRpb24gdmFsdWVzLjxwPgotPHA+Ci1UaGUgY2xhc3MgbmFtZSBwcmVmaXggY2FuIGJlIGNoYW5nZWQgYnkgc3BlY2lmeWluZyA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbmFtZShuZXduYW1lKSBjbGFzcyBMaXN0IHsKLS4uLgotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjU1Ij48L2E+PGgzPiBBZGRpbmcgbmV3IG1ldGhvZHM8L2gzPgotTmV3IG1ldGhvZHMgY2FuIGJlIGFkZGVkIHRvIGEgY2xhc3MgdXNpbmcgdGhlIDx0dD4lYWRkbWV0aG9kczwvdHQ+IGRpcmVjdGl2ZS4gVGhpcyBkaXJlY3RpdmUgaXMgcHJpbWFyaWx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBzaGFkb3cgY2xhc3NlcyB0byBhZGQgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHRvIGFuIGV4aXN0aW5nIGNsYXNzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSB2ZWN0b3IKLSV7Ci0jaW5jbHVkZSAidmVjdG9yLmgiCi0lfQotCi1jbGFzcyBWZWN0b3IgewotcHVibGljOgotCWRvdWJsZSB4LHksejsKLQlWZWN0b3IoKTsKLQl+VmVjdG9yKCk7Ci0JLi4uIGJ1bmNoIG9mIEMrKyBtZXRob2RzIC4uLgotCSVhZGRtZXRob2RzIHsKLQkJY2hhciAqX19zdHJfXygpIHsKLQkJCXN0YXRpYyBjaGFyIHRlbXBbMjU2XTsKLQkJCXNwcmludGYodGVtcCwiWyAlZywgJWcsICVnIF0iLCB2LSZndDt4LHYtJmd0O3ksdi0mZ3Q7eik7Ci0JCQlyZXR1cm4gJmFtcDt0ZW1wWzBdOwotCQl9Ci0JfQotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhpcyBjb2RlIGFkZHMgYTx0dD4gX19zdHJfXzwvdHQ+IG1ldGhvZCB0byBvdXIgY2xhc3MgZm9yIHByb2R1Y2luZyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0LiBJbiBQeXRob24sIHN1Y2ggYSBtZXRob2Qgd291bGQgYWxsb3cgdXMgdG8gcHJpbnQgdGhlIHZhbHVlIG9mIGFuIG9iamVjdCB1c2luZyB0aGUgPHR0PnByaW50PC90dD4gY29tbWFuZC4gPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyZndDsmZ3Q7Ci0mZ3Q7Jmd0OyZndDsgdiA9IFZlY3RvcigpOwotJmd0OyZndDsmZ3Q7IHYueCA9IDMKLSZndDsmZ3Q7Jmd0OyB2LnkgPSA0Ci0mZ3Q7Jmd0OyZndDsgdi56ID0gMAotJmd0OyZndDsmZ3Q7IHByaW50KHYpCi1bIDMuMCwgNC4wLCAwLjAgXQotJmd0OyZndDsmZ3Q7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZTx0dD4gJWFkZG1ldGhvZHM8L3R0PiBkaXJlY3RpdmUgZm9sbG93cyBhbGwgb2YgdGhlIHNhbWUgY29udmVudGlvbnMgYXMgaXRzIHVzZSB3aXRoIEMgc3RydWN0dXJlcy48cD4KLTxhIG5hbWU9Im41NiI+PC9hPjxoMz4gUGFydGlhbCBjbGFzcyBkZWZpbml0aW9uczwvaDM+Ci1TaW5jZSBTV0lHIGlzIHN0aWxsIHNvbWV3aGF0IGxpbWl0ZWQgaW4gaXRzIHN1cHBvcnQgb2YgQysrLCBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIG9ubHkgdXNlIHBhcnRpYWwgY2xhc3MgaW5mb3JtYXRpb24gaW4gYW4gaW50ZXJmYWNlIGZpbGUuIFRoaXMgc2hvdWxkIG5vdCBwcmVzZW50IGEgcHJvYmxlbSBhcyBTV0lHIGRvZXMgbm90IG5lZWQgdGhlIGV4YWN0IEMrKyBzcGVjaWZpY2F0aW9uLiBBcyBhIGdlbmVyYWwgcnVsZSwgeW91IHNob3VsZCBzdHJpcCBhbGwgY2xhc3NlcyBvZiBvcGVyYXRvciBvdmVybG9hZGluZywgZnJpZW5kcywgYW5kIG90aGVyIGRlY2xhcmF0aW9ucyBiZWZvcmUgZ2l2aW5nIHRoZW0gdG8gU1dJRyAoYWx0aG91Z2ggU1dJRyB3aWxsIGdlbmVyYXRlIG9ubHkgd2FybmluZ3MgZm9yIG1vc3Qgb2YgdGhlc2UgdGhpbmdzKS48cD4KLTxwPgotQXMgYSBydWxlIG9mIHRodW1iLCBydW5uaW5nIFNXSUcgb24gcmF3IEMrKyBoZWFkZXIgb3Igc291cmNlIGZpbGVzIGlzIGN1cnJlbnRseSBkaXNjb3VyYWdlZC4gR2l2ZW4gdGhlIGNvbXBsZXhpdHkgb2YgQysrIHBhcnNpbmcgYW5kIGxpbWl0YXRpb25zIGluIFNXSUcncyBwYXJzZXIgaXQgd2lsbCBzdGlsbCB0YWtlIHNvbWUgdGltZSBmb3IgU1dJRydzIHBhcnNlciB0byBldm9sdmUgdG8gYSBwb2ludCBvZiBiZWluZyBhYmxlIHRvIHNhZmVseSBoYW5kbGUgbW9zdCByYXcgQysrIGZpbGVzLjxwPgotPGEgbmFtZT0ibjU3Ij48L2E+PGgzPiBTV0lHLCBDKyssIGFuZCB0aGUgTGVnaXNsYXRpb24gb2YgTW9yYWxpdHk8L2gzPgotQXMgbGFuZ3VhZ2VzIGdvLCBDKysgaXMgcXVpdGUgcG9zc2libHkgb25lIG9mIHRoZSBtb3N0IGltbWVuc2UgYW5kIGNvbXBsaWNhdGVkIGxhbmd1YWdlcyBldmVyIGRldmlzZWQuIEl0IGlzIGNlcnRhaW5seSBhIGZhciBjcnkgZnJvbSB0aGUgc29tZXdoYXQgbWluaW1hbGlzdGljIG5hdHVyZSBvZiBDLiBNYW55IHBhcnRzIG9mIEMrKyBhcmUgZGVzaWduZWQgdG8gYnVpbGQgbGFyZ2UgcHJvZ3JhbXMgdGhhdCBhcmUgInNhZmUiIGFuZCAicmVsaWFibGUuIiBIb3dldmVyLCBhcyBhIHJlc3VsdCwgaXQgaXMgcG9zc2libGUgZm9yIGRldmVsb3BlcnMgdG8gb3ZlcmxvYWQgb3BlcmF0b3JzLCBpbXBsZW1lbnQgc21hcnQgcG9pbnRlcnMsIGFuZCBkbyBhbGwgc29ydHMgb2Ygb3RoZXIgaW5zYW5lIHRoaW5ncyAobGlrZSBleHByZXNzaW9uIHRlbXBsYXRlcykuIEFzIGZhciBhcyBTV0lHIGlzIGNvbmNlcm5lZCwgdGhlIHByaW1hcnkgZ29hbCBpcyBhdHRhY2hpbmcgdG8gc3VjaCBzeXN0ZW1zIGFuZCBwcm92aWRpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBUaGVyZSBhcmUgbWFueSBmZWF0dXJlcyBvZiBDKysgdGhhdCBJIHdvdWxkIG5vdCBoYXZlIHRoZSBzbGlnaHRlc3QgaWRlYSBob3cgdG8gc3VwcG9ydCBpbiBTV0lHIChtb3N0IGtpbmRzIG9mIHRlbXBsYXRlcyBmb3IgZXhhbXBsZSkuIFRoZXJlIGFyZSBvdGhlciBDKysgaWRpb21zIHRoYXQgbWF5IGJlIHVuc2FmZSB0byB1c2Ugd2l0aCBTV0lHLiBGb3IgZXhhbXBsZSwgaWYgb25lIGltcGxlbWVudHMgInNtYXJ0IiBwb2ludGVycywgaG93IHdvdWxkIHRoZXkgYWN0dWFsbHkgaW50ZXJhY3Qgd2l0aCB0aGUgcG9pbnRlciBtZWNoYW5pc20gdXNlZCBieSBTV0lHPyA8cD4KLTxwPgotTmVlZGxlc3MgdG8gc2F5LCBoYW5kbGluZyBhbGwgb2YgdGhlIHBvc3NpYmxlIGNhc2VzIGlzIHByb2JhYmx5IGltcG9zc2libGUuIFNXSUcgaXMgY2VydGFpbmx5IG5vdCBndWFyYW50ZWVkIHRvIHdvcmsgd2l0aCBldmVyeSBjb25jZWl2YWJsZSB0eXBlIG9mIEMrKyBwcm9ncmFtIChlc3BlY2lhbGx5IHRob3NlIHRoYXQgdXNlIEMrKyBpbiBhIG1heGltYWwgbWFubmVyKS4gTm9yIGlzIFNXSUcgY2xhaW1pbmcgdG8gYnVpbGQgQysrIGludGVyZmFjZXMgaW4gYSBjb21wbGV0ZWx5ICJzYWZlIiBtYW5uZXIuIFRoZSBib3R0b20gbGluZSBpcyB0aGF0IGVmZmVjdGl2ZSB1c2Ugb2YgQysrIHdpdGggU1dJRyByZXF1aXJlcyB0aGF0IHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nIGFuZCB0aGF0IHlvdSBoYXZlIGEgY2VydGFpbiBsZXZlbCBvZiAibW9yYWwgZmxleGliaWxpdHkiIHdoZW4gaXQgY29tZXMgdG8gdGhlIGlzc3VlIG9mIGJ1aWxkaW5nIGEgdXNlZnVsIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2UuPHA+Ci08YSBuYW1lPSJuNTgiPjwvYT48aDM+IFRoZSBmdXR1cmUgb2YgQysrIGFuZCBTV0lHPC9oMz4KLVNXSUcncyBzdXBwb3J0IG9mIEMrKyBpcyBiZXN0IGRlc2NyaWJlZCBhcyBhbiBvbmdvaW5nIHByb2plY3QuIEl0IHdpbGwgcHJvYmFibHkgcmVtYWluIGV2b2x1dGlvbmFyeSBpbiBuYXR1cmUgZm9yIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUuIEluIHRoZSBzaG9ydCB0ZXJtLCB3b3JrIGlzIGFscmVhZHkgdW5kZXJ3YXkgZm9yIHN1cHBvcnRpbmcgbmVzdGVkIGNsYXNzZXMgYW5kIGZ1bmN0aW9uIG92ZXJsb2FkaW5nLiBBcyBhbHdheXMsIHRoZXNlIGRldmVsb3BtZW50cyB3aWxsIHRha2UgdGltZS4gRmVlZGJhY2sgYW5kIGNvbnRyaWJ1dGlvbnMgYXJlIGFsd2F5cyB3ZWxjb21lLjxwPgotPGEgbmFtZT0ibjciPjwvYT48aDI+IE9iamVjdGl2ZS1DPC9oMj4KLU9uZSBvZiBTV0lHJ3MgbW9zdCByZWNlbnQgYWRkaXRpb25zIGlzIHN1cHBvcnQgZm9yIE9iamVjdGl2ZS1DIHBhcnNpbmcuIFRoaXMgaXMgY3VycmVudGx5IGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWF5IGJlIGltcHJvdmVkIGluIGZ1dHVyZSByZWxlYXNlcy4gPHA+Ci08cD4KLU9iamVjdGl2ZS1DIHN1cHBvcnQgaXMgYnVpbHQgdXNpbmcgdGhlIHNhbWUgYXBwcm9hY2ggYXMgdXNlZCBmb3IgQysrIHBhcnNpbmcuIE9iamVjdGl2ZS1DIGludGVyZmFjZSBkZWZpbml0aW9ucyBhcmUgY29udmVydGVkIGludG8gYSBjb2xsZWN0aW9uIG9mIEFOU0kgQyBhY2Nlc3NvciBmdW5jdGlvbnMuIFRoZXNlIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcmUgdGhlbiB3cmFwcGVkIGJ5IFNXSUcgYW5kIHR1cm5lZCBpbnRvIGFuIGludGVyZmFjZS48cD4KLTxwPgotVG8gZW5hYmxlIE9iamVjdGl2ZS1DIHBhcnNpbmcsIFNXSUcgc2hvdWxkIGJlIGdpdmVuIHRoZSA8dHQ+LW9iamM8L3R0PiBvcHRpb24gKHRoaXMgb3B0aW9uIG1heSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDx0dD4tYysrPC90dD4gb3B0aW9uIGlmIHVzaW5nIE9iamVjdGl2ZS1DKyspLiBJdCBtYXkgYWxzbyBiZSBoZWxwZnVsIHRvIHVzZSB0aGUgLW8gb3B0aW9uIHRvIGdpdmUgdGhlIG91dHB1dCBmaWxlIHRoZSAubSBzdWZmaXggbmVlZGVkIGJ5IG1hbnkgT2JqZWN0aXZlLUMgY29tcGlsZXJzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzd2lnIC1vYmpjIC1vIGV4YW1wbGVfd3JhcC5tIGV4YW1wbGUuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1PYmplY3RpdmUtQyBpbnRlcmZhY2VzIHNob3VsZCBhbHNvIGluY2x1ZGUgdGhlIGZpbGUgYDx0dD5vYmpjLmk8L3R0PicgYXMgdGhpcyBjb250YWlucyBpbXBvcnRhbnQgZGVmaW5pdGlvbnMgdGhhdCBhcmUgY29tbW9uIHRvIG1vc3QgT2JqZWN0aXZlLUMgcHJvZ3JhbXMuIDxwPgotPGEgbmFtZT0ibjU5Ij48L2E+PGgzPiBPYmplY3RpdmUtQyBFeGFtcGxlPC9oMz4KLVRoZSBmb2xsb3dpbmcgY29kZSBzaG93cyBhIFNXSUcgaW50ZXJmYWNlIGZpbGUgZm9yIGEgc2ltcGxlIE9iamVjdGl2ZS1DIGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGxpc3QKLSV7Ci0jaW1wb3J0ICJsaXN0LmgiCi0lfQotJWluY2x1ZGUgb2JqYy5pCi0vLyBWZXJ5IHNpbXBsZSBsaXN0IGNsYXNzCi1AaW50ZXJmYWNlIExpc3QgOiBPYmplY3QgewotICAgICBpbnQgICBuaXRlbXM7ICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Ci0gICAgIGludCAgIG1heGl0ZW1zOyAgICAgICAgICAgICAgICAvLyBNYXhpbXVtIG51bWJlciBvZiBpdGVtcwotICAgICBpZCAgICppdGVtczsgICAgICAgICAgICAgICAgICAgLy8gQXJyYXkgaG9sZGluZyB0aGUgaXRlbXMKLX0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgTGlzdCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS8vIENyZWF0ZSBhIG5ldyBsaXN0Ci0rIG5ldzsKLQotLy8gRGVzdHJveSB0aGUgbGlzdAotLSBmcmVlOwotCi0vLyBDb3B5IGEgbGlzdAotLSBjb3B5OwotCi0vLyBBcHBlbmQgYSBuZXcgaXRlbSB0byB0aGUgbGlzdAotLSAodm9pZCkgYXBwZW5kOiAoaWQpIGl0ZW07Ci0KLS8vIEluc2VydCBhbiBpdGVtIGluIHRoZSBsaXN0Ci0tICh2b2lkKSBpbnNlcnQ6IChpZCkgaXRlbSA6IChpbnQpIHBvczsKLQotLy8gRGVsZXRlIGFuIGl0ZW0gZnJvbSB0aGUgbGlzdAotLSAgcmVtb3ZlOiAoaW50KSBwb3M7Ci0KLS8vIEdldCBhbiBpdGVtIGZyb20gdGhlIGxpc3QKLS0gZ2V0OiAoaW50KSBpOwotCi0vLyBGaW5kIGFuIGl0ZW0gaW4gdGhlIGxpc3QgYW5kIHJldHVybiBpdHMgaW5kZXgKLS0gKGludCkgaW5kZXg6IG9iajsKLQotLy8gR2V0IGxlbmd0aCBvZiB0aGUgbGlzdAotLSAoaW50KSBsZW47Ci0KLS8vIFByaW50IG91dCBhIGxpc3QgKENsYXNzIG1ldGhvZCkKLSsgKHZvaWQpIHByaW50OiAoTGlzdCAqKSBsOwotCi1AZW5kCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im42MCI+PC9hPjxoMz4gQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9yczwvaDM+Ci1CeSBkZWZhdWx0LCBTV0lHIGFzc3VtZXMgdGhhdCB0aGUgbWV0aG9kcyAibmV3IiBhbmQgImZyZWUiIGNvcnJlc3BvbmQgdG8gY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycy4gVGhlc2UgZnVuY3Rpb25zIGFyZSB0cmFuc2xhdGVkIGludG8gdGhlIGZvbGxvd2luZyBhY2Nlc3NvciBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkxpc3QgKm5ld19MaXN0KHZvaWQpIHsKLQlyZXR1cm4gKExpc3QgKikgW0xpc3QgbmV3XTsKLX0KLXZvaWQgZGVsZXRlX0xpc3QoTGlzdCAqbCkgewotCVtsIGZyZWVdOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JZiB0aGUgb3JpZ2luYWwgT2JqZWN0aXZlLUMgY2xhc3MgZG9lcyBub3QgaGF2ZSBhbnkgY29uc3RydWN0b3JzIG9yIGRlc3RydWN0b3JzLCBwdXR0aW5nIHRoZW0gaW4gdGhlIGludGVyZmFjZSBmaWxlIHdpbGwgY2F1c2UgU1dJRyB0byBnZW5lcmF0ZSB3cmFwcGVycyBmb3IgYSBkZWZhdWx0IGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yIChhc3N1bWVkIHRvIGJlIGRlZmluZWQgaW4gdGhlIG9iamVjdCdzIGJhc2UtY2xhc3MpLjxwPgotPHA+Ci1JZiB5b3VyIE9iamVjdGl2ZS1DIHByb2dyYW0gdXNlcyBhIGRpZmZlcmVudCBuYW1pbmcgc2NoZW1lIGZvciBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLCB5b3UgY2FuIHRlbGwgU1dJRyBhYm91dCBpdCB1c2luZyB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXByYWdtYSBvYmpjX25ldyA9ICJjcmVhdGUiIAkJCQkJLy8gQ2hhbmdlIGNvbnN0cnVjdG9yIHRvIGBjcmVhdGUnCi0lcHJhZ21hIG9iamNfZGVsZXRlID0gImRlc3Ryb3kiIAkJCQkJLy8gQ2hhbmdlIGRlc3RydWN0b3IgdG8gYGRlc3Ryb3knCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjEiPjwvYT48aDM+IEluc3RhbmNlIG1ldGhvZHM8L2gzPgotSW5zdGFuY2UgbWV0aG9kcyBhcmUgY29udmVydGVkIGludG8gYWNjZXNzb3IgZnVuY3Rpb25zIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBMaXN0X2FwcGVuZChMaXN0ICpsLCBpZCBpdGVtKSB7Ci0JW2wgYXBwZW5kIDogaXRlbV07Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjIiPjwvYT48aDM+IENsYXNzIG1ldGhvZHM8L2gzPgotQ2xhc3MgbWV0aG9kcyBhcmUgdHJhbnNsYXRlZCBpbnRvIHRoZSBmb2xsb3dpbmcgYWNjZXNzIGZ1bmN0aW9uIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci12b2lkIExpc3RfcHJpbnQoTGlzdCAqbCkgewotCVtMaXN0IHByaW50IDogbF07Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjMiPjwvYT48aDM+IE1lbWJlciBkYXRhPC9oMz4KLU1lbWJlciBkYXRhIGlzIGhhbmRsZWQgaW4gdGhlIHNhbWUgbWFubmVyIGFzIGZvciBDKysgd2l0aCBhY2Nlc3NvciBmdW5jdGlvbnMgYmVpbmcgcHJvZHVjZWQgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgdGhlIHZhbHVlLiBCeSBkZWZhdWx0LCBhbGwgZGF0YSBtZW1iZXJzIG9mIGFuIE9iamVjdGl2ZS1DIG9iamVjdCBhcmUgcHJpdmF0ZSB1bmxlc3MgZXhwbGljaXRseSBkZWNsYXJlZCA8dHQ+QHB1YmxpYzwvdHQ+LiA8cD4KLTxhIG5hbWU9Im42NCI+PC9hPjxoMz4gUHJvdGVjdGlvbjwvaDM+Ci1TV0lHIGNhbiBvbmx5IHdyYXAgZGF0YSBtZW1iZXJzIHRoYXQgYXJlIGRlY2xhcmVkIEBwdWJsaWMuIE90aGVyIHByb3RlY3Rpb24gbGV2ZWxzIGFyZSBpZ25vcmVkLjxwPgotPGEgbmFtZT0ibjY1Ij48L2E+PGgzPiBUaGUgdXNlIG9mIGlkPC9oMz4KLVRoZSBkYXRhdHlwZSBgPHR0PmlkPC90dD4nIGFzc3VtZXMgdGhlIHNhbWUgcm9sZSBpbiBTV0lHIGFzIGl0IGRvZXMgd2l0aCBPYmplY3RpdmUtQy4gQSBmdW5jdGlvbiBvcGVyYXRpbmcgb24gYW4gYGlkJyB3aWxsIGFjY2VwdCBhbnkgT2JqZWN0IHR5cGUgKHdvcmtzIGtpbmQgb2YgbGlrZSA8dHQ+dm9pZCAqPC90dD4pLiBBbGwgbWV0aG9kcyB3aXRoIG5vIGV4cGxpY2l0IHJldHVybiB2YWx1ZSBhcmUgYWxzbyBhc3N1bWVkIHRvIHJldHVybiBhbiBgaWQnLiA8cD4KLTxhIG5hbWU9Im42NiI+PC9hPjxoMz4gSW5oZXJpdGFuY2U8L2gzPgotRXNzZW50aWFsbHkgYWxsIE9iamVjdGl2ZS1DIGNsYXNzZXMgd2lsbCBpbmhlcml0IGZyb20gYSBiYXNlY2xhc3MgPHR0Pk9iamVjdDwvdHQ+LiBJZiB1bmRlZmluZWQsIFNXSUcgd2lsbCBnZW5lcmF0ZSBhIHdhcm5pbmcsIGJ1dCBvdGhlciBmdW5jdGlvbiBwcm9wZXJseS4gQSBtaXNzaW5nIGJhc2VjbGFzcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSB3cmFwcGVyIGNvZGUgb3IgdGhlIG9wZXJhdGlvbiBvZiB0aGUgcmVzdWx0aW5nIG1vZHVsZS4gUmVhbGx5LCB0aGUgb25seSBzaWRlIGVmZmVjdCBvZiBhIG1pc3NpbmcgYmFzZSBjbGFzcyBpcyB0aGF0IHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGV4ZWN1dGUgYmFzZS1jbGFzcyBtZXRob2RzIGZyb20gdGhlIHNjcmlwdGluZyBpbnRlcmZhY2UuIE9iamVjdGl2ZS1DIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgaW5oZXJpdGFuY2UuPHA+Ci08YSBuYW1lPSJuNjciPjwvYT48aDM+IFJlZmVycmluZyB0byBvdGhlciBjbGFzc2VzPC9oMz4KLVRoZTx0dD4gQGNsYXNzPC90dD4gZGVjbGFyYXRpb24gY2FuIGJlIHVzZWQgdG8gcmVmZXIgdG8gb3RoZXIgY2xhc3Nlcy4gU1dJRyB1c2VzIHRoaXMgaW4gY2VydGFpbiBpbnN0YW5jZXMgdG8gbWFrZSBzdXJlIHdyYXBwZXIgY29kZSBpcyBnZW5lcmF0ZWQgY29ycmVjdGx5LjxwPgotPGEgbmFtZT0ibjY4Ij48L2E+PGgzPiBDYXRlZ29yaWVzPC9oMz4KLUNhdGVnb3JpZXMgcHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgYWRkaW5nIG5ldyBtZXRob2RzIHRvIGV4aXN0aW5nIE9iamVjdGl2ZS1DIGNsYXNzZXMuIFNXSUcgY29ycmVjdGx5IHBhcnNlcyBjYXRlZ29yaWVzIGFuZCBhdHRhY2hlcyB0aGUgbWV0aG9kcyB0byB0aGUgd3JhcHBlcnMgY3JlYXRlZCBmb3IgdGhlIG9yaWdpbmFsIGNsYXNzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0lewotI2ltcG9ydCAiZm9vLmgiCi0lfQotCi0vLyBTYW1wbGUgdXNlIG9mIGEgY2F0ZWdvcnkgaW4gYW4gaW50ZXJmYWNlCi1AaW50ZXJmYWNlIEZvbyAoQ2F0ZWdvcnlOYW1lKQotLy8gTWV0aG9kIGRlY2xhcmF0aW9ucwotLWJhciA6IChpZCkgaTsKLUBlbmQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjY5Ij48L2E+PGgzPiBJbXBsZW1lbnRhdGlvbnMgYW5kIFByb3RvY29sczwvaDM+Ci1TV0lHIGN1cnJlbnRseSBpZ25vcmVzIGFsbCBkZWNsYXJhdGlvbnMgZm91bmQgaW5zaWRlIGFuIDx0dD5AaW1wbGVtZW50YXRpb248L3R0PiBvciA8dHQ+QHByb3RvY29sPC90dD4gc2VjdGlvbi4gU3VwcG9ydCBmb3IgdGhpcyBtYXkgYmUgYWRkZWQgaW4gZnV0dXJlIHJlbGVhc2VzLjxwPgotPHA+Ci1BbHRob3VnaCBTV0lHIGlnbm9yZXMgcHJvdG9jb2xzLCBwcm90b2NvbCB0eXBlLXNwZWNpZmllcnMgbWF5IGJlIHVzZWQuIEZvciBleGFtcGxlLCB0aGVzZSBhcmUgbGVnYWwgZGVjbGFyYXRpb25zIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLQotJWludGVyZmFjZSBGb28gOiBPYmplY3QgJmx0O3Byb3RvMSwgcHJvdG8yJmd0OyB7Ci0KLX0KLS8vIE1ldGhvZHMKLS0gQmFyIDogKGlkICZsdDtwcm90bzEscHJvdG8yJmd0OykgaTsKLUBlbmQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU1dJRyB3aWxsIGNhcnJ5IHRoZSBwcm90b2NvbCBsaXN0cyB0aHJvdWdoIHRoZSBjb2RlIGdlbmVyYXRpb24gcHJvY2VzcyBzbyB0aGUgcmVzdWx0aW5nIHdyYXBwZXIgY29kZSBjb21waWxlcyB3aXRob3V0IHdhcm5pbmdzLjxwPgotPGEgbmFtZT0ibjcwIj48L2E+PGgzPiBSZW5hbWluZzwvaDM+Ci1PYmplY3RpdmUtQyBtZW1iZXJzIGNhbiBiZSByZW5hbWVkIHVzaW5nIHRoZSA8dHQ+JW5hbWUoKTwvdHQ+IGRpcmVjdGl2ZSBhcyBpbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+QGludGVyZmFjZSBMaXN0IDogT2JqZWN0IHsKLUBwdWJsaWMKLSVuYW1lKHNpemUpIGludCBsZW5ndGg7IAkJCQkJCS8vIFJlbmFtZSBsZW5ndGggdG8gc2l6ZQotfQotCi0rIG5ldzsKLS0gZnJlZTsKLSVuYW1lKGFkZCkgLSh2b2lkKSBhcHBlbmQ6IChpZCkgaXRlbTsJCQkJCQkvLyBSZW5hbWUgYXBwZW5kIHRvIGFkZAotQGVuZAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNzEiPjwvYT48aDM+IEFkZGluZyBuZXcgbWV0aG9kczwvaDM+Ci1OZXcgbWV0aG9kcyBjYW4gYmUgYWRkZWQgdG8gYSBjbGFzcyB1c2luZyB0aGUgPHR0PiVhZGRtZXRob2RzPC90dD4gZGlyZWN0aXZlLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkIHdpdGggc2hhZG93IGNsYXNzZXMgdG8gYWRkIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSB0byBhIGNsYXNzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+QGludGVyZmFjZSBMaXN0IDogT2JqZWN0IHsKLX0KLS4uLiBidW5jaCBvZiBPYmplY3RpdmUtQyBtZXRob2RzIC4uLgotJWFkZG1ldGhvZHMgewotCS0gKHZvaWQpIG91dHB1dCB7Ci0JCS4uLiBjb2RlIHRvIG91dHB1dCBhIGxpc3QgLi4uCi0JfQotfQotQGVuZAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08dHQ+JWFkZG1ldGhvZHMgPC90dD53b3JrcyBpbiBleGFjdGx5IHRoZSBzYW1lIG1hbm5lciBhcyBpdCBkb2VzIGZvciBDIGFuZCBDKysgKGV4Y2VwdCB0aGF0IE9iamVjdGl2ZS1DIHN5bnRheCBpcyBhbGxvd2VkKS4gQ29uc3VsdCB0aG9zZSBzZWN0aW9ucyBmb3IgbW9yZSBkZXRhaWxzLjxwPgotPGEgbmFtZT0ibjcyIj48L2E+PGgzPiBPdGhlciBpc3N1ZXM8L2gzPgotT2JqZWN0aXZlLUMgaXMgZHluYW1pY2FsbHkgdHlwZWQgd2hpbGUgU1dJRyB0ZW5kcyB0byBlbmZvcmNlIGEgdHlwZS1jaGVja2luZyBtb2RlbCBvbiBhbGwgb2YgaXRzIHBvaW50ZXIgdmFsdWVzLiBUaGlzIG1pc21hdGNoIGNvdWxkIGNyZWF0ZSBvcGVyYXRpb25hbCBwcm9ibGVtcyB3aXRoIE9iamVjdGl2ZS1DIGNvZGUgaW4gdGhlIGZvcm0gb2YgU1dJRyB0eXBlIGVycm9ycy4gT25lIHNvbHV0aW9uIHRvIHRoaXMgKGFsdGhvdWdoIHBlcmhhcHMgbm90IGEgZ29vZCBvbmUpIGlzIHRvIHVzZSB0aGUgU1dJRyBwb2ludGVyIGxpYnJhcnkgaW4gY29uanVuY3Rpb24gd2l0aCBPYmplY3RpdmUtQy4gVGhlIHBvaW50ZXIgbGlicmFyeSBwcm92aWRlcyBzaW1wbGUgZnVuY3Rpb25zIGZvciBjYXN0aW5nIHBvaW50ZXIgdHlwZXMgYW5kIG1hbmlwdWxhdGluZyB2YWx1ZXMuIDxwPgotPHA+Ci1DZXJ0YWluIGFzcGVjdHMgb2YgT2JqZWN0aXZlLUMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIChwcm90b2NvbHMgZm9yIGluc3RhbmNlKS4gVGhlc2UgbGltaXRhdGlvbnMgbWF5IGJlIGxpZnRlZCBpbiBmdXR1cmUgcmVsZWFzZXMuPHA+Ci08YSBuYW1lPSJuOCI+PC9hPjxoMj4gQ29uZGl0aW9uYWwgY29tcGlsYXRpb248L2gyPgotU1dJRyBkb2VzIG5vdCBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLCBidXQgaXQgZG9lcyBzdXBwb3J0IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIGludGVyZmFjZSBmaWxlcyBpbiBhIG1hbm5lciBzaW1pbGFyIHRvIHRoZSBDIHByZXByb2Nlc3Nvci4gVGhpcyBjYW4gYmUgZG9uZSBieSBwbGFjZWQgPHR0PiNpZmRlZjwvdHQ+LCA8dHQ+I2lmbmRlZjwvdHQ+LCA8dHQ+I2lmPC90dD4sIDx0dD4jZWxzZTwvdHQ+LCA8dHQ+I2VsaWY8L3R0PiwgYW5kIDx0dD4jZW5kaWY8L3R0PiBkaXJlY3RpdmVzIGluIHlvdXIgaW50ZXJmYWNlIGZpbGUuIFRoZXNlIGRpcmVjdGl2ZXMgY2FuIGJlIHNhZmVseSBuZXN0ZWQuIFRoaXMgYWxsb3dzIG9uZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgb3V0IHRyb3VibGVzb21lIEMvQysrIGNvZGUgaWYgbmVjZXNzYXJ5LiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBmaWxlIGNhbiBzZXJ2ZSBhcyBib3RoIGEgQyBoZWFkZXIgZmlsZSBhbmQgYSBTV0lHIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jaWZkZWYgU1dJRwotJW1vZHVsZSBteW1vZHVsZQotJXsKLSNpbmNsdWRlICJoZWFkZXIuaCIKLSV9Ci0KLSVpbmNsdWRlIHdpc2guaQotI2VuZGlmCi0KLS4uLiBub3JtYWwgQyBkZWNsYXJhdGlvbnMgaGVyZSAuLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TaW1pbGFybHksIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSBhbiBpbnRlcmZhY2UuIFRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgY2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBQZXJsNSBtb2R1bGUgdGhhdCB3b3JrcyB3aXRoIGVpdGhlciBzdGF0aWMgb3IgZHluYW1pYyBsaW5raW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVtb2R1bGUgbXltb2R1bGUKLSV7Ci0jaW5jbHVkZSAiaGVhZGVyLmgiCi0lfQotCi0uLi4gRGVjbGFyYXRpb25zIC4uLgotCi0jaWZkZWYgU1RBVElDCi0laW5jbHVkZSBwZXJsbWFpbi5pIAkJCQkvLyBJbmNsdWRlIGNvZGUgZm9yIHN0YXRpYyBsaW5raW5nCi0jZW5kaWYKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSG93ZXZlciwgaXQgaXMgbm90IHNhZmUgdG8gdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGluIHRoZSBtaWRkbGUgb2YgYSBkZWNsYXJhdGlvbi4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmRvdWJsZSBmb28oCi0jaWZkZWYgQU5TSV9BUkdTCi1kb3VibGUgYSwgZG91YmxlIGIKLSNlbmRpZgotKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBmYWlscyBiZWNhdXNlIHRoZSBTV0lHIHBhcnNlciBpcyBub3QgZXF1aXBwZWQgdG8gaGFuZGxlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGRpcmVjdGl2ZXMgaW4gYW4gYXJiaXRyYXJ5IGxvY2F0aW9uIChsaWtlIHRoZSBDIHByZXByb2Nlc3NvcikuIEZvciBmaWxlcyB0aGF0IG1ha2UgaGVhdnkgdXNlIG9mIHRoZSBDIHByZXByb2Nlc3NvciBsaWtlIHRoaXMsIGl0IG1heSBiZSBiZXR0ZXIgdG8gcnVuIHRoZSBoZWFkZXIgZmlsZSB0aHJvdWdoIHRoZSBDIHByZXByb2Nlc3NvciBhbmQgdXNlIHRoZSBvdXRwdXQgYXMgdGhlIGlucHV0IHRvIFNXSUcuPHA+Ci08YSBuYW1lPSJuNzMiPjwvYT48aDM+IERlZmluaW5nIHN5bWJvbHM8L2gzPgotVG8gZGVmaW5lIHN5bWJvbHMsIHlvdSBjYW4gdXNlIHRoZSA8dHQ+LUQ8L3R0PiBvcHRpb24gYXMgaW4gOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXN3aWcgLXBlcmw1IC1zdGF0aWMgLURTVEFUSUMgaW50ZXJmYWNlLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU3ltYm9scyBjYW4gYWxzbyBiZSBkZWZpbmVkIHVzaW5nIDx0dD4jZGVmaW5lPC90dD4gd2l0aCBubyBhcmd1bWVudHMuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIG15bW9kdWxlCi0jZGVmaW5lIFNUQVRJQyAKLQotLi4uIGV0YyAuLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotRm9yIHRoZSBwdXJwb3NlcyBvZiBjb25kaXRpb25hbCBjb21waWxhdGlvbiwgb25lIHNob3VsZCBub3QgYXNzaWduIHZhbHVlcyB0byBzeW1ib2xzLiBJZiB0aGlzIGlzIGRvbmUsIFNXSUcgaW50ZXJwcmV0cyB0aGUgI2RlZmluZSBhcyBwcm92aWRpbmcgdGhlIGRlZmluaXRpb24gb2YgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgY29uc3RhbnQuIDxwPgotPGEgbmFtZT0ibjc0Ij48L2E+PGgzPiBUaGUgI2lmIGRpcmVjdGl2ZTwvaDM+Ci1UaGUgPHR0PiNpZjwvdHQ+IGRpcmVjdGl2ZSBjYW4gb25seSBiZSB1c2VkIGluIHRoZSBmb2xsb3dpbmcgY29udGV4dCA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotI2lmIGRlZmluZWQoU1lNQk9MKQotLi4uCi0jZWxpZiAhZGVmaW5lZChPVEhFUlNZTUJPTCkKLS4uLgotI2VuZGlmCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBDIHByZXByb2Nlc3NvciB2ZXJzaW9uIHN1cHBvcnRzIGFueSBjb25zdGFudCBpbnRlZ3JhbCBleHByZXNzaW9uIGFzIGFuIGFyZ3VtZW50IHRvIDx0dD4jaWY8L3R0PiwgYnV0IFNXSUcgZG9lcyBub3QgeWV0IGNvbnRhaW4gYW4gZXhwcmVzc2lvbiBldmFsdWF0b3Igc28gdGhpcyBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC4gQXMgYSByZXN1bHQsIGRlY2xhcmF0aW9ucyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgZG9uJ3QgeWV0IHdvcmsgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiNpZiAoZGVmaW5lZChmb28pIHx8IGRlZmluZWQoYmFyKSkKLS4uLgotI2VuZGlmCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im43NSI+PC9hPjxoMz4gUHJlZGVmaW5lZCBTeW1ib2xzPC9oMz4KLU9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgc3ltYm9scyB3aWxsIGJlIGRlZmluZWQgYnkgU1dJRyB3aGVuIGl0IGlzIHByb2Nlc3NpbmcgYW4gaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlNXSUcJCQkJQWx3YXlzIGRlZmluZWQgd2hlbiBTV0lHIGlzIHByb2Nlc3NpbmcgYSBmaWxlCi1TV0lHVENMCQkJCURlZmluZWQgd2hlbiB1c2luZyBUY2wKLVNXSUdUQ0w4CQkJCURlZmluZWQgd2hlbiB1c2luZyBUY2w4LjAKLVNXSUdQRVJMCQkJCURlZmluZWQgd2hlbiB1c2luZyBQZXJsCi1TV0lHUEVSTDQJCQkJRGVmaW5lZCB3aGVuIHVzaW5nIFBlcmw0Ci1TV0lHUEVSTDUJCQkJRGVmaW5lZCB3aGVuIHVzaW5nIFBlcmw1Ci1TV0lHUFlUSE9OCQkJCURlZmluZWQgd2hlbiB1c2luZyBQeXRob24KLVNXSUdHVUlMRQkJCQlEZWZpbmVkIHdoZW4gdXNpbmcgR3VpbGUKLVNXSUdXSU4JCQkJRGVmaW5lZCB3aGVuIHJ1bm5pbmcgU1dJRyB1bmRlciBXaW5kb3dzCi1TV0lHTUFDCQkJCURlZmluZWQgd2hlbiBydW5uaW5nIFNXSUcgb24gdGhlIE1hY2ludG9zaAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbnRlcmZhY2UgZmlsZXMgY2FuIGxvb2sgYXQgdGhlc2Ugc3ltYm9scyBhcyBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSB3YXkgaW4gd2hpY2ggYW4gaW50ZXJmYWNlIGlzIGdlbmVyYXRlZCBvciB0byBtaXggU1dJRyBkaXJlY3RpdmVzIHdpdGggQyBjb2RlLiBUaGVzZSBzeW1ib2xzIGFyZSBhbHNvIGRlZmluZWQgd2l0aGluIHRoZSBDIGNvZGUgZ2VuZXJhdGVkIGJ5IFNXSUcgKGV4Y2VwdCBmb3IgdGhlIHN5bWJvbCBgPHR0PlNXSUc8L3R0Picgd2hpY2ggaXMgb25seSBkZWZpbmVkIHdpdGhpbiB0aGUgU1dJRyBjb21waWxlcikuPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMj4gQ29kZSBJbnNlcnRpb248L2gyPgotU29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBpbnNlcnQgc3BlY2lhbCBjb2RlIGludG8gdGhlIHJlc3VsdGluZyB3cmFwcGVyIGZpbGUgZ2VuZXJhdGVkIGJ5IFNXSUcuICAgRm9yIGV4YW1wbGUsIHlvdSBtYXkgd2FudCB0byBpbmNsdWRlIGFkZGl0aW9uYWwgQyBjb2RlIHRvIHBlcmZvcm0gaW5pdGlhbGl6YXRpb24gb3Igb3RoZXIgb3BlcmF0aW9ucy4gIFRoZXJlIGFyZSBmb3VyIHdheXMgdG8gaW5zZXJ0IGNvZGUsIGJ1dCBpdCdzIHVzZWZ1bCB0byBrbm93IGhvdyB0aGUgb3V0cHV0IG9mIFNXSUcgaXMgc3RydWN0dXJlZCBmaXJzdC48cD4KLTxhIG5hbWU9Im43NiI+PC9hPjxoMz4gVGhlIG91dHB1dCBvZiBTV0lHPC9oMz4KLVNXSUcgY3JlYXRlcyBhIHNpbmdsZSBDIHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgd3JhcHBlciBmdW5jdGlvbnMsIGluaXRpYWxpemF0aW9uIGNvZGUsIGFuZCBzdXBwb3J0IGNvZGUuIFRoZSBzdHJ1Y3R1cmUgb2YgdGhpcyBmaWxlIGlzIGFzIGZvbGxvd3MgOjxwPgotPGNlbnRlcj48aW1nIHNyYz0iY2gzLjEucG5nIj48L2NlbnRlcj4KLQotPHA+Ci08cD4KLVRoZSBoZWFkZXJzIHBvcnRpb24gdHlwaWNhbGx5IGNvbnRhaW5zIGhlYWRlciBmaWxlcywgc3VwcG9ydGluZyBjb2RlLCBoZWxwZXIgZnVuY3Rpb25zLCBhbmQgZm9yd2FyZCBkZWNsYXJhdGlvbnMuIElmIHlvdSBsb29rIGF0IGl0LCB5b3UnbGwgdXN1YWxseSBmaW5kIGEgaGlkZW91cyBtZXNzIHNpbmNlIHRoaXMgYWxzbyBjb250YWlucyB0aGUgU1dJRyBydW4tdGltZSBwb2ludGVyIHR5cGUtY2hlY2tlciBhbmQgaW50ZXJuYWwgZnVuY3Rpb25zIHVzZWQgYnkgdGhlIHdyYXBwZXIgZnVuY3Rpb25zLiBUaGUgIndyYXBwZXIiIHBvcnRpb24gb2YgdGhlIG91dHB1dCBjb250YWlucyBhbGwgb2YgdGhlIHdyYXBwZXIgZnVuY3Rpb25zLiBGaW5hbGx5LCB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gaXMgYSBzaW5nbGUgQyBmdW5jdGlvbiB0aGF0IGlzIGNyZWF0ZWQgdG8gaW5pdGlhbGl6ZSB5b3VyIG1vZHVsZSB3aGVuIGl0IGlzIGxvYWRlZC48cD4KLTxhIG5hbWU9Im43NyI+PC9hPjxoMz4gQ29kZSBibG9ja3M8L2gzPgotQSBjb2RlIGJsb2NrIGlzIGVuY2xvc2VkIGJ5IGEgPHR0PiV7LCAlfTwvdHQ+IGFuZCBpcyB1c2VkIHRvIGluc2VydCBjb2RlIGludG8gdGhlIGhlYWRlciBwb3J0aW9uIG9mIHRoZSByZXN1bHRpbmcgd3JhcHBlciBmaWxlLiBFdmVyeXRoaW5nIGluIHRoZSBibG9jayBpcyBjb3BpZWQgdmVyYmF0aW0gaW50byB0aGUgb3V0cHV0IGZpbGUgYW5kIHdpbGwgYXBwZWFyIGJlZm9yZSBhbnkgZ2VuZXJhdGVkIHdyYXBwZXIgZnVuY3Rpb25zLiAgIE1vc3QgU1dJRyBpbnB1dCBmaWxlcyBoYXZlIGF0IGxlYXN0IG9uZSBjb2RlIGJsb2NrIHRoYXQgaXMgbm9ybWFsbHkgdXNlZCB0byBpbmNsdWRlIGhlYWRlciBmaWxlcyBhbmQgc3VwcG9ydGluZyBDIGNvZGUuICAgICAgQWRkaXRpb25hbCBjb2RlIGJsb2NrcyBtYXkgYmUgcGxhY2VkIGFueXdoZXJlIGluIGEgU1dJRyBmaWxlIGFzIG5lZWRlZC4gPHA+Ci08YmxvY2txdW90ZT48cHJlPgotJW1vZHVsZSBteW1vZHVsZQotJXsKLSNpbmNsdWRlICJteV9oZWFkZXIuaCIKLSV9Ci0KLS4uLiBEZWNsYXJlIGZ1bmN0aW9ucyBoZXJlCi0lewotCi0uLi4gSW5jbHVkZSBUY2xfQXBwSW5pdCgpIGZ1bmN0aW9uIGhlcmUgLi4uCi0KLSV9Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUNvZGUgYmxvY2tzIGFyZSBhbHNvIHR5cGljYWxseSB1c2VkIHRvIHdyaXRlICJoZWxwZXIiIGZ1bmN0aW9ucy4gVGhlc2UgYXJlIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VkIHNwZWNpZmljYWxseSBmb3IgdGhlIHB1cnBvc2Ugb2YgYnVpbGRpbmcgYW4gaW50ZXJmYWNlIGFuZCBhcmUgZ2VuZXJhbGx5IG5vdCB2aXNpYmxlIHRvIHRoZSBub3JtYWwgQyBwcm9ncmFtLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXsKLQotLyogQ3JlYXRlIGEgbmV3IHZlY3RvciAqLwotc3RhdGljIFZlY3RvciAqbmV3X1ZlY3RvcigpIHsKLQlyZXR1cm4gKFZlY3RvciAqKSBtYWxsb2Moc2l6ZW9mKFZlY3RvcikpOwotfQotCi0lfQotCi0vLyBOb3cgd3JhcCBpdCAKLVZlY3RvciAqbmV3X1ZlY3RvcigpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNzgiPjwvYT48aDM+IElubGluZWQgY29kZSBibG9ja3M8L2gzPgotQmVjYXVzZSB0aGUgcHJvY2VzcyBvZiB3cml0aW5nIGhlbHBlciBmdW5jdGlvbnMgaXMgZmFpcmx5IGNvbW1vbiwgdGhlcmUgaXMgYSBzcGVjaWFsIGlubGluZWQgZm9ybSBvZiBjb2RlIGJsb2NrIHRoYXQgaXMgdXNlZCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4laW5saW5lICV7Ci0vKiBDcmVhdGUgYSBuZXcgdmVjdG9yICovCi1WZWN0b3IgKm5ld19WZWN0b3IoKSB7Ci0JcmV0dXJuIChWZWN0b3IgKikgbWFsbG9jKHNpemVvZihWZWN0b3IpKTsKLX0KLSV9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+JWlubGluZTwvdHQ+IGRpcmVjdGl2ZSBpbnNlcnRzIGFsbCBvZiB0aGUgY29kZSB0aGF0IGZvbGxvd3MgdmVyYmF0aW0gaW50byB0aGUgaGVhZGVyIHBvcnRpb24gb2YgYW4gaW50ZXJmYWNlIGZpbGUuIFRoZSBjb2RlIGlzIHRoZW4gZmVkIGludG8gdGhlIFNXSUcgcGFyc2VyIGFuZCB0dXJuZWQgaW50byBhbiBpbnRlcmZhY2UuIFRodXMsIHRoZSBhYm92ZSBleGFtcGxlIGNyZWF0ZXMgYSBuZXcgY29tbWFuZCA8dHQ+bmV3X1ZlY3RvcjwvdHQ+IHVzaW5nIG9ubHkgb25lIGRlY2xhcmF0aW9uLiBTaW5jZSB0aGUgY29kZSBpbnNpZGUgYW4gPHR0PiVpbmxpbmUgJXsgLi4uICV9PC90dD4gYmxvY2sgaXMgZ2l2ZW4gdG8gYm90aCB0aGUgQyBjb21waWxlciBhbmQgU1dJRywgaXQgaXMgaWxsZWdhbCB0byBpbmNsdWRlIGFueSBTV0lHIGRpcmVjdGl2ZXMgaW5zaWRlIHRoZSA8dHQ+JXsgLi4uICV9PC90dD4gYmxvY2suPHA+Ci08YSBuYW1lPSJuNzkiPjwvYT48aDM+IEluaXRpYWxpemF0aW9uIGJsb2NrczwvaDM+Ci1Db2RlIG1heSBhbHNvIGJlIGluc2VydGVkIHVzaW5nIGFuIGluaXRpYWxpemF0aW9uIGJsb2NrLCBhcyBzaG93biBiZWxvdyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWluaXQgJXsKLQotCWluaXRfdmFyaWFibGVzKCk7Ci0lfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGlzIGNvZGUgaXMgaW5zZXJ0ZWQgZGlyZWN0bHkgaW50byBTV0lHJ3MgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uICAgIFlvdSBjYW4gdXNlIGl0IHRvIHBlcmZvcm0gYWRkaXRpb25hbCBpbml0aWFsaXphdGlvbiBhbmQgb3BlcmF0aW9ucy4gICBTaW5jZSB0aGlzIGNvZGUgaXMgaW5zZXJ0ZWQgZGlyZWN0bHkgaW50byBhbm90aGVyIGZ1bmN0aW9uLCBpdCBzaG91bGQgbm90IGRlY2xhcmUgZnVuY3Rpb25zIG9yIGluY2x1ZGUgaGVhZGVyIGZpbGVzLiAgIFByaW1hcmlseSB0aGlzIGNhbiBiZSB1c2VkIHRvIGFkZCBjYWxsb3V0cyB0byB3aWRnZXRzIGFuZCBvdGhlciBwYWNrYWdlcyB0aGF0IG1pZ2h0IGFsc28gbmVlZCB0byBiZSBpbml0aWFsaXplZCB3aGVuIHlvdXIgZXh0ZW5zaW9uIGlzIGxvYWRlZC48cD4KLTxhIG5hbWU9Im44MCI+PC9hPjxoMz4gV3JhcHBlciBjb2RlIGJsb2NrczwvaDM+Ci1Db2RlIG1heSBiZSBpbnNlcnRlZCBpbiB0aGUgd3JhcHBlciBjb2RlIHNlY3Rpb24gb2YgYW4gb3V0cHV0IGZpbGUgdXNpbmcgdGhlIDx0dD4ld3JhcHBlcjwvdHQ+IGRpcmVjdGl2ZSBhcyBzaG93biA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXdyYXBwZXIgJXsKLQkuLi4gYSBidW5jaCBvZiBjb2RlIC4uLgotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBkaXJlY3RpdmUsIGZvciBhbG1vc3QgYWxsIHByYWN0aWNhbCBwdXJwb3NlcywgaXMgaWRlbnRpY2FsIHRvIGp1c3QgdXNpbmcgYSA8dHQ+JXssJX08L3R0PiBibG9jaywgYnV0IG1heSBiZSByZXF1aXJlZCBmb3IgbW9yZSBzb3BoaXN0aWNhdGVkIGFwcGxpY2F0aW9ucy4gSXQgaXMgbWFpbmx5IG9ubHkgdXNlZCBmb3IgYWR2YW5jZWQgZmVhdHVyZXMgaW4gdGhlIFNXSUcgbGlicmFyeS4gQXMgYSBnZW5lcmFsIHJ1bGUsIHlvdSBzaG91bGQgYXZvaWQgdXNpbmcgdGhpcyBkaXJlY3RpdmUgdW5sZXNzIHlvdSBhYnNvbHV0ZWx5IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxwPgotPGEgbmFtZT0ibjEwIj48L2E+PGgyPiBBIGdlbmVyYWwgaW50ZXJmYWNlIGJ1aWxkaW5nIHN0cmF0ZWd5PC9oMj4KLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGdlbmVyYWwgYXBwcm9hY2ggZm9yIGJ1aWxkaW5nIGludGVyZmFjZSB3aXRoIFNXSUcuIFRoZSBzcGVjaWZpY3MgcmVsYXRlZCB0byBhIHBhcnRpY3VsYXIgc2NyaXB0aW5nIGxhbmd1YWdlIGFyZSBmb3VuZCBpbiBsYXRlciBjaGFwdGVycy48cD4KLTxhIG5hbWU9Im44MSI+PC9hPjxoMz4gUHJlcGFyaW5nIGEgQyBwcm9ncmFtIGZvciBTV0lHPC9oMz4KLVNXSUcgZG9lc24ndCByZXF1aXJlIG1vZGlmaWNhdGlvbnMgdG8geW91ciBDIGNvZGUsIGJ1dCBpZiB5b3UgZmVlZCBpdCBhIGNvbGxlY3Rpb24gb2YgcmF3IEMgaGVhZGVyIGZpbGVzIG9yIHNvdXJjZSBjb2RlLCB0aGUgcmVzdWx0cyBtaWdodCBub3QgYmUgd2hhdCB5b3UgZXhwZWN0LS0taW4gZmFjdCwgdGhleSBtaWdodCBiZSBhd2Z1bC4gSGVyZSdzIGEgc2VyaWVzIG9mIHN0ZXBzIHlvdSBjYW4gZm9sbG93IHRvIG1ha2UgYW4gaW50ZXJmYWNlIGZvciBhIEMgcHJvZ3JhbSA6PHA+Ci08cD4KLTx1bD4KLTxsaT5JZGVudGlmeSB0aGUgZnVuY3Rpb25zIHRoYXQgeW91IHdhbnQgdG8gd3JhcC4gSXQncyBwcm9iYWJseSBub3QgbmVjZXNzYXJ5IHRvIGFjY2VzcyBldmVyeSBzaW5nbGUgZnVuY3Rpb24gaW4gYSBDIHByb2dyYW0tLXRodXMsIGEgbGl0dGxlIGZvcmV0aG91Z2h0IGNhbiBkcmFtYXRpY2FsbHkgc2ltcGxpZnkgdGhlIHJlc3VsdGluZyBzY3JpcHRpbmcgbGFuZ3VhZ2UgaW50ZXJmYWNlLiBDIGhlYWRlciBmaWxlcyBhcmUgcGFydGljdWxhcmx5IGdvb2Qgc291cmNlIGZvciBmaW5kaW5nIHRoaW5ncyB0byB3cmFwLgotPGxpPkNyZWF0ZSBhIG5ldyBpbnRlcmZhY2UgZmlsZSB0byBkZXNjcmliZSB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZSB0byB5b3VyIHByb2dyYW0uCi08bGk+Q29weSB0aGUgYXBwcm9wcmlhdGUgZGVjbGFyYXRpb25zIGludG8gdGhlIGludGVyZmFjZSBmaWxlIG9yIHVzZSBTV0lHJ3MgPHR0PiVpbmNsdWRlPC90dD4gZGlyZWN0aXZlIHRvIHByb2Nlc3MgYW4gZW50aXJlIEMgc291cmNlL2hlYWRlciBmaWxlLiBFaXRoZXIgd2F5LCB0aGlzIHN0ZXAgaXMgZmFpcmx5IGVhc3kuCi08bGk+TWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaW4gdGhlIGludGVyZmFjZSBmaWxlIHVzZXMgQU5TSSBDL0MrK3N5bnRheC4KLTxsaT5DaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBmdW5jdGlvbnMgaW52b2x2aW5nIGZ1bmN0aW9uIHBvaW50ZXJzLCBvciB2YXJpYWJsZSBsZW5ndGggYXJndW1lbnRzIHNpbmNlIFNXSUcgZG9lc24ndCBsaWtlIHRoZXNlIHZlcnkgbXVjaC4KLTxsaT5FbGltaW5hdGUgdW5uZWNlc3NhcnkgQyBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcy4gU1dJRyB3aWxsIHByb2JhYmx5IHJlbW92ZSBtb3N0IG9mIHRoZW0sIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LiBSZW1lbWJlciwgU1dJRyBkb2VzIG5vdCBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLgotPGxpPk1ha2Ugc3VyZSBhbGwgbmVjZXNzYXJ5IGA8dHQ+dHlwZWRlZjwvdHQ+JyBkZWNsYXJhdGlvbnMgYW5kIHR5cGUtaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIGluIHRoZSBpbnRlcmZhY2UgZmlsZS4KLTxsaT5JZiB5b3VyIHByb2dyYW0gaGFzIGEgbWFpbigpIGZ1bmN0aW9uLCB5b3UgbWF5IG5lZWQgdG8gcmVuYW1lIGl0IChyZWFkIG9uKS4KLTxsaT5SdW4gU1dJRyBhbmQgY29tcGlsZS4KLTwvdWw+Ci08cD4KLVdoaWxlIHRoaXMgbWF5IHNvdW5kIGNvbXBsaWNhdGVkLCB0aGUgcHJvY2VzcyB0dXJucyBvdXQgdG8gYmUgcmVsYXRpdmVseSBlYXN5IGluIHByYWN0aWNlLS1mb3IgZXhhbXBsZSwgbWFraW5nIGFuIGludGVyZmFjZSB0byB0aGUgZW50aXJlIE9wZW5HTCBsaWJyYXJ5IG9ubHkgdGFrZXMgYWJvdXQgNS0xMCBtaW51dGVzLjxwPgotPHA+Ci1JbiB0aGUgcHJvY2VzcyBvZiBidWlsZGluZyBhbiBpbnRlcmZhY2UsIHlvdSBhcmUgZW5jb3VyYWdlZCB0byB1c2UgU1dJRyB0byBmaW5kIHByb2JsZW1hdGljIGRlY2xhcmF0aW9ucyBhbmQgc3BlY2lmaWNhdGlvbnMuIFNXSUcgd2lsbCByZXBvcnQgc3ludGF4IGVycm9ycyBhbmQgb3RoZXIgcHJvYmxlbXMgYWxvbmcgd2l0aCB0aGUgYXNzb2NpYXRlZCBmaWxlIGFuZCBsaW5lIG51bWJlci4gPHA+Ci08YSBuYW1lPSJuODIiPjwvYT48aDM+IFRoZSBTV0lHIGludGVyZmFjZSBmaWxlPC9oMz4KLVRoZSBwcmVmZXJyZWQgbWV0aG9kIG9mIHVzaW5nIFNXSUcgaXMgdG8gZ2VuZXJhdGUgc2VwYXJhdGUgaW50ZXJmYWNlIGZpbGUuIFN1cHBvc2UgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBDIGhlYWRlciBmaWxlIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBGaWxlIDogaGVhZGVyLmggKi8KLQotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0jaW5jbHVkZSAmbHQ7bWF0aC5oJmd0OwotCi1leHRlcm4gaW50IGZvbyhkb3VibGUpOwotZXh0ZXJuIGRvdWJsZSBiYXIoaW50LCBpbnQpOwotZXh0ZXJuIHZvaWQgZHVtcChGSUxFICpmKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQSB0eXBpY2FsIFNXSUcgaW50ZXJmYWNlIGZpbGUgZm9yIHRoaXMgaGVhZGVyIGZpbGUgd291bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLS8qIEZpbGUgOiBpbnRlcmZhY2UuaSAqLwotJW1vZHVsZSBteW1vZHVsZQotJXsKLSNpbmNsdWRlICJoZWFkZXIuaCIKLSV9Ci1leHRlcm4gaW50IGZvbyhkb3VibGUpOwotZXh0ZXJuIGRvdWJsZSBiYXIoaW50LCBpbnQpOwotZXh0ZXJuIHZvaWQgZHVtcChGSUxFICpmKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotT2YgY291cnNlLCBpbiB0aGlzIGNhc2UsIG91ciBoZWFkZXIgZmlsZSBpcyBwcmV0dHkgc2ltcGxlIHNvIHdlIGNvdWxkIGhhdmUgbWFkZSBhbiBpbnRlcmZhY2UgZmlsZSBsaWtlIHRoaXMgYXMgd2VsbDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogaW50ZXJmYWNlLmkgKi8KLSVtb2R1bGUgbXltb2R1bGUKLSVpbmNsdWRlIGhlYWRlci5oCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5hdHVyYWxseSwgeW91ciBtaWxlYWdlIG1heSB2YXJ5LjxwPgotPGEgbmFtZT0ibjgzIj48L2E+PGgzPiBXaHkgdXNlIHNlcGFyYXRlIGludGVyZmFjZSBmaWxlcz88L2gzPgotV2hpbGUgU1dJRyBjYW4gcGFyc2UgbWFueSBoZWFkZXIgZmlsZXMsIGl0IGlzIG1vcmUgY29tbW9uIHRvIHdyaXRlIGEgc3BlY2lhbCA8dHQ+Lmk8L3R0PiBmaWxlIGRlZmluaW5nIHRoZSBpbnRlcmZhY2UgdG8gYSBwYWNrYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCByZWFzb25zIGZvciBkb2luZyB0aGlzIDo8cD4KLTxwPgotPHVsPgotPGxpPkl0IGlzIHJhcmVseSBuZWNlc3NhcnkgdG8gYWNjZXNzIGV2ZXJ5IHNpbmdsZSBmdW5jdGlvbiBpbiBhIGxhcmdlIHBhY2thZ2UuIE1hbnkgQyBmdW5jdGlvbnMgbWlnaHQgaGF2ZSBsaXR0bGUgb3Igbm8gdXNlIGluIGEgc2NyaXB0ZWQgZW52aXJvbm1lbnQuIFRoZXJmb3JlLCB3aHkgd3JhcCB0aGVtPwotPGxpPlNlcGFyYXRlIGludGVyZmFjZSBmaWxlcyBwcm92aWRlIGFuIG9wcG9ydHVuaXR5IHRvIHByb3ZpZGUgbW9yZSBwcmVjaXNlIHJ1bGVzIGFib3V0IGhvdyBhbiBpbnRlcmZhY2UgaXMgdG8gYmUgY29uc3RydWN0ZWQuCi08bGk+SW50ZXJmYWNlIGZpbGVzIGNhbiBwcm92aWRlIHN0cnVjdHVyZSBhbmQgb3JnYW5pemF0aW9uLiBGb3IgZXhhbXBsZSAsIHlvdSBjYW4gYnJlYWsgdGhlIGludGVyZmFjZSB1cCBpbnRvIHNlY3Rpb25zLCBwcm92aWRlIGRvY3VtZW50YXRpb24sIGFuZCBkbyBvdGhlciB0aGluZ3MgdGhhdCB5b3UgbWlnaHQgbm90IG5vcm1hbGx5IGRvIHdpdGggYW4gb3JkaW5hcnkgLmggZmlsZS4KLTxsaT5TV0lHIGNhbid0IHBhcnNlIGNlcnRhaW4gZGVmaW5pdGlvbnMgdGhhdCBhcHBlYXIgaW4gaGVhZGVyIGZpbGVzLiBIYXZpbmcgYSBzZXBhcmF0ZSBmaWxlIGFsbG93cyB5b3UgdG8gZWxpbWluYXRlIG9yIHdvcmsgYXJvdW5kIHRoZXNlIHByb2JsZW1zLgotPGxpPkludGVyZmFjZSBmaWxlcyBwcm92aWRlIGEgcHJlY2lzZSBkZWZpbml0aW9uIG9mIHdoYXQgdGhlIGludGVyZmFjZSBpcy4gVXNlcnMgd2FudGluZyB0byBleHRlbmQgdGhlIHN5c3RlbSBjYW4gZ28gdG8gdGhlIGludGVyZmFjZSBmaWxlIGFuZCBpbW1lZGlhdGVseSBzZWUgd2hhdCBpcyBhdmFpbGFibGUgd2l0aG91dCBoYXZpbmcgdG8gZGlnIGl0IG91dCBvZiBoZWFkZXIgZmlsZXMuCi08L3VsPgotPGEgbmFtZT0ibjg0Ij48L2E+PGgzPiBHZXR0aW5nIHRoZSByaWdodCBoZWFkZXIgZmlsZXM8L2gzPgotU29tZXRpbWVzLCBpdCBpcyBuZWNlc3NhcnkgdG8gdXNlIGNlcnRhaW4gaGVhZGVyIGZpbGVzIGluIG9yZGVyIGZvciB0aGUgY29kZSBnZW5lcmF0ZWQgYnkgU1dJRyB0byBjb21waWxlIHByb3Blcmx5LiBZb3UgY2FuIGhhdmUgU1dJRyBpbmNsdWRlIGNlcnRhaW4gaGVhZGVyIGZpbGVzIGJ5IHVzaW5nIGEgPHR0PiV7LCV9PC90dD4gYmxvY2sgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJW1vZHVsZSBncmFwaGljcwotJXsKLSNpbmNsdWRlICZsdDtHTC9nbC5oJmd0OwotI2luY2x1ZGUgJmx0O0dML2dsdS5oJmd0OwotJX0KLQotLy8gUHV0IHJlc3Qgb2YgZGVjbGFyYXRpb25zIGhlcmUKLS4uLgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjg1Ij48L2E+PGgzPiBXaGF0IHRvIGRvIHdpdGggbWFpbigpPC9oMz4KLUlmIHlvdXIgcHJvZ3JhbSBkZWZpbmVzIGEgPHR0Pm1haW4oKTwvdHQ+IGZ1bmN0aW9uLCB5b3UgbWF5IG5lZWQgdG8gZ2V0IHJpZCBvZiBpdCBvciByZW5hbWUgaXQgaW4gb3JkZXIgdG8gdXNlIGEgc2NyaXB0aW5nIGxhbmd1YWdlLiBNb3N0IHNjcmlwdGluZyBsYW5ndWFnZXMgZGVmaW5lIHRoZWlyIG93biA8dHQ+bWFpbigpPC90dD4gcHJvY2VkdXJlIHRoYXQgbXVzdCBiZSBjYWxsZWQgaW5zdGVhZC4gPHR0Pm1haW4oKTwvdHQ+IGFsc28gbWFrZXMgbm8gc2Vuc2Ugd2hlbiB3b3JraW5nIHdpdGggZHluYW1pYyBsb2FkaW5nLiBUaGVyZSBhcmUgYSBmZXcgYXBwcm9hY2hlcyB0byBzb2x2aW5nIHRoZSA8dHQ+bWFpbigpPC90dD4gY29uZmxpY3QgOjxwPgotPHA+Ci08dWw+Ci08bGk+R2V0IHJpZCBvZiA8dHQ+bWFpbigpPC90dD4gZW50aXJlbHkuIFRoaXMgaXMgdGhlIGJydXRlIGZvcmNlIGFwcHJvYWNoLgotPGxpPlJlbmFtZSA8dHQ+bWFpbigpPC90dD4gdG8gc29tZXRoaW5nIGVsc2UuIFlvdSBjYW4gZG8gdGhpcyBieSBjb21waWxpbmcgeW91ciBDIHByb2dyYW0gd2l0aCBhbiBvcHRpb24gbGlrZSA8dHQ+LURtYWluPW9sZG1haW48L3R0Pi4KLTxsaT5Vc2UgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gb25seSBpbmNsdWRlIDx0dD5tYWluKCk8L3R0PiB3aGVuIG5vdCB1c2luZyBhIHNjcmlwdGluZyBsYW5ndWFnZS4KLTwvdWw+Ci08cD4KLUdldHRpbmcgcmlkIG9mIDx0dD5tYWluKCk8L3R0PiBtYXkgY2F1c2UgcG90ZW50aWFsIGluaXRpYWxpemF0aW9uIHByb2JsZW1zIG9mIGEgcHJvZ3JhbS4gVG8gaGFuZGxlIHRoaXMgcHJvYmxlbSwgeW91IG1heSBjb25zaWRlciB3cml0aW5nIGEgc3BlY2lhbCBmdW5jdGlvbiBjYWxsZWQgPHR0PnByb2dyYW1faW5pdCgpPC90dD4gdGhhdCBpbml0aWFsaXplcyB5b3VyIHByb2dyYW0gdXBvbiBzdGFydHVwLiBUaGlzIGZ1bmN0aW9uIGNvdWxkIHRoZW4gYmUgY2FsbGVkIGVpdGhlciBmcm9tIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgYXMgdGhlIGZpcnN0IG9wZXJhdGlvbiwgb3Igd2hlbiB0aGUgU1dJRyBnZW5lcmF0ZWQgbW9kdWxlIGlzIGxvYWRlZC48cD4KLTxwPgotQXMgYSBnZW5lcmFsIG5vdGUsIG1hbnkgQyBwcm9ncmFtcyBvbmx5IHVzZSB0aGUgPHR0Pm1haW4oKTwvdHQ+IGZ1bmN0aW9uIHRvIHBhcnNlIGNvbW1hbmQgbGluZSBvcHRpb25zIGFuZCB0byBzZXQgcGFyYW1ldGVycy4gSG93ZXZlciwgYnkgdXNpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UsIHlvdSBhcmUgcHJvYmFibHkgdHJ5aW5nIHRvIGNyZWF0ZSBhIHByb2dyYW0gdGhhdCBpcyBtb3JlIGludGVyYWN0aXZlLiBJbiBtYW55IGNhc2VzLCB0aGUgb2xkIDx0dD5tYWluKCk8L3R0PiBwcm9ncmFtIGNhbiBiZSBjb21wbGV0ZWx5IHJlcGxhY2VkIGJ5IGEgUGVybCwgUHl0aG9uLCBvciBUY2wgc2NyaXB0LjxwPgotPGEgbmFtZT0ibjg2Ij48L2E+PGgzPiBXb3JraW5nIHdpdGggdGhlIEMgcHJlcHJvY2Vzc29yPC9oMz4KLUlmIHlvdSBoYXZlIGEgaGVhZGVyIGZpbGUgdGhhdCBtYWtlcyBoZWF2eSB1c2Ugb2YgbWFjcm9zIGFuZCBDIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzLCBpdCBtYXkgYmUgdXNlZnVsIHRvIHJ1biBpdCB0aHJvdWdoIHRoZSBDIHByZXByb2Nlc3NvciBmaXJzdC4gVGhpcyBjYW4gdXN1YWxseSBiZSBkb25lIGJ5IHJ1bm5pbmcgdGhlIEMgY29tcGlsZXIgd2l0aCB0aGUgLUUgb3B0aW9uLiBUaGUgb3V0cHV0IHdpbGwgYmUgY29tcGxldGVseSBoaWRlb3VzLCBidXQgbWFjcm9zIGFuZCBvdGhlciBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyBzaG91bGQgbm93IGJlIGV4cGFuZGVkIGFzIG5lZWRlZC4gSWYgeW91IHdhbnQgdG8gd3JhcCBhIEMgcHJlcHJvY2Vzc29yIG1hY3JvIHdpdGggU1dJRywgdGhpcyBjYW4gYmUgZG9uZSBieSBnaXZpbmcgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIHVzYWdlIGFzIHRoZSBtYWNyby4gV2hlbiB3cml0aW5nIHRoZSBtYWNybyBhcyBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uLCB5b3UgYXJlIHByb3ZpZGluZyBTV0lHIHdpdGggdHlwZS1pbmZvcm1hdGlvbi0td2l0aG91dCB0aGF0LCBTV0lHIHdvdWxkIGJlIHVuYWJsZSB0byBwcm9kdWNlIGFueSBzb3J0IG9mIHdyYXBwZXIgY29kZS4gPHA+Ci08YSBuYW1lPSJuODciPjwvYT48aDM+IEhvdyB0byBjb3BlIHdpdGggQysrPC9oMz4KLUdpdmVuIHRoZSBjb21wbGV4aXR5IG9mIEMrKywgaXQgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIG5lY2Vzc2FyeSB0byBidWlsZCBhIHNwZWNpYWwgaW50ZXJmYWNlIGZpbGUgY29udGFpbmluZyBzdWl0YWJseSBlZGl0ZWQgQysrIGRlY2xhcmF0aW9ucy4gSWYgeW91IGFyZSB3b3JraW5nIHdpdGggYSBzeXN0ZW0gaW52b2x2aW5nIDQwMCBoZWFkZXIgZmlsZXMsIHRoaXMgcHJvY2VzcyB3aWxsIG5vdCBiZSB0cml2aWFsLiBQZXJoYXBzIHRoZSBiZXN0IHdvcmQgb2YgYWR2aWNlIGlzIHRvIHRoaW5rIGhhcmQgYWJvdXQgd2hhdCB5b3Ugd2FudCB0aGlzIGludGVyZmFjZSB0byBiZS4gQWxzbywgaXMgaXQgYWJzb2x1dGVseSBjcml0aWNhbCB0byB3cmFwIGV2ZXJ5IHNpbmdsZSBmdW5jdGlvbiBpbiBhIEMrKyBwcm9ncmFtPyBTV0lHJ3Mgc3VwcG9ydCBvZiBDKysgd2lsbCBpbXByb3ZlIHdpdGggdGltZSwgYnV0IEknbGwgYmUgdGhlIGZpcnN0IHRvIGFkbWl0IHRoYXQgU1dJRyB3b3JrcyBtdWNoIGJldHRlciB3aXRoIHB1cmUgQU5TSSBDIGNvZGUgd2hlbiBpdCBjb21lcyB0byBsYXJnZSBwYWNrYWdlcy48cD4KLTxhIG5hbWU9Im44OCI+PC9hPjxoMz4gSG93IHRvIGF2b2lkIGNyZWF0aW5nIHRoZSBpbnRlcmZhY2UgZnJvbSBoZWxsPC9oMz4KLVNXSUcgbWFrZXMgaXQgcHJldHR5IGVhc3kgdG8gYnVpbGQgYSBiaWcgaW50ZXJmYWNlIHJlYWxseSBmYXN0LiBJbiBmYWN0LCBpZiB5b3UgYXBwbHkgaXQgdG8gYSBsYXJnZSBlbm91Z2ggcGFja2FnZSwgeW91J2xsIGZpbmQgeW91cnNlbGYgd2l0aCBhIHJhdGhlciBsYXJnZSBjaHVuayBvZiBjb2RlIGJlaW5nIHByb2R1Y2VkIGluIHRoZSByZXN1bHRpbmcgd3JhcHBlciBmaWxlLiBUbyBnaXZlIHlvdSBhbiBpZGVhLCB3cmFwcGluZyBhIDEwMDAgbGluZSBDIGhlYWRlciBmaWxlIHdpdGggYSBsYXJnZSBudW1iZXIgb2Ygc3RydWN0dXJlIGRlY2xhcmF0aW9ucyBtYXkgcmVzdWx0IGluIGEgd3JhcHBlciBmaWxlIGNvbnRhaW5pbmcgMjAsMDAwLTMwLDAwMCBsaW5lcyBvZiBjb2RlLiBJIGNhbiBvbmx5IGltYWdpbmUgd2hhdCB3cmFwcGluZyBhIGh1Z2UgQysrIGNsYXNzIGhpZXJhcmNoeSB3b3VsZCBnZW5lcmF0ZS4gSGVyZSdzIGEgZmV3IHJ1bGVzIG9mIHRodW1iIGZvciBtYWtpbmcgc21hbGxlciBpbnRlcmZhY2VzIDo8cD4KLTxwPgotPHVsPgotPGxpPkFzayB5b3Vyc2VsZiBpZiB5b3UgcmVhbGx5IG5lZWQgdG8gYWNjZXNzIHBhcnRpY3VsYXIgZnVuY3Rpb25zLiBJdCBpcyB1c3VhbGx5IG5vdCBuZWNlc3NhcnkgdG8gd3JhcCBldmVyeSBzaW5nbGUgZnVuY3Rpb24gaW4gYSBwYWNrYWdlLiBJbiBmYWN0LCB5b3UgcHJvYmFibHkgb25seSBuZWVkIGEgcmVsYXRpdmVseSBzbWFsbCBzdWJzZXQuCi08bGk+U1dJRyBkb2VzIG5vdCByZXF1aXJlIHN0cnVjdHVyZSBkZWZpbml0aW9ucyB0byBvcGVyYXRlLiBJZiB5b3UgYXJlIG5ldmVyIGdvaW5nIHRvIGFjY2VzcyB0aGUgbWVtYmVycyBvZiBhIHN0cnVjdHVyZSwgZG9uJ3Qgd3JhcCB0aGUgc3RydWN0dXJlIGRlZmluaXRpb24uIAotPGxpPkVsaW1pbmF0ZSB1bm5lZWRlZCBtZW1iZXJzIG9mIEMrKyBjbGFzc2VzLgotPGxpPlRoaW5rIGFib3V0IHRoZSBwcm9ibGVtIGF0IGhhbmQuIElmIHlvdSBhcmUgb25seSB1c2luZyBhIHN1YnNldCBvZiBzb21lIGxpYnJhcnksIHRoZXJlIGlzIG5vIG5lZWQgdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuCi08bGk+V3JpdGUgc3VwcG9ydCBvciBoZWxwZXIgZnVuY3Rpb25zIHRvIHNpbXBsaWZ5IGNvbW1vbiBvcGVyYXRpb25zLiBTb21lIEMgZnVuY3Rpb25zIG1heSBub3QgYmUgZWFzeSB0byB1c2UgaW4gYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgZW52aXJvbm1lbnQuIFlvdSBtaWdodCBjb25zaWRlciB3cml0aW5nIGFuIGFsdGVybmF0aXZlIHZlcnNpb24gYW5kIHdyYXBwaW5nIHRoYXQgaW5zdGVhZC4KLTwvdWw+Ci08cD4KLVdyaXRpbmcgYSBuaWNlIGludGVyZmFjZSB0byBhIHBhY2thZ2UgcmVxdWlyZXMgd29yay4gSnVzdCBiZWNhdXNlIHlvdSB1c2UgU1dJRyBpdCBkb2Vzbid0IG1lYW4gdGhhdCB5b3UncmUgZ29pbmcgdG8gZW5kIHVwIHdpdGggYSBnb29kIGludGVyZmFjZS4gU1dJRyBpcyBwcmltYXJpbHkgZGVzaWduZWQgdG8gZWxpbWluYXRlIHRoZSB0ZWRpb3VzIHRhc2sgb2Ygd3JpdGluZyB3cmFwcGVyIGZ1bmN0aW9ucy4gSXQgZG9lcyBub3QgZWxpbWluYXRlIHRoZSBuZWVkIGZvciBwcm9wZXIgcGxhbm5pbmcgYW5kIGRlc2lnbiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgdXNlZnVsIGFwcGxpY2F0aW9uLiBJbiBzaG9ydCwgYSBsaXR0bGUgZm9yZXRob3VnaHQgY2FuIGdvIGEgbG9uZyB3YXkuPHA+Ci08cD4KLU9mIGNvdXJzZSxpZiB5b3UncmUgcHJpbWFyaWx5IGludGVyZXN0ZWQgaW4ganVzdCBzbGFwcGluZyBzb21ldGhpbmcgdG9nZXRoZXIgZm9yIHRoZSBwdXJwb3NlIG9mIGRlYnVnZ2luZywgcmFwaWQgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQsIGFuZCBwcm90b3R5cGluZywgU1dJRyB3aWxsIGdsYWRseSBkbyBpdCBmb3IgeW91IChpbiBmYWN0LCBJIHVzZSBTV0lHIGFsb3QgZm9yIHRoaXMgd2hlbiBkZXZlbG9waW5nIG90aGVyIEMvQysrIGFwcGxpY2F0aW9ucykuPHA+Ci08cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ2OjUzIDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1NjcmlwdGluZy5odG1sIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9TY3JpcHRpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGI3ODgxMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1NjcmlwdGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjU1ICswLDAgQEAKLTwhLS0gUHVibGlzaGVkIGJ5IFF1YWRyYWxheSBXZWJXb3JrcyBIVE1MIExpdGUgMS41LjEgLS0+Ci08IS0tIEFuZCBtdW5nZWQgYnkgRGF2ZSdzIHNwZWNpYWwgUHl0aG9uIHNjcmlwdCAtLT4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2NyaXB0aW5nIExhbmd1YWdlczwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+MiBTY3JpcHRpbmcgTGFuZ3VhZ2VzPC9oMT48cD48dWw+Ci08bGk+IDxhIGhyZWY9IiNuMSI+VGhlIHR3byBsYW5ndWFnZSB2aWV3IG9mIHRoZSB3b3JsZDwvYT4KLTxsaT4gPGEgaHJlZj0iI24yIj5Ib3cgZG9lcyBhIHNjcmlwdGluZyBsYW5ndWFnZSB0YWxrIHRvIEM/PC9hPgotPGxpPiA8YSBocmVmPSIjbjMiPkJ1aWxkaW5nIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb25zPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPlNoYXJlZCBsaWJyYXJpZXMgYW5kIGR5bmFtaWMgbG9hZGluZzwvYT4KLTwvdWw+Ci0KLVNXSUcgaXMgYWxsIGFib3V0IHVzaW5nIHNjcmlwdGluZyBsYW5ndWFnZXMgd2l0aCBDL0MrKyB0byBtYWtlIGZsZXhpYmxlIGFwcGxpY2F0aW9ucy4gVGhpcyBjaGFwdGVyIHByb3ZpZGVzIGEgYnJpZWYgb3ZlcnZpZXcgb2Ygc2V2ZXJhbCBjb25jZXB0cyBhbmQgaW1wb3J0YW50IGFzcGVjdHMgb2YgdGhpcyBpbnRlcmZhY2UuIE1hbnkgb2YgU1dJRydzIHBvdGVudGlhbCB1c2VycyBtYXkgbm90IGhhdmUgY29uc2lkZXJlZCB1c2luZyBhIHNjcmlwdGluZyBsYW5ndWFnZSBiZWZvcmUsIHNvIEkgaG9wZSB0aGF0IHRoaXMgY2hhcHRlciBjYW4gcHJvdmlkZSBhIGxpdHRsZSBtb3RpdmF0aW9uLjxwPgotPGEgbmFtZT0ibjEiPjwvYT48aDI+IFRoZSB0d28gbGFuZ3VhZ2UgdmlldyBvZiB0aGUgd29ybGQ8L2gyPgotQnkgZGV2ZWxvcGluZyBTV0lHLCBJIGFtIHRyeWluZyB0byBidWlsZCBzeXN0ZW1zIHRoYXQgYXJlIGxvb3NlbHkgc3RydWN0dXJlZCBhcyBmb2xsb3dzIDo8cD4KLTxwPjxjZW50ZXI+PGltZyBzcmM9ImNoMi4xLnBuZyI+PC9jZW50ZXI+PHA+Ci08cD4KLTxwPgotQSByZWFsIGFwcGxpY2F0aW9uIG1pZ2h0IGxvb2sgbW9yZSBsaWtlIHRoaXMgOjxwPgotPHA+PGNlbnRlcj48aW1nIHNyYz0iY2gyLjIucG5nIj48L2NlbnRlcj48cD4KLTxwPgotSW4gZWl0aGVyIGNhc2UsIHdlIGFyZSBpbnRlcmVzdGVkIGluIGNvbnRyb2xsaW5nIGEgQy9DKysgcHJvZ3JhbSB3aXRoIGEgc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZS4gT3VyIGludGVyZmFjZSBtYXkgYmUgZm9yIGEgc21hbGwgZ3JvdXAgb2YgZnVuY3Rpb25zIG9yIGEgbGFyZ2UgY29sbGVjdGlvbiBvZiBDIGxpYnJhcmllcyBmb3IgcGVyZm9ybWluZyBhIHZhcmlldHkgb2YgdGFza3MuIEluIHRoaXMgbW9kZWwsIEMgZnVuY3Rpb25zIGFyZSB0dXJuZWQgaW50byBjb21tYW5kcy4gVG8gY29udHJvbCB0aGUgcHJvZ3JhbSwgdGhlIHVzZXIgbm93IHR5cGVzIHRoZXNlIGNvbW1hbmRzIG9yIHdyaXRlcyBzY3JpcHRzIHRvIHBlcmZvcm0gYSBwYXJ0aWN1bGFyIG9wZXJhdGlvbi4gSWYgeW91IGhhdmUgdXNlZCBjb21tZXJjaWFsIHBhY2thZ2VzIHN1Y2ggYXMgTUFUTEFCIG9yIElETCwgaXQgaXMgYSB2ZXJ5IHNpbWlsYXIgbW9kZWwtLXlvdSBleGVjdXRlIGNvbW1hbmRzIGFuZCB3cml0ZSBzY3JpcHRzLCB5ZXQgbW9zdCBvZiB0aGUgdW5kZXJseWluZyBmdW5jdGlvbmFsaXR5IGlzIHN0aWxsIHdyaXR0ZW4gaW4gQyBvciBGb3J0cmFuIGZvciBwZXJmb3JtYW5jZS48cD4KLTxwPgotVGhlIHR3by1sYW5ndWFnZSBtb2RlbCBvZiBjb21wdXRpbmcgaXMgZXh0cmVtZWx5IHBvd2VyZnVsIGJlY2F1c2UgaXQgZXhwbG9pdHMgdGhlIHN0cmVuZ3RocyBvZiBlYWNoIGxhbmd1YWdlLiBDL0MrKyBjYW4gYmUgdXNlZCBmb3IgbWF4aW1hbCBwZXJmb3JtYW5jZSBhbmQgY29tcGxpY2F0ZWQgc3lzdGVtcyBwcm9ncmFtbWluZyB0YXNrcy4gU2NyaXB0aW5nIGxhbmd1YWdlcyBjYW4gYmUgdXNlZCBmb3IgcmFwaWQgcHJvdG90eXBpbmcsIGludGVyYWN0aXZlIGRlYnVnZ2luZywgc2NyaXB0aW5nLCBhbmQgYWNjZXNzIHRvIGhpZ2gtbGV2ZWwgZGF0YSBzdHJ1Y3R1cmVzIHN1Y2ggYXMgbGlzdHMsIGFycmF5cywgYW5kIGhhc2ggdGFibGVzLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDM+IFdpbGwgc2NyaXB0aW5nIGxhbmd1YWdlcyBtYWtlIG15IEMgcHJvZ3JhbSBpbmVmZmljaWVudD88L2gzPgotT25lIG9mIHRoZSBjcml0aWNpc21zIG9mIHNjcmlwdGluZyBsYW5ndWFnZXMgaXMgdGhhdCB0aGV5IGFyZSBpbnRlcnByZXRlZCBhbmQgc2xvdy4gTm8gZG91YnQgYWJvdXQgaXQsIGEgc2NyaXB0aW5nIGxhbmd1YWdlIHdpbGwgYWx3YXlzIHJ1biBtdWNoIHNsb3dlciB0aGFuIEMuIEhvd2V2ZXIsIGlmIHlvdSBhcmUgdXNpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgdG8gY29udHJvbCBhIGJpZyBDIHByb2dyYW0sIG1vc3Qgb2YgeW91ciBmdW5jdGlvbmFsaXR5IGlzIHN0aWxsIHdyaXR0ZW4gaW4gQyBhbmQgc3RpbGwgZmFzdC4gVGh1cywgdGhlcmUgaXMgcmVhbGx5IG5vIGRpZmZlcmVuY2UgYmV0d2VlbiB3cml0aW5nIHRoZSBmb2xsb3dpbmcgaW4gQyA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5mb3IgKGkgPSAwOyBpICZsdDsgMTAwMDsgaSsrKSB7Ci0JY2FsbCBhIGJ1bmNoIG9mIEMgZnVuY3Rpb25zIHRvIGRvIHNvbWV0aGluZwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1vciB3cml0aW5nIHRoZSBzYW1lIHRoaW5nIGluIFB5dGhvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Zm9yIGkgaW4gcmFuZ2UoMCwxMDAwKToKLQljYWxsIGEgYnVuY2ggb2YgQyBmdW5jdGlvbnMgdG8gZG8gc29tZXRoaW5nCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU1vc3Qgb2YgdGhlIHRpbWUgaXMgc3RpbGwgc3BlbnQgaW4gdGhlIHVuZGVybHlpbmcgQyBmdW5jdGlvbnMuIE9mIGNvdXJzZSwgeW91IHdvdWxkbid0IHdhbnQgdG8gd3JpdGUgdGhlIGlubmVyIGxvb3Agb2YgYSBtYXRyaXggbXVsdGlwbHkgaW4gYSBzY3JpcHRpbmcgbGFuZ3VhZ2UsIGJ1dCB5b3UgYWxyZWFkeSBrbmV3IHRoaXMuIEl0IGlzIGFsc28gd29ydGggbm90aW5nIHRoYXQgcmVpbXBsZW1lbnRpbmcgY2VydGFpbiBvcGVyYXRpb25zIGluIEMgbWlnaHQgbm90IGxlYWQgdG8gYmV0dGVyIHBlcmZvcm1hbmNlLiBGb3IgZXhhbXBsZSwgUGVybCBpcyBoaWdobHkgb3B0aW1pemVkIGZvciB0ZXh0LXByb2Nlc3Npbmcgb3BlcmF0aW9ucy4gTW9zdCBvZiB0aGVzZSBvcGVyYXRpb25zIGFyZSBhbHJlYWR5IGltcGxlbWVudGVkIGluIEMgKHVuZGVybmVhdGggdGhlIGhvb2QpIHNvIGluIGNlcnRhaW4gY2FzZXMsIHVzaW5nIGEgc2NyaXB0aW5nIGxhbmd1YWdlIG1heSBhY3R1YWxseSBiZSBmYXN0ZXIgdGhhbiBhbiBlcXVpdmFsZW50IGltcGxlbWVudGF0aW9uIGluIEMuIDxwPgotPGEgbmFtZT0ibjYiPjwvYT48aDM+IFdpbGwgYWRkaW5nIGEgc2NyaXB0aW5nIGxhbmd1YWdlIHRvIG15IEMgcHJvZ3JhbSBtYWtlIGl0IHVubWFuYWdhYmxlPzwvaDM+Ci1BIGZlYXIgYW1vbmcgc29tZSB1c2VycyBpcyB0aGF0IGJ5IGFkZGluZyBhIHNlY29uZCBsYW5ndWFnZSwgeW91IHdpbGwgZW5kIHVwIHdpdGggYSBwYWNrYWdlIHRoYXQgaXMgaGFyZCB0byBtYWludGFpbiBhbmQgdXNlLiBJIGJlbGlldmUgdGhhdCB0aGVyZSBhcmUgdHdvIGFuc3dlcnMgdG8gdGhpcyBxdWVzdGlvbi4gSWYgeW91IGZpbmQgeW91cnNlbGYgbW9kaWZ5aW5nIHRoZSBDIGNvZGUgdG8gZml0IGl0IGludG8gYSBzcGVjaWZpYyBzY3JpcHRpbmcgbGFuZ3VhZ2UsIHRoZW4gaXQgd2lsbCBiZSBkaWZmaWN1bHQgdG8gbWFpbnRhaW4uIEJ5IGRvaW5nIHRoaXMsIHlvdSB3aWxsIGxvY2sgeW91cnNlbGYgaW50byBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2UuIElmIHRoYXQgbGFuZ3VhZ2UgY2hhbmdlcyBvciBkaXNhcHBlYXJzIG9mZiB0aGUgZmFjZSBvZiB0aGUgZWFydGgsIHRoZW4geW91IHdpbGwgYmUgbGVmdCB3aXRoIHNlcmlvdXMgbWFpbnRlbmFuY2UgcHJvYmxlbXMuIE9uIHRoZSBmbGlwIHNpZGUgb2YgdGhlIGNvaW4sIGEgbm9uLWludmFzaXZlIHRvb2wgbGlrZSBTV0lHIGNhbiBidWlsZCBpbnRlcmZhY2VzIHdpdGhvdXQgcmVxdWlyaW5nIGxhbmd1YWdlLXNwZWNpZmljIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgQyBjb2RlLiBJZiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGNoYW5nZXMsIGl0IGlzIGVhc3kgdG8gdXBkYXRlIHRoZSByZXN1bHRpbmcgaW50ZXJmYWNlLiBJZiB5b3UgZGVjaWRlIHRoYXQgeW91IHdhbnQgdG8gc2NyYXAgdGhlIHdob2xlIGludGVyZmFjZSBzY2hlbWUgYW5kIHRyeSBzb21ldGhpbmcgZWxzZSwgeW91IHN0aWxsIGhhdmUgYSBjbGVhbiBzZXQgb2YgQyBsaWJyYXJpZXM8cD4KLTxwPgotTXkgcGVyc29uYWwgZXhwZXJpZW5jZSBoYXMgYmVlbiB0aGF0IGFkZGluZyBhIHNjcmlwdGluZyBsYW5ndWFnZSB0byBhIEMgcHJvZ3JhbSBtYWtlcyB0aGUgQyBwcm9ncmFtIG1vcmUgbWFuYWdhYmxlISBZb3UgYXJlIGVuY291cmFnZWQgdG8gdGhpbmsgYWJvdXQgaG93IHlvdXIgQyBwcm9ncmFtIGlzIHN0cnVjdHVyZWQgYW5kIGhvdyB5b3Ugd2FudCB0aGluZ3MgdG8gd29yay4gSW4gZXZlcnkgcHJvZ3JhbSBpbiB3aGljaCBJIGhhdmUgYWRkZWQgYSBzY3JpcHRpbmcgaW50ZXJmYWNlLCB0aGUgQyBjb2RlIGhhcyBhY3R1YWxseSBkZWNyZWFzZWQgaW4gc2l6ZSwgaW1wcm92ZWQgaW4gcmVsaWFiaWxpdHksIGJlY29tZSBlYXNpZXIgdG8gbWFpbnRhaW4sIHdoaWxlIGJlY29taW5nIG1vcmUgZnVuY3Rpb25hbCBhbmQgZmxleGlibGUgdGhhbiBiZWZvcmUuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gSG93IGRvZXMgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgdGFsayB0byBDPzwvaDI+Ci1TY3JpcHRpbmcgbGFuZ3VhZ2VzIGFyZSBidWlsdCBhcm91bmQgYSBzbWFsbCBwYXJzZXIgdGhhdCByZWFkcyBhbmQgZXhlY3V0ZXMgc3RhdGVtZW50cyBvbiB0aGUgZmx5IGFzIHlvdXIgcHJvZ3JhbSBydW5zLiBXaXRoaW4gdGhlIHBhcnNlciwgdGhlcmUgaXMgYSBtZWNoYW5pc20gZm9yIGV4ZWN1dGluZyBjb21tYW5kcyBvciBhY2Nlc3NpbmcgdmFyaWFibGVzLiBIb3dldmVyLCBpbiBvcmRlciB0byBhY2Nlc3MgQyBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcywgaXQgaXMgbmVjZXNzYXJ5IHRvIHRlbGwgdGhlIHBhcnNlciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHN1Y2ggYXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLCB3aGF0IGtpbmQgb2YgYXJndW1lbnRzIGRvZXMgaXQgdGFrZSwgYW5kIHdoYXQgdG8gZG8gd2hlbiBpdCBpcyBjYWxsZWQuIFVuZm9ydHVuYXRlbHksIHRoaXMgcHJvY2VzcyBjYW4gYmUgZXh0cmVtZWx5IHRlZGlvdXMgYW5kIHRlY2huaWNhbC4gU1dJRyBhdXRvbWF0ZXMgdGhlIHByb2Nlc3MgYW5kIGFsbG93cyB5b3UgdG8gZm9yZ2V0IGFib3V0IGl0LiBJbiBhbnkgY2FzZSwgaXQncyBwcm9iYWJseSBhIGdvb2QgaWRlYSB0byBrbm93IHdoYXQncyBnb2luZyBvbiB1bmRlciB0aGUgaG9vZC48cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgzPiBXcmFwcGVyIGZ1bmN0aW9uczwvaDM+Ci1TdXBwb3NlIHlvdSBoYXZlIGFuIG9yZGluYXJ5IEMgZnVuY3Rpb24gbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgZmFjdChpbnQgbikgewotCWlmIChuICZsdDs9IDEpIHJldHVybiAxOwotCWVsc2UgcmV0dXJuIG4qZmFjdChuLTEpOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiBvcmRlciB0byBhY2Nlc3MgdGhpcyBmdW5jdGlvbiBmcm9tIGEgc2NyaXB0aW5nIGxhbmd1YWdlLCBpdCBpcyBuZWNlc3NhcnkgdG8gd3JpdGUgYSBzcGVjaWFsICJ3cmFwcGVyIiBmdW5jdGlvbiB0aGF0IHNlcnZlcyBhcyB0aGUgZ2x1ZSBiZXR3ZWVuIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgYW5kIHRoZSB1bmRlcmx5aW5nIEMgZnVuY3Rpb24uIEEgd3JhcHBlciBmdW5jdGlvbiBtdXN0IGRvIHRocmVlIHRoaW5ncyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5HYXRoZXIgZnVuY3Rpb24gYXJndW1lbnRzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgdmFsaWQuCi08bGk+Q2FsbCB0aGUgQyBmdW5jdGlvbi4KLTxsaT5Db252ZXJ0IHRoZSByZXR1cm4gdmFsdWUgaW50byBhIGZvcm0gcmVjb2duaXplZCBieSB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlLgotPC91bD4KLTxwPgotQXMgYW4gZXhhbXBsZSwgdGhlIFRjbCB3cmFwcGVyIGZ1bmN0aW9uIGZvciB0aGUgPHR0PmZhY3QoKTwvdHQ+IGZ1bmN0aW9uIGFib3ZlIGV4YW1wbGUgbWlnaHQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOiA8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1pbnQgd3JhcF9mYWN0KENsaWVudERhdGEgY2xpZW50RGF0YSwgVGNsX0ludGVycCAqaW50ZXJwLAotCQlpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0JaW50IF9yZXN1bHQ7Ci0JaW50IF9hcmcwOwotCWlmIChhcmdjICE9IDIpIHsKLQkJaW50ZXJwLSZndDtyZXN1bHQgPSAid3JvbmcgIyBhcmdzIjsKLQkJcmV0dXJuIFRDTF9FUlJPUjsKLQl9Ci0JX2FyZzAgPSBhdG9pKGFyZ3ZbMV0pOwotCV9yZXN1bHQgPSBmYWN0KF9hcmcwKTsKLQlzcHJpbnRmKGludGVycC0mZ3Q7cmVzdWx0LCIlZCIsIF9yZXN1bHQpOwotCXJldHVybiBUQ0xfT0s7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU9uY2Ugd2UgaGF2ZSBjcmVhdGVkIGEgd3JhcHBlciBmdW5jdGlvbiwgdGhlIGZpbmFsIHN0ZXAgaXMgdG8gdGVsbCB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGFib3V0IG91ciBuZXcgZnVuY3Rpb24uIFRoaXMgaXMgdXN1YWxseSBkb25lIGluIGFuIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGNhbGxlZCBieSB0aGUgbGFuZ3VhZ2Ugd2hlbiBvdXIgbW9kdWxlIGlzIGxvYWRlZC4gRm9yIGV4YW1wbGUsIGFkZGluZyB0aGUgYWJvdmUgZnVuY3Rpb24gdG8gdGhlIFRjbCBpbnRlcnByZXRlciB3b3VsZCByZXF1aXJlIGNvZGUgbGlrZSB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgV3JhcF9Jbml0KFRjbF9JbnRlcnAgKmludGVycCkgewotCVRjbF9DcmVhdGVDb21tYW5kKGludGVycCwgImZhY3QiLCB3cmFwX2ZhY3QsIChDbGllbnREYXRhKSBOVUxMLAotCQkJCShUY2xfQ21kRGVsZXRlUHJvYyAqKSBOVUxMKTsKLQlyZXR1cm4gVENMX09LOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIGV4ZWN1dGVkLCBUY2wgd2lsbCBub3cgaGF2ZSBhIG5ldyBjb21tYW5kIGNhbGxlZCAiPHR0PmZhY3Q8L3R0PiIgdGhhdCB5b3UgY2FuIHVzZSBsaWtlIGFueSBvdGhlciBUY2wgY29tbWFuZC48cD4KLTxwPgotV2hpbGUgdGhlIHByb2Nlc3Mgb2YgYWRkaW5nIGEgbmV3IGZ1bmN0aW9uIHRvIFRjbCBoYXMgYmVlbiBpbGx1c3RyYXRlZCwgdGhlIHByb2NlZHVyZSBpcyBhbG1vc3QgaWRlbnRpY2FsIGZvciBQZXJsIGFuZCBQeXRob24uIEJvdGggcmVxdWlyZSBzcGVjaWFsIHdyYXBwZXJzIHRvIGJlIHdyaXR0ZW4gYW5kIGJvdGggbmVlZCBhZGRpdGlvbmFsIGluaXRpYWxpemF0aW9uIGNvZGUuIE9ubHkgdGhlIHNwZWNpZmljIGRldGFpbHMgYXJlIGRpZmZlcmVudC48cD4KLTxhIG5hbWU9Im44Ij48L2E+PGgzPiBWYXJpYWJsZSBsaW5raW5nPC9oMz4KLVZhcmlhYmxlIGxpbmtpbmcgaXMgYSBzbGlnaHRseSBtb3JlIGRpZmZpY3VsdCBwcm9ibGVtLiBUaGUgaWRlYSBoZXJlIGlzIHRvIG1hcCBhIEMvQysrIGdsb2JhbCB2YXJpYWJsZSBpbnRvIGEgdmFyaWFibGUgaW4gdGhlIHNjcmlwdGluZyBsYW5ndWFnZSAod2UgYXJlICJsaW5raW5nIiBhIHZhcmlhYmxlIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgdG8gYSBDIHZhcmlhYmxlKS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIHRoZSBmb2xsb3dpbmcgdmFyaWFibGU6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+ZG91YmxlIE15X3ZhcmlhYmxlID0gMy41OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JdCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUgdG8gYWNjZXNzIGl0IGZyb20gYSBzY3JpcHQgYXMgZm9sbG93cyAoc2hvd24gZm9yIFBlcmwpOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiRhID0gJE15X3ZhcmlhYmxlICogMi4zOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1VbmZvcnR1bmF0ZWx5LCB0aGUgcHJvY2VzcyBvZiBsaW5raW5nIHZhcmlhYmxlcyBpcyBzb21ld2hhdCBwcm9ibGVtYXRpYyBhbmQgbm90IHN1cHBvcnRlZCBlcXVhbGx5IGluIGFsbCBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiBUaGVyZSBhcmUgdHdvIHByaW1hcnkgbWV0aG9kcyBmb3IgYXBwcm9hY2hpbmcgdGhpcyBwcm9ibGVtOjxwPgotPHA+Ci08dWw+Ci08bGk+RGlyZWN0IGFjY2Vzcy4gVGNsIHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBkaXJlY3RseSBhY2Nlc3NpbmcgQyA8dHQ+aW50PC90dD4sIDx0dD5kb3VibGU8L3R0PiwgYW5kIDx0dD5jaGFyPC90dD4gKiBkYXRhdHlwZXMgYXMgVGNsIHZhcmlhYmxlcy4gV2hlbmV2ZXIgdGhlc2UgdmFyaWFibGVzIGFyZSB1c2VkIGluIGEgVGNsIHNjcmlwdCwgdGhlIGludGVycHJldGVyIHdpbGwgZGlyZWN0bHkgYWNjZXNzIHRoZSBjb3JyZXNwb25kaW5nIEMgdmFyaWFibGUuIEluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmssIG9uZSBtdXN0IGZpcnN0ICJyZWdpc3RlciIgdGhlIEMgdmFyaWFibGVzIHdpdGggdGhlIFRjbCBpbnRlcnByZXRlci4gV2hpbGUgdGhpcyBhcHByb2FjaCBpcyBlYXN5IHRvIHN1cHBvcnQgaXQgaXMgYWxzbyBzb21ld2hhdCBwcm9ibGVtYXRpYy4gTm90IGFsbCBDIGRhdGF0eXBlcyBhcmUgc3VwcG9ydGVkLCBhbmQgaGF2aW5nIFRjbCBkaXJlY3RseSBtYW5pcHVsYXRlIHlvdXIgdmFyaWFibGVzIGluIGl0cyBuYXRpdmUgcmVwcmVzZW50YXRpb24gY291bGQgYmUgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzLiAKLTxsaT5BY2Nlc3MgdGhyb3VnaCBmdW5jdGlvbiBjYWxscy4gTGFuZ3VhZ2VzIHN1Y2ggYXMgUGVybCBhbmQgUHl0aG9uIGNhbiBhY2Nlc3MgZ2xvYmFsIHZhcmlhYmxlcyB1c2luZyBhIGZ1bmN0aW9uIGNhbGwgbWVjaGFuaXNtLiBSYXRoZXIgdGhhbiBhbGxvd2luZyBkaXJlY3QgYWNjZXNzLCB0aGUgaWRlYSBpcyB0byBwcm92aWRlIGEgcGFpciBvZiBzZXQvZ2V0IGZ1bmN0aW9ucyB0aGF0IHNldCBvciBnZXQgdGhlIHZhbHVlIG9mIGEgcGFydGljdWxhciB2YXJpYWJsZS4gSW4gbWFueSBjYXNlcywgdGhpcyBtZWNoYW5pc20gbWF5IGJlIGNvbXBsZXRlbHkgaGlkZGVuLiBGb3IgZXhhbXBsZSwgaXQgaXMgcG9zc2libGUgdG8gY3JlYXRlIGEgbWFnaWNhbCBQZXJsIHZhcmlhYmxlIHRoYXQgbG9va3MgYW5kIGZlZWxzIGp1c3QgbGlrZSBhIG5vcm1hbCBQZXJsIHZhcmlhYmxlLCBidXQgaXMgcmVhbGx5IG1hcHBlZCBpbnRvIGEgQyB2YXJpYWJsZSB2aWEgYSBwYWlyIG9mIHNldC9nZXQgZnVuY3Rpb25zLiBUaGUgYWR2YW50YWdlIG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBzdXBwb3J0IGFsbW9zdCBhbGwgQyBkYXRhdHlwZXMuIFRoZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCBpdCBpbnRyb2R1Y2VzIGFsb3Qgb2YgY29tcGxleGl0eSB0byB0aGUgd3JhcHBlciBjb2RlIGFzIGl0IGlzIG5vdyBuZWNlc3NhcnkgdG8gd3JpdGUgYSBwYWlyIG9mIEMgZnVuY3Rpb25zIGZvciBldmVyeSBzaW5nbGUgZ2xvYmFsIHZhcmlhYmxlLgotPC91bD4KLTxwPgotU1dJRyBzdXBwb3J0cyBib3RoIHN0eWxlcyBvZiB2YXJpYWJsZSBsaW5raW5nIGFsdGhvdWdoIHRoZSBsYXR0ZXIgaXMgbW9yZSBjb21tb24uIEluIHNvbWUgY2FzZXMsIGEgaHlicmlkIGFwcHJvYWNoIGlzIHRha2VuIChmb3IgZXhhbXBsZSwgdGhlIFRjbCBtb2R1bGUgd2lsbCBjcmVhdGUgYSBwYWlyIG9mIHNldC9nZXQgZnVuY3Rpb25zIGlmIGl0IGVuY291bnRlcnMgYSBkYXRhdHlwZSB0aGF0IFRjbCBjYW4ndCBzdXBwb3J0KS4gRm9ydHVuYXRlbHksIGdsb2JhbCB2YXJpYWJsZXMgYXJlIHJlbGF0aXZlbHkgcmFyZSB3aGVuIHdvcmtpbmcgd2l0aCBtb2R1bGFyIGNvZGUuPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMz4gQ29uc3RhbnRzPC9oMz4KLUNvbnN0YW50cyBjYW4gZWFzaWx5IGJlIGNyZWF0ZWQgYnkgc2ltcGx5IGNyZWF0aW5nIGEgbmV3IHZhcmlhYmxlIGluIHRoZSB0YXJnZXQgbGFuZ3VhZ2Ugd2l0aCB0aGUgYXBwcm9wcmlhdGUgdmFsdWUuIFVuZm9ydHVuYXRlbHksIHRoaXMgY2FuIGhhdmUgdGhlIHVuZGVzaXJhYmxlIHNpZGUtZWZmZWN0IG9mIG1ha2luZyB0aGUgY29uc3RhbnQgbm9uLWNvbnN0YW50LiBBcyBhIHJlc3VsdCwgYSBzb21ld2hhdCBiZXR0ZXIgKGFsdGhvdWdoIHBlcmhhcHMgaW5lZmZpY2llbnQpIG1ldGhvZCBvZiBjcmVhdGluZyBjb25zdGFudHMgaXMgdG8gaW5zdGFsbCB0aGVtIGFzIHJlYWQtb25seSB2YXJpYWJsZXMuIFNXSUcgdGVuZHMgdG8gcHJlZmVyIHRoaXMgYXBwcm9hY2guPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDM+IFN0cnVjdHVyZXMgYW5kIGNsYXNzZXM8L2gzPgotTW9zdCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGhhdmUgdHJvdWJsZSBkaXJlY3RseSBkZWFsaW5nIHdpdGggQyBzdHJ1Y3R1cmVzIGFuZCBDKysgY2xhc3Nlcy4gVGhpcyBpcyBiZWNhdXNlIHRoZSB1c2Ugb2Ygc3RydWN0dXJlcyBpcyBpbmhlcmVudGx5IEMgZGVwZW5kZW50IGFuZCBpdCBkb2Vzbid0IGFsd2F5cyBtYXAgd2VsbCBpbnRvIGEgc2NyaXB0aW5nIGxhbmd1YWdlIGVudmlyb25tZW50LiBNYW55IG9mIHRoZXNlIHByb2JsZW1zIGFyZSBzaW1wbHkgZHVlIHRvIGRhdGEgcmVwcmVzZW50YXRpb24gaXNzdWVzIGFuZCBkaWZmZXJlbmNlcyBpbiB0aGUgd2F5IEMgYW5kIGEgc2NyaXB0aW5nIGxhbmd1YWdlIG1pZ2h0IHJlcHJlc2VudCBpbnRlZ2VycywgZmxvYXRzLCBzdHJpbmdzLCBhbmQgc28gb24uIE90aGVyIHRpbWVzLCB0aGUgcHJvYmxlbSBpcyBkZWVwZXIgdGhhbiB0aGF0LS1mb3IgZXhhbXBsZSwgd2hhdCBkb2VzIGl0IG1lYW4gKGlmIGFueXRoaW5nKSB0byB0cnkgYW5kIHVzZSBDKysgaW5oZXJpdGFuY2UgZnJvbSBQZXJsPzxwPgotPHA+Ci1EZWFsaW5nIHdpdGggb2JqZWN0cyBpcyBhIHRvdWdoIHByb2JsZW0gdGhhdCBtYW55IHBlb3BsZSBhcmUgbG9va2luZyBhdC4gUGFja2FnZXMgc3VjaCBhcyBDT1JCQSBhbmQgSUxVIGFyZSBwcmltYXJpbHkgY29uY2VybmVkIHdpdGggdGhlIHJlcHJlc2VudGF0aW9uIG9mIG9iamVjdHMgaW4gYSBwb3J0YWJsZSBtYW5uZXIuIFRoaXMgYWxsb3dzIG9iamVjdHMgdG8gYmUgdXNlZCBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB1c2VkIHdpdGggZGlmZmVyZW50IGxhbmd1YWdlcyBhbmQgc28gb24uIFNXSUcgaXMgbm90IGNvbmNlcm5lZCB3aXRoIHRoZSByZXByZXNlbnRhdGlvbiBwcm9ibGVtLCBidXQgcmF0aGVyIHRoZSBwcm9ibGVtIG9mIGFjY2Vzc2luZyBhbmQgdXNpbmcgQy9DKysgb2JqZWN0cyBmcm9tIGEgc2NyaXB0aW5nIGxhbmd1YWdlIChpbiBmYWN0IFNXSUcgaGFzIGV2ZW4gYmVlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggQ09SQkEtYmFzZWQgc3lzdGVtcykuPHA+Ci08cD4KLVRvIHByb3ZpZGUgYWNjZXNzLCB0aGUgc2ltcGxpc3QgYXBwcm9hY2ggaXMgdG8gdHJhbnNmb3JtIGEgc3RydWN0dXJlIGludG8gYSBjb2xsZWN0aW9uIG9mIGFjY2Vzc29yIGZ1bmN0aW9ucy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN0cnVjdCBWZWN0b3IgewotCVZlY3RvcigpOwotCX5WZWN0b3IoKTsKLQlkb3VibGUgeCx5LHo7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1jYW4gYmUgdHJhbnNmb3JtZWQgaW50byB0aGUgZm9sbG93aW5nIHNldCBvZiBmdW5jdGlvbnMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPlZlY3RvciAqbmV3X1ZlY3RvcigpOwotdm9pZCBkZWxldGVfVmVjdG9yKFZlY3RvciAqdik7Ci1kb3VibGUgVmVjdG9yX3hfZ2V0KFZlY3RvciAqdik7Ci1kb3VibGUgVmVjdG9yX3lfZ2V0KFZlY3RvciAqdik7Ci1kb3VibGUgVmVjdG9yX3lfZ2V0KFZlY3RvciAqdik7Ci12b2lkIFZlY3Rvcl94X3NldChWZWN0b3IgKnYsIGRvdWJsZSB4KTsKLXZvaWQgVmVjdG9yX3lfc2V0KFZlY3RvciAqdiwgZG91YmxlIHkpOwotdm9pZCBWZWN0b3Jfel9zZXQoVmVjdG9yICp2LCBkb3VibGUgeik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gYWNjZXNzZWQgaW4gVGNsLCB0aGUgZnVuY3Rpb25zIGNvdWxkIGJlIHVzZWQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgdiBbbmV3X1ZlY3Rvcl0KLSUgVmVjdG9yX3hfc2V0ICR2IDMuNQotJSBWZWN0b3JfeV9nZXQgJHYKLSUgZGVsZXRlX1ZlY3RvciAkdgotJSAuLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIGFjY2Vzc29yIGZ1bmN0aW9ucyBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBhY2Nlc3NpbmcgYSByZWFsIEMvQysrIG9iamVjdC4gU2luY2UgYWxsIGFjY2VzcyBvY2N1cnMgdGhvdWdoIHRoZXNlIGZ1bmN0aW9uIGNhbGxzLCBUY2wgZG9lcyBub3QgbmVlZCB0byBrbm93IGFueXRoaW5nIGFib3V0IHRoZSBhY3R1YWwgcmVwcmVzZW50YXRpb24gb2YgYSA8dHQ+VmVjdG9yPC90dD4uIFRoaXMgc2ltcGxpZmllcyBtYXR0ZXJzIGNvbnNpZGVyYWJseSBhbmQgc3RlcHMgYXJvdW5kIG1hbnkgb2YgdGhlIHByb2JsZW1zIGFzc29jaWF0ZWQgd2l0aCBvYmplY3RzLS1pbiBmYWN0LCBpdCBsZXRzIHRoZSBDL0MrKyBjb21waWxlciBkbyBtb3N0IG9mIHRoZSB3b3JrLjxwPgotPGEgbmFtZT0ibjExIj48L2E+PGgzPiBTaGFkb3cgY2xhc3NlczwvaDM+Ci1BcyBpdCB0dXJucyBvdXQsIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGUgbG93LWxldmVsIGFjY2Vzc29yIGZ1bmN0aW9ucyBhYm92ZSB0byBjcmVhdGUgc29tZXRoaW5nIGtub3duIGFzIGEgInNoYWRvdyIgY2xhc3MuIEluIGEgbnV0c2hlbGwsIGEgInNoYWRvdyBjbGFzcyIgaXMgYSBmdW5ueSBraW5kIG9mIG9iamVjdCB0aGF0IGdldHMgY3JlYXRlZCBpbiBhIHNjcmlwdGluZyBsYW5ndWFnZSB0byBhY2Nlc3MgYSBDL0MrKyBjbGFzcyAob3Igc3RydWN0KSBpbiBhIHdheSB0aGF0IGxvb2tzIGxpa2UgdGhlIG9yaWdpbmFsIHN0cnVjdHVyZSAodGhhdCBpcywgaXQgInNoYWRvd3MiIHRoZSByZWFsIEMrKyBjbGFzcykuIE9mIGNvdXJzZSwgaW4gcmVhbGl0eSwgaXQncyBqdXN0IGEgc2xpY2sgd2F5IG9mIGFjY2Vzc2luZyBvYmplY3RzIHRoYXQgaXMgbW9yZSBuYXR1cmFsIHRvIG1vc3QgcHJvZ3JhbW1lcnMuIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIEMgZGVmaW5pdGlvbiA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotY2xhc3MgVmVjdG9yIHsKLXB1YmxpYzoKLQlWZWN0b3IoKTsKLQl+VmVjdG9yKCk7Ci0JZG91YmxlIHgseSx6OwotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQSBzaGFkb3cgY2xhc3NpbmcgbWVjaGFuaXNtIHdvdWxkIGFsbG93IHlvdSB0byBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBpbiBhIG5hdHVyYWwgbWFubmVyLiBGb3IgZXhhbXBsZSwgaW4gUHl0aG9uLCB5b3UgbWlnaHQgZG8gdGhlIGZvbGxvd2luZyw8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgdiA9IFZlY3RvcigpCi0mZ3Q7Jmd0OyZndDsgdi54ID0gMwotJmd0OyZndDsmZ3Q7IHYueSA9IDQKLSZndDsmZ3Q7Jmd0OyB2LnogPSAtMTMKLSZndDsmZ3Q7Jmd0OyAuLi4KLSZndDsmZ3Q7Jmd0OyBkZWwgdgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci13aGlsZSBpbiBQZXJsNSwgaXQgbWlnaHQgbG9vayBsaWtlIHRoaXMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSR2ID0gbmV3IFZlY3RvcjsKLSR2LSZndDt7eH0gPSAzOwotJHYtJmd0O3t5fSA9IDQ7Ci0kdi0mZ3Q7e3p9ID0gLTEzOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1hbmQgaW4gVGNsIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1WZWN0b3IgdgotdiBjb25maWd1cmUgLXggMyAteSA0IC16IDEzCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gc2hhZG93IGNsYXNzZXMgYXJlIHVzZWQsIHR3byBvYmplY3RzIGFyZSBhdCByZWFsbHkgd29yay0tb25lIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UsIGFuZCBhbiB1bmRlcmx5aW5nIEMvQysrIG9iamVjdC4gT3BlcmF0aW9ucyBhZmZlY3QgYm90aCBvYmplY3RzIGVxdWFsbHkgYW5kIGZvciBhbGwgcHJhY3RpY2FsIHB1cnBvc2VzLCBpdCBhcHBlYXJzIGFzIGlmIHlvdSBhcmUgc2ltcGx5IG1hbmlwdWxhdGluZyBhIEMvQysrIG9iamVjdC4gSG93ZXZlciwgdGhlIGludHJvZHVjdGlvbiBvZiBhZGRpdGlvbmFsICJvYmplY3RzIiBjYW4gYWxzbyBwcm9kdWNlIGV4Y2Vzc2l2ZSBvdmVyaGVhZCBpZiB3b3JraW5nIHdpdGggaHVnZSBudW1iZXJzIG9mIG9iamVjdHMgaW4gdGhpcyBtYW5uZXIuIERlc3BpdGUgdGhpcywgc2hhZG93IGNsYXNzZXMgdHVybiBvdXQgdG8gYmUgZXh0cmVtZWx5IHVzZWZ1bC4gVGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBpcyBjb3ZlcmVkIGxhdGVyLjxwPgotPGEgbmFtZT0ibjMiPjwvYT48aDI+IEJ1aWxkaW5nIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb25zPC9oMj4KLVRoZSBmaW5hbCBzdGVwIGluIHVzaW5nIGEgc2NyaXB0aW5nIGxhbmd1YWdlIHdpdGggeW91ciBDL0MrKyBhcHBsaWNhdGlvbiBpcyBhZGRpbmcgeW91ciBleHRlbnNpb25zIHRvIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UgaXRzZWxmLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGFsbW9zdCBhbHdheXMgc2VlbXMgdG8gYmUgdGhlIG1vc3QgZGlmZmljdWx0IHBhcnQuIFRoZXJlIGFyZSB0d28gZnVuZGFtZW50YWwgYXBwcm9hY2hlcyBmb3IgZG9pbmcgdGhpcy4gRmlyc3QsIHlvdSBjYW4gYnVpbGQgYW4gZW50aXJlbHkgbmV3IHZlcnNpb24gb2YgdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcnByZXRlciB3aXRoIHlvdXIgZXh0ZW5zaW9ucyBidWlsdCBpbnRvIGl0LiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkgYW5kIGR5bmFtaWNhbGx5IGxvYWQgaXQgaW50byB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGFzIG5lZWRlZC4gQm90aCBhcHByb2FjaHMgYXJlIGRlc2NyaWJlZCBiZWxvdyA6PHA+Ci08YSBuYW1lPSJuMTIiPjwvYT48aDM+IFN0YXRpYyBsaW5raW5nPC9oMz4KLVdpdGggc3RhdGljIGxpbmtpbmcgeW91IHJlYnVpbGQgdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcnByZXRlciB3aXRoIGV4dGVuc2lvbnMuIFRoZSBwcm9jZXNzIHVzdWFsbHkgaW52b2x2ZXMgY29tcGlsaW5nIGEgc2hvcnQgbWFpbiBwcm9ncmFtIHRoYXQgYWRkcyB5b3VyIGN1c3RvbWl6ZWQgY29tbWFuZHMgdG8gdGhlIGxhbmd1YWdlIGFuZCBzdGFydHMgdGhlIGludGVycHJldGVyLiBZb3UgdGhlbiBsaW5rIHlvdXIgcHJvZ3JhbSB3aXRoIGEgbGlicmFyeSB0byBwcm9kdWNlIGEgbmV3IGV4ZWN1dGFibGUuIFdoZW4gdXNpbmcgc3RhdGljIGxpbmtpbmcsIFNXSUcgd2lsbCBwcm92aWRlIGEgPHR0Pm1haW4oKTwvdHQ+IHByb2dyYW0gZm9yIHlvdSBzbyB5b3UgdXN1YWxseSBqdXN0IGhhdmUgdG8gY29tcGlsZSBhcyBmb2xsb3dzIChzaG93biBmb3IgVGNsKSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dW5peCAmZ3Q7IHN3aWcgLXRjbCAtbHRjbHNoLmkgZXhhbXBsZS5pCi1HZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBUY2wuCi11bml4ICZndDsgZ2NjIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZSBcCi0JLUwvdXNyL2xvY2FsL2xpYiAtbHRjbCAtbG0gLW8gbXlfdGNsc2gKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHR0Pm15X3RjbHNoPC90dD4gaXMgYSBuZXcgZXhlY3V0YWJsZSBjb250YWluaW5nIHRoZSBUY2wgaW50ZXByZXRlci4gPHR0Pm15X3RjbHNoPC90dD4gd2lsbCBiZSBleGFjdGx5IHRoZSBzYW1lIGFzIHRjbHNoIGV4Y2VwdCB3aXRoIHlvdXIgbmV3IGNvbW1hbmRzIGFkZGVkIHRvIGl0LiBXaGVuIGludm9raW5nIFNXSUcsIHRoZSA8dHQ+LWx0Y2xzaC5pPC90dD4gb3B0aW9uIGluY2x1ZGVzIHN1cHBvcnQgY29kZSBuZWVkZWQgdG8gcmVidWlsZCB0aGUgPHR0PnRjbHNoPC90dD4gYXBwbGljYXRpb24uIDxwPgotPHA+Ci1WaXJ0dWFsbHkgYWxsIG1hY2hpbmVzIHN1cHBvcnQgc3RhdGljIGxpbmtpbmcgYW5kIGluIHNvbWUgY2FzZXMsIGl0IG1heSBiZSB0aGUgb25seSB3YXkgdG8gYnVpbGQgYW4gZXh0ZW5zaW9uLiBUaGUgZG93bnNpZGUgdG8gc3RhdGljIGxpbmtpbmcgaXMgdGhhdCB5b3UgY2FuIGVuZCB1cCB3aXRoIGEgbGFyZ2UgZXhlY3V0YWJsZS4gSW4gYSB2ZXJ5IGxhcmdlIHN5c3RlbSwgdGhlIHNpemUgb2YgdGhlIGV4ZWN1dGFibGUgbWF5IGJlIHByb2hpYml0aXZlbHkgbGFyZ2UuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gU2hhcmVkIGxpYnJhcmllcyBhbmQgZHluYW1pYyBsb2FkaW5nPC9oMj4KLUFuIGFsdGVybmF0aXZlIHRvIHN0YXRpYyBsaW5raW5nIGlzIHRvIGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkuIFdpdGggdGhpcyBhcHByb2FjaCwgeW91IGJ1aWxkIGEgc2hhcmVkIG9iamVjdCBmaWxlIGNvbnRhaW5pbmcgb25seSB0aGUgY29kZSByZWxhdGVkIHRvIHlvdXIgbW9kdWxlIChvbiBXaW5kb3dzLCB0aGlzIGlzIHRoZSBzYW1lIGFzIGJ1aWxkaW5nIGEgRExMKS4gVW5mb3J0dW5hdGVseSB0aGUgcHJvY2VzcyBvZiBidWlsZGluZyB0aGVzZSBtb2R1bGVzIHZhcmllcyBvbiBldmVyeSBzaW5nbGUgbWFjaGluZSwgYnV0IHRoZSBwcm9jZWR1cmUgZm9yIGEgZmV3IGNvbW1vbiBtYWNoaW5lcyBpcyBzaG93IGJlbG93IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIEJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkgZm9yIFNvbGFyaXMKLWdjYyAtYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUKLWxkIC1HIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlLnNvCi0KLSMgQnVpbGQgYSBzaGFyZWQgbGlicmFyeSBmb3IgSXJpeAotZ2NjIC1jIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZQotbGQgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZS5zbwotCi0jIEJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkgZm9yIExpbnV4Ci1nY2MgLWZwaWMgLWMgZXhhbXBsZS5jIGV4YW1wbGVfd3JhcC5jIC1JL3Vzci9sb2NhbC9pbmNsdWRlCi1nY2MgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZS5zbwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyB1c2UgeW91ciBzaGFyZWQgbGlicmFyeSwgeW91IHNpbXBseSB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWFuZCBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIChsb2FkLCBpbXBvcnQsIHVzZSwgZXRjLi4uKS4gVGhpcyB3aWxsIGltcG9ydCB5b3VyIG1vZHVsZSBhbmQgYWxsb3cgeW91IHRvIHN0YXJ0IHVzaW5nIGl0LiA8cD4KLTxwPgotV2hlbiB3b3JraW5nIHdpdGggQysrIGNvZGVzLCB0aGUgcHJvY2VzcyBvZiBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzIGlzIG1vcmUgZGlmZmljdWx0LS1wcmltYXJpbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgQysrIG1vZHVsZXMgbWF5IG5lZWQgYWRkaXRpb25hbCBjb2RlIGluIG9yZGVyIHRvIG9wZXJhdGUgY29ycmVjdGx5LiBPbiBtb3N0IG1hY2hpbmVzLCB5b3UgY2FuIGJ1aWxkIGEgc2hhcmVkIEMrKyBtb2R1bGUgYnkgZm9sbG93aW5nIHRoZSBhYm92ZSBwcm9jZWR1cmVzLCBidXQgY2hhbmdpbmcgdGhlIGxpbmsgbGluZSB0byB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jKysgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZS5zbwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgYWR2YW50YWdlcyB0byBkeW5hbWljIGxvYWRpbmcgaXMgdGhhdCB5b3UgY2FuIHVzZSBtb2R1bGVzIGFzIHRoZXkgYXJlIG5lZWRlZCBhbmQgdGhleSBjYW4gYmUgbG9hZGVkIG9uIHRoZSBmbHkuIFRoZSBkaXNhZHZhbnRhZ2UgaXMgdGhhdCBkeW5hbWljIGxvYWRpbmcgaXMgbm90IHN1cHBvcnRlZCBvbiBhbGwgbWFjaGluZXMgKGFsdGhvdWdoIHN1cHBvcnQgaXMgaW1wcm92aW5nKS4gVGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MgYWxzbyB0ZW5kcyB0byBiZSBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gd2hhdCBtaWdodCBiZSB1c2VkIGZvciBhIHR5cGljYWwgQy9DKysgcHJvZ3JhbS48cD4KLTxhIG5hbWU9Im4xMyI+PC9hPjxoMz4gTGlua2luZyB3aXRoIHNoYXJlZCBsaWJyYXJpZXM8L2gzPgotV2hlbiBidWlsZGluZyBleHRlbnNpb25zIGFzIHNoYXJlZCBsaWJyYXJpZXMsIGl0IGlzIG5vdCB1bmNvbW1vbiBmb3IgeW91ciBleHRlbnNpb24gdG8gcmVseSB1cG9uIG90aGVyIHNoYXJlZCBsaWJyYXJpZXMgb24geW91ciBtYWNoaW5lLiBJbiBvcmRlciBmb3IgdGhlIGV4dGVuc2lvbiB0byB3b3JrLCBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGZpbmQgYWxsIG9mIHRoZXNlIGxpYnJhcmllcyBhdCBydW4tdGltZS4gT3RoZXJ3aXNlLCB5b3UgbWF5IGdldCBhbiBlcnJvciBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiZndDsmZ3Q7Jmd0OyBpbXBvcnQgZ3JhcGgKLVRyYWNlYmFjayAoaW5uZXJtb3N0IGxhc3QpOgotICBGaWxlICImbHQ7c3RkaW4mZ3Q7IiwgbGluZSAxLCBpbiA/Ci0gIEZpbGUgIi9ob21lL3NjaS9kYXRhMS9iZWF6bGV5L2dyYXBoL2dyYXBoLnB5IiwgbGluZSAyLCBpbiA/Ci0gICAgaW1wb3J0IGdyYXBoYwotSW1wb3J0RXJyb3I6ICAxMTAxOi9ob21lL3NjaS9kYXRhMS9iZWF6bGV5L2Jpbi9weXRob246IHJsZDogRmF0YWwgRXJyb3I6IGNhbm5vdCAKLXN1Y2Nlc3NmdWxseSBtYXAgc29uYW1lICdsaWJncmFwaC5zbycgdW5kZXIgYW55IG9mIHRoZSBmaWxlbmFtZXMgL3Vzci9saWIvbGliZ3JhcGguc286LwotbGliL2xpYmdyYXBoLnNvOi9saWIvY21wbHJzL2NjL2xpYmdyYXBoLnNvOi91c3IvbGliL2NtcGxycy9jYy9saWJncmFwaC5zbzoKLSZndDsmZ3Q7Jmd0OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGF0IHRoaXMgZXJyb3IgbWVhbnMgaXMgdGhhdCB0aGUgZXh0ZW5zaW9uIG1vZHVsZSBjcmVhdGVkIGJ5IFNXSUcgZGVwZW5kcyB1cG9uIGEgc2hhcmVkIGxpYnJhcnkgY2FsbGVkICI8dHQ+bGliZ3JhcGguc288L3R0PiIgdGhhdCB0aGUgc3lzdGVtIHdhcyB1bmFibGUgdG8gbG9jYXRlLiBUbyBmaXggdGhpcyBwcm9ibGVtLCB0aGVyZSBhcmUgYSBmZXcgYXBwcm9hY2hlcyB5b3UgY2FuIHRha2UuPHA+Ci08cD4KLTx1bD4KLTxsaT5TZXQgdGhlIFVOSVggZW52aXJvbm1lbnQgdmFyaWFibGUgPHR0PkxEX0xJQlJBUllfUEFUSDwvdHQ+IHRvIHRoZSBkaXJlY3Rvcnkgd2hlcmUgc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9jYXRlZCBiZWZvcmUgcnVubmluZyBQeXRob24uIAotPGxpPkxpbmsgeW91ciBleHRlbnNpb24gYW5kIGV4cGxpY2l0bHkgdGVsbCB0aGUgbGlua2VyIHdoZXJlIHRoZSByZXF1aXJlZCBsaWJyYXJpZXMgYXJlIGxvY2F0ZWQuIE9mdGVuIHRpbWVzLCB0aGlzIGNhbiBiZSBkb25lIHdpdGggYSBzcGVjaWFsIGxpbmtlciBmbGFnIHN1Y2ggYXMgPHR0Pi1SPC90dD4sIDx0dD4tcnBhdGg8L3R0PiwgZXRjLi4uIFRoaXMgaXMgbm90IGltcGxlbWVudGVkIGluIGEgc3RhbmRhcmQgbWFubmVyIHNvIHJlYWQgdGhlIG1hbiBwYWdlcyBmb3IgeW91ciBsaW5rZXIgdG8gZmluZCBvdXQgbW9yZSBhYm91dCBob3cgdG8gc2V0IHRoZSBzZWFyY2ggcGF0aCBmb3Igc2hhcmVkIGxpYnJhcmllcy4KLTxsaT5QdXQgc2hhcmVkIGxpYnJhcmllcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGV4ZWN1dGFibGUuIFRoaXMgdGVjaG5pcXVlIGlzIHNvbWV0aW1lcyByZXF1aXJlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gb24gbm9uLVVuaXggcGxhdGZvcm1zLgotPC91bD4KLTxwPgotV2l0aCBhIGxpdHRsZSBwYXRpZW5jZSBhbmQgYWZ0ZXIgc29tZSBwbGF5aW5nIGFyb3VuZCwgeW91IGNhbiB1c3VhbGx5IGdldCB0aGluZ3MgdG8gd29yay4gQWZ0ZXJ3YXJkcywgYnVpbGRpbmcgZXh0ZW5zaW9ucyBiZWNvbWVzIGFsb3QgZWFzaWVyLjxwPgotPHA+Ci0KLTxwPjxocj4KLQotPGFkZHJlc3M+U1dJRyAxLjEgLSBMYXN0IE1vZGlmaWVkIDogTW9uIEF1ZyAgNCAxMDo0Njo1MCAxOTk3PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9UY2wuaHRtbCBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvVGNsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5YzMxNzMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9UY2wuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwNDggKzAsMCBAQAotPCEtLSBQdWJsaXNoZWQgYnkgUXVhZHJhbGF5IFdlYldvcmtzIEhUTUwgTGl0ZSAxLjUuMSAtLT4KLTwhLS0gQW5kIG11bmdlZCBieSBEYXZlJ3Mgc3BlY2lhbCBQeXRob24gc2NyaXB0IC0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5TV0lHIGFuZCBUY2w8L3RpdGxlPgotPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxhIG5hbWU9Im4wIj48L2E+PGgxPjEwIFNXSUcgYW5kIFRjbDwvaDE+PHA+PHVsPgotPGxpPiA8YSBocmVmPSIjbjEiPlByZWxpbWluYXJpZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMiI+QnVpbGRpbmcgVGNsL1RrIEV4dGVuc2lvbnMgdW5kZXIgV2luZG93cyA5NS9OVDwvYT4KLTxsaT4gPGEgaHJlZj0iI24zIj5CYXNpYyBUY2wgSW50ZXJmYWNlPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPlRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlPC9hPgotPGxpPiA8YSBocmVmPSIjbjUiPkFib3V0IHRoZSBleGFtcGxlczwvYT4KLTxsaT4gPGEgaHJlZj0iI242Ij5CaW5hcnkgdHJlZXMgaW4gVGNsPC9hPgotPGxpPiA8YSBocmVmPSIjbjciPkJ1aWxkaW5nIEMvQysrIGRhdGEgc3RydWN0dXJlcyB3aXRoIFRrPC9hPgotPGxpPiA8YSBocmVmPSIjbjgiPkFjY2Vzc2luZyBhcnJheXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuOSI+QnVpbGRpbmcgYSBzaW1wbGUgT3BlbkdMIG1vZHVsZTwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMCI+RXhjZXB0aW9uIGhhbmRsaW5nPC9hPgotPGxpPiA8YSBocmVmPSIjbjExIj5UeXBlbWFwczwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMiI+Q29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHdpdGggU1dJRzwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMyI+QnVpbGRpbmcgbmV3IGtpbmRzIG9mIFRjbCBpbnRlcmZhY2VzIChpbiBUY2wpPC9hPgotPGxpPiA8YSBocmVmPSIjbjE0Ij5FeHRlbmRpbmcgdGhlIFRjbCBOZXRzY2FwZSBQbHVnaW48L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTUiPlRjbDguMCBmZWF0dXJlczwvYT4KLTwvdWw+Ci0KLVRoaXMgY2hhcHRlciBkaXNjdXNzZXMgU1dJRydzIHN1cHBvcnQgb2YgVGNsLiBTV0lHIHN1cHBvcnRzIFRjbCB2ZXJzaW9ucyA3LjMgYW5kIG5ld2VyLCBpbmNsdWRpbmcgVGNsIDguMC4gVGsgMy42IGFuZCBuZXdlciBjYW4gYWxzbyBiZSB1c2VkLiBIb3dldmVyLCBmb3IgdGhlIGJlc3QgcmVzdWx0cyB5b3Ugc2hvdWxkIGNvbnNpZGVyIHVzaW5nIFRjbCA3LjUvVGs0LjEgb3IgbGF0ZXIuPHA+Ci08YSBuYW1lPSJuMSI+PC9hPjxoMj4gUHJlbGltaW5hcmllczwvaDI+Ci1Zb3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgVGNsL1RrIG9uIHlvdXIgc3lzdGVtIGlmIHlvdSBoYXZlbid0IGRvbmUgc28gYWxyZWFkeS4gSWYgeW91IGFyZSB1c2luZyBUY2wgNy41IG9yIG5ld2VyLCB5b3Ugc2hvdWxkIGFsc28gZGV0ZXJtaW5lIGlmIHlvdXIgc3lzdGVtIHN1cHBvcnRzIGR5bmFtaWMgbG9hZGluZyBhbmQgc2hhcmVkIGxpYnJhcmllcy4gU1dJRyB3aWxsIHdvcmsgd2l0aCBvciB3aXRob3V0IHRoaXMsIGJ1dCB0aGUgY29tcGlsYXRpb24gcHJvY2VzcyB2YXJpZXMuPHA+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IFJ1bm5pbmcgU1dJRzwvaDM+Ci1UbyBidWlsZCBhIFRjbCBtb2R1bGUsIHJ1biBzd2lnIHVzaW5nIHRoZSA8dHQ+LXRjbDwvdHQ+IG9wdGlvbiBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zd2lnIC10Y2wgZXhhbXBsZS5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgd2lsbCBwcm9kdWNlIDIgZmlsZXMuIFRoZSBmaXJzdCBmaWxlLCA8dHQ+ZXhhbXBsZV93cmFwLmMsIDwvdHQ+Y29udGFpbnMgYWxsIG9mIHRoZSBDIGNvZGUgbmVlZGVkIHRvIGJ1aWxkIHlvdXIgVGNsIG1vZHVsZS4gVGhlIHNlY29uZCBmaWxlIGNvbnRhaW5zIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgbWF5IGJlIG5hbWVkIDx0dD5leGFtcGxlX3dyYXAuZG9jPC90dD4sIDx0dD5leGFtcGxlX3dyYXAuaHRtbDwvdHQ+LCA8dHQ+ZXhhbXBsZV93cmFwLnRleDwvdHQ+LCBldGMuLi4gVG8gYnVpbGQgYSBUY2wgZXh0ZW5zaW9uIHlvdSB3aWxsIG5lZWQgdG8gY29tcGlsZSB0aGUgPHR0PmV4YW1wbGVfd3JhcC5jPC90dD4gZmlsZSBhbmQgbGluayBpdCB3aXRoIHRoZSByZXN0IG9mIHlvdXIgcHJvZ3JhbSAoYW5kIHBvc3NpYmx5IFRjbCBpdHNlbGYpLjxwPgotPGEgbmFtZT0ibjE3Ij48L2E+PGgzPiBBZGRpdGlvbmFsIFNXSUcgb3B0aW9uczwvaDM+Ci1UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGFsc28gYXZhaWxhYmxlIHdpdGggdGhlIFRjbCBtb2R1bGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi10Y2w4ICAgICAgICAgUHJvZHVjZSBUY2w4LjAgbmF0aXZlIHdyYXBwZXJzICh1c2UgaW4gcGxhY2Ugb2YgLXRjbCkuCi0tbW9kdWxlICAgICAgIFNldCB0aGUgbW9kdWxlIG5hbWUuCi0tbmFtZXNwYWNlICAgIFVzZSBbaW5jciBUY2xdIG5hbWVzcGFjZXMuCi0tcHJlZml4IHBrZyAgIFNldCBhIHBhY2thZ2UgcHJlZml4IG9mIGBwa2cnLiBUaGlzIHByZWZpeCB3aWxsIGJlCi0gICAgICAgICAgICAgIGF0dGFjaGVkIHRvIGVhY2ggZnVuY3Rpb24uCi0taHRjbCB0Y2wuaCAgIFNldCBuYW1lIG9mIFRjbCBoZWFkZXIgZmlsZS4KLS1odGsgdGsuaCAgICAgU2V0IG5hbWUgb2YgVGsgaGVhZGVyIGZpbGUuCi0tcGx1Z2luICAgICAgIEdlbmVyYXRlIGFkZGl0aW9uYWwgY29kZSBmb3IgdGhlIG5ldHNjYXBlIHBsdWdpbi4KLS1ub29iamVjdCAgICAgT21pdCBvYmplY3Qgb3JpZW50ZWQgZXh0ZW5zaW9ucyAoY29tcGF0aWJpbGl0eSB3aXRoIFNXSUcgMS4wKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1NYW55IG9mIHRoZXNlIG9wdGlvbnMgd2lsbCBiZSBkZXNjcmliZWQgbGF0ZXIuPHA+Ci08YSBuYW1lPSJuMTgiPjwvYT48aDM+IEdldHRpbmcgdGhlIHJpZ2h0IGhlYWRlciBmaWxlcyBhbmQgbGlicmFyaWVzPC9oMz4KLUluIG9yZGVyIHRvIGNvbXBpbGUgVGNsL1RrIGV4dGVuc2lvbnMsIHlvdSB3aWxsIG5lZWQgdG8gbG9jYXRlIHRoZSAiPHR0PnRjbC5oPC90dD4iIGFuZCAiPHR0PnRrLmg8L3R0PiIgaGVhZGVyIGZpbGVzLiBUaGVzZSBhcmUgdXN1YWxseSBsb2NhdGVkIGluIDx0dD4vdXNyL2xvY2FsL2luY2x1ZGU8L3R0Pi4gWW91IHdpbGwgYWxzbyBuZWVkIHRvIGxvY2F0ZSB0aGUgVGNsL1RrIGxpYnJhcmllcyA8dHQ+bGlidGNsLmE8L3R0PiBhbmQgPHR0PmxpYnRrLmE8L3R0Pi4gVGhlc2UgYXJlIHVzdWFsbHkgbG9jYXRlZCBpbiA8dHQ+L3Vzci9sb2NhbC9saWI8L3R0Pi48cD4KLVdoZW4gbG9jYXRpbmcgdGhlIHJpZ2h0IGhlYWRlciBhbmQgbGlicmFyaWVzIGZpbGVzLCBkb3VibGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBmaWxlcyBhcmUgdGhlIGNvcnJlY3QgdmVyc2lvbiBhbmQgZm9ybSBhIG1hdGNoaW5nIHBhaXIuIFNXSUcgd29ya3Mgd2l0aCB0aGUgZm9sbG93aW5nIFRjbC9UayByZWxlYXNlcy48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5UY2wgNy4zLCBUayAzLjYKLVRjbCA3LjQsIFRrIDQuMAotVGNsIDcuNSwgVGsgNC4xCi1UY2wgNy42LCBUayA0LjIKLVRjbCA4LjBhMiwgVGsgOC4wYTIKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotRG8gbm90IG1peCB2ZXJzaW9ucy4gQWx0aG91Z2ggdGhlIGNvZGUgbWlnaHQgY29tcGlsZSBpZiB5b3UgZG8sIGl0IHdpbGwgdXN1YWxseSBjb3JlIGR1bXAgbXlzdGVyaW91c2x5LiBCeSBkZWZhdWx0LCBTV0lHIGxvb2tzIGZvciB0aGUgaGVhZGVyIGZpbGVzICI8dHQ+dGNsLmg8L3R0PiIgYW5kICI8dHQ+dGsuaDwvdHQ+IiwgYnV0IHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gb2YgVGNsL1RrIG1heSB1c2Ugc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWVzIHN1Y2ggYXMgIjx0dD50Y2w3LjUuaDwvdHQ+IiBhbmQgIjx0dD50azQuMS5oPC90dD4iLiBJZiB5b3UgbmVlZCB0byB1c2UgZGlmZmVyZW50IGhlYWRlciBmaWxlcywgeW91IGNhbiB1c2UgdGhlIDx0dD4taHRjbDwvdHQ+IGFuZCA8dHQ+LWh0azwvdHQ+IG9wdGlvbnMgYXMgaW4gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXRjbCAtaHRjbCB0Y2w3LjUuaCAtaHRrIHRrNC4xLmggZXhhbXBsZS5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUlmIHlvdSBhcmUgaW5zdGFsbGluZyBUY2wvVGsgeW91cnNlbGYsIGl0IGlzIG9mdGVuIGVhc2llciB0byBzZXQgdXAgYSBzeW1ib2xpYyBsaW5rcyBiZXR3ZWVuIDx0dD50Y2wuaDwvdHQ+IGFuZCB0aGUgaGVhZGVyIGZpbGVzIGZvciB0aGUgbGF0ZXN0IGluc3RhbGxlZCB2ZXJzaW9uLiAgWW91IG1pZ2h0IGFsc28gYmUgYWJsZSB0byBtYWtlIHN5bWJvbGljIGxpbmtzIHRvIHRoZSBjb3JyZWN0IGZpbGVzIGluIHlvdXIgd29ya2luZyBkaXJlY3RvcnkuPHA+Ci08YSBuYW1lPSJuMTkiPjwvYT48aDM+IENvbXBpbGluZyBhIGR5bmFtaWMgbW9kdWxlIChVbml4KTwvaDM+Ci1UbyBjb21waWxlIGEgZHluYW1pY2FsbHkgbG9hZGFibGUgbW9kdWxlLCB5b3Ugd2lsbCBuZWVkIHRvIGNvbXBpbGUgeW91ciBTV0lHIGV4dGVuc2lvbiBpbnRvIGEgc2hhcmVkIGxpYnJhcnkuIFRoaXMgdXN1YWxseSBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIChzaG93biBmb3IgTGludXgpLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVuaXggJmd0OyBzd2lnIC10Y2wgZXhhbXBsZS5pCi11bml4ICZndDsgZ2NjIC1mcGljIGV4YW1wbGVfd3JhcC5jIGV4YW1wbGUuYyAtSS91c3IvbG9jYWwvaW5jbHVkZQotdW5peCAmZ3Q7IGdjYyAtc2hhcmVkIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlLnNvIAkJCQkJCQkJCSMgTGludXgKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVW5mb3J0dW5hdGVseSwgdGhlIHByb2Nlc3Mgb2YgYnVpbGRpbmcgb2YgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcyB2YXJpZXMgb24gZXZlcnkgc2luZ2xlIG1hY2hpbmUuIFNXSUcgd2lsbCB0cnkgdG8gZ3Vlc3Mgd2hlbiB5b3UgcnVuIGNvbmZpZ3VyZSwgYnV0IGl0IGlzbid0IGFsd2F5cyBzdWNjZXNzZnVsLiBJdCdzIGFsd2F5cyBhIGdvb2QgaWRlYSB0byByZWFkIHRoZSBtYW4gcGFnZXMgb24gdGhlIGNvbXBpbGVyL2xpbmtlciB0byBmaW5kIG91dCBtb3JlIGluZm9ybWF0aW9uLjxwPgotPGEgbmFtZT0ibjIwIj48L2E+PGgzPiBVc2luZyBhIGR5bmFtaWMgbW9kdWxlPC9oMz4KLVRvIHVzZSBhIGR5bmFtaWMgbW9kdWxlLCB5b3Ugd2lsbCBuZWVkIHRvIGxvYWQgaXQgdXNpbmcgdGhlIFRjbCBsb2FkIGNvbW1hbmQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+bG9hZCAuL2V4YW1wbGUuc28gZXhhbXBsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIG5hbWUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5IHdoaWxlIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSAodGhlIHNhbWUgYXMgd2hhdCB5b3Ugc3BlY2lmaWVkIHdpdGggdGhlIDx0dD4lbW9kdWxlPC90dD4gZGlyZWN0aXZlKS4gQXMgYWx0ZXJuYXRpdmUsIHlvdSBjYW4gdHVybiB5b3VyIG1vZHVsZSBpbnRvIGEgVGNsIHBhY2thZ2UuICAgU2VlIHRoZSBzZWN0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBhdCB0aGUgZW5kIG9mIHRoaXMgY2hhcHRlciBmb3IgZGV0YWlscy48cD4KLTxhIG5hbWU9Im4yMSI+PC9hPjxoMz4gU3RhdGljIGxpbmtpbmc8L2gzPgotSWYgeW91ciBtYWNoaW5lIGRvZXMgbm90IHN1cHBvcnQgZHluYW1pYyBsb2FkaW5nIG9yIHlvdSd2ZSB0cmllZCB0byB1c2UgaXQgd2l0aG91dCBzdWNjZXNzLCB5b3UgY2FuIGJ1aWxkIG5ldyB2ZXJzaW9ucyBvZiA8dHQ+dGNsc2g8L3R0PiAodGhlIFRjbCBzaGVsbCkgb3IgPHR0Pndpc2g8L3R0PiAoVGNsL1RrIHNoZWxsKSB3aXRoIHlvdXIgZXh0ZW5zaW9ucyBhZGRlZC4gVG8gZG8gdGhpcywgdXNlIFNXSUcncyA8dHQ+JWluY2x1ZGU8L3R0PiBkaXJlY3RpdmUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBteW1vZHVsZQotLi4uIGRlY2xhcmF0aW9ucyAuLi4KLQotJWluY2x1ZGUgdGNsc2guaSAgICAgLy8gU3VwcG9ydCBjb2RlIGZvciByZWJ1aWxkaW5nIHRjbHNoCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRvIHJlYnVpbGQgdGNsc2gsIHlvdSB3aWxsIG5lZWQgdG8gY29tcGlsZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtdGNsIGV4YW1wbGUuaQotdW5peCAmZ3Q7IGdjYyBleGFtcGxlX3dyYXAuYyBleGFtcGxlLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUwvdXNyL2xvY2FsL2xpYiAtbHRjbCAtbGRsIFwKLQktbG0gLW8gbXlfdGNsc2gKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgU1dJRydzIDx0dD4tbDwvdHQ+IG9wdGlvbiB0byBhZGQgdGhlIHRjbHNoLmkgbGlicmFyeSBmaWxlIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZSBpbnRlcmZhY2UgZmlsZS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtdGNsIC1sdGNsc2guaSBleGFtcGxlLmkKLXVuaXggJmd0OyBnY2MgZXhhbXBsZV93cmFwLmMgZXhhbXBsZS5jIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1ML3Vzci9sb2NhbC9saWIgLWx0Y2wgLWxkbCBcCi0JLWxtIC1vIG15X3RjbHNoCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSA8dHQ+LWxkbDwvdHQ+IG9wdGlvbiB3aWxsIGJlIHJlcXVpcmVkIGlmIHlvdXIgVGNsL1RrIHN1cHBvcnRzIGR5bmFtaWMgbG9hZGluZy4gT24gc29tZSBtYWNoaW5lcyAobW9zdCBub3RhYmx5IFNvbGFyaXMpLGl0IHdpbGwgYWxzbyBiZSBuZWNlc3NhcnkgdG8gYWRkIDx0dD4tbHNvY2tldCAtbG5zbDwvdHQ+IHRvIHRoZSBjb21waWxlIGxpbmUuIFRoaXMgd2lsbCBwcm9kdWNlIGEgbmV3IHZlcnNpb24gb2YgPHR0PnRjbHNoPC90dD4gdGhhdCBpcyBpZGVudGljYWwgdG8gdGhlIG9sZCBvbmUsIGJ1dCB3aXRoIHlvdXIgZXh0ZW5zaW9ucyBhZGRlZC48cD4KLTxwPgotSWYgeW91IGFyZSB1c2luZyBUaywgeW91IHdpbGwgd2FudCB0byByZWJ1aWxkIHRoZSA8dHQ+d2lzaDwvdHQ+IGV4ZWN1dGFibGUgaW5zdGVhZC4gVGhpcyBjYW4gYmUgZG9uZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIG15bW9kdWxlCi0uLi4gZGVjbGFyYXRpb25zIC4uLgotCi0laW5jbHVkZSB3aXNoLmkgICAgICAgLy8gU3VwcG9ydCBjb2RlIGZvciByZWJ1aWxkaW5nIHdpc2gKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MgaXMgc2ltaWxhciBhcyBiZWZvcmUsIGJ1dCBub3cgbG9va3MgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgc3dpZyAtdGNsIGV4YW1wbGUuaQotdW5peCAmZ3Q7IGdjYyBleGFtcGxlX3dyYXAuYyBleGFtcGxlLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUwvdXNyL2xvY2FsL2xpYiAtbHRrIC1sdGNsIFwKLQktbFgxMSAtbGRsIC1sbSAtbyBteV93aXNoCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgY2FzZSB5b3Ugd2lsbCBlbmQgdXAgd2l0aCBhIG5ldyB2ZXJzaW9uIG9mIHRoZSA8dHQ+d2lzaDwvdHQ+IGV4ZWN1dGFibGUgd2l0aCB5b3VyIGV4dGVuc2lvbnMgYWRkZWQuIE1ha2Ugc3VyZSB5b3UgaW5jbHVkZSA8dHQ+LWx0azwvdHQ+LCA8dHQ+LWx0Y2w8L3R0PiwgYW5kIDx0dD4tbFgxMTwvdHQ+IGluIHRoZSBvcmRlciBzaG93bi48cD4KLTxhIG5hbWU9Im4yMiI+PC9hPjxoMz4gQ29tcGlsYXRpb24gcHJvYmxlbXM8L2gzPgotVGNsIGlzIG9uZSBvZiB0aGUgZWFzaWVzdCBsYW5ndWFnZXMgdG8gY29tcGlsZSBleHRlbnNpb25zIGZvci4gVGhlIFRjbCBoZWFkZXIgZmlsZXMgc2hvdWxkIHdvcmsgd2l0aG91dCBwcm9ibGVtcyB1bmRlciBDIGFuZCBDKysuIFBlcmhhcHMgdGhlIG9ubHkgdHJpY2t5IHRhc2sgaXMgdGhhdCBvZiBjb21waWxpbmcgZHluYW1pY2FsbHkgbG9hZGFibGUgbW9kdWxlcyBmb3IgQysrLiBJZiB5b3VyIEMrKyBjb2RlIGhhcyBzdGF0aWMgY29uc3RydWN0b3JzLCBpdCBpcyB1bmxpa2VseSB0byB3b3JrIGF0IGFsbC4gSW4gdGhpcyBjYXNlLCB5b3Ugd2lsbCBuZWVkIHRvIGJ1aWxkIG5ldyB2ZXJzaW9ucyBvZiB0aGUgPHR0PnRjbHNoPC90dD4gb3IgPHR0Pndpc2g8L3R0PiBleGVjdXRhYmxlcyBpbnN0ZWFkLiBZb3UgbWF5IGFsc28gbmVlZCB0byBsaW5rIGFnYWluc3QgdGhlIDx0dD5saWJnY2MuYTwvdHQ+LCA8dHQ+bGliZysrLmE8L3R0PiwgYW5kIGw8dHQ+aWJzdGRjKysuYTwvdHQ+IGxpYnJhcmllcyAoYXNzdW1pbmcgZysrKS48cD4KLTxhIG5hbWU9Im4yMyI+PC9hPjxoMz4gU2V0dGluZyBhIHBhY2thZ2UgcHJlZml4PC9oMz4KLVRvIGF2b2lkIG5hbWVzcGFjZSBwcm9ibGVtcywgeW91IGNhbiBpbnN0cnVjdCBTV0lHIHRvIGFwcGVuZCBhIHBhY2thZ2UgcHJlZml4IHRvIGFsbCBvZiB5b3VyIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLiBUaGlzIGlzIGRvbmUgdXNpbmcgdGhlIC1wcmVmaXggb3B0aW9uIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXRjbCAtcHJlZml4IEZvbyBleGFtcGxlLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSWYgeW91IGhhdmUgYSBmdW5jdGlvbiAiPHR0PmJhcjwvdHQ+IiBpbiB0aGUgU1dJRyBmaWxlLCB0aGUgcHJlZml4IG9wdGlvbiB3aWxsIGFwcGVuZCB0aGUgcHJlZml4IHRvIHRoZSBuYW1lIHdoZW4gY3JlYXRpbmcgYSBjb21tYW5kIGFuZCBjYWxsIGl0ICI8dHQ+Rm9vX2JhcjwvdHQ+Ii4gPHA+Ci08YSBuYW1lPSJuMjQiPjwvYT48aDM+IFVzaW5nIFtpbmNyIFRjbF0gbmFtZXNwYWNlczwvaDM+Ci1BbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGhhdmUgU1dJRyBpbnN0YWxsIHlvdXIgbW9kdWxlIGludG8gYW4gW2luY3IgVGNsXSBuYW1lc3BhY2UgYnkgc3BlY2lmeWluZyB0aGUgPHR0Pi1uYW1lc3BhY2U8L3R0PiBvcHRpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXRjbCAtbmFtZXNwYWNlIGV4YW1wbGUuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1CeSBkZWZhdWx0LCB0aGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIG1vZHVsZSBuYW1lLCBidXQgeW91IGNhbiBvdmVycmlkZSBpdCB1c2luZyB0aGUgPHR0Pi1wcmVmaXg8L3R0PiBvcHRpb24uPHA+Ci08cD4KLVdoZW4gdGhlPHR0PiAtbmFtZXNwYWNlPC90dD4gb3B0aW9uIGlzIHVzZWQsIHRoZSByZXN1bHRpbmcgd3JhcHBlciBjb2RlIGNhbiBiZSBjb21waWxlZCB1bmRlciBib3RoIFRjbCBhbmQgW2luY3IgVGNsXS4gV2hlbiBjb21waWxpbmcgdW5kZXIgVGNsLCB0aGUgbmFtZXNwYWNlIHdpbGwgdHVybiBpbnRvIGEgcGFja2FnZSBwcmVmaXggc3VjaCBhcyBpbiA8dHQ+Rm9vX2JhcjwvdHQ+LiBXaGVuIHJ1bm5pbmcgdW5kZXIgW2luY3IgVGNsXSwgaXQgd2lsbCBiZSBzb21ldGhpbmcgbGlrZSA8dHQ+Rm9vOjpiYXIuPC90dD48cD4KLTxhIG5hbWU9Im4yIj48L2E+PGgyPiBCdWlsZGluZyBUY2wvVGsgRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UPC9oMj4KLUJ1aWxkaW5nIGEgU1dJRyBleHRlbnNpb24gdG8gVGNsL1RrIHVuZGVyIFdpbmRvd3MgOTUvTlQgaXMgcm91Z2hseSBzaW1pbGFyIHRvIHRoZSBwcm9jZXNzIHVzZWQgd2l0aCBVbml4LiAgIE5vcm1hbGx5LCB5b3Ugd2lsbCB3YW50IHRvIHByb2R1Y2UgYSBETEwgdGhhdCBjYW4gYmUgbG9hZGVkIGludG8gdGNsc2ggb3Igd2lzaC4gICAgVGhpcyBzZWN0aW9uIGNvdmVycyB0aGUgcHJvY2VzcyBvZiB1c2luZyBTV0lHIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBDKysgNC54IGFsdGhvdWdoIHRoZSBwcm9jZWR1cmUgbWF5IGJlIHNpbWlsYXIgd2l0aCBvdGhlciBjb21waWxlcnMuPHA+Ci08YSBuYW1lPSJuMjUiPjwvYT48aDM+IFJ1bm5pbmcgU1dJRyBmcm9tIERldmVsb3BlciBTdHVkaW88L2gzPgotSWYgeW91IGFyZSBkZXZlbG9waW5nIHlvdXIgYXBwbGljYXRpb24gd2l0aGluIE1pY3Jvc29mdCBkZXZlbG9wZXIgc3R1ZGlvLCBTV0lHIGNhbiBiZSBpbnZva2VkIGFzIGEgY3VzdG9tIGJ1aWxkIG9wdGlvbi4gICAgICBUaGUgcHJvY2VzcyByb3VnaGx5IGZvbGxvd3MgdGhlc2Ugc3RlcHMgOjxwPgotPHA+Ci08dWw+Ci08bGk+T3BlbiB1cCBhIG5ldyB3b3Jrc3BhY2UgYW5kIHVzZSB0aGUgQXBwV2l6YXJkIHRvIHNlbGVjdCBhIERMTCBwcm9qZWN0LgotPGxpPkFkZCBib3RoIHRoZSBTV0lHIGludGVyZmFjZSBmaWxlICh0aGUgLmkgZmlsZSksIGFueSBzdXBwb3J0aW5nIEMgZmlsZXMsIGFuZCB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlciBmaWxlIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGJ5IFNXSUcgKGllLiA8dHQ+ZXhhbXBsZV93cmFwLmM8L3R0PikuICAgTm90ZSA6IElmIHVzaW5nIEMrKywgY2hvb3NlIGEgZGlmZmVyZW50IHN1ZmZpeCBmb3IgdGhlIHdyYXBwZXIgZmlsZSBzdWNoIGFzIDx0dD5leGFtcGxlX3dyYXAuY3h4PC90dD4uIERvbid0IHdvcnJ5IGlmIHRoZSB3cmFwcGVyIGZpbGUgZG9lc24ndCBleGlzdCB5ZXQtLURldmVsb3BlciBzdHVkaW8gd2lsbCBrZWVwIGEgcmVmZXJlbmNlIHRvIGl0IGFyb3VuZC4KLTxsaT5TZWxlY3QgdGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgYW5kIGdvIHRvIHRoZSBzZXR0aW5ncyBtZW51LiAgIFVuZGVyIHNldHRpbmdzLCBzZWxlY3QgdGhlICJDdXN0b20gQnVpbGQiIG9wdGlvbi4KLTxsaT5FbnRlciAiU1dJRyIgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkLgotPGxpPkVudGVyICI8dHQ+c3dpZyAtdGNsIC1vICQoUHJvakRpcilcJChJbnB1dE5hbWUpX3dyYXAuYyAkKElucHV0UGF0aCk8L3R0PiIgaW4gdGhlICJCdWlsZCBjb21tYW5kKHMpIGZpZWxkIgotPGxpPkVudGVyICI8dHQ+JChQcm9qRGlyKVwkKElucHV0TmFtZSlfd3JhcC5jPC90dD4iIGluIHRoZSAiT3V0cHV0IGZpbGVzKHMpIGZpZWxkIi4KLTxsaT5OZXh0LCBzZWxlY3QgdGhlIHNldHRpbmdzIGZvciB0aGUgZW50aXJlIHByb2plY3QgYW5kIGdvIHRvICJDKys6UHJlcHJvY2Vzc29yIi4gQWRkIHRoZSBpbmNsdWRlIGRpcmVjdG9yaWVzIGZvciB5b3VyIFRjbCBpbnN0YWxsYXRpb24gdW5kZXIgIkFkZGl0aW9uYWwgaW5jbHVkZSBkaXJlY3RvcmllcyIuCi08bGk+RmluYWxseSwgc2VsZWN0IHRoZSBzZXR0aW5ncyBmb3IgdGhlIGVudGlyZSBwcm9qZWN0IGFuZCBnbyB0byAiTGluayBPcHRpb25zIi4gIEFkZCB0aGUgVGNsIGxpYnJhcnkgIGZpbGUgdG8geW91ciBsaW5rIGxpYnJhcmllcy4gIEZvciBleGFtcGxlICI8dHQ+dGNsODAubGliPC90dD4iLiAgQWxzbywgc2V0IHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZSB0byBtYXRjaCB0aGUgbmFtZSBvZiB5b3VyIFRjbCBtb2R1bGUgKGllLiBleGFtcGxlLmRsbCkuCi08bGk+QnVpbGQgeW91ciBwcm9qZWN0LgotPC91bD4KLTxwPgotTm93LCBhc3N1bWluZyBhbGwgd2VudCB3ZWxsLCBTV0lHIHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnZva2VkIHdoZW4geW91IGJ1aWxkIHlvdXIgcHJvamVjdC4gIEFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIGludGVyZmFjZSBmaWxlIHdpbGwgcmVzdWx0IGluIFNXSUcgYmVpbmcgYXV0b21hdGljYWxseSBpbnZva2VkIHRvIHByb2R1Y2UgYSBuZXcgdmVyc2lvbiBvZiB0aGUgd3JhcHBlciBmaWxlLiAgVG8gcnVuIHlvdXIgbmV3IFRjbCBleHRlbnNpb24sIHNpbXBseSBydW4gPHR0PnRjbHNoPC90dD4gb3IgPHR0Pndpc2g8L3R0PiAgYW5kIHVzZSB0aGUgPHR0PmxvYWQ8L3R0PiBjb21tYW5kLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPgotCi1NU0RPUyAmZ3Q7IHRjbHNoODAKLSUgbG9hZCBleGFtcGxlLmRsbAotJSBmYWN0IDQKLTI0Ci0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMjYiPjwvYT48aDM+IFVzaW5nIE5NQUtFPC9oMz4KLUFsdGVybmF0aXZlbHksIFNXSUcgZXh0ZW5zaW9ucyBjYW4gYmUgYnVpbHQgYnkgd3JpdGluZyBhIE1ha2VmaWxlIGZvciBOTUFLRS4gICBUbyBkbyB0aGlzLCBtYWtlIHN1cmUgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgTVNWQysrIGFyZSBhdmFpbGFibGUgYW5kIHRoZSBNU1ZDKysgdG9vbHMgYXJlIGluIHlvdXIgcGF0aC4gICBOb3csIGp1c3Qgd3JpdGUgYSBzaG9ydCBNYWtlZmlsZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgTWFrZWZpbGUgZm9yIGJ1aWxkaW5nIHZhcmlvdXMgU1dJRyBnZW5lcmF0ZWQgZXh0ZW5zaW9ucwotCi1TUkNTICAgICAgICAgID0gZXhhbXBsZS5jCi1JRklMRSAgICAgICAgID0gZXhhbXBsZQotSU5URVJGQUNFICAgICA9ICQoSUZJTEUpLmkKLVdSQVBGSUxFICAgICAgPSAkKElGSUxFKV93cmFwLmMKLQotIyBMb2NhdGlvbiBvZiB0aGUgVmlzdWFsIEMrKyB0b29scyAoMzIgYml0IGFzc3VtZWQpCi0KLVRPT0xTICAgICAgICAgPSBjOlxtc2RldgotVEFSR0VUICAgICAgICA9IGV4YW1wbGUuZGxsCi1DQyAgICAgICAgICAgID0gJChUT09MUylcYmluXGNsLmV4ZQotTElOSyAgICAgICAgICA9ICQoVE9PTFMpXGJpblxsaW5rLmV4ZQotSU5DTFVERTMyICAgICA9IC1JJChUT09MUylcaW5jbHVkZQotTUFDSElORSAgICAgICA9IElYODYKLQotIyBDIExpYnJhcnkgbmVlZGVkIHRvIGJ1aWxkIGEgRExMCi0KLURMTElCQyAgICAgICAgPSBtc3ZjcnQubGliIG9sZG5hbWVzLmxpYiAgCi0KLSMgV2luZG93cyBsaWJyYXJpZXMgdGhhdCBhcmUgYXBwYXJlbnRseSBuZWVkZWQKLVdJTkxJQiAgICAgICAgPSBrZXJuZWwzMi5saWIgYWR2YXBpMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIGNvbWRsZzMyLmxpYiAKLXdpbnNwb29sLmxpYgotCi0jIExpYnJhcmllcyBjb21tb24gdG8gYWxsIERMTHMKLUxJQlMgICAgICAgICAgPSAkKERMTElCQykgJChXSU5MSUIpIAotCi0jIExpbmtlciBvcHRpb25zCi1MT1BUICAgICAgPSAtZGVidWc6ZnVsbCAtZGVidWd0eXBlOmN2IC9OT0RFRkFVTFRMSUIgL1JFTEVBU0UgL05PTE9HTyAvCi1NQUNISU5FOiQoTUFDSElORSkgLWVudHJ5Ol9EbGxNYWluQ1JUU3RhcnR1cEAxMiAtZGxsCi0KLSMgQyBjb21waWxlciBmbGFncwotCi1DRkxBR1MgICAgPSAvWjcgL09kIC9jIC9ub2xvZ28KLVRDTF9JTkNMVURFUyAgPSAtSWQ6XHRjbDguMGEyXGdlbmVyaWMgLUlkOlx0Y2w4LjBhMlx3aW4KLVRDTExJQiAgICAgICAgPSBkOlx0Y2w4LjBhMlx3aW5cdGNsODAubGliCi0KLXRjbDo6Ci0JLi5cLi5cc3dpZyAtdGNsIC1vICQoV1JBUEZJTEUpICQoSU5URVJGQUNFKQotCSQoQ0MpICQoQ0ZMQUdTKSAkKFRDTF9JTkNMVURFUykgJChTUkNTKSAkKFdSQVBGSUxFKQotCXNldCBMSUI9JChUT09MUylcbGliCi0JJChMSU5LKSAkKExPUFQpIC1vdXQ6ZXhhbXBsZS5kbGwgJChMSUJTKSAkKFRDTExJQikgZXhhbXBsZS5vYmogZXhhbXBsZV93cmFwLm9iagotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBidWlsZCB0aGUgZXh0ZW5zaW9uLCBydW4gTk1BS0UgKHlvdSBtYXkgbmVlZCB0byBydW4gdmN2YXJzMzIgZmlyc3QpLiAgIFRoaXMgaXMgYSBwcmV0dHkgbWluaW1hbCBNYWtlZmlsZSwgYnV0IGhvcGVmdWxseSBpdHMgZW5vdWdoIHRvIGdldCB5b3Ugc3RhcnRlZC4gICBXaXRoIGEgbGl0dGxlIHByYWN0aWNlLCB5b3UnbGwgYmUgbWFraW5nIGxvdHMgb2YgVGNsIGV4dGVuc2lvbnMuPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gQmFzaWMgVGNsIEludGVyZmFjZTwvaDI+Ci08YSBuYW1lPSJuMjciPjwvYT48aDM+IEZ1bmN0aW9uczwvaDM+Ci1DIGZ1bmN0aW9ucyBhcmUgdHVybmVkIGludG8gbmV3IFRjbCBjb21tYW5kcyB3aXRoIHRoZSBzYW1lIHVzYWdlIGFzIHRoZSBDIGZ1bmN0aW9uLiBEZWZhdWx0L29wdGlvbmFsIGFyZ3VtZW50cyBhcmUgYWxzbyBhbGxvd2VkLiBBbiBpbnRlcmZhY2UgZmlsZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZXhhbXBsZQotaW50IGZvbyhpbnQgYSk7Ci1kb3VibGUgYmFyIChkb3VibGUsIGRvdWJsZSBiID0gMy4wKTsKLS4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaWxsIGJlIHVzZWQgaW4gVGNsIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c2V0IGEgW2ZvbyAyXQotc2V0IGIgW2JhciAzLjUgLTEuNV0KLXNldCBiIFtiYXIgMy41XSAgICAgICAgICAgICAgIyBOb3RlIDogZGVmYXVsdCBhcmd1bWVudCBpcyB1c2VkIAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGVyZSBpc24ndCBtdWNoIG1vcmUgdG8gc2F5Li4udGhpcyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLjxwPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBHbG9iYWwgdmFyaWFibGVzPC9oMz4KLUZvciBnbG9iYWwgdmFyaWFibGVzLCB0aGluZ3MgYXJlIGEgbGl0dGxlIG1vcmUgY29tcGxpY2F0ZWQuIEZvciB0aGUgZm9sbG93aW5nIEMgZGF0YXR5cGVzLCBTV0lHIHdpbGwgdXNlIFRjbCdzIHZhcmlhYmxlIGxpbmtpbmcgbWVjaGFuaXNtIHRvIHByb3ZpZGUgZGlyZWN0IGFjY2VzcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aW50LCB1bnNpZ25lZCBpbnQsCi1kb3VibGUsCi1jaGFyICosCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gdXNlZCBpbiBhbiBpbnRlcmZhY2UgZmlsZSBhbmQgc2NyaXB0LCBpdCB3aWxsIG9wZXJhdGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gZXhhbXBsZS5pCi0lbW9kdWxlIGV4YW1wbGUKLS4uLgotZG91YmxlIE15X3ZhcmlhYmxlOwotLi4uCi0KLSMgVGNsIHNjcmlwdAotcHV0cyAkTXlfdmFyaWFibGUgICAgICAgICAgICAjIE91dHB1dCB2YWx1ZSBvZiBDIGdsb2JhbCB2YXJpYWJsZQotc2V0IE15X3ZhcmlhYmxlIDUuNSAgICAgICAgICAjIENoYW5nZSB0aGUgdmFsdWUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRm9yIGFsbCBvdGhlciBDIGRhdGF0eXBlcywgU1dJRyB3aWxsIGdlbmVyYXRlIGEgcGFpciBvZiBzZXQvZ2V0IGZ1bmN0aW9ucy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGV4YW1wbGUuaQotc2hvcnQgTXlfc2hvcnQ7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLXdpbGwgYmUgYWNjZXNzZWQgaW4gVGNsIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnB1dHMgW015X3Nob3J0X2dldF0gICAgICAgICAgIyBHZXQgdmFsdWUgb2YgZ2xvYmFsIHZhcmlhYmxlCi1NeV9zaG9ydF9zZXQgNS41ICAgICAgICAgICAgICMgU2V0IHZhbHVlIG9mIGdsb2JhbCB2YXJpYWJsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGlsZSBub3QgdGhlIG1vc3QgZWxlZ2FudCBzb2x1dGlvbiwgdGhpcyBpcyB0aGUgb25seSBzb2x1dGlvbiBmb3Igbm93LiBUY2wncyBub3JtYWwgdmFyaWFibGUgbGlua2luZyBtZWNoYW5pc20gb3BlcmF0ZXMgZGlyZWN0bHkgb24gYSB2YXJpYWJsZXMgYW5kIHdvdWxkIG5vdCB3b3JrIGNvcnJlY3RseSBvbiBkYXRhdHlwZXMgb3RoZXIgdGhhbiB0aGUgMyBiYXNpYyBkYXRhdHlwZXMgc3VwcG9ydGVkIGJ5IFRjbCAoPHR0PmludDwvdHQ+LCA8dHQ+ZG91YmxlPC90dD4sIGFuZCA8dHQ+Y2hhciAqPC90dD4pLjxwPgotPGEgbmFtZT0ibjI5Ij48L2E+PGgzPiBDb25zdGFudHM8L2gzPgotQ29uc3RhbnRzIGFyZSBjcmVhdGVkIGFzIHJlYWQtb25seSB2YXJpYWJsZXMuIEZvciBvZGQgZGF0YXR5cGVzIChub3Qgc3VwcG9ydGVkIGJ5IHRoZSB2YXJpYWJsZSBsaW5raW5nIG1lY2hhbmlzbSksIFNXSUcgZ2VuZXJhdGVzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25zdGFudCBhbmQgdXNlIGl0IGluc3RlYWQgKHlvdSBzaG91bGRuJ3Qgbm90aWNlIHRoaXMgaG93ZXZlciBzaW5jZSBldmVyeXRoaW5nIGlzIGFscmVhZHkgYSBzdHJpbmcgaW4gVGNsKS4gSXQgaXMgbmV2ZXIgbmVjZXNzYXJ5IHRvIHVzZSBhIHNwZWNpYWwgImdldCIgZnVuY3Rpb24gd2l0aCBjb25zdGFudHMuIFVubGlrZSBUY2wgdmFyaWFibGVzLCBjb25zdGFudHMgY2FuIGNvbnRhaW4gcG9pbnRlcnMsIHN0cnVjdHVyZSBhZGRyZXNzZXMsIGZ1bmN0aW9uIHBvaW50ZXJzLCBldGMuLi48cD4KLTxhIG5hbWU9Im4zMCI+PC9hPjxoMz4gUG9pbnRlcnM8L2gzPgotUG9pbnRlcnMgdG8gQy9DKysgb2JqZWN0cyBhcmUgcmVwcmVzZW50ZWQgYXMgY2hhcmFjdGVyIHN0cmluZ3Mgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5fMTAwZjhlMl9WZWN0b3JfcAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BIE5VTEwgcG9pbnRlciBpcyByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nICJOVUxMIi4gTlVMTCBwb2ludGVycyBjYW4gYWxzbyBiZSBleHBsaWNpdGx5IGNyZWF0ZWQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+XzBfVmVjdG9yX3AKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gVGNsIDguMCwgcG9pbnRlcnMgYXJlIHJlcHJlc2VudGVkIHVzaW5nIGEgbmV3IHR5cGUgb2YgVGNsIG9iamVjdCwgYnV0IHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gaXMgdGhlIHNhbWUgKGFuZCBpcyBpbnRlcmNoYW5nYWJsZSkuIEFzIGEgZ2VuZXJhbCwgZGlyZWN0IG1hbmlwdWxhdGlvbiBvZiBwb2ludGVyIHZhbHVlcyBpcyBkaXNjb3VyYWdlZC4gPHA+Ci08YSBuYW1lPSJuMzEiPjwvYT48aDM+IFN0cnVjdHVyZXMgPC9oMz4KLVNXSUcgZ2VuZXJhdGVzIGEgYmFzaWMgbG93LWxldmVsIGludGVyZmFjZSB0byBDIHN0cnVjdHVyZXMuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zdHJ1Y3QgVmVjdG9yIHsKLQlkb3VibGUgeCx5LHo7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1nZXRzIG1hcHBlZCBpbnRvIHRoZSBmb2xsb3dpbmcgY29sbGVjdGlvbiBvZiBDIGZ1bmN0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+ZG91YmxlIFZlY3Rvcl94X2dldChWZWN0b3IgKm9iaikKLWRvdWJsZSBWZWN0b3JfeF9zZXQoVmVjdG9yICpvYmosIGRvdWJsZSB4KQotZG91YmxlIFZlY3Rvcl95X2dldChWZWN0b3IgKm9iaikKLWRvdWJsZSBWZWN0b3JfeV9zZXQoVmVjdG9yICpvYmosIGRvdWJsZSB5KQotZG91YmxlIFZlY3Rvcl96X2dldChWZWN0b3IgKm9iaikKLWRvdWJsZSBWZWN0b3Jfel9zZXQoVmVjdG9yICpvYmosIGRvdWJsZSB6KQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGVzZSBmdW5jdGlvbnMgYXJlIHRoZW4gdXNlZCBpbiB0aGUgcmVzdWx0aW5nIFRjbCBpbnRlcmZhY2UuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIHYgaXMgYSBWZWN0b3IgdGhhdCBnb3QgY3JlYXRlZCBzb21laG93Ci0lIFZlY3Rvcl94X2dldCAkdgotMy41Ci0lIFZlY3Rvcl94X3NldCAkdiA3LjggICAgICAgICAgICAjIENoYW5nZSB4IGNvbXBvbmVudAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TaW1pbGFyIGFjY2VzcyBpcyBwcm92aWRlZCBmb3IgdW5pb25zIGFuZCB0aGUgZGF0YSBtZW1iZXJzIG9mIEMrKyBjbGFzc2VzLjxwPgotPGEgbmFtZT0ibjMyIj48L2E+PGgzPiBDKysgQ2xhc3NlczwvaDM+Ci1DKysgY2xhc3NlcyBhcmUgaGFuZGxlZCBieSBidWlsZGluZyBhIHNldCBvZiBsb3cgbGV2ZWwgYWNjZXNzb3IgZnVuY3Rpb25zLiBDb25zaWRlciB0aGUgZm9sbG93aW5nIGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWNsYXNzIExpc3QgewotcHVibGljOgotICBMaXN0KCk7Ci0gIH5MaXN0KCk7Ci0gIGludCAgc2VhcmNoKGNoYXIgKml0ZW0pOwotICB2b2lkIGluc2VydChjaGFyICppdGVtKTsKLSAgdm9pZCByZW1vdmUoY2hhciAqaXRlbSk7Ci0gIGNoYXIgKmdldChpbnQgbik7Ci0gIGludCAgbGVuZ3RoOwotc3RhdGljIHZvaWQgcHJpbnQoTGlzdCAqbCk7Ci19OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGVuIHdyYXBwZWQgYnkgU1dJRywgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIGNyZWF0ZWQgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPkxpc3QgICAgKm5ld19MaXN0KCk7Ci12b2lkICAgICBkZWxldGVfTGlzdChMaXN0ICpsKTsKLWludCAgICAgIExpc3Rfc2VhcmNoKExpc3QgKmwsIGNoYXIgKml0ZW0pOwotdm9pZCAgICAgTGlzdF9pbnNlcnQoTGlzdCAqbCwgY2hhciAqaXRlbSk7Ci12b2lkICAgICBMaXN0X3JlbW92ZShMaXN0ICpsLCBjaGFyICppdGVtKTsKLWNoYXIgICAgKkxpc3RfZ2V0KExpc3QgKmwsIGludCBuKTsKLWludCAgICAgIExpc3RfbGVuZ3RoX2dldChMaXN0ICpsKTsKLWludCAgICAgIExpc3RfbGVuZ3RoX3NldChMaXN0ICpsLCBpbnQgbik7Ci12b2lkICAgICBMaXN0X3ByaW50KExpc3QgKmwpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaXRoaW4gVGNsLCB3ZSBjYW4gdXNlIHRoZSBmdW5jdGlvbnMgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJSBzZXQgbCBbbmV3X0xpc3RdCi0lIExpc3RfaW5zZXJ0ICRsIEFsZQotJSBMaXN0X2luc2VydCAkbCBTdG91dAotJSBMaXN0X2luc2VydCAkbCBMYWdlcgotJSBMaXN0X3ByaW50ICRsCi1MYWdlcgotU3RvdXQKLUFsZQotJSBwdXRzIFtMaXN0X2xlbmd0aF9nZXQgJGxdCi0zCi0lIHB1dHMgJGwKLV8xMDA4NTYwX0xpc3RfcAotJSAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQysrIG9iamVjdHMgYXJlIHJlYWxseSBqdXN0IHBvaW50ZXJzICh3aGljaCBhcmUgcmVwcmVzZW50ZWQgYXMgc3RyaW5ncykuIE1lbWJlciBmdW5jdGlvbnMgYW5kIGRhdGEgYXJlIGFjY2Vzc2VkIGJ5IHNpbXBseSBwYXNzaW5nIGEgcG9pbnRlciBpbnRvIGEgY29sbGVjdGlvbiBvZiBhY2Nlc3NvciBmdW5jdGlvbnMgdGhhdCB0YWtlIHRoZSBwb2ludGVyIGFzIHRoZSBmaXJzdCBhcmd1bWVudC48cD4KLTxwPgotV2hpbGUgc29tZXdoYXQgcHJpbWl0aXZlLCB0aGUgbG93LWxldmVsIFNXSUcgaW50ZXJmYWNlIHByb3ZpZGVzIGRpcmVjdCBhbmQgZmxleGlibGUgYWNjZXNzIHRvIGFsbW9zdCBhbnkgQysrIG9iamVjdC4gQXMgaXQgdHVybnMgb3V0LCBpdCBpcyBwb3NzaWJsZSB0byBkbyBzb21lIHJhdGhlciBhbWF6aW5nIHRoaW5ncyB3aXRoIHRoaXMgaW50ZXJmYWNlIGFzIHdpbGwgYmUgc2hvd24gaW4gc29tZSBvZiB0aGUgbGF0ZXIgZXhhbXBsZXMuIFNXSUcgMS4xIGFsc28gZ2VuZXJhdGVzIGFuIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UgdGhhdCBjYW4gYmUgdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgYmFzaWMgaW50ZXJmYWNlIGp1c3QgZGVzY3JpYmVkIGhlcmUuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gVGhlIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2U8L2gyPgotV2l0aCBTV0lHIDEuMSwgYSBuZXcgb2JqZWN0IG9yaWVudGVkIGludGVyZmFjZSB0byBDIHN0cnVjdHVyZXMgYW5kIEMrKyBjbGFzc2VzIGlzIHN1cHBvcnRlZC4gVGhpcyBpbnRlcmZhY2Ugc3VwcGxlbWVudHMgdGhlIGxvdy1sZXZlbCBTV0lHIGludGVyZmFjZSBhbHJlYWR5IGRlZmluZWQtLWluIGZhY3QsIGJvdGggY2FuIGJlIHVzZWQgc2ltdWx0YW5lb3VzbHkuIFRvIGlsbHVzdHJhdGUgdGhpcyBpbnRlcmZhY2UsIGNvbnNpZGVyIG91ciBwcmV2aW91cyA8dHQ+TGlzdDwvdHQ+IGNsYXNzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLSAgTGlzdCgpOwotICB+TGlzdCgpOwotICBpbnQgIHNlYXJjaChjaGFyICppdGVtKTsKLSAgdm9pZCBpbnNlcnQoY2hhciAqaXRlbSk7Ci0gIHZvaWQgcmVtb3ZlKGNoYXIgKml0ZW0pOwotICBjaGFyICpnZXQoaW50IG4pOwotICBpbnQgIGxlbmd0aDsKLXN0YXRpYyB2b2lkIHByaW50KExpc3QgKmwpOwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVXNpbmcgdGhlIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UgcmVxdWlyZXMgbm8gYWRkaXRpb25hbCBtb2RpZmljYXRpb25zIG9yIHJlY29tcGlsYXRpb24gb2YgdGhlIFNXSUcgbW9kdWxlICh0aGUgZnVuY3Rpb25zIGFyZSBqdXN0IHVzZWQgZGlmZmVyZW50bHkpLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBDcmVhdGluZyBuZXcgb2JqZWN0czwvaDM+Ci1UaGUgbmFtZSBvZiB0aGUgY2xhc3MgYmVjb21lcyBhIG5ldyBjb21tYW5kIGZvciBjcmVhdGluZyBhbiBvYmplY3QuIFRoZXJlIGFyZSA1IG1ldGhvZHMgZm9yIGNyZWF0aW5nIGFuIG9iamVjdCAoPHR0Pk15T2JqZWN0IDwvdHQ+aXMgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgQysrIGNsYXNzKSA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5NeU9iamVjdCBvICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlcyBhIG5ldyBvYmplY3QgYG8nIAotCi1NeU9iamVjdCBvIC10aGlzICRvYmpwdHIgICAgICMgVHVybiBhIHBvaW50ZXIgdG8gYW4gZXhpc3RpbmcgQysrIG9iamVjdCBpbnRvIGEgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGNsIG9iamVjdCBgbycKLQotTXlPYmplY3QgLXRoaXMgJG9ianB0ciAgICAgICAjIFR1cm4gdGhlIHBvaW50ZXIgJG9ianB0ciBpbnRvIGEgVGNsICJvYmplY3QiCi0KLU15T2JqZWN0IC1hcmdzIGFyZ3MgICAgICAgICAgIyBDcmVhdGUgYSBuZXcgb2JqZWN0IGFuZCBwaWNrIGEgbmFtZSBmb3IgaXQuIEEgaGFuZGxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2lsbCBiZSByZXR1cm5lZCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhlIHBvaW50ZXIgdmFsdWUuCi0KLU15T2JqZWN0ICAgICAgICAgICAgICAgICAgICAgIyBUaGUgc2FtZSBhcyBNeU9iamVjdCAtYXJncywgYnV0IGZvciBjb25zdHJ1Y3RvcnMgdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRha2Ugbm8gYXJndW1lbnRzLgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaHVzLCBmb3Igb3VyIExpc3QgY2xhc3MsIHdlIGNhbiBjcmVhdGUgbmV3IExpc3Qgb2JqZWN0cyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5MaXN0IGwgICAgICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIGEgbmV3IGxpc3QgbAotCi1zZXQgbGlzdHB0ciBbbmV3X0xpc3RdICAgICAgICMgQ3JlYXRlIGEgbmV3IExpc3QgdXNpbmcgbG93IGxldmVsIGludGVyZmFjZQotTGlzdCBsMiAtdGhpcyAkbGlzdHB0ciAgICAgICAjIFR1cm4gaXQgaW50byBhIExpc3Qgb2JqZWN0IG5hbWVkIGBsMicKLQotc2V0IGwzIFtMaXN0XSAgICAgICAgICAgICAgICAjIENyZWF0ZSBhIG5ldyBsaXN0LiBUaGUgbmFtZSBvZiB0aGUgbGlzdCBpcyBpbiAkbDMKLQotTGlzdCAtdGhpcyAkbGlzdHB0ciAgICAgICAgICAjIFR1cm4gJGxpc3RwdHIgaW50byBhIFRjbCBvYmplY3Qgb2YgdGhlIHNhbWUgbmFtZQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1Ob3cgYXNzdW1pbmcgeW91J3JlIG5vdCBjb21wbGV0ZWx5IGNvbmZ1c2VkIGF0IHRoaXMgcG9pbnQsIHRoZSBiZXN0IHdheSB0byB0aGluayBvZiB0aGlzIGlzIHRoYXQgdGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IHdheXMgb2YgcmVwcmVzZW50aW5nIGFuIG9iamVjdC4gICBPbmUgYXBwcm9hY2ggaXMgdG8gc2ltcGx5IHVzZSB0aGUgcG9pbnRlciB2YWx1ZSBhcyB0aGUgbmFtZSBvZiBhbiBvYmplY3QuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5fMTAwZThmOF9MaXN0X3AKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIHNlY29uZCBhcHByb2FjaCBpcyB0byBhbGxvdyB5b3UgdG8gcGljayBhIG5hbWUgZm9yIGFuIG9iamVjdCBzdWNoIGFzICJmb28iLiAgIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29uc3RydWN0b3JzIGFyZSByZWFsbHkganVzdCBtZWNoYW5pc20gZm9yIHVzaW5nIGVpdGhlciBhcHByb2FjaC48cD4KLTxhIG5hbWU9Im4zNCI+PC9hPjxoMz4gSW52b2tpbmcgbWVtYmVyIGZ1bmN0aW9uczwvaDM+Ci1NZW1iZXIgZnVuY3Rpb25zIGFyZSBpbnZva2VkIHVzaW5nIHRoZSBuYW1lIG9mIHRoZSBvYmplY3QgZm9sbG93ZWQgYnkgdGhlIG1ldGhvZCBuYW1lIGFuZCBhbnkgYXJndW1lbnRzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBMaXN0IGwKLSUgbCBpbnNlcnQgIkJvYiIKLSUgbCBpbnNlcnQgIk1hcnkiCi0lIGwgc2VhcmNoICJEYXZlIgotMAotJSAuLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotT3IgaWYgeW91IGxldCBTV0lHIGdlbmVyYXRlIHRoZSBuYW1lIG9mIHRoZSBvYmplY3QuLi4gKHRoaXMgaXMgdGhlIHBvaW50ZXIgbW9kZWwpPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgbCBbTGlzdF0KLSUgJGwgaW5zZXJ0ICJCb2IiICAgICAgICAgICAgIyBOb3RlICRsIGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBvYmplY3QKLSUgJGwgaW5zZXJ0ICJNYXJ5IgotJSAkbCBzZWFyY2ggIkRhdmUiCi0wCi0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMzUiPjwvYT48aDM+IERlbGV0aW5nIG9iamVjdHM8L2gzPgotU2luY2Ugb2JqZWN0cyBhcmUgY3JlYXRlZCBieSBhZGRpbmcgbmV3IFRjbCBjb21tYW5kcywgdGhleSBjYW4gYmUgZGVsZXRlZCBieSBzaW1wbHkgcmVuYW1pbmcgdGhlbS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgcmVuYW1lIGwgIiIgICAgICAgICAgICAgICAgIyBEZXN0cm95IGxpc3Qgb2JqZWN0IGBsJwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1TV0lHIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIHRoZSBjb3JyZXNwb25kaW5nIEMvQysrIGRlc3RydWN0b3IsIHdpdGggb25lIGNhdmVhdC0tU1dJRyB3aWxsIG5vdCBkZXN0cm95IGFuIG9iamVjdCBpZiB5b3UgY3JlYXRlZCBpdCBmcm9tIGFuIGFscmVhZHkgZXhpc3RpbmcgcG9pbnRlciAoaWYgeW91IGNhbGxlZCB0aGUgY29uc3RydWN0b3IgdXNpbmcgdGhlIC10aGlzIG9wdGlvbikuIFNpbmNlIHRoZSBwb2ludGVyIGFscmVhZHkgZXhpc3RlZCB3aGVuIHlvdSBjcmVhdGVkIHRoZSBUY2wgb2JqZWN0LCBUY2wgZG9lc24ndCBvd24gdGhlIG9iamVjdCBzbyBpdCB3b3VsZCBwcm9iYWJseSBiZSBhIGJhZCBpZGVhIHRvIGRlc3Ryb3kgaXQuPHA+Ci08YSBuYW1lPSJuMzYiPjwvYT48aDM+IEFjY2Vzc2luZyBtZW1iZXIgZGF0YTwvaDM+Ci1NZW1iZXIgZGF0YSBvZiBhbiBvYmplY3QgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIHRoZSA8dHQ+Y2dldDwvdHQ+IG1ldGhvZC4gVGhlIGFwcHJvYWNoIGlzIHF1aXRlIHNpbWlsYXIgdG8gdGhhdCB1c2VkIGluIFtpbmNyIFRjbF0gYW5kIG90aGVyIFRjbCBleHRlbnNpb25zLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBsIGNnZXQgLWxlbmd0aCAgICAgICAgICAgICAjIEdldCB0aGUgbGVuZ3RoIG9mIHRoZSBsaXN0Ci0xMwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PmNnZXQ8L3R0PiBtZXRob2QgY3VycmVudGx5IG9ubHkgYWxsb3dzIHJldHJpZXZhbCBvZiBvbmUgbWVtYmVyIGF0IGEgdGltZS4gRXh0cmFjdGluZyBtdWx0aXBsZSBtZW1iZXJzIHdpbGwgcmVxdWlyZSByZXBlYXRlZCBjYWxscy48cD4KLTxwPgotVGhlIG1lbWJlciA8dHQ+LXRoaXM8L3R0PiBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUgb2JqZWN0IHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIG90aGVyIFNXSUcgZnVuY3Rpb25zLiBUaHVzLCB0aGUgZm9sbG93aW5nIGNhbGwgd291bGQgYmUgbGVnYWw8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSUgTGlzdCBsICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIGEgbmV3IGxpc3Qgb2JqZWN0Ci0lIGwgaW5zZXJ0IE1pa2UKLSUgTGlzdF9wcmludCBbbCBjZ2V0IC10aGlzXSAgICAgICAgICMgUHJpbnQgaXQgb3V0IHVzaW5nIGxvdy1sZXZlbCBmdW5jdGlvbgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjM3Ij48L2E+PGgzPiBDaGFuZ2luZyBtZW1iZXIgZGF0YTwvaDM+Ci1UbyBjaGFuZ2UgdGhlIHZhbHVlIG9mIG1lbWJlciBkYXRhLCB0aGUgPHR0PmNvbmZpZ3VyZTwvdHQ+IG1ldGhvZCBjYW4gYmUgdXNlZC4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgbCBjb25maWd1cmUgLWxlbmd0aCAxMCAgICAgIyBDaGFuZ2UgbGVuZ3RoIHRvIDEwIChwcm9iYWJseSBub3QgYSBnb29kIGlkZWEsIGJ1dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBvc3NpYmxlKS4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gYSBzdHJ1Y3R1cmUgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1zdHJ1Y3QgVmVjdG9yIHsKLQlkb3VibGUgeCwgeSwgejsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLXlvdSBjYW4gY2hhbmdlIHRoZSB2YWx1ZSBvZiBhbGwgb3Igc29tZSBvZiB0aGUgbWVtYmVycyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHYgY29uZmlndXJlIC14IDMuNSAteSAyIC16IC0xLjAKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIG9yZGVyIG9mIGF0dHJpYnV0ZXMgZG9lcyBub3QgbWF0dGVyLiAgPHA+Ci08YSBuYW1lPSJuMzgiPjwvYT48aDM+IFJlbGF0aW9uc2hpcCB3aXRoIHBvaW50ZXJzPC9oMz4KLVRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlIGlzIG1vc3RseSBjb21wYXRpYmxlIHdpdGggYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgcG9pbnRlciB2YWx1ZXMgYXMgYXJndW1lbnRzLiBIZXJlIGFyZSBhIGNvdXBsZSBvZiB0aGluZ3MgdG8ga2VlcCBpbiBtaW5kIDo8cD4KLTxwPgotPHVsPgotPGxpPklmIHlvdSBleHBsaWNpdGx5IGdhdmUgYSBuYW1lIHRvIGFuIG9iamVjdCwgdGhlIHBvaW50ZXIgdmFsdWUgY2FuIGJlIHJldHJpZXZlZCB1c2luZyB0aGUgYDx0dD5jZ2V0IC10aGlzPC90dD4nIG1ldGhvZC4gVGhlIHBvaW50ZXIgdmFsdWUgaXMgd2hhdCB5b3Ugc2hvdWxkIGdpdmUgdG8gb3RoZXIgU1dJRyBnZW5lcmF0ZWQgZnVuY3Rpb25zIGlmIG5lY2Vzc2FyeS4KLTxsaT5JZiB5b3UgbGV0IFNXSUcgZ2VuZXJhdGUgdGhlIG5hbWUgb2YgYW4gb2JqZWN0IGZvciB5b3UsIHRoZW4gdGhlIG5hbWUgb2YgdGhlIG9iamVjdCBpcyB0aGUgc2FtZSBhcyB0aGUgcG9pbnRlciB2YWx1ZS4gVGhpcyBpcyB0aGUgcHJlZmVycmVkIGFwcHJvYWNoLgotPGxpPklmIHlvdSBoYXZlIGEgcG9pbnRlciB2YWx1ZSBidXQgaXQncyBub3QgYSBUY2wgb2JqZWN0LCB5b3UgY2FuIHR1cm4gaXQgaW50byBvbmUgYnkgY2FsbGluZyB0aGUgY29uc3RydWN0b3Igd2l0aCB0aGUgYDx0dD4tdGhpczwvdHQ+JyBvcHRpb24uCi08L3VsPgotPHA+Ci1IZXJlIGlzIGEgc2NyaXB0IHRoYXQgaWxsdXN0cmF0ZXMgaG93IHRoZXNlIHRoaW5ncyB3b3JrIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIEV4YW1wbGUgMSA6IFVzaW5nIGEgbmFtZWQgb2JqZWN0Ci0KLUxpc3QgbCAgICAgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgYSBuZXcgbGlzdAotbCBpbnNlcnQgRGF2ZSAgICAgICAgICAgICAgICAjIENhbGwgc29tZSBtZXRob2RzCi1sIGluc2VydCBKYW5lCQotbCBpbnNlcnQgUGF0Ci1MaXN0X3ByaW50IFtsIGNnZXQgLXRoaXNdICAgICMgQ2FsbCBhIHN0YXRpYyBtZXRob2QgKHdoaWNoIHJlcXVpcmVzIHRoZSBwb2ludGVyIHZhbHVlKQotCi0jIEV4YW1wbGUgMjogTGV0IFNXSUcgcGljayBhIG5hbWUKLQotc2V0IGwgW0xpc3RdICAgICAgICAgICAgICAgICAjIENyZWF0ZSBhIG5ldyBsaXN0Ci0kbCBpbnNlcnQgRGF2ZSAgICAgICAgICAgICAgICMgQ2FsbCBzb21lIG1ldGhvZHMKLSRsIGluc2VydCBKYW5lCi0kbCBpbnNlcnQgUGF0Ci1MaXN0X3ByaW50ICRsICAgICAgICAgICAgICAgICMgQ2FsbCBzdGF0aWMgbWV0aG9kIChuYW1lIG9mIG9iamVjdCBpcyBzYW1lIGFzIHBvaW50ZXIpCi0KLSMgRXhhbXBsZSAzOiBBbHJlYWR5IGV4aXN0aW5nIG9iamVjdAotc2V0IGwgW25ld19MaXN0XSAgICAgICAgICAgICAjIENyZWF0ZSBhIHJhdyBvYmplY3QgdXNpbmcgbG93LWxldmVsIGludGVyZmFjZQotTGlzdF9pbnNlcnQgJGwgRGF2ZSAgICAgICAgICAjIENhbGwgc29tZSBtZXRob2RzICh1c2luZyBsb3ctbGV2ZWwgZnVuY3Rpb25zKQotTGlzdCAtdGhpcyAkbCAgICAgICAgICAgICAgICAjIFR1cm4gaXQgaW50byBhIFRjbCBvYmplY3QgaW5zdGVhZAotJGwgaW5zZXJ0IEphbmUKLSRsIGluc2VydCBQYXJ0Ci1MaXN0X3ByaW50ICRsICAgICAgICAgICAgICAgICMgQ2FsbCBzdGF0aWMgbWV0aG9kICh1c2VzIHBvaW50ZXIgdmFsdWUgYXMgYmVmb3JlKS4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotPGEgbmFtZT0ibjM5Ij48L2E+PGgzPiBQZXJmb3JtYW5jZSBjb25jZXJucyBhbmQgZGlzYWJsaW5nIHRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlPC9oMz4KLVRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlIGlzIG1haW5seSBwcm92aWRlZCBmb3IgZWFzZSBvZiBwcm9ncmFtbWluZyBhdCB0aGUgZXhwZW5zZSBvZiBpbnRyb2R1Y2luZyBtb3JlIG92ZXJoZWFkIGFuZCBpbmNyZWFzZWQgY29kZSBzaXplIChDIGNvZGUgdGhhdCBpcykuIElmIHlvdSBhcmUgY29uY2VybmVkIGFib3V0IHRoZXNlIGlzc3VlcyB1c2UgdGhlIGJhc2ljIFNXSUcgaW50ZXJmYWNlIGluc3RlYWQuIEl0IHByb3ZpZGVzIGRpcmVjdCBhY2Nlc3MgYW5kIGlzIG11Y2ggZmFzdGVyLiBBcyBpdCB0dXJucyBvdXQsIGl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIGFuIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UgZGlyZWN0bHkgaW4gVGNsIGFzIHdlbGwtLWFuIGV4YW1wbGUgd2UnbGwgcmV0dXJuIHRvIGEgbGl0dGxlIGxhdGVyLjxwPgotPHA+Ci1UbyBkaXNhYmxlIHRoZSBvYmplY3Qgb3JpZW50ZWQgaW50ZXJmYWNlLCBydW4gU1dJRyB3aXRoIHRoZSA8dHQ+LW5vb2JqZWN0PC90dD4gb3B0aW9uLiBUaGlzIHdpbGwgc3RyaXAgb3V0IGFsbCBvZiB0aGUgZXh0cmEgY29kZSBhbmQgcHJvZHVjZSBvbmx5IHRoZSBsb3ctbGV2ZWwgaW50ZXJmYWNlLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IEFib3V0IHRoZSBleGFtcGxlczwvaDI+Ci1UaGUgbmV4dCBmZXcgc2VjdGlvbnMgY292ZXIgVGNsIGV4YW1wbGVzIG9mIHZhcnlpbmcgY29tcGxleGl0eS4gVGhlc2UgYXJlIHByaW1hcmlseSBkZXNpZ25lZCB0byBpbGx1c3RyYXRlIGhvdyBTV0lHIGNhbiBiZSB1c2VkIHRvIGludGVncmF0ZSBDL0MrKyBhbmQgVGNsIGluIGEgdmFyaWV0eSBvZiB3YXlzLiBTb21lIG9mIHRoZSB0aGluZ3MgdGhhdCB3aWxsIGJlIGNvdmVyZWQgYXJlIDo8cD4KLTxwPgotPHVsPgotPGxpPkNvbnRyb2xsaW5nIEMgcHJvZ3JhbXMgd2l0aCBUY2wKLTxsaT5CdWlsZGluZyBDIGRhdGEgc3RydWN0dXJlcyBpbiBUY2wuCi08bGk+VXNlIG9mIEMgb2JqZWN0cyB3aXRoIFRrCi08bGk+V3JhcHBpbmcgYSBDIGxpYnJhcnkgKE9wZW5HTCBpbiB0aGlzIGNhc2UpCi08bGk+QWNjZXNzaW5nIGFycmF5cyBhbmQgb3RoZXIgY29tbW9uIGRhdGEgc3RydWN0dXJlcwotPGxpPlVzaW5nIFRjbCB0byBidWlsZCBuZXcgVGNsIGludGVyZmFjZXMgdG8gQyBwcm9ncmFtcy4KLTxsaT5Nb2RpZnlpbmcgU1dJRydzIGhhbmRsaW5nIG9mIGRhdGF0eXBlcy4KLTxsaT5BbmQgYSBidW5jaCBvZiBvdGhlciBjb29sIHN0dWZmLgotPC91bD4KLTxhIG5hbWU9Im42Ij48L2E+PGgyPiBCaW5hcnkgdHJlZXMgaW4gVGNsPC9oMj4KLUluIHRoaXMgZXhhbXBsZSwgd2Ugc2hvdyBUY2wgY2FuIGJlIHVzZWQgdG8gbWFuaXB1bGF0ZSBiaW5hcnkgdHJlZXMgaW1wbGVtZW50ZWQgaW4gQy4gVGhpcyB3aWxsIGludm9sdmUgYWNjZXNzaW5nIEMgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBmdW5jdGlvbnMuPHA+Ci08YSBuYW1lPSJuNDAiPjwvYT48aDM+IEMgZmlsZXM8L2gzPgotV2Ugd2lsbCBidWlsZCB0cmVlcyB1c2luZyB0aGUgZm9sbG93aW5nIEMgaGVhZGVyIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIHRyZWUuaCAqLwotdHlwZWRlZiBzdHJ1Y3QgTm9kZSBOb2RlOwotc3RydWN0IE5vZGUgewotCWNoYXIgICAqa2V5OwotCWNoYXIgICAqdmFsdWU7Ci0JTm9kZSAgICpsZWZ0OwotCU5vZGUgICAqcmlnaHQ7Ci19OwotCi10eXBlZGVmIHN0cnVjdCBUcmVlIHsKLQlOb2RlICAgKmhlYWQ7ICAvKiAgU3RhcnRpbmcgbm9kZSAqLwotCU5vZGUgICAqejsgICAgIC8qIEVuZGluZyBub2RlIChhdCBsZWF2ZXMpICovCi19IFRyZWU7Ci0KLWV4dGVybiBOb2RlICpuZXdfTm9kZShjaGFyICprZXksIGNoYXIgKnZhbHVlKTsKLWV4dGVybiBUcmVlICpuZXdfVHJlZSgpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgQyBmdW5jdGlvbnMgdG8gY3JlYXRlIG5ldyBub2RlcyBhbmQgdHJlZXMgYXJlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIEZpbGUgOiB0cmVlLmMgKi8KLSNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDsKLSNpbmNsdWRlICJ0cmVlLmgiCi1Ob2RlICpuZXdfTm9kZShjaGFyICprZXksIGNoYXIgKnZhbHVlKSB7Ci0JTm9kZSAqbjsKLQluID0gKE5vZGUgKikgbWFsbG9jKHNpemVvZihOb2RlKSk7Ci0Jbi0mZ3Q7a2V5ID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbihrZXkpKzEpOwotCW4tJmd0O3ZhbHVlID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbih2YWx1ZSkrMSk7Ci0Jc3RyY3B5KG4tJmd0O2tleSxrZXkpOwotCXN0cmNweShuLSZndDt2YWx1ZSx2YWx1ZSk7Ci0Jbi0mZ3Q7bGVmdCA9IDA7Ci0Jbi0mZ3Q7cmlnaHQgPSAwOwotCXJldHVybiBuOwotfTsKLVRyZWUgKm5ld19UcmVlKCkgewotCVRyZWUgKnQ7Ci0JdCA9IChUcmVlICopIG1hbGxvYyhzaXplb2YoVHJlZSkpOwotCXQtJmd0O2hlYWQgPSBuZXdfTm9kZSgiIiwiX19oZWFkX18iKTsKLQl0LSZndDt6ID0gbmV3X05vZGUoIl9fZW5kX18iLCJfX2VuZF9fIik7Ci0JdC0mZ3Q7aGVhZC0mZ3Q7cmlnaHQgPSB0LSZndDt6OwotCXQtJmd0O3otJmd0O2xlZnQgPSB0LSZndDt6OwotCXQtJmd0O3otJmd0O3JpZ2h0ID0gdC0mZ3Q7ejsKLQlyZXR1cm4gdDsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im40MSI+PC9hPjxoMz4gTWFraW5nIGEgcXVpY2sgYSBkaXJ0eSBUY2wgbW9kdWxlPC9oMz4KLVRvIG1ha2UgYSBxdWljayBUY2wgbW9kdWxlIHdpdGggdGhlc2UgZnVuY3Rpb25zLCB3ZSBjYW4gZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gZmlsZSA6IHRyZWUuaQotJW1vZHVsZSB0cmVlCi0lewotI2luY2x1ZGUgInRyZWUuaCIKLSV9Ci0laW5jbHVkZSB0cmVlLmggICAgICAgLy8gSnVzdCBncmFiIGhlYWRlciBmaWxlIHNpbmNlIGl0J3MgZmFpcmx5IHNpbXBsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyBidWlsZCB0aGUgbW9kdWxlLCBydW4gU1dJRyBhcyBmb2xsb3dzIGFuZCBjb21waWxlIHRoZSByZXN1bHRpbmcgb3V0cHV0IDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXRjbCAtbHRjbHNoLmkgdHJlZS5pCi0lIGdjYyB0cmVlLmMgdHJlZV93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUgLUwvdXNyL2xvY2FsL2xpYiAtbHRjbCAtbG0gLW8gbXlfdGNsc2gKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2UgY2FuIG5vdyB0cnkgb3V0IHRoZSBtb2R1bGUgaW50ZXJhY3RpdmVseSBieSBqdXN0IHJ1bm5pbmcgdGhlIG5ldyBgPHR0Pm15X3RjbHNoPC90dD4nIGV4ZWN1dGFibGUuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dW5peCAmZ3Q7IG15X3RjbHNoCi0lIHNldCB0IFtuZXdfVHJlZV0gICAgICAgICAgICAgICAgICAjIENyZWF0ZSBhIG5ldyB0cmVlCi1fODA1MzE5OF9UcmVlX3AKLSUgc2V0IG4gW1RyZWVfaGVhZF9nZXQgJHRdICAgICAgICAgICMgR2V0IGZpcnN0IG5vZGUKLV84MDUzMWE4X05vZGVfcAotJSBwdXRzIFtOb2RlX3ZhbHVlX2dldCAkbl0gICAgICAgICAgIyBHZXQgaXRzIHZhbHVlCi1fX2hlYWRfXwotJSBOb2RlIC10aGlzICRuCi0lICRuIGNnZXQgLXZhbHVlICAgICAgICAgICAgICAgICAgICMgQWx0ZW5hdGl2ZSBtZXRob2QgZm9yIGdldHRpbmcgdmFsdWUKLV9faGVhZF9fCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNDIiPjwvYT48aDM+IEJ1aWxkaW5nIGEgQyBkYXRhIHN0cnVjdHVyZSBpbiBUY2w8L2gzPgotR2l2ZW4gb3VyIHNpbXBsZSBUY2wgaW50ZXJmYWNlLCBpdCBpcyBlYXN5IHRvIHdyaXRlIFRjbCBmdW5jdGlvbnMgZm9yIGJ1aWxkaW5nIHVwIGEgQyBiaW5hcnkgdHJlZS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgSW5zZXJ0IGFuIGl0ZW0gaW50byBhIHRyZWUKLXByb2MgaW5zZXJ0X3RyZWUge3RyZWUga2V5IHZhbHVlfSB7Ci0gICAgc2V0IHRyZWVfaGVhZCBbVHJlZV9oZWFkX2dldCAkdHJlZV0KLSAgICBzZXQgdHJlZV96IFtUcmVlX3pfZ2V0ICR0cmVlXQotICAgIHNldCBwICR0cmVlX2hlYWQKLSAgICBzZXQgeCBbTm9kZV9yaWdodF9nZXQgJHRyZWVfaGVhZF0KLSAgICB3aGlsZSB7W05vZGVfa2V5X2dldCAkeF0gIT0gIl9fZW5kX18ifSB7Ci0gICAgICAgIHNldCBwICR4Ci0gICAgICAgIGlmIHska2V5ICZsdDsgW05vZGVfa2V5X2dldCAkeF19IHsKLQkJc2V0IHggW05vZGVfbGVmdF9nZXQgJHhdCi0JIH0gewotCSAgICAgICBzZXQgeCBbTm9kZV9yaWdodF9nZXQgJHhdCi0gICAgICAgIH0KLSAgICB9Ci0gICAgc2V0IHggW25ld19Ob2RlICRrZXkgJHZhbHVlXQotICAgIGlmIHska2V5ICZsdDsgW05vZGVfa2V5X2dldCAkcF19IHsKLSAgICAgICAgTm9kZV9sZWZ0X3NldCAkcCAkeAotICAgIH0gewotICAgICAgICBOb2RlX3JpZ2h0X3NldCAkcCAkeAotICAgIH0KLSAgICBOb2RlX2xlZnRfc2V0ICR4ICR0cmVlX3oKLSAgICBOb2RlX3JpZ2h0X3NldCAkeCAkdHJlZV96Ci19Ci0KLSMgU2VhcmNoIHRyZWUgYW5kIHJldHVybiBhbGwgbWF0Y2hlcwotcHJvYyBzZWFyY2hfdHJlZSB7dHJlZSBrZXl9IHsKLSAgICBzZXQgdHJlZV9oZWFkIFtUcmVlX2hlYWRfZ2V0ICR0cmVlXQotICAgIHNldCB0cmVlX3ogW1RyZWVfel9nZXQgJHRyZWVdCi0gICAgc2V0IGZvdW5kIHt9Ci0gICAgc2V0IHggW05vZGVfcmlnaHRfZ2V0ICR0cmVlX2hlYWRdCi0gICAgd2hpbGUge1tOb2RlX2tleV9nZXQgJHhdICE9ICJfX2VuZF9fIn0gewotICAgICAgICBpZiB7W05vZGVfa2V5X2dldCAkeF0gPT0gJGtleX0gewotICAgICAgICAgICAgbGFwcGVuZCBmb3VuZCBbTm9kZV92YWx1ZV9nZXQgJHhdCi0gICAgICAgIH0KLSAgICAgICAgaWYgeyRrZXkgJmx0OyBbTm9kZV9rZXlfZ2V0ICR4XX0gewotICAgICAgICAgICAgc2V0IHggW05vZGVfbGVmdF9nZXQgJHhdCi0gICAgICAgIH0gewotICAgICAgICAgICAgc2V0IHggW05vZGVfcmlnaHRfZ2V0ICR4XQotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiAkZm91bmQKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpbGUgd3JpdHRlbiBpbiBUY2wsIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYnVpbGRpbmcgdXAgYSByZWFsIEMgYmluYXJ5IHRyZWUgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjb3VsZCBiZSBwYXNzZWQgaW50byBvdGhlciBDIGZ1bmN0aW9uLiAgRm9yIGV4YW1wbGUsIHdlIGNvdWxkIHdyaXRlIGEgZnVuY3Rpb24gdGhhdCBnbG9icyBhbiBlbnRpcmUgZGlyZWN0b3J5IGFuZCBidWlsZHMgYSB0cmVlIHN0cnVjdHVyZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIEluc2VydCBhbGwgb2YgdGhlIGZpbGVzIGluIHBhdGhuYW1lIGludG8gYSBiaW5hcnkgdHJlZQotCi1wcm9jIGJ1aWxkX2Rpcl90cmVlIHt0cmVlIHBhdGhuYW1lfSB7Ci0gICAgc2V0IGVycm9yIFtjYXRjaCB7c2V0IGZpbGVsaXN0IFtnbG9iIC1ub2NvbXBsYWluICRwYXRobmFtZS8qXX1dCi0gICAgaWYgeyRlcnJvciA9PSAwfSB7Ci0gICAgICAgIGZvcmVhY2ggZiAkZmlsZWxpc3QgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRmXSA9PSAxfSB7Ci0gICAgICAgICAgICAgICAgaW5zZXJ0X3RyZWUgJHRyZWUgW2ZpbGUgdGFpbCAkZl0gJGYKLSAgICAgICAgICAgICAgICBpZiB7W2ZpbGUgdHlwZSAkZl0gIT0gImxpbmsifSB7YnVpbGRfZGlyX3RyZWUgJHRyZWUgJGZ9Ci0gICAgICAgICAgICB9IHsKLSAgICAgICAgICAgICAgICBpbnNlcnRfdHJlZSAkdHJlZSBbZmlsZSB0YWlsICRmXSAkZgotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XZSBjYW4gdGVzdCBvdXQgb3VyIGZ1bmN0aW9uIGludGVyYWN0aXZlbHkgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzb3VyY2UgdHJlZS50Y2wKLSUgc2V0IHQgW25ld19UcmVlXSAgICAgICAjIENyZWF0ZSBhIG5ldyB0cmVlCi1fODA1MzNjOF9UcmVlX3AKLSUgYnVpbGRfZGlyX3RyZWUgJHQgL2hvbWUvYmVhemxleS9TV0lHL1NXSUcxLjEKLSUgc2VhcmNoX3RyZWUgJHQgdGNsCi0vaG9tZS9iZWF6bGV5L1NXSUcvU1dJRzEuMS9FeGFtcGxlcy90Y2wgL2hvbWUvYmVhemxleS9TV0lHL1NXSUcxLjEvc3dpZ19saWIvdGNsCi0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNDMiPjwvYT48aDM+IEltcGxlbWVudGluZyBtZXRob2RzIGluIEM8L2gzPgotV2hpbGUgb3VyIFRjbCBtZXRob2RzIG1heSBiZSBmaW5lIGZvciBzbWFsbCBwcm9ibGVtcywgaXQgbWF5IGJlIGZhc3RlciB0byByZWltcGxlbWVudCB0aGUgaW5zZXJ0IGFuZCBzZWFyY2ggbWV0aG9kcyBpbiBDICA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBpbnNlcnRfdHJlZShUcmVlICp0LCBjaGFyICprZXksIGNoYXIgKnZhbHVlKSB7Ci0JTm9kZSAqcDsKLQlOb2RlICp4OwotCQotCXAgPSB0LSZndDtoZWFkOwotCXggPSB0LSZndDtoZWFkLSZndDtyaWdodDsKLQl3aGlsZSAoeCAhPSB0LSZndDt6KSB7Ci0JCXAgPSB4OwotCQlpZiAoc3RyY21wKGtleSx4LSZndDtrZXkpICZsdDsgMCkKLQkJCXggPSB4LSZndDtsZWZ0OwotCQllbHNlCi0JCQl4ID0geC0mZ3Q7cmlnaHQ7Ci0JfQotCXggPSBuZXdfTm9kZShrZXksdmFsdWUpOwotCWlmIChzdHJjbXAoa2V5LHAtJmd0O2tleSkgJmx0OyAwKSAKLQkJcC0mZ3Q7bGVmdCA9IHg7Ci0JZWxzZQotCQlwLSZndDtyaWdodCA9IHg7Ci0JeC0mZ3Q7bGVmdCA9IHQtJmd0O3o7Ci0JeC0mZ3Q7cmlnaHQgPSB0LSZndDt6OwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UbyB1c2UgdGhpcyBmdW5jdGlvbiBpbiBUY2wsIHNpbXBseSBwdXQgYSBkZWNsYXJhdGlvbiBpbnRvIHRoZSBmaWxlIDx0dD50cmVlLmg8L3R0PiBvciA8dHQ+dHJlZS5pPC90dD4uPHA+Ci08cD4KLVdoZW4gcmVpbXBsZW1lbnRlZCBpbiBDLCB0aGUgdW5kZXJseWluZyBUY2wgc2NyaXB0IG1heSBub3Qgbm90aWNlIHRoZSBkaWZmZXJlbmNlLiAgRm9yIGV4YW1wbGUsIG91ciBkaXJlY3Rvcnkgc3Vicm91dGluZSB3b3VsZCBub3QgY2FyZSBpZiA8dHQ+aW5zZXJ0X3RyZWU8L3R0PiBoYWQgYmVlbiB3cml0dGVuIGluIFRjbCBvciBDLiAgIE9mIGNvdXJzZSwgYnkgd3JpdGluZyB0aGlzIGZ1bmN0aW9uIEMsIHdlIHdpbGwgZ2V0IHNpZ25pZmljYW50bHkgYmV0dGVyIHBlcmZvcm1hbmNlLiA8cD4KLTxhIG5hbWU9Im40NCI+PC9hPjxoMz4gQnVpbGRpbmcgYW4gb2JqZWN0IG9yaWVudGVkIEMgaW50ZXJmYWNlPC9oMz4KLVNvIGZhciBvdXIgdHJlZSBleGFtcGxlIGhhcyBiZWVuIHVzaW5nIHRoZSBiYXNpYyBTV0lHIGludGVyZmFjZS4gIFdpdGggYSBsaXR0bGUgd29yayBpbiB0aGUgaW50ZXJmYWNlIGZpbGUsIHdlIGNhbiBpbXByb3ZlIHRoZSBpbnRlcmZhY2UgYSBsaXR0bGUgYml0LjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgdHJlZQotJXsKLSNpbmNsdWRlICJ0cmVlLmgiCi0lfQotCi0laW5jbHVkZSB0cmVlLmgKLSV7Ci0KLSAgLyogRnVuY3Rpb24gdG8gY291bnQgdXAgTm9kZXMgKi8KLSAgc3RhdGljICBpbnQgY291bnRfbm9kZXMoTm9kZSAqbiwgTm9kZSAqZW5kKSB7Ci0gICAgaWYgKG4gPT0gZW5kKSByZXR1cm4gMDsKLSAgICByZXR1cm4gMStjb3VudF9ub2RlcyhuLSZndDtsZWZ0LGVuZCkrY291bnRfbm9kZXMobi0mZ3Q7cmlnaHQsZW5kKTsKLSAgfQotCi0lfQotCi0vLyBBdHRhY2ggc29tZSBuZXcgbWV0aG9kcyB0byB0aGUgVHJlZSBzdHJ1Y3R1cmUKLQotJWFkZG1ldGhvZHMgVHJlZSB7Ci0gICB2b2lkIGluc2VydChjaGFyICprZXksIGNoYXIgKnZhbHVlKSB7Ci0gICAgICAgIGluc2VydF90cmVlKHNlbGYsa2V5LHZhbHVlKTsKLSAgIH0KLSAgIGNoYXIgKnNlYXJjaChjaGFyICprZXkpIHsKLSAgICAgICAgcmV0dXJuIHNlYXJjaF90cmVlKHNlbGYsa2V5KTsKLSAgIH0KLSAgIGNoYXIgKmZpbmRuZXh0KGNoYXIgKmtleSkgewotICAgICByZXR1cm4gZmluZF9uZXh0KHNlbGYsa2V5KTsKLSAgIH0KLSAgIGludCBjb3VudCgpIHsKLSAgICAgcmV0dXJuIGNvdW50X25vZGVzKHNlbGYtJmd0O2hlYWQtJmd0O3JpZ2h0LHNlbGYtJmd0O3opOwotICAgfQotICAgVHJlZSgpOyAgICAgICAgLy8gVGhpcyBpcyBqdXN0IGFub3RoZXIgbmFtZSBmb3IgbmV3X1RyZWUKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD4lYWRkbWV0aG9kczwvdHQ+IGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCB0byBhdHRhY2ggbWV0aG9kcyB0byBleGlzdGluZyBzdHJ1Y3R1cmVzIGFuZCBjbGFzc2VzLiAgSW4gdGhpcyBjYXNlLCB3ZSBhcmUgYXR0YWNoaW5nIHNvbWUgbWV0aG9kcyB0byB0aGUgPHR0PlRyZWU8L3R0PiBzdHJ1Y3R1cmUuICAgRWFjaCBvZiB0aGUgbWV0aG9kcyBhcmUgc2ltcGx5IHZhcmlvdXMgQyBmdW5jdGlvbnMgd2UgaGF2ZSB3cml0dGVuIGZvciBhY2Nlc3NpbmcgdHJlZXMuICAgVGhpcyB0eXBlIG9mIGludGVyZmFjZSBmaWxlIGNvbWVzIGluIHBhcnRpY3VsYXJseSBoYW5keSB3aGVuIHVzaW5nIHRoZSBUY2wgb2JqZWN0IG9yaWVudGVkIGludGVyZmFjZS4gRm9yIGV4YW1wbGUsIHdlIGNhbiByZXdyaXRlIG91ciBkaXJlY3RvcnkgZ2xvYmJlciBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5wcm9jIGJ1aWxkX2Rpcl90cmVlIHt0cmVlIHBhdGhuYW1lfSB7Ci0gICAgc2V0IGVycm9yIFtjYXRjaCB7c2V0IGZpbGVsaXN0IFtnbG9iIC1ub2NvbXBsYWluICRwYXRobmFtZS8qXX1dCi0gICAgaWYgeyRlcnJvciA9PSAwfSB7Ci0gICAgICAgIGZvcmVhY2ggZiAkZmlsZWxpc3QgewotICAgICAgICAgICAgaWYge1tmaWxlIGlzZGlyZWN0b3J5ICRmXSA9PSAxfSB7Ci0gICAgICAgICAgICAgICAgJHRyZWUgaW5zZXJ0IFtmaWxlIHRhaWwgJGZdICRmICAgICAgIyBOb3RlIG5ldyBjYWxsaW5nIG1ldGhvZAotICAgICAgICAgICAgICAgIGlmIHtbZmlsZSB0eXBlICRmXSAhPSAibGluayJ9IHtidWlsZF9kaXJfdHJlZSAkdHJlZSAkZn0KLSAgICAgICAgICAgIH0gewotICAgICAgICAgICAgICAgICR0cmVlIGluc2VydCBbZmlsZSB0YWlsICRmXSAkZiAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93IHVzaW5nIGl0IDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzb3VyY2UgdHJlZS50Y2wKLSUgVHJlZSB0ICAgICAgICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgYSBuZXcgVHJlZSBvYmplY3QKLV84MDU0NjEwX1RyZWVfcAotJSBidWlsZF9kaXJfdHJlZSB0IC9ob21lL2JlYXpsZXkvU1dJRy9TV0lHMS4xCi0lIHQgY291bnQKLTE3NzAKLSUgdCBzZWFyY2ggZ2xhdXguaQotL2hvbWUvYmVhemxleS9TV0lHL1NXSUcxLjEvRXhhbXBsZXMvT3BlbkdML2dsYXV4LmkKLSUgdCBzZWFyY2ggdHlwZW1hcHMKLS9ob21lL2JlYXpsZXkvU1dJRy9TV0lHMS4xL0V4YW1wbGVzL3Blcmw1L3R5cGVtYXBzCi0lIHQgZmluZG5leHQgdHlwZW1hcHMKLS9ob21lL2JlYXpsZXkvU1dJRy9TV0lHMS4xL0V4YW1wbGVzL3B5dGhvbi90eXBlbWFwcwotJSB0IGZpbmRuZXh0IHR5cGVtYXBzCi0vaG9tZS9iZWF6bGV5L1NXSUcvU1dJRzEuMS9FeGFtcGxlcy90Y2wvdHlwZW1hcHMKLSUgdCBmaW5kbmV4dCB0eXBlbWFwcwotTm9uZQotJQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaXRoIGEgbGl0dGxlIGV4dHJhIHdvcmssIHdlJ3ZlIG1hbmFnZWQgdG8gdHVybiBhbiBvcmRpbmFyeSBDIHN0cnVjdHVyZSBpbnRvIGEgY2xhc3MtbGlrZSBvYmplY3QgaW4gVGNsLiA8cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgyPiBCdWlsZGluZyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMgd2l0aCBUazwvaDI+Ci1HaXZlbiB0aGUgZGlyZWN0IGFjY2VzcyB0byBDL0MrKyBvYmplY3RzIHByb3ZpZGVkIGJ5IFNXSUcsIGl0IGNhbiBiZSBwb3NzaWJsZSB0byB1c2UgVGsgdG8gaW50ZXJhY3RpdmVseSBidWlsZCBhIHZhcmlldHkgb2YgaW50ZXJlc3RpbmcgZGF0YSBzdHJ1Y3R1cmVzLiAgICBUbyBkbyB0aGlzLCBpdCBpcyB1c3VhbGx5IHVzZWZ1bCB0byBtYWludGFpbiBhIG1hcHBpbmcgYmV0d2VlbiBjYW52YXMgaXRlbXMgYW5kIGFuIHVuZGVybHlpbmcgIEMgZGF0YSBzdHJ1Y3R1cmUuICBUaGlzIGlzIGRvbmUgdXNpbmcgYXNzb2NpYXRpdmUgYXJyYXlzIHRvIG1hcCBDIHBvaW50ZXJzIHRvIGNhbnZhcyBpdGVtcyBhbmQgY2FudmFzIGl0ZW1zIGJhY2sgdG8gcG9pbnRlcnMuPHA+Ci08cD4KLVN1cHBvc2UgdGhhdCB3ZSBoYXZlIGEgQyBwcm9ncmFtIGZvciBtYW5pcHVsYXRpbmcgZGlyZWN0ZWQgZ3JhcGhzIGFuZCB0aGF0IHdlIHdhbnRlZCB0byBwcm92aWRlIGEgVGsgaW50ZXJmYWNlIGZvciBidWlsZGluZyBncmFwaHMgdXNpbmcgYSBiYWxsLWFuZC1zdGljayBtb2RlbCBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+PGNlbnRlcj48aW1nIHNyYz0iY2gxMC4xLnBuZyI+PC9jZW50ZXI+PHA+Ci08cD4KLTxwPgotVGhlIFNXSUcgaW50ZXJmYWNlIGZpbGUgZm9yIHRoaXMgbWlnaHQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGdyYXBoCi0lewotI2luY2x1ZGUgImdyYXBoLmgiCi0lfQotCi0vKiBHZXQgYSBub2RlJ3MgbnVtYmVyICovCi1pbnQgICAgICBHZXROdW0oTm9kZSAqbik7ICAgICAgICAgICAgICAgLyogR2V0IGEgbm9kZSdzIG51bWJlciAgICAgICAgICovCi1BZGpMaXN0ICpHZXRBZGooTm9kZSAqbik7ICAgICAgICAgICAgICAgLyogR2V0IGEgbm9kZSdzIGFkamFjZW5jeSBsaXN0ICovCi1BZGpMaXN0ICpHZXROZXh0KEFkakxpc3QgKmwpOyAgICAgICAgICAgLyogR2V0IG5leHQgbm9kZSBpbiBhZGouIGxpc3QgICovCi1Ob2RlICAgICpHZXROb2RlKEFkakxpc3QgKmwpOyAgICAgICAgICAgLyogR2V0IG5vZGUgZnJvbSBhZGouIGxpc3QgICAgICovCi1Ob2RlICAgICpuZXdfbm9kZSgpOyAgICAgICAgICAgICAgICAgICAgLyogTWFrZSBhIG5ldyBub2RlICAgICAgICAgICAgICovCi12b2lkICAgICBBZGRMaW5rKE5vZGUgKnYxLCBOb2RlICp2Mik7ICAgLyogQWRkIGFuIGVkZ2UgICAgICAgICAgICAgICAgICovCi0uLi4gZXRjIC4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgaW50ZXJmYWNlIGZpbGUgbWFuaXB1bGF0ZXMgPHR0Pk5vZGU8L3R0PiBhbmQgPHR0PkFkakxpc3Q8L3R0PiBzdHJ1Y3R1cmVzLiAgVGhlIHByZWNpc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgZG9lc24ndCBtYXR0ZXIgaGVyZS0taW4gZmFjdCBTV0lHIGRvZXNuJ3QgZXZlbiBuZWVkIGl0LiAgV2l0aGluIGEgVGNsL1RrIHNjcmlwdCBob3dldmVyLCB3ZSBjYW4ga2VlcCB0cmFjayBvZiB0aGVzZSBvYmplY3RzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgTWFrZSBhIG5ldyBub2RlIGFuZCBwdXQgaXQgb24gdGhlIGNhbnZhcwotcHJvYyBta05vZGUge3ggeX0gewotICAgIGdsb2JhbCBub2RlWCBub2RlWSBub2RlUCBub2RlTWFwIG5vZGVMaXN0IGVkZ2VGaXJzdCBlZGdlU2Vjb25kCi0gICAgc2V0IG5ldyBbLmMgY3JlYXRlIG92YWwgW2V4cHIgJHgtMTVdIFtleHByICR5LTE1XSBcCi0JCSBbZXhwciAkeCsxNV0gW2V4cHIgJHkrMTVdIC1vdXRsaW5lIGJsYWNrIFwKLQkJIC1maWxsIHdoaXRlIC10YWdzIG5vZGVdCi0gICAgc2V0IG5ld25vZGUgW25ld19ub2RlXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsjIE1ha2UgYSBuZXcgQyBOb2RlCi0gICAgc2V0IG5udW0gW0dldE51bSAkbmV3bm9kZV0gICAgICAgICAgICAgICAgICAgICAgICAgIDsjIEdldCBvdXIgbm9kZSdzIG51bWJlcgotICAgIHNldCBpZCBbLmMgY3JlYXRlIHRleHQgW2V4cHIgJHgtNF0gW2V4cHIgJHkrMTBdIFwKLQkgICAgIC10ZXh0ICRubnVtIC1hbmNob3Igc3cgLXRhZ3Mgbm9kZWlkXQotICAgIHNldCBub2RlWCgkbmV3KSAkeAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBTYXZlIGNvb3JkcyBvZiBjYW52YXMgaXRlbQotICAgIHNldCBub2RlWSgkbmV3KSAkeQotICAgIHNldCBub2RlUCgkbmV3KSAkbmV3bm9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBTYXZlIEMgcG9pbnRlcgotICAgIHNldCBub2RlTWFwKCRuZXdub2RlKSAkbmV3ICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBNYXAgcG9pbnRlciB0byBUayB3aWRnZXQKLSAgICBzZXQgZWRnZUZpcnN0KCRuZXcpIHt9Ci0gICAgc2V0IGVkZ2VTZWNvbmQoJG5ldykge30KLSAgICBsYXBwZW5kIG5vZGVMaXN0ICRuZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyMgS2VlcCBhIGxpc3Qgb2YgYWxsIEMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyMgUG9pbnRlcnMgd2UndmUgbWFkZQotfQotCi0jIE1ha2UgYSBuZXcgZWRnZSBiZXR3ZWVuIHR3byBub2RlcyBhbmQgcHV0IGFuIGFycm93IG9uIHRoZSBjYW52YXMKLXByb2MgbWtFZGdlIHtmaXJzdCBzZWNvbmQgbmV3fSB7Ci0gICAgZ2xvYmFsIG5vZGVQIGVkZ2VGaXJzdCBlZGdlU2Vjb25kCi0gICAgc2V0IGVkZ2UgW21rQXJyb3cgJGZpcnN0ICRzZWNvbmRdICAgICAgICAgICAgICAgICAgIDsjIE1ha2UgYW4gYXJyb3cKLSAgICBsYXBwZW5kIGVkZ2VGaXJzdCgkZmlyc3QpICRlZGdlICAgICAgICAgICAgICAgICAgICAgOyMgU2F2ZSBpbmZvcm1hdGlvbiAKLSAgICBsYXBwZW5kIGVkZ2VTZWNvbmQoJHNlY29uZCkgJGVkZ2UKLSAgICBpZiB7JG5ldyA9PSAxfSB7Ci0jIE5vdyBhZGQgYW4gZWRnZSB3aXRoaW4gb3VyIEMgZGF0YSBzdHJ1Y3R1cmUKLQlBZGRMaW5rICRub2RlUCgkZmlyc3QpICRub2RlUCgkc2Vjb25kKSAgICAgICAgICAgOyMgQWRkIGxpbmsgdG8gQyBzdHJ1Y3R1cmUKLSAgICB9Ci19IAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiB0aGVzZSBmdW5jdGlvbnMsIHRoZSBhcnJheSA8dHQ+bm9kZVAoKTwvdHQ+IGFsbG93cyB1cyB0byBhc3NvY2lhdGUgYSBwYXJ0aWN1bGFyIGNhbnZhcyBpdGVtIHdpdGggYSBDIG9iamVjdC4gICBXaGVuIG1hbmlwdWxhdGluZyB0aGUgZ3JhcGgsIHRoaXMgbWFrZXMgaXQgZWFzeSB0byBtb3ZlIGZyb20gdGhlIFRjbCB3b3JsZCB0byBDLiAgQSBzZWNvbmQgYXJyYXksIDx0dD5ub2RlTWFwKCk8L3R0PiBhbGxvd3MgdXMgdG8gZ28gdGhlIG90aGVyIHdheS0tbWFwcGluZyBDIHBvaW50ZXJzIHRvIGNhbnZhcyBpdGVtcy4gIEEgIGxpc3QgPHR0Pm5vZGVMaXN0PC90dD4ga2VlcHMgdHJhY2sgb2YgYWxsIG9mIHRoZSBub2RlcyB3ZSd2ZSBjcmVhdGVkIGp1c3QgaW4gY2FzZSB3ZSB3YW50IHRvIGV4YW1pbmUgYWxsIG9mIHRoZSBub2Rlcy4gIEZvciBleGFtcGxlLCBzdXBwb3NlIGEgQyBmdW5jdGlvbiBhZGRlZCBtb3JlIGVkZ2VzIHRvIHRoZSBncmFwaC4gIFRvIHJlZmxlY3QgdGhlIG5ldyBzdGF0ZSBvZiB0aGUgZ3JhcGgsIHdlIHdvdWxkIHdhbnQgdG8gYWRkIG1vcmUgZWRnZXMgdG8gdGhlIFRrIGNhbnZhcy4gIFRoaXMgbWlnaHQgYmUgYWNjb21wbGlzaGVkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgTG9vayBhdCB0aGUgQyBkYXRhIHN0cnVjdHVyZSBhbmQgdXBkYXRlIHRoZSBjYW52YXMKLXByb2MgbWtFZGdlcyB7fSB7Ci0gICAgZ2xvYmFsIG5vZGVYIG5vZGVZIG5vZGVQIG5vZGVNYXAgbm9kZUxpc3QgZWRnZUZpcnN0IGVkZ2VTZWNvbmQKLSAgICB1bnNldCBlZGdlRmlyc3QgCi0gICAgdW5zZXQgZWRnZVNlY29uZCAKLSAgICAuYyBkZWxldGUgYXJjICAgICAgICAgICAgICAjIEVkZ2VzIGhhdmUgYmVlbiB0YWdnZWQgd2l0aCBhcmMgKG5vdCBzaG93bikKLQotICAgIGZvcmVhY2ggbm9kZSAkbm9kZUxpc3QgeyAgIDsjIGNsZWFyIG9sZCBsaXN0cwotCXNldCBlZGdlRmlyc3QoJG5vZGUpIHt9Ci0Jc2V0IGVkZ2VTZWNvbmQoJG5vZGUpIHt9Ci0gICAgfQotICAgIGZvcmVhY2ggbm9kZSAkbm9kZUxpc3QgeyAgICAgICAgICAgICAgICAgICAgOyMgR28gdGhyb3VnaCBhbGwgb2YgdGhlIG5vZGVzCi0Jc2V0IHYgJG5vZGVQKCRub2RlKSAgICAgICAgICAgICAgICAgICAgICA7IyBHZXQgdGhlIG5vZGUgcG9pbnRlciAKLQlzZXQgdjEgW0dldEFkaiAkdl0gICAgICAgICAgICAgICAgICAgICAgIDsjIEdldCBpdHMgYWRqYWNlbmN5IGxpc3QKLQl3aGlsZSB7JHYxICE9ICJOVUxMIn0geyAgICAgICAgICAgCi0JICAgIHNldCB2MiBbR2V0Tm9kZSAkdjFdICAgICAgICAgICAgICAgICA7IyBHZXQgbm9kZSBwb2ludGVyCi0JICAgIHNldCB3ICRub2RlTWFwKCR2MikgICAgICAgICAgICAgICAgICA7IyBHZXQgY2FudmFzIGl0ZW0KLQkgICAgbWtFZGdlICRub2RlICR3IDAgICAgICAgICAgICAgICAgICAgIDsjIE1ha2UgYW4gZWRnZSBiZXR3ZWVuIHRoZW0KLQkgICAgc2V0IHYxIFtHZXROZXh0ICR2MV0gICAgICAgICAgICAgICAgIDsjIEdldCBuZXh0IG5vZGUKLQl9Ci0gICAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgZnVuY3Rpb24gbWVyZWx5IHNjYW5zIHRocm91Z2ggYWxsIG9mIHRoZSBub2RlcyBhbmQgd2Fsa3MgZG93biB0aGUgYWRqYWNlbmN5IGxpc3Qgb2YgZWFjaCBvbmUuICAgVGhlIDx0dD5ub2RlTWFwKCk8L3R0PiBhcnJheSBtYXBzIEMgcG9pbnRlcnMgb250byB0aGUgY29ycmVzcG9uZGluZyBjYW52YXMgaXRlbXMuICBXZSB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgZWRnZXMgb24gdGhlIGNhbnZhcyB1c2luZyB0aGUgPHR0Pm1rRWRnZTwvdHQ+IGZ1bmN0aW9uLjxwPgotPGEgbmFtZT0ibjgiPjwvYT48aDI+IEFjY2Vzc2luZyBhcnJheXM8L2gyPgotSW4gc29tZSBjYXNlcywgQyBmdW5jdGlvbnMgbWF5IGludm9sdmUgYXJyYXlzIGFuZCBvdGhlciBvYmplY3RzLiAgSW4gdGhlc2UgaW5zdGFuY2VzLCB5b3UgbWF5IGhhdmUgdG8gd3JpdGUgaGVscGVyIGZ1bmN0aW9ucyB0byBwcm92aWRlIGFjY2Vzcy4gIEZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSBoYXZlIGEgQyBmdW5jdGlvbiBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEFkZCB2ZWN0b3IgYStiIC0mZ3Q7IGMKLXZvaWQgdmVjdG9yX2FkZChkb3VibGUgKmEsIGRvdWJsZSAqYiwgZG91YmxlICpjLCBpbnQgc2l6ZSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVNXSUcgaXMgcXVpdGUgbGl0ZXJhbCBpbiBpdHMgaW50ZXJwcmV0YXRpb24gb2YgPHR0PmRvdWJsZSAqPC90dD4tLWl0IGlzIGEgcG9pbnRlciB0byBhIDx0dD5kb3VibGU8L3R0Pi4gVG8gcHJvdmlkZSBhY2Nlc3MsIGEgZmV3IGhlbHBlciBmdW5jdGlvbnMgY2FuIGJlIHdyaXR0ZW4gc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBTV0lHIGhlbHBlciBmdW5jdGlvbnMgZm9yIGRvdWJsZSBhcnJheXMKLSVpbmxpbmUgJXsKLWRvdWJsZSAqbmV3X2RvdWJsZShpbnQgc2l6ZSkgewotCXJldHVybiAoZG91YmxlICopIG1hbGxvYyhzaXplKnNpemVvZihkb3VibGUpKTsKLX0KLXZvaWQgZGVsZXRlX2RvdWJsZShkb3VibGUgKmEpIHsKLQlmcmVlIGE7Ci19Ci1kb3VibGUgZ2V0X2RvdWJsZShkb3VibGUgKmEsIGludCBpbmRleCkgewotCXJldHVybiBhW2luZGV4XTsKLX0KLXZvaWQgc2V0X2RvdWJsZShkb3VibGUgKmEsIGludCBpbmRleCwgZG91YmxlIHZhbCkgewotCWFbaW5kZXhdID0gdmFsOwotfQotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVXNpbmcgb3VyIEMgZnVuY3Rpb25zIG1pZ2h0IHdvcmsgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFRjbCBjb2RlIHRvIGNyZWF0ZSBzb21lIGFycmF5cyBhbmQgYWRkIHRoZW0KLQotc2V0IGEgW25ld19kb3VibGUgMjAwXQotc2V0IGIgW25ld19kb3VibGUgMjAwXQotc2V0IGMgW25ld19kb3VibGUgMjAwXQotCi0jIEZpbGwgYSBhbmQgYiB3aXRoIHNvbWUgdmFsdWVzCi1mb3Ige3NldCBpIDB9IHskaSAmbHQ7IDIwMH0ge2luY3IgaSAxfSB7Ci0Jc2V0X2RvdWJsZSAkYSAkaSAwLjAKLQlzZXRfZG91YmxlICRiICRpICRpCi19Ci0KLSMgQWRkIHRoZW0gYW5kIHN0b3JlIHJlc3VsdCBpbiBjCi12ZWN0b3JfYWRkICRhICRiICRjIDIwMAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgZnVuY3Rpb25zIDx0dD5nZXRfZG91YmxlPC90dD4gYW5kIDx0dD5zZXRfZG91YmxlPC90dD4gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIGluZGl2aWR1YWwgZWxlbWVudHMgb2YgYW4gYXJyYXkuICAgVG8gY29udmVydCBmcm9tIFRjbCBsaXN0cyB0byBDIGFycmF5cywgb25lIGNvdWxkIHdyaXRlIGEgZmV3IGZ1bmN0aW9ucyBpbiBUY2wgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFRjbCBQcm9jZWR1cmUgdG8gdHVybiBhIGxpc3QgaW50byBhIEMgYXJyYXkKLXByb2MgVGNsMkFycmF5IHtsfSB7Ci0Jc2V0IGxlbiBbbGxlbmd0aCAkbF0KLQlzZXQgYSBbbmV3X2RvdWJsZSAkbGVuXQotCXNldCBpIDAKLQlmb3JlYWNoIGl0ZW0gJGwgewotCQlzZXRfZG91YmxlICRhICRpICRpdGVtCi0JCWluY3IgaSAxCi0JfQotCXJldHVybiAkYQotfQotCi0jIFRjbCBQcm9jZWR1cmUgdG8gdHVybiBhIEMgYXJyYXkgaW50byBhIFRjbCBMaXN0Ci1wcm9jIEFycmF5MlRjbCB7YSBzaXplfSB7Ci0Jc2V0IGwge30KLQlmb3Ige3NldCBpIDB9IHskaSAmbHQ7IHNpemV9IHtpbmNyIGkgMX0gewotCQlsYXBwZW5kICRsIFtnZXRfZG91YmxlICRhICRpXQotCX0KLQlyZXR1cm4gJGwKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpbGUgbm90IG9wdGltYWwsIG9uZSBjb3VsZCB1c2UgdGhlc2UgdG8gdHVybiBhIFRjbCBsaXN0IGludG8gYSBDIHJlcHJlc2VudGF0aW9uLiAgIFRoZSBDIHJlcHJlc2VudGF0aW9uIGNvdWxkIGJlIHVzZWQgcmVwZWF0ZWRseSBpbiBhIHZhcmlldHkgb2YgIEMgZnVuY3Rpb25zIHdpdGhvdXQgaGF2aW5nIHRvIHJlcGVhdGVkbHkgY29udmVydCBmcm9tIHN0cmluZ3MgKE9mIGNvdXJzZSwgaWYgdGhlIFRjbCBsaXN0IGNoYW5nZWQgb25lIHdvdWxkIHdhbnQgdG8gdXBkYXRlIHRoZSBDIHZlcnNpb24pLiAgTGlrZXdpc2UsIGl0IGlzIHJlbGF0aXZlbHkgc2ltcGxlIHRvIGdvIGJhY2sgZnJvbSBDIGludG8gVGNsLiAgIFRoaXMgaXMgbm90IHRoZSBvbmx5IHdheSB0byBtYW5hZ2UgYXJyYXlzLS10eXBlbWFwcyBjYW4gYmUgdXNlZCBhcyB3ZWxsLiAgIFRoZSBTV0lHIGxpYnJhcnkgZmlsZSBgPHR0PmFycmF5Lmk8L3R0PicgYWxzbyBjb250YWlucyBhIHZhcmlldHkgb2YgcHJlLXdyaXR0ZW4gaGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZGlmZmVyZW50IGtpbmRzIG9mIGFycmF5cy48cD4KLTxhIG5hbWU9Im45Ij48L2E+PGgyPiBCdWlsZGluZyBhIHNpbXBsZSBPcGVuR0wgbW9kdWxlPC9oMj4KLUluIHRoaXMgZXhhbXBsZSwgd2UgY29uc2lkZXIgYnVpbGRpbmcgYSBTV0lHIG1vZHVsZSBvdXQgb2YgdGhlIE9wZW5HTCBncmFwaGljcyBsaWJyYXJ5LiAgVGhlIE9wZW5HTCBsaWJyYXJ5IGNvbnNpc3RzIG9mIHNldmVyYWwgaHVuZHJlZCBmdW5jdGlvbnMgZm9yIGJ1aWxkaW5nIGNvbXBsZXggM0QgaW1hZ2VzLiAgIEJ5IHdyYXBwaW5nIHRoaXMgbGlicmFyeSwgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsYXkgd2l0aCBpdCBpbnRlcmFjdGl2ZWx5IGZyb20gYSBUY2wgaW50ZXJwcmV0ZXIuPHA+Ci08YSBuYW1lPSJuNDUiPjwvYT48aDM+IFJlcXVpcmVkIGZpbGVzPC9oMz4KLVRvIGJ1aWxkIGFuIE9wZW5HTCBtb2R1bGUsIHlvdSB3aWxsIG5lZWQgdG8gaGF2ZSBzb21lIHZhcmlhbnQgb2YgT3BlbkdMIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUuICBJZiB1bmF2YWlsYWJsZSwgdGhlIE1lc2EgZ3JhcGhpY3MgbGlicmFyeSBpcyBhbiBPcGVuR0wgY2xvbmUgdGhhdCBydW5zIG9uIG1vc3QgbWFjaGluZXMgdGhhdCBzdXBwb3J0IFgxMS4gICBXZSB3aWxsIHVzZSB0aGUgIkdML2dsLmgiLCAiR0wvZ2x1LmgiLCBhbmQgdGhlIEdMIEF1eGlsbGlhcnkgbGlicmFyaWVzLjxwPgotPGEgbmFtZT0ibjQ2Ij48L2E+PGgzPiBXcmFwcGluZyBnbC5oPC9oMz4KLVRoZSBmaXJzdCBzdGVwIGlzIHRvIGJ1aWxkIGFuIGludGVyZmFjZSBmcm9tIHRoZSBnbC5oIGZpbGUuICBUbyBkbyB0aGlzLCBmb2xsb3cgdGhlc2Ugc3RlcHMgOjxwPgotPHA+Ci08dWw+Ci08bGk+Q29weSB0aGUgZmlsZSA8dHQ+Z2wuaDwvdHQ+IHRvIGEgZmlsZSA8dHQ+Z2wuaTwvdHQ+IHdoaWNoIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UuCi08bGk+RWRpdCB0aGUgPHR0PmdsLmk8L3R0PiBmaWxlIGJ5IHRha2luZyBvdXQgdW5uZWVkZWQgQyBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyBhbmQgYW55IG90aGVyIGNsdXR0ZXIgdGhhdCB5b3UgZmluZC4KLTxsaT5QdXQgdGhlIGZvbGxvd2luZyBjb2RlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlPHR0PiBnbC5pPC90dD4gZmlsZQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIGdsLmkgOiBTV0lHIGZpbGUgZm9yIE9wZW5HTAotJW1vZHVsZSBnbAotJXsKLSNpbmNsdWRlICZsdDtHTC9nbC5oJmd0OwotJX0KLQotLi4uIFJlc3Qgb2YgZWRpdGVkIGdsLmggZmlsZSBoZXJlIC4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08L3VsPgotPHA+Ci1BIGNyaXRpY2FsIHBhcnQgb2YgdGhpcyBmaXJzdCBzdGVwIGlzIG1ha2luZyBzdXJlIHlvdSBoYXZlIHRoZSBwcm9wZXIgc2V0IG9mIHR5cGVkZWZzIGluIHRoZSA8dHQ+Z2wuaTwvdHQ+IGZpbGUuICBUaGUgZmlyc3QgcGFydCBvZiB0aGUgZmlsZSBzaG91bGQgaW5jbHVkZSBkZWZpbml0aW9ucyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXR5cGVkZWYgdW5zaWduZWQgaW50IEdMZW51bTsKLXR5cGVkZWYgdW5zaWduZWQgY2hhciBHTGJvb2xlYW47Ci10eXBlZGVmIHVuc2lnbmVkIGludCBHTGJpdGZpZWxkOwotdHlwZWRlZiBzaWduZWQgY2hhciBHTGJ5dGU7Ci10eXBlZGVmIHNob3J0IEdMc2hvcnQ7Ci10eXBlZGVmIGludCBHTGludDsKLXR5cGVkZWYgaW50IEdMc2l6ZWk7Ci10eXBlZGVmIHVuc2lnbmVkIGNoYXIgR0x1Ynl0ZTsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgR0x1c2hvcnQ7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBHTHVpbnQ7Ci10eXBlZGVmIGZsb2F0IEdMZmxvYXQ7Ci10eXBlZGVmIGZsb2F0IEdMY2xhbXBmOwotdHlwZWRlZiBkb3VibGUgR0xkb3VibGU7Ci10eXBlZGVmIGRvdWJsZSBHTGNsYW1wZDsKLXR5cGVkZWYgdm9pZCBHTHZvaWQ7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNDciPjwvYT48aDM+IFdyYXBwaW5nIGdsdS5oPC9oMz4KLU5leHQgd2Ugd3JpdGUgYSBtb2R1bGUgZm9yIHRoZSBnbHUgbGlicmFyeS4gICBUaGUgcHJvY2VkdXJlIGlzIGVzc2VudGlhbGx5IGlkZW50aWNhbCB0byA8dHQ+Z2wuaDwvdHQ+LS10aGF0IGlzLCB3ZSdsbCBjb3B5IHRoZSBoZWFkZXIgZmlsZSBhbmQgZWRpdCBpdCBzbGlnaHRseS4gICAgSW4gdGhpcyBjYXNlLCA8dHQ+Z2x1Lmg8L3R0PiBjb250YWlucyBhIGZldyBmdW5jdGlvbnMgaW52b2x2aW5nIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBhcnJheXMuICAgVGhlc2UgbWF5IGdlbmVyYXRlIGVycm9ycyBvciB3YXJuaW5ncy4gIEFzIGEgcmVzdWx0LCB3ZSBjYW4gc2ltcGx5IGVkaXQgdGhvc2UgZGVjbGFyYXRpb25zIG91dC4gIEZvcnR1bmF0ZWx5LCB0aGVyZSBhcmVuJ3QgbWFueSBkZWNsYXJhdGlvbnMgbGlrZSB0aGlzLiAgIElmIGFjY2VzcyBpcyByZXF1aXJlZCBsYXRlciwgdGhlIHByb2JsZW0gY2FuIG9mdGVuIGJlIGZpeGVkIHdpdGggdHlwZW1hcHMgYW5kIGhlbHBlciBmdW5jdGlvbnMuIFRoZSBmaW5hbCA8dHQ+Z2x1Lmk8L3R0PiBmaWxlIHdpbGwgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGdsdQotJXsKLSNpbmNsdWRlICZsdDtHTC9nbHUuaCZndDsKLSV9Ci0KLS4uLiByZXN0IG9mIGVkaXRlZCBnbHUuaCBmaWxlIGhlcmUgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUdpdmVuIHRoZXNlIHR3byBmaWxlcywgd2UgaGF2ZSBhIGZhaXJseSBjb21wbGV0ZSBPcGVuR0wgcGFja2FnZS4gVW5mb3J0dW5hdGVseSwgd2Ugc3RpbGwgZG9uJ3QgaGF2ZSBhbnkgbWVjaGFuaXNtIGZvciBvcGVuaW5nIGEgR0wgd2luZG93IGFuZCBjcmVhdGluZyBpbWFnZXMuICAgVG8gdG8gdGhpcywgd2UgY2FuIHdyYXAgdGhlIE9wZW5HTCBhdXhpbGxpYXJ5IGxpYnJhcnkgd2hpY2ggY29udGFpbnMgZnVuY3Rpb25zIHRvIG9wZW4gd2luZG93cyBhbmQgZHJhdyB2YXJpb3VzIGtpbmRzIG9mIG9iamVjdHMgKHdoaWxlIG5vdCB0aGUgbW9zdCBwb3dlcmZ1bCBhcHByb2FjaCwgaXQgaXMgdGhlIHNpbXBsZXN0IHRvIGltcGxlbWVudCBhbmQgd29ya3Mgb24gbW9zdCBtYWNoaW5lcykuPHA+Ci08YSBuYW1lPSJuNDgiPjwvYT48aDM+IFdyYXBwaW5nIHRoZSBhdXggbGlicmFyeTwvaDM+Ci1XcmFwcGluZyB0aGUgYXV4IGxpYnJhcnkgZm9sbG93cyBleGFjdGx5IHRoZSBzYW1lIHByb2NlZHVyZSBhcyBiZWZvcmUuICAgWW91IHdpbGwgY3JlYXRlIGEgZmlsZSA8dHQ+Z2xhdXguaTwvdHQ+IHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gRmlsZSA6Z2xhdXguaQotJW1vZHVsZSBnbGF1eAotJXsKLSNpbmNsdWRlICJnbGF1eC5oIgotJX0KLQotLi4uIFJlc3Qgb2YgZWRpdGVkIGdsYXV4LmggZmlsZSAuLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjQ5Ij48L2E+PGgzPiBBIGZldyBoZWxwZXIgZnVuY3Rpb25zPC9oMz4KLUZpbmFsbHksIHRvIG1ha2Ugb3VyIGxpYnJhcnkgYSBsaXR0bGUgZWFzaWVyIHRvIHVzZSwgd2UgbmVlZCB0byBoYXZlIGEgZmV3IGZ1bmN0aW9ucyB0byBoYW5kbGUgYXJyYXlzIHNpbmNlIHF1aXRlIGEgZmV3IE9wZW5HTCBjYWxscyB1c2UgdGhlbSBhcyBhcmd1bWVudHMuICBTbWFsbCA0IGVsZW1lbnQgYXJyYXlzIGFyZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHNvIHdlJ2xsIGNyZWF0ZSBhIGZldyBoZWxwZXIgZnVuY3Rpb25zIGluIGEgZmlsZSBjYWxsZWQgPHR0PmhlbHAuaS48L3R0PjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGhlbHAuaSA6IE9wZW5HTCBoZWxwZXIgZnVuY3Rpb25zCi0KLSVpbmxpbmUgJXsKLUdMZmxvYXQgKm5ld2Z2NChHTGZsb2F0IGEsR0xmbG9hdCBiLEdMZmxvYXQgYyxHTGZsb2F0IGQpIHsKLSAgR0xmbG9hdCAqZjsKLSAgZiA9IChHTGZsb2F0ICopIG1hbGxvYyg0KnNpemVvZihHTGZsb2F0KSk7Ci0gIGZbMF0gPSBhOyBmWzFdID0gYjsgZlsyXSA9IGM7IGZbM10gPSBkOwotICByZXR1cm4gZjsKLX0KLXZvaWQgc2V0ZnY0KEdMZmxvYXQgKmZ2LCBHTGZsb2F0IGEsIEdMZmxvYXQgYiwgR0xmbG9hdCBjLCBHTGZsb2F0IGQpIHsKLSAgZnZbMF0gPSBhOyBmdlsxXSA9IGI7IGZ2WzJdID0gYzsgZnZbM10gPSBkOwotfQotJX0KLSVuYW1lKGRlbGZ2NCkgdm9pZCBmcmVlKHZvaWQgKik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNTAiPjwvYT48aDM+IEFuIE9wZW5HTCBwYWNrYWdlPC9oMz4KLVdoZXcsIHdlJ3JlIGFsbW9zdCBkb25lIG5vdy4gICBUaGUgbGFzdCB0aGluZyB0byBkbyBpcyB0byBwYWNrYWdlIHVwIGFsbCBvZiBvdXIgaW50ZXJmYWNlIGZpbGVzIGludG8gYSBzaW5nbGUgZmlsZSBjYWxsZWQgPHR0Pm9wZW5nbC5pPC90dD4uICA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLS8vCi0vLyBvcGVuZ2wuaS4gICAgU1dJRyBJbnRlcmZhY2UgZmlsZSBmb3IgT3BlbkdMCi0lbW9kdWxlIG9wZW5nbAotCi0laW5jbHVkZSBnbC5pICAgICAgICAgLy8gVGhlIG1haW4gR0wgZnVuY3Rpb25zCi0laW5jbHVkZSBnbHUuaSAgICAgICAgLy8gVGhlIEdMVSBsaWJyYXJ5Ci0laW5jbHVkZSBnbGF1eC5pICAgICAgLy8gVGhlIGF1eCBsaWJyYXJ5Ci0laW5jbHVkZSBoZWxwLmkgICAgICAgLy8gT3VyIGhlbHBlciBmdW5jdGlvbnMKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVG8gYnVpbGQgdGhlIG1vZHVsZSwgd2UgY2FuIHNpbXBseSBydW4gU1dJRyBhcyBmb2xsb3dzIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci11bml4ICZndDsgc3dpZyAtdGNsIG9wZW5nbC5pICAgICAgICAgICAjICBCdWlsZCBhIGR5bmFtaWNseSBsb2FkZWQgZXh0ZW5zaW9uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dW5peCAmZ3Q7IHN3aWcgLXRjbCAtbHdpc2guaSBvcGVuZ2wuaSAgIyBCdWlsZCBhIHN0YXRpY2FsbHkgbGlua2VkIHdpc2ggZXhlY3V0YWJsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Db21waWxlIHRoZSBmaWxlIDx0dD5vcGVuZ2xfd3JhcC5jPC90dD4gd2l0aCB5b3VyIEMgY29tcGlsZXIgYW5kIGxpbmsgd2l0aCBUY2wsIFRrLCBhbmQgT3BlbkdMIHRvIGNyZWF0ZSB0aGUgZmluYWwgbW9kdWxlLjxwPgotPGEgbmFtZT0ibjUxIj48L2E+PGgzPiBVc2luZyB0aGUgT3BlbkdMIG1vZHVsZTwvaDM+Ci1UaGUgbW9kdWxlIGlzIG5vdyB1c2VkIGJ5IHdyaXRpbmcgYSBUY2wgc2NyaXB0IHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+bG9hZCAuL29wZW5nbC5zbwotYXV4SW5pdERpc3BsYXlNb2RlIFtleHByIHskQVVYX1NJTkdMRSB8ICRBVVhfUkdCQSB8ICRBVVhfREVQVEh9XQotYXV4SW5pdFBvc2l0aW9uIDAgMCA1MDAgNTAwCi1hdXhJbml0V2luZG93ICJMaXQtU3BoZXJlIgotCi0jIHNldCB1cCBtYXRlcmlhbCBwcm9wZXJ0aWVzCi1zZXQgbWF0X3NwZWN1bGFyIFtuZXdmdjQgMS4wIDEuMCAxLjAgMS4wXQotc2V0IG1hdF9zaGluaW5lc3MgW25ld2Z2NCA1MC4wIDAgMCAwXQotc2V0IGxpZ2h0X3Bvc2l0aW9uIFtuZXdmdjQgMS4wIDEuMCAxLjAgMC4wXQotCi1nbE1hdGVyaWFsZnYgJEdMX0ZST05UICRHTF9TUEVDVUxBUiAkbWF0X3NwZWN1bGFyCi1nbE1hdGVyaWFsZnYgJEdMX0ZST05UICRHTF9TSElOSU5FU1MgJG1hdF9zaGluaW5lc3MKLWdsTGlnaHRmdiAkR0xfTElHSFQwICRHTF9QT1NJVElPTiAkbGlnaHRfcG9zaXRpb24KLWdsRW5hYmxlICRHTF9MSUdIVElORwotZ2xFbmFibGUgJEdMX0xJR0hUMAotZ2xEZXB0aEZ1bmMgJEdMX0xFUVVBTAotZ2xFbmFibGUgJEdMX0RFUFRIX1RFU1QKLQotIyBTZXQgdXAgdmlldwotZ2xDbGVhckNvbG9yIDAgMCAwIDAKLWdsQ29sb3IzZiAxLjAgMS4wIDEuMAotZ2xNYXRyaXhNb2RlICRHTF9QUk9KRUNUSU9OCi1nbExvYWRJZGVudGl0eQotZ2xPcnRobyAtMSAxIC0xIDEgLTEgMQotZ2xNYXRyaXhNb2RlICRHTF9NT0RFTFZJRVcKLWdsTG9hZElkZW50aXR5Ci0KLSMgRHJhdyBpdAotZ2xDbGVhciAkR0xfQ09MT1JfQlVGRkVSX0JJVAotZ2xDbGVhciAkR0xfREVQVEhfQlVGRkVSX0JJVAotYXV4U29saWRTcGhlcmUgMC41Ci0KLSMgQ2xlYW4gdXAKLWRlbGZ2NCAkbWF0X3NwZWN1bGFyCi1kZWxmdjQgJG1hdF9zaGluaW5lc3MKLWRlbGZ2NCAkbGlnaHRfcG9zaXRpb24KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSW4gb3VyIGludGVycHJldGVkIGludGVyZmFjZSwgaXQgaXMgcG9zc2libGUgdG8gaW50ZXJhY3RpdmVseSBjaGFuZ2UgcGFyYW1ldGVycyBhbmQgc2VlIHRoZSBlZmZlY3RzIG9mIHZhcmlvdXMgT3BlbkdMIGZ1bmN0aW9ucy4gIFRoaXMgYSBncmVhdCB3YXkgdG8gZmlndXJlIG91dCB3aGF0IHZhcmlvdXMgZnVuY3Rpb25zIGRvIGFuZCB0byB0cnkgZGlmZmVyZW50IHRoaW5ncyB3aXRob3V0IGhhdmluZyB0byByZWNvbXBpbGUgYW5kIHJ1biBhZnRlciBlYWNoIGNoYW5nZS48cD4KLTxhIG5hbWU9Im41MiI+PC9hPjxoMz4gUHJvYmxlbXMgd2l0aCB0aGUgT3BlbkdMIGludGVyZmFjZTwvaDM+Ci1XaGlsZSB0aGUgT3BlbkdMIGludGVyZmFjZSB3ZSBoYXZlIGdlbmVyYXRlZCBpcyBmdWxseSB1c2FibGUsIGl0IGlzIG5vdCB3aXRob3V0IHByb2JsZW1zLjxwPgotPHA+Ci08dWw+Ci08bGk+T3BlbkdMIGNvbnN0YW50cyBhcmUgaW5zdGFsbGVkIGFzIGdsb2JhbCB2YXJpYWJsZXMuICBBcyBhIHJlc3VsdCwgaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSB0aGUgZ2xvYmFsIGtleXdvcmQgd2hlbiB3cml0aW5nIFRjbCBzdWJyb3V0aW5lcy4gIEZvciBleGFtcGxlIDoKLTxibG9ja3F1b3RlPjxwcmU+Ci1wcm9jIGNsZWFyX3NjcmVhbiB7IH0gewotCWdsb2JhbCBHTF9DT0xPUl9CVUZGRVJfQklULCBHTF9ERVBUSF9CVUZGRVJfQklUCi0JZ2xDbGVhciAkR0xfQ09MT1JfQlVGRkVSX0JJVAotCWdsQ2xlYXIgJEdMX0RFUFRIX0JVRkZFUl9CSVQKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGxpPkFycmF5cyBuZWVkIHRvIGJlIGFjY2Vzc2VkIHZpYSBoZWxwZXIgZnVuY3Rpb25zIHN1Y2ggYXMgb3VyIDx0dD5uZXdmdjQ8L3R0PigpIGZ1bmN0aW9uLiAgIFRoaXMgYXBwcm9hY2ggY2VydGFpbmx5IHdvcmtzIGFuZCBpdHMgZWFzeSBlbm91Z2ggdG8gaW1wbGVtZW50LCBidXQgaXQgbWF5IGJlIHByZWZlcmFibGUgdG8gY2FsbCBjZXJ0YWluIE9wZW5HTCBmdW5jdGlvbnMgd2l0aCBhIFRjbCBsaXN0IGluc3RlYWQuICBGb3IgZXhhbXBsZSA6Ci08YmxvY2txdW90ZT48cHJlPgotZ2xNYXRlcmlhbGZ2ICRHTF9GUk9OVCAkR0xfU1BFQ1VMQVIgezEuMCAxLjAgMS4wIDEuMH0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTwvdWw+Ci08cD4KLVdoaWxlIHRoZXNlIGFyZSBvbmx5IG1pbm9yIGFubm95YW5jZXMsIGl0IHR1cm5zIG91dCB0aGF0IHlvdSBjYW4gYWRkcmVzcyBib3RoIHByb2JsZW1zIHVzaW5nIFNXSUcgdHlwZW1hcHMgKHdoaWNoIGFyZSBkaXNjdXNzZWQgc2hvcnRseSkuPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDI+IEV4Y2VwdGlvbiBoYW5kbGluZyA8L2gyPgotVGhlIDx0dD4lZXhjZXB0PC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHVzZXItZGVmaW5hYmxlIGV4Y2VwdGlvbiBoYW5kbGVyIGluIGNoYXJnZSBvZiBjb252ZXJ0aW5nIGV4Y2VwdGlvbnMgaW4geW91ciBDL0MrKyBwcm9ncmFtIGludG8gVGNsIGV4Y2VwdGlvbnMuICBUaGUgY2hhcHRlciBvbiBleGNlcHRpb24gaGFuZGxpbmcgY29udGFpbnMgbW9yZSBkZXRhaWxzLCBidXQgc3VwcG9zZSB5b3UgZXh0ZW5kZWQgdGhlIGFycmF5IGV4YW1wbGUgaW50byBhIEMrKyBjbGFzcyBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWNsYXNzIFJhbmdlRXJyb3Ige307ICAgLy8gVXNlZCBmb3IgYW4gZXhjZXB0aW9uCi0KLWNsYXNzIERvdWJsZUFycmF5IHsKLSAgcHJpdmF0ZToKLSAgICBpbnQgbjsKLSAgICBkb3VibGUgKnB0cjsKLSAgcHVibGljOgotICAgIC8vIENyZWF0ZSBhIG5ldyBhcnJheSBvZiBmaXhlZCBzaXplCi0gICAgRG91YmxlQXJyYXkoaW50IHNpemUpIHsKLSAgICAgIHB0ciA9IG5ldyBkb3VibGVbc2l6ZV07Ci0gICAgICBuID0gc2l6ZTsKLSAgICB9Ci0gICAgLy8gRGVzdHJveSBhbiBhcnJheQotICAgIH5Eb3VibGVBcnJheSgpIHsKLSAgICAgICBkZWxldGUgcHRyOwotICAgIH0KLSAgICAvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkKLSAgICBpbnQgICBsZW5ndGgoKSB7Ci0gICAgICByZXR1cm4gbjsKLSAgICB9Ci0KLSAgICAvLyBHZXQgYW4gaXRlbSBmcm9tIHRoZSBhcnJheSBhbmQgcGVyZm9ybSBib3VuZHMgY2hlY2tpbmcuCi0gICAgZG91YmxlIGdldGl0ZW0oaW50IGkpIHsKLSAgICAgIGlmICgoaSAmZ3Q7PSAwKSAmYW1wOyZhbXA7IChpICZsdDsgbikpCi0gICAgICAgIHJldHVybiBwdHJbaV07Ci0gICAgICBlbHNlCi0gICAgICAgIHRocm93IFJhbmdlRXJyb3IoKTsKLSAgICB9Ci0KLSAgICAvLyBTZXQgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kIHBlcmZvcm0gYm91bmRzIGNoZWNraW5nLgotICAgIHZvaWQgc2V0aXRlbShpbnQgaSwgZG91YmxlIHZhbCkgewotICAgICAgaWYgKChpICZndDs9IDApICZhbXA7JmFtcDsgKGkgJmx0OyBuKSkKLSAgICAgICAgcHRyW2ldID0gdmFsOwotICAgICAgZWxzZSB7Ci0gICAgICAgIHRocm93IFJhbmdlRXJyb3IoKTsKLSAgICAgIH0KLSAgICB9Ci0gIH07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBmdW5jdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2xhc3MgY2FuIHRocm93IGEgQysrIHJhbmdlIGV4Y2VwdGlvbiBmb3IgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MuICAgV2UgY2FuIGNhdGNoIHRoaXMgaW4gb3VyIFRjbCBleHRlbnNpb24gYnkgc3BlY2lmeWluZyB0aGUgZm9sbG93aW5nIGluIGFuIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHRjbCkgewotICB0cnkgewotICAgICRmdW5jdGlvbiAgICAgICAgICAgICAgICAvLyBHZXRzIHN1YnN0aXR1dGVkIGJ5IGFjdHVhbCBmdW5jdGlvbiBjYWxsCi0gIH0KLSAgY2F0Y2ggKFJhbmdlRXJyb3IpIHsKLSAgICBpbnRlcnAtJmd0O3Jlc3VsdCA9ICJBcnJheSBpbmRleCBvdXQtb2YtYm91bmRzIjsKLSAgICByZXR1cm4gVENMX0VSUk9SOwotICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yIGluIFRjbCA4LjA8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lZXhjZXB0KHRjbDgpIHsKLSAgdHJ5IHsKLSAgICAkZnVuY3Rpb24gICAgICAgICAgICAgICAgLy8gR2V0cyBzdWJzdGl0dXRlZCBieSBhY3R1YWwgZnVuY3Rpb24gY2FsbAotICB9Ci0gIGNhdGNoIChSYW5nZUVycm9yKSB7Ci0gICAgVGNsX1NldFN0cmluZ09iaih0Y2xfcmVzdWx0LCJBcnJheSBpbmRleCBvdXQtb2YtYm91bmRzIik7Ci0gICAgcmV0dXJuIFRDTF9FUlJPUjsKLSAgfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHRoZSBDKysgY2xhc3MgdGhyb3dzIGEgPHR0PlJhbmdlRXJyb3I8L3R0PiBleGNlcHRpb24sIG91ciB3cmFwcGVyIGZ1bmN0aW9ucyB3aWxsIGNhdGNoIGl0LCB0dXJuIGl0IGludG8gYSBUY2wgZXhjZXB0aW9uLCBhbmQgYWxsb3cgYSBncmFjZWZ1bCBkZWF0aCBhcyBvcHBvc2VkIHRvIGp1c3QgaGF2aW5nIHNvbWUgc29ydCBvZiBteXN0ZXJpb3VzIHByb2dyYW0gY3Jhc2guICAgICBXZSBhcmUgbm90IGxpbWl0ZWQgdG8gQysrIGV4Y2VwdGlvbiBoYW5kbGluZy4gICBQbGVhc2Ugc2VlIHRoZSBjaGFwdGVyIG9uIGV4Y2VwdGlvbiBoYW5kbGluZyBmb3IgbW9yZSBkZXRhaWxzIG9uIG90aGVyIHBvc3NpYmlsaXRpZXMsIGluY2x1ZGluZyBhIG1ldGhvZCBmb3IgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgZXhjZXB0aW9uIGhhbmRsaW5nLi48cD4KLTxhIG5hbWU9Im4xMSI+PC9hPjxoMj4gVHlwZW1hcHM8L2gyPgotVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgU1dJRydzIHRyZWF0bWVudCBvZiB2YXJpb3VzIEMvQysrIGRhdGF0eXBlcyBjYW4gYmUgcmVtYXBwZWQgdXNpbmcgdGhlIDx0dD4ldHlwZW1hcDwvdHQ+IGRpcmVjdGl2ZS4gICBXaGlsZSBub3QgcmVxdWlyZWQsIHRoaXMgc2VjdGlvbiBhc3N1bWVzIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCAgVGNsJ3MgQyBBUEkuICAgVGhlIHJlYWRlciBpcyBhZHZpc2VkIHRvIGNvbnN1bHQgIGEgVGNsIGJvb2suICBBIGdsYW5jZSBhdCB0aGUgY2hhcHRlciBvbiBTV0lHIHR5cGVtYXBzIHdpbGwgYWxzbyBiZSB1c2VmdWwuICA8cD4KLTxhIG5hbWU9Im41MyI+PC9hPjxoMz4gV2hhdCBpcyBhIHR5cGVtYXA/PC9oMz4KLUEgdHlwZW1hcCBpcyBtZWNoYW5pc20gYnkgd2hpY2ggU1dJRydzIHByb2Nlc3Npbmcgb2YgYSBwYXJ0aWN1bGFyIEMgZGF0YXR5cGUgY2FuIGJlIGNoYW5nZWQuICAgQSBzaW1wbGUgdHlwZW1hcCBtaWdodCBsb29rIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0KLSV0eXBlbWFwKHRjbCxpbikgaW50IHsKLQkkdGFyZ2V0ID0gKGludCkgYXRvaSgkc291cmNlKTsKLQlwcmludGYoIlJlY2VpdmVkIGFuIGludGVnZXIgOiAlZFxuIiwkdGFyZ2V0KTsKLX0KLS4uLgotZXh0ZXJuIGludCBmYWN0KGludCBuKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVHlwZW1hcHMgcmVxdWlyZSBhIGxhbmd1YWdlICBuYW1lLCAgbWV0aG9kIG5hbWUsIGRhdGF0eXBlLCBhbmQgY29udmVyc2lvbiBjb2RlLiAgRm9yIFRjbCwgInRjbCIgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGxhbmd1YWdlIG5hbWUuICBGb3IgVGNsIDguMCwgInRjbDgiIHNob3VsZCBiZSB1c2VkIGlmIHlvdSBhcmUgdXNpbmcgdGhlIG5hdGl2ZSBvYmplY3QgaW50ZXJmYWNlLiBUaGUgImluIiBtZXRob2QgaW4gdGhpcyBleGFtcGxlIHJlZmVycyB0byBhbiBpbnB1dCBhcmd1bWVudCBvZiBhIGZ1bmN0aW9uLiBUaGUgZGF0YXR5cGUgYGludCcgdGVsbHMgU1dJRyB0aGF0IHdlIGFyZSByZW1hcHBpbmcgaW50ZWdlcnMuICBUaGUgc3VwcGxpZWQgY29kZSBpcyB1c2VkIHRvIGNvbnZlcnQgZnJvbSBhIFRjbCBzdHJpbmcgdG8gdGhlIGNvcnJlc3BvbmRpbmcgQyBkYXRhdHlwZS4gIFdpdGhpbiB0aGUgc3VwcG9ydGluZyBDIGNvZGUsIHRoZSB2YXJpYWJsZSA8dHQ+JHNvdXJjZTwvdHQ+IGNvbnRhaW5zIHRoZSBzb3VyY2UgZGF0YSAoYSBzdHJpbmcgaW4gdGhpcyBjYXNlKSBhbmQgPHR0PiR0YXJnZXQ8L3R0PiBjb250YWlucyB0aGUgZGVzdGluYXRpb24gb2YgYSBjb252ZXJzaW9uIChhIEMgbG9jYWwgdmFyaWFibGUpLiAgPHA+Ci08cD4KLVdoZW4gdGhlIGV4YW1wbGUgaXMgY29tcGlsZWQgaW50byBhIFRjbCBtb2R1bGUsIGl0IHdpbGwgb3BlcmF0ZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGZhY3QgNgotUmVjZWl2ZWQgYW4gaW50ZWdlciA6IDYKLTcyMAotJQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1BIGZ1bGwgZGlzY3Vzc2lvbiBvZiB0eXBlbWFwcyBjYW4gYmUgZm91bmQgaW4gdGhlIG1haW4gU1dJRyB1c2VycyByZWZlcmVuY2UuICBXZSB3aWxsIHByaW1hcmlseSBiZSBjb25jZXJuZWQgd2l0aCBUY2wgdHlwZW1hcHMgaGVyZS48cD4KLTxhIG5hbWU9Im41NCI+PC9hPjxoMz4gVGNsIHR5cGVtYXBzPC9oMz4KLVRoZSBmb2xsb3dpbmcgdHlwZW1hcCBtZXRob2RzIGFyZSBhdmFpbGFibGUgdG8gVGNsIG1vZHVsZXMgOjxwPgotPHA+Ci08dHQ+JXR5cGVtYXAodGNsLGluKTwvdHQ+CUNvbnZlcnRzIGEgc3RyaW5nIHRvIGlucHV0IGZ1bmN0aW9uIGFyZ3VtZW50czxwPgotPHR0PiV0eXBlbWFwKHRjbCxvdXQpPC90dD4JQ29udmVydHMgcmV0dXJuIHZhbHVlIG9mIGEgQyBmdW5jdGlvbiB0byBhIHN0cmluZzxwPgotPHR0PiV0eXBlbWFwKHRjbCxmcmVlYXJnKTwvdHQ+CUNsZWFucyB1cCBhIGZ1bmN0aW9uIGFyZ3VtZW50IChpZiBuZWNlc3NhcnkpPHA+Ci08dHQ+JXR5cGVtYXAodGNsLGFyZ291dCk8L3R0PglPdXRwdXQgYXJndW1lbnQgcHJvY2Vzc2luZzxwPgotPHR0PiV0eXBlbWFwKHRjbCxyZXQpPC90dD4JQ2xlYW51cCBvZiBmdW5jdGlvbiByZXR1cm4gdmFsdWVzPHA+Ci08dHQ+JXR5cGVtYXAodGNsLGNvbnN0KTwvdHQ+CUNyZWF0aW9uIG9mIFRjbCBjb25zdGFudHM8cD4KLTx0dD4ldHlwZW1hcChtZW1iZXJpbik8L3R0PglTZXR0aW5nIG9mIEMrKyBtZW1iZXIgZGF0YTxwPgotPHR0PiV0eXBlbWFwKG1lbWJlcm91dCk8L3R0PglSZXR1cm4gb2YgQysrIG1lbWJlciBkYXRhPHA+Ci08dHQ+JXR5cGVtYXAodGNsLCBjaGVjayk8L3R0PglDaGVjayB2YWx1ZSBvZiBmdW5jdGlvbiBhcmd1bWVudHMuPHA+Ci08YSBuYW1lPSJuNTUiPjwvYT48aDM+IFR5cGVtYXAgdmFyaWFibGVzPC9oMz4KLVRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIG1heSBiZSB1c2VkIHdpdGhpbiB0aGUgQyBjb2RlIHVzZWQgaW4gYSB0eXBlbWFwOjxwPgotPHA+Ci08dHQ+JHNvdXJjZTwvdHQ+CVNvdXJjZSB2YWx1ZSBvZiBhIGNvbnZlcnNpb248cD4KLTx0dD4kdGFyZ2V0PC90dD4JVGFyZ2V0IG9mIGNvbnZlcnNpb24gKHdoZXJlIHRoZSByZXN1bHQgc2hvdWxkIGJlIHN0b3JlZCk8cD4KLTx0dD4kdHlwZTwvdHQ+CUMgZGF0YXR5cGUgYmVpbmcgcmVtYXBwZWQ8cD4KLTx0dD4kbWFuZ2xlPC90dD4JTWFuZ2xlZCB2ZXJzaW9uIG9mIGRhdGEgKHVzZWQgZm9yIHBvaW50ZXIgdHlwZS1jaGVja2luZyk8cD4KLTx0dD4kdmFsdWU8L3R0PglWYWx1ZSBvZiBhIGNvbnN0YW50IChjb25zdCB0eXBlbWFwIG9ubHkpPHA+Ci08dHQ+JGFyZzwvdHQ+CU9yaWdpbmFsIGZ1bmN0aW9uIGFyZ3VtZW50ICh1c3VhbGx5IGEgc3RyaW5nKTxwPgotPGEgbmFtZT0ibjU2Ij48L2E+PGgzPiBOYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbjwvaDM+Ci1UeXBlbWFwcyBhcmUgYmFzZWQgYm90aCBvbiB0aGUgZGF0YXR5cGUgYW5kIGFuIG9wdGlvbmFsIG5hbWUgYXR0YWNoZWQgdG8gYSBkYXRhdHlwZS4gICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBmb28KLQotLy8gVGhpcyB0eXBlbWFwIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgY2hhciAqKiBmdW5jdGlvbiBhcmd1bWVudHMKLSV0eXBlbWFwKHRjbCxpbikgY2hhciAqKiB7IC4uLiB9Ci0KLS8vIFRoaXMgdHlwZW1hcCBpcyBhcHBsaWVkIG9ubHkgdG8gY2hhciAqKiBhcmd1bWVudHMgbmFtZWQgYGFyZ3YnCi0ldHlwZW1hcCh0Y2wsaW4pIGNoYXIgKiphcmd2IHsgLi4uIH0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBleGFtcGxlLCB0d28gdHlwZW1hcHMgYXJlIGFwcGxpZWQgdG8gdGhlIDx0dD5jaGFyICoqPC90dD4gZGF0YXR5cGUuICBIb3dldmVyLCB0aGUgc2Vjb25kIHR5cGVtYXAgd2lsbCBvbmx5IGJlIGFwcGxpZWQgdG8gYXJndW1lbnRzIG5hbWVkIGA8dHQ+YXJndjwvdHQ+Jy4gIEEgbmFtZWQgdHlwZW1hcCB3aWxsIGFsd2F5cyBvdmVycmlkZSBhbiB1bm5hbWVkIHR5cGVtYXAuPHA+Ci08cD4KLUR1ZSB0byB0aGUgbmFtZS1iYXNlZCBuYXR1cmUgb2YgdHlwZW1hcHMsIGl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdHlwZW1hcHMgYXJlIGluZGVwZW5kZW50IG9mIHR5cGVkZWYgZGVjbGFyYXRpb25zLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHRjbCwgaW4pIGRvdWJsZSB7Ci0JLi4uIGdldCBhIGRvdWJsZSAuLi4KLX0KLXZvaWQgZm9vKGRvdWJsZSk7ICAgICAgICAgICAgLy8gVXNlcyB0aGUgYWJvdmUgdHlwZW1hcAotdHlwZWRlZiBkb3VibGUgUmVhbDsKLXZvaWQgYmFyKFJlYWwpOyAgICAgICAgICAgICAgLy8gRG9lcyBub3QgdXNlIHRoZSBhYm92ZSB0eXBlbWFwIChkb3VibGUgIT0gUmVhbCkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVG8gZ2V0IGFyb3VuZCB0aGlzIHByb2JsZW0sIHRoZSA8dHQ+JWFwcGx5PC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSV0eXBlbWFwKHRjbCxpbikgZG91YmxlIHsKLQkuLi4gZ2V0IGEgZG91YmxlIC4uLgotfQotdm9pZCBmb28oZG91YmxlKTsKLQotdHlwZWRlZiBkb3VibGUgUmVhbDsgICAgICAgICAvLyBVc2VzIHR5cGVtYXAKLSVhcHBseSBkb3VibGUgeyBSZWFsIH07ICAgICAgLy8gQXBwbGllcyBhbGwgImRvdWJsZSIgdHlwZW1hcHMgdG8gUmVhbC4KLXZvaWQgYmFyKFJlYWwpOyAgICAgICAgICAgICAgLy8gTm93IHVzZXMgdGhlIHNhbWUgdHlwZW1hcC4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im41NyI+PC9hPjxoMz4gQ29udmVydGluZyAgYSBUY2wgbGlzdCB0byBhIGNoYXIgKiogPC9oMz4KLUEgY29tbW9uIHByb2JsZW0gaW4gbWFueSBDIHByb2dyYW1zIGlzIHRoZSBwcm9jZXNzaW5nIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsIHdoaWNoIGFyZSB1c3VhbGx5IHBhc3NlZCBpbiBhbiBhcnJheSBvZiBOVUxMIHRlcm1pbmF0ZWQgc3RyaW5ncy4gICBUaGUgZm9sbG93aW5nIFNXSUcgaW50ZXJmYWNlIGZpbGUgYWxsb3dzIGEgVGNsIGxpc3QgdG8gYmUgdXNlZCBhcyBhIDx0dD5jaGFyICoqPC90dD4gb2JqZWN0LjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgYXJndgotCi0vLyBUaGlzIHRlbGxzIFNXSUcgdG8gdHJlYXQgY2hhciAqKiBhcyBhIHNwZWNpYWwgY2FzZQotJXR5cGVtYXAodGNsLGluKSBjaGFyICoqIHsKLSAgICAgICAgaW50IHRlbXBjOwotICAgICAgICBpZiAoVGNsX1NwbGl0TGlzdChpbnRlcnAsJHNvdXJjZSwmYW1wO3RlbXBjLCZhbXA7JHRhcmdldCkgPT0gVENMX0VSUk9SKSAKLQkJcmV0dXJuIFRDTF9FUlJPUjsKLX0KLQotLy8gVGhpcyBnaXZlcyBTV0lHIHNvbWUgY2xlYW51cCBjb2RlIHRoYXQgd2lsbCBnZXQgY2FsbGVkIGFmdGVyIHRoZSBmdW5jdGlvbiBjYWxsCi0ldHlwZW1hcCh0Y2wsZnJlZWFyZykgY2hhciAqKiB7Ci0gICAgICAgIGZyZWUoKGNoYXIgKikgJHNvdXJjZSk7Ci19Ci0KLS8vIFJldHVybiBhIGNoYXIgKiogYXMgYSBUY2wgbGlzdAotJXR5cGVtYXAodGNsLG91dCkgY2hhciAqKiB7Ci0gICAgICAgIGludCBpID0gMDsKLSAgICAgICAgd2hpbGUgKCRzb3VyY2VbaV0pIHsKLSAgICAgICAgICAgICBUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsJHNvdXJjZVtpXSk7Ci0gICAgICAgICAgICAgaSsrOwotICAgICAgICB9Ci19Ci0KLS8vIE5vdyBhIGZldyB0ZXN0IGZ1bmN0aW9ucwotJWlubGluZSAlewotaW50IHByaW50X2FyZ3MoY2hhciAqKmFyZ3YpIHsKLSAgICBpbnQgaSA9IDA7Ci0gICAgd2hpbGUgKGFyZ3ZbaV0pIHsKLSAgICAgICAgIHByaW50ZigiYXJndlslZF0gPSAlc1xuIiwgaSxhcmd2W2ldKTsKLSAgICAgICAgIGkrKzsKLSAgICB9Ci0gICAgcmV0dXJuIGk7Ci19Ci0KLQotLy8gUmV0dXJucyBhIGNoYXIgKiogbGlzdAotY2hhciAqKmdldF9hcmdzKCkgewotICAgIHN0YXRpYyBjaGFyICp2YWx1ZXNbXSA9IHsgIkRhdmUiLCAiTWlrZSIsICJTdXNhbiIsICJKb2huIiwgIk1pY2hlbGxlIiwgMH07Ci0gICAgcmV0dXJuICZhbXA7dmFsdWVzWzBdOwotfQotCi0vLyBBIGdsb2JhbCB2YXJpYWJsZQotY2hhciAqYXJnc1tdID0geyAiMTIzIiwgIjU0IiwgIi0yIiwgIjAiLCAiTlVMTCIsIDAgfTsKLQotJX0KLSVpbmNsdWRlIHRjbHNoLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBjb21waWxlZCwgd2UgY2FuIHVzZSBvdXIgZnVuY3Rpb25zIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgcHJpbnRfYXJncyB7Sm9obiBHdWlkbyBMYXJyeX0KLWFyZ3ZbMF0gPSBKb2huCi1hcmd2WzFdID0gR3VpZG8KLWFyZ3ZbMl0gPSBMYXJyeQotMwotJSBwdXRzIFtnZXRfYXJnc10KLURhdmUgTWlrZSBTdXNhbiBKb2huIE1pY2hlbGxlCi0lIHB1dHMgW2FyZ3NfZ2V0XQotMTIzIDU0IC0yIDAgTlVMTAotJQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1QZXJoYXBzIHRoZSBvbmx5IHRyaWNreSBwYXJ0IG9mIHRoaXMgZXhhbXBsZSBpcyB0aGUgaW1wbGljaXQgbWVtb3J5IGFsbG9jYXRpb24gdGhhdCBpcyBwZXJmb3JtZWQgYnkgdGhlIDx0dD5UY2xfU3BsaXRMaXN0PC90dD4gZnVuY3Rpb24uICBUbyBwcmV2ZW50IGEgbWVtb3J5IGxlYWssIHdlIGNhbiB1c2UgdGhlIFNXSUcgImZyZWVhcmciIHR5cGVtYXAgdG8gY2xlYW4gdXAgdGhlIGFyZ3VtZW50IHZhbHVlIGFmdGVyIHRoZSBmdW5jdGlvbiBjYWxsIGlzIG1hZGUuIEluIHRoaXMgY2FzZSwgd2Ugc2ltcGx5IGZyZWUgdXAgdGhlIG1lbW9yeSB0aGF0IDx0dD5UY2xfU3BsaXRMaXN0PC90dD4gYWxsb2NhdGVkIGZvciB1cy48cD4KLTxhIG5hbWU9Im41OCI+PC9hPjxoMz4gUmVtYXBwaW5nIGNvbnN0YW50czwvaDM+Ci1CeSBkZWZhdWx0LCBTV0lHIGluc3RhbGxzIEMgY29uc3RhbnRzIGFzIFRjbCByZWFkLW9ubHkgdmFyaWFibGVzLiAgVW5mb3J0dW5hdGVseSwgdGhpcyBoYXMgdGhlIHVuZGVzaXJhYmxlIHNpZGUgZWZmZWN0IHRoYXQgY29uc3RhbnRzIG5lZWQgdG8gYmUgZGVjbGFyZWQgYXMgImdsb2JhbCIgd2hlbiB1c2VkIGluIHN1YnJvdXRpbmVzLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnByb2MgY2xlYXJzY3JlZW4geyB9IHsKLQlnbG9iYWwgR0xfQ09MT1JfQlVGRkVSX0JJVAotCWdsQ2xlYXIgJEdMX0NPTE9SX0JVRkZFUl9CSVQKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSWYgeW91IGhhdmUgaHVuZHJlZHMgb2YgZnVuY3Rpb25zIGhvd2V2ZXIsIHRoaXMgcXVpY2tseSBnZXRzIGFubm95aW5nLiAgIEhlcmUncyBhIGZpeCB1c2luZyBoYXNoIHRhYmxlcyBhbmQgU1dJRyB0eXBlbWFwcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gRGVjbGFyZSBzb21lIFRjbCBoYXNoIHRhYmxlIHZhcmlhYmxlcwotJXsKLXN0YXRpYyBUY2xfSGFzaFRhYmxlICBjb25zdFRhYmxlOyAgICAgIC8qIEhhc2ggdGFibGUgICAgICAgICAgKi8KLXN0YXRpYyBpbnQgICAgICAgICAgICpzd2lnY29uc3Q7ICAgICAgIC8qIFRlbXBvcmFyeSB2YXJpYWJsZSAgKi8KLXN0YXRpYyBUY2xfSGFzaEVudHJ5ICplbnRyeVB0cjsgICAgICAgIC8qIEhhc2ggZW50cnkgICAgICAgICAgKi8KLXN0YXRpYyBpbnQgICAgICAgICAgICBkdW1teTsgICAgICAgICAgIC8qIGR1bW15IHZhbHVlICAgICAgICAgKi8KLSV9Ci0KLS8vIEluaXRpYWxpemUgdGhlIGhhc2ggdGFibGUgKFRoaXMgZ29lcyBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24pCi0KLSVpbml0ICV7Ci0gIFRjbF9Jbml0SGFzaFRhYmxlKCZhbXA7Y29uc3RUYWJsZSxUQ0xfU1RSSU5HX0tFWVMpOwotJX0KLQotLy8gQSBUeXBlbWFwIGZvciBjcmVhdGluZyBjb25zdGFudCB2YWx1ZXMKLS8vICRzb3VyY2UgPSB0aGUgdmFsdWUgb2YgdGhlIGNvbnN0YW50Ci0vLyAkdGFyZ2V0ID0gdGhlIG5hbWUgb2YgdGhlIGNvbnN0YW50Ci0KLSV0eXBlbWFwKHRjbCxjb25zdCkgaW50LCB1bnNpZ25lZCBpbnQsIGxvbmcsIHVuc2lnbmVkIGxvbmcgewotICBlbnRyeVB0ciA9IFRjbF9DcmVhdGVIYXNoRW50cnkoJmFtcDtjb25zdFRhYmxlLCIkdGFyZ2V0IiwmYW1wO2R1bW15KTsKLSAgc3dpZ2NvbnN0ID0gKGludCAqKSBtYWxsb2Moc2l6ZW9mKGludCkpOwotICAqc3dpZ2NvbnN0ID0gJHNvdXJjZTsKLSAgVGNsX1NldEhhc2hWYWx1ZShlbnRyeVB0ciwgc3dpZ2NvbnN0KTsKLSAgLyogTWFrZSBpdCBzbyBjb25zdGFudHMgY2FuIGFsc28gYmUgdXNlZCBhcyB2YXJpYWJsZXMgKi8KLSAgVGNsX0xpbmtWYXIoaW50ZXJwLCIkdGFyZ2V0IiwgKGNoYXIgKikgc3dpZ2NvbnN0LCBUQ0xfTElOS19JTlQgfCBUQ0xfTElOS19SRUFEX09OTFkpOwotfTsKLQotLy8gTm93IGNoYW5nZSBpbnRlZ2VyIGhhbmRsaW5nIHRvIGxvb2sgZm9yIG5hbWVzIGluIGFkZGl0aW9uIHRvIHZhbHVlcwotJXR5cGVtYXAodGNsLGluKSBpbnQsIHVuc2lnbmVkIGludCwgbG9uZywgdW5zaWduZWQgbG9uZyB7Ci0gIFRjbF9IYXNoRW50cnkgKmVudHJ5UHRyOwotICBlbnRyeVB0ciA9IFRjbF9GaW5kSGFzaEVudHJ5KCZhbXA7Y29uc3RUYWJsZSwkc291cmNlKTsKLSAgaWYgKGVudHJ5UHRyKSB7Ci0gICAgJHRhcmdldCA9ICgkdHlwZSkgKCooKGludCAqKSBUY2xfR2V0SGFzaFZhbHVlKGVudHJ5UHRyKSkpOwotICB9IGVsc2UgewotICAgICR0YXJnZXQgPSAoJHR5cGUpIGF0b2koJHNvdXJjZSk7Ci0gIH0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gb3VyIFRjbCBjb2RlLCB3ZSBjYW4gbm93IGFjY2VzcyBjb25zdGFudHMgYnkgbmFtZSB3aXRob3V0IHVzaW5nIHRoZSAiZ2xvYmFsIiBrZXl3b3JkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnByb2MgY2xlYXJzY3JlZW4geyB9IHsKLQlnbENsZWFyIEdMX0NPTE9SX0JVRkZFUl9CSVQKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjU5Ij48L2E+PGgzPiBSZXR1cm5pbmcgdmFsdWVzIGluIGFyZ3VtZW50czwvaDM+Ci1UaGUgImFyZ291dCIgdHlwZW1hcCBjYW4gYmUgdXNlZCB0byByZXR1cm4gYSB2YWx1ZSBvcmlnaW5hdGluZyBmcm9tIGEgZnVuY3Rpb24gYXJndW1lbnQuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBBIHR5cGVtYXAgZGVmaW5pbmcgaG93IHRvIHJldHVybiBhbiBhcmd1bWVudCBieSBhcHBlbmRpbmcgaXQgdG8gdGhlIHJlc3VsdAotJXR5cGVtYXAodGNsLGFyZ291dCkgZG91YmxlICpvdXR2YWx1ZSB7Ci0gICAgICAgIGNoYXIgZHRlbXBbVENMX0RPVUJMRV9TUEFDRV07Ci0gICAgICAgIFRjbF9QcmludERvdWJsZShpbnRlcnAsKigkc291cmNlKSxkdGVtcCk7Ci0gICAgICAgIFRjbF9BcHBlbmRFbGVtZW50KGludGVycCwgZHRlbXApOwotfQotCi0vLyBBIHR5cGVtYXAgdGVsbGluZyBTV0lHIHRvIGlnbm9yZSBhbiBhcmd1bWVudCBmb3IgaW5wdXQKLS8vIEhvd2V2ZXIsIHdlIHN0aWxsIG5lZWQgdG8gcGFzcyBhIHBvaW50ZXIgdG8gdGhlIEMgZnVuY3Rpb24KLSV0eXBlbWFwKHRjbCxpZ25vcmUpIGRvdWJsZSAqb3V0dmFsdWUgewotCXN0YXRpYyBkb3VibGUgdGVtcDsgICAgICAgICAvKiBBIHRlbXBvcmFyeSBob2xkaW5nIHBsYWNlICovCi0JJHRhcmdldCA9ICZhbXA7dGVtcDsKLX0KLQotLy8gTm93IGEgZnVuY3Rpb24gcmV0dXJuaW5nIHR3byB2YWx1ZXMKLWludCBteXBvdyhkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqb3V0dmFsdWUpIHsKLSAgICAgICAgaWYgKChhICZsdDsgMCkgfHwgKGIgJmx0OyAwKSkgcmV0dXJuIC0xOwotICAgICAgICAqb3V0dmFsdWUgPSBwb3coYSxiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGVuIHdyYXBwZWQsIFNXSUcgbWF0Y2hlcyB0aGUgPHR0PmFyZ291dDwvdHQ+IHR5cGVtYXAgdG8gdGhlICI8dHQ+ZG91YmxlICpvdXR2YWx1ZTwvdHQ+IiBhcmd1bWVudC4gVGhlICJpZ25vcmUiIHR5cGVtYXAgdGVsbHMgU1dJRyB0byBzaW1wbHkgaWdub3JlIHRoaXMgYXJndW1lbnQgd2hlbiBnZW5lcmF0aW5nIHdyYXBwZXIgY29kZS4gIEFzIGEgcmVzdWx0LCBhIFRjbCBmdW5jdGlvbiB1c2luZyB0aGVzZSB0eXBlbWFwcyB3aWxsIHdvcmsgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIG15cG93IDIgMyAgICAgIyBSZXR1cm5zIHR3byB2YWx1ZXMsIGEgc3RhdHVzIHZhbHVlIGFuZCB0aGUgcmVzdWx0Ci0wIDgKLSUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQW4gYWx0ZXJuYXRpdmUgYXBwcm9hY2ggdG8gdGhpcyBpcyB0byByZXR1cm4gdmFsdWVzIGluIGEgVGNsIHZhcmlhYmxlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHRjbCxhcmdvdXQpIGRvdWJsZSAqb3V0dmFsdWUgewotCWNoYXIgdGVtcFtUQ0xfRE9VQkxFX1NQQUNFXTsKLQlUY2xfUHJpbnREb3VibGUoaW50ZXJwLCooJHNvdXJjZSksZHRlbXApOwotCVRjbF9TZXRWYXIoaW50ZXJwLCRhcmcsdGVtcCwwKTsKLX0KLSV0eXBlbWFwKHRjbCxpbikgZG91YmxlICpvdXR2YWx1ZSB7Ci0Jc3RhdGljIGRvdWJsZSB0ZW1wOwotCSR0YXJnZXQgPSAmYW1wO3RlbXA7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU91ciBUY2wgc2NyaXB0IGNhbiBub3cgZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgc3RhdHVzIFtteXBvdyAyIDMgYV0KLSUgcHV0cyAkc3RhdHVzCi0wCi0lIHB1dHMgJGEKLTguMAotJQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSGVyZSwgd2UgaGF2ZSBwYXNzZWQgdGhlIG5hbWUgb2YgYSBUY2wgIHZhcmlhYmxlIHRvIG91ciBDIHdyYXBwZXIgZnVuY3Rpb24gd2hpY2ggdGhlbiBwbGFjZXMgdGhlIHJldHVybiB2YWx1ZSBpbiB0aGF0IHZhcmlhYmxlLiAgIFRoaXMgaXMgbm93IHZlcnkgY2xvc2UgdG8gdGhlIHdheSBpbiB3aGljaCBhIEMgZnVuY3Rpb24gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdvdWxkIHdvcmsuPHA+Ci08YSBuYW1lPSJuNjAiPjwvYT48aDM+IE1hcHBpbmcgQyBzdHJ1Y3R1cmVzIGludG8gVGNsIExpc3RzPC9oMz4KLVN1cHBvc2UgeW91IGhhdmUgYSBDIHN0cnVjdHVyZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgc3RydWN0IHsKLSAgY2hhciAgbG9naW5bMTZdOyAgICAgICAgICAgIC8qIExvZ2luIElEICAqLwotICBpbnQgICB1aWQ7ICAgICAgICAgICAgICAgICAgLyogVXNlciBJRCAgICovCi0gIGludCAgIGdpZDsgICAgICAgICAgICAgICAgICAvKiBHcm91cCBJRCAgKi8KLSAgY2hhciAgbmFtZVszMl07ICAgICAgICAgICAgIC8qIFVzZXIgbmFtZSAqLwotICBjaGFyICBob21lWzI1Nl07ICAgICAgICAgICAgLyogSG9tZSBkaXJlY3RvcnkgKi8KLX0gVXNlcjsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQnkgZGVmYXVsdCwgU1dJRyB3aWxsIHNpbXBseSB0cmVhdCBhbGwgb2NjdXJyZW5jZXMgb2YgIjx0dD5Vc2VyPC90dD4iIGFzIGEgcG9pbnRlci4gICBUaHVzLCBmdW5jdGlvbnMgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5leHRlcm4gdm9pZCBhZGRfdXNlcihVc2VyIHUpOwotZXh0ZXJuIFVzZXIgKmxvb2t1cF91c2VyKGNoYXIgKm5hbWUpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci13aWxsIHdvcmssIGJ1dCB0aGV5IHdpbGwgYmUgd2VpcmQuICAgSW4gZmFjdCwgdGhleSBtYXkgbm90IHdvcmsgYXQgYWxsIHVubGVzcyB5b3Ugd3JpdGUgaGVscGVyIGZ1bmN0aW9ucyB0byBjcmVhdGUgdXNlcnMgYW5kIGV4dHJhY3QgZGF0YS4gICAgQSB0eXBlbWFwIGNhbiBiZSB1c2VkIHRvIGZpeCB0aGlzIHByb2JsZW0gaG93ZXZlci4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBUaGlzIHdvcmtzIGZvciBib3RoICJVc2VyIiBhbmQgIlVzZXIgKiIKLSV0eXBlbWFwKHRjbCxpbikgVXNlciAqIHsKLQlpbnQgdGVtcGM7Ci0JY2hhciAqKnRlbXBhOwotCXN0YXRpYyBVc2VyIHRlbXA7Ci0JaWYgKFRjbF9TcGxpdExpc3QoaW50ZXJwLCRzb3VyY2UsJmFtcDt0ZW1wYywmYW1wO3RlbXBhKSA9PSBUQ0xfRVJST1IpIHJldHVybiBUQ0xfRVJST1I7Ci0JaWYgKHRlbXBjICE9IDUpIHsKLQkJZnJlZSgoY2hhciAqKSB0ZW1wYSk7Ci0JCWludGVycC0mZ3Q7cmVzdWx0ID0gIk5vdCBhIHZhbGlkIFVzZXIgcmVjb3JkIjsKLQkJcmV0dXJuIFRDTF9FUlJPUjsKLQl9Ci0JLyogU3BsaXQgb3V0IHRoZSBkaWZmZXJlbnQgZmllbGRzICovCi0Jc3RybmNweSh0ZW1wLmxvZ2luLHRlbXBhWzBdLDE2KTsKLQl0ZW1wLnVpZCA9IGF0b2kodGVtcGFbMV0pOwotCXRlbXAuZ2lkID0gYXRvaSh0ZW1wYVsyXSk7Ci0Jc3RybmNweSh0ZW1wLm5hbWUsdGVtcGFbM10sMzIpOwotCXN0cm5jcHkodGVtcC5ob21lLHRlbXBhWzRdLDI1Nik7Ci0JJHRhcmdldCA9ICZhbXA7dGVtcDsKLQlmcmVlKChjaGFyICopIHRlbXBhKTsKLX0KLQotLy8gRGVzY3JpYmUgaG93IHdlIHdhbnQgdG8gcmV0dXJuIGEgdXNlciByZWNvcmQKLSV0eXBlbWFwKHRjbCxvdXQpIFVzZXIgKiB7Ci0JY2hhciB0ZW1wWzIwXTsKLQlpZiAoJHNvdXJjZSkgewotCVRjbF9BcHBlbmRFbGVtZW50KGludGVycCwkc291cmNlLSZndDtsb2dpbik7Ci0Jc3ByaW50Zih0ZW1wLCIlZCIsJHNvdXJjZS0mZ3Q7dWlkKTsKLQlUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsdGVtcCk7Ci0Jc3ByaW50Zih0ZW1wLCIlZCIsJHNvdXJjZS0mZ3Q7Z2lkKTsKLQlUY2xfQXBwZW5kRWxlbWVudChpbnRlcnAsdGVtcCk7Ci0JVGNsX0FwcGVuZEVsZW1lbnQoaW50ZXJwLCRzb3VyY2UtJmd0O25hbWUpOwotCVRjbF9BcHBlbmRFbGVtZW50KGludGVycCwkc291cmNlLSZndDtob21lKTsKLQl9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZXNlIGZ1bmN0aW9uIG1hcnNoYWxsIFRjbCBsaXN0cyB0byBhbmQgZnJvbSBvdXIgPHR0PlVzZXI8L3R0PiBkYXRhIHN0cnVjdHVyZS4gVGhpcyBhbGxvd3MgYSBtb3JlIG5hdHVyYWwgaW1wbGVtZW50YXRpb24gdGhhdCB3ZSBjYW4gdXNlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgYWRkX3VzZXIge2JlYXpsZXkgNTAwIDUwMCAiRGF2ZSBCZWF6bGV5IiAiL2hvbWUvYmVhemxleSJ9Ci0lIGxvb2t1cF91c2VyIGJlYXpsZXkKLWJlYXpsZXkgNTAwIDUwMCB7RGF2ZSBCZWF6bGV5fSAvaG9tZS9iZWF6bGV5Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgaXMgYSBtdWNoIGNsZWFuZXIgaW50ZXJmYWNlIChhbHRob3VnaCBhdCB0aGUgY29zdCBvZiBzb21lIHBlcmZvcm1hbmNlKS4gVGhlIG9ubHkgY2F1dGlvbiBJIG9mZmVyIGlzIHRoYXQgdGhlIHBvaW50ZXIgdmlldyBvZiB0aGUgd29ybGQgaXMgcGVydmFzaXZlIHRocm91Z2hvdXQgU1dJRy4gUmVtYXBwaW5nIGNvbXBsZXggZGF0YXR5cGVzIGxpa2UgdGhpcyB3aWxsIHVzdWFsbHkgd29yaywgYnV0IGV2ZXJ5IG5vdyBhbmQgdGhlbiB5b3UgbWlnaHQgZmluZCB0aGF0IGl0IGJyZWFrcy4gRm9yIGV4YW1wbGUsIGlmIHdlIG5lZWRlZCB0byBtYW5pcHVsYXRlIGFycmF5cyBvZiBVc2VycyAoYWxzbyBtYXBwZWQgYXMgYSAiPHR0PlVzZXIgKjwvdHQ+IiksIHRoZSB0eXBlbWFwcyBkZWZpbmVkIGhlcmUgd291bGQgYnJlYWsgZG93biBhbmQgc29tZXRoaW5nIGVsc2Ugd291bGQgYmUgbmVlZGVkLiAgQ2hhbmdpbmcgdGhlIHJlcHJlc2VudGF0aW9uIGluIHRoaXMgbWFubmVyIG1heSBhbHNvIGJyZWFrIHRoZSBvYmplY3Qtb3JpZW50ZWQgaW50ZXJmYWNlLiA8cD4KLTxhIG5hbWU9Im42MSI+PC9hPjxoMz4gVXNlZnVsIGZ1bmN0aW9uczwvaDM+Ci1UaGUgZm9sbG93aW5nIHRhYmxlcyBwcm92aWRlIHNvbWUgZnVuY3Rpb25zIHRoYXQgbWF5IGJlIHVzZWZ1bCBpbiB3cml0aW5nIFRjbCB0eXBlbWFwcy4gQm90aCBUY2wgNy54IGFuZCBUY2wgOC54IGFyZSBjb3ZlcmVkLiAgRm9yIFRjbCA3LngsIGV2ZXJ5dGhpbmcgaXMgYSBzdHJpbmcgc28gdGhlIGludGVyZmFjZSBpcyByZWxhdGl2ZWx5IHNpbXBsZS4gRm9yIFRjbCA4LCBldmVyeXRoaW5nIGlzIG5vdyBhIFRjbCBvYmplY3Qgc28gYSBtb3JlIHByZWNpc2Ugc2V0IG9mIGZ1bmN0aW9ucyBpcyByZXF1aXJlZC4gR2l2ZW4gdGhlIGFscGhhLXJlbGVhc2Ugc3RhdHVzIG9mIFRjbCA4LCB0aGUgZnVuY3Rpb25zIGRlc2NyaWJlZCBoZXJlIG1heSBjaGFuZ2UgaW4gZnV0dXJlIHJlbGVhc2VzLjxwPgotPGNlbnRlcj4KLTxpbWcgc3JjPSJjaDEwLnRhYmxlLjEucG5nIj48YnI+Ci08aW1nIHNyYz0iY2gxMC50YWJsZS4yLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoMTAudGFibGUuMy5wbmciPjxicj4KLTxpbWcgc3JjPSJjaDEwLnRhYmxlLjQucG5nIj48YnI+Ci08aW1nIHNyYz0iY2gxMC50YWJsZS41LnBuZyI+PGJyPgotPGltZyBzcmM9ImNoMTAudGFibGUuNi5wbmciPjxicj4KLTxpbWcgc3JjPSJjaDEwLnRhYmxlLjcucG5nIj4KLTwvY2VudGVyPjxwPgotPHA+Ci08YSBuYW1lPSJuNjIiPjwvYT48aDM+IFN0YW5kYXJkICB0eXBlbWFwczwvaDM+Ci1UaGUgZm9sbG93aW5nIHR5cGVtYXBzIHNob3cgaG93IHRvIGNvbnZlcnQgYSBmZXcgY29tbW9uIGtpbmRzIG9mIG9iamVjdHMgYmV0d2VlbiBUY2wgYW5kIEMgKGFuZCB0byBnaXZlIGEgYmV0dGVyIGlkZWEgb2YgaG93IHR5cGVtYXBzIHdvcmspPHA+Ci08Y2VudGVyPgotPGltZyBzcmM9ImNoMTAudGFibGUuOC5wbmciPjxicj4KLTxpbWcgc3JjPSJjaDEwLnRhYmxlLjkucG5nIj48YnI+Ci08aW1nIHNyYz0iY2gxMC50YWJsZS4xMC5wbmciPjxicj4KLTxpbWcgc3JjPSJjaDEwLnRhYmxlLjExLnBuZyI+Ci08L2NlbnRlcj48cD4KLTxwPgotPGEgbmFtZT0ibjYzIj48L2E+PGgzPiBQb2ludGVyIGhhbmRsaW5nPC9oMz4KLVNXSUcgcG9pbnRlcnMgYXJlIG1hcHBlZCBpbnRvIFB5dGhvbiBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIGhleGFkZWNpbWFsIHZhbHVlIGFuZCB0eXBlLiAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuZCByZWFkIHBvaW50ZXIgdmFsdWVzLjxwPgotPGNlbnRlcj48aW1nIHNyYz0iY2gxMC50YWJsZS4xMi5wbmciPjwvY2VudGVyPjxwPgotPHA+Ci1UaGVzZSBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgaW4gdHlwZW1hcHMgYXMgd2VsbC4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgdHlwZW1hcCBtYWtlcyBhbiBhcmd1bWVudCBvZiAiPHR0PmNoYXIgKmJ1ZmZlcjwvdHQ+IiBhY2NlcHQgYSBwb2ludGVyIGluc3RlYWQgb2YgYSBOVUxMLXRlcm1pbmF0ZWQgQVNDSUkgc3RyaW5nLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHRjbCxpbikgY2hhciAqYnVmZmVyIHsKLQlpZiAoU1dJR19HZXRQdHIoJHNvdXJjZSwgKHZvaWQgKiopICZhbXA7JHRhcmdldCwgIiRtYW5nbGUiKSkgewotCQlUY2xfU2V0UmVzdWx0KGludGVycCwiVHlwZSBlcnJvci4gTm90IGEgcG9pbnRlciIsIFRDTF9TVEFUSUMpOwotCQlyZXR1cm4gVENMX0VSUk9SOwotCX0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm90ZSB0aGF0IHRoZSA8dHQ+JG1hbmdsZTwvdHQ+IHZhcmlhYmxlIGdlbmVyYXRlcyB0aGUgdHlwZSBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhdHlwZSB1c2VkIGluIHRoZSB0eXBlbWFwLjxwPgotPHA+Ci1CeSBub3cgeW91IGhvcGVmdWxseSBoYXZlIHRoZSBpZGVhIHRoYXQgdHlwZW1hcHMgYXJlIGEgcG93ZXJmdWwgbWVjaGFuaXNtIGZvciBidWlsZGluZyBtb3JlIHNwZWNpYWxpemVkIGFwcGxpY2F0aW9ucy4gIFdoaWxlIHdyaXRpbmcgdHlwZW1hcHMgY2FuIGJlIHRlY2huaWNhbCwgbWFueSBoYXZlIGFscmVhZHkgYmVlbiB3cml0dGVuIGZvciB5b3UuICBTZWUgdGhlIFNXSUcgbGlicmFyeSByZWZlcmVuY2UgZm9yIG1vcmUgaW5mb3JtYXRpb24uPHA+Ci08YSBuYW1lPSJuMTIiPjwvYT48aDI+IENvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCB3aXRoIFNXSUc8L2gyPgotQWZ0ZXIgeW91IHN0YXJ0IHRvIHdvcmsgd2l0aCBUY2wgZm9yIGF3aGlsZSwgeW91IHN1ZGRlbmx5IHJlYWxpemUgdGhhdCB0aGVyZSBhcmUgYW4gdW5pbWFnaW5hYmxlIG51bWJlciBvZiBleHRlbnNpb25zLCB0b29scywgYW5kIG90aGVyIHBhY2thZ2VzLiAgVG8gbWFrZSBtYXR0ZXJzIHdvcnNlLCB0aGVyZSBhcmUgYWJvdXQgMjAgYmlsbGlvbiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgVGNsLCBub3QgYWxsIG9mIHdoaWNoIGFyZSBjb21wYXRpYmxlIHdpdGggZWFjaCBleHRlbnNpb24gKHRoaXMgaXMgdG8gbWFrZSBsaWZlIGludGVyZXN0aW5nIG9mIGNvdXJzZSkuPHA+Ci08cD4KLVdoaWxlIFNXSUcgaXMgY2VydGFpbmx5IG5vdCBhIG1hZ2ljYWwgc29sdXRpb24gdG8gdGhlIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudCBwcm9ibGVtLCBpdCBjYW4gaGVscCBvdXQgYWxvdCBpbiBhIG51bWJlciBvZiBrZXkgYXJlYXMgOjxwPgotPHA+Ci08dWw+Ci08bGk+U1dJRyBnZW5lcmF0ZWQgY29kZSBjYW4gYmUgdXNlZCB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBUY2wvVGsgbmV3ZXIgdGhhbiA3LjMvMy42LiBUaGlzIGluY2x1ZGVzIHRoZSBUY2wgTmV0c2NhcGUgUGx1Z2luIGFuZCBUY2wgOC4wYTIuCi08bGk+VGhlIFNXSUcgbGlicmFyeSBtZWNoYW5pc20gY2FuIGJlIHVzZWQgdG8gbWFuYWdlIHZhcmlvdXMgY29kZSBmcmFnbWVudHMgYW5kIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucy4KLTxsaT5TV0lHIGdlbmVyYXRlZCBjb2RlIHVzdWFsbHkgcmVxdWlyZXMgbm8gbW9kaWZpY2F0aW9uIHNvIGl0IGlzIHJlbGF0aXZlbHkgZWFzeSB0byBzd2l0Y2ggYmV0d2VlbiBkaWZmZXJlbnQgVGNsIHZlcnNpb25zIGFzIG5lY2Vzc2FyeSBvciB1cGdyYWRlIHRvIGEgbmV3ZXIgdmVyc2lvbiB3aGVuIHRoZSB0aW1lIGNvbWVzIChvZiBjb3Vyc2UsIHRoZSBTdW4gVGNsL1RrIHRlYW0gbWlnaHQgaGF2ZSBjaGFuZ2VkIG90aGVyIHRoaW5ncyB0byBrZWVwIHlvdSBvY2N1cGllZCkKLTwvdWw+Ci08YSBuYW1lPSJuNjQiPjwvYT48aDM+IFdyaXRpbmcgYSBtYWluIHByb2dyYW0gYW5kIFRjbF9BcHBJbml0KCk8L2gzPgotVGhlIHRyYWRpdGlvbmFsIG1ldGhvZCBvZiBjcmVhdGluZyBhIG5ldyBUY2wgZXh0ZW5zaW9uIHJlcXVpcmVkIGEgcHJvZ3JhbW1lciB0byB3cml0ZSBhIHNwZWNpYWwgZnVuY3Rpb24gY2FsbGVkIDx0dD5UY2xfQXBwSW5pdCgpPC90dD4gdGhhdCB3b3VsZCBpbml0aWFsaXplIHlvdXIgZXh0ZW5zaW9uIGFuZCBzdGFydCB0aGUgVGNsIGludGVycHJldGVyLiAgQSB0eXBpY2FsIDx0dD5UY2xfQXBwSW5pdCgpPC90dD4gZnVuY3Rpb24gbG9va3MgbGlrZSB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBtYWluLmMgKi8KLSNpbmNsdWRlICZsdDt0Y2wuaCZndDsKLQotbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0JVGNsX01haW4oYXJnYyxhcmd2KTsKLQlleGl0KDApOwotfQotCi1pbnQgVGNsX0FwcEluaXQoVGNsX0ludGVycCAqaW50ZXJwKSB7Ci0JaWYgKFRjbF9Jbml0KGludGVycCkgPT0gVENMX0VSUk9SKSB7Ci0JCXJldHVybiBUQ0xfRVJST1I7Ci0JfQotCQotCS8qIEluaXRpYWxpemUgeW91ciBleHRlbnNpb24gKi8KLQlpZiAoWW91cl9Jbml0KGludGVycCkgPT0gVENMX0VSUk9SKSB7Ci0JCXJldHVybiBUQ0xfRVJST1I7Ci0JfQotCi0JdGNsX1JjRmlsZU5hbWUgPSAifi8ubXlhcHAudGNsIjsKLQlyZXR1cm4gVENMX09LOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaGlsZSByZWxhdGl2ZWx5IHNpbXBsZSB0byB3cml0ZSwgdGhlcmUgYXJlIHRvbnMgb2YgcHJvYmxlbXMgd2l0aCBkb2luZyB0aGlzLiAgRmlyc3QsIGVhY2ggZXh0ZW5zaW9uIHRoYXQgeW91IHVzZSB0eXBpY2FsbHkgaGFzIHRoZWlyIG93biA8dHQ+VGNsX0FwcEluaXQoKTwvdHQ+IGZ1bmN0aW9uLiAgIFRoaXMgZm9yY2VzIHlvdSB0byB3cml0ZSBhIHNwZWNpYWwgb25lIHRvIGluaXRpYWxpemUgZXZlcnl0aGluZyBieSBoYW5kLiAgIFNlY29uZGx5LCB0aGUgcHJvY2VzcyBvZiB3cml0aW5nIGEgbWFpbiBwcm9ncmFtIGFuZCBpbml0aWFsaXppbmcgdGhlIGludGVycHJldGVyIHZhcmllcyBiZXR3ZWVuIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiBUY2wgYW5kIGRpZmZlcmVudCBwbGF0Zm9ybXMuICBGb3IgZXhhbXBsZSwgaW4gVGNsIDcuNCwgdGhlIHZhcmlhYmxlICI8dHQ+dGNsX1JjRmlsZU5hbWU8L3R0PiIgaXMgYSBDIHZhcmlhYmxlIHdoaWxlIGluIFRjbDcuNSBhbmQgbmV3ZXIgdmVyc2lvbnMgaXRzIGEgVGNsIHZhcmlhYmxlIGluc3RlYWQuICAgU2ltaWxhcmx5LCB0aGUgPHR0PlRjbF9BcHBJbml0PC90dD4gZnVuY3Rpb24gd3JpdHRlbiBmb3IgYSBVbml4IG1hY2hpbmUgbWlnaHQgbm90IGNvbXBpbGUgY29ycmVjdGx5IG9uIGEgTWFjIG9yIFdpbmRvd3MgbWFjaGluZS48cD4KLTxwPgotSW4gU1dJRywgaXQgaXMgYWxtb3N0IG5ldmVyIG5lY2Vzc2FyeSB0byB3cml0ZSBhIDx0dD5UY2xfQXBwSW5pdCgpPC90dD4gZnVuY3Rpb24gYmVjYXVzZSB0aGlzIGlzIG5vdyBkb25lIGJ5ICBTV0lHIGxpYnJhcnkgIGZpbGVzIHN1Y2ggYXMgPHR0PnRjbHNoLmk8L3R0PiBvciA8dHQ+d2lzaC5pPC90dD4uICAgIFRvIGdpdmUgYSBiZXR0ZXIgaWRlYSBvZiB3aGF0IHRoZXNlIGZpbGVzIGRvLCBoZXJlJ3MgdGhlIGNvZGUgZnJvbSB0aGUgU1dJRyA8dHQ+dGNsc2guaTwvdHQ+IGZpbGUgd2hpY2ggaXMgcm91Z2hseSBjb21wYXJhYmxlIHRvIHRoZSBhYm92ZSBjb2RlPHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gdGNsc2guaSA6IFNXSUcgbGlicmFyeSBmaWxlIGZvciByZWJ1aWxkaW5nIHRjbHNoCi0lewotCi0vKiBBIFRDTF9BcHBJbml0KCkgZnVuY3Rpb24gdGhhdCBsZXRzIHlvdSBidWlsZCBhIG5ldyBjb3B5Ci0gKiBvZiB0Y2xzaC4KLSAqCi0gKiBUaGUgbWFjcm8gU1dJR19pbml0IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBpbml0aWFsaXphdGlvbgotICogZnVuY3Rpb24gaW4gdGhlIHdyYXBwZXIgZmlsZS4KLSAqLwotCi0jaWZuZGVmIFNXSUdfUmNGaWxlTmFtZQotY2hhciAqU1dJR19SY0ZpbGVOYW1lID0gIn4vLm15YXBwcmMiOwotI2VuZGlmCi0KLWludCBUY2xfQXBwSW5pdChUY2xfSW50ZXJwICppbnRlcnApewotCi0gIGlmIChUY2xfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikKLSAgICByZXR1cm4gVENMX0VSUk9SOwotCi0gIC8qIE5vdyBpbml0aWFsaXplIG91ciBmdW5jdGlvbnMgKi8KLSAgaWYgKFNXSUdfaW5pdChpbnRlcnApID09IFRDTF9FUlJPUikKLSAgICByZXR1cm4gVENMX0VSUk9SOwotCi0jaWYgVENMX01BSk9SX1ZFUlNJT04gJmd0OyA3IHx8IFRDTF9NQUpPUl9WRVJTSU9OID09IDcgJmFtcDsmYW1wOyBUQ0xfTUlOT1JfVkVSU0lPTiAmZ3Q7PSA1Ci0gICBUY2xfU2V0VmFyKGludGVycCwidGNsX3JjRmlsZU5hbWUiLFNXSUdfUmNGaWxlTmFtZSxUQ0xfR0xPQkFMX09OTFkpOwotI2Vsc2UKLSAgIHRjbF9SY0ZpbGVOYW1lID0gU1dJR19SY0ZpbGVOYW1lOwotI2VuZGlmCi0gIHJldHVybiBUQ0xfT0s7Ci19Ci0KLSNpZiBUQ0xfTUFKT1JfVkVSU0lPTiAmZ3Q7IDcgfHwgVENMX01BSk9SX1ZFUlNJT04gPT0gNyAmYW1wOyZhbXA7IFRDTF9NSU5PUl9WRVJTSU9OICZndDs9IDQKLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICBUY2xfTWFpbihhcmdjLCBhcmd2LCBUY2xfQXBwSW5pdCk7Ci0gIHJldHVybigwKTsKLQotfQotI2Vsc2UKLWV4dGVybiBpbnQgbWFpbigpOwotI2VuZGlmCi0KLSV9Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgZmlsZSBpcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBhcyBhIG5vcm1hbCA8dHQ+VGNsX0FwcEluaXQoKTwvdHQ+IGZ1bmN0aW9uIGV4Y2VwdCB0aGF0IGl0IHN1cHBvcnRzIGEgdmFyaWV0eSBvZiBUY2wgdmVyc2lvbnMuICBXaGVuIGluY2x1ZGVkIGludG8gYW4gaW50ZXJmYWNlIGZpbGUsIHRoZSBzeW1ib2wgPHR0PlNXSUdfaW5pdDwvdHQ+IGNvbnRhaW5zIHRoZSBhY3R1YWwgbmFtZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKFRoaXMgc3ltYm9sIGlzIGRlZmluZWQgYnkgU1dJRyB3aGVuIGl0IGNyZWF0ZXMgdGhlIHdyYXBwZXIgY29kZSkuICAgU2ltaWxhcmx5LCBhIHN0YXJ0dXAgZmlsZSBjYW4gYmUgZGVmaW5lZCBieSBzaW1wbHkgZGVmaW5pbmcgdGhlIHN5bWJvbCA8dHQ+U1dJR19SY0ZpbGVOYW1lPC90dD4uICAgVGh1cywgYSB0eXBpY2FsIGludGVyZmFjZSBmaWxlIG1pZ2h0IGxvb2sgbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGdyYXBoCi0lewotI2luY2x1ZGUgImdyYXBoLmgiCi0jZGVmaW5lIFNXSUdfUmNGaWxlTmFtZSAiZ3JhcGgudGNsIgotJX0KLQotJWluY2x1ZGUgdGNsc2guaQotCi0uLi4gZGVjbGFyYXRpb25zIC4uLgotCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUJ5ICBpbmNsdWRpbmcgdGhlIDx0dD50Y2xzaC5pPC90dD4sIHlvdSBhdXRvbWF0aWNhbGx5IGdldCBhIDx0dD5UY2xfQXBwSW5pdCgpPC90dD4gZnVuY3Rpb24uICAgQSB2YXJpZXR5IG9mIGxpYnJhcnkgZmlsZXMgYXJlIGFsc28gYXZhaWxhYmxlLiAgPHR0Pndpc2guaTwvdHQ+IGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGEgbmV3IHdpc2ggZXhlY3V0YWJsZSwgPHR0PmV4cGVjdC5pPC90dD4gY29udGFpbnMgdGhlIG1haW4gcHJvZ3JhbSBmb3IgRXhwZWN0LCBhbmQgPHR0PmlzaC5pPC90dD4sIDx0dD5pdGNsc2guaTwvdHQ+LCA8dHQ+aXdpc2guaTwvdHQ+LCBhbmQgPHR0Pml0a3dpc2guaTwvdHQ+IGNvbnRhaW4gaW5pdGlhbGl6YXRpb25zIGZvciB2YXJpb3VzIGluY2FybmF0aW9ucyBvZiBbaW5jciBUY2xdLjxwPgotPGEgbmFtZT0ibjY1Ij48L2E+PGgzPiBDcmVhdGluZyBhIG5ldyBwYWNrYWdlIGluaXRpYWxpemF0aW9uIGxpYnJhcnk8L2gzPgotSWYgYSBwYXJ0aWN1bGFyIFRjbCBleHRlbnNpb24gcmVxdWlyZXMgc3BlY2lhbCBpbml0aWFsaXphdGlvbiwgeW91IGNhbiBjcmVhdGUgYSBzcGVjaWFsIFNXSUcgbGlicmFyeSBmaWxlIHRvIGluaXRpYWxpemUgaXQuICBGb3IgZXhhbXBsZSwgYSBsaWJyYXJ5IGZpbGUgdG8gZXh0ZW5kIEV4cGVjdCBsb29rcyBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gZXhwZWN0LmkgOiBTV0lHIExpYnJhcnkgZmlsZSBmb3IgRXhwZWN0Ci0lewotCi0vKiBtYWluLmMgLSBtYWluKCkgYW5kIHNvbWUgbG9nZ2luZyByb3V0aW5lcyBmb3IgZXhwZWN0Ci0KLVdyaXR0ZW4gYnk6IERvbiBMaWJlcywgTklTVCwgMi82LzkwCi0KLURlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBwcm9ncmFtIHdhcyBwYWlkIGZvciBieSBVLlMuIHRheAotZG9sbGFycy4gIFRoZXJlZm9yZSBpdCBpcyBwdWJsaWMgZG9tYWluLiAgSG93ZXZlciwgdGhlIGF1dGhvciBhbmQgTklTVAotd291bGQgYXBwcmVjaWF0ZSBjcmVkaXQgaWYgdGhpcyBwcm9ncmFtIG9yIHBhcnRzIG9mIGl0IGFyZSB1c2VkLgotKi8KLQotI2luY2x1ZGUgImV4cGVjdF9jZi5oIgotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0jaW5jbHVkZSBJTkNMVURFX1RDTAotI2luY2x1ZGUgImV4cGVjdF90Y2wuaCIKLQotdm9pZAotbWFpbihhcmdjLCBhcmd2KQotaW50IGFyZ2M7Ci1jaGFyICphcmd2W107Ci17Ci0gICAgICAgIGludCByYyA9IDA7Ci0gICAgICAgIFRjbF9JbnRlcnAgKmludGVycCA9IFRjbF9DcmVhdGVJbnRlcnAoKTsKLSAgICAgICAgaW50IFNXSUdfaW5pdChUY2xfSW50ZXJwICopOwotCi0gICAgICAgIGlmIChUY2xfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJUY2xfSW5pdCBmYWlsZWQ6ICVzXG4iLGludGVycC0mZ3Q7cmVzdWx0KTsKLSAgICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChFeHBfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJFeHBfSW5pdCBmYWlsZWQ6ICVzXG4iLGludGVycC0mZ3Q7cmVzdWx0KTsKLSAgICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogU1dJRyBpbml0aWFsaXphdGlvbi4gLS0tIDIvMTEvOTYgICovCi0gICAgICAgIGlmIChTV0lHX2luaXQoaW50ZXJwKSA9PSBUQ0xfRVJST1IpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwiU1dJRyBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4iLCBpbnRlcnAtJmd0O3Jlc3VsdCk7Ci0gICAgICAgICAgICAgICAgZXhpdCgxKTsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cF9wYXJzZV9hcmd2KGludGVycCxhcmdjLGFyZ3YpOwotICAgICAgICAvKiBiZWNvbWUgaW50ZXJhY3RpdmUgaWYgcmVxdWVzdGVkIG9yICJub3RoaW5nIHRvIGRvIiAqLwotICAgICAgICBpZiAoZXhwX2ludGVyYWN0aXZlKQotICAgICAgICAgICAgICAgICh2b2lkKSBleHBfaW50ZXJwcmV0ZXIoaW50ZXJwKTsKLSAgICAgICAgZWxzZSBpZiAoZXhwX2NtZGZpbGUpCi0gICAgICAgICAgICAgICAgcmMgPSBleHBfaW50ZXJwcmV0X2NtZGZpbGUoaW50ZXJwLGV4cF9jbWRmaWxlKTsKLSAgICAgICAgZWxzZSBpZiAoZXhwX2NtZGZpbGVuYW1lKQotICAgICAgICAgICAgICAgIHJjID0gZXhwX2ludGVycHJldF9jbWRmaWxlbmFtZShpbnRlcnAsZXhwX2NtZGZpbGVuYW1lKTsKLQotICAgICAgICAvKiBhc3NlcnQoZXhwX2NtZGxpbmVjbWRzICE9IDApICovCi0gICAgICAgIGV4cF9leGl0KGludGVycCxyYyk7Ci0gICAgICAgIC8qTk9UUkVBQ0hFRCovCi19Ci0lfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiB0aGUgZXZlbnQgdGhhdCB5b3UgbmVlZCB0byB3cml0ZSBhIG5ldyBsaWJyYXJ5IGZpbGUgc3VjaCBhcyB0aGlzLCB0aGUgcHJvY2VzcyB1c3VhbGx5IGlzbid0IHRvbyBkaWZmaWN1bHQuICBTdGFydCBieSBncmFiYmluZyB0aGUgb3JpZ2luYWwgPHR0PlRjbF9BcHBJbml0KCk8L3R0PiBmdW5jdGlvbiBmb3IgdGhlIHBhY2thZ2UuICBFbmNsb3NlIGl0IGluIGEgPHR0PiV7LCV9PC90dD4gYmxvY2suICAgTm93IGFkZCBhIGxpbmUgdGhhdCBtYWtlcyBhIGNhbGwgdG8gPHR0PlNXSUdfaW5pdCgpPC90dD4uICAgIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IHJlc29sdmUgdG8gdGhlIHJlYWwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gd2hlbiBjb21waWxlZC48cD4KLTxhIG5hbWU9Im42NiI+PC9hPjxoMz4gQ29tYmluaW5nIFRjbC9UayBFeHRlbnNpb25zPC9oMz4KLUEgc2xpZ2h0bHkgZGlmZmVyZW50IHByb2JsZW0gY29uY2VybnMgdGhlIG1peGluZyBvZiB2YXJpb3VzIGV4dGVuc2lvbnMuICBNb3N0IGV4dGVuc2lvbnMgZG9uJ3QgcmVxdWlyZSBhbnkgc3BlY2lhbCBpbml0aWFsaXphdGlvbiBvdGhlciB0aGFuIGNhbGxpbmcgdGhlaXIgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uICBUbyBkbyB0aGlzLCB3ZSBhbHNvIHVzZSBTV0lHIGxpYnJhcnkgbWVjaGFuaXNtLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGJsdC5pIDogU1dJRyBsaWJyYXJ5IGZpbGUgZm9yIGluaXRpYWxpemluZyB0aGUgQkxUIGV4dGVuc2lvbgotJXsKLSNpZmRlZiBfX2NwbHVzcGx1cyAKLWV4dGVybiAiQyIgewotI2VuZGlmCi1leHRlcm4gaW50IEJsdF9Jbml0KFRjbF9JbnRlcnAgKik7Ci0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotJX0KLSVpbml0ICV7Ci0JaWYgKEJsdF9Jbml0KGludGVycCkgPT0gVENMX0VSUk9SKSB7Ci0JCXJldHVybiBUQ0xfRVJST1I7Ci0JfQotJX0KLQotCi0vLyB0aXguaSA6IFNXSUcgbGlicmFyeSBmaWxlIGZvciBpbml0aWFsaXppbmcgdGhlIFRpeCBleHRlbnNpb24KLSV7Ci0jaWZkZWYgX19jcGx1c3BsdXMgCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotZXh0ZXJuIGludCBUaXhfSW5pdChUY2xfSW50ZXJwICopOwotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLSV9Ci0laW5pdCAlewotCWlmIChUaXhfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgewotCQlyZXR1cm4gVENMX0VSUk9SOwotCX0KLSV9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUJvdGggZmlsZXMgZGVjbGFyZSB0aGUgcHJvcGVyIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uICh0byBiZSBDKysgZnJpZW5kbHksIHRoaXMgc2hvdWxkIGJlIGRvbmUgdXNpbmcgPHR0PmV4dGVybiAiQyI8L3R0PikuICAgIEEgY2FsbCB0byB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gaXMgdGhlbiBwbGFjZWQgaW5zaWRlIGEgPHR0PiVpbml0ICV7IC4uLiAlfTwvdHQ+IGJsb2NrLiAgPHA+Ci08cD4KLVRvIHVzZSBvdXIgbGlicmFyeSBmaWxlcyBhbmQgYnVpbGQgYSBuZXcgdmVyc2lvbiBvZiB3aXNoLCB3ZSBtaWdodCBub3cgZG8gdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gbXl3aXNoLmkgOiB3aXNoIHdpdGggYSBidW5jaCBvZiBzdHVmZiBhZGRlZCB0byBpdAotJWluY2x1ZGUgd2lzaC5pCi0laW5jbHVkZSBibHQuaQotJWluY2x1ZGUgdGl4LmkKLQotLi4uIGFkZGl0aW9uYWwgZGVjbGFyYXRpb25zIC4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1PZiBjb3Vyc2UsIHRoZSByZWFsbHkgY29vbCBwYXJ0IGFib3V0IGFsbCBvZiB0aGlzIGlzIHRoYXQgdGhlIGZpbGUgYDx0dD5teXdpc2guaTwvdHQ+JyBjYW4gaXRzZWxmLCBzZXJ2ZSBhcyBhIGxpYnJhcnkgZmlsZS4gICBUaHVzLCB3aGVuIGJ1aWxkaW5nIHZhcmlvdXMgdmVyc2lvbnMgb2YgVGNsLCB3ZSBjYW4gcGxhY2UgZXZlcnl0aGluZyB3ZSB3YW50IHRvIHVzZSBhIHNwZWNpYWwgZmlsZSBhbmQgdXNlIGl0IGluIGFsbCBvZiBvdXIgb3RoZXIgaW50ZXJmYWNlIGZpbGVzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBpbnRlcmZhY2UuaQotJW1vZHVsZSBteW1vZHVsZQotCi0laW5jbHVkZSBteXdpc2guaSAgICAgICAgICAgICAgLy8gQnVpbGQgb3VyIHZlcnNpb24gb2YgVGNsIHdpdGggZXh0ZW5zaW9ucwotCi0uLi4gQyBkZWNsYXJhdGlvbnMgLi4uCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yIHdlIGNhbiBncmFiIGl0IG9uIHRoZSBjb21tYW5kIGxpbmUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnVuaXggJmd0OyBzd2lnIC10Y2wgLWxteXdpc2guaSBpbnRlcmZhY2UuaQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNjciPjwvYT48aDM+IExpbWl0YXRpb25zIHRvIHRoaXMgYXBwcm9hY2g8L2gzPgotVGhpcyBpbnRlcmZhY2UgZ2VuZXJhdGlvbiBhcHByb2FjaCBpcyBsaW1pdGVkIGJ5IHRoZSBjb21wYXRpYmlsaXR5IG9mIGVhY2ggZXh0ZW5zaW9uIHlvdSB1c2UuICBJZiBhbnkgb25lIGV4dGVuc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiBvZiBUY2wgeW91IGFyZSB1c2luZywgeW91IG1heSBiZSBvdXQgb2YgbHVjay4gIEl0IGlzIGFsc28gY3JpdGljYWwgdG8gcGF5IGNhcmVmdWwgYXR0ZW50aW9uIHRvIGxpYnJhcmllcyBhbmQgaW5jbHVkZSBmaWxlcy4gIEFuIGV4dGVuc2lvbiBsaWJyYXJ5IGNvbXBpbGVkIGFnYWluc3QgYW4gb2xkZXIgdmVyc2lvbiBvZiBUY2wgbWF5IGZhaWwgd2hlbiBsaW5rZWQgd2l0aCBhIG5ld2VyIHZlcnNpb24uICA8cD4KLTxhIG5hbWU9Im42OCI+PC9hPjxoMz4gRHluYW1pYyBsb2FkaW5nIDwvaDM+Ci1OZXdlciB2ZXJzaW9ucyBvZiBUY2wgc3VwcG9ydCBkeW5hbWljIGxvYWRpbmcuICAgV2l0aCBkeW5hbWljIGxvYWRpbmcsIHlvdSBjb21waWxlIGVhY2ggZXh0ZW5zaW9uIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUgdGhhdCBjYW4gYmUgbG9hZGVkIGF0IHJ1biB0aW1lLiAgIFRoaXMgc2ltcGxpZmllcyBhIG51bWJlciBvZiBjb21waWxhdGlvbiBhbmQgZXh0ZW5zaW9uIGJ1aWxkaW5nIHByb2JsZW1zIGF0IHRoZSBleHBlbnNlIG9mIGNyZWF0aW5nIG5ldyBvbmVzLiAgTW9zdCBub3RhYmx5LCB0aGUgZHluYW1pYyBsb2FkaW5nIHByb2Nlc3MgdmFyaWVzIHdpZGVseSBiZXR3ZWVuIG1hY2hpbmVzIGFuZCBpcyBub3QgZXZlbiBzdXBwb3J0ZWQgaW4gc29tZSBjYXNlcy4gICBJdCBhbHNvIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIEMrKyBwcm9ncmFtcyB0aGF0IHVzZSBzdGF0aWMgY29uc3RydWN0b3JzLiAgIE1vZHVsZXMgbGlua2VkIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgVGNsIG1heSBub3Qgd29yayB3aXRoIG5ld2VyIHZlcnNpb25zIGFzIHdlbGwgKGFsdGhvdWdoIFNXSUcgb25seSByZWFsbHkgdXNlcyB0aGUgYmFzaWMgVGNsIEMgaW50ZXJmYWNlKS4gIEFzIGEgcmVzdWx0LCBJIHVzdWFsbHkgZmluZCBteXNlbGYgdXNpbmcgYm90aCBkeW5hbWljIGFuZCBzdGF0aWMgbGlua2luZyBhcyBhcHByb3ByaWF0ZS4gPHA+Ci08YSBuYW1lPSJuNjkiPjwvYT48aDM+IFR1cm5pbmcgYSBTV0lHIG1vZHVsZSBpbnRvIGEgVGNsIFBhY2thZ2UuPC9oMz4KLVRjbCA3LjQgaW50cm9kdWNlZCB0aGUgaWRlYSBvZiBhbiBleHRlbnNpb24gcGFja2FnZS4gICBCeSBkZWZhdWx0LCBTV0lHIGRvZXMgbm90IGNyZWF0ZSAicGFja2FnZXMiLCBidXQgaXQgaXMgcmVsYXRpdmVseSBlYXN5IHRvIGRvLiAgIFRvIG1ha2UgYSBDIGV4dGVuc2lvbiBpbnRvIGEgVGNsIHBhY2thZ2UsIHlvdSBuZWVkIHRvIHByb3ZpZGUgYSBjYWxsIHRvIDx0dD5UY2xfUGtnUHJvdmlkZSgpIDwvdHQ+aW4gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbjx0dD4uPC90dD4gICBUaGlzIGNhbiBiZSBkb25lIGluIGFuIGludGVyZmFjZSBmaWxlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVpbml0ICV7Ci0gICAgICAgIFRjbF9Qa2dQcm92aWRlKGludGVycCwiZXhhbXBsZSIsIjAuMCIpOwotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlcmUgImV4YW1wbGUiIGlzIHRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlIGFuZCAiMC4wIiBpcyB0aGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZS4gIDxwPgotPHA+Ci1OZXh0LCBhZnRlciBidWlsZGluZyB0aGUgU1dJRyBnZW5lcmF0ZWQgbW9kdWxlLCB5b3UgbmVlZCB0byBleGVjdXRlIHRoZSAiPHR0PnBrZ19ta0luZGV4PC90dD4iIGNvbW1hbmQgaW5zaWRlIHRjbHNoLiAgIEZvciBleGFtcGxlIDo8cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci11bml4ICZndDsgdGNsc2gKLSUgcGtnX21rSW5kZXggLiBleGFtcGxlLnNvCi0lIGV4aXQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBjcmVhdGVzIGEgZmlsZSAiPHR0PnBrZ0luZGV4LnRjbDwvdHQ+IiB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYWNrYWdlLiAgICBUbyB1c2UgeW91cjxwPgotcGFja2FnZSwgeW91IG5vdyBuZWVkIHRvIG1vdmUgaXQgdG8gaXRzIG93biBzdWJkaXJlY3Rvcnkgd2hpY2ggaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIHBhY2thZ2UuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4uL2V4YW1wbGUvCi0JICAgcGtnSW5kZXgudGNsICAgICAgICAgICAjIFRoZSBmaWxlIGNyZWF0ZWQgYnkgcGtnX21rSW5kZXgKLQkgICBleGFtcGxlLnNvICAgICAgICAgICAgICMgVGhlIFNXSUcgZ2VuZXJhdGVkIG1vZHVsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUZpbmFsbHksIGFzc3VtaW5nIHRoYXQgeW91J3JlIG5vdCBlbnRpcmVseSBjb25mdXNlZCBhdCB0aGlzIHBvaW50LCBtYWtlIHN1cmUgdGhhdCB0aGUgZXhhbXBsZSBzdWJkaXJlY3RvcnkgaXMgdmlzaWJsZSBmcm9tIHRoZSBkaXJlY3RvcmllcyBjb250YWluZWQgaW4gZWl0aGVyIHRoZSA8dHQ+dGNsX2xpYnJhcnk8L3R0PiBvciA8dHQ+YXV0b19wYXRoPC90dD4gdmFyaWFibGVzLiAgQXQgdGhpcyBwb2ludCB5b3UncmUgcmVhZHkgdG8gdXNlIHRoZSBwYWNrYWdlIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXVuaXggJmd0OyB0Y2xzaAotJSBwYWNrYWdlIHJlcXVpcmUgZXhhbXBsZQotJSBmYWN0IDQKLTI0Ci0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUlmICB5b3UncmUgd29ya2luZyB3aXRoIGFuIGV4YW1wbGUgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCB0aGlzIGRvZXNuJ3Qgd29yaywgZG8gdGhpcyBpbnN0ZWFkIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT51bml4ICZndDsgdGNsc2gKLSUgbGFwcGVuZCBhdXRvX3BhdGggLgotJSBwYWNrYWdlIHJlcXVpcmUgZXhhbXBsZQotJSBmYWN0IDQKLTI0Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQXMgYSBmaW5hbCBub3RlLCBtb3N0IFNXSUcgZXhhbXBsZXMgZG8gbm90IHlldCB1c2UgdGhlIDx0dD5wYWNrYWdlPC90dD4gY29tbWFuZHMuIEZvciBzaW1wbGUgZXh0ZW5zaW9ucyBpdCBtYXkgYmUgZWFzaWVyIGp1c3QgdG8gdXNlIHRoZSA8dHQ+bG9hZDwvdHQ+IGNvbW1hbmQgaW5zdGVhZC48cD4KLTxhIG5hbWU9Im4xMyI+PC9hPjxoMj4gQnVpbGRpbmcgbmV3IGtpbmRzIG9mIFRjbCBpbnRlcmZhY2VzIChpbiBUY2wpPC9oMj4KLU9uZSBvZiB0aGUgbW9zdCBpbnRlcmVzdGluZyBhc3BlY3RzIG9mIFRjbCBhbmQgU1dJRyBpcyB0aGF0IHlvdSBjYW4gY3JlYXRlIGVudGlyZWx5IG5ldyBraW5kcyBvZiBUY2wgaW50ZXJmYWNlcyBpbiBUY2wgdXNpbmcgdGhlIGxvdy1sZXZlbCBTV0lHIGFjY2Vzc29yIGZ1bmN0aW9ucy4gICBGb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgIGhhZCBhIGxpYnJhcnkgb2YgaGVscGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3MgYXJyYXlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBGaWxlIDogYXJyYXkuaSAqLwotJW1vZHVsZSBhcnJheQotCi0laW5saW5lICV7Ci1kb3VibGUgKm5ld19kb3VibGUoaW50IHNpemUpIHsKLSAgICAgICAgcmV0dXJuIChkb3VibGUgKikgbWFsbG9jKHNpemUqc2l6ZW9mKGRvdWJsZSkpOwotfQotdm9pZCBkZWxldGVfZG91YmxlKGRvdWJsZSAqYSkgewotICAgICAgICBmcmVlKGEpOwotfQotZG91YmxlIGdldF9kb3VibGUoZG91YmxlICphLCBpbnQgaW5kZXgpIHsKLSAgICAgICAgcmV0dXJuIGFbaW5kZXhdOwotfQotdm9pZCBzZXRfZG91YmxlKGRvdWJsZSAqYSwgaW50IGluZGV4LCBkb3VibGUgdmFsKSB7Ci0gICAgICAgIGFbaW5kZXhdID0gdmFsOwotfQotaW50ICpuZXdfaW50KGludCBzaXplKSB7Ci0gICAgICAgIHJldHVybiAoaW50ICopIG1hbGxvYyhzaXplKnNpemVvZihpbnQpKTsKLX0KLXZvaWQgZGVsZXRlX2ludChpbnQgKmEpIHsKLSAgICAgICAgZnJlZShhKTsKLX0KLWludCBnZXRfaW50KGludCAqYSwgaW50IGluZGV4KSB7Ci0gICAgICAgIHJldHVybiBhW2luZGV4XTsKLX0KLWludCBzZXRfaW50KGludCAqYSwgaW50IGluZGV4LCBpbnQgdmFsKSB7Ci0gICAgICAgIGFbaW5kZXhdID0gdmFsOwotfQotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hpbGUgdGhlc2UgY291bGQgYmUgY2FsbGVkIGRpcmVjdGx5LCB3ZSBjb3VsZCBhbHNvIHdyaXRlIGEgVGNsIHNjcmlwdCBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnByb2MgQXJyYXkge3R5cGUgc2l6ZX0gewotICAgIHNldCBwdHIgW25ld18kdHlwZSAkc2l6ZV0KLSAgICBzZXQgY29kZSB7Ci0gICAgICAgIHNldCBtZXRob2QgW2xpbmRleCAkYXJncyAwXQotICAgICAgICBzZXQgcGFybXMgW2NvbmNhdCAkcHRyIFtscmFuZ2UgJGFyZ3MgMSBlbmRdXQotICAgICAgICBzd2l0Y2ggJG1ldGhvZCB7Ci0gICAgICAgICAgICBnZXQge3JldHVybiBbZXZhbCAiZ2V0XyR0eXBlICRwYXJtcyJdfQotICAgICAgICAgICAgc2V0IHtyZXR1cm4gW2V2YWwgInNldF8kdHlwZSAkcGFybXMiXX0KLSAgICAgICAgICAgIGRlbGV0ZSB7ZXZhbCAiZGVsZXRlXyR0eXBlICRwdHI7IHJlbmFtZSAkcHRyIHt9In0KLSAgICAgICAgfQotICAgIH0KLSAgICAjIENyZWF0ZSBhIHByb2NlZHVyZQotICAgIHVwbGV2ZWwgInByb2MgJHB0ciBhcmdzIHtzZXQgcHRyICRwdHI7IHNldCB0eXBlICR0eXBlOyRjb2RlfSIKLSAgICByZXR1cm4gJHB0cgotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1PdXIgc2NyaXB0IGFsbG93cyBlYXN5IGFycmF5IGFjY2VzcyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zZXQgYSBbQXJyYXkgZG91YmxlIDEwMF0gICAgICAgICAgICAgICAgICAgOyMgQ3JlYXRlIGEgZG91YmxlIFsxMDBdCi1mb3Ige3NldCBpIDB9IHskaSAmbHQ7IDEwMH0ge2luY3IgaSAxfSB7ICAgICAgOyMgQ2xlYXIgdGhlIGFycmF5Ci0JJGEgc2V0ICRpIDAuMAotfQotJGEgc2V0IDMgMy4xNDU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsjIFNldCBhbiBpbmRpdmlkdWFsIGVsZW1lbnQKLXNldCBiIFskYSBnZXQgMTBdICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBSZXRyaWV2ZSBhbiBlbGVtZW50Ci0KLXNldCBpYSBbQXJyYXkgaW50IDUwXSAgICAgICAgICAgICAgICAgICAgICA7IyBDcmVhdGUgYW4gaW50WzUwXQotZm9yIHtzZXQgaSAwfSB7JGkgJmx0OyA1MH0ge2luY3IgaSAxfSB7ICAgICAgIDsjIENsZWFyIGl0Ci0JJGlhIHNldCAkaSAwCi19Ci0kaWEgc2V0IDMgNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyMgU2V0IGFuIGluZGl2aWR1YWwgZWxlbWVudAotc2V0IGliIFskaWEgZ2V0IDEwXSAgICAgICAgICAgICAgICAgICAgICAgIDsjIEdldCBhbiBpbmRpdmlkdWFsIGVsZW1lbnQKLQotJGEgZGVsZXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsjIERlc3Ryb3kgYQotJGlhIGRlbGV0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsjIERlc3Ryb3kgaWEKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhlIGNvb2wgdGhpbmcgYWJvdXQgdGhpcyBhcHByb2FjaCBpcyB0aGF0IGl0IG1ha2VzIGEgY29tbW9uIGludGVyZmFjZSBmb3IgdHdvIGRpZmZlcmVudCB0eXBlcyBvZiBhcnJheXMuICAgSW4gZmFjdCwgaWYgd2Ugd2VyZSB0byBhZGQgbW9yZSBDIGRhdGF0eXBlcyB0byBvdXIgd3JhcHBlciBmaWxlLCB0aGUgVGNsIGNvZGUgd291bGQgd29yayB3aXRoIHRob3NlIGFzIHdlbGwtLXdpdGhvdXQgbW9kaWZpY2F0aW9uLiAgICBJZiBhbiB1bnN1cHBvcnRlZCBkYXRhdHlwZSB3YXMgcmVxdWVzdGVkLCB0aGUgVGNsIGNvZGUgd291bGQgc2ltcGx5IHJldHVybiB3aXRoIGFuIGVycm9yIHNvIHRoZXJlIGlzIHZlcnkgbGl0dGxlIGRhbmdlciBvZiBibG93aW5nIHNvbWV0aGluZyB1cCAgKGFsdGhvdWdoIGl0IGlzIGVhc2lseSBhY2NvbXBsaXNoZWQgd2l0aCBhbiBvdXQgb2YgYm91bmRzIGFycmF5IGFjY2VzcykuPHA+Ci08YSBuYW1lPSJuNzAiPjwvYT48aDM+IFNoYWRvdyBjbGFzc2VzPC9oMz4KLUEgc2ltaWxhciBhcHByb2FjaCBjYW4gYmUgYXBwbGllZCB0byBzaGFkb3cgY2xhc3Nlcy4gICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgcHJvdmlkZWQgYnkgRXJpayBCaWVyd2FnZW4gYW5kIFBhdWwgU2F4ZS4gICBUbyB1c2UgaXQsIHJ1biBTV0lHIHdpdGggdGhlIDx0dD4tbm9vYmplY3Q8L3R0PiBvcHRpb24gKHdoaWNoIGRpc2FibGVzIHRoZSBidWlsdGluIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UpLiAgIFdoZW4gcnVubmluZyBUY2wsIHNpbXBseSBzb3VyY2UgdGhpcyBmaWxlLiAgIE5vdywgb2JqZWN0cyBjYW4gYmUgdXNlZCBpbiBhIG1vcmUgb3IgbGVzcyBuYXR1cmFsIGZhc2hpb24uPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBzd2lnX2MrKy50Y2wKLSMgUHJvdmlkZXMgYSBzaW1wbGUgb2JqZWN0IG9yaWVudGVkIGludGVyZmFjZSB1c2luZwotIyBTV0lHJ3MgbG93IGxldmVsIGludGVyZmFjZS4KLSMKLQotcHJvYyBuZXcge29iamVjdFR5cGUgaGFuZGxlX3IgYXJnc30gewotICAgICMgQ3JlYXRlcyBhIG5ldyBTV0lHIG9iamVjdCBvZiB0aGUgZ2l2ZW4gdHlwZSwKLSAgICAjIHJldHVybmluZyBhIGhhbmRsZSBpbiB0aGUgdmFyaWFibGUgImhhbmRsZV9yIi4KLSAgICAjCi0gICAgIyBBbHNvIGNyZWF0ZXMgYSBwcm9jZWR1cmUgZm9yIHRoZSBvYmplY3QgYW5kIGEgdHJhY2Ugb24KLSAgICAjIHRoZSBoYW5kbGUgdmFyaWFibGUgdGhhdCBkZWxldGVzIHRoZSBvYmplY3Qgd2hlbiB0aGUKLSAgICAjIGhhbmRsZSB2YXJpYmFsZSBpcyBvdmVyd3JpdHRlbiBvciB1bnNldAotICAgIHVwdmFyICRoYW5kbGVfciBoYW5kbGUKLSAgICAjCi0gICAgIyBDcmVhdGUgdGhlIG5ldyBvYmplY3QKLSAgICAjCi0gICAgZXZhbCBzZXQgaGFuZGxlIFxbbmV3XyRvYmplY3RUeXBlICRhcmdzXF0KLSAgICAjCi0gICAgIyBTZXQgdXAgdGhlIG9iamVjdCBwcm9jZWR1cmUKLSAgICAjCi0gICAgcHJvYyAkaGFuZGxlIHtjbWQgYXJnc30gImV2YWwgJHtvYmplY3RUeXBlfV9cJGNtZCAkaGFuZGxlIFwkYXJncyIKLSAgICAjCi0gICAgIyBBbmQgdGhlIHRyYWNlIC4uLgotICAgICMKLSAgICB1cGxldmVsIHRyYWNlIHZhcmlhYmxlICRoYW5kbGVfciB1dyAie2RlbGV0ZU9iamVjdCAkb2JqZWN0VHlwZSAkaGFuZGxlfSIKLSAgICAjCi0gICAgIyBSZXR1cm4gdGhlIGhhbmRsZSBzbyB0aGF0ICduZXcnIGNhbiBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIGEgcHJvY2VkdXJlCi0gICAgIwotICAgIHJldHVybiAkaGFuZGxlCi19Ci0KLXByb2MgZGVsZXRlT2JqZWN0IHtvYmplY3RUeXBlIGhhbmRsZSBuYW1lIGVsZW1lbnQgb3B9IHsKLSAgICAjCi0gICAgIyBDaGVjayB0aGF0IHRoZSBvYmplY3QgaGFuZGxlIGhhcyBhIHJlYXNvbmFibGUgZm9ybQotICAgICMKLSAgICBpZiB7IVtyZWdleHAge19bMC05YS1mXSpfKC4rKV9wfSAkaGFuZGxlXX0gewotICAgICAgICBlcnJvciAiZGVsZXRlT2JqZWN0OiBub3QgYSB2YWxpZCBvYmplY3QgaGFuZGxlOiAkaGFuZGxlIgotICAgIH0KLSAgICAjCi0gICAgIyBSZW1vdmUgdGhlIG9iamVjdCBwcm9jZWR1cmUKLSAgICAjCi0gICAgY2F0Y2gge3JlbmFtZSAkaGFuZGxlIHt9fQotICAgICMKLSAgICAjIERlbGV0ZSB0aGUgb2JqZWN0Ci0gICAgIwotICAgIGRlbGV0ZV8kb2JqZWN0VHlwZSAkaGFuZGxlCi19Ci0KLXByb2MgZGVsZXRlIHtoYW5kbGVfcn0gewotICAgICMKLSAgICAjIEEgc3lub255bSBmb3IgdW5zZXQgdGhhdCBpcyBtb3JlIGZhbWlsaWFyIHRvIEMrKyBwcm9ncmFtbWVycwotICAgICMKLSAgICB1cGxldmVsIHVuc2V0ICRoYW5kbGVfcgotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UbyB1c2UgdGhpcyBmaWxlLCB3ZSBzaW1wbHkgc291cmNlIGl0IGFuZCBleGVjdXRlIGNvbW1hbmRzIHN1Y2ggYXMgIm5ldyIgYW5kICJkZWxldGUiIHRvIG1hbmlwdWxhdGUgb2JqZWN0cy4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBsaXN0LmkKLSVtb2R1bGUgTGlzdAotJXsKLSNpbmNsdWRlICJsaXN0LmgiCi0lfQotCi0vLyBWZXJ5IHNpbXBsZSBDKysgZXhhbXBsZQotCi1jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLSAgTGlzdCgpOyAgLy8gQ3JlYXRlIGEgbmV3IGxpc3QKLSAgfkxpc3QoKTsgLy8gRGVzdHJveSBhIGxpc3QKLSAgaW50ICBzZWFyY2goY2hhciAqdmFsdWUpOwotICB2b2lkIGluc2VydChjaGFyICopOyAgLy8gSW5zZXJ0IGEgbmV3IGl0ZW0gaW50byB0aGUgbGlzdAotICB2b2lkIHJlbW92ZShjaGFyICopOyAgLy8gUmVtb3ZlIGl0ZW0gZnJvbSBsaXN0Ci0gIGNoYXIgKmdldChpbnQgbik7ICAgICAvLyBHZXQgdGhlIG50aCBpdGVtIGluIHRoZSBsaXN0Ci0gIGludCAgbGVuZ3RoOyAgICAgICAgICAvLyBUaGUgY3VycmVudCBsZW5ndGggb2YgdGhlIGxpc3QKLXN0YXRpYyB2b2lkIHByaW50KExpc3QgKmwpOyAgLy8gUHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgbGlzdAotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotTm93IGEgVGNsIHNjcmlwdCB1c2luZyB0aGUgaW50ZXJmYWNlLi4uPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+bG9hZCAuL2xpc3Quc28gbGlzdCAgICAgICA7ICMgTG9hZCB0aGUgbW9kdWxlCi1zb3VyY2Ugc3dpZ19jKysudGNsICAgICAgIDsgIyBTb3VyY2UgdGhlIG9iamVjdCBmaWxlCi0KLW5ldyBMaXN0IGwKLSRsIGluc2VydCBEYXZlCi0kbCBpbnNlcnQgSm9obgotJGwgaW5zZXJ0IEd1aWRvCi0kbCByZW1vdmUgRGF2ZQotcHV0cyAkbCBsZW5ndGhfZ2V0Ci0KLWRlbGV0ZSBsCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBjb29sIHRoaW5nIGFib3V0IHRoaXMgZXhhbXBsZSBpcyB0aGF0IGl0IHdvcmtzIHdpdGggYW55IEMrKyBvYmplY3Qgd3JhcHBlZCBieSBTV0lHIGFuZCByZXF1aXJlcyBubyBzcGVjaWFsIGNvbXBpbGF0aW9uLiAgICBQcm9vZiB0aGF0IGEgc2hvcnQsIGJ1dCBjbGV2ZXIgVGNsIHNjcmlwdCBjYW4gYmUgY29tYmluZWQgd2l0aCBTV0lHIHRvIGRvIG1hbnkgaW50ZXJlc3RpbmcgdGhpbmdzLjxwPgotPGEgbmFtZT0ibjE0Ij48L2E+PGgyPiBFeHRlbmRpbmcgdGhlIFRjbCBOZXRzY2FwZSBQbHVnaW48L2gyPgotU1dJRyBjYW4gYmUgdXNlZCB0byBleHRlbmQgdGhlIFRjbCBOZXRzY2FwZSBwbHVnaW4gd2l0aCBDIGZ1bmN0aW9ucy4gQXMgb2YgdGhpcyB3cml0aW5nIGl0IGhhcyBvbmx5IGJlZW4gdGVzdGVkIHdpdGggdmVyc2lvbiAxLjAgb2YgdGhlIHBsdWdpbiBvbiBTb2xhcmlzIGFuZCBJcml4IDYuMi4gIEl0IG1heSB3b3JrIG9uIG90aGVyIG1hY2hpbmVzIGFzIHdlbGwuIEhvd2V2ZXIsIGZpcnN0IGEgd29yZCBvZiBjYXV0aW9uIC0tLSBkb2luZyB0aGlzIG1pZ2h0IHJlc3VsdCBpbiBzZXJpb3VzIGluanVyeSBhcyB5b3UgY2FuIGFkZCBqdXN0IGFib3V0IGFueSBDIGZ1bmN0aW9uIHlvdSB3YW50LiAgIEZ1cnRoZXJtb3JlLCBpdCdzIG5vdCBwb3J0YWJsZSAoaGV5LCB3ZSdyZSB0YWxraW5nIEMgY29kZSBoZXJlKS4gICAgSXQgc2VlbXMgbGlrZSB0aGUgYmVzdCBhcHBsaWNhdGlvbiBvZiB0aGlzIHdvdWxkIGJlIGNyZWF0aW5nIGEgYnJvd3NlciBpbnRlcmZhY2UgdG8gYSBoaWdobHkgc3BlY2lhbGl6ZWQgYXBwbGljYXRpb24uICBBbnkgc2NyaXB0cyB0aGF0IHlvdSB3b3VsZCB3cml0ZSB3b3VsZCBub3Qgd29yayBvbiBvdGhlciBtYWNoaW5lcyB1bmxlc3MgdGhleSBhbHNvIGluc3RhbGxlZCB0aGUgQyBleHRlbnNpb24gY29kZSBhcyB3ZWxsLiAgUGVyaGFwcyB3ZSBzaG91bGQgY2FsbCB0aGlzIGEgcGx1Z2luLXBsdWdpbi4uLjxwPgotPHA+Ci1UbyB1c2UgdGhlIHBsdWdpbiwgdXNlIHRoZSA8dHQ+LXBsdWdpbjwvdHQ+IG9wdGlvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3dpZyAtdGNsIC1wbHVnaW4gaW50ZXJmYWNlLmkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBhZGRzIGEgInNhZmUiIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGNvbXBhdGlibGUgd2l0aCB0aGUgcGx1Z2luIChpbiByZWFsaXR5LCBpdCBqdXN0IGNhbGxzIHRoZSBmdW5jdGlvbiBTV0lHIGFscmVhZHkgY3JlYXRlcykuICAgIFlvdSBhbHNvIG5lZWQgdG8gcHV0IHRoZSBmb2xsb3dpbmcgc3ltYm9sIGluIHlvdXIgaW50ZXJmYWNlIGZpbGUgZm9yIGl0IHRvIHdvcmsgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV7Ci0jZGVmaW5lIFNBRkVfU1dJRwotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGZvbGtzIGF0IFN1biBhcmUgcXVpdGUgY29uY2VybmVkIGFib3V0IHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBzb3J0IG9mIGV4dGVuc2lvbiBhbmQgb3JpZ2luYWxseSB3YW50ZWQgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSB3cmFwcGVyIGNvZGUgYnkgaGFuZCB0byAicmVtaW5kIiB0aGVtIHRoYXQgdGhleSB3ZXJlIGluc3RhbGxpbmcgZnVuY3Rpb25zIGludG8gYSBzYWZlIGludGVycHJldGVyLiAgIEhvd2V2ZXIsIGhhdmluZyBzZWVuIGFsb3Qgb2YgU1dJRyBnZW5lcmF0ZWQgd3JhcHBlciBjb2RlLCBJIGhhdGVkIHRoYXQgaWRlYSAob2theSwgc28gdGhlIG91dHB1dCBvZiBTV0lHIGlzIGp1c3QgYSBsaXR0bGUgbWVzc3kpLiAgICBUaGlzIGlzIGNvbXByb21pc2UtLXlvdSBuZWVkIHRvIHB1dCB0aGF0IDx0dD4jZGVmaW5lPC90dD4gaW50byB5b3VyIEMgZmlsZSBzb21lcGxhY2UuICBZb3UgY2FuIGFsc28ganVzdCBtYWtlIGl0IGEgY29tcGlsZXIgb3B0aW9uIGlmIHlvdSB3b3VsZCBsaWtlLjxwPgotPGEgbmFtZT0ibjcxIj48L2E+PGgzPiBUaGUgc3RlcC1ieS1zdGVwIHByb2Nlc3MgZm9yIG1ha2luZyBhIHBsdWdpbiBleHRlbnNpb24uPC9oMz4KLU1ha2luZyBhIHBsdWdpbiBleHRlbnNpb24gaXMgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgYnV0IHlvdSBuZWVkIHRvIGZvbGxvdyB0aGVzZSBzdGVwcyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5NYWtlIHN1cmUgeW91IGhhdmUgVGNsNy42L1RrNC4yIGluc3RhbGxlZCBvbiB5b3VyIG1hY2hpbmUuICAgV2UncmUgZ29pbmcgdG8gbmVlZCB0aGUgaGVhZGVyIGZpbGVzIGludG8gb3JkZXIgdG8gY29tcGlsZSB0aGUgZXh0ZW5zaW9uLgotPGxpPk1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGUgTmV0c2NhcGUgcGx1Z2luIHByb3Blcmx5IGluc3RhbGxlZC4KLTxsaT5SdW4gU1dJRyB1c2luZyB0aGUgYDx0dD4tdGNsIC1wbHVnaW48L3R0Picgb3B0aW9ucy4gCi08bGk+Q29tcGlsZSB0aGUgZXh0ZW5zaW9uIHVzaW5nIHRoZSBUY2wgNy42L1RrNC4yIGhlYWRlciBmaWxlcywgYnV0IGxpbmtpbmcgYWdhaW5zdCB0aGUgcGx1Z2luIGl0c2VsZi4gIEZvciBleGFtcGxlIDoKLTxibG9ja3F1b3RlPjxwcmU+Ci11bml4ICZndDsgZ2NjIC1JL3Vzci9sb2NhbC9pbmNsdWRlIC1jIGV4YW1wbGUubyBpbnRlcmZhY2Vfd3JhcC5jIAotdW5peCAmZ3Q7IGxkIC1zaGFyZWQgZXhhbXBsZS5vIGludGVyZmFjZV93cmFwLm8gXAotICAgICAgIC1ML2hvbWUvYmVhemxleS8ubmV0c2NhcGUvcGx1Z2lucy9saWJ0Y2xwbHVnaW4uc28gLW8gZXhhbXBsZS5zbyAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGxpPkNvcHkgdGhlIHNoYXJlZCBvYmplY3QgZmlsZSB0byB0aGUgPHR0Pn4vLnRjbHBsdWcvdGNsNy43PC90dD4gZGlyZWN0b3J5LgotPC91bD4KLTxhIG5hbWU9Im43MiI+PC9hPjxoMz4gVXNpbmcgdGhlIHBsdWdpbjwvaDM+Ci1UbyB1c2UgdGhlIHBsdWdpbiwgcGxhY2UgdGhlIGZvbGxvd2luZyBsaW5lIGluIHlvdXIgVGNsIHNjcmlwdHMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmxvYWQgJHRjbF9saWJyYXJ5L2V4YW1wbGUuc28gZXhhbXBsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaXRoIGx1Y2ssIHlvdSB3aWxsIG5vdyBiZSByZWFkeSB0byBydW4gKGF0IGxlYXN0IHRoYXQncyB0aGUgdGhlb3J5KS48cD4KLTxhIG5hbWU9Im4xNSI+PC9hPjxoMj4gVGNsOC4wIGZlYXR1cmVzPC9oMj4KLVNXSUcgMS4xIG5vdyBzdXBwb3J0cyBUY2wgOC4wLiAgSG93ZXZlciwgY29uc2lkZXJpbmcgdGhlIGJldGEgcmVsZWFzZSBuYXR1cmUgb2YgVGNsIDguMCwgYW55dGhpbmcgcHJlc2VudGVkIGhlcmUgaXMgc3ViamVjdCB0byBjaGFuZ2UuICBDdXJyZW50bHkgb25seSBUY2wgOC4wYjEgaXMgc3VwcG9ydGVkLiAgTm9uZSBvZiB0aGUgYWxwaGEgcmVsZWFzZXMgYXJlIHN1cHBvcnRlZCBkdWUgdG8gYSBjaGFuZ2UgaW4gdGhlIEMgQVBJLiA8cD4KLTxwPgotVGhlIFRjbCA4LjAgbW9kdWxlIHVzZXMgdGhlIG5ldyBUY2wgOC4wIG9iamVjdCBpbnRlcmZhY2Ugd2hlbmV2ZXIgcG9zc2libGUuICBJbnN0ZWFkIG9mIHVzaW5nIHN0cmluZ3MsIHRoZSBvYmplY3QgaW50ZXJmYWNlIHByb3ZpZGVzIG1vcmUgZGlyZWN0IGFjY2VzcyB0byBvYmplY3RzIGluIHRoZWlyIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gQXMgYSByZXN1bHQsIHRoZSBwZXJmb3JtYW5jZSBpcyBzaWduaWZpY2FudGx5IGJldHRlci4gICAgIFRoZSBvbGRlciBUY2wgU1dJRyBtb2R1bGUgaXMgYWxzbyBjb21wYXRpYmxlIHdpdGggVGNsIDguMCwgYnV0IHNpbmNlIGl0IHVzZXMgc3RyaW5ncyBpdCB3aWxsIGJlIG11Y2ggc2xvd2VyIHRoYW4gdGhlIG5ldyB2ZXJzaW9uLjxwPgotPHA+Ci1JbiBhZGRpdGlvbiB0byB1c2luZyBuYXRpdmUgVGNsIG9iamVjdHMsIHRoZSBUY2w4LjAgbWFuaXB1bGF0ZXMgcG9pbnRlcnMgZGlyZWN0bHkgaW4gaW4gYSBzcGVjaWFsIFRjbCBvYmplY3QuICAgT24gdGhlIHN1cmZhY2UgaXQgc3RpbGwgbG9va3MgbGlrZSBhIHN0cmluZywgYnV0IGludGVybmFsbHkgaXRzIHJlcHJlc2VudGVkIGEgKHZhbHVlLHR5cGUpIHBhaXIuICAgVGhpcyB0b28sIHNob3VsZCBvZmZlciBzb21ld2hhdCBiZXR0ZXIgcGVyZm9ybWFuY2UuPHA+Ci08cD4KLTxwPgotCi08cD48aHI+Ci0KLTxhZGRyZXNzPlNXSUcgMS4xIC0gTGFzdCBNb2RpZmllZCA6IE1vbiBBdWcgIDQgMTA6NDc6MTIgMTk5NzwvYWRkcmVzcz4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvVHlwZW1hcHMuaHRtbCBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvVHlwZW1hcHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjE1YTJjYi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML1R5cGVtYXBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MzMgKzAsMCBAQAotPCEtLSBQdWJsaXNoZWQgYnkgUXVhZHJhbGF5IFdlYldvcmtzIEhUTUwgTGl0ZSAxLjUuMSAtLT4KLTwhLS0gQW5kIG11bmdlZCBieSBEYXZlJ3Mgc3BlY2lhbCBQeXRob24gc2NyaXB0IC0tPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5Qb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwczwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGJnY29sb3I9IiNmZmZmZmYiPgotPGEgbmFtZT0ibjAiPjwvYT48aDE+NiBQb2ludGVycywgQ29uc3RyYWludHMsIGFuZCBUeXBlbWFwczwvaDE+PHA+PHVsPgotPGxpPiA8YSBocmVmPSIjbjEiPkludHJvZHVjdGlvbjwvYT4KLTxsaT4gPGEgaHJlZj0iI24yIj5UaGUgU1dJRyBQb2ludGVyIExpYnJhcnk8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMyI+SW50cm9kdWN0aW9uIHRvIHR5cGVtYXBzPC9hPgotPGxpPiA8YSBocmVmPSIjbjQiPk1hbmFnaW5nIGlucHV0IGFuZCBvdXRwdXQgcGFyYW1ldGVyczwvYT4KLTxsaT4gPGEgaHJlZj0iI241Ij5BcHBseWluZyBjb25zdHJhaW50cyB0byBpbnB1dCB2YWx1ZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNiI+V3JpdGluZyBuZXcgdHlwZW1hcHM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuNyI+Q29tbW9uIHR5cGVtYXAgbWV0aG9kczwvYT4KLTxsaT4gPGEgaHJlZj0iI244Ij5Xcml0aW5nIHR5cGVtYXAgY29kZTwvYT4KLTxsaT4gPGEgaHJlZj0iI245Ij5UeXBlbWFwcyBmb3IgaGFuZGxpbmcgYXJyYXlzPC9hPgotPGxpPiA8YSBocmVmPSIjbjEwIj5UeXBlbWFwcyBhbmQgdGhlIFNXSUcgTGlicmFyeTwvYT4KLTxsaT4gPGEgaHJlZj0iI24xMSI+SW1wbGVtZW50aW5nIGNvbnN0cmFpbnRzIHdpdGggdHlwZW1hcHM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTIiPlR5cGVtYXAgZXhhbXBsZXM8L2E+Ci08bGk+IDxhIGhyZWY9IiNuMTMiPkhvdyB0byBicmVhayBldmVyeXRoaW5nIHdpdGggYSB0eXBlbWFwPC9hPgotPGxpPiA8YSBocmVmPSIjbjE0Ij5UeXBlbWFwcyBhbmQgdGhlIGZ1dHVyZTwvYT4KLTwvdWw+Ci0KLTxhIG5hbWU9Im4xIj48L2E+PGgyPiBJbnRyb2R1Y3Rpb248L2gyPgotRm9yIG1vc3QgYXBwbGljYXRpb25zLCBTV0lHJ3MgdHJlYXRtZW50IG9mIGJhc2ljIGRhdGF0eXBlcyBhbmQgcG9pbnRlcnMgaXMgZW5vdWdoIHRvIGJ1aWxkIGFuIGludGVyZmFjZS4gSG93ZXZlciwgaW4gY2VydGFpbiBjYXNlcywgaXQgaXMgZGVzaXJhYmxlIHRvIGNoYW5nZSBTV0lHJ3MgdHJlYXRtZW50IG9mIHBhcnRpY3VsYXIgZGF0YXR5cGVzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgYSA8dHQ+Y2hhciAqKiA8L3R0PnRvIGFjdCBsaWtlIGEgbGlzdCBvZiBzdHJpbmdzIGluc3RlYWQgb2YgYSBwb2ludGVyLiBJbiBhbm90aGVyIGluc3RhbmNlLCB3ZSBtYXkgd2FudCB0byB0ZWxsIFNXSUcgdGhhdCA8dHQ+ZG91YmxlICpyZXN1bHQ8L3R0PiBpcyB0aGUgb3V0cHV0IHZhbHVlIG9mIGEgZnVuY3Rpb24uIFNpbWlsYXJseSwgd2UgbWlnaHQgd2FudCB0byBtYXAgYSBkYXRhdHlwZSBvZiA8dHQ+ZmxvYXRbNF08L3R0PiBpbnRvIGEgNCBlbGVtZW50IHR1cGxlLiBUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIGFkdmFuY2VkIG1ldGhvZHMgZm9yIG1hbmFnaW5nIHBvaW50ZXJzLCBhcnJheXMsIGFuZCBjb21wbGV4IGRhdGF0eXBlcy4gSXQgYWxzbyBkZXNjcmliZXMgaG93IHlvdSBjYW4gY3VzdG9taXplIFNXSUcgdG8gaGFuZGxlIG5ldyBraW5kcyBvZiBvYmplY3RzIGFuZCBkYXRhdHlwZXMuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gVGhlIFNXSUcgUG9pbnRlciBMaWJyYXJ5PC9oMj4KLUlmIHlvdXIgaW50ZXJmYWNlIGludm9sdmVzIEMgcG9pbnRlcnMsIGNoYW5jZXMgYXJlIHlvdSB3aWxsIG5lZWQgdG8gd29yayB3aXRoIHRoZXNlIHBvaW50ZXJzIGluIHNvbWUgd2F5IG9yIGFub3RoZXIuIFRoZSBTV0lHIHBvaW50ZXIgbGlicmFyeSBwcm92aWRlcyBhIGNvbGxlY3Rpb24gb2YgdXNlZnVsIG1ldGhvZHMgZm9yIG1hbmlwdWxhdGluZyBwb2ludGVycy4gVG8gdXNlIHRoZSBsaWJyYXJ5LCBzaW1wbHkgcHV0IHRoZSBmb2xsb3dpbmcgZGVjbGFyYXRpb24gaW4geW91ciBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWluY2x1ZGUgcG9pbnRlci5pIAkJCQkvLyBHcmFiIHRoZSBTV0lHIHBvaW50ZXIgbGlicmFyeQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1vciBydW4gU1dJRyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zd2lnIC1wZXJsNSAtbHBvaW50ZXIuaSBpbnRlcmZhY2UuaSAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRG9pbmcgc28gYWRkcyBhIGNvbGxlY3Rpb24gb2YgcG9pbnRlciBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIHRoYXQgYXJlIGRlc2NyaWJlZCBiZWxvdy4gVGhlIGZ1bmN0aW9ucyBhcmUgbWFpbmx5IGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBiYXNpYyBDIGRhdGF0eXBlcywgYnV0IGNhbiBvZnRlbiBiZSB1c2VkIHdpdGggbW9yZSBjb21wbGljYXRlZCBzdHJ1Y3R1cmVzLjxwPgotPGEgbmFtZT0ibjE1Ij48L2E+PGgzPiBQb2ludGVyIExpYnJhcnkgRnVuY3Rpb25zPC9oMz4KLTxiPnB0cmNyZWF0ZSh0eXBlLD92YWx1ZT8sP25pdGVtcz8pPC9iPjxwPgotPGRsPgotPGR0PjxkZD4KLTxkdD48ZGQ+Q3JlYXRlcyBhIG5ldyBvYmplY3QgYW5kIHJldHVybnMgYSBwb2ludGVyIHRvIGl0LiA8dHQ+dHlwZTwvdHQ+IGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIEMgZGF0YXR5cGUgYW5kIG1heSBiZSBvbmUgb2YgIjx0dD5pbnQ8L3R0PiIsIjx0dD5zaG9ydDwvdHQ+IiwiPHR0Pmxvbmc8L3R0PiIsIjx0dD5mbG9hdDwvdHQ+IiwiPHR0PmRvdWJsZTwvdHQ+IiwiPHR0PmNoYXI8L3R0PiIsIjx0dD5jaGFyICo8L3R0PiIsIG9yICI8dHQ+dm9pZDwvdHQ+Ii4gPHR0PnZhbHVlPC90dD4gaXMgdGhlIG9wdGlvbmFsIGluaXRpYWwgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gdGhlIG9iamVjdC4gPHR0Pm5pdGVtczwvdHQ+IGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0byBjcmVhdGUuIEJ5IGRlZmF1bHQgaXQgaXMgMSwgYnV0IHNwZWNpZnlpbmcgYW5vdGhlciB2YWx1ZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhbiBhcnJheSBvZiB2YWx1ZXMuIFRoaXMgZnVuY3Rpb24gaXMgcmVhbGx5IGp1c3QgYSB3cmFwcGVyIGFyb3VuZCB0aGUgQyA8dHQ+bWFsbG9jKCk8L3R0PiBmdW5jdGlvbi4KLTwvZGw+Ci08Yj48L2I+PHA+Ci08Yj5wdHJmcmVlKHB0cik8L2I+PHA+Ci08ZGw+Ci08ZHQ+PGRkPkRlc3Ryb3lzIGFuIG9iamVjdCBjcmVhdGVkIGJ5IDx0dD5wdHJjcmVhdGU8L3R0Pi4gSXQgaXMgZ2VuZXJhbGx5IHVuc2FmZSB0byB1c2UgdGhpcyBmdW5jdGlvbiBvbiBvYmplY3RzIG5vdCBjcmVhdGVkIGJ5IDx0dD5wdHJjcmVhdGU8L3R0Pi4gQ2FsbHMgdGhlIEMgPHR0PmZyZWUoKTwvdHQ+IGZ1bmN0aW9uLgotPC9kbD4KLTxwPgotPGI+cHRydmFsdWUocHRyLD9pbmRleD8sP3R5cGU/KTwvYj48cD4KLTxkbD4KLTxkdD48ZGQ+VGhpcyBkZXJlZmVyZW5jZXMgYSBwb2ludGVyIGFuZCByZXR1cm5zIHRoZSB2YWx1ZSB0aGF0IGl0IGlzIHBvaW50aW5nIHRvLiA8dHQ+aW5kZXg8L3R0PiBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgYXJyYXkgYWNjZXNzIGJ5IHJldHVybmluZyB0aGUgdmFsdWUgb2YgPHR0PnB0cltpbmRleF08L3R0Pi4gPHR0PnR5cGU8L3R0PiBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBleHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgZGF0YXR5cGUuIFNpbmNlIFNXSUcgcG9pbnRlcnMgYXJlIGVuY29kZWQgd2l0aCB0eXBlIGluZm9ybWF0aW9uLCB0aGUgdHlwZSBpcyB1c3VhbGx5IHVubmVjZXNzYXJ5LiBUaGUgPHR0PnR5cGU8L3R0PiBwYXJhbWV0ZXIgcHJvdmlkZXMgc29tZXdoYXQgYmV0dGVyIHBlcmZvcm1hbmNlIGFuZCBhbGxvd3MgeW91IHRvIGRlcmVmZXJlbmNlIGEgcG9pbnRlciBvZiBkaWZmZXJlbnQgdHlwZSBob3dldmVyLgotPGR0PjxkZD4KLTwvZGw+Ci08Yj5wdHJzZXQocHRyLCB2YWx1ZSwgP2luZGV4PywgP3R5cGU/KTwvYj48cD4KLTxkbD4KLTxkdD48ZGQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIG9iamVjdCBhIHBvaW50ZXIgaXMgcG9pbnRpbmcgdG8uIDx0dD52YWx1ZTwvdHQ+IGlzIHRoZSBuZXcgdmFsdWUgb2YgdGhlIG9iamVjdC4gPHR0PmluZGV4IDwvdHQ+aXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIGFsbG93aW5nIGFycmF5IGFjY2VzcyBieSBzZXR0aW5nIDx0dD5wdHJbaW5kZXhdID0gdmFsdWU8L3R0Pi4gPHR0PnR5cGUgPC90dD5pcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBleHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgZGF0YXR5cGUgYXMgZGVzY3JpYmVkIGFib3ZlLgotPGR0PjxkZD4KLTwvZGw+Ci08Yj5wdHJjYXN0KHB0ciwgbmV3dHlwZSk8L2I+PHA+Ci08ZGw+Ci08ZHQ+PGRkPkNhc3RzIGEgcG9pbnRlciB0byBhIG5ldyBkYXRhdHlwZSBhbmQgcmV0dXJucyB0aGUgbmV3IHZhbHVlLiA8dHQ+bmV3dHlwZTwvdHQ+IGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5ldyBkYXRhdHlwZSBhbmQgbWF5IGVpdGhlciBiZSB0aGUgIm1hbmdsZWQiIHZlcnNpb24gdXNlZCBieSBTV0lHIChzdWNoIGFzICI8dHQ+X1ZlY3Rvcl9wPC90dD4iKSBvciB0aGUgQyB2ZXJzaW9uIChzdWNoIGFzICI8dHQ+VmVjdG9yICo8L3R0PiIpLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHdpdGggYW55IGtpbmQgb2YgcG9pbnRlciB2YWx1ZS4gSW4gYWRkaXRpb25hbCB0byBwb2ludGVycywgPHR0PnB0cjwvdHQ+IG1heSBhbHNvIGhvbGQgYW4gaW50ZWdlciB2YWx1ZSBpbiB3aGljaCBjYXNlIHRoZSBpbnRlZ2VyIGlzIHR1cm5lZCBpbnRvIGEgcG9pbnRlciBvZiBnaXZlbiB0eXBlLgotPGR0PjxkZD4KLTwvZGw+Ci08Yj5wdHJhZGQocHRyLCBvZmZzZXQpPC9iPjxwPgotPGRsPgotPGR0PjxkZD5BZGRzIGFuIG9mZnNldCB0byBhIHBvaW50ZXIgYW5kIHJldHVybnMgYSBuZXcgcG9pbnRlci4gPHR0Pm9mZnNldDwvdHQ+IGlzIHNwZWNpZmllZCBhcyB0aGUgbnVtYmVyIG9mIG9iamVjdHMgZXhjZXB0IGZvciB1bmtub3duIGNvbXBsZXggZGF0YXR5cGVzIGluIHdoaWNoIGNhc2UgaXQgaXMgdGhlIG51bWJlciBvZiBieXRlcy4gRm9yIGV4YW1wbGUsIGlzIDx0dD5wdHI8L3R0PiBpcyBhICI8dHQ+ZG91YmxlICo8L3R0PiIsIDx0dD5wdHJhZGQocHRyLDEpPC90dD4gd2lsbCByZXR1cm4gdGhlIG5leHQgZG91YmxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgaWYgPHR0PnB0cjwvdHQ+IGlzICI8dHQ+VmVjdG9yICo8L3R0PiIsIHRoZW4gPHR0PnB0cmFkZChwdHIsMSk8L3R0PiB3aWxsIHVwZGF0ZSB0aGUgcG9pbnRlciBieSAxIGJ5dGUuCi08ZHQ+PGRkPgotPC9kbD4KLTxiPnB0cm1hcCh0eXBlMSx0eXBlMik8L2I+PHA+Ci08ZGw+Ci08ZHQ+PGRkPlRoaXMgcGVyZm9ybXMgYSAicnVudGltZSB0eXBlZGVmIiBhbmQgbWFrZXMgU1dJRyByZWNvZ25pemUgcG9pbnRlcnMgb2YgPHR0PnR5cGUxPC90dD4gYW5kIDx0dD50eXBlMjwvdHQ+IGFzIGVxdWl2YWxlbnQuIDx0dD50eXBlMTwvdHQ+IGFuZCA8dHQ+dHlwZTI8L3R0PiBhcmUgc3BlY2lmaWVkIGFzIHN0cmluZ3MuIE5vdCBnZW5lcmFsbHkgbmVlZGVkLCBidXQgc29tZXRpbWVzIHVzZWZ1bC4KLTwvZGw+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IEEgc2ltcGxlIGV4YW1wbGU8L2gzPgotU3VwcG9zZSB5b3UgaGF2ZSB0aGUgZm9sbG93aW5nIEMgZnVuY3Rpb24gOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXZvaWQgYWRkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICpyZXN1bHQpIHsKLQkqcmVzdWx0ID0gYSArIGI7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRvIG1hbmFnZSB0aGUgcmVzdWx0IG91dHB1dCwgd2UgY2FuIHdyaXRlIGFuIGludGVyZmFjZSBmaWxlIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0laW5jbHVkZSBwb2ludGVyLmkKLQotZXh0ZXJuIHZvaWQgYWRkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICpyZXN1bHQpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Ob3csIGxldCdzIHVzZSB0aGUgcG9pbnRlciBsaWJyYXJ5IChzaG93biBmb3IgYSBmZXcgbGFuZ3VhZ2VzKSA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotIyBUY2wgCi1zZXQgcmVzdWx0IFtwdHJjcmVhdGUgZG91YmxlXSAgICAgICAgICA7IyBDcmVhdGUgYSBkb3VibGUKLWFkZCA0LjUgMyAkcmVzdWx0ICAgICAgICAgICAgICAgICAgICAgIDsjIENhbGwgb3VyIEMgZnVuY3Rpb24KLXB1dHMgW3B0cnZhbHVlICRyZXN1bHRdICAgICAgICAgICAgICAgIDsjIFByaW50IG91dCB0aGUgcmVzdWx0Ci1wdHJmcmVlICRyZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICA7IyBEZXN0cm95IHRoZSBkb3VibGUKLQotIyBQZXJsNQotdXNlIGV4YW1wbGU7Ci1wYWNrYWdlIGV4YW1wbGU7ICAgICAgICAgICAgICAgICAgICAgICAgIyBGdW5jdGlvbnMgYXJlIGluIGV4YW1wbGUgcGFja2FnZQotJHJlc3VsdCA9IHB0cmNyZWF0ZSgiZG91YmxlIik7ICAgICAgICAgICMgQ3JlYXRlIGEgZG91YmxlCi1hZGQoNC41LDMsJHJlc3VsdCk7ICAgICAgICAgICAgICAgICAgICAgIyBDYWxsIEMgZnVuY3Rpb24KLXByaW50IHB0cnZhbHVlKCRyZXN1bHQpLCJcbiI7ICAgICAgICAgICAjIFByaW50IHRoZSByZXN1bHQKLXB0cmZyZWUoJHJlc3VsdCk7ICAgICAgICAgICAgICAgICAgICAgICAjIERlc3Ryb3kgdGhlIGRvdWJsZQotCi0jIFB5dGhvbgotaW1wb3J0IGV4YW1wbGUKLXJlc3VsdCA9IGV4YW1wbGUucHRyY3JlYXRlKCJkb3VibGUiKSAgICAjIENyZWF0ZSBhIGRvdWJsZQotZXhhbXBsZS5hZGQoNC41LDMscmVzdWx0KSAgICAgICAgICAgICAgICMgQ2FsbCBDIGZ1bmN0aW9uCi1wcmludCBleGFtcGxlLnB0cnZhbHVlKHJlc3VsdCkgICAgICAgICAgIyBQcmludCB0aGUgcmVzdWx0Ci1leGFtcGxlLnB0cmZyZWUocmVzdWx0KSAgICAgICAgICAgICAgICAgIyBEZXN0cm95IHRoZSBkb3VibGUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCB0aGUgaWRlYSBpcyBzaW1wbGUtLXdlIGNyZWF0ZSBhIHBvaW50ZXIsIHBhc3MgaXQgdG8gb3VyIEMgZnVuY3Rpb24sIGFuZCBkZXJlZmVyZW5jZSBpdCB0byBnZXQgdGhlIHJlc3VsdC4gSXQncyBlc3NlbnRpYWxseSBpZGVudGljYWwgdG8gaG93IHdlIHdvdWxkIGhhdmUgZG9uZSBpdCBpbiBDICh3ZWxsLCBtaW51cyB0aGUgZnVuY3Rpb24gY2FsbCB0byBkZXJlZmVyZW5jZSB0aGUgdmFsdWUpLjxwPgotPGEgbmFtZT0ibjE3Ij48L2E+PGgzPiBDcmVhdGluZyBhcnJheXM8L2gzPgotTm93IHN1cHBvc2UgeW91IGhhdmUgYSBDIGZ1bmN0aW9uIGludm9sdmluZyBhcnJheXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnZvaWQgYWRkdihkb3VibGUgYVtdLCBkb3VibGUgYltdLCBkb3VibGUgY1tdLCBpbnQgbml0ZW1zKSB7Ci0JaW50IGk7Ci0JZm9yIChpID0gMDsgaSAmbHQ7IG5pdGVtczsgaSsrKSB7Ci0JCWNbaV0gPSBhW2ldK2JbaV07Ci0JfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGlzIGFsc28gZWFzaWx5IGhhbmRsZWQgYnkgb3VyIHBvaW50ZXIgbGlicmFyeS4gRm9yIGV4YW1wbGUgKGluIFB5dGhvbikgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgUHl0aG9uIGZ1bmN0aW9uIHRvIHR1cm4gYSBsaXN0IGludG8gYW4gImFycmF5IgotZGVmIGJ1aWxkX2FycmF5KGwpOgotCW5pdGVtcyA9IGxlbihsKQotCWEgPSBwdHJjcmVhdGUoImRvdWJsZSIsMCxuaXRlbXMpCi0JaSA9IDAKLQlmb3IgaXRlbSBpbiBsOgotCQlwdHJzZXQoYSxpdGVtLGkpCi0JCWkgPSBpICsgMQotCXJldHVybiBhCi0KLSMgUHl0aG9uIGZ1bmN0aW9uIHRvIHR1cm4gYW4gYXJyYXkgaW50byBsaXN0Ci1kZWYgYnVpbGRfbGlzdChhLG5pdGVtcyk6Ci0JbCA9IFtdCi0JZm9yIGkgaW4gcmFuZ2UoMCxuaXRlbXMpOgotCQlsLmFwcGVuZChwdHJ2YWx1ZShhLGkpKQotCXJldHVybiBsCi0KLSMgTm93IHVzZSBvdXIgZnVuY3Rpb25zCi1hID0gbGlzdHRvYXJyYXkoWzAuMCwtMi4wLDMuMCw5LjBdKQotYiA9IGJ1aWxkX2FycmF5KFstMi4wLDMuNSwxMC4wLDIyLjBdKQotYyA9IHB0cmNyZWF0ZSgiZG91YmxlIiwwLDQpICAgICAgICAgICAgIyBGb3IgcmV0dXJuIHJlc3VsdAotYWRkKGEsYixjLDQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDYWxsIG91ciBDIGZ1bmN0aW9uCi1yZXN1bHQgPSBidWlsZF9saXN0KGMpICAgICAgICAgICAgICAgICAjIEJ1aWxkIGEgcHl0aG9uIGxpc3QgZnJvbSB0aGUgcmVzdWx0Ci1wcmludCByZXN1bHQKLXB0cmZyZWUoYSkKLXB0cmZyZWUoYikKLXB0cmZyZWUoYykKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBleGFtcGxlIG1heSBsb29rIHF1aXRlIGluZWZmaWNpZW50IG9uIHRoZSBzdXJmYWNlIChkdWUgdG8gdGhlIHRyYW5zbGF0aW9uIG9mIFB5dGhvbiBsaXN0cyB0byBhbmQgZnJvbSBDIGFycmF5cykuIEhvd2V2ZXIsIGlmIHlvdSdyZSB3b3JraW5nIHdpdGggbG90cyBvZiBDIGZ1bmN0aW9ucywgaXQncyBwb3NzaWJsZSB0byBzaW1wbHkgcGFzcyBDIHBvaW50ZXJzIGFyb3VuZCBiZXR3ZWVuIHRoZW0gd2l0aG91dCBhbnkgdHJhbnNsYXRpb24uIEFzIGEgcmVzdWx0LCBhcHBsaWNhdGlvbnMgY2FuIHJ1biBmYXN0LS1ldmVuIHdoZW4gY29udHJvbGxlZCBmcm9tIGEgc2NyaXB0aW5nIGxhbmd1YWdlLiBJdCdzIGFsc28gd29ydGggZW1waGFzaXppbmcgdGhhdCB0aGUgPHR0PnB0cmNyZWF0ZSgpPC90dD4gZnVuY3Rpb24gY3JlYXRlZCBhIHJlYWwgQyBhcnJheSB0aGF0IGNhbiBiZSBpbnRlcmNoYW5nZWQgd2l0aCBvdGhlciBhcnJheXMuIFRoZSA8dHQ+cHRydmFsdWUoKTwvdHQ+IGZ1bmN0aW9uIGNhbiBhbHNvIGRlcmVmZXJlbmNlIGEgQyBwb2ludGVyIGV2ZW4gaWYgaXQgd2Fzbid0IGNyZWF0ZWQgZnJvbSBQeXRob24uIDxwPgotPGEgbmFtZT0ibjE4Ij48L2E+PGgzPiBQYWNraW5nIGEgZGF0YSBzdHJ1Y3R1cmU8L2gzPgotVGhlIHBvaW50ZXIgbGlicmFyeSBjYW4gZXZlbiBiZSB1c2VkIHRvIHBhY2sgc2ltcGxlIGtpbmRzIG9mIGRhdGEtc3RydWN0dXJlcywgcGVyaGFwcyBmb3Igc2VuZGluZyBhY3Jvc3MgYSBuZXR3b3JrLCBvciBzaW1wbHkgZm9yIGNoYW5naW5nIHRoZSB2YWx1ZS4gRm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91IGhhZCB0aGlzIGRhdGEgc3RydWN0dXJlOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN0cnVjdCBQb2ludCB7Ci0JZG91YmxlIHgseTsKLQlpbnQgY29sb3I7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVlvdSBjb3VsZCB3cml0ZSBhIFRjbCBmdW5jdGlvbiB0byBzZXQgdGhlIGZpZWxkcyBvZiB0aGUgc3RydWN0dXJlIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnByb2Mgc2V0X3BvaW50IHsgcHRyIHggeSBjIH0gewotCXNldCBwIFtwdHJjYXN0ICRwdHIgImRvdWJsZSAqIl0gICAgICAgOyMgTWFrZSBhIGRvdWJsZSAqCi0JcHRyc2V0ICRwICR4ICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBTZXQgeCBjb21wb25lbnQKLQlzZXQgcCBbcHRyYWRkICRwIDFdICAgICAgICAgICAgICAgICAgIDsjIFVwZGF0ZSBwb2ludGVyCi0JcHRyc2V0ICRwICR5ICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBTZXQgeSBjb21wb25lbnQKLQlzZXQgcCBbcHRyY2FzdCBbcHRyYWRkICRwIDFdICJpbnQgKiJdIDsjIFVwZGF0ZSBwb2ludGVyIGFuZCBjYXN0Ci0JcHRyc2V0ICRwICRjICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBTZXQgY29sb3IgY29tcG9uZW50Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgZnVuY3Rpb24gY291bGQgYmUgdXNlZCBldmVuIGlmIHlvdSBkaWRuJ3QgdGVsbCBTV0lHIGFueXRoaW5nIGFib3V0IHRoZSAiUG9pbnQiIHN0cnVjdHVyZSBhYm92ZS4gPHA+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gSW50cm9kdWN0aW9uIHRvIHR5cGVtYXBzPC9oMj4KLVNvbWV0aW1lcyBpdCdzIGRlc2lyYWJsZSB0byBjaGFuZ2UgU1dJRyBiZWhhdmlvciBpbiBzb21lIG1hbm5lci4gRm9yIGV4YW1wbGUsIG1heWJlIHlvdSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgdHJhbnNsYXRlIEMgYXJyYXlzIHRvIGFuZCBmcm9tIFBlcmwgbGlzdHMuIE9yIHBlcmhhcHMgeW91IHdvdWxkIGxpa2UgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGJlaGF2ZSBhcyBhbiBvdXRwdXQgcGFyYW1ldGVyLiBUeXBlbWFwcyBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBkb2luZyBqdXN0IHRoaXMgYnkgbW9kaWZ5aW5nIFNXSUcncyBjb2RlIGdlbmVyYXRvci4gVHlwZW1hcHMgYXJlIG5ldyB0byBTV0lHIDEuMSwgYnV0IGl0IHNob3VsZCBiZSBlbXBoYXNpemVkIHRoYXQgdGhleSBhcmUgbm90IHJlcXVpcmVkIHRvIGJ1aWxkIGFuIGludGVyZmFjZS4gPHA+Ci08YSBuYW1lPSJuMTkiPjwvYT48aDM+IFRoZSBpZGVhIChpbiBhIG51dHNoZWxsKTwvaDM+Ci1UaGUgaWRlYSBiZWhpbmQgdHlwZW1hcHMgaXMgcmVsYXRpdmVseSBzaW1wbGUtLWdpdmVuIHRoZSBvY2N1cnJlbmNlIG9mIGEgcGFydGljdWxhciBDIGRhdGF0eXBlLCB3ZSB3YW50IHRvIGFwcGx5IHJ1bGVzIGZvciBzcGVjaWFsIHByb2Nlc3NpbmcuIEZvciBleGFtcGxlLCBzdXBwb3NlIHdlIGhhdmUgYSBDIGZ1bmN0aW9uIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBhZGQoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKnJlc3VsdCkgewotCSpyZXN1bHQgPSBhICsgYjsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSXQgaXMgY2xlYXIgdG8gdXMgdGhhdCB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBpcyBiZWluZyByZXR1cm5lZCBpbiB0aGUgPHR0PnJlc3VsdDwvdHQ+IHBhcmFtZXRlci4gVW5mb3J0dW5hdGVseSwgU1dJRyBpc24ndCB0aGlzIHNtYXJ0LS1hZnRlciBhbGwgInJlc3VsdCIgaXMganVzdCBsaWtlIGFueSBvdGhlciBwb2ludGVyLiBIb3dldmVyLCB3aXRoIGEgdHlwZW1hcCwgd2UgY2FuIG1ha2UgU1dJRyByZWNvZ25pemUgIjx0dD5kb3VibGUgKnJlc3VsdDwvdHQ+IiBhcyBhIHNwZWNpYWwgZGF0YXR5cGUgYW5kIGNoYW5nZSB0aGUgaGFuZGxpbmcgdG8gZG8gZXhhY3RseSB3aGF0IHdlIHdhbnQuPHA+Ci08cD4KLVNvLCBkZXNwaXRlIGJlaW5nIGEgY29tbW9uIHRvcGljIG9mIGRpc2N1c3Npb24gb24gdGhlIFNXSUcgbWFpbGluZyBsaXN0LCBhIHR5cGVtYXAgaXMgcmVhbGx5IGp1c3QgYSBzcGVjaWFsIHByb2Nlc3NpbmcgcnVsZSB0aGF0IGlzIGFwcGxpZWQgdG8gYSBwYXJ0aWN1bGFyIGRhdGF0eXBlLiBFYWNoIHR5cGVtYXAgcmVsaWVzIG9uIHR3byBlc3NlbnRpYWwgYXR0cmlidXRlcy0tYSBkYXRhdHlwZSBhbmQgYSBuYW1lICh3aGljaCBpcyBvcHRpb25hbCkuIFdoZW4gdHJ5aW5nIHRvIG1hdGNoIHBhcmFtZXRlcnMsIFNXSUcgbG9va3MgYXQgYm90aCBhdHRyaWJ1dGVzLiBUaHVzLCBzcGVjaWFsIHByb2Nlc3NpbmcgYXBwbGllZCB0byBhIHBhcmFtZXRlciBvZiAiPHR0PmRvdWJsZSAqcmVzdWx0PC90dD4iIHdpbGwgbm90IGJlIGFwcGxpZWQgdG8gIjx0dD5kb3VibGUgKmlucHV0PC90dD4iLiBPbiB0aGUgb3RoZXIgaGFuZCwgc3BlY2lhbCBwcm9jZXNzaW5nIGRlZmluZWQgZm9yIGEgZGF0YXR5cGUgb2YgIjx0dD5kb3VibGUgKjwvdHQ+IiBjb3VsZCBiZSBhcHBsaWVkIHRvIGJvdGggKHNpbmNlIGl0IGlzIG1vcmUgZ2VuZXJhbCkuIDxwPgotPGEgbmFtZT0ibjIwIj48L2E+PGgzPiBVc2luZyBzb21lIHR5cGVtYXBzPC9oMz4KLUl0IGlzIGVhc3kgdG8gc3RhcnQgdXNpbmcgc29tZSB0eXBlbWFwcyByaWdodCBhd2F5LiBUbyB3cmFwIHRoZSBhYm92ZSBmdW5jdGlvbiwgc2ltcGx5IHVzZSB0aGUgPHR0PnR5cGVtYXBzLmk8L3R0PiBsaWJyYXJ5IGZpbGUgKHdoaWNoIGlzIHBhcnQgb2YgdGhlIFNXSUcgbGlicmFyeSkgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gU2ltcGxlIGV4YW1wbGUgdXNpbmcgdHlwZW1hcHMKLSVtb2R1bGUgZXhhbXBsZQotJWluY2x1ZGUgdHlwZW1hcHMuaSAJCQkJCS8vIEdyYWIgdGhlIHN0YW5kYXJkIHR5cGVtYXAgbGlicmFyeQotCi0lYXBwbHkgZG91YmxlICpPVVRQVVQgeyBkb3VibGUgKnJlc3VsdCB9OwotZXh0ZXJuIHZvaWQgYWRkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICpyZXN1bHQpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgPHR0PiVhcHBseTwvdHQ+IGRpcmVjdGl2ZSB0ZWxscyBTV0lHIHRoYXQgd2UgYXJlIGdvaW5nIHRvIGFwcGx5IHNwZWNpYWwgcHJvY2Vzc2luZyB0byBhIGRhdGF0eXBlLiBUaGUgIjx0dD5kb3VibGUgKk9VVFBVVDwvdHQ+IiBpcyB0aGUgbmFtZSBvZiBhIHJ1bGUgZGVzY3JpYmluZyBob3cgdG8gcmV0dXJuIGFuIG91dHB1dCB2YWx1ZSBmcm9tIGEgIjx0dD5kb3VibGUgKjwvdHQ+IiAodGhpcyBydWxlIGlzIGRlZmluZWQgaW4gdGhlIGZpbGUgPHR0PnR5cGVtYXBzLmk8L3R0PikuIFRoZSBydWxlIGdldHMgYXBwbGllZCB0byBhbGwgb2YgdGhlIGRhdGF0eXBlcyBsaXN0ZWQgaW4gY3VybHkgYnJhY2VzLS0gaW4gdGhpcyBjYXNlICI8dHQ+ZG91YmxlICpyZXN1bHQ8L3R0PiIuPHA+Ci08cD4KLVdoaWxlIGl0IG1heSBzb3VuZCBjb21wbGljYXRlZCwgd2hlbiB5b3UgY29tcGlsZSB0aGUgbW9kdWxlIGFuZCB1c2UgaXQsIHlvdSBnZXQgYSBmdW5jdGlvbiB0aGF0IHdvcmtzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgUGVybCBjb2RlIHRvIGNhbGwgb3VyIGFkZCBmdW5jdGlvbgotCi0kYSA9IGFkZCgzLDQpOyAJCQotcHJpbnQgJGEsIlxuIjsKLTcKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotT3VyIGZ1bmN0aW9uIGlzIG11Y2ggZWFzaWVyIHRvIHVzZSBhbmQgaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSB0byBjcmVhdGUgYSBzcGVjaWFsIGRvdWJsZSAqIG9iamVjdCBhbmQgcGFzcyBpdCB0byB0aGUgZnVuY3Rpb24uIFR5cGVtYXBzIHRvb2sgY2FyZSBvZiB0aGlzIGF1dG9tYXRpY2FsbHkuPHA+Ci08YSBuYW1lPSJuNCI+PC9hPjxoMj4gTWFuYWdpbmcgaW5wdXQgYW5kIG91dHB1dCBwYXJhbWV0ZXJzPC9oMj4KLUJ5IGRlZmF1bHQsIHdoZW4gU1dJRyBlbmNvdW50ZXJzIGEgcG9pbnRlciwgaXQgbWFrZXMgbm8gYXNzdW1wdGlvbnMgYWJvdXQgd2hhdCBpdCBpcyAod2VsbCwgb3RoZXIgdGhhbiB0aGUgZmFjdCB0aGF0IGl0J3MgYSBwb2ludGVyKS4gVGhlIDx0dD50eXBlbWFwcy5pPC90dD4gbGlicmFyeSBmaWxlIGNvbnRhaW5zIGEgdmFyaWV0eSBvZiBtZXRob2RzIGZvciBjaGFuZ2luZyB0aGlzIGJlaGF2aW9yLiBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBpbiB0aGlzIGZpbGUgOjxwPgotPGEgbmFtZT0ibjIxIj48L2E+PGgzPiBJbnB1dCBNZXRob2RzPC9oMz4KLVRoZXNlIG1ldGhvZHMgdGVsbCBTV0lHIHRoYXQgYSBwb2ludGVyIGlzIGEgc2luZ2xlIGlucHV0IHZhbHVlLiBXaGVuIHVzZWQsIGZ1bmN0aW9ucyB3aWxsIGV4cGVjdCB2YWx1ZXMgaW5zdGVhZCBvZiBwb2ludGVycy48cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci1pbnQgKklOUFVUCQkKLXNob3J0ICpJTlBVVAotbG9uZyAqSU5QVVQKLXVuc2lnbmVkIGludCAqSU5QVVQKLXVuc2lnbmVkIHNob3J0ICpJTlBVVAotdW5zaWduZWQgbG9uZyAqSU5QVVQKLWRvdWJsZSAqSU5QVVQKLWZsb2F0ICpJTlBVVAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TdXBwb3NlIHlvdSBoYWQgYSBDIGZ1bmN0aW9uIGxpa2UgdGhpcyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotZG91YmxlIGFkZChkb3VibGUgKmEsIGRvdWJsZSAqYikgewotCXJldHVybiAqYSsqYjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotWW91IGNvdWxkIHdyYXAgaXQgd2l0aCBTV0lHIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZXhhbXBsZQotJWluY2x1ZGUgdHlwZW1hcHMuaQotLi4uCi1leHRlcm4gZG91YmxlIGFkZChkb3VibGUgKklOUFVULCBkb3VibGUgKklOUFVUKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93LCB3aGVuIHlvdSB1c2UgeW91ciBmdW5jdGlvbiAsaXQgd2lsbCB3b3JrIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgcmVzdWx0IFthZGQgMyA0XQotJSBwdXRzICRyZXN1bHQKLTcKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4yMiI+PC9hPjxoMz4gT3V0cHV0IE1ldGhvZHM8L2gzPgotVGhlc2UgbWV0aG9kcyB0ZWxsIFNXSUcgdGhhdCBwb2ludGVyIGlzIHRoZSBvdXRwdXQgdmFsdWUgb2YgYSBmdW5jdGlvbi4gV2hlbiB1c2VkLCB5b3UgZG8gbm90IG5lZWQgdG8gc3VwcGx5IHRoZSBhcmd1bWVudCB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uLCBidXQgbXVsdGlwbGUgcmV0dXJuIHZhbHVlcyBjYW4gYmUgcmV0dXJuZWQuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+aW50ICpPVVRQVVQKLXNob3J0ICpPVVRQVVQKLWxvbmcgKk9VVFBVVAotdW5zaWduZWQgaW50ICpPVVRQVVQKLXVuc2lnbmVkIHNob3J0ICpPVVRQVVQKLXVuc2lnbmVkIGxvbmcgKk9VVFBVVAotZG91YmxlICpPVVRQVVQKLWZsb2F0ICpPVVRQVVQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlc2UgbWV0aG9kcyBjYW4gYmUgdXNlZCBhcyBzaG93biBpbiBhbiBlYXJsaWVyIGV4YW1wbGUuIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSB0aGlzIEMgZnVuY3Rpb24gOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnZvaWQgYWRkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlICpjKSB7Ci0JKmMgPSBhK2I7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUEgU1dJRyBpbnRlcmZhY2UgZmlsZSBtaWdodCBsb29rIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0laW5jbHVkZSB0eXBlbWFwcy5pCi0uLi4KLWV4dGVybiB2b2lkIGFkZChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqT1VUUFVUKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCBvbmx5IGEgc2luZ2xlIG91dHB1dCB2YWx1ZSBpcyByZXR1cm5lZCwgYnV0IHRoaXMgaXMgbm90IGEgcmVzdHJpY3Rpb24uIEZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSBoYWQgYSBmdW5jdGlvbiBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFJldHVybnMgYSBzdGF0dXMgY29kZSBhbmQgZG91YmxlCi1pbnQgZ2V0X2RvdWJsZShjaGFyICpzdHIsIGRvdWJsZSAqcmVzdWx0KTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBkZWNsYXJlZCBpbiBTV0lHIGFzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgZ2V0X2RvdWJsZShjaGFyICpzdHIsIGRvdWJsZSAqT1VUUFVUKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIGZ1bmN0aW9uIHdvdWxkIHJldHVybiBhIGxpc3Qgb2Ygb3V0cHV0IHZhbHVlcyBhcyBzaG93biBmb3IgUHl0aG9uIGJlbG93IDphcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4mZ3Q7Jmd0OyZndDsgZ2V0X2RvdWJsZSgiMy4xNDE1OTI2IikJCQkJCSMgUmV0dXJucyBib3RoIGEgc3RhdHVzIGFuZCB2YWx1ZQotWzAsIDMuMTQxNTkyNl0gCi0mZ3Q7Jmd0OyZndDsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4yMyI+PC9hPjxoMz4gSW5wdXQvT3V0cHV0IE1ldGhvZHM8L2gzPgotV2hlbiBhIHBvaW50ZXIgc2VydmVzIGFzIGJvdGggYW4gaW5wdXQgYW5kIG91dHB1dCB2YWx1ZSB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLWludCAqQk9USAotc2hvcnQgKkJPVEgKLWxvbmcgKkJPVEgKLXVuc2lnbmVkIGludCAqQk9USAotdW5zaWduZWQgc2hvcnQgKkJPVEgKLXVuc2lnbmVkIGxvbmcgKkJPVEgKLWRvdWJsZSAqQk9USAotZmxvYXQgKkJPVEgKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotQSB0eXBpY2FsIEMgZnVuY3Rpb24gd291bGQgYmUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBuZWdhdGUoZG91YmxlICp4KSB7Ci0JKnggPSAtKCp4KTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVG8gbWFrZSB4IGZ1bmN0aW9uIGFzIGJvdGggYW5kIGlucHV0IGFuZCBvdXRwdXQgdmFsdWUsIGRlY2xhcmUgdGhlIGZ1bmN0aW9uIGxpa2UgdGhpcyBpbiBhbiBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0laW5jbHVkZSB0eXBlbWFwcy5pCi0uLi4KLWV4dGVybiB2b2lkIG5lZ2F0ZShkb3VibGUgKkJPVEgpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Ob3cgd2l0aGluIGEgc2NyaXB0LCB5b3UgY2FuIHNpbXBseSBjYWxsIHRoZSBmdW5jdGlvbiBub3JtYWxseSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JGEgPSBuZWdhdGUoMyk7IAkJCQkjIGEgPSAtMyBhZnRlciBjYWxsaW5nIHRoaXMKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjI0Ij48L2E+PGgzPiBVc2luZyBkaWZmZXJlbnQgbmFtZXM8L2gzPgotQnkgZXhwbGljaXRseSB1c2luZyB0aGUgcGFyYW1ldGVyIG5hbWVzIG9mIElOUFVULCBPVVRQVVQsIGFuZCBCT1RIIGluIHlvdXIgZGVjbGFyYXRpb25zLCBTV0lHIHBlcmZvcm1zIGRpZmZlcmVudCBvcGVyYXRpb25zLiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgZGlmZmVyZW50IG5hbWVzLCB5b3UgY2FuIHNpbXBseSB1c2UgdGhlIDx0dD4lYXBwbHk8L3R0PiBkaXJlY3RpdmUuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBNYWtlIGRvdWJsZSAqcmVzdWx0IGFuIG91dHB1dCB2YWx1ZQotJWFwcGx5IGRvdWJsZSAqT1VUUFVUIHsgZG91YmxlICpyZXN1bHQgfTsKLQotLy8gTWFrZSBJbnQzMiAqaW4gYW4gaW5wdXQgdmFsdWUKLSVhcHBseSBpbnQgKklOUFVUIHsgSW50MzIgKmluIH07Ci0KLS8vIE1ha2UgbG9uZyAqeCBib3RoCi0lYXBwbHkgbG9uZyAqQk9USCB7bG9uZyAqeH07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTx0dD4lYXBwbHk8L3R0PiBvbmx5IHJlbmFtZXMgdGhlIGRpZmZlcmVudCB0eXBlIGhhbmRsaW5nIHJ1bGVzLiBZb3UgY2FuIHVzZSBpdCB0byBtYXRjaCB1cCB3aXRoIHRoZSBuYW1pbmcgc2NoZW1lIHVzZWQgaW4gYSBoZWFkZXIgZmlsZSBhbmQgc28gZm9ydGguIFRvIGxhdGVyIGNsZWFyIGEgbmFtaW5nIHJ1bGUsIHRoZSA8dHQ+JWNsZWFyPC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lY2xlYXIgZG91YmxlICpyZXN1bHQ7Ci0lY2xlYXIgSW50MzIgKmluLCBsb25nICp4OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IEFwcGx5aW5nIGNvbnN0cmFpbnRzIHRvIGlucHV0IHZhbHVlczwvaDI+Ci1JbiBhZGRpdGlvbiB0byBjaGFuZ2luZyB0aGUgaGFuZGxpbmcgb2YgdmFyaW91cyBpbnB1dCB2YWx1ZXMsIGl0IGlzIGFsc28gcG9zc2libGUgdG8gYXBwbHkgY29uc3RyYWludHMuIEZvciBleGFtcGxlLCBtYXliZSB5b3Ugd2FudCB0byBpbnN1cmUgdGhhdCBhIHZhbHVlIGlzIHBvc2l0aXZlLCBvciB0aGF0IGEgcG9pbnRlciBpcyBub24tTlVMTC4gVGhpcyBjYW4gYmUgYWNjb21wbGlzaGVkIGluY2x1ZGluZyB0aGUgPHR0PmNvbnN0cmFpbnRzLmk8L3R0PiBsaWJyYXJ5IGZpbGUgKHdoaWNoIGlzIGFsc28gYmFzZWQgb24gdHlwZW1hcHMpLjxwPgotPGEgbmFtZT0ibjI1Ij48L2E+PGgzPiBTaW1wbGUgY29uc3RyYWludCBleGFtcGxlPC9oMz4KLVRoZSBjb25zdHJhaW50cyBsaWJyYXJ5IGlzIGJlc3QgaWxsdXN0cmF0ZWQgYnkgdGhlIGZvbGxvd2luZyBpbnRlcmZhY2UgZmlsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gSW50ZXJmYWNlIGZpbGUgd2l0aCBjb25zdHJhaW50cwotJW1vZHVsZSBleGFtcGxlCi0laW5jbHVkZSBjb25zdHJhaW50cy5pCi0KLWRvdWJsZSBleHAoZG91YmxlIHgpOwotZG91YmxlIGxvZyhkb3VibGUgUE9TSVRJVkUpOyAgICAgICAgIC8vIEFsbG93IG9ubHkgcG9zaXRpdmUgdmFsdWVzCi1kb3VibGUgc3FydChkb3VibGUgTk9OTkVHQVRJVkUpOyAgICAgLy8gTm9uLW5lZ2F0aXZlIHZhbHVlcyBvbmx5Ci1kb3VibGUgaW52KGRvdWJsZSBOT05aRVJPKTsgICAgICAgICAgLy8gTm9uLXplcm8gdmFsdWVzCi0KLXZvaWQgZnJlZSh2b2lkICpOT05OVUxMKTsgICAgICAgICAgICAvLyBOb24tTlVMTCBwb2ludGVycyBvbmx5Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBiZWhhdmlvciBvZiB0aGlzIGZpbGUgaXMgZXhhY3RseSBhcyB5b3Ugd291bGQgZXhwZWN0LiBJZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyB2aW9sYXRlIHRoZSBjb25zdHJhaW50IGNvbmRpdGlvbiwgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLiBBcyBhIHJlc3VsdCwgaXQgaXMgcG9zc2libGUgdG8gY2F0Y2ggYmFkIHZhbHVlcywgcHJldmVudCBteXN0ZXJpb3VzIHByb2dyYW0gY3Jhc2hlcyBhbmQgc28gb24uPHA+Ci08YSBuYW1lPSJuMjYiPjwvYT48aDM+IENvbnN0cmFpbnQgbWV0aG9kczwvaDM+Ci1UaGUgZm9sbG93aW5nIGNvbnN0cmFpbnRzIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlPHA+Ci08YmxvY2txdW90ZT48cHJlPgotUE9TSVRJVkUgICAgICAgICAgICAgICAgICAgICBBbnkgbnVtYmVyICZndDsgMCAobm90IHplcm8pCi1ORUdBVElWRSAgICAgICAgICAgICAgICAgICAgIEFueSBudW1iZXIgJmx0OyAwIChub3QgemVybykKLU5PTk5FR0FUSVZFICAgICAgICAgICAgICAgICAgQW55IG51bWJlciAmZ3Q7PSAwCi1OT05QT1NJVElWRSAgICAgICAgICAgICAgICAgIEFueSBudW1iZXIgJmx0Oz0gMAotTk9OWkVSTyAgICAgICAgICAgICAgICAgICAgICBOb256ZXJvIG51bWJlcgotTk9OTlVMTCAgICAgICAgICAgICAgICAgICAgICBOb24tTlVMTCBwb2ludGVyIChwb2ludGVycyBvbmx5KS4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxhIG5hbWU9Im4yNyI+PC9hPjxoMz4gQXBwbHlpbmcgY29uc3RyYWludHMgdG8gbmV3IGRhdGF0eXBlczwvaDM+Ci1UaGUgY29uc3RyYWludHMgbGlicmFyeSBvbmx5IHN1cHBvcnRzIHRoZSBidWlsdC1pbiBDIGRhdGF0eXBlcywgYnV0IGl0IGlzIGVhc3kgdG8gYXBwbHkgaXQgdG8gbmV3IGRhdGF0eXBlcyB1c2luZyA8dHQ+JWFwcGx5PC90dD4uIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBBcHBseSBhIGNvbnN0cmFpbnQgdG8gYSBSZWFsIHZhcmlhYmxlCi0lYXBwbHkgTnVtYmVyIFBPU0lUSVZFIHsgUmVhbCBpbiB9OwotCi0vLyBBcHBseSBhIGNvbnN0cmFpbnQgdG8gYSBwb2ludGVyIHR5cGUKLSVhcHBseSBQb2ludGVyIE5PTk5VTEwgeyBWZWN0b3IgKiB9OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgc3BlY2lhbCB0eXBlcyBvZiAiTnVtYmVyIiBhbmQgIlBvaW50ZXIiIGNhbiBiZSBhcHBsaWVkIHRvIGFueSBudW1lcmljIGFuZCBwb2ludGVyIHZhcmlhYmxlIHR5cGUgcmVzcGVjdGl2ZWx5LiBUbyBsYXRlciByZW1vdmUgYSBjb25zdHJhaW50LCB0aGUgJWNsZWFyIGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWNsZWFyIFJlYWwgaW47Ci0lY2xlYXIgVmVjdG9yICo7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNiI+PC9hPjxoMj4gV3JpdGluZyBuZXcgdHlwZW1hcHM8L2gyPgotU28gZmFyLCB3ZSBoYXZlIG9ubHkgc2VlbiBhIGhpZ2gtbGV2ZWwgcGljdHVyZSBvZiB0eXBlbWFwcyBhbmQgaGF2ZSB1dGlsaXplZCBwcmUtZXhpc3RpbmcgdHlwZW1hcHMgaW4gdGhlIFNXSUcgbGlicmFyeS4gSG93ZXZlciwgaXQgaXMgcG9zc2libGUgdG8gZG8gbW9yZSBpZiB5b3UncmUgd2lsbGluZyB0byBnZXQgeW91ciBoYW5kcyBkaXJ0eSBhbmQgZGlnIGludG8gdGhlIGludGVybmFscyBvZiBTV0lHIGFuZCB5b3VyIGZhdm9yaXRlIHNjcmlwdGluZyBsYW5ndWFnZS48cD4KLTxwPgotQmVmb3JlIGRpdmluZyBpbiwgZmlyc3QgYXNrIHlvdXJzZWxmIGRvIEkgcmVhbGx5IG5lZWQgdG8gY2hhbmdlIFNXSUcncyBkZWZhdWx0IGJlaGF2aW9yPyBUaGUgYmFzaWMgcG9pbnRlciBtb2RlbCB3b3JrcyBwcmV0dHkgd2VsbCBtb3N0IG9mIHRoZSB0aW1lIGFuZCBJIGVuY291cmFnZSB5b3UgdG8gdXNlIGl0LS1hZnRlciBhbGwsIEkgd2FudGVkIFNXSUcgdG8gYmUgZWFzeSBlbm91Z2ggdG8gdXNlIHNvIHRoYXQgeW91IGRpZG4ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGxvdyBsZXZlbCBkZXRhaWxzLiBJZiwgYWZ0ZXIgY29udGVtcGxhdGluZyB0aGlzIGZvciBhd2hpbGUsIHlvdSd2ZSBkZWNpZGVkIHRoYXQgeW91IHJlYWxseSB3YW50IHRvIGNoYW5nZSBzb21ldGhpbmcsIGEgd29yZCBvZiBjYXV0aW9uIGlzIGluIG9yZGVyLiBXcml0aW5nIGEgdHlwZW1hcCBmcm9tIHNjcmF0Y2ggdXN1YWxseSByZXF1aXJlcyBhIGRldGFpbGVkIGtub3dsZWRnZSBvZiB0aGUgaW50ZXJuYWwgd29ya2luZ3Mgb2YgYSBwYXJ0aWN1bGFyIHNjcmlwdGluZyBsYW5ndWFnZS4gSXQgaXMgYWxzbyBxdWl0ZSBlYXN5IHRvIGJyZWFrIGFsbCBvZiB0aGUgb3V0cHV0IGNvZGUgZ2VuZXJhdGVkIGJ5IFNXSUcgaWYgeW91IGRvbid0IGtub3cgd2hhdCB5b3UncmUgZG9pbmcuIE9uIHRoZSBwbHVzIHNpZGUsIG9uY2UgYSB0eXBlbWFwIGhhcyBiZWVuIHdyaXR0ZW4gaXQgY2FuIGJlIHJldXNlZCBvdmVyIGFuZCBvdmVyIGFnYWluIGJ5IHB1dHRpbmcgaXQgaW4gdGhlIFNXSUcgbGlicmFyeSAoYXMgaGFzIGFscmVhZHkgYmVlbiBkZW1vbnN0cmF0ZWQpLiBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBiYXNpY3Mgb2YgdHlwZW1hcHMuIExhbmd1YWdlIHNwZWNpZmljIGluZm9ybWF0aW9uICh3aGljaCBjYW4gYmUgcXVpdGUgdGVjaG5pY2FsKSBpcyBjb250YWluZWQgaW4gdGhlIGxhdGVyIGNoYXB0ZXJzLjxwPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBNb3RpdmF0aW9ucyBmb3IgdXNpbmcgdHlwZW1hcHM8L2gzPgotU3VwcG9zZSB5b3UgaGF2ZSBhIGZldyBDIGZ1bmN0aW9ucyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnZvaWQgZ2xMaWdodGZ2KEdMZW51bSBsaWdodCwgR2xlbnVtIHBuYW1lLCBHTGZsb2F0IHBhcm1zWzRdKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCB0aGUgdGhpcmQgYXJndW1lbnQgdGFrZXMgYSA0IGVsZW1lbnQgYXJyYXkuIElmIHlvdSBkbyBub3RoaW5nLCBTV0lHIHdpbGwgY29udmVydCB0aGUgbGFzdCBhcmd1bWVudCBpbnRvIGEgcG9pbnRlci4gV2hlbiB1c2VkIGluIHRoZSBzY3JpcHRpbmcgbGFuZ3VhZ2UsIHlvdSB3aWxsIG5lZWQgdG8gcGFzcyBhICI8dHQ+R0xmbG9hdCAqPC90dD4iIG9iamVjdCB0byB0aGUgZnVuY3Rpb24gdG8gbWFrZSBpdCB3b3JrLiA8cD4KLTxhIG5hbWU9Im4yOSI+PC9hPjxoMz4gTWFuYWdpbmcgc3BlY2lhbCBkYXRhLXR5cGVzIHdpdGggaGVscGVyIGZ1bmN0aW9uczwvaDM+Ci1IZWxwZXIgZnVuY3Rpb25zIHByb3ZpZGUgb25lIG1lY2hhbmlzbSBmb3IgZGVhbGluZyB3aXRoIG9kZCBkYXRhdHlwZXMuIFdpdGggYSBoZWxwZXIgZnVuY3Rpb24sIHlvdSBwcm92aWRlIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSBmb3IgY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgb2JqZWN0cyBvciBjb252ZXJ0aW5nIHZhbHVlcyBpbnRvIGEgdXNlZnVsIGZvcm0uIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXN1YWxseSBqdXN0IHBsYWNlZCBpbnRvIHlvdXIgaW50ZXJmYWNlIGZpbGUgd2l0aCB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rpb25zLiBGb3IgZXhhbXBsZSwgYSBmZXcgaGVscGVyIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGggNCBlbGVtZW50IGFycmF5cyBmb3IgdGhlIGFib3ZlIGZ1bmN0aW9uLCBtaWdodCBsb29rIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWlubGluZSAlewotLyogQ3JlYXRlIGEgbmV3IEdMZmxvYXQgWzRdIG9iamVjdCAqLwotR0xmbG9hdCAqbmV3ZnY0KGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHosIGRvdWJsZSB3KSB7Ci0JR0xmbG9hdCAqZiA9IChHTGZsb2F0ICopIG1hbGxvYyg0KnNpemVvZihHTGZsb2F0KSk7Ci0JZlswXSA9IHg7Ci0JZlsxXSA9IHk7Ci0JZlsyXSA9IHo7Ci0JZlszXSA9IHc7Ci0JcmV0dXJuIGY7Ci19Ci0KLS8qIERlc3Ryb3kgYSBHTGZsb2F0IFs0XSBvYmplY3QgKi8KLXZvaWQgZGVsZXRlX2Z2NChHTGZsb2F0ICpkKSB7Ci0JZnJlZShkKTsKLX0KLSV9Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdoZW4gd3JhcHBlZCwgb3VyIGhlbHBlciBmdW5jdGlvbnMgd2lsbCBzaG93IHVwIHRoZSBpbnRlcmZhY2UgYW5kIGNhbiBiZSB1c2VkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0IGxpZ2h0IFtuZXdmdjQgMC4wIDAuMCAwLjAgMS4wXSAgICAgICAgIyBDcmVhdGVzIGEgR0xmbG9hdCAqCi0lIGdsTGlnaHRmdiBHTF9MSUdIVDAgR0xfQU1CSUVOVCAkbGlnaHQgICAgICMgUGFzcyBpdCB0byB0aGUgZnVuY3Rpb24KLS4uLgotJSBkZWxldGVfZnY0ICRsaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAjIERlc3Ryb3kgaXQgKFdoZW4gZG9uZSkgCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLTxwPgotV2hpbGUgbm90IHRoZSBtb3N0IGVsZWdhbnQgYXBwcm9hY2gsIGhlbHBlciBmdW5jdGlvbnMgcHJvdmlkZSBhIHNpbXBsZSBtZWNoYW5pc20gZm9yIHdvcmtpbmcgd2l0aCBtb3JlIGNvbXBsZXggZGF0YXR5cGVzLiBJbiBtb3N0IGNhc2VzLCB0aGV5IGNhbiBiZSB3cml0dGVuIHdpdGhvdXQgZGl2aW5nIGludG8gU1dJRydzIGludGVybmFscy4gQmVmb3JlIHR5cGVtYXAgc3VwcG9ydCB3YXMgYWRkZWQgdG8gU1dJRywgaGVscGVyIGZ1bmN0aW9ucyB3ZXJlIHRoZSBvbmx5IG1ldGhvZCBmb3IgaGFuZGxpbmcgdGhlc2Uga2luZHMgb2YgcHJvYmxlbXMuIFRoZSBwb2ludGVyLmkgbGlicmFyeSBmaWxlIGRlc2NyaWJlZCBlYXJsaWVyIGlzIGFuIGV4YW1wbGUgb2YganVzdCB0aGlzIHNvcnQgb2YgYXBwcm9hY2guIEFzIGEgcnVsZSBvZiB0aHVtYiwgSSByZWNvbW1lbmQgdGhhdCB5b3UgdHJ5IHRvIHVzZSB0aGlzIGFwcHJvYWNoIGJlZm9yZSBqdW1waW5nIGludG8gdHlwZW1hcHMuIDxwPgotPGEgbmFtZT0ibjMwIj48L2E+PGgzPiBBIFR5cGVtYXAgSW1wbGVtZW50YXRpb248L2gzPgotQXMgd2UgaGF2ZSBzZWVuLCBhIHR5cGVtYXAgY2FuIG9mdGVuIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgaGVscGVyIGZ1bmN0aW9ucy4gV2l0aG91dCBkaXZpbmcgaW50byB0aGUgZGV0YWlscywgYSBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZW1hcCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcHJldmlvdXMgZXhhbXBsZSBjYW4gcGVybWl0IHlvdSB0byBwYXNzIGFuIGFycmF5IG9yIGxpc3Qgb2YgdmFsdWVzIGRpcmVjdGx5IGludG8gdGhlIEMgZnVuY3Rpb24gbGlrZSB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGdsTGlnaHRmdiBHTF9MSUdIVDAgR0xfQU1CSUVOVCB7MC4wIDAuMCAwLjAgMS4wfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGlzIGEgbW9yZSBuYXR1cmFsIGltcGxlbWVudGF0aW9uIHRoYXQgcmVwbGFjZXMgdGhlIGxvdy1sZXZlbCBwb2ludGVyIG1ldGhvZC4gTm93IHdlIHdpbGwgbG9vayBpbnRvIGhvdyBvbmUgYWN0dWFsbHkgc3BlY2lmaWVzIGEgdHlwZW1hcC48cD4KLTxhIG5hbWU9Im4zMSI+PC9hPjxoMz4gV2hhdCBpcyBhIHR5cGVtYXA/PC9oMz4KLUEgdHlwZW1hcCBpcyBzcGVjaWZpZWQgdXNpbmcgdGhlIDx0dD4ldHlwZW1hcDwvdHQ+IGRpcmVjdGl2ZSBpbiB5b3VyIGludGVyZmFjZSBmaWxlLiBBIHNpbXBsZSB0eXBlbWFwIG1pZ2h0IGxvb2sgbGlrcyB0aGlzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLSV0eXBlbWFwKHRjbCxpbikgaW50IHsKLQkkdGFyZ2V0ID0gYXRvaSgkc291cmNlKTsKLQlwcmludGYoIlJlY2VpdmVkIGFuIGludGVnZXIgOiAlZFxuIiwgJHRhcmdldCk7Ci19Ci0KLWludCBhZGQoaW50IGEsIGludCBiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSW4gdGhpcyBjYXNlLCB3ZSBjaGFuZ2VkIHRoZSBwcm9jZXNzaW5nIG9mIGludGVnZXJzIGFzIGlucHV0IGFyZ3VtZW50cyB0byBmdW5jdGlvbnMuIFdoZW4gdXNlZCBpbiBhIFRjbCBzY3JpcHQsIHdlIHdvdWxkIGdldCB0aGUgZm9sbG93aW5nIGRlYnVnZ2luZyBpbmZvcm1hdGlvbjo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHNldCBhIFthZGQgNyAxM10KLVJlY2VpdmVkIGFuIGludGVnZXIgOiA3Ci1SZWNlaXZlZCBhbiBpbnRlZ2VyIDogMTMKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhlIHR5cGVtYXAgc3BlY2lmaWNhdGlvbiwgdGhlIHN5bWJvbHMgPHR0PiRzb3VyY2U8L3R0PiBhbmQgPHR0PiR0YXJnZXQ8L3R0PiBhcmUgaG9sZGluZyBwbGFjZXMgZm9yIEMgdmFyaWFibGUgbmFtZXMgdGhhdCBTV0lHIGlzIGdvaW5nIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgd3JhcHBlciBjb2RlLiBJbiB0aGlzIGV4YW1wbGUsIDx0dD4kc291cmNlPC90dD4gd291bGQgY29udGFpbiBhIFRjbCBzdHJpbmcgY29udGFpbmluZyB0aGUgaW5wdXQgdmFsdWUgYW5kIDx0dD4kdGFyZ2V0PC90dD4gd291bGQgYmUgdGhlIEMgaW50ZWdlciB2YWx1ZSB0aGF0IGlzIGdvaW5nIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSAiYWRkIiBmdW5jdGlvbi48cD4KLTxhIG5hbWU9Im4zMiI+PC9hPjxoMz4gQ3JlYXRpbmcgYSBuZXcgdHlwZW1hcDwvaDM+Ci1BIG5ldyB0eXBlbWFwIGNhbiBiZSBjcmVhdGVkIGFzIGZvbGxvd3MgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSV0eXBlbWFwKGxhbmcsbWV0aG9kKSBEYXRhdHlwZSB7Ci0JLi4uIENvbnZlcnNpb24gY29kZSAuLi4KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHR0Pmxhbmc8L3R0PiBzcGVjaWZpZXMgdGhlIHRhcmdldCBsYW5ndWFnZSwgPHR0Pm1ldGhvZDwvdHQ+IGRlZmluZXMgYSBwYXJ0aWN1bGFyIGNvbnZlcnNpb24gbWV0aG9kLCBhbmQgPHR0PkRhdGF0eXBlPC90dD4gZ2l2ZXMgdGhlIGNvcnJlc3BvbmRpbmcgQyBkYXRhdHlwZS4gVGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZW1hcCBpcyBlbmNsb3NlZCBpbiBicmFjZXMgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uLiBUaGVyZSBhcmUgYWJvdXQgYSBkb3plbiBkaWZmZXJlbnQga2luZHMgb2YgdHlwZW1hcHMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gU1dJRywgYnV0IHdlIHdpbGwgZ2V0IHRvIHRoYXQgc2hvcnRseS48cD4KLTxwPgotQSBzaW5nbGUgY29udmVyc2lvbiBjYW4gYmUgYXBwbGllZCB0byBtdWx0aXBsZSBkYXRhdHlwZXMgYnkgZ2l2aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZGF0YXR5cGVzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXR5cGVtYXAodGNsLGluKSBpbnQsIHNob3J0LCBsb25nLCBzaWduZWQgY2hhciB7Ci0JJHRhcmdldCA9ICgkdHlwZSkgYXRvbCgkc291cmNlKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSGVyZSwgPHR0PiR0eXBlPC90dD4gd2lsbCBiZSBleHBhbmRlZCBpbnRvIHRoZSByZWFsIGRhdGF0eXBlIGR1cmluZyBjb2RlIGdlbmVyYXRpb24uIERhdGF0eXBlcyBtYXkgYWxzbyBjYXJyeSBuYW1lcyBhcyBpbjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHBlcmw1LGluKSBjaGFyICoqYXJndiB7Ci0JLi4uIFR1cm4gYSBwZXJsIGFycmF5IGludG8gYSBjaGFyICoqIC4uLgotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BICJuYW1lZCJ0eXBlbWFwIHdpbGwgb25seSBhcHBseSB0byBhbiBvYmplY3QgdGhhdCBtYXRjaGVzIGJvdGggdGhlIEMgZGF0YXR5cGUgYW5kIHRoZSBuYW1lLiBUaHVzIHRoZSA8dHQ+Y2hhciAqKmFyZ3Y8L3R0PiB0eXBlbWFwIHdpbGwgb25seSBiZSBhcHBsaWVkIHRvIGZ1bmN0aW9uIGFyZ3VtZW50cyB0aGF0IGV4YWN0bHkgbWF0Y2ggIjx0dD5jaGFyICoqYXJndjwvdHQ+Ii4gSW4gc29tZSBjYXNlcywgdGhlIG5hbWUgbWF5IGNvcnJlc3BvbmQgdG8gYSBmdW5jdGlvbiBuYW1lIChhcyBpcyB0aGUgY2FzZSBmb3IgcmV0dXJuIHZhbHVlcykuPHA+Ci08cD4KLUZpbmFsbHksIHRoZXJlIGlzIGEgc2hvcnRlbmVkIGZvcm0gb2YgdGhlIHR5cGVtYXAgZGlyZWN0aXZlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChtZXRob2QpIERhdGF0eXBlIHsKLQkuLi4KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiB0aGUgbGFuZ3VhZ2UgbmFtZSBpcyBvbW1pdHRlZCwgdGhlIHR5cGVtYXAgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBjdXJyZW50IHRhcmdldCBsYW5ndWFnZS4gVGhpcyBmb3JtIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIHR5cGVtYXAgbWV0aG9kcyB0aGF0IGFyZSBsYW5ndWFnZSBpbmRlcGVuZGVudCAodGhlcmUgYXJlIGEgZmV3KS4gSXQgaXMgbm90IHJlY29tbWVuZGVkIGlmIHlvdSBhcmUgYnVpbGRpbmcgaW50ZXJmYWNlcyBmb3IgbXVsdGlwbGUgbGFuZ3VhZ2VzLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBEZWxldGluZyBhIHR5cGVtYXA8L2gzPgotQSB0eXBlbWFwIGNhbiBiZSBkZWxldGVkIGJ5IHByb3ZpZGluZyBubyBjb252ZXJzaW9uIGNvZGUuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChsYW5nLG1ldGhvZCkgRGF0YXR5cGU7ICAgICAgICAgICAgICAvLyBEZWxldGVzIHRoaXMgdHlwZW1hcAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjM0Ij48L2E+PGgzPiBDb3B5aW5nIGEgdHlwZW1hcDwvaDM+Ci1BIHR5cGVtYXAgY2FuIGJlIGNvcGllZCB1c2luZyB0aGUgZm9sbG93aW5nIGRlY2xhcmF0aW9uIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcChweXRob24sb3V0KSB1bnNpZ25lZCBpbnQgPSBpbnQ7ICAgICAvLyBDb3BpZXMgYSB0eXBlbWFwCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoaXMgc3BlY2lmaWVzIHRoYXQgdGhlIHR5cGVtYXAgZm9yICI8dHQ+dW5zaWduZWQgaW50PC90dD4iIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgIjx0dD5pbnQ8L3R0PiIgdHlwZW1hcC48cD4KLVRoaXMgaXMgbW9zdCBjb21tb25seSB1c2VkIHdoZW4gd29ya2luZyB3aXRoIGxpYnJhcnkgZmlsZXMuPHA+Ci08YSBuYW1lPSJuMzUiPjwvYT48aDM+IFR5cGVtYXAgbWF0Y2hpbmcgcnVsZXM8L2gzPgotV2hlbiB5b3Ugc3BlY2lmeSBhIHR5cGVtYXAsIFNXSUcgaXMgZ29pbmcgdG8gdHJ5IGFuZCBtYXRjaCBpdCB3aXRoIGFsbCBmdXR1cmUgb2NjdXJyZW5jZXMgb2YgdGhlIGRhdGF0eXBlIHlvdSBzcGVjaWZ5LiBUaGUgbWF0Y2hpbmcgcHJvY2VzcyBpcyBiYXNlZCB1cG9uIHRoZSB0YXJnZXQgbGFuZ3VhZ2UsIHR5cGVtYXAgbWV0aG9kLCBkYXRhdHlwZSwgYW5kIG9wdGlvbmFsIG5hbWUuIEJlY2F1c2Ugb2YgdGhpcywgaXQgaXMgcGVyZmVjdGx5IGxlZ2FsIGZvciBtdWx0aXBsZSB0eXBlbWFwcyB0byBleGlzdCBmb3IgYSBzaW5nbGUgZGF0YXR5cGUgYXQgYW55IGdpdmVuIHRpbWUuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcCh0Y2wsaW4pIGludCAqIHsKLQkuLi4gQ29udmVydCBhbiBpbnQgKiAuLi4KLX0KLSV0eXBlbWFwKHRjbCxpbikgaW50IFs0XSB7Ci0JLi4uIENvbnZlcnQgYW4gaW50WzRdIC4uLgotfQotJXR5cGVtYXAodGNsLGluKSBpbnQgb3V0WzRdIHsKLQkuLi4gQ29udmVydCBhbiBvdXRbNF0gLi4uCi19Ci0ldHlwZW1hcCh0Y2wsaW4pIGludCAqc3RhdHVzIHsKLQkuLi4gQ29udmVydCBhbiBpbnQgKnN0YXR1cyAuLi4KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlc2UgdHlwZW1hcHMgYWxsIGludm9sdmUgdGhlICI8dHQ+aW50ICo8L3R0PiIgZGF0YXR5cGUgaW4gb25lIHdheSBvciBhbm90aGVyLCBidXQgYXJlIGFsbCBjb25zaWRlcmVkIHRvIGJlIGRpc3RpbmN0LiBUaGVyZSBpcyBhbiBleHRyYSB0d2lzdCB0byB0eXBlbWFwcyByZWdhcmRpbmcgdGhlIHNpbWlsYXJpdHkgYmV0d2VlbiBDIHBvaW50ZXJzIGFuZCBhcnJheXMuIEEgdHlwZW1hcCBhcHBsaWVkIHRvIGEgcG9pbnRlciB3aWxsIGFsc28gd29yayBmb3IgYW55IGFycmF5IG9mIHRoZSBzYW1lIHR5cGUuIE9uIHRoZSBvdGhlciBoYW5kLCBhIHR5cGVtYXAgYXBwbGllZCB0byBhbiBhcnJheSB3aWxsIG9ubHkgd29yayBmb3IgYXJyYXlzLCBub3QgcG9pbnRlcnMuIEFzc3VtaW5nIHRoYXQgeW91J3JlIG5vdCBjb21wbGV0ZWx5IGNvbmZ1c2VkIGF0IHRoaXMgcG9pbnQsIHRoZSBmb2xsb3dpbmcgcnVsZXMgYXJlIGFwcGxpZWQgaW4gb3JkZXIgdG8gbWF0Y2ggcG9pbnRlcnMgYW5kIGFycmF5cyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5OYW1lZCBhcnJheXMKLTxsaT5Vbm5hbWVkIGFycmF5cwotPGxpPk5hbWVkIGRhdGF0eXBlcwotPGxpPlVubmFtZWQgZGF0YXR5cGVzCi08L3VsPgotPHA+Ci1UaGUgZm9sbG93aW5nIGludGVyZmFjZSBmaWxlIHNob3dzIGhvdyB0aGVzZSBydWxlcyBhcmUgYXBwbGllZC48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGZvbzEoaW50ICopOyAJCQkJLy8gQXBwbHkgaW50ICogdHlwZW1hcAotdm9pZCBmb28yKGludCBhWzRdKTsgICAgICAgICAvLyBBcHBseSBpbnRbNF0gdHlwZW1hcAotdm9pZCBmb28zKGludCBvdXRbNF0pOyAgICAgICAvLyBBcHBseSBpbnQgb3V0WzRdIHR5cGVtYXAKLXZvaWQgZm9vNChpbnQgKnN0YXR1cyk7ICAgICAgLy8gQXBwbHkgaW50ICpzdGF0dXMgdHlwZW1hcAotdm9pZCBmb281KGludCBhWzIwXSk7ICAgICAgICAvLyBBcHBseSBpbnQgKiB0eXBlbWFwIChiZWNhdXNlIGludCBbMjBdIGlzIGFuIGludCAqKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1CZWNhdXNlIFNXSUcgdXNlcyBhIG5hbWUtYmFzZWQgYXBwcm9hY2gsIGl0IGlzIHBvc3NpYmxlIHRvIGF0dGFjaCBzcGVjaWFsIHByb3BlcnRpZXMgdG8gbmFtZWQgcGFyYW1ldGVycy4gRm9yIGV4YW1wbGUsIHdlIGNhbiBtYWtlIGFuIGFyZ3VtZW50IG9mICI8dHQ+aW50ICpPVVRQVVQ8L3R0PiIgYWx3YXlzIGJlIHRyZWF0ZWQgYXMgYW4gb3V0cHV0IHZhbHVlIG9mIGEgZnVuY3Rpb24gb3IgbWFrZSBhICI8dHQ+Y2hhciAqKmFyZ3Y8L3R0PiIgYWx3YXlzIGFjY2VwdCBhIGxpc3Qgb2Ygc3RyaW5nIHZhbHVlcy48cD4KLTxhIG5hbWU9Im43Ij48L2E+PGgyPiBDb21tb24gdHlwZW1hcCBtZXRob2RzPC9oMj4KLVRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgc3VwcG9ydGVkIGJ5IG1vc3QgU1dJRyBsYW5ndWFnZSBtb2R1bGVzLiBJbmRpdmlkdWFsIGxhbmd1YWdlIG1heSBwcm92aWRlIGFueSBudW1iZXIgb2Ygb3RoZXIgbWV0aG9kcyBub3QgbGlzdGVkIGhlcmUuPHA+Ci08Y2VudGVyPgotPGltZyBzcmM9ImNoNi50YWJsZS4xLnBuZyI+PGJyPgotPGltZyBzcmM9ImNoNi50YWJsZS4yLnBuZyI+PGJyPgotPC9jZW50ZXI+Ci08cD4KLVVuZGVyc3RhbmRpbmcgaG93IHNvbWUgb2YgdGhlc2UgbWV0aG9kcyBhcmUgYXBwbGllZCB0YWtlcyBhIGxpdHRsZSBwcmFjdGljZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCBTV0lHIGRvZXMgd2hlbiBpdCBjcmVhdGVzIGEgd3JhcHBlciBmdW5jdGlvbi4gVGhlIG5leHQgZmV3IGRpYWdyYW1zIHNob3cgdGhlIGFuYXRvbXkgb2YgYSB3cmFwcGVyIGZ1bmN0aW9uIGFuZCBob3cgdGhlIHR5cGVtYXBzIGdldCBhcHBsaWVkLiBNb3JlIGRldGFpbGVkIGV4YW1wbGVzIG9mIHR5cGVtYXBzIGNhbiBiZSBmb3VuZCBvbiB0aGUgY2hhcHRlcnMgZm9yIGVhY2ggdGFyZ2V0IGxhbmd1YWdlLjxwPgotPHA+Ci08Y2VudGVyPjxpbWcgc3JjPSJjaDYuMS5wbmciPgotPHA+PC9jZW50ZXI+Ci08cD4KLTxjZW50ZXI+PGltZyBzcmM9ImNoNi4yLnBuZyI+Ci08cD48L2NlbnRlcj4KLTxhIG5hbWU9Im44Ij48L2E+PGgyPiBXcml0aW5nIHR5cGVtYXAgY29kZTwvaDI+Ci1UaGUgY29udmVyc2lvbiBjb2RlIHN1cHBsaWVkIHRvIGEgdHlwZW1hcCBuZWVkcyB0byBmb2xsb3cgYSBmZXcgY29udmVudGlvbnMgZGVzY3JpYmVkIGhlcmUuPHA+Ci08YSBuYW1lPSJuMzYiPjwvYT48aDM+IFNjb3BlPC9oMz4KLVR5cGVtYXAgY29kZSBpcyBlbmNsb3NlZCBpbiBicmFjZXMgd2hlbiBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHRpbmcgd3JhcHBlciBjb2RlICh1c2luZyBDJ3MgYmxvY2stc2NvcGUpLiBJdCBpcyBwZXJmZWN0bHkgbGVnYWwgdG8gZGVjbGFyZSBsb2NhbCBhbmQgc3RhdGljIHZhcmlhYmxlcyBpbiBhIHR5cGVtYXAuIEhvd2V2ZXIsIGxvY2FsIHZhcmlhYmxlcyB3aWxsIG9ubHkgZXhpc3QgaW4gdGhlIHRpbnkgcG9ydGlvbiBvZiBjb2RlIHlvdSBzdXBwbHkuIEluIG90aGVyIHdvcmRzLCBhbnkgbG9jYWwgdmFyaWFibGVzIHRoYXQgeW91IGNyZWF0ZSBpbiBhIHR5cGVtYXAgd2lsbCBkaXNhcHBlYXIgd2hlbiB0aGUgdHlwZW1hcCBoYXMgY29tcGxldGVkIGl0cyBleGVjdXRpb24uPHA+Ci08YSBuYW1lPSJuMzciPjwvYT48aDM+IENyZWF0aW5nIGxvY2FsIHZhcmlhYmxlczwvaDM+Ci1Tb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgYSBuZXcgbG9jYWwgdmFyaWFibGUgdGhhdCBleGlzdHMgaW4gdGhlIHNjb3BlIG9mIHRoZSBlbnRpcmUgd3JhcHBlciBmdW5jdGlvbi4gVGhpcyBjYW4gYmUgZG9uZSBieSBzcGVjaWZ5aW5nIGEgdHlwZW1hcCB3aXRoIHBhcmFtZXRlcnMgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXR5cGVtYXAodGNsLGluKSBpbnQgKklOUFVUKGludCB0ZW1wKSB7Ci0JdGVtcCA9IGF0b2koJHNvdXJjZSk7Ci0JJHRhcmdldCA9ICZhbXA7dGVtcDsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hhdCBoYXBwZW5zIGhlcmUgaXMgdGhhdCA8dHQ+dGVtcDwvdHQ+IGJlY29tZXMgYSBsb2NhbCB2YXJpYWJsZSBpbiB0aGUgc2NvcGUgb2YgdGhlIGVudGlyZSB3cmFwcGVyIGZ1bmN0aW9uLiBXaGVuIHdlIHNldCBpdCB0byBhIHZhbHVlLCB0aGF0IHZhbHVlcyBwZXJzaXN0cyBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB3cmFwcGVyIGZ1bmN0aW9uIGFuZCBnZXRzIGNsZWFuZWQgdXAgYXV0b21hdGljYWxseSBvbiBleGl0LiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGggcG9pbnRlcnMgYW5kIHRlbXBvcmFyeSB2YWx1ZXMuPHA+Ci08cD4KLUl0IGlzIHBlcmZlY3RseSBzYWZlIHRvIHVzZSBtdWx0aXBsZSB0eXBlbWFwcyBpbnZvbHZpbmcgbG9jYWwgdmFyaWFibGVzIGluIHRoZSBzYW1lIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZSwgd2UgY291bGQgZGVjbGFyZSBhIGZ1bmN0aW9uIGFzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGZvbyhpbnQgKklOUFVULCBpbnQgKklOUFVULCBpbnQgKklOUFVUKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiB0aGlzIG9jY3VycywgU1dJRyB3aWxsIGNyZWF0ZSB0aHJlZSBkaWZmZXJlbnQgbG9jYWwgdmFyaWFibGVzIG5hbWVkIGB0ZW1wJy4gT2YgY291cnNlLCB0aGV5IGRvbid0IGFsbCBlbmQgdXAgaGF2aW5nIHRoZSBzYW1lIG5hbWUtLS1TV0lHIGF1dG9tYXRpY2FsbHkgcGVyZm9ybXMgYSB2YXJpYWJsZSByZW5hbWluZyBvcGVyYXRpb24gaWYgaXQgZGV0ZWN0cyBhIG5hbWUtY2xhc2ggbGlrZSB0aGlzLjxwPgotPHA+Ci1Tb21lIHR5cGVtYXBzIGRvIG5vdCByZWNvZ25pemUgbG9jYWwgdmFyaWFibGVzIChvciB0aGV5IG1heSBzaW1wbHkgbm90IGFwcGx5KS4gQXQgdGhpcyB0aW1lLCBvbmx5IHRoZSAiaW4iLCAiYXJnb3V0IiwgImRlZmF1bHQiLCBhbmQgImlnbm9yZSIgdHlwZW1hcHMgdXNlIGxvY2FsIHZhcmlhYmxlcy48cD4KLTxhIG5hbWU9Im4zOCI+PC9hPjxoMz4gU3BlY2lhbCB2YXJpYWJsZXM8L2gzPgotVGhlIGZvbGxvd2luZyBzcGVjaWFsIHZhcmlhYmxlcyBtYXkgYmUgdXNlZCB3aXRoaW4gYSB0eXBlbWFwIGNvbnZlcnNpb24gY29kZSA6PHA+Ci08Y2VudGVyPjxpbWcgc3JjPSJjaDYudGFibGUuMy5wbmciPjwvY2VudGVyPgotPHA+Ci1XaGVuIGZvdW5kIGluIHRoZSBjb252ZXJzaW9uIGNvZGUsIHRoZXNlIHZhcmlhYmxlcyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlY3QgdmFsdWVzLiBOb3QgYWxsIHZhbHVlcyBhcmUgdXNlZCBpbiBhbGwgdHlwZW1hcHMuIFBsZWFzZSByZWZlciB0byB0aGUgU1dJRyByZWZlcmVuY2UgbWFudWFsIGZvciB0aGUgcHJlY2lzZSB1c2FnZS4gPHA+Ci08YSBuYW1lPSJuOSI+PC9hPjxoMj4gVHlwZW1hcHMgZm9yIGhhbmRsaW5nIGFycmF5czwvaDI+Ci1PbmUgb2YgdGhlIG1vc3QgY29tbW9uIHVzZXMgb2YgdHlwZW1hcHMgaXMgcHJvdmlkaW5nIHNvbWUgc3VwcG9ydCBmb3IgYXJyYXlzLiBEdWUgdG8gdGhlIHN1YnRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHBvaW50ZXJzIGFuZCBhcnJheXMgaW4gQywgYXJyYXkgc3VwcG9ydCBpcyBzb21ld2hhdCBsaW1pdGVkIHVubGVzcyB5b3UgcHJvdmlkZSBhZGRpdGlvbmFsIHN1cHBvcnQuIEZvciBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZSBhcHBlYXJzIGluIGFuIGludGVyZmFjZSBmaWxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zdHJ1Y3QgUGVyc29uIHsKLQljaGFyIG5hbWVbMzJdOwotCWNoYXIgYWRkcmVzc1s2NF07Ci0JaW50IGlkOwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBTV0lHIGlzIHJ1biwgeW91IHdpbGwgZ2V0IHRoZSBmb2xsb3dpbmcgd2FybmluZ3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnN3aWcgLXB5dGhvbiAgZXhhbXBsZS5pCi1HZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBQeXRob24KLWV4YW1wbGUuaSA6IExpbmUgMi4gV2FybmluZy4gQXJyYXkgbWVtYmVyIHdpbGwgYmUgcmVhZC1vbmx5LgotZXhhbXBsZS5pIDogTGluZSAzLiBXYXJuaW5nLiBBcnJheSBtZW1iZXIgd2lsbCBiZSByZWFkLW9ubHkuCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZXNlIHdhcm5pbmcgbWVzc2FnZXMgaW5kaWNhdGUgdGhhdCBTV0lHIGRvZXMgbm90IGtub3cgaG93IHlvdSB3YW50IHRvIHNldCB0aGUgbmFtZSBhbmQgYWRkcmVzcyBmaWVsZHMuIEFzIGEgcmVzdWx0LCB5b3Ugd2lsbCBvbmx5IGJlIGFibGUgdG8gcXVlcnkgdGhlaXIgdmFsdWUuPHA+Ci08cD4KLVRvIGZpeCB0aGlzLCB3ZSBjb3VsZCBzdXBwbHkgdHdvIHR5cGVtYXBzIGluIHRoZSBmaWxlIHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotCi0ldHlwZW1hcChtZW1iZXJpbikgY2hhciBbMzJdIHsKLQlzdHJuY3B5KCR0YXJnZXQsJHNvdXJjZSwzMik7Ci19Ci0ldHlwZW1hcChtZW1iZXJpbikgY2hhciBbNjRdIHsKLQlzdHJuY3B5KCR0YXJnZXQsJHNvdXJjZSw2NCk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSAibWVtYmVyaW4iIHR5cGVtYXAgaXMgdXNlZCB0byBzZXQgbWVtYmVycyBvZiBzdHJ1Y3R1cmVzIGFuZCBjbGFzc2VzLiBXaGVuIHlvdSBydW4gdGhlIG5ldyB2ZXJzaW9uIHRocm91Z2ggU1dJRywgdGhlIHdhcm5pbmdzIHdpbGwgZ28gYXdheSBhbmQgeW91IGNhbiBub3cgc2V0IGVhY2ggbWVtYmVyLiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IDx0dD5jaGFyWzMyXTwvdHQ+IGFuZCA8dHQ+Y2hhcls2NF08L3R0PiBhcmUgZGlmZmVyZW50IGRhdGF0eXBlcyBhcyBmYXIgYXMgU1dJRyB0eXBlbWFwcyBhcmUgY29uY2VybmVkLiBIb3dldmVyLCBib3RoIHR5cGVtYXBzIGNhbiBiZSBjb21iaW5lZCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBBIGJldHRlciB0eXBlbWFwIGZvciBjaGFyIGFycmF5cwotJXR5cGVtYXAobWVtYmVyaW4pIGNoYXIgW0FOWV0gewotCXN0cm5jcHkoJHRhcmdldCwkc291cmNlLCRkaW0wKTsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIDx0dD5BTlk8L3R0PiBrZXl3b3JkIGNhbiBiZSB1c2VkIGluIGEgdHlwZW1hcCB0byBtYXRjaCBhbnkgYXJyYXkgZGltZW5zaW9uLiBXaGVuIHVzZWQsIHRoZSBzcGVjaWFsIHZhcmlhYmxlIDx0dD4kZGltMDwvdHQ+IHdpbGwgY29udGFpbiB0aGUgcmVhbCBkaW1lbnNpb24gb2YgdGhlIGFycmF5IGFuZCBjYW4gYmUgdXNlZCBhcyBzaG93biBhYm92ZS48cD4KLTxwPgotTXVsdGlkaW1lbnNpb25hbCBhcnJheXMgY2FuIGFsc28gYmUgaGFuZGxlZCBieSB0eXBlbWFwcy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEEgdHlwZW1hcCBmb3IgaGFuZGxpbmcgYW55IGludCBbXVtdIGFycmF5Ci0ldHlwZW1hcChtZW1iZXJpbikgaW50IFtBTlldW0FOWV0gewotCWludCBpLGo7Ci0JZm9yIChpID0gMDsgaSAmbHQ7ICRkaW0wOyBpKyspCi0JCWZvciAoaiA9IDA7IGogJmx0OyAkZGltMTsgaisrKSB7Ci0JCQkkdGFyZ2V0W2ldW2pdID0gKigkc291cmNlKyRkaW0xKmkraik7Ci0JCX0KLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBtdWx0aS1kaW1lbnNpb25hbCBhcnJheXMgYXJlIHVzZWQsIHRoZSBzeW1ib2xzIDx0dD4kZGltMCw8L3R0PiA8dHQ+JGRpbTE8L3R0Piw8dHQ+ICRkaW0yPC90dD4sIGV0Yy4uLiBnZXQgcmVwbGFjZWQgYnkgdGhlIGFjdHVhbCBhcnJheSBkaW1lbnNpb25zIGJlaW5nIHVzZWQuIDxwPgotPHA+Ci1UaGUgQU5ZIGtleXdvcmQgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW55IHNwZWNpZmljIGRpbWVuc2lvbi4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKHB5dGhvbixpbikgaW50IFtBTlldWzRdIHsKLQkuLi4KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUEgdHlwZW1hcCB1c2luZyBhIHNwZWNpZmljIGRpbWVuc2lvbiBhbHdheXMgaGFzIHByZWNlZGVuY2Ugb3ZlciBhIG1vcmUgZ2VuZXJhbCB2ZXJzaW9uLiBGb3IgZXhhbXBsZSwgPHR0PltBTlldWzRdPC90dD4gd2lsbCBiZSB1c2VkIGJlZm9yZTx0dD5bQU5ZXVtBTlldPC90dD4uPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDI+IFR5cGVtYXBzIGFuZCB0aGUgU1dJRyBMaWJyYXJ5PC9oMj4KLVdyaXRpbmcgdHlwZW1hcHMgaXMgYSB0cmlja3kgYnVzaW5lc3MuIEZvciB0aGlzIHJlYXNvbiwgbWFueSBjb21tb24gdHlwZW1hcHMgY2FuIGJlIHBsYWNlZCBpbnRvIGEgU1dJRyBsaWJyYXJ5IGZpbGUgYW5kIHJldXNlZCBpbiBvdGhlciBtb2R1bGVzIHdpdGhvdXQgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IG5hc3R5IHVuZGVybHlpbmcgZGV0YWlscy4gVG8gZG8gdGhpcywgeW91IGZpcnN0IHdyaXRlIGEgZmlsZSBjb250YWluaW5nIHR5cGVtYXBzIHN1Y2ggYXMgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gZmlsZSA6IHN0ZG1hcC5pCi0vLyBBIGZpbGUgY29udGFpbmluZyBhIHZhcmlldHkgb2YgdXNlZnVsIHR5cGVtYXBzCi0KLSV0eXBlbWFwKHRjbCxpbikgaW50IElOVEVHRVIgewotCS4uLgotfQotJXR5cGVtYXAodGNsLGluKSBkb3VibGUgRE9VQkxFIHsKLQkuLi4KLX0KLSV0eXBlbWFwKHRjbCxvdXQpIGludCBJTlQgewotCS4uLgotfQotJXR5cGVtYXAodGNsLG91dCkgZG91YmxlIERPVUJMRSB7Ci0JLi4uCi19Ci0ldHlwZW1hcCh0Y2wsYXJnb3V0KSBkb3VibGUgRE9VQkxFIHsKLQkuLi4KLX0KLS8vIGFuZCBzbyBvbi4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGZpbGUgbWF5IGNvbnRhaW4gZG96ZW5zIG9yIGV2ZW4gaHVuZHJlZHMgb2YgcG9zc2libGUgbWFwcGluZ3MuIE5vdywgdG8gdXNlIHRoaXMgZmlsZSB3aXRoIG90aGVyIG1vZHVsZXMsIHNpbXBseSBpbmNsdWRlIGl0IGluIG90aGVyIGZpbGVzIGFuZCB1c2UgdGhlIDx0dD4lYXBwbHk8L3R0PiBkaXJlY3RpdmUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIGludGVyZmFjZS5pCi0vLyBNeSBpbnRlcmZhY2UgZmlsZQotCi0laW5jbHVkZSBzdGRtYXAuaSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIHRoZSB0eXBlbWFwIGxpYnJhcnkKLQotLy8gTm93IGdyYWIgdGhlIHR5cGVtYXBzIHdlIHdhbnQgdG8gdXNlCi0lYXBwbHkgZG91YmxlIERPVUJMRSB7ZG91YmxlfTsKLQotLy8gUmVzdCBvZiB5b3VyIGRlY2xhcmF0aW9ucwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1JbiB0aGlzIGNhc2UsIDx0dD5zdGRtYXAuaTwvdHQ+IGNvbnRhaW5zIGEgdmFyaWV0eSBvZiBzdGFuZGFyZCBtYXBwaW5ncy4gVGhlIDx0dD4lYXBwbHk8L3R0PiBkaXJlY3RpdmUgbGV0cyB1cyBhcHBseSBzcGVjaWZpYyB2ZXJzaW9ucyBvZiB0aGVzZSB0byBuZXcgZGF0YXR5cGVzIHdpdGhvdXQga25vd2luZyB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLjxwPgotPHA+Ci1UbyBjbGVhciBhIHR5cGVtYXAgdGhhdCBoYXMgYmVlbiBhcHBsaWVkLCB5b3UgY2FuIHVzZSB0aGUgPHR0PiVjbGVhcjwvdHQ+IGRpcmVjdGl2ZS4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVjbGVhciBkb3VibGUgeDsgCQkJLy8gQ2xlYXJzIGFueSB0eXBlbWFwcyBiZWluZyBhcHBsaWVkIHRvIGRvdWJsZSB4Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMTEiPjwvYT48aDI+IEltcGxlbWVudGluZyBjb25zdHJhaW50cyB3aXRoIHR5cGVtYXBzPC9oMj4KLU9uZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcgYXBwbGljYXRpb24gb2YgdHlwZW1hcHMgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIGFyZ3VtZW50IGNvbnN0cmFpbnRzLiBUaGlzIGNhbiBiZSBkb25lIHdpdGggdGhlICJjaGVjayIgdHlwZW1hcC4gV2hlbiB1c2VkLCB0aGlzIGFsbG93cyB5b3UgdG8gcHJvdmlkZSBjb2RlIGZvciBjaGVja2luZyB0aGUgdmFsdWVzIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgbWF0aAotCi0ldHlwZW1hcChwZXJsNSxjaGVjaykgZG91YmxlICpwb3Nkb3VibGUgewotCWlmICgkdGFyZ2V0ICZsdDsgMCkgewotCQljcm9haygiRXhwZWN0aW5nIGEgcG9zaXRpdmUgbnVtYmVyIik7Ci0JfQotfQotCi0uLi4KLWRvdWJsZSBzcXJ0KGRvdWJsZSBwb3Nkb3VibGUpOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIHByb3ZpZGVzIGEgc2FuaXR5IGNoZWNrIHRvIHlvdXIgd3JhcHBlciBmdW5jdGlvbi4gSWYgYSBuZWdhdGl2ZSBudW1iZXIgaXMgcGFzc2VkIHRvIHRoaXMgZnVuY3Rpb24sIGEgUGVybCBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgYW5kIHlvdXIgcHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggYW4gZXJyb3IgbWVzc2FnZS48cD4KLTxwPgotVGhpcyBraW5kIG9mIGNoZWNraW5nIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIHdoZW4gd29ya2luZyB3aXRoIHBvaW50ZXJzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JXR5cGVtYXAocHl0aG9uLGNoZWNrKSBWZWN0b3IgKiB7Ci0JaWYgKCR0YXJnZXQgPT0gMCkgewotCQlQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCJOVUxMIFBvaW50ZXIgbm90IGFsbG93ZWQiKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci13aWxsIHByZXZlbnQgYW55IGZ1bmN0aW9uIGludm9sdmluZyBhIDx0dD5WZWN0b3IgKjwvdHQ+IGZyb20gYWNjZXB0aW5nIGEgTlVMTCBwb2ludGVyLiBBcyBhIHJlc3VsdCwgU1dJRyBjYW4gb2Z0ZW4gcHJldmVudCBhIHBvdGVudGlhbCBzZWdtZW50YXRpb24gZmF1bHRzIG9yIG90aGVyIHJ1bi10aW1lIHByb2JsZW1zIGJ5IHJhaXNpbmcgYW4gZXhjZXB0aW9uIHJhdGhlciB0aGFuIGJsaW5kbHkgcGFzc2luZyB2YWx1ZXMgdG8gdGhlIHVuZGVybHlpbmcgQy9DKysgcHJvZ3JhbS48cD4KLTxhIG5hbWU9Im4xMiI+PC9hPjxoMj4gVHlwZW1hcCBleGFtcGxlczwvaDI+Ci1UeXBlbWFwcyBhcmUgaW5oZXJlbnRseSBsYW5ndWFnZSBkZXBlbmRlbnQgc28gbW9yZSBleGFtcGxlcyBhcHBlYXIgaW4gbGF0ZXIgY2hhcHRlcnMuIFRoZSBTV0lHPHR0PiBFeGFtcGxlcyA8L3R0PmRpcmVjdG9yeSBhbHNvIGluY2x1ZGVzIGEgdmFyaWV0eSBvZiBleGFtcGxlcy4gU29waGlzdGljYXRlZCB1c2VycyBtYXkgZ2FpbiBtb3JlIGJ5IGV4YW1pbmluZyB0aGUgPHR0PnR5cGVtYXBzLmk8L3R0PiBhbmQgPHR0PmNvbnN0cmFpbnRzLmkgPC90dD5TV0lHIGxpYnJhcnkgZmlsZXMuPHA+Ci08YSBuYW1lPSJuMTMiPjwvYT48aDI+IEhvdyB0byBicmVhayBldmVyeXRoaW5nIHdpdGggYSB0eXBlbWFwPC9oMj4KLUl0IHNob3VsZCBiZSBlbXBoYXNpemVkIHRoYXQgdHlwZW1hcHMgcHJvdmlkZSBhIGRpcmVjdCBtZWNoYW5pc20gZm9yIG1vZGlmeWluZyBTV0lHJ3Mgb3V0cHV0LiBBcyBhIHJlc3VsdCwgaXQgY2FuIGJlIHZlcnkgZWFzeSB0byBicmVhayBhbG1vc3QgZXZlcnl0aGluZyBpZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHlvdSdyZSBkb2luZy4gRm9yIHRoaXMgcmVhc29uLCBpdCBzaG91bGQgYmUgc3RyZXNzZWQgdGhhdCB0eXBlbWFwcyBhcmUgbm90IHJlcXVpcmVkIGluIG9yZGVyIHRvIHVzZSBTV0lHIHdpdGggbW9zdCBraW5kcyBvZiBhcHBsaWNhdGlvbnMuIFBvd2VyIHVzZXJzLCBob3dldmVyLCB3aWxsIHByb2JhYmx5IGZpbmQgdHlwZW1hcHMgdG8gYmUgYSB1c2VmdWwgdG9vbCBmb3IgY3JlYXRpbmcgZXh0cmVtZWx5IHBvd2VyZnVsIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb25zLiA8cD4KLTxhIG5hbWU9Im4xNCI+PC9hPjxoMj4gVHlwZW1hcHMgYW5kIHRoZSBmdXR1cmU8L2gyPgotVGhlIGN1cnJlbnQgdHlwZW1hcCBtZWNoYW5pc20sIHdoaWxlIG5ldywgd2lsbCBwcm9iYWJseSBmb3JtIHRoZSBiYXNpcyBvZiBTV0lHIDIuMC4gUmF0aGVyIHRoYW4gaGF2aW5nIGNvZGUgYnVyaWVkIGF3YXkgaW5zaWRlIGEgQysrIG1vZHVsZSwgaXQgbWF5IHNvb24gYmUgcG9zc2libGUgdG8gcmVkZWZpbmUgYWxtb3N0IGFsbCBvZiBTV0lHJ3MgY29kZSBnZW5lcmF0aW9uIG9uIHRoZSBmbHkuIEZ1dHVyZSBsYW5ndWFnZSBtb2R1bGVzIHdpbGwgcmVseSB1cG9uIHR5cGVtYXBzIGFsbW9zdCBleGNsdXNpdmVseS4gPHA+Ci08cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5TV0lHIDEuMSAtIExhc3QgTW9kaWZpZWQgOiBNb24gQXVnICA0IDEwOjQ2OjU2IDE5OTc8L2FkZHJlc3M+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMS4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxLjEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDcwNWM4Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEuMi5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMS4yLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ5NzI5OS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMS4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmZGUwOS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAuMS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0OTVmZGYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjEwLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4xMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMTI4MDIuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjEwLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4xMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMTEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODQ5ZDhlLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4xMS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMTIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjEyLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA4MDI5MC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMTIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTZiOTA0Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4zLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS4zLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZhYzc1ZC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuMy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuNC5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuNC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNTM3ZTQuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjQucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjUucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjgzZmJhLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS41LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS42LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS42LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVhYzE4Mi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuNi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuNy5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuNy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZTkzZDEuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjgucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEwLnRhYmxlLjgucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmU4NDVkLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS44LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS45LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMC50YWJsZS45LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY4MjU1Ni4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTAudGFibGUuOS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTEuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTEuMS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjYzJiZWMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDExLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDExLjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDExLjIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmQxYjU1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMS4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMS4zLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gxMS4zLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRlZTcyNC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTEuMy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTIuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMTIuMS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwNzJmMDYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDEyLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDIuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMi4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY1ODAwZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMi4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gyLjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDIuMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMzQwZGYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDIuMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoMy4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gzLjEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTA4ZDZhLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2gzLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDUuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNS4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIyMzNjYi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNS4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g1LjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDUuMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjOTVhYTkuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDUuMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNS4zLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g1LjMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2VhYTU5Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g1LjMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNi4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBiMGZhZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNi4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g2LjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYuMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZDI3ZDcuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYuMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNi50YWJsZS4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g2LnRhYmxlLjEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTg5MDVmLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g2LnRhYmxlLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYudGFibGUuMi5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNi50YWJsZS4yLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY0ZTAwMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoNi50YWJsZS4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g2LnRhYmxlLjMucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYudGFibGUuMy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1MDgzYzMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDYudGFibGUuMy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LjEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDJmOGU3Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDguMi5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC4yLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZiY2Y1NS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LjMucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDguMy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZWFjM2UuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDguMy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS4xLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDkzNTA0Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuMi5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS4yLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRmMWZjOC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS4yLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjMucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuMy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOTQ5ODMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuMy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS40LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjZlM2Q5Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjQucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuNS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS41LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNjYjgwZi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS41LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjYucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuNi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiMjM1MDMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDgudGFibGUuNi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOC50YWJsZS43LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODdlZmU4Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g4LnRhYmxlLjcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZjY2NhMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LjIucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkuMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NWI3ZDkuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkuMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS4zLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LjMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjAwMjkzLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LjMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuMS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4xLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdlMmQ4Ny4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjEwLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjEwLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI1Nzc3My4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4xMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4yLnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzY2NDdlLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuMy5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4zLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk5MmM2ZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS4zLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjQucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuNC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZjkxMGEuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuNC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS41LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTU2ZTUzLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuNi5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS42LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZmMDM3Yy4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS42LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjcucG5nIGIvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuNy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzM2VhNjkuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuNy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS44LnBuZyBiL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjgucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzk0ZmE2Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL0hUTUwvY2g5LnRhYmxlLjgucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvSFRNTC9jaDkudGFibGUuOS5wbmcgYi9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS45LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTViMGU1MC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9IVE1ML2NoOS50YWJsZS45LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9BZHZhbmNlZC5wZGYgYi9zd2lnd2ViL0RvYzEuMS9QREYvQWR2YW5jZWQucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGViMDk5Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL1BERi9BZHZhbmNlZC5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvQ29udGVudHMucGRmIGIvc3dpZ3dlYi9Eb2MxLjEvUERGL0NvbnRlbnRzLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3YmMyOC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvQ29udGVudHMucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL0RvY3VtZW50YXRpb24ucGRmIGIvc3dpZ3dlYi9Eb2MxLjEvUERGL0RvY3VtZW50YXRpb24ucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmE1YWQ2Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL1BERi9Eb2N1bWVudGF0aW9uLnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9FeGNlcHRpb25zLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9FeGNlcHRpb25zLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZkNjY2NS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvRXhjZXB0aW9ucy5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvRXh0ZW5kaW5nLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9FeHRlbmRpbmcucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDMzYjA1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL1BERi9FeHRlbmRpbmcucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL0luZGV4LnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9JbmRleC5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMTI0MzYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL0luZGV4LnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9JbnRyb2R1Y3Rpb24ucGRmIGIvc3dpZ3dlYi9Eb2MxLjEvUERGL0ludHJvZHVjdGlvbi5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNGE3M2QuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL0ludHJvZHVjdGlvbi5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvTGlicmFyeS5wZGYgYi9zd2lnd2ViL0RvYzEuMS9QREYvTGlicmFyeS5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNDMwZTguLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL0xpYnJhcnkucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1Blcmw1LnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9QZXJsNS5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNDY2NTguLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1Blcmw1LnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9QcmVmYWNlLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9QcmVmYWNlLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhmNjlkMC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvUHJlZmFjZS5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvUHl0aG9uLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9QeXRob24ucGRmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjBmYTYyLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvRG9jMS4xL1BERi9QeXRob24ucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1JlZmVyZW5jZS5wZGYgYi9zd2lnd2ViL0RvYzEuMS9QREYvUmVmZXJlbmNlLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY4ZGY3NC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvUmVmZXJlbmNlLnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9TV0lHLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9TV0lHLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY2OTliMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvU1dJRy5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvU1dJR01hbnVhbC5wZGYgYi9zd2lnd2ViL0RvYzEuMS9QREYvU1dJR01hbnVhbC5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYjQ4MTQuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1NXSUdNYW51YWwucGRmCisrKyAvZGV2L251bGwKQEAgLTEsNDIxMjAgKzAsMCBAQAotJVBERi0xLjIKLSWJi+zuCi0KLTEgMCBvYmoKLTw8IAotL0NyZWF0aW9uRGF0ZSAoRDoxOTk3MDMyNjE1MzMyOSkKLS9Qcm9kdWNlciAoQWNyb2JhdCBEaXN0aWxsZXIgMy4wIGZvciBQb3dlciBNYWNpbnRvc2gpCi0vQXV0aG9yIChEYXZlKQotL1RpdGxlIChTV0lHIE1hbnVhbCkKLS9DcmVhdG9yIChGcmFtZU1ha2VyIDUuMS4xKQotL01vZERhdGUgKEQ6MTk5NzAzMjYxNTQwMjQpCi0+PiAKLWVuZG9iagotMiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTEgMCBSIAotL1Jlc291cmNlcyA8PCAvRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IC9Gb250IDw8IC9GNSA4IDAgUiAvRjMgNyAwIFIgL0Y3IDkgMCBSID4+IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gPj4gCi0vQ29udGVudHMgMzQzMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0+PiAKLWVuZG9iagotMyAwIG9iagotPDwgCi0vRCBbIDIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi00IDAgb2JqCi08PCAKLS9EIFsgMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUgMCBvYmoKLTw8IC9MZW5ndGggNzY5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMS05SmVcXjBkPylePzBVJTs8WjNYIlYKLUVAKi5TNipjLCpBP1swbU9paC9XIU0mOXAsKmk4KEpIMkxFQydLZjFBSmlYLzQhMFIqamA2MkdYRFRkMCU3QzssCi1KQmtHQ1IqPWEiQnVLOl41K2tgSyJbYTtkVy09ciJiMmVeRko/IVpHUz5ZR3MkK1Q4LzJHcEZmVyNRUV8yXS5JLQotX2RVJypDLG00QExILidoZGlqU2Y2OklZSEU4WUBOTTFdPlpKaiJwVC41YV9OI0MtSEZSTk8yS0FIa0Q7LDtHMXUKLWpEbmIjWSRXITZjPWFLcjZDOVk2MG5kRicwYU1yVy9Kc0k7I2g+cjYlWEQkODpGYWZpIk5sUlFVc2VNQC91PS5oCi0xJGN1MSZGa0tzQi1uT1VvOWQlMUtYTjlaJDpbN2I3SEVTZk5UNSVFKEJ1JFJcZ2UiWiY2ZCMsLzdRQz0tdDYqTgotXlEoXCg1Zm5jTCFzbXF0LzlALDVcXUREJlZrYWhaWEhdT2w9Q2ZGSmFiLjcjVzooITFWRS1GVldxRXQ3PkFWOWAKLVRwJDwwIzQvXC1Ubm49LGxualpQITFGXSwhWUVMLk8kZDx0NE0xYGc8P19qSEpBTztWSzRyQ2QlWTRXOjFCW2FyCi1oRFVBclc5Q21JIWdwdGFiTXNHXy5hJF44V10oQTNaaHVZP09MMyQ+JVlHJjczV1pGb1ZTR2tMQCk9ZFtaUmtvJQotIzlmMSooL1BcWCdIMDYxUXUzVSQmMlhxJmIvdFI/LWQiMzNKMionbUZPYFlcX15OU2VfYXJRQktnV3EmUiMqI0kKLUhxIz44WitKSSFWaCg6Nig8Q0NrQF90VGxGYTRVcTsqOGxqN3JXT3Ipb3JYKV9BI1xdSkZZXTAsPDQoKU1qRC9nCi0nWjAzZT07XHBpK0FhMj9LNCRxbj5JT0JXLjFFOG1qWk8kO0xgMWVvfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTcgMCBvYmoKLTw8IAotL1R5cGUgL0ZvbnQgCi0vU3VidHlwZSAvVHlwZTEgCi0vTmFtZSAvRjMgCi0vRmlyc3RDaGFyIDMyIAotL0xhc3RDaGFyIDI1NSAKLS9XaWR0aHMgWyAyNTAgMjc4IDQwMiA1MDAgNTAwIDg4OSA4MzMgMjI3IDMzMyAzMzMgNDQ0IDYwNiAyNTAgMzMzIDI1MCAyOTYgNTAwIAotNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgMjUwIDI1MCA2MDYgNjA2IDYwNiA0NDQgNzQ3IAotNzc4IDY2NyA3MjIgODMzIDYxMSA1NTYgODMzIDgzMyAzODkgMzg5IDc3OCA2MTEgMTAwMCA4MzMgODMzIDYxMSAKLTgzMyA3MjIgNjExIDY2NyA3NzggNzc4IDEwMDAgNjY3IDY2NyA2NjcgMzMzIDYwNiAzMzMgNjA2IDUwMCAzMzMgCi01MDAgNjExIDQ0NCA2MTEgNTAwIDM4OSA1NTYgNjExIDMzMyAzMzMgNjExIDMzMyA4ODkgNjExIDU1NiA2MTEgCi02MTEgMzg5IDQ0NCAzMzMgNjExIDU1NiA4MzMgNTAwIDU1NiA1MDAgMzEwIDYwNiAzMTAgNjA2IDAgNzc4IDc3OCAKLTcyMiA2MTEgODMzIDgzMyA3NzggNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNDQ0IDUwMCA1MDAgNTAwIDUwMCAKLTMzMyAzMzMgMzMzIDMzMyA2MTEgNTU2IDU1NiA1NTYgNTU2IDU1NiA2MTEgNjExIDYxMSA2MTEgNTAwIDQwMCAKLTUwMCA1MDAgNTAwIDYwNiA2NDEgNjExIDc0NyA3NDcgOTk4IDMzMyAzMzMgMCAxMDAwIDgzMyAwIDYwNiAwIDAgCi01MDAgNjExIDAgMCAwIDAgMCA0MzggNDg4IDAgNzc4IDU1NiA0NDQgMjc4IDYwNiAwIDUwMCAwIDAgNTAwIDUwMCAKLTEwMDAgMjUwIDc3OCA3NzggODMzIDEwMDAgODMzIDUwMCAxMDAwIDUwMCA1MDAgMjc4IDI3OCA2MDYgMCA1NTYgCi02NjcgMTY3IDUwMCAzODkgMzg5IDYxMSA2MTEgNTAwIDI1MCAzMzMgNTAwIDEwMDAgNzc4IDYxMSA3NzggNjExIAotNjExIDM4OSAzODkgMzg5IDM4OSA4MzMgODMzIDAgODMzIDc3OCA3NzggNzc4IDMzMyAzMzMgMzMzIDMzMyAzMzMgCi0zMzMgMzMzIDMzMyAzMzMgMzMzIDMzMyBdIAotL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nIAotL0Jhc2VGb250IC9QYWxhdGluby1Cb2xkIAotL0ZvbnREZXNjcmlwdG9yIDM0MjEgMCBSIAotPj4gCi1lbmRvYmoKLTggMCBvYmoKLTw8IAotL1R5cGUgL0ZvbnQgCi0vU3VidHlwZSAvVHlwZTEgCi0vTmFtZSAvRjUgCi0vRmlyc3RDaGFyIDMyIAotL0xhc3RDaGFyIDI1NSAKLS9XaWR0aHMgWyAyNTAgMjc4IDM3MSA1MDAgNTAwIDg0MCA3NzggMjA4IDMzMyAzMzMgMzg5IDYwNiAyNTAgMzMzIDI1MCA2MDYgNTAwIAotNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgMjUwIDI1MCA2MDYgNjA2IDYwNiA0NDQgNzQ3IAotNzc4IDYxMSA3MDkgNzc0IDYxMSA1NTYgNzYzIDgzMiAzMzcgMzMzIDcyNiA2MTEgOTQ2IDgzMSA3ODYgNjA0IAotNzg2IDY2OCA1MjUgNjEzIDc3OCA3MjIgMTAwMCA2NjcgNjY3IDY2NyAzMzMgNjA2IDMzMyA2MDYgNTAwIDMzMyAKLTUwMCA1NTMgNDQ0IDYxMSA0NzkgMzMzIDU1NiA1ODIgMjkxIDIzNCA1NTYgMjkxIDg4MyA1ODIgNTQ2IDYwMSAKLTU2MCAzOTUgNDI0IDMyNiA2MDMgNTY1IDgzNCA1MTYgNTU2IDUwMCAzMzMgNjA2IDMzMyA2MDYgMCA3NzggNzc4IAotNzA5IDYxMSA4MzEgNzg2IDc3OCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA0NDQgNDc5IDQ3OSA0NzkgNDc5IAotMjg3IDI4NyAyODcgMjg3IDU4MiA1NDYgNTQ2IDU0NiA1NDYgNTQ2IDYwMyA2MDMgNjAzIDYwMyA1MDAgNDAwIAotNTAwIDUwMCA1MDAgNjA2IDYyOCA1NTYgNzQ3IDc0NyA5NzkgMzMzIDMzMyAwIDk0NCA4MzMgMCA2MDYgMCAwIAotNTAwIDYwMyAwIDAgMCAwIDAgMzMzIDMzMyAwIDc1OCA1NTYgNDQ0IDI3OCA2MDYgMCA1MDAgMCAwIDUwMCA1MDAgCi0xMDAwIDI1MCA3NzggNzc4IDc4NiA5OTggODI3IDUwMCAxMDAwIDUwMCA1MDAgMjc4IDI3OCA2MDYgMCA1NTYgCi02NjcgMTY3IDUwMCAzMzEgMzMxIDYwNSA2MDggNTAwIDI1MCAyNzggNTAwIDExNDQgNzc4IDYxMSA3NzggNjExIAotNjExIDMzNyAzMzcgMzM3IDMzNyA3ODYgNzg2IDAgNzg2IDc3OCA3NzggNzc4IDI4NyAzMzMgMzMzIDMzMyAzMzMgCi0yNTAgMzMzIDMzMyAzODAgMzEzIDMzMyBdIAotL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nIAotL0Jhc2VGb250IC9QYWxhdGluby1Sb21hbiAKLS9Gb250RGVzY3JpcHRvciAzNDIyIDAgUiAKLT4+IAotZW5kb2JqCi05IDAgb2JqCi08PCAKLS9UeXBlIC9Gb250IAotL1N1YnR5cGUgL1R5cGUxIAotL05hbWUgL0Y3IAotL0ZpcnN0Q2hhciAzMiAKLS9MYXN0Q2hhciAyNTUgCi0vV2lkdGhzIFsgMjUwIDMzMyA1MDAgNTAwIDUwMCA4ODkgNzc4IDMzMyAzMzMgMzMzIDM4OSA2MDYgMjUwIDMzMyAyNTAgMjk2IDUwMCAKLTUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI1MCAyNTAgNjA2IDYwNiA2MDYgNTAwIDc0NyAKLTcyMiA2MTEgNjY3IDc3OCA2MTEgNTU2IDcyMiA3NzggMzMzIDMzMyA2NjcgNTU2IDk0NCA3NzggNzc4IDYxMSAKLTc3OCA2NjcgNTU2IDYxMSA3NzggNzIyIDk0NCA3MjIgNjY3IDY2NyAzMzMgNjA2IDMzMyA2MDYgNTAwIDMzMyAKLTQ0NCA0NjMgNDA3IDUwMCAzODkgMjc4IDUwMCA1MDAgMjc4IDI3OCA0NDQgMjc4IDc3OCA1NTYgNDQ0IDUwMCAKLTQ2MyAzODkgMzg5IDMzMyA1NTYgNTAwIDcyMiA1MDAgNTAwIDQ0NCAzMzMgNjA2IDMzMyA2MDYgMCA3MjIgNzIyIAotNjY3IDYxMSA3NzggNzc4IDc3OCA0NDQgNDQ0IDQ0NCA0NDQgNDQ0IDQ0NCA0MDcgMzg5IDM4OSAzODkgMzg5IAotMjc4IDI3OCAyNzggMjc4IDU1NiA0NDQgNDQ0IDQ0NCA0NDQgNDQ0IDU1NiA1NTYgNTU2IDU1NiA1MDAgNDAwIAotNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNzQ3IDc0NyAxMDAwIDMzMyAzMzMgMCA5NDEgNzc4IDAgNjA2IDAgMCAKLTUwMCA1NTYgMCAwIDAgMCAwIDMzMyAzMzMgMCA2MzggNDQ0IDUwMCAzMzMgNjA2IDAgNTAwIDAgMCA1MDAgNTAwIAotMTAwMCAyNTAgNzIyIDcyMiA3NzggMTAyOCA2NjkgNTAwIDEwMDAgNTAwIDUwMCAyNzggMjc4IDYwNiAwIDUwMCAKLTY2NyAxNjcgNTAwIDMzMyAzMzMgNTI4IDU0NSA1MDAgMjUwIDI3OCA1MDAgMTAwMCA3MjIgNjExIDcyMiA2MTEgCi02MTEgMzMzIDMzMyAzMzMgMzMzIDc3OCA3NzggMCA3NzggNzc4IDc3OCA3NzggMjc4IDMzMyAzMzMgMzMzIDMzMyAKLTMzMyAzMzMgMzMzIDMzMyAzMzMgMzMzIF0gCi0vRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcgCi0vQmFzZUZvbnQgL1BhbGF0aW5vLUl0YWxpYyAKLS9Gb250RGVzY3JpcHRvciAzNDIzIDAgUiAKLT4+IAotZW5kb2JqCi0xMCAwIG9iagotPDwgCi0vVHlwZSAvRXh0R1N0YXRlIAotL1NBIHRydWUgCi0vT1AgZmFsc2UgCi0vSFQgL0RlZmF1bHQgCi0+PiAKLWVuZG9iagotMTEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAyIDAgUiAxMiAwIFIgMTcgMCBSIDYyIDAgUiAxMDggMCBSIDE1NCAwIFIgMTcyIDAgUiAxODUgMCBSIDE5MiAwIFIgCi0yMDIgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotMTIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExIDAgUiAKLS9SZXNvdXJjZXMgMTYgMCBSIAotL0NvbnRlbnRzIDE1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLT4+IAotZW5kb2JqCi0xMyAwIG9iagotPDwgCi0vRCBbIDEyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQgMCBvYmoKLTw8IAotL0QgWyAxMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1IDAgb2JqCi08PCAvTGVuZ3RoIDI4NjkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KL2drTSZIU1tuIXVxUmksPmt1JzVXPUZSJVJzOS8+WDMwMk9HXFM5R28xOT1KZVxeQDBuPWpLLG9GYG5AbFNfawotQkhTY0Q2KmFFT0E/WzBtT2loL1chTSY5cCwqaTgoSkgyTEVDJ0tmMUFKaVgvNCEwUipqWUNTSTlRKiQ0TjxeWmwKLT5kQGlxVCQ9L0hXVDxvLDZCW1RCRm9uQW9ML1RVYzhFJ11NYmZYc3VPajloZitkUypZKUBgYSIkMEB0PjZRJzdJCi1VPi00Z0dWJ2tuQ1FjNV8qKUtcSlNCV0RQRkZbVU4oJ2s1RCc5UzcjKztrV3EsOCYjWERpMUFuI2lPQ3AuXUAqRAotI1MtRDMuNVg6bzAkLWVLMyVRJWQvP0ZlYWRKOG1UWzE9MHJVWlRAKzlIKyRNX0k3RiRLSzpJcU1wbCdROE5fUzEKLTFQWkckZGc7OVFAOCQsIUkkSWVbPzYxaV8lPk1jTUFcUjA3WSxvZjcwVEV1S19EWCw/LXNHXnEkJGBEbCNcLyw7Ci00SDtkImM4NiNeITRXXktAYzEuRzI2QmhDZjBMUFs+MC9pVGo7dCJOSypeaFgxZFEoRytVaytPb0pSLFFiN2xFMAotOGYzLjwlPW5NVSRVWTZxVWJdKmpPUitgXU9YcTlOIzEuRSQoXjdhK0AiYllUQlhTVF8rXDZWayJUcyM3Ji5QQj8KLW5kbDReOEVNcyJVQ2NdTyUmIVtiMWVnbjZoRCglY0JaYDgkLD4xJ1pOPD1RSSYuU2YoO1hEVV5ITVRCbDtrZV5xCi1fR0klYiUjci9Ma1ZTNj5OOWBpLiIiPEBlY2RIPzcuWk09U2hgdW1oOEBnOFc5KkEjOUxDbUxfY19OKDVbZ0owbwotQUMqQXQiKGEvP2RkNW1XMmlRNyZsN3UtK2JrRjxJb0YyIWBOYDc1cDUsXCQpJU5KLnVUWXJcNCdPXkJJOmMhTT0KLTMvaldPWFxPbWpxIVNRTVBDVkloPEllbjFbVDo0NSs/KHElamJJPGpGLGBtU2cmWGdPJ0YhKkI+NlA0Sz1EM2M3Ci1FaEhlV1gzNUhZXDFVSkcjcyxwV1MxPXViMFxlYCNbPVFENyc9RyUlYEE/RFBUXE1CR0NXM2g/ZlNjUmllJWgyWwotO143N3A+KDtxJDIndUdMTkE4a0I9JSpqXi5zYWllJT5sPUVqJS5GLkFSYyEzUlw2WVkzR10sL15yIV1cSztkUz4KLWcsVnAjKzpcJj5nYlhUdW9lVXRqK2tAKig2J0A3Zyg/KilhKTElMSlFJ1FHOUs6cVlcPjJfbi04KCdCUDBqUz5hCi0qYFxpb19rcGpPTVJmPVZZT1BjOEZhYGRfcDAsXlxncj5haDxBZShuJzU0ZTpCLkJXMmJkWEwxPilbJSpjOHVscgotWkhxOG5pJk03R3BxZiFsXE5vJk9hOlFkIyliMXEhZGxXT0kiYStiL0hyZyJ1RHFrTFcmOFUsUElyYS9KYE9JZyIKLW8xOCZraEReblBNJSFtKjVzOCkvbmREWV9Nclk8aU1rMiNLSyc3L1NqIWYqL0pmcEchIiVFLWVlcSQmOGMhQS5GCi1PTm5pLStyTGpvZ2J1JSkxcERWLV5DSSptZCZALXBVIUpmSzFhMDRiVk5CI15PLHUpSzhZSiFnXnNcXjlKWT9oPAotV0JIU1pOKS87V2Q9P3JIZDU0OiJsJ1FFRURYQWFNL10pdEInPmYma01aRCJpZjMlK18zLGZBJGE+YUQhLiVxYisKLURjJy1rM05OPz8kMz8jKiI6TE0uXTIxY3NQYG0oMmw8LWUrTDhQSSRQQ1paVEoyXGFuaFk8ODVucGNXRm9jU0AvCi0iYlRLXEM2O0wpVl9tXDg8NFxLNFlIQEFOPD5HaVhCT1pkS1tJcUlvOD1KIkJEaHRSXGFzIiEjKDg3NVNLWz9HYgotYHE0U3BKWjtnWVdWU3JZUUhmYU9nOC4tQFJNaThOWW0zWHRKbVlhbjVYblkjcU8nbHE9LTU9Ii49Il0jKDAhWScKLStoOEhua0MxIm5pcExRIypdNC4nXm9Mc3QmIVRkOCtVOkElJFFFTko9cVJUISM0VjI3Z3VyPllYcSM+LEpEc25yCi1hPDY8JiZdX0RYcmgqOS5ccTRXPikkTV9aKG1BMjJHcHJxLS1DPF88IXVzXWJKXi4lUEVgLDhxOmFnb0xddExvKwotcnUpUCNCKy5BTzBLPFhVLk4oVlElNGFubF5fXD5tLEFPZk8nPCs4WjFOcG9RXzQkVlZoOyRAWCoiRkFgb2UzI18KLTByRUtEITk2cU1RLShBZDc2bzY4UjdxSW5uMWlgZ0xXWVREUE1DUyNWTFsnPStUSiNGa1YhSnEwWEkqIk5EMjktCi1HYF4+QmFuWSJhZSxhY1E5OHRhPltzSjwmJypYLG9mZEsoPFcoTDBNOEk2UCImLVVwXzpdZGppJCxLRkwiWWMjTAotNj08SWorTnRkaDVjPjpzLjdMSWtUSEpxbSVNUV5BVHM0NTkuWVFgRD86J2BQI3BFLnVXLjcsSF9EISk8Rm9XZUAKLUNFWzhAJT9kdCJkYFlkTVQrLW9VOCQxXnRcPj9lcEIsaEFRWm8wcHEiJXNJRCUxU0NHKDlBXF9PSldgb09AXV5ZCi1uTy1MW1ZNc2s0OUYyakYrVSN0JCdjW0tUIlgoVlQ9S21BalhRbkZAIUM4QGMhLyNJMjVaNGgwKEA1Pk1fR01tPQotOz9SZE0uME5KJkZyMipqWScxWjVgcktSVkNBbUQyZkFiWysmPmctcFtGNUdLa1UtS2VPcUI0cSJMND1IY2VmayIKLSc+ZV1lI2JhWDlpPmBTWWFyaihYK1ooPHBFL1NmLSEoIi5SQkk9VE1UND4iUl9bKldbLltXbTInbF9fWVlrSydNCi1nJlMmZG1rJ0w0XCosO0huOyVhcChmXm1QN2MpZUFSTT5tIShxO05KJ10nND1LSiNlclhWai1NalUxVSNtJSpnVgotKSRKPD4+NE4/M1UvbV5zRFVSUHEnayhvcU8wXmZJMnFaP1ZCPDtBVWA/Pkw3ZjowZ0JEYHVtaDxcR2sxRSdbayUKLWhMNV9yKDs0P1dKZTgnbGBYJjdPKkVvXD8nPmc8L15VOEJAS0hRSiNYaT5VbStcWEE9MFRnYlEqW00qIldIZCI0Ci0pZjFLL3IxUSNFN3ArXTNGMC9ILFtAbkFbZnQ2LiNEJnEnPTJQWE8yYjpnJU5eOyV1UG5VWj80SllSZzk2dUQtOgotZGQkbUQlUD1WLVxAM08/Z3EwaDRGLk5XUStXKUtrKVspTVVrI10oLyRtbClnUCZJWS9eVzdAaCdhNiwmVGdHPVoKLWgxOFZkaW1VOShYL0poKyZDdE9EJGoxVSdENEFzYV9YLVZwaEBxVC8kZjYpcC47cnRwJnAtJFdhXkloQERnXCRzCi0yI2I1NEFxdEMxNWIzYyJJSVlfI1VgK2tgTTBWJVE7VV1SRilDbmpQUFZRIyReLVAiNktlNHM0Tj1KdDpRLlJHYwotZz8nIU06K1phXjAicD5xQVQ3MXQ7b2RaaCtddDdaJ0VYU0tfPkdxcEQlK2kkIVI6XUs1bUhOLT9wb3ROLS0jLi0KLUhZRFRDXXJlR1xkKmVEJGpCU2FRW1FCTSpLSTEkRGY1IVRuOTluXGBcT08vSXJwYjpmKydJYEVOTVBlWStEQTYsCi1IYHBMdStiWCkvJ2dkWUFkISlmQ0skUCVrMGMhUidxMzM3LnIjPSlSTnFwdE8xYWgnYWFfOjZwS0YzJTE8Z3NmJQotOCdUWnExKkQpY0s5Qj5YNihvViFVcDAsKUBLSH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMSAwIFIgCi0vUmVzb3VyY2VzIDU5IDAgUiAKLS9Db250ZW50cyA1OCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQW5ub3RzIFsgMjAgMCBSIDIxIDAgUiAyMiAwIFIgMjMgMCBSIDI0IDAgUiAyNSAwIFIgMjYgMCBSIDI3IDAgUiAyOCAwIFIgMjkgMCBSIAotMzAgMCBSIDMxIDAgUiAzMiAwIFIgMzMgMCBSIDM0IDAgUiAzNSAwIFIgMzYgMCBSIDM3IDAgUiAzOCAwIFIgMzkgMCBSIAotNDAgMCBSIDQxIDAgUiA0MiAwIFIgNDMgMCBSIDQ0IDAgUiA0NSAwIFIgNDYgMCBSIDQ3IDAgUiA0OCAwIFIgNDkgMCBSIAotNTAgMCBSIDUxIDAgUiA1MiAwIFIgNTMgMCBSIDU0IDAgUiA1NSAwIFIgXSAKLS9CIFsgNTcgMCBSIF0gCi0+PiAKLWVuZG9iagotMTggMCBvYmoKLTw8IAotL0QgWyAxNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5IDAgb2JqCi08PCAKLS9EIFsgMTcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMCAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk2NzQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY2OSA1NDAgNjg1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMSAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk3ODk0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY0NiA1NDAgNjU4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMiAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk4MTEyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYzMiA1NDAgNjQ0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMyAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk4MTM3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYxOCA1NDAgNjMwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNCAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk4MTgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYwNCA1NDAgNjE2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNSAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk4MTA2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU5MCA1NDAgNjAyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNiAwIG9iagotPDwgCi0vRGVzdCAvRzMuOTk4MjQwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU3NiA1NDAgNTg4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNyAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk3MDQ5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU0NSA1NDAgNTYxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOCAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk3MDUxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUyMiA1NDAgNTM0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOSAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk3Nzk1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUwOCA1NDAgNTIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMCAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MDU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ5NCA1NDAgNTA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMSAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MTc2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ4MCA1NDAgNDkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMiAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4NDU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ2NiA1NDAgNDc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMyAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4NDU3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ1MiA1NDAgNDY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zNCAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MzY5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQzOCA1NDAgNDUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zNSAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MTU4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQyNCA1NDAgNDM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zNiAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MTYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQxMCA1NDAgNDIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zNyAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4MTczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM5NiA1NDAgNDA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zOCAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4NjUyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM4MiA1NDAgMzk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zOSAwIG9iagotPDwgCi0vRGVzdCAvRzQuOTk4NzY4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM2OCA1NDAgMzgwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00MCAwIG9iagotPDwgCi0vRGVzdCAvRzUuOTk2NzQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMzNyA1NDAgMzUzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00MSAwIG9iagotPDwgCi0vRGVzdCAvRzUuOTk3ODc3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMxNCA1NDAgMzI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00MiAwIG9iagotPDwgCi0vRGVzdCAvRzUuOTk4MDk3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMwMCA1NDAgMzEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00MyAwIG9iagotPDwgCi0vRGVzdCAvRzUuOTk4MjMwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI4NiA1NDAgMjk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00NCAwIG9iagotPDwgCi0vRGVzdCAvRzUuOTk4NDI2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI3MiA1NDAgMjg0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00NSAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk3OTg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI0MSA1NDAgMjU3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00NiAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk3OTkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIxOCA1NDAgMjMwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00NyAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk5MjEzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIwNCA1NDAgMjE2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00OCAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk4MTQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE5MCA1NDAgMjAyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi00OSAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk4MTk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE3NiA1NDAgMTg4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi01MCAwIG9iagotPDwgCi0vRGVzdCAvRzYuOTk5NzI3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE2MiA1NDAgMTc0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi01MSAwIG9iagotPDwgCi0vRGVzdCAvRzYuMTAwMDU1MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDggNTQwIDE2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotNTIgMCBvYmoKLTw8IAotL0Rlc3QgL0c2LjEwMDA5NTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTM0IDU0MCAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTUzIDAgb2JqCi08PCAKLS9EZXN0IC9HNi4xMDAxMDMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEyMCA1NDAgMTMyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi01NCAwIG9iagotPDwgCi0vRGVzdCAvRzYuMTAwMTEyMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxMDYgNTQwIDExOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotNTUgMCBvYmoKLTw8IAotL0Rlc3QgL0c3Ljk5Njc0NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3NSA1NDAgOTEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTU2IDAgb2JqCi08PCAKLS9JIDw8IC9UaXRsZSAoQSk+PiAKLS9GIDU3IDAgUiAKLT4+IAotZW5kb2JqCi01NyAwIG9iagotPDwgCi0vVCA1NiAwIFIgCi0vUCAxNyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDMwMzMgMCBSIAotL04gMTA1IDAgUiAKLT4+IAotZW5kb2JqCi01OCAwIG9iagotPDwgL0xlbmd0aCAyMjE2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuRTA3WmcKLUJIU2NENiphRU9BP1swbU9paC9XIU0mOXAsKmk4KEpIMkxFQydLZjFBSmlYLzQhMFIqallDU0k5USokNE48XlpkCi1TVFxFc1JTQltuV1Q8byw2QltUQkYjZWcuTC9UVWM4RSddTWJmWHN1T2o5aGYrZFMqWSlAYGEiJDBAdD42UStkdAotVT4tNGdHVidrbkNSKm5WKilLXEpTQldEUEZGW1VOKCdrNUQnOVM3Iys7a1dxLDgmI1hEaTFBcSNpT0NwLl1AKkQKLSNTLUQzLjVYOm8wJC1lSzMlUSVjMVBecW82S24/Z0NLZmZpajYiLWs5SCskTV9JN0YkS0s6SXFNcGwwaEBGIiIoCi0jY15LPyw9ailnP1NTOCVCXzdhI01FQnB1cUJZVjxBUkpvIV4mbHFgLktwdVMka3MqcCZEL2FrIippJCQjXS9HXwotMTYnMkVqcU5gSlRUbzo2bW1GTz00L2U7ak1eJk1WYG9LPy1NSS04IzVsYlNaXXVwNjNmS1FQcTN0cyJLUFpGZlwKLWxGOSh1IzJ0cVMpYjpSKiI9UEkoMFojUVxKT2lyXiMtJmVOJjUkdUVXQFEtPmJjcmJDO1hDcUliTDZtOTEhRVBFCi0/T1hoY2xqV0o4OUlkJzYzWUA7LlUrbnMsPlRBSkFcM0xoRmJsIUBASlpvXUwkQkBKdWE/IzhpVUdiJiZhQyVrIwotYmBuKTE4Xl5TPy44ITsnZGItZltlKCJJIi9kbW4zM0s8KCI4aSI5VGohLSFOZVNRc0A8WV4icTlaKD40PEJ1Nj4KLSNmVF0lSkg0bWolNFYpKzBURXVLX0RZITQwUCpjKjJKbSM8PXFcJlokcl4wNkUkOnJjK09eXiQrY1ZoJGdfUG1nCi1FN09aUGNqJjQ/NWN1cFAsRztPYWFwSWp1MTYxPmxhKlpVLmBAO2s0PGpWdVElXGwtUzMiPW81XC8qS0RlYW5MUgotPC9wXXBbUCNKKSYwWy87LDRFSTJZYDBWYm5TRDxvTDhyKnIpLD82XkBcdVdJZ3Q3MXVCZ2Q5PTNVNUNWOkY5JFUKLSN0JVEoO2BMTSpUdUVAUWlMMTNgUGhNPGxOQVxbMkVgJjJuKSclZjcwRUg3SjRcPiInNT5VKjpBVUBnPCdhVGdBCi1mY2RTQEFuWUMkSllAZjovTjFdVDFdJVtgJCVrZG4icTNqSWMlPGQjb1VIZCc2LChJSW0rYCNhVTBSSF47N1ElJgotITVeTllBIVheOU0iWEpHPGNEPEkhQTIrQTx0JFBmKXBdVzwlTURtcDBUPj5pcTZvYmlbb0lpdDQ9dElQI1ghTicKLTE2Mk1DZyxNQj1FLFpiOlNBLy4zPk1SYkgnRjgrSWp1Z01VI2s2MyI2YGtZbiVKQXImI1F0NUhocU8sRT9RSiV1Ci1kaVI3bXAjLzArYzM5dDsjV2Y6WlpsL0lUWjtkMiZIK3FQMTJbb0VLSDEkLnBeVkFCJSFfJW5fJDJQLHRtb1s7ZgotZTBuVlNDNVo0QD8vRT5gKjwpNHRrXjROZ29jWy1zKSQ+dDdKdUNwTktKNkY2aCNgOT1pUTlnWWY/RjFsaSZDb04KLVY9KG0pbydocFs2JF5kXyJHU2xnKW9FTTglQiopYTVhSFRYPS5DT0s4aG5mMEdacmVHYlYzIS1sIV0+aW8hX1p0Ci03dEwqMixlcTtga00qVi8kTGE/OyM0ViVWaHRhITxEbTIwVTBbUSNAbGpcaElaI19AaywpO1BaZ2ddSytuP1M/PgotTmZRYVNBLUIwOCcuLT1MKSo4YXNtJzhhSmU5aFxOQFJFclhlLmAnP2BzK25fTUxMKSstN2hGLVooMz0uRGUzWiEKLTc1bGgtUm5Eajw2a1E2OTtLclk9JmF0ZSo1UisjLEUqJVUpLmc9QTZqPkRdUEsqLmNqJUgpYXA4U0tsMiIwY0tHCi1MYyNGPG9HSzk2T0RHPl4zWzc1WUtkW207LHVdZjI6SCVdPSZnSHMsPD1VSjw4RlkoUkA2RDJoY0I7RWBFN1Y0aAotZkwnSGZgIzZcTGV1UlFkOGQsVihxK19MYTJsP2VCUWBuaEVKZDV0Ql9mOywkTVBXR1BcX2IkSkteb0ljWiMlViEKLWRNU1onKTRQVyExLUM+LilJXWpkJUgzJDpfTFFHMkI2O0YiJ0lBUElbTm4yN01cXEQlZDFWXSs8L09ncEg6Uj9cCi08P2pDcU5HM0tlQSciLnBQSkNeZWpBUm06JTxyRWUrTXFgQyoxQlpSaycjMCZTPGhEbUM2V1A6RGI9UGkrIj06QAotUSk3NzkockhNLyQlXEJMNi5AZ3RsLC1ASkk7KUF0Ny8+KFNmXDs9L0JtL1xsbDM7IkVVL1k2OTFhMU4iIypdYVAKLWxkTF8jXzMrJDAzLXA5TXJHIyFAYV9AQSlkTSllMWxuXk8sX0VEWXJtMTxyPyU3LTdJZlU8PEw2J3NCUyRLKi5gCi07IUI2bSdPOzQyRj8zKChSViVuUkYuZScnRzFsYi9QZmlBIyVZO2BsV2IjIj9DRis2XzBuX0w9WCNSOmIvQWFgSQotUUdQYVxpPFosIkQxcDZgQWw5RGk5JztFW0tFOTpYTEJcJSNTKEtFPVFKVjBgbjdaOTxqMjxhM0MqQlsqJE1HZTQKLTZiS2tbWF1kT2FLTz85XjAkRzQ7MVhyMS9ZRjhjJVtZY1JjUWpqVUZGY201MVxbaVRmUHMpOCdtMG9cWy1cQms8Ci0pUic6KUExYWY/U1hOQm84OjVKQCdYXFYpOG4wJCpDamkyLyFoPF8nQDNKZCElcVxdaz5RaUY9KVxjNVw2JVBIagotZDVxUTlTRW1JNUBCdFs5JkciLVY/b1lhR0dUKTNOMyhDc3B+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTU5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjkgNjAgMCBSIC9GMTEgNjEgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02MCAwIG9iagotPDwgCi0vVHlwZSAvRm9udCAKLS9TdWJ0eXBlIC9UeXBlMSAKLS9OYW1lIC9GOSAKLS9GaXJzdENoYXIgMzIgCi0vTGFzdENoYXIgMjU1IAotL1dpZHRocyBbIDI1MCAzMzMgNTAwIDUwMCA1MDAgODg5IDgzMyAyNTAgMzMzIDMzMyA0NDQgNjA2IDI1MCAzODkgMjUwIDMxNSA1MDAgCi01MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNTAgMjUwIDYwNiA2MDYgNjA2IDQ0NCA4MzMgCi03MjIgNjY3IDY4NSA3NzggNjExIDU1NiA3NzggNzc4IDM4OSAzODkgNzIyIDYxMSA5NDQgNzc4IDgzMyA2NjcgCi04MzMgNzIyIDU1NiA2MTEgNzc4IDY2NyAxMDAwIDcyMiA2MTEgNjY3IDMzMyA2MDYgMzMzIDYwNiA1MDAgMzMzIAotNTU2IDUzNyA0NDQgNTU2IDQ0NCAzMzMgNTAwIDU1NiAzMzMgMzMzIDU1NiAzMzMgODMzIDU1NiA1NTYgNTU2IAotNTM3IDM4OSA0NDQgMzg5IDU1NiA1NTYgODMzIDUwMCA1NTYgNTAwIDMzMyA2MDYgMzMzIDYwNiAwIDcyMiA3MjIgCi02ODUgNjExIDc3OCA4MzMgNzc4IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDQ0NCA0NDQgNDQ0IDQ0NCA0NDQgCi0zMzMgMzMzIDMzMyAzMzMgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA0MDAgCi01MDAgNTAwIDU1NiA2MDYgNTU2IDU1NiA3NDcgNzQ3IDEwMDAgMzMzIDMzMyAwIDk0NCA4MzMgMCA2MDYgMCAwIAotNTAwIDU1NiAwIDAgMCAwIDAgMzMzIDMzMyAwIDczOCA1NTYgNDQ0IDMzMyA2MDYgMCA1MDAgMCAwIDUwMCA1MDAgCi0xMDAwIDI1MCA3MjIgNzIyIDgzMyA5NDQgNzc4IDUwMCAxMDAwIDUwMCA1MDAgMjc4IDI3OCA2MDYgMCA1NTYgCi02MTEgMTY3IDUwMCAzMzMgMzMzIDYxMSA2MTEgNTU2IDI1MCAyNTAgNTAwIDEwMDAgNzIyIDYxMSA3MjIgNjExIAotNjExIDM4OSAzODkgMzg5IDM4OSA4MzMgODMzIDAgODMzIDc3OCA3NzggNzc4IDMzMyAzMzMgMzMzIDMzMyAzMzMgCi0zMzMgNTU2IDMzMyAzMzMgMzMzIDMzMyBdIAotL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nIAotL0Jhc2VGb250IC9QYWxhdGluby1Cb2xkSXRhbGljIAotL0ZvbnREZXNjcmlwdG9yIDM0MjQgMCBSIAotPj4gCi1lbmRvYmoKLTYxIDAgb2JqCi08PCAKLS9UeXBlIC9Gb250IAotL1N1YnR5cGUgL1R5cGUxIAotL05hbWUgL0YxMSAKLS9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAKLS9CYXNlRm9udCAvVGltZXMtUm9tYW4gCi0+PiAKLWVuZG9iagotNjIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExIDAgUiAKLS9SZXNvdXJjZXMgMTA3IDAgUiAKLS9Db250ZW50cyAxMDYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDY0IDAgUiA2NSAwIFIgNjYgMCBSIDY3IDAgUiA2OCAwIFIgNjkgMCBSIDcwIDAgUiA3MSAwIFIgNzIgMCBSIDczIDAgUiAKLTc0IDAgUiA3NSAwIFIgNzYgMCBSIDc3IDAgUiA3OCAwIFIgNzkgMCBSIDgwIDAgUiA4MSAwIFIgODIgMCBSIDgzIDAgUiAKLTg0IDAgUiA4NSAwIFIgODYgMCBSIDg3IDAgUiA4OCAwIFIgODkgMCBSIDkwIDAgUiA5MSAwIFIgOTIgMCBSIDkzIDAgUiAKLTk0IDAgUiA5NSAwIFIgOTYgMCBSIDk3IDAgUiA5OCAwIFIgOTkgMCBSIDEwMCAwIFIgMTAxIDAgUiAxMDIgMCBSIAotMTAzIDAgUiAxMDQgMCBSIF0gCi0vQiBbIDEwNSAwIFIgXSAKLT4+IAotZW5kb2JqCi02MyAwIG9iagotPDwgCi0vRCBbIDYyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjQgMCBvYmoKLTw8IAotL0Rlc3QgL0c3Ljk5Njc0NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3NSA1NDAgOTEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTY1IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTc4MTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNzA4IDU0MCA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTY2IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTc5MTMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTY3IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTgxMjIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjgwIDU0MCA2OTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTY4IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTc4ODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjY2IDU0MCA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTY5IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTgxMzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjUyIDU0MCA2NjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTcwIDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTgxNDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTcxIDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTc5MjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjI0IDU0MCA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTcyIDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTc5NjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjEwIDU0MCA2MjIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTczIDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTgwNDMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc0IDAgb2JqCi08PCAKLS9EZXN0IC9HNy45OTgwNjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTgyIDU0MCA1OTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc1IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTUxIDU0MCA1NjcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc2IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTc4MTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTI4IDU0MCA1NDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc3IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTc4NTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTE0IDU0MCA1MjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc4IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTc4ODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTAwIDU0MCA1MTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTc5IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTg0OTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDg2IDU0MCA0OTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTgwIDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTc5ODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDcyIDU0MCA0ODQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTgxIDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTgxOTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDU4IDU0MCA0NzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTgyIDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTg0ODUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDQ0IDU0MCA0NTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTgzIDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTg3MTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDMwIDU0MCA0NDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg0IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTg3MTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDE2IDU0MCA0MjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg1IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTkyNzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDAyIDU0MCA0MTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg2IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTkzMDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzg4IDU0MCA0MDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg3IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTkzNzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzc0IDU0MCAzODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg4IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTk2MDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzYwIDU0MCAzNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTg5IDAgb2JqCi08PCAKLS9EZXN0IC9HOC45OTk2MTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzQ2IDU0MCAzNTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTkwIDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzE1IDU0MCAzMzEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTkxIDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTc4OTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjkyIDU0MCAzMDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTkyIDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTg1MzcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjc4IDU0MCAyOTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTkzIDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTg1NDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjY0IDU0MCAyNzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk0IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTgwNzcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjUwIDU0MCAyNjIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk1IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTgxMzIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjM2IDU0MCAyNDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk2IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTgzMjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjIyIDU0MCAyMzQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk3IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTg0NDggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjA4IDU0MCAyMjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk4IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTg4ODQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTk0IDU0MCAyMDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTk5IDAgb2JqCi08PCAKLS9EZXN0IC9HOS45OTkxNDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTgwIDU0MCAxOTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEwMCAwIG9iagotPDwgCi0vRGVzdCAvRzkuOTk5MDAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE2NiA1NDAgMTc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMDEgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMC45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTM1IDU0MCAxNTEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEwMiAwIG9iagotPDwgCi0vRGVzdCAvRzEwLjk5Nzg5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxMTIgNTQwIDEyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTAzIDAgb2JqCi08PCAKLS9EZXN0IC9HMTAuOTk4MDQxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDk4IDU0MCAxMTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEwNCAwIG9iagotPDwgCi0vRGVzdCAvRzEwLjk5ODExMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA4NCA1NDAgOTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEwNSAwIG9iagotPDwgCi0vUCA2MiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDU3IDAgUiAKLS9OIDE1MSAwIFIgCi0+PiAKLWVuZG9iagotMTA2IDAgb2JqCi08PCAvTGVuZ3RoIDIwODcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KL2drTSZIU1tuIXVxUmksPmt1JzVXPUZSJVJzOS8+WDMwMk9HXFM5R28xOT1KZVxeQDBuPWpLLG9GYG5uYVgtSQotQkhTY0Q2KmFFT0E/WzBtT2loL1chTSY5cCwqaTgoSkgyTEVDJ0tmMUFKaVgvNCEwUipqWUNTSTlRKiQ0TjxeWmQKLVNUXEVzUlNCW25XVDxvLDZCW1RCRiNlZy5ML1RVYzhFJ11NYmZYc3VPajloZitkUypZKUBgYSIkMEB0PjZRMD1KCi1VPi00Z0dWJ2tuQ1IqblYqKUtcSlNCV0RQRkZbVU4oJ2s1RCc5UzcjKztrV3EsOCYjWERpMUFxI2lPQ3AuXUAqRAotI1MtRDMuNVg6bzAkLWVLMyVRJWMxUF5xbzZLbj9nQ0tmZmlqNiItazo3RTRKJHQsPjsqWXRlWUtaZHJ1KUJCVFMKLVsscVZ0WWpBO0ZbTzxVRCUmKmJPVXRmSDwqSC5ZUytmNlNATmU5bWheQkw8aCtxdDNzIjs6c1Q6aSUhU185ZSxhCi0kLFROPy4xPSM+YUQpWHQsM1lzTy9XX0pIKVs+UFolZWtpalRZZ2JnQklNWG1eYHMtOzFsa0w8MlU3PEIwTC5PVgotVUxYRWMlP0huMTJpTm1fYXVQLzAtdDQrMiZCbGpWYWpRLUElRSNGRilDYm5kRSk3ZDxVTjVmQiVEdDRQMFhrUSUKLWo9bFNySydqMFlFWzFvLUw0UiIsLXIscWltNWlPa0E/LTg3JyU+azlLVktzYjNcS2RicVoiPmIqMFRbbmUiI2tzCi1jUDInWi5DSls7cSgwNU5xcmZrclVPXzJdJVpmWkoxO0ZHOGhVXFdpTkUmUiNRIT10YztVVzY0J0Y/RylvKT9pVgotITZkOkAuSmwoOSVaY2ssMmlYU0dfRF9tUyJEOUFaK2RjaDI8UmtyXyNaX1NGcWI1WDhLJnBQUSw4QUVgJWwtW2QKLWVDa1wvYyJQb0VXK207SkZkMDZbPklPPXQmNVlfJzQhO3BrPnVQaCVRVklEYWgwM189J0Y4QkJfKGVFJm8xPTVaCi1GbVR0SWh0VzMuPFgsOEMiXi1caHFyVFNrNls3b25mSXJmJlxgI0s1KyhzUzk6KyhxVFhibTV1VGRYKGdMYHNqLgotLlo6biVsXUNPMCRETEBgTEJvLUNZSXB1aFFeaWxiZzBnbStrck0ocldvM3FuV0ovMHE4WVNCLStQbmk1VU1ST1cKLTVXLz42NEg9TStnN2xCZi0yM1tBUF4lIV0/KVsocmduW141SSNvXzRFWl90V01CYGhVTC5NZUw9cS9CQmpXWTJCCi0ubGVsS1FTLiU1aWNEOVtHLDJBU0EjbTtIR2BYa25FSiZDME5ILjlnYHB0LScsPEtwZ05XcFlkIippXEk9IUorSwotWG08UnJELXI3T3JKV2RFMTFzRDM2Tk9FJE1wIkZAbE1LcCFraXQwZSw8ZSVzIjpaTCJnQDImU20zQyJlVFA6aC4KLXJwMU5dR2BSTWQ/RjI1bCdLNk09JT9HJkBCVjMhNGgqMiJmSlZgLjM8cmdILEFLMFFWKzcoK2loQkQ9bitkJCJWCi0takcwLThocV8jJC9RZSRCRko1LXIuN0wvWCRANG0mSGJcTSRxaTAsLDlZWSpnPmNMWVkxdHJhWVxYZVNGOGdrYQotLG5gTE9KbklDdUdbQUptIVxRRkAkSzhtPktzJUNYS0ZrIWxfRlI2JCU7SEhkQjlLY1VQSjJXZy9OWFxrX0BjcEMKLTlhUXBrZy1SLiVOVCYpYTZOR21aUiYnUWMhYW9GREpXdVlCOCNbNlJyKE4pQEE8ay1xQWU7ZFwuZyxsSDNpODAsCi0iJHJHKk1jJmtgT091K11KaGN0TTYhWzlANV5zKjY2dS5vVzUhTFA1PlhBXXA7SidILlJoOSpgN1pQQVlEUU5OLwotMVhMKXQ9clZsUGA/PGZ0YVk7IzBVSixSbG9yKkwhPU9nWm0xLjtBYlxWMzw+UlssWEgtZ1FVS19PMjIoTGtCXC8KLS1aLF1oQmZdI2piPGctI2FoSm08LG0yT0ROITlwMiciTz43aUxFOXVFSl9oRmEyTTE4PEshK3Q6MHFcRjJEViI4Ci0sLl5fMkpgV003YCNVLzZBWD4kKzMnZGteajxrI1s8YWY1aSwtaFBPaDNARHEkKTBlPWZmcS1lb1A1YlhyY2xWTgotRylGTyRtTlA0P2Q0bmY6NGw1Ql5EQGw9aSI+dSFzYmo+Sic4WUkvWjxKJD5cVEssbFYtNUE/Uy8vPydjMFZWTygKLUxGMUlHaiE3Pk1PXlIwJGREW24vO2FFV2wraWszamVXQyhYTGlRMlZPc0MtYyw+T1RlNEpAdUw+czAhc2FDQ2FJCi0iOk4mIi9kOmkqLllAWyohN2hNXFExJGkocj1WaS5UdS4nSmxsP0UtRz1EZS5SVCgiO1dbUGAsWEVAOiNMQlpvTgotWCQlbzJlYE4vIktLMTk1Z0ZtLm84O0F1ZixYaXViODxack86NlAqZWUwXEJnNFMiZls4czBELTh1a2M5SkFzXnIKLTdeKjRDTGdwamVfO3AxSk9TXDYxOC1YMyNfSCVzNFEoKyNWUEBvLSk5U2wmSUFuYWYpRiFiUy43XWVbQylPYUpHCi1pbWg1TzcldERSWz5RZWZgRC5bS0VaRVc2VS5QZFRdVFJfbEpILyY+RlBSIk5FKykzJCRCaHVicVVBY249KTJQKQotQT5wPGNAJyQrXyk4ZkBDJFw0bSYhZ1hwUm1uMXQ0JGFSXE5kSzB+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEwNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0YxMSA2MSAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEwOCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTEgMCBSIAotL1Jlc291cmNlcyAxNTMgMCBSIAotL0NvbnRlbnRzIDE1MiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQW5ub3RzIFsgMTEwIDAgUiAxMTEgMCBSIDExMiAwIFIgMTEzIDAgUiAxMTQgMCBSIDExNSAwIFIgMTE2IDAgUiAxMTcgMCBSIDExOCAwIFIgCi0xMTkgMCBSIDEyMCAwIFIgMTIxIDAgUiAxMjIgMCBSIDEyMyAwIFIgMTI0IDAgUiAxMjUgMCBSIDEyNiAwIFIgCi0xMjcgMCBSIDEyOCAwIFIgMTI5IDAgUiAxMzAgMCBSIDEzMSAwIFIgMTMyIDAgUiAxMzMgMCBSIDEzNCAwIFIgCi0xMzUgMCBSIDEzNiAwIFIgMTM3IDAgUiAxMzggMCBSIDEzOSAwIFIgMTQwIDAgUiAxNDEgMCBSIDE0MiAwIFIgCi0xNDMgMCBSIDE0NCAwIFIgMTQ1IDAgUiAxNDYgMCBSIDE0NyAwIFIgMTQ4IDAgUiAxNDkgMCBSIDE1MCAwIFIgCi1dIAotL0IgWyAxNTEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTA5IDAgb2JqCi08PCAKLS9EIFsgMTA4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEwIDAgb2JqCi08PCAKLS9EZXN0IC9HMTAuOTk4MTEzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDg0IDU0MCA5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTExIDAgb2JqCi08PCAKLS9EZXN0IC9HMTAuOTk4MDU1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDcwOCA1NDAgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMTIgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMC45OTgzMjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTExMyAwIG9iagotPDwgCi0vRGVzdCAvRzEwLjk5ODQyMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTE0IDAgb2JqCi08PCAKLS9EZXN0IC9HMTAuOTk4MzUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY2NiA1NDAgNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMTUgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjM1IDU0MCA2NTEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTExNiAwIG9iagotPDwgCi0vRGVzdCAvRzExLjk5Nzc3OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MTIgNTQwIDYyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTE3IDAgb2JqCi08PCAKLS9EZXN0IC9HMTEuMTAwMjgxOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1OTggNTQwIDYxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTE4IDAgb2JqCi08PCAKLS9EZXN0IC9HMTEuMTAwMjYzNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1ODQgNTQwIDU5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTE5IDAgb2JqCi08PCAKLS9EZXN0IC9HMTEuMTAwMDgzOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NzAgNTQwIDU4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTIwIDAgb2JqCi08PCAKLS9EZXN0IC9HMTEuOTk4MDQwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU1NiA1NDAgNTY4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjEgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS45OTg1MDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTQyIDU0MCA1NTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEyMiAwIG9iagotPDwgCi0vRGVzdCAvRzExLjk5ODgxMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MjggNTQwIDU0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTIzIDAgb2JqCi08PCAKLS9EZXN0IC9HMTEuOTk4OTczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUxNCA1NDAgNTI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjQgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAxMDU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUwMCA1NDAgNTEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjUgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAwMDU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ4NiA1NDAgNDk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjYgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAyMTQ4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ3MiA1NDAgNDg0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjcgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAyNTAwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ1OCA1NDAgNDcwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjggMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAyNjQ1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ0NCA1NDAgNDU2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMjkgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAyMTI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQzMCA1NDAgNDQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMzAgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMS4xMDAyNTAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQxNiA1NDAgNDI4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMzEgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzg1IDU0MCA0MDEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEzMiAwIG9iagotPDwgCi0vRGVzdCAvRzEyLjk5NzkwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNjIgNTQwIDM3NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTMzIDAgb2JqCi08PCAKLS9EZXN0IC9HMTIuMTAwNDUyOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNDggNTQwIDM2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTM0IDAgb2JqCi08PCAKLS9EZXN0IC9HMTIuOTk4MTg1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMzNCA1NDAgMzQ2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMzUgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi45OTg0NTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzIwIDU0MCAzMzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTEzNiAwIG9iagotPDwgCi0vRGVzdCAvRzEyLjk5ODgxNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMDYgNTQwIDMxOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTM3IDAgb2JqCi08PCAKLS9EZXN0IC9HMTIuOTk4ODE0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI5MiA1NDAgMzA0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMzggMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDAwMTAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI3OCA1NDAgMjkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xMzkgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDAxMDEyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI2NCA1NDAgMjc2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDAgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDA0MTcwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI1MCA1NDAgMjYyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDEgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDA0MzIxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIzNiA1NDAgMjQ4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDIgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDAzODgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIyMiA1NDAgMjM0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDMgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDAyNTg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIwOCA1NDAgMjIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDQgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMi4xMDAxMjMxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE5NCA1NDAgMjA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDUgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy45OTY3NDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTYzIDU0MCAxNzkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTE0NiAwIG9iagotPDwgCi0vRGVzdCAvRzEzLjk5NzkwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDAgNTQwIDE1MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTQ3IDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk4MDc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEyNiA1NDAgMTM4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDggMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy4xMDAzMDY0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDExMiA1NDAgMTI0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNDkgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy45OTgzNzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgOTggNTQwIDExMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTUwIDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk4NzMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDg0IDU0MCA5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTUxIDAgb2JqCi08PCAKLS9QIDEwOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEwNSAwIFIgCi0vTiAxNjkgMCBSIAotPj4gCi1lbmRvYmoKLTE1MiAwIG9iagotPDwgL0xlbmd0aCAyMjU3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmMvJmxIMHMKLUJIU2NENiphRU9BP1swbU9paC9XIU0mOXAsKmk4KEpIMkxFQydLZjFBSmlYLzQhMFIqallDU0k5USokNE48XlpkCi1TVFxFc1JTQltuV1Q8byw2QltUQkYjZWcuTC9UVWM4RSddTWJmWHN1T2o5aGYrZFMqWSlAYGEiJDBAdD42UTRqdQotVT4tNGdHVidrbkNSKm5WKilLXEpTQldEUEZGW1VOKCdrNUQnOVM3Iys7a1dxLDgmI1hEaTFBcSNpT0NwLl1AKkQKLSNTLUQzLjVYOm8wJC1lSzMlUSVjMVBecW82S24/Z0NLZmZpajYiLWs6N0U0SiR0LD47Kll0ZT1QayQtK3EyR2xCCi04IiM5aUsrWVZEPjdTZi45NEVLPUtcVSlyKUdTNGshPVchREtFRVhsMG9WbFhrZm8rKVFyNF1TNiVFbmciaTE8ZAotJCxUTj8uMT0jPmJWOVJFOyFeMVFfcEhKRiheMixJVyRPJEhDRXNhT2NZTVA5TGtALCJyQkYqOWE+QWpuMUA/b1cKLV9rW0E4XnAjbVsmLksvVm5CQV5XT0NmPVhPVF8zZGFtdENgJjRDTGg6J1FULDtyZVdeLDdzLHJOOkVpNCw2UypuCi1rVk9wVS86L0N0RScqYiklXWNtYTFDYEIrNVNDay8sUmpwbm5zJyklX2gjbT0ubigpcFtPMDpwLlknVmksQT8hbgotJSdXXTFvdGhDSC9PLlx1XWVxNUQrZEU+L1VNKDNKS1Y8KDorR1YuU1dcM1Y0WSFdXTlWPEwkK1FfYypPYGltJiIKLUpzVExEZVQsJnM8W3QrVVgrVXNEW01xWkNfcmVIXTtdRy05JDRGQXJPMycobS5ublwzaDZmSiYrZTpmV10xcEY5Ci1tXSkrMl5fZDspSDxqYyhOKTNbcCJqaD1ROFl1blhqc1ZFbGFQLVNMSzIhUW9gSVo6O0Q7XmAqJT4pTiFvTSQjRgotWXU8a3RgU2ooOF1vQS9laGU4JDtBSlI8c043MGJZTmokK0QvJitGb2hFLlhvYUQpTkpfUEBxYkwsXjRiUkVDSWAKLShHJjNUU0lkT2RbIi47Y05XVFIsMjJpYkMsMStQZCh0Xk8mRi1aaEI4W3E2KFdQaE1bRGFRXXQoNzZxO0cobGJNCi1AdFRsZlRlRmVrWUYwLTA6OHImYitpUVtJIlRlcnBidSl1Rl1vOiMoRCctJ3E2KUxFYm05QyZiUGYwJClGMUAwSgotLUNaX0hLOTNyNFZ0MjFZMWV1TTwqPCI4UEdmMkhKVURXNWU4UWgpWGREQ2A4RChHI1VPTVd0MUpINFVnOVtiXWUKLWVrUFZhbVBbQEVCKWc7J1JBKldcRlY8JXQuRUslVUdHVCM7UVtAaWAmcGRGcVohMmE9MTYuUT5wcSUjMGd1RW5oCi1kIXFKUHE2OTFtNjFFPVRZSyUrblVcSCFjJicyYDFIU2dfUDEvLCM6ZSJHb04vY1NDc3FhXE5sSlckRiZYcldAUgotUTdDbzhcSz0lMUtzQDo5NVRLclBVJ01vPS0zT201UCJBbVdIamguYjVVTEg5X0NAZjlhPDtgUUErRyokIScoODEKLUMmYyNXWj9EZ2xqVFBaVTE1PUNdcUxKV1ckbUYlPl0vU2RrX2IrUW1uRzQoLyFlMVNlNXAvSXM3RGpnSWNxZFQ9Ci1IJiIlTDBZaC5IT01kUixBRGklIjF0VkdKIUwoLVAwOCgwcC1KXERtUXJlPGMuTDhIQzVULSxDRCtLS0wrMk5WdQotJF90Ujoic0QsLi5KJSNJUG9xMW1NVipgYk90OScuZEZfT0RORUBmNUFrNC1ybDknYUFHK089cTtePXU7Plk+LGcKLThDYE0pXzg9NiUiTmI1QScnPlNgSjlhaVElNCZnI28uLzIrSFw5TGxtQW9wJFhKQ14sPG0uVDhhXG41NF8vZFVbCi1UWEkjY2ksRTZEWVVFaVpRJGs9K2loVnFNLz0kckU0VGRaK19ialZMUjRvQllaJEI6ZSZmYCcpTGE8MFojIjUjTQotK25vTzZWM1NAPEVxYz1KaWZqbmQtSCxFK2FoX19SJWIhLkc6JUw9UGhkZCpJbjI3b143Zj5HXk4tZzo0IllJbGIKLTxiR21fQDxnMT5WOF9PQSVLV1k/UlpnSEowV0d0O18/YVRbaVJLIzdBSlgtam5wSTJoRE0wSE1AMGA5UDtbcV1pCi00JFxQYWhXKCtmImVoLz9MS0pfTydCQiVmWydsPUk4J0xmUV5nVEkyWm8jTWc4MDFnNVksSEhJbkpxQ2FeJC1jbQotK0s1JmhMO2woUilEaCdzOEw4cGYzbTxpOUFLSEFASmU5N1EzZyE0Ti1PZkxBKCJSXXRMZiVQPFdwbjpQX2ZXaW8KLStrL1VhT1NHSGQjX2NbKEttZWQtIyl1XS5TRy1nTzhUKGNfKmBdLGopIV49JCRyJSFiYHFEYV5WXmNHUlpvblNGCi1CXl1IJyZKMi1TNS1aRzJhO0d0VGNVWDs8R00oV0s8N01yS1VZcWpvLiVubSNAW29RPGFjblM/MzQvNT5YJWlpKAotTDFzaElvRjtULDJpbSNCS2gqTGErXDhEYT0tPjEyOTguJXAsYS5MVmpXW0BSXE1jXygjcS9uZ0pKUUhJN1tEVjkKLVZjaSxcTkEoT2BGKUFQSDwtMF0rOTIhU1ZBXG06Lzc6S1JwOT8oSCdiZWpYWGJmUUIwLDtTQ3BESTlZciljZzI3Ci1GMCE2UTt0RkZRVT9ULCoocFgiUUpAbUA3ZnUxcEokUiUxMFRwIV4wQzxJSzlCIWgyTTo9bHFdQXQmLFoiOUJmKwotW08wKTIhTXE8YSg4MDVLZls0VV1IXl0jOUdyISxLZik3ITQ1IVkkK0pSTmJnQ0ZkbWlVYm4qcGA6TzQqJ1RQUFwKLUxjI2Y6QFEkSjp+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0YxMSA2MSAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE1NCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTEgMCBSIAotL1Jlc291cmNlcyAxNzEgMCBSIAotL0NvbnRlbnRzIDE3MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQW5ub3RzIFsgMTU3IDAgUiAxNTggMCBSIDE1OSAwIFIgMTYwIDAgUiAxNjEgMCBSIDE2MiAwIFIgMTYzIDAgUiAxNjQgMCBSIDE2NSAwIFIgCi0xNjYgMCBSIDE2NyAwIFIgMTY4IDAgUiBdIAotL0IgWyAxNjkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU1IDAgb2JqCi08PCAKLS9EIFsgMTU0IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU2IDAgb2JqCi08PCAKLS9EIFsgMTU0IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU3IDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk4NzMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDg0IDU0MCA5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTU4IDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk4NzUyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDcwOCA1NDAgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNTkgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy45OTk0MTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTE2MCAwIG9iagotPDwgCi0vRGVzdCAvRzEzLjk5OTkwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTYxIDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk5NDM5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY2NiA1NDAgNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNjIgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy4xMDAzMjk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY1MiA1NDAgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNjMgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy4xMDAyMDAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYzOCA1NDAgNjUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNjQgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy45OTk2NjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjI0IDU0MCA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTE2NSAwIG9iagotPDwgCi0vRGVzdCAvRzEzLjk5OTY4MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MTAgNTQwIDYyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMTY2IDAgb2JqCi08PCAKLS9EZXN0IC9HMTMuOTk5NjkyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU5NiA1NDAgNjA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNjcgMCBvYmoKLTw8IAotL0Rlc3QgL0cxMy4xMDAyNzk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU4MiA1NDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0xNjggMCBvYmoKLTw8IAotL0Rlc3QgL0cxNC42NjUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTUxIDU0MCA1NjcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTE2OSAwIG9iagotPDwgCi0vUCAxNTQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTEgMCBSIAotL04gMTgxIDAgUiAKLT4+IAotZW5kb2JqCi0xNzAgMCBvYmoKLTw8IC9MZW5ndGggOTg2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmMvOz1WMFMKLUJIU2NENiphRU9BP1swbU9paC9XIU0mOXAsKmk4KEpIMkxFQydLZjFBSmlYLzQhMFIqallDU0k5USokNE48XlpkCi1TVFxFc1JTQltuV1Q8byw2QltUQkYjZWcuTC9UVWM4RSddTWJmWHN1T2o5aGYrZFMqWSlAYGEiJDBAdD42UTlDSwotVT4tNGdHVidrbkNSKm5WKilLXEpTQldEUEZGW1VOKCdrNUQnOVM3Iys7a1dxLDgmI1hEaTFBcSNpT0NwLl1AKkQKLSNTLUQzLjVYOm8wJC1lSzMlUSVjMVBecW82S24/Z0NLZmZpajYiLWs6N0U0SiR0LD47Kll0ZT0obFkuRGZtTGVwCi03QUpsNTZYZDRTNVY3YiY2KUNoUCNoIVY9Kl5nNihSP2k9IVY/N1tmJ1NXNkpATUIhXiI7OnNUOmklIVNfOWUsYQotJCxUTj8uMT0jPmJUSWMtIUoiJyNNTG5hWSg6JDVhZzZhU19UUzEiPEstVGU/S0U7dXMrYmE/LDVWYGBtVFlfNk0KLURyQm44TmU9PllUOHFyJmtnUEVBPlIyOFIwTFJjR19cLnAlJEglRnI1N2lDP1ROKGBAIVhRZSNeV2InXChjNmwsCi1fRTxpdCw/WkE5O2YmP2o6KHIkOiJOLTRINW5RYWZqQW4rVlokOFBUWlU4RWEyQFE4WlNpQC5SRS9sN0oiKS1PSAotJV5bTTIpRjNuYi9ORDJqQ2NFRCxvPkoqNiNjIz5SMyJDbyUzXSU2aUU2J3ErbzInSEg4XnUhcjlAZj9LQUZTJ1IKLWJydWdLSz9YcmNOJEYjKCg1RHBqTS04TEhYZCpHNVErMUkzY1MockdjNCVUXWNRUGU5MiZmTVIsPDNoKGQzR0UvCi0sO2VfPGpdPjBCPy5Db2g4UjgjcWNaQUhtTWk9ZGpmKShEX3B0ZGVsLEBWIT0lWkBqQDBbJ2p1XC5oMTk6dFJCKAotMEhiQlE8XT0+MjNeRDtFXFBWM0E8O2UmZ1w1NUY8JSY5S1gxIlw8MlRKZDpUNDc9S1QoMW5xKiMhblZqTWNZdU8KLUUjMGRwMFp0SFc6XEooZGpuXTBrLm01SkEiO21nXD1zQWJHYUk0VDpdJy9JQW1LUCtkOjY2ZFxOIXRLPGI1OUs6Ci0uPS1mMFdNVSNnWEsmLF5cM0x1IkpUS0s8NE85W2E8PUdZPk1BQ3E0VFBuPyg0NzdaJmp0akJLZlVzPn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTcxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjExIDYxIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTcyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMSAwIFIgCi0vUmVzb3VyY2VzIDE4MyAwIFIgCi0vQ29udGVudHMgMTgyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTgxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE3MyAwIG9iagotPDwgCi0vRCBbIDE3MiAwIFIgL1hZWiBudWxsIDg0NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc0IDAgb2JqCi08PCAKLS9EIFsgMTcyIDAgUiAvWFlaIG51bGwgNzk5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzUgMCBvYmoKLTw8IAotL0QgWyAxNzIgMCBSIC9YWVogbnVsbCA0NTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NiAwIG9iagotPDwgCi0vRCBbIDE3MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NyAwIG9iagotPDwgCi0vRCBbIDE3MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3OCAwIG9iagotPDwgCi0vRCBbIDE3MiAwIFIgL1hZWiBudWxsIDQ0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc5IDAgb2JqCi08PCAKLS9EIFsgMTcyIDAgUiAvWFlaIG51bGwgMzkyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODAgMCBvYmoKLTw8IAotL0QgWyAxNzIgMCBSIC9YWVogbnVsbCAzMTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MSAwIG9iagotPDwgCi0vUCAxNzIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjkgMCBSIAotL04gMTg5IDAgUiAKLT4+IAotZW5kb2JqCi0xODIgMCBvYmoKLTw8IC9MZW5ndGggMzM1NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUovZ2tNJkhTW24hdXFSaSw+a3UnNVc9RlIlUnM5Lz5YMzAyT0dcUzlHbzE5PUplXF5AMG49akssb0ZjL0BuOmsoCi09QiUyMkE+WFVuP3BIQGlQZj8jbDNRc2BXLy1BPEIhRC0sOyUzaWc3MHBwYT41OVowM0FDV2AmaEtDZ3IlUm44cgotaS4+QW1Ta1doZ1JHQExjNidAS0FGb25Bb0tNc0NhOEUnXU1iZlhzdSZeSTg7K2RTJFZVazwmTzgyTU0pK0dON1gKLSZFb1diMDIuQjxMQFBdRTdTZCFLQUIrMypvWXVaOVVmK0sxZ21wYyc7ajlsWiZtRTdoXDIyRldNQGhYIUtaQVA6Ci1CUS1kLS8wJi4rS3VAdE4uJjokJClUXkN1XHBWMV5AUF0iSUFia1U8azYiQjw7bU1RPUFuKUIuTzZeUyhnQSU9WgotVEdFTGtlWmYrXUREQ1xKJEE7ImA+NC1HZ1MnQkBeRTVZaWkkKTdkZTBvWjI2QS9kYmxMaU9LSm1dbmE2THU8I2sKLSxxPEQnLXArNDIuJTFcVEBkNlFAMmlLLyRmSUh1YT5gWWEqV2o3RDdPWVQqWSFNWicsaGx1SD4qZi4pKDFJYFRNCi0vTUxlW1VwOWJeKDptNHU1Nmg0bF9PRFQuQmNNZkxhQGBgWihiSTFtW00xVy45N0BRYFhmSD1STWtabC9oKFdeSwotJkUtK2guaiFiQE5iVDFEYEdGOytUZlQ3Vzc1YztGRVpVZCtfNV1dJmIyUHRJM1kjJzdFImljQStSMVxBTzMkLTIKLTlOKi9FaTM/M1IqOTUuWTtuKls7TmJTaDpgRFM1MDNrJiFjUDl1ckVsRFQ7LDsmaTdLIzBgVjwnSjljViRELl9NCi0hOWNBJGonWSwuJUhFTzgzUzElMWRQaFRuITkkOGZAc0dwTSUmN0x1KEsobmI4ZiNAXVF1JiwnSlVndUI8IXIzUAotLnVDXEQlNShhbUpCQlUrLDMkKk8kdEJScTJAaFJuMyMiVU1Xb2MuaSgpWUlYTllbPWs/PD5cXUtKPixpQCopcDMKLTJFOXA0W2FdIVcxNSNdRz82UCMyPydUInVqKjhqMCRvWDI0NCxrSlwkOElQI0JcTkRnV3JRPnUyc0spWiMpME1ZCi1ea0FoX0NwI2RXQSEjK3U7NzhfVDJATUsvbDdlMVcuWFg4KEUlJlNxJENAdSsnRlxKXXJbOURxWVgsIkJKSDI/Kgotak5sMVgmLi5BTjYnTWtbXnJsXT1HaWQ+Jk5ZVm9iVTVrUztWMGlDXmVTaFNKRm1YWyI5SltOYSdkY3VWQzU2RlcKLVxDcldyR1wvSWNoIl5TL1EjWVBxY1xgLitFNz9oLSw3VTkmQ1JnKkpRMDosJExjbmw6O0xDKSMpQ1JvJUYjN2FxCi0/XTpgY2wqVSRAaSk/b0w9NjxgJ249YlAnYC5cOzRoRSJlOShRXlRCaC9NOC5tRl9GXzQyNXFdYlc2NycoR0ZDbgotKkQ1ZUA9YVolVUZjTU9fPy8mZl8jRWA7RihkUVEoPUYhWGpATGNeTmMnQSg/RGgjVzlfMzxyaV8qRGdJVHFGNXMKLTJha1xncV1RRU8zUiJSOmdqWGxrWXM3T1hYZTMpTFpzIVA2RHNiJ2hdKF9qPTpYXiMrTk9VYSFHJ3EzXWdAR0ZYCi0walAhNmFyNDpvLW5oNkVlY3E1WVsyXUddR1FqckU2UkY1ZyIwJEhmOW9WRmhwKiwiQzBRKD9dWicuI0M3MCsvaQotNHEuT0hNOEEzPnFhMm0lRGk2MUVfS0cuQSlPcmNiLnBadG5aRm1ZTzE0T2ZgbDBPVnFKZjchO2EnTUVjJi9XbkUKLSladEVPQ1RBS2xZcz44clFTTWJSV1xvJSVpLnI6UDEmKnQtRDwoaThoRzhcbjFCdWQxK0xGVT06UCpZcjs5bUI0Ci0zVFlrW1E0ITs/LnBcTUVMMU04KEpoKSkpKT46OyMoPThGZ0c+JDExJTVeU0xgPmkobUI/U0RuWS9gPSdAM0tmQAotOFNuTV5pN10yVCwpbmZUcGI+LC9LVjtAKUZbJ24hLUYkTUImcV8vIkxHOClvU3UnQk5KT0lYRkJFXEd1UDdbdCUKLWtYL2tdaktBWT5McDRkc2xAWSVrMyFXVC5bKHVsNkFCWE4yNWonPTFUU2VAZGlTQkFmODRhRFFdM1NzK1JRZUtxCi1KZGc+TiEuNjpTY2EicyQqUyhVWEJOLVBiTDRKUjs+MihRcjYuLlxNQColX2YkMytRRiFXYXFpKm5PWSVqYlo6Sgotbyo0P2dhb2NVKERKQllCK0BfNStrMGZCXUxhXEEjIzk9PkUqMEhDbSMlIzJZIy87VDUiKElCQDE3LVMnWSRkNVEKLSVFbjYhXzc8YkhqYS5HNUNkQ05dTCssT0s2XiZuQVJHMEpUVDBvJEhoYDo6Vi51JG1pVGNDXVdOZk1VTGNIIlRMCi0+P2JfTG8tKDhrXD9bKHE5SEJtbyQ1cUY4T1cvKk8zTiRgRkcjYkwjWjcyaFtAOj42VjAmVTdMPzouOzAkUWInWgotQE5mIykkbmVbMlo2aWJSOEY1WS9Mbl87Wy5HNDRacD8kLk49Rm1gNkwuOTE1PF1iSmAlSDtzQCE3X1dzSFpaOWwKLUM8bHUpYSQkM2BCNE0lW2NOPzclQyltYSMlUkk2NFQ9TSI8ZWItMU1iPGlBX2ZWX0g9JyVUNE5RIzhccUAvbkBcCi09K0g1OjJEazIwY2BGZCNTV1ZQW2EsJ0NpUkg3MUBYMTwoNEApPG0jJGpEaG4vSDwiVnA5JVJtOG44YGxbJ3BcNwotaGM5PzAxX1BvTGIlVClpNislO3AnQ3NxYy5mZ15MWjI3WWlvdWpgOiokKCtUMkBjJVhaVE5KPCR0bEMwRVMpPzkKLWRjREdnXy5ZRV1NMFwvOC41LWZORidzaytUJGpiNSkvOThmMmddQEROJXFCUCFhTVAqLWQqSmsvNl0oK19CPEVNCi1uYEdBN0xvMyRRYW5vNFgsJF9vXSRAXW02W1dgPmwrR09ORG1IK2pzQiMpQWc1Uj04JkFvKFdaK2QvbGxYVGZYaQotI3NRIiZjKW9fY2I8JUc4Ry43JCpxY3QvVzpLU2dZRzJcajFbVlg4KiwxU1lMSllZIyIoQmphYnBhRGBjL2RhR04KLWNJLUZXYjclPVNJOUdLQzpUT1NBPik9Q1hVSyNUTScyazJRLi5sVnVkXHJZajNoZVppSkVydURMby9ZSGElcCluCi0pNihUaFwuKzxzRGM2a1ZfOF9fXzlGZWE2THUyU2hGRVhPPU1RLnMwSGxGUVEzMmxPW0c+ZnViOilcXkxXc1JFNgotIzY8WnUuZzlJS0pPRyFFSD50T3A3R28oaVM5VyomL2YmPDUwL0BFTVxVM2JoaGE8UGZcNG5eKjE/ZUVmLVI9WU0KLSFHVWooPmBBQjxgKGxyL3JHZSlKXVg8P0FjbEU0XUUhSllAKFBkSFUkXEtBSFQjJCg6IXBaZCs2JFJqSFRuR1FcCi0hOmdOTGYndTREUjJbLCZFZ2xgalZWXD10Tzk5IWZhMSRYazw2JmRSRFFXQjdfMnBLWGdcQkVlUDFSai1NaGxscQotcmRHckY7NWYqU2EzaS1AZ0dHZ2lvSFtEYkNzdURNNGMrb2VsamdRUl80ODMqZ0c+Pk8ySm5ScU8+SFkjOy03Q0QKLTRVJGVSJVBvKGdjJTJ1Y2AtK2E1aTRSU0JtQFQvTyhRbUFHamBKaCQoaSxgYCRiQSVnRjlqdEZOZU1vTGVUXVdPCi02LztxcGlXNTUuXU04bUIoISFmbk1cMylPI04iWDInI24hKSdgQTkqNnIwRGZMb21iZk1zYyo3YGVwM0o0bzZaaAotKmVQaV0+WEEjRDVndSM1MDtIYi1KJ21GIWwrLUVCSUxHPjtAS2xdQFU/TVQ8PlhDWUlnZSImL21TbjlpLCE9X0IKLV1cXWFiMGhwTlhEUkEzZyJRJURnOGwhZT1OVl5SR2F0KD9bWylRWCwhM3ViTkVYInJEJV03TyFtdE07OWkhYCkiCi1CPz9UcDhaSF0hKDRHP2NKNTlNJkFWUDdaK0tHYEhCYVAydENTRzgmbVk2NyhqQ1hlX0wzaEAkcjAxXkZQYzdEMAotSyVwTTBrJSciZlx1N0dCJiNyVj9ZVSRFWmxMNTtcVU4vTjU+aTAlYzRpP0BZN1ZyIWEtbiVTJEYoIiY7TC9KSz0KLUpFSiVba0FULVE6XDdQJ3B0VUxYZ3M/JnRjREZUTjVWbkcqITxoYVwwR05pVyh1R0hPNHA+PiwhYjFOPmdzO3Q4Ci1vb040KTdZTSNkbHNcckpAOmpiPyw0JyNWalMhQWBFbGVHYzdGaG5UW1pJVTA+dCNVK1ZYamBtO0VtVTVaIjhzYwotK011WEo+bVNiL1swYWNlQClUOV5PSTwhLiwjMDJfTS5ndVJiYiEmQG4tMkBXLygtQEMhV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTgzIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTg0IDAgb2JqCi08PCAKLS9UeXBlIC9Gb250IAotL1N1YnR5cGUgL1R5cGUxIAotL05hbWUgL0YxNSAKLS9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAKLS9CYXNlRm9udCAvQ291cmllciAKLT4+IAotZW5kb2JqCi0xODUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExIDAgUiAKLS9SZXNvdXJjZXMgMTkxIDAgUiAKLS9Db250ZW50cyAxOTAgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxODkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTg2IDAgb2JqCi08PCAKLS9EIFsgMTg1IDAgUiAvWFlaIG51bGwgODUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODcgMCBvYmoKLTw8IAotL0QgWyAxODUgMCBSIC9YWVogbnVsbCA0NTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4OCAwIG9iagotPDwgCi0vRCBbIDE4NSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4OSAwIG9iagotPDwgCi0vUCAxODUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxODEgMCBSIAotL04gMTk5IDAgUiAKLT4+IAotZW5kb2JqCi0xOTAgMCBvYmoKLTw8IC9MZW5ndGggMzc0NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUovZ2tNJkhTW24hdXFSaSw+a3UnNVc9RlIlUnM5Lz5YMzAyT0dcUzlHbzE5PUplXF5AMG49akssb0ZjMCIqZihLCi1CSFNjRDYqYUVPQT9bMG1PaWgvVyFNJjlwLCppOChKSDJMRUMnS2YxQUppWC80ITBSKmpZQ1NJOVEqJDROPF5aZAotU1RcRXNSU0JbbldUPG8sNkJbVEJGI2VnLkwvVFVjOEUnXU1iZlhzdU9qOWhmK2RTKllWI3QrJTgyTU0pK0dON1gKLSZFb1diMDI3SD1WM01vRTtHZWheYVtZamRyPTRgVVVzZWZHZ21sNlgtYFk9cTxOPi8sQG1fWTRiZjE7OnFhI2VMCi1fLWw6PzlKLlFKTSsmVzlMdDUlaFZUUzBSQGhIc3EzTm8vYW9IO2sjKDd1YDE8O0JFaFc2UlYxWGstJGZkNlFgZgotL0ssKSFKY1RRP0EkLDlkI2FAKlBndWA8MFMicCxFTHAwLGtOJEZHKDFeIWlARCNaTUhhRFU1ci40QzJcVmguZ0YKLTIqMW9PNWEkdHQhNEZNVVVFVG91IU1Raj5YRzAjXTUrKVZUZE4wO3BXOywhTE1KTnE3aF9AWlspV0EmNDBRUU0qCi05Sl9vZFxXNlFZUjV1cTM3LWQ/P2loVjdKa14nSE0rWUo6czBiKjBBa1JcNVY1Z2w5YVVCb1g5TiREak1OTmQ5YwotJkR0TFEnLUFKWm5gWEc2M0NrRC5RRE8jJTUvOV9TRV1rXWtGK1VFRC5jQ0FEKiFXKlVDYD1bW0dbVUxyLnJcPDcKLTkyYWlhMEZgUjVjbk1CWCZCWmNDNmIpMjZOZT0vZksialsrIiMsXmUvTGlqMyYxIlA6S0ZAIzI8PVJ1PWdKMUIkCi1HZyReTyRdbVlLJHRCUy5dKiYxMC8yNVJScHQ0OjBETltVLV4kWGcocSdLTmhANDNfI0JYU1VJSz4+WCViSlBXYQotQShgYVdkUGhUbiE5W1Z0Sz1oNyJbdC10Vi9EMTpZSVEuZXNHaVVhbjIyTCpETmpaQ1E7JS8ickA3WiVhbShZNi0KLSguQ1ZMTldaIykzWHRiQV4rbisvZWYkRz82S2s/byFNWjVlQzw/aFdXNCx1UV51LXUsR2BZM3M9LFZ0IUU3MlhPCi0vUGxRYyRoXUtdQGtHWlc+c2lraT1rJl1KamBoIkhPUUpUL3BJTzg8aEJSOWE8L21aRSRtSW5baSs8aTJaRnMwZQotZWI7bmc0XVZaVUs7YEs3cC0iTEo9V2g5OmpULlg8Ll9qTyFrOk5FMzdISUtVVVBlZVZOM3BTJFRQKGJnT2RjY2UKLVNyVG4rJiwoIjZAczs1ViY5JCkmP25kNjkwWyNzRENWS0lbbCdGZkMvUjkzYS9pai50PzowalcxaVYvKk44bT0vCi0yXCM+bDI5QlQjWmdoSl9aRypbYEw8SU48MVlIOFpDKExjKDdWUT9BJ3M2WVZOLThKajFMSVhscWo6Q1ctPDZAQAotNkp0YFg5UT84QF9tKFY7ZGA0PjJlOTh0PS5IP1lhIyFtbTQzbG1Nc1ZYIitZa00iKikkR3Ejc0pVbjpnbFlQNGEKLXA8XklCV1Y5QFhjLicjaVZPOmQ4QkpHQENvVUtSZFQ4Pmk6SU9QVSIpPFxtOStMQ0VlIkcmZk9eaE8+W19NMW5sCi1GW19JWmkzbmtzI1twPiZMNS5KRl5mTD8tP0VNRjRZaDBHZShIWSotbTRGcVs1WDs2NCImM0kqZ3RGVSlMXy5DSQotNk5wbCEmMmErUSlvRlhVJG5ZSjZMPzxzTGkrbS5PTWNnV0RRKyU4PjQlKkRUVitgMVNkLDg6bWlhclhmOlUoYiQKLW5PIz9GJS5OQnVUSyRbWyhQNlEvJW4tRiQhOmxGT2FvNW4nNWVEY2okam86ZjJbJzNiJ1NCNHM7JSlUMCRtREhICi1YcnU8XyIxVy5OWiVeYDY1W148ak1hITI8XWo4PTtiL09OV0cnJFVANFtZUCltMVImckVqNUxeLTVkQDg/Jk0hTAotbVVlJm1ec1thNSFyWSROYiJYTDJxJTs/KD5BTDZAM20+WFtsQzJPSCJwISUhW2gsKEs+J11sUTVfKFZGTC90NSUKLWoyWS9WQVJDZS5mR1BsMDZfJl9kOyRRKEtJVFcnU1EsJXVUInJSJjBnVmdaVkVwc2prOnI0Kj0xRS1kWXEoMCIuCi1bamBaSkFkJjRrZSRCZDpXWXInK049PmtDMGlgbkcnJ2k0bi85IV9tJjdQdG5dRkhrK2JxbCtzLU1lPXRsVDZjMAotV2tTX0FCJk1yQzpCc2RiXlQocz4rN1ktayNqcV9GSj1ja1szYVFXPCtUKj1aWW1ja2NAP2QiWW5ZOFYhOUA6VW0KLUsoJjRnVE5ccyYlalVkJTBTJksrLl8sak8hRXFZTypDUTIhYVohWFtPQilraWkzXXNLazFSbkRAT0tsMTNdP0w6Ci1mTzkyZ0pZZT5iQlQ0KE5GQSxUNmRPUjBrRkMvTUMwNidiUF1KQl5XIiIobzEiZ19zSFo/VGNdPEE3bUxicVguQAotQz80NVFMaDA1W1NnPkw1X2Q6Tyk1Jy0nbTQkLVElY2ldYWYkdDYkRSMhKzs/a05vNVlUdEUsYzxEcD1Ob3MxdFUKLVdEcy47K1cwK21TbSxXXnI2M24uXyxyYjlFUVtdKzApTHNGU0o/bG0hSykoUi4xSUkzZTNQX0xiaEBoLnI+SForCi1FdCowLk0pdHJRUTcoMGlaUnJfJVtpOFVoLDNuMGpRUiJGPjFwLlpuVS9tZUUuUlVkOWRpJ2MzW3BsWGtSZlxlQwotOGVwOSZFUUA9ZihNVzRSRGdHRW85cj9EdVFNPTZDLlxWXGFjS0NNOjQ6Mm5UQmppa2UyR2FhT0BVQjErSHFCYXMKLVMtM191aG9rQWFuK05xLzFrdT1AZVJWNjMkRWQ+PkJsbHEwZ01sQFpURVo/TT9TTydYU2RwVV1mRU9FMFA5aGQjCi1ZRl9oblV0U2VBKkYvazdgNVE4NUZUJ1Y0QjI+cSstTlg5WyVSSG0/WGcjU2RoOTg6T2VWJC1xM0dpbSJsZUc5QgotLyZ0dHVLcmtHIkEuaHVhI0lvPzhRSU9fL0dqKGY3TzRSNlthZ3BjVUNVdDlGbHA0VXMzNDllWjR0VzZsNkFbS2YKLV9BaDkuVy9AUWYyP3JqKiohOFZVOiVZJSs3ZU1UdUZabWQkbm83OiUtOSk4YG1LbE1EajtOVlJxVmsvXiU+ZTFRCi05c2E/SE1lcSt1InRaMVBpQ3AyaD1tYHRkbmpaM3RLJ3MyJVUmTlBmVG1sREZfZi5zay9bbTo6aEErQ1NEbTAlLQotLWZMTzNfdFEjIWhDck5tV2tsO2FNYD8pZ046Ok90QUxnYTMsNGt0YFtqVWRMIV1jJTNoUEZLSExbO0VzNGB0dFEKLTInYjFnTS1qXyJCWEcnT0RWb0pZJV9IKC1dTUkpLy9IbGhHZGBEPy8iPWdpREpzPnMlLGY2UUpGJzpaLCQvLHBdCi1fbUBbRzxjblVlU1NKPC82XjBsJTZeTypGV1RHLCI5NTsjUlZBM2pQLVBRcEJlInBMOl1sPD8jUmE7SiJHJ1xrIwotPTtqTyRAYnEzdXFALkw0aiI7ZElGZidQcj02ZFZMNllkIi1HYlMyUyZcVztsOnVLJjdBVVNtUDwmMUxTO1NlWVgKLUVVTDEmMWtySzJGSmRCI1BuOmNEOGRSUi9qQ0pXKFM0Iys6JkNFaFwhKClUOk04UChpTlo0SWRCRl5gOUB0Rl1mCi1vMF1NViQsTkg8J0NfNmEwX0M3NStdOnFTRTcsW2shKFNbLi5oM2tUN3FObGZSPTgrKytLVzpaI1FmLUI1OmVLOAotQCJuNlkzOiEhUDFnc0VHLj5IMU9LW2toQ2MlSzNNT3JNOztncVouM0VOLG4lVUdvTnIiOlhxODtPR0NXITIqSHUKLTRxKT5rcGsoPSokXUdPVVIhNUd0PFdLLS9ec1szbiddWydvUD0sXDJpNkl0VyNtJGItMDtnTDkkOW1IIVIoKDQhCi0/ajZhdDdbUUNrOl50TjleTTEoJmBOaWZGOjh0KiEjc2Q+ViI3dXEyIydKa0ZfIUAtaUJyWW0hSUwmQT8lJ000UAotRCYyVyYqcypcUlI0QSU/WVVpRVA1X3VUSSIsUG0nbjBHITFYUmNfOyJwO040NWB1OTdISClnM3AhNTIoInJkUScKLTRJJj9DI1tsIlhtc1BFKW0wLTNobjtxYmRMJ0hNNEpART1LaVwvYCUtLjcnTFxkW2VlI2ppbyxhKlE5JD5nNy10Ci1MJ0dPJUUzXXQ4LjEtU1pyZkEkLS5FOWhsNjRUck9MQDVVWjVqOEtXalJrKVElOyQ7PWNhalRPakJuUl1wbjFGbQotK0FyQ0Q6bFpoXXBkTi4lXmd0RnNAS2NiZCZPOV8uV2ViT0hGOkFFL0B1XGU0YltAXj5NQFJTQTlFcUFNIThTMUoKLT85XzZUR1JzRyVraCVOMk9CYlNCKSVDIVFtZy9GaTFwZyVhJmtgIjxjaHMkMDxra1NAI2BQay4hL3ReUyMySj9TCi0jaWwlb1k/SHEwWFJELHApK2YtJVhUVjhjNEFyNDMpQ3VVLDs3ZHBLUF0iX2EjLDZSL0wlWV9VSG9uUUIpbEJROAotJiR1ZWwrWCspMEVfc3Uqa11AOVpqcD5aNT5rKD5wS2k0RlhwbWJxLikxXkJYYnQ7NzJVaDVgR2lLLXM6YEhEWUQKLVw8UDt0PkA9V0xgUWs2T21PLXFfJEFiX3MicTFkVmM+U1M2RU1cUiU6RlFfPVdzcU83b0IuYVlsQ00jZXB1NXFUCi1OP3FzQDhAMkUyXjkyREZZL2BAL25VMCNJLG9bJ2spYyxUb2sobHIpN1U1P3MiWF1DZiU2QENtOWBrcWBNKy0zPQotQWgkSFhjRVBLSExaXkUmWilIRl1MZ0dgKyNxXS1dL1lKVlBOaD07OWkoKFgsKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTkyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMSAwIFIgCi0vUmVzb3VyY2VzIDIwMSAwIFIgCi0vQ29udGVudHMgMjAwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTk5IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE5MyAwIG9iagotPDwgCi0vRCBbIDE5MiAwIFIgL1hZWiBudWxsIDg1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk0IDAgb2JqCi08PCAKLS9EIFsgMTkyIDAgUiAvWFlaIG51bGwgNTg2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTUgMCBvYmoKLTw8IAotL0QgWyAxOTIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTYgMCBvYmoKLTw8IAotL0QgWyAxOTIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTcgMCBvYmoKLTw8IAotL0QgWyAxOTIgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5OCAwIG9iagotPDwgCi0vRCBbIDE5MiAwIFIgL1hZWiBudWxsIDU5OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk5IDAgb2JqCi08PCAKLS9QIDE5MiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE4OSAwIFIgCi0vTiAyMDggMCBSIAotPj4gCi1lbmRvYmoKLTIwMCAwIG9iagotPDwgL0xlbmd0aCAyMjM1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuNlJacC8KLUUmOCtAJUE7QidTaGFDWiRjcUVhT0ZZVnQmLnFQOGQ2TjRbPCZGYktaKks9IzJdW3QjQTkrKHE8aUBzS05RLVU1Ci1FNmMtT1JFXUA4UkdATGM2KHVDbUwsbCdKbW1KVWlhV3RqLDw5QGFQOl5INV84V18rY1VzZClgLW1UXUMkNG9RTgotWW8nITMwMkBOPkxAUFkxOi89b1UlIzZQNEk9ZDtGVWYrMVsjanRIYSxjXSE1IixTVUVcUiQwOktgcWFNUikzQEoKLWtcc1dwLzAmLitLdUBGM2x0ZmlbKVReRUtccj09IUEyQWcxVkB0TlsiJTNUcW5nWU1LKEdkZSYpOTtGI2dBYXVHCi0zVTcmQks1MFYjPXVSO28yQzFbOSY/VTE7UlNEci8hNFpKUiI5TjhSMz1LQ181YUZZOUxpT0ppbV4hJVpMdTwjbwotLHE+WmctcCs0Mi4lMVxUQGQ2UUArRHA8XClgQjFtQS8/S1RRdGlhc2lNOTUwTklZXT5fNkU+OCg/LU51MUlyYEgKLUQqKjNyVV4wVmJRb1tzKjVlc2FFZTlMQzJCTTRlSVdzRXJYS1h1Y2Y6Yi5NLSNqPGxGQD8+NDxMMS5TZ1RGSmRlCi1tTjctLGtib2RnbG0lJiFcNGdGUmEycShUXGVxKiNDJ2EiRiUtdS5fXSdkXzRPJUctSW51RmYja1xNNENUbD1mZQotMTMwPGkuTGNKLjVWaWwwQCtbRHVqJS5yXUtGYy9MMltxUCNBZkQuZyNpJUk9aiIuUHVOXjY8ZSdGXnVFIz9fOUgKLVUrXDtGWU1lZEY1PlU+IShzT2o/Iz1oYl5GQUdpSERsZyNtIyFvJyEoOFcxQT9rYHJYVzhLV0VqLTxiQCVSQypZCi00SDlMbGcrXE5oUXNGMUdNKFBcKyM3OV9bIzIvXjBWZVhyRkJeLkpjSzFPb1k7VWtAaDM9UjQwPDg4XGlqWzNsaAotUUxOJFA/I3J1dC5Lcm5IOy5zLSE5ckpuNF8qRWYzW2InMHEoUUlJL3FZYz90P3BTI0pAbFdhM04zdXNBRm9mK00KLS9XPSQyamZVIWIiKEZHU2I5Sj5KMG9eZWtrLkJjI1E+O0I3XEJbJG5NTnNGcSdQTic1PmB0KUFHZmJCXl9WZTZPCi1rbmInYU1wIkleSVtLQ2ROaTRpWixDJS1hJSY0aEc6Q2A8I0N0b0RMOipYN1xnMjp0bExiSW4jSWIkQkRhdTBiZgotZ2JHSzJIJS0oKV5OQmhRM1VXWVtwUEouJV4kVWVkIUMzIy9OT1VTX0wiZ2U8Xk1fWU5WYW5tMTI5PipvPFlgU2YKLVYhamkhRVImMl81YjI0dWdQNGMjPkdGdCFkSFdPLWVZNi1XVzkoWE1UbD0vJ0RuT1lsY0BpUm9maFlNYCtPZTNaCi00LHMtRGdfQz5jSigxTGZEOi5kQFpZckpGcTI0XmAlR1xbYVMrQ3JTWHFIXGdhLT9STT9LR2tVUmtnOlcrbC4kagotWzYxQiVrXUIpK1s/My0pISFqO24ySUkkQmJXZVVwbVF0PCIlWVhtQUwxIToxNlpdMTc2LkpkdCZGY2YnJjh1LGcKLVopa0skNVQqU3NFWHNpUiIyPy89TSRTJlA9Xl1vcFA9RF41TWZUWTNKWVxyJ2s3NFBOXHRLUTZdbVlXIzVUI2BpCi1AUSoySDQwbGhHKSUkQFIlSDRaUjJHaD9waSg9MyUwLmxrNSNMKkNub0JtKVtDIWpYLWlgc2duMEVvN0IsVXBONAotYm5rRTw/Nm1KY0slVCxtIUovXU9rdW5vP0o1VEYhNjMoOUxcXHVCUzUjO204QjBgSnJwO0gmVGZUYFUtLio3LFYKLSI7JTQ9PD1DPmVDUXBRLlE7UnRqSyE4SUEtOSU4Vkwna2IlMDdRWzZyMUM5RlZjOypWQElITD5RRDM0QyIvSUUoCi0mOkxaRTxETEhgPWg1aGxcQVQ1WSpoODEvYSYkSUFqZU1JPkpcZSYtOlcxSk9UXUQ6bmUxQjAjYVp1R002c1M5WQotSktaQFM9PFUhdCxqXi42JT4vS0RoNG1zLU5RQDkoUlJcXURXLGJfK2VyY0lgRilhR14sbT9MRm9fcCpDLFMzXDUKLVw+LlExQDZfUUNMQlU2UlEsPmskSmFzUW8xOWchKD1ZTHNrLG0jSk4oZDhkMG9JNlRwWFwyOj1UKllPM0FyKzlnCi0hIV9yNFdiJixIQU0sMG5RP2RHbE87ZTxUbl1lImJPQ1NcI0koWTZfITtZI2VOQkVWNzRbOTIrMmFsY1I3XUI+bwotVjU7OEU8SGtVRF8jcjtDYV83RytVLGldXVl1O2ddYlNoNUkzP0phMVRmbjE0SmNhWlo+RT4zRjlQU1oqS0UwJCcKLUs8IzFjITRkbD89aEtfK3FET2MqaWI1KnVkXDJnKkdYMTM6blAtVVNPcSxIa1Q9Li4+LDNta2tKXVkvJFBZanEiCi0iKGBJaDhjMClSMGxYSCdOWWwsPCExN1U/b1ZMLUFNJT1dUz86V1IsLS41IkhSJ2BXKzFEcy5JWkBPTE9iWzc2KQotb3FEW21bOStAOkJuT1UmbmdeLG5oRz01dEonT2U/IzxRPXE6XVBUc0ImWTZEMFwwJlFOUkoiQkMqTmNhW2hnTW4KLUl0cy1pLm9VKCEqMjUsdF0sLlNlYCtfXGltV3RPdDkqUGtsbEVnZ0dGQ1RUWVI4Xm9wXnIrTSNXZW5sdGA0ZTAoCi1XZy10MkdYZ11wZT5XO3FjQCw+UCU/P2M9ZUI4Y2JYQTA4cVhfakRfcGc6LWwqaScuS0AqXEtVSipPLWNWZl9ZUAotNGtcbTltP041KiZxTyNTX3RRcU0yKkRGbmBaVGtrVjMmTG5DUDQqRDBTViFETj4vRlpZaUdvfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMDEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMDIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExIDAgUiAKLS9SZXNvdXJjZXMgMjEwIDAgUiAKLS9Db250ZW50cyAyMDkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDggMCBSIF0gCi0+PiAKLWVuZG9iagotMjAzIDAgb2JqCi08PCAKLS9EIFsgMjAyIDAgUiAvWFlaIG51bGwgODIzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDQgMCBvYmoKLTw8IAotL0QgWyAyMDIgMCBSIC9YWVogbnVsbCA3MTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNSAwIG9iagotPDwgCi0vRCBbIDIwMiAwIFIgL1hZWiBudWxsIDI5MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA2IDAgb2JqCi08PCAKLS9EIFsgMjAyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA3IDAgb2JqCi08PCAKLS9EIFsgMjAyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA4IDAgb2JqCi08PCAKLS9QIDIwMiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE5OSAwIFIgCi0vTiAyMTUgMCBSIAotPj4gCi1lbmRvYmoKLTIwOSAwIG9iagotPDwgL0xlbmd0aCAzMjYyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuOnJtbj4KLUJIU2NENiphRU9BP1swbU9paC9XIU0mOXAsKmk4KEpIMkxFQydLZjFBSmlYLzQhMFIqallDU0k5USokNE48XlpkCi1TVFxFc1JTQltuV1Q8byw2QltUQkYjZWcuTC9UVWM4RSddTWJmWHN1T2o5aGYrZFMqWVYjdCslODJNTSkrR043WAotJkVvV2IwMjdIPUxAUFkpOGwmSFAlQV1iRUZhZio3VVhFayUjanRIXyxjWEhfIix1Jk5cUihaTWFYNiZBYVBMR2cKLVIqTEdNSCtPJE1fKkhxX0VKdTRcJl1NXF9PX0RbSyw+Y1BKMUEqQWBnOUk0JGQ1VWg9QjApWkxPYFtvSEpZJzxaCi0+b0RnWiZ0U2cpQkpnU203QUZqX15YPygqOnMuQzJUKChOcyJpNiFzJi4sKjtqPXVWcCIwMkhXK2luW0NdNGZuagotLEN1aVBQYz4wZFReSW1lVTFjZURNbEEsR2lAcHQzZF1BMGhFXiNscVdtVnEsNzRAcmAjKVs6K01TbFxJSDZVQT4KLU4/RjAiXUVvUCJlOlxHUldmT0tDSGE7IVAlMyl1JmE8NTtSYksrRy41VDlwbWZPUGdFLj9MdFAySm9CamllN2lSCi1FbyIzdThAZzhXOicxXlwwYi1UcGpnIjVtQE1rbS5TRkhiVGRTJis7MyJHNDQ0MihgWmRsZ08yODgmdTMrZVc1NwotIy9Rc0UoSkFmNkwpQGNeWyxFIjgxJCVYZFRlO2NIbnQ7Mz1RVj5iIjIrMzR0SloqQ2VbPkVxTC51YVc6a15vX3UKLUsmZSQmMU9PMSYwcEFCJFZeJ1dLbWlrbSYvPEszRjo9RFB0OCdaYilBJ1wuYiYva2MzRStnMTYvVm1kTjs8cXVSCi1cPzk9NklQP0VXKWZARWEkZz9xNE5JdUs2Mk40YzI1V1RBN0doSUdwW0NGcEVORk9HZTF0TF07aERyP0cmRDs1NgotITxELG1OKzV1QjRHM2VMcCwzPjEicTNTcmoiVGVJTmFpcGUxbGAkdGdiWFRjQCk9aStYbmtYKl45MCV1cjdnMVwKLUAjcDInRk05UGtVQm8xaCU1Ikc8MFQ6NWttUGZlIyhnXEE+QDl0Y045T1lsXjFRRmcuZyxYbCciKGkqTSIqIU5kCi0lViVyYzJGKUU4YkIpSmFHaFArZDMqPjlrPG5HJWRVQmwnV2F0YCFdWE8mbTlGJl5jck1MZVo8RShjTjNeUW1oKAotVF4iT1VRZi0iRVRXUClRM2MlKF5cL0MjZU9Ob2BvVUciOGYsMygpb15APTZSTTUmcktHOUFcVicuMjg6Tk1DOTgKLSY3ZGRCOTsoQWE8X289TXBfX2kiJVxrQFQyOWljRSJyS2xLYTtaZiwhPEFlKW0lLzFmYXU/T0gmPT8uNFw1Qm5TCi00Iy8rXEtgYHFLMiJlR0dOJlBHa09OOTlMaUwiRjlmJEVvOkw1X25IYycpXVhYamspTks2QiRKJiw6Jk9fOW1TNgotO1otJikiK2stWGA7PmtZOmBXMzhWLi1OM04zN14hKW9JYlFIKiU4UCM5Xzc8KT9La0QkaUUlT2NwN1lfISxaQyQKLUk9WDg7U2YrImpNXzwnW2F0QD0/KUkkPFslM15eXzBoKSlXPTtxRU9tJ1AtUEBhYFBRNk9AMTwqSG8jJy9mZDttCi1AUDcvQShkWiUscF9YXD4/XU8rJjQ5c0haXyNRTjdhZ0NvPUBONWJROUM+QUFqWSk+J0E6KS1jMEVxY0gnRWZnNAotbzJzYGZBKnVlcl89cGU/KzA1LV1YamY8bzxpNEROXDFXX09aJ1pYSyhlYy9eLiNsV2szQ2M/MShnQ0pmT0tYMG4KLVlDUGdYPkBfLGZubUZGRVZyNkZkWkw7Kk1jJEcuOidgb0Y1RDJtSykzMEtabVFxUCVaMmYkKz0wanI5RWg4SEw4Ci1vIz02bzNHVFZOSjEqW2VDL0dZcVdaMisvM3QqWS0jWHBfVCNHRDZjSmBsX1wiW0xXRSIjTGh0JihSXlE9JC1oJQotJz8rb2diIj48QE9xXCJGKi51WiwhWENdbSQ2LSctJHInYGFadEhRaGgvY1AxYDtENV5cIWxcZSxAQ25DVS4qOXQKLS1TNlVGYWM9V1MwPSRHLyk6MW9uQSRCQmtdQ2poKVJVXSpAOVJXWzIoPmhHIV1PNXFXblhpLyUpYG0rNG0/blY6Ci1KNE1TYWRvcS1oVE1FSmddLiIwIyhUOydYaVQpXHNWOmUuSScpNj1vKCsjPSQyI2ouX1pPXDRtYE5jKW4jOW9qMQotSkoiMUEhWFRkaFVrKGxDXzUmaUFINTpqQmpDYCdbNFQlPVFAbWhcYj91OiNhS0tSdGQ8RicwSEonREZrYU9uYT0KLVVJcFpNL0Nocyg/ci5SVydnSEsiLW9uYDRmWGRQVy8+VmUrPGtpWygqUSg2ODAkWlgtNzQ8NnFBYEsibS9sP2QyCi1lZzpZKVw3JmoqMlRDS25IIjgzUGRYWm4zN0MpZEBiaE8sV0d0RUk4MidDZFJSXyQiY04vQi86QV9DUiQqTj87PwotVEpFc2thJWZvXSJxRkFwRjItcStYXyRVUj9CM0dCLnNPblJnc104UWNAIzk+SkVfKktgQGxKb2pYITxIcUw6amwKLURKTENwMmM9OSYpbTImckw4PWduZ19MZ0ZfW0kwY1hhVSIoImBBbWNgOGIuZHJoIVNmQDRBPzhNLHBQUmRVJmVjCi05LmVrL0E5LmhNMD11T3VEP0YlSCReaCUmKCUxKS1xWHBoSSlVXFpuV25aMEMtQD83JSIsODsoWG1wM0UlNi9CQgotaCRcWE0rNnNkU0ZbIk1QI1NhY0xPY3QmVVU9KTRvbWdebXIxM3A8ZloiMnRxSmY1KGciViQ/TTZVclgzPl9WK1QKLTlJXSw+NmtLMjJMaEA1V1AoZ1UiYUZOKjwzT0ZjNCwuSmIhYnM/bWphYHBLNys/TklzZjVnQGU6NiNFQCQqKVJZCi01W2MmIVJtST9WaUcnMlIkKnUkcjJPZnBERFhRLktkNUc/IzdBRlQ9RiI5Zi4xOUJCT0NsbHBiRjZzMiYjLD03UQotLXVDJjc/JSkqWjMqUjdxcjBrcCJbNE1ebVp1dSVtWFtRMyElJj5ZXmprNj9sNnM/RilvK2owPDJXbzM4N28rQUAKLW9uSStxVUZIJzVMOS1zQUxBWWFwNXRQMl8jUnVcQkdMZFc2Ri5XWjpoXG5LaypNUVozLilpUm4qb1shRl9YN29GCi1kOT9lYGVKbVQjWWQzMGsuYHIhM100VFk8XUsnRFlqYUdpL0RUSFZAXTpSVlNOMz9KR2tfbUE2ZlFuUW1MQmJLPwotcEFAalJRcFUndSZGQCxgWnBaPl1SbG5MP2giK19BOzJUUTBXPFpMUzFnKWpBJSNXX1sxOmE4JzpadWtHZjM1RzcKLTJMPnBkZSslVGloYWxkSDYkPipxciFsQ3VVQGRiYERdamY5InAhKkZmJjVgPCs9NGtcZUYiJm1Rcj9eaCM9XSwjCi1mcC8mPkhNWSUtbWFnT3BEVSgzLjRlP0hkJSdcM1tvYlo8a1JIO1dQaUouIzxHNnUpOUUrNmssVXUmO1csN2BPYgotKmZGMFcyY19wSURjYFg+ImRiQWNbZjJzOyhpSl9IImtlJChAZiJWIWAkK1wwOTM1MmxNYE9kVkwsZTxFM0xKb18KLUE1V0grN2RAKUdPSGlNRzwhKEU8cm9FOz9aRSpHTmklXEZAYF05SU5PJ0AzREMhaSJdKSglZilmcV9jJT01TTFCCi0vMEFdODxcWF9cVFshYFNlPFRNPDgpWCxLTG9SSV5QIk88Ulk7PiNRL28kOiFwVHNkc2NyPWBkNmhUKEBWQzczcQotVkA5UkBYRzVUaEFeSE8iMCduQ3NnZFxTTUw+JkVnS181a1dEQ1M/RWx1by1SMk5ZdDZRdSksJFk3T0BsM2JZVUgKLUcpakBYaWRVNi4mRj8oOG11OVUpI0xbTCZxTiRKUjJhR2ZYTFRbQjBkJ1cxPmVWS09tOHAkMSFFOkJlQT5IIVghCi1ZVkhdQnJpbycmYDVxaWROKE9TPmUwalc1NW4zVEFgbyteZnFWNylwZG1yIWtMV2owOGcqUiVTaE1hU2ZtIXNpOQotKjFSPlJaaV1aKUo7M0FYWE1aX2tDPFs7Im1rMC1EIzFHaW1GQFNtNWk1MylWKjRxLStYIXQzNGNMdWokRE1oJjQKLUsrJkJda2NnWicjZlAhTVw9aExPK3VVUGR+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIxMCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjExIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTkgMCBSIAotL1Jlc291cmNlcyAyMTcgMCBSIAotL0NvbnRlbnRzIDIxNiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIxNSAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMTIgMCBvYmoKLTw8IAotL0QgWyAyMTEgMCBSIC9YWVogbnVsbCA2MTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMyAwIG9iagotPDwgCi0vRCBbIDIxMSAwIFIgL1hZWiBudWxsIDI5NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE0IDAgb2JqCi08PCAKLS9EIFsgMjExIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE1IDAgb2JqCi08PCAKLS9QIDIxMSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIwOCAwIFIgCi0vTiAyMjUgMCBSIAotPj4gCi1lbmRvYmoKLTIxNiAwIG9iagotPDwgL0xlbmd0aCAzODY5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuQGk1IXIKLUUmOCtAJUE7QidTaGFDWiRjcUVhT0ZZVnQmLnFQOGQ2TjRbPCZGYktaKks9IzJdW3QjQTkrKHE8aUBzS05RLVU1Ci1FNmMtT1JFXUA4UkdATGM2KHVDbUwsbCdKbW1KVWlhV3RqLDw5QGFQOl5INV84V18rY1VzZClgLW1UXUMkNG9RSgotZDBPaGguaTUqUiNmQ29qYGh0MmI4cW8kZkZNX1RXVUpgTz9iYCRgcDtOYiRrJnFSdWVbOVRtRGxrRGNYXEVJcmwKLVIxPylNVHFwT19eaEU0VjMlUS4xTHJEYUAzOVtfWTIzT3AiWzVqLDtiW21yRG0tKSklJ2ZWYV1iL2gvPlM0THQzCi0+SFpUTGlkbHArSmg3bE03RjcwMWdnZlUlJ2FVJGpbR14zKSVFU1RUKGttTUBSUDlhaChzaWZ1NipwdDlMRVhgVgotbU5aRW9OV3VEVTtRO1QwVVVpXlJNNGpwWC91NTZlTHIwR0FQLWMpMWFTS0tlWChaYGwoKmhqSSlDYDE2M1ltT1YKLUxsczFLWjdmdW1PPEJSajw6JTs4JE5lYTpuZTdzUi5nVUIwKCdfVV0uKm1WS0Uqc1FpYkJVSDAlS2hlamMlUTdFCi1gJjglIUJMIjgzSkg0JU5OUGQiSyxfUTkwaEUkWEssaD1qYGlzPjRLJSd0YVQzZlhsUGo+PT9ARTZnRDk7XSdIZgotJSY0KlwyQGdyMmAlXU0pOTVNNkxfWys3O0tFSiUtMlVBQitoX0BmZ2QtKkVBIiI8WSI6YyIyMi9yRzZZZyhxRWgKLWczV11FUDBkbm5iSj9WQzdnMFctPT5tVzU4QmEzP0RlTXVMYzRlYGA8N0VkNWxGVmJkIlIla21LN01namdIYmhbCi00M29eJV9FMV4rXEMqLmJfI1ZTWCVWJ2I7MT1UOlIoSl10LSpAa3BeXyNVXzYjLC8qTSgwNVJWKUNibmprWzU2MAotISxUQSglXmRHLDxfX2ldSFs0Pk9XNTpSRyc8JyYvTkc4SU0zPFUqYkNjI1Y9T1JtcU9HODk0OTptOCFuImpSQioKLTJFPV5DckJqR1RXV140SzlaJTpiQWxiMiomVlVHamIyJWdWIiQjMig8TCZPSzZCIjhgcURMVlQrTzdXNEgqJ00zCi1BN0owVjlpPTdXTFIwW0ZhSl5wSygqdThKYmByP288KU47bDItPWFcTCxqX0dvLURSOyVDaVkiSyc6aVplQDEsRgotWWlJWnAlSlgyZFVuTVUsKTI/QixwRmtvViM0a0JGSkhsIUFuKzAzWzMsUHVJaERjIWEuKz0pZVE6PG1ARjUrZG0KLTFRRmc1IiczY09OaVJXaFA4LC5wTmU9TW80XyVuI2JXIXNbR2pfNDA+VHNAZzc0PEAqWTRBUVEvZWVcRVBOITsuCi0nJWdTKyNVKXFFVT4walhiMixCJ0JbLFFJXCcnKlRXInQxUzQkYHNES2VzOWVJWiVGXitpU1ZSY2FtPS0tKl0sOgotUE4pQC84MnQhRyk/I11HPUVtQ1MxLVksJlFpZG47SkRjWEIxXkNcPEsmQ09eNW0iUUprdEkyMlpJRShaNV0kb1oKLUJKKUd1O00+XykjdEpTWWplTURpR0tCQ2YrQ2wnM0pjYFNjO0YqKiNBcixsRD1FOC1oRUU0MzhZVCtEKT9wZkxECi0zQmcjNy8hRGcobHJqTHVHMFAuZlk0MFMxKFEuZmpXW1ttIz9zNCJqRjtcLWMlS0FfbSRNSyVPZ2ErPjluMGZFcgotVjRWSzBJN29xXlo0dGstJGhFXD02KjdhR2VaS3AiXDdMVyFnLDZQXDZLSSInXUVKZFYsb0oqUEMmc0RQImkwMTkKLTFvJTVHJyFyUjVBTDVHP0UsbEFKVW48Ty1NQThKIT5tcSxlMSwxM0opT1UsZDtyVGdjTSdTYz1LMSlDRUAsKy5BCi1QMlBQcS48XmdbIUY+ckZkSykkPWQ0M1NdPXBDY0ouUClGQGhrSlA2S2g+QEZXKz9PQSYuOidhbCw+SjdpN2VVJwotJjhZOT5ddEIpPWxGYkJKLCVRWT9jKUhFUFJqNUZURyFXUCE1aj0vKmIyPiE8LW8hOXQiOD00WkNRXG1gR1NxQWoKLThwbklOZT1jL0kxK0IyMUBIIVdzMHNLQTlTSHM/bWRMXDI9Wk1gJDouNFohPWA7YlUsJTNaQEpqTUsiNzBVI0YjCi1ZYjN0T2RhSXNxQEw5SEMyPjBTNTxha0EiLm05JnNRJ1QwZilRZCQpYEtpRihZMzc0VSktdTBQMFghYWdeSSlzTwotNmRCTC1RY0QhKGhKYiYpOzY9K2lVcDpDMF9bVDkmLjYnNEMnW0c1MkIzXSREIWtHX1kpYWYtaVNPdD5FLW1gOVgKLWohKjMqQEhCU1Y6cj1Gaj91OiRwZF9nZj0kWGouOihMdWQ9Yys2PHFjSjteTUJfQG5dO2guXVlLLGohJFZZLzZTCi0xPSJtMz4xajVOWGA6dXRtXio8J0YpQiUkNiFHXHFuV1xzSlg2SGIyYTgjZ0llJTZsQW1YNmtAKWchJSIiOGZFSgotSCtVKXRtb0BSJUc6NCEwXTdzPDRmUmxlL0RHYmk1PWEqb0k9JGNxcmMuLiJoVjIsb3BuMjpcaGlBUyFsT1tXO1QKLT5zS2tfTj4pU3NuX0RvWDMpW11VOTFoLHBVLCxEdSI9MzdEUlJFOyYvQVhuYzIiKyhyIllSIyY8XG9GJCk/WEhZCi1fVDwzUSQmXjdBTDFdb1wkXS9yIWtpdTxnOUUoIyU5Y28uUS5OX0E/KyMjKjMuJSRDJVE2Y3FnS2sxQmVUZiZETAotPWw/SVhRa005byJpcXBkNDZpO2ZJPGhzXVs8Jl9Jb2Y8ZWNEZ2NKTjJebzxaVmpoMD9JPE08NUxPPWVwaDM/VDgKLS5Ub0JVY3IwPk0oYk4naCk1VnFDRl0yQUpuTCtuZ2pMaF1ebzFdaGtPaj9jMDdkJSNyLEVwdTMpJDA6aktbQlEpCi1yLUprImpuSVBnQlYoaWpMUU83T2s7YUBUczRVdWZOXD5ROjRyOzQtX2IzJiVUdXVASjdHLGtTX2A6WypANzxfQQotW2hmaG8yNExYUjtya2E2Vm8rc1I+biFhXj9gPXQqLF5cJF1iNFBDaXE1Vm11cXI+YWpmJT9JXVhgLGhNS0ZGanEKLThOR1MmPlRbSkQ1UkwoTkFLKGtuPyVwND9EVV5TblZCVkslXiJhYT5abnNpZWw1QTlQUSVWMilaVjtxISQzUVoqCi06dVQ1WVc0Yz1xSys+KjdIRSFBZ2JjTXIoXHFmMU4oPmRYcFNEKCFSNWVIIWU6b1hgIihySGlqIjtYPlw+O2pOSAotRidEMFlnRHFzMlsza0Y2Zz9gLT5COGdrWihVZnJnMlJdI0JdVS5ddDxpUkA4ZiopN0leTUM2RWhqNFhIJEEzYHAKLVlpdCMzRmpCKDZgJlZwYGVdO01pJ3RLOlpbb2BlTUJxTlklail1LyRScjJAZ29tS2lJYTpwS2BGUEQvbjtPKjpACi0nSyM6JHFPWDUwLj06TFgnTChAKFtSKmFIJV8mKUsiKCgjLlMyKzdQJCQ7bVxHI3NqV0A9RFltL2okZFEmIzQ1SQotTidKOEFOY0JeU2JBQWJHOWhLL1hMTFUtKSdWQiw6N0dVY0ZHJ01XZ1dwZkJXUixIWi1kcTxxSy4nYWxiXktXbzIKLWUwRHFZR2BJJkYjLzEvazJhNWpWW246XW5sRWBUckw5WCEsUS5MYjBmSCFybEFfMUFRZHJjKVFXblE4bUFrSW5MCi1HMFRnNGxZYGtCbDNURFBLYysxTDJRMFEzSCQmXFxYZCYqcF9jbEpSRm1GZihCVWskQ2ZPMjAwLyU2KS4sM1c8JwotXjEvU3I+cTJBVVczbCsiV1hhUklBKW1eZ2M1LD0rYC1zITgjW2dzRT9yZEdBZW48JyklRUl0YDdtKCM5cmxuNy4KLWhJdFFqJiw4ZGZbJ1JyX2lYPEtTVmomUz4zK10iSl1rMFsmLlwocGlDZjV1YGJRdE4wTj8xbytybEpvRldwU15KCi1Vc05CUDNzI3IuJUYhPmslIU0sODdUXzhDaSdxVjc6IT8+KWdeV1onPnBcLF5jZlRbS21MQkJIJWdCbVxDTzRfIQotIy0iSEk6O0ItczpPWmNsLF1TUUI7QnV0Oyxlal9BZl1NKyoiVWp1Ji9WTXVaVCVNIzY6NVJLKiVARilncjtHb1AKLVw/M2lXOSosRl1ubC0tMzNsI00uY2lkOGlrV2wwJCZuZzQ1WHVLMWxoIkhWTWY0SGwqYGBkKiRqSyswaz0sLjkiCi1LZUFGYDE2MUM0O1shYGVFMF51YW5zbGhjIW1pWSg5dU5NVStBbG0jJXEmO3UkaFEsR3BuSypcM0pfUmhiISpaZQotPUdPXC5Vaz8lTWwlVXJlKmdrP04sUmMiRiQ6YU1ZMSs3dS4hIlg9OFlDPUUoQTJ1QjVVUE9sKjhqR3E/Q2FIL2sKLSlbbVQpbHREME1VLlQqZjh1XGE5RSlIbEMrTEJKPyJuLj5QN151RGowIVU2PS1pZC1MP3VDPmxTLWlmayhYT3BDCi1hM0pIKkM9MDc2PENfX2lga00lU0NxNz5IXWEjc1VWOGJGPzN0NzRDUlM7R29fWWVaJE9wayxII0hiO1okXW1XVgotSEk/XWZBXXAxP007b0BkVzhDQSkhXF9GYm1kTFwkaTghWTQlVko8QEArLDcxUDRjYEg1OihxLV5oaE5eMXRyRS0KLTloaGQmWTRyMnIjNXNdV11kMXRuSzRRPlooZk5tIjA/WltKIlBFOWM4ZCxBVS46aDAnYDpkTGAvNiEqQzpiR1JYCi0iT21dcDZRZSNYWmMxcEs3PlBTU1leWzYnJUlaRUAuY0JcZUg8Wkc0OVRsWTEiVGYwZi1zVDBlOiZxZC0vZysrKgotYlJPYWUwJ1ZOJ1ZjXlMlbEoxdEhyKyxJV05IMHNKPiUpQElCb0QzJi89OjhlcGVXMSkvaEldYjdHYl5saTNBPWMKLV4jXFtGNj1TK2JqPlNsVEI/K09BN1dgN0pgYi5zNjlrVHRNNjM3fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMTcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMTggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAxMSAwIFIgMjE5IDAgUiAzMjEgMCBSIDUwNCAwIFIgNjA4IDAgUiA3MDkgMCBSIDgyNyAwIFIgOTAxIDAgUiAxMDA0IDAgUiAKLTExMDYgMCBSIF0gCi0vQ291bnQgMTAwIAotL1BhcmVudCAxMTk1IDAgUiAKLT4+IAotZW5kb2JqCi0yMTkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAyMTEgMCBSIDIyMCAwIFIgMjMwIDAgUiAyNDAgMCBSIDI1MCAwIFIgMjU4IDAgUiAyNzAgMCBSIDI3OSAwIFIgMjkxIDAgUiAKLTMwMyAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMjE4IDAgUiAKLT4+IAotZW5kb2JqCi0yMjAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxOSAwIFIgCi0vUmVzb3VyY2VzIDIyNyAwIFIgCi0vQ29udGVudHMgMjI2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjI1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIyMSAwIG9iagotPDwgCi0vRCBbIDIyMCAwIFIgL1hZWiBudWxsIDU0OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjIyIDAgb2JqCi08PCAKLS9EIFsgMjIwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjIzIDAgb2JqCi08PCAKLS9EIFsgMjIwIDAgUiAvWFlaIG51bGwgODM4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMjQgMCBvYmoKLTw8IAotL0QgWyAyMjAgMCBSIC9YWVogbnVsbCAyOTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIyNSAwIG9iagotPDwgCi0vUCAyMjAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMTUgMCBSIAotL04gMjM3IDAgUiAKLT4+IAotZW5kb2JqCi0yMjYgMCBvYmoKLTw8IC9MZW5ndGggMzA0NyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUovZ2tNJkhTW24hdXFSaSw+a3UnNVc9RlIlUnM5Lz5YMzAyT0dcUzlHbzE5PUplXF5AMG49akssb0ZgbkBxXEVnCi1FJjgrQCVBO0InU2hhQ1okY3FFYU9GWVZ0Ji5xUDhkNk40WzwmRmJLWipLPSMyXVt0I0E5KyhxPGlAc0tOUS1VNQotRTZjLU9SRV1AOFJHQExjNih1Q21MLGwnSm1tSlVpYVd0aiw8OUBhUDpeSDVfOFdfK2NVc2QpYC1tVF1DJDRvUUoKLWQwT2hoLmk1KlIjZkNvamBodDJiOHF1aCxGTV9UV1VKYE8/YmAkYHA7TmIkayZxUnVlWzlUbURsa0RjWFxFSXJsCi1SMT8pTVRxcE9fXmhFNFYzJVElWiQmLTw7T1hSIy8wY0ovNUVuWyYmOmhEWj5CNkpCJyVMU11QVytCTEY5WzRucgotWS0kO2txPS1fZ0FcZi5BIyw6PFBbbDxVKidhVSRqW0deMyklRVNUVChrbU1AUlA5YWgoc2lmdTYqcHQ5TEVYYFYKLW1cPUpFTld1RFU7UTtUMFVVaV5STTRqcFgvdTU2ZUxyMEdCYUNsRnBhU0tLZVgoWmxeKDUpY3QpQ2AxNjN0VEBTCi1rX2dHRDEqTU1cbENhMEwoNzJYTSROZWE7JmVlNisxUSdCMihDJV5eLiptVktFKyMiYV5oQy5qJU0yIVIwb2kjPgotJi5mPV0pISFONiVIdVMnYGhOdCEzZkc6Q2FxK3QrQHQtSEpqJS9EPE4kLzJCMnA/bmZiMWZgWy9DUUo4NlZRPkoKLTpcMjc+M1xMUmhfRDBALXBxZiZwIjFaNEA5Z01GNCdGX0EkYXRhLjo4QGc4Vzk1JUtHXmdZKityQE9iPGhfMGU8Ci04QmshOiFDNGxBPS1ZJ0Q3RXEkPGlBNDVNWFZFci48WGVDVk5oXy1fMmleazFhOkpiSWJyW2Y4YUxLRCgkcmphZgotKD07Y2JnPidvXD1RaF1sIiVBZUROY15ySzw3USwsIk4hLy05OWdTWlhGbjs1Izs2XmVLWSIqVFkqUjA/QTxjJTcKLWxAJmJiMF9kKz1TcV9mSEJibEYwJD4yI0orXDY+ZFcya2c8Ji5HPkxfRFtEVkBmTGJhPTJdPDJaKycla0xIODNOCi1TS1wxO1F1TUVOLkBbaXA0M102PExoPnFaVVJdbjMpSGNCYVFaXVElO2o/c19GZUdMO2ZLLms2UHRWYSI5OydfKwotOlVCdWgxXnVINzxLXm5JMFprMTchWlFVZ1lKWlhbNCxoKCtYPmVKNEdfUWI8RDkwaj9AOytrN1JcWTA5MG5BRmIKLTQkQjNFQDtGMGIjOGRqLilscFcvQGY7ImRjN0k5bkpPIU5WIjlMOitaZ1xoYjpSKDZWKGRKZj5tS3VUZ0t1JyplCi1iR15YQmw3bSxFMF8tbFdjcDYjNXBDayYlKnA1PCpHTGxydUNmaFUkU1luV3REOnEyPzhkI2o3SCJxUWA/cEhaMAotYU0xZy1ac0EpZ2ZpRSVEOytaRV5YWSlYQlQwM2BFJFw6aTY0aClxckBJZV1vY3BAQkArbTRYaT9cdXU6Sl5jXCYKLSY3WTFTJjYmZyUmMkshV21mOSIpIT1jaURsVFcqXClqUGQ/SkhbPW9dVS1ZKWVZIjwkWTlFIS9rRW9uUzFTOE5YCi1eJC5bSiFrSG89aGg3KT5ucnVZaylkVjVRSUJUOyYrQldPXj9fTzNDZCpfImczIVRJa2kjaS9xSjJZNj1pPU9oKAotK0ZNT3FURm5WO0VfS1s3MSRtLUpacF1ZclJFLkJFTjpiST81VDdPTGwpODlrVHFkNV9AJFgqOjkxb0UrW1ExIXMKLTgoRmtgPXQ8PlFXTU1RcTZbM2BQV1FBcCkia1hZWiwxZl5IND5SND1naSFgKTVZYjMrVlpxODhcNmRYdDlsQydmCi1TLzI9ZSZBX1UyalJhQEMxcGZZWiRPYDM3aTlXUm85LkByKCtVUD0+OWZyKiUpNT1fPU1fKWsiWm1lOVpkWFdITAotVlJlTj1vVHBIV29OayxSMyNbRExFOXBBQCUjc1gmS1VNSkkrZStxIzxKRildWWxJcy8hTl5LLWRfWSorZixiPkYKLSdXdHAnYUcpaDhrU1c1c0JVOG9FLzBpaG1PO0lpME10KyldOjRhUUI9QmUoYDFGXGgsUE5Obi1OMyZKJmM5IT8qCi1YckozbFVDSDFRWFRtRE4kNUE9TzwoUj8wOkJDbD9Nbz82MWIidClfKD4nQTw4MyRsSE87KjxLTVMpayNmTlVZSwotMFNadFRTLmw/OlVcJ103MmFwK0U/VFZuIWwoQmpsS0U8IWBDTnU9QFtEdFNwQGd1KC9bZm07TUNxJTwyKkwmUnQKLTJzOyNHVmY5LklKWzZoKiNUdSxaViNoJFwxPTAqO05qIlZNbkdsZXA3Vi5NN0g6dDcoRiFeLE8/bm5VT1NRNzByCi06PUJRL2RAY05PWl9vV3FvK05BTGNsNF1uQiRbSSlQPlxEZVk+dGotLVw9MjIyJUNKJ1lSa00tQ15aMWMhNnBGdAotK3BgVVo/b0NVIWRFSkdiUlRkaVouV2VGSlpvV0ExPXM5KmdXUidROEpsbEVsRDYlRDIwSVdYcz1Gc0ZnLEw2Sm4KLTYwV3QpaCcqQyNHUl9pJDJsUlNSP2AvSl07ZllAaihQTTVCL2ZZNiYhMSMqLkVYNUM3RmM/U243NFQ2SGdrdTJrCi1jJDteWShFalpAOENHUj0sTlJMP1RxdS0qXzkiQXVgNSoiWUo3MnFhT2c6Q2BQU29cO2dtMTc6OyRMW1lQbk82PgotJjtkLFw2OnU/UFRbZEVbJnVacEZXRmtnYjlFS2FcSk5dI0JDQmlDREU1MDVPIj5waVRRJyhZbU5ALDhtQmV1dVwKLSx1YHRjQSJFT1hMPTIuZy5YTDthKTFPSi5bVilGOC4iIzxaR15SYloxRUxsXipRVD9cIztWYlRQNixCXlArWFxVCi0sZStYLlo1ZWpjQzA6YmwwbXVhbmJgLEg3MlUsQzFFOTRsUzVuVUNeU1c2UmBZU2s8c24saVw8SCkzISExRDEuOgotVEpwNz1VR1xdLFpfTVVQRTZpMi4vSnQkJEtRRFxoNFNWYS9PTmNNIkBVS1lnWkNYcys1XTxTNVtcRiQwSW07KHIKLSc6cz1cYnNmLTQ5LzFDI20uMSEsOTNTWWk9Uj4iImducVAoZzooOk1oLENEMkF1c0NsKEpPITJyWENQXG0qKW5mCi06bnJzS0o4allyLyVcJ2JtMzhvJzFgYFVOQiNrbGVWQ0hEaUw2S0E/NComUjs9MUMwOT89Sm0/TVddclhgUWArXQotaDY8QGNrb3BzbS1PZGlzKW5VUW9EKUpLKSg+WjcraGEpI3VDa0hzSm1gdFhFKis6XjQkbnFuZi50cW5ybDkqIVQKLXBGTjBHUk9fYjZyQHRqLWhPKXNuP109UTM6IS8hKFJTLyFES1pBQVI8amA3c0VnRG9YXEY9Iz1GYT8hcj5bW0MxCi1AWDxvTXI4I1FvYmNfbVpOLXRIcys0Vlg0cT8lQ0JkTCw/c2VORlFXRkR0bUBIQyRAIjs3VkttTiwyTEAxKDdbZwotUU9yXkU9QDZUNzFVWFpcK2Y0YlwkPDtLbyVAJk1INHVvLyMkV0VUJyJsbTszUyY/IUNiJ3VBRUtWQjlxUCZQYEIKLTQjVSErVm41QDInKkFNPlVMOyY9ImNpQlFTV0E4UitXcjY7ZCRgbnA1WD5gYyRtXkxuYyRBZyIyVCczVDM0VmRTCi1UO2JpYDNvaF8qOSM+I2dxZGRAVyhySTQzNTE+TTZtUSZJMFI0W0RMJVo+VzokbiciKi1tNC0wWlhUb1BdYm5cagotbj5LKDNeI0FWSCpycSZuL09lNCRjZWMiamFlXGdyRWlfSldHa2JmZmo3XE9zOCo9RSVWKyljbjNFMy40MDtcbVcKLWdiNlMnSHQ5YTltbU1RPTVSP0hdMCpPNztPISZMPSFxNDcySSkoUDdKRWZ0S0NxRlUkMWU1UFQwRytBaSlaY2hDCi0/I1FzN2lXOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjI3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiAvRjIwIDIyOCAwIFIgL0YyMSAyMjkgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMjggMCBvYmoKLTw8IAotL1R5cGUgL0ZvbnQgCi0vU3VidHlwZSAvVHlwZTEgCi0vTmFtZSAvRjIwIAotL0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nIAotL0Jhc2VGb250IC9IZWx2ZXRpY2EgCi0+PiAKLWVuZG9iagotMjI5IDAgb2JqCi08PCAKLS9UeXBlIC9Gb250IAotL1N1YnR5cGUgL1R5cGUxIAotL05hbWUgL0YyMSAKLS9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAKLS9CYXNlRm9udCAvSGVsdmV0aWNhLUJvbGQgCi0+PiAKLWVuZG9iagotMjMwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTkgMCBSIAotL1Jlc291cmNlcyAyMzkgMCBSIAotL0NvbnRlbnRzIDIzOCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIzNyAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMzEgMCBvYmoKLTw8IAotL0QgWyAyMzAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMzIgMCBvYmoKLTw8IAotL0QgWyAyMzAgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIzMyAwIG9iagotPDwgCi0vRCBbIDIzMCAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjM0IDAgb2JqCi08PCAKLS9EIFsgMjMwIDAgUiAvWFlaIG51bGwgNzMwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMzUgMCBvYmoKLTw8IAotL0QgWyAyMzAgMCBSIC9YWVogbnVsbCA3MTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIzNiAwIG9iagotPDwgCi0vRCBbIDIzMCAwIFIgL1hZWiBudWxsIDQxOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjM3IDAgb2JqCi08PCAKLS9QIDIzMCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIyNSAwIFIgCi0vTiAyNDcgMCBSIAotPj4gCi1lbmRvYmoKLTIzOCAwIG9iagotPDwgL0xlbmd0aCAzMzQwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuSy1AbGkKLUUmOCtAJUE7QidTaGFDWiRjcUVhT0ZZVnQmLnFQOGQ2TjRbPCZGYktaKks9IzJdW3QjQTkrKHE8aUBzS05RLVU1Ci1FNmMtT1JFXUA4UkdATGM2KHVDbUwsbCdKbW1KVWlhV3RqLDw5QGFQOl5INV84V18rY1VzZClgLW1UXUMkNG9RSgotZDBPaGguaTUqUiNoJUZrUCxnIXIlLTQxL0k9ZDtGVWYrMVspIig6MztqNWIuIix1JlJdM2d0JyNxIl0rYVBMR2cKLVIqTEdNSCtPKk9fOCwhNUVKdTRcJl1SNTVPX0RbSyx1Ti5RWzVDN0NjRWoob2Q8R0A4RGBYUjdrZ19fNzs2RlhVCi1ZLS85Kl9MW05oSU91SEk3RjcwMWdnZFBcJ2FVJGpbR14zKCVFU1RUKGttTUBSUDlhaChzaWZ1NipwdDlMRVhgVgotbUEiQUROV3VEVTtRO1Q6IjFnYVxNNGpwWC91NTZlS1luIz87UkA7RmFTS0tlWClDKyZPLFxbJ1ZVPmFkTWtIMTUKLVUhIyYiOCdcK3VjNmElRTVicystUXUpWycmI2BgaCtZVjFcKDU7ai8/bERTOj9yLkpxLEIxWFwlXWYoYTNfU00jCi1ja2RoQCJQI0A1aUhSV0BiT1oiXkpyUlo9a1JcLz5dKUwnUFRrbWpfOD9eWkIxNjJPM25Hbk4jR2o3IW1QRi5lJAotTXJWL1UxbE84IWFyUnRfbGc+V2hNMl9bKjpyQU0iMCRhJmpiVjZMbWkpKkFbSlBAaUZNTGVaXjpmLWJbOS9SMGMKLUpEL2MuPD9hJ3RmPkRIMD0wTystI2lkV2w2NmFIMU9pMkZCVFQ1SEkvMk0xXEInaEUtamRiZzFKVzZEKStIIXMiCi0pYlUzTkNgPVwmTVVdKCxQLVJFYE1kXGxMMWVyMDtuUGJCZlIoMD0oZTg0WDJOZTdiT1RFUUwrREEzQCNFMkZuNgotIVo0MFklXlBcTGhMa3VdajpvK3Q1aStQM0EnIVJgVnVtPVwxJ0E7UWpbckZlIXJYZGchdEhZOiVVako6IS9yLUYKLWFaRGEhLi1aJF0sM1lzTy9ZUXRKaWhzKUhXdVheSVY7TiVwRWBOI3FOJEhSMjM2WU8+MDh0amxkKmIhZCE8RDk7Ci1fLipoJiZTSlpPLG9wM0gpU0wyYDhIPEF1TDZATiIsS2FHUlE1bHQlKD5iREc4WVdkOUJXSE5pMCdcWGphPlFgQAotNm4lISdYQCFcV2ZrdCI6bWokUlojQi1GU1M3PGErSF9uLW09bz5wXkRaZ1xPalZUO0s5Q0hyWC5ndVYja3JdTUcKLVI5akFxSlV0ISxWRi1oYyVIdFllP2g1JVdRVGFoVGJUJWVbJ0YyRVBnW0pYZUpbXkhqMTVxdFBKVzlqOCgkZE1ICi0kaGQuRUtFSFwrKiFIYD5qWTtiZFZLKExRLExrajpZNV5RXVZNPHMhOFZnaFAjIitPTS8pXSglIXQvRkMvO3RAVgotbzZRcV0ubVA+XVRaVm1AQlQjWkMrP2knK3IzbkozIjQyb2hCTV9HMlBYYzRPUzZFc1FiOihCQCxGVlFkV0toUmAKLTguWmpVJydCbGBNYFwvOmQpKjMrNmNuT00icGA5JCpqRUwkIitZMXMrY1ZnMiMlXCc2M1FFamw3KiEvYyxgZVdyCi00WlstRyk/WFFmWz5iIz03aEojVWA/TUJhOGEtWFUtJXJgQTdIVSxYUiEvdV9TVVpDRlRaSCtbTkpVQ3MnI2A+MAotJENucFQ+JjA0ZCxaViMxTj5uTzJkK1FYXEsrZWBdMT9eTzk8I0EwJ1BbIlRZRkVZZFEzc1AzKm9nJl1MOTxrYW0KLV5rNHVVaCQ+ZiM1aWBiLGkrLypIZS9fYSIrO20qLEM/WkUoVy5MJ2UnTG5KQSoqLEZmM0BjaStfYXQoUz5wKHMuCi1rYy0xK1pbaVAxSShzYzYmbHVnPjMobFE9TGtoa0hHZkpDbSkmXE47Ilgpa0Qtbm5PLSQ3blMxMD5ZTzFNJ2hvdQotJ0UyTyIuSig1MDRUXGhMVGEiJEREQGk0Mj0oUmd1UipSNlonJXBiWSx1YnJxJyZqTUFcRV5EMidSNiRiWmxEYjEKLXI+JkdYSlg9azkoKT0+IyRqdEw+OSFfM1pidVFDOCshPkoxaVEqXi1nIy8jWl8tTlxYJUhdS1xiLkxqaixcJDUpCi1MbGJVKGZVLW8lJT10YEJMTjduVFZoQ15gYVM9OFwmOSpgbi5zKnJbZ2AtRVAxZVNFc2Q8VmUjLyNBRGJgJ1soPwotIjlBOCQ3XT1yST5XPGomUGEzR0g8dHE4PkM3QS8ua1RiZ2BWYiU/TUROMDUoUCFmRU46MSQicyU9a3RHV3VBLjMKLUM9UVB0aUpdTUIrUnJTS0JKLU5zTiZLNmBeS2kjXU1GaktlKFZddDIkZ0hfPyU9bC4vNGs5Mio5YU5NIThvXlQoCi0rQmZGMFcsbzk8QWApMGtkTVMtXENvZWJkMj9xWyJxR2tVRFRMWmBEPGlcbCNsSE5OOSg/WEdSIl88cU9IRGpUcwotZF89TFVBVEtJWTZqMHQuPm9SbCZNUVVZXSMkNUV0LXE1YG4hQCFTJi5TV089aSleOmBEOzU/aVZXYWtmI29yJ14KLS1CQDhEP25GQjErJ2UvOVRmOkRSWHJxQCssWVA2a1Y2MlUtN2QzYUJEKC1jZFdfayYyQz5XW1g4aDcsNyxiSDJ0Ci1LQjhvOyUvN0dHY3NyPV1ZTS5nSFZCZCExPXMjSmhyPWNyLVojOkF1WD9lTjwpai9GWCZ1OFFwMjV1S0tIdSpLTwotMDoyYC5fXlpeVk11KFtIZWsmXDhiYjlVXCoxMS1oMDgoZk8wdGg2bC1LT01KNS0vPVVaMnFoXUBFRVgqLXE1XSkKLTwlSnMxPk9gLDhMXmZhV0lZcEw+cypEaTk1L29QY2NGYyIlUj9VWU1IUlszJWZbLyowSkhbY1FcQDxDMWY5XkYwCi0zWTc3Q1UqMGEqMCQsPjo0JXNsOWhyJy1dJTErWCJEW2UkJClBSj9tKEhGV00vYC1OTjlYQTFxKmFYTWVJa10qOgotZ0VDLVUwPCRucjBlRV9LNE9JT2tcYUddPEIxXSUhRVowIz4xM0FuZ0t0SWEqcGBQQVlNTlMyZW88RWsmLiNANmQKLSJfPHJOJSZsY08rWmFDOmNgRW1maVMhTUdAKFQuVjk4SyFMKmJnOi9fXz1hPj8mSVVOMjs5Ij81TzImJFIsTUYvCi1HbFlCTUFETVQmKmYzPUtEcklmW2w/Ols4bTs9aytDJVEqcHMwV0syZkw7ajRbLTJkS3BuTSJ1R1BFN3EpLFAhcAotYi8jW2U4LktwZzhzUktTR29yayZPSD9Da01RcERzXF5iYGstWUNXXlg7RWtmVSlfJy5fT2JaZU0jbS08aTYrLDUKLTltbW0pSTMtRk5NTlYxVCNlaVpYR0wiXmpNcHAkPClDYFZrQUBJW281SV4oIUdVa0pwL0Q8Y1xLXkgvJDBuUzUrCi1GdWpCX2dkYmk1aDJCNEcwXjRVP01DPV1iT0Y+Pzc3TClUMzo8NWJtO0siZ1AhMipYI0BQMFJ0ZU9KaSo0aj5YTwotcHRkQiJdPnRFMmpFN2dcXlc4ZDtdXSgpLV8qQ2JuWllqWlI8PmxrWTQ0YXRCTWhgKmwrNHFIWFtsMDtFITtMTnAKLWliZmlyWW9uWDgiJk5hNGciTTxZbTZFUSg3UllhZjteKVk7Rj8yL0BiKy1ALDNYKWsrOWxYb1IsUDVQMW48RiZOCi1uXkY3MSRFPzlaInRzLURrMlchNUJhaW1hWFNwWztZWTdzRj1LalorMjVKZWZtRSM6KVhNTGAsblFTUE1NVj4ycgotTVFUMzBiQVplcyYjK0k/RCIwJGNUTEAvbFYhZSgrLCVRQ1IlLGZvZzgjZlJpXEdmLVNZXE9STFd0cXIqKVYjMygKLVlsTXFPbEtZWj9cP2w9I2QqTV1gNVsoSU8vQCw/NVpWK08zNVtPSFkmZEBGMyVEWldcVF1XLkAtNFhFaUpuUVA5Ci1pLl9RclVeNCNHczNLP1UwQkIwbW9FQ3VRcyQwaDswRCxKViwoMVM8JFA1Xy1UTnFnSU43O0ZhIlRWIj0uRWx1KQotJjo/YC4kPzFaL2k5JFU8cXVtV2tYLHFIMF9xX3IpYVRTaDs7WDppJWBJLlxORjliOCglWVtqZEtqJGE3NzBSKVMKLSJAXCtJWWljUSJCYi0qRSY4UTtmQCl1Pj49cDlGcCZLakBPQCg/bFMqdGZuciZuIjlCNV1qWS45UCJVVV1gO2dbCi07Jkt0aFwtSVkucD5CKl9KOit0ZVQsMS9NXW4yRlhFOV9GUCFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMzkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yNDAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxOSAwIFIgCi0vUmVzb3VyY2VzIDI0OSAwIFIgCi0vQ29udGVudHMgMjQ4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjQ3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTI0MSAwIG9iagotPDwgCi0vRCBbIDI0MCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0MiAwIG9iagotPDwgCi0vRCBbIDI0MCAwIFIgL1hZWiBudWxsIDgyMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjQzIDAgb2JqCi08PCAKLS9EIFsgMjQwIDAgUiAvWFlaIG51bGwgNjAxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNDQgMCBvYmoKLTw8IAotL0QgWyAyNDAgMCBSIC9YWVogbnVsbCAzOTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0NSAwIG9iagotPDwgCi0vRCBbIDI0MCAwIFIgL1hZWiBudWxsIDMyOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjQ2IDAgb2JqCi08PCAKLS9EIFsgMjQwIDAgUiAvWFlaIG51bGwgMzI4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNDcgMCBvYmoKLTw8IAotL1AgMjQwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjM3IDAgUiAKLS9OIDI1NSAwIFIgCi0+PiAKLWVuZG9iagotMjQ4IDAgb2JqCi08PCAvTGVuZ3RoIDI2MDcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KL2drTSZIU1tuIXVxUmksPmt1JzVXPUZSJVJzOS8+WDMwMk9HXFM5R28xOT1KZVxeQDBuPWpLLG9GYG5VS0FZbwotRSY4K0AlQTtCJ1NoYUNaJGNxRWFPRllWdCYucVA4ZDZONFs8JkZiS1oqSz0jMl1bdCNBOSsocTxpQHNLTlEtVTUKLUU2Yy1PUkVdQDhSR0BMYzYodUNtTCxsJ0ptbUpVaWFXdGosPDlAYVA6Xkg1XzhXXytjVXNkKWAtbVRdQyQ0b1FKCi1kME9oaC5pNSpSI2ZDb2pgaHQyYjhxc1lZRk1fVFdVSmBPP2JgJGBwO05iJGsmcVJ1ZVs5VG1EbGtEY1hcRUlybAotUjE/KU1UcXBPX15oRTRWMyVRJVokJi08O09YUiMvMGNKLzVFblsmJjtISmRDbS0pKSUnZlZnX2IvaC9eUzRMdDMKLT5IWlRMaWRscDdKaDdsTTdGNzAxZ2dmVSUnYVUkaltHXjMpJUVTVFQoa21NQFJQOWFoKHNpZnU2KnB0OUxFWGBWCi1tTlpFb05XdURVO1E7VDBVVWleUk00anBYL3U1NmVMcjBHQVAtYykxYVNLTW5MRkBDXSgqaGpJKUNgMTYzdFRAUwota19nR0QxbmxnOWUtN0FmV2gtJixNYFU1Xi8uNSM7YUEzL0AsOl5qWVpRZCJKJyk0P25LMU9jUktFREtGLWtAUHEKLWQsMEtZQ047SXFNdSxvWTBUSkw1altbVTMrWGZCSSY3VTVQVyQjZ28ua10jcy1GY2hBU3JaSzcqO0hRXFdUXC48Ci1MNE87WylgIUJJW00wInFuQTcnbUs/LXRTTCo4cW0yTkU+TEoyJ10sLGY7SWBGKGRmcCVIRVxuMTxlZCJtTVVfcAotOEBnOFc5VFdhSFVpRDtJKHNoUjEiSVpsPSY2XiEsJ1U6J1giZ1RfTjkjImVPUk1aNmZvJTRXZFVOIlhEIjlKIVcKLTNLRSxuXl9WcUZVc0xsWCFzbVU/OXFjT1NpMiFmOz5UJGxUTXRSaGpqIWBdcSRuXmhbJi5bYF5fRGkjOW9qOmhQCi1GIy86J01MZVpdM1hmTStqdHBDOFxEQjhURzNyNl0iVyZsSz1IJyF0XC5tcD5RKzpnPChEK2tITi05cWNHJFdeTQotYXFuWjZEO1I3MHBiISlJIjlSXlxkM11bO249SUJlK0JnJUVqL0QqIyJsaiJJMSIwUVldbyVpTm42W3E2cUNEJDAKLWhiIzMsRHFsSz1cUypVYFZLXE1oaTxJaSVCPUtZUihOI2pgZ1VII2FSLD0ucD1fPmk0QEVuc0RMbz9nSUNCNj1yCi0iOm5YJFc8PUNhQURtWVosRF1lSyhgKkQ4RSp0PGVKTyJyS2gnODMvMWgyVnRFWiFMYU1FV0p1WVo6b101az9cUAotMlcsZk5rNjF0aSpXNFpQVU0qZlVMYS1UcTNcTFJdaDlMZjQ4ZGZqbzM5S2BpLjZKX01qUDQnZD5WY2Q/ayEwaHEKLXI5LlxjRS1ZTmFbcUFqSj5XLldlcjctdTchS15uLyM2KykuVSc9cG9RMFNpZ1prKyNbXkpGTGNLKllwZF5vUyhyCi0mOExCNWJRZ2wnRCllO3RrW1JQcmNWV2o3bChzJm5AVDdVYD1RWS9BITdfS2dUVj9hKUtWOW5dPE0hakg7Vk1PbQotUzJpO2hsNV10cypKKCs2YE1aV1YiSEpAcjpNLVBlLWZWQjhOOlAlZExOT2BAIlZoT2tnY28haEVDbS0tX1dJSjEKLUQ/NmJCLktZXVAlIlVjbSJwR2FwIVghPEk2LE1EVVhkQ2V0VF5pP2pKOSJUWUtLIlgvJGxfUUpHUWZDLTskJGlLCi0pLGooN044YFJMUWZWYHVfYUpqNCRpUTZvPU0sT3NfWCcyRk0oXnRWalJyWnFHUks0TSlfMHRPUXJNdXIuKT0lRwotSnEvSV48U0csbVZxZz0+S0QpXnAkI2E/KkUmbjUjajtXc1ZEaFtCaDQzKilTSjQiUW5HX2NKWDJWI3NmVG02ZU8KLVAlWidvYS5GcTBbJ0ZONUQ3b3VTOmA8cUxAa1JrZihGbiksKG8nJypCdS8zMig4QlpeaiZCR2tYKks4XycnQzlzCi0kc2RudWw7cEhaOyddJ0g1WlM1MjJodVpEWTgtXCE9QEg1ISIqLVNnZS9AXiRMV2dfXydCImNTSkktJEA9ajhPXQotQF5hKiZqJzhYVUtTTSJUWmxgSWZPWTt1JDVEQT0uKVonOEQvP1EzNWskWkUqLDtpZFlrKjYtT2ltNjs5NjkkUUIKLUhkWDU2ZGI4SjRDK1cvW0w7OzRTSlVKOSVKQG1uRWN0RWVrY3RrdVhmR0MvJj9qbSgnMCprdUsuME5cYDgxQ1g7Ci1EbFw7KzJLMmpSQl1FcCovWnRHTDJYOSxhI1ZMJGpGZzg3KWQ1Oi0yOnAjSC5aKlJoXWtANzJGWSxTY0siMCFDYAotKm5yJi1UU10/SGknZ3IvUW1mLWJnOmA1RXFZRDoyXFJaNV1wZkpZKUAwNVBGWW4nOWc9TEwwcSpkckhkVG1jcnEKLVFpZD9ILlA3bEooO21dMEddLCI3L0lbMSptbGgrPXI/K0VZTC4zNCYsTTQuS2lbZCxmQT4pNCtmUlQvLmxsUz1yCi0nJmdhVipgJCw8cFBHY20nVSkkRCRsVk9rIlReX0EhV143bE1vXUhwWTAmVUFFKUBZZjcuLSpGbDhYblZlRjs5KwotXUtjVyMwVSltZj5vZzZpQHU2IXQtR1w6JUM2MHJySlxfSSpHaCFmW2NxMWpDayNrMzlmLGMyJkAxTFxVVlxmLnEKLT4/QTIuQ2ImYS06b2d1VkEzPipXZEFIU0c5P2JvJy4hJzwvKiNfPU9ePFhWaDwtWDshXkcvXCFtN21AczVjY1hfCi1pJDhYSV9hbnJEYWInRGlbTEBxaEFgXGssX0ZdQT8uaXBFJUNeYUA4OkxTR1FbSC1DSDtYVzByOE1GWmE9USFnJAotcSRvJk5qXksuRSEtVSIuI3UzO202VFJTJ3EuYlc+IW9VbFpfJ1cnW2F0W05YXmFTbW5DZ19AJVw1Y09xSGpJUVsKLStVJ2RDaV5kS2xuRlgjKDpMcyQyTytQa2FQRG8oX19pZ2gqKEYmKiIpZjgjUCVsWDhCQCsjdV06LD88ZWE+VihTCi1dNkQvNT5yU1laOiM0YWFdQjRpLSVHMyNxYj5ucUIyLSw9RmY6dU9TZCk7ZjRETyRIOmlpUHI7LUBjKyNwU3BLMgotI2ZsKFssbmsrOTllTUVjOUFEa05rRyUnR0AtSE8yZVVGNipmZDBhTmk+IllkUCM+PWQjVVJZWnFeal9ENlBkUG0KLS4iSnJGIVgxP1tKXm9fYGE9SiYtcktVRGYjVWZnYVViYGhRXTcmSnUtKTM7P1lqaUwzKV1IcUZAWjRISzAwOWRQCi1mQ0UyVWM/O1ZtTTBVWUYnUjchLlFJQ1JtMks0SFh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTI0OSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTI1MCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE5IDAgUiAKLS9SZXNvdXJjZXMgMjU3IDAgUiAKLS9Db250ZW50cyAyNTYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyNTUgMCBSIF0gCi0+PiAKLWVuZG9iagotMjUxIDAgb2JqCi08PCAKLS9EIFsgMjUwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjUyIDAgb2JqCi08PCAKLS9EIFsgMjUwIDAgUiAvWFlaIG51bGwgNzk5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNTMgMCBvYmoKLTw8IAotL0QgWyAyNTAgMCBSIC9YWVogbnVsbCA0ODggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI1NCAwIG9iagotPDwgCi0vRCBbIDI1MCAwIFIgL1hZWiBudWxsIDQ4OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjU1IDAgb2JqCi08PCAKLS9QIDI1MCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDI0NyAwIFIgCi0vTiAyNjcgMCBSIAotPj4gCi1lbmRvYmoKLTI1NiAwIG9iagotPDwgL0xlbmd0aCAyMDc2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi9na00mSFNbbiF1cVJpLD5rdSc1Vz1GUiVSczkvPlgzMDJPR1xTOUdvMTk9SmVcXkAwbj1qSyxvRmBuVVBNSXIKLUUmOCtAJUE7QidTaGFDWiRjcUVhT0ZZVnQmLnFQOGQ2TjRbPCZGYktaKks9IzJdW3QjQTkrKHE8aUBzS05RLVU1Ci1FNmMtT1JFXUA4UkdATGM2KHVDbUwsbCdKbW1KVWlhV3RqLDw5QGFQOl5INV84V18rY1VzZClgLW1UXUMkNG9RSgotZDBPaGguaTUqUiNmQ29qYGh0MmI4ciMpbEZNX1RXVUpgTz9iYCRgcDtOYiRrJnFSdWVbOVRtRGxrRGNYXEVJcmwKLVIxPylNVHFwT19eaEU0VjMlUSVaJCYtPDtPWFIjLzBjSi81RW5bJiY6aGkjREI2SkInJUxTXVBXK0JMRjlbNG5yCi1ZLSQ7a3E9LV9nQ1ZeZEcjLDo8UFp1LlZrQ2wzbTwrXjRAcVwmMzVPKEJ1JGo1VU1GN09OJypbIUtfLiMic00nLgotKW5XJyY4Z0FuZGtgaSosOVc3QkAsYmVzOy9XNlNWYVBubmlaYShKUjYjby9XTDhyckwoLkglPmZFUjRNLiNkbV8KLThKbEt1IjsxSy5RQS1zXUFlcCslRSpzUz9iQCIuJU5ydS1IIT1eV2I1cUBUajBaKVpTSk9ITSEkXDppbGkyISZeCi1uLzRxLE10bmFDMTdBUyQ5KjhrdTA5KipYXS5db0oyIjNFSTFFL2BCYUEvKzNUIjpyRUg1ZCgwcWBfRFpfQkBcaQotTmheOjFnQyxcIklcME1SYEBDcXUwKzFTblRUNic1NlxeMCU+c3BILHIvaTlyWClKdC9LYWp0RzBUOlcsZG47cW4KLVRcXjRpIi0/RkBLYWw0TC5aRiVqVzdyczxkKUlpVmJEUEljTkohZEc/SiIvVEsmJ1JFITZJYVoxbW1OJVwpRDlrCi0sN1dbcDVXPV80MV1URm8iKDk3Xzhjb0BRKDUzc3JXJE8lJTFeRydLWU0uXFsvYEIuUUFjcjQvZDxGPmVLZEI+bQotITxCWDUjMW1mWjJOL20pQ2NAQDY+XGw2VkdDQnJXVnViRjEqUCwjZElgdD5LSmVCIyFENE9gU2FmNlpJRyRWdVsKLW1QdFwjSjZYaFFKSC9taWFjLGxDL1xxJnEsVFUxbmBUO1pkX00jP1ROJENMQ1VoNGlnNVZCUGpUTiVXZ0pvJ1IyCi01cEpxOzBqV0sib2VeJF4+ZDpdVEAvdTxHJUhBIzoyP1hwZVtRPGNBSV83PyMiLiRwPWxNRUpqLTtAKVlQcVdARAotRlNpQzxvMWYuV20/NTI+TTJtb25nbjdGXyRVbGk/SDRsJnA6NlcuIigvTCwxKGAuJC8wLVNGLUBrVDtsRXE9UD8KLS8qZTIzSUVxTGhPUVxALFskODJBcD1oZVBbO24/SS5FYStOPlM3U08+Z2VnMzpmUmspOzFvTmtuUGhEZ0BWSSttCi08RCkuTiNbbV9RMmlZPUxsL1tkVyZCL2pSWDE2OSdnMyooPTJpYylLaGNhKDJgb1tnY19qSkkkSzdeVENDUGNbPwotNWZXWSVKOUZoJHE0JVg5JEdqb3NrNzRaPTJoa14qJkQqclY/Uk9kbFtbJGpkXypaUlUub1szNltOKjQlRi1vM1kKLUtGZyloZGQqOi0nYStRbk1TTSpoXFFWWCE/LTJAPiNCZW4yKy5DazImN3A1JGU5R14+RUYhcGY8UURMSWdzNFJsCi0scFstSSk/VTU/ajQwUF8lKUtTNzJaVzllPVdCcG1Dbi5OMk9xSjJGSFMubEBebUxxVWpyTT8zYDxEc05dRVo1OgotJFVVP0tNZSNQUy1XPi0qVTJvXmEwZ1MkZGpFYSlKT1hQTytiU3Fnb1liTC9tWTY9cjMnU0RLWFBKS2RELideV0EKLVdKPipvKGVXVW1MXiJPNmBbJkJiV3UjN2whJmNSTzQ7byg+JUwhSFxLMF5nLXBnNSElPkskWEAjI05DLj5IQzRKCi07MkxKXiNnPFBdbkhpMm1YaGtqXkFDP209QVMwMEZTTVM8PG1NcFJBJCo+KUVfalI3Sj4naiw5WjNCREVPQ2tLLgotWkRnUThGZyY0aGBuPVorTkojTllbUFVKMWdnQWZaPm4tbktfV2ZwaGg1TnRlSkBWPmFWW2YldTtsNi09VSNERkYKLU1YK1BwWiNfYCkjLjpITmo/YWdIJU0yP1lcOTVzSFMicWYpOid1U0hlQ05oLm9hI1ojIWVFL2xqUWA8ZWBjXVROCi1mZk1bL2YmcmZEVUZXWDEmVSNMPT1JR2suaT5GblAySGxlRkdzK11vM18ycyY6XzhRQ0NmXEJfQGBtJzljNVo3YQotUVt1XkFhNUg3akBaNihBI20uQXNKajlgcWA5OjJNKl04UVdSMFhPa3BmP3NKPnEoPFpWTid0QkwzJDZSL25gMTIKLVE+KEBsT1RCNV44KmolYkpsNlhKVj9JIyRqckhnPkUqVFFrNGI8W1xxRWxPMVk8ZlYjUyg3ZnVQOlJcXE5ZXShTCi1ucWIzRjItTywuXUozRClWUWolcWFcLUVgWCZYc18lQDg6JE89MXVnL25pLTpPTjk3TTZvJCk5XEhXc2YkKWlgRAotPjJtWFE5I09nVmovX21ZcC0uUW9aJUlCLTAsIllhUSxEWm8oWHNKNE1SYkFrSkU0Iy5dTlU1VUg4JWxtTGxcRGcKLSs9ND9EW05xaUBQQ1k7bEBTcHIjVGhsWG01UX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjU3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjU4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTkgMCBSIAotL1Jlc291cmNlcyAyNjkgMCBSIAotL0NvbnRlbnRzIDI2OCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDI2NyAwIFIgXSAKLT4+IAotZW5kb2JqCi0yNTkgMCBvYmoKLTw8IAotL0QgWyAyNTggMCBSIC9YWVogbnVsbCA2MTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI2MCAwIG9iagotPDwgCi0vRCBbIDI1OCAwIFIgL1hZWiBudWxsIDI5NyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjYxIDAgb2JqCi08PCAKLS9EIFsgMjU4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjYyIDAgb2JqCi08PCAKLS9EIFsgMjU4IDAgUiAvWFlaIG51bGwgNTA1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNjMgMCBvYmoKLTw8IAotL0QgWyAyNTggMCBSIC9YWVogbnVsbCAzNzkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI2NCAwIG9iagotPDwgCi0vRCBbIDI1OCAwIFIgL1hZWiBudWxsIDM3OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjY1IDAgb2JqCi08PCAKLS9EIFsgMjU4IDAgUiAvWFlaIG51bGwgMjgyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNjYgMCBvYmoKLTw8IAotL0QgWyAyNTggMCBSIC9YWVogbnVsbCAyODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI2NyAwIG9iagotPDwgCi0vUCAyNTggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyNTUgMCBSIAotL04gMjc2IDAgUiAKLT4+IAotZW5kb2JqCi0yNjggMCBvYmoKLTw8IC9MZW5ndGggMzE0NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kLGkhSyUpcEYoOQotKTo2Zk0yYzZPYz0/SW9HJTJtIkBqW3UyPUBRKEluN0FFL041WDZuP04rNWAuQUNSX0YzUzJPJkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMGAvPV9RT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5MIVkpNmVoT0dfCi1MXmVtX1M7SU9UKHRpVnJkRVA5KmBKN0UyLD1xNEM/bk45KjNKQyVcVExyb1coc1JoPitGcVVaMFVrZkFfXk4tIQotK1M5dS4/QGRANjVZIVQjIjtGM15AKy9HZDkkR2hMRGdUOmk0SEQ4V0xQO2pvViE1IlRGOyw4bV9nPV4uTlQ2LEMKLXEyREsqJ0pSOShFYFdESmJET0I8L0UpSSFMblApSC5NKWcjWV0oQ0kuVGlYMS9TVSRMJ0lwcCFfVkhxNDg3RVBCCi0iJEBuak8hQyVVMTYmQHBfU05ocykhIUldLDkvJGdOP15GMHEkXillYDFbWCRQUDYoZks3IUo3Tm0oPkpwbD9RdQotaEQ1OTpLWj5HTUA8OWQ/NjguckluXFNfXTtEKmlZO05mdFYjXC9jKjM8PWArKWBnYC0+M0VJTFMjUis8JEpXWloKLWFlTXRVKyJlYjE8MTpEZGJJNmh1Y1xWI3FOR29NalFcREtlQVEsVU5fbSZNaU9JUFA5TkFSYWlsVyYmXi04VVpMCi0jaUlOSyw5NUg/ZTkmKXU5aVxNUmAmMGxWVjEyV01GXnIidU5NRUgqJG50Wm9gZS4nY0NkdEJsOD43WFJbYUFLIgotKEllXmBTRU5yWlFsP3A/bCxaK0ViSlBmMTQyMSZ0RERocUsnbGw8LlpUSihBYUEwT3ImLkhJV1pPRVs/PVBYMzkKLUBnWjZ0JTFvKWFTUjMyXidLakU1JjViQTA9R3E8TGhmQ0MtWCxKW0hrPCUhSSw0dXROYk5rYDpoJ28uNClwLzkkCi1icXJVNkU2Xk1tRTE9KSslS2UtN1UrNV1BTEUncjBqRiVBSzNaYHUsQCo3ZDwwXSl1MDBiRlVMZ1hBK2w7ajc4OwotWWtXa3UvZ0ZmMmFjb1MlJjVmXzs2KTZVZjpRJHRGa0N1OjZVOiUsKTxIOjRVYiJJRG9MNE87UyhnRDksJDYodDYKLTwraVdeaistNUQiVHMjOVUjJllOYSM3QWRHWCpGbF9qOiVCZjlDYSYmOFpvaGMqPCJNRFVDVzlrW3QrUW1BYz9HCi0nT0hFWmREIU5xUDBrJWFTV19hSTIwTDEiUSZeLnJgXGN0NThHIlpyUVs2JkA2N1whJidvJ1BXQDhhPidgYGZCPQotcEhmRDAiV1ZvNSdGXzpXZFBfTiQmNCteJFIqTiMpIjxGTl4sY0JGQStTX2tOODhdPl06STk9JlNKcjtTMD1WXTUKLUU6T3NjV3BgTDpKMyZuRXJrTVtgK0FvMTJiK3M2TXE0QyVgJU0jVUwoOklgXCs/NExaWD4pUSEhbDRBNT5LcGhWCi06JTlPVmdgJ0ZEIkFVWFpvWURALVAxIis5QHUkYy5PQWg2W2RGbE1fIzpQSzQ3RTBDNzZfJFtVTz89QSVZJ2NVPgotbmpgJWVHVEo2WHJgJ29KTF5TJFUsJXVqVVFQL0AoazxLb05CS2pBbUA2R29FVWAiZig6XzVzNDtbRydtKFBGSkMKLSRHY2o8JVk5P11KZEByX2FdcVw0YlJuT25eZC9uYUZFITc4RDxGPnRhUSkxND1wUl1jIy83JSMqYiZRNU5hXFM+Ci1aa3E6NGk4VSkjJSlAUV9uQ2VeSD43cjpka1ZCQydhck1KTyU3NGpYTGQ8MD9PSkhDW0hzc11uKllASUJqX0AmRQotazM/ISYrUGAqSjRNZDxOQyk0TlM/bE4iRk9GTitzLWFrQTYvLUMtNUFFaSdbV0hZckI/Tk5ULm8ibTVXMWlHIi8KLWlZPmkwcG9CVj5SJDNXLFYkPWNHcWo4XmxjSXFQWiVdQEgwWmtAaXBfZEk6U1pjWzlnX0gqaDs2XWpzOzJLQypECi0rRWRkJVRvPEJxNXRZLy4kNWIxLTl1MStrUW9PNEtkUS1sbFdGPXIpXDhPSVVTRSowKl9MU19VbShcREBGc2tPMgotJi1kanQpKCcuQ09jMSQtUW1tSWksRkUhbSVQZkZVPXNHcytDYFBQOmA3UV0/YTtpKmRAXD9OOk9OXUVIKjA3YnAKLU8iVkMzODg6cDFCOF4+bUxoN01eZmlobCExN18uXDI2UEZZSlEzVT5qOiktRVI3bzxbays+MVc9Y2RyZkxKWnEqCi1mXnUnTmJqbitJOnJYPmBRI0VuY1x0VDY1RiMyczxKNEswPjRiblxQO0BrIldGTj5ZX0s6ODYnIUMwRjdETiRPIQotQzI0ITM0SShMUj83JXE0Iz1GT1hAUy5mcCI9REpcZixGNCUwXUFpYjY1cl4rPm83MUMrZ0Q4KyxSLlEtPk08KCIKLVRWPFRARicwSC9FQiVcMVdAL0NTKSp0T1NTLTQuVlcpS1dnWFREKEs2K2VnVGE6SzJRR1VhK0ZFIm1yNWhXbjRsCi02PGdDWSkkPyg1TWJcIkFVMHVEKjsvaVpGRG1TTC4rTVxbNTNlbG9jV1Vjcj07UTZtciosPHFqNGAyKE9WaDlVSQotbXRtdU9eJEI0bEs1PDYjajkla21YbU1VdVEvXyRJLiFWWFoibSlPaWs5Xl1IXXRvUGwicFhyN09QbWdqJHQ2PVAKLWJrZEBCPEBONy9MREIvMmBEXF9hbDgoYVk/Jl1cQ2lyXC4oRjpKdU4mMS8oIUtcLG41QysqWFA+REdcJC0sPUlTCi02LiFOaEshOld0YzNBX1Ria1dxIyo8Ik4zLWJUdEthTE0pLztMc0VJV1FlUic9RSlyPy1kaExvZFtgLm1nMyRZUQotLXU/Kk1oKHFqNmdfRDlHNUJMT0ouRktTJClEY0RIUzVLZmJpYEEtXTxncFJuLmdBakpBN2lbZTQybWFpZEliblIKLVYrZGdMN290Q05nSClyJTdbLDVpUFxAV2FiLkovRUEuVzcoPDkxKzE0TiglQlF0PC1mbmBMcFNhcjQxZ0YrJUtaCi06RzsqIUtsbWFQLy9BNnApUkpMaCZzO2B1OT5RNitWaDsrUzZlUWcuOUd0QC01ODwuWkdKdCZbITE4RyMvK287WwotSmpHKUdkLSZncFM6cEljOFMnXDhkKmQwOFxVaUk1T25xYCNMQVksU0srOz1NWDlTZz8iQml0RDtPUT82XEBAYTgKLU9yPTxmJVRfT2hBLGAjUEFya0EjUVg9RGs1cDNSV11VazA5KVs4XkpaXnRodGhEKnVPVWFJNEUkS0RCcV1hZm0jCi1gYiVqJ1NQXmVfWiQwKFAiMSFkVF80M3ErazBWaGk3ViJHPU5tWmxzUE0pYk9uPD8uKi9fdDs0NjRhU2xTXz5YNQotR1NEOklnXkAiTkVnIWldWUttSmdFTUNWLkc+ISZrP1NYMzMwXk06dW9McDVmcGNoN2UnXWwuKCxIM0xQV1JEMSgKLTM9Wz5CU0IpTCdVSS5mWWdLJzxZKlZLTlFmSDQ7Ujk+STlCWFBHPmU5XFgsPWk0JXVcRDZKdXE9RlRiVldRXz5zCi1AVik2bW8/XWRTanQoXSVDJkVIcUpeKUc5UGVDZDlZSl5qY2RaQEN0aFk9dT9NMVgxLjExVS1sXS51byo+Ik9STwotNVhhRVJwWGo4MyUhakJjcE9eYVNGPjpyaUghVmRHTStqckFtPXUhLyIkaGNMXUJicUlWKD9wM1xJWWRALjdCLFMKLWduTygxQlpIUj4uaFpyQjg9YkZYWylycWUkdVZ1XWdkXClXPXBOPi05IiMwWVlmciFdVyhSdUQiSzldbmBqY0gwCi1aOzciOGMwamVqVEpjMUMvLWYhTmpKa2E/ZkpYM2RpaWJWPWsqLTpXTEEoanIwb2hvW0FOQnIlSHNbMVhGRlsyKAotNWs4b1VTQUJtLFZdYjI8XmQsJ15bLGlWcUlrUkk3TyI+RWAvY2hbSn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjY5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjcwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTkgMCBSIAotL1Jlc291cmNlcyAyNzggMCBSIAotL0NvbnRlbnRzIDI3NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDI3NiAwIFIgXSAKLT4+IAotZW5kb2JqCi0yNzEgMCBvYmoKLTw8IAotL0QgWyAyNzAgMCBSIC9YWVogbnVsbCA4MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI3MiAwIG9iagotPDwgCi0vRCBbIDI3MCAwIFIgL1hZWiBudWxsIDY4NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjczIDAgb2JqCi08PCAKLS9EIFsgMjcwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjc0IDAgb2JqCi08PCAKLS9EIFsgMjcwIDAgUiAvWFlaIG51bGwgNjcwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNzUgMCBvYmoKLTw8IAotL0QgWyAyNzAgMCBSIC9YWVogbnVsbCA1NTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI3NiAwIG9iagotPDwgCi0vUCAyNzAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyNjcgMCBSIAotL04gMjg4IDAgUiAKLT4+IAotZW5kb2JqCi0yNzcgMCBvYmoKLTw8IC9MZW5ndGggMzMwMSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kLGkhSyUpcEYoOQotKTo2Zk0yYzZPYz0/SW9HJTJtIkBqW3UyPUBRMU9vN0FFL041WDZuP04rNWAuQUNSX0YzUzJPJkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akZMVyojXzdzX29VY2dZcHVQYVZCK1Ysbm48UV4/Jitna1UnIXI6KUUmSlBgXjhsT0dcXC9MCi1EJDEnWUJoaCkhKHJCYDlMZUxodDEiaFBAZT9ZbHA/bk45KVRec2pPQ2YjLWROKDNyJS4+Nj1ybHVwIXEnOmpZPQotRztMQC8icV5tUidqYFZjOXBpK2VedTAjY1IqN0dWMG9YdWIlImlOLyk3aTIuNVdPay5ZaGhCKl9lXD46NTMiMSgKLTBvZVVsaTMqVS00KkU8cSxIL0k4X0YkcXVUKyZVQ2BcTlFfOEBnOFc4VStGUDQlUVtSW0FKdGdrVnA8QW5FZ01qCi1LMU81UV00M1VFKz9QSWo1VzkrSC4qK0UmZDhYNURMRlFjWW00KFlpVT5uNyJVLHFSbiFebyRwS0VIVU4pMkAqOAotYlJkIl0rQC1RMSItYEdwOF5WOnAuNE5PVFV1N3UnWVxZNDI6L2RQQzNXWG9AbDhtJXVFbjJPTyw2QltDIiFCbEsKLV1ycWdQWFhmS3BtZmVcaidLJV9hNl9NZylhUlckPzJiK1NXZ2JLJi5DOiNoNUBAMW0wNUUkR2gnTFk0aTkhNURnCi1uM0IrTm1GXjhTTkg5bW8uS3JKL1NlcVk+MWhtXygnX0VbTk5lO2xJM1xeNmJsVV0qTEdmMjpwNlkiWT5eZWMuaAotIXRPaF0lN2pKcmtmaV0vLEc7T1xLdSFiUFUtJHJ0WkpeRUY0VWRra0BtZzVSOzhYKTcyXCtDQVBrRWE/R2hXK00KLVtNPVVaXGVcOFRyOCtuamdxXzAxQGhMWVhbOmpBNzY6NFQ3M1BgcmRfXiVBPXI+YmJGTnI+SVojXWlITDMiN2tNCi1ZVCY9SjdINVIiK1w2VmsiVnBHJVB1NlIwNm9FMUU0ZmdZMUUzKF1lQEZjcyMocCwyZFFNSkcmcldZRE9PWWVBOAotO2FDSkFPJjtTTmIsXkxZUElZVDchdSc0T2ApYC9MKisqTUY4VFRrJlFJUVs4cVtLNzAiO3BodS1IMHRCKyhNakkKLT1LZUsxKUNYJSFOJV9XaDJvTnBYKEEwbG9EOzJrJEBDWEhCJTNsWChHLmc3IigoYUZBPERgXjZJNy1laS1oWWJYCi1RQXNxOTxdQV5Scj8hIyRnSmdKJU4pa1wtUjNtSlM/OGN1I0RGIztUaiUubzFOT3ExNzJuWzlcVmpiX2A8ZkU9NgotaTtoVSklL2NkTy1GMV1EVTljO2tNaGBjQWMrOyxbM2wzRmwsN0tbO2tFbEc0KGZoQyslaFJTOGRyOS9GODdjM1cKLTJwYW9qWW5CJGw9O21hJz5iQDI1YHMvRzlBVjs7WChkZksxNlJUIjVUayNqM1JfV1EnYUZNaGMwXV1AY2w4VXFYCi1fOSdJbV9BY1MoMyUlRmpycylOWUxgQ3R1JSdSbDkhblpdVT9iN1FvLzpsY11FK2sycj4lMnVdOik/L0JfUTsmUgotU2oyMihganJRMk9rbW9sNm5lb24jKlxgdT5AUTpyYEkzbE9wMylpKTVYQzAlblpiO2pjUCJxPzlsNmVpMXBHUj0KLVloRzRuQFJqUmUyVCxJM2dqIXBhbCglR2gyZ2NLL0MmVlw7UGNnQiNQLSdBOEROVWNHUSljbkBfO2poOCR1SStDCi04SnJrb2Y2Ti1Fa0gpTG8tSE5lcVBLNDNsX0JQTk5DRCRyUlNsPyxUT3MibyUlVElLMVFLbS9QWk0kYWBTX0lVRAotI0Y0TVBqWVhWVD5dNXRJb3FocFloTU1rKyQ0TzZaJUEvQTdVVmsvbDY6JDo3XDkiO1BnZShnOWNqO0BtRylYTy8KLSF1cWglZ19kNVpfVUI1dDQodFFhPEQzL04qJD4oWjRSQ1NkYTROQyJBPE8zYjFNUlNyWWhMVD8lMFIob2ZkRyYmCi0/ayg4OGU5SnQ9KDR0NHVwRUBebExQcyh1VktjaU9fXlVBKC86XWFEW0IrbyhQayYzWl1fazVZMlFdZClub3FGcQotcTkpVEY2YzclJUZ0MmtZZFhaKG1rM0dvW2FgOmFlbDdZMXEmcnFmRDdNW1NCLlhCZGpLMCc8VTg7PzlETENbOEQKLTYnPURKIzZwLjEhPGcvT0xsJjkkRy5jY0hHbjEoVWJ1WjtLVzhdMDEtdWooUiNxXWYmKGYrKFNNY0dHR182cyJrCi04Z0RRRkUsWyVVOm0sOEtudSFrWUgqRz9dOjUuMWNwQzsvVDE5VjdmaEZpaUM3S0RCYidnUHMtXzE0R0JAJV1OUgotODNHTzUkbVY2UUZpW0ZJRzRfQSheQ0NMPTBXcyFFOV5CIUdFVGVQUDosV2xlaFQvXCtkb3BVZW9cPkwtTTtHMF4KLTVTc1NcIy11KWJxMSEmLHFscmByWFE+VFNZOC1XYlljRTVKTzJFQjJDO2AtVCk8VTZrbEQuTSZBbWNcIjQ8Pj4iCi00VXJYZClEKE4xKlM+WWdRIjleVTBtMkllbWRhXjJFRiIsRE1nMiJeWF1WLlkmPkQjJzddOCI8P0AiR0tPISIzYQotQE5POW85VEZQSlxoTj9bJlBgJiE8KFlFMUAtSD5VNkQraFI9YFhXVTYiV2QnQ2VuVjtqciRkR0ZiMnVnW0h1Xz4KLWlJbHIxVlZBNDlKW2RhcWVjYUdHPDdFM20iY2Bka0IhI0dcXFouNj1mPVppUCMxMkpdNTc1N3QjQmVgPSgpPDhsCi1bVzw/MzY+S3JFZDtfc15dLDZbM0FtXDw7PlIhWEQnVmJKbiRpclVfUExrdTBTdWA7R2U5MkI0YytXOjdbOC4qPwotK21NQDwwZDNsWEZNKlxraClpZkU0TGtVR1lPRm1OUV0zYk4jISpUWkYnWU0vcTJXYXNia1J0QkE7azQxM09HQmUKLUk/QGojXDpoOFMyXV5yaG9cL0JCLWBEX1RZMWU3cWZgNVs5YiFNdT9qQShsPTY3cF0hX2JqUk05OlUnajI5ciFXCi0pPFpxWVJbUCxwWUFCQiRKcUNLUStnT0xEbSRSSztWRWxUakk3X1EqUz4lOT9kWDcwRUcpSWBQMV5ALFJvUCNrOwotPUJeQmltLUpELlghJ1pGQj9kUy1tNXBwZChqN1cySCNDazFBZj5LYyM8Z0k0QnBJZ2tmW2tfbGZtMG8kVUUwPUAKLTFSPC4uZ0plamlHRUI4WXJzRCluRWZxUGZyTy9wXjdBIj0/MWAzQDZaPUNhVmo/JCJzbTs/ZCYsakYyTkQvbHAoCi1BS10xaFg5MWdlLyFZKSE+OkI4LEsidVNLIWs1ZihnMzQ5JEtoTjJTaXFWdVczOjo8MVRWSjxXS0E7PTpQMlQpaQotayE7dVFoYDBGLDxlR2dqMjc5Nkk+WDwkWiJpLzF1Umk5bkpYKilWamRJK1ApYCdcXlNuZS0oKTExN3FSbGFYRkgKLW9xI15mSHVSSGRwQyYkcSUoY2QiU3UiRFRfRyIsdCg7NkhCIyJJNkhoSTU8UVA7OFs4QCEvMD8oQEs1RlFIOGMrCi1bZl8kS14xVmNIOWByY15salI5ZUQxczVSLltjVWtsZS9UMzRePUA7XmA3dUhMTXBpSzJLbVM9Lm1cXEY4aChBZAotLkYxWV9FI3NxWSNENyI8TmBlblpwWW44VWQ3UXI7O2twMClMSERAOz9zQkVzJGFuNWk3aiM4MitwT0cmTnBMJ3AKLU4wZ0hOUShmOGZMQSFgXV5iRnQnVCpXR2g2bzt0b15dZ2FaZ1RPQEJAaC9LTWhGQG49N2M8LDRMTGRcNWkhbnNECi1GPS51KSV0X3NFOl5uaE9EMm5oYl9NWjkpUXFFRkxbR11ocWFQOElmXUY7aC1UXVRRa0tBTj8mb1w+NCxQQSxXYQotWThnczwjZ29NaU45JitlL00oXnRDcElxXkFxOSkiTy4pWyQ3I24xIlpmV0k9OlVocSJEIyE9dE9paDkhIjdlMUgKLXJgbDk0YixiNEVLK0BlKj88YEBOSydhJUpWYF0mKzZwRClERmpEYS5OUG1yO2lYVlgiZSpfOCNfbFgxS2NzaiNKCi1ZKVksJDZOUmNvJ1AsKDsmLkYrJDdLUF9BPC0+ME4wT3BtXVY7aCtvIlM/RWhXOWtrWWlqPF5EMT9TYG4hTVRWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yNzggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTI3OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE5IDAgUiAKLS9SZXNvdXJjZXMgMjkwIDAgUiAKLS9Db250ZW50cyAyODkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyODggMCBSIF0gCi0+PiAKLWVuZG9iagotMjgwIDAgb2JqCi08PCAKLS9EIFsgMjc5IDAgUiAvWFlaIG51bGwgODUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yODEgMCBvYmoKLTw8IAotL0QgWyAyNzkgMCBSIC9YWVogbnVsbCA3MDMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI4MiAwIG9iagotPDwgCi0vRCBbIDI3OSAwIFIgL1hZWiBudWxsIDQyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjgzIDAgb2JqCi08PCAKLS9EIFsgMjc5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjg0IDAgb2JqCi08PCAKLS9EIFsgMjc5IDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yODUgMCBvYmoKLTw8IAotL0QgWyAyNzkgMCBSIC9YWVogbnVsbCA4MzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI4NiAwIG9iagotPDwgCi0vRCBbIDI3OSAwIFIgL1hZWiBudWxsIDM0MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjg3IDAgb2JqCi08PCAKLS9EIFsgMjc5IDAgUiAvWFlaIG51bGwgMzI1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yODggMCBvYmoKLTw8IAotL1AgMjc5IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjc2IDAgUiAKLS9OIDI5NyAwIFIgCi0+PiAKLWVuZG9iagotMjg5IDAgb2JqCi08PCAvTGVuZ3RoIDMzODkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCxpIUslKXBGKDkKLSk6NmZNMmM2T2M9P0lvRyUybSJAalt1Mj1AUTpVcDdBRS9ONVg2bj9OKzVgLkFDUl9GM1MyTyZKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBgLz1fUU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuTCFZKTZlaE9HXwotTF5lbV9TO0lPVCo3SEo0cU5PVUknb0VETCx0Uk51Sm9zKm5jKSlFTE4nTG80UipNU1gvUlBLLyYva0FPbWVxYXQKLUFEcElcMGMzOytPPlwoYTdgL3RKMS1eSkg5YWMjVmA5WDlYTjJdcS0zV29QakhwISZhLilKIVwlWiFBKS1wcUNgCi1oKF8yZmhAcihIPi1ARUhVSikoLSNbcXQ0J25wJnJpJk8tP15lY3RLaixoLDlOYmdnJCFeTC9vYFw9VyxTInFnPwotY0poa1ouJixxKCxwaE1ib1hDUjxrWzUyMiFPdXRESlptX1IkR3U7Jio+Q2ojLyVATFkiLT5jMGImQUpYJi5ISVQKLWglJExtPmNBR0hUYERxayRtUzxxMFQ4QTBnRGlPaTVpMGtKSzBbVF85anBIRSlpXiZnLThfckptK09JWUEhIyt1Ci0vJlE+UCQ0WGdiO14iXGBUTihmQyUiK2BITjhwa1MlKywwT0hudTBVKHMzWDw1dEgjNjc6QV9wJ01aSWZhWGcvPQotUlREXDQuOW9YX2BILyxmX2t1XEJndXBkb3I8UDtJJWhST2U8Nz1kS20oNzAha2prcmVpXGhgTmQrJ2NtSltFbm8KLShrc1ZvQi4vSDkjWEM9MUVwLGJJTjZccl0xS1hgN0k6LTctK1BvKz5BImAhYzlPZiQ7bU9JSStEU2FCcCE6JC91Ci1fZ0cwYDc6V1dZNDRfYXQiPkdncV1FOlhObExgUExoTlohczohJGdyRCw4TVk5LGZZMXEhZChWY1BFIlhKbS50bAotRCZiazVDZzE5VmovQ2xrZC1BPWNGVVxGR2FiVls1N0duXylaVSE+KCVGQ0wpM2ZJNls/JTpXJGM6Sz5lIU4mW0MKLTpZRCM1bXExLnRCNVVHT2xucV5WM1dNR049N0VgV00oIlIsNiY3ZyhkK3BgZVdbL05RO0BgdHU3OzguUCIlY0NVCi0lN19QcihEXVVdXDJRTUQ7VWtBNjxZLFc3L1w7Jjw2JyxraEBLVWtvXi1NakUqSiJbMXFSckAsZkE+bU1kJVA6QQotNGc5LzxbNVBXN1NaUV1qMC0iNlxgPCFKXidFc3JON1taSiw3Z1t1O0gpbmFjJVdzSltTJDZlTW1DWWAjIzVMMDoKLT5vI2AyQXM+XzNTOHM3STssbWVWMVAjK2tXZixOaDM8PzwrTmkmUD9bY3JmPmJLYmBnUVFxQjc4Pi1lJ1hkZzFMCi0xWzdKdS5Taj00MzxDX01IbExUYkxDWXMuJi1mVTtCTihaaDVfLm82SmxmWig6YyVvS05abmRiPFJyJGxFWG1dQwotbUMwPV9VMTAzLyRbYjNqQFlBbCsmVkVZPiVaXz0hXVBxJnI2JU5Xbi8/dSoxIj1CV1FGNSdEYGlNSkYjYFlyJjgKLTJKcGdfX3VjJDQlRi9vZiQ9UDRsK3NdXy4iM0tDMSRGLWZYJ1xbWlkhLHVUNS4xSjRGSDVtPmplOF5JXjosVVUhCi1xLVExIk1DV2kkNjxDLCZNPGY9WUJdcUxhTSJKLixrWmU5IWJnaUlUPG4sYHEoUSdxMUNGbUQ/U1dVXW0iWS1lcgotW3JxMFs4ZVpGcURPOnQ+ZF45YylnLERwUk0vYm9UUWpjY2thX0w9USJHX1xXVWY8aGxEUSloaVxecyNzOmcrPDoKLWEsJ2phbkRwUiQsXDBvdF5jLzs/QlM3JV4nNCJNJ1hmI2hZIlcxRVtFMCRxQiF0cmFUOTBtXClMOmpLJWNxa18iCi1cN2xCP21WZUQ0QUNsYEI8J1AnTEpaIjleJFkkWUMjMGhFPChmNTE3OHUvVkcvaytqSFBrcGwuKGgmRCFLYkszLgotalAvL21gLFI4YCUjNEtYPTxmJVotIzVNUys7azpmLE1fIUgrRylnL3BlcEElT0RtcmRbWSJkPk44cDxuS1RvIj4KLVY4PzNFXm1oQVpLVjRuYDRiMVguTnNLWihOdTNZKGRxJS5jbmspSyhqYDxQT1w5N3NyXi1JVmBWbS8oa1U3dSosCi1ANFM+JkstX0tUX2EmPGJWU1VrYWQtZypzUSIqSkdMN2g4LkJSYTA4Q2VxLytZUT4qP2NjUSg8Om9HUlNlM2BTYwota1A4JiUkX2ZUIydobT86V2lEai0sKitlN11YamgpN0xrRCxHZUprKDkjOHVyMDFOVyZlNyg6IWxrMCsmSkI1OycKLVBgLSJPUl4zO0smTy1LOGkoRD5yQUldPzwyUXNOPSk6PzY2JW8hKXNaNzpjPy1qJlY+RypeVjJPQVRjU25MSiRfCi1NUzYwc2hMUUdnV2BNWT5UTjZAUUptZXVsMElmWTNWRHNDVlBYQlYzLiZkdCtpN2kwVEM3RFMyTztjaF4qSEBuQgotaidqUTZCZUk/NjpTLj5sTEZfPG5UT2k9PGlvPWlgWjJtJUFiRmEpKlY8YlhYXWlnI0FoW0orNUYsQUMsTjVwXSoKLUBiV3MiNVAwND5MLGdyU1A2MUpPL1xTQnRwLGBdM1JaYUQpViUoLlQwJiFEViJgM2wySXA8bHBzLkVMX01DVWwkCi1mNEV0YU1Ca3U4VyZWZEFLSkpSSmo8SVFIS3UuODA8KzRTPzFOVUw6XVtSImVXXkJ0PSVkIjZqOClpUSYrQmhdMgotcGRkMFlwK186QDc3Mmo6aSJsSjxESlVsczhAMGEqZ2cxbjkuOzwiRVBkUmF0aCpgZykhQ11AZDpUVWw6a00wJS8KLUpKSkdUaVpLIkc0RlpBWU5jUGU4PWY/dFcqVEFmMDxAWDRsTEg4XzZocl1WOVZsckswbTFeIXFdRUxLW2Q/OSxTCi1SXnNkLkc8cCNZWUdkMTEtJk5sTl5zKWRsMiY4I1Y2VSFWdUpfYmI5UlRgSihFK29nbWFUXS08J0hAM19CaCVKcQotPFduKk0jVCgraUdhOCxTVWwsQmYuU0ltSmNVSTw0OU1GRXBTZ2VZTE1GWSMyaTRlPj8lbV5oTjVjOF9eUz1cSScKLVRmTWQ5LEtoTElsRz1sQ0BGRTFAJD07PEZLTC9yTyw3YiNgb1xvcV4uPVAvSFcySHEmIzZCJ0UkQnVcP1IkYUpsCi1bLktrUVk0Wkc+cD4mSV84THJTKWRSdVdXaSljM1c/VS9wZG9ba3RuVTgvMkAwSiVaQTFEcjYoYWxtUEkvMDxzbQotKCh1Szo7SitmZ091JSYlV1BMcmxSYT1dWzY7QE1pN0EiaUAzPGkkZiFzak1XMWwhOywpR109LERDYyZRYHU6RzIKLVsuUVpYclJVUmhXXT4jQS0zSSFXSWNFJkVpZEk6aUcoPUFKR2klblZtc1wkUVg1cidnUk0tKiMrPTRsNF9AVmBaCi1GcS5EYy1uUWdATWwwUWBaLmQ8VS0iTDkwcF9lXEFsXSJaRkxCY0J0WS9xMVsnWWtQOExEQWBaLF0tKkZbKWhZLQotLSkiWExmUiJGJjppTW8yU0kuQ2RhOktrQStEVzFUU25DSClQU3NWXW47TkJfVUxeNXNSJkIvOGc3OixvUUMjZDIKLSdtVWE9VV5rR1VzJnNfMFJUPDVLIXBNdDVAcmQhZjg5SEdpXjNYNENjN2FvPGU+bWpUcUhfWDlDJCdfLjdXTGpdCi1samAiVTY9QSNaLWAxajVSTDNHKyNfOEtSQWZiVD87Rlo5QyUmISlpL20oRUA4ayVzaDdoLy1jX3VxYzQ7Vj1mNQotPU4xakNDaTdlYHAxIkRSQDRBS3ErQCQ3S1JLdCUlI2MmTS4sVVQ8PTEoNUlGVXU0TjVZNGhaPDFBUGw1REV1XnEKLVY+T2FrZzhhO1A0JUgjKzppO15LUXEqITZrLChidUMxO1FkP0FlZjgtI1pPcTkkVW5iLFpwJ3JELDUxTC02MVpnCi1qT2hhaW1uXHU0SmxfJiUiVWk8LyRCNHJnK0FmdGs/NCk1NjBdOFQ3LmN0PTEzPCpLUUFIOEFOYFxOWk8oXylLRgotTDIiKmkhLnF0WWIyT15SPnB1KlBpOGVCIixpVUhNJUV0VjljL0FVLjNsPmQ0JWdMWj8sWC8/TVFHQ05QVWFHZ0MKLVc5QTZobUtFYEAwXjNnT1ZVUzthVS1LIzk6VHJccU0pc2JFY0s3UCY/MF5wUWpvYy9gbjExSWg5WXVUWWQ1X1soCi0uZHMkQjU2a0hwXm51QG8vY2hbSn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjkwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjkxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTkgMCBSIAotL1Jlc291cmNlcyAzMDEgMCBSIAotL0NvbnRlbnRzIDMwMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDI5NyAwIFIgXSAKLT4+IAotZW5kb2JqCi0yOTIgMCBvYmoKLTw8IAotL0QgWyAyOTEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yOTMgMCBvYmoKLTw8IAotL0QgWyAyOTEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yOTQgMCBvYmoKLTw8IAotL0QgWyAyOTEgMCBSIC9YWVogbnVsbCA4MTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI5NSAwIG9iagotPDwgCi0vRCBbIDI5MSAwIFIgL1hZWiBudWxsIDQxNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjk2IDAgb2JqCi08PCAKLS9EIFsgMjkxIDAgUiAvWFlaIG51bGwgNDE0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yOTcgMCBvYmoKLTw8IAotL1AgMjkxIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjg4IDAgUiAKLS9OIDMxMCAwIFIgCi0+PiAKLWVuZG9iagotMjk4IDAgb2JqCi08PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL05hbWUgL0ltMSAvV2lkdGggNjE4IC9IZWlnaHQgMzMzIAotL0JpdHNQZXJDb21wb25lbnQgOCAvQ29sb3JTcGFjZSAyOTkgMCBSIC9JbnRlcnBvbGF0ZSB0cnVlIC9MZW5ndGggODAzMSAKLS9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi1xckczJF03SyNEPkVQOnExJG8qPW1yb0BTbytcPFw1LEg3VW88KmpFPFsuT0BXblo2RUMoYS5YSzZLO1JwPkgKLT5xX1I9QWxDXmNlbm1AOToxbU05alMiIWRUTVQ8JDNbR1EkOCMwJHE7SFouNFNQUTFgQy9tPGs8aW9IKTxia1psCi1AJmBnK1lXWiEwNCFnLm1vcnFWOjxrRHFPaC9CZi5ESEFvcmYnUltvPz5mR0hqOFEwMFFlbnJLND0xalJMVyFZLwotPFwkJXJkOyNpLVEjTmVkPSJUYzRhZmw6WTFvRUYqYzArXU9XSjY6OVZOdG46PWhRR25BWk8zb1pQdScpZW1GVm8KLWJIJihgJj81MzdpJyZvQHIpWFxvYTVoOFwpTE1jS1NZTUhkRj9JZzc3b0BrKEJKb2BrSXBdVDhqYGwvWjU6N3QuCi1fLF10IUcuYGRDLWMrX1twPjgqM2NWXj40QzpjOENwWzsjWTQ3Ki1IIVA1SCpxWUojPjh1MjNxMDJiVzRbcWVwZgotcGMoaTRiNnUzIWJWWmY/TS1LUTc2a0JgMHJdPy4pNW5DbWYiP2I1UkJsbDlNYFkiLVIjIUdlKExwMCVBQTgoVSQKLW41T2ZYV1UxcytrSlx0REtVMEZEJ08mbypuTyxkdDckJHRrLkVbTVZHNGBZUmRTLWkyOzs6Kz03VDBgNzBzPktdCi07KCJjWzwyQlE8Y0hHZXA4P2lQajI5LDU1bTVyVydsSEw4MlAxcTg+NkJAQTM2LXRQVk0pN0kubSNzazgxKmtOcgotYXRvOmo4XmBVMyE7S0FePlUkUGxGTXUhWDwjI2dOZSdcYSc9WiJOaD5wVEJtbVtXO3A3OEVNRT1rOFxSNCElLnAKLWU4Z2hbQ2hoITNkXkJVPS1GT0d1OkYhc3M0XU5hZ2VqU0l0PW4sXWltVDxNa1gnWEUvIWBfc3IvXSYqKWYhYyssCi1fb2ZFXlEialFKOiI3JWhYaiRYPWc9TT5HSC89bWltJWAwVl4lSGcyUWdPYDxXSWg4VkpgKW5KJT4zVVY6KS9LQQotUXUzcSJpWVtcJU07am8qL1c4WCtjOENVQVItbSt1ajtBRnJNVixIbDlwPVpWOjAhU0BSO1E7c2pyJzFqUkhCcD8KLUQ0Ql0rYz81XUBSSTVLcWtTYWg6ISwuZlJOTUdfVjo2aFs/UlZuW29sNUdcWldUb3FUWGZMYitjRidlP1JkUmttCi1sbC1HUlowW3BqOXNYLio6PVpjPlJyNyZrbU1oMkpcYGwtaktxYUlaNTNdY0xTKnA2aW4vTXJCXzxLXyskLFc9bQotIzRvZSZyLDNVcm5mM106YW1EMycuQVFEcT9TQltxU0Y4VmVvR19FcGNfKC1lNmR0XUs6Sz5zOl1jVERjbkQnQDkKLVtKIyNdRDs0ZSpjQUM5SEk+O0ZaQlkybE1iQj5JRFFlOk9EN1pIRFBnMkU4OmteRD9eaEtkZ1ZXVSJsZyNHOjErCi00a0lDOW46J2koayVkMDtUQU9dMEJAWlxMSWphIi9tXzpdM3EiUidjUkliXGVZRmtgPlQ/YjdQKy9AYkU6XnQ5KgotLWombnEvLV4hcFJKT1hhaFkqUmAmOS82OmhEZjBbcWQ/YyVKZS44STQ4OlooQCRBWmE6aTYnQT0+TC4oYlVJWFEKLUlMbmI4Pm1vRD8kQSRQciVEbGRTJTNdTGJJMUlxRDVrbzcsK0pfO1IwXURtcnBgZylSbGkpW2NYcSYqJ0tgYmMlCi05N2NVNyRjTWdzJG1OVm1FaWlMcGApc1xlaHVoI05PSHE6XEdjOVYxKidCJFMuTjYlYklpRG0mKi9xKVNqTXFPKwotKj9wX1xOYzhHYjZqVTFCajkmVkA7IjxcZWZeZyc5UzMpLVJJUV4yZ2ZiISw0PSxqRlIxSU80YStsS0dMUCM+PVQKLWFba1koLCtPNEs7TjtiZGFWYzd0UF5cYExOXXRVQilZVygsWWA3JmktcV1tWiNAbFBoSUxmJUU4ZjldQkE/NTxjCi1QKjA5Sj0idS8jbShcW2I8XmZbJzskdUVTZlQzPzc/cUE+RzIuaVlVUUxbKEhgMlRAYUFVRV40JyxrbWJCYTY4JgotSStGNjA+I21zXDslQCRAZTs1dFo/LG01NSxbUUZmS2xdazVjVWs7Wi1kODZMZCZLRSpSRUluWCxqMUAmTlldcy8KLUZPVlhRT2VHWVtLTWJvKHBTYVI1VSw2Mjo7OysucS4qSTE6RkZLQk4+Im1pPCRcNSRwU3NFOi4+byk2QE1PZWsnCi1SVCFDLDZuKGNVRCJHKillKFQ0R2hTWE1MbUdhW2pDNWwqVTc3aklZL3VEViVTUSJnLTs2IVZrV2A8Nik8VS5QKwotWCZYJj88U0csZmxOTF51PEs9QGM+MFUoM1NOcztXWS1wPDlkcCRVQUVMYlBkVHNSRjs+Y1loaFIkR0NKM0xdYk0KLVg5RjAhMiEpR1FsTmxja1YyO0hYMCNoI0oqRm5HZ0coL2tOUSw8dD9AJyU6dEhNMVs5PSpsTjJEJDtKc0cjRU04Ci1wUnEwP1pZbSs4TD1TVU83bCk3S0knaENAZG5lKC0vUipUckgjYjU9Ois6SSxqJVRdJW1GRCFlKT0lMz0yOD9WOwotJUlESStdNXVdVUs9LFBva3UtOEMsJlIiXUMsWEFjXVo9NUBVMyVIQWQsaFEmTTxmOmpaZ2A0JVFLLWhLTEUxOy0KLVBKMSw0a01FaTZJSUNzR0RLZWo1aDA9J2VWIj9SO1pFPDRVSC4qVFFYTzRGLU5xNWZPYVpudGUlKScuKEI0JS9QCi1LQzJcXUZqaVsqZ1VvWnJZI1pGLEViPlZeR21iO0IvOzFtLVQrcDdDMC8wWE1ecjtbYiY2cWpzSU9XNF5SNSVhdAotNmBbZ1ssczRcZEdUTjVcLnROQC1WPTsxTk5zZS5xPS1FKl44QWEjLy1mIzBeNEwnVzJhU0IwL2lWXVo0bjg7LkkKLT00UVBAUydAQWxMLlNyalFOKD1pJ3AwaTciRz5BL0UoX2E1R29JTTxickxbaWsuSyoqMGIuRjZIM1lqMG0lWEtjCi1wK0ZgUU8iT29pJldKUzk8TSVcKjhTSzE/R0Z0L09gdHJYX2BTPTcrbWJVMUtGL29ILDdiYTtQWHFBb11JQyVxaAotPS1VKmZLWm5gXS0icjhJSUJiLE9lZXRYZGphPW5JWURwX25nMDdbbT5dNSRCS1w7WlNsTCYlYmhpTWpFZlRlRGUKLSliLTNjIiopbTBNVixbND5VZUw7VFhJbVJxQ1dJa0QvNT5RN1VGKVtwPkJJdUlpOjdmMjhuMzFASUYnMF1QdUg3Ci1VXFY/UzhFblk4W1ooako7S2Rka2ZsPWQwOTQ/UDxQRC5KZHBMbE1KM1E0b3UhRzxFPz9nWG5TaU82LyRFT1E9bwotMXUjXk1kQjFyPW1RJkRGN2hPZmVBXyghKj8tRSYhMSQyYGVSUE0kNGptOTAhaz9SRVZcZEp0bjNYN3MkXVU/KFMKLV4wL2dvN25JTE9lWCc2MU06L3RqOzhsZnFQaz1DP2ViWztubDFkJyxvcSZrS2dHXzxuPyNAWio6PGhKaDdxcT9yCi1VUlNlaEVzb1QtQC4lMVxbXmVUWiFCWj9gbW5KImtGLFJYMS9ZNikkJ0RfXCZeQzlKQFhmMTxGaVwhakZMRXBjVgotZz5HKEQpVyRAKFhSPmg/ZksuSlFqSyJFP0EkKnQlUzBxTjw4UDdkTWJeXSlkJEkta0VSdGdXa28kVmkyIS0hc1oKLUVBWCFbZkssYyNCTURrJltSTy1jSWddWTM6UFokTks1cFE9Q1hxLWFvdS9XSSIzOGNIZlprTk1ENm8iRmgzV1VDCi1EWEAlUFpmXFhQKWlvLE5nYUJTRmhJIyotI1AlMjBuK2gvO2puO28ycGpMcS8wWV9KaGRRMW42bVtpcTwudUtVcQotQGJZZy1MMjRmXmxrJyUpV3IjTilkZFM3T0NtKiNlV3FWSmleNW08XW0wYGIjSV0rcUghaiZwLCVGMztoKnJUcXAKLV9DTy1tY21uZiFjQ0BVVyI6cyhmRHVmcWo3W29HRUgtW0ssWDozVT8nVCRZcUkmdEU5OWtNZChfWlw9bCFnI24sCi1tbF5hYVA1Rl9lZ2w1NSg6SWBscjJVXnNdVElcZ0dibyRrbTskdV47WmdXTGpha2hzIzU0VDVdcCdnNmYkJ3ExaQotWFJfQC5fNjtsJCU5Z1pPP05tWidTbCEkI2NcVnNlXSU2N2sjXU8sVzokZ045TnQnLmUkUDg/bSY+bjxnaykwYj0KLUokIyprRDRMLiJXPTgvZk9VXCtGYkdNYUYiRlEzN2BVRi9VTFpGLkJpNj1xVSdUTCdAbidfT3FmX2onK0dnQiFVCi1ZWU8kZT1Qa1JxZishUTlZdEMwdTJVNjtRYGZLdENuSl9PQ151KkU8IyxnblhuT2hPYyo+cmApZzI3Tz0mIW1bRQotPHVOZGxtWVQwbTBEdGY/Y0psI1QjMSUzKWNIPllCRW9IP1cpWHRKOiVTJCI9QGlTQHVrSFc9b0VOI1gtZixlcXIKLSpqUClSayV1JUkyJyJGKyswTC85LUZpQkhyPy0hQyl0LVdIO0ArTCFLY15PLystST9ebFNCXT4vS3JPYywtKC9VCi1jXW9YZC9MLCQ3Kzo5UEFMVlkwKEJkOE46LExRWj4mVjBvUDg/WGRCT0Fcb00mbGc1bWpYJHQlbl4hNmQ6cm9HMQotQGpYaCtWKD1Jci5PLFFSY0xuKFMtQVE6X1AlUFtGQ2thV11xRCNAS2Nqa1xnJEJGTl9OJiQ/LztRaE1cP3U0J00KLS5JcXFdbUtFQkVfWmpoPlF1JSUhTnVtMVZbanQpJ1ViW1dUa19VXDhDcTVXNDAhMUFTJitNMzVvV2pZNFhnNmI1Ci1ZcVpaLFRkSW46YUhJJUNkYFg4SUhMbTxPMDwwUlZsK0Q8az5ccWpwYVYqdHEwM0woJGRqRloqMSE0byImLkw8JgotUUZgODEhKWgyJG8wWUEpTD1qUU4ubDA8S1pCVz9iPSMrYkEkJmpXaEJeW1NhJWxZciYoXDlWMSc0IUtgO0xwNlUKLTJcU1srOE9rYGpiO2ArRDNFKSQoO2s0aVVSJjlKTGlxJzIibmpJKGdWUGdjJ0kuQ1crRjIza05dIT9DbDQ+WTNlCi1lJkhqI2I8NUNLbWgtSyZiME43LWpaW2JNNS1zVz9vQzUlJG9mbU5uNUg7c1EnQUdjKTpJI0RfJElUU1FlLSdLbAotZidaS0wrRVNQZy1DJGw3XypSVmc2QmlVK29IYGJwL0tMJzc2TCpyJ05nMnU4JW4nQU02Uz8mP05xWXNWJnJeQ1oKLWNTOmxrJ0liYURGRjE4RE1cSWB0RCpZOzBcdSJnIWxVYDUkWnN1KWQlWUFEUTgxXlovLlRKVlo1dEE1cGUjV2JkCi1NP29kQFZZOEUjcUY+SHBkQzFSTSN0OzRuLWhPL0tZUENkXEZcPDc6TSVtaHVvWm5EMjpGcEdHOUN1YmhjM0JTUgotZDcxPkgxSiFFOlsiTlE5WXFYWCwxRDxmV0V0OnJiRiY0UzU6VFphbGwqWD0wNFw6aEA7K1dEaideXFRCb2grZ1MKLTJtaikiJ1dWNmwnaUwmRDpYW0tjMihcSENrPipQTTosKDhtUGopLV4jdXFcKEM6Kl45RlpiTURvMiNgWDwsb2BHCi1GVSdXb0sybWRGPGM+MDtbMjE1ay9OL0lNPEhWOk5GVGpWUDZXaGVeJyhsbjctWilQQW5IUUNYPi1YPnFvakZOZQotOVVnc1tpJi1wJy9GLUZyVk1bN0hNTnJaL2VdMSZfIiYrdEZxZj5WPVc7U0QtZG9FOkI7M2NRJzsxRFxILSElKF0KLTJqSGc7PFMjVFktSDRPMDhyPSdOMjZUWlxES0dHZzJcYC89cClhM1MhZysoXzJjXkVgUFlFTVxZcXVebTc4RSNVCi1lNk8qJzE8PDRLN3JOVFhMOjpcLS1JaGBgNy5KI14nTzosYyEtLl40NlZDRHNvSSI2Z0s0X0pkNmUhPm46NFsmPAotWlkzOlRAa1AkIk5qIS4xW3FPP1Y1a11TPjJPTmMxUGoxMCkzTDZGVFFDVmFeMGUtNCQ+PidsaVsjN1Z0OTBKQVQKLTttYXAkWFhTJmszRWY9XmFqP11wKDRfPEIpWGsrQytyIjA9cDw/Kk5pZz5yT2YuV1tTW0A0I2VrMlw2by0kSl9sCi1aQS4sVUBsLWVyRG1cN2lQRF5tQHBJPFluIm1LRyUxYi9KXVxPTUQyPipnKSdmKjwqaFgnSEZvP00+Q1pbYUIuMwotZT4mcls8X14kdWFdMCQnJXM7TGdGPmwsTUMnPERebXBUcyhGPkdvMGNnYldgNUJCYUw4PSpoLzAwWjtDRDBXQkIKLVFqR1crQzBjJjBOMVwuPytdaGtWMDlGbWAtSTEmVFYiXjE6WW9KU00mVTArKEg8MmhJUWQ4JFk+ZyJpQj5hTXNqCi1GRWteVF8wZFtcRyV1U1VkYWA8QjhUPUZQbmVaQHNlV0cvNikwOycjIklFRD49Jj05YmZrZSokQl9WVG9Ra01VSQotSCNDJztHckBtJzw0UC1CWTxdUCZDSkx1VkcsbiJqNEQ8QStLTWksMDFMR2c8UEQnTC9LcCpPMj1CZ0VmN3RQcj0KLUshYF5RJkFzLFlNXDoyO0xLO1pPUVZQZ1RmLiszNVBXJ3E+RzM9LGNQanQqaihYajczOXIhIkFJPCFsOjtRLV0sCi1sL25rMCNDPGkqWFoyP0UydSwlLSFHJUhbSSRWRmZHUjFdNysrKCJeRzFZZklQaGJiTWVPcmhnWm8+MC9vNTxFbQotLnVBTVlKaTxXQjxKcU8jcVlSZU0waWRDdD1NSj5eb25pRk5PPTtpRi1iay1LKTBBVGZOSGxYbmY7MDRJUHFtQ2sKLUA0az85cEAzWz1tXDBFLDswYCYiKEY7TkcwM2hXYE1tbHJQJSxrUig8aFVCc01SYDdWXEJCa3VIXis5bE8sSiJECi1CNXIuQjQpZCcyO2cxcyJxKSoydDA5Z1VRSjY6Mz4kW2lbK0lzLitaX1E8Zy1mOj81JSM4aWtrTTpuL01lUGNdNAotYnRdKVxSTUgxZVtlImptOjcxQV0vNGJoXkRwYWZMblVbK0tLbTRcTkdIJSRxQDtEKVhDW1VrUC07ZVRJSj9wKHUKLUI2WnEhbmgkTkNLOnFqJFQxVj5BOjNpUUhPYk9AIlUvI2oqZFVmL0ElPj1RcG0hOFA/PiFJY0stXHA5PkxRdWRQCi1xLzszMG1zVitTRyQvczFSPGI0cEA3WTEvVHVPaiszQDtSXWU/QmRoSiUtR2E9Sl9sMlpcX2Y7VFInc2IxbEliXAotWlNfPEY5PVNjLVJVa3IuRT5MPENTUV5kPWxuTCRfWmA9XEc5aEczbDBxRCNmNWxLQWdPYTM0WDIvVDZwKy9VYTYKLTspTDguUjNkcyVmVT1oPiE3X007T1hqU1k2JDs/blFGX0tEPTo4QDBpTjhNZlgnM0U8YHFRVmZBSl9OVDlNUSVdCi1GbHMxZF81Yio0KWsrcURxTmlmLFl1NWkkWWAqcDg9MFxsL2JIUipjU00rREQpXlFzcDtjR0VQR2wmJWQpWj5VdAotUkJxNHNRWzVoKUhVMUs+TyxXVi9mLzYnVi5yUDVDRWV1ZXRbQDNcLlxvRjU6MjZVNSJbIUpMRUc9YyZvN0JMb1QKLUktX0FrPjQjOEMiLV83ImVDYUZkcU5aL0o4WzguJ0BmKCNJRCcqLSxqMU8sLlx1a1dhUTcmNjVNZGdyKj9PYS09Ci05TTtcZj0jTVprRDQ9amNxXD9iQXFoQyw2QTtgNjJIMChmSTgjNyYkQjNaKj4oaEo/UjI1LD1WVHEhTCk0PG5XSAotMCdATzhQUFJBWUg4IS9vVD42cnFQWyJnMXFDQkpbOXJSdC04LDRUaTNNcTMkQVopJXVTKGE0P0QqYixSLEZsPkoKLWAyPmM5XCtkTnBkdUdoRC8jcS10XVAhRD1TXDk3W19WMzhAMz1PU0c7N2A2REc4VXVKcEhjZzI0aGZIQi4lJHBVCi1HQkRBOEo+VHUxLEZgMitHQ2EpcChOPFdxPGEocDZIWzE/blQ2LEA6Wj9yOmhTRChnUCQtZiEyYG5TST4+alc0RgotcTdSR0U+ZUs3NVxkdT42RGtFUiZMcUs1KE10K1AjXCdiLThaPD9MSjMvLEUqT2lwaVk2XmdCNyo+P0l1QnU3UE4KLWRuMS5wWCcqc2snQF1ZSWVPcjNZZidWIlY8UmRRaWJoUFgiZ2UiLU9CdTQrVkQ3bGRrSSkiOVwyOThxRWR1UUIrCi0mY0w4bis0ND9uP11kQFJZPSRnWmtMaUszZzY8LG5DUmBJLDheZEkvNi89UURYKl8uXyJQcGByZmZkKEZdW0UvdQotIVI7XEZmM00lb11UJ29ubXVWdDJjYitQJz0sRUowR0ljUHFoPjxmbCgrJWFcVHBhYTZmIkVsZ2gxYGRxKTt1VkUKLWY6QV8tU1pVQ2lyTGxBbTZlanJnKltCNEteRVVCSmVwXSIsU2ghNEMoRT9hQ1NwaVZmOVFTck9cVUheVWYsXV1yCi1XIiU8XyFUWidcZnBMNlBJQFJIKDkhMktFTTdxbDhRKl04Wmg7SSwpWy5TKFhDPWhYXStsOnUwUWFvMzZTJ1RtSAotUkhWMVliXlBvO11uYXFoTEwlVjk/RzosQklVQzdKLStwc3FsPFpeOipfR1xpImtQZSRqaDw+Lz8/dHA7IjYwNUEKLW1HOjZQMV0/YytvZmpmPW1zYjYobEc7cighVXRSRm4+X0s5KUVbSUZgVHQ4Um5ZW0RxVCxtSlxxPSxPUW8hSEkuCi1ULlRYcXFzdG1lbzs+Q1QrJEs2VixMJj5VRyo3OWhoYVIyYlpbblkzRkMuaTo/WFJcNz1PUl5OP2RLYEFeKSFBIQotSTdyPEhwLTJMTEVtXC9TM0RuTVovZyNONjtPY25NQ0tfVUZYVmhXVV5ROCJPSl5EcVVGKWBAJSsuckJPVVtxaWoKLT5PdVI+R2NiI11aaG4rPW8iVmMjcy41R08uSmslUGhnYGk5cXI+clArMjNmNDdVTEdLNFhDZUxodCxfakVrYEZrCi0hV1c0TzVpQGArMWBkNThLZ09hW2ZROTsjJlcmcDhPXVx0czBjPnM/aixxdFM9b1NHXjhFK1ktLGJAal5QdEwvJAotZmxYcjowcHRbRiZoMEAtRUIwUmJrRUZUa3JkZEBnOWtbTDAyJy5sT1YsSFFCZypKWU47NW1PW1EhMVIyVDMmLXEKLWxdcDJzSV1sblk9Ujs+WDI0aTI0WiEpIjFnTkM2aDs3NTFzUVdwbFNuS1lVJERqVDVPcnBiP05ALjlPZzItVTY+Ci1gRkFBKWZ1Pj9GK2UoYWZFMUUuQjliLD4rWl5LVkFJaiMhP2s0Nm00LUBcbWxlUTZpUSowK0FUUkVCM089WTJoWAotRGxfXTNwUUkxSGNYIj9lQVUnXlJUJnAzdGhYXks0ZltcO2JgU2tpRylFazgrOT91cEpxaU8mQTtsQE91cSMiRy4KLWNaZGUkb2ckLmc/OG5ATW5HLVpaSXBdWkRKJ2xtNnEibnIlQCo/PXBVTDx1N1lWUz82XyFrOz4ic00+ZSlbSmJhCi1DYGBzTVlkO3BnNkxgSl9rIUxpYDU3Zlg/b0tzNlpYPkVFXDc1N15CZmdUbiY/R2FZbktQKTJbJlN1NSY3azgrXQotKkNtQypPV0kkYCdTYDJNMSpobystMVdtVi06dDhmRF5TLjRQJSxmXEVqVyEoOSFaQ0UvajVBTl0uY28sSSdrXCYKLVo6ckByOWVtRjEyLDFAImZmKVlcS10rcGRZdFhDRDpHRSJCNFxyO3BxKi5cMEtgT0o5WVdXOls7KG8kYDc4XjVUCi0pK1JSWGA0bmxBWWwsXzw7XzpddTlpSi5UM0RXVSo8QydKXVg7c2wyPEBkMC48RTYqJT1dXFdTRl5cRVJYJCgwJAotPSI9R28/ISImXkghYVonVTUxPSVbUGErVj1aMDlIQW0pUWJUNGhDZFEpQUEjW15FO1Q+O2skQERIalJCXk1tRjoKLSd1dD8iW18kOzxoKUE/Y0ckVlMiaFo/blolSDJWPlwkYkdQXDhHMyw4bVlHNXFQPklpJyFIYEBkaFc9Pz9XXVhZCi1MI0NEISlQYidpZWZmZkBHYlUrUUAkbiVVTWw5YiM0LGkpJ2M5JSQtUiYzJy5BNFNtXE5BRVM8OEJrXFNxQkc3JAotUjhPS1tBOC9KWXMuanBwQUtrUnJyXjJiJzNbLGw/VURgMWRWSiJUY2UiSlVabVgoaG1nODowbEJkZ11eWF9Dc2QKLWMpQmBLUUZRNnFxKiFfc20kW2BGWUtYVGRCc1ZcMWo4bFVMcUY1XEFEVE9OY0tCQVZnbltWLVtMQGo4PEhQWVlZCi1DSExVcFwlSz0jIjAtQHFZNzdhQiovWmMhRUgubShcYVVNVCd0TjNgcENhNkI0T2RmZy1UXk9eZUZgOTw+Kz4yIgotQjQ5Q1toNGVIXGonQWFxZ1NPLU0ibD8pSC1bLVgsQyVtMXFoWXBUQ0khQ2hDUkhTclVCOVZTK146MTw0SFRwJmoKLW1YKVxCXltRVjgoV1opb15HakwySTZVZmJwM2pdImh0VlhiUWZgZGorOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjk5IDAgb2JqCi1bIAotL0luZGV4ZWQgL0RldmljZVJHQiAyNTUgMzAyIDAgUiAKLV0KLWVuZG9iagotMzAwIDAgb2JqCi08PCAvTGVuZ3RoIDIzMTUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCxpIUslKXBGKDkKLSk6NmZNMmM2T2M9P0lvRyUybSJAalt1Mj1AUUNbcTdBRS9ONVg2bj9OKzVgLkFDUl9GM1MyTyZKVC9QMCs9PElOCi03UGQ7W0EyXz9bYSE1cWYoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0VuVF5oIUJAcHVZUwotKVpjY3EnRlxJWExyKDtpPUozXUQyQixROk9sOFRGOmluTjM2aklkcUtdJGdBI1JrallPZHNSM1QsOj1YO11wVi8KLUduPF41K3AyUDdkRyRSTCU0OUFfVFxhbEpTWXNIQzhAbWY0TEZRY1lqIW1UXy9FLWxNX0BHXClZPlRKSCI6ZydbCi0tcEkoQiZpI0BxXERCNiomLEhfOS5GJiFqaGtHcTVPO2lvJDNdYWVVIUg7RWA2IyEiIydGNWpRQylWZDc1ZjQhdAotOnVGU3UlSEVRNiYuUllVZFtWW1A4bGRYKks6KEwsJG1XIW5xMj9PM2tlaT9IWEc4KSkiJGs5ak48PFw7MTYycFwKLWo+O2shcHVzK3QmZltNcy8oNyRvJi4oKjFfKGR1ayNoRCJpLDNZc08tL2lWMihsJkMmcVIrPS82bTJuJSItQjAhCi1dWWIpJm8ic247a21hbm1SLjw4TUBxbyUpIlgxWlgzZlYlITEsSFUjaCleRWFLOUw/Ry1jJj5rKT9nZUFSXVIoJwotVS9qIi0vL1o9aTRxRWtAbnJEYSdUZyRmXEJXKVhqblNobTdWSTQ0USNyKU4zWVM+SEs8PyIpUyFaU1dcJEs0TnIKLSkkTEZKY1FLaGVIZkZrUDI0LjVsOTBpUj8za0ZrakwsMyo7SG1NaXIyZSU2ZC0kOj9dMmE2OERqcnQ7PFBxTkVTCi0yRlJYWGZzWjZtNyNkPl1mLTNjM0tBJjdIVUxaLkUlSEUmUVlVKzdCVz0scyJGTHQrLF9eaUpEaWtsLzpvIyE1NwotJ2w1aGY1ZlBcY2loZUElLWM3Y2JLYWVQLipHJkIpQ2clWVsvVWFDN05JdGEvUS0qL2ZsQlM5QlU6YEUyO01JMlIKLU5PW2gsTzMhXyYiSTdxZ3JUKjw0IW9jKlc0SD50a2BmKSZAY0teRSZvbHJAdClTPD5LJVUnRmAxO0NzcU9iZWJuCi1VKHAoUlxEaG8qNEE5VWpxXllmQ09hbztdLC1FY2tFL15FKEVNSChvKFlnYVQ7JS9EUFFwQ1R0bGtKVkRLRz1acgotMTpxJFo5S2BmcjZfZW84MUpYIWVCam1hXDctY2hQYkU3ZTQ/Rz5raiVdZFU3VyxsJCMyRVBZIWpxTlBZXVAnNWUKLSktL1YkbHUqLGhfKUYsSmEtbl0nSDw2KVteJkY0bFhvKUokOz5RUkc+SXQ9dGZALyg/RTUsRl0rIVJML01SZzF1Ci0rQ2wkTiwjU2xxJS5dKUZiZkx0Vlk9IjZfZU5UPUNnT1lfTSUsb2FpLk9QSy0qbEhcOy5DaClFWmAoLiRDNDlVVwotMGMkOWtTPiciRlE5QXIlNC5fMDMiVzFHNz9FIjVPInVsUEk9WDFvbk44UFBaVktnRk5SYy5MZC1vaiMoK0pocyIKLU5IS3NbK0pgKW85VSYoRSVqc1hLNG9kaF4kMWlPO085aEhgRjU3RUNYJSxEXEo7MDFySnE0Q1MxJ1wpbE5PWWMkCi1ONT9QVDsqaUVrTEJdNEsoVmsmI1dURHBUVWNxcUQkM2BDW1BmRl4oUzY6Wz8vVikwaCkyMzFGSTFlUitNcDU1KQotWztcQUtVWExoayN0NjtKPDMxMW9RdCZoV1JCQSU1XC9lXzlcT21LZ0dxVlI5T0lNKz0lIlkzMS9WUVMxUSZEc3UKLWtsKmZgUScxVktFJkwwPWM5U0FoJVQqYmM7RWUhZTxEMlFNKyhQNW44ZEFYXy8nIWJZUyFzaDEvMTxIM29VPW5WCi1pVWAiJkteaEBNWEU6My8oXkE1Ulw/JlxrJENqNDFSOFFpcSsiNzJSJm80WylEP3I5P0ZjP0RmWEY2LXFdSjFeMwotbkk4Y19tcGVrOFUpbUc9SFBEUVswb3FhYSpgX2lTPTVoWz84Im5Fc1AodFM6JHMvLl8mcTBzUkYkSCo7OHRhI0sKLUtLUTFfR2ldQHVRKWxQckw/OitSNltKOTtsQ0xlbyZCY0tNUCNSXDZIPzF1dFNmQi5cRydZYGoyTzRXT2RaSk5zCi0tQj1Vc1prZUVxUUtUdC1AJnQqR1FgUV9xQ0U+XGwmRmk+VEZGLWVMZDEoWkNHVTlgKjkkXUk+QCMoc0FYNDNISgotVl9WRydRL3VLaGQrQjUtXTd1O2MrdVtOQGknaWtRMUc8YiU4QT85RCZlRFVHUUQpSSMrL1RtQSh1NlQtYEtbNl0KLWUzbF1iKktXOG80VmI/M1QwRUNRLSkxTFBQVDtZYiQvM2ldTEdJUDA6Kk9rXEs+XiEzTCgsP1hqUUMrY19sUW0yCi1kKTQzOE4zcy9OJE9qK29ObWFbMCRrTmNuN1Z1STZdT2svUEMtImdVTSlvTG9qM15YQ2dTSUNNVSIpVHFUVl4nLgotO2Yoby5Da1wubVxMSXNXNTBEc1dbXSc/amp0blNrV1klVEhSKjZQMiFUYz9XW102PU1UJ2smUF1vVVVfYEQ2O1oKLWteZE4lLmQ8Tkg3SSZpPFFkXT5FOSokMFgnIl5PISw1XDM4bkZrODleYDs/KmQ0ZjM6NTxWIyVARFlaWEMrKUoxCi0/QCYxXmU/VkpLLXRRZVgrT1YqZlJgNWRoay44cmplb1t0SzpuI1MsLHMuMm9RLmU2YTInZGs4KVw/bjs2KiwpVgotITZySkdPRHAoSjMlWT4iXmAkND5ATXFGRiRrPVNWKWpNKGhSYlVqcCI5P1hgJjksV1pKVHNgcVVhLixnbi88IStCYFN+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTMwMSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQyAvSW1hZ2VJIF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW0xIDI5OCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTMSAyOTkgMCBSID4+IAotPj4gCi1lbmRvYmoKLTMwMiAwIG9iagotPDwgL0ZpbHRlciAvQVNDSUk4NURlY29kZSAvTGVuZ3RoIDk3NyA+PiAKLXN0cmVhbQotCi1zOFctIXMzMU5DUksqOyFzOE9uVHJyRSlDczhVPGVzMy1vMmJcJG4hMV1QWiFzLWBvZVJFWV0hUksmW2VzLVlcQwotUi9tOCFzOFFdVHMoN10hQW5NJ1QxXU0lZXMial1UMVgsa1RSSyMnVHMiY0oyMUJARlRzOE4pQ3JyQUplISt1NjIKLTFdSUZUYmxAXmVzMy9eZVJFWVxDYmw5S0NyckM5ZXMzL14yYmZsTCFiXCMpQzFYKyZDYmFKTFRSRVdtQ1JFVigyCi1iYUM5MlIva0hDczMsKiFiXCE5ZUFuSzghMVgnRzJiVlQ6QzFYKychUkVSSSFiVk0nITFCPlchczMoSmViUSsnVAotIStzRlQxWCNoIVJLKjtUczMtbzJSQDQoZVJLIygycnJBSjJzLV8qVFJFVihlYlwhOWUxUlpHZVJANClDUkVWKGUKLVJAMElUUkAsayFSL2lYZXMtW0tDUjpfa1RBbklIQzFSVmhUUjU9bDIxWCk3Q1JALGpDUjU2WGUxQjxnQ3MtV2wyCi1SL2lZQyErcVchMVJTNENCKWhtQ3MzLCpUUjpjSjJCKWFaIXJyP1pUcyg5TCFCJD9aVGJbdEoyMU00aTJBc3JbMgotUkVUOTJSOl9rIUFza0dlUi9naTJzKDVsZUFuSUhDQW5HWGUxTTE1IUFpJ0khMVgnR2VSOlw2ZUFodTVUMUI7ImUKLXMoMjhUQWNTNjIhK29nQzFNLVVlMV1SSjJzMyo7IVI1PWtUMV1LNmVycj1rIXMiaG1DMVgpN0NiW3JaVDFHZDVUCi0xUlw4IVJFUklUUjU6N0MxUlUkVFIvZiRUcyJlOTIxTTMlMkFuRWkyMUdgVkMxR2YlZTFYJVgyUjU2WDIxR15nQwotMUI5MzJzImFaITFCPGghIStuImUxR10iMiE8PCchczMoS0NSL204ISE8NGhUcnI8JkNyckM5ZSE2Z2kyYltwayEKLTFCPlchITFFaWVSRVBaIVIvaVhlITE+VkNSL2Q1IXJyP1pUIStxVyFBbkQkVDFCOyJlISZPV1QxWCNoVFIvZiRUCi0hJkhEMjFCN0NUcnI8JkMhISZEZSErbDMyMVtZNUNoI0lHZSEhJyMhIS9MVVRHNXFWQyEhI0NlISRWQ0MmSERlMgotbUptN0MhISdWMiEzLSMhTF1ARiEhISQiISEoNmVlK29oVFQhISEjZSEhKGdUITRyNDJXVzMkVCEhJTNDISonIiEKLTZpWzMyISEhVyFtZEFvZWg3TDsyV2lFKFRMa3A4IUc/JVhDNnBzRWUrc0lVMiZIRGUyfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0zMDMgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxOSAwIFIgCi0vUmVzb3VyY2VzIDMxMiAwIFIgCi0vQ29udGVudHMgMzExIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMzEwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTMwNCAwIG9iagotPDwgCi0vRCBbIDMwMyAwIFIgL1hZWiBudWxsIDgyMyBudWxsIF0gCi0+PiAKLWVuZG9iagotMzA1IDAgb2JqCi08PCAKLS9EIFsgMzAzIDAgUiAvWFlaIG51bGwgNjQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMDYgMCBvYmoKLTw8IAotL0QgWyAzMDMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMDcgMCBvYmoKLTw8IAotL0QgWyAzMDMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMDggMCBvYmoKLTw8IAotL0QgWyAzMDMgMCBSIC9YWVogbnVsbCA3MzEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMwOSAwIG9iagotPDwgCi0vRCBbIDMwMyAwIFIgL1hZWiBudWxsIDczMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMzEwIDAgb2JqCi08PCAKLS9QIDMwMyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDI5NyAwIFIgCi0vTiAzMTggMCBSIAotPj4gCi1lbmRvYmoKLTMxMSAwIG9iagotPDwgL0xlbmd0aCAyMDY0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQ5WkQqMFMuOjo7Ci1FTF05ZjBcOSdzJzAyPD83XGk9WG48ZDw3QipYM1cuWTw1NV9VJmAtTjxaY2shNDZWdU5DUFUiO1JINV1CZkROVAotIW9ccz41WVdyJk4rUlZAYURIcVNOXms9QFxKPkRcLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxM01wIk1FPmsvci4yRWozaiM6MVFIPlFgYmYnQmFAJChmMUtaZElhLClxYD5QCi1iU14tWmhJLUUyRU9jdHIzV2hbP1hDOVlKTjM7bFc5ZmBwWitYajlTKVMvNFJCSCZFRlUtJzhJSlpyc0UtQWYkSQotU0lJI01fRFZqUyE1Xkgiai9EL1ElXWhiIzNQLFhIXD8/QCVsYjlcLiIxWmM/MTRnP0wrYmE/LDVXVEE1ITg5LGQKLUBqalNwLEBTKyk0Ok5NSGZjTFZJSkRgPHAsOGU7IllwNVdAS2FlVG5tWT9MdCErUF0mQl9yVmEsMD8yai9WT1YnCi1PdWF1LCE4b2pAMT4jRF5ObGk+RDBTQk5AWVZNMFIiUTVuSSw6Y1NMY1JKKUVUMGhLOmBsKmdHLl5dV25fXXJcTQotTldYT2UzXDJ1W19FIVZZLiluOm9GOUhNM1YvIyk8Mz1OZTcmZjFdcWtib2QuVTdiTD4icCdBaVJTOFpqZ2NXbl0KLWImM2BqIUtfJl1kUEYvRFhqRjxcJTM1ajdedF5sZGokOkxKZCpkbTcyR00oQCo+JDBZY3A4OXAmTXBtMVhAamdkCi0waSZMSmcpTDd1LmleUmksIykhOWVbOV9gPXA1IW5oYjtNaUk2UyhjZW9KL1RhaW1gOUYzWDw2TS8+aDpUXW1dQQotPGFhPzs4YUpedTwpbHEuTnJHYFBNcFNFPDYpXDAwLk0lXCdSWWxfY0hvX2MtYytyZFE1bTcnTGNTOiokUGBBKz0KLWFTaGRhX3BZTS46XlNjSjRvciFQIlxgPmlYcVpWYVcpNEE6US5WLDslZTwmZkZDYUVubzUpR1xXZUhwSEEnIWdpCi0lQjNUQEk1M2MtSG87R29IP3FKTilaODkxJV5hbVNXU0tDUi9lQUgvSG5bTD5rdWAoUGVXUmtbMCRKb3BvMF9xWwotbFEhJjEpa2JAXmBULDFyb1MhXW9fW1QxOEE9WSwnNllPbihOPWMqOTJpVycjKjhsZjJtSiJBNyQlMCN0Lk5CQjMKLSg7WjhuZm0zclU6czVfRCdZVyQ0bDw/JlVAQWhqPF5NQSg7TkpHKWA7SWQwczdUI3N1Sl4pKVdjOGM6WENnM2NACi08b15OJmpgK1hfOztkIkQ+SlclV2lzNDwmMFNZS2BlRFVEIlxicDE5aT8oUjRgUT5iaj9MMmlpITxecV1MaWJVLAotUUxHbl5FZ3BOKGJmO3J0a19gVDxBUWdLajlmXjknJkRdWnIxKk5KMDJqRHQ2NVxaZkg4QDcoZ1E5XV9UXFUkMV8KLTM8dDBdZEwyLlY5Kk0/alciSGkrKSw7J2cuNDNpWSs2SWY3I1lNZmIhNUtKWW43TSJmYCduM1BiYzdDOVpyYC5lCi1pQExqSkpWK19sJGtoSlMjNmpKPSoub2VwIVBDMEBuQSs3dGZQa2c5JmBcWjVtNF45c3JlJiVVI0RUNDJsTkIvOQotIl4lISo3Vkw/VF5tQCQqOGpqakgsX1IkO0VxXmA8QzEnPys0U00yS2lhNjJRJTNZL3EjKmUqaUUiSEQ3PTNgWGEKLUsvWCFeNikkQ3M1aWVrcjBRS1VCJ1NTT1tKRGNrPUUpXkNaV0ttJCJLVWE5UTtTZi5dUSpUMz1aMiZTa2ptZzFyCi1iSzlnTmwlKDZSbjFwNVlKbD45bzchLDlsVHBBVG5AKjdfQi91PmQrUVAzYzk5clhtP2pqXk9lZHRBUExIIzFkUAotTjk2TUcsVDhYJlpTZ2xhMSdcSjFHZ0FCczNpIjxjUz9oUSw5Wl5wIUpXdWlsMT1nSGphZj9lZFVzYkY0JkNNLToKLUVzXXFJXjE3ZVpiLzNwXz9YXWElMlknYSY3OHMxYlVMNXM4RUBDRFxMaF5lXCtrS3InNFJQV15NS2twMmBLN0FGCi1LO0piaDdaVkM1MlVbNm9hVl8tKmlQXyVHMTEhW0gzQkgqQVdPSjlPL0JsSTQ8K1RfL2UjRVcvV0RkTys7WDFYQgotV3RlKjYnY044ZEFmMzgjb20yKTpaRDE/MEQsNzUqPGojNEpdTm85X1EqKGo6V1FrZCU9IUI1P1RpLTNNOURGKUkKLThtTGhmPEI+SVIkT0trdDw7RU8vbVhEIkUiJCNCS0ZXcEFZXUBCTmM/Ik9fUStpWFNBVjZoKzlhSXNLL2QpWy47Ci1xJ11OXzFVXEcsaTRvcjEvOmhYVUlDLThKQGtuKkUtclNsayMvaFM4N1NtPCpqSjk9UExjVmw2cHVjPGVENT1QZAotU2ZLVm8hPiNeXkNMYi9pYm9pMDNYXHNDVyJYV3RPIiMqT2BoUz0pJlRvPz0wZHM/UU9ZXD1RP2VKLFI7W1hsXS0KLS1qZF9UUFVSYStsWDpBK34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzEyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzEzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAzMjEgMCBSIAotL1Jlc291cmNlcyAzMjAgMCBSIAotL0NvbnRlbnRzIDMxOSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDMxOCAwIFIgXSAKLT4+IAotZW5kb2JqCi0zMTQgMCBvYmoKLTw8IAotL0QgWyAzMTMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMTUgMCBvYmoKLTw8IAotL0QgWyAzMTMgMCBSIC9YWVogbnVsbCA3ODYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMxNiAwIG9iagotPDwgCi0vRCBbIDMxMyAwIFIgL1hZWiBudWxsIDcyMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzE3IDAgb2JqCi08PCAKLS9EIFsgMzEzIDAgUiAvWFlaIG51bGwgNDkyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMTggMCBvYmoKLTw8IAotL1AgMzEzIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMzEwIDAgUiAKLS9OIDMyOSAwIFIgCi0+PiAKLWVuZG9iagotMzE5IDAgb2JqCi08PCAvTGVuZ3RoIDMyMDkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJDlaRCowUy46OjsKLUVMXTlmMFw5J3MnMDI8PzdcaT1YbjxkPDdCKlgzVy5ZPDU1YG0+LzFOPFpjayE0NlZ1TkNQVSI7Ukg1XUJmRE5UCi0hb1xzPjVZV3ImTitSVkBhREhxU05eaz1AXEo+RFwsRDBJRFdmYTxLR0QmPypVJnMiaypiOiJdJTNiZGNmT2whPAotJF9bJUtYQ0g3XSYvdFlIMz47bTMkJkhHQTBqKCpoRV0razdiKXRZOzEoUS9GUUdqKDhuWC8wUjJWMEohJkhVVzEKLUJlbDRpK3AzK1g1XWVdTWMiQWJNSjxQak8pQFxJLkJ0ZkJdIjlLRSoxQ2cxIWBpWktwPjlYYzkraSRvMF4jUSdQCi0yW2xIK0EyYiFOR1gxZy5Ac0hXYSUnVmYpYEJCbXQzXTtcYzhAZzhXOFUrRlM2KV8qbyg6cDJpQDJVRFBkK1leXwotTy5tPSZMRVZhVTJoYEUqOyVrWi9UXUhBRGQuPypONjNEbi0jMDo6Nmo9bFJwRjdUWUlXVGBDUyVFIU5ob2ZKIjgKLVtbdFNDQ2olYS1ZQFBAL1dybyo/Ji5XSGRaOHRcK2UkcUQiY05JNWAhTVo1ZE8ra0UjRTlUazk2Y181Qi5iTWElCi1OSnJlSzRjRCdbaCJsalxFOlBySlRgRUZuTm1jcDYkVWojaUkzbysiKHQoK1InT1xwPFhIVCU2M2pOX1k8W05WRwotODhdPUwhaGJvJ0xmOEJdK3BqM0lkUTA5Xzw8IWBcPCQ1UWUuUEFNNjpsXD1VJWUubiVxdGc+SFRrdV9gTjIrPFgKLTNtTFl0Zi9DWyMiUTxrLSc8ODo9JVckK1RvUm1iPWtAP3VkZktmUztLOTRfSl1NS1JUMHVZVioiJHMoPVRNXD9eCi1ROTNbcmNBTENBRlxYYFYnV3NcWiY8LSkiOSsyJG5LRzMvPDIybCNuPmU/XWdDTjo7SV80bWc+N15Pb2M3I0kuWwotaEUtX1VEJ0g1YzJsbGozXl8mK20zKl9nXCtgUFAnNWcqKTVxJGI0MGRLJz9lJjwmQzIrXy0wQSNpSVRNcCxwVGgKLT9MalUrMTk3ViQ8cWIzZEZDNihYOHUtL2ZMLyM6YW0wb2EhQ1JwRk0pVHFvNEA8ZE1BS2xLIjZXU19oPjVBXmZSCi1ec2E9U1kzV2ljNjVOQ08yQFVsTy5nalJTYzBxTCpFZzlIW2IwbjQsKCJuZm1oQT9HTF1iOWg4WUMjOileOGVUdAotWG5CPEdvZjtUZTxzYm9vZSonKEpOWD9ncFl0L2lYYVJOQlpfTDkkSEZVMTcsJHEkdT0xXGhdW20mYkFPImUxMVcKLStcL1NUbWInI080T18yPWM4OTAkL09LTEhQY01wMUtlUlhfM15SIko9Jz0rWE1oOm9SJSEqVlhnc2M2c01Lbm9hCi02ZjhmRCFWQzRTJ0hFQFNnMmkuNiZnR0BNKU07VXE3dWtxdCJYKSY3IypwVUpQSWdqPWIvRjhgJkN1TDpDJFMjWgotR3EoaVhYckMzSUFJUXElKWhOVU03X3VDMUNrOXFUXnA0Q09NSy1dZTdpW0J1P3RwLUdXUipbb0guMD9qQihuVzwKLSdLcTVeSTQmU0dJYCNyNjRqXF9dNjZhOydAM1dmYmw7XTNkO3E/UUtVSztfLGFxY2xsakZycGtGKS0/Xys9JjJzCi0nOUxSTztoOWQ5InFcX04iL0JSV0Q4QDJUZVcwWyRaYTVTNm4/VDNxNEZlL1NHNzYqPGhuS18hSlFKa1kxNktcVgotVj1YOHVKZjQ0ZiU2XEdWVjBLODBkW1dbQyZRKDR1aFkiZF1mbFg4Uyk0JjVULDMmZmM2UmEvZTRAR11iIXUnZywKLTBzckxKbyxQSDFgMlEncyNtMm0lLiFoWCRwUT1mPkEkS1BzYGFhbz4lP18kTjcuW2MnTywubUFYT1NyIlVuSzpgCi0nV2I7bzIpKV00ZGdYWnRBbFM7cyIhSWxHKjxXZl9DbS5gTSgkNSgzT1NXRiJgW0xwVWthWWlfQS46T1Exa3VlXAotVGI/JTFLYSpMRy5NRUBpbXQwVFYiOUEoTSIxKU1EIVRDIkllOUVnWyE0V0ElIS4tP2JcSktrVUFQOl4mV0xbXj4KLVdBJCtWTSw0ZmZSQWMsOTgjNT5mZU02a143R1BQQmRmRStyQmYtRXRncEtOTylcQGdmYjlGYUspM0w7TjduSnNdCi1BLixQaGBgMi9mJjs8R25YQypGXVBPYDBLISc3KjEpTT06JClhXUZJJHRfY1BlPlFHRzxaTz06LTNWbFYpYEJDOAotYjMzRTMrTVxhKGpEQEtTO1swKGAqZ2RkKkFBbVU2Mk11PF9TS108bEhmTjZlJVdxZERUOyZyJGI/XSJBTEYrMmIKLV5oKycjOF5YUkJgMGQ8I2pNSExeRGROLTNJMjAuYTFoUDBYNCxAP11ZR00iaVFocGZdLy5HNXNralc9KiZ0Qz8uCi1RJEghIUUyM1JZRE1JKWopUVxjQEwpRUVMMG9gSClddS42MWxLKUdkYEdsNTJwOiknWktwK1dUbTNNc3VuS3BWMwotPkFKJTtgQ2ZxP206LHQlMSFgOiEvYkNxPy1XIj46QEJCa2AxXENnPytcQUFuTGw1Ry0tOk5LUTFoSiY+JGopNUIKLSM5TlEiJSJYUkM4PTJibixcOkNPOm83W0VrPGZYaWdhPiFRK1RlT0hhV0hXSjRpJyE2S04uXmpFaFhzKSMnQEtvCi08SEclREpZNG9qXm5HI09GSDhQS1Ajc0ZiSEhrMmZYQUBqalQzMjJQMVo+dS06SmdCW0tPcEozV1IxKWpnRUlDQwotXCMxbU9SVjhhZUpSdD0vMyNIMFFrLyxYRWFDNUwpaVpXI1pObHA+TUBnZi02Lj5GWUYlbiJYYjszbDtuTDtxS2IKLWQ6IU4razlzITdLTScuPEZZKFs8OU1EKkYlRz4zLGMjR1ZrNGs3O2ZfZFZ0O0YxbSliZWIiQlJrc1Zpcj82IVQvCi1qRyNLY1xqUl4+OUxHPTUoTkJTZ1xXTi84aC5gYkYwXV9eaGc9OF5OKV9tZixXSEZORmYvdDQsX0guOEg2OVQ+UQotSkVacEMsRkZzKjxUJkwqUE1KUVpqaz5WaVkjUyJBL0BOWl1ackc8dSM1a003bWleKzhMalEhbzA7Z11vTEJFb1AKLSVMNnNvYE1IR0NPRylQJlthQ1InOnVtKDwyI0cmQEk+UEklNVQuISdBa1UsZTAhQVFQbnExcGpBQGNXRlhWREwoCi0iKzFBcUxYbW0obTRdIWxiJmYlRjYlJCJMM2BkUm5AMUMjWlhyXydgVFMlUGNFZ1dlcFBFdUY/TUBhU2pnI1ZTMQotQUVUQEo3IkVxcT45Vi82K3JYKG5cVFpvPDNNIixoWW8zNlRmU1dfJEM6ZWtfL2RBLiZnN2IvJz4ua18lbWNXaEIKLWBuMFo6NUBAUVEudVszUDNNKmQqUiw7Wj8/VysuM2hcbF1oUE5QRiVmRCknaVhdOyVoPV5iR0dtPDxLSWJKdFFWCi02T3MmQCY4aHU5XnNmO1tbZDBiOS9TZEBLTVhzKFxdM1M0Rmo+X3I0bk5FOWtBXWIzJlkjWjQtS0AlXCZYSWdSIwotT1lCRFBQMnU7IllcJGVVZmtvUT49VVpYS1suZTItYW9IM0ZxIi4/YSNZTmdAcXQ9L3FmJig6LT0xOkFvNEhRYFsKLTZOL1BDZ0EyP2RENUVLKlxyciVoRF1la1VAQHA7Uj5UKideQUhYLSw8IUFaU09PV2EqaSRXcVAxMGowNTkjTTBMCi0yTlF0QDtvSFcvTWoyL1g1L2NjKzhTQCpMa05cJFRpNnRKQkAwSSJrQSRrSkY7IjYmXG9FV0hNITk9VCMwSlEpSQotLWRSYk1CT0c8XC0/PmswI3EtKU9iVmpNUVhPZE5ka2A1ZFVYcUt1OGc3ajk2bSM9dENqOnFfJmYlT1kkU09YKXUKLSF0R2k5RyZfQ2I8JWBuWzhRXiJoci5FIS82JWIxJCRoY3Q9MzswKlctZD5dRlhSbHQ+KjxmdD1mYU5VTUE1Nk1XCi1xT0ohRFJEXyI2REdGRlpkYzxzPUc9WjlFTHNmaSMmaTc8QSs8VX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzIwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzIxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMzEzIDAgUiAzMjIgMCBSIDMzMiAwIFIgMzQzIDAgUiAzNTkgMCBSIDM3MyAwIFIgNDA3IDAgUiA0MzUgMCBSIDQ1NCAwIFIgCi00NzYgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotMzIyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAzMjEgMCBSIAotL1Jlc291cmNlcyAzMzEgMCBSIAotL0NvbnRlbnRzIDMzMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDMyOSAwIFIgXSAKLT4+IAotZW5kb2JqCi0zMjMgMCBvYmoKLTw8IAotL0QgWyAzMjIgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMyNCAwIG9iagotPDwgCi0vRCBbIDMyMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMyNSAwIG9iagotPDwgCi0vRCBbIDMyMiAwIFIgL1hZWiBudWxsIDgzNyBudWxsIF0gCi0+PiAKLWVuZG9iagotMzI2IDAgb2JqCi08PCAKLS9EIFsgMzIyIDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMjcgMCBvYmoKLTw8IAotL0QgWyAzMjIgMCBSIC9YWVogbnVsbCA1MjcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMyOCAwIG9iagotPDwgCi0vRCBbIDMyMiAwIFIgL1hZWiBudWxsIDcxNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzI5IDAgb2JqCi08PCAKLS9QIDMyMiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDMxOCAwIFIgCi0vTiAzNDAgMCBSIAotPj4gCi1lbmRvYmoKLTMzMCAwIG9iagotPDwgL0xlbmd0aCAyNTQ4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQ5WkQqMFMuOjo7Ci1FTF05ZjBcOSdzJzAyPD83XGk9WG48ZDw3QipYM1cuWTw1NWIwVVM1TjxaY2shNDZWdU5DUFUiO1JINV1CZkROVAotIW9ccz41WVdyJk4rUlZAYURIcVNOXms9QFxKPkRcLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxM01wIk0yJk04clVEOFhwLk9AWFRUVEYqQSklSDpKIUpFXlpYNEQnL2hANS5hCi1BJFVuI0woZSIhZThHbTBhN2pwXi1Da0oqTisiak1ZaT4/cSMwTC9LXUVTQ1U/bDEqMFFsN1FSY08uJV4vJlBsQAotb0svImY7V1dUNy1wVEw4NlhdLUdOX202KSdGaiokZ2JMc29wdEdFTkpINFdMVmtdSSoxXmwpOTZPWEJ1I2ZyOjQKLTBnTmxEJSY0WykzXWh0YGYtMVshLiw2ajBDZVNJTiRdKkdRNEc+IUNXJE5iS0NCM0o0LlxtRXFUaDIkczBWcjonCi05LFMzT11MRmk9aixoLDlLRm5WXycrU0dpNVYlTzNXK20iVSxHPERkOGIkbjFUKjZDSkJHPDJNb2EpVHI7O2FfYwotWj4wYG8zUi5eXGhcZXJUJSM1KWshdVRsUWBHbiMwJkJgRzpXImdRSDBPVE9MO10qTS9YTldjSTQjLyRPX0QpTFgKLTIhak9naiFhOl06dC5qQ2BEWjQ7Om5nRUhVWW1pVm9vJWZAJSstY0tYZydWQTooVUhgYEddIkFDaW9QREtFSD1LCi09TCcwcGhATCtVOW4rWThpLCk3aEwmbWVYMGEvMTRmYlZ0NyZxNkg3VUVJWkJZbGYoI0BGRSZYPSknSFdSLU1mKgotV0VvK0g4S2UpajFKZnVjaC5iZHVFOjRdNGonJnUtQFc7UjFvPnJha2NWaVRMNykpYy9ObWtPV11qazZpYSUpZy0KLTJdQ0s+ZW5kMDc5cEBrNmUkMzwnMS8+XWJoMUNaTDFobmUqUCwlWGRmTWhLcDF0XV1vP29iJm4pVCokJTs+QkI1Ci02U19FK0cjWy1vJGxMWGBVa3NUPlteOG1VMTFQOlBYVVVKdVQ4SFJiWG5LZF5sLSRbXmUsIUFrU2poQjxYXzI3TgotQSRJZi1bbHQxXk4zTjghJydKO0o/KlwjalEwOUt1OStCLkotYXJPLy4jKCRmPS9uVWlHZj1PVGNMQis8TlVdPmoKLSo4S1JWaCFBWm5ZPVsySyIrPDBXNytPZC4xajBjYjBdVG1nQytUOldjQEJYTC9oJD8wNDlmNUU7KVxzZUwmJFg6Ci0oOWBhTkdxW1VBTSpHW1hDKV0pYyI5biQ6X2xwQClWa0Y3OzNlUypBSWRZalgib2osYD0ib0I5KDZdImArZjFTTwotMkxsOi9wYj1AMzFeOUomUlc4W1I7JE5dO2wmam4tSk8rZkMjKSdkXFEsR2ooUT1IW2NNKE5cI15ldEY/ZmxyJ18KLUJHVklhXSpESDI+UWs8WypXc2gmJCdVOjBEYWwsbEs8anBXZCleJFAraihmMSw4OylKPCQ1QGBhPllFRDliMytBCi1HX0tgMihEU10/KyZBWmkvVmkwUE9HQ3NhIU1EQHIwO3NucCwlQ2YnMTE0K1RVIT5BP29ZMi89aC0kamghdHIpUgotIS8hKF46J1olNSduZFdSJjxVRVFKWCtWOCJpU3MvUmNSZjVnb01iaDtCNFE/QG9nW1lkSzpwOChkaWcqRXMrWkIKLS0tMzFtIUppWC0saDs4ZS1WLys3XSliQjtpPkFXZkdpNnJxQis5RkIlMGUxKFk/Qy9kTy9JaDA4Lyc7bGhuc0FPCi1OcykoM2VOIVRjakkxclZdWFlESSFoRm01MUJ1ZDErSyhJdGMoO2tNSi4sYGIjMTJYdEpISXIvYyUlUkNWUEk5YgotPlI0bUYhOEMqZz4mSFduMk01VE4icE1lUT9AYl5QPzgjRCpVSzJWdVYrT0tMYUMxNVdVbVdvOUdbWi0oLldRZy8KLT49MkRgQ2FhMSxQWSZnJSVPJDVtVCZBMUlPUVdWTiFaRVVkMUVsaENwRnM1Q2VHLFk4SG0rbEJJTjRJR3E0KkVrCi0sOyJRJC9KXT1HNDNTRiE6Ljc4X2dRNl9wQlBoZmBVYD1YK01BKShuOzBLZ3VnMFxLR25xdGhmKF10TjhLJyZmWQotIjo0cmJMQlZebT5UZCE0a05FVGExZzs5X2JNL2hsM0orMUgnKj8/bUJTRSwjZ1FyUTkmdHAhZE1gJjspIiMqc2gKLVdpOG1mSj4tbm9mL2FiJEhoWFJsW11eaklnKTw9PEJMQ2FgZkgwPCdiYWNXPyMpLENUKFlVTU1rJVFcWy5UcStoCi1LZkJRbiJCZzpPLTNrODYrRVcvNzFCcnFNXm48YGYjLCgkJTZoUioqZjgqcktrYGw+WEx0KGxvQCswKHQrY1pucAotUW5RImdMYEQldCs5YlNkVCpHP3U/LTgqV01QXm0+K29vbipiXThoODVjRGJZRTlxQEtgJHBRaWswSSpnP1siajcKLTZ0Jlc0LWtxSmcjQ3VrXl1WKi48XFdsbXU1dDBsREAiOGcrP3RGWG08VUlEMGNLXFs4PXFAZnVGW05ycilaaEgqCi1AUzYsN10+O10nP2VCb0EuQTtWK0pJRWsvbjs3cDNPQT8zYnBAX2RkbFA0dD09SUVvcydPUk5vKTlAMWA3XXVTKgotPzxiXGA2TDdMJ3BzU3InQ2E9ZXBbRCdZaW1pYzByQ0VzOCg5KzkxaiMwRUFZT2NdJmAiQC8yLCFbQV9KRGshTCoKLTMtdVFRI14vUD4rQz5INjAsP3U8aDJGKE5Cbz5lQm5LNC40RXBWUmw1XDdtJF8xU1Z1IWRiX045KGklOChbYjtTCi0xLScyYlZSMCd0IVpTMEE6YTlCJEpLaVUmKS9iP3ROW3JlMTMoXDw5bDpjZG0va21NMl1BIl1sKiNQOjxOPW4xSAotX0FRJztPJiFNZzVFYEkrMnAzLTY+ZlVQdS8zISgmZkUoPUorbUJvZlhXR2hqXWdFMy4ndUVXKS4qZzdBNldHS2MKLVE7clVgVVlVcUM2VlJYKSxHcDNkSmhpW25ASCtIP3AlblsxbyhkPEVoZGJvXl9jWVdIQXVAUmdSQk9Fb00qa1pdCi1WIVAqWVRaUDdwOGVoZTZgPWAzZT49S1MhLiFOJmRAKlxpJCFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0zMzEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0zMzIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDMyMSAwIFIgCi0vUmVzb3VyY2VzIDM0MiAwIFIgCi0vQ29udGVudHMgMzQxIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMzQwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTMzMyAwIG9iagotPDwgCi0vRCBbIDMzMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMzNCAwIG9iagotPDwgCi0vRCBbIDMzMiAwIFIgL1hZWiBudWxsIDY4NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMzM1IDAgb2JqCi08PCAKLS9EIFsgMzMyIDAgUiAvWFlaIG51bGwgNjg2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMzYgMCBvYmoKLTw8IAotL0QgWyAzMzIgMCBSIC9YWVogbnVsbCA1MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMzNyAwIG9iagotPDwgCi0vRCBbIDMzMiAwIFIgL1hZWiBudWxsIDQzMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzM4IDAgb2JqCi08PCAKLS9EIFsgMzMyIDAgUiAvWFlaIG51bGwgMzAwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMzkgMCBvYmoKLTw8IAotL0QgWyAzMzIgMCBSIC9YWVogbnVsbCAzMDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM0MCAwIG9iagotPDwgCi0vUCAzMzIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAzMjkgMCBSIAotL04gMzU2IDAgUiAKLT4+IAotZW5kb2JqCi0zNDEgMCBvYmoKLTw8IC9MZW5ndGggMzE5OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kOVpEKjBTLjo6OwotRUxdOWYwXDkncycwMjw/N1xpPVhuPGQ8N0IqWDNXLlk8NTVjSG0iOU48WmNrITQ2VnVOQ1BVIjtSSDVdQmZETlQKLSFvXHM+NVlXciZOK1JWQGFESHFTTl5rPUBcSj5EXCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjtyMTB0I0lyVVJJRTNSMT8xUWBmXSNrXmcmUTNGTlRkWjc8JUg1LyJEUEchcjQrcwotQmZbJTYqT0JDQ2dpVC8uIjlQYiNgNC42LSpxJnRdRD8rNUlXYkpOZDA4TywiYXRVTzIodUAwMVdzSGY+NSw0NHQKLWBybmFgX0QuKCUnLScqSDpGJU0jMSFgW04yQFVsXWhCRzVmJGduUTRfUGloSyJjS20iTWEqblZyZWlJPTZlKTNuCi1AcWBxLSUmNzRRcF4uK2JoRClgYT5bJiNZaVMqYCFgZktgbSo1S0libDheUmNUUz1kJGljcGU7Li1uZUguN1hjNQotcVJgayVAYk1abS4jSlJoVTdoUidtIk45W0NvKiNGbyY/JUpfMileMy1BJ2xILnViLHA1VmVCJi4pbjxeIiFcZDgKLSJaJ09xJ0ZcSlo1V2FyTUFMb2JMbTZLI1BObCo4MTBTQk9JYjEkaT0+VCxPMEpIM1xEZG1HXWovZD83aDtEKmlZCi07TmcqODg3NXNJY0YnW0sqNWdnNGQiPkUlJjciSiYvIkxAYktFSiY3bXVKXTxsVzVWXCE6JC9jLD1wRWAvMGlCMQotKTdtWTxLYzVbaGA2K0tFK1tGcSEtY2Y6NDJII2RJO1ssUChGYDFOXWlHM0hPYz5YNjhnRUJYOCN1JmlNSjNaKCgKLTwvPk88JHU3ViEyaVE5KGE+LDknb2dyKD4iIzAiITZPWjxyM1h0aEstJGs0WXFHbzxaWm8nVHM+QFhHSTdeOlRICi0pMkRaOVBjcFRWNlY6RV4lQVMxMkBvakRuKyo6ZGonPFc4c2wnTkRVLXVoI089NDR1P2hEa10/SnBnOVhnO3JsIgotMGQxTCQrXk9IMylnJGM5LixwcTpwakdPak5ZRz09PUFuWVZpaCtwYi9tNWQhJXRiViJOKkBsLFFJVmA/L2k4OWsKLWgvaytNPSg1cEhZcmVcaW9QU1hrb2BTZipFOEk9KjxdY283N1cpclBNYllGb0NFK1NLJj9IUyQrY29PQW1VSHJiCi1ETjJQPzFXOmRxOVwyMiY7ZHEvNSMsLkR1M21SL2Q+QjdsMURjYk5fbEcxPGo8KUcjWU40KW1hNVdRYzgzNydccQotSz8tP09tQ1BuVE4iIkNZQm4wJmpBJiJOIyIrUXQlbHBATlVmZE4rMyRoMz5ZPzpqVXVGVm1AVF8wQTxOQCZzbkQKLUU3ayZXVFFZSmctKSxxQShlO2xdM0BaVUA1czRtUkdGOXFWSlBTO2kpXlwmUF9qT1JWLSNCYFMnI0dPMCkuYHBVCi1XJnEtZW5JIWdGMTN1XkpZLHE1NSMrXkRfQjxaZm5fQlFBWyIoPlZoTXQuKz4mbmhVcTYiRkNYQWNJPmYyWEY8UgotcE08LDVYL0wiLChkaHRVODRHUXFZdVJnM2VHPmtCMD9wT0hWKW44bkhvX0wqKkY5TXUoaXBAMWNOWFBAKT9ZVyEKLTgiTWBtNCFfVjFMLi8zTDY+MVdQbllRZUtjcC8jYWRVNFhXK3VeKGJHWFJhSCgsJXIzaVs5RVAqdSM4WDQ1byIyCi0jL3NkJmNUO19XK0clNURXQ0RUb0xpWGtUVEZfPD9fTGdcOytZKl8xOzNKSDQhUTJHdTRbSTpLLkZUIV1SX3I7PQotNipVNytcL0tBQ2U4S0crYXVWWDRONEVIT2dFclNVO0ZrMWUrQ2xIUEs6bzBjT2Y5Jl88X0wvJGNNOUdQOEVWOW8KLVUzaElsYVpoSVtTZEdPdERPOmA0Ml4hZCpcPSNFOUlXKUtIVWluIWgobytIbUttSCcyLjk5J1lSTDwqXDluZ2FhCi1oVz5HPD51UU4rM0pVR2gqI2NESkc3YlBUSzMwSjQ+PlxtLzpPJyNsMilQIWJvSFlzNyJMMUBmazU4U3U0RjZBJAotMlRkck8qQDBfVSU0RiVuNGxHJVVqbGc2QGQ4XVleYFM/MGI2ZSM6NXFNaSM4Il06bjQ2NEw3PUlNYDAnJT8nTk8KLT9tdChnIiFbQkJjK0slOWJRMi47OEZkMCRgKCgpYVYjcWxwN010NVlCMXNiTzdbTD51JSpGSVBTYVhPQ1dBUTFuCi09aG5xY2JzZ3Fzby1SUkJvZWkqSU5qXmFeMF9dQDJFSSowRSYzR2AxWjs6Oy0sMVlvRlQoUy4iODgzSVhMLHE0cgotIjBFU1ovOkVURCRJPmZBJi5PMkNdTE87L1kxZCk2WkledDU7TW9tV2YvWFtnTlFUSTErSlIjVSY2XUxgYWsvTj0KLSthKF87aF90V10uMVVwalw/a2EsVV91PUZUVlwnXS1xJGBIPD07bzgkWmJYQHBnMURaUFRHPitAPHUjTkFJLkpLCi00JEYxMCtoNStSJDdbZXU/N0tFSlolcWpaaFhtYj1sbVluaC1oLG4iOSxOPmo7WE47b1AzaEk8NUdJX19VY2hdZgotKGRqZUxJcyFZbmQ5ODFtOXArPUdlPSknKEg1JUNgQVBmKWY5c0ZpX2hhcyc/UGUmJGMiQzRAPFc4VzFIVUIvSyoKLS5RKD5OPDxMYWdNQDAmWWpYa3RgRjUzXEUrPzBVLkpwW1MlP1leSURvY0FdZDRcRkw9SWklMTtUKGFwSj5oMlo2Ci1sQUNOWmlqUHA+TC1sK1w3JzthPiFrLW5OJTdbYTFeNmYpUF0kXSY3Iy45JiVYO1w/ViFZJythQEErbk49MSdQXAotcV1YL206YztCKChNRktRYkIsWF5ZbmRbTT1fTCdDMTMxcEhbQ2dtZjZBJlgzVkM+VFVyPDRbRC8tY1NYZDNuL2kKLUJdcz5DIURsb3JEN3JBL2EtZCRrZT0hJCFXMjJcJ19qZyx1IUQqRFlHZkkxNTZ0XzFgK2dgWW1eT1cuXG5VPzk4Ci1iLnVYTlRXKnNyX1UlWUs9PkdeNEs3SUM0UFE/WipkLShrXC5Hcl9xLW9YQWopN2NbSj1QWV1rOypfIWRXMkwnIQotZ2M0ZFteNjljVFRPJlVcbW00MyJCRDxGO251akY3Y0AnLmAlQm8ra3ItUV1VSGM8JllBMUM0ZzcrImFaVy8uXnQKLVU/M1hHRkNKNjBLKCQrYDZsZ2JnPyhPaSlyLkBAI3JHSWYqOTNvNWtHTWtIISU7YyVkTDFYWWI1bGJZMy5zNWRGCi1qWiI2QUM2biJQIVkuWjRXdEAicEBTckxxcis6blM3SU5uZUooUU1uNCQqWUcycUh1KCdGL1xzS1NROVpiOUE2SwotSSVocD8lXmAzZVU8UUZPIl9IbXQ1XURVVV9LSC5raVxkTmAwYit1W0wqKVs5Pl1raUAiJShdNVQsQ29jRCtocksKLW8+P2lgKGZjQUBSYkBGVy8zKSZtR05wJXIlZVFxNVJWTmtDJHN1OEVXXjc0JFVDQXRaJ1NlLmZuUHFaIyUhV2FdCi1WW1l0aSUhVTgtMzg5dFdBUG5UX1huKnJhKlFMRV1WWClpNiVCTms7SS5yUls/JDowKiJFUm5cKS0+QS5PVUQqTAotZVlCS08nQy8+X2FwPUsjUWBpaV9mUTpcQiQpKi1DJUNuTjE6ak9GLkpeUy9IVG8+YFJhbk8qaDRwa2gsayg0JmYKLSQ4Ry1jVnJyIzRtLUpGMiMnZ1IoU2FJMUNiQGtIMG5kSWpoRTNBbl9ZNTNXNV9IWiU3NFxIUk5hS2snTSdaZC5KCi1CSjJodUNcVjVdV3FgRyxscWNSK1hsZUdYR2JeLExvJ19sJjdPaltWOU48RSdeMVhPZUNoZGk/RElnckU/R2FRXgotaStmIUlkJWAiYiI6MXNITC1EM0xdISVjJzEhY2ZLRGxpMyw4cWxIdExiTkg4Y2MtK3NaQ111PjRAaWV0IlVwVEYKLWpTa3UwPiI/O0pDbjBET0IpO2dQMVZhbk8rOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzQyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTM0MyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMzIxIDAgUiAKLS9SZXNvdXJjZXMgMzU4IDAgUiAKLS9Db250ZW50cyAzNTcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAzNTYgMCBSIF0gCi0+PiAKLWVuZG9iagotMzQ0IDAgb2JqCi08PCAKLS9EIFsgMzQzIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzQ1IDAgb2JqCi08PCAKLS9EIFsgMzQzIDAgUiAvWFlaIG51bGwgODQ2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNDYgMCBvYmoKLTw8IAotL0QgWyAzNDMgMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM0NyAwIG9iagotPDwgCi0vRCBbIDM0MyAwIFIgL1hZWiBudWxsIDc4MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzQ4IDAgb2JqCi08PCAKLS9EIFsgMzQzIDAgUiAvWFlaIG51bGwgNzgwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNDkgMCBvYmoKLTw8IAotL0QgWyAzNDMgMCBSIC9YWVogbnVsbCA3ODAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM1MCAwIG9iagotPDwgCi0vRCBbIDM0MyAwIFIgL1hZWiBudWxsIDU2OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzUxIDAgb2JqCi08PCAKLS9EIFsgMzQzIDAgUiAvWFlaIG51bGwgNTY4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNTIgMCBvYmoKLTw8IAotL0QgWyAzNDMgMCBSIC9YWVogbnVsbCA0NTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM1MyAwIG9iagotPDwgCi0vRCBbIDM0MyAwIFIgL1hZWiBudWxsIDQ1MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzU0IDAgb2JqCi08PCAKLS9EIFsgMzQzIDAgUiAvWFlaIG51bGwgMzcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNTUgMCBvYmoKLTw8IAotL0QgWyAzNDMgMCBSIC9YWVogbnVsbCAzNzEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM1NiAwIG9iagotPDwgCi0vUCAzNDMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAzNDAgMCBSIAotL04gMzcwIDAgUiAKLT4+IAotZW5kb2JqCi0zNTcgMCBvYmoKLTw8IC9MZW5ndGggMjM4OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kOVpEKjBTLjo6OwotRUxdOWYwXDkncycwMjw/N1xpPVhuPGQ8N0IqWDNXLlk8NTVkYS9GPU48WmNrITQ2VnVOQ1BVIjtSSDVdQmZETlQKLSFvXHM+NVlXciZOK1JWQGFESHFTTl5rPUBcSj5EXCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjtyMTNNcCJNMGtjTGkvSlguYGowTVcpLGonM1FTTGpEWjlzMHJwS18lWWVTcSxJNgotMWAkVVVlP1lscD10Z2EkNEUuOW5DZi9fQUZvKnIjKko/WzVOJT9zQDRHM2VKYXEtJl04N0VQQiYtMW9MTjAjUnIKLV9pOkZFIzZZTjU8I0dva01YXElvJURzXG00Iy8kT19EKUxdM2ssXzJLMSQ0OTZTTVY9WkFzcVBfREE5Ly1wVGtSCi0wbDB1LyJYPDAvLHBoTWMhPG80QSlyUUs3Ty9QbC9OV1hyRSJxQy1mOWE/PWArUDhgNlRsUDw4JSlbPk4zWSVwKAotX1shdHI7b1RNK2Q6Z3UtNUpvYic0JThbWTVyLEJ0Mzk6Z20rVGk0SyJmIUtqJTBaaGZhdF5vMkdnJF4uVUJvSF0KLWE3KSguYC5iSypMJ0VOZDtYakdjJGBpSXFePGIwXilORTdDLU4oSWoqNHV1P0BDVCxWVi9aQDEjKioybGZLKGI2Ci1wdVhNcFluWjo8XnIpcmgzPFRFRVQzSTlXR2o3KWpLN1xNPDouJ1Y2WSMmKD9cO2M2XCh0KDFoQGMxMFMlJ2FMJwotI2dsSmYjbVhBNidUI01cO0tYLV1lNSJKJ1EmXktEQVEwJ19AK2UpMVRgYkUuPGNBJlsoOW9SKzg/PlVGMXFdPFUKLTBrSWpNP0MvJHFGM3JKYGgscWZXUiwwTyZAPEYuRzM6OUQvanNqLGlhcilaXkM5Jz8nSzZwRUxOSz1Lbm1CJWNwCi03Ljtac1BLOFhkYidWWTM0ay9EJCxnIXA5PmZBRU80N3Q+ZjEjMF0pYSlVRG4yVSM1YiZSSWZBLi5AY1ZQPEYiSwotNlNNcDY2azZeNGs7SjsybDtubT1uPk90cl5UX3QpMCsiRCNZPE9OJWFRW2ZwcExRPCQyWC1idCdOLGcrYDNMckoKLWptPnNjXD1AKGdObGk9T1llWWw2ZHQjZ14iIig3c3BbI2UsOzU4MDw+PjRbPkxIZlNVOjtvViUsQlArUUtqZTN1Ci1SI1pIYDRgc1s7ZXFHST9AXGQ6W29ENW5wXUBWKVdbZC1BS1tPciwyZFxLXHBvQE03XFkkU0pvJk1vQkA0Ti5BLAotXFVfamE9SGVpZDIzKSpgYyxOOUY0Rl08SEdQNDhWaDVSP2swWiNWZFxlJzRzO0xePSVrXWc5SzYnc1A3S2hSUSIKLSY3UnJcJmJaTVguMV8wa2w/ODsxcUgjMF0pNzIqW2I4R0ItQWtRQUgpZ0JxaV9fUGQ0YTpVcVJrTz40YEdbXytTCi0qPyhbKGU7WSIhIUlHKUAncyI1JjxoKFd1N2pTbyo1TkloNyZrUSVja0pTMj5BTmtPNld1TU9aUjk1JUBMJ3VnaQotWj1YTmVAWTA5T2w1TCFXQ2drXzAwNlIyUV9bNk8jYU9FKlBuRDxzTiNcYWBeZUg7WmtkTV4zZXEyNWBfL04tJyMKLSdrODBSMSEnJXE2Ilg2VihMK0osblE3bC4zJmtkJkMnVEpkbU81b0xDOkJBcTdaLVNIMFhmb18qbjQ7Oz1bN051Ci0tVig4Kj00OGREYyM+Rz9HUVIqIzNKbiY7XVJtcUJESzY1JGE8QU1qTiYxXHJIcE9QMSRBPz4zNzVucmUkbkAnagotaVUtVzJkZkBiUyNyTjFuZUoncUs8ZCxaKTdLcTZiIVduNDFdZ0l0Jj5KVFU7WS8halVWUmc2KzVjL0U+YWg1Zi8KLUBYU2FlWVdSTlFvZjVXMUgnbSZUVSE2RjI0Ol5bOTUlZl9DSmNLSG02Kl1aO0IyI2ghKDUxVURFJ1hYTWUvRXBsCi1yPD0tZFpuVXQpP0ZkTzUqN3NDdT1bQjp1XWRQWmBLPCorJF8yXWhicSVGYig+JUVaX2VJWCdOYjhkJlsrW1tDLQotKT9QYT5lUkBoOThJdUhDUD0tPDEsY2IoL0FnZiY0USxGVyNGV2FQRF1KTGo2Pjo3PTlUZ3NmWSgpTTciR0RnOkEKLS5UND4pJ2Jzbm0pLHJzLScnLERuOmpsS3BhPDFfbyFaIk5SOnEqO1FkW0duISdOVDEjUTlmUnJYXktGbFdOLDhmCi0iMGFDQ1EpcVNtQ0FoRz1eajwrXSlTVDxnYnV0LWpPZnUyV105R2JYKk5IRygvVlExUlo8QCM0Sl1LZ0Q7VkhfZAotOyIhJTlsNzMyRXBiaTRWcDVNRlY5VDUrJVcmRkclcVQzIWdCIVQibUpELkB0bEpZU0U1aS4kRCI2PVJpJ2tFWUEKLWUuTiIlKDVQW1FpPThmR0RkOlhtJXRpTVomJTQjLGgrSVdnWS8jPXBGcVg3S18hUTleZlF0MlIxNDBrOm9rLkZUCi0nSSg/NmJoPilhPVxsOzJMNSUqKy1ENGolPTU5aiMnamF0Sk8/bWhWNig8W2FaKFQ5c0ZZPkExPWdERzBrOjFHcQotKXF1aEkiZylVcUslKClgQ2V1amtYT2FJVWJSQW1FS2BGJV9ycWtLWktgVm0uJG4iPyNaRVAnNUwiMzIjOU08TTkKLV5JVS42VzBwdDVpLkJMNy5wP0dfL09zMHBSZjhtP3JsY2gmYCF1OGBAUTduO2lZc2oiYF9YO2oocyU3Ly5oa0Y2Ci1EYDArKydfPC4kLiFHaW5WKWdhczdTZVhtKihCMkg4XWJTUiQ9Ui8/SSlyS05XLlErTz1gImFfOipkb2dALVhrIwotT291MV4kIVkvcydZUWtkbXItVmBFa0snNlJibWdOYy0kVl1hYEltbW1ESjxlL2BkKEFcT15sRzkpRTNOJGwlL18KLUQjO0hHJTNRYn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzU4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzU5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAzMjEgMCBSIAotL1Jlc291cmNlcyAzNzIgMCBSIAotL0NvbnRlbnRzIDM3MSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDM3MCAwIFIgXSAKLT4+IAotZW5kb2JqCi0zNjAgMCBvYmoKLTw8IAotL0QgWyAzNTkgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM2MSAwIG9iagotPDwgCi0vRCBbIDM1OSAwIFIgL1hZWiBudWxsIDQ5OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMzYyIDAgb2JqCi08PCAKLS9EIFsgMzU5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzYzIDAgb2JqCi08PCAKLS9EIFsgMzU5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzY0IDAgb2JqCi08PCAKLS9EIFsgMzU5IDAgUiAvWFlaIG51bGwgNzU4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNjUgMCBvYmoKLTw8IAotL0QgWyAzNTkgMCBSIC9YWVogbnVsbCA0ODQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM2NiAwIG9iagotPDwgCi0vRCBbIDM1OSAwIFIgL1hZWiBudWxsIDQ4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzY3IDAgb2JqCi08PCAKLS9EIFsgMzU5IDAgUiAvWFlaIG51bGwgNDg0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNjggMCBvYmoKLTw8IAotL0QgWyAzNTkgMCBSIC9YWVogbnVsbCA0ODQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM2OSAwIG9iagotPDwgCi0vRCBbIDM1OSAwIFIgL1hZWiBudWxsIDQ4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzcwIDAgb2JqCi08PCAKLS9QIDM1OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDM1NiAwIFIgCi0vTiA0MDMgMCBSIAotPj4gCi1lbmRvYmoKLTM3MSAwIG9iagotPDwgL0xlbmd0aCAzMDU3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQ5WkQqMFMuOjo7Ci1FTF05ZjBcOSdzJzAyPD83XGk9WG48ZDw3QipYM1cuWTw1NWYkRmpBTjxaY2shNDZWdU5DUFUiO1JINV1CZkROVAotIW9ccz41WVdyJk4rUlZAYURIcVNOXms9QFxKPkRcLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxM01wIk0yJk04clVEOFhwLk9AWFRUUzVdaikoViE0U1IvWCxZNC02U0hRQT45Ci1BTlV0QVZYLUpuY1VYZWJsKi9mOTFoLWpVJT5QYilZaEdFLixOM1RMKTU+NkFDKzlZcC1wVEMwQEJlTkBOSV8pbAotb2FWRnAnS1dKZSNmP3MxYjEhZmgvNSU2JjQsa0pbLXAzTExXOG5LcUA8ZE1BS2phdHUzIj8kdWRQNlwxZ0NpMGMKLUBnTDBDND5CNidvPVplWj4uXktlQ0IzSjNXaDxONDVYQz45Ukw8T2tnQGJYT1RcaDw6MF1LPko0PG5AVW8iZTBRCi1IOFoySkVZU187NXRkTFg1dG02bSopNy1mbWsnTDlXOCctOixBWWprNjRvR3IyVTE5LF9UQW1xITZkQ0BAaidZPgotYDU+Li8yJGgpbElRQFhgOEBnOFc1XFIpMjVUdFljSz4+cDpLRmdXXjpyTV0vT2NwTUVkYU9gRTJAZ3IyZ2JROD4KLVpPRmMsNls2ai41dS1kXG4xMnMlNkx1Xmc6dWpUNFBHJCoxIjspblEmNGZaJmQuS1BlaW0xP0pbLzl0Qkw5ImpgCi0nTkpYNmZLKUBJZHB0TDY1dEdULEtgVl8vVDBfYnVGXXFNY1w1OjRGaXVDdGBLR1E2QSU/PXBkallyLitDaHRnOQotOVQ8ZWtlWT04WSNFPyIkK14taV4yLVVeTDE+R1F0Z1FfQHJcRDI2QF5DU3VDLFhpUnNGaFNOQmJzRSEhQnVZPS0KLUFPQTRtbUAtLzhSNHVVNWkkMFomMm1pXDoyLDVTUTZKLzFbY2EjLCJMJm5TQFdtRCsqYG8qbk0+SU0vRzouaCZRCi1XX14yU01bI2xqRSMxYUJxRTY1Zj4qVlxvJEs0TmopTUpiUi4xKyRMXjlCUDM7QEhHN0I0RU90PG9gY0U6R0MiPAotPyc6Z2xmTDtLSjE3I1EoLygvS0QndW5PT0dmSSdvSDo+THNfW0A9N04lOU9iaERTRyw/MlFVQChHbkAuJTI8QyMKLTJOMC1ENi1LSzdHZ0QsKFpLLSdFOCpPPFs8J3E7TC5RcUdjP1lNW0gzOm1sWmdVUzt1akRGXWRhXURLU151Uk8mCi1IblE6SW4yPSpAKWhybzRnR2IkNjg5LFNsLEhaTDg3YmQlKCdaR0xARmwkOmBadDY9SVIhNSJkZyI6M09KXnIjWwotWztJI0FLLURyWFlTZiY5KU80KWBBSU4idDVSJkBgKSxqQDU1cSQiSVNdN1xkVDhTKytqdUFpb1FoJ0B1IiNnXy8KLSU2L3FGJmpdUyQ/OE9xIyE8XE1DPDY7MkoudE1YUiJpKyRmI1crOkBENGhfKCFzWSQhOHFoSidvZ0w6TGs1MGUiCi0+PygkRSxJLmthJSNEdF9MO2lnM0s3b1tlUVEkYEFUckklJyJxN1oscWw9a0Q/J1tuMTdhVk5JNENHOSZgQC8pbwotJ2M0cUciVGFRPzZmOjVXUjEoYzU3QzsrcWVzKDktIW9aRD9HcGY3LUJGUDkhMiw/TjY0OT5NMUtUUkVhImVqQC4KLSxYaEtnQCktSkomVEFOZy44OjlRNVkhdEpxN046MW1fX25xTDVFMWw0cCdhM1t0LXIyUC1TPUtMLFEyXCxsQUdeCi1kZWw0JCZCWWdOSDhDcSJvSF0lXDBIPlhqNlVxMF0oUjwpOipELkxgTFdAOCYsY09FY2JTVmAzVGVeNmMzTUE5awotS1tDNVBMcV4kOzNYXDtiXWBrQk8yTVtDLy1OZGleTF86MCNQcC5LJiNkSlw/TFxbcDkmbjIxWjY0L01bYE1KW0MKLT5Saic8S3A8PiZIY084I0hsREFdIyksQWZQcDZMZiFPQU0rQl51NlVLU11pKVRPRUduLj1WUWAhKjlrZD8mbzZJCi00XD02QG1NOigzSHVHOW5hOk89dSYiS0wjYFRmdTEnJ0RcMmA+OipcIyl1TCROKV8mZyxfWlsrOkJpTjpgWWVVWwotImVhLyNLKihdcCZuRXQ0S1tgI1tlRGc0OVpdUGIuQ29vcGVWWFdNKVciJV5uamI/MExPNGpbIzcnIV1pLGEzNlcKLV82ZjwhbmkyPVUwV2EnIVU2WjpMTTJYMC41alx1Sj5ZdVpnM2hvMlVLVjgzREtKJ3QjNCh0QFxQc0FiKlUhMVAzCi1hKFZTaVVQMUVSP29zKVhDOl1vVCN0WmpwMD5QVGAoZmJsTj46KFhSOmxtcjtLPV1hKi8jZzA9QihsUzErc3FPIgotb1dYcDJSOlUvUlBYQi9BU1hzTD4iUTZBdSI5QmRlInJJdV5XdT11PjYtMzxkNzpeW3JSIUQjLFBXIm9sJD1WZFYKLStCUV9mUE1NKnIpX0YtO00oVzxxOjoqVjM9MiFeJ2wtUWBaQzQrSGpSRU01QzNPKy87aEhuX0VDYTcmJC5CbUZkCi1fUF5USS5nZFNZPlA5RDlAMDdFYEZTXkcuOUdaOUBKSyRPIlY1X1BfQDA6PHMlcGgyO0gmIV4zSi5QYCFaU3JtOAotV0AuXSdocUo9TUJ1Oj9EZ1c6TEQwSGI2YmMrOiM3LCosXEIyYy9KLElRLjFUbG5UTGRdQy88Z151Vkw3X1twUjcKLTk7KVBsI2hfamJHXSNuQlkxS04jckFJbWZAUWRJIS42Z0hJIS8lRS0kREckbT1MSUdAWllQblgvbzNQMl1COCYyCi1YLkZXJmE7X2ZdYSVULF0kNFhRKiReLmFcQTQmdEc3cSVfUlgmcUg0MTdhUl9iLG9iRj03IyktKWhGO25sbl9PUAotUFtcW2dAIyRkcz5FWlhJKjZnaThCUGVOPWlgW1Rwaj5nJ21gK0tBOGYlRDsvTGFXQzZKRXNATD5GI0FUNVtlbk8KLT4vdCM5J1x0cz80bG1tQGMxbyFbLTBuVjlaUCRiQVxVYHVnXVo/QlAvL0hJX1QvOWcmbCdmR29DX1RoLC9mNFI/Ci0tWDMwPSFwJGkqMmJfPScpdS4vOXEyO2csYCkyYj0/RDZfQl9tOHVPIiUkKm9Cam1BLFs9VXRQJWlkLjk4bzs+UQotOUNDbSIpazJLJiVGbTVDKEBJXklfSi43a2gpMz4jW288QCZJLGxsUlgqPWFhaTZyWC9uMi5VOmpTJ25YPFY0InAKLVIzLGdwVCtHImojRSEldFdOKmdEPlJuRGJVLnQmPS5RSUpcJSpsPiVFXDcxP1wuN2lkMVI8K04pNig6Q1k7Lkg8Ci1COkNeZkYyOWxfNGxEazVcK0RfSk0tQ1NjVEVIQ0hbWWI/QC1vMFxcUilMUHFMWHRsWjgyKDJJSklFWyFMV3UqTgotKCErNVMsXDopTilMIk5VbltIbnEjOkJRbV9oIVk4ImFUMzxmNTVsXWxHUSgvLHUzal1fYWo2V2ktT25fVHFncEcKLWxRKStKbllTPFpMK2xwJWlVc24hVW9wWz8rIzJ0Y2dlVUBiOicmQVkzcWVuLChyclxfKE5pcF0/dCUmLUNlX1kkCi0sT0ktV09WP1BEQ2U5TG4nUmMkS2xOVVcyMShKIk0uPkwsWUFSWUc3UVA8L2NvLC4+MzxBciIoN0lSTyFLRWdxIgotYT9gVTpybGFAVzdnZEo1RFhyWnVhWF9hIzkkLlInXi8rdXByP20nbE4nT15DNnAqI0olRTwhSDkuS2BHazVhUlIKLUthVCQ8WF9QWWtPPkZaais8VX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzcyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzczIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAzMjEgMCBSIAotL1Jlc291cmNlcyA0MDUgMCBSIAotL0NvbnRlbnRzIDQwNCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDQwMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0zNzQgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA4MjMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM3NSAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDcxNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzc2IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzc3IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzc4IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNjUxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zNzkgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA2NDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM4MCAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDYyOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMzgxIDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNjE4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zODIgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA2MDcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM4MyAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDU5NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMzg0IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNTg1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zODUgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA1NzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM4NiAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDU2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMzg3IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNTUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zODggMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA1NDEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM4OSAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDUzMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzkwIDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNTE5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zOTEgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA1MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM5MiAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDQ5NyBudWxsIF0gCi0+PiAKLWVuZG9iagotMzkzIDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNDg2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zOTQgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA0NzUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM5NSAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDQ2NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMzk2IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNDUzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zOTcgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA0NDIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTM5OCAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDQzMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMzk5IDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgNDIwIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MDAgMCBvYmoKLTw8IAotL0QgWyAzNzMgMCBSIC9YWVogbnVsbCA2NzMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQwMSAwIG9iagotPDwgCi0vRCBbIDM3MyAwIFIgL1hZWiBudWxsIDM0NSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDAyIDAgb2JqCi08PCAKLS9EIFsgMzczIDAgUiAvWFlaIG51bGwgMzQ1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00MDMgMCBvYmoKLTw8IAotL1AgMzczIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMzcwIDAgUiAKLS9OIDQzMiAwIFIgCi0+PiAKLWVuZG9iagotNDA0IDAgb2JqCi08PCAvTGVuZ3RoIDI0NDcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiFQKCIpRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0oPGRvPkVdRyluTHAvamEqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwST5tSEUiQGlGMEpKQ2s7WwotYUltS0xicWQ/ckx0JnBIOD9nYGIpJldpNkVUc2ppRl1raXVEOFFzRmFDVkkyb2ZDZ0NUXTk5NihpYCN0MG0+IjMKLTImWiZPNGRxPS81VydLTTdpaU42ZT4uNEcpaVozKTMuZTRWWGloKiJWXWRcOCcpKzpNXDZLcFZiKSEiWTVPQ0w0Ci1ySm5kP2VoVzI4ITVxIVEiLyshcktGZUVKbEcuKEg/bChIM1pEPi87Ii44TDVOOkBQIVZSI1xyPGpgJjQodUAwMQotVUJvWDEiaXNOZTFvNTNBR29vQnU2Rjc6NCtUVTpZTk1ALDYmLlJZVlcmUDk+OSlmM1dfXGgjZU4vdVc6KkNOYUsKLWBlSEZUJFtSUlgrZkpyJzUlcTtFXCZANlVCR3IzKFhCY1lHIVQ7aWQ5MSpbXCpzO1siZFBfTi9FNUZOM1ddRkglCi1dQ1dWMiMpY25UPXVvPSgjWy80bWlLLWtcZDQrUyUzXmElRzEtOkxgI2lJWnFUaClhRSN1bDY+Oj09NmQwLyFQMgotOWZHaHJvYU9odC0zSVhAKiFPRTM7LHBWUXJFV00rVTdiTFk7ViJDa0tAYEUsVyM0LV1GW11bRiQyKC8sPVM1cygKLT00VDlQVEdFT2liV05ZaDYrQ11TZ0dbaFAtc10yL2ZsNVVvb3VVaCFvc0xWWT4uMi0pP2YjdHVuVStTYkFeK0VmCi1sNGpuKj4wYHVNOzhgZU4laE4uYjxWTTNxYXJuVmBgWl0jNyllPUxiTGJlI04zNnM8O2RJbko0Tjo/byUyaU5CbAotKlxJVHVXZD4vWGooKCwqJUhFWzYxNi1DdXBhdV8uPy0/bHM9KmJARWd1QlRjMG9bYk1KZ2xMYjg8WFZAZjc6cSQKLU4salViM2BMMjJRJSFIbUFnZmJFIWFya3AlJmtASlkoaVc+XlRjKzxHMCk7PXFgVzI1PjNKanU+Nz8tTGtWaCdbCi01Yz8jZE9VYFVQRFlrNEJaTD48WnFpNlpacicyVj1yLHI3Ym1sVENOYjlnSTcvMjtpZT5yPkFPaUJXO2kkczdiMAotZTpcSDZJUHNsKHBGWzU8MUNmK1JqRk9VUTE2LkZlU0M+WmVxTTVdLF9eTk1jQkh0aUdGLGNEQSZgQDJvOlFtSiMKLSZvOGZKJHJvaltUQW5nUlZjc1JQZUNZYEcobkg0V1phZTUjUlJBJTNGdTh1aFItUmM5M10kVm1NQmJaPmw8JCtzCi1VKVpZPVFtYVY9YT4hbmlIM2JDWGJAXzIvLG1PS1Apb0p1PDZdYm1hNWlCZmNTS2JMYFR0RUZBOCQlTF1jbyQ2NAotWm1SOS81YT42QyxuOktPNkV0Yj4kVywjakteLmI/LVpFYmdoQz1DW00sPmNhIzAsYTUiPUY8XGk+OFosQmA8Vz4KLUwoPWlIS2ZjZGdjJmkscS4lbXBjXmtkTilUbGBcSWBFayguR1hBNlkrRUomQjZvVjFuRjpIJz5FRmNuTjZTNSskCi0jVTw7YiU/VEVWKFpQTjhqK29COWJMays0bkAvbkNPPlM+KG9nIz42VFRrKG4yYWNRLjMhJ0M7XTQ7OXI4OmVVYgotK2kocjYoKHUrOE1AJFZeLGdKYlIuOGkzXiZCMTxcKDQ4b1dCSTUxWCk1LS5kJ2JWRHVLJk84NDdyW0JwZGBlPUEKLWFWIU9NI3QxRlJSUiUqImJTdS5hSmRQUzJLa0FMN2diYCY3MHBEYEQ3ayIwQjZMX3FIJiklamY4OSJ0W0FtJDsrCi1JJjA1RWJkJjhsIkMrZzhIOkAmOjdpKTsnJHRrKUIwJlhcOi41YFwmX2gnWDNWZFcvS2VFUkg6QG8tKDBUXmlgMgotX0k/QCtMQlRMJydKZ1BfZzVrMDdBZGxhN1R1PDMjO0lGJC8xNixkOkgqZVU/Kj1yWCNFQEYjbDJeYDVPM2g1YWAKLSksQCFPTkAmMykvRyZbI2NVKmFXV1I1Z1tGN2QtXUpuViFaXz5PUEUhZUVzX0NeWWchYis6RkI2bE8zRTpUMGNNCi1LYVs3IWRyVHRxIU5gN2hKQDs5J2cyVSouNjR1blFnKSkhbzVoUkVCJ1ZgZ1tONyJxMyhncS50SSs8MFwtRkBGcAotOD9waGxhMTAvOyI2YzhrNmVbOTUncWJkV0g2IkxqQTxnZ0g8V2EpbS8nW0AjVCZAaHRcbVUsVi82UldtL1dnRm0KLUdhOmg4Wk9dUSQ5YDs5PVFTVXI2Oid0aVMrYktII2xBP2NsMF8kPDcvQipGODhzJ1hua0tyXUc6aTk2S1oxPTFyCi0rO2dZMDtGSD00aSErdWcpaklyYz5gYE5iM0pkckYsWUxsQG03ZVFmUGRNaW4yLUFCU3EvLUE2ITpuNCJLT0NmJwotPCkwK0tLWHRtRSUkMCw8JVJIUD1eS1hPLy10R3RgMEJ1P1ZlbE4mTCFfaWo8VSpzJCc7J0dCMjtbIktbLUE0PG0KLSkrK111Qk5SVWpWKy0vbUEmS1hxMD0zSWtsYks1SWlaRWFgM1Q/aUhBZkk+MUZaKXUkQklMak5jUCFXQDVFVW5xCi0/MElfZFk6XG9IMUNGJkRsaFFCVHJTYl5JJywrW2RNSTVOTEohbEtdZmlxKmNtNEhMcjw/U2FmWEFbYDInV2UmVQotRFcodURGP2JMWFNmQ1QzJldhUy00cmlBRlgzKkVtUVhWWEZvOS48OFkzPmlIMj90TWtNdUhBI3E1TChpIydFRDMKLSI0RDpWKG4va0toaG1qKlRGTCwiKlNCKmYjU1NEQjExWWRkUkV1a1tKSC5dITchVV9RSTcucTNfN0QnUj1WQFRwCi1VaS9RQCYlXFtoOHNhZCQqLmlFT19ibz5RI0ZBdW0qZDFfXUVYTFlLXnVaPiFIaGkvIl80W2ooXl46ZiFBOE0qWUo6SX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNDA1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiAvRjE3IDQwNiAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTQwNiAwIG9iagotPDwgCi0vVHlwZSAvRm9udCAKLS9TdWJ0eXBlIC9UeXBlMSAKLS9OYW1lIC9GMTcgCi0vRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcgCi0vQmFzZUZvbnQgL0hlbHZldGljYSAKLT4+IAotZW5kb2JqCi00MDcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDMyMSAwIFIgCi0vUmVzb3VyY2VzIDQzNCAwIFIgCi0vQ29udGVudHMgNDMzIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNDMyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTQwOCAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQwOSAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDg1MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDEwIDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgODQwIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MTEgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA2NzUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQxMiAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDYwNCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDEzIDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgNTIwIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MTQgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA1MjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQxNSAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDQ2OCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDE2IDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgNDU1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00MTcgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA0NTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQxOCAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDQ1NSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDE5IDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgNDU1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00MjAgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA0NTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQyMSAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDQ1NSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDIyIDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgNDI5IG51bGwgXSAKLT4+IAotZW5kb2JqCi00MjMgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA0MjkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQyNCAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDM3MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDI1IDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgMzcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MjYgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCA4NTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQyNyAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDMxMyBudWxsIF0gCi0+PiAKLWVuZG9iagotNDI4IDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgMjc0IG51bGwgXSAKLT4+IAotZW5kb2JqCi00MjkgMCBvYmoKLTw8IAotL0QgWyA0MDcgMCBSIC9YWVogbnVsbCAyNjEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQzMCAwIG9iagotPDwgCi0vRCBbIDQwNyAwIFIgL1hZWiBudWxsIDI2MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDMxIDAgb2JqCi08PCAKLS9EIFsgNDA3IDAgUiAvWFlaIG51bGwgMjYxIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MzIgMCBvYmoKLTw8IAotL1AgNDA3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNDAzIDAgUiAKLS9OIDQ1MSAwIFIgCi0+PiAKLWVuZG9iagotNDMzIDAgb2JqCi08PCAvTGVuZ3RoIDMyNTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiFQQCopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkZfQl0uO2klTlwrRWBKSVM+PEE8a0lMUWIrMFpLc11xJTFqRkchN0Ekci9pIjUvajI1IT1eTEE8RAotIiVtU14qIyltbFZMcUFyLiI7Xkk7JmJIRkVUKFRIPlZJJyotNTA2KlssLD1TUmdjIm5DJDJWTm0wRztqblNSJm0KLWtHZStiRzJmMHBDKlBSKU4rVHUwJjNzSjxxPjclQS4+RVg9ImlFXnMpJFkiaGdfOW1kbGpUPjppSFJVOCVJRWxCCi0xbGMoPTVUa3AjUiQmIWRAMCNaM04/XF9JbjtKVDJhOkpjdFg1bDtOLywyQig1JjwzcigsK3RFLUVzSi0rQ14idQotLXBlUShLRk1VLChDJV5dUTc9LSY2PVQqXiUiXTFeJFhsPCFyV0U9Ql9EXSM5R2ckXi9QLCNiWF00MFxwMXM5QnIKLWw4VDdiUiolL2xKUDNMNl9QJHRIMkBlYVFucywuaTZpJmVHIXRgVTIlSEVPSihsJixaW2s+bFFmUEkxc2QtUC11Ci03VCNvXTVnUUdZXGdlIlhIY2ovMCNkWCpjInNLWFYtYDQ0LGQ1PT5eRlYjKjZhakEkZE5NQztfJz5lNyNbbD9QcgotNExscG5jMT9JazRSPFZtZi5AQSw+OypUZ2w0ImAsSlk2NmMzRCxKLS4iaFxJaUNRNWw1ZCgpPydqWnBnYjBuMSoKLVk+WSM2Pi9oZGYpWCtmW1BrKGUjIy1Ka1YjMEowWGklZzckOUNOZ1JkcDkibGIqQEJiPWdub3RiLytUQVlqTz8tCi1LNFYmRS1jOyslbURQZENcRWg/T1hLTHJOJ0dVcEEtX2tjN3BzKVtLJ15cVmdFYG4yLjZkMy9JS2Y6Q3VwN3EmJgotQ08rLTZFamtqRkcjTm0mIU9kKi5AUWNEMXAoZGU+PElUWlwlW0RydSJVIixmMkBcW2BmNVpIWUdpMUY5Y1xVZEQKLWY1QkcuNkImNilmYlAlSWQsJGdESzgvJ0M/XU5dOy5EJ2tiMFZtbXQqZ2tSYWlOZ2UoS1hzOFpWLl5KWUA7K3AhCi1VZHFITW4+MzEkYE5sYCNfQDBYXG07a0tBSjdSV2ZHQUdYNjhjXztdMzoiXVViVjR1dDo/L1g1JzgzXHI5OkglQwotcTdhM3VXSyw+SS9aYlFJJioqV0Y/WF46SjNKSDd1KUI6NC1KaDgmPiFRVUU5P1xtJSE7MjFkW0QhL21cbD1xMGgKLTosQEo9cS5jODNNQl1tO0MkZDdoX0s3MG1ScklXL0RiK1xpbk9OVTJxJygvQDdWY1s6SCwsKlBNQmYjXC1zNzFPCi1ROjB1LjZgUEIkRDIiaDtfVCVvVTUmIlY/Ol1na2plKGtSXCUqVUNcSyZHKVQlTFVMLGNjcDBVSjNfIShDNl9HQwotYVYnQGQhJCUwPS1ZcHRXMFhoPCdlbC8haiUkKTk1MV4yMTJKXUtNb0RLU15dO25FN1pjc0k6UFlXKV5CYHM8JXEKLTJnSSo+R0ZcRVFdW0ReWjhySkJTVjZzQFhnTTpeOWFwXThlMVZ0IWUuWGwuVlRiPComcjJwdTQldTVdUl1VVE9FCi0jYk4oUiJlaVhZJ11rcG5NUEFVKGIiPTYzUWVMUGhPPV9cZzVUI3NSTHFBUms5RWtWQC8tOlRZR1owLThMRmNTMAotWjY3IzM4UV1QOE40OlxwUSQvLD9fUjwwU3E2LV5FS0d0TGMyJUptUzI5S0xFTUEyZWMlWWMiWkpyJjM5SzokLlgKLTotbDgiQW5eQkhKcmpoKUMsW29ATDkpPEhpRisxV1deZG1FQFk7aj46UGEvSzElPSQ7aUYkTFZNVWZfJTZPOkxUCi1hRTdVZGJWVjVnQDEmSkJMLU5tYzxpQDtPTU9sPVIrS3AmMjRxXSwwT29SPSEwOzwqWyZCYChWWiFeXlFgPnRJOgotSS8qZERFQWUrPCxHXk5wUEdHMyFAIkFfJEsiOUdRIjNiQ1kkIkFRLmA5ZG5xOUY2R0MhUmNgTjo/bDhvX2ZDYU0KLTZrZSkzNEI4cFQ3LlJgYSM2YjBfUFhOTVNhWTpjODcldE4mQF4mPTVFPlEjWmxVYERWZkZEV04zWC9GN2IoPjJ1Ci0ubj1FSV00ODhlLlduUmVCWGpYZzI2ZFBBXWY4ST5RPGdgMzxpVnVIYDJIQVtUPzBwJFUnJFNlLWAuSlZYMUA1QwotQ085dVQvUzotbEU5S3AzUnBfZEBpNHFEOTkxTEUkJ3IzM29KUTJcOS4mXS8qTW9ZRCFiXzJgZClgKS8vOyhYbzYKLUZTUjYuZ1EjWj83PVMkVipmIlQ7KilKb1UpP1BYbio5WjlVVD5WcSgmUl01RFQkZ0onVGdHOERmNiQ6RlNWXi1uCi1PPlBGRGJTalQ4akRPMkBMLUlGPXJFYiI0R25hLUMqN0xKZiU8Umw9Wz1RbTVpODAwY1lVRHFAXUZcPVolPT1QRQotQVt0KCdnMDdyTSZsUk5MOlBacGA7XFFVQEszUERjVSNOKVlYLmA5dG1IaE8mUU09Xjg+QSRdVkByc1pUcVVgZDwKLSQucl90XiZhJyYjMCY1Ni5dS0JXTjJTIUYpX2wwclhxaU1dT0huVmNeKU1ccUg9RF0nMTdAc0tFR1BOb1xRMDw1Ci0jPjxKY0NHak89MUVOOm1LWSZdW2l1Xj9rYDFeV1ouWjldQFlXQ3JgKkJbZyFDSzI7OSw9J29HKFRBdSxfNW44XwotKS1xXF4iNWEpXDFqcyRmNGlBRC9aOzBaNVoibDJUKTsuRG4wJ0dbQiJmOTlbIiN1JUkrdGQxMFI9ZDRqYC8wbWkKLV89LmxbIjtZW0g5VjpyakFJWHBrJl5ZbG0odCQjKUhnYjZSMWViUGoxYiQ3JGMyVEcxVUMhYm5Tc1ozSjokXTw2Ci1XKGdEbDRDP1g1Oj5FZjZTRXFBOFJQZyRfKD9OaEhOL2glISRoSCFpO10oWVEjWE8vJ1NHbDZwZ1EhVEluW1UsSQotayQ2dE1GRDhEJFszOy41O2hSbV9SJ2g/OTo8YFE+YVBzOnUoPT1GVFZeNXRUOkUwSSFGLG0pWW5uOD1QJDM7Ml0KLTxuWEhiL0ljJjVKUEVXJjJXVFZJXCZPTEAsWjwxPUM8byksWHE8OihnOj9ySTNQZGBwTyhgRzsxJTQrWmFXJiFKCi1SWUJlXTNAZnJ0YmBeWCtVMzA2LjVEYCJHXjtaZUchc1Z1UU1cMiVgImddcmlic3NmJmszNEZHOW0hTUpMZkldRQotLkczOT9DKy06YS1aNXQzKjJDJWBBRTlgSyc1K0ksJjk/KGlCVz0zZFxKalNGbyxlMUdVYF5WPVNlaD0mNVVacWkKLVVjLEhKR1k2WDVXc1QlTlQlXC1bXyU/SlZELktjOFtcITlIMEZlTUFhKUxnTl5mLV0zXUNfZnRgI0U5M25vSChACi1QXVMmcEtiXkRhTTliLHNGS0NCXDcoKmJmZDdidHBAKHNdZ2hXUmI9VjZ1RGxpWVYhWT1iWW1GR1k1QSw1Oj1DVgotXzBeI3JsZGcyVkE4X0djSGtSZG1XMHVZNTROWGg1aFNqNEolKExuUWJCTyY8LWpbbm9rRyk5OiIxdV0hNnRePycKLTJPR04sam4yRVJgMzQwc2VrRTs2RSVYQ2BicjRzWlBhLS9MbFYtc0czRThudDUkUGJvO2onRXByNjMlUm1WVzE4Ci0kO0UmVVhea21wS2Q8bzNKMidoTjcza29TLyh0SHQ+M15yUiVTMF5gRG5vaz9ycWc4Ozc9YENkanVzLnE7P249VAotIlU8UFJgW2xBUC5WPkNiMVpzY0ErRUNGajQ/VlU2InNcKEc2WzNNTlFAOic1OCMoZnArdDJLSVUrWW8pIyxfcTcKLSRdJDQ4IVkzLlA6JzxaXytDa1xRJG4oSlU+LDhVMVRdP05fUig5J2tMOT40NkI5MzxhVTFyciszWGlTSC1CKVhBCi0nW24xNyNBRUgtXmhzQUdgY0wxO0VEVz4pLUUpZF9URVA+SEdiQW1MLEswcixVb2toKyRSQDJ1NmQjZydcNkJKUQotO1FEUycwQzgxQ3FIXTBPO19WNXArOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNDM0IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiAvRjE3IDQwNiAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTQzNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMzIxIDAgUiAKLS9SZXNvdXJjZXMgNDUzIDAgUiAKLS9Db250ZW50cyA0NTIgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA0NTEgMCBSIF0gCi0+PiAKLWVuZG9iagotNDM2IDAgb2JqCi08PCAKLS9EIFsgNDM1IDAgUiAvWFlaIG51bGwgNjUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MzcgMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi00MzggMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCA4NTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQzOSAwIG9iagotPDwgCi0vRCBbIDQzNSAwIFIgL1hZWiBudWxsIDgyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDQwIDAgb2JqCi08PCAKLS9EIFsgNDM1IDAgUiAvWFlaIG51bGwgODI1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NDEgMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCA3MzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ0MiAwIG9iagotPDwgCi0vRCBbIDQzNSAwIFIgL1hZWiBudWxsIDYzNyBudWxsIF0gCi0+PiAKLWVuZG9iagotNDQzIDAgb2JqCi08PCAKLS9EIFsgNDM1IDAgUiAvWFlaIG51bGwgNjM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NDQgMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCA2MzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ0NSAwIG9iagotPDwgCi0vRCBbIDQzNSAwIFIgL1hZWiBudWxsIDQ1OCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDQ2IDAgb2JqCi08PCAKLS9EIFsgNDM1IDAgUiAvWFlaIG51bGwgMjk3IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NDcgMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCA2MzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ0OCAwIG9iagotPDwgCi0vRCBbIDQzNSAwIFIgL1hZWiBudWxsIDI1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNDQ5IDAgb2JqCi08PCAKLS9EIFsgNDM1IDAgUiAvWFlaIG51bGwgMjQyIG51bGwgXSAKLT4+IAotZW5kb2JqCi00NTAgMCBvYmoKLTw8IAotL0QgWyA0MzUgMCBSIC9YWVogbnVsbCAyMzEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ1MSAwIG9iagotPDwgCi0vUCA0MzUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA0MzIgMCBSIAotL04gNDczIDAgUiAKLT4+IAotZW5kb2JqCi00NTIgMCBvYmoKLTw8IC9MZW5ndGggMjUzMSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIVBYMilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBYcU4kXWJUS1lzZktEMFhdTTkuRUdpQFk4WmJiJSkmKCVIN0pPVWdjOnQpLDciIlonVjF1MT0mPm1EUWQ7QQotRGA3QGVlUzNGLGdpVC8rTiReYVlFXSxnNikrREUqa3RtVlJZM2ZWNVxoPEVeL0E0JlFpKzA/TytfaHU3TCZqUG8KLSducCZyanU4PSgvJFNqUSF1VG1oIjlSTFg0LGo9SmtSXDZuXnRAaVosQ25dLVlqRmRYMFNCSUdMQ2gyZ2FMRHFsCi0kIVk6YE4rNURxMkBZO1s1V0QsLDM1a2BTWXFpZyoiOU9cTTJcIilQYzRFNCRuZXI8MDphNilfNWpHLDFwJmtjdQotNW1iRTRdSkFlP0RZLSgnJTRQRSsxbFVIX01AXjJbTicuVC4sPE1McV5UW1BVL2Q/ODgjNlFHYENfSHUsWVxZQmUKLU01LEhdbW0/JmZqdUpIWmpAbmFMRUlkOjJdWyUjLzFKSTs2LzM6JFohanExJzZcKmlhVi4wZWRrUkknLGpWKE5qCi0vJVJfTUs2WTlyTlJHRUwyRU4mXmdjKjFCYlBxUmhaTG5lNCJUdC5YKEsrJVphWEBLLGItYWklY1Z1R05OLSo6ZwotMUNnR0BKZTFWLlxDKkRtO2FcVDFdNidTNDE2LXRtZFBfU1VKP0pBcSgvUG8hIl1TRisyYyJAPEk6PjUnLGZxQ1MKLWR1QzBsN1lBO2AuYnMnIl9FI3JGb2xEI11BJzxeX05yXTwxLGhGODg4VGhxWVBPJy5rWXJoPj5OOmQ6WE49TkJrCi0iK1Q1XT1SdXIkPS0yVyslbDFKY2wmOjdDIUErSktRczpMNW06XVxUZCVSOUsoXjdhLyMrPUNDMFxtcl9vZC84WwotXT5KJSkyVmlDb3JmdUduITYiPTddLCZJSDtmNzZDbmBJQklNYjJZcG1JQ2VwMGcrSjE+LShfYjlcZkFROUZzZSwKLWgrKXI8b0s5c2hiTycyT2ptMkokOEw6dUtNISMvZTQsZCRaWXUnckU8dClWSExiW0hRXXUyaVVAaV0rZzRWdCE5Ci07L0w8bCQ5Vjc+J1RMVE5bRmRjY2okUF4lSnFiY2dTIihoI1RecnR1U2VAJ1pwcmFkb1Yxb0hQJmVtUVpISyItNAotM2ROViVDLmxvWFdkOkFdJ1VoJGs5aENuOVxhQyY+PVZYKl0mbWdWIWpgRGpWZjNIKlpbQD9gZU91XDpyK2NKSW4KLVEwLj8/NChcckEmXiVQaTBSKTRfZFNDKkJeVSpWUCo/OFA2RVRRRGs1KEhKMk5lJz5YOlovOlZVa2plJTZFWFk3Ci0hRkNPWGFJViE9VydwK0FRKlQiWCVATitFNk85NHEsJXReYF9gMlJKN0snIVJuZD4yTiksO1kucjlLSjMvLkZtcgotOylvcSZaKzw/S2gmJUI7JVY/ODYoaihHbiwyMCV0RTF0aTk7cjFUSUghci5VT1BaNkgsWFAmIys5bUFTXEsjK0AKLTgiVW5fTUY+Z1w1RiMhTyItQFVOQEIiOkFFNUVIY2dnV2dxZ2JVNjZfQVopRj5gNyNNcjBUb25MU0g/KURvJnFGCi0jNFU3Y1JMaXBWNipOQk9mJmh0MCtzb18oL0ZePzlPTUQwZUhqSW1WZFk4US1zMiEqI0dgUDdJNSVCJ1QsKWdRJgotRCxva2BkYmFkI1VaIU9CVEchZyJhVDVVUkdhP1g6W2xEaUQxMSg/JkZKbG83KF4+ajw+ZiU3PmFHT29dJkZiXnIKLWdzbyc1YicjcG5bU01oX21SNj5KYCZdX0QtNlJTajdOZVlIOlBgVj4/YXFTViJoSWVWT1JZN1dNPTMtbGo9ZUwhCi1qVlE3ZWwkO244JlxRVEpIR1o9QCRAdS8qSmRBJjkoXk1PXmFFRSg4ISlzXGItckxDXCxVXDknSEhPJ2UiX0QpZQotTSYkLiUpVG0tUE5VXHQ+KDE7KkolUXFgXyJOQnBJYTNNSm8wUGorVjloaC9tO1tOVkJNJSNFUCtlT3NsOUhHJD8KLUdkUUNgUVFUbE1AVSVHaGRkIT0/UGRhYWZjbVljMk1RO0BpZmldZlxBbmFyQ1dFLEdOKHU2M0NRXENcVzlOJzVACi1XTDhFL0pYcCwlLF9jUlFGViRhRVwvQT9UcC1xPygyXz1FJi1JQnBMLG1sMjtYS05UXz00YVFYQ15rMjRicDg3RgotIyxMOkMjcDNvaGBoUy05a3U2ZDtSTyopY2J1WWlEJFw/QVEsMVpVa2RAKXMtbGRdNlM1aGB0OUhJaUU3YEdgMm0KLW1eXFd1bDw6L1UuXSVcV2k3O1A8JSdEMVRYaiY4Si1ULUtKZDdBOWVDOHNaWDtmM0xAPWwrUmUhV25udDhycy5MCi06bVElVj4pKEMuQl5DX2cjJV45UjIqLWI8aCclR2hAOFE4L2ctbm85YjtZYzFFYUtQMUo1ZkAhNTZfYzouREBeQAotMS5kJFMiTEVwIiIkK2woa0BMVXIiaXFQbllcRlk2VyZDRmdCYVpgbm4vTUgvNmp0R2JfVlUyLC8qUkJOYEgqYVkKLVpWamcxLz9LQUVESVhdPjksZzpgJU4+bHBwXmRLbFZmL05yNC87VHIoMWFyWlBBWkAxVjc+bW9oLGZYVkBVc0YlCi1hJ0xnVihvTDN0O2NZR2dHVWFhPiZJUlBBb1VEZVFJUS5fUmQkSVlzUzVTLzI4RCg2bypGXzBiSks+bygpT01OXgotWzBnXU9XMyRmUW5MQywuMC5ZOSZgaDZFbDw/VU5gNyJvVSEydERiRV9dOTgpQjBiVitIIUY2VjdVTlc5OC9SSiYKLWlYQUo9YCU1R0QnRWpeMVQ4RVBSTktpWWI7cEFKVGwzKTw9OUolJENbamk4a28iQT0lU0sjbHRiSDxbSnAhUD1JCi1Hb1xfVVphSVYiREppSSNVbTFnP29hIzdBJU06NGtvbiIyZGIjIyxzZldubzUrK3FmNzkjPm8iQSlWXXQ5a1RiNgotMCkxMSsjKTArPGVgc3QrQS40IT1+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTQ1MyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTQ1NCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMzIxIDAgUiAKLS9SZXNvdXJjZXMgNDc1IDAgUiAKLS9Db250ZW50cyA0NzQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA0NzMgMCBSIF0gCi0+PiAKLWVuZG9iagotNDU1IDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDU2IDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NTcgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCA4NTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ1OCAwIG9iagotPDwgCi0vRCBbIDQ1NCAwIFIgL1hZWiBudWxsIDg0MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNDU5IDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgODMxIG51bGwgXSAKLT4+IAotZW5kb2JqCi00NjAgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCA4MjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ2MSAwIG9iagotPDwgCi0vRCBbIDQ1NCAwIFIgL1hZWiBudWxsIDgwOSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDYyIDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgNzk4IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NjMgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCA3MjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ2NCAwIG9iagotPDwgCi0vRCBbIDQ1NCAwIFIgL1hZWiBudWxsIDY4MyBudWxsIF0gCi0+PiAKLWVuZG9iagotNDY1IDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgNTM5IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NjYgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCA0OTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ2NyAwIG9iagotPDwgCi0vRCBbIDQ1NCAwIFIgL1hZWiBudWxsIDQ4NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNDY4IDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgNDM2IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NjkgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCAzOTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ3MCAwIG9iagotPDwgCi0vRCBbIDQ1NCAwIFIgL1hZWiBudWxsIDc3NCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDcxIDAgb2JqCi08PCAKLS9EIFsgNDU0IDAgUiAvWFlaIG51bGwgNjE4IG51bGwgXSAKLT4+IAotZW5kb2JqCi00NzIgMCBvYmoKLTw8IAotL0QgWyA0NTQgMCBSIC9YWVogbnVsbCAzMTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ3MyAwIG9iagotPDwgCi0vUCA0NTQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA0NTEgMCBSIAotL04gNDg0IDAgUiAKLT4+IAotZW5kb2JqCi00NzQgMCBvYmoKLTw8IC9MZW5ndGggMzMyMSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIVBwOilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4pczUjIyoqRnByWS5EZ0ZyRWtmaXJPLDdCdXFodTcwY2I2Q3NIb1JSNFplVUQ7OF5bV1FmYkZObiMqZgotPCMmLFJTaig1R2slSF1ETmdCLShYL11uInFiPEZLNUxcJ0ZeQDAuYSYyPl50cjopdV4sUj80bGNTT2kjJHEjOXIKLTJEKilaUidIb0U4ZzhwMy4mXUJNNDVrLXApXyM2ajRMP0ZZQ1I+cUMuJ2RGaE1lVEU4Mz1SM2BrVlM6OjQpUWFtCi0sSC9JOE4yXXFFM1FLJEZmSz1mcHIvVUxdVU9fOnROZSUySXBJPjxGZko5aTpFOUsndSItPmMvJWpRYjMzXkpwYgotYHFZUVs4N0VQQiZlKD9qJSNKKk0yaFY4XWRrVzwhcHNDVnIsM1lzTy40dDBFTCdFWkdEUmNdPmNxdGNIRF9zI00KLVRvNFU2NnAlSV1FPkwzJkxkO0IoZS5qKlxLdSchVjcnMDg/RiYiW1ssQDlINSREXl8tVk5IWyIxKDVEKENHPHBECi1eZCcmc18jVVolWVMwIk80IiZGZ0VZJlouOVwnbWVqKSZ0ViRvMFomMUpeb2FfWytuW1NTTUhSOFIpXjliNiZaagotLisrNlNuLjhgJEAqMUc0WmdAXCNMMmRxdTkkTUlxUUtFbzZGXmMlajFNVjdnPGhpOmQmNGdfUWA/XF5dW0pNKD0KLSxGaUJiZls4KCEqWHFUMkpSNDRkNyMsRyEhTytnRDpARThecStFVHQ1VzRRVjVmSV1HcCo4WWxjPm8zKzVYKUdUCi1FSzxRWUxoO1FVKEY2Q0AtYyZMZSdOX147Yi5wbEMhZTJZK1xSZ1AqXXNeVmIySGRKaGgxcyJ1WEVQYCtvImAwdAotTis2LCFSIyNRKWM5IzJTV2YnKVJPJWBRJDcoOmg6MXRsKTskJCM8VTIickZqZkJEJ043WzoncT5bbmAtaXF1Ol4KLUxkQUJXUm51RF1nLkwjTzMoXEoka3FwWUZWOFklJUBuaXFhTkFIZUYqVDs/TmhqVTY/aEk4KV5AQ0NUT2giKk1lCi1WTixfQmFmUGhsZVNSITY2JD9rLEtyb1QzKWBlQC0xSG5bY204QmhjXzkrYz1VW0RwNihWZ1BsIzZOLjY6UjIzPgotbEA8RXJxQFFoO2lGYTwlVilWRCNBSFY+LWlLUSxySDhqK0EiQCxkZylSKEA2KWNtVnVzK2VQZyhZY04qTSQ5YjYKLTF0bTs/JjdaLyUuPC0kTmpJJ0MqaShOR3BfJnRNP2ZcMDIvSTdKQiEpWnRjLCdZMzBTJGdpUnUhaiEhYWtZPTttCi1UZCdmLGU6cDdWQW9EU2JoUyQ0ZCVLVjQ/NDxVP2EuWW1ZcmhoJi43TnBVJ2lKbF4jLEVVQUFBblArV2lEQC1GTgotO1s/ZVcsYkYwT1B1Wy5iNDAtPXQqMSk3SFNnNkNCbD4+VV1qKyhGT2E+LWJXbTBLQ0ZJJkdzK2Qiaz4zaENGYWoKLSImYiUzN3UuVlIvQE1TbSlHNDpURDVBZDRVKXRIIyRzRWpnQyxIZXRLYyFKMi5xXTdWLkJNKDpcKD1TS0E+ZEVMCi0nTF1TT1BnXjpmWVtUbVhgbWMhWWtYZXM3OW5zcl9aRWAmTz5ZIzg5IzZHKlFhNSRoXjk7MFNINyJzQGtObz4xZwotWV9fRz9HPmFBIzVdQ0wxOiwnJCdETFdyVkgiQDoqLnUiYEJiWHFEVC1nTD1RTDYxLUYkb2ZBSyYvWz9cLGQmKHEKLTQiNG0oS2UsLz5hWHJxQCtbJ0thbSg7dCtGJFpNJUknTm1oYEwqMjEoQHBZbS9uSFE4MiJWZVVCT1pdZm5iIzdOCi1vRiw4NipkUy9GL09vTlw+aVYlMUxpPGdwXy5CRnIqIiJWWGpLKDtCODguUm1ITFY0L2tzW3RrWzFDKXFDRy88JgotNnJKOVJXZyppSzMpaVRHViRcYlYuOkgyOUU9bSotVzE8SFBAPEBsNUtZOTs1P2ptPCZqY141cTNKSipoUislZjYKLT0ucEwrO2VOUUU6M21nQDIpdUdyR0gza0htMWxKX0lJPHVERz9FYDdAbXImLGtTJEoyOWssXj87VWtvPCpANEMvCi1DS1xINS1cZT4xM0h0ZjNhRFZRaU1UI2U8IzBXUC4jXUZWJlZNNnElaG9ZSGowQ2BhUi5NLScpQDA2LlVGIT9lIgotTVxNTVUqLkE9VGE9c15cWEhxPChHSTw4ZlhZTGRMQFxHbHRUcU49X2BjPFZibFJFcVtALF5QJ28jPTFONVhtdFMKLSJfMzVkaFAyT3E6OTZpVCVadENZN1N0J00sS1JrPGNtP0pxY0ZAUiE6X0BjayJINDtTUmBCUTUzJmZYMkZIYjNgCi0/V1JCMypFRDpxPkwiQ2EuTmxxUj5aRjdNUWF0QyYjPXBYVVsyTXBpJEREY1dXJXFKU2JZYDBgKHFPQyJNSHNcYAotRyJ0cGBJTlpMIWJfcWE1PUgpN01sIkNWNGw0RCtsPnVPQi4rWWNdNWtvcUE8PCpARDcyXy5fakNCSi8pPnVtZUUKLTBEQlkqTiE2JmtALERNLls8MDkjUmdhTjktPVAiMCJULDVWWiFzaFhfUl5VQVpwU01GJVZcQEZMTlpUXTw5NiVmCi1gUURbZjQ7bzVaSUYwVUhiLT1sKGJTYGRgQHBOcEdLZ1A5PSVsKThgJWg6XVkndUxhJUElRSlWUTw/PzNadFBKMgotNW1nRC1CWkg3Nl1pKzUzYSRxdGxWUExYLUpFWWQyVFsnZTFmQ2BkL1AubUdEXFFDY3BwKTksbUhTN1gnUUpCbzgKLUhBNCRJO1JkdVMpJD0rQUVRUC5IY3FULEU2PjNRczFLM2JQKEtBQSs0MFhQTzphaDlKTDptWmhESCg7Py9xNFckCi1SNEA1IkQiTnUyTmZiLC5AYC1wMTtOTiItXyxNYGFeZipKR3EqKDtDZV1wUzhUK2tiKTxSQiEqZ1s1XV9OYkJycQotZjhUcy1nU05iMy4/O2BSOG0tTEE4LHVAZjBuQF49UTwjbCU2XjN0RFxPbkpBKjdOQSFQPltZSD1OTWU1WEVCMnUKLU9pKEBHM3EjQl1rdER0I25kW2Y5TVEhX20mcUxwOGBUMGJeUEhqaHNmWENyb0taKWY+RUNATVg2WCYmaWcoLk5bCi1lOS1eTkFpIkBHWz42XT5Aa1pZJi5rayhIQ3VtWmkrdWJtLj4mWT9vL3BsLllNPkNpRlJlQC1bM1EmdG8uUlEnJAotO1QuNHMwI0I+ZkYqYyk4UEwiLEo9Z1sqQlBRQU5yLTJfKmYrMyVhalo3T1tuXXFfNyw8Si9RQyQ5RlBJQ3UkaGgKLSUuOThpJjhBcG4pMWI9MSMsJ0hbQnU4c0lKWzxWOVo4c1slO0pXVChibiMqL25jKGElbDprVSMrOWJvSUdiUFlJCi1yKUpFa25YRk46RzpGMEonO0tfQ0hdTjMhZ0w3XE9ZM3EvWjhoKjhIJU40RWw0Q21FKDMnZEREXC0hLkMvbWBAbQotZyk1YEdySF4zVT5hT1ZYO1pXJSUuVCwxQztrOTFyS1pmIkZKTT91ZzA2RCNpcTpqWDJKRE5ybGI7QUFMYTVZW3AKLVpNOUYnaCUsTmMvX14zRDRxK0RVQnJUJCQ6JHRNPm42KyVXImxQKz0/cmlPPWFOMjtZOTg9NV9WNWJvSGIwXl5zCi0iOV1RRE84dVh1QExUN0w0IUtKR0UhWTdfU24kXkw5NVA6SiRkXTxaPlxIQjlMKmBsJGJaJlRLXkJDRiZNJUE7RwotbWxYPzktazpkXUJeNzo5QCwrPF8xMnIyPG9TODFuYyczcyQ7SClmKzplLjFYYmIwOUJrMVcuYkhaKTRUWGU7ZyMKLW5ETlNGSTEsRCUhc0FoZmNPRT42cEY9STtZZktdJUo6IkYmJGc3TkQwNlVRdSwqT1VrWFg3TUxOX0dPbyZyXlZNCi01QEVwRSJUWDE0QE5iLVBPdCtbazldMz1WLXMlW1E4N3NQbzgwNWBnVzBwKTdbJm9eaGtJTGsxYGRTMjxuSS1UYgotTnRhMEMhXz1xQS4wQ3QhVSZrfj4KLWVuZHN0cmVhbQotZW5kb2JqCi00NzUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi00NzYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDMyMSAwIFIgCi0vUmVzb3VyY2VzIDQ4NiAwIFIgCi0vQ29udGVudHMgNDg1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNDg0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTQ3NyAwIG9iagotPDwgCi0vRCBbIDQ3NiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ3OCAwIG9iagotPDwgCi0vRCBbIDQ3NiAwIFIgL1hZWiBudWxsIDg1MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDc5IDAgb2JqCi08PCAKLS9EIFsgNDc2IDAgUiAvWFlaIG51bGwgNjA0IG51bGwgXSAKLT4+IAotZW5kb2JqCi00ODAgMCBvYmoKLTw8IAotL0QgWyA0NzYgMCBSIC9YWVogbnVsbCA1NjUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ4MSAwIG9iagotPDwgCi0vRCBbIDQ3NiAwIFIgL1hZWiBudWxsIDQ4OCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDgyIDAgb2JqCi08PCAKLS9EIFsgNDc2IDAgUiAvWFlaIG51bGwgNDU1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00ODMgMCBvYmoKLTw8IAotL0QgWyA0NzYgMCBSIC9YWVogbnVsbCAzMjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ4NCAwIG9iagotPDwgCi0vUCA0NzYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA0NzMgMCBSIAotL04gNTAxIDAgUiAKLT4+IAotZW5kb2JqCi00ODUgMCBvYmoKLTw8IC9MZW5ndGggMjc2NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIzVMVylEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4pczUjIyoqRnByWS5EZjJdLFpXX1UzbkQ/by9jcS1ERkdwXGZOSDhONFcoTVcvVC9CMHEvWls1bGdFOgotRj49Yi9pbzw8I2dmLCM0SGk+KilRY2BmISpfbG9IQj1hKi1eKDZGQ25OO2pka1coYGI0OFNdYytbWm1bS0VJViwKLTJOKlo5ZDBMLjMsVFxySyF0X3NWS0VLamwzPU1bVWw4Xk8jI1pgWWJBKmImc2BSIkZhZj1ESExvRnNDSVRLcmshCi1pdSRLMDZFbyotJ2drZzEzIytnPmdUN3RKMCYxQGclWUsjazMnVW87Sy1OckJHWWtOJGopRS1yIjsyQ3AkOzRsJgotXS5fQWAwTDYsYTFHbGQhODVTZVMsc1VdJlInSG9FOGc4cDMuJl1CTEw+ZkBBKVs9R2VXL2lNOkxwZSEnK1w2PmQKLUthOkxSNEdHUC9mYSpPVTVpRV5uV24/KV9LRUltbzE4Z2ZHYlc8Qj1VWFY0S0UyXlc0OUdKNi0zRHM7JDssUm4hCi1BUTtOWiZzMjw6JVxvZ2AmLlBzImQyYFdrWkYqVT9qJ15MdU5vUUwzJ1Q4XVlQYmJlO1xlc0MlRENBbmtkSEl0SgotXCUvWWhDbV1uWVVWXSRyNjFmRT84KmhZUDI4NnEoaEQ+XGljc25ZNTZZNG1dPy4rXDAuWUltZFptNElwPy8jWSUKLUJMOCIjTEQlc1NbaWhoKEovRyQwaENzZzJfNSEqUFZINiQ7XlYnNWFrY1thWzI3LythOHNKcS0iOkwscDY7WjAhCi0iPC0mZVYmLDlFSztNPi1OLTBNL3Fib0FTREQ3Kjc3NjpYKig4XC1MMnRPaCE2JilDc2QnWCFrK08nO1FcUEFsUgotQzEzPGhXQ0g1JC1tTXFIKUFxVWtmdUQrQCUhYHVbWmc2cC1TWyVKPEQmMHR0bkRNR0o2Pj8uVTxTQl9DSCc0MDcKLWQpbkhcJ3FmJkA8L15FUDI9XUlWU1NOcV5kcFw2SiRrUkR1Llo2VywnRlpxaWhfaio8S1lBNkc8PzdMV05yITosCi1UKyZVQ2BxcC4iZlBFSDBmNENWP04mPDwzY09TYlxMRzguITBMMj9wLzNhQiYiOUkqIlsoJG4yVi9JaCxWNmIwUAotTmNVbFg7MHA9LFhpbk5cT3RWVyNHYXA0P1JWNWtCZFhhXnAnWT4uVUVFYFYqR1gqQ1UqTFAsSlNqUFlPYzxRXkgKLWUkUzxYY21YOTtPU10vbmQvJ0FFbVg+SydbP3I+SyU4SVQvIzNuP0I1RjsnTCFdJilAQ0BGMWVvUSgiOzZaWkczCi0+bF9TU1srPjxZO2g9RD5wOmotRlYqUGBoRldjMnJcJ1diRiE+RmwqTztucyNpLkFTcEByWyNvLTM/TmQnYXJuSQotOidkT3UtM1ReNCJKOkp0JFw8N1UhZEVFMEBPKiEjQmM1WV5QVzlBTTlNSV0pXGFkUTtSTTNPXDc9S2Q6Tklyb14KLSondDM6LVZyKS8tcFZWXT9kTV8+VW9sWXMnZ2gwRmAtUFUrWE5WXCUlJFFUSypnJWAzMXFXaE5SKyJCIUJQRlNyCi1UQ2A0LiU3PnNUJERIPEpHRXMrUUMqWklSUGYmNmtkU0dkQlI/PlRMIj1uWnIpYzVhOj1nRzlJI0knXjNfPDxSLAotSlJmc1kwUj0tcGw/IkhmSUQ8IzVnMGBBQi5oPyY6K0dBYlwmVjtEdDBTKSYnS2Qtajc2QTQyTFRgY3A2NWEzIXEKLVlUVElwMTJrNCs9QmdaQU8tWko1LCkkKyknPmJTYzBUdT5hKGVFV3RrIk4lTzE9NUczazJjKl1PQ0VFYUoxKFBeCi01UmNTVV41Tk4uKUdIcS0pV0gtXUknPlgnX2E1cFEhTCtRLSNaTlFVUVsjYU5YN1FWO2VrZWJSYm05VGdUUzBKbgotMVZCLERscj1bLC5vPDRDYW5RWVwtdGxzSzFjLSMkNygjaFNmTHVQclM7N0UmU2Q1R1s5akA5V1ZMcTRoZjlvaHIKLUBuSDxOIiFEN2UnSDJbOSQ3KSduUDV0NzBXSFRxVD1XPmtGXGxdaEtDJnRHal1IK25ZJHJPPmw7RDBeXjRRVFBhCi0kbU11Vi1nOkYzbkJAP1s2VSRgNDxgIk5bSS0iQT4/am8/XyNgImBaKGRsMFJOOXBwXkpkMyYyLSNkPycramAsTQotNkAyS0pfL11hVS0taiRxJkBrcWgxRkI0VT85QiFUOkwuP3REbWptUSJyKU9UJG1XVFNsUW0kPkssIWZdP3RnKFEKLVBScGJUKEY+bG9aI29cXmdrLjp1KXJWZW1LWyhtcCJhKjxfQW0rWjQlLUBcSWs+LGFYJUFPJTonXyo4XChgNlItCi1CczRsbHFaXmhbRDVqYV0wU05XIjN1Kzs3ZUxjQmRKXm49J0ZQTjw5Ulw9bD8lSEpjMmpYXkdCMV4rTEVTdD9oMQotJG5pZl9bblpfVWdbTj9vMC9gJztcLlJZJSI3LW9DODlTcUIqc0VhIiNdRktMMlsuTkFONmtfIWleNiddWHByczwKLSIpQCstUFswbEhtTCReYGlzNktmJUxUSiwxRCUoSU4jVjVZRCRASUZyXjRsaSleJEFuMCc9TDw+MVl1RUxmOidJCi1WcT0pKUcqQGZGamF0PS5gczRdRTMjaTpgQ04tNyliYFNvLD8maXUrYlYxOmwzcGFraUNjbEM5Ois9MWxDXmZxaAotSGEkMD0rIWZyTzh1VmdwayZGSzRVYFgvWSlkUWlMQmFUaSdAMVo3RDAyUVU8Ny5kWlJfbGQ7NEckcWFOMDIoNigKLStJJUw9TU5fJ0k/UnU+JkZePF9EPFguREhpbiJXbEYsIlNDWTBqdSxNWnA2Y0ZqKDkqO14xMGhZKU10WDJLVTwrCi0qKjhMQExAUSIvJVNvNWdDJzhaaCdbPEMnUVNEPm9OSTlWXjEjTFleaEdgZCNgKl9UWW8wQS8qM0pSJVduRllhMQotXXVDKFU1WVkjOlhhLzFyZjklJTRRWT5jV19uKU9UPCYzL2ozQEpdMVVDOEZcJVZwcTxEVS82cVhVTT46IXA3SSsKLSRXNUNXSjxedTNbVD5pdEwtSS9VIykqOU5gWiE1JFhOSUM9ZF0rPXJYIjNMLS0kQlctbXNWVlBFbF4jMSouOS9RCi0lLlRaP2hRMF50TC5zVD9hSHIoZlI8OEAkPU0hbCZjZ2JNXSVYV24oWyomNkNfbC4hbm1dW3QzWStRWG1nVEs/TAotVUxeP1FIUnAuXS4tTTl1ITRqUWxbaj0vOW1oMENMK0YuPU9bSVxBSj1JQiJxLyklQScrZDwjJyI5fj4KLWVuZHN0cmVhbQotZW5kb2JqCi00ODYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi00ODcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDUwNCAwIFIgCi0vUmVzb3VyY2VzIDUwMyAwIFIgCi0vQ29udGVudHMgNTAyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNTAxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTQ4OCAwIG9iagotPDwgCi0vRCBbIDQ4NyAwIFIgL1hZWiBudWxsIDg1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNDg5IDAgb2JqCi08PCAKLS9EIFsgNDg3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDkwIDAgb2JqCi08PCAKLS9EIFsgNDg3IDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi00OTEgMCBvYmoKLTw8IAotL0QgWyA0ODcgMCBSIC9YWVogbnVsbCA3NjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ5MiAwIG9iagotPDwgCi0vRCBbIDQ4NyAwIFIgL1hZWiBudWxsIDY0MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNDkzIDAgb2JqCi08PCAKLS9EIFsgNDg3IDAgUiAvWFlaIG51bGwgNTk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi00OTQgMCBvYmoKLTw8IAotL0QgWyA0ODcgMCBSIC9YWVogbnVsbCA1OTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ5NSAwIG9iagotPDwgCi0vRCBbIDQ4NyAwIFIgL1hZWiBudWxsIDU3MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNDk2IDAgb2JqCi08PCAKLS9EIFsgNDg3IDAgUiAvWFlaIG51bGwgNTA1IG51bGwgXSAKLT4+IAotZW5kb2JqCi00OTcgMCBvYmoKLTw8IAotL0QgWyA0ODcgMCBSIC9YWVogbnVsbCA1MDUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTQ5OCAwIG9iagotPDwgCi0vRCBbIDQ4NyAwIFIgL1hZWiBudWxsIDUwNSBudWxsIF0gCi0+PiAKLWVuZG9iagotNDk5IDAgb2JqCi08PCAKLS9EIFsgNDg3IDAgUiAvWFlaIG51bGwgNTA1IG51bGwgXSAKLT4+IAotZW5kb2JqCi01MDAgMCBvYmoKLTw8IAotL0QgWyA0ODcgMCBSIC9YWVogbnVsbCAyODMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUwMSAwIG9iagotPDwgCi0vUCA0ODcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA0ODQgMCBSIAotL04gNTEzIDAgUiAKLT4+IAotZW5kb2JqCi01MDIgMCBvYmoKLTw8IC9MZW5ndGggMzAyMCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIzVkXylEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4tP3EuKHQ8IktNTXRSYTBXOjZdX0xkP09kVl8qUTZqPTxFTz9kOzdSbmExKi5IIUkwMGNIIkoxU29EWQotOFsyMyZZYXVdTyc/MXQkL2pqJ1QwOW1VcSRqSmNHUW8pNWMkMCpoRTJpYW00Yi8sWXAhOkRWUkBwbXEjJTphQTYKLTQsImohQS8kX01CXGtiMEpIMUU5JUtoZWppLlY4WGM4YzpYQzAhLyIsSUE6R05pWWM7JTdGJj0oY2sqRSE3WCdJCi1OQzA/b045ZmQ4L2dGZjdoQ3N0TUdnP3BdZEpRQmJNTG5gNCg5Wyc0L0EyNFxLQ1RtMkJxdFlkJVxtXlYrWmFNQQotWTgwUDssKCdxaEs5VlRcS3VkKjtUMSEsJzsmPjA5YT9fUSZOZElMbV8jb291NEg9NSdnKF9pW00hNHVkWmI2YCUKLV0jL284MjdzRzVhSGFodFM7ZWN0VGhNLi8kQHUpZDAqTXRlVl0qay0sSEVlW19nKDkzTlJDKTcyQGhNXWgkYUR1Ci1ec1xNIkAwQ2c5TiVmQUgjdChIcjV1XjdJJz1dclIiI1g8cC5gKy9OOkoqKjBJJ0tabFplQz0kIU0kPVNNSVQ7ZAotbVNDLTBiY2k1N3FPSTcvOk5Aa0EjL1ErLyhJIW5kUUtITj1PUVxYTEM9OVgnIjlUcDMsUyksTWIqQSEsTVxRQXMKLWE9KE5pWEd1aCxDVWpIR0Mpaj5db1duQ0xKWUhQQGNiVFRcW2l0PTg+VCUpW1JWRlRDUTtlXDlBZGBgSlJeIkQtCi03P1A3SyVGaydOODxfbmcySm1tLU5pI0MuMkFjV29qW18sO1BNQCNzJSdIaFpBLjVsOW9dT0gnb19wV1QsOS5ScAotTDxlbD9CUzZJOWghP0dHPVEoVVFwI0RgcD1QQlE8N2M9LnRrcC1dZ3IhKT9uL3EkR2NnNi5hcC5ZZVlKV00/c08KLTxDc0BARnBMPnA9PGptYTJvJkNgYjxPRGJTQ2Zrc19mVjZVQzVNOE1eV3EnNiMhLS5lL0UvLGcmYFgyQENuMWRwCi1kO0pNSXMxajJyUmFHI1JRLVcmVk4naHR1YklVJSU5IyhlIVlbUzpUQHBsZVxfXXFedDFkZSRHaEReRjJcQyo3UwotckBPUUY2P091KWdnU2llKTJUaEZVOCFUTmxbNiZWQSU7OzEwOzZaWCojT0Rzcjs4NC4pJ1w5TWZnQ0tAWUwiKysKLUpCSWlsVE8yOF1lWCZNOWk7WlM3MU9gYyIqJloqV2JzUl4qQEI2NUAxVy5xbV8ja11hRCUtPC1KbXM1SCNVb3ROCi1lLl9yYVMvIkB1OUVjblwoOkxYQSowITY3RyJDPD8yJixiVVM/ZCEyYVVzYihwZ1htRkM8cHFHNVcxVkhVYEk/RgotMyE5TFk+ZTYvSVpcKz9WRFskKVJXViEnJ18zZCxqYV5PcHIhLFVZVW4wZVBqM1Q6X0Y6PkhaLjwpdUxsIkdaRigKLShkajZXO1EjS0VfdEJadCg2QlluQCw8Yi1XKignOlJYJlZfSlo6LSZqO1hmXkBTXVc2MUMkdCttPk0ocSUkJztfCi1RbVc2YFJRKiddQzZDWjYxNCgjVzZFMylpbS1nbzVFLzNNVVFaIiVYW2xgWGYqNWBcNCVMRkgtKWZxcXFlY0otUQotNy88dUNqLyxIMEsySEE1WiJMLVAqZisnMD5aYFc7UkU/QW4kM1BrYEQuTjwwYCMzUzZBX08halA1XGpeYURXZTAKLUAhPlZlWSQuQ0oocCwqaUNkZy5XNzNJXV9KSWtdXiU+UyVJVlc0RTVKZj9JRTpAOXNKMWU8SWM2SGpccS9JKitgCi1UYk87cUFNXzAtRUNDX1IvS0RvQ09xISIsXUA0ITg4YUZdXFgmWT4mI2ZPbEtkYltVXU9rKjBOXkdvZmtqKWBcOAotN1EzcEpTWFpbLVA2Wkw6LzgvamBQQC8ncjdwOEcta10hLjxjdSw/U2VvQDVvWDtNKzU8JzYmZDotXFA7ITIiVFMKLU48ZkZCLy8zJlMqaDYvLDYocTRVRlJHJ0lKTGFlZmNCMVdmWTAuWUZAUkkoZC9CbTJKKDUlOVdEOjVfcTRZVSZgCi0mVFNEQ0Mwa1hPMVwtIWxdKlVxdCxjcTsqaEFGLidHXipnQDYnQVhKNzFlSUciVkcxS0xQL1FLY29KJGxUc2EsSgotOEpeI3BNbmlTXFlqO1NaTjNRJVopZSYrJDBYPm9sPC9dNztCaFgnQDErNSdWTV8wXW9gTHM1Izw0WWUtZHI1YzgKLVwvJ11QMTcmOC4tOylkXlhiKUhiTEwnM0A4MG4yQ2Rha0I6ZEJbUXNbMkkiVC5paCkxal9GdTBOXDsyaT1XLCVtCi0tQilNNlkiQmdPJDwhTk4jJTU7KiMia1JCNl5uOmMlUVVDXGFuJkZAWnMlZ0FcPUZqOGktI25WZF0oTihXITZmTwotZkUzLWY2YUYhTC1nKDdFVz5nR2hmMWBrYjtXRTMzRm8pPVlIOG1HKkx0UFVkRmZaclMvNEhSXmVlVSJfQ19qLiUKLTxiVWhxVmhLQiE9IVM+WWVFNzttIWpkdGlbPGI6XjdqbWdXYlYvNiU3JmJJIiVPWjtXWm40MCsiRF9XVD9icHVzCi1Db1FIZ2VvODJRISZMa0ZZZTxCVVsrM0kmPEJBN2xWVitOVUcjQTRtOzttPGxVIVY1PFU1T0E5azwsJGJgWkxTUgotSGljT29yPjEzUSpBI3FwYkFQSGRmJVRka1RNdEgkK1xzUUwjL15dXDEnKiYyaUJUTlVvKVgiJzRTcjdHMiI0XEUKLW9wbVtuPz1takptXl5AJClkOVM7JVxeXDNSWSQ+NEU9JFFzZmZKQS8jN2hcYCosLGVJZ0QiInFwXmovJkVnTVY4Ci1CNE5ePipjJjNTMFVjQzdML1BEaihaSCNuQklPXT9nJFRraSs+cGRpU0wxL0M9SEhBQ0c+O2BQRi5JS1FWZkhBOwotZDVPbyRKcVthZEIwMEM3aTFrVlxxVy5AUz5GKUgybl1yJUdwcCIvLmhGRzJNRk4yU0RCPUYkcFpyI2chSyRfSGYKLT9IaU51WkVfU1ZkXkZvTTBPbmtnUkU4PldSQDhcZzJgOChfTkRiK0RJVSNKQ0thUkRcVE5YJSMiLzFEKVhZQE9KCi05U0BPJWROO2psZWdqQTJgZXRsVz1IWFk0NEtzUDdVcmhxaC0lJFJvM0QtP1dDO25fdEpeP0cxOTNUckNIPnM3LgotPGtRSSdyWWBPckVRYkNmb2lsUkldPyE5U2MjIiIrIlh1Iio8dFlxPm1VPVUhQUJvRzs+Ilo5am08OmtxbjlfSz0KLW9Kbkk7MTdYViRaay4kKE1BI1siWUdNJW0lXSlndFlrZjxgKVp1VE1lQDppTDoxJHBSX044R08lLWUqUDE+dWI3Ci0pNUgsKG9fJyFzP2A7O3JKT0daY1pDWj05OnMnLz46UF9fXkBFU2QtPzRhcVQubVJgXzdqZ1E+JTA4ZThvLE9QYgotcEEjOjYqMERiRmxuLVwuYFhFNTxqXVQnKnJOW3MuPC9wRzdgKVh1OCZMYGFyJFc5YTBNUUBjWC1TV1IxLj0sYjUKLT5aJTVPTEMlKGFiSm5HPEFsKzBbRF45UiVPO0pEJlIkVCMoOjFDa29fXkdQWyFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi01MDMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi01MDQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyA0ODcgMCBSIDUwNSAwIFIgNTE2IDAgUiA1MjcgMCBSIDUzNSAwIFIgNTQ3IDAgUiA1NTggMCBSIDU2OSAwIFIgNTgwIDAgUiAKLTU4OSAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMjE4IDAgUiAKLT4+IAotZW5kb2JqCi01MDUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDUwNCAwIFIgCi0vUmVzb3VyY2VzIDUxNSAwIFIgCi0vQ29udGVudHMgNTE0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNTEzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTUwNiAwIG9iagotPDwgCi0vRCBbIDUwNSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUwNyAwIG9iagotPDwgCi0vRCBbIDUwNSAwIFIgL1hZWiBudWxsIDgzOCBudWxsIF0gCi0+PiAKLWVuZG9iagotNTA4IDAgb2JqCi08PCAKLS9EIFsgNTA1IDAgUiAvWFlaIG51bGwgODUxIG51bGwgXSAKLT4+IAotZW5kb2JqCi01MDkgMCBvYmoKLTw8IAotL0QgWyA1MDUgMCBSIC9YWVogbnVsbCA2MjEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUxMCAwIG9iagotPDwgCi0vRCBbIDUwNSAwIFIgL1hZWiBudWxsIDYyMSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTExIDAgb2JqCi08PCAKLS9EIFsgNTA1IDAgUiAvWFlaIG51bGwgNDc4IG51bGwgXSAKLT4+IAotZW5kb2JqCi01MTIgMCBvYmoKLTw8IAotL0QgWyA1MDUgMCBSIC9YWVogbnVsbCA2MjEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUxMyAwIG9iagotPDwgCi0vUCA1MDUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA1MDEgMCBSIAotL04gNTI0IDAgUiAKLT4+IAotZW5kb2JqCi01MTQgMCBvYmoKLTw8IC9MZW5ndGggMjg0MCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIzYnZylEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBYcU4kXWJUS1ouRFEqSS00UjkuRUdkIW9dNnRVR0pAKzl1XUkiXV1hJSQjV2JISEJuWSxRMTdaPjZLPy9ZIwotQWhdY01MSjAhdEZFTzF0YlRbLldkLGVMbiRWbEpASldyRjxOMiU2QDFsXUM0NVc0VmUrUDc1ZGlzPWxLXSs+VFUKLWxfcGdFPzVCXiZMaUE4KjowOnNFIzpOSmAvVk85UCo9ImZpbkQ1cl82WSRybCVJYk0oXjRaUyJhdGpMZU9BY1NsCi0mK2RGbCVIRyktIiUlV1YoY1RJPG5CTmtOX15iXko4SEtgOCtiYT8vYFsiKSIvPVJYYWlMaiNhJVYjZGcxO0BabQotPF08KFU4QGc4VzVcUikyLTpzayxtZ2VAYG8oYENqMzhYa1RLMShJajhIWyZqM2t0KkkrUic9J29JKDdbJVpuZCMKLV5vamJBKGUuQXRpQlBfKkVYRVliOG51TiNMPmc8WlpuNFJabE1ITk1WKTNmUk1dY11xInFDLiNSXyM4RWtWVEwlCi1lUTVMR1crODZQYCRmWiNqJFNYbD4zMUo+VFAwXG5ZcEUqQDU2dWQ7XHFWISE6YVxnRmdcTV0kJi8+KnIiVjE9cAotNUhqXEVyJWE0cThAVEFZO2UuTW1MMCdASUIyblNcQHFnXGtXKmc7Rm5vQi1gNUxaUmwyYyZJTF9fQkllPywvSjQKLUsuLTFYXz0hUTc0Tk1fUGdHWz1NQk1pRW0mOjMpRz4vSGkoPDVGXGorVFQ8Ik5QUyZybW47OGo5bGsnZT9ENGNpCi0saUdFNVpwIzljYzltay89VWdsaU5GWi9aOSlkb0ZvY2M2MERTU09ZOCEiK2hLMCIzRGJvPmNrSEY+YUBEdF1UPwotNWlbNFdWb041YUhMSGU7JkQ4LWRIT2UlTWE5aChfbyNDaT8+RHE+KCdLOTBzJktTYjNsKk9KY0RXTlEvRmdGNSwKLSUzdUpqQDxWLXFLcm9UMylkLi5EPlNtWj9JLGxHNVxTS15nIjpvSDsrW3NkcEpCcERnaW4sK1RfUGloS0ZbOzNxCi04ZScxOGpXaGtqIThzdCxZLCVjMjhvZ3VQLlNuL2wpbzIyQ1slMUY1ZFE2NCo2VGEwVz1NdWhGODI2LHNkaEZPUQotNChHM0RdZGA5SiQ/a0hhVHNHNCo6cyhcbUBuXiNrOmxJVF0qZVkxcCs3T1tKa2ZpXV5ATjZSMWFdbVtXI2hlIzwKLV5yIlx1VT8tMGFhPnNNPiNSQ087aEpWXSEyXlxoK2BlMT1MJHBpREtTVF9hSDZSWnEmOmtAW0wiQjo5cGUqQERjCi1fMWEoM19ZKygoMkVIcGAiJDonKFhjKUsxRVI3UygpWT5rQSRESlNiOWFoXj1ec1guSW4zXG1cVjYnclUicmUmRwotaEkySCtxX19uJktBWUVnPG9zO1JMPl9EO19kX1koMG1vXC1QcSNTWi49Y3M5Rl4jbFpnaiokciNuNS1CXGlnbVwKLVM0VGNnTDxsWVErOyFic09LZXNrLlg5cWYrc11VOyYyWFYjcG1RayZJJDViWy4xVSdCcVpnLCIsaWB0J0pBS0opCi1Xak9saiVJQWcvIkFrIVk2cFQnLjM/O1RxKSciNTJacWw9dSpgPS9HMkVpSCdJPVklSVAzKkBkNDJccEQkcDMtOwotanEwP1EwTzZFYj5HM0RJbDRvJ1ZePmIzQj48SmB1MlUoNFppUEBtPCI6RkUkJjV1YjdiJkItXTVoKVhAJmlBXGIKLVFtYDRtUTBxQEllZkc+Vy1cV3FoMz9SSlc/VkhsUSI5clEkSzJOMWxONT9KOmIpMClMNlhDNDU4S0ooTk05Q05cCi1VOV5eW1dBYiVGSko9TTk7amsiZk9XX1JdYikkc1VjPi9rWTVwWDVkQSRHQDxcaUc0SlAiW25dXSJuSyJsPGphdAotPSwvNTZUO0EnYzVKYDBIXz9AbWIpVzUxT0RcXUxMVV5lNU41cT09Vlw9VTUqbEpBO0kqY2hjIiZnTSYqJChHckcKLThrRGhvXTtQMz1fYFFQIlBvXzIhXnJkS11aL3IibFh0ci49QlZWKzlyZFs3Y1g9MVNWW2liSjFEW140Y1UuT2U/Ci1mSi80RDllZGs1a1dmdFArbSIqdGJqYDlPOmdiOlYzLU9SRGwpPWRwP2RQNjQkcTRqNDpEYiQ1aVMqXlRaXm83VwotJypKYVJDWHJYaT5zQzZWOV1HIiMvJFdkWG9YOihKVEVEMUJKMSNBTSd1ZzRrLCQ4cjErT2xcL0ZCaioiJ01MYT8KLTtKUj0tVkImJFUwUlFbNDdUUDhzO2luc3BEaWtZZ1NxYWZeKkUvMDBhKnQ+Syk3SF4zXC4pTyQ4UlIvUFUwQFo5Ci1RVz5sQEElP2BIWk4zPDs1bG0tYyMlNW01ZVxsUkEvJmpaJko7YistP3B0MXVXPm0jLGdwZW1LW2ZvXCI3Yz5aRQotJWEvbzIiVU4wXCMlbGZHSy4+ZnBwYTY3KEhucTM9YnRKUWlTMlc8PmxYQ1k1QTMsNz8+NmNBWkRHJmI6QztrIVAKLSMkYykoWi1oJnEhSmlUTTlMalxjPFtML2NDRS1mcj4nMHFYcEk5REgodW1fb083Q0xrNShUVVFqYyNfW1o1dUY7Ci0pJzlLQ1MyJDJzN1BfZW1GVmI4T2BqZF9cRFByPDczVFFvc0w5al1nVCInRmZBdXEyYVYiNkYtLU42aTMtWTdbLgotbSZEVz9gcWxfS2BnaiJQSTtBUzEpYEclVzE9JVhtND8sSTMiJnA8W2RtOVI2a1clcjIkZGtXR2tWQmlqOEEvREkKLSYucyFtaSVrQURBWkEzVlI+YEMxNjFIX2hQLjQ0IztvTzRpLjxSO0IiJk9XZi1DUEVqRSNFQlBhT0YpX2paQkMlCi1dSE1rXiU9cypTXS5qMnQoYUdMXitoIi90SEwxLychMFs2LylsJWE9N09xRzJwR1MuczguJCdkXlIuWm1wQ0MtTgotV3RAI3MjLEMrL21paFxBUGMmb2dHanBiXV8+Um8lbDlMIzZIKiIyUCYmImYuJTo5ak09T283S14+Vm5VSnEtPk4KLSIqZWNJVnA+PEdsaWFzO1FFPDpFRzVucyY3KUlGa0xyW2shM0BMQU0kQCN1TT1hMUlBUUN1R2c2MSxjUy42RW4lCi0/PVhFYUxiZk5ILSZaQWVDKU1pOjYsQzVHJ1FbI2RkTDBHPSVmSiwqRlBwIiNfX2pYXSo9IkpKJSxNPGxfMmVlKwotMmBwI1hqWGFZPDtUN1VXRS07UzskVGdtPiMhZkUvb0RbREg4Wk5CYFt0IzA5cjkrQ2VuSVN1Umo5RzRpOzFWKG0KLTs3VHVeM3FhMjdoRStlZCJlQSNxaU5FXkdFOjdsPVNtKi5YVChoLC5PKy9iczU2PVRNb0dNYDVGc2wsRGFvS2lrfj4KLWVuZHN0cmVhbQotZW5kb2JqCi01MTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNTE2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA1MDQgMCBSIAotL1Jlc291cmNlcyA1MjYgMCBSIAotL0NvbnRlbnRzIDUyNSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDUyNCAwIFIgXSAKLT4+IAotZW5kb2JqCi01MTcgMCBvYmoKLTw8IAotL0QgWyA1MTYgMCBSIC9YWVogbnVsbCA0NTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUxOCAwIG9iagotPDwgCi0vRCBbIDUxNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUxOSAwIG9iagotPDwgCi0vRCBbIDUxNiAwIFIgL1hZWiBudWxsIDYzOSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTIwIDAgb2JqCi08PCAKLS9EIFsgNTE2IDAgUiAvWFlaIG51bGwgODI0IG51bGwgXSAKLT4+IAotZW5kb2JqCi01MjEgMCBvYmoKLTw8IAotL0QgWyA1MTYgMCBSIC9YWVogbnVsbCA1OTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUyMiAwIG9iagotPDwgCi0vRCBbIDUxNiAwIFIgL1hZWiBudWxsIDM1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTIzIDAgb2JqCi08PCAKLS9EIFsgNTE2IDAgUiAvWFlaIG51bGwgMzUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi01MjQgMCBvYmoKLTw8IAotL1AgNTE2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNTEzIDAgUiAKLS9OIDUzMiAwIFIgCi0+PiAKLWVuZG9iagotNTI1IDAgb2JqCi08PCAvTGVuZ3RoIDM1NTMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfJlxAYG89dTcvSSI5UXVcYFxlYUNidD9JTWZ0PyxIKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdRyluOD9iKCEqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwST5tSEUiQGlGMEpKQ2s7WwotYUltI1s5TF1VI01UI2NcaU5WJSU8MCVHQSw4dU5kQy5aMTIlMGk1J05qTkAvPkA9M0YnZjZrTE4sKCFcVUcwYHIKLSMsWU5VZDtMI1M9bSw0IUBAWCRWU3U0RyUlKHVQcjpxUEJXS2FcZzgyW2tfaE5oakI+KUFxSDxpUUB0L0tgX25PCi0xQ1ZDc3BBJDg1RSw2QE1ZSU0iVCI6UXReam9sNzFfRFZqUyE4XVtELERiWE8lSEEjTDE1b188V2tUJHIjZ3RZJQotQGxRXnNLRUhiXipLSCc5PlMlMmRUS2s3QWohYSVLJFw9ZjUsbjxjaEU+JDRNQC5HImlVN2RhWyJzS1hFKT9yTCUKLWsuPFgwWkxZQExKTyVwQ05ma2dPJi5bX2dpIi1DRzRDL1JbNlJfTDokdXM0LTJbLk1pKjxkVWlxQlV0WS9pOyg9Ci0iVGxAKCx1MkAuaSVnOzY+akcmZCRGNGVKOmE7cHAzQC9WXTV1QSkkRThFW1tqITxTQyVsQ2VHJGRmRkNVa3EmOgotWVxfdVs6LDRra0t1JjpXZWlENjlkOCFXViJbRyNyPD9zb0dlSjIoZS0uViVQQFBZL3Q5VSU1a1VTLUwnTmYpbygKLTVIQC89bDhIYzVqWC9IdTo3c2o0Z1s8Jj0zQ3VTX2JkTkNbO0lsNGBvRWEvMSU+LSkhQy5DMWkwLWM6akktNiVoCi0ydVdscGdzaVJiVCYhL1diVyFLVT5eP3FpZUopYVRZTCplMTE7bSQ0YjYjXyglNkMiLDs6c2lGS0cnKVEpZGppPQotXE0kNVppWV90W2UyVWo3TDtBZS5OczJbXz9sRF9VVTErZkhkTXJYNiVSV2VWMDkpYSpmbDVqT2FMRHA8VVNhZjsKLUtnUTRRWTNZJEg8JiYzMUw8OjU+QGMxLSllcktFPmhjQSMuQylqRCUvciNjQDNdLCE1OXQhYV5RLjhTaUxiUixACi0/UCtdQDpYZm1Baz5ZMC1xU0RKdWFmMC8uK0QyLU5TPltBO25WcSw5R1s2TitkaEcxcFNddTdeO24yRjIiO09YNAotYDpfckA5LlJVZUFpQmFMUkNwNkxdOShWbmklUT1tZT5kMnVeNj0iP19bLDVMYUZlcUErXDdeKFBTP1tKR2cvS1YKLU0+YV0lPy40Jk1GT0szNi5pUjc5YFtFUTJRS0JWW2VGNFoxL1JyZiozXUNSRSRgVyJhXCc5RjMqLEMoR2kxTixyCi1ZaFk7MlU4J0FyU0VSJXRAUmUyPTU9bk5LMFNWOihPaSImNyU9dEFHVVwlTlVfQUZkLEFkcjpIYFI6Y1BnLDBBQAotTkJmUkk5JmAyZkk4NF9OYTw/KEclS1VOLy9lMzAwMlEmN2hjVSpFa1loZ0E7W3RwSktdMSNnUipXW0dZInBjO1sKLVMuNWoqUDZZXGMhRS4/PSUnN01oIzNKXGAocCItQDYoLy5PTHEoNi5wYFA3cypEJjs1WV1RS0NAOEg0KjsnOF10Ci1mOHBoXkhnPj5WNHNlWGNUQiNwLTg5ImtTaj9BWnI6aF4+OFRvNWcrUC4sdUZIQWZWXTMkIWRTcTRmQWglKy5wJgotWG41VHRQUFFoOkpZYSRxYVZxWiwhZWA3YCU2cSExY2xDN0tZN0BpMjNDXVt1KkApIWdHcChmZkpxTDBRK2FTOSsKLW1OTlBQQS5qKkVMYyVFXDYtRyU9MS4qJjgpYWdJYCV0WSs8YVVwamg/LF5MMyhaXiEnLSdUdTdrY3JaNEE/OlZhCi1YT2hxMFZGVk5hOWVbPmwiSDNsLDNKS0dkKiNCImdJdDRuYlMyKGBpaEQrYWI3a2gzXF50QmM7Pl5EPnNxRCg/SQotTllOW1c5Tj9kX1UqbiFYKiFvbSVUXStsYF1dYzdSX2dFMVIvJUZna0ZwdT1OVTQzVT84VWlFIkBNcihuXFVXUFMKLT83XTRFOUA5aEokcV5Dbig+KlI5KzlLIlQnYE9jNC1UOUFuWVZjVWdgZ1NpajpqSi1hRiIwZjhUYF1EVlIvbUlgCi0zREphRlUlRkMrX1Q0LzIrTlA2WSIwPmtXNC8+ZFwnS1ducmpyKz5MW3BzSSNtZnBoQGIkVGM7UUtBVl81cmwrNQotX1tNSCFvI1xsUjshXyVXbGI9WWVlL1YtKCE6ZVtyIi5ZJjshblRobTQ5SV4xJUFDMWhMRzZUITxqVVFrWUJgSWUKLVAqMk5uUCk6Q2kwVC0kJDJjaToxPCE+LFonSjQ/XV4kUk9fNlBXMHQmUEg7cSgkZzNbZGplW1dBOVBLMSk4JjNmCi01YUAoaHJrYWY/VVM/MmksLmM5aDBrTkgyL2cvaCcqbWRhIlI1ZWJhbkgkXy4rQ3NZMkN0NVdXNWpVYTxeRWIvOwotRGdDV1lKdXMvUFtaNmMqO3A2RD06VTskPyFNb2BpJ0VwQTAsWUIqcEQoWXIiZylzW2VHPk9edDskTjo8LSdnSEYKLWRAKj9ULUZcVF1eQ21zbWlxIlMwNztQKms6cWRxaEwjZl5WRzJBYCtEVmVDYGFEWy47KiQhUnU2bUlXTS0jdTFiCi1WZ0daLzhwXEIoR0MnczNCbFQjcDcrJltSR248OU8zaVNBWysyZm1rJG8oMztHJj5JQ2E6PCtaYmQsY1MwLDJfNQotXCFuXGc2cFNBWitERDxfQXBaLCtgLzdcZ0QuN1BGZG1QdFhucmwvU1o0LltVODc1OmJUXDduJC0yOUw/XmV0Vi0KLVckb0NnMG04PUM4QlZbQGJSS0BDNWNLcCQ6VTdrdEw4bEhoX2l1KU4xK2pydT1Ybi1OOFpPKllAZGRWYVdIb2JkCi1bbkJnMiIlRl1gb0khUEgpQ082TTI+VmRCY209OmpWPFtKSSRcalg4VnNxUiNcaSElRS1UISdMZjFOKiQiZjBSQwotMG8hK3FPM2tadFc4UUkwaDxfdCZiNjEqbWZvbz1MMzQwUDdrKD9TYlJRKz8icyE/bEZBcUNFcj5oKjRuWTpxI0UKLV5zO0VcOilgI2NYKDFVI2lPOCIoQkEiKXFpLGhmIyFuODluXTJacTUvbSk0VT9cM2ZoJHRtXkhVLjdaOitYZGJfCi1NWTlTWT1LcF07aXRNdDonalNhViUtQzQwVlkkVy08STQ1VGZLMTw9KVBBUzckc0dBcz1FKj1CR0E5PTMwbWBULQotL28+XyFGIjhhOlRWNidcKEZDOTVLaDJJSUw/Um81aGshdC5KPzNXJj9eLHRHQFklXTVOIksvQEZcPWlaPXROTmgKLS0iZmBlaCcqM11NaUlYWVZUM04tNHJFKVxKRmsrXVRRcF41KCpoJlsmbl5Day4uNkchZk9ROlI+VG5ebzY0Mi1MCi0nYitUKzRgcW0vV2wkSlIiWygmWmBZREteZzpEYkRtI1trKWwtOjBXVXBDUiFTSjZqJCMqUDtIPS1vbUE1MlhwYwotNmREKU0tYTJXNFYhUWg0MSMiN2BVb2dncUciPFZpN0ZLP1NiJXA6OGkjM2lPaV5nIWBPLm8kT15kRSFuUihQOFIKLT4sLWtwSldcMTlSKWZzRiJqNGpYSyooRCtKPGVUam49SThbaVEqIiRccmdkUzxxMiRnRWNVal5hTyctTThMZ1NeCi1HUW9bYUtgal9iIkckP0ozalUuTy0iUGsmTDBnUD1XcjRNWzdSVW9aYUlsPm5ZKzc1KVNTNllYaXIzKGxSUjUiZgotJSJtRURhOEJrdUMzYk1yb2suKl4iWXU+K19HREI5WU4xQCVMWytFTjcjTz1NVF1tbFw6NjhxSDJbIm5UU1NPWm0KLSxgMyFRYU0zSEZfI1cwbVlATGI4PltlJm9PVFZoWCxqW2Rybm1fW1BAbjcpPkwtNWVOKHUtWV4hTigpazlIa1ZlCi1QbCw+TT09YzRBNj5CKUJsTCUnK1FKZks3QCw7PEJsOi5ZWjA0XGcrNnBgU0hyKi4sJSRxQiRrMEJDKWVLYDgjUQotaldKQSJVUVdNZSMlaFJxM1g8R11VVFE6Y28qZCdHMiItNS8vWmZFPWtSUWRPTm9bMzRuRmxuTlJfRmcpPnEqOjsKLV5zNjNQTDZgKzxBZCVzPkxnMyJIZkxNazcxMWJ0WWojUjQ2RSQ2REYuOlBEWlU7VS8kQ2M7SDw1bSE/TCZDKUhbCi0qIVtaL2BoZSxZTF4jS0k7P2EpLSJUWEpiK0QoZmJhb3NOPDh0dDJfOl06Z00hX1p1QyooQC9bQUBCLzliKkhcWQotIllvKCtgOyFAVWg/PkdXXFMnaGskPGlHLWs2OGUlSj5jTTwtc0ArNSY5T2EsaD0iYmxfbW4pY2ZWTzs5JUxDaksKLS0nRkVmVFg7VCYsQGFpI0xEbUgkNTZSK2VQLCZFcGtjI2kpN1NbWEIuJ2ImKFZLIUVoIVd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTUyNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgL0YxNyA0MDYgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi01MjcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDUwNCAwIFIgCi0vUmVzb3VyY2VzIDUzNCAwIFIgCi0vQ29udGVudHMgNTMzIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNTMyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTUyOCAwIG9iagotPDwgCi0vRCBbIDUyNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUyOSAwIG9iagotPDwgCi0vRCBbIDUyNyAwIFIgL1hZWiBudWxsIDc0NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNTMwIDAgb2JqCi08PCAKLS9EIFsgNTI3IDAgUiAvWFlaIG51bGwgMzcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi01MzEgMCBvYmoKLTw8IAotL0QgWyA1MjcgMCBSIC9YWVogbnVsbCA0NTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUzMiAwIG9iagotPDwgCi0vUCA1MjcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA1MjQgMCBSIAotL04gNTQ0IDAgUiAKLT4+IAotZW5kb2JqCi01MzMgMCBvYmoKLTw8IC9MZW5ndGggMjUwOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIzZYIilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBYcU4kXWJUS1ouRFEqSS00UjkuRUdjIzdBdVFhPDMyWTZqSTMuWWosZDkjVis7dVxZUmtvJjAyNk0nNjI3PwotRGBKYmEtQSwhbmJdUGldY0ElaGBKQi00MClHUzc+SiNwZCglJjhdNWw0JkBycCguXG4xXS5lSG1lR1osTlBkX0AKLSpBLD5cQF4uQVRCUUMncW5DZWtcTD5kYShOczI1LT5TbVpyVTBzRktLNlpaOTViUzJHblchXEs9dW0mT0pFL1lKCi1LPCsmYyJVakFPb0U1MWtfU1NpPmk4bC9BNkp0YFElcjY4ZCg5WlZcWEpyKGxPTktUb1VRWV10YSJjQHIrLCg9XQotPTs9RSQ4OVZIcCRgJ2dSWTxiR04kRD5PTmFQT2dwIVtyczJfNUxyXjM2amlRWm1JTFk6KUxDPFJWRitQIi8rJEAKLU5haXBlMWxgKjosMjliXzM5aTJWbDcuZ2lfWGsoKCcvQnFYWXNTXXJSYDpkIiRtYFkwOCEzPCozXlg4dERBTk5CCi0+MHM5TCdMRU0mJFhsRzZtbFVcbypxNSs1PlEtVmQrYygoTyUmNVMrQiVjWi1gXE9CL2knOGVxWG1NZipWc1FqbwotM1hoYmtUKjNubGtbU1BRNl5WKm1Na1psL1woVDxNcV9wMnBfQ1dBUCgnJS9WNi9zQlxCbmtUQz5CJ2NKQlxrYjAKLU8wWjAwMFNAU1RLVCVPS05KP0hYajhWVjRZSFpESl0sLTFeVXIxUiZNKjBrZSY4YmM3LkInJ3BiSChmP2wrNCUyCi1CaS0lVW50ZUguNilcaDc6YWtUbic9J0xqKWRuSkBBKVIvSE8iOGQ4aU8zPGdCTTROW2xvMHAhS0YwZ0UiIidfPwotJWpRZTRrVzJOYlhxMztcVjRpUlUpY1FfayUzbWRcL2dGZi9gXUIqSEQ3LEZhX14jVFVMaGxqcVUuS0hJTWc0KWYKLVROJT1aT0QqO1BeSkwtTnBxQ1BBLjhSaDJXWWw4VG5GMGhhTDd0V0JRSVFSQD0hM0kyIjc3K2hBIjgpcWFGZ2YoCi1EPW9ZX1ZBVnRTP1NPVUNDM0ZdVTMlMjAzKUdnby1LZ0lCXTBPYDtrZWQvNUo0a2E2bV5nanNAWC9fMDdObVhvbgotM250OSQlOi0rXS9cPVRrRk1FZnFPT3VEQzxtMT4kXWBWUHE3ZydtQFRrU3UsW0JbTTRYP1kuRVEicVJgL2hRL2UKLSItQzlNUm9pPHJZdEtodWxHRiphRF9MO09tXzs3I3JFRj9xSysxT2syaDorIyZnMW1zVmZfQ0QnNWtcPkMkMHNzCi0lOyU6ajpqLCxxMUJ1ZDErSGl0SCMxZl9vSz5uSmlTZUsraDYjNlQnWHNxQCg9QiQ1P2JLc3J1OzVVS0JbMD4/LAotT0FiJXMqWnQsLz05OjdPR0dvNDxcYDA9bSFRJD0uTyImTl02PVQ0IzpiInFDS2M2cDsoQC5fX1tLVEZKLFdldF4KLSo4U0otOGgsNjxWWTBYZFNVc0s8OFNUOClRWlErTCs9Tj41R1JzdSg1alJJO0prPTBgIzZtIzg8bDw5cTVyKGBGCi0sajAyUFVkdXQrJmhVYzwzPzknMEMtW2VrJVFtPlU1OWEiVClPLGckNl5JTkQkXi5sSC1FNThHXFlhRGkqWEVrbQotTVBdPTIsJVZZTiQ0O0BRQkhfdTM8ZVNxdD4ham9dV0M+YDIlJDk3UzcuSFIhYTpzT05qKGtgVic3KlshPU9KNGIKLWIidF0naWByPTlpdVI2T1s/X0FIXVpBR2IpaFRUMk8+RyJ0VkhIRFAiL01mOkVQPkZDOFFxUloiVD1XO2BWUnBmCi1DN0Erc1w1ITQtPzpCXXVTZGtRWiwvRDg+SzhHS1VkOUZgdS5db0l0TFMiXC1qNXIzKFxbSm4nWSZpMUJQJjhILwotczIwLU9CN2tRaEctLklQX2hQLVgraFJRIiVDbDI8WmhrI2dhQFRnQUY/NTBaX0xHdCslayNtaytWPUpvWl9jMXIKLTsoTUY5K0I/TDdob2pYXFguR2soLFwzXCxWK1crTSlBQWVfVkxGKCI7RUglLlpyW3AyQylZOmglSUpzMzVQJzM0Ci1iVGUpUkJBQzllZzBibFonTFs0OVowJFhnZyk0IWhFZF5URjI4YTBUKXIqMkE3bnAiUlROSTshNkAmdXJQdDhhcAotUUtTYS5XUiFcTUFEO2opIzVsXEUyXCRVMyIhOT4hX0pGZWVaPjFiYUw/ZktSJ0tIQ3E5KlErOCwpMV43T3BGP00KLWtldDBELUlXQSQ4TUNDMmtvWHFsQDNBOipARispJEpkWEtkbCxbOiYjPjJMKGVYa19GR1VSI2VlLjtqPWQjM05iCi1jYiZMLG5BSCtUJkUiam9dUHM1bExOXyxPL2xDcUVUbmtKL25FYlE5PyNbQjYzMWNyLWhnTlFyLHUzTilOMC5WJwotJSNmS1s2cW1xJCJOMGpNaFVPPnIlOzdOKV9sMEMiJmQ5ZjZvcGVtNkc7KT1HLCw9TTQnLjhdbSQ3aGhUIjlHKDYKLUwrQDIhX2JNWHNCYjMiUl9qYk5HRD9PMmxrVzkiPGZuJi5TLENAW1szXTcyXSVCZV5BN0U9ZTBfOCsvYjheNSMrCi1XczEkWGtaQWlMOW90NFBwN1NrWkxCZjpYZmEsXDUmciU0NiksKTs3YS1WSktBLjQwLTxgVDhKQk4jMSpSPS1xKAotbCg5RkpgOGI6JTdlMTBIQFtqWW1cQG4sRylKLG1WYE5LLyYqJEFgRm5YPikhQ0JRLz5RVTIjcC05SFUrW1BnI28KLSVlZTFVQmg8KjVTcWZSO1ZkVzZIQnNBdF82PyhmWlQzZClRO2FXbXIsMD9QWyJQLE4pZ0lGKEo5O0lMJlBRYVJvCi0mSSVbUChcUFgxUCZdaWE5Nm82XUJObkw/Z0peYmxyT2tWXGgkTWRpVmZIV15eVEQmLUViclJZRDQqLWA1WDV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTUzNCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTUzNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgNTA0IDAgUiAKLS9SZXNvdXJjZXMgNTQ2IDAgUiAKLS9Db250ZW50cyA1NDUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA1NDQgMCBSIF0gCi0+PiAKLWVuZG9iagotNTM2IDAgb2JqCi08PCAKLS9EIFsgNTM1IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNTM3IDAgb2JqCi08PCAKLS9EIFsgNTM1IDAgUiAvWFlaIG51bGwgNzE5IG51bGwgXSAKLT4+IAotZW5kb2JqCi01MzggMCBvYmoKLTw8IAotL0QgWyA1MzUgMCBSIC9YWVogbnVsbCA0MjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTUzOSAwIG9iagotPDwgCi0vRCBbIDUzNSAwIFIgL1hZWiBudWxsIDQyNiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTQwIDAgb2JqCi08PCAKLS9EIFsgNTM1IDAgUiAvWFlaIG51bGwgMjU0IG51bGwgXSAKLT4+IAotZW5kb2JqCi01NDEgMCBvYmoKLTw8IAotL0QgWyA1MzUgMCBSIC9YWVogbnVsbCAyMjggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU0MiAwIG9iagotPDwgCi0vRCBbIDUzNSAwIFIgL1hZWiBudWxsIDQyNiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTQzIDAgb2JqCi08PCAKLS9EIFsgNTM1IDAgUiAvWFlaIG51bGwgMjk5IG51bGwgXSAKLT4+IAotZW5kb2JqCi01NDQgMCBvYmoKLTw8IAotL1AgNTM1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNTMyIDAgUiAKLS9OIDU1NSAwIFIgCi0+PiAKLWVuZG9iagotNTQ1IDAgb2JqCi08PCAvTGVuZ3RoIDMxMTggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfKDJFViQ9dTcvSSI5UXVcYFxlYUNidD9JTWZ0PyxIKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdRyluOD9iKCEqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwST5tSEUiQGlGMEpKQ2s7WwotYUltS0xOSmEvNio3VVxbJlciZUonXVIvTV9aPV9vTkEtZmtOMkslQmI1UFdbKkRPUDtUbW9tJSYuNEg7JzRLRDUKLT5TTjRjW2VsV0pBYWNWQzpVXSFlMTw7MidgKmo0RVcuOFwnTD5kKWZzMShjaEBjZGpxUEUpJl5VPWA5azNjOyIsCi0yW25YRl9AUjJDODdFUEIiIjtCYzZWdV5gMltqMUU1V1RBRTM3L0MlQSEjK21OJ2gsTDJOL2tfYipCVCNZZkBCOgotQz48OzQlPi4+ayRPdCJwNVc9XmM9UUxjZDZWdG9bTmZsQkgnYilUb2tXRmstLXNSO2puUT1RXE1rWmwvUVxES0kKLTJOJzRCNVwtXy1PRSxZLiVZSUcoJ2grMC5iZV0+MDE6QiokIihbQjA4OHUpWTJpXE0paF5PUnFHaFdtJyZsOmhECi02VmtXXi1rNWBQMUNfNytyQFxhTlAwY0guTDEuU2crSDU9aGo6RzBGPT9uVSIsSFRuPjIhWF9OMG9DTls1M0JEcwotO0o/QThvVzFAbi4kMk1mKT9nYzA1dUBuMjg4OSZzITxDRCclSEEsQyY0TmpPSW9YczprZV1AaFVFYE9LYVlLZVwKLSlAYVQpSGs2ZUo4RCNoIyIka19nTmhfN1lRLDw3PTRWMU8oKih0NHFPWk8iWk46KjY1MHVfJVxrU0RBVSYwImcoCi1pSUdtR2MoUlBlJEI5WkgtcCE7SCUoN0coLElsU2tOTCcoUSc0U2NYYXVnMCNbMjIlMSg2dVArTjNLcmsmLkkwdQotKSd1NTZTbDkhVW5oQjJlWW40OHM/ZihPYjQiWj4iOERBOEBlK0ZuJUtgUGQhPiNySVUmQkBqS0JNY0gzZVJKT2UKLV9pRTleUj5yJy1VRFhOPz1SUm5DRjxMMTNLRTt1ayghMlZcVGNAOz43RSc6UGVlTyNuTHQmSygyZDljRVNHWysxCi0qRFxmUkA7LCpHOihcUEZMIj1GOUZxYkNcR2ZjJSRnTTJQXGpSTTY8NCUtdWRINFcuUFg9USlKY1QiaVA9azg7JwotRyQ7LyhBSzMiK1EyYzVjZ21TVDAyclRXRnJITGwtLy9qOUwzMmhtO0EhXzoiWDMqSmRoYGdNT1YjNUpSISxEUEwKLTphX1Q2XCQwM2wuUmRiTj5NKFhkSWRxbEdEUVxzSW9TTkBsPUFbclhYSVdUcjhCXEVxQDAiQjY8I080ci5zNmlNCi1MNlM8NSxMLV1ONi02QE8vQ29GWkUoX19bQEM2ZzVPZEFdK0FaM2xbVjNZRixSQDRwJSFQTEtGYEBUQ1UubXRiaAotSlNpLlVnbTZoQlZEKV4xJypfayRdJTs6Si4iUkE4XTs4Z1FNLSlmX18mMiUkQE1qJltkRFRKPkJHbStmNE9vSSsKLWNPLD9FTSpfRFspcUtrIzN0UlliImdEWUshcFNvMzpJcDg8OmdBQHI2IyRuVk9gKEdDajtaIT5mSiprWCdjOj8oCi0qSzpiQi9aXlc/N15AYypoOitdQ0FHIzNtN1IiNXQjWzdMMUpqaS03b15uM0RAayNgK00nJ1NjJTA9O0o1XFtIYAotK0QvImM9KDxIWCY+YCYpcEkpSmxSQVdZcmRMN2ReNy9yRXQ0X1RiIStKXm0zKjklVTsuNTtUMCohOmoiLCNNMmkKLSRwbD43TG50aDFqPk1vPmF0OlNHbFFhUD9JI2xbYDJvY0osKjdAcT1OaE9UV2JtLFhrQXQ0QlxfOVA/PEZiKF5gCi1PbDZeKUg6WVtkLiI6JG8xYiYhNCFoQk91Q0RfayVBLXAwaV5cJkJTK2BjJVswSi5UKEJ1TFcsWV08VFtJTHJONgotLVRZWlUtIV1QSzo5IiYyRF1ZU1xNNUoiNCdkRTJVLFkyMnQ4J2xsVkBgcTkhVSgwX1BINkxKTElWWEx0KWwzXGcKLUQkQ25NN1MlNjYvSlAkbl09RDVlUCFYODJAJ3JoIm44KkdGJSUwOiwwXUtlblpsSHNqV2ElIXNsaXBOXmhIOVBjCi0wZiQiNlo8OVRdQC9VUkxFOm48TDZkVi45UDFyUG5WQCZcTz4+PjNlRydlM09wc0s3NThFPklOUV9xJ1pbQUA/QgotaTlbQ1NFUmgkXVdlXyluR3RYKzxTRzhjPmYuMnNNKDFDME9QNjNUQiRuPURnIlZLPVRkVVYqLGw8bDtrOjB0XVEKLTdTRmRvJmBaPlg9by1fRzlMXz1AMU8rJmwnMWVOLyhiRyRlWWxOXSE0XyF1N1JSNk90QEVCcUVQVXVzLktuIk5TCi0zTUpoRT1OSzZNI0FoXEpEX1lZQTpzZG4hIyVuLlplPjFPRDppXEJgZFlaMnBAKDhcQl0tZSU8PnVSRzliYz9jKQotNnRnQXQpJjhzU2pQcVxsIyU2KmZQdDdSIkRaRDBrOVRWP2JsUVZMIWxmV2AoJWNsSXJdKHNob0hzS0M7IWhFcE0KLTkmMz8uQ3JIOW8yVSE/YihLNTolbFQjUjEicWBKXy5WPzwzO1BqUCxkLGolNGhLKDtkZ1NNOWhLXDgwTzhCWWpmCi0tY0RfdCRJZyJfRm9cNlxGQWgoZDtLP2BVZEY2NiszOCkyIkJlWGY0MlsyWyVTQ0JZMUVqdT5ZNC1rXF4nOU9mZQotYyMiUHQ3LGYnQG5gSXA5b3Etc11rck4ySEFsbjg0aytnIVUqPj9eY0FAT0NbWmxrLFBpP1RPNiY2N1Q3RS9hOHMKLV1zQW5OPVQzcHFFYmc1W11mQVZDK2c1UV9TRmokciJmOyRcNCZnWzFYSVhbLmRmJk5HZVY8Zy9qJyNTOS9TPTc8Ci0yQjAkZkwwRScmWTxmUyNkNHBQMjhDIVg1PiYuQ3NCb08pXjJKPF9vK04jQTFKOWVVTnI0J2BDSTg6c1NCalNuSAotMXFIN1YqN28uUjBDbjomZGMvQVMlTjFpZitOUEpjJTQoXTpyNVUuV11HSC8iTksrJWdAamYqWzBWVkJLKUc9ckMKLSJpaFBcW0FeU0I7XnFjSDYlZzhYb1pAUkpmSjxbTVorLilGTiM7WUNPI3IlMydOQm45PyQ3X1FmYVR0KzBaQTtDCi0ydWtfbStKOkZqXnI/YTdcMVEra15QMisqK2dLSFphXWIuVGdFVipROW1GdChpXys7VFgoMzRvSztxL28jUmhYUgotSkZFcSk8c1JmNjFQYks6K2lRO0ozLXUvSzkrWlZpRiFtYT9QSkVtXywmMF1ZTUp0MnFrOSIvUHJBaDBhYnJGQ2YKLTkicmBPczBVNzhlak9vOzAvJmxXWDRfKUBGS2c9PSlLX15gUjYjYUhMTi9WRXFPazdoaWNFYCopbUMrPSIpTmNWCi1oMk9QV0xcJWcwZzFgNiE8dVg/PEc0cGQjKkA/S2kzWnQ+NlUoTy4rWmJmIUlTYFYoIyNoJldMSDohWlxZXEdQZAotV0IuIWdQPj9MIlFrUFkkNj84PlxNbSRcT0xiMz5TSEFrSTA/VSpFPjhJdC5jQCROciNXO05SR1U2ZDFWJSMjOjMKLTFIUzhOMEpgXz5RZj1mQ2A3KzE4JFA8a2ImMl5WJ2k1SmcyIiYhJyUyYyxoRmlFU0YsTDJILj5yMG1bV2A8SGRwCi1jO1ohdEEjJE9nLFZEUiVubWZZRT5LOV0qTkE9JkplN1Y1dGsyWykhJGotN0xXKWEnc1sqUjwyVXVHLWZpIWVhJQotQG1FOWNiK2BiYiFydV9JITI8TkZXQzEoMyZlMGJ0SSoqaihZODVsbWklPzxCbSNFZHEvWEByRy9DSDEybUVNSHUKLW1jKkw3YFxMcD8rPFV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTU0NiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTU0NyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgNTA0IDAgUiAKLS9SZXNvdXJjZXMgNTU3IDAgUiAKLS9Db250ZW50cyA1NTYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA1NTUgMCBSIF0gCi0+PiAKLWVuZG9iagotNTQ4IDAgb2JqCi08PCAKLS9EIFsgNTQ3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNTQ5IDAgb2JqCi08PCAKLS9EIFsgNTQ3IDAgUiAvWFlaIG51bGwgNzQ0IG51bGwgXSAKLT4+IAotZW5kb2JqCi01NTAgMCBvYmoKLTw8IAotL0QgWyA1NDcgMCBSIC9YWVogbnVsbCA2NzMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU1MSAwIG9iagotPDwgCi0vRCBbIDU0NyAwIFIgL1hZWiBudWxsIDY0NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNTUyIDAgb2JqCi08PCAKLS9EIFsgNTQ3IDAgUiAvWFlaIG51bGwgNjM0IG51bGwgXSAKLT4+IAotZW5kb2JqCi01NTMgMCBvYmoKLTw8IAotL0QgWyA1NDcgMCBSIC9YWVogbnVsbCAzMTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU1NCAwIG9iagotPDwgCi0vRCBbIDU0NyAwIFIgL1hZWiBudWxsIDMxMiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTU1IDAgb2JqCi08PCAKLS9QIDU0NyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDU0NCAwIFIgCi0vTiA1NjYgMCBSIAotPj4gCi1lbmRvYmoKLTU1NiAwIG9iagotPDwgL0xlbmd0aCAzMDA3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIjNzMyKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFhxTiRdYlRLWi5EUSpJLTRSOS5FR2MncWtaUGN1MiMoIz9MJTpgbDFYVk5iVkRpZTJqPF4qKXEyQW5VUyxXCi0xYEIlN1VARV0qZ2lULytOJF4+L1xDNT5OTWZvI1s6JD5DZE5QYyVVMTVnXUtnLHQ7UkpFL1EjaW8hXUclJjpfdQotM0E6UT5oUCNUNjwjQFldWEBqJDciXTAvXXIlPG87QUo7KFhYOHI+ZUpPJUY8TlVWJDUjcSpxIjJAcDlAcHVGMmgKLSxASzEtJT8oIywwOHEscGFXXzIzRThFXm5Pck9RKWAraD5ybGA/KjNbYnI/Y1pXT2lMYzlhWSMtNlswSShePFZPCi1CSiQrJ19LN2V1SzFwWSgkdXRMYFEmXkpeYjtdc2tPUTcrMStpJG8wTis4TUcrYlRxT2w4TU5hOSleaVRLK1I/NwotNiVLMSgxbzU4TkhWJHVeL0l0N1FpO2NiLk1MbmBobFJAYDdBO2w4Q01VOGF1OmhXXTIzZiNYY0wnRTNKQS9JOFEKLTlbRj1cbzVOPW46TlBuJjM9ZDg1YEIyQCJuQipMYm9hOVE4S3UoOTxLUz9KPnFNUlNUaStFX1MyJ1UlcDRLQ1NDCi0iJG1aPDNFTG5sTjJWSThjU11bQDAyIldHPTUuUy8sPEYtMVIpXUFqJzU2L1dbZGtpbDNmRzpGbFZDLD1EOyNvYQotbidYJDM1SDpOdG8qLWc4Y1NWWl4rUG5sTUVgRTYlNHU6OjcqIkNJTCcwbSJKVFxlZ2laYWVGPjtcUWhSNnF0JG0KLTsqYlU4K05UaFBvQW9qM2EwbEotU0NqaGZbJ2dGcD5NWVtwPW1eb3ElW0xzInI3XSErWWM6QipKZSIzIlpVT1A5Ci0/ZT5BM0pSRmohPlMlMk9KQkJyJF8rOEdeIlVsX2EmLl4iMWxQc1M6cjhGUGRvSk0oT04qRVtuLWZdaTNrRGopKgotLUwmLFA1bGc0RE5WUytZMmlOQmZmb0BiTlJfO05zNkQuO0dAZT9MSl4vKzpzRT1EOlxHZkBqY1RtITYtXTw5Ji4KLS8sIWlsQylPV1oqNy0pI1BMPjQ1bXJOYG1AZGJOaWMqbDdsL0orWkpQKz8zPmYtbGk3TVskTDk+cVZuVS0vR11fCi1sRVlRWyVPci5NZ1BtbldIX3BZPj5XLzM/PW5NXFMkb3Q/aGFGalhDajduWnEhOV5cRjNKUWhUX2AyQElOODtzPAotIj41JlVDTiIpRSZSTUAvKmhENEZsUjIsMmsuMFpeXUB1N1gkREchSExFUGZTaGhZaTZsMSFRRltrdXNjIS04VjUKLSU1c2s3PGpDPSU4a0ZzPlpcMmxbTjZpLFRFcF8hSzJlQj8pSlpIYWY2LTooTCE5aFNWOTdLbDZkNyM5ZmghPG4pCi0nKlxuWktlW1BgI1UtUHIlUzdFKyJ0NnFtITxORiJZLCIrNUV0bklNKT1CaChhU0ksLGpWJCklSjhpblIoKVBNRwotWUNRW2UkbnIvOVhDcl9XTTxnJURDQj0vbEI5OGE6Q2YjMztOO2cpK1BeT0sxO1tqblgyXS1kL0RhQjxpS2gpXDEKLVpULXI6X2U8SVxZV1dFMUY9LWpDIWYoZF4mUlU8PTcvazgqUjxAW21GZD5zNCVMbmxyL081T14sTHQ8OGNlUSpJCi1UVjs0OlFccU1GKUtARz0qUzVua2JjUl9hZU0nXiMnWCZdciI1SGsoNmQsRWlZRDddSypXY0c1Qy9MLDBmMXIiYgotb0NAWD9oJENvYi9kTXJVO08zQSttMlBaLiRqcWpUQ0xoYD8qZVZyTCVxS0U9L2ZhYTQ4WWgzc1xnZTUlXGRKUmkKLTdZOmRbQ18hOVEmLUwhV0k3JDdgVG9PTyNMWTwvY2tPSk5dTzYncmNAckBCbVBgbE5MSG9gUGRPT1kpTy4mOWhCCi1RO1dxUChvYTZdIlw8U0hkYmwnMztkYVZVV1dic0wwTj0tNzljJCgjbmFrLlNDSk43bCleX00vYGUncWxVMXErYwotVyY1I00jPjB0VEI5S1EpbW01WWowTC8rRFMoQlhnQU09Y29XQFkoV2hLRC9vKjFlJSQkN1xBKldDcnNtZWh1LmoKLVFbNVxXa0YlLHA9YmR0PVA+KUwoK3RMSkgmRUA5ZT0tZDg1XEt0Ry0lJlRrUSJWaiVyZWVyNyxDXV8uIzkoJCQ1Ci0rTmdIWUhHISNDbDJlYFFnakwvQGpcZWRTcGZPbkMxTF4+OiMpMV9DYnJRSylsV2I7Mig2Z2tjaTdzZTZqZnM4TwotakojY109IiRHME0vZ0FJJi1oLikjYVFzUjo5PzgxXz1ULF0vZz5MZ1BCdEAoO0FdaGNcVFk+S1drR0dANFMucUQKLUpRR2JfRk11YlUoIjlOY0gqXUtAP0E1Py5EPmYxbSc0SV9rIWRrcSxhQ29aZWFRTzhHKylLaTgvIUZELDhbJW0xCi1ENHMpXi8vRCxlY1ZnVCZiKU1jQDssIjdAYVZdTSFMYVdDYCNUaEgqPXB1bmIwPVM7M0VUNERzTWVnQ01ZQlsvXQotIVdZW3EhY1coKkRBWUMhXUlmI2wxPCRtXGpJWyxjViplPDwrOVtzOipTJ0xjbztgZDEyc0ZIJyIiLyhsUDQ6OlMKLS4/KFQ4QUMocypIMyRPUGpxOjdVJnRTSkJbOV1IUFtUQGRCKV86MSpRbzU3VkwuUkBKQWpYUmBZX0FZdCtOYlgyCi0xZ2U/byomUC8xMCVvUTs1XTgxXyFNOTIoTyk/REYtIydWSGFCT24rJ1ZydFkiW2I+cS0qSzElMVVrLnRvYGFSQQotSjw/QmNvaSYrQzlgYlZnNzMkWmlaKkthaEAwc1NvMWRaSUFxQ2JtXFtMTnUoSjdFU1BwKVoiLlYnP1gxX3ElOVkKLW1ZPWFqVGxPPzJfK0UqQ2thZEwqcCsvOlZPbEAzJydcSyskbGNGQFFcW1kiLDJaMEJTVTYoRV9tcERvXidPJlZcCi1cNiJEYTFEdS8uKypObG82Liw/XSJuOGQmLFM4UlxybVc+RSFvIitjaE06JT1RLUtXWVlNYlczaE4sWidKZDpPTQotVilVI2c6NGNva0gnS0pCNThGYG1dSiwrW2YuNCI1XVk/J1s1ZFwmKGY+QzVaR1JdWF5bU3VMJmgyNTJWZmtjUWQKLStDZWRxRnNXTWEmYFgnMy8wK2I5RHMnUmZvPUBbIkhlZD8jLzInND4nZUhqYEpWWi1CW2ZoYT1MVi9XWnAnbEphCi0ybEgtTFNmTXBWIk10X2YhXCJvZkcvPihMI1tqX0tWaHVtRCZWIkwpaksuVVlnI2xLLG5fPnFeNyxJMms4RzZdYQotLW1rbkwqRnBFJmBlMUc2ZiNUUF5IJmpnMjZjM3JtZ0Y0OCMrRjRkPjVZMjw2KEcjMGtaTGgmMl8/VlJAbGxKNEEKLVIsLHElJEBub2xLLTN1MF8rNjhJSl4nOFwySUY8Xz1uOnNuPklcVy4jWmdSYlZZSCNOajFuNyJbLCIrO2FCOGs1Ci0sRTRVJmNBaFNcRig6PXU9JElDZFklRC9IbDM9PF8lKzhWPmlzdFRxMyYxXlhaRGFMWyVlcU88OiNfISk5UV1bPwotcjlFXzJpQFs3WEN0LCJnKVArKCtbLV4tRSx0J009KUJeLn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNTU3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNTU4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA1MDQgMCBSIAotL1Jlc291cmNlcyA1NjggMCBSIAotL0NvbnRlbnRzIDU2NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDU2NiAwIFIgXSAKLT4+IAotZW5kb2JqCi01NTkgMCBvYmoKLTw8IAotL0QgWyA1NTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi01NjAgMCBvYmoKLTw8IAotL0QgWyA1NTggMCBSIC9YWVogbnVsbCA4MDUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU2MSAwIG9iagotPDwgCi0vRCBbIDU1OCAwIFIgL1hZWiBudWxsIDc0NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNTYyIDAgb2JqCi08PCAKLS9EIFsgNTU4IDAgUiAvWFlaIG51bGwgNjM2IG51bGwgXSAKLT4+IAotZW5kb2JqCi01NjMgMCBvYmoKLTw8IAotL0QgWyA1NTggMCBSIC9YWVogbnVsbCA0ODEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU2NCAwIG9iagotPDwgCi0vRCBbIDU1OCAwIFIgL1hZWiBudWxsIDQ4MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTY1IDAgb2JqCi08PCAKLS9EIFsgNTU4IDAgUiAvWFlaIG51bGwgNDQyIG51bGwgXSAKLT4+IAotZW5kb2JqCi01NjYgMCBvYmoKLTw8IAotL1AgNTU4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNTU1IDAgUiAKLS9OIDU3NyAwIFIgCi0+PiAKLWVuZG9iagotNTY3IDAgb2JqCi08PCAvTGVuZ3RoIDI4MTggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiM3SzopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkZfQl0uO2klTlwrRWBKSVM+PEE8a0lMUWIrMFpLc11xJTFqRkchN0Ekci9pIjUvajI1IT1eTEE8RAotIiVtU14ocmQ0JEtMMC5RNiZyYHMyUGxaYGBOX15ybD5BPkklNiplWE44QVw4KSRDLWcuIkxWSG0yQnBJNXUuMmEKLS1vJTFvJ3FrWXFoSj4oaGNMUzZlVXEwTU87RldQb0JKYWIvK24sN0lXLnIuKlU/KnVjSjZXb3FKWUhOVlxVYy5vCi0zJ0pSXWtTXSokRSxPRWEvJCRsLiJEUVM5JjFFL2JfWCdWLFllaTouV1ttTjhVI0JiUykrS0xSKztALj1UXGcrXAotWWYmQlFVIVciPihlQmJoNWI+ajxaZjN0SiIvK010MidbKSYzWGhiaGFTUzEvOURHZU9jaVxsVywvTEwhJG9tWkkKLTRMP0ZoPC9CVjROYVQiSCUzb0FvJ1dscE9KZ1VuNzgzZT86SzZZUChOUj9PQTMiMlEhZFBEQ2crTmtFZSVwN29gCi1MQjBaYzNmVG1fZ2M+cF0sWUpmMU9MI0hnO0gwSkU5S1VRJ1VAajBIWj8ubk5hbWQxdDkoQDQ3KSkrQG4vQTNWQQotVE1ZL05LOVQlYV07KW1tMz1UQnNtUEtyXzpyT0hbO3JHTU80JGpjYid0VS9kTF9oWWEvLVBzXlpMdGZmTDtBZFIKLSI5ZWpXaGQudEFDbkJmTiVbLWdwMTJANWIvaVcnW10mQUM7YjJrQ1JXO0lES15aaDgrK011XSZcaSxRP1hZLkl1Ci1lT2plTyVMYkNGLTRMSm5hWz1QWmlcaF9hRUNDT3VnJmtqJzFXIj8hMDZHPV5DUydiJEVmYE89IlRvMktOPFhYYwotZG46Kms5cDhaJSYnMVthP2JxODJFUXRvRjxwakxBVzkkTygxbFZsRiRcOmlSJi4mbC9hdV51ZTg4XT1MJG1tR2MKLUJmQlgrbDQrW2hIQmpJPT5KRVY9JXJJJTQlQ1VNdTFbLV5SYHRhU2QmQWcwU10rQTI8Slt0YVcobCQrNE1nJmFgCi1IYVJINWRWUmkjLSFIZVoqLzZhRWhAdFxGNm1uajAsQ0toWCVASS8xM0Z1OTA+RVtlS3FbJGRqLjosKjRlLmombAotJi5SLD9yXS40WWU9WC88I1Y1WHBUcHVaajNZKyVtOTVJb18yaDIqZU1MXSxdZixRUFwmLiUkOGF1ZyhXQ2FfJ3QKLUsxIThVRTwtNkssQnJHbCkjcSlXJjdESFxFLSlYLGJ0cjN0J0ZyX1ZabmAqTXMjakcnKTJJXSU2UEg4LSEzKzolCi0oXThGNiRmJDckLSlkZkEmRXM5KiVZLCVOMGY5TWNwc1Joaj9ETC1OJlJdQU1fL2ZIPiQpIWBCMFtPc2Zha0puWQotSjIvSnNbIU49J24zMEBpblwucnVxP2lHTy5ObShYMyo0dTc/WkBmRkRcT3QkPDtRZ0RsaVJSUTVWSWR1V1k5dCgKLSJwR1BpMzxJOiMpLjleZTdPWk0iUWAnJ0dQTyYnZGxGaUxpI2FaMzZIQDBlXDhkKGBxZmBgU0NhYihpcyVBaVpOCi0+WUReUjleIlYkLlxqWWAkZztcUDljW2gqajE9YiUxNWYiIlVyMTI+VzhhVS1cNWhyU24yYmFcSGxBQUQ2SF5BRAotLGhHIV8mdWxea1lFQ251MFE5TD5NLEs4WlNnUXI0MF8zV1hWWnExPD11PWNJPD4vPy9IOktZSCpWOm8oSzNAIzUKLWw2WEZxX2xXUXFPRWEwTl1pVy1EMTExazlUST5YTnBFW19AZy50Z2klTUYuSlwkSGRrPFlFPm5CTmY0NjxJYyhGCi1eaUYnXTxKJXBJIThzSyQkWDlcPGsiKDtkLClSWSklVDU6JSpRTCkpOGE7WEFsbnI0K1FLVDlNPidqR0wmL0tsTgotTVF0OmhoKWhhbEtTS11paiguLTZSLTdAI1NnY0U0VmdDWnA5OEtqWzsiQWJZRjBSZjwjamVwYUE1PzxkcWF1XTYKLT9FPGphYG5famc9bD1rc1taZE5KLXJlciMhUEM1N1loRkVTSnBoZyIjV28tXSRCczUnXzUmP3VVNnE0O1dzTXVaCi1AQiZgVlNVIUUnJG1kODJWY0tAX10iOmstQ2JcKygqaFhUVEFGSDpgMydcZ0BXMFlCR0psI1xCJEJZVDFLKGw2NQotXyNRTm5LX2gvPmk2ckkiVWcwNUhlLlUpQE4+OixrLWo8TVMxclVsSCdxZnFWIllhMyddSVAtKCw4OiE2VFZCUnQKLSEncU9fNERmWy5WRHFfYWdtOmI7cEVJRHMpJWk4LjlWTjhdTGtxP3VeMVdpKVNxT1Vca1QtRCtsRnJuQ0VFP14kCi1aLmRZVUtfVlRxVWo2U2VfI2tyJj1wbj5qOzBNVTJdWzEzXGpcXHU7UFJbKFhVVFBVPko5PUY2PW1yZnFgOG0sNQotLnAsO04oVy5CYGh1UkxIMCc8dGRiPmlBPFEsdG1sWSw3W0RxSl5YZTElSSIzSlJQV1tOajwyVCJlYks1a0hLW24KLWJsUDE/VGkra1Q6UVg2Uz5YUVJdI2ZQQE89NTZlJ01wR0drJ0hzWFQiSnNwb0l1bTBXVXAvQE0pJ28qZ1xIMD8hCi1AQ0I0cipIYnAmUShFSTA0RURkYyw/Jm9mMSRjTj5bVUI5KkZka1wxJl84PDEoPWZPRl5gXT5TYUV1KjZPLTwudQotbUgpJGpnaltGVFVXSjgwUC46VyJGQ05dOyRiUiZNXVlrRnRwIXI7V1o0Oys0aioyKEksQl4oTFlaQj9uNEtzZXIKLT5iRFRGazxXOWppInRzQydvSTBJNWhRU1FCKnEjQ2NOTywuQmhcOkA6PCVkazs4NUU7JyM9KD9vcnFjTEZOKFU4Ci02PzNuLyxXVUVSbyZHKz0zXGZKU0AqIkI9MT81S2IrXTswMEQ7dSdIX2xUKi1IREg5I145dGpPVVJMKCQ/SHFqcAotJG1cMFo4JFBkN1lFZXRkMm1DSjZNZlpiST1TQmcoVzBvL0ZMYWdoTjxcKkhKIW1nczUwJkJmZkdcaEshI1ZATlIKLSNVJ2EnIVdbU0JaZmtwLlJVXlEqPzBtOVNiLEdgQSRcKispLEpiRTsjTiRKbDFtaCs+JzAnbSUzdWdWNERfKztCCi1ZKzBYQz1oLTsnI1knSTo4MixoRCdmVysnTkJaTFM3PTJATXE4L1lcbHN1V0tpOlQncGF1dUQwOzQnOWtHQDZtLgotWV9kUTppSCs0QkZySkNYJ0ZdbVwyQ0AzNFVfTjZeZTtQWjdsKXVZaiIkZ0w8OFo1QUNyRFxOJ2ksMz1LJDkpLmcKLT9CMGQsQ1RWZ3NbalJ1VCpbZVNpRCtONFJZclFGczpGK1NQbyxFIW9OZzZsRy1EaE5vOTliWU5ARWlUXztTZTpvCi0mWTBPUCZbSWdfTy5BJnBWaCplbjE8UDA0OU1ePWgvWDlYJG9qaFchQmBTfj4KLWVuZHN0cmVhbQotZW5kb2JqCi01NjggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi01NjkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDUwNCAwIFIgCi0vUmVzb3VyY2VzIDU3OSAwIFIgCi0vQ29udGVudHMgNTc4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNTc3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTU3MCAwIG9iagotPDwgCi0vRCBbIDU2OSAwIFIgL1hZWiBudWxsIDc3NSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTcxIDAgb2JqCi08PCAKLS9EIFsgNTY5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNTcyIDAgb2JqCi08PCAKLS9EIFsgNTY5IDAgUiAvWFlaIG51bGwgNzYwIG51bGwgXSAKLT4+IAotZW5kb2JqCi01NzMgMCBvYmoKLTw8IAotL0QgWyA1NjkgMCBSIC9YWVogbnVsbCA3NjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU3NCAwIG9iagotPDwgCi0vRCBbIDU2OSAwIFIgL1hZWiBudWxsIDYxMiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTc1IDAgb2JqCi08PCAKLS9EIFsgNTY5IDAgUiAvWFlaIG51bGwgMzcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi01NzYgMCBvYmoKLTw8IAotL0QgWyA1NjkgMCBSIC9YWVogbnVsbCA3NjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU3NyAwIG9iagotPDwgCi0vUCA1NjkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA1NjYgMCBSIAotL04gNTg2IDAgUiAKLT4+IAotZW5kb2JqCi01NzggMCBvYmoKLTw8IC9MZW5ndGggMjA0NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iIzdjQilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBYcU4kXWJUS1ouRFEqSS00UjkuRUdpQFowSCVbRV5jPjdPKklNU0VhckhSdVdaR0gtRldSNDVeS3VLLyglIwotJEwpSXQidUJcLDtCUXRlOTtPc1QsXCg7XEsxQGRJSipuO1RMO0NhJGpLN0JrPlNtWnJVMHNGQ1VFSkRITlQ1VjwKLTBUTGNYclhdM2EjYCdaLSU7OUZhK2xSMigpKzlATkM8N21eQlcpWTNNZksxKTU7JkgjS0lTU2Y9TCJYRTY9VCY2Ci1BIl9tRE4rOE9Ha2RrWT5rLyVWJ0Y9XUBBbVZwcjoiOVduZTIlNmMhVSxgWjhhUVBEJSFaNDBeODwwQSIxUUZnLgotZyw9cDhFNmU4Q01HKkhFMm1KbjUpWzY+WT5pUmdNbjY1dSEhSjJrakpaYCs8MUJcJmpGUjRyckkkNi5baTtpJ3UKLSUmIWBZL2dGZjNQbVlDZ0kwX05bIi5YYFFccm0yTTBZKkBWNXBYUWcrT1c6UiIxWmM7JT1uTiI7QEtlKyw+S1ZvCi1BTWlRWUBpMz9LTmMtVToxSic+MVFFTkpqWD9zUDFGOERrIiMmbVFCamguY1ZvMGlpISEzUy5Zb1NqO08lSkJLXQotMlwjRmZnYlInO202PUZnMSltJVM7RGFwcDlBJmxVaEBMKWYmRDhIPy8tT0VrJSlXTyVfRnRiajpjRkVXKjc/WGsKLTZTMF0oZF9lVVsyRW5CTDUvQEZyKUpKNl0mbiFzX04kRFVRPFFqRU5KMkUzUEFLajBBcF9BM2I+dSRDNDs7ZnJeCi1ZVnFHOEJbJ0VhaikjZi07bWkiQDMnc3JNRGdvOjgjZ1xYRjhiTjZuPjldbWVNRkNCUlRgKjQ8N1U5QlIwMFArTQotPU5nUEJWOzFZbltqVllQYm1Lc2c5JV9pVyVAXjJZT09qNFpyaCFORkZKQzstWzpUNWE8WSNAWlFfZXQ8U0A7dE4KLTdRKHJULDlZSGdOLlwoSD1RXUcmVSlTaTw3QyIuPzZSX0lcRD9EQnE4KT8jImZZYlJoPk4pUylZSV4rLDVBZztyCi0zZVJPNEIwWF5AajpfXU4nX0hsKjA5UWN0NGchKDE2bC83V0ViYm1pXFA0ODEiYlhsdTRVNWJDaTQ7PHIuZUZEYwotWiNVPCpXUWsiMTNNTz9fRSNWUj8zXWBaVS91WnFbajVVRigjdGMkNG4nWTxKSWZpYmNlXWFiXSlaKnJRYTJKYigKLWVEPFA1TSxKTS42bEgvP0UuTGhJXSphVixqdWhRZW42Jy4+JGZVInNbJzhiPWk1Mz43OE90XVtpJz9mRTk/KTwzCi0ta2xuNmhONXFhLFInazk0P1pZQXAiaGRQNypma2ssL0AlWj1dPzJVVmpLLG1Rb2ItJyJARzxATkBEX1BwJztdaQotZlFlIUBbNml0RiRyV1RPJWt1WTM2XG5lUmhXY1AhZC8/QyFCTDt1VmU0NS9MVSwuQixSMGNaOjpQcGpnLk1HcGQKLSRsZGk2TDJUclQ2RSRkaSw3LW4vLUc5UGEsMVI1PU4rW2NPSTlhXldLYkU+ZktUUTdiNCNvIltfa1cwM01za09GCi1MRWphUmlsajReITs5I1ZCZV5EM0kiJGlIREV0VTJRUGo2QE1NVFw9MkZPTSIsWmIpbUxiX3BmOFUtZFFVXG0zOwotVj5yY3MrRk1uPixlVEpaVkdwIktLLkEsM1lFci02LG1GKG0vTCwoTVAjQitlYmMqPCdqb2hgQlllRW03IjMzLUsKLWU+Jjg2cC9CI2FWKVg9NVhbVl0vTDY1dHBFPHI2UiMhZ0VxXjtVLVwhaHU9bCEyKUhoNWcjdFBIU0pKbVxLXCpLCi09U0t1WGlEKWxJSTJNXy01PmdIVztrX2I7U25JIVwla0lOY0M8PF81WVlfOWBDPjpOalRUdDlGS1UxakhCMHRqWQotJjEtSEdPXSowMCVBXiojWEhXI1BjZEZWI0EwO2tSRjluSnJNVUhwSGRYbj08JW1sR2QtbixlLzNsWGFnI1RlV0gKLU8tJjR1OC1qbm9qWyE9SE04am5pNjRjVTddQl9zXD5TbVBTQ2RPWHFnSC1PLzZuInEkWFRLYCI+TyZiJCo5RF1uCi1maVZvU047Wjslak5PRSJnXD9HXXA2SkhkREBIWlBrbHJMajd0UW9oayNBIS8rUlQsMS5uKzo0Zz5WMS9NXylbSAotTFFwZXJxdUw8J1g+VTlLNyh0JzRVN25XITYpYGAwXiJkUj1AKTg1JjFLMVpqbG9FaiVNT145NyRYN0RyR1xPKD8KLTRrRU9MSydcSGw7KWJeQ1VgYlBaOWtuNUQ6bGJDOiNBTDVfLlpFPmRaOy5MNzNMYSlbIl5jbTtUWlI4XyFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi01NzkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi01ODAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDUwNCAwIFIgCi0vUmVzb3VyY2VzIDU4OCAwIFIgCi0vQ29udGVudHMgNTg3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNTg2IDAgUiBdIAotPj4gCi1lbmRvYmoKLTU4MSAwIG9iagotPDwgCi0vRCBbIDU4MCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU4MiAwIG9iagotPDwgCi0vRCBbIDU4MCAwIFIgL1hZWiBudWxsIDgxOSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTgzIDAgb2JqCi08PCAKLS9EIFsgNTgwIDAgUiAvWFlaIG51bGwgODE5IG51bGwgXSAKLT4+IAotZW5kb2JqCi01ODQgMCBvYmoKLTw8IAotL0QgWyA1ODAgMCBSIC9YWVogbnVsbCA0ODggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU4NSAwIG9iagotPDwgCi0vRCBbIDU4MCAwIFIgL1hZWiBudWxsIDM4NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNTg2IDAgb2JqCi08PCAKLS9QIDU4MCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDU3NyAwIFIgCi0vTiA1OTggMCBSIAotPj4gCi1lbmRvYmoKLTU4NyAwIG9iagotPDwgL0xlbmd0aCAyNTM0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIjOCZKKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFhxTiRdYlRLWi5EUSpJLTRSOS5FR2lAWTpBSWFyaVZbOXReJlRiW2BPXCQ/cjZXNidUQjIyazVSXDs0c1xhCi0xNHUuQi1HczVBayZnOm45Ty4xam9aL1ghUVYpcTI4RVE7RjMvV2tFTWA9IyxFLmJcRENSLS0nJG9sLG1WcEI+RwotMz1SM1I8IktIX0U2L0NyNmBbcF5dS3E/bW1dNFtfcG9xTnVGKnNyR1cxa2onIzJzWjNOaWg4aj5TbVohNj41SjwKLUUwc1E5X28mOThtNmtHNjxzanUqR2g+KUVVR3ROV185ZF9vJVM8WCk2UiVPPydYJGw7X2dBOi9ZanMkTShCYilOCi1GS0gkX1gvOy9tVUJwKW00YjNeNDJTTm8jNVc9WTwhOWNQKiQ3bmxIYSJeMW0oOVswPy9BNE5oSjhqKTpCcm4hVwotS2hITWFaKFpgPUEva2YyUG49dDphQWQ8cyI7Izg1a0l0RlYhJj4nO0x0XSE/MDQ9QjIlPi9vRzJbbHFGbFIlOHEKLWJQKzdROG5vOl5MQjRvJTllQV9MPj9IaG5qMy80YzgyVU1nLk05WFYiXVEmVzJgQXFLQlpqSyQwYmgsRiRETHBxCi0oNjQ3RTxwOD42LSQ5K2lYQz0lcWQjOE5VNmBRQUFDRTZUMSNjOGMlLCMic0QlV2BicWs6ZFFCJytAVycvRW1HIgotLjlQOl9OLlhkJykyP1xCJCNLZUlLWE5ZWEs2dWxBPFQ+InRFZkl1MjxxVDNAUXA8SDtHZEsxNzpKUSZgIylbdDAKLUE9PFooRTY/TDs9WTNAMzxZXm01cWgsIyxfQFItTl9rXTckTmQsXFljbnFDNnMjOUU7KjJuVi5LZWlqY1pxK281Ci1WQkoydExRJGtnUmxNIUAtSHIzX29HWy04REAyaEkoTiwuU0M3O2oqbGJCMFJqKjNnUFhqa1ZVXDZiREEpYjxzcgotLiFOOjhfKypZZEQ2JjlRXCpiY246ZDNSP2xpQGlxOidyTmpdYi1IaClEKThSUTc8PVxCTC5YJixBKUs2anQ6bycKLSx1dVp1L0lXJXQqL2xvQWoiVGFXNDYmczRRMElvOiRgTVwyVTg9bmY1bGJcN0NSWHQ1X19DJEw8TUwjX3J0NnVECi1qIWEvJ0hRS0VKMGIkSi07bnFmYVFzSVJINXNYUSM2anM9KSg1TFtAKFdjKU5WW0xcTWFGMmJNUmVwO0A4ajJLJwotTFU7L1Utc25AKkhrXGFVPDs9QC5LUmVUUEFBMzZmZ0wmLmlFaSNda1ZqM01NKy89Wz9iY1VWbz0/Y08oJGpfNywKLWduWmxKOyRcOEYjUXQvIiYxamItI2hDYHM8X0ZtU1sqW1Y8VC5oYyIwV2k+UktJLlBSSjljaCxXWUQhWD1UcjVECi0xaV1fNCtVOTRtJG0yYGxFX1spUlA/MEhtPDE6TmlWWXE6IytELmpLJl1jM0JQYE0xU0FtIWEoVy0oTiRLZE9oOwotKlI+Iiw6LWxQZVZmX0xMJXRtW1whSmllNm9qay9Jbl4xQFZVJG5PW0MuY0JfRGJdTig0LCs9O2FqPWRAJWtNcjoKLThRSkhPKURIMiY1ZGdVKlYkdS47NkQlTmFRJm0jXUgzdE0iYz06TnM9ZC5CKiowaz8yUDBxcjFUW1lONmM+KmtSCi0laT9OS0JaKj83K3A5Ky5ELjAqITpfNiFZXDVoZTwzZ0pwRVpeUitnNz8yVSg3ZHRDOTs1N0RkblxLVXQpMFE4cgotV2pQMiNZaWReKyg3Z1orKihTcVwrSl5tLU9lbmRdM1U3WURMTyVBZFEkUiRyT3FCWFlLQi4rK2ZPNTI9WyhqYzQKLVtjPFEjMyUlWkNSQ0A7T0NEPz9oJWQ2YzFaTS8+K0s6Qk1HRFlgMzQhcmdEQkYvdHAxPCZbUmlTZkBpWSdqUl8zCi1uMmhKJjFDPG5yUSZJL2FhNklKTGsqMyMxUFJeJSVlKUdIcFBuZG9SLGlnRU4yQiQ4bUA6YT9UaTZscGRQVTY4bQotU0JBUkUnQD5BTFA5YjBAZSo0TjFiIlExYDtlOz0qcTI+TWcqayNWIys6KiIwXlJmQ1pTKF9VcTUuKWkvWFwsaGwKLUJzSGgqNi5vOm89QTNqc0QiMGtKZFwrdFphSS83P0hzbzxvMyJpVzI/bDtyLj40TEgzY111L2BSPXJDJkNoWVVmCi0yT1lScylTNyx1KSQhP2A9WWJxP1RMT0krXFswbFhPQT8wNT4vNVpfPkJAUHM8UXMnOTg+dVYwIkMsRVBSYT1OOwotLSpKRVApS09JSmxUK04pMmhxSkcrZiJ1JlkkblJETDJjRHA/S20tQyMsJTZSPkpEQkY5PjNRcmVQUj1cR2FIXkgKLT1DSW8yUSpiTU42O042Qz4xTjFgIXJ1Yi48aSpLImVwS1RcTVxjTCtuOHE/XExiKy4+RVhcWGRGXERoR19HOnE4Ci1MXkU9ISUkZSpJUC5DWGBLKlo4LmBXRjpkOTBVQEo5IWg3dWBnWDRtTylXOGtFYGMqZGI8cVBWWkNgcUA9bUpLawotXFM/cEAsMSYvOV5zbzNhKSw/blNhWW9rcTpDbWBCZ2tVaGcsY1w1W3FQPzIyS1MnXGU5P0ZfRjhAVVxkMTsnMFEKLUxIZDtjM2IyJGVGMVM3ODs2dSJtZSEkMlhXYk0nMWo7KDdNNmYpNks2cV1sSCgsQSUmPjU5aiFYYzgscFthPGBzCi1DbyomTm1EbS5BOy9fWURJKC8/OCReP0gmcVs6ZnBkUlNnSkB0N0dlZV05PEhjaWIkYW42U0dYQEk6Pzg/Mio/WQotVi85TlcnPVM0JzVJWV4iKzEwX1tlJzlVREMvJUYmJzk5LDNmQSYuSGxLKXBzMlI6YlJuLl08OGw1NiFNR1FpWloKLSgnZ2U1KD5tVS5NcmZQLDdPTDM5TlkiNF06NitJTS8ial4rNjIlN3QyZTAtO0xnX2lnIyJlUks/cTVsKCkmUz9HCi1RVDdbRVAuXVZAL0onJUxXcElrLmRLMH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNTg4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNTg5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA1MDQgMCBSIAotL1Jlc291cmNlcyA2MDAgMCBSIAotL0NvbnRlbnRzIDU5OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDU5OCAwIFIgXSAKLT4+IAotZW5kb2JqCi01OTAgMCBvYmoKLTw8IAotL0QgWyA1ODkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi01OTEgMCBvYmoKLTw8IAotL0QgWyA1ODkgMCBSIC9YWVogbnVsbCA1NDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU5MiAwIG9iagotPDwgCi0vRCBbIDU4OSAwIFIgL1hZWiBudWxsIDUwMCBudWxsIF0gCi0+PiAKLWVuZG9iagotNTkzIDAgb2JqCi08PCAKLS9EIFsgNTg5IDAgUiAvWFlaIG51bGwgNjg1IG51bGwgXSAKLT4+IAotZW5kb2JqCi01OTQgMCBvYmoKLTw8IAotL0QgWyA1ODkgMCBSIC9YWVogbnVsbCA2MTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU5NSAwIG9iagotPDwgCi0vRCBbIDU4OSAwIFIgL1hZWiBudWxsIDYxNSBudWxsIF0gCi0+PiAKLWVuZG9iagotNTk2IDAgb2JqCi08PCAKLS9EIFsgNTg5IDAgUiAvWFlaIG51bGwgNjE1IG51bGwgXSAKLT4+IAotZW5kb2JqCi01OTcgMCBvYmoKLTw8IAotL0QgWyA1ODkgMCBSIC9YWVogbnVsbCA2MTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTU5OCAwIG9iagotPDwgCi0vUCA1ODkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA1ODYgMCBSIAotL04gNjA1IDAgUiAKLT4+IAotZW5kb2JqCi01OTkgMCBvYmoKLTw8IC9MZW5ndGggMjM0NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iJHFXZylEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4pczUjIyoqRnByWS5EZ0ZyRWtmaXJPLDdCdXFodTcyTmlaZCwmZFMkQjwmKFxVVVUwMz5WaSZfKzkrTgotRFdIXm5qIkZ0PUMydSkjJV06aV9NbmRtMXEjZ29OJCpgJkBOLEs/OzRVZSoxYmtoZ09YMDIiVUpfSm5oL3JzNWoKLV1gZU4nZ2tVVGNIXzBGUTZhNUZAS0YvalNwbClCSicoQTB1O202dUhjZFUxN0paaGBtTWFFJVBpJWhyQkJOIy4qCi0mOy9JSzRjdUpoJFV0TDJSJ0hvRThnOHAzLiZdQk0jIW5uZSlbPUdlVy9pTTpNaldaTjhZRUwrJEExVi8zTyIuRwotY25yW0whLzskb0ByVTlkVi9wVj8xUUI6MzVWUy1hR2o3PG0hdWgvIU5lPEVrKiFIR0c8MGBDZUU2L1pNWmlwViIKLTpzVDljJjFZZkthPl9NP0QpRmAvQG5jWVBkNS9ILzJoZHFyXGdlIlhJIXVvZiZlW0NqWjgxVl8wPkUuNlxHaEo/Ci1ia2pcK0pPJUAzTmU4YEYzSzwnOUtKUGdwYmswQm5fJC0mYUtFSm4jM1gqPiJUNFpFcVJYMmhHQG5LZTpmLydxcAotMyI6TDcpQSJzWTw7SlBQTiQtTUM+ZExAcCInIWY5KUNibl5QZTdcOUA5P1JbLSJBKEcxQmZaImJiJjpNK05jV0gKLVFgWDBwMjtzcD4lVFZfN1hhUSFeNk5JLDwwO1gxVU5uK3JuMTYzNHFcUEhIWytMbURjX2Y0KE06VyU7cTYtdXUkCi1tbVUqQVNLVUEpUGNYYVleVT5GVmxXMGNUOTJqZz1NWm0ucGI8ZmtWPCJKWUQxWjwnQEpXVUJELiwjNStIJG5zNgotZShXIUwwXHA1U3E0KGJMJkRmQkliUGdWL0tFSGJjMFQ+Sl5XWnNfRytNcCVsUTRTL0kybSlxdGlDUm84QCZTZ1wKLTFSJlp1REwsXVpOYW9USjNzRGhHZitQJDcwWiNsMVBOTVBQNnQoLjheYF8mZFNMI2FgOGdvVCVaOnEvR1xQZ1JiCi1saCQyMjldM0VoIzdSUGNKXStYTkVLNHJXa2JiJSVnTklZKDM4UVUycUdgKEAiVGBoQ1twS2w7Ol9OMiNVXE9lSAotNExpL01vNmZhZSdTVzZ0MkFxMkxHW0E4YVtNUWQqO3RLcWk4QG4qW09hR3RMTy81O1NAcS0iaGUrYiYzNWU2LzUKLVBlUWkxUnJyUChcYVA4UzIjSkY9JUwqSj1vWS5QY1whK1tDSUlFI1tXOTxBP2ZQc0slOjdeMU9VbXFsJkhgcVlTCi1hUVkjZF1YMUdEQ0YqamkzSiVEKiU5JEgjOWhZPGEsWidHPjombSFtYVkiX3RZV3JXNWF0dD9ZVEhKdFkiTUMkUwotRCUmaS0mLWNQLSlpZ2syOltYQVhPT207c1AlYls5QCwzN1g4NjIlbVxcXVwzPU1rQClGPCYxOEVYYVYqWThfVHMKLSk4aUxzPmpdWGRKcTJcdU1Baj9KTVxzQzJRK1ldITYuaDJQb2o9YjNAL2trSTRfJSk4M0pVVlNGbFtSZCVIMysjCi0sJ01oalRhRFZobEVPRFEmNz5vS11ATEQrIlwkSk5INWphYEYpOSpIQzUkY1RSVCNbXT0vdVpFXnBTXT9jZzBAawotRVJiLllbSm1hSldKT0M5JSlmUUhiLXI8KE4qbFg6Ml4vZ11ZOEMtZUtKLT1XSyosPHJlWTNAVW0nbydzS0NHSl0KLTVcVWErZVBAYjRfUmJzJDZzPzktMmhrQCJUVkVWWEI7RklWOSckQCRqOWddRkBETikkUj1iY00kYiU/bSNUQT4pCi1Va0pndEA+Vy9GM05nNjQmIy84RzhvZ01ZUHNpQUVWU14lVUQmbXMpZlQ2SmxcMj5eTVhlbG82OUZRZ3RxYzpwcAotRj4hNFxqZC8qcyVLWDo3TDYwQSwiKyMvJEpePypwVzF0J1BgKV9kKltAJlkpSnN0QkEyKk91bkYzJ1ssSS1LRkwKLT8+REFQJ0hsJ0JlJD1oIkNaXFBmS2syQCVqSVNFdVI+KG9LLjMpaWZSPyNEPzRMSU9SPj00VUMkdDVFOUtmTF9jCi08WUVeXSRiaSZmNytUcSZQWjI0MThNbj1QJ2VXc29EYTJAV1k8WitbOWhIWi9KK1lLLDJ1JWRmTVx1cUJLaDoqZgotWV0qaj9SOkNJTzIhPnImPzQqRixCUShcO09KOENRQFklPy9IKVVdKVRoI0UiSk8iO2YxX0lzNTJzLDZZMSRFbygKLTlYUTxnbFZIKENHUWlaWignZ1hbO0EmSVVIMypYTCspcD1haT1pXEM7JWJSTVlbTCJyMVUxcmFIbjlsOlA5NipCCi1USi4pPVMkK20lRVt0Q3FYaWFPaj0qP1ozUjImI1lYLUxsVz1DMG5CXWE7JXVpUE0jUlVGP1tpKihvQkdpRUZaRQotcVE1V2gjP0s0Y1NUZE1BKl0obDMrZ2FBRUU2LlRpIVxZdTU8Im9CbD9OM0JsNmoqcSJwMDFKM0Q9TzhUYCFJIU4KLTBgWUk1Y1pCRTJpTmpCJi84XjAkO3JlLzA5R2cmbDVTQjghSSRRNUA6UE8lIjBQaWViLiRaLjQ4Zk8oc1RLTm5yCi1QWWEyNkNWLD9zXmpDSD9fPVFhR0syQ2hiTykkJDcuYEhZPSErbls/OlI/QT1VRWtEMyRmNVBaPSQjT0gkYCZTVwotZXFMXSgsM1BoYm9TXWtQXVstbVoxYF9cRkdSVTVTKzxVfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02MDAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02MDEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDYwNyAwIFIgCi0vQ29udGVudHMgNjA2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjA1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTYwMiAwIG9iagotPDwgCi0vRCBbIDYwMSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYwMyAwIG9iagotPDwgCi0vRCBbIDYwMSAwIFIgL1hZWiBudWxsIDY3NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNjA0IDAgb2JqCi08PCAKLS9EIFsgNjAxIDAgUiAvWFlaIG51bGwgMzc5IG51bGwgXSAKLT4+IAotZW5kb2JqCi02MDUgMCBvYmoKLTw8IAotL1AgNjAxIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNTk4IDAgUiAKLS9OIDYxNCAwIFIgCi0+PiAKLWVuZG9iagotNjA2IDAgb2JqCi08PCAvTGVuZ3RoIDE4OTUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiRxb28pRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkVmbUROKkg0SDlsLyZ1bkYkQEdWUywtQVclQGZRaVZ1Kz5lbFRVTEJadEExaU1UTDlaX11eZCldPwotUGlQWSMuKXM1IyMqKkZwclhkImYmJWA4cVtkZW1YP282c1stNmUpSEo5aT1qJDg3LGlUdEtHLydjaTNhT1REaSsKLUNjMzZWSUBBalFiJjkoWkhbWEEwTzJhOGo2Y0hOU1FoSTtGTmtvQ1Y0P0M6WW5HRl1tQlcpWTImLm5GN08iYG5fCi0iaTZvJW9gQzFOUFNGQisiLUNZZCVcbzNmNCR1WW1rbCpmaWNxbHAuZCVGMyI1JlR0dG5VcSJ1Z3VVYi9GOENlYAotNlNwblxdbjdgY3BrOkZSRT4xcCQ8KjlAQ19dW2VzTidoIXFucitlUWdiY3FWLFxIVTpjcUtLQDc0Vj4jJjRBZWEKLWp1QUFnVWs5aSs2YmxabWMmYGNEMyI0L1VoXVlhZ25GSlpkJi5uTHJjNkxnK1ttXFdmRzVvTyRDY0ZLY2w1MmNHCi0lUldlQzIkRlNmXHRpIWs0QjRwTTZfaVs2TDJaRWZtdShVJmNHRVEyNWdEIT9LJkdFOjwkQF87M19jO1pCZyNNRwotbG4oTj4xYj1iVzhTVVxCME0qXmxxW0cpK0BgVENbLiNKUmhVN2hSJSkobjRaQ28qI0ZvJEViXkA2Zz5BTm88TkwKLSkkTEVrbVBHP1IhOiQvN0pINS1pMGdoPlQwWmhRLmBcbz49bDtwT1shZUJpJiUxRSU9NE5aT15gXD1WMEUnXSJQCi04UTBMYE5IMVUtUSVxWHJcZ2UiWTk3OkBwTllTKURMJ2lgTyhiQkBpPjM8QmBOT1RaLWZrPFk5XShJI0s9VSdGYgotQDJdOyJXLEo1XCE+bidGX251Y0UuPyNETWdiUTRSWWZjQXFmWDxMREpbWHVNKyZWWmktXlRQNTFwJjs9WklMRT0KLWs6IUQuVCY3LGBrcGdJaGIpOzI8MGxsPWw7LUp1X1FPXmlTM0QlRD5hQzYkIkBEOWYyQ3M+R3EtXVhYPWdDPVUiCi0iXzgwVldmWGombDwvLmAySilkOjdNbD1Ja1lvXVkhWyxXR05lPEdOI0tuKUJQMkZyOUM4R01kTHAxUDEzT1o/IwotRCdmUmZXSDg3TkYqbENjXy9PRTRcUCM5PScmSjZgZ0NOM2UsLyItNC5pSzZEImk3VzxXQHFDQGBnVSwqITZAIVcKLTV0ZC5OQmsqZ2JWLXFxQDVrQyJHR1gqdVVHP0UlM2hqPVBFL0wrXTJZT086KSI2InQuIWs1aEsqczUxdW1YYWVZCi1KNUA3XWlaV1pxKGMkXiQ1UzklRys6T3QlMFNbcVhsJSpNLTI/ZkteUWxwQFE1c1RCXTlOQzNYQWlCN0AkLFpsUwotSj5lKVNFWGUlNS1UVDQ1ZzZSPigkMz5CKSI5RmxIVicmIzVSPSFtU15wbDRuUW9fKzkoaTlgQE8/MTs7ZylhXiYKLTlNLyR0J0VWOGVlL0BQNz9MO2thV3JyNEhURmBeYiZVNTI0NVlBN1BHVihmOTVqNE4sa1QzKkRtZ1BuWDFISD9hCi1nI0JUMjlJLy45LG1cbD4hRlUwVkxoOEcqPSx0Jz89WSNPZipeLSdtS1JILVNJN2JxYDVXdHA4LGYnVjhQMHMoUwotVyRKa1khSGIiPCZZVSFjI3AsRFtYSXRlVU9VYXRwPmJOQ2wrSDZhPSxWMz1nVzdGNj1AdFpfaSZMRik9TzZBTksKLS5wVjI8W2NBJGJPbG0xKWpvOXJKYjNpSkQpTCRuI2tlZm9EOWpTclFHZ0BSJV07XW9bKmVWbWA6S0B1QCZuXXBrCi0uPV9va0dWdVljaTw0ZU42VVhqJSNEW0ZHKj8jZkclKUxGUCpQZyoxYV1hZFdAJV1INkBZWGQ7aSs1NDVRb0NVagotXypWUEc6Qmo4LSVcLipnJT5oJCRKdWdoXihcWCloa1BGSUxMN2w9OjNUMS1NJmxYSTtKZUxqOjRCLyJfI1I7WkwKLVA7N3ItRkdacUwiXS5CKGRccWQ4NlErZWNuSk9cYmczIyIuSDAoTlYuXFQ5cjdpJF9mPldXOkcpK0ZfbShvJj9VCi08K2djV0xOJ3VPVWw6WSRqcTo2UWtxdVVTbEJYcDExKFtIbF9NNDFvMEtUbi4hP01BV0gpUGBLIlVERi9XVjBqMAotPFQ0WmhCc2UjOEdjNi1rZExgUHMlMT0+OygvN15HK1tnI19bT19NLTVmYTN+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTYwNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02MDggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyA2MDEgMCBSIDYwOSAwIFIgNjE3IDAgUiA2MjkgMCBSIDYzOCAwIFIgNjUxIDAgUiA2NjAgMCBSIDY2OCAwIFIgNjc3IDAgUiAKLTY5MCAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMjE4IDAgUiAKLT4+IAotZW5kb2JqCi02MDkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDYxNiAwIFIgCi0vQ29udGVudHMgNjE1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjE0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTYxMCAwIG9iagotPDwgCi0vRCBbIDYwOSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYxMSAwIG9iagotPDwgCi0vRCBbIDYwOSAwIFIgL1hZWiBudWxsIDU0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjEyIDAgb2JqCi08PCAKLS9EIFsgNjA5IDAgUiAvWFlaIG51bGwgNDA0IG51bGwgXSAKLT4+IAotZW5kb2JqCi02MTMgMCBvYmoKLTw8IAotL0QgWyA2MDkgMCBSIC9YWVogbnVsbCA0MDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYxNCAwIG9iagotPDwgCi0vUCA2MDkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA2MDUgMCBSIAotL04gNjI2IDAgUiAKLT4+IAotZW5kb2JqCi02MTUgMCBvYmoKLTw8IC9MZW5ndGggMjAwOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iJHIzIilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4pczUjIyoqRnByWS5EZ0ZyRWtmaXJPLDdCdXFodTcwZD1OJHBkOT4pLD5vYXJVQGdLMms1ZVhOcVwoYgotKztHb1RKcnAqJWg4cEdnYGE6Y3NlQkRxZ1I9J0lXOEZHOUMvcnU0W11gZU4nZ2tVVGNIXzBGUTZRazVITiklR1oKLW8iNjFBZytcS0dFNy1jV1dbI09rNFJZcW9wOl1yJD5rdCxALE9sNlI5RT0zN05eS1Q4KDVLZkZkaSZfdD1SQCI7Ci0wdDtUbmEmL04mKnRNLk9yMWdDX0tFVydsOmMrOjs1dSlkbCdGIUg/NVUtXmxPRTskRF9eaUlqS3U2UnAnMUVQKAotV1hvSV1GMSsoO19bKzc7S0VGJzpVPCpKMDwxOEs4QlxrS1NZYFJSJGNWcmwwW25iRGloKWBqPzVYbVNpX1xoJjoKLWMydXA5cTktKT1qOy83Pk9DVDZVUFhuRnAuMiUvOiJqMT5KbmkuJlgrTnRCLEEiX21EXUNALy8sdC41QilbRjU5Ci1KRkY8YiteanNmVz4kYVcmclwlWGE+VVh0Ny51bm1sOiNEQlk8cGw9Iz05KnIwYiRMM241MUQ1IUQkQjY+UzxqNgotLkxjSlA8XWVKTD9wUDBcITxXOGk2PztcQiRYMyZVKztCYS5UVGZaNTYkPCwqZyVEWGQ6ZTxHaSJUbU87Wz1HJ14KLWxRQllpVSpyPkBNTSlAcDEpZ0c/PUslOTQkJmIvZiM3X0FZV2Y+czttUEdGdCE1cGdWSzBrIU02WW9UOTJJL1t1Ci09LWhYbW0jXilfV2MyUGQjOWYiZ1puNTwpTkZaVi8+MjY/XU1dY2dQIy9RJDpxViMoS2xFLSZgLi08T0ZvMGNrcQotN1AjXFIjRDwwcl9TQnBYS0pqQkomQGc9TyVWJ3BMSHNdTmtBRUYpdW9McCpXJm40JmVMQ0osa0JhdDYsO25gREYKLWVQMz8vaiprX3QlOUpoTTM9UjJhZVB0KE8rIjApWVBbTWVrbSxMKGskdUs3XmZmKlxOQWtGNSIqJXFkQSJUcyJwCi0zPUktTGNeO1EvVEtrPUIsSV1oZDNvX2kqXG1LUC9kJGUtPjdUcEA4SCoyKFBGaEJYRTJxTDQhOmNDRmZBQGFPLgotKmFaJi1OJC8xVSducEtpZyxNL1A3KzxwXlg4I3VbLjUhLSQobyNaRGtfXlMjVE84XiE8ZmlqJk5uYD5oV2tAZVUKLT0vPjEkZSpxKCpOMkpOZyxmSWQuMUwoQVRONSpfOSc+a2MkMD5ZM11MUi9MZ18qTmElMCFYImsyZU1HW0svQG9DCi1BTTEiJT5SRmJnWVhPU2NgMC5AVylJJVEpPmJuR0E1Yk8obVRPR1lyQCJAN0IhJ2d0L1otWGAyWz8lLi9VLm5XQwotVylaWyohXiEnSGo7YT8tIU5aST4hZWhLWlN0S2hVK2RJYl8rUjRdPnFRYThKKTg/dSxEXT9icDFsS0pTZS1CU3QKLSpGZzphIU5TZSwvIVtjZSFPQzE3YiElcWtRXHE/Yk9ia2RYR1NuSGlEQC1ERCItQE5ccyUkX3MrcUMkayUkRUE5Ci04SSUzcFVuIS1WVnVaVW48ckRMPylxUFJOODI+cikoRl11IztcLE9RLyVIPi1fVmVZaUpdcF5gKHBJYWpmWVxWOwotS1liRVUhK28/aTVVWyErXEEvaGdGUUosbiVzNWFsUy1MaFVnPThOKzQ+MGssXmM1Xi8rZDwxY05QWTYxW2xQSXUKLXBodVdUWVZhQGM+NUs3S1pqampxMUpQRVlvRWxeTiJnPmBGKE8jVSdqLCNXJkwpdE0tUihnW0ZDMmFUVGAxXV5cCi0vSm9PVEUxWC9YMm0vImIlcEBbUEI8X2MhYCk8PDxTJ3I8OkIvVitYLiohJV40UkZnN0MrXlQraldnXTRGKkJwSQotOnJaV20rJmorc086aG1eYXNkaUJfKmowIl5wRyQlZmNtSnJYNy9yZDhFcG1IXWhyOWVTdUVGdDkkMDF1P0RVIXAKLVFFLyhbYFZFWGVQOFhhLEVCKEAoRTY+Mz0qJjxoQkA5Q3QhZlRiQ2xtVyY+KjtvYi43OWtyQT1YL1csJmIsVzMsCi1sRktdbEVuRUVHSmRnKzlDZFZZJW9HZVptSm9bN0ZgPFBFbV8zOD5JOjciP3VGJlMobC1PLmwqQUAiRCcjNl9cKAotPDJYJWlWMGVKSltBRE4jSmRva1Q7Q1k9LSdMYlUuMysraCk6KyhdKzJPQ1JJYXM5I2lXTkEoVW4zRWVENi5sRmIKLUY7YDBoSypHTi5FQk4zSzFYRHVXQUg2RUZ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTYxNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTYxNyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgNjA4IDAgUiAKLS9SZXNvdXJjZXMgNjI4IDAgUiAKLS9Db250ZW50cyA2MjcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA2MjYgMCBSIF0gCi0+PiAKLWVuZG9iagotNjE4IDAgb2JqCi08PCAKLS9EIFsgNjE3IDAgUiAvWFlaIG51bGwgMzgxIG51bGwgXSAKLT4+IAotZW5kb2JqCi02MTkgMCBvYmoKLTw8IAotL0QgWyA2MTcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi02MjAgMCBvYmoKLTw8IAotL0QgWyA2MTcgMCBSIC9YWVogbnVsbCA0MjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYyMSAwIG9iagotPDwgCi0vRCBbIDYxNyAwIFIgL1hZWiBudWxsIDY4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjIyIDAgb2JqCi08PCAKLS9EIFsgNjE3IDAgUiAvWFlaIG51bGwgNTQ2IG51bGwgXSAKLT4+IAotZW5kb2JqCi02MjMgMCBvYmoKLTw8IAotL0QgWyA2MTcgMCBSIC9YWVogbnVsbCAzNjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYyNCAwIG9iagotPDwgCi0vRCBbIDYxNyAwIFIgL1hZWiBudWxsIDM2NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjI1IDAgb2JqCi08PCAKLS9EIFsgNjE3IDAgUiAvWFlaIG51bGwgMjc1IG51bGwgXSAKLT4+IAotZW5kb2JqCi02MjYgMCBvYmoKLTw8IAotL1AgNjE3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNjE0IDAgUiAKLS9OIDYzNSAwIFIgCi0+PiAKLWVuZG9iagotNjI3IDAgb2JqCi08PCAvTGVuZ3RoIDI5MzYgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiRySyopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkVmbUROKkg0SDlsLyZ1bkYkQEdWUywtQVclQGZRaVZ1Kz5lbFRVTEJadEExaU1UTDlaX11eZCldPwotUGlQWHFOJF1iVEtaLkRRKkktNFI5LkVHaUBZOkFPcyFwMSI5bnBJYkxycGhwUzpyMSJebkFoWTNaMVZDIiM3SU0KLWVNaiRSN2wuJllcb2ZgdSVfXSUuR2lnVWkmb1xuZTlXWjc5JScxU3EzZlZJRFMyVmEoQCskcERuKUwnIk5oXisoCi1sVDVXUF0nbTliKGokSU1VN2RhSEwrPG4qIyk9W2sqdGs5aUxobiVcL2tYdDsiaTVfJilDPmNoU2hVW0EvKWk0QQotLEIyaXElJjg+PCdoN2A7Rzk0ZnEjZWkqUlVTLCsyOD9wUCsrY1lMPjtAakBTRkQpR21pS1YhU1ZQQkJFcTYxS1oKLVVFZGgtIkdATF5fI1IuZktxXC4kMiRbbztpNDtSZXFYYkk0WClQIVAtRixtJjFRSVVZZGo1R0pZZWk6LlVGX2BZCi1iZ0ZBKjZWMCg9WCIyQEMzI2FIcS4oJl8nNSF0TTczKTNGUShjJ0NEZUYsIW5kZSxgMTpVSlhPNWZfQHAsckFOKQotalw4NCZsME9yaDxxSXMrK05mV2giXlIobkQpLm5jUSMtKiM8ImdCPy1lK0FUKElqJllrV3JgT2VPa3MoZSRCMlEKLTU+VkFHYVRyO0JBJDgzc1A+SnRLPVZROjZHJCZqb1BxPmNJRl5IaUhGViRpOj81QzRPNCdBdDZgRTkpU1FyIlQtCi1KSFZEcktHXColW2snIjxhUE9rXCFbcnMyVHBwciJVVCdEZCheOy5OQ2tYM3I9SFxyLzE3NkVCTj9hUFUrK3QtWQotXGgmT1lhQ0d1TyVdbCxzI19SQkZROmJaIWJWZU83XjJvaihZKyNcV14xMl1Tcmw6Y25mSz1maGNBKTYoaiQ6YyYKLSVdU2Q2a2UwN15US0tuXHBjcE5tY1BXPUklPXRUQCVqZ21ZXFVDUmRUTVJaMXBIKEpsTkpjLzEzUztjJzQ7dCYrCi1KRE47ZUc+Jm82bTouIVJUcXVbK1h1QyQ1YT9WWUJVTUhzJ0tFRzhtLkRcaG1aXyEsTl51Nl5GJkRdMHBgJlAlPwotJyJAQnJAJlRoKzRCclpBJlg2clktNllXRVpZZyUuazNTJ1BLVm49UWl0IUhZQzd0a2RwLGxVOzQzdCVNSTlEMVUKLTowOiovPj0nPUpuLWxaTFQ1TmVsSmk0TUE1bVBAOzNyPExnQCJcV0xocClaNUdqaTJcb3EvbXIiNTxEWVdRInE+Ci1KR1FdRlVaaXI7Xl9mOF5MPElKVDlOdTw+SXRoUDYkXltxMz1WKCJ0VSpfTDJNTlxsOjhCYCQpaixBIWFuUnVISAotYFJwQS4pVG5fV0dzVk9PX2hWYSkpOihyazNpRVYuXyxtR3A/RSo5U15uQ0hQKDJTMkchQ1VsMio6UChwI1xrIT8KLXJBdC9XM1xwY2tlXz05czVHPGVPIVdfSEYkcWBQaUVJIl9sZWMkUlZVYD1fTWg3S05oSEFuN1swKk1CMDFFSTRVCi0mQztQO0g2bFo8VDdFJSZLLkpvQjVobTdaSypeUyNacS0nP0tGZ00kaEtbNztDaVhOV240I1tjZWRkUGMiOloyLgotIy4qZTNAJ0ZOMy01JTEkO20/MWE9RWIvc2pLQmBZcU9lZU9FZmh0cjJvQj5dJilPIz9MZDdkMVQrZ0IiY0ZjYmcKLStqKS4/VlYnUFRSR2k4TmMkdExpITNgKmZjPm1lVm8sXkdJRiYlJnFRLFAkYCt1PiVwQikwOkpALS06OVVuSnRXCi0sPzhjZTY7XkZUXDpiS2I2QVZyRnFRcjRBYENoKERLRU9qKE9eTWMxXzZiUCIlZGksPTJIITgrXyliaWckb15PPQotQS47RytjOT1pUS8wRlwiQyo5aktNKDlqMks0c3A5J2NcIU9QM3VZcEMkTlRnYD1lKDBbLiRPJC5hLTgwQD0ibUcKLT5HKzw+LCFnI2I8YzdGRVdUanVEaE09TlwmajVLVXBKVSkvOzVjXXJIO2ckW0kuWjRFLGAlV1s9YmVpOElLREBWCi02LDgoVFEobjolZ0BaNzlvKVwpOSMsTXBMSF1BUTJYbyNFWEYjTVI7MEV0NDozMVI9RSJAMzMoNS4uNTA7VCJzQQotKjkzVkRYOE1SU1loQydAYEdIKk1nYlstIlYqKnRQNyMkWWhPLl5bSSlePixQT1Q7N0YwWEw/Wj1tXV5qWy1DYTwKLSY4XmQ1NCJoJ0VfNXBhUyZDcHI5SnBLJHUsWm0sckc+TnAvWDpcIydRaW5oSmdyLFtuWU5AWXFrbGk7MjlSRUhlCi1sR3FGSEpTPkZtUCwjSGJeVGZYUXA1T0RHR05EXVljb01YTEBZbFU0RHFOUUFGM1BHIlhDJic4Li5wLy5nPl5wNQotQ15mOlAwWW85ciklX11uRiluQUs1RjMvR2lSdVhBRVxkQz8tM0FgbydQXnUwWyhTNFtAV0VrW1sxNUtqazY9bFQKLSZfWSZfQjlKXkwyMjxvK2wnL1hkTzZAQF5XLC1UMVE1I0tuJmBeOFRYRWElPl5iQ2kxNDMvJV5rM21zZU8tRFpDCi0+bVh0XGdeRmUvUWVGc2VQI21IQkQrXThcaCE8K1tZcixgb2wsR1cpRClYY2gyZCFVZjJzNTE/Uig8M1Q2JU5NagotXm47aiZZWkNdaVhmSywkOmtMaFIpYTtwJV9RSTpwSk80clBYJE1AY0t1WWhlXDhrWCIxSmkrO0YmdC1aSCJNWjMKLWRwPEcrZl1jckNRP0MoX0ojTklxUS9daUhNcEVgJ1JgSDgrPzcrRDBnNzwvIlEsWFNQV1hmbV47PjEyM1k+clhACi1DRVRfPktlU1laSiZRYj1SVHJtRl1OTG1eOWBYJz9DMWAvWHBXRmA9QStJZyNlM0NKKz1nLEJFWW1xSVJkJjJFMAotKSZoPChFdV1eU1I0bFFxOFpkXUJDY1RxYG9rREpzJ0RLJTxRN1tBPzFMXT5wbFtHIWFPRkdKci0wUWIqTkVNMzEKLTRDUSRzTEsyWy1TYT9yalxXXGdLVzltb1FdUVJJZFVJXyYwTC80RCQxXiI2JDclUU4pJ1goUWtBXDMjJV5Nci9BCi1VYFFnKzM6XGsjZ3NKUlVnST1MV051SjtpSSNMXVciJSVSK24kcG90ZztAbFRhampLLVQ4YFk3YV4yZ24yQktUPwotcG8/cThqTTkuR1k9My1KJm4hYHNMbDlmKjNdWS9wWU5zOEo4SypJZlA6QClbWy5uL28jQ25xSltoQz1iQExzI2gKLUBuVTprYEoqSTFmSFdaOG1IOGw2TS4oP08kQSJwIydAW0hFXTRibj5gMzYsNFM0U1IrQ1FZJyxYblFkO0tiSDwwCi1ULmd0Y1NDRj1lLGFvYWNuQTN0T2gwXXRKKFoqV2FTYGRxI0tSP1MjOzppXmVxaF5PbU0vVE0zST1GYXFecHFTXAotUFJJVk9Oa3I6UmJAQ05uaE1bbmUxJENYO0E9bG9eUEA0czhGYklwRGl1SEA2PU5FR0lHTDxtI2dOa2U8aW5ARCsKLWwkP3JMJDcmVjQ9WGgvVVc/VW5rbThsJlIlIk5qfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02MjggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02MjkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDYzNyAwIFIgCi0vQ29udGVudHMgNjM2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjM1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTYzMCAwIG9iagotPDwgCi0vRCBbIDYyOSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYzMSAwIG9iagotPDwgCi0vRCBbIDYyOSAwIFIgL1hZWiBudWxsIDg0NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjMyIDAgb2JqCi08PCAKLS9EIFsgNjI5IDAgUiAvWFlaIG51bGwgNzI5IG51bGwgXSAKLT4+IAotZW5kb2JqCi02MzMgMCBvYmoKLTw8IAotL0QgWyA2MjkgMCBSIC9YWVogbnVsbCA1NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTYzNCAwIG9iagotPDwgCi0vRCBbIDYyOSAwIFIgL1hZWiBudWxsIDI5MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNjM1IDAgb2JqCi08PCAKLS9QIDYyOSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDYyNiAwIFIgCi0vTiA2NDggMCBSIAotPj4gCi1lbmRvYmoKLTYzNiAwIG9iagotPDwgL0xlbmd0aCAyMTI5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIkcmMyKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFkjLi0/cS4ocmA0J0xwVTIzXzJhLkBGKDsyYmksOlVyJSZRO2skcyJraSkydEYrVSImLVAobGViKD40SF41Ci04dTErPVloMl9bQGdWMClMRWYqKGZQTzgyOCVFYlZkRWU5RVxnXmJGMV5wUC5oRFBncUdqW0RKX2BPbWFdLlZqTAotbiU6Omw8Wk0+czFYTmJBSls0TGtMMS48IldPWTtbXC8/bkI4NlVjUUA9aTtQTk1EJFchZlVWdVskQFNBaVxoX2IKLV9hcnVKWU89IWVRYzNiUEUvUUFFPlljJ1FAPiVldSNdXjQ3biU7I2RgXT8tZT1NZCFYTUJNKDJLZWZhNS9BajRbCi1XImhfKz1ESlg/T2A3QjlMN3RQQjFxRnAxX0RYSiNXOC91RiIqQjRnOV8xcVQyOUUuS1RLOCQhQF5zbnNjbGhFbAotOTRKcUsvbCRLP2ZLK3RRQS9tTGZVTFxpbDVkNGY/ODVFX0RcLm0vbyJPU01sRihDZ1gkPWZqQTc/I15GcSZuMzEKLUQkKmcxUEEhY0ElJ0opLm5JMmZWcmpUZS0kcEtZPTsnVkFWNWBkZjciXUo2RVlqRk40bz4rbS88WkIkaSVFIUdTCi0mLkVJTF1qZCJTQC5Gam5jPyNaQzNmcTk6TDsoKW0+N2FyQzlNSlI3WiNIOW8tZExiRiYuUlsqSTA+S2NiU3NmXAotbmdoVScuW0IqJT9PNTJoSV9YZy4wXWRzcjpqIjJqXmdoV1RFU1RTbl9EXWtDNGBhb2RGbVdLTCRAdGBnKSpEbnQKLUQhPid0QUNYYVFpXF9mZU4xJXBsUUshMTdTRlR1JixdI0s9XGVQQzg4YEZuZ25kWWEyLSJHJCNtP1xDJkNYP0gqCi0icClUOFJEYmhpKSthckFqRSk3RFdFWklqPypGTFAxczgvaGVlbnRjSkNkNm4iLDRCSE47I04oWz4mSz9nRl81awotR2ckXmFEXjVdWkFKTExhNTZNcmhlaE0xKThCbXNIUXQjOWtpVUo4LyhldUpXQl1bZ0xTW1dPbW5YP2lVImkxMiUKLV5oVSQwXFBCQmY4OF09TCRtZltQbnAmRmkyclFacltkIj1VNmA2Yk1takFNdG8nZTlsR1BRMmopJDRBajdfW2ZnCi1dLWdJPGdKRmlsZlxjSDRZVzZyMWhoZEFIKl46SnNrMEUjL3A+IlUwb2dLPSIvXy5pTWk8TSdLJixYajtOWmZMIQotZU8hWGBDPl8wZEk8aGIoZC04QTZXSS0zLV8/TT5WbSRoKjclQkcmIiFXXkxiZXVEZ1QjdUQ8YmUtYTlgKiFuWG0KLTBKbk0sZFw7QWdsWyRlMVQwYko7cmY1YC0iajVvX1MrPChnTU5QdD5ecylWXyErOHBNbmtfWFJQV1VeRDVbMC1UCi01IT1Uak0mdWRNJSlLRzM1LFsyc1pOWydATz8qXDZCSmpmN25xYW1bNjQuVi5uTz1OQWo7RkRsUD1LPDIiJFY3UAotXStLWGY+MGVxIzZhRF9NNiZGa1hMQTlfc2laKG9qMHM6Y24qOTtfJzdVJDFNMiRCVl0xST5TaGgjaj9nQEFWYHMKLThecDk8IUBXOkhhb2lDWzJVOC9aMyRNM2tIbCEhOzc0P1ZRVEZcPkJBWDo/ST4oTG9PIjluOVQwIV9xMU89UDVQCi0mTWJfKDhBUCc5Omk6YjE7SDppK3MhXFBbMlpzLjo5RUdNaCs2OycsUEg3JDxMQlM2YEssUFNwbyMpKTYzQUA5RQotMyczRS9lb0hRMVcwY1s0LkBqQ3RHIjEwLTpKPGQqO01ISTdKY0phalBJUGE3ZSZsZmJNOTZqNCFSc0Rnb11YVyoKLWQ2Qm9ybChHQylLWWZcK18sVzA7VDkjXyZjcTNJZlFSKjA7SlhlS043NDxkKShpSCdJSVdFa25iKUZcXiIuaidKCi07QzIhSihyNkBdLXVKV0lMP19HPi1bT2VWNipjZCk4UmBjVVJIXVQhXisnXE1YP24qVj48YDc4WmtGO3QmV1FCbQotIlRfbTEoXV9QcGQ+VF9eWk8zbiM2TzhhNDVxPEBZNFdmRDhtZStsY0JkWCZKczQ2NkJvJT0mJEpNIXQzYTc5VFwKLUBaaTwkITZEIiZLJSgvcSk6c2BLKUNaVHM3cSU3VSkuOCQzYWgmOlxoJ2lcOFVrTytaSyRcK0ZmcFBLQWFXMiFvCi1HYEk0cUtGJi5XNjIlR11sNU8hR2tdJzdZW00/c0FbTi88Kz5IbGxvOyJWOFZjRD5mQGYnLl0yR1BERlhhQ11SMQotJDYtJ1pyQ0tBZEFRWWoxcDgsYTElY0QtVkZOQltzVlpjKEFVSilKVDBecDtoIWxkUzhPPlI0SkhINi9HJlJxZzYKLU40ZTpcKEtnSnNoMiddQiRtRC5YN2A2J28ublRfKlovNCNkLF5VQ0tkQVU7YGtuKVpgJkteNmgjSi4xSVQxOSs1Ci1LKXI4Nk8yVzZhITdDb34+Ci1lbmRzdHJlYW0KLWVuZG9iagotNjM3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNjM4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA2MDggMCBSIAotL1Jlc291cmNlcyA2NTAgMCBSIAotL0NvbnRlbnRzIDY0OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDY0OCAwIFIgXSAKLT4+IAotZW5kb2JqCi02MzkgMCBvYmoKLTw8IAotL0QgWyA2MzggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi02NDAgMCBvYmoKLTw8IAotL0QgWyA2MzggMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY0MSAwIG9iagotPDwgCi0vRCBbIDYzOCAwIFIgL1hZWiBudWxsIDY5MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjQyIDAgb2JqCi08PCAKLS9EIFsgNjM4IDAgUiAvWFlaIG51bGwgNTg5IG51bGwgXSAKLT4+IAotZW5kb2JqCi02NDMgMCBvYmoKLTw8IAotL0QgWyA2MzggMCBSIC9YWVogbnVsbCA1NjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY0NCAwIG9iagotPDwgCi0vRCBbIDYzOCAwIFIgL1hZWiBudWxsIDQ5MSBudWxsIF0gCi0+PiAKLWVuZG9iagotNjQ1IDAgb2JqCi08PCAKLS9EIFsgNjM4IDAgUiAvWFlaIG51bGwgNDM0IG51bGwgXSAKLT4+IAotZW5kb2JqCi02NDYgMCBvYmoKLTw8IAotL0QgWyA2MzggMCBSIC9YWVogbnVsbCAzNTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY0NyAwIG9iagotPDwgCi0vRCBbIDYzOCAwIFIgL1hZWiBudWxsIDM1NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNjQ4IDAgb2JqCi08PCAKLS9QIDYzOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDYzNSAwIFIgCi0vTiA2NTcgMCBSIAotPj4gCi1lbmRvYmoKLTY0OSAwIG9iagotPDwgL0xlbmd0aCAyMjI2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIkcyY6KUQvQnMiOVF1XGBcZWFDYnQ/SU1mdD8sSChDV2BhIWJtPktAbCtHcQotNlltVVhFXUcpbkxwL2phKiNmWT48L2prcF1IU0NrJi9OSG5vLT8uWEJiMUE5X2A1MEk+bUhFIkBpRjBKSkNrO1sKLWFJbUtMYnFkP3BNYVV0Y0JXUC1gKkxgKVlhInNGMWw9Mmpva01jUk1cQiNlZUYjaSVkUSRTS19ZdT4pOFNlL21UCi1gPl06VksmTnJmUTtpblxgPDdudFg/XjpXbzBqbVQ3bUVhNFx1clpOckJIQTddJzliazg3TVEsVGBeYktOYWxKNgotM1hpMSRkUGozMSEvOyRuX2wyQVMlNShrJDFsWkhma1ZQVCMwXSJcc0s2WmhtTjhYYlknVDhdWVBiYSRlJEhWKTYKLTokTl5zXXVyYCkoNTtqLz9sQjYrSm5jVkEvbXBwWiI5V1ZjNCxgWj5RbkFPRVlobCgzSk9pJGhYalRhRF0qOzFgCi1WT0VONC4tTl5QOURrVTJiLzlscVtrOCZZYVlQUm41bC5xc0pQcDg4LXVRaUMyR0hPaVghV2ppYDhgNSlQM2ZxOwotY0c9VkZNYmJmSyNtclQ+UyVoIy5GSGw6JjpOJCRHaF5Ra3FWIjVkZFlcRy9cY1lNQnUvSUBBbiheOy5oJ1VoM1AKLThCaEIuITxdLFNOOj0/bzJGQzlAbWcwSjw9TkVGW1dFQHE3TmUlMlcwVE9McVddXCNhYlMoJmlOZ2xrMjQmPVcuCi1ETjhOTWkmWm1OVWdcKSFmKyM3aVYvUWlXKV5ZLkMoSjYwQlF0N1A/P3UrailnTk9bcmUkJjooKVFQNV5dSTVjSwotX1srOWVNaHAjJjYzSW1KPVNuJSVXZDU0YiY5LUo7JS0mbjczQzdbdW11ZS5fSykjbVxwYmA1ME5oXjBbciFnSloKLWs4VmFIUSNJRkNmRzIuJGdea2ZbM0VPYmNYJ1o5JjpzLnUqZnQqQGg0QUl1XGlgLzo1VUEtKDBCWmA1bDhiPiJSCi02azNEVjs2NG1pVWtxNSw6aDpqJGM5cF1xQ1JYbFcmKUMociUwXSVaRyJIa286byNaT0EpZHRTbDNxb2NQQWZsOQotJE47cU9PWUcwMGBgZEJqKjdUTFRHYz0zTEp0ZTMpZztKZ204SjRpc0tgaSdGXjdNUlE3MjgzXmoqbTAtWW1gSVwKLTQnNiFrYj0+NTlyNUNiVCcxQ0EvMEUjaz4oNUxeNSVRJGchVFw4J21bKmsoM0dFWS9eWihUbVM7IkV1cyFuayJGCi1jOikzJ2FNRm9bSV9KLlE7QXQ7JykhKlgtQDAjJmFsYWVHV10lc1Nbbi5cOjs5R2RWO11ESk82YXI7TzE2JmtTbQotZSNMTCohRiVxWjM8bCpDbSFdJU1FIis5L1UrcDU4YCdLYkslLWIlb1BaMkNXYUVtT2IlZVIrYVlmYUBAT0VqN1sKLVg+ZDs6LlosJm1dbWlSLDNPOUlNKWotJSskblM2WSsrZjtfYV1vQy84ZTxhN2ZLUmRAWiwnRSw7PStyUllZQmJFCi0nLl0tU3BfVXVMTmdoaVc8P1FmMEs5S1FwPi9FXW9ES1ZNKDMyNks1VU4oYFdKYmgjOkIpV1hhLzQtN0IxcmY2VAotKjxUZCc3SGc8WVhWX0hiZjM2Y2VKV01Wa1FnIjxDZ2NDNERyImZEN04tKE0wM0NvZ20qJiMwQnJXQnJFSmdxPkoKLVpLJT5lSyxlVFMvVWIyUycpcVBEVUxiVUVBVVRmS2NyQ0lYMV40OmI5ODxOLl9PWGsqIlxMVGNgSE5lJDYsNTAzCi1QLmc/VjhNJVctNlBZMmcmP1gnXlloKkJENm9wJEosSW9lPD5KWkY+InA+dFo2OkdkVGUzSCYiO1ZHQFdLYmxBaQotbShTYFQhQCg1bVVnP2lcIkJVQzs0JSElWl0mWmQ+QlRXIUVgK0EuTiwibFEuRUdVVyhmVWdrRShoPnNBTDM1P2cKLTlcTG07MTAoTiQwVmlFaDJxcl5bQlRzdHBgISlyZUFzKnI1IUw/RU0ja0wxOjlVXDhPKGNPXjNaajdNdUYlJmU4Ci0lQz1PXiM5VltFT2VBS2ZLNWFXdT9UW0tUIVBnRDA8ZjVpVTBRV0JoKlk9WkxtWzwjYmFGOC9zUSwtaW8xXW5fQAotSiRMdCZacTxuOks3YWstRiZYQVZQSmxTKEheUT8rYiJBMVo1Kj1JVTBtJSk7ZFxxXTFUY3E5IyRnYFI4Yz1eNWQKLVNlSlYzJD9ccVIsZ3IuMUNJaVxYcVJkI1M6QGpCal0yUiNKbCguTmg+aDRoMVoqaWVlZkBlST1OI1NSPDpHRkxhCi1QKic6Vi5YQThlIWxbOHAySVx1OStMR1JDYT85blhvVF1fakhGJ2MwT0dDLXFfNVpkcU1TVVQuK0UjYF9oKj9CJQotLUVSSjs+JG42am11OiJLXlhcNEtobDI4OTdQKSpsPGB1VW9KVCpPUCciUjYuPDcyVWE9RGowVjFwVUAoQT51SlsKLWFfMks2WlBHbzVDbDQxaSJXKk9daE0rZkxNQ1BAMEI4QEwlZ1ljJ1pOLm07NUpTS3MkXFBoJVAvTStySClPLmVFCi08JHFPMVg7LVVsOW1ZLmwubz9RVl51R010al8hXkNWL2VYZnFGOmJaaEghZitWPystITpRbyNZSDdqX246UG5pXAotLz9uQ1ZSJVNdMCgxI1MiNVpBXSU8XlhvcGdiTjcvLiVOKWhQUmsyZmFhaGVAfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02NTAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02NTEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDY1OSAwIFIgCi0vQ29udGVudHMgNjU4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjU3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTY1MiAwIG9iagotPDwgCi0vRCBbIDY1MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY1MyAwIG9iagotPDwgCi0vRCBbIDY1MSAwIFIgL1hZWiBudWxsIDg0NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjU0IDAgb2JqCi08PCAKLS9EIFsgNjUxIDAgUiAvWFlaIG51bGwgNzIzIG51bGwgXSAKLT4+IAotZW5kb2JqCi02NTUgMCBvYmoKLTw8IAotL0QgWyA2NTEgMCBSIC9YWVogbnVsbCA1MDMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY1NiAwIG9iagotPDwgCi0vRCBbIDY1MSAwIFIgL1hZWiBudWxsIDI5MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjU3IDAgb2JqCi08PCAKLS9QIDY1MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDY0OCAwIFIgCi0vTiA2NjUgMCBSIAotPj4gCi1lbmRvYmoKLTY1OCAwIG9iagotPDwgL0xlbmd0aCAyNDYzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIkcz5CKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFkjLi0/cS4ocmA0J0xwVTIzXzJhLkBAWTAwUDtEQi11JUhnKS1OOUZ1ak1HJ2Q0PEA1W1pMO0oxRihmKHViCi0zPnI5W19lTj1QND43UVsjKkVWbC5XJS85KHNGcklxNjlFJCVjYFlmMyE5PSNmVz9IMEJaYDVsOUJcVyUlMEhuIgotJjI8TyFVLCVCLyxSaypsIUM0ZF8iOVgyPjBiJyN1PlMlJl5RdTNURCxCMzVbJTNvaTsmLlczJldcZldpZlBNLywKLSRpbjBWTl5IQSkjdCJmQVNGKnFlR1pxX2omIy0jdCJxRUhTamMwZ20zcEY1WVVkMU5fY0dLV0ROP19pYSlAW3ApCi1pO1dva0NKWmdIZFBOTmQlJDxOSidTZGlxVV9KT2E3Ki41UVVHTW0zTlQ2dSEqa0h1Y2JWNHVwYCxaYE1fZExYKAotOl1tWF0yTjA8YW1ldCI0VFxmZ1NpRzVnZyFNWjVkTzFsZFMlazMyPmc1LytTWXBlP0RfR1E4KDBbKkR0S2QmajkKLUY/cUQkbyMlUk42Vm9sSmxgXVBUXC5mQXMwTDg3TStjcEcjNk5cMV4zIjdWJ0lOYURSPT9uXE9VQ0M2ODswNlYuCi0xSlE6ZDZXKGI9XnImPkVVPlNvYy9eZFIpN0wiYUA4L09KcTtKPjBKOlxvbzhOaF4iR19FaCIvKiZsUEpyJi1SMwotQypnX1UlNW9KWy5taWEmKGNvSzEiWjgtUychNic6IjlZVVhsY2FJLDVWZUI2M2s6J2siJEQ4RyRvSW1GXGsuSWsKLVM9OC0pVT4xP1QwKUVaYSMhb2hwWm41LGg4P04yI2cnbGw0TyU8ZHU0QkppOFJLWElBJXEpWDdNWjdvTGw6Wk4wCi1XUWwtUGo+YXVTRThOaCNXLzxORCQhWy04PiFtOGszYD9DWl0hMUZbJERgTUBXM0MkSzRcb1JOcF1fbklVSnUpVAotX0w4UCg8UjBRNG1bNHRwMVhRZnFAZ1lLKjRyRmRiWi46KFQ2Qz1RMzhcZj5RNW9BWC9OcCIhaChsSys3Lig7JHUKLVJjYUk5bT1nUjFGazwhdGRLSklRZD1dQTQsPXBLTmVUTSc2OiFLOEJhQ0JWVmxmIUdpKU1XST1kTUJ0K1ZsWjg+Ci0qUGFvaGJScDY6R2lqUXJBYjRjcDdaQSU+SDs7KHVhYVo3cl1nTE9eZyg0ZCgjYWNnP0ptYTBCX0MvOzlKTnRUOgotK0s1PzcrQiZWdTQ9WiVNcUA6XGdFLiJqW1J0P0c7ZFtrNiM0RGpeJSIkZ2A1Z14zQDJqTTpXcUU2OSxpPWsiYTgKLV5ecitkYCNJLywxLkhoWyQqXStDZ21qMUItI1IkKTJiLTdSaU0mLjtCYHBDOUdbdUJRT0VDc2QhVF5SMlAwW0BVCi1jUk1eWVcwXDAkcCJtbUguXitMWV5TJEdpIVVKV2orUXNoN2luVUssZlAoY1FJSylQNFYmMUVrQzVlOmAhNjAwLgotcGBpVUJKPDFaTGBzRC9QaiE4dSVpQ1oxJFIrREQ0P3JXMzdOI2JIRilbNzgnakRTUVElS2VEKiVBPS9eS1NNKioKLVRYNVY1Z3U5OHA5M0BJdGtGISNbOmJsQFomPVUyJ2twLjJLQU5oXDJXPkQ9cWtbIiNiNVhFNjgsTStWTWVVIylTCi1KW3VPOGksL3UpNkxdOC8pNl1WNk9FZiYiKC9eJ2FOdVlDIikrLSxCR04kKSNRMEZWPkE8XCNXUD1RVVlGNFVcYQotXDI5Ki9sa0QlKls0KDFdVVJRaCJbbjhKaipHKzUiOTFCSUkjPzMkTU06LGQ0VSFjZjMsVGFFOlxRVkJFXiFta00KLUxASkQ1bFYtUyxiVmIqL1FfSlEtME1MMCEwOzwzPDZXdDxyIktoRDYhMCVbPU4pQ2hoOl8zXl9AZUdRS2ZLTHMnCi0maj1pJzkmOmJdSHU0JWQ1dEJCImctS1YqImw+azk1ZmZUcStyQ19YKkZtVEA3XGJNNy00REU5I1c6NltyK1tacQotJiRqJmIyJj8hSWJaSF9UO2s/XGU4JUNtSylKVytfRklvMyxsO2xsLDU3R2JtL3NsMEkpSktXYyU1YTNEO00yZVgKLUpIW1MvPDRaNHUzYiZxPlhcUGk8SnQuUGtRNWwyUjM8VD5cMmhpSSlANFlEVCJdXDUxXlBbXkpoako1YlRyOGBaCi1sUTM9dGgsSnRgJUpgOm5bYl1ZQlooKkQrJU5QbnJpMSE7Ty03Oj5oPSU0SC1qVlcpOTlMPzdAJC9tZShsbUdYXwotWzlCSCguNSlbSSw/JmExREhtIXNuKlVhLVw7OD9nOnJZdFdXKS5cPFRzQTVaIispOnQmSkNOWCtnWTlMT3BWN10KLURIaHIkYUpiUTtFJTpMRVg7Jj5CPF9JTCdiOFhFUidBZStsLiExbk1kOUhlZlxJZDlnJ1Q/dCImTzFJbClgcm8/Ci1qLGcmaSVjal1HKkFcRjgiJEtJdGw6bGYiSDcmRzBNRzdoVCQ/RlBTUVw1XD0mdFdnWkRFW1VcSz5ZaGkiZjxSMQotZE0ycylkciQqa1IhKnNVRj41Mmo0aGhGLFYjaGRkbCQvbWMjVWQsajxPMiw5JztJbGpgTV86VitILnQwbFVEYSQKLU9NWl51ZmcqUidnJkpFbkEuVis9SiFGJmVFMk1oXjlyPXJKRkNCJSM5Pm4ibUFLbSNgQG1yLmYlcEYtPE4ra2hmCi1hQ1dELUUmJEQ5SSROKmBFX1FmJ1xbYWY3VGc4YEklPiErYVgucktgX2pGbCUzUk5yTTFyK2MhLDZHdVA2UHMwKAotLTVnX05oOS5kZnFpdUpnTCFzY00lV2dYdGkrNl9kZmBUMnBNLVQ8cnBKNjFBTlYtLkErVVI5RmUvU2xbRDRkNDMKLTIoJSFHKSZJSiQhTiZadE86Vn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNjU5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNjYwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA2MDggMCBSIAotL1Jlc291cmNlcyA2NjcgMCBSIAotL0NvbnRlbnRzIDY2NiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDY2NSAwIFIgXSAKLT4+IAotZW5kb2JqCi02NjEgMCBvYmoKLTw8IAotL0QgWyA2NjAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi02NjIgMCBvYmoKLTw8IAotL0QgWyA2NjAgMCBSIC9YWVogbnVsbCA1MjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY2MyAwIG9iagotPDwgCi0vRCBbIDY2MCAwIFIgL1hZWiBudWxsIDI1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjY0IDAgb2JqCi08PCAKLS9EIFsgNjYwIDAgUiAvWFlaIG51bGwgMjUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi02NjUgMCBvYmoKLTw8IAotL1AgNjYwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNjU3IDAgUiAKLS9OIDY3NCAwIFIgCi0+PiAKLWVuZG9iagotNjY2IDAgb2JqCi08PCAvTGVuZ3RoIDIxMzIgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiRzVkopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkZfQl0uO2klTlwrRWBKSVM+PEE8a0lMUWIrMFpLc11xJTFqRkchN0Ekci9pIjUvajI1IT1eTEE8RAotIiVtU14ocmQ0JEtMMC5RNiZyYHMyUGxaYF9aPV9sQjRJQUdgPEFVcFBYJmg+UmdrLERcWVMibiYvZTdKJzU+ODgKLWVpQjBcUC50JUhYWkE5VTl1XXNrWUomSUgpR1puTCkzZUE7I2ZDb0omLkUmWSVmSG5dOTcuUzEkbT1kIV0mVGl1Ci0mLXVdSDxycmlyK0AsXyZfV1twRS0vaVYsKGwmQyZvWCNycjVmPkY6WDhxKjheSStbOjEnUGpBJDVmajpCR3FragotODo1WjsuUD0kdGpYb24uP2xCNitKbmMqVWk8LkxeTldVXWwoQ19tOCp0XFttUGRJRWVUZFxZKF9HPFBaLicoUloKLVciaHQjZz4rUV5UYzpaSE5qLW0/KTlZcCphOzU6IVF0LilaRiROUDdPMFooVGZMWl1Kb0ZzUWpkVC5nQERSQHA4Ci1iM1FeSicubFMlbDdpYSppLGxHIjE7dFVuIlR1IVczPV5cP19EVk4hK1EjaSlpPCdRRk4kQDFWL2QzQnVIQURmSQotbD4nNnJQcjJFPTxLPUdcci9JSSZBMyFbalYvOUk9PD0lSFRLR0tOO0BnaF9XYFw8Rio5KWkkcidaNyI3MFVEKjAKLTRQI2VALUZiW21QZGEjQFtrYSgoOyVQR0RRJidRJiRMN3BfIllFQ3VKSFpvPjs6XVVZOVQ0KUotVmlKc1UyLChbCi0lbUBJJ2dWRW1OMFQ6V1RsOGRZLkJgM1pscC4vLCshT21kJGxXKlY7QjkxYFYqVj5zNTJEJ3VOQS9AWnRGZmVfXgotUm1jK1duRGRGVz0yamk1P2Fvcy0mNWkxTHJJTkVzampQZENNUVYvKWlWIVxNMWxrIVYxR19oRW4+RTJJXFY9JT0KLTxPamBxWDx0SlhMUi1UN3A7V24/PUE7KEhaPjBmN1o4XjFzSnIxYmdRdTNmR2M5JTNOYVsmMXBsRUNCKS05K1VCCi0sPnBIMUs2VFgwLWM5PixfQEgiQVkudExsayNPSygiLUQ0SjYxMihgbTVwQCJeYzBuaGBPJVFNR1ZbJlo3aVJtNwotKl1PYyxAJlUwTTY5SCUpZFJPQlNOJEhmczRHWCowJG8qYE0wL3EhNVknJDRsYlpGbC5PQnFyMWEqVWdvXV43LVEKLTYuIkNCTm9MJHVMQlJebVlHM0c8K1FvbWdoVU5OKXFuRSpKWGxsLlc6a3NHbyVaXkpXUCc+ZFc/UG0+Xm0+KUg+Ci1CPF1wOzgxW1AlYlVzKDdoI2NILUlLWCYvLU8wN0xJbUYxYCI5SC5rIVdeLz5TP2hdM0JXVVRWRnAuZ0lVXSxSOAotRmVNJksjbSRFMCNfPlJxIyFoQXEkLXIvbEhaLVw/NkopTGc9WW8+a01VRUI/XC9QUC9VXytyWG1NNzR0Xi8lK2oKLWVJQ2hNQ290MlNxVlM1JiMhZkMuXnJCNCghQzFVWCY/LkVRZWM2TkA0ImJBST82UitPKEQ1Vz0/akQ3QTNYNmVbCi0kVVolIz1mQzZySyZDWVhfODhcSCNvamtPI24uOVpXS01aP2dgIjVjcnVhVidLLlxucmFATS4lcmVbVGE4Q0B1QwotOF9INkxlbmdJb1pANVxEI2YkXVhZbSxBPjF1RlFGbD5YUnInbFR1bU5mdFlyRXQuXC0zWnQoQFU+WTxlY09vNSMKLV8zTi5gQSlcTiFZXTwjcGkiUltFQUUmdGViP2NgXXE2UXJEMWxlZVkkcGdnSWEkY2QxIWs5WmErTmU7Sk9DL0QsCi0rbkQwUDlrJmssPGUvKEFGVWNhR2VXUjY7JDtnOjk7QzJcX1Y4Uz88ODVebTsic3NmKFxbcjI5JjoiQlpablI2RAotOWZnMSMucmhrZ1xAVmxhaCc7LEIicCE7VC4hUGgpZVYnb3JqPWhOM2NzXEcoM0o8WU1gM0dFQVFqbV4wQkohJC0KLT00LilkOD5UVDwjMVQ2KVBzXz9VJiFNa1xERSxEJ247cWhyL0JGNVJtMDguSS5scD8rUV8rUDJbdD5mQCRcPXMvCi0rWHBoNDBWaE4+Nk83MDFCWTxwQFBMQVkrSjkqaS49VTM9TSclRzVVQ25YTy9MVW5CUGxmaGs+IyJAQzRVbWJnbwotQFdOaW4nWFpGUmcvKHQ3TjpWcSpcQS87SW9SODI+Z2xAM0FNUEtmY0VFZmk8UTNLTlZKcTBZVDpFdWFARyRcNDMKLSxEOExBRUhjP0xlS1siTkFja2VrJ2doTiNHTSY+ST9jY1M+PEBfSDJlSGU5W1ZHXFwtVHQ3WUFVVWwqRDYuVyZMCi1KSyojbjEwZkNHMjZjPWdpW2U7Jz1YMzljXG49VDZXXUA9SS06LlltUVJbQklSZHNUMS1vRDRTZDgwbUtXX21IMwotYzhGL09tUC5wdTFGUDRzUjI3RWBhOW8vO2xLJW4zb0VOcUxLKV0pQ1BoOCtLS2RnOHEoKV5iKTUuOSNuJjc0dS0KLUo3XGlCWHQvTjIpLE01OjVRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02NjcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02NjggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDY3NiAwIFIgCi0vQ29udGVudHMgNjc1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjc0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTY2OSAwIG9iagotPDwgCi0vRCBbIDY2OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY3MCAwIG9iagotPDwgCi0vRCBbIDY2OCAwIFIgL1hZWiBudWxsIDY0MyBudWxsIF0gCi0+PiAKLWVuZG9iagotNjcxIDAgb2JqCi08PCAKLS9EIFsgNjY4IDAgUiAvWFlaIG51bGwgNTAyIG51bGwgXSAKLT4+IAotZW5kb2JqCi02NzIgMCBvYmoKLTw8IAotL0QgWyA2NjggMCBSIC9YWVogbnVsbCA1MDIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY3MyAwIG9iagotPDwgCi0vRCBbIDY2OCAwIFIgL1hZWiBudWxsIDI0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjc0IDAgb2JqCi08PCAKLS9QIDY2OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDY2NSAwIFIgCi0vTiA2ODcgMCBSIAotPj4gCi1lbmRvYmoKLTY3NSAwIG9iagotPDwgL0xlbmd0aCAyMzMyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyIkc25SKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFkjLilzNSMjKipGcHJZLkRnRnJFa2Zpck8sN0J1cWh1NzBZUFpDMCIiYlNCY11naDc9WFpdOFhDJjNOOWdaCi1AUSU5bTxvVGRQQyo0KDI0JTZ0T0UpSmRrSFxETiJFSjMlJF41bkI+Lj8sUyUhIzMuImFRV0kwLEJMOk9OJEgzSwotIiRZJkpOWCEyI0dYK0pZOlNdSzxfYmItVyYxPVBAJylGPTYzJ1wyZ19bK21VXnU8cDMmM2srIXJxWyZNQlpVJzcKLSV0TyIqVyw0ZlRTclFXT1ZETF8tPCVBaiduQj5ZSTVRTzMtMkBRQFYlais9RStAJXBxVU0vTEc4aGlsdSghMUhqCi1pQSFjMjRLQVpQXyNXOiVhZmoxUCZPJGkjZ2JYdEM2bkctKmNIc0VoLnRJaFErSD9QZzcwKC8kPVA1WjBPM21iZQotV0BkdGYobmlAOCY7NmRPISw8R3QrZz5kWk1NVWlNUig3ZFBFLmIjcUJYU1ReSzB1cFUlY14rNDI/WCshajptPWwKLV5lY2Y0aiFbMlVmPkI8LTJbamQwcmZyMF1rYm9kVi9iNTwkTDtAaEIocUQuYGVIJCdKYVA4TyZiNzEldC9qWi49Ci05Il1eQiQjWVJNRWxQIjI8Qj9xaCJXIyVTLl1CU2JdbGdfa0UsQlVObFZlJ0NnTDEqISY2TXNaTjUucCMvXC00NgotMW0vW2tML2RSOG42TiEjaSY7KD5cQSYmME8+WUZAIU1SIy4pLi9dOEE9P01DK1EicCshPGctLyU+L29CVS5baW8KLU5dTDU2ZC1HMCZAN1k4UyJUYGIwQVpiYkQ4Oyx0LmN0cW50PEdkLys+dHRLL0VTQGxQcSdcZ20hWScoTFdkbk90Ci0/YDxqamlEaGE7YT5ES0BjJCpXVjFCaFFFIjlUQmQwVEg2ZmR0TGxgSUtgbC0mLD1uaS1oN3FMM3BjSU9DUmFLMQotN1dwaChBIiphdTQnWVB0YGl0WyIhJjxcXD9zOilHJTttViJpbFwiQlJLWE5cZmpqUkRyV2cyVyotTUw5TjIoQFcKLXMsTCVRZF9GLitGQzcsbTpxT0huTDNkKEc8VSYmN1ddP28jODNvU28oIjw1Q0w7ViRmXmkhL1JPWlciNiZHJE1FCi0iIjsvR041TmpYMVdGVDxSLDZtNidlSkAhJEFgQ2xcTnQidWs7aio9WThgMDRfIWNyc05oYFwtOj03aVlgUisrRwotMjtlazg2OFQ0U0lCRyJkTDhEdGIoJ108MV07YW1XVy82LjkzUiosXEpxMCIlUEIuVWU5ImNqNCE5YkooX05cPEoKLXIlcEpQPUtlQGdhQSdvZj1MWj5Oaj9sUl9EWlJMLDRQKjNeZVlCMyFUUmYhXDJbXT91WjlyNylWNEBmRT4zOEQnCi1UKkdqXCU0U1JzYW9Pa2dFJUQjQTM9KHJiQGFLMFtecGpwWUpETTxhLlVaPERyWTtgaWRkclUtaig2U2gobUVCSwotWDQndWFHLGlnU1tXKEJSSzwpQ1M4U0c2LTc9NiJLZmZgISlIMU4yM2ghITlmPWA2aHIyNjVnL3ByUV1HTlUjb0sKLUw/NCs0P1FvJyJMN25qLChVaztrRjRDW3NDY0JJOGg/bUYjTj9HLDVodWFUQ1Y1Ok8yIjprWDZXWTAlWDZSNTBUCi0tQCNRZ09QVWlebypmLkAzYT0rYy82UzVnbjxfSkJrKDxoNmtsUG9ERGxIXG05UUYvTmdPbiRnQ3NmbyItXUopQwotWEl0OjdBUy80Ui10Jj9eLTlsUjNAYTNTZyF1SmklP1liYjoxNyQ2NWhYWjFqJldwK29xPlV1KCRaMiFkWFs3YywKLStWV3BQJjdlNV9ZWEt0PixTYUw7JT9HQ0tbdEdcSjZXMWdEam9KU15QWHByPixcTlk5Kz5UK2gpIlFjckZzcTRRCi1AKiIrQElvVzhAQC1HMGk2QTZmcj1wUTVWYmNEP1s7Ii90KFpHJkpCYWJJNERlNVcmSzskTEZIZiQtLzlGNVkxOwotOT5RXU5WKnRQUT1tTmVQTi9kdVVUTHNFLE0pPkVMMkJzYTFcLiRbcj90WSYzKEMjY1IlIlhqKCJMJ01gMW09TlsKLSQqODdQIm5LND4uZjA2VVRJO3FDVF8wKVxQL1JxSE01O1NrWTZUU1sqXk8xWztALEQkN0FOJW9kQGJycFhLS24mCi1aaDRBRStDXy05Lk5TV2tMJ2tiJWdSLUc0JjZhdGE0WFQ3SFlmLmcsZlMuSjohRG0sMm1SSC88cWZXJ1ltOjxJUwotPVs4ajtYO2FOVz42W105MCVzY0wqOV8sSSUqLWZaTEIoSV9fM2VGMCEwZjosOT9ESU8rQzJWYSYzQnM/STpdVHEKLTUtbCdENFhlRGw5aUJua088c3JAPy1wImcvdWBfQCdvcEE8PjUxdUwqS1tAdWYpcT85UENaZWVPLlInOEVZMGFqCi0jUV9mNVJTW0RVW09IJGsqQDFsWW8sYT8pNWYyImciVlo9blItIkspQDBcIWwrTGtKYTA/IitfRSFxZDwuPHIpNQotIiJaX2BEM1hhYVR0V2U/WjtxakMsS3QiJypNKDR0IzdfXzIhNkoiclN0UDdfbU9gMWhNP2VbYEs4K2tYaCNaU2MKLUArUUtQSkRNLHE8PDgmMCxlc1Fgby5ibD1RIk9cWGVfPz1xKlYoPWg5MVpVXFJIYDBcRFRVWEVXM21HQmxXVygiCi01JiIsbEpvbyRbPkcrWlgiIUFdfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02NzYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02NzcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDY4OSAwIFIgCi0vQ29udGVudHMgNjg4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjg3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTY3OCAwIG9iagotPDwgCi0vRCBbIDY3NyAwIFIgL1hZWiBudWxsIDQ2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotNjc5IDAgb2JqCi08PCAKLS9EIFsgNjc3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNjgwIDAgb2JqCi08PCAKLS9EIFsgNjc3IDAgUiAvWFlaIG51bGwgNTA2IG51bGwgXSAKLT4+IAotZW5kb2JqCi02ODEgMCBvYmoKLTw8IAotL0QgWyA2NzcgMCBSIC9YWVogbnVsbCA2OTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY4MiAwIG9iagotPDwgCi0vRCBbIDY3NyAwIFIgL1hZWiBudWxsIDYxNiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjgzIDAgb2JqCi08PCAKLS9EIFsgNjc3IDAgUiAvWFlaIG51bGwgNDQ4IG51bGwgXSAKLT4+IAotZW5kb2JqCi02ODQgMCBvYmoKLTw8IAotL0QgWyA2NzcgMCBSIC9YWVogbnVsbCA0MzUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY4NSAwIG9iagotPDwgCi0vRCBbIDY3NyAwIFIgL1hZWiBudWxsIDQzNSBudWxsIF0gCi0+PiAKLWVuZG9iagotNjg2IDAgb2JqCi08PCAKLS9EIFsgNjc3IDAgUiAvWFlaIG51bGwgMzk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi02ODcgMCBvYmoKLTw8IAotL1AgNjc3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNjc0IDAgUiAKLS9OIDY5NSAwIFIgCi0+PiAKLWVuZG9iagotNjg4IDAgb2JqCi08PCAvTGVuZ3RoIDI3MDYgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfJlc2Pz89dTcvSSI5UXVcYFxlYUNidD9JTWZ0PyxIKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdRyluOD9iKCEqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwST5tSEUiQGlGMEpKQ2s7WwotYUltI1s5TF1VI01UI2NcaU5WJSU8MCVAcEIoS2BEX0pWKzpLR04yZ2BsMVhWTmJWRGllMmo8XiopcTIhaUlKRkcKLTFgQiU3VVtNZCYqXEZ1NF4vW0MpWVghQEMlbiU1Pyk6NzUjJFw6UlEnU2dJO1ciaExpb0JtRComJy4hUl5zRz5DCi1wLUQnTT5XZmo9VWEkI1lBKDJKODZaQU9dMyJBO0hnY0BcRlpqLi8jRS1vZ0ZMNjZkKW8pby1dNk9HbDExNzVAKwotTm5dIz8sL0wzcylobFFmTmZQYXVMZW9RMSQ3XygzXSRdNiYsKTVQWWQnV3VXLilJX0pLNHJDZyUwTGpyWT1cJGcKLVVeIm5rT0M2cVpLJU5tMiUiaCszJ1NbZEg6Ym9lXDhGLypiIiMvUmklPi9vblEmSU8iNVc9WTwiTW04M0BncCFdCi0zRmQxKic5K084I2FMQW9VL2o9UVRgRk9UWXAoI00zS0I7bmxvTW5WWFFNWGlqLVgnY01rWmwvVXE8ZUlMRUJSYgotI1xrOzElUzM4MSVZSUlgOC5DSSk8aF10WGZQRUtGMW9UNGMvLnA9TVZiTXUySktUXS0sRS5ZWG1rQTs+LT1DWkYKLS5FJytEcG8+YzA4bG5uIjFiZShTJSY6PlowVE0tc2RQZlEhLiowbEBvWmJySk5XWHE2SEkyYG5MKSNEWSpBUzBkCi1kKG1VYSVGYCw4M1JPVWQwYE91MEU3a1h1UE1rQjo6NlZuZD1COCI/aTR0KlJaTFtSQCZmTUlROiJCYy4xImEiNAotcSosP2FGYjdBOEpITU5uJVowXSEwXGpKSk9yOSJsQCo3XypRVzZPME5oXjFaMlwjTV84V19KdC81TWxAKVNLNjMKLU4qOSc0VC1cXExpJkJZKCMsalJuUSgvQSZqZ2ZmWGpeXSo6cGJeQVQ/JjwlbyIzQkEiPCtDVU9dTCljTG5ZLU1cCi1oQUxWbyljJCcrY0dNNWhLOCJbYCNHWyRrKlUuMnQ1dEdULEtgVlxoJi5KRWBJOjpYQTdcVlpCSGdwQDBKXC05TwotKHFnbFFnYz1YPFB0K2AzLERMVjZBc1BAKEpyVFs+amEnL2A0U0NkMzE+R1BaWVtdTF9YXDxPTVQ3LSIxQl1WM0wKLSgsKGA+ZyMzLFdTOC9lcmNUUVJQTExuIiInT0poPUNzV1YhMFE1dTUnPTFYMDJiU3Uob0FdXS1LPVFfPkpbZ3NtCi1mOS4oP0hERkMpalgtdFZfIjVJNCInK1NKcFI6NitIPEZENSMsRThZVldVQSEqRDxHYUMrKG5EOnRjYkYqJEdkPAotJG88Sj5iZy49alNUOTczLURlInFVIytNbDxEP25yXFY/P0ckITpcOzotZ3Q5RzgtUTdSRUpTckwhbE0uQCFnKSYKLUZfKyE8KDooZnM5YFtMTDpKR1I6LWM7NWg2XEB1QSQ9c1ciPUQjVXFxcC9vcTYkazg4a2lVQyQ0XkFGQCkkPGM8Ci0pQD5gYUA7azNiNDEzZmJAc0RjZE1ucWg4RklaNU4+Ml1WbmlZTjhZTnVdSU8+cWpbZjcwYDZIKSsxXVo6TkJJPAotMEkwPy4nTUFzcjYldVBAYFw9L1QwUCw1c2JpZ21cKSQzbUAxUGExTCQqPXFXTnNOIyk9IVVsZCxMYVolUCUmZUkKLV86MU01W2Q9QFpTKEVkdWprKG5rVkYrQ2E1PCdlMCoucCkqW2EsbUQjNCRpLSc1OEk0KF0rNUBGITYyVEVgVSo5Ci07Ky02aFEldVFLWzJSXT1CKz1DMVk6IWA3KU8lc1kzXkcnPGEyWV8nKVspc1Y7JVBMUWpAcHJdYUQ7P2ZORUVYTQotJkpcKHEwUCsxKm4vLFtqNixSYThSKkovJzRndCJZKW1NUEg7TydHaThpRTcnZm1kcDhpYzI9QEVhWmVxcnNhJTsKLWhwPWQiYHQhWWFKMStrciM7dVRNKShXIVRjc2dtcytRVGI3LEFMXCkiYiIkIS4sJjk0X1tYYExTZCtxVG8yQ1NOCi1GMDlyPFcnSyQyX2pRLVNDMzYwdFsvcTxcbmc+YClxRVcyOyUnL1QtWXNBUGZETTJFP140UihlVks0MVddPjJCPwotKDM1KSROckg3M2t1QVBSPmczUSZnbnRsKUZBdWs/TmElJSwrZF85TTc6WVtrJUxdXikjMzlmSWRIJlxGVlpoIWsKLUJzKlRRS0gtSmBRbmdSTzxuYkBtLlo6QUhKJWYoTiQzUFY6QFlhanFWLDB1cmxoXjlfRy4iXitsLD9OTEtwR2w8Ci1xM2RicjJSLVRsLEVxTCRVKGdlazprPS1UVy9dKSpXSWsqZD5bL2U2al9dQi5rckBPYid0NFVbaFY+QG5oT08hKQotOUZWRmtibnAncGciOzVCNlA1KDxZSWJMNUFwRz0hZG88Ol9PQUg1O18qZV5fSTVCLFpHYWdCQUsxQG0kbGxLL00KLVEmaGRJRFxWQDxWSCdGOCZXMT4/ImZOMkY0JFouQEgqMUI0KkwiR24xUC49R2REWSomXEt1OTNLV3QuYS89OU5XCi1pSlwwTmpcXDFXUWovQis0RG85MmM4M00ucHBGVzRmXFNBJGZKVCZMUT1KUCFvcVErRzldaWknWCplYzhoUE8sZQotZlpzZExdRiVYUEVjPWNMUHJ0dFZdXGNya0g6N0wpVT5XP3QkNVtKTitdKCRbLVEzO1w+Pj1kPDhoX3NBUThcKD8KLUpoW0tRaTc7QWc7TEthcj0hayI7O0Q1JUpjXVtENSVFOGpgIztGYHRDQG0kcWJMSmZePVA2IXBlOHRuUyRvU2RQCi0rWEYzWCJoWTEzYkgwZTVJJSMpMDphdXA1YUVscSYhT1xxRkNoJFhfWGBUOktlcDEqYCZPZkxybFI+bl1Oc0suLQotKTRcIWdDIixjZltuS2FgVmFHXDklWmovKi9mQC9LKEtrUyducGpQNFZYKWhtZmR0WCo1RUBSO0dEN0tOZitldVcKLS4kJjprOVdQdF5ZKmE2Q0U6bWQ3aSx0P19ILmszdEZoIjxFTF5aJ29qLlpkTSRtX29fSnUyWD80aVBZP1QwKk1nCi0/cEo3VTYqcmNGKEtRPlguIW4/QSwscnFrWThtWTBxQnMoZzFlMHFWUE06PTEiSlBSTEslIXROK01oZHFYLV0vIwotYEJOXGpFLCJMSkZ0JlZbSjkzUlo4Om1NSFRPRXBmZV88dCQzUlJMcydNIWNMbGpQXXVhbilSVjpgPGxbQmBTfj4KLWVuZHN0cmVhbQotZW5kb2JqCi02ODkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi02OTAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDYwOCAwIFIgCi0vUmVzb3VyY2VzIDY5NyAwIFIgCi0vQ29udGVudHMgNjk2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNjk1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTY5MSAwIG9iagotPDwgCi0vRCBbIDY5MCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY5MiAwIG9iagotPDwgCi0vRCBbIDY5MCAwIFIgL1hZWiBudWxsIDY3MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNjkzIDAgb2JqCi08PCAKLS9EIFsgNjkwIDAgUiAvWFlaIG51bGwgMzgxIG51bGwgXSAKLT4+IAotZW5kb2JqCi02OTQgMCBvYmoKLTw8IAotL0QgWyA2OTAgMCBSIC9YWVogbnVsbCA0MjEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTY5NSAwIG9iagotPDwgCi0vUCA2OTAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA2ODcgMCBSIAotL04gNzA2IDAgUiAKLT4+IAotZW5kb2JqCi02OTYgMCBvYmoKLTw8IC9MZW5ndGggMjExMiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iJlhjIilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBYcU4kXWJUS1ouRFEqSS00UjkuRUdkIW9cW0hVR0UrP2svTlUhVXRMTV0qXnIwPExuYjVjXlI1Tlk2VltLcQotQ18xaCNWW2Z0ZWFhYHJNRSFATzhKRW8/UiNTKVVoOloobTJPJiloO2UuJzxpSG51MFUoczNYPDZVVSxwJUhDaksKLTJpY29oZ2JaYS0wXWBGJzV0SlI6I3RdQUZdN3FLRy9BM1ZBVE1SNmNAQmVEXE4sVGEicWBiVj9wYj0wYUErRD0sCi0hZVBlWDJDIUlmM2xVUjdkLltZRlxEQjRUQmo8LEswZ2RKMyM3YSQianVQWkppJ0FaQiIhSS5uJG5lS3VnVlVqNQotL0lWa1dFWEVZYjhuXStfV15xTnFMRk9vOyVjamJbPUM8JE9NMVRJVE5OczdTcU1oOHAiIVBZTEVaWW1JXzNIIj4KLWNmPGE3LktyREI3Z2ZgOEAtWEhoJlMyc2YkbjxDXChDXylKQjFeT0Y1WT01Zjk7PmlYOlRNaT0oS1EoZUxiZEYxCi00TDJfdUZlRSM+O1N1JkxVKCJqPFZDRGlxVFRVSktadDE2a1dmRTA2OU4rcEtpPysmUyRuTjJQK1xMWjQ+UUkpcgotKFBEaVxoK1o6O0tTOVpTUC5cK1VOS1lwPiVuJEQ3LjgoKUVGMlRrLzY4W2phMzBUNDJNYD0jJEInNl4nbjUzRS8KLUpYQzc0OV8sUyIwZ1tBXE5oanEjLEM9dU9HVVIrYVxCW0Una21EdTRFWiMjX0daI0BeJydSTW5pVTxgLk07a1RaCi1uaSlUNE1aRVhnWkBoSWg2by8uKVZfMTk+QUNkamo6ZywmTVxmKU1XV2A+OmwzJ0hVMFsvcElFOityOmlNXjc2PAotYz5JU2ROKyFDQ1I2RyVIUzE+IU9bXmJFQS9zZ1kkMSROakVQQF9XYzQ7Lm1YM2M7TywycC5GSU1bImFCQkdZMi0KLWw9PzlaZnE/dV9gXUNSTilucj0hP29KTHRiTzo4RVpZJzJrWSFKZylXMyY/K00ka2BDZyd1QnRxIzpFLzNgOFlLCi0mLlF0RyVkZiNQNWdERU1cJmRibl8xRk1SMTYzKFNpP0hOI3JkbEE5YjhNOCVXYG9oKVw/LSYrPjxRZylWXHFgcgotO0NyOERjdXMwbUJANmZOOUpWUl83PyhoXDxiPSFSZWMqX0E/Tl5IWmtxVWZBbUppLmljMkljYEpYQUFrJC9pMCgKLSguYSgvIWdkI2VMY0lQSTpwKDxPRnNzT0NOJmdTaXMsSUMkQEUlJ0BWZ3FTWStARF02YFNIYFVlcm03PWovUmNECi1jNGRmLCkkP09eQm5CJUMvVmA7ayNTRU9nNTpCWVowI1QjaChsQDA5WTdOYFBRQE1rPkMyUz4oYU5wK2EyWlZeQAotZk4nVVsiWiM4aGpvWmAyLUdhND5LSFFqIiFvUE1UOGk5LD4taD43Ll1CME8mYEY9RTg6RFAvJDpDO1hxLCklLzsKLShGJktaTik/OUpgY0AxWzVvVFErRD5FPytmKWVANWFicEFBQWUpJjNacSZETV9FJjVKcUxnT2YqJEF1QkFMSnJlCi1MR1pPRU0+PzZlIVIqVFshOHMkcnBgTWFkalJmTGtZXnAkIkIrQEcmcU0wbl4kbWIyNlBzaF9UXTZRNyRoPF9AMQotQCJLVzJhVTVsPjVXTnVUUSFtM1EhPUt0dUtMWidpW2hmLjQ3TDJWRjcmclNAJzE4UXFNOW9jQmlLVFY+PUdtYFIKLWAmcDsnJm1OSldhQnNsK0FJY2JOM2hHSGVJaEk5Ry0kLz4pIzVRT2I2XjQhXzApP08wOFBMWlNiLmlPXSgmYUJbCi1xVltfYSgvYElFa15uPlk1Yk5JaTdCcDkyMzklVjxoLT5ZY21LdUA3LEM4Plo0LFNASTBHb0ZPJ2ZVXC86TkhoWgotLl09Nz5JNyY+IkI+QicoNmhEal5mVDlyWk5dbCY9LXVlOU5JMmQ1XWlgOGVXUChTXG9qIyR0QkcuV2puLU9TWnAKLTVcTzowK2lsIkQ9MVRoLVhNTnNhLVUvNlsiNEE+JilPM2A6ckFWajY3cEVkSyEvIzYuJDNDS0wlY04oJ1AuOUNJCi1fbkFsS2VdK1QxRTkxKl9IUCZjL1Yqci1nKEFRbz5kM2REXi5LaEduPmozdVZAO2hqaCsuRT5HOzU0X002Kl9gPQotSEpoUDdXKFtGMmJyLFojQ00pUz5KP1ZkZFROWCRnRiJKbCxbLER1UTdwQFUlbTs5JS1wO1lFXzNqT0pQbzVEKXAKLTxjRDlpVV88ZCpYPyFBZmlSdXFXQkokKCU4LCNJWz4mLEhbREsmOFJbbixaOSRhIidwaDhgJGFycGVoIUZhKjYyCi09Y1FvUS1XYC51VC5gJkFdYlo/cSJUXCtYJGlTOFhAMnBiTU9JLVZ1LS5LOGZsSmpUM0pwIippK1luUilKOkl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTY5NyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTY5OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgNzA5IDAgUiAKLS9SZXNvdXJjZXMgNzA4IDAgUiAKLS9Db250ZW50cyA3MDcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA3MDYgMCBSIF0gCi0+PiAKLWVuZG9iagotNjk5IDAgb2JqCi08PCAKLS9EIFsgNjk4IDAgUiAvWFlaIG51bGwgODA4IG51bGwgXSAKLT4+IAotZW5kb2JqCi03MDAgMCBvYmoKLTw8IAotL0QgWyA2OTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MDEgMCBvYmoKLTw8IAotL0QgWyA2OTggMCBSIC9YWVogbnVsbCA3OTMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcwMiAwIG9iagotPDwgCi0vRCBbIDY5OCAwIFIgL1hZWiBudWxsIDcyMiBudWxsIF0gCi0+PiAKLWVuZG9iagotNzAzIDAgb2JqCi08PCAKLS9EIFsgNjk4IDAgUiAvWFlaIG51bGwgNzIyIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MDQgMCBvYmoKLTw8IAotL0QgWyA2OTggMCBSIC9YWVogbnVsbCA1MTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcwNSAwIG9iagotPDwgCi0vRCBbIDY5OCAwIFIgL1hZWiBudWxsIDI5NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNzA2IDAgb2JqCi08PCAKLS9QIDY5OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDY5NSAwIFIgCi0vTiA3MTkgMCBSIAotPj4gCi1lbmRvYmoKLTcwNyAwIG9iagotPDwgL0xlbmd0aCAyMTk0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfXihmIlwsCi0pOiI0NEsjLUQiWVw7O20lazpRXyImWSYqKUQpajpDJyJFTGdnXzdfPiVYVUZva2BLJktGPE1ZXyNaQzBFXFghYwotIiFQKWFAUT5FZm1ETipINEg5bC8mdW5GJEBHVlMsLUFXJUBmUWlWdSs+ZWxUVUxCWnRBMWlNVEw5Wl9dXmQpXT8KLVBpUFhxTiRdYlRLWi5EUSpJLTRSOS5FR2Qhb1xbVU9ZZGFiOXVmaXFSKTM+Z0xeVD9NWio7RCUwcGxuYV9nL29HCi0rPkI+aCM9RCIyWj8mLXQ5TGVWYVktXTwxKTEpVEVTZkk9b05Tc3NQbkk0ai9mXitYWSRpVnVlIjFaXlwwaSZIWgotbCs0JTBaOEFXKTNhTlQpaUo7SDIwMiJXRi9WT2Bkbmk4aVguKilyL2otME5UJUFRSmAmMVlmS2E+QW9DOUtYIlIKLTZfTWpoNDVnMi0xcWVHP0xCLmtMK0MjVj1VN2RhSExGUWNUJWs6LDVVPlwpSlUsbmEhRV9FXyYtX2xvUl5UR1pmCi1Vby0vb1BCcioxXzZAVWJcQltJK18kOCY+QWQ2MipSLDBgW1oxUmdWYUdpTWVyNGQxNmpTdDclJGxMYjQ2XlpnMQotJTNsLzMsVWViRicocnIzIkVQVHFqL0NXUSVEdDteJ0ZraCk+als4YGxhJTZQZDdkUnElbC5bYyMpW3QwNS9ARjoKLVpwcE40IV1YRXI9OTo8XyYuRz5MX0RbRGFvKkBJPGovY1ltODVCb0w5PlE1dGZLLkhVI2ciJTBAcycoQjtOTl47Ci07W2gmZWdCa3JjTHRGUEY6SXJwS2BLQUI2LWU+OF5GdVI1LEU4T1QiYlA6Ny1UaGZNYCooUSZaI0QxYStYQmJzaQotLjombDI7M3FdWEgtLWRdKU4tUUIsaE5ZNFR1PztZIlZVMlAwZygoKmYqbl9kMkQkZkgvZGEtSkxALz0sL1wsOz8KLUNDalFWI1o7UnFUZ2NnMEE6bz4qNiEvYl5YPmQmYkhpPl5QJ3BQO0FMKzxuKkw1JyxVQm9hYEAkTyJIbTo0UHIiCi1ZXm41IjE/RC5JKTYwRilbXilvRlxcPls8Qj9xOG4kajZbOFA4RFZcb0AsTTxlP2Y7W0tGX3EsVCosN0w+QWhFNAotMikoY2FPUGshbSMhbjNVJVBVYFVWZCViKUQhciFFb14rakk8KCI+ajtgZGI3XWpIVCQiVjE2SiY+J2MzQT9TMl0KLV4oKDY9PCJPMT4oIzxySVBlUjYyTmU7bElvaTJgKmNvNEM2KHReYFxlWVIsT0w3OzcmJ0ZaaUliLzxFRi9eKUg3Ci1uLDZCJzNoQiw7X0A0PmJOR2RZSSF0MW5mOzYyLyhHYiRbQzFebCxBZC5LS0NlJ3UuRTQ1dShmPTAiMjxjK09gSAotKDVAL0g5MTA2NFI3UlYjcm5YLVclcEkuYW0nbjZxV1NgajNHbFdAVExLLXQqaC5mSDBfM0tPN1ZPRFJXNVhBVWkKLVVxYSYsN2ZYVFgiOWY+U1BIPUJUKGxsYlw2SEg3dSNGJDMoT2phRyJqb00+Q2tERkpFNkEjXUZXPi1yWFJhYDc8Ci1BNGUzSS4kM0dfN05SWzUiZzozRCJbWloqIUBWZVYuWDo8N2UpTTpqblNUTjw6YDJhUzAsT2ZFREkwIS8mWm8nOQotViwjZl9ONTlyTidCISs2LEtNWyQ5JWtzVzFjNjJyR1ZrT1tdR0YsYzVTNE9SQ2JZJGBvIks4J2AjSyhJLidhaSgKLShPNFlpJFdDRGw3RkZURlpMZUpMQzsyZis5aE5DX2ZHREMzViloMFovY3BSNSQ6K2ZbJHVSNT4qTFRoS2FmQWxlCi1PW1YpUTtoMm08OS84S25kJFBVQkMoKGA1ZHB0c1wpQldWJVVrPi5kJWtjQiRdWFQkPWVAVkdHTExyWiQsTUYoTwotMWtDdUhSVSskWmRNMzosNF5jWUBLTUtTN1ZCQUhjU3FnbmAjIlAuJGQtSSE1NWV1TyIsb2leJS9EWW0qal5HWSgKLUtILUw9bmRZIjgwYmJiX05SXEVXO1RNaSg0RXUsRipySEkzbjE9NTtBMiJwKSwzIWI3LzMqcGJeKEI3VHAyMG9JCi1LOC9tQE0/QFYuPUBmdTNYRUJcTDYuQVs5YnNkT1oxOFBeY2E8MVt0OV1YRlhSNDRtLlU2Qyw5O1Q3KTYkYyxfMQotJVNwP3AqZVdyIjlfKEg4Q0NDcFpxKnVBS0ZKZ2RXTj5EWWtuZj5VR0NKYzd0PjBDa04qKVArSlBMWko6PE50XSgKLU4hLVBrPEthc2xrRWFKa1dFVG0hUUFPNj5IQWNASVtnLUtTXDRQOXE/TzxmZy4yIWYpOG5nWSlTb0hVa2k0S1UoCi1pOC8rOydAZXJGV2pDPGY1W05mKkQ2PEtOZltpcXVBQy9eLU1RS1U0MHA0KSxKVlozUCM6YT5WJkRYa0NhdCYtXwotXzRgVzBMPEB0OiZuVCEqNzA7VWE7ZCQlVEIrO1giKy8kTFMqSVRjOU48byE5XGdGQi05YzlKaFAkTGssa11OJCwKLSRaQ1UpMGE/WUReMVoxZ0JwOVNsWSwhRmMqUDomOFppOCxrbFgjQyhYbG02NmRYMys1a3MmV08lJ1xeR1EuLWFvCi07ISZsMFc1TGxxJ2JWTUhrVE9HbzswKFpKPCNMMmUiXURbTT4jMzA3WXVbbWBma0hfYmdmaz1VPV83WF5ZXWUwbgotPj4hUmNYMT1FOkEtO34+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzA4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzA5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgNjk4IDAgUiA3MTAgMCBSIDcyMiAwIFIgNzMzIDAgUiA3NDIgMCBSIDc0OSAwIFIgNzYyIDAgUiA3NzYgMCBSIDc4OCAwIFIgCi03OTkgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotNzEwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3MjEgMCBSIAotL0NvbnRlbnRzIDcyMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDcxOSAwIFIgXSAKLT4+IAotZW5kb2JqCi03MTEgMCBvYmoKLTw8IAotL0QgWyA3MTAgMCBSIC9YWVogbnVsbCAzOTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcxMiAwIG9iagotPDwgCi0vRCBbIDcxMCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcxMyAwIG9iagotPDwgCi0vRCBbIDcxMCAwIFIgL1hZWiBudWxsIDQzNCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzE0IDAgb2JqCi08PCAKLS9EIFsgNzEwIDAgUiAvWFlaIG51bGwgNzQxIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MTUgMCBvYmoKLTw8IAotL0QgWyA3MTAgMCBSIC9YWVogbnVsbCA0NzMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcxNiAwIG9iagotPDwgCi0vRCBbIDcxMCAwIFIgL1hZWiBudWxsIDM3NiBudWxsIF0gCi0+PiAKLWVuZG9iagotNzE3IDAgb2JqCi08PCAKLS9EIFsgNzEwIDAgUiAvWFlaIG51bGwgMzE4IG51bGwgXSAKLT4+IAotZW5kb2JqCi03MTggMCBvYmoKLTw8IAotL0QgWyA3MTAgMCBSIC9YWVogbnVsbCAyNjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcxOSAwIG9iagotPDwgCi0vUCA3MTAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA3MDYgMCBSIAotL04gNzMwIDAgUiAKLT4+IAotZW5kb2JqCi03MjAgMCBvYmoKLTw8IC9MZW5ndGggMjk4MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iJlk+MilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRMOVpfXV5kKV0/Ci1QaVBZIy4pczUjIyoqRnByWGQiXTFsPzpKW2RlbVhARTRhMDouQTBVZUUpMzUkODcsaVR0S0cvJ2MuI3QiKTNHQAotQ2NAYVkyNyhccGhJYy1KcWtsKGBMaiphSD5xWS5qalxCUFNYaHBgMVJZN21ITmhqL00rQ14idS1wZVEoS0U4O24KLSohT11QUTc9LSY2PUxXOUswW1FqL148VnBWWmpvWyhvXS9TNVk8a21fZGxsRF8hOz5wWjNHbCFBL0lVbm85cEwjCi0lO0tKWk1kXGs5MSg+SWk7QWIvaTVnJkwoLElCWk4tX2xkZVErWSJCNWtmcDZVY10xc0BzV3RfTjw5SU0mLkhJJwotYzhVZEo+YiFlXztcN0E4WzAoS14wTFBAIV9QMC1QSz1qNVMvLFpQKyI5U3FiJ1Q4XVlQZGNDayY3aFZrWDFYT1AKLTAyXkE7JGA4SkM9PzdoSTBaI1FeaW8yajglPi0nNktoSElRXiwyWyxkKXMtNF9eTlZkYz8ycktYIV44ZSVrLGRMCi1GXkZARW9sWFkkZi84Nzw6IjMvY2w4Yyk2PCEqL1RaLnM7UC1CXFlPMGIqXG01VmVCJiNoaDc7MT89RT84US0yRAotLktmaW1iME5fVUNXZyFPJ0owaC03VlptWyhDJmohS1g8PTQwXl5VLjpAcGwqPzdmQlBCQVgjbzYiQGxkNEtmTl0KLTMqXFlBJHRFY1gyX1hoQFZcVzNwVXEmLUokOiVjNCMnWl9WckBnT1YrS0BxUj8oZFkvJDYyOHI2a1A2NmhkQTE7Ci1CJyFGKmZQSDJcblBpWC0+ZXBENDRiTmlaTk0vVlwib3RwLWM9Z2gyYD5NJTZQdDFCTjVWWUQoKHRSMV9AbSQ1XAotYjtLTycvUnEqZzJmNE8zJGJudS1vcU1kTGJdUTlMbzhLRytjKjVRWjE+XyV0T0J0TEthJnVaIk4iKEVAXkhsOzkKLVVrXi84bms+QjY4XWI6QzBAakBQaGpNRHJEPDtgQDM/QVBDQlVVZUshb05wdWo7TUVlb1MnQTAsP1M2JFw/NWdACi1NYT4lRi4jUzsnX2hBTEdVLkYrTSU1MEVgNF5zP1Q9Zmo0LVFTWkMiWV5eVyg2RDpiPU5zLFMrMzpbSjtDV25nKgotO0wlIkdkaFI8QzJkb2pCPWw9TzIsbCdaTGonKWVrIjlZJT0xakhuZ2QqRHF1cmI4NWgvZjZpbjYlTWxrRGJUOjUKLWouSSt1ZysuQzNOTTJadU9ONTFXYSNPRiVvN29URipLMyhyQ0M/KmZUNEBCbmNlODdjL3M1NkwoUlMwa25kbCJVCi1pPGdgPFFBMTRsTUleUiglTC5bS1dLTVVrSGZZImxcQCcnMk5vNF9eV2EwIV83NkQhMFg/KGI4XGIuPyM9PDBiTAotOU9hWkguTyJzOSQzSjl0Nyk1SFNMSyhlLSgtNTViQyE4T2NQSXFpPllxSnRVUSc5KXM/ayhyR2QwMGo0LCFONmQKLWg7Rz9NTTJyQlZXcG5tYDZeLEohQzVzYnVHYlR1QWUyTV5AYVhCTnFJJCNUSzhyLDIyM0BrPTopcUBnQyUrLjxwCi1LJVNNJVVOOE05NWJePXVvWiRnJ2tcTzhYXGtGQStRR2ZTVistVVw2M3RlbTRTNjFdKDo4KnE3UE1lXihKWFc2OgotRVkmY2MhOUJYLWJYK3U3aDNcQmw1OFtEVVE0Lz4tOlM5SmlWKmMvJE1sQkZUSmNQNDhfYD80PU1tPyMialJUMWMKLT1DSV5MVihlYyNnKTw9PEJNPD5dP25RIzxTRT1qM00vTmkpM3FkK046ZkZgVCJCbE8sLCE6clJcMSVWaV5fQjxOCi1pPy91az9bXGJyRzlEXThOXyNBWiI6aCtEX1dRMD5SR3NLWGFhRVpgZyUtRmRQLmpBREJLT1QrK1YjVFBPLDshVwotQCpQcTYqRSpyblFxU0wlXi4nc1lTQipLVVRdP3EqRz5ubF9CT1JVcXE5bFRJVF4jMiE8ZyFxTjhQLzFzJFgubEsKLVczLSNeMyM2aSQpMG1gdCFTa0lUUT1VIT8hciIwQCEzIipZI2RbbnEnN2kiZlY0SUIiSmAtWWdLTE1sZi1sMCE2Ci0kclUzKSVaMWUmNmhxWnU7YjxfMG5lOUU7RD9wOTExK3IzRSUlUy0oODVdUkpESDBETTteQGxBJy5baS1KW0BAawotM1RiVichLSIjSzEyTmUlREIra2Y0XXI1NWUuYj0zPHVcX2wlOC5dcl4sTzNIPkxOImpROjhPPVcoJWlFQTBia2gKLSJiRUc1O1VzTEVtXVo1bW0lOG1SXWExdVxFIWYmOi44KUhcQVZiPVM7VDJfayc/SXFpbGdeJipnPSc4XkhXJDBrCi1tWVRAIyYtUzxZOSRdIlBAQVdzNzlhJlFpZSU/TlpwUWYsOWIsRGkhTjdFcCdhSmQhRkFFJl9qQFpWYlM0SlsnNwotJDVGUWc4S2U3WDopMiJyO1IvYmArazlEVjVrPmUhTXQ9bEVdSiwrS2hHRUlzJCg1PixjOXIjVF85bSNYLSRaIjcKLS9OOjJ1PDVfLD47ZFJcJlxRRUtzXV41aD1uTmI4M0xQdCU3WUcuZy5KLyUiO203TjZJIyFnUl1VVmImO18qQzlpCi0rT2g9Ki8zSF8nX0smYXBBMitjSTxLKyU6SlB1VEEkS1gxM20mN2MyWjAxXDxdZFIzSE5kUlRoWGlSKlEsNjFSQwotUXQpTlQzZClcRWNcTjhFJiFBKkw5cGkhK1JwL0tRVm9pQChVJXVGVSdyJUhqVy1nVkY6clhEZmQ5WGg2TmBgUDcKLUhDVmteV0EqVCsxI2JQMXIsYmJMJUxNXXUwZGskX0IyXkoqYWQrPilxSCdfb25WTzU7QCVaTzJKZT47ZiVBNipdCi1KZTtPVE5INFI0ODJEMWVYKGRWals+U1kpPERZVy9HbGpLaDE6MyNoYi9TKF07bWheTmQ9QCEwY0ltbCZpZSZAbAotPltiMmdLMmZtOURdVC5ya25AJTsuRChXTnFkdFRmJy9tPDchTCI3OC5cOkhuXG5HaG0rQUQ4bGFEKjEyYSFDI0MKLS0yTzY1MT4pJy9fbFpvVWNPNDVcYCZaZ0tcTkF1M0EhTW4ySSxwTzJQNDpsa2VBOUtJb0BkNkJOb0ovSmJWdG5iCi0tRV4zWlhKIVhtODM9cXRmVmxZVTlYREEoRVs7OkdKZUgmIiUmKFFaaWVhdEEnL1RCUFZqJydFbylZYGtRVSRqPQotISJhJCItYjVQaStGYzRLYWlrQ11DWlokPS5aIjlcQVsjblY8LCtSaUpMOSwhXnMnXHJQZEFgY1peXiRrbVwkPG4KLV5vaVFUcWZQUDFVc2oqXUBEJ2oqVXFDZVhyJ1poWkMyYzFyWWZgRWVDaGA9PU5wVGojVSdgQDVCM1cpIjQhdHNGCi1nVUFQTCVEOz9jLzlmcmZnT09EPkdHMyYnVzRVOF9yZUs6bl0lNSoiW15PUy1MU3QocyFNZ2M+YkhscjZmNkdKRwotIyg7JV48WW9JUE1OK3JecTBjI0sqX2tRc0hXazJtallESEpEYkpdX1BIRypHSCpDKm5WYjY3bTg9LkN0MC1tNzUKLXIkX15yIU1UVn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzIxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzIyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3MzIgMCBSIAotL0NvbnRlbnRzIDczMSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDczMCAwIFIgXSAKLT4+IAotZW5kb2JqCi03MjMgMCBvYmoKLTw8IAotL0QgWyA3MjIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MjQgMCBvYmoKLTw8IAotL0QgWyA3MjIgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcyNSAwIG9iagotPDwgCi0vRCBbIDcyMiAwIFIgL1hZWiBudWxsIDgyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotNzI2IDAgb2JqCi08PCAKLS9EIFsgNzIyIDAgUiAvWFlaIG51bGwgODEyIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MjcgMCBvYmoKLTw8IAotL0QgWyA3MjIgMCBSIC9YWVogbnVsbCA3ODYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTcyOCAwIG9iagotPDwgCi0vRCBbIDcyMiAwIFIgL1hZWiBudWxsIDczNCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzI5IDAgb2JqCi08PCAKLS9EIFsgNzIyIDAgUiAvWFlaIG51bGwgNTg1IG51bGwgXSAKLT4+IAotZW5kb2JqCi03MzAgMCBvYmoKLTw8IAotL1AgNzIyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNzE5IDAgUiAKLS9OIDczOSAwIFIgCi0+PiAKLWVuZG9iagotNzMxIDAgb2JqCi08PCAvTGVuZ3RoIDI3NzggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiZZVjopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkVmbUROKkg0SDlsLyZ1bkYkQEdWUywtQVclQGZRaVZ1Kz5lbFRVTEJadEExaU1UTDlaX11eZCldPwotUGlQWHFOJF1iVEtUOUw4RDBYXU05LkVHaUBZM09caVtHWVxMMTo2TSRyYlk5JDpaN2s2J1Q2LjE1SD5fIionWWkKLUJmQzhIN1VsYWNfSGAoW05MZ2ZXXUtucUdSKkowYihYVU91XkciNnQzXiFSLERENydmMzlpMlZtZ0lNODRjYVBJCi1xTGVzbGhFJFpfITkhNFVANmlbKk5eRiorKEJsI0hXJE5iWE1aYiJEYkw7ZD5cYUc4XWwrM1g3aSZua3BxbnRIXQotRFVaLTg1QXBBOFUndE9BJWUjQi1xSCFwOV9rX0RbVnBMQFlwcUMvOmhbR09Fa1dsMFNtc25wZVYvXCVdVWtVQjQKLVJeMD9oJmhMQ0E1cUM+LE5pRjtZWWMzTydCVykrRW50bFclRG4rNys0K2VzJCg8ZldAPXJFKDJFKyVdWU1uP0c2Ci1XZkM8aTQkSl80SE9jJihFOTxHJSE8Qzo3Y2dnVjwmLXVcRWs2b1c7NmVpS21pc0xWT14oYHJzKEY9XS1TPV1vZAotXEFDQT86JD5FajhdKy8kM1A1SEg6bUpfWHB0NldLX2p1Ji9MKjhyVicyWmxhPTt0LEI+cDJCbE5jOGFzM19sRlkKLTI4QmRCNy4/L0JUXUE1ZjBNPjZYPHFndGFwPCVOQV9ecGJRI1xHJDAhWFA7Rk0pP0ReK2JhPzFTRmhhYmBNWUdKCi1KUTk1dD5PZHFrK2khJVNmKlQxL0JaImppZi8sUGctZUNIITw3Q0YtQy0iSUVGRHMjR1VOIjZUOFFVMCcyaVdIcwotJDRtWkFXN180XEsxT2BtWUpZPXIySXBlNW5pPHFCQW1JYCxMaEwoMGdHRjxQOFAoSDVpJkFkYnFbImQrIjEmSW8KLU4kQiU6cTgiaDA3bztRVHFwU3V1bWdRYCdOVkNOTVBAWGkoZHVJSyJlXllYUC81QCFybDFASD8oMkEkWkByUiwnCi0wJ2tMMCZlST9wXVg2Jkpfb0VLRDAwbyp0cEVjdFRcTChXPmRZIiopW3VUSz5mcU5PNEdmP28/QDBUN1xOVicpZQotMnFYOnRiUmRVXkcrZlhjOy9mQjpOTj04QDNvcG45a2sub20jZ0U8SVs1ZDhqZj0kWlAuMUVjXmdBXF0tXDdvPG4KLUJ1NHNJRENKXUMycnRPbVxYKDhoJWtXcmU0USFMNG4qPkQoXzA7Q3NJPkQsP1NdLVREXEtmJldjUVtzSi9rcEo/Ci0iTT4wYWFUWUE7ZT5GOV9CUFVPVDIlRzJ1MyFOOTopM15IbUpVZlU+Vj1oKHI6MSxrTmtNOEVMQTQiS0JFaCFUVAotT1U4aWhhcFYhMUFrTUUpJ0orPURmOj1fITYtSShiKD87LG9OKyFLTlgpJkotUGJlRERUT2dORipWaFowWW41XEAKLXBnUWBpLGVKLkxMKE1lNDZnMDFdSmNPLnVOdFhKXS1fTigzXmV0RlY7a0dgKiZoQ3NJRS1ZaXQoajQjbVRlbDo6Ci1hcy9EXjxRU0NTSnNZSzc9Ri9oUi4qc0QsTD5JTSo/dDBaKVpvQypbUGpWQ0ldL0FqcilDTWFzQCVeWFk+Q2ckOQotOEU9ZnFVTjM0dW4+bTBsVz5PSEQpRj1qaiE/RkFWIykoQEEuOCVvITM/UW85YTNsYCwlJ0khTVVQJHIwOk1MInEKLV5wRmxwLEk1Y2hIcilJYlRVSGspYXJWLStFJ0BrR048WmgvVmRfRlJOX0A+ZVRMXG5uaTJDTiFpQGt0TFlZXTJfCi1pWldpS3JSUWBvcG5uMywoTSpUcykpSG9sbkpCQz1SNS5HVDhRaEBST2RRUUVUVipSSl9vIiFoZ1U3NHElRlssYAotaCk1ZDk7LW9CaSRhdDRCVmpWUyg2JzkrbjA4SSw9ZCVbY0xkWk4lZi1gVz0zKiRlP3VrJShGUmxyPj1CTVspJ0YKLURGLmxxYlthJjtKdFwsW2RPQSolKj5LWUQ6NmtsRGAzLjYiNFJOXmVIMDsxUVk2cHQ1aj9Naj9QK09HXlZaVUBXCi01Z0dZJC5zSCVXLT1ZYVw4dE1WSFcwIl1cOUl0KSVQayMmXFkvanF0ZFdaQGwrSzxKI1RMNTIwJVo6PyFaIkBuSwotIjFgcTBkOmYvaUE/cGdDM11MNXRLSlxGJmNsRkdnXGxCbzlwbEpaaz1RIW1rLCIsT2pKY2FxO18xSHFXVXNwaz0KLVZWYTouUHAvRDJBTVkpaEhZLzk9J0kobWQpNzkhckJeKEBpVk0/ZVBjdXF0Tmw+JUpxTjtZKy5xUCpCKmI7WmZoCi1YVTYzImI2Y01xQUldImRuMVE3O0MxOWtNQ1FwTTI6dWknUiVvVC05TiVwKWcmNVxVXihqLz8vZC4jJy1eP2gyRgotMTNES2dkXVZcKFgmWFJcNSJDOEg2J3JJIyEsWE1OcDA4RkwmN3VEPGA7aEgiR1NcYT5CZzdIMS1qQVAtJi1RXTAKLSVcaUxNPFQoQyshaGBrKFZxPFc8b0QjXXAxdTkvYk07XFx0Jlk9YVQzIk43cWZga1InNGJBVmRiSFg/JCI5QSEyCi0jKWxvSjYjIU9AR2gtTiFVQiNyN2N1NGxISjMpK2RcLWJPWTVWRGlXLCVPVCE/bnU6P1RrNT8kVF5yR0FucFhHbQotT29YcCpOL1pAbGAlMj1eXDJaclNOIlNIYjcwRVVoMU0uUy8jNDZdTltKIlxbKSZtQzQjaztSVC1TLUJsT0Q1NTsKLTQ7M2pfVjRxLj4sJ3JEJVddVydVOlFpP1pYdSk8UDZNR1RWTEBGJz1nVHUscD0zQFclPCI0PVxDXlJTRzFCQTRBCi0jWk8qTzJfSi1kImRdJyxLRitkcF9STnE8QmBtLHVORDpOSGZvUWlZJSteXDJCUi83U2tiQDJ0KiF1XXBIZTxbMAotKWxGKmRRW3RIaCVUbV4oKD5ZS1Q1cSUwOEFDaT06Lzw1JHM6Lm1xTDQiK3UvYkYucUQ8SFZgbi90U1RJSD82T1AKLWg+KEQ3J0pvM0kxTm1gXz1qcWJhI1c3LGdhXHBHcT07XGBRcykmLW8rJlA7VVc2KGcjJ0FePFk2Tm0uMWt1Z1ZaCi1LLkMvYSlmIzx0PVs7KzovJyJuZ3FJcSZTbGxGQ18pVWslY24/Syc7R1Y2VCNeTj9gc1hoMmlWOlw6PD0qNVUrXQotZlU4YjRoUTdzdF1TJXJOJ2ttKU9NU10zXCQiNkxZUSNPXkBNLUMycWA2KTZrWkRLTTNbaThwOE5LcjBLP01bQ0sKLWl0VUk7PlloVGRHTXJrbE0lSC47JUxDMXJjaWhOWEpxMEE4ZCkvNFJEYWooX0Y+RGtlU0shZUZIMD9nYFYhXnBMJTNRYn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzMyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzMzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3NDEgMCBSIAotL0NvbnRlbnRzIDc0MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDczOSAwIFIgXSAKLT4+IAotZW5kb2JqCi03MzQgMCBvYmoKLTw8IAotL0QgWyA3MzMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03MzUgMCBvYmoKLTw8IAotL0QgWyA3MzMgMCBSIC9YWVogbnVsbCA2NzYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTczNiAwIG9iagotPDwgCi0vRCBbIDczMyAwIFIgL1hZWiBudWxsIDM5NyBudWxsIF0gCi0+PiAKLWVuZG9iagotNzM3IDAgb2JqCi08PCAKLS9EIFsgNzMzIDAgUiAvWFlaIG51bGwgMjg3IG51bGwgXSAKLT4+IAotZW5kb2JqCi03MzggMCBvYmoKLTw8IAotL0QgWyA3MzMgMCBSIC9YWVogbnVsbCAyODcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTczOSAwIG9iagotPDwgCi0vUCA3MzMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA3MzAgMCBSIAotL04gNzQ2IDAgUiAKLT4+IAotZW5kb2JqCi03NDAgMCBvYmoKLTw8IC9MZW5ndGggMzQ5NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX14oZiJcLAotKToiNDRLIy1EIllcOzttJWs6UV8iJlluQilEKWo6QyciRUxnZ183Xz4lWFVGb2tgSyZLRjxNWV8jWkMwRVxYIWMKLSIhUClhQFE+RWZtRE4qSDRIOWwvJnVuRiRAR1ZTLC1BVyVAZlFpVnUrPmVsVFVMQlp0QTFpTVRYYjMwZl5kKV0/Ci1QaVBZIzAlLmQ4TWFVdGNCV1AkPygrTWguIkVRJD1rXDJzbmAhOFhxUFgnN0dSRVl0JiM/OFQvMz0kIlRaKkNPVgotP0RHcWI8N2wiN0tKQS9NN2AxQF1cODQoIm5tZ1w8TC0/PD8kWWNqJTJTI1NWI1ddLEE5PVFnVEByVFJGXV01SWsKLTRNIyRJNVdZZzoiPF1dN0srIkA/TjM8IyluTjtqZjx0QztOT0FacE4hQ09YNiUrLl9GbEdHdThMXyghVC8wJFlZCi0sRzwxNyI5VD5kWCFeOS1oQHRtQlRUa2RzWDFWUXEuWjZbcCdGXHB0aSYmKl8hOSJZXUpPJidPLWM5P2AndHNdNgotPlMnPkRCWC8+LStkQlcjX2E9ZTMxXmtWOFhXZlYpRTVqZEdaK04iKl9zWy8nblYxczRjUUwpZF9rPzYmMUlSRVEKLVRWNzpwWjZOZSEsLGhVTzplRW0pSkxMQigvMVAzWnJdZEVHb0ZzaEBALDxWdEAwM2hSJUhDaSJbZnMsai8vdSRcCi1DQlBWTCQqQC9nVi4lbj4sPnFNUyh0cHJEbjZpMkxfNFlWKVhsNHAtKT91JU1DKGNOMllqM2ohbl9pPV4vISEjWQotTFkiaFdiYzA9Vmc+Ii5dOFo1LEI6TlBqJypYTGI1PzhJUmxFNm9cNEdBJ2l0Y1ZybkNIPSM0PWxbPC0kOiJhPTIKLW1uTG1UZzZTajkoUFVmSlRLOV07UEtyUypqIk5gbTpNYC4+MXA/LkpYLFNeXyw0QlNTWlM1VyM9RGRaXmovUFk2Ci1MbDNqRjY5TVYlK1tFNGw0LURLZCRQKVopJ0sza0hFND9TaUpQQ25rV1IjVVxwYGMtQUFHWCUvYXVnSG42JXRYKQotSlpvRUROdDNJW2xMO3U8OVlHPiYsQW9cI2QiL1BEUS1sbSpQYmNzNnFxQlteMmFDNjkzWjs9b1ZxQjBDbThEQ3AKLSU4XGhqWmRZTVxZYVszJlVkQy9iSWdYNCtDVGFAYSkhYiVaND5QdSUqR3FzZCdnMiokJ087PGxnVSo6b1kkJVRECi0tZiNRIkBlbz9rNm5tcShVUjknZiVNIWlbZ1dpL0dsN2c3NzMxO2RkRFdjSCtHWVhAUmlxVyZkPGhhSWNGQ206ZgotMCpwRHJZU0o7TnAnLDxCRSNSRi06Qi4tWj4nJi5obW0zUVZXQHEnVltGSjhzcm0udTVjRDVkUE1nOG48YFBlVWIKLTIwZUxtIVdgYi9ALiI0RFg7SmhcQ2NvZj5rV0k/XSkmInUvQUZLJWkzaUA0XSIiQmZNK2kxT15kLCNVNThyJShHCi1idWZhNChBPzchRz5eIlhiUUVQTVpeITdbRSIrN241MnNARFMxRi43YzY5cUk8ZzYoaVxRaDRTI2tZL3RVXmdTJAotL04pZi5NJXJEWyhFMGVAIlh1OEYiIyssJ2dzT2JGJVhKK0IyW1UiUSdCT3VwZWZES1YjbEomIkNPWEBna0o/NXQKLVIvcjFXK1xSQSJQLV8qMEsrXVkmWEMxPz0oSz8mJkY8bD5JVEpTRy4qYT9fLDJpVVdPP0glL3EoPENUKCJUXzNDCi0rQG90Oygqa15oNWdVSTdcKClGK2x1Ljk2YFBmTik8ZS9KMWktOFtwMkE9VGNnNjVdVzokS1UzIyIxImImN1VHYgotVHNaRCphQm1xZyNYYSguVyZNMClnc0psbVQuVCFYIUo8XVAsb2NEcUYwPmIxKF5aLT5jRWxNYk9lPFQ6QlwhTGsKLUJMSVZgb2lRcj5HOkpMcjI/bzlVO21RYXVtRSFfYy9yO1VrXkstYUtpb0hPVU8/Qzo0NmtxWGdONU0kYU41KW9UCi1yZzhubG5PRSY3OnEwPjRiLyheU0Rwaz5xXkEqNyErcmcvKzVfKHFlO1pJYmhILyk3bSVHbl9kZGwvPGVkZ2FJRgotLUEqXSxlYFlZdUFabSE0IyRMOmoncldfaDtGbkFmMjRFbzVSMFAnTGVFLmI3P1BvPSEqaDYpdE5CVlg2N2o3RWYKLUxiYzVXNUEpQzc/LnJKWTEhaGMoUEcoOyNMaFJCITBZZyJTPXJZP2tqcGUsZ2NSQE4mZzxuaHFLLjQmYSxeQCVJCi07aWtOXzFCPVVMbjYvOklidVU7O2wpckA0UUBOYmFFMztyKVpOOktKUHNdT3E3SColZzRWXzMtIi5FVStGZCtkLwotIzkiSDdIJTpKWDheI0xPYGBYYzIiMDBcSC9eMnI+KFtGJiZOUlc3bTpGWU5DUHNiTzpAQ2lnPkAuXGEmIWpzWEcKLWkjRyFicG9kdS9LbjFBQEE1J0wtMVFdK2NUcyQ7akxIdCxFK08jNT9jOG9qPDxPUnU2cTErJTxgbXVDP1xLQi0nCi1BcSg5JDVNP0hNOUhLQDs8Y1U/V1YnOVxOJl4lODthTy5NXXAsSkVPamYncWliKiZOdUAlSXRRNCVIR1pDa2JCZQotbCVyVEQ2cjc8VmU1QS8kbHNZSypbUUc2LCg/am4iUSkxO19wcWVrPGdrQChUT2RYYkgyYzBxIkk7TydfVlNLZCUKLWRBOVc+LVwyXF48ckwhRDQmTDksJjknPmVBTGBHaT5gXjlmJV80TDo2SlVqSzs/Oz8tXG5RV0NbbThicSZAIkFbCi1SND5rPmRlXUJLNmYvPE9mYkZVLkJGNS5sNjowZE9RPSI5dSRnRXJXJSg5Im0oakomTzZQKlwvLXI7cjArUyk4YgotIXQvbiJuLy5WTDhDM3EpcjUqVywpLTwmN08laG5qPjsxPWJVWj9dX2UkPFRtLTNHJi04MENdKTZuazE8OGkmRSEKLUE0QWtQMl89VDxwLkNnIjxwOiQ1PD5ubEdiSl0kISIpW3BRbEk9RlImZUFJIk5SSkBCUjMsOTM0Z08kNlFkLzJbCi0tbWZUNSdFY0osRVhubiE3dGRqVT9APUk6T3VhSGBBbjUkXlUkbFVVL0NsOjtgY0FDV1QkZHBtbFYuSHEmQV9JIQotYT0iQmFPRnVPXVU8MypuJFVMcUo7aWpdYD1EOk9NIXJEITZRNU4nLCQ6OWMiSGlnWWZHOGAiRjxQYnFWXVxZT2UKLV9bKE42R0hEKW4hOVNzQTFSSlM+I1c8cTVIWUJOLlNMOzdDQlZJcCZIJ2RkbWRBR0EqPWJRbHIqWi9ySDg5W0BPCi0iRmJybV5EMVZQTEJQbEtrR1hqclEtW1FySEQ2TVEkaHEnJCVYYSpUMldMR05Ua2xCUkApR0M4Z1MyJUUsKGA0IgotYD1qKF0kJEU6dS03KyVQJ2lMVE9GTyVmV0pnbT0sXHRuTzAwSD5VUUZISTlHVzVjbDxyJT0qRiJlZVRpZ29GQUsKLVdYUEdfckxfWGRQazVXJGlzYnUiM0BbUmlSTFM3OylMSW9ETDRvYCteOVBWXmUyTyViOjNTTi8vNU1gbztkJVBaCi02PFkrb0tSRmR0K1xfKzYsVj5xSDhNOiI3YDdvRCQ5O2tfJC5wYEcsSUwkUTBpcyVjdVExUUlxTUhKbVtsITtaYwotOUxuVENXP1hrbkJIJysxKCwtIXE6WFRIW0NBJEloJGNlZlRyOVckL210VEZpRTUkbF8tVUhYakJxWGBHL1VmXnUKLTdkRDJUSXI7Mlolb2BmV1MtaVllIjo6O2JVNTdUXTVodENNaGtrJ0hWJ0xMWl1cVmBiaEJ0IVBUXGFhTCwzam5QCi1HXGNVOkRKJiUzakkoYlgzaUY8dUxoTE9VaFZbPChKNCZgUyxQNWNFRTohZSo6QmxvTiVwblooOmNZMzQ2QS5cawotREgsX1g+WSQqRmshOCMiVVRCKmgsLCxRXEgqJ0lnJW5bPWInJ18lRUtTZ29Paj1GMCtWS0c6SW5xT15cMFIuUyoKLUZEU2slOTFWa2dDM24zZWVEaicpOC10QSpUXCpjIlo7SVw5QUVTZFhMYFIhMSlIRVt1IVk1RWZsUVgzYStHLFVqCi0zaj9oLU5YZyYiNFFvJl9aZDNgSE5uLVV1SSt0V0JZSmo8SG1NJV8uNElcWmw2bUUhTmpLP2UmKixFSDAzV2xJTwotOj1NQllmXFdnTiRyM1pnWDkmakhsSVtmN1xuRSgxYF1TT0ciRiFMOSE2N1JuRTVvIz4xdW9tYUl1dS5oQ0hpT0cKLTE/UmotJUYwRVZpKyojbD1EUF1bTTomZElOMXMvPSQ6YEUkI3IqSzpib0I+aCs+PS1ENkEsYm0mUjssbTM+RGcrCi07Nl44Pi9zS20hOi01LHMtZGNnKEpDJFdEcHE1cmorMmlRTyFkb0tZZUFVOmhLSkFwV0E1JUxVLWlwJUR+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTc0MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTc0MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgNzA5IDAgUiAKLS9SZXNvdXJjZXMgNzQ4IDAgUiAKLS9Db250ZW50cyA3NDcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA3NDYgMCBSIF0gCi0+PiAKLWVuZG9iagotNzQzIDAgb2JqCi08PCAKLS9EIFsgNzQyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzQ0IDAgb2JqCi08PCAKLS9EIFsgNzQyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzQ1IDAgb2JqCi08PCAKLS9EIFsgNzQyIDAgUiAvWFlaIG51bGwgNTc4IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NDYgMCBvYmoKLTw8IAotL1AgNzQyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNzM5IDAgUiAKLS9OIDc1OSAwIFIgCi0+PiAKLWVuZG9iagotNzQ3IDAgb2JqCi08PCAvTGVuZ3RoIDE4MTcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19eKGYiXCwKLSk6IjQ0SyMtRCJZXDs7bSVrOlFfIiZaMUopRClqOkMnIkVMZ2dfN18+JVhVRm9rYEsmS0Y8TVlfI1pDMEVcWCFjCi0iIVApYUBRPkVmbUROKkg0SDlsLyZ1bkYkQEdWUywtQVclQGZRaVZ1Kz5lbFRVTEJadEExaU1UTDlaX11eZCldPwotUGlQWHFOJF1iVEtaLkRRKkktNFI5LkVHYyM0ak8ha1wqI0g5TDhoOV1dOjFuUXFfMVZFTF06OG0kZUhKbTZTOEgKLTR1NCRMQW0mNyRoMDdFWlkrIm1KZlArN2dRR2okRFEsSFE5VHUhKygnRjVxTmVkcj86R2o6b1tVTFRgTFxaZVdpCi0mLlV1c0BONU9SLilQS2IrVFU6UU4yJVZmMmhWXT9laUJSOksrOXBtSztkRz9ccT9zOjB1XShHanFlLiU4RWVQTAotQSNTTk5fZGQ0PDJcIzw0NTgwJm40Pz0xN1U3ZGEqTCFQWT9dPkVkO29fZjheK1JWNXUsQ2kkN05sZ29TWGgxYlYKLUBpPDpmIjFdJXQmUSRKKU4kQz0qKiFuLnVkaSdwJVBoUVBebVRAQ11OKUMzUF5YLGdUNlQuYCVgIzo+S1A3N1tCCi04XGYjPCdkZyplSygiX3AmcGNTQmJCKmI1XjlYNDIqKG5BS29fcSklISs+bVRhaGktVCVJW2dqLC9UR0wnS0UkagotOUpaJ3NPSzosc2BmT0pDPylXQTcyQiorQzlbXTNMMWA1L0M7M1JNayNmMEBpRj5DYl8iMzw5WG1jMXVtYDZWbW8KLTg0aTkoNlZray5gMzsoJiIpLGpBMD0yW2UwXDtUWjsuJ20iJ2AnU2hRJTdcIyMhbz43L14oOz5mbTg/MHJJXG09Ci0oK2tTWGJxWzJZXChvO3BkOEY3R2dcU0EvPEZDXEIlM29aIUJTNnRfJSYtLWtGbDhuSzVsY1dTS2phdSUoVz9ucgotNCFyKUFTK0RWPjBGUy44JTFfRzA1WEE5JVQ1NHVQZCwuK0VuTFNpPyRtVGA1M2EuVzclcTQzLCxXZClQZHEhciYKLSUnZVFTbXVAJ19ERFs7TWk4ZCM7YzAvIUBCX1l1YUVUW3NmVjJOaiZYR0xjP3AyMTBpQl0vc1oxXyclNFQ1UlouCi00dDA8O2RcXF8zImVnSE8oXjxUaUI6W1FpaydSak1pQ0lpKSJUdCRUQ2UqTjlpOVAyU14iPjVHbV5VTFo3WT1CTwotJlxJaUVpSytKcGtmOXVnWDhTVCY9YE02VFpKLEYjY2Uuci9iYTVwI1syJS0nL0lBM0YsIkgsWFltaDFebUAsMiUKLSc0J2ZeTi11OHIoLUFZNFUsMGsoUGVLJ2RfYlFGVD8tYkRUNSlVUlRFWiRsVlNqWUFvJmA3YU5NVjFCWWwic3VoCi1ldE5FZVJsVV1ZRCJFRSlnbk9zREAwP21pVD1aPEplNTZtLyVMbU9DVzVIYXRjVCM/SkMzVVZKaSsqO0FCSXVFJwotZl9kYFU8XkdOT3FLJmZmZChpYCpdYlgzKjRLcFwpWGJGUVs6SnUuWzkza2Rkay0uSXFcXmg0J2kkQlcyV1luL0AKLUA9KmVSQztoczA6Nm5mZjxbI187Sy9OZGtmNWpldUEzSVJsZi1ZPVQ7cGtnXEZXSS8mISJFJT5nazFFRTE6OEgkCi1RXDJsbDBoXW8zIzR0PC0rbFZdaTstYjRqW1IrRT84cUpJRkNicWRXNydmXiorXzU1VksrcUFPY0NDIiwjO04nRwotU29EZDtPbiReSTgwK3ROOCcjbklkSCNIN1UnaTJmRWZTXCVaP2hAVU8+ODQrLG9kOj8zZXBqJFg+Jk1zO2VkcnAKLWI5Wk1rUHBtKWxVL203TUA+OkFoZGomKjFscUw6T2lbaSM9KGxBbEBQT0ZlKTNxMWRZPnIqVVwwKk4+XyE5VzVCCi1PRTwxN2Q/IlN1a2FASTJmL2AlRHJdZlRWW2gxMTItO2deIihccGxFPkBHMkwrSkc6KChzKi0yXT9rUytpUUZdYAotU29cMmskUl9VUCNYcSNFKXFcWGxPUkByazgtNDJPalJNPTchTklMZm9OcGROa107IS8qVi0la2pQND4iZjVNbkwKLSJoSmAjXVY/RmtFVEwnXVphLEVHIiNzcHRgWHNnaFpwXjZkXFFqXnJwbkIyJElmKmhWLSckNHM/UjpmdCphbVtXCi0wVG0mMlNmZzk5ZDxLMmE4PFBPTSlEKzZRSCdBPyoiOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzQ4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzQ5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3NjEgMCBSIAotL0NvbnRlbnRzIDc2MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDc1OSAwIFIgXSAKLT4+IAotZW5kb2JqCi03NTAgMCBvYmoKLTw8IAotL0QgWyA3NDkgMCBSIC9YWVogbnVsbCA4NDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc1MSAwIG9iagotPDwgCi0vRCBbIDc0OSAwIFIgL1hZWiBudWxsIDY0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzUyIDAgb2JqCi08PCAKLS9EIFsgNzQ5IDAgUiAvWFlaIG51bGwgMzY0IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NTMgMCBvYmoKLTw8IAotL0QgWyA3NDkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03NTQgMCBvYmoKLTw8IAotL0QgWyA3NDkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03NTUgMCBvYmoKLTw8IAotL0QgWyA3NDkgMCBSIC9YWVogbnVsbCA2MjUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc1NiAwIG9iagotPDwgCi0vRCBbIDc0OSAwIFIgL1hZWiBudWxsIDM0OSBudWxsIF0gCi0+PiAKLWVuZG9iagotNzU3IDAgb2JqCi08PCAKLS9EIFsgNzQ5IDAgUiAvWFlaIG51bGwgMzQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NTggMCBvYmoKLTw8IAotL0QgWyA3NDkgMCBSIC9YWVogbnVsbCA2OTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc1OSAwIG9iagotPDwgCi0vUCA3NDkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA3NDYgMCBSIAotL04gNzczIDAgUiAKLT4+IAotZW5kb2JqCi03NjAgMCBvYmoKLTw8IC9MZW5ndGggMjI3MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kMiFTbTwpR1VMUwotLiJLTlVZIkhuYml1aW05QldmVkMrcDI4TGAsW1ElTyMxVD4oKFVfKksxOWcpR3VDUmgpTkNuTWQ6Z21COl80IigKLWl1JDlkckE/KiROYjRLI1xlJEoyTVphMTtNMl1lKCklRW8+Jl1qJE9LLUoraWpEXHA7UHU5SjwlZSw6IjFkRzd0Ci1fcCI0aSFNaHNpKVt0YGQrYG5iZjIybE1MW19RVFA3MEEuJUJwWHNQN10iWG03PkJoMW0hKUIuWEIpQlIhcCIwNwotQDFaUS1bWC4/TypcR0FBIzFZYDlXY2AwZmdocTRZQlpDVCMzKTZcZXJycGFMNVQwazsrRDtUOV82QDtlNWJXZiEKLW1mbl5obS0xTGo5RV4kQ1RgXkFwImk2akpXLz9FIz9sKG5jUlV1Yl5ANmZjMU5fU2BtMG9lT2pATjVPUi4pTVJXCi1VTS9MPi5kTW89M1kqbDlhOkpiclc5YzohX2I/RlBOMyhOYGhQRl9canVTR0dAK2NhSF9eTmEwWE1dOUpcJlFoNgotRj5fLmVPUWA7Rl9bTjFMJVYoJTMwb1toN0FmRC5nJEY3Zy4sM1lzTy0xP0lAIk1UZlpCYmxgKEtbaGRkV2ssTDwKLVgwXS5YMThTdUA1cCZXKiNbQHApXyNXRjRgbzAyPjQiLDNHZExabCpXN2lzUl8jVz1KLygpYC0zbitmdTxcbVhrCi0rUG5yN19gMG49OSNJQ0kxXnRbcz5zP1UiOTtLM0xiKT9KJV9sMUhfKidvREk9OzIrIzVYNXQ2SyxFNiVXLj1yaQotMXRKcVFgaVI6KjcwKmVMTzZXTnQ2XHFzWylocj48RCE9P2VYZzdaOExiJkU0K2VganIiPWQpaTsvU2pIcU0+UyYKLWZFPUtUNlc+VTUpJFltcyVNVy9MLGcxNzckTE4pME5eS09CLGhzViVhdT48YzBdKUxtMW0+c2QlWy5SWixaXjZfCi1SOjBcQEFES2VoYjJrTixrNllFWDFsXDc5PkJNV05ZWnItWDFfYWhjMSVbPyszQGtnKEdxZEhXJkQ0OkkyIl1RXAotTiRDQnFQQEpsLDpGKyteU0coLStvN2kxMWBcYlE5OGxLX1dAUFd1SCNocWxRIVMzQl8wJ1sqZ2tyUkMjKnM4XV0KLUtyXVRUWXJILDBAXFRUKydGIUg/NVUuZmVrXUphcTtMaSIvXiEnK2QpMENxOiYlT2Y0TDswc2tZTWM+by1GY0xYCi1FJUBcM2oiLCVqMmFRJj0oZDVLYi8jLC9gMyo6ZVRGTVtZS08rNWs2Z3JoLm1xJlNwOGkqOTQtX3J1PDk8WU9VKQotX15PXzFgV0s9SjEmPSljQjVrTXMrQyNdZGlfUiJXIm5MbTwoQ19IV0I4MUBVYlFpP2MoUGs9R2Y7XiQlI2FndGsKLW9NPnQ+X1xXW0FUWlxZMGItKVIhYERZZldtXDxnTSQ0UEBSJWNyNCEsX2ctLE1YK1AnQ0BxJU9HRDtXVUNIWDJJCi0sVz5ybl9RT142Xi5VLyZbXi5vWTskLyU2NG0iSnNcbiZPNmg5KTNAQkwtQUZBJCQ9WVclaV1jajtGTDJCI1ArLwotcEtHQSoobW04VUw8ZG82P3UrSHNZR0pWRChdKk1SSkUuUyFrPWtPKFVcSjlDLj5ZQUc6XmRVai5uLU9OUmtBWy4KLVAwdVgrO3A6ZFwjO1Q+WD1pYlZYV1ArV0k2U29AaiFHRGxmJmVxNmFfSWVqKitIWl1LMmxmRCwrWCddNSRcNHBICi1bVDhFXFBRMzpMNnJgRC1qVHVsV01CY1RSPnVGJURMKUVsPEVGV1ImLnUlWG9VbSVRNDk1LE5PKCwzNio8ODdqUQotT21USHBmTEhAR1AmUVNiUTpzajFVOEo9NjNlTS1bb1M2SVZkN1ZRLDkxQC0mITghQ29KW25GNjViT2knbCIkYCQKLSUrTCgmZlpLQWFWUEsrbkBac1lPKSltNiIqLnI+Kztlb3FwKTVPakVRJU5BKTtEQFouVyRbV29GIjlwcUZka0k5Ci0yKilrKlE3Vj46VWNhYDhTazg0Zj9fSj9LXDBQdGwuL0ZxZzdaa1lJI1JIPTBabkBncmFXWkQnWjVRKllIODpKYgotPT1EWThoXTUlSk5EWU9nWTZfRkohUERaQGR0MVNPTTFsJUQzY0xvXVViUzFTR1QsT3RSWmA2L1koamc1KTpIRTMKLTtYIihpUTZgZ1ZjKC1haWtEbCdxW1VWWWdAOUtHY2tWQlFdazRyMkItcyUuMjQtSSZON2NPbC5FLnBtJCdiZ0w3Ci1AT2ZyS1cxaDl0PSYybTw5PDJrdUMia18sQWZUJURfQC8oMVZIRi5tPHQoZGslJCtOODRrSUZDQkNkNmYrTE1BVAotPFhlaVNmTStnPUcmbCxCaTlpbDdXJjRkWGpkUnFCJUw+Wi8uTzk7ZihPQTdhJVZhNjwrTjErWmdAZG5aTz8naWAKLUZNPHFRPiU3UygvSSYrbCdFalwvPmV1TFU8J2YlK0xFYTxwVG8uaD8raD45Y19Vb2dnPnU/MjBcTE4/cEF1LFUiCi1aM0AuKidNQic+TmY8WDg7X1lAOy5fbj1WT2dXb0tDISk3NzNFaF5xZy4hV3ErTj9ZTzciSlZtTyUjYkpvTGU3UgotYmEtVXM3W0hPQyFlUmRbPFUiPiJvampmVWVXLDlMXmY6aWxnQTMkJVU0VTNKWmIyLXMvYDdTVUIhMzY6V09QanUKLWlZOFxaSzo5WU0rbCsoPjpmJXVwOiVTckFYSWIvQ2dLQl5RMWZkJWYrJ21lajc5dEtzO3JQQUQhaDZKJiRLYixkCi1FVG5wbzVoSSpfcC10cl5SSiFxPjs/S0dxfj4KLWVuZHN0cmVhbQotZW5kb2JqCi03NjEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSIC9GMTcgNDA2IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzYyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3NzUgMCBSIAotL0NvbnRlbnRzIDc3NCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDc3MyAwIFIgXSAKLT4+IAotZW5kb2JqCi03NjMgMCBvYmoKLTw8IAotL0QgWyA3NjIgMCBSIC9YWVogbnVsbCA4MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc2NCAwIG9iagotPDwgCi0vRCBbIDc2MiAwIFIgL1hZWiBudWxsIDY1MCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzY1IDAgb2JqCi08PCAKLS9EIFsgNzYyIDAgUiAvWFlaIG51bGwgNDE1IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NjYgMCBvYmoKLTw8IAotL0QgWyA3NjIgMCBSIC9YWVogbnVsbCAyNzkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc2NyAwIG9iagotPDwgCi0vRCBbIDc2MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc2OCAwIG9iagotPDwgCi0vRCBbIDc2MiAwIFIgL1hZWiBudWxsIDc5MyBudWxsIF0gCi0+PiAKLWVuZG9iagotNzY5IDAgb2JqCi08PCAKLS9EIFsgNzYyIDAgUiAvWFlaIG51bGwgNjM1IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NzAgMCBvYmoKLTw8IAotL0QgWyA3NjIgMCBSIC9YWVogbnVsbCA0MDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc3MSAwIG9iagotPDwgCi0vRCBbIDc2MiAwIFIgL1hZWiBudWxsIDI2NCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzcyIDAgb2JqCi08PCAKLS9EIFsgNzYyIDAgUiAvWFlaIG51bGwgMjY0IG51bGwgXSAKLT4+IAotZW5kb2JqCi03NzMgMCBvYmoKLTw8IAotL1AgNzYyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgNzU5IDAgUiAKLS9OIDc4NSAwIFIgCi0+PiAKLWVuZG9iagotNzc0IDAgb2JqCi08PCAvTGVuZ3RoIDI5MjQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJDIhU208KUdVTFMKLS4iS05VWSJIbmJpdWltOUJXZlZDK3AyOExgLFtRJU8jMVQ+KChVXypLMTlnKUd1Q1JoKU5GMDhkOmdtQjpfNCIoCi1pdSQ5ZHJBPyokTmI0SyNcZSRKMk1aYTE7TTJdZSgpJUVvPiZdaiw9N2c+KWBFOlB0SC80dWxbV0o+XmQ0SVJCRQotUVhUI0lCUm5NUiMqIkBXRUtJYUIqWkUkWFM4MkxoVl1wXE5ANS9UZS03XWNJbk9DRTI9XS5AOShDVU5OQk4zP2UKLS1uOEMnIzFJalxZP2VULGNAUS09TzZNb2ooZW0jKzw5VlVfTlFMXCwzWGkmPmZfNnA/IThdXmVfYSlYMSJYL1xACi0nRl1QK2k0K2YiYT9WRz4kSjxmJ1giOjQzKEJhZiRhdGtFZzBdKik1VT9KTyUtL2lWVyNwUlQ+cVhYayVpOEZyLgotNXNYPEpOQSk9MFomSV9BX1ouPyY2b2I8N0svPUFSS0Yvc3BZWCNMTWF1UERqUC1rayxfZydFMU5AQSswIUtPR0cKLS04TDprOU8vSlhUdXJiOF9GZnQ6VzRNRUxCVEFzYTQ5NUk1LEIxcD4vZStLQVwzbU1sYHFIQDU2TD9fMmNDMVFuCi0sKUVJPilEUjksXSdscz5TJyUxVTpzdC5VJG5BZE5icy8/ImdiRmVAV2VkbmhLNEddTVhRbzBfVScpIzkkUyUxIQotPU4kbUJNXlpJOF1ydWlZKC10PGRrVnVcXCE0XCNDYjJjK2NiVWFVMCdkTi9RQjAydHVDWDJuLydpX0FHPDI1ISMKLXJRMHNPbmkwWkM1ZlBbWl8rOEdeIlVyaSFaQW5POShjZFZcbGtdRUpGJE11OWJOIUctWFhlcis5KjtsbidbLjdbCi1aJDc0JVZHWS5JMTtAbypsQ1ApXGgyIihNLEFPZU1PIlpVOzJSPyU9X1lfb0ZYIkIwXSIuWVgxYitoWUU0SDhDIgotNiZWZU9MZDxuLGE9KE4wV040TGBtU1YyUTpfbyIrKj5aOjpfL18qQFlPR0JJL25tWDFJbXNJRkYvXylBYihzZFAKLVk2YVckbi0vb2lZYUMrSFItbGZXcUVSOyROdTcvazFedUxLSk4tTkpQSDlaSFkyRVNZOkNIVTtvVyxSK1lHTko6Ci1FLGxxM1g4XDZuQ0NGZ0hXUzQlckM4Zmw/NSxCa3Q2WU9uLy0kU19XI2dEPT5LWDAyZixWc082LDslTF1oSmgtMQotSHQxOSVjTjFOJFQlQCJyKS5pPUpYZzRuRSUxRzhYP2wiSzVeaTUzJD87dFs+Q2s4WycqJWU0O2lzZi4iU1hRXycKLWohSj9jIlZGNDMyZzg0SWQwPXFdaDRGOlchc2xwQms3ckUlKzdrbVtqdTs+PF1UaTZhZStBVF4iLkpFXkBBV1VOCi0xdCVpRkhJUEZNQlVdMyxFZEU/XERbXigpTyQ1cjlBSjQ2biUnUjFlVDleN0JocjclUmpgTXBuX3E8MEdaO1YzZwotTlQxXz1cQm4wMmU0cUFyKU04LjVHRyZIISI5PV5zLGY7Mi1SPWpyOytrX1VJX0A1TDBhamo5M0ovU05GUDJJTSIKLWtXTVpZXTxvcSolODVgRyJWQy9jNmcjVE8hTWBCbyVRMkNdMUBVOzpNQFkoRVw/KlY5SHFNUnNsdDo4XFQxKVFwCi0lRVIiXkJZXW1OLlsjVylnJ2hCcCZXRVwrcEdDWS0oaElHcTI7QzRhJ0g7WzYpRzo2bVlxMmA9Xy1uaFVGY09GPwotInJDbU5UZSMlKVlkRz5OTDdBXyEsTCZdPDsiLEpRMFRINk8oR19xTixiSSU/XCYzN1o2WjlYXy5iJDtKZCxHdVIKLV88JGsuaWszTi8sL1wlYG06Nzp0ZF4rYS0lT0gpcjI4Z291YWpMPHM5Mlw0cFltOytqZnRoNmAuNERKO2ZvN0BpCi1xQDViYS9DK05jXj9lcjY9Qz9pKktHRzdtJlglTS4lQltoYyIvb0VFPi9PTW45bFRWal9dNzx1LEEmOCplLlUpKgotXGtzKmk2ayJlWUxWMXVGN0dPVSJNaWRia2FsY3BuU1g7I2NpMiI1Qk1HKz9YR1Y5MSMqNFExdVhCMztcVDdbWnIKLT9cVSRtSTQ1LztLc1hoPVtVbFtNa3N1cCdfN2AsXzclbSFtKUhFPUJrZ1dJMix0OGUxOSo+OCxUMl51ciVZNF0mCi0kcTdOWEpjTEtwSmZRaVMhVVhTUTVaKFJealNoIkNoTVlBOHJYNWNYSy5zL0xWbkRTOCskblw0RFtGUTQqSEYmXQotTm9QXGFFalFeXWs7Kmc/M29oWzJKamReblspIyxBMi02SCQxWGFnMGErSi5AOFlPWzVWOEMyLDZRdVY2aUwsRDcKLUtWOytzbTdUNi1tLm0mUCwwZTZzNDBGVylhdTImbWZpNlRQPFsibl8qaUsvK1RIX1RKJ1s4OjFIRTBINWAxQkE1Ci1tNnJtR2x0SG1FZjRsIVQqZz5PPD9BTi0jIyNaKXVcWU9FRCtIZmVdRXVPJl5vdEpQYyRuRmJfaSVsKm5OZTdGYwotKnQ8JGU7P0o7MCUpS0tsUHRzIzUuQ201NiYlSEk+TDA8Jy1FNlclPS43QVNAYG02MW5JZCpPJD5zZGtaLEdwPXMKLSZZWE1pLlBTdComUl0tWWUldDQmOz1dLj1cQzIiIUNkZmQzNHNbKjBYcGglP0okOlhzKkNXSUJpaSdpRk1nJixcCi0/JGklXVkxOz05WGNPQV8zI1JTOFhzb0EoXy1BMWdjQEYpKSRuLjlcXDciJl9HVi8lPkcwZkxkMUljM2E2WlU/UwotNWg0WysxWm10NyJvcW5aXi8+JkMwbiQwb1glKDk5PTI7YEBAWTlyKT9ib10jNjtaS04mZXMrXjVmSXVMOCkhanIKLSlFZVByKD8yQS1IWGlaIy5xSjUzcTsuNSQoZy47LUs0bVBwSnFxbnA6c3QrS2pjaFZXRm5mTloqIWklVz11M3Q0Ci1WW3BadCRgNklOYnA7c2tMN0lhRyUydGBzMUMrJW4+c14mKmE4ZTdJVkk9OHNuN0klWU1EYCs7JHIuLFolYidzbQotVCVySjQlLTk3ck1fWFFUaV9cXFYwIzw0cSJER1xjKXU2I1paLDxnOzsnKmEiUEVPSmxvIUdDbCdaPD1mRT4mNmUKLUU6Q151aGpPXWluYEUiZllvWVNnLioxUEFeMVJrU1skQFh0JnIsNilOSWhqbFxCPyNOVXApJC1dW0RvSzMzKFZpCi1wSC1fYStRNyxdSyZbZCIwZ246KEJvUXBmYVZxWCthRiEuRkFvP0ZwXzpCJUE9cl51YWI4My9pPzcqaFdPZy9AVgotLFE8M3E/RSVBZVh0YyNiJWREZzcpQGphKWF0W3FpI2RDPkU1bXIvM2ZcTEVOKlNSWWY7N2AzTjshPkdeKiNqPyYKLWwjdUxFXm42dXEuKUFQMiE3PHIwIWpEL1RSM0E8ISwwLE5JLU9eNzZcN0RMR1szKC9wNiRwJy1LVVJSWjpFUHQsCi1PP2szcFU7KU9wMTFyQSFpLTtRQUBjQXFcWDkrX0JSMWlWbUVpYG8zP3RrV3BrVFFVcChfRk1jLyY0Kl5ZJWJsNQotV0FdPiI1MWNZLldiJmNEKmlYKjI/OmYpMjdXYj9uJz0lLWVfWVNJc0M8ailqTGYxX0E2RmJ0LFw2UEJOQE8wTEsKLWRsQlA2SGYwLCs3XGtUcyYtfj4KLWVuZHN0cmVhbQotZW5kb2JqCi03NzUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi03NzYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDcwOSAwIFIgCi0vUmVzb3VyY2VzIDc4NyAwIFIgCi0vQ29udGVudHMgNzg2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgNzg1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTc3NyAwIG9iagotPDwgCi0vRCBbIDc3NiAwIFIgL1hZWiBudWxsIDc0OSBudWxsIF0gCi0+PiAKLWVuZG9iagotNzc4IDAgb2JqCi08PCAKLS9EIFsgNzc2IDAgUiAvWFlaIG51bGwgNDgzIG51bGwgXSAKLT4+IAotZW5kb2JqCi03NzkgMCBvYmoKLTw8IAotL0QgWyA3NzYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi03ODAgMCBvYmoKLTw8IAotL0QgWyA3NzYgMCBSIC9YWVogbnVsbCA3MzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc4MSAwIG9iagotPDwgCi0vRCBbIDc3NiAwIFIgL1hZWiBudWxsIDY4MiBudWxsIF0gCi0+PiAKLWVuZG9iagotNzgyIDAgb2JqCi08PCAKLS9EIFsgNzc2IDAgUiAvWFlaIG51bGwgNjgyIG51bGwgXSAKLT4+IAotZW5kb2JqCi03ODMgMCBvYmoKLTw8IAotL0QgWyA3NzYgMCBSIC9YWVogbnVsbCA2ODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc4NCAwIG9iagotPDwgCi0vRCBbIDc3NiAwIFIgL1hZWiBudWxsIDQxMCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzg1IDAgb2JqCi08PCAKLS9QIDc3NiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDc3MyAwIFIgCi0vTiA3OTYgMCBSIAotPj4gCi1lbmRvYmoKLTc4NiAwIG9iagotPDwgL0xlbmd0aCAyOTUxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQyIVNtPClHVUxTCi0uIktOVVkiSG5iaXVpbTlCV2ZWQytwMjhMYCxbUSVPIzFUPigoVV8qSzE5ZylHdUNSaClOSEcjZDpnbUI6XzQiKAotaXUkOWRyQT8qJE5iNEsjXGUkSjJNWmExO00yXWUoKSVFbz4mXWokT0stSitpakRccDtQdTlKPCVlLDoiMWRHN3QKLV9wIjRpIU1oc2kpW3RgZCtgbmJmMjJsTUxbX1FUUDcwQS4jRFkyOmhrK3JVUzZgTixOVWohKHUoQ1VNPWRcT2ZYCi0sN2tKXmBcViZTTGBlRCsvXzpBcUhHTmxAU0hLLVFIKmxOLFhNW1RfVThbPSQ+L2diQzh1QSYxVGBGNDpOP15MdAotM14mRW1mYSYndDVbPDFVLEIyaz0lKVdAajE7ZG9IbSV1RVpNQHRgPSNZSFFYIy9SbCspYilJTnFPIm5ySjgwdWgKLT90Y3RfJEExVWxZbXBrZGo6bT1sXmVjdS45X2RnNE5eSWhmMmliKWdrVm4ucyciVSVULmBmVzFYczc/RiYuWV0nCi1iY0BlXkdpVERhSytSPChOOj8wWlopazlQXmJTWU4hNlJEa25ya0xPL0NNSysxQmpJQ1xnZSJfMURxSVlNUFA7LgotK1xBSlkxRkxVPVBWVS5tITdxXj5QKmpKJS83VVspMFQ+JD9qcWUuJV0kU1ZQWCpXYl5lQmBmLyxfWlRoanU8ZEUKLSh0KCNdQEJkbltfbEdWSVEmVmddaCtFRlxUTVdsYWoiLzNbZGFiQ0VvdEBATGF0U2Ukci9YNG0vUDlAJF1FLCNCCi1mbiNpcUAsX0NsWjRlLTFpTi1lU0wual1CKWInazlnRFonM0NTJDoiQzZdcV9oRWQ8aylAIiQiQlZnVEJvUj9RRQotSzRQS1swUy0jM0YwUlEoRUNSUy8kVjxtZFVPPkA9Yyc/QiZcQSdpcj0oJnRgMVNrZC9McyQ2VlovSik0RCskKXUKLTkqMyZ0X0FScltfMWw/dEA6TVI+NCJJVmUwRyJgW0tTczNmJmUpcnE9RUBtLT1IMTRGb0sxO2I+QzAvLDE4U1BxCi1YLnVFTjZKSUdBQHRNYGxaanQ7aG42NVtXQWpeWWQvKSJvT2dvZURFQlxMVmkwNG1iVlpEM3RYNFAoPnNpUEBcYwotK0AzJVsnNCNpI0w8QmouUGUvUURQM1xlT2crQW5ocGUjPEVYWFYsMDxrYWI9O1gpLlpsNlI1amJSOThbXT44PisKLU5eckQ1RmhIOVpLJE8tVDxISUplLyZTRj5eZWJEI28pNVkxYi5CRlxvRi8lISU+dVkiMyE6MlZCMXAhWGxGL3ExCi1IKSpsLTw8NVgmKWhlPiFrRC5HL1ROJHViK2ZoXmRhODUjY2tLYFpIVzsrLHBEMCtdVkZUMXRPJEcqKWo6V19tVgotJ3FRP0hSVE9SZmZ1NjAiSU1rTF5UNkViUHBwKWldJDVGczMlRGdPUFY1Ml0zKTRIZ2tOS0sjXFZxQlxGTUVNK08KLWU/NlRyLGNYYFM+WmFGO1BkN2A+RlxYREkuU1JiblUiOFItKkJQZVFUWzlWbmtdWTtSNj5SKWI/Ml1NRE0iMXRbCi0+ImpWQVpGPDRfOklDOUBMIVUrXlQ6aignJyM/XzckSUkqTCgtcl9uNChVXEkmL2cqKGtoPU5yRExKVDBcNChCJAotKFd0YVExPGI9KDQ0ZCgxIW9QSVhrXU8haSNtT0xnPl5VV2JrVyJlTG0yKzlncU4vW2gmLU91aj5YUVM7IlktM0cKLTFqQSJnaUBsWypKOlxdTkp0KjQiXSdiQzwxKjgpSSNbS3RYNkFVME8sOFxsTW0xcmVITy9QQCFUXSIhMWRTWlQxCi0uQllKLWZPVjNoIStsXSwxY00qNGpQbysuNnFxKFJvSiRuXiVVMmZLRVguYVEiaStZV0pQJC5PJltgYFE3KHNZOAotQFtVIigwSlRERWpZXVNWRSxESTgrM2omZDMyW2xlTS9AaWZWUFJabWVbaTptQ0EkYCozK2NWZDk4YThqJm8sOW4KLSkqI2BoMjRoZi87VCdkcyVNcWc+N2NgJjhUXydFRWVTSU8rbUIyQztwKzQyYTcyKUUiZ3I6PEtrcS9qbkFJXnU8Ci0yP3JaayhbN1cyVVNwRjZkSzg1cVM/T2YqVWZzLT5cSDg0ZzZdR21rJk4uP3BtMmQ8YVtaYVdpIit0WzQuU05PaQotIzFJVCtLOUx1ZCFDMF1pLnVCWmIxRyg5QideTUJUXEBKPyxAa00uODJfcmQwIko8MmtJVDxVcCRyczkxNUlwXW4KLUFsPEVII3MpSFtKQkU+LylmZW5tUHVJbU81O0pmQUEtSjE1TVJMTVlOYFQyaVFYdFwqOUJ1cz5RPiZMPTttTFVDCi1xI0lUaXBpSjtoaWIjKlM1VCZoIXItL3UnOyg9aVIkWVRtWUpST01vVEFtQTJkLXRJc08vO05Ybm5SXC9vPVJfWQotQTJMLlgvTEFgRT5CNEJtR2gmaChOXjpSUjtGJG0rSnNpaitoam5lLUZZR2ZpMlQkZ2lYWipbXklTKixeOEw+KG0KLUBqZHRzWE5eQigyLDkrLTI1RmIjIi1URVEkKyQ/NmlAbE8xLlkoaTpTQChZIS9QSENgcDhuYipeY3ReXG8lWiMsCi0lLHJCYDFxJEZFWk9qdGpNV048USVUTzUjcCYqcychPzM3K19CViksTiFdVnBvPWJPdDBcYmh1O0soIUY3PmFBSQotSy9WI2tPZmc9Om4lUzFDOT10W3I9PUZGZC1JKnI9YEVqclRVUVQyM3BZSyNeKlNcSl9dW0lJbzclaGMyPDJBY2AKLShzOydkQVA8SXRCcEVLYEA2NlVnR2Q1MCJwZ21PbDpuXkRrKURGL1szKW1jVDBYUWVHNlszNXIhT2dPZ1hPUWlvCi0jXDctI0dWWWFGIzUrL3VgPTpEUSNzOSNZYWRlaTMrTG1OMjwoNl5ST2FALkgocG8+cCxNN2BSXVdmRi9XPjpVXwotL0ErOWc1W2FlQGZlSz5mPT5EYmslSl9KIWsxcGlELHBvKStFPSU1dVAqXlxUWjVMdDdsO2InbV9OQEsubDstbVkKLVk6T21kaCNqLnEuci5AV1ltXi5sTiZ0W0trVWRudV5xTEBYLkklP2NkUWw+QEVAYlAzPGdKXkMrJTJAPlY5R3M8Ci0iOV4wUGhCXUwvIUxea1xGSUxCMmp1PFxNLUFQOidcazVZcVI1OXFoST1yY2QoMFlvKiUmPTJuXCd0bC40UDE5cwotX24vNiI8V3JCO0Q6XisjODBGQGpeKUooW1hHW1MwMEllSXRUamtuL1hWJlw4VSotKkZLKCkjO084cTxtZzc4WlcKLVA2WDNINjQvTCFtU0gqUmM1S1tXPCFabmQwOC5dKCZxWUArJGZQMjNLY202KjY/bDYuITslPXA1WDVYLDBhZDJvCi08JFsuYlplIyFBP2dKbmMrKkxJcGRuLVNySj5kV1ZwUy1YYl9cbm4hYFBgO2hUTjBtZVskaCs8MGBvSzxwM0IjPAotPD1EJVsnUjBRWVhGaUtVMUw8RmltWj84OWpOcCFXJkw3bm0uaDdkR0ZGYVc7TFhDbjc3TDdxJzRuTklVRCZJNmAKLVokYElOblwlJDooL0NSZXFxJUBvIVEwJXRjLSwwRDtWSEdJWCwyVDwyPCwkNk5kSih0IT9wPmRuXFk9Si1mNlQoCi1iIkpeNzYja3FjU3MtKkQmJGJZT2w1b2hPLyRhPyRXUmpKJz1uK3RTSldMRX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzg3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzg4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA3OTggMCBSIAotL0NvbnRlbnRzIDc5NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDc5NiAwIFIgXSAKLT4+IAotZW5kb2JqCi03ODkgMCBvYmoKLTw8IAotL0QgWyA3ODggMCBSIC9YWVogbnVsbCA0ODkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc5MCAwIG9iagotPDwgCi0vRCBbIDc4OCAwIFIgL1hZWiBudWxsIDI1NSBudWxsIF0gCi0+PiAKLWVuZG9iagotNzkxIDAgb2JqCi08PCAKLS9EIFsgNzg4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzkyIDAgb2JqCi08PCAKLS9EIFsgNzg4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotNzkzIDAgb2JqCi08PCAKLS9EIFsgNzg4IDAgUiAvWFlaIG51bGwgMjI3IG51bGwgXSAKLT4+IAotZW5kb2JqCi03OTQgMCBvYmoKLTw8IAotL0QgWyA3ODggMCBSIC9YWVogbnVsbCA0NzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTc5NSAwIG9iagotPDwgCi0vRCBbIDc4OCAwIFIgL1hZWiBudWxsIDMzNyBudWxsIF0gCi0+PiAKLWVuZG9iagotNzk2IDAgb2JqCi08PCAKLS9QIDc4OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDc4NSAwIFIgCi0vTiA4MDkgMCBSIAotPj4gCi1lbmRvYmoKLTc5NyAwIG9iagotPDwgL0xlbmd0aCAyNzU2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQyIVNtPClHVUxTCi0uIktOVVkiSG5iaXVpbTlCV2ZWQytwMjhMYCxbUSVPIzFUPigoVV8qSzE5ZylHdUNSaClOSl1jZDpnbUI6XzQiKAotaXUkOWRyQT8qJE5iNEsjXGUkSjJNWmExO00yXWUoKSVFbz4mXWokT0stSitpakRccDtQdTlKPCVlLDoiMWRHN3QKLV9wIjRpIU1oc2kpW3RgZCtgbmJmMjJsTUxbX1FUUDcwQS4jRFkyOmhrK3JVUzZgTixOVWohKHUoQ1VNPWRcT2ZYCi0rUzVwTDdUNiMxamQlQS1hYkI6Nzg+SyQxJWUrSC1EXEwuXTBDTS80J2ErU1doViFsNUU3MWhILnFuUlhOVUxvIwotM2ZWI3FaSEIiUDpnVXRxSlBwN1QlM21QbC9nZV1VTlxBNCY+WSwnWU09QkZVIlgqa2wqaGNBbmtrZFJWS0QqNmcKLUpXdFBdX3NeN0xwOl4hc2s1KWdcYl1gdT5jaHI9Yl1oYC5ucGRXLEZRTWk1ckdadTYwbSEpPmpfaVhAYSckTSEyCi1tJXVFWk1AdGA9I1lIUVgjL1BxSilbPUdlVy9pVTJNbnFES2FlNidWI3FXQy0xbzRcIV9PZSksM2tAKStiL2lXWAotTCo9Py9ZKUErZ0NwIW1DKiYwYmlNLS9YSSRtPl4iMltvPnQxbmsqVCZEL3EjQG91dWklMjoqRDJxOCNBXmMjMUIKLWxrNW5NOy80Ni8lNWBKWDhdJkFRbyVxY2hHWiQvT0psSytzO0NKam1ePGFWYSdfUD88T05LU2BsSE1qMiVkU1onCi0zJSopby8/VWNyS25XKS1qMEZGQ044WGQlUS5GLD5iZDdLVEU2OXI3TV8xOS1XQGpGXkwnQz00KjpDIzJxb1VmKQotaVhOcG5gQmNuNzFFYjxlKUI1W1dLXCVUZ0UzKFpOImpAa2xtKC5iKi9OLi5cVStANDtlcmktMCVCc1xNMG5tTT8KLTc+ZThVRnVHMU9maXVINDo2VydTbj5bcStDQkhKPGppMDZXW2ZYLSZYRUYqWDJyIk0iKDlaLkRXK1NjKFxWU3EsCi1rLXFrOzNXb05qYWFXVFZuQjBGRFVGPWhUWSFFOCQyW2dvcGgqdTQ1MWFrKTRaPGErQz4iWVdpIzEqKT5rPyE8PAotXDVGPCQ8MSRRIzRTNygqP2c8cmViVyJrVzRsP2tWPThlWlFcbmZLazJFTig2VSlKYiknPkV0S0JuQyg5TCNFI2oKLVlVY0V1amRCLDpZNUIpK2deN2QvTylrWUMmXSNcL2ZLLk9gay5SdS4hVl86JmJjNCYqcylrWDo4aWRKQSwpSG11Ci1OMHFxPi8/cmJTMXI4MkhsLnUqPkdqSUFmQC9zPGhlV0QoKG8nRCFKYCZ1IzZTNypydCZGKyQsaGU0SyZEVyE3RAotOCx1ZFk6aUhucWFOWnEnYjUlQ0lwTz1qYGtKMixOSEdfOTxJPzVXWzBoNFJVTmswKD01XydgKU9DbGlRV1NVRScKLVg7RCQ+Q2ROdVFKNUFrVzZFImtHQXFSWCIlMDssRDIxUnNKUWRLYlIhUG5GNyMrL0liQmw+VVMqNCooMkImcUxiCi1uZ0M4dTQta1RuJW11T1U/UnROTiJxXGNrZiVEUGBNXl4zTGByPkZtWk04JXUkKFIrLkouMFMpI3B1am0hak5rRwotYy9BQCsjKW0sUVhaMF5EZ1hAMyFKW3JcKUciQSZvTV5VWXQ9O2RLOV1WISVabFZfU1pjLD5lJ2dmaTAzJVc2TmUKLWEtPipbQUdVM0tCX2lFKFVWSTooVWI/RSdyJSJmXzBHb0ZncC9CbiMjZlZuSipXbFtiLnIwIi1hV2YvaVE5bS81Ci02KDBHVTdGJj9rOFNENWZgR0RNLTVURUIvL0hjRl0xSkgwPjpTcW9QPVVdRVw4Mk02OmJGNlhYZD9yLTsiSjJSUAotISRJOEBqUGc4PEItMGVBRkVrWEcxY3FXdWBNOydAQG1ydCdTZSxeRSg5NjpaK2dBOD88SzA3ck9EQSksL0MwIz0KLStJW2pLYGBzLmRZMCJeTGBLJChKInU0KEVhJT5XJz1pJlVLQCxjVVQsbF4tKEo5UGxGLj0uRVFgaitXb2YrKyEhCi1AQ0ttcTMvZiNTQkVvaDhjPCNET18qRGZmQEBUQmY8T1VsdDVaQTEjYzVbU1BrczNFQzZ1N2AwVlRHIj0wTzFYUQotUDBra2VQLiooKzZiK15nWEFVcXM3bi1JSy44Xjo3aCF1Jzg+K1hUTWpvclE1M05IUTUoWkl0PVVXaEZJVVc3VkcKLTlEcnE3VHIsSFJSSCw6Zkk+PURZSVNTOkZHNmpDVzE2KiE1J2Z0RkxfLjM2Z1EpWlNnMD9MW1M5MTJvT0tfZi5RCi1SXVM9XV0hPkFdSUJxRTBVdCJidGxFJDJSKVxKcVo3cG1YJTlfI1FSZFN0Y2hsImFpPmQ1JS4+LlZyPD0qQ1hrbwotRSMtYWowRlw6XjReJzl1Ll9BPmI4MVEtNzMwZ2R1OkRyPVlDWlFcIjFabVJqZWhoP0I9bSoyLWllJmUkYDc/LjEKLUA0ZlcxJj8yKEcsbzZCRU1ec0g3WHRxPilSdDFwP2k1VVNSS044c3E2cmdSRU5yLHM/aWkjMXA0cTMlbmskKFonCi1GPVslNU8zSlEwLm1nRUtfI1w5dT0wNmtuJyVlL0BJMHI3amhNVSZLME9gb2tNK1JDXjRBZ19DOFdQcGYkcWdZLwotK19LWTtkb0hUXjF1VSRrSzFKcz5AcDsyMFoiWWRkUDFfPTQ6cWNYaFdDNT1aOm1FP0xXUVVBWEw3J2U2YkAsOk8KLWlNS3AwQGs+aGtTSTEvVXEkLHN1UGd1Y29rUW9mRj5LYEZYQiE4Llk2OEVTJUBBOWAqY08mVTsvTztrWmtmMyMtCi0+WCQiSmFdbyc1XFgvUGg/dT4zMzA/SFIzQ2FXRiZUMmI2PS0wazVhRDwtKVZVdCFZJVReKjlULUFbSDIzJjlVTgotZ0QxM2hRUmxSLF80VDBkR2srNzg4LiJXIj9BTidhWF5WW0xsaXFXM10kP1lEJ20/YmFcLzI7QihfKDkyXFwnZ1kKLTJVUm1xYWpQTD1aWSE/Y1xcL2F0MihCMjlYOyV0cUZUdEoyS1MsJG87VideRCdWaislNzspXFBraiw8Lls6dS5vCi1cRyU0IWU3SWxEL1cvMClFPG0rRDVpaVRIRFdycGUlPWcycDBvVXBRTWJVJygoNzBWOFQ+R0FfUms5cS4jP24iPQotMGMiWWlvN3IoSydbcFJSI28zYUdpbFdXaDUnVjVBS0VWQW5YL2djbFdyb0Q+OzddbFEicyxrSGpuV1xtRDhmWD8KLT0sdHVoPjFfZ1ljPEFIRmRdYGhEJFNDLls2KXNTWj0vLDIrImQzbSo8IUJKTV9dTG1XKjpWZ04vaigqK00tOElGCi0rK15qXjRUNGRXLUpgKytjUEY9PWZuaW8oW0w2QWgjRTVAVz1TT048N1xHPG8mLX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotNzk4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotNzk5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA3MDkgMCBSIAotL1Jlc291cmNlcyA4MTEgMCBSIAotL0NvbnRlbnRzIDgxMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDgwOSAwIFIgXSAKLT4+IAotZW5kb2JqCi04MDAgMCBvYmoKLTw8IAotL0QgWyA3OTkgMCBSIC9YWVogbnVsbCA4MjMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgwMSAwIG9iagotPDwgCi0vRCBbIDc5OSAwIFIgL1hZWiBudWxsIDcxNCBudWxsIF0gCi0+PiAKLWVuZG9iagotODAyIDAgb2JqCi08PCAKLS9EIFsgNzk5IDAgUiAvWFlaIG51bGwgNDIyIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MDMgMCBvYmoKLTw8IAotL0QgWyA3OTkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MDQgMCBvYmoKLTw8IAotL0QgWyA3OTkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MDUgMCBvYmoKLTw8IAotL0QgWyA3OTkgMCBSIC9YWVogbnVsbCA2OTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgwNiAwIG9iagotPDwgCi0vRCBbIDc5OSAwIFIgL1hZWiBudWxsIDY0NyBudWxsIF0gCi0+PiAKLWVuZG9iagotODA3IDAgb2JqCi08PCAKLS9EIFsgNzk5IDAgUiAvWFlaIG51bGwgNTE3IG51bGwgXSAKLT4+IAotZW5kb2JqCi04MDggMCBvYmoKLTw8IAotL0QgWyA3OTkgMCBSIC9YWVogbnVsbCA0MDcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgwOSAwIG9iagotPDwgCi0vUCA3OTkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA3OTYgMCBSIAotL04gODI0IDAgUiAKLT4+IAotZW5kb2JqCi04MTAgMCBvYmoKLTw8IC9MZW5ndGggMjY1MyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJkRnblhSblRePgotVG5NV0QyayxJKDFXZGwpQU4lcjgmNk0lQSgoRC50aVQzXClUUFE8aSIlQXROWFsjLScpaVM5KGJHPFhpNHVxN0gKLT08V0wpNVlXciZOK1JWQGFESHFTTl5rPUBhVkcqbCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjtyMTNNcCQjRT5rL3IuMkVqM2ohLF8kXGlfQ0E8XCUxbXArIipvWmVCKl5kPmRkMAotXCluKkhVQDEnbEJLNGUsInMhYDtjZTZqL2JzbzEpTkNWRXFVN2hSJSleP05EazU6LUc1YSY4WzV0aCVnJUhBU3IKLTByc1VHO0QqaVk7TmVKZlk5S2QhK1lYOk0paGwsJENvRTVJbjZkJTohSjZXKkpacVxKMV50WztiLUBpTmQrVTE1Ci1AayhNOU5lJTJRMFRLWWE1V1RBNSE1dFE/Sy1PcDAtYzdYVDB1cUxbSkN1NVlHZypMcTZRamY1NixDPzUvZ0ZmMQotWVZvJC01WD9ITVVQK1hmOG4xc2gvSGMuXWZKWks3MWxhQ15vKDlhJ042MV8vJ0V0X1IxNypdckEpTz5daUdgNkQKLUw1OGBAJ0oiMjBiVzphMVVELF9uX206T0ROJEIkUjonOlk7X1FzWSNqW2lGbl9nKEUwJVRBYjUyJTZeYD0nKUg9Ci0hNzNFW2RDQCtNWCdsInMzIj8lQGF0YS5BPCtxUTtlaEctQDo/MExmLktySnA8dS5PWEtHLl9CYjBqPEVLRUhsSAotI0VBQmhkOiNoLyZGcWM/Wz48OVslVDhPaSY2L2dvbCEpN1M0aV04ZG03I29ZJTNzQT8xTEcqT2dIKnFkQU02Lz8KLThhVWphOkJPJD4xMTdPUiUxUUwsWnJlMk0uQVJWTWRrSWBVM1M+VUw7QjFFZko1UjNmJzwnJDE6aVovSDR0IWBmCi1fXlouISldWT9GMihfYGZOajsmcllEZFAsZmNwcGpnM2cpIldrLE4vXTtsQDRLRlEpSyRPZ01cWGZgUERmXk1hRgotZWhgdUMyaV8mXUluWWlTWExwSiNpO2VIWUxnaW88YHNEZz9STzBjPj9wSCVJM0FzYCwkUTFNaiYuSVRIbTQ7JVUKLWMuNHI8X2xUPGJOVDVFSj5oL1tjWiljN0hjKiU2KDVzcilgaj9XcGkpMj9QR08hTFguXEYzX09lQVg6RGZNaVAsCi1lUUErb1NcNUlLbS5OM1ViYDYtRCVdU2ZjSitCbTBJMF0hbCNqKmslNlYtLj1tP2tDJk4uaEBGO0RYPy4lWyVWXQotLiFTcU5vVFk3QFxeRzNUW0VFOlBrPF8jJUg6WmtnWFJeUFQ9Tkc8RzViXFs5WyxLQnVHYjFlWWY2TSI4Ljg6Ym0KLTJiRnJtJ0M6MjgzOjNZQ2BxUF1xZmRfbmIpYD8sUyQ2OTAoSlBXaU8vOUksPVNnZHJRWTlgJj5HSSNYXyEsWSVUCi0zPypgMVA0O1swbDM4QilyNStoJWwlP1EpOkNXOkZdO1QxYlRxWmQmVmY0YThrOjYrb2RPWVR1Kj5lai5UTUxjaQotLlJIdGsqQlhPQSc+cCYkJWwiWy9MPyttNVBGLTVqLW5VYzNrIVdeMihiWi8mWDsvJ0xnPzZSXjc0XygxLm1gN0cKLShnMjE2Q0lrXShXQDBBciphP203aU1Ca1ZFNjk0ODhrRksvOzMzajZgIT9EXURpTyRfMzQmRERcPElrNEFsKmMmCi1YcDFtRj42OSkhbCRZanIoK05CJVRRQ1xvTlJQaCNbMyhLJEYhc1RgQGhcRk1pVC5uX1BnJSo/VVpDUj07Yz8mNAotY1AzXVhadTVBRGlGNiRtXnJXbFEqK1ZybEUrZ2tcMThBS2xlZUNMMCMxJi81VTsxYCopWHAlKzEuXmhmMyM2XCsKLUs7IXBZbS1kLyErV0ArYmlGJkBtSTBMODpPNE8oSzhqVD0qVWhBZy84ZkZDRmRjR3AxQWUoal9QUnBeNy9BZCJoCi1ZJ0ZUMDJGZjgoK3AmIytfcFdqOS4jQnJBN24oNkZLK1ZdZCUwXzxrN00qR1M/bkc+Tm9lKyYlZFdfVGw/PlAuZgotKWhVQ1BaOWduViUnMlhdO2RgYFlQXDtjVTpnIXBTUkltXiNBI3NZTk8+a0FFXnI5MXNbcDZfITIoaSQjMURiQTQKLSVXKjguXjZiTUlBLi1cYG48TEZLRkRoLldOISpbQUowXW5CSkAzNSs5UF9xTkhiK0c8PD87SzVKQnRyWDtJanFpCi1PdHEsbEpLNktKK0RPTyMmOD1YQ2FraipxZkdbcEQrcUEiZig5QmlYNEpeK2pQc042MUwzIj4zJm0vY1RwMyooUQotTEdeMCk2W0MvPG9KUXBDaTkvdFVqI0gzSVZdWG9vSW5rOVMjM18wTy9YKkE1PTdTV2VtPnMyXDFAZVgkVSlsSEcKLUtTcnJBcU1DNSEuOGQiZihVYDFcOFlmU2I8ajFiZFE3NG4+UVwrZFlaVyZdZFxnSSJkTWJLYSQnSCVwW11tISVXCi0kc0hLTVMoTFlXJ2MndD5eLmQwPDNKT2laTmliXiUhSlBhKDJDYV47a1xyKC46YFsraTpeZlxLLjpFX2pvPypEZwotZ0MvJSsiVFpeT1leaElsa1BhbSRmTnVsTz1NOT88U2ZObicxOWpBPERIWiRlYWgkW29kbjlEKSttNihLN2BJSmwKLS81WTNKPlslTXJXa0pYJE1uJldHPFQmQy9NSj4xQjlGZTNiN1xVJ3JMKWJpNUVYNlleM2U1U1UzUG1wSFVaOj5cCi0rSkprXlVvIy5kZW4jPEM2bGl0aHJhOyxTJmdqOWEnZUg5dSxAKGNjVW0nbmMsX3FpSV8sKWYtLXVjWWVVY3EqdAotQDBkKSRZMzZzamsiSlRHcGpFWCRwYUtEYkFldVgoOHI1TV42M2RhJ18jUG5nQCwpR1NwPl0jRVBVb3A2PG49ZisKLUpmN01PSGQ7OFArMl4mL1BVPTNNYiVQdUwnZUhRdCRBXkRpUjxKSmhvclxgWyZOLm5BPU0xVUomcGtKVE4hMDV1Ci0mLWo/Iyo+YEs5VUVHKD5hLmQ/dTFWOWc5MS5sNnJJLzAyYiwxK1xcLVVWLk5FXlIzQyJPWTApbCU5QTxWIkJzSQotIy9wSF9mX1lAX2g4amRkSGo3Mj48OjkyO2YmQURdKThWTmU5bzhXOi9gN25XKERXbWtPOjUnQz8yMCw5QidsMT4KLUYtSUFLWVsoKS5gNyFUOGBzWi9ZZiwocVpMcXV1NSZcaiREIXE6b1RrTiJOVT1dXlUyRG9AXVVvbT8uM2xyQl0oCi1NdTNaTm4tcEtffj4KLWVuZHN0cmVhbQotZW5kb2JqCi04MTEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi04MTIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDgyNyAwIFIgCi0vUmVzb3VyY2VzIDgyNiAwIFIgCi0vQ29udGVudHMgODI1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgODI0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTgxMyAwIG9iagotPDwgCi0vRCBbIDgxMiAwIFIgL1hZWiBudWxsIDcyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotODE0IDAgb2JqCi08PCAKLS9EIFsgODEyIDAgUiAvWFlaIG51bGwgNTQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi04MTUgMCBvYmoKLTw8IAotL0QgWyA4MTIgMCBSIC9YWVogbnVsbCAyNjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgxNiAwIG9iagotPDwgCi0vRCBbIDgxMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgxNyAwIG9iagotPDwgCi0vRCBbIDgxMiAwIFIgL1hZWiBudWxsIDcxMCBudWxsIF0gCi0+PiAKLWVuZG9iagotODE4IDAgb2JqCi08PCAKLS9EIFsgODEyIDAgUiAvWFlaIG51bGwgNjg2IG51bGwgXSAKLT4+IAotZW5kb2JqCi04MTkgMCBvYmoKLTw8IAotL0QgWyA4MTIgMCBSIC9YWVogbnVsbCA2NzUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgyMCAwIG9iagotPDwgCi0vRCBbIDgxMiAwIFIgL1hZWiBudWxsIDY2NCBudWxsIF0gCi0+PiAKLWVuZG9iagotODIxIDAgb2JqCi08PCAKLS9EIFsgODEyIDAgUiAvWFlaIG51bGwgNjUzIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MjIgMCBvYmoKLTw8IAotL0QgWyA4MTIgMCBSIC9YWVogbnVsbCA1MzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgyMyAwIG9iagotPDwgCi0vRCBbIDgxMiAwIFIgL1hZWiBudWxsIDI0NSBudWxsIF0gCi0+PiAKLWVuZG9iagotODI0IDAgb2JqCi08PCAKLS9QIDgxMiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDgwOSAwIFIgCi0vTiA4MzUgMCBSIAotPj4gCi1lbmRvYmoKLTgyNSAwIG9iagotPDwgL0xlbmd0aCAyNTI4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQUT9qIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O20zJCZIR0EwaigqaEVdK2s3Yil0WTVcNnEqMjZEZklBNis0Rj8wcGtbaV9vUkFTCi0+RyJ1VVZFazZAYjtZckkkbXRGVUhjZmVRTF5dJCUwVmkudCJUcE4tcyQtcURrUlwwP0dpVERFVUMvRixeMTAuZgotMFlIP0VnLEZ0Q1c3V2taXyNUR3U2JWN0aTJOQUAnKicrTjkuKFVsNzhVK0ZZIzcuWENcWWFwQ1RVdVtRZ2JCNyYKLSxJbFY/NGNfU1hvVzchUzsjSi1fKHVAPzYsQjFwPjgpcDkjM2wnXyZucSlUSEM3NT9eLlp0bCtUdXI6Zks9WWpJCi1XWWJyI2FKYktBMFE/NS4iVF1iJC9kM2NLWlBTPjNQazpyUFU9X15rJSY5S1wzPVgpOFJmZVNMYUpdaCNVN2ZqaQotVi4yNEUyW2pIdF9AUixjSHE+ZHJXRUAlQDohY19ibk9pIiNSKCdUcm85PitWYklEQCkzWSVAUFFpWEFKU2hqOlcKLXFMMTM8b1IuLjVYPWtnWiYyPm1iMlw8b0kvVTdeaTpgclU0TmFtPW0/UnRSUGNMc1s+Qy9rIT08Y2RnayVIRW9qCi0wZ2ZBZztcZDlNL0FXcFFvaTlgLiMsL29oTnMsUyVjbzlgPGVWNWgvbEhCXCpkZFRmZ21nYlU2WzhdLW5QdURwNgotMjFxV2BkQlFCKDRIOXJuaGNzTkdfUi1JUiRQYWdvJSdcUDtvbjNGSicuNj8nUGBkcHJHTFxILF0/ZDcpLUs7cHMKLS9PRysnWkF0YSgyKilVLVxNRjRuVy5xIjVEMjhBJTRPW0lxSlM8K1lOYWlwUzFrZClpalEiN3RQXWVkcitwYiVoCi1NJz5VY0ljRzIyRGZgbUpEJjZCMClLPSVhJUFSTzgqJyssL1pgVXRkNWM/I2RSaVhHOm0uWCEiN1ZTVj9mXyNhbwotUnVTP1JuQlNOVCQlaU1eMThMO15ySmtoWTo9bUBCYjZqMC5EUzBaS2E3SHE7MD0qQjs3RlAwZWInIkRTM0c+WDEKLSlsIzlOK00iQCozKzF1NEA3OzE2Tm0qQnNQQj5QMzQoXmk2aCojWWpwM1VAXC9KJ2czLUozVSZMQlo+KjpDZFZoCi1LNyJnaTY/JyJaak86ZUE+bzYlJ1ZmXltqSFkmdDpeRVk5dTklK1RnXyMxcShYPFJUPU91cztAJ0g1Z3FUai86YQotOmhnPT44Z21lTVozNXFPTlknJC8uZyxtSCM2cVRDQSJaRSE7byxhNVhwKWBePSFDMSchVGJFO0IlR0MqWVZKbi4KLWVhQiVQYUVvJ1NLMVoxIllzKCFoOSZYTFIjaj9DQVRYWCFmOyhzK2FPPTx0Wy1vL2QkJmRmKFVKZihQUUo8Pyc2Ci1AUVpyXS1uQylOYF4rP3M7MkVTZlxwJzEuaFhVMjAhUC9JXDMkdV42SyI1SXViaz0xakBlS21ARVhhU1FJNWxHZAotS2IzL2I8MyotIydiY2JCaDJqPGFLUXVuZkFMPTZJO15Eb25pOyMvUiwuIUFwQUhXJUUmXF88TD44Y3I/Rm0/J2oKLSIjT0spUSchLkxgUGguJWErIic8VUduPDUwWEY3cjpyZ0orYldsV3JDZCRuZEtBc0NQJHVeIkNMMmJRXU1WNTlkCi06XGwpKiwwaDBcMShITWxFL2ZLXWI2YW91Ljg8UzI7b3FBNVlTRyo7SCpUakAnIW9HV08yQWhFWFwqMV5Bazc5RQotO1lsa1IhY0FhcC1SRF9IQFpCSy5TLmhfLzpTcGRHUz9rM2M5YGVqYkBIdHBbJE09N1w4VG5XSGtdOV8pcCIjdFkKLTw3JE1aKWIqNUEnSUpMX1JmZm01LiEjWmNMRVBkc2koN1RXIUFSK2ZFKV4+K1I/N1VQV0IoLWVuakNtQ0hANydpCi1QYj42W2I2KiEpJVxeYiQoMyV1dC5CUCtoXzNVQ2tCZWxcdXFscW9Mak0mNjpiM2czWDlLWl43PUtMWlNyIiksMwotOFAoWSQzRzQ9JFBDaW8+IUMvY0FLIzQmcmJOO0crKk06Xk07SCxyRUpOQ1RfSCk+KVFkYU0+VjhbTlolZE1kUUEKLS4zVzwiRko5K0BBRV1TQnExPko4bi5bODMhMixRIi8jK3E8NydqMm0/ZDZgLTloIVgnO2xZK01QRClCLm0tUW1lCi1WIlM1NUM0QiY3N1cyQzQ8WDo3VUNOWVFAOXNDb1MlJCV1bkczW0kySyw8Mi82Rm5WJztUS1BJZS41QzQ+MkRqUAotW0tgPjAqQU07bjwrTyYycnJiLk09LFFTYDttQkIpOjpsREprRGBUJSYiOGtMS19VdGg0NywrbEgoMlQsKmpPOzwKLS50OF9kM2hQI241MjpDLFw1PU0zNiJXdCpiYjAkSUM1c2MjcDxAYzVTLz1OWElFbkwsYCNaYCVBSFdZSDM8dHVNCi1SRWlhSTQsIjlGYSFnMSsmRWxdVDJcJkE+SC87U3BlRGNmXFZMQDdha143OSxNUm5tSiJqQWtOPS5CRE1ZQFg0WAotTC4wPkVScEVeckQ2WzxgamBjPF05ZmtubEdtOXI6bSJEMEYyU0tdSjMzRDVrLD5YRD9XaW45bzdrQ2diVi1uRDEKLWFaXUNFNCxCZTJjdWJzYSFcTVBuXTdiLWtPWl1IUE1QIT8wVjpXOFY+OkRPc18rQjAoNlMtJV8wMHVuVzE8I0dOCi1WR2ElZm08KUJRcjUrPkpiVytuIyhmczBMRzY0RWQjMm1vNDVpayU6TTxwJEwzJHErZTxMV01WO2VfRjAyUGAlLAotUFJeIU1cdUZqcClqTUFsbiFLP1lgc3VRSExHSSVLWXRDJz8yXD0qJiIydXNsST87ITpaUDtcTWZSMVMtSEkxJEgKLTpUOVB1L3U7Sl9fV1AlVUBBJEpyPWheXUdKVyJJYVhpKTYoLUtzNnJONW9iVGhIM1ZAVmUnXFBQXFpyQFJILWNPCi1TJ2QrNGgpVDZHTjo3OSErOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotODI2IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotODI3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgODEyIDAgUiA4MjggMCBSIDgzOCAwIFIgODQ3IDAgUiA4NTUgMCBSIDg2MiAwIFIgODcyIDAgUiA4ODEgMCBSIDg4NiAwIFIgCi04OTEgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotODI4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA4MjcgMCBSIAotL1Jlc291cmNlcyA4MzcgMCBSIAotL0NvbnRlbnRzIDgzNiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDgzNSAwIFIgXSAKLT4+IAotZW5kb2JqCi04MjkgMCBvYmoKLTw8IAotL0QgWyA4MjggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MzAgMCBvYmoKLTw8IAotL0QgWyA4MjggMCBSIC9YWVogbnVsbCA4MzggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgzMSAwIG9iagotPDwgCi0vRCBbIDgyOCAwIFIgL1hZWiBudWxsIDgyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotODMyIDAgb2JqCi08PCAKLS9EIFsgODI4IDAgUiAvWFlaIG51bGwgODEyIG51bGwgXSAKLT4+IAotZW5kb2JqCi04MzMgMCBvYmoKLTw8IAotL0QgWyA4MjggMCBSIC9YWVogbnVsbCA3OTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTgzNCAwIG9iagotPDwgCi0vRCBbIDgyOCAwIFIgL1hZWiBudWxsIDM5NiBudWxsIF0gCi0+PiAKLWVuZG9iagotODM1IDAgb2JqCi08PCAKLS9QIDgyOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDgyNCAwIFIgCi0vTiA4NDQgMCBSIAotPj4gCi1lbmRvYmoKLTgzNiAwIG9iagotPDwgL0xlbmd0aCAxODY0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQUUJrIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O20zJCZIR0EwaigqaEVdK2s3Yil0XTlUXGFdJ04oM3IlM0o/MSU0Vy1YLm0/TV4+Ci1BaF1WTTdFRi02ZyM9Ilo5O09zUzFnUk8vP2hZZCJZZ1REO01oLiZkXVYoc1VnODtVMV9QRyYmIUBrZkU0bEhMcQotKSRXRiNkZy8nJlRaVEEsT0kwWV4rTmUwTWorWT1CQCNIWFFXKkhUZFVTJ2s1JTFhI2tYL2RgKF0hJjFpSG5QYmAKLUpPJXBDTyErU0EyRm8mK2AmYWZrLF9TKj42SnRiU0txWDw3KEJzby9VRjppQWRPYllnMEgsdElec05kYnFuSjRyCi1sNFUiaSosci9MQD9AP0FidE0pWiRxJkRGJWhYUFkvNUomS1l1bW0rTl9zYzQmLlFOLTspSE8rRkonSipkXCgxbAotWU8jWTovWnVEQ0NDai9pRk40UFIuQkxsV04pVzQsMk11Vlw3MycvNEktV0dmUDdlY1I4czY6TmxHWzNPWWpEU3IKLS5fUDpKRj1lIyU6KSRAXnFDYk9kYVtmJjtlLEMlWmVBVWZNYmQ/XlQzUmxVX2l1SFI3WFs/TEE8Q2s7NVhgNGUsCi1kNGRrakAvajA1VEt1ZEQwJjpXVV1RPkcuJjZiPi5YXk9EM1cqOTlQIVBAck9VSkw5Qy5Sa1FiU1FATDJiQysoagotZEZzTFo+WW1oZEYjYWQrQDRESVAzYkFULVRgRS5qZihYOkc0JDVsdGNvNnVbQTxlQUIiK10lck4zWjo8M0BrOHMKLT84b2p1LyhqaEtuVCdGP2psO047Mz1SSlBhZUdsc1BML3RoOk1fNkQ4USM5U0BHYWBESFhwI1JVLUMrM1kqKkpgCi1hRHJobSxmdEBDSFs7VGJNIUghTjZRMzBoQTJWU3UxOFNLamRQX1EkVFtHYVtnQ24qUk5SIzVsPmA9aGY9K1h0awotakUkQ00yV2RQcWw8OWkhLktzIy5AKkc8SnBlZD5nZm4+VVklalNfc2BsMkNQaEUtXCwsSHIsQUpPOkkiNWRrdFgKLS4+S0M1KTc0Qk5GUjwuLFw+PGRPIjlUVWJZXzNtKU9kTmRrMk5yQ1ohXTtiOjciS2wqODlYc1hHQihxUGEiUT8xCi1mYHFjJj0rYko2azUiPWY+NWdwYFdZOHBrRyRSPVo+QltjKExpdWRPOW8/MFVSVkNdKTksRUVTUmlsLWI3Lz50IgotI0tmdTRcMmJkb2gwWU5lWShAXFtnS2NINWBdYSNiKSxzTjAwMixtbTVjK0kvZkZgZnVUai86YTpoZz1LXFdmUGcKLU04Ol1wXHApJ0A2WkkkaT5Xci9NQSFAaWktUlkxVFsnUz80TnQ/KzppT2glMllpWm5JZFAsQC5TRF0tYGVwKm9kCi0ubT5ZJGZXKyw1PDBWcUQuTm00WVY2VzJrPU0hWltfLC1NbGVcJ0AtVExCQGxLdFxdQVAnTktwMEVfQ29dPDFrPgotTFhQdS85KmVDcytPSmddX11wVG04OF49QGpyUkQ/VTdNbSxrIVhmTzdhWUI+RlhXQkYpJFxJWShYXCVJLiJUR1UKLSMpMGtSZ286ZW9WPDBvW09ELTAkRWkyV29GO1lyJTxmYkUjX0peUzczaSdeRio5QCRXImspZSEtTywyM0s1aUUuCi1DKzFnV2VCbVZvVExXWl1eYmM3V2EiQVVMVWYmPkg1Il8xXFtPIzw6I183RlI2bTFccF9mMDdUMTU5NGghL1dAZgotTjUxZlltUkJlYmheWUZwMVJpSC0ycE0sYTM3UlA1UmUhUWYiXm9jUFUwOTNgO1pubHNIIWsqWUoyMy91LCckPnUKLWNIbXE0W2ZkP1NHMGNHXTQ7MkMlJTNfNXU6J25sckFoPUhcRj9YJ1ouT2RvJVpnYV8mWVVEOm1nNGRGO08uUUVICi1FbWRRKTY3QUFqTyFqMCliKExXZWhpc0BjT2dsM1xxSWBOODZVSVR1bCM9NlpOYDpnc2I5RyI2NElsU003dU5jaQotM2pIQW9MPl1yKilPXFZNMCJBME1Kb3AkVVMpNVRpRTBcO0s0SDBdcT5hUE1DSyFULWJkbmVzOEJXSyc0MzdyaXMKLVU0Z2RLOi5XXDJkSzB+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTgzNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi04MzggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDgyNyAwIFIgCi0vUmVzb3VyY2VzIDg0NiAwIFIgCi0vQ29udGVudHMgODQ1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgODQ0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTgzOSAwIG9iagotPDwgCi0vRCBbIDgzOCAwIFIgL1hZWiBudWxsIDUyMSBudWxsIF0gCi0+PiAKLWVuZG9iagotODQwIDAgb2JqCi08PCAKLS9EIFsgODM4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotODQxIDAgb2JqCi08PCAKLS9EIFsgODM4IDAgUiAvWFlaIG51bGwgNTA2IG51bGwgXSAKLT4+IAotZW5kb2JqCi04NDIgMCBvYmoKLTw8IAotL0QgWyA4MzggMCBSIC9YWVogbnVsbCA1MDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg0MyAwIG9iagotPDwgCi0vRCBbIDgzOCAwIFIgL1hZWiBudWxsIDI2NSBudWxsIF0gCi0+PiAKLWVuZG9iagotODQ0IDAgb2JqCi08PCAKLS9QIDgzOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDgzNSAwIFIgCi0vTiA4NTIgMCBSIAotPj4gCi1lbmRvYmoKLTg0NSAwIG9iagotPDwgL0xlbmd0aCAzNjkwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQUUVsIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRoaENeUSIKLTYwI2piYG50ZVoyP1FRbC1sQnI7JlZOSltVJmdxPkJKKC1dV0ZcV2lac1lMJyRqU0pjVGttT28wXV4uVmoqX0ooCi1EX2hZL0w0Xm4pYV1HUnBsYT9VI1c4b0JFTldmVm9Cc2JgPktFRktWNCRCO1Q/NlAjMj5NTHVtQHEtXmQwaEdRXQotWS1NT2NhOzRzXDkiOkslY084R1osQFJoLzE4U0tqZGUvOzxrYm9kUmlHMDhNLDBWUj8oXj1FRFwtQlJrK0ApTlcKLURrUG8hTj9faWEhNU5NZF9dXzFoSyFfW0kmJCtiTyU1QXRrJCtxcCFhUnAjMjtxUWQtK2ZLLGk3LkQ1OW5yMGZnCi07QWs1SjVfPjk+bW5pOjA4Ky9HJjNcZU4nI1dXRE05TkRAVEpQdS5ZTC9HNmgqIUhpdGJrK1AoQl4jPy4wQUcyOwotX0dYIjItLCsxbDVwc3UyME9iX2AhaGRuJE5iaWBsM0svIS9pMzBxVzpzKG0xSkgzXERYQCFcXDNeVCI6WWs6W0UKLSw5N2dxZUk7KmQ6VUJyJikrSCdKOy02SE5SLUhELU9HYik4WEAhOTcxLjpjPWtxJ01kQ1dKTSNkTXJdITV0V0NBCi0jTTVYTG5pKVQmITpQIj1ROnEjKz10Oj5cWl03bEdgdC0qQyhnT2ArLyI9KmE7cStlYXJFXF9GbWVtWCNtLCVZSgotTktiXEglV11mWyRXY2BjZ2I9XVVCWnJFaU9JYCUjaEFHKjIrJWc2UTdvRz0oUScqdDZLOnBta1xDQlZoVXE6RF8KLVM+YHQvYXNgMEIhT0k3Py1ERUNYcyZQTmBvIVUhKkhdNHBKOjApVnIzWSU8Nk8xUG0tInImUTpTKWt1dTkwSEVaCi08V05BOCpUYU4zKjZGMyNKRG1oKUBwbWM0Ti9WbkBwTUtdJVRkYldzWlFnbFlPOUgxV15aMWg9VGslcDVnYltpTwotbzwqaVFkQ2Q3UkE2TDkyODRTIy9gXGJVN1F1Ll5bKSNqIlpOVDRnUSpLNmJJYWJqclkxWD5YYl9pVmE7P0JDOG4KLUg7UGdpTlsiYFlDNztYY1c4O0ttVlAsS1NRUkpqcFBNSWhMUXM6UjclUjVJWDEjOVRjVW5OZ2BSRHVDRlcoUzA4Ci1YMm5IXlVGa0k5KEhOLmBULSY3VTY1XEtJaFRCV3RwckcrZFJxZGtKVEMoPFRDO11dP05OXFo+OHMxckxgXTkmQAotQkImPiQ7JTdlWWpsW0lXOyNWNT9xKkMoOSIyTCI7JFw+KVJJRS1XRTBKaUVgNlY3SyM1XzZkJEU6RTIySm1uc1kKLWMxc1ZnW1czN2EwSWUzaSlEZ3ViTjU7Nj8tODdVQVZCZUYzIWJxXk4tY0lEV2teRXJqZ0ZZLyZhY1FkKyojbydFCi1gQFlVPHJqOStTZHU6NGJFR1w6PyhHXUhtJEFzSHRiJ0QsRkZHKjkuXE4qXlc2b2NhSE5mX2FXZmh0Wlo4c1UsMQotYDc4cSY7TTsuRVEvbmhKTykuTCJOJWs0MEZLMHJFKW0yXUhaJ2deSmFGNyFDPCcmJy5WOGFnQSlqN2VhOG5lUGkKLVJYdS5oT0RvKEhCKXVbOiZCWiFxXGJuIVJKXkdQYixwalk0aV4pIUBgQDk5ZzpJLClGQSdRLCphQElaYTtOWyouCi1iZnRVM0YxYD5vO2Y2Jy1DLGAwTmQjXlU/SjZrcm0vWTtbRCZRWjhoJSVzc0Nbcl4tXidtVnI7V1NCVlxxMDpgTQotJE0tV0BHUnVtIjclJVMiSWxAak81bzNAXEg9YlBvU0YvXDpbRGozSjpoLGtcLzVfTmdMXCtdPEUsLzxMND86KScKLT5naV1WMGUrPGcpTl0sbixmLC1vLTReOGsvQk4/aEBKRFNeQDFXdFFHP2MrN0dbaDUnKjYwKmtmVVdZRVpSPSloCi1xRitraGRgdHJMIzRQbV1TTUU+RVJcXmxSYlBjOCU2ZVdERjFrWjphOW0lXXVpI0EpMTtqZiQ4OWgzYDtsVXB0VAotUT5WaXM7QCt0QGslXV0/akstSkokKUFAPDhmMG9lQzJhQHBgMWduJ08qbnFdbW5dOFlhPFFSSFVVMiVhMCNYbjMKLWUlL0A8Yi8iJ0gkJSpiTyFoYmw5cDNkLWlRQ1FHdVwyJWc4TjFzTVMwYmEzc1crbG1KZUpYSlZDODBAU00hYlJMCi1kK3A6PmRdNkJVbVo1TiVyITRPZEBtJmAqWXViUiQhSCFYNy0jVS51KCE3R1BRMylMPSg+NlUvW3VEVzFSRWckZQotL082aShWVmI7Y1hgYTMpYCY3ZG5gIkw3JyVXNUkkM04iaUdBYFJtKmNoMWBLalQ9by9GNSs4PDhgUlM7UGstIzMKLTwuZzFVKC1tZiIicChSakdUajtsVWlPWyM7JnFLO0QjM29sKXJxPiwiayVQdSwxS3QkazNoKyVjTmIiOF5TOk5LCi03a1wwTUdxXTBxOzFsODJZWDZqJCY6bWc2cTM3W0JFK0xtP2pdZmJMWVQwTypYMG5wJT1CNiphQ291XVZRLkRZYAotPlFVK0FoRlojdG9QKyVicXRSNTBBKTJDVUlMRG9QYSteKzVzMWc8aHBMJUhAXlpGbEVgLyxDQ1YmVz9pWEJRcGcKLVdHYFU1KVJ0aXUqIUs+XVUob0k/NERbUnJKSGZNNCladTkiNixDUWJfUEteTUpDaT9dMVMvYTg9bGVKN20uX0duCi0mXT5pcjNNcjNAREk2Xlk5KlcyampaTSZzOlZkJlROK21EZlguN3NiRk8jZSciPDg/XzttMmNLZXFPO0ZvVlZkMwotOCJETGxeWC9CNTZnMSclWD5Nc1tlcDZeYWtgI1A3RmNORUlYUXInPzBQNjdRcmhcNC1tbz0sPmlOYjxmXzpNa2cKLUBWQ0NLNWRYZi5CamVwKSFvbC8vMkVbNVBqTStDak1AS3RaQkstNFc9KiVSJGRAR2owMFxzMSw6WmhjdCVAUV9rCi0jLjNpJUQsImJEXCYjaTpFKm0kaDltYFUjUW5tVE1LN1dMSUxWTSNmJEssLltLJ1VbPUJSdUtHVTc0cjZuOTxMKAotR1w3dUtSb2I4Xy9pNXJrKnRbQm4vL24oMnJQP2JyMV42NSZKVEMwP1phbERaalNYKE9CQU8/blszLkBdNWgqO3EKLSFeNERnbjFnXEJqLloqREs/czZlL0wrT0xpIzQjTjt1cyVabCVcQiEhNzlvPjNrJUIiU0k7Uz5ZLSQsdT9ZJkFSCi0rL2U/dVVISkNORColTFVYYGdrWSkzYWVrZT0zUHNvUj5XQzl1OGFTUykqMC5JPVw1OkluJjtYNFc8UTpLMTowZgotXF1AaSZBU3BeJGpAZCYxZ1I/I04qOFthSmNCIVxLbThwVjcqdUdHTEcsT205I0tbJipEcmlqNDNWKjBVYmFgTyQKLWs/TWA7bWZuXEptJTQlOzozR1xbM2wwbnFPdDpRamI8QCxKRGMzJ2AtQjNpU3E8IWRmZ1ZKcGFuaTRzdSMlVCsoCi1yO05iZjo1PCEoKkRcXGMqbCVKNj9FajdAa05EcCdVZGdLRVNHTShRUjI9YGlwR0ojZ3EkMEZab3JWXiNEcCRERQotci5eNj1wWzhnbyJUbl01LkwkRUQxZiptbFhuMmksLGU2WzFWYUdKb15oVk8mRFk3TC1MLkYiR2MxWk48NFIpOXUKLUsqL1JiL25rPz5EI0RYIkJAJWRbTzxjOmUuMDdfOiF0WzxsTUM9KTdCYG5FUyJBYSg+X2smZms6ZnFbPCEpQ0RhCi0vZVtXVz4oWzNQIiFbU2MwSC1POFloOEdRM1UxXThAUVxeJUgzWVhoIiImRE4wVCZSLCJUPT5RI0gwPSRLN1wvMwotRSZwaCwjOCJsdTBOZWBOQmFxO0poLz0jOTY4XS40QDEyP1glM2tyL19ZRSlPYmc2biclN2NfXkUrJzREV3FVRScKLWdeUlR1MC9EYGZXc25LVGskbjI4SmVJMUNQaGYtaGsmNklnWVlHQmkiRkw5RmwvU1IjIiNmM2ZYRS4uOmskdCI+Ci0vRVoma0hxJ20/ImQoPmMmJTpPUjJUVGVPJ0AwcXUlUlVxTG9iPlxiMUVyLkhZdV8yIz5oZFRiKC4naTpZQjloYAotJSxhWEQjdVEnUzl0b19hU2QjXTA5YiwsKksqOls/bWUsVjVVSlxpN0VQIS0sMWJfYl4kbnNVKiM5K1pRYD09V1AKLWlLKEdnJl1YMkwwY29sSS9lUkMxWi5TSiFyOWVMQipfdS9COzg0JFBibz1xMypxJVZWaSt0PV4nYz8kNjNZO3IiCi0wL0RLX1xoXzxsajpAQG5qQyZdTy4hXTM/I05NNyw6KStkZlsuRWJCK3RMbW46LiNNY1VFXiMvLD5MU0BQISZdawotNW5tMHIsYShqZlAjRTJRPHVOZ2wrWUBhWyZfUkpyLldbcUIzJV85bVhWYSZCJkQ3O1YiUlo/PmBoa2lAPVBlXjkKLTQhX0pvYj1bMGtIb145I0VNLUtaVktBdSheayslIS8hJS1yRW47Z1NjaXBbWjU+KFokLDhCIi8hV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotODQ2IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotODQ3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA4MjcgMCBSIAotL1Jlc291cmNlcyA4NTQgMCBSIAotL0NvbnRlbnRzIDg1MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDg1MiAwIFIgXSAKLT4+IAotZW5kb2JqCi04NDggMCBvYmoKLTw8IAotL0QgWyA4NDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04NDkgMCBvYmoKLTw8IAotL0QgWyA4NDcgMCBSIC9YWVogbnVsbCA3NjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg1MCAwIG9iagotPDwgCi0vRCBbIDg0NyAwIFIgL1hZWiBudWxsIDYyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotODUxIDAgb2JqCi08PCAKLS9EIFsgODQ3IDAgUiAvWFlaIG51bGwgMzQ3IG51bGwgXSAKLT4+IAotZW5kb2JqCi04NTIgMCBvYmoKLTw8IAotL1AgODQ3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgODQ0IDAgUiAKLS9OIDg1OSAwIFIgCi0+PiAKLWVuZG9iagotODUzIDAgb2JqCi08PCAvTGVuZ3RoIDI3NzQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCZEZ25YUm5UXj4KLVRuTVdEMmssSSgxV2RsKUFOJXI4JjZNJUEoKEQudGlUM1wpVFBRSG0iJUF0TlhbIy0nKWlTOShiRzxYaTR1cTdICi09PFdMKTVZV3ImTitSVkBhREhxU05eaz1AYVZHKmwsRDBJRFdmYTxLR0QmPypVJnMiaypiOiJdJTNiZGNmT2whPAotJF9bJUtYQ0g3XSYvdFlIMz47cjEwdCxPc1VSSUUzUjE/MFRgWVJlLVpzWUwnJTBpIXJCbCRUbFpRO2hxOyQibnQKLUVdT1I6N1QyNzliRG5UT2JwTlBZLFo2MzROJ0JYWyhrQDJ0JUtnLDAmLlg9WGIrPTdzQl1NKFBhXVFcSS1jPSRvCi0hdElwT1xnZSJYR1pxb2Y7IU9xR11BbUEnMFRELCRgcSRlJlVbQXU8T15uMWQ1UytWODFedG09J2E+LzArUSInTAotTVNTPFxYLGVbTzByc1VHO1teSm5AW09YRE5iVCxZVTdoUiguPj8zPVE3PS0mUlVZVDshTzwzJ2AhUEpGMmlRL0YKLSYyRlw+T0FacE4hQ1ZbR18/aj8wM0tDP2lBSyRRRmkrPGkyWi06YFY5dURqQjVMI3JPYVJZPDhFNXFHWCxHYXVyCi02LE51ayFOVF5UbDgsX3VVaXNcOVlSQ15yTlkzMlcxSSxuMihjT2BaPmhUdDduQUkwJyM3LlhDXFlhcEdFNV9xXgotI2dCVzg1bGYlXVo+cFk4YDxGSC0kS25yY01DYVJXI2RnPEYxPEFhXHAnYDFFZmM1Z280RS5LYF9gYHMyOFNXOFoKLUFrQkZVP2xWZTRbJykkbSc0TVpFNDJNWzlVKCNWVFkvX21SYT9WaEgsQEsuODptNiE9WTY0cUVoRFZFNCRJMWFzCi0rVFVKT05UMi9JNz4oYWVZLG5bPW0jJiZGMSNQPWdlTmxOWT9FODwpbEUyTWYlMVFAVSwrcW5yXSllKGkwS1txTgotX2lBOjFRMFg8JzYndUwmTWgrLksybltJJVwubDQkXWFwVXJHZ2phLiVWJEA6cTtaMHBxI10uayEvQjAsKD1LbSQKLS9EP1orKEJiWypXPlsoJD1POGFeZVJYYUdqazUvbClSZkk3OnA9I3JETV0/bEU+IVU5N2d0bXUpO3BeTCVCXzZyCi1fSzxUdSlHUkBrO1VpVHEqNitaVlJwPCReLi5MXDg0OjxUcDRJIkRJOzwvcls7YT4zTUcybGFRXE0iMkplQ2FRTAotNmZROC4nOS1mOS5hQnMpV11XLG5rS19tcWxxMCY2OmIwPykoQ2BiKiYybCVSPjI4TmlwWWBQR0RaWHVia2VkR1oKLWIyQzB0cDovL1ZOUClZKWBcY2tQWWY/bjRfa2puXkdLPi5pKEpVMFhXQGVDXF4jPDBOLD9YNE4pXjxzR05icU9fCi0xRTdIOFpkaTclKjQtY3AlTUpwTTwhPUUqKSgrPzZILDBKTyRAdCNcIWclIidfKkIsL0pdW29zIzgiXz02USUxZgotTTcnI10qNUdQZDRfOVZoUWIoKUlwSHRcZT9mQVsoLyhcNmRLNlYwQWwnOW84T1BHWzBXdSNzRid0OjhlX0YlQCwKLTtIWkNhTVwxUic3dEVvbUhIXW4yNVVFazU2VD8xdWBeRFk8JkImaDJSYnArUzBsYi9YVGJVK3VsITgsQChtbWhlCi1nIkxmIj40OF4iUTA3Iz89aCNTO0NfYUBbZismWGhqRm4kNEpXR1FIYG5qaSJKNHNxcGs4cjFPKXFYKipPLStqLgotX2AoVy5hZkp1ZUVMSl1jIS1HXXE2cixoJDBeI1RYNVJlazRkUTVFVm0yYSpXWSpJdT9KciJMXy03PmkkOSZWOmUKLSJTby1gN2YkWSFxRjU+amFVVEtTJD9xUDckN01SUyokbTpVMDJQJWJHM3UrISpwSlFEX2RwaHVFZD0iaEc5QGssCi1xTzBVIVwyR2IiJVhtJSQ7aTxBSStJT3E/SjBcVmpASW5ZK14/I2ROazk7JT9lIkFFInBZPFUkbS1MOmpVX1xTLQotb0YqKzteaSxGLDMpPlc1NTFna1MlJFVlJVtpKkZSX1lONG5GPG50cik8IUhPTXE9VkQ8X1pBYy5uMy9wKVsvJiYKLU8zV0tXVj88WT9ELyNwYUsvP2UpQGNdLDdlNyYoIilFQCNbLW4oaTxoSjFAWkstZWMvcSdTcHBRYk0oVV9aOWoqCi1GdDpzZS4tYkc4Qy5OJUltMHNFUGIicl5kKjhbL11XZ1lraV0uU1pKRTxRQS9ZcDVSQ1UxaF1aQDspW0Yrb3AxMwotNlJab1YoISVdUiNZZUxiJTlXaUpnYy4sWileTltuQmdUM0pRSU00VT8zPlVmU2pjZEVWbVE9L2U0ayslUS9vMSIKLUhNTEdOIiUtYiNXYlBGaTMyPmo9WCwvSV5ONklDPj5BKVk/InBBYFtKcS9GbWUiS3NQYGxPRnA4Yykxc0MlNEIvCi0tP2RKcShfJmRNZDAwUDFYSWNoR1IzV0wqJUZHT0ZcMjJcViIyMDQ5PFpySGlWazVdXVErIjRPVlNVK0xWTV01WwotaWNjJWNlL2RQWyhtUHFgWlZ0KlUvLDNDdWFeKFRdUSpsaDVIaClVJFwyRCokYlZxbz1GKz1rT2pdRTIxLUVbRioKLVw8Om1vLC9EOjBhIUlPSVJ1ZlhUOltCRk0nYWtrUixjI0JtMGBmP1JmXz1QO0I5K05xMl5YQT1CZ1tINi8qMTVaCi1YNFA1VW1CZSdILnAydF84RlFtKTFkZCI9MSY8Qzc1M2k1OVZFa2lQMT8wbmU5JW5ucSU1OWZcM3VLJj4qQU9LPwotV3NsNGYyZ1NaRTE8PCVMNyM8SlMvN3FmWD1NPG1sN1JqPkpQPzAjSitWaSQuLSVgMDFYZkxMa0VYImhgW2ducWgKLUE0OToqaVNQVyJlbC4uMTpeMyVNX0xkXElTWm9aISJpa0dpUHNgNiQoaipoTDtXSmRMNVolTWhfalV1ZidfNGtECi0uazVZYlgiJSNTVzE4Qk1GcTElSjk5UmRTJywvKV1fa1RJbUApc1tmNCRsYDJmT1txPGJTRm9AKWhqU09EJ0UtSQotQVNEalxMWCttYUdjSzxUJ3RmVyg2Ui5VdXEjPFVbTCwuOSozSz9yZ29LKSNHX2pLL1hxZDZFKChDJVw1Z0AiYE0KLWN0aUdRVTZRLz8xUm1oZDNBTEJrbzw7SjIhJT8zKk1GIitpa0RHaj5AYExMWCpaNV1IXVBmUUkkc1VQUTg7Rz9kCi1QcFY/NWIhL0AtTkY2ZStuUEk/XUZJTHBhZnNDPHJFKFtfKVEzKiUzYDpbNUQ9LG5DV1FeVzUtNilJRCtIa2tVbQotJHEyUVNwRGdRSCldbWFHYUxuKmpvbS8uSWBDLSRzam1BQXBIdHM5KTYwTFVRZzttbldBR1JQdVV0XyJqO0xXMUsKLWdBUCsqRC47WzxnZ0tRX1l0Ll41WictXkUlXFNDaFNqOjAuNCdxaTw4MCg6MGBIZWIoYVcibU9RNm4qQTQ5Sitbfj4KLWVuZHN0cmVhbQotZW5kb2JqCi04NTQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi04NTUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDgyNyAwIFIgCi0vUmVzb3VyY2VzIDg2MSAwIFIgCi0vQ29udGVudHMgODYwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgODU5IDAgUiBdIAotPj4gCi1lbmRvYmoKLTg1NiAwIG9iagotPDwgCi0vRCBbIDg1NSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg1NyAwIG9iagotPDwgCi0vRCBbIDg1NSAwIFIgL1hZWiBudWxsIDgyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotODU4IDAgb2JqCi08PCAKLS9EIFsgODU1IDAgUiAvWFlaIG51bGwgNzM0IG51bGwgXSAKLT4+IAotZW5kb2JqCi04NTkgMCBvYmoKLTw8IAotL1AgODU1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgODUyIDAgUiAKLS9OIDg2OSAwIFIgCi0+PiAKLWVuZG9iagotODYwIDAgb2JqCi08PCAvTGVuZ3RoIDQzMTUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCZEZ25YUm5UXj4KLVRuTVdEMmssSSgxV2RsKUFOJXI4JjZNJUEoKEQudGlUM1wpVFBRS24iJUF0TlhbIy0nKWlTOShiRzxYaTR1cTdICi09PFdMKTVZV3ImTitSVkBhREhxU05eaz1AYVZHKmwsRDBJRFdmYTxLR0QmPypVJnMiaypiOiJdJTNiZGNmT2whPAotJF9bJUtYQ0g3XSYvdFlIMz47bTMkJkhHQTBqKCpoRV0razdiKXRZNVw3Kls6OWFiRV4wdGNRaTBjM1NyWmJBaCoKLTBjVU4vUC1aJT1nMk81NjlMYjRTViEqKDgqV0ZfWi9rPjMhIjlZdEFgP2YjPWJkIiZJM3VnOWoiIjZEaiVIQ2pLCi0ybnFfIWM0Q0Q6OEVCQlUsOkxSOF5lXEBUWW1hSEpsQ05yYzhAZzhXOFUrRlkjNy5YQ1xZYXBDa1ZuLnNSLEpQYgotLDtcZ0xdPzolJihCYixnJDVmbkZCR3Frajg6NmVbLlA/U2dsKiFqXD9sQjYrSi9bZy5VQm9MMyUwSSNyXXQhJFkKLUQnNl8nXSFBSD1XcXNSRDlARW1ZJyEoJTRdSl45VDwqOiJrNidWO0hiQCpZLjM9SS5CO0FQIlxdYkQuZUBqb0paCi05ZSsjZVkhK1hkZF1rbVYsVz9JV1goJUkqXEZPRiJNQl1tQEJeMy89UEdwLHBZLzRnOk1ORFMiJHEha0w7JUglcwotLy4rPTMnN2YiIz0vLmwpbkE3dT43UFtJWTVpK1BdUTlhNyldQzk+TyZyY0ltaCtQV1MwTC42OEBCZUI+YUZaLDIKLTNZJkNLZDlGWDlYYWAvbWUncVFWYFNrbWMpKExjRiIpMWVUYy02YTlqJU1lbS0iQ29OM1dvT0VsSCRuWjM2UGk3Ci1wYVdfRTpASCtWM1BEbU1fREMuWkZraWU3bmwpZFJdKy80YihiVExrOmEqTyVTZEFkZTkxN0dtJUchb2kzPVciXAotS0pVXWoyKlJvdSRDKnM/Iy1pdGk8MjZEaFg7T1lnSGFmNEtcUGNMdF5DX2tbUTQvIkJeYlklcFpsSk8wIiNBMGoKLWJYcyJ0MklSODxoJyxsRThsckRqMSJhSyZnT1lgL1gkbFpzNiJzUDNTcm8jUm5rLmZNImoxJDJdIzsuSk1QSS40Ci1uZWA4LkRSdVhcS2JpVFdLQG9NNHA/SUJbRmxSYm8qMDBZMEIvMnIjVUJYI3FVVldoJiVfU0VINEF0LCcjNGcpOwotLmdDUjJaVSIoUDQ1aUxWPjU3OCkiPEoiXiM9aHA3WHVbJ2JFbEJhclxvKGwwbG5KLlQ2PlhJQG0xT1lyL2RPMHIKLSUlS2gmX1YhTEZgXCZbSzJdMG1TWVxWdW5uWyc3Sm1zSVYlZEJIPSRIY1FcLD1PSzBPXWMyIllQUUJOXy9QVW1bCi1mMyVCKjZiaXQkOFpXKzJRbFFUVkhqSiNSW2tsImFqLi9GYElrVS4wSyw9Q2c/JGRmRmpqXz0iRj5CRFRdNj9xIgotJmB0ajhUJDEkS2RWUGQvJi1nV1pwPXFaITdIQHRyKjY2QDwpREVpTDhNUiVDS1xkUDUrRFBKYUU4W148RlJVPVgKLTREU1VOXUttcW9hLi1YKktPaVhDXlc1RVxUYGI9N2pcWT9bN3NPYGgiI1VPJmtoLl9xaEFqYTFAVSYlWlh1Q21QCi1SW0knPS81MEpiVydGUF1QIUNXKStRLnBqcFg4SFNnLEUxYGkmJDEzIk1XSlRjIllQJ1k5c1chSzk8YCklKXRecQotKmBcMS4iLChUUS5lR2NWa3E6V3MzbGplW1c8WVIlYHNnLSEpSDJJJWdwXFZuXWhZaSRPVDsqWl9ca0I4Yl0sUWgKLStHKjdtMkpPNj0+QmheWGlJVzNaOSFUL0JFLWZtQFkhaT5QS2BgZSs2Wj00XlE2cD5jVCcwVDFVITFPXlEnUVhLCi1NVl1iZWMkMUg9Si4jOF42QzJPUyYxLyhvZUUvNDpSLkArZ11dLUdQOkFnOGRuXTdiY1tzbWc7OmFsVmxhcy10TAotP2pcOV1hLFhUUDNnaSMqLGdVLkVQM0A8VipjbT5LLVMhO0xAOElbUCxJQGUhXDArMyczJmpeIkJbKiFNRCU1Uz0KLWkmNm5QOSR1J0xTTHI0LFRrUlgsIU1xQWA6XnU2OChfIyUnPXFGIms6bUhbM1hRdSRYYVt0RitXMGJNZTgjTHBoCi05Km87dSdAbHJLZ2xPOHUhUWhFPVdLLE1cUl5iKEk4L1skJT43T1RpL2wwanJZMUJWZ2hMVWJkWEwsVyQ6V2gtZgotX2ZdY01kaG84U3AscFlsT2lucmFkKi9qUVU8dVclMGliQTssKHBYViR0WGU4NV9kQGIrTkUpOVN1TVJsbGoyKXUKLS5FK15fZT5jIlBnNlBZJHA9NilVcywkaF8jKTs4ITQnLlgwN1Y+Zz9SczloSEMlSFNKOTppaUBHXF4hai4/NyhmCi1mWjhmNlshaWU+IiRyaTZVPT0zYUgqLz8xXFZKUW1hI1YpRDpuXz9lL2BOVE0xYi1jc1NLdCNMZUk4XixHUixkPwotTHFRVjFdWyJsP2QtXT5tM1I+IXBdSmxwdFEyPmE5WihSYCZBNEcsNjtDSEdIaTNOWTlwJztGPCJJVlFBQW1rZlEKLTVuPXRQOXA/Vi8qUmhjVy5QZWZNMlZjJ21rPCFWb106akFlamsuJ2ozYjYtUUUhdHVbWTYzLWFAPmZSLktNZFxzCi1fJjBwJWJCX1ZzWiM1ZTYhNT1IMUtIOCk5MUFlQE5NMyFSIic2VnQ4YGFkNU5OJ2Q7Sz90ZT1SakpdZllKW25VMAotJiNRSEVsOyonYWxnSVNXXjNlVE09IVQ1YydvZVFCI2ZsYVEkWCx1PixFYG9eXTVVVm1TJGluPSRdYiFrVmFqXVkKLVB1Qi5UYCM4YDFKPF9WLD0ocnF1J0VuVWQqPEQ2aWBjM3NMI0QqUjA4NFt0TF87cExxZTBdcSo2PFJWUGMtRCRSCi1NIlsvYERDJmBEMmo/IV0oSkUkRWVzYj5kMEtoNGhlcChGJyQ9LzZ0bCs0XGcjMDUyY2JAUEVVKiMmS0dHUlU6TwotQyRLbnBJN3NKO1gpOjBILXBbNkRpYkhlYW1qLCRhcSpWQ24/R2JAS0oxXm5oQCdWXmxiZ2AsayJMaSdFaVtyME8KLUVYZ3VCVEhfQFNOcT8vX2E0RztoXnJAQSFNRUE0OjRTcjooSVRAbEcwMWBScFAoSlkjMVldP0ElaFYtXUVTYGshCi1xJC8oc21ORmNISnNIaFBFJlwnMGNraDs6Py1FJiExJDJgZVJXRGVQYyQlKy06W1VJWiFpLHEjPF5zZE8pSmFwLwotPyVvTz9sJkUkPSxHZkxBN0MuL0YrUEljLUMyYTlpYDYoTz9rSWNfVUZsJ2dgcSRzc3BdbC5lZT8sPXA0KXA2c2kKLWVwamcrOzdhVChvTzVBTSgybEBsTUNKUjctRz0+SDBDP3M1XC5lPnUqI2pQXXA4b2deMlwhRTxeUEdvXVJGVkBWCi0+M0ZbSFIuNjlxYHFwIi9qQl8mLCFqPVc4aWZxUTVpPGxrKGQrayFVRFcqbXRQQWBCal1HXSNicVtLV0JNS2NkUQotbUpZKTlwSDdWVTk2K2clKVltam9JMFdGMnJlbzFgQiNhKENLNE9ub1RDVl0iO1ZGMy5DN1hiRyVhPTFXIzNTcikKLUsyTj87UHNOY09VYzdcTisxcWplTmFXLFZMdUI9PVwhVUJeOUUjXGgwKW1cbUNdVFVZcW5JUElZOm1nPWNncHNvCi1jPW1dL1oxJEM+QHBEQTNhVCtYQCEvaGdHRHVmbzcicFRpInJGLTZyOWM/J24oZUs+PWRESWU0SmlzMlk+bSMjbAotIyw6cj0iSVQ4WWhFJkdrOFc6TmRLVURiQz1Abi1SIkFoV0EwTVtzMjYzZSZZMUYiQG8mLFtrcTw8NGRoI0VWRlwKLWBmTUR1ZilicGsjMS9HYk1dP29YS1tHREojNjhALyt1XVZORjxSbD0sQjBqa0U0I2lvTC5jPU0jN3QmQSZCYkw/Ci1dKyRILiRcQy9CY2Q8Li0iVWVeUUE7X0g5bkE3Lj1gXGpNdCFPMWtlLEIhckRrNilAbzkoMlstMGEuW0tvWy9UYwotJUtlN0JuLEVqNlRhS2cwIzE0UyQ7ImtFXGNtZlVXJzJTLSgmP0pNWipzc1tBJVxqaz9kNDVrIW9fbS1uJkAidGcKLW5PPlBFQ2NASWIzV2MmbDBBLWJNS0tnXHA4SEtEMG5GQ0tvV3RLcWQjOWpZWk9OJkQyUTtnOEUlVCkpJDljWCtFCi1mT1czNmBfOiVVTzBVWWc6YSlLSExRKi9MJk0sVkYvSD9Cb1t1ZGgpQHJxbmUwTSlBPCMoaS5ZOFNXMEAoRUIzUgotKjhrTDo3WTs0Oms4VFBzKjpgJi9FVlVVJV5yVEMnKmNdcFRuXFFNWy9JSExeKXNNMl0haHFZPmJiVkduRUsoblwKLSZjVl1LLmcwYGEqImhVMSZnQUtsQ2ExUTQrNDglPkByM0hSJkttMmorKic6YW5cSEcoIUA5TDArbkBvRiZrRnNlCi1AakxRQS1CXkZmJl5xQystNy5cRCs+OkRSZE00IShfTjhkbS1dc1E3RCVLOlM1Ui90TipUMVRpMFdbYEBXNiEyRgotKV9pMlI3cjhWIW1YOSddJEEvUWNMTUNMMycrL2QvKHNrbC81XHBaO2YkVU1ZRnRfNXAvbHM7Uj5xSWFVLzJIYEAKLUVdIjEqMl8+R1wvVEE1Nm8lWWlRaUBbdEQvciooLScoRnVvb2RGanEsXWIoZTB0UmFPKSZhVzZxc3BtSzgoVEskCi1gdSFaR2JVamJnVUFAWzZyJk84XysmYFlfP3VuKmBGPkl0PzFRc3NYJzE0QDg3aC49TCxWbVYlO1haSys2U2FoUQotIzNtIVdtJGZbPyFCP2BcL0kqLlJZXz10KnFcI14sM0RkND1aTmlPRmpZNSx0L10wK21VWDpdMipBUi9tTGYzbiwKLTtANTIuWCI6UlsjJVgsYjtuIlNUIjxkPE1ba2t1VVlzZlpIYnFhO2cvTWVxNVZxLjFqMihqc0EhT01uNCc2PyYjCi05Z0FmXE9FNDckNlMxUDJtXktPSzE6KElXPCE+MWByQlNTcjVyLTJAQi4kIU9JMHBYPEVjYFpkWjZfYDltbDgwOAotRWFnZ1VQNjQ2cFJtUmlGJ2s8Lj5DODwmO2hgcmxdQldTQVY5WE0hdWdiMS9xMklnVmJjcGxjIWxQY0cxXzgrPioKLSZbNjZbYHI1c1dlUC1uZS1UWzBrXWU+U3UhZjcmXEYtZXMlaCQ8KltPRGxqMW89WURBZU44czgwI2ojSVRPOVw8Ci1LZUlEZzk9Mmw5JzxgdFphSDAuczUjZnNjUDwxTSphJWInciM7a0kqUEAkUTRBTmUtPDNLb2RmX15lVDdFWCRYPQotMmcjb1htU3VzUEltUEtEOSQ7UT1lMURBNyx1TiUiO0FCcmwyKCk7LjV1S1FwNiN0WDkyKW5TJEd0cFVEMzBbSygKLW9cVzRjWlQzLD00bldBLGRNRT0kIVd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTg2MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTg2MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgODI3IDAgUiAKLS9SZXNvdXJjZXMgODcxIDAgUiAKLS9Db250ZW50cyA4NzAgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA4NjkgMCBSIF0gCi0+PiAKLWVuZG9iagotODYzIDAgb2JqCi08PCAKLS9EIFsgODYyIDAgUiAvWFlaIG51bGwgMzMzIG51bGwgXSAKLT4+IAotZW5kb2JqCi04NjQgMCBvYmoKLTw8IAotL0QgWyA4NjIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04NjUgMCBvYmoKLTw8IAotL0QgWyA4NjIgMCBSIC9YWVogbnVsbCA3MjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg2NiAwIG9iagotPDwgCi0vRCBbIDg2MiAwIFIgL1hZWiBudWxsIDU4MSBudWxsIF0gCi0+PiAKLWVuZG9iagotODY3IDAgb2JqCi08PCAKLS9EIFsgODYyIDAgUiAvWFlaIG51bGwgNDQ4IG51bGwgXSAKLT4+IAotZW5kb2JqCi04NjggMCBvYmoKLTw8IAotL0QgWyA4NjIgMCBSIC9YWVogbnVsbCAzMTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg2OSAwIG9iagotPDwgCi0vUCA4NjIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA4NTkgMCBSIAotL04gODc4IDAgUiAKLT4+IAotZW5kb2JqCi04NzAgMCBvYmoKLTw8IC9MZW5ndGggMjc0MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJkRnblhSblRePgotVG5NV0QyayxJKDFXZGwpQU4lcjgmNk0lQSgoRC50aVQzXClUUFFObyIlQXROWFsjLScpaVM5KGJHPFhpNHVxN0gKLT08V0wpNVlXciZOK1JWQGFESHFTTl5rPUBhVkcqbCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjtyMTB0LE9zVVJJRTNRbl1LZywoZz84O0VRTkokXGZaPktbdEJaUSg4P2c7I3BzYQotaTJyRlYtSmYnKWg7Zz0yTiRqKnBTM1VMQCk5cT1oOlBkXkAwLlVNIVt0WjsnLChxKmZXJ0Q6K2lPRS4pV0ddIlAKLVIoRWpXT0csJDVmTUYlW0AwN2k4TldYcSEmLlQsLGVoWD5rcGN1J0NLP05dcGBOPjZHcW5wPHJnOHVsYlAjYVQnCi1VRyxSX0xCMFpNTko+PWZkXUpPbEx0S2VobmQqUDMkXDpSayhDWyFWPm88YlUnP0UqXyw4LEQ+YGFgTjZuLSgkIgotVyROYktDRFwkOGJVPzpDTnJwNkExNXBiZSFbQyV0RVlvW0pfMzNmVzohaVtuMDkyLnRtYzpNL1U3YD5nYiptJlsKLWNMXTVEbSJXPyxEKlRfXCZBQmsuai8hKmlXOVIoZ0wnSCJRKSwpXFlhQy47IyEsT0pFIlohU1FLYWUtX2svVFg0Ci09UiVtTCc4K2pxJT4tL04wWkBzV2dMQ1kzWnVBJi8mInFRNSI7OjJoM2ZWSig7XlRjTCxnLyFJOi40cHMyWTBhTgotK0FKbDQ8NGdcYmQpbkYjRWxjVGROaFxaYjV0IihdbS5EWkZwIkghdFEnOUItLiJhNGozZlNjZSoxTmlMIm8rQTMKLTxYP28xI0hiTVEyYnBRcVRoYDc/PD0wOUo4Yks7SF5fOFFPLktyRCxCYXAlKDlRcTEkcFRzPSROVDdYZyVdPyhYCi1sRS8+dCJHUmN1UGA4LmVkNllBPjwhPDtJPEJGLzYnX0ktYGJGN2FmXGtoMSkpPFtGWyMsX1hLZFstallUbTBxPwotL1NJJkdWQ0ZYZz9gSC5oaDUhJjgkVUVUbTo4OWAjKzlgQGFCazU2UzdSTSVzVHApYyJMNTw7N048W1tsJE9ZRXQKLTNiTUx0IVl0YmtpKWg8N1opN29ZU1MyLk5Ga0FdV1InYS5RTihJLXJHW2NZcWBGPGEkPmQ/PEFcT3QyJTcnaS5pCi0lVjhNYTVWYWxEK01wLlpLNTlkaWJtOGE6RWAoVVw9aUo5UycidVdgMD4/VGxdVHJRODNEUiVlSTI9QGs4RCgjJwotX2skXVQiWDFydVxxTTtYOzs6MjwiYlYiXU1XaSJ0bzFWTGNhJl8pNjQvZEIyOWRJM0NAO3ArXFJOcTUwK2RiQmoKLUcvZy1nV2Y4XjdTL0RsWzhwbE5FZjRbRkNdciRBZ0YzW1Q6LDAxZjcmT0ojWDpmN29ZQk9xWEpvRWtwRyFAcVZuCi1lVmtnSi02JVNeSCIoTC8zUFVsRiMjbzpMNXFtXUNUXycnazhHVXQjWWBMQiwxO3A7VylIb09pNFpCcitqO1VfXQotQjI1Ly0yaj9jQWpdNiYvPW0rUiRXVWRcPzZRNmUwYz1QOCVhNHRvRkAhP2I2Tz8nb2VXaVkkUDIuVDpUMjZMJjUKLVVDTGVUOGpvZjovOCcucEBTLGpEZCYjbmBlND5iWlU6a1ZkQDFPRVNqOz85O2hIIkM9cDo6N1BPTVJBU01yZlUnCi03NylmY1IkdUVeSlgnV2IiUixoZiw6NGJCK2RZVG9UYENgMTQhPSRwV08nUkMvLUYsJTcjNzk7UiIuRjNSXjVYSQotTGBHVDEhaHAtIWdkI2lhRSUyTTQ6XktfW08+MFlfKSROcEstJWRzQzo4KD86YnAoJE1fM2NkPm8zcWQkKFBIMUkKLVBqKSZvNSVwNVczNm9AJTlGUlZLRnRWXzA6TDdRXSU/QlJpKSFRI0BSVF1rVFckMmBSISwpZ3RhcTBANGJhPkUwCi1lSzE9YmllN24jLTkiS0opRko4VDdEWWNVX1spWCMqR1h0YS4zXUwobjNLUyhGQVBvY0pMSDshOC9pPGFPOkpPUQotJypBZUM1RT9lcEM0T20hIyxRLkIoLm9kSCNKITE5UkVpPWtAWkgrWjEqblJSa1N0ZjJOWFNkLXAsVm84UExhNlIKLS5nbXQoUTcqcmhlI1NmbjwtOClbQUAqOlVLRz5waUAwL2EjViRCZ3FKV0QoJCdFamxHSWkzQVIvIS87V1tPTUBoCi1CSS5YYFlrXFFxSDVwLl8sbllONV4lL21gM0NnLCoqTnFjVVEpZzEsIjNVRkE4U1tnPl5HJW5vPSttNiZvQVdoMAotTV1aKThbKDpoUFNkPktpLicxOUE7SE1AWm91bV4oRVM6OS0uVDclW0sucTpNZU9lSl9QVmxMZWFoJ1dtJ151RlMKLVlUXipKOE8kdTIqW25AXl5XcV1YPyJTZjJSV0g3alZfSSQ3L28sYTlHPGUlQWwyX0FDKjxKTXFgQzNWJTchRFgtCi0zTyZfOyVPRD4sME1ZS1UjIWg4KFtENVhiNlJab2RqaDBCPi1IcVJOZ3EvLkRUZUYjWmxDRCYwQTo1VlhvdSphTgotW0tBRC05RidAWD4nYG5Yam0nS04wRmBeW0txYUtrLShVT3RtUSE1TGdPQ2lYODwxYysjSWAnaz4lK1gpWGJBZ0YKLSZMJmZRY0BPXEtwViJPdEo7Kz0yODhiN11HNipybyFJQlIwcWMoJjdPIi4scyNxZklZVk1IIlcpIVUwbmg3VlJNCi1GYGwuWDhNQ1VHPyIscnFlUkUnMWgzLjFuVDBDWGtsKDEhW2xPVzxmQU4hTVFYKGw3UWklL3I3L2codWpXKD4yXQotZmZgKjFqPVByYF04JScjUjRHMkdSQFsjNyo+Ujc6JVk8XCMqXkpTQGVmXFIuUEJrWCdbVG40ayZoP1VJby9FO1EKLTwrO0h1SFY1ZyczX0ctIjtVRXAlLzZHRydeOGFJTCYlLzZIT01iLFFXSGorLjw0JkZeRGRPa3RKUTVtLmBQRk5kCi1BLS8sRz4tNVxQW21yRi1Qbm5WRDYmJWIyZipUPmdsYSpRO1Y5P0xoLDouKmldNiNxWG00VT08Rk44MFZcZ04jKQotWTchLTJqSUcuO1koaiZScSE8YUQ+MkU0VDtFdUhnS1hZTWtccVllQkFBViRQTHVCa0dJTCZxMjojWSw5Z05yZ0UKLStRUFUtImxAKmEhKV5eMmwmK0w5QldTImdhQkE8IlU2SjEqTS8yXHIubz5YLl5rc05ZNVJbSnJIJXJgMVhTaz4lCi1gREQ7XTczQHQkWW9VIjptVD9Uc2d0T1VsSl9TJFFpLFRWQ1wwbDM4UD9yZ0IhPD1EVkhkJzdfPWRXSylNbWErLwotZyJnWCM7SFMzST02NmJxMzptbWJXK0FaSyYjT0giTzpWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi04NzEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi04NzIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDgyNyAwIFIgCi0vUmVzb3VyY2VzIDg4MCAwIFIgCi0vQ29udGVudHMgODc5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgODc4IDAgUiBdIAotPj4gCi1lbmRvYmoKLTg3MyAwIG9iagotPDwgCi0vRCBbIDg3MiAwIFIgL1hZWiBudWxsIDc4MiBudWxsIF0gCi0+PiAKLWVuZG9iagotODc0IDAgb2JqCi08PCAKLS9EIFsgODcyIDAgUiAvWFlaIG51bGwgNDg4IG51bGwgXSAKLT4+IAotZW5kb2JqCi04NzUgMCBvYmoKLTw8IAotL0QgWyA4NzIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04NzYgMCBvYmoKLTw8IAotL0QgWyA4NzIgMCBSIC9YWVogbnVsbCA3NjcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg3NyAwIG9iagotPDwgCi0vRCBbIDg3MiAwIFIgL1hZWiBudWxsIDQ3MyBudWxsIF0gCi0+PiAKLWVuZG9iagotODc4IDAgb2JqCi08PCAKLS9QIDg3MiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDg2OSAwIFIgCi0vTiA4ODMgMCBSIAotPj4gCi1lbmRvYmoKLTg3OSAwIG9iagotPDwgL0xlbmd0aCAyNDY3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQUVFwIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXmwkYzMmSE5xTFFURVhAVD50TDlLVSo3ak8iIUVdKzZZYTZqQWJSMWkrdCsKLU4ub1cnbkNCPiloMXVNamRbWjEhMG5kSlImPUJPcUElRVViajBNWFdUWlNDaV8rJD86Q2M3dVVXRjgzcz48MVgrCi1mbjMzVHFocSJBPXRnYSQjIihwXGQnYj42KSVAcjo4QW9IXSUmNGBUNCQpQ288XUNSVjhEOy5FLEBMJ1IlXVNbNQotJi5YPjs1VlMuWVMnIWNZSzBtNihWLjRLJSVMYVNMayxYSWtuQjIsdWolL0NWJG1UajgzJjJ1W1lWbjZpYlFBZ2cKLVRoKWFFI3RyV1koQylKZihgWGFELylWNyMwO29mZE5fOG1XM0pHOVBYPFMyN08/YlJeIXNtVT8lPi0vTjRIOEMiCi01bT4qYl1PTUY8VGBiciteWjBTKlR0OTdpNVZvSFRuQTcoUjZeWW1zTlhHWCImLlJZVjAvSlVKK1I6XzchdGBVMgotOS9ENSUqPUlcVUNjPWtoci42QyU4R2hCYltnQVJyJ0ZjOitjTzVfcmpVMlIwaiJUYVc1WjQsUS5nNylgREEzQDIKLVBVUzRQSyxlQWpdKDVwPTB1XCFzZ3ItLlZBJEpgVzAmK20xMTtScEQsV21UVThqLmxaLi9OUXRPJ0NXaz4uI0BoCi0yQ2RgbFtRSVpWI1hNIVM7bWUrTmEzay1cRFA7V3VUR1RrUkMyN1pqUUAkOSY/VTctO0s5I0IoZ3E4PzdSUFNaVwotQDtMdU1XZio8WyEiSGdpPHU4SS4oISYraEA8OWc/WGliW1lqWmdoXC9ESTBLVS0nK3FPPitTMzw0K2pfNHEqPVsKLVpFOjE3KChTV2xRaC08PCwjMmBGbT1paUNRXihMY0tsJjIkaVhKZmBrL3UsXy44WTBYYENDJTVSLUhZKm4rNlZvCi09TFZpTzMobDleI3QlZWUuYUMkX2VmMWViTDEuSiwwZ1k7aEBxQXQlJGFrOjUhT3VBT1lFb1g6cj00KyNfXUgubwotOkFxc05waWNbUDRCXFcnSWNOLVQ3XUU3ZVMxZmMzKTtwS2VFaW1lR3AyXmBfXCYxWExeSC9kOTRLKitrZ19cSC0KLXJCSGJDIXMrQGRVb104MmFsa3VPYmJKXHJYP25mcjk2SDZlOERaRmdARmskcWhwTyQ/TzlRJkpDKWM3X29BOTdzCi1PLmBHPW45SzE3ZUZJR0ArMytSbTpKKUZPSkgxPGlOKWIzUFpjPkVRRUBDIUE+WyYidCZKaCQ/KU8hMDk1XzhWYAotaiNYKFNnU11GOjhBKWBnOyNycl86M2dkLnFtQWtRS3U5JilFX1A4azRDSEdPPEBlOSROX28vTXAuM1BdISZYc00KLSQpOExyayJKWlY3OHVlNGxGV0U/SWFqUmolNERkUVs6T20+Nk83OTRXJmFqaFAwT3BbUkZPVk4zSyxAT2BgPDIqCi1bNk5iaUBSIT05biIkNzc8XFgmUi87MztvZjk6UGdiVUQ7VygnNGVJLERbY1csYEo1VSlUMUFdVyxiWTdVcG45cwotJU5VSXBAUzJUTld0YmhvT1U7ayRsOk4zQitAJF9ENiIsUzMyKTtWSixSWnRRRF8wOXMtcSxJMydpNldrOUM4ISUKLUt0cFUsUT01LEhqPFBNMVZXLj87TT1HLFxiUzNFRGdrJkApRWMvJlU8UTAzJC0pJmduUDpfWC4zK2hVbUAsKGQ3Ci1hcTFmXjBdIWFaTGkvJDAnYV90bmFKTiUma0RmaXRWPzJHZW1TTjBqOVNvLHBMNjBcISZFQ180JyZZX1I8KWFfSAotRVclbS80WSpAb2NCal5xZjZQT3AwZmA9MjwxXWRcSGBcPVUsZSg/WShZbF1UQVIpbW0rQytiRkspOE5OZkstKnUKLT1yYkZGL2UnS2w6N2FLXileb0hETUJSWDhkNC1TM1ElXiZYLSUpZyIuUW1nclckUiFkTCdCWyM1bV5mLCZoNTdjCi0pOi8jPSRkI0VaLSZIYXRWQU1qLmlBIjVDb1s0Sl07bCo0Q3BiVzMoPCU3czJFWFxhNy4wXiU5IzE4JUhyWFFUVgotQytTQFFMR0kiVF9lUjFYbmI+JFtqL2pwRyFtNm5SLFZyIytOaj1NUDNCMD0jMGRSXUsrazNuYD1kMGQnOm06PVoKLV80Y3VgK20qbkwoYGpTdCoyJjZDSUQvS3QrJE5BczMuJy1JbVFLYUskYy41cDhDU1tROWdxR1cvQXJDMEZJXS1sCi1sVSNgKWMjRypzWkZYK0oqWjomU18lJyZZM1lKaVRZbjhgKjZHWC9aOzhmR0dWKDBvamI/QU9RRSdVVipoMVZVNAotbVFTJ2U3O0BBV11FZ0dBYS9HRS8jXz9IXTs/NCFGW11pa2MnK3VLV2lRKyVdXnVjUVE4OG5nMjFzKExBaSJzaUoKLUFlJ0BgKTFwJV5AJlFHaF1za1pYYzI2VzMhRzItOWtaN0BhJGo3RTApQU5eU29HQ2c4RlNCPzVxYTRiQkNZc0ohCi02PjNiTVVHaGgrZDVUOVZuOXIyOEpZR2luPD5ePD5UZ1UyQHEqNVxmOVE2LE1CK0NWaDRCPU9fYFIoaTQ2JkNoawotaE0qTFBlUT4wQmk9JEhRXUllUy4nbldwOjxAZkdxYmwjQCU/N1drU0VnWXFUMHBQRW46aG0rJyM/OCgyUSVTbWIKLSNAMFI+QlQ8Pz5GcyI0UjYuM0JMR1RBUTRBSSQmJCxtVGhMQFJKTFJQS3JWXEJATyFtWSlGNWU4ZlRibztjQjVvCi1UUCcka0Q2L0pebzkmRChGajhVVkVwIzpLKkArKnMxITVgVCNFOERMWlRvVz1pS1kjay4jKG5DX1giWFFMKmwoZQotNSg0LVFEcENBZVQnOmMmVk5zLTIxImJjTUI6cjIlNkNzdW9CbCxRPilUQWFwOjlXKWxiVi50S2wib3QiXCUrUEwKLTpoVDhfJkwnLVtmUXQnUVJJRCtbNVF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTg4MCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTg4MSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgODI3IDAgUiAKLS9SZXNvdXJjZXMgODg1IDAgUiAKLS9Db250ZW50cyA4ODQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA4ODMgMCBSIF0gCi0+PiAKLWVuZG9iagotODgyIDAgb2JqCi08PCAKLS9EIFsgODgxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotODgzIDAgb2JqCi08PCAKLS9QIDg4MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDg3OCAwIFIgCi0vTiA4ODggMCBSIAotPj4gCi1lbmRvYmoKLTg4NCAwIG9iagotPDwgL0xlbmd0aCAxODE1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQUVRxIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxMHQsT3NVUklFM1IxPzFSN1psSFBeZyZRM0ZOVGRaNXU+cD4mL2dNKml1TlRkCi0ubD5uPUw0YDEkZlAqJltaNnRiPTgmOFVsSTE6ciZcP3NtRE5sKjl0cU1cbyRhdVBKbEdpXEEsRF51TV5ZOitYIQotXyQzYDlWT0ZIQjhCcy4mVUVEZl8lSC48LjFsYXBSYjVCJjoxXzozKERsRGFtLz43I0omLip0W2YnaXJdRTg7KGEKLTZbUWcuLSNCKUYyOCg0ckFJJ15CQlcpWG1VT21rTDV0XVdpIkc/bFdITVdZUSE6cTl1RHJTX2AlUldlPihHQE9JCi1DKGNUM01aMkRDMCUwIyRMJFNNPDNSM2hpbTVyVy1iazQtRlBIPDpATCFaaE5fTSZZUjVVPENfLiplR1JkPT1KQgotTmhfLWAiVi1fSVI2bzFUbTU3VmVQaXU9OWMmVSIjJ0VrZG5gMUZmZyNYQXUhJFUjOjBMYlgua1pAbDBTLjE4dCcKLUdaOUFZbWcuYy41QF8/YSMhQHIjZ20qbSVPUFcmSURaSVpWXyEsKWhmaGpWVClkMCJIaSh1PWoxbUMncC1GJnEnCi1ZaEYjI0UiRTBAOEVeYCo5KEtWV2FqSDJMKFhySi1nSk5YIWdARkxUJ0dYKFI/amR1IjhXSEY8aCc1QGAodUN0aQotKF4ucitZQT0pVDYqQE9fXl9DJz8hKisuTG0jNUBpQGo+c0BaXTFgSVwual5DXWxiKVlXcTZldEtGbTBATyZnSEEKLWMiXjgmNnRNS2tNLS9wZyR0RGlQMiErSGlAXVlNZkAsSUhoOTEkJ0olWDw7XjFCZVIuXWs6QUFVWTY3ZkgidFk5Ci05JUcjbj9uMW0kOk1OPVpXOC50cj47MCFfI1twaDpIIVpZLSx1RGsuVzljSUFILC4wJ05nPE41Tz1RXkxCdS9tRwotWzAnWi5wIjUqJ24wPDgmJihkUjlkZj9JUzUzW0NNb0hsQVM7LkhMMS87Nz1qKlJGK18uLk5NXzQxNkhTaWVhZz0KLS4xRHVFbDhfdUVVVkpyIixAS2c2azU3M0lvVmREWF0/VSNiRFhnVHMiLypCIm9OOS1BZGQnJVwkZlo7OFsnU1Y1Ci1fXzUwMz9lKkRFLkpCYEpMJFgnIyEuIzMnU2MhIjBHK0gqXVEyUkkyT0pIZGdbNys/TDIjJHFKZUVjJTRObGE4NgotQStpdWkpTyJII1dXJ1s9KjxYZCZTOj4/VDtfIUtbV28sUkxKSUVNMCJVPWJcPEppST9DPVZDTTIrR2FCXSJXIT0KLSQ0XCsnTU0mX0hhXVdDOidXaSc1TGcycWpCa04vJlswRy05Sy1FSmY4LF1Ca1ZYIi1vPlBgN2ZPYVNMP3EkRTkxCi0hPUVXUDhoO2s1X1RyO28wLl1QQF5iblpPO0cwdUYra0BnLiEqJ2xyLmlpQ1hOTDciLGQpaGVPQDhjSG4rZ3BIPQotKGcyWitBbzIrSyt0Ly1XKTtLKz9XXWQiMy1BXSRva1xiKUQuQWUzWFpyXDAoKE1fK2Nfa19JZCpMZChkSzhraWcKLUwsUmlCK29IVHFucEwpKGBvUio/SGNoMTtOUDJnUmQhc2dJT0Rtai09Mm5rX3BZZFgsS15MbSgzQFBNYSo0KSM5Ci1pVD0qKFFUQURgWEY/K2tfOWdAcnMiMGhDMypNQFk+WFhDWmxyNUlISVAwSTNadEpcSD9UWTYzZGhYNFFGPjVUNgotPCwkWGwzYj9QPUAucEllZnBzTWhwLGdsVTIuXUhYRU1cWmNiVnQ7OksnVl1uWUJCVGFcKiQkNkZATGpaLzJLWkUKLTIrKGQjY0Jkb2ovQDNGVDRxTnRURyJWMGBML3FSVFYlZ2guWnA6Zl89dExsTXFCaDxLKC4/Nk5dLUNMJE9ENz85Ci05P0IpclVSS3FDVVduMzphZVhuRClebStObnMndUYoPXN0MitfIz1AY0BuQklRRCNVPippK2lXXmU2QFk8ODk8RwotTlxhanU5b3FYI2I7NGE6aS4+QCVcVkRYQ24tcEtffj4KLWVuZHN0cmVhbQotZW5kb2JqCi04ODUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotODg2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA4MjcgMCBSIAotL1Jlc291cmNlcyA4OTAgMCBSIAotL0NvbnRlbnRzIDg4OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDg4OCAwIFIgXSAKLT4+IAotZW5kb2JqCi04ODcgMCBvYmoKLTw8IAotL0QgWyA4ODYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04ODggMCBvYmoKLTw8IAotL1AgODg2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgODgzIDAgUiAKLS9OIDg5MyAwIFIgCi0+PiAKLWVuZG9iagotODg5IDAgb2JqCi08PCAvTGVuZ3RoIDE2ODIgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCZEZ25YUm5UXj4KLVRuTVdEMmssSSgxV2RsKUFOJXI4JjZNJUEoKEQudGlUM1wpVFBRV3IiJUF0TlhbIy0nKWlTOShiRzxYaTR1cTdICi09PFdMKTVZV3ImTitSVkBhREhxU05eaz1AYVZHKmwsRDBJRFdmYTxLR0QmPypVJnMiaypiOiJdJTNiZGNmT2whPAotJF9bJUtYQ0g3XSYvdFlIMz47cjEwdCxPc1VSSUUzUjE/MVI3WmxIUF5nJlEzRk5UZFo2KCQ7Q1k2WzVIIi8xK2YKLUFOQ1ZoXiZKQT0sJyNCL0VRNEkwYVBCNkgoQmwlcWJXSyhGIyNHWihSWUJdczVVZWh1VzhvbGBBIl8xKEtFSkhxCi0yQGNzQWhENTlGSGY/V2tPMi89QyI5RD4qcmliXzRaTCc5SilvRUNRV1UmIipdVEVVWnEqKV1rbS8vVGNBMFZEdAotWUxFOUFWPTQxYiEyQFtjOyQqaDs2PD4mQk8xPD1wJF9bUUkqUSFGWzVtK3FXPiN1IyZZbG1LLiJnS2tpIVFhNUcKLXJZRWBsOVt1I0ZQQUsmNmM0Yy9lMEwtMGBOIzBeVChzcD9fLDkiaWYiOkhwRXFCXGVVVyJoUl0yISUwUlBcaEJVCi1iUyhbZVJZN0gnbDdqWm1vK1ZgPTZDQCInTlBkX0ArSEI2TGFxN0oiNVlyKXBqMj5hSE8pcStQNCJkOCcqcTleIgotQSVrJU9OdENTODtiSUh1MyJBPCNtJU05MVlpJUpNai00QDk9ZVBzPSNSJ0xgLDdvUHAzJ101TGI0K3NdOSMxXE0KLT43RGdKO09aQzciYywhcFhHRzpfJWo6cjxTckF0c2hATkokXENoLUMsPEUtNGBrdUIxM189OCI1V0BEPSF0bU5KCi1wOlVTaWNkNU0zIzEkZVVjNGdgKi4qSHBzUWFrIT8lS2QiIkg9InQ+NVR0akAoZmhDJ2VjTlJpTCJObi01MTFUcgotOkdOJl85SkUxTGNfYFZuLUwmVU0rYzI5MUFLamc1QT1sclMxJ0ovVk1PMWltWWA/aXVUNDNlajFVXTIkMyNsXlwKLU4kL0EqNGpYNDBaSCQta2BINCZqUG1CW1RXMS8lS1oiKk5vODApPFFdVCRvTEpKXldiP3FXOmUtMHFUaU8nM21CCi1qaSYkJyxFYyRXOmZKUlApMiZXTkxfKCkraC9vY1huOTRpSU5mb0UpKGx0RVowPyRhQDZZKSFwcilLQ00lKCM3SwotWWpgUylSXFhaVjdvQCFAMiRndDoiSUpDUyZpUDFMPk1bI0cqPD1jSTUhP2xSQyI2OV5oTWhGNTxUNnJCOCMrI20KLT5QRWNqLSRNbzlbVWRzdGI2JjY/cU1YYWtJWVZvQyJDaiVmU1coLEkxLDxNTF5sQmZLVTZeWkQ+S1VHSGJwY11xCi0iXnA8Oy5eYSJjOzYoYGJZZlZLSjUmNjEwWUhoY1tbRypBXzEhUk9GWS9WQlEpIV1PTWxUcXFlZCpCVkopZmwsawotZVRuRig1aSorU3JfYz1NbVhiRmkiVydnP0Y6XVc3Mm8rLls+UVJmIjBWZ1RFJ0BkUUUpRXJHbnJQLHVuS182PVIKLVYqNjkrXl1MYE0mdGBaa00ydSdvSyo2WiNoVyFPO21fbTVjZixQJj80Lm5mNUBIVFZLVFNvUD5fP0d1NTNOcSk/Ci0oYGgpO0RySU9YYFVGZjY+WW9pZU8jZjRrTHVTMVNRdFpfU0xfMy4hSystMF9sOWFtTjJrWm1rZyg4VjhFK2ljPwotI0JTbHNfZVJGXyNXYFw5J0huaWpOJC9VZmdiYlVpIT1WV3RGYikjPnBJRnU5cjBjIWZJXVdBQyc1LXFPIW0iPUkKLSFCX19kQmpkPDJaaVZrYSZaLnE2Tjc7QzJESkg0NSM2c24tZkt0KzY2LGVQcFVNKiFIQChZVFM7R2pzLlwzQSM9Ci05SSpcUyZlbVsyPVBfbUJQRS41Tl5CL1VFW1w6cSRSRG1ecTctKDZbJlhob2tAQ2giWE9BY21rMWpGL2Q3K24xdAotNV5YOlBBTmA7bygvUiUhPWNedSxMJzheRyE3Q29+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTg5MCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi04OTEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDgyNyAwIFIgCi0vUmVzb3VyY2VzIDg5NSAwIFIgCi0vQ29udGVudHMgODk0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgODkzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTg5MiAwIG9iagotPDwgCi0vRCBbIDg5MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTg5MyAwIG9iagotPDwgCi0vUCA4OTEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA4ODggMCBSIAotL04gODk4IDAgUiAKLT4+IAotZW5kb2JqCi04OTQgMCBvYmoKLTw8IC9MZW5ndGggMjU1OSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJkRnblhSblRePgotVG5NV0QyayxJKDFXZGwpQU4lcjgmNk0lQSgoRC50aVQzXClUUGNIayIlQXROWFsjLScpaVM5KGJHPFhpNHVxN0gKLT08V0wpNVlXciZOK1JWQGFESHFTTl5rPUBhVkcqbCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjtyMTB0LE9zVVJJRTNRbl1LZywrVCMsa1s2IltGQ2wxajEhJWRcMVJJOiY2SyJVYAotLk1gcGtMO1FgUVtWN0BcIlpNcSxycmIrVDw5Qm5jaS5KVzBdSXQ1SG84W2BtW2RxK2kxWlQ7UzVuaT1sTUxlWj8KLSZzJyo5Kll1NDtNa240RCE/L0MlJTNtXFEjbUM+WHA6UnQmQ1tWLDxKVFAvJU5oXy1fMmleTi1eXnBjWyE2LXNyCi1KSFQzbzUqOE4+TWFOVCU3W2dXIUxkMltZOl0lcFxaNlBJSjRNN2lsa1JcM0A5JFQ+VERpZi9mS2BRRXUqIkc9YwotXUo/PG4lJ1ZMcCZyYFwhJUhCOEIzXWtYZmpxZ1onZGE0OD5AdDtdVmAkN3QmJi5YPVhiOkcuZyZxKWA3NlJeVG8KLS5xPkNEMEwpOy4ka1EuTmJASGxzRiJHVGwiOVlcPClpXlR1ZkpZNUovKixBNzs5NlU1PCEuNnE8PFk2akUjIihKCi1ea3NoT0AwSVpCLyFRaCkzNypvJzFKUFglLz9WI0NpO2ZBdE0xVDsrKTY/VTJabyQ6TThHJyk/O251P0tfVFZqNAotbTZjTjFoUCY1OVgyOlNtVU85IVM4TCdJZDladSNyPCM3YjMsM3ByZCFbUS9TPy0tQFs2XUMlcm0mZV89UGJeRm4KLTxUPk44WCVNSWtAYU9nMWdJcillUl4rXXUoMTlFcz1CKjgxQkYwNiljOGM/OnJCR0Q+J1pFaEpqXllzMWIjR29yCi1hJyk0U1EiMnUtUEpCRitlRls/P0paJCVobGshYzQlMjlAWlFpUWA8QGlAY1UyR1hpM1A6UFlRSkUvWUo2TzpVZwotO2JJVjlyc1UsMCVxXT8wKD0iYUdqIlRhVyR1NVhWMyVTJ1knOD1KK28kOixAPDdJSC1oTmI0WEhYKE9EbFpnTnUKLXBxQVE7OkczOyw7XzMkbTxbYFU+bEQoM01eJTIrcTFEbHMiJVxvLUFKUHRPOTlLTFBvLHI1NUciIjxYa2NRKWBFCi1kLkRUIXMrdWUub3BcSWEnSjtgYWlmVmApMT0qITA1b1xldE5LSWwtMllGbzE2TXJKc2E3MnRAaSYiIzFMKHUwLgotPUhnTUJaLnNoJjJLXiJOT1VLNlhqbkw6WDtic2hhb3BodGwmLW5tNmE0K2JaXWFwJFszNmpHJjxiaz8mOkdKJDwKLUcjQjlEcV1UbkVwYFFxT2NMKV8jXygvcmI2RUdsNU4xLD8hPWcvP3U1QSpfLz1uI0toXzdCZSRVaHA0ZCokMEtZCi1QZkgrV29bM2g3OGw0YTwzJS0oPSMrNixkSl10WigidW03WCY7ZzlLTjYyTDY9Ri83KVUyK0NsVF9VamdnbnBPZQotQUljXDE7KnEwV1hlQUEtQmQnYUJQWldIbSYqbHIqRCowUjlpcHA6XEA7Yz5xLGAlUDYmaywoZDFCdGQuKVpzUTgKLSdhWD5OLTc8JTgpZmZObTZKKlttLSZGc25FNEFCUlpCJGBfUlAkLV47R2RONUNiZE1bWWVLJG4kcGhaVzp1VDhfCi0idW5BPitQXVJsL11EViJeb2UjMWE+L3JFVV9qL2NyMUIyUkFsRCFgKUNlU0okLldSbkFIQEgiSnJtUFkhYFBMQQotSkRrbmdvPDhXMkVBUmguYUtcQzZpOTRfbGJcK2FjbiZhW0tgU11TckVKaGplN0RSakY7NEMhO0pWYmZcLHJIaysKLVBfczNASmE+KDRZZDZxP0FuX2NhLydGby8kLjpxYE5oZShsOC5hWjgiK2NTdG5uJG88T05uYVddMVoqc1pvUHQuCi1gOVg1V0JpIytCODRiKScxQkBRUiU7SD8zIzpdcypWZCMqcSQhY3BxRTlQMj5sOG9IVjZvbiEqSi0wNmhIajQ5dAotSV1pZ2k9Ji9RQUNLLFs6Y1hPUURlMEQsak00bVwhT01vPUAxOy5QTF9KKCs9TjY3REZIJzdeISdLdCcjJiI1JjAKLTtYV0Q8YiI0JmouPE5EJy1YW29hSD40SlFYV0VaP0pnaUMyKDYtZEMuXURoXE4lQEE/WDs4P1Q8NmtoLl9jXDlUCi0nbWNNXUtqQlwnYVhDOERSOlQkLjBKcUBcI1QyW2leVDlzdTRwLVc+OWhQOWY/cVdES2YhS1pCQiFkXmAhUnJnNQotXmZtQC9waD85IWZKMGJWI3RsZzI0cDJLLkNUNUFPJFFdYjAuaS0hXD0qZWlRNk9kSiQoL2ZUUCEpVFZyLllpL18KLUw7J1ZdWWJmTTBOV2csUXMmO2hSL2hJV0lbI1FqYD1YUHRCQSE7WTdhKDBoQ3EjXm5pN0BmVmc+cjM1RzNaOVc4Ci1zLkpmYCdTQUQkJjQyYU8jcENYU2clai9BOFI4Qy1kOzBBI1RNXUBhW0NXVD1HKVI5KDthbG9wYyFZYCVvRSs4MwotMGhcJVpRQWlNRixCLmNDX0QwLGssVlxATWUiLXNUTT4vUFRpOU1EO2FAbzc2ZGpHOl8qLyMtYkErMCVySS05MTEKLSwvV1VVRVgiaE49VXVdZSM3KF4hZSFwUUk8VXFCYjEoL18sP3JHM1IyV0w7N2YmRS5iXHUwbD9aSjJeL2ZWaTtECi1iXCUzdGoxUlwhPUROOUVYXlZEZT80YloocDNlPy85VylocCZZX3VrMTRiT2ooI1xZVFVnKF04bDJKOGwuOzpVZwotbSonbiljK1B0QzU0ZlgsODZna3VyZSYjTlQ+TidAOGU4VCpSJFZpbmNnSUxWNV8nayU3KkpmbWIldHRbXWpgWnIKLSVxNj0qM2dhJUNAYG1hLFY2bjcyVWR0c2heIjRkNTInL1MibFI+TShvY0hnLSErcCJUW0dcJE02YHEqclJYMzdKCi1hdVxRJnJmcGZkST5NN0E0STxgKSgsUEY0cUhtb2lwcidlUGlzWEtYTjtkUWxyND5xV0cxa1M4JHUlNjEkNUJlJAotZDNeOSxTYm0vQEMsRyYvLkAlSiYyLEc9MEM2KWNtRUYqNjwpU0VRN1ByIzNFSjpJfj4KLWVuZHN0cmVhbQotZW5kb2JqCi04OTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotODk2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA5MDEgMCBSIAotL1Jlc291cmNlcyA5MDAgMCBSIAotL0NvbnRlbnRzIDg5OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDg5OCAwIFIgXSAKLT4+IAotZW5kb2JqCi04OTcgMCBvYmoKLTw8IAotL0QgWyA4OTYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi04OTggMCBvYmoKLTw8IAotL1AgODk2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgODkzIDAgUiAKLS9OIDkwNyAwIFIgCi0+PiAKLWVuZG9iagotODk5IDAgb2JqCi08PCAvTGVuZ3RoIDE2MjQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCZEZ25YUm5UXj4KLVRuTVdEMmssSSgxV2RsKUFOJXI4JjZNJUEoKEQudGlUM1wpVFBjS2wiJUF0TlhbIy0nXT5nVjQ4Wj5tQEYwSmMkCi0sMm4/XjVZV3ImTitSVkBhREhxU05eaz1AYVZHKmwsRDBJRFdmYTxLR0QmPypVJnMiaypiOiJdJTNiZGNmT2whPAotJF9bJUtYQ0g3XSYvdFlIMz47cjEwdCxPc1VSSUUzUjE/MU9gZl0kJl5nJlEzRk5UZFo3MiQ1RjJdNTtAIi8zQG0KLUEyS2c4VkRGcE1uZlRXUmJbc2VEWEc/OioqL2xkUUUuQzIjJTNudXQmLiEpa2giKHFBR2o3M3JNLUQ+Ik5GUE43Ci0xVV1aPm5xVnEjPUNockFCcktzXiUpWz5OWFpVKl9iVztaKkpFUk9UME1wZ0ElSEclPSV1cyJKZkc/bT9xZjsmOAotOTtsYUo1RzgoP1hwaCdkSGs2UTpiUClBbWwkUDYmNllOZTMnRXRlRFhYaFItX1hdL1s4WjhSRTVdSSheMkZdQmIKLS1vNC8tQGhQJmUiLURBJC11Xi1icTdhJFdibT5ybDFnXDg8OS4zJVgiVHJHVDMoKV5PW2s8QEIkZC8kNiYwTzRPCi1jTi0sUVk6SU43NTlQVWthQkJJOF82QGFQYiZiQTU1IU8saGdiYyttQl1eb04xdDRBbThvT0I2PVVTWD9lMmUpNwotT1BILEkhPD8oMSRhX3MxPWs3JSRlPzsmc0ozYFYzJ2RNUW9ONlJURDRVdUR0Oks0MCNTM0FaZSw7QFNXTmcrNTQKLVhHZyU/VEZfTyxAYU02O1FFPmZTPUkjLGMzRCEia2RnJyJANDMmJS9fJCd1c1dxNkh0QmkyYlYpLmVjJV4nIy8uCi1KZiVOJ2RoZEdscyc+OjJdSy9kKWJsTUhXUiRLKydmKEk6MiYuWlUoTEF0QDJDcTQhNkBPKCxyJUowODEhSz8mMAotbSZlIzltTlt1byhuRUlTLUZGUEgzYipCND1VP0wvYF1LaSIpI1w4K2YrbGhcWSU4SUNpW0pVWyZtKExeSypeKmoKLV5pcXIzL2EzP2NuMU5tPTdUWkpEMzMnSkFWbishSkI1JGRIYlNDXUJwOypUbT1taGlCbDtqLU4/dSI3OFZsMW5nCi0qbTptQyFVZFMnTjNXcXVXOHI8TytnY2c0P0BAJTxtRT5EUDlUJk4+LXRNJi1QPFIqWGw+JXNEU1NZV1ZoSS1RKwotMShPJ0ZjbzRabCUsIVI3JDciTCk1Kzo2TkItaGFdYy1ZOk1MKDV0KTZQXC1kZWw6MFs6Sy5fKlFvYiZcL090LToKLWVPJVlgZVpzIUc9Mz0xPUk/ODUsJiRQP09nYThHXT1NbF9RYDhNSktsUE5laT9fOytcZVBKTj5PJzpARG07NmhxCi03RWksPzknXCFjXGJFP2ZAXkQvcCs6TiZIbkgmbWhLXCxnJTlTJjFXWWgsK2FlbW9kZjguZ1dmTEdacyRIaHIoXwotPyZaLWlxVk46OUlVNFwkYXFELVRha3EwPkQyVCFtKDFvPycpNUIqJiRUXHFnLSZEdDhDP2MybyVNcDRxbEknKm8KLS1cY0olKVAyMjpKRG5eLEFXOiFmWjhUNVNSZmlGdS1nZTJ1QiRWJnVnZGMoP1dPT2VrUk4+cGJHRGxRZy4pXVwwCi0lMyFfc0hPSGdRXnQlSCdoRmlgYl8wKmMtcDsjYWBsbyZjVzdIaGVVZUlKMDFEXycuTyhQN0BEcFomPmhOcSQiMAotYVYpOGA9XExsKiY1aTlUYU10UjtOMU89WW5TQ0dfW2ZEYHQiViVNdChUcXVxPGhOVlVPaWtyU15OSnVKVFZEPDwKLSY3TCgpXDNzR1tdKjxvcy09YW5eK1g6UDQtdSJqQzA+Yl89KXMjNClQQVVFRFo9Q29qQFsmdWRuR1BnRSgyZDZLCi0sZ19ISkMzO0dGVz1wNT83V0VLXG8/IyNULlxsNiExVmJodEosfj4KLWVuZHN0cmVhbQotZW5kb2JqCi05MDAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotOTAxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgODk2IDAgUiA5MDIgMCBSIDkxMCAwIFIgOTE4IDAgUiA5MjYgMCBSIDkzNSAwIFIgOTQ3IDAgUiA5NTkgMCBSIDk2OCAwIFIgCi05NzUgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotOTAyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA5MDEgMCBSIAotL1Jlc291cmNlcyA5MDkgMCBSIAotL0NvbnRlbnRzIDkwOCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDkwNyAwIFIgXSAKLT4+IAotZW5kb2JqCi05MDMgMCBvYmoKLTw8IAotL0QgWyA5MDIgMCBSIC9YWVogbnVsbCAzMDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkwNCAwIG9iagotPDwgCi0vRCBbIDkwMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkwNSAwIG9iagotPDwgCi0vRCBbIDkwMiAwIFIgL1hZWiBudWxsIDM0NyBudWxsIF0gCi0+PiAKLWVuZG9iagotOTA2IDAgb2JqCi08PCAKLS9EIFsgOTAyIDAgUiAvWFlaIG51bGwgMjkxIG51bGwgXSAKLT4+IAotZW5kb2JqCi05MDcgMCBvYmoKLTw8IAotL1AgOTAyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgODk4IDAgUiAKLS9OIDkxNSAwIFIgCi0+PiAKLWVuZG9iagotOTA4IDAgb2JqCi08PCAvTGVuZ3RoIDIxMzggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCZEZ25YUm5UXj4KLVRuTVdEMmssSSgxV2RsKUFOJXI4JjZNJUEoKEQudGlUM1wpVSs5c19NYWk+Jko6TGZeKHJpPjs4Wj5tQEYwSmNOCi0sOCI9NlJVSjJuYmxScC1nRFZkZE5eaWJwLy5OXmsjL3VGISw/NkdkI2AiVTMiZ1tKV2FVSmUiNmliVz1jN1VqZwotNjAjamJgbnRlWjI/UVFsLWxgcTJENU1xVTIoM3IsKkRzVF0sSWBlY1w2cS9YJ2RiLFUjQyFsOy4yYm05O2oiWGwKLUY+T2snI0BlKEVsZnBFc0tHYWxTS15yPihTI0Qqb2tlIkw/K2xSMjwpKmooSkNAQWUjXm8udHBVRzE9WlgyPV5aCi0zWF5MK2trYk9FYk91XTdPKVc1byJZYG1tbVFoP0hbTGBwRSc/S2JKJjlLJFU0LzIoMSIycTVaYDBKNC5dSk1DWQotSkgxI2hdcnVlXCYzTVRiYipCbE0nRTRiWFladGxUYGJWazsrYzlkJmpTWHRxIS5tM3BYIjl0XGJTKEUoMSFFR3EKLXI3akBEYjNDSD4wa2ZFJTYwI1ZfKDY1Ly9gaWxIbT1QdTFLajBGRjQlVilIcTMiPW80P28oV1EiNDZdRG0jclAnCi0iW1BzWyYuRkhlXUtEMlYvO0FpZiIlX1QyNVhCSnRNX0tdTjQ6azp1OEQ7LG8sQEwnUiVdU1s2NzFKMlVjbk40JQotQSg4Ui5sSDZSUSVAJEFIKidaXmhoYU5QayF0W0JAWyFLcVYlXldkZzE7Kjppa3BWUC8uKkdiUlEpTVhvJUtkIiIKLT1dVVRONVR0akAoZmhCc1BJMGc8Ims8YiZscC9CUFdFUDZyI2plMFtvQUpBRSQzU0p1WWRiR2BhdFNKX0QvV3Q1Ci0rWmdXalcwVUZgQiVdKjAnZk9HUUpEVz9yX2BeOWRecFBUMj5RYmlAQDwpVFNPQmpeIlk0dE0/ZklKZyw7ckpVUgotWTlsTHAiXD81OnAjOSRwZyUpcW4qNV0sMWg0aVAhISowclQmclhMbT1ZNWovJ05ZQiE0cW4yJUFyV1Q7ZDApYiIKLWFjO1dSOztTa28zc2UjR1knZ2BFPFlPc1RsKj1kal5McFxiXXNBLkU2biZLUjhRTjQjbF1AYzsoJ0hvPWloU2d1Ci1TQ0YicilCPzlhNkRKTUpaXTFgUCVbWk8tJVhBdTJuUCJvWDs6bzhVJjRUUS5TSiI+YiopYHREUVNsKHRhIzVhOAotXUZKbFMtLUBORFNNRHBaLDtAVHRkOiElMVhQPEdBaVhjTytkXjYwI1xvX15HPSsjRic7aUgtLmNXU2dUU1FDZFoKLUUzKT1XWD9tbGhAZUtgaTt0KyZkPlBvXCgvPTJMXD04bTs3ajdrY3M6QzVnTkUyazVrUSVdS0dPMzxeci1hWV5jCi1VOmFyN2dbW1c6N0UxUVxTZj5TakMzaVdcZSJdaUJNQGlgVjRebCFzVURPXGhfQlJLJWNwO0U8VFsiSFdmaltIKQotWG5KL0FQJC9VdFo9PDhrL3QzUG9cQ0wwKj5LJT8rK3VoLWorNEwsa1Y0OU9zXnRlNWpSczcsOEVbMVxoakVeaC8KLWdIazpNJ0t1KyVxLXA5Tzg3O1pdNCIqOjpQWl4uUDhRZFNXWyxpKiwxXywxSWpfXlZMYmpuLDByXio7KShiMFkkCi0pb0U0cSRxZSc/IzNiaCVfWydqOzk2TXRaZVJLYE9rcG0xYWVOOS5jcVk4QytkS0MoWzE7cVBYWDUlSllJLTVaPgotSmQ8NTMpYHEpPUJdVFlwVWozK2VvOjFGQ0kkTThYK1IoMDo3N0QwXCs8ZnJaTl9kVGo1RFQpPDYpRzUsU2lEJEQKLWIxMzZrRjN1QEBsbmFmPidibjlTX0FPI1cwNnFRZVEsRjYlIWIoQGlKVEc/OTM3SztZUDNmIzRCZEY6YSk3XXBACi1sa3NtUi9tI1ZeT1RlVVw7YiQ9SDAkQklQKEsnaDQ4UTRqRzFJdUljVSFrO2hAIk4vXjE0OWIvNyVKNi5EREB1MgotM3QudSFIb006SUBpNy4hV21pIyo1OmZ0XDVJXk1NJmY9XDUraEVASywvNk0lJS0wLk1WJylBLmM1Uy9HYjc1JFwKLT1qYVdsX0IiJTY6MXEhYWQkYDE9QFg0L3A3OiNMOUFXbWxBIkJ1PlhdZmgqTHIjPTFGci1dKyw4USxCZy1ZJCYlCi1OSWQ3LzpBSWVQJm4ocihhITtMZSZnQlhQSkpKRzRmaHJGQWsnIlRJO1s/ZVcsXz8qITxbTz1BLzEnNV8nWi9dOAotODUzYSQiQilXMDEsOTtpWXRHRldHU1ppSEA5VWBMMV5lKlAyTS4kJiVEYkpRWScmNVBMQEU4KTxSUmZVNWMxaT0KLU1gZUBQQk9pVVhwb1tccyEqRmwoQ15gLjsqWzpqLFpAYkxgW0lZaDFnLUJUYS5XSmpyLi5BcEZnTEAlP2tZcV4uCi1qOzdyS21MIWlGRFpxOysuS2xZJ0Bfb3JELTw8WU8yJEkjJC42OlRAaVBCYDVNYXFKXWckRGtIbS5ETiJMYChnUwotVExLVFdndFJxWWRHSSM3XHNIT1oqLm0kZmxUKjVwIltuLEhlIzdEVVUiVWlvTTtBR3VeNWdAc3EkLj1WOyl0XW4KLSo6UldLP1JOP0FVO1ZLaV8xQSshQS07fj4KLWVuZHN0cmVhbQotZW5kb2JqCi05MDkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi05MTAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDkwMSAwIFIgCi0vUmVzb3VyY2VzIDkxNyAwIFIgCi0vQ29udGVudHMgOTE2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgOTE1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTkxMSAwIG9iagotPDwgCi0vRCBbIDkxMCAwIFIgL1hZWiBudWxsIDcwNCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTEyIDAgb2JqCi08PCAKLS9EIFsgOTEwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTEzIDAgb2JqCi08PCAKLS9EIFsgOTEwIDAgUiAvWFlaIG51bGwgNzQ3IG51bGwgXSAKLT4+IAotZW5kb2JqCi05MTQgMCBvYmoKLTw8IAotL0QgWyA5MTAgMCBSIC9YWVogbnVsbCA2ODkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkxNSAwIG9iagotPDwgCi0vUCA5MTAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA5MDcgMCBSIAotL04gOTIwIDAgUiAKLT4+IAotZW5kb2JqCi05MTYgMCBvYmoKLTw8IC9MZW5ndGggMjQzOSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJkRnblhSblRePgotVG5NV0QyayxJKDFXZGwpQU4lcjgmNk0lQSgoRC50aVQzXClUUGNRbiIlQXROWFsjLScpaVM5KGJHPFhpNHVxN0gKLT08V0wpNVlXciZOK1JWQGFESHFTTl5rPUBhVkcqbCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjttMyQmSEdBMGooKmhFXStrN2IpdFhLRStVakQ/PTlOSUQpT1IxKSVHamk0L21ucQotQGwwV0lrKidwI1xfO1s3L2BWPFxfaVttZE41ajVEVmNVJFJOYW1VXm9LKD1GYipBIT41ZnNXSWIvaE1uIjlXbm0KLSYySidYX0QvLlZwY3BrTG0/PzgrTmUlMlIkYVBDPWw4TSc9OmRDYTtqLGhcSy8qZElHXVdfRVVCSCleV3FcVTpzCi1iVWBWWDRxP1c2TCdBLmpgMlE4UTFYUGUnQHNIWS1OUGg3RG1fM0ZnbTNGMD5SVjQ6bm4scm1yLEBScWklRGI9MQotbVwuSE5OJGViRUBzSTkiJU1PNjciWTwkJjtBYi9pNWZ0a2xqLGh1dS8pdFRwJT8uJ3RrbyNEUlRUbStwIUg7SGUKLTBDP3NUKUYiaV8/bDJkdVFsQFhibzpTQjI6RDs3UjU+VmwlIy4pXCNFNUZMQk9WSjliJG1UYDcyXk10RGNucWlfCi1DXWInXUBuS2UuN0RqY10xJ0E+T00sWmwjbjNJLDFlUjZSMV9tWC0+WXRdY1AhcysrTDliVHNoaUc8XVpXZSMiPAotajFnaTI6Yy1qa0hsMy9VJjxuVWs4Y3RHYyY3MHNhYjtXMDBRJyFqMzIuL11UXDIyZSQoNihcXWMjY1c7SUhQbloKLSFEJGZBS2BWTlgpTVhxU1hdI1tqPyI/JFZPKEVYJk4/XkY9NTBpY0VUI1Y3PElDMktFVTdiS1NMJm9HbDloVStQCi1sOEMwUUwsMCNCXEU1bz1OLTEtWyJsUyEzM0dVLj9QWDcoZU5CbEcxJS8jLy8xZ3Qmc2I2bGYzYCN0WTMsSEExLAotXy8/VGAvbzciJXJzRUY5SVRKdSJhY3M0SkJYV0ZXOzw0RT9fLilaPW06QVtzUUwscTo7X2xUOylrZCMiOmFmOVwKLTIrS2xrTWBtK2ZmZFUlXihGdGhOZnFbOTY5XzpALW9GMiVROiwqL1AyTj9gRCZIYy4jPlNCJSltJW5ZNDpaS2BVCi0lbUFda2VzRy4tRlJhPGVhZlRCXUtII28vYVlHUltoNTNUZjZ0M0RpSyxvVStgYklQdSozSUEpYGkyYD5VK0A0OwotYkYxUkgjbS1jZy0+b0xZWEszcEVpazM2UmxYWWEpXj9DY0ltR1sjRlRdbV1MLXRPcHVmPGM9Zz9RMEphJWAtVCIKLUY7RXJsWDlFRENYPjFOMlpBOVQqQDcuaF4hJ1dqbmBMTCg7PV5bcS0ramZZSEs0O2IuIUpFTldZZzFqUVI2OnQvCi1yJTgmOnB0SFs0PiRTbGQyaHVAcSN1ZSZlIyhXQ0kwIU8mXl9pZWJLIVRmbFpvakNnXmFYXSt1ZUhOZlRfUzhHRAotQFY5WHIzSk4/KT1IYmRbLiJSYT5cXjNTXlEhPl9rWUkjTiItYFI4R2FpU2paXm8ybF5AI21rTGlfZE09OVRwI2EKLSk/WlhMJT1ybzFMSVFGdDxhIiNZNWskJCQmOj10PWklTDFicTY6YGtVcGojLzE2UC9lNDMqYF5QP2IobC0jcyRrCi04MyVKMSxaS01cVjwsLy09UypFT2w3JTxfRV48NV1VXnM3RDE2RCZQLFlLUlVvVkYqYFBqV0tGOHNiaEwtIk4xIwotSkJoPD1XSk40TDcoSksvVEs6OUxSa0tuJ18zO1tfQFlCVDsxKVhqXFBnU2xOInFdKDNrKV9cMjtTWGFjOFcsVD8KLUoxbUY2QFYmL1VSXXBCLEpYQV8vLTNXZ20nI0tIKSQvbl0pYlpYMG5WbzhHKE90YzRDbCciJCVlOWJQREtJQlleCi1BTzMzODI1KTFAb0VPQ1A0Q21mTFBhIUEnXE1YI1A+XCtiO1RnMSYmZmcvMVdtLUxMMVMyIScrQU4zIWY6QylNXwotSXRpN3RQRVkybkNwWGxnTDIpLTRsLmxsQmVBczJmbDYsdSEzb2k6T09RSVhYRCNLQk4qQD0xbjkxLFB1YCdcVU8KLT8tMD1CSmRAO1BAUjVmZSJjN2FRPDxVRnFxbSVxIltATD9vXilCP21HdVZuSVpuLCV0TDBNTVw4cVxsOUswaEVoCi0nIz9GLloxWCdQMnI0dSNaPCcvSFIwXl9KYVZnLS9KZC5uLTFzJiFVLlRYYUAiZWEodVMnaGY3Py8xWmlGckUwKwotUHBwMWxZVlxrUF1iUTlnMWs8YUgtIjFjQClhZi1TJVxgISs2cFs2UEwyMTMxWGE3cmc5UWJJXkU3YyxJJnV1SiwKLVc9SE43Jj8nSjc7N1VTWzBTWnNTOkshJlhCXkhTSD1TaF90WFlNcV04RmpxPkJTXU1sUHQ0IWYrbXR0RCRPaTNbCi1YZ1JBaSZ1Ij0vTHIxR0YjZylhQDxYKll0XzpAQ2pwL0hnZVpEJWNETkRFSTZcaUFFMmxYNm5QNC8tYidaY1Q0aQotNiJQL0JQT2QuITpmP20xJWc4KGRecTEzXCEyUDImMSh1J2VOJkRobFE6Z1psZDRLIk5VcVtTLXA1R3EwME1nUSkKLShHXUo/VU8uXTNpPXV0S1xcLkUnbHEzajdhO21oJDJNWGxrP1MocDdaVE02RkhWa1BcLyM5L0VeYWNTVFFlSChaCi1iUS4+TWVzLDlTJzA5M1ckIzdUO1JtQ0owXDZKNXU3ZnVcY2dWVEJGRFguPSU+UjZfKVgqWCM0TFRuJUlKb25pMAotUnA/S2JTMm1VTFozVzlmTihmPUk9WXNZTlI0Y2N0Y3QuMixbKjV1R2dNUUVgJlFUR283S0EibiRIJ3QjY1NpaW8KLUpvMDVZKElMKzsqVG40OTdbc01TOTddazwxVW5zJU9HW3N1LUhUVzZALi41Iy9dVF5jImA4ZT00OUorW34+Ci1lbmRzdHJlYW0KLWVuZG9iagotOTE3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotOTE4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA5MDEgMCBSIAotL1Jlc291cmNlcyA5MjQgMCBSIAotL0NvbnRlbnRzIDkyMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDkyMCAwIFIgXSAKLT4+IAotZW5kb2JqCi05MTkgMCBvYmoKLTw8IAotL0QgWyA5MTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi05MjAgMCBvYmoKLTw8IAotL1AgOTE4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgOTE1IDAgUiAKLS9OIDkzMSAwIFIgCi0+PiAKLWVuZG9iagotOTIxIDAgb2JqCi08PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL05hbWUgL0ltMiAvV2lkdGggNjc5IC9IZWlnaHQgNzU5IAotL0JpdHNQZXJDb21wb25lbnQgOCAvQ29sb3JTcGFjZSA5MjIgMCBSIC9MZW5ndGggMjI0MzkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KMEgrNDMkXTdLIXVTbDU6cTEkbyo9bXJvQFNvK1w8XDUsSDdVbzwqakU8Wy5PQFduWzNAJ25CJCdSXlwxNVNdNQotPnFfUj1BbENeY2VubUA5OjFBN1JiYjJqPFRNVDwkM1Q7Njw4IzAkczw0WlghU1BRMWBDL208azxpb0gpPGJrXkgKLWpgXD1FWVpQXkIzYUVOJTUscWJlUUZnXzpoL0JmLkRIQW9yZidSW2I+LGxiJj8yIjVIXmQ8ISI0PTFqUkxXIVlBCi09TS82KSpLUzlQRWBrTiU9IlRjX0FvaCtmaycmdEw2dDwxOClzMldFVnBvSSg+Lm5PVz8qRG1zRyRAKSEkQGVuMAotOS1RSHNmKFhVLWksRXBHNHNxKzddU0gmJGY/TGFmUHEodDZrZShmMj0wOipARydkTik3bis2QkxnJTgrM2M0L00KLWsuSCJnP0dDLV5oPSgsZEQ4KG0vZFpgXFFyTV5RRyo/Rz4jXF4jIVAhTmxaZCUwSipMNkE1TkImM0xYXFNoTz8hCi0jPTosNyoyWicmNmxxdTwvJldrSFdHbEFTJl1CVU1kLjUtRDQuK0YxOGl1Zz9dVEloYiE2LWBFQ3AoXGchazAxIgotMSFEV2EtbyhASCZCQ3RaS2QnJVddVGplQmQ7IkxQWEtidUotcEZYJWFYYTskIkokbDRNSlJPQGJOYUovLEtWWDAKLU1QczMhUGZUWjwxSkdEPmAwL2ksM0QyLGxCVyZMOCFmWlw4Jz4zOWdXUkNccCZPVlltL087YSZGTlllI2ROJz5fCi05cCItUiNaLWEqMltXRWhYV0tHdVBmNVJLXz1ZKXI6SnU5bCRVUmFWNzAtRSZuT2E2U2ImQHVHKVYtV1FvIUJdQwotWEt0JmtGaydXJVcsaUQ4JThpRUJLMS9jMSJVQU8/J2BFWGZlOFZmN0JAKyQxU1JCczIsXXQ/YUZJYUZGZDw+MDYKLT9zIXEtcG45bS8yLjhQXDI3bz5dPTBGTDRkUz1oWmFdNlRvbURFWXFHTnUvRmZsWzJhMmRocV9xKlwpKSVLMTUnCi1lUDNrTWcsQVcrTCspZDptb0Evbm1GYlpLO0xSOjg8dER1bU5GJFwnMC1zaGU5aGcrP1siWko8YyQxXydSLD0ybQotOWNkYihTZHVAYmQvO1hVa0VxS3Q2Imk4QUlyc1A2NyVuXFlcR15pIzdXXDM1M1UrLDBOQG5kI1ZKQ2k3WlE9bVYKLWsuOSoiSlNbQF8tKEowNC9xNlZ1ZiJTXHVpanVqYFVnQUE1VmtpP2leImgjQi8xKmxhPyRTP2kmYU1NWi9bSlZXCi1gS2E/ZmZxcm80bk07ZkZhUlhHTidvSGdTOkQoa0FcVjpwOmM0QEFMXTEwRkFtRDFBVTRTcjYiPm0oQzFGLSsqQAotOUJDPnVdcDd1LTVBPSwyKD0kaVJEKj0zLjw6Y1MsRmMxRF0sckxMJipOcmEkRkFbMGNeaFVMNDYhNmYzW1tFcmEKLUdJTzQ1ciFUcjtuR0o+Szs9QWc3RzQiWVZdPlNATXFdQEtRcTVgMnBsMi8vZDVOPmZDP2UqWHVoTkQmaiYpbVhVCi08JiFiYDFeUGNGcSlnXV8jMUItc3FnbjVkJDouY0ciajotWjhaKzhXXCdsLHVOKVVvWE9IJ3I/PUE5K1w2bipnZAotWE5lVSwmSVhPWzBTUFY2KUZJVkQlSDU1Y0xKWz9ZJjVaZ29AS1x1UTslPWQ8PUgqcFA2cU41NCY6X1hOU0oxIjkKLTsyUzRHLlJkSUEoI20vN01jIkBFN0csOWlpcmllTDszIUQkPU5xYEQ2dHFXWFh1OGBfVS5YRU1FSzNvQTNeZTVJCi0qVFAoYE8mPj0vOChkYl5qOTEkcTtAWThhLEJSWDBYR04nOy9nXywpKSdlM3FPY2lVOzhrRS87LTAzIjRQPlo5bgotOF9INlNqS081dGNoOEknI3Uoc1RDbzxPclkjXDBKPnE+I2laJ0o7NT4iIVgpIi9XKWJQcXFLLjlBK19Iam9pTWYKLTtbdWwlR3RCXzk8NGVQMy9uUmYxU01URF1kPzpnUj47P01dJm5ZK3BSbz0zQjoiZDM9alF0QkJhXEhlQyk3KT45Ci03LVU3QFknKkxsYCtddCFsKCVAUkg7QF0yNG0wYk1TYW10SDpHSy1ULWo5WEUnRHFpJHE/OS9xQUkiQl8lUVtGNAotJktHSXBQK2pjW0tpJjEpNSVxblFQPmsjMGAjOl1MVnFnZzdaOHMxLHFFR3N1alVbQllWRmYzXE9cNysxJGAtYFIKLVFwZEJLN11GP2VVNkt0bGUmXlE/QiFpaz5acWMyIWFvdEJkbHAuTkFgaGNMaFFVKilZImZTZDRWVS5xdDpUQipaCi1XSENbW2VJJnVnQz84WyFlUGA4RVJdVFxsTkZBaGVQLFpwUTtkOE5dM2opQ0ZRclldXz5cWEUmUmg/PmE3JmcsXgotLnBaMls7KEBjMTNnISU4PEU1YUQpUUhfXEtoRXNrR0hiKGZhXUVkJ0FMcXQrWCMqbCQ9TlZYblgpNCEkW0xUayUKLT1lMChTb2o0RWRqUUJWMHElWCNJWSxISWFkK0UjdT4mNFlEW2U9a2ZlTjdWSy9CcVMpUURWaSpYKTE7bW90bWlcCi0yVHNqdS1ZS1NGXFs2UF5bRlo/bEZsal4mXGI5KFNhdVFNL1UtcV1taW9dZGY+S00wWjI8aGRqWTRaLFVmbTtXXAotVTorJGVgKW1zQ0RYO2YiXSRWUz1mdW4pTFhtTm0jZkUwSCs+UUskN2gxTV4iSnVkZHRoL01jc2UkSmE8I00vZFcKLUwjdGgmXlxBdXJnO3I1Wm1tWj9PMy9cQCk5TGpyRS4qJzokV3RPOy9AcFxQbyVfP21DY3JGPD9OR3MkKltvUURECi0/cVo+bkVPSCVlPHAmTihIU248NWp1MTgoJyRYZidwUChHVloqYkRSJVJfajIuO29MbF1WRWUpamtJbkQxQihTcwotcTFDRWEvQk89TmtmOlpvY1JNbFo3cldLTERvcWVyckVbIyNTVDZXL2NJaS5cQTM9ayUvay0pVmZMbkVoLzxjPD8KLTcnayRaOSljYjZZQTpCaS8mYUhRcD41Lj1VcEVuTl4wJjhLQGssTmgwUls2LmVmTT4rXUdGa1VlYmwvUU8mPjFJCi0mViJNc148ViFeZFQkME4/by9tN2VYLyFYbGUsXjtscUprVHBrJipLWE1dO2dyVERpblgiRmlZRjBddDRgbHRvUQotQmtDKStaZ1VBIWUhZy9PRDtEbTFsdXA6aTQmXGFYcik+Rik6dDw0alVAajwyRnE0L1lqaCxxVS9GRUUnXiVdSjQKLWdjJ1AhZz1sOnNHO1xGNmdeJTBPbUY/SkBCJExxR3JlJCIpMHBhYEJTKTFkP01LKXJTMWNPNCJmVTdMTW0vPiFbCi1hJC5ub3FrSzcyT2xkbUBUS0JEZCEnZmgwTzEiYkMwQi5AZFJXRGVQMUgtImtmXEZAWT8+XjsicSkuNmhnb2MzSAotJUhWa1pWYE51PTA7YGpFQyFMMEZpb2RlY1RGWC0wKzJVOF1rYGM9Uzpeby4pcUcwdGFTTkYtIz9IamhuS0xMYS8KLTtfVyUlOUBcXT42Z0svQEs4QXFbUlE2Q0VtLz9DZUdNKTY4QThZbD5dPEVpLFkzLyddbWdcUS9hMVVmUnJUIWcyCi1PaT8qa0VWUjhOJmovQzdtVTBmRG8rJltsTF0hbj0/QjxOXD9WVGVgOCNjL2ZZTFwkVz8waEhFWjFfTU1nM1sxRAotbUpZKTlwS209RkhmJzg/cldmaCRTRWZlNlQhQDdlaCNRdCU0MDI3L2E0NXBDa05CX0ZjYyIuXnAmPCJicWQ0OjAKLUlHX2E0cnMuTlw/XVdmZDUva1NBN3UtRUUpalBRPUIwXyxvbC9DQmRYKm4+JHJWc3E0cjgqJj1IJmpfUiEwSC9VCi08NWFlNG8pWGxFaS0rJG9iMkAnVnJtMTA6bjAlKURwNXVLMmxZYTk5NWBqW1hycENuUGxPSSk4a2IvImM8O0s/XAotXVsuWF8mJzR1Lzw8Wz5FImdEODluNmxNU0E7Q2RETGkwJEJta2ppOFwudSpQI0BLQG1EUjlMQSUxIzV1TTk2Z3IKLS9AYm9KNTZhclAkKl1zLG49XjFDViQxVSojLG00PzllUUFvKiFUaU8rNW0vKGkldFdJaD8tVC1uUD5PYyY0bCRwCi0yIS5BNWlfVWovbkRLZThHNylJOWpwZGpcYjgwXSNyciZMTyQlU0JLQCEybmZbLUpoN2xgXm0pNVFMczFOcl90XQotJTtCNVtkLFBgbixha24hUi1qbi0kY1d1OyRQUksyISJHUC5uOlYiPT9qY3QlJTpHUzg6czBNbDIiPDMqcT0pYmYKLUU/KDg2K1ZKZC8oOSldcFgxbUs7LmA+MHAnNXMqQSUoLD1jP2lzOCQpJCthaWQ3RlNqTCZfYkBpSzYqbSRkZF5sCi0oQWEvJlhLLTw7VzAkIjJmVi9nQ1AsYj1QOGxpSnBQYlpYSiltKjZfRDBIdSU3KSNeYF5QYS9BQzFjJTplQCtubwotWHRmI1hkRzMsQTh1QyFQUjR0WlNiZCwxdFg7PCJAIywjXTU7QE9jPFxlM0AiJiliQThANmZbQyoiPztLJFBGJ1gKLUVZQlNkMV46KiZoJHVdZzptQjUrMzctcVVgVVZ0LU9tXDZMXjYxNk0qLD8tLCZcPXNoazldXCstOEVaRDs7U0E/Ci1TTDYxPC1FL1hEbEB1LElrb1dRRistSERbWiNKVSU1NFluTV1QXFQjWWZNWyszIVdpKyRQIUxjblAnUWtJMlZPKwotckc9LDMvOTwoUSJQIyRgWipJY2g7S0JqQUZYOyVcL00xX2glNztIbDM/OyIvKyosW0taMT1rTEVBJXBvLiZgK1AKLVA0XkdqbFInZ14wLz9mXGMja0JBTDsndFQvW0dDL01ScTosYU40Z14pdE86XFpBb2taUCtFIzRudXJySmk+akdSCi0kT0VHZSUiTkwqJlBgYSMqQXFnOTFzajJrJyJcUjFkZVlcLCgyQDEmO2ZPJ1JLJSJjKzFAams9RisxSlBJaVdUVwotLUxwNz5GK1o0VlByUjMvMD0oZzdkc1g3Kk8hZy1CM2c1SVRGIURhLFhaKlNdMDY9ZmUxVE5NS0A1JCg5NDBvLjQKLTFVTzdUYSJvLTExTVFZLS8oPlZaYVVrZGhmZUBnWzVXJzc+b0VnJWA1NEhZWjFacSJRITpKLWIsU0AnJi9PKHNBCi1CL2MiTDN0bUIyWmw7I2hSbUdORDQ3YDIwO1N0Uk89JG1TLzJjRDpwQ2w6R3RYWDgoODBAUGg+WkBiTi83N0MwWQotNklbXWNvSFFDMU8kXz5sMUQ1YTNiIWQrYVhNcEQpNSZgZUVZVkE/cmFYV3RfIy4vXmNQT1RLM09abmpqKSImJVUKLVBBSmNCVzZSNDksaCphYVBIZEZmYDNZWWxlU1QuVC5ecUJZYVs+XSs2TS87YzwkYWw5bzBNdWhfLE9vMlAyL009Ci1qJG83WjkyXmE7blxtaFprdD8qTU5jXTdzWSZySzsjbyFyZiImTGpIJmU1LmQhIV1dKDszX01cJ1RgTkBQdDtBLQotYmBdY2VQYzZaV0QrYD1SMSVXNFtaZDJAL3FiJmQrLigpVzdQZ3BpaFVLJyVuPCYva1NlTloqOEFPSCltNzVYQyMKLWVGP1QzPSEpUiE8Om9pRFBcWCdualxQM1hwbSE+QW9FLFVpclgiZWc7JWZmPG9wR29lR3QydWAmP2hcPTIobS50Ci0lYSkqITtqRERsRj4kYFAjZmVmRjxFLlg2b2o6IzdaVThrPjcnaS0vWytAQEVKUXQlRDtjTWJUZV88Xmhrcj1xbAotXk5FPT1GXjgpYEBvdUNlJVorJEZEJ005XDFfSWZ1JGg3KC4xSmVBaldEV15RbTtgZTomQitRaDU/ZlpgO1tZTjkKLTlzbiVYazptWjxBNiUjL28lTG4tY1EwQEQ5LDE6PlEuWy9MOyxzV1M+U1BcaigxTzUtaGUnOFo8Y3FcXFFAVWViCi1oKmEjQDtxPlM0Yl9cSTQ2IiNvMis3WEQkRlRUNm8jQFs1cE06TydcRUMzbTclazhiJSlSXyhkJyEwYG1UYWNpXQotOGgnJ3FibkZxI101OlQ6KzQrXkUnb15mNWlGN1Y1clxjRFEnRShjZFtwbXEnMkc7LWY6YERbbmJBPCUoRDJZWVIKLTlDQS9UWyNuRSFENWNdJE9gYkNqVXFHMzQrVFNhJ2Q4OyxoMDRLKzArUyRnc1o0UHQoMDRUaHBDcnRATVtncG1vCi1kcmNISE5dLytyJidqKVVSMkMrViIkdXIyZCljaSNCNENQJUYzbGloIStAI0UzV2krdD44SUYtRz4zNGhRJEk0LAotQCstc3FOXiVfJ21nSChgRyc+ZWUmZG9pVkstRi8jSE04dUQ8cypeczRIcktHSSguQEpwWCtDSmVVO1lwSTksNj4KLW0nMTpWYSE4ZFEoSDFgKkpgZ3BWMC1McmVHTFYxQCgrb2ZsZVQ/WCUmNklWOnBecic6J25MVElKWi9Uc25zK1lfCi1AbCpJSytPbFoiMkFoOlI6Q29ibCw/S000VSZHb0ZbczAkMkdcZ1QvcFItXnA8MSNWN208K0hDR1c/byEhWGZpIwotTTolPXNpPmdNZFxlZCtSS0NqcUQ7UVNQaSloaU5uTG9HWlJYYzFKYyhgK21ALEJ1Ry09RDlYI3MjImsjLDFlXGYKLUc6T2k9aisqTVZNbiRFX3BsU0JINlNvV0NMMCs2cz0/RCRtYnArJiMlJSpaOzlaKWRVXlEqUiZPYSohJ21Yb0hRCi1jJHUqUkohZWpqPVA0bzhLb0syXiRRLGRsR1lzTDMncDMyUk4lUjYyZFFIPXQiWCxsLEoyRSVFRjg3JipxJnA+RgotYCVSclBmPldsPzc/aEpKT2tAVnRuVy9jVllFMldvTkFpcVBQT2pOaiMzcU5VTmBlcj5xJVxxVWRyNV0+TlZQR2sKLVw/ZD0yJSkkUzpgQXFlJSkzS2oxOW8pUGopIzVUcD0rdTdTJGlnbnBRdTJvSkNxZik6ZSFUcnBTJSlPYWRBI1txCi1IWlFeaytRME1aTlFtcUYkJ2IyJUUxK0QxcSYsTiRuQFpSWFM8cz9hKTo2ZV5iNy1CdV1eOzY1UEE/YEJpTGtHWQotT2ovakNtNFJcVllFNy1lZGVTLk8zWTh0PUczQE9vT1pFZkNwa3RYWGBDXDlSJ19yNmViS18vUWtuVm1WVDUzMk4KLVJQQ1duRDRYbS1VXmhlMU8uYydzZjFHP19VUkcmVj4mYjA5JSxiI0pWN0lyaz1bKUUwcnQxMT1tRmhaPzNnIytXCi0yNHJQRWJTKjQ3bUtXKE1qLm5fLUZCRjx0M2pFQ2Y9ZS4sclVSKG9MTmlBUnFHakg+I1gjZUtAUjJkLUtUZ3J1bQotaSlyOCkvKDciNl9sYU5IVEQjK15xOmkiSW9lU1JoUV5MNEVITj0oSGk5WFlHVE5fTiZuKnU1R0FbKjBsIV1YQmoKLVJpQVhwJzxsZzBaRlo2RmdGXWBsaG00N1paYWsoXlJtIiw9ajBHLkNbKDErXilibV8iTk85XipbQ1ZYMVJwRUhhCi09MTAmWltfI21xKWY8JkYxVWBjcVwkXnB0UnNoZSNqMSQlXlw/SSdiUnVPczMsMyhzRlxcIkVDcWs6U19WN00jUQotXSI+KVVxbSFhcFtDXmRyXT1ZYmdxbl1wLGBPcFE+XVh1RyRxcEUpPWVcLT1fXXQ8KzNYSzsrVCtaIyNLXiYuMzIKLXFzaEVfb3RQa0xeVXNIWnF1T1NxImklNFwlPCNUZmZIUStqUnQ5PzRfN1VmKXIjcnA+LSxObUcoam1wUGlKJW5LCi0wdUVaa1BlN2dMSHBQXDU3RHNSRmA0U2QkUzFES3E2YzQ6J19uNlpzNEFXc1pBXUIrM2BrNixLKilqYGM2YzMvLwotXyZNVXFnY3JnVkt1ZVh1YUxtTU5dUTsnKUdLJChXKWEmYm9yMVY3cVY5NDFhTztzRSNCaToxI0hiTzRpYW8mM18KLXI1JFQ+YFFXImxhWE1HVz5dbipCXT5iaTRjK01sV3I4R1ljYmo5YClhXXU/Tz5lU0VGcCE4JF1jYVZUSi5DNz00Ci1aLT9QRGMoK2Facj1SRj8ndXB1M2EuM0ZQXWNHNS1vP2h0OGRfLjZccjYqTCNtRXV0N2QjKkooSTUwNTc3RlpfRgotYEA6YzEqQDkoZzhfJjVsZVwlbHVXVm05UzJuPkpaZV9QKW5yR2ZoP0BES1E6ZU5KISpySU5UYCtoZkBub21JbCMKLTRfYFBTUS5eU1JJR0dqX0RjYlFIUyhgOmlnOE9iZ3IpcTksbidoNU5nPjBIc3JQND9JWi5oRVMnJj5rLzRqaShLCi1lX0dTcGcwTjdiclNjTnBnIlNbR2hFQzhfcktsQWdSRkJwVmdWKi43clcxUT9vdWhjR2d0aHFlNHFaYTouSCNXXgotaTRGIU5oQEpSTy0vcz1GaUxOJ2JJSmAjcTI8MCpYZHA6KVFJUEpuYixOR0BlakxnSzNoOTRkVWNmRXFjamgsNmYKLSpLU2w7PzA2VE1gYTMqMV4yKW1xRmkkPVxoayE6IklZJF1GKTxcXyNfdTxhJD9CT0olcTw0Q2pfKjAlLD9ENlg3Ci0/ZzQubmw8XlVYck5HODw1TjA+V2xRM2Iqa2dBW2UlST4uWG0mN25pPzwtJzhjMF11NE0+a29laE4uJzxqbTlfPQotYThWKGM/S15jQF4kYFBibXA+dFtUKSRhSXM2dEtabjMrPk9UK1VCMiVIQllkblwxXmVJWGduRi0wU1xabWNeXmUKLUlrZ09aMj1sO1hvPW1IW3MkPzk9V2YlckxfcW1vUCsiLV9FczdFczJvajsiZVQzOkZZP2hTcUNwLS5PMVQ1aWExCi1EPW51bHBWI0pZSXNxKVUmYm1IJXBxPy5rVDhpWTBmQlpiUGpaX1l0VDldNzlLRD9VY3FScm0pVDw3dVJRMjtaMgotcW43KEpUPXQuYz5Qb1NecjRQUHNUP1s8dC8sXlI/ck9pZ0FUQUJLL3BcbDhycmsuKGRUQylZQF91Q2hPczFHM0oKLStvcDtJK0hUOFYxYGQ1OEolc28vJ0xFcVpAPkA1cDZQcEdJMUNLMTNqLHIhZElSLC0+OEU+cToxbklQblB0TC8kCi1mbFhyOjBwdF90UD9HOUxFQjBSXCtBYiRLLUBsRFVfZFcnUFNKaic0TikmVyVnMyNUUTs1bU9bUSExUyVZdTcxJQotQCREVCYlQzhRXTsuP2VUYyI+QDtbOURzYGdOQzZoRUxZUEZbSFtwSWBIZTktbVQ4MDlycklcZUAuOUpPViNLYGUKLV1OSG1nQ2JAcHFPaV8vKVI5SWxYJyswSXJFTD1yKlQuUWJhQl83YSEyQTdnNVRrPGFSbHVvIjBaLldzZVJvc0AkCi08NVpcbzBzbiVlZ09bMyJFOzVlYGBpRjtRZjVKMTNoS00yWGRARzpLNElbRGA1TFNxQnFqbFU0O1xSYT1oYEtcJQotMmtTS21uNk5cM15GLHI8bmJJUyJUIj1wLTQ0cjBgNUctailyZ1EqbyRla1A+Tzk/J3M1cWwyIiFBPGlZR2tYL10KLVRFLEJkVzgmcVhfWyQpbyUzbl1OLiRETCsiQEVfTTshXWhKViw5OTwndT1tMz9DXGo1ZFlTNXBZQmk4QjZnNWs7Ci0nWjNmPzkrSyIpOGorPWNCYlhhSjhKNEY4K2YjYFVANDRfc0NoMUxObVNuJDAsRWFOSCszNSZcXkVaQ1cxY0hjIwotJypPQDouUGpjQzByNlhRNFlrL1lQaWUxUE5FZzBKVz1SZFAyVDpoITNBXFEub1olV2U7Sl9zOzcrIzhrMmJsKkgKLSpCSShUT3VZVEhjbTg4ZDpRc2w6MUpoIVoiJUNLbEFCQFM4Jy1zc3M8QWRjPjVoKSRHSzJMLUBBUi9KP1BVdF1gCi1mLl1vS2grR3UrMGNTNmFLalJcUkZTK05mZUAkKlZPTV1QJEZXQW5wOVk0Yi5acVhbbTk2ST87NjxaN3NeREwlOgotXSQhZGwoMWA4O2ZiUWBbQGpLVUQrI2x1WzxNPG8rUHNxPEE6XDVaa0ZeOj9xXzE1VSRsS1swW0A+aEhFPUVcIUMKLSZfMio0YEZAV29wI0NNV0ZzVzFiZyFvdDtMMThmc103OEJLJVMkTSg8Vis2XmgmKUVIT15aaEtnTSgrRzdJPTpACi1bYC8nJGVURiRjOj9LK0tmNT1nRy1BTT9XZSY/Zlc9PmJEI0JAUFVYSFZpNSJOPylrS2UzMnVSQWxBPWVXKzM9MQotSktcXXInQj5pRE9mYTIhaFlMaXRDaD5dcUQqcSsyTmVPQGZcOmpma2o/ISMjTFpUTnNycUw8M0NwQSVtPV1ZLiUKLUEoVUU/QVBJTjQnPiFOTUIsYzlZZyZFQTNBZlNQZGM5IzhFbzxgSko/T3A6T1IuUTtLQzptPS9bVXFYXzdvVCErCi1qbEw0QzRDKU9EcEZcKmBaZnNQSC8lPTZEUSE7NDIzKiJHRkNVbm9VWEVZYW1NLnByLD9GX3Q8P0YtP146SGVBbAotR1BfPTU0NykySzRTTG1GP044P3NIb1hWQWdqTDhnZHQrYjY3U2E8Z1QvWVsqQTpJXEhyO1hQJyFbbCJMOTBZb1AKLXM1NV49QldvRFYvKFRhV2knXCotI0M2OWA9PGR1V1otQGw8TCd0aS0zLE4nSGdPbF9iJks0MihwdCUmQUtiMSZzCi1fSCU2VVRsX3FAZCc8Li8jXGFgQDZvJ0diZylXUGRVQ0oyQTRHWFJRITVQTjlfNGJbM00lTSMjX3JsTF5VMycwVgotOykwT2czMm1VJCw2YFVaQytAMzRcSjFlIT9dJ3RsMExlJGUobyY/aExfNig0N18hNFBVTFw6czs3XF9XMygiW1wKLVVqJUY8ZyxxbTgmS1tfLkl0K2EiNVkqaV0rSl45PEhJPF4iOEBKVURVaCNPIkVdUWBfMjhMUTZVbUZ0Vz4iaE1wCi1WJ2AjIVQxLjFTOmVFUFQuJkEyZTVFX0k3OSIrbTtoamIuKlAtUzQ1XElAIXBBKTBzTiZYQ08iKEVlbks2bV46SwotJGQ1TXAtbWVGJS1JVzgzOU5kYGVqZjhpJCRkIWFucCplSjxnVkllQTc/KCJIJkc3IVxjJyovczsnaTMuMSp0MCsKLVNDOmViVVk0IlAtWWQzaG88KU11YWhdO01vWyQpQVAmaVEyaztsUWZvNitnOElhQytINTEnZjNQNE9RUWQoLltmCi1RVEVdZydMSVBSXGc5UDtQZSEvWy5ZTDw8J2glOVhzLk9POEw9JUknNWM5IkZUUFY8bzo+LldbQVQ/N1kwUytuWQotTCQ6TkZWKTJQJFdBI2teTjQlRTdsKC9VVz5aMDUtLlpQTWZXMDBLQiolSShLQTdcQ2xZOUtsOjNoXU88WidEPnMKLT9FRyhQWlc/QV1KdWM7LlludS0zPVIuXFpYTDRZLShpIUIlQm9GQm9vcmJoRE1WPEQtSHExPl5rLjNlcE1kPjs0Ci1IRVt0I1x0PTdWIlk6KzxYSGo6cmZCQDliLzkxP2Y4MzRXLFd1a25HPyJwVXFBPSRHVzIub0tUUz9wZSJQJC81XgotQmg4MnVbKzslND4pUUJxRC5UaVZbX0NCYE1PSWNyJnMwUS1oMiwpZFNFMSxZXFlYdG5oRS4zV106RFQxNj50W2wKLWVWYlcxZ0dAUWQmTi8wNXE6bnAxaDhMYFgqNDRPRFNNRiMpZkhyUC9QPlsraTldZj5RSCYyYXI8bSg0Ui89ZVEtCi1bbzJhJilvYzYnUjhDV2kqPDlIMGlJMTE+KS5SY2QhNzhwcTxbS3M+PGM6JHU0XWJoNGgyTGoiQ1ZjJT9mOiZYTwotUmVYQC1BdCUhLEZSLE0ta2FyLyZDIiVjNG9OZElgPzgiVi87MExhWmdpTWwjZHBpdXMoIkRDIyJRc1gyMCwqPCcKLTknIlZ0UEcuVytQdTtvOD4tTDBcVjNxXTNBO1U3RmtsaDQzbF85LDApPkJBL3JdJFxmTV4kUy0uPmRPLytoUClUCi0vRFxPaDZ0XWZUX1lLWkFnX3FjLmRLSipsPWlVVGo5VWAybDxZb0xSW2xXWkBRXDcuSTxRbDxHNSU2KFxKUitmSQotMUE8WFVoWVgnc1piN04ycScoOGM5N2xhKUwuXVQrbW0sdTcnImNYR0hHK0UkbTpOSC1GYC9VMFRHYic9QXBiREIKLUItcmg/XCMyYCxTSFlVLTxhJnE9N2NkOVpzJSwmLVRbOS1yTyY5YFhKW0E9IVxhUEVnQk8qTCJmc0xVQnFHMSlLCi05aFZmTWBkMVJQQGonVFRobHMoVEolXixLNjBLa0BcP3IscDZecGRfRE9lMjlTaCVrO1tkUT1iWFtCL11ZNDEjcgotUDowQVNKWnM7RUY0bzE5LTEjal1VR2NIOGIxXj8sQzslbFwyVTs/SmZqQjNvU2M9NjhJZFlSL01kXkpZUm0vXjMKLV5XO24lTE4pWktgTzI6N2JvQU1gRC1hdUNWP1xPJV1NIiEjJSUiVkwtUm1uVUQpPnIoWipBTmMwVV86dUQ6O1s1Ci1lKF1VI1cjWzAxaVlISGtbJ0RwOkkxbSRpSD8ua0NHJF0+cUZscVdFPVJDKGI6cmhCTU4rMGd1aXVZP0trdXBOVgotZEAkbEVnJ2FkVWZZXShbbCplMkFoZjwyLiRhL3BgTENPIyglLCE8b207cWtCaUFsblMtLCg5SUdiVjxWVkJPPVYKLVJsSG5uTyFBL0lFSiFXYGNjaT9CUS9bL1ktRlJIY2JQRS8wa2t1ZmdvXFExWEhDbjJGSTo5RFBcVEkoWTpDclw5Ci09LWBDRGJsMnIlam0xJGtMYXEhLVNEUjZxXi9LNCEtVEBYUnF1O2RVZDhlRShaRzQydScta1s2PTNvWmtxcjcjWgotUXJYLF86I0s+V2FhPmI3PSEqXF1pNzdpPltAMXJsKmk/JzJQP3FyJWEka2s/Y15Sb2toXGI6Ol4iYEQkQj1EKV8KLSpBXiY6TTo8U0xmS1hyTV5lPVduaiIqN0VpQG9WX1dQY0NmTVw4OltLc0Babio/ZUtHSz1BN05WX1MlZF41TVZJCi1SX3EhPStkRmlpW286QmIxUT1QXTZGMWA9MkpSaUMvITJpLS9bLFgiNGsicC9vOSktKj9sJidZMzppN3Ipc11GdQotRiMkQ3MyWnQ8XEs3bCVtUzJMY2k2KDlkTCRsZCdSKHIscVJYJGFYcjFcRWBebVFqXmg2Ly4oJmAhTnJjTyNfOSIKLVo3STMhNl5nMUBqMVttPDM9PmpFbFkmMmA0JGhwTl5BRCkkLD9famg8J2FfdDZVT21BSy40Rl1NU2AhaVxUOi1OCi0zOSo/YmBbY3VVXC1ab1Q5SiZGUVI1NipcNEhxXDUuRT1eLjZVUiZZXV5cQkskWW1YOkRhUkdgLiFwRVdkcUxTKwotbyJuV3M2OUk5PVJGUzFYQ1cjYTtgOzx1VzFbdGZuIjFjbGEtW1VQNCIsSz5CPmYib25aPFNlO3Ikc00+I0o8LUMKLTZTKSkkKiprckdOa3RwNWBNO2U6NnMlOnRSUlRDWTcpT0Y0YCp1JG5DVVUjWTZAOlxaPk1QKmdUWGwpQl5taiIzCi0iMCZgT1Rncm4lJywxM1tBLWZHZVZuXGFKNVBhQSomTj9yREozK0RbXWBIbFFDViUuNUtZJmBGYTQkZCdxMEskbgotXCRTRzk3dUpKME1sNEMtTGNeUUZdNSYrbFMuUnRAImlCUUVeQiVWMFc/c2NBb0tAUy80ZS0iT2pIa25lZG0uJT4KLV0xZVwqO3I6MStbN1UiX1gjLUtsJyFZJVNVOG1qXGIhTjQmPDJIViVWVE5xVzhxYS5DLGNTcVxOUVNXL1ZsWnVCCi1kVXBZX1ksM2JSYjV0aGknWD1LRlpIRyImOTE2LmAsZGtnKUBta1w5YV0sYU8xcS0sUEU2RjFRWEpFSjE8NGBUbQotUjRENGtiUU0oLlBLLHRmUjZCUi03RWIrXk4xQGs8Ij45bm9hZTc6Z0hbNzs8YVprVi1QKEJgbEtaamxeY09dbSUKLTBZdHU7bC90TWRyQlQ+QzVCNHJPOGElVyNNaVdnTC4ibT9vWyE9QmdNbjg1Xl0kKFJJVWtfIycwZ0pbXVJGSFlRCi1VclBNcFtgQWByWFdxLj47aVg/XkI+W3NnY0JNcVwnT1xpLVNrVD0oYGZoaUBGPlVxclNrYjcwN2tBKThLSjpHLwotRSY4ZGgzVThpUnFmMFhyLkE6IlpTL2Y1VXFgZEhjNSFCJFE3NkREVm9bPlVjK0EkQ2o2XT1DWEhvSmNUOmRlZm8KLVlILVxaJGZURWJGQUFtOzM5K2twNmxzUWteV2BdbTBVJWQhci9PUy0oLWchMFsvPiY8V3BkZkg/LVJ0WTZBdHQnCi1iQUdWVExjUzNGOltDY2NQJURTbXA5N0pBTyZZb3EhciopTylUJWElOCVYdSRyKUNgWCNYZ0kvNk5IXEJgPzdLMAotKkRzYWxgbGVaVz5xJjdFLjhUIltaVFQuJEZVLTY0ayMsLktRbTppa1NLQkppQ0poSGNYckNLWW9RZWA3RkBYOlYKLTckUiVzSDEnLXQkVmMjMlFzLzkrZzdMaihYW25wKDYkWyVqRkZNVCM7VWJpdV0xa0IuOnJwZTUhM2Jic11VR25GCi0qQkZbWTgnSUAvUzg3NWRbN1ppNFVXTTZoVDUzNDNTSTtTN0c9aDBDKlU/MVMpOl9DPjBcJyhiMydDP0YlKTVmOgotOChHIk9XSDhgUUZMYWVycy89R2NSaVBIalNSRWlTOStPLyY7TWRsVlhYL20vVWIwaSUkL0QnI1s4S1xIKzRiRzoKLTpzOi45ZGYpKkBiOldzNDAkPTpGUGY2W25gYEc6PildWzZCQEB0LVwvUS1BXTwrSkNvZUM+UD1EXzxsLTVtK2Q4Ci1JO3FDMUlgPEJnOEdkR0tIVEVtVFtSZ25cOiY+OFlBLWJtdGknMUpyXk1TPiZZaS8+Xzl1ZltHMUxra2k+bUpaZwotNi1pTUI1L19UcmxCMF85KSUyQyQ1czZmJi0nVWRgRVxfL1A3bSg5YSRBMjM+SSk8aVJkc1tcNW0+RnUmQU8+dFcKLWNhLmFPb1JeMyo6KTlDQGckTDkiPCdubkVPa01bL11JS0RMJGhAM2ZyMTBVPzJOLlJcIklkR0xYW0M5MVJDamgyCi0scVJbPkBvX08jPFYjQlgnTjdGLzVnVCteZTxNbWdJPWo4JlBYVEY4M0Q8WFtAKUJrdDlbaE1TYCwsQ1xOS3IxZgotLC9gTjM6b21lczxLNHJHWHEjU2Mxak9MPSRuU1RAbW1YJG46WzosPGpOUHFcb3MkJlMtLjFjK2JVKFhfXysnRDoKLTItbF9VbUAkamdgRU8pJ2NzPVJNZVJLJT5SKyJCNC5MV3U8JFpfSjpqPXVWRlxxUDhvMjJPbUxacmNZMDRoXFlfCi1NbShxXzdOMmNwaEs3aSJOITs8WFBLaktoYy0qXCMnRS1hbSZtPitKJEkpKlFSVG1tPW51X2Y/Z0guZ1g5Iz02TwotMUhsOGA5XlZGRmVgJHE8b3FlNVckR0I4LFhTVWZQXUw8a0BlRG5wKzBcUCIkSSphMEYsIy82dTtGMDVRIyxELyYKLWkuPSxNT1JsS15CaVpBN0AqQFwrN0siTixuQGtfQGVsZUVPck1FUFJGQy0hKmh0NjxuXiYkPG0qVCojSGk8MGZwCi0vVChsJCVEMV8maGJGbm9sdG5yWyhLWD9LVDA3P2c2Jyc4QTBqJTtkYClWVypYUFsqJGAzSkVQYy5ca3Fna0VUMgota1siIVk7KGEoODFsQidgLV8uO2w8Iic+VlElcVQyZScxPy9ZY11BM25uMkMkcUNhXmI6MlErNyonO3VAO1U2WjkKLWEhSlhONCwxViNsbVxNZlsrbzNNInVJQVFmJWw+ODo7bT89W0BIMXIjZW5rT19lInAzcllsak4yckI/TGQ3ZE9nCi0iOkBccWpCTEYwZ2ldcjNqdXFGTiU6UXRKXExsZ1pDPkUpODUjUm5UZ1QzanU3QjVFPDUxIkE/ZU1SbG5OXSsjRQotcGtfR0ldc1k9PiQtRm5gaz47dTdgMT8kWFEnJ2RMOnRwa1k9NFVCdDROKEhZPT1PTVA2TXFhLWVcYm9NODZZWz8KLV8vPFJicDFCQFZfaGZkLThQTlJQTlFKSUg2c0N0UjpJQi1LQGosP19pXjFUJF9KTVRMSUVdWmovXjpxLWguQWBaCi08JD5PSVIqUCxJQEotJSEvXjcucC84JS5TJStxXUdUUnBmXltUPUonO2Jnbi9DXl03SEgsJmA4X1FFVmo0Wy5KXwotbC9jXS9pdUxWMSxCYC9qQWsxLjI/Skw0ak1raydRNllTJD49PWkvaz5yR0VibXEpMyJNPUBgX1ZLPjRcTiVWT14KLSRDZ1F1XSdcQl1UVi4lPEBzNFIwU3RiTUlANHBFNSZOMDFGZWNGYWA3SSQqaGxGczw0UUUzOkNybV1FWF1cQzlnCi0jLjxPK1owTlkrQlhsSmpGcFhsUVVNR21wZGsrVTlaSFsxKV1dY2YhbGZ1ZF1yal87KVpZVVEmbG41U1s0bm46IwotZ0woZjhURGxncFtgN1hoPWYrcWFYdTlwJElJY1oqbXBJY05dakEjMiMnRl9zQyJvZCNlcVZJJzI+RTQiYyEwVlQKLUQnbS87MlQwRlcsLzxnLGAzVU4rUGBFUSZxOTxMdT0xNFlvcTRBLSstSi9aPjtwLE1NSytxJztOR11eNyl0R2lRCi1UI1BXTWEpJl0+ai0sYmdWOVsrbjtjMTgkYGo4QWglUnMzblc4ZDM9QS9VNk0yNCVIYERiKHI+RDJMPUBZMC0xSAotYk0hSG5BRFA0Li87KERYNmFoSTJcPFhiZDIkUnRXZDEpbylbPl90K3JSYWZoOCo7NiVVLjM6PzAkQCxbYTY6Xj0KLT5DTFIwRCU5TWpzMjdASTJQRnMkalZbSkNhRGcxUGo2SnNFTkAvRzM8RzspSUNWS1o3WTVAXyZtJmoqLTV1KVluCi1MNCkmKkQ3Tiwxa11KRSRTczdjQ29ZSShIPT5pOzFyYGVxNixdJj5Jbj47KjVbOGxiOls6bitIPkdMLms0SDdHJAotVU40WUZEPidXLF4mJjZrLGdDKEE6IjU4MWMwYS9TKExINm07MlFgQVQiamE0XGE5PkAkbSxMJmModTohWWhHNlwKLUYwPHI0XjMzUjlxMj5QQjwxY0ZDIz0qPmMpZyEuN0VQREBRbV4sMiE7PV9dIlJoakEvN28iISJcOEphY25pWyhrCi1PdURqLi5XbFAqXVhMaTJbbjYyMzxAX0VJbF4kI21LIz9rLUpwIys9cCE2VjFXa2A3Oz8kNkhYRm0hKTNjM2o3aAotMEQ3PjdVPktNVDxFTlVDYFUxLUhYJDozPk9zZnQkQzgzQ1RFNXVjZTJmM1RNREckNzZGSmooLTpNXVxPbD83S3EKLURUP2JrNEtOYEM9OC1IcXBHWz9oTE5pQUxINyZkS1k4LyprIzEkSGYiNmpuYm9RQzE3bSojL1xeW2RDVWFiUDNxCi1RPFBbRyVXbDFWQVBJOzBWJl9hQztYSkNZRiRHWSc3RUc3N29eSSVUL2VwR0JPLStcU0UtUWttR2EtUE08NyhGOwotUmNRXUg1X1JFXkM/YjNaaTdEZS5qIjkxa0hgQigsaSlqa0UnMF9OKkcyTUdDMEJpQGxpck9Zb185cThHITBsPy0KLSpbTzhPNzdDOilXOzYpYG1GP2Yxb106QEYwXE1INmppJFRMS2MwPWBLa0BGVV9qcV1VY1MzOTlMSUkyYGchdUdCCi1sXk1qOEcwaV1LQD8qaTtGPD1gY2ReQGhkajhPW0U6VilOSDdxQWIqYGo/T00qYzohIzZaRVYxSFcsI3A4JSUrbwotLTBHLlpyKVdwZjRmN0VpRFMhSkphOVRJRlViVD9hQEhsJU5IXjJvSSVBcyJTMD1fJThYNSZvPm1xRFM/YmcxXjgKLWgrVjY6OlM2KS9BXlJdVm5WLDUlRFZmKVdjRyVMRTY7RTlCYm5mJ09sWXRgRzVKL1tIVHI6Q21qUTxALzo6I3VaCi1PTUg2NT1Ta1QxWmsnYF1BV19HXlstMilUYDRhSEYlakNoaitBQDlpO0IwVmtRZXQzZ19nZC4rSWlUL0I8blJAUQotISFpXSsiOT0hO2kvaCYnKlhyOihfXWEhT0tLXitdTElHXCJHZjQyTylpZEJsMSVyYHIiTi1Cb0FDPl06SHQlbiIKLShlY11xQ3FPNyI5VnU8LSQsa2cuM2g0JjcwZlg6U0ZaWjIyVmonNSIsKlAzYTtecDJMQ2hBQWtKbC0ibUM1I1E4Ci04WW5sQEZpblBOXkk1MFNrTCVITk5sYVBEZWdjdXE8SGMmUVY4PWs4LyNDWkM5VkwxN2V1TFprKS5DPjtZLW5eTQotJWVGOzxoX0ExUCJYPXRATm9iPDdJKUtKWytkJ248ZFRLNFRANG9zT1ZOWWlBVmNCZUtDTlxBMEw7cnRuZy9rX3AKLUlFKEdtXUFASU1kRUxDKDVKdGs0R2dlUnBmNzIhK0YqWkxLOkhwWV9sI2g9LklgSCk0XzlWUTMmLEIyMjhgSjM+Ci1GV0lZVVZxJTBXSEtbPTFHSzhoOnFLQ3A+MCknazUxI3FOdFlQXEQkXmVjIVchbDMqJlxHWCo5Jz9MMGNjb2BIVwotX0dIYU8kR3QpIScqVTMnIjtxLChZIVxIXmApLkxHJyNgMFpyc1plNylpRnA8bis5SG9gX2k3PylUS2tiPD1NQyQKLW9EJnFbbCs8bWBbZDAwNFRMXlxnTSZYPEZTPEVfP1hhSF9gOGdyMlksSUs7NjksdGNGZ1coQVQjamVlTTg5MUp1Ci1UWElVa19aMmooTXFdSTZaV2hFK1s4Vz0yZV1lUSlrbUwtW2JkYSJZbjlaWkpbdXJsWDBoczQyLl9hOTVYT0JWOQotRkYvTC05Rzh1RSxycjxkXWZzOVslJmcyMm0hQyJnLi1ndW0sPylkVGk1O2AoVTkoMm5lTT0lJ1UrLmErO1V1UWwKLT9WaUttV3RgQ1IndWFGZVgsODNbO0clPm5ccUoxZ01UIV1CZWBEM1Y7LGk3LlplJzVkVUsjZkZjKUZhc2xFI1ZUCi1lTS5kbWleOF9fcyVaRHUxQEMhI2Y2WmwsPylydEY2OC8oTGBGUSpXRl83dGdHQ29SOT9hUEcvSl1XXy1zKyFYQgotN0FWZGEoZDgkbz9NOUMmS1xtRVVrRFIlS0FgSi9FUiFLRiIvW3RGPDxhTCVcNz5HRipBZiRJcWYuMCdbPnF1PSsKLU8+KV1ULyFaaSU6LjpGV289Zl46ZjFHKkZUT1k+PSY7QUJaTkUpayZlb2xDWmtrXURZSjVrKCxUbzJOSFNzLTNoCi0yKk43P2g+NUQzT1FPXkFxJz1qYUZ1PmBST1dJb1ZBbEE6JkZtTWA2b29FVEI6MzNtW3FtMG5DRDBiUVdYMzAjVQotS3FEXnBLXixwLiRyNyNDbGpAbHJdaW1ORlQnPlIyMCNvYllcUiwwPUIsb2Q+TEBRM19jLWwsPXJhLEs2Wi43LzoKLURPNEFwY2ZOamo9ZTBbNWJtZmlvPkwjW25tZWRPZ1FLTUliTFdhVk0wMyw3S11IKj9CRWZYazBZIzJrMVorXUkrCi1BaDJDLlwkJ19KcXFIITNlRnNzZFooMDY8WTJdXUEqTS1yVHBHb3AsYV8sZiRZQ2JHbjlXKiVhNz9xZE8sL2pRPgotWjlXcTUvY245LnBtPjgvTGszbzojWEZeblpeUEQ+PVxuL14zMk1gOSpoKC9vTVxOUyM2SlZVLSojakxsKjYjJDsKLUskRTdBUEF0SDYmdHNPJzhYbC1EOCZuZCpVTStcMlUiVzdzV2BfR1AiK11eIj1YOGEiUS5kNTFJWjEiKTFsOC1BCi0tY0BBXydUQ08wTHA3cDpfZyVGS0BcVUdsV1dqPFpwciZDQGpBTF9HRCNMM19DbVgwJUQybHJXMyhGV0s4J2YlJgotTVwwXGE4IXJyamo1WSo5ZEZtMElhT10wV20iTFBMKl5oJ0pjT2xyXUM1RUpANyotO20saWtaJ09fRCRpVnMhImIKLUFFOTtGZFg2dHBHamNSXGJbaVpYcC51YzMtUnJcPDVhNS9YOiEhS08nTT1OXU8saldLYkVRY21qJVBvJ0VAKWZ1Ci1cUy0lMilEUlZibD08R2FycDFydFl1UFIyPyxGKVIxZ21Zaz4wOyMmV2pkNFpVPl8mKyJrP2trYWYsM3QzSC5SVAotTkRjIzYnZVVoLG02bS0tJWBtaz8uMzwhVj9kQW46NSQqS1prO3IqVWNDckVERyYnPiInNzRvS3AzbmkhZzt0YDUKLV1sZUVMRz5UJiM0PEpzY1E7OHBFMnMvXUY+citVOyU1a3VLI1hMSjhTJz5WRyplP01BNEtGaGkiWWddJ14vNkBqCi1TdSxbcVE0MiRYXVNbY2ZrXEhgJzl0Qm5fZkpOO2xVMmhuQUpzPWNPTkRKJ3FqKT5OdFUham9tPDckVT1HI1ZVPgotXikhSSY+bWtrI0Y3bm9YLlUsMDxJNy9OYHA2Nj5JOkFqPlM2RDg6V1NdWV1IPmdCSFBPQVw0czlhQ1wlay9oUkUKLTFQdWRAPE9CMV1vJj1hZlY4a1IqXWBdOm1wK2BHdV1nJTNhPU5sYEVZKk4+Qz0pJGI7KjZqa1dWdUZrQmxVNiw6Ci1lQHIrIWYkVXUxIikpT0dYWkpHLEIzPG5rK20vXSFZI2AtaCtBNi08L146dTxmKTFHMVxNbklbLSxtOkQkRVJLSgotUSNjMl1hTChbc2tabydnRi9QT11cbFc1KThSJjAsMCRXNGFkTUQ1cjk+PmA/LF0xMVE+NFVPPmVMUlchSSY/V0oKLXAicF9MTkEhRTBeM0FIMytcVixpbicxZ0dhOU1WI3F1cVc/Im1vNUlePyIzRyduWGIsIVB0LWYjVFlIOktRKmUnCi0yZ0ErK0BAVC9pbkFaRWJmUjFrTmdkLWJkK1ZocHRRUDxtazo2QT1HVzVVYTEwJmpINiNISCMlMnFZX1pBIUpYKQotU21uP2AodEBFXiotSUEzQTk7dGRnMUsqYElwKHBeX0hTbzk8YGc5U1k+bFMuPV1ASStBNSdDYEUmLVJ0Mm8/YkoKLWYncyQ+PDhxKi5YIi0xRl0qbyVoTys7QlEvYSInRVFXXT1TXGJPbnRBQ18rY28iS0taUkouVUwpQkN0Xm1QcktxCi0qRD5RYmpkaVFWcDEmQi8pWCZhSjJqbCFnYWRKVEVfQXQ+N29MPkNacUMyLz1JLipwJ2NCLUlYOTBxXUcxPTVccAotRGxucnNnWmUqOUQvblJiZT0kVipsQT11MFtDMV86RilPPDE+bipuLy02MU1IZG1kV2VgTj9Paz1QI0RnRkAmTW8KLVk7UFlsZj5bUmY2MmNfTWMtRV8qXG4+c0hMWypHIUcxRz5PN00iWTtIXjhqO201PFZJcS5yJmFEImksRzZeXGk6Ci1hYyp1ZDwrUClPcW9hPionL1I5VURYPkNAIitiRVVFTyJPbG5bLiIucmMjImRGKk01U2hnMT8/blhBXlkzN2YxOwotPl1Zc0gpKnU+KChGP1t1PSssJlJBJyk4bFxgQjlpUXNMOCIuLjlZXGswY25obzZ0ZyRxOU0uY2Q9N2JacmU2Si4KLWs1Ii8uNC8pOzZgUiZwNDloJTklVmZgbTdiaz1jamw8Uls3RlVrXC1sRT0xSHInUlcxKTBhXUM8X0ReYVNfITdjCi1ZTFJwJUJeT0Y7WjtGcF9AVC5bOFNMUlpDbjpuQiZSRSJrX0lKUV81WEVXSEIoTFU+LDByaFU8RzE3MGZaYUU9MQotVUVLbmE4dSRUXFdcTVw4PFVVU21JKEBSW14wNE4wQ2tMaG5yLmprcVpHRUoyXEI4VEdsXl5pcXJiXFNMXDIuRUYKLTxcUGA6QnMyWEtHMEpwaVBgSWF0Q0x0JT5lQy9sR1RsN0djLSIiQSVlcT1mJTwpLEQ1QUdwVy5pNixKIWphQDpoCi0odUx1USpoQlchbDk8Zzg5OF1EcjxnTXFXPDslZ086aSpPb1hfQEYzPiFGTVtYT1ZAIWpWQTskV0FSUyNCP20wMgotYDc8dU9uck8uMURwRVZeJE09VDNIY09BMjpCWDZhMzI6OyVyRlVHRCMqdSpJITwrR2hySi1RNjpiODswQ29wOzIKLVZpVStqVUFWRDEwT2ZpP3E2KGo4LlElLmcuVnJpVG5WPF5EI0VaKVwzN1w6PiJRSTo+I2lidFk2ciZWK0giV1hoCi1iKmAucyZ1ZmgzIjZxIzBXYCNvKlsvc3RESDpqLmQlaS9DdHBnP3BeIzRMIksmLD5bLjlhSVhAWVYxJipZU0w/Xwotb1E2MVJPLSJza1lQcy9NbE45aTojYDklMGw5dSojVltmcyYjY1xgNiMhISRQQilIQkclOF0wJzBgKGJacVBUKmoKLUkiZi88az5yKDI1aGxwIyJMKm82JitwQm1tI11LTWFsa19ZQiFEIj9CKS4tW1Q3WUtuOCxWbEZObSpRZ0g9aVE/Ci1pbmgsSUJiWCohQD1vZCQwWD81cUkiPmsvW11iNDRXJUFcKjVecSRlWjpXLGYlKzlWVnBDbF1VYylVSk83TGxeVAotY1AoNCZZM3VkWzA+JzxtWWE3KU9XRm4oLWNUNzlYWnBvJkZRcVBzTE9PIm04Q0QpSWUqKDNLWWA9Z2BQSFFEWF8KLSpjRSpNY1g8LnFnP25HKGJEdCk2JV9nVW5xJmknNSsmVz1kX2svJ1claj07aStYSFJzTWU8KSgoOyYhLTtHI00lCi1DcEwyTkV1ZjU7Jjk5aVY5NjI7MD1YKHA4Z3NTLCZkLD80MydkTS1qXEZITihEUU45cWRlUFVyKnRWVyduLCFOTwotKEJrJkhhdF0icDkuOCU6Y1FZLEhrIykmRU5sb1FOSFAldCRaZ1wqRUJRak11PDxZLkpHWS5vPGtBTUAyTSE9SjgKLWlVUidXMTdXYVNyO2hUMS5NMilIZDNDIk4pTDFRQypcdCpiJW8zXioyJE45UyZDSmxHMGMzWiJyJVBAbkkib0hLCi1aSjsidTNAVCFJRU8scEUkPU82XVFMQVNFJiE1WG8wYDYma2dGcy1tLnVtWTNtcD9pZGIjXWxxWV87VGIjWzEpPgotZCdCTygxR1BSM0tuMiFuNCFDWVUvb3NwYjFLTSFWPjthT1cyQEZKWDE6JmxTa3FdRWQyYCNiPTtlbj5ASmZxQ04KLTMpYkdoUERfQitPI1trZDNFKTglMVJnRFIhQkxtaC5vVz8sUCQnaXBZOUhvTzQmUWVUUEloc2ReSDwsNDRCJzlCCi1GMz9ca2gpdUcibS44Z2xObCskL2hXbzdDNSMvOkZQTnFFaG1scTtPNT8lOj8xXSdEXktnNj1Sa0w5YCVOY2RWOgotJWQpN1M1dShpU1BUJllKKyRwSDE2PCM7bTFiMW88NCRzXTtqInJcXk5bNydCNTJlPWM2ciFoUFBZMGY+OklQYEgKLWkwJmlgbzVSMzZXQzxoPTR0aTBKanM8SklFP15XVS0kNCZxJ1FVVDVdZWJfMG9nT0JkQ29qL1UqalcmLSdKRkB1Ci1FNCY0SDJgR2M/ZGQ1LSdlOzRsVXJuMzksMSRyJDtgZWNOTDZNTTdoVS9ZYVhlQGJXLFVBOmdMRSY8aFFYayV0cgotVFtULVI5VSlBJWJgTz1gcHNLa2EsZDY7STlpanMrYEQjcSk8cTJYVTIhSWNCQVAuKDs5ISpeRDw7Zko5QG8yUXEKLXJEYi11TTY6TlZpREM9JlxvZWVWRiVKc0AiWF1AVkVUN2kvMW48OzJOLDhvLlEjQzU0UHJoYixoJm0+PDVfT3RfCi1hTjdBJz9LS14jKVQzb2wwMiE5IkZIblteTCVUbVU7RmFoaEc/LTcqPGM2V01PXjIqQi1XbFkuYUU9Q2FOLHIxUQotWS9VKD8+Pi5tdVErRm8hXktfMTU+WkplXWVdVjRBMi1nc0ZfVVs3RE4lJiZfaFNMI2Y/Oyk1Q1EwUTFjbXA/Si4KLT9XSGc3cCVyKz5xZDowQF5ENyZeTXMiTCElX2FoNz1TPEo0OjVcRl1SY3QqZExbbE1pRFxSZ14qOXFbNGJMSCxeCi1tbF4tWihoajddLGthJ2hGYTVMZzVfQ187ZGBqLC07MkNcU0ZWaDwwLlRUNS5GOEk+Syo8LUlxRjpwTV4xL0tVQgotKWVSKDJBSkptODxcVk81IWRLZltgdGotJmVxJVFPTC1RTW9CYS0vJzpnVGdbJk0yJHNDLmAyTU45YXFKLCsrW3IKLXMycGxiOCQtN2lvNGZwPUNVUiNTbTInUmBkJjhmb1MxUVRIJiNVV2E5YyxaNCw/RU1gcDhGMklII0xUIUUhXFtICi08c0NHckVFOzpXRGpNInM8WixvI1RsTHFuXFRdRUFNaURjLzAiQDYnUFM1bUBgJUgnOEo1LmFgRUckN2Y8dU8pQwotJ20xNDpPdUFwT1VeJmVHZUkzam09ViF1IjAvbVshPjxiaVxAZ1M3Z3BIViw+NlsjOjIqM3IiWFFaWnVMUz0jTDcKLURlS2VXMGhIOjxOLlE2PEwlQCInbE8tQyxAZypGZy07UlA6WysnZUxRUUdlPC1aa0ljOyxbNT5mNlwqQUMiNjFrCi09LkxcaEFDJ2o5LXI2W08ya0dZPz4tRXA5SypyUS9QT0E1XltdRjNRJnNFb0U4dGA3XiU3ZWJWczZ1Rm4xQF1sYAotalZHJklAaEFBPzdgPnJPJWZ0IzImK0RTcicoJUMjUjUodD0uaSpDWjtFWUxjY01USScmZFg4MG02X2YjO2YkKSYKLT1xRzFeOCNaXmBmaDwsOUdoN18lT0M7YjBRRTYwWT9GOEIkT0RCSG9BbFJuaFRiZy5RODZnRlwxOFgtaiRnLGBWCi07V0A6RUhTOUZSLSE0cVNSJE9NRiZWdDdDR0JkZ3IyVThTLFlaWyg9V05yKzhvIzRTVFt0JktWLy5jWS1GIUJJQwotO2k3ZSJNNz5KRGZcaVVGOy9gbWlLIis5akRxdVlISWtLKT1CX0cjNz0xRi10P0otK1I0I2VNa0VAJDJTKTNZbjQKLURpblVtMzwnOThbMChAdUpFQTVCY2NnLkVaT3FJKU1fS1cxbk0/Q2dCKz9tL0tvXDYxZk4xdUdWMiRnIz03SEJICi1HJ0IlMjxCcShvSUUzV0A4LzcrVyJhUXFYci0lYiNQZCsjblslJFlPSEJoJiVPY00pV0B1c2l1SGtfYXQ9LycidQotVUp0KkFSSU85aFA7ZG1gbzlubkNoKzU1K0U2WHNCTStNQWdZUnQ7JCJmYGVLMy9pJWwqRCIvQVEvUiFILUdMR3UKLUNsI11yUTA0ZXVgNGUtQzRgVGJEZjJnWE9vbEVjUVUwOHA3PXFkWFsuQUllOzZNYFVLYDdYV15CXzBgSUBBREBwCi1XSWhhbCE0JiVZNCcsMklcaz8tYlxTWnVQVSJDRF9ua0ZvdE1fOjs6Tmo9XTU8STQ5a2QkJ28nNkMzSilmJSpJZAotKmdIRFtWQ3EvZVAvUUYtNEdPOVZhciZaVGJhZU5yWlNcWW1wXDFWalx1TTRhY007M0U+UDI5blBzcVRzW1RUbjYKLUs8XHA9LWs6NEpjdWtaP1c3b0AzMyU6YVxobDlrNFFoYEQwR1lFPyFyMjJNMScrTkVWXDBIUGEqSmRRYyJZJy9ECi1HK0I3bGZhRi9cQGUxJWdHWG1ydVRvaTBWUkcmZEQpMkRwcCkoY1wjSlg+RF4jLz5NKlhKPHAzR0svMGJsSXVsdQotayxaKlFRXWRjQj1aTl1qODghT0okLzAkQmdGNzk2b29gJmhWdGFnQjQnc10nXW9FXFtWTCNVcFpXaTc2ZVs6UyUKLUZCTzVGcVBbVjVKPkk2LUJIKFpiWiRDdXM3JkRydVxiZ2ZDWjBlNFhoLXB1ckEobEs5Jyw6bmU3WFFhbEk5UXI5Ci0jSE5saTI3Ri4tJXVTOzopdTB0VlNRT09oLVBJJl9hM2NUSHFPO1kkWy5rVEY6V11GJCNJblknXXQ5NWo9MFk7PQotN3JJc1M6XDwsKClRZU1DXlJqblBQTEI4K0xmay5zW2U/NE0tZGRAUzQhZz5aNC4vInM6LHBfPy5bPSp1QGVpRyMKLVpjbHBfQl9UMiRNRmxOcE5PbkRnM1wsRVJQRyVpNE1IbE9dUzwtP0hDNjYqKVxHQzNlXT4pSmNKInI1b2I/Vk1FCi1JKFJTTzohPVRwNzZKVzdQWmM1Y2NfPFBOYnRYJjsqODc5O2hwKXFaYygqcUZdXUlHZkMhT0JeYzxUbmNOXihqOwotcmxcUkZjcS5CZVNJO0dbLUtSPUlCXGE2Q0kxT2BTPFI8bFI+Q0BtSVErYlclMDNnV21GTStVJTk3OUxYUURrZDoKLUc7a0gvajxtSDw4XnJGNmIuVVI5XWJLXHUsSF9XQlI0ajctXSFKRnRdXEZDUGBnT2tOKUcvSnQ7cSR1ZTliMkxHCi1EJSI3Wyo4MnVLPG8lR29OQTAqSE80WiNIZWRnQis5bjpLOjc4UGknZzhJTFJlQ3NcW0tpIls9X0VGYlRdZ0dTXAotPmgoZypncDJYaUlHN0RDWlttNj1nXG9CL3JKKzNkSXNeYWZmNnJkLm5URUgzal8naFxoUlRFPGJzMHBtLj1MYEUKLTFScihvRGotWU1OcityLTJZPEQ4L1h0XHNXUCpWKm5AVTs/SUA8dUtlVilkOCsyMFswKj5zLGo5PkdePFFAO0BnCi09ITksXTgmYkQyamluSXQ0PWVnVG04UThhXSk8ZjhPRmJrRUlwWUJsa1ouSEJTcjZ0VE82SURgbCFCXWFeNzRCPAotJmFDRjRAPUctPk1xLiJJWSlNNT5sV2dkWXJfX0RLXUJNTW9qMV1VJDlFIjA/Yzo3Zl5tN3ReZ1F0LEw+ZzptUj4KLW1SMVhTVCdBYGNuKl5iOGpPSWkpKmBBXmJxc1NDNmxcU0Q8ci5EWWYwQ11yQEUzdClfTnEpVVE2aCVSKWBtW2Q1Ci0lcjViQig1MS4mImg4aDFydXJWWSlVKDhAJDYsK2VnWWNwKGNoJjsqbUlGV1IqREhpZD0xNlxgXF9nLEk0K2tdNAotZWF1XGFRWCJMMmFoLjwlbFJ0SidgODtxZWdSQlwmI1BPUW9dNzYmWV5LKCZcKlZYTmxBZkMnLFl1ZFAwZERNSmkKLWFabE1bSWYhOT5zNk06VEYyLEVcNUU1NEUiOHBXJ3I8Mjw9Vy0vKDwxW2VdJmVjM0hxXjs2TE1rZHMoQnMkUj1yCi1KYzZjJnBfNDJFImJULCImPT9FTCklRD9naVhtI2w6KzZwOTdINHVJZThAOGVPJTg1KVIxai03Sm1sZF8mdCldKwotNm5xKFIkbWxqNl9JUEJgLTt1WitlRiNSJSEpQkhgYXFZREM3QUVgRSdVaSNTNFg2KzRVLChETGBiLzg/MkozYEYKLS9HY21rVFtOL3E5KzYhYT4taEIhKDdTPSxma2xBalVvWk9tNjJzaU88RyZSX2MpLzZlTD5Tcl1saWshLUt1Nz9oCi0obj1RK2k/ampoWip1NmFCKDsuZWVvLVgzJTxqWzdUQkUtKmgjPCQzU0M7MS8mPWojRDNNTzpQb1hbUWxIWTlZOAotbD0jJDZOZlNJblReSzJeNEM4VlVgVChBXjNAb2lEaixfQDRta3AkWlVHbyRvRmg3Ty0yVHJNQ1okKlImUXAoMk0KLWlJdTQ6SEkiNy5dQWk9KDJEcjRwPS0qJU9JSygiMTotVG5BallEaksvQTNXMVgmZSlrOkUwckFdPD9pZSJNNTQlCi0qOmdgUTFYLTNCWHFWVFhdQzslOXI1OCUtNlAxTTs5RSttcURMMWBvXG5hQ1tpQVRtZWRmX0tYLnBFayxuRkBScQotNj5qLV5tRGs3QUZVQ1pWX2VUXyJFXloqOzU0TC91T1slMWk7UUUnIWJNKklyZEcqNlc5LytTcC9PclRxMzpHJEcKLXIsMm5HO1M5SV1fX1BLTzJiaWJpUiQvZy9GSi5lXjBGViFyODU3bFI0dV5fI0QmWiRxJSwhbSlGPz1tVFgpLl8yCi01dHVGbSVpRF0rPm9eVCJZXGFWKTtmcSteTzJTOltUZFw1ITwyaVllYkI0NjQ8RTIxZD0mbkhxNWxdPjRdJ2hjMgotZVYmXFo2a3M5Uz9XWm1tQTxwMXAqR25dYzxWMjE2O2JmMzg/czMyVzpLXTtBL0VdJl8nZFRcZj11UEtTRGQycjsKLSQjLSUqLSZTXidwPipXLz8kQmw3LGhjaU5iP0VdcDQjKHFjcFZsYFAvXz5dWFBocCw+ZDxmNUYtND5INmw+NU9bCi1eX1NmOCgxQSY3LERmbEMuY0QiS1FfaChOaio5XUpPKDd0aTZda28pLTswUDVxKm47SkFVLmxsUVkjdUlBIXBxUwotVkpEWjVxOFBpUDNdWUs0VDRlISlLOnV0KS1CIlg0cUY2W0YxKVxfUlg2RnFiVVQmIVNWUTZiNHFTb2s1bCsyPk8KLVlBPSI+X20rJCktSGlKTnFLQz04ZzpMdE9bcikic2oxMCZTVlgoajNxbzg2QERnVVhEXk1qI1QiMlNyKC1PW2gyCi1yJ3FGPkVJNFFkUVllaj5lPk1pLFZeb3IycjVVVjxGKyEuNGNaQiRpMTxKWCpNSXIzOyRHRlRJOjVrSmZmNi4lRQotbigkLmpUMyFDTzRaPzBjbC5dUVxKKSRUNUEpVlpdLDIlR2xCSE1WY3BBJTQiIUBlIkcjM1BRKTJsbDdqcmw7QTQKLUNZYCdYSyhuLDY6VGVvVFNdMGpqSW4udVxJPUduYVBDJ00wJDFkcWBgTm5eYTgwJF8pSUdhNWJzJC04WWVSKm8nCi1JU1RqXjVBLDY1KDslJiduLTArX3BgVGNKUDpWNiZjdHBMIXBBSiovcEosTFtqaFRMciNbbkRsS1RIKj5aLGJyIwotPVlvKVlDSzZEMyNZUFM3UFZcJlRFVD1pSDM4NVRULSYlLU1bUD46IyU6VSM9TGxpRkRfS15VPUAqP2ZHJV0rWUIKLW8tNGIpMWZLOW88XCRQKURSSkYjOHBlbyslRFw3UCdIVnAqTVhjdWc3WC9EVSlkOjE9TjlWYig3b3A1XCR0dFpgCi1laVEuXE9QOmtJPz1QWy9qWWtiWCpUUm9lT0gzaVhhLzxcbD1VW0hPLGNXLiUtVVQuaVBgcThuPF9IIzAwZF4wLgotaSo7RicvTWJFYm5xZnF1UD5bXUY4cE84YEFRNV5xTlU/NCxrXSNjMkd1JltqZWx0ZGhnRS43PmEiRVA3P1ZDM0YKLUVGbVZGT0wjXjQ5UjJgSy0oTilGUDtbJkM8ay5DK1BnYyhiPGJrRVRZcjY0RGdSRkNNRGJeJkQzK2lyY1M8SzdbCi06M2s1SkIybjJmUEk+WzFxNy1QSWVGVDhsbC5qVGZuTkxVOHFrJylHSW8jbkE1XExsN1RUZzRFOmpOXj9CTjVHNgotUFciOm5xQjg3P1BuVGYoaExKLE0jMUtOSSlsJlhATyY+YT44OC9lYFVtLjEvO0wwUVdXJEhkPDFxJmBLcUhsam8KLUtlb1RqZXNmVGFFREM1dTQvXD46VDJZVDs6aGdfNFcwSi1uPC1qWylDL21wK1ByPk8+cUpUJy0hSTFPODh1UGE5Ci1ZdVlWaT5IPSQ0WT50Rzg9REpYXVdBUmtPMztMTVgtXFo/PFErIi8mcVZiW3BRI2oqbmYiNSIvXWlxPDchPH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotOTIyIDAgb2JqCi1bIAotL0luZGV4ZWQgL0RldmljZVJHQiAyNTUgOTI1IDAgUiAKLV0KLWVuZG9iagotOTIzIDAgb2JqCi08PCAvTGVuZ3RoIDg5OSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJkRnblhSblRePgotVG5NV0QyayxJKDFXZGwpQU4lcjgmNk0lQSgoRC50aVQzXClUUGNUbyIlQXROWFsjLScpaVM5KGJHPFhpNHVxN0gKLT08V0wpNVlXciZOK1JWQGFESHFTTl5rPUBhVkcqbCxEMElEV2ZhPEtHRCY/KlUmcyJrKmI6Il0lM2JkY2ZPbCE8Ci0kX1slS1hDSDddJi90WUgzPjttMyQmSEdBMGpMWzZxakpNRkRhT1BFXmddLVM5YWMjUDhbdWNPJjAmb20rVFtocwotQDVhVmJTY2MoZGE8M0deS2QuMkZUWlVrKlM7anJCNUpHRSolWkdBajFjdTlba1ZzJ0lVTF1YTWFtZWo0MGRDQVsKLTJEUUVVa1ZwQiorQCRXcURsQTc6TGdpbzwmLlBDWmE/JSJDRSdPc0AiKmo1TEtkLGBaLHBoTWMoYFhhRC1zR20/Ci0hSjZXKkpaZFlLIy8zYT86cmEiaTBMLmI1NW0sajE1XTZeWzFDUSErJ2JbSS42a2hKU0B0PERyWXAwcTYkVVlFaAotSDkiOFg1Yz8jZE9QayFqNyNaclEzZlg0QGE+Q1YsVVswXnFLNEgla19YXnBMbmQmWShgXSZtXktPbCYvSlBwJUcKLSJVYFxmUSttaFBfXCwwZVMqS0pRJHBxZmJOSXNkbzE7Ml1sWSxuWzZUTnJEU0VOPSp0TDxkW0UqWDhtbys8cylvCi0hOEs4Z19hcihWMGdQZy0xcisicTFGWjtxUFFKK2YkLlY6JF9baF9gJ0xdaj5eNlIuM20pOSVKPCclUWhWMDNnXwotaTRHYWY9JFZfPiRSXHRFTGpYIlQ1Kj0hZFxeQ2ZOcS1fdUY3PyZfQGVrSydYIjlRKTIpTVhxU0xycldiViI0QUAKLW1mYF1gOHJpZlElOXEiPS1USnMmQCw8aSVFLm5pWWZWPEUzRVhkJkNvVGIyNT9sST5sVVBkdEkzVUZuYUxYbEwjCi0xbEZFUlw2S25BYT5kaChCNDdgVTZSMEVsT3VCJldZU25wQFchRX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotOTI0IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VDIC9JbWFnZUkgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW0yIDkyMSAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTMiA5MjIgMCBSID4+IAotPj4gCi1lbmRvYmoKLTkyNSAwIG9iagotPDwgL0ZpbHRlciAvQVNDSUk4NURlY29kZSAvTGVuZ3RoIDk3NyA+PiAKLXN0cmVhbQotCi0hISEhIiE8RTYnIVdyTiwiOVxpMiJVLCk3InBQODkjNnRKPiNSQ19DI21xIkgkT1s9TyUxTmRXJU0nJ1wmLmZCYgotJko1V2cmZWJvbCcsKSNuJ0dNOHMnYyVRIyhEZGwpKGA0LzApQjBWNyojb3E9Kj8/MUIqWmxJRyshMlJJKzxWZ04KLStYLypTLDluRVksVT1aXixwdCZmLW4kSm0uNEhfci5QISMiLzFgPicvMWBBKS9NOFkuMC8idDQwSkc0OTBmKFVBCi0xYy4kSDIpUjlNMkUqUVIzJmlsWDNCOSlbM0JCMl40JCxNZDQ/UGJpNFspJW41WDdTIzVzW2goNjo0Ky02cHNGMwotNzdCWzg3UmZqOjduNic/ODRaPEQ4UDJUSTkxcW9QOWhlQVg6Lz1ZXTpmJ3RjOyxMNGg7R3BDajtjP1VvPCljanQKLTxFPC4kPScmSSo9QkphMT4kRzM4PlsxTj4/IVVjQz89LiZIP1hJL0o/c21ET0A6RVxUQHEwIlpBN1Q6YUFuUGFoCi1CUDsnbkJrXzxzQzI3VSNDaSFwKENpIXMqRC9PNi9EZjlRNUUsXWY6RUg/MkJGRURWSUZgaGtORydBLlNHXitJWQotSCRPW1xIJFhkX0hbQyplSSFnP2pJPT9Xb0o6TjAkSlVyRSlKcUpdLktTNSM0S25ZNTdLbmI+OkxQTFlATGtwbkUKLU0ySTFKTWkzTFFOSyZzWU5mVDZeT0g+UWRPY2JmaVAqMXVrUEVWMnBQYSVHdVEnUmAlUV49JixSQDBNNFJbXWU5Ci1TPUgrP1NYbEBEU3REWElUOl9hS1RWLyFQVHFcOVVVU0ZUW1VuamxiVlBnPmlXMlFZb1dNdW50V2lOMiRYSzhNKQotWEs4UCtYZmVoMFlIUC42WWN0QztaKlVkQ1snWzNKW0MqSE9bXldgVFxAQiZZXEBCKVtcW29BYF09WVxmXVkocWsKLV10VjRwXnFkYiVfODQiKl9TYTovYDVLVTVgUG9nOGBRI3A7YTJjNkFhTjJLRmFpX2NLYmZuO1VjLT1QWmNIamhfCi1kKlUuZWRGJENqZGFIUmxlJ2xkcWVDPCUhZV5pPSZmQFNYLWciRyo1Zz10QjpndF5dQGg7LXJFaFZbNUpociE+TAotaThFU1FpU3JrVmo1XTFcalEsSWNrMyhwamtpaDZwbDA3S3VsS2RkJWxnKm0nbS1PLSxtSSdFMW4qZmA3bkY1dTwKLW5hbEFEb15xZUtwJUElUHBAbj1VcSJYWFpxIlhbXHE+MHNhcXRwOWdyOz9ObHJWdW90fj4KLWVuZHN0cmVhbQotZW5kb2JqCi05MjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDkwMSAwIFIgCi0vUmVzb3VyY2VzIDkzNCAwIFIgCi0vQ29udGVudHMgOTMzIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgOTMxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTkyNyAwIG9iagotPDwgCi0vRCBbIDkyNiAwIFIgL1hZWiBudWxsIDM5NyBudWxsIF0gCi0+PiAKLWVuZG9iagotOTI4IDAgb2JqCi08PCAKLS9EIFsgOTI2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTI5IDAgb2JqCi08PCAKLS9EIFsgOTI2IDAgUiAvWFlaIG51bGwgNDQwIG51bGwgXSAKLT4+IAotZW5kb2JqCi05MzAgMCBvYmoKLTw8IAotL0QgWyA5MjYgMCBSIC9YWVogbnVsbCAzODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkzMSAwIG9iagotPDwgCi0vUCA5MjYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA5MjAgMCBSIAotL04gOTQ0IDAgUiAKLT4+IAotZW5kb2JqCi05MzIgMCBvYmoKLTw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvTmFtZSAvSW0zIC9XaWR0aCA2NzkgL0hlaWdodCA3NTkgCi0vQml0c1BlckNvbXBvbmVudCA4IC9Db2xvclNwYWNlIDkyMiAwIFIgL0xlbmd0aCAyMDI5MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUowSCs0MyRdN0shdVNsNTpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLk9AV25bM0AnbkIkJ1JeXDE1U101Ci0+cV9SPUFsQ15jZW5tQDk6MUE3UmJiMmo8VE1UPCQzVDs2PDgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjNhRU4lNSxxYmVRRmdfOmgvQmYuREhBb3JmJ1JbYj4sbGImPzIiNUheZDwhIjQ9MWpSTFchWUEKLT1NLzYpKktTOVBFYGtOJT0iVGNfQW9oK2ZrJyZ0TDZ0PDE4KXMyV0VWcG9JKD4ubk9XPypEbXNHJEApISRAZW4wCi05LVFIc2YoWFUtaSxFcEc0c3ErN11TSCYkZj9MYWZQcSh0NmtlKGYyPTA6KkBHJ2ROKTduKzZCTGclOCszYzQvTQotay5IImc/R0MtXmg9KCxkRDgobS9kWmBcUXJNXlFHKj9HPiNcXiMhUCFObFpkJTBKKkw2QTVOQiYzTFhcU2hPPyEKLSM9Oiw3KjJaJyY2bHF1PC8mV2tIV0dsQVMmXUJVTWQuNS1ENC4rRjE4aXVnP11USWhiITYtYEVDcChcZyFrMDEiCi0xIURXYS1vKEBIJkJDdFpLZCclV11UamVCZDsiTFBYS2J1Si1wRlglYVhhOyQiSiRsNE1KUk9AYk5hSi8sS1ZYMAotTVBzMyFQZlRaPDFKR0Q+YDAvaSwzRDIsbEJXJkw4IWZaXDgnPjM5Z1dSQ1xwJk9WWW0vTzthJkZOWWUjZE4nPl8KLTlwIi1SI1otYSoyW1dFaFhXS0d1UGY1UktfPVkpcjpKdTlsJFVSYVY3MC1FJm5PYTZTYiZAdUcpVi1XUW8hQl1DCi1YS3Qma0ZrJ1clVyxpRDglOGlFQksxL2MxIlVBTz8nYEVYZmU4VmY3QkArJDFTUkJzMixddD9hRklhRkZkPD4wNgotP3MhcS1wbjltLzIuOFBcMjdvPl09MEZMNGRTPWhaYV02VG9tREVZcUdOdS9GZmxbMmEyZGhxX3EqXCkpJUsxNScKLWVQM2tNZyxBVytMKylkOm1vQS9ubUZiWks7TFI6ODx0RHVtTkYkXCcwLXNoZTloZys/WyJaSjxjJDFfJ1IsPTJtCi05Y2RiKFNkdUBiZC87WFVrRXFLdDYiaThBSXJzUDY3JW5cWVxHXmkjN1dcMzUzVSssME5AbmQjVkpDaTdaUT1tVgotay45KiJKU1tAXy0oSjA0L3E2VnVmIlNcdWlqdWpgVWdBQTVWa2k/aV4iaCNCLzEqbGE/JFM/aSZhTU1aL1tKVlcKLWBLYT9mZnFybzRuTTtmRmFSWEdOJ29IZ1M6RChrQVxWOnA6YzRAQUxdMTBGQW1EMUFVNFNyNiI+bShDMUYtKypACi05QkM+dV1wN3UtNUE9LDIoPSRpUkQqPTMuPDpjUyxGYzFEXSxyTEwmKk5yYSRGQVswY15oVUw0NiE2ZjNbW0VyYQotR0lPNDVyIVRyO25HSj5LOz1BZzdHNCJZVl0+U0BNcV1AS1FxNWAycGwyLy9kNU4+ZkM/ZSpYdWhORCZqJiltWFUKLTwmIWJgMV5QY0ZxKWddXyMxQi1zcWduNWQkOi5jRyJqOi1aOForOFdcJ2wsdU4pVW9YT0gncj89QTkrXDZuKmdkCi1YTmVVLCZJWE9bMFNQVjYpRklWRCVINTVjTEpbP1kmNVpnb0BLXHVROyU9ZDw9SCpwUDZxTjU0JjpfWE5TSjEiOQotOzJTNEcuUmRJQSgjbS83TWMiQEU3Ryw5aWlyaWVMOzMhRCQ9TnFgRDZ0cVdYWHU4YF9VLlhFTUVLM29BM15lNUkKLSpUUChgTyY+PS84KGRiXmo5MSRxO0BZOGEsQlJYMFhHTic7L2dfLCkpJ2UzcU9jaVU7OGtFLzstMDMiNFA+WjluCi04X0g2U2pLTzV0Y2g4SScjdShzVENvPE9yWSNcMEo+cT4jaVonSjs1PiIhWCkiL1cpYlBxcUsuOUErX0hqb2lNZgotO1t1bCVHdEJfOTw0ZVAzL25SZjFTTVREXWQ/OmdSPjs/TV0mblkrcFJvPTNCOiJkMz1qUXRCQmFcSGVDKTcpPjkKLTctVTdAWScqTGxgK110IWwoJUBSSDtAXTI0bTBiTVNhbXRIOkdLLVQtajlYRSdEcWkkcT85L3FBSSJCXyVRW0Y0Ci0mS0dJcFAramNbS2kmMSk1JXFuUVA+ayMwYCM6XUxWcWdnN1o4czEscUVHc3VqVVtCWVZGZjNcT1w3KzEkYC1gUgotUXBkQks3XUY/ZVU2S3RsZSZeUT9CIWlrPlpxYzIhYW90QmRscC5OQWBoY0xoUVUqKVkiZlNkNFZVLnF0OlRCKloKLVdIQ1tbZUkmdWdDPzhbIWVQYDhFUl1UXGxORkFoZVAsWnBRO2Q4Tl0zailDRlFyWV1fPlxYRSZSaD8+YTcmZyxeCi0ucFoyWzsoQGMxM2chJTg8RTVhRClRSF9cS2hFc2tHSGIoZmFdRWQnQUxxdCtYIypsJD1OVlhuWCk0ISRbTFRrJQotPWUwKFNvajRFZGpRQlYwcSVYI0lZLEhJYWQrRSN1PiY0WURbZT1rZmVON1ZLL0JxUylRRFZpKlgpMTttb3RtaVwKLTJUc2p1LVlLU0ZcWzZQXltGWj9sRmxqXiZcYjkoU2F1UU0vVS1xXW1pb11kZj5LTTBaMjxoZGpZNFosVWZtO1dcCi1VOiskZWApbXNDRFg7ZiJdJFZTPWZ1bilMWG1ObSNmRTBIKz5RSyQ3aDFNXiJKdWRkdGgvTWNzZSRKYTwjTS9kVwotTCN0aCZeXEF1cmc7cjVabW1aP08zL1xAKTlManJFLionOiRXdE87L0BwXFBvJV8/bUNjckY8P05HcyQqW29RREQKLT9xWj5uRU9IJWU8cCZOKEhTbjw1anUxOCgnJFhmJ3BQKEdWWipiRFIlUl9qMi47b0xsXVZFZSlqa0luRDFCKFNzCi1xMUNFYS9CTz1Oa2Y6Wm9jUk1sWjdyV0tMRG9xZXJyRVsjI1NUNlcvY0lpLlxBMz1rJS9rLSlWZkxuRWgvPGM8PwotNydrJFo5KWNiNllBOkJpLyZhSFFwPjUuPVVwRW5OXjAmOEtAayxOaDBSWzYuZWZNPitdR0ZrVWVibC9RTyY+MUkKLSZWIk1zXjxWIV5kVCQwTj9vL203ZVgvIVhsZSxeO2xxSmtUcGsmKktYTV07Z3JURGluWCJGaVlGMF10NGBsdG9RCi1Ca0MpK1pnVUEhZSFnL09EO0RtMWx1cDppNCZcYVhyKT5GKTp0PDRqVUBqPDJGcTQvWWpoLHFVL0ZFRSdeJV1KNAotZ2MnUCFnPWw6c0c7XEY2Z14lME9tRj9KQEIkTHFHcmUkIikwcGFgQlMpMWQ/TUspclMxY080ImZVN0xNbS8+IVsKLWEkLm5vcWtLNzJPbGRtQFRLQkRkISdmaDBPMSJiQzBCLkBkUldEZVAxSC0ia2ZcRkBZPz5eOyJxKS42aGdvYzNICi0lSFZrWlZgTnU9MDtgakVDIUwwRmlvZGVjVEZYLTArMlU4XWtgYz1TOl5vLilxRzB0YVNORi0jP0hqaG5LTExhLwotO19XJSU5QFxdPjZnSy9ASzhBcVtSUTZDRW0vP0NlR00pNjhBOFlsPl08RWksWTMvJ11tZ1xRL2ExVWZSclQhZzIKLU9pPyprRVZSOE4mai9DN21VMGZEbysmW2xMXSFuPT9CPE5cP1ZUZWA4I2MvZllMXCRXPzBoSEVaMV9NTWczWzFECi1tSlkpOXBLbT1GSGYnOD9yV2ZoJFNFZmU2VCFAN2VoI1F0JTQwMjcvYTQ1cENrTkJfRmNjIi5ecCY8ImJxZDQ6MAotSUdfYTRycy5OXD9dV2ZkNS9rU0E3dS1FRSlqUFE9QjBfLG9sL0NCZFgqbj4kclZzcTRyOComPUgmal9SITBIL1UKLTw1YWU0bylYbEVpLSskb2IyQCdWcm0xMDpuMCUpRHA1dUsybFlhOTk1YGpbWHJwQ25QbE9JKThrYi8iYzw7Sz9cCi1dWy5YXyYnNHUvPDxbPkUiZ0Q4OW42bE1TQTtDZERMaTAkQm1ramk4XC51KlAjQEtAbURSOUxBJTEjNXVNOTZncgotL0Bib0o1NmFyUCQqXXMsbj1eMUNWJDFVKiMsbTQ/OWVRQW8qIVRpTys1bS8oaSV0V0loPy1ULW5QPk9jJjRsJHAKLTIhLkE1aV9Vai9uREtlOEc3KUk5anBkalxiODBdI3JyJkxPJCVTQktAITJuZlstSmg3bGBebSk1UUxzMU5yX3RdCi0lO0I1W2QsUGBuLGFrbiFSLWpuLSRjV3U7JFBSSzIhIkdQLm46ViI9P2pjdCUlOkdTODpzME1sMiI8MypxPSliZgotRT8oODYrVkpkLyg5KV1wWDFtSzsuYD4wcCc1cypBJSgsPWM/aXM4JCkkK2FpZDdGU2pMJl9iQGlLNiptJGRkXmwKLShBYS8mWEstPDtXMCQiMmZWL2dDUCxiPVA4bGlKcFBiWlhKKW0qNl9EMEh1JTcpI15gXlBhL0FDMWMlOmVAK25vCi1YdGYjWGRHMyxBOHVDIVBSNHRaU2JkLDF0WDs8IkAjLCNdNTtAT2M8XGUzQCImKWJBOEA2ZltDKiI/O0skUEYnWAotRVlCU2QxXjoqJmgkdV1nOm1CNSszNy1xVWBVVnQtT21cNkxeNjE2TSosPy0sJlw9c2hrOV1cKy04RVpEOztTQT8KLVNMNjE8LUUvWERsQHUsSWtvV1FGKy1IRFtaI0pVJTU0WW5NXVBcVCNZZk1bKzMhV2krJFAhTGNuUCdRa0kyVk8rCi1yRz0sMy85PChRIlAjJGBaKkljaDtLQmpBRlg7JVwvTTFfaCU3O0hsMz87Ii8rKixbS1oxPWtMRUElcG8uJmArUAotUDReR2psUidnXjAvP2ZcYyNrQkFMOyd0VC9bR0MvTVJxOixhTjRnXil0TzpcWkFva1pQK0UjNG51cnJKaT5qR1IKLSRPRUdlJSJOTComUGBhIypBcWc5MXNqMmsnIlxSMWRlWVwsKDJAMSY7Zk8nUkslImMrMUBqaz1GKzFKUElpV1RXCi0tTHA3PkYrWjRWUHJSMy8wPShnN2RzWDcqTyFnLUIzZzVJVEYhRGEsWFoqU10wNj1mZTFUTk1LQDUkKDk0MG8uNAotMVVPN1RhIm8tMTFNUVktLyg+VlphVWtkaGZlQGdbNVcnNz5vRWclYDU0SFlaMVpxIlEhOkotYixTQCcmL08oc0EKLUIvYyJMM3RtQjJabDsjaFJtR05ENDdgMjA7U3RSTz0kbVMvMmNEOnBDbDpHdFhYOCg4MEBQaD5aQGJOLzc3QzBZCi02SVtdY29IUUMxTyRfPmwxRDVhM2IhZCthWE1wRCk1JmBlRVlWQT9yYVhXdF8jLi9eY1BPVEszT1puamopIiYlVQotUEFKY0JXNlI0OSxoKmFhUEhkRmZgM1lZbGVTVC5ULl5xQllhWz5dKzZNLztjPCRhbDlvME11aF8sT28yUDIvTT0KLWokbzdaOTJeYTtuXG1oWmt0PypNTmNdN3NZJnJLOyNvIXJmIiZMakgmZTUuZCEhXV0oOzNfTVwnVGBOQFB0O0EtCi1iYF1jZVBjNlpXRCtgPVIxJVc0W1pkMkAvcWImZCsuKClXN1BncGloVUsnJW48Ji9rU2VOWio4QU9IKW03NVhDIwotZUY/VDM9ISlSITw6b2lEUFxYJ25qXFAzWHBtIT5Bb0UsVWlyWCJlZzslZmY8b3BHb2VHdDJ1YCY/aFw9MihtLnQKLSVhKSohO2pERGxGPiRgUCNmZWZGPEUuWDZvajojN1pVOGs+NydpLS9bK0BARUpRdCVEO2NNYlRlXzxeaGtyPXFsCi1eTkU9PUZeOClgQG91Q2UlWiskRkQnTTlcMV9JZnUkaDcoLjFKZUFqV0RXXlFtO2BlOiZCK1FoNT9mWmA7W1lOOQotOXNuJVhrOm1aPEE2JSMvbyVMbi1jUTBARDksMTo+US5bL0w7LHNXUz5TUFxqKDFPNS1oZSc4WjxjcVxcUUBVZWIKLWgqYSNAO3E+UzRiX1xJNDYiI28yKzdYRCRGVFQ2byNAWzVwTTpPJ1xFQzNtNyVrOGIlKVJfKGQnITBgbVRhY2ldCi04aCcncWJuRnEjXTU6VDorNCteRSdvXmY1aUY3VjVyXGNEUSdFKGNkW3BtcScyRzstZjpgRFtuYkE8JShEMllZUgotOUNBL1RbI25FIUQ1Y10kT2BiQ2pVcUczNCtUU2EnZDg7LGgwNEsrMCtTJGdzWjRQdCgwNFRocENydEBNW2dwbW8KLWRyY0hITl0vK3ImJ2opVVIyQytWIiR1cjJkKWNpI0I0Q1AlRjNsaWghK0AjRTNXaSt0PjhJRi1HPjM0aFEkSTQsCi1AKy1zcU5eJV8nbWdIKGBHJz5lZSZkb2lWSy1GLyNITTh1RDxzKl5zNEhyS0dJKC5ASnBYK0NKZVU7WXBJOSw2PgotbScxOlZhIThkUShIMWAqSmBncFYwLUxyZUdMVjFAKCtvZmxlVD9YJSY2SVY6cF5yJzonbkxUSUpaL1RzbnMrWV8KLUBsKklLK09sWiIyQWg6UjpDb2JsLD9LTTRVJkdvRltzMCQyR1xnVC9wUi1ecDwxI1Y3bTwrSENHVz9vISFYZmkjCi1NOiU9c2k+Z01kXGVkK1JLQ2pxRDtRU1BpKWhpTm5Mb0daUlhjMUpjKGArbUAsQnVHLT1EOVgjcyMiayMsMWVcZgotRzpPaT1qKypNVk1uJEVfcGxTQkg2U29XQ0wwKzZzPT9EJG1icCsmIyUlKlo7OVopZFVeUSpSJk9hKiEnbVhvSFEKLWMkdSpSSiFlamo9UDRvOEtvSzJeJFEsZGxHWXNMMydwMzJSTiVSNjJkUUg9dCJYLGwsSjJFJUVGODcmKnEmcD5GCi1gJVJyUGY+V2w/Nz9oSkpPa0BWdG5XL2NWWUUyV29OQWlxUFBPak5qIzNxTlVOYGVyPnElXHFVZHI1XT5OVlBHawotXD9kPTIlKSRTOmBBcWUlKTNLajE5bylQaikjNVRwPSt1N1MkaWducFF1Mm9KQ3FmKTplIVRycFMlKU9hZEEjW3EKLUhaUV5rK1EwTVpOUW1xRiQnYjIlRTErRDFxJixOJG5AWlJYUzxzP2EpOjZlXmI3LUJ1XV47NjVQQT9gQmlMa0dZCi1Pai9qQ200UlxWWUU3LWVkZVMuTzNZOHQ9RzNAT29PWkVmQ3BrdFhYYENcOVInX3I2ZWJLXy9Ra25WbVZUNTMyTgotUlBDV25ENFhtLVVeaGUxTy5jJ3NmMUc/X1VSRyZWPiZiMDklLGIjSlY3SXJrPVspRTBydDExPW1GaFo/M2cjK1cKLTI0clBFYlMqNDdtS1coTWoubl8tRkJGPHQzakVDZj1lLixyVVIob0xOaUFScUdqSD4jWCNlS0BSMmQtS1RncnVtCi1pKXI4KS8oNyI2X2xhTkhURCMrXnE6aSJJb2VTUmhRXkw0RUhOPShIaTlYWUdUTl9OJm4qdTVHQVsqMGwhXVhCagotUmlBWHAnPGxnMFpGWjZGZ0ZdYGxobTQ3WlphayheUm0iLD1qMEcuQ1soMSteKWJtXyJOTzleKltDVlgxUnBFSGEKLT0xMCZaW18jbXEpZjwmRjFVYGNxXCRecHRSc2hlI2oxJCVeXD9JJ2JSdU9zMywzKHNGXFwiRUNxazpTX1Y3TSNRCi1dIj4pVXFtIWFwW0NeZHJdPVliZ3FuXXAsYE9wUT5dWHVHJHFwRSk9ZVwtPV9ddDwrM1hLOytUK1ojI0teJi4zMgotcXNoRV9vdFBrTF5Vc0hacXVPU3EiaSU0XCU8I1RmZkhRK2pSdDk/NF83VWYpciNycD4tLE5tRyhqbXBQaUolbksKLTB1RVprUGU3Z0xIcFBcNTdEc1JGYDRTZCRTMURLcTZjNDonX242WnM0QVdzWkFdQiszYGs2LEsqKWpgYzZjMy8vCi1fJk1VcWdjcmdWS3VlWHVhTG1NTl1ROycpR0skKFcpYSZib3IxVjdxVjk0MWFPO3NFI0JpOjEjSGJPNGlhbyYzXwotcjUkVD5gUVcibGFYTUdXPl1uKkJdPmJpNGMrTWxXcjhHWWNiajlgKWFddT9PPmVTRUZwITgkXWNhVlRKLkM3PTQKLVotP1BEYygrYVpyPVJGPyd1cHUzYS4zRlBdY0c1LW8/aHQ4ZF8uNlxyNipMI21FdXQ3ZCMqSihJNTA1NzdGWl9GCi1gQDpjMSpAOShnOF8mNWxlXCVsdVdWbTlTMm4+SlplX1ApbnJHZmg/QERLUTplTkohKnJJTlRgK2hmQG5vbUlsIwotNF9gUFNRLl5TUklHR2pfRGNiUUhTKGA6aWc4T2JncilxOSxuJ2g1Tmc+MEhzclA0P0lMbDZcal46aC82NGppKEsKLWVeLThhTV1MUi1dUmVsOmZBOnI/ZnRHQ14ycCdQKWMvLS8waG4+QjVuWyUnTU9WNko5aHFlaCNyQm9LWDJxaFJNCi1pUCQ+XGhBJTxNKTwoUURpazUqSC9LTmJUUE4oRlpqMU8uLCNgN0claTU+TyRNPFosQmFvTWUpO151KlNUST9QLQota2M8Z2RWPDIpcE89alJsV1doRz5GaldCPWROMGBtSVcrPXUhVGRYQ2tbJzg0U2tuS3Q9NjlFY2wiTC5gQlhRdEQKLUdOc1cxZyY2M1c0dU04aGpsaTp1a2kpUiheMWxoXEY2aDE/bCxdamReN1haSGBlc2NDbENRaFZyZDNRRTJzZ09vCi1sK1cpQXJsKzxeXGBGbiRtdGU3OVc7Wit1IVUoVExtSmRYPj9LOj4tOCZPMm1rWysvUV41TT5BbisnZVFuYyRaIQotaFhUZllmQ00ycm5fWDApaFBLaDkrblU2Wm5wWmVtaFlsbFc8ViZGLG83J1gscydVcHEnI2leV2whRlxkVDEvQloKLSNPXDM5a2pGO2wqYEI3bUphSXBmbTJxMkw1REFkJV88UEJrcS1UM1krJkRTcFY6dHFhaScyI05oWmBJVUY4I3NICi1wTz1MWzU0ZHIlRVZLSmRxOzQuLlQ4aV9UVSY2ImNyTFdjXUlnYysmakdkTVolPWJTTlRAPEM9cCVzNkhxOzYhMQotaVcwIjA1aTpLKjFeWFdrSmpObFdHVSpiNCRBLTBoWWMpKHItUDs5VUA8IV4+NjdFUy44MGNQMnIvTl1WUC9xLEcKLWZsWHI6MHB0X3RQP0c5TEVCMFJia0VGVGtyZGRBLzpLb1lWYXBBNFFVSmc+dU1HbiVwTGRXKFIyJmAjYkBtcyhnCi1CKDZgKU1AVWtnYG9CcyIsZUQkKkxJdSRhUjliUE0sSXBybk9cO09SZVRBQFkvQ3JKKCVmcTZ0QC45T2cyQk5OZgotYEJicltRaS9dYDo8MWo2PEQnXSdaSXVBKEFOQURPSVNENiNnRmM+IkZLOCVWZShPQVZIVFlvYFlMbTRUZ0gsJj8KLT0vTlVocFJDIjRzKy8jRkU5O0UhSVI5JFdVPzFbTj4vYjZlMFtFdF5Sbk1TLD5ITytdb1hfWUk+QlNUNDlDQjpHCi1tRGxFMG9sMy1kaGZsaW9uX2lyQ0kjOVItLjlHWD9GI2dzdGghbFc3cVghZGNjSTtqZFtJKS03Wm1DYmEnJSVuIgotKiRrJ2owKFtIYzZTUiJLJVJbRkhra2RAa0YtYnVSRHNPLnRbUCYjIW89JkRNbWc7Tj07ZW0xK05taGF1MDJaTSEKLSQtLyxRIldeJVlvUzRWXVo4QFQ5NnIjaTFyJywwUDo3OSs9Nlc1Ji8kI0YjVVtNIyc0JEhtRjoqQUMvQnFYWjVMCi1QLClxNmFWLlkqMkdMQjY1bkwhYil0TTBEbVknQlE5ZidgXjUjOE5Xcm5eQl4lJUBtVGJnXUtUMFRhNmU3VCRPOAotKyVSTXInVV51J2NkXFhaVyVHXD06L2VPbTU3VVMvNzByaWdjaDBQbzpLOWhiPGBRUExQNUROLDc7I2UpTUxAJiIKLTpBJyRaPzw9US1JXCZPTFhiVScxb0lWXyU9O0ZvJ0FtKU5HKUlfPlhRKUFBIWVMY25OZyIrXV9ESGpHYVRrW2dqCi1RKiErJSdnOTZQPnJQZDdocVQiX19mQGNIMiViIjxcJGJbUC1UPzIqQyMxUiVQQzI6SignZjRvR05HVEw8N2R1UgotTDEuVDdRJU5LPjokNztrXEArJidgKW8xJmFrJSNOWl0mRVQoLlVTdTJzKUptajtCOkdRPVs7ZzltPlw5clFnZ0IKLVxbSEQ1QWV1NG5yYTZWYEoiVUkpKDNPazNbUVtXWUJOZUgnVkMiPk4zPixObDdNaHJlXSFkbSVobXRfQlJIZzZUCi1eVF86XGMsWnNBXHQ2Z0hEKWtxQ0tQXCxgY2FAWFBRNiFDTkgwJGNrbWxUKGVdJ2ZDZnBWOmArRzVKYVVxLFthPAotRUFkSXNXOWk3LCghKERRRF0oVFFyLXAkOkYjOHEsTyhaKmkyOi1HJGhgN0omcj4vOFo4S0IuZ2NZNU88P2VBKkoKLWVpMG1TXVhNK0tHITRIJEc0cD9dbURAZ2ZrRC8mMDRuaVsqRjhkaFpqdElmXypTYnFTUV9wRiRyUCVnZUhUb2tsCi1sWXRbKFwrImJ1WFFBQCxdc2tdMXIqTk8lbWVDLXJoc0dqJVZyQEsjU2ojKm9xdTxrb2ZSQCVXci4jOkFzI09ZOQotSCY6T1w3Z0JBKDVTdD43aSNDJytNMCxCKkBYQTdqR3FxSmNVJyRNYClbQiYhJXNuVWZLcVpSPUJwK0RwM19GLHQKLTZGLWgkKXVNJTojR2hERyFyQElWLzI7YmdTOmkxRlVvKiwjLztPZzpxbHFOI3I4QzNOS1EtOj43JHM1TCwiLC1qCi07I1ZITktmOV1UQ2VUVFI/Nkk0bUc3MSFBKFElOy4uakUnJihoLUhTTSIrJSw3J3FQWSw/LnAuIlB0ZHJXN19pWgotLlVKKFNAT09fQGYrZDMhIyFnUTIxPDE3PF43bFBvTHAtYVZfWysnZyxMZmhNMGtNPm0zLj4maSdQRUhnbDhxTz4KLTMoPi1ebCVzJitcL1RMak5maEdVSyNgRStXM147NE9vMkBaQmhELkQxRHFAaE4vPChKZFRuW0k1OyknaV1VJGUwCi0+WDhbRzBqMVRrUishQEk5U28jaj1VYE5CZG1dJjokKUtMXSo3UXE8WWVWVD1eNnJIU2VzWHVyOywtViozP18/bgotLSNtNy46J24kXlVoJlU4Jz5iJ3E8JGBlO0FHN0NWXHBHY0cqZ1dWLFVRdD0kN2BVcUkrNlNtYFFkYjRpOCU+NlUKLUFBaDgjJ0c+T2JHal44LzYkUztlLCdNMEdNWVouT0JvKiNZNF0zXmAzYiZrbi8kaj8sZDBWVHVWTXRxVkxgL3EoCi0kMHQwVVYlZmMyUlJrbnI+ciZDNEA+dHNSU1BtVHQ2YEE3IjFibFJaYWY3IWlCNFdjTDE2dHEqa3NuV0pBP3FAcgotT1lLaEhTT1YuZmpgaEpjLDo7Wyw9KTBOTVZzK2hhPGRORkhXOGddcFlHL0pXMjBXNT5WMD5lRWc6VUxxOTNeLSMKLUBaYVtdXyduVUFALWZYYFlkUFVsLFlKZVtsdUYmTVtRX2VUJFI5M0taLEVyVj9Ia1JjXkEyLVtUWC9mcmJaRXRDCi0+XE8pMVswVjYwNSYza3BtN2pjREclVEIyMk1aJjUlQlppbWRiUGJAQVQkby1MOW4mXmNlSj5SI09TcTpcQDNlIwotZ2orWVxESDUiMWYoUzw1MW1WI2kiaiI5QUImR2pHNGBiJVdfMXFXSWhHKS5bTVhKckRYWT07JGFYVW1zOl5NOmwKLWRRWC04cXArLSFyPjdNOWI0c0snYEkiTVoiZlc8Z1xRJnUxRzNGcWpQbyheMSw5bShGbCE2VzU9M2RdIi8tT00nCi1LR29nQilablEnWzcuJCo2YEYvbSY3TEdMJ3NHU2xfUTtjKmNvT05XVWpXP1xaJldtN3IoMl1TWHVGN0NWNm8tLQotPUBKdCg1LFVBWSksY0UvTHAyJWtfdF05NTIxK2VLWXFAJk9cSkdjVSQ/cUpjQ2VpKEVFX3QtXFFKL0NGQXVON1MKLSdoVnJQN2ptWVBOdGw0MF5tbUVPPjZXSHJSJWtpVFMsSmhKYz5eUVpiN1BEVWFlI2lGUDBYXjlvajZuZUllLSRZCi1IK0RzJz10TEpgbSwhYExlbUNzXileaEgtSVlINDJEWlhYMGl1azdrUj1VYXM0ZDUvYFdBT21SXFghOyVkbDsmbwotMUheKUgtMDQ+L2VBZGVzNDNaMldGIi0wLDtnXjp1XVpWJEszVTpuZFdib2JWYFkoM0Q5LkFhSjIiamUvUGIrVWMKLTghZ0IkRCFCSFZLLTJLdCpJRDwkZ1kuXSVDTEBHSjpHdTNCX0FgOl1UXFtNZzJEXm83ZHVJTz9QQGsjPydqQksrCi1jWU1YVWdANGE/Qzx0Wi1fIWdvWF5qJE4+aTBDPz1FLUdbK0dcKE9IZ2NobjIqW09VLFZcUHQzP103ZEAyOStwMQotbXJZbExPJzdRKmFRQlpQak9DciszbUheLUZLWzNAKjRNODpyX15vJTpHcTpgKFMjUTgnP2hOMmhyZzpJU2IqZTYKLWQvIyNZa2hSOkhvVV88Zkg9b3MxUk9WRlU/K1YtbiJaU2hgN1RmLnMtLXJXUzF0cU0pLFxWIXNXNl5mOGNTL0RuCi1ldVxbPCdocVhvWzdhW3UlKTRoWWlCdFY0KEE0JVZvVD8oN1dUb3JcRmlrYythbmtcLmdKZ0NhaFlDKypdM107MwotN29sVVdfVUZlM0NjcThWT1ZvSz9qSGQ2NU9iLUlAPS5tTEBqS045YE4xI3RocUQ8K2FdaVVsJF4ham1RbTlyakcKLWYkVz9GUUQ8ST4hU3RCIy0tPW8qKE8zJF5nPHAwc2AjL29ZRFFTSS40Piw9PVAtX0RqL2FXaUJKJnFAYHFxOV9yCi0rNWxEMmVCWWVvPW8tVEkoYzpFYk5tcy0lckpWbWhFTWdSbz05OkQ+UjdlSC9SPUZybVZtQ1lZNjE2cWJjX2JJTAotWkJQJjoxVWVYYXIxT2NHNFBVIiJCWCw8ZkZmOUJjXTFTOztNclFfdURebi00XVIwTGoiNnIuaC8ldSgsMTdSNVwKLUpuW0lgaiQ0ayMzdWQ3cmxaUEldQnRvUTQ1LDc+QC5YZidZQ2QhXV5YIi5KYEEtdEs7aWlnaHEyYV1MPnBsZGZnCi1kKHE1dC9kXlNrbmg3ZV9lJUlRSSdAU1xRVSszWlgrQCFkcFwhdGVuaiJpcGNhIlY6MF1bNEFPZHNgUUhuVnBCZgotViZDOXJVWCJjIkRtODVEVixQUHJXXFFlc1NOYmU9NTNfRjNQSSowWCJbLyhyVD5XKE9VTjdLQDUqVGtKLjgkY3IKLWlvKjlMY28pZCQxYEw8SDlNKDEyNzNIQkRccTInQ2U0bFdJOjtsXTY3MEhIKmJXTkVNO0NmW19gQmpQbjwpb1JHCi08bEsoVDc+K2Q4SHMrRl5vZ1E1bFQrInVEZG5ON2VSNzZDbzdIQGpKVWdfN2RxYTsmQDIsbU1vNCxoL1VUTE5gXwotYCwkYmk+W1UkWl9hWzZkN11eOG1dRyFiXi1WIUg9N1t1Y2FnaSxhbCx0QXFkMkVZU0E0RTMhWm1gLWtGYShxMGEKLXItOmYmNEBbSXRhLEVQWl06UidjQDdUKyVgZnRcY0ZGX0ZIRzZBUUVgLWQzWTcibi9nTCptQ1VhNWklJWpDOmBTCi1kKWBTUFNDRU09ZEVHL0JOZ3UmaGFUOUBQJ1RublJQMCNNMmFIVnEwb1E4KyZGaUxlUywyQURTT2hBZjNSXW1jcwotYWhzb0dlPUYwVVQjcFQlOGQoZnVOMW5CPjouZEA8YDtIRlI8KUg3dVZTdCo5VzlmbUBqSlgwXVMnJiI1Yi9DQk0KLT5jbDAtVGg9c1xSS1RrPCcsPSxlWkNjZlU5MSEuMzRMTi9IWlxtUEpiRVRRXFVxNGFWXT9BLipiTEY1S2pNJmgwCi1eV1pocmJTN247LGY3Yl5fb3ROZWJaKVIqQUIpaThhMzk0UU5cJVw1RkMhKCtiK0FnRTlZbGxjZUJPQnFjSFBnOwotOWEmaDFbKmQsQkMhPTY9WnFTdW87ZWpRZmYhY0BGYyU0X0cxdGU2MWc8SG1NYyxBRChdXFVpa0hIbCo+UVgmSW8KLSZUbDtEaWcwNXNjOVo+Qzw5OUZxazBAc1ljQGtEST5qOVAtP3IiKXBTNlhgQmRtLVtobVtTc3NjTi4rbidfLl1gCi1uJzxjZDpJT2lZNy5ubDddaF4zUlBsMT0mT1xYNXVxTlQuOTcndWsxV3E7R2ZXXGArITpaNSYoQ1hLTzckNSN1NQotUiJXWW9ibGM8JSJBaSkiOTU2YSlrblVcTj1VZGUtW0BJU2c2Vlg7SykzVm9mX1FvOjlvX20ucTdTcl4hJlc/W24KLTskQjwzPj5dNU5kJDFMW0s2VGxILkQ0WWhbPFhCYWJsTFwoNSNGdTxkPCU6QzQ9XGMhMSFrVXJQQjBIWyNvOFcwCi0yLFBxTV9WSExYaCQsQF4xSnVbKTVWIl8wWzQya2IhbiZBMztUblEsTj81YkIwMmhfdFAvU1xDMSlbdD0ncCtBMwotZElmPS8yI1RiUyQ8KFw+XWR1I0tEKXRScylDdGBjN2w8TE0lL1xOdDJIMlAkWEAyZV48M29PKmRhPkhnZTg1LTYKLUFQKCdWOCQtPm5hMGVQWWBDZVk+QV5wQktiaU1bTydbUDtVO1UjcVRlTzdqOTxFNzo0OUoqcVA4PWBnIkZbWGNRCi1xLE9oLFhKSnRKZFZJQ3A/QzIxLGVjPkRFJ2srNSg/ZS1zRzxeZ1BjQVJhNSJjOk4sKzwjJixnRSRMO15DQy9nNQotPGROdVw/IzVAX0QkYj8oJCwoPGJTU19GU0Q2RFpHN1xzaExTSCdlKixNLldmTTJjUzVWMFdIJUhXTlhYYUBwaFsKLUE0dDgpSGpDSS4jUThtSmBJXy11S0BoYy0jVVAxLC9WVCEkSzMvUzs9RkdtKiU+ISxqSSZHNSxkcSphVFEmKyljCi1KXzZOVGZYNmRtXWw3KEpQJCEtcT1acW8iXmtdRnFzK2wpUj1Uc105OXBzXEJTKE1TSGZlbzQkTkxhMG9TNjldcQotPU9mP2VJQDQxUFQzOjlLPiNoLUhdcGRXRlZIUlEoWS0hLG4vVWlYOVFzJ0I3ZzMnPUloNUZLVFk2YCtCZ0JGRCwKLSRdREgpWFAsOC9nI10wZGplUSVVWi5bQzJnSThGJSo+VmpSWGtJcC09QyUzRi9cWUheW0ZuUVVmcC0qZSpPXTFzCi1YT2lHTz1HO1VhNGlVWDRgUnNqKT1KX2l0T24lJSZFYSNsblIyYCdWMjl0Ik1jZVNjT2glZT5uLS46VEljITlBWgotPnVmRzJBXyxaWGU2QiciKCZfY05PTVRiTEguXWc0PiZCPVwndEIrLl85KyVmZj5YTGlRLyxMZmkhTEtOPzFpS3QKLWAzN0Q3L1I0ajZoOUVSZ0Q2TVwiaFVpIm0/OjpWXzwhNkxfXF9iI29nbiFRWlY4dWItWWhrQjI9TEVoOzlwKyhGCi1uXnF1Pz5hPSpzNz9fJjpNcCFAa2ckUycrJUltUmloOnFtbz9Ccj1aQVxRbylaITY+VT5DSFMqL2F1O0JyNF5HRQotaFFAKGlENEtIR18tODVOZ0UhYFY/M09RISYpZF4mOE4kaT9EQCdecXJSVkx0aEhnZSY/NSk4UVxEX2xGPl5kUG8KLU5RPVpBJmgyciRoSVtKVTdMUy9CJEs7NXVALS88YnJZQXEtXXVeSEdbbCw3OGhCPzo3bkROLTA/MW9gJiJ0KmlWCi0ucFNxWTgvOjxPZVxiV0xoSSY1Q2k2RE84am9YSThbcCJMakA+NGhtLTYoY3NwdTshIT9iTTIhRD8qcFFVWXI5SAotaGhBYCdYZ3FybTUyVTQ1aGtlN3VdU14iLmc3RUlITyhIcFJBayhqKTgqI0Nxaj1Hci81IlQ6bjlCPSlkaC4yUSwKLTUiJSEpPT4lVGgocCZuWDhJYWMwVGo4K0dBUUJyKi9fcmwpOj5yV0RmYk5uMmVsbE5Pcyw3Rmw+V3UwRiVUX0tKCi0+cl49YWlyLUZIRDwwZ0AmUzxxKU0/Vzd0KDExRzhAVHRXU2pyUDJnWSE6UFJePj5Gcj9TMiViQVVAZFRxZSIsRgotaEpPOUVlai8scF4jU0xFZ2Y7RFRyWmMmZkFqbS9xVilEQGVWPyxeOCFiXTVwaENhMzc3T1ZiMSZFYFw1P3VAZjIKLUFYMi80VCZXalY+QWMuNjdYODMlQzEqVmFpWURGRDUhM0ZITSExdVg9MEAjMkQ2W0xCNCg0XylATzxRbj9BQ3E+Ci1VTDMvJWheMChMQV49dGNKRS5JQUIhdGNUTmdYRSFKNzpdb0JibGNmW0VjYTdQO2xqYWwlVEIkRylwNSZOOUA9SAota2RCOFpESTJPXT5cUE48ay5XQlwqaUhzTUJeLGtsaz9dQHFHKzw3VklkNzFjaTc9XllgZnQwSTJWXktrQ0EiZkIKLWUiI1ArbTpvKztAaGtQSXJkQUdZMF1yKFdqIUg8aVkuUzA5Vzk/K0hDU2xeREFwZCNtOWtlYmFBTmc0UjRpTFojCi1wMFk3cWtgLnI+LTFnIyNFKzNGJENyUmA3LTIkTCwsTmdDPW0uTTkvJzwjSStBYT0wIz51IisyQiVIP21mQm47Xgota3E1RCtePV9oXWdbMyM5ak0nPS8iR1BxUDxjLjJZbUo0PjFUVihLZGkqbD8vam8nMmU/S1VVRVNgUFVTbHFsWy8KLToxYGpCLUwsZEBEVSVUWklVUWBQTVhGTzJDPlNJSl1tQixPWF9GVC5sRzIhNVNXSUpqRHMoMDpoYzticG1kXT5PCi1jIzpWRmtDLjQwTEEsQE5xcVFAbm4tI0B1InRuWSpwWnM2O2xjJkYvRD9YdWQiUTJjUWtXXUNDSV8iRDlMLlREZQotT04tTnA/Q2cpWTJWcUtORSMnSls8aihdPSZhTmJuYWZjLXMvc3BCM2A4ZWxQQ0FxW05tWjZfZCVkUVJxQ0RSXUQKLW1bbkdFXSVZMC4+WGwnaERdV1NgUmQlUilBb0FaJ2sraEpvV2MzJ1lEY2xYTURRMlMpPzFAUTFBcSIlVVFQPUsvCi0tWkxkbWtlQTUtJUYhUD9cOGVyLmxlXHU2WSw1dFVMJDI5W0NgYSUkck1CK0deTHVePG1PbTVYXishbSUodXNkQwotaTE/YF0tPy9UOEhnY18pRiZyRDAqcnRZPm5qYm1tb1MsYk4/SlRfNDlEJDNORiFZTUAjO142ZjlfQVdlb1onXF0KLV1RSTU/aVQyLkVvZ0pcIjpuRFBhYFYiW21EYiFxOmEmcWJRWCUvW1tEc2lGJ1IlM2lYbTwsOT9ESEMzMi1NJGVoCi1tZE4tSWpjSkE8bXA1J08vVyZxLmhVXz4/TEZMbTxsMHEwYUIhMXJBayYwWWYkMUhKX2trNzEwZW5zZGlxPVxbJgotajlCZXVwPz4mLSgxciNHcDxPKjArKnFdNUZdczhWbG45RkZMQnE7JkgyI3A+P2wqKT0jJ29kWi11bERcRW1HV24KLWVyPSw7V3FdKC9CYTVJRkRobT8oR1BFXCNFaiQjRTdPbjE+VjtgUmVuSzNSJ15GIWFaJ0I2YlRHcVdMOERnNVRUCi0rKi5aM2xNaS89P1JwP0hRJEEnMHEsVDZAZjg0Ym5yKj4+PGotUUEvKyRhVCdzKjladEg8MlpoKEVyQVxQamxHXAotRiJeSkRvITgocDVCRS8lbzVCM0goOD5sSVQoJU1gcTdqLHVGdThzZHM3IXNNYEdfZ1JtSWJfdVtwWiZAP18tcTMKLU8qNT5QNnVYM0hISDEha1ZuKUZRUT9kQ0xQIT9hKiJdb2ZMOzEobVByKE1TOzVLLyJvYTZoM21IbCNlSUw9PydzCi1JN1NRWCZFXnBwaF1bJV1qUkoiMTw0OV9qTFUtV0djWG5lL0dFJCFHSWd1PkVAcm5nP04hOFNIQjsiQ1JmQ1hPZQotckpqKlEqYyxjV1huM15qb09VKC9HRGtJSTM7cWE+a1wjNl5WQkdKOicyYitVajFYRklMRSwxTi0kWlFtSV1uVC0KLT02WGxcJCUzOydyY108JHApPG1yMysiVWc7KlhOITVPYDxfKyklT0NFQSExPiYnc05YMWo2QSZtV1EsPjpUITg+Ci0sRFpJIk5yT1xzP3IxTW4lTSZyIzY2VDFYS0xSNyRNRkQiJUdmNDJPKWlkRXVkSjNwIjczZHNlQUM+XzdBbFJHTAotK0lJM0ZLWjdSK1BtZ0xxSypkOUwzMVVJaDhYLkduK29uPjsrdSZkdCtwZ2tuT2w5Oik+VUNDYFVzblN0Ul5HVSoKLTwycmkxRmRRYHBLayVEa0N0PHIlVlVdSWo+QE9uS0FAYz5uUXFcTVVcXXMsXDVHNmMqJ15DQmVWKzg9IkUtNypDCi0/NFZiKz01XDMuQVRvR1BgOFc7Vm0pRVpxUydHWWZnJWFDPz5CSjshWT9INUNBcT9XKzhAJipKTDwhbDNnMjIjZQotKS4mQHFGNDNrUDQ2dGIncWpQSW5HaGRhPC1eRG07RipaUj86Pl9uc2w/LkYvNFZjLmExI0M1NihYMiYwYFQtTjcKLUksKiNeVnEoLCxIWSEpSGdzLGpWaS00cyZuJk9WYXF1MihwYkhiKyc0dDFpaWhuLi0rPHJeITQ+VCFhXmQhQT1aCi01XUB0MV09dEpNJkUxSjZGJ2Ffa1hEQmcsYCkuS2gjc3JTXEZVVUFESF00X3U7IzJJVDdNLW5bKVRMJGw5YGAzRAotWmtFOWJXXFhTYjBJXStzKXAkR2lPU3FbJk4tPyIjbmFbLDMraXEjT2EyaHAtKHJgY0ZNWllLOFdtbixrYVlPcFkKLTE5R1MkW2pKb1w+TUNTTFpaSkpMLCcpdGIzXF0iIV5HJkVoYmpgTm9lLDk7NFVbcGlzMihwWi1UUy0mUWAzUUFbCi1iU2xTXjlHPiJWOFpYQ0BNYTo5QGgjQlx0WWNDUEk4JD9KPzdFVFdaaz1AUzZEJ1huZWRldEdyO2AqVE0+L28oXwota3NJRWYpcVMhOG9nRTpcPTo0WEs1JDQmLzpLcHQmPmEmRE9QbHJgdGFtWD8tO2Nza1ZMS011aityT0xmPGtZdFMKLT5aVm40QjBLK2RdaHEtcUM1WSlNZiVWRTFjWj9kKkg8dGQuWztvVlVnXGwxVFFBKmUlPS0tdC09XG1LLF1lJiVUCi1WLWJgV1E5RyYiaV9pXXFtNzE3XSU3QUMpaC5NVClmX2tpIzAiQWh1SlIqNG5jXW1OZSguIjhKZERkW0NfTyFfSgotPzAoSlI9LkpHSzdVTWJNYmpJb2ZfVW8+VUMkNT1WT2VmWzokJjtkajFlKmIvbDw5WmdWSjRiOkRcZ0tQLC5UXFMKLVJhcSMwQ2cuZjBYKDdAVERTS1NmYjplMTtITDM0LDowP3IrXSc7QDhCcC5caSlUTnJVZ1BlRyxnYU4mLFxnKCtVCi1tRFNOYzJZIUwnXHBjUUM4KlZEKkAmZDJELmtuOVEyJmpCNGZNcWEibzJuKCVEVUgoJyhZJUxjRCpzTDxyMTJTUQotZkNSNkFkbmMxOjZTVkhvYyZMTE9dcEFiPGhLbm9yaW5uJFFVVjYlRDJkc2okSS1TMmc/Qy1AS2xNKTBFKyZncjIKLU8vN1d1NHVePCtxJjFTc2ZEMkc8aDkrQlltPWpmb0hcTjxaPk1qbmxhJ2k7MF91LzFwKyE3Uyk6UyQvdS1nTFJOCi1GNGJcNEMlZjBqIWg8T0hoXlBdR3JCVi04cnU5R0tJKk1LQ11MTXMyZk9QOzhjdDNlUTMhdHVvO1w0K2s4ZWBfUQotLiwjJiYoa2A6WV9TMjwpbkM0Ti5MNXUqJTY8QWotZks6VTxhZCpbRVVISjlabF9JMGkxIWksVzxwLm1NUXNuPl4KLWxgVHM0bDY2KCo9ZmZUMTIwVTZqVFJpYm9aISZoR1w/TGhFNEAxaT9tUElEI2VCNE5wRC0kMWRNbW8nVik8NHRFCi1ObVpZQmBwISZOaVg7b01FVy8zS00jLVw8JSMnZWpuaS5vOWI5Ki1mTDNCakQ4MSRuNSJkKjxpSzEoI1U3Mls8cwotZDNPb3IlMmo9T2tbKyowciQ8UG1ROzEmOXEnVmcqVWUzRDIsLyJgVm1MbXMxRlFQbmE4dVpvYi0iTDRDLmYqRG4KLShgcihyXSgyNUgpR0E4YVBxKGllQnAhRUpDKFNvMmtpSURfSTtqWE45cFwhdWsySDMoWkBNVUEhak9aM1hAbjpECi09ZzBxWV0vblIxYnR0YDE4a1MxWy4tQFJMSjwuXE1iU2YodGNFdUpJUDVcUC84M20kTDRQPz1NKUxiTUhmZnUnMgotZjdoXTlLTCFTNGdSW3VWRj5HN3Q7M2tVPz1MPHNHOzQ6K3FnKiYjP2xCQFAjLTZwPWsyK2wsUSUmSzMmUWtBJVcKLUs7NkNDOSheLG4pPHRnZEJzZmdyMiNhJUBqWmM4ckFPKjNEaysxIkpQdFVDOCstUnNuPClnSCo7Y2s6Pk1NLVNaCi1YcistO0M2X0RrTVk1V0stYGwoZktGXzwhRFFfUVNFQ1VuMTlxRHVISidkSF8wUGBlSFE9WVlPXFtwJFJCJTdhIwotPFclTU1xVzBqJmVEJEFZbj5iLGUua1lAXEo/ZCRqXyZbNy5rOisnXFNKN0I7OW8sJksvOkYobjIkbU89cS0sZ2oKLVBXPE8jSVdXPDZBdW1AWUojc0s0XmZfPk9BRXQ3akxwUnJBXWgqb2ZEMiNbMzxtSjdSbFpmRjtiblBmXWxKdSRpCi1IWTlKWlpgR3VMWWNlbWhDOGVPdVw1MFE5PmUyXzQ6WVheNTFtMlg+SDs/LGU0XipcJEInaUVhXFUmMShxN1VGUAotVCYxNC9IWWRpbjRoJlQzMVgjJCFEJCYlXlA9IzYrKGFYVTcoJ1NIPyZDLmsySkdPJTxqZz44WCFCJT48SllxaUAKLS84XSg4V3FbPzxqZz0nVGFuRj1GLzQ1KlFYcVskWT1IOmMrOFY1ZyJnUDwtVyVHanVbQVQ3ak5cPHJecmlkcylUCi0rWyNxRk86bD9oZUs0KmhfSzoiblghMXMjJk4xSkNrZjQyTSo+K1gsV05FVGRLPUVdQUBzaSpuMFwiLlFHZmdMdQotTGlFNmZWR0U8LDcjWVw+PGZDajNqaSxuJl9VO1koIVspJ1NaTEVpbGZrZW5QRiRVVmU9SD5AI0c7dW1KS3MuT1kKLSx0O0VpQ1JxQ1wrXHUqRjRpYVojN0MydFdiQWBZPUIuUkBYajM+IS06TFJfZkQiNChlRyotb046SipXMGYwSW5UCi1aX1ZKYmlTaEJGTWw0IiRjTDtjTEMyIidVMiwnYWJmMUtSWVYoVFopYmVvO2xNU25kJDRedFJxNDNIOkIyZiQ8OgotVjNHSEFaXlkjNWokcig3JSFFYjhbPmxdWk5PbDAkW2E5c1A4VWJEW2JzSm0tUihrX3RHVmQlYlVwJyhIRVI3YXIKLTp0IW4sR05TaWRdP2IwWjxXQFIzTnJcK11vNjBWUCdURyhGIkdoRlhTOGNxZ0wrRmoyL05eImhEYkFbdUQlc15TCi0yYTkxZj5jWWpZRzlsMzFUN0phXSQsMDNYZV06bG5wKShiVzhfbDZKZ0tCK1VdOkJcM3EpOVs0Z2Rublk5LFhTdAotKmIqZzcubnJGZV09PjNpMF4kYFpUR0hDPEQ2U0p1WlM3NlFnbUE4RFxwUk5DLSpzU21JXUs1TltsWihqWklgWkUKLUE/MGQsPywxaWFUZlVzMDRLXTA/bHVWMD1oJlApXG9wclYxck9WYEkkSmlrbCpNY0YrWTw/RCJcX18wZS8rJENfCi0wUWNhYGgwVCohajtNcSVnZlA1NF1dTEhuUj9wXyRtaj9eTVdOPEZrZi0nXyJCcDMwUlczMyE2ZChhS2dyazBlMgota0lQYGZgR11PREdQQWYucm9ZXFMuKCkjUGExaD5oNmY8PjUyXTRfKipyLyNhP0A0QGVuTk1gWTVROiRJQyJVJmsKLXFyV0cnKydHbElLPltHM1FcXS5eQV0qS3Fda2RTXWkpIWQ8JGZ0JmJAQ0d0S1ddSjJ0LlxHSm1QamQmcllHZVs3Ci0jbFtOX3JlOS5fLzwkRFdZaFgodG1BbjIsIkMwJCRbZlBiKmRMWiw3Ol0wKTVrIlZtS25JRUtURE46PVg1ZSdJZQotWXRRTF5WZzlqRVA0REYjT1VtYjwwSl1GNmtqXCZsXzk6LTRtMjRGYmYoJjE1Ik9BanJhQD9EcHFaWSwqInEkNWgKLVlXLmxtYG0wMmJtMG9CUiQwX1xTWE8uP3VNJS1pdS1tbyosalBbM01tXVsmSG48VT0tVXQ0b0s+OzEoUTlKRVI6Ci02QT8kRiRLSilhIW05V0whKExXP2RFMWhlV0ZDPCxFbVgzPmI0IXBrWVpgWS9nQSNGQlUhRz8/Tk9JUSY1Z2A/MgotWTZpOVZsXTFNPHFPJWsoJT9VUUluRDYtW0cuWzNIcjJuIUMvXHBWM2ttIzRqZl4uYm8lJ3AjPy9KJiRnIm44blwKLUxhKlAuP1BRQW8kUl8sR0RpND5bRXFuJHAkUDgmXGNpNFE3XSwrPiFocEhcLm5VLW50SkRYNGApMXNkWyZYc1s/Ci0tUTFzcWpBOG49blk0cXJPSm0sVW1WOGMmREZFX1pNI1FxS2Y1WVBRT146USolMDtSKCNRZF1qMSEjOy5WQmxmNQotaj0+RGsvO2pOXjxgaCUiOTJFXW1uUF5KNjx1ZjlXcTkrO21PU2poYE1QPzIjZCNaXXMsazIlNjczRjJwK0RwVzsKLVlRRylLUDcjWGNuUEd1Izo6LCZlXEtZWEwqXzJWKSVCL2VJVlgwQ2JyYkQ7VzAlZ29EN1ZCIyEsZCwhUjpcLGc4Ci1gW2QudSJEXV5bbm1sPTtCZFUncic4U0xmbFpERl1WJThQUSYoNXVVO0NfaTxXPyJnVyVvT0pTQVE3PlFpP3ReQgotJnNBYnJucThULiVaI243LnJuXFFZZlI6WlNEMjYnLygwJiImN1RDOERcYiteOEZqUEomVyU7WmtbWDJNL0ZyPCoKLW8oNkc/cShOPzgwTi8yUGRnRD8jXWQ5U2RyaUcsWE8/NGB0JTU/NikvYiJdVDBpS1JOKEYraGZfQmpgbGJZJS9hCi0tPj83amBEJG9PWF1pZDglalInbiE1c1FDWUoyTm02dDEoLGEsN2ghRCkwQiZEJ0NURipzVD45RVYxVnUhQipCZAotbnVYRSFkb1J1WF8iU0M+a2NEcVUvTVFkWFVILWVZLCpCNz4wcE1Zbjkkbm9fYypEQjVQO3JqWTJZLkFILjUmXjcKLSc8JDBJLmlZNDozNl5PMy90MSE5MiVdMmQkQnM5bSZqNlFMP1M2RUhxRDU0ZmRDQyVQOkhjIWdiPXVoOFhhYE1BCi1uS25lUjR1O15pO3UmI29yOCxoLCw0bCNnO2Yma0pFM0c4KGVeMlB0ZTJvbE80WWZ0Wj1gWy5UO1FAcEVwRkMxdAotLFJoWFpta1shWTkhSyglNFoiR0JGOSpCZmtrNlFvKkdmJ0ZFZ0lMJ0JhTyUzITpuRmpPdUdqYUNHP05ka0wrJnQKLWU9TDVuUjVnRFw1VStsUidXc1JKVWctbGM5MjY5clBlLGZGXiw/RV0sZFs1PSJaSytLQiYnXlcqUlV1X2spaUBeCi0yKjRiRClRaE9gZUQ9LGdpbHM2ODRTJ1gnV3ErRj8xQkZqYzMpb0U5WyZIUExPISslVDpYR2RJN0k4XWtoLCkpNAotOkpFOGBtYjlLUW9kTElyJWFATDNGWEwjWEN1blc5NkYlJS5bLzNSXkA4aT1XZmJGbG8iX2dsLy5kMGwwKVk7LCYKLVo/N1BmP1Y+TVI8NCxDQWpmSyUuQ0NbTjs8dSFNbTw6YTFTJEYzVytcRjM5J25sNilRKEloOyo9UzZsOzo/Kiw/Ci0nLSM9cjg5MmdQV0deayUrJDRWRztPKkZHKCEuQE9ATyplN0IzITtdUS4yaUxmaCstV04pZCVNRlwsXzlrbmZXRAotP1ZAZTZPWVxtUTUtImBEOkErSD5RMllgW1hXLnVzcj1tRkxlY11yRDNGSzZcQDAyM2VQWjZCbj9UIm88QFBbZ2kKLTxYXlAxLmpYZT1AZzwvcm4vZSRgYHVoVXNrImZEYSckIlNINWVNKzhBbCdqVGVqKyZaYm5xXCc8Y1JMS0I6aUBMCi1AbiJ0KD10aU4hWSlRVicoSydpT0IrITYlL2ljISJVSlouZlQyWTFgb25vRUhRREk7cm5XTS0xUSYwNE4sQTBsPgotM2BeUlglKEFFXlJeSSREYztYIlQvL2o2V3JkLz1BbSc6YVBbX2xgOG0xPUheMllQQl1OLEk0cGYvcU4jOklraSgKLTEuO2c1Vz9rOCclbyZbNyFdK0BlKE0mTTlHJz0lKSU8Qk4mNFtJWyFGKWEnOUVTRFs9KlsvITo7LSM7SWJtT3Q9Ci1LLkA5XVxzRjQyMmQhdUQ0JmFJKWxJJlVRNjZVSCslX1ZNazdCTlJiZiZtSz1XY3NNK1lBbHBBMTpua2FOP1NjagotbS5NZiE9KiZRTUpVLyE/Pzw9L2FRX0deK1ZfTC00SF0uS0IoRW1VPV5Dby8rSHFJTz5VUz5bXlspKjJMSC5VMzAKLVtlMEU+RzJJSzMxLzRyaGxwWiFJaCk5Sm8vSlJBRFo7WjUnKygxNTdJb1dVYm4hUk10Y1ItIk9lYkBPMVFIckFDCi08ZEk3c3J0XmlxKFlhSkYwN1QpQUouUit1YUN1ODtYX0EwLiVbTXJcKGMpbkEzdUBaKklSNkNlR1EyLmQ8RU85LwotMiguS0pQclhPMEtuL1x0PjteXlBGOWEsXV5DXyZOQ1kqaDAoZVk7U2wlXk8iMzRNJSFZT1IoaypIO2tUQz9gb3UKLUddYWFfTSpkTCFMXE1hPmNJM0NCZVFSWzcqVmJiUT1LX2YjaUcoJSpEcy8wXidxcDovRGhKb0lNJFMkWiNfQFZNCi1GXl85cjdzLVlGT1xkZUQsO0hZOkFwRWEsN09yZ0Y9YDkhU0ssRyhhIjVrQj4iYEo+IkhhZzJAZGN0RWkhJW5XMwotUCdIWV9YbCM8OzBdUkY5T3IqL0BHc15ILS0nWGZmUGhBbixBNS8+IUZkJnJVYj5qT2VmW0dCSDgzZzxpVk5mXF8KLU8/Rz86RE1tcGhQP0UqcFkkNiJoQ0lvNz4xImg0ai4sWz8mPWRQNF1FYkJ1IUckPkRWQ09lRjlSITxnXXE1J0pKCi0yZW1GP1I1XGckT1cvdUxcNlEhRy1DRC0uRTRJMk4pKU0nLE10bjxfOG03WFZyWyJSK1NhJDZHR18yTnMrXz1HVgotVChvUkU9blNIYF9aaXBAPUI+S0NZMEVCRyRfOzoiTWAnc11HU0UzJGwoVXBNVTZEZEM2aE8zIzJNRUJeT1pHLlsKLXFGJkArNm9RIztQQnBIMGcwXl1xQSM8RkJWT0Q6dGcyRWwtRi9OMmNWal90MWc0LSU+SztfdC9XMSZYQ2c1aTNPCi1QR3FgUFZBYFU6UlwtU3VVVC5McVdnXXVnZzk3T3FaYEA5PVgrSzwwZzpPRilfbFIlXlhJQD42ZzxabD5lI0BaLgotWF1qSl1nPkIlT2ovdVNLWSshUjYtRC5JSzNNMVdsWUY+P2xnQWVBciIwYnU3WWFaJClnQ0xQLic8dGFYWid1XTsKLWdFM14/LEkxTiRaQzxBTWdGb2xQMVVDOWhWdWdoPilhQ01NajBPKSZbJHNecWdKPjNyO21maDJbQDpDLmdMJT5rCi0vI1YsZS1YcHMqIiZrcWg5IS1mRFhcLkUjKWVaVjZKZ1RfSFtqMHJbZ05daSlOWmJRX1wvVDZKZ1BTPWQmUlA+IgotXHNvYjNnVFM0LlphdGNZK2dJNi9xQ2ZAVik3dUFMXTNFSWtnWCFQUGUlSnE1XU9GaF9nLSohUCQoS1tuW1RoTSIKLUhnZV1nbz1uTihYdWwkYWdRdEQsaiEqMDQrTHNHR2dcSloqJz5bb2lfNCQ6dHF1Ll8nOCYvPyMvazZlVV1IPXUmCi0xVypIVl9qaElaKiQ/QCNWbC4vQ1lGOG47ciZfazs7b04hQ15Vb2NMZyVVYlhGaThsPVlCakttcilxJltGMnFPMAotV2RJVUdIcHNzJ0FnU0w1UGU7Ol9nbEtQc1BHZkhVYTYmKW1BPV1JLU0lRGRaYV10bWhnb25mcyYnO0kxYC0/VkoKLT5caEBXWi02SW5iYV1RYmdwYiddXSxeXWZLZ0s6UVM6U25zajNDb21daiZQJSVJTTohVjdJWSVjSilkUmgjR19BCi0iNDE8WWQlKFFraCQxIjpwV2FhaWJNMi85UnVicXAsTFRqRmRbX286aChSNHIsXGFwRzVRKChjVTBHL0c7bk11SQotUCRMRTQpYHVIW2wuJydAZVhdcC5ISi1qKUEoRnB1YVJncGlTVCErI0Y0WF1BZjpAOT9oMSsmdEtAakliZlVbclEKLWgyZzUwUE0nNi5mcSJWY2g0TkNBVVk5Ik9nNzxrIzQsKUUwWmFUaD9nUll0Mmg3cV9jX3FcUDxnbXVYRGg5WG10Ci1lKG48XWg0PDxWaDtAJzBqNSspKWhPV3VoaDssTlFiJUE/MkMmUk1YaD5jQ1MiNW1KamkxOj43aEBKUWQnQio2XQotaG5APElVMyM8OCxOPCNVaVAkXSFoQ21uMTFaTWUjai44P21oRVUnQjZmX1FEaklUJCpoRzw1UztycT1lamRvXTwKLWhJI0NkQSouKVRpa0BsOD86RiJqQkJOVEZrRlIlYGhMRmAxS0JRV3NrYW1ecmhIQiMqNmFQVTBbZio4a2hPaidTCi1VWnUwYGxDUCdBaFFRNWRaZzFuUGwrTXJzKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTkzMyAwIG9iagotPDwgL0xlbmd0aCAxMTA3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQY1dwIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxM01wJCMyJk04clVEOnEyN1guKSw7RVMudCcrPzBROEI4QGsxPEQjck1VY2FcCi1NQTJDTEtXN2JUUmdrJkJIZFBCZ2FDWytCQiI4cHFwcGFjUCtcQUg1LkxjSi41al5YYWFDT2NjSzRzKnMlXG1QQwotMmlcNDhdSj88bjkjTkU6IiksUDElRVwqKWAvVU5fZlo4XkpUXGdJIVRgQzAoJCkxZyopMkAqPDNzV1ZJLXNSPCwKLTsvIjA0Tkl0V3E0MlhFSjdRTSY2UExCLSNpRzA4TSwwVlAiITxpUlgrdSQmajNkcVZxMCdJOUQ5N3NJZCcrPyoiCi0sUzE/NzVpdCMrNWxmSXA4OHNbMzFXIVdZJWRlcyg8I0Y6N0BnTTNXWCE5JTYvZDNEP1FNKUdwTXFrZVAlVnEvXQotLlAvYT1OT2woWD41U1IqVFAwXT5Zcl4vbSRoQ09gJTRJK2w1VFwvTlF0Lig1JkNAc2YjJkRAJy1PJiUqVTpTZ2sKLS9PPDBtT3MlaCwxNms6ODxKSmNLPyEmYShUTitiKG9gMyg2Y21uJiIsZiV0RzwjSCddbkRIPjhVWT91ck4sWG1VCi1ARmNuZillRTA6cHFJJm1OKFNwOyVSVz85O3EzYTI9dVRdUDlwUUpwMiRDJEI+JnVqLzxLITRtXFVWTDA2bU9xMgotVUJuc2NOY3VNK0YnVFVEUlAxYCVWP006IzZmJjUoNCcuQE1PLFIjQUY/W3FkcmArPlRDLjlfJmUwQyd1Ky0nMWUKLWwkP0hWbVFOWUtkTEszLU4nZjJYMlwwRShIbmRiREJfaWBabElhNFFra1tqSU0qQlBBZHAzQEFXOSxlWlJEbEBqCi1AKUpqW1AlO0I1V0guK1BoSSomZkBpXCN1Q1hsYi1RIWhjTjU3XDM1LilcJyohbyoyX19jSDImVFAuMEtwQ2BKJwotOihUVUlHMlcnNTZXbFpzUGNTJm07NVQ/LEloQlk4Sy5kSkBAJ3ROL2JAVkxPaVljSSQiblFka15oRGA7IyMiMCMKLWJjNDNZQWZDcjFkT1o1aUpcPmU4MCZadDVyLHNhb2BmQztfOEQ7Z3VeaEJHSFRIRn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotOTM0IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VDIC9JbWFnZUkgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW0zIDkzMiAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTMiA5MjIgMCBSID4+IAotPj4gCi1lbmRvYmoKLTkzNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgOTAxIDAgUiAKLS9SZXNvdXJjZXMgOTQ2IDAgUiAKLS9Db250ZW50cyA5NDUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA5NDQgMCBSIF0gCi0+PiAKLWVuZG9iagotOTM2IDAgb2JqCi08PCAKLS9EIFsgOTM1IDAgUiAvWFlaIG51bGwgNjc3IG51bGwgXSAKLT4+IAotZW5kb2JqCi05MzcgMCBvYmoKLTw8IAotL0QgWyA5MzUgMCBSIC9YWVogbnVsbCA1NDEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkzOCAwIG9iagotPDwgCi0vRCBbIDkzNSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTkzOSAwIG9iagotPDwgCi0vRCBbIDkzNSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk0MCAwIG9iagotPDwgCi0vRCBbIDkzNSAwIFIgL1hZWiBudWxsIDcyMCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTQxIDAgb2JqCi08PCAKLS9EIFsgOTM1IDAgUiAvWFlaIG51bGwgNjg5IG51bGwgXSAKLT4+IAotZW5kb2JqCi05NDIgMCBvYmoKLTw8IAotL0QgWyA5MzUgMCBSIC9YWVogbnVsbCA2ODkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk0MyAwIG9iagotPDwgCi0vRCBbIDkzNSAwIFIgL1hZWiBudWxsIDQ0OCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTQ0IDAgb2JqCi08PCAKLS9QIDkzNSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDkzMSAwIFIgCi0vTiA5NTYgMCBSIAotPj4gCi1lbmRvYmoKLTk0NSAwIG9iagotPDwgL0xlbmd0aCAyMDkyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQmRGduWFJuVF4+Ci1Ubk1XRDJrLEkoMVdkbClBTiVyOCY2TSVBKChELnRpVDNcKVRQY1pxIiVBdE5YWyMtJylpUzkoYkc8WGk0dXE3SAotPTxXTCk1WVdyJk4rUlZAYURIcVNOXms9QGFWRypsLEQwSURXZmE8S0dEJj8qVSZzImsqYjoiXSUzYmRjZk9sITwKLSRfWyVLWENIN10mL3RZSDM+O3IxMHQsT3NVUklFM1IxPzFSN1psSFBeZyZRM0ZOVGRaNiplLjc0O1o0UlBBdXVICi0rPEg9SEsvJkovcDBAQS8lWW09TWtXalJoTi51UERHZGRoTFU8Ry4hbiU6KzVgaWxIczZlKGY2OlBjT2A1bSkqIgotKkJ0J0VwN20yNVROJUFsYjwtK21OKTUtQSJbPVxWaV00cGgnI1AkbVlMPCJPNl1gRyonTFhaSGI2LFwkOU01VVsKLU9tSHVsYEsvNHFbQGtaT2hBRHE3TUBiSDhUYEFtSUw+ZClmKV8jNmo0THE9QVlbRnU3OFlFTCskQTFVZCYxa2A/Ci1mZUpLcUxyLThGbDIpR15OMidlNWBzbVpHaERLcmcrUG8yPl9pVzsmTj1WXUkxUUAlLjVWVCRFUiplJ1ZfL01cMQotTS43c1YzJlhEQGdAPlonITljNmllQztHbSVbNkQ7UGxxMmhIODVYSmtib2RSbipqUiFMQ2Fmayg8XSImIiJzZlsKLSdiJFMwK1UnaGU5T2ZMNTBvUj8xYFxFSjwsJCs4NWI9J0dDTj9iNGgpUHBxY0RkYSxsTj03ajFqLGQyQSJWZE5ACi1FKixgZWt0VEI/YUN0QF5MY1p0QTVqQHFPUS8sOFpWYWpWVSU4N087Mi1fcEhZJWFQKjQ1KG9KUjloNy5hUEp0PAotNW08QEUiO2lFRmk2S2ZlanU6UFAyK0hNYCxAJjhgTkBAdE9dWFtCJWhXQEMpR1tSSilfMVxoTDxmWGV0UW1TTFgKLWI7NlhfUFowUkhaNG48cCVlRTY7RkdsJWtHb3M6aCRuW1c1WClhYVZXX3UvM01bI2xtIlkmUXRQZDlWdU0zbzU4Ci1iVkwvbjFDUE0sZl9RKXEjaFYyajteRTZkO14zIXMnRmBSZkUia0hEUXUpPEpfI3FyOk4tPz8yMTk4X0RjVTNAKgotJ3VEWWBLKl1HZCQlaU1eJ1NkaXNfTklcZV9SLUlEWm9IbC89R2M2LUthdFRaPVZ0TnFYUm5HVERrUU1QbzlTTV8KLTJpXjdsNXUoQywyNEheZV0tYmJ1QihKRkAyREc1VVItMiJbSzo3SFMzaGx0QSJUZk5BJ3Mob0RpJkduNFZPPFdeCi1yYSlFSkw4b14sbD1NMmxnRmhna08vSWFwX2pZbjpaOSxKMiYxX29IaT1uWVMvTWd1SStVM0liJltGQV4raFRUbQotWkVXXydQQzcoWmlAcVBTIS9PZkYkIUBGTjBWMVBsbCdNMmYzcSZMLy0yIU1cNlYpL18sZCUxc0ZzZFN0NVRoUkMKLVtDSiE8YlQwJm0hWSpKazJedCdAVDpCcTclVnN1T1NqOjtfY0xSXz9UblQyV1YzOU4kQ1trWWktM1QpX1ltZU5ACi0vVj1QKyhCWWw6WHJNYXREc1RMJzMndEAhaUNmUmgvIis4PyctLkVbMTFRITsuRTNhRWZWMEk3JklnOWQwIyomJgotWlFnLVEvI1lvZFlSIThzK1NwTnE6P2lQNj0rOVM0QFg5bTROVjoqWCojak5Waz5VV3EzJiZrLVlRSkAiOXMnUiMKLVdNQGNIPUVuRCViLEpEYGRyTzwqZDhXYihiYyVyMV4obzlWMypJaCxDPDc6VTxzKS0lOnA3LkAwXCYoWj1UWmJtCi1FMkMpXEFnLydtZyNuREpwJCJWMjY9Wj08WkAzLjJhSWJgLSQ2PWNyPiJjOjNiIWZLRCdvPmo5OUY4Nk8yPD9MNwotJ1RjKjo/ODk4YStyOjhRYF45a0RqPFNjP1ArR1FHIyVoXToyP2M4Vk8hQUJCIUYtPWs6aGc9WFRPXDtzQCglPW4KLV0wNmo5KCdcMSUpQzZaLUZVa1cyMEpCKDUiQi1OdGVjQHVpOm0obWFLaEE/IjZZKU49bG82QlMvbSRVLGxaNXBjCi0jYzlyMj1pNSZnO2hyYjIyWlEsdTpTVnIhbGk/QHRhXiQjKSdIaDljQU9JWklnKS1QX0s5cD5BKjZLT1teL1hsSwotVlgkOS5MNzRGM009XysyTWlzQ0VlXWVPSDBQcTlqKS9eMkIxRGBFaUlPc0UvIV86bSJxMTVvJlI8LG5OVTUsb0YKLUNTYD0pIT9IUFwjai5OOk1damd0bDJNZkZbLVJtX05kbilIMzxqI0NaZUpYcTB1NS8zKl5vTy1Bc203L0ZrSj5LCi1LVzswakE7KmhFIlsndHEnK0M1RU5zI0hbTTFVODA5J1t0Yjo7TkJpLTk9Zz4uZSVJXztiRyZ1TCE9RCIsZUdGdAotWVZRQDdwRDtVSWZzbFRmZFNzRUE7OFlHPDtfMjQvNTpKWiNETD8iSDd0RU9RI14ncyNVTmEwOVJGZGEsISNhSy4KLUF1JzxpckonJ0loOD1RU08mKlZGWW5aNDRWWGNERSRRdVFJLCo2R2ZCYFN+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTk0NiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTk0NyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgOTAxIDAgUiAKLS9SZXNvdXJjZXMgOTU4IDAgUiAKLS9Db250ZW50cyA5NTcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA5NTYgMCBSIF0gCi0+PiAKLWVuZG9iagotOTQ4IDAgb2JqCi08PCAKLS9EIFsgOTQ3IDAgUiAvWFlaIG51bGwgODIzIG51bGwgXSAKLT4+IAotZW5kb2JqCi05NDkgMCBvYmoKLTw8IAotL0QgWyA5NDcgMCBSIC9YWVogbnVsbCA3MTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk1MCAwIG9iagotPDwgCi0vRCBbIDk0NyAwIFIgL1hZWiBudWxsIDQyMiBudWxsIF0gCi0+PiAKLWVuZG9iagotOTUxIDAgb2JqCi08PCAKLS9EIFsgOTQ3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTUyIDAgb2JqCi08PCAKLS9EIFsgOTQ3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTUzIDAgb2JqCi08PCAKLS9EIFsgOTQ3IDAgUiAvWFlaIG51bGwgNjk5IG51bGwgXSAKLT4+IAotZW5kb2JqCi05NTQgMCBvYmoKLTw8IAotL0QgWyA5NDcgMCBSIC9YWVogbnVsbCA0MDcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk1NSAwIG9iagotPDwgCi0vRCBbIDk0NyAwIFIgL1hZWiBudWxsIDI4OCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTU2IDAgb2JqCi08PCAKLS9QIDk0NyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDk0NCAwIFIgCi0vTiA5NjUgMCBSIAotPj4gCi1lbmRvYmoKLTk1NyAwIG9iagotPDwgL0xlbmd0aCAzMDMzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOkdnXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdsS1dsMWxESGtPaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLkwhWSk2ZWhPR18KLUxeZW1fUztJT1QqN0hJNjMvcFJmJ1QzRVRuV0FwTWFXPCVZVlw+ZXRVaTgiJTxibGozcS9pUS1MNV4iWy9WYiRNCi1pWVFrQyIkc3JKQkpBTSwjKEUuY0clcnFFTit0T2tOKVclXEw8LlFATVtHSnA6YUQlPFRdP2clNXNYOV4lXGptKQotXl5cK1FdXlJJSSZ0RldmYUBsSGMjMnNONylfKk5rNS9JTFVKbj40dSt1JWs2IjlXPm8zS0FYbFxpOi5POEIqQCMKLUNeQjFALmArMFQpMjpHVzxzOm1AXmVjZixLNHJGMktFSEpDJi5DbzVyXDknLixeQ0ZtOFFgaGclIlNFOjJpVExgCi1yNy5XYUdodEs/bHNUJDliKS1iYDBUN11sXjZhUFNfdD0nXEpTOEYtInAnPUIndFBWTGhacFExMF1ZInUsOGVRPgotIjlMakY0LGZyP0hrXz1vVE1XTyJUYGxEciVZRzNQKk4tMT48dVImST4pOXFSNk86VWclJiFnXTpDUnMzY1dKN0QKLSovYyZYRSw6biY4XmA5ZyliYHEhLThDT1NEIV5XdUpRLEFdWSIySCgnRmchcFpScTJ0ZUtHX3UiIjxYbU5OcDpBCi1fYnVWUV9FPEpSXVk+QUQrVGdNUF1NUiNwTi8mUmxDb0soL3BoJzUnOFpOWUMiW1EvRkszZ2o9QiVzRjtWI1AqTgotb0g3IjY6KSVNWyowIyojZ0RuNHJOMklSKDtedGQ4YGZhbE1ARXUqZ2kjLHE9V204MyU6TVFkQEwvOSgta2ZlKXIKLWt0QkpLNzNGJT0sQT5QQE5eSTRHIyFEUDZkb2JlXkNobi9jJ3EyV2w9SF8zJUNvXltnaDMyLlEpT2VwKmMoODNvCi1WUD5pdDJvZ08mQkovNGhkYFs4KG5FKydAZDVAS0spP14tb0A6NypNVF4tUyRlbHB1TFk1dCMwZk09JUY/JHJENQotUG08XzIlXUZGNzQnSHIyMyozQ15oRSotMVpza2ZKailuNlhLRUYmPDpDYVkmaGsoRV1vamZtWzFLYGojJV5FLWsKLStRPEQla0lvKV4jQWdMTkBuPUhwRHE4ZjcsMl1QYFYoTzhjU0taJG8kSi1SQ0VqQWU0MltsZXRCQS0tVDBaRFxvCi1yTk9bLGM+b2FqWGM9LXJyXUxbciNqR09dNF88IVlhWmJnQTJpYUMhL3Npb05waEdHZytEPk40J0VCZzBrSFZncQotJ09xKidIMFlcSCddPkllSDlkTXQ7QmVZVk1dc280ImNvcCZFSzxMQ0xEIzpHKyZbJylEI0hDMy0+WkpCQFpGPXEKLXBrT0lNQS42O1xGPiVBKDVUY25dJDNHSGY+alcoPlpzXmZpPm5lOE8rZjNCZWk2SiZqMS4tZCFySDhFImVkKUIjCi1DRkFOJi4+QzdLJmpaWD9HTzVfJEwwKWdqPmpBZCQkS1dIV0E/dWdMI14kVDRlZlVxbzBUM2RDJD9fSDhROGlGTQotTTlnYGBFSltbR1ZCajZXT2JzWmViRz8jMFtqTUNfVT1qNT1ZVm8jZjE5Zlk+WXNOLmIpXllQTigodGslTUV1dE8KLTcxZWJPPnEzKWcral8hVmQpJFpnXGhLJVMoYVFhL1M9ZTo7XypxYipWREU+Mm0xbC1VRFEtY1wtRF06YFBEI1dRCi1haGRZRmFJbyFdKGg9KXVrU2czdFc+RipQRz1DSzRwUCgmI0ROcFIjO1ItXyouTWRMKE1nTjxxTT9VdG5gIiFaRAotMW9IVGdHZWdZLl9SMzQxN1dpSUJkKDFwSipRKDYvPl1VbEdiZikuT2g8QD1VOlU1RjxRZj0yU0BkJyxfSlFnIScKLUBOPTJgQVVTQj4oLyFmW11xTiUpUlNRQTdWKTNBXjpuaFcjLjdUPVJLZiNTLFxzUURpRydMckpnPTZcZjppckReCi0vWnNtaSNENVxpOUA5PkwuZzNeLWhqQVZjZD5DSWIyR0gwLUsvL3REUzJnZjpJaiJvVUNMYjtiT3Q5VHVOaF1NJwotJVVrP1dMQy40JlEqaUdMbDlIVnBLWS82UEowOmB1aEhibW9kNFNuWDpRJyduOD5SLDNsbFc/Ij1qckBUWWohdUEKLSE8VGBWTVJIXzg3RjpFKDhsTHFxQUFIRi1DSlpBJXBtQktVQWplJkthLTsqTTBOSFhDM2BnLls5Sk0pcWI3XjEhCi1xQ09cQ0tYLFRZUklNUXFkbjpSay06WHMjXytVXmUtczdJU1B1OmMuUE42TnRlSjVKdCgjbEY+M18qSV1VLGBXUwotW1ZBMUxGVz9YV14zVUo3TV9NQUwzRFBMSU1hPEpJJ0FJWS5qVG9JWDkkLC8+Y3A4OnFaRVIhPGZoaj4kP1JXIzEKLVhHZ2RjaCQwQDdAVGpaNExUYD1YUC1UQ2VXPSNdLFFlNCdoSEFuRU8nWC5jSVEiZTpXRl1CJ0ZWKXNRIi08OyFFCi02ZiRbN11hOCsmYCJLU0A5RnRIcFBOOV1eak0oRGk7KnFDRGdyNmhiRnJMTUAuQVRqVSJQYWouUjpjcjM/X0YuKQotY081LThsTEI9QVZHdUosLXU9QUM2JmRJbTVrbEYvOl9SMzM2cTxKcitHJ2hqbEVIQ1dEKWlLQzVzMTxtOTpRaGUKLWA3YG9qMi5MK1VGLipBUEtLPWtTISs5KjwmTV0sRmVaMEtULDg/V0kjPj5TT1E5bEYtOis9IiZgQzA4RW9FS2BBCi0oYzZ0OGAiV0dlYUkjPVNDXkdaaFYkOj5wTGs3VFs4YEE0SCxGNFImSmleK0ZnMlNpSGpJTjROQHEnODFlMlM7LAotZylTaiQ/LGUjVS9hKT1BTE48NkM2cjRhNyg2VzBCK2Q3ak4nP2xgQThiWk0oU0ssNFMxYytDN1QmKWdCJ3JQb3IKLV0rciNOb0cpNj1CWE8jQjlTZmVCaGteKChhVEQ7REcoMWBWVjdNKU8oOzI5biM3XTdiKTFFTVxCLWRhdWArL0k2Ci1WLG9jMF0jK1xoL2o4ZCtGYHNzaj1ILUZcaDJDKDoxK3BmU2lOIz43P0Q+Ni8+bHVZUWc1Jzg4P09TRypsKChnLwotUWtpKHRSYktOZzxsKWBmK2c7RjdMYyUzNG8uX25gaW0kLCxnNktaLXBMcjJwYUNVI0xCSToucjg/cTskYTgjMEgKLTRWKnEoNzg9OVpXJmBoKlQoMFg2MEk7KDZvbiFFTilbYiJJayNvPlUoJmdZQTI3WlVJcSc/YF9ncileWkoydTc8Ci1RbT1WLlpeV3REJ1RoZSZiSU5rM29jMl9XRjdbcCEnTSFXO1x0UCdLbCVTMGouU3BJWmZJMnUwY2A7NlRJRmN0SgotLUFBUDA0M0osYkZFJT45WiMzTE8zSyFrUzZRZnAoQk10YyRdS3RIOTxgUTJiKyI+TV1eWXBqcjgzcnJeNE0lW3MKLWI+PUknN044LnE8VnREZjRIOV00bDJWZkxFKTdRby5yakdfTEBPNmdxMTNVcUQ8bSUpK11DRjojUW4jJWVWZEV0Ci0tNjtQPiZWV280LmBWKjIiazJLJlhqcDVkLk4/ajdBVj4+aWRfbFlFJjF0b2VcKiYvOT8obVxPcHRpN0ZuKVduLAotQz9JN3FsRS4iJm1CLy9xWjZhPWVPdDNRUUFSKV5JaTlRIihCY3RjM0FJYVJaLiRANyIiOlh1WlZzWVpNfj4KLWVuZHN0cmVhbQotZW5kb2JqCi05NTggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi05NTkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDkwMSAwIFIgCi0vUmVzb3VyY2VzIDk2NyAwIFIgCi0vQ29udGVudHMgOTY2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgOTY1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTk2MCAwIG9iagotPDwgCi0vRCBbIDk1OSAwIFIgL1hZWiBudWxsIDMzOSBudWxsIF0gCi0+PiAKLWVuZG9iagotOTYxIDAgb2JqCi08PCAKLS9EIFsgOTU5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTYyIDAgb2JqCi08PCAKLS9EIFsgOTU5IDAgUiAvWFlaIG51bGwgNDY5IG51bGwgXSAKLT4+IAotZW5kb2JqCi05NjMgMCBvYmoKLTw8IAotL0QgWyA5NTkgMCBSIC9YWVogbnVsbCAzMTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk2NCAwIG9iagotPDwgCi0vRCBbIDk1OSAwIFIgL1hZWiBudWxsIDMyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTY1IDAgb2JqCi08PCAKLS9QIDk1OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDk1NiAwIFIgCi0vTiA5NzIgMCBSIAotPj4gCi1lbmRvYmoKLTk2NiAwIG9iagotPDwgL0xlbmd0aCAyNTA4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOkdrXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtFblReaCFCQHB1WVMKLSlaY2NxJ0ZrSSlaLXUiNlJacCRuJV1HQUInYls8ZT10Z2EkIyhvTCNlNE9GNilgbjckITBtNHJMUHAnUTAtc0EuCi0wLDRgdUItU2pZbC5kdEslRTtaUyoxMT1yKXVcSlZUbGBPWU4nZ0ZhMG9nZWI8IztbclROJUFvY2JvRFdLaG4qKAotMUNoNm9cLmZAKEdqNyFtTm85RUU2U1I6ViYuXkp1MiVEXiNlNGdOOks9SkUqS0Zbaj0jLmZqLD5rMCleZk1NamYKLTBBJzVbIjlJXlAkY2U/ViUyWFspaTdSc2RFNEJRcjBCOkYlMmlRMDBtaUlMT0hzUmkwME5fLi0kWG5cZCtWLDRICi1CKkJXZyErUmIlUDs4N1c5QitUODJAaWAqKWBVTGxTQ2ZwS2R0Pzo2JVxvM2oxSlosTmxMRE5sZC8qNWFYYycoQQotN28pQjgrcTE2NmtXJys0YT9dT0FZTHA7X15bTVg6I1hLJmxfYUkhRj1SN3VGQDAyOHFeI0pyPSRWLDZNTiJsYmEKLTZ0RSlfWzZyMWxdbjdqaD5fUCFkSFExP18+byw8P18oQ3RXVFpVYGQobmlAOCY7NmRPIVxiUklfNkBhUFxaKGEkCi0nRk5rY2IvIlNKUC5JYihOJjNATyI7YGNFWF4yKWBsOEx0ZSE4TmoiaiVQYU0lViVjXGNqbGgkNVdXL3A6dShmKgotNlNRQTNeJnI+cSYuRSVWIj5NdWpXZEJTXS45T2VRYWBuXykqQS1bVUshTW5QWl01a1ArZVdgKWdiKnJKbCszVkEKLTpfTVtnLy4xYlFqJFg1K19IISRJa2ljXT9McUhESTg2UXU7KUpEcVpdaGAubzklLjJQM3NaITZrYm9lJm42VHQlCi0lLShgXzIhOlgwLkI8YyxwbUBTLiFpJUtXTGEkTWMsYCYxNlciOSoiaydhJ2BhUE5MIiQ1aSYvMXIsbFpoaDBsSAotW0k/NGE+MGFVW1ZQLzJbL3FMVjQ+VmFrNC9TLDpYKXE1N2widGlpQF5YQUBTMGhsVk0qUWBAVjpzOCNJRVNCRWsKLUJkcVc1Vi5xMzFZXDRsLlFMMkRIZ2RxPTooZTYkUEQwIk9aaTdwOVxcNEc9NGRfUS9CMTV1IjgkWyVJcTg3RVBCCi0mKDs8Mz88PGRjYEV0Lyc8XUdGaWhtdGx0RGhcNktOTUQucjJTYGZsLzJXQXNEb09gbSIyRlVMY0c0KDksZVktWwotWzhRTFtVVyU4SFRtajUhUDVjVFBnY0woRzJucCVmKllpXF80aUx1KUsmQW0sOUc+YHUvNiYzcjFDViwmLltqaEoKLT5vJjJDI15iL2pLT0AqciFlcnRncVpDZU1AODdYTidrISU8IUxQVkhWMSNJJ2A2YFQsSjJNbU9mXig8LWdfYENkCi1GK186NzE5cFQmIklNOmsudVk8KllZYTlYJjFEYTRXYmFGKTdPSl1pb0FGWyNNPU5YSGJRbjxdNShYb01tUXVSKgotRyNacl9AMCsicjVXRmRHODMmSldFRVJPa0AqIU1iYkQ5Jm9FV0BnPDxnPFtma2AwPFclWWlXMyNRW0lQIzJsLXMKLVAtYTBBP0pvcm9FXj4/YDp0Y2JGME0pQlo/OTFBO2dBTWtQTGQsPjAlNTtiXlZQMyNnTmhOMEU4KXRGaD84KmRTCi0mbCIuS2BcQTQnUkc4NkxRb0k+SkcyXj83PXQ/ak0hS142P0UuTmldPjE3JzxKY1trUjhGbl9GK0pdcC46ZidLMAotOTIjTCY4VjcvNS82OkBeRj9Sby0sKlxCZ203by5fUyJSdEJYaTdyXyNrVVk/Nm4yU3VILSYoP1A/IiV0QytZZmUKLUJIOjNNKC1nY0goZDArTiljIjpMT1ttSkpML29aRipzayxZQ1llUWJcMzMtVS1uJ2dAQylZIThTSixVZWsqT0MiCi0oXiJvczBNM1ZdP2M5KlldYidiW04lc2pyQVNlTjxXU102U1BccjBRT2JDaChlLztWJilDOGdWNDljXFw2cWU2YwotVUJoV2pZXWdRcyoibl9NZUJWR2VaUCdqNmUsMi1YaTwlKyRtMV1aJzwvL2krOzIzK2ZfV2NwNCNddSdGWUgkLmwKLWprS1A1JSRHcUJCNHU4SWI6PiVoM2UvIlIiSmNoUT91L1EiVC9MY1dnNylTaUQjbydwW2wzTy1fcVtkcltaLig2Ci1xPF9WSGA3bkshPTtfMytCKClnOEJkUFBYUXFTJ2owLHR0J0piQENjKnAhSjwuUHBYZSRuY2dtKS5cOzZVW2hqXAotO0VHdF5tTClrVEcmbjliPFxWKlIqZ2RMTEs+QlIhYHJvU1xLNFNTZEtbZnBTbkNLSkpOU1E5OV8jYWpEVGo9I2QKLT1xImk6KzlPPDZlTEQ6IiJqRTJVOW0qPTRCJV4kYy06R0RPZGA9cUw9bzVGKWsoWFZ0SXQmaVYlPGZaXmVXPkE1Ci1DYFdXKCMhaD4pXnAnXjYrLU4namJ0V0IuV1J0c2ZlKz5BNWg+RyRxaUpRVTxjQTBkSytWTTE5MS9FJGBVMjxyOAotIzpDPypqVW0/TkxJQWMyMkphNlJlTyt1PE5nLk1RKVNyS2RGMXRgJk5TZW4rYGhtaiRSXDpTVj4oU09qOTEkQXIKLVsxNGVJJFApVy9BJSIlLGZpSkJIa2U6cXUkOktmZCpMI1YqYCJGK2s2YTFsMWFoNCQlVDckKlhAKCtYS1RQPXEjCi0zSjdWSypqVUJWYVxjYGhBTihkSG8ya2osRENjaCtiR0M7VDE2U0pDTGRDKkhHVE9tXTQhOFs7R1whJS9FaU4sVAotS1ZLLWIzNllQZzMkRTgpKHJLYDQzc2QpWFVDdUZnb29fPz1QSzVgZ0cnJmdGZ1AzRm1URnFKZWhTXiZdUFFfU2wKLS1EYU85TjwsLD01W2ZydGRIXF1BRnUmT2w3cy8nal50anROUj4wQCstWSJIZk1IZVJnWXVyQCdkaHVPMzVYNX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotOTY3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotOTY4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCA5MDEgMCBSIAotL1Jlc291cmNlcyA5NzQgMCBSIAotL0NvbnRlbnRzIDk3MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDk3MiAwIFIgXSAKLT4+IAotZW5kb2JqCi05NjkgMCBvYmoKLTw8IAotL0QgWyA5NjggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi05NzAgMCBvYmoKLTw8IAotL0QgWyA5NjggMCBSIC9YWVogbnVsbCA2NjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk3MSAwIG9iagotPDwgCi0vRCBbIDk2OCAwIFIgL1hZWiBudWxsIDM3NiBudWxsIF0gCi0+PiAKLWVuZG9iagotOTcyIDAgb2JqCi08PCAKLS9QIDk2OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDk2NSAwIFIgCi0vTiA5ODIgMCBSIAotPj4gCi1lbmRvYmoKLTk3MyAwIG9iagotPDwgL0xlbmd0aCAyNzU0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOkdvXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtFblReaCFCQHB1WVMKLSlaY2NxJ0ZrSSlaLXUiNlJacCRuJV1HQiwpWTBcSz10Z2EkIyhvTCNlQyY0cSNSaSVJK2BMPDFtJE1iSyE8SiJkCi0uMzcxMDw2SF0wJytvbWFAXE5uLWdobl9gSTpLVDRPJGY1cS1BJ2xILGQ5WS9jbnFTLyhyRGxLX21taSMwazFMRQotMVE4KE81bSdGNUpFLkUhK2kkbzVOKzQ5dV5WWENaaEQ3I2Fecm0nNG1hPi8lTldaPyIlRSJsKWM4cHJbLyRQOyEKLUs2VFg7JVxuIV8zXFVZVGpxZS4lXEJ1PCIiMC1aJiJYPDAvLHBoTWJuSUQ7Omc9JCY2bGslJiQrXS40UydGXEpaCi01V09kNU9PPyl1T0RHdCJOVDZ0aiRVVGx0MGN1RDhAK1tEdW1eVU9SLiJgKXIxUTpxdDtEU2RCUC47YmorazM4OQotV0BlOypMLGI2SE5ZajVoWVw6RFNjaCIlIUtgTmFNMTsjMWBbZ09XbkxoODlBa145SEojJCRQWFJZakhgNjhYX0wKLVgwZl0qJlInUG4jPXRURy5LcmhLQ2JqVFdlMFBmaFExM21DK1RcKF5LMlFBdWhQaVpaVStANDwrZiJRKjNOcUYrCi1rXzpRakF0JE1zXVUnIywuYl9LalgkW2BQL2dGZjMnaC9ZVjIiIUFiLEE+JVlWMDhDVFo3M1ctbi9TR1k5JUZVYgotRixMYSxXOVIkLVpKMzNXQDtFJmMnbUMkX250VVxrVG9HJUApXytNNTpfRjdzOV4/RVIhLGE8RmpKbyg2YDVAXS8KLSpdLVk7LG4pYUJLKygpM2QyJHRdJi5ab1RkTUNsREo3T1VuQ2lcaGxMRCViLnMoMycsOmJbaHFBMCpaPDEhRmwhCi0kbmZdKFNPIThWYzhYK3RtJGFOISIyJ3I5NkEnPCxZZ0M6dGpLPk9hR2ZEXEBQIiFoJUNuaUVLWTMxRWYlPXIpYQotU2RaTD49Yy4hTEBGNVFmQzUnO3UyOSsyO2BGZi1TMmBxNyc6L0pDbWxqUE1aXmFgI0RONipqY0EjLldmX0g+bHEKLU5zT0FXS2lKO3RXZ0FFWnErMFY0aVwrVUVRVz11WkgmWm5aUycpJl5xQWpudUJTLVRDM3IsNklaYS9ycDlSSlFeCi0wTzE2R2IwUlM8KShJYm9VV29LKFVxPSQwcFNEQHVyUVRfQCteWTdtVlc3QzZaZXVbcGNeOEpDJiklJ2pCW047LgotN3BsVEFPZTwyQlsmc1c8UDQ1JFJmLTNgLEQzWFlfXFZUZVgjVSNvXUsyPkRIIiJYZTFNbks5Mi1iK2dQKz1JWiMKLUtrMyhEbnQqYjAub0ZVOjhAJGJxPDBYcGojKFlYMVhxUkNLPDs5RT4uWVwrbFcjQmxKbDRYPldqVEBIWmMzT0lyCi1AO0lJJCYtb010RlZUNS1DLi1QZjdGNDoyYlIxbS5rbk9JX2AjZmUmWk9uZkE0XWozXTlIUW9SZm1kczsmMDNROgotImpiazlMaUZbclxNbzdaOjg+SF8jIj1cOGtXVSE8TGhSOj1FI2JHQDcoU3QiMWUrSW9nbj8hMihmNnVfTDVeT3EKLUssLHBHKSdjY3QmTV1lJSNEMD8pKGMrQWUpLU81PU0nQzAkPyc0QiEzI0ltOSh0NFYoTjFtZzsoXDddOlNWU0Q+Ci1tYVtXKzpnP0ksOSFcWzU3P2tfaytCVzJAX0spUjApbkNdcyg/P0BPT05KO0NbSWJOc19pdVQ8Niw6OkJVZTkiTwotLFo6JlArPV0iUHAvKiVjaUZdPG82ciRnayxTc3VcPzElaz4tYV1KJj4iWl88QCkqXktlQDY/Yl0wQUFDUjpgUG0KLW1TT1dITS9KJVBGc09XOkcsVyNUOitESmAjNFY4Syk6WWxYXzNnaWoxaiFuLj1rPSg4WFY5JEdnZktoQEBBPU8pCi1bQHBiKll1OTc0OlRhXTYyRFljN05saGlLVHFzbjFBT3FPJm5ja3NkUjRqPERZKUl1YUJkakQhZlJsJTxrMEFragotSTM6RVc2LSkwVmUrNmIwRXFWN1Q9LWUjXkswMFNtbCpVYEZqSDFFM0o9VD8/USVnRlBmcDBGLzlDOygoUSxRNkYKLT5JcidHXzZGK2BQWVRZLEZPdHBNPicvIUJrYFEhJk0kKzpwX0glcycuR183P0w/QkUjUG50OmYkUjItdCM+dV1ZCi06ZU5VPTMlLDhuUFNQOWFTcDFZdEYoWU5xMk9mbTMpPTw1byUuMjBhMj9mXWZSI0ctIyZTYmw0TC9oKmVrVER0MgotVG0iQkpfT2JYTCUxXUklbzpEPyJFMi41UiJWSlVNYlpILTw8bWNuMlgqdEkwLkA0O15kNDZgNGg8P1dDK0NbXicKLUdBRTFgKEprSm8lPztoWkxGK2s+Kj5ZXGhOZzZEckcrSzskIjIqSlg/bz4/Y1xnTzBkU2RMJEkuTHNqLC8mb2JnCi1hZU0tL1xuUUMjQCM/WW9sYWJxRGVhRDtyJG01ZyM2I1ZhJkFpQ0w7XE1QcjNxLSw1az1LVWZWXDc8cCpDNkI7YQotNitBdV1oZig/YkJOPWldTCMvRzouPWhxcFpGJl0oT0tRdGJATFlyXzQkP3Q6VTxIbCc/ZyZEVTo1ZEpPanBIPVIKLURxWiszUDZoITRkY0BIOlUzPD9zbkRZNGBoR208MXJyWEdUZVphM0RfQ2thSjgpbzczTzJGX1M9Zk9oZWtTbUBoCi04OGNQclNcLyZzZlQyWW42XUAxIiVqUTE6TnAyRFJaQUIpPkFVci8mJEAiSzZYSEUqW1hGbSNhKTowck4vYk5iSAotK2JbMmxBXkNHMjxcZT1KPC9aPiUraUdXQWVRVCxxNXNSbiNtbjR0PE9BTlppWzU7XiFJYj8tN1JyOHRXTUY+T1oKLTQ2MGYtVEVAbUlkUnJWLzlLUCMrMD9zQlhiU1YxKHIsbF0nInBDUSMpSCFNKzksJEd1O18oc0ppOEpLVihGJjhzCi1dLDRsa0NEKjFeblgxLjlkRzhhUmx1TzwkL1IoSjMuNC1FZXBgM25fPkFMMCNaQS81UClGTD9RZmFmaz9rXy4zVQotMTJVZW5jYSViIzNRLShQXjZEKzsqW0orT2I4VkdQQmlTPGwva0wuNjc5XzkuJUFwLmtCV0NPMFxALl9QTGZwRDcKLUFgInBVaidTWmdXPF9xbCwpU3U5PXEvRl5sci5xOFFPYFInVUdRTyhfQHQ1UFQiLT9cXzddLiwkTW9kbyk2LSsrCi1qWiheR0M0ayJONyVEQnQ/QUJaSWNfUSVaWGhoPFE8XEJuciZqJlo/XmJnUmx+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTk3NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTk3NSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgOTAxIDAgUiAKLS9SZXNvdXJjZXMgOTg0IDAgUiAKLS9Db250ZW50cyA5ODMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyA5ODIgMCBSIF0gCi0+PiAKLWVuZG9iagotOTc2IDAgb2JqCi08PCAKLS9EIFsgOTc1IDAgUiAvWFlaIG51bGwgNjczIG51bGwgXSAKLT4+IAotZW5kb2JqCi05NzcgMCBvYmoKLTw8IAotL0QgWyA5NzUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi05NzggMCBvYmoKLTw8IAotL0QgWyA5NzUgMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk3OSAwIG9iagotPDwgCi0vRCBbIDk3NSAwIFIgL1hZWiBudWxsIDc3NyBudWxsIF0gCi0+PiAKLWVuZG9iagotOTgwIDAgb2JqCi08PCAKLS9EIFsgOTc1IDAgUiAvWFlaIG51bGwgNjU4IG51bGwgXSAKLT4+IAotZW5kb2JqCi05ODEgMCBvYmoKLTw8IAotL0QgWyA5NzUgMCBSIC9YWVogbnVsbCA0NTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk4MiAwIG9iagotPDwgCi0vUCA5NzUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA5NzIgMCBSIAotL04gMTAwMSAwIFIgCi0+PiAKLWVuZG9iagotOTgzIDAgb2JqCi08PCAvTGVuZ3RoIDI1NjYgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hLJyNkUy4pOkQKLSQsR15uVWQ4RFhRcmwxWCNEXFFvSnE6X1NeXlYnPSMuNEkzWnUuVVg3a0lZO1sucmN0MmstS0JpSj1eJzllYClyCi1BcTlzJ0QyJm1mN2pFQSsoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0VuVF5oIUJAcHVZUwotKVpjY3EnRmtJMVZISEFDQlQrLGUnb0h0alpWaHMyZk9bKV45dV8vUktLc1hcZidCZEEoQyRFOmlmJTsuSlsiM0sKLS9mUDghQU91Py06ZEdlVDdcWXBYQiIyZGsoc0ZyYSZYNVBUM1RIZFQxJ0Bbam5kbDk1T0FacE4hQzVMJy11UDZJCi0yXCM2ISFdcidaIXNDPzxsNic9QyNmQ29KJi5HPkxfRFtEYUdYKjhRLDNZc08uM1hTZ1ZMYmxQTVZvWiNNcSMsLwotXy5bM20icChCMVFpWEMwOSdlJyhcQDw0Xk80X19uJUJiNi8lWj5tLzVVJFVdVXBCP0JAL3JQLEtxWVFxKVstN2UKLT9Sclw0SkJGLjtLMFttRDUwaHFoKGNVbVIpV0U1QTtvZms3bXBdZ3BLYFcrSjMiSV4sV3FzZ2lnNV91S0RBMGlLCi1dUCtOYykob2kjZihRZkdNcyFKaTpXKWkoNUxBP0gxcipOImxHJ29KXEJ0NmFfZydmbCVIRywxVSd1J1VqWGU7SAotPlsmI2ExaG1tSS5UKnVpKjxsbHNIUVU8YShvV2hDZFI/NURkJCY1SCgoSzwma3BrMyNFcklrU2VMUkZWIjlJZ2YKLTJcKERvXl9oaCM5Wm82PTw/MFVYZyFAP1UzWnVuWGAyT3FbTGQybTcwMTQ3TlhYVDNXKzlqYCVCRzpmO0VgUDMkCi02USI2KCxAUyI7MlRtc1ZySFBCOiJeO1N1IUtealsjZ25xKFxWRD5hQ29LKDQoZ3QkYmovb1tGZ1FxTlNPQjk1MgotRFNlTkg2RS01WFcpYUZoW0ghZFMzZlQ0R3Foa1JaUzUwKG0xTSdTdUElO0lRSyZmUUtTQ2pSOT4xMGg1cTUqR2gKLUNNQnImOi1SV1doQTFpa1w4MyJpaUcubGUsMFNdaEtBZVY1PDBgSDxHaXMkNUs1VTY9JT9OX0s7TkNFUyI/WE9oCi0+bidxMlhpU3BGPG9dRFRMXiU6b1NpUS9rUiNOKFRPQ2RwNy5QPHUkKSlyPCRnYVdJWEJNZ2IoJEsxLWVkKTIwKwotMjtXRmRtNzYlXlUrQDQ7IU9fbCFVW2VOOVQxR1lAWUpVSkZjKVtaIVVJYFczXSVGZ1ZfXmBkWmxuYVhuMF4vcSkKLVM8S3MzNWIyczNlUWEpKChiak04ZVo6Z0o6Z2QtIiVIQTtHcDNqL1lhdTlgUUdodDYiVTdiS1Q9WW11WmFnRCdQCi03J2AtJGUmY2xPMEpdbHFTcT45Ii1xIT5IcyNxXmBXX2M6cTYqSjZiUC4nXW9SVkpaL1R0bklOS1hDXEQ1XEUrXgotalgxOjBfWzs+WWRYU0ohQS0ycWJfOiI0aCUjLFomLSlJLD9PNGpfNUIxMFBMSjNZJ0I9cyIjSDFiY0VuNWxUOzMKLURfVCMoRSZWNzUqLnAnVyVaVVxJTC8/Mi5SK05NalhVc11qUTdoSjFxTVRqQWFiLjo2ODAvRmppL0IkZDwhSUdFCi0lcSVhdT5SMFd1TDJiUnEka15sWi4iKVokMWVOVmIxOmhPJDw+bUNpKmpDTlo2O09YJis9JjRnJDUsRyU4VCkxIQotIWxMaEIoQUshVTVfKSJgb1MyK09FdW8zRlg7PUxVNWJOYU0oXzBGMF8rR1M4LnBVMWUvZ10jWzh0cjFXNmc4TksKLUVhZTMoWzsuLkJGSilsbk87XDtVOExeTHNXRk9CVSN0akdqLz5dKiQlWThNMEpkSERMalpMNUZBYUMrKSh0QVRKCi0sYW5sTEViJWs/XnBSZTBoMz1vbEU2VGg0OWtEOEg2S0l1WmNPJS08VllaNDtFaFpvOTheKCdaKjE5WUlfSUgwagotNSpfdE5IVjVpW0I/cy9FNiJPVFhUNXIzRmMpRi0iSztCOVQxP3MyNU0xRjNIWW1rbVsrYWxDOkU6O0VcNnMxIl4KLWlcNidlOktudUotI11HNy9obFhtT01hVigvOnA+MixMMys5IiovV11RJVI3cDpsUExIOTRxJCcoZk5iNW5RUXVYCi09ailnUVhqQjxSX1s2Vzo6T0crOjZrZypIVEk7TTFNLyssNjp0JExZKitlNEVbdFtDZmdSRCMiLlBkXi05RCtBVgotK2hQXlFib0FLLyc7UUpfVV8/YU5ddDtcQTkodVlMWj5YQV1tUkRebT5ONVEvWWM9USUxbSQtKTZWPWVFTGBIREwKLTVqZkxzXVdYVTNBVEFVTkFtP0xZI0hIc3UrUCxYbCphSFFoRCg5KWwrJU4sTDZcNmFkTF87V2VCTG9WU29qPidfCi1wJS9KRy5jTFBsQ0xeQSk1JE1kPic+bFVzQmg6YGcrbjIqSDxGKWU+OXVOSkFsSDxZUSEsLjBDIWg+bTddNVgjZQotYEBzYi5nWUFeVD90LzZFXGwkWzM+QiZfNU9KOltDcDleSGNuNUY1QSNdZ0phZiRJUkNlL14sZWE+ayRcZVpEazUKLSU7XVZXNkhHaSNTRSgyY0svOC1GTilfZFRDS01UI01iZD9RXWlfbF87QDRHODQwYi1iMkkmO1FMbk4qQ1kqTXM/Ci0tJ0stdUJzJVAnNy9jVDY0OFcsTz10RU5eaTdCYCc+JjdIRGFzcjFWL2QhPFlcXzEoPSJUXldbakQ0XFw4Oj5qagotJ0FrOU4/dSkmL1NsdUpwXGcvUkFdb2pzckFdakRQL0VPT1VKKUVCNS8qWTdeYGs6RSRvOzY0Kik2WXJ1Pi1ySG8KLWc6V1tnMXFNY0tEM1VWQydZOE9vPVhvbycoJz1zP0MoKk5HMWFRVSdkWz9iWVBpMmNnZ2dhUW5iPW9FKmVIKipwCi1wc2c3YE5XXXRdUTtbM1tZdGVMUVAwNUg6ZSsvOTlfZyFuLUVuTXE9ZUEpTyReMDQ0R0owPS1hJWtYdSZAJiE3UgotLj4hUCxKSkRqOiMkVlJLTClMI3I7WkpXWilpXSIsYygtYmpybUImW3FlSj9jWVQoSykxWVwsLENNaVE9XFhQcU0KLSM1YWEhVTdJbzNrT2RTYj5IUnBzbUI8X3BWWHBTUHEsP1xjZDQyV2ZrRnQnbjMpSSkhQVVuSXF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTk4NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTk4NSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTAwNCAwIFIgCi0vUmVzb3VyY2VzIDEwMDMgMCBSIAotL0NvbnRlbnRzIDEwMDIgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMDAxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTk4NiAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDc3MyBudWxsIF0gCi0+PiAKLWVuZG9iagotOTg3IDAgb2JqCi08PCAKLS9EIFsgOTg1IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotOTg4IDAgb2JqCi08PCAKLS9EIFsgOTg1IDAgUiAvWFlaIG51bGwgNzU4IG51bGwgXSAKLT4+IAotZW5kb2JqCi05ODkgMCBvYmoKLTw8IAotL0QgWyA5ODUgMCBSIC9YWVogbnVsbCA2ODUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk5MCAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDY1MyBudWxsIF0gCi0+PiAKLWVuZG9iagotOTkxIDAgb2JqCi08PCAKLS9EIFsgOTg1IDAgUiAvWFlaIG51bGwgNjIxIG51bGwgXSAKLT4+IAotZW5kb2JqCi05OTIgMCBvYmoKLTw8IAotL0QgWyA5ODUgMCBSIC9YWVogbnVsbCA1NjUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk5MyAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDUyMSBudWxsIF0gCi0+PiAKLWVuZG9iagotOTk0IDAgb2JqCi08PCAKLS9EIFsgOTg1IDAgUiAvWFlaIG51bGwgNDg5IG51bGwgXSAKLT4+IAotZW5kb2JqCi05OTUgMCBvYmoKLTw8IAotL0QgWyA5ODUgMCBSIC9YWVogbnVsbCA0NTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk5NiAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDQwMSBudWxsIF0gCi0+PiAKLWVuZG9iagotOTk3IDAgb2JqCi08PCAKLS9EIFsgOTg1IDAgUiAvWFlaIG51bGwgMzY5IG51bGwgXSAKLT4+IAotZW5kb2JqCi05OTggMCBvYmoKLTw8IAotL0QgWyA5ODUgMCBSIC9YWVogbnVsbCAzMzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTk5OSAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDMwNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAwMCAwIG9iagotPDwgCi0vRCBbIDk4NSAwIFIgL1hZWiBudWxsIDI3MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAwMSAwIG9iagotPDwgCi0vUCA5ODUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViA5ODIgMCBSIAotL04gMTAwOCAwIFIgCi0+PiAKLWVuZG9iagotMTAwMiAwIG9iagotPDwgL0xlbmd0aCAzMDUxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOl9XXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtFblReaCFCQHB1WVMKLSlaY2NxJ0ZrSSlaLXUiNlJacCRuJV1KNCdPa1lFJT5WSSg6YioqSWpUXjZUakxeXztwR2dzNU8xbjBNVyFzcmRTCi0wSjhbcSxJJ3RfMkRaJFRgU3BxKl51MCNrbEZdRmE6azdjMlgocGlgbXUwVV5gXDxGUGxoJ19bY1UxWnNOJT5YWgotblYnYjg7RCppWTtOZnQ+VG8nSj1UYTQ3PyYtZnRvUy9WW1Q9SyU5NC4+c101Iy1FMmAjLmdOQyUwU3NoWj82Oy8KLVleZXR0JG1USC4oNXRUZkg4N1VEWWlITFEraSRvNU4lQTBBMXFbPGo8XUNRS1JmNSNOSy5IalldUnVtQS4nXERuCi1abltPYiNoVFt1Jm1VblJYJGAhNDFybHAiSWlzXUYsVktTJmlHLm0wVTxEMW4oUFdOYkJeMVRkOV5rKHJfL01YYQotJUhFTzgxNjMlVW1QOyNhXVkrRU85JlM7UzY4J1Y/LU9mJTpLYC1uajFeNGhQNidWKlEydDVmRCkkWVk1LUY+Nz8KLUNSdUEzOFlhKiJLZ0wkYS5MSHEwaFFcTWYtdUBRQS9tP10nOmooUycpP2czKD1QKGViXEFDQSlFJUNsYUtgYGFACi03Uys0S2E+WyxiSjdjRnVZcSMnKExEMSlvWytFMz9sOGZDa1wzTixNNmBkdCNdVDFBKDJbamJzIVlBNlEiWyxbXgotRmAhLWAzIzUsV0FWViwmVXFNSGo+OCRvPTlNIUdqQEosZ2YoQyVeLzU/dXBOXT51bTc8b183VU4rNDlvblZmJ0QKLVhSWTNOUi02T20sPGJkTWEuW1l0ajEmISZNTSp1PFlcWTE6T11sS0NOVDReLEs+Nl4iXDJbbmEuLU5Kc2ohKTQ0Ci1fZyU9YFBHMW5pUFNkUEM2cmIhVkpXNlBsTU0iPTBtPlphK2hFMG8zY0Y5c24oQmhCMk5qI2k4RVdjSVhvO1VuPQotIkVgRzkyKDY8dGJNJj8pM200OmgqJGdOXStPVz4iQSQiNSMlR1ouTkZKODx0JCRiJlxWNVVPXTFNaUksJUssNEIKLUYyJnJCOWBpYUYhOGpvVmdYYHA9OCxfOl1TUExDNWpoR0oqYEYnb0psUVZqVzZpaS9zPG5Vb01VKUpjdT8pUzxMCi0pTzpqXyJZaF0uISxDamFbR1MlYTtObHE0YUQ9K3UrbFU5Syh0UFk/VWxQWlsvdW51NCVmIl06NiIvXz1jJTBDaAotY3NsWjZNVSM5UjZsNiJRaD9rME9EQFhWW25WMVdbXytYbF0wZVUqUS5USzRhJCE6ZUUlN0w0VCtAJHBhKWElX0wKLWpvO24uNFFJMF4yJGRUQGRPdCNvXVUjPUFGaWg8PEwvWiUjaTYwNTxNVCloSmtSX2ROQ2NIbnRtQW4iYyE1NCNcCi0iIlldOFlzPD1lIWEqJiorXEVkXShgNFRpTS1JVXElSlZzaDp1bCNOaSt1Y0BDKFozTyFzUCY6InUmP2owSmNnLgotJEJwc1FGOSZgZlxuSCYqPm5VSiE6Jig8dHB1TidZPk80PUgpQ3JhXlBsQDl1PyY/alsoJ2MxbydVb0w4TSIsJWsKLSI+bV1DOFIkYiFaM2goIVc2SDUhIXNobiNlaTVzSiFpKSEzUCNAMD8vc3A3WlEoYXU8RkpbdF1aJ0ZZcCZqa0dGCi1NJz11TWFcJW5yJmpnPkFhU2BIUmBrbUAhQis1KikxXjRkRGlCby5bQVNwLWI1K25oXU01Z2YiTlooY0gicFJwLAotT25gaUtjO3IjLCdILzo1QHImJmk+VWAmTF11KDFeOT8iVmBYLzhRaTs0NXMiVmVzMTxwYipWXioyU1YhUzxfREYKLWA8YXByNzE8Viw0JTpYZClJWmxzS3NDbk41LjNtKShMMnUzJmpgUWkrQWtWRUEwUktvSDskUylNXkkjIzE1aDxACi1FPGJZb2VmYFtiS0AnSCsuLUJQQiZlZlVgJD9CclhBPCo0NSoxbm9fTUVdNSZFY2wjMiksc0ZRU1hxN0kyLD4nKwotUlBSW3U5a2QwMCIsVD9fYVdiOkYnQ3FUXVozUWt1bnBbLTUmQWhgLWErV11KMW9AZCtsa3RbYUI8IXQ2YCgvUVEKLSwvZCdLRUFFX1VMLTY1IkNmSFRyMkdRTlQqPls1ITpMPEFMVCRJLk9AMmQqUVFyUDI6WWR0OGBDNlc3bmxpcz8pCi1HPmkjXlhEKlo1TUBNcz8hbCo4YDwsXTBBO2NDXmc/V2AiKE1VWzxqYVNSXDtfYDAyJUJHYFZaUTo1XU5gQSlyUgotYikpOmtkU1NBY3EtWHErSzpYIzFqZHRKKlpZcFVnUS4sL01CUVNXPCcoNDQnTDMrRGYkNTNuXSlZPj1kXVZRTCkKLS5raW9hS0lKLEUpZkdLKkAzbEk+Iz5pXGBsZTtyNDdAKF9lLThBKDZqaE0lWG5YXXNOTj42L1wkVXNNVmE5JHM8Ci1uUml0Y0MrNElnX1khLks4YTU4bzxpWGUrKGhPWj9aOi5LNDBmNzRWcTA6bCozLUBfbCNmWlIoXmRCPSs+XEYxSwotLU1VLyRUaFFBYi9HZnBlb1h1dEcqQnAldFhgVm45OyxDUXAlcSxMS3IpQDxkKUhCYUc+MD04UzE5QC8jNWxjKl8KLTNHXVYqNE4mNTxWJClKSERBa0Q/ZydTZWk3WzxdLSFLYk01RGVwRFVKJGJkSUAqOSlnPVVsIkpQZjxuMCMrSEQxCi1aZikqUlRaI2o+XHRjTzMnVilbcjxGVD8lTT9BO1dCQywyOlY6XThhbmRRSUxlc0A3WE47M2plMiRvJidoL0xHNwotYSEoJk5ccyU6RiI1RWNNRStqO1JfPWZNPDtcUS9GbF87cjdAK3U0L0MjblhDKkQiSSowbkFTU2BkWjVCamA0Km8KLUgzVzxWPjB0Z1xNK1ByTCMqQUtoKGQ2QFhhdUNiMi1OTihnUTVIXmplXi1pK0RaTUg2N0NhNlBbR1prMVhoZVBqCi1HN1ktSURbVlZaOUFbRiE6bj0vL1BhaWFyLzd0LUtBMl8mTTtAVUk4LXJKXyIhc1k8TVltRlRHaWlbYzMjNVttdAotajNwJEhdSDtnUj50RSpMTkMvM1tDUEZwJjxaVHFXSyNCWVlKRHMlUF1KSE8raEtlLWJrSCNFNE09dUdHM3FEQF0KLW41J19sKlR1QHJVUClJWChYTmUlJkU2Rzdcb0dlXWE0bmtxJT5pSVhFc103cnBeVjg6OV5qZ0phUnBSYSsmKGIvCi00S1wsQFYrNT1uTXMjRThITCM8QjskL1FaJT9YLzBgQkY2b3FDazpLO14wTDYkcSQkVzA2cVNzZDtXKWFhM0JyQgotUTZrWzRrN0RdIiIkc0s5MlFKQUpSbS9USGMzLSdLazM2JWcoX1Q4c1cmTz9CLipWaWk6JFtvS1tJXjlWIyw7aT0KLWsudThKMk0/JlwoR0tGYXI0aztkMD9iPUteTkwlYSZJSitvY2w7bTlBZHFrJ2E4JGoxa14zbzFuQSwpXSM2cXMtCi1IaCVqRE5Iciwzcm0wMkREZV9jQFRCNW1AMy5tTjsnREhzKytUOjMkbG41VyRyITYqbHJncT9TSUYkNDcmJWpXbAotPmxTOVExLj9CYm4sRS9uK3NTNDxBQyhUKiJCLDxoPVNDKVYhXGJOOTA/IWdAJjFtO3JydCUoQEUlXzdcSE5VSmMKLSEmLW5HLEJQa3IhV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTAwMyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDA0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgOTg1IDAgUiAxMDA1IDAgUiAxMDExIDAgUiAxMDI2IDAgUiAxMDM3IDAgUiAxMDQ3IDAgUiAxMDU4IDAgUiAxMDczIDAgUiAKLTEwODIgMCBSIDEwODkgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDIxOCAwIFIgCi0+PiAKLWVuZG9iagotMTAwNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTAwNCAwIFIgCi0vUmVzb3VyY2VzIDEwMTAgMCBSIAotL0NvbnRlbnRzIDEwMDkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMDA4IDAgUiBdIAotPj4gCi1lbmRvYmoKLTEwMDYgMCBvYmoKLTw8IAotL0QgWyAxMDA1IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAwNyAwIG9iagotPDwgCi0vRCBbIDEwMDUgMCBSIC9YWVogbnVsbCA4NDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMDggMCBvYmoKLTw8IAotL1AgMTAwNSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEwMDEgMCBSIAotL04gMTAyMyAwIFIgCi0+PiAKLWVuZG9iagotMTAwOSAwIG9iagotPDwgL0xlbmd0aCAyOTY0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOl9bXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtFblReaCFCQHB1WVMKLSlaY2NxJ0ZcSVhMcig7aTskT09ML2ZQOCFBT3U9Kz5WSShVVGk0OzFUVzJuKDpYNFw5XzUsayEmL2wjUyIuP2dVCi1BSW9nKV8/NkwpYjw2RF5yTUswM1k3YDkkTldnSl1sK2txLk4yJVdNMFRDIXE1VlRZbDhFYClETyRNVmAkbVFWUQotMWxRQTVZUmg0MS8vRmlcIjA4WXU1N2MrRSdUOF1ZUGFAKilfdCZePURLJnUmIyosJmhsQWZjOl0nbTxjPVJKIVMKLSxHNzwmLVVUJDYiJVFpTyJVLCMyKSEpPURFVTQsOyVlLCMsWFVbVnNibiEtNyE4SkE2Ok4vUVglJjphZzFDVUFjCi1hPkFpIzQ8UVBZQSIxQ3VgL3VfbC5LckI/VCNYO3FYNG4iUFk7I1BmXnU1RWpya2pvL2goNWNhND4vWSxQNDdcOgotWChwcCMxVyokT1ZaNEZlaTBsVUhEcC5oYy4jdXMvIy9GLkNfRF0wVEksYm1jTTNGa1A0XG9XM1h0LnBuXEk6VicKLTBdKkMrPCkhJDNhK0pwK15JbSM2NVZnMi1BJSw0SjwyPW4iNCtmTlkxbFMsTjxodV4xLCtSZyMva1lDSC9uKGVlCi1ddDBySjtBZlo+NyY7QSpkX21NPzxjalRBIUQnWTE1PFs/XV1mYzlsbixVUkdcXFpAJSo4QzVvRS5iPyY1YGtOXwotMWpaUTUiO1ooR0lfW1VFaGEjUC9TSTlYNzk2cHBeWEQySmdpMWBiayVjVzZMYXU9PThfKkNZSztCcF8lJ051IkEKLT0+WXVzRlo7LjdKUEo9Wy4+b2RoTjxWK3BkXSxAJlNMW3ElPGJVZGlOUkA3W01ub2BDYlY1J1BBOi1ISSxAS2dGCi01WnUqTEhUYCExRlhsIydKRXFQTUVAYWs/YD9CPitVXWdqTmhPXlFkTkA/UEomPWRhIWgxSFsyQzRtSWxLLVRQOQotakkobmlUZ2JmVjgoUEBXbEdHXnRjTUteUilNbDRMXVI1XFw0NEombTNRWFdfS15WIzVvbkdKQW4/LitSRDk+TFkKLUQnPmphSmYoNXVQOG9RMy8lZXVGM2haUC5vKnImdFciYiJHOiNcLGRuQyw+UGc/YytPYzhpcy01Uil1PCtEciNMCi0hUDwiMkAiR09zajRrKmUxYEE4NS5QOiVyNTpTYzVJMS5MTWllRi86PzEzMG0nNDovKF5BbWooKyFDa0o1aHRENwotTFktdT5DXGhwNmVEWiNdL0hGXVgjQ0pzLmcoQ2gxNj0/O0YyaFZJNFozR25KKGE2XydKQjVoc0dTZ1xyTThzMTwKLUZMV09RQlQsOU8wYS5RaSdgbkFlYCk4PFI2QWMobFoqYihSYlJjNi1qaDgvP0xOTT1uWC9eci9GPidTI2BtIUY+Ci1NJSZAJV9aVVAzR1FDY0ElVkN1dEpjUExLZD5OIiNqXEApLydGdHFwSjMsQEpaa1BwJGpHJyxdQ2xMaygzTiNcTQotJF90WFVObVEyNCpvUCRWaiNgaWtjM1kiK2tfMSg3WEVbcHJkUGFWMlRPTF1NO0pHUUhRLG40ZypNU1osI0c/U2wKLVRxSys0PilQMXA2IzdBQWVwQUNaNnU3dWArclM5cEw9XGUmVTNLPj4rL1BWci0pRjpZTlQmO0ZKZEZATFYlZFUtCi1vITFGXyxXKzYhJyMwRmJjKWYhIkxGKCpFU3NbdF1YXCZUV2JpUlciUXViU3BdSGVEdF9sTSFgZGRDWDopKFJOKQotYl9fQjpFXXNVZF4wbWlFK0luIyhfK19ELy9hI05FU1BoKF5ZLFJJRiE8Pm4lRWhLcDMobFttWCs9SWJ0PDhUKUsKLT06QmJyMVBFW21xUWNoVG1ZZEdkSF0qN2kqOW5gLEBzUFtGVEpkQEgtNCJQSVlWNjpmYCM4YDBuTy1NZzIuYzUuCi1SQm9gOGMsNFRjTGtYP1ZdVFxYYmwnaTI2WysvaUFhYGdMVFRiOT9vU1Y1Sy5AbzQsSkFyWisjLyhCMDQ2cVZ0ZQotTSUkcV4ublpMMGlmXnBCbS8hTkYwUUxzLTlocWI1ZFw+O0JYOTJkajFMKC8ta15qLkc3JVg/dC9vUVIxO1VCNiMKLSFMYmAlNnU5TTZXYF9fYWBJaz05byIsIVZTLishPVxkaTs/YFJlO11EQCNvXVkqSlchPTddXipNX0hya1snJUYjCi1MV3NHNEFNKDFcNmpBQlZsPVQ3LDc1ZTIwYkxgM0ZhPVFHTVl1Rjk5Jj06YWNYTjMwK0pFR2BVNk9ALjs0aVJcXAotN186JStGcGtHPmJyLkola3VmTWNFOiw8bl0oXFBOPmdiQTlERktGLTJfQlZjcWljMVVPXGlIT1xCUCpsbTtXSj0KLWsuITY9TipWcSFHOlRyRjBUMThRaGhqSyZZImRxQDJycU5PZ1QsTUFRMio8XF9SVmpHLVg8ZXEiTV0uciNbY2pyCi03XiouTlxSZTZqaSowPzxFKHFAaEdWbjVfYkNwKDlwJWxKTiw3OW9WNCwhI25aKiRYOSk6R2hdQ1tNWmZJSzUhPQotXkwxX3FZIlNKOGAqNC40OVEsa1xlaVVtTVdzJTZuamM2VUMyTUhEPSxpcCJvTz1YRiFYJyJzQiZeKG9SMT9NODwKLVIkUT9yUk89RlcySC1vR15FbUk/Pz5jRmgiL01fVlBJKjo8JTNGMzQzTCVbaGUybDcsTionWVBvdElySllbQHEpCi1AMjE2cEVvPlJKJiMpXmZCLjghNmQyT0pTPyptVGNcTjJmPz0oI2k2RlQsYk5cM0U+cGghb0xZQVgoWjQ2S2khPQotNj0nXHFRZGtqYjJzUjAxV08yS0JhZ1NUPE9Sa0dEVy5CNkEzaG1adDdEbCszYzxkO0NGI2VnViQjI3JJLV9fLikKLUtKTTNVJUdUWiEkdW1rWS0hNl1MLWNKMCs8JD9xNVZEQWxgYCkpRT84aCoyQVk6XGlVVj9KXSMwTjYhUVxJMlk+Ci1OPiohYDdkL2ReR048cTRGMFpfKm5wWic0XVRbKGRTbFM7VVxMKG5bUzxNRSpAJDdLXF1YUzgqJSoxVF4jJWhIYAotMTQ3KS5UcWpiKTplRFQsaSo8MD41U2NxWlttK1AyZ3UqOElHMDoyJiZFVFhCTGJuME85cFdFMEFjTzdAXm8qLVQKLUJyJCs8RFxTaGxuWk1IWXAhVyJUIWhiN2ZIVV1uLGJYdDdOS1UpTFQmPT8iLmE/LXUtNnVJV142XW1IWiVXUzp1Ci05MC1uVU40MkRhOCZKRlY0azdcaFRCV29DTW00ZGY6WERZPGVvcV5pVSFjYFomNVdaRC5yMDpgJmxzIlZqaTtXRwotK2pgTkFQJmJHO2IuLlxtImVHV0ErZy5AVDNsUSVcQThMO2FRLWZKaTopKF5XaSMqNyJVTDwmMClTZ2ZvWmYkPSkKLWxOKWAwPlltWF5nKWlybm9LVGImVCEtVWhsVkhrZGZvPmJqVlVQSD1KYVRjaV1KRGcqP1w5Sj43JVgtWnEwMkdmCi1HPF9BWC9SdW9yPyxqRiYvKTRDbnEvcSdgYT4wJmpqRSdQPlxwaS1zTV8zWEdFWFJeL20zIjY5Six+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEwMTAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEwMTEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEwMDQgMCBSIAotL1Jlc291cmNlcyAxMDI1IDAgUiAKLS9Db250ZW50cyAxMDI0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTAyMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMDEyIDAgb2JqCi08PCAKLS9EIFsgMTAxMSAwIFIgL1hZWiBudWxsIDg1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAxMyAwIG9iagotPDwgCi0vRCBbIDEwMTEgMCBSIC9YWVogbnVsbCA0MDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMTQgMCBvYmoKLTw8IAotL0QgWyAxMDExIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAxNSAwIG9iagotPDwgCi0vRCBbIDEwMTEgMCBSIC9YWVogbnVsbCA3OTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMTYgMCBvYmoKLTw8IAotL0QgWyAxMDExIDAgUiAvWFlaIG51bGwgNjk1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDE3IDAgb2JqCi08PCAKLS9EIFsgMTAxMSAwIFIgL1hZWiBudWxsIDYzNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAxOCAwIG9iagotPDwgCi0vRCBbIDEwMTEgMCBSIC9YWVogbnVsbCA2MTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMTkgMCBvYmoKLTw8IAotL0QgWyAxMDExIDAgUiAvWFlaIG51bGwgNTk1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDIwIDAgb2JqCi08PCAKLS9EIFsgMTAxMSAwIFIgL1hZWiBudWxsIDU2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAyMSAwIG9iagotPDwgCi0vRCBbIDEwMTEgMCBSIC9YWVogbnVsbCA1MzEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMjIgMCBvYmoKLTw8IAotL0QgWyAxMDExIDAgUiAvWFlaIG51bGwgMzg5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDIzIDAgb2JqCi08PCAKLS9QIDEwMTEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMDA4IDAgUiAKLS9OIDEwMzQgMCBSIAotPj4gCi1lbmRvYmoKLTEwMjQgMCBvYmoKLTw8IC9MZW5ndGggMjYzMSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEsnI2RTLik6RAotJCxHXm5VZDhEWFFybDFYI0RcUW9KcTpfX15eVic9Iy40STNadS5VWDdrSVk7Wy5yY3Qyay1LQmlKPV4nOWVgKXIKLUFxOXMnRDImbWY3akVBKygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RW5UXmghQkBwdVlTCi0pWmNjcSdGa0kxVkhIQUcobFRaNidvRURMLHRSUUI6ZmU/aWBXQ2RUViEpTU8pOGxiUGMjMSo4MHE3QllQM0dmLgotOFs2YFFZYiE4Xyc/RCsmL244PXQwOjM0MydiKEBTInBGOy0wRlNXM1UnKFJjbDhUN1VAKyRmaE5uRTIiJG5nO0cKLVhwdEk0Z2JRXiY9UXAnTF9nJ2ZsJUlGOUIxQ1VBZl9EYV4+RjA8PFRDKjtYblx0XXJWJjNqWmQ7VzM8My1zWj0qCi1iIkk4ai5FSmpMTWBxMEJRQipCPSRGSTpEOighTmIuU2soNU1bJSJqP2wpImZaOTlfSzg1YS4hS2QiWDskK29bRwotcGJcZ1cuLDZQcSQxJlNzIjlUNHIwVDlLazxdZSc0JzxLXzFEU2ddWyVbITZjJUQtUTI1b1c8LVlqKywtbWA3WFQKLWM+Wip0cmtPLUQ6Y2JmSmJdcmBRaUcubEBVPEQ+cCkkWzVGQilEZjYocTpJNU0tLl8uJHRFQ0QoUUlJLVlqRGo2Ci1rZV0lYDBONUo2IlguaE0sYFwpSDVja01uK04/R09LP0o5ak44azJzIzZZQVpmWWtlZ2AsYVhtcCEnP2ZOUjJBJAotM1hkWE5gWGlYKDhDTGsoUEkiNikkb0hUVC5Lckl1XExDTUdGMUE+PVE0VC9pTjNFLnEpaHJvMiU5UWU4N0ZjUWUKLV9uQ0QyWVZwL1sxNjMpO01gOzMyMiZnMDwiKzoxTUtFSEpEOGpAc0xoRSZIVjQ7J2NybXIyLTQjcVFZRk4yUDltCi1rYDpHQzpoX1JfIjI2cDdLYGBJW19kIXQjJlNeJlJYci5aWChGVlM1QUonWkkxPkszIWk8YGtPclopTydaVTI3KgotMGY0Okw2R0psQV1hRiMocW9cTm1sVWtoKTQ8bllUMT0uaCVrcltxQz5ddW1fZFctOU04aHFTQSlNWkVcTz1ANHQKLSpTNylxRmFXUicrUFpPYXA6XkFAQkdudShXXUhUYDpaT1NKYCY1MThgOjgoUVEsYjFjamRkN2wnWj1YPkBsJmNfCi1aVTBgPjsjaToxK0AkciFvXVRpPFtcdTdcazZoKSszXWMlVElgXj5QOUUwJmgwXE4xSWRwN0FqKyxBLHBqVWw+PAotWVk9PDVdJCtjInJmMT0/RihPO3RALV1tRUhYP1JsK2cqKWJqLmFiPGRjUTViVE1jYidISE5sKyZFbi4oTWghUSoKLVYmV3JDUiFFTz5vZDdFWS1CcWM3TjxXZUhiYl8wJmM7YjNZIlReYW9aNSxxKV9lPHNuQkNuKyEnKlJXWD45W2hsCi1TTmA0QGk7JiJNRnNxNmEzSlIlV0loNEBAQSc1VmZUYS9eVz9yRmlJTzAqLlwxXms0UENAWTwnSGxPVUtXMFtPWQotcDRIIWxyV1lYOSk0Q1VQSSomP0tXb2lMY2QodDxEV1hRV2MjRW8zNSFkdWFnJUFINV9TSVNjZUo2OjFMKWxKRlwKLUpxSWRnN1cwR25MR0RvWyk3JnAuSkRyIi1MZ0pGT00qakxZS0pHdSw8WkBFIkUvLzM3LDtKPS0qV2xkaj8pQUpRCi1RaCN0NVQsWENqJG9wZzExaTBVUVdsa21XRCRWUjgnLG1XJG1uYlsrLGVpRXBjTi06Q0hmMEhUSy5xLFI/LyhHRgotLWAiJjwiLGAvZmtWNkooajs5amkvZHFjVTNzcFlaJ008KDtZc08iakc5UT1eWmFEbidTYnU1MFZDZiRvI106Ri4KLT9zTyJLXXBsSjhSZks2bEEuRDJgM0pGaUAzaT9IWyJVWVtnIyJkRCckXTAhWic4Mz9LOyM8SyMkXiQiXjVgJWM+Ci0qIkFSQVJrNW8paVxpUW46NlMjIklxaTRJKGhUSDZnPkhVXU8iTzlqJ2NcNzw4OF9KaFhrbDgkJFNePy1gW1huMAotVzVSQVcxUCdAPVJUISRDWWlFKHU2XCdHbDAnNWdLUUtBUi05OTslIzNQWjRTbEIuYVVZNkxaOiRXL1pvI1RRKkAKLUVELltTXWliLmNWQkpcb1VlNkIuMFBDa1xZVE8uI2kjM0UiVWxrYSgyM2huK2FBcmlrIlRjK2g4ZTJBMUpjTW0+Ci02JypMN1pOMWBCNmE3KDw0NkI7QVY9aCNBP1g4U28wIT9ORyg9IiUhI289XylVZDxHP1wqRUtpTU5yUHBGbyZtVQotLVZsRTBfX2s6SkJnZVYqKHBUO01YRiYoPTEwRUlvOUhTdE5aPVZWMT1iRj4hP1xQLFVBUGhPbSY1aXMnVyRqcCkKLWQtQFJxJDVkUz9OZFA4dEVpcj9RMCorRkU+JkxTTmBcXllqaWp0MWgvckEzdGFIXSNnIlUyOVssV1ZxMXBIaWA1Ci1sRjBmR2IyL2RePHQ8Qz9cLUslbT1yVzgpJHE5dF1FZ2I8RFxJV0lTO04zYj46P285J1lqN0JlNF9kUzhFazNkNwotL0FWTVFTK14hLF44MSwiLmcoNzdHI0kyVWdEXHJsRD5eXD9KQCs1MXJYTmBPZFlPIWJrRyJcT1Y1M0NxRykoTCUKLUxSXlknWGhCaDJcKCYrRUUtU0tOcCVwO0xwRDBjYEBcPDI9TC5vcXE5L0tZMCg/KEgpJVciXDE5QC5ML2N1KG9UCi0kT1wyNyEuNSVTQzcmLDVDNFk2OVwvYnVeYkZIV0QnZz1iSFIxUUFSRkJOXkZqbiovXU9CVE0kRFomajcwUDRiIwotKGMjWFxkbUZzZG51PU49ZkxHdDc3SGk7TVMsbWYkXXUyPFU7NDk6bzE4TFNoI0QmYy4nPUBpVjBRKEtHWjBqT2cKLUM2KU4uY0EoWT40YmkxdCs1JltkJHJHTEktbCsnSG9oaEJCYjgkc2gwUGAwQCtFKDxMWzJ0YEY/PXNuXSM7Y1E/Ci0oX040Xz4iSFVEIzNPNkhELy5FJy8oPjg0TD84M3RYaTxnaCg+TGxyUiJPIm1acERzZTtnOSVfWzApdVdSSy42cgotMkkiWExjNC9hQTlIaiZiVihDPSYiKEdKL0lkI1I/My9sRkpZUlVAU3E7QjRXTl5YU0hEUmE8W2dBb2ldbiNkNysKLVxFPTdSXVA9aWw0cSM0JVkyZU9eTywlVFtvPWQzUyouaGU7UTEzVzZcOVdpQ2o4QGlrKW87WH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTAyNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDI2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMDA0IDAgUiAKLS9SZXNvdXJjZXMgMTAzNiAwIFIgCi0vQ29udGVudHMgMTAzNSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEwMzQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTAyNyAwIG9iagotPDwgCi0vRCBbIDEwMjYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDI4IDAgb2JqCi08PCAKLS9EIFsgMTAyNiAwIFIgL1hZWiBudWxsIDc3OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAyOSAwIG9iagotPDwgCi0vRCBbIDEwMjYgMCBSIC9YWVogbnVsbCA1MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMzAgMCBvYmoKLTw8IAotL0QgWyAxMDI2IDAgUiAvWFlaIG51bGwgMzQ0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDMxIDAgb2JqCi08PCAKLS9EIFsgMTAyNiAwIFIgL1hZWiBudWxsIDM4MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTAzMiAwIG9iagotPDwgCi0vRCBbIDEwMjYgMCBSIC9YWVogbnVsbCA3NDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMzMgMCBvYmoKLTw8IAotL0QgWyAxMDI2IDAgUiAvWFlaIG51bGwgNDgyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDM0IDAgb2JqCi08PCAKLS9QIDEwMjYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMDIzIDAgUiAKLS9OIDEwNDQgMCBSIAotPj4gCi1lbmRvYmoKLTEwMzUgMCBvYmoKLTw8IC9MZW5ndGggMjY5NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEsnI2RTLik6RAotJCxHXm5VZDhEWFFybDFYI0RcUW9KcTpfY15eVic9Iy40STNadS5VWDdrSVk7Wy5yY3Qyay1LQmlKPV4nOWVgKXIKLUFxOXMnRDImbWY3akVBKygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RW5UXmghQkBwdVlTCi0pWmNjcSdGa0kpWi11IjZSWnAkbiVdSjQnT2tZRSU+VkkoOmIqKkUnKjZOL2soZiNnTEVMXTo8M0VLdXBuSCMkNgotRVkmb3EtVVU/LWhbXkxaIyUnRV1lQjMiaVJuYTEqLihgTSMiOU4pQzE5bU5sNVYnKWFGMT0kQV8/ZjVsTyErTVcKLVhjLGpDXiwxaCU/cFAtUSItQ1laTi5HYUcyQGdzT2hDOFwpWmdkb1hPNzVGODVZZipbKThPVGFqVFJgTUNgWTpJCi0wVVVUJV1gWW8lJTc/Nkw1bk9SUixZWHU0L2RmYDxUZFlkMEtWRy4/RChDPWdccz1mamI9WjcsInAoMGVSQVFeTwotY25fTiVyIkI3TjthQkohTjpURDkyW2s9MGBwSCRQQSRjZHNhakEqZmM5bFItM1dvT2oiT0s8NiE6aSgvWlZdSUUKLSVZSyFrVCRlOTM1VzpuXStOJDYnbGAwRmtMQnQzWlsmL0gtOyVPLmdPQWVzWic2JDJoLEBSaCEyQFA1LiRsIkcpCi1cNTQ8RUBna0chTEQ9TGIzZlNjZSU3U1tNJ0peNGZFL1piMU4pL0B0ODslKSRsQ1VCckAqMT0+IjBmWCM+M24qTQotNjg8VDtpbWVPJDBZL18/OFUrRmtMMS5FYVdgNmouO0IxRVc1aSozMCFDXj90TnUiLDAxbGNCK21mRW8+QVNGX3IKLVVQJjtXTnFBRnNYSy0rJDxwaj9sLSIyJlA8WjtlYyRuNUpobnI8LltoXVkoZEdaL2JAWG8rXUQzMEtKYyhiLV0tCi1FcDRnYkNyIzgzJClnTFJYJU09Li9kMmpaSkYzZXI4M3E6MCFuXyomJF9bUm9cJS1GNT5rdWxCPVFWWTZpdSRdOgota15hbD9gNkw3cDgzLChWOnMnUGZxRkdlPVh1LGpUcUNjOEJxXC1wbDdYcDsvPXNmMyNCYzokPmRVJCs7Vl4/L14KLVFLYk1lSzZGcjQiV0o1dTFAM2FcbGE2bl9RSksmajQuYGFIbWRhaSpWRmc/OVYnbU9EWVxOKWgrZ2VeMmtIYi8rCi1mP0JTYC9RYjJgcHVTO2NtPSdWRE5YXGxlM2lBYCFWYidkTUNqcy0lSy9HJFoiWj9ZTzBvaGQ7SlJOKCZWTnMsTgotLklDc1NiajYoLD9pIUcyWz9dUjdGWyZeOlpOK1YlPDF1W2Bjam43aiFWNmE4PEVWZCJsdCNzJFIyQy1CQjY5RT8KLVViaXQ9T0M8WjE3ODpGLWBndDxkTEppImQmMF5hMm1YW25mIyhXQkwiSTA4LyslIz9gIkZbPidPcSpsXDVcV0dRCi1TWyMtZk5odDVER210KUhcJEcwZjtqQColLlNcSGoyITFKQDgyTjcrVFs5Vj4jPkFJUzFZSSQiS1ZZK0RLUFdyYQotMyZUZm5bRFVUKCYvZmpfTHA3dEgwQjNdPGNtIVRAY1dpNz5rZVJYWitrZiJPOy1vRWliW09dVS5vM0UpR0dARTwKLSU3Lj1APCI9PVMhN2FkM2coTSlLOSpLdGMmQjdNK15nb15IK2Q3WF5sRGdOKC1uckpvNigjYW9gTDl1IjZaTm5gCi1USnFoTj1YLDcnaksnQGlhRD11c0pdLmEjYmMkalM3KlxyZ2RRMm9rKFAyWD4tR3VLdTZJSy90U24kLipiWHJFcwota3FNbGxWYHJ0Nmoqaj1UISZsYSNRT01TXTVtYkE9X19qcEVlZG5dLUNNZTN0W01IayZSal1oKG1BPDdyLGpIPTcKLUs6PkdsYE4pXmZsS0NrTDYnVlIxZGgqayg3PWdzVUZmckJGKkNTLCYrcDpaNEFgK1BcMzRNW3BPQklKUiNlV1M9Ci0vSlRFTzBFcWkjcG8lJDMqYSJBUiJWMkxXOFsoSk0iIlZCJCRNbidxbyFmXFdxTzwlbG0wTSFZWSRdQlsyMS42LwotaWtQXksqNlFWW05lbCZvUmVFailjYDkpZWk1Um1ySkFyTC5wYE5lZG06XCgkIXU9UCJHVWJPOWFOZWE1NkthazsKLTUtWkY6MXBbODlmWVxyLzg6OnFGaTglJzgmOHVqPE5hU1gnUHBUMDsqMkYzcFElcTQwQCRaPV1JXUtJP0skXElRCi1KWyouIWpDcm0nZE0sQ1Y1WVlAOURSM0IkUD9VRHIvIzAublpyLSUhU0lhYyMkcWswRzBrOlwpTyQiLkdCQyxhbQotPSUhWSEmXS8tKzhsZC9wU29aQG5kJEApTj4iYEcpQjReSihaSmdtJy1IXTtYZTAxWUZYRmNgZWciUEg9b1o6ZFEKLS9gIlklUF1uX2gjbipHRWtxc29sRVRURjIyKmVCJzJZPENDXypsIjtuPiRUdGROQiVFOmBwIW5KLmJqdGNsLDJQCi0ucXBxS0BuaUgyZDEjXjEickVyWT9HInIhSlc5VEExSEVAO0xIQFNVPkVZS2Q6YkBFa1ZBYm5fam9uSjViO1EicAotSiY+cVMiXXJKczo4M2s0MDxGVlsiXC5pUVJHYTlCQUcmUTRVckxicXAyXmw9LFItTm0wdSI6JzlaKF8qJTNXKyEKLV5PJSVxLFNYWGBQX1BZTTVpcyticV4hUC9SYWFjaSorOGxcSClkNj4oXXFqYUUwNmVPTHNZTHJKZFMrXU5jNmtKCi0zSDFHR0o3RmtmL1IhJiY+MTsyZ2ImYCxyQlJRamxLJVA+R15UYkwvYWNVMFoiImBiKzFQUmEzZFJqa3BKNmVrYgotIihjP1dqSlcvYzhHX0IvRyNbIk5ySXUxI0FzVVQqZGEodTpUYEBCPjlGMzQ5V05zKDhHJClBQ0tuWT9gVTQ7OmQKLUVqIlBvZjpwYyZvPV1IMS1CUjZvUEhsSkJUI1wtaUJ1IjtZbHRkVUY0WzA6UUhoWGw/S19xQzI4QlM+JlZtVEYmCi1mJG09bDcjTj1wM1VIOCJnbWA5MSlZcl9SK0wvYDsiJWRUZGZKSyYiLCY+dGkzTUc2am0/bVs+ZEVrIVRsNFUkTQotLEMkbVM6WUkkNzFtNUhTMSM3PVc9LENqW1I5SjZYYSgmaWtuL0VLUS51JVQ5MyomMHBGbFlVLU9tSVcqQ0s0SmYKLSc4YkAoLXUpOSdOTCRUUDROMCI4WitCO089UEU/PkQ5bjJIZ0pwbkcyIiR0I2JsZmRHIixzXl4zIXBJKUZpaVhiCi1cVT47TUFvOGNXciM1X2hlNjtbXGVFUzMkU1hTJCJjZlc/TEgsNzlUTEdKazk6WyssZUEtO34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTAzNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDM3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMDA0IDAgUiAKLS9SZXNvdXJjZXMgMTA0NiAwIFIgCi0vQ29udGVudHMgMTA0NSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEwNDQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTAzOCAwIG9iagotPDwgCi0vRCBbIDEwMzcgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwMzkgMCBvYmoKLTw8IAotL0QgWyAxMDM3IDAgUiAvWFlaIG51bGwgMzEwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDQwIDAgb2JqCi08PCAKLS9EIFsgMTAzNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNDEgMCBvYmoKLTw8IAotL0QgWyAxMDM3IDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDQyIDAgb2JqCi08PCAKLS9EIFsgMTAzNyAwIFIgL1hZWiBudWxsIDI5NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA0MyAwIG9iagotPDwgCi0vRCBbIDEwMzcgMCBSIC9YWVogbnVsbCAyOTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNDQgMCBvYmoKLTw8IAotL1AgMTAzNyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEwMzQgMCBSIAotL04gMTA1NSAwIFIgCi0+PiAKLWVuZG9iagotMTA0NSAwIG9iagotPDwgL0xlbmd0aCAyMTc1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSycjZFMuKTpECi0kLEdeblVkOERYUXJsMVgjRFxRb0pxOl9nXl5WJz0jLjRJM1p1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtFblReaCFCQHB1WVMKLSlaY2NxJ0ZrSTFWSEhBRyhsVFo2J29FREwsdFJRQjpmSi1oInAwXCxEUyVEUVJ1RHEkVHFLT05YJW5NK1A3YnROCi1HbmNUO0tXN2IsUmdrJkA3UExFIWc9ZS51JUI0YHJwcGFgLytcQUghLnRvLlZCRzpxRDhFX21pX2BQQm5YLD9MSgotbG9VOyJgXGlmIyE1cHElailFLiROYVpsbCw3V1tzXDI0WEQ9UUMxK0A2aHNoTmJmKDNYcHJiIWBdJm1QQ0JGZ0IKLTpsODouXS5oXkozIjpLR2BcTkw2OUBmR2BYMkJbTTA0Qko9KiFWSzEpV3NEPVRcXjRnMCo2KmAlP0RhWDNDPiJNCi0yQioqY3FtLFYuRUczTio4SVxUJDJuUSdZNW9nQWRYTzxBb241LklqTmhgNzQxXmtWOSkkYGYjITpMUUVQMk87RQotOmRdPjQzXiIhUGZJQCVyUFFWWzFZMHFcVSVsPzcyVSgyZV1kUGFLQTpmODlmNXNYOUBcb2YiJG1fcF8ybzA8RWwKLTBQMjdPb0ZVSG9OZyFJYTFYLidHRER0UCFBT1QzXVkuLV9XTmlaS3FRLkNkb0ZYOTIsLXQ7cCVYb2pSPitqLF5KCi1LPjJ0UlVfajwhVzJRKTshSS5vXiUrUkdSKkVoRXFhVSFVPDkmPj9GVGw9Um1XYkpUaiYtdDRLal5UdSY4RFItOQotVVUoUmlOM282QzJpUFFVaSVuLytqL2ZGa0NUQ3JlaCtMakNBbiw8LjpjXSJwP3MqW0FKUD4vayNwTz5lLClHNSwKLVVfIiZQSSZoX1JucSxGL0JGQi5HXSEhIj4hWWMwR0k1JSxORS5ZXWNBSm5OT1FPSylZYEY9WFRHY0RubkpoRCY2Ci1CVUFEbV1uSUApPyhrblcwI2s8YC5RQUJES2M0ZnMzLDA9JT1cKiw3R1g3XlNSZjstTWxyaW1wWlleV2tOTyFFJAotN2NDbWdcTl1EbkM3O1Q5WF9YQyFGMi41IT9PKjdrZyliT2FCYzl1LVxFJmEzbF1qMUw1OVgvPl0iPl9ZbFsmIXMKLVVpNzs7SidLSl9wPTchJDQqS1M2YyQiS0NfIW1oNmA4SVdATVBVJ0JMcDFQMEwyWSElTmkjQy1jWk4vcVVlbT8uCi07YVw6JTdiQ0YvXy5vYWxhdTpWZC1wVFBKaGBWMz5OMEBwcChDWnAyLlFAbi0iM0cjaCxEP1ctNj8kaVFsRSsqUwotQUoxTEYzW24wR206KiFCXSFgNVw6J1Y3N1skKnBgU1BfLmU6SW9sTihcJC5AJkJlKCkucDA5X1Y3OGwublBXVHMKLS1rSEo3REBOMjNrIS4lYlFuVGlDUTpeUlg4QVVSPVouRDIuKGA1dDcwXTRyWVVsTjlUOUtsdFVkKFB0LThxUyFQCi1GWFcwdUheMy5QI1FbT2wjKFhRQzAlSmVsIiplNjlDIjgxZCc2OUokNDpsYCZeJlhUJWM/WSRULVRnYV1CKldMbAotKlI7ZlpKRTZDTi0kTW8vUyJkJl4vYGoiRGVWWGxDQSQscUVfOS5EP1lSPGFZMzBJLWAmLU9dRCoiXjhTJUxOQ3EKLVEuPWU0T2kxNCskZ0M7TShCVkJdRkVFVHI6LjMwSz4zanQ9PyczTkYpNnNQdC0pQUN1UEIja1E4YmtbbWY8aDwpCi0kaD5VTChpMEhaT3JtTG86XzUtcmxBOkJDLjU8ISIiZGZxOm5WQiFCNHA9SzYrJHFMZVU+KypcQTliSnBCUChCaQotWVhwTkE8Rls2UmIkZ3RsN1UncUlcViF0SmZkNmklJU04Pk02PyFoUCRAamglalxZK29Lb2wpVlVDS1JAN1NMJ2kKLUo9PVxTLzpNNUtya0oobkpKRFdIPFdKZ1RMKGxCXlBHM3FxLVpMYFJKQU42LUBoVDl0NXBpRU5CKEhpKDpMR11ECi1qcUJMYlNPNzIwOytWMFFUbGRlZlE4M3I+LVtbWDQpKS5jMyY1U2owSCY5QGsjK0VhaUJrIkQuJi1mXjJCRUtaLQotOEFXXE0uJkAzQldoYWxCJmJVNDZxSj06JWdgZDBRV2IzTWJccmVILmUxXnA2PjpZQVdAI0VsWD1BTylFVnJhTE4KLUssQTxMVG9NbUEtXEUqOEE1WU1RLjYvXXM7KTsvUS5zSy1KJEJuU0smV1pnOzZnSUw8ZFk/KCsoQk50YUYpXi8lCi1kTF5rNlRJOisjSTVIXTFjQFhEWyMrLFhgLz5wWWguXTBhYlJqRjNYZy4uTk4hSmlSWS1nI0VAZyZ1QERaLUs9PwotJSllZ0NgaCYsYD8mNF86KEpHI00qJVFWK1JdNFBoZ09wcG9ORSomMUcudEwzXFg5WWhTKVkhOG5JdWhNZT4/Wj4KLSFqJ09eXTstYGBMUWtmSldKUiRtUic9X2VuKTpJODwqXGwvLGlCT18xWV0xTloya1RMVzFsWTNubDxnTi5BTS1jCi0+MSM1LDZMI1dkV01vYjUoajFcQUYiclVYaTVeI2hqcTgqXWYlMkksO01idUM9VVs2RiYxcjAiQVVuSXF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEwNDYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDQ3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMDA0IDAgUiAKLS9SZXNvdXJjZXMgMTA1NyAwIFIgCi0vQ29udGVudHMgMTA1NiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEwNTUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTA0OCAwIG9iagotPDwgCi0vRCBbIDEwNDcgMCBSIC9YWVogbnVsbCA1MzIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNDkgMCBvYmoKLTw8IAotL0QgWyAxMDQ3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA1MCAwIG9iagotPDwgCi0vRCBbIDEwNDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDUxIDAgb2JqCi08PCAKLS9EIFsgMTA0NyAwIFIgL1hZWiBudWxsIDQ5MSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA1MiAwIG9iagotPDwgCi0vRCBbIDEwNDcgMCBSIC9YWVogbnVsbCA3MDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNTMgMCBvYmoKLTw8IAotL0QgWyAxMDQ3IDAgUiAvWFlaIG51bGwgNjc4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDU0IDAgb2JqCi08PCAKLS9EIFsgMTA0NyAwIFIgL1hZWiBudWxsIDg0MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA1NSAwIG9iagotPDwgCi0vUCAxMDQ3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTA0NCAwIFIgCi0vTiAxMDcwIDAgUiAKLT4+IAotZW5kb2JqCi0xMDU2IDAgb2JqCi08PCAvTGVuZ3RoIDE2ODAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hLJyNkUy4pOkQKLSQsR15uVWQ4RFhRcmwxWCNEXFFvSnE6X2teXlYnPSMuNEkzWnUuVVg3a0lZO1sucmN0MmstS0JpSj1eJzllYClyCi1BcTlzJ0QyJm1mN2pFQSsoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0VuVF5oIUJAcHVZUwotKVpjY3EnRmtJKVotdSI2UlpwJG4lXUo0J09rWUUlPlZJKDpiKipFJlBoTCUyKkRNOGMiYFdbPVwmNjFzKmZpcUUKLSxzIyhCRmpmM0JadVMmNjdAOkQxTjdNNUpMXl0lMFdKZTFyIltkZ3MzUFRMdXJdUkNPPUJgP0E6aGxrck4/XixCCi1wNFMnbiZpNUtBVEtqUEImJjpJNi4sXG5WIyFwR2I6YmR0dEdmJz8zIW9SXHFMbmhobzBvZ2xXZ2JYVGMjWEpKRQotbllrZ0IlRSMtdTBka0BmQS9XLF9nPjk/QllwKGI1JiRmRzAoST4/UWYtblFqJz9LQ1JpQlVbJV1KPTwmJyE2KycKLXI5YiYpTHVeVFtaU1ZWJjl1QU5GXCNgMjJhciRnI01AYkg4VGBBZ0lZNXRrRFYyQyoiZFs3U2RGSW5wL0A2Z2JKCi0lNFBFOzM8XlJeRSJpY0FaQSgtMkVSPGklTlBlRTsmM2MvWjVXVEE1ITpwKyE1bGc9NS8kRjFfMUNnMSVCWVkobgotRSdQXGM7OispUk44az1wK0BvQlY+PWNlRSNqLl87UHMmJTZkTk0vbS5MQVtvKDteOmhaPVFLLydyPmFjWVVoVlEKLS1tdW8/NVZlQiYoczRnQyRrVmhgTkwpSlgmNjlMJGJAXTY+RCxyXkpbJS9eP05UMzAwMlVxIVxnRGE2cl1qNEppCi1QbSxHbjtPIlJEPGZPS0o1N0BfSFEpU09XK2RkKjstRkEyXzI5KzNcaFsqOG0sXT9SaGY5a0w3YGhPS1tgL1REagotNVdZZ05WOUQjXCIiaTplTmBmPiRHSiFDdGhdISZgb2xNRWwoSENuPE5NRC4qKkRWMkJKTkckOCxrVSxPJEFgRjcKLS5QclpFa0tBbVNDQGpZXWk4RjxoIjNcR3VqWTY5JilKUG1FNTZUMi5YTGViVEA3MlVSX11dIysqbEcyKjVicSMhCi1lNF84JCt0YXVrTUskWTYzWSMja2NNJGRqTHJNKipPJm0+OU5eNzM3KTJaNS9RbU1xO0w1bjMsMi8oYyhfYT1tbQotMmlkWEk3bGVMM1ROJUE/OnNKZE9GTTBmJSZCVTZRJ2VARjJiZkg2ciRPUj9FK2ddPWY0PGZUZlU1W0d1LG4tLmMKLW1XYC8vSltCOk9HZlAmZy9pKEtHQTknVkBmKEVwcls2bnAiMmlYJ1E8dWhYdFhSSG9mWzcrOVRLLztYZyRrUCtJCi0yOlQ1WFo4aSR1Ij09MjNBZHVSRDdWTiMjJ1NDQDxRW284TEpjUSRNWT04SGoiLkBqUUwpP3JvRnU2VSYmVTczcwotQl1mST8/cFZvKGlDKiNtUEktTVZeUjE1S0I/bkprNlkncnVKSDduQmxyRFVmLSNmcyckbUkhNzI6c184Piw7cUUKLVswPE1aTVM8MVYpcS1jYC0iMlkiMDJoZkpfZlI3LFkzQmZALS4pYkZDQGtWKjNFKFplPXJTPjAyLURGXiJHXlcjCi0qRTslRE5NZ2MiUFhGQE0/cTxXZ2k9JEhRXD8qVzkkTmpsaDlrb2JnTmM6NWZgPz5JM01aWVlQZkxZUm0kQG5vbAotIXJ1ME85J101ZSU3czthLGpKTT5GNCk3KG5rK09EazRWUFpNJD0tR0RGcSdSLWAkaU03a2I1OixBPFZRaVM4R18KLU1MW0w8OnI3cXRkZChQYiZiUUFkO0tfKl5VMXUmbTo1OG5YQFVGdSZANEpZJ1EuSzFaZV5CTCxaOCsvSFo+PDhaCi0xKkpVPiJMPUwuQ15jNGcla1QnVCNicjgtMidDLS5IMUlXWl4jdTF0ZTdgQSUxQF9wXC0+YCVHRjdCWklZV0EiPgotM3VzaWspLnEqYDtwMVQqLjQ1Ny0xO0dfc0osfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMDU3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTA1OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTAwNCAwIFIgCi0vUmVzb3VyY2VzIDEwNzIgMCBSIAotL0NvbnRlbnRzIDEwNzEgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMDcwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTEwNTkgMCBvYmoKLTw8IAotL0QgWyAxMDU4IDAgUiAvWFlaIG51bGwgODIzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDYwIDAgb2JqCi08PCAKLS9EIFsgMTA1OCAwIFIgL1hZWiBudWxsIDY2MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA2MSAwIG9iagotPDwgCi0vRCBbIDEwNTggMCBSIC9YWVogbnVsbCAzMTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNjIgMCBvYmoKLTw8IAotL0QgWyAxMDU4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA2MyAwIG9iagotPDwgCi0vRCBbIDEwNTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDY0IDAgb2JqCi08PCAKLS9EIFsgMTA1OCAwIFIgL1hZWiBudWxsIDczMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA2NSAwIG9iagotPDwgCi0vRCBbIDEwNTggMCBSIC9YWVogbnVsbCA2NDcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNjYgMCBvYmoKLTw8IAotL0QgWyAxMDU4IDAgUiAvWFlaIG51bGwgNjA4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDY3IDAgb2JqCi08PCAKLS9EIFsgMTA1OCAwIFIgL1hZWiBudWxsIDQzMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA2OCAwIG9iagotPDwgCi0vRCBbIDEwNTggMCBSIC9YWVogbnVsbCAyOTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNjkgMCBvYmoKLTw8IAotL0QgWyAxMDU4IDAgUiAvWFlaIG51bGwgNDk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDcwIDAgb2JqCi08PCAKLS9QIDEwNTggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMDU1IDAgUiAKLS9OIDEwNzkgMCBSIAotPj4gCi1lbmRvYmoKLTEwNzEgMCBvYmoKLTw8IC9MZW5ndGggMjMzOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJ18jVGZTLjo6OwotSCs2KzEwVW4jVV9iJUFhN1xpPVhuPGQ8N0IqWDNXLlk8NWVoVHVdSU48WmNrITQ2VnVOQ1BVIjtSSDVePmQlTj4KLSwvRjo6X0slQiIiOVRnVTBPZCReaDVLOFsvLk5eayMvdUYhLD82R2QjYCJVMyJnW0pXYVVKZSI2aWJXPWM3VWpnCi02MCNqYmBudGVaMj9RUWwtbGBxQjlYXW8+MihoaisvMmVIZTdSSVBvR1lxTUM8ajxEOiU/QVZFYyY+K05aJ08uMgotaXBwckBLOG1bbkBGI2kjYFNFX1pmLzc4cEVbZkEtND0yTmgjLU5iZSlAIj8/Vy9oLGBFKnNTOU00aDlrI3FHSCwKLTJpWFJcNVZcM0hraVRrbyxHU181Vy9OXnMwVDhBMC8zNDcwXEFDOV4rVGQkTyJYL1xAJ0ZqPSU1V1Q+ZD0/bmcoCi1AaTRKazJDZTNOJi5ISVRnYkdqRWw7bT4rIiwoKSM3WT82LjFXPT5uY25eVFMhOXVPNWoqNEhTTUxuYDQoOXBZRQotVk44UGdNQTZAIiZdPzRcTis3c3RtND9OYV9EQDRYUzFMdCtNPUFfQ1dyVzQxJ0ZjOTg+Uyc7NThwViUiMGxqRnUKLWFXa2M3J1tZaE5uZG00NXEhJ2FJTistW3BhZy07KzJpYyN0YipAdDY4RVZSYiZaRnFJYlRMU3QnZGNqZWJvNFVeCi03MjNgTTZgYEM0TlQ3Kj5ZPi1nMkFocU45QUAuclg1c1NWSiRdKkdPMmFpY2MqOjIpcyJFTGI4ZEsmUk1jRWhJVQotPUEyNzlgci5MNSI1KVk6LyFycGFkSF0wSls5V2cuazM9RWkqJDdpYDJKQzhaJTNyN2lFW2BWJWZWXjJQM2hsWS8KLVRubVRiNG07KUsjRSJcUzYkTTA+bkIkLjNfKyJAKmkpaDtpSzsjTC5WIiRJXSFcaD0nTl1bZj9paW9pUSxAKCRoCi0hJCZRZGMvIVZLKTRLLVJKW191TVNQOVoiQ21qOWs3SlZGQChfbWxHJT4vb25RLlFpZDsrcUQsTGhDRz1fW1ZwKAotQSUkaW1Cai1XTS9ZNWlNaDZzVFQhT3VlVzp1WS8yNDMiJSE8c2NhO0Q/cSM0Xy9ObGNZSG9dMF82LDVfZ0tkUlQKLStQLyxANWxjJXFrLjFgS1dGM1BvVTprIW9gWnBoKFlZNWZOLTQtaDBDZiJWbG8sSzlmUXA8ZztyPDE0O0wwUFlaCi0zWSMtKD1PI0UyVyhBMlNvU1crbUtgZ2RuPXA1SlU9Tk9CS1BqVTtfVVFGUlVvaiwua2dxSChQWFlvPmQhMilJTQotVVFFMj1OMiomRGcsbnBLW2Q0Q2tNTU9CQVopQ2I6L0FHSzEpPmAqOUppWCgxR2ckcV48WFFiYl8lTXE6Q18+ODkKLSNAZCViV0FSTmBLY2NUPFMvIkB1OVJwX2tdWFNiZCFaaFlsSyEpZmlWS2FrLmZjKjFmI1BGPXI3STgzIk9gO14jCi1GVGhqTz5ha2QlOS5TIkZOaS5PWylqS1AvQzdwKTkjI05HWycnTEdKQERSR0pPTmFRUSY5TllgNVZwK2dscmZPcgotOWkxMnFDVVREO1taOVRfOjgmKDRLSjZGNmQoIiFCTGphamRwS2lmTzZfNEtxKThkZlxdR1hVLzsoJlVLWkBXKHAKLUxzIU1TTUpRQlRMUUw2aTZYbykvJSsxXTVmKUMzUis9TUdKKTFZLyFJKEM5YC9qLjdII0lyPV4qITlaI0xaIVxFCi1VIWs5c1FnZUZGMGxlcDojQy5PcCxiYmEtbUZcJ2NFYyVSNEFvTmo+XzU+LmlOZ2xjNExdTj4/LD8/a0ZldFIwbwotTUhpJm8ocm1YdSY5Z05OX0JMNipgdSgkcSQ9XyplQj51b1QmRTU2MjgxI0I0WHNRUlwoSVckYDdJITpQMidGM3QKLSs+JypaZCJCTFlkZTQ2ISllazdeJFIoLDgwLC5mM0ZSQzgtX2tocygiJiJQQytjSjthPWIvZTduOGgjKUFuayRICi1vKzMzITxCRWMjKEloPSFEQXE5Jj9VMTg2IWclRjJPZT0tLSU0SXFwQUdcUShQMWFcZkY7MjFBOmgnbm5EM0c8NAotRGwlJlZRa3E9M0E7PGhwKWQrTHFfKm1FbDtAWiRUYGU7JkJDWT46UUZjV2FAL0xPRTY0QE0mLEJTOXI5XUU4VHUKLT4wXT0lJ1VMIko+YVorQ1YqbDE/YFpYM1xvSVAoT0thNipNa2lsYTdXPEZGM0VPV2AhPyw4Y1oibE9uVCMkT14iCi1rSzksX18zSXAiJkViYiReaCwuJ0RPJVg7XSpNcSctNmJ0VE1dUGR0JDVuNEBCVm8qXCpIajJJJCFkMWFhQj0hRQotIzBBND1iV0s3dFMybHUrbnItP1hFMTBBNEI+ZDJdKTYjdTpVMUpZalVeJWVVUT4uKzgtczlUS2JBVGhJRWJCSS8KLWFKSDgjaW4ydTtERjo9PVgwKmwwJjBLSD86ZU9AbihyYUkuWSlVbmZwTFVOcWRuYWtcPCo9KD9dWilJVE4pbyFICi1paloxVVkuUCo2cGdPKzlPREdnSTBVPkpOYUtwQEAvbyVhWU9BSyRwaVNVSWlKS1RPTylHcWtNLC1qVFxhcTApOgotX3NHNUc1dHJAWCJSc3RaRDBiK0YxcW9xLUU6MkJFLmZSOFhPbGJANV41Xk5kKkNkUG5mVmluSE5gQUNwPG9NMjEKLWE6cCs3OSskUEwzOjg+KlBqPFdMQE08LjBrMms6R2gyN3ExYHJtJWtJM2Qxcio2XkJPJTQuKzxmRUFAbFVZNkshCi01aE1eJmk1Nz8nJEBqbSwyNjUxRUF1SmhzVWY+X0okNmErWVVlK2xcLWEyUFZYJSpORjklbkRaTC4tVEhdRy4sPAotSVc6ZSk1c3MxNUpRPThLKDk8PjJjQEY9RX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTA3MiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEwNzMgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEwMDQgMCBSIAotL1Jlc291cmNlcyAxMDgxIDAgUiAKLS9Db250ZW50cyAxMDgwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTA3OSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMDc0IDAgb2JqCi08PCAKLS9EIFsgMTA3MyAwIFIgL1hZWiBudWxsIDMxNyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA3NSAwIG9iagotPDwgCi0vRCBbIDEwNzMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDc2IDAgb2JqCi08PCAKLS9EIFsgMTA3MyAwIFIgL1hZWiBudWxsIDUwMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA3NyAwIG9iagotPDwgCi0vRCBbIDEwNzMgMCBSIC9YWVogbnVsbCAzMDIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwNzggMCBvYmoKLTw8IAotL0QgWyAxMDczIDAgUiAvWFlaIG51bGwgMzAyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDc5IDAgb2JqCi08PCAKLS9QIDEwNzMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMDcwIDAgUiAKLS9OIDEwODYgMCBSIAotPj4gCi1lbmRvYmoKLTEwODAgMCBvYmoKLTw8IC9MZW5ndGggMjA4NCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJ18jVGZTLjo6OwotSCs2KzEwVW4jVV9iJUFhN1xpPVhuPGQ8N0IqWDNXLlk8NWVpbTgsTU48WmNrITQ2VnVOQ1BVIjtSSDVePmQlTj4KLSwvRjo6X0slQiIiOVRnVTBPZCReTlVHazAqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cI0k+Ci1hK2dqWVtic0RlIyplMUYzJTJldTlhNlZtOyNYRVRVT08xUERaXiNaXmhNMUc5TFQkUTprNEw9MkFubWJUYExJXwotPVpRcUxAS0I8Pm1nZzMkcVljPj9iaWlLO3FYUVdHLkVMUi9OXkVOcDE2LGszX0RALkZmT1BuVF9XWjE7WUguXzgKLSQqJV4/bS8uO0c+MDhsallQXEoxTmU9PzQqaGozbE5nSUknRjY8bWEiMGdYVUtFSW1vcyxRKzliY0U8ZzVlJUxtCi1BIT5QJ05hayZZJ1NIU0JtY11BL1BVT0ElJiRtQjwlbClkZCVtV3I6JTBRaXQiR0BLLWIhO20/LUYwLUEwPm5HNgotNW5YQVdsTD8sazhANGFKX0BdSUMtOlE9NGBwZzgnWmQwVmxaLnQqWWFSRyFrJC1nWWBgPUtdUSRxQ3I1bGNmVCIKLTc/YEMjMDtjIz9mWjkjSCh0VW9AJEpiSWw6XCQ+PDJHZUV0anRyJTUiSmwma0YiJDM5Tl5HP2EzQGlUQVdyZylzCi0vQ2Q+ciIiO2ZuS0dCSllZNmkoRVFtUE8sRkhdVkxXTkBHUVRaVWB0KG5pQDgmOzZkTyEsPEAqSlQsRUUuOlQjNgotXD5DbVRcQCpgOWZNRiUkK2luMS4lSDBpYydFZiFdYD5McG4uaTomUFVOIjdMJUVWYD9uLXNwS2diT2hgLFtyXkYKLVVWUGZuJHREaWwyQGdyMmBcPEM+LXJNW1RKbDdjbD4iRSUzKTI2QFZWJ1xaL1YpXCo7PDwscS9YXVl1TGwzOVArCi0vQF9eSDxZaj09OnM4QHUvMjY5YyhsJm9YamMvPCRfRFtBczJJOzVQWHVCKTUwb1RWQ3JMckdiODZrVUsoaGdjRQotaVU3PiNVZ3FcI05qY0shWl5NXlwrZVdhbVVWVWBFbFQ1VSdhPl0tUyc+cENPZEdGPyltcGo9KDVoVTc0UjhkMFAKLTVrIzxmMGQnbiw8YSlnQmxAbjk7RzsqKytxbylEXSdkakYjaldmLmcpcyo9WlwvRS5tK09XPVwvMzo/UiRzOUojCi1UKzFgXzdqN0hmWGJGa29PWmVzZmRQUGwqO2QlZS1VOilOJVdoakdTTHAxSjIjNTdgKmwhMCZBV1l1KV88aSd0RgotZjdpPTRAY080Lkw9PDRuImMzWnItcFg5Ii83QSheQGJNK1UzRloubDVmO3EtaGFwIV5fYTs0QmFuLDY6WURiL3UKLVtJPUcoMFExR1JMX2RFZTpoIyFuOmpZVVtaQSpROSo1Yi48LydvUmEiVGomaiFOTFdjQlV1SWMtSVBrXz1dJGQ0Ci1gT05CNVkiVC8jLSVCQE4qSlhuYiNaO247IU51ckVVVzw6bkpQb0VqLi5LREIoaFVyc18wOHQyT2FcdEchPjpwPwotTGVsMWNzIURuPylBTD5gTSFnV0VVYy9MVmU5ZiwoTFxyaVxbOG45QTk+NjFCInVTamVIRihhZUI2YmpWQ1Y4K0MKLWdSYVVKLTswVGdYblg2U0pvZFlsWDFaRldHZCg4PCQ8KF5MKF8/b0ZXNz9OZ04rLCYnSlsoR0sqL2IpRCU/MTdXCi0jPV1PSTVtLzU9OUdVJlI3WjdbP1wyND91Q2FxbCg1aSc+aSFAVmE+TCpKJ0wjUWs/TyVMaklYIzRUTSloLyFRYgotJjQqNjg6Z2U9I1I1SUgoaTdLM249clgkOjIrKXIxYS5KSVotS1EwXTo+cUoyXlxPP08mMURaZEUjSlshYTU1P3QKLSEoMTUzXVY2Pkg9IiM+bkExWU5KQydRIVMpSjVYW1JEakZTMFI1Pm0rRFIqNiReX2YqTDg+JlcnWVIjY05AVVlrCi1bWjlIY1whY2hWJUwuI140UVB1UyVCKDs+MHBYOis2UilxckNeJEJQITY3LztdXUdGO11gTG41OylFaCtyWFFtXgotTlxUWD9eJnIrOyJqXCVKUzspa0AuSmheJStQYlxSLCVPQ0s1dXJCOV4mSmlzalRWImkxLG48OjFQVmRCVDooJ1AKLUdrQ2duJkxGWU1OXFQkZm5ga14qPioyXlIvLGF0ajRvISpQSV91NyQ1Ym9xV1NeKzYyNCZIXnVKRj1BOzRHLG9rCi02Jjc5Ry9EdXRMX0ttNFBZXSdjXlRIPzowakQ8czdhdFJZcVozRGEzKi51RiU+Kj50QDUqQXMmSzwjaHVPPm4jXwotXSltI0FGOmdqQWJTZFI2KVMybDwwMTFgVFdoO0JGPnEpPjNQKUInZVVVY2JgJiRsSExvQm9pZmpzaD4jODhWaEIKLVclZU1HaEFYcGguO04/PTZzT0JhOko+OyRRXTVUalAtVlpESz1HPyFaXnFDTjdcYWJIaiRAU1NJXS9ZYFtyLDlJCi1ecHNgaj0mLGA9LDBKMGJDMiRmTjhyNlBDbCk1JUlKMkRlLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTA4MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEwODIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEwMDQgMCBSIAotL1Jlc291cmNlcyAxMDg4IDAgUiAKLS9Db250ZW50cyAxMDg3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTA4NiAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMDgzIDAgb2JqCi08PCAKLS9EIFsgMTA4MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwODQgMCBvYmoKLTw8IAotL0QgWyAxMDgyIDAgUiAvWFlaIG51bGwgMjY3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDg1IDAgb2JqCi08PCAKLS9EIFsgMTA4MiAwIFIgL1hZWiBudWxsIDI2NyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA4NiAwIG9iagotPDwgCi0vUCAxMDgyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTA3OSAwIFIgCi0vTiAxMDk1IDAgUiAKLT4+IAotZW5kb2JqCi0xMDg3IDAgb2JqCi08PCAvTGVuZ3RoIDE5MDAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCdfI1RmUy46OjsKLUgrNisxMFVuI1VfYiVBYTdcaT1YbjxkPDdCKlgzVy5ZPDVlazBPUFFOPFpjayE0NlZ1TkNQVSI7Ukg1Xj5kJU4+Ci0sL0Y6Ol9LJUIiIjlUZ1UwT2QkXk5VR2swKidCNWpNXDwkWldhWGByJWptKT9BXzs5aylCXmttIU1hKG4+XCNJPgotYStnallbYnNEZSMqZTFGMyUyZXU5YTZWbTsjWEVUVU9PMVBEWl4jWl5oTTFHOUxUJFE6azRMPTJBbm1iVGBMSV8KLT1aUXFMR0JlQUEhJkY9S2srV0JbLi1iazcjUylUTSdiSkFDMSNpVkxZKFFuJWJSYjErITZkNCpfYDY6LU4nZG0nCi0mLlpwL2RQLVZVJDxCNklVPlRXJCMsQEMjMVFDXUtjTVw0MiI3R1tfNiRxN3VbZExjM1xWK2BLcl03IS8hLWspcQotSzJDOF0iaUVUUihWUlkraS85OXQ3IXBzJWl0MU1ZXVpTKnVgKEA3XigtKVY4XD5VLGhYIjNjaV1iNysxIUMkKHMKLU5nR0kpTWx1aztEWDUlK11QZj1HWFtqVDw+OVo2IU4wPjA+ZENhTkBOM1ZgIStOU1VkW1tPa0hVM3MuOUVpYnJwCi1eZ2hMLS8nUS4pJU1WYnM+QDlCX29SdC5EOVM4bGQxZWdpOUMoW0NzMTxUK3NLOTVaVjVpVV4hPVxLSHNcaEQ5OwotVVtBWnVUYGZXZWVzLGlHLU9lRzVcLm1UZ2phJWJHbz5IVk83WzZcSyYuRUxrLD9bQC5BV2VnLk09IltePT5ILWQKLT5aO0hkPFpdbCRjJ3EnbkpPTkJqZU8rSV0xXylsdG1xYjxrOUhMTkInWkdidD1IXjBzRlRqUE5nTlZMLSgjb1QwCi1RJHAwNmFIXD0vbU5uNHVXJkxaMz5qbGk4cDZGXE0kOzFaTTE1TV1qbDhfJXI4N1E6J280QVNLTGtBN2IxcEg5LwotS0tQL2FvTVFRN2ZeN1gzTTt0UHUtXUdvVWF1NTdQRyNBa1VDViYjbS9ZUyU3TG5QKUguTSs3KGFEO2VFQFxQdXAKLVZCWFloLVhPVltFWiMjaEAuI2tkQ0ZnIy4jW21fazM8XlJeRSJpY0EzOTJjUVhDMVRYTmhISUFeXllvQTxHdCozCi0vXEVkNkBrY2F0NjAjT1cqPGRZTlckTmxGMlA+ZGI+LC5OJy5OdFBDa2xuNWJYUiYjOS1OT1hnOS45MTFGW04/NwotJi5dT0lwOkltay9tQlRcMjJHLGBLY3BSZj5uMFAkV1leXjIqQTwzKUdITDlJQWlaR3QyZU1tMWxYU0ZbYjU0PEMKLSReZ2doK1BiWmlXTictYi4jUzo8XDhXNyJITEFNNyFQOSNaMmRxP2FsYCJfVTdCKms5ZUFNSzdPQF9BWS5FUVFICi1KM1kiXCQiR0AsPnAjXl5kZDVea3FgZEI/UlEnQzBbMG02X0Zca2VkMzs0VlJOdU9AKW1VWUBEZi9jbSRxLCZhLAotQCNtP0lXZ181VDIkQyk8Tlw5Qy8pXEtwRzZjWyNIU3JoPjBnMiZWTFlDLzN1ZWctREUvM1IkIl5uMWhIQ0AuUzAKLWdLRXVlUl09bkYlMTVKNUhcbnM+IyU2X2c8L0dnRzo/Y0YqOyM6RyFVPVRQV0tYM0YnOVtbQyVCOF1WXTI/bCYoCi0oZGhLNExMQTdfMSw7dU9faiFFNSZXL1RcXCVOXCk7cGYzMyttUUQ0aXRjKmdMKmoxWDJvZ2FITFZdNDRIPTI3WAotLmUqKlVPU0NWbkJxQCZ1WyQpQllYRCpJSlRxSmJOTVVDLUtIJy4jQzZIMmkhLHBdZSZQN2s4KVRRJlg6J20sJDIKLTA0bkQsNVomRU8+RUZhNDdQW1lPRT84XT1uLVlsITIyOjVaPS8ibDdRcj1WZ2JAbF0wLHFPLyZtdCkxOmtLJCZbCi1ZbmROZGQoaGlvVXQ+dEtlSFNMbVJEMDswJjVVSmQtIjRWJldRNlYyQEcybEJYa2BGTzBaImw+IlN1MzllYyZCNAotSU4tMUxDRipYYjJrUThTKVVBc14iXm5HOCgqR20ia1EyaDFYciZsNytRT0cuMyt0TitiKUs5P1o8KF8xJTkhZ3AKLWJUPjRJJU8uW0YjIzAzLjJoOSxITVhZPU1rRCE/Q15ya1ZzXUhEUzNCWFVaRD5bRHVkO0ZyRCoxU2hTJnBqby8vCi0icVFnM1tPJHFBSkguLCdEOzY4XTBcQEUwMy0tZzctLFlMOyxtS2QycnNVYWpfXVhLZiojTj9AImdpaUYjMUxAKgotNk9cRFFabFlZUEs4ZlsuV0NvZGFnNzQ4IUJcOEVIWSgjPEknTlBSWGpkYS9XIU1maH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTA4OCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDg5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMDA0IDAgUiAKLS9SZXNvdXJjZXMgMTA5NyAwIFIgCi0vQ29udGVudHMgMTA5NiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEwOTUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTA5MCAwIG9iagotPDwgCi0vRCBbIDEwODkgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwOTEgMCBvYmoKLTw8IAotL0QgWyAxMDg5IDAgUiAvWFlaIG51bGwgNDQ0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDkyIDAgb2JqCi08PCAKLS9EIFsgMTA4OSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEwOTMgMCBvYmoKLTw8IAotL0QgWyAxMDg5IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMDk0IDAgb2JqCi08PCAKLS9EIFsgMTA4OSAwIFIgL1hZWiBudWxsIDQyOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTA5NSAwIG9iagotPDwgCi0vUCAxMDg5IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTA4NiAwIFIgCi0vTiAxMTAzIDAgUiAKLT4+IAotZW5kb2JqCi0xMDk2IDAgb2JqCi08PCAvTGVuZ3RoIDIxOTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCdfI1RmUy46OjsKLUgrNisxMFVuI1VfYiVBYTdcaT1YbjxkPDdCKlgzVy5ZPDVtX1UmYC1OPFpjayE0NlZ1TkNQVSI7Ukg1Xj5kJU4+Ci0sL0Y6Ol9LJUIiIjlUZ1UwT2QkXk5VR2swKidCNWpNXDwkWldhWGByJWptKT9BXzs5aylCXmttIU1hKG4+XCNJPgotYStnallbYnNEZSMqZTFGMyUzcFdEJkNjMzBUKGZpLW5xVGIsSm8/Qk1US0hBJkIvK2AhTEJvbFhrLTxsSFdNOFoKLSQwQCtTNFEzTyhwLDNqZnFHSGQlXmhiaV05ZmVSWipMK2s5XTVIcktYWUMsYWRab2I5QCttUSJBIlooQU5UNF4xCi0yQFFAUmF1MGJSITljRVAsSSNXIktFQyguNDJVI2YpJEdxXCchU0pAIiMvUmw2VU8sXSYuQmQja1c2V2xlJHFAbAotai5ObXJMIS4lSyg5cDBCL0FcSjxUWEdPPytcNj5kS2IyVyUzIjcpUDViIlorO28kPFMiJTJrazdLXjBLMkZTaXUKLWhEXkYycHNNJT5BIl8zT0tFOUZ0L3JHNllPcjE8OUJII25rRERFMzFeQCRrQCg1PD91QmAmM29MZW5fcmQ5TSY1Ci0lTE1YVylUVWU6cDpKJ1ArQyNkX01PSjtpX19lcmIjMUcrLDM/dFw4K051bStkQmFDclk6SyE3OjlcLmxxWmknKQotVUVeP1g5KmlmdUxuZyduKFhmXShPXSdZTlU/NDJfQGdMWnUkXD1qLz9FRFBGSzQwZEBMaCVDRGlTQHBRPDpvaiMKLT5aWDlcNm0+IiYzdE5QRywxOml0ZlgvVi9BQ1YhZ1FvRV5MS3FvU2wmRyRDN0tFRG9ENF5JZDNcLm1dSipGaGZLCi0yNkNkST5kNGozM2ZcZjpiVS86UT1RRFUkMicnTUU/SWl0YidPKmtoLU8xK0AwTC5QVjBuKSxzQC8qP1ZMIjpJTQotYSwhZio1W0JyQFtRV2YuZm0rPio6KCFiOGVpKyZ1XSJMU1ZDQDJPS2dcTGg3PkE/LTBWRVZZSzFYKFRlJEJydHMKLSwwN1o+cGNfNz5pZ0Boc1VoKSxDUWlRQSJOMl1xNzE1cXRSMWNPPklSWVdcWE4tSjddS2NAKyxRMSc+MmsrOERnCi1ccD9IWDZeSV1rRSVHRFUidSwnTzBcQG5uJShcM1EuTzhHOUwxLkc8MzZsVEhtbFtfWWloXGsjITw/ZyxVVDs/QAotKGY5SU5tQ3IpSyJmWWtfblUyclBrITNVWSdtQkwxPSs4c3RtRmNcY0lLK3JZcHE9c0tNZG1VUzZmO2BDNmREWVQKLTpMOnE2Imt0RDdaYkQhQEIxLDxXNWInVUpPYXVmOTViU0JcKHJnVTVGV01wcG4zQiFuIipqKU0pbUYjYm0zME0wCi0iRDYrJUJQbywpYnQqUkNkY15fPEpoM2suPFwhNTNoVjc3Nz0iImUrVmFUbTVkT09vXSxoKyYjajFINCpPcV49QgotSmRgTGsyU11cRUNkb2tpWEpeZl1sQTBlZy5ObHQwM3UmJHBQWDo2OU84NnNEMTxMVyInTE5BOCdoWUBiTClubCwKLWwhTkRbamZoYnNwMC0zWDRZTSRrM1lNTWdPLjUzUkApVmspUGYvc2ohXihaXTNRSGAsciMqX0FETFNEP3FqP3IjCi1RcFhKYEomalVBNVpdKGRhXV1sUzEkQ1s9ISdwTE49WyVoRD5uIkxzI3BSSnJFYyRTYjJgYXEpb0RxPmclJ1ZidQotMGBxdUpkTClhL1oiMnJSai1pRGZRblUtRVIvREthUTRYM00mLlFcVignXWxFJDoxJTwiVGImXDVbYENpJjAtcC0KLVdJMlRUQFpwR1JqNGtkaUUjQWFzRFlSImNqJCdgMjxlPyVZJE5oZWgkbnFOPihzKyc1QWpBNlhedGRjXycnPnI5Ci0kczUqNzBIKUNFQCtTJ2o5OkhELCU4OCg5LDFYa1Y3WkIkLlY4VSNoVEAuVVkrRylERE9NbSpxV0JHLj9cSlFOSgotI21RJDQvWFhXbDZBKEYyVk4rPW86cmFFQGIyamNGUSExO1FQIXEjSGpCUylrOFsmXFRcLkRRYkxFRSNwKWBuNEgKLUtNKzhcOlhLOk5RckVwZmRLYjFmVz0wUG45V1RxQVJMXy1FSzxvc3JbM19pa2AuYylRKSphN1xRbSEkdEtwJ28/Ci02YEE2OCdMaS5sVyM6QGpXTzkuX2A1K19RKjxxPjlcRWdzW0libCgnT2VMYGUzJTVYYSNHKVVJTFwmLnQ8Njk9ZgotQT5MaVJZYSQlUGpQYGNQaSxeRVRIKnUsI3JAbm45PFwpWj4mNk9PQC89W0ZXLzE+KU9RO2VrLWI2c1woXzktVTAKLUtMLy9hJjdwS3NSXFxRdGVPIVxLKU5lWlU+SVh1IylGSCdqIjtFLiJeSDNGTi5sPVVCWzIrPzxvWz00YSwmZzpXCi1pLkFqXGV0MiMnM1xrY2hxVGVrYG0rblt1LUY5Qzkrcz5lYkEnZisrV2ZhODpBcDZsTWJQanNIcjMnLjZvbSw4bAotMi1gamE7OT0+cCRAcj5hJSluTzgraTpbUU9bc0RuZChaNCMsVFVFWE4pLFVUYFEiWiw8IiUrZEk1XkAyNnImJk4KLUdIVixJXU0nTjhpUzZPJ18wT14jTC0+QkBdN0ZLI14lVDJXbE1eaGhPO2lhY2JgPTJRJjc/XTFKTE1sSUxqK1xpCi0iJnA5U1dEMl8qR1dhNjQxJy5+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEwOTcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMDk4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTA2IDAgUiAKLS9SZXNvdXJjZXMgMTEwNSAwIFIgCi0vQ29udGVudHMgMTEwNCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExMDMgMCBSIF0gCi0+PiAKLWVuZG9iagotMTA5OSAwIG9iagotPDwgCi0vRCBbIDEwOTggMCBSIC9YWVogbnVsbCAzNjggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMDAgMCBvYmoKLTw8IAotL0QgWyAxMDk4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEwMSAwIG9iagotPDwgCi0vRCBbIDEwOTggMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMDIgMCBvYmoKLTw8IAotL0QgWyAxMDk4IDAgUiAvWFlaIG51bGwgMzUzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTAzIDAgb2JqCi08PCAKLS9QIDEwOTggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMDk1IDAgUiAKLS9OIDExMTMgMCBSIAotPj4gCi1lbmRvYmoKLTExMDQgMCBvYmoKLTw8IC9MZW5ndGggMjU3MyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kJ18jVGZTLjo6OwotSCs2KzEwVW4jVV9iJUFhN1xpPVhuPGQ8N0IqWDNXLlk8NW1gbT4vMU48WmNrITQ2VnVOQ1BVIjtSSDVePmQlTj4KLSwvRjo6X0slQiIiOVRnVTBPZCReTlVHazAqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cI0k+Ci1hK2dqWVtic0RlIyplMUYzJTNwV0QmQzZkMFNtKTouRVJVcDgxK0xqWWspRV5MXl5cO2MjMSo4MWciUj1AMCthMwotKz8+ciNWRENlYTJFITpHJSMsRm5kLj9OX01sdWNWNFpYNTtMKyNdYilbQE9aPlQzbWk9SyU4YiFIO0VkMzZATysKLS9WTzY1XUosPXRVM25tYEsxUD5hS0VEVVwzPF5SXkUiaWNBJFI1L1NqL1dacjRKUDswJ1Q4XVlQYmEkYT4rMTIjCi1fL2g8LFh0LGwzbUFnVENwNEdUJkNeXzBjJixOMTFLYic5byZrJ1EnZXVjaldKbF9JRyZUZzkhN1I3LjMpJFd0YAotXS5wYWhVW0Jtc1luMS5PK1tcTkMzUUAyZW4vM3JTYjUwJ14jZFhhP1R1cjw/JDo9bydoRS5RRGFQSnRzT1UxMUkKLWBHNWpnM0QsRG5oRG1cLyZEM1VQWT1tST9eJGdtQXFUVmdTNkVwWHEwXjpTKkRYdEZtIlRxPD4mNWNEN2NPV0RHCi0jWEpxMFVGPFZkXkpWKE0uS3JELEJhUDMyJTgvVEk7VWUldS87I0BtN2EpR0ouazsqXlc4dCxsZChuclklSj85NwotPEU1PCtoQEt0Ql08alsvLEFYPWsjPy5eQUsjXVc+TjkuUyEjWEI9NUpZU3FUXzRjU1pRbVNMWVFTc2o9SkRgUTYKLSRLdFZLLm9sQDAzdDpIbDVTWEQoZ0AnTHBYOT9YMC9uJCdKPGo8JUdMbWxtbiY1V3BrSzpOZSE9MkBXZk5SKSRWCi01OjstZEpGXWBMQGVjZlVOZTNZXjNCSXQxRmUwISNDdFZKRUZKVVQqOWBmUykzV3A2KTYhZlBeQHBsSkNRMCFCMgotTC1fQVoqVFlkIjpjVzIpZF8kcTdVMHNDcC4tbmw1TyVidFdxUmBwa1kmOygwKW50PGVLcnImY0lyQ15PLy86bVMKLUFJTDxFJFNKQnFPJy5NJFspaVxjcjJDbDomaEZzZiYzTFRoWHNvQTQpXitiaTpiME9eXXFANDk5T3R0IktFSmE1Ci1gQyliU2hfcU5GKj09b14lI2Bbb2BcdDFzJ0NAXjctWjw2KVNgTGhdOTUlaVUiaTdlTFdHZTsmKEthYzA1RlI8bAotXzhNaS4uWmdLJkJvWU9oaz9QKD9KNlYsaFc3dTpTQSJlIT1PQkJXLD5oRShlOEVoamBXRVJIUjktQGJNbF9SOHEKLVtHJjcvIXFDLllkSHVKN21Tb09xJWczI0RkWk5ZbEs6IUtULTduODUjKHNXdChcNGQ6OGs5ZU9ATSJVUU9mQV1HCi0kbUQjdFU8UztTR0FuIz1xPnUyJSlxXEBfJSxtblspMDUjXzlZZ3NJNik7U2Vac1tDMFgxMW88WDxFPHBnc0VzOwotRCkkU0UyTVgrRyowNkooQ28jUSY3RmI5VVNcIi07bD41KipqWSMnYTwqS008Rjw7XDw1UyUmMEthbUgoJ0k6Si0KLSVOYGY1QUZaZlUidDhASz5aPmNGI2lsZ249VWNOYWFbaEokOz1eISZgLzosZ049RV82VC9FIjtEbzJ1YT03QFwuCi0ySXRfWFNYTFooNWs2RTA2SFRnaSZXQTkoOmtUXCZhcDglR0MyJENRM0FmQygqLmNIWkMvJVIrMjI4TGhoUiU/YAotOzZmTDZQUUt0UTZeZSxYYlQlSCYmOyQhUiJDTm0yI25wZGo8WSRacUAwRV5nKCNbI2QpWHE4bE1VZ1JfLClDU3MKLVFvOjRlOFZmVFBfSDwmVlFqaDA7PnErZ2UzWS1oQTxHW2NjYWQjYUNfZGkiTm0rKHAtbyY8QEU2QUE+SyxwVFRwCi0vSF9rPCZMbnBLJSlITlgjJTYwaVJuL0JpNi5SJjw9SGVKQ0RCXyhfKCxYZk5SbDUvZG4vIyFSbk9kJD1GKVQ/JQotIzBfL2kxNGJOSUg0ckhnOWRmI1M4NiNwdTAjPzQmNkZxO2oiUSpBRjxScmBZXEAiVSslQXA9TyI/bG0mME9wbzgKLS41M1hJXiU/b0AtZHEqMiEuZXB1OnUkNERNU2FYc2Zgc2lJWEZrNjFLVjkqOk1wLD9HJSpGKVwvZWY0clJvYDpvCi1oKmRyT1pFUTs/RThNblgmXztBakY7aGhCI2JQbmowRiJiTGRnKCIyKVpxNCNJdVI4ZFE1NkVjIjFwcmc7N11bMQotQjgtYHEwZzt1NzNOPmouYSNoVGVubStQSCYnSi5vNTZIIzFDNiQoaCM0VWJgbHExVklrQ2tJQShSRTFxI1dLJkkKLSojJ2JLRydub2pCPDg5X2hOY1pJQyQ1Wm88Zi9KN0wvayRjIi89c1IlXGI9RlBMVlM9JTpyMi5wMk4yMkdUNiVOCi02biFxYGhISnBORVJsXUgtRlVkOWgkTlR0KDdWVScnaC9AW0MpaThUYT5KUDluS0ZJQU5JYmopMlFQJ1tyRXJYcgotTm1UXSlfXkBIIjMnb2BdIVspJV82LkBda0ZDOT9eV210I1gzbjVOUWI4JSdFPzZzWzs5T1FBLSo/SkFdVSVJIToKLTlSSmdgPmtIQWZrVyxrSCZvJi1DXG1KLGc4TDErPFNRRVdzMkVTRF1SVWpqP0EjZkE+UGd1JV4+WmgucWs5PS9mCi1jS0k0bTBeOVNmVkZqbz5ab1huMjVtcGc3cE5LQF5oK2dwJSldPGNpLigsdWhPY1gkaisscEcicSVzZWxqZW4oagotTCpPWEVVRCxPQTxFXlFeNSF1L2dyNW5oSl0sLFIiUEVpOytfIiZSOExkTSMqZG8pKWlMQyRGYSElOD4uTiZFQz8KLTovV05wLmtZdVtgcy0xXGZFJSgmTTwrTj9CLFxmQz4zYktWXy9kZFkjL2dqUlFqbyptTUxETWdlWkMkRVtLUXRyCi0pJElhdChka2FGZnQuKG1DX183NDJCbGdORk01QScsJjltO2dyO3EyQTtVdCxFZlhxbyRSUzlcNj1vZydHN3MhOgotYk81WWlXcCppZG01W1I1JCNsSzEhOkdmTDtOYUZKMSM1JzVnKT1EUzwyaTBDbnFUJ189ZyZMXjFPcTw0Six+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTExMDUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMTA2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTA5OCAwIFIgMTEwNyAwIFIgMTExNiAwIFIgMTEyOCAwIFIgMTEzNyAwIFIgMTE0NyAwIFIgMTE1NCAwIFIgMTE2MiAwIFIgCi0xMTczIDAgUiAxMTgxIDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAyMTggMCBSIAotPj4gCi1lbmRvYmoKLTExMDcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExMDYgMCBSIAotL1Jlc291cmNlcyAxMTE1IDAgUiAKLS9Db250ZW50cyAxMTE0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTExMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMTA4IDAgb2JqCi08PCAKLS9EIFsgMTEwNyAwIFIgL1hZWiBudWxsIDY5MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEwOSAwIG9iagotPDwgCi0vRCBbIDExMDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTEwIDAgb2JqCi08PCAKLS9EIFsgMTEwNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMTEgMCBvYmoKLTw8IAotL0QgWyAxMTA3IDAgUiAvWFlaIG51bGwgNjM2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTEyIDAgb2JqCi08PCAKLS9EIFsgMTEwNyAwIFIgL1hZWiBudWxsIDc3MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTExMyAwIG9iagotPDwgCi0vUCAxMTA3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTEwMyAwIFIgCi0vTiAxMTI1IDAgUiAKLT4+IAotZW5kb2JqCi0xMTE0IDAgb2JqCi08PCAvTGVuZ3RoIDEzMDQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCdfI1RmUy46OjsKLUgrNisxMFVuI1VfYiVBYTdcaT1YbjxkPDdCKlgzVy5ZPDVtYjBVUzVOPFpjayE0NlZ1TkNQVSI7Ukg1Xj5kJU4+Ci0sL0Y6Ol9LJUIiIjlUZ1UwT2QkXk5VR2swKidCNWpNXDwkWldhWGByJWptKT9BXzs5aylCXmttIU1hKG4+XCNJPgotYStnallbYnNEZSMqZTFGMG9SRygjX14wK0sscUpTRCtjP0tLYlxAQUNDaFVGPURXNGohS1AjPjBVaVBhbkgiSGgKLWg8YGZnVkVvME81WG1dJktFYkFrS1xDQidILGohMi4pc2k4SllDNV5MVlFIJFUpTz1FTWtbaWchSDtFYiMpUnFICi0nIydDKWtVbSNAVFova3RKT2kkaFk0LjZOXl1tWGNWT0VNSVAwLGZvZChtLi9gMWVbODNbYCohYzRDRSVXOCcsLgotQz9SbyciOUJZI3FbQjRXXDJRazhPQ28mWUNVZztYLUQ7XDdYSCZIY1RHMGdMPlpxaDUrY3InSE4kR11IKihObGQKLVk5NkE2LGBPJz0mbS8nWlc5X0FqJmsncVw6ZDJYTTE3NU1bWVQmW10sL0xLcCMuYCQyNExoN0JCT0RmSC5AOyMqCi1LYFZQODRHNDs7O0FiL2k1Zyhra2ovRCl1O01sYCspMj8lTWYobD86VVRXc2I6V3FmXE4/X2lgbyI9OTxIOSJISQotLEBJXT4hdCk3RCVIQi0tM1hsVF5cZUwnc1RUbDdlZShQV1ZMNi1ObldEOm0sO1FXX0pxVixdMUREWS1BOXFfUkwKLTRINipJaERQUFxcNjljKiFIZVVGYCptZEJNX0pSVidHcyk3RldfZydAZ0c9WztZOCZRM0tCa0JrZissaWxhbFBECi0sRz06LjEuaVwtM2ZOKV1gXEVKPC0mMXRTSzFQLixYTm5faz0hXz9OS2k5SyhSLSlHTTFxU1ZaNGcvZ2QyaWRPYQotSGtfPW9UTVdXOyxHaT04O2ttYUJBNkQwNlQqQUluWG4zO2lfI1c3TGYvPVNTVDMuS001VzcqRXA2bWBlWTwwcmEKLTR1YSEubjU8WnBMKTVZUz1CNXRdT1A6azNZbnVnLzlQZTNQX2k3ImMkPEpbVz1WWS0uMSZEVEFBRCk4aWlnTCNRCi0jaVBVaTIpcyNCTk5aSTVMNWBNRTJYamFHLF4xO2hhXidhWGB0cF9nUlZHMjxnQ0UkcU1AMEwkJ1pCdCUzREouQgotTm1aZk5TJDs9QTNpcjNDKGBuTkZYXUJIXUReJXFLLy9sVnJGVVFuaFklQDBtOz9AUl5WaUtfLmxeYFxHOEVwYHEKLUlcczgsajdXWTFAUWFQTjM6Y04qOEIqW1AsKy1PRXIuK29lUz5EOkltZWluaytPZG1aOzwtWjQpWmZMPVkyT3BuCi1wNUc0UFxyQ1w3ZEdAKkJhS0NDPUAiIWc/LDZxNGZZdHBMRUVDZUhLWmhJIzslNTtsZEpYZUtxQC0kRGE2NUZHZwotbTtXQDJhciYjZ1VCXFBvRTxcNyFGZFdNTy8wTT5OJzJac3A2T1k1Z0wyO0YmJi1+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTExMTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMTE2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTA2IDAgUiAKLS9SZXNvdXJjZXMgMTEyNyAwIFIgCi0vQ29udGVudHMgMTEyNiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExMjUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTExNyAwIG9iagotPDwgCi0vRCBbIDExMTYgMCBSIC9YWVogbnVsbCA4MjMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMTggMCBvYmoKLTw8IAotL0QgWyAxMTE2IDAgUiAvWFlaIG51bGwgNjQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTE5IDAgb2JqCi08PCAKLS9EIFsgMTExNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMjAgMCBvYmoKLTw8IAotL0QgWyAxMTE2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEyMSAwIG9iagotPDwgCi0vRCBbIDExMTYgMCBSIC9YWVogbnVsbCA3MzEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMjIgMCBvYmoKLTw8IAotL0QgWyAxMTE2IDAgUiAvWFlaIG51bGwgNTUwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTIzIDAgb2JqCi08PCAKLS9EIFsgMTExNiAwIFIgL1hZWiBudWxsIDQyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEyNCAwIG9iagotPDwgCi0vRCBbIDExMTYgMCBSIC9YWVogbnVsbCAyMjggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMjUgMCBvYmoKLTw8IAotL1AgMTExNiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDExMTMgMCBSIAotL04gMTEzNCAwIFIgCi0+PiAKLWVuZG9iagotMTEyNiAwIG9iagotPDwgL0xlbmd0aCAyNTY5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxUDxUZlBzSVtyQjQyIiY3WT1scEo2RmxLYGhTajFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLkwhWSk2ZWhPR18KLUxeZW1fUztJT1QqN0hJVjMvcFJmJ1QzRVRuV0FwTWI5IS1KLVdRVmtGUUhsPiRxPDBBUUdcWDdtVkUpW05LRExxCi1hVmtULGd0bUcuRUgmMlBXUi43Ny03VSxWbyM4TDRbNyRzUyJwJltOazkzRWlbTTAkISkhRWRjLjlkV0NOV1ojJwotJ1NiUz46ckE9Ui1wVE9SVURXOFZWLyE1cC9kPmFHQzZhZmhXOEtXRWosaUk5JUhCNFJZOmJBK1k2R0d0ZS8mUVQKLWI0bjRbTlQyL0kqNDlLYiJWIXBFIkVrPWJYQUlQK04yKWQoJ1Q4XVlQYUAqKWFDPV1pQ1EmPnMtPUNYIyZQKUMjCi1MRkJDZTlPOU9hMFFSQFglM29pVzE5NG9YaF4vaU5HaD4pRjo3c20yLSJATS8xOWI3WmcsS1IuOVhZV0VvQVsyNwotZDU1KnMzWHBfXzVXZDRhQ21IbWRVTDwkdDdTc2whLmZsQjs8MCtnYzRNcTk9bGhGXXIjZ21JUjonOzdGVV8kRUkKLV5lbE4kQSJgIUFgVUlfYTc5O2kpYF0mbVBEJFprMlpYZER1OmRHN2dYaltoZEInWlVdKUQsKSRLKyclb19QJ0QpCi0sMEE4ZScuVi90MTFeT2snQjRKVk5RR0I+QFRRdEEmVUZvSCdRUStkX2FxZUsubVg8WjFYTSFPXWZKYDtgJEtaYgotJCFtQCIlRSFSI0EnajcwTS0zXDVkLUFJImotPVtrTi0oYGE3Nj1RYzdrOyhbT3JDOjJsQVAnS0wmbiRBbzpyVycKLTphZmlHbTB1JVs7TG1xb1dASzBdTDsmUC9bLF8/IylwMCpaMEUiXWEwNl5xPyhoO2hSajpEYU1QU1thVVxJSUxECi06QTxcdSUxVCk1KF9BKChMcyFWcixDJk5JaWtvLmgyYytSc21sIXQtXSJcOFhLJm1sTmdVP21lJ1hgLkBrVi8hWQotYU46KVw7WW8yTmswK0ImW1o3ci9qdWdkUi4sLmhbSyNnaDBML19kQTNLNHRzZldGWkdTRjMrVWopIWBiJTVGMXUKLVg1MXUpLHBeTztyN2JFJUdpSnI/IyU9YV5iMi9MUm06ZHJcQVBYdDY4bVBJMyUibFhWMF9PJm1mSmVhQ2k3cC1SCi1TIjpwLWJgcC1dOT8hWjRpRzJJcFk9XmsuLEdQYCdJP2c8W01ATEsycW9OMTo9UGJkVC46OiRLUFM7Mk9hRGBwZwotNWc0bzJPRFlQWVxZKF5AYiM9LCRoXWcrcilCSDd1N0BKNDItQGhhPDBzS0gnP0suXC1tMC9iM0Y2XzBTUW9QQlYKLW1BO1s9JU1ddVxUYWZxVShdb0QrOm45VUtEYXIsMSxFaVZXNXNsVC4kPVc/R3BkImIuIjpZWFdEQSYobkNtTjUrCi1IaidNVzMkVWZLNigoVTgjMDdAYCg7c1U2PjVQcEkvZ05CMkVgTltFXU0qbjcxdU9tJkpqWUVPMUJ1c2YqJkMnUwotJFc/YVYjKSdkXExIKClxVThsalMwMk9WUU9CYF01XTBcJ3FSQTFqNS82V3JyOWdCPFwwOCJtYm8+NzQxSidHcloKLTElYF1pITxLRUwhOC8/STIuJVwsZT4iRFReLztmM1AuQ3VvQzFxIm4pay9oSydNRGhGJWhdSG9MJStMTU9GU3FsCi1FWz91O1pjcGZpaVdmU28qWClgXmlrMW0lOFAqPiNBWV4ic2glUVInTDJ0J0ZVMHE1MU5YQW9DV0dvUW8nPT80cgotZ1tKW3RVKWcrMUtjdTdNWnRsTkVYaWY1SCZuKVhdUTtUPj1UaWckODxTWTJfbmVhPWpmbmdXYFpbQS9FO0lyUEIKLSVsO3MsLlJmMCksSjA1JDsmYyFJUm5XcyVTdU1XblAxOFBCT2w2PEMoYmlRRGIuOCZRIlxQOF5ZZDdPWjRhJUFjCi00LzpKKFhXI3FvIjtCSXU0dUsmTzp0dGpXWCIlX1ojOjMuYm5rNTw4S29qY2gyXm9GY2UwcVc9YG0tTjVdKl1mYAotLm5MVF4ubVYzUVdbITp0YFhPQCVQXUdeRDQ+Ql1wZE1rcltGJjNKUG4iL3JGVCFwL1FoNTc0Zjg7U3NHNyZmbEkKLShLQ0wmSlgwWTohOSNXMTQlI0NfRUEjKSlDcXBEMzpDWVg8MipRLj5YVm85ajhNODpgWUQiK2wuRy0lRWFLWjlcCi1RMVVvRGIlYDt0WVZUPTlQb0poVCZTVE5iTWBmSSIqRlFfMSNpViIvLU83Km4iLUA0KmlMci0pZXVfbEIlJkwzYQotL1lcQFYqK09RIUY/YnBbUmwqJCtdZTJDZUlaLkQ5WHFvW0VYMCE4LzpFXmAvOEIxPlBgUDRwPSpEU2JcSTwkZmoKLUI8VGAzTC83QF4pbzcpJjQxPSEtJmFEcDJBKFhhLStKOT1FJkI1WGtYVmFIVmE7RytdJ01qQCMvZSZYS1wmJ21CCi0zM1pwMS9YUjUyQCFpVjs7KCsyclFxSWMmJE5sLzxwJ1NfXT9uJGUrS28kQm8nZUUzazI5PHQyZEx0QmFLczUvUQotNk0zPDY5I0VaNyFTLCtkZjwsdEMzRW82NGttZk04NkFuZ0s6TWFkaiMyXz09ST1WUnMuTmxfX18wMFVEajQmR1sKLSE1L251K0NDOGQ3VkIqRF42U2p0Pz1KayQvSWdbYGwpXk9hW1RcMjcjW29oRSJDJTE+YipGdE1pNUR1aGJHXFUkCi1NSS1Sb1RwblovIkVeTj5ETm8mTD9yZjI0KSIlX0NdSFBXXi47K1xpZkYobjBHcj1VQnJBciUkTUFNJDlbZnJMTQotXVNrOGBFK18jOFhKYCdyVUNpRVM7L1VbKzxrKWxiPXA+ZT0zLCpOQUFmZ0IwYkp1dTJFSSM8cjJISlkpV3NtPzEKLT0/dTFeVExfTVliOkxmazFKZ21aZWpLLDk+OzZUIy1gRmVYRWJFX2MnNVRMSG1MQTlbZHRQVDMoaS5jOiU7WDhLCi06VjJyU1lPJTEzQm09Jm48NXVJU3A+NWk8J21RZUhUayVCRykvbykyalszK0AxO1gsJ2NqW0RuKzxVfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMTI3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTEyOCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTEwNiAwIFIgCi0vUmVzb3VyY2VzIDExMzYgMCBSIAotL0NvbnRlbnRzIDExMzUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMTM0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTExMjkgMCBvYmoKLTw8IAotL0QgWyAxMTI4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEzMCAwIG9iagotPDwgCi0vRCBbIDExMjggMCBSIC9YWVogbnVsbCA2NjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMzEgMCBvYmoKLTw8IAotL0QgWyAxMTI4IDAgUiAvWFlaIG51bGwgNjA4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTMyIDAgb2JqCi08PCAKLS9EIFsgMTEyOCAwIFIgL1hZWiBudWxsIDQxOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEzMyAwIG9iagotPDwgCi0vRCBbIDExMjggMCBSIC9YWVogbnVsbCA0MTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExMzQgMCBvYmoKLTw8IAotL1AgMTEyOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDExMjUgMCBSIAotL04gMTE0NCAwIFIgCi0+PiAKLWVuZG9iagotMTEzNSAwIG9iagotPDwgL0xlbmd0aCAzMjY0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxUDxUZlBzSVtyQmpoNCg3WT1scEo2RmxLYGhTajFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLkwhWSk2ZWhPR18KLUxeZW1fUztJT1QodGdAMmRFUDkqYEo3RF5pc2dROzQ9cUJYTCcnYDtfSjFBLik5Y1xJIUwzKF4yT2s1MjsvcVdUCi0laTQiaz9GbGI5WmVPcEJyJnVuM2d1TW0nSCNDUV9ILjp0OiJsaiJJMG9SPmYhXTVqJUdpNWIwVG1JS24iZiQ+KQotMmBxMGo/Rmc9Tj9zWSI1aWZLJC8vZTRyMShIbEg7cF8zbisrTi0zdWonWzJRMGhcanNVVFE8YmVGbDt1XnQ+Y0MKLVVSOUVJJScmJ3BuMnNKaGhZPjBRVVs3bV5kUUFhIjUmVlMsLEQ2XS43TSNrTk9PPzZEJFE+RD0idDMoZktIVmJCCi01VDtiOEUsNklCREs5OVRcZmxUNWxEQHMmW00wKCQ1ZnNYKUs1QzY/TjU1TVk0VGxBZydHUTlGXmVsNS0iKmhhQQotJSY0WycmLj08SEQiMy9cQ10taGFVQnApJzpmSlJrMmlOQmswZzxvbmFQSnQyJitwYnJZXUxsWVghXm50a2FyOiQKLSNmYFRzVTdkYTtgLG5bSFdfUCh1Qkc9QDxTTSdKKydGZSZDPFFhLEkpKGtCUkpEaSZxXTRUKmA5Qj4oT1w/aSwxCi0nJUQlVTBkNFtwbDQjRD9McmB1JlhdP1tDQG50VD9BZjFmUzRfN2FCSztCKUhLYGE8WDhdVEBkRnE+J1xoLC5sbQotbFs9K2VnQG8lcFxkJlU5Z0k4aFMtc1w6WDxsLFttM2BEPFRbVFtuIi4+SFlSJU9BXkNwUCg+QyJmbS9XKTVBZGgKLSVxKC8uKUpiPEJAcUlmWiMnM2c2R2MiJy5tdWpwOEdpVERHbmJtPmUtZS9ZIXIhaWdvJk9kMCpXNytPTjpvZFdeCi1ZWCZHYlYyZicsaz9FcT5FKVZPcDNYQlNiImcrJlQzYVArJkVvdVQlNWNRYU9nLy11b19OaFhgNE9GZko7MTI5MAotWS0mSShAanBORTphNlUsKlMoPFA1VmBqK2tnSm0oWzVUJzolYTdidWNnMmwvVEsqTj4wLlRecFhDWWdQI1hhIkYKLVtGYHQybzNqZWdNV1RVcG9vTUVeS0VFKEpuO1QoQlFFNyxzQVJJQ1wyIis9JCUoJ0YqImNSY1tnIzJYSWxFb0FpCi1vUCEvRDBJKFEhKEJiSkwiWUZmVVVsSTZrXVEuJTAlSUZcVVwtZGRiNUMpXTZZOWkyL0kpZSksJ2RLO2QicUBpOgotUSNtb2NsRUYtZj1iJTJVUU1RLjc8YClUbGVWP0lsXGU2RDZFRC0/a0wzKWMlP1EoJGtALClHISZDKSttSzg8PEEKLSNXRk9UZl9udSdvaVdFanAtP1MyVCM2cSo5MkJ1Pkw/OysoZ1pnQUNELixbMiMxVkI1LkVGSlZgLz5zJVFwaDpiCi0yLVlwSSdFZmQxKScjVlg6b2pFXSpRTG9fKVtvLmNUdWlvWUFfKCFWRWFnTGlMKyEqJ0M6aHFtQ2E2Lj0oXiJfbgotbWc1cGE9aiFsTDNwMzB0X2dBIWJjSC9ELjp1RTw0bzlYTUdKXidbV2hBQl87REBHbllWMXRCMipFYW1oSS11cnEKLV8kKypKPiR1JkBDOTwnbTttdVJTQStZNW5JSmchY1QoI0BxI2BBLmRrU2I7UHBmKSFaR0w7RTlYKCRKZ2U2OT1xCi1AR1hpdWZGJUc3byFhIUJLVSdYXE0nbDFgVTNxTWcnU0RLWGl1T2wvTCc9UGReVT1VaEBiUkU5WlFxPE1aTk9edQotSG8hLzg6JD0iSCtLUFtMRGdARC5TLmhSNDkmJlFHNVhGMWpLO01QZU5abENGIzllO0MhcDNIXEVSNmE6OyFUX2sKLSRTYFgqL089Qj1TJG1VXEc5RmBeImk3JS1gZSMtSkxsdTxuXnNSTUwnXFonODspKnMyVW5UQik5VmdRJFlSRnNFCi0zZztzM247OD4yRGxrVms4QWhyZlVrPXBkbVJeIV5sMkpWW0d1ME9GTjEtTm9cRTwjPl9aa3BaVHM4Z1NwX3NTPgotSCVgPXQuKyU2IiljQU0pQ3A0a0NbYzBjPzZiLDZPPF1nRzZTTUZoR0kkZyxeNSE5ZFcrXzNaZU1jQ2daLVNTZDcKLV81ZjFWbD8tMjRgSzFGQU0uVVZUPDUnYCtGUG1qdFw1NnBiZVY8PFZvbixlXUY3OXJjOjFGTSEtTz1hRWJ0O2Y9Ci0nYlghOyQkTExZay1aUV5raF1uNFEnYkpOSldvImklRGVcY0kiPlQsKl1GV0s4UidKOldpYlpDNWYyRyQiSGtKLQotUjAiM1phSD1zbV5vJ21VWXQpdXRxTlU+UDVkZm0oaChbTGlTWkxTSlpnTjpvX2hOLzAqPFtpPFRII14iYiZjQ2UKLUZKVlduITNVSyNHZ0FCbjJGZ1dVJzNXQnJZJl5RTzhtaiEkT005cFZjc2FedVBUQVlHN1l0OG1HYUxyMD4+cUE/Ci0qQHJ0UyRcNSxaVUkzRlhrW0duQ2k0VVpHbD1XaCI+LDRyOW1LZVBNXWQtamldWVZcRlNMdXM3OWUiPSMlQC5QYQotOzdkSltCRz44VmBdXUQxXGtcYTpXZC5CYVI0bl4jRWxzZ24uJih0WCslQnVGPmxnZFwuWzJAalhxcFRNZWwlbDkKLSJTVTRVXFRsNGY/KTshZUgjM1kpQD9iY25MO1M5NlphOy4yQG1OUEVgNzg/KSMzWzJ1UCRFY1cxdVlGSV08OlllCi1eIltaWl5iam1PSVg1cElCV1RkZVNORVBVXD1XZytaUy8uQTUlWHJpJiVdNSNES18hamdUJTpWO09fQlNBdGwpRAotNCQ7WytFQD0sMzI4dU4hQlVxbm8lKD8vbkwpMSxULUo9KFcmYCNMR0ZxVztibS5ZVT1UMmlCaF9AMTsuKzoock4KLTE9Rys1Kj9lPCdNI2VLWj00U2drYkBXZlhQXUo/MC06ITwwIXFnbVNrMydmNyQpOT8jYi1PTkUyYGQ6OVNzaXJpCi1aYXItK0stS2pyLEBgXl1bQi1bQ1IpJktoLF5SdTVlb3JCYjVKPmQsRSojPywwWClcXz5aRz9WSExuU1dZJCE/TgotZT0wRWxjN3VGWWBzMUxHS0IuI1xBbm9TOHEvXidNVjpbXTtbYlZRcyhuRkYkZm9IQ3UjRk1pXSNcRUIuMGhTPFMKLSwvKE1YVldaLSxXX3VLXE9TUEpFQFFzNFRQVzNuRSlccGsqWDA9JlReRGlbXUdvRGZuPnVQRC9EPE1paC5JIWpcCi0lK29NSEYnRW5ZQic3VDc6ZEcqRDptQElSJUtZJz44OmwwX244aVdQLnNTcStMQFBxQUw1UDhza3AsM2Q6PUE3JwotPlYhazY4Q2RWUURtJmEwZmEvKlotcyIjOCosOz46LSI7Ny04XG4xaUQsPikpVUlvXyZgTkgzXT9cJFZNaGBSUmYKLVhhUk5TY3EpMUVjXlZ1XS1oTSQqXCI4LldVKE5dMEZFPldtTEFAPTdLbWhCKTplN002cWsnK0MnK2FALTVVWydDCi1UUUNqLU9ENTo4I1tOT0UxY0MrY3BmdF5NZDJPOHRFKkU/VkNyXHVzMkMxTSJfI0wxaEhOMW9BUVlmdDwvOUswbgotZlNSYT0xZS03KWFxMUJPWD8lU2hOcytsSC8jOzJyMXVyPE89KHU9VldHRjZQRS9bUj41YCwsMU43P1U+IThrUnMKLVVsLEAtSkQxJipdWnVFTmgoPj8tLTQjJig5SWp0PyUqS2Q+TkFNLSkoKz4uPkYoPlZTNWktKkFuNlRSdW1EQVlBCi1Mbjw3bDpwcWcvOmlARCFqPkkwTDxeJXNzaThVc0xNNFklWi5YWmIzI186JmBAXk0lP19MU09mSkhxay4jUmwiRAotbTBjXislO29eQUM+KzUxUz9oL1kjT1w+T0QzZzlbNWVGMUwrZjlpR240b3NkbDlLIUxnQ05qZlVDUjhHYUdjazMKLU45SFFjN2MnISEvaGxEbCR0Kj9SaiIpPF4hV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTEzNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTExMzcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExMDYgMCBSIAotL1Jlc291cmNlcyAxMTQ2IDAgUiAKLS9Db250ZW50cyAxMTQ1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTE0NCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMTM4IDAgb2JqCi08PCAKLS9EIFsgMTEzNyAwIFIgL1hZWiBudWxsIDYyMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTEzOSAwIG9iagotPDwgCi0vRCBbIDExMzcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTQwIDAgb2JqCi08PCAKLS9EIFsgMTEzNyAwIFIgL1hZWiBudWxsIDg0NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE0MSAwIG9iagotPDwgCi0vRCBbIDExMzcgMCBSIC9YWVogbnVsbCA2MDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNDIgMCBvYmoKLTw8IAotL0QgWyAxMTM3IDAgUiAvWFlaIG51bGwgNTA5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTQzIDAgb2JqCi08PCAKLS9EIFsgMTEzNyAwIFIgL1hZWiBudWxsIDUwOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE0NCAwIG9iagotPDwgCi0vUCAxMTM3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTEzNCAwIFIgCi0vTiAxMTUxIDAgUiAKLT4+IAotZW5kb2JqCi0xMTQ1IDAgb2JqCi08PCAvTGVuZ3RoIDM4NjUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFQPFRmUHNJW3RfKytdZjdZPWxwSjZGbEtgaFNqMVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBLR206MV9vVWNnWXB1UGFWQitWLG5uPFFePyYrZ2tVJyFyOilFJkpQYF44bE9HXFwvTAotRCQxJ1lCaGgpIUpyWFEyQD5uQTcjYEQsXFM2NHUzW088O2djKTFZOFlla0x0aTZEUU44QW9IcTJqZlNaO2YmVkMKLT47PmNdTDtRVG1jNiwzOzo3MEhIWEIkYyZQbUxFWixyUVpwXERgO1hqVGBRQkJHVWxoWkJjc2JfMTVjLSMpSC9qCi1rRDpgLGszMztKITYtXmpVUk1gVU5UNnMmMk4vbSU1Vm5Ab1U5SE5iblBKJ3UiOj1cMG1sVV06N1BeITZSKTlWIwotX1w+SFE1JmVUUSkyOkdQbkdPZFpNdSdhYTYrU2xrLjtNaTcqdEA3Py8/dV11QHFRKGk4WltYYStRRl1MbF0zOUQKLTEtOkh0LmdHWFdEUURMY04lRDI6KSdePDdCVy1XY2JJaWBkTWM7JG0tT0ovUjJpTkJpYFlTYVo5T1NLIzZSX0lcCi0lUldxPjB1R1ozZFpxRl5sYjtsJEByK0BAX2IvITgzWSMiREplL0A9WEI+ODJfI1NVJl5NRCMjKV9UQyZBZkYmZQotai43a29XcyV1MSMlPCRZU2pQQWdQOWxvUlJxVyRVOUFpVl5MazdtRC4/ITBzU2dUQVhcZF4zQVguWE49PWZaJmsKLTFzS3I8aCxgJWpaPy8wZzZPO1hBNlc+N2VcLThoUEMpTl4kYjZmNGJNUFlOJ0tmL2dcJ0ZGPDZsQ05ZRTEoLEM0Ci1PP05Ca2JJMllQLkxnc3Aocl1dWzZYS3MjJi1BX3RnaUhLVTJTRy9qPnJgKkk6Z2I1TDI3OjY2ImdEclIpKWBxNQotU0VPNTIvKUUjbCxCMUxYTj9dRTU2O1ooSzpjSEQ/VyloSjNlSyNoZ05IJFlrSz4iUCprPHIwNSJXO1FgSkg0KC0KLSI5WSVUbGZeOWBoNkImJXEhJ1NvUlIxJ0tbPWIsVEBqMVRycFErSCZWL25sODpQNVoqIjtLJ25uO0siNzlLLERECi1MNis6XjBxQzZvJT9XSE0nb2VHQ1lCIi9sPmkkJCs8O10vdEVeT0BpJi5RTipiLHNhO0E5S1o/XStwOFMiXEdnbAotRC4vPlBTLzJDZ19VRlIiJXEqPTNOKzNdMTMzRW43Q14va05tRD48cnJNREZXPHReUj5oW0p0X0xRKDJsTFFzTC4KLV8yUCZvSCZCSkhLX1Y5I0NCJDIjXDdWXSE0bmNmTCUiPltBWiEyWjpEMnIsVmNxclBYLDhKcS49dGoxYiNdTWVaCi08ZS41V1clLzcrViptLzk3WXN1SFVKNjlIQGphJiYlKmhkcD9dRiFcVmFuTjAiK2YkQCVNXig7IXNGP10uTiorMgotUz9AVnAhMUg3XTZxNTktPkZtTjZRYmVtMj5DYWcjIiRnOF5lb1FvVl80ZzNYRmQqPyxnRTBMMiZTMk5IO0BaIVQKLWh1dFY7YDxSYmlqLFgxX0h0bGVYNz4zXkgkb2kyOVc8ImlsPC9RPWVxMCNQMUQuYShCaS0jTUJqRjMvW1pSaSNlCi1FTGwrOTs6KCNpVC0vSW06XDQ9OyYqMGA8ayE3XTlAUSRyOVhJaGsjMkBcJ2c9Jik/OilCMENRN1tcWFhOPSMsPgotWz8vNkUpdXNQbDg3WE07YSRnaFQqJSFAWy0sMFxeMFQ/L1gubW1hXW5KL0xOQFphUD4lSDRHNmI0UlwvTVZLXlYKLS9VMCVnKSZqImNaL11UV0owUW4ka25dO2xVKDhWbyE8UyM8SVNcXkBOR0owSVReWkpwO3UpI0NORy9zI243aXUsCi0mSzpxalMzIldFOkMzamdCRlgqXFtcQGtCLlpoZio6cEFaImFLcWxhPms0Um5YSDxwR1ZASktXLGNSIXEhPl9QcgotXE1hRydZVTZeQFU8K2UqRTFUKUguUlpoK1M+O2cwY3RoUSJpPForXV5yWVpzQ09jXGFpJlczWyErOlhnXmxiPHEKLSdYMENJKSgxaCYvXG8iSCJcJzQpOlwiUl5BMEN1OUBjaTZnOWQjcHVfLWcuYDsrVjgiLVdRam4mMidiZzkuPWw2Ci08KzNHQigjVkFPT2dSIk1UW1haU0g/Jzk/aCojSiZKaElAKmM1SVtcQDE9ZGdsUV4tL1dTQSxVO01hSj1QTC5EOgotaDI9I24jVkE5NSdCVyctRStvZ2krOm5TU1NDLnVwVFVLTyIoc1FkOUxsW0xmNHA+TD88UWFsVydKLzpFSklqLlsKLVFuXE5jUyEtM08kbygpIWhfQ3U2RFFgUkBQYV1kKzpSJztSWVNBYic8OWxgKkQ4TEgiKCxFbWA1Z1pAXiNcQGs8Ci1CXzlUJUldMkJMVCsxSltRKG4tT2szQkAvMHFnSXRgVC9XaE9cZideMjMrdVg9WykhWllUUTNpaT4ldEE2WC9zMwotJVlvXVhSaU06cChSMVlKU145TyErZDJxNCRyX1Zab0pUMWJqMlo1cSEtYVomPGxXWmkhZiFVaG1ePy04IWo7P2gKLTklIjE9V1BKZiNjQUg8TSs8Qz9mV2khI1czbGxZRyxDdTkmKk4+ZDZPUDJ1ZyMmK2s4R0wnK1JpcFtQPltcX0VMCi0rV08jWS5pJ0tfPE0nRVBbU0s6JCRKW1h0IlFZXFkwb21BUiR0ZUhqL1FlOUI8SiosNyVBODRxIyRLPDIoUCNHUAotb1VJa2hwLCxbLiU3TEMnVGROZydSYHFkS29gWWU5WGlvWCFMLldlIk5RdUVCMCdOKGJqKzJpcDl1PzwmNDFwTCEKLTxkQnAsXGpqK05sXjgvRTxqYz1lZiVYVSIwJjhdMGM6cm5qIyEqNjlbJiMnIUVQIktrOUgudTVjLWoxZ1pKPT01Ci1pLypebVRXSUFdS0pqc3EqIW9mUFUnZiJIWCclLVo9N0BWPkwhPi4wam91TEowblR0QWRdLD8sNz8tPDJFdC81KgotZDY5R3VWLkxgKiMybC1zWTVFb1RBVFYkKUY0P2VRMlY7JWNqZV5eLW1jYXFWUFQ7TT84PU45P0REMXNFXm01TnQKLSUjJk8/PUVXKUZjWVk2RDtPMj1ITGkhLVczJWQpJChjJm41JVRaRmInYjFtO2MlSih0JThrLlZNZlQ/IiMxUEdPCi1TWSFHWilZT1ZZOmYrYltvWipNJG5aU1tmMT5rIWxMO29FSUlOaU8vITBpWSZWdCYuZD9RYGJLUT8mIXVuOldRTgotcl9PUjhFKz10NVFsSDFrSTNCNnElKUtBOVFFJyRaTiNKRm1GMFdmcksuYFcrJz8mWDhtKTk0RFx0ITc0R10uIioKLTtObGlORVopIXIxZWdOQCFxdFxoMSwhNig8O2RoXkU1b2NLYlxMVkxDaE9cTU9DRz0vTyRZbT9PLyI+YU87UG1OCi1Hai9gbU41VVBBWl1tXkMwTjRJLTFrZVA7JlY+JG9LUEhLZTxxMCwjaGlAMDxZPDMkXUUjWklPPSZTN1w0SklwQQotKmphO2FkRmpZcz1lT0AxW1V1Vy8/LEh0RDNVNUxDWjY6YCZgO1FtOUIsXDdUOSVaZj5Ia1UzX11DKDdnV25bYEwKLUUoU051LSlyPm5RSG9MU1BIXUNqP1FLWm1mJj9qMltBLzQsRGFXLChGJS9UVmFNKi8kPWpaKE1sMjd1aSQ7PStRCi1AYXAlOUFFRSUsS2tVS1xLJU9YXmZZckxMWCk8WiZMXiQ7dSEpJS8qK0AlPyprMFVvbE5VIW09I3QsMl9SJWJzOwotaFUhMEMmMENzJio6VS05SFFbMjFqK0xrYWp1dCRIImZFSWNpKioxMzg6V3N1JVJBa1s1X29qbGpGTF5LJF1vUFcKLUAsLV0ra1IjN1hpTGoqPVY7MTtYNW1aTyUjc2IuRWk2WyRuLTduPkNuSFg9QGNVOkBDJG9oJnQtRTJaaDArLmFeCi1jb09RYy5uQmRRQkdUVWNEJDJOcUFJXzMyMCNXNjkodGMmaCJWO2c3OmZgPyZPRjUmKTVrJitiLVs/IWVITyclbQotI1tnUjpZYy5wV2BzSWJnSlQuOlBuP3RGImNzZFIjTTMnPmhrXHBqbGBzR1QnUjhEY04wTDVbZVIvaypjOjFyIi0KLUU2QUMycGdATCI7OSVcck8wRFVDSDRIIl0sdDxvdGFiSzUmS1o4Y2NlWklXXmozSVFwW2gnbU4jPmZgZE5Ec1o0Ci1PVDgtdVstZE1ARDZqME84SW1EKTRlVGUoTj82Q1hMQC5PYEJhI2IuQ2pxWS5HLixNMVBRbzNoLl91Wk5ZISw0WQotXV5gWlQjLmdWcGgmTj9vJU07YG5ZUnBYOG1naTNuIVBoT1RXSzs1KzBGaExdJUFcQW45Um1FbFNBZDRHJCk0T0cKLUBQJldPSWk5U1FCYUBFOGIkX0svWktpYWxqPFRqMTBrL21yM1hpKVJNQ2UsRS82Nz9QXDEhTFFnQypzJ1o1dE5ICi1NQClWOSRmSVReNWEyUElMOFc0Slw7bU5CIzpDOzBaREo1IyxmQj5NNl87MkpZZiJQUy0tUSNBQCxzYUFnN1tnXQotNlMmWTpsYTZnIypAcDBcLidgamBuY1hyNihFZnNZI2ZHQWlDRjVMRiVjIj0wUXVSPGRaLWFmODpEZCE0TXBbUVkKLSNLQDJAYGlGbzckJXByT05LRExBcis6aihoL1RWIyRZaWVsOyZiLEhBaloyZWtCcWQ/OWJhRVJYLDByJC1ocjIvCi0nY2NOVlJBPVpoOjVLTjFLUWtoQloqUEVsNWk0Mi5tU3JVOGo1YVRJakY3bCcxYVwzOG9vWVAuSkVTX0wwZkd0KAotOy5OIV9iQSpjMyVdbD5HOyVsYyZpNWgsZyhEVlFUK0NZQn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTE0NiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTExNDcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExMDYgMCBSIAotL1Jlc291cmNlcyAxMTUzIDAgUiAKLS9Db250ZW50cyAxMTUyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTE1MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMTQ4IDAgb2JqCi08PCAKLS9EIFsgMTE0NyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNDkgMCBvYmoKLTw8IAotL0QgWyAxMTQ3IDAgUiAvWFlaIG51bGwgNjQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTUwIDAgb2JqCi08PCAKLS9EIFsgMTE0NyAwIFIgL1hZWiBudWxsIDY3NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE1MSAwIG9iagotPDwgCi0vUCAxMTQ3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTE0NCAwIFIgCi0vTiAxMTU5IDAgUiAKLT4+IAotZW5kb2JqCi0xMTUyIDAgb2JqCi08PCAvTGVuZ3RoIDIyOTQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFQPFRmUHNJW3JELipYLDdZPWxwSjZGbEtgaFNqMVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuTCFZKTZlaE9HXwotTF5lbV9TO0lNKktaJToxT2okI1paNVg3UEFPdT8tOmc9bENgP05yUmJbO2hCOmxVYUhhaDZuWiYwKTBIT2JocGwKLURgJkQrQjBnTDRcbDl0XERgW0VyZ0xOKVolNFpBZkU1NWs+LT1DVlotT28rRztCMUVXNk9rZjFBIWxPPk4/YERmCi1YOjllaTVXYXEiRTlSYWhZY0E4Ny1VWURtJEE4S21iLGMpSlRcX1NjLEc8ST5OJWg0JGVXJUpOaERMN2xmXjpSYAotK1RvOzpgMy5TIW1sVipvYVJfUCo7cVVoLiQlJlZmTENhTmMoZEZecEAwIWpUI2ktQidNVEYndVYvXXQjJjRLTUMKLUdvQDBMbkI8U0ZFQihJZkw7Uk90Jk9fWyFhcVJNT1c3X1dzK1R0KEROM0o2ZjBaPmJPPjhQOihBN2wxZmRERUBKCi1hT0BaVSg8TVZuVyJncD9VXGwrKjhZX2UyJV5Ub1MmLlFOLTY5P2plJE8vUEtka3AySSRtVTtcVCosZ1NuTXBjaAotIVlrZ1IsQyEsUEtGXSRHM2o8VyRfLEBXaWtpRTBcVVZ0Uz4wRlNVKV5eWyZtJ2p1X1IpW0JxQGIwJS5SVm1OQkEKLTk7WTpSOmNfO0UiQVVcakVGUTtWLSJDb04zQ1NSM0VbK24hImUlLiFaXUlFbS9kTms3WjcyR2AzOG1lbEVoWEtXCi0wRU8/UGRtOWMkLk9IPChMYVMnZyEuPTo6YkNVZmBMMDRvWCdPPWVlblU9WlouIUUrKkpOdWFbS0U6TDhQWU9OawotRlokakFpKHQ9IkpQSzdAZ2lVPi5uTm5xYmhpUXNaaTQoXlppTFlNJyNoVmxbTDhtZS0vO2YpaVpIQTRbPUs2WDQKLSI5TlAyK0dqUFshZVZxWzFQKVI5QlZJJHJMLV8yM2pMS1RzcUFadGVuNSg3UkMlMHFHZUoocydpJ0M8NEUxTC4/Ci1JQTpIWSZWQzwlODIyKUIwaC0+X1hWbS9aT09HIjQ8PnVTazxuISImMUxFM1phPEs0bmQmQz42cCVWPnAlJGdHQAotcHVDXGBiOixaOnFQLFRIaiQ7JFFZamw3QyY0K2RPYm5KbkY0Pkp1LTR1OkpDJUMiJjc0Iycpbl9EK2VXP1YnWW0KLVU2ciMqS2plL2lrPSI+QFc9ZiIkb3Q9RV0qciFNQDc3Mj1QUSpGNExuU3FmbDxxU1ovY088dHEqRDlnK1ktPmZ1Ci1WOC5pQGJGPG1fJjJaJHMyV3F0LlRqUFg/MXFZXW1uKDdFcT9xXy08MFFOdSs2JU1sO0pERGBbcCouSC1XJD0idAotS2NDOy03ZC9JRkBSczREWEZeRyhIR2BAUiRLYGNOWGhbM3FfI1JQJytPI2EnUFZWN05uVEhROkwibGBjPC5QXVQKLXMhPFJhLEhAUVchUnE0Mjc6RiVMVVNnIls/OloyZW5TKWFUbkRqamE4MWNfbjhWcmJLVkErViQpLTlcXDNccilVCi1eSSdEJSR0OCdWN1tUTF9NcjV1aStXKUpYXmwnM1k3ITwsMmlLYztDT3FXRz83MSk8dCtHO2BjKkMwWk5CMlQ0KwotS048QyxLMXE3T1RqMCNMJj46Nm0xbCxhIUFrZ0YpNDo0RlBSOHUnLTUiOnBqYDBoU3AkJV1jLCwzJmUzJ2s/UzsKLWNNVF91KHJaMkorRSldc1hkcWpKOSc0YFclWEs6XFQjcjBQJ2ByVlUkJ0VBMTkhSDtGUlNbaTJBSXBwbmkqQCE2Ci0oZlViYTgwYU9KXS4yalEuMFtQTSRJKXQ1JkVlRy5QPmJlKGMqaHJISytcYzE2Jmc0QmRZY0JoQk09UUkvcHRnUAotcEdPQUY7a04jaEpAKiwmIlRyXloiazRIKzhGVj9JIWlTS21aVDpiXWQkJGlbbTFLUlMuMSI5Y2w7OG43QGdIS2UKLTgnLSNoI1FkUCEjNmhmNjEmNWAsOFpYRDYhQUg/Yi0iJV5UUlxgTSZrJSkiOVtdJSVjOUY2bmRXNmgyazRzb1NOCi1TM2JkXkxFa0lVIXUvTzREPmlbUjBPN2NxZUNLPU4jZCM0ST0nLXEzQmhTaSQoOztgTVhKK1ZsPjRqOzwjImQnIwotLFJIRjplUVIxJyxdRmBnLXU9XilTdF9MI2FScGI9TWxkQWMzRVtqTik4ZFMyWklPWVAjMi8yWG0rPEdMYUdGUjgKLSQnYC0oIkxcS11aPFZ0Z00sQmtIRjBoUks/YCRnOSNWKWNvWU9WXCU8R0IhRUFSY0xVNXBpWT1nT2luNltEb1VUCi1aOVpVLyxAVF43RTBuYTdoOElbLSc+ZjkhUHRdNzdQWG89JmZ0KUpyZjVyZShuRTpvblFvWVhhZlRMcEdUMUdjTgotPD0rNFNfPzA1JiZTKlJdJD9AKyZoV3E8Vl9LZEgpMTAwaEhpLy8jQmgobGRPXVhwPFZPOkhtOzZwZGFzI19Ybi0KLSdgc2JFMGdYL0lMQilrVDAncjgvVnFUXEVNamtRWSxbPSk3SjI3REZfRmdgMTdMPVZLUExyYyooNWMzSSQwPnQ+Ci1LbFRdbF9camEtay5oZTorUDdYTjNraU9LSyYuLztUZDU0dD9fYywmT1htS0Imam1yJiRdPDI/UVlgcG1aSl1QcQotSlwqJkxDbjs/SE5KK2VaQVlpdVNQU0I1Q0FPMkRKL1g+QHRQcT5XbzE+ayE+Six+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTExNTMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMTU0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTA2IDAgUiAKLS9SZXNvdXJjZXMgMTE2MSAwIFIgCi0vQ29udGVudHMgMTE2MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExNTkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTE1NSAwIG9iagotPDwgCi0vRCBbIDExNTQgMCBSIC9YWVogbnVsbCA2ODUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNTYgMCBvYmoKLTw8IAotL0QgWyAxMTU0IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE1NyAwIG9iagotPDwgCi0vRCBbIDExNTQgMCBSIC9YWVogbnVsbCA2NzAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNTggMCBvYmoKLTw8IAotL0QgWyAxMTU0IDAgUiAvWFlaIG51bGwgNDQ0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTU5IDAgb2JqCi08PCAKLS9QIDExNTQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMTUxIDAgUiAKLS9OIDExNzAgMCBSIAotPj4gCi1lbmRvYmoKLTExNjAgMCBvYmoKLTw8IC9MZW5ndGggMjcxNiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMVA8VGZQc0lbckRkYGouN1k9bHBKNkZsS2BoU2oxV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3bEtbYSgnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RW5UXmghQkBwdVlTCi0pWmNjcSdGa0kpWjtYJmFSWnAkbiVdSjRnT2tZXS0+VkkoOmIqKkUnNWAvR2QmVykvWTMuUT8lLCMvSF4zM14mTwotOXJpTzpVZVxDLF4vI21iTG5sZiZfQig7XW9RalFVS203XFsvZTF1ZV1TOTY0Vk9FNFRFNEBNZDBOZEkhTj9eTE4KLXJmMFZJbG8wUnUrTGkqbWlmSmE/I2Y5LSIsKV8iRzFDXTBiRTJgKVlfP2JvMCJZNSwlJ2RnMDM6YShYNy81STRzCi06PmkjajdhR2tVbUEwOlUyXiZTITg7OEd1VSpPLmZNSU1bJisybFI2M3RLN2EqKHEvPUpPNFpEIjlNdG8rVT45VgotVyRkR11BPm9gbEsxTnM2N14xW2QtT0ZmSTphUU0uSj5qT21VTmwmYiM9QnAvMFREaVhmSjgvdStQOFNCRXRGJFQKLTdyZj1iKkRmXV0lN0NaYycwTmNXOT0sIS0wN2NQQjZJPWBlbVB0XCNKNmJqLjk3azBcL0FbMlZMblApSC5NKWZYCi1fRDMmN2Ija1UnL1Axa2oobCQsO0FkNDAlNmc+WUc1c1g5QEwmalApMGRvQ3VbUTRqIi1wXi0vSy4sTmowTUZJZQotJ1NjXVNsRzg9b0JTJU9kVGw8O0FNTSIxQlEvNjhrNVdFIldOUU8jOks6cWNIMEdQbnIzWG07USYyOSlSLihHN2sKLWUybjFVOUVSUTpyZiJhcyhPcURoVF1RckhVN2RhO15oYkU9QGsqQzdCaSw+Z25CVCU2T01LMWsiOVptSEouQE48Ci1caFtSQ0k5XCFWbU01QlJUYWpbR2c4cTdCOmFWMV4tN2dwNENjTD8sTis1dS1RZyhOZVprKlhVQCk9cSVcQ3V0PQotXDJCN1hXRSlRZUxPQj9WamFDTXNwJHVnLU1ZPjN1UjE/Z0lvNmxRVWtXbDByPG9xIzYlRXBmUzQiJXFqWVZfP2QKLVE9I1VTKDw1ZlUlZFk2QGBTMlckPCZcQnRaTjgia2xKZkowa3JNcFBOYW9rQEFyakxdSnRsaS88bGROYjptVEpiCi0xTkMqSWdYLFEkV2VrVlI2WjNNa1goKW5FQ2cxLSU2KFBNI0pmI0AwQlteXnE8JDxvNVYsNyFFX00vOEdFK0JmJQotQ1pVXWolImg9czE1cEgqJCRUTnFENGJLcCIwLV8lZ0twSjtfc1gnQjU1WVdQUV8wQXM9WCVDdWZGIUA/aU9DWVUKLSM5Jj0hK3JDZXVdSmN0NGpQaW5UQmppWzEmLWNQIVU7TTlnSmQ7Q1xTK2ooKWcmXTY6NV8nYVRCMyVOUkMhSmFFCi04RXA3Vm1jVnAlU3BPKFtXW3NMbFtacWJ0I0IoVWBLLTUoQ18qQjUoK2hUTTJHP2tcYGxnZkEnRmNYK1ZQLmhvJgotQCM0b0tzK1ktWSo+JGpbNyVnZj1dWWtSKVU/RkI6K0xFJj4jZ0VvSCEoLi9FL1VLM0toImFWTUs1aCpvM143N04KLVFVLV1pSEkiIW9bUEIsMUxwL10/JExNL2lgSWAvK0gnMD1GXUcpJHBsUGRaS0dtLFw9KGtSQU0oZFM5cz49IjRhCi0oXWBeWSpMY1xjSltPNyIzQjNiaiw2VFxjSmwnUytNIVxFZ1dbMlwqYlFcbDQ8bVpKUzBRTFVITDNHXHFfNChtMgotJWljST5FKTcqVVoxZm4pb2BOKCs/RXJMOjpoaVw6X29mSEYuaW9xJCUwXjh0KGo1LiViM0JeR0BEbmlFQlwnWVYKLSJKTSJoXz9QY1JTZiRULC5AQEZdJ1NCNHNbJjg8Iz4+Kk8pTEBpOU5AJTxVMUAoJi1YR1o1KUhQYDEnLENja0puCi1pMFk6dVoiI1EyYkVQQmo8aTg/ZUcqO3U5Izt0PSJWRCg6RmNqVnNpZCk4X1ljbGYqQCowbDkqX1M+PXJwTF9wUAotQ1BPaVk5VV5sPCUldCVcNyorZl0sO1pCX0pcQjV1TT1YSzxicUU3OUJKREw5aFNNcidGVWVtZWJmUF06VSNVZywKLVBWUXMhNCVBR0loXF10JSVWQXVOWkVQMTBubUoyM2MsNmZ0STFxL3NHR1hrKT1UWEBLOlFOJmtRbV88cC5zRyksCi1RaGElLGJaSG5DR0R0TixyL2I2RjEsaTN1Xkp0aWE3W2Q9JD5kRENVOXFaOipWWDg3LjhaMHFKUmRpcTo5U3JkKQotQFZRYiZidERnY0Q4YTUmS0VxWj5CYiZFMyNzO3EpJFloYVZRJz1IbEpkPT48Smh0TSJVYkxkWTg0NkVDTz8lWUIKLVJBLmNZPF9OaCQvalxcaSQrXVtVQUY3YDUlSDRyQyhvZUZMUFcxOSkxJSsjQGVwdUZSXFc2dClWRiU/U0E/Xyk9Ci0xKkgwUidFamFLQkgiY20lJlAiK15EYEBiX2I9a1REaU1FM1dXX2A4Z2xSJzZHIS9kZjRXYV1lR3VwaT0iMCpYTwotVzx0MHMrT1RgR11za1JXLDNVbW1sMjdWUGFbN3JQQ29YYzVaPkhIRyMsYSw6Ol41azMpLC5wQ0JwVVdINjRwTWoKLWZTNC9rJEpcS0cnNDBJclg7TExOcVNXUVFndXBtJmZsak9XTVMrXU5rKD9TU1BFODZXIjtiZHE3Nj5wXCxOWmxvCi08dWY2XzFAb1BzQTE5UCU3ZCozUGhcPG9eQGc0MnBOUS1MOiZMJyUkXyU5J0JkV2Q7X01DaigtOC87Lm1uRHRAKQotaDpvUThhc3RBVFpQTVIwP102XSwwcVkrUSlDJjN0UDhMMVJhI285U0VmL25uZlBeOGc8Rz9hYlonJ0djV15DJiMKLWVQS2RbYTk7U15gKDo3XSxwXWdnUzNiSCIjNz87OSdcJytJUk4/UTlBYXEldC11VE9aVS9HMmNnRm05WnFQMkxQCi1PTyUodVp0YCUuMFFiOU0xOCojVTZTdXApWEgkbls6aEZcZkFYbzwvYGNqOURbQGNPbz4mMCsqXykjLilaXzIzbAotJSJ0ZCQ0cExRcD0qJkFzMCQ0NjY3UC01TDQqaEAwZUFiTzhkW1ZJWFtfQHJZMklbUy9KY1U8aCJtb20nUC1GJ2kKLUFHQl5GVkIwTzI2QVhgaVhvNl43UDFjJkxZKGU3Il1GQl5ML3FZOj87bW9rX0dML143IW0xazAvTWJFUDlqQW1LCi1Mci1PTnBmQFZMMEdJKFwlTTZOSUxWTygoVCIjUTs8bDE4YFkhTCxpI0gwLk0wZS8uI21eUCgmOSoyalNZXF4pXgotZlpPOUMhV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTE2MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTExNjIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExMDYgMCBSIAotL1Jlc291cmNlcyAxMTcyIDAgUiAKLS9Db250ZW50cyAxMTcxIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTE3MCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMTYzIDAgb2JqCi08PCAKLS9EIFsgMTE2MiAwIFIgL1hZWiBudWxsIDg1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE2NCAwIG9iagotPDwgCi0vRCBbIDExNjIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTY1IDAgb2JqCi08PCAKLS9EIFsgMTE2MiAwIFIgL1hZWiBudWxsIDgyOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE2NiAwIG9iagotPDwgCi0vRCBbIDExNjIgMCBSIC9YWVogbnVsbCA1OTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNjcgMCBvYmoKLTw8IAotL0QgWyAxMTYyIDAgUiAvWFlaIG51bGwgMzQ5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTY4IDAgb2JqCi08PCAKLS9EIFsgMTE2MiAwIFIgL1hZWiBudWxsIDI4NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE2OSAwIG9iagotPDwgCi0vRCBbIDExNjIgMCBSIC9YWVogbnVsbCAyODYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNzAgMCBvYmoKLTw8IAotL1AgMTE2MiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDExNTkgMCBSIAotL04gMTE3OCAwIFIgCi0+PiAKLWVuZG9iagotMTE3MSAwIG9iagotPDwgL0xlbmd0aCAyMTYwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxUDxUZlBzSVtyRUZCJzA3WT1scEo2RmxLYGhTajFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLkwhWSk2ZWhPR18KLUxeZW1fUztJT1QqN0hJVilONyx0OzJXPHMnYls8ZTpkUWtvJSFCX2RYUEBvaSkyb24nL0tQaUhpc11EUE9nKlZYCi0qTGArTlZXL1FDIWNDJFIvOjhwaC1jNjhdJTdeS1lcIVBHWTBYITVHUkw8T2hMKEZkPj5NQWhKQ2YiJGgiVHAvPAotMHNGJE5JLWBAbjk8TDQsIil1RTBYLnRkMCQnIXRZZzhwNmk9UkojK04sMl0pJVYjZSEjbkY0cmNOdVdVIkM7WCkKLW40VkYuMEw5WVUvckc2WT81Ql5zK3RVR1s6YHJSWSUnSXRCMkBiOl9oRGUlLkU1TjooZCInRCZgYnJGLTNDMldCCi0sLTI2K1MyaTBcSzZaZj5OLkdxNjNKQVdEREEzQC0qJlIhbDo9SF1hJF0qR08yRjljPWRQXG09QltXMCQ7QjFSaQotTCs9STojLlE5QUpxa2chWVtrJjdfLycpZyMoYExWUlk3R0xoRC5dQk9OS1tUNlxQZlUrbkBtJyktMldgQ0hdSzkKLUdodCVWJ3U3Wz0iWDJVWC5LckRCYT5dLVMnYVA/WjlOOycsPVM+R3BfcUkiSixWXUUma1dnIz5fMWRHSzQ0WVRqCi0oTDMjYSUvTS1OWkQ4PlAjZEElXyMqN2dCaywoXy8kN2dmUlcsI18hT1ZsJVUtYTpjISZCJlpKJktNO3A9QCNFdAotT3RtRDloJVpsYzk9XEk1Q3BkM0tyQmpHOSZabyY2JUNML3VFJSlTNzpfRjBwYT9VRD1GX3FDKSM9Q0BrPzNYSS8KLUxMVD88YE8yIkIpJj9YbU5gRzJOKU1PSDxDUlxRaF5lIV9RSCM/ITlMS1huOGciWitpWGZMYScpS3FeKiQ3KUd0Ci0uZykkTjBUTUY+ak1yYzohOHRnYzZTLyVTO0dKN15NLVplVEJIMTY7bEJjZks9MFBMS05GTjdjI01qcXUlbi5kaAotOnVPL3IpZlkiJ0tFSVYqMz1JLSdjODYkIU9ROExIWlNeXV8lJjdzLWJPUmNzaiUhT3AyKHFQNjhzMUlpVTxCJVAKLUgzRkA0Z0xlQjZaUDU2VDJSREUzNSYyXDdmLSkqM0JHblIzZSdVcnFbQW1nQ15xSHUwZ11TWUVqa2I0OSUqTEdkCi0mT2N1LWBqIWg5WzE5aVtibT9ldTM3OU84VGtyVjhZa1RMRykkWydJZStOUk5oZzhxU0Nnc11FX2VUTWQvWDhjJgotK0AkUSxGL1ZYbyxUSik4VzpMJUBgJ0BrYFBfUyxdKjxWW0IlJ1JJc15kOydBIiplbEAkWCJKbmAobi5vaSxUPGYKLTxJcF1CWFMqPk8udDFtSnFoP3I5cjY5YiRFWSZdcVIpZC9FP0ZuNCxjKyNTW0VgTzFfSFQqMjhGO1ZWSFM7Wjs1Ci1SS05vTzNaZDU3cHNESGtFUj1bPyMvS0xBOmhsa2JpLipiXHA8S0QsXDkhMjlKPyc/WkRNT2FVZktsWD1iLWw5RwotKTNAL2w5LWdYYTVjKURzYmJQbjtWZWtjZi4iNmBiNDFAayYhWjRCLlloRU9FZ09pP0UlNnRibDxYdGlKT2NTbDkKLTdzNUgmKWVwQzFZU1xob0tQRnI8Yl5OWm4yLVpWbVo/Rl9JTEpdVEpRKiteQW48Ql1kQFlJMmZXTWMnJVBuNm5BCi0rSkRdNUZdJkpgRiE+LlYvUW9hR2ZYVlYuOFFhLlsmZDoyRSllTjskUkxSKVQwI3JmLU5edHIxImp1RWpgXTFpMgotLFtiIitAUWsiaHFPPF5bW1ZkP0ZNJUtLK0B0RExlL2kqTmcxJE9lRzwkXi4wJVA6b2U4V3FSTVo4KVRGaSU+MksKLWgkdGhGMjUmRyExOiU8JCEqN1ZgQV5qWyI7L2VjLWdVJ1FWJTtLUU1KRVYrO2dWQChiaWJvb1otcTBEcW5YUUQjCi1eNk1UODo0bnBWJU00NCwnIkpZSWpCT0AlS1dcKXRgLUJtQSohNl1wX0ZHY0JgdHNAUjVEMEAwXlc+dVNLYzU5PAotTi5IZEIjI2o3cFFTWVslQjdZMzshWUhQXFRMMUQuOD9CWGFcUCFtMmBNTVc8KWotUyRvRk5scUtrWkQyMzdLO04KLU9Hajk6JzxpJE0hNlEtRys+Izk1WixmOjlLKVZAYz1cQGNPXyZbN2hHL0wvOFBPPVxSSmNuZ2ZVT1hjdGk2Vy9gCi0tNW9jdCZQZkVmXjpDM1dRPy5ZLkRsU0tpXCU5YEIzIWNgQyMnQHQ0T2xRbGhDYis2S1h0SlpIZ0ErXzBFQmdbZgotcUs6RnViWVBBUm0jMlI+bV9Sb24pSXBSLj1URiRAVGtRMzNhc0JpI00uR0Y4LTRuJV1AWk9zaGM8Uj5ZNnJbNXMKLVQ3U2lzRFIkYSo5aFwzRCUzYVhAIWkucSFfWXM6VmlTZSluSkRHQG5dcS9wQU1OdXExXj4yKW9dUGhvPjs7OnFiCi0jU0M4PVwxVFUhNSNWWy5AZElJK1FYQ0ExVF4tZVE2WDtCRGNMYUFzL2QiV01+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTExNzIgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMTczIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTA2IDAgUiAKLS9SZXNvdXJjZXMgMTE4MCAwIFIgCi0vQ29udGVudHMgMTE3OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExNzggMCBSIF0gCi0+PiAKLWVuZG9iagotMTE3NCAwIG9iagotPDwgCi0vRCBbIDExNzMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTc1IDAgb2JqCi08PCAKLS9EIFsgMTE3MyAwIFIgL1hZWiBudWxsIDY2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE3NiAwIG9iagotPDwgCi0vRCBbIDExNzMgMCBSIC9YWVogbnVsbCA2ODkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExNzcgMCBvYmoKLTw8IAotL0QgWyAxMTczIDAgUiAvWFlaIG51bGwgNDA5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTc4IDAgb2JqCi08PCAKLS9QIDExNzMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMTcwIDAgUiAKLS9OIDExODYgMCBSIAotPj4gCi1lbmRvYmoKLTExNzkgMCBvYmoKLTw8IC9MZW5ndGggMjg3NCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMVA8VGZQc0lbckYoIzkyN1k9bHBKNkZsS2BoU2oxV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmFEOFVeTygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RW5UXmghQkBwdVlTCi0pWmNjcSdGa0kpWjtYJmFSWnAkbiVdR0IsKVkwXEs9dGdhJCMob0wjZTQ9Tz4qLyJGQSFQJDlyMEIuPSpQSk0zNwotQmZAJW9cOjcjSWcwPj5QYCNoNDJOJ0w7cVNXJzlGSlxUcDIiOVhiLjNZJXBLIzY+PEVXN1gtYCNeQk9jTC88YykKLVJaJ1VBYXVROzldPF0+NEpYZHFTJVNuND9tKSxOWUIpK1dROU46bHA6cF9xLDRbVFFXMFgxXWZgXVFZIVAyTlVFCi1NX0pVblUqcj5ATU0pIztOIywlLT5GTHMsL3FAPUgsMD86UlMwcFwoSEJqTUM2aF80SjpvbDpiJUR0OyNmOGJLLgotNWZPNS0odEs2azBBK0FjN2AzPSpySmZoazVXXlxvJSc5Rm1jViIwUTUoWkU0Mk07L19vXm1lTVdqISREVUlhTioKLWBscWduIy1RLmpATjd1aVU9PlY+QDclOmVOYCI9WidGaktcOGU7TCE6dShbT29PUFppTjo1RWUxbFsscTVWWUtHCi1NbkQmPl9eTlNCIlg8MC8scGhNY0BNc3BHVUE3UUFKT2pmITwuUlNKJ01TKUllTV4rQ2xoMzBcZEE2N2klXnQvdAotL0hjLG9XWzglJzg3aWdwTzZjZmQjMnU0T19vZzxdJCIyRCM5N1wuWE9ZV1U6L1BCUS8xSGNLRWJrT1xBMj5AQlkKLUpZNkVvNj9dJEEyaVkxclprKklFOiVrbGROWzA1OkwnaWBRKGEvQlJUJzNiJ1gzV2ppZkgoQVQ0T0RJOXBjXF1ZCi1wOiovRkdbMVUoLkIpMjpkMVlCLTJvW2QuYzZjPlJHWzMlWkNQKFk/a0FaVVonRyVRIWZVaDZZYGhBdTUzVyVNQQotOTdmaU1VS25kM3ImSkoxb007QXQwU1pDMyYlRzhiKyg+TT9MNVE4Rj5gXW1yOEZrOHRmcDZjUjJxaEIhNmxaQDQKLS9VS3FBZjEiNTVDcjt1cCddKGQ5NVdrJWRXJ0VBJio2P2Q3TlkuUHJyU0pBOEolPUk+SzlfTCwsSEErK2NKK1gjCi0pOUVfQVY1YDVEJUMmP1xoL0xAcDBJKF0/cTw+X1dCVDMzKy0mZGdkMFYiWE8uUGQ5V0VfRHRFYjslQyZsRj0jXwotK1xiSlpFZG1mPTEjLE9sTSlKVWtSKTFickVMNSZOb3VcRTwyQGhaUTVVI1xQIkxCJTJudGYwZCIra1NhOSpvJk0KLWpYZDhNRVJAPTw4LysvO2BwYUJLLnJhbyYhWyktMUkpOzduSjBEVi01SThsKD00PSlrWThlT3BRWXAiLitDVEZlCi1FLyheLzonNEpbPUNVY05lJC02P10mQGxeIkcpRkZTMFQ2Y2lKRUc9YzY3Tj5GTmpzRyJBIW9SPzFeQSNnbkdINAotbXJORUtyUCptPihrWV8jJVo6QWkoREEnVyFNRD5jJD0wNyFpLEhlMFRJOi8oQkslIU0jLU5nUEAxQHIzTkMiYioKLSRcP0l0P21mK20nUVRCQ1UmOTduMFs7O2c9Qk1pRVluaUM+bDVpSVZHbWJsKSc4QSFdPix1YyNbaXVlJEhuYzMpCi1LJFtcZyshXjRiLSI4LCQhNkhRJihoU3RMLHQoLlg8PihvSEYrV3FhLml1VVhVUGN1NDYwPy8jJ2MocDArQSxIUgotOzVIYTswXic/QD40dFkzVGtnU2xhckVkTUVYYTI/OzVnR1lfU00vTjZkXmNbX043JW87PVJIZUtlPmZaUC4qPTAKLUtRb0IkanJNX0tTSTs1K2U7PyU6MjliPFkxb0AmJDlwJD1qXlFPJzhqJnU3Z0M1LEYkV0hCI3VnZ1pXPitNSzs3Ci0/alt1Yj1VakoxSCooVy8xWmpMMFJXRElqNURZb2xNPj0vRSQoOlRjPV5PSSg+T04jdEAkUUlTaFE5LmlHOXEnOwotNkEvci9FMUxGVzFhUE8uKDRuU1A/QCdhQC8/US1EV09yYTppJD0ob2VYT1ZBZz0wOWgtdTcnMiVnKyhrM0wuND0KLUdBN2BfNTApJUtPJGlZVU5Ob1Vvbm5RXUIucCJyWDFvKytFXENCZjNsOltDSk1oV15oJ1AwNzlRL1J1cjc8bC0sCi1qY3M+OmJycVV1cD5KKWhDTlcwOTpsP2xcbVpNO11KI0VUPyhvM3VmJDNFbzEtI1Ara2F1SCxzOkpiTGNWZyw9dQotLjdYJjxyP2x0amA3NVxZZzhTYTlSZ3UtSjNbJicyKGRsTlE1JSw9LUwvQEM5X2gmWGVNOnAqNVcuYXAjZzE9cSkKLVsySzcmQS9aVG8idSpEPFdcU1tmRT9KZjQ5QE4xQDdBL2ZxUFwlQGZkVFUtQltIZU5aJGJyR21wNWJqT1hGTzBSCi0+ISNPSTYqPFBjcjlabT9bOE0kQV4/QVE1NkQsZVFrPStPS2FjW11PbmltOWckbjdkKTZLM3I2Z1Y0QjQ8Uyw+WwotJ1BjXS5UPTh0I2hBSmVjLHJEUT8oW2I8Lzk+TTQlPE1gby5bL1FiTGRyczFrK01dckYoYC8kYTZkWSw+QGNfLF8KLVY0LDVLOllqPDtNUD1ncWQtPnFeb3QjLyRUSExbJmkzKm0kM2NQRVIxNzMxaVh0TTkoWmNTVTRUQkFLQ2lqb203Ci1Vb2RkclM3UjVCSHQlWW87SFE/L0U+MkIqYWdQKjYrVy90QE1pOV8yYEpOWTlfJVI+WylDPXNIYXNJLTZCN2BiRQotM2VWaDRTPSpOJidWUjxvLiRRKkgxa28hMiU0U1kuIzgpS2JjLkdzKCRkUDwrNWJSbGhFODo5XUtkT1tEVkoyN0AKLWZHVUZDcSZsUlYrJVctJSRxUlpsIyFndFQsa0IpSlBpdSUtK2tIPFNLUCYzPyhiNWMoUzJORFIwO111dU1GW0BvCi1gcmZOZWhealczIyNWK01nVl5FUlpCLUtlT0ItdSJFamNoWUMpQjsiKjMwYU1JalNqI2AvMDtzU3Q7Ym5IPWArYgotNCZAcnBrXHJnXE5tbT4oV29KTj5rVENoUjI6N0EsO2F1c1ciaTJLP0UtUV9UNkpNRUBENCZQLWRrISxBSmQrSj4KLTpsOCJrYmFQMzFUTScoPC08KmIxQz1sJjsqLEpCPWF0OSpWZC9qQ0luJ3NSOz1LVDA1TEM3YGFLLSh1NVs/ZGJHCi03bCw+K15hcCE9WVdYaHFySlxRXzJuO1UlcG0ySmArMWRXM2xDQm8xRlVqRFdjZT1IaGxFKCslOjpGQFcvUzhhZwotRV4uZy5VdHQ6aUhaLGw7UmA7bVgsbypoXDlwVWNHPjIxZ0IuPFI9RkJuXEBrb0lbZ08nYCxRL2dPPSpmQjAlS1gKLWBULEo6TyU0Vkg6W1lQPCRDKSV1RitFPF1KXyskNzYkdGN1cWByQUBuYVBxOjZkRkpqNjBRISk/ZiZNay8tPFVYCi1IJFpZaV5kK1tHV2FCLFY0VyZKOmE6SHUvWT5mKCgpJCd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTExODAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMTgxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTA2IDAgUiAKLS9SZXNvdXJjZXMgMTE4OCAwIFIgCi0vQ29udGVudHMgMTE4NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExODYgMCBSIF0gCi0+PiAKLWVuZG9iagotMTE4MiAwIG9iagotPDwgCi0vRCBbIDExODEgMCBSIC9YWVogbnVsbCA3MTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExODMgMCBvYmoKLTw8IAotL0QgWyAxMTgxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE4NCAwIG9iagotPDwgCi0vRCBbIDExODEgMCBSIC9YWVogbnVsbCA2MzIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExODUgMCBvYmoKLTw8IAotL0QgWyAxMTgxIDAgUiAvWFlaIG51bGwgNDMzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTg2IDAgb2JqCi08PCAKLS9QIDExODEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMTc4IDAgUiAKLS9OIDExOTIgMCBSIAotPj4gCi1lbmRvYmoKLTExODcgMCBvYmoKLTw8IC9MZW5ndGggNDM0NyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslPUZGNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhSnJGTjFjdE1SPCYqJCRXMmtkJGpqdElTWyMrWCw7YCkoVjRSKkxIWE9RXmg7bTw4cyRQNU90OQotPlNJSlJqcypeLDg5bGZwN3M/QStbZTtLUzw5Q2xUJXNQYlNdNDZyOjRVXjowYjRFOyI9T2QsW0MsZCtdIl0qblIKLW1ROF90IXMtJz00NCpYYE8pWGFyL2w3M0hyayQnZWF1Yk9OWmFmV3EmOUw+K19KZiIkMkYtOlI7XSpEazwqSChkCi1uKU9RWGBaazMzMFQ+JTJkUS5sPCxdYFRLQy5qO2YidDMoZktIVmJCNWhONlVZXF4ubk0iOTJjXGNJPWhqIUovSQotW00wKCI4OSxSTyIqZF1cIlRcVmdTcUkzPWNuXjdWKHReTyZBIisrSSVBU0krNE8tbSRsblprPTBeOlNZOUdsUEYKLUt1IWFTJ1NeJis6YHVUVDRSK3RmPC1VWWVOaGA/XlghXjgmcG9IQyFidFREbUBxXCtgNC1SYkgnU1tkSDpibXRTCi1UW0diLWlDTE8wI3RdTDFfaFNOJ3JAaXQpLCVxWiNGWUxscVp1YWFsU3UkTTlGJC1LSCE3N0ZjIXNtTzs7cl1fIwotNDQsbGopVCFlOGItc0NjWD1QKGQ7cmB0ZjE2JzJFYixzOT5ZaUlTSyw5NjVaTmQlX0UxJ09AZjZPOWZOVXM6aVYKLVVGPiUzPGN0Tl9KXytCaz8hZ1xAOTlTOjhYdVstVVU7PGRHbDZGYjtKZVdzNVhRKVFCO282Kys+UVpERDBbTVBPCi0wanEodEE+KEclO01sb2JMOScrOy9rYUtKQFlKNVY1YSciMmk8Mmg6JVtERTomMT1xTSpsUW0kJUVGZWNhPmhtNAotTi5cM0YmLltfcF4oOl1TclAoQFFLOV5NKWdqImZxOl5sXThfbD4qOVJUO0ImPFM1QCZAVWt1PT9lQChJX0FoMCIKLVh0KWZhLENYRXIiPCFNPlFJNWQ8UWBdZz1ULHRxMm8+XHRbTnFcaCtXYz9NLT1nPHFfRThlRDxLMC1VZ048PSR0Ci0ybXA4KSJiV1tVOj48ODQ8ZSpGWVdzWzpiWT9NRGVudDA6I05sc00pMnNWTURkLk51IidOLXMqMjRaMjtbJitcNwotZF10UipiR2hHJGVJO1ZMamRgRVBHJ0pqOVczQnFUM1o4cy5BMltAPTlwQjNUITZAImQmLWgoWDZPVHFQVW9pK0UKLTdkXywySEpec3AzTldNSl5uTGkxa1owJz0zQGdzKCo3J04mPjM3UEMucUovTyIqLF9NOXUtLy9kaT46Qk1lRVZTCi09aTMoSkNCPD9jMWh0OUxIXz1oSyVcR2FSSE5aMGFSaExhL01iMUUkam5cZVE8OSFzIT5MbjMtJkduaUFCK043WwotMUJ0bHJXWztpOVJhWiJpOit1NiE1TE9raz4rZlNMaS48NDw9I2dOOmI/OFBaXy9IRlsuZHU5Q1xTZ2E7PWZZcnEKLUcqTSYuPHErcmwiQ20scWM4JjxZK01hcS4tOkRwK0MxMC82Xm1dbEU8IVdPXUFrckVsMS1Scy5BJjF0cDUpJXFsCi1UOUIqWixdRms1RUpeIiUmRXQxaENqL0dPYXA5S3RqU2tlM3JbVnVSWFRbaS9cbT5xOiUkOSpROFhWSUU5cWckbgotS1tyMVZVMDArZC5MZGczZWtXO1VnYDZMPEUqaExnRUQwPDwjVVFgRCI5SW9GLVBLXSQnVTdSSDVfKG91XF02X1AKLS88O0lyPFFHQyZsNU5yJFlGUT51P1IiUFUybDxvWVFVaHVjIWk/Lz9WX24iOStGa1NoNWgqUE1UT1VmTDBKcCFQCi0iWldFWzRKKE8qQ2RAZlxZYmhoZVBPaCtUJ001PlRCIlwiOic2KzdOXmcpPThFQV5XbUFOV2QzPDxKKykhTSZfNgotK2RiZWdZKkopYFJvRFJYYWY0WiJUQDBBQDlvYmVNSD1dKHQjWmhHLlY3TyZPLFRJUUhLTmxmOFFXKi9xOmFhSy0KLVQ5SnJHTEohVWVWJEtoLjloJCZMZzNHW0FNQFpHKEMxUDVIVCkraUc1ImBXUHBuYklfLDgzJSpILUpBVFxDS2pdCi09OT5FdUBBR2w8PDpOJkpKTmZUXV1pX0RVbDVFI0RIJl8mLmAzLHE1KVxxKjkucz5CVzJvbmdkamFBaDckWCdGRQotYFsiRGQsL1EhSmVzKiRDRXFnUEYtOEMoLydyO0lOb2Q6I0U+QGFuXCM0IilPL0U5VSRWViV1RzdjQTIoYC1tXjgKLVVzPmhLQzJBZjpEUFU6RCpSIy5tJksrZWkiWW5ebjVMZ3NSUGJQVGIhUipLVzBbZV51Z1dNPjppWTBtRiM0UHMoCi1SNTsqQVsyZFAsJSpiRyojMCxCbWAjSic+NiNwYiZUXC9IMT1VNTlDUjx1XDw2J1U4MyYuTDxucV4rJzsha21xRAotSjhhJ3EjKFlHNT9aOXE2NidSKUBHXXMhbktecmJxKTdbS19iN0MiPS9WT1IyaD9INmsnMWNVIk1MaFdcYDdSaWUKLSg5QSUsRU1hKyEydT0/TGVDSi5gVkR1TigvPTswRGM0MDopWUpqby1bMVFrMVYvaERpXkEtK01QbmJmdT9bYDlyCi0hN1pvcS82ZUZIKSY9UFI5LFttO1xYOVcjQS07blYpV2FZaFFHSWBNYz9cIkFqZkNoN0VCXEtpZyV1W0NTQj5ZQwotTmMyYztCL3NSP3FnbzZSSkJfVishOVA6PFRKRk5KYTlBVjZqVUYpPm85TiolbCZRJnU9RyltSCpmTitaPC9nIjUKLUFkZ0UuIzZuU3I2S1Y3ZFdIRykkMVNFbk1WLzlrSTlSbyxWR2NPa1hPRHVGZSg4WVBmbCInLUQ8WGxFSkVga0h0Ci02ZldUM0pUY0xuY29UJmRBYC5GNls9NS4kSFVDUEREOGlLXmVrUnRdJWxvY2I5TGxRdU8hQXIpJkVKR2slV19xaQotXkdvYUJPZHI4XlouWVxhXFtzV1dTODNcYlFGIkxCKFBIYCpoMzBmMWQsNFshKExZLElfKSVaJGk7PEMpRU5VSUgKLW9XSzpscGdiPV1iT00uLzU0UlViIzcxQ2NTWk1PLkVzQSZRPC0mTEFSNVFzMCM1UTtCIidkamE5cj5rbGc/VjZhCi0vQmNFNERNW0xUI0BtMGIkYGEjcDctUnVFVF8rYzdZSUlZIWVAZktQQUgka0BdJm4mPSo2M1NDRFQxOWlOaEhLSQotYmcoaW1sdCpTMXFCSl09cmFIamNYUmknKWl1IVB1T0kyWXEnLGNsOiZIb2RrU3BrM2k1Q0I6JGoyNTthP2Y5I1cKLUlQU21Aaio3RmtJYz5mLj1bIjRCLzU0NiZrcyRLYDdHRypBUz5eIV0oKiFOKmtLSlA5RGkxY2QzNV8yc2FiKUs1Ci1MamJuWV9qYSRAaSJlaUNGLmltZSxWWSxwNTI0dXJKUDVJbUNYSSYwTmA3Y2hWWGZLWmhDUDExJURmbSNlcCk2bwotPlJvTUohSzloQy0pXjZzWlsoOmdfOXInQyI2VD00VyIpIk06V2YxJGw+Ky88cDNSVjJCYEQuPXJaQU4pIXRKNTQKLV1GO18majlDNE5DaVZQPlMxX21TbU9VT106V3RjI2c7OVVxY0E3KF9tY282KU0jc0drZFxDP2ssRzgpQTM3am1rCi0iOlNjQ0NiUjtWQGNCaztjQiNKc2xwQj83L0MvOUIiS29iallFWmwob2BcK0VNQ3ModUUoS0lwSTBWQGxeQCkzQAotOlowUTwvaUhMOCMjTCswaylUWWdvYEw4cyQ4PTtJOm9NailRaVhDSSRMaiNWYmMzLUdTR1dvN2NZTzxAWUlxaTYKLUxAaDRlYG9PTjovcEAhOTM1YWdzLlBLKkxDWzI/WmFVQ3RaMF8hNlsvLT89bFdcNl1oJT4qanM6dTtoIz1wRktZCi0zXDcnY085akhUTCdCOmJnWiomRV9zWnJPa1V0KGsrUUldKmFVSClGQkVlUU0nUG9zUSIoXjZtNzFeWFYnWi1PUQotI240dC9WRHV0Ll9kWCxsLDFSKyw3YGxpYCNFYHQ5OVhHITdvXl0qWTxoXio9RGIwQiY2M1k4OS48MUchJihcVTsKLTxmaUdXZ1AvMjptWj8ncCZLIj1IKEBJOidPZ2IiJEJebV4wX2U3ZCMwLD5dWyUpXCtdKSJHcnNaJicvbDhLMllFCi0jO0VVXU9dS0xXa28nWWAnaGk8LUVFYUZtQWlbJnEjPj1DZjZfTm87ZEtbU18qY1habE4rT3RFbWhwLTwoISM4VAotWHAjcDBJMjEwOCU1SkAyRVk/MyxYISoraidXREIuRVs7KlQkSFkiTmsiT2UmWXVcRipLLHArWidCNzxxY1guT1YKLT9PP2lJYjQ5TWpCUjQ9OiEhWjsoPVhtMjhiVidGbEVbKWVRK1JJW3JsWVMkTzF1UC4lbj9TPzAmczRaR148QklmCi1qZUMqXyJjRm1pIXE3RFwwNWtbTjtVJFdscD9nN0BwPCQtQS9IWGtYN2tMTShrIU5oU1g3JU9ETz5gOEMvNVtoagotOnE3cURwdChdLDU7SVdhI25HOG4pJU9PL182SFxWQFxGcytdXGoxZCtSWF5yOlY/KFQhLSZXbyI+Xks2bys7a2IKLWgoYHN1MSFlRmswQWVOUEdxc3V1YEgqWkhFP1FXOzE8bi9XYlxSIypVN2osMTsjQS5YTUdmaV5FQ1JzLEFncVEhCi1nbDYhXWQ3QyhyJkMrWyUrWG1AKUVwZypMLmo2XF0icGd0P1hUTFNYMWJ1PkUwNVI8cFh1UkJEZ25hQW5naGc2cQotOys8Yj1ONlE2NC5NJClQV19VZ2BgdGhCWDRxXF83WmVHO19UYURAPk1HMHRgJmQnZUo9JENQLSxFbV41bypJQSkKLWFYIz5oISlKPiNtRHElOiZOTUMhXk41OSoxK1BFNDtfaUZKPVkmaHU7ciZgTl4rJ19wZiE1U0tGPE4pclBzVUVnCi0yWHI+VUVSKkhcLDxzPUdoW0xfI09pSz1yLi9zdGtiYGttOTFlLlE1YSFcNWwsPmFAYUNjKS10SDlWcEctcks9bAotLGNvL1xSKz8yQDhga1diWSpeQCQpRExDa15DMFcmUGRcSj5ONlEwXDtRUlAzJlElTDNkUypFcS9NM1loOixLXXIKLXJbZlpYLlEjN0Fjbkw9SHMjU1paZSEuNzNuVHNkOjFjXD4mMCguc3ROK2JqWzUzT2A6XkM4aFI8PTlcJCUtJy9JCi1ua0BiMGUvcT8wPmpqNXRydE03XC9TUm9KNlBJPl5IXTdQaDpIQ0JqOjs3MkYiZzdMU1lqWUxpWCZIO1heRDAkJgotI2JQKDstV0l0SmxwUzA7WldBOl4mSF1ASTBwSTRHWFYxXkUsJj4nQGElUXBBb2IuVCRDYGppfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMTg4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTE4OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTE5NiAwIFIgCi0vUmVzb3VyY2VzIDExOTQgMCBSIAotL0NvbnRlbnRzIDExOTMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMTkyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTExOTAgMCBvYmoKLTw8IAotL0QgWyAxMTg5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTE5MSAwIG9iagotPDwgCi0vRCBbIDExODkgMCBSIC9YWVogbnVsbCA0MjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTExOTIgMCBvYmoKLTw8IAotL1AgMTE4OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDExODYgMCBSIAotL04gMTE5OSAwIFIgCi0+PiAKLWVuZG9iagotMTE5MyAwIG9iagotPDwgL0xlbmd0aCAyMTQ3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOyU9R3E2KSljImVoZUtiTlEqXU9qZ0pvKVQsYyombzVsKlswYnQkJAotVkEjKU5jbGEyOFlwMGslakRUJl9edT0/bkNmbHMjMixiIlNMajpnQj47IWg7T080Kik1UmVZQGlvO09jSmlrb0wKLUQiYWFBQmhoKSEockJgOUxlTGh0MSJtKGtlP1lscD9uTjotQDhmTUZUXGFXS0AqUVwpQCJAWlYxbXVUL1BCISpYCi1BaF1VdExAXk0mRERXJThLSEUwTlRbUERHUydJblJmbmRjXiVWJ2I7MTYuRiVhcSwjNzhDbWcjVUlhI21WL1BrZQotbXU0PXJgXGI6XUsrXW1oLDlaRUpeb1UyXSdUOF1ZUGFAKilmTz5nRWJPXztCInFiWEwnTDQ+aDVXP0tYbjNBb0IKLVlTY0ZYTixJUT0zJ0ZOTlg+aFRGVF5vL206WEo9LDg4TWVBMHUlTzgmMl1CYT5OR1U6aiZqL1xLZTxYPydKVjtCCi1vXk4lZFVVVzInUCZOWkEkbzppXzNeJzFQOmNjOVdYR10vLCZMOiRTTUxlWjopMnVtUEZ1UEg/ODksUzMxXD1GdAotS3JxIlspWzsxZSlYPDNFPD5bWksrYjNCIzU5ay4xM1glPUhuTCc9NkhBSWooV2tjXVhOMiVOQSU2TW82SyMzUEkKLW0qW15Ub0kvP007JWdkaitrLjYqclora1k4N0prUlRQL0FGK25nNCVXNCFrVDNrPDVnVigqckErW0I/SyI5TEQjCi1AdFhxRGo9bFNyNVs2JVhRWWtGayJtX0VyXW5UVWovVDRrcStPVzdZWT5vKFFoIk9JZTNmVkhhWyRCSmFQNDcxMAotPG5jPUBiNiZVNjNpSVQwNzw7YE46c11lXzsrT3U9YE4rLE8zNjJQQmgsSUxucXQjRDJpVF9PK2g6SGVgJi4tYk0KLXImSTcsMiVOXjooWmFWK2lANnJlTDBJYG5BZy0/VFVdKXNmQGsxInI9TVkyblVnQTxFbShXXUJMKzNvSWcyT2cvCi0lJjJaVi9kM0J1cDo0IUtYNjZeJTxEJiZmbTFeOiJTXE91RGBPNXFTLEFjZE0iITVDcyVtcWMlMU4pbkVhZyxlJgotKD1UaF1fXkpcMSVgJj9UYG9VIkk6KS9KLkwxP1gtOzxacEwlX1ZeXEBjYSZEajJHbjNULFloMCw5b1JmIlRnOGQKLXM2aSN0QEVpQztWVzUmZShaPU9AMFlEPDpVaUJvNDQvLTAqWSVBZyxsR0VyQDxdLTc1MWxfS1ZFRio4dENaVlBCCi0pamIsPWw8PTgnZXU1LjMkYSNEYGNQamFqKmtIZG1jMHMjdSNKOGFBY181KmEibikzYHJNUUEtPzVxXkVPOFswJQotIy9wT0ZQQm1cP24ySWk7Qkd0K2BLN05FWCdZJnBBZ3UmIWlFTmcyUCM6RzJtNW0udWZFK0MlLzJJJTlcJF1CW1UKLWM0J3RTbkI0UDRsPCk/OmYvblJWXC91c0ZMKzlcaipnQSxrZFRRclZET00vKShLTSc7Q1Rkak9yWW1xZE1YUiw+Ci05NlA5TlxORkpXNXVzL24zPUEqKiZTJGIuXzMpI2BVclxwbzprQiQ/VyY3TjkjV0BHQ2taKkpmPUQ6KEJvRUksTgotKEM4WU82MGZmJFBldFhgQGNXJnRpNHVyRVVSNitfSlJxO1o6JFM9JmczXzltXTJtMEUxJ1tAbilsKDIoIyxzZFkKLVJxMiIsJkQyK3NrW0k1PDtIQjM8V2I9UC5IJTwyNzxgX1lOP1QtJypySiI6WydcSjlCRkRESGNZdUMocj4sailgCi0uTGYlJktAJT9NQFM7XUNcR3I+cWA2JmNkTWlvSDk6X2Y+VlkwWFUjJHFXISlWbSZ1OD1YIiltQ0FENlxvRkRwdQotb1E/MmFqbl5OXThyOlY9YkUnUnJCOkxpVCRqcWVHIzNFKE0hbkZUYmYnIkNoWkkvTSdMIW4iQ1VLOSVfUTJBM2AKLWpNVmxjJzRTN1gpLE9wJi06Ky48IkwyLWMnMlY8PkJUYD1oXnBsM3VXXitOUCcqMkIpTlQ1V1EpU09kUkFnaVclCi0uPjokPSdgcG9uVGFiMTZKcjJjXEJnUDA7Y24tZE1pNnFrRylBTlszVWJgZjhxSDZGMV9DQUZoTVpYVVckYCNRMAotL1ZNKFpLKkE+TWpzWDswO2dxV0ZxNVtZWmRsPSIvUCQ1WTdfKnInPChqWCk8QV4kS2VRckUlSUFDRzhZYVhaKUEKLWQhNy4mSkpyZjYiJC1vL3JFXnNKQFpmKUBZIUp0USU0cl5EKGZfZFhGX2RLalNhLl86KDFWJmkkWDM7I0ZMJnM/Ci1kTVpUXlhjIlpwQFRBLixLUlhiLi9JJEFAKihAOyEwVS9pZy9kRy1cYyJZUUcrbkFpJFo6cUFESz0kYCRiXF1ZaQotT01WYGRJXEktUFxWRjRyIzlWW3JkaHMnJlpRWUooInIldWYtJVRFKy9aKyJnUjIlR2w/IzojIUdsXyIpa0JFaDAKLUo8bjcnOVsra0NWaVVtaTYwRzlCLUVGS29OIVwybTI6WCItRTc5PTwiRTpRcSVgNTxxY3BqIlNXWz1DRywjX1pgCi06MjRwNVlmM0NYPipAUVJlRzddWC00Z3RFUDszNTIjUX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTE5NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTExOTUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAyMTggMCBSIDEyNTUgMCBSIDE5NzUgMCBSIF0gCi0vQ291bnQgMjQ1IAotL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSAKLT4+IAotZW5kb2JqCi0xMTk2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTE4OSAwIFIgMTE5NyAwIFIgMTIwMiAwIFIgMTIwOCAwIFIgMTIxMyAwIFIgMTIyMCAwIFIgMTIyNSAwIFIgMTIzMiAwIFIgCi0xMjM3IDAgUiAxMjQ0IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xMTk3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTk2IDAgUiAKLS9SZXNvdXJjZXMgMTIwMSAwIFIgCi0vQ29udGVudHMgMTIwMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDExOTkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTE5OCAwIG9iagotPDwgCi0vRCBbIDExOTcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMTk5IDAgb2JqCi08PCAKLS9QIDExOTcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMTkyIDAgUiAKLS9OIDEyMDUgMCBSIAotPj4gCi1lbmRvYmoKLTEyMDAgMCBvYmoKLTw8IC9MZW5ndGggMjI4MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslPUlHNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhSnJYUTJAPm5BNyNgRCxcUzY1L1hfSk03TyUoNDdJSj5RZzopR1VOMVEmZ1xxS15tJjlTbCInXAotQmNATVxBT3U9LiYqb1oiYDw+ZFBPLz9ER29GM3IuLTcmJFZYISVKdTJtZChea2YrKmAhOiVCMF9gMG4/TmhfZ0EKLTE6MVApaEQsU0RPQmA+YUpPakFsS2BWUDQyRjZAVzVXVD5hUiJjLlxfbE4mYDBPby0oMUk7R3Q9dVFVL2tib2RWCi0rYz1APFY7WjFfKGwmQyZyIktTIk9NV3NkIUg/RVJUWyo8TlsiXmwhX1BzPGhGS0YuQj91K2kpN2FdRygqbG1TJgotQkdpZVhgL3U/O0pUL1hYOVcyTCQuazQzYV4rbURKJ0VKZilXbltlPSVBTz4kNEc0OiQzJE9DIy5nbSVYIiQ3UygKLVdybkdeK3BBSUgoLFdrJCE4b2ZiIi8+cTlgPC9fNjsqW0txXEsrMicnQU9OMjg1K11TYUtpXDhwazhlWjIrXlx1Ci1HZjhoVVpuUlQ2O0lSTm9ldG1NcyZpaWRJJzs0Um0iLlFPXjVwPWFzKlslYFtVdT08JCZmZGopXzRZVyxLcyxIJwotKT91JU1DKFwlMFBYdF4jT1o7NSUtYTd0QiY0blddKypLJzQ0Ryk5bFFSbjEkXHAoNkMqTmhxXT9TazxzRThXRi8KLUBwJFQoaSVuY2dKbVZWO3EvVDIyNV9fOS1VQ0JAdV5GbCNcVSgyRHRuQGRjbzplM01naVRxbVFNckpoMjE1Z11LCi1cLm1xWzVjPkRFXFFUWjUlRkN0XlJIRCZvRVgoXVBraE0pMClBWmtYQlh1LFYoPzUpWmgva0FdPkdhRkErVSVbdQotQUBTZDsoTSw/Y1NoYzVhI2ZyX0tSImZDQUwma242KCdZWzYzUDRfUjZEUEJQYT9vIWFLYzw1KVtIbVhdOzdMTEkKLT9Lbyg/KXBDPHBEbFxsal5pM0xZZnNicVxFdE9bbD5bREVpbl1HSj1hRF5uOyIuQVkrXkNBSi40LSZYUW9EbzBnCi1NZmBCXlZsSmMjIS8iTDhuJEZnMD8uSFZNR3NPPHI3ZDZzJ2ZbO2ZfVUVKKkE7KnU/MDJIM0g2YElsREs7ISdmdAotPzRibVEkaVcrTjRnJWo+WiVUIUxEJGNLaUAwVHNzTjw7X3EzYltpVmEwTV8ucnBDS0E2LDM9KSIrZi1QaS4pQ3QKLUUnT28rK2MxLyhmSXNLMGtoRnJVMl9jRzJgLlNxdCFUNTEqPD1MK0M1R1VAPz9pMCprITBPWi0oMG9zLUY6QVlfCi00ajo5JlYkPlhJKlghI0MociwscypUKWF1QXUtJXAuPjdRUGlAP2ohbXU7JTNkXD9RZDwkSSFWTTNlP0dnPWRUMQotLllXdEhrOzZnRHFIbT9KSURDRjxgQC05Pz4qRy5sY2lyQlsrQSE/IicxWyFSO0EwXGFUKGtaJEdeTCZgK0BUREwKLTs/OlQoQUlpPzYhZiQ0UytnPEAqWW5lMXNrUCM1byJEISRqTGI4a0hoJjlmS1ZOPl8lZ2ElJGgnSGUicDYzbm4tCi0uPjJCLSkiS0NyRVVFQmAjcjs5WixGTl1FV1xNWUAsM0QxTTxmQkd0NzZWI2FrOVo3IjhnVF9rJ2Q9b0sjZD8mZwotVWgnK2haZURzTk9CNGp0KC0lJUZgWjglS3JDJCttUSlzI09HMUYxPyJVSj9vVDQxaVklW280QkJHIW9ca3InTS4KLUtFbT02PEIsTlpZWi1xODBJZTNkKTNBcGw+aDlXKyRBP0NJWTFPPEA/LjlbQSJCXj5ySDI7WEA2JjswXEw0UjYmCi1CMGtJblNZOiIxTFNrOU5HaWVIJFFpbk5OSzQldD46MitNay50b1EtMSktaTs7PldDZjVtW2NdbV5wa00vT2VtQgotQF1QMzlWMj1OXDsudWU8WFJpbDA5IUxFUjlsTFhhTTZ0PDhNLS1eTV1mbFdXP3NzV3I9OkI3clhzIzkqKHI6I1cKLUAqJmpbUWZWNldNTWJcJzxCVjNEXnRzYS8jXT0pQlE+KW1OPnRiOCFBN05kOCIiPk9NMmFhO09XOFl1ZyY/OiJVCi1sUUlkTEAyV2lSX1RsRzxKYGZlKVxoOyNtQ15PamBMJ0klLTNZb1RmJFBKL0k4LVJCc0s5P19GZE5rWkMhTkllVAotcV1fKyZeYixoVzxFVVdAQF5qZUwtbyFQPj8hM29HSFwmYzVaR2I8QTBhVVpSL0xyY2VqZDshWiRXclA4OT9GVyEKLU9YVnMhREhiTGhdbyFFQTNQcjUiRTYpVjBcRjhRRShzN2xPJ0MzSkNQdS8jZCRDMlsyWkJfSUVENXA4dT1QMyFNCi1YZSYjaWZTOz1CPGldVkYlJignbCdEZUlzL21SYjtrME9yRyRQbEhANGtNUiFXcm8zcVEhaiFhJG9Xb2kvIzdOZwotSnNZVS9PNERfb2Y2V3VvUGI7VGtPbzVmYilKXzZgMy1EdTNIb1wyMDtTNmZMMWctTktBVlpZMU9HTHQ1SSs8Ni8KLS5sPW1HJjNGJ3A4bzc9ZWtDXCZAYFRYTExnYk1wUzNKWFpba21YNXJYVlpwQ1tvMSc1JEFiVC8uMyQiJ0svKy0sCi1vN0U6QydIOSFfSDM2VkFmVzU5KzJkOiQiNyo6VS1iXmUrQ34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTIwMSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyMDIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExOTYgMCBSIAotL1Jlc291cmNlcyAxMjA3IDAgUiAKLS9Db250ZW50cyAxMjA2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTIwNSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjAzIDAgb2JqCi08PCAKLS9EIFsgMTIwMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyMDQgMCBvYmoKLTw8IAotL0QgWyAxMjAyIDAgUiAvWFlaIG51bGwgODI1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjA1IDAgb2JqCi08PCAKLS9QIDEyMDIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMTk5IDAgUiAKLS9OIDEyMTAgMCBSIAotPj4gCi1lbmRvYmoKLTEyMDYgMCBvYmoKLTw8IC9MZW5ndGggMjQ2NyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslPUpyNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhKHJCYDlMZS1ZTUhKL2dfZT9ZbHBbTzxhOlkraCVxXmdKUT0pcEtfaVY/Qi8rMmklbFNvNGMibQotQU5VNS1qcypgZmBjUkwrIlg9VnBUWmFkRlJTRilkQD5ERnJOSXNkUXFpMFgiazUoJHNnREUmKyIuNyheXlM/bFUKLTQkaiVKYXVRXk8mRik7Nlg9T2VWNTEiaS4zXko8ZlxnZSJXQk8nMkViSk51TCwwVElaKF43YStCLElNK0dqJHNtCi1ZW2NjKzUzIT0lM04mbjQ1NUw1NTE0OTg9X2YzWChLdSFhUyw9JjlFZkpXajdKRS9EdGolTE9HNUBdZjUybEVtcQotNVdrJWRYO1dvaSxAXCwmXTQ1J3AxSFktYmc4bFQxMF46UytkNEEnLU1MZVo6Ki8rSz5pJVUwRlpkZVwzY1tcODUKLSJWMDs7Kk4tXlJtZkxVYCxnOCJ0SyZnZWZfaiVbbDNDZ3QkZGdlY1RpKTFAWmQ2ZCEvYEs+M08qKERFUVQnM2InCi1YREkzW0pPamYhOnAxUlgxIVctQ1dcQiktRTJrNWtKT2pBbEtiRFM5bVJeaXNCRzwwR1dkP2VAbW1PUTE2TDU/awotJjY1dS0kNWZrJUNIPD9RVzhjST0uImE9YTE1cUhKODJxKjNQdVA6RkMxPkMrV1dAYSpXSV80IlU0aiRZOGxlJDUKLTE6VFVwXjtIVy8zQUBxYDtZbmRCLmNxVG4vPkFtKGVvZSEtMXNWQ1RgcExDQlE0c2w+YlRMLCQ9Yz5uciNbO1IhCi0+PnUpQkZaXk9AKGNYYytZZDciS29GKkInY0dZYjNdc1JbXiQhWTU9NjUsVkQ0MFouW2pacWF0NmlvOzRFIUAkZQotJUotR21DKyVzQ3AsWldoWmdXXFlaSyEkO0FlbzZVQllvQzQvUVBbNVNfK2VhbT50TiojJT1gTUpqdFE7UjZoMVMKLVlmaHBLSztkKTlkWjc1YzFsVXAnWVReWUhIQVNSSEVuci9OQmxZK20wZ1VwP0g4WjJVOj1LZ2EhdFEtUThAYzVyCi0lOlE5bU9NUFZRMChPZVkmVmdbOWB1PCVGL1dMNmYsZCovKmAjdW8qb1glLHRLRi90XTFcLjtiUmxzP3Q3RThuKQotO1YiXDNxNmBDaGJzKFJRXDJNK0codTlpLiE9ITAxa29QKFJOR0ItIUAqOV1tLWNQXWVJZmNpXzZZaSwiLlhBaCYKLXBUdG0uRVQoc0ROMXIuXW1Ycl82OTI7UmpWbjVAUGZuNGtjNEZyYlc0XyY8KiZkK1BHK2xXOEcsMW9UajVdW0Y0Ci0zQlMlM1U0N2UkQExPYyhZYiErMClHbidHLnEsaT9bYTw8YShFbDl0LHFRP2RpK3RsNkpIbjY0VV9qbksjWWd1SQotMkpqI2RYTV9QbyhoKjJcP1xCO0gmQXRPXF80NChNJUtYQy1wJmtrNGI/NSxYL0tjalJDNCZpbSFISSlGMkJeJ0IKLWdFQDBrOT82alMndUlWOTZROzRyI0NRJExecXMuJVBFQ1NDXiI6MD5jUEBGMDBnK3NobiQrWVVMc1lERUBudVAxCi1YJSpJNzVzaVk7QD4zXW5XNCc4XWtSRUxWJVEiYVZVPlNbOSM8QVgqcVpCPW0nYV1bRSJDUWEvMlYyZEJVJEt1bwotRUNxMmBbU1YzWyc+dD1gYWtkdC5EKFdxUSZzUjtLKlIpSzUlJlVzPTshU2BiIVhZX0ItRUtQJVRYbmRTbjRGOE4KLV1LJDRzNFFsai5HKkpuWG5YYFlGLFhYTDYsYGZTJCVLWEVHIyEoLTY/UHU3aTtpNUE4UDVHWGYtciwvQ1knJF1JCi08QktCLyZZOVglYFF1JGwlOzhcMDQob3NqNl5GPy9VN0RCOCU6VSQsOnJMOTVuNl90KSdHKE1YWStWKT5uLXU8TQotJmhiS1QpayY1TVNSS2NyTDEnNypCY1NuIS5OLTQpIS87K1FUTGZFXzlHVVEvSFZPWlZBWUpiL1JhMlE1X0lUKnMKLSNGLUArZT9GPiNXRy1CX2ptSHE/K0FjUjQyKl8yTFAqcG4lSj9nV1pINEdmdChSVTpiJGdPNktYZCU1IVBYJl9eCi1YNFNOdFExUWhhLmZpPGlmTCZiVGFldD9TYi9uOGJCbFFUWE8/LT4iKVp1Pj04KDdbOWY7YDYnUF5qbz8lPUZGbQotOF5VJ3JmSF5rS0NgIT8mcWNHOmg2OCJLO09XPTJWRlRKRiJbbTZcKF4tV0pvX2YwL3NpSTZhOS5HSF5hYj8yNCUKLV9WQUBsVGtVRydXTzZvVjUoWCptRGVvJGU8UyZeZlYoOCRRbFlZOF9UbVNkKDw6O205LXNtSiNJTlIwJ0ghcGA1Ci07bjRAYmprXGohREplI09cPXEzdGZMcz4zWS0kPGVAPFYjXlFOa01dLzVOak5QVnQsKkBUImVMI2JdPm9tXUs0TwotRjBDIytdJS41O2JaZ29aL1RxOXVcL3FxYTEyN25HVTYvMzpMPShjNipIV2wlV1hFNFNmMzg9PEtRL1RPX1JHIVcKLWZLcTAvL2V1PFBQV0YiVDxqUVo0XiVvUkU/T3UwaiIoOEQtK3BTK1gqLnFxTyU4RSltI2BeTFUjOXNta09tQHE4Ci0vdWphUytyaCI8W00jW3BDYz5xUyZlckwwRkJKVl0xP005UWknRVlYYydjJ1EiTD48UWlLdGFwaVRFOXUmOFZiMgotN0BsIT5hI1c8WjVTLTpsKUdxZFc4YSZ1OSU4LW5fLUpDMSdraHE5OGIvZTMpcUhBLHIrQ1lkNzgxckZxbFZLYF0KLTdVaCF0MSI7RlkpIUg/Ric2VCs/YzAuRyciTWhtKW9GYENxUFhsWkNyR1NpNDo0IkFCY0E7V1kqSyJuPEgtQkdSCi0zIVJXU1lLc3E4Yl5lKlZSPVlXLjVRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjA3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyMDggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExOTYgMCBSIAotL1Jlc291cmNlcyAxMjEyIDAgUiAKLS9Db250ZW50cyAxMjExIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTIxMCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjA5IDAgb2JqCi08PCAKLS9EIFsgMTIwOCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyMTAgMCBvYmoKLTw8IAotL1AgMTIwOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyMDUgMCBSIAotL04gMTIxNyAwIFIgCi0+PiAKLWVuZG9iagotMTIxMSAwIG9iagotPDwgL0xlbmd0aCAyNjQ1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOyU9TEg2KSljImVoZUtiTlEqXU9qZ0pvKVQsYyombzVsKlswYnQkJAotVkEjKU5jbGEyOFlwMGslakRUJl9edT0/bkNmbHMjMixiIlNMajpnQj47IWg7T080Kik1UmVZQGlvO09jSmlrb0wKLUQiYWFBQmhoKSFKckZOMWN0TVI8JioiJ2ZLMU1taTQqKTVITClkYVMxcSJlREchbENvQltndFgnSDlnbCE/bnUxCi02bmIkaVZVNUQ5NVlncD05QlRkW1NCPnErJDlaJzhPYDQyPUtkLGBaLHBoTWJwKS0uJ1Mja3M8Oj8wIlYiSFMuagotM0tKKzVkLklqQ2xlOm48LDFwP1deXnExY2shNmIpJjtyM1g2bzZaWU08STJmWSJQTVoiMlFNWlkzZTtnbGI0PVEKLTpHUmBhNGkmN3ExbGQyWmI2ZUI2bG9tVk8wR2tgQTdaZyRtNS1ANUY8MThKSyEubHNWQGpvRnElV1xZUidMR1RXCi1fXytVLlpoIlA1WEAxXFkiZDJFYiklM1k/ITJHK05aPjI0Um8vX15dTjNjYzoxPHBQRGglJV9vWnNvdVBZcmlhPwotXzY+Yj8nZ09Ocm9oJiFjSEtfOjQlUSUnRE5oWy5OMyJBO0hnY0BTQy5pQi8rPDdJWkg2JnMuLG5kS09gYHFLc1EKLTVnaEZ1UEljbExgdGQ1bHIvQERkZFEqPkU+X09AbWRSQG4zJWpVRT08X2pFQD9QTSg0QTJlKUBaOTBYTWcsOE5vCi0xIjtJQmtSW2twKlAuTXFlUFBAMjxsImNZRkJoZVlaU1NzQUZTVTtKWUl0KTZkOFMiOjQ0Y2ktYkAtKTMrTypoWAotZHA7SkM+JmY1YyksW1o9V0NUKyVZXTVaNyhWTCVfTHBSOTRwdHI5bW9uVTxTWDloJGYmXitYQ2owJzpqNCUiKUwKLWtrZW89OWE9KlQ8dWAiQmojR1wxbHMtcVthWUxzP1lrZis8OUxxVCFebTs/JU1eR1tkYWFCcVEoInRjTSk5Klx0Ci1pJHEyRkNXXmEoQjtzJFdYMGpFYjtdS2VPZ3UvZ1MvZS1OXmAxJChZcjVMYHM2UWotVmZyckljXmUiP2c7bXJSOAotS2k1cDA2Nk9FMCVhIkdTSEpGYzs6Vzg/ISY9Pi9KQ11NZixFYmdpWFZDXVFAJnI8NGU4aChBVkBDKVtJIzBMJkgKLU8iSDNIWHQhTEU+dD5aYTNaSEAqTixnbUMzWGxvY2JWdE42QCw8dXBfYDBuP05oYDkra2hdSD9QMlVNPUB1XHR1Ci0rYkhHSkw8YiRJa2RrWT5XMGk4VDxMT0opWzlqcnEtZUZPcjJpSnNwJmdhUydUL1tCZjZkJClWYi9lWjUrRmtbQAotO1xCWXUuIV1ndVspQFYvZkdLNz5FPVNmQCNzYCIvaVpDZTpHWWJfa1xbT1U7PmtvbVZAMkxtLCZsZXBhMFAzJF8KLTBLNTAhSmZCY1cicUc1ai1HTig7I1RzK2A+amNEY1ldb3FRPm5JOWYsVzQmOS1WUXI3WVZRSWVtRlhLSkJRW1opCi0wSGZIJCJiYCdIbko0KSw9SjpDK0xCXC9yNmI8UlhOcSZnSUU5XmkpSz5WcixKYyxmKU4jYjkpQG48SS5RK3NRQQotKS4jOkNOLkBXMTVtPlJPOSNRJSJaMTdOTVpXYT9oJz49bTkhVHEkS21Naj0tP0AnYyhfaDNdbHBzLCRbLUFQaF8KLTNQdXA9SytwJ0VhKGE8X0dIPmFZKS5qKjJcO0hUWz9qVTE8N3UvcHJMKSxrXickP0BxM3RjW0BSYVA3VGRkdEE+Ci0lV0ZGX29rRz0yVUJiJDdaN1w2ZVIuMU8hKzpNXGszQ29QNCo1ZD5cJSRFSy9XYkJtWj1tPzJFQC0jRDtHQyV0UAotTW1BT1NUSk0/R19BaVlHVUVOTDs7aFNlZj1cKXRFIyU1Uj9iNF5yS2lZWEhUY0ZQNENUS3Q0PkdbcTlQJDgnOkAKLWZRYzZ0IzddWS9DbVpaNyRZWz1tU2AuRycqdUVSVWoxLkFXIUppRmEwXDgiVXI2MS9CTDJfY3E+cmBCTS0oTzBLCi05RVBPNDZEbXEoJStAZlgjPENpTiFZQjo9J15CVjJrRXRnUE9EZy0sKiJZQ11MciYwOj4hLWZjZ0pQTCMoKlM1WgotTm9BRD9cR0IqKTZdYyplJmpFT2JaRWI+aFo/ZSpkWSknajhhIypzLT5EMD0wNFRmWTokMz43NDAqXWhUXjErJjoKLSFLNW9vTEtrdW1NNV9RSzQxZ1NxKGMlck5SVVRBUnBuKHNEUSlvaWk8WFI+bTRga0M5TFNiUXQtOk1GRSFKU1VICi0kNUMqZHE6USY0VjkjJCsjO2o/Ij9EOkVkYUcyIltAIlcsRVk+aVk7K0sqPiJDYCJTLzxPYWVYTF4oLjBkbUo/XAotY29URWFLaUs2OG1ARTQxME5wUDEqUnVRW1I1VlRRYyFdRk5PKDYsOCtjTkxTJF8zWE1BLTM6N1YxVipIJWsmWSMKLUJoSWlVXjxYOWQpbTJGVFxQXkxfYFhwUTlfYU1Uc0c9bSpCcUtILl0vLTwtXUQ3RF8mVztzaEZhJ0E5TVteXFkqCi1HYUNPJk9ER3NKInNfL2JTZ3MyM3A/QTEiVUNJXGAnXkpvMVYhWjVXWjNrNGlIayhsWFtZLV0pOyNwWjQ0TWZpcwotQEwzdE8/QHFAQls9WVk5QFhLJm0vSjtAWkAkUnJkT01VQmttNjktRjRsLHFoKWZMaVwwXz1fJitMbzkpLz1pVmgKLShVOCY5KSQ/LjZKUWtbNFlVY3FeNTtKZ2FFTTMjZ2NlWSkiOG1IWzJcXzBtImg/b1ZdYlh0OippUllPI1IlZUUiCi0jW24xL1MyKS1GbW8hV18mXE9KOlhDTl0hVzVFckRQW1JvOSIiPHBPNiVSW05xQEtkTmdJaW5kZlE8OG1AXS5IaAotMiloVTheOlhYc0BhcXJkTlxzamwzXkQ6MlRZMjQ4PEFXKi9xMTcsOXIiaDInNmM0QVMpRSVnbk9wV2dJYyo3dFcKLSplbU1MbkU0cEBec282QDsrVl4tbEtPIiFFUl8rK1RPPFgxWzY6KlhlbnAuTG8yWGdXMlYuVzs8UiItMllzVEBFCi1OOnNMbCpdXWk/b1kuUjYhUFZCYjtxWFhJRkNsITNRL0lFKmkjLTBoLjBhSlQrS05BLVRzRXE3ZDZZKihhOEZwdAotb1FZNl8wKktrYUlILT1ZTDg6Vl0qcDYydVtvRy1iblRuV2RNUFBQUEgnXkwqTjs/Xi9RcUoqOlwwdTN0L0cuLzpkSzB+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEyMTIgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTIxMyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTE5NiAwIFIgCi0vUmVzb3VyY2VzIDEyMTkgMCBSIAotL0NvbnRlbnRzIDEyMTggMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMjE3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTEyMTQgMCBvYmoKLTw8IAotL0QgWyAxMjEzIDAgUiAvWFlaIG51bGwgODUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjE1IDAgb2JqCi08PCAKLS9EIFsgMTIxMyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyMTYgMCBvYmoKLTw8IAotL0QgWyAxMjEzIDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjE3IDAgb2JqCi08PCAKLS9QIDEyMTMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMjEwIDAgUiAKLS9OIDEyMjIgMCBSIAotPj4gCi1lbmRvYmoKLTEyMTggMCBvYmoKLTw8IC9MZW5ndGggMjI3MSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslQmctXzRvPk1laGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEU0gyT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhaTViOnByMiZWTyttWXNGKDNXPylgYjlQLSgwY05KLEFlZGIxcCQwRztsWGRkVWpNPT8mWAotRlJGO1xVJyNbc2U3Q0EqJVhFc1MmdEs/aSR0MjknWWk+IWcjMEwvQU8ra0UjP2xDMVtUWEdPQF9nPXA0JSY5SyoKLSkyOkdYXitxM0tSLDBhN0ByVFQ9JSldJSFwb243SV9EVmlKVF5pWChLNnU2M05eM1pqbUxCWU1pJkxybjBNal5KCi1AZ0xkIiUrMyI5JUU0QU41b1tpZl5lY2VIYlNdVzFOMis9PTMnbVhiNVMrNVEvJmpFW0BkJ2E6LS9pVjRqISlcOQotQClMM206ZiZtKi5JLlUuTjNKZyUyQFlQXjBXWUJhK1EyZERZYUIjQS1mXnVHMTltITlmI1BfaDM4UVlhLD1JInMKLWN1MyU3MUlaci8+VzMsVyxKUEJuOktZV1I2ZExTMlhqUm4uKjsyTC9uNUN1NiFoYE1cOWdbYzczIj47W2RQMjJuCi0+SzlLL0EjUlxuTk4xMyduTjtxbjBoak9DRSo9dF8xUCFWLCRcOyFRJjYzY0tfVjM/KjZOJShGaUNJdSw4VFR1LwotM1dwLGghOyJMZCxgRk1nbzshP19dKWAoITJhJEJLalZDOzg6IS9ITWQiU0giLjNYU2lWUitJdUJHZVBuQGJpKkYKLVRsQUImMyxWKjxMRk9JUm9UJChxNDpjOVUrW0I/SyI5TDorSWc4aThCSmEvNiEpc2NAI15qUSwjJEhoXFJZQkZxCi0waW9dcSlNZzFVJXA1OENNWldbRC1dIUAmVl5vLVkySylaTik6NlF1NmNtdU4uPlhdSFNZVHM1J0JrJzRhRDo6RQotQGRbPzUpUmNqUSJIUC1rTiMpXFlwQFo1Pk4mJW90OVQ6dGc3TSQnUiRxZzRrUUU3bFJpKiw+Umc/YFRdQWVcW0EKLTVmXiJiQ0dPPFUicmRAOSdFZUhmXCVvKURBZzQzYERKMj5BM1FVXG9OPFlkMENRSU86KXFVOEMrYFBKZUFXKWpaCi1eI2grI2g6KV5fOEVCT1VTJWZVWjZyPjA3UTAhOituQ21OQ2RiR0drIXVUWk9XLj1xbm84SlZMKiQ5RllJcXVzdAotT1dVNFpLTyY5PCZVUV0zOT5mVSMnb2smLW9fXy1EI0gzL3NYRj8hWTVVUiY6RDQpNiNvVl44NF9dLTJyMChjOVIKLUxQa0dWX21GI046JVlDcmdfU1Q/NiJrKkwuPj9DOXJETDgrLV1RbjkvIzgsIjlPYW5mLiNeMkdcLjJDU0Y2N2FBCi1kQDFxIUU2IkBIN1gtVk9fQ3BUSiNZXVIyPU5ZMUlMTk9Nb0sxZ0pEWGxNSyhkLXE7Q0Y4OjwnXzxldDhDZVwhNAotLSRBXTctQz8mKEstQjgpJURdOCEvSigvZ2cwJDoqaT1uJE9GNExcTi1wKWdMXGBDOEJZLCdZdC1tdSZYL1piVW0KLSpKM0p0Ij5AXENbNVAjdVVAWXUsTHFwbUpldTcsbF07USFEamxbXGpNIW49VT5EMjZxLVYhLSRWJW81PCVgIVQ5Ci1eQ11jVDpsTCZOJjcsYzs9NnNDaCokUGpVTT85VyItT1xBNWxbQ1NAMFNWakMpUE00RzkmXFBeM2lNJi41dGtYRQotL2xBRTczJDBLQmJPSCI2WmxfS0JRbFckPjg8c10vMyVIRFdNSCxuYVJCWi9yOGJtcktMa01GX0BFPzw8KSteJVQKLSlkJkNrSm8pW2huL1dqMyVAVWAhRkZqZiYuIlInQUwlRV5xIW1rTmVSa29oRCFMNWcmSjZMODUkb11vRmpbSCh0Ci1jT2EtKTg7ZjV0ZnM6ciI+RyxePy4iUWdZOnBqayhVSDgoKFZDIXE+KHI3aDcnJDNzOVZMOys2V0NlS18zZllRIwotcHM1Li9vVmUjb0lETkw+KVc0WCdlcjk4b28sJyc2Uj9IJ3EzKTY8V1ZMLVRYbjxZSz9FWG1nWDNfZS8iO1NiZCEKLS81Oi0uW0dtdU1PNGI5UStPKV5oJ0YqOGYrPj5dRSxSMHBHVzApclVLRU1ZdDZSYTNbQCJXMm4lJlA+ITY4c1IrCi0+T3FsOFYpVERqImhtcytTS09cYiZzISpPSm09QT0+bUJDVmFPbCpDSyRkdDclOy9bJztDRy9NP1dnSl04Ii1FcQotO0g9Xz1HXSslLF5iYVVTPXEkPFwoY0gzRDEsQ2pZSk8sRTA5aVQ2RWcpLDNeaVdNU2QiU3M+cDEzVGMuL1kzSEcKLV9TLz41KG5tVzsxTi46amBaPVhYQGguTTk7TSFMN0xLY2FOKmlhI2RKQDw4IkxJbEJhQklMOT1KbUtUOE1PbEMqCi1CTUcuTkFsMEcpSFFoJGBcQTtLWFlOMy1obWBEVVhCXFlHRydjPSk+IWAqXyE2OlxaLGpXYj1lRi80QjhudUQ/LQotX0NuNGA5cF0qQytmamdRbjU/Jk5hLjVaTjwvUSI+S0VFc3AwS0xjR1smJ2JIU0EmXlIsSEpXOkZZSHAyYGxlKHMKLVlHRGwrZTdgXCZmTixBV3FVZ0Q6WGlSJmFpPXIwXjRCP0deS3UkbF1tOWdZT1xVdXBzYDZ0YlIjKSIiRCVwRmllCi09TC9mVDkwSVVJIlJJWD5aRzttJClGLU9+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEyMTkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMjIwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTk2IDAgUiAKLS9SZXNvdXJjZXMgMTIyNCAwIFIgCi0vQ29udGVudHMgMTIyMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEyMjIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTIyMSAwIG9iagotPDwgCi0vRCBbIDEyMjAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjIyIDAgb2JqCi08PCAKLS9QIDEyMjAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMjE3IDAgUiAKLS9OIDEyMjkgMCBSIAotPj4gCi1lbmRvYmoKLTEyMjMgMCBvYmoKLTw8IC9MZW5ndGggMjc2NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslPU9JNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhKHJCYDlMZUxodDEibShrZT9ZbHA6aTg1PiJpOmJCSj1eP2Eoc1Y1SHEzTV85MWBCcTtfXlU4XAotLmx0aHVMQEdNIWFyaVs3OVcnXEQlZ203QSlAY08hXlYlRTxOLFAzOG4+MHIvaj1sV0hDQzc1KTZYWDAwK2xSM00KLSkyPnUlVk42R0lLSVZbJkslTm1CXm5DYlIxNidFRl9EVk4hT0FbJiUiMDlNXU49KmJKMkBVbU1jRSVMUDM6YD9JCi01bGclK05NQG9qKGxqLklpPXVQT0AsPFYjSzRyLXVOLGVLKiE1NS1waF44bTlLUE1OYzZSXzB0YDAldVszSkFbQAotVyROYktDQTAhSmJPQXBLXElkWzwlbjlHTmhccU42JFotIkwlWVRgbUtFRVhscyxNX0InLVlLViE6b08oLEpgNG0KLU4sZz5WJ0ZeYkRfXSIxMChxOjlcJElsKUoiWXJlI2V0bUhbcWFgdEdAKy5JbidDOztPS3NOPlUjKVt0MjBHbF9eCi1PQVEsIScjXzBzIjs6KDgxPF9GLyZLV1gjKkJMPVRkRyxHPS8mO0I5MUNgQjApREkvR0tPMzZBJipVTUBMLV9wbgotJkluOlpfYkE5UWk5aUc3I1hbV1ZWRmRGVzJVdWZCI3NjVjsrUipEb1VTQUokV3JsYmAybms8cEhvX1pqWF1SWnMKLUBwbUE6PlBBUGA0MCgrZWYnS1cqWWlSKGJPKSpFaV8zJTBUJkNZVEVPIzRebWd0YXFWYWRoSy0kQHRgZykkTCtlCi07QV1RRV91VGxBJWMrNyFlMU0jKEolYlNZZmI9cVZRLlorQichVSVaZzs+VzAyYzs8OVgkam5kQStvT1g9VDNKKAotZmBTTzczbExkLmI5MmVyZ2BKPUgmPCwwWzlyYiNHKGVITko0PSEuNVhbIWhbUk4sNlJiMTxvN1hLKUZHYVh0Wj8KLW1cUXBJXCVYS2g+bjU7PlUsdElfQzdhSTBrWCEsLiZTMytQXyknIV5UKixNKk8nLDBuTD85Rm1fKm1kYiUrImguCi1Eby5QW1ZXcyc3UT4hI1UhPSJPRyU/XlI5M2Jeczg0cU1eW1htUyxQJiJcKS5hS05YRmUwdVB1YUpROzteZyVoNQotJkAwcnQiaUVbZlopTlg6cDU9Om5JQURqV2NSInEmZEs8dHM7Ik4zM2dMbjRWVWExblM1M2hYbGdQWU1KV0VBYSoKLWtMVCNyR1dHczxOJENKdWIhUTNPO0JiTnRMRDpBOCU4KUslL29BZk4xPUJWPSFAbjZcTHEqMjZGOks5NCcuN1k0Ci1cL0BXXzAqaFs2bW9JNXMmWiUyNipELkZzIkFrST5fTT51NlRvaDI4VSVUVkcjXTElcC8xMWw7S2E4S0lCYTdkVAotRD9SJGkpUDZGayR0Myo3S29pZ1ohZT1TYUpILzI1YVNCOV47IWElYlBLNnEtWm9Bb0BUU25iPEk2JmFnJi1BTTMKLSZRP09qOT5RIklVLiRGTjs1bHFvJD5eOEJKcm1WX2IpSzE/YU1QdV1UTVlkZGcxaydDKlExbVRUVlBoUEQpJS5jCi0pTW9yY2o/XzkpLVhmVGVvIUcnQCEnREc8JjNePzxWIUZqOkdRXCRBKmxmXVEsYiVEcU9GYk0sKlEmNVFWIzYiJgotRWFAVXBxMDNvK29VSEIsREV0LUNdLmQ2XDFQaDNHKThuTG0lNztqPDNyciMpIjslTEU2NiZGT0QsTT1qUUN1JFwKLTg4XFVJVkpEbnIlTjFwTGY2a1VFVz5sTyE3PmpIVDNDYmNhKDthUDlpND9LLExfMGVdW3BrVUNVWzo1MWVGXkNBCi1UKEBtYW1zN19vMjI1J0MqIyNxdTViWCMkVWZVNHQ2IzFkI1ZoIi9oRXVzUnMhVTRtUS1vbSdFZ29PdS1DLCMlawotJGIlZnUiQmZhZEAwLD46X0tDPGViWz1tY0xgQUR0USdDP2pHW3E5SGMlbXRQQzpTdCwnTnJfKDhkQDFYYHNhSFwKLSUsbmtfY3JYV0FTW14qUUAsMj90LTQlLzdFWD1FY1MyVVlAJmZCOSVlOSs7byUmKSRGKWFiSFgkbi4rbTAydGpKCi0nVlklKzIsTyVYJDw1PkhfUT02ZyQyKTBkU0NBQzRaP1wmWjJgOTdbXFdTRUNAcm5La1YiTiNdJlExLmlXXlE4VwotJDZcOHBaWVonYSNuSW00Wlg0XSs7SGA1bTFtbVNDZUQ9L2EtJEAmIUwvPnRZY0Q6VjVXOltxVmFzMUA6NGJPNGwKLXJsVmsyZCI1c3U4JHBodVRAWUIrOjZOIjYtYXQ7R1c6N2VGPjpabGU8I3NaK2E0cVdkZHNqMnJaKEcsJCFiK00xCi1jaWFAcWMlX1RbQnEjKVReSkBdNFpDJUFnXzVYYDwrSklULEc/aGFjK3NqcEJPbmwiLUQuTHUhUGNiMylrVEBnLwotU2xLUExHbyNEXjEkQilWUGsrIjtQXVpaJCxmKiUoQWMuSFhaQzdKVURYMjM5b2ZkOU1pPWBkR14hJSxCPEsmLFoKLVRKUEhyJmReKF9DYlk0WV5zW1ZTOWUrMzEwJUNNOCoqR2c/MSpbcGcpbk8pPCQzRDg8NScrXktRPmcoPFMiV181Ci1hRVM3QCZFW0tUXTM1WyZZKj9TL2gtZi1mKWFjVmUoIjVXUUUsWkhcT21iOmtnVytwOWVsMygibXBOJl05V1xdPgotRkU8THVQZkFINzhkXVYkOl1bNkVXK0hqcFI1KUE+M2pqak4iOyZnJWZWTVAwbVNTaUdiaC4ucChqMlkjOkY8bTEKLWpjaVxnMzxrMS0vJyQ+LyhOYlNmImVhLS1DRWE5X1ohcVRuWCNCPylMSWwiNjJPVCFYKl4kdEI7UCUpclpjVXE2Ci0jL0x0LiJUYTBPIyJXTUcoL2Q3JkAsckBVWzksLkdNI25MMlE2X1FzMk9RbmEiIVVMNUQqXTsrcUY5Qy8vVFglTAotUCovcjRtaVhrJSQ2b2AzI0RaKyIjc3JjIyhhJy1NRSZFRFBOTG9bS2wkaUYxL142VXNGXVJTLDtJRzJFKltVUXEKLW8kMCEjQElKTHJMLEwsYkE/T3M/RlNaV1M4XVlwOixOJmdOM2NdYUwrWEFgTjZKSnEkKD9wbDVWTGBpST5Ja1hACi1NNU4mO15BWm82bSJFUGc/XkE2Z3AjUSNoQEokXSVUI2VCOWpwMDRxRSNyZkYzX0BpU1AmKF9OPzB0L2BwQWFIbwotSi9uZy9cL1R1NWQoYzZiLiEvYywjUWMsWyVMXVgiPT5nTF45UCtmcEdgLV1SQlpsTmAmWFhcTyI5fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjI0IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyMjUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExOTYgMCBSIAotL1Jlc291cmNlcyAxMjMxIDAgUiAKLS9Db250ZW50cyAxMjMwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTIyOSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjI2IDAgb2JqCi08PCAKLS9EIFsgMTIyNSAwIFIgL1hZWiBudWxsIDQ2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTIyNyAwIG9iagotPDwgCi0vRCBbIDEyMjUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjI4IDAgb2JqCi08PCAKLS9EIFsgMTIyNSAwIFIgL1hZWiBudWxsIDQ0OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTIyOSAwIG9iagotPDwgCi0vUCAxMjI1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTIyMiAwIFIgCi0vTiAxMjM0IDAgUiAKLT4+IAotZW5kb2JqCi0xMjMwIDAgb2JqCi08PCAvTGVuZ3RoIDIxOTYgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA7JT1QdDYpKWMiZWhlS2JOUSpdT2pnSm8pVCxjKiZvNWwqWzBidCQkCi1WQSMpTmNsYTI4WXAwayVrMlNyOU9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VXJ01JQwotYFxzO3I/bzRjKkpcYWY2OG5eJiY7TVhmJGVKbGxgNCopNUhMJygxajtJViRjRyc8JjIhMEdFQzNuQXJkZC9jNWEKLTZuY2wrUixbJXM4OGUkZUU/OSRhZlkxdVJTTlheZUxyZCg/Xlohby1MUDtlXUFIU3JIWDBnSWVfI3NFIl1IXFsjCi0mLmBRP1NIPU1sM1w4JC9fbUBBUl4qPElAcicqdHVpMV5FMCRLTlo/OFo7JjYlM285KCM9RzBiNkxrODJXMTU7bQotVSp1UT1fUTpbWSJabyklaj47azZUS2opVEAzYXRrTmFwXjQzdEooRFwyT09lJ1NSPTclYi5CZWAvZEkzMTYnVzQKLW0xaTkuVzs9JVdNbzYmLTZdYkZIJi5HPUNITzwqZ0Y+R20uZFBSKDQ4V00wJ24scmgzWjRrPlcrQCVzcyQxcWdjCi0lUllLcCY1ZjNhYjo/M3VkWkhIKiZDX0BHXS8qXj8nTkBbbUxKUypjPmUqSzksOVhdVE4/YitGLXA9Nz1AOUgyJwotJ1tdaVBLL0FdbDtCci4pOTgqQlhWRCshbTptYHFyRUw7TWBPISwnOiZJPVJDbSU3P0Y5Zi9aVU1fSlVuVSpyPkAKLU1NKUddbGwtL089SyU5NE0yUyttWEpxbCQnRkY4QmBwYkE5LmhcUWQnUCYyQ0w8OUBYb2FYOFlATjVPW0YnTGBMCi1UcFRAL2FdPnE0bUw4LSZjRSdUKGpvRE1UIiQzWydOVkRZYjJWQSo4JFxPLUQiYm1mU0s2WTxyME9xJ0QyRVIuMgotZFpyb11LbkwudVU3ZGE7X1xiS29XXCdSITpjQEg2OnJPPSJPZSppZCVWJEwiMWxRXTwlPjg6Wy1wc1M9YiJJSmQKLS9DJERxalRaJ0pDVTFNMEQ7T1ApJEVdRyU9ZEYzJ11FUCJ1NiMpRDNPP2FnT0Y0RUU1XTJoKFgmNlgwaTYiYzQxCi1idUdyTC5AY0oyI2hERTJgUlAjJGhqXlJQKiM5cTNqLGlJXy5qSERqImMvcVNuMkdER2s4NGI0bG1SZlEubEUnVQotMnRWIjdRb0NqTiNpLD5JNl9BLFtma0ZYajFRNEtrMiFrUykhYFYyaCw7QEMiS0U7RzMwYjB0N2xDV0NZOC9rTEQKLUk7Yk9wSFg+YT4rcUQ7QUdNNzwwYUk1JkgsOFsmZEBTO2pralonYjNPRyNXTVlcKSQ8cExrSlhfTjgxOSJVa3FmCi1CITA5RFRQbmcoJUdkSzUkPEtUVkNobyItWipqXyhcLWVEViwocyY5Ii1APSxRVTl0Q0xJYEMuW1l0bVFIU0ssTQotLjtzaE06aCFNQStDQycmSmo9Sm5aNUJUMzsyUyk7WWdzbDJfZyE7OTYnTy8xOnRZcjg9dGg3MmJXI2YsQClkYmIKLTJKVEglMyFSQyQoZmNdTyJpaz9gNV1HKk5NLStzTVhTJjNZNk1BY2Y5NTZMUV9AbzAnOmBbal5DYidMLl9hJ0VrCi0qPmsySCI5RkBDWV5qbHM8KyU7OCRqOFNwMzwoKCY4V1NXOkZdYUJTR1QzRzBJZ2hIVW0wLkgsJVJIMSkuJW5CQgotMDZpRlZiXT1PcG5eb3FAVWg2XTs1WFI3WjpjXm0kW1luV2wwRXFwKTJgMDFdK3NgP05PREcxNjZXUiVuX2RrY2kKLVdfSXBoNWZoNFovQExAQkoyYS5KXz9fNCtmMjZNajFePGE6JmxHMCJPTCRZR1UzKihjXyNsQUY2LXBFP2pHKDpfCi1adScsWDpjJ3NRJyxbK2Mla0RYSkNYKjVZWEFQTTZST0hCODc+W1dbPT1YWGVUbzsjcj06VTtPZ2tDb0FKMFk/bwotYDtEcDIxa2tKYiNYaV9ObGwoQ2s6OHVtSSMwN0phLEdiLipkX1UtWyItLSg4RlNlQFNKaFwzYlo1UWxwVE5HZzoKLSxya146T2knLmw4TzssY19TczRyLGJTKGwxcG9bZj1kTVFpIXImSGUjV1BgKClda1RXPCIzWWtYYksqaGtGPkxeCi1RL3AmXjgnMj5iJSIvR0RgXEpKTW5GJVQpPCYwUkVMJ0JCamFbOyI6SXUjNldddW9BZ1tuKCI8LlNaIydLLTRTLgotTmUsVnFMS0whcz1pQENCZ2gnPyElJTtyKmw1NkExXElBayRvcEdCJ2xCT1ZPNCw8Pj8rbjRXUSIjK2gkRGkhYzUKLVVVcklAWi9pN01WVTQkUlw6WColNWJFNTFlXyJKUC5NIV1pPSo4QFohXSU5aVY8Yz9IYl1GQ2prVChcQWdYJ1M2Ci1IazlMMFk0XiI1UzNDISQ8JGFWRCo8WSJrNnE/JjFUPU1VbDV0WjJcUVlAJmZlNGI3LiJrNWhPXWJvK0g7MC5APwotZjE2MCJxQWxWYW1GX243OExWU2w+a3EsZV9eS0EvWHNoTDtGUGdSSDRlIi42V21FI2xpOlhxQm9YRStkVlRkX2AKLUA6bytxWyldaWo/OFAjcDsoOnRDQzdTIW86dWwlVTlycGc3T1M+PidFSEk5NGc6a00wNEEoUTQ5MkwzIVFHakonCi1Va2w2X19mOV1RNVciIkF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEyMzEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMjMyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMTk2IDAgUiAKLS9SZXNvdXJjZXMgMTIzNiAwIFIgCi0vQ29udGVudHMgMTIzNSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEyMzQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTIzMyAwIG9iagotPDwgCi0vRCBbIDEyMzIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjM0IDAgb2JqCi08PCAKLS9QIDEyMzIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMjI5IDAgUiAKLS9OIDEyNDEgMCBSIAotPj4gCi1lbmRvYmoKLTEyMzUgMCBvYmoKLTw8IC9MZW5ndGggMjIwNCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDslPVJKNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhSnJGTjFjdE1SPCYqIidmSzFNbWk0Kik1SEwpZGFXZTQzYilTSEtlaThbLTlWMT8hMi02WzQuRgotQkpQQVItVztcKGpVVy1gYGE6Y3NlQ28wWiNzQk5cIUJBcjEkZl9ONjIlL0coYXVUb101WSpnQUpPanNwJEB1KWkKLTQsamE5ZGZjViUwW19sZ1VFZ0tONipQI2Y0aS5ibDpfNiYpWmdcUzpUYGInNk4wI2EtMmE/PVIkTm48LC8vbmhtCi1pK3NVK2BBKDxeNCU3S15DK2tVcF1GYjtWWi5xdHA3M2JASSY0JUhGYXVnK1hSLTlmZ0s9JXBATmU/LHU1L147RAotSEtJQzdGNjhCNl8qSHA+TmJpcmpvdEArTicsRilxNyI1QTViUzdyTGFLU2U2NEtgYG1qU0RUViNsPyFmbk9yTyEKLWBZIkZwNDpbTlJGIWpKYWglcS04TW8/MmIvXyFjPCtNN2ZMbDheUGxLYUNJOmxiZER0XFdeXmgzZkg/LTFwJS9HCi1PUF0/OzFHWSdlO3QkaC0nTCkhMFspUDEnalBxWyFRIUAkK2ZWJ0xHL1AqPFBjIj5JRjk8S1ROaio5LTlOV0I4cwotQyJDaGE9dVFqN0JaYD9pMGgiYDZZZDBMbCdNPltEWlJycDkqNUZEZUV0c11xJVsvIzUmLmFFVGs6OTE8ZUBCdTsKLVFmLiRdPidMSEMjQDQjJ2kmTy9CY3BTTFJtYSwsUUxYNDZpJi1rUFtcMk9Pa0ZKMy80RzhTSlVeT1teTExMN3JxCi1PP1ZjLCovK1I5VzQkMyhobVNnJUpFSmhEPFxtZmxlOz50QyYvMz5CVmxYQUsmKjsjKUdiUENBYDpbY14yQ08pOAotJG5qZiYuKj9OLk8/MEZALmNqI2w8J29EU2FILEJbIShlayRRYEgoVmM3KUgqYXJvQD5dZVxyaDBeYHFobFByMm8KLVg7ZFssT0pGSVJoVWtkbDUwT1pPbT1CK1lrI04lMSg6MUVQbG0iYnQmb2JALmEwRVNybS90TCxyNFs1SGxZM09hCi0kSk9HRDVrRlZtbVc1MTxYRTNxZWhMMm9dMT8tcyVoMk9ySytOS1tXIVQuPFBlKFxfKmMmXE91YXUxV1AqblRXIwotRnF1YGlLRTJkPS9EImRuWjRqaVNaY3ImKChGXC9Wcks1WixQY2UhUGUqYlU8OlMxWlhXdUBALkpWYVtXLFRxYyYKLTtdbFBYZkpXclEvMU03a2ZNIlNGZDA6LWJLYkhfWyQzR09PLnRyNiFMPSJsOWYyS18rLTRJYkcwXVdSLExjPlA9Ci1RKkBFc1leMkA9bHVSbWUyWzQ8LEA4KCdMJG4ndTdRKkF0QzZWOzgrT0goNkplJEwuRSFLVjxLZ29bSUdpWC8kOQotPCFidCsxcj5UVyJHKy5oSyMiJDxMQjtsMGJUTHMxYUo6OixKM1khaT91SEg+S0ppbDNja29dOytHcGIlVW1yaDMKLTtoOj5UIzZ1cmsoPnFnTiReOlFAVWJZJmJCSTZdOm9HOUJcWFouS1FiXXVmJ0Y6PWslbTA1OTgodStqOkxVJyNSCi04SjZDaTp0YihCIVBIZzhGNChyREgua0JDYzcsQHNDXllnPEhbN0RLcVM8aUEraiQpXEsoLSYmMT9jYDg2Rmw7NgotWkMqMFNZXF9hPyNVImZpVkNqQzonLzlTLD1aNDhUJ0xKXkcpVCpELSVlRVMxIyF1QDlrJDBCO0BAWUIwRjQzKlwKLUNtKCFGR1dBQSEzO1VjSzsyVCZiW1JJTz5fZTI6IkNeNlA9SmRJJFI1bTUsWm4+V2JyImExbFAmN21cLE4+ZyU6Ci06NF9TW1tMTTMkMXJQMy0lXSpdWTMrXEs7NVZuUTMkQV5Iay1VKGBUMi5CNkY2RlJBXGpeI3RSJmYxUzpvKlRLQQotbTAoNUEpVUQlYiVsRCc+IiNDVGQhS11dMytrV0RjXmgyL2xVOzlSMmJWaUMnRGJhNDNwZ2BaRlRhJ2U9NjdCYT8KLUIycF5iO2guLy9SJkVBOCFUYGFEYFtiJihdUl8zUWdrTlRnViQudHJfRSdBIyMhaDRMIkcpdVxRUztZZlwrOkZVCi0mJklGJTErakF0ZCwuI25ZXCc/KWRVTko9cSFtS0hNbCEsNE80LVppKkc2TnQlJEgtJThLYyxfKEROaE8nalVZQQotMFpKPyk4N1M5YyxxNyYwW2RpRXVqR2A6RE4zISprJU5fL2UxNj5PQjZGcXRdQ2MuInJYQzVDaTNaTj1uZyJzJigKLURJZ0hYJW9iZ3M7NFNBLDMoVyc4RDMxdTE1Z2JFMmRxTCpwMCJmLGUnOU1TY1FvczlCRCZHazlQU2I+aHAnTXJPCi1XXV5sJzFJQiZUNSJTb3NYN1QjOyJzYV8nZldkVmFPU2glQEgyOCteOE5yZSRtTSVudDpoIT8qanRPOkBhTlZfLQotKjZdTzYkcyV1Z2ZGdUdaK3E8ZS44R05RZj5DJTwhKjlzNWFTTGBNLWtzMydNRmNxV1JgUFVzNT0kcjNoUEJQKUYKLSNEcUFzQFI5MWxGPjBGXnFEKVlKQmBTfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjM2IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyMzcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExOTYgMCBSIAotL1Jlc291cmNlcyAxMjQzIDAgUiAKLS9Db250ZW50cyAxMjQyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTI0MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjM4IDAgb2JqCi08PCAKLS9EIFsgMTIzNyAwIFIgL1hZWiBudWxsIDg1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTIzOSAwIG9iagotPDwgCi0vRCBbIDEyMzcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjQwIDAgb2JqCi08PCAKLS9EIFsgMTIzNyAwIFIgL1hZWiBudWxsIDgzNyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI0MSAwIG9iagotPDwgCi0vUCAxMjM3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTIzNCAwIFIgCi0vTiAxMjQ2IDAgUiAKLT4+IAotZW5kb2JqCi0xMjQyIDAgb2JqCi08PCAvTGVuZ3RoIDI0MTEgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA7JT1TdTYpKWMiZWhlS2JOUSpdT2pnSm8pVCxjKiZvNWwqWzBidCQkCi1WQSMpTmNsYTI4WXAwayVqRFQmX151PT9uQ2ZscyMyLGIiU0xqOmdCPjshaDtPTzQqKTVSZVlAaW87T2NKaWtvTAotRCJhYUFCaGgpIUpyWFEyQD8hYCQjY1BeT0sqbUg1NFo1LDY5U1dLYE43X1EhY1ZBWzcqdEZoSmosQEQvVHMzUEMKLTJCLFFpZi5oZmNASCl1OCRZIl0iaj9SVkokOmM8YTdPN09gTmhZSEQpJFprP2FxLCRiT0FiKGwiKmhhPE4naCtBCi1yIW4/TWBcT1QpVVM5ZFAiIjxYbU5NRCRWMThTbEkka05oNy4qQkRlWDpYL0NLRjVOSTJvQzhtYmNENGxdPFhBVQotNWxmK2lOUGNfY19CaV1iaEBMK1UuLU1BJ1U3ZGE7S3Jgc2NNX0VDaT9sP0lHUlZGT29PT09hdU4yKDJlVDdkZmAKLWF1W1NHaS9BTVNNSj0oJ0wqPS1vW09vQDhoUCpfQ0M8WUI5TU5bbzVXc1szPi06dT9SZl5DVmlFK0hYWGJBYD1vCi04TWVVJzUjSXRpISctKCQ6aUkqWVo0dFtpZHI/TDkobEVyMmRpdWJALGA8bixVQm9IUmJLQWhXJi5FV20laUxBZQotPT9ubD5LMGp1UThiLltVNzVsdVslTkopdVU9ZjhGJV4+NFolW0hyMCRqNlhpOmNqVzJAK2BEV1ovbjRiPFh0I3AKLXIhbF8/ZmlcZWQ0X2ddS1g9Q09RJHVXbCcvZDQnPVtQWW1lMzhGVSNPUTZnMTUxIjh1MTw8QkJqPj1pIUxyXkI3Ci0mcWFqOEw9PkdjKDxYSVhXRmNMcjg4OSZzKFcuOkpLRUdmVDNeZGhoX0RCJ1E5ISJSaS8xQmE+MFZUQ005TitwTwotS1UmU2ZmUzEscEZlYywrYDBZOyIqdEdhLm0yc0QpKHUtaCNsTCEmbTN0QlYnJTgzKCcrKElvWFJRZ0hNWGQkM2cKLU5xKTRRMXU2RWFda04yNDRaNChvRFRoSmk+Z2AvSjtfWElWQG8/OlMvVTAyYUBsRTl1MFBpPTkmMz08QyVQXi9iCi1eKDFSaW9FcWZYJSUjITpWST8zbDxOVXVtUSduT1RtXlZoW0MyaHMpVGFkOGVkPDAqdVA2bjRKaitQU3BlaE5RXAotW0xCQXRjXiFdY25CPFQncW1CJzA1bEJjPFRQImc5Vm9uVCg+JiQnVi5OX2YuXmdXPmVrZGs5O3B0Ny9AIkchNFAKLSxMNENKI1tyMStUIjxYOW0yMyEwXilyMHM6UkoqWjVEKzJZKF4wcEM5YHQrbCsscys/Tz9dVWFOaGFLUjdPOGhRCi0nRnIjTy5ZZlJOMEd1MEVCUTlLZi1qP2dRbERRSXU7SChzTy9LaiFHV0RqY1UpR2hPXThaRHFAaitNRXQmSXA5OwotaUpBMC8uIXBOPyZnZWBvJyFqOlspR3UjOiVMJSowXylKPW42VFZqaSFNQzU1UHBITFFDI0NJMl51WVlzTUA1SjIKLWw2RjlQUiYrMixRPCVJa0UsYVdNK0ddWkM2UiYoT2JmcFxBRjlLTiRCaWxacFY4I0lrJVlwLlkrRVQmUGQoamFsCi1QTWYrUDFTcl9ESytdYCskKWZIZCFPYTVNaXFFUWhxdDVwK2Zvaj1uY0AtOCZLRlgmIl9NOWkxKiE6ZFRFSWpbOAotSyUxVkVNcFc7VSRSKVZ1P3QvOF9ZVUZgaFg+N00vWSxSZz0/QilwNT1iZV1mUWtlPmdGOnFcMTEuMlVxK2tucXUKLW1ZL0tWUC1XdExxYXJSdFtDO1NeWWVMND8/J2FnOGo6YF9OJDVKQ2NQJHQuRTFQR3UoaSE9IkgtaT8kKzgkYDUhCi1TM0snO1Y0Yl9KMW11YlREND8qQVBLKjVZTGYjLFNLVFlPNVBwZk9PITw9cVxqZyNbZmtbW0NSKGEnL2FkJmpTUgotYnJpZkZtUDNbW2FZWGRTZCtKT2YkbyY0YFFcK3FNUTslVzREK1kuIyhXdTdybSUrQy1gSkdBcGQ3MGlJNC9GY14KLU1hN3A0bWZRaGY4Sik0YjteYTlwV0VfMDArSSIlczshJjhCXWgsMW9gZTkjImsxJWIxLHVxNlpuI0snPm8/WTZACi00KjpJXy4mcSNoVHFaXzI8P2U5ajpkSUVBPnVZZ0NSXiF1WWFRLiQwNiJrQDskREwtalQuMVJgUVx0M2Mib0BIIgotJCE7UE9GYUIuYTxwZ28mWVUjcStOTVhnS0hURk1iQWUoKCNVY0RuIjtJKyNmPi86VW1LZzplNTZDOT0vO3BOQ2QKLTBOMk5fRDNoRUlgJmwtSmJSK0M0Uz9wZHMrIm9sRkAlYilaPU9fcC5SLS5bZy9RSVQwITxKOWFuRSxPbl9VXG5RCi0sU2JxKGwjN1dQLihETypYRzBQXUY6Iyh1XHRJNDQhZkBVJWVhUidNOWFtV0VqRFJMVDhkNnVXZC8sZFxRbE4mNQotcDErdD1cUVokWFs2WyYkNmN0b1snIU9yKUNUKTpiQCQhJ3JZW0E4N21DJ0o+PHA4JiZXMyhrTU8pVnFqMEBuW1UKLUY3NjdARFlPLio/cCJnSl9ycjVKcGNQOVZIbyNAJ2gvMHIwUDNXMXJIbGcyMElEZSsrJXUmYFo7SjhbRz10Jj5NCi0nIiNsdCFNRlYpKG47Okwnc15WUF4tb2ZoPHNYQmQzSWwpQiMvTSp0NTMsQilbQklyJV5SK2Z0PTpDbzRFKDEyVgotPURtTmMsT1FGRCpHckV1NCJkNyReT2U3Ii9BJT0wKGtQRl1KRjs4SGBZY2xZaSo9KmAmRkE0PHBiKChUWFF1OW8KLSpjOGxBcV5MVCJXcy5saiNtYC5MJV1LZyZVYjdYRCRnMSdUQms9RSkkcT45RT07MlZWZ2JHWjRZKyFncUAzays3Ci1bcU4nWlVDMkM3O2o7bXU9KUkmLFdCKi87KTM+YiU1UX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI0MyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyNDQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDExOTYgMCBSIAotL1Jlc291cmNlcyAxMjQ4IDAgUiAKLS9Db250ZW50cyAxMjQ3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTI0NiAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjQ1IDAgb2JqCi08PCAKLS9EIFsgMTI0NCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyNDYgMCBvYmoKLTw8IAotL1AgMTI0NCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyNDEgMCBSIAotL04gMTI1MiAwIFIgCi0+PiAKLWVuZG9iagotMTI0NyAwIG9iagotPDwgL0xlbmd0aCAxNTY4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJkYC02KSljImVoZUtiTlEqXU9qZ0pvKVQsYyombzVsKlswYnQkJAotVkEjKU5jbGEyOFlwMGslakRUJl9edT0/bkNmbHMjMixiIlNMajpnQj47IWg7T080Kik1UmVZQGlvO09jSmlrb0wKLUQiYWFBQmhoKSFKckZOMWN0TVI8JiokJFcya2QkakM0M1dbYE9lRjY8aTohVSRcZlsyVXI2KFUzdVcnLjYvUDAlCi1IUHEtVWllKlpLYCNwY1NOMkA3M2QqUS1raiJcQ1FoOGxOMC1EOlBGZ0NHRy04MmgiQytxYnJNIi43RmxONmBhSQotISFOb1IjbTNJIyt0WCFiZCJFWz5KWm50UiFLRjwzSjJpUmEvNWwmVyZKUV9yXUZQUyUzV3AiJVwuZj0lOU5cKVoKLWQnUUZKLiJlJSgjIWhaS2FyKEFWbkZlcFNaLnFcUjZHWFNNM2xbPHIoY2kqTkU2XSJeLDpjcVYlWUshbCdMYlZGCi0+OjthSEpFbUZDJk5pdStZcWRqRi1WKEJYOEZYOSVndUw1RjEvKnV0TzBQY0AsPllVRVI2IiVSJkZUamBQNFdaTwotOVgyZTlcTi1AIWQuSycuNyI1PGM7IV1EYmJgUS1XUl9ELl5sOF5QczlIWG05bjMkWHI3Xj07TyxaKURGRiRxQFwKLU9KKy0sJHVqV1ElJC1TWl9GdSpUbTRWRXAxaktGLEVxTyEuNShjaCg7MiNdaUluJ1lMK08pSHJVRXMpIWEjJyJXCi0xVzQ1STx1WmY7Li5IYTpNLVRLZSVbNThfNT4uZD0/VS5qcVVXc1o9LigoaWc5cEM9aSIoJCJKbFdhVDBJLkBuWAotVVlZNl9jby07Zi1TQ2JBcVhxX05LdWsuSD1DaFlqP0MrTFFDI2FIZE9jJVQ9alk0L1IyUF9wJmVFZVNsS09pMk8KLVZBRDpyRCkxZ3VwPWNsLE5eSjJuMDNpNlpWK11fIUE0WmlVUC1GJGtfNkE7M0tMYWEsSztfX3FyS2hQWCZzL0o+Ci1OVDQuKzMob0RpPFxuRDZDcSkwWVVGPjtsNV5BJltlcjgtaUUibFM6Pl9SQS1FTD40YTpLaHAzOElwSTltQ184RQotazVFJ3VSXzxNT2YpKCsnMyJBajFCRyJzUlVvcUAlMSdaUFEjPUBAWTJbITxdUVUvR2lycWU2ZFMvK1x1aixncUoKLSVEXmUrcl0vOzBHPi8qOkBsQiJCOmYhIzNxUylGQSlEa0kibE9oaEAzOFVcb05XVFtWaDxwYzo4YCgjWGVhaj5NCi1calAoRE5uRjtDSGY1O1gpRUxPRDwrZUA+PUdARSc7N2o2ZGA3OzM3Zi9yTyVoZEhuPjNtWEprSzBVc2pKTjolYQotViUyUkoxWjpsY2ZtKDhkQlhKcko7RlozPGthdU1raTBabUc1IWFsI0pqQD8zVFZNUjs4Tmo0OjdrPW9IJmYtLEYKLU06K1pdNWZ0Lz1SOkBAaTE1PFlsVXUoLElBUnNAKi00IUclSyQtSl5WLjo3NzVnQzZFVTtvR19KWz5YVGUvQVlhCi1pLGlrJFxPLVIjZFRZWmc3Rj5mVjYqU0VIX10rTERCXFgxaChLX1puJz90NDBpOUQ/ImdzO19sNiJrOCIuPkFEZAotTjwzS3IlO0MrPExRRm4zIT4lWC1UdCEvdGtnR0tMT15maG9SKCssViY0L3BkKzlxbmooQlwmXTtTbytLL1ZNKC8KLUspZj9pTGYjdTQhPm1iTi0maVRKWV0hJnRKYHNLNCchXiFQN1ElIUU9OWdiOlFeOk5ZJSYoTmBMNTJRMSIxaGVJCi1BUyYwOTMmclVEUjRFLUpabldDLzVUQUlWQHU4JTw3WWNMWiknNGxKMUJcLDpKLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI0OCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMjQ5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMjU2IDAgUiAKLS9SZXNvdXJjZXMgMTI1NCAwIFIgCi0vQ29udGVudHMgMTI1MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEyNTIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTI1MCAwIG9iagotPDwgCi0vRCBbIDEyNDkgMCBSIC9YWVogbnVsbCA4MDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyNTEgMCBvYmoKLTw8IAotL0QgWyAxMjQ5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI1MiAwIG9iagotPDwgCi0vUCAxMjQ5IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTI0NiAwIFIgCi0vTiAxMjU5IDAgUiAKLT4+IAotZW5kb2JqCi0xMjUzIDAgb2JqCi08PCAvTGVuZ3RoIDIzMjUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmZJXjYpKWMiZWhlS2JOUSpdT2pnSm8pVCxjKiZvNWwqWzBidCQkCi1WQSMpTmNsYTI4WXAwayVqRFQmX151PT9uQ2ZscyMyLGIiU0xqOmdCPjshaDtPTzQqKTVSZVlAaW87T2NKaWtvTAotRCJhYUFCaGgpIVw1XTIhUiZqK29abDlJUkFPdT0rPlZQM1RWTTI5QGJpaiddTldmWWQpOjdeJSkicm9vWmBYU2gKLUIrUERDVipcMC1AcTtIaDdlKjFkYjFVWUpPMDJNRUFYYD1ONTJeNFRlckB0WmF0VGwrR2ckXi9LMFtRaiU+MCFzCi0yQFFAYmF1MWFQKHJsKitAc0kmRyUpXSUhbV1eWFk+bUxsYT5UUFUuVUdQKEldSEtQYCc4LUVULG1wUWQ4OF09TAotJHFxUXJWLjFxQzBURGNBZUZrTSdfVVNGYyRlck9WMD9bayYnRmtcTD4qWj1FQC5Gaj1AaTQ4XE5mN3Iqbz4tTjEKLVxGNUJvJG9TWV81bGc9MDlFPi41WEZxMG41VmIkVEdqW0UpWkswdCwxaC5CVDBUS2wyanFnbCw6cyhhIyVnMGNSCi05T2clZixKQyQoRXJOJlxNQlteJy9oPCknLEg3VyUxNi4hYCw7KEBmKXA4LFBlQTwsV2RyI1VXKUQ+dSRRS0dhOgotSzluJERkJDJeNU5vTU90KTI6R1kvLmA2TUdqKTQzJj90N0pZWDw2LSNLVGRoVmAtdVw+cEA1NVE1dGpKZUFIKUQKLTNYdGRPOE9nXTZHaEZaSyItbGtSS0UyKE0zZlg7bWhPYD9aVidsUCpKUG5ccFwxKnBOJ01OOFdhPi1QUi8vYEpnCi1wPD9BcmNgaDQsMk45RGBfREIkZyxldStZT0JDa2g/MVg/cG5aYXRcZ29UMVEsQV0nUTxhYTYsTldWUHEzUHVQUQotQTJtLSs+TUZWYWlJR1dKaS1EWksxNicySV8xYDxOWWhoOm5fZ1lvR2p1SmdIJHRFSHA1VjwzUypEOFIrV1pZWFMKLV1fXldEL2QzdStpZTdPWmFDR3RvaUNJPmo6QTY7ZzNUUlVgTGA1KVgiM1VxTGFqc0kmJT4xWz1TUjdgVFNZJUk9Ci1TXVFoIjsjV0YvNnFoYmMvaiRzLmRNKixFMFQ3aWRqLmQ4KDZobGEuMyc2bEIlRVtWQiRgdSkzYlRkYy4lW1FVIQotUS03c3ElUVpvTmk3cClwQE49aXJuckNWcG1VbjpFR2lwW3QiL3RbJTskOHVtJTBMay5LTTdjcTBySlYkUT4kVTYKLW86SzQnaVhDPCo2NFJNLVY9Mzp0RnNdJilqJGY3cWpWVj1zSHIjaE1wWiZoVlg/MUQpKlY7W1NoWUFbOzcvLjtxCi1WLSYpcEVnS14+Pl9hJSpDKDQnbCpYL1xkKUNiYGM5TDFvcyJbSVhgVi1uRT4qcUNUXGBdT3Q7byZOMFNDJlxCLwotNWRzJVA1UzUlPlgjbEBzI0ooLzVvVV9jP0NdVSozNC1IdCgnKj4kbWA9Vy80ITg+aUUrPFo/QVNAZmUzLmc6aU0KLUY6VFAxMTZiMEMlJCdObyQnMDZUKGY5cj8rXDQ1PkUzUGU3Jy0oTCQ0QSQoKSYySm1Eak5lY3RFPVNcIS5tc0MkCi0oV21zVSUmXStFJ1IncCZBIUQoJG5eb00iNWhtQWNeaVBSNSt1aDRpbkpwU2k9cHNFYDBwazVKLCw5SmBOXFIoOAotW1dzLjgiLUAoXkwoWnFxcHU8VVsnKExgc2klaT9PcSdLVlRXMC9KPTFXV1A5K3NoVmNPZzUwb1NwO1wzVXBRTVUKLTtKSiE4I3MwVzVVai1zRE09OFNoaSNjRlg+YV9qSy1VQ1ktOWk7WTclUnEzY19BSkZDU18vLG9vNilhb00pY0tMCi1AcTpoLlUocC1laTJbQj5yYDAxbz1WNSVSQ2RFKk08JGVjOVNOc0AzPj9PQzNqXjl0aWVgJVBlOmdzaGZkNE4qOwotTVIrRHJPYVJlb2c3b0klV1JLJVNAUz5aJVNvUm01UzA4JmUiZEZhLFU4N3FtSlBkWSw+aWxoXi4wWkJfL3FeKWQKLSYic2xSKWhEczxNLDlYTFA+RmA5ZS5aK1JpOjU/cyhlL3RMb0ktMDU1YW9STSg8XiI0XVMkbD9TXTF1ajI4TV1BCi1JMXExZzotIywsQi9JVyEkXTIuaiNlcy9GTkVUYVVXJkA/NkxrR2QvNF9qWSVZS2NwZSZfQzdDQ0JiJi0jI2w7ZgotLm9DdDlQSCVfVCZEMkdBPlB0WChMLDh0M21hVUwvSFRMQGUyYDZMK1lebz1xInVbKyQwLElZK19nbSNKKCoiRSEKLUUqNmM9akdeNTNMI3M0VWdMM0o5bjVbTDQ9SV9dLyUiV3BiVC1sKzpQNixMJjpuIjInNyc3Y2IhdChGWGRWMkVrCi0lWFkkY0N1ITo+RFtfM0olbVlGIzhQVGc+ViQwOVZRPDVHK21JVjgibjhYPzc4dURAIUUrdVBMUFclPkpXLlg/QQotPytrQlBlUGthYGkqbW5lIyQ4aDojKTBcdW1wMzJ0MGYwXDdxUUw5RV1nQkMkTGJyPGM4PzsxJm90KmlJaEdXJiUKLWNVIUBGSWwkcU8sOjs0JCxkI1FIRD0nKlMiOjkqSTtAZzxnZmRlaFlNW3RAQDZyX0Q7RyJyW1s9LDkkLFxuUD0xCi1aPU4qK0E+aj5SOFc8dGk9Mk1dN0A+PigiT2krTmduZDZCTjpNKU9VKk1ZVUIma2puKENLInEtLXBZcjI7Vyk3bQotPU9vWCNbVClLLD8yRC5UXC8/QUJFIi5fMWY1VS4nUmMmaWhJUDZDdFZcYz90KzNZZDIwSWJDNzNBcTZZNVoqJFgKLSwlVzEtcHJuOTohV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI1NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyNTUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAxMTk2IDAgUiAxMjU2IDAgUiAxMzIxIDAgUiAxMzkzIDAgUiAxNDc0IDAgUiAxNTM3IDAgUiAxNTk5IDAgUiAxNjcxIDAgUiAKLTE3NDAgMCBSIDE4MjUgMCBSIF0gCi0vQ291bnQgMTAwIAotL1BhcmVudCAxMTk1IDAgUiAKLT4+IAotZW5kb2JqCi0xMjU2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTI0OSAwIFIgMTI1NyAwIFIgMTI2MiAwIFIgMTI2NyAwIFIgMTI3NCAwIFIgMTI4MyAwIFIgMTI4OCAwIFIgMTI5MyAwIFIgCi0xMjk4IDAgUiAxMzA5IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xMjU3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMjU2IDAgUiAKLS9SZXNvdXJjZXMgMTI2MSAwIFIgCi0vQ29udGVudHMgMTI2MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEyNTkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTI1OCAwIG9iagotPDwgCi0vRCBbIDEyNTcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjU5IDAgb2JqCi08PCAKLS9QIDEyNTcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMjUyIDAgUiAKLS9OIDEyNjQgMCBSIAotPj4gCi1lbmRvYmoKLTEyNjAgMCBvYmoKLTw8IC9MZW5ndGggMjQ4MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGZHWDw+byhjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSl9WX1AtcW1ZakU+Syg9ZT9ZbHA6Z0IhPk5KOjo2YzNjOzM7ZG0+JFEqLiNCMVJzQ08iJGpCRgotZXE2bVBlcmMnMic1WSxjWSUkLnFqIUIhKU41aWIxcS5ya1QlSEZyciovNmFIJ14uYktFNUZMQks/LXMjInUlX3IKLTQxXiVdaEUkWFJmXjphLyxHVjFrWCw/QzMxQ2cxIWBdPmY0MF4oSEsiLWFpSCJUcDBpWGMubDxrbiI6WTpzZUo5Ci1fZ0U9JWEhM105MmleN0FDXy1oOzhAZzhXOGtQRFRXUFFBVChkNjNecHElWzdwZVcyb1VPMGxKTjw7X2smNFdxOgotZC1ObmQ/dWs0WiczWkJTTDRQbEdrLHM4Z1ZBX1tOVTErZkhBI1I/XmBeOmxfMkBcW2REJXJnVmc/KzBFWDVJUFoKLV1BWiJAOFtkWyM1Uz1MQzk7X3EmWStVKFAlV19wIjNYOUdmVyJnWWRUS2tHciIiO3FXIlRpKScrYyU+OE9zYysnCi1RcyEqXTxILGlOTWgrU3BVT2ZnOTtiQFBrJGA0SjkhVGRscjxuNSFfKyc5WmknazBDbEJPKy0mZGFLOj09REM5YAotJ0ZoRlJKSWtjP1IsQmtpWz1EVCYiXnVoM0U3aFFlYVwpYyQrTkplNUAyTTZRYSgjdDsmNExeQWIzQkVcMkAyKDYKLUBuS2Y2JHVrU2IsX1E4JWgjT0pYJ0o7RkdmPHU/KTdPLG5tM1tKMldMQ1Q6Zy4tPFtHSypcbiYkYCEqaUNZVyIhCi08SVk5YVBbdEBVITxDbjFbJFQ7UV9XLydmLVthOjciW0FXPmlxU3Aua11NLElRS0AsbmtHJEMoVjkwPlQmQEA2SwotLSROKThHKGZyVjVTTWFwRSs+cU4+L2tGayNXX09xbDQyaGAvVjhwK1JnKFtRZEJNakYkcSUqWVExIyw4aEQjSSwKLS81TmBRSk0qJz5lK0o3RSlba3BVX2g3OyFvZTNLWT42XylDL3A+Sls4NHVyWjYtNS49cHRIZVg9XVVnNCJKIlg8Ci1bSWI0XGE0Iy80cUtpVCM+Z0c7ZWxmNEFAKSU0LVxDU09kVWFOLTQkOyo3ZS9wXGtILCk+TGpVLjcrS101OlNHWgotckdbLDlHJFlfb2xMcm89PFU+Jzw9UF9SJmgyZC00cGQpKypqNkpuQCRnaS5TMCM/YiJoTjJST2Y7bHU3bihsLiEKLWB0WEM+LyxYYzxDYEJoJWtacGopVUthUyo8QWghTypMXWxtQUVdX1AxPCpTQyI2XzxBXzxhNWdlYkpzLzQmOF0iCi0rPyknYy9nIktFTytjVEQ1K2FjJVtiVzJDO05USCJdUlwicSQwV0w3bElCKz5RdD9bS2lGNHIhNV9ibSRVaTs+SgotMGE8S2VqVyktIj43JDExInAhPS1QPSw2WjZUQUxFLTdLOTpLTm5wX0peYjEsJUlDKHBkIz9WcTVBcWg+USlwNGcKLUEuMzMrN087SWJMTkorUiw/azo+T2ojWWthUzZcaD43KGpybSZVRl1yWWYjTEs5N19XK2YocCQ5QGhVK0puMDhJCi0tVEpjMil1KGpPIVMlaj09Ty5tW0VdUTc0YyFScUxsckZFcUtsMl1QJSJcSyIuRkYjMjZnMDFgODtRLSQ9PE0jXAotN25hXiMhM1VrIS43RkZKOGlNTjk0clhUbS89LGhqU1ZDJU8sMERCLjhaLGhbUT1cJkJAOGcjNUI7MDoqXmhmN2AKLVdVTTYmZFVrRyUrUG4nY0thZmclVCpGa0JjXCYwNSRxOk8wVSJKaT8iI3QiX2BZa0k6X3JTJydEIStFRCxTbSM5Ci1wMzQ+aD1wQEk/Uj9MST1fTjsuJS1gL0EqYTgtLjslPC1BZ2k2OlZFOEhhcXI9Q2ptYCwhU1csMlU+VS5HPUBCIwotMm0+LSIyP1JdZTc+T2UoKlJrcmwlaGFBXSEuWyRWamsoRiI+Uy9bcWZncGlfaE48ckJlUUEjVDFtVyljJURkVm4KLVNOcmkoTC5US2U8LGtlaG5ScmdWPVspKjJKYDcvMz0+Ozc0VyNALjRHbSItU05KOkNNMGlYTjBIJUYxIzdSNS1tCi02KjNAPUJRZFtLMFxYK2BUTDIrXFEwMUR1JDVqP2RVXmh0NFJDKiQhLSlUPGE5YkIqO09WSE05IVBnS0AiPD9NTgotUCEpMzNccDkyWi5XdHROWkFsWyM3TFouQ2RmS01dNjBmcyoySVNTbk9EbnFETGRDcytsT2NUUCxwRXA5Rk50QHMKLWRiPEdkZXQqOywkK0dSSXJXP0BjRCFpODcjVS1JZ0xDaWBIWTRdLCQ8bnJLSFo2KzJKaDlJMkk1NCQmcjpyIS9dCi1HdWApZmpzbUVQJGpxa2siO2RhMSlsclhZPHU9UlwxOWQlW1lrKjlBUS9yLEtmJytPMXBeRztJMUZiP2JITlpvNgotPF5TaWJeOjAoTGddMXU+ODklOSxVZlxPPyRuK2g6QlEnOD9EVkYmIkNqdUpKcjRORT5QJGtTXk05MyUyVXFuYD0KLUw6XCk6TilXXlkia3JXVDFQPzMzUkdGN1Q/biFTbDIwM1tXMWErIWdWO3VFYFMxdWclW0RqJS4qW0ZGc09MO0k0Ci0pJVI2YUVZLCQlPFUlT0BuPEtAWF9BcilTcUQ+WTgxRF4sRDwpKzJnI2dRLC8sQjFqRVpcYDM5Mz9uRWBLOCJuQwotSkpRTD1dVG4tZFpYJnUiI2NnRz9yK0shZVNoUFQwQ0I1LDFMMzZkSFpBJFgwKUdtQmczW11OZFh1SGFwJjM7ZywKLVs+UWRYI0ssW28pLm43ZTZjIz5bYj1xQSpsM2hCbS9bYENEcU8hMFk+U11ZR2BINVBCcVc9W3JLOTRQZzdeclc/Ci1MYUtjUjleN0YnNiQjQyZLMGgrWjI/bFhqKGU2LVk2U25tOSNRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjYxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyNjIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEyNTYgMCBSIAotL1Jlc291cmNlcyAxMjY2IDAgUiAKLS9Db250ZW50cyAxMjY1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTI2NCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjYzIDAgb2JqCi08PCAKLS9EIFsgMTI2MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyNjQgMCBvYmoKLTw8IAotL1AgMTI2MiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyNTkgMCBSIAotL04gMTI3MCAwIFIgCi0+PiAKLWVuZG9iagotMTI2NSAwIG9iagotPDwgL0xlbmd0aCAyMTk5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZkdsbGFcaGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakRtMmlPXk4vITMmVzxbVz5fYWtHWE9aXys+JnBnayInMDlkTkFhUkwyaDN1VydNSUMKLWBccztyP280YypKX1ZfUC1xbVlpMSJxVkFlP1lscDppc1BuVjAvNltPUTlpdShkblNHOFt1bmMwYzxgQUYiKkZhCi1GPk9rMFUmczhHayYzMFBiXCRcb0pDJV9pcGpCcGhKWV9LaiUmNHJUJ1NITTY+ZS1OJE1URFpHVSEmMCU2LSspQAotKVs/Xy5SXnJcKEUqc1JnTTFUSVlLZz5ddDFsW09qRjpcb2FALDxwSl9cYldSIm1fVHUoOWA6UkNvTzsqKW5JYmAKLUs8KzhZJS0mSTgxXkQza1ciaGZXZ2o6LWEsO1RaZiVXV1BIVU9mXjVPdUdtbm89YmYqNlEhXSgwWDtOYSw9cW8kCi1hPl0tUydNOG9JIilHSWAlbDgxWygvOlAwbk1ndWFZXV5SUk9UTicuNU9SYVwmM0FpamNMOGFiUDRJPkVPUXVmWgotOlghNHRuJTJGajxyTk5EIjMqOjNAc2tzRDNeRWM2cyJZKTVcRjJOaic/TC1jJW9jbVFiKXIzMClxIV1NaFAlbiYKLSE1OjImX2FxcDFdczdwLTRPRSk8a1coTjxDRDgqb2RlZmRVZjdUYWVgLlNuOzVBLFtOTSIyRGVNamdDWiJqc1YtCi04J2RNUFxpS3MpUzVfTDZAMCQjM0tzcHFtRU5SJyJtNHAjcGxwO2wiVVUjO2k8T0MtQTouciQ6JEMwRT1pOHViUwotOkZja0xOVDYsQW1gWTslP1tOIm5aayJXWV8rIXUtI2BjTWdKRCltTz0lKSk0L0dXXlZLLipYLWNxZT8oQU9uIiUKLVNnaHUxQCtaNik6YF8/Vk4wWTx1NmZtP29ATUVFX0FvIW4hM1NvJnJrTVpWSlRvPl5VXGhgREs6c3FIXDAxYU1JCi1OPD5oVzF0bEFNW3ItITkjMCFsUFFXPj0zTE5wVzMiPGJpcmJpJ2BvNl0tZCtKXFooPDNETyRHW08qM046YVpbSAotXyEmYSJLJkM1WSMuYDhQbF0pPWY1VmloTi01Zy41X2UsXkhONU1hJTpnakhGa3RXYihPT3RAU1U6PSlATC1cLmAKLShoOyNTaDhhT1A2Yk5LSzpJbWJCM1drSUEobCcscVtQV3E8XEUjYyoldEFudEdeXzlNYStnQFY7RCppWTtJPUJmCi1RX0hbXjxmKl5fMmNBW0xsR3JfKDE0JVArX25SVFo6Z1NRPDFfJyVcZEoyaWtWZkQicm4mTGZAUD0mX1Y4b1pZVQotallAbFU2QTBZO2E9c3J1UWxYPm0hKW5IXTFIZnJmUHU5bmFIcEZBI0xKaVRQIURCTTpjR0EwdVtqMmxFVyxsNVQKLVwxa0hsWzBLUSNoaCRrb2QwO08kITZvUkdLZSIxJFQ0JE1pJitcczguXG1WQlBRSEVtX3FJQykvQC1KXW5xOTtbCi07JE1RcClcTFJSTDYxQzkiVFhjRlQwVlwxZEwoazokXSxpbFtHSyYoXGxoNGlNJy9aQjBGOnNSQks+JjQzJDhkVAotVkk8O0FJLVtLKlpwZyNzaCJzRTdtRF8uPC4tYVlEYl5FPiQiZFo1dGpXT3N0MUpzOUc4I1A6KSU6UWxIMldcSSsKLUxCdFgqPWRyQV8vNnVBRVEwMCNxPDAhKiM6YSonby5hNEc+YnRkYDRGOWFNamdfZG9rQkcoUytZSm8nKD1qa1BbCi0kTyozRWVXLXEvPDRXUTwtPFEiSlIoPEE2XDtpaD1tXSg/QiQiR3RkQSN0JixeSGdqIyF1US9kI3J1TiM1akI6cQotSnFlPF5SMV5wJUA1YU5NK0JIWUVGJiU4Iik4ZiFXUiQuIz8xbVFMO2VqKF5VTG0waCYnQjZXOWJTWFw7UFRwPG0KLVFrPDI/QXMqaVdPIk9FZiVwWlZfTmlxLk86YyQ/XksuMlpcNi8zJkguSCpWVGdGV14mamZGJ1VvRW85JWdTMmRZCi0yajtfRjlCaEUqTlxtPVplJD4vTiQ/NkFqLU9BYDcrQ1xNWiRzJT4wPlNuSDQnYUVWOVokJ3IvMCxTP0NCYGpgPQotS3MoQig0TGFjP1NOO08rWCEvN20nPTt0WCIvW0heUW5YN05ePmtyXkNISURKaE0uRmZqJ0pMRDtJUGo1WVNaUyoKLV9gTyhsJjZcQk4sN2s+K29HVCddRyZvIkEkQEgvcic4K1UuNEJIJGQzZ2EsQCVMR0dgU0hnRlVfaVNZIVhqSTsyCi1ATW9pOlBZYGhQYCNHQjEvZGtMdSljPVBtOC04RVA0JkBDVFhlRGtzIW9WTkVWKWpacU9hOF1gLixMLE1kbypETgotcS9ZOUZSTEFNZTwtUVBUWUheU1w/dCFjMiVLWFgwaDE0NyJkX1xYPWxrTj8lYkZHMkJNblppXjQ+SjVTWzJyaTUKLSpgQF0sKUVLW0tvcW47JDUtX0tIaEwjM0MqO1IoUktialVDKWo3JVtAUDVGSTUyL1lVbHNYPkIjW0pxUT9haVhYCi02WVszMlcuXDdtSzgwR0lsO0FbQl8tSFZmRSdhZzI4MkNKLlRISnUiITQhX19TcV5tTzA8LT9DKVZlY2xMaT0pWgotViEzSzBrPjQ0REoyR0xOZEswfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjY2IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyNjcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEyNTYgMCBSIAotL1Jlc291cmNlcyAxMjczIDAgUiAKLS9Db250ZW50cyAxMjcyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTI3MCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjY4IDAgb2JqCi08PCAKLS9EIFsgMTI2NyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyNjkgMCBvYmoKLTw8IAotL0QgWyAxMjY3IDAgUiAvWFlaIG51bGwgMjQ2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjcwIDAgb2JqCi08PCAKLS9QIDEyNjcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMjY0IDAgUiAKLS9OIDEyODAgMCBSIAotPj4gCi1lbmRvYmoKLTEyNzEgMCBvYmoKLTw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvTmFtZSAvSW00IC9XaWR0aCA1MDAgL0hlaWdodCA1MDAgCi0vQml0c1BlckNvbXBvbmVudCAxIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5IC9MZW5ndGggMjU1MSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0NDSVRURmF4RGVjb2RlIF0gCi0vRGVjb2RlUGFybXMgWyBudWxsIDw8IC9LIC0xIC9Db2x1bW5zIDUwMCA+PiBdID4+IAotc3RyZWFtCi0KLXM4Vy0hczhXLGpaKS1Wc1BoSipxJlZeNkooa1EwJFMjam1AJlFpIVRfVSdNNyRuKmY6aTkrYFgmaDVkLjxnWTdoCi1jUEMjNyZLIWhaczhXLHQwRTsoUHMvI2JxczhWYCtzODRuNDFLJmxyTkdBWipIbTduUEdlLC1ZIjUuUWdrRGZ1UQotI1YtMVoiOkt0TiZPVmcnKFhXL2hzOFZeaiYsdC9XI2BpbTkmRTRobV9eT0Y5RipwTTdTJlE9OG4kQUxQaUxKUUgKLSUmNzthU0NvRCRrMCQ9Izs2bkttQ2VLTShBUiUhTVByPFxwLzJOYiFAQFlzXitOY1NvZyEsRURjPjZGNjs2YFU5Ci1DYjpCX0A4Jkc5S19CSXFbIkNCQypaN0dfPjwvdVswWz1MOyNmKi11Q25VNEItbCY5KSozLygtVHEnYilFPlYuLgotMT9hZGRNI3JFUUFGUCYhIkFuJC4kR2RFOSw3JzVGQUsrXFNycylkSDgxUV4vXlxlbmEmVEwvdVldPVdRJih1akgKLVxlSnNHTGNjOihNVSQkVzhYNmsyNTkwKyNjSEVBN05LZTpNJlZMRScuLCtcUyUlRVpyPHNGM203TUhJPEA8YG9ICi1ySihYWG5EImg0Q0JcPGZRKD06MHJsVCtrWkNAN3VWV2lGVlxsUXNrXCRETCpJcTpRQUFTYjI/bFBoOmAwJDgnJwotWkNAbG9BTipUQToiOGw4RlkvajUwMDtJbUFyLEkqS01cS1QoXTstKE8ubmtFVFwlSCdxMVdEMD0+SFlHUyNjSDAKLV46QClFcDFFN19zN1VeNDE3T1goUDVmJWAmIlNDdCZhWkNWSFJaTCtiJjEsImc2XSs3UFxkNVZzNEwsY1tTcTBPCi1QaF00Ny5DYnRsREMsN0dnaSRhXylaSWxzI0k5aE1DbzY+WlpDQFkkQ3M4ZDtzMEEscGZoS3Q0WGZFZnFZPDE1VwotW0ZuY2knMk4wayY/byFoXlE+K0FrWztWJ2NwOXNhNyF1UWpqdD1kbCtwYyFkLXVfSFVuM0k0ZCJebTMtJlZcbisKLWE/VkRwciNLcHJwL1t0NDZtMDJNSms/Rk0kZy5SS20rLmowZnFeLj9EYV1KR2g/XyNOOUJUXSYzXU4qMStBLUYrCi1kLz0jIl4vJ2szK0BacnNzI2pjcCZcJlg+ZDxjSDIxLS4sJ2MsRSgpSkhASFRLR0M5Z19VIm1scys7ZCIjU21kZgotKzkxInUwTjpuSGUnViRFIlE2VG9mSGUyW2FoKmFjbSpvNUJmPkwhMktJaWdubjNFL2JwYE5ja0ZhLCQ5bzxhSygKLTxxWXJPKF1PVUdBVCg/SSNxdDRmQ29yS1VCUlo5TkFRNmgrNDpqKjBaaFBZTW4zRS5KRE9zYXVyIjZDJVErP1o0Ci0/ZUolOltUPDxyUTd0UmVfRFJIZCdwPyYzUHRPKFxrYEBHI0Q6ZEUvY3A7Mi1dRlo/VjkiX1xIcjUoKic3IXNfQgotI1QqPWNFLlZNPyNVJDRbK3BJMF5QYzxaQ2k5Ni9ZYT5UMmcmNyM+P1BTUWtbbjQiNSJQXzFdOzlHVHQ1cldzQi8KLUkpWVQuPmptQzlCRnU2ZiduUmlRN004Q2Y6cFtoPW4zaEM4P2dPTiZaYG1wO1BpNytnS0dKXzgwQSVcJWYjZWQ4Ci0sSTJsRlpGNXNNKDNVQkY4TEA4cT1rXlsrbjpKczEmI0hSaiJjbDUrK0xBPTBAMWRhVEZMRyIyXWQqbSMwWThfVAotX0ArZE4oSVdZZzAsU3FpNic5UUtkUmZbbjAjPDZMTUImVzEzQ29jLkwmRVkxLGNIYFNDTSZKXXM4PU82KGdiQCoKLVVZczk3Vy5RVl8oVS1KWi8wTVdacl5VaXJELzlray9YOCNyK2dvYGsjVkBacGIoLWJzS0dXJy5MJU1hLmtxODhqCi07MXQ2UEluSjM5YiliITgiQGwoUys0Ql0rK0BUTGQwWVddVEdbTEw/TSFJSyJyZzBaWjYyYCdyN29ZZ0o2JSwkSgotUCU+Rio+ImtbOjkyIytRLGclWTsjcjdDTy9IdSh1UCU+QCVWNTxnUDZOJjBuLXNMOCFVKFs5KUxrRz01LXMmWm0KLS45LitWPjZeNyUkQDFqSCxQZjhKYlo3Nlg3Wj11aGRlYnMsQV5oYFAuZnAkLy11X1dmS1NtUTFNQiE0XVAiX1EzCi0pLElDQktHTTREJFFtZi4lQjNINS5SMy1xaHIpQk8kJThgT0lxP1I5QDVPLFJQVm8iaCxJK1ZCZmlvQWphb2g6IQotQUg/VkxKUHVOJFI3OSk4ZE5mSlQtZzs4MVYuRko2LTR0QEI9MGY5Li0wMC9WJl5fW1Q9V11AOF5TVXM8TVNPZ08KLU1CITBPTEJNJS88bChHcXI8UChWcyQ7LnVXO2xtL0NxVik1Pkw1WlJmQCEyWDZzOWc6YjFPaj0sYVpxaiUsImplCi0iTVclNzwiZ11Ga3FdPG0+TD1iczhYMz8hZlE9bSgmblBhWFhlTERZI08qUS48cDwyPzdgc05OMTZMZklwL18jJgotQUtVQy1Ya0k+YmwnOlBWZ1MtcTFQYjxXbE8wWkIvJ1E0RVcoXFVcPG9PNj09R2Y0JHJaZ19OOTs+TWFFIkJIM3MKLT4/NGJqVGtHcjhUS25abTA0Om05I1FCVToxOWwzQCx0MTM+PjZcJkNUaSxlUlska0JsIlhDR14vZztfTUsxSFJQCi1QZChARDUvdCQuK3FXKSkwMVtrLCJnWEJBNTA6IV9JQ1o/XU9xLFZCNihIOjZLciQ3aj4hXFwkSDdrJEs2U0UpUQotLWtRWVxPZ2xuSVcnSk1wQkcjc2xGIydAbiFsNzFVNz5OYiRQblsySTc3VnM4TU5ESVE6WyVvZXAxWXVOQVN1SyIKLSlecUM5bWhcTU5tRkBGTkswSVAwJSJkRzFhcUk5ayImST5oVkk6JG1UJEBkSjZWOkdQJlRpVVdMPDlWb1xBVmcvCi0pMSpBJEQmP1AsNDtnTTwiQW4zKTVmImU5IkNaX0NPWzNCaGMjP15Qclg/QGxNb0Yocz83cScwTHE1OXVoKE0yZQotXzNHXjZJUWUjW11gSkhtNV85P1onS0A0ZW9FYD0+UTJUS3VmTUQoNXM4VHBeczIiPlw2bFxUX0osZlAjczU5dU8KLUJHMTpSVmVMYj1WSi5MVGZwV0thRT5wO21xXkZRPGt1aCM0PGAhUy5BS3RiYEZLRFdQWkU4NU0mbXIkYWc2KnAwCi0lPE1sbXE8NWBlM1s8YzMoMmJpJiI6MV5ENWpUKE1KY25wLk4lRyk2OnVyWD9tKmRGQXIjWi1lRCcrQlxzODNaOQotJSY3SSFGQyJwWTI7K05vUShcZCwscDMwZXM4Vy0hczhXLSFxdUF0Yn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI3MiAwIG9iagotPDwgL0xlbmd0aCAxNDAzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZkgvME4+UmN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakRtMmlPXk4vITMmVzxbVz5fYWtHWE9aXys+JnBnayInMDlkTkFhUkwyaDN1VydNSUMKLWBccztyP280YypKXGFmNjhuXiYmO01YZiRlSm0vaDQqMjtJTCcoMWo7SVYlNyksKUFEcTJFYUQxbXEqTV8qRXBsCi1pOi4pMkpzIm03KlxHKTdeL1sxc0I9Oy8qKXBEbjkickc7TV5HIkA8MlwnYilmXzckTlgvUDxjXyYsRVxeO0hWZAotWDk4V0ViMGdfREJZbFJCQSVUSXIlLSZURXBdXSEsL0FIbD4sVmZvOVRgZFwtX2JmRDptNlhTa0MpQC1VQThXNUkKLURlYjo6TUxlWj8mZTxxaF5CcWxhSHQiamVAc2RjLCNVPGpdclg+dFU8JlRHXU9ENV1XMT5LR1phL2JfXytjSmNyCi1fRC4kaUE2XmxaJkRXWyQlSiMxSnJDVzZbMSk8QTliZWtPOW41SDpeIlY+WE0xNi1uY2k7QVVyIThLQWAiLVR1IwotIjpsWEFgZjIyT2I0LkA1MF4oPltATWg/Yk5UcWI/Jlxdb2c6X0Y5QEJbWGRlWUNMNCU4JzQ2PydcK0U2bk1MS0QKLWMhYD10OytVOlk8SWs8XD1ORDZAOFJMJnQ8LFo1QVRsXyk5Ni1OYGckJmdcdSYuZjwyMEw4Rk1AanAuJTQjKGp0Ci0zIjZUSjkyZEZaIjlVTUM5UiZmOExpMyssM1M5VWVNRFU8U1Mmb2U7OktUa0ZmODZGbEpbWFVbNVM/M1MxZzFNVwotLDFwOVVoUjJiWEsmR1szNlI2KDZNcE9KRkdYSzItTzE6MlJKZGpXZWE+L2VZOEVNclpAM0N0ITVeOzNZTV5YLWkKLUhwKk0ta2tmajsmYzgrMzcrOzRrSzQwaGgnOD5ROycrIl9NXFkuLThCLFQ4ZydQTV9UMHElJXRLPTNYSjMhYEIuCi1oX14tY1UoI1JTYXRjVDtXKUs5P0NUP3UoYDlPIygnT1pKXz1yQVBuVCc7Kj5mZT85ZkFRYFVVVXFgQClBWitcZQotRTtRU0gzUzc4W0tkLGBaLGx0JCtKVFBGS1kpNHMuZy4jTWdBJVkpJGBHcT80XW4rUGpHaitTUDpERTFJRik0VzEKLSkkUFI6Yjs1LSFnNiZqYnFpNDEnTzFkYVAmby5AWi8zRkUybSFpMHJJTExfX0RBMz4saUYkbGZhKigvQ0wjTFY+Ci1SZU5AVT0wUVkiM2ZUbmdZV0MuPlcvYC1aXyQ4KTFsYmIqazMiK2IxOUBubEsnSUIjdWhsdD1VUTZCYGVLcF1AaQotSmUxNz5Xa3FDb1wvUE5aUTUnXHFDYUxhWC8jZ0RwKi5eWD8iVGQrMyhuZztNZCxLYWBPMT9WW1BXWVxWISc1LVEKLTlVRTUwVSgxKVRKLWpOI0QyLlE6I1FrW25LUnE1UCMvZS5xKVtMWF8rZmxKSjpnQFUnKGleXmxmWS8vM0F1ajM6Ci0xJ1txbSheJChRQVA6dGU0ITZAMVRobFtAUyVxIWRedVVDYyctW2tGJkp1XzM8OCw0bEFlJCR1Ml8jdTBOcm5yXQotRitQTlEhTU10R0pDNEt+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEyNzMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL1hPYmplY3QgPDwgL0ltNCAxMjcxIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTI3NCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTI1NiAwIFIgCi0vUmVzb3VyY2VzIDEyODIgMCBSIAotL0NvbnRlbnRzIDEyODEgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMjgwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTEyNzUgMCBvYmoKLTw8IAotL0QgWyAxMjc0IDAgUiAvWFlaIG51bGwgODUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjc2IDAgb2JqCi08PCAKLS9EIFsgMTI3NCAwIFIgL1hZWiBudWxsIDYyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI3NyAwIG9iagotPDwgCi0vRCBbIDEyNzQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMjc4IDAgb2JqCi08PCAKLS9EIFsgMTI3NCAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI3OSAwIG9iagotPDwgCi0vRCBbIDEyNzQgMCBSIC9YWVogbnVsbCA2MTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyODAgMCBvYmoKLTw8IAotL1AgMTI3NCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyNzAgMCBSIAotL04gMTI4NSAwIFIgCi0+PiAKLWVuZG9iagotMTI4MSAwIG9iagotPDwgL0xlbmd0aCAyNzYyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZz4uLGBLZGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakRtMmBLMU40K0dvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjElUHAKLSU6Xj5fXFpjdU5PWy5qIlJVcWpyOzJFKD0waigqY1UvWzBoYDxDNlBiWztoWihldDs8OFwhJWcrYyRTXlA4QGNqCi1CZW1pczI3JVNUZDY4Kl0kbW1jNUtbOGxzUVYpcTI5cDFzIlRlOHNxTUJdbUBFNF5rQFpCal0haUdgMEErUiw+cAotUzBwWkJaNElGMy1wVGhrV24/TW9fWzZ0LVhmSjRZZltsLCNVM25hXERiKi8pS0VFWGwxbGMoQF0nbTliKXA2MTYKLSVvVGUwXjJMKD8zSkdPUWhATW0yRWRUUlpuWi9yViJnI2lmKDlgYFovQUo8RFRNUkQmajJhSkElSEVPODEoRWNkCi0/OFAtMkhkbj4pIig5Yj9OcDBZZmJjZCJuQ3FSM21RdSFaaj91KVBqIyJ1MSEuTCRCZTphUVlAWnJHWTpVUC1LRgotLmpMXVBwUF5SSWAlRTlDWWg5Z2QnLDAxMjUjN3M/MTU0JnRwNldwXDVdSjxTUFBrUWU6bTxZZzJpXE9ENHVVQGwKLUpBTWpJYWpbajolVC1XUyU5IXFqMmNAQ2RpMkBBZF8qbkFqPFxDbj4xKD8oKjU/dTBJQkwtK1Y6c2QwNyVSRWFLCi0vV0hOTW01IzRnJUU6PmM8N29uWWBrcmU5MTVvXlEpZ0YmaEU5PitMVU5EX1VXL0I2UElaLzlRJFtvJmZyQ20yYwotWmRTRnBlVDomUHA6XiY0bDhqcmshKWFiakpPUF0iZU1GV1U8RTU/JVQzKjhkMFMyJjFBIWxRS2RJUjhDSzNxSycKLTVXJGx0OmlJK1JkKyw9LGdHVSo6cmFcIS0+PEw1UWtaU2ZoXzJFIjYzXlVMLDoiUEsiNW1vQmFSLDBgW1oqcTAtCi1fX0JrLVJmai0/KUUoNz85dVdbTjAyJ2UrNCJXJDU5M1pNXzJUOGtxZUAxYlJLOzZ1MSUmN3IhKSRbSTRRb2c2TwotYVFKOS0oa3RcXDNRUCoza21sYEJpIi1EREdqNWhNcjciNFJOcnQrIjNfNXFFNVRyZVVraT1WRl9uRShrPSklIV4KLS1jOSprSzVGaF5eRzN1KSlYXDRMPGc3UmEzYV09dENjQ21NPlQrRmA6NEZUKT9EQiYocEk9Q1I/ZGFULzhCb3ROCi1dR1BHIkNmPDkmODZyVitLMkptSUhGJSZLcWNwVGRvKEs5IlEmWCsrT1lYUSctZS5UUD1gREhIPF8qW0Y5ZV8+RwotKFM0SitGKGZCZ0pQV3VfZGJrYUskOVctOVddJF4pcSxQOGU5US9rWF1nUlxATGVvTiorTl4yVlBISl1NRVo+UkwKLWQ1LmQsb1wyYSYjUy0nNGYtXVFGKUkzJkdHcTFVI1hPS2pEZiMrdCFEMy0pdCgsajMiVE0sVjcjbyNfUTVhJGM6Ci1QIiVga1pgNk00RTZdbi0zPF90NlRLa2FPIVByPi4rSjlsJS0pZ2ZDZ2NscUxmalFcdDVuUUNSMiRUX0osZkkzcQotNikpTCUuUlpnXFNBT1YmIUhKSzRBOWw1dSwwS01vVWB0SlErcXFrRWZhPUVeZjdNOFBwLVUpXmVmaFtkLnRyOiwKLVU2XkVOTipKaF5PallPRGBQMUxGYWtLTTQ8MGEkZ1dYWmQwNW1kVz1kWTEnRyVjMUBuRV9BO004aVosTSIuUDA6Ci05Jk1HLkZEMFInIjVAI01wKjw3MEBYIWp0YCEkWGgxOm9GJiRfTU1wJVVqO2pSJXI1V08hM1hZXzdmNj8wXGpLRwotYkRVbSguQWBeJSU1LHFoU1NJWFspYixMMF0+SlQlJUtZKyw6SywhPmlFMGZCS2pjcFRRWCJscF5gWC0ublpMLnIKLVtgMEsuYGImLz9SUT1TWS83WFdbQWwuLVMjO0YvQ19oMGU0Jkc1M1lMO0s7b2whJmQ1Pyw7LjlNXEpiUERGb24kCi06SUhIYjplRFI5RStbTmlaYzE1Kj5pVyNQMGNqNFxcJDZ0IStfPCtAPVRLK0VRamhwbCVMKk4lQiQ0XkIqJF5fOwotTTJoXXBibnUnUEElRFJ1YTlGN2VkT1lnWmpGS1RiRmxlNWkoRXNKUWdhREFZKVUyQlEobyZuSDBbWy5CNlc/aDUKLTsyJS88ZUUhXDgzQGBdLz5iW1hrL25gX2FQcT5wIy5ucV9fRmkyNGZULE41LkciXlhbZklJR1lTQFtabENcR2plCi1BWmNsNSNcU2tgVXI/RGgsbi9kWEFSR3QwYjZNXFZmJE1sTklxWzU3OkYnW2JCRCFMQCEyNC8zUlQwYmcnRFwjaAotW1g4OU01NnFsVylHUjNFZjA+XEozWidrWkhqKCsiLGNYallQISRzaDxJR1g3aSlxKUROLVJDPC1EXDBgQXRXbigKLTwxVFx0KUhoWiVFPWtwKSNcZ3JDS3RwTHNBcUVWWCEzMGVZXmlrczEoYyZwIXBBQD8oXUZlZ1pDXlA3ZW1wR0ReCi1BISM3RSVNLERaLTZROU9PaE0jVTAuN01PYW9XVjwqRiZtO0c3dSQ6blYrMVcpNEonU2BvJm1nZi5ka1lgLz1RNgotS2EnOGk2Vl07THByPSotWlBMMi5Gb3RVT2pKNjZZMDM+QSRoP2lWLF8qJjJnSkYzNk9cVF10WjVVRGQpIjB1SmcKLUZgOF81TT1xcjctdFduK3FcV2IjTWlCRmE3YFU1bDRdQSJQSl1qSGtPIWtHPDxiIT1aWCZPXXU3KWY5XmxTP3RgCi1gJipZRkdjY2FIO1taMV5AZ3Qka0shcEJPPlQhKDBXbF1RcmNiZC1DPFNTNXRORFFeazsiQyQ6SmZKczIpQlpDZAotXStFcWpOKFJ0SjUuTFonQWZjO2llJms/PGdMZU5TVG9CQFVjSiQyXkhGWytVM0tPWlhmSyFaY1tyWWxvW1M4WGUKLWUxVDdgTj5yXSVFNDNiWVIqYkZxZzIxYjJXSixWYjJaT146YGdSPkJFNWMjajNwNi1VZVtGamM8I3FsKTpbWmBjCi1WKWdxPj08UFsqQE4pakcvN2VOV2MzJCttNDlMcFhVP1NRWWpDVXE3bCk/cCtvcCUmXTwpVS1vWGRAPzBQNixKLAotXzBxPDMrTHAmK1ZRKlk2Mk1rKihPczgqSzckPWNAV1BNOG0nRVYsKk0iOjxjLiVJMTkiPGFdVkpoVFYjNiR0LDcKLU9MLFUuIm4pWlopazdSR0lfODZhNyleaD8qZyRtJFBCLVwhVE04Y0RcbVg1MiFySkRyUkBHbCNtWGBgci1VbkI4Ci1GPC8zdT80KTVgO0VaaSs4UzRMRUxPanFMaytWTzpScXE+JSRaSUNSVmlMayJAa3FaM0JgU34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI4MiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyODMgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEyNTYgMCBSIAotL1Jlc291cmNlcyAxMjg3IDAgUiAKLS9Db250ZW50cyAxMjg2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTI4NSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjg0IDAgb2JqCi08PCAKLS9EIFsgMTI4MyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEyODUgMCBvYmoKLTw8IAotL1AgMTI4MyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyODAgMCBSIAotL04gMTI5MCAwIFIgCi0+PiAKLWVuZG9iagotMTI4NiAwIG9iagotPDwgL0xlbmd0aCAxOTYwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZkhYPD5vKGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakRtMmlPXk4vITMmVzxbVz5fYWtHWE9aXys+JnBnayInMDlkTkFhUkwyaDN1VydNSUMKLWBccztyP280YypKXGFmNjhuXiYmO01YZiRlSm0vaDQqMjtJTCcoMWo7SVYkak1NKStyRU1WZjQwVWlNIVVGOlpWCi1CXyU/WCxzbCNDS0hOJT5OOTY9SlBaMDxIX285KyRRaEk7Rl40VzFjbVopblc6Y2YtTyhxOjk1IjU7byM1QEpYMAotTV9GJFNkUEQiOzFaQzQsQDAjQEROZT06a19gcVNeNW5nalIhLm0qcmlzPF5nS0VISldwazAwaGpzZ08yIj5LdV0KLTBbbyhvI0hyZEAtY1RZPCRuX2Ema2g3X05LNClQTiMoYCMjKSRZJWJYVGgpNjMjYGhhWXJLcmUlVCFHVSF0Smg4Ci1MY0dyMj9wbEsoZFdqRjhOZTteaCwuQCZRUzF0MmFpNChdSzpmcW9cYSEhaUgmJl4xQG5lZl5EZGQnOTs6XDYuTgotZExlSjkjTFNYJnJZLl8vR2o3PSInXEooIk41SUUhKnQ3KzlnLDk/IUk1YW9dSlJGLVxMcihqJy4xPi4mT3Q/c0cKLW9gMUgtT1Y4LT87KD4hTiNoJSklLVM3dU9fbUNWSyIiOzJhXVY+aU1vdEBQUmBdJm1fPi4jOWAoLkE7RloqQ0JzCi0tSFlhN15jPWxaKic1Xk4mOzBkSy9eVi1jJ0VnLEY0J3A6XlF0Lyxibi5ZJFM0OmArSDEuU1dAQjQvbykkb1Q7aQotY05wQy85SjtaJWBFYmMpJlMwYy0wTVBLcjItaSpsTCckY1RAR1VGSWguKkRwZHFcLy9YKXE1YWAhWEhLTF5iVEUKLTVWaW1OYE1XPmxmJlE/b2g/ZzUjUlYnQjo/b2h0QiNrO3NGKEM0IyFOTUEpVzhtJU1qL0tOXTdabCtoWkg7ODVvCi1fbVRfbCdPcyFJTzA8OD5fck1TSilOW20nOy0ubFpQOiFoLD81RFg/VihXTz9EaTIjPD5eQj5uM0JeTypoXSMzYQotZWs4Wk8uY2lVcjVoZWBIV1FTTTJNZzRQKFhzTDNnKCVpKXFjb1dsMDFRITAiUkFGQSZDcC91bGc6JEJaS1krTXMKLWpaJnJrLztUdSpaNzZDaUBCdVVXLEtqUCovVk84OTtBazMuK01wKUomInE1PjRWakRfKU1YcVUlQFFdUTBeOlMqCi1EWWpjJEtkLGBaLHExR2piZF1ZPTY1LzEwQEI2K0EjMEw7J08xSVdgTmdZSTQrSWszSidrZmlRY1JKTXFWLzgyRAotITVxXWRAdC0yUiJKNW0rX0FMYVJFXWlOXCtHLFxtJTNEaCpIT1lDPyMqaDY1VCguT3Q2JjdOPGQuLk46SjIlMy0KLVxPWmxoY2wsSlwsRDtjNSc+Pmo4aWYkLF5ETUxVczQoOG11Kls5MkZfOWFtLjY8OTwjOz9EK1BoPGhvKSNUSlYqCi0iYlglLS02PyIlXkonL3VLYEwoKipZUF1jZiFvUSwkLClmXmQrQkBIKiNqSjFjNSRIXU9BRFYpUiIrOmA0LC9qTAotKV1vSUpANSN0RSItWz9yKlstNEhMcig7UDFzVWxPTGgvW2tbUExDKVtic01IQ1E1OV8uS1ldUCUiVVpeIllWLDQKLS00JlRNX20pUjQrY1xHIShhU2BhS1BOOz0hQGBZJ21mMWBBRkJUZjsxKkxvJVcxcVduTWhmNTM4IWg7YCRYa2tZCi1kMS1Bcm8/KjQ6bD5NMThHZlZIXWAwakpbKGtRYF5tUXFiTilbbjdDTmkvRzkuTy5LMSIoRiZsJXIsanRwdC9pcwotJ0JVSG4qU19YLT9yVEZSMy5CcTUoO24vYUZjISVNPkhGWm8yYWFlV2MrJiElYGszO24haiMuTDFqMiFUUW9EMScKLSRPM0RaMk10cW8mNEg2MyN1QDhTNSttRT1ZL3A9QkpISkUja0o5KmIobCQ7Z2FER05nN0B1MGtDKUlhX0BbVE5RCi0mLWpSLGwuWW5ePlw1RylMNzNCWl9jKWRLJFJISjghOio9Plo9JWJcRlRKLVhnSlpOOFNRdU8pMk1bJEknSWc3NwotPl0lP09XImAkIldoaWBhIUFzc1pbT2coXClrQmdJSjFaTiY8K3BoY1klMTdkZjtLSltiWSQsKiUoKUUnIzRzVi0KLS5EblRIRkY9OSswTC9FOUtmPFwnTSdjMG9yRjpCWUMsJl4sVV1MaEg6b089XVZEQlY4PDMiPkU5dGFAa2wlJ3NSCi0pUiExVzI1MyMmUUUlQj5iKis9OlI4T2QqW29XcHVCaycic0RUNj5vTzpWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjg3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTI4OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTI1NiAwIFIgCi0vUmVzb3VyY2VzIDEyOTIgMCBSIAotL0NvbnRlbnRzIDEyOTEgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMjkwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTEyODkgMCBvYmoKLTw8IAotL0QgWyAxMjg4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI5MCAwIG9iagotPDwgCi0vUCAxMjg4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTI4NSAwIFIgCi0vTiAxMjk1IDAgUiAKLT4+IAotZW5kb2JqCi0xMjkxIDAgb2JqCi08PCAvTGVuZ3RoIDIyNTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmBmSGxsYVxoY3RhTzIkVicubmU4ajskLm8yMTtQQmpfTi9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRSNAOksxTjQrR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMSVQcAotJTpePl9cWmN1Tk9bLmoiKV5SPFozTjVDQSZGLDhBQmNYYm4iaUNBPTRLMSVMJGNQRjYqWWUhKjNgXD1vIi1MN2EKLS9OL3RqN2U7bVFqRGxyRzZqSCkvTG1nVVonKm9qLCFLPmtuJVxtZUpvWSMwWSlZY0teOmdVXStpRy8tKjY0MC9yCi0zdDpIb3FBREZAVFwoclc2SnRcWyVZS2trNDlQW2ExO3NaU0dqNyFtSy5LWHReKzwrLzJgcj0kQUp0W1JFND9VOAotIjU7bGUiXEdYWStpXEYrZE08OVhnal5IIyZmPGtpNGIzX3VmRVxAKkcxVkJKailIVC8rXXFlZFkmOFYsKElBRDUKLXJZLnM4Q2NwK2ZUbktTcmI8cEMvMDFURlJRUVxyOiFkYktyZDV0W1IlODlgLzRIIV0/XGgvbi5sdXNhMy8jcjFHCi1fRD0xSzQsIVxlLUhzPC5aYDw9Q2NIbmcoNE9fWzYyVD0iU28pNj4yKXEoaVZZWyZ0UmJgbiJAJjRCQUA5S1dTagotT05LODtLLilbPk5JdGM+KihKMiNFJlU4VCRiQTZWJlNVWVk2WHI3cThrPykibjA8bWVUVVFIbU9XNyImZzIrdWAKLVJiRk5SWUFCJ0hqYHQlYXAjWCZkPltddUBgblU1SWtVLWNyLS5OUl1kNUJcbmQ/Zk5TJDo8PnVWZlo4ai9iYUVxCi1fa1JybF1xSjlZS1xiUidpdFRJUEQ8bCFKSnEyczpobVdkajhtbVA1JTtiKFgiYDZKNiZTLCxdJU4sMThFQ2xSOQotMjAzOFpSKVVodEdsMGRLaj5bJj9NZFVNLDlrVydGL1w0JlU7KDE/XGlpIkFuaXMkcDssKHEvXVcnRDcrJVI/dFIKLS9XUlc+M2ZcaWdBaSRqYCVYOWxxQHNIPTlOPSMxPFopTlg6aThnUjs6OihvbUA7cCQlLj0xaFNsJV0qQ0JKIm8+Ci0xaFg1MTZiSFtES2N1N2snTGZwKyxLXFBJLE5TXCgiLD1sLjc4SWBXVCsmVUNgdHBxL0dqMmEvXzc0Lm0iayVAaAotZW9MXGA/QnBNclc4Jy5lV28jY2otcHFJUDBTQk4+ZSRLUmMvLGhCdUBuPVRSTWtabC9RY3NpQWJjMzdPVE1hKnMKLT5xXHUmLEBScl8oNTlEQnFRLyIxOXBkaCY/MyZJNUQnOG9FMyo9dSJkUENJWj1FVjAxYzZoZ0QlUlg7WEApL15uCi02STlmVEMhbyV0PVI2K1k/Pl5NOylbbyFBMW5fZnFSOEIlIUpgMD5yL0NbcClNOjo3LGNDayQ2QStVPXNUSSJrLAotT15LQm8xQmFDRDUlXUp0JlloJiJKLW1PWjYzMzwwIyc9R3A2I15LRkpCU2w1MylaVSomTiddcWcpTT0jR242SiQKLSdTUzdxM2xANi0nVEM0Vy8+WT1aWzxDdWhMdFIvb21LS2cuIWJyQ2RXVTVDWVtJXWJuYC9CXUliXkpwT1g6aG41Ci1ZWVIoT0l1akZYUzlGRSZiKHFoWCZXbDRJMVRNQ0U1XW1PWkdUUzwrbWRcS0FFJUFqSihTU3BUJm5GW283JDlBXwotTCtwVlJBR2hdJDYkdGJkIThuNlxwYWxkcF1LMWclajlyazVEZUVMYT05YWwqJGZtQ2kvKVwoW1IuKzh1X2pfPD0KLUpAckxIISs2NU9HWERlcjgwWENeTF90YmlycyxWazN1TzokVWBSJyhQc0NJTCssRVtQXzBCTiUkTTY9X2kqUjMrCi0rYGdOJk5YUjdbJ2RFX11uLSxOMDFgNG0wLiZBMmQiaW8rLktaVWBaazQvPj0nOGdnKkArZCxpYUQ9M2lqU0kiQQotPlRDWS5yJkNoNC9zUmohNz1nT1gzYDFrIjJAcGVkIWtZZ1s6L1U0PCwqTylZMHQlPDVgMlApJjVzTzxjIV84SkgKLXMta0E1JG4vKilFPDJsI10hUGBvPWtkT0JZKC87TTJXQTJfI1VzbzNUaTdUJUFmU15gQ0tINiVfXWR0L01QLE9rCi1TdTciRkpjTm48JzI6cm9NIVBwVT0vSD9yYT5KISxqUCdiakNvODZpMEV0NnNfaCpFQSQ6MVVKSFojdDQ3Wy5wMgotOWUjaDk6OzNUcEpEVV9IQm83O15tKShvSzkuPTFWL2g9Nmw0VSpgMiohPCQjU3VFUGVMRzgibUMvJUAqWixLXnQKLTVqKTlWTXBqdGduYHE+R1o7IVlAOzRMO0ElZyEiMSgxNkdCSi5fXy4nYy8vPitBQE5AS1tzMkBrVFlkIypOTjNzCi1BLyVXWUY6T0cmYlg5VFNHaGg1Ii4nQiguIyJYaytLJFxISFA5O15mNWlGNUlgLTJYPEMzZEtvWFNGLz1uVGYlOAotUihbXmctTyRgWSROZUNUIjo4KCs6SSozXUstRD9JITNlU2FbJiYuUiwnXmhnWD03TWBvR2c1W0ZAM2xQKEJyZUwKLSRHY15GX1AjIWtLITxCOyIuZXBaUW5KMmdYO2tXcWNtVDYkTztFVSU3PSRbN2xiQlwxJ0V0UUkmQz8mLCtPbnJSCi1gVEhlXUpcWDBeYzJzJEdCK1hGb2kjbjBKIlRHckg3XXQ7K2lcNTtRKEJaQElTdGV0KEYwYGFSTDI8Q0BlSlZVQgotY0dec1hAbC1IbCNRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMjkyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTI5MyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTI1NiAwIFIgCi0vUmVzb3VyY2VzIDEyOTcgMCBSIAotL0NvbnRlbnRzIDEyOTYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMjk1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTEyOTQgMCBvYmoKLTw8IAotL0QgWyAxMjkzIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTI5NSAwIG9iagotPDwgCi0vUCAxMjkzIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTI5MCAwIFIgCi0vTiAxMzAzIDAgUiAKLT4+IAotZW5kb2JqCi0xMjk2IDAgb2JqCi08PCAvTGVuZ3RoIDIyODcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmBmSS8wTj5SY3RhTzIkVicubmU4ajskLm8yMTtQQmpfTi9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRG0yaU9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VXJ01JQwotYFxzO3I/bzRjKkpcYWk1YjpwcGYmVk5USVl0ZCx0KUkhbWZjOi9JdVRbST0oUmZpbjc4Q1ZCJjE3M2NsMVNLS2MKLUJmWiI1RWpKTFpcb1AhMzk7T3NULUhTdTpfS2NxJ1VmX0ZRWFdhb2JWMkMpdT9sJyJKWChJZDFpQldubE5vPE5MCi0pJExGRmZKOEpEPVIpSzIiKmopazBrKERkKWhyby9XJFZjbyc1ZmFmSzwtWzolWUshazFROClMSS5JYz8hOG9hRQotbkI8cEwiOVo5USg4bXBobSU0Q2pbIVhZPW5HcEhFTkE8UigyUiZzTGNrY2ZqPCRfa1xtdXV0JUtyYTRtTV9GUV0KLU4zXT1ASkI4WyRjVS9FaiRcPVtVKU5CZCwyXVRgXyExT1FnT1lmb004cypwQmBARUZqYF00MlFNbnBBYCE8RDdBCi0lJjRaZm0pTXJ0aSZBUSswXjpTKkRgXDo7OFdhIzM2cj88cmBcTlFqKHUtcGpjYCFjVy06c2ssMSg1RE09JGsiYgotYVFHKkkvIi1lXl4/W1Mwaj5eZ25VKU87ZlVSVys4aUohR14tRD5aaiYuMm88Z0UiPFkqQzNFS1g8UzBOS0VJSmEKLS1CKyIhY1VRI0xSTkY1O18zTmZUVlAsUkQoSXA0bGAmInVCV29tST8wNTAjM2B1dXFxQVIxWEVhTDtZc0hBPGMqCi0sRztTTV9vITBwJ2IuNkNnLF0/T1RfIidOZllHbHNNaCtEYTRsQyt1cTFEdVM1Z3BpYXBqUCUyI0pvW0tPRyFXZwotOUZ0ZGNXJ0REOTYndS9EaypbRVIjMmtuNGhTNGFGPFpYL1FAPz4zIjxjdExdT0cuclc1Rk1iJFA1I2shQ1JYUlEKLT8rTilQNTNwb1RfaDRodS1BU2VfXStzQTYvNF9SUVZhIWU7cHVUPWRYOUFZamVxS0xwInFEVWlrUi1hYj9RZk9TCi0qJz8sMEElOldUYSJxSTM5aUk7SiUvLWBacCs7NDVqJVNfTCRyUCsiM2pKPlhfWHRxaV5rWjUmMSdIUHIjLjVSbQotbjQtY0c7LF5JMDxSMyVQIjA/MztiUyhQLVp1PW9XUzp0IUJMaDdUJkVJY0ZUcTlkOis0OltDRDYmKkdNZFg9ck8KLVdtKzxebz9Qc1oyQF1gajJcKGtDVjBGQjpPaj1iWG8+O3V1MnVVbj81VzsiQiVqIWMlMTQubCo9clI7ak1UQGZWCi1FNyxeQ19aKCdfN0heWk5oT1JKcGpvYlxLP05hcWpncVtbQi5TQ0htJ2JHJ0plbHA9JGlEPm5uS15OXicwUGguQAotTTY9M0NmJFRzVC06PF5FSGxZSyIkVkViTzJRSi04MWs4JSQhX0AzO1dfSXR1VmFVciQ9PEwpLFNVYD5pXnJkUV8KLWglI09GMGEiKGpIV1kmOCJZZWo9WUo9IUdiW18pWVl0O3VrTGBEVktxRlY2NW04c0Y/OC9qbmtmZk1tTS43SGUvCi0pYWhELj5ZKmN0LDJoK2tnMkpUVV5wIlkyKHFDSFhYPUs9aWkka0BNUy89VixBUlksQzMyXVNUI2MhSipPTzo7JAotSms0ci4sR1trZlReIldCRj4rQzJQYHErPmIhUkpDPnE9bjNWSUtxNjNqQnJOJEQsQHVIRC4sczcsVjhaaT5ITjQKLStkPVtsOmUySXJNYDprQCEkSHQ8TllSdWteNG0mbS87RWc/KWpraz4jcEN1SEsjcyZOQURAM0ZXRlxyM0UnT10qCi02YiQsTTguZVNcT0ooW10+UmVLKzZkQE4/aUs7Om8jRXJuPyI2bFI/TTYqbGQnLUsnP19IK21GSE4uRWhUR048dAotXC9gPWUwLzVfUjA/dDJtKFN1RjlIQTh0cjdkOjpHSyVOJGpUUltUWytDdCNAWnNCOUZBMDxCbXBqKHFaVE1gZXUKLS9DO05aKDtvNUQibFxxazsnOC5ga1U5c09AO0hnOGcvQ0hlRiI8WURQKls+R1g7T0BXMThKPU01OCRlRVc5QSJACi1CTi88J2IzM05RNlVYc0g7R0s1TDNoJmVtSjIlRzxIRiksaltMRl1DPkVhVDM9MThOOjVYPlFzVz1cdE8jP0BwYwotIiJNbm9WRExFPCdpOWdNYyNYRHBBLmQkR01BZSI4TTNNRjdvWk8yVi5ccy5xWSNHQjg9WGBfZVIhOWdDIU0nYkMKLSwyWG5hRmBXaUFZMT4jXjRyS2A4WEdeb1JPUC5mXUQ4PzNxJTNecnRZamM8NyFHMCRSKD1vV2lNZkVMTFF0UW1ZCi1QdVg6ODNfdEJZNDE6SFRqNF5pYydeW1MlI1ZpMDFMRzJNQ21cU0khYDplbj5GMEgjUTMtXj1GJ0dIKT1xIjVKUAotXnBqQjcrdEhtMyQ/JCpWXU46KCQwYDAnMkRhOFRdQEMjVWBxQTRPXzVZK1swaFljLzRsJGhlP08oNSRJMS44cSUKLTwpNipKJVgpQSFAOy5UMmdQV2diS2guJTNQRW9HU1wxVl00MzQ5SjhSVmxGdSU8L0w6NnAhN2FMSjBJKD9FIkFYCi1VaVxrXyN1a1BgLGpsZ2NpcyRNVC11VldXPDpZY3InXWJMIyMoWzk3NyhZOVhrblFaVDhXWjZgV2pkTmViWDxSSQotXEFbVGFPR3FIamdXWjk0VT8nLTBSaTdtSCtEVD8kT1sySGtBcTRScn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTI5NyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEyOTggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEyNTYgMCBSIAotL1Jlc291cmNlcyAxMzA3IDAgUiAKLS9Db250ZW50cyAxMzA2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTMwMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMjk5IDAgb2JqCi08PCAKLS9EIFsgMTI5OCAwIFIgL1hZWiBudWxsIDU1NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTMwMCAwIG9iagotPDwgCi0vRCBbIDEyOTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzAxIDAgb2JqCi08PCAKLS9EIFsgMTI5OCAwIFIgL1hZWiBudWxsIDU5OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTMwMiAwIG9iagotPDwgCi0vRCBbIDEyOTggMCBSIC9YWVogbnVsbCA1NDEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzMDMgMCBvYmoKLTw8IAotL1AgMTI5OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEyOTUgMCBSIAotL04gMTMxMyAwIFIgCi0+PiAKLWVuZG9iagotMTMwNCAwIG9iagotPDwgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9OYW1lIC9JbTUgL1dpZHRoIDU0MSAvSGVpZ2h0IDM5NiAKLS9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UgMTMwNSAwIFIgL0xlbmd0aCAyNzMwNSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUozVnNnMyRdN0sjRD5FUDpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLk9AV25bM0AnbmItXjc1NztScD5ICi0+cV9SPUFsQ15jZW5tQDk6MW1NOWpTIiFkVE1UPCQzW0dRJDgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjQhZzM7Qj0oaVo8a0RxT2gvQmYuREhBb3JmJ1Jbbz8+aW9Xam5BWSZeZ00rYDQ9MWpSTFchWUEKLT1NLzYpKktTOVBFYGtOJT0iVGNfQW9oK2ZrJyZ0XGN0SU4pNFhRTGlWcG9JKD4ubk9XPypEbXNHJEAsLGY1OCJQCi1ES2Y8dWs0YTs9aSxFcEc0c3EvK2E1aDhkPmVYaTBTXjZNQUg8aV80PTA6KkBHJ2ROL2tCRlZzbjlCPWU1OjtmQgota09hKEs/R0MtXmg9KCxkSVU+PTljMTsnY3JWbypDXUZYXmteU2hoSkt0aFJXbExSNG8kayEqTm4uWVsiVGIpI1EKLUw7QE8jKVshYCxTL2h1J09PUCdFNkxYT0EiW09qRzVuNi5WX28yXkZFNGVnV2BVTUBHcyQnQVYtUUMiblpySU9UCi0wV1x0Jl5bWCZpI3RNNEk0WC5wYXIqTDVXWjMyNlM2byQkSy1xTWBSWFgoTiEsWixATG5kTXU1ODIyQmwnJDY2agotWXE0KnJvWlxYVExiLFNSN2hbRnIxWDplNStaRTBbOV8xPGcmSVxBaDpYZUNONGoqNz8iW2daTzliZytFUFxoRjIKLWRMVklrOENFO0ctVkRnYSJZV1BJLTRNbi87PXNOSTgvTzM5NT5mZy4vUEImP1s0K0Y9ZVdhP0Y9NFQ2I0szLVdoCi1YVWVSZDI6VXFsPHUkRjs/ZTRvW0xIOmVrJk9cb2QoLUtsTj1aMFEpNWhYUltUay5BWyZIY2NPWXVSUTFPQjBvQgotRFNZdCpfZjRAUy0tTEA3cENbc0UoakN1JEdobC5BXk5TQCEoI087bkdIOGJxPlNoKVU2IW5pcEwvSGpTJCY9JTkKLSw4TTtBK1A4UjQ2L2ApUEs3cGc8NGc3NFxfXFAzZCNZNlFvR2EqSFEnb1YpXkwuWT11cSFNQz1QXXU3ajYnLGJsCi07M1twSVBoUVs4Wm0sSSRqTEIpNU5vaDRGOGpTRjNZInRQTSQhYGdnOENCVjJfPDslPyNFUyhtZEtjJyIzaVBTKQotTSMoIV88VSRKbl1kVi1ubyhlXjlLLSVBJCtCbXBoWUREM1UmJGJKai5VKkciOyYmMy5ZWmtOPzElOlhXNkBpVTgKLVI3OVEmaUFjUUhKUzdKWFZKZiRvX19MVzdsTnRDSFJzJSU/I1slMzZgOVcrOyVSWicyNTNgPUItb0hxKkVpQ1toCi0nXnRVQkJkYlhGVGBxSzZdSEUhVkY8KHRuUlYmKkQpOlwzM0plKUA3LjZQLXFtNG9bYFxiQUsuSDZOLytzK0E1YQotVCdvSjhKRGlJVytiPSRJJFg/aGcmbDJIZjExJFRPN2FyZDdbckBlR2BVIUNiYSsrY3NJZCUoMmdnRExXMDksUDoKLUBLcm1QLiJZU2lSOCNmbDVsQWZAU1JLZVFoYG1JNyY6a2RrSGQ4LU1ccltDJl8mTUQ4aSZoPV1FQzs2RiRrIj5cCi1DJWFnTzBhJWtgKTFrVjdjRz0vZCJzQlxaSi0lOEpeYFgqZWk9bU9bQFlkQjxMX1RdVkVtUFhrQykwLmEkak5ERwotSjFnPzVtKG5LLiVBKSUwSV1yXz1MOkRSOF5gNVVtP3FxPzlUYV9UOCRxTU05InNsWzMwKy9lTyNEcypdTC1sJGoKLSE4dDRiJHVvWXVKaT50MkssYWghaUxEZEg6ZmRYbCRwWHI3T3RxaDliby5CKSNFPWtSR1JRPlUwR08vSE5bLEIjCi1hJExMXU1gYzYyJjtCWWw9N1tqY29RdUteU100MmtdRipbJU0zMmU+JCo6WlkuOVE1KU5ILm9oYWBUX0dMZmJSWgotWj9aX0JCaS0/KF1SPzE4NG1ZLiIjOWAoVTkqSl1VKzM5TkoiL1ZhTlFKbjZRYDBmOG44PGZRQztKXm5YLj5LVmsKLUVIUkNBVEUzMkxPIyNTLTgiJm9gPTNESl8iSls2ciUpTl03OTo8SStWWkA/cW84VUUpYWlyT1E3LVE9ZGlQSVgkCi0jOFFFTFctXj5DQk0vKiEhUGhzayErOD4oL29dJyFmXi0wbEVxNGFCcT9LIj4+XVFMdHJLQydFISpnWkxPLVBuawotMVdrImcxN182M1NsJ19ZYnBrPXBLZiU+VEZFTlVAcT1yITcmSEEpWzxIbyoqI2NhMkQ6Um9oWFFJKSRiPVgiIykKLUVJazZyNGRtVCRCdU4tKTw6aEppcTUrMjQwWkZnRCpoYFFsNHFXRURNNF5rLzBwIihBWmlyO0QoaDNsOE9XJ2dqCi1AclZYQV51dWR1TUhvJXNOJCpMaDY6K1ZNN3AiaEwsNltaJFozN0M8bFJQRD1YY2dcdWYpWk4/PkI+SD5pKk8lRgotJFZhUE1tM10lLFsiOD0/MUdHbVRyTlBfSFFyWE4hK19xZ1RTZSRrJz1cPHVSXzA/SWtAW2FaXUAxNCU2IiE3cmYKLShjLD1sNWlGOjsnLFhjPWRnQyhpXUlLcnQnSnBHLyYzRiwkNi1aWlpbYShxPi43bTshaShMPys2OV4mYS00LkxqCi0vJT42UmVtKGh0RVU6WV9YcWVsImE6ImJibVxTTEdsbExdYidxaE5wJyQ2O2hycFNcREYqTSI7akhMYnFLWVQ5MgotJmEtISRdbGAtKUtQVE9vQyQ3NFswIUo+XD5FMDxPQGlZaixtYSZyU2EoWzAmNWVwI1lSTGtROE5VYU5xPHFtXk0KLVhLJVYmWV5SKWY5ZDZDWU1vbyUxOEksPDdNW1JjTDIhVCFoaXM8RlFwdG1TUkxyRUN0J2l1NS4iRkdpW1oiPG0lCi1cQGJbSyZQW0RCO2AnRlkoRUAmN0tuNU9iNF5cdGYjQFI3ZWRWdD1cVUk1ay5mZUEtbV9IbEUoXE8nMWUrQGRXXAotPzwiV11dR11naVs/aG4sU2Q4SCRjWG5VLFI3L2ZlJlFtM0FqJDxuZUYpSVxsKTgwc20lLUtSZypeTCNraEghYSsKLU5gPjVoIiwjWUMraGVtRCdDO2VgYWRPOFIiPzpvPFpxY1AsT0gxdSlTS0o2bkYuYGZTUW1HZk0qTE9fY1IrIkFNCi03PlFAUTBTRFdeZS9GNWI9MFksbFtnIS9CPixNVjYjbU1SR0cnXSonPFkpWlkmJDlaPkotbCt1QmheLDckMic9NgotIkNSXjIiSzBHIUpYQClPcVxMZj5DUjs9LyptMzAqM1VGQkNKW0ctR1ZtT21dRD0sK21aaWdsdGVDJTNdWjtAaEIKLT42T05RJ1lARzMqRylqLjZtJGI7YGo1JWU/XjUuYTUxVmRwSV9tZEcvSG5wMWZYcis2YTA6NC5wMFB1VTNWWGJQCi0tT0hZcEw9SGs1Oi1uSCIvXUdeRyk7R2ZHRUM/XT1ta0JTKyIrPipqO1JOUkk4Y1Y0JXIyNmlAWVlUWjcjO0VIMgotVUtJISNQUy9SQUB1UXI9PDk6KkEuXzVpXystb1hrb08sX2YyT0tFVltbTGskbTZuVGY6SnRWWlQvKk5wcHQkVl4KLT1XZDM6SzY+SkwwS1NkTWxpZD9uJkRrT09AKDBlKkc2OEZ0cmFYKV9ZUWpMTl9GPVBcJ0FZRmZhNnNoVl1tJTolCi1kQSZvO2c3QVxoRlBZXU09LWRkcDlFZkNoRmQxW29NaD5lVSszT1xoMjxINHVqUlpwWmNCLUA6XTRFOk4iYToncwotQFAiUUw0W2BgTzVjX0FJT09HZEVKJEFXSEhIR21NZUgiaC5AaEBIPTJbNXIqbWxmdUVoNFFFPXIiMjgrWUQ/SEwKLVc7LGcoSGAmcSNEXnRTKWJgYFIzLEVGNkpPLz07KnFZSjhzRmMucXJNUz8wYj9NZ3AiUlZGSjJXPW8sSGk7Q3BKCi1tWi1TKCN0RmxkUy4zTlUlOFlzcGMpMUtVZTwkYDBYLGxvVFhEVkMqVTIlWzpAdD1kJitbbCwyTG1jRlNBU01ZVAotOFZDJ0gxKlsxNDdyVFkiSjUjZ0AuXGRQLCRFQ2ZDQ09qZzk5KF5JXW0+bzBnY2M/RDhSTCxcXyFvWSgsaT5OSCkKLTtQISpjXCQqbVdKNTY/YWJSRXVLJlBxXXNFK2xoNVFOJ2RdQCk1NUItWzh1L0U1ajcuSnItIlpDMDRxcyRPSS1gCi08RFhTWTpgYEdCV1djNHArUixqNFljT25gIzE5KVYnPGIlQiYzYm0tJWc1X0olJDheQyFFcDU9LGw5OkxaPmVZQgotT0Ncb0BsNCktUyVJaXFxYkxGS0IvN00mNmxOVVQmQDEqIUxXPVlzZ1JHYSw8LlskZkhWVkNIWiIhVFkyLEloQVMKLVw3X2QqJm5lRWw7KmI5KV9cNW0rJzxualI4Jzs3RDVubV4sKjNpKlhPTzRMLDtWcGY0WjdNPVduRiUsaG0xdDYtCi0lSXJmKTBsZEVbPUNCK04kbTxFM0wsczowY1BUOSlCXmdjb1daR2stLG9LOnVnWyNRXGlcX1ZWWyFmbUhDJDQ+SgotX1BkYFpVQ3M6LSleZV9nbTBvUEFfXS1pPUtROWQsJFNeRDAlMzIkPio6X0plLiIoNjoqbWlnVCJbSDwhXz4sLSQKLSshK2dbKGllbU9pPVpfV0U0by1Aai8sSD0iZDRJTSRMYz0mK0RRRTxkTDo+bWBpTWJtSiYyRjZKMkA/WVtiT2BNCi0sOVtSKFVUQTpwVS5hUz8sO0NWYWlYbE8nOkYkN0ssWThYLC9jc3MvOkUzODQtJUsyLkVSPmRNPjk/UTklQilWRQotOzlMPSFAL2U3aSpnMWp0ZFhWb11WUT5yPERGUEJZNW0yOWElIzIlbSJxLURAbmRfKGZgK15YLlM/XDxkXzFFNFEKLVFsJmA0LDZwdCsiQlxFMzFpbCc+LlkqTDBpKGshNjU6cHAvLFY8TFkuKjQmXDVubV04IUMwVGYxQD5JQWcndD5wCi0kQkEpcDtKQGc/RXVtJ3UlRFxKSkAlSidRSy8kKFdYRk9AOmpmaWhMTix0cEotWko+XmMqSzJXcmhpVGUmQm5vNQotUDxoJCFJNUksIy8qIjk4YShbREgmNSlHYC1VPFVvXmcpIislbFRTRWskVVteJUZ0TW5CZUU8SCopaDJDZHQlcEsKLUxFLyhJRmQlcD1NRDZJSTx1ckw3KDRfcjlrIkBhVig4bkxBRUNIKzVvPSJALTU3WGVRNDs1U05CQ2AscSF1UycoCi00VkcsKy9dN2w8MEclWEQyIkA+KSczJyQvayI6NiktR1VsNGkpVXVMcSoxaltxWCl1PG9FUlg7N2dibig1a0JGLgotWkw6KHVkNlhFQFUrT3BzRjdEUzwjc3R0aDZQTT07SkpAYXNNSkNZXj9rYm1nQzpwPiJlRF8wOUloVGlLITYsVD8KLSVMZEJfLmsudD4rVTg5JlJOaEI8N2FgVlRWXzpqb2pbWXRMOCpmKFVbImE2SicxZ0oiS0NrOXQxLy5oYydoUGVbCi0iXVYwZjFQbFBRMTdlJ0A5L0o0KGUxOnBBViIsM1c5TVpsNSFDXV1IOig1S1tnMnUmI00rNWhaYzQiKkk6I088ZQotYj9VRS0+dSdQcT86I1NVTElYaDo3by85QzciaEM1QF0pYDNONHBKQjVFbENNRkdwOmM/aV1qQTtBKWkpRmc0aW8KLVRmPyUtJlszZ3I7N05BNkNeTkcoNkwxJStlXUNLbiM9Q2FdImBLUUo3QCYvdU4hVz44PEwkYkktVm1iTmdwMFQ3Ci08ZydEQ0NgOi1ocUtnLl4/QGl0M2lYY1tvS01KbD0tUEtlZjVWNixdUWxvPUssaDhMQkZWazJHL3AzR1pRQmBXcAotRmc0aVAwM2FdITJLWiZub3VDPTFoLUJXcjwtMWxJUChGOTI+UXM+M0UrY2FlL1g5WE1QZGMwNF5ORWBMPFV0YT8KLTZJM0huKEdfc3QucE4vbCM3cU4vQCk8UmMhWSVtUiRXIl4pQEE3WyhwKWpONDVAVGtAOE0zZUsxbSVqX1VIaWtfCi1BMkFYKyErSDlYVSgwKjYmaCIoZm9mNVI5KE0sOiRYb1I5X1E8XHBUYSJdaGI3OyhuREJHOms/NystNyNQYC9ZcgotWVtlMl0iSTRkWFBhNyszbnUvSGVPOTZWRkJtJ2t1X0BWQUUmPEw6bEA8IVBCPGo/KmJYKSIkNFFCImZEbjEvIjUKLU9YMWMpQFw9YkNeYD9WWiohKkxxRC0jOiExTTpTPHJvUlNuREk/XVI8UUdLaGlHU15sRk9wK3MxZjY/I3MmQ3VeCi1gR3MnU3BDQEkobTtZXSY3MW48dDVuQHVQK3BkbignVkxDbmVzUTcmK3M/LEArU0hPa1tNOGlZUD5KX1ZeK1ddNAotVzYnL1A0TEJWbC9VIzBXZjNyaShCRWJpbkcxVV5aYTk9ZyZIJD5uckdQP2A3RmlYYlcobSRFWysrVChXQkNeOGUKLTNiK01HJGtMRyttYltvbC5oO3UjXlVKQldUYlt0Iy0zXFJSP20sal9hJE8hKlc1K2BVSSVoJ3RwQ24nXGUxK0ZGCi0hbiMyPmZCSShZKyVoWyRbIigpWEVfViJKV2U+UylGcyVOQ0dQUWBzZWRhSDFyJTJEaChfJ2BDTkdkW00jIWNgMQotQkphUylbI11zdDEsZkVwT2lkdSRfaDBWdHJpLC0hYmFCRFhjTkB1SktTTks/KGYsaTQjJEY1Y0FnLmtzW2tvNFgKLUw1WFlFT0xTbVArQjUrZDFdbFQ3ImAmYUg8IVJsPkglJ1k/Rmd1SVhSIz9kUEFjXFE3TS0tMSZcPUgxIyRbO1pJCi0iXm1VUVImdThgWkImRHVVL2JaQVIoVj1ELy1ULnJOL2E7QmFVNCxFRkY2WWolL0M+N1g1XkYuIWtEcjEkcTpHVwotbmcjP1loaUFyY09HXzJQSmhkRGZhKGlKLk88PyhVXmMuQEo8ZVFpb1JcMjxyRVBXcSQoQC4zS09tJ29NMzAiJE0KLWBLSV8sJU4tdGVORkRuXj9qOGw1UEkpaXRcXytTb1xMS2thX2hRcUw1WGdWRGI1QDpXVDhxZTRIIiEiL09IRChKCi1vV0RWaCtFSTsuR0Qtb1xOQGA/aGlZLlxscGBQdWBoSXNUVzY4K2BwPSwqJ3BSTSFdUCs9RVcxS2M7Z2ohbmVMJwotMW0qN0YtXiREc1M2NzsoW2FnbnI5YCJTNlNVJnRSZU8+QTMlaTcyTkhNUWlzTFUlPVIjRzN0LCJraVhCQCRDdU8KLVA5LjhEQ15dKmdYPXNcRF1xRjpZbFtXcFYzSS1zZzRUOGJhJ09cLWZuXnVFJSNFT3MpJUgqZmVpV29WZixkYHUrCi1VUiEndV5mQDBLNz1MQ2FHPC9CLShrOD5RQlZWIyFTM1M4IjNhYDpRLy05cFBVSW0zQGZXNUVGUTNmZ1AjMi5cLQotQ0UvQ1lybjdzbWg8MiZBPW5BODNOTXVbSzZNZiJEZC5WX2smLS4kT1dkNTBOXmJ1RTYuTD4zaEBIYyNmcVMiKXMKLW1iT1RBIlQkNkFpN0coNCJOTDtpWGI4TCpSQFhMYFVLdEYwWSRgb2NbMWNHJydeTDkmWTtYQ3FSZWArUyltQTEvCi0hOz1yLkZXInVhLktSPTEjL0cpXEgvSm5KR2Q1TzRSM3I5ITIuP2hWI0c0bjJaXkFZOmdNZFVJQicpazYlPTRmUwotSClBYGcvXCImY0tfbm9RNWZMLmk6VVc5OkxZSEpiOUpGV2RFT1NWXCwhJk1wR2xTJCZLOjRRNFxAUCtHbmtYKGQKLVFXanRPTjB0ZCEhJSJKUXJOSSJVRk9fNWkrO19ZWl1ePlM6XT4zJFhmSFl0Ui85JSgwS0tJX1Y7dDcyP08kWislCi1vUiNbaioiOzJ0JDNrTkgiMkdcPjVXPUFbMDovV19iaSckPiZMKj4tO28lXkpkQClUbW02VyEsXCx0QUEyJDBWTAotVEphYjQ+YGtLPExtJEItOTguMzdPMkFbY2AjTS5AZ1NQJTc2UE03RGA7RVFHVEdQUzpdRTZrcEZdRG1qa0ppK2gKLU5ucnNQSG5pYkVvQzlORFpMaSFSNl8mYjBWcCEvRyRjcjN1XFMsbCouM0NZUShXbGRjYU8qPHM+Y1EyX2NKRXJTCi0rZzNLQFNAVG87RjowPVNSPV0pVVtOVy5jYDElWjRVZzIwXjJFZXMkNlxyRWpbJSxzVXIoIyU7VllnY1UqIzBAOgotaSU8N3RTXClbUiFtVSlgSTA3aEZpa29WWGVqKiRYaSpYa29HOik3PiQ+byNwTz9XOy1hM21vcGRcKVRKazxoWEcKLSYoPk5sMmddM0lEYjhHXmMtJE9MK2pSXWZpJS0pUTJxPFA/ZVxZdE0hJWxjLEY0UWwpRnJMWmlmNDA6aitwKGoxCi1SSldcXXJJTTBCWk8yNDBla2l1JDBlcDpqL1owVF9nITQqXSRHa0cyYDZiWDxnPkd1Mj5dWmtCWk5GVTVnWEo3KQotXl5nNkxTcm5QQEtVcDZmNWBFb1dKOTJKcCZSYS90KlNdRGpfWk5iIVhQZFt0Q2k/XkhFUmA6QldkWEZeY0YrKjAKLWM4W3ViLTZRT3Q0Xm5NQUI+YEUpTHFCQDAobD4pXF4iMG47VVJpUzA0L04nNzRVXE80bTpUU14/OS1dO0dpZ0hBCi1qPlM8OXJONS9XVjlvOUwiXDJedS9jayg5a2U4Zk5rITdnbVNUPmJXTCQnaVNHVE0vP0RRazVeZXE8O0xgJz5bYAotWGxucElQSTNeb2xiOHFUQ0twRTQiUkRZVWhrSG4yaSR0KlpAS2pJTmxePWZjUyUsNV0nMmVMMmxzQEJVKlYmTFEKLWMycCM2Pk9hSEJcay0/MkQ2XVkjIW9FKS5PMGBpWCwvKlpDWTFAN1NjMlFXQk83Ny8uIismO2AqdGleZkUvdVQ5Ci08SzQnTTVDRjRcQydcXXEpby8nWlRKPlw8M0lbIXMrSEoqKSFZbG1cJmJNO3UzNTJDPiEqVEZmIVd1UlVvcTNXNQotXz5rQVsibE9yTlBUQ0FMS2BwPXFUUWlMQCZXIjk/ZDkqVlQsOGxJRDYvXTlGSGttNlQhVFoiPSJKLl5nJE8yR1QKLS4mXmg5Lmc6ZEppJVomWUVBZUVSI2tRSixkVkNmRWFXc2hfRTUiQ1cjRS1URGQjZ0deMDo+PkxBRmMtTmhKUyc3Ci1fSyUpZTQ+b1lQT01rVGApJStfWyw4bFZXWmxRZ2FzLFUjazEmRVBnJ2hwKCk3aTBxUCdLOlRaP3BkNWFlZlBLWgotSileIWNkRSQpQk5QVVg1Mz81SjcwcSQ5dW85bkQtSW1LZFVCXzUpay1EKy8wKDUsI2FFSzdcOi9kWGs9byEkbW8KLUU9Ljw4VTBIOD5lMTs9QWBvc15nLztQJkRPQmpLJVdGV1NAQ1JHNGUxUllXTjpIZSY+QTxhJDgvaiFAJDtnYWlLCi03NCwkNVg0RG1xYjNhVCxAXjk7LCI8b1MjaC9LanAvdGZoZm1Lb2ttXDdSMW5iTl1FQllcWUc6YDUvTy0wWlVLYwotKGM5QW0wWE5KQTZTUiJKY25zLDE1MSwoZSYyYCJXWGJcPGgtMSIhPEtMJCxiOnU3cGBxZUcoTE5eP01cVVQpLHEKLXJaazZYUFQob1ZkJTlLUG1dcGYmVyFXPDZUdD81TSpxLSdASEMiKytDNVxHb0wkcWowLjFUMEgpQDs2ZDtFUTYuCi1sUG9nOFhXcFpuNiZdOmxoRClkJ1sqWitvNkM7WDBecyEvZF9fP1ZqKSRfbCleYlFtXjBSRyowWWNPb2w3VCRPOAotKnQ2JzpLZE9nWDwlb2c4TCo7ZG5gNVJqVD5uZD83bi9ZN0pjNGsiIV1NSW1jViduU2tIS0hNXkZGcUVPSjZcUWcKLWFZKE4hVHQpZkA3InFlJDwxcCtDbyE/VzlXSzBsUDAkRUhwYEExLTkzcG1SX19EJTY1OiJJaFJyWyxiOmQvZCNOCi1vKW9MZzFec0lOZC1RX3UjZExgRyhKOCFtUTAxV2I9Lz9uZjtZODNsTUZeRSZFL09jcEY0dThyR1FTRzVlRiIvKAotPD9xJictV1xkSypGUC5oYlhlPWQ8dDtSOT8lbF1KTEtFKjFvPWo5NlgzSFM+ZmEvQ1guRzltUjJNLWNkSi85dXAKLUcrXzk+TGd0a0IyZDxgX05ncz8xYjU0RC8uaW0iQiIiXy48JTtBTD8lYDoiRmFFO2pwXSFlY2ZoVixuLCZfLjAyCi1CN0MiS1pyNWdKJlM0TzMhXTkmWGk3LkVvPEtiSzgmLWA0Ol5gQG8sLFpVJD4yaGdxPTIhdV1BPzlRLWJsNURhcwotLyE5KjQpMkByXTxLdDplQ3E7UFo1ZSo9MyJpdUY1cTk4cG9QVkovQ2lsQVNUPW9OdUZMMSVgTlU/S0hYT01qdUwKLUV1UklPLzpWOU1MSjB0PkdcX2ElSXNeS2YiJl10ZlRaQXBtRC0tL0JpJC8lU0VEZHFDZWJjVVs6KS9BbCtwYCx1Ci1dJ2Q0KGdxIVNSUU1KOispP1BYLG46K0w9PTRaXTBfIz5MKj1EKmUuK2hhNS8wTEwlPChCSGRCKmJhZmNjXE86MwotJkNZXGojXHNVWjEnZV10aCw4Sz9ZLjZlW0dVVnA7WkEmSFZoNUBFO1stcTxAKytzb0ppQmUyR14wWDBFMyxeQGQKLTRQJVstZUY0KHFEMz0rZlVnRC5LR1JjNyhoPG9mJ1xjVTMiMkxJdDpXNHAzMVk/dDRcLFI5LiIyXl07XCstNzpmCi1LbEVuP0ItdV5LI1lmZjBxPmA8XEZTXUFqImJANDFLcXI5YyIoNVVtIzQ0aiRRdUlmI0ppY1xZWVovZSZSKz9zNgotb0hdSiw8LihZbnBFJU9oSTUvIy1iZWNAMUI6JGZtMjMwL0Q2Rl4uaExvYDZTP3BycTlcNSckXldpQDZJYmA3NFAKLUZvZEVzNUBmbFsmayJcJkc4ViliM0g0J0o4VS1iQ0xhNWk7Tlxwa2hgTCxhUkNma2EkMyRlWDg/SG4+OzNzXTo4Ci0yOSNuJyNpY2dvTjZqO2tQVzdyOyxBR2c6bl0hUSM4WGI+RUJSLF1HQWAxVk4iV3E3RHMtcUZMRSkhOSduX1VRLwotSEEzYjlTLTJzSlVsKSdhVF1TbG8jciY+JWJCOSMuZUwvS0BNXlguNTg9PCRmInFnKXJfaSFYWz05V1IuKEoubVkKLWFCRWZtRW1lLUJcU2hFSkZNIW1CRklbciVgWS1HMUEhYSVOTGBLa24xMU4kW1JCTkpvOWM5YC9oRTk7VVkzPGdLCi1NOS9Ja0ksL1I4cUpYaV5gQWpqJVEzJmsyRi49WnEzaT8qciMvSmxEV09ebSZQVWoyNjdkWFRHMy0tR0k8Oz9QagotXjUhRCEqKG4jMnMpQV9WT1Q7cyJxcEk+LlgpKyNUPD9lc1VrYCQyXjV0IS1FSzQ1MT0+UjJ0U0NiXlA0WVlVLE8KLUFINis1MSkjN1E4ZnFNJT5xUUlDOWN1NWJTWEJHR1ReJXBeTUo1bFFaNWZjXyQ/O0g/NFdicGlRU1htMCUiVVltCi06c2hsRi0jWUpxZT0pTydKWCZzL2VOYitTIipkLFgmLjhLZz9FNyhrSk8+NWtVMGxpcykxX1FXYUdNQXI4JDNsQwotOklaOTZYJzVaaFlLZztUKVdQKSdSQlpxR2crXy5eTztRLT06UlckclJ0M0lVRlU6Sj04bjxiYD1LLU5QbCJlPEEKLSJ0VTBjKV5hJD5qZTA/bz9IZ1wmNCEzaE5ya0s/THIwYCdobmM1PSJXKzhwOzlbZGNtLlROWXM8PVtcZDFfPk5aCi0lQ1ZJRGxEc3VkSFJMS0wwRkRCN2lqWF4mcVw9TWdUa24/KFlXQ1RebV1DTDlbcGdyNTtLPD5kNGw4PU5tSVJVIgotOUY5XD5gXThpMyUrOycnJDBJQFUiI24vSmk0Lj5KTi1lOTVUa19hLjRLKyRBKCZicEtIOWZyXFdhbkF0IlRsMVUKLSJHKDU6KkdvKm0jLCckU2FJMUEtZDtUbDxwPVNuRFdpcDtaaV9bLCYrOlZjYStgVVYpWVpJdEwnSFFhPjVvR0MnCi09UDE0Tj0jVmxCWigsJiFFT0A/TzIwUm4pPjkhZS1HU05CVydXXkcsXmxDI1ZQZGppVGdvNWBxR2lnKHFUXCI7UgotUFVqZXNIJDxDXjQkJSlaaFJBVDFJcChuMTdLdGFBJEJocmMyPEs2ZiU3Li40VytRSTkoaCtzXCxeSHJHSC4oTEsKLW0tdUNPbi5DLDpSS2hXNFIpV2VzWnBzLCgiLykxcE1qKHFXPWRndS8hdSMuYU1fKWlPIT1UKHA0WSRUZSMiL1ZbCi1XaUtqdFJBXzcpLmImQzokQlZtWUpURUc7NkI5ZUo0KUpFLXBpYSROUEJvSUhYc0BVLm9xOU0lUEAlXk1LaSI/dAotazAxVkYjPzc3UloqbTE8W1Mub1hZUyVSTTVeKFNVaj9tW0ljKikqREZYUHEmUkowO048Zj9cWStBWmVeKWhWUCMKLVxpM1cwaDNwPidYWCFmXnBSNTlqOilec2FnP10xQGNNRyJMLHVrTVQuL0xGXUtCJD9LKVdbQSlUaj50T1dYciphCi1wOWMnX20oWEZScVlwW3QvVklTUkAyN2oyZ1FNLEVQM284KkNrXig9TE48cCYlUChpImssJFJqKlM+XTk7TUFVKwotNFM9SC9ZUztcPmZFNjhFJztDMWVOWFMzbDhnZihBY0BSYTJlJ0tGMVBlKC4pSj9IJCluQzEsNWpWS24hZ1E5UyMKLU89VEA4NDoxXlFWO0k0czM9QGZCPTgnc3JVSDxVYW1OJSdpOjJdQGBGXC5Bbz8wQW5SPERXM0g3XVY1bCEvYmpjCi0/WipIbz0qJTlPMzFHRktjJXVRZFQ0QyNNP0NfS2o8WT47ci0lakMpTmVjIktcIiomXCxMNylLYiciPGoraF06YwotXWZJRFVhdGVlRFgxR29qWWdPbzRQNkQ8aEFBLFYxTlNDYSM4YFJNVUtZQGlRLzo2QmxpcihpYDBZVUpGXjElRikKLSc9dG85MWQ3RG9UV0FPNVolLldMbUtlPUghR2guYE1MLjclOC9QYzhOXFZwZ2k+YC47cDUhTCVNIzFuTEpLcWhTCi0uX2lqMjJFMlAoKXVeVCknOG5RTEpsaj43JjAkTG9PLDluLzVYNiY6Yk87SUJbPm8jKy1lbUFnYj9rdGUkVDM1OwotNDdeS1ciOls0TiVgPGhINSEjPGRfbW1NakswXmFxW00ua1VYKCZuPE8wPSdCSlxlLlRfPDJEVE0qW0BFIUhDaTcKLT5KUTY2I19COV01V2cnYCE/PEQqNGVdLCJZZ1s+LzQzYlcxLFFgb05XJ2dRTGZYIV5kLkRRSzRNKnJuXycrSTpmCi1tJ0VAOlxXUSE+KSJBSjhQXnBaQ0pAVGhqOU86KHMlJ1o1LzZdPkg1KicoIiE/VU0xXl4xYkVyLmprQHIqNHNcYQotXjdqUkAvOEUqQk9LK081IUdpWGchOCopZUpPRkkxNyJlLDM+MjtbdHBWYSk0XGA3XWUzSmliYDNXTzM6VikvImUKLXFwJSlTKlEhJm8kUXBcNTVwdWNFTEMhTlElZFpwK1dXK1FzSmZqUFdPXChDcSRzVV1tQipdViI1aCVdQ2I5b2FcCi1mY3VfajhDNVtQMTMsYXAmPlAwSDQiOG9SSHReTmFDLC9GaC1FQ2E3K1BEUjQoSW0kbUo1P0hRXytmYHNHLDE/bwotMk5hMU87by0jLTlvKVppN3Mmc1dkSVRraj9IOHVvXExgK3VhUiNbPC49dE5LJionVz1iWTxWLmxqL0tMT0BZMzYKLTM1YF84LjMqXCUzWD8sLSZfZmpoP20qWyJedGFwbUAqOysrRCtPU2QyK2NJUEEySFlpVitPXCJbPHEiJmRXSUhWCi1aJS8zdCEsKVNZTiw/XDQ3PWdSRFxJbCpaI2BRKj9PWnIsVjJQXWRKQE4xNXUiXFRHcDhmQVlrLyhEP2tIQGAiIgotTTkzTiJwbi5xXWY6M1soYikkK1k/bT5cLE9BKGFsKjdWJz86ckNINiNuL3FmJXM1JWdac0NCVyRcSDsqU2BKYjsKLTtKQWQ/ajMpTSE5OGhtdCxlQ2xrVycxSjxKWigtQ2JAOzU7JkJqOlViUDZfakZNWjBMKDxkb1JKV1EzSjlaO2ZJCi1pSUg6LWJpPENDTU0/cDRiNmZYJCFFPTUkYVNuUnFHYkFqVDAxYjAqJFoxYGZSPyNEXjlqST8oSi1YPjxVIThQTAotJUlEZmk4YStGNyU4R0AuTGgiVToxPio0KC81JVpaOipMK2wwW0klKGo+X09yVlRlLzYlLUtlP2tZPCxfOjZdQ0IKLWE7ZHNuQWs8PykrYElZZE46MEZrbkJXKW1ZXTNTWUFHJjZIQnQ5KWFQbFFXP2lwPiFhJ2Mka1IlSS5LOztmM1BjCi1pXU1sRiFeLVBjRS5uPidAIk1BMEozPSUpNV9zcTFnPEktW2FsOzFZSTBuOHBXIy1OPGQqXlxtYDA/cGsmJFI4UgotO2hZYz9Qbj44biZqWzZHNiFVYG45YmdGLV48PlQiOzJeXTAnY1RgJ18/IktuXT50QERUYktZTCJpNiQ1O0FzbUIKLUVrNzI7WCs+Qz1PYm8kaUNFS2heVTc4YTE1PHQ7Yys7TEVjJC4/VSYpI0tdSUNrV1Q4Izc4S2hMbmgoKG4/MGY/Ci0iVFphaCNWPjJiK3ErSWooSD05NE4sKWMkXmppcyozXU03RCxLMmMvPlcjSTEnTj04UTdYMltGL05rZGxCOygjSAotOUpiIW87cz4tLUVoVS5JZVdHREErOkYhZWhHZ11nZUFZK0RKRFMlJUE8J2NkUzM5YCshMyhOTyhFQzQ8JjRoTS0KLTxAaVxhK0ImU3VWKGlobzxFXjRWTCFaWD5balpoMGJpIyZPMyIuclg8W0Q0NllsZDBpQTJUb2grWExfZmAhWFUsCi0/PDJrNWFIXkw9Ym5EUV1rdSJQTmNOTSohZUskWGUpTmQ4bzBZJiVDaS43RSpLaV5ZcGYzSDYvJ1xTOnE4W2QnUAotZjh1LHIwVSUmSSJiRClMIWNUUj5mUypEaidqKD83ZVNzOmkwRV1qSFhbVVlWTiNWSzhrX21ubC9ALW9uPUlrPFgKLUFXJmhgTiYnZFsrVXNILEhEZkVvT05uW28+O1NIRjEuRTMiTj1kXy9kQVlbQylzSUMpWS1Xb2ghaVkhP2g0KCFuCi1oZ3BzJV5lQzJdZ29KQFtYTWdMIlUjZ05lIW9kQjcvLXRwRVNBaD9hL1VpbHUrUDdoUS42LSwhaW9ndSJKVXJVYgotKEVsJmpjb2VgTjV1biEjJHVOUTA0Z1ptYFszNUYpOydgYkVfRHAkK1w2KlUrJGdoXkBDTTJEQF1YKF1HT1kpblsKLS0oIzBeWmUkJy9OIm9FUlI9XFs8U09JcXI7OVoqYGx1YmZwT3RGciQpJDddNyNjWk5LZlcxSy9KWHQrR2NpTWMpCi1NPyZvZCEqYmJgSEtcLkRLJic9Oks/YCFwUScsRjdKKS1zVGg2UXJhXztYJixLMWRecldkV2RYI1Y5QSciKCEhMgotMTRnN283SElpQE4wLFlUX3RCQiZYNz1sOWhqVClNZE07KCNgTFU3RW5cZVNUP0wuZDc7VllOLi1fT24oM1FXOSIKLS9iRnUyb3BNKj1oZllvZixGaDdoWSRFZSRRbC1WYFhvO1xxI1pgTz86MGsvNSlUdU07aHFjaT1pKGFIQkFXVlBjCi0vQztyUT5GI09HQTM8dEc3TVMzX05JRDlGSUxUViJFJjYwQzx1RF9dI2lDR1FmM3AzXz9IakpIZyZBTzIoLGg7MQotP1EyNSFhSDlvMC1CJkwpP1kqP2RFVE1fV0RhLUpsSjxlUkIkTCNRXSRcNTRcVUtrQ2k3TzosKllyYDRCQFZYKkcKLUgvRSFrIW9mXi46KihxSS03aVdXL1c5OC88aWVFTjY1VTFSJFknclMyRHNXSlh1JTtNX0NbYWFdRjVVWUZxY0kwCi0nJE5nKzZzLDglJSo1WyZKMzhRTU1ERk5LT0ZAVERJVSlDaU1CNSpEWClBVGdRTjs3K2gpKUJlXC9PRmpGTyMmJQotYVwuV0VUSV4yYjlCPXFXMTlOJVEsYC0oPmZqdTMmSz45VSVeY1owbDwpQ0Zral1hJlE2KzVtMD1RJTc9X0YnTCwKLSJAak02KmJFRCVUbGNUM21VJjhPJycjaU07QyhxVjJBYGg8NSVbY3BaVm49OUxeZiNON2JtT0dWSEpFVF1xVUI6Ci1DYm5xPk4jMmxUZlJpOFZDPUV0V08+JjRRXEElNClIQSc6WltKIT0tOHQraSpYQ2wpKmkoZUlzYD0rcDdHaXRyTQotQjxHMXRZVWdvdVxNLjFvQTtNNWImSkJWazE/XUwpSyEkcGpAUnVhUmpwN1lEa1xcOFtOZWhBLW5gWk0/YSMzRTkKLUAnNXVQYThnQ0NKcXVDQWspXC1cVUJyKkojZDFUSm50Z25XaWRlITI6bzgsQEpfNmBMQmkqZic8VzVYKC1DWSJUCi1ITC1CLWliImRYL3RcVD9cUS9TajsvZExXQkg1clRePHBobWZgbjg9Tmh0YWRVPlUuWmFTWS5uV1UiO3RmQlR1MgotYDtKbjhpLz1DZllHWHNGLGFIbXRMOVxqVFpKTzA9a2EyUConUVpSaiNjTSRKWlZWTSlUIjlTZzJeZXU6aj1sazAKLXB1W11uXlB1YGFXXD5AVUJTKTRdX29udGYhUTtTOWMqPyJFUlZbNDIiTkh0cFchbUQmYiYiKy4/NUIhZkwzciNPCi1lODY3UG00UWshNFZsNSRlZyQkKkQwUW5KVEdmXk5ISHI2IypfdEwlYWFeK0pfT0ctdTRTSV1LNS11N3EqN11IWgotSjhwRytpZE9kK1w7YnJMa2wwY1xfQitdOCUxNXFuW1w2VDA7Vipmcm0zLFI9bWNNQXVtMjBhT25TXUYsMyVfRSgKLVk0UVg1cCRaTGhtdFVWQSpfTy5JLF1DLD1AYiQ0KGs1RlkscWRkV1Y5PDBfKyZQUmU0KGtJR0RFJjF1ajYvRWtpCi0pSzhrSyhcUEQiW2c6OnNmP1g6X0pzTTRETVEtc04lK0wyTSduVDckSjtCPT9OYkpEWyluOnQhNS5CajBZMj5pZgotMzojYXA3aT88PiQlXThLP2dXWysqRzRJVWBVWktoRVdBZERcQSVNUDREXzlMbiVLJ0lpNGo7LFxSTy06PURvUigKLS9waTVrLipjQWRFaFEvOUdVUlVCKF1nTjluMkFzT2FiNTJjTWpSUSJMbl0jQS1PO2ZTMVtwcCVmbCZiPj1QKG9BCi1eam9ScSZXKzBsVThhYEY0NnJNJFUqSVtYLk47KnM1azA2YW9JZlE2MyFrLzQ0VkE9QEItLy9fRzE1X3A4VC5tawotb1MqVG1cZSZ1Kkg+USxEcFFqPE5yYztfXCNBZi5nRGJoYlRhJkkxVGs6ZjpNSnF0ZlZMRmRTKClLaFopTHA5PGkKLV83KGVAK3NFPmpiUFJILGNYP20yKSQ2IkRESFBdYGhMaz1ENT80Ryw6ajZSVExjRTZqOkBtK3VKOjhbaj5jci9WCi0yJ0ZiYSVNaTdBa1IjMC9gY2hwNTxicGYwXjdzbD0kdV1GLkVVTlNxQltXZDpIUyFWRS5KSiVRUURTa3VVJWJfMgotR0stLms7ZFhZcDtzRmxgR1IjKy9EaDglZz09a25SRDQuaFRdY0pGZCNpcGZbVmd1X0JEaTAqYSY/X2UnJT0mYDUKLSRFTmwjPTJgQGIucTdEX0ZwaSFIUFBJSjwjay8uWjZLXGpvPShGOkNOSU83KDU4ZWFAZzNMLFQ1JC9kQHArOT1LCi1Tb2xpS0taMm5pbVgiXl9VSCIuJEkxb21dOSRoVFNWdFsqOHFPVyVNTyEkRj47S3FsO0BkSVdNNVVxIiQuIWtvSAotRmNcKG5rZWl1TkxBTzEkXEVMa1srMT1YdWpFbDVCXlVncyQ7ImhfXmpXVDhvNypZUzpaP0VaOF5aMzwnVCpXPy4KLVdJZ0tAcTtBYE9tO0wkUFlfPklKJkgmNEZBTlVRUzgjXmc8OSchMFBLPyk8RFpXYVFtTSNZNmVyPzAyWEA3a3JFCi0qIWNRJllsZlBDK0UyUW4lLk9eWzZJUU08XmdcUStMO081dUxuJiEwKTMuM3NfM2dUZEJKXzFRLGZOKkdOJWxRQQotJ2drbW9pKidZK1JTQENGJjwsPSkwOkUpVm9DOSc7Q0k4cmRCWjFVPzlWUE9hJ0xFcmxPQmErQiM2S0xhcThiTkMKLT5ITlBEZVxKa1FfZCFNJFhPXyspJHUvWCFLIyhpcUowKmJWImtUZmtIMWQzPyZkTVMpITNoUFFAbSxpWSxKZDZaCi1NXFQsLSUjNUc5Y3NVZkpSMEEzc1IkPDFZKFEoUW4majZBKTdBR0xQaHRoYWpWY0JlS0NOXEEwTDwhbDNnMiNTIQotU05jKFRdQUBGdHFzQF9tQ1cjLkpjT2NJOyhRX2FRX1AmXGRDZEs/YU1XaD8rUi9ERCMvMT0pJCZ1Zjs5WXM0aWIKLVpJPE5waWNROTFjZmMmbUFLJEl0VWtJdXNiJ2NiVDxORyVFV2ZrRjBKYTROcyEmKU1cLC4uY05ISkgiMjk6RllKCi01W19ZW1olQz1gYmRvLzEoYjFRTWFQcG1PXm5BOlhgczQ2Ly1IYFheQEt1Lyg2LDcvaFRrc3BHKURsLT0mQ1dWRAotZ2onc11kSkloPDJ0QFcoaGApNjJJakRQLDQlZVZWYz08PSpUaCc2dExiX2AjNE8tIlViSSRaNE0rIzAhMS9lImgKLSUzcSZtLy5CRyY7Sls4YkU8Sj5zIiR0OlVUdFcxQUBmIWdiXUNIPTJuKFFeI1ZdXzMqWkkkdTtwQi5OUlpGZz5qCi1KOTJwRl5lYmsjI0hUQT0wRktMc0huKCxOV1o0TUFaKF07b2MsP1RHPGVhJFRKanRQY1opXkZETnRQSCw+MVYqVgotSy1AXys3I1BBLzl0UEInPHFbRjIuM1hqclYmWyZWNCQ9R2wlWnJJdCwnSjhTQmQ2TzgzZlBzMCJOJCpBbWg8ZloKLTooW2hKTy9LPUtrclZaKjMlJG9sb0FYOWk6XDh0N1M+dSZeJSghZ1UqJi5DWTVeYV1SO0Q5JFUkXE1qPjAkOkI1Ci1ZVVRhZyNtO1hfZSZeSF4qJ2duRilYQEorRnVeMWliZD0kKjdFRSxUOUdcRmtDRzhkZGVWVFVSZVpFbThqdSpYKwotUlBoTHU/WCRZLiVYMEFUMkkqODwralFCMU00cnFKOSQjTVxuOGNUUzpDWGloN2hbR3VFP2ciLC4pXGovPk0yIUwKLWYxOVpSY044dXRHOkEnQC89NF1UIWo4I29FNVk4Il9cXWJoImxNNGhqVHFva1NlJE4rcGd0TTohdCsobSUrTDVCCi0wb1dKQWp1VU5CaU5FXWZVSzclailKJlk0W3IsaUhjVDA6XFJEal8lPTtDIWhTK0cnL0pTIiM4OXBdTzlnLXIqIgotJFBATmJhUV5xKF5NWT5bVXMjZWBnOzY6XGdzXEklM3BcZTFuZ0xmRE1LPy87YjstI3MtX1FHUCIxIyI3cjNQZ0sKLShvUl0iUF5Xa05kX09WXmpnKFI2OWhtM1BSUSk6RiRzKytdIzk3QG9hIjlVJyx1Vig7LVNeal4wJyY2JTVqMVFVCi00OV44XEZeW09WQz9sbVYkdHE5J0xeU2U/ZFJdVDoxTjY0NFdeZ00uKD5zOi4rT00hWEptZSYnZkcvMClOQWlzVwotY2prV0twTTxARC5fXTpJOWFVWTQ6XU5MNVdIQm10U20pTSxiVU9QUmliQW9oVVlkUE8vYiNgPi1qLlM8ayRhPUQKLVJoN1JiTXEnJ0AvMiwhPDB1MDptUzd0PD1rYWhZaiwkPWtNYklVQFkjV2A4XydjUStBOHFBXyhmPGNnJWxORy05Ci0zWz9nbTNvUCQxI1NFaFRPQmRgcVBdJEpuWENtMStJSmo+J1pGR188K3BOU0pyI00vKiVSU0FsJEQ+PiJLLEEnLwotOGAxPjxZPF0rPGlzR3RFNltqZmU3T0tAI2VJXVF0TiVfRlpdVHImYD8sMnQpSCI+Pk8tSzZBJmhjcyxpXmcqUE8KLUo3UigvRkJiLUpcYmVoZTMnWVktQHJoZD9tYCZZNiNHWFwlTlk+YDgpXnNUJTloVldtTWA/VGIuLXUmTmI5aTheCi1tIjxAQi9LYj1oSy8/TF42R09FQStyOWRhPjppJDA4SjxwRmFrQ2lqSlMlTkhHUSY8YUtVc1JZSDA7WVcyR0U0KQotbldxViJbWmFOQTp0WSNFUTNHXUMoKF9QKCExNUJuWD4oNCghJUxDbEA5WUopPnVFWj9EKHBPKmBMLCprYGUrb1IKLTp1S2JcND0jciM7anFoSFVJNTBQZHJNKlwpN05FYktGZ2JAJ2U2PDk5Y2k/Tjk6WmBuNjdxQ1MiWGU9TDEvXSNYCi1VTTkkPGRjJmU3JillMjlfRSYwPm9UWiFfI2FRcm1oKk1bZCQzTHR0TDdbWlFINzlocFU3YiZkOStuXidKRCIvJQotZDVIZ19AWVI/Wlg3QEosV2FTZyYnaGk+LDFRWktkU1FRa084ZFIxalZrUihdZS9MOCZsNVxLVVtYUVJKLi1lMmUKLXJEJz5YU0pGOW9XdSwjN1gscUkzUFdKc204IW9gTkMjSXJKKTVkaSNQR01sbWlEZjkvNzhTODI0QUBKWlxPVjIoCi1oU1VhV2NBQWBoYjFCOE8xKDdrVlk6XHJFWV1eT2FKUGUqZ1sjVHVxO0MyYUNVKlZXXkBgMTZxJ21kYDkxKzpeNwotUmpJcVhJLUshc149PCMnPWhGPkdEIV1jXDJNLHUsb3E/KmgraiUuNV1xZHF1PmBIVj1lIzArImRFY0RwS005aWcKLUloVmczOFFNUSMvZj9pSUFAZEhMSnVBalU9XV5rO2IobkNJY3BXR11lLTh1WCxbSC03XzJCXU9dO1U6WS0objdgCi0vMUhRJHBTQU1aYiRHXlRmTTAnSEtHckM7XkAjcDo5YVZday1qTiRcLFZTIlNKRzhhcWkjRHUibS9DMig8Z3MtdQotTDNJcSRSRldMYkxAYU9xRUklJXFCS1QmK19caWhxYCVbVVJYLHBxdEBAVDBBRTh0MXQ3L0lOX0JUN2lgNyY+MFIKLVU1LlBUXl5WaSYmTTtZUlx0RC90X0AsS2Y5PVg6LzM3TFBjaWw0PStHbl9bITE9U2s+JkxrI1IzaDFzNS8hTWZECi07cChNND0/cWY9UiEjNiFPJy1mMUNLVTtWOi90LSdxNFhlR0I0KyFyRCJFNyRKVlsqSHJmLU5fQCpeZkYjM1dxUgotLDBGRmojIWJnSVU5K2tsWnBpQlI9TClJOSs9ajVaR1JtVztCZzZIby80VnU7LCI6RiIqVE9lWk8wOnAtJDxoYWMKLSJKRDFzSm5haislPlJoSWA1L0gsWSxwUjhdMytRZz9eO2c4XSU5bExkcS9AJFFxIysyQjtbaCI+LD5cS0IxVzMnCi1ZUilXZjJ0MT5FVWpxIzpQNydyUG5YYj9YJUdEdDZMKmIjbkdlZ1NERUtZOi9kSWNMRkNeLGNLWylGcypYaU9kSQotLDZlNnNVX2RPRk4oNjJNbVNwZz05XUdEZV1za2BOJC89WWpuKG1vb0JII1thSlpxJSwlTG9IdTdnZVYqaGhGQzYKLSpTVSlxJnVoQyNDZSk0dDJAKyVYM0ZpcGBsZFZMbHEidDQ7KjAvY2ldSUN1aWMrXWhVKjpbNVFyNToyZ2lbLnBgCi1OYyEnT1UqMUU4ZDh0az9oVnI3cltpcC9OL2JIQWtPQidgTWknSV09RSJkQCViPV9vJ1htNF9MWFMmXm9FI085UgotYW5POGdIXy8tJ14iKWksZzpzdWwnVS42WTA1VUY3U2lnZTg6IyxXOUYoS2BQS1BWXydFW0lgTGo5LXVxbnFkT2wKLVlZaXVzOi5MVVlTalQiJGk+WCJqMmplWWk+L3I/YDUzSV4yTydWLmYiW1w7SkNPVT1wUWQ/dV5Rb0gjVi9zSFc7Ci05KF8qc29lIzFyQlglMDU+aSxQMCU1MjJKX046MzchNCZTc3BKPEBBY1pCYk0oczY4KCduS0teOmQuQ1FMaV1gVwotaVF0LWptdVpPSC4vQWxRUy1GQi9VbU1aJm9fTipvXkNSRjdfakk8citEQGtBcW5rOERuJXIzTyMjL2U1JERKIjMKLWIjXElaaSRKWi5yVzU4dVV0QXFRXmJTME5nZCFYOEQmdVFrYllEVlIhX1FZcyEmRjJuIyg2SzEjdUQmWjdQT290Ci0nJT4yRiU/TVMnOmE0aDZUJS1YaiVaaTdFMF5mKyo1bj9JTFciPCJcT1NuK0BqVE9zZCJgUlM2I1QyMyhPUTdeVAotbVw/Ly8ua3BoaEU2Y1EwbjQmOWs5NXNDQyEiVTNZI1UkQVhATz9uXyVLZk9ockozb3UmPiNLM1xBWDFRaHNkYFQKLWo7UyVwW2Y9XmUjZilFLjAyKlNbQ0NHYFklJmBCZW5DJWgjZishZllwK0VaLmFlSz4hR24uKEUlaFM3NVlrSyU8Ci1CKjpcMiY/dTwoblopInMjNmRzM05fJk8pY15uZV4qNCQybiZXOVZNOHV1NF1ecylzOnFrPTtWSkZfXmEnWHBDUwotayRlUTBEXW9pK15ELychLTowJ3BYbDlAWUArc05xIzpILE9ebSxcX0Q/Z2JyKE5GWys4bU44J0pFajJlKGloLEQKLVomXWIzPHVIIkcpNmJuIVlXV21bNjhkL2Y9SFRqNmQwXmVTWzJYJU9TNE4jQyJKWzlZbkliPDQzSmRPPkBqOTUpCi0xaGZbOWNWYFY1VWNLX3FcSi5uMyJqNEZsKz8hRjNRNkssaSRFIyRpJmN0cUouM08vSG5hO1NhJlQ3NzMpJ1JDUAotXW9qWVNKYl5McS5OYWBtIVdsLUkrUTRQYWtwKkpzKT1nM0pgSTpCRDBMckVFL3MmZEg7JC8qNz4oT1lXSl5GdVQKLURFcT5VJU8zUXFPMmlVcU4mKWojUDotSmZDYkEmQS5VKyErWWUqOTBNNmBFckVoK1pNVTI7T2pyREthQDBsSlI/Ci1bYEQ8dF1qXl5mJyNQMEFgcDRjJCVBOUgkOzNgXlYmLm9JLjJIKy90IURqTERoYCFyVjgmMCg2UDNXW2I8QClSTgotKU5cI1I3cDcpS15oQExTQlBVKmI7OSZJTCo7VkYuLCcrJkVaLl4/NTIpLV5OKmIkQ05QOHNyMD47QEo2XTE5cUgKLSxLcEEvLFVtLSRCcysqXSEkJUM/MldiS2QoUiUmVGkuWCFDKkFoXkxWPVJEPGRucXRHcSkrQkEyOkJmJiZpVl9UCi1DKDZDQDJQRCFJJzYsc1BGWDJUPyFzI1BiWltqJSRLYzlLYylPJCd1MVFJTFhOczQkIlpxN3RUUEZyUEVsVTRGaAotU15SZTklUSgyRkppTjlcNChQLlhFQyo2WU85U1kmNENVTjtVNCs6YmQ2MGdhNGdMXEQhdV84Oj4zO1xCNS1oRWIKLWUrMVNDXS48TE8yIlVmKmUtQGpwPmgpWzQ1ayQ5aVBlVG0qQ0kuUzk2OEN0ckBvTls7Nm9eRGMzJkVILiZsMWx1Ci1SJlI+I1dEcitOO2pzWWMwSGtPNyZxdW87JzwhWlguK2NzWCtMNUVGVW1RYWc2akJIWytFVmByV2pyKTJdMC44agotJV5fJlchKXRRVSliRDlwNSo5dFpkTVg0Mlk0Xl9EOHNCOT8hN09SNFlrTiE7IW4+K2ZlQVg9RmEjPml1LFcqZSgKLSItbFQmZmhQPidtT00nY1BpPFZxTVVwMWQlZnI/JjwoT2RycF8mLWwqLT43WUZCU25aPj9VOzE2dWcocV5pMFhYCi1HLDhUQCMjdV9SNkA9MD8mMUJBaU9xZldLIyEpdCgyLFViQyg6P0EhJ1ZhKCw5MF5zJiFMKmFmNWhQIz9eXyllSQotPFY/MiMna0EkW00sb21WOClhWV9LNGU6REZWISNOIk9YT0M8OGczUSw6LDIwM1JbY2A1cXVNLkJqJFp1YlkobCcKLU9YWEhiJSVZazM9XzRDPjY6a0JIQVF0RUBTW0g/KkpxPT87LWpsV1IkSUhyZzhXWC8sViRSWDgoSTVsTmQpL2ZxCi1bcEJjSDw0MXNKMXBARmxecmQzQz9eOlJpZUFgMlI4UlBSKClBUihWS1YyS25DTFQxOkBGWDBlUUckYEMtITQsMwotRlkhTzliOyFMTWQ6NWcnQUM4UyhGZkBFOSNAck9bM2ksRlRZW1NsRGcnXDQ9JDZZZy5XUy5SVzJAISMsJ09ZX2EKLVplJmY+WiJETj9hKy5cKV9ATDoiJi5IIXFFZzMyJXAjQl9uOihdRUQsLiVSSzFxRi1YMU1QQFZDLFZlJChKQUxECi1XRzg1VkExNl8kUUdtOGJpRzNWSUcqUlxyPCcrMyouWlRKIU8jNiQwPExKKEpJcCYrW3E/cD1xZWppb01RNk9vSAotPk11STNCLHRQYT1NXCZBOjVpIVM2QG9QMGxWYU51RUY5S25MRTFDOylAPTNCI3JhNVBRQEJdOWI5PTElMXB1RmQKLT0jWVI/TE5DaTBGQi85XVpZT1wibzRoPShGXGtBKWYzMD9sP1p1KSVAVFI+XFFqNiIjYjliRE5pVi8lQ0dUN0tYCi1gJDJTZ0RHS1dQLEV1alIlUHMtTzpvTyh0X042aSo0YlFPb0tJUWhrYGtRSy5YKlsrNEhbbys5RmpZUlpBVUpeRgotSS5vI3BecnFLTUUiK1FDP0ZBbGVQUT80TUs2KitrJUM5VnBKSmlwZ29uY19EKG1wZUxcLCs4MThpUG1QTUpAb0kKLWVFUkRCWVZuSFFHNSlNVD05XVpFVGlcPjE6Q2lNPChPZDloS0s5Ny1iYDQ9IlA1KCZbTGEpUWgkKT0jJGZLTUFxCi1dJUprSiM4ZzByYDkpPT1bK0s/QEwlXU02Lig9VDVjJV9uL0xIJ0UtPUZGL3MudTc9VSFKKG5NOmJkRiw/XHMlZQotTTg9dWIobmNFIjY4cG5uTVJdVzwiRjVzIVlqT2tjTWpJazFkQWRpckQpZTZoUTtmcikzNV5cdTAqTnVbTjhcSjwKLVtzcyEzLU8rUS9tcUQtclpebSwkbFpKbkBOc3Q3TE1QbE5nVU4iaGwlXFUqNCEwcVAjYVVIY0E3bFkoLUddQWpoCi1JP0MyRy8zK2tHWiVuS2RpIjNEUDVyZ1pWJ1lmaVdqKWhmIihgRFkoIz5eVChBN2k/TCxeRTdTaVZ1Pkw8XSwvLAotSkAwTWVkU1NyMTNZTkI6QFRkVy4yQ1csKTpSQVY/UWYyWD1lZ20sNUxjS1U/LStOKEUrUEw/U1tNSz4qLjJlYCYKLVdWZCxyYixiU2IuQDdEJG5mOExWJF8pW04kOys+KzViIWxyJ24jaHRTQEA8KjNSYCVYJGBJMlVTW0otXW9GbWchCi0yQWQ2J1QiOkRfazw1JmBGQjpraVQ7NlhRZlgpYVlZZEUqaFRVSEJZUWo0b1FgJCtxbk4jRVpTKTBDSGstJ3UlYgotUWRxLTwsRzE+a1JVcDgiK2EoIkBKRCkwNWZFb21oJDlDalxHa3FZMVpqVFk6S29NWSJUXiElSCdkNEsqJSwsR1UKLXFKLF03RUpIUWxWalNXNUhATWszS3NPcTZMY1VILlwrLUZXUSlWQWNbIUo8cCMmVUEvSFQuP2YyRz0uUCJjQypWCi1SPmEyTVFQKiJQXFFgSyUmPWZHbltXXVdrZzxlJVpdaFJtMEBwJTNIZ1BdTXQ8T2w5ZT1VLnJQMiI3SFRsamIzVgotI3ItXF5ITT1WU3I/bGplWVpoPWJhNypuKlcmWFtUKEtoLU5fPjFBVERASlpUT2FBVGxnIVIsZjJtWlRFNig6KkcKLSlhZio6OFxcQ21bK1hxPlMsUk4hPCZUXUtUTDJOZCgpUlBxTTc7NVQiYVtlc181UFAuMHQ0UzlVIjdIbClVaSxbCi1HKXEhNFhkYktcQzVqUEVJISclRkNvZE9DITMtTWpWSE5lcmxQZk4wPklGYlUiT0M7ZFAuU1g/KFdqPXVDaCYhawotK2FfUT9nRVhDV182VFFkQlxWUl0+TlFLYDgmI3ItQy0yMSlIaHFBOG9vc2F0VDomRTxFTWg9QiRjKE8wQ2AzdHIKLWZrXEclX2RbPydVImgpVTQ9cDlVbF85X2BOXzVDVVM0NlcwT2k2JFBcbVs7b1Mja291VXRLOVVEdXFdNDowPiFYCi08ImMucUkiN0YkL2BqMERuLVdDSVo2NVhYM2QlP0pNMSwvUWFTZFgyMzBUcT1TXlVlOWFwKSRrLVVgJW5VYzoxYAotbUdoO09sQm4oPSlwRFIpXCUzUicrX2UlNWNaYktWMCI7LUdyN3JcSihzRCwnYDwlKGlaVlNtUEJXQlVVMWc6MV4KLS8yTXVGbDRUZy1kKEtubThASjJ0OUY8cCVkSjpcQlNMKFRfLkZQZV1GTG0xU3AmITMkMnIlXCJlaGtdSWonNi0/Ci1rYDZcb18tIj4iUjs8Y15pUlQwRlsua2ddKkZjQj1CaWs3TD1yWC1YPyNyIkZUdSV1cz1zMGZyVFw5dTRMP2YnbAotY19wS0VnQjYqcG9tOVk5JWlxLWY7MF4tMFUhWzxFZzNfQihUWV83IkNSZltsTGArW3JAMS5RSl1mJnNcU2YhZ0wKLT89MktKJzM8am8yMS0oKEcvOF9HQVpXTGhoTDlnO3ImOCtqMmpXaVAiU1RhLFxlWCwhVzE6UiRHYCw1PzhHKG5RCi1UXCxjMiVBPVp1MG5wIjdWU1IlTFlWQSdNST8zJlxxcjUqLExIW0hHcWxyQkFWcFg8QSYzZWswMl5zTF8kXiV0TQotVyM2dShwbSlKYiQlSC1AamthQG5JVV84OlhrYiVhbUwjTko0TUF0cUlHU0QiKTRETl9TMlt0MEooQG9za2U8JW4KLVMwNGNeSFshKVFAXVsyTy4uU01bJGtqXF9sTEJXK146KEdiW0hrWCJvb2FWMzRkNyxkRTwyWlNCI3FEMCdGIU5fCi1xdD1HK21HP1tlKWBSMUgzVVhEMF4wQy1oUlsqP3QyPU0rI242T0ctND5sWERKW1tpWW5SITEoSllEVksrLW91XQotZjA7SlpIRz1ZJy1mOyldXC8rPXJsLF9JQydGS0JLJVIzTi9eSkZNMT03b3AncmghRipVKjhvUCpYSzpfcDshSHQKLSFWZGNAJm8iL2lLbkNMViY8ZE1IJTFTJmRATSdIQTopXXBkN0g0dUllODlhV08lODdEKSJbX3UtJ0xwXiZ0KV8lCi09WTV0NWpxQVZzYzxDJTQ6I3NLU2RwZFJTQy84SytwN2pzMjdBRWBEWE5GTnFRRk5QRS5NVyxdQF08QS46OSwrdQotZU4vN2VZPmFeRClDOSlQM2laNjQnbC1dVFlaTyJsbUlhdS5ZLGM2OypcRjpCVSFWXzY3TnU2JTVlcGNJS3U3P2gKLShuPTFcKTMkYkVFWiIpQyVMP1hoJlA1PGA7KWsiQUlOKS07YTYlW1MlPj0hKU9RXydmPVY0IT5oc21ORUppQylxCi04QEtPcGBwXDJkaGYmOSZIKyp1YVslNU5Vci8tK25MSVMsZi4/K1tFLCsyJnJmTk9WRy9YbCc/WVA3aXVOYSJsXwotaDZQYyYqaC8vO2NZKVwmL19APVwxQjJrXWk6MTBFMjdORFpfUWhHaiE2TUdyWWZiL3I5XFZWU1puMzBqZFwsdG8KLSclSmpWQypxW1ptQDVlaDJfYTNAaV48NT02UDFaKiooSDEmbExWN0IuNSVdKlYzcWdnVytKKlYkZDBKPjAqQiNbCi00RTgjT289W2VMZlgvXSJITGdrREtMJDAqJTU2MEMyREQ/JFUrP05OYjhlI0hYKkY0Ol5sNW87YywkPzI3KyozXgotS0hgW3VCSkMuTTIzPzxBZy5lTlkzbyVbJlYhQyolT1kjcE1RQiJTS2pmRDRAViYpc0pLYU0/QSRCMDs0LV02Vy4KLW5QUmQmJj9yZzM8LFdsbSRfJDxQUU9BSCpeLkFyOSE2JTEoMzgjYFtpbVNmPmE6Y18qMXItPVBdSGtdNEBtcFdhCi1aU1BOOjlrXWRNJHMxb0FGWmlpTS0mUnU2MVZFTXRdUDwlYDVxYGFIV3AubU02SmgnLUM+bEU7N1svOkUqTjZAJAotWy5oV3BBJSwoRDA4U1FeYVlJK3VyUkJmQicycW0kTSI0NnJiLGBzajkxcW8sPTRSSUkmUXVKM0x0Yy0uO188JnIKLVUiL09YTWJXRVA0LEROPCU/NjlUcCs7Q2dXXDRePkMwQVBmPUxEPXMuLkNKMltnSVlWZ1kkMUJVKz1YIShwbVA3Ci0vWzd1NDlCRmMlTEM3cGxINDohJ2tCXGQ/WXFmIy5ZQHVaQzVlJSliSldWNiYrYk4pNTc8Nmw5R1wuc1VRbCk4UwotO0laI3Iwc1BQNzJEbVFJMHFzZWtXQ3I3YlxzRjIuSnVEbGg/PGIkKDhoN1ltZ0loPU9VaSNhJUdjRW5bT1dkT3EKLT1yYTduJkpDKCpbcU5ETWFzUSZqWG9LYVcvSjdmV0MvIkVPV3A4LWMoVGZVWnJrR1spUmpWLmI6RGdOIzVVZCRkCi0xUmtMZGAqcCpQZDZgMEltXnA1W1l0JHRaXXVbNmNVUSJZXD0zQkRGZS9XKjZyWEJpTm8yXCI4Mk5PWF0+YXVnYQotTjIubEZKRmFVOjJGUUtXPSRQJjVJMyxsSGlnakgycEdbRldjVW1nOzE5XUNeN2AqXjZYKG09ZGheTEpNbjZjaGsKLUhMREkqTWFxbVlTazQ1PE5ZazRtS1RdUSNKYy8tNUBIW3RvJkA8TEk9X1EuclNIZFowaltfMmFFb3FlcDImRjo9Ci0jX0FrI2ssSiFlVnEtVzFIbyRNMV8+J3AqVE5DJEdKMVdKRVhIb1VDaFVEKStBRksxXjVPc2MqY0dUZzhBWj9mQgotZkZCYl02L1JKLy5MKU05K1UxcDQnSjlyJy9PP20sI0dDdTw5VFk0S1JJYF1PK1xYQ1tVNEVUPjBnSiR1SF9jQk0KLWFyODxGbjRGazhGP0IhWVpwV2lzSFYxaFU3XV5WMDQ0aVw7K3VEdERZbUs1JEwhM2hvLzUnUmU8NHJTQyRtSGdJCi0/bk1MLCxgNS4sZ0snMjg0UmkhRFElNVY4KjpeJGFgV1hYRyNzZktORS5PI11cOmRMUzFDTjZDRWZWVyc0ajJJOAotYFNeMTsuLSEmQlQmYWw/aHBdNVQnLz1EclF1YUprbEFLNEc8Ql9ZPC5odElKUXE3cC46KmMnZStYSUtXP11tW2QKLSU+ZSg3YUU0TyxQLlpcdVcpUSxxYCw7L2VqZk0xY200XSJVcSdPU10/ZEdIVjVMQ0kuNzdBODQuLVpqPi1xbzhUCi1ua3Q0ZHBMLG5KZGImZzc4WDtwPWNsT09oUjIkP1JcJz4hZC1sOitnOCM1XXRZX2dzXlYiRiwnRTM0b0E9bUo2NgotX0syQFQhZSpZPkRiV2dCIV5vc21dSCU8PCY9MHUrNE4zbikuMjBTLWF1bVY6OEVQZF1cO24lYidTLmw4RCMtYCcKLTQ8PnBULCZjSyE5W1soanEuVywoSGRmRWdiN2UvU2wlSFFKa1snW1kuV2ZUQ2MjSWxiPmJfcEdMZmlyI28xLF5pCi1MV0koI0Yna2I8R1M/VmVlOHJTPmlXV0FQWHBwTC44akZPQCowRGZfQWU3UzVmaCtkWSYwaEhfO0hDP2tCQlFOPAotWGxQQU49IjhLMGFkJmhuLDs+QXMxaE5QXi9ab2BocmUzO29FaG5xT2dpX14kVDEkTE1AM2czP1ltZEFHJ2dYOWgKLT91VyZxQjtAa1o9Wz1Ga1YzSiVCRDlVZ18wM0Y9KFE3cyhuTXFSRF4+MHUqJSxQSiwzPjBHLyJUNyJScGA+RSt1Ci1XP1VsLkVETmVxKCJjJmZCYl51T19PQFkwITY9dSFFZUlpJVxYIzZoaCRMa0cmYWUrIT0naidRRVpjTT01XDRCMgotWkw6c0lfZTw2QGo8TS4wUyhCYmM1MmhxW147VkxkJ3BqaHJBMFdeaDJyYEw8ZSRAYERgVmReKnJlRUd1UENTP3EKLUVrcUU5a2hyN1Q9NTJkWF84X0IhaT5hLW8jYFR1T2xAckRMTiYqJXFWQiFMYEw9UC41S25xLE09RkwhYk5TI0cyCi1HZzskM2A5YSoxaGBMLlBSb1Q2JGEuMmxAM2d1aTY+dUoxRD9zNycvWD1HSVpRUnRVLTY0bV8/VT9fPC4+PSgvOQotaDInSTMiQSIzZjFUcis0cjBxbzlOOms+W1FSYmxQXUxkLnQtLUxNMTlXKUJubGsrTHFMcSc4TSNERkhpMUJtTTUKLVBwTD9RRUgjPytTQzNsQydwckhobXVGYS5xTUUpSU4lISxlLTsiOT5kK1RRZD8oIyZwMWkuLysyNF5tWUM9VC0hCi0jKmdIWz81bVZXMWlXMD5mUjpBTzNpcUEzO1I3TiE3XVMsT0Fnc0NuTUEoMV9gR0VHLTMhVm4uRV1ZWF5qJzY1QgotMF1BaWRdUVRiRCdnJklKOkc8ai9fPiwwQWtlZ2FJI18jSiNvIzNPbyZqKkpvVSlyJSxeQ1g9XFwmSTxyclsiJVoKLTNaVCxoMSdTbVY7KVpNJ2xFWkRBMDRUM2c3PCM+cTdHSkBxJ0U+IlRtcEhnLSVQN2o9cSU4ZFhTJUMrRV9xWDAyCi0vPlZjOyRHZmdoMWNHU2w2cE8uUXFVTkktXi5sXzs2Vjs+XVgyUlo2Km02V1VKKzlZUVZiJ3JwNyoqR10tbVcxbwotYGhaJGM4bmIiZF1Dcl5kX2xsJl1BWSheLCRCQkQsKiVbQ1NRT0FUWi8zMkBFV2cuXC0yPkA/akguUFVPNnE5WS0KLS42a2BIUUIzPjNqLCE0WFosSmNVKlVKSEtOXnAmOjomPXI6bztJV2MsNXN1KTQnSWc5WC4hX28jU3BEUGdOJE80Ci09JzJJdEFYcllQMT1kMS1fIl0nXUVTNzxvbklHaV5vPCsuKiY/aDJcWyhNOW8nNUpSTWJAMSFYKzRCaU40WzRELwotRm1KPzc/bkcsRGxFUStbW2hLaFVDVm4hOGItQyM+KlNpLkBTQzVTOiVXc2p1NWJDL0dKYWVnOGdEQ3RaXmNXODMKLSJbaENZR2A3V09rRkY7NyhrRSlaUiNqTTRjNGNzSV1kJ2QqVUo9InI5ZFRqTCdJW0VUI2I0Jl9oNE1nZFBpMjRmCi1fXGVPRCtMaCxeKihzP15xTFUyJGhARCUjXi1cUVllLENJJ1MzUidSNVNPNzNMbD1TUWY6USJHNVhZZj1lLUBHQAotLCl1NCVaSExYaFMuMzlkaF5nOUQ1SChdUkY6YkIxU3Q7J0NSPCtUWUVvRjNgWFZAOF9PZzdvWF5uKmRUclAvNioKLTYtSkFpZ1A8NEdZLzFTal9CXkE/YCZXaDtkMzYtSlVXYTFiT1BRak5IT2hQaDZEUT8vOD4lKWckJ0xNZzJiUkFmCi0iLloqQ0IidCJFLVRJXjgxOGROTWpNQXU1I2IkaT1DM2RZbDNeXFEpNmBBczQmRHQ5biRVQmtdWkRjWl9pT1FGMwotaDdsT1cwQzIjZDgvX05HJEQ9Lzk2ckNcOkNkdFwyKFRSVGU2UXA7Ml91Uld0KkFVa1gyTi5gJz5EVGUqK1o/LG8KLTZfbkNYIjBiLzgpOGtDaTI2MHJoRVFHdEBURlkiKlFVRjFLSGwiMmVuJj09V2BVWktWNlNrOlc4ZnUzLk5dWjtrCi0vMl1WJCJOLCElTSRiKFZYRCw5Q21EbkxBYGo/dHU+SjFYKC5dcytMYHInIjEkODtnXFFdPUFFTnF0MXA2Om8jIgotSF88RlRgMVpNOk9ESUZXQG4zVjI1JjRpSTlSVzpsLkJxbGA4LFJnbVM6TnFHaGBdP0tNTHBNdEo9W0FSKUcuRlkKLTBKVjk9PC88ImwmLjVKcV4mZldBYCxuVEMxQ0QlNiZPOihyIStcWHJuTSVUV11ZVEMxJ1UsWE1QZlspJjhTZVZBCi1YOy5aZzhyQGwoTydKMCpUSUwjWl8yRyIoMG0nJFBnWWA2ZU0rVDk3NU8+MTdDNGpaNVVlNUdDUXVKLVpTMD8lZgotSW48VkAwYDheMmFuYCFKKV9qc1c5KmhsSSxkSUtIVCoycTwnXVhfTTYwKDNMJ0pLKjhgLFFmUCI3ZG81MShJTi4KLSJbcCQxI2hoWSleSDFfc1NRKV5bK0pdO2YtcTNLail1cUhfUz9mby5fTmA1MSROJV8tWlpzJFI/b2Mla1Q+N105Ci1BISRzPT9qUk9xXjc8WnM4cSJRW2U0XmNDWGAwR2hnbklLbDYtTy91SyM+MjxpND9LOlRIYjAtKlhmWypsPitSbgotazA+NF1jOTBOTTwsJ1gianNmKGE3XG9jSScmOEEmZmhcbmEkL2Q0K1V0TFYrLW5bbF1NWDhNRSJTIjNsXTFPM0YKLTpHWGBPOE43MHNiWF5hZmNAaTdFUzVSXnM0PCg7Uy10TjlQZ3REaydTZi1TI01QOScqciMuaXVKdVZcNmBZZ3JJCi0sYDM5PW9NLjdKYzl1PkJOOyZHUyxhNVVjX2w6NUlTSUducC1yQiFYZC1zKFxFNDdHaml1Z10rVl9PUiQ4RUVaKAotUFNCTFhkOSgnUVUyLjpKLUlJQHUlRiMtWUktJlFjOi9JYGA7N1NoZWJUYSEjTiMnTDVkSlhPX2ZZLF1VXCZWMTEKLV8xYV4tZzFVZzFqXF1OWGJAayE6JS0jV0NuXGtxVTo0LC5QLFxZWD1AVDRTUzA8KWNMQU1oazQuVDlfOTo8RWw/Ci0mTyUoKilfaUtOW243WGEvPjExIms3TkN1ZSw4bz0udXUuJm03NmdmZU87LzIvUUp1SXBrZlxRIyhWM1A6YWNFcwotUzpjTWNLOyE8VUM7XC9GVixZalRlRHBJKmVOTUZcNTErcTw2XT5oSjRdXHItbV8nb0diUF9lVEZfOChnUFdMamYKLUs0UzY6V0hENFs+YU5zRGQ2MWpmIU9SXzRXRSg3WyZTMG0lNF82W3U7SEJpNmVxSkJNTV88VjczUyo7MGYncEE+Ci0sMnU7MD00R108JV9IalU/JCcjdGxJNS1EYERxLSZxcDNiTEg6bEcvNSxeQUBhPmE8VjgoRmg5NW9hO2pUazRYIQotWmImOGskPUtPKC10WTdMISczQUcmVGEoOjlrRDBuTHEnXVBfbkNpI2JzWHB0MkhaTWZLUz5yS2JYJkJFaFI8ZFMKLWIyW1NILmMsbDBBbSVRZU9fcEI3PEEoLT5ZdHBASVRyamQhRmRxKCdNTSxEXCJGcyolbE1fSmROdGBHLiVpcUI8Ci0uNyUtI1pXS0BlOWY1MmlOT0QvMVEuaTNbJiNIP2RjKDonR2hsSF5aZ0FuJyQnbGZAUVVwZ3EnInNsTjctKztTWgotWi5YSDc+LTQ6S1BDLyU2PTwlSWYsWGxpWyE+blRxWjxAQFspJ3VaJGBNVkVKY1RtYzYtakBURj1TYSFtOU8pdUMKLWYrU3AmI2pKZjVGYlcwRj5lUzg4SUViTTtNOzdMRWdiVU5mJDlXdSxeS2kuciJfNUBtST1HLjtaPEM4XlIvOGFHCi1gUzApVTRqXG46aDlHMVE3RG1dRUBaajlzPkVKXGE2bmxePGFKYWdUPz4vVUo7Yys9JGswZ2prPyxjJ2M/KzJgIgotbHNBJSwwSDZmVCRBNVw1aWovXiY/VCQoc2MmdUddUCNCIVZiLWIsUWpuO2lKV01lLGhXa0pVaTdJRk5hKjFQXlkKLSQ4bXNWJUhjMGJPJz0zW2hLQWxjRD80KCVDdTJUJV9sYSo6YChjQ2cqOCpaT008azUpSlxHTk9AIzxoWD8+WWQyCi0vYF48aiVHVltOPlUtTjQlTlthcCYubypaYVNWYkZSJydrJzpkbmxZJ1FSWHVTLihXNykyXy90P2hJcGVoQEEuZAotKm9hZCZYWkRQN3IjQ0dbUGBBOjg4bzdCa0JdUnNbXl4+THFlSD06MCJrSStiKWRpayJkZ2RKWl9wSShzIVwpLEwKLU5VQUNYanUlbWoybysyPFUuaDBkTlchQCEuLC4sWUBcdS1EKC1MV1JXRGBeLU9YPC9SWktTKzZkMDFYbEBXNWpmCi1wK2JHaU5nJmNfYSYmdVBJLFsnZ11qKGIwalJzU1BlRyk1UThgWGwkNmQ7IzRZIjRxY0dKN2wmZ3QiRmsiN2JENAotaD9KTks0I04oYlNsNENBOj5rOCdfayMwMWhIL2ZpTjcjPVFqZilbSlkkQyI0JVQ3LWpXYEQjZkckU1w5PFQqTjQKLWBnMTZmVTpKcCEqK1dgS0F1OT4oOnUpVU1KKHI3Sj8qNS4vOWtISTZFb3JbLWJ1U0twXjNnTTZGXmAhKC9NTj9eCi0qWiYrUkdpL0xELS9KNidiWiYxbEkkOzlrZU5wSFFrbiItX0gpbFAwQFIuMWJoPl1hY0ZsckNPPj9NS1ZZKHMiLQotQW5PUzcpXTROaXJgKS5UUFNYNGlrVmNFKCMmaU9lPF1dcjBCZTo3ZVRcZCwlT18+NWsjdSFiR1ZGNSNbTzxeb14KLVxBZidEY0NJczFWP3BdS00yJURfLUExTGQhOiElOUMyVS1qW1ttZW5kdGRtZk0qOmlJTCI5biZNczFeUEM+UT84Ci1gaWIvRHAsYy9dWzExOGpZW0QyTVc5Vls5bGNzcm9IIWxLQlAlNmIvXnQsOkheOW00V19lPldzLWRLSjpEM1xgJAotQTg9WVJDZCxzVkFRK1U1UkxTQ2ZnWF9lV0MlXmFkYW1CInJrdCdecSZEbjBIZSpBcDspWz1XKiMxYzhAKnRAZzcKLSVMK0BxN1lMKCopSlhgUG1FQ2t1TkouaVBfIVMjS2xbSF86RFZdMV00KU1kJEFpJ3M0VlE9VG9qKTAubW1RZC0qCi1HKyo0b2tBSCVAQkBdUT1oVi4/dF9YPl89PGkxNVhePl1IclVNZk02bGMvR18/MF1vXFZKZGxNQl9HYHRbZFMrSgotaDxjIU9DWCNkWDw1SiFhUCZFaGRuJFlmJj9CZkJRJCxGOHJiVD5eMFtmTCQpMEJlYClDTDZ0a1NxcS0xcUo+VGcKLVhbYExwSWdHPnFMQEYiZGtdW0YmKCtXMUklSWMiXGtIIyYwb0JTSWJhRCYmW0VCYjAmZS1PV2ZlRE1cPkVJZV44Ci1OdHVgLG5FVEhCbl5TUmdbaVkpNXAja2M4bkJXPiI+Pko7JmBHdWJBRWYzVFBZK1hpZy48PCZjbm9oOC5jUDFFPwotMDYsa25XTlMjSHMiXFIpMCdDaEFvMVEyYzJfaXM/MjA0KnA3XiJfPisjXDFxNChmbzFFZU00IV5IUVwxM1VqNDkKLW9GPT8zNSxFPzs2WmFDc29LUGNIP1VAZTs3SikmSUVbTk9nZVgsIUY4OURQND1EcGhsYSUiPENqN0U6RUVMcD1wCi1TUTlpTGhLOScibm07cHNVXjIqNSNYViNVRlxiMkQ/T2chVTRRViZqRmRIQXMiYU9gPiJJOithRlJOTicyYzhxRQotXiEkXVRwLD9GUj9UbVtdKXMyJ0hvXFg4KFJ1UikqQDxTUGIpXlU9NUdBUiFBQzk7LGRHNSQhInFsVFQ3RidFSV8KLUcvJittP0w7J3NHJ0FBQ0c3U3FCUyQ6XVJIP1skO285WGlLaChcVGRJczpwQ0dSb0BNKytlX2llb2N0QEIsPzJBCi06SiJJWUd1O1Y5R1tFLG0qSSlfT0FqYEZ1MlYyUjlRTWc6NS9wNmQxWytnUTJYNyNhUU5iRWxFRTw6W2Q8TDdeLwotQGItPGlxKXRbaShFIWY0UTldWCFuRGVCXUxOUm0uU19BUl9vP1dmPktDIWw1TWc+JFpxMC1DKl5TLixNTitrTFgKLXFGOWlCLV9DMSRYKlZPXkhJJl4+aGxfOm9ZQnA1UUhPbUIuKzBwNUhaWzRvTEhVa0l0cyomZnNbb1RFJGs6YTpACi1KJFgqRFVPJyxURmwvX19EamwlIVshVC5kcSk/JzUnOShMa25iYUs4cUdqSGphMkUwXFZZa0BVSSIwNF0/Y2RcZgotYkMlKEtJKl4mYmhwLVc8Y1s+Yz5JMU9fUis0PlFqZHNYSTFJOEFCPFw6Qil+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzMDUgMCBvYmoKLVsgCi0vSW5kZXhlZCAvRGV2aWNlUkdCIDI1NSAxMzA4IDAgUiAKLV0KLWVuZG9iagotMTMwNiAwIG9iagotPDwgL0xlbmd0aCAxNTUxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZklDYHEsPWN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aVBfakRUKWBedT0/bkNmbHMjMixiIlNMajpnQj47IWg7T080Kik1UmVZQGlvO09jSmlrb0wKLUQiYWFBQmhoKSFcNV0yIVImR09LMkFmZTksdFJiVT9vWCc8XzU0RCYiUEBmUSlwWT0uS2omU0IwWnFaRyw+Iz9fCi1CZjcjIydNS0M3Z2ghVVVOVFZHY2FNTW5pTGNmLi9MdTspZ05mWDgzciFnUClZY1MkMSZxaS5PSzFsWCdOUGhLPAotMUNQS0ZiKkJhYyE6b0xlNXRKUjojdF1BRl4tQWNYVzQiJTVUXF9jN2NlSjxyTjo0IikzTyhxQmtSXC87Yi0zYzYKLUBzZW5FS0VKNiNYaHVoa2QmaTw/PlVETGtKSFEkNWEsaT9qMFQ6bkVFXT1JUCdAQGEuMFlFcXUvIy8+dDNLLmwhCi1pJlY/VkY/TDBhK2otMVk1SFlWMVc0OE9xaSJsVUBnLGJbWVVWbmA/WWAoOV9YR2hkQio8UnAwKjhbUzouI0pTcQotLC9LWGNOMig4cFJNUS8vTGhNSmhKTyQuajguUCxUNyM4WzphSk9OaDk7JixgTWY7OURjYmg8WztIMnM7ZE1ZdDUKLVA1YWAwQG5ccyNOMiU2UjFsZnVlRWwvO2AiR0hQQ25cb3RXJSY0NFZYQE9mLVNlTUAuK0xtRGNfZlcxQjgvNmdYCi1AQmNGLyMtRCxAVWBDRk9HLj5obF9zbiI5Ti5xQHJVQ2phQEp1Nis+ZUM/UENeWi4uaV9VdFdLTEJsVTdRLGttMQotRz9kJGVeNEkyLitiYT8vb2tUUVdMciknZSZCciQ9aUE6V0Uxa1otNzYkPkhdUE5kLEszKmImSE1MZVo6J1NSPmQKLSRVYGlrTHIwSERAcig2Kz1xPWBYM2JOSG0nYTcoZVItSFkmLkk4blk+Zi4jL0MxPFI3YFxvcS4+bXJVMyVgRW5uCi0lPi8xbVMtTjJDUD5iPWRDdSVUVWFFIiNeM0FcaCNOczJcKkJoYUpBTGYoNT0rVFM9Pmg7VGpEM0Jnak9wLSs3VwotLlM6TVRFWXEoOzUqPUUjNWQiZEY+MiFsa19WTXA5QmlwMlkkcypGXV8yTCREcFdCWmlpKzpIckA3RWxaZlRxV0IKLVpEY10hQFtjZ2hrV2gnM0NTLE9zRUMyKj5FIS0yQGM4ZypeWUNHL2FdYTMlQHA1MkEsYDxIMElMLGlFcVIpQGE9Ci1YVyYyVTRbWFokMUNZU0pSKStoVTA5cXJNKSkiNTpvTmBVMS9kMmYwT3UzK11pKUBPO2hlLXVxX2tIXS1ZQWhuJQotLWY+ay9nWlQnPkZsXjRgcjtYdHQiK2E5K2dIYkkpKygrP0RIQidbJythPSYtY1ZjZk5tWm45cWNwL1xGSF9Da04KLU5VVC8mb2AkIjwpTHBpXEUlTyMwIldqME1LV2FHJVwpckZgJG87Mm0kXDhBTUozYG1tRiFsV0xqckx0MG0sRmBeCi1CMC1bOHJPUjVgJCgzPHIlWnBlSl9oXWlMK04oVS1jPSs+cmZRY0VYNCR1OXFbMFxTJ2JpJ0UiNkFdRElyPzN1WgotYHJjcS0ubiRKWlg6V3NWZG85ZSErTSQkc0JPbEdHKUYuVG8lUTsnbVNmMiRiPGU4Wz5QKG84KyRfT0A/I0xFa3IKLTZMW1lUSkhVdTkhOmVtW1Z0Q14xcT1UTyVhVk1aJ1tNaU9eUWxvaFVjQF0iTVNtLD5xL2dpV1dLK01vME4nWU4tCi1pNyZTYE9EWVAhMytGMktdSGk2WyVkMVdAOyQhSHF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzMDcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUMgL0ltYWdlSSBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9YT2JqZWN0IDw8IC9JbTUgMTMwNCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTNSAxMzA1IDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzA4IDAgb2JqCi08PCAvRmlsdGVyIC9BU0NJSTg1RGVjb2RlIC9MZW5ndGggOTczID4+IAotc3RyZWFtCi0KLXohKXJwdVdXMyYhISVJc0suVD9CdFdXNE9LISlycHU8KWBpc1dXNiN1IS5GbkpJVC07cldXN01KITMtIyFXYC90dQotV1c5KCEhN1V1S2U1UUZ0V1c6UUshPDMkIXMmOSF1V1c8KSEhPDMkIXMmOSF1V1c8KSEuS0JHdSEpdEVKV1tcI0sKLS5Pa0VKLlRAbElXW11MdS5UP0J0PCliPkhXW18hSi5YaEBJSVQuZUdXW2BKdC5dTkl1V2AxSUpXW2IlSy5iIkdKCi1lNVJwSVdbY051LmZUSnVzJjpLSldbZSZLLmZUSnVzJjpLSldbZSZLO3VjbnQhKXVudFdgL3V1PCU3bEkuVEJAcwotV2AxSko8KWBpczwpY2dyV2Ayc3Q8LjRnSElUMDlxV2A0SEk8Mm9wdFdgMnJ0V2A2InU8N0NuSWU1VERzV2A3TEoKLTw7dXF0cyY7dHRXYDkjdTw7dXF0cyY7dHRXYDkjdUlLMEBzISoiQ0lXZFhzSklPWT5ILlRDakhXZFpHdElULTtyCi08KWU8R1dkW3FJSVhWOUdJVDFjRldkXUVzSV08QnNXYDRHSVdkXnVKSWFlQEhlNVVuSFdkYEl0SWZCQ3NzJj1JSQotV2RiIUpJZkJDc3MmPUlJV2RiIUpXVzMlISEqI3J1V2k/KCFXW1wiSy5URUR0V2lAUUtXYC90dTwpZmtzV2lCJXUKLVdkWHJKSVQzPXJXaUNPSldpPychV2A2IXVXaUUqIVdtaCRLZTVXSHRXaUZTS1dyRSghcyY/I3VXaUgrIVdyRSghCi1zJj8jdVdpSCshZSxUS3UhKiVHSldtaCVLZTEoSUouVEZuSVdtaU51ZTVRRnQ8KWhASFdtayNKZTolRElJVDRnRwotV21sTHRlPmBNdVdgN0tKV21uJ0tlQzRLSmU1WHJJV21vUHVlR2ZOdXMmQE1KV21xKEtlR2ZOdXMmQE1KV21xKEsKLXJyPCchISomc3VXckUpIXMhZSRLLlRIRXRXckZSS3MmOSF1PClpbHNXckgmdXMqYXRKSVQ2PnJXcklQSnMvSCkhCi1XYDkidVdySyshczNxJktlNVpJdFdyTFRLczhOKiFzJkIkdVdyTiwhczhOKiFzJkIkdVdyTiwhcnI8JyEhKiZzdQotV3JFKSFzIWUkSy5USEV0V3JGUktzJjkhdTwpaWxzV3JIJnVzKmF0SklUNj5yV3JJUEpzL0gpIVdgOSJ1V3JLKyEKLXMzcSZLZTVaSXRXckxUS3M4TichISEiSnUuVEJBSElYWmFHV2lGUnVlR29SS34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTMwOSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTI1NiAwIFIgCi0vUmVzb3VyY2VzIDEzMTUgMCBSIAotL0NvbnRlbnRzIDEzMTQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMzEzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTEzMTAgMCBvYmoKLTw8IAotL0QgWyAxMzA5IDAgUiAvWFlaIG51bGwgNDg4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzExIDAgb2JqCi08PCAKLS9EIFsgMTMwOSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzMTIgMCBvYmoKLTw8IAotL0QgWyAxMzA5IDAgUiAvWFlaIG51bGwgNDczIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzEzIDAgb2JqCi08PCAKLS9QIDEzMDkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzAzIDAgUiAKLS9OIDEzMTggMCBSIAotPj4gCi1lbmRvYmoKLTEzMTQgMCBvYmoKLTw8IC9MZW5ndGggMjUwOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGdyLzBOPlJjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhZjY4bl4mJjtNWGYkZUptL2g0KjI7SUwnKDFqO0lWJGNHJ2NcV0FHNTBzKD5mPSYzaDRnMAotazdBWEMjOiJcWlYtLFVCOD5lK0xhTEVXTiQ6ZjpxVFc/PCgmJEdkImc6RTxFaCItNllHWCpeOlVTPiExJTNxT2cKLTJSVWFiZTIiJzhUWWBoLWxJYiRlJSlbPk8kNEs6SGxFKUBLR2ZoYiNAbj5CMkwhVUxNKEhjQjpycDJeNllobCgsCi0kMF5VWl9KZChtIzdXNFxhViwoTUEyJChSLEBnOVUlcl5NLConRTdQYlJjdS8mM3E8QlcuXmBVIk9iKF5mOCJuVwotaCMrb0JQUSgxVyIrXVNxJFkpYD0mNTA8OmZfcWMsQ1xwISREWDkpK2NTT0BUb0s+dVtoIlgnL1VkWmlMO2NPJWcKLV5iY0lzbz9vKlciXDtEcyZlKFdnXzI4a11UYTQ3PyYtZWksQ19tO2xaQmNzYmJANHJFTCZtZlxSTDxPaFcmLWpECi0xZW9kR2xtYyRpTmFuSTUwb1tDZCxkISpyTV1oWyUwaEJ1Kjc0UUwvb249UUZFImtJOF5kJ25XITxDOCkkdENqRAotX0QnQENqVGdHTjBeJzozaiJPW01gOGAubiUxYVVRXGdlIlhIdFI0YWIrZFFtIlRvJU5FN2M9VFpuJGhSYUNHdTUKLVRuQlIoZy9ybWhhNGJdUS5zLWZcM2tAPFxRTE9ETiVFb2F1Ji5EQ25rNz8zdDBfNihocDc2NF9OSXRgcVE9QlFQCi1MQ2RpaV5wb0FZZFNOMUw/SiEmV2lSPFRtTyYuaSZKdGEwaFknPS9RM2YvSCcnJjMtaGgjIyJhaStqXmUkOkRXIQotNEhbN14yb0QqTm9ndWJdLSQyKElRUig3bl0yMiRgLEpnP11qdVNHZ1M6M0wvW1FbN20/c0RdXCY4Y2MzN3UxYjYKLUZXbl4sKG1aVEleJSRMYHFXalldWjgnJUYjaEptKzY0Ti9kVy5XKUVGa3NOUzliW18rYnFsXUBvV01AMkZpdGhgCi1MPT5GUTRHaz8hVjYqXXM6NDZCLlxqPTVvUj1WY0VTRyhvJD44MDBOJkBISGcjW3BoOmBuQyVwVkUlaGddQSRcRwotKi9paFBxXEhURUY2XjRMSDhkUVUyOW47PEs4LV9MPSs8ODRBRUgha05KXiVHQXFQS3NscCxPKT8ydVlgYCRoJlUKLUxBMmFNSmpeJ2FjbzgpKDJUSy9TaiJSPllYSGcvXWJgKmBSIjlHJzIvZXJLSzhnOzgxJE5ZQGBpOC43JWdeRjtkCi1XJmhEXDVUMF8xRyVRWDwyUEdoWCowPjQuOWhONGNeZGo3aCIpKXN1Ny80VmNlQ3NcKGUvU2xGOzlVUWtkKHRjJgotO2FubGAiZD1Jc2NHPlQiLSNjPEVfWT5UIik1QHQkViJzQS9KNkdlZmZKPGBKXDFqXz9iNDxvcU5Kc2ZEMls4bXAKLSheIkcnSXI7TkBfdDhLZT91Ky85RUgvSFQhanJqV0hyKT5NLjo+TU5iKF5KPk5KN2JMVC5aPDorVzI4UyUkRGQiCi1ZJSlAKlVSMy9QSl4/KipQSWNdU10obUpILixxQD1PP3NGYygrZmJqTnJqai1LWW4yY0FxPyhTLzdBJShoalZcTgotMUIoTWAhOVJQQk9fI3VlZTs1WShBLjRDVVdFIV0/a282IjtYWzlPMlBmUjc1JztVWCs/Sz1YY01aQ1c2ZXBKQmcKLUdbXmRgLGtYYig+UytgIUpzOTEqM19WZyRAWlpQQyVKLC0sV3V1LzBQJV0mLEE/QColXDZzckFhc04wYG04c0g4Ci1Xa14icyReIV50cDRjRTIpJC42KCJVNkgwTEtFaE5WXEkrLVV1ajNzVVhNYjcxYzlpIlYoOUYoPm9RakMlbXVOTgotO0dVN1UjVSp0P0syZ1E2YihiVTslWzorYmkxTTNFUHRIM0tpLCtmL29KRDxMaSM8T2ktay5vLClicFJEKHNGUUoKLS1nZUR1K09LUiViVlRodFk8bU5gPW1dPkRKVkw1NGlZM0gkKUI6KzlEaVtlbjRybCRUOnRRcEFFM1hSSDRzOCxrCi1CaSZvQ24lbEckZy1ZbmIxM08vNkpkTjZsNT1mNzYuMGFRb1U9PUxWKWVDZUQ+ayQ3YFEnSWVsLDhHJytYTGErWAota2tfREtfZmxNYlxdMEMjU01vKF9FL15MKSkmLE4lMFdQZ1w0XDFxclhMRmZcNW06RyY3TjByRC5xaGNFWzdVbkwKLUUmUGlEYC5lQUEmbkVpcTw8UiM8VmIiK2QvZTZnXEsxJ05HUSokO1VWZFI/amsnXi1CPjJQMFo0SkxHIVA6TDZTCi1UdD8pPVsqOWhlWGUnaF5BaDsxQ1owVHVlSzokPiFFNHApKFgzNWk6KUJZcUVfTjF1ajBgKUU+K0Q6OWcsO191VgotRU1cIlIuT0UkQSZhI1ssUllmVTFHO00mWzxkZjp0MGgia2NKSEI5bmdeLm1hRSwsVyUpTTVuNFBMOkBHL25bMF4KLVVKbztCIUA0SE44JlldWmU6ZHRQR1osKmcsVidzVTg/ZUsoaUg3YVJcME5jUFE7cyMlUUtzMlxkPEkzcStCVzI9Ci0vIkBVXSEobisxaSo7bklhO0xBSEpuJmdKO2JuXmhdWEEoR2xrRkNrY1VwMzlUZFVKKzppTCNjMz84Pk9GVy1paQotSENfYyZoLDBTUUdyM1grWTskJHMhUENqOSdjOVJSUiRdRmlkTGJEN1c9JT9ea2UmczInQjVGUz5dMk9hMlpYWicKLWZhVWg5b1UocSRYanFzWEUxOnVQLiNcdWYrc09SVys0WUlfWDc1XHRfVEtZPF5iVFtPSU9sRiMhZjtQPD5ITW4qCi0kUEt1cFc5YUdbTmdjZ24ucz8nJEVPckc2RTdXajFcakA5bidsSVUoPCZjaGQxRHQhLEpMLDojXGYlLlo1WDV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzMTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzE2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzIxIDAgUiAKLS9SZXNvdXJjZXMgMTMyMCAwIFIgCi0vQ29udGVudHMgMTMxOSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEzMTggMCBSIF0gCi0+PiAKLWVuZG9iagotMTMxNyAwIG9iagotPDwgCi0vRCBbIDEzMTYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzE4IDAgb2JqCi08PCAKLS9QIDEzMTYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzEzIDAgUiAKLS9OIDEzMjUgMCBSIAotPj4gCi1lbmRvYmoKLTEzMTkgMCBvYmoKLTw8IC9MZW5ndGggMjU4OSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGdyQ2BxLD1jdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlcrImwoZG9dJCdZIk8qX2VOPVA0PXFCWEwnJW1UYlNqXCIoZG5SPFdPVHJpX0FlM0cjWjc4OwotKz4rKUI2VU9HVGwwMCdPYl8/ZS9kLjIvSVNJREM1QT9OIyklWUkuNCYuXC5qKUFJb0xeZWpXXzpkYyFRTk0/ZDsKLTMnRiN1PmtcWiUzZF9XcmlMaiQ7XVJscCYmLkVBJ20oa2U9K1ByaE1fakY9U01MbmA0KDlgZmwvQUpiPk1sTjQtCi0iMC1bTE5lO15ZMmFsXGZraj8zajg1TTcpV2t1OUwiOVklMjBURCQpNVdfU2pYN0lKOyYuP2VzTmAmT2wzSz1McgotYVUzXDNTKkUkdWoiKkdHS2QhQzAnRmNgKGdGZ0VTUi1QJzxuaGFcakpZSmY6XGlNSTJCU0BkYTZxWDEuO1k3LTMKLU4/XF9JMkNQUmRPcjE5WEJHcWhEXzc0SEIvVy08cmtxJyp0Ol8zYl5SLDBtL2F0LXM9LzhBWTxbImRQXlVxYkUkCi0yJV0qJ25MTkJLXXI+OVg8RTUtJydfQlJFZCdzY2ViMzduRSI5V25lMiU2WV9cLmt0TmNwOW5JIV07XTgrYj5rdQotYj8hcUo4R1w/Q2QtLyRrLmsyQ0NnZUpjYlJgS0VMSzAzJjM1WyMlW18vaDVlN1o5YyNIKio8J0xjTipNRjZPQnUKLWojLT9NYUstPGZvSysyckwoRmZISSZDWE4iLWsqJk40LUA8XFk3dHRDT1QrR3BlV0tSYlZcW09OMisyKjJOQUtJCi09cUYzQS5ecUxtYjUybzdeazU7VUJZT1k1a2xXNUEwXSlkPGoxODgzPydiLj1aVz4/dENrakpgWVttJTBvSStGPAotVkJKRUwmOCFxb0MsMVFpLDRgR1A+QWBMOiJINSRdWj1bNzktbGlPWzBaLlowIU9dLDxkYVNuRTMrTDlVZC5JVEkKLUxxIyZIY1tdWkQuMyckYyhCclBvOUdfTD85JihlU1VTLVNrS0dvT3JQM25gXjwlMiJHLis4ajFDPFM9LzZVUjIsCi0mLWc9TSxgNzxwTmkmXlw4PF0haiMuRzgxanMtamdAcEkmU2dUVyROW1BhLidiIy5qWF9kVGs7Z0JgZkc+YyxDSQotOkhrJDJrQlYvPiNnVm88RTFXdWQiTjpQJ2QrampAXUAxaUImNUU4SUFIZGMyS2hhX248ZWdyITpsP0EoSmBVYm8KLTFoc2hSX29gLG5GV2xKcEhsSkwmNXNRa15COTc1ZklOSDxVNE86LGc1Wi5zPmVCcjRiNnFFNFVFK2ZeaEAzLFJcCi1wJ1gkKixgQG5tbT1bK2FpZlFQWSUzIV41M01eb2QrdCglT2ZaWDElYUJBdEYiPS5qJS5LTXRLWFRRPC5ZYS0xPwotUCVNZj8kNU4vTU1TbEhZN0VXOzpdPGwxbF82XVJXVFUkZThLcEwraG5hME5KbCM3M2FxQCpJWDxGMDxHK2VpRm4KLSo9NXQlPXQ8PF5Vai9oYj5sJHJQTE5yO0MzMT5HTzMtPlw2X0U5aFxcM1gwbG1PaiUwMm9jXWJebGMwRk4wKFAvCi03V1EtTjYiNmxYaTIvRCguNEY9KFpDdD9eZUtSTSxQJzlbdC4+KjMhPFojQU8pXFVTKTg0UkRYOTZAUWRQUVspKwotYU8zXF1BY2RzXUklLGBvOGwlYEw9Tj1vTlVrVS01MlRnOicqMTlkLTg/cSwkOCM8I2glZkVuMF80P08+LGNJS2oKLW9NVT1KOi5WQGBNKDBpLyNFcG0mMTxkTzIpQzVKK1BZblN0YFRhS1M+Qz4uaWR1SklvSChkOXMnWUtZIm1WaUQkCi0ubSMndHMuMXVUQUMiQz80bGxBaCUpTCI/TC9UIS5rTV1tPVArI2pfPV1WQCthWF4vJDNeTHEsJS9UJFlNZj9MYwotMUVXTipHLF07MzBbKz5rNjA+IV9CNy88b28tJ0FtVy9YNy9eYXU4UG1WLFFKckNMUXRmUTMndWNxJitROU9xTlIKLTVYZj9FK14wOlU5L1QidWRpSldgV1wkIzBvYzAzOlE0VlJQanBELzEtbnMvUj1qJ2VlL2ZzV004WC1NXztsUDtWCi1DQjRqRjwpMC9nQmZORVo9RGBEZig2RmNMVDArUFcyTWl0MiRVJT1AJEdmdDxZc2VDRVQxK3VmPXJMQ3NARlIhKQotVF1YPWFOSWQ3N1FFajo/OyxPKUIuJ1laX1ZIMVJZNycpPEZRQFswQzBeQ0IoRDRSMiIvNVtsSyRVbDdWLXRUZEQKLVZNRVNKNiNHLVE7TTdPWykxciJZRk5aM3QiVF9GNl9MUEsyLVVTdTY8O00pMzZcUHUuTGNBPWcvZmctWEkhNEtPCi05aGM8Qk86bm9FKl5LbztCLWhFby1ZTEFDZlhjdSdwWyY/YWw3RC4oWnNcaF9AOHM4OWYpcFJyMXFLQCgpaj4oWAotWihRNWBRUzI+Ki8qOCUjP244JUlMJlY/MEtvRVVJTUUzPHFjTCpvLFpNbS1ZMFNxO0tMTEs3P2A3QSU3SzVXZEMKLTRRUSxSJmlhcUEkRVEtI1wvPCgoQ1tWW29YdERbYjh0MGZrMUMjJk8kRitgOyZUPmptTGo4VWVdbj5lbCs+LUUsCi0jWSN1OjlOI0RhOzJpYCc3aDtqYFgtTS5MJ1BVPWJxTnNDUzJyajtLYlVPLC08RkYuMT41MSNcXm47b1JlNU4hOAotPEVbP25bJmJFM1xzMWtPVzAtJFdrRVA7LSNxblYnM15DUktQPklkbmNUTD5bbW9dS0IkdVIjZFpiMXMxZURuWTsKLWRXM0tlYzZNSHEiXy0qVi1SKihAXkVKQTBMKjVAVmZVQGlHKU8uPjdmO0taPGVFOjc8Lz9CKERsPThiMjwnKzpuCi1xJlZlW281XFN1QCYyPllbcSFfSVc+MkZuNnA3VCchaHJwNmprK2dYamZhalJgWiZDKTJKR0lsIk0nTkdiKDRkagotNEtoK008LUVsP2kqbT0yVHIyU0lbWUE7P1lVVGZIRGFSRyFZXjwncDhBbjYyZjM4Uks7SihlMzVZZkxWIVdfcCIKLSoyMkMnVklZNz4mLX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTMyMCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzMjEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAxMzE2IDAgUiAxMzIyIDAgUiAxMzI4IDAgUiAxMzM0IDAgUiAxMzQwIDAgUiAxMzQ1IDAgUiAxMzU5IDAgUiAxMzY2IDAgUiAKLTEzNzYgMCBSIDEzODEgMCBSIF0gCi0vQ291bnQgMTAgCi0vUGFyZW50IDEyNTUgMCBSIAotPj4gCi1lbmRvYmoKLTEzMjIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzMjEgMCBSIAotL1Jlc291cmNlcyAxMzI3IDAgUiAKLS9Db250ZW50cyAxMzI2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTMyNSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzIzIDAgb2JqCi08PCAKLS9EIFsgMTMyMiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzMjQgMCBvYmoKLTw8IAotL0QgWyAxMzIyIDAgUiAvWFlaIG51bGwgNzA4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzI1IDAgb2JqCi08PCAKLS9QIDEzMjIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzE4IDAgUiAKLS9OIDEzMzEgMCBSIAotPj4gCi1lbmRvYmoKLTEzMjYgMCBvYmoKLTw8IC9MZW5ndGggMjMwNCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGdyWDw+byhjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhZjY4bl4mJjtNWGYkZUptL2g0KjI7SUwnKDFqO0lWJGpNckAtWDlXW0gnMyNQR2YnOEYpIgotaj5cKGYtPGY3P2ZRZSNLJUg3ZUYxZEVOKjxYcVQ/V08wZiwlWis8QzBZYmNfXC9DI2VVRGJxS2NvPlI/Li1ZdFsKLV4rTGg+clksTDxxbmhsYCFvUW9FTl85KEsxbF1CMTtZZ2g1WmdlM1pfI1gwPyJqcixrNS1BWj5SJ1F1RjhnOHAzCi0uJl1CTSMzYS1GKz9BYXNAZCZQNFJbMEBtVT1gOWZZZiE2R1EmTUtWI2tYKFc7ITohVEU3O2JyNFFETiQobCYsVwotYixjJ2A5QGc1WjpQZENTXjgkbltyLz83NmtyViEwLXNSO2QhXlBVKE4yKlwrJ1NiUz47KFlOJCFkWlQqVUVFR2UKLU1MbmVRXi5hV29XOUFzRG5uQklFZCw3L05OP19pYCYzXD9pYEE+MTw7cVVsWkNpJS1JXlE4IWYhQzJvVCo8Ziw4Ci0rQWk+L2JJbVRhYVsmMUQnU2A8WzpfNW0yLylyYkBlSEpAQiU+MjEtNEpjUDkiXks5RkQnKTwiVTdiSlItQG5HQwotVSInUSpsOE1qJz5ycU5bYkYwSWZbXDkoKWxJLCNjJWpqbGJGX2BtPFA2OkpaYmVYRl4zYTM3UnI6YmpIV2Q2SDIKLVsyQCtIYzssRGExVzRvLydfJSZrOEFlO2BAZ1tOQmNYP2c6M110dURrNHQjPkdpbGkkNlkrTSRpQ1lbRjhSOnRdCi1FRCY+JlAyTSRtQDdBWG82Wy8xVjMrL00rYFxRWHUrUjF1dClJPEFLPFxPQFAmND1jS3BQJy1wKSFKZ2plVFJWYgotbDskdE1QIXEyPTVXYEljWSlqMyZVRj49ZU5eSW1ARDoySlhebWAzKkYyXGV1WV9pZUwzNFtnZ1NdQVJLJEttKkUKLSlbZ0hJQHMwRmBjPzNVI1h0LlJUb0pwKXBXWFRvSGRGK2oyVTU2NDcpWzRZMFFCK3JGV2hYckQ8W0VfJCVIRC1VCi1fTHJnUyEmcyNDJzNyRmE6T241U2tiQz9yMlBrPFpwIygjaTUkKldrSy9bNWwuazk8KFxTOl9rXy0rJDFdPT5vTAotUUwyRlwjN2RuYFk9dThkJ0tZOSE1aUliT1dvITxKbyhKXUUmLi00UFFtUG85XW9HLSRfZV9sN1B1cio4TilicmUKLV5vM3UwSEQ0NCgwV1BrXzhIL2RSQWRnNzNXWSlJT2JGXCRDL1dZbnEjQlMyUCZJQVtzWSRoI19kKi8wNWRKbmZUCi1bOFg7cmcvXT9uTz9XX3IzaUApNF0zMU9uMyxXXXEqLlU6cEpVcFomVFlNS2RuNjJcIVRlSWdkUS5ebV0pUUY+IwotRyRXKUpnNzpbcjlocmdiR2dHblcnIkFrQFFsb3M4YUlzPWpROT02R1JpI1gvRUs6ZjUsMGBEbydlNDJURmVSO0sKLWpcWnBCNy5BOnFMVS0mYE9JVTtDMSFPLDFBKydAIUNbMkpHbSgnVDlTcTZ0Ri9lLTVgI2Z1M05DU1tYcE9oamRbCi0tU1hkL2pEKlFVIU4icyZpJ0otcVlZa2VkL0lxblA6Pj9hSy06SDo4Ul0iKyEock1HUiRtRF9gIVwlQG5qYXEsaQotXzcyRzA1ZjI3WC8xMXAoV0JDOy45ZFdOL0ozb0QuJGQzN2NDU2BJPCVgKHNtS2BJIWNWKklvY2ReRTVFaTYqWzYKLTMkQU8iSmtjUDleKF5YUTYoRD5bNUY3ZThjNSZPTlFQL1JpIWY7PWNAJjFdLVYuJE5eLXFGYENFJS40WmVwQnE6Ci1uTVNlVkxsanJTRmVTJ1wkQlsxKFM3Jid1YlNkJDlBLjNLRm5rK2NTSkYiKjVPcmc+YEthLG8nQmgmaUlxZWFpSgotJW5GUTNEO1J1VTZjYVJGIWpIM2xKUGglMTYnTzxfQzIvVylQbydaXUlTLmEwKmg4XCQsbUZBOWYpYnF0M29sUSoKLSUzVl9lZHMxZ2lBWlc+KG9Ua2RIcGVEaDxJNEA/Vy4pY0NTJ0ZaSSVSWnBgUSZsVEBlZ09lJ2wkYWU3cDZSbSIoCi0tXDxCQztMQjYmM29gJjFEJ0NSXTVzP01dLDtjP0BLV183K11OOywwNkw5RGAtREMtSDApMklbOnFUcV1taGRkYgotaWopMW9XVEJLUmIhJiQnaSMiZzwmOiFTTlhZbiNbcUk2IT1SWUE5XFlMcjJ0JkovUUJFSlhTQkhXc1JvN0BDVnEKLWYmNmc5Y1VUQWRrRz82aEwwTFlJQHU8XkgianBMPzc/RTlbaHVrLT43WmFkSSlkUGA6ZyQrKipZJS0yPCpka2pyCi1GTE8nXzY8aSNuRHJcZE8lW1MqMDM/KyVeREgtRCY4KS0iWFJUVkhtZ2tKI29iVz8lbCZMYUhjWUZUKDooL2RnUgotS0FzYEMjZjM+OTlYXjI9J0UnbSJhMXNJOWpeY2xqISRIKldTLnUsJT9NOVdrQjpQOWlVUDY2KChNMC5GVC8maDcKLWVdXV1TME9aSytVdFomUFdjOCltKkJaUloiPm5VaE1gPENpa2Y8P1pXXyw/KzxDLGIwMFwncEA8VSpwS1o0MilfCi1GMD5jT3FvOCE/UCc3QSJtY2k9UV9PaVY1NF9dXi8nUC5XOlF0dCYiVVUtRkU9RXRwIiUqOFNvKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzMjcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzI4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzIxIDAgUiAKLS9SZXNvdXJjZXMgMTMzMyAwIFIgCi0vQ29udGVudHMgMTMzMiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEzMzEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTMyOSAwIG9iagotPDwgCi0vRCBbIDEzMjggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzMwIDAgb2JqCi08PCAKLS9EIFsgMTMyOCAwIFIgL1hZWiBudWxsIDQxNyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTMzMSAwIG9iagotPDwgCi0vUCAxMzI4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTMyNSAwIFIgCi0vTiAxMzM3IDAgUiAKLT4+IAotZW5kb2JqCi0xMzMyIDAgb2JqCi08PCAvTGVuZ3RoIDIxODkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmBncmxsYVxoY3RhTzIkVicubmU4ajskLm8yMTtQQmpfTi9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRG0yaU9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VXJ01JQwotYFxzO3I/bzRjKkpcYWY2OG5eJiY7TVhlXiw9LywoUVE8WEciaUNnXF5gJERrKWMlZG9ZXmgkSyg2LHNuTm8+Qj4KLUA1WEhHSnFJS3JnYWtJVk5iLSR0bHIlKz0mdUZVQmk2MiV0VlA+aiUzPFRqcz82NWdBZ0tZOXBKSE9VYjVzbjFECi0ndSM1IXA6NiczO20kZjsjcS9kQiJzTFdKJUtsaiNsbVc0NzBTVXFeSykxOVhdbC9faC9XQ3Q/a2xoNVZIZ15mXwotWWZeXUVfW3QwazFDY2MmZS5iQUxdJnBULTBDL1ZQYC9zPl0mZTlrNmM4KEU/bjNBb0BVVVsqTTRgPUgiLmc4X0QKLVstZ0xYNEY4NUQ7ZXRBR0wtb2JeLlpLS29XQExVVDhzKDIhJmQ2Xj5LcnFEQ2svbV5MPzRbRlxIVW9pRCIjUlMjCi0lWUgxbS88JUtGZ2JGaEorUFx1W0Y5SitsOGNeP2cyW3UjaGFxK11bXVtdMkZFbGQwITxNS0RtcTFUNigpQSEnPAotPDMvL0pbOGNsWThsXVtEIjlvQ0U9KCJDalxCbShHWVVkZFQlLSteLylbLnEmSnNzcm1jIU9NMWNXRVZBTWRcJFQKLTAkP08yanQ3K1onLDM5V1FOVihlOW00TF5AKUAoRUlzRkRmcCRYO14maClzKU5fRC5VSFg4TXEza1dnN1hVQExSCi07VDhgM1dyV0JAIWBxJ3BkbiwzMDQ4OVVWZUg0UWBmKVxqUjNgXTo4QmpUTmZqWClcMSw5QSplPG9IbUEwVENeZQotLGgxIilmS14jU05vOConQjQ+USZvXVE7ZVZFMGBQY0FFbldqJGhEOCJCbEhbMTYlPzRKL0FnLCxsJ0BVZlFdWHAKLUFwTE9zKF5tcSlLbWRAJjAkcGwmTV9KVW5VKnI+QE1NKSMqTCkyc0U9SyU5NE0yNHRZTj1VLlRBWWpJMGE/JiJhCi1eKkdYc1VQNSdqTi9VVGpKLTV0YWo9bFNyTEVJLTZGRFdVJztiOioyWEZwWmo6U2AmUypbN2JJNlhXLz5OLTBbMAotLzt1I18iZmZzQT1FTSpgOipScEJtT2g9RFcubmEoQj4obC9TZV0iXyRIOFoiQ3JyVyw3UjdnYEg5NWQ5TDR1QDoKLSlKNVA3WiVKLy8mT3VNY1o0WlxrL20yLUZOLEw9MktFSEpEZjhjLEhnbSlHLmZROC08QHMxREVkZzAzKURqQm9aCi09OkJzbDVZdVgiWD5IYzhrU3JFO1BdTmopOTwiKl5iIUAuWjkyRmFsMSxfYHNQNnBvNG47Vl8tSjwjcDpGNzRRMgotYnQ1Wlo8MjJnRU4sc3JTcmhZXi0jIWxiWz5sXV1iNjpjTSo/cV4yZDBLJzJsN3NJPWhCaGlPTDhbamdLLy5CXlsKLUdRdUZXXileVGJGRmYiLitbal1EIlNfJHFnbUxBOFZDNEpiJkVGMGFMYz5QS1o4OUxmZW5yUlFuLiJvUFQpbyNOCi0pb0oociRxaT5bTDZYImxPUVwrdEAsKUchJm0ibHNAWmIlTFlWYSVJK1RybStAPUFmczIkUiYkLHBRVFs7RlcmcgotV2QpPj0kSjk8S0JeR1tIaXQpXDtuTTJHQVUiKUtbN2dtSCpVMm9OZVhiSjRdKjhHIyQuI082SVYyNEQ7QUkxT2MKLTYtKHNoJkVYckkuIS9CQGg+Ik9bQXU6US1MJ1ZmJCxGa05kPlJqJSosMGVJUCIsRG4sTmttaUNsOUlKQlVXc2hjCi0+UnQySFUuVldfIVhLX1EySCxDaHJBTU85JnVObElSdDAvJ1whKkosT1VAYj5LXEJcMVI8byNbKShSK2klRWpKUAotUmtXS1InUWFOcDgnXFgiX2wlZz5TZ3A7XShmYT8vTkdzISRubUY4Lz1hTCsjU0NFWEAnR1EwckM1Mm4xQEAqW04KLTtEL1s5LmA4KEQlJ3VMXTNfKWpMKkMzbyM5WWRiXWZdWitGa3JramtGPF9uXjVUKXIuMTc4Sz9oNTcpcyZsKDo6Ci1HWFklIydjMnVJaEdUI0ZebTJlc0toZzYlJFE8RycmQFgmcyddQmFZPCI0TV5XdFZKXnJCaShkLmc/aEczQkEuWgotXyxKWFRbJS9iJ0dUKCpBTjRmPm9TMHMoZ2tSZj84bTApTlo6KyxcJmB0RWY7OyFzSWZMSHNnLlZoNmc8ZEssPFsKLUFIRTcoKT85cEBRQ1E2NTBSRGwkP1g5XiFjQ25HPCpHYk1dWipsajtXY2BbazoyOmVZW10pP2ojWi0qZEg8XnNFCi1hPmtWPTZNKy9ARnBtQyczWDRcaiQ4KmhSMGdNWk05ODNFYGNWYUBiMDBLVUNcOWViO2E9amJALHRrJTwjZXQmaAotTDZNKiRdUm5VO2omO0BLJVkwNzwsR2BoUS9lc2RFb3I/THFYIygoYDlDbkA/SyJjdXQ6Nm8wKDc8NUtIIzwzVHIKLUJAPiREMjhSUjU4YHJXaWNWJm1pcDlwTyZLM1Q7M0VXYChmY2tlSSw9XGJrWFlVZE49KCtNQ19EZiskYlo1MkQyCi1nW2Q2KDgtZn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTMzMyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzMzQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzMjEgMCBSIAotL1Jlc291cmNlcyAxMzM5IDAgUiAKLS9Db250ZW50cyAxMzM4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTMzNyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzM1IDAgb2JqCi08PCAKLS9EIFsgMTMzNCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzMzYgMCBvYmoKLTw8IAotL0QgWyAxMzM0IDAgUiAvWFlaIG51bGwgNTI3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzM3IDAgb2JqCi08PCAKLS9QIDEzMzQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzMxIDAgUiAKLS9OIDEzNDIgMCBSIAotPj4gCi1lbmRvYmoKLTEzMzggMCBvYmoKLTw8IC9MZW5ndGggMjMyNyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGdzLzBOPlJjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhZjY4bl4mJjtNWGVeLD0vLChRUTxYRyJpQ2dcX0o0LVEoZiNnTChrQlxHM2dibl07JCFXXAotRERkSG0mbEVuKFZxTEozOXVeKmAnIjJqP0xeby88QnUmUmMwcilmVDQjKkwkX1hUYUtwcllVVl8pVVpJJTNxN1cKLTMiPyRAKVMpUiNDQThaNk1PSjhtNCFUajQxO1ZyNTVTSDkrNV4nXUBYMzxMNFlNaGJEJG5qMzVSLSlDM0hlS2hWCi1tMyc3VyUqcG9RbUJFZUNvKTYwMEU5UzkuNiQsKUU3TmoyUy06WjpeRVlTXVlQWG1pcTZaUTNnJTFhVCoxb0toZgota1c/Tyg4REgwN1leNzlFTmheOjEyXChbSDwjPFo9SSVbckM6akNcVE5KIiJBM1heTCteQDhkTV9cR1BUITxDKS0KLV1HLCRaNipXJzgsPUt0JEJPaV8hK1UiWztKWmBnWS1jPGJoMS0tUjUwWitYVCFoYE1dZUVGODUwaWEqIj5hZ1tOCi1ncSY7QlgvLzZKPDI4aS0+RDMpL0IyQ3JOWERrWD01bGQnKCI5WjlXMltoTC0qJmwoQiE4dGxOWXAwQV8kMWhoZQotOT4jbGxZZkk9NzhEI2d0Y1FyZlM4VGVsVidNa2pFIUM5R2UvSyRzODFrY05eaHBkcS4zYT9uLiImKipJLy5rV1kKLVlnJV85TCJNOkZaKU5YOEBZQ0koNjUjMC8hTUY9aEw7QzBdLk8zLEdAZCsndFJMWWE6VT1gOW1iVWJYLzJRSHFBCi07QWIvaTcsXi4kTS1NXigiVjJtQDB0XDBvSUBLQ1FXdGQ7c1lTTV9hS0ZBZ3IySkxPNms1Ll1xZUFKNXMsOGV1QwotJV1TYSY1bS8oNkpSJmAkOEBnOFc4VVIidDpNR3UrUVliQUhrQmk0dEY0USRTJjwzSC0/JVxObCpwYHVcWihFX28KLUNdT1BIcTJXOnIyOVtoZTM9VkopNVUvTVAhNlJFLVVQMD0kRC1MSjRpU3BlR08sVVY4SnRoQyIjazImXzkkKWxjCi0rOl5bPzlnP3VdKj08YT5KVltuUiJAM2lTJlJnZD1WQXFMOiorNjVjIi1yLWBHOEo0KCdSLSxAM1NPWjsrUVAsLwotIXBFZVMkWG8rMG4tMjVDXDFTNiwnbWJKQjorRzJfK1VHTTkpMkJmODg9OmViRS5UZydFKkVNY0swKHIxRC9fSz8KLTwvLV9YNlU8V25uMWJiLTZKR1Y5QUxZaTJXQS9FQTc9Z2diMCduOlNPbGZtW2JVSi9tTm4oIVAhOGI8N2w9dGhtCi1PUjQ6YVlnJlRbInFIXzxaW3JFSWc+SUtORkhCJlI1NmsoYz1dJmFRY0c6Sl4rQF0zQSk9bXQzMyQ8biRNQSQlPgotOjJhT2EpJkcvZCo8WEchTSVDOjsuSDlLbmRXPFNZVkVEbC1bQV1VSWdlPFJQNVVRYGNMOmwvcC9rKG5SO0JsYkwKLTx0I1twSTpPNURPT3RzTFIrVzVaOkVVSD5faz4sLXE5cmk0WidQUz0iVkxuRXBHIyo9U0tPXkYoRiNNMDYvZW4oCi0zKEYwZSleSF49Il85QTpRcUo9QyxWSzxUYFdOXFAnYFsoVThzOTdyKVJ0UysoZGxKKkBjM291OF51UHVnTXFVWQotI15QJG0xRmJfXFFtYjJAb3FSLllCRjVgYDhNSjg7XkJRQy86TG9rUS1WTDpZUnJINF9jUWpmVjtXN2s3ZkdhLWcKLUVZXmFxXFovO3FAbCwuVys6Lz5HMTVCUzUxWCZhO1NBYjQkNz9kTSJfam5NQ2pnJkZBQGdyTkZIMWJxcltWc0csCi1xRl1yI2s/OU11bSY4OlUudGAoYE50LCUpX0l1YWRhXXBjSDdnUylpQjIyRiJxMm0+WCUtYkE6QydlQGQncXAycAotNkk/RW5SXCUwJkhaPyY1YD1UV3RQbHUyZjViSnBpTGQycHVFZGVKXi1EIV1CNXUqJT42WC9nSXIxWD5OTSNkWyUKLU1UYTldTD5eKk0nSjM/Ujg8TkE1S1hoJUpBUEolOCdpNisrUGhdLSInOUE3RyRTZSMiYHJVdVQjMT02Szg5OmxUCi0qVkBFIlhNSHBDPW5uJ0RQV0xrJGdfdGZzUTxPYD4zZlBqUFQjVExHOFAhNUouS0k8bShcVi0hOm9VVEREJTM1MwotXF5GTy07LThAM1g7IiNNQltlJENAaCJXLDNPSEA+QklFXDNIKkFQUUxMUSFpam9RRypBN3VxdCg+XU4/TV5TY3UKLVE9UmtqX0FTQ1lFZj5SWyNnbzxoayI0Y1k0KWIzSCchcW9gIi9vZE9eam0tOE9BSEtuOHFBQTU7IWxTPT5oJSpaCi1GJDlkPl9abks5KThlY08xI11qQ2M0ZmQ/PS9mPnE5Im9tNGVxK20/X21ONipibT5STT5kUGU8aC0pVT8sOU4kIgotQDowSVJQNXJmRytTciVmTyFZZU1fMz9oXjhFQz0jRU9FXUIvRWlXZDNGSUQnOE87Yk1uNyNETyNVVC1OOUYjPkUKLT86QC5PLE82LUxedVhcMyFjKT8sPnM+UmFvWGZgTD9daEdmaiQ2J0I0V1spakcrLl0pQ2hYb2xkaTM+YVk6KT9CCi1pMXE5RDpmKUEwREkuPyxnKFQ2TD5CIkIiKUtfO2VqT2JlYiRDWnFsPy1QK1hMOiNIMl9nOVxQOTFLbmNcZTAjQQotOiFmbkJSVUAjKylGLU9+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzMzkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzQwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzIxIDAgUiAKLS9SZXNvdXJjZXMgMTM0NCAwIFIgCi0vQ29udGVudHMgMTM0MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEzNDIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTM0MSAwIG9iagotPDwgCi0vRCBbIDEzNDAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzQyIDAgb2JqCi08PCAKLS9QIDEzNDAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzM3IDAgUiAKLS9OIDEzNTYgMCBSIAotPj4gCi1lbmRvYmoKLTEzNDMgMCBvYmoKLTw8IC9MZW5ndGggMjQ1MCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGhpLixgS2RjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJgSzFONCtHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxJVBwCi0lOl4+X1xaY3VOT1suaiJSVXFySDtNZGk6WXRkO1c0QmlMNyJYQi5rVF4kUFYpR1M0dGpgaiUyJ1Q+TmBLLjM3OwotaVVOPTFgXFQwTFp1ZTZfI1whbWVeWWFWV1FWKXEyOXAxcyJUZFlkMEtYa05xRWpVUztaQmpZdWlHYDBDNiMhKmUKLStHQ3U7QyhwZFExVmlOQ0s4QWdjJVk0VyJfTWxDNSMvWiQqNWoxJDVUYFY8ZCVBTzNXMkVPW3BCSz0hVThsaFFPCi1EXSU/J2AnWHIsMTk0bXJuZG42MEJcRzsoJlpla2Q0LzduaW4lQjVWYm9YTlk+TUIiaUJtPGdxNEBsZFcoZFohVAotJVtobU5LIU1NbURsYDt1S3UhYVMsPWdcbWF1ZyhXQl0oY1dYQUolP05Yci45Ji5eIjFsND1DLCNqaUNkMDllNFEKLV1qbWZDX2FTJkQ2OGpoYCtPVmtlQEMrXD5OZXBzWi5aRURkZ0NQWk5UW29qUDpaLy9kLTpzay0ndXJUP0ZOZ0RPCi1NdTluQE87IUcqLk51JDApQyk7WWFUcElNVTErZkhjYSd1NU4uVzdfJ0ZeM1tgQkdkXDxOOCs2blMjbVk+MVVKZwotMG9MVFI1V3VHMyxlYichPSkrViRnZ0wyL1g5OFErNVZXTFtiM0hYQ1FZYVVMJiUwN19paTE5M1VfcG4nWVxHLzUKLSFIXHRZVVdbK1VrUiQ5az47cVFUXnJlXTllPTwtViUyR3M7OEU4KlZOXE51LjlKU1BkSzQqT3RhaWB0SCZROkUkCi1EY1docGVkKUszV2cvI00uTnRhL0E+P3RYTygibWxXKC84WUEhazdyJTNwRGViZ2tzVjhPaFFGUmFsZWdIRGpYUQotJHMvVEBYbTIxK14rbnRUMy1SQiJScVAqYU07dFB1MyxWIl5sbkZFXHJsVVxgKDcpWmdLcHInRS9kbTRWYTsiI2cKLUFzT2hTSyskPyNdcV9PWiozZTBkVkJWJzNBdTFTZWVHcW1NXXFdXjBcQVRXKUlQb29qJ21HOD8mL20hTzYyNU86Ci1AY0MzdD9sT2pBPCRXLmJVTiJJIk5nLDVLMTYkcTBfaDgxJTxHN1ppJCE8XUZcbGxwL1FhQU9vLy5hWTpDXyRhVAotbU4/Nl1DSSwuOU5zOEFxKiNPJVshbkd1NWMybi5MRmdzZGBvKjNuSzYxO1cxUy9DSToqQmA9Sk9eZjpbJi4nMi4KLWpHcTY0I11oXHFYbCJtXDVgVWUiQFcmOUgobklJI2BKby1uO1FXWmAtMitcU18zJVQjQm5eYzRHTj4yIVlyRisnCi0sYUYsRWlfW05CTj1QNSImPysuX2NBTzFWImo3PU5RR1RUKmJgZlViWCkyYSshKiY2T2ZrQ1prYXJcRSEqPTpRVQotPCd1YmRRREFWRXMyJUFPNnVHUj9XNUIkZVMiXydEbUgkTnNLKytIQ1Jyc1snSSlSSTJaQmwqXT9PIl1YKWswQWcKLScmbWpiMmVlc0MjOWAoRTtFL1NlIkJkJVZlaWBJKS5dM2B1TCZaYWRBZHVSQTV1Xl1Qb1ZfRjFAWmJtWDpQcFNzCi1MNnVgIVRZYksuNitmLjJbIShTOWFiKkgvJ3BaU3IpQShxWiU7TWBFaDU5RVA6UmVcODZmPE4wX19CTUtpNWQkcAotYUcjbGEyIklDYWRPXSpxOyhFXTRWTyErVEBMX1RTRWU8T2I2YyFLRiMmPU5oU0grYnBfXl5SLCUxVkJzNzE+OE8KLTEuLEIhY29kJ2kmZjx1ZjgzUzJmTk5yW2o7JStCXi5xYitzU21dUFknOGdtX2FrXShXW1ZbUXFiSCM5OVtAYF1xCi1CWzJdTDdSPjlCQUo3bTU0IiMmJyVMWiRVLHA2cTElYXNIW2xcLSsrVjlXW2JfWW1jWnI8c24uWFwiL0BNJTBSMQotNCNPbTpmOTtAV0EkKUlML1YocV1fXyFkNDlwbiFHUGI+RCIjWkQ1TDgxMCh1Vj9uQUJmMCwlWE9ZMkMjOyZhIkAKLSVIMyNqIWU8XDBrQi1fcE1wT0kqO0xFZWpRczoqOU0vcSlxRSFSOWk9IWpvaFImP3J0ZlclYkckSXE+PVIsSC5sCi0+TVVtMGRkV18yQCZPaS1KNDNYYWVzVjsuNmpRa107W1VAZjA4L1dhXFozJXJXc1FxTjxRMWs7X282Jl0ubUIpdAotYE5gUURda0ZWQldqWG1GIWg/PE5SXV5PV1ROP1syQVpUL21WTnE6bztVQHRUIi1pRkcvJ0paKnEvb01NJUMmUkcKLWZqVXRGaCpwTENuIlg5Yk5nOSo5QG1gQGxVZkAmTmRXNE1DPShObTZhaV9ebkNEZmhzRl1jPDhnPW9dL1Q2O2dKCi1aREZxVDA5YWNIKW0iKGRbbUFaYyFpaG9lWDdjIl1BQ2ZpWDJLbyJbJ0NuLnE8NSgnXEJbVFkrOjFgVF5sQm5VVgotVGk9KCJFUWs4QFAuIjNpO1E7PWEiXnUpQ3AuL1VjOmo1QCVOMyhHZSpfUCtzPyhpaDpTcmlkZTY0ZCQpInBMOWQKLVp1cVA7ZzpMZ0EybDNRNSgkNXRbLSwiOUJWJENOcjp1PzI8SlFxT1NfY0dARVEucE8rX0ZCaGU1TEFMQEpJUjA/Ci0tYmBuUiEraEYyO2tqUD4kTmliX2lJWTAmKz5WNmFMX0N0QVoxNlU5M1dXayMhZWgnSF81Zi1qKENHTDVRSzhycAotYltiNU9OVWljQi9tZVg2QzNwQUQ/bjVDZTVOUUUzRjFBNDkncTdcbV8jUlBJLnEuUGAoLExiNlYhTV1QWVNLclUKLXBnUEpiQSdbRTgvcikuLVRuP2xdIjozdEcjO1VVK2k4IUhrcG9xWFxLUCZcVVw4T2JwQCVZKSJUYHBpX15ZKWVCCi09TTZIa34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTM0NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzNDUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzMjEgMCBSIAotL1Jlc291cmNlcyAxMzU4IDAgUiAKLS9Db250ZW50cyAxMzU3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTM1NiAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzQ2IDAgb2JqCi08PCAKLS9EIFsgMTM0NSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNDcgMCBvYmoKLTw8IAotL0QgWyAxMzQ1IDAgUiAvWFlaIG51bGwgNzYwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzQ4IDAgb2JqCi08PCAKLS9EIFsgMTM0NSAwIFIgL1hZWiBudWxsIDcyOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM0OSAwIG9iagotPDwgCi0vRCBbIDEzNDUgMCBSIC9YWVogbnVsbCA2OTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNTAgMCBvYmoKLTw8IAotL0QgWyAxMzQ1IDAgUiAvWFlaIG51bGwgNjY0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzUxIDAgb2JqCi08PCAKLS9EIFsgMTM0NSAwIFIgL1hZWiBudWxsIDYwMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM1MiAwIG9iagotPDwgCi0vRCBbIDEzNDUgMCBSIC9YWVogbnVsbCA1NzAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNTMgMCBvYmoKLTw8IAotL0QgWyAxMzQ1IDAgUiAvWFlaIG51bGwgNzg0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzU0IDAgb2JqCi08PCAKLS9EIFsgMTM0NSAwIFIgL1hZWiBudWxsIDYyNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM1NSAwIG9iagotPDwgCi0vRCBbIDEzNDUgMCBSIC9YWVogbnVsbCA0NDMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNTYgMCBvYmoKLTw8IAotL1AgMTM0NSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEzNDIgMCBSIAotL04gMTM2MyAwIFIgCi0+PiAKLWVuZG9iagotMTM1NyAwIG9iagotPDwgL0xlbmd0aCAyNjIwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZ3NYPD5vKGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVvZ0VDMT5aakRUKWBedT0/bkNmbHMjMixiIlNMajpnQj47IWg7T080Kik1UmVZQGlvO09jSmlrb0wKLUQiYWFBQmhoKSFKclhRMkNQPkEsKDVnJ2pWK0MqTUdcJlpPOW5FazNcQWlYLSlpZiwoKnRGaEpMcig7dE9nKnVyCi0yQixRaVFVLS8zQDpibENgPEM8S1FPSid1KUxEXEszLlUzVE5XVV1gMFRINyknYEJuZz1QUFpqQGpwSiJaKG9NPwotMmhWOkNoRGwkUiE2QCFXNXRHSCkiVj4pKjJGOWRDb1ovUFhQLmhKOml0MGBRJVVqPEIpNTBEX2RmVF5UVzgnMHEKLWoucGNOTmU4bFMlZ0YyNTpfajNZa2JvZFJpRy8wIVU8RUdmTEJgUTVpWTJmOWE/VkhnV2wtX0phJXRJZDNYZDcjCi1mLDRcbSlbXFU6Nl9qU1VLRUMoRCkkV25HPCY5UTBUXVw8PjlwPmlAImYkVWIxWCEmXWpLJmZOUiwwVm5vJ0FGSwotYCQ1XikjbkVebThJWio3K09XLzswcGtpVkw+YkNNLGZzRy1XImdYV1xFNVY8VGBqIiteZ2lUVDc+KGFbaGNNUz4KLVxFXVpkRFFCcixWL2EiMTMpVDJHaEUqLHEuXm8zK1ltW049S0dKP3JUMHEhLm0wODlwLGFhMWw5LkhIaTQ+JiRtCi1WbkI9OUBqbm1maWssZy8sQlNRKTsiSU49NCJzRk41VS9kIXI3OjlBXzI/PTJUcyJlS0xQSDhJRS9rLj1KaGk9bwotOktVRk1oOCcpZzNzZCs4XD0zaUEhKXRRUzJzKCVGIyFvYigpaHI4NFZPSEBDVF1KKkAyY05kWTktW3BiJi5bM08KLWxSbjNaVXBSXCtuby5rX1dmTkdoR003VlhCRz1aKzxPW0c7a1s3VlZqRVc2SFRJLUc8aFAmSztZZUheQCIxQmcyCi1pdXE3XTQjJ2pPLnVuNTBZZmkmOmNMWCxbQT01NFBSbzsqNztYJzNlTmI9bTBdMUNWRWBLWHQ8K2JVYG1vIkprKwotSUc/VTcnOTxtQ0IpKEpuVVQkM0doNUJaWlFDakIkKHQ5PF9saVUicSdQdUYrO29pZyNtalJWWWdPPnAuQkhdV3IKLUJoL20pPkwyRWNgcTtdWGVubz1ZRTBmIkNgLGg/THJcRiVbKDdFQTIpaWdpQUJSI2drLV0qMEtfbVhdJDJWbU5cCi05NEhbIl43dU9yUTEnUnJcaHJuXmM9JzpWRnIjO0VCPixTaVRsRzosO2tuJUondExlNVtnRlp0JGZFbEhCKl1ENAotQFFJNGo6ZHRuRl1jXSQzcUBqalsmUzNLQl9RUytRRnIvb2RFbUQlS1hxaDtaTHVFTTFLUGAzQ2k1Y2tUVyskM20KLUZidGU2L0VeLWlXZC47cmYwJjYvYXBdZE1BV05oJ147VVRQUy0rLk1ZYWRiK2Yqb3VvVSUzbi9GXmNxJTY1XCtdCi1wLmU1MyJwW1ZcV0NTUVo/ay1Wc11fOkw8Ul9yV05DMVZcKEFpLzEsNm5XPGchUyJSMD41JyVnPEdubkddOSU4YAotYmBrMjolWi8lXDMjQCwoP1w9LEhtVydMPlwhI2ldVWcvMmpEN1IoWzQ7aEUpPGZGMkUxcUk8cnAqI3BbRiJ0Vy8KLTQjaWBKPyloNFQlR2dddEs7ZTZrQ2skXCpgXi4nbyRPWXJXPWNrR1UwLEVgRyRYVFdATCwkNWg5MVdzZVQqY0hgCi1UcD41YFI3U0ZWQmUqYyI5SDFyUU4/RFt0Y3AqRXUjYz9oPS80KSxKP2s7bi8vZytVM2FPMDMsK1FUaTJSN0olMAotVSV0LXI5VjhNIm45KEQ/ZzBddFVpXDJUSiNULCFlLERGJlUoWUQ/JDlSQVEhOU0/aiRxJkJhJzN0WzBUXGtFZyoKLUJlUSI7bSJdWCsrMUBzbFFgKDdIIlw/Y1xeRVZHSVBmUnRXN3FvXWFZZzRCOEJuaTxwaj5URTQqWERrbC4kK1RVCi07ajE3bENLIz4kOicmVD5gPEBPUCc4Z2k4SltkRDNfWEJWS1M9PmhIPE5EQ3BgN0cqRFVTLWEhTjNUOj82WD02OQotV0RNR0hMQEYsU1I6bz4mVGVJZkJvZzQuYm44MlZFZT8uOzU2a21LVDhJNyFhViokYkFscEk8LUpeZ1A/NmNYQksKLWcsckdORjQkbVk4SmtbLCJccmk1NVdfZmBAOSFDdSFkTjNAMmMuKWlwN20lP0FEamlnSyowdHFUdUNBM2VgTHVyCi1lUy5YbiY6JGVzImE7YyNlT09EYiU2ZGBoXmQiOlIvPXBFRllqLyRhW01NLVsuWjUrQ1RXMG5RNVhBdFRQbichVAotRnJULFBnZy4jYlNUXWhvOytWLG4mI29gRk05YydjYi4uWiokWGtrYiguTzh1SyFmVUVbM2xDc0BfcnBTJSx0ai4KLUZwXGxFKGcyLyxBdCw6SjYnJSVhXjExQSVRWCg6ay49MFcrUm4zXmNBUCVmZ2xrRVFmWjU6czFGTFg0bD4yRF8rCi1JQkhnNUYrRkhSKzsyKDtRJCVEQUZuWW8yRiJoM1chTTtOTio3OTtgREZSX2daM0pMM09jWFRITXMmS24sNmFrXAotJjlFKClfNWVhYStPSCRWMU1NbkVaIk0tKSw5ZDBqMGZUM0o0b3FrbmcmaSM6I1ZoYHBhdUxoIShsWVlZZyY9bWkKLSE3Y19gS14iZzpRbkFTbmAyMk8xTyxKaD5BMlpeJiowQmMxUldEViljQGU9OkFqIjNGRiFiUVlSSCtvbSFpKUIvCi1OZGlaQiRUMlBAJF9tOFpDPFgzVjdWR0xGVWlERGkyRTk7NmosR2ZgXzchZHNxI19kTmN0RWxuanUxPWJQYCQtWgotbiE7NVw/LTosPjtybkhnWEtvUjVlNjVAJkJyJWYjb0gnJUJrdVYyKjIhOl1ZKDw+KDtsSGE6K0JzVnRiKzlsNisKLVc5YXMzO1lIXTtjNUs3LEMoNmBAW1txRWRlKkolcWdwYDo1SksrbXRCLV8hYlFdVDptMSdcOjY8R0czcDc9aURVCi1lZXE3P2xTQmNyRlFWMDNnVE9vTV1tSURKOj1kZF4sQjdDXEE9bEokJElSV3JMQClsJiRvUGJEaWQ+Nm5sZUwtYgotXCl0TFVJIi4xPTtCLy9CcEJmbkI+Z2RZTjVJPllfLkdPZEBRXmM+PzVYNX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTM1OCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzU5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzIxIDAgUiAKLS9SZXNvdXJjZXMgMTM2NSAwIFIgCi0vQ29udGVudHMgMTM2NCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEzNjMgMCBSIF0gCi0+PiAKLWVuZG9iagotMTM2MCAwIG9iagotPDwgCi0vRCBbIDEzNTkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzYxIDAgb2JqCi08PCAKLS9EIFsgMTM1OSAwIFIgL1hZWiBudWxsIDgwMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM2MiAwIG9iagotPDwgCi0vRCBbIDEzNTkgMCBSIC9YWVogbnVsbCA2NDggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNjMgMCBvYmoKLTw8IAotL1AgMTM1OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEzNTYgMCBSIAotL04gMTM3MyAwIFIgCi0+PiAKLWVuZG9iagotMTM2NCAwIG9iagotPDwgL0xlbmd0aCAyMzY1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgZ3NsbGFcaGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakUjQDpLMU40K0dvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjElUHAKLSU6Xj5fXFpjdU5PWy5qIlJVcXJIO01kaTpVJmg0MkJjWDRFLmpkcixEITYuKCksNnRBSl4zRmdpbVhTVShkb2E8Ci0oYE5qO19lTj1QND43UVsjJGFgaWU+UiU5TF5fO3BAQmVUTU4/YERmJjNCNyZbZEplTlIqYmtkJjZoYWYlSC48LAotX04pYi1rY0AhOS5uXjIuVU1DNT0zcy1zNTJpUFFRaEQjSSwuKW46b0BoP2REJWNcdFtfXmhMRGZXNlNyUk48NkoKLUpWXDknMEMqKFwnRjgrSVwuZ3VDLFUsJSgwV1p1RiVZTEwnZjtPPDE5YlA6WSE2WV8wNmNlSUo1Vk8mQzJpXjctCi1qdDZmXEUnV2xKXzI/PTJUcyNYY0xQSDhJRS9rLj1fRDcrWk8pZXRzJUkrb0czdCgnY19FJi8vWWheT11AXiYqNAotMGhjcDU4JFBrcmtxbCt1SEhgbVFfNzQrSVdiSkRgMycvVjw9Ij1ialRdSWxNbjRVJkFOP1tAPylbcmIhZmJvYj4KLXI3OSo0Q1pMI1Q2NGdycTZPZjlJbG5GRU9XNixvTk5NPVJuLDBxS29hWXB0Z2dealwrV248QDkkS0FdMCQ6PzVjCi1UMTM8MTc1ZT9DSSxhM0RfJCcmJTpERG1ia1FNWSgiP0ZoY204XC02b00kMm47QG5yOzhgMlA1W005OGU8QTtZMAotKEtFSWs8IiZLMStxP240SGtbIXI0N2FzMjxPaDFfWCpDZCNFQDlEQ0VKdEBZMjQtIlJKbDdlU2MyaGYpOlRsWVAKLUNKLks1cHNNMUBuUCEjNmRKLW5gSzAxXltEYmZHUUBdPjM/RG5zQ0w4UGkpa2Y+UCdjTStQUW9ROjciVTZcPl8kCi0tIjBQT1FXS2woRDJIbXBiWThkPzpxVmpbX10lQWRFVUhtVmI7PGRVREk2Kl1SP2luaUIhaHRfSi1vZWpVYXAqWgotPGVSOjtSUHA6YWwhWyN0M1klcEhoLEQtTlxFIjMncC5PczRERjhbJ1xFKUQ5OThlTTkoQTR1cWZnXHRgRVAocmUKLV5vdV1kRUk7Q2RSKT9rajMkMSl1Ilo0TV9SSVU+cVJBWGQ0cXNzbSgwZGZQVG1bWXV0ZVJjZlJTTiZWJk90N0lUCi05MXBgRyMoYFEoRD9MInBsXWRFZyw3TVNOai9DXU1fWiInVW1wVkR1KUFwczBPcUpgdCtkKjxFIUtdKiM4JFJAaAotP3MmR0lhdXI4XyNtRFlAa2xLI0w8IT5cPnJ1YF40O0FxTU4jM1FRUCIjK1A0aDVEV0s3cl1jRVBcXmRwQEtCMS0KLV1KaStOKUI+RHQnZ1EzcSI9KGVyIW85ZHRMSHBBJio/YURcZDxIYz1XPkg9OmUzYVN1LXFTQ2oncVJFY2JhSlJjCi1GK1FnMDUqbiVzN1xKTkMiaTAxOSslImEjTzdKJ1hqTHVRWGs/OGAqR11kTW0nWzRDXFpOP1w2LCIqaCMmc19aWAotJEB0ZUZOJWRAKjdZb1FyXyN1U3JPX1FbMy4hSDFGb0tZYjUlM3JmJFpQIUFFOjVOQUEtQ0VyYCQ9XHIrSm1iPCYKLVJAKC9eTlstTkBPYTVzZ0tkPy0nODFmSFpoMzVsKSUxKiYnLTdlU143RTpma1VaO2c0IU85NDRgc0UxYmlUb2lkCi0wYikhUiNxJSQjMEohW1ltUyQldTJeX2NKZi9VckFXQF1mMz8vUF9pL2cvaG41JC0kZWhiWXRTTzFHI2UhOUInbgotV0o2KD1Ga0FOUG5ATCZwcitzOmxydTVKIXB0PDszTixfTio2TU1XWVRWNyZKamolME0maUJwTCdXc01xX0hCM10KLWRcWiFKIytyXTopLCRBJikuQ0AhT1JpWXViVmpKXE9PPjIpJFIkYjYkMzdQRGdVTFReMkZiY1A/NC5CLjhxaDpgCi0xcydLLC1BZWdaST1eJC1LITg8JzhqclRHImsmIkYuKFw/MyEsbWZtZW1DTEByPk9sRj0/KVImW25zJGYvN1luOAotVSUjNFxgW0xeJkBwS2ohJUAwPnVSPVMjLD5wI2pyM2cnUSVEYnQhIkxTW1BVUTorcCg5RUBSWDxxT1tKOFU+bWgKLUJCOzEwb15cVlVxTGwxZkZPVzt0Nmw8XWY0WjxjJjVeXEM8KWhnLktXcmExUjBNZV1lNSk3WWQkOjEuLWsoTkxACi1GJVwuLGInLGFvaC5uSWYlUyoyR24yPycrcGNtXCVEaDQ5NUJdaEE6KyI/PmkkVSknVSYtNlNMQFBTRDYzUEddagotYmhFNDokIzlxMWFMRSQ9ay5qVyhEcEBzWyMtJEM4KyJPNzEhSDlrIixxZGFcQ1UtRUloNlhNVUkrcXNPUVllPWYKLVc0Iz8sKTtLUkdJJyQ4aUtAYVNqZ1VpOkltQi0sbDJ1Jjs5Wkw7bjw8VChGPl5BP1JMZk8+c0xiQz91SnEtSz5qCi0lMSU2aV1HSjBmT1NkPSxZMkQyQj1DX1dsOT5jIypgWnIyVkNANUI1VVA+c2kuKWppQW9PPzBfMl9nJTcuOkNhSAotaiVNXlQwVTw2ZVIwO0RQaXFbaHJpJiQnZXIvWUIpOkgmZlUjSnUjTyE1OF5yR09DPTRiL0dwaEFQN04kRUAmZk8KLSxVWTlRKjUtM0k2KyJPNE4iQlRrYyc7KHIzNWhoR2YxaG9aMl9sZD5hUy5bOFQiTEZYRjRPLExcKGBqcm8tS3A1Ci0oM1JzNmkhLz1hYTo7U2gwTyEuPjcyXUFVViIzcVIvZEs5YyY9aEBLRT5lO3EjNWVbZSYtfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xMzY1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzNjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzMjEgMCBSIAotL1Jlc291cmNlcyAxMzc1IDAgUiAKLS9Db250ZW50cyAxMzc0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTM3MyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzY3IDAgb2JqCi08PCAKLS9EIFsgMTM2NiAwIFIgL1hZWiBudWxsIDM4NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM2OCAwIG9iagotPDwgCi0vRCBbIDEzNjYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzY5IDAgb2JqCi08PCAKLS9EIFsgMTM2NiAwIFIgL1hZWiBudWxsIDQyOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM3MCAwIG9iagotPDwgCi0vRCBbIDEzNjYgMCBSIC9YWVogbnVsbCA3MDUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzNzEgMCBvYmoKLTw8IAotL0QgWyAxMzY2IDAgUiAvWFlaIG51bGwgNDY4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzcyIDAgb2JqCi08PCAKLS9EIFsgMTM2NiAwIFIgL1hZWiBudWxsIDM5OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM3MyAwIG9iagotPDwgCi0vUCAxMzY2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTM2MyAwIFIgCi0vTiAxMzc4IDAgUiAKLT4+IAotZW5kb2JqCi0xMzc0IDAgb2JqCi08PCAvTGVuZ3RoIDI3OTMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmBndC8wTj5SY3RhTzIkVicubmU4ajskLm8yMTtQQmpfTi9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRG0yaU9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VXJ01JQwotYFxzO3I/bzRjKkpcYWk1YjtJLzUmclQxSCIoP203Vz8pYGYlSGBqb2RYMy9vPF9TN25UcTpGV2lfdU8qKGRvYTkKLTImbyhUX2VzUkA9dGdhJDM3QlFxREpfQSgqJy9MUSdrJCk6TCo9Py8xNSQyOSFzK0RuMV4jUzNZTXV1RVYuMShpCi0idC1HKydgajk4b0RvLFRfXTBMMCI6LmlPIVh1dGtmSlgzIV09Sk9eX2xQbVswUz1DSDBybEd0YDwkT1JXJ0VCUQotaTtnbitOMWpvXy9yRzZZPzVCYCskN3Jyb001MERrXSNxbXQhbEpzb19RQ1JKVVQ/SFkiMGZYIyVePmtkLDA5LE4KLWVAUjJLVykrczNDJFx0PSR1cG4tKTkvdVdrOHFZJSJFSDh1RFBWRzxOV1VdYDBUSEhFXixjXSpHajcpaidMWGVcCi1gcmhecDA5KFYqNWpmLDdVYT9XXl9edFUoYS5qbyw0LCktJ044WmxJQytTcDhjO0hQPSxIN1c7MTYuIWNqTU9YPgotIjtoXDNrVlo2VF1QPF5eTUJdbShATixLcz5NPi5QK2Q4SEUiVm1TRD5LYT5NX2E/cnEhOG9hRDBfMlpoYSlOJ3MKLS5aRURkZytwNzUhOVE9SFVLQmM/TjU1TTtEUidBU2pbKWQhakJFRz8wYSdvSCUhQXEuRk9yO1hoRDgtWy5oRVtsCi1DODldKCMxP2VON3BMIXJiQilKdT8vJzNcRW5haztZZFwsQTpYP29mV106TTUkbWJzYC1uJlExLkJOI04oR2BoNAotVXFfVGxCWy9bSzI9PWtZMkpaZCNxZDc0UTdvIylpXi5oQTBQWWdSJyVcb2wkPyI8WSM+MDFCLWM+PWg4R1xVZicKLTknUlA/YD00a2lkaSU2WktQMzhLMTUzV1BsP0cvVmw6OkVJImB1ZkMtMlw7W19nSnNQTmheLG5EODtUYFRyREcoCi1AaGprL0x0SE4mOURhYlhLTGhAZk5MLzA+VE4lQkM9bHQtM2tWR2IsRlx0Ny5bbGlaNGprNydPZi8uQ3U/NUonYwotX3QkMGM4dSZAPClUbnMtMi5FPEEjIW8jIShkOnJZZjVWNXJvZGxoSjZYaiw5JVc5TlpkTDo8V2srN1RccylzLkwKLS4kTWw1IyNkQ0U9US9zNydrZittUC8jRjtuUCJBc0hQaWgjKyY2PUByckVWOU5CX0FQSzgnbEc6YS46dGkzYGx1Ci1RSWxibkVWcDs0UjtTWmMmc1loMjREW1JBOSwxaXBoU0toTEAzZSI9LGMma1A4WjY+NFhxP1U7IThKSU0iN0pQZQotYEJRUFBmUUEhNm8zOlAhK2RlcWpKSElzPy5nZzpKKkh0dFhkZGJpcjBdXExPVT81ZWxQP1RyPGJTciY2cmRCQ1kKLV8oNW04KF11SSJuXm1zNT0oWD4lMC1oWVk6OmBQRmQjQUBLOmQ+ZzdhQ1xyKTpwKFBuREFZYEVdMHViSmtIPlUzCi1HPWMhMDBQJ3IyIWdRQz49QiQ9cGtJa0puPE06KyJZVVBIbD07NCZfNWVXWDoudHNnRmBOQ1NoJEohaFw4b11cPgotJ0JRZ1RPaC1yQWtjJHMmb2MwO0FFcGpFJlcldDdjJSRdW3IjN11YX0hcVS1nX0hiUHM5aTwvYU9RZFN0NXRGIT8KLTViVVVrakQjVyRHW3E3LFI3ZjgmSj5BXEovIVY5PEE9dUxia3VzNjhSWk5JYlNdRlM2P3ByJ0VOV18sWG9aNVcuCi04VTYvNDIpTkJBakFccEtwJ1BfMHBJVFM0KD1wWiZKS1RPUChpZzc0UVZvTSpsX2xiRkU6Lm1RT0NccTFqcTBQKgotXj5APUshKzhPU0ZNXUZ0Nl1yLjZLOENuLzYyL1puUEVDVDslJTskZixILWg9TXVUNiQ8S21cN1U1VlpLWXM7LFIKLVRySVAiVjFMXmU7U2FMaTIoQVM8IXQ1ZlxMZUtpSG9jQVg3QkohJWhcbjdMcGdgIih0K19AZl5UOVM4PSUiWk0qCi0jLVNGVFE8Jl9JJSFkZzghMy9IaTBRJT9IJjElZ0QhQzgsKWQoVy1JLzg8TikrISRUVSRAcjIoQDNGP2IiKjk1JgotQl43V0cuImkzY151WiYwTz9IbDhmSXNWUk87c2ZyQlRKaFFcXV49MEApSk9vLWBvS203Wi5XIVEoVFoyTTs7QVoKLWxSLTdLaDNVTV5GPlNUUj0oTkRrUTRMImZmdEZfTld1aDxxL01TdUwiJk5gS2M/Vjo+TFojPGllI2o4Ky5uTSxcCi1VYSU1bzZNPV4mL3VrXihuZSEmZSVMXWQrLEY4OSYuZWVsQk5nWCtYK2IlW2srTmJSUnBpKlI4ZklLdWExMUk5bgotR0hHVF9gPjpRbzxTXENCXks5ayY/MzVtYV9oN1pEWUEnQippKjZgQjBvJ1BiZklCUTNZLSFYPSdGbnVfWXJKM2gKLSFiMmxqSzRYLFhAJ0VJbj9yLzlWaTZXL14kZyohWks7a3U7ImREYVghQTVzISFEQWZWRUNvZ01nRyZkT0VBJCVPCi08Q0tnOWxmSkhyL1I/YjIpVE4jNXBkXEE5Nk5MTjpnYDs+UnJbVkJUJ2s4QGhJQl9pLllaTEVLP2BdMW5ZcyY5JAotLmYmSmlDa1tKKThiTkZgaVZRNEFHRSxHNCgoQThqSyEpMSdRU0AwIV9xOC86VEVUbic7JSlWVlR1cFJlb2A+TTkKLTBPa1EqWThBVWQhTHNlXjFnUCxuR2NCMVRwJCglViMhKV9xIkk4I0JCNkA9T2kxZ3NqbjNAWT1XKFtNUC4nMENiCi0rUVQ+R2gvL0lQPnAhVkpbbnVjITpSIi5iOV9TVjxPXTtLWjNlPCc9PVVeYWM+Q0xKM29ZWS9hVWZSLlhXV2I4SgotZEEtckNWZCVMaiQwRTByXz85MC0tTC8kV2c5SFowZUA/RWBVIiEuJnI7QGRiMTc5XSQrYjA5ZDVpVF5gWVprX1cKLVtPdUNuRC86QXVsQ0c9cDJWaGVHUDQlaCMxJVJGOG8maDUvP0kibG5HWC86WCNcW3UsVGhOUnQiOXNETyY5Q0IwCi02KlllQU8tZ2w9Iik4NyMzP0Q8I009V0c1RUlsMWtdYSJlW1BTJFlhRDg6IycwN19xaUYoLWBGXFkwNzstT2VjXQotREk+ZVcpT0NLNHBvJUstTCEyUXQ5WTNkPCk7VjxyYlknb1FZQ09VTiFYIUplcTVHRD5JOyRRQWhQdEY8az1XNUcKLWVST2lNRjRyV00zPGpvOXAmWWApZksuJkg0VTA2OW84X0IwXEs+XG5MPFNOS1gwYC08YSRmPmJmPi4wNi9eaDlqCi08OktpJmBXSGo/aD4xIWArPFV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzNzUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTM3NiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTMyMSAwIFIgCi0vUmVzb3VyY2VzIDEzODAgMCBSIAotL0NvbnRlbnRzIDEzNzkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxMzc4IDAgUiBdIAotPj4gCi1lbmRvYmoKLTEzNzcgMCBvYmoKLTw8IAotL0QgWyAxMzc2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM3OCAwIG9iagotPDwgCi0vUCAxMzc2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTM3MyAwIFIgCi0vTiAxMzg0IDAgUiAKLT4+IAotZW5kb2JqCi0xMzc5IDAgb2JqCi08PCAvTGVuZ3RoIDIyNTcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmBndENgcSw9Y3RhTzIkVicubmU4ajskLm8yMTtQQmpfTi9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRG0yaU9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VXJ01JQwotYFxzO3I/bzRjKkpcYWk1YjtJLzUmclQxZlM3ODo9OzJbQiQlXTcscUBeSTc7KGVlUEokKG41ODBVa2I2NC5WRmgKLTo1JFBvJj11X05GKGxSJldJM0BuXDZxNSNibVMhNFxZLipfJVYlY0AxKEVVbmBcbjVNUmcoZVttO2M4LU4kQiI3Ci1gQEIhWV1KaDRVI2pDZlohPENkU0tzJSo4MTYlPTNbLWcjbCIyT0ZXQGMxaTkjKHBdY2wmO0FXPlQiW0VdRE9ZbQotK2MoKE8uJixxKCxwaE1icSZeZyhwZ0V0JyNXY1ElXk4kbnIpN2tzQSVRKCJsVVx0b2kvdVtWXyI7OTFhKSoxTmMKLTVXayVkWDBFXjlfKkhqPS10PWE4NCxsI0ZfXyRRdCdTcT9xLmpDRy4jL1A3aHFsMzxhOl9NITdVV1MzT2krZ18sCi1dZGZQRmtEWSRlZmNTNS9UW09MKyFvZSRkLVVTMHQzJ1pGSTxcVmlUKVgmJ1xAQU84VDBgZjRVV1dmXDE/bDIqVwotWEpIaylrVyVjYmNMMVZCMFw/SiJabyFfXGUjUCZmOWxUPiU9PjlBNSZPXzBNTChGYm8yKEprQEBjMS0jIjtfTmEKLS5MZCQwVWNaTD4vNFU+YjAmKnUmZ3F0UTBtMStiVm8hc1gvO0lvXzAnK2REaGZROWczQW0rVyU1V2Q0OEBeY0E6Ci1LLGxUZj1dOmpVMWVmbFZyRF8qUDIjQmFzNitjTFo6b2VdNig7TVVEJFVyQ2IxPUAuRCklQHJEIjlXby05ZWBZSQotJFtXIW5IbSc3L2ZZcG4qIzZELSkoOktwKENgNjJPWmY2W0dNPDBeJGhwRD5MQy4sS2UyRTsya2QpdWJxKGNdciUKLTcnZE85TElcX2pQY2NPaDM5PSI6TT5GSzRicT9YPiJLLyNhJ0tNMjlqRjAuS0EjQVZZJSU2Wi49QGpFKGxsIXBzCi1pNjQ2QWdabywoJVgvKXFFYTZMIWhscCRBSVViJkFxY3VcLT43bWdqbk9rWGtcaUUwZydwZXIobzBoK2lDXU9QJAotVCFjZCQ+V0hYQTdYXVtBQnMwKF4wZ2ZwO01iQUFdZHJpVVxGMW4wRGw6Wmw7V1E7RXFqI0tFKERBc2gtUyw2ZzAKLWdbSU03OXFzPGIrNlVzL1RTQ2xDUEx0Y3RUcjtvSDR0aUNxLj86ZVFocUU0aCJyWXQmVUdqZ1RSV29yX2J1Z1NxCi1PTilFP0YlL2o9a3Nfa2RjPl8qLmNOWFBAKU8/L2FYXFovWEJgViV0Vy07MkgmSz8tLWtqZGZGMUFEOU82QlZLXQotaSZOYThTbVl0P1wuPC9xVWFsXklYTlVhNktQR2M2Iz8yc2s2YyJZOFlsLUFyLGghPi1kYlk0RWlJKGNYcjxzRzkKLUVgOkA4LTUwTDlSQSd0NCJiR3FiXVtIKE9ANj51OF89ZkxJLG9ISG9NczNCODpsPy0hbWVnRDVDYUxPcnJoJm82Ci1nQ29jVS5kaytjXic7ZjllcjBORCNTbUUoZVhpLFo0MyhPJkMnMS0tN0wwdTxORm4yOlN1ODxIIi1gV28uU3JbNwotSzBYJE84RyFgJyY4N0Z1UXNwPSU7QV1vJklPSVJmOyYvJ243WWYqUy9IUTVkI1UyZWdOMWAmYiFlQlZWYXI5OSoKLWFILzBOXFFLRTpPPTZCc2kiWksxVzpPVGVbZmQ/cTA4RyhscEpnZS5QblEyYTc5TnQwZGtvT0EnMyRYK0JzVFFBCi1ncDJgZWZKJiZxbDU9Mlo4PUQ+YmxIVWVlKFc0SktSJ1dBX2JoOyMwLCZHXHJQTkhwW1dSM003O0opSmBccC1zJgotVGczN2JpTDU+X0kwV0A+J1A/LyNTb1csJmQ1ZkI2a1ZXNUplME8+K1xfZlgvMTRQOTIqXTlJXjJObSpPb1N1TzwKLUVaUjE5aXVFJm0tIzRkRDQ8bUI2TmlUS105K2dYIVZUcCNhYXNDU3MmSGEvLydWM2ZpKnRAMjFRJW0qJilWblRaCi1KV2EvIjE2Tk0lTGpZXXEkRi9xPjhPWSdOaUFGbz5UXidiM0c6dThfOElBbC8mLUw5RSooLjwvS0cxKT43Km5PPgotX1JOPkhUaDtucWNyIi5BVyRNXjgwSHUzKVZAYy07OWFJRkwrXXBGckA6R2M7LjFRZD9fNUs3cks6RytvNidUZiMKLU8/ajw2Lzc7Ok9McHAmI2cpYE5bLFVdOmowTlZjZClGSDMjWG1uPSQ+NicxYDhRQ0hNIUlpamc9YlVbUy0rMHBxCi1gJWNuO0ZYajdOMGlRWyQzPi9BKEY0VXREUiVgImkoaFhbXycqWW5NXmtWPjBBRTlZazdDNjpOPz0/NHRUNmBqWgotTT9Iai8mUjhQRVwzVkVrWVgoZkNoWjNPXjYma1RJVFJbWzJUXW5mNCcmbGhbPHMkVEwoT1dFW01TOW9SRThZTkEKLUBCWFokJFw8QCdpLUYjYTA6Xit0WlpuWyM0I2RWTG9JQDNrTF8nXF4pQU49ODpDQihRJzNfPlEkRXRRP1lkV0VECi1LPFJYI1ZBOCloYksyOnVsZ25NIypXPEVUUXAuWT1CXyxaNkA+PjFmQFNDTCZIODhkbFpXJSJkJ0xTaUIxLVBOVgotPSFmWz9PcDQwOn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTM4MCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzODEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzMjEgMCBSIAotL1Jlc291cmNlcyAxMzg2IDAgUiAKLS9Db250ZW50cyAxMzg1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTM4NCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzgyIDAgb2JqCi08PCAKLS9EIFsgMTM4MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzODMgMCBvYmoKLTw8IAotL0QgWyAxMzgxIDAgUiAvWFlaIG51bGwgMjUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzg0IDAgb2JqCi08PCAKLS9QIDEzODEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzc4IDAgUiAKLS9OIDEzOTAgMCBSIAotPj4gCi1lbmRvYmoKLTEzODUgMCBvYmoKLTw8IC9MZW5ndGggMjE3OSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGlILzBOPlJjdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhZjY4bl4mJjtNWGYkZUptL2g0I0s0V2lTcltsZSNjUVskakZOWVxQY2xiM0xyaTEhXUZfSAotOC5aaj09LkEta2g6TkRJNSROKkxKQEkhPzpKSFJQQCQmU2hOMidlJS9kM0J1SDRVPmBwaWEzKkpQcDdZXjQ/OFQKLTJONERFYDFJRnQwXjpTKkUlak5oJWA5XjczWHRGcEY8KiVpKihobDtLQTZEK04uXj8uMVE4KiU3MFRYSkNgPFZuCi1Acig/QiVgOFMqJWc6N0wuZ3FBNmJWaDJpbiZ0aGg1YHJwRypQTzFvZFBGKSc1ZnUxdSxGSVxbS1JzYyYsKVRpcwotTUJXQSQuJTI6YlU2KTY4XlgqKWQ1Lzw0USkkYGQ8S0IsJF5VVCE3azZZW21PLydCKEYiPmwrVS8tYyNDLEBoKi8KLWNMS3VnI19dUEJrc2lmbWVGPyxFNl9qXG47Uio+QnJsZTpkYnFyLW5BREs0Nm86LFZOO0RaUGk5MkViY2AmOCUhCi1SVDskS1Btb0FpMGlKTSQxPGY+YGYvQ25GTipuaXUxOEgmVmEjOCMlPiM0WFFAOyp0JkpybzYuWTNPZzNdT0k4LAotLV0xNUFtMlddVUNZbGhXOz1xMUI1QiNwbTEtYC06bW1iVSw0OzI+VUVVOC9eNkk8WS4lUlxWSDcxciM5N0xwNlEKLVwiJSEjYG4wO3RmMVFYZVtrPmtuUHRQUmQoLVBgMTozM0pkQ2dxQDpNaCJBMzwmbDs/OlpYYC41MmUnT0hWcSxCCi07YjFHYU9TVE1SLklHRzFobUF0TixOKUkrPVhXKCQvYWppcSk/cVIrO2JocixaKU5YOEBZQ0koNjUjMC8hTUYmOgotTDtDMF0uTzMsR0BkT0AjWkQqYjxVPWA5ZE4lQjM+MCtMOT1FImllZSo7Z00qNDFORUU3JWpWIzJATUlsPmE6O0QKLSNpSVs+OWxTbyQuZ2s6SyYuVFk4ZWhHKzYiTCdvcil1L1BMX0xWXkNjalpVZyghX0k2KGZoQ0A5SjVTQURcNWxyCi0nVDhdWVBhQCopazUndWhxYG5QcFZPTVYzWGYuZT5uJUBUYz44dDpwYytiIjUucys5KDElaUddbGY3XEY7UkAhWwotXjouUDM3JmE7NV8iNCZxLlBeTWFWYkhvRFNPXVY7R2huQWxnMzIyMWNsQV9VQjdyL1Fpcz4zSmdULGBxNi4mbEsKLVRLcF1DZlAjNiQ1V1QpYURXdE05Qk01Ik0iVUAiKSItcGNaIjlJI0RRKyVtazZRM0tdRGo5ImA1aWAxYCNdXkEuCi1AOWdAO1lsLFRSNClHRmRpMToxZHApa1VdSClgIWcjIWc2Sjw6UFptaU9mXkZGViNHNWAiLlpBMycuPzZmJiwuSAotNHAyOScmWFopSHFWUSg8TCc4al1bOEloTWNZLCRXYE5aZlE6bkFFPUVjI1ElKUQ7a0Y+UmQ4IjtEN0ZJWD9GKSUKLUUvbClSMlBiNEZUKV9MJ2VNby01QCdnZihFdERXPEA+Ry11bkAncls8IyJAdEdwLm07KStQT2I5VkpPJUpUKVlHCi00SypAZlRcTFEtXzllZjgwXEA8VFgyQjpBaj4iTkkvbHBvOSxuPyozXiw5aytsKFpqUiJrJEEnU08sLkJOY109RwotIURqSl9PQ1NcI0dVV2glYFhYcnNoT2c+UDhvQVNyMSdbPkBpN29iMyVkajBLUSdVUE42WUxHKCVycmpcOCZtKEAKLVpwdD91Z2BvODliIVFZIz1aSmFfVzArRHVmYWMtWTQvW0g8XEtLc3BoUCE/JTBjVWBLUTRWdUUsLl1wVGskPi1xCi1nbE4qPHA3U0s8Mz9OM04kTlpWRyMpdEw9VDddW2NrVj1GZlRfV3BWR0IrJyRWJ2xPaUVHYmo8WFk8Q2lyPE9uOgotMWtvdSlLY0dJbSRvPDhpIydfcDw+SDZuTC1iO2JcPC5SVFhmUV8lQipeXiQwMUo7Ry1uPjkxNVJvPWslOjhMJyEKLT9uVGB1OnMrVjpXLkc3PGkuKm9sZCFcQVZSRWhrXzM8dD4uYlJRcEpZbGsqbVpRMlh0PnRgPnJWP0dKIUtjbk1UCi1ASnI/aThLXiU/W0ZKLE1eaiY1cyokOC5GUjZwNWk7P1IiND5lT2Q0J3MnOCVZbmYjOy06IkxESnA6RV5vUGZEUAotVVBmdEw1bVNbWkVOPlVUbkNgWXM6Q0tPZ0s3WClwKlJtWUZKakk3RWBuJT4uRD5nUFtuXCkxSXA8WDZpIilTMkIKLSxmOmctUWpPMEctW11tKSRXbV87Njcwby5FV091L0w6OFRaX2dAPzdpVD08ciY1WmkxIjwoLGtLaj5QRWxaRD1cCi02Wk5ZX2RDR0EkKXIxZEBKK0FbWlxZdXNKQTV1Jk1PT1E1RDQpNl5VYlNDWDJfPWBCW09BRSQoQUlGJTQpJDx1MQotcWp0RUVZc0goSlxxJmFhK0YlYCxcO11wZVlobV1ZYmcySkFET25hO0ptajo+Qm8yPSMjbmpmIm05UjhrIU1maH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTM4NiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTEzODcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxMzkyIDAgUiAKLS9Db250ZW50cyAxMzkxIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTM5MCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xMzg4IDAgb2JqCi08PCAKLS9EIFsgMTM4NyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzODkgMCBvYmoKLTw8IAotL0QgWyAxMzg3IDAgUiAvWFlaIG51bGwgMjY4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzkwIDAgb2JqCi08PCAKLS9QIDEzODcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzg0IDAgUiAKLS9OIDEzOTggMCBSIAotPj4gCi1lbmRvYmoKLTEzOTEgMCBvYmoKLTw8IC9MZW5ndGggMjk5MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiYGlIQ2BxLD1jdGFPMiRWJy5uZThqOyQubzIxO1BCal9OL2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJpT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVcnTUlDCi1gXHM7cj9vNGMqSlxhZjY4bl4mJjtNWGYkZUptL2g0KjI7SUwnKDFqO0lWJmlSKkxIWE9GVT9hbUA5KnNGIixKSAotZko8MDRTYEAuLGRWXypdWCUkJShFKUlmQWgiZWhBaTYyJXRWUEI/dDNmWmxmOUtOVmw4QGZoRUNUP3QpXlsoWWsKLTUtQVo+UidRdUY4ZzhwMy4mXUJNIy9TKVwmMU0oXzRMUVJoTGdcRSI4WUVMKyRBMVVsUSZOVlpoIUhlUzBeKDNNCi1AayhNNUtFQUFWJSMsb21kZFZubEpEVSRcTT1SbVEiOVhtQyooW3VDI1dHOUU5VT5IRmNKNSFNTmU5YGorXDdiUAotZUw6Xl1UTVFGLSc1NDcoWjBLK2opVExnNUVZT0crVFRrZVhOJ00/PzBDX2tSVzI8cz0/OGRjZjM3LkdaNlJZMlwKLVZsSk9iMlFKJjFhSyxrPU9NWCxWRGNrWzFOZy9iTyYuWyxNXDxYX3FHWCpGZGRxJS9bJUlHOlhfTidsLWs0bS5UCi1TRUNoXSRuK0EmTkFDaSswVzs+JXAqcDU7UFsibydFbERjLWIqLkw/MUhmYV1hVUhEQTVpKzQpO0Utb146RDswPgotaVBPZWdOdCZXY0p0YTFnMWE1JHRgRDMuOF5mOFZDPCZZNVxcQSVHb08jWTM+TmhbMD03aDYjLnMrJyQ5ITp0aE4KLShfbiNSNTBxLj4jRExMcyE0UT0lWWpEV0NpLCtSRU5ra15BJjc1a24xQHNHNj82QnI7RilHOU0ibFhsMTBUQ11yCi08WV48cyJlL19WPGcxJihqNUVCMC5tVUtoMzJBamhtT1xFKkUyakBmVHMydEElJi9RXkMpWFo8LEcsWXBscCwrcAotZmpZWjJhQS8jZVlwZGI4WEtPV2ZuaCcsQGJvb0ZnMGIxVjBgTFNdbmplKjwjY0wjYSc/K1gmQ3BQZV4qYEQlaksKLURHKStuRy9gY1NgYFBybEU2aTNGcWZedWVLO0FrLEhROFReY0lNWGdbKHEmK2g4N24kRFZbLCRAbUlwK05vTE9zCi0ySzA7JWF0U2QsYz83al5oMEApRV1dMjk2MyIzJ3BDLTolV0dgYyplWzRLXV80ajVbbTM9VklMYTMlb0M6I2BKMwotRlkoaCdmR1VWUjdfVjU5NixHJDtUM1szVV5NSkVUaSwhNG5oSFA0QWdVcC9kKUxdSkZdbVlAKUs9XyptS2tyXzUKLTVmPUxBJz1xLStwIiQzRWA1ZyYxYkBJPE9oJCxmX21GI11RRDYlND9WPD5vcylxMD9JaVQ4dC0hNlNgJlxySk1KCi1POlgpPG4/OkNMT0I8WDlsb0FRaiUpSzQhLllnRC9LNDU9YTswWiVEK1FPQ0FKRExXIUoxKj5APEQwRFtITWxNagotb2FJUCQzTEheXlM2cG9TLSI1NCVScmNhQUstWFpEYTJCWmQwWkswOXExX0lvcGJzdW81alAlP19ncjRBMHNhPVIKLSknNlcyMy8qZEQoV1M1WSFAVV9OaUFgJDgtQ2w0IT9vKDJZXzVTZ3JVa2JaR0NMdFQrPnQ0dT5PJGI9NzkuRz9vCi1KY09aK2owWUNXQ0QnRHBgL2JiLW9AJTxmWD5fWEk6amM6UERnIm5DZFE/Qy5YLTdAYSVXPl9qYUltQXAobzJZRAotZFAwc2ZbcDBtbyxBMSJSRSZZLCRBPDI7Zys/XFQkTGtnKWpOZ21YQj1tSk4tN2dJJE9ANkRoSVk1SDZhcE9FU08KLVBndTVlYWo7OHI+VDYlXlQrIyw4bHAxYExdK0plNCJVYk1BOTFLJ2cmYjlzXkNNZHNbV01Ca0lSXyI0IiFkMGM7Ci1GTThkbj5GRF4kVSk3UCIpcztoVSVoUS8jXSgjOlwqdWhkJGJnOEQqPEVoVW1lIWovQS8xXSNWOEktWnRJISg+MQotcFAzLzVPJGIoSlBgaHNWNSxXQSQ9alV1QzdiZnFXNWpLRigmN1ovaE0rOid0TjRCPElNKU0kZCtyKUBMK0NsSUcKLU9SNUFBOUVOakgmVV5tRS48cUdfaTZpTD5qPls9XUAjSSRlcmRZU1cyYFVAdFNqQCgrIyUyOERUVjllPSJJMkZyCi1fZ09SYGk9JE5VMks5KyVvZUNCXlw8WU5IRFhaK3VJVW46Y2BCcCM+KUpJPSpWQFYpMTNBbGNoPGAoYFBQUyVnSwotUC4oOWcvVTloKSZhQlVmcF5sY0FWJSYubjE7Y1JDJT5gTG81UllCbDAlb2gtOzM8QD1Bai5aWiIxXz1hNy9wLzkKLWE+TSFzRlVESWdXZHFAPjQlPUc2aCtgIXElVWxrIiIjKzZwOlEhWDJpTmBPKCkqX1kqMFA3bk9cXyUrUWBIbl8tCi1ZI0ppa0o1Pj9GNFk2TVo6WDNNZC9rSThVVyJTbytHL2YuYVdEbT5aS2dWLlVxKEYhJEA2OEY9QSU9NUUyVDdObAotOls/OSQ0JTpeSzVncDBTaWVWbFYlPE5GU01nYyFaLC10MyNPPycsMlsvVl10VlAodSM+aGdXVypGNCdcVThpRCcKLS0wOGNuPC1XQFdFKlBCTjtyS3JRWyxJS0c4bz8iaDpQZENzP2M7X1I6a0FyZ1VRa09rVlxyVzY3WzU4J2RJWUlTCi1bJ2pyLiJFb2h0PiJUOThwR0w3XDUqUElZRj42a0QzbT9VbUEnMnJcUHVpLnRiSV11JVlxM2tkOkdBRTkvOytrMgotZD1cYmArYkFfOyRSbWouNl0qUFI7SDJxU0VDI183IzFaYlhQP1A0NyxWcEgtZU82YWJcSm5XcDwwZ1A0bEdjMEAKLUBVWUxScjZpJCY0Wio8IUxyJCdzZSJFP1giSF1OKEpvdDtJUDRdQ2hQM2pyPUg0bilvTDgqRjNgRGJoYGBdNCRNCi1GSG1ESyZJdCZANypdSzFTUSZOTzVzUVlGS21DPEY3PkVbP19sJEFjXVlTOHE3QFotLEYyKEYkI20qUl9hUDl1SQotIlVxMUIxOkU2VyFDbGJkVF9pJ11xJCksalpSb2JjI2lgNlsyVXJCLjEtMTVNKV44NlZdXSc+ZUxwOCFIUSU2bzsKLTZWSjtbXzswS1A6dChONEghL0VOJERyRzBEQC1GTjZPRnU5LF9bQSEoVWRhVk5pIV1iLjE3O3FbWWo1dD4/JltyCi0sWlY6PkhMXWIuZjVVcTRkXSRRPWpQPz5xUFkpKUFIXHM8b0JIV0wiWjhPSV9jUkomNmdhL1VFU2NUcFcrIzJvKgotZTA9Qzo9aTFmZztCZVlSTVpYW0JgPjxNTDc2PitIY18sbVZoMjdgP1I7YjFsOEVnS0VyaUswb3JQNy4saTBwTFgKLStKSSRDVC1MXSI1PmUhLF1AVlRvTEFUIzpAMjxlJzByWG0tcT8hIkAsIyZQPis/KThOQ1UsVlVpNmlVL0c0TCg9Ci1QbG1XJy40NlgjT191NC9PUls5QStOJ3VnOm47JygtcjdpVExVXCZkakcrWVIqIVk2V2tFQjw+MSc7byI5Sj83YwotM3BUXCotbS1XXlZvSUU9RWBcT15DOltYZ01lRnNYS1E5ZDk7OzMwKFpMaj9WXVQwNlNCOF08YCh1KSchLFAjPz4KLXAtSyE+NFU1KCE6JlpxNilCXi5+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTEzOTIgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xMzkzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTM4NyAwIFIgMTM5NCAwIFIgMTQwMSAwIFIgMTQwNyAwIFIgMTQxNiAwIFIgMTQyNiAwIFIgMTQzNSAwIFIgMTQ0MiAwIFIgCi0xNDUxIDAgUiAxNDU4IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xMzk0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzkzIDAgUiAKLS9SZXNvdXJjZXMgMTQwMCAwIFIgCi0vQ29udGVudHMgMTM5OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDEzOTggMCBSIF0gCi0+PiAKLWVuZG9iagotMTM5NSAwIG9iagotPDwgCi0vRCBbIDEzOTQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xMzk2IDAgb2JqCi08PCAKLS9EIFsgMTM5NCAwIFIgL1hZWiBudWxsIDUyMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTM5NyAwIG9iagotPDwgCi0vRCBbIDEzOTQgMCBSIC9YWVogbnVsbCAyNDMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTEzOTggMCBvYmoKLTw8IAotL1AgMTM5NCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDEzOTAgMCBSIAotL04gMTQwNCAwIFIgCi0+PiAKLWVuZG9iagotMTM5OSAwIG9iagotPDwgL0xlbmd0aCAyNDk5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1LX1gxV1VKYDU9R1lCWSwxRSRYb25GRURQOmJgaUhYPD5vKGN0YU8yJFYnLm5lOGo7JC5vMjE7UEJqX04vZjlLTAotIk9kW3VgYjVubEw9aTJVakRtMmlPXk4vITMmVzxbVz5fYWtHWE9aXys+JnBnayInMDlkTkFhUkwyaDN1VydNSUMKLWBccztyP280YypKXGFmNjhuXiYmO01YZV4sPS8sKFFRPFhHImlDZ1xfWjQ3JlNJT2EqIVNEVTtMUHApJzAtc0R0Ci1nJE9TKGg+MClmVyUmIjtgPE1OR2NyKUc1N2BKbmlVI2IsZV1BaSVRLHFiM25gInRPbFpNa09LWC4lJiovQVsyVgotTG5QKUguTSlnI1csPENVXzZUQFYsS2pQKmtscV4xQiklJl05KzNpaiIlbFRLTiUrJy0oKEA9VGF1NTJQJjNyMTUKLV8kIkVfJVYpMG0nU2NdU2xLalA6KGg0YzBYQ3ROWUtiOjknMmlYU19mSjhMImZZZlgvIi84ajQkbVZFMTFea1Y5Ci1SUG1gOEApPVowK1R1Z0BZZ1w4NTMiQkdzPXFuYkssSnEvZEUpTllKIzdiUUZxJGlNbmIsckM4X1JRZD8nLVBAVAotWyJCQSszS0BOZTV0ZG47ODksUk8iKmRdXCJWVmZbMS5xKitjbl9NbSJLIjFSMTVpRnIlbC9NWCdKVnRmQy0nbSIKLXI6J2ZlL2ZaIWcjJzhoSVtPbzxES0ktdSFSJjInYEpuVSNnTGRFTWMuRGEoX0ljRUl0Smg6RyMnYktMYT0pXUFLCi1rbHI7cSU2YiIxbm1uMG0iMiVnWEtFSmFAM2ZUJExmSmVmTT0/bmJSLEAjIiI3RFN1NidGWnExZ2JbZTM5TmBLMQotT2ZbaC0lTSUuVHFJKCMqTGI4aVMhLU4mLmI6NEBoX04lSCNXLnJcTVRHR0orVzJRKTsiK1w2Q05GTjc/KU4ickAKLS1WNlE2IXFQbG9ZWlAyJ1kmQVclQHAnUklSOmZcPU9KV1FvXC5ES0loIWRkWltsXTApST1YIW9VQjomdDZLNnVDCi1LcGlELSdGcmkvWUhNM2JnVTQzTXFbOy9QIlZMMSlYREtgWVwkVHJaUmQ2TzA9JjtiUTRjOiZXTyExYHJWJFM/JQotWVxHI21FOW9lI10lS05YWkROXEVZPl9bQzBabEYycG5WYUg3bWYuPC5URyZCS2QnKDk3OVZJTzVtRTBWZmxoNSkKLUJcSTxGP1c2KSQ0WTk8YDEkakQ/TlsoWiYzYCxQWD9OXFdYMl5CNEUrZ01qKm4qJkQ/MT5dXks1V0VuI2xnJWBzCi0/IVJuLkBXWFM2MTBhOzxfRCwjdChkWl00UCJRNzxHQDpgJiYuUU8lbDBcWlY8SDBhQVQ2RW8tTm5gNXItIyY2IQotQXFYQSk/dThCc2pSKjdMZ2AmVipBLjosOCk4LmBGJF5vRTssPSdwSidncSRzJlNXYSkuOS5uNlVbIjQ/K2JqQyoKLWdjTFwsRTAjV3Q0JFZdR24hSTI/bkMwS2FGUWpNYl49VFlrJCE6ZEtpTmE0M1tQal5XbCw1LXNKPms6SlUycGQ0Ci0rP0NsRVBxcC1FVTtOKC8uZmtTYFdlKzk0K2hCc3AuME1YdWU8M1spQzNzbHNRa1RUZWk2cmpbVWg2PUJTIyg5NAotaSM8N2NOUE1uQyNJKURvQSlNXEUhVlNKczdmbiUsKGFUPDltUUpWO2xsVGFfOWpoQFo0PmdNU0BZO21qMGdZKHQKLTMhRCNhZUA2YGY1XygjMko7T29UPVVHSDksVW48W1djRitMaloqR2RNXW0lTyVFaTdDQVMiazMuMClVRlRRL1k9Ci0rakZjP1U3QzF1T3FvN1diU2xzUCotO2M5USRNU2ViR1BIbTBOYWBzOUF0U1Mnbm9nL19sUDFYYGpkcjRCU0lPdAotbjZwaFlPWHFmU1w5OlBFJEA5UDVMOVddUDkjR1okTW9JVjRTWWI8Y1FyNlknZEFjMm5wXmcvI3FKMkc2UlZZPFcKLUZxS2QtPTpAIWpOQThQNkVNXTEjIjpHP2JgQCR1ZThaSWddWUZ1bDVuRTpcRmAiQGQrJUNJNz08I3BvZytKa3VWCi1RXC1eVUhWZidCRTxvRlsrYExzJTlCPUVWODtcanVVX05HJlJJbEVFYV1TXVw+aFwmPj1lM1pWWDxyVWxSWmg6XgotJG5PXmJUMVN1QlcoTitLLlNNaztNPVYzaW9GUVU/UlhXKmtYckY1UDJFT19QcGBfdDMnT0hERk1rUnNBLGlrWFkKLS1QQmNbUTFgW1ohNnVLXTFiKS9XVkIhPDsrPDtPYj0mUSYtJjI0ayRVWl1kOzlxZFI4MGZCTjlNWDRLSm91K2EkCi1gVmonWT1aJ1MhKU4tMWxRdVluTTstXyowKGQsZjViI0IkKjo4KklUO0pLI0pXRFY9TyFVXkImYHIuOiZDMkY0XAotMW1MUTJKL0A5LkUwSzRDanAqVEskaixkN0htK1cnSmxydDZEUmBzX1srcUhfLHInTkVPWF5gSGBwQyhlW3MpYGcKLWwrNUtQblVkNylmXjsoQyJHK1pvMDE8Yi07X3FZZUAtQVY4bDtBS0s9PUNfKGI0OClUQ0ZBVDM0dHRVVnJlQTVRCi1JRUFKdVZbYTI9Yl8uSio4M24oW0xqRV9wKTVCXS5LcEBITjJCK11hWE5ULV1zI1hZZF9oUjpdQl1kQlIwZ1VVVgotVkJGYillMi9BJzpWPEREOnN0OkhjdHQ5aGpXVDdxQkY1SFg6SWhCWSxibGcwbkosZV9NJWdQRFNuXGFfWipabyIKLS1xXkJeM28pdG8sbi1wbmptLUgycS5KK1MxV0hyXDFEQlUpblZBYSM2N1pvamI+S2xZTHM8PVlVajVlMlYsJz8tCi1LbEUiXSRCKkJCJWwvXD41ZkBQKFU6PmtPOXFgSis3XEw1KksiOSFzZk1QZU5DXXVSL1VvbWJLX2snQmxMK1FUXAotI1JsWEwzIU5xX0RJQkdHJjghRUQyUG0oU1NuJGtAVHFaQyQrZEpDXiJYSyR1PjpzTHJhPjBgMCtFbzV1bHRlQyEKLXIiYk5fQ3UuV2VUW1FVMVVYOFNFZUlsSkRuSHBIaCM8Yy5GbjdLWkxATEIsOTJMQS1FJTNRYn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQwMCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0MDEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDA2IDAgUiAKLS9Db250ZW50cyAxNDA1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQwNCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDAyIDAgb2JqCi08PCAKLS9EIFsgMTQwMSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MDMgMCBvYmoKLTw8IAotL0QgWyAxNDAxIDAgUiAvWFlaIG51bGwgMjk1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDA0IDAgb2JqCi08PCAKLS9QIDE0MDEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxMzk4IDAgUiAKLS9OIDE0MTMgMCBSIAotPj4gCi1lbmRvYmoKLTE0MDUgMCBvYmoKLTw8IC9MZW5ndGggMjMyMyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotS19YMVdVSmA1PUdZQlksMUUkWG9uRkVEUDpiZHNeNikpYyJlaGVLYk5RKl1PamdKbylULGMqJm81bCpbMGJ0JCQKLVZBIylOY2xhMjhZcDBrJWpEVCZfXnU9P25DZmxzIzIsYiJTTGo6Z0I+OyFoO09PNCopNVJlWUBpbztPY0ppa29MCi1EImFhQUJoaCkhSnJGTjFjdE1SPCYqJCRXLEI4Ric0PXFCWEwnJ2A7X0oxXz9MXm4kTCQsRl0pKEUuMGZuU1JXKAota0dlLk8yLzFJNmdpVC8rTiRePi9KQlZeY0k4JVpQUVlYLCItIkBlRTBUS1kzaj0xPSlXKEp0LWl1bVhiXld1L1sKLSIyUS1HOGoxJUpXKC1NSDZgUHFSJFw9ZW1tRDtYIWQxRCR1UzIxTmBZOFpvYTNmXjY8J0w1Sj08W2tmUFg+JEVHCi1tak1INFU9I0BkM2ZIRjZkUDZNTVBILGNyJW5LTVklM3B0dTNmRzprNVZgZj4sVHQpOFVCbkBEJFw6aTYqaGlcagotPSIkWz1Vb2MxQDpUTSxnJTNvUS9wXlU0Il9fS0JBMzhVP14nQzMlZE1yUzQlMG9SP1AidWYzSEE7XjVFJHIlSEIKLSVsNFg9KlxOQWdiaytBN20zXFZwJCo3bkRLRTwtZyFDITQoNXA9PVQzJ2VOTjVtMkMsNkZCNEAsWTp0QkluVkhFCi0nLHBlcjE8Z1JHJVJVTkMxbGU/JSxvKUtrZU9faCsxdFdhQktiU24iL2thWHNSaGFYVzNkaiE1QyVbbSw7UjBrUQotUmFZLD41OSNWPFRdSykkbyRwYEA0NFNGUz1cLypXR3BVbzAkSlspZDE/RWpAXTBmLV0xPiktWVRLY2VNPFhFUEUKLWVxTEdGPlA/JGEjWWskUmwlbWNTYEdeMDBNaXUpVy9BWzJWTG5QKUguTSllbWI0WmJZYiNrVScvVyM6bCdGS0lbCi1sOF0ia0xpPSVpbjlrXiglLiRUdDNELjMmSmlIS2AialJZaG4mMjpeazhEaXI2R0I0bEQjNFwlQUhlc3ApSDdZUgotS2QsYFoscTFHXjVfXzhPLEVgbG4rZGQ1VzNVVmcnKSgkTGxUX1hSVyNnVzsnIiJrTiJMXVUsRStPOlx1OEg8LysKLUpuYypBT15ASDFtbFQ+bTs4NTNoQ1ZdRmUtckltb29pdVJWZyRsMF4oTkozTG90RmVCP1J1bjQqJGlZRDdrcWJDCi1DV0RoPWIsOGNiUTotVFNfMnJQbmpkQzoibFhsVSI0PG5bdVxmKUBpK2RbNmZvdEVNQlpTbV8uZig/TmBPQzZgZwotP3VCU1glVFdsLC8pLWhcZ0BvWmBeMjloM0hEb1szOmRdS1pYP1glV1hUa1YzR2cqNmdsdCRTQmQhOlJhOC4+V1AKLWpTQktfLm9tKi0iVGVtLCZmPzdKPFdpazZVOilEaUUqZXFAL3I5SWwucVduRCFDRnBuMDFpTDlFKk5qNEJpNlYvCi1hO2RAW0JfVFprPkFQbU5aR0RfYzdZLlVTOF4mSjU2Ols3S2lCL1BAS2kuPEFHPDEpQz1EODgjZksrY0ZgaEE+NwotLmgnYi4nRisnXCNVLF1TR25BVzwnYVFsNGIsUklXYHQ2b24jSk0yOEdeIVBPTGAzW3VRcltadUZGRVZzcTQ/ZHMKLW5ZITZIS1gjWl42X24+T0BpOGteWEpFNj89P0knMWo0T1Y6Xms5Pk9BZi4xVyIlTFZiNCwtU2QhTCoiJUQ4O2VlCi1gb3JAUmRdQCs+VHQyTWZcPklQU2dmQlRCOUsuXyw+KC9pQ0FQMSN1IzlhQVoqaGlDViMnIyY9M1EpP244Mk1XSwotJj5BOVA4Sk1TIVVOTWInLW89MnE+IlpbREFQZTohVTheSytvLSE8XktCSyh1T24wJWtmbFNsOktfUlM0KSFpKyEKLVo0JkZtWyVBYUglU0ZXWEFJUENIWGlEWWkpYWYyUDouTXUnVjFWOGNoWlRsalBNVV0vQCozaVpRbG4pNloxNDJLCi1rcTFFTENuKz5AP3IudWgyJSYsXkpyTUxbWyRmOXJjZTg3LGBcPjYxPVg4USdtMV4lPWRAPCJzbFAlMTs8JzBOMgotNEojJ0MlP1ptcERGW0JTOio/RWgpcldiKDg8U0kjRWRLMmBQbSFeWSo7RUJwJElIXCFNMj4ubiYxLF1jcHVlbCYKLTg8IzYjWzQsJ1U/USYyNSVJU0pbNVssaGQrYV1caXEzZVdXW15rSjc8IT1wNS5ZPGFpJDUwdT5KTy5NdVFtcVBtCi0oTW4pK2lPQ1M+Lk1WbSIkRUwrKilIIllmRFslQDUxKltwVykqTjI6aS47QWcrY2ZZazdMSldwKnUncU0uOmlHKAotKT8wXkoiMzNETCYvXk9BOFNfVmojUjg9L1JZNnBoVGhqYWEvNWxgNjQxZWhATHAvVDxQNzxoP2Z0N15vYmAvLFkKLT5TTWZlQydsLl5PJVo/MmBaTisrOSolYT5WQS4raWVnV3JfbFFral0mcVUlWSlcM1QrRkFORmJZLG1DWk9GSkhbCi06YzVdPDM+OzcnJTRiIypPVjtdT1IyVUJHPWZmbVhUbkc7QUdhOTxPSDNGYS1yZC5ANCpBQU8vWD1odFBWOmsyQgotKmM5OnJMPC40SDZxXV5FVTtWPl8lay89dDVdKTlKWGpbXnBDKWBeR2MhQ0svOW84SlVLYyIjLCZBYFRZIl5uS2UKLSJzREdRSzs9bUNmOEFBMSg4VjFDVElpOnFTL0YmXWVsPSxcMiw1dERJRlFWL1l0bz1PQ1dMb0s/cylrUlFhT0hCCi0tKDVob0sxSnMtYk02dF84RXI8MFpsIj5vN0w6NS8uPjokUSZPT1kyOCFpPGFVR1ZtY1QsOGgkVHM9UW42YWRuIwotMFFeSTtBLVMsLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQwNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0MDcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDE1IDAgUiAKLS9Db250ZW50cyAxNDE0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQxMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDA4IDAgb2JqCi08PCAKLS9EIFsgMTQwNyAwIFIgL1hZWiBudWxsIDUyNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQwOSAwIG9iagotPDwgCi0vRCBbIDE0MDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDEwIDAgb2JqCi08PCAKLS9EIFsgMTQwNyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MTEgMCBvYmoKLTw8IAotL0QgWyAxNDA3IDAgUiAvWFlaIG51bGwgNDcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDEyIDAgb2JqCi08PCAKLS9EIFsgMTQwNyAwIFIgL1hZWiBudWxsIDU2NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQxMyAwIG9iagotPDwgCi0vUCAxNDA3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTQwNCAwIFIgCi0vTiAxNDIzIDAgUiAKLT4+IAotZW5kb2JqCi0xNDE0IDAgb2JqCi08PCAvTGVuZ3RoIDE4NjEgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUtfWDFXVUpgNT1HWUJZLDFFJFhvbkZFRFA6YmY9WjYpKWMiZWhlS2JOUSpdT2pnSm8pVCxjKiZvNWwqWzBidCQkCi1WQSMpTmNsYTI4WXAwayVqRFQmX151PT9uQ2ZscyMyLGIiU0xqOmdCPjshaDtPTzQqKTVSZVlAaW87T2NKaWtvTAotRCJhYUFCaGgpIUpyRk4xY3RNUjwmKiQkVzJrZCRqanRJU1sjK1gsO2ApJVRDI1JDUXJUYk86Zy5NS3JuMVlAazoKLUNibS8kIjVQdFZBaGs4RzRpOEdBWmZYLC1yVmtbRFdVJzBmJF9jOzhMUDtlXUFIU3JIWDBVSWorVFAlaCU0Vik5Ci1vbjNGN2NucF4uUiI0Yj5OcTonVjRIRDI9b0ZJX2AiSl5PQlROKS5XLEVVJi8lXG8zcSNKcV5Ra25DJC47SkpEMgotQ1ZzaU1ccjFPaTNmSD8pUzxmJWE9R2VZXyI1SjUpTCFWazNeSDFmKGdCUFNsNm4mTDImXEAnRTkhNXMjMmFoLigKLWdGXEBvI2hbLVk6dWYuVV1JdDVIbz1aazheRDRzRUJacSJxSk9JTzZiaS8rOC9kNCJIbWhTMyxgMzBDVFpTOT1pCi05NXFPIjJNQDFZaT1KYigqOiJTNTFXOiJDYFVTbiI3WkZkImpcQUpcPkxhPWBabnRXWmUqYmE8JidlKHJkZz9KJAotUylYQjFuJnRNKV41cXI6ISonYStAaSVUSFBrWXFoUTdXWFo4IVNKbEJXT2BbUidRdUY4ZzhwMy4mXUJMTDEuO2sKLSlbPUdlVy9pTmpZYydBZVRgWDw1XDk+WW0qM3RIZFciUlsmTG81SU5iOjRCTCJwJ0ZjIkdPIjUhZVtAaDpzXm81Ci1fI1dbUU4naDExMk4va09oMXQiMz1Rc3VxXDlSN11OVXRmRjBYOEZvaEQjSSwuKXVYUV9nKDVSJWUuMipOU1YpKAotS2ttQkNVN2BGLEUoRWVfTjIrSldJVTUlVT5pci9HVkApUEY4VkBoRj8tdSsiUzA+SSpBWWMxdVtSUztOUlxZRlsKLUJpbTlebEc1aEFsOEssW0M/MnNCNipnIW5MKj1MNFdhLic6Qkc6cjgpW2hAckZFa3NGTiRFbDIyQFVsXFtRNGxWCi1GO0spVVoqOy0sW0FkSV1NZG1ERVtQOihaITZSOTFfYEciNUUwN1MnNG0lYTMqQ3BYVyUycTZcZFgsXElhPS1xWwotbD5HVW8wOFZRcnB1VFFYZ2xURFhkSlkuUDFsXDgqNS05alFESV5IRCkwIjNRanJRPCIrYmVubTxZXjhpKHVDdUEKLTR1T0VZLSJEMmMkMEk9Y2RfYUUmSWM3aCcucVw4Mm5DVl46Ji5UJD89dWY6QWE/YCgwbj1NRTZmVE01J21wbkE0Ci0iPCw/Ul8xY0ZkVjNTWENVXzAkK3JdJGVxJjAtZD48J2QwOC9WSkRHU0trKFVKS1QsJk0zLSxQIyQvcDJsJWZPLwotWVNqT29lPEVjcjwhN3I3cC1NIzEkKE84JDpTPks9NmJtKzxRQj0kLVlnIU1DMF5LOyJOKEYtUE4iPytPJE1mVyoKLSsoRlxtNGkvUXByNTYsRDNAPkVLXys7L0hKWEFESlguY0VwWVlhX0RuMHI1dFRtIXFyNVQvSUhBZSVcOiohMVpJCi1SRmJ0ak5GQSVuSnJtUFkhYDtPJlVjIV5jLStaTnJRbywqVk5IMVFRM1hoIjMkJm0uYCYvQVlyPSRyKlcyVT8yIwotXTdBPSVoVSQuW2JabSVLZjgoQ2tlOSk1WmcjdG9pOyZwbWdYPS9VTTd1J1RWQ0tTKVglLjxNcVFxKm1qYjJIWlgKLS9mamMlUi9cOiosTzk1WzRRcURBYiJYKjosOztfVjJhN05dRnNOaUlQcWdvSCM/Rm1eU2U7ZUkrY25YTzBaS1IhCi1SNjtqLUFdJzppbEdXalYucTZeXyReLycvUjkzcWMwcDlBNy06cC1aZl4jI2ZkSyorVCtDR1o+TjZoX0FjJks3JgotNVQoLGxyMHVnXUNYJVNvLSdyX28uNTQ0RCIjXCguKVM4MD1VI0ZOXTBacWMjSSJPIW5pTU8jPWJzVV1SSFxDQSMKLS1vI2xxLiZbIkA2RiowOyMkT1A6QmYmZVRLYTlTNiE4SklVKi5eQVwvL2VWQ1JabmJNYkMuL2ExSipFWyllQHRBCi1GYzNhSUs1YVd1QjM4c1ttZWYpNFBfTCduNFhaVCdpVlQodEpNdVVwWF5kVnVLQEBjX3MnMHMwVDVqN2MrdWNtKAotPyM6SzkrPmVWIX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQxNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0MTYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDI1IDAgUiAKLS9Db250ZW50cyAxNDI0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQyMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDE3IDAgb2JqCi08PCAKLS9EIFsgMTQxNiAwIFIgL1hZWiBudWxsIDgyMyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQxOCAwIG9iagotPDwgCi0vRCBbIDE0MTYgMCBSIC9YWVogbnVsbCA2NjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MTkgMCBvYmoKLTw8IAotL0QgWyAxNDE2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQyMCAwIG9iagotPDwgCi0vRCBbIDE0MTYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDIxIDAgb2JqCi08PCAKLS9EIFsgMTQxNiAwIFIgL1hZWiBudWxsIDU2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQyMiAwIG9iagotPDwgCi0vRCBbIDE0MTYgMCBSIC9YWVogbnVsbCA0MTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MjMgMCBvYmoKLTw8IAotL1AgMTQxNiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0MTMgMCBSIAotL04gMTQzMiAwIFIgCi0+PiAKLWVuZG9iagotMTQyNCAwIG9iagotPDwgL0xlbmd0aCAyMjI0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83VW9YPjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIlJVci4pJlpLZDBPXllLTjEsOVxMajNxX1xsRWFddGZCYkZuTHJUIUBnMl05Z3JMaE1XCi1bTWZRN0swYm06VSFmQmlEUk5rJzNZVU0rYEMnZjdFNEJSIy5PKFRMKDU7ajJVNGpxR2ZNRiUsIiVsVjgkbVU7ZAotVCosS0RqdFZsYDhBbTlbQzlXXk4jJTxVLlEmXUBRaSZEMitPUVs1YmoiZS1KLy1CaXJgW2A6WD1WaVVLLXBUUEsKLSFzbVU/JT9dI3EzPF5SXkUia1psLiw+MzFAbVlTZmFSUlhGMWxbLHE1VnJsb1pBTDhsSmw1bmpZTDUwV15xY21pCi1CVU9GVTpyM2MxaiVQW3UlNUBpcClbcC1UYCYqRSU9TyZiSDZaY1olJUZHO0hRJlIjMTBkb1UsYm1IN1siMC1cIQotY2RRXmYzMjpQaFluTitMOEIqQC8kT0duNk4naltKKi8ibG0rPydgU00hR08kJmdXR14iWiMvTy5LckQuJmVtclEKLStQQF0jMSdLS2dOKUMqVzJvVXAjal05YjIvRmpUWDE/dCVeL0YlOE1uTD8zPUMpRF1qS0BHcSsrW0RgJjhpNFdECi02RiMhWWtAVm9gVjRyXllsQkFnQEtGI0hjczEiLidtL2pqUSQ+QV1TbypAVENgP1NQZi5CRSdFaGgmSHBNXCtUJwotb0RUSD0vUlxYPzUiU2EqUy5JRlhJNUVeYUEnIUxmYyYyU2UyQ2lsa0ZdJls1aj5dMVFbQSNrWj5CPDFJL0xUbUEKLXI+K0E4JHRnYz4rW0U9SUxFVmFWTzVyOyI4Pzw4UVNWWCIsQSFQJW03bWZzVU50L1RYanVlWkNSK2pNZWQ2cHRJCi05LEBfbVhqXEwramA4bjNeIUh1RmNtMCVoNW8vXCo0SDdiXTFfOitLR2V1NDVFTF0xQWIqJzE1Mz1VPz8kUGAqYAotJ05fajVbaUZfSG1yVmkkOy5AciJgXShzL1YpYiJKJmZoTkJOLFtuKT1gJ0coaC04JEJXJ0VGIV9wIiMrS2JlO2wKLWlQKTcqL0ZhcTFjdEY6JSg9XkBnTUY0PnU8Ijc+ZjRTYlorWGtydF4hTWQ3KyMxb2s8IlVeXCZLSyJULko1SkJWCi0+ITFEaVlpQkVSMTFZWGY1cEFsISY0KyhZZTZhWzpELmtINWc0aThpP2xMXHRSVkVVdSZWSU1oYiI2MW9USlgnSgotbnRdWiJmUGEpT0UjaCZyay44aF1hQkFTWlcuUWRDJUEhKEZEODxxKiIlJEJpNXEkZUhDLCxdUGpTWSZObmohVlYKLVwyOmpTIkJsak1tUVZ0IjNPJmdgW2dSMTE/Tm5RXV1nTmRTZ15CWmg6US4/RyctbWhzTz5dV1FibyoxbUZWN15nCi1uSGRLKiFKOyQ5P1dOWm04STR1MlVfKDZcZ0dqLVVfMl08bj0qZjBvQm44UURAJ0dET19QJ1AnQDxHOSY7P1N1MwotOyNwYnElJkZOO0xJSSN0O1BAOycvWl1fWiF0bzEnZzBtLDRrcV4oZ0hGS1MmXDs2JUxMOE0ycmtRQGMjOiR1aTgKLWA8Ojo6T01WbzlNTlAuZWBeWkk+LlplQTxRblopZ1JlPCpnZm1AYD9ta14tRmtvNEM0REApc000dCJGNT1SL0B0Ci0uOVxsKWVWTj5CYi8uLEBIMidXMGpVOVklbVlyTzAnTGdCbChaUHA2TjJzKjtUUThnZiw/a1VVK2g+SUVQWkdVLwotTjIwVC5BSy00KlczUC5LWTc5RXU2NV9JXiVAO0JLMGV0O3FfNmNXVV9gTUxIQDtsbzdlNS4uLy5gIlUjSk5sbj0KLUg1Y3I/PlFsUCIvIzs4KGk1OGRlU0lDNGNMQFwiU2ZoRGA+TCtVMGEyTlpAXSc7J1o3KUY6dHBWX2ZEQzIkTT4iCi1EOGZESCFRcTE4PkctTCYxVmNoUCsjOU5oRTtcPU5cTmttR2dMT2tlJjAkNmxAaGI1XjxIZF09Z2xaNW8/XC0qTAotM2FqIWBMSWs9OyxwNm4xaUxxIV5rNFhLU28mbEZlLSRAKjwsbi8iWjJEJl5tKiRBX1IsSm0pNENkZXFHYTY7MjMKLT9TYlojJV1YIT4yWG9vSjtzdC4yXWRoRm1ndHNEK0B1bl1DOzVKcUhBIVRjWTEhJExZMG1YXGphRipoWDtER1w1Ci1MQTk+NzZEQiRiZiRLbXNrNklZRjdXQitzS245Ukw+Mmw1aEpnRiJxUG5UZ0FDPE9AdWtTYXJJbjUnTUJFLGwtTAotalw6S0Y/RDInNUZYVmRRWTA+PVZCTTdoTV0yPD4oIzxTMmwsRi1HPjVlWy9xJGNFbV1YPiFxZl1tJ1Z0alJhTFUKLTErIi08ZmRxSmBgJUE+K1ZBQU5SZ1g2V0FhTl9QUjlCK3JiOUJVTTpySjgjOTVXMm1qYkJZNmUmN3FsbWo0cCxqCi1LIS4/TDpeZlQqXFQkPUFXdGprX2BDZmhHVSleaSldKFVuMEZzZU5BSFhzMz1Sbz88XTJNTW9ebE48Oy4wXztzNAotOSU0ZC8qMV1HZTkpcG9JWENFVVtGRSpQRlBXWF4pSU4nMFpVYmNDOEo6SX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQyNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0MjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDM0IDAgUiAKLS9Db250ZW50cyAxNDMzIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQzMiAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDI3IDAgb2JqCi08PCAKLS9EIFsgMTQyNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MjggMCBvYmoKLTw8IAotL0QgWyAxNDI2IDAgUiAvWFlaIG51bGwgODQ2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDI5IDAgb2JqCi08PCAKLS9EIFsgMTQyNiAwIFIgL1hZWiBudWxsIDcwMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQzMCAwIG9iagotPDwgCi0vRCBbIDE0MjYgMCBSIC9YWVogbnVsbCA1NjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MzEgMCBvYmoKLTw8IAotL0QgWyAxNDI2IDAgUiAvWFlaIG51bGwgMzYxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDMyIDAgb2JqCi08PCAKLS9QIDE0MjYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNDIzIDAgUiAKLS9OIDE0MzkgMCBSIAotPj4gCi1lbmRvYmoKLTE0MzMgMCBvYmoKLTw8IC9MZW5ndGggMzE2NyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1VwM04xZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiJSVXIuJSg1VGdPZDkqOmY0I0oxTmMpMVk4WWdSREZlY1oxRWFnZjMpMW1uIkFvLSlXOgotN0FKOkllQ1xSYk90aFhdIy9jcDRmUE84Mjd0bV09RTU1bFotQSdsSC5LcSE6QS8jTDM4NzMsNyF0cDhGLnE4aU0KLTNLNEdkO0FiL2k1ZyQzZ2l0MF1xTis4TUcvZ0ZmMmNHYmhoR2o1aExfXm1cVyVZSyFrMHRMLFRjNEVEaFc5IUtdCi1aK0kxKyVCQFdWKk8pXklmWi1HblAuaV0pIiMvUmklPi9vbig1M3NyVyROYktDQWVQYmJSMy1vIlYvL00vZDJmXgotVWMxbD9JIS1jcTZWLVxYMC1RXm0nU2Y+XSQ1Z0hsNlxzZzVMaVQ0LyMtWXI6cldXQ3JCVUMtPy8xKkg8MCQlM1UKLS8nQShCMTYycT9pOkRaPzknVjJUNiNeQzJXY1VjczFRNjVgPjRHTFRbNGo+PFU3YkxgPDBdPTw5IkpxI14scT9CCi0jaUhMdV9CPXBfTVNeZFUrYzUydE4xPmdjNk07W1lqL0QqIyJuSUpoMFRDWDFYdGJvZ1dlX0o+JE1xV1M6dV5RdQotb1sqNnQ1OycpPkQ0LCQ/KDZ0azROP10xSzhERSpCQkdcW0BFNlVrVFgxSiM+PmtKQSI3NyVDOy4qImRMOWtsRzsKLWQ/WU0/TjQkPz8/LGYwSipFbG5TQ1dRKlVLOkVTSFhLRiVDcEY4c2ouI1M7J19EOyFiOFdtUk02TzZXbSdGTT4hCi1lMmUpQm5FO1dlSz9QdEMiVW5ZJSYuU2YsMCs8aiMoczRrOEBzSDYmXztjZlptOW9jSTBiJEwzb0thJ1dNayJaSAotMHVIYlAmMjwsbW0lNGVCU0FjR2cvOygsUUEncjRwLmElPitbTiZRWlE9aD8tMGwxMjZLR3EzUTE1bV44bDhXVUQKLTdZYCwyIitcNkVsdUkybCo2Mk0uQixcQFxvISM1ISVePV9HVm5rb0EpP2cuYmtxI2JtWktGVHVjZmVvPFZKMyEzCi0xXnBdWSo5dWZhX21KaG5jTkQuRzgjJVxqZy1xJiJSQVdMcSxaSGY3IjBUMElhMnFIM2wvcTlQa1NGQCc6N242UwotXi04MTM7ZzgqUF1NcF4xQmBLV15fS0ZkSE5JIlk9O3RJNVE0Q2ddakU1XixHUDYyOCglbVQtSDg3Pzk8NWYmVSMKLSdFbj03UyY3Z1lGZz0wPkxsRE0jSmpWaUozIzM8TkcjN0hHNm4iJlkyWmdkP01WKUIwTzIpVm9FZyRBLzM9SCpcCi1YSmhIRWk1PGwjRCtdU1ooNSI7WXJXa1FVOThqMTpXSjNQOGhsSkFaTzZFU2w1XVQwSE4hQlBwYVAldC9lLUguKQotRUA9UDNvN2w8bzskMkhZSydqcXEsR1QycD5CMjtqRGRZJVc4L1VuOz5Xa1owVW04YmE1VDMhRihDKUNDJURsVEIKLTwkRTtDSSMzLTonMzFSUGcpS1U6I0koViVVTTErIzlDLi9QSjpnNik0VjZbQCFdc2hmI3JTczhnIlJgQDkkKEwnCi1eXTU6QzwlTEVhVj0kYm5LI282RzguQ0FPJ1kkL0JnPmBPcFNwOTUwM1opOFtsKE9nZyJpL2IvJ2JGUjZWO3BaJQotWEsiSVctWURMOWciZWFRTCFHR0kkSW4qR2FbcUksVVM0QCk6U2FzbyVBQiYqJ3Q1SipfY3AlaGNgVCwxMURVbSsKLSdbW0IrXWIpT05UL0BPc0RlW1JkOixkQGVUY3VnMi5qXShVVSovVVdpMkNbL0JRNWpcNWhRdDYkVlBnSSxuVl51Ci1pWV9pRjkrQjRfKVBTQUJSWStdYiVkYGI9VzU/N1MhWjNFa0Y9a0huNkArVS4jc0ZnK0cqRWFlZF04a2ElNyFmawotZ1RYXzU9JyJtKjNwYzJuOkJxLCMuK0lIOS9sRikmTDM9TXAuOkZOPydWWWUlOWRcIlRJNkU/RnBSSk4/JTNlcyQKLTVYQHByZG9hKFJmOzFOY2A7NilMV2RwSz4jXHNpJT9vYSEtX18iWHRTdCUwOjNQb0FxLlRuTHA0dUhSXlQyWTAhCi1oX0UnKy1rOCRbVWs6dSEubk4qQWw+IS06XkpjJj4may9bYDtQXUpkPUE9JFglYHBsP15AWSN1VV1cUTUkOnRQdQotVyRLZkJBMSIvWW5FMmtFOy5MXXA9YyplbjNCITMpK0NvIzgzNjFPY19VXGknQi4sRD9GKWYrOSN1XztMYC9tcVIKLThabmUjS11eRzUxaG5xJzI6YWc4LSMqUjRHPyc2YmEoXVpMP1BHU0VXWVAuSyw5I2J1QzcjLDsqP1BNWS1xYEV1Ci05TzkuJ15hKW81KiVlTThZcTdFJStQLCJiTmxzY3NfKkotcUUuWztFK0IyS0I/RlNTLFk0blVNLm5EVW4tJWYsMwotJm5uJVFbN1wrY2RqbmBEIjFWYk0sY3JGTVAuJmErZ0lpaTEhWUhISlg7cUQ7MmImXFNuQ0k1PTJxWE5jQlRQaTAKLTo7SEZDJWA/cWpMJGk+MGFHUEk1U0dDKE9OdWNKQWhBcUltQSUjISszXzxKX2NYTVNXQj8uZSlaa0JTXihAWkdUCi1rIWI+KllqUjNCJzAwRE9TaCFIRlcrK29CTz1OJmkyUHVeX0ZJZzlKV1k8cVFcIS1PT1AzWG89RylYPnMhJ3JVNQotSF8iSW1rMVpXXyNnT11yZlFNL2BRPTpdNUFaRz8kWGp0MnUyS0Y6IVRQXiRuLTdwRylWWCYhV2tVOT9yVls5MEIKLUFQVUE6QXJJOl0lZDlmVW5uKmMlW2tgNGxQcEgyNyRBXkdta09wJ2tQM2kiOEA1Mi81PFoiRz5aPkdnYTdPR1pCCi1UMm1EcShiXW88TVRPJ19eKG5rais1WUtXPj9OIW84cDw7aGZJPlJeXWlWdGtHYV4lMkZVVWdyLUFSXHNmRnFxLAotaEkyYW5QX1cvTVQ/SUxJQ0woYkA4PiRvMSdpJFhlVV9dbS9DKDNIbzAqVWZUMl9CYGpQN2Fcc1owNHRYYmZyOksKLTthXFhRS28yZzFIRFxkaVEkWThPXzNOWE5OKkVfaUFQJiRsOkUqZ0JZQkxLXzZZXjVuODRhbVIjbE1SRWRoTictCi1AKVxsWzokSzclPUpBOj0hNnM1aSkrZk8yXCUtYWIoZiVVbENzQVdWWzVSdF5DcG5SVCZfSiRPaVkqQjJeSTcuJgotUDYuRDEnU0E2ZTckUDlGbDA+VWBQK0VqbThkUyhnVmQ8IW5wIy9kbHFZWzpFJmhDM3AzZUtaMCNBIzxWaytgVzIKLWg2YFkxU2ZYRXNeZ0dmUTxdKFVsMFpAXGY9SF42c0wkYDR1ImJhLHIxPDxUa1dGaTcpVT0qK20iUUphbVM/O3VhCi1cQjcvIj9sT1o9WS5uNVJRRU5kT01GaGI/SyM1N04rMU0/WV5fP2pzUkhtcG1Za1RgaGlOSDhMXjQmQHAlQDcrUgotUC1BKy8zP1FyXW06ZC4xbiVgRmlsOSJuPWVUIShwZztUJms1SEkhPmopVF9gYih0MWhBXD5valRBKk9DITFsbW4KLWIiNz9BJTBrW2NBOSpVanFGL08lIUsvTSRpOEYlSCtJOGI9PilhNltrLyhxRSVWVFY8ZDZxMDZMNTdTLGkhdVx0Ci1ob2lsdEJTdSMsTmJISSZiS3BsP0tOUz8hbENcUWlZMFIpc1VRMVtLP25KNVlxclUhTEIwWnJma15ZKU5rUVpZJAotTFslKlNBSSIiYXFhdXFaT0c1PkBGVTVsI1Qzc3FrI3VdSWFZYHFxUDY0ZmZQTmJWbklcQiUlYzFMTStEKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE0MzQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNDM1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzkzIDAgUiAKLS9SZXNvdXJjZXMgMTQ0MSAwIFIgCi0vQ29udGVudHMgMTQ0MCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE0MzkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTQzNiAwIG9iagotPDwgCi0vRCBbIDE0MzUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDM3IDAgb2JqCi08PCAKLS9EIFsgMTQzNSAwIFIgL1hZWiBudWxsIDQ5MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQzOCAwIG9iagotPDwgCi0vRCBbIDE0MzUgMCBSIC9YWVogbnVsbCAzNzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0MzkgMCBvYmoKLTw8IAotL1AgMTQzNSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0MzIgMCBSIAotL04gMTQ0OCAwIFIgCi0+PiAKLWVuZG9iagotMTQ0MCAwIG9iagotPDwgL0xlbmd0aCAyODMwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83VXBjXjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbbEw7OEsmMSonQjVqTVw8JFpXYVhgciVqbSk/QV87OWspQl5rbSFNYShuPlwuXl8KLTd1IjouW2MjZEkuRUovbChlZEMyJCZaXCs0KXFMWVE7aW5QJEFPMF1LJ05SV2ZyOzQnRTkoXzFbcDA/PWRoLmhjCi0vaTw3WmVCOjpeQTIqI21qNVQkSmFDdSFNKDwkPVZqRDhXajNoczQ1MkBZMztsQ1AkZitAJWxFXyNoQDlOTUNhPgotM2t1JipeK2JTKV51UTJhK2kkcT5OKzhnSiVFI0ZGZ2M+bXNhP108VSxCMXMyLWBZcyomLl4iNTcrX3NkUi02Nj4KLU8iYGdcLWRecDooNTNzclckTyg0WlApYDFDXDBaRzBIbCk0KjZKU1w6cjlJK0BeclRtIilxTSElMWtUOylUTGZWCi1iMHJsZnFbPkRMRSwpdGZZamA+QG8hU2xOOixJb0xqO14rcGNEMjQ2LnIsTm0xNjJNU2F1RGFCJyMocjdKUShcSgotInApcDojLz0oWmo6RyMwMWE8PUIkR2FgVzRRLTooIzBfVnVjbk5OQSE2MjdYVHBUWFBgKTc6NVhqLUcncEQ/NC4KLVBVSjtgQSFsUSYuZ11JPSxIMzw9ZlMwVEdhRE10XS8tbyc1JTw2KEZUKjo5U1suXkwxSnUkMnM7NUEmO2FVPmJXCi0pTVxVJj46M1taUDIsdGgiKSxSZTd0Wz8tMUlvP1lxLU9VNktNaT9qT19FPCJOOipoODUuW0phMzh0KUQodF1YXgotSzNlNy9OJ2lkSzF0UlclWmsqVEdMZiwuR1gsXDlYaWNYMGJFJGFJWURjXS1yRl9iIl5APz44NTFKWW9sTCtSMisKLVteXVZqQlhlYGFKUEU3VlhXX1kjRCowPlVWImNEZ1NMRkdzJkw5SXROOy9MZ2ZIa2QsKyVxV2hFNkw9T01VaEhKCi0lZFw9SzEqcEJIPFlhLl1PTlBQJDZgYCZEI2suMWVAN1xnOUFZOmVybEJlNl9taiQnS0JCcWBwKEhxSixXR14xLQotaEZKRTpARGZdbz5qUDI2LidYcVljWlgkMU9QVyZJR2M4SWpDIWNoTjBbUl5OYjdpNCtgRGlxWEU8K2lSTlkhMVkKLTc1P1FBNiprREM/WF9XMCtfWSkoPXR0KSwlI2dxZWs3cUJPQ14pWSpQXE9iW0c3cl1pMkdmXjBGI0F1JylgMz8yCi1hTyJkZ1hxJHIkb2lUdV81bChdPzEyPz9sWTwxNCNdbWhpb1UwVUdiaz1PRjttUWBkJDZea2ZFJ0Y4U2BDIWQkcAotMFthJVpQLiEkX1hcZ1E5Q2tlNDtlTmk/KyhVQ0YjP1wrWVU+T0JyZFw0PXUyPmBxbzVOPnJjUzxnOG0scUxEV1UKLSZIM2Q1M3InWVwlPDk9J11xNllKcWIqLSdJTHNIMUsxRy4zT2hzLyhWLztjZ25Cc3FYYiVzaChPWzExdTw6RCQoCi09OUstU25jbmRgKHRhKE5ART9eSjJaaTlUXzNjaFptUFlWJXBoXXFzUFBmJ3NCWC5iUCxsKkknO0JlTTJqSTxOTAotOCFkQDkjWG8lYjcxZE5dNlo/SENXU2VTZlViSkFMYi45cEIiUlZeTWpEaTg3KCdeXGlUY0UmUVVWVy1jPyVFMD0KLVotWWJrJl0zISw2KC0uQTxFYW4iIjBAJC9gIjMsXGhQSiskRGgvTiI1ZmJwaCladD1uJSQ8clpRKzc7RCxYVkhmCi07Kyo3Vmk5TSlwVSlRSkJyJlE+QjhwK04nYnUpbUwnS2cpNidyQV1pLSItIVQxXiwuRVVOZUlCLVtlUSwjKW1zMgotVUZATjRURyJjIjNaQ0gxbU81OFRdcGo7cXBeKmxEUiYoQiFLZVRHOjZELW1VQV8kMmJpKzU0NVlVKWA+LXAhU1gKLTVsMk10bWpTYywnRVUzaDAjS09MU3ROWkFfZEhiP18jWnI0N1FObyYmbSVUYEA3YzIvMzkqUWlPcG9SSVByXEJtCi1RbWhRPlVxbztvQ0VeODthcDJWZy1MPlxDXnQ9USheZmg8dG9gMVhfMGwtckpJYzhXKkRjJGhCJjE4XzFsLCpkOQotO2xaKzZcZSokVFRpOENPZFkrNVFSQGJtaV9pJFQoRys2I1piYGxKUCQkYUtrPiJDKXAvbk5lU00hQUdQNzU0I0AKLUFVO2cpK1opLVFVdFs5PV9mOTdoXjUlSyMiTVVFIT9DO0hUJ01RVz1MUVY0NiUySjhTIzM9IV9fNzI8KiUjdGYvCi09UGs/PC44bDBfXUdmJ29VLyl0alFCPFk7SCxlUT1IcTlDQCwvcExxKjg1JSJVc2h0RWFcV1pVbjU5WipnXV5wJwotaEtePyUmbS5oMUttIWpsalshTT9AZm9CLllVdVkvZyFyRmFKSF1ZImw1Mk9FXShZO2NccDRhSzhhIUlsXUddSDoKLSxuLFQvUSkxL0FGVy5oITtXNTQkV2BUVS9sYEBPJVEvWDQ3cEhccHQhWkEoMkU1U2UtYj8oYDRncEVhbW50IT4qCi08MlUlIiMlNTZTVzwxQDhKU1JjSDF0SGhWKiNNZVVVUU01PUxtaXRfPlxsJT5FZDNtMmwuXSNSNzU4YUZaKmxkcQotIXBONW1fa1Q5dE46ZlhnaSkiai0vaFAmX1dtZDhpaiVFbVUoPCdxNkQsK1FxOU1hIyZGbWQxKztIMj1vWHQ8Zz4KLUE/SzdwYmRlRiVxbV4walEoViR1PEdtYl0qMlpWPi4wQy0hRjRYZWheczpVPWZPM1dJSzsiM0k9ZTRNUDNUWU9PCi1tKV1ZWlViZGFVa3BxQ01APDxaVFtQbTdTQT9VdVtNRiJhNVwpZjVwKSdvSD4vI3ArNyQiVztfIWRgJmteRyxyRwotW2BMLGRZK29nK3EmYzk+ST1cPUc+ayInPyJBJlciVjdtKTk3Jz9NNFExOmlZUCExU2BuSCxsUitIJ0E6JUNwQVgKLTJkTE1cXmVpNEhcWls+REJnXSEtMjJGL0xZIlo+VD1VMV5AO3VCKDJHJFpWTmNCJDBxPChnNU8kK3FeOjBOW25iCi03azc+PztPOFNFMlxnNWNOQSJNJk5IQE9sZkk1QSJmIjksKUdmQU51OVdzN2E2JjE+dCksTU1hPC1Lb2VdYk9VOQotUSEsUV9CXVkuOmU5PFNqYSEiIUNKWT9qMyJjRW8+M2pPcik9LC9hbTEkWjQ4P0UqTSE8V11hXmhPUzBlPWImOVkKLUtOZiJhZVZFPkJbZkZMLWZYa1pqQWApNnRFVXNCW1h1SlZYIldWSFddSSxxbUBgLVUoXUBAXlBHMGVGWGI0Ikx1Ci1yQjxuJSo1RlFUTDxYc0AocCZsV2JGLG11SW1LU1pMK2xqTEMxRG1xY19xTnBccTUrXEB1YEw8XiwqIyhiUjQ3SQotSkg7VU5fPXNRL2BKV1EuL0pIYlQpY2xiNU9qSVRTcl5JcDgiSTRiVFpRRy9YOz0nV0ozITJcV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQ0MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0NDIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDUwIDAgUiAKLS9Db250ZW50cyAxNDQ5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQ0OCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDQzIDAgb2JqCi08PCAKLS9EIFsgMTQ0MiAwIFIgL1hZWiBudWxsIDgwOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ0NCAwIG9iagotPDwgCi0vRCBbIDE0NDIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDQ1IDAgb2JqCi08PCAKLS9EIFsgMTQ0MiAwIFIgL1hZWiBudWxsIDc5MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ0NiAwIG9iagotPDwgCi0vRCBbIDE0NDIgMCBSIC9YWVogbnVsbCA2ODMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NDcgMCBvYmoKLTw8IAotL0QgWyAxNDQyIDAgUiAvWFlaIG51bGwgMjM0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDQ4IDAgb2JqCi08PCAKLS9QIDE0NDIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNDM5IDAgUiAKLS9OIDE0NTUgMCBSIAotPj4gCi1lbmRvYmoKLTE0NDkgMCBvYmoKLTw8IC9MZW5ndGggMzM2NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1VxPm4xZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1stbz9SI0U0JTNKWkw4X2RUcihXPypYSyRcS3RGVWciPEhOITEnST1kMjBtM2gxbUsmXHQwUwotR3JNOjAqXFNuLjVdc3I1TjhiM0VHZkZZXkhUXDAoKToxVyolJjQvYzM8VEVDMkIqKlguVFdYT0BwbV8+JVNVaWoKLSJVMl5CO0FrNUo1XzldKVRyOmZDJUhBU3MiR0A7cWcsS05xOSIkZ0AuZjpoTU1Mbl9FKEgsXi1wOmlfR1pOQj9rCi1XciE6QDJNNllTJ0ZqKDZfRClMUGE/VmhnMEpJI1VeWD9OTjI5QmlSLDlFb2dFdEdhNTBuYShoTEZRY1tuZ1sxbgotVTVGVTY/dGJST1kpJWIpJT4sZU9xKCU/cFpCYyInVFpUMklXc1ZsZ1glRGVHLyZMYChqdFtEK1xsS2YqVG0zKFcKLTk8akE7WlJNaGdMb0VASVUrQDVmTXQ8PiEsSmVuOChjZl42aClKLy5UWV82aWFqQTNuY1pBSFszWHRcXkk0XDgsCi0qPSEnQWUzK0k2ZEJuNyxRLG1sN2M4OCpGcHNNKD4vOUMmWl43Yltfblt0V0FgcnVycE4rPUNBOEd1JCJUaUVkQwotcF5GRTRYSVk/ZzhGWyU/ITxBWWYlQU8zXixlUyIzOnJVKlk8Kj1MZ0M8UVFaPiNtMUNDVEBJOUxhRUZpXUpCPG0KLSF0NSNdWCElSl1tZ1hucyJgaCQyRm9jOiIkT3NISWdRcUpRRTZZKEVrPDA7VVMoXVhaIUQlKUgiVyhiKC5MY0pQCi08aEAoLTFwbS4/YlUrMXFBUUdxOTNNZzUxYmtKaClTUWRTX19KJUBQZlY+JHNyc0k8PTlebEBTIS87NUJAMDUiQgotQSwtUiUoXj4hMWBIYXRrWGNLKzQyUGMxRmApN1BmR2ZhJ1lRIkNKa0ZCS0NobiNRZy83MWAoP1g8aEFkYkJgNVIKLT1OOWp1PU9pVCglS2hAUTNhNEI1NiNRJHRfQEUhcFVERV5JZytrR2sxIk9nZmpUTE1rbEVJQzRXc2kpaD8lUGJXCi1yLCghOCEmN0lTIl5hRGdSRigsRTRZai84VFpFOVFPP0RrbGBebzxRX18qWm87JDQ+YU1TTkcuViIhZCgtOHRwSQotNlwqJC5ORk43PyJgVCJyb0FMLjAjRmpubCpHaStgQGRrV08pOFFsXTU7NWMnRVwtNCkuKCU/PVA2b1FHVGguTCUKLVBqJFE1MTtzXigoYyZHSy5OQi02O1wiQi8zPG82RzYoYztjOVcmYiYhV1pzRGVGQ2RYTksoNStZWVlzOTQ2Sj9DCi1cRjEsJiojbTlsRkMtRi0wWSVsO191bGJxQm9MUm8yITFJY0s2cEspYTgtVDNHW1Ixc1MuZ0xPL11CRlttJHR0dAotRGBhWVRqSENxOUskYyU6PGZlb2csKktERCtqIi8pOT0wQzpmOC1pI15gWmFdV0ZSOUliVCMwJl5MdXU3LF9mLlIKLTkjOHN1O3BXaChScUxyUmRGbHIvSkNObSpLPHU8TUsiKTohKCQ6cmFVYC4uP2hJKS1vVWBKUWtfTjw2LzpsJzdYCi0jSDFbTTklcz1uVyRNQUg8WHV1Q19CNGBxVztbI2U+ZlhwMmYuZUUsKj5McjlGTyRsO0NrbFtITC1pPzNPYEppYAotQ24uKyVCPi9TXlMrVCU+VGtLJjxANTpZTT5RbEgqWEpEYTpqRmBbVzo0V2lVVFFDaDhoLT9ZJVRzdWUyZSVGKHQKLUE5cF8tbmxbXy4hWmZYR09cZXRDOS8ra2lNSTAjIkxbOy11MG5AMypSVE5nKl8zR0FERSs1WE81VmM7PC4mRTZoCi1pMmMjaEUnWVhyR1hHOzQoc0FtaUstOShnIiRnN2piUildJC9CTis2VEtqITwiPVJzamJrXFpOPGFzN04vSSMwbgotKVpwLzo0KFkqYTAkVD9jX0lGXS1pWCtJQUJ1aShnaTY0dWpAaUBHZmV0U2JoT3JhVyxEYTk0TU1VKlszMmlkRmQKLTEoVFwnOmtCTW1OTm1uJGUyV29FIkFfR05YVlZLV0o+OSknMS5HdVlxa20tLEstXSRqUFMuLW8lUzgnKlshSDM3Ci04Q0QlSCclU1FnPixhVmxLaWBfWk9bTD1iZ2xuZVVZQGJpTTRMMmIrJFVRKkpMdDNqP2AxbWI7ITxNIzpiU0BaZgotRzhnMT9XXCRBUiFGM2VBL00qJGEyalNWIj5LQWY0MCQxR1RRKiU/I1opTlg5azNcKSo6OVpPViJlYmBha11FOl4KLVc4JmMpbEhGaltKTyNQS2pqIjAmRFdKRXFPKGQ3YGYvMCErSmZJciduMT9UPGpJQyczIiQyXz9bYis/bkVEQyRRCi1cPCltO20iMGJHRGxVS1k8T1xOWFtfZGg/ZzQzbEkmVlZmMVFPWGxiRWZzclVbTHRLMTk3M2tUb3RLZGVEVW8wLAotIyJyJldfYVIsM2k1Si5vKjgqLlAhUjJCJTBOb0cwWiVpTF9lLlBTI1RIJlQvQyddQmQzRENYKyhHVF9SJURmaEAKLUxIcUNqNlMtWltQSyZONCUhKF4+aSxmOzczJkY+WjFCbjRJJGpMOyhcWWNzWkZJT19kWU9sY1BWIyteYk1QNHErCi04XjRcTHFvWUYrL2BVLmBDNFFVTVYvU2AvI0pCXUttSCs2KC9ZailrT09yNGFAOExOaG5xW2FtK1BlYTVIdWs1OQotTlxlXEpWXTRdRUdFNmJBay9eUSJOKW5YaVRNSG1WMk9Sbk5BanJKPV9MPVlpM1BvXnNndSFbSE5UW3VkLCsySU0KLUYqRFBeW19ATjEtVGVYTkZsYisjXHMwRmFlTCZxP2lRSDdZVm1kTXRcTEROIUlYXC0vbFBJRlpjSHQ6MjI5UmZsCi08Nk50NUdHZUhHZWYhRixMK3E5YStgOSxqTFwxS2Y0YU1RITEkTHJeRlkrdCNQLls6MCI/bEtQNUFhcTdjQzMmNwotZ1o4dFgtUlJyYyIuJioiOVJjXWtiTVIubWMxQjgpQW44UitYPCdgRVNkZ0BTMDg4dDknOlVXaWhKMjw3N3FJVWMKLTJhdXQsYkhgVlA+a010OTEzOzpfK1E3cWZtV1wnTFxbYC1TbEk/cCVadXVaNUFVPWwkYi9tO11tUF1NI005Uk1ACi1OIVl1XlJkSDpYPicvVCJmPjRTWzNsQWJNUkROZ24jUzsiZjEhKHFEOFMpWkdxU3UiajRfb1NBN0c4P183OnI4bQotK2dRX086cCVRakNbNCReVi85TmMpdGdmb0QzTC0oLDVgL0dTRGxxTWxVOkIjOWguPyk5KDxDVkQucltjY08ra3AKLW1SLj47Jmw5aSNLbVFdKCJpNj1IYnEydCVaYGAnIXFURCVhRWpzW0k+Y2tnamJDW2RfMW9EZVIlPjtwOzQrYFE3Ci0lKFVfYTQ6PGxEMD80TiJTMjBcbUtdJkNTXGFyWSZtR2hYIjVGJkxAVUQyLVshKSQrWjAnODNrWiRHdUVRNVNEbgotMkUzby1KZD82YzdSNCZoMTAyJjNqNGNaRSYzM0VyJDAiLSpDNSVGbjJCVjssZGIoKkEuaiQuWEkpWTZPSkRCdGAKLVNsVmY4ImZTSCFMXVVnTiMsayZBJSY2Ri1VNC5raGQnMl9LWlxkbU9LY3AqTUxdbyQxcl40aCklRlI/bSlEblYiCi1HQGI1cjlsPSpLLFk6QUIiNj9pRk86R2ZPOm0tT1JEMy9MI2JnbjpXO0xNIWw/OjY6MSI6NFREXVQ0V3EjZypYWgota1ZjKlkqJUUoPzA8QD5naV1RTDZCVE46KTQoK29rSj1bKlU1UjU5KGA/TjcmV0ZATydecCY+YyNMTFtQakEnYC4KLUY6U14mNXBHVCkwWnNtQ0tPalQoJUI5XjRfISVGVkJaXEVPJUtpWz5qZ3UhRkkqKGxCO1EnQURFPVBcRSovJ0VICi0tO15daU83V2FvUkt0JSUjY3NWdWE+QUJ1JmtyW0c3WSM7KS1qNEAmMktPTUYjVllIamFpSzVjKjlEbkBwZ1VFMAotYSpMUCI4cjpIdXFQM3RcazNpSWFRSmE5WkAmKDZRLl44J1IjbmcpYCNjOy84MDV1TmkzYC0pRjFMTStEKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE0NTAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNDUxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxMzkzIDAgUiAKLS9SZXNvdXJjZXMgMTQ1NyAwIFIgCi0vQ29udGVudHMgMTQ1NiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE0NTUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTQ1MiAwIG9iagotPDwgCi0vRCBbIDE0NTEgMCBSIC9YWVogbnVsbCAyNjEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NTMgMCBvYmoKLTw8IAotL0QgWyAxNDUxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ1NCAwIG9iagotPDwgCi0vRCBbIDE0NTEgMCBSIC9YWVogbnVsbCA4NTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NTUgMCBvYmoKLTw8IAotL1AgMTQ1MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0NDggMCBSIAotL04gMTQ2MyAwIFIgCi0+PiAKLWVuZG9iagotMTQ1NiAwIG9iagotPDwgL0xlbmd0aCAyMjQ1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83VXFvKTFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy1vP1IjRTQmJ29FRUNfZFRyKFc/KWxhTCcmb2FiU2pcIj0zVypUPWdaJV0xNUhFUTtpbWVhCi0zIyRVUXJZJGBqbHRRJWRgPjAsKlstL1ZvQHVWZksmWzlFQ041S28kYFg2MVpMKSNEV19yQztOLDdGJyFOSzwsdAotWD1IUj1mKWU0YTZuQzlWaidsJzA0T0BKNi9yRzZZPzVCYGozXDgoS2FlUSdzTlBQVmMyblhcQWklVjRqRSdZTSQKLV9nKFNgTEVWYVVgSm02YGs1MTIhT08/MFVZN2VXMjU0ISgjL2dGZjMtOGw7ZCI9dUFrQC90RV5gMlpAO1pSTVBcCi1FaUM1UjNaUCovVyZwVF8zWycjZSlDPmNoN2BJT00uKlcjWzBGUy4/LXBxQ2EoXyNdSFw/QEZxTHJxaE9LNiVDKAotWSxIU0tnSjJnYiFoME5gKG9KRCdQaXRAUktHN1AqMk5BPTs+VlhZV2dBRGdnTU9KOSpMcildTSwxRycvNXVDVUIKLW8nLlwuPEh0I2AjYm1FPitHYjA6Q18tYCRpKSpUVzY3Qj5YS3U2Vy8/QS9IalVgYk8wTkZ1R0UoLzotND1pIVlECi0sYEV0JTpLNWJORlhwTXMnPWFEZ04sY2BFKGxkUTRbZF0xImZday9NSkhRSmROZmA8YSY2VjtmLzI5XzJedWsxJAotVUV1T0hWUDlgVC1dKylEQ0U6biwoaiVBPEs0c0RBJWJGLU48bXAhI0pnZ3VsaENoW1MsSzMvTk4xazQzMkBaJSgKLTphKFg/PyZybzU9SjJSKWotVypmTlhURSo+dChdbDMjYzBOVTBzLTMkJGsqKVNtbHJJSjFiTTtqS0xRUEg4dEdqCi1XPl0/Ni1PPTBoV1poX1kyKkZiPlUvJVxbQ0BSJTkzaUpJTlJwbFtCST50WGYhX0JPOCMxbDltM1NmbjVFW0Q1PwotJkVMa0IrVFU6UU4yZSkySjpuVT4rS15TRyEvTXMuUkM+LFEjWyxHKzpoLkRJYSFfLD5eci1kT1VFSkFpXlxwcUEKLSpUa2hcWThAXDFubE9AXUVgO3VpYHQyMmczKERxbGxvJmpySWo8JXE2JDY8RlhwTW43Y3QuPiVeYz9EcEFlIUY5Ci1AZ0wwUk5XVyhkZUg/TD9JSVsjQDRVOlYlQGk0JlxrJHBYLiY4JmhtP29hNWEoVi5AZj5VOyM3UzRnTykwKWJNSwotZCtWcGBVQVNCJEhvXGprVCI/IUYoNCojKUFOQjdDa1ozJ0Y+LTBzNzYncUFYaHRTPTYlPC5xI151LTRMUy4wMSkKLThXZ1tqUk0zUGc8KlAoQ1UqcCNlJVlISFhBcnRAcF9kTVtMNlwmX1E2JltsPDpuLzNSNkdqLygwSWY0Tj81LnVACi1aTnFeSz1wIkpaJyo8REskMSY3OlsmMWRrUGkrMzRpPTNHUWkvLyMxb09FaVxLWT0hY2o7cFY2P08yVjtgaE5OZwotJ1M7dVYlWWNyKCM+aj1pJVRHOHNPRkAtRiM3TGtcLylgXzYkbzklPjw2XiIzN0w9VktQSkpxWig1YzNJJDA+dD4KLUtsVF1sX1xqYS1rME9wIWo+bjZ0MyxhQWxPTFBHb1o1OzVBQVNnYyRROFsrMmBrcFlROyREWGYvdUNUQDZaWztzCi1MJFUpLkZ1XzE0cjRGXSlkVF1BJE9KNj1NMWgyKSY8KDVvSi50W1pKRkM5XTE5OjlyQlZNY0Y5XnNFb2xIK2pcWwotPkgyO2FAUyctWzJRLVkkNmpxdCVrcUhpNytWXzFcM3MhLDJLJFxIRl8qbS9jOFVWM3FCcGY/MT91cGU+J0dlcGEKLSVMWVhPKUh0PG1FJ11jJWUoK1Q7PUdxbSYvYHElQVE7aiEwQT1la2FNOmtHUXBhTGhvQFReJ05kN0hablJBRGAzCi1DVFdral9yZTNdLWA+ZUkiNGw+WkpQMDBkMWoqQGRrK1BAVWAlY20kNVdYWmNGS1FMNjE1QlhrI2d1a1wjQUkxNwotPDVINCUpRVA1Qzx1WycmZVNtQV47VF9vRzYsUUQlKGxBbzVATFw3O2JXM14wM2g3MkdNVT9BayRBZWQsOHRdUSEKLSozK1IxQEEqPEJfcUxtJ0VKbHJXVEs4aFpTREQlYTc3VG84Lk9EcjRRWCVVTjYiY3VTNmhBNTc8UVghTCZxcWI9Ci08Ml41Ullbb1AoITtpJmZLKzslWk5DZShJSnRkP2IlTyNqRS1FIjZpIycyIU0iI3NqVWtmYylaLi8mbEZOS1xnTgotLiJcPWxiJ0U7WWNvRD1AXFptKFojUW5PIiJmTSxXIyQoTSRBazZlQ20sXScwXnVRQWMjXC5aUyxyL01iTGZDRVAKLWE5TyNvXEltN1JAUztnalk7VEFMUSIibFwnTTVlRGlLPjMmJ1k1LTYjc0JlWXBxc1k0JjdLLFpmYWRhbTE+VUxYCi1HdElcbV1oXFkqZnFecl5jWnFvR2lLIVJiWm81W18hW19XPGAjRj5Fb1FAdTwzTERMbllhcl0kSVpUXWwwbE9UbQotOCRMYmgwc09rM0NdNl5GKClINy08TDE2NUNANUJmP11YXiRsK2s2PkhEb0g9SyFARDhfcjZrIydPLDxhXmhFZn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQ1NyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0NTggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDEzOTMgMCBSIAotL1Jlc291cmNlcyAxNDY1IDAgUiAKLS9Db250ZW50cyAxNDY0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQ2MyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDU5IDAgb2JqCi08PCAKLS9EIFsgMTQ1OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NjAgMCBvYmoKLTw8IAotL0QgWyAxNDU4IDAgUiAvWFlaIG51bGwgODE5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDYxIDAgb2JqCi08PCAKLS9EIFsgMTQ1OCAwIFIgL1hZWiBudWxsIDczNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ2MiAwIG9iagotPDwgCi0vRCBbIDE0NTggMCBSIC9YWVogbnVsbCA1NzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NjMgMCBvYmoKLTw8IAotL1AgMTQ1OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0NTUgMCBSIAotL04gMTQ3MSAwIFIgCi0+PiAKLWVuZG9iagotMTQ2NCAwIG9iagotPDwgL0xlbmd0aCAyNTE0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83WTsnYzFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy1vP1IjRTQmJ29FRUNfZFRyKFc/KlhLJUFyYFlVZ2M6dCkrNF1jSCwuZEAzTHBVKzFDO0ZPCi0+O1ZoXmEhMzxsYGF0RiUiVT9pZDZFciUkUkxDTjFJWyVpMSRtVjNlM0smR11bUHRWU1VNcW9KK1RUSUo0NiVOQAotMmA6KXRpJk5zSCdBYU4vLDNZc08uM1pqJFpvTGFBLGA9WWBZXSw2KmwpOiUwTi5cKF1wYiZUdTddLzUnUEQ0cj0KLWM8dE4rOCcnc1ooQnNvJ1U3JW1RVFs8J1VhamImTSJ0TUh0Iy1EbEtnOFVzQy8jTzYoRWRYW2kvUmFgTCozXyZPCi01VmBkJFgwMWZKRFwyOiYlViglMzBvW0M6MkIrZ1whbCIlMl9bK3VgJUhCOzwtKilwb18kV2hUT05KQEIhX2llWwotTlQ3KEszRFBkQkIwN1xjWVtlWT5Za2pQM2BwNjAnKEMjSC83KDRjXWU2aiZwVGtKJXNbbiZKXl5IMVNiIiZaOS8KLVRNXCxcIiI8XCglTUomZVVzJXQwQ19tPSJTQi5eMEA+Sk9ZLUI9J0IpUjRBPS1vMCctUG1tO0RpO2grblgmLGgjCi0mNHMrLGYoUWZObztpcGMiJio7PCVlanFxIzxQOWtfRSYpWTlAJWhsLmY3W1xXM0duWig+Lz1RJzNWUmBgR0szWAotT18mWDtYNl91LDowOzBdNWRSLzhRczpTYmlNKi1gXS9CQjxAJlVUOCU4YjgpKl42VC02J3UyOGQ0cTEvYFhGKHMKLWkmXStYX21OJDU6WjEmQ18qYjVMSjMuaUVxNGcuSihyVypXSzpsRnVpWTRAPEhPW0FwIk03MWpgRlc0XTtTcTcnCi1cazosUmw4czQsWylZNVFfUkdvWiItPmc/RDshKzxxSXVwMmdCTHU4ITl1TDBxYis3UDlxciE1UjA0NWo1Xz9wVgotX0FcPWxZcS9oPTdBMnUrXiEzVzRnYzxSLiUhVF8ka2NlZUFAbzxfPWtfTllsTCkjRGNwRixQXy46MUNaXTNEZigKLTNAZi8/alovP1JBL2IqI08/Z1xlTmY4XCY2SzBcbGMuMkM3QCNfSG5lY2puTkU3RmlEIzFWcSkmZjwpQVcrdXU2Ci1UbCE3OSMrNG5ZUiJaOFNcRiJSUCpKQzQzcGNyRWJiOENdPiQ/cWcuMUFRQzBwZWkuKDRCRkckU0VNKCJXYmlqdQotZTpfJXUrRDIrVmQkOUFVRSNZLnVdS2xra2lcYCpEKWs8bV84YUtfM0ssJ0VQTUhacipZR0lCYGpqNSJZUFBUZC4KLTlUNFQuPD0iLkArRjRIYiVNamkiNmYsSC5LdWpZaSxZLF5GJClnJUQ3X09xVDZrcCJNPVlHM0xfMnEmLUhqQzpxCi1vbmEjLic7JENcSlAycUAiW3BtOGBMKyhALCckSiEwUWtBW1VlakxQJCNWITcrOW5BSlg5cTg3MSdJa0ExcTRqZwotJytbV0w+RTsybDVOSGlRVEVtQiZuLmIlVFsibzMhJzQ+KElvZWhLbmxxbDBRbVFLYj80V29NUGwubm1DJT11L0gKLSJyNjhAVVNOJnMidGNbRVckbjpeSlFZKTlbK0NxI2ZHWys6QlFral4xXjdSaSkyW3M2JSZeJ2pRJ1w2Qj4yb3U7Ci05J0VMaykuPihda11nIV0uMlxWUkgzYmVTQzNLbUAoXj0iJmQlSDcxQyplUiciYSQmYSk8LHJRLkVTOzluQ10vPwotTGktRyE1c2xLNkFtI2IhZHRaZTQqLmUwJk1XKlVRTFtVMWpdQzovMVBwQGtKT280NWFhbTlJcG86aDRhISMtbFQKLUEvSjpuWnBGKFc4OmghQFRAV1VFLmwwRkY5ZEpIQmY9TGJlY09MOlMhOCY7ZWRpJ2ZRMitPVlc1XydBTWlfRTxmCi1HcDZ0ZEJvN2BkT0pVWlo0dCJEZ0pIWXVdMV5QLiNBOU11LztrXGBfW1BnOzxAXklAbi1xUj4nJjVfWDdiRGk5KwotV2lXXUoidENmdCpQKV5pamFOK0VAVEt0bUY7MTAiOW1bcV03N2UxPi1EX0NYUSVZQU49T0xEayVkLV4oIyFoPVkKLUNXc0FUWT06KWgxbEc8Q00uKFUsNjNwSDI0RydWS3BjVTg/UG5mImo8Tj8iJFUiK0lqPFhUJElYMlNYR24yMShkCi1WZisxPDhkSmUoMGRSa0k+LkUvLVpqZTFIWCIhP0FwV2MpcjNdPF48OT5uOnNWPFNhRmtFV15vZSdOZE0pcDJ1VAotcG0mSTUhYSc3QVxUU2IkMl4hclJJXTQwKlEnSiRIXS9QTEZPOytvLmYkdD05RSpTY11ZbVA6UnI6TyhjZl5XY2cKLWNObXAxOWhFR2gjVUtJa05paWdSVC4yMClCIzQzcVRxIiZKYCJkJ2JnW3IlXmw7KE5rSW1yRFA9MFM/am1aWlxSCi1qY0NyMz1EdFMkLjxpX0orYSolWTxDZXInLSl1UEJARyReajVjYi9NLU5kbmVvVE88PTpXYVhQP2U2R1wtVUVkVQotKmJTYFJlIXRQZUdVQ0kzYlNuNEpTOiRuWEtpYk9lUDAxbkZBJXNsNGNgMEdyUFVMPCIjLSwqdD8/Qi5RanBVXmgKLUdUR0JaLTIwNDUuSUpyQVEzQlBXMFI5LWswTXRsVG11azk2OCp0P0pcQEowZkBjUUI9biNlTF4odGZlO0tuak82Ci08O2lvV14yb3BwPSQsOSVUcTY+VGxfRjVbPWlnNHVIa2NARUsoKi0tOSJWX2BiRm41LEFfX0hxTkZeQnBoWWM5RQotJD0uNklrRD4obVtTMyRYYVwjIzkia3JBdDY4N3AsZi5pM3ArYipQOC1pJ0lxcVMoU2VuMmZJRmNTIUVpRjpVR1QKLT5mSFljTDhUW1FKKzxZbiZFU3M+TTNJISxhN1hGXzlkJUVTV1B0STEuM15iXTFKX1twOjVGSjwsQVVyQlhvTjEqIU1maH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQ2NSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0NjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE0NzQgMCBSIAotL1Jlc291cmNlcyAxNDczIDAgUiAKLS9Db250ZW50cyAxNDcyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQ3MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDY3IDAgb2JqCi08PCAKLS9EIFsgMTQ2NiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NjggMCBvYmoKLTw8IAotL0QgWyAxNDY2IDAgUiAvWFlaIG51bGwgNjI5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDY5IDAgb2JqCi08PCAKLS9EIFsgMTQ2NiAwIFIgL1hZWiBudWxsIDU0NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ3MCAwIG9iagotPDwgCi0vRCBbIDE0NjYgMCBSIC9YWVogbnVsbCAzMTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0NzEgMCBvYmoKLTw8IAotL1AgMTQ2NiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0NjMgMCBSIAotL04gMTQ3OCAwIFIgCi0+PiAKLWVuZG9iagotMTQ3MiAwIG9iagotPDwgL0xlbmd0aCAzMDU4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83WTtXczFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiw4SUJjWGVvImlDQT00SzElTCYlYi4vKkg6KFIyXVcjKm88M3U6Ci1ANV0tIl4sJVdTNVhRKSNjJWJnK1RMJWMwUXFUdWwvS1M0NllKSEcrV01aaUZIazZidHFuYG1RVVZPYClOWHQmUQotMHUhYS5SUVFNc15zYDBHTWw8UWgtREA0dSYzRE4hXGdgVEEnIyslT21uOzRqXXFZdGxwcUNbRmZfX3IjZ1wxV0cKLSZHdW4mXzZBOzIxO1wiMUxjNyNfVF5pWCFXLkxdLUwvQXE/IjF0UG1mJ2tpP0JZcHNjQHRLK1xZZmReWSslMz1xCi1LKlhlP1VEdChAbms+QXNiamxhMzI5aG1pUFNHam1FcEJzME1hMWEpVSpyPkBNTSkjOyI7XzlZWkJjc2JiQXEoVgotInNLQE1LZE1FKDphSFVIUyZAO2orYygoTyUmN1orMGRqZS5EQWlaZT5MPUQoJiFRNUwtIkNvOjE5NG9YaEBOWUoKLTc2Ky5DIW9jKlclaShhJjQzbCcvQVJAXGc4QGc4VzhrWSIpVG8+RXNoNiJrUmUyW11dZydxXkkvc3AnNDVfMkBjCi1nKytaKm8oI21tOEQrczYuSG90MyI5TTZORixtPCI9ckFQODtpcSY3K2k1ZUdYaVs1NDQxcDJUW1BlUj4+TSEnXgotJ1ssKUclRkJLMCdva1FdXjh1dSc3JiddQERDa10pOyQhQ0NDOFNHUVs/Iks3Ri5cViM2J3UxI1ojZC03MSNqImwKLStLVU9xJ2YsN2Vwb3ItPGdLJlhHVlpwUktBTzlzWkQtXChqR3MvW0ZMREtgXl5rRUVia3FJYmtlcTkySG1SVFYpCi1MJ2lgTyokRmxgVT9UN2dKbmJwTyIuYjo/S3FqNzRZUlNlNFFXUTBLYk9HZCZkbVQhS2wuUiRwRSRBNyIvL2o4ZAotb2IwZEFdMlBMQjp0Mi1XOSsjMFc3QENGMW02PCt0RWtwUjxlKjg4MDQ2UUw+ZGcxJGtcRDxhOVVTdWtIYUMsLk8KLVNJTT89YWskcnJTYCtocyhUJitCa0tkSGxBUWI9QlwvREluXDhvJG5QX1JBNCUpXERfJi1taEZlMXVnMlt1X0RPCi04M1FjRT9nPTpnYTU/WS46LG1BPiEqLWhFYj8vWVxqSVtJKmo8ZVRDYTBzKWNqNE11ViIuKXQpYlpoZWBNbGNdSgotUE1GKV1cNzV1IUtLNUc2JVo4Wk1xKyM3NFFRZGI5JlhqPE9CXkNHUFheZ2t0JFVNMypNT2s8bUFtQFhSLmQ7SjsKLUtKaypgOEc4TCliOmRTa0lsdTJXJSxbZUUiVUsrJVgpUG9tX10tLTREOz8vKVctQ3FrTWphZVs6J2ErbTFpPT4/Ci1cLSomXDBVK2lEXUgqQF4lIlorSUpjT1JGY09hVC4kQHNlOSJkWkpzbEosOTVFWTx0WTlhMDgzLCh1c3VmOkxQQgotJnJKNVEwJHJPcF9fcTtjOFgpOFcuZSosTW9PdDtiLlFOPUlddDBzZENAMEIzYC9PZDdqZF1eZmFOQmE2LChzJ1cKLTJHdVhFIVo+RUY3OlxHOWZcajRQcWQsTzsmZVRiPSY+RzI6T0FqRnI5Kj9xVCZBX0khQW9gXGc4alpUJWd0W2pRCi1DVFYjMWFMaUJiLjoiSWQqO1RsNGFyJzRrXTAlNmluMiYrOjxXZHBbTSpcZlhUczNhPSVtZkplIUUjSlFmZCRZcwotb0M/LEpkSkJoTWEiSmIvPUgkbW8xUFYiWCktYTBSJVciYGo6V1xTIS1bOVsnQEVuRVpXTjpJcEg6WEMjS201Pk8KLTZVSVhAcFF1Oz4wMUgnJypEQ0hVImdhZUJeLjRkVV8qbTBfOUpOIzQiMmE1KlhOR0YyW1smcjkuJ1ZNKThkcDlyCi0hM1YyK0hLJVZPTFRKXVYxUFFba19lRTQnOXNjczlCVHNCa29bZmNecDVSK2dhO2R1UERNVElbJj9Wb11UOzk6OQotLDE8YnJbVTtvRyIqcmdvalNmXSlrNlJgVmZIPnFZJ3VlPzZCaWpVLGlAcDNuPkteYCMvdUVJMlJQYGUyOkg+ZysKLSQxMmFgRXVDSSYuIj5AVl8/cVNoJkJHVDw8cy9VWkRkP2ViQFFMcygzVEViYTM9NXFvJ2JyIm0ja1tEIS1YPCpvCi1uZi8mPzBLOUs2YT1pb0BUXWEyZUUzLTJQPEIrYUM/NnNyVy07JERiWURWMEo1dEVqO1hdLVlPOm1fbXM4MkNKOwotPFYwPEFPcj9udElcOmNBRGpAUUZQMzoyNll1Ijl1PlsqNXVmNzYxWkFJcFglKEwuc2g+WmhSMSlKbW9iYlQxR14KLT0tUU9bMkdxQ1hVYCI7bk1zI3M+YCI6bVcwJlNMc18oa2lCZz5wNE1DdVNiT2MjYTI5OFIybHElJSNuKSFTajAxCi1OWS1DayVeJzZPY0xgN1BoQDkwJ2xaa3EnLyhKdFpvK2I/TDhjOjIuXEhGOEBubnRSSTwjOmY1KWFTLiojV0VfTgotS2xGZVxBTlBML15yYFEyNzRfcCdxbjY4RGRDUSIjK3JXZmVHKG0kQ0gsYGU9S2wwbzdYdTI1XFlCK0xpKi9pXi8KLVg5JEY0a3NdXDlxdGtzXixrWzhvO04tYzo/RW9EKlEqbVBEIyJxQ1MuVFVaNTBCS2lMbTBldV5CNCpCRiRYNnI+Ci1Lc0pjVD4tbEFXLy5BIWdcWk9HR0ZUVnQ3VjFQP2gjOV8vOEpyakJqNl5zQilGSyEqXWlkUEBwSk85akVhVlwrMwotblIoKS1KXiQubVotMl09VlE8V0Y5MV5cK1daKVVJTionT09UUmhlJDp1TldSJ0JGUEpKMld1JkNKUl9BWyciUUEKLTsuMDVrTW8xJ1JXWC02bDleLzU8UV0jdVAyQk89Tz5WcD0jJDs0RHVoMjorJ2IwUTcpI2c3P0ppaFBaWEZYcXBpCi1Tb2pPXmJtS1o7KTxUa0lNTyRSSXEwajg/JDE8VSZxSidRcE4zPXM8MlRkaTYwcjIxXGNLcWZDXGYvLkhDQlsjKgotUDYkSCtiZmMiMllpWyFNOTFJQSVLajNyK2siPj8wNUZ0ZWtwZyVFLipTJFglT21fNDllMzZEcW10LmpGRjZrbm0KLUtsOSpFVC1CWm8tK1Q8XTdBWEc7KzpPKkQvVmZTJ11FMFlZND5eSmhucT91TjxETitxZ3JqIShLQGI0P2BqMXVDCi1oKE49UW1BViYsSC8mMyRAR1JFXmcqQSQ7PWhFQ3NuZEspJyItQDwwMSNYXi8nS0Q5T2AhIyRSaGgnPio8aUlJYgotO2JrMFZyQDk/ZmRJaGtwTGFLZlpmbmguLS5gaHNzQTY5XElTR21VTVY6bEVjNVdbN0c2MEZddFdER1c4S0VGSloKLVVtajkwQkNTYT4hbjZzLmRDYFdLR0YtUmtgMFxNc0ddcVY+OVoiOicpLUhrYTQkRlNAJ1dNKzUqQmU9VD8zKHVqCi1WXGYhVlVYYmJsZyQlTjlAXFk2bT0+NEphUmFFLWNaKiQ6IytMVEFGTU1KTSZGNF1DUU84dSIsTEtHbDYhKkJhUwotPTpbWj8/SS8rKyxSLyI2cVoqYDY6WCdmZGE1MypAVTI3ZGctRGtnUCxkYjdaW11EbzhaM3FwQUNGV3RyaE8nLm0KLUNDT0gyJGY4VENfVG5vNStDWUJ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE0NzMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNDc0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTQ2NiAwIFIgMTQ3NSAwIFIgMTQ4MSAwIFIgMTQ4OCAwIFIgMTQ5NiAwIFIgMTUwNSAwIFIgMTUxMCAwIFIgMTUxNSAwIFIgCi0xNTIxIDAgUiAxNTI2IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xNDc1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTQ4MCAwIFIgCi0vQ29udGVudHMgMTQ3OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE0NzggMCBSIF0gCi0+PiAKLWVuZG9iagotMTQ3NiAwIG9iagotPDwgCi0vRCBbIDE0NzUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDc3IDAgb2JqCi08PCAKLS9EIFsgMTQ3NSAwIFIgL1hZWiBudWxsIDYzMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ3OCAwIG9iagotPDwgCi0vUCAxNDc1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTQ3MSAwIFIgCi0vTiAxNDg1IDAgUiAKLT4+IAotZW5kb2JqCi0xNDc5IDAgb2JqCi08PCAvTGVuZ3RoIDE4NjkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdZPDMuMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiKWA5R2ozTjVDQSZGLCksQDp0Vy83S1ZQIWN0UDImUjE4PVgmWzlEI18zaU4mbzkiRmkKLT9TZSpGS3UkOTdgYztVdE5UTUhfRSlVbjdNZjZLZGpcTjJMXTw7JWRuaVhlY0hNK3RILyZfIUIwOjo4Ll0yJUQhCi0mLl07V2w3KXM1ciQ7QTA6TydUOV1hbiZwIVBUKS5rbUpvdENiWkFhMCpGPzw2a0RJTihXPFAiK1RPaT1iWVkqKAotQDcyPVVgLklkVyZBXHIoKVxdc1U5UkBrdUVYW15ANXFsUFlxRjl1LDVXcVZQOTheKFwtcVlcOitYajlTKWFBbW0KLUNgPWc0VS0sbjMsMW9eQSUwSikrJi5ISVRoIW0pOUVgVTNhK2MoKE80NmxVYDJaczVfSEVFL2AsbTRiaDtzYU5FCi0lXG1GcjcjXkVqXVdiNHM4RWNaU19bKzc7S3UhYksicTc5Ql9EW0RjUXVqJSNVN2RhSFw7RmJCakBlb0NAJlNnUgotYitnZ0hjQzpqIk1NWy1jJlZMN20/VGxCVk8/ZyIuLEc3OlhOVjc+MjM9Tj8wYixwXDZHaE9wUyIyJDhxS2BVa2MKLUFBY19UZGZeMC9iXigvL1FNO0NYPlhBJikhXi0lKGxrVGZqS0JzLVErYCxJXGZPNGM3MWIxNFEta0hmMWQsOy5UCi1BIzM9MDc5OVpQJi5TZi0yMGxqRDFkaSRgK1xOVW9gInRNZ05vVFoqS2QoJk88UGEnXy8lXV8sPy5UUCpcdWA8JgotU00pSGpsNnFQcFRuJHU5OWFMI3EyUSJBX2csK2VKRWouOklqLWoiKlYwSypeJ0ZqKi5MTVAxc0FGMk0qQz1TWTEKLUtFRU5oMFhoLTRnK2I6NCE4XU0+NiEuM0FCZl5AcyhMY3VfJEtcZTZNQ2dMTT1rR3RYIzQ9cCknRjkmLyJoOkoqCi1Tbk5hZ2FEUHNSOUlSLFkpX11aJmRjZjw1XGVMVC1nYi5HPG5JcShqN2FLUWE2JVVVXm8hVTdgK1RUSFMlPixyVAotWDk5KHVlWz5wPkhWM2A6X15PMzdsKmVkbzNtUkFkX0UkKmkrLTNKOidOaVI8TkxlL1o4b0NWVG9ZY0xqWk5AVF8KLUpPX3NabCttTyknWSYyOyktU0xpWkQrbl4qNWVgQDQhKywtJi4rZVpTMz1VcGdcMVdOK1tGdD1LMUtMIkJecCRDCi0jTyksSUBKMHFCYFdISi9sNVwvPSRBIXJFMl89LSxbN2tnWTRiYzghIWhkdT1fZV1yVzpfZEdvbnFSQVRrXS9zIwotRT4kK11ibTlzYzIxV05zJyxAcFIpZDkxT0s1Oy85Xz9hUGZAP1V0UExXLEFXTCtYRj1xRTlBUT5TJXE2Z19uOTQKLSRcVydBI1Y9VTEkIjVuMTtiKyt1WFBkJXMsImdjKFl0Mi9bX1RwRU84bWxTUWE7Yjs6SkU+SydtZmBfdDMyZisxCi0qLm5OOSVMbGp0IVdvRzhiWmlBPSVuWUhlNy5CYF8iNE1RS1xGNk9YVlI5Q1Y+PyxGR10qKVxUKTl0P1lJNz9hSAotNTFPdVZlY05eSFZvMUx1OyFvLlpsajNoTU9ydUwjQz1saF5sM3N0bSI5T0VNKFpQZlpAZSJSQzYlXjxzKzBrPkYKLUwrWDVgKGdSRFk+Ozprb1NtRWg0O00kNC1faF8tNEEnOjlHMUVXaS5MQEY+NTVtYDYiK3JoWVpkaj9OV2wsLC51Ci0vQz8xbCpjIkVaWlAwJ2BCT3FoMUAqPURLJHQ7JS5KRkdmV2NOOmo3QXFdaUc7bUxibWZwNVwjakJAL0FGdFo7bAotJEkqLCEzY0MkSEtFRy5oamRIZnVOXjZuYUsyPz1xTVlgMC1gSStvMiddUFkzai8jUihKalZZMm9WIzVGYjczbkAKLTM+L184a0Y3K14tI3VfOTUkJlshJVQwKVErTiwuYGtNMzh1TVxDPG1vRk9WdDpGXFh0Lk9NNWxBdURBTkpnTT0+Ci0jJTVMaUtHMiUiV29bLGo5P085WW9AWy9aZko8a0lOJm1RQWRvYFdHZnBVQXNaXCQ/OCUpUUNcNFgldFtmKjAyXQotPUxBTT8nS01RNFJlQz9MKSQnfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNDgwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTQ4MSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTQ3NCAwIFIgCi0vUmVzb3VyY2VzIDE0ODcgMCBSIAotL0NvbnRlbnRzIDE0ODYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNDg1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE0ODIgMCBvYmoKLTw8IAotL0QgWyAxNDgxIDAgUiAvWFlaIG51bGwgNjU1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDgzIDAgb2JqCi08PCAKLS9EIFsgMTQ4MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0ODQgMCBvYmoKLTw8IAotL0QgWyAxNDgxIDAgUiAvWFlaIG51bGwgNjQwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDg1IDAgb2JqCi08PCAKLS9QIDE0ODEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNDc4IDAgUiAKLS9OIDE0OTMgMCBSIAotPj4gCi1lbmRvYmoKLTE0ODYgMCBvYmoKLTw8IC9MZW5ndGggMjMzMiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1k8Yz4xZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBJkYsOElCY1hlbyJpQ0E9NEsxJykqPV8xMVY6SFw+XkM3YlQzTjMvNwotN0FHSy1KdVBeR2dgU1FyTkAqXFlKPSglMlNJPkY8RUxzbHROOGw+TS9kMj5iXC5sKkw+JihXMzBNa1U/I0xBJWAKLXE/LW4yJyh1SjFxQV49VyFOOWZPJGgoXnUwOS1VVWdAbTUjLltbUkktcVlcOitYajlTKVs4cjtDYD1nNFUtLG4zCi0vcydRNFZJNClHJ0Y4LEw8WSxgIyZDYElvQSJtI0UiWC9cQCdGXlo4alhBOF0uKUlrT0s/LTs4JV40KDYybmlkcwotI1M5N1JcQm0oPCRIMCtzOHM2UWQuUiNZVWIrPz4iLl5oJS1EcDBQbjVpSGMkMTYmJUFIazZfKFc4L2YpX2ZWS1AKLSJYPDAvLHBpIV4mZmArPiRgIlYjTGYucTFOLlZFIjBbOChQWVZEKVhccENLOztZKDVSTlk6Wzo0dHMyKllxYUowCi00Tl1WNml1JForOFY8aVksUmkzZDtFOWJJR2lfPWo8KzxfMFg3WyNpOzJvVXJeN3MlVFVfTDo6aUJaP1c6R3VKUgotQm9OYihcO2M2YnFzLFkqIiQjUihOM0FtWzhDRFVcQ2AudVFaRGdRUi5tOkhvYyM1Ui1BRFJ1IlYiZm9vQlteQiIKLV9eY089X1A7QUQoOzBFVWZGVE9TZVQqWVlfW1ROTjoxSlA4VSFEVHNhPkQwNGJhUFVgO2FOQV1OMisyOjBqbixWCi1PKF0hc1YndGY5ZFpsVjpcbV9gPitcN2JRT1g0KlNTSEtYXUBDVCxWVjBIOkMzZlswXU9SPWlHK1BVSSxfXmoiZwotWCJVVTVZRHFpImhkWWB1O3MjbW9BIy06V05qPFElNCZQOnFgXHBrYy8rQlZNX1srW0siaEUrM3AwM0JQX2pYMygKLSViSDhrIXNtIyoiPDUpSFYqdVJhUUsoUzQ4ZUMtWmcoTVxsIlVhXD0yZllAMytqIWsjXkZKNl5PYEk5NlU1NiRlCi0qIVpMZERdSGY4UXUlRHIxKVIhMmldKk1bWTtRJWE0LS4wJUVkXmVcNW06Sk8tT0o7ZzMrUS87VDJcZmtTVGw9RgotXTZJMl9hazouNCwwOV5MSDkmNj8nPWNaK1thLDBBXG1eODVEWG0+LmgvZTw6WDZNU1BqKjktbSlpOVtkSllkK14KLWYnb3NdLDE5bWNTMjs8ZiUtMVBgPC1hMTZxM0FoMD08L1JnSyEtLlQocS03Pys3VWlqXzdadF1cLUUlLSNcPSxnCi0iaTJkc1ZANmgkNmpYOG0xOWY5MiVEZVxjSz8pTlVYbkBlImZGY2c/JCYqLlcjUGRlXlgyS0BERDwlYTBHVEcrbgotQWxlPlckb28uN1psRWxZSiJgcy9fS15zSChUUTRnYDc4RSdPTnI3JWZIPlIoPV4hM3JQM0YsPS5oJC5eTEZ0dXEKLSdiITFkMjxqZUsndEFxciFLX0FCWHVuZVxLNHIxSj5OVDcpVWs2LiE9QEo/dTVCXDAiKUMsQUhPTVY4UCMsJ0hbCi0wSydRRjtRRE1cLl90WWMsWklwaEYwNl1YYFJ1OCVDbFQhVS1qXCFGWC9yXDgqMiI0KjZxPmYhMjQsclloKDQ1PQotTzxJczk6dFZmXVhBRT4+UkY0T2NhUE9iXlByT1QkTClia1FFbVdfZSMlNkF1JmA/aWljRGBLRVowR1c+J0BMc08KLVovVEVXZT1uS2peKSwrYiRfP0ptU3FiJilKYGVhWVNIamlrKENCQEVKVFBsNyE7JGdiVF5JVjNfPzBySSo0aEpXCi1wSEwkLS4lUiNfR0ViQUc0TWFHY1QqPGVvSydDZDEuJEl0JjYnZDBHUkhXOCQiRUMsalZNQHA3cWA9bTBgQCVOQgotYUFSPE0kUSonI1VOPCNeZEhZJEYiLU5fI05mbVwlcUlYNlQ3NWd0a1huNVBSZ0lmVVcvWVdyMk00WlBMKjJsajoKLVZbOGZpSnNsMDNCXkhscStKUFVcQFhWOWs3MDBCUURPaG8tPV1mRDonPCFMIkw9RTZWPSkuXFFVLDxec1o2Nz1nCi1YJjhZcG9nJCxqV2k4WlghV2ZEO2g+PmFmM0RYRSZFMlhyLlRxPyc0Si5OSEdOWmJYSWQrXSIza2FfK0g4cjojUwotTVI0PiEqSWs/RG5zPCtZTClPKUVXKlUvSkprLSI9SiNaJHEjIWdJSUslRlwjbSUnRT9bYlVvOFgjM2ZlNFVjYlsKLS4zWitZSDNhUHUrOWFcISg1IU5WOm4iRWVYWWEkOSsvJD1gbT50bGVYcFYuLGw2QnRXMSc0aDZiMHM3SDNHTGlpCi1JMTpiWWVRODRgOUM3LzRbNVFGISpcMyhiRDtFVU5BOEUuNzkudGVgOW9HdW8kTWUlJVBvKjsuYm1nIidoTGdLIQotJUIuUCskZ2FFMmNNUEZtNkw9algoY0YmczhQXENvO0Q9OEgmMCI3OUUobDswISslQWg8UDJHMyJqQXJJJHRtWEAKLTYtcWs7ZF1DRVRvRyxHLHE0PChGbGlgLU42PjhMJldvZzFwOytLY3IqQnNZKUZjTzxNNkZfbllUTSNRQ1pJIUNrCi1lWEVSTmxaPFByMjFOKSNjUyh1Tl9qSnFyQj9cRFAuQG02RStnWW8yNjkwclo6b09GLiF0IyY9PWxRbilONTBmKgotLmdTPXAnLzxDZSQzTnVTJTNRYn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTQ4NyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE0ODggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE0NzQgMCBSIAotL1Jlc291cmNlcyAxNDk1IDAgUiAKLS9Db250ZW50cyAxNDk0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTQ5MyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNDg5IDAgb2JqCi08PCAKLS9EIFsgMTQ4OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0OTAgMCBvYmoKLTw8IAotL0QgWyAxNDg4IDAgUiAvWFlaIG51bGwgNTU2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDkxIDAgb2JqCi08PCAKLS9EIFsgMTQ4OCAwIFIgL1hZWiBudWxsIDU1NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTQ5MiAwIG9iagotPDwgCi0vRCBbIDE0ODggMCBSIC9YWVogbnVsbCA0NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0OTMgMCBvYmoKLTw8IAotL1AgMTQ4OCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE0ODUgMCBSIAotL04gMTUwMiAwIFIgCi0+PiAKLWVuZG9iagotMTQ5NCAwIG9iagotPDwgL0xlbmd0aCAzMjMzIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83WT0+TjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiw4SUJjWGVvImlDXzxfSjJhdVJITjEoR2RkTipuNVNcTjZbQDJHCi1GWGRgcVVfQDtUTlhiWCo4KUgkJVlbLVdUKT0uOV86blZGM1hLI2FWKG5pQDgmOzZkTyEsVDMiXzZAYVBNTVVpWQotUig+Uz5BckEhREJYU1RdaXQxUnAlXG9FRDRHPkkzQE1DUDNwc1BHSEM7WSFPWjJqc1wxbFEvPz84aUBObkI8VCsKLVRgVnMwS0VEZS4xQ2BCLzhmUyE6LXNAQ2UuYk4wMSI6R1ctJjRqV3JPPjtoRydXV2FiQGdHPVtOTT9kMzJDZWxGCi1iOGEsITBOJ05cSmw1cUQwZDRJaFdcKT5jOnAta2MzNiFuOUsxa2JPNVFXYS1pcyRwPSU3NmVGWVxgU2MhQzNlRQotJWo6ckAzRCY2Xl4sLTZDK1B0UCpAcG0vNlZtMFhiWHQuWnFnYE9scS8tYzZWOmFIX2MjLC9oTCMvVF9bVV9rYmAKLTtKP1RmaiVKLFROUlk/LzNmVCRRLTg6R1whLzs7R0A5P1NaTidnRmEwb2gpcXFeb29KVW8tRj5QcEdydWUrJk9CCi1kYSZYYkhwIURrLi1EOygmVCpVaD42Qjd0MWVpJSxpOlRGPVViYEovJCFiLCUlXG1pbjNEQ1kjaT9PJFlHZjk8OAotVVI1OXQjZkI4YDNcYmdjXklxXlFENGB0aUpITjtwS0czImwzIjsiQ19dNFclQU0lXyg8WnBXayUub1lDR0lxcCwKLWgiXGFbX1A7TzUpISo7L05mOC1JRFRHcnEvMkU3Z1ZIPmE4WkMnbzVgLFI9NidPZnVwVGVSJGVJIlEtbXFJM04iCi0+NzAydTlJai1AciVvZUxIRiJbN1hpLS1OLihRYlJrZGsyXSteS2Q5YVItQm9XbmZmOE5pcFZYMUNVZlJsXXR0cQotISlhXGhpQlZ1L0w3dFBDMEMrTUguXW1SQEIuNkc4V0VwKWNANXFCMzJSLjc8SWplUiczNFRFTzZgJjFRRl5eSkkKLTEkK2ZlcWcuRSFfa25BNSk8Q2EtQTI0Lz8ycClhSV4saDNQbTY3LEJFW1gzYm4kME5SWnFLRWhSN1JmRE5QX3BKCi1fZUBJU049cSM/KE8hLDQ7YzM/aiJzOmgrIVksK2BES1dJJ10+SHApJlhSVUZLTm1FWCIrXTcsIiYjQFljIlRscwotRkU2QFlIMjJjJl5tMjMlZiEoXkYzRXNbcG9Wcl8pYWpJXzY7TWRYcDArY2pDUT8yUC4kTCFxcDxSZXFBOz0/VEQKLWZHVT9nYCFdU1VpRmRdSjg/Ikc7YlM3WFY7ZiUuYC5MIj5vVC9ub0UlTWUsXEFYKD8yajMqNUYncz1qTmkwXjErCi1IQUFfLWUlPz0zZ2xDV0o5JCw7PFtvYzFVaEQ8TU9Vb1o6Im9UXWBKJlFpIkxTWz5hOGdsR05ONHUoOChhPS5wcQotT1ZmPV1LMTAwLTEuRnNcYjZzLjZpMXE8RTgqcGNEO1x0Mz1CS08nWUZAMkRER2A8Ojk7T0RYM2VxNidzOG5KZyMKLVo8MlJyK2k+TDdOP0tbX1UvcWVzOS8xWVwiVnVqQj90PExrS2tAQzxwcW09JSxbW1E5PCxGJEdfaEdbXyxuaFI3Ci1BayMybzJscmo8PCFtai4lPlYyImdtRk9mLTpKNEYpU3JxJzBdQ0hNTUsmUHBhXF5kOE9YIm4iRCI5VHQjKixWMgotTVZVdEpvSjhZLjBHcjQ/YFxJXi5tNDtlPj06WykuJSYpPm4xPERxZlR0c2xsZDJHRlYyRj0jPC5ZKkVcbU04LkwKLSFqMDs9KGlLRlBsOGVLdV9PK2FeJUlrPHUic2otVyh0PDpORTxUJDNgalFhYio/L004N0tYW0FiZzdJT2RvK1FzCi1PXDRQOHIkJzonTWktPl1bdEpBWlJaXSVQIS5fKmBVZnRENThtdFZTOWctTWVJJ0A3Zz9SbC86KVNjVW44NzpgaAotQ1UkOGQ8JXQtXCRtTGljIl8jWS1iJDopWV1dKy0taTNUbkhlQi9ocUFvZ2w4ImQ2KyJoSFwhVi11S2NPYlFaTCkKLT9yXSVRQT9OI0YkRltzK2kka2FlX0w0b0ZiMDklTSItTHVRKHNxRjcpWnQ+JyU8KjJlOD4pQ2A2QzpdRDlkWilBCi07W3NpIkMsJCxTLGFHTGMvQWI2XCpEPVZpbjNEOygtPFc/YDwrdVYhI0I3alkrVGZ0XVtTOXVaQkJvPE83MjFVLQotUjJWaVJWSC4iP0ZmRT5yLERAN2wmSyE4YyU7bEhRIzAqc0ZlQ2NAO2FNdWk+ZTVpRThEPDgyW3JkRykkX151XEMKLT9ZP0thZjdtPlEpaVE/cUBtSWIvLEQ6MCItcWolUFdYVCEtQVFoTmE4MkYpPzlHZU9jNFFESlk/JD0yKUNlMlgxCi1XIzUxVU5gI2teKnFUTTpiJlhSLTgwRWZtK0VDWjRFWS0oWygrVSxZLCspTVxuNFtSYm00OSNjPlZONkBQJHQ0NAotI0YhPSVhbUNqOy0nMD5rNmosalhPPm5dbz1LKixLOl5fOWVOUGlbUixDbjRuJSdYVkQvZFhwKkBERyw8UFJeMSQKLSM5O2ZWIi1zPyZMYl0yImhea0g6a11JQVs8JGlgXDNKVmdtP0doSFEwNnAkUUxFcSYmNiNeTzwzRTktL0hxN2UhCi1VOWhmZ2Zdc11sLiNXL1BAcTc4X0EzRT46UiswcColZGR1XF9VSTQybylqIm1DOGNrLEtGT0BAOGA3RlA0I2BeOAotakBzREpJX1l1NEB0dCVoKHNfKWU0N0w+JDo6NXBGRjNdRV5INTBLRUZLQWVGRiN1XVk+O2VdMjswJTNsU0hkNzoKLTBeOyFRPjdJMC1lZWUzZCxALCEsb3NWQlFIV1o2Kl1GODFFaCQ2RmNZNURmWEwpY0JhQUFzTD1CLzpsSjpZOi1DCi1nMDdLUUE2bDsnSlQqViEtK2RLXWMkZyYvJWNiXilbRGomSG5aSmtAMDM3ZElxLEdwc1Q8Mm5ZVk5gOVdMRjNaNQotTVVdQFU9bjRDZlFgMmR0XWRjSE5mVCM4VS9ZbDtpYGdGKFJpXi0tKjkjSSteJHQ2Jko0VjVSbj9EYzhxXEw4PmIKLVhnQUU5MCJzS1wjaWZLRFpiW2BeK0JuMEtDJ0wsI24pUk0jZWlFXCVEbkgvLE5xJ1B1LFRJVEhndT1rN1QrPlJxCi1cWkdEOC1EW1FSNkZYT0lRS2U4XzNKXkw1JDImO0kjIzBSK0coZy5iPyQtT0E6JkM8PDEpRDAjakwxWCY7O2gwYQotNywkSFc8YjFCJjYyN25UaiFWQDRFNWNEdTYtKHREJlQkdFw7V1c7LV5pb3NbW1hLUHElRygiTyhKNVRfQE1RSUgKLVYzMlMvRyordHVCNFVUdEE2JmNoZmlKZ2dpKy1wKkwvNXJUMFhRKyJbQ1NfUz8rNCgtUkVhcFJfWj8sVzNpVSRGCi07ImozTjhbIWQjNHI5byk1STlCMCstLGk/MFNZIkAoWmU4YCl0Tm0sTXNmNzUmOiNSU3AtPThiZFgtLWM1aEtpNQotaWpxVXRIQjF0c0MlYzhFWHAzbjxvRkZEZDoqX2wuQT9EY3BwJ2ghRjVaLmgwQTc2VFkicFpLJkJiXiZIKDZhSkQKLTtDQkotMCs7MTM3YVIqWTZJMWJxK0NIPlExJ0ojSkomKCw7JihdXTVgclVeLiMtWnQwbjBbO0QvdCZXLVJLYTE0Ci1EUTpdRyR1a0QtPCUqazQmJ0BfLVhwMzclbmA5SkJqNSlFTC5jS2osIVh0VU5taWoyNHJxZkVzOjgyTSZEbz4pRAotSmRlR3E4bkhdYkpyIVlDIWhUXzUiOlRZZlhCSil0RFZeJjthPFs/N20hP18xbU9LUVU0RzxidWojLXE0IVd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE0OTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNDk2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTUwNCAwIFIgCi0vQ29udGVudHMgMTUwMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1MDIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTQ5NyAwIG9iagotPDwgCi0vRCBbIDE0OTYgMCBSIC9YWVogbnVsbCA0ODcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE0OTggMCBvYmoKLTw8IAotL0QgWyAxNDk2IDAgUiAvWFlaIG51bGwgMjk5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNDk5IDAgb2JqCi08PCAKLS9EIFsgMTQ5NiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1MDAgMCBvYmoKLTw8IAotL0QgWyAxNDk2IDAgUiAvWFlaIG51bGwgNTMwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTAxIDAgb2JqCi08PCAKLS9EIFsgMTQ5NiAwIFIgL1hZWiBudWxsIDI4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTUwMiAwIG9iagotPDwgCi0vUCAxNDk2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTQ5MyAwIFIgCi0vTiAxNTA3IDAgUiAKLT4+IAotZW5kb2JqCi0xNTAzIDAgb2JqCi08PCAvTGVuZ3RoIDI2MjUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdZPW5eMWc+JFwjUi11Q04rdEBrUlsnZWsxSk5UOC9mOUtMCi0iT2RbdWBiNW5sTD1pMlVqRG0yak9eTi8hMyZXPFtXPl9ha0dYT1pfKz4mcGdrIicwOWROQWFSTDJoM3VZWCc8SwotYFxzO3I/bzRjKkpcYWk1YjxYJyEmVk5USVUmaExYJVRKSnIjXE5bQl5zWyRVUnVJNWNIJyU8LTE8Um8pUmVWRXEKLUJKPmhgcUVsLilfSzI8PW1eP0ZKM1lUUk9fS2ZYIlloV0xfLjtqYigoXjdhLk4uaVUxZk1GJSQraW4xLiVIMGljCi0nRWVMV1c5WlBRX21vLyYwJCpCPE5KIlJDbUNfbVxmKl00O0s+UFM8LEMmTV1YISVLLlNxSUlHYjQ/I2RDaTIzQgotNXRHSCk2M0EoSW1tallYOyZkNC0hNXBYT19nSUBiN2NQb2UrViJVSTtEKmlZO0kxLUJaMi0jZTVfNEdyZnFySmAKLV4rYlMwVzZsUURZM1doQU5SPnUvJz40XVdAanFuP09NVlA6SlhCc2Q1JTYzVFpSTWhkRSMvXkVLJWQzJFVFJ0cnCi0vSiclQFdBIj9AcUFDRkU4cjBVMEs3KTJ0WCRIYUIxSzM2OGl1SjxFOnNnL2M7Ml9fQC1jN1hVK10hcEhEIicnXwotalVOOC05QFVObTlCcjgsUktYMjpmLExkTjhsbjopRGw9VDVcSUtNdFcuci1JIWZtTWsjXFksJyQpZ0tUX2lmaUcKLSowKGNOTyJJUS9RLjg+LSFIbTMtJHEkdUthNCsqNU0iXCpbNk9HYXVHQXBoWGchQGc6TSpGUDhDTEJCcWw4az1bCi0rW0ZhPE44bT1ULSxRbXVZOUJxUT5hZFBbTyc1Uik9ZDRMVUJJWyZFQCZTZ2k0cjglTltiXE0vIktzVyRtPWg8ZQotXVdfamdlNFRCalAqTyxYImlFc3QuS3JsQjVWbkAvKVlLcT5jRTtfcT5eQ0EzMDk1WU5pInApbkJUYTFPQHV0JlgKLU4rMy5HKFY7PjZsQ25JWFpHKlFIW2MiWUowIjBpTzZzWG87W0I6IWNwOysiTGolLi5yazUvT2spP29XN2diV0NJCi1kImlxUSwtWnFYTGdrViEsOj1dMU9eLjxVOj9vPyQsQFwoc2AxclZRVlZJcHA+dSxSJyMtIllGbGRvIjRvVjNHQwotMmhmLz4sQkwxX0hVLl1jQDA5Jy1MK1NkLjVIdFsvZE4lP2krcWliQWtScylBK2c4SlJKTjcvPyU+PEkxQFFzcHQKLXApb2thTmU6Jj8pY1k1LzdzYGFtcl4xPEM1IWtSRS9mZEwrZmhMMCpEMUYyJkY5dEBGcExQdFM4UV1tQCFQZ1hYCi1lTXNJa1xxIiZIJ2tZNEIpTG09JCVUOEEsZkgoOTByTExLMCtPQDpsVkMzY2M/aSJNMyVmJG8kamAxZFVvLVlhLAotYnFDS2FMLnRkRTFMZ1pMWz4uYDBjSSJdSjc3IzFKWSZZUWs5cktpUGJBYjY+VFdYYTphdG5HKGJXN0RTUF1kLkoKLUNJRGJfMl8hYy48XlNuKzw1RmlZLkZhVE8lbmFvQWNdSlNVO20qaW4xLUEoSyEmcFx1aTRtXlc9dV0xWnJmSkZpCi03PWgqZjNUUEsyLUZCQSxkQWljSGw/T18zLElub0RcXzMoPFtQU2FKaXEoZTFkVTdgKzQ9dDNNX1VBbyo1bGBiRwotIlorTk8mT0drTC4rQzs1LT8+JC45TzsxZ2Zia0lNYl1pIltXRC1nXlhAUzFPYFojUC1NMW9BdTUpNzVTOzpFNkEKLUwtVmRCRl0mUVQ1VVptaEVAW2xOY3NkYW4valE6KzlxXD1QV0YoYzxOQ2F1VkwvP1ssJEpeKWlFV0dYUWZnSGltCi0kPjUrYUlONSlNN1g+MEIyYkEoOCY1RCoiKGxuWi08P1kzc0pkSmxNIXVmPDFaOT1wRlo1ZCN1K0RHUl1sPk9icQotZDEtW3RtWWFeZCYvN0NsKHJNUGRRUC5EOid0TEtROFIsPWhWImgjQClDWkQiODhgbGhLSzVGSG8kSClBMDBySmIKLS1WMjpwQD8vTClPNiUhQTdIQmpyX19ebjMxVzIxRTg3VnVRLzklJCljM0dUZiMhclpSYjpRO0lrXydNZC5NWEAjCi1KdT0+Iy1ycEoiKGFwTSZiIjc6MCxmMHVSNyU/UGFwNj5sOWRuaWFeNFVjR2dJUzsyOytPYTs+N0VlMTAnQT41WAotVlJddUxEISNRJmsmTUtBRjZBTGJQV1UhWj9ARzF0bThbKS5BdTJMOD1qQHBzNXVuXT5jODlILlIiWyM/ay4tS3MKLTIiSShJXFI3N1gnYzhgb0BmYEE3TC9uPkc0WSRMdCZBYFRZIl5uS3JRK0kxRS8yOjg0VEprITw6ZjFbUHBpTWdjCi0+V1taT28rKjw6ZTQwKFpJXVNhPzknOTJ0JT9aJ3JjUFs5cGdGLWxTa2hWPWtvKG0wZVMzUztyJTdWSjVcPV5zPQotPlF0MlEkKFgpaz9DOWQ5Ok0oMzw+QzFRWVg0PVJJMUMzUitvIyNHKnFTLSxpV3FWaTY7Z2JkQS1qbm4uKWhVQ1AKLWVXLW9nNlU7K2wqSXUpIks5X0teLyU0RWA+TVhaXEduLlw3Ij5VME9jW2hNLDNjLztnbG9PZyhwaStjcFt1ZmhLCi1pYDp0b245LEAwQDBOSVRiT2NkPGVeKF8pTSZUISFiKnVQVEE1Km0tNEcmZkoqR18xQVpkQTpjQCpESzBKTnVPTQotOjNsSFBLUCpIcGMmNCwvR1dLRVkkJzNURT9jPlEzJC9vLEFHb28yWmElNCUsInNtayJfJCRySkZqUUUmUzcsPHMKLVtXJydsYSNWQT82Q3VlZG8uZ3RibjQyRCYrcl83Y0BdNGhLIz0uUGxXV244Li5uWnVbJ0NmJG1aQGBAWydhJC5xCi1Da3JaPSlTXkFDZFhoVlFSSzcpNSVPJ0NtZV5LRiVMZGJgcy1JaSlmTTVIV2Q4MTRjcWspYEFCW1VPbSMyazc/bgotbzs9dVBOJUpvJUwvcztPQVE0WWUyNGFbVSFNXGJrLGpiVFdfZFRddVpraGNTPUZsP2hSS1hEZ0Ihcj11QFwnbUIKLWNZLUZUQkc/dF5bPiJINCtWUyZhPUBdTyVqYEZLUFdlcyJjPnJKYjdJXC5FL21xSml1XTVyNlE9R3JMYl4qPT8pCi07YjpALCNyKGk0VVdFSlc+aSlZcjY4Jk9eZGxdbnQvT2ZSITckTCdyJW5dNCIrPFV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MDQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTA1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTUwOSAwIFIgCi0vQ29udGVudHMgMTUwOCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1MDcgMCBSIF0gCi0+PiAKLWVuZG9iagotMTUwNiAwIG9iagotPDwgCi0vRCBbIDE1MDUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTA3IDAgb2JqCi08PCAKLS9QIDE1MDUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTAyIDAgUiAKLS9OIDE1MTIgMCBSIAotPj4gCi1lbmRvYmoKLTE1MDggMCBvYmoKLTw8IC9MZW5ndGggMTk5MyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1k+SW4xZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiJSVXIuJSg1VGdPZDkqOmY0I0pLKyUmKmU/WEIkR3VTKjVHM1hkPXJAS15xU2RTbV4ybAotQ0UhX15BT3U8YFNvbSUhMFcqPE1aX2guakk4KSVFJC5CO0Ezc3VFJzNLQXF1aEQ1OUFxa2MuWWonXkx1Tm9OW2MKLTFWazxHaEBMJ05mUExGMkBGTWU0InRNSHQjLlRbZExrZEg1O0NxTW9fMTVjLSMoYExWUllCXkY1VS1ea1lXczMzCi0iK2w9RiUxQjBXKDliUT1OMmFnWllgTFchLk8zcS83a2UnJXByUkk8NVZlP0VYODtrMTpoXTJOTjA0aElnSTxvXQotIVliY1ZPTicwZ1kxUnRXXlM9MkkrJiNRVD5wRGRSS1tNZVJGKS5XbzVfQzlqM1I0clZAakQzaVcnREs+NlZIWWEKLSMhc0Z0LEU+QThqPm1jPFc1XmteJVt1WjQiXUEmMjdhXlhvI3UmZmlrV29EOi5mZTZnNj5GQ2E4SVk2a1tmXzljCi1ZZXJALVVSXldvYVJfUGo5YipEWUNgK2E1aCo0X2khPG5GVWZgTCkvJCE8c0FkYCdwayE4S0Y+Sk9qdXJWUkNJQgotOG0yPENWL0cmUTMjYlwhK1RUU0JOaFs7MSdhNnJMcUNwX1Q3RzI6XGopcDhtP2oiNCYycWluVG82JmBQRmdIVSQKLV9wL0w9aTprbiRLPy8ta2JkXk06U0suTDtGJy06PlYwLT1bMkBlKXUtbnA7YVBjWkswOlwpRGg5NUhSZShZQThsCi1LIiw9RCEncilwUTlbYEk/ISNcOzklUUcnYjdBOEQjZSw3ZkstbCJzIl0yR2EyMj9FZ1hmTEBcOSghTzNQWT5tQwotJSdRSihgdCc8c0M4JW5CRTZCcS8nalJaIWJOIlteL3JHNl0mLWhCQkZsLkdhPTktXGBDNiVBMl1FWSg0XWs9QlUKLVIsQlpXR3JGaXNtYnBGaV4tP1ciWl9aRWZqZUhQSWYlJHNRZzokK1VtVzAzJnJRU1RgN0Y/J200QFlyVSJePHQuCi1XcDtzLmVKUmY4LTFBbkJmNFM9JGhHMFhaMShLYlVaL2ItR2N0IixBUzJkSzw9MVUqRWhKVztqaVNhIkluQ2ZZUAotciNXP2JFOGk6dXIkU04lWyVjdVptWmk1MmZIUmYqTmNPWDRCajJnKCNWcURCU15GTmE/PTdhMl9OOG4qJSNPakUKLS0lLFBxWDZiOFpAJU4tPV48ciI5ZFdjJl8jUjpWLlpfLVIuQGouK0hfLD5aMTw5ciVDOUg8TDpGMjFiMk9sUl8lCi1iU1l0Pz5eQjFLKlxHPUwoRXNSOzljQDBePDVJKV5WKS8lTjo4dWksLVorajhCPT5SMz46O1tPRT86TS1yMyJYagotQmFoZVEocixSYTpTT1dhJScwLltgPEtfbk85PiNgS19WVmBVcTY5VlUtZ1RdPEJRRTk/PSFuOjMhQj5xMydtPlQKLUpXS3A/Q3MoRlQwNkpvJlRESEppJlMpUls6Z0NkWmRRTUpGPF5PPUVIPkQlXjdoMUtzISFcUEkpaiYsciMtL0p1Ci1fckB1LDo2XlpwN1AkOCE8Sm1yc0EwT3UkXFpTOz9DOUFmMjZYdXMnJi1hRFYhL2ZKQzVwbzU0IiNQc2xkMFxcUgotVjV0UGVGKGVkOUo0MHRMS2kzW1s/NXM9Qj9rJ29iMyFTSE4pXk5QNDZnMD9kKDloSz5NTk5JKEMnbWcvZC0tX0sKLS8/a0lwPUlnaWQ6KVtbbC9VRHJUamF1RS4lTD4rPU5KXG82ODlAJVBkMkM0bDdrQlFpVT42NlFNKUAjXVhjazdcCi1aQDlcckFMaGhgM105bUk9M05YQDQkaEJuOXQ+cSVpQlthJzdTNyNTb0AuakNAOnRUZComT01hITUmaSQ5MU1NMQotcj8nK3JAYWcjPjxcMHUnYnAuM3RkRj1JU20hTHE3NmNLSFkzJDteJzRnS2lHKyEtTVElUkxqZkciU0s+OWNXMV8KLSVSSE4mKkFmTVtkK1FsXiJkJz9qX0FKLCVPc15HOzcqPy1gPTo4XExMQy9eUl9rVm0sTnRNIz0lNHAkbC4iRnJbCi1LLV9LdUZsZFFESjRlMClkYGJMJG9eLjVbbnJOa2VLYG4rQjZBIjpBP14iQig0KkViMFxsQkdkQykhVTUiS25YRgotUFYuTSJnJisuXFBWc1s3LD5VdW9kWjBIQD8qMmlVYyxsdSIlKWllXSJZY2tkNkQtbVVHIlR1VmpLOUc1WVtkcFcKLV87cWJvMj9RSlV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MDkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTEwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTUxNCAwIFIgCi0vQ29udGVudHMgMTUxMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1MTIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTUxMSAwIG9iagotPDwgCi0vRCBbIDE1MTAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTEyIDAgb2JqCi08PCAKLS9QIDE1MTAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTA3IDAgUiAKLS9OIDE1MTggMCBSIAotPj4gCi1lbmRvYmoKLTE1MTMgMCBvYmoKLTw8IC9MZW5ndGggMjAyOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1k/JSkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2xMOzhLJjEqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cLl5fCi03dSI6LltjI2RJLkVKMCQ7MnEkNSUzM2xrcjBWVXJxRD01Z0wnJD1hZSJCWy1NP0lOcGRBNSQwWkk6Qi0oZWRDMgotJCZYTkNfayo3SkQrYz9LWGtmLy5VdGZIOExjYmZYMDheViRMPmZiO1trN2M3TF9nTDJnUGlLdFlUYzdJIyFtbFYKLVI9VipiOnRSKCgwWiNaLDZYXUhyMFZgPT4yQFFaaG1laSNZYlduIyc7IkopbE5KIjZlZkZFSDRhVVNJdExpPSU6Ci1VRFc1MzUvWCZNJi5SWnVqVk5yNm9KSElLIW9jKlc3IkdAJ19NdUdtO0QqaVk7TmgkXGtbN1QsXmIxLkBeSUxpJAotIVliZEBZZkBUWk9BbCZdWF5UIlFudT9ZUj9sSTgyVWIhO2IhPEEzP2A4ZS5OJ1ltIiY5YDBob0AtOFxtX15OWzAKLWFBJ2FtMjg6QitOPyN1V2JZRzY6O0I0NEY1OWlqOnFaSTknby4vIT5nX1RwRiFIXEkmNi44Km0oJ0xFIWgoR2ZeCi1VdW5YMTBYKmVzJT4vb0YyMi5gO2hidCJhXmViZnMnJHNmIkw8RikuXiEpJkdiYzM4RGNxbGZgLkhqJjJhaGEnUgotMkBZMztjOCpENyNYQzNWW2w/VzMlXG1eVVQxRlNnNVZcOGcmQ1Y3X2wxTDVcIlRzKCNEaUc3Z15EKCQiTCViR28KLV8kMGo0ZF9mSlZxW0Uybmo9bFNyTCQ5c2cmTEAvTTkrb1lvKDpOcGhZLFhoKlRNY2JhPTlxZUE2SzhdMzJHdEFCCi1FXThyMFhKNj9GRTtidEBOaF5QWVghXnMtXkphNDMwXS1uSShvMnNJQFZaODRCJTloLFA0TFxiSnRhMjo6NUUqPAotXHVyWk4zU1RxIj11XCVVIykhYlBAbUltZDpdVVwtMTUzVj9EV0FCaTtwTDdFXzVNP1NeIUQ+bFFwUks1WkU8IiMKLWU+IkpXZlBIX2wlRHRgcjNmTCVBTGNMRShPT0pLVUZYQSZRTjo0NSMuYy5hKl02aXIhS2EwcXVnN2VyOkRcW2wiCi0obyM+SUNUXV1BNkAjSiJPdTspT1spNmQkU0xDU2dfZCUrNTJZNVotSlhCYFlcaVRuJyQvN2VcPS1mZXFLIUMqTwotUVtbdV8lKGdtTzhCUGtwTV4tV2AldTYzQVcpcDBoSFd1OCEzUklONTxMdVhzXkdSOjskS2ZjRmdyI1JxIS5aczMKLVBwazAjKVYmJFBhSTMwXl4/TkpdcWIpXGJYLUckOzwnZEg6IzBoRnQvTWpWKjVvOl5NK0ZzdEZgKkNZZSNzTkMyCi06IXM1Qm4vLCM8YEAyNFNnUlZxTzlnXlVUP1MwQTtVOzVeJk9mMGBeVGhsSTs7XilgTm9BTDEwYT4qcTc7JEs8cwotKSUxdGwraUkyUik/RmhAJVk5JFJVKnVPPUpWNnJTWVUnUFctbCotbEs6MzdqZS5EZ09DRCRYW01pLlV0M150biEKLSU6Sl5GS0hYJ2RXJEZYQj0kVUcuT11FR1UsQEhHXkVFUVE6MyNEXzlgPiU2ZVJTNjBIMUljVm5VO0xHbE1yO0grCi1gQnVLcCQqN2kzK0ZrJVkwXFV0Y0tRNzdFUk1jZyk8XlRmWiZqNkEiKTQ8RlRIZXNbNjZHWnJaWm1MNS8pQFE0Qwota2diVG1KM2FRcSlQVXJmJ0tRSSFsQVxjSk89TEk5TDohaEZbaUhfK0ExXmVkNXVYKGBiKHFpN1ldL2tuajBLXFUKLSJAdDo6WVZOV1VDRVhnQC88cFA3WVFHJ0o0PStQJlNyMmZXYW5WdSVCMm5PLm9DU2hOISlPJyU3LzM/UGtfTDZFCi1EKmsnXiR1PnB0SGI8ZXJTKS1mRVE9YFt1OTZVTTRNMkUoKl83VlhbJkZ0aVcsKTBMa09XI2hgQy5jQmFhKFlSLgotKVUrJiZQdV1AXj5fWGwiNVkmWzJkQiwsbVUjZ0FiMmQ4MyFUYystXmg2OHQtJ2EmJS0kW3VsbTBUcmBZTWpLbjsKLT51MERWX1dZQmBlSSYmdEU7Q1tsUFxSIi8nK0FhIWVQMzYlRkI3LjxJTFNrQ0ZIWDRhWk9HPm85Vz9RWVA/JT0zCi1ocFM1ai9JQC9lMys2IVpFaGl0S1g7LllLTj9QPW8wYSYrV1o2LjFxMmg7KUorVFUoSS8kbjVXVl5sNCdUWSkpVQotaWtBamZORjY1SCQlbD9cKScsK2YvciVLdG00JVs8SVIrV2c1bGNlcDhQJSpDIT9KVTxALktzOEU4SDBJb3JzSmcKLWdfPEA3ZzRtTGU6Nl0/TTFQUlwkQS4zRSIiW0sqUSNBQnQ/IjUuZlFKMkRlLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTUxNCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE1MTUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE0NzQgMCBSIAotL1Jlc291cmNlcyAxNTIwIDAgUiAKLS9Db250ZW50cyAxNTE5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTUxOCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNTE2IDAgb2JqCi08PCAKLS9EIFsgMTUxNSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1MTcgMCBvYmoKLTw8IAotL0QgWyAxNTE1IDAgUiAvWFlaIG51bGwgNTg1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTE4IDAgb2JqCi08PCAKLS9QIDE1MTUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTEyIDAgUiAKLS9OIDE1MjMgMCBSIAotPj4gCi1lbmRvYmoKLTE1MTkgMCBvYmoKLTw8IC9MZW5ndGggMjM2NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1k/VTkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBJkYsOElCY1hlbyJpQ0E9NEsxJUwjUXQ5Xy4+Nm4/WGJyKT9dPCIsIQotW2QqT2cqTlkoaDVdL0BBSF8nVStFKThELyRVNGcyOlFnYSlLcmFdUyFOS2s3Wm9BT184REg2N2NgZmVdJVk0YDsKLSZyYmkuXDJPT2E9TzdoPV9dXDFCNUtaNmknZ1RTOmxPaCg+ZlIwOU5LKSJPYk5NRC1tXkJQOFBiLllJdVg6IjxJCi0iIy9SbCI6cWpTI2R0N18/bGNaNiEtbFRpWjlaaFFLbD5tNzRpWnNzPmxnXEQlIV9KNUs6KExSJWA5aTAoZTFecQotOkQtPC8iOylmblRnMiIsJTNvUTAjbTpnOC9JWSFDalBgKmdjaHBXXSYkbjw0NWVsVjdSJ1smRzhnOHAzLiZdQkwKLUw8LkdQKV8jNmo0TFpYaU9DNjIoOFlFTCsjZ3JFNFlLZ1draERyRnRLLGNwLEZXYHEoTlRxV08yQFxca2VzMzFECi0vL0MoJEBnTGExS2JhMG0yaWFYcCw/SEQoKHUsWnIuSmpRY05AQSc+KGxhQ0RwX1EiWDg3aWZwIVhgIU44LT1IawotJ1NbZEg6X25hL2tib2RtJGhfW29XZyhzZTo0XWVOXmMmNTwocz5zPic6aztqPWEiUWZfaUAjV2JXOmEqPylmb10KLUNBUDVoIkpHaFk9cTlmaTdQblFIRS8saUVOJFkmLDBdUWo7Z15HYGUnSmJCbzoiQk5mJVslZmFWS1x0OCxFNEpnCi1RXFJtYjIsVEdEZlkkQkw3TytrcW1vZj5RNVdkJEg+QCpTVG40O2RbZyhuIVEoI1A+dWFxUlRvTl1LMTJAcG1jYAotZzlYXCpIZiQ7KWVUUE41VE1dXDxlZVVicEJfbGZiMVshRXFLbzh1YUdpPjYzZEtPcVQkdEg2aFUrbCg3XD9COUwKLUlWcHVYPFUrcHFeW0VzcCkyP0k5VT9TdThWKjZBZ2YpWSZnNDJXSyE0UFovbDpyVihNIm9jRXQ9U1YjPk43VEIiCi0xR0ZeKGhFJFhrKCtfRS1VRUpWT05vTG1KPk1CUXQ6QylydElZS1MhSTQvVVNrTF9EalhKTEFATlxMKnA0a2RpMAotKFA0ajhMPjotUVwuNiNeaFEuLTBlZWtJdGZjUExOTjo5SEoxLTxBX0ozMzpbTDZgQjRYPW0nPik/PV9sXzlJRm8KLVtnXmQ7XF9AU1s8RyRpRURASVk9VWo+XCUzTEp1P2VlcUQiNyJyLj4hZUJfNCsjNiwsQCtbUnJHLWhhO1c8RzpwCi0oYDhCSChDTmQtKCwjaV1PIkp1MyktQ0JpLmZtY0xaOF8hb2lDTzVNalosYUUsbmdcUSEmUHAuXE9pYyMwKSQnWwotU2NvLVUiYk1oViUlYCgkNmY/MCsiJmAxIUstNGs6Y2FaJDMibzxHOGksSzcwJlM3VmsvZldZVjBPZGhLUzI+RDwKLV9xP1IqLSNeX3FKZD9pKFVDN2ZPIUs5JyhuQkUpLkdccidhWjQ0Nz88WkBWWiQ/OmEkP0VDVlkrLF5KSSRxdVs4Ci03Tmg6NFNQK2kvaVEqZjE8OT11Pylkcy4qSTRxaWw8c2ZXaTdRP009ai4pMnJFbCE8KCMlNk1qV0ZtaSslXkZYaAotWiU5Xz0wXTVlQFdXR0dCQkcuLjByMGRYKSQ0TEBJM2lhQWwxImVnKiJBL3E2IWBdTSgqMDtkOS4tcVNrLkInPkYKLV5iLScwRSM0LHE1Uy06Kz5DT2xFZFhpZUEpXScnKyJBJjM9ODRCLVY2UlswaE5yRD9II2wrPlRXWzthNG1VXFFHCi1ccTZDQG40cDtNJkxOJUxZcDUrWiNrLGsoIm45ZVQ7IzwmRExQLklOWyJgQVwxKCszY1dAOlw5KGw7IzhnKCUpNgotMTlAXypMRWxSdSUzXWdGTDdsLDZCbTslcW9gUj5ccSJtYHVmZ0RPNVlrcUNdYUVSXmMuXHNBLVBaOXV1QGQoPUUKLVVFUzt0O1ZBVFNCb1AmPVlMXTdDYiddYTBpLCM9dXJoNjdjXWIhcGdMa3FpdTdaaChoJGwia2gzWFQ8YVI6QnBTCi01c1M9MGJPbHUzamQuPykqMiY3YEpaNVtCQF9VKjU2bVpkRU9mUD03Wic/OWtGbEMxPDEtK0tFP2omR15hVCsrbQotZURPRnJTQjYsPUgnXFVNVTxLREEoQ1tTXXMwdWMwT1A6YlBLTUdCWl1NUFFBOGFRP2FlK28qPUwtUV1NcjBNZikKLVBjYCNPaEFdXVxiKVVHLlElZzU8K3JNcnRIVXNlRldNIWRFVTY+OVxFOGNYKFgrRkFbMShnLDpebTJXMTYkVTl0Ci1IXiRFRz09WW5sb1tCQio+Z2FsLzBTQT0qTixwNTREJGouVWtUTTNncUsmMTkrZDl0KWRpYmNda2R0ZU1gNj5fUAotUy5jOy1JYGZHYjFMU1k2UkVaaiooSCMlbyk8MjQxPjhGVFQlYiVZSixyRCg1JklfR2BhTmVNI0dxVk8pXSQqJFwKLVckalciPFJmSnNwRzBjJzdqMGkoXyZAP20naTBPLlhWTTZsMEtWJGhwVj1FPEUrS0gnWnE/NWtnZTpybiskMzI0Ci1uNVMwZnFkZ2JiS1RmLjxvYlduKCpsTltMI25ANTEnS3I0SD5ZJjtFOzAoVG5PUGsidV8xWFkza2loPnI6ZSpVdQotPmxiP2E7KXU/cCdUYG83MDtJYCQwJmtWYTZJLmRSZCJUPihob1cqPGQ+Qy5UK0szTnIxJy5+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MjAgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTIxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTUyNSAwIFIgCi0vQ29udGVudHMgMTUyNCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1MjMgMCBSIF0gCi0+PiAKLWVuZG9iagotMTUyMiAwIG9iagotPDwgCi0vRCBbIDE1MjEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTIzIDAgb2JqCi08PCAKLS9QIDE1MjEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTE4IDAgUiAKLS9OIDE1MjkgMCBSIAotPj4gCi1lbmRvYmoKLTE1MjQgMCBvYmoKLTw8IC9MZW5ndGggMjI4NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/QGhwYjNadE09ViNSLXVDTit0QGtSWydlazFKTlQ4L2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJqJlJdU0szJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVlYJzxLCi1gXHM7cj9vNGMqSlxhZjZDMW9HRjtNWGYkZUlmPS9BbE9nITdLVlAhY3RQMiZMcjlIUS5GOj4mMyokTEJqKUxtWQotQmVaIlojITMtVGMlV0Uiamw1JVliTyY1c2QxImwtMm1UZUMiVHEkIidTZj5WWTUvPUpaN05kVitgX2xpJGZkbyYKLTJOQT1OVkFNUjZUVnJTUFVOI102I0dELkUoQ10+ZUwpMUAmSkROLEJfaz8wJTZcLk1IMmleVVJhOkpoUmFOY1FYCi1fLjVcMF5vcnQ0cVMpSCxOdFZxUU9OOSlrbix1NW9XKnMpXignWGVLcVs8V08iTFRpKVAzZms2XTIlRCItbkFmNgotZFEzPmxIZlBzQitfdGlZM3EtWGQrcUNpTTVXPV8rbkU7ZzMhPEM+I05KXTdJTFZYTyNuLlwpUSE2STo9WVIiQXIKLWNtKk1IMlRMbiklKSMybj4yXUB0LEMmLSVOUi5oUDpmOmRPPTpsJiUnSmZKT0U5b2UjYW1xaHMnaCs3LEAxSj5RCi0iQFdyKDZkOTxcYnQ6RS8pK0thcT1XQnEvaSkodUVvWCc8RzVyKCNOQF5LL3VFXTZMLmtoSjtBJ1lPbGctRE44IgotNDJmTDEhJy0nbFBRPCMtRV9zTGtOZm5PMS4qPyUhIzZCTyQ6cS9HYTtUTSxqI2skbkIxJ0E3RWZlYj1GQVlESVcKLVFPcS5wJUkqM1s8Ti1BM29mJ0ozNE11XzQnQm5ANyVIQTApMlM7WjdqPnNxbDIvYEtINjlyW0lOZm0/QSlUb1VmCi0uL0Q9SzRCVlRyWj9DLnBlNzNVciY7RTJNQixcMk9bP0RZZDYqN2IzZ1tycDAmV1VAR2ZLMzUsRktxK1lFMjklJwotTG1gY10oIzlbKkFPJzJzSUk3ZzJHbDtAZyJBXzAwPm0qaSM4JURHcydQIWciRjgiIlQiYVZdW1pEaWFJQFlDSSgKLTY1IzAvIUxSaWpMO0MwXWtVJmxbL2Y9Lm5UWEdPQWlDSXUsIlVaWWMnRWY8ZjgyTGA5YDs2WDtsbklRVmA1QDkkCi1lMnRQZFpMczVEODdFUVwzSW86OmJgI0xCbiU6ZnRHNFdDIz5NQWhRLzY/b0xBSj1BODJORlBFQC8nblY4QGc4VwotPWkxZGpDL0RFTmtPVXUrWkU8SCwwOWVAayw5K3FHJUlfcmtRamIxdTJCLEk7UXNEOU5Ac1xuMWNTOkxqNi5MJykKLWQrRVZyVTRFRkpialpnTGpFXT1vYXNgKSU0Pl9ecDpQMT8wJHVaJUAiI29fS0pIMG1CWUFOXi1kYk9ZKFovXSpvCi0yKkU+JmFJYVJ0QUlRbWMmPk1NQVQ6TzA7IlRjPCIzbDhaT1RAYjk1Ok4zLCJVUF1JTlpcYU1BOmw+RTBBRTppJwotUmpYNnEqdUpVTSNUM0hNR0NkRmpMSUhUSyIkKTVFQyYpNTtuRHIhN0JqJCguJUlVX21jO1U2ITtLMi5cYGUrPUoKLWpDM1peM2VwW2c1I0BhZ2JvcEcrIy5YKytQI2RIbVI9bypHckI2RXJgczFUdCIlYGhLcUVwKEglY1FZWUxaVSNWCi0pWC5hTUE1aW51VHU8Vy8wXC4wWGIyYlwxcjpXRTlZJ05IR0NdVWMtbDduSDYiJ2pTXEpgTnMuVmctR1liNyIvPgotQDNSckA8ajshWFwyND9uLk9xI0xkXVFhY2hNWClPMmh0anNuKFVCVSUtQmw0N1lvUl9pay00XWlJdGRAaWQ7Uy8KLUNwS0BlKlYpalI7I0EuUF8/OWxXQFlSX0tVci5lODBoJE5KYjlNW1sqJjJrXGk3UCJPYTNxb1xAdFBvTCdTWl1ECi0+UmM3O0VBLmw+NTtKI0xIa0YkaE1cLCIsOU9lRzIhPGkrZyYxVj1FITVvYU5Acm1sdFhwKSc0OC9QM08sVkdxNwotKERrNCJKZldWKU8wY0UzYE9RYyskbTlqai1eISVRRyRbc1IjbXErUSZjXUs0Zyk9U1hbP3JhVSlUbyEkKTw7dSMKLSNbal9LXnAqKjZiLyNVJzhCcGohITlTaUhQbElHNCh1dGAjUFJJblQxJ1dzVGFyTXBHUzRTTWIlYGtkRS4pWiwvCi1SPVwkNiEycV5rVUUzb10pYVJIJSRrTlpMa2IvbTokcW5EUixfV3NrQFI4YSE5P2suJTAzXjMpZlhOUC8kNjpjSwotYU4xOjAkWU4/ZVB1Rl1JI0E7MUpPQk81LWRPIVBLSi42ZkoicCIkMCIybVM4NjFTUXIjYy85OyRbPFMpaiM5TVAKLWJzVTYpOmhadV1dSk5bYTFnQ0VBJiFjaCw3RnQvbWQkRjt1O1VCI21hTCFgUSx1K2JBUyFeamhtQ00rWEpzJV9nCi1vKyQ+KS9WXUB1KDtpc1NbSG83JVllb0A1PUYxV189LU9FUiQiZixgbCNfcDQqXVQ5MCguRnJgST8rTVJiL145VwotUzZtW0RGM106cEpzU3JOYWxqaXRuZW9sMTtiN0Q4RlZmPi0vMlglaydIQGUxS0koMUFMUj9iRmIiaiNyLmBDUlQKLV8yJ3JSKzFxci5salxNOzNJPHQ6USpSOzhpWS5NVlhCK0ohIllhVCsrR0UpLidkVjgyRm9lR202V0hKZUpaN0s4Ci1ET1Y1IjVYNkFoXzxaNE8/byIiWTIyYytpJzMjZG5HUVFuXDVmYTN+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MjUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTI2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNDc0IDAgUiAKLS9SZXNvdXJjZXMgMTUzMSAwIFIgCi0vQ29udGVudHMgMTUzMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1MjkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTUyNyAwIG9iagotPDwgCi0vRCBbIDE1MjYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTI4IDAgb2JqCi08PCAKLS9EIFsgMTUyNiAwIFIgL1hZWiBudWxsIDg0NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTUyOSAwIG9iagotPDwgCi0vUCAxNTI2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTUyMyAwIFIgCi0vTiAxNTM0IDAgUiAKLT4+IAotZW5kb2JqCi0xNTMwIDAgb2JqCi08PCAvTGVuZ3RoIDI0OTAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcXj4uMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiUlVyLiUoNVRnT2Q5KjpmM1htWnUjaiwnWmQqY2VmTF5eMWsuRCdQOzM9ODUjSk8sTWQKLTRaUXIyWkVqam5oSzprWyVTJWBNay0vPk1SOC5CTDhUXm1XLjRbMEJMN3A0akBZRDpDWV1ALitfNlRAVixKZW44Ci0oXkNNRUInOUMiXDVGPCQ6RksqWCJUXFZNMFk7bDlpOitCZjVpK1JOQGsrb0BeQ1NhbjNYdCRKY0xlL0krTXAvSgotK1RwPF1dLnJPLTBUQDw9NVc9WUxaYCJcPFlEQ0NgTlBjXjpZYDwuMjVTKzUoR2phc3NfKzhHXiJVblhibGlbW20KLW9WMCtJIVppLFxjUGVATVhpWzU1LWQiMzNnbSpqUD9wSFVaL3VbRm8kdEVdMTJORF5bYCVtOV0kZUZvQ2NgazhFCi0lZSRFISZdQ3JJNXNwOz44RC01SG8/cXQvXjRXMyozX0UoJV1mbG1JQCpxKWkhUmc3YlkiZ0dgaV0vVjgqMm5WLgotWDwqRStZYE42MiMpUnFILEtCaEhhPWtaMGkpKEdsQDo3TSElNytKJChea21oP0B1OVQsLEMmXSNkXC1YNissRVcKLVIrSzBtKmgjLDY5QiVqaCw8NChuTiY9OEMnS2hGM0hUVFc7Vzd1Ukk6R0MqQGFlOGwwNCRBNEhpJWhSZGZbRyspCi0iIjtua2FPaE0sUSxzW2ZkNTQpUTlrKEgmSnRRK1BmVjBbcSFBKz4+PlQza1kuXS9WLzw2M11HXk4tXWEuUlwzNwotLDVZI1RiTUctLUZDJFBTQDk4Vyw8YFI6KzIzTSFgZktpXy5KSDBIaFxiNTs6P3MkSDdFIzJZIzdBIjhJRyxqamMKLVlKSE9EUTBRTC8/JTdtIzxrIzhHYjpVJSZsISZlLSlYNyZbKjlYSFUsVU9JYmFBcFMkJDFeWCxwU1slJSg5OGZbCi00MmdcWUVHW2ZwTk1EMSwxPTYxaGdiYiQ5WFtfZF8iIUhKRCI5VlRScHVsWCxuUC9YdSRzX0RyZGwlPWZkck5yZwotcm82J0ImZmFYMlV1SWlTb2FwMT83THEyX05KPzVbTVIhTj9nXXEiND4lNDNFbHU3UkQ/WVkxZUBNQXM/QlxrS1MKLV1VN1dPQ1s5aXBrY09xN3A6QjsrVygtKyIsSD9QMiJDQ2xHKENeQl1kPyIvLG4qWld0XkxbUUZoaW1cWytMS2xTCi0iYkwsSjVWRTwhSjA5Uzc/R00xQlYkJ0lzMkRCKzIjYWM2JDwyaV9NVUpUKVMiLzU/WjhEK3RDZTk2bVwpcmwscQotbmFqLCNkWUxmNVNOWXFnYWFzXFA6dEA9LUQkcWc0TC4uJSwhRG1EYERZMlEhMFxoJUM7VWttXVslcCVgQGdrX2UKLWUuLzFubWZtYDcmIT46JiRYb2hgS3M5JkM2LzI5ayQhbUtya09CNSdaXyZhZWBaRSRgWlB1Tmw2JjxTI0I9YzBHCi1AYmdIcUw1Mi1YLi85JkAhLFBEZWtoN1ErT01fam5sc0JrcW9GT08+ZmJlM1IyMlVqaC1HUCgoLG1lciUiamUtbQotNWJMQFVQMG1CX2JsIicsK05qcFtvR0xFKjlXU2wyZzMhYydBN0NCQjMoPiNfKGdxSGgvKzc7SS81aXIiKk9CNC8KLUVLMW8sVl5EdS5lNDU+ImchSGooK1hMWmAwb1tJaChxI2BmKkZeNT9SJ0gnS2E1QmxQajl0YUgmQUNxKWU9dXVoCi0xQ2Q3P087QWlCIzlgKnM8RCJGSTJUa2lbKUgnNyskcTFKbzNXY29HYjdlX3MkdXAsLEFcKUUzZHJudGpqSTNEQgotYmRIOylgV2EwPWZwKnJ0L2BrM1xRXS1vP0s0W20kQlg+OTpAKklVUkYvJWhxLnVRTmlQdEsyPGZManBkKC5WYl8KLTRKKSUtVWgzTWpRTl8xYTVvRVosZSU/XE8jQzZvWVBIOi9SKGI1Yy1kL1g2cEUqRUBLXytmc0gndCNBZGhlPWJtCi06YjlHPyxbY0BQaTxVa3BKXmwyPDNgUDdpMVRoMyI5SzM3SUhTIVtaciFcVTlYTitkdG4uM1x0IjlCZTowMTNtVwotZSopJz44MCdDOSQ9XVhUK281ajkqOyJ1LFkrdDhtaT9SZEdaYV1kbyRKQlEsOCcrMTNTVjE2V2tNKWVBaS5BXWMKLVZuNWdPYmw5NCFIL0Auc0syJzZVUm1eOiZvP1RlSzpKRT5QSzgiXm9mYmAqKV8qREY6YlRhRWg8QUBQI2dDN1RSCi0mL1JTZkNeZlRlLnAnTyZGLm5KI1U9N0osJG5KUzwzJictMywhKVREa28tLCgkJEBkclJQZFVFK1knPS1QKjBPWAotRmdidExvczRJWUE2IjdRL01xX1tTOywpc0s2Vj0wUFJ0U0UnJjZKOTNFW2tWYGxOYllCMmQnQ1smUmlPa25PMj0KLUtwLmNgLmkwWGo7dFREXi4jJUwlLSoucltxRWRuRCZXVSFgMzBjJ2w9YitqPipYMz0yIi8xVl06J285a1tOVm49Ci1pIjRMYm5EMVo7YiVYVVhMUWQxWytxaGhpKnNvUTtzKyFIOC4xVCEiZFhvXEYqOD11RWAoM0U9IXQ1JHMuMmBBawotMXMuaj4nYFU9S1UsMC9mJkFtLiFbdWRaa0ZLZTpVKGtSWTtHXypwYSRSZmolZHEnLzlLPVU1RzlOYkQsLy9oSVgKLWtuX0NLPHBBYG5zKlMnIkNeZTw4UW9gRCtpZlFnZTRcPVdYZz5oYDAqWmBVJ3A0MnA6OWA4NnJHXVE/V0xjTSg9Ci1qcklQWENkLS5UXzdvWGUvKmlXY1BqMTRhNDZxOjdtSyxPIlEjMEBTLHVDVjEtNlpTSDBTZD0jJjZ0PGYrRjckagotbEZoRElwPjUmcklTY2dWOUlAalZVRClzYG4kcXNSJnI/Sy5bI29oYkJSdTZWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTMxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTUzMiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTUzNyAwIFIgCi0vUmVzb3VyY2VzIDE1MzYgMCBSIAotL0NvbnRlbnRzIDE1MzUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNTM0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE1MzMgMCBvYmoKLTw8IAotL0QgWyAxNTMyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTUzNCAwIG9iagotPDwgCi0vUCAxNTMyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTUyOSAwIFIgCi0vTiAxNTQxIDAgUiAKLT4+IAotZW5kb2JqCi0xNTM1IDAgb2JqCi08PCAvTGVuZ3RoIDIzODAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcXm4+MWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmo2LlY1OG87TVhmJGVKbWAjNCpER0tMJygxajtJViRlUlNDZFhARmc1VzMpS2shTWxdJEYKLVtkJiFRIXFDTWNKbjIhUmMwIUonSkQ9X2FRcVYqSi5GNyc4MlprUEQyaU5TcWtWbi8lcXMjRGQ4ZjIoXyI6akEsCi1zI2RAOXIjJWovUlZFSW8wOCZLaV5uQ2xLIzpqPDxsNylzL1cnQ24mSzZaWjklP0lJNiE9T0hHWm9VKTI+XSgpXgotNkp0YFE3KjdKLidMYmwkNVdNKHNXOG9sPyQwXiJ0ImVrRywwVExia1tQV286ZltNTy9FQkksNTc6WVxyK1w3ZHMKLTVXXUc/KjFJajlfZlRpU2EmQCkpYFBvKjBAbCcmZ0E6NVJuZE9cSEk4ZVJBZi5uXk4lXGUjK1FedENIQScuaCRqCi04OTRYSFx1YCVhUzptVWI2NSMwLyFOOWZSS3UoL1xrSDJqYVUpOFZbM2JGaDsxMUlzU1YuMUpsMTlrVCJGPz5JLAotQCtiW0EsP3NJOzhZYDZCMyI6TDJiLHBWQS0ic0ExOSMwYHBOTyM1Kz1dW3UzNW9JRHNQYzRHOytUVF9JXTQ3VEYKLS00SWU+ITxrZmBDQVxwKCNkWFRyTCZtMHU8SnQ5UjUtUEhIRkIwayMmI2VWTSUmNFpnNE80UlBfXGJTM2krRUglCi0sM1lzTy40dWdpVlpwUktEQihZJUVvQjhdTGMkYTBMIUZpdSMyWmpkQUQxJmIhOiQvVkUmXitlJT5ydVEzKSkyTAotSTBAQSUiZDFrVTV1I3VHNUltTXFtMHFxUmhEI0lBI2pIYVw9Ny4jX2lbWmRRXSo5RmInJyVlQToicCpcJ0VDRloKLWw6WFNyKGNQJ1BoV1tCYj1BYk1WcTddYF5OdDlWJDJIblpgSTBBSCQhLzs1QkAwVENDQSU3aSUocC5JbFFdWnQ6Ci1HaXU7QG1tYk8kQUBQaVhbViI0VkRBaVplP0p0ZW0mXTI6NERcJmYlMFlXcyYtNGdTUS4qRXFtJEkhK2FdMzlZLAotRlgmYTYnPEwjVkVpRjpeUV83MnNCPk1BW1UwUjFXSF82N2xDVUM0KTBtPCo2SCklQ0VqN2xuZDlIKHFtVkxea3QKLUpINS1DZ2Q/N0NEWWxkUiNtaWlDI2kha0UoQiktamwmaG9yMG9nbWlcMy9yakxoIlsrYXQ9W1AmZzstPko+JCpNCi1rSDlnXz43Il9HYWktI0ZCXi9UXiQkN2NgXiorMFAqIzZYVSVjckVJSmNvUWIiLjE2JWJHPGtwMFBsJnFLNG08QQotZDxeQkVOLTppKnExISlCMmoxWy8qL2FSYyVJXSJGXGJBNUM/J0EscWppSFtRQi0pZlNrW1wjYCZdTE9sLmBCU3AKLVRqQkdwKDU+KiZxLVRlLyVgZCs1WF5xIU1TTylxIjAjMENfO25mX0o1cT1AQi5NRSRFZEwwTGprOmFqIVY3VkpqCi1dPyFxUj5YZmFHLytDcC42LjpDJCxWYjdDLEVyVERNME49RUdTW0liVyhbTXJFdDNjQjNrbidOSzBwYjo3JyEtbAotW1pdUitkMlxQX0x0Kk5jalBsMSVFXWpSVTV0OnRWcj91NCkyK1EqIjA7Pmk9Xz5zV2QiXERFPGI9JTVKZFA8PGAKLSVUIzFrM0lJNmwiTWtVKSZuPDw9Yl9IYyMhYWMpNCtJJU1LZWtqOHEtRjJHaFVHMXBdJzlbO2xsLG0iIkZPNko/Ci1xSjhaQ00maD5Ia19sOlFHIyc6MjE8Vkg8Py1vZi5SazhWNmJpTDJjUi5PNCk3ajFTPTY3YFBzQFxIYjA6bGQpKAotNTdwdGUvLVFGT1BfUixUKj51R28tYDRQQV4vc2FNSzYsayIudChdWE9OZHBfZ081JjBaP2hZO0QmXTgoOVAjU2IKLW1OKERNMzhnNzZTOS8uISMlUjwqUlhzVSxFU1JRYmUialhPYjlSNidZVCJzL2RrTzM+Ok1HPzAsZ3BuMm9cS3NACi00OTx1PDFlOHVkaic9OjckXVVvNHA1TVlwa3JmTFwzR2w3aj5iMEokPUZ1UCpJXEc+MjtcPWtFQVRgNU9gIl5CdQotWCg8LGBvRHVjZCtDI0NcLnU5VysuVlY7aykmKyFuMk11PTIhRT5qdCgkYHQ3TWF1PF5MQmtzPk09VXNBK00nT3MKLW43dWFdZ2EuWDtCbVBJJWVlaGMzcU0mQy9lWTshSUE1XUBCJTtkZEI3SDw/LlEycyxZSkEscVJqaFZeKiNxTCxmCi0vSFY8RG1YOElvM10rIkluSzFfOEotdFFELzVRMjFhKF9wNDZRLURUWFBzYHBuRDUpQW43Y2UuLWtKb2cjcEAkIgotS2ZMS0lXMWVldSRtTTVOS2RUUlpTVCUmRlAlL0hRTVw3YF09MmU8PSFWXEZbJEs8MFlOO04kOixcL1ltXmsuKlwKLSowNk5HNDVsdG5aVWYnZ0FwKytcR1dCMWBhaUA/NClTOS0oJVtiSyJNK1EiQzpXN0A1J0YnNT1IYCIxR1Q2TzxsCi0hcGJMVWtmK1c0WDI1SUc3KHNVbV9NRGRdXDIyNlc+cWpzNWBMNG83ISNsJElPa2stUCJUWj1SQTtrRDNCIlhcSAotcSJILCI0Rks4QUFtQCIpXyotIVtLN0NhWzQxWUhmL0IxOy06UU9UMi5PVWhwX0xQTDVfQj0hPVs/XSZcS3Q4LnAKLWJhYjsnSD5TQz86KVBsIkUoNk9vKDIvQTFrZy0sNTg2TF46aD4wbUA2W0pmYGZOSl5KS2tMYUVcMEIiaitPLEdiIVd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1MzYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTUzNyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDE1MzIgMCBSIDE1MzggMCBSIDE1NDQgMCBSIDE1NTAgMCBSIDE1NTkgMCBSIDE1NjQgMCBSIDE1NzAgMCBSIDE1NzYgMCBSIAotMTU4MSAwIFIgMTU4NiAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMTI1NSAwIFIgCi0+PiAKLWVuZG9iagotMTUzOCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTUzNyAwIFIgCi0vUmVzb3VyY2VzIDE1NDMgMCBSIAotL0NvbnRlbnRzIDE1NDIgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNTQxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE1MzkgMCBvYmoKLTw8IAotL0QgWyAxNTM4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU0MCAwIG9iagotPDwgCi0vRCBbIDE1MzggMCBSIC9YWVogbnVsbCA1OTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1NDEgMCBvYmoKLTw8IAotL1AgMTUzOCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE1MzQgMCBSIAotL04gMTU0NyAwIFIgCi0+PiAKLWVuZG9iagotMTU0MiAwIG9iagotPDwgL0xlbmd0aCAxODQ0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83XF9JTjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qNi5WNThvO01YZV4sPS8sKFFRPFtIImlDZ1xfSjNzTiNSQCgrNWUsKltUbzRzOiIqcF10Ci1GPy8vY2luTnRHaCxFWDJIWDRxa0pCMD8qcSltTWxXREhRX041S28kZjxzWFg1V0w+PjM2RWlXIUoiOz0kXDppagotXSIsIlA+a11HZCNaMVQ7RCZeXyVfKF0rNSNFTFF0LURRLXJYNG08YzZTTWIsXUU9cnQzS0FgVikiLCQpJGt0YGcKLUsxSyolNjg0M3ImSVgzS2gnKiJRVyo2LjpkKTRmT0t1NGJbMmxFbGosOixbWVpeQm1tNW87ajlOMiolMjNmWFFfCi01V0I2QEdmMktLVU1AJDg1aVxwUzFsZFhfclkuKz9mVDdrSSxHOFImNiVRKlg1dF5aN2YrbDFSSz9aRmNDQ0w7LAotOm9abl0hIkNfbGdjKXJVTXEjR2A6OTdZIzVga21UMmFMOE4qI1NzYzFhcCZiJnBxMk1OVDRGNiZMInVFK3BRSjoKLV5nJlcpVU0vVGoiQD1DMSZJITBNRCU0cGcvTUE2ZzBoJC4/NUBGT1szWG08SWI1JF1hPkoiV1JlJFVWdDtcJUkpCi1BQ0JGQjImJVVFLlwpMGQtcGVRKEtGI0prKVs9R2VXL2lPUExwZSEoX2c+JDskXD1qRlEsXGMqV0RXaiRWKGpFWQotaic5ZWQ6NG9AcCYuREpHQTJzZjpcN2NSMkBoQHJcJWVkRVBYRnBbJTBKXzN1MkNeYXNwcyhjNkFjWUg2LkxBXj8KLVBidC5RW0Z1SWxmNzdQZlxlaiJbTWBlbT4lTVhYQF5lbTkpSzRFdTZdRTxFRFEmSHEnVihqXk81az1SMEgqLE4kCi1oLzVbOk1CXj5UbzZPYHBfbCctIzhZdTAxWyZYJyMmLl5nZiImcmJLOjZsR11HV3EpYmRnSCZWM0s9MjhATHMiLwotMkEuaVtVUk4mWDghamomUSZWT0VmNSZaXyJfI0M8R21IXXVeciRHdDBvVmxyPS9lR280NyFnalI/aE5RX1YuXXMKLU82cF5IZ186MFxrZVttPyo1J0x1WDZgJFUwVFM3W0BNamUiRSdPczwrZUZvQFYwcEFKM2ZaUk86UU1jLnBIYXUzCi00Q1Y+UWNBW2cuTGgyc0RDLENsc1xFKkhRciJRbDgtVnJIRVVoTiw1PygwMldHQV0zWTxrXFZEXzZSbSY1XygkbwotKEBEVzEmZmNATlRjTEEmMEg6cixMZDk1OGw0cTFLPTlFWE1IZjpiYCkhRF9RJCFTVmElKTxaREVmdERdISJDcFIKLVssaEFrVSgibFsjQD9SXltBQ2BMJDM+QilJSD1jMSM6SzwyITxWOmpEaCwlLUI3Zj43UD9LbU9LV21jRVlTZGNqCi1BNWQyIigpSHNDKWFlcWFAVVsnSC9gOUczNmVrdU5COjExUjtNX11TaSszKS5URmpXTjhmcU4yU1AsKUsxJ1loRAotW0dzcXJOUTdIQyMzRSQqLCs+VyQ6RypYJjVnJFVzbm4qcyZRLjZSKnJkaVxtVCstQCpkbGJVPlNfZFBpJVxcazoKLThDNUdNX05eMUExMGc5XFwhSko8R1VhLVttU2NhMiRSX1xAWF1kS0oxbCQ/Wi5uTTlRUFU7VlIvKFEyaSxwNFYkCi1kLSlxYExKInRsMTMvUzUpJDoqJF9SNWFTP2svbTdYZyNlYnJyWyMkS0A6JCpaPSlzZGYhbyZwa2o6RFhmdS9xSQotM05rYWxKbC9LcjBlTlFrQD0hX0gxUDN1JG1SKlhVJFphYExLczh1QTYvOGAwXz1pRShhXDNfOS45aTwxb2tHXW8KLWdIISk6ZDc7TidEbTsiXyhkaGoiU1o6W25iMVopRGg6Mj0vZStTOWAzXERAIi9GSmIwJVs+QWA9JFwnUUUpPU8/Ci1bPWEhS0VSPDNoREBvIjVdPUdtQC4hNEkqRFptMkhUS3QlLyxTISoyYW0sYTtDRVFIZDxANEInMFo9M3Q7JG1FKwotLnMsVzViJ0xISl8kKiVzMVI8Zk1xOVlMXTljQlspSDpKMDNeYDk9aj8nXjdqcTMwMVgpNiU+PiFNZmh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1NDMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTQ0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTM3IDAgUiAKLS9SZXNvdXJjZXMgMTU0OSAwIFIgCi0vQ29udGVudHMgMTU0OCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1NDcgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU0NSAwIG9iagotPDwgCi0vRCBbIDE1NDQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTQ2IDAgb2JqCi08PCAKLS9EIFsgMTU0NCAwIFIgL1hZWiBudWxsIDI4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU0NyAwIG9iagotPDwgCi0vUCAxNTQ0IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTU0MSAwIFIgCi0vTiAxNTU2IDAgUiAKLT4+IAotZW5kb2JqCi0xNTQ4IDAgb2JqCi08PCAvTGVuZ3RoIDIxOTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcYCReMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmo2LlY1OG87TVhmJGVKbWAjNCpER0tMJygxajtJViRjRyFsUVlFUUklNipwXmpqPUVxOlAKLTFBIlEuXXJwJVFrXUptKV03KWUjMW9NbnNMXyU2bTgpQSJaWSxhKDFWXWRJRyY7NmRPISxOUlcrZz5kWk1NVWlZCi1SIl9dIT9sMCpoO0o3WTkhazssSkwtXC5gKGNxZ2JfRS8xIiE4UiVUQDdYaUk2cGxMVzBUOUtrW1B0byQhNyg8QgotbDAuPUIlKV0lITBvaDJIZ20qb1s5ImwhdFU3ZGFIXDtOQmIpKSZoQUN1X1k/VWFrVTUwISR0dCRmXykuLColOigKLWdHJGE0RWchYVhUUC81XUxDLjpsa1cyUFkxXjpqVF9SJ2tLMTQrZDcvSWYnbyFrZ2xmX11NSEsxc2wqNztOa1ctCi0jL1EhIV5zPWJFTEVgZkVRczJiV180OUAlIyY5KEAzJFFRVC8wJDUzcGZhbD8xcGkpYS0jMl9aX2k7UGJDbUMkNQotSEVdLURVUkc2KCVSVU5tM0pHYyY0VjEiSTlMb15fZDZiJnElWCQuODErOCU0X0BSMmVKQkJVKyw3KXNkOFtJb0cKLS4qXGVoPlQtVExQNilGKGotIy03JSJhXFghMi5bVSlTQ2ZoUS4yZzAsOTE/JyJrO0k2KTVBQGpFL1JcOEk3Z00rCi1jLlpjdU1NIjFCUS9aZGBELytfPWMoNmdeSzw5LSElQU8zXCdcYDJgZ2NVNWw9T1RFbWoiTl9OIyZjY1wzZlQ6TgotYT5BbU8vPDsjW2ZtbVZlPTtEUVZxLFUsZ2guITpNPU8rTG1iQXE4MS8sNjVdZGNHTnVqPjA4ZjoxK3JvX2RMWCsKLU5xI1pbWE1uJUVtcnFJKl9SUWRfZiJmPU0lTUFLZzF1cm8sLGFGLWRWOSVbVyE8XFEnLk50bFlrS0BiNFdwPj1ICi0hLnQiVFVWT2ApYF9mOmlbdUVKKjYnI19HIkU2QE8iLW5NJzdbPDc/PSZUX25hTSMlLVVUMWc0Y0xCTyElTE9GZgotYTo3MG9JTUhSWF5lciUtRGcqZm46S2VhJ0RWTzFpX2pnOzNiJWRZXmZqJ2cmLm1pL2oxXmVrMG8ob29JKXBzQToKLVVIaSosJGhIInBrc0Y3MVBTPVNFXmQuRGRfYGNkMSJpSi42MnNSMDFjODBYR0lZUjZqMSNMJVsrJXQuMWpXV3VeCi1GNC5ZV0NbVlg+VWI3QSo/bCowUUxgdHJlJDY+SEcnOChYRyVEZWtaXF5zJEpoJT1jNVdlbzVyNzEvSyhuOSZzYAotPlc8Yl5gN0xRKj1ZIXEmK1dCazZxOTRdUyNtJDhFTElMLm5KWig3K09Uaz11O3AsMzVpJGBsZWRIQ2QpViJGYV0KLXBDL14iJ3U6R2psK3EwXkZfJyYjM1EjN0lociZDJV5uTXRTK0RVdDhYOUFkUkQqa3F0VSlPXDNkTlFFQywrbUovCi1wT2FUMkhzaVRaIkEhaEVKUVF0J0pdWy1cQlZzKC1IZSIuU2ciZiFHV1gmVjw3OyI7QiZLJiFqLGA0JkQ1SlghXAotNzdEPENBRiwqVUVFckAsRz5Qai8xQCZwJyU7dUcvQmIrPmotcy5uYk4yQzBuWVlUTGE3M1RCSjJlNWk+Sy91SkwKLWlRYVNQJ0oxKEU2QTo/JGw3YWIrYCMycVsjcTBgMnE3ZyVZcCddWnQ/I3FSRWJoKV9LLDlTUCs6Vl0qOzp1ISZuCi1TQ2A6VEFpN0FFaUB1P3VpTFUlIidzLDJVcWhjQCRKWUIoTDV1OWlOaTYhTCRFLTdoYiJhQ25ib0hKc09VK0x0TQotOilWdUtuLS8+R0hiVDxTcj9qUkciXUw/cjowS0E1LFs/aCRlIjApNSZGRGstJ1hyanFfJWBJWS5tcXBeYiJcUEkKLU1dY2JKNzBwK1EicSRWJScqPjNVUjBbaEUlblVIMSIhJlQ4RCk1IkE4SF1XOT88WV1yJjQvbFgpa2RESyZsNF5cCi1BYFJZSCdELWI2Pl5NVEwjYzIuLU9RYWNSZHFZMUJUWWU1RF1FZVFVLyJXdVEoRiZxOyRlJGtXLnJDZTFMQlklYwotZFNpTUM5M245WCdmY2xWK21PJD5gPTAhQzMjYjU0SCMoUzsmMF4qUCZyUVIkRElMbVE8cWRPVWYhb3BJVHJ0WiUKLWAobDFXJyIwdGlMOmY3K0ZeNVQoLiRvVnNPdV9aWCpART9fVF4pQyozTV5fJEI7Zj9yVG5RNXVlImRGJlo/VlJhCi1iLj89VD9YW2VUSFhmZEA3JzIhcyxpMT49JV5oa1VYbC5qUylRUG5RWCNOJmRWYjRvPVEsJ1xcQS8pJCQ6XzZNJAotOydnOk4zWiw1aEVET0ZlIzNPQFMhZktJayRKW2BSQ25nMSZMLkU3IXFVJ0spWGQ2RSdBcGcsPEUxSWQ7KyQ5NCoKLUYiTkFxTCZvTjtncipWMUNNXjJlanQyU3RuQ0NWbkxoSjM7TC4yaCdUNV5oa01oWTopVSc7Yis2bE1QYF1aUyhECi1cSkI2SGRCaV9gN3FnLVkxJy5+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1NDkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTUwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTM3IDAgUiAKLS9SZXNvdXJjZXMgMTU1OCAwIFIgCi0vQ29udGVudHMgMTU1NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1NTYgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU1MSAwIG9iagotPDwgCi0vRCBbIDE1NTAgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1NTIgMCBvYmoKLTw8IAotL0QgWyAxNTUwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU1MyAwIG9iagotPDwgCi0vRCBbIDE1NTAgMCBSIC9YWVogbnVsbCA3NTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1NTQgMCBvYmoKLTw8IAotL0QgWyAxNTUwIDAgUiAvWFlaIG51bGwgODI0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTU1IDAgb2JqCi08PCAKLS9EIFsgMTU1MCAwIFIgL1hZWiBudWxsIDgyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU1NiAwIG9iagotPDwgCi0vUCAxNTUwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTU0NyAwIFIgCi0vTiAxNTYxIDAgUiAKLT4+IAotZW5kb2JqCi0xNTU3IDAgb2JqCi08PCAvTGVuZ3RoIDI4MzUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcYFRuMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotPmZTcDNcWmN1Tk9bLmo6XTAvM00mVk8rbVlzRigzVz8qWEskS0AyOF5lZiYqUy41YWVFTHNCVytjJFNeUDhAV2YKLUduY1Q7S1c3YjhSZ2smQSJ1KVdOZlB1MFUlQjRhTXBwYV1OK1IsNzNrX1VPJzVkLS5yPVBQWm0iLyVwYSRtVEhECi0yQFFaaG1QOUZ0MF0iT0VXRVRpb10rMzwibWptbkNjOCNSKG5ncz1EWEUyYmFMKjhmZSYtTlMsP0JwTlFXNVM0YgotQDAiQS1OTT9sa25OO2pkbypnVz1QTEItI25Paks3LDBVPHIoZEdpZUJTQGRuTHMuUTVFLF5nX0xzOj0hMVcnOzcKLVBTZi9WNWZ0ZEBOJjF0VCUzcVAwMTtMZEFOW2NSbSQ8QTtaai9oQiQlPnIkMFg6RVlpZkooP2JfW2RCZmopakVECi02Ij9eJylGWC46L0hnXy8odUA0XytgKko8JEB1LlApJF9pKFpLbUpwMzcuc2RfOHA6KjxNP0gvLiN0JlJcdW5gdQotOERjR0tATzBWcDk5P3JFM2A0aixEQWlaZT1HQWJvTVYrZGMlVCsnLixWZDFOT3E3cWE1aihfYidaOy4kNkJxNmEKLTpxcl1XVUpvP2dSLUhUXGNvQkUyIjlabUUmNys+JzliXiNxLG4zNy9OKislYD84bjdrWEZxL08waCpSND4jbUktCi1fK2A2NjVpWylUJjNEJD1HRDZTbiE3cFFIT1JVS2A+WlclRigtS0svQ19uXywpT1JsOS4ncXVtNS1PZkRSOGkxIgotRiM9RjlGZWdfIyIqaG1KZ2IyVVlaSzVoQmlpLCtUVStANDwhUGh0PF5NKjg8TEolJUxVP1U9dV08Xmg5WTU/LCIKLTdGWiM4TS5fXzJeO0dyQHA0M1c+VVN1J3E4RkdGJ0FtV1NdbWotcT5rakxMOjFoNEZYJG48U1ovZ0ZmMy1vcD9HCi0nV0MwJ0hFXjdnX2RjQm0xOTVjVV5AMTUwUGhRW0Vwcy1cSGlRbiQqKUYwdHJrOSpJLCNqMCtoUy1LMC5FLk9WagotZUJZWzhIRUUtWToyVmhHQSJfTCJNaCtBTFlZWCVLYXIuYj81MUE8XCtncVY2WDxRUyRNPTV1c1g8Wi8mSHFURkMKLVtxQWFuXzlyYVAwZ2NMU2EnMCUjJWBfOGxFXWs7bC1mJ09jJD5gb29YSUtScTJdJE8uJCoxUzJkYkVyNjo8RT5JCi1QLiRIPj1yOm4nUW5rKzJgWjdhJy9JbkppUSwlIVhvLEs6LDohNz5hM2AqdVYrLF40S1ZDYWQ7NVwoPHE+QVw2RgotciInKG9HL1JMSFxJP1cqVVRRSUIkNkV1UTtGVClqSyUiUSZSXTA3PGIrJ3BfT0UoYlw1XTZmUj1QTyl0JnBOMjoKLUNHQlZHM2lTRE5fM10wWjZWNz47XCRpa1kqVDFdcUM+OWdeLDVjOG5aJFY4YWcqISVKRSIlWj8uN0dBcGxAT1BSCi1MPjg7JT9BWWY5XVttV28iLlExc0RGbGshPS9zUmFhQz5aZktlYjgvSD0payY7KEA+aC9rNW5XKi9KXVpOb0BXLgotUSVVLVAnW2kiRE4tW1dPIzZ0K1hDWzNASD9vNS5fWTgqLVNtamgyXSZyK3BgbCEyRSRCRWdKLC87ImBWUlg7PW4KLUVeOylnMzhIKzspP3RvOjNgdVlXa15zcz5KSU8tX0pzNGI6YTNQKz5ARUc8I2MpKVA6aGE1cGMuQFArbFFiS2xkCi1FLEdpUSI9RkAsUCdBISRHdTtEMjQ+TVlFPyknTyE4Xl4oPDhQKEtcLEdFW0NZcyJbTnBcbXNdJDVlaU9Ca3RbVwotMURGMmhFdC9dTjxlbHM5VUI+Tks7K3VDLTskOEJqVj9DUyJCZywqWGstaU9hZzxrczpSSzojWl5CS007N3BTVyEKLSxjOS8oTzNsblFTbzZtcyglcE4jKG4sa1VXPWdTbVxcLCkwb18ybF5mbj9ZZUM2UFYycWo9P1NgT3EhJzVHTzBZCi1OaEllWzBaYHRHP10+Rl9sPUM7O1A4N1MuIV84Llo/NSNZVTVlKVYhRWJNPiE4LTxJMDBuRFM5NCtXPksjPyRCIwotODJZSD9ALE1rWUVycEdcbz1DSHBuTVtSYkRUQ21CTWU9Sl1LQFQ2aFw9ckcuIyVnVm1jYmZocmFmVCQlbHEzJGsKLS5NKkcpJ2syZD87KWw4byREVzVHSlhIb1pCInBhbztpNCI/VDJRQWNlVlBxW05qKG1QVyM+dV9XWF4jSTgwQ1tDCi1KMmRjL1VsTmtiSlRpXGhSRz9DTlskOHMrMGtDcSg7ZSpIXDZaX0M8JT42TkQhNjd1OEFHTTNCOSY+L1dHdFpYKAotQU5YRC5tTyQsXj9XMy10Q0dYV2o+SD9Aby1nWWNQMTFdXFMvJjssK11HPUY6OSVcbCZwajRbZEMqUVReITRsO3UKLVlcKE9vN2E/RHVcZy9pbypBRDMwMUtNWkZhTE4rSW9gZ1heLDFLR2c6XkE5c3BUPm1SWmw/PzVFPVFZKTNpL25wCi09QjkkdWNnV2MrVXJMJ3BqRCNQVWpXYXQ0MCJfNl5wMENmNCxIbDdeVSZrPF9NOD0uRSJCZSYxSmwpPy1ASVBuagotOzc9LSRmNldwbFpCW2pETF9fSi0+VEFWUDIzSGgvLS41dWdQakBsVyJAMFgxTEVLbkIsSlwrIXE7QHRLcjM7UW8KLSFPZzNwaSJxIjknWjI5KEhWYjZYRnN0byohS29MIT1MbFUkQUFcSFUhXGQxUEpKOFhzVWJ0UVhGMjlVOTQmVkhaCi08bFJGKGRLYiY6Ul5ZJixMMjVuciUnS240bDkuYFdbP1o5Xk4+U1csLE5xUlNPPmduOmZwUy9jQGNHNSFhWDROIgotMWIiOnVMWnJNO1BQPDVRNURDRCgoXilBLC5QVmxLOnUuUF8jcUpQX249STFYbzFnKipgNGo1NTFLMk42SjFAOGwKLUJlREZTNS5vWzZDZnNsZ0dWNU5sODJ1U0VsbVo0OlhXdCdjZmBgbE1DVWVyNDRgOmY8XVtNMzk6JHBuUjQ/KW5eCi1XakBeSSMqdFFPXigoRE1FWFdHSUBeSTo6ajE0YFgtJTFyNTduUTxHJSgmLEQyTkhuVF1AVk1xOzJVUD8hPzFnRAotJVkxaWVSTWAhbi1EamxAUGlBPiRfRi00U1RDKUxWPmBMM0E1OGExKShDYS0xKlhnRUs8WFVzMmI0KSddaGNKSEIKLUkpTFokQyJHcVRCJUo9JllfJkllZW5jRj9lK2VdPmlhIWRGPCI5OyRQL2c3MUFHWDtNMGptOHUqZWA6KW4tc3FmCi0yY1I6WitCT0gyZFNbKnBaRHFFU0BiUCQ8KG1FUyspRyoyazhPJDpOaExOUVI9WystcSo+cjpiUmZUO2Z+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1NTggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTU5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTM3IDAgUiAKLS9SZXNvdXJjZXMgMTU2MyAwIFIgCi0vQ29udGVudHMgMTU2MiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1NjEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU2MCAwIG9iagotPDwgCi0vRCBbIDE1NTkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTYxIDAgb2JqCi08PCAKLS9QIDE1NTkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTU2IDAgUiAKLS9OIDE1NjcgMCBSIAotPj4gCi1lbmRvYmoKLTE1NjIgMCBvYmoKLTw8IC9MZW5ndGggMjgxNSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1xhMCkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suajYuVjU4bztNWGYkZUptYCM0KkRHS0wnKDFqO0lWJGVMXm4nPThZNVdwWT8yN2NaXklLJwotQTJpYUAjJzFvc2RyZ0coRG80Nik6MjM5U1MjPTc+VHFwSzQlY2BZZjMiPz8+NVZpbDBQLjoiXy8jXUJdLUQ+XEwKLTNLP0NNZkplYiEjaFRzLl9caCNlVy5CPEooR1svXDVVSl81LXBTWllfI1FfQ05fZztYUSZXXCtrUlwvNFhDRCpmCi1LNCs5OyVeNzJrM1hpJUBcLmgkMFc5IzRdSk9qJk82MzBKIyQ6PCtYMiVDKUJvS1kxTTpNYFo7YEEoSiwoSWNgKQotQUsiJWNgLSFBY2RIbDxCYTxRQG4sKHBSa1A2QiFqRkovdVdFMyhdJF9mNHMsJkImVmU7I05ndT5nIXRDMHBrNkYKLWBwcThzMlRPNUtLSzJTZDFsc044O3A6aS5KWnNPdC5Tb1dLIllJcCYrQC1aO25QRWkxZDtxR20xdCM8NWgrTExCCi1gOUI/XlBKRzllZSo5QGouOFI3TyFBJGxDLGVbNCUnTDY/SDxdIlg/OEJsLzkubF5IIWJqLyFQW0pdXG89RTlyMQotLm84IkcjOy9pXUFRZldMT19lQW87Okw5TDhfM1VTRik+IUVtPUBGNCRgX0EvV1E3W1VLSFZiQjVUOW46WVxZNy0KLUBcUHVvLTZbMCEoXjpAL0JHOmc2NWdoUFo5IVdQI04lJWxHMGs1YjdrVm4vKjE6PDopVU5rckBOVDJvajFkdFFCCi1jQ1trMWZQUVgnQG5eZU0lWENHRm5cPGE8WWxmcmUuLWBgdGUhZF8+NmMwMTVwYi1GUEBONlQ5JF9lSm0zLDMrWQotS2IrcG9ZYDwuMGJsOzliOGxsRyFYQjxCOTFudTtrXClsWTM7QixpQlc1XmtnNXUrUXMlJm1JQFlIJklsRSYqRUoKLScrJERzIV5rQmtObGdjZylocm8yKDliXFshOT8oJ2NMQlQobD0vdFUsdWNSUVtNYGtyRFNTOGssPGw3MiVAUmMjCi0xNiRvbzVtY1tsayVES0s+KEc4RzVFJUxnUGAuX19abyFjO0tlKCwsL1VfdVhEdDVPdUthZVRfKC1CSzNiSnFVNAotcS9mVyNLZnA1RDsuPWBhJ3NFO24pVClLNV9sUWg9WCgpY3EyQ2k5YkZQImQ6bkI8U0ZJc0JgaT1UVUMhSj49JzgKLUUpNyo7PjxaVD1sL0JCZkRWPkhwQy5BXGMxOl9SQW85KiUkRFtGaEs0OWlnUyp0K2ljVXJpNkdrVlYydSIjMG9aCi1aKEU4ajwuXCw9MyxGLzEzNTRJWk1PZnNgSm8pK19fS1dgdWdzX2NYaVFXYWEsJGtYT1lWUUwoPDJxWXRVXlJeKwotMU5ic1UsZFNnW0NXVGRSQThJTysjNyRwWSZBcycwNV8vcVM8YnRWRTpnQFgsUTVCZ2xBMCwqXis6ZGtucUVoRjcKLSlXKD8+RyltZEcrMzhvbjlRV1VCY0BRVj02ZlFYYl89ZkosVSIyOV9rJG1BJEZiYVVDM11DWz9oT0VTNUtiP2ZYCi0xZnM+TCZRRU0lOVUxXjRFOEt0WDhMayREJ1ZxNmNjOWkoJyIkJldeVy5SP1NfYXNEcDNiTUZYSmxaJW0iMDNfMgotTkRURVBqNjUmZUowYl9Bbi5EW0BMXjQib0tgayc8JnI1LnJEMnREYy1ENlRwXCRxJkolcU5XYDVfcDEnRkknWkIKLUZRaW8vXzJ0SF9HNzorZEQnYS8jRkwrQiQ8WFI+ZUU8M2M1N0ghJUUqJ2wqRy5nP1ReK0M5dVxKMDU4b2lfJFtKCi1pZk1NSzk6TzFnSUtYJkEnKjlSKSJcOWQ8TD8rQSolITxJQ0ZGYVNzVW1fZVUrbkltcCI7RClLaEdEUVsqZGMhTQotTWMjP2cpNiNhTSJrLiNaOmdjTnBBb11BQCVPaCU/IkM0bWkzJXByYDxAaW1vZz82cSFZQF4/WHEoXStwaz41O2cKLTYpb0tjYjQ2SWRNTl85aEtOSytFIV0lWFNfKG0+Zzlua2lWVkEwcnEuc0t0IitzPFE4KiRHL2lMWD1PLWFlckoiCi1pRlIrQkxhRjM2LFNEJEhmbkcxPUprMmowYiswYUNtPnBrVCwjOVViYmExc2slSiRlbFIkZVQ8VTNvZ2QlVWttTQotMnVIXykvLi0lMzFyWzNYKyRBPm9FXVxzST1lZnJpaE1kQEVZSj5hakwxakAySlsuOUZMdSJnSUxTYlpXSyxQMFcKLVRoPCVzUC9kWz8rOil1PjBkJW8la1s+LmMwZCtROWA/ckE9PyUnZydYUFBlUltwRS5sY3Q/byduPUtuLWhbLGVKCi0+QiIxRGRUbmlHJiROVHBOJDZIPVtxQCxOWENRO1tXXSVuIyMjS1ViOExxOEhxR29kUGd0M0woUSUzYEwvOnJ0KAotJSJVZT41c19vPGhEXFxXMEhiTm5fPCZFaF5la1xQJkh0MGAxa3EtKSJxNCYvInBSP0AuJDxGYTpGYT5aNGJobFIKLWJRXiZBTGJmJTNrOTVGWDFGKkJlYyJLLS5sJUohYTpfU21iKDtnXGRoKltzXW5VaGoyTzJZdEZiUD9hSUsvQiRyCi1lJVpwP2JIJEhoLW8mTEtsMFVRWkJraWRAPylwSlMzVFpATz82VVJHWHIyZ2loMXMiJzExUjsiI1tIZD5vPGstaQotYFpVPFNONUZCQjw6ViZHMDRtcWxQIUAsJChwcE1bYlk5X2MxWktcNl9uLWhYZCc1dEM4QlEyJDQkSVlQNWxTT1IKLSlrXCU4MGZsQ0BZU3BjSm5QTjB0OjcsY1YrPSU1YCovUW4pO3BDX0AkIWlHdFoidT9mOHNXPmxucl9APDVWMVFsCi1bPV1lVlpPM0k4VCo5KzUqJ0wwJiVCcVBrYE87QG1DMUwrYEoxOTJUI2RvO0VZJDg/VS10TFBzL0FwXUxkSFJiTgotQU8ySEFUU0RoR0pTZXMlYlNqcnVIJyZDV1QiOUNoT0tJWVxYSDFkbVoqOl5TJUQpbWRbJ3VXRTc5Ul8lPiNvaFQKLV9bcFBrWG1TXTIkWEo/bmBPcC5NZzdncERyI0QnWTdiY1QnPUh0PUk8LUpxX0BZTENZXjAsXFQ1bzpeT0ReIjNkCi1YRVFuOWNzW0JqbENNaD1qZD5TcTclc1tcSVFXLUclbzY7PCNyaUNHIj5sR2VPdXVBQE9ZOkNKJFRnKi1tWmUzKAotLEhNczNcImw+MVZhMkkxPCRAS15TVihULCJzKiRDRyNhM1tGVUxCJT8rNnFZXnJ0TTBcOHEicFFiMCZSbzknLVEKLS9GamlRXGJHQHNnVW87RG1pRCM1Um0raCNfLlM+ZXFsKkMwWVNvYmx+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1NjMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTY0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTM3IDAgUiAKLS9SZXNvdXJjZXMgMTU2OSAwIFIgCi0vQ29udGVudHMgMTU2OCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1NjcgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU2NSAwIG9iagotPDwgCi0vRCBbIDE1NjQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTY2IDAgb2JqCi08PCAKLS9EIFsgMTU2NCAwIFIgL1hZWiBudWxsIDc1NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU2NyAwIG9iagotPDwgCi0vUCAxNTY0IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTU2MSAwIFIgCi0vTiAxNTczIDAgUiAKLT4+IAotZW5kb2JqCi0xNTY4IDAgb2JqCi08PCAvTGVuZ3RoIDIzOTMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcYWA5MWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmo2LlY1OG87TVhmJGVKbWAjNCpER0tMJygxajtJViU1U1BGYjtrXl5scTMjUEgwXypFaD8KLUFOPzpiYGNGXz02bkFvamAncUw6ZWZIRVglKTVlJldMViRUTk0/ZCkxNVBDN2E+QW1NQSRTLVpNbDxRaC1ETjk3Ci0yQFxwOmFUXU1cMyNgKztZUFxKJ0xsWGdiMz1ZI20lUTszVCtxM0oxYUBbWTArWGo5UylgaU9oQ2A9ZzRVLSxuMwotL3IzbmZWSTQpRydGS0lYX1gzQkQkPEckJ1VPXnVQS0ZcYSUxUTtFSz4tK2M3OT1EJ2FLPy07PCJYL1xAJ0ZeYW8KLUtlUTIhLC45MWE6Zm91OE5NQiYibTYoSU1oRDU5OlxEQjRUQDtuSyZOUiU9WzNZJXAsTlxcZWEjXCJYKSRzVSJ0Ci0iOnQhIi9yRzZZP01sTiRfQ1dMKWFlWFlMTlQyL0ktXE4qZjxcVi8nLm5WY3EnLF1SXDhgT0xIKEtRY2suXHNVSQotQylXIiFpSkszKSMwcl4wJ0Y6Sk9jRTBpLzNqPl5oIW9jKlclaS5dJFlLQENJRURZLyIvMlhaT0xocD1xOy51W1QKLSlNXEAjRCZiUytvJGlAbF8qRy5bJTVmRlJCJWNHR1tqL1FWRD04X1s2TztVMD4jciQnNHNiOl41cGYxT0pCXkU+Ci1BInNHayVXI0ZNPG02SEAuNEExMFIrYThCZSRTWEc5SnBlLSg9cSFCM0RRSFpORnRKLyFdOVgiTnJvZlstZlJLXgotV1xSS1lZaDFkaz02U2EhJHU2LjQwWzw2cVc6KDJVQTEwT249Qk9DNmlWR3RjMTEuViNoLjcnNzhGZVI8LjlMXScKLVw4KnNEajJMRl9AJlVQMDRFVGRKOjgyLWJObC0wdThBaWRjYXNfJS9qMk1jdGNqJmhiNnVAO2Jcby83RGwrZzE4Ci1jT0ddPGopX11LRVBuMEIycz1hXShXLUBvJG4rLCJKX24zWFhSVShnKGdMIWFBQSNxUGJdZ1A7UkJUISdcPUVzRgotKEMpK1BRRkFJY2xwJiwjSS9fJ2s+ZXRyIURwc2AuQGJPQC4pZFxlZ0dlRlRoTilLNVFiJUIuWFNaIjc2UGpDSFoKLSdhNyQoOSw9LikzJjAqSmI0RFAwSTQ3ZyoyWCJcMUwtXlQ0cldPOWxsLGFEMSxXJDsxYlklQTJiT1QrQEFcbE8kCi1qZ25mVk1tdCMjcHA3LVJRPClaZjhUbFRJZ0IwXVlGLmM+WEYlUGQlNCFTR0BTbChNWS82Lj9RN2dwODMpKl5wNAotSjBZP2dtTVNCczRwPFdHN19VLkAlJGtFSjlkLSNmTD09KGFfYi1nMCYodXR1NWkvZyFaTWRHPGg/XUlgPlJaMW8KLSM/KTA+clxCLl1yS1RBbi4jVSYmSzQqSVA/QGxLc2tDJzBuamVOYiwzaUcxakpNRHBcKVlZQm46alluVnMiZnA0Ci0pKytddTtBIWplLlJxL0tpMDFvIU5LQyt0QFxYKmkhP01FQ3E2cUFSQyltRHVpQCdRQjI5K1tiKm06UC5CLiomXQotSnFsJCQkczdkcmNnRkxMUjVlRlJsXCcuTjM1cEtFcjhDbiVMbTJTUTVxVjdoXDVBPkVJSSFIUyctXnAxY0InYCoKLSRhX0NeJ19cNDcxJDtDYC9PaE51QT1AImouaDBsSCxmVjZtbzQqWjUuaFxpKjRlZk1oYldGY3MvM3UlSD1GUVQmCi0iT2ctaUwyL2YyX1U+LWImTyxbZjlnciFWbT9fOUtEaU45Slt0TT9MTnEzWmZgSiwsPXBNOjA8I1VvdE5lLmFKZwotYiosY1dOX0A9XzNYLV9EKHJLTDckcUcibjdKRmBfaEhdO2NKOktCcmZMSSJjKVBdQjYpMiM7YEBMKig4S2tnNSEKLTVYKmUxTEIwWGRPITBaLjomcj9UaTlJbVliNj9sPzg/RzZuLmkycTddZDVMa2FyVDQuJlozZzRkRSNdXCUpS2JtCi1PXSFtdVNUJTNxUUhPQTZjaVBUO0ViWW5rX0FdPFBOQiYuOWw7N1FeLCFXbFExXWVwQktJT3VqWEMvSURhTzh1UQotQ003T2RrcyxnXnFJMUZxSDUkZC9dR0szPiJxMGFmRmZzZlQoUDs/YSlGTUl0JU03PzMzOUNeLGpLbVdPIS5nXHIKLTVqNTBMJm1ESlpSSzp1Y0c+Q2o4NUk3WSVhakFJL0FWKGssWmpcZ1lkX2wyKmZZREJdMVUydW82aE11UF0kOkxGCi1jSiMybD9SakU1VCFROEUvMEAsQz4iVjRDQVZraixddXUoUy9waXJoPSc1T0M6cltjNVY5Zl1bVzU9PV9iKzd1JAotQUBWcm1jSjZjMysoXmxbWTZrM05KY25GZUQ7cFlSS2I/ODs9MmJfZyhqV2ozcVhEI1RhYFhjKnFCaVtmMUMjJkYKLSksREQ9JT1zdUVldVNPbm4nMFJwamAlQz0kXGBDMyRXPWVlP25tQmxkODJPaic9TTshJ2E9KkBKQ25vPGBsSzRJCi0jK1FpYlBQdT1vSl1jcVtUWmRiXDoqSU9MaW5FSjMxayJdU2VMZ2s+LF9Xc2tOPVBkQ0RlOzhUQG1fJyEnU1lRTgotMnMsRDo+P1ZAUU1mVjNVOyUhR2FXS2pkLypMO2QtRGlsO1M3QGdObT5xTmN1ND1ELjRLIlZNYk0uanU0NkAtSnAKLTZPPjdEUCo0ME0rQ2E7V21eUTFoZGBtV0IyTjJgTS0jKTNaaFBfTWkxY24zQzFdNS8oSTJsOTsiRyJfJDssMG9LCi07Jkw5WDsrIWZoIyo5QX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTU2OSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE1NzAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1MzcgMCBSIAotL1Jlc291cmNlcyAxNTc1IDAgUiAKLS9Db250ZW50cyAxNTc0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTU3MyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNTcxIDAgb2JqCi08PCAKLS9EIFsgMTU3MCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1NzIgMCBvYmoKLTw8IAotL0QgWyAxNTcwIDAgUiAvWFlaIG51bGwgNjEwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTczIDAgb2JqCi08PCAKLS9QIDE1NzAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTY3IDAgUiAKLS9OIDE1NzggMCBSIAotPj4gCi1lbmRvYmoKLTE1NzQgMCBvYmoKLTw8IC9MZW5ndGggMTk3NyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N1xiO0kxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2xMOzhLJjEqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cLl5fCi03dSI6LltjI2RJLkVKMCQ+RXB0ajNONUNBJkYsKSxAOnRXLzdLVlAhY3RQMiZMcjlIUThbUkRsMTVIQTNaW3AzUwotQi9wZidbb2RtYURxPTc0NzBbWmJcJkRTPlMuNFgrVFJeIlFNTGVaP21YdFcsbU5kZGUjZ1AyXUEhImhlTmU4YWkKLSdGKUNIPVVMKDw5QSRxXV8zQCddVlA9XlQwVDlMSCRObjQhPUdBYm9PNF0lQjdBQ2hHI21DaCY9O1hOdF1KQk9RCi01c1hpcCU1PGA5blxHYzkpJj5aZ0pEVjUyMFV1cXMjLC50dS1xW0M1RzBOMVJIYFtoZUA2aWEzLSNiWlstazUzLQotZ2NAYzFTMikrPStfaSNHTDdwdUIjL1RqQ1pFK08zOEZkPCRqImUvI2JpPidnL3JHNlk/VC8vOG5ncVQiWk08UTYKLUwnJFJENDlec2wrXD5JSzFhYV5WWi5ONSEidVFoTSYtc01NJDhbW2FeZCtMK1pmaltROVthLk02QGw/SkNKK2pnCi1QcG9zOiZOaEJaN2hVS1hVZlBxOV5iKDpAZUxQLl8rYSNPTzY9R2QkP3MlTTVbLnBZYW0ibEY4WlFSbV9OOV5uQgotMlZEVC09O2NnVHIuPjtDNiMmPDtlNydaTmRnUypdPWA/KGBUXGZQVGovRCclOkstP1E9QVVsRyUvLlRDcXJOOkEKLVlWPTlbTldVXWMkJXUtMmp1TltgMzc5U2M2IiEpQktOPjQ1RDkwUlgyZlhQPUFqbWMiX10yak9fS2YqO2MiKDwwCi1NWm5vaC9oWmArMl1cb01cUz5qdE1dc1E5LztmKV1UUGJcbldLTF4pI1lHWlwxLyxTSzw1UThuIiFmJ0smUGY+OwotQV0ic05cdWAlaVM6cCs2JDdMZmMhUGhxWiMwTCZITyNnXi1DNzBYWWthWFQ9ZEttPyNhcEQyNm1ec2Q7aFhNI1gKLWtmTFA9ND45I1QlXWgpN1NJVChJNWI3SUxbSlBIZEZAJU46TlQyL0huMWVGYl9cbEghXEUua3VuJzg5WCNhZElaCi1eQlBrIyg5MEUoSjg0LmAnJ20uNUNcblE3JjFkNyM1cC5TND1Na3ApWmd0aiJOaUxOVURzUVsya1YudUBCOV1NdQotaixkM25LYGNTZFUkI0VcQTJcMig9UW9DOl9qajY1WD5fbz5tTDI3RENwdGFTbEc4RDo7czBhZWZSWjRRInJbLUYKLUFZOUEzOG5gL0RlYD9pNGJrO2tLbDxnTl1ZVzw/PEBiY1A1QGRkaGM1O1FdOGFuK0JwITI1ckMwXGszMi4hUm1GCi1JLjNoaz5qUklvQW5YW1hVN0FHcTwnZDw9QnI9TWUtKlg+c2NJOU5vQCg4MCRQVyVdbDsvZVRfKkprSGZkTVVdagotK0QwZWkrZWdtN2JuOS5hN3UoVWQyJkVRSj5gMnM3aS4pS09lMmRvUCI2Xi5gVWNCZyxgMUZpPj9wUSc+K1leXlMKLU4kP3RyTSFKPVgsPyk3KGNmc0pOMCptaV4wUV5TcV1MWzUsZT1uPkteKSw2UjYnOkEpU3FiJilcazNpSSJiRT0lCi1MNjBcISIvJTFVIU9YXWNmNV82JGJiUF1yUi1JOWgmZnEpPElSYiRIMFpzYzVMMUU8NU9YcWhKSnIocnBKVDpsZQotNic3LDRBW245Q1JNLTIlQTJIbGc0IiZLRTFLXUosP2A/JWJqaj8yYzlbVyE7Yio6Li8mMmA1cDsuLGo7PVt0JlYKLSEkSWZqaWJoODNKTHB1QmwoL1FzOSo0QEQpJS04LTVoIk1sY1VpWzgsa1JgdG9FJl0laSo3LUlON15QaGE7I2pZCi1lZEgqPSc6TVBFQy80JShUJzAmVlRubEhnIW5rTjdrOklHWyVMaiZzVixwKmE1VkZTRV9MaVRlU3ImUmxlSTcjawotUHJrRUQ4SFcsUlEhZitbY3NZWFROdCFFPTskXHFeUThUI0RhbEFibjliakRMakdWRUVhZDpMWyleQzZBTDFqUW8KLTQkYS9iVTA8YTgpJ1VQJSdnM2lnYCtfKSxIO1I6V1dASiU6L3A7aVg1WEk+V1Y5RjgrPCJgSjdYVUM3QCxFUT43Ci0uYHBCTzYnTy0rOSM/X1VGYTEiOTtROz88SzNHPlNEUWs3NixHPTBGQEFZZUxXTXE1Q1V0Vl8wQzhzOnJbOkJoSwotWWgwc2cuQE1tTm1RTV5BKUAuVTY2ayw7U2NcPy5SK3FXYWpNKDc/M18qQ0U2OkJXIVFvY1ZLc15gI0knfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTc1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTU3NiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTUzNyAwIFIgCi0vUmVzb3VyY2VzIDE1ODAgMCBSIAotL0NvbnRlbnRzIDE1NzkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNTc4IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE1NzcgMCBvYmoKLTw8IAotL0QgWyAxNTc2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTU3OCAwIG9iagotPDwgCi0vUCAxNTc2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTU3MyAwIFIgCi0vTiAxNTgzIDAgUiAKLT4+IAotZW5kb2JqCi0xNTc5IDAgb2JqCi08PCAvTGVuZ3RoIDE3NTEgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdcYmtZMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmo2LlY1OG87TVhlXixEXmQ/QmNYZW8iaUNBPTRLMSVMKTlkXiNkM1JGUzFSVWRnO2psIm4KLURgaj9pJ0BVQlc+XFEqXyJaS1ohbXFwVkA+UWVMOytrNTQqIjlXbzYzV29mYmRacU5XITZZRydsRyxZQCUzbz4+Ci1VU1pwYXIjJWovUlZKUSpfI1dtYCUzcU9nb2ZbcF09PnBYNUJaX0JMNj8mTUQjYl9wbSpBNExCLy9MWVpaTjpnTQotMF5NWE8iOUlfNCY0TmpPQGlAW3JabkRqLkVWcFVyYDFfOkNxRk9RJlIoLE1oKW1nQ2lfZygpcE5SKFJvKCdJIjsKLUFHTylvVE4lQidEWDUlK00iMGgmMTswbDlnKGsrQ1AzWHUiTm5EUTFOSXVQJ29oUkExT1prcExVWVI6ZytVIlxNCi01K3VjW2xHR25UcCskUnNPUVxgYSxAYltKWDVlTjdZRGIuWk0lQzA3Ll5xWU8sRldxRF9oMU05JCluMlhEXUkzMAotaSc5JS02TzwtQF1zNClCXXViOUJpJkYrLEY5cmAhW0gyZz4lLnNLYlhjQEdzYHVeM3Q6Zz1UKU8wRG1lO1FuYCkKLSYuRSZuZytjVy4uaCJAJTBeTSI4Xy5xLSVCK0Y3MEQuOypBLzM1ZW0oJlxkPWNPYyZPJ1pHKURANUgiNDcmc1FfCi1FZks7VTpLJ3M9SiVhSF03NyhCW0ZzPF9bMW40JyleTENVLTBXU11iISYzMlxJMClEam4sVV0oTk5kSDg6dS4oUQotSDlDI1ciNFNiJ0ppSGpVNSM8aysjbkQwZU0oO11UaD1bI29IIzgqRz5hZlYxS1JwWDxZKyFQL1A/dWtzUTBAI20KLV1nNzBOKSRaZTpLZD5tV0BjOTUoTnE9Iy9qWzQ6Um5eRmlOYSY5aiNWIUpqKzM4M2MjQmQjc1BFYmgsIl9EbDsjCi0iWTcjdWNPU3AhTGEtTyFdUDc4cWBbdW9Ia1pRKWA0UCkyJyRiUG4zVzciYEYuMzYwNChzb0BzK1RVbkdOcVJ1ZwotMz1NWkdmOnVDQ1w1P09UU1stLzJLbkkxcT1Uc0goTCxYPzBxIW1BPj48V2UvcEpSJys9XSlvJWBKR3FJTyxgRXEKLUljJT1yaWRSNVpsTTRCOV9hT2FjMFojcUxeSk9JbEhUc2Q7cCZsSj4pU1pJVztxOWlUQDtpNylQWD5wbiYpJGlOCi0ydFJHIUUlUUZeTSZTMjJfRXNeXEYpKXIrUSpQcE4mSE1sTiVJMiU6NixYWl1fXSxzViUmTEs9N0ZJIVwuTVE0VgotK2FnITRiWjgsOEVddSRPaTROLV1lUiFsWiVEZmpeLFZyRXQmYGA0S0RzUzdSLSJNQ1NIT15QZFdANUBpYUItMVgKLS5qPi8mKzluLU8mRFBcQDRXcFVJXkVFK10rJGFLSlRxakshS0YmP1FPPlZoKGQ3b0JCZlFyMENiRE9ZJERfOzhrCi0jVCI9aSUmVDdGWDNmY0MiJVpvSkNFV0JyJkNSUmU5IXNGLls7bUU4KjpPYXAudSpJQCpPcyZFKSskKGo2OiRcXgotIyNOO1sqRl1ZJVZuYScrLUgtV2opLipRKDdQUkEnYmlbWjlFZlEwRzN1OCdCKiMmWyNHUmw+ZmI2XUhEZWYyLz0KLTB1XmpxRSdUWHJHXSY2ZVoyTVJPJGowSHNROWRmMjpeJS1hU0wjMXVSI3RRWjJeckFBT2tSQVVNVE5OKj0rWG42Ci1hYmdUL2FsOlVmLDwpSiVCVURDbTMxLVlHNjtpSSJSNTZINUxQYUBkP2lxKCYxVThNQ0MlQGctZ181MFlZV1JPZgotIWhXNkpEM0VqNUVfVmtxNUdnIipTVD5RajksWUouUi89TDBAPkhqdE0wRDJAJTFLIztyUFpkYUc8S1deTkw6PkkKLUtgWyxkM2JXbixUVGhAJjpUQSs7VypKXy5gYllqQCYtfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTgwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE1ODEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1MzcgMCBSIAotL1Jlc291cmNlcyAxNTg1IDAgUiAKLS9Db250ZW50cyAxNTg0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTU4MyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNTgyIDAgb2JqCi08PCAKLS9EIFsgMTU4MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1ODMgMCBvYmoKLTw8IAotL1AgMTU4MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE1NzggMCBSIAotL04gMTU4OSAwIFIgCi0+PiAKLWVuZG9iagotMTU4NCAwIG9iagotPDwgL0xlbmd0aCAxNzQxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83XGNGaTFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qNi5WNThvO01YZV4sRF5kP0JjWGVvImlDQT00SzElTCk5ZF4jZDNSRlMxUlVqKTtdNCNoCi1CL1VXI0pyL2ByYlV0YEE3PkAjRy4rM0Q8Klg1dC1jZzhZMU5JdUs6L2QzYyptXy0nU1gvcmZaSy5vUE5eXjpwcwotMmllSlJnK3JublcqJnNiMEFIPT01T10nYydTZj5eU2VlTkdQWjRXWllHOkleIjlJajExOzFNQ2tXKC48Uio+WEAKLVk/V3BeNWA7Uz4naCw9VHBrcVU8XVBTVnRkRjxGYDZjIyI9VU9mXWhDQCsqOCxKPExTVStrIlI0WDIya28iPUViCi0vSy1lQE1ydE81biZ0RyVeWCopZS5CKms8PjZNT0I/cjctLyUiLUBwNmooQG00R0FFdD0+VTI2UXJsLF4nOWwhIgotYiluZWInc0ppS2tsKyUrUzgwKGExImJTL0tgYD11MG9uLGRYITFIZC83Zm5WRk9UKS8lQVFKTSFYOC1rYT8wUysKLTxFcD1NbDVJRFw8PEdsPTxKOlAiPjlzZTtORmltVVpUcWJOPU9rb2MxXnAtTWM4NiNzIktxLihZNT8nWWNkLTBuCi0yLGBuVGs8aT9OOWMkOjs8QWEpKjYjIUZxMUo/Yj1yc1ZfJyxYWFQxT1laWiZVPT88Z0BuQVMkM0A8NSoiblBZYgotY0hXbU8+TE1wKUhkLUtqZm1aMzY0bEpQIksqXnMnTmQuRHA4KU1dWj5ucGB0S1RuQXE6Sz5AUGVlTzlLKGY8MjYKLUA/NSNGXUxRZ01tc1xAdEFfRW9CQVM0JUZFS1Q0Rjc8JzFLWjtDJE8lM2xfQCdnNl0ka2s0Mk5bP1lAZClNWSdpCi0iXyFGU1JaP0RyXit0P1ZeajFPbyVmI1FiLjJaX2FcW0QmQ21uQ2kqNElvOWdmcS0xdERMaHFxRFRkV0Q+QzQncAotUTNYTT9IQUwvRU5TKDwiKCU0OC8rZTxRTCVbWFBVIUY5b0luXyolMV4iRj10VmxHYTFcNUM3L3AuXSwkRmhLXUwKLVlzPlVsKW1caGgiY11xQUcidDMxPDleUmdKYVhGNFJEJSlmVitdUDEyK0liYmlaJ1ReVCgrVUQ9VztEITAtYk8lCi1TPkhiXnFmZ1IyYmpNI0JOUileWyUmbkgpY3JCV0xfO2NCTG9ZUmVCI1QlQWZUQixYQENBdVIkIUdgYGUmKWRiXgotbmw/WEc4OVQ+S0AkUUhfaXIlPmdCKjg3JjBWMjVIPnRCO2hBSU5ONVRdInUzX15rQ0hsNlFLbyJYTTQ+VGw6TUMKLU5ULkNzQUVRdEhbZnRwSChjMC1MJFZ1KVgiW1VEKTFEJj89QDlUZGY6c3BEbmteYSpdb0t0WlVuS2VEX2I1ciVZCi01JW9vYlI1OHNnZD8oRVEwJEomJ1ZqL2IwK1QoYT1XZzNHX1FqRVxkJ0UpKnBsMlwqWWs1Y15CcytMbFhHc1UoKAotSD1KM0ZBMVI9RGEhYGpCNmQuKXVOaldGYyJgLDVnUzRlJUpUa0hmSVNmVj1wVTYpPXI1Zj4pYCZMOkw6R0t0KHUKLWAwaTgmU25VJz1Zcm9vUzJsUj1MZ2YldV5pXz9UPlxHTiNxKzpDS0oyaG9zJyNRa29kJVQsNzlSZUBzLCQhU05rCi06YVFAIykvXkUjbjctZjJjayZcYTIlIWluJU0pSWI6ZS5IVmFdSlVqLSJ0QVQqP1xhbEBVZFdBMEA6LmRvVF9EcgotKjlFKVNaPC5uSmkiSkoqJENBa1ImMD9xVypAOm1uUXVGTXNfWHM0Pzg6VzdcWU1zR2hNO2ZDYVw3UTVNSmJbMUkKLShIbiksPC5jdTw4dUtmU2A/WC5iTzQtQlhcWz81cCtrU0hARTdSXjdMal5NSTRAcCVxJ291N0tOQ3ApVTIyVF5JCi07YkRrRWpDNUdRN15CSFMpNmIjRTVRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTg1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE1ODYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1MzcgMCBSIAotL1Jlc291cmNlcyAxNTkxIDAgUiAKLS9Db250ZW50cyAxNTkwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTU4OSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNTg3IDAgb2JqCi08PCAKLS9EIFsgMTU4NiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE1ODggMCBvYmoKLTw8IAotL0QgWyAxNTg2IDAgUiAvWFlaIG51bGwgNTk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTg5IDAgb2JqCi08PCAKLS9QIDE1ODYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTgzIDAgUiAKLS9OIDE1OTQgMCBSIAotPj4gCi1lbmRvYmoKLTE1OTAgMCBvYmoKLTw8IC9MZW5ndGggMTkxNCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2AsVE4xZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBIXRoM1MtbnM/aSxKcWlZXDcqWEw5Z2o2REguXjxEMk9JMjpvOSNpbwotQks/TlMhWFcjLDxiRjhgTlM9RSNiLVUsYSRSKz4zMWQnTFtOMl1wciYuSElUZkpZbUYpISFIMllILG4+L3VYInUKLV5CUk43Vk9GSDkwTDUzQWouTm1yLV9rKG4oKE9nMztCN0JtRj0lZWpXM1pSOyUnXkBLMkBRPzs0Ozd0KC1yUlhaCi1sZT83PFxePmM0LUdVLG9gOiZZO0dqW0xSOkxkYCpeK2E/ZSVETTkqQC9VOT9qN183biYvNUVRNW0qVmwjIVInJAotUU8nZDZVYipEIytVJCJKNmgoUlQqQ1U7cClcbChFRW84XGArVFFpXjdPJ1RtNHA9PEA/TiVJWVcyTEZYVVdELkcKLV4yczU1KEsmXDQ1U19QXWJuV1xPJ1FDb086WGZNWTpLLyVIcStbYG5TLzFsTjFRO0dQJWhzOUQoL2hRMi1XbmpqCi1VVl0sXWRIIjpMXStQZGVtbXRkP2w4VkE9Q25VU3JEbTgkcDkoWUxKL2olTVIkTm40IT5idHJUJlI4TkpLYko8YQotPSUjbjI5ZmY2ZWAqInQjJ1YrJWthIzM1TiplaCQqSyIqbU8qI15qY2VnY1M+Njt1LkYyTjJrNkk8JV9jYEcnRDQKLTFKUUlhPEFmLmBvTCVUOT9sJUBWaCFJUGkwcFRgbUBfbGFMR3E9YixSJ1smRzhnOHAzLiZdQkwjNEFGKylfI1pmCi1BPTBzMixbP2NHQDZnREZOYFleODBvXmVrayo6ci9PQVpwTiFDT0dsXmFkLGIyXClUcmBJPGc5ZCtVN1VqKjhZMQotTjVMKnMiX2k5cmF0U2o/SkJyXVRDZm9VUiVIRj43QjdwQTtoYWU2SENOKHRlSFZkVG1NTG5gNSgkVio8WCI8RkEKLURMKzM9Ji45OFRYKl1aTUlaM2EiaSV0bGYockhJY2l0MF1xTi1pZDsudG8uZkEvJEdjSjU/ZGQhdEMrM05hbVAoCi1WLmxCO21BTU9gTmpkX1lNWyRvdENmW0ZfWD1JK0MybnM7TygtJmQ5Sk83Kj5OQHRbWy1BMkdCUS4jPGs+XE9dUQotQD8+NWhOaUQ1LVlKJlgqTTUpQSxWZSUtZUs3QSpYLWVnOk4zVVY2JGFfLkdpOCE5W1lERDVOZ1I5VFw4S05LLTUKLUVdVzMyNVg+UHJlL0dwKV9YbF00UjwqKGkyYF9UXEkrdF1AREcwWjtcLlhzRT1bT1lnOVZxaUIhK2xdQVlWJ08oCi1lO2xFNE9TaUNfQUlGUUFuIi1sakA3K2dLNDdBYDheLEs0OSlBdVpcJTlzSC4mQlwmMjwjS1IqbUtiXywsXz9SWQotJ2w+N05yNSR0ZkU4XmcrMz1OIk5LKiViVV82UFtTREIzLEsmNVtRMExndDtoYCJyWF4xcidebS9rP0EjMUMjO18KLWQlNi89JVQqM0AuWShBLCQhOiNWNW87WiE8J0NxJFBWUFluMi9iK2MwVEE/dT9PUS1hMWwiWEpfPyIxXSJjQzhpCi0vI2JTNChmSS41Sl9acmFuOVcnOl05PlA+ZFNtIS4obkkha2hhUilaLEQsLysscF1eJVA3aXM0KCU+P1VPUi9IOwotO0wpRWYiYSRacSs6Vmg6XyY1Xy02UTBKKlA3PmRpXUZxVU5JY2NOayR0NmlaMWA8SSJRdW9XMEVeMkIlQC4obFgKLUhLZ3FUM2JCY2VMdFRcLypzTkIqQVtHUCZXImJEdVBEK2pRV1FGS0knQz5PX1o0byRlcT5TQkRuNzgtcSs7YjBXCi0mP0hXIzNNL3BjJypBISsyJDdvRk80NWU3SyI7Wz1SZ1ZNPyQ8XyFfM1RRIzNJKyohKkFORUIlIkgySU5VLzReYAotJigkMTBhJkVfMiVGRTAxOmlLUSVfcCJUTlBiQXNoXFt0IVBvMHM0Uy8zSEdmSj5jdCc4PT1UVDk7XyFDXVtjcSMKLT09XmRcV1VubyNfMlFKZVhJUTFUK3NiPyZZVys5aVhvayFQRS03KCNidCpvQiYyZmkmR04yQHElRjYpRyxrSmheCi1SYlxqO2t0RiVDI0wsRGc+SHJ0MFExRDtLak9ZcEszLzonXixVQiYqR0ZEPmUjKFdBY0w2MFhwSjgoSlJVXV5+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE1OTEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNTkyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTk5IDAgUiAKLS9SZXNvdXJjZXMgMTU5OCAwIFIgCi0vQ29udGVudHMgMTU5NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE1OTQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTU5MyAwIG9iagotPDwgCi0vRCBbIDE1OTIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNTk0IDAgb2JqCi08PCAKLS9QIDE1OTIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNTg5IDAgUiAKLS9OIDE2MDMgMCBSIAotPj4gCi1lbmRvYmoKLTE1OTUgMCBvYmoKLTw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvTmFtZSAvSW02IC9XaWR0aCA1MDAgL0hlaWdodCA1MDAgCi0vQml0c1BlckNvbXBvbmVudCA0IC9Db2xvclNwYWNlIDE1OTYgMCBSIC9MZW5ndGggNjUyNSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUosZ11nMyRdN0sjRD5FUDpxMSRvKj1tXk82ODpIUTxcNSxIN1VvPCpqRTxbJCNZM3JSM0AnbmItXjZvLTE3O1tdCi0+cV9SN2pgOzw4ZW5tQDA5XW0pImpTIiErU1BTSEszW0NTVDdBTmdxOy8vNkhTUFEwYS5DQyhqPGRkb0k8YmtWQAotYEdXQHJQI2xIODQhXDpTQVtHV0w8ZFJpVGgvJ1EqQ3BzZTtmIkgxOz8+P3MtZWI1UF1eTDFgYiRsMFZeTDtbKEcKLVIlLl4tKFFITC8xJjJmYlFSQSdCOCRfclxqQ15FQmNwVFxkKkAqOi5WOjg9ITNrNiN1PWZMImdvWGMtMExNPTBBCi1tSXFLaGYnYi0maGRnc08qLGNARU07clVGZ24lT1NSRWBLZnFBNjwkOkA2VHQ+ZTsjR0lyZ1wqbW9rKVspa1c9NgotJnJMdENeLT5WSWckUHA9clk7JmxjTS4lYEk9RHRCZkMmWTwyJVQkUlVxZmVHIzZRbTI2VTpkaThjMEcxVm0oT2sKLVNcZTNsRFtPQSdYPigtZ2QsVGZqMShgNStRR2NXPU4+IjthNlAwc005WEohP2BLPkxPKSkqZShCVEMqW1xuKW1DCi1PbEdzUGEya29FK0pdVnBbM0k6WiowPm9zO0hsakMrbEViKCdYMGgyOS4lW2tLV14sJzkuMGxwYGo1YDJcZnNkOAotXkRLWEArcnIxLi5mPytvL0JYMVYtNlE2PSNhIT9RWExmJnMkIWQnX2M6ZGZBMlEyaSwhM3NtZSUyLE0+UDZDblMKLVlJJkVoTD0wJGYiW1ljUDNmPFAyLXRMLmYuYG40W0xLJTZENEdeKSguZjM0PzxCVyE3ZUoyQSI8aFhYNi9RbzcqCi0nZ1RbMU00SmdnZjJSVjY/YC9ma0ZaV1xVZVdYL2dGMVQyIWYvPVhELV9QV09WJm41IjRhVWcpYV01VEliXVMnLgotWVVEQExXR2whcjcrNDUmW2YmKCMrXUQqbDNTXFdRXWxdcUFRLSJCVVpZVj4laGNCLVRJXk43byU9a1ZVaW9QWXAKLTJhLE5pQD91b2c2SkhhUlgsLF0kWkBvUV9vIzA6LmclWyVaTmF0Yy01Lm90TzJEJ3R0cFRiMGctSjlfJz90SExUCi1DUVsySDRLdFVDKGYiRm1UZW4qP1MnczowRUhwWUxwNVBnJC5ONjhtQj1PZ2dScWNXblU1LyItY0JXdCFPT2Y1SAotbExjS0ZZSjBmXjBwIyNMVihnMF0uaDNTc1ohJ28pMjdqZjIzIV9HLiZ0PywnZ1U/OGxEaSEhQk5HZkRPUyRGNzAKLS5WJDxdJ1ZHS0JuW2srb2E8PFhyWyNLWVtMRkwwOCUsRGxDbTlLKUpjMTUtViZMLWsyZjFqK1dTUDZURW0uWWlhCi1cKUhxPj5xI0NbTk9SWmVJRUYtKW1HJ24qY1pWbG0pOXU3PGs4aSJIJUF0ZixwRHRlXzlRSEpqLltSL2FZQTVdUQotNEtlcDdxXE48NVotWV1HMD9Fcl1tNkplaWwkJ0hTZ2VQJzFlb1YzP2VhSU5DMEFaL0lULXJfIipbQipfWUZXIVwKLVchI11MUyxsbWByVzQ+bV8hS3FEXjMvb2JTQTVBUCFtcDlDLj9IXlw2IlhgdD9KNmNaOmVjaF49M1U6VSdHUSxGCi03SFFqSzlgRXVpZD1lXFBVZD0zTHJoL1U0TEMiXy1QKSdiQStkayNgJVJEZmcnIlYqUFJfRlNSJC9gVWU/TGFfIgotNWArbWItOi46ZyVuU09nMSRqSzwnKThqNUBbbGs9Om9TTlI4Pj8yb1BcI1xpaVlCRmcwKzIhOj1INStKLltoYE8KLSM3M2UqTlVIP15gY3ViSCNsSyIuWWd0b0xHbStFNFM4WEIhXGU7b2slMzhyQWlmRl48MHVcRFUrc2E0Pz8jYjBdCi03LVAiJ2lRUjRDZD1ub2gyKjMtcCJISk0pWjptamM8OGpYU05LOTR0VjhJUmJuN0BOYkpZdFtxYTEoRmYsWVIzXwotJlEyWSJxLT1sNUtTPlc8YzVURFk4TUswPWFjcGU6QTRlOmgvI0t1IUddOUJjOGtFRyRVaG4jPVl1bnVNTSpqKHMKLTZtLmpGYzxzQCpGI19uN2VzY2xSWD1MYV06aFBJKFA0TFFuOlJTbVtpNy5DaVpVLC10bCMsQiZqUCxnZ0BXYkpHCi0jPT4vbDxNN1twLjhfOW9ZTlNDRlJvQD1kOkFRViZAbmReYlpzaFY3KUUxJFxib1dbJkpxaF0lVGdMJzwuJj9AMgotYE5lLHU5SSxqRjNBY25WZFs7PTpXJEI5WkZMJTpfV2MoL2NTRiEwZ3E/Iy8tRURcLTw6OG5qJGdWZXFrOjIxMjMKLVdWKC0/UzxnS0trUFZIVi00dXFOSDIxSmEqRj5gVWRdMWxFQVFpaytpMDFRO1kxOlJAPkFLS3RTSkEwKmZAb3QpCi1DN1RSSjwnbkgiYjUjPC82WkI6JlxpU0giXFFFSFxNakg9czBcSXFCQCM0X0ZaJ0lrcDlOYU0xL0A/TEtbUTs6TgotXDQ4X2NQcXVvTkw2RnNZOE5MXkIlKC1iJ2NiVWliXVpfVF9ZXWUkOjslJSNEWFJwSicoPzJRIldpaixpL1xlUEsKLTs4KEVUSklHNzU7bjNYI2hURDw6N3JFK2tTXmpJcDhfXi43bU4oJmFGRTVHN2JEQGdPSUM1I25MP3VzTWBFZjleCi1pTzUobmtoLyZOPz5oXmlZVydTYj5kbUxXQ3FdU0pwWkQ7LjM9QzU7SUstVzQxP3IxSWEqXUskIztUQkdJVUVPVgotR3BWI0lfQThVPjY3YGRZMFhfUmRRYVZWK0NeMFBkU19VKFpMQ1AuL1YyKTsxcW8nRGhyUV5hOE0oZUhWMyxYMzsKLTZRK2pELUBSL1A8JG4kblxyMl4wZWpkVlsjNyJQSU0rRFUqJGQhUWhwI0FcKCw0V0FBXENqbilBO2gxZytAXVwkCi1cUnRzKV1VPiJoMjZHKCpRKmFyU1JzYF5ENi06cl0odCtyKjhNYjM+YmEsXm8/JF0vLm0oRDE3KTxPImxYMStVPgotTCQ/cVpWYERkXCM+OHROSGRURFMvODR0I1JJLGBwY2wkPU1CZlZsWGFXPyw1b10mWVphZCZbKjkyWDFBTTNvKycKLUpTOmlbM00vZCJWTyVgbFZEJz4yXSxLW0JpVmREWzIsNjxHWzswJk9nOSRgXDw8TGc/UVQqMVJXYS5LKW4oSVB1Ci0tMSY4dE9KQURyZmY8QT9tQik5akcuLSU8MVk0OEhdWD46LjdjMDNNWjtZVWYzQmpuRiJsI05AJExWUylcOUVEXgotYGpaYUtALiEzTTFiT209ZSUoaWFYZ3ROVWshSXUlTE9lVztuTC1AVEw+U0YpKEBTcWpeTFRHL2lZSlApMVhiZlcKLXAxRDghO3VfWCZjNkxEVF5EKj1cMDMzJkpYMD1UQyo1b0xOT0RhRyVdVmJ1XDlVczcqbjE0N1YsUylOMEktW0otCi01ISw6OFsuYDw6Pz5EVGluUzUnKVxuQV1QVkFsWyZkPEJxVWpTXCY7RkdnNChxUjlkczRaZi1JOFVFJ05CKCMiKQotZjpSNExKXycsREBGNzFiW0VcWS82Yj1cdGoqSm5JRVpKTjBdQzA9KHFaQ08qZzldJ2RwSm9KLlZsJzViIiMsKGcKLUw4Mkg2TDM+JXRoSzVZTW4iIXNAa0E+WS9cPFJicVNuRlZpXkVxbFtSQ0NjRTtvKG4wJGZcWiRUWnBlbVxhUjolCi1ZQzFvIm5VQVlXR3RxVDQ0MnVBV3JnLzwvMCU5OTtWWTlbKEZzX1QkQ1UhZT1ZWlRkMU9sbFteITg+MGtlREBPTQotQyROR2RyLWFZX2pRbDExckw8RyNqWEwqI21yLDonYTUzcmVsZE5WRG9tT1Q5QllTWExyNENZRD9uVW1INjk+LmoKLSUvb1dNYWZrY3MwMCYrQCVgLlZEWTpwNlRORVo+LG1hJG8ualVeZV1PMUxRYyE8T2g8IWNBNUVZP0xlJS1OPl9nCi1dPEY5U2NuPkxpcSFBVjJaMSZmTjBNX0cqNyZTQnNyWGBcbWNuXkQxTjNPYllpYyNWNjpUNFIwVys4XzUiZz1VKQotMEpMQSFHXS9bc29aJjVZT0dzLCxPVGVSR251VVhOYT8nXz88cWwqZG04LHFMMFc+QXU3MTJoMzI5SV1MamJYOl0KLSZAMWQyVCdxcFFjPk10O0IpJklNXUJBRGZicjYrPkhIUFIhanB0NSNCPVNOXTlWPjVVXkNeNzNuR1xuKTg1STtACi1ZMGRPXENvSW5eLG1XcGk/SzMqcW1KQE8jQz5IZCZQPkBHVURcIUtsIT5BOCgmRkZmPSZGPVhzK1ZbWFokPzdMKwotRHMlaUheMyE0UXEhOy0hOyI+alBNJWVzVU0ocmlgOCYhV1w5WS9WayIvQWo0ZDtvOkJLKippYCU8MyRyLDBZKGkKLT1UJ3Eual9JPktkPHFJYSorMCI2MUBfNTwwZVZCcW1mS00qS1cpPlstZWI9YmcqOTBhaiVBLD5MYkInc1hDWkNVCi1KMitFX09nbFd1Z0NeUVEjaiFuP1duby9nOWQiSF8rTDJHIW5lISQjJ2Q3VDgrZ04rM25mXTI0LHBJQFksLWY6PwotYT1lViVdKUlFNTFORS07IWBvbUVfTjVCX1htc2k1Wjo9JGk3VVlkTF5KW0U2OCxFKCVrXkZyYyxxYVduO0hpQ0sKLXIoXitPJlEpMThuWFNVOilKdFVqLWtMZUpFQFZBaG0zQGFTIT1uPzNFKFx1K18jdT84JzRnPlVPZFJbM044W1s0Ci0qKUYwcmBsQlM8XkUoX3NoIiYmV1pFI0YuWTpOP0YoOW1gUG5WbnRxUVAqMFMub0BOJDE8RC1bOyFUbU8vT2V0VwotUCtPQj9iNzppJ107cThMIzdpTCRtalJXK0hJM0JQRXQ5cUY5ZWY/RSY1YSNJZGEiOD1pP004TFpyLW8/LzVKImsKLVc0P2w5TCFVbiFuQXVMVTlbbGpoJDg/MD0xRzdNVDtdL004MjozYnQnMiUxPTo9LkkmLkZUZSpkOT5vbkVpOE1QCi1mb3BhYFBDRzcnQGclcCtMJUMyZ1gpZVdzIXNcQG1dJ3RWMCQwO0BJSkdkX1YzRSlzO1BIT0VCKWBwdERXYz5jbAotUCc5JTs3Ik9zJGdDcD1pUEddL0RqWlFNUT1TJCMkMGQvT2YtVGNBRTMpZUM2b0BsMCVvLkpNZC9QbDZLMEVqXXQKLW5GO1ZKcXBZQCc5L2VoRkYkV1YzNV1NVjRlL3BCayM9JUgzLlBtJWxaTldZQ2UyRTIwLldkYSZGO0ZzNzZRZTNBCi03I2FrblBZWFEsYDsuYl5mNXNMVTA1UXJsNTUzQ2lEX2o9NlA9Rl5GNFwmRmIlWmFbXFpGTiwzYmtnZEE/KmVxVwotMWxoSkhWK0ZHN29JNzE8RDEsIzBmaCFtNjhTZzxaMWMzKTxNKkxDUDBiWDlQMXAjZmdZZ3VkXTFfUEtOJ1taWWsKLTU+PzZaNic/am9jJWYlSSJSPlUqWic8OUE5KVZOcFJubGZQOlFpQWknYFU/cmI1UkZbL2FLSDZlJDJTR0pQYmlxCi0xIkBYTC5mOnE3K1tRSlE7KSwrSjBOLjIjV3RpJCQ5SWtCZWQpQU9VNlQpKls7Ylo6Sk47WlZcTVwrRUBraltnNAotZHQ1ZzpBTiciTDRSV0dTYzduSFc5MiwiMzZJZ0tWJVZITmBMSk9tSDc4UmkmWyxHLGk7Y0tjVjJEb1tbZVkqQkQKLTstJWgpPUItQUZvUmMydFs2bGdYMWY/dCIyJFs7XC9RaFBdMm0rcGBNVF0yTF9gaHNuPXU0Pyw7XWY9JjRdbiE8Ci0/RkBnXFdoM0lONEIlTyw9ayw2NmNhTU9CUDhdTGk9I0hJL0ZrblhXa0AtKjRAQztKazxQX1J1YjRCY2prSDdaawotZWhwcVEtSlleKjlHNydtWytgI0lMNy9sPjwtMVBnJC0nO0otSiNSRkFDWVNCZUhIKGxYU05BPEExKyc/J1pmU1UKLUVsJD06IyQtKFltMlxzUGtlT1deMjNhNCNwNWAuMy5xciVCL0MvbF5ZVXNUSTlbYm8hQjVSVF9bUmdUW1pudVcjCi1eKSF0LDpdRzRbQlsuOGsnUiQkPjxtXSlCUSJxcWFDbUshUUcmXHNzbkJZJyFMVVFSYDJZVWxhOWplPTNELzw5agotWlwqM04pY0coQUFeIVleW2gvaHInXisnYztLaDUhWXV1IzcvVFBbQEVqOzZQYlsjNiNyO1VtUmxkbjkvJGk8aGcKLTFHZlhIQihQViJOJ3RRYjw0bChIJDttS2UlcWZnaUFIOSEpQ01WJTdbPFU+KkArJzdDIVosUW5QOFNWT10ucGNuCi1HRitBNEdFWzxPIUksP2FHWjY1Xj0pMyxJX1dUP1lIJksnVkdDK1pxVU8yV01IY3Q1bShTOzlRaF8kUEVIYVRCUAotbk03Ylk/T3RjP0FGQC1aZHA3RDtZbWlXc1prRjpgMnQ3QE9WKiQzXSc9L2doMlQldExxZ1ZNQ0ohXTJGZkc6ZyEKLU9hWyFOJDxTPCgkVFdlaTtiTkssSzYtbXAoPFs1ME8oLkI1RGcyaVhFMCNWRSpKNjBjWklobG5cNFw1JSJSJWBhCi0zTENHbFlnN2ROQGpxKz4mZj0sT2NAcEIvLGJOOCYuLiooIk1NIjx1WGJdYD9MbVAsZXBiNz4mRXM+P0tNMlw/aAotZWg7bXQ8aSZtJE1bdHE5WmRXLjJOSVJxSDc8WSEqW3RfQVpdZlIoPUtTZlNiYW8lW1s6UGkwIUEycj4iIzBpJEwKLUsqUVlMUW9PLFtHamY+UWosWzlCTy07QHVvajpKZTtpVVJnTjlsVWRbNXQpWFpYPjstT0k0amQyYlFaLChGKVtyCi1QLVlDVD1XXC0hMi5QKHFrdWMmY1EhOUROaFhRNWNAMig7IW1QUWNQW1ssTVptLmBeV2RKSlpgLEY2UF5RRlJjdQotZmw4JihpQ2w3V0NjUXAubCEnTjg0LXJmM1FnUGZbcSJCZXBQZmpOakVcXi45bCRZMU9GZFknPip1VGomcSRXV2kKLWI5XixnKjpjQ2JxKjEiYFFeaT8wUitdXUwwX0xjWGc2cWA7Zy45ZmFxLWZLbUNSYzNMTEE7dEspPUxQV08sPj1sCi0vX1FsWj1vTnM6JTY7dGRSJ05EJUdjNlE+Jy1oM087XTVuLEItajhqJiJoO1lMM2JANDxiN0hgTSsxWHRWRS0pWwotWnVJIWByQ1RUNVIwX1FDcUhTYS48M0FjTztdOEshKF1zJXApNV8sWVZSKzc9cUg2VzVKPVctUztHKjROXFpnVEMKLS1gQ2pYVzNvRC5nNiYlYT0vZ0xUTFJPYiglaztwMFAnOidvYlpdMz1mZ2NsP1tBbGosWC9pZSlBSWtrV2BiaWFTCi1gc1FhZGJOR3U+Xyo6TW9ILko9YWIkViVzXmlWS0NHa3MrMD4yLGZlW0JFPmBZIislND1UV0pSNGc3RlZGLFcvOgotQi8/XVsmcHNLbFMwcWdAQ2E9IkA1OzY6Z0UxOEFNVWtRLFtWNjNzZ2RBSE5Bb3EqPSxLIWYnc1lNKUFlcV9rc1oKLVwkZUAlQXFoSDBjWl9UQFtxZilvW0NeRiYmVnNmaE9hIlpbQylDQio3RXBPPWttSVFUP1VFZWBgQyUxaTJscVYkCi1BTCQ2SDZBYDhUZ1ViODA+bDFMYlFEPnNWXFtjSEs2Ryg1aGdXalc7LWIqQVlAZiVdWVdccUpXNUozS0o2LzFDNAotKHJAYVRTaCZJVF1DZVwkTDpyV0xIJ1IqYUtjQyg+UGIjOy03RDwhczhwZ2FoSGpRaXU0aC0qOV8pbFNPSGgidCwKLWwrQTNacjA3Oyo0LUd1LWZrKCZZXz5HZ2tqPS8kOlpjKmxhXXIhYS02QUFZSjFWcF1eSlFuVl9nWUtUPEtTWzkqCi1JJSFeQD5dPVZvQEUzYklBdDNyampfYCZKbGJjdDNUMGRQPjQtJE5iNj9rb2lhcihlREkmO21uV2giOz08aC1JRgotUy45ZCoqLyVTNi1EX2hsRy5vRDFjPUl0VWBrLU48KiwnNDk3a1ZIV19MMExBZ3VhYzFxOG45YmNMK29GUyxBRUgKLV4xXVksTz9FV2suLV0paWVeMWNNYXNaI20+VTNdRFFkRmxeM1BxRTlLQkxZY0lGQ1QwZHREa21gLEYtLkMiLE9eCi1lOl8yWWAqOmFwPFJqSzdlViRaSWAoL0FdNi5TRmVlcT8nN2AmJCFKL188QjxmN1k9IWAjST4zKCJibmRmUnNeZAotYCE9cnUhU0tqPWZuOSVQX3N1Rl9tRmtpJDhkISZkX1U3KGlpUy1gU2dPbiYyX3Atcz1ha1Q4JGdrMnJWXXM1ZyYKLWUobjxcQ09Pc0xeIy43RGoxXylJXGlvQjlTYVg9IW9BODx0aGQtLTpoPmJGbSI1bUppPigtZmk/NFhkLCdCJ3VLCi1ga0VAKz82M2g7LE45YWs9LlVyJWhDbWpFMVc7TzpqJ0ZjWTUhUykhNmZdOllqSVQjXCpgJ1I4O0NlPj5LMEVJbgotKmFhTjVAcl5APEMmVm1ASVcrQmpGJkNlPD9bZD5jcmRVSiZLQlFXczBxTzsyaE4pVy4tbTBXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTk2IDAgb2JqCi1bIAotL0luZGV4ZWQgL0RldmljZVJHQiAxNSAxNjAwIDAgUiAKLV0KLWVuZG9iagotMTU5NyAwIG9iagotPDwgL0xlbmd0aCAxOTA0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83YC0vXjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy1vP1IjRTQmJ29FRUNfZFRyKFc/KWBvYmI+M1FBRVtVLFNJUElLJCpVNDcmLyEjMEQwYE0qCi1CQmJvMGVXL2E9Yk46aSg5UCtyR0pCVy1wKSNjRTU/ViFGOk5UNnRpWGM1XUhqdU5WSSxJWGU4LjlMXSdUVjc3ZQotVkxiR2BVa2NoLkVoWEtYJEIoTGYicCZbTik/dSVNQyosa1RZaUlhJllJIV5RTldXXEgiOlpTaGkmP1ptNVpHPWcKLWlHLzkuOC4oa18nWlJEakVxWUojVzJMRyVASVFOQSI5SWV1KSVNNlQ/N2xCYEApPWdcNlIwQi8jPXNJISdnO15iCi0+ZilLS18haXJbK15APlFMOWkjPllLWiQjZE0pbU88N1ZiO1ltPjIsOjZTKU0pOik1aD1YP1hqNVhAaWRQXGhGMAotYTIqOi4oNT4rYSojOGBXQUokOTJvL2FaS2I2JFU3K0BcKVE+Vmg/YTIrLztkRk9IMkZfSjtNbyRiNDlQLy9uZGwKLW85dF06OFZqZWgkS0ZNN2FII2B1IzpHTnQ4N0VQQiIqaG1KTixHLT9xW01SckEzOClTNDJVTyNZPC9XZU1rWmwvCi1VcittXVEhLkdcNVw7IWpiUFB1YWZBX0lecGwza1FaNEs1MzM5PWZgSzw6PktLYXUiPjE2LUJMX2Y7Y1hBUnNkTQotPExxVllfVS8zSShePSoiQmpaX2M+UUs9JVhCPURRPV1TcVcwVEhIRHI5QjlnNmFcO2FKSDRqSyUnWD0ucCdsWEYKLWtXMDA1UitpVGszIixhJTdQQyJoSlMpKFZmSl9aTzBMLiZxW1o0NkQlbFJAQCdKWCknO2hMcTpvK0UjZWJSUSJBCi1WSTQ3aiEqWzhqYzhyT1RTcmFMcEhYM2taams1QFcyZFxqRlI9OE1ybUtLQ29ZWT0zSzVUKiwxNCgpIW5mSm1oWwotTz9pSUEhRCRmQUtgVk9XK2MuQztXJlskT1xCMWYsNVx1YUlgJ0tPc1loL09aQWZHQS1Rc0UvZ0sxNi4yb1xEdEMKLVRDPykwXCVsMVhiT2lbXWdmckFMY0dRPTxXaUs5dSlbKC9OI2kyQWwsSVZERnAxYnNhMmQ4PSxQSnNWLGEkMmMrCi02JWJfZEtiJjNOLV1TKjk8Q1VcVCNnKUE0LmMhYWVxUU9GMTArTyRKJSdIWXQ0by4wYUM+OG01Tm5AZiVDXS5pTAotPDQpNykwUjNkMVFvVnNYJS9hQ1BTNlRyWltoRCMnKTRlaWU+N0FfOUwrcVssNlw1U2xYdD4sVGUnSkAmJjdLcnAKLU5AYkFsKi8iQUsmbiswXyRRTiwkJGpxZUhAWU9hblUlYydRaVRXJyMhMCo5aDJZYFxtSzJHWTRvY0t0QyF0YG5MCi0xRjZobUkidC9hSVtCWVFIS1pAaDBJVG4kKlVBbC9OYFwoQVE/JmtcXGdwNEplU2NMLk4valoiNzdSVixJNF5cLgotP0hvYyRMU19qJzZEQE1uT2RKalcuOj1FbUEnZ1xWSEVUYD1CY286XWkpKCJlP09RLE9SbjRtMDpJQU4lImQsKD8KLUw/LGNcNiIicEhXUnFza1I3OC1sJDBEYTJRO24iKllTZGZDNFUuUnE4TlBlWCk4ZV5dUTtaLiEoS2hPZkE4c0pnCi1YKj5GUC40PzJeWVVHXEpDMC1caT1ZNkpjRkhuVkU7YkJWTChoSHNMUmdRWyQzVl02ZVJrXCxkYSs+UC5CWnRTUgotMFE7PUc2b2k4QzY7I1tnV2Y3VCZvWmVoMXI9OSJHQU1eX3FjL2UkXztOIS9iYkBERGJuQyY6J3E8TFhNZVUjU0AKLVpsLFctJD85bTE0Mz46XS1ebTpOIkAwUEJKZm4vJEs5LjpITmQ0JElsMUZKRCUwZkgrUWtyTCZlQk08J1RgbTk1Ci1EYUItbUNgRy1MLmwmKFkuNFMkZUJBQzFfN0lGUC8sZFRhTD90VzEjIj9LR2w+PCQ+SUFZckdTNypiVzkqJTdJagotPCQ3b2dWMUAyNl8xNWZmZVRFRXNZW15lN1NTOV5RaFAoKTkpYzxTRi8uTFw2UjdEQkokX3U2QVNzK2laXUBrQGsKLSUrLC5lLFckR1VaSylJXTc+M0hEMFpiMkRnXiFxVVZtNTM+TnJvK2JAS0laaiFNTW1jTzpWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNTk4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VDIC9JbWFnZUkgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW02IDE1OTUgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLS9Db2xvclNwYWNlIDw8IC9DUzYgMTU5NiAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTU5OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDE1OTIgMCBSIDE2MDEgMCBSIDE2MDkgMCBSIDE2MTYgMCBSIDE2MjIgMCBSIDE2MjcgMCBSIDE2NDEgMCBSIDE2NDcgMCBSIAotMTY1NCAwIFIgMTY1OSAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMTI1NSAwIFIgCi0+PiAKLWVuZG9iagotMTYwMCAwIG9iagotPDwgL0ZpbHRlciAvQVNDSUk4NURlY29kZSAvTGVuZ3RoIDYzID4+IAotc3RyZWFtCi0KLSEhISQhczhXKiEhISokISEhKiRlISElZlQhMFI8XisxRG1gQGhEXWwiZCFbYF5xZGE5SjpLbU01UUNjYX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYwMSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTU5OSAwIFIgCi0vUmVzb3VyY2VzIDE2MDcgMCBSIAotL0NvbnRlbnRzIDE2MDYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjAzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2MDIgMCBvYmoKLTw8IAotL0QgWyAxNjAxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTYwMyAwIG9iagotPDwgCi0vUCAxNjAxIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTU5NCAwIFIgCi0vTiAxNjEzIDAgUiAKLT4+IAotZW5kb2JqCi0xNjA0IDAgb2JqCi08PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL05hbWUgL0ltNyAvV2lkdGggNTAwIC9IZWlnaHQgNTAwIAotL0JpdHNQZXJDb21wb25lbnQgNCAvQ29sb3JTcGFjZSAxNjA1IDAgUiAvTGVuZ3RoIDIyNDU3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSixnXWczJF03SyNEPkVQOnExJG8qPW1yb0BTbytcPFw1LEg3VW88KmpFPFsuT0BXblszQCduYi1eNzU3O1JwPkgKLT5xX1I9QWxDXmNlbm1AOToxbU05alMiIWRUTVQ8JDNbR1EkOCMwJHM8NFpYIVNQUTFgQy9tPGs8aW9IKTxia15ICi1qYFw9RVlaUF5CNCFnMztCPShpWjxrRHFPaC9CZi5ESEFvcmYnUltvPz5pb1dqbkFZJl5nTStgND0xalJMVyFZQQotPU0vNikqS1M5UEVga04lPSJUY19Bb2grZmsnJnRcY3RJTik0WFFMaVZwb0koPi5uT1c/KkRtc0ckQCwsZjU4IlAKLURLZjx1azRhOz1pLEVwRzRzcS8rYTVoOGQ+ZVhpMFNeNk1BSDxpXzEsVTpxLUcnY0xyWEBvYnQhLylKRipvbiFGCi1oc1NAcCYwTTVfI1M/Y1hyKG8kJ0EqOzsvcGo/SFtUPWErVjVFQFEsbmlWR1xtY0hTISlyLSJYY3MtR1BeYjw9UgotSyJfY11sTkZfSk10RFM1Om0odGxfRChsJyVSO11NcnBXMiFQTGVVJ05zJFUrX0BVZiluTmpBXjdoV1puTGBtJGMKLU9sUy87XTFrW09zJFZ1IytTaiQ+YDAyRTY7RkVlcVRRKlhCbyJcJDwrVmg/c1BYZCxrbldaSEA1NEpiSyxZTi0xCi06QU1lKDQ1MGtdJXQmZCRaVnNPODA/Yy9gNW1wJkNqODBHNDsvPzc8Yy1eb1MmamZOLVkwNGVnU0EscmVGPCQsUQotXSgrU0EoclBxWWNOTHM8J0RXaEFlI1hpM15iWEBgK2o+I08uOEVFdG0nVFNdWW5bdUw0TC80LThrLz8pI3MjXF8KLUBpR20jRk9hXms9NzpoW3FHNVo+KERPdEZRJyIuIloqWU1xYWBYW14+cW11WDRbKUtBMXQ9JE5EXEs8XDchIlVdCi0lVD45JkQtR1hPKXA5KTk6YkFXX2EqIjMzSkgudE5tPGRePUtmXjhBKCdJbztiTzRHOCw+Vj1BI0JPLz0lOjxtUwotW2AvXl0/RC5vckhRXFpUJDM6OEc/KCI9IjFWPFo0XzZKczA8YVpUMjRVMFxhSytSdVlhPGkzWiEnZ05MSmBfNkgKLSJwJjxpMiojUXMyMmY5TWRJM20rQ1lqM1gnYWRpPUZBNDU9UE1PTGE/SjJQS1ItI0xxWC4oNThTVD84WE9hU3F1Ci04cENVQiJSRC5bZC1YTz0qMlAmZC8xa1IlanVWKClXZT1Lb1pAWnNpIShCQXNlKWtjPmJgRkV1Xj9mZ1gnYHJ0bAotImBYSE48PEUyVD5uOyxHUkk3WXBCcStdM09wLVxcRiJIUVBnWDJmU0czO2ZbVDc6RClHLVFQP3BibWZBPzlATCQKLVdHX1I4L1VESXVTb0wuVzxGb2FIX3NcKSFbSWomOTZgIkI1WUNlJWkmYHFsXjxBb3BgY00kIlFaXGU4TmYvOVEkCi1mWlgjJWdvcENhTkUvcitxXig4Q2puQiInNEgxUSE1P1Mxcmgib206QyNyZ1dgYmxAKmYnRmBxTylhPy5DL0lcVwotJz8nPS5dO0I2L1lxSTA7NnNaQj8iKjhBOW9lUnEwayppb0pGKT5MZCElJEZpJnJRXWU5PnRERiJDQVdGNi9acTAKLWRLMV03IWhidWpGXyNBXV11Km1QbnBwbWBETjdraDNFTlo1JnQydWRXJE0pPmY6OjVjRWU2ZGleJ3VxKFleQEI+Ci1OLkBvSl08MCNHaDNzITFDQ0ZYQDZcaGMiaTYvS2NAIkpBOSM8Sj0jMSJsXCtPWiNKcmk0XCdDb1BVZCJJXVVPZQotTDdOJSI0Zl0mPzZqR1giPi1qY1ZZM21qV2BwWEghMSRlcz1KXEBdO141VyxGO2RVLzQ4azpBQCMraWJST0FYXEQKLVpJOCRSaTAtdWUlcidjT0dlMihjVUdSVFdYaWlxYD9PZkA1ITw+Qj4lbkYsPytCWjdWT0tWc15hc1hSWFFiJztOCi05YTAuOC0iZFowWlpnLl1OSSZMQUsmLllVWEZCVllBQF1eI00tUWprQz07QWVdOChNLVJcUTozbStHZjYoKj1UWwotXC5PVzRHIW8qRms5Y3A2UjxuSU48QjU6Vyw4W0QoM3FDIig5YTMqQFRZLF1DMCZgLVVBQ2Yua2xyNVNqVS9UJkwKLT48UVhGNWI5YSVYQTdxcmpULG87TD5bayo7NDY7T0AqRklxPC9xRGMoUjVIaiUwcWtESkldUjFmXWgubCNiWjpeCi1Ka1dVay47JUBhTz45XCVcUFFsSGY7SmNPP2lsdEpNRyJlVl1lYjpdQFlpPigyWCciJThVMEAtNGpGQUc7UDZHWQotU29gPGRjclFuVy0jQlFVNWVuN2YkSEg6YHBiTiplcmVGQlRbL0hwS1VOS3QkM2trQWU+OSNMS1FQMV1oYXVUYk8KLSxQcTFuRThaOkdwKkVpLC0jOVV0WStcUmcwMWk1aihTXDU3SkBXMV4qYTs+bDlyR1A0M1FoLl8+S2wnMy9gRWQmCi1dMEg/RypHIzROUFNhSyYjP2txNyE0QzlpckRecSs7a0NCQkYxLkAoMUd0Mm1kT0FwPUNiIWdtVy1xVURiOz1cQAotMktyRVtFWDJYY0NVTFVsKTpVLlhDK2JMUFtTbEJWPXJZJ1xpblBBdDJcb28xa2l1PHVsRy5yYiMicShZSXFdcSoKLSZZTzpHTUg3PyNDVFU9O15EQkE1SixqK0dBLUMjQlo9YDcxXFt1REAnL0Y1UFlzKDtAXyEwU21ccjc4OUg4Qj87Ci09WUcyUFUsT14sM1AqP3VZTUgubDxqcUBWLllibE1YTmIzLGRhJkliMlstMEQ9YSVUN05BTDYqaiw0ak9WZixJTQotXjg8VyNuJHJQIVs7dWk8LjFdOF0qQ0lDc2heLj1sT19fZSc5V3FBUF1NQW0oMlhpUSFCKGZMRTFbSClfPFwvOjgKLTpZI2o1XTRISi4vRjBUZEM2RGstNUNbUjlNUUpuYWBGIUEmLlYoWURQKnEwTjhTZm1qJiVZXz03P0lxUEddTnAyCi1TSWwhTWc/aTEmRUNIWkNLNFssKWwvXG5PTCtybW1dLEAmKjJuO19NKTgoUio8OE4sODJEIidXLTkqT0JLYExCJwotZl1HRjdNbz09XWZrWGA8anRKWT8iQm9pdD9dLGVLbktzUj8pKE0pbWFlYFB0NEFOazxKZltgW0Bgb2ZBQVFeUU4KLTZVVFhSYmNHWltkbEczcEppbDgoWkpKMFQ2a2Bxai9Ea242WGpZc2ovbzklOVpVczQnbjtGalBKTnEoSFgpb09pCi1OSEBAJmhDVStkRmUvNk9lWTtmdHItcU4yYG8iTVxWXDwxVXE3Ol9yLCxsI0RoVV5uWmgiUU85XmI0MjtaQGovIQotYjQ2IihFQURMQDJSTjxiWzZxTi1SbCJKaTxLT1BZRk5IRVZgYCxYJlVVYUZZYWg1b11tbEREPjBWJnJ1MyFSSyIKLTg0PXEiIWcuUSpdclRcLmpOWStcJGRrRFU0KUxQLWVUVmNvXGlJTV1qR1o9P1xZUChAR25VPjY9cCJZKVBvIj5fCi1TdU04b2s9QCJNW3M7LE5ycFdPOl5wX2gmZG9lJyFBckAmPzI2TjdbMiNmQE5tJD9HL2tAcXAvVCNvczZwTlcwJgotJkJrQnVcQDUjP200Q2ZmbWxdSzZtQjBcWnEtVGYmNShmcC1NbVteIlZWSlYpVDI0QXQyVSZWQlhNL19MNmU9Y0EKLV4nYUdKZzZVPik/Lzo6WkhiWkFrU15aIyJEUyokXUZmamY7cytdKys1QFY+aWRZZW9vJEtBVT9tJmpAS2EzMm0kCi0+Uz1MKHBbMFctcSozcV1EYjkpPzJgOiVjQ0IhOyspN208X1JHalA9SlIoSkJKK2JOMGUyYzhuaUVERE5WSnAhMAotNkpnbDIuamJyb05WN10wR2ArKUZlbmo5TFk0MURQYVNnJyVvQyJhKjAoUmNeYjYmODFyOV80YEMuUDphMiJATyoKLWIpRkVJYGovVmskN2ghOzZWL1FETVInITIuYG1iKGdlVGQrMD9XYFkmQ3RaTGM0MVdnTjZxUT8wRT5wNmZePkYtCi1uNDoibG0nKUdJRiUqYFRDMFc2YSQ8QV0nU3FpUXFEYG1dMjJWNSVTam1YOGZuMmdsOW0oWjRaXTIlX05OanRzSAotaWJHVnNYX1MsbkQ7YjAvXDpGbmVDXipFW2AtUCElQz9gb18jQicyLCU+Ty8sUGk5SWJpW251WS9WKnQiSE9SKzMKLWMxJD5XIzo/LkFCX2dzanJzQyROWEJQLSQjLFE4RS5kLWUhI1BAKiJEISpIPSRvJiVgbihRUyxhUWo9WyJBaCNQCi0wKFJnLkRXVT1WZXUxKCFDbG01LkRWZCRdXEFma1M5UC1ITFVhaTAkUFI6NjI4bzNVKjkkLlxoXiRfaVhZRGdPVAotPVMobyJqdD0wZm08XTdbIXVePUheKDxeTlohPD9pUDBZXTFOYlJRUlU5JyRFJ1FSclNAaDpSJ2QhbFZyLUwuazwKLSlVSGsjRFBcNjxgdUBqZyswXVg8LzpiPTZCYD9EblJMXytaWTpibiFSMW1TbjQ9MjdpaztbQFoyJSs8LCksUDVMCi06Ojs6STM0ODFPb0lnWGIwOUdXNl1fcCoxaTthIyZZJnM5XHEmLD01VEZWVjwmL11RLFhGK2FWJER0MWNZLjQ3RQotQicmSkJnTUI6cDAxPG87SFBvWmBuMUI9WlkkMVZFMCldZk1uLic0RmJvNF81V2tyVThQWSUwUS4jb2QxJEM0PkoKLVVDJShnQ1RBYGxjR1lkKSNWWUtiRFpNQ2VNVipoKy9bMCFZbilZYltLZFxXL3JOMGJPOXRsQlIzOmEnMlkobS9mCi0sK01xTlcwTTlVJSskUkI7PjIjTW1qXiM5az4+NS4mMk9AdVVCaVJPXSRoU24mMENUWCwzdUFOU1Zdc05ZKyI0RQotR1VjOFI1VU5rZWBcPkduLDhubUMhY0EjTllEV1hHITtTN0oyNjkoZDpTUWZiMztub2cuJCoqSWRoc2InVT5DY3AKLWpRZ1xraWdySksiTCFcbF5mKHJUWCclJUNibzpWTG1oN1ZoWT1jJSltKTc0LGdGUG4nT3VHSWBVR3UuMGxPdCFBCi0uU0AwYWhXMU8sLktmWjRYUnRNLFssPVxjZ2lIT1Y5c20ockkuKCFNZHIjYVpVJ1dvYT5rIyVlNVZNTGhYaUFZJwotYVpGUDRzIU9oP2ssTltUIV8qWG1EVVkmLCZsMG8xaWpzIkFqZzJWQSdCZ1JALmshM2EpTit0RVpLMjxCS2VWcloKLTIyajVzT0toMDdnaFFJJlpmSUsmYF4ycjxibExUbyJBS2FeUFtOODdObDRhRTVdU18tO1haJlBsRSpvbCRubUcqCi06ZGpWSykkXVxQK0w2Q2ouSDVWR0cnOFEoLkFRN19XJG5HcDNAWFItODVBbU1PVko4Midma2o2LzIqVmRkcEZbPAotNCU8KU1XKUFnO1pgUUhSNT4rWjE4Q0lQZVYlVFNCYGlDXXRdMkQtMGQxbEA0UDkvJj4sdV0oP2QoX1xfJTdsUDQKLSswUm1WOyZMYSZvYXBfZlZhbCEibi0yYzpeYVRDOUVfJjE6bUpUbzFSaGdyOGFxPT9pJzdpNUNrPFgzYWsmOGNRCi06clBQPidkdWVrKzQkOSI7TCgvdVFMSE9nWFxZZydMP010ajlJV0MxZzU5cFtXYkc8I0ZUJ1IpLSdScEpkWltebQotalc2NCxyXEU5dGU1NjlnMUROZ0AwaWMlUk9VMHI/PDpeYCtjc2hyRGQmTkE3b2I9WjwmKDhRYjE8MDtNYV1DJGMKLTE5Z28hWFllRzBEYWE5OyMtc15TJidJREkzQk9ELSMiWj4yI0YmQzlOXy8uVD8iYydAUFZWaU9AMTJXVihKQ18lCi07VzExVyM+QzZ1W0xnVkQ6UTJtNFdBYChSMSkjQDxibyY5bm0iNXBncEIkOlVEPidlMVc+Rl1qQVRYN2RFZHBzWQotIiVaPV9wX0pjaSgvRmY6SyotI2kkXkdYKllwaCdtNFszakVtXWlUKyRRYT8sXFIiOGIkKnM+RGBabENfPSZxMDEKLWRvPXBlUGc6KyIiWnBmOkFQOTN0RjdmcGhqU0JKWm1aRDkiMVRhb104SEVrOUVGT19yJDooSWRwYE46Qj9nYk4xCi1EclhRLEtjL0JxKDMvRikxK3FRPj0paks3LFNRaVEnNFVDcWhdOyxta0R0a1YxW05SQDklMyJGQk9acFhjOy1GRgotaUZOYygqVkY9M2MzV15kYmwuNENsXU89ZjtddCdYUmJPIkppRGZEJCY4PjBnM0hBLD9bJyNkJktRXzBzISlaTzgKLWNdQWshLzpnME1eSWUqPDs6Vz9FbiFRb0NEI1IzcjZuaiN0O0tIUDJMdUVHOyNWQzxKOTRwLEA5aiZqbFAmOVEuCi1KcWRaRiJLTnNRUCI3RyUvRFc/RUlnOzQ8b0pfJVg7ZjsncCNnJjFNKUghbl9aQFIkc2ZbRVNxM21YTCMyJTlVJQotRD9gXWQrWHFVRmlkPVIxKzlHLlpPYmFVIW1rbD85ZG1iK1BHN0FmcmU+bCFESCVAZT5DcGpkZk9fJydIaGZkVFwKLUJpKTFAWShXaWlmajM1Yzk9UXNxLiFmWjI2JihNQzxSc3IlPSlnTHFWJXE5ZG82PzBcWjFSQiFGWGBNI0dhSy1sCi1waHAjMy5wLUo2bklDTi42P1thXWByQTppQkAiXElQTzFhb0NHamJCP3JnMnVDTCF1OS4wQS1uKWcqZiExL2coJgotIT1MXC1nTTo5UTFoYDpWLDhhbTk3VCsidTxcR1k6QHFzQExLZVRuW0dAYT5VK05SVFE0UzlFXEQpaUtkWlFQVj8KLUAuTlswMkh0JW8wYD82aFVxJFFDOlY4J01aOjlqSltnOEkpWl9bKVVEZDlJQkVLZm9ORCZtRmpSLVlLYHJjVlFxCi0oNSRHb1A/OU9MYzF0IlFOR0YtbEgjJVs0R2RfZHMjMz5VMUlwRFNWP1spKG1cKC1OLTw9QElKODxZdDJGOXU+UwotOk45Rm04K0Rqb2ZVQ3Q5SkVGIl8qTiJbVFYrWHQ8UltzK1NQWkVQcHA2L1tnSiFMcitEY1xNbDxZJmNjUUtCaCQKLUhgbGZZUTk8SSdOOlUtRCFpSUdVQnB0MENCTTAyWjo9VyY8YUZQJjdjXi1Bc0JsbyRVXCNYM1xlVlNUQjN0JkIwCi1HJUkkWSxAbjVXIz9mNF1RNT1tQWQ9UkNFUD1gJ1IhZFxdMSM+N2xlIjtbYXEnJGdJLFJdTW8lNUYxMT1HIWZ0PQotPWUlS2wybiIzTTI4J0I/bkdSVGlObj1CIW4idT4sQ2wmNDhLXUUnL2FkXERsSWhJcz9PLF8rWTtcbVppV3V1UV4KLUYpSWtbWXBqbGtNM1BDIyFWYSZsXCMxW0FdZlY/Ji8kcE9bIWJ0UCIyU0VeQDRPbyZVcEgndVsiLnBCUFQlQyNuCi1acWgmSU9fdFdWbWhcIUFHOGlNP0VOW19XLicpZCkwI1wuTyElKk5WQW5cWT0lTmhlImwhRHA3UVdpbmIpXzRNZwotP1UxIV47KXBMWE4+bG9NRUg5VzVbaG9pSiVhKGNsMDhHLXM1aXFsWS1GNUpXJlNgLl1SI3QjaVBvQWdHXXJ0TE4KLVl0VV1XW2EramUnOF1kJk9uNlsnPjhsS05ZZFhvNS1TQFNLLjhxbGkvSiowdUAkX1taREtnZj82IUducW81cztKCi1lTjc/Mk8uODs6RCMqbFFHIkhwVGdDXlg9cDIwWl9ZUjJgPytHNEBEIklvZCM5XWBETnI9SkRxJGJJMmsvZERGLQotRGI4O2tOYEEnbkVEci8+MmVXbiwrRHFEcmcnYiN0cGxNT2shIko+JkBVYDstXlI+RDg3K0puV1ImTGc/J3JBKjYKLVdBPHRKRihIUk0xUzMuLyZiIk9EZiw3SjNHZmQ1cDVQYl9xJiw8TjU+YnJhSmJNbGloQyZaaS8rU2NYayUqVkFfCi1yJWpqXypKTGZFZkMlcjQlTmZFWjRkWWYrTTloWUJta1c9XWhqODszLzJINGhhWDIlYyVBdDBbPEsxPWNrLTddPAotST1SUGdrMD1PRzJfYiMjaigiKW1gcT4xYTxZJG5UVVVBZWJhUnEnJzNGUykzU1RXSFNFdD5AQzIjXGdQTEArPEYKLU1taighZSZUalVCPWYtXjtqaCdrKGA+QiZdOUY1X0pYSC9jT285OUIyLTFlU2YlVXRmUDRJST82c1tGS0JoQkBcCi0nbyxXXDZhIm5VOCxQJGhdLC1AMj9KIWB1cllkWWsoJTZ0azkzNkstKUIjUmZxUTZOTjUnbVpsN2ZtRlc0Y18wUgotcFM5cz0qdGRWKFxtPDhfWW5FNHA/dVJcTFJNUDViRTs1bjc0LWtfSiljSmVkJUBWN1dbamVsazdAMjA2PUVxVWAKLUBIbi9obUJZQF5BT0JLMzVDIlFtW1koLHFRWEZlNDchNXVacSkoMyttbVBkVipkSDNRcSoyM21hTlUlVkMjV2VuCi1BQy1IU1AySDREWj91VVlJO3VCTztfZ0hbZDd0UzljVHJLPyNnQ10iVW1FKz4pOnRAPyM+UjUqO19Wc3JWUG46QwotcUVXISVTUS5rPHBccz1CW3VZTEtDMnVUbHIvZVZoWUglIy03LDBkbkdZdU9BZEQsJ19IWDpeWiZyZTs/YE5ZM1UKLVBXZmQtLE47TT5sQDFXalFkW2AhPDFBX2o2MCw/az0wdEpqMT5TdCI7K2dPWC45J1NwMFgwbG5aJFdvaGBCSzpkCi0qcEIqLWxtQ1RcZTwiLEIpVDsrQycqQWNxIiZaL2dPVUlyc1onXUw6QSUrR2VRcF07LlJkPDBmXjlHRyJcYyhocgotLEknMExgTXNCPGlhZlEwKENgajk1VE1rIVNIaEFCJ0JCZ05USiIuRC9eWjs1VisnKUNhJzAnc1NRazpqTCJcU2MKLVdZamEnUUQrUnNIQ2MvaDQkKkw+UlApLGJJM1k/KDJjUF5VJzduKm87Mk4iYy5ELiVgKCZyLkhfPHJrSGxkRmJzCi0hV1czIyE4cCpzUio1YWdKVWVuPzguYSFRMVAlbjo6Y08sJydiSDI8IyFzSTVKLT90cCNVISM5Ji1hTDJQdEwvJAotZmxYay0taWhCaSE8PGcvRF46Z2tAKnBxWjJ1c1lDOkVzaEcvMkR1RyFSTXMyYUwqKE8ncmFPYSdGOz8oKjxxLzQKLUBUOWlncmZdakYkbjBKPC0oOyk1VydNWF9SJ10+MjUrckIuO0FoPE0hIThZKkpjUTEzcnJJXDdeaytNZTFtVV1ZCi1NVTYiIzMuNXJ0PkNrO3BRMisqKChETmk5VHMzNyk6NEpZMjs2aG4jLHFoaSNhJls8Ni82bDQlNkUmPGZFLWRnLgotJF8pXFFWXD1GLDpBXVklRTkwJToicjshMCEoWmRROG1eS3IiR0JUXD5INGhmLyMwVz5bQyczREBvcDRlPiwpaioKLV4sIVtdVU0tVFByL1NNU0VtKmtwUUNbcj5GKmota1w9X09YciE3bFNMYSdPMSVWb2FhWixnLlphWGJXKjRPdUJMCi1VNFQvQmJHMjwxXy9EcGVOJyI4bFsrZDJkWD5KVjMuXGFHSDJHQDsjTideLz4zMVFlST44IT0jWU9sXyI1WitrSgotJlAnK3QlZ1h0TVpgYk9ZJFFAJTpXUWMnUCdmRSk5QUA8Wks5S2FmQGteJy02NysqPzZYI2I1LydUKzs6aiFQSEQKLSVKNDFsXFQrb2gqKTNEJyFvdT5WUEVgRj9uTFA3YV85UyFDbyQ9Oi9vV0N1UConJDNgWT9XazBhUidWSi8kM2JpCi1VOTI4W2JGSTgmMW5vN09idEhiXV5KMG82aCk4MzhdNWwxZjpMYlpvM20/bDpYSiM2Lz9XWHQpOUE2cEY5N3NEOAotMTYyPDpaUWgrYWBzSk1bbFljcihFQjw8Wy43bEAwXXIoR2g1QTEkTDFBbVYsWF9YcmA0M0VNV0Q2YlMkJyFqRVAKLUg7dVtNUTZZXCQyQ081XSJBM2VlX1ZFUShdb3B1JmxEOFFLYiJqUltQaEMrV0hHJCw+b3E8PVYkKVMtRGJ1JDhDCi0+Wy5oR1xLYXAqImpZQD06cUpeT2NTTVopRnVkXldgbV87PnFxREUrV21dIShaaChPTy1vT2UnJU4tQmBxZmlZVAotNVNaWTw5cz1cNlBaJzlcQDFHREM2SVA7KU4qS0AtZ2VETzRZO1M8cVtyNFhALFk7dTU8czQ0bWpkI2c0Jy5vKUEKLUNLT1VHbDkjJllkP19rZkIvLkImaTchISFYJmxYbi5uNmEpUGIuOUM/SGxGXmw8SClzU0VWTVo0QlpQTlE6MUg0Ci1VIjxKV1FUT2wwZ1FcaS0vUXA0QTQkbFVQXmkwZTZKdSVnJ1MmRHByWyc4YFxudU5EaFpyXGtTJm1mWHVoT3BpbAotL0ljVyZySCtBPl1fSCY0YiJzZi47OT9cXGUuLyNwZXNBQXFlJWgydEtcMlxCJjwxb3QnYGYsYTpmQU4sZ1JKKWsKLVsuSj5OJj4udUM0P0tfdUdHQi88ZFdmNk1dS1AsUEcuWHFBMkAmOnMnNDwkSFk9Uy5RbCMpVk1ZInV0XWtXXFpfCi1UVE5dQUNbNnMuXiNHXHAjZUYmVzo4LkQ4N1M8SSZVUHFMPSo9XElUYGNCZlczQClmbHFPQWFDSko/Y3UiRFlMQQotKlgwS14pRUsnPDhLSih0QVx0XkIuZVJwclRiMC5BK1E7N0FfYyNgOTBmS2NlaTY4OCs8ZVZbb1lhIVNeK1dNYXMKLVc1XjBcQjVYIzg9cG5PPTRycExLQT0qZyIyRU9ITDNqLytaRldgREBAdVJ0UitvJ0U7ZT0sMDFrbipQWSdQTCNMCi1NKSdxTSQlaiZYUTpbQGJGKU07KzgwJnFUbEhaMD8/N1grUSk8UVZBTyRoSEVObD1YWi4jP0pOIjBrVzczOyxUXgotX0gnbz9jbldddVJcbHFtKl9aWypANChvODQyXVlcPl1JLFpLdDZdZSdMSzxwLztvPzRaN25QUUtcXV9RK0RDK2kKLT9wV0NnJjBtP0JETWsqY1xkLjw1PGgtJD9rT0lROVFvSz5cQyhPOCpcayw+MilbX1ghSCNEYiVPPXRfVmFXdEVYCi1ERlJhNlQnLzZmUF1XKmQkRlA0NSNOQ10uRihxJ0ddXTpjQEZKVD1Baz1ndW4lbEE8X0dtcC4jSmBoL1s0PVM0dAotZCUiVFxMLEsrWGciX2whNmctbU1UcVgvbkRNY0Zrb2YpNm1pKG9kNUVKWW4/LVlgcS1bT0A9LSkiRzE4OGtHLzwKLWBQLWBUMWJYZDZYT3BBcF8qSnVsVyhNMSVFTV1NSVdhS08sSU8zcDYtSEdAQiNhYzNLakZKMiEsKysiQlonZGAoCi1Gb25WOl9WUSonZyxgbnRUMFdTRWk2UjdmQy5mYD4oSEBGVic8NGNYQjMoTGkxKlVrNk1uZ11uK0hWdEZBLHFcUAotOXJaKFRSKUw3PXJzO0FsNmQwZXVhWiFtNEFeXXMnQVxmV0FrTC9eUzNScDghPVAtNnUqPXJZZVhmRyVNTXBsMloKLT0pJTNgL1o3KlorRUkqb1BEKWFYTFs1IidcYTxeJHFjSExuK1svS1hZZCdEL1ZidG5IWWRrQWhkTTRoKz8nTkplCi1kMFNsVyhSblpral83OmhcZVxVTG5bZ2RFIy9GLDBBNSpVZGhGcyZjYEFINTE+LFo4dD47Nm01ZEg0XzJiLV5jKwotRksycGo9Z1VWU2w0MEhYRllCSjYsOzE8NyxWS1VsKm1fQ2tDXj9UZjJoZ1QxPUNoWHQmPkc3X0VMTVZZKGtSTVEKLVNTXWYuMitnaC5AOnA+MGlAXi1GZE9UWyYiKFhdKV45WV9laU0lPGpnRjRTZVwvPzNlNl5DSSQyLTwyKFYtQ1gwCi0+NiQjSVojPmpGMUg9S0kwPCEkbThbakQzUl5yRVVDal1xSCgsZzRzRnMpWDpSSCg7ODorIl5IQTc0ZWdRQzxgYgotOF1AT2JGLGRgPURRUzVGVjQ7cW1QVClyPy0tbWZKaWtrLWppdXFqTjViXSwnPmUySytIcyNzUUdcKjgwQCpkc2oKLS06dEs/VzpuJmdRXEc8NC4mQlBFJy4kZjZYST4kaSVLW1xBaFx0S0BOKGcoVlJGOCxJbGtxWXQtdUhMUDY1NFgxCi08OWxbbGUrVzwuI15UPWxNXl4yaGBAYEBFZUshNi9kdXJvSTdfNCEwS1dlKWsuMkhDXlVlOz9kW1RzZjEsVnJHOQotLzg6R0pmRlQ8M1hkKS4mRlRZVCE/V1wpKDJSczVDczZnIUI4Yl1EdDtWZDsyJWkuaUY8TWIpPix1OEw3ZDI2Nj4KLTFNWjQ5aU0rX1o0ZVIiVGtjPjVcbUYiPDUuOTJPZS4sPChWUFFNVnU4Ni86K2MsaTI3SChjWF8xTj1kXSM/Il1mCi0yOl00WWMwcHI1KCpwOFg2TEY1MjhiaUJFP3BbcG02ckNNLDxoSUJsYmIpQEYrKG1taC9UKSh0VTVQOGpUVT9WVQotQEROKUNnO2JGQCw8ZzRsWV0+U3FHWEJqb2t1aCskKmg5YjRmZT5BXkNpKm9CW0JYN0gzSCw5VjBJNDlhRGkyLT4KLWlvISs8W11xXENhTzlFNCk6RV1bSGdhLC5sRWs0TTwwTCNFI3BWUk8kZV4+TFxSdC9sTDUyNlRDJy46SVU8OztuCi1ERzg+TjUsM3BMQHFDbU1DVVwub3BQWG1AIStWQXE+QSYqSVxuI281SExiJnQ8RTE5UiciXTYqJ21YXjhSXVEsbAotKlwtOnUpKSc5YGdacDxjUUkwOlRjPCluMksmXWBdZEU7RV0/YHM8OnFZdSxFSD45NE9TPyUjLUZsXEltNlhdOUIKLUp0V2JcUCJzWGtOSE5EP0RTWyFTRidaST4xS0ZNWi0iMGtnJGNhPWUnZTNwcm0/MlZyQUdSLmhHa25DbDlHYD40Ci1aLDtQLz4hakFNbCgsW04yP09xWmFcZFIiJkE2YiEpM0ckMiQjUXNUYkVsPldQJ1Z0Qlg4JjVHbG8mZ1NcT2llLwotJEY/cWk3W1QkJi0wb1JvQDU9SCorWjlFZiZnQzE8S0FlWFBNM0ZAclpzdEReX1MhL0wkRyQ4KV1USnBALklcP1UKLUNhVjhOWV49YlFHblJWMjgvRk9wVkFlPGkuS0AlQG1ZWCQ2I3A5ZVEucix0Njs0TXRnJkJSNUFdNE1bMT9VMyVcCi1OajZHT1UkXFwsXD0xOkJZRjgrTl81b1NiUHBaWyEtXDNbLjs7YTs1RjlsI11ZWSpTJ01TUC8xKV49bUQqVnUkPgotbldLRz5ZKUlyYFtPU1glJy86Pzk/RktGTGArIldRSF0rLkYrcjFPQFtsTSZkI2ZfXVc3Py5kQ1kyVWpkLlkiX3AKLWQlN00vVGopJmhfbjMqJWRCKGNLJEYuPlRKZlZcZlooXi43UDEjPSdmWkZlMG5cdTRRXi1JT0NMbGY1UC1VZ3BcCi1aTUJuL09gZT9XQSZHblhaW2pfWFMsR0RfLGYzLlgwYGozV0BUYi80cUBmcjkrajQ3RzhcZ0tXMyIzLFc0S25lawotbEAsM0chJXV1KC8ubVFGQTZndUE1cVxtKypCSDA+LCZcRWlXaGtBL189R25qK2Q+OCw3bWxOWy5fOSg6QCNeTE0KLW5pbEMvWDInTFlNaVksakhwWz5fKDI6WjNiVj5ZJGUxYzYmT09ET2tkRGRjbUouYEgxLGBFcWA9XkItWEdTJiIqCi0pSG4vX0Y0bThnPVtxQXUhS2hqYD1qOUlaNEhqPDxUbjw3X1pMRl06U1xzSXEkV0hASFhIVT5dNVQiTS4qczJfQwotOURvZEdAJUkwOWFhOUkkQDo1ODhEJSEpNyVJYUIsLzpGbG5PViphM1w1U2tpKWRYdG8xKyovJDg4LVZFWkhGdCsKLThAJ0o2YkpWNzpPTD84TUs7LGBDXiFmXzBpSEguVmE5YGFxXTRlcHVNSixONVQrXzozK00vNDhscUcjKDkjNDEoCi1OPnVIOWoqPENYX20ucFA4L21HX3E5Z3FmTUBEO1oxInFEYEpqNS1GaSFuWy9iY0g0KVpbXio/OGZjVTVVIWtFXAotYksuOSUoSHVtUyRbSC8mNl5hYTNgWWYxWE0sRW9IUEJqQnNZODU2c11KLWg3bGlwMW9rKW5tLyZeckEtX2dmI2EKLSc/QkY9KSsuWGVuQXJNKFlIdXJuJUM9ZUJVM0UrQFg8RG9FOiczRG8pOERhN0VmSjJcJFVfcVVnQmU0W2pwaCsmCi1PO29vQTNHU29STUArMDBjaj1fZkJbVzlrbTFEciFRYDIuIS4yJzo2VShyTzcnRGhGLj40ak0jWXRTXEgsV3FGKQotVSM6X05fRm46KmMubyokM3JrYHUmWldbYjI/YHQ7M2JrXCVjYTlMRzU5LTw6Z1RKLkxLIzEyUjYhMmpcIXJVR0wKLTNBJzIhX3Q9ImVQLFRHLmFlOUNmTF8yWU1dYzh1QXAsYkBlM2RYVTtxMGlyKm87ViZqWj4jUjkpODgsbDErOnB1Ci0tMz1IJzQ7PUwjY21NKWI3VklwQmUkYkhvKTU7R1M1YkpeWGlncVQ/LygqJDM4ckthcFpUPlhDXVotcz44VnFWdAotcSgzcjQhdCkjVCspL00sYjxEL3BWJFJeKCRkbTJIYjYmSWJyW09aNCtfNF1dRVBUZDFMb1tlOi0lKTBqWlgrVnMKLTw9NlQmLFhkaiZXQj9dRHBxZkA/LGpCU0QhMWpLImFaaGlRY3NtcyFkNHFyNDkuLDpgU1YuVGIkVExCWFZrdF9bCi0ySCQzPUA2WVczcVU7ZEplRVZqZ2dnJTIxMk1gaUhNbTheSTxGcUpDMFspamdkLF9NZjBcIWIoaG5pQXBgS15JYwotV15CMSpFbFdSQ1EsOWZCIXJiSW5kXURebi01MV1ycHImYVBTJWhZZjM8XDM7bykxOVxhZz8pVFVlTm5zb2FyU2oKLVU6R3JFOGJAWV5bKkJjX3EockF0YzRVU09dOUs3ZkZKQ0JHLHVYJTAnJWJWNyZbTEA3LSFRb0tfTSMoNXBwSTMrCi1VOl5zYSolSWIwO1RFYktRMGhvKzIvXkFHZ1htZyYtJDkwVDZJUUViRCc2KDUkYzNIKm48cUVeNWE6YTxNcWpSRgotMGshdDlVcyJ0QFlwbi1pQUtZMDA4JldPVFEuNEosQ0IkMGVQLVovaycuKCckUmBNT11ZYzlSX1opRWA7b1Q1OGIKLVooaj5LYiQuZ25Cb1VXUk49QHBQV1Bdcl5vbWVmKltraUErXk41IjJkWSI4TW4zNC05YFFVSW5cL0U+ZihYcT5XCi0+NWFzMmRFTi5ZQlVIWl87Z2k6XSxiI3NYMWQqKVAqcEI+bjEiRjVlPU9kMD8xK2A9WGc0TF0vP209T1JSI1FlKgotT1BeWjkvQVF0aVQ7Z2tUMzlKZTJiMTZWYTZIK1RtMGRbSyNpdSFKYywsRlYsWldeXEdlI3UvKT9WdHVELyZ0I0oKLT5oTD00OCopb0huLj02QztkMFBiVS1TKGJZa2JtPEBBb10qYG1SR3JXMzhGXThcP1RDUi91U0cyL1hDKklEV3MsCi0qclBBYSZlaT1GNEJSXkUhLl4uMyJeT29TXE4uSzVbU2BjbGpHLV5yPFFdVDg1R1ZXNlUnbVNNY1dLYERWRSZKMQotYys9YCpxanQ9O1A8RltfTCQ5WEokbFM5QV1GcUU7ITNtXEldPmk2bjg4V2BTX3MiVExlPjAtOjkra0UlLltFV0UKLU5rMGsyJFd1JTM9WGdabyhhSClZJGdvKVZpX25iQSEpaUsuMUVFbSwvOHEqRT4+KkhBZkdxbUBKTDxvVFktQDtpCi1hPiFDYmpUIi1AWHRSW3JiJXBiXEVvUE5IOW9cYTRlbSlwbmlqKUQoK1xeOyZXKFpvcmcxL2M0NStpTlo+ImMvXgotSSxbKmY/VlIlNTosV2spbGtITTIwKyxMdFUyO0RrPEpfK0M0cFZjIis5ODw0bklkTzdYZTVEVTFpZD9Yb1dUYCwKLWpqX0lyNTJHKylVa2dwOkwpRmtZZlpKL0JkcSU3NWlcYi0oZW0iNERnQkxnWiY/NUp0XzFnW2cpNi04KylCN3UpCi1PWSRNdTc5XC5BPUJJYCxZSTMuLF1VciJNYlpvSW9caEs8WDdAVy8mVm0mbz46bl4raClAYVwrWCZuUE8vM1NTNQotWXBeWmgyY2I0I19wc0FlUkREKi4+RUpYLFo7RUAzO0QxV1xeLT1VWWl1dGZJJjxwOjtXZ1pqImNIXzllSk1PWisKLVM1Jy9AI1lSZEtnTFdELU1DYz50aj5CckFbJE0/aFxKP3JYQDloKyRPWVxXK1JtUU9FKGRwYmhlPDM0Pl8uMFRwCi0sIjNXXz1TJVFZbi88NjBdYVxlUkYyQkpFWXI/cjtdYWErImpOYjwpYlJOTzstYmJTLmF1ZyEoSjNBIl0yRj9OMwotL3RDQyYyNixkMjstZWRyQm9aRTdLc1wsJE1ZVkNXPyhlPm5KcydbUWJWT0dTYzAoc0lCamYyQlVcLydKWHEuQlkKLTQyaUk2XlltUEQ5PiIjUV08by1lZzs8WmokKW9qPV0sVGY0QUFtUyM6J2JKZFZETUQ+Qj04bkwnRkVAKF1QLlldCi03RVdSMCRhQCZRTS5eVFJNSkBnaC9bbGcqUW4xUyFdbkFGIm5jcTpmRDltTF4oRXU0P00pPVUiX2UsVCFVaE1wNwotcUNPTjlWJkY0RmMqSHIvQTlNQjwiWVRsLzRpLHBlVlRNdSktbmNPKjhVSGZMaVMnP2Qxc3E6I0FzZiJtcU5STm8KLVheXkQ4NzFiRDZQKmZdXjI5WkgsM0UjX2ZxWS41MWZbJzlpKCtgOSNBWShUTFgjOVQhYysuR0tkXHEmPCtIPzRfCi1RKStMVTc2SiRuY21UNi0zaWRAZjs3YUM7OnEyZmktVFteNkZJXidMZTA+UDBZOy5hWiFhXGdgUC9rU0ooYU9QIQotXnVhOFwiQEE1TygjJkpzYjlYKT81IiElOjg8bUpWcShhPD4mXnFlRFBQVz9iUCh0PTxHSnFwR1pXWlJrbD9lT1UKLSo+WEpoUGdJKHByW1YlOzQnSkFKWSQ6ZWU6NmlDMnArWXBXaWEjNG9fbiZBUiQrTThsM0hUX2kyImtZVDZBXyQ6Ci09SFlkKFBNT0BDTCRUaj0saSQ0MjIzMCxLO0U7OWpAIVJlRUMsNCNoKENsWmw6YmxpIyovMDJRNFpGUnEkYjYtSQotW2FqQ2ReMDs7NDptJWE3NjhXUkRFb0EoUSgtNzo+UzJkJzVGQ2pDV2QqMk0xQnI9ZHIxXzxEIzwzZ0RnSG8+NkYKLVNrLzFFJCcnPm09OSw/ciwkYypRK2xlRiVxbnFIT08lUlQ0aSs3IU5uc0lYLFBYOmVsVW9NZCdfam9pYy1zIiluCi06QktpaFllayI+I2tpUiNbTWp1UUtuLU1eYix1QFxdL182SEhKQzUsYUkmYT4/Lk1kKVVsOF1HMSpEJ24yYUdBIwotTSchbD9Bbj8oNSwlTi5EKUt0IyYyb0dLXjhPRlU4VV0hPiQoWj9VKyVbVCtwQC5PJDYpPjBHVi0uYmhWKEw9cGEKLTo1SEpYISNzcFNfJltSdDpRbzhBLyo6bFNwREZraU5GTUw1XFdiKGJVPzxhNks1N2o0YlI5M0gvLTRbOS1VTSQjCi1ZPys/SmNObG8lVVcjSGRvKTsoTm89PSQ4XWpOW3JbJTFHXlAlJU0kRjAtTzQtUCdSRXFJOFdDP0M4Ji5iLV5RLwotPFJDVVhPLy5Wb2kzOz4uJTRzWiIoUU5FJmcpMzkrUjRBKHVJYC9zdSppVE5scyZMUlRQMl1MMC9KP2guRGBfSj0KLWd1LmhQZCtvRjZIRzRhZSljXFxVNzYkSk4vRDI6RUBRYzEyWmEjV3NQUlRedFpKYzlyZmtSW1ZFVF9OMmVQUmkuCi1jVz90WDVuV0JtNVI9SkImV3JYTjk5Uy86SDorI0Q1Vj1Vcz9fZlM8L2tQaUdDX0Q/YUVXcVw2UmxtMl5URTYsJQotI2RWTjtsb1o+Tl4xZDRoJk4sIl42cVUlPSxvYVpBXzVkKCpAZXJOIjxURl4nXzNMbHQyWjVIXFIhWlspW15yUyMKLSFKZ15VISYrRzQhISJhQF9AbHRPXnU8WW1DXkxJXUtnOz5PP2lcSWklWUkmdCEkRHNdNVFIcSIhJEUqbVZIIy40Ci05NGNRQCEhRkdvT05BYWwrVHJccDFRPV1aUExzc2UrVWpFLFVYMWBLSEE8I3FgNVphdVs2YyY+V1IqJyMzaW1MSQotLkBzJT1kQWU0NUkxXytLaTc4OF42NyJzWGRIc2JmRDNCNlJWR1k5MC4zdW8vMFlVbjRaUk1dIiJXc25lLWRbMDUKLURFLztjZ25BcCFEKDowb05GSFQ1TU9kV1k0SDdvR29VTm9OZjpScltDTkxJTzorJDplO2ciRFo5XmIhRVhpSTI5Ci0kMzEuckpzIjE6KFtfTTQiWGFTa1VjYG9uTmBBNl5DP11rNipaajpHTXNiVzVSSTJ0YzRSUSdVWyhLLWgsTCJnOQotK2d1a0haWE4oPkQwNV5eViNJOTBrZ0IqRFFrNTJLLEVQTi5jNGc4bi0+azsoT2ZwMjhYS0IvI0BdJmZVQldBU0oKLV04Ti9fYitfVCRWIi0lW1pvSTZcLiY3UiwwaSpGLyZOc289YUo2QnIsSy5cSy5VJ1JTNT5UPydPZ2YlZ0lmUk1cCi1DMVtHSStHNGs/VWIvVjNxUV9UX25FW1A2UyUuK2AldCRYNzIoP3RUYF8mZEMuXjYvREhASDciWCIuWzYwbCRUJQotYCQ6LkwlZkBuLiErXz9JaSJQX19hNyZxTTNpLF49QGZuQS0hXmI0I0U0W0k8MjMpSFtwbyc/czhAPm4xPipQcVkKLS87LChMWmpjakpYPi1saCY8PG4rcikxWzExaltcSDI5U1xBWW0oYXA2TltIR2xNIUE/ZSVjJFQzNkFKJC44JikvCi1RQV9FQTcnQnE4WXNVckVYJkRYSU5cWDVNViJkPSJLTi1KYDtULTxJNyd0MC1bJmNzXTo5RSVTYkIza2RbPDFeUwotSmREUFNSX1s0biwpSm1LJzAqJFlOOW5HOFpIPDlxLm1eM2U8LmBjK1YrVXJsT2BIUU02cV1dMFYoUEInKHBaZCEKLUhTOCxKQmNZQT0rQWFCIypPazkjTyQ2Z3UzZzQ3K2ZNMkEhMVxodWI2O2JwQlhOa0I2ai9rZVhvLy1yU2BSJWw4Ci1gUjBjaDtNJHNwM1toJ1JvIkkmPS1Fbk9BRTFmZGtDRHQiPzRuWCJXOFE4Nj5pUmJHLDVVZDJmZDFFIUkiYENfVQotMnFEOjlMLzlaa1pzK3IpYDpMVEFIRylxZkUxMjdNXjUrUyxPND5qIitjOXM7IWA5cmYlR0Y9LC1aSCstbFI0Q2oKLVhRUXMrSUdFU25ZWmhKa1tgZ0E/P25pPlNFMm0lLk5LJldSb3NacG1nMEdjWUFAW1VEcHU+Zmk5XWB0LkAiZSZMCi0iOz8vRyYjYlVsJVpFS21OXlhlbzAtMGQjOEQwNFFNcURjc0ZvX19paiZGSDg6N1MnTztRTWJYamtEOktJTG5gNgotIWBeNjVjNS0pTGBrV0FPT0N1LytkcDYrY01TPl8sLigwUSc9JVxKO2ZfNkFkRlFEYzlTa0o3W2t1QydfZTZtJjUKLV1DNzY1Xm1tUWFcNGcsVWhgKSkvajpiSVZaPG9CZzhkWWBlKD9Uak45dD4lRmFMbjhjZi8zPigmZVFeMjpsdXUzCi1LWD1GKVBzM0tBbDU9LCdHKlRVKTRBI19vKy9BUTs/c0JqZGE4cnJLZkhQPSRiI1YmZU00MUtTI21hNF4+ImtfUwotTGNlI0Q2ayo+SkQoKGdENGVjXXQ+YXNrKiMwYVhyNz5EOkpfamFVb1YnKkY3R2Y3QiFHX2JEVl43ODZsXFhhQU0KLTg/TzloUHBZQUM7REIjI2pDTEonMUN1bTdaOz4qWmpaWVJtRFJLcD8kIXJTS1pDV2w/SGsoMmREK14nOV5uWyEwCi0+IS1eXy4tMlBqVS5GcSo0Rl9TRjshQkVeUi9HWDNbNEZTYilQN2BfYUhzTVMsTCtkSjEnVjhhZyMzSmNaJVdQKQotLT1IaSlIL1R1Z0JnJilPQFpQI0BTZ0Z0bSEybF9uKzRhP2E6ZG41alZMam42UWFzWVRWUDI0IkJBZU4vO11wYW4KLVYjcjteYmlLbEFbPSdeXUhrYFFpQFpaMVNKUD9FN1FaWkZlTldkXjA5JGtiW0srKiJlJFU5NzgiUD9PPV0oKFhKCi0icEBYdT9gWCErQ3MpPUpRN1YtdTZSO2czKVFMR3BYaEQzPzdSWk5TXzhdckZIQD9NMW4sc2IrITBDJCc8WipeXgotJmxDXllNL1RvZlZsLGsxOEFwUVFidUZcMC5MP11ZUGYjPVRoQz83N2I5TnI/JlMiUzdpclVOODhsLSw7MC4jSFkKLTgyQF10UzlmYVhaMCQpNHBjLWxnTUA1azxOS11lbEIqVDs4LkIjIlxrcF0udVUjTHN0RDcuQD1lbDk2ZThaVHNWCi1BRGUjZCFiNTQ8a3FiIiYvbSt0c1lzTVRvIUE4JDRXXjNVJlUoWWoyNWQkLTg3S2pvXExjcFM+alE0WTk8Q2tFNgotTkNAW1ZqbmJUKyxjbzg/M2cxaFZSRVhDazkuYyFGLE8jRD9VL0hzcydKKi1ZV1kpL0lQPyhXJ01iMGpCaTU2U2MKLTdXKUVKLktFSEQ2V3E9MlFjdUdyPnVmLXArUUFIJzotMiRPRnJESCwxMSVIPWUtSjk6U10vakBPUTlAcTxBRjVbCi1EJzk6R1Q0WjlzXjwvOyM2XnE+Pm1KUVFkMjVuIU4tZVc0aFlRSStzPXJuTSw9X3Q4VFhBOVU4SXQuZU9UR1VXIQotOWE9QS9hUylHcVNKOj9CJTUjT0xnZDteMSZvRzIpYzNpQCVuOTYkQXA1QmRMaCcrQEk3I0FUQ1VuajxXQCsmPFMKLVJTQkEkLUlXPVUoaUZWMEkrV1h0VG4hLCcxTSppajEzWTFBLFYhaDchZ1NtVUdfXTBEWGEpM10lIjpRVi4jLEk8Ci1bb1hxLipdYlVNW2FuRlNLZnAsYVJgJXNASiJgaTUqYStyMEUjKVVJMSFIPCclblI1Q1ZAPUgqVTMsUmo+NUYtKAotSDc1ZDVQJ09EPUBcPHIqIyVoUSZKS2MhMFknKWc2UkMmTC1kPHBDOT1hQiFCRSsiMDFgVDp1WmZhRmZQKUc1K1YKLWBrbF8mK1drcGZZT0thKEwrVWRrKW4xdSlGRz5yS09nWy1mM1FjK1JuZS1lN0Q9ayZlQlM1PEBudW9LSiJpRm1aCi0qdVBnNTBRdThMbCNzcDlZMCxBKEFyK15KZGZlTGNlUEtyT1VMLVVAQVc9Lz4kInJFYS5Tc19LNWpyUCVRPVBtWgotP2I0VTA6aGFnRUJxOjdOR0k4V29pcUhoUl85IyVYZFk0cFxDSlMhQU1DMi1IcEopUDxCbVs0Y1c7QGBxPC5eZk4KLW1BL2tzT0NvbkBqcTMoakZmdWEpXG43OypgUzEiWVFVK2IoUGRHJFdSXTM5Iz5aRz1qZ1xMaDZRXFVGL19aT2JUCi1EQSQ/dVxlPTdlakg8UVZLXS90STxrXl1xU3JUTz5UTlFEP2tPc01kYlVqYEFHYC4kPVNoZzJxZW5SRj4lKSJBSgotSl5BSGQhITVyOmNlRWk5ZyFedWRfYVZzRlFFPVtgPU5dZDxWP0ssJWV0V2pLOFRsRCZBXyE2P148IlIqOzE6TTkKLUw3ITBfUzI+PHA8TTJqKEY7a1dfZiZBUGY1XzMuSlFQRFdEK21DZmhZYm1hXUVTUG8jRGpMbVw8blBoMklkYz1tCi0wKXU+WUBkWGlyWkgicTpZdDBWWT9SYEU3XEw5dFAybXVwMV9lV2FcPzAvRFpaJDlBOCZzWTQqLWBuYElGZTRHdQotVzdrdFxUJVkyWitwODJIblpRNDUqUVhobTZgNCRVWFxKUVpqRXRLZGsnMzxvRHM+I1A/RmhUWCoodSNbOj9WbW4KLVtWODlXRmAwPigvTTojKT1SY24nakZUUyskXGl1Jj11RktGYUNtb1lgOmVAS2c5QUpQZE9pbk9qKWk2QiJLTW9WCi1QIklpPmpARkA8XDg0YEdPWChGKS9jdGJNX0dkM1ZRS0lQTS5tRHRRRkBGPCVQJW89RW1jc19FJE5mVGFMUChcbQotYVpBZ0VcaT9jZmgyPG5IYkdwVlpXcyVkXGk4bzQ1Q0hlQlI8bkwyLzgxQF9zV2dzOGhDY0tcbCxScCI6IzwnWkwKLVxFaCo4YV5yIVFAUk9taEpJKlVpIVt1UyFYaWM7IyUucmBWZ1QxQmpVNSQ7KT1OUUk0RlxrRXUuJnVpLSpjQyhRCi1XcyEwNVhQUS0wZzxhX1Y/WSQqRl9KakgqJE9EPlREXlA+a0BURmdgLGtnOFkiQThMbjhwOCgnKm81cSZBTCtFQgotX1AkYzgvQytuNyJjdSFVJGAibl5YTUY1bUtlNkwkImJKWkBYRWghSTBhTDhSVUAoYkRVQyMqRmghbVNmTUhFREUKLUcicCdbOTFoQm1gKTpSX2YqOCNYUEBBMyoiaiItakM3RUFlK0UsM2xkLCtQTEM1ISNhVnJZI2ovYmxMMmtmbHNzCi08YjlLP2I2NmclU0c6MWY4MVltXi4lSSZlJnJeQitARjxmYlZNKjgpYjRvYWcsTzNXbWxoKCcrPUsydFwhNiNGKAotVyhPT09DaEpJazFoJWZbYXJNUC5sMydAPTVMO0lfNj4lIjswYDRlWlRoUF9qSy51MydtT2g7byJsYUtQJjZhaikKLT0/ZTxUcXNucVQ2WmphQyE/K1VLR1VsSilsOU9UQyZJdV9NKC50O0g/cGEmSTlgRCgkWW1yRTlZPGtpTiEyS2VuCi05Z1VdVCZCJk1RYjgpalUnV1dkYjArUzFANTRzYUcoTThwKCRSVmQvbWRfbi4rTlddYmEwbTlMODMhWFIpOTIvOQotYC1VZTA4PCRJZkA+PytzYy8tdUludSs5OGlwbW0lTD90M1lAMWRMKm4tUDlnanJrdTtHXE4yIjg+aCEpVkZVbywKLSZzSUFvIm1wajMnKUhzWzNdSDU1Ky8yLyQxTEEwMjdiZTtmX0BpbE5sMl5CZjtfVytpbD4mVG1LdWwjYXBvPmMzCi1obShyb2tGVFBCMiI6Wm1Aam5fWG5Ec0JXU00rUy9gOXJBamo0Yl1QUCNKM0UsMFpGcktELTlRW1Q4SG5qR2BUJAotJjciWCM3ZU1tZC1xVmlCLiovWmZXXCRoSSxSXzluLDRfLmM6ZXA8XD5dSUZYWTlJSlhmVmpddDEocCZeWVFXMykKLUAqM0RzJzJEbWlXKVVcLCUuJ3RNZiZrPTlEXipESFQuLHNTNTtWcWtMQU1OPFFGI2gjUmNzT0lVOj4hZyR1VyU1Ci0nMldgUS89PT9IZDYqSnNATCdFN21GalEmKjV0OT1Tcy1jVE1RXGRONEsndHQ2Y1NVU25PMFc8a20kO1Q9PSZSPAotYGQmLzhbKSJOSi9UYkpiYF0hVGpJMEonS1QrTWtmRGE5SUI6ZjZqOztjQXJOO29dOSxMSWM9OzZjNDlvNVVBcm0KLVA2Pj8uIkFUX2FBb15KQSZNZz5LOk1wNzRvPy9DNSdma1woKC8zNVYvLmYsUkkzR0kiKlFNdVosIUEzM25wRkU8Ci1KTFtjTzo9cGlwTT80bkVuMiFRWFA2QWRENFRBP1s3Vl5mRFpuajZgPjVNOFg6ZixyQGUmOmo3UFheTk1ucnJNKgotYXVbakFyb0M0J1A7RkRwWjByMCVNTi9saW1JUzlgI1NyczpgPV8tSGcnWl5OJkhqRz1OQHRVJjokPEFkTztmJkwKLU9PXlVRPGA1PjYsJkRDQTkoXiJ0N01BLS9jXj46WFszOiYnOCsraHNVXGxlSXBAPTlMLWZvJDQvVD4kajImbT8zCi1xdCNTQmRiLCU+QmJcTURiJjYwR09hLyoqTDorczohKFhHI1l1bFkiVTdfdGU1SyEuS2JhPmdDLSFmWW5MWDUlaQotbiYlMzMwYytnIzRVczFTJ3RbXFdlTTZhRSZAKlNpOGNKMixSIVdmQWY1WXAuVzVpL0xrPDA4SGdzb0Q4LU1tK08KLU1LVFJvN2srSU0nOyE3PiM9VTtTY044ImYuSiJwLyZNMitGM1IlUzAkPG08QiNrY2BDP25HU2ppcHI4cFhbPGVBCi1OR3VqSXAwPmhJcS1FXUtmRTZSSigxVWxTQFxwLk49TylhY1EqLCNQJCEyJEZpJSYjITFNXkFWO2VAYSkxNTM2PwotRmRTQ1tEKSsjTyl0Z15gQWhSWTEqMCU7ciNgKUltRFJUK1lwQUBsJGpKI141WjBjNj4rIUVQVDBRUytOMFYoa0YKLSInSSNmVFlfIkI8X0ZUWFluOW1aVjcuVWcvQllVSiIoaiVxNE9EJVpkRXUlW1YkQU1qOGk8U2InT1kxT0RmS0g5Ci0mW1xaJyQnQCEpUlJYWVQvUChYc1FFNHUuJFJjL01bXlUwXTA5Nm0zU049cyxsOCRUVlFWaFMtYj8nWypQWSNrNAotUF8xUEQvRStzNjo2XUkoQiNLNW1dTEkoKUBJbkc0ZStaYzE1PnUqQjtmOkMucEFsWDorIU9iIz41KDU9PF9IcnIKLTsrYXA5P0oiTG1bOD1eSj1YUHI4UVBJJGFwNV11clhQMU5VLk1eb2NqOD1JY1hVQHV0RiVXMzwmXTdtJ1YpTjduCi0+QWxZIlBTXF9CIiozVUw+IzhRP2JQLCU9NiFKQVxIdWxEc2AiK3NzOFEuQDVLXj9pY2YjcjBWWzlQMmY8NyNRIgotZDU6MDRiNjxXZSRTLjM/WmRmMHBJdDo9R1lPYjItOWBdTENEKzJoLUskXUVQJ0QjbHEyXFhmVE1Ob04mOltxRy4KLW9sKW0pTFViR1xvKWpsNmZtKSRbXkxlXidiN2YhSicrQXRrOWMnRlYkTj5gPW1WIzo1UjxJLChqOFdXPEYmSSMsCi1NX3VfOVdLaDY3UnNhaWBbZVMqYSFfIlBcU0lzKF1QQk51TlFLWz9IOFA5VXVbQkc9M0NEJ1ldVUxTUiglUl4rYwotOyQvaDtkc25nZWImXiFgKCYoTzhoLWtIIi9HVDZaMzpBQzRcWDU6JUhUQSE0JDs0QlBvZCNXXE5MNi5vQHQmPm8KLUJTJigrPDpvdUxQcmIzWicyTUBzXjFtMSNtLWE6PGcxV0EuUW5tMT5cUCJBbz8oRFtuQzNDImNIK0A0a11VPEBaCi1KNydTXGNhPS4lMGdZUk5GUXJDRzE0NlhjUj5eSVMscWFENFwmMDRHZVZZMnQxMEdLMXBWZ1tqa2lzSHRxIjk5LwotYHEmXihuLGJHMSxTWz9GRW02QFFkaXBaM0Mkbz4vMmVAPSdIIzIpdW0yJUtcZmNtbFRUO1hXTWxWXiloSmpUN2MKLV8rZz8xPk08JzIjclFkSy4qWWFuTF9pakdwXENPIWoqTE0xU01Ga0RaIjRsXkddT0Y7SmhtUVYsJDBaMF8yU2IxCi1EbikuNUdhZCVzK0BpYFwsdXRWM3EybmpEXlRBQCtNY2RfVzFoJipOYkNPLEAlaTYidCVmXUIkOG9rW0Y8YSxxawotRnNqITMobl44V2ldNzUrOW45W0puVmE3aCJoInAlZk9GPjEqSj5cUERxP2l0ZCwtUmM4dCZyJEshYyVDMzRZdEAKLTNkYV4qSm9xZnRZaUwvYCIlMTdJVWs9RyRPKUFIJnMhTXBnQjlsOENvR2EzI0ZlTVtHQDJAMUhZMEFePihLSElKCi0+LT9lTyVaOVJqNFUzVm9rTkVlP3FebUwwJStoSDRHPzJBIkZLJyIrVmYmb280UzpiUDFbVG5BOE9ALEsoSzVmJgotbVxQQlxKUFsoWSomWU5BMzBjLjdlNDBdZ3JnNkprZ1VlLUBFQ2hhV1oxUEFSbi5mM3M0YTQ+IUJcUUk1MjdIVzEKLSw/YW1XVkRFUjtxSkNMZ2kzNkEjPytJZVw8ODA3TG5oM2giVEdpTj9ETXMiT0A9NmNuIiNaLF8vIkkhUT5JPkNvCi1qSyYpJ1ArJD1cNzhMQlthK1gsWTAldXFDXFwmbWcxdShSIzJAaTpKLmlkPVlnLC9KUkYjL0EqV01gajdnaWwlbgotZDsnZWpEbEQucS1KN2o6KSRvcjMlQWMtPWJuazY9QlxAYTQ6VXVKVE1Na1ZqR1dMYWA2K20tW0lhdDkwOmJbQU8KLUBEPnFpQEZyZ2I7XWc1W0s5NmRyPk9wM2JYc0RGJ19nQiZSS2VvRGlValhQOWY3RnFgLVQ+Ji5cZSpZNURcNXNeCi1ZYUFkWk5RbWc5NCJQRW9aKyhTMWEyXThARUZYdVRgOlxoPCYqRjYjOk8ta3E6UkJOJlE3XUhzPyssak5HZGFsZwotPTRZdSpCOjhbQFI5WmtGM3U7SlpbUWM2Q0QpOyFvKiIvRTxuaDUzdTVQLyUnRilNQio8QisoKV0sT1ByPS04PW0KLTVBQ2VWJChTVkNbbkM9TzU7ZnEjU2VqIj1nJkQ/dSIxT1VFZFosZDFyTjNqaSh1MDlkXixHTUdxWjBfVTk+MHJHCi0nVVJRbzhDbjUrMU4+QyFXWT1oPT4zaXJiYloyOHJcI2glOFlzSCRcI0g5N3FiMTc1Pmc8aloiKk50ZiQtVVcwYQotSFEsZWhtMS9tVDY0bHJKRlVyYys5dXAmX1Qyc1ptXixqTFs1PnAhZUZyWl49SEBxYiRkPjlzOkYtXDY/NDZwKFgKLS1DR0ItYlVQNCNdJENZalZUN1BhR1hkSkw2PEJnK2BUVSdOQSVSMDZTQ1tyI2MpJ3VSTDVpQkBRKSojVFhgJDkpCi1paiVmTG5Ub1MmUEUrOD5JSlpUXztBUFtVXW4hMipnRGxSIT8xUjJhIydJRidRdXFIV2NqTVVNZjloWkExN0szOwotWWo+V0w8MyVgMFg+MUlNVy8hLUtwcV5LaEpBL3FDP0g7N1tfOE5TPXEiPjVcU3NjR2UlMCQsNVwvXjMkZ29YZD4KLTxJJzcxVjZjX2o9VE5RdDQpQ1gmVEkhYjFAZUZhYCRkSlhMQSVUOyZvKUdERVwkZkAkQ1FXSU5xajE7O0d0WVBsCi1YUEV0aD1CPktrX2koZ2c8bGMiXVYhN1BZSio1WCdTKTIqSSM1K2ZjImFhJ2RoYF9MKDI4Uy1uY1lgXWk5NlUoJQotISdoWSwrOm5NUStHLkRmJj09U3QjbTpmKWkuKjQ0M1ssW1BfYSM9RUtPYixxTkNUWShZUVQsKitHUyMiJnQpXyUKLT1ZNXQ1alVsYWVFWixPWDdcR29AJHNrIydLMSNcTyNhRCYjISJpKWkmOEQmO0srLmlZa085bW1KcSRMR2A5QSJdCi0+dDE6Z1gmZ2JBa1VcV001YjYkV0pKZGI5MUYnQSJeYydsImNLVEpgOHUnMy5vdVxwMV5KNGIwKUJDbFomVmoxMwotWXJcMGBdMSZtU1dUIXBtOjZlcWFAVjwlRkY+Rz9PTUVuMDUjX2poTCY8O0VTZiVYSzk2WjljXlk1OTYqYzdzbT8KLW1HcTMoQ21vMmdgU24vTWcvTFFTNkFKSnFbLVZzOihJYSdIVGMjPTs7XlkmLTxAWktcU1NHZFZrXEs9LT9PI1A1Ci1pbkFcVihKWDsybzxzaExqRUlUMT9PKT4uQEJkQyhWLCU9cl9QIiZZJSY5T2ZAbFduVSU0RlhAVytybUhrcypITAotJEFnK25ubW8yMjlyZDRKMi9jL00la2VIR2c2byo8Z0FvJEA5UUdhTl5NZ2JjV04zN1VuPUcuQjY3VjpQWCE8OycKLTVtZThwVHVKZzVKZTRhRHFEZTVfT1VPSCM4U2BXY15hRXRtUlpqSzI0LmA8Ly5eWDxXYEdYXFRgPDhjYiFtMyMlCi1BPyxQbjoyNylfNT5UXz9UVkJPYDVkZGRrJFgyJTNiRVNEWDRVQV1qZT5DPWptYWVOSTRPIVtWTl5GbScwVHRibwotITxhcHFXZTxtJlozTEI5TUlbKDc2KlxxQzktRFUzIy5HcFYmayVtTVBNSy1pWTs7PVwzW1xpTT4qOjNeMTZFOW8KLVpLYDN0MnQ5ZTthZ1oqWSlbRV5qMV9jW3InTz5KNDdWa1xla3JiKGEiJl88PVhKJld0bUAjZiJbOEFePW90QnRBCi02S1piPjhzcnNGOWJPLiQ0ZylaPWxzM0JJRTVgdSQ0YUNSQDpzOz1aOmZWPnJJRzVTQEBwJFtTLFZISy9RJCdxTAotPTRTaldQZChtTih1Jj4zQzhfRGk5S1QsdFxbJ0FrKTdmNDlORVhPPydXIihRb2ItcF9pJlA5NkQ5PlJnR3VoQkYKLWMyPTZXXF0vXV1CLDxJQk5TcW5zUGQmZypDc19KIjE7alBvXyUyUUFJPWA3MkU3Q1w/XjBAV2FuP1pCNWU1Wms7Ci1Ya0YqKUA+Vy1SKDk4ZlJiUkVYN2RLaEFyITQ4allySmpTKldeU25FWjZKKVYvUichb15FbXM4SUArYlBMOnE5XwotZTA8OlssVms7I05ESE4oNWRkcFNIVjJkPDtuRVUxNzYsWlJeW1gtJiZYKVZdLCQqMHAmcSslSjpqPkMmZkpiY2EKLV0lOi9FOTNANlZpIUxXOz1DRDdoI1IhYCxdUmRlRCskbSsnXWgxVypGTTszZ0NHaFlgXWRIQWAyPi01LEVANG5CCi1lbk11U01sLkUzMjdDKyloUXBvZ0VbTT1YbS1mVzZaaF9AazlnRXM0ZidNcEpuTFw9YnMjPEQ8SU4sKlpTSCtkSgotISU3dVNeXVdOMWgrUl1wL1NTbi1hNVs6b0BeJ1RiLjwqKV8hNmo8Q0ttRyJRNW5WXnI/SjsoVyxLMDVqV2xESyUKLU11LDp1OTgrViJVMiZvTVBWWFRzOzhvK2JedDdNZm09UzNCLEY1aVVTXVJYWC1PLDZeM2poWSs7dEhdL1dEMENeCi1COEknQVBLbEAzPEVRZzsjbm45dGw6P18yWXNDaFA+WjcmQCFgNSRWKFFyblg/ZG0vOSxqJFVHPUptLTVQSmdIMgotXzhlXS9CIWJpKycyVDhJcVxSYU9pP0skUkxKQXRPXkd0PSE7IlJWKU5URFMpRms2a21JIWU5KjYmRFVRNkQuTlsKLSY3OChKNnFGOkJMWWE6UE5tUEdqMXRiJnU6UlxMNCNbUGNhUVk7c2A8MmwqO2VrbkllJkltaWQxNi0/WlI2VUdaCi0kbSY5WVFdZyc0K20/YFVlTyQkZ25ncllAMS5IIihac2RkalUuLmglWWIlLDVEanVuYS07RTEwKXM1QilTPEs3WwotOjNrNUpCMm4yZlBJPlsxcTtGR0tQazFLMWVwQzI8bk5MVThxaycpR0lvI25BNVxMbDdUVGc0RTpqTl4/Qk41RzYKLVBXIjpucUI4Nz9QblRtVjxmOWgkMGgsaiwpbCZYQE8mPmE+ODgvZWBVbS4xLztMMjI0QmlRW1tQZFpvVnFJKiczCi1QciM7JWVzZlRhRURDNXU0L1w+OlQyWVQ7OmhnXzRXMEotbjwtalspQy9tcCtQcj5PPnFPcGwnUHVGXUo8aV01SAotWXVZVmk+SD0kNFk+dEc4PURKWF1YSGYqWDxkTi5zQ0s1L1BRKyIvJnFWYltwUSNqKm5mIjUiMG5RcCJdSGByXy4KLV5LOjo1P3UtUjFVO1Iwfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjA1IDAgb2JqCi1bIAotL0luZGV4ZWQgL0RldmljZVJHQiAxNSAxNjA4IDAgUiAKLV0KLWVuZG9iagotMTYwNiAwIG9iagotPDwgL0xlbmd0aCAxNTkyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83YC1fbjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EhdGlJOHFEPTVnTCckPWFlIkJbLU1AQD8ma15fTi8xN08ybVVJaGYvCi1ANWFOQkBOZmE8akNwVzFLbjpQMkxxIm5GX285K0RRaEk7Rk5SKVwobUs8V14iPy1iSkU1RlhGaiVJQkoiaUhHRQotMFQ6V2xkUGhUPCl0KlUrVTdiSlNeZSViQS9WRjJsM3RKcWpHaVtKYWopQDdELmpJLzMnRiJTSyFyJV5uXDksPG4KLSYoay5kVTxFbT4yRio/W2haTywjUixKRF9PRi84Wl9RXltjJURONjApXDU9S2AiWTBuJElnbUg2I15WWjJARXJECi1dKTA2TkFBXFhDQGI+MEhLZWxFUzBvS0opaUFqMmZBQjVZNiZ1K1snWUFgSiIrW1E4SmZKZl80ZT5mPEAhR2NOOwotM3BWO2MmLjJucWtSXDYhSjNjUF1AZ24xdF5kQVt1M1hoZFJHc0tGQilXNzNIT0ZaN002cFV1YDtiR0tSOy0kIWMKLUU4XyM6MjJ1YGI8WTdCLj5Xb0AxI25ZYGhcQkBwLGRDXVxPZyF1bzoqbXNEXnJZLzc+LFtmJzYsRkhqVWVJaSVnCi1VLHVqMltkaHJdZVBAOGw7QUckVTY9WjUhKGQ/cDdQMVZqaUtwIk5XJWssVTojRVVPKD5mOEFQWFdHaGUkSzIiVgotXC9nSiUkWSlrKT4vXzUmJyg0RDtSKCEpaVVAJ0EoPG4yTEpOKyhBaTNCLSFoXispMCVSM2U4YjRuR2c+QUM9cSsKLWhVOjJzJFZJVltwP2ZWUD1Fbm9rKHFlMDkvV1BPUjRQdXJwSlgyRlw5dT89Yyk8cHMvVSklNyZqbS45L05JWSZfCi06WzNvWihLKSReWlljYEQjKTw9RGYqMGktLUZZPk9wWlJhMUUjJnJtOyJEUjkhS15ER24mKXFSXltQX01oYT82ZAotOigzcSwnaSNMOmZvV1FwbmFBUj1xN2drTEIrO2RIUktcdHRiJDppIV8ha2pbJGNCcWdtUWhPaFM8UlsmRTE9bD4KLWBILUglKDhTSUA1W29EQC1wZVEoS0Y6WzUpWz1HZVcvaU9QTGcnJXQhTCdbVCRYbDwiSVxoLT9fRSJILy4sLSYvCi0wbUhVWSJWUURnU2NmLUAoLDNfM0IkcklEWFheb2NZamYiLjNPKidhWUkqSTtdSWwhbiIjMCFaSyxBXGFhTEYjTQotVU1xJjs+UGk3ZC8ycj5MPTouQ1k8IWJ0Kyp1cjxCPkZwRlMubippJCMhdUFlJmw8LUpAQVFhPUtlLT01Z11eLFQKLVtLSmptZWV1ZGZFczlAMGBeOC9lIW45OHQ1W2gzbUpjbUQ/X29wcV1AJWJKblReJSojLXVXcnU6XzRrXSw2WjoyCi1cS1FfT2hPTGZYPCdjbSs4MGlLQlNPS1cnJClnJUg6XDZYT25DanQ7Yjw/KkdfPSEmRVtZZzxaLlcqQlVDVzdLRgotJCd0LGIkNHU4RldfaCZlXyVUIXI1aCRQbzpoTHBQTz5WL1NXXERGUGVAMWpXKT9zakoyJFMkSikxcHE1IycpOSMKLVBmSW43JEJyKEdLTlE/Sz9zTjRDMVdVbUMyPF9fMSJybWAvaFpqLlMyaGpUXyh0QzAxP2duYWYuIVA9bl9EayptCi1ga0UzNS4lOj5eTzo9IVIxY1VURENnLCNEMkU8JCxCOiwkQUE7bWRDMkxzYD8mW1EtZmFSQ2hoK2dlKSE1aSlUMAotTF5iSUx+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2MDcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUMgL0ltYWdlSSBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW03IDE2MDQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLS9Db2xvclNwYWNlIDw8IC9DUzcgMTYwNSAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTYwOCAwIG9iagotPDwgL0ZpbHRlciAvQVNDSUk4NURlY29kZSAvTGVuZ3RoIDYzID4+IAotc3RyZWFtCi0KLSEhISQhczhXKiEhISokISEhKiRhNVg1Pk4hPDwqIisxRG1gQGhEXWwiZCFbYF5xZGE5SjpLbU01UUNjYX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYwOSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTU5OSAwIFIgCi0vUmVzb3VyY2VzIDE2MTUgMCBSIAotL0NvbnRlbnRzIDE2MTQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjEzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2MTAgMCBvYmoKLTw8IAotL0QgWyAxNjA5IDAgUiAvWFlaIG51bGwgNTc4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjExIDAgb2JqCi08PCAKLS9EIFsgMTYwOSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2MTIgMCBvYmoKLTw8IAotL0QgWyAxNjA5IDAgUiAvWFlaIG51bGwgNTEwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjEzIDAgb2JqCi08PCAKLS9QIDE2MDkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjAzIDAgUiAKLS9OIDE2MTkgMCBSIAotPj4gCi1lbmRvYmoKLTE2MTQgMCBvYmoKLTw8IC9MZW5ndGggMjg5NCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2AuOykxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzNESzBaXVlYJzxLCi1gXHM7cj9vNGMqSlcrImwoZG9dIys8K24yX2RUcihXPyltY0gnIyMhQ2YiMWkpLDdzTU9KSGhEM3FnZkZqLnVJZQotQGxiTidgYCQ9LDtvMEIvMGtZUFVKQihmbylcLUtNIVMyUS4wVmA9PjJFbWxRaERVQG5hTjBYLE81VFhoXyFRS1gKLSJaR0NmZWRzQSNXNyhtLmw2czRuI3RdQUZeQlBqdS9BU0M1VykxTXRtZUdaLk4uR3E1LDdXW3A1VmVCJiRqP1w4Ci0hUk9hVWAkZCRDWlJNUFxFaUM1UTNaUCovT1pHVD9cZmxUOylDPmNoSTRNYmQuLUFVK1dvMk1nTmUyKVMxXmVrIgotXC9DI2VPUDtNNmlLLlhlIywsRjQoJ1xpOUEvXkFXOSdWMk1APEJzM1hxSjZtL0JfSUQqczlgXE9DL28kK1UmbFYKLWRNLlpgJlooLCFmWi1AUSE1cSIqPCoyYyhNTGVhLy81OjQ7I1Z1c1MtdTI5VTFtTT9KO00mXjolNz8yVGNuTEgzCi0xOWdmZkEhImsjNlAmOVIzYEhoKjsqZSQyNVs+dCRqMU5QdGZYMlFEXHRIPy5NQVcpNS0qVzdOXzVNQ1xcZTsnRgotLDxOLlk7JF91JCNYR0Y8OmhtTUQvLjMvQlVyXEhdS2Q4WGRpJzgzOGlMPy5xVVQhcm0oYkpMVSlYQGBfNWdrcTwKLSZfJSRwJT4vMGczWSJMYmIqQG8vIThLVnBVQ3FxYyVKQS9gbllLKCRERTk5YS8mKGs/IippdEZOKUFPJDFvcEBTCi1FMUs9UWxGc0xCOzQsZShOZjc6WGY4YWtLNW5RTUkxOGZbLSlIKDQjXUU9UGU+V283Tj1xaixlWmRlXElLLitTcwotZSFHJGxUYWNuOTFTJWkrUEtHbG9jVENIOjU3dG1Ob1NwYUo2JC8qPThCJElIOk5QRy5CPSlXXCdTYDxbOzQ5NyIKLWNMTyIrT2xVTT4kcCQ0NDshRU9hOkRGQjBXN1JfUyhnJyhpam5tUFFHPSxrcDxISCVIY0lBSidVRHJNbldyaktkCi1QI2wtSWIwb1FCTDA/VEsiI0lnZDBaLnA0V0E0Z3Q8dThsbkpEVGhLUV8sXGlZJEFdN2ExRyJwX0UkZVIxV1FNNgotYzRmPCQlR2MrUEdOV0lbM01MVGpHJSZlNU5tbURVQy9oZ2ddN18tS3A7W1V0Zj5dYW1pO2hHUmNzJVYkYzpBL1AKLXAnLiJSMSJMMUcqJmlUcGUvOyVMKGI4LDA5PSIyc2NXaDtJIyMvSj5LKWVgRlJqMD1rLWo+QlghMFhIYGRwR0FFCi08WEJNSXIjJixdNlhAYkIwSDUwZEcjMWNwNTJpZEs1XERXNmczTTduY1wxcihFajVibiNdakkxR2psYylsS1I4WQotT3BIc2smLWJUVChkVnRAJVpZKj5Tam4xWmc+bDZDMEZgKGJCVjlWXl9kPGpdYmYsQCFiL3RYbUtrZE5WIiFiNWkKLUchZE48PChUTCU1YGVnZGZyUURhLzQ/UURlNmErMyRmbC5RKG5ydSRQLTBrQG9qWi1tVSc8Qi4nTl1CMD0pUTs9Ci0qVmRrciw9P11vOiU6dEA3aFgzVUZGLF9iXyc/bDA6X1VgdGcnSFhrcTRMXG5mZyxVXkBcTFRoXF5TIiEkc0FaQgotLlY3LXNFNUpKPidJbl1vST5nN2M6KWkiQ0JwKj00YE0jaltMMUFVZDc4WE5QKGolMSo5VDFmSk5tV1RWXCtNQFkKLTY4KW1fKTsxbStBZHNnNjcxSVsqUDkpRjA0XDhrTEZPPlpaLkR1VzZfZEcqSU1jP1EsQFxVO2dNOG9nWideKFpWCi1USC5ZYUZkSyNlMkNvUCdMLy11Jz9CYy8lKiY9PidrWV0zKGs7YW9kJy5rO3RjdSsyY14kY2ZGI2NeZmcyJ203bAotMGNpLjluYzhkRUBgWz1hWzVtO3UtaXJYJ2FBPVw5W00wUyM+ak1zIW5gQ3E3N2BjOCNAPFlILkdlPWdvJ2BndUgKLT5rO01USzdJZVxLLUMvJ0VPJmlBPWtqSVQhdWI4JkQwSDJnZ3A6Xz5FKl51QVJqIVR1LVE5WGk+ZlVRQzAjMGAtCi0/Zk1rYFYvRStQOCRFNy9fOmtyVEpoYmw/STQtVzMyYVg0JFY4JnIoLTRmLFg1MCtlNl5WSXAia2Vwaz8yTW1CdAotW1E7SWk5LVw+TVg/PDZLbSFeR28hYV1zW1pdc1JYOCclc1U6OExGN1NSZlwnX2BQNjBXRzchR0MsZVJvbklkaCIKLT1MQi5fUjdSZGw7K2FeXlg5NGhRKEcjMHJWSiJvNT0lYlswV2NBKj4jTS5rJm9sWSU7WD5VTiNlR01HTD1QSkIxCi1CMUlzRHAhODs8RURkZ3Q4RVVSMjFzZUpyYkVFIzQkXElUSDFvP084OE1wWFtQVzBfJ2Yua0UiKUdjKF81SUBYawotI3U7Q0pAUlVtVGFPJkFCRTUhNC1CQEpgNConWm9OL11WMmBDPzpqK0NecW01IUEyNy8tdCI3RU1PNyYuQW9cT1EKLSsmTC1XUVwyWS1DMiNAPilyMDEkTCU5Xm4yLWxTTWxBbHQxTydLSy9vIyVnPzxtdF87XzRjbnBVIiVmMlRJKD0sCi0vTkJhViY4TGopNi5wRSlmVzlqJStNK1RrPUlJRT0ya0dEVUssSGZjRjNacnQtRlRzTjZWXm1Cal9kJmtlKUpcVQotOGJJNzhiVjRjRmZRZjkiU2gnLzJYdFZ0RisuWkVuVitSJFM/UExuUk1DKV1XSD9oQCw+dCdlO1hkVm9RLkEiV00KLTYkYiEqTkU5dFZuPGsuLCo3YTdlJUtZJEA7bi9MV0BZbk9BVFlNTiRgKVAlLnJnUVBdSkYnOFUxSylCT0Rnbk86Ci0lXG1ZbCoucUlIK1tNZSQ5SCxzOW1MWDxCUTVUNVUmRkxCN2pTRzs5LSgoOmc7YDoocUA/LEwvI1hdNVxgYV1yNwotXVVPZiRaJiMoVykwQjw9bmtCdFY8Tk5tOVxJdUBzPVY/al4oUClUUTRFYzo7NFInTl1bLkosWj4qZy9dZ2tHOGgKLTMrNzZUMWM9Sk1gWEUyM0ZtKTw+SmdDVXRnNDA6K1xqajolLmUtSlxgUj1jKERSJFklKyo0bUNfYkBSVWNQR205Ci1iKltILSNzSCw1JE9EdVFIam05bDp1XCFMLmsvYmIncSgqWmdpcCUxb2xQLENUKW9vXTgjVyxoMkMjZVo3I0dXNwotM3VsUzpuQjMjL0FyNzJgR0dROytNWSE7IWNFQSUzWm86LDg/LzotXClTVl9eX29gcCclPVhYRDhtJWopUFkxIzoKLVFmJGNUVDgtMWNlVChDS2E+P0psYygmUiJwK1xHSjBlJzQvNFthYkZtUzdaVTpSZCkmMF5TImZKMi86VlY0TyZJCi0/YFg6am41akBIODRxYV0mLDJFX18xaWMuKiJuLkhFaChmS2NSbSNCXjM0PFArPlpDb0o6SX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYxNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE2MTYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1OTkgMCBSIAotL1Jlc291cmNlcyAxNjIxIDAgUiAKLS9Db250ZW50cyAxNjIwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTYxOSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNjE3IDAgb2JqCi08PCAKLS9EIFsgMTYxNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2MTggMCBvYmoKLTw8IAotL0QgWyAxNjE2IDAgUiAvWFlaIG51bGwgODQ2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjE5IDAgb2JqCi08PCAKLS9QIDE2MTYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjEzIDAgUiAKLS9OIDE2MjQgMCBSIAotPj4gCi1lbmRvYmoKLTE2MjAgMCBvYmoKLTw8IC9MZW5ndGggMzA3MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2AuazkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiJSVXIuJSg1VGdPZDkqOmY0I05USTZqR05BS11tLClMXmYqJkVOY2xiXSVNPjhrWUVJNgotJDBEXFAyUjBMP1E7aW5RN0tWUCZhcVpgSSY3cCFRXzZFLXElRjIzKzQkI2ElaEBMKkpiUTldNyVhYSZkTi9tY04KLTRIOEMiNVZeJCtXZDphLUB0O11WTj9cX10mLkhJJGo+TVluR2ckXkxtWllMNCJ0TUh0WycuPDVDPig4X0o0X19aCi1pdW1WRi4mbz1sKShjNHVBR1c8IiNkdEY1IiVfSmVMKj0/MCYlXzZTWWEqLyU/czQ4JlU3ZGFfN2EjPVtdcyNrQQotL0FTQzZedDpUK2t1YCdFYFwvL0lpXS9WOCoyblYuWDU8V2NAPVcjMC00LWJ0KmxtXTFpJVUrIj1NY2tRWEI9RFQKLSR1QiVrMSg3cnUqWXRycVByLEplOj5qLE0lXVVYOjE2JiU/YXRhLjw5T0F1K01OVDdXLC9MWkQoSG8rWUE9MV06Ci1LOD5xbVU3ZmppVi43JGAyRk0kZktKaz5qJGA8NCNtYFlzL1lldFFdJ3MiQTMlcS4hSSIpJ0hOJiw9cXNZanBlJgotKz9zP1tMb2xTZDcsXy91K2RjTFAvUSw0IjZkW19xSyFITkpQYDZxWS5CPTgtYzswZ0M/IV4rKSp0UW5DUEFOUWwKLVRnS1RzTjBqW2xMK19xYGVOZCVBODkkR2cnVi1gdDRCUyRqVypsc3FCM2hCdD1MXSchXyNRX05OPDpjLyU2TylrCi1JWy5cN0pEO3VBLEhWb1MzYCZyJFEsUW8vRUMqb10iSjcqYkBrckhKNWsvWTE0LCdzQyNuYTJaZUpMNG1kWStHSwotYkhoKyZXOGZaazM7R2FoUGxZMl9EUkU0TiNbcXQ0J25wcnNhLl9VbjpzZl8sQSVsR2UlViVtTTJGP0czX0UiTnQKLWhOb1pQOnRGTT5fZmxoJlEmVyNwa1JfXTJaaFxKS0s5X1pSIygnMWVjaXVlO1xNIXVYVE4kdWRKVyI2TiJUbyVoCi0la0NuNlVSNl1RJjQoRT1xcmAxTUwwLVoxZCdmPHNJbmFHLyxBP0wrSy5KMFtxIzFWV2pYVVxpVUlrOGE/THRpawotPmoiOF5FZF4nYmVUSSlIVUwiKitTMzdGKiFMUmA1Z0MwKz1NKzFwbWhBUmhmRCRSXDVHWVVZMV84PytLTShMJ2EKLVsmK1xnV1I7MzIqJmUpcjAlVTFFNk9tXWdAPkMxJyhmSVhEIjpDTS0yMzsibWFuJ0MjREZuak1rSlVZc0VWK19lCi1PYzsqOWFwbTBSLjBUX3VCYTRsKyFZMys0NnFIaDQ0XWo3WlQhTGpoVjFFPkk2X29HUFBUMmMnMXArKSQkbE45agotOFRPNSYkRVNtVio3LWVmSlomRkpRMU0qYWhdY2I4V0BkUWlXL09AJic4Z1NJOWFjXkZnKUxfK3JzYiZsMWtwNW8KLSc/XHNBNztwR1RQYSgxS1EoIyExV2M5SmY8REtQWyI5KGMvIVdhLEw6ajBfaVNkblMicDRIbitDWkBlbSI6ZEZrCi0sNHQ1XGM+aHUsQTY5YiYnbDkmTSckITxeXDIwXE4qPypGOy9vbWxiMWtPQT1GTWw7SCVCb0loWjVHb1E4cy85XAotS05PMEZRImtCamJORChqJDRAUDViU1g0UEY+N1dDZjdyQk5XKjEtMCNdWzdMLCNJQEpWUCYjQS4hUU1xIj9tYVgKLUhjP1FCOmJbVlEvcD5QKzIqNm41MTlDITlWNGhDMjlhQiNiIihVZDpfKmdiMitYJmE+PGs4YVZVQ0lEOXEzYCktCi1OM01ES1hVXUM0czMlc1EqSjhUUSVhPEpANVxYW0hLPDBlVG1tOmJZRXUsY19DTEQ4c0tfZD48QCNsKGJAbjNGZgotM0pVTlVRMC8wLS1VR08sY1NoQ1RWXjFEJTFTc0Q0WWlMVVFFUkxFaiFgbGtPQUBORU8oSSsiJF5ybEE8V1QrKV0KLU4oR1diIVgncCpQJ1UiOVglSStrKDYmWEEvOlgjRVxOZGlzI3J1Tm5gYS5wRy0zaXR0Rml0LzwjZnJFMkxPZDhdCi1qTFQ4PyNmMVszNkRVMCdKUGNXNFxFQztScjddOEstajZHQkA3bzRxP0doPiNMaygiM1xfdURMX1xkR3AxWj06bAotVypOcjhVaWU+J0EvPGpgWEwrR1NGOlJOJTI7MG0/cSg0alFaRjZwWz1lY0ktOyYkUUMoPixFZU1eTkRFPEw6LCUKLXFCREo8ZDteMSJYMGh0dTEic09PQjNnZHElVWpgSGcjLStZRDJrazM2KkJXXWowTlxMUj4mN3NGa0wnbEVIQTw4Ci1tOjVsK2t1ZyFJJFlsVlxEPi5NY1NWdSpETz82SVEhTTdOJVprJVg9ZUgxWEEtSlJFVlpyWlk1SyJqYGxuQ3BVcQotKiEoM2AlQEBZLUslTG5YRDNfS0U4MCM0ckNgWnBPYkFZJzEkTkp1PDIyPDxfKmRZOiJvalUkJEkyIUdFX0JxOlAKLUw+MVs2MFpGLjRwL188TWQuPDxVclxjQzgja0tQTVsrXmU9bVs0Q2NvXS9VNEArU2xVIzE+Py4tZTEtQSxmMU9MCi04OjsmRDBdM3M9UHJxRVM2OmpJVl1dSkM+REU9c1ZTPFxERzpUIihVTSFXLVRjMWQyIlUyZVdsVHUqJ1EvQDpRWgotLmlWRURvR1hUSm5QOTdRRTJJTz9vUy08UG1OOC05SWA+LW8iUCYnTmRNaU9xTiJ1SW46ckojckhqRS1lPWVgO1EKLVcuW3BCN3ArPSIyYSskRWhyTkhSTyIzYylYOipsKFJjNyw6J0lhZzdGWUozaEQjKUlXbGtqPS9BSF1uZjFzZ1A5Ci04TGMkPllvcWVcZjE7KD0rc11bWj8sVUImQ0FBWj1nQmJaSVlWJC86IV82YC1pXjVPZGxtZSkxMkFrWDAmZ0Z0awotM19tZ1cjK0RlPTYiaSZeNm1rQz5rZW1mVkB0N148MlBuX0Q8aU1MZ1M6b0gnOlJrcFcwUCksYiMtWllyLF9QJkAKLSFYTDRaVFtiQWYuZmtHYmdUcnRUQHAyb2VvI1MrSV85J3MmQTdbQVhVRiZ0QGdtYDptLUg5ZzRiVydZUEZXUy9jCi0xO0tBY1dFQTdQQDAlM21oYiF0X2dtXV1tRG1xWGliWUdJPUI+JDE8OzNkXltGcjJkMixnJSFJOS9vdUhYSFE2XQotU3FVaFRjajBcSjUqZEBLX28tYS1pWWY0LiVlKHMjLUY+bjgsWW1MKDdBQFsycVtjXykzcHUlKVNOXUJAK0FHLUEKLSpVREVhbCNoYjYpMSgvSGlhajkrV0xVXC00R2YmZykyT28nayhubzQra0JkXlI6M0hiOTZAaVFASiJRLDJwbnQtCi1kNl1mYSNmYVdpSEs5YVVmTk5jZEpYQUdlaSc+LVdrMHNNNldtWjFZOltwViZDJW9AZycwMVExSzFXOHBxLShgKgotZy8hPVNyPEk8PEM0NCI3aGdaImMxa2JkdGkkOkdDbC5lV2VsMF4oVFEuUjpCYF1lS3RSRD0+K0wlRGVgK1ImaiUKLWRPMV4/JSk+c1MhKkU+Z2E9SDFwaSc6XU5pNiUoUWNqbC1VajAuYCNZT0dpZDRzbUpxOzFNcE9ZUSJTRl5BcVpiCi0hM2QoYUBfVnNVLGFxLXQiY3VuQGNsV0dyPFxtJkgrPFV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2MjEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNjIyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTk5IDAgUiAKLS9SZXNvdXJjZXMgMTYyNiAwIFIgCi0vQ29udGVudHMgMTYyNSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE2MjQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTYyMyAwIG9iagotPDwgCi0vRCBbIDE2MjIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjI0IDAgb2JqCi08PCAKLS9QIDE2MjIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjE5IDAgUiAKLS9OIDE2MzEgMCBSIAotPj4gCi1lbmRvYmoKLTE2MjUgMCBvYmoKLTw8IC9MZW5ndGggMTUyOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2AvRkkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBIXRpSThxRD01Z0wnJD1hZSJCWy1NQzU6PTBZOE1sJi9tMSpuU1MmNAota0djXW9AS0lGZ2IkZD1LQ0I9VCZcRk9ccVFxYTF0KTgrVFxOXklLczMlZ3F1PDE4YmImRSIqXiU5Kl07S2BhLjMKLWY8c1hYNVdMPj4zNkVpVyFKIjhpIywvISonU2Y+XlRebWZfM1w4KCMmNTM5RTVcIz5lWFtBMy5kTT49NDlMZlx0Ci1YMUojcjRWOzI0bV8+dCchcy08JUU4X2lkaStyZ2phQzAwJzFyQFFAVkFNVmlKQkk6UDpfPC4kMGJWRW8tYkU6MgotXGhvREEzOD9JOiFLO0A9YTpWVjZVKCJqPGFVQVtLakcrPmNaPkFKNmE9RHE8MHUlT0gzI0c1RTcqJSxWbWZORCgKLSJuVTZmbWZoJTtMKTFAJkpEVmdkSzojZ1s7KTM1OTEoUTBWV0NZNz1pNmIvVzw0TU5vO2o/cj8nWyVYZUA3T0EqCi1DKjtlQlVVXFotXk1vaWomNSJmYy8yQy09SkRFdUhXXlFrJTRYITBfN2dGMT05Lk8pLSokSlprJiFLTGxmWDU5cgotQVFiLVBJbT9iKjcpO1ZmWzdlLEE8TUxcRjFsSipcZTFRSF4odSROLkZbYnBWTnJgb1tGJSRqdD1eazlMUiwmQC4KLTskOTxrOFs3c3M1ZyonYGs1UWk+JkRmTjpLPjpTT0tsbk0/NENnR0BuZU1YViUqPDQ6JTJgLSE+MTNYSlFkaDRJCi1jXCFoYl1JQjJsZiRcPj45RFA3TlJwcFM5Z19VRjsjaG8pOiE+Tm03X2EraTczS0JBPGdiWFolZCo1ci1QYSZeOAotOWdhLy0pRlMiOTc3ck9hMExdMGYzcz0uaEQ2bHBlKCREU14+LF1wL0YwK10xJXA1XGFOZSUyciJmaj5VZFEuZ2oKLWNwN1QyPldXQSE4WnNFIkJbMywlbCxGLW5pNmFfclM9RV9eVmtdcCFwbDJSYTNwTDlRSkRGTDsnWVE6c2ZqZ1JnCi0jbkJlLVc9LVR0Z2M/M25JLHQ2cWlkalUoSCFaKlQ/blRzWChAQWFtZ1lKWD5FI11aIiYuU2YoaEQlNilDOVhnLAotai9haU1dUkMnRG10OmEwaER0akdhQTxlbWhkby5GSCo0V0pgWEYocmpoZzlPY3A/dVc2Ul1xcCp0KE1AL1YsVD4KLUEpSXR1OTpDOmptSiswLUM2XWMjUiI3cHJVY0JhSlpzKS9bRDxnKiReckgkRU9eW1BfOk8oTCwjV2kkS0EkZ0YjCi09VVswM0ZHR3RcXjAvZD1CWSI8RCpNKFJmOyVRVCUnMy8nTiIwODdjSjs+QmsjLEtjT09yVComYlZ1PCxHYVRLTgotL2UySEQ0RyY+ZDlqWGlpIjk9OnMxcGslKE4qPDk/ViVvVUcndFhbZCJBPFdMZUBRb0wpWjdHaXFAJGZeMkJOMW0KLSVNNlBTRkdTJEkjPS5SJFQlUjxWVSNHSy1HPERPbSQ9SEtvYm1CakVEW1RDaUxCV19KQUBpIiwlIk4qPUdWSClECi1hUzBhJFVuWSZVXzlQX0dWTWxNVThgNWpFQnBaSWlrLk9qLTRgOnJRUllEQz8pO0JnMTw+JjBcV3Q4OFo9IVhTcwotTDI3J1UmLX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYyNiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNjI3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNTk5IDAgUiAKLS9SZXNvdXJjZXMgMTYzOSAwIFIgCi0vQ29udGVudHMgMTYzOCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE2MzEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTYyOCAwIG9iagotPDwgCi0vRCBbIDE2MjcgMCBSIC9YWVogbnVsbCA2MTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2MjkgMCBvYmoKLTw8IAotL0QgWyAxNjI3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTYzMCAwIG9iagotPDwgCi0vRCBbIDE2MjcgMCBSIC9YWVogbnVsbCA2MDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2MzEgMCBvYmoKLTw8IAotL1AgMTYyNyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE2MjQgMCBSIAotL04gMTY0NCAwIFIgCi0+PiAKLWVuZG9iagotMTYzMiAwIG9iagotPDwgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9OYW1lIC9JbTggL1dpZHRoIDMwMCAvSGVpZ2h0IDMwMCAKLS9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UgMTYzMyAwIFIgL0xlbmd0aCAyOTMyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSixnXWczJF03SyNEPkVQOnExJG8qPW1yb0BTbytcPFw1LEg3VW88KmpFPFsuT0BXblszQCduYi1eNzU3O1JwPkgKLT5xX1I9QWxDXmNlbm1AOToxbU05alMiIWRUTVQ8JDNbR1EkOCMwJHM8NFpYIVNQUTFgQy9tPGs8aW9IKTxia15ICi1qYFw9RVlaUF5CNCFnMztCPShpWjxrRHFPaC9CZi5ESEFvcmYnUltvPz5pb1dqbkFZJl5nTStgND0xalJMVyFZQQotPU0vNikqS1M5UEVga04lPSJUY19Bb2grZmsnJnRcY3RJTik0WFFMaVZwb0koPi5uT1c/KkRtc0ckQCwsZjU4IlAKLURLZjx1azRhOz1pLEVwRzRzcS8rYTVoOGQ+ZVhpMFNeNk1BSDxpXzQ9MDoqQEcnZE4va0JGVnNuOUI9ZTU6O2ZCCi1rT2EoSz9HQy1eaD0oLGRJVT49O2ZCcj4xSVhiXz5rUCtvU15ecG5YIVBqZEolME9FWDlHSWBJT0RHcEJfQFZZUAotJCxWZSovSVRILWJWXWpJT1IsK0BgIjxESCZdQmVfOWJZSlg5TjtoSE9fZTs+YFkiL0ApOS5mP0QmXk0tYl1PckgKLU9tSUs8YTpcbzgraW9mdE4/Y09YOVUtcEdQJi1bOmFxQlowLkVbZ1RYWGhSLWJkQiVHUDNmazhiUyhFKDEhR2g0Ci1icW1UWDlbdSNGUEFLJjZjNGMvdTNSM2hpbTVyVy1iazQsbSEiQWZqY2tIb202LXRpSiU3QU1XOWJnK0VQXGhGMgotZE0uWmU2X29zOy9QRlAsYnImNUVQaktcZmUoIm1yOzpMal85aC8udDRdUE00USMwZXBlTVZiZD1rOGs/MGoqI1cKLWMjbT1ETHJCSnQ9O0RAIkBHJGt0SmNYTz85cEs7Q1E+TjEqZyhvW0VDImVsVFhfWlosYypfK2JmJ1UuWjplNS9JCi1EcXBYMVtyXkBBOiI9Q0JRWWohSmhBNj10RURTVFJtPDtuUmMxUU1CUVc8RXRnYUhJS0opJENZJT4zVVY6IzFEKwotXC1gdCVpS2ltSE07am8qL1QsI1VwKUpiRihzUm5xajtBRnJHMnEwQTJNIlwqP2pXK1tKMWIsb2pyJkNRUkhCcD8KLUQ0Ql0rYz81XUBSSTVLcWtTYXFiVSQucHROTFhUQTowai9zUT1VWW5Cbi5PcVYhLlpYWGZMYitjRidlP1JCRUhUCi1sNiVGRTZnPlMlXlIvZks6PVpjPlJyNyZnam5mUC42WXM7Tmh1YDwjY0xubT5TKjE8bkpAaCk1VnFIRC0hUGBVbwotOkRMazNnXW4hb0UwYVE3XUNERHAvXipVMUcsKVVvcDFBMUZGPChXJWRJX3JyOiIrWiRCMyFMVFNTcWZjcClUMyoKLWclTHU/RDs0ZSpjWlMoPFNhVHE4RlQhUllkLkI/M1Y5ZXBlN3RvQGMqQi9FMHFBdF1vbDIlIVRYayVjaj9eOmtACi0rQGhFKXEmVW9tbS8kYDhjMUNsVTpZImgvSWRiJGJIcCY6NG5wT2xLbUpIbypjZTdGWWZzZCFkVCdQRV5ZTj5tTwotPTpHO2VlLCtBY29wV1loQ0IuXzMiK18iWSQ6LmMjIWhMQFFJSHIyS10mNF86aTthT0U6bEdhdT1BL2xgWm1nXSoKLVhxWkczPm1vVkUwbnJOTSlGSVZEJUg1NWNMSltDWzZlSGV0aVdMcmhPVU1VYUdZSkomKiRCbkVcWHBZJFBRVzB1Ci0sKUZVMywhc0EnKCNtLzdNYyJARTdHKiMnQDljXzRZc1xvOm4wJkdfakEoUC9PdGZFMzw+VkVgRUszb0EzXnAiJwotJD1hY1xONyI+aWBpKTY9QHItQExaNDkybD1VYzFCXUxAXXRsNmpXbEZXWzpTQ2wzNls2Y2lJXy0wMyEyTnEpNlsKLWExIzdkPyM0LDk7JlcldVI4Iy1sNnNQajBFWzQ2Pj1VLzVLNk5hWD49b3AtaS9ccyFLUVUkY0tiTHE6c2psZStbCi07XCE4MT1jRy91NyoxaXEvblJmMVNNVERdZEArIS9DLnEzTTI4TURlUVZ1W0ViPVFDWmg1JT9HXmlqVGdCc2ZSKgotYDUlaEpZJypSbmgpamVRblg8Q1I/ZDxVYDNDK0E+IjEqUjNjNy1Gai1hYE40ZSZtOD09cSpkXTcuLV5HcDNUU2wKLW9makldcmcnbVZKQyhrQDdIaF0uVUpvPGhjJ2NtRlZdPz1sMWVMb3QkLXUrVGgnbzEiWSpNZHMoSU1nZSV1JDQlCi0oL0xyKTJROStzVmM8KVU6QzkwVy1LUiI6Rk9Db1FDKzJhPFs2OktoL3VEPVJJbi9hXytmOS5jLj11PDo8UGFyJwotWCRHZ008Uj8ob2xNcydSJ29vUiYpVTJGTjc7OGpeJEZYIWhoLTkzIUVOVzxlXGxXKSY/MGZJVFk+dCMpPTUpMjMKLWxWMW9rUSVsTUNnOkxDY2VROGRATUJjNidYXldkKUw5JFVRWUxrPkY/bkIpWllJOD5vPWtjKVBtMDAyZFE9ZHA4Ci1AIkRraW0/Ll00NVQqXF45ayw+MFktalJxZTY2V1o/Z1NUPVtvVnFSPk1BT19sVydnaSg5NXFobFg6KyVRJnJHPwotO1ZQRmBkO1ExQWRDTkNTXVxNZiJFMyxuU1o1NEc+SlFuPUkvbVguQFtwJSReOT9oYk43RC05dVJkPS1MWzoxY00KLWExTSJeYV1odCRITEVITV5LOWsmPSxaVHFDQ1RhOzJFRTs0SFY+LG03TDlIKTAqVlVoKko7NjBAX3U1QDExPUU+Ci1MJSkkUF9jVWdlQEdGIyRuSEwvVD1IPSkoPllVKEY3T2M7WVk3YjkmPlQjNWUnPmJTTiMlNVhnSm8qQDxSb2dhTwotS2NGbFtuWF42MTMoayhITioyOzY3UzFeKTAuKDViOXAnRC82T1sqIzBPc1VbTyRcamVhJjs0RUBza0REMTZ0YlIKLWZmTHMkPmc4XS43T3VcYj0iLl1TWGQxYG4+Nk1LXCJfN0pIT1JsUmJiclA1VkJBRUhLMVg5alkzUFFXdSo0TUltCi03VU80c0xHZThuKk1gN11ObUtjczJlMmRFQVtAVzNkMjthQkJZPGwxRkgzJ0U+KXNybjRDYjQtWSpaQGtUIVxjXgotPyl0bTJaLjs1YD4mLXRTWG5CSmgmYzFzJiNuOzxkYC9fW2Q+N1kxWj8mYyxfN2BqPWYwNG8lVlNbOCRFZEZxZiMKLUBJKmxBWTtQSVFmLEU3RWxSY1xLb21PPSkpUzlwJypQJjoxZiFqQlBtcVpfK1dPcW5abl9SS3JIPmQpYV0wcUQ+Ci0mYzhAbm1WcmNKNmdpdEQpaUpfKiVLNCUjZihlK1cwOD1IJipRLlc7cHRvPElJckdsJF8pRFQnaCMmQz5uPypxVAotcSQvKSg+TSJeTF4rJFZmW2M/QmRfZkc2cGUmJDxJLE5gN1dSV0RjOF02S3EzaWsoUDhnLmhna1tjXFhiKi4rL3MKLT9CKkEsVC1gNTNUNUpcP18tMks7OzxnSzdXY18wV2ViWyhybFduPThwIm0+OGBbPjNdNlBtJU87MnM5KzdxcT9yCi1ZSThXMmg6cWdeRVVJLFlccCVLSmg+PjY8bTYtZkFwK0Y+OXFZKzRbSTpLQCQ/RTtTZzd1P2BrO28zWywia0w8awotPzE2VSleMzM5RWpvIS9lbzNRQFxIL0EjTzdQQnJCU2pbI15uVUtSZl5QYGY/LWU4TnA8VSlfK1YiQHVHY1swIzkKLW1KWSk5bzNSJ3NIO0A5IzRdZWNVPzgnclVzKDE5aVZuMlwyMEJSWj40Nz47KF5ARDQqYFZfQSRsaGtcK25pa0NCCi1yOXE+bnJzLk5PSVRQRCUrK049IiV1RERPfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjMzIDAgb2JqCi1bIAotL0luZGV4ZWQgL0RldmljZVJHQiAyNTUgMTY0MCAwIFIgCi1dCi1lbmRvYmoKLTE2MzQgMCBvYmoKLTw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvTmFtZSAvSW05IC9XaWR0aCAzMDAgL0hlaWdodCAzMDAgCi0vQml0c1BlckNvbXBvbmVudCA4IC9Db2xvclNwYWNlIDE2MzMgMCBSIC9MZW5ndGggODUzNyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUosZ11nMyRdN0sjRD5FUDpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLk9AV25bM0AnbmItXjc1NztScD5ICi0+cV9SPUFsQ15jZW5tQDk6MW1NOWpTIiFkVE1UPCQzW0dRJDgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjQhZzM7Qj0oaVo8a0RxT2gvQmYuREhBb3JmJ1Jbbz8+aW9Xam5BWSZeZ00rYDQ9MWpSTFchWUEKLT1NLzYpKktTOVBFYGtOJT0iVGNfQW9oK2ZrJyZ0XGN0SU4pNFhRTGlWcG9JKD4ubk9XPypEbXNHJEAsLGY1OCJQCi1ES2Y8dWs0YTs9aSxFcEc0c3EvK2E1aDhkPmVYaTBTXjZNQUg8aV80PTA6KkBHJ2ROL2tCRlZzbjlCPWU1OjtmQgota09hKEs/R0MtXmg9KCxkSVU+PTtmQnI+MUlYYl8+a1Arb1NeXnBuWCFQamRKJTBPRVg5R0lgSU9ER3BCX0BWWVAKLSQsVmUqL0lUSC1iVl1qSU9SLCtAYCI8REgmXUJlXzliWUpYOU47aEhPX2U7PmBZIi9AKTkuZj9EJl5NLWJdT3IqCi0rOk5aP2E6XG84K2lvZnROP2NPWDlVLXBHUCYtWzphcT1jWC4qQF5TWFhoUi1iZEFmakVubj5dYlMoRSgubmQyZwotYnFtVFg5WD9NITtmKDhLYzJcOiszNm1faG00cChnXVVmLiJQTy82NGNrSG9tNi10aUolN0FNVy9HMVZBb05ba1IKLWRNLlplOF5gaScqQDdRc11VKTc+UGpMVjBKNWskYDlbbHMvNXVaO0s5YFwvNidkWyEsZVElVD86PVxubT8hPjxMCi1TVFM1Yyd1WXI1Zj9zUEJARyRlQkstO08+aDI+anRRPk4wYjhhLk9kQkEvWlJYXy05OSpOKl0tUUwyQF1nRjNsSAotRHFwWzJicz5TYCVFRVBHUVlqP1ZVX2Q9bUgvPWltaS9IMThPOV4za1FnT2EkaSJ1XyghYXFCSiU+M1VWOikvS0EKLVF1M3EiaVlbXCVLNCVmYS9WJGBBQytqdF8zNS5QNmljdSMmT2xWb185b25CUSVQbz8pKSEpcCpqcW1HW1JIQnA/Ci1EMkA9N2M8IjRbRV1rZT9qdUwvMFUkLm1zSlhDKGovbUZyVD4hPmZYbDVHXFpLUEIrL1BAKkxZMkxoYWVnN0ghXQota1pbKzNYMm50Pz5zPCY2UWpePWhScjcma21NaDJKXGFHcmltQ1ZnK2NMbm0+UjFAOElBVmFbPCFHc2ZecTg7X0IKLTpETGs9UzhSTilAZUYoMEtsRERsLEtGakZjU2B1PVMkc1EhRWBxUVNWR0ghVStqVGEkOks+czYqPCVKOGwhLCNyCi01NG1LVz1raVprY1QwVGI/JiNXM2xWbWghTE5kJlhOVDlJamsjSzM9ODU0MGE/ZUEtPSIrJFFCWG0+aFY1SUtuVQotVCdzQV1yI1lWRm5iZiI0YzFDbFU6WSMuOlQ1V0tmSHA8XFJxMS9JYm1IYTJNOiZqKkc/J0tsNChdMld1TzU5cDwKLUJCXUhUNVIyYCwvZD1Tbio7YSw7JlVsREtxbkpHcV5Sc0huSDEkc11ZX1QrWypsSlxFOk8zOF89QTkrWj5VK3F1Ci1DKE5PYS9BXjV1YlhfLzorTVw3RF87UDVDSFNEVDdfTUVVTmlASSpFRTlaW1RwKmcxaFAhNFZdclRIJGM0VE9JZAotZTstcVkrQFRENnFdX09DTUQlalAwTl9lVlE6KFhSOylOZWYtS2MwJjFnLEFhPzhiOilgdTpVRUJUJnIpMDttST4KLTVwNHBoTD9vWmtfRk1mT0EtQElGO0BZc0JXPTokMzcjQCUoL2svQ2ImLUNwR09jaVU7OGtFLzstMDMiNE9xS2ZOCi04X0g2TWo8VUZcRGs2PmBmSWpwR2pFWVNTbT1JaltdKHRHJVlsUVYvPiJgIT8tRGVZa1FWdWdJOUEpTlxWJWZfUAotWkMyVXVMcXJCPT5ZXFxUXGFFKXNKS1o/M2Q/MmxGQy8lajExb0EzS1JJVXUhNGlyTm1qWztbMkU4ImtuYT9ebz8KLS9ESDgtQXAtXlpYWlBeIVFDWUBmRlwhc21wPyk5WlIqalZ1MyhbM1EtPWJldWUoLltKM08oXFs3MG9SOEBZLixXCi1tZ0M5QVZkR1VhKVRHNT5fQyxmR1RRQVw8YnBqQXNrLVo0dTFjLD9ecFprNFovRSl1XCkxVCpoWWtmXSJNMzxCRQotUlQhQyw5YFQjalZjPClTSkVoUFlsMzBKUDw9WWEmPiljREU3N2pJWS91RFVwKkRcLzglQXJlbCMiX0NvLixSLT4KLUQ5TWwnO1YnWXNraExdTjw2aExCQzg0UVNGX1JzWFktcUJiaCwqRSM0MDVnQ1glOFloPGFXZ00/ZSc6SztXazVXCi0tWEFLakZqP0gtKUtmOU43Plw5TTAhczhHRigkTW9GY2RFcG8yVltCPHRbWiZENytzW2ZHU1RRWEZMX2FeYycyOQotPj44aHU8TVFvWjhsL05HLnBkJipIYT5VJ1lMaVdnNiM/SV1abzNybz5NRlJFbDolX1koOiQ7MTgnPko1QVhLPFsKLWRgcE5eNCE6UkVLPGM5YGkqQlFoRGxzaC5cOj8naDUiaCFrbVNtW2xiVFpGRzhMbWQqJi5jSFVYOWAuZWddVlBMCi1uXC8pPyQiJHAoSUlHL0whZEYpMz9lYk8vbi0vcC89OllJQD5SYzhSN0tMN2AwKVhUaCohQzImbV8qaElUaUYqJwotK1dnNFw6dExpdGhKMS8sWT4sYDNwZFh1OHFyYFNkN0o0SlZZODFVJj8mUzVaLkUqLW1xLWxUNExrJ3BoVllGSWAKLWlLYiIvZktKPlhHRms7YColLWBOVj1EUS0xRGpaWFNXaVchJEhbTk8saUsvJ05cVCgrUCpmXEdpTT9wOypwK05UCi09RyE0K04wMEJHU2JeRGdZO1UiSiYiN0ZWPFFgcmEvNiFUQFFMWEJLYTgoMy1pUzkzRGwpbUxoUiQwT0MkaF4hcgotN1ojQ0QpWisudUQ0UERHR0VSNWttVWJKZFFsYipuWmwnWjhpW2lFPUZDbSNNPil1UWslNzEzKUcjdVViQXQlYyUKLSJjbyQtakJtc1c2PSxQJ05OXkQ7ZjM3TUpsZVFwbFtLYVBMcVtbLlA/JXJQQTdgaj1mMDRiMFRTWzgkRWRGcWYjCi1DMkk3WVtKJVZuZ0tTI3NEO0NWYltmQDVzM3NULC5tPD5gJWM4TVZEOi1xKnUwPEhLQFtcdTdIciwtcSpcVFI/IwotZkdmVFVEPS47LTJXIlBuPlJ1Rio/K0lgRHBBRVJUa1IyPFovJXBKMWwsOSdvUypubjNdQUM5MGUhbllyQ1JzazEKLVw3WjAkUzBNcmtER0E3SzdrIk8mUEFdcUNMVmwpcSZFNmVeTUduQ0Rvc2hvamomcVMrQDMuU0JxJC1dV15nRUNECi1jO2k5ZzduTUU/KE0zNSZARDRhZXB0XSxaUldFXFJjPGRcOWNvVSdFbXA4NW0zPWRiLFJsQDBlP0hwVSgqbSpbJAotbF43LVlCNyUxazI8ckxkWD9CPWQ5ZSU0Vl5BTD9rbVFRRVtHUiVtTj80VWxJISY8NCUrKVRnM15AcTpCWCElLlgKLSg+XVozR3VQOkhJQ25aTWtacyteR1leS2NwNWFzdSlqQDREbVxSa3VURkM2cik/QCFjY1cnR1MhOSlaZCU9O0d1Ci0jNXVUUSIyPTZcIVVrSSpyV2cuPnJ0Iis6P1xldE84JzFSNjBCUlo+U2IpaTlkSkAzR2xAISQxblwzJl1wY2lSKgotSGRAISpJRiNAcWdHPVVtJHVvOCgzdENyVWhxNmlkQjxxT1JbSlYqK21zRGdbbjomXjlxVlVjQEopQzIobitRYzcKLU47aTlycmgpPU8/b0ohLDIjTkAmcjYuUy0jTCotOmJrO0g1cC5iJk1PNWc2UCUwMkg9ISlKTFEmNCRGUTcwSVA0Ci0iNCtAV08xUD1wJkhQXUZnb3FkOEUkMFA0LF5jZ0VfSmgnXVlWPnVPMiNhXlUiNDBhOkUoTDxoS2E7VXIjTi5mTwotWVJMYlNpcnVRNSJtYWJFLWNsUiphVGVmdCM0NmdEMDVnYy4yWydiUCNgdV8tbkBdK1NPVGVQRCJjXGlHWDhgJV4KLURaKG4jckckMElYOE1xYFBsWF4pcXA5WnRZZV5pKG9gLFFCIlY/aytZYTVkZilcIkpDJTwqTUgjMkdCI0N1UG84Ci0iLUZUOW4jdXBMLG5hVFUnIVd0allxWm43OWJWTSsiUyJWZ2kpKDFDNzIwYDAiWWleY25QTCNVPD5CTFYnc1YkWgotblIzMWZBSlQ4ZydUbTVIMGc/P0EzPjdOMicvOydPZDNmUUZZbj9MSWdURFs9YVhEJjMnWj8rTmZvXysnZDNCSk4KLTZQbzhDKFU1XDJFQW5bZzRWbVIpKDZROUxuXEgyImA+ZDQ4J1RvYSpuWlcvRFg5PmYsIkVDND8wbyRZOk44RHNECi1QJlpfTEU+SUVZKV1BMUAoYnNiY0VSUG90YjduczorTDJHIW5kdVlDIzhbdVsqQVEuZFovNlRXTSZwTlsqaVVHLAota3A3RSdjUUAuYCswZDc1T29aTDciWC44TitZbGI7bmtnMCM4LUtVTytqbUQ5JlokW0tNVjQsUGAwJDQjT2Q8aj0KLVJiO1xQIi1QZVs7PyVRXyF1ay0+LHIxSC5ucjRyOT44bjFzKU5sPD5kWCowdEc5WS1SLDcsUz45bTdoRStTYUBBCi0tbyQmc0VIPFA2T1h0T3AqLS47ZlpDKiQwU0wtK2MqYD9cblAmMjhbZ2pAMXNpWGNoJCtBIjRBb2MybWkwPShLWgotWk4yYSY/U0hPLCJxcUciaSsiSnQnRiVKUjBxYCVdRiEzOnAscjBOYyMqVVZvby5gJFcyKUI7NjFVQjUjbzBHMmgKLTZTYWlzMTM0SGpaUD4ybiVsIVNdMFR1U20xQXJsUmNTJjJncV8vYEQkQTxrS2xKQnRXcVwqWnMxQU5nTjxBakBLCi0yNyFORkV0J3VfJy9dOnUxcGBcVkYlJixHVilpW3MzalVWJm8xTSlvQU48ImMzPDNKSV5nQidPPjwibEoyS09AKwotY2Y2cWtLL1pEVDAkaVEyJzdWdHRAbSFdKzQ0Q2AlO21BMENYWnBuJjVJNz1SMUZZQ2FcTkE5VjRCJz9hZHFMclUKLWBCP2hFNGM0ZVJjYyYnXUJnLEdwMzBXWWcnQ1JyRyFBXGBwNmFUIURvLjw9TixzWUNvNWEuMG1kdEwoJENBU1peCi1oVT9MbztnLXNmSE1HczwiSSg+Z1pmc0h1bTVcLDg2clA2cydTL2UyVmFvMlo3JENQO2RwIzZTQG1zO2U1dTI+YAotTUxScTdJbU9aXzY7bU9zO29xTmM+PVdhNTgkbVw4PDVENmEzQ25bNThDTFIhJ0ZRbWIlaVxKYDheRDBFJEBLb2QKLSJNWlcpIkI9YmBuU1NOW29oVFhyIzFXVElpLE1STiI6JXA1Om5XKTFvYWhBOSdpQUBlOzcuQUteamY2Pix1U2swCi0jU2VwaG9lQkImMixlV1cjUVRLVW9nKVA3NzkiRCQ8NCw0cFs4QnBdMmM+b0MjUEIwOWVKRCkqJlEnOE46cGdJJwotPDwjYmNSODdyIShBLiZqbi5gVmRUMihJLT03a2xVMjBdO1NxYz1uVzxxUVBxWzBdbFYlb3RQJjxWNzsyWzQsKlUKLVs4ZzQkPklELktvc1wwYDNFbTRHPi81UGlKOXRIYkghMTJqPWhvI1tKOEpBMVA/NjpvPT1gb0RDW2swLU5FSSFBCi09YG5ka2VfKzUuZDlQNUQ7SDpcRG9lQlxFJ2spNU5AMjlra1szSnIsZDlUYyo/LkluPzxJJW85SXBVPWU/T1E9MAotPElcQT9xKSVkJz9rb0FDPE4wQWwrXnJxNkA/dDInZWxjRFMrXVsncEBXZU1WW0BMZHU6S1xmR0BvXCdZMjIlPjMKLU0jOjgzIkJJcmU8VyxgL1NSPT1PQCEvU2BHJTRjWD9ZWF5UQyxObkBGc1U9WC45W0s9PWRDZERaIyswXzM1M3MrCi1ePUdTRyZUKTBIUD5CYig8amtrKzJIPS5uWF1vdEpEUkxMJUZdRTJtQ01Rc2hDUjAkV2VvdEdEX2Q5ZCY/TD9hTAotbUQzSi89KWlGJTFrOVhlcEU8T2VMTjdTZSNoTFlLaS9yKD4xXlI1REYuZXFCcEhUJW83PEVgRkZDOlldcEpIJmwKLTxIUzs2RmdrWSFwTC81KEFUaTkzRy4yPTNwTV5INT0qSmpnRkxRWz89JF5wRTQqLmtnRiZ0IzhwRjEtSj1gUDwlCi0xbV0pIlFBWEgqNlpGdUNIMXIrcGY5Y2UlLSReVmdHa1dlN1traThRM0khSklHUD9OMFFkPyZqRismOGNJQ0okVQotcFg9PlFjI2dHOSQoJlI6PTI1K1ldRW0tISNeO1ZeMms+OUhVPWUocGZbZ2phZjxLVWZbczlxLElsSGhGXColayIKLWoqLF8pSyIqQ2FwTTVBKT0rV0EkSV5lY3EydHFnMnMqOXQ2SDIlVHJcLWdsdSVzZHBgRV0jOnFcL1RmNCsrMEc5Ci1GQkNEQz0+PlJqRmI3LEFGWj0rQlwzNTRBNiRxNlE7Tz1abzMoblE0TkkiNUBIQml1K15mUTYhKytcVmRIZTk/ZAotPTxXRi9IWmJeIk1uJEhRMzQ5LkdJdSQlPUxqK285WzNwZSpQQXRoQmZVLFJoUXJlOjYuPltidUVkMik9XDdeJUcKLUl1SD46TXRtNzNwTjtFU2EqYTc9SGwsNHRRcSlHLi4+ZXRyZlBtZSY6VWMycmlEWC1GUC48L2debm01VDFeX25yCi1QRyMxRXEqNTxqNz9oMmpQZHNIcVxQXFY3XGRSMW9RKzoxY0pBN0MxQVg3VVVRRlVqdXEvTWBdRmRJQiFRYXE3KAotcTEmays8TCNSPVBoQVFrR3NSWjQ0LVIzNFA/MzBxZmUkLUZpSkovU2BzY3NOMm0mNmMyND5DNVA4VGVyPWRQPj8KLVBFWWcnUFpgcC9cVkhGZks5YzdcU1ttUklxO0lvKkoiOmpoU0tQUDdpNDVBTltAQ1gwUzA0cidpMilrO1xYSE5kCi1SWkUpaWJYSiE7VDo4aDpSdC1RaGZwZVZlcTRDZ1tUJVdAblxgS1NJMjU+SVckaTJOQVJJLVVhb3EuWk5UR2UhJgotKUA5SislLzpfUF9LbHI6Uk1mJEIqTU9FMVMyciRmXGdzPTQ0cSQoK1ZuLjtTcS5sbVM2XyshQ1M5ZGh0cUczUDsKLTI0QWBrUl51XmQldGckRlI/RXVLVk85Njc9aVs4KWNfQixYVyNFQE1xREczU2UiZy1pVW1dLHJmMVZnaztjITZqCi1wXExNXiV0VWBcRi9rWSVXbkc0Y2c5W1txXCMzRUFYO18mQHEwQiZFTFRIbylYUCZyQihKMWA0UV86cFpUXjUpKwotJl5DVVgtKmdwOlpGX1hwKV9uWkFUcUBgZiUlQkRkaTZlbm42ayo/bFslUTBccWJSYVY8T0g1bFtDXVpRaThNKysKLUEuQ1w4W18kQ2JxZjApLEJGXDZsXCVAJ3RxZ2w3PUt0KUpkXEBbJHE+RVFIWENVUkdZW0pPNztIV1JUbzs3KnIuCi1acyx1KnFgZ0NXcTZPOV1aSi10OkhSQmckK2dNXWZdR2kwL2dGS24qMHNkOV5dLE5vRWdJJlFBOFwvLCVcZjRZWwotZ0tWNFhBJT5oPltsXVNhcXVPU3EhUGM4UlxVNCJhIThrTitoN2VFb14tTDVfITdBS3FhaChdcl1nLzopIS9uTSoKLURuSztvaCJyPi9nYkhcI2ZwNyIzX0FqVDRTLyZqWm9GO2lLXnE5aWlyKmRTQj5KUWIxXyZPMytTL29IZC0sUSg2Ci1fVj9sYD5XS14oRmk0Km1gJmxNZkgiRnEraVBiV1hgQjNWL0h0VTQsQScwMXVcNlBmRFM4NWtaRG5fYF9eKVY/XwotUyUkKDlKJVhRaGFCWFMtUydmL1dhMFdENmA3c0NtKXN0VUtvdWQvc2IuUixlaCEpQDNaYW5sI1xtMmtZZ3FULyYKLV9uMkdaXUgjLDRdWys3Z2UmX0k9XXRFK0FJLEUmWWoycTVeY1Q/OXByQHU7VC9bbyFaW0pdcDVIZmA6UGg4YnBMCi1hNG8iXyZbYjVsQ0g3YVVUPjhMdHJFcCVBZyIoUmIlWGkzRmk6NUReRjpYcGZmOmAvcXJJPkdCTCJLZjtmWSo0VAotST9FMisicVs+bmZxQWYsckxxcS5WOmtxWmc6YVdCck5ZKj9bRy0sP2dWKDtUclAwISNWcWNdc2Z0RW0uPydFcHMKLU5TJlo3ZkgjT3BdbUpAOkZrNk0wZXQkTys0Xmp1N3BHbjxNIUY4aVRoLUpuWUFfdDVVaE9TTj8/JCJqQ0gvNzsrCi1oNDk4VT8mUk1aT2tlY1xnbiQmLl11L2tvMjwwLUdnXHJrXVNnWS9BLFM1REkmNy09ZjRyPWgwJ0ckY0glaXUsaAotSUwkQ1MiOlRfT0hlbk1UWUpvRG5PNU4xa2shIS82Xi9zRFs6WlQ1W2o/PmZgSVFRZFhRMEVfL2tsJUY/NSJGXEoKLTpaWGNBamg+KmE1JWojZU82NkZdZVQ0TzpcXG1RWUlHaXQ1aUVoNXNoTUw1dU5UbzhvbCg2X3VyZmNgP1Vacm1ICi1sPFlMclNlXlBJJUk1Jj1sVzViKlQiRi9lMEJcbTltIVwtYl4jQT5WZyRMck1tPSswVypvWlpTLTBgL2MmQUlEYgotKnBxZFRuX1A+W2hPYVEjKnJVLTohVHRPLkVvLjJTKnQ/Z0MmYTJDcmteRl09XismV2YrbkMrc3A6azIwcktadDsKLWdZbmEpaT8jMlxUIU9xTXBHRGxccD44SUpoYlZmJjtySVtXbSwpJTcrKCtEQkErSUJNcVMrRU9yW0krcittT1EmCi1tbHU2aEl0QCgnTCQlOUtyXDwrND9kXGc0cCNbQ2dyUC4rdTRzVV9Jam8vWzFya0llNEorPE9eLyx0K28nKiVrQgotaVcsPDxWSTVLYmUvZjIuS0k1Wj5mUTk7IyU4Sz1OT11cdHMwYz5zP2oscXVhN1I4Mk84RHJ1Pi8uLDQ/OSQ2N1AKLTNIVnFWMHBzNV9QPmlPWUUtXCFMY1ItZCtyM1xoYSY/KGdqKj9MPjdVWDxiXi5NVmwzNElzYkYnM1ZFWkFNOUNuCi0tJ0ZXMFJMKDclYUQ/dDVvcSdRRls3LjEqZUQ1dXM/cWYxSzxRKSJTPyEqS0VWTmpgZDhwKnQmO2xET3EscUJOTwotX1tzJitYOl9jPUgrdEtqTG9ccmZuPDpJMURPMmwsLUpgN0Brayg8R3JlPGs2UDFWQ1RdWnNrN1BLO2VTXEBiTmQKLShRSEpyRWQ6cChCL2NCY0M3dEVbJVwmVSZOY0NqNzcrS0liRzFZVFoyc20xRUNQTFRsRztyPVIiKyxGUWhEZENaCi1wQ2lyLGphLWxvSW5WcXBkJyU1Zylba2ZPIU9UXlxdNihcQUZNVG5vbzZlNTIkYVlNTTNSPCNxcDsqamYoQUtrTQotUCNELSw6VTcpIi5TbktfcltCIkw1N2UyNydMayxPWXFaYic3M25bMSgodTtlP1BqSz5QXCpsYVoqQEZPN2pXOCQKLSpZbjU7SVRYWkgnU2RoSTtEYUZbOEIlKmMtOnRMYlQuITtlUGMkISdaRiRlYjhNXFwpLCJvM01JaWxebmpEdTxcCi1kQm1PKGBZIWwuKC5Cck85YlRwNyonbFZcWl1tbTw3J2d1NDJGVltkP1NrNU4xaSJqOicsNVhFOCguJUEvXWZjZQotKyVUOWRQcFwtMVo5OSFKOydnVyM9Jj5gKSMjbkRGLGxVUWJVbm1dT2NRZjdSLzVFVGxAb2NUMDc4NlpaPDxZTlwKLTtjTFxqOTFcXU9JcGNBOiZTR0ZrZV9HalE7aj9yQDssaWY8OyxwVl1JLWojSDtyKS5QZiRrXls2ZT5AIUBxKGEpCi0qUU4yKlpAMFcvUThWR0pBXkdVOnMoQlokTjoxSytRJlA8O2NhQmtXPkw5ZSYnNk4iZzJAImg5KEljKV1iWkFXKgotR0tqM0poMEk6SVhAJGFbKDs5QldoajMqc0RWdTwwImJQZXEnV20jP3BlOF5wZm91cjo1MiRbcFYpakg5UT1gOWwKLVxbKEV1aztncShTbkZtbkdHJlVyIylBb2lSUHAxOUJmXStSVkoybyZUO1dXMlFEXmB0QW1WW0JDSEMlVVklc25ICi1eVF9OOSg8PF5zXS9KIUJDXG1KTltWXj5uaGwxPy9MNz4oKT4jcF1aa2FFaU5UXWIickZlKC5RW1ZfSCVdSmcoYQotazhYTSReTHMldUpcPmBEYGY3VEU0L1NGVkMmPFlCW2UlMCplJ04yIihJUU1qXTY/MzZGIWFbOEE5K1ArLT1WIUIKLSM5STFAVjVHKS5uNkFIbWg/ZEZQb3Uxa2pbcVhOPSpIdFo6RlcuL1BrJWU2RVRCTFMiRGwuK0E+K1xnR0ZrcWdhCi1nMzI7bUZpIWdiNTd1aTpIdUZrX3B0Vyc4YmtnJVtXVE8lQVFma1tSKmJYOD5IUTlmLmFucVRUaEptSWJfRUs7WwotcSRRYCdHXSNcKFxNb1ExaEZtOWNjQytNcDMlImk3Lyw0VGdkSmMoW3I4L1YhSjpMPkUhXktma3EsdG9KRGljUWAKLTVoPjAlaFIiJj5uNTosZSNbbGgnX2pQaig8VUk9NV0mUixtPz9iaSw1PUBKZVZNNldsTSQkM243J1ghMUBXOXM9Ci1PW15jL3BvK3V1JHMvPmhNQ2g5JWB0cjRXP10xXEIwaCsuRSkuT2ZOTj1pJEY3XyUrakBydVhMJl1RaCQzOV9HbgotRkNwUkdSUDc3OmB0bVtpPUdtYmwuYEVnNCdCNCssTS9hXmIuQiYoSkE5OjsnNlBgJ1hXPTlNTyxaMFkjO0YhWnEKLXI+KTBoQCNtJ3QwaDVxTC46az82UG5LNlc4ZjlpMGpRUFRlQHRtWzpxKD1UT1c3WzhDN1MmSkApJ2MhTU9IRUgnCi0+S14vXi83ajQyTXBlYWpiKmVZUkFvdUBaby11bXNNIy9RMk4zZWhVaEhcNzdIUzsxMl5ramdBQEVFZVEtS1tHPwotUlNmTWU6Ol0lPkEjL0BKWlZrUFlsKXVGR2JhIlo8N1ctSzdMSCRKP19OTTU8OVslMzQ0SyFqRlNeXSE/Oj9pPywKLWtFTjBBWjNrcyJDJUVPSGdkPDIsfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjM1IDAgb2JqCi08PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL05hbWUgL0ltMTAgL1dpZHRoIDMwMCAvSGVpZ2h0IDMwMCAKLS9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UgMTYzMyAwIFIgL0xlbmd0aCAxMzMyNiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUosZ11nMyRdN0sjRD5FUDpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLk9AV25bM0AnbmItXjc1NztScD5ICi0+cV9SPUFsQ15jZW5tQDk6MW1NOWpTIiFkVE1UPCQzW0dRJDgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjQhZzM7Qj0oaVo8a0RxT2gvQmYuREhBb3JmJ1Jbbz8+aW9Xam5BWSZeZ00rYDQ9MWpSTFchWUEKLT1NLzYpKktTOVBFYGtOJT0iVGNfQW9oK2ZrJyZ0XGN0SU4pNFhRTGlWcG9JKD4ubk9XPypEbXNHJEAsLGY1OCJQCi1ES2Y8dWs0YTs9aSxFcEc0c3EvK2E1aDhkPmVYaTBTXjZNQUg8aV80PTA6KkBHJ2ROL2tCRlZzbjlCPWU1OjtmQgota09hKEs/R0MtXmg9KCxkSVU+PTtmQnI+MUlYYlsjJiw2IyVeXnBuWCFQamRKJTBPRUgkX1tePk9ER3BCXyFrU1AKLSQsVmUqI21pckZiVl1YQyZEVERaXmk4WCsmXT4sMDhKQiZUOU47M0s7LVtCQ2BYciZQKHJoXT5EJCo3SV1RRzc3Ci1PaiYobWE6VFxHK05UXXMuJ3VPbjlVLWclZFRpPWpgbVNbcy5FW2NAVigwWSRiVWs/ZztYRCg0Ll5KdWswdS1DXAotSixyQFg5W3UjRlBBSyY2YzRjL3UzUjNoaW01N0VAb1pvVkZQTy82NGNrSFdSVCRNS2YlN0FNVzldbl4+UFYhVj8KLWRNLlo7N09OOyMsdGxdJGJnQiQxPDQrU1plLmFjIlNDPyF0OWlLPyYpSWo0VidTbHVxZWVPMFU9azhrP0QtTU81Ci1EJzk/OCdrTU1WPHUpNyFARmZUIidqYDNab28yPmtRPk4wcmZsVFpFUVdbQEshR0MuJmBOPCEpMj0qLDljbzAuZgotQFUnVF5dNEJbai9IJ1NFUSxWOTw+JXApQjg2cl4sbTxkXyxjIlVKJE0ma2JMaGNMP2xKYCloRypzYS1ZcklLUloKLVF1M3BdQC8mcVRLaSdnWS9XOFgoTlZOZmYwUmAyRWo7QUY0TlBXLWsqS1Q4YTovdUlKT0NDP1RjYVJRb1JIQnA/Ci1ENEJdK2M/NV1AUkUsYy5rU2FxYlRQKGhnTk1HX1VYa1FGZiNlal8yQW0ucytXVG5kTlhlQkt1Y0YnNlhGNiJSRAotNWhWLk1YbUROMEI8MUQiMCRVZmkzcGM9PVU9dCJgVzlwKFdPMG4zTFtlNkJeZSRlMWxtU2dSWV4kcUgoblotV0EKLToyUl9qXUQ8dGxjRmI1Nl9YUkNELWN0bkQ6Nz91Wic2VHFIRWtNdDIiKkMoZToiL2JVOks+czxTU3FmY0pERCNRCi1iQHJrXyhYOFg5bStda040ZUkucHApWGB1aVY4c2ZKKT4hSFssbz1OclJCTldCY11LT2lxZjdNWGslZihRXWwnKgotbjEjPT05biVpY20uPEtWYzFDZSgtVVs6U14/ZEorciJFL05VTz9DTmRKTnFhRHNQPT5RUkEqZSNYZSxWMD9wNisKLVtkYTkoNmpbc3MpNzcwL0xBUilAbjNAPCVANUhMRnE3byoxSzI/RnE2LmU9Kmk8MTxXOmxaL1Q9QTklWDQ4YGxQCi0ib2s0aF5CRSNFJ2tgVjZvMFJcPSVINTVjTEpaXD1bdF00NVRrWExba1BiZj4oYkdkSVg/Mjg5L2dhIT00VihxOgotLnBeOTkhNXBcbCZRUWI+RkUmV1Q3Ryw5aWk+YlsyJkgzRzY2aWUkYGxyWzxZQnNeMF5fJk1FZkAjUmhCLjRdWHAKLUlxKF9FTkNxbl8yMGRwc0EtQEk9OzlkJEw8R2BjJzwiYiJKS2lwWkFLXjU8SyNhLyhcOGtFLzssbGdXLFA+WjluCi04X0g2U2pUTTlBO049WEk9W2FYdTcmXjIhTCZFbGJhTXNFSzxLVS1iN09vPnJjdCVlUlB1QCREOG5pXSxqb2lNZgotO01KTE89XWtBREZHPGpQYFxZZHRkaytSUVtxSEU6JkJuOiYwXXA9LFJvPSwrYyJWQVZoLTc3UzhbO0oxVV1VL0sKLUNqYztpO0BsUmU8QXU6WW5YYFglRz1uOj1sREc6V0AqLkQ/Yz1nVmBWYkFuL21ePls0PVlEbyQ3MSNHPylHQUQjCi07YStANnFiOGwzZ3M+YSM1WnVpL1NXSjtUOFNTdTFrbGRpWFo7dWBBTUJMMlhQKy8pPiVXZmt1P0slVFFWTHUzXQotOyNtVjU6JEtWVSFIZGIkO3FjWHFsMzA2TVBuJ05mPiljREU3N2pJWS91RFQvSzJfJmg0SnQmM1JuPlxkI0FIIkUKLUJoSE5nMkIjZyNsJURVKTppYCFzKVE/XiRORzU9KzJSWlo/aC00WXBFTjMkMVM1ajo8IzpkcV1FSFE7NitCZClECi1SQnVVL29aZ2FiM3BCQmlRI2EjIzAjaCMqJzNvPzoybTFUL1g/KFBUYzA3YiNGL21OaWBPYShvbFJcXjcxdHAiJAotV3VHZD83N2prb1ZVOXBwLVUiTkxRRSpeLWJoOVFdZyQrRWtZYGxlaWcsaUE4RCwlalYyWkJYWWdLdUVdWC88MnEKLW1UPDktckUmQFBENlMvR19WPGZpRUBRQ1JdMmdpVjwjXmZHbGIiMT8waC87I2cqXXQjIWpTTHFVPjxwTzQnRjY/Ci05YF9gS3FIbUlvSS9uRWNeSzlrJj9lYk8uSjo3Tzc9OllJQD5SYzhSL2NXWGgwKWFbVCpJWHUiWEpbbCZQJDhsOQotY3Ujb0tVQShbPWgpZG5LRGdhWEoyNyFQSTpgRyRBN0s6MUBZODFVJjtpQy1fLUdlPihXNz0hWixxX3A3Qk5TbTAKLWhOX01xbkZSV29kVzUrXyRxWkRdXitkWjJbakdZQCJkNi1GOEE9bElpbyltWC0qYlhpQlInJUs9OFtRJ0QjUWM+Ci0pJiFUaClPWmhuW1NYcz00I1VRbGVWXEU6b3VgT2EpZUZDSUdjciZOYkQ2Wl4uZj1qYkAqVi0nR28jYygvRTstTAotSU9OSVAwKj5tWCk1Nk1qRjFeKy86JCU8Y05qLUtNXF8yLzBrUEtDRS0xNkUwXEptbkxJMyFxM0F1V29LVClcJFQKLSlsMEo8RmpkaFclOGN0SFZRVzBIX2ctXTk/SGtjX1pSKEZPZUx0IT1iWjFbTjo8KCcmXTMmIzFBTD1kbUdmJmhNCi00ZU87YmMqZDBgYCZlPHRlOW1JMDExMVtLPkU8ZkIrPSJHazdkOGA1WUIwZHNoN05FOW5fUktySD5kKlZeJVpeOgotaGNvUGluJ0U1QTBDRGM7Z0gvIyFXMU44P19RbEgoPygxL0oybiV1JDUyNGJnRSs3WiVcVGNwS2gtOHAiRVNgayEKLUdoNCk/NEM8LEokaS5UPDAqSkdgRitfJkEnIS09YFtmRHBaJTwyYklgMllgUV5PKGEhREpobl9HbEwobj5tSSJsCi1TcFJ1WDJETkteJVxJUzUxV3MmVzAzMCg0Xmk4KF1jI3NVMGdVdV4sRjFzNlJxQ19bL0k/MVtQOjthZlc1NiZVVwotVCpUUF1IZGRMQDppcjciPTdvLltbUTsmPWsuaUk9bk42JmRIMDc/V3FtM1UnP09QZmQ/WVNhYGxdYkBEPEZpWFAKLT1USTopIVZePjloRD5JYGxURigsZTZbOUozcmFnJSlsTFQiP0FJYj06USJPZi5mKitvKychXUtRZ1QmUldSNTgoCi1GP2hBdFBNUHItR1JPbm5HQCdoQUloMU9kP1xla0w4JzFSNis6QSYoU2IpaTlkSjpSXmxAISRBcCY8ImJxZDQ6MAotIUg0aC9ycy1hRjVaP11sP1xjOyw6P0I7Tm9ASHEqNFU1W15FcV5YPzpBYDFsbiQhbkxqKlNpPElVQytqRG51RSwKLVRfa3IiITNjbi8mLVcoVy5mXHQlczAlQ1slRmo6PWYiWi5XVm0iczBPNWBuZmsxYFxzazdAIj9ZT15dYXA+LT8jCi1wb2tWMjBHT1JhJWc/b1NxYlUyazBNX0VUOSkrSmpvZTRoMU11KlJVR2xtMWciIWxoLURCQXRhM2lKLC9eZWFVcAotTzgvdWYtTyhcQiJuMDgyWWI7QzhTR1ZmRCNzXWpCWGpJMkhFO2JnUSNBSDZ1JCdKbl1qS0t0YXJlV1c2ZCJxbDoKLU48RSg/IkhcbFRPSl9rTlVDTTVSJVBPUmFZYSNTKmNPM0RPIztFYGVFLVIiM0hxaipcbE9fQUVkKmg3LDZKUldTCi0jciQhJSZGQjVea243cEgmaGZqZiY4KU1LN2dBSlskXVwtYGQoXVlvX0lkYyxCIUJMQzhxPVlCJFBCTiFyKGonYQotISYjKkJBSlQ4ciF0ZkFjaSVsMChGVmYlQyhJMGhvblVWTjNLYyJmZChwVCY7blc9XERJaSNBWChRaVZPblMmbXIKLUBmWys1cikjO2RYNnVudTZBJmxnJ1csUllrcWEmKW0xalMwaD00Yk5EbSgnVlVEYFQ9KTZxcyEwcE5lN2pXOEYrCi0oZkIwLlouSy1qZUo9OkgnKDsvKmxqNFVcSWlFJlkpbUQvMmRELGM7YDRpTHUlQysuWCZeXkMlcEQuYz8qcT5YPgotWjghUloyJlVFZCk6QCtdRUZnNXFTSm9jNGgvVFs1ZEJyVSYkPi5cdUFvXFAuQ1shIkVnPjRSMSZsSSsnISYjUCUKLTN1O29yLWFKLjwmcEcuM28tWE1rLFlzbVROU3UvMiIhblFiLHRLZzdkIW0yTTMwU0FqXjJkYz5tSCNbdVZeQ3QjCi0tVzVSPCZxO0dmX3Vpb1AoR15hbiZyY3AzcyE0X3MsalhiQi41bGdhVGIqQmAjVnI/Vm5QbTtkPVghNyEoJVNtWgotRWtOa1ZhIlZPXC8+K2RNbmoraV9PUFRKbF5pQlNtJyZuUCxrIlEia0JQQiNxbGhvWUdaTUFGRDBKUlZjP29LbnUKLTZqJGdXMXBdalhaVmBTJjRaLjpgMjckPGNvM2pPNUFOIlVEMkYnUGRvNVFdRkZaNEFlMm1bXWRaW2soWTU7Z29HCi0iNEwxKzFKS15UN2w0KHUoVTxRLicsS0VLcVMxMSVQMENAOScuZjxRMFlhcU8tQmdGY28wIlc6Sy9uIT8zQVg7ZgotbzIuS1I+cllkOTJVZCg7b0FNa0hnSEtdLzI3KFgzWmNpTjhhOS1MUSxMTixFJyVZblFWU0JJO1AtXztsbzxPT0MKLVtfSiQ8J3NrWE5lJishVWFaaFRNNS1uQlVGNSZsODIrKUcpNlBKLT5kb1NhKW8wNzxuLXJKWV8mIVlwTSMvP0IwCi1QKj9HV2UuUnBkKDtGcjEwOTs7UVouVHIjLHJwJnI0VlUtYGUzLGNqM0NuNVE4MkdmZW9MMW1sOEtRQFooQShIIQotMWZXODpXMkorR2YoOU1lO19GdXMxPksyb3EsRD5Pb1E7IUxwSURRTjgrX2QjJ1QjTz9HdGRnRjhKQks+RjMtaFQKLUZaSm9vM1pvXztDXEw4cy1VbS00N09dV1FDXDowIWgjKC1kKEQxcF9GJThvZjxDQFBTMk8pYGhvSyxwVkFQTFg3Ci06KHJzaDtVJVclbFRkJlo6Q0hoazhMNy9kQlMzPV5eVEgwY08wOUErYVszPT4yZGYhUW9qQG5GNzk0UEUiRWVRXgotb2w0JEo4UVUlWz0xKjJTWz1NRjtLaWlKTiJQJks2b29XQjdRISY2dD1dTDtdb25jYyNVXWNzKD4rZUFkUSJhOFYKLUA1aTdhNTRjbDRbJUAoJmZZPUdgSztGMyJNSztiQWYyVz9gPEUjNWFQP1YmO1s4cDszIkJEUioyNWFPK1RqTXFuCi09Z2UzOHAmU05jcEtvZSk/TS87RVRMRTBwNlgsYVs+TFNwRCdmUGtmYGtSZV1LOWFgN1B0SmZWOkk0SE0/LjI7TQotJzNTWEFbOidnWzxxWmkkUTNDRy0hRy1GVz1TPlpycC5uYjU5MzBVVUA5KzcwZSdWQ2lIIURJQEBWYl5JVyZKMkwKLTJlK0I0QHMjQ2EwbVFjQEk5IVVyQDksczNHJShUPz9XYFV1Qzo0KFZGYmFdaUIzT3VvQiUobSxbVz5tTkdARTRoCi1CP1RzXSNXNjlkMi8lcEBCW2dzNyZVLnFnYkEhL11DIjtOYkcsJmdmTWVeaT09azw3Sig6QGF0Q0wyMSYyM283PgotRnMtWS1gR0VgaEQkVnE3ODJHK0BvNTJnOHFcRD1PPF5BVGQ3OTI9PUFARClKaShKIXQ3OmsoOkUmTEAuRmdaMXEKLTZZbltuQ2otVGhHOExBNCohI0NEQXIvKDttSj9hI28vcjRuMmcsZDo8S21YXEttNyEjIlcqL0NpKT1uW1BRYi1WCi1IKFw1YXBSdW1sU2N0SVtIRkwjJnBUXSVbPkMxUylIYWdcOHBWRDMjWls/dTwiZGMnNWkpYjM1UnNBKSNHa1s4RAotUVxTXkRWLXQwPiI0UEA2MD8ybkxOZnFEL0czWScyMD8mLVZRWm9jWUdQLUIvMnJUImpnXVxNSUdyTzkhUWRMK1wKLWJDWHJHSG9OXjBwVmhgTy49c0xSSmAnT1pUTXBETDsxVGljSVQ6ZkZRRzU8L21pQGJjZ3BkIT9cLCk4c0U4N3BGCi0qTEQlaFBBdS0nSFwhIWxLTkxObWZLIjZwMjFoMk1McHQzVkdVSjsrVDdiY15LTkxnIWVVKXVgRiNdT2cpPklDagotUXNQckNAWm0qamdtRGpwcGhzSXUkWFU7bj1aQiEuZkdmVmBRJi09I0x0TE8xUitaa1NRJGtWNk03PUBZb29qaUkKLWxbSEBFKEFQJmZHZDxLV1taWW1IZ2okUkxwcXBXJWEnMEQoPVcjSjlHXms7PmtEaExBTlZNQ29RYTtdc1I9Vmw9Ci1KTjA/KVImKV9ZV0IjMWxyKWBOaGZEJyFGcjJAKypxMDMnIkdSNjtnRl1YclVHYVFtLFIrNyFRMG1hY2lOUy9OJQotcSkrMkMzS0VudU8jVHByR1otSzBxXElpYGdmWF1BOk4zPU0kXDB1JzU7UkxlWz9aQ11jWzRTVVMlNjA4XmdXYG4KLWAhLzZEUz1qR2BxOWJgbmMzQVJJU1ttUklKOChUOGpkcGJeVCI0NltxPTEoO29xIjIkVDpmaGY9b1xiMGJGSCxeCi1TNjxVcmY9dV8uNiE3M2cyZm5SNCs+RV5lJEVAX0xSUzQkVk9rSDJQRmRqLDBSb2NHVVJMYm8sJDNoQ1JTPTBQTgotPW9Gb2VwU0UxPVY3S2crM1NnTSxlImlYSFVnUlcsK0MxWyJWNGkkcVRzSm04cStDSGQtRHJtU1ZgQ1o/ZnJJNmcKLVk/KmBqSltyNzpnMlgiREJyNSVcVkFcLWJnOUlcPlopWkwxV2dWMjFSVmVyQEZhPylvPVcyXUkzZTwhR1FgK1k9Ci1XMmFqOW4hMFVjMilkUVY9VzBHTDNeS0c4VjUxXTgjJFNNQEhGOXQ9ImVQU2pZSV9RR0hHdDZiJ25OcTY9I3E/YQotZyoqMWEkKTMxRVU8RWs7JllINElFTlpeMVk0blduM1BWYkQjSHRgPVleOSpPZ0MoKDomInBOSkhiMSlCUmk+RUoKLSsjdUQtWGE7Rm9SayhHazA8I2pHV0VNNltSUUlNJjVINVZoWnJ0WVNnSW5wTlEpY3VGV2dkKF9nLV9yY1RyYllfCi1YUmdHNjMzQlg1I0k5PjhGTlRYIzs9ZCEwNCgva2hLQGRsOGcmTT5oZVwsQC1ddDwmKF5pQChNajlJZDJeN11WXwotcXNYaTtvdFBrTF5IZChacXVPU3ByV2coQl5xOixsciI2Yi0ndT44NyNKOjVWaS1FKU0sUjhcZF5EbExRXUItYjIKLWhuQGRyXW05XlZmPXVzZ1Eha1dOKyJjUVBrP1leZWoxSTI6XVRuXG5mPWVqOGVcZiNMX2dDLlU0NiszVGwsKCgkCi1fTCkwcyohTzBrS3VlWHVfJlMkQTRGT3U3R1IlSnEjPFpyMSosR2k3QkVsKzZValBPXHIndCkrOS0nTnRXOCg6TAotZ1ZGbyJgUHBBaWBZWjgsPWp0TkBVV05HJ2FhQjtlSSNsJl9NcD9fN18tSCQ4cjg1N29RY1puNGF1bFRFXGRRW1QKLWVdVGhUYkFqL3RXZiwnY01wKm9KYl1XNmFcMCZCWzglaCQhYyRYTlVdUXFnR0dMIyxsY0ZsQmloKVdxaHBXJFA5Ci1gbl5UYj5YPF9sNzlNYEU1NVwrMjRBXjE1PDhKVHQ0V01SR3I2OVNZZEBEOS1gbl03Zj5pIV5oM1JkcWBhTHNzZQotNFwqQmY5PmMwUlNOVG51XWlTPlc+PE8hNWhBcCdKU1MkXlZDSDI5Mj1QXCVGSTxWNFtIYyg4XV9ZbywzckowJT0KLWVcUmY7YzJFakQqLSc8W0MhW2E6Y3JaXmBRImVVbURwXG9LZDdUOENPYC9YdFotakg9ZFRSJSxTMywwUzFYZDxvCi1kcDpHWUlOY04qZ1c7VjleN0NWKHJMOT51VDZtLSg9VCwtV3JNbl1QWTEpU21eb3QiLTI2RE81XlNbTyFhbyFDaAotaEk1T2hKKikybiNOMTZzcmJyLUxGbSEuZmtJdTxMU3E2KUpNcyxWRyNpOlIpcmZRRy9POWtpUmwrV19Rcmg4VUAKLVY8VCtlbEZyUElTcilZcEtCTSo+a0MuWDwqY14+VkMkJVRoX0hgX1VIPi5hJDc5XDEycVs8Z2JJU0JWOzstTFw2Ci1IZXFvRlNtQitGYWxYWWBrJ2svL3JrN0skXGBeXTdrVDcibUldYC0oTlR1ITJuXDYrNz9QRHFlTXQhQnJuNmglQAotK0dLOkJLQz5JX21wTFMxZ2k7XiI5QzVndG0/PmZeYlIqXEckMDpeJmpaIig8SDshQTRFVFIyb286SW8zKyJkJlUKLS0xVytabl9cY2hyZ1dZUlg3QlVIbyV1MW4/VElgODYsUG9VVFJUT11oYj8qcTpyJVFbXmpmS0k1QCZdcEBBJipdCi1fYHFsJVQ1RiZzRVVcSSNuR2U0LD9cLy8/KXVUXSFwbiVyaGhaTlpxcXRYSW5tLzFTYjJuZVUkWDZtKm9tSD9xPQotaVcnTD81X0A/YjBRSWEzJl0zTFkwZ24ySi9WdW04MGooWzIwYzpzI2orRmw2SSFtMCMmKi9tTnEkJ1xGK1xMakwKLTNIVm9qMHByVmNQPlg2b0VCMFJiOEZ0TyxyZGRBLzshOV5IMiIjLTpSN3NJSnEuLWQwLj9kPjY7Q01IbDM/NCF0Ci1AYVNrWjoqQzEnX11eXyQxYD9UJCI1PC4uZ0tnWl9CKyVqTigtI1RTKygnaytAXldfYkFpRWVQPEZkc0ksdDphLQotUS4nPG9cVyVxTTgnK0toUjlbMS0tXilPX0VQdE9aJWhxQEsmOSxQYitTdTonXl5gJDg+TiFObi9cREVDX0U0RTIKLWo7LDYtbUQqWzlzKnReP0U1UHBlMFQyKDgnXzsnT09hZlRoWFc7TltSWEdaXk9rSys3XTpJQUkwPlpUb3EjI2c2Ci0yazZOKW9iOVFcaGZsPCJuYklTM1QzbiFabmJOLTRzJChHbnJbPkpMJj44XFo6SFFrbTRIQmxlbWxSXSRbKj5zMAotNC9oRiVZKE5EMFxXMD1HaiNHPSdMPllIUydMKEpDWHQyS2w2UztVcmtJT0tfRlIoWVZgI14waVkyZ0FmNXFhMmYKLW8wQktRIzU+bkcnQ1BpallMSj1ROC5UZmktY15nXEY9LCQwPlxrXVVKal5nJTY/LkIpKC5DTV86Xz8rMmU0OWtgCi07X1NrPzlOKSktKCdYNU0uMl0mU1MwJzRRO006U2Y4UGEvYitpci4lVio3RktlKEgnPmRZK0dIOSUoU0svT0dXXQotMC8kITQnWmkvTEU/cydLOXAmdUNsRUg7XCtZLTxtYDoiYUMxYFpZdTpcJEE+czNQXjFJNyRNKDZ1PkBKJjxkRDoKLUxLJlhVJ2lJbWQuOCUqLF1NMTkmO2YrTVljNyo7ZG1EZFZeRlpgMUVGXWVaRDtEImpFPFJgUkY2Y1RtN0JnbmtfCi1DYiExb1sjQGpSYDBMamQmKDsqRzIlLyhMS2ZwO1EmWiVvImU7dWdmNF4vSCFYU3VTUVY2c0UwUSdLJGQ+U1hXUAotPllCOGxdM2E7LnJSREpcPUxLZ2hqI0dDTU5hbzJcPzVVKGU0JCJZSlxNVHVcJEAsWlEuY24zW1dbbTNsT0trNmQKLVU9TzdRJFtMPElTbkNDUEoiVUk4cHEqODZcaSxWRkJmXTpdVkAwc05TaD1aZU9MTGBtKTZSYkNBbSdSZ1EvdXMhCi1UcCckMmxWPyFrJUEjWUFqJmprY1tWYFdXMVVMWVpxZDVJPlIzb2NyalVaZ1BRInRZX1peQyVSVlE2M09IMSVCIgotQnRSTGBgYj9EXks+Vj5sK0xUI24qISExVyRHNTVvWUsna19QSGg/XS5wb1hONCpXOWFvY1I9M1w6YVtJcTc8VDwKLV47SVdJZ3RzcDJvIjpTPlNhbE9dKXJQcyU9Ky1fOFJGYGgvbyktZm1jRztYQzZFOVpuaz1gMShyRHFhYG90PltgCi1mVkRmRTpFPSIua0FlOl0+VVBJXnBrJVtfcDNpUTdkSCM3UTxyTS9EcVpjVFMsW1FZR2w+OFYwZjU2UFFcQG8xIQotcElQYk1BP09HVV02PSw/PlNGX29jYC1XUzJdRFNNMVwjNUtjKW5gWmgjNXQ4cSc3V1tNYSxjUG9xMkMmSjUpYT4KLSZRZkdQVEw0IVAvYWApRGY/NDlSNDp1aCI7QjdVSC9GT18hPUUiZCZeLSdsY28/OzhkMEZhRF4zblItXCEsUEdnCi0hK21aSzBNPC1pWVY6dElBL3JSdVwuMjRAVDFPVDMwaCprJykuUEh1JGg6KU8iclEjNDZPNzFeJl0/SEYzOVY2VAotWyEpcktqdWlwKXEmX3N0SXVrOUk1dERSOytfM0ViT1YwITA4QF1CVmpFLSQ4WjFePU5XOihiZVVpX1ZPYF0kQj4KLWVKYW0oQXJQLHQwcjJpUkJPXj01TV9TZm83Oy9TNWllNE0kJyIwNV1cPnEpZ2AyQU41SUNyI2U2a3EhTkFXNz1FCi0wP0xgVy09X15xTmNKL144Tj87ZUEpcl0+JmNQNm8zTjRsSk42biEvVTFPVVRQU3A+YEFYTDtvQEttXicoWmJNLwotUV9AO1QyaTE2XS0qVChoSjxqPT1SOi82REQiRjVTXjBGK2UnYzdQVGwnTEBAQCouKkIzK2kqRVJyYDFXYVNEbCgKLUJRVCEmRV1TJF1cW3NmYCUtKmthU2tyMU1mJT1WT1ZrKkchSC1eMjcvPnBfI1Q1czIjYkszMTxCSDFmVFBUIigvCi1NNCRdL04uUmJxayVbaD8iW3FLYSdxI2JCQFNyR0Y1XFQuQFBib3BZZE1aYWlrcDAtJWRhRVA6TUglXXNBN1YmIQotXiw0Mj5OQnVdLCQoOTw2NjtzbyssQVMhQ1ZwXD41OFU/KDtsNkFUbmRlOF4sQy1OTUxBPzJdWzUndGZ0PSZlOUUKLTxGaUxEMGlJLmYzR1JXQ1gzdCVROEssbzNYIkJCb1tQVGhsUjQwbmlbKVNqUyRCN1hyalxkSTs4dEZEYU9cNy5nCi1EU1lxQ1svZE1fPi5KVGI2Nl02RWJzI1QyZmIsNkBbQzZWPWsxcDcyaik4ZihGMTwiaDNhPWImKkghYVQlYkUmaAotPmU/Lj5tV0hqZShJbVhwITpiMkxbRmAjLD4zWGtUXC9rIUtoW1w2Wmo0bTphRSxILSFcKDohJz5DMTk0QidkSE0KLW1KLy82bCNDSio/KVkuOG1hR05uNGFqRzRYWVtFJVhrUDlgRCdWUjpbYiVQN2hNWmArWHAqbXJHRGJFZSRebDNYCi1bRkRmSkInXEUnM0pCKGwmZTtFOjNhZ24vSyouLEAlSlYmKGhXXjtRKUFWZzU9NDElKWkpdE8wcCVnOVhnRFhIJQotKklzUSwiSEQlUDZmUDFFTTZTQk9gIypnXkBFXkJaWj5iJzFRczFrQVMzX3Q5LTc2XEtXdG45Mz5nUkpCJC0jaGQKLSlJbVQmPiZpKmxhK1ovZzFAMFEyRVlPOExRbidDaG0jY3QsUiEtVjJHOjJATm82MyIpPFBmVlwjJWE7OlFLLFxiCi1CR2wzZ0FmLyhHbillMShIKE9uRlAlQyo4REpiQiReLV8hJWVYWihkRmhDbDc1MkVtR0wzNE5jY2hMLWBALWsuTQotWklGXURubyI2MV1CM2FFWG8/UDU1UjZPKD1YaWBdUTN0MzIwXjU3XFZfLWJzXDYpKkRqWlFDXVs0VShiW21zRVMKLS9RWzUqRDxmW0IrJz9QTUIkOWtITm4zc1o+YUNJIVxUXW4jMjVZS3NcTi5QTzZcYidkKGtWKzBeJDMzdHBAbUdGCi1wY3JjMnBgT2VTcnQnUF9KVCpkUytaTUNjJkEwQkVFNHVyLlw5QUpDKihQaio0dDRIcVlfTSwsQTQjZDcmJkM2cAotS0FaUytJVypMJl4sTjRmXS9ZRmZEW0AoOj5hYmFOVlJDYTtESkBAPjYlN1dcJFssM1xoOSpXaW8iLG02SD8qPFsKLWFTNFI4aHFXXjVFUiMkNVw3WldDKkNtKUsvdEtsVUAiZGNMJiM5SVBOJCgvKEljcylkUGk0NkIqJyVpVGpsZCk+Ci1RZ1NNMkhacUQhSSx0JW5cTU1RVz9VMjQkTFRnQy1cKDVkPz02ZEZLV1ZBW2FgQjRZO2xNXlUxb3RKJmlxW1syTAotPydobj5UJGh1Xz1eMTosXToqcEYxWWUlOEZIL049R2k6NztkKEExKW4lTDxmR15nK2VJO2FvJEk1QWlfJVsjZHQKLS1dYmtaWC5PWXNqNWonXFFRblwsYyMtbEo3UWc1Lm9GXSFnRFo5MEtdQFRJPlNLbGhhXkI8Zjlbbzt1QS1jTD5VCi1OVDdTZE9MWTleNnVxR3NiUkFcTlFDZV00Yj4kRHBbcCtPQVo2UVtRZ1QwckEwQEFpRjpTcklMWVEmalptKEpWTQotXXJVUzddQzNHVlo5P3Q0XTBsLyQ7dElWMm9YVW4uXm0jLmJMYGVzaSRdaDwuSykubT8rP2AhXiYlXyhjS0w/RWcKLStAWCsnJzgxSEFfLCpXKUtHTUNDOEFUcnJLVG1AalRMbHUsKWhiIixfOjBMQWFAYTtAKzJTLidfQSIqcVptKkBECi0sSmxobjY2JTtnP3FTOHItXFM5N183VVtQVV9wcSwoSTwtWF8sTSlhNDsncSlONFM/ZF8jImBpOUZWTjYkYyc6KQotXm1tOiJBLiQ0PitAKyhpXnVHWWUnRyFKO0wta01FX1cyQHNlLmZkPCg7ZEVxNkRQTDlQVClyQipeWFsyX0JeREYKLUEwXSNsOCZSTTFgJGUzcShlSSskOEFrM242Zy4kLWZMPF4hNnBoJ082YDwuOCwiK2RQcUVvS002Vz5zNEEyY2tECi0zMlJCTVk7QitvXTduMyQ6O2twXWA0U15cUzRMS0c4JlNAcmBYa2Q0IkBVNiQqNW5APmA0U2ReZ2VQZmM6cTdRQwotYEA9Nm8zO0xOZTxRL0srYEgyTSFVXl1iVWk1TUlkNW5sSCNgJzIvaTVmTWVOYF0tUlsvMS9AVjdgVDxsN3BLVEMKLSorZCVjQiNFRDpcN0A7MlhEK0llQzYrVHBNcHVSXEJZP2kuPT0hNk9Yb3JeUyotJmpmRWwtPUlfUitGJVBdYiQqCi0tLShDJjhBJCtkUzNrNHA1ZlI9dWBjTz5fSzc2OlIjPUJ0XV9gVGx0YC5BISVEODxOMyw/MEAhUzsmdWBMSSFJUwotYFFVUWNnZC9wR0EnIUZLOEJgQCUkbTxYWC43akBlOElSMUIqJXNsNklFPVBBOFAzRF8+Vm8jZyNscz1uYjBcXCUKLUVhaCpZMyE4NkdiN2ZoZkE/c0I4OSM9K245MnI8UGpMMzZOOlduRiRLX1NBOlVxMjZvXT9AdWViTEY0WixlaElvCi1eV1loPWJTN247LGY3Yko7YlRUdGJaKVIqQUIpaThgXzg1MWJWWysvVE1lRzxeISJALDk8Pl9KUGRubllbbkJ1NgotX0chU0YxcF0wY1l0R2U3VkJJO3I+Y2dfQmY/MyVuOShUQDU3J09pW2RZKS88NjpCMkQ8NnJhKGNIQ21jYkc8QSoKLV1aXExKYjAxIjE6L28mJ0ktL15ya0tbPm86LjJrQjBOJCs8OywuWyE6Jm4pN240bF45OWhjVG5jK2xlQzRQSiVYCi06IUkoXTltbFZhbStAQ15mdCRiL0tCMWUzL0RXV1RuJzo6ZWNIUFYiWFFkcSNrZmY6U2NrUVQqOWBSa0dzJURfRAotY0ZpTWhoIVdKY25BOyFrY1JkUkEzXUJpKlhOdEcwJGo8YC9nb28lZ3FGYHE6Yj1wYmdiaHU6UGlfU3FFOmMtJ2QKLSxvNGRLKCFKNjQ5WE5oVj5pQUxxaGJcXEc5ZEpMalNDRy8lZVdKcURkKi9XPWd0Pk5qZy5lW1w5Ll1zLDIjTCk/Ci1yRCIoKzosTm5kS1l1MlsvJ05cc2JTOyFsPDhwX2JpKSJPUDprVGBgUEQya3UkRFZHR0x1ZmYuK0tXckwyYzAvbQotXDdHLVhBMFRIRGNkSUtrZFpocidWKERqJi81dWNTZStHPWpWKFldUjBOI2VEOzpQLDVqWUtbaSs0IUB1Y1cpbCEKLUQnSTtTLEw7PzAzKmVSQiddJS5fLWRhZSJkNyNNMzxCakZsNWgjNCNlME41YlhOZi8qY2RCcl1kRzMwdG0nK3IqCi0ySCpHM2NXWVJNZzB1Yz1YK1ZgbEtbIXJWLGpgYC88N1hLS0trNGlIP3J0cCVCOCklUWVyV3U7USJubVM9azpRLgotS3ImWTtpKitfKURxPi8yImdyQCUtJCVUcEY0VmdFZjJadEZBVGxbSkdMb2k6PS1cJmJbO2FhJT4xVmVRPG0+STMKLVs7L2c2QmldWHBlbiZHbzlrO0kpbSsqSWw3KlQqbyFiKUppR2goYEM8ViRNdCJedE0oOVwpJjtmSV5XOSpHKms0Ci1CMzUlRmZCbT4paC8kMDtEOmNJP2Y7NGJhOW1CZmBRZS40Xz1fM2lMImQ9WTpQKGZIaEtwQGFSS29ecTlOZU0mKAotS2hbM0Ynb1JhaUt0PXNQVXRwZ1lKbFVAZDoiQi1BZlg2Q2JiZWROdVROVXJaPWswJEZbQDEucFI5PSpnPjg7QToKLSJkUmc3RGNzSzw9azAqSG9xNUonVS5qQzw+IW8vajtFJWNqVlA6MmpVTk5OSEFaPTYzaURyKyRnO1QtLGVXSlNJCi1QTTgnI2dGW19VKlFIXTpgUmdbIWdKKmpjPycqZlhOblxydWZMOl9RUnVVXlEyVllwWD5MR0ZhaixSQDpARzdnIQotZzpgTyNjJmdaOFAxbzwwZ2tDI1lGaVJkWUZCaylwZ0pzQmpBV1BTZ05TQix0Z1FYcVRAZ1E3VlNRaXJdPm9HViwKLS50Y1lATipIT0c+U1lncC0uY0JaZk5ea3U/K2s7YlhpQjVSRidbJTxoOypQOW09PSRrSyYtcEk/NXRNJi5lLWgpCi1TPlYvXGhqKyMrR1dhbGtxbnFWbWhwcVtZa1l0cF5zNElqLiJrRV80K0M8dGEiLDchX2kpIWlpQWQzdTIjTjEsQAotTCpkNWJUT1FpZiRcZ1BKaTZZdWxqcHA+QyYpY1leQDI5STYtNSw4cSdCKUNwaURwXVAoKGFudCYpYyJKQChtJCwKLVZAJF5rI1toTlNpKVUiaDRwMF5pIWB1ZGtodTNUNGpvKiphcXFucl5oanUuUkFidENPNFEiRi5oc01ZQTdLRCRNCi0rNWUxXWkmMlY2OilyMigpclEvYGkxOmhFW01bckooWlJiamlGWHQtQWlBW10xdVdtPiJ1XDRAL2htUFcwRXJSTwotInI4ZnEidF4jSC8tWFRJZkRbNic3T1xLLixOPS51QFYvJ2dGc0xPVywzMSgkPHNDcCJwLSohOzRDYmZcQSFUKV8KLUZ1TnQqOlpWNEVAMFNgJVZFODstNF8qVj1BLVA+I1NqSHNHNnQvVlNBNnBTQ0Q+WmBPNlkpMStpImRrU1h0RjghCi0wUCZIYUFEVTBrcC8jP1pBKVRtZEAubUsuLTwiQ1k8Kz11aUBgREdMUTwuT109Q09qcUFZKDY7KCs4KnI+TjFyUgotZXQtMStyYStSPz9mQV8saUxYSz88XStKWUdOTUE8aTkiV1tTbkRLR0JPVGIzQEsoIkJOYmApVkNnWFZSQiVTIV8KLVhudVhXcmF1c1tCLW1dPmVrOUtHOU9laTRAbEFVRkcnSV0vOyE0LWpAQVliajR0Z0pCL1MvNCxpWUYiVEhuQXQoCi1KUj1OZzpRUzw4QXNTLW9RZyc1aSJrR2hGMFA5UlhSdGNaZmwtTy1Zays3PSlUQlpEbEMpM0x0XjdzbU5VWnNPTAotQzAlMGNjREtsTVZzOSM4bD5VVFRWUS9waVg2Ul4rbElOKiZrLSIhSFdHO15CbDxePVA3XkQ7M1UkPFxsQydMOW8KLW1bXChDUypAWCNBKEkmXkw2dVttUUh0W0JCaU5nUF42V1E7UWcnZylANG8nKFteVHRyW1Y9bTNDJllKUyg6LmQvCi1aMEdBb20kPVNicDwpYTFiTnVbWm0qS1M4SjhCJUZVaGpGU0NmImtfNVxZJGdCUFxmJ2xdczI+VlNESFw6JF4qPAotJjcxWGZtXz1JIV51RydWbG1DM0swJSclcmNnIV4+bSwja05gbz9ERWlwSWwwRCFwNHIyVUxoNGRkOTZKbTlVZSIKLURTIzRhZl40ZGlENU9yNFtiUDw6aC5xYyVDZSE7dUInKmhcaUdNRHBERWRhXkIhI3VIWVxtZT1ES2EhOkw7Um5wCi0nJ2wsU0Q3OGNUWTNfMlptSEpmL21lLWtSIytUS2ZoWCI7I21sJ2ZWSWBjU0kjT2NSOGxBa1otQikxYW5xV2k+JQotaT9uS15gcjU1a2x1KCxMQ1xJaj8jL09ecGVGKzBdRF5NaTAwUGcvaiQjNEFhRUwsWVRMOFhPPGksSC00bHBnNCoKLS1MJ0grbEtibmluKihmUS0nNydpZD4kTyhua2ExWSM6QiJcRVVubDVMRygrSVRRQlw1LnUtVkdvJERMTGs6Vk5rCi0wQ29FJm8pTnEpLVNrOVAxXDMjPEYmdDZqQi9dQCoydE1lYW85VksvVmBPRlExaXBcbm8rc1JccyI8bTIvVFRHbgotbyJRWXBWXlYrcy1aWERXbmxGL3MiZCQ9bVA0Q0xBbmpjLGhCMSl0MDZaUnJLRWg+WDxbbTR1WzVCPnBORjVLK1EKLStFZDpiO3RXWFtvaUcvYkRjNjJROzAqT00jPlwsIzduczpSOWE8PUYjOVFTRCM+LDNYN1VaNmRGRi9DV05YcDYoCi03PFJkIUZpUl4vVmNlLnQwX0tXUEZfPkZeVmVZbStCXytgLG8qOEVAVmQiO2E/JDU9O0ZwOEojKExfc2pAYzZdYgotbm0+ciJhKD1vK0IoWkNHRXJUcnM1QVBKUEhoWVE8R0dkNkBPRUdhMDpObEosRzZeY2IoPChCNEora2FHcEk1WDoKLT0hYCcnNlsqYD9HREFELG1zWGUnSS8oYUBvZ2FwXS1bdGdpNV4zZitHVFQ9dTAiI3BlQnQ+RjtKLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTYzNiAwIG9iagotPDwgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9OYW1lIC9JbTExIC9XaWR0aCAzMDAgL0hlaWdodCAzMDAgCi0vQml0c1BlckNvbXBvbmVudCA4IC9Db2xvclNwYWNlIDE2MzMgMCBSIC9MZW5ndGggMTYzNTMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLGddZzMkXTdLI0Q+RVA6cTEkbyo9bXJvQFNvK1w8XDUsSDdVbzwqakU8Wy5PQFduWzNAJ25iLV43NTc7UnA+SAotPnFfUj1BbENeY2VubUA5OjFtTTlqUyIhZFRNVDwkM1tHUSQ4IzAkczw0WlghU1BRMWBDL208azxpb0gpPGJrXkgKLWpgXD1FWVpQXkI0IWczO0I9KGlaPGtEcU9oL0JmLkRIQW9yZidSW28/PmlvV2puQVkmXmdNK2A0PTFqUkxXIVlBCi09TS82KSpLUzlQRWBrTiU9IlRjX0FvaCtmaycmdFxjdElOKTRYUUxpVnBvSSg+Lm5PVz8qRG1zRyRALCxmNTgiUAotREtmPHVrNGE7PWksQ3BdKltfYmBhNWg4ZD5lWFNOS2VoZl9IPGleKTUlRSsvRydSQS1MTU9UW21TIUhWNSxYLUAKLWpSZE1AY3AoPThoPSgsWzFgbWc7ZkJxO2ZyVnA2Pms7dG0sXl5wbi9yNGwsWyUuXzEmNDtBJTEvM0ZkVF9AVlVcCi0jZjtcKSJVVyZtYlZdL2AmRFREWl1DPi9RJl1CYG5nQ2hJOzk4c05QOy9BRyQ3Ri8xQSk5LmY/RCZQa3NXaVs4VAotT2g/KV03dXJVUStNST1DTXVjSjFJInJ1XDEtQyU1NGdKPWNuXUIyTlZZIUpZXTxzLS5vJGJVVDY4SVdAMSFHaDQKLWJxbVRXSG0jJVQxSkhVYGM0Yy9xI3EqJnFqWkNkJWJqZF9BUEkxIUlja0huWjRzdEZFIltnWk5yPFNyamU0Z3JSCi1icXJYdHJfYUVGIz48TVticiY1RVBqTEQlY0w6KTI4bFFJYDRdQmxHOWhSSXE6REhIJGMuLE8iPWpuKz1oY0BEXwotSTtMZGtRMGhGU2RQJ11PclJfY1BJOkxgbC9DLlFJWU8uVDI9VmQhNEI/WlpOOV9RamxRKmtKYFFMMjpQYXNlQDkKLTZzSjdwYyNfXFciNEU/O0Y/UyNxaEE7L2FGXDxNYlJyVmg6YzFRP2dPIVdKK2g6TEtlSl9UZmNfTkEtMigoI11SCi1RMWIjLWhUakAoR0NaJ2AvVzhYK2M4Q1VBUi1tK3VqO0FGakdLdC1ILDQmY183UmBVKFI7UTtzakVGPTpQQDUqWgotaGhsImBjPzVdQFIzbFA0aHRXTFVRIlFPPE5NR08lb1xBcUhtXFdwKGtvLFNZVT9QXGdKWXAjKUlFZWJXUmRPPVkKLWJvMSVObW4xJU5VXVRwJjo9WmM+UnI3JmttTWgySlxhRmQvXExRcjpZL3ImLWc1YkY0bi9NckJfPGxUV1wlSD1CCi1lbmxaI1xqbShJbmYzXG9fY3BBOFkpQDRHQVtmIzo+amppJUpAcV9UYjwkIU0xRiRuTjU9KmltUy5BJiVvVDJRdAotYFV0NS1yUlVdYGNKLXQoKkstaUUzTzdhRlNiJkw1TlQ5Z1U6UjEmO1NvOjFfcUF0XW1jS0I9T0ktUkhvTytnUFgKLVM8cClAciNaSGduYkdBR0ZtRGtCPTBwaU9ePzBSdHIxQiYzcT48SDhGN2Aja08rP0E+RlsqSXU/X2ReUTpedUdMCi1BbWtUTjFcdU48bmIwYFxoWTNaZyZWPGYxIiNCV19SWlRENEpXOTNvMVJJJidpPDE8TDpmV2lKRktHPXBLQShtVgotSCZvRV8hV2g4NTBuck5NKUZJVkQlNyE8QUxKW0NbNmVIZXNARCJtXjslKlFCKD9FTnAxMG9TOi01QWhmKjYySy8KLW9TQVcpLktGXkMoI20ubU1RcSVBYCtKJEIoJlFUQmo+JidtVzFNJFJNdDtqaFhyOWByaCUtOGtFSj4nTlw0LVdzCi1RUVQtNE4zOl9mWisvNltVUWZiWG5kWzZCKHRUY0lJIS9IOWlbJ1xCcDVlJkwqZm9kMDZVblRtK1hGLW9PVVxsagotLkc1UkNAVW5iXWQnPzUlKGdlViFYSSMjaFUrNDlvRzBGSS9AUlhmWzgjLDtuJ0k+UzZRJyJnQTdlcTZCamA+NyUKLVghVXNoPU5HTEA+KnQjTGpsXTNMPCEkWmJkQCshL0MvJWo1MjxNajFSbz0sK2JMbUJzaV1PR0QwKUIoSkJwLD1UCi0+QiJtJTNfUmA+aClqZVFuWEVJJzloa3UvMzBwJzBOLG0/VzhpYC5jQjJkLUlPcU4lOj1xKmRbYDpTdCs2PyczXwotTSpAYytIQ3FJMTlbOHNdM29dNTZUYk1DKTpnK1NhQj0pZlIkPTdhS2FqISZKNzAnKFMkQjM0KjQlbmdsJCdlRzsKLWs+OWBtVnIoMlxQVmV0aDpcZXVxQW8wLGpbKVNoPj1oQEFqWFlsXkIzaDAlUk5DZi1bMmNGT0RbUUxMRClsSmMpCi1YJlgmPzxTRyxlXmcxQk08Sz1AYz4wVTQ5Nzs4bChMOUsxXmgpcUhTNlxLPW1ARG8wZyxILiVmV2NWQ048RzcoZQotLV1OI0o8SGJlJj43RyQtMjFyLyEuXyVwOWpTPFNmLEhmUVxNLFZSaFZRLUQsWUwqUWk6Q0B0SGxwW1ZUPGVlclEKLS5pVDZUSGNWUlNlS0BaIi5vXUJSSF9qYThqT0pMXTxjJ0YqWyEobG88ZFNtbEQqMW4tMC04WnMucEg8IzNRUzQkCi1AX01oSDJcIy0/biRodD1oVkREOkZSJlA4TFxEOFtmYyQ4PG1RSGY0Ry81Kk8uWHApaEhvQVBsXSdOTmxYYUJGTQotbUFsUmczKCw3WWc2aSs9N2kmVy49LVI/Q1VJQ1dbWWcrPDdXdSJzVEFkUTpVMCpZZ1cpaFtYNyZdLlhHJD1SMGsKLUwlKikiXz4jciFAKjcpMWtGPVloUWVmJStQcjMqdDxRaCxHMlk9dCVIJUUldCNmRjB1JTpgWFtOVWIiJGBkI2Y/Ci1mVzdGTW5LIV8rKDluZSFxdUluRCc/SDBDXjIyX1JlVzAuZTNRYksjLlVmdWBLNXA6MmE3OXVgQFJlYiVZNklGWwotPGFRVHI0LlVvXFEzR0M/YSFddHIpM284dEVQaVsrJXAjYnQySVojPls5JVtEanI9JSFvLUhUNXA8dDxxOVVSZG8KLUZfVC1nMDAqXyUqTDQhNiUqTFB1NENUXk9RXm5VU2NmWnFyQklqNT1aIzQ9KCk3KWJHJi9oODk3Vz9sMjkwNllOCi0vISlVJTZIJEhMKTw+UyNgUzU5J0xOcFw9PGE9STg1Xid1cj43WStsckplKVU3YGo9ZjA0VFBCU1s4JEVkRnFmIwotQjVHaHBbSiEpLmdIW2gvazNDLTVGYWRTTTE7L1YnWF9YPG1yalFAams8aiR0Zjw4czpeVl8iL0BWcStsWlNuXVYKLWhjaTxsbihrPWAyQVksa3FnUF4wXDpHKF8sOFQoVixCTm86TzFSMkNMUlJtXz9ZK1k6XmMhaEVocVJVW0QqQmhsCi1cQWxBQz1bUmRKNGk+K3BRTy4tNjAzYCRvZiVXKDMzbktYTEdrI1k2YUVbXl9qMU9pMEYuTV4+RzMzbChGZCRjQwotL1JjZT4wKyxZbExEOEpgZUFaWmMxIjlIJ3BKc0g9TCYpJDxoVkBeb0ZmaHBxMz9DOUNbO1VadExoWSJeLVM0NWgKLTVGPz9GQVw3Yzk8cCY0SlM5PTUkZi9fYDNnPi5DVEVfX0otR3M+cCIqQEktRV1aJE5VUmkxVixcZkFzaS5FdXNICi0nJi1YSk5XQzRSam8hL2IhYV1makgvQ2RKcjxLInQ1WW9nUz9VYTVYOCJmSDtYOWVAQG4kXUhsPVJaMFZCa08kYAotVCleMmQzQE5lKDJSbWJGVk1DNiM/OlA6czUuQTkpQjo4RVcwQF1pKjolTFEoV3FlaGNmNXBuSWx1VDo9a2QqZTYKLUdXXmAiclJLJVtoWSI6J3JTOTxFJ2s1Img6Wkg7US8raWJrZEpkSG5rQl1xZXJWcVk9cVJxQ0VqMCxiaTpVWl0mCi1dJzBhPkBhRHArXl1hUmlkZXFESXI9NWsrOV0jPjdsTTBjPXJ1YE5ibilqVkItTmFuQCFtZ1NvbXBRMT4oQDVlQwotUlpJYS9EZkdkQy9GYiZAblNUUUtsKFwsK19ZbkYhZlBgMjYmK11tYVVCPT43cUBHZEhEZE5JRiw1K2c+bi4wOV4KLWNiLmhJXyEtbydyLD5qNmM9Nj1DVlpvQyYjKjRaRERxdFgvaTxRUVMjRVpJZzBSaG5VSyVQIkgiRS5vPU01TEw/Ci1ALjk0dSQlbj08Qzh1UC1JJSQnRnBsJD9NOll0bkM0VGVNOyFnKj9rbkdzMDkuaEhcLCY/dVpVVElnYTEnYlBGJwotJls8PmduSmAmMCxuVFNLJnRnWmFPNlo/Kj1RPksxI11LXkQwTUk4KDBOMkpWJUxlTUZuRS0wWWxHOmheZk1NLzEKLSVtTF48U0onPFAmb2hiIkU/USxRRlZmJTkoPT9oLSZTMV8rM3RsSyonPEU+X01UJDhYR25hZ0knVyFZcy1dbyxtCi1WJW1lWnJKY1hLbWs1RzJKY11xQSYrT3VaRUhgQldgPVl0XiZsSDdPZEMwM3I0VycxTyhzTzI+OSQ4KUNHOFopagotKTkiQk0mUSViLFRjL25kJ3MzKi0mKiEyY2RpQDlwKjNnIm9FWTAqYyUxcHFvKkFLRERFQis7JU50XkZmKl86RHAKLUtlWFhmMGNwWFspRy1cR09mWzJVITxWY2IpZmM2LkU9aj9MPD4lJmEmOTheL0VaWGctLDdLWiYqWF4iNWFFJlIwCi0wLWBuPSxDZzRKZEohLEM9VU9eZyRXMT1YWiVGPW09b3UhMi5DJHVERWFLWT1AZTE0RWklZiZgMSNpXXQ3K09pVAotJ1RgbDkvNlxMQmI5U2ZJZytRTUg7LmdOSSVoWD1GL1tGMWFvJUYwWWpYdFQ8L2pNM0ZvJ25AZ29lMUBdMD0oTzAKLW8pVUs3bFMpXiQvZVxXcG5sWk8vL0lUc10tO0M2VV5gK2RRVlUlYm1AakoqKyUrJ19hYDJvLUQrN2RZZTs/WyEoCi0vTTFyWTBfNDBWUDNYZVg8QWVpIzIwMlZJUD4qWSMnK2c/RCcvQSluYyhRbSssYXFYW0dnZTM4ZGtLLklBTVwpQQotMVM+YEE7VTZkJjkvTFZ0JltQdCFkcEZfSz48NmkpM2NoJks7a0dZSkIta3FVMG9uPT0nLUFEbCsjZG8vMmtVVT0KLWpHdThKTmVXYVJYQWIqPScwdVBcNzRoSC0vWCpNJWklWzohb2ZtS281ODFAWCZLKTRGXS9KK1cuWy5hc04kQ0hBCi1UZmdmTjhDUSg1ZShHNHAzP1FfMjFcLVNgMT1JI0ZsU1BzOjNxTi83b0tQUmhaVERQRjJRclokRHRRQmRYWyteWwotUlpuWSEnLyFjLV9hNzpbNkJnQHBvQXI9byFBb29SNVArRDUnUy88UDc2MSEzNyskXU1vNU5DU0ZbYFZgZWdIU0cKLVVqY2YxLDh0VUJfRy06VTAwO0BbJFNeJDkwNDZZMW9ZOlFOYEN0QnE5TChVM29bLUFpYzMoSCw5c2lfTm9caU5bCi00XGcrYDo6MENgUGlHT3JvRTJKTjpTOV5BWy9eO05fK1lMOTBUdXIyOyNzKWMsMiNYOlhPTEwwRkopLlJVa1d1KgotN11baCxvQV1AYFsxSlM1MFFiISk/bzpiO2I+Nlg8Ok5dQiw8OjxnRGxXIU9bPDBZajI8NjgpPjIsTFVhOyI+SjgKLTImL3VJLHVOMFxML2ZHbEwrdTtANT4mPTlmZWZyKVByQjdzNCNKZWQ8YE5SJUZeN11WPV1HJm8+K2UjXkZcUSRyCi1jV1RuWjxgTmlkWztAV3VFQW04Pz0mYDxvUEtRaTxANW8hUztOWHNdTiQyKzZFRG9nbzk2M20tZVhLTVFcLSRsXAotIi1wLGVGZmVZRHMlY1lsP1pqJTg8PUxQcSZKK1BUZmVqXjc4ODIvcFM3Oy9GLW88O1JYY1pgWWtzb18mPWBXYioKLW9gbmlIcWQ9Tzs/bzprblBpSC9aXFI+IiJANT9fS0U7YTRJT15bcTE2JDpdYUY0NEYkTEwnVSw/OFteQCs9MS81Ci0ucUAmKT9UKDhVUTpHTCNoZGs3KkJpTnUkPE0qaWNuUl4vKUFjTzhsOW9pbkRhJjJNWD8kOjl1US8sJnVIR1Q6OQotKV9YP2Y8ZiZIW05EKTZtPj83OnAoN0ByNmhiQkUxPFloTWM8R1EjQ0RjJkM1byhDNUQnbVZhKERaSV9HRDI8TT0KLWJVRC4/NTgoO24vZiRgSCdgQ2NAbUs8MjRFaEdePXBHJF9KL2QrKm5GMTQ7Uko0NFE9NzxFYEZGTE90ZHBKSCZVCi03PEEzKiI/LzJcaSdEQ20ucXVHYTpVXVpuMUNYciQuZUVCNV9AIXIyVlYiTU0lIzovXF9LUWAybkgzZDpoZjg7JwotRV0wN1pmNEF1aEA8NUxTRjgmW1xwVF0nKDk3IicxSD9WL2srP3QlNmgrdVhARzswdFpEYHI8RysqWnBvR1csdEgKLUc3TFtfJyVvMltHcitpNUcxViNIcWY1YzNIOGlOWShWK1VyWz1FSy5GU0dyWlFpRCsjXzBmNTpJJEh1TkdLZ19ECi1kLj1gciFPcF46R01HYWBMNTB1MjklVzxRJkhSL1RoMEZOLkguTHFMUWJlNHE2JUlsXEpASm09Zk5FbzEoSmBLPQotSl5rIVcnJmUlN2ErQlRzX0tbXGc9PkVHIjJNWUJyQGgiS0pcM2tgPzd0M0trSXM3TVtcNVJyPD1iWlhNSFdYZC8KLTMrbDY4Q0pAbVJMSCFQN0RgTkVaSVlUbjc4LC5nbzMvX0ZvT2JqWUxLTXBRWFFxXjthLVwnZEZKRz8xKnBKbStGCi1zLC9lc0khOUZZbyhAU2gnblVcSkxURGVcP2tKQCMqKWZAbFJaJjA8RGErZyklNTJpKTopS2FJPSVXVUAyM1ZFPgotUElXZFlcTnVIPzc/ZGRIUGRzTVFxKzplYzxMJWk0USs6MWNxLWZSTEEtRF4qUUNwczpII05uczRkNFBYUEJUWkMKLShWcmldIUpfRnQmRCkwWzlIJ0BUUFo5Xl5SWCQhIm1sUVw2KkE6UEc6Ji1HYDNBWyJwOCFlS19RVDdSJWZobiZcCi1gTE00cVEuYSE8cTdXInFcLS81LCJGNUs+cTFERTtMUUZGZSZAbWhTM0tmaFZRO25ma1JUWjg4cTRoSDFWXzonMgotOiJjXmspNyxbP2Y6PW9oU0c+bUxcZm1lLkBBMkBJVHBcMztILyJuYTI0Y1lcU29YRi0wYVhIPU9lNCkhVDRMZmoKLVdNPypcZig3UmtJaThWZVxMaWkwMG0maTxUbUE7Yko1KWJBRmYvRF9VPWpbWVJQVCZSSlUwPjE5WSQhcFxXKSJ0Ci1PTVI/TEdyXzc7Mz81bCcrZjFWMlY6K24sWytoOEowOzFCZFMhbmMnKUwmOENiR1ZwJ1VEXko3PTIxXSVqZiRrcwotUig7VWA9bi9KWm9yNlg/V1lxQS09ZVBBVD5EW1o1OVVdSTc9KC8udDI1XShGWDtdJ15xLjZYcik2RE08WFZXXmUKLVBoVnRdblk/YSVVZVFvR001LWxjNEdKYTlnSjoqSG8qOzwxZmxkJF5ZYUlxRl5lcUwkPCE+P2RbQGdPLXFkOVNTCi1BW1l1TFtfJENicWU/O0hGZ2xeQ1wlQCd0cWdsNz1LRVx1LVw9ZCE1SFk5YytAQzxeT1s5SFhyZmxOXjIqIUAxPAotOVRvXG1tbSxXImIoYlVLWlxsbDJmY3EnXzZgKFJUWyRPQGtmZ0UuZFMtOWsiW0A8R2hxaVM8a05PS2peXjpXZEgKLXFnSDIqRG5bPnFeIzJvKFRNck8zOzdbV2JcbHNmLz5IOkdFWUdqMDxdMVUyV0tpLEopYTFOPWkmQSx1ZGdXUUk8Ci04JWZkK11qJSZDKXVbT0Bvc1dXRmA0U2dTKihSSExxN2tcY15nJTIxSGp0MUE/Ym5TPF8wWSJUWGJqWidCPWsqVAotWmBUKGpxbygyIjZqKCdHX2c5Il8qJ0xdVmdWYzI2YD84PSVyMVY3UVNdLHM1YE9qYUBxOjF0KFZvRjZHYG5FY04KLXIjRGVjK0I4N2FYQlszSTQ+IldZYVxDUUtGQmdkLl1UXWBjNiwhMWJgQjlwQHFzaGdVajJJTUJgUyJKLDRMTiEhCi0xV3U8JVpGbiNvNDxNVWssS0lGMmE4PGQhMT9sbC1nTjVSOGM5J18kSS1KYmNtRVplNVw2U147KjtSLjhyS1dvUwotUVtIOUVIYFxwNFotX2xuYSUwYV5rXigqYTx0XEY6OlVlMElcW2UhXCFQYS5kXD1kLVpyST4oTUwiS2RBZlkqNEoKLTRkIkQ/QV9ETCJmdEVbVUlBLEBYVjpwP24jK19tTXJOWSo/WU0sUFhnNz1laGkrOlMpUE0iXU5mUjhQLSpKKGA2Ci1ILCg7J2BdJD42J2A2N14jNSlkWkxTZDtlLzEma281cV1pZkg5SDg3STxFNjpILlVtISJsN0dVPy0xYTRgUnU5SgotZyJqOiFyTHF0UC0vMVUsaVZqZUxeKHBvOiZkQkJlIm9caTRoOjk5MmZwMDgsRj9TU1c/L3UoI2tlXldsQSk2WGsKLTRuWmxPbC8vc11odF1GbjQuNSNSRVRAJFtqKmlmRHJMKVpZXUFlOXEjK2dQJ1NxNVJEMVpOcEdqOE1FWzUiQ20wCi04ZCZIcjlnMk07Q2E4Jj00Nj5mUGp1ams/SVZFaTpEM01cUltEJGRscmQhSCRJR29YPCMlIUFFU3I7VFdocUVQNgotbCRhPDFeJ2ozJk9tNHIubEAsZC4qajUpdGxBKHF1TFJodUk0X2BmPGVealdEZi9bJ2VJLV4vQCRnNTU7a1BnXDUKLUlCMmQhW0lZRTZtXzBNJVNlKCk/RVNZdXJoN1dvNElmRStBIXFSSzxMT1RZZEloKSZsJ0JYY1xocW9DMishOUVKCi0sSVpJWGd0cFo8P0pHKEMsUCw0anBnNjI+P1U8Syk3REY6P29ZKm9oclNNb2FqNC4hO2xPNHMmOjBxZDBdXC0rPQotMFUySFdxOkNuZHJPOldGaXVoayIqTzVuLGVicmxvclAuK20rNiEyQUY4Z1tScmtJUyM/aCsuXHAmQk82I0NsWFYKLUBLOEtANWlAX2llL2YyLktnSjlgZlE5OnEzL0wmQ25RPCRMMGM6bSFqK0I+YEh0Kz1eJHE5X2kwWGFoLSdoW1M+Ci1IJCRcajBwcjpvUD5MPnNFIz4tQF9aO2RpciNcNHUhaVY+Wy9LVSRHVVg8Yl4uTVZsMzRJc2JGJzNWRVpBTTlDbgotLSdGWmlSUz4jaDgpcy1cakNVMWBNYVpRRSRaUDVFRUo7NUhRV29hMyVyWzguLCQoWUVVK3A4PmZkIyZzJT4lNVoKLVBaSy9SV0hEWls8Z20jOG9kU0VYSTg2SGEuJFVoJihIO2NIIjdsT1VZW10oJGFUc1gnOVE2VUAuYERkOCFyT2FtCi0jVyc6KzBFWitbaFk5KEQ2Z2toPFk5IXFmXFQkTl8qV0dlV1xfSExwSFFAUkU9L2pbNUZGInIqLm1wKVtsMUkqTgotRFNLXGZnP25Wcl4kYm9RYl9HXGs0SDtxWyhcL1I7WU1CVSNVciw2UDtsbiMkJSRTJ0E0LGhZJG4jNmcqMiJAbHQKLS5qWF9rY1YidUZZZzcoZnBUTW8kalNVL3NaXT5aa08tQkBINUtia2BZczpxUiNkJEE3WmswMyY4b3RwVFpqYyE1Ci1iV0xpWmJmRHBVQSg4RltOJEksbjRxJEVEJnRvbVVtM1tUYWU1MigtJVo6VldZbiFmT2xgcSNELi4rPk5sVCNyYAotaSo9U2IhXSpnLCRWZHNLO1VtTmcvRV0ldDFVUVQnTChpKTFncGFFbEUucygzJ2E+YCtablFucjsnR2xTN0wwXU4KLSpbJmxmUHBdLS88NCtBUTtgKiNgOi9iLGc1PWoyb0kyUExPMWVlRUg6aW1UbDVJW2M9cEg+cytdXkltVlA1P1tlCi06IipBITFlZVczJFhWJ01nc29aU1pcKT1fYz81WkU0T3NPZHFTNW8hJTkrQksnSjMkSTwwVVpXN29VMyQ0KWVGYAotJ3RtNERKZCZNJ2dCJHVLKm5sMiw9USVgUi0oR2ZRPGFDayRmJzkpaCRXcGVySmQnZCQib1dtUG85R01OS2YzZFYKLUJJdCFfJ21Fck08UkdrbVBiI2RQQGwxbk84UjBrOWVUUDZNSyknW0NRX2ooUGhcWF5cSVVDXzMiXnA4Uy9lImRmCi0oZXRsMjBVKSpcQyI2PU5aJjJiUWpXZmF1W2duLThqNDtkSUNMZnQ5Pi80LzNHIztGRzNFZz9lZlFoa2ZKXzUydQotLV5zITA/PyYsOlc2UUg7aVxuNG1ELjondE5PVm81N1s2a2NQdCU5c2wzZyhYPURGJi48PEtXaWMkLTsxM3BoLXAKLWE3cWY1UyQ/JWxiYCRCRTdiKElUUHBZPUlERVFLL1UkZTB0WiZtXC0pVkw6S3EpXT1Fbi5EOHJAY2MvSzQ5S2FpCi1PO2xuc1RWbF9gIidzTiVlViJhVkBiUzpDcUE0PFwhVz1odXEqJVc1ayc8W1tUQkhTJlFgJytwNjtPZk8kIXU1bQotbVgmRE1eW1FWOChXWilucnBTMiNIUUw1LnAnRGRxVSN1MGI9LVpMKWY0I05RW2s0WGplTEtEMF02PWJEZzpMRXQKLSFGUl9kRyl1bV5eXDtqPT8yOUcoLTUjM3VWaSYmLDZoOlMlYFRCQVlUKTJpcGw/X29tbz1lPHUkIiFmWkhhJiNHCi1fPDdkJiFdMWYkWVtBV2g8UkNdYzt1JiwubSlEOTxDQkZSZCQzSDszIy9Gby4hTVU4bkxYOCVsXUU4YDdNdD1ragotY1BkMiszKzMyZ0EoLS0uVSRiNlxcRzc+dGdQJkwxa3NGVEIlJidFTEw7WURZKC5gT0srbFA4NWQva0laPTpZSFcKLTZrIm9FZWc7LjxTNkRZPVcvPTJaKStAWGYoa1AuWU1yPy08YUxHImlAZ2xoKk9ENlIjUWdELFBfMSRsJytvWD8vCi08dWJVSUYsbDorNCRdYS1aNkVOYk02S1QiXys6PSlVX0ZaLU8xbXRQTHFiL1tBO0xVajR0Rl9raiE8LW1QdVNIJQotWzdRT3QtSW8wMVBMJ00xOGYzTzlpIWNIJUMhby8tQl9rL21xTSgoXUBSN2kvWFZkbjE+KmRTaD5ZRCJ1MC0/RHEKLU45WlFfT0dNSVhqKFUnKGkuPkxULWtSJGs0U1BIUE4hbXRCcF1tX2hzJ0diaighbnVJQD8nTFo+dFNpSzUxZSduCi0uITYlLGU0LDh0cUMraiJLYnBLYjdaQzlMVis1NGc7a3QrXk9cdWFpOFNMJTBWJWZlbDtIY1JgQmEjUVFlOEM4bgotTUQ3UDVYVi5ALTUpNmpyZ0MrZUVsNjBkM19iYHIzNVxMI3BUOUpjbGNcZSxoQkBUUVRvY0FUWilNcGBDMG4+cioKLUBZSStKKSMlYXAlXToiMVJvKWRsN0hwJ1VWQSszPztWRzJWQ05VdStGSDNfXi5hQWBELXJAIVI1LVRfKl4oVnNVCi1tJi8hPFRGZSxWPUs4O01XNz1NPSFJQykyQ2lyT1EyK1M2WDh1a3Q4NzlOVT9EPjtaNVxSMC4uSCo2aGtcXnFgZwotPk89OXRbJDY8VWYzN1dMQ1lhRUJtb0k2J01adUxhLjNsKGotRFQ1KillNW1aT0lycFFiI0QiYjdWb3F1WlZOTCkKLTRoRWpaRCQ9TFg8TW45byRWdG5cTCIhR1BUJTtJUz9XWldRZUAnKnVnNXE1MTg/TCYwWjwkSj4+TyVfalhCaCIhCi1GOzF1VkVZVW8/Ym1TcmEyUXRnMWEoVDZPVVVrWVFsV2wzQkclbTVyVlVwIV4/Mig3QTw0MWEvcFFVY3JGZCUsZAotS3RZME0qb0tpK2k0XmEqYD9RMD42c1EoSEVvLD9rVlxfT2M+b0kuJjBHVy1SUWw7Q0Q+P3Q/SktBRUgwQzdoVmMKLUptXiZLPE9Zc1EkZjhOUDRuLjkpXDYrKCJoYEEjakM9VydaUWZiSlldOkZGaEwmXF9kIzhjKjFAcDNfXTFxVC4vCi1tcGg3Vk5pWCFZWWFHOilBLi1kb1o1SEVCXmFELVQwSTw5MlpwIlY8azwwYXE8KzFkb2xyLTFsNiJpM3Q/TCtPZQotVjRoKl5CWCJcOEZEdEMyKUZRL2s0WF8qPFtbLkFqQjImUWMzTiR1bVRAOlcnOy8vNmNXSEI4VGVKYSc3QnJzJWIKLW9WUmwkM18pXFJtMilNXURNUEU2TyRWdGUxcU81KEw8bDpSNFtcVCdTWzRwLmZjKF9na0RiLSNvQihLVFJLNitKCi1dYGsqRiVZckZtZTE1O3QpbSIuOVlMN2ErOTU7LXJXY3BAa2VEJG0hbVg8P2ohcDhKTUhbbVxiaTNUbG9ePWlxSgotaFJgJD5gTyxiMl1pcy5mWiJ0R01ZcjVZKGk7YjY6IUEwX0RbV3U/LmxXWlhBOXMlL0tgP1g3WmdObWNpaU9jUjIKLVdTTGc0MDYtcWZdPTNPY2hPRThJRGxWLXUqdEo7LiREVy5iNHBlSScyVD1XOi1ZNzhQcDIibydDdF9La0lyU1g8Ci1gVFwwVmdSTjIkRVNcYVkyJFk+XT5ydGpRRDhqWFVwRj1wJlpDLGFyXzk8Vj1eK1lyVWZeLXNUYzFYKFZjQ0Y7LAotRyJzKUxwa2wkMEhMSVMqKmZXXjo3Xk0+X15TWWJbVjVTXXBWWE0qP1diVUNtWEVxbW9sVnFmKjRvVyprM3JzMGEKLTdQaD5uRCFUZTo6O3VDYWtJLU8raFAlUUFLUj9yQV0nWiYoYGpZVV1nZyMzQUwjMmpmNF5XaWxnT2thWGM8IVIwCi1gRjdBJjtqYU0kQWs5SjhfaCI9MktHa0NQblU8LzZxJl5qckkodSVjYkF1YSFjXTVXY09LbkotW2RYWk5RbldzJwotXC87c1NoW0chaW5ITWUycSpRZ3VyO2lEXEleJS9xSXM6QVtfNSRnVTVPJixyXCtmbC9fdTUmQWZEPk03b0tPa3MKLV5EJC0kcXNWOFptUFFmZTUtc1EoOSJVXTYoRGVkNyVEMWFkQSl0P3NqJCMwRF4qRiplWDolM1skOWhcVyNfVj1gCi1qNjgnRWw5SkgmNS9aYlEzJiFUSm1tJWldXl5LXXRxdCVTZ29mcTQwNUsiU1lqOCRPN3BkKURHNilaUVRRbmdzYAotMHU4KWg2ImhyOzk2YGBuLzNtc1VeajZKVUxrbjxkJjQjXnFedSxSOGQqPXU1L0FWPCM1bkpnZitucmYuUlInPUYKLV8tOWdTPlU3MEssL1A8Ql8+RXVDbG9Nbm8zUFRZWV9BamM6ND0lZEstRlhbOl9NWGRLUko0UnNMVmdcMjZIaCR1Ci1rYl5dRSVtcGFbTGliRERLSlRSRjFxcFNINiJDKThGO1ZvSylULmUlIiRBWTYsVGZHaDRbSC81NiZcI29DZDlqbwotNXEsMiwqdSJ0cmo5WjVPMFo3Mys2dGk9NUhqYD51X2BpP2A1KUplblJacC1kMjc0XGZfMGUyWFMyZT90OysySSYKLWA/XStjNmlZLCkhUUFST2BIK1xrSnM0MDluQVYodTdCaiRjYCIsN0g/JT5tXF4vUFkzT0c6XUlrSlhaYWA1Q2xbCi02VyhqJiFsZWFOYGNNLiFLUDxvRztvLSswXzQzXipIcD4iaSJbUGdKVzVNI29LTDpROzcpNW1GN0Y5PFtBO1xJNAotYjcvLCQ4Q1dXX3ErbVxeXVJtNUhhVi9uI3IwIy9ZLEpqXkIiJiwhJT9vPyZKUVwwK0FhY0pHUVVtY3BoUyZySCoKLWFqY20naklIQztUPzctbyIuWigtLGJpRjxVV1EhI2F1bD8+IkozYlQzNkIrLzhaXEImUGFQKmpRY1dkKDhQQ0FOCi0xbTlrT09cJDF1VGkiVUxyL0plTWVyNnRvOTJyPT9eclQvKk5DYDsrOEddVTciSF5fTlkoSFM5NjRCczs+Y1l0ZwotV2xeNCFhZVlsV11WaW08VkZnXV45TjkhVEFBZVM3X2ImcSsiLCtKbUZNSXVwXkI3YFQiJixpNU40XTVpWUtPI1AKLStVIyhcJShDZTBaak4mKmJ0blU7QldPb2JcPE5Nb1dPMDZnWExsWEFdZzk8VTlaNStKVXJjO2BTXWwycTopKVswCi0sZmBYV1NQNTlqOVhOIztlQlU8IWNWNFBIOWJJJW0rTUxRLGUtWTNkYkAlOz9iZFlpSjhQUEEqYyhzKWM0O2MxNgotaCtSQ3M5R0hBWjRRK0wxcFdRVXM6LUBVXSddbU8xay8lUDA5PnAmOyRGLmJsOGtVX0VjRzYhcmU/ciJhUjglcWEKLWFSVG02Ik0ybylQMExvRGNVPWhbPDJuMlNocDZFPjp0Mjc5UGknZl9XUiVyUGNicGRLZT83LVlPTnM5XDo4a1RyCi1cQiU8OyFtJUpHTTJfWHJqVFY4ViMwUi9UYktUUU5ncUhNPF5lTzE0OixrNVtibWkpWSVhOVY7Yit1Z0pBQTFmWwotblA0XlY5ci9QcV1iUT9vKDVnJ0liPjhGQWpYdU5hS1Q1NG0rJCxec1BVNDBQMixjcSNiYlc4XVYpSGVBNDRBbUMKLUs+ZmsiVEtRNV00K2w/T2UnTDlXalpcPWE1TF1adDwjJV5LLHNkMV42ZSJPbWU1XHJlQU9GcyE4KDg4PTwhPko3Ci1tNitDdTQ0Q2woO2wpSiZOQWpkWGElVzxkZG5DbiQ+QnFaM285Qj00UXE1YFRtOGhiWzA6I2x0UGwzPjkqQVlISgotMVkhJG87ZEA3P29ldD1dMyluRWdlQVhMS1s2MnM4NSNkZTNlOmdFQkQuX0BBNnJtU1tlanIhVTMnTEBrNGs6SDUKLTxYOmZmcGNJJGkzYFE9ITxRSSR0LFNub2NPanVgbmVQVG8uQVFNclU9O0BCMCdXInReJ2pFcGQ+WkRNRWIlNU1CCi1tOzpHIUNZI1YlZXI8IXNJPWZzW0peYl1TZXVgYD1jIykmIURxPkRzZixcbkk0YGRTO0ZIaVZFUSg8Kk1GXVIrRgotNDRmVGRmOm5BWVpnTG82MiwiYEM8VUc3ZCU9Y3FcSkNbR0o8IygkZ1YuYSJzS2lVP2s8WlFycXJKNC05OnQ8Z0oKLTUzN1xPJT8pIWxOPichYz1SQF9DcSlfXmM4UWNzbj1ZJm1tNFokNmlUXCY6NGZDYFMpIl82MSJSOT9ZXGZvU0YkCi1gQ2E6YDlOZ0lQPW5KUnAiXThHOm1GaWJHPXRyVFA1cyY3TVY6b1NzZzNINkNMYWgmRjBOdFNhPVxXNCo/Ki43SAotWSQkMVY9Y0tYaSU+LmsqWklIIWNmUFAkS0k5dFFiUmI0LExlTFBUPTNVWUVnXmY9TFo9KWldaiVGWCZlSDVCSEwKLTlxdFdSJSpNPTVEVXVLbCI6YSY/VEwlREFnT3EwNmg5XE9GamtiWVpocWU/JGhBLCImPFQ7am1qNSlJWWhHcltvCi1BYGhpbGtNQ3BVPzpGLDgvYEdQLGkqSFREaDxqJChlX0FvbmcwTE9HPGtXQ3A3KkBuKTtiYHRWKEsjS2EyOkVCNwotZFUtWiFoKkdqXzw0Xm1yKXI1VjU/JWxiRFExK25jbXAzP2g/LVZiQmptNjpPbFd0PWs/Q2c8PEFkNzE6Il5YWSQKLSJBVCUlN0tOXVYhPGIiVCI8SUxGJUltSU5uaypLYjYrdW5gWG48SUtwMFdnUlE2I2JYT183cmtuX0lESWgvJ2w0Ci1JOihmaTgpV009QClgUl5WP3BYYWo1PiknaVlDUzZyU3E6TyQ9TDpOQCtHZnFvaC9dclRdJFJgaT9ZWDkwaU1MTAotcD5Ka1NpRlZoTTI+WUsicW5NT3JhcG49IVtKbyVmKkZLWCg/b0IqOS1xLlNkMnJKUjNLTjk+VTJDLjJyLS9cREMKLWUoLG5oInQ3NW0uRU4+VFBZTmFkRnRBaFgvYENqS0A+NFNlUTJHJ2VyRiosNUBFJjdWN0lGWWNsc2pXT2orXjpiCi1JUTpvN2xzbUhrQSZbcUllTkRtUVRCI1A5QS1BIlQmT14uVWRjPDtSaGk5PCc6K28wUzBMJmt1OGQ3JUxlaF5VNwotIStGXmNAST04LlE7MiRNLCVHTGRoVGMxMzxXSFQ/OClHPW9oXmxRTTQmWHMtbl9bSl5AOj1YMCE4IS1MJ2ZXb1kKLTY6YSJJLT9AXTlDa04iN2s+aSIhT0BFbCtHRCc/b0I5bWdyTmRCbG04Uz8laktWajFcaShFMitJdFk3XGtSXkROCi0tQShHPkpxVi1za1ozRSRBcW9NbUxaaVcua2EkZzYoNGcsdEoqNXNDQj9rbmZbWDJZWUgwOXAraTBGZGE8Y3FIZgotRHMmYG5fRzUnRDpxJG1bK0QwaVhCKTMnTyVXVWAoMko1MF1rcTcpQEFjdWZYR0EtdSRCXlUzMWhMJyJeSUhcQ3AKLUJXY21MU3IlLThWczkjOGw+RDc+PUEqQyI5J1NCLkMrKVlnKGVFb3Q3cXFgZkJjWzpoZkthLjY/S25zWEJqNXQhCi1CU15BT1FsbGxXI19tOldgZ15bO1NDR1FhbDBbZVAlXjUwY1htNDM0bEU3LE0yUTV0I19ydC48QkotPU1eOSRWVgotWTNRImpsUSxELzAhaigkWy1McTVDTThMaEleZ0U0XEhtWXEyVixLUTIuI0g4U2E1K2psZ0NHM3JoQWBoViFLL0EKLSJNVmZrVlBuP245Qy04ZGx1byxpTDdtbiEiREszUm0nU2NnYCMlWkkmOD8rKEQiNjp0IS9HRCk+NCFZV0NXL0MkCi1lY0JFJFRCbDNFbGlzNk8oOF5FNGdAIzYkRDgrZmhePjgjMGhXWHNyaFI7QSwwJmI4c2lrUjIsVDJ0JDFmJmM4dAotUjs4Q19DVEo/PDo/ZzY5bEpDW2hrbW0oRG1kOTVgbWNeaEJtZ2ZUYzpAW1VVYHAsYi5sNW4lMnJsTyFJYjE3VnUKLUJ0aGchWTBEY0djQ01ibyVCKElqLVBGXCIsKGgvXzxtRC5eT0BTaGIoUEpDdG5XbyI3ZixGMWA5YSdvKW5eKCklCi1rOG88Xis3XUQvRVlmbVErIVU4MDtLPjhRbmxJKD8wLi03Ni1oOzRURWdKNkdWXmg4SC8rVCNURW47Wi8/UzckWwotLEI+XmRuZkp1cCM5TkYoKkhCW01uWz05b1FQamRtKFo6U2c8bThbKjcrdVc2JnJpaj1NTytxSFwwPm9ULDRTWkEKLW5SX29GSWkhMEUpIkZMXUVROW09bWtcdEgxMyo9S0VZZ0VNMC8lP1EvYjdMRUZPczdYVDFqOVw5NisqKyJXcDs+Ci0oSiJdNzdnL2ldIlJlYl5mL0BfODZBMGhKaSEyOWQtVF1HUzUoWS5Fbz9hJyJrPCY7NSk+IkEzRjwwW2lMSTZgZQotNy5YSltGW29BUS1XLCFrLGtVZ1lvXUtyWl5NKjFeQkNcUGlGWEwrMTdvYVxFPSomOl5GZDtFPFVvPHNuWV1bdWwKLUZrQCtGbWg4P3QnUXNwSXApVyxjMDE1RycpdG0/J0clWEJpR0FNSDMtTUY/Zm9eQDsnYSJSKF9EPWlVJG9PaSsrCi01QFxtUSJFVGk6bzshVCVbbSdPZj8yJjdNRm8yNzZOQjs/VGlITUlgcFYuWWtjU0tlJjBtRSkhcFw3WV0oUC1qPQotSyhkZWZHMztBPXBJMDkyMmZwXW1oN24hUGEpZj89RkdyXzRNOlteWHBOUTY0X0pybF5FR24yOzJqKlg2UDRBOTsKLUcmS3V0MDl1P09KR0ZcMkgmalwqVC8xYnIyMGxxUnBqTUlRTkQrU2UpPkxCc3BwY2tHT0cwYTorYlF1LnFpRWtzCi1qbF5lRzc8TSp0IltCXXRpKUtVSl5QLDNaSGwnVlFEbzJFKz04WVMsS25tWUY/cyo+TmErXWwkci9iKFpWb25xSAotYlBcU0pJK1FYQGtLYSMiY2h1RD1JMkMrVFFjWFcpYThCU2lIciVdWTJvQyJiXz5GUFFxcmJcOShLPktYQHBYPGcKLUhfN2k4KVMxYC5hYTddVEhbSGIxaG1pUWNrNTJuTkhkPjw0VD10MmFeTzpVSkk7ZCIkP2M3QGdgVmkkQUk0clw/Ci0rN0InKWQhbDtpcjg2c2xuKlBncW0iTE1kS25ucklKKkRaKmtfM1s0S2hwaWI1TUdhUmdbbV9jaHRRLF9ZTVE8PgotKj0pWjEiVGYzI0Aqai1MJUwsZGI2Vk9gWkpedStcM2hUczBGQmlFN1BFJi4zOz5DOUI3M2JbT0FCSzBjVixKbjEKLS5UTVotSyFvNUg9M1lAIyQsa3E4NC5cIiRlK0s3OUtnVlMyZXMoSkwtQyU2JDs8WUNgL0gxLF1Ta2BvU0JzYy91Ci0wVVBMRVAqbyI0OWQ+ZUEsU0FccUMsSGZjYD9LOi1LSmpiVkpqTSpBNi5PKnFFLzMyQjxsaFxLMU1EZU9VXDc3bwotTUclP0E9L0MmXUk7Mz1xUmFuO044X20hZTpzTW1PXGJ1W1Y0Lk9QSFpPN2JZX15NXzEucmwhQEVpMGJQYEAxNl8KLXIlYCRuUEpKSTQjVE48YnBncSxRRFxtMyZkdTItJW4rWEgtY0pORURmXiY0QV1oWTFtVVNxalFlQlsvPzk7ZzspCi1vdCgqXmNZTCNGbWU9P20laEZUPWo/YDVTXUI7KlJjYmFkRCVcIj0jWjQ9SnBtJ0AyVl9QMC1dPj1BW25EXTpEJAotWkIlJ2lvV2FIXSZHRT5oSE48aUVPLiw7L148VFhLanRHIyQiUiVQYlA4Kjo6Y0VlZV8xPSI/KyM6UnIwKEU0YyEKLUp1SyYsJj5IXUMvLmZcPyU0ci5OZmFmXEkhWWk2TGRYN101OGxEJXMuYSNaSVlxMiJNZ3BmYGJaTV9MNjlOKWcnCi0xPGUhaTtQZl1OPmhFPCtkczV0PmM7VS1YM21QXzpuTjwwMGgiWThRZStuVl1jcjsiZUA4UEg6Jk9iI0c+bz8sWgotYFlBZU5RbyJbPzUjN0Jkby9mXnJTRURrK280NkxNWzRRZE4xSkRqMF8oXE5maktnRFtkXjVvJGFxXkldPU5YV2sKLVgmZENZPmRtXFVvZlUya2JkMFlnMixqYW00Wj88J1ByMVZPJz8pT2RkWmE+TTY7ZEhpWiMlZmdYVHJSLSg1W05SCi1RZSNrdEFYQFIzRig6Ty8nLm0qYTxXUD9qJyItWzE+bjdbY2EnL2liVj4oXjI9MmpRUT88O2k2O2NucGJORE5tcwotMjlCaUMoQTU0KD4/SUlHN1VlMWBdbDc0WC0tXk87PSg4OlU8NEBTQ0g9IzRCb21ZSyJbSzBaQTxWP2AtQC1Qck0KLTJWQyckUnRrMCxMK2VHSWclSSdqZzNELz9OYGdXIk8sdF9MJ2hyKEhbSDo3aUFOPF9iUTwrbjRIJUZUYi9uVVZjCi1aWCtHWmlPNDFXQyQ3U1ZkOzxQVmMoZzlPXEYjS0BXRHNsXEsmaTNqOWpNPEZbXS06WDNHaHVlZU4mVV5ZKkwiKQotT2RrXT9jSDJYRGckWz4xZEcldV9bY2s+UE8xPUY5U19MYTNxS0RELURkJkomPXBDTl46Yk1FSD1TTEQ+YC9lP1oKLVBUP0IwOl9lRG5FMkFuLGhnJy9YSUsraC1HWzs4TWlxVU1wT2xWcCJCOjduTV40MmVnSD0hIzNsTUJBUFdiP2BjCi1obXIxUEw2JzE/cipMUGZvKS5BbV4lRDNZYTRQJiRJXDM9dEgrbjNealM3UmpMWi8iTCJpOSY+S2U7KEFMTUgycwotTW03RU1cXmU6IzskLFpkJCRCJmJmImI/cSE4WC5HRzQrVnAkYEFDT2BaK191OllrJEY9LTNAOkErPWo1XiQuYDQKLVlrayYnZzNpRCgoZGYtRSRSJkkjS2BhQEwlK24qLCtWO2VMIiFTNmFCSy5eJ2xrdDxiPXBiVEIsVT9jSkhcJyJWCi0jIjkpOydCM2gkTShpJTNfMiVzbmhxVU1RbkZkbT9RdTxGP1pubSwsYFxeL09fXG8oP0E5dEs6KjVmOjUmKW4hYgotTHAtWSJeX2k3SmliVkRKOmM4UEk9PSJeP1pzJVtTN05vYjc1bzphakBZR0UoQj8mISopUGovX1AjJDZsN2dNZy8KLVRiTVUkZEZpM0xPYF9eUSdHUVVpNjllITc7XW9KJDxlP0hDNlRfZmZuNmtscUtNZEk7N1FCM01oWWBZKmNfPWAvCi1XQT1sK04kT0YmSmleYGhtZjFGLz1IQERuNS8/RF8uYz0hUEo/ZmRmYjg8KVwrUVNFL25oS3Nda01JTzMkbmRuPAotU2FdQk9UZVBBT2BJO2tLcW9rRSQxPlVgXUc0Um0hYm5xKi42PWclZV89aUNVJk5OLD8rZmNFRCplWHA7TWFIVzgKLWJHIUVLbWdWPCg3KWxWTFU7TEghOzNBN1VraHQzamU5bCttYiFla0BtM1NSR0hCXzxyPEQhSm8vWiR0MlFyO25aCi05Xi9CMlZVWEltO2pxaShgcyIycWVBQEwjJlxVYzgyJ1xvPUpyZT0lM0NbXSwoOEI7Uk03cjByNmcvKGlUZW1uQgotY3E0VTBCRk9tQGVVRll0JEZOLl8yLTZKTzwrPUI9KkNPWG1lI0NodFZHVzU5N2Q8RGBXNzZeITtIZWNIbDI/I0wKLW9eXWUiKVsvdCVvZm9YJVdrPT5GbVBjWXBnVEclJFw7Y0MmMjYxRT5XYD8oKyRzTGsuLmE7SikrbmkrbiY9STFzCi0obkBcOD9IZ3VvUVdrcW5QSG0pMWBuN206QEhnTD9WcSlANT5GS1ZNV0siOV0oKy4jUWdFMHNCU1gkTVI6PF9EJwotNCcmSF1VOSMpYWRiOSFcQzI2aE5VNldJRWYvbUpKbUBDdSNQZXU2XylvSG1hSUQyWSZrMj1pcUxLbl5LRDdLNzoKLVpzOUBUQmw3ZTVURChbV2gncyJaLlw1LmI8az5mcSRMO04vYy91WydiNC9sLyJiR29Uay11L19pRSYqdD5PRjwnCi1bOSJdXT5lN0NIRG1mPj9RVUp1IV1ENGk5bT9QSSUxQkNJNiN1TkI3JSlIJltTbV1DTEs8SWBVXWlbbyNAOCNGMQotWE1zX0kycFRgWGIuXHRnLTpLY1xyK11jNFEiJWJraVE5YjhFYi01ZDNWJyVJKkJASVglXW0oKGEnTiZwX207JS8KLSZfaV1FLT10RFJdLzQsaWVYSCkjbicwUCMzK2o1bVNGYFYjY0lxKTtCOUQpQDFaaUpzZyZFZWgqNWUsS3AwNV5jCi1AazsxclgtQm9VOldgRGctIk5zJ0MlPG1BZGIsWlFCY04+IzFqMlhBUjdCXFc5YkVaXzJIbklxRzxvZ00hTUF1TwotWFc/Klw9REpwZ1hSakg3Y2FwOzlDNkAyS2EnUFNfPilbUmcmXlJBcS1DbCw7NlZWOE4wcjs8ZEooInFjOWFzZlcKLVZmakUoZkdhV25DVFZURUZnY1xLUnQjQnAqOjo0VkIldE91bFgiQW9KWnVSMGBuOzgjQUpJcS9WOUhxTWRwI1U8Ci1ELV1OOm9lK3FKNC5AdG05XDZlYS1PJjkmJFQybChnVV03K2xJOjBlOltbTmJbIS4/aGhLaTc5XVBYRlgxNTtGVAotZzVnJmJJQzZqTTdXJSk9VDlPNFc4aXNPYSUrKE0rNnVgWVJgMmdXZUtHbWNeJi5lfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjM3IDAgb2JqCi08PCAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL05hbWUgL0ltMTIgL1dpZHRoIDMwMCAvSGVpZ2h0IDMwMCAKLS9CaXRzUGVyQ29tcG9uZW50IDggL0NvbG9yU3BhY2UgMTYzMyAwIFIgL0xlbmd0aCAxODYxMiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUosZ11nMyRdN0sjRD5FUDpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLk9AV25bM0AnbmItXjc1NztScD5ICi0+cV9SPUFsQ15jZW5tQDk6MW1NOWpTIiFkVE1UPCQzW0dRJDgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjQhZzM7Qj0oaVo8a0RxT2gvQmYuREhBb3JmJ1Jbbz8+aW9Xam5BWSZeZ00rYDQ9MWpSTFchWUEKLT0pXFguKktTOVBFYGtOJT0iVGNZaXAmT19rJyZ0XGFDX0ZqJTQ3RTlSRitzP3FScEtGO2xcRjhHIUkncjJlVFZNCi1tOj8qUms0YTsxaCNLRDM0c3EuIl87ZlFdPltCb1JTXjV1MUg2IzJISiMxXV5HJmdbcGY2PXBQW2VLXSs0cFFrYgota09gRj5oT2VHaS8qbHFXSVU8VlBmQCs0K0RhN1tFa1Arb1I1OnRscyE0Tkw6JTAmU1BdRVxTSjpjb111NiZwaScKLSNkdUY3JWdrMXU+Vk9YRGNubVo5X0pvQkglX3FOSTlbVUhhLFpQU3VPX2U7PmBLJioqbSlCWD1EJl5NLUZDXzJlCi1PaiY0cWE6WUxzVWRxXiFOP2NPVW0iVjpWWjpwZjpgcSE7bS1IWnQmWFYrNXRxaFppSFAzZmsuMywvI28wP2ZWMgotUDJdLzEqNmdAY09qKTFEYl1AVV4zUTRwQ0dyWCo1YmszWUtvMU9RcmNrRzQkUlEkRC4jPUhsUTliZytFUFxoRjIKLWRNLlplOF5cNlEiSUlLQEtkZmFGUGpMVjBkXiJRWlFXI1lmNXVaO0s5aU0vQWMsKm1lYWpqWy49azhnQz42UnE6Ci0vTiRfYFEwaEBPXVg5Ji47Y2hPJU5DZDRgUCMwYE5laWI4Wz1yKipvQyJlbFRYX1pZay0oUlRKZCluamo4MmY5SQotQ3R0QC9jIl5LX0lDZHVUUU5Wa11kRlVQQ0gucGwoKWcwKCooIzl0Z2U3SWxvaHRRTVQrUFlNcz1fP1NrOickKCgKLXBlO0VMMiJ0a3VFOGY7MSkybTYvWFVnNFVwQVFGYGomajtpQz8mPCskJElRJmdmN1prSCM/b1NoTmQvRVBUbmRbCi04WDxzK2M/NV00PE5ddF5VOklXbVM3ZTlDTko2TGxEQDwsdG5RcSdJbDVHWz1UNHFIKlIrOTEwSVxqMTRSSSteXAotaVtETnAkWXJyNmMoZXUtTmlcKnBSTjU3ZiE1IjlRXGFHcmltQ1ZnK2NMbm0+UypvczM8QTxgME4sPzBSaGkpTC8KLTpETGs9UzhTQGNFJW5hK1lyIURCOlVrRSJjU2B1PVMtO2QrNF49YUhiPl1KJTNSZFhBOkBITTFyMEtkPm8iNm43Ci1gLSNAaEQ5aFxscyc0bDM5X1YrU29cSTk5aVU9SGs2LXNoSEsuRUc/UV91ZUZINi8tRGwyJSFUWG0+aipjYUUwOwotSUR0O0NiNy9aQWFuXzFZU14lJig6WSMuOlQ1VVhyQEM1NDdwXFxpb2I9WzBbZkE2RSpUQzpHMShHanVwIyNXNVQKLUJDO1NRYkYqaywvZD1TbVRgPmxbIWRBU3FxTyYwMVplKFxtSl5BOUU1LF1VNytIZDZwbjVSSXBGWCRybUY8LSczCi1YbTg6SFZQYDdAJ0khYGYnLkJddWlubkRTTEpbQ1s2ZUhldGlXTUlIJklwIVE9SCpwUDZwbGJiL2dhITUlZjlMOQotK0IxJGdhY09TV24oNy1gTENeWzw3Ryw2UmlfM2Q+OyViUCU9STBeQTwpUiF1JVAhUk1ZM19MNj4mZEMkMUlrUG8KLSh1clAqTm1bODg3WV9XcVBdU1g+VWFlPHJwZU1tIjlRWj5YZWlfJSthV2ZjSElXKlg4SGNFdDQpa10jaTsva0FQCi1gUTk4QFVpX1dcblg8JDM9QzMxXVomc3BsQWlNM2wzP2kjK1VQbVFUN2EhM3AuOWtrdDszRDhaYUBUS2ArTXVjTAotRGVfYTc4PCphYDcqMWlxL25SZjFTTVREXWQ/dFhkLEtVYi1oVzw4ITVuQWlbNEw9dT88a1E9czFEWF5uOFluSDEKLTctVTZVUTZPUmRZcjNtalcpJk1yS1pJKmQzIzhtXEhQO1FjOjkiMVZrT2UsJ25XaUs7ImdHOVpnW3B1NDsjZWpxCi1YJDMsZnIxKCtxTUdbTkk1Yl81UlJkTkBsWGlfOz8jWG5AZDwmblxqI0heQ2tWJiNuLFdmLXE3aCJCa2RmOmBsJwotNi1pXGA0bGVgQkRjNzlGOzJTRk5rUU5RN25AIj9VLlFwS1BtNT9dazJPcGxmOV9EazJIKFgiRVdgPDYpPFUuUCsKLVgkQSc6ZV83XTxsTkxVcUZjTmItUksiPTtEJD9sPTZDRkpLNlJGOWZobDNZQ1ZuR110KlwqXmxZPnBhaWZAbiZJCi1saWdSb25gJHEnW2RxIVo0YDMiRlkuMStYKkYzIUJHRHBcLF50RG5qP2BfJE5aSVdwMGBdRlBpbFdbXFRGWCJnQgotbEJvKjRTV0oudThoaklBMmRlMl1JXlNsTWNHaEEhOUokXWo1QjxkNj4mKi82KDZ0bkcyUjUkamxYc0A7TklBPjEKLSFudFg1RGMmJkhlJGhrN1wnVkgjQyIuUFdWZlJrRjxAUmxlbGVUW2EyaEpfSmZUVUM1WFlIckQtSmRLXVEjRWFHCi0yUzJdR10xNzJxMXAwOixYNUdjND9lYk8vbi0vcC89OllJQD5SYzA5ZVIsRGFUIyprSFdIdGFQJiM4OV1sTXFtLgotYE5QYlVeOUkxQD9dK1oyQ0AyPkY9SD0pKD5ROUwvbUwsSWMyQkg5JzZZTWtEJy9sME1sZUQoRTZnaWQyXj1LYigKLTxdajFbbk1XXFM9VXRYRU4pX11TQTM3Y143ZDI9czk3KldILS0iU0hlRG0kUk5wXE1fWCpGWGdBX2F0TUVXL0lzCi0pKCVQXXIqSTIrLThgVG05RUYxM2wiImhROFkjUDwmN3RlLFNhbkJVYllwX103L1k7big3Jlg9N1FTdVg+TjNOKAotYkJMakNtZ2RTXmwlM3VyT2l0OmlaPShqPUs8dEgiQT01THMmODNZYjFlVmhkUXVYRUZib15PTzBGY1E5WT8jRG8KLTxXZmFhWi48Kyk+Ji5EXFhuQl1FZWYpLyxDPjk4Q1plLFNRXG1qI0Y5K2NpVzdcQScmaF5aKjA4IyVwbWJMSDReCi08OXJBQlktdUAnZ0tTPCtEL0ZjQ0ZxMkYvW01jWEJGVjBpInA8MVVEM1ArU1BGWVdUVSsxPTc0RFgtVnVeJV1QQAotaFJgO3NnRSIwRFUlTjBRZmYqR1QycCYhVkNOSj1aSzRySzJWZEZZRnFwa1QsTUspcDtgM287SGdfczQpbU9YWDYKLSlqXVgrNCF1SXBYUDpUclFPRFhpNCphdSMsSzteUDEkMVQuPGM/X0teWlRMUVtpPm9EbC07azFBZC5iODQxPVFsCi04O2pJWERRKEBgZHUhWktTXERbQyVIYzVPUzU7QzZaJC5pKGgiXScoRjwodD9wMy9zWio/VE9kbF1dTmVRVlshUQotQ1QtblkyOD9aXmIyXzBBWEUjQWlhUzdSYmk+bVEpNFspcSdsR1sySSpOKi5tcnNkcmI3dHEnZDA/LzdvKlRSJzIKLSZiOTcoYidAPkdqbnRJLG8zUTU9R2I3KSNwIidobChRUFFVXDtjW0pjVFUzcVtyaDwxUkdVIyNJYzghQlg4IjRGCi1pQUpaSm5OTSROR29uZDByV2VrY15BJEguTyRnWVsqSW1ebCxMYm5LbUhWOj81SkEyTkZrOUJFb1hrJUhuMjVqNwotbiVFbDZIcD5PQ15CYT1USiZVa0AjRFckTmZBdGtuUV5JYmZkVmRpc1BDNSJsb2Y1N0BlNl4+KDliNFxJRGY1SHUKLSROMlgnbzhoJnBtakErPTJaNTlvZi5UUDFuISdpdTlTZmxLcTtuP3Q6S1g8TnA+KGJHcVtbPDk6TVRjZyFvQyxxCi0hMEBvYyYubnBTOkBccjVyR0IuRVdsNGwmcSMyWThyYmgwJ1k0Q25ZRTltIVFuJCJxU1lAc3JeQ3FuOzhmJ2pPXAotRF1dLTolZ2BhZSJnQiFCJjBVcXUsbCpOTXE4VkZuTlI3aHFxVT9tbXFdSE9PbEZkInI9T3JRTiFVdTlJKz0uSU4KLWVJP0tOJTZ1OU1uRE9qMmpVUTdvJV4+PTFpJFN1PG9hUXUnbmFPXVBORWxfcztbLGdrIyo8VF9LcWYjLiVoIThPCi0hM2onO25AbylbIT00WmglJDZNPmNjSF07MV1nTUQnPHNcNm5FMUkocENGS3QkLWQjbTBWXGgrVlhAOmlKYWo6VAotJkpYXDIpI21HVCNSUVYlJHB0LzhSYXMxOSUuQWBdOyJZTTdLYyJkcChfR0Y5TnVKVnNCLChnUG9UPDFCLiN0dHEKLT8zJCp0Iz0mRyNMVChbL0U2Jlc1ZVBSbiRjWz9XIk49QmxhKjNtWyxFN1lzPCkmWjpIaiJbIykuXVNvIVVCNyhxCi0+KjVpR1VcUGk+cG1mWFBXaiU1bVhtRlZZSFA2dDwqPiRbPmRMZDArJTFQJkFuVCE0NDBwb19cU0s5Q0YncWJ0UQotWjBeZT1uMzpwYyNQJVROT0cqZzcuMUM1IycoTmo1bmVWdCYnLiVWZCxyLUQxWXRaRFNoJyxfU1dmY0JlZFArakUKLW1QM3JhPiY+JTFETkxtRmA+PEIhbz9oc1ZPUDpHQS40SzsqLkMsNkBaQ3JhJ1YoKUhzLl5IMCtvISddI1s0PzouCi0vImVJREVraGFeU0xlLnQnPSFTZ2QvPERnIUBEVVdXc1AvS2tHXEI0MC4zVG0tZzVcJC5dWHQ7XWQwY24uLjhONAotMF8kXVdTTGNPby8oNHFdbys8Sy8jcUFqVy5DLjIvUDBqdUlOPlpjaCFLdTYrRW87N2FqPiwwST11LEZFbydpWkIKLW9EdTUyciVcUUtaTjFSLSlfJHNlLlBoX3FvM2ouaj46TDpmLjw/Uk8xRiFibWVNPC8iXltqKEc7X2lZdDJEVlUiCi09cWErVys7SF9TOSg+aFUuMWsvXTtlbjohLmxLMl8zZzZCdVpIRWFrY0xTOWkxMykmLVg4UCFBUDtqcWIzK0ZCcwotVEYhVUpxX1YwXjFtN1lrZFNET2ZULmkncjJLUG9fbytPMVZDR3RcM3I2bHFcbyUsdTNxYElINDRHVFVtX15AU1wKLWVLYmUhNGdVSWBlIWlOdWFaYm5pM2BHUThvIkA3ZD0kTWljMl9pb0NGMiQxQCFDMi9LNWVtZ3AiIWdgVWxBKktNCi1XdFJ1T2UwNHJKZ0gsQmEvLyM1aW9QbUFYRltsRWQ4JG1cN29RZ1RyS2gtPEI4QDRASW9UO14lUFFOYW44WUBlLgotRkomXiwnZTQ8PjQpYml0bWdVSHJnQ1RTVkxTaj82RW9wNHU8ZW4lY1dxOVdsRkNSZF1ZdCEwSDhpMWBgZTpDMjUKLWpcQnBeOENaVGdvXEUjOlZfT0M/OSRgMk06RCQ1dS9QRD0kOT8tM2knMC9gVWtzXmV1OV8vJ1QwXEpwW2ZkY1hjCi03bDlbKWVFXiRqMitcTjk4JHNqOydfYSg2WCJrMjc0MEsvazwoVG9iR3RbNjY5STE/R0JSKjpXS2Z1ZU80dT9oSwotMXRPRmdnSmRjKyF1M2Fyb21eJk41PiJoWS8vOlo2J2hfMSIrJnMkXUxYZkwoMi1gdW5ANDJqMDxnOyE0ZUM/YWcKLVYrMS0nO21oMFxvXW9VWjU/J0ZROlVOYmRvYDglYC5vZUh0OyJcJGkyLic0JmFdYnU+ZVRHV3NPIkZRbS5wI18iCi0+ST8raCgnLiFMYERYK2MvNjBxdCgiI0RBIidwJj06cl9acSVZNWpmSTMzLVdYIjQ5O3AlKTV0Um80RCs3b1lzSwotXmJvWFw2aiVVKEFAPjNDSjJxMSE8RnA+VkFSSVQycDBoUGtBUy0rIkFiSz4/cDAyKSRGOT9cVEE1cXFlJ1ZSJFcKLU5ARUJUIVxaW2VQWF9cY2s7WkBdNkgsb0MuI2hdWnMnbF4+QG9ITjtROS8hb2olLVYqQTJcWEJwMk9uLDtlRUpbCi1DcG1iZzxsOF9IOWwkQ1pCQ3ReYUcoaVBTTS1US3FCXktHSC5eKlEtYkEhYW9DJWBxVSg4U15yV0ImPlcvOVgkJwotZT1nQ0dcU0pZKEFAQmx1KDxwa1hCbFdpYkVPSkdVUUpHJ15LNCkiKkJYWzlZPHEqLT9vZyY2RzYuWXVaZWdqMj8KLVZgakpYQGxGY0xHLVEkJGhlUj1qRDNsZFVHOkArNC0kT09ZRztgTkdwRyM0R1JyYF8xREdsc0ZlM01TRDZFN0xiCi03Lyc7PXBKLSNfTylRV0hFLSpCODx0MD0uWClVKDQ4OVxva2Y2cTVeSCQ9Sk1BUU9GdVtrZ3Q2aUgoPUpAMkEwUwotL1JgcD5XSGtkKkRtaCQ5KEJKWVsiYSw+O0ZrPG1BJ3Q3RDU0YVhQaUhoU0osW2A8Yz4tJVElVkkuaG84MW5UMj8KLU1iZlwjRE8tOTIhJC1NUiduMkxANWZLXiJNM1AzR0JedFttJU1IVSlQXmRQIzIucCE1QWpBTTVwZ0puOj8zQnQ6Ci1MN2doZXBpMidLRmJfKSxMVV9iZnBqbjVcS25tMF5McSVZYFw4LWgkUFFUS0xCL1dQPj0sMDpkXyVcVFVuYTEibgotWkpMQUdsWkMrREtGKmlxOWtULUNrNzBJSUcnSHI5ZixcRmdCOExrRU0mOXJfZlxxU1tMUTZXRExZMVhJKHUsNWcKLWZuTUpVQVg3SXIoNGg/QFZpJFNmTVRvZGwnLz5ESTNePEMoPz9lZjwzKEVHajkrQ1s+SjldQ1tRR0pQXz8mczVDCi1OUypdVWZeImJdS3AyOmlPI100U3EibzoxVDVCc2o3cClaITp0cSlWQVdbWFdPW1onNVxKblF1UV0pQWJOKVYwYAotUCxGIUpJPihkK1A/KTFYaSchLF04Vl9SW1JDTVhQR11ULCY6UipsYFEkMGQpWnVfTiVqLUQ+PU1YJio7LiFeX3AKLVRvNkglTXRuTlQzQDBXLzlwZG9iUiFAImkpMyY1R09kVEBHTERjWU5nJD1EMlYzQD1IQU45XlRSMC9gLSNGNjQtCi1TJTAnIXElSzhZKC1nSm4+KyRHNSknXFVdLTNBSENDS1c8J1xWa2k8Ty1LSilUL2xBLlxhdFJPcFEnVXNKW3FtcQotXFpuWEJbMTQoYW5bWjw2KThNI1FgJ0Q/Lkg+OVY3Uj0wU1VSayQ9YkQ0Ik9rR1ttLy9KLTkmNFcxWllacU43YTwKLU5XYmY9V09lWSJUTSk6R1Y1ZWpAV2ssPTRxUSRVbFtBZlVbWC5WdF1ccjJBKEdEVEJLQVhXV2lvITxESyRMdDZECi1CaDQyI1VjWUheVVNkRWFWX0hSTkg/aSUiSUBgSVxMMEI6ZHFTQiwhXXI+MkVYJzJkNHFbcChwJGBYIi5XQjEuYQotPi9jOCNhZVpNbzgodUY/WWdpND5nTV0uMERPVFImUlZdIlhFTGYkcVZmSyY/W18mSTYybEpdWUxjWl1gXHJqN0QKLVNadDdqW15yPEQ+KztyPU8wU1IsTEg/a3E8YTJsOkhhPERzT0tUXDJHPUFqOGtIaj02Wm1yLGBINm09U1FgaUcnCi1BMzNlcF0zMG9YTFRpal4iRkctZlJyLGYiJlxIc21dPVc/RSlUUlM5YkBRJFIhdW0oR1JUZjZOT2EzRlxESGlLRwotPkZfXl9UXmU8P1xwSTVWPj5xX2s/XHF0ZExZSDFGPktPTl8ncnAkMV1cPE90XDhmIk9BJTRQJjgvcEc4SGZGUkIKLWtDLmRDREVJOSg0N1dEVnBAM00rIWg2MFtlcEciKyNIdWxkXTZfPCpdRyYsL0FaQGozW3AuMTZxcFVVcS5EaVtECi0uaVFzSmc9WHMwZ2tgUSJjJWk2Y011YEpJOTFmblhCMzpGWzMvK0VGJUI9cVFiLk9lWXIzPUVmOzlPP3RiSWs3ZQotNE1mNihgUVRIKWJlMjNFcjZgYk9lXWJcSGMrTG05Z3UmPlVaY2JKNWIxYTIsUlsmXDQ3dHBZWjhDWD9SbkM3J3IKLSExQVZAO0VUdS1JJDQqVlFVY0ZtQUdpJ1pnblYqQlQ7b1FpYi5Rb1wqOTU1dGg5RVVhZSVJb2doKUVRKzFYIUhhCi0iVDllUWghXzVyXT9hVThNLVRwS11gNTtMZSdMYmZkImVPR2EvQCNlczJlS0AhaD5aTF1VYiVxK2MmN1dkWDglQgotXWg/ayZcXldhXGUsPmlePygmbyJRLTRTS2VHVz1UNFMrQGtwJmosWDg9YTgjXWBSZl0jKzlsSDtCNjc4Pm5aWmoKLShJcWFNQURKPmEqQCVPR1ZsRy9AZmZjN2U0TWZfTHAhYiNQZzNpIzFyTjMpZ1tGS101ZVtUMkZbIm1FNWk9Mj5rCi1eWU5eUD8jWSpxRk1IWFdbJ0grT29TTTNbQScsZ0tkVF5BOnI5TjRxUS87Uj9oZ1A3W1NjLjlVLyknajFnR2pjPQotSU0jK1cndU0oMWdnK15OU1QhPD5GM3UiUGQ5VitaJ1NrXk5ASDNgK2ZZMFQsU1dWQSFyVCdQRWhkMDE2SVQ9XC0KLT1oTUlTTF0xXm1yO0ItNiFTMl46aVNKUzYqZC1JS0gvYkVEaW1PMVcnU1lhUjQ1TSM/aEhjLSoqXmYwdG4pIzFVCi1nJkBWcz9ER2cmImpcKk5lWDJLTGhRYldRW0ZSU2hpTilrN2tGdGomSSZkXWlvKCdnbig+MztLTTIwcE1XZFJPaAotU0JxRmgyPWszWW89bUJrXkhxSzc/MWBWPG9ZM3AjcyYmR1I8VjppRW90T2YqVDIjI0Q4K10jNW9BO18mSWxHVjcKLWdYTmtSV1chOV4oMiVLVUFjZSNHZXIkXGVoXDpqXCh0TzBXLkdsOmFeRXFOV0orQzFJbyktUFE1QjY6JUQ9Yk1WCi1vSC5aPDVAPT1RYFZiNSNvXFs0YF5VPTw8WjM+YCNiXlhwJ0l0KjNmSzU4NVdwb1MzKGteMytSSDIyO2dxNkhGagotaVcnZEc1X0RtODBRbiQ3JiZSOlcoaiVsMyZXJGcnT1xtTnUwYzpcRmorPTYlSHJoSlIkUkNtNENuPUhVUHRMLyQKLVokYThvMHB0X3RQP0ZFYUVAUjJGLGRMUGVNRWAyQzdqQmFVWnJTSWNMVnIpNGFAbW9pIyhhUyxRITFDXVl1cT9iCi1YLU0lM0lfWjJuPU1UKWEyNGkhJFouTFRCZz9pWF08aV0zWFBuO0owJlBbdS1pUkY2Uypbc086OnVjWDdvX3EzQAotUCJ0KjBSRGRpJ09pXyswXEE8JjI9Ym1nT0tpZ1c5I1ojc2BoaDc/NCVIcCQkJWMpYj01ZVk9QEUzKjlFUUhLMCsKLWBHIictcEFmV0cucWZGRyJFamY/Ry1iMklkcUxYQiUvK2EiUiowJWVSNGJzVEBGVVMoWlBmayxIVTRDU0JzZWtdCi1CIk51PWk6JEVQXTEyT0VfO1hwL3BNTl5rUVtcKVRcYkwnIydePDRxRjBQZCUwRyVMVzBpJTxLbjFbV05yOjJMOgotMUA0V2slb1swODJcIis/JVJabVc1N2RqWCdMaT9yWXFSTz43M0opYlcuV0s+P0lLJHNQXChSdVoqNyhGN2tFUnQKLWJWQUBEQDNBKWFQX1VHUlo1QDQiOEtqbXItOnRMTkNGRGUxUGMkISdaQG5jIjhUSUxnLD40X3BLLTcmVUNHP2pNCi0xIUZKUjdXRm5sKFdHaShrblFXQTFlZVMjRTxKUTtjU08pPiYnaEVvazdaJnA2cywoOVojako1IkVRdEgxSWkmNAotSEJ0RkwiRyYzc2RiS3M5YjdfM0E6LmRAZVNQK11aWEddWiknLCJHJzFSKVFNNz4wL103bEYybUhEYSUxRjkhSUsKLSFMKUZSNF1lOiZHP2lfbFhVJ08qXyJBOXM8T0gqUmBDSiUwOTJXY3ElNmwyZ1tePClNOFgwYVsrazNuXD0mY0VTCi0/IUNDXTFNcGBUZiFXMjQ/LltRXHEtX1BiKVgsYVNlak80QGZrZmFtbEdyT2ZcL0FJbmFEI0dKWy5YYEFnUXFEQAotUzZSTlFhJG5kYWpjK0ApPSZmOUU6Uj8xcD9yLD5nIl8lUjhaTUBTVDwsSiJvZnVcckFEST9NaiU+LyVzVkEhWSUKLUJvWCtOOVhKWlk3LDY3NS42KC4qPmxBaitFOTk1Q2o3QTl1T2Y8VVhvOTgnVEQnT08oKF49OFxBZiouM1JUK1I9Ci1aU0NXIzxkMEFfXD1JMyg8Z2pkWVUxN0BcI1InUVdPO2tjS1RVLCZaIW8pPCIkWFUxbzdETmpuIl1pbCdlTDRpWQotZTIhXDZgYzddZSszNFssUVIzXkNdV2NQJkYkLyYwKlY2cjw1TD1MOChIXW42XVoyVklFZFhLJmFEbmsvV05QIWAKLS5rSnFGQ14xJ1hpZXQ4QF4kY29bbGFsTGdRSl0yczVZbHNCR01CbFhdbDJBPEVQUU84RFtPTCdyKFNpYG90ZSs/Ci1hN1ddKDs5Sk9lMDFZU1xdX0JDaXF1UC1WKi4qN09abD0wJl1YdSlUTig3XVpxPmhDU1c7MXRNYW9ZP10jLyI9Vgotbks5KFlKLk1KPSw1OmElUDtDXTlEY29ecktWblloRjZuPE5VITVjNzM5WyRhUj0ubDlwSEpvRFFKXElEMG9qZFIKLV02QnFKI1cpSTEmLi9KKEI4bHM2PCFrOCQpP3VGTSNcImMwLzRjb24kR0VBanBSb19QIz5mUmk1J1cxcT9NI0loCi06bUVYWUJCb24zXUlTSWNbQnIwTVIxKkNpMU11ViVqP1QnIiFtdSpPLDEsdFNfdEYkNGRiRUd0ZDF0MiJHV3VpIwotPlkjKXMzUnBQJz5uaUdpLVc0bThUPix0L3JoNDw4TCg+YU80RDhFdFRzTUlnI2RxRlwjVFNrNEpMSCtJInB1WSkKLS9HQzopaS9cSygsdEVkYGxKQ1NJOG9EVSRfTGN0PVA7Rmg3JmZfP09RW0woNycibjpOayQ4cXErInEzcWA8Lm4jCi1AMClhO29HKSkxTkpSaV8scm4wUyo9K2ZzJzE8cDozTipKTlsrPlFzQW8uWWdcTW4tbWgkP3I2RURBTzkzRzEyLQotUytFTHA5cllOWGsuSzM0UD1CNXMpK3J0UVdoR10yVFsjJT8lJidPPF9Ebmp0P1E4ZmA2ImkqZlRLa1xLOlxmaG0KLWg4ST5mZGo2LDFbJiNRYFsqUD0vcDM5OmxoKTIqQGZwdSc9RjQqKkAzMm0+RFVZdTk3S0RJSjpXNXEsbk8rSSIjCi1GWT5wTTRTcXVzb2V0MTQxSSxWSiJKRjlMS01YLTc1TlhPLjswKm9HV0IpR2xCWDx1ISc/WldoXGwyMl9vZC1YUAotUl1CMDo7Ykg6azA7XkByUkUrNXU5bkAuQDliY2guZSZtKShXV2JcXVsxNlE1JEAsTSglMWpwRTgvUD1VVGk4ZVAKLTs0OkklV19yVyUyXyooLVV0LTxhZEZ1PylDQ0ArZ2VCb2whQz0lc0A7RCwpK19NIUk5aGNxSlBFZ08wTEBGbyxtCi0/M3BMVVlDUDM9PTooWyNrajtCU1tOYFhsOmtONj9GY0R0bjRqKT45O2JeZC9OM11ENWJDU3Q3PmNjYlBaZHNfXgotPSVYP0UhPlZJVmV0UG1kPUgqIyxBSyVkUl47PShuQVFFWkVbW20mLllXPCpVJVAzYzdaQSc5SDdCMVEhLnI+QUgKLWVIPnRdNDZXaEFPZmVlUWs1Pj4kb1coWzUxSzYkRG9gTkRFSk8vQkxWKSs+W0AoWzxnRS07YHRmTEg1Tkhtc2I5Ci03TWlyWkIrK3A1M0pWU0krMmYiTyVVbEcxTCUpNVtfSDlHOWk7PUlGLVM2ZERcL1BMYFZyNExGUkA6Zyxpci5jMAotPlxvXE1vWi5tU3FcS1kxTnBsJks7MFZyKz9sLTUkbldqRVRHVUBIP2dfWWs7RnQoOWZUKmYlNDhWalxHP2MwRXEKLSU6dTJuUTMmc0YjZTxiVUBlcjxKRWRmaWw9UDAkT01LOD5FMEhBLTBfXVJxWnEyaWJNN0U5V0gsYWFNalY9NS9WCi1hblw4SkFMWVpnWlVTUU5SPlZMOSU0UipUUTVJaTZSbCJgWWZmTSE1MTxwQkEzPjNDcz4nJSxBY1IhP2lrS0pMTAotTVUkYWVIM2xFPVUxOUItRyMkJVosKjFaYFdNQiUoT2pgMjU5J2VbWFldUy9tZHM0a2VjKWozXVswcXVEQUFfPHUKLUQsNjJiOFFqU2laTUVlRlopZlYwWjo8UXBRdHA9Ulh0VmNGU1hULWNsZy5RUzFxcG9cUmZrIVFIckk9akRUZU0yCi0yXTk9PEM4TEkyTHJWK1E0Ny4nbltXXjZXIV10YCttS0A9OE0xNE4qUyFzS0lNNydxIURIPjEnQ08naC1MVjEqbgotLmEkSWNFYW9HOFUzOm1CZypGRklnYiNSVXBgTDEsZzlMYCE7Y2o7Y1tsNEYrcHIiWF1XUGpBTC4wdD4sVGBkTCoKLVI1Ilw3a29EI3JvWS1cK1xwJHBWckM8Z2olXVMhKVtvRWJ1Qjw/PGpcXnUwJT1tR3NAV2NdcWplLCJQZmwoJzJ0Ci1pWEVxdDNaZ1xiM1BGby43OChlPjJgVHNeWWk8R01bPypEOllpYFhaU0VNX1hjT3VqNmtULkY0QVQhS19xYz8+VQotKkE9YUBtYEV0KihMY1kvQj9iUyYwQGchITpcJXBVYUZyRmwnKVE5RW1HOUEnbDQyc0BxbF11c0lMJEwvVUxFJUEKLW1JVGYuYko8azRGbD87bDRqYitpYDpqMWdRRl07QW9SO1NBcTsvNzlyY19dRVNRRi82KyVQUkQ0dCQiZF5YX10+Ci0+KlFeRzU/NUdAZyh1RFptSlkuLXBPKSNYT3RSNi5dTDxxND84ISZnZ2Nhbk46UXRVKDZuIUhfcTwndWtsK0VNTgotXVIvdEtYNmREOm1DMWN1NC8jNlhaZ2VGMF1xLlVHXXRyYmlUWSFATm9uYShNUClLKDRBLCpiZyc+P1E5NUorNmQKLWJOUV8scmtIZi41UWU+WCc9QyhNJDokRFcuL1VQPztxRjlFZkZwWFgkQiw2MyI6NSZhbzg5VUBcXCY9Tz5SXz0hCi0lT1RbOTRDZEQ2RjYjSEFqWktVWV8pcVdeOUdQMCRhTSt0a101Jm9dTiEoZ1hvZnVZNjVcbjIjKG9va05xQDJgNwotTkgmRzsmQnQ2NzJvQzRBKj1BJTs7X2VEUjQyXGlbNFdEX1lrVUZGQTVEI3QlYCI0RmUsWFIqcTZjOzVANnJaVW4KLUE0OypvOCZVJ09gMDxqM1VkckA+OT5qZHQ2cHNBWy8zdVo8NUshQiRdX2cqb2JXSVsrMig7LERUN2Ywa0pCXE44Ci1AaCFKJ05VL0wjOUpyJWsyTjElKTZbVW03Ij9KPDY0JTFcYDRIKUhiakE4NTk6SUdVZDZtUEpwNEE4L1U5I2NOdAotYC5WYmtDaDxhXUFISzVMIWojbDVTNURETTtGViduWkQ6SGoiQkVGajx0IzQ2JGAkb29SJ2Y6WFxqS2xANlpjVSYKLWlRb0w3KDwtSlRfcVc+T2xzaU43Q2R0ZEg2dEMiJixZQ1RBN0UyXU43YXU8Rm88TGpoO1RCRmRhISZkTDFmZCszCi1VVzYzMWEoMEBPJ1IsRylHYCJWL2BGTzpib1IhZlFJKUYwVl0tTWpFIkZuRWpKQjBdJDgxXjFLUz0lQWtBT3AnOQotODhHMXFIcCNLLiMiWTAuOD8+ak42cyNVMD1LIm9SJFFQMzUqMDpINU9bRnVtNl5qKFJYIj9kTEA2NmtkM28iVUUKLUZBPkRcSz85cFg4VmVvaF1NOyZCOmVCRT9hbTtxXWU1UmpvPD9CWHEhSztxbVsjQmVcTlFDMVgjU2EwQlhKZVNDCi1XQz8wUjdKczJVJSRgbDxROihqZDgtRU50KjNkUFRaLStbbmBeR1BCakFFUktYMyg1QmFwSEE5KiZsJzZNVGA1VAotOT5JZUlmXCReQnI9JjAwUHB1R1ZIPy0+OmRfLD8oOXBGPV9QXGlndS9QWDE9SyZrYjRpJUU6SGhoKGRhYzREWykKLSxpWEZiajNDJ1JjOU8qWkFFTTBaa0tcYkVjPUgkM1V1VGBPaW0mN3M6Jk5ubmpQRVZUZ3ItakI5ci1JVHFwTWVwCi1FaUY/WSdlSWssZCsvWWc/LU9lLTlmX0UzOVwjYHFldSdlRl1SOEFYKjg4RCNnV29SRzpALWZeZ3R0bE5pNkshcAotOjk8X1VQbTVUV2swUkFwOmUzOTozJXJXLDAka0ZmOl5BWEskdE4vdC44TUo3Y1Q2KUI4YV1BVmNWSjVkOk9NcE4KLV1bSTdxZS11IUgqRyMncSo7cXJ1cl9GTmc2dTxDW2JtVm4jJC4rWGxkIVsoX04/SE04JC4sZF5kKjMkSGxxXklWCi0mQShwU1ZdP0RAQUo6IksnVC5rYmQ6IVI1RTJfMDdfR1FIOjs1LyYtWl9aIWVnLzY/aDs8N2krb2BOVkcsNkpCIQotO2pAVmVLZDlKWCx1PlUvNnU7QmhtM2siaS40NWlbKi8sbU0qQHFJUi9RMUNXTGMkaUMqQUYiMzByR0k5XGpcRiIKLVNNXDhqMjl0U0ljSFM7cjIqJy1WMyEwVU86PGJtcm02KmpLNSMzMWAzXmw6XSU3KHReNjN1Wz8jVkFHQUFPUWtWCi03TDgqRyFQTSMqJ2hKSTQ4a2tSRDZyY29UbS9rXTYiUCFaTztqQzBaJ15cXkstLiEpSmAiYVo0WFJlM3NvSS5yVgotJ1YrazxLX0drLi9XZzNAITdiPFtoLUYlQj9XST0wNy5nT1RyPnNOSTJjYEAsPGBMPkVBSF5GVUJARys9ZShrTzUKLW06dCNgQ1hGR0VkNT5kZzc7Z0xRRGowLDpOW1dFbUJVVSNgUUVzT3VdX0VzWVYyRTQkL19KJSRLJU1fWWpjN1daCi0xImNfbEsuVzU9Kz5fXC5QQ2w7Z2ZoYU5ZQVg3c0tRZT9tSCIncT5KVjQtKSkySGUiaGchdVlIYydxbCoyOyp0VgotPWAnSlg8TCRdTVBNJTdGPVVnSjxWMmozcU5FRkN0ZldDJURyKlpqL1FDaSxiJ2tsLC0uLFdaUmZOO1FOZlEkPV0KLUsuOXVlYjFgREQ9TTpZOGg1Oj5JTzRtXGpnLmReYDRkMCYkUGhJLkQ9cS1oT3JMNnNPXlkuR1dmcl9yPzxQM3JZCi1dN1dQYEswP2J0L1wkRVJWVj83JSFvOWhbOXJjL2FYL09qVU00TGMsYE5JcWFbVEhZRT1ENCxUSEIkUjk7VjdQSQotZ0tnYV5GZ29YcmEnPDJwPlhjUDgtLEVgXF5nNGA2PyskKlUtLFd0VmBFWnVwPl9UKFxRLSo6JGI8c091LVxdZU8KLVEtS19iY1dwN0toJEJxNyhuIllaR1szRW9oK2FtKT8mYC0sXDY8MWpnVEIvYGMuXyIwZ3RXKGhnJywxR290MCZhCi1cX1wlXj8jQVQ+RDcibmtqP3BvSi1EZmkyTlRVUkFrWyc4NUxlWy9rTlUqSTxtKS1nMGZYKy0nUTEqT1dcREokcgotaF4rdVIyOztKLF5ZYCZKZ1dlWDFYbC5ybmlTJl5nPzhcYEZYZkY0Ulg8LUsqJ09Aak5MJDRGISE9Mi1yJCYvTy8KLVNjaEVwIl4+IjM+QG4rODoiV1tAZml1L0Q+TVxzW11xL1dWcDBjX05ALiFfc3JWOV1ZJlJWWl9pQFc3MzRqO2taCi1jL0RzUmlGcHNHPzd0Ny1qcGEjZyZ1cTgoMVhYNSc5QDE/Oj5bVD5CN0BzWyIycmZFSWotRF1YTl1RNCkzRmcmawotSzpZNmRpJllCQTVELFVpajsoJkItOjZjMTQoTGZLaj5LSGYvak5xRzUlRV87ajNCX3JbUTNCPjMrSVo3PlhnVHIKLVYkazVTREVTcHAuOzo4al5zYT86MDRkVVBpckhmJyZMcTk4LzdVTUhAbXBJWjxROE5jUnEwTXRqTC4nWlZFM2UoCi00Q2oxMGpFPGF1QW4kQ3E3LSVCWUE2clxzVkk1JUo/XD1ZTks4czVpSVUlTUM5aj4+LDowKC5ZREdXSFU7KDE6IQotJHMkOklrI0NMdCJtJmpfal82MSpIUEdTIzpoPzBhamZRKVRdcGUpbEMxYGNGQXAuY3U8XmwuPzZ0YnBUQW5HW2YKLUwxdDdzQ00oUFtrMSZKU2pAM2JRWnRCR2JCK1VadCtoaFNRPD86M1VOKWhbM2hEMmEoMVc0L2ZjO2xnY1hkV246Ci0/MEJMP2tNQlkyJVJUQFI0KSZTIUJIQ1JGL21kYSo+aituSUJPJ1YzQ2RtUTdWSihqJUJVRnRIV1AuTjA8K2VhVwotaz8wNkhDQytYJDVOZSFfa0ZKRjUvWGJpZTk1Li1tQmpPO0ROXk4iL1kyZ0BkakcnLGFWT1FZZFNDcFouYzlAaTwKLTxoSHMwVFZlPFNNJ2VzZGV0XzcoTjkrWjJqYFpbR0w2KEdeT1FFQCVqZ0RfXEckTzRNP0tdbUlrTjkhX0ldcnBXCi1aIi9sJWtWY2AxN0BSaURgYW5IPGpTV00hJFM1aiwuVjEkQkFOaihkJkNxUzEwIW44LTRVYy4nXV1gVSNTbj1XUwotayZzKW9gbktnYTRgLzNvS0FQR09pJy1RJWhoMVhcbUxWVk4tSz1HT2llLk5zbVQvSDtCJy9OKWpSLDRxbU8kbjEKLSg+bk5ZaEpNRTFtRVhJJ1tSNFlNZlwsQio6NScocV9wR19HNyQ/ZThORkRwKi4oYT1WLEFnKClELVVYaEQhMTI2Ci1TYURIamo9XWs7WTNnKUdsdHRWRkQ+Kjc0JWRAa2trTzp0RW1UMEwuNTY6cl0hPF9jaiI1YSVbZik+Y2ttcSooIQotPWwvW0RJZSNzL28ubj5YJmlUQ2pbZTpiM2RoSC08MTRJYjlUJTZeamYzPkUxQXU+TjstT1htayQja1kpRStcLUwKLT0hJGRSKlVZUWNFLythPVZbSUlgODkhK01FOS0yJG9NMEIuJ18pYlpuSz1lIzEjUiU7MWlaRzNFRlo9cEZSQVVQCi1VW2FYVW5ZU1ZCW2Y6P2YhSEheNiI5MEhhQipJbS4rYEo1QUR0YkplMCg3ciJuQ3QsOWNuPW4lVChCNzpvVFdcVAotbnU5M0BcSm9TNCIqMy5vbydHOSlyS0hnXzk2Mi4/RiJaaiQ1M204YytFTUhabzIlW0NMP2lvSG07by1rRjEsQkcKLWBNPCVTbUlUQUVGN1U4ayFBbm03NjFjVEVvSyotSDk7Y2w6aGZOXyFGRkg3QkxjWTEiaC9FVD1uMF5zJmNTZm4mCi06QD5qc0VcQD8zNSFGIV1TRlRxSW5uXllgSE80X0wsJycnJys7MnFiMFsoVjsxXWYyUmA0Wks0PGJsO3Q0ODI2ZQotbjtvZyZFJ1gvQUdEJSZfcFEuYDlWZz0iVEhoWTxER0xxN3I6T2AnLTc8ZiZmcF9TSTY/XDgmM0tEN3JpcGZFKEIKLSssOU9xSXM6WDhwWVVAQmEqUktgSCQ+VSFwTzxFbD9aYyQ7QlArWms6bjExa3MpOSZWYlNEdFlwPkpBXm5hTGAtCi1FQz1fYz5IYCpacyxWQG9Gbl1nNiI6cEg4TyxKNFtNS2NnbEdMcVhwbXRaLitMJis8OHBjInNtKy8vbTZUYGRsWQotIj8ycVUwOmk6Z1NIS0lgRTBtJHJeUTwkUU9cZWk6NEtqcWojRiNvXVBwZkZHTilzcig4IWxcV1I5RGhEQT0nSEUKLWByXlMtWCpVXENIQUFERUI3WUExXlxDbUVwXmE5S0xULFR0WCpWZ2dFIU5PbHAuVGY5bGhfQCRIUWdtYzBmSm5xCi1KVTo0YnFkVi4nRkBIKFxQUF5ZLnFramFHY10qOmxUNm8xYEhmcjNKPTI5Ni5WPlkmREg1RkpFcFZfQC9gR1dgOQotQWNJa0hZRT9iQVAtW1pCTil1OEFcbUc8VVA1TyZMcjlRayJyS0RYPjRGSjpPSTRvaGprSWdXcl4lcywtSTtkYTkKLUdPOWdGTTEpOltJQ0cyYWBubC1wOFVdXXFyVWBSLiIiU2czVClMK3NyXSQnaTkqYkd1LzpNN2dyY2dHUE5wTTReCi01X29JRiM2VFEkQCpqIVAtNTs4ajZXI1E0SmdyJltNRj5qM0dmNDJPKWlkQUhaMXNQTStVczFDVGhvdHImZFgmUwotOTJGIjNKYVIpKjRlOmBhRi1QZy9ENFhOc29EL0s+S2dSQ2dCWjBhOSxgPjxtJlAiXFNKP2wiTSVvbUFbcVNjdGkKLT5IUzd0ZWFdMmJgJ0xcMzhfLzVTMzQzUDEpIiNvR0FdRWVQXG04KWpIYzNkMC5ZNDteZkNWMVIpMiNkTm5DVmlDCi0tUFZgYEBvQFJMSmw8dFo5JygqODw0NkVzUydHVy9xPkNNQTdAX1FfWj9cUWU2UTskKEBeLFdULTUmT25eWV1USAotV0k8ZHJGaDZBMjxyNzxOZmtJZnJDcGtpL0lfVC5NRipVZFI3PkhrNWlgWiVXXicyLHNFU2F0Wz0rLnBeRDclJmMKLVtPQkNMKWRBMExqIyZncDUiZVA2ZEpadHMlMWgyXm8xSnBZTypOKUdQIyM0KW9UQVQmKHRsUV1aYmwwbDAnTUhiCi1OSzIqImxcZU46U0VZaF5MaD5oJ0RKVlFEX3BJSSUkcHI9OixtWmZfJGNfYSJjJjwpNTVZcVJccl1hKmpuQl0sQAotbGhMS0YmLzVFUTVuSHQvInVkKjgrVUxKc1puVyJXT1J0bSYzVW4+bCcwPllOW2hWIXBAZWZMSi4nKyF0XWxCUCEKLSlTVTRHMz80NFI2VDYoIzEmS11KXWVVS1YwMWE6OU9SQzRjYmFAXDtjQVxHRlgwUzRpJyJZPjBaUDokVj5CKEZlCi1PYUBILWBfVURhcHI6Y20xR3IpPmJoVVttJToldUdjQTg6X14tU3EiUDNwQS9dVUoqLG1YNTcpXFBmMl4ubF5HRQotSTRbQlVpYC5YMCRsbTQ6YmAsPD9kYU4tSUYoPFwkNmYwIkxFWUhiQzBHRCQrNExeTy9KTmdULXFpTy5TSj8/WSwKLUtmOiRuKlNmNytRWlYlW1lkPzJsZjZIOCFoR0ExbUhKWmIhJnJpJWpoPiUkYEQhPGEraSdjRS5KczNdLiY1UV86Ci09W0BmJGZSPWA4aWBNVTg7LkExbDBvWSxSKl1dOEA9VDErNkBYKlZ1OmduVFQmVk9RJS9kNmVeXCtUUUcsQnBzNQotSFg+J0FqYHQvK0lHJmFLPSQ9bE0+YUdxV1U/R1oiSlRHSlU6ImMpbmchL1EnQiNGbWZJOmFhWXJJQUlUYzwjVS8KLTMnTCxsQUBSQF9NLkBQYzc/NkVfN1IrMkM0ISNLSlBNNWdvWSo0MWIxUkdscVxLUkJ1KU9VVnJDKVYnOVQnOlBsCi1HR0JqUTAsUCZkPlhrIypsKzImMjMsMlUpV2Y6cWNiO200UWdTWClCQEc+dFlPNnAnNDk5IWZFKClzZiVTJHFrIwotNG89Qz5QQWhLV0YyRG5McENZQWFcaSxWakJtY0xyYjQ+Oz9uWi03YWojPjsiXWB1QyonSEpRIk4tKy8nWCxNMUwKLUIzaF83KVcsKVRwNSU6NmdVbUJlRlVONFFtWjY4aFM6NltDcG02YC9qNS5HazFYM11SZW0kSmRtWTA0VDgkXmlTCi00OUsnPUQ6KE10O1lTaltpQShxJk40cj5pbU1YSktHQVI1Ul1CQHRaKytsaC04Nk5lbEElcGtDXyYuWWxeJkJdRQotVClbWishR250WSFdSHVjIVpRZSJBUEk9IlJEclhiaDVMYS9gcCorXUJAUG51Yk8mdTlBZ0JkK0AxcVIuOWRzV2oKLVVEKyEwKj9xOlo0PT80XDdAOkgzUyY5PmJfTkhUQiZQWCwmK0sxN0hTNWklR2UxMEtoRCYmMkkzIiI9Iio2ISNCCi1ObVpdRiRNYTk4ajViV0xkSmM6IU0kNG8wUzknXSZfRF1FZGVKYjJGQjhodDkwWkZtYGgmRjMwTWMiMFkqWjFwbQotQFpgcDUiVnJIZz1JQmdIOVZuISVOWztnYzRyLEYuNUVnKGIvIjkqYCgxUTwuTXA3UFlgWCpfKGpEOEZqRU1jLkQKLWFVXT9PLzk2aG0kOiU6UVBvZidNR2FQNTZAPmAwWS5jcEgqUV9MM1tNSjcpWyxiJi8oVm9Ea3FrcVstJkddXTRFCi1TbE5vTjpeZVgsbS9vL0k8RCEjNDNHIiV0UzIvV1xiQj88NGswMkdHWlZHMlhxM3JEZT5tNjtdJVFkQVtVR1YsNwotZjorUjZEUixcRUMkLG9iMDJuMFhjQnQuYGtCKlZlJz8yRnIzRj1wQnI6YEIwRmcmZFtGJEY3JnMtUFZJQGFLcXMKLTYpZ1soVkdvJFJkKWdjKVY7Ml0hWjtJYUdCa0tra0tjJCleQlZzMiIzdGVMaTo2ZnBZOiF1Qiw4Vz5rXUFNZ0RYCi1kYEVHJFVlTlApWyljPEk+Ji40aGAudDZnL3RQVzFJKXI7aS9aO1FSVShbPF4tWWJxQFdEdFFwZUMnZ2JqX1hRSgotJlJubmhMJzljLlYjNlIjcUhxU1VMSHFpKEBdI0VSQGFNWjw2WTVXcVFTXy1hOyk5Umc5cis1Q29PXm5FV0RQYEwKLVl1WWlGOj1OSTg+IyJCbEtYS0NFIiInbywyV2hbIk81ZT07PkVOVzttR1BGXmYpL2ItKWhdZ3ItLGdaWipvbV4wCi1RI2FrImMrMkZpa1pvLiEwLnMqT1xsVzUpJGJNYUdtUj40LFtoZHEtLnQ7TClqaC8mXGshLiouWTtZLXVDLV5AYQotZkBuKVsuckEiW0U+Rmw8PiVXdEhEKzFNPjYvTUI/bFhHbGtTQFEpNyVib2lbQVUvLktqMSFXcGk4KzllR0FdUnUKLVxRPERQPnMjKjAwWzpdVV9XcU86UzBUXkBKQEVBM2dCSiRaJ0otRl1fbkMqUXA3biw3SjhiNCxeNmVFZmhqYS5NCi1uKWFQXz05THJ1MVwkJCxOWChbQC1NLTVlOlBqJzQraUYpISUsbmlaUFYxNidgJk5lamlkPVteblNGISJuamFPaAotTitbTW1YdUYpKWs4ZHAsSlVbYG01Li5tKitXOmNHKGloSFBhVk8xSEFAcyhMRTJIRlJRWF9IUGJsO2lBW002biUKLTZTMl1pXEtBIlNddEtEW3BFI2lVUjpQYCVibyo7ZkEnPTItTTd1NyMtQFwlcSUtbmwoXXN1MGQ0IW5BZVNWPUVrCi1mP2NSZWwiRjs1VSRpSkpdWGZeWmtoLW9NZmZrTlVxRy4oUUNbQkprYGJKY1NaVkQwTjRGMWsuQENEP21nSUxVMwotV1VDbi1dREFcdGxPMEpncD03TD89Kms2YlMvbXBiPGFDXydJUEJtdDYoJSwkXzojalJAVmY9K0lkdWNxYGsqZVIKLW0rK3Q9akROQStdMihRU047Jz9ZbV0+MFA0KVQiYVs9dHAjaVImVSo3O2NCS01tUlhdZE1VLyFAbmtiblsnb00zCi1UViU8ZCY8azMyK0NzUWdTMzpuYTwoSVskQUpJPkJRcS1MQU0hZyk1azFuYSEka0BGKmBZVWYkX1w4XGImVz4kNAotK05FWCQqK1NXNFEuI00iYVFfTUZXLScvWGUtOF1LbEo1NztGY2hnODNvSidCcj8lYlU6NHBvPXBISWJmbiFuSEcKLVVQU0c2SWNfV2RaRE8/XmIuMVMkalNZNClFWlhvMXFvOXJMZ21ibHFTbGgidUdBZTNZYjZFI1xVIlhlJEJCTlFlCi1UKFlAIWZRbldIa2hVSFtGZyFbUTNrJixcSVhmUmBeRlYrUFRaLUloJz9DUzgqJidLX14/cC88W2BAODYuWFIlNQotbVg+RFVMLy5SWEhmKUw+cnBTWTsmRz11LWErYHBbLDRiTjBUQmdvNFdWJDFWZEo9b0xrUFg1Lm9BPEtLSTRnYEkKLXJAYilBNS1OUTZxbk1LLWtIamxbajRqPChGNzAjJEkuK2ZUXyMtUGNuW1hVLGsnME9mcHM1R2o1KEFnbjA9OlRkCi1bLy5WJiEldFNTOjskL0RdKC9ZMm5eIyhgJWJTVVhoIWlZODFfOCUmWTVcQlxnPmwmZG4qYnIvNlUoTDA/TU90UgotcStJN1JOdVt1QSxsLyQnITpVP10mLWlCYVZaPzFxbnJMSFMmJkBecmA0MyJsTylONlE6PzNZZ0tgLGZjIiZMb0UKLSYpY2w7NHFkP09uRixgNjBDXExNb2BZbSUiXSwoI085I1A8VUJWOjhsNEBTLzBQXl0uRFpSKGAhVWpGdTA0YjMoCi1JZU0tP3BDSyViTnFOWz1pc24+ZiVab3JkT1JFXF8iQ3BcZmA5ZFghMDFRIk5SMU40Iik6OGcnXzQyRDUnK21PKgotJldtdE07Jy1ET1ZcMmlSKU5jTl9kNFotK1d0Uz5oJzlQP2lKWlRVdTZQTkJmJ1RsJCYmTnBqQDRWSkUuKU5jQlsKLUU/UHIsKVxLPWkmUScmTWQwQzUlIzR1aDNjbiVxW2p1dSUsbklIMnMlXj4lM2Q+by0ra25tN2MlbjhEZU4jYEdUCi0rVjUwZChELWZkZDBnX1AnLEZGXygoaFcnZDNUTmkwYmxGYCcyX0lEZEVgTF1hVyw8PCcoTltTRU9tJmNbTWdtKwotKT1haklkQWUoSEZSbWgoYiMqUFJaJSwhQlE0SytAJGRrIlheaEZwUyJXPTBuKT0sPF0wJD4vTzQhLCglKmcsUCoKLSZgIklpL0tJXGUqPjFGSlo4V0wyMUQ2dEsqWUlLVE9tTzUmb111JkJfZj5VOVoyY2ImIlgmcz0pJWkmVTZlYCxjCi1NW3VuYyYrOyhdMHJsTFxaUWRmLyw4KkVqJk5xQWVQOHVFPic5WWQhWitoUWhbajpMSSxxbEE6RF1vcHUqPmRpcQotKGJxQChFYlEjKEQmSUAwQGhLXWhuZkh1QiwzbVQoKVksQnRFXEFDJlNMS1tjLjhsP15FQW8+cDhLNHMwKV90OC8KLVo7ZyZZPUx0ZUNOY0pNXlo9T24vXyg3PHQtS0EvVC4xN00+Ml5iY0MtaDIxKTBraSVVQDQ4RTswKEkrO1o5OiI7Ci1YIlE2JTA2M21CWkRmTUpYV01TZyswcjlybyFva3VdZU03JSQnVC1fX25tKE5GI1FCbjJqOFAoWltYcThITHRYOAotMzBUN0E7KjVkMlA7dHE6M0tvbU5QRmpsOl1mSyloKW85OU1lI2paKFpUQ0lqNC1SOTxlJHBBcl9gVWw8NDxfYS0KLWUnQy9qZGxnWF00ZDRWYGUpKjo6YVpgIzA0N2hfVzFVVDtDWTwpOVMzY2d1VSc6ViJnUHJWXSkqYEl0Vlk9Q1EuCi1KTidvXjJjRmZcMU1vR20sPCQ7VCc5ajpsUFM2IklMSHJcRjM6VCdxO2owSFtSNlQvbTVFaHAuO2xyN3RaVGNqUQotNScraDAnT088REBuJS86NEVPWGRlNUA4IzopaWd0KXE3PXJQWDY8ZzRyWTFCKWchdFVaazVZPi8vQXBKJzlqUyoKLTFuUipWKWJGIWAzKTsrc2Uybj4uS2gpbys4IUotZCdRI3E9QmZvQCs5VSpeb1BmNWFBXyltbSQ3b1hiKGU6Qy5pCi1NJicnTThKRGgwPDEtPi1UMGE2ZTJmcFdEUFZrX1VZbk01ZTZvO0dCWyhTbWJlL1U8bCopdDBbZUs2cj4pLFhBZAotNy5mOydGUSNVWmpVbmxgbyRqWDZvSTNRbW9lczJRMmAuRiInYGc7QVtsRy1lOTY8WnNacWo/ZWVQVlNUPGdAQXMKLTw3T20xb2hzOTs7XFRDNjsmTjttXkppVzY6QlBUOTw7JjZiUjhoWkw8PjEzYzspTTE3IURxOEA7JXJJczxHLEA/Ci1aVjdjRjlHTVY1RkEjQCM2Vl0/dDVkV0lGWlwpM0spY1NWLiYsIltfXy4tZGRpcCdCKDgmO2AiNi1FVU1uZjhKPgotP1wtYTdlYyRTNCIoNEZKQCRWLT9bTFpkSWgtaj4iKlBwV0FlZlM/OixAVFFpQFs4TlJlaDpNSy5OVUssQSFUMmQKLWVqIVtcNlknNGUqXT5mYmVrXWFVO2RxWCZAPE41aygoNE5ZIl5rQDE/aE81JVExSj89al4sMlNsO2NrTjI7TXBdCi1LNGlgbj8/JiY1W0k3YC9iQF08IUFzTj0sPFdjcUwkIl9adUFYNCdCPGohSjo6TVd1YUE8c2lDZiJZX2dbcW5AaAotQ0RLb2JVInNIbGdNLm5iQyNSWlhVIipqY2Q6amNJQjJqOmxOaF44ckBxW2RvJiwsVS5ZclFMaGFfbDpeRD4pXyQKLUcxMTokYkBOVFBDTmRPNmYsbk5eKS9FOmdAVExmbDJWMmZTaGVrQDhEUjtvT21cK1BXcS5OZmFEdCxjKjFXT0hYCi1RWjBDKkU7JDJMMl5yMlAtIlFgbkcqY29kPF9bYFErYGMvM0V1KEJoPGdSbGthXyxUVEI9PFM7PGU1MjdVTCcxNQotQmJrXS1RQ0RqRVVOJSdNRzteZ2xwK15hIlpZVUddQGkpMVNmNjpmWEhZLT8vQiVNWXRHRD9pdU1lQ1c3KzxVfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjM4IDAgb2JqCi08PCAvTGVuZ3RoIDIxNTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdgMCFZMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiKWA5R2ozTjVDQSZGLDhJQmNYZW8iaUNBPTRLMSVMKiJHSCVFUjZycCtKIkpOIi8xdDUKLUUxW3RCTEpzPiI1WCJSbyRwSDJEUUMyRCdfST4zVDlONDdyIzZEVkZcWicmNDRMWlhdZk1GKVgiIjtxOSVSRVgpCi0nRnBtWigtQjRJRThLJCVqIiVicktFRShKMkBZOWVgXT5nI0dodDRaIiFjO0xNaHAjJiZ1Qj9jW1t0KkAuVFtAbQotaihRPT9WLjNvXTI4LjAtZFpvU1I4QGc4VzhVK0c6S3UoRCdXTUFtTiExSDI/VFs1YFtFNGFtXjUmWU8uX1MjQ2UKLTVXQjJUYjZmdURVT187SCR1XSpDbms5UGFfRFZvWCtOI0JtVUNjOUNdPyFQJSsyLShdXSEmQC4mcj1ORDBVc1gzCi1hXGxaPl5CUGp1L0FRdEJPQy9xV28iXCpYJVxtUnFZZCVbWCw+KlhsLyhHWS9aJDhQT0wyaWAqYFEkJzxFJldmcAotOWFfXkcxJV11NCI5QU0qJ1NkaXM7QT1pZDZwZHUuJ2lQSyY2bytpISVdXVxSbmg/KUI2ciI6YE1ZbDNiImdqNVcKLS5Lcl9LQE1xNVZvZztUbmMkUiVvYDhhRFQxPjJoZGxDVWlzWlEoZlwsOD1qLFgoKlJJMFRFNnFoJXBRUiU9ZXVyCi1fXmVASCJaOFIlMG9Wa1BmbmRMZkFFKm9SOk41YWhOZlBfNSlkR1hGYVhXI0dLOTJMUFlaJlwpXVcwX3JYdC5bIgotN11jZS4nP1c9KlpbOXElQWlGWm8rYmE/Lz9QWCpnL2g7aDxDZ2MuIWojUVAiS1krUzEsNWQtLW4zSmE3RyxoZisKLTg2NjRkRVNSVThCRz0ycjZPcDw1OW1nXmlOaFsiUzRILlhmYT5cYmJqTWRWdVVOamo6Tjc1a1gnTE5IWUJeXD90Ci1fbjc4P05vOEoiJVYnYW4nU1hsM045LlMhWC0vLHJXM0JzTFlPOFxZJ0Y6SlItb2MnP0lBQVZoPGdaMXIzM1U2bAotV0JWZi80UGRnKzVcIm81WklAVTAtWD0hNnFrOHBSLz5dSmxKNGtIOGovNj5GIU5UPTUoajleKCdjKWNpS2k8Nl4KLVxDYSotbWpbUDEzYz5gazBpWlxHW2U5ImtXWzIkbCVHMHNranBccGtrTElNXWslO1toaGBOc0E2InEzOEFPUnU2Ci1QcTgxN2FqWUtOWWx1QWo2bFZKW0VeXkpLcUVKSCs5JWZTVzpbSVFvSyhiI0pSIkgiW2lRNlsoa0sobV42NFxbTgotVWNHWmdJJ2M2S1ckZmMvJ2ZwIW1mVF9SSUNzOTcjM2dSNDZTU0AsOGxtMiEzW2VmXWIzWlxcUVVjJ09OXjdaSHIKLUZcVF1iU3E3NSkqRlxoTjZrRmJYV1peR2M7QXF0aVRSXGdCMFxELSppVCFLXU4yNCpBYzlpKC1xYC8nIlcuUlE7Ci1rWT9kOzNlcGkoInVzN2ZfTkB0Z1RiS0tsLUN0SkZmUjQhPyJIbkItRzUuZ1hMS1RfQCdVTV09JFZkblYzbFNzIwotL1Y3IjgnRGhcOlRhIWk8J18zPStaJFMuPmIjVGZXUGFUaE5xRTFgJlVVIklTLyhQJF40MkpFSVFXP203JlQiLjcKLV5vPmZnLj0zWFhxUzxYQmVVSWRiYSI3V2RhY1YrZjdnKFglcUdAPmQxbzw7SC1eOGluSzFMNXJZIT1oIVU1TGNRCi1dU2x0K0puPzMwOE4wbG9cdCJ0UGFpSzxlM2JNPyclWktvUDlyV2IsNlJaLm1aXjxBaEgpIVBOO0BiciokbzYxRAotQ2VcUD1JQGcndEJ1bzRnTmkxTko+M3E4SUxSS1NFIjgockU7bmMwaTNVOC5CNzIyQD8mSkNbPG9lRUVEJlouQmEKLSYtWD1BSE90TVtCLixfcVExX1lGLkZkLjtlQlY8aWZiZlFIUjl1YypWTCk0L0o/VmdgbE9ISEw/O3MwVTcmP3VPCi1QOidDNDo4dC90IV1oQjxfNS1YVmZaPjs7MipuIj0hQWZyJ2FySUg7SVI5YGlRJ2hiSylXT0pVWCJwVWk5I1dEZgotLVciP0A4JUIsKE1UXCtzMFBSP1U+JFJmRTlGOzVaNSFBdGBIQGZOdVg2Yj9aI0NxPWAzQiY8cSxcOWlOJ1lII1AKLVJMPGRGVGZvYWoiTCNtVjktQDkmQVdXJmwzRTNSMTFtU1NRLjI/TTQ4WktCcyFoRWUnUSZ0U28uYi1JbkBIXDIkCi1eOjoqM1s5WlVCQSQ2ODhdYkgpVyIlLmtSNUtFLWoiKXIqYTgyckkzMmdpLk1ZZjkxYUdZJkBAN1NqKjNVTlM5OwotKDsjNiVcS0U4czwsV040IzFvPTk/REVYMERnZzxOQU91aD0xU29AXyJvMGwzbTFBMSVnLWtFNm5BJlFzcnJYcmkKLUQzbUVFXVFjKC4mNTFPP0UvayI2PTpzO1JcRUojJzxYP0E1SE8jW0wsIVxCfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjM5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VDIC9JbWFnZUkgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vWE9iamVjdCA8PCAvSW04IDE2MzIgMCBSIC9JbTkgMTYzNCAwIFIgL0ltMTAgMTYzNSAwIFIgL0ltMTEgMTYzNiAwIFIgL0ltMTIgMTYzNyAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTOCAxNjMzIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNjQwIDAgb2JqCi08PCAvRmlsdGVyIC9BU0NJSTg1RGVjb2RlIC9MZW5ndGggOTc3ID4+IAotc3RyZWFtCi0KLSEhISEiITxFNichV3JOLCI5XGkyIlUsKTcicFA4OSM2dEo+I1JDX0MjbXEiSCRPWz1PJTFOZFclTScnXCYuZkJiCi0mSjVXZyZlYm9sJywpI24nR004cydjJVEjKERkbCkoYDQvMClCMFY3KiNvcT0qPz8xQipabElHKyEyUkkrPFZnTgotK1gvKlMsOW5FWSxVPVpeLHB0JmYtbiRKbS40SF9yLlAhIyIvMWA+Jy8xYEEpL004WS4wLyJ0NDBKRzQ5MGYoVUEKLTFjLiRIMilSOU0yRSpRUjMmaWxYM0I5KVszQkIyXjQkLE1kND9QYmk0WyklbjVYN1MjNXNbaCg2OjQrLTZwc0YzCi03N0JbODdSZmo6N242Jz84NFo8RDhQMlRJOTFxb1A5aGVBWDovPVldOmYndGM7LEw0aDtHcENqO2M/VW88KWNqdAotPEU8LiQ9JyZJKj1CSmExPiRHMzg+WzFOPj8hVWNDPz0uJkg/WEkvSj9zbURPQDpFXFRAcTAiWkE3VDphQW5QYWgKLUJQOyduQmtfPHNDMjdVI0NpIXAoQ2khcypEL082L0RmOVE1RSxdZjpFSD8yQkZFRFZJRmBoa05HJ0EuU0deK0lZCi1IJE9bXEgkWGRfSFtDKmVJIWc/akk9P1dvSjpOMCRKVXJFKUpxSl0uS1M1IzRLblk1N0tuYj46TFBMWUBMa3BuRQotTTJJMUpNaTNMUU5LJnNZTmZUNl5PSD5RZE9jYmZpUCoxdWtQRVYycFBhJUd1USdSYCVRXj0mLFJAME00UltdZTkKLVM9SCs/U1hsQERTdERYSVQ6X2FLVFYvIVBUcVw5VVVTRlRbVW5qbGJWUGc+aVcyUVlvV011bnRXaU4yJFhLOE0pCi1YSzhQK1hmZWgwWUhQLjZZY3RDO1oqVWRDWydbM0pbQypIT1teV2BUXEBCJllcQEIpW1xbb0FgXT1ZXGZdWShxawotXXRWNHBecWRiJV84NCIqX1NhOi9gNUtVNWBQb2c4YFEjcDthMmM2QWFOMktGYWlfY0tiZm47VWMtPVBaY0hqaF8KLWQqVS5lZEYkQ2pkYUhSbGUnbGRxZUM8JSFlXmk9JmZAU1gtZyJHKjVnPXRCOmd0Xl1AaDstckVoVls1SmhyIT5MCi1pOEVTUWlTcmtWajVdMVxqUSxJY2szKHBqa2loNnBsMDdLdWxLZGQlbGcqbSdtLU8tLG1JJ0UxbipmYDduRjV1PAotbmFsQURvXnFlS3AlQSVQcEBuPVVxIlhYWnEiWFtccT4wc2FxdHA5Z3I7P05sclNRTWl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2NDEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1OTkgMCBSIAotL1Jlc291cmNlcyAxNjQ2IDAgUiAKLS9Db250ZW50cyAxNjQ1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTY0NCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNjQyIDAgb2JqCi08PCAKLS9EIFsgMTY0MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2NDMgMCBvYmoKLTw8IAotL0QgWyAxNjQxIDAgUiAvWFlaIG51bGwgNDg3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjQ0IDAgb2JqCi08PCAKLS9QIDE2NDEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjMxIDAgUiAKLS9OIDE2NTEgMCBSIAotPj4gCi1lbmRvYmoKLTE2NDUgMCBvYmoKLTw8IC9MZW5ndGggMjcyMyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2AwUWkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2xMOzhLJjEqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cLl5fCi03dSI6LltjI2RJLkVKMCQ7MnEkNSUzM2xrcjBWVXJxRD01Z0wnJD1hZSJCWy1NP0ZzKSFTSDlzJjVRJlVQRys1cAotPlNKKU5hJV86PmFEWCwsTko6ZChLXDBORExfIl0zR2RkTWY1Uk5ycG1RNiVsYlJjb0o2WGgsQlcuWFJOIk1sbysKLW9SbTgnNVc6bjxfV2lUUzpgS2MvJUtpQmIvV0N0PDVtRUBxWV1nUG9ZMSxXak5KWnVvKC42SUQ1ZC0yOEhWPms9Ci0sPDNnaU5gIW1aIkdKUjcyJUUqWWk7NEVdY0o0YTJgTmpURVo2NzshY2tySClNQGJIOFRgQXBcImk3TSxrY01zYgotVkFLTU5aPVg8IUA2Z2JKNShiUVMyW2pVQ19OZycpUi0kPmRAbj1LLVgoL2NfYUsrPm48XF1TdGJtcGhwaiQ7Wj4KLUwqPT8wKkBoLWpqVzstZy4uQXNNWW1VdCEiOVVANzNAYmdIaSZWJTpHZyRxXjpQLHU6ODBcRTInVDhdWVBhQi8vCi04OSRMOkpTYFdzVGgyJzYwVDosN29HOVRAXDVGPCQ1c2dHRzQkdCMrQmIkKVUpYWNMdTBeRFVlV3IhPCQ0SlFzKQotX2ktdCtfRGh0MWtmYzAmNlRsQUpOVDRGIipGNit1OTVNODlPTmg1dUsmU1stNSc8XTwjMD9tMkZMbnVCMT01KyoKLToxLkouTDlnXU8/VE80UUAkcj9tNVlGZ01PVUtNcS8nQSZMcjRkJ3NxWiI+XiRzYUhNZmRgLDleayFjbTNfbWo0Ci1UYXNgakklaDBVUUYic1slRk9nIStbUHBJJChcXENtWTNCUEBqcE9pYClnYSVWLExqdVAtJVlkKkNeZUk6SyEhMgotIjtPJ3U8Um5GQ2E+bm9MYDJCQlAsRjRtO2UsalRoLTQtL0o/az9zND9yPVM8WkVnI1BXYCRcXk1gU3InYDIvP0kKLW9aRTYrSl0hWy9jKF08JkFfRi5lbWw0OFJxcmYyV0A6IjRJY1ciYSc4Q0QiXG4uOTdPJ1NBcVM8PlwjXjtuOHFFCi1wZiltWi9pWyxPLT4sQmdsITRJPEI5VzpxbmNiQnFEai9kUWoudHM3PU5LYToyQGo8STNYdF9gXTkuNy5oZF1IZQotQzxGIV4/PlZDNSYuSjNFM0I3UCIhZjkuSTFYPG5uJUkqL2VsMyUyY2w4Y1AxNWYsVGhaZTN1WydBLj1nTVElTEUKLW88LDxLNV0lI2JpMUNqIW1LYG9JVU5OYykwU1wvJ1Y4Sls2PVU1UWZTdSJDUCRGISQtXnJSRldbcForbTQ4TEhuCi1aJE5PLW1TQkJdLWo/RlpJZmhCQCloU0lmJSdFXy8pIUdGVyIpcjBBT0teV3BmOFNHbEY5ayFbUTIvKnAzOVF0cwotMiQ9SmgxLichNSMwUG9yOkc7YyhUMTpgYSs0OztbYyVTdF8nZ0VEaG9OIzg/TSxGUS43aD1LVTooLztCKGtVdDMKLUluZFI2M3BRREAvLnVeamYpKzBUJF0zZkEhNXM6IlxxWiZsSmJ1V1FeOzlxK2BHYFtPKiE1JjkkayRlTyJVdW4nCi1bKVNXYyItWlVkI1xfSUFkYHRkT1FuZWpLPUxUKE02Q2NsakxPSU5cKkBfPjgpb0pta0s1JXVtUkBtXmxVbzY5WAotITgrdU9qV2E4aThvK1k8TTBVYURKclNhMm83QE5GOFxgLHVsLz8uST9FMHVLXjgpMkg2U3BLPUpYI2htYF46a04KLWxTVkhEVkUuRWhGVjJcRFs/VGAxPF1DXkMlIlhocSM2PFE1T2c1SlY6YClNSTYqWEIxV1FfaTohKER1Sldeb10xCi1rIVtZRicqZzlsKWojI04kdElDbzNca002ZCVKQXBfP2I2dStjJjFOPGpcWGAuVE4yNTwjWXArVUZUcVM0SFc1PgotYlYrKTw4RWhbXUxcJDc4Oi5SUzdQWWMnJmlPVCE2PVJSdDFGMzluamJvImdZJ0xORSgvPl4+UlYpOmsvJk9MXzMKLVYiLWpNYVtGJEdsJHQwc2lLLG11NWZ1XllyOFw5R04jJzwzIS49cWVAQj5TYDI/RWxBJGM3OFotYyhOXjEyO3FMCi1WYzdpOTFjWE9HKVNUMF5yMGpZMT09O1kxO2NjcVhMRlB1dFI2TWZaamxbaV5ZNF5tPyJ1V2gvYlpxXmZqdDc2dQotOSYyPXUkMShWY1JMdDBOKDRSazRSXkI2WTJRMTMsVyFYWWIlNUJXaGcoZ1VxWHAlUmBGckhcIU1ROTZOVyhAR2wKLV8sNXRcKjBpKC87UGlyIWIvaDFML1g2TDklNiNwJWc9Km5aJ0ReZFxRRSRlZTNzOmciK19cQk46O2pIPShLZkQ2Ci02JmtTJThfRyZAQUUyXm8vRjZ1UmVtJCNVX2pVJClAPyswWSg7aV5KJDNzSnIiPllTVT41Y0A+aSo9Z15hIWwvVQotQ19iMThPMi5JWCFYWjEpUl9YL1JcIic4TlJcPi81QV1MUl5IbU9NTjQrKyJyZChadF1yJmhANW8xPyg3Vk50ZmAKLWVrJz9dIi1WZFVHZHVCPV0yR1MtRUVmKmBJLjc3SDBScUZfJ0YidDA1OjUnblZOYGdxUkpAPHJfNkFaQSIoPkRxCi1uaFNCaT03bGMwS0s7bTRDRjpXNEROWj47LW5yKls3JmlOLyhrWWBOJVtXWEM6SFIwSlhCIT86cHA8L2BkaTk1RAotXShsaCVlSV45VEI0UnVuRDkjW2BSYDUmLlc8NUhJWFUyZ2snQkw6MlpzaT1FTUVyY3BNIV5cOi9SP11xO2FCP0gKLVJYKC8+MDFdOC1RMEFEU1JyQFwrRlMsOjpiRVheallXTiJRbiw+N1YoTEhDXyxdPG5GZG8wJEssSEEiPEpBJ1lCCi0wOC9PPU83QHQzMztaMmFKck0sVSlZTyhsV2BDKihvSWdjXTZZPThrRTBtIjxWRXJIXWE+V1ppJjEzUmxdYTQyUQotUC9KRGo8MEBgMF8ycFQjLWohailQNEp0aGFlN1FsLGchUFpwUDQ5NDIpPHFgSEBtZzs2LVwhcGk+X05FKXVdRnUKLVw0N0RdK09oNT5TZGlVdHEydHQwZjkkaW85P042dCpdRSghYWNOKXVhVHRbImpXKUxkIiFhI1NxMEUkJDROUTpbCi0mOGhzJlZfQDY6LV9rZEJWRiNTUEFnO15PUnJLSnNjM1FwPWwyOiJFSytNXEczKToxSkkoXyhScmpVQkpWZTUxIQotPkh0JE1lXlAnLyUzUWJ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2NDYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE2NDcgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE1OTkgMCBSIAotL1Jlc291cmNlcyAxNjUzIDAgUiAKLS9Db250ZW50cyAxNjUyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTY1MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNjQ4IDAgb2JqCi08PCAKLS9EIFsgMTY0NyAwIFIgL1hZWiBudWxsIDYwOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY0OSAwIG9iagotPDwgCi0vRCBbIDE2NDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjUwIDAgb2JqCi08PCAKLS9EIFsgMTY0NyAwIFIgL1hZWiBudWxsIDU5MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY1MSAwIG9iagotPDwgCi0vUCAxNjQ3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTY0NCAwIFIgCi0vTiAxNjU2IDAgUiAKLT4+IAotZW5kb2JqCi0xNjUyIDAgb2JqCi08PCAvTGVuZ3RoIDMwODMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdgMS0kMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiUlVyLiU7MkUoPTBpN3F0Q2MlMHM4aylgbktdJGYrUnVIPi4oa0JcOTNkOy9fIiJeUEEKLUJzMz0mU2onJlNrQjQqI0MhYEdCYFk2UTclNTVWLVs0Sjg7InE0JT1pWy8mSFtNMCgkNWdrcHFVRFc0NCVGNFJmCi0wb2VVbGA6QVFoIiVvVSJpbyJEZCMsdF9nMzxfI3A6Ym9aY0JaYDdESkg0T18iOVl0TV9bYFlKTCk1WVM9Qj1sUQotJWhtJExOLCRGIiRcVCo7OV9RJ1guKioqXFU3ZGE7S3JhZypNX0hnaj9sMixNVE1aVz4wJiIjcEtGbScscF4iXW4KLWJiZnJiXDZLbjQkWmIvPF1sLC1xMykjTXNkJ1xXMEtCVDtNXypiamxhTUdlaiM3Vm9eYXFrMHA4P1cxK1A1c0FzCi1gTyQlSzMyZmZAUGY5XW09QCEvLWxvO2pCTmFvLmoicUMqITVWaWZuQltTZEowcTZjQTheIj5JZ0JKLkBVO1ZnIgotVThdWElFJEF1dV1eSkomWTpLY3Q0VjEqMyhoT19AIVhQR0VkMWY3ZjBOLGRxTGNJP1c/KiQrUkVgOklIS0VFLjEKLTpsVVRRZTIwaStsRnQwYV9fUVdRY3Ihb2MwS1B0Smw3ZTNbRmcvKm8mVWUoOE1MZVo6P1xLLWpMLFkrUD4jclBzCi08XDokW2ZsaCUsKU1ZVGZjOEkxM1JeIVhkYl8pdVgtZGQjXDBoc0prYnVOWFtedW9aLU9mNkRZJVxtVlgtSFlacAotakcnRFRXXCE6OEJLUTNeZDtLMm9YP0I/aWpyX21aXUJsTEA6ViYocEw5amhScyEsP3JYXWhFIytHNU8xXGgpcS4KLUJRNyc4MmFMcWlMLTEra11HL0ZcLkUiOllgJCMtPjhJYkViNXFeLihKQVxvUGQhM1R1Wi1NRVRuRHElZUtkJHV1Ci0wXWBZI0pTa0FqaSZEX1FVKCxcNVEiRmZWViM4KWhVUDBZajhJYEpgMVE7dVtmbjlmQyJeIVkrJ1pzR3NFVGVzdQotUyUrSk9Ma2RINnFWQTBvY2NUWGFLVk41OzExaTxCYXVpWmRucXMzYiVDPldoMEhpakNVSDY5TTpjTVI4I1skR08KLUpQMD5jIjlbQkQ+OypnWmJydTozLEpsR0xqIitAVEtIQEoqM2RcOlBSJztQL3BqdE8qbWFuTkgpLUQjOWlLYGhgCi1aS2dMV1xlUlliUkhsRENBOT9GbEtqMlkqcTFfdSlbSzRfdCJKTG8wImlaRlVfM2NkJTdRTDFXNVo3XVRAPFhBQwotUTFNWyNxWjU9XC1qQHVDKF9ddTJhOS5TO0lWUEIsVF1iRDIoLFJDUS0oT2U8X0BZMVRPPjFLP29dVlYjQGIkJE0KLUg8ODVcLktZXVAkaXJgRiVLcm4sLjdGNkwmTmBCaiNBSlAhZUlpZ2Q4N2FNZmlWKyloW2ksaVVNYF4+PHApKCpACi08bkBuI0VDTFlbWHMvXC82ODM9XiRvUkUzbmZGcF1SWEBgQ2kyRTtKJWcvRT9sXCItOmcnOUNLYlkkVkEtYChaVQotWSZxSnNfYFZMLWRBOTVfMnJdVi9QTUNnJ1ojdT48WkZTSzZhKkI6Y0cqa180PFhUUXRFWFc1XzBMTixjIjAqcS0KLWQ9UDJoVm5lNUUsOzlTTCY/cztXZCw8PUI/cylAN3E1ZVRIYTksZ2QtI0FaIjFhKTRSLTVvQkZaJTQvQEs9KEMrCi0iO19QYDc7OTorLC1NSE9OV2ZjQ2xgLnE7Ky1RYnBBXThJSC9kViUtT19BP0VOTEBKbCdadXUoRWJZaDFrIV9dTQotRF4vMC0+bV1KRzIkUiMiI1FbbWw5YFduJjQnRU8yJGotV3VsdWtaREAtL0Y6I1w3aVlGdWRlXlUodUQ/LXA3aGMKLT5jU0U/LGxyIlAzMEdGaWQqcT1qUmBSRXBlJ2FIYyxUZiVsbS5hS200VyxEPl9BSmc+QTlNcihMPSplTyRrPllnCi1KLSFAYjAwMXFcZG9xJkk3S2ltcycjSmxnYXMqOEMiXENHSz41VkpSY18vZl8xXW47JDwlPmpzL2VncDg7Li9XaQotYUM5Q3E4XCUkdXEtXFIyY24vPXBDKmMzU0UzPl5tLXFHV1ZxVCFddG8sWCklIU11bzBSbkYlYD9YK25dKDJnQFMKLVwiZClnP3QkL21HbU9eOk5kKStmSCJgRT5fQkIrKiQ6MkxFIzNPQCdPZVxORSdPISNraS4+KWxmMDYndSc6aS09Ci1IMjRUSXBFOiorX0tecXBgTF9oNGFxOFhTJVMpK2knIVRTIWsvX0hObV81WidXXVdaKV1tMWREZF1rVidUV01PTwotMGEuUlJxQzZJRldHV3MlXEM5UWJhPFh0Wj89XGhGUTl0RSk8RGE5WDVXM3RuZS5iMUtiNjRYJTNeby01T01SI3AKLT50Q0NWXWJdWkpPRTBKUThETmAjJWZAIlVkIyZrSChnZFU7LW8zbydtTGBdL0shXS8xKEVFOlg9WU9dbVBBUi48Ci0rVz0ldTZfYiQtODV1ZGVWWXNZZm0ocCs3KkRLKD8qRm9eRHJFS2I+OE9kRmpPT2c1Z0RLQ28yaUByPVxYLj5cTwotMldsInFdRXNHIjVbT2phZUo4QFI8SyZUQixkUlVrVi5NdSxOUVJ0I0YiTVAuTD5tUyE2UVB1L0BEUF40KW5yYScKLUUrTyNeJlxKPE5bL2hFUGRFVz5VNW5eaSNYbWRLQEJMLmBhYyIoIjVKWEE+YVtsInNKb3JzTmo5UypeJFFTPCY1Ci1rWlRiYDI5dSNjb09hJVsnWjgxcCVpTjgmQjAudTExRyw0KmRLby1fUUkwbSxsISYiKyQlbExmcGVUUU1udUk+UAotYSddbVlULylBNkRkZ3NzU2UxRjMqKyJqdEpEOyYxL0FmWylOYiwqYWUzKWA9REI8WTdlQ1UsMFo9Y2UvWVZodSkKLTVpaEhSQVRQMU1bNmU5I1c2a2ZmIyFnanVvNWxBVUptRE5NZENvc0psWnRWRTBDK1ZXKWZbbiVgZC08JC1mIkZYCi1vRE1vP0htYG44U11ELV9ZW1dYWEg+Szo6aEtdLCdOdDFcXikvYT0yNjI1cExlc29OWmspY05nMmtNJj8+XiUxUwotUzldKDomOSJiWj50biJGWkFiJlpyJnBMWEhLdCY9XG9qVlhZQy0nWUtrOWBvNlNDYVdnIjJxTFVTWCE6cDwsY2MKLS1gKlFqXTM6TXFVTkVZaGBKLGdvL2hGUCheZShfRzteZyI4Z1M4Z2lYRlY1XW9hZVV1VmNfcT1UPDhAZVpxbD0hCi02cjlnNiNeLmZjWVBIY0ciV2c2UTgmUVNnUm07OiprYT9DMTpKJihqMCs6bCwnXFtKTyhkczFlUFgkQU5oMnQtPAotRkFxWnEtcWZkP2I1SW1DSy5fZ0QjSks3O1o8aDNAI21XO1syTUhiTDNeal82YzYyMXBrNT1kKD4xIUdQMVo3JkkKLV4xcjAtXzFCJmwsXjoyVGA3QUpFQks8NnE0UHA2Pi89T1hFaSVOdE1oI0A+W3AmQmckcTdqdT5SdClGVV9EOC5PCi1tZjAmMHMnUylWVSlzPDwhaiMzMHMkTFY/XmgsJk0nSjVDYSFcYlRQaStgSyhKSEJjbiI7IT5lJi44Ty40P25vKgotISJeUCUrRFYrQTZOW0ZdIkwkXGJVTkhcTVIwNjxoImplIy4wUFdQYUowNXN+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2NTMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTY1NCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTU5OSAwIFIgCi0vUmVzb3VyY2VzIDE2NTggMCBSIAotL0NvbnRlbnRzIDE2NTcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjU2IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2NTUgMCBvYmoKLTw8IAotL0QgWyAxNjU0IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY1NiAwIG9iagotPDwgCi0vUCAxNjU0IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTY1MSAwIFIgCi0vTiAxNjYyIDAgUiAKLT4+IAotZW5kb2JqCi0xNjU3IDAgb2JqCi08PCAvTGVuZ3RoIDI1OTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdgMV00MWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiKWA5R2ozTjVDQSZGLDhJQmNYZW8iaUNBPTRLMSVMNzdKKHQvTWJbLUtaJToxUiZHT08KLTMjaTxcX2VOPVA0YDZYRkg6JV5gZyhjRnJNP2tEZ1c3NFdUJSldJHIyP1grKWRRKjdyVzkxdCRqKjhjWiVZTWpcCi0xNiYlN2kwQjc5YT9WSGdZUTNOQFglZGlwI1JxQDMuUSMoWVo/Nj0pSkg0YUZMKj0/LzE1cz9JQDJUS0tFNWpZZQotXyNRX05LZCJOSykyMDVkcl0/KW4oZEwlajZWSyFXTkojO00vckc2WT81QmBsTUNjUUZjYk5CZiI5VFJbKktFTCsKLWIscmJtcVJFXlsmS0UjJV9RXk85JyNqQyJBZiInW1dmbEpSXzI5ZjY6V1Q3XSlbOzFYZ21ZOkRxW1lYJk9LZG04Ci0rTzlQSm4+XTdmIlMyaDhQTGZIJmNjRSd1X3BCN1gsUnFYUitVTSNASzVgVG42UiNSTzdlKXFPM3QqbDhfRClMXQota2lhdE1GQXReZk5UMjhlMThTRi9vLillPC5hV3MpWGZ1RykuVlloUzdTWS9jOmNNMS0jWyVpTEpQQDshLkRgNW4KLSk/cFs8Z288Ul8pVCJRYF9rTDQjYyhQLW8wYiRKdWEqMGliakE3ZkdVU0lvJT9MMEw9PUFIYW5sOEhbQUZjTjktCi1QYGtDRD5eJVtsLztGa2xpRyRnWFhmbFEjXy41X2o+SU9NT0xnNjkoVU5HPTlDMCpJOiIvK3M4S0dDMDQzbEExQgotWVJoKGFyLGF1LT0zYmAvNis8XVczYW0yLCpAdEd1L2dlTnJbWVJlPjooWGg4Q2ZlR2FCZFNobSRCQ3E7I10+aV8KLT5pOURnK01oUFljOFNiXiE3IUsvQGdpW0VOQVxDaiErZ15IaERYUWxqbE4xQnFDJT5YWFFYOFlMcSsvPFI+WTZMCi1WUFQ6O10iVUQyLzxsMXRZQWZBXyFZYnVBQW1fb1dxZC8kZFouazdYJVpFSkVKSiRhX1k1Pj9iZ24raEpFNzM9LgotVylZbU0zIzJxP09OSz5gX2BvPElBOiI1S150Z2xqWkJeSFg6ckFpMy8zWEBYQCtbYSNJcDBgYCsjP0UrPjkjY2QKLTE4VSxKbGIuYG5mXWcmYEJvUWtrQk5hM15wQGhfMzpWSVZzRjlNX29xZ01vL0daIVxgMTEnNWJoVDpJTlhuZmFQCi1CPmliMlVQTlhQLW9hOyNXcFo4V21XJ24lT3U8TT4kM0QwZCVGNj5HK1M1YFxnJDxkJTlZbSxRNzM7MmpBKVckRAotK2lDb08pJD9ML0BWbFpGT1o+QyVyN19vJktMKDxgK09oSXNkZzlGbUBGMipbVykyZWYxY0tmRC5KKCdYJjAiSSsKLT1FaXFPKWE+W2Q5cEszTjwzVU04IWpHXyppZGo5WVlqYT9HI1JYYFg0JWpgbVJNVVIzVCtrWEsyMUAvWS8lTHNOCi1iU2RXUE1wWywpYF0vZE0nQi5oRWw7V1pfOmhVO3JFaCpANzpfXFA4TjVlXSMwbSMiaEBRM0whViRONEUsMCpbOwotLkM1XWxlR3MxamxBOENnQiZQJEI9cXFQckQlPDtZY2wsT1EtcSZsNlM+SUtkI1VPTDhCKC5OYjU1PERqKDFQUW0KLSVVOVZPMWQ1RWwvKzgoSkxsSWxuX0w9aEFhJlhWVjhNYDg+S0FLaWc/JWkwLTVZK20yI2luV21ebGZsSCtPNyM0Ci1PbClaQjNYYSRJS0YvcVI3VyxRJ0lrdGZHQDJcQF0lZERBQ1gvLylmSzoyaktfOUIsKywuPGpfKGlQJ25PbV0tRwotT1cjJ2ljJkdNYFw1I0lpM2BjVztTVz1CbDgqRzJ0LSI4OSVkInNgVTBaYzhCNFY9MjwtPzVfWjkhMmpGUGJNI1sKLWBtWE0pYlwralhVVk1Gcjk6ODBmUCN1V2shUmBcTl5mazdiWVxVJTM6JTImS2Ywbk9uLF9XS04kK3EwNiVNLVddCi04MT4iVzFKIyY3QE1ENFZGUlR1My4jK19UTVEvM1Y3WVxWUCFgUG00JnMvbmtOSXU7TCRrIyc6IlReUzpZXzRxIQotQnRCN1oraEROYF9Tbjl1KjEvaic+VCZyPmU5X1tWZE9hWC9HPV9TWVg1T2VDLWFYalBWUFAnLCIhaEVdNzpgTm8KLVRcXlkza1xiN1FLJTNyZEduRE1sPj8+WHRkKTg/aU8mPkM5VGhJJU07VC0obmFmJmJdKCVhSUUzSTlhdHE4WUs8Ci1KRTtDYlUoIUVrR0hXQV5sKCheW1skQ2QxREs6T2xRV1xwTW1eJjVgaTRPYUpLRl82JDgwQ0oxLjUyb1xNQWc6PAotXVBZXyRhO0VpIyRAdS4iWzNdOicwUW4pKGc+MEZHXnJsZEdrb2cuNkEqUjlLVihkWF5tPSMnOUhOWD5cJDNDNSkKLUdEay5fM2k/KWk/OT8+VWkqaWZoaVBQPzxISWpZNlNiOG91Ni9MTV5WRnA1bTJbYi9bKSQ8QlQqTzF0ZSMuUypaCi0/cT9cKT9WOSVnR1csa1pYRGBjMlNlXS05K3JhWFwvOXNwclNbJlNCcF8hRS4lKnJacCNxPElXJyJgajsoITJARAotSl9hV3RiOnU0UmBadSJbX1YmTyQ2Jk1rWnE2bVlZJC85dWxXNUMxQCJYKVM9IWZZJ3IkMSdGQ249cCJSWkRgL3AKLSFhYGYoWFREc1c9ZGo9X0Q4MXRJcmFQYi0/WkRBZ2BtYDZSQG1dYUlKUEs8MzgrP09tRnFKUHA0bUdUZSZbciFhCi1fQik5TkRwTSMtKDlrJEEkQWptJSJVUihrVHFqdTVGW14iPyheQ0ozV0pAMWs4SSRTXWsuWVNXZCUjLzxHIWlfRQotM2A4NWNQXCVabzVVWzg7UnRAcF82VGxVciFSMXEqMldLMzohLT5VTS0lQjZFaChibztBVFZiYSgwZXFTWnFsaDUKLTpjZzYrbGpdUF1SSVgkUDBFR1d1KFtmJVtSZyRkU2lUZDJdb1pwbXFRIVhdRCpbYFlZXS1hVSs3RlVybFZKUU8vCi1bRCcwdVpIMDVDN0QjZUg2KDduTiI5fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjU4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTY1OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTU5OSAwIFIgCi0vUmVzb3VyY2VzIDE2NjQgMCBSIAotL0NvbnRlbnRzIDE2NjMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjYyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2NjAgMCBvYmoKLTw8IAotL0QgWyAxNjU5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY2MSAwIG9iagotPDwgCi0vRCBbIDE2NTkgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2NjIgMCBvYmoKLTw8IAotL1AgMTY1OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE2NTYgMCBSIAotL04gMTY2OCAwIFIgCi0+PiAKLWVuZG9iagotMTY2MyAwIG9iagotPDwgL0xlbmd0aCAxOTMxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83Y09qbjFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIlJVci4lKDVUZ09kOSo6ZjQjSjI2Oj1KNnNVdGZTb0EyMXElOm9IWCQycUJMRWxOK0xcCi1DYyVbLVFXbCpZU0krQTlANkRCMWsxMkYwO1RiLVxKQEp1KldbWDtSL1ZPNjM7QXQ6YDZhQVkxVU1DPyElUkVXcAotKiFIRmhgJjglIUNMNlRBV2xYYEIjW21pWiNzczhoYzhjOlhDMCd1PWokOmQiNjg0b1owb1ZscyRMPD9JR2ctRS4KLVdsaGRCJUZLTUMmZDhAc2w4RlRyRTlLPGVBJTlsQloybU0tLkxBW2s+LypDO1pOQyxcIU8tNmstQktMLikrRVNhCi1qdVNHR0ArYydOIXQ5ISRYKT41SW8uZVdcNTkway5FMms1a0pPakFsXyphckUyUy1kOCJLZkApUEg6I1FfJChmLgotN0RTdUoycEZeN21tVm06Wj81RC82XWZNR2Bkbi0iTko+ZnVWKClNP1ROJT0rSk9JcEU7VFclWG5aMiI8ZC5LbVIKLSZDYElvQSMkZC1OKU0zUFhqLDAqZkhVU04xN0VyUSFIO11qNHBtYG5tMSluTDxGYV1UNkltIlkoNWk3dTZJam48Ci0oS2dCKGddazlLOThKP1ExQSY8WlkwdUYnUW1TTFgqJjgjLl9RWiQvajBJcypLcnFiVEdITHNrP0ExdTg+bTMpMwotRk9iai9OXkdCLG0jO00wXHVccHUhOVE3Qksxc19bYyxxTXMua2VgKTlrYWIzLi1OZVJPUWJVVCJUc0N1WV9BK0EKLVwubXFpWmIvSChbOExkMSJuKGw4KENYZVg/UUkrTlNTcWo9NiU0L1xfLS91aSdKI25mZFEuZDQqSSdJKCE/Z01gCi1OaVtLS1MqJlo2SCcuOkROPyhjKDZWLWtkTFRfYyNvYUJjTmg2RFlQcDsrIkdpU0wzIWRFcF1zZlBWamVyTnA7WgotI1hCIjROLFsmdGZAdTxvQzBLQEM0JWJIV0wxJW1jaUUwVFpLajxRWipISEQsV1lLPyQ6Q2ExOzRCM2JEanI+UWYKLSpPWGkrSCsqLD1UW0ZSL0hTM1hxRUJJMT4tZURBXFIuME4pWS0nRjZyLid0cyVEKHVCWWY8KjZxbk1OJyNoJ2dWCi0kTCI/SjssNGozVTIsam87UygnQlw2WTprOTg9RCpFV1huQS9xYjk6b0MpVCUzNS1NcUomTjJ0NmQnT2QlbD89MAotb0o2Jy5nWFFgY1Y6Q29GZGBHV1FoZnFEOjE1PFlsZnExUVdKZSw1V1EtYkMuSzlMRnUmLD5KKyEvX2ciKGdkVy8KLVlWTyZhajtaIXUvLUpadWdhNlRbKHM8O0g6LmNnJExHMi1oZ2QqZStiWEswLnAlW1NsIjJIN2I2b200PmJhdCRaCi0lNS4tYW90XzoiIk4wUVhFRF48al1wT2M9X2taZE9OWVZpMWNwL1tcVV9aRGVyRF5FRSo9JjhAK3FCXXIxVyFnJgotJERDdV9MKE1FYiM1KkFsUl8xay07LypoYWFJSmkjZk0lNy0idGk8OjsnU3VGIWFdWWpLLnFzXChzcColLSI1Ol8KLSwxS3JcKHFPaHUuIiIrTnBGYE5lYT40I2NlPyxlZz9BbHUmMCs+XEgyXzM+Y0glUiQ9P2glImUxNThkOikwN0tECi05JTVkJGFHKFI3UDVLLiVKWHNrUk5udGQsKDJVLDtsOENYLShNJi11UCJaRlVhXTBKMzwyYiJOLiMobUo7bFg5UAotISRJQj5hWjs1RTozVyFSWlJgP25vPGlqZXFQRUs3UWdEKDVaTSViT2pzc2dMUDpiNjhCSkM8LT4iVXBBLSg7b2EKLSEvOyJAQTw7WC0xcDxoaTIrJCsxJGEjX040M0FQbUBmKTc5WGldW1hpNiEobktiMChxW0Q0aXNWWDBnL1s8RDEuCi1oKWlaKitYO0A4SCFzRzE0VS9MWEBROElBVFghckwiVnFvazFiVDxDZFlrT15gPC5BMk9EUWRhXiEzdV8sc2xYPAotNEAsRiJTYi1bI1ZfIzgtK2pQR05cVThPXyFcWFxdWipec1grSyM7PE5YZywiR0laU3U6JD1zdVRpQW1pXD5ndUgKLVEjY2Q0ZU5LRidhUEAhYkg6ZVVpXl8nWFVbTCM7SEBmdWR0XFY3aVMjYE1sIiJkVjFFZF5bTyljJF5ZMiZZQENxCi1aY2o+JHIvYF5CMWs6KX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTY2NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE2NjUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE2NzEgMCBSIAotL1Jlc291cmNlcyAxNjcwIDAgUiAKLS9Db250ZW50cyAxNjY5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTY2OCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNjY2IDAgb2JqCi08PCAKLS9EIFsgMTY2NSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2NjcgMCBvYmoKLTw8IAotL0QgWyAxNjY1IDAgUiAvWFlaIG51bGwgNTY3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjY4IDAgb2JqCi08PCAKLS9QIDE2NjUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjYyIDAgUiAKLS9OIDE2NzYgMCBSIAotPj4gCi1lbmRvYmoKLTE2NjkgMCBvYmoKLTw8IC9MZW5ndGggMjIxMyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2NQRikxZzJeU2BlNEVKUzgoJyZSWydlazFKTlQ4L2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJqT15OLyEzJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVlYJzxLCi1gXHM7cj9vNGMqSlxhZjZDMW9HRjtNWGYkZUlmPS9BbE9nITdLVlAhY3RQMiZNb0ZaV09kLCdQMz8rZiwmSShIPAotKztHNjojL2EkVmtUSUlTYE9mSGM/TjtNRyo1KUVLNUJzb15WKmEqOi9kM0J1cEB0aCJMZzFmYE1PSjhrNjMuMkQKLTBUTGNWYHEjKiIzKWhzSixAS2RsTmJxPFAqbCxTbDZtPCRhWWZbUDQ1bktKQU5IJjMsLj86MGxaUEdzRzp1NCM8Ci1kRFQ7dSUwSiQyMkZeNWZxQWxgNVROKTY2LEVvZTAlRGAkPSVSXFZEW01UQ1g2QjI4bDhaO00zYV5JRy0wP1wsXAotUidbJkc4ZzhwMy4mXUJNInNLQD0pWz1HaFRVQCxNNWQpPFEuZjdyU05UMi9JK3VSSkVgXSZtUEpDPlxOTik4QyMKLSI5WjBwMFRINmNiLHBKLiE2ZEtgX10xLzFWLjRLJGRMR2lWLTk7UjhfSCZIJW5mOjJiTEorXCRpW2tYJmYmWylDCi1MaFtuaG89TGdgM21QTjsrJz1jU2pbOlUkT05vcEZlNEFGVjRsS0FVUmIzMlw1V0I2QDhESDZqcC8nb1EkWSYlLAotIyI5LChgIy9iZkFeMjE0blZ1LkM+XidacjRQZmE2UGNUaFFYbENFbFFXVWokPiUnZiE0JWVOITdNJmgpL0BSN2kKLTxgVEpDaTZgaypLZGRqTiJ0YlIzTVxnWnMzNE5VXD9LNjJYL2tlNzdCb2tpIygpSlpaXC4sR0w1SVRWUkRub2RWCi0iKiElKFZBIiQqWEIhT2FAWDcqYVNBcFxxaDRYcmhyVjw1REgxJGxkYFUldSssJWxNcT8iLWkqMXNXIW44c0liXQotLDBSanAzX21jZWdtR1pdSjc9RWA/dGN0XyRBMWBeN29CR15vMUs3XkQoLm1fX2BNYGlgW1AqKzwzKiVyJTtmKUkKLU9OXUQ7RlwoXlRLSChuVzlpSTtKJExwcHBPQVpwTiFDXW1GNkI7NzFYPUhSOmF0U2ljY1FZPCUsM1lzTy0vaVlUCi1jPkFINWdtU0JZVzYsb0MwU1ptcDM0aUNWS0hlbGFCXTVfY1cucU9xPGVbcnI0SWRuOy4sNytVRCplXWwmQ2BKYQotaC0uI28jZjktIiwvIm8+QnMpXSxyN2kwcW86NS4tXHBXUDBSVmglWFVJVygiYSNEOyZVVSg7ZT5xZ0wzLk9ARDUKLVReOF5kbzZrM09Pa0NrYCdIUF5yKShUU2Y4P0ouUyJeQlo0PVlLK1UuLy1AIj8kVCJlImU6PDFBLz0+OE9uVms1Ci09ZWk8KWJnc1JEQ0JkTTUnVTsvRWtsVzFSRnBjTTMoTlpKRGM5KVBaTGM/KFFAKWEsZkdzK0RkIUFfJ104SVM0RQotMWJIW0Q/XDg+ZGdFMyg6NjtCZUxUZ14wKjwnI1heRHM+UDVmREpKZz4qMDc/SUlHKFA3Lz1vPEdtPmU8KU9HJ2EKLSRqXHEzIlY2PVdeMCRqRSc5RydWK1BKbHE9S1h1YmIxQCpqK0ovXnNEQEhWNl1FQTZZOzg6ZCcsSmNiWU4hX1sqCi0nc29gUkpITko2QD42XV8xPWNsVDlMOHNvZTxyQ1FtJXAydUUnN21OYHMuNHJYQz51ajMzKFcxLnRYTCFSay9fYgotI01ENTFVKGxHNjlYL01xcSxTVDFjRDg+aEBYN0VrNSFEP2ApNCE3IS50cjk1VFMpQTdPL3RfUFpGaHM5J0VmQyYKLWlGKW5KQmBeSSdgQU5gNmhFYVtmPF5pY2cpNEYpRSI9OC43LidVaTFfQVldS0BCQlAzNWomJWNDJzoqKypMM0dACi1IPDNFXUVYa0JfLkBvQ28qPlpoSDVaQyEyInUqYistOkpNS2lRMmpnaTYlblFwaCQvNktGbz1wWylHck9dZzwjYgotbiIoKFUnOCEvViQnYCxkLGZJZXUmbXVzcExdSGx0SDIwW1ZwZCNDMm9yOChOJTcxbFAuQXIrW1Q5UGAkZkAqc2gKLSwwUVo/MkZsXEspZ0crV0AmK2NwLjVNZGQuOVFjYEMsMU5ELG9ZPCpAQk1FRnImUz0rSE85PEZKNzY4PCchcDVMCi0+YD8qbCZcOSNPcTA2cFMuOGJoN29dV2BLSmVccz8sNlMkQDFyKU9YKTwyWFVSSUNdKSslbVlbLUdtajEkVCdnbwotb3FLNjxXcz5zMy0rdERJTDZJXm5xI3BjTik/UylyJysuJXJTbkt0WEwqNS4vIidxbzhRRVcnc2pdXSItJEVhZVwKLWA7cys8PTo/ZzFjYU9WXCdGL28jImpuV3NbQHJsSWAuNnJpQFJcST8oR24lJV5nbW1XbUg7L0FVP1NvKls7ZVBeCi05TnRRP2s/U0lnQ290Iy1dJStba1ZBXGxbJ2UhWElYLjElV0tBNmllMywmZkVsI1svUWYvbV00Jk9KQkpmPUgyWgotb09nY25WLChPZTRpJDlzRGdEOWVwYVloOWJTR2JLUTc5W084MTZOUyJRVSg7UjhbakM6U2VrKTQvOyloVHM1OkoKLTchT28zWU5bcF8rZD0vcCQ4PEZOVElAK1Q5WypSYyFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjcwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTY3MSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDE2NjUgMCBSIDE2NzIgMCBSIDE2NzkgMCBSIDE2ODUgMCBSIDE2OTQgMCBSIDE3MDIgMCBSIDE3MDggMCBSIDE3MTYgMCBSIAotMTcyMSAwIFIgMTcyNiAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMTI1NSAwIFIgCi0+PiAKLWVuZG9iagotMTY3MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTY3MSAwIFIgCi0vUmVzb3VyY2VzIDE2NzggMCBSIAotL0NvbnRlbnRzIDE2NzcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjc2IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2NzMgMCBvYmoKLTw8IAotL0QgWyAxNjcyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY3NCAwIG9iagotPDwgCi0vRCBbIDE2NzIgMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2NzUgMCBvYmoKLTw8IAotL0QgWyAxNjcyIDAgUiAvWFlaIG51bGwgMjQzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjc2IDAgb2JqCi08PCAKLS9QIDE2NzIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjY4IDAgUiAKLS9OIDE2ODIgMCBSIAotPj4gCi1lbmRvYmoKLTE2NzcgMCBvYmoKLTw8IC9MZW5ndGggMjUwMyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/QF5bdChadE09ViNSLXVDTit0QGtSWydlazFKTlQ4L2Y5S0wKLSJPZFt1YGI1bmxMPWkyVWpEbTJqJlJdU0szJlc8W1c+X2FrR1hPWl8rPiZwZ2siJzA5ZE5BYVJMMmgzdVlYJzxLCi1gXHM7cj9vNGMqSlxhaTViPFgnISZWTlRJWXRkLHQpSSFuTyU0OipwSkVWODwpLDZ0QUtXT0JVJjAtQksmXHQnXgotRj81cU9lVzFOLjpoTWhZOVckakRiWWheciZ1ZGQoQ2MycGUidDMtMSlbQGxxQ2A9ZzRVLSc4SSFMJSxgXGAjZioKLSdTYDxbOl80JUZHaFAnW19oNlw2TlQxVCZtNTwzbGs3JWluIS87JVBjUSMyK05eRiorUSZSRWNjbkxLMiE6MkQhCi1LO2NxWF00OG9JMGghZW5iayslYy5eblRUT2BUQ1NeMkwnaSoiPDVHbWVpcD9DQVJLRmJRP1JnM1hZX2knIlpNbAotX15AUzg5QGszKVl0M18tLmZmWG8zZlYjb2tlYD1xRSdPcz9fZyg1UiUmOmFPMyguMFRGWHQzdC10PDAtJU5DTWcKLVR1cjEtKVNtaWs+Nlk5NFRQMF0+VG0wTkokPCdVSVEmSGpkanVRITdXYE0pS2IvMU9PJWRzUigrM11AXmw4Zyg8Ci1iLXRSYkxwMGhwWSklSjQoQyFuaVZPRyk5YVE+SE82SnRacTxtX1VaMFg0Wi9sWS9uNVhlUzQ6PFQ9XSc+MVVbKQotPkQ+SyY7QGpAU1YpTWk4WktnP2E/MyglXm41US5za2Y4PmlJOCc4QWR0UV1yL3FUYHFSYlcmJDVUW1FtcSEnYj0KLSFUIXAwS2J1OWtLRlYqYihgP2MpMyNkRHFcPyhmKzw9X0BYTjJbMmpvWTAuaTMpRGciTzUjSmc1TytJN01CXW08Ci0mL1JWKFdhcUwuJj1iNllOUjx1VGxUNVUqXEk7L1ArQDAiQERZUUw6WCZMUmApWC5SbllhKDBiR2g9bmBqMTg7WgotXkQnNHU3SE5IRSoydWc6SnRoJjpvWC1ESjtoNzIsJUxlXzBoLTcuWjRiQ0AqWysuKE0iVGBqU0thZXJua1ZESTwKLT4tKzkvX2tucSg8UyVEYCdbdXMnVF9cY25cQy5SNilAUFU7IlFGaUkubj5gazpUTnIuQVc9S0U+YEV0ZjxxNGQ2Ci0xPSY1ZFh0a1wsZzk8T3UyMSEiT2VvJWgxaG5vdCIvJ01JdFNlaUIsciU3R29lJT9hI3BiQWVwJiNRdVg8RCJULQotWi01TmwlKCE8citgVmAyMi46RjhMQiVzdW1gVyR1PWk1aihZUlNFXG8zUFxXUSo1KEk2YDNKRT0kbDFfbE9oWzYKLSFrSyZfJ0IiNzJGZEI7SjpqPGdDPm1TXHAqIVBoaiowQVY/SXBuVVQhaGApQGNVX1B1Sj5OT1Uha1MrQDMqdXFECi1uRy5mLVMtXW9xRVhfLSQoJ2FIViN0XyslJGZNWEBLSjkyNjY4SGlAZCNnSzA9SCpwNy5cQCcuJ2NKUi1JI3J0TwotRCU2bUo8JCtAbCNTbS9XQUJxL3UnMlxQaj9WPmwkJFJKXyZedFEsXSRBRFpFbCJnUE1bMEdYLnJJPSYtMm0rUmkKLW0sPktzLz9QMipURUdCZEpYQUEjYmkmW0VpblI0LF5ibkZCSi5yMC9XZDwsMj5SInNYYGhfUDxyWm1vPElCPT5HCi0pV0ZkcConLzc3N09jPEFLbDJYLV5oRjNqbjI7TzsxKWtrTjUiXFRfLDtFaURTL3JrcTo5ISRRVy5fSUJfOEtWWAotITVvZmZXPk1wQlRqMyVZKUFHP3UnKTRoaFs+QVJvOEhVWV86WFJAQTQlVmtnYkNuKFkqcF00JzAnWk48S1VEOTMKLUVkZylZWXFyITU3JTJyJWgrWFhbWWQoVkBWQiZwI1FWI2ptNCcyOkYmXjZNJ2EyJUttNjw1KUwhdC1Wci5CIUc9Ci03bWJXOWdpb0hSbCgoWispLDJCajsrYE5zIiNMaSdQZlpnQiYwPkpeQl80VFsuO0suZ18zZ1NsVF43a1ZoS1gqaQotbWBYTmwlKlFGPyJwPnJUVjhcSWwmNTgjazFgV18pRlJwKTI2WDosK2A6M3FLQkY1L0o2VWQwZlN0QVNEXi8lQEEKLT9MbVVZZDwoWElOailxJEJWZUdNLEtpQGNMaVk6SCYybUtFRVpHbVA2T14+Jj9TVFk4RTZzMF9NSkZLUl1JO0VnCi1famUmV15uX3MmLEtwS1xKZXBzMUY+cGtRWF5AQiVGJltfJHE5YC82aiYycFlYTjxZWFYnSmcoPit1bi48UV9vIQotSCZQSGtIISxsNURRLExaW2IiXl0tWiJMLEwsTyZuZy5JL1YjOFE0LCFwKTJwYWJ0MidEbllxaVwqQShtYlw7KlsKLWg+ZjBvMXFNQC4iWF43QDwvKkk1TUhpOEEjQU5TVktmMjpKU0VPTlU5YXIrdStPViotX1UoZzNcLmJYKy1saEg0Ci1BV2otMCM9QV5kSC5ZKSEiUDcwRDE+JydYQGQ+UD9vUGpnRitzZT5UTjBCP15sOWg2VlNDX1InTCt1N1M7TyxcRQotQD1zcVddWVZCRShvSy1IRCVMTTZDSTZCUCk9J2NIL1tiY3RpNWlAJVM+R1dFbEY3dTYpQ0g6M1pJV1w7IyhXb3IKLUskNTwqbmFVJUBEYTUiSDVeY1ZsK0NXP0JDYCIiZHFpPSNIMz1FQTIsQEVNK2JdI1gjK1R1OVlhQ1I/LixWPTsoCi1YcWE6S1JLQUJSbjdKKnJSQjd1XW5WIzw1PCgsb2s0LmRddSdeVW9xPjdFWSwsWENTUGUsJClNYD1PZzAoUkM3dQotKWphL2hsPGMoa0pNPTJnJXNSOjs6a2pNVSlGS0JHWVZfbkErNEhbLyVUKnViZidvLHFhKkQ3I1poLTtwZU50Y1gKLU9LIy1fbG5QSFc0Si00Qypwb2cuTzRlMWRRZSQ1OWtKN0RJNXBbMGdMTl1AOzwyaEUrVzdQWiMlWjMnQlptXllACi0pIUE2QUE4IjAzNGRzYF9ZRnNadTtCXDg+cUJFOTBXcmVuLG9xYSEnZC44WTZVbkxhTClEYVc4SjpJfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNjc4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTY3OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTY3MSAwIFIgCi0vUmVzb3VyY2VzIDE2ODQgMCBSIAotL0NvbnRlbnRzIDE2ODMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNjgyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE2ODAgMCBvYmoKLTw8IAotL0QgWyAxNjc5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY4MSAwIG9iagotPDwgCi0vRCBbIDE2NzkgMCBSIC9YWVogbnVsbCA1MTkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2ODIgMCBvYmoKLTw8IAotL1AgMTY3OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE2NzYgMCBSIAotL04gMTY5MSAwIFIgCi0+PiAKLWVuZG9iagotMTY4MyAwIG9iagotPDwgL0xlbmd0aCAyNTc0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83Y1FRSTFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiwpLEA6dFcvN0tWUCFjdFAyJlI4NCZabltMaS0ycGZKVmUiTTAxCi1CZlImKUIxdCVpXDBzKk9jRERncFFFWFIzKEpCQEJmUnMsJVVuTiN1Lj8oJHA1a0RaQj5NQVBaNl9OOXIvdXBJaAotWmolcE4sKHEqZlcnRDorbGM8b1EsSDZpOCdGS0lYZFpxWWRIUFM/OitUVElYJTE6MXRxUSIsK0hFRTNbYVBcaDUKLVVCb2VDTiUlbFEyaVdHdGhFLlFCZTA2K3NPSUAkSTZMSXJgVy5yLWhUWSE3JlgwKnA/QD0vMiZOXkYpalg5OSRDCi1iNS4qbS4sPXRbZGc1Tkc4LitAaFlXS1tvPXVtLmdLQmclQWlHLzkuOl5XWSsnI3VgXkg4bihKS11dTG1LMWp1NgotXyFkS04xOzxuUzVXdTlFVE4lQXBfaktYQV1uNz1McTdgTylcMks/XVctOnFhQDcwdWA1ZjY7c1VPZmYmMzdqLCoKLSI1XjI8UEtXNUVMZ3JnJTI4LnJrazRwYWwvLCZxaW9qciZDZi5WQThZKSI8YWM3YiVgRWRNLT08X3VZJz1UXU1gCi0oKDVcXEEvVT5tOEJHby1pRlBiRD8uJVRnJ3NVaGI8Wiw0JDVaU2NVRkcyR1E8bjI5bTM9KUNBaj1lPCRUVmFhWwotPCxnL2hPITYiQTBvUCVlRj5EZExQVENTQztvUT8nN2FOdSQ0JE0rTWQ1O0RkUXBnbyhDLjg7VktGXmNHM0JQKXMKLVdbOCU/RC8zMWYiNztZMTVKXFgxQ0kiUW5INFU1MkdkXEZzXF5rJ3UmInMtT1QlVVVYR2xPaFNjNEwtOkdcR29nCi1LYzg1YU1XNEVWMkEmI0pnWFwtXEBndS4+JSYlaUZyYiheKUEzL2soIyZUbEVnOmkhOS1HMCxxSzFYLiMvPyh0NwotVStAMzhAPD1dME1NVWlaJl1DcThZcC45Uj8nI1VoRWJgbVMjNEEuKC1yPDJzYVJfUCtDWUwvRlglLEpyM1UyZTAKLS9fLmBtbDhNIiY0PDU1JWQ6QTBEIjlVSicobCYsV2hEV1lPcVtYaEUxKmhpKSI7NFBCLkxBXkM0UUNPRDtiWC4kCi1jOjkqMTNmXlBOJ0YzTUdgcmJvRjlBJEpebXNDb01LcCdNWl5CT15LVV9hNSRYbyRbZ11NJ3M7OnNfJUsvaWFKKwotcEVpRFVUSi85V2JRYltFVlBCSWgrRU05OzMmJzhVKHJMXzklJmZrLjYjc2hkJzNnbywvXCVzclVWK1g0Ll4wQkgKLU88S21EJGxEQFEuNzBdRydIIig6KkREI2Q0MzcxVjQ/Ji06X1tKTzhrSyNPYzVaNzcyV2RRUEgmO3FBPGdlQWZeCi1EQFBlSShVRnJoblA8Kig5ZE9OMyxWXDliIiRndTtrTGhjMiE5UmIuJjlVN2NHayVRWU1LbWNdLjxyKVVSRGosQgotIzBeNFdFbCJrSidzUVB0Nl5hJCtMWTxvLCtQJzA6LW8yKERcW11TJVcpP0FuYFdkXGtzLGdoSyUpS2FiSGddNicKLUwsSG1oYlVbJVNhZ3NHOi4tVE00WjFebThbMjUmJio7Ki1sVDVfZ3Mkb2puRywrVCsmNm5aaDBRNGpVJiw1R1MwCi1hVVFIIUdVc15JIilfJlk2OTFYSjsiNWRCZD9YMCdldGkrVFBfdDw0SlMuRCZeKkwzXzVvRSchYXVLOCRpLjtWLwotLXFqbz8zPC0tbHBnMkdHSk04ND82Rk9cUSs7ZVgyQzhFJz1WcyFTNE1oLXNFYThAayMnW2RjWzIhQ0pyM01zLlAKLT5zbGY3R0ZmS0ktQzRxMidGWi1uQjJaYEAzLSQ6ITg/YWo6WVMicjosSSFKMWUtcE1PI3JnLVBfQXUhT0Y+Nz8vCi1TS0FcLEheP0VENWYnVFApSCtAYj8vMztVI2cjdW8uTE1WVS85MW4sU2ZeWkU2TmZiSUZCc0ZJK0BFWUckdDVZYAotIjsrM2A5ZlNBSDYsYVJkIzxoTkUhKU9YRyQ+ViQpVWA0cU86XmA/UjhWSDtwUShsLUI5WmIrM1IqaVNnTDlwOEQKLVVGTDJJRWpkSm0hNlEtU0xpKlplQDEoVFghIm9vKEFScFRgW2FoRF86UipeUDp1VF02WChcKy01c2QrYWQ4XyxKCi0jQnNOanJIJ3QobyJrV1QpUTIpU181WFVZakpQRShvNEJJRFJWKitGUzlfOjJiYGhpajBBUzNEMiRtbFduYUVkTgotSCJLa3FqWyg9V2woKVFsSidaN2FUSVVSJSJsUTxqOUBYX1cmMjdyMWw/VSdLKUFgUylNSUNANHI3QGdVPG1aZUkKLUBtSWkuKFVOcSdtTSZSPEJRcU41L2RDZ1RKUm8vITVyazYuKT5jTzZiQ1YwJHAmQCIvNVhHTFUzMkRAYiIvViloCi0hbS4pYCRMOCRnPVoiNF9EPFo8TVRcdVo0bDJ1P01LYVBEMG5sXCRKQHU3O2tSN0NsJVEpOks2bUVYZmZHUj9HZAotOVktS2YsdG5yMGlKXVo/KHNdK188OnMpR0pmX3M/aEFxSW4payhMOSkzTFMyPCtraHM6ZT4xOCg0KzRcSypaKFMKLTgjWz5bakEsN2pASDlTN01QdV1CbGtpKXRGYCZUKSdTQSlXJDNDVnRWQy1MXyMqcWVxZU8oXVlIMV0iL2QqYGZMCi02M10xR15AQmhNPHRBO2EzallpKGNhdU1sQ3VZOypQUT9MblgsTi1nV11ZcltMbmtTLUJnaENNODJhTC1dMixLJQotMkBZajBBLUxNLl1waV5NUUhIJkJGdGJUYSJJJzw3YjY5Uk1FRTk1R0E3QytpKCpKKydwYCtvIllEYEtPLkRUQTkKLSgqJGZTJTVFMFxHKjdrJipcYyJgTzBiLU8kQFk4Y0xmW0VZO0VoNiRmL25XcztAUHBsWSpmV0dISlssZClbITtyCi1iJThZUixpI18uRW5MZiRjcmpsLkxvLkROci1VIms4ZUtUbTVuTmApPkRkPWZYOU5BKlIlJUVmUlYkQD9POlZ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE2ODQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNjg1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNjcxIDAgUiAKLS9SZXNvdXJjZXMgMTY5MyAwIFIgCi0vQ29udGVudHMgMTY5MiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE2OTEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTY4NiAwIG9iagotPDwgCi0vRCBbIDE2ODUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjg3IDAgb2JqCi08PCAKLS9EIFsgMTY4NSAwIFIgL1hZWiBudWxsIDc3MSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY4OCAwIG9iagotPDwgCi0vRCBbIDE2ODUgMCBSIC9YWVogbnVsbCA2ODEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2ODkgMCBvYmoKLTw8IAotL0QgWyAxNjg1IDAgUiAvWFlaIG51bGwgNTkxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjkwIDAgb2JqCi08PCAKLS9EIFsgMTY4NSAwIFIgL1hZWiBudWxsIDQxMyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY5MSAwIG9iagotPDwgCi0vUCAxNjg1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTY4MiAwIFIgCi0vTiAxNjk5IDAgUiAKLT4+IAotZW5kb2JqCi0xNjkyIDAgb2JqCi08PCAvTGVuZ3RoIDI4MzQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdjUixZMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiUlVyLiUoNVRnT2Q5KjpmNCNOVEk5WkwoPko7ZVYwKHNcTFlFUipsXWltWFNgT2MxWlQKLTJCOkdqX2VOPVA0Pj1eNFtaYENaQ2YiMWkpLDdzTVxdRTRkTlBkX0AzWSpIY2F1NTInSkVGaGNtPFZlbE41TUZfCi0mLlFOKmBcTlFhUmlGUStAc2R1ME5eSG82MSg+SWk7QWIvaTZuQ0EuT1BvUixaNz4uUl9pPFtmZUo0b2o5PWtLPQotLmJsLVxNa1psL1FcREw0OmxAIlxLQjJhJ0pPJk07XmI/X3UmLkU9W20vOSJdI2Y+bD1pXDRpSi5CJSJaKF49ayUKLWdwZWwvI2ltZSJpZSY1Qk1NJWtjMkBRPjw6YkRvLG0oaFhGIVBpKyguVzs3XiYzPV5RWk1naWEjakRRcyZwV15vCi1gTydCK1hjRGtucEFWaHNkKkVoKjk8X3NBIzZDUDQsLWA8ME9LJkpmSjcnNS5CcXQmNS8uXkNVNEAyZy9cMmY4WgotImB1IiFqMSo4X2A2NE5FYE4vN3E6REFiZmAoXnE3OSNOLD1OTUAsNiY0LihwViE5SWZval48TSViNUh1JWA4UyMKLTJATGZFa3NAYz0hOmkoL1lqRkZvTUxlWkAtXUZhQF0lU18jRlRAN0JfM0ZwODpbMiV1YjtubTFSciQpX2ZUSjBbCi02VHE6aWIwMio/bFdeX1hdVkRHXXFuZSl1LiQ+VmswLVMxbClNXUtBcnFXPio2Rm5QYWQ5JlhLLyVBXkYwOFJOLQotaERVNEsjZ1lSQVJGIjJXOkQ7OzspJF0mPURBZyovI1o2QmVlY2NrXWFzM11GPT45OXIpZTNAYC9pQSUqZytKRmAKLWVFTy0wIUc0PCFeKiZHXWJRQnE8SCMnZ1NrVzZpcVUkTEUhVXFsNT5MdWgoak81P3JuaVBVbUFUQkIsP1trTk5JCi0tQjVXVzNgYEEhayFKaXRyLz4sbGZLQThYXj45VEIuampHXkVFYEEwXDhsUHE2bzlrVDdDTzMsPCo3UzZYIkFjPAotXmhYcV9uTSVOIit0WSU+JGc5aG9MLyZ1S1JlOT82TkxuTnNkXlY3K3FJUDJvcHQyXWVfYlkjajNuIjNMIWhrYTIKLSkpPSlnM1ZjYDJbbyVGJG9BYmkmPGJcJDRVKlxLNjo4J3FwcFdmO29QTm9MT1kqNk1EYW42RGQ7JmYuMS9QMFM2Ci1jcC9CUWZKZTQlZEhXSHEnKW1nREA9RCNaQ3FiXFNnKWs5VklMXVotWktGMz0+RWVpKC9fTXFEPThMZTEuSm5ZcgotYzM1Vm8jNjVqOSlHWkFPWSFEXnNmR25yQEshLT5jXGxVQmUrIVlgWCVYSl5RI1lOUCNVU2k1Zyk6Z1MrP0YtPjEKLS9WL28nZ1JNaktFZj8pNjRbclpmIiU6PCxAN1ZMSkBGNSQjKGYnXTZnIjAnSDl0PDYqcGYqWFBmamxASjsqRXBnCi1wZmhPOUFgXChpYGAxVTg9aEsvXThfRCoka18uPFIiQGMzOGcoVUVoUy8iQHU5RWQsVDYob0ZeKWM+JUAlJklpNQotSzVhV3U2QzorSCtYQFVPb1M/a0lPRTZBQS5LVmpAJTRcLkYxaVgoZSomaV1GI0deQFw1Vks5KmJGbSxsOSRnS0cKLSttSmRDPHMva11APEVhWU9wTlk8U01UKWM6SHFZLW40OHBhQE5ebnA9amsuSidwPyJyJi4pXjQuIWJrZVVBJCxfCi0+TjAnNkpvMlxHRWFvMVkqKG06ZUU/RF81LFw2MW1QZnEiNkwqRjliKFVTJS8mRD5HamYncV9dYl5LcmskPVpDLwotb2BzUEVAP3VxNFJZO20sKjxXNlw1QkQ/MmM2XU1BUUkxSllXYyFBUWw2ZWxVS1o5J11rITtZS2Q3W1dzaWUrQ08KLUMsdSw6LCljaiVVPTxZMzdOK2BzKklvOShuaylMczIybmpCQ28zVkFUWVJSbiE9SzAyWHAjR0cyYkJhUS1tXVMnCi0iWCg2RztEbWcmO0ImZjRGSWZZP0BWXDpaQUEzKF0tQU9uUENDdDBrN3UsSkEwWjtRIidBcyQ9P0wyT2FQcDtmcwotYk9uW2VBWSMoKiY9RGU1PlxATWNXR2BPZjAnQiFOZXJDOExtNG9vIkkiQitgSGstXlQ2bDQqVmpcVDpqXzNAJFoKLUItKEpwQ2RXWz1kXltTYUw5ZkF1UlRbXjJkWT5wVlszJFprWEFrVm87TXJkMU1YQCdLRj48UjZHO2pCODxIIzoqCi1NQmRlIzAwOkwhYWVTNSVgKE08JTVvYURKXEJnSyFmUlVfWEs6a2UmNis0NVdIUCYjOGBDZ0JgMko/Rk9oMFdDTwotQnQ3L0ZkOFt1XUlCTltUXU9uaUQ+NiVMRW1cSGtsOFVAWXJjdEBbYGJCc2daJEFIbFNgLkBBLWpnYkU+IyIsJzQKLUg0ISsrXXBISkQ/KysnaG46ZG0yWywsVFVAXU9TPlFzMSJDRmkhJjtnSF1TMCJlLCsqIkFqR3JLJ3I0PC1gdWhDCi1aTVopKD8jYmRtZGtSXC1iVz5PX0lQLz9aUDU9MzppSnNRJDNQVE9GJ11RYzVgYzc3SV8hanQnQCkuQDYmMkBBLwotVFc5MHE0QTtGPTI9QUF0WCFNNClDZyY2WUI/VSsoMTFfXkBpOiovJzFPdCMmVClvTDo1XE4pJDJIVUxtP3QhWTUKLVxIYUE1JDE0M0xGQEpRWSM8MEhCKVJOPU0lMSdDc2RNYU9Aa3UvN20qVl9KPSlGdCdiOmhGUXFNPHJVIypNWz5uCi05cl4nT08xZmsnN0taW1tXbTJjdWVEUmw3MEhhYkMlSkkzXHFWLDk/PyRFSlhwYy1uRSJIO1lgKi1yKDZgXHVRbwotKVhSdWRaWls0dWYzOnFaQylyWTkxYSJZRSlSakRKI2pCQWZSbTVCNT4+VDJoMm1kXChsbHNGLzs9OlBtQFdkXmsKLWQ1c2pGbEI3SD4yaCdAMVJnanNkXW03KTJHM1teTGQjO2RIbiQ0b2skSlFPVjYjWSMvW20/byxpKi81cFo7KiFcCi0ydWFyVz1xYVNKPm8wMFRpJWJOTVVKYyJONUo1aF9rcCt1cTk8WmtEXElKOTJlUWVHXUUsR01gXFIrT1xISl9EOAotbU91PzMlaGRmNGQ1JHMjJUMvJDU5JmxAOmczITsqZU4wIyosQ05YLUUscTtycVRZQWdJIi8+QSFZYFpOODJXUk0KLW11dXRlWl4xRSlUJnVuQ0VIPF9gYk1MQExoZ0ZUbW9ES29mb2xraTc5VCxUXGNCbT5tOktBb2o4JGh1LjMuL0E3Ci0/Lmc4ZFlhSGBaZmZZbW5rXEs0OXBuQUE/XVFVYkheJ0JgMkwsSixqSE43JnBAckQnLEBIdSwtXmBYYX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTY5MyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNjk0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNjcxIDAgUiAKLS9SZXNvdXJjZXMgMTcwMSAwIFIgCi0vQ29udGVudHMgMTcwMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE2OTkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTY5NSAwIG9iagotPDwgCi0vRCBbIDE2OTQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjk2IDAgb2JqCi08PCAKLS9EIFsgMTY5NCAwIFIgL1hZWiBudWxsIDY5MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTY5NyAwIG9iagotPDwgCi0vRCBbIDE2OTQgMCBSIC9YWVogbnVsbCA1MTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE2OTggMCBvYmoKLTw8IAotL0QgWyAxNjk0IDAgUiAvWFlaIG51bGwgMzk0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNjk5IDAgb2JqCi08PCAKLS9QIDE2OTQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNjkxIDAgUiAKLS9OIDE3MDUgMCBSIAotPj4gCi1lbmRvYmoKLTE3MDAgMCBvYmoKLTw8IC9MZW5ndGggMjU3MCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2NSXGkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiJSVXIuJSg1VGdPZDlNZGVoJmAlKy5qZHI0Q2Q8KSlTLik6RCQsR19IWkxNWVVTay1qNwotYlNeakpfZFRyKFc/KWxhTCcpK3JjPiQ8OCkrNFs9SCpHcFtOb05bYzFWMyJ0W2RLdSVSX1tAZkRSZU83JHU2LjgKLVQrNmFycCtqIlpMdFhia2onMl5CLSJEMkQmLlJZMmUxdXRtVS9pdVdVUy4kMU4yKEYnWTpMJW9OZ0dJI243IUEkCi1XaFM6OyJWLW5iK2JUcFhKdXE+VCE3IUY8RTNyXy4lWjBkYFUncmIlN2c/UjhlJSJpTCIxWzJKJTpcNm5uLUhqZgotYmJoKTo4Z0sxSSRjbTpJIy9TLzNOT0Ztb0M5RUVgMWY0VTY5J0RYIU5hbmByLEs2Q0VmSkpPcy88KWJmOytOcWUKLTsiUCNxXHRTWjg+b29sOiJaOSQnUGpMVi9eZWd1WGBSSCUyZU0wYV0zbVxgS2lHYFpQVGUjZGknRkldTmw4XTxxCi0+cDs8O0BuOl0hJGFWLCZuTGlAJz8hJmFnU00kbj1bNE04QTpkVV1cNmRbX21vL3N0YEZXa0V0SzY5VVNgcTZCRQotQWQmbklidHFXcDFEYE1iMVpgY3Q8PXVqW1pfPFtCP1didXQkPmdSMTxlWW0tTWtMLHMmNyt1RTwvKFJjWz8pMFcKLTxMb1hCY2glTFcuRWdiSlhfXmRUSTxUcTtMYygkQzRJN0JDM0NRY1BHQ3MiYjlqO3RKR11oSkppYDMnLFRAI3FuCi1mbzRbLSVRTDlCbS9DJ3MvXiZsWl9AM0RLWC07Qz0vcGlqY2tZO2UzQihqZWE1bVNeJlcmZnFAQW8iQCRlcVNCbwotYm8kU1pJMGFlVi5BTDo6S1RkbUdSYDtiIj9DITNuVmUrNVhWRCFhRGFOJCFzZiJFImRDXFtWYFoiUFNobytWWEoKLT1PUmtfMGRjbk9tMkFHVGcyOE4oVWtwOzNPQ2pIKzYtPm8/TDIpXDYvX21Ba147R2haOTkoIUcpZnRXciVcbixECi1fY0ohUFxnZSJZOW8kbTk5ZVxqa1dYLk51MUdBQCNUcnE4WG1dV15OVUExOGY4Q10zdDRdLC0hUEZoOTBCMU8yKwotPnU1SlMlJjQ2KyRPdEojWUxkc1JhKiI2Rj4oLSghcTBMVT0yIzxUUypZaS9AW1FFaG5IUShoOSY/RjhFODtSXjQKLWY5az4sNlZNJ1BcQD1ZU3FBcyIlYyUjZ0AuIy1AP10yWCNzImNBTyRcLzRxaD9oJCIoJVFZIktec11Hajk9b2EuCi1bQ1crbSwvaGxGJ0teOD5TM2BvVlxsQlo1MDVIUHEvcE1jJmZZWj5PME5KXT1wXFBJL0skbHVpUj1NTSRMM0RLQAotQlJyaS9MOiU2YSJzQTpISi1tL14yN1RoIUAsKl9zOG0sPDdwcm9XTi5dN2JpbmZwSSxPVS4oXys6YDBgckJiKXMKLSdOZGBpTVFhXltfJD02JSlxMDFjZDFzTDRmKlZqKTQqcmpRMGM7MDswVkJPPWtcMllIMWNdJ2drIT5IPDdxPFNXCi1LNCZAXzw2TS4uVFJcNmtRRiliLjBnQmk6SU1CLTotQCZPIURCams2XkNlIj9TWFx0MzpQRXNpXkVBSVRLNlY3IgotWE9KSHRPSS1WWkdcMyVzTC1tUl9hcj9iOydoWWVKQSNUK1BOODZOTSRcVz04OHBKQXFfKmo7WkVUK0dwI1QtOUoKLVVyXCxZJG5vImtMQ0ckS2I+aVU/XnEpc0xnSnUxZlIrJiM0XiFxNmM2WVtDJDdOUU9uUWRZOm0vMVFOUlojVlBvCi1mY2pyQD9fMCFTWVlSNUUrbT1UOy5oWF9bYVRTWSZqUWdgSUNEJzhULVMsW2U4Vm9FXT1sVXJ0QC1pTkBabXUwdQotMVBcZlxOKyxycDk2Ljp0ZCVlVkJhP14rOyE4MSMyP3UvOy5AST8vYEtsQGBbYCp1VSdqP1pJP1ZMWyRsJEFrYl4KLTVcOEpIYWNoTnRWIVBRQyEwbysuRThaazJKaSMjNUtlWXI+MixyNk8vPzs7UTRqRWhzKS8uR2YiPTguOFhtI2lGCi0maGtSQEBELG1JOmZDUzZXXS1zQ0FQSkg6TUIlODUwRmlZLTNYNm81KTpsI1wlZnFWQktnWkFbam9CRSpKOz8sZwotcTRydDcjXD1HKnFKRWQ9YCIndG1NZDM4dTNAZWg3JzghL1YkJ3JISTxKdEgyRDJsOC41YGs1LzhFLkdPJTp1WkwKLW8iUiVZUXJuMT8uJ1FfYGExWV0lO0QiMExVaScvbTtKLmIxTHNcaktWcHNwKU0rNUVbWE50S2onWjhBbkFscmQqCi0lNVZQLWQlOnBcQmc/PmosOlU6WiIpcVhUTWpfKWkyc29RKzppVD83K19fLmRCXztzJj91OklXIzolJTEiZGtldQotJTwvSE4ycFFzLiF1J0ZBWVFiXkBcOF1DRnIlV2NsTlg8SGhZckNWIy84ZGJBW0tfSC8oTGoqcEpXNkFqK28mcW0KLUBuXyQpWiI/IWRHUkctbzE2ckJUKTg9KDdpIix1bDRjcUlUMCQpXiktZmhASU1mO2ZyYS1mUj1BWG49ODBnOEZTCi1WKFhPYUI3YXQkV3FPQTVZNVNKLTY8YG5OXjs/NmtNZThKVkxwTlpnLDBrbVJAQjt0YEU7IWhlPWMzb1ddXGU7cwotMklIX2xDSHByRFMiZktRPTldWyIsM0BXLlVlUkw9IzkkTWhqWlBHIkZBPUNsTThxcXNtN0Y2dWE9cmhSRGJrLE0KLTBxM2E2WDNuSiE2WWRabVJyRzZRYyQwZlJCWTVIUm85TCpxMyZfMVclLlVSK0RNdUZtLVBDKTRndW9KciwyJ0pVCi0/WUdCJ09FUSlZZF5nOk9DQV9TIm9xIys6cWcvUzU+XEZRPy91VU8qN29qK29JPWNHLklgPmRKS1BQJFtdUTMwLAotOiZARWBTLHQ5ayFRIjxGLi4jWXQkcHElOEJ0Y1BDZmUvYTgiK2lDZW8iWHVmSz1nXiokb2pqZCFNZmh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE3MDEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTcwMiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTY3MSAwIFIgCi0vUmVzb3VyY2VzIDE3MDcgMCBSIAotL0NvbnRlbnRzIDE3MDYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNzA1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE3MDMgMCBvYmoKLTw8IAotL0QgWyAxNzAyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTcwNCAwIG9iagotPDwgCi0vRCBbIDE3MDIgMCBSIC9YWVogbnVsbCAyNTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MDUgMCBvYmoKLTw8IAotL1AgMTcwMiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE2OTkgMCBSIAotL04gMTcxMyAwIFIgCi0+PiAKLWVuZG9iagotMTcwNiAwIG9iagotPDwgL0xlbmd0aCAyMDU4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83Y1M4JDFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIlJVci4lKDVUZ09kOSZaUEUlVnQ5L0ZoW2I1aS0zNipASl0rNzphSlVsbCM2Ij83ZTJPCi1hVl9tP09QdGAiQ2M4NVcsTXE6PCZuVlMpYykyNU1MTDdAKC5nKGwyazYxcjxFJW06U0pCRyIrIi8rTVIvJ0BxSgotJi5XM0NqUkIhVSlUIk5EMCNQTzsvKz43PjE2Mk1FTGJYbDZCWWxZMSIxMilpXnM7Ujs0TWE9JjVfVlU3OEBnOFcKLThVK0ZSM1FTTi5bakkwV2JWdE42QCw8dV9qIlRhVyR0SCVAMmFdKDk1VllPQVdkOmVgXyNWTFY1X0NLJW00L09qCi01cWlOVC81LVU+WVxVXWElP1o2QyhJcT9eT3IxOkNDKVJsbTYtOVxuNGkqTSVXTVpGSVBxZHVOV1pOPWYraUsmRAotJSJpZmkwYichaU5XdDclY3UuaTYnUWpacSJKX2MrMTt1VjJcLmZEYU1TXixqIW9RcmY6ckBcbjhDRFVZNVghTGYKLWgpZS0oWisvNDwiO05tX1kpKFJla1YlYTMocmVHX2k/NztUMSNqaWs9JyJYY1ciaUM9XUhBRFk2XWYjMk4yKiZECi0kVHA6LVxnITE7KHFxSiFHMlZGP05eNydfKTI6R0VnYyg3TmBGMzdfR0hHKmpnPUYmOkQrc1swbDhfMT9FMms1awotUWojLVlnRVorZ0NrUm8uaj41UjchLi8rLShwLTtDPUkoWVQrSEJuVyx0Xz9DbUBUI2lHKiNYWC4yW1M0TSxOWyQKLTF1X0FgYUMrbHBPMzhaZCI5RD1zKDU/OC1EYCNzJCpEOT5dLmZFRkxlYlQiJVRcP1srSFZFWTZgSFAsMGVjZ2AwCi1naTBkWTFZRU9EUj9ecW5ENVVJZShrKVg/PmtbUiJFOW9NNlddXSlSPFM3T11mN2k9ND9KITBoJExDLENxQUoyYwotU2QwKkI9PmdeJUA5QCxMIzNKZHNCcGU7SCJ0SVonKFg9dEQ+YWxkKDNVWEwiUyFEXGk6PkQ8L2xhRiZtZjBPUyYKLVNqKjZATiRPNzMvcV1rXVxpaT5WNiFAUGs8PVJKZGguaC0zY0RiJmBlQWNGWmE/Jj9nWTY+W1luZm5UI1kwJk5RCi1JNlEsSD4rOUZiQ3JaQDNdbDc0XiVoNi8+MmRQMFVuKF4ocEkjS3E8Wlk9QSE9MyY7InIrUDwxZkxsVFxYc3FPWgotN2w4MlRsUGApI0BJNWdAKHM1bSNoZ1xCdUpORDNkRCRyQCEzPF90NlIzRk9uIUtkVGtALFNcZyc7aHMiMS9DTGsKLTluTC5TKnEwbWcjUyhMKyw6QSxkNlZmZmErWCNcXi1jZVtiTXQtNmJCPzZPN2VJcS9gNV1cSVdhPnQsPT9EZUtQCi1dUWBgbCI+bi9UJFBcXEU+KjBeTDAqVXFBT24yZDIwQ2Y0VWBcUV9wYT9oOkBZVkhDT1hHYmIocjw+UWFfaklqJAotJGw1V05BVzQxQVpSOHIkUmBoc1pDKFU8PVZULiEoX25LaDwidEk4RFNGTCgyZTwlTTtXaSdPJW9HJHEtQCNmKV4KLWBjTkBCVCQyJjJsLEddZDVcKGZZWEVvIj9ddTxNOzAkW1ZSVDJtRWI+Yz5dPCh0R0IwTTllQD8oQzpsZDxBXV8mCi07LilIKFYtYmRrVEljRVpnK1hxY0hNSmQ6U1RFNS4yOUk/KldUMChOTmo3RSRXcWZXSlYuPCxeY1RZR203WFREYAotUm1MZUopNUtWKUtbWE5RT19RXEdqZWwuXzNAOSxhUEU3K0o4ZE8paFZSUyU3Ni1gSEBNODo5QVdIRjo0X0sqXmYKLUQhaT1ubD9CU0MuU0xgPFdvb0hkR3IudV9jWm9VRVVyZFM+RSRBKC84KyUyMTFAR1tWNG10bk4tUWYlWChmKnRNCi1vRllKQSUjXDhTLCo2c2wwSztzcCZzN3JqSl5jVDQ7bU1BQz91VWo4Pmc4SCc2QDI2YFYnMylEKEJacDNUWVwsbAotMk0/Q1dRZzFaRl80V0o2QCwpWl5QQy48VFs4STU3W0xlUWQ/cSQncjFHQDo/b2lDUUo9aWdFSlhdO1RYSzUuYzIKLSEsKzZtNWU9Ti4kTitgTW9rVD51Si9adWghRlZ0IUFbLk9eYDdNZGo9Q0VaLFoxXFtFZm41dTFOVi1TV1s5TzgiCi09RjFAVSJlcidZKztwPDIkWFA+VFoqQDw6VT1rXEM+XG82J1teTFhrKXVCLypEM15EbkxIYTNsTVs8cHMqUEFRNQotMlZGMTJBLkIiP2BOVjdAYV4iXzxCSiprXj9EWGdoPVVVNlZEVmBJQFtPZ1NqUyVFZUs6JCcjaEIoQXRBUSNXbFIKLTB0bC80XUZZVn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTcwNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNzA4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNjcxIDAgUiAKLS9SZXNvdXJjZXMgMTcxNSAwIFIgCi0vQ29udGVudHMgMTcxNCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE3MTMgMCBSIF0gCi0+PiAKLWVuZG9iagotMTcwOSAwIG9iagotPDwgCi0vRCBbIDE3MDggMCBSIC9YWVogbnVsbCAzMTEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MTAgMCBvYmoKLTw8IAotL0QgWyAxNzA4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTcxMSAwIG9iagotPDwgCi0vRCBbIDE3MDggMCBSIC9YWVogbnVsbCAzNTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MTIgMCBvYmoKLTw8IAotL0QgWyAxNzA4IDAgUiAvWFlaIG51bGwgMjk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzEzIDAgb2JqCi08PCAKLS9QIDE3MDggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNzA1IDAgUiAKLS9OIDE3MTggMCBSIAotPj4gCi1lbmRvYmoKLTE3MTQgMCBvYmoKLTw8IC9MZW5ndGggMjkxOSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2NTaDQxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2xMOzhLJjEqJ0I1ak1cPCRaV2FYYHIlam0pP0FfOzlrKUJea20hTWEobj5cLl5fCi03dSI6LltjI2RJLkVKL2woZWRDMiQmWE5DSzVtOWdDYzgsVCxKc1AkX2pMayMoPCRHRTYnY2c+MUVCMzAxU3UjRgotLmwjVUMic1lPSGxUTUE9OXU3IitqUFhULVFxZTojJSc4a1BOSXRdRTJDbWc0bDgsXnFxS3MhMytpJHFKTkBBKWcKLTNmR2B1bmRsN184RWApRE8oZDwoTjJrT28yaFY4WTgzKVtnRSlKPEdKbDVuallMJSM4XnEsKUlCXEs9a0NVPjtxCi1qLGNNXU5yb1tBMygnY1AnXnVTJCNpN1lXNlRhTi81N2M0YDBUQnVAWWtiUU5BL21DY1VNLmUvJVk0VzoxQltkOwotQWYxZU0+WyFxWC5sKlI/IzNhTyVXQ0RoP0QhV0xNSyxiRis2UC9OPSUrJjM4WkRpYU1pWWRJWUM4UicnWitUUT8KLTlZbHAtMFQ5S1lhdUUnPiNYQz9ZbXVaZCIuMDQyNWs2QGxsQClSZzRSXSpcVytbYjxOZSlMZUUwcms8VFMxOUFJCi0/cz9FZTZZa2E6ZSo+UmApMkAqOEpnbExiODxPTmIiLWY4aTc/TVR1MlVKQzFFaUM1VVxmQFonUGBlKT43XFFKZwotUW1TTFdsTUo9QEpASDonJE0odGsiY25iVCdTSS5MSTZRIUwlIig0QFtpSjckPENzNCUtXUNEaGI0OD5cR11wWlUKLUpRMjFzOkxPR1I1JD5DIjIyOCEnOVpfRjEuZDNgaj1pNTQoMDhPTjBgXGxSXklIUG0vKFpSQiYwQSRGRCdKI24rCi1qPmRWLVIqJUkicSQ+O2hrK2ZgMzA4YnBJQ2NQIlpBS2kiT19nTz1RQS5pZEhIL2N0OTBHRyIiZl1rSVxGaE1qcgotWTFcPjJSNG9kTHFoQU9xN0BGYm1XbzNLP2FlSlFeM1VSYiM7bFhbT2M4TS4+IV1bbj1rQDAwM0ZrTmolZWlRZzEKLWZNaVNzSk05VlUwdUgyIV9iQiROOEdxT0ZtXFVdW1I8IkZwQ2w9JGBTKilmZ2xfITxsYUdaYSpSUG8pW2wkQDY+Ci06L2Y6LzJtQCZuYVFdaG1bRDgzNzAnaEEoMWhNKHIyO21Cay1Ia0YjTGMpMmVcPmthS01CXjk3aW9kbSpTXU1lKQotZiI/IzskLzBJU1lMakFcXGUkTCZTRDpJVWdERmVrbShCcDgxVy10J1M/bm9JPUNgN3QkRFhzNiIwbWpxK2JWUW4KLWNwNlpScGk5SUM9WDEoamc5WFtrPTpUIzswdSxZdSNTTFFRSSlpVEwvLVVRZyVycShzImM2b1pAXCsjMFpETClACi1WKyVFJENCSUlka3NcJ1RMUCF1bSUpSzcwMEhkYkFdZWpiUUplQWw2Vk8wSz0/cElnKVxgI20mKiYqLlxgcWRhbwotQVEpQmUwWWxldUlma2o7NjBjdXErN1NBKU5RVlE5IVAmSmplPCNgVG43YD5fT3BIZmxIUFZKaS0mL1krSj1UKl4KLTwrNVo9NTREUFpMNjIlYDkjLEM6SllfcTA7U2pFaUV0U2k9VSw9Ij1tXiVzKSwiXypucj5wVUBIT2xvXU4vKzJlCi0ocTIyUWZTISFiRUZmP0lvamlkJkBVRGkjXFZybDhbM08mSFQwP1xPKmVGWlQqRnFcYEIyTGViUSIiaWk2UEtrOwotODcjMTppNiZkL0pgQW8hZDJ0akJNXGFYJ2JXZGoiMl8+MGA1dXVFUDYqIkNIJ2JjYD06NF5yRk1nUTNBUF9PcmsKLW5tSSVtJT00XkVmR0tqR0NITWlYbmZEN0BJJSwtWy80cEJLYyk3OihOXjRFYi51PEAvImh0UXEnUjNXXUtbV0BdCi1DazdoLDI0PFg3b2NzWS0qLnNyQ1FMbVhEIydeaCImPlUrMUUsPjMlT05yLExuMT1nTWkzL2dnSVpTMiVBTUlpcwotJHFAI3EpSlAvcCVbKm10YjEuUEFCbyFuJlAmYmNtKTxRMitWIlsmYUcndFpXW1g3LHNBdEtFRCtiSHEhXWdJJzUKLUwxTVBJX2ckNTE6OGZ0QjhFXmBqYGNqZ0I9RT1tIT9BREhFbVQrJDcsYUpkYz4xPFwySFlUWmEjIWlocUw7b2MwCi07Sz5HPk5fKHBaYjE7MSsvOl1HPE4mVy4wYUg9QSJBNywhIjNOQG8jU2RzOGNRcEtnPConZEBSP1VEXDVebl9tJAotOmYraUExX1c5TlBxdGRgYVlhT1AtNExfKTJocS5oTC9QKTdWODJBZiY2IT9DI1xiJjZecj5UNkBQaS9CISZiJm0KLUdgUSRSSHJoJEk/bWpKMVlmLE9NSCU+cmJTczpXIS9QQ1VebU1RTj8ibHBYOF9rLWByZyxRWEcrSkh1VXFBN0BqCi08SCg3R0ZnI0MqYTopQUBFQ3NWISFsRjg3PTpNMDtHUmpqYDlDKiJZRXE9YitYRy1nJmljPkF1MGtQWEsuay5CMQotRkhRMixQIXJvYGV1NS0mZGdjPiU5b1lSZU1uPVRJQm8tJzVcQD0qRihBI2A+J2FEZS1yclMnaiw3Sy42NG1AXHAKLT1EPUFmT28lajxrIWtxMEBcPS87TVo2T2RDNj1lZmYxQEJYRXQ1LF0+aGRWYkdFWzgyQ2djOUBpa2ZKXDBuJXEvCi0oc25gJUtZU0YpSTNeR0RfJkRGWjd0PlFpXVJVOGUzbWc6JHFCdEUtL0smND0pMTlMNCtFaDBmazF0JT1sVkMwOgotNHJSI0dYcVUhYlBbSTg6JytQbUswPV9IdVhXYDhpUmBlPlNpZVZIKF8za1VhYmctQzdrNU86RChiITJmKCckPVkKLXBeNDRgTW84ZF1cNnJUWkpYRCZgXycjWEEoNXM0QFlecVU8LVlPV3JaZ2FndT5wSChZYXQ/cz5qO0ZoPkRpRGRaCi1iJUM/W1U5aGJeY1dFJCZAX0pxYzI8ZGxnIyNASilTNS9cJFU1RWN0SnBxMFxyKUBfLnMzVkBKPVUlUW85KF4kYQotYUtNcmopcE4nKyVdRC4wYi1zQGQzXyhNISptOTAxRVYpUyFlVmspdGA2XDhiRy5kYltSNV5HUmhiXVJUKjcvSz4KLVwsN2pFaVNtI0ssYlpoVzhuP2BPIUI+XmNXTS1oc2MsQ1owNlE2KS1mN0lWP0dpXyUqL1BaODwlZEkuKmFCc09vCi1rUTJcWlhZaT9rWFMwLGI6bytsM1FwYFxULV9FTXNWLCROJDhDQjJXU2YzYDcpcFhTKyVkZ0U/R0NBIWZTblJAJgotOVo8XXU1dChTbmtNYERCWC8oMyVJMVtZbjUkXTYnV1FIcj0nck9ncGdIK1RfV2paTmBrVERdZFZANENkREZTT24KLVs1bzE9KWojKSdqMnVvbSw2ZC1HJjlFOi9fNV9MSkE2QSUtVC9wal86U0JLbkZRRVVmZkIjaUUlSEhVLUUicCY3Ci1ZV1REIzldZFtTSCsoY1ZKOF5lWlwhSCtNcyYmLiFFJjkxUydsMDw9TCUtNzEjcmMyWmphMVg8bzgoYDEyU08raQotckQvZFMlSmRnXys5fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzE1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3MTYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE2NzEgMCBSIAotL1Jlc291cmNlcyAxNzIwIDAgUiAKLS9Db250ZW50cyAxNzE5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTcxOCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzE3IDAgb2JqCi08PCAKLS9EIFsgMTcxNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MTggMCBvYmoKLTw8IAotL1AgMTcxNiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3MTMgMCBSIAotL04gMTcyMyAwIFIgCi0+PiAKLWVuZG9iagotMTcxOSAwIG9iagotPDwgL0xlbmd0aCAyMDk5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83Y1RDRDFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiw4SUJjWGVvImlDQT00SzElTCRjVmtGRGcvblBuOUI9ZTU6O2ZBCi0vXDhqPVwpRVteVmAhaUkjXFBBMktdbSFLSSJjJTchUG0+SE5lPSJRMltuWEY2cCU+VzM2RjhiNWxnMmVeanVSJAotciFfVTFlZV1PSkArJGI+OVE5UDYkckhfdFlSUj83PFpxcTRYNnFrVE1sPFFoNHE/NDIoSWVuWFtoNFRLPU5XYDcKLSxBWzVUJUtoZ0EnJCpGTjR1QzY/R2osXlBrdXRtTk4rMzh1MGFvOURlZHI4LVc4JyxDOSsiYEtOUjdmYlVPZlt0Ci1AYjhaPEAqMUJkVU4+aypeaFZsQVlSU0VqQmYhRW5iazQtRjpKMT84M2osZEgmXHFsbmZLLHNeIS1nTWFLLUxkQAotJTA/LCIkYmBMRiFZZS5DXEUsRHQ2NiRuLGNKXzF1L15YLFw3MS5IRCdnYis0RjlBUTtLYGUiPTMiMmYwYlJiMkYKLThCIUZoIW9RbGkkM0ZWLC5MPG5pUzA8ZkE5bXA5LFtGaVhATmwtMHQmLVoqKkc+UVo2MTAsZWZqLk5SWV8tbUw1Ci0xLUpFQ2grUGc2OEY2M15VIilJQDx1JzgyR1s/JDxnQiEiXGMwZExvUWEiPWg/U050dSpUIS84aTp1JmciOWYoSwotWVUlNWE5WWowVkArXVdTTytQTTBTPm5JKVFvNypnVW9yQCouMU1IOVhYbStDaXNgMWRSI1UnPGczRSplNk9iaGcKLSlaJ3EmbVFscHUrcmlKMDx1SnJcMmleMC4xUXBkQkhYQV5FQHJVQ0A5dUVRRlNgYXBJUzJ1WSkmcHQ2Im90SSUhCi1OZXBtJTJudWZoUSo9bj81Zmcub0hEW18wTShwT3EmOGImPWNfYjRUNWZ0cEJqJDtrO21GXyRqXDtXTUBvdEdBIQotXEVUUjlHaD8rW048O2lCXmhxRFJWRGxiZzBdKWktcUdcdV41c2c2a0dZITRbIi07cXVQXyNjMz4jbyU1ajc2QloKLTNLMlo3Z0xdNUJJQDReT1JmSDE+Yyt1OT46bFo8LTFibWg+Q2hubV5bZVJySiVbSGI3NDBhLHRja15oSD0wXlFYCi1JUSlFKXBqUStWR1JyRyRdbDg5QDgmTC4uQDBeKk0tX20/TDJDbWc0YV44TUMtJmEjLycmQjRmTVZCcSJsKnJLKQotS3JpKnFaSmZLYFI0SCQ9Xl9uLzchLkcyKTA8aXE/bU4xdVVHRTY+KF4kI3NQJWJPXWItaSFgRCNWPG1CLyslY1IKLWAlU09sVUBhbWE6MEIqKFZgTVtxJW1eOm0jQFs7U1o0SzstUzYwWkUlO0RRRWUsJ1RJTVVSNj5WQFVTc1NDSi4sCi1OPUJPWTBYYXBdJmteZXQkbUY3WVg1SnBMNj08NWNKWFJxKHBtZ0g/Z2YwMFYvWztAMEVaM0ozZjFebV9WQT1cawotNjpjcT0rWEMidSIjKzZwXy9NOjpgQE5KTmluUjQmT1VhRmpja0laW25DaklkN0xiOGgmMzFBWjklYkZvPHAzNl8KLSdyJCk8TztcOW5CYDBoOWo2WHE9X0AkYyQrSS5eP2FCLWQ0UkxaJHFYYk1ZWyNRbXNzLmZtbWRRZik8XydYOlV1Ci01ZW47LkpuPipPZzZiOk0rVjF1Vmc2czw0MkhIciIwWGBbby1AbC5tPGU3YipLWW5RQCFKaTAvVFteS1pgZXVAOwotYW9IP1MnSylPPVtoNF9NKiguTj00K2UpQCReW01mRGI1V2ZicW9WMzZLaEFUOm8nTE1ea1I8Xj5iJHJiS0tIUCsKLWVrNDw9O2FPNUlRK1c6JCZXUyxaK2JxNyhTP1FDI0EsTSEpXnBbW09vPCtMdVM+MC9BUHJQUU5oQU9dKEQqaC41Ci0xOHI0Jk1RKzNWVGpjQVVUblVkYmUxLjpaJDgiYEdvY2c+NylNVilvaTwtZko7YzUoUzkyUzZFWUdoW05cSitgagotOmInO1FaOkdpND1dJlYqV2A8LmVfZi1ZYHFINkkxQDpwPTFyajpTczIxVWMqJ1dyZElJMDYtYjtmQkpRWDVMa2sKLWtURDlSUSFiQi1qVEo6Xjc0XG5wXzhWZiJjNT1jLk8+NHBUJ2owRF0lK2NAZj5kWD84XiwhNGk/VUU2UG5dQ0stCi1rZUBzRSpNYiJUKDlMSkRpNEtMTTMiPF1nZF85QGFvRy1qUSJvdUZTPkg7dVY2KlY9M0xnMWpNYkNVLz1APUFFaAotIW1UOmIwNUxaJjUpIyhZcV5eVVo9dDxVNyJxZC5MNjVVRz1SLCkuQ1hLcDlaLUwjVl0+LyVWMlJGRTdlVWxaTk8KLWlrM0ZqKic3PDNZQ1JCXCJpNl1jTDEhQ1cmMyhsPCUoYyZkLis1O28rPVhdZkNeLHQ0fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzIwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3MjEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE2NzEgMCBSIAotL1Jlc291cmNlcyAxNzI1IDAgUiAKLS9Db250ZW50cyAxNzI0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTcyMyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzIyIDAgb2JqCi08PCAKLS9EIFsgMTcyMSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MjMgMCBvYmoKLTw8IAotL1AgMTcyMSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3MTggMCBSIAotL04gMTcyOCAwIFIgCi0+PiAKLWVuZG9iagotMTcyNCAwIG9iagotPDwgL0xlbmd0aCAyMTA4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83Y1RzVDFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiw4SUJjWGVvImlDQT00SzElTCNRdD9BKTZpIV0vZGAkK18rPSJbCi0laTQmVz9GbFpZWnVBI0Q5dWckSFRMPHVhKXBYMTghUTJRMiJpRT1KblZgJD03Lk5JXzMjWDdNOFo7S3NYSyNhVgotKG5pQDgmOzZkTyEsTlNaIUheNXJNTVVpWVIoPlM2RWYyOFBCWFNUXWomai9cS2VUMC8nSlhAdF9FJWYlXEFGTjgKLVVNS2YsJSY3ZHUzZk4pYT5qVmo4SFYtO1lVT186a15RR21CNDI2cCxqdGB1SVRcXjRpV1RaVmtOYCFyUjFROFRWCi1qU2IqKyNmXG43LEkjPEs3S1ZlUCxwaSJRJmZhPUlVZTJVYk9cQWUzJVQvJSQnRmopO1w/QEZjRkgtbj5qJDskTgotNUVeOVJfTWhISCgsWDdXPU8maz42VEBAYCI5VD40MS1mcG06YkV1JFlmOF9gT2k5XkNOJidiIy5gYysvW201WykKLShzNE9sUENQblYlM28sUS9XRExYKztUWWVQaiZBc21bUSd0IlRyUm4qJVVMPkA6Im1rOnRHI29VTkcpKSVGJz08Ci1ZLGdqcihFbDlNKGZoQyFGQzgjXEthSzU5bSs2bFtbUEJCazVcKGVVQzxgXzBkcnVHL1hUU19wWzRmYF86ZmgyUQotRSpPPGotQlZFTTJsTXU9W2pGXGFHaWBbO19rI0wrQG1kKikpcFJvK0FKdFtSYl8/WzAoQ2ZsY2Ima05GWCFeZzQKLTQmOmhIaTY0LjNaO3RtIlZvKEBAcmAmdWREK0ZkMWVlcE0uRENYI282SSZcQFcuci0/JWhRPClTI1ZpJlRtMGxUCi1Bc1g0WlRhWilhXixqSV5LRG1DRkYhczxGWUFbQGxea0RlO2dQVCFxTXVHZypVU0AnZERQUShnIykqJ3NqUi8mPAotWDcqY1ZfYSRaLFZQLE9fIlsqPSRXcDs4VW4zQTVDLDguN0tncFtSNkRWT007aEQjSSwvQ3BtS0BoMWpuYlBhcTIKLSEsYElWZjAmVUtUXmsmTlVNLk0oNDxvT2xGJDxBRyVPXnNVPUI0PSVHNDdmNjYhT04iIUpDc2g2RVosZWk3S2EzCi1VRjxpIms5Q2hwbjpbLjpkQl5FVjJrWnNtOj1uOihMbmcnbTA4YWchVkUtbWNFNmR0UCIyTW5tX1A9Xk9ZSmc/bwotLDhMUTpFK01aUEk7P08qXSdOXXBDQlElKm8hbmsucWk5JEQ5V2IiLUtdJmpEIWIpSWFOWShTPDMoQTdHISRpJi8KLTNBTWgwSE89KzdOc3I3TExFUGJwamRPcUdGJjMlcylpJmteKTdxdCgrZT9vNS0+ci4kME0pUyUnRyg+QFtYTTEyCi1qQUBQW1xOPlEybVtgQ1BHUT1HcjNZNUVgNXRFLFQwZU9mY3BhbCdUMVh1WD4+V2RbTipxdTkvV2RKM0pudGxaPQotJD0/YkZLKmlZJDU9Yik+J15QWi0rVmsjQiNSKDVHZS1DT1kvXzoyP2haVjpvSEBsY0NPVSE5ciNONik7S1tBOVgKLV9QZ1NrVG05cSdiITdWNSZFYklaLyopRj5oQVM/WzJXWzVHUVRfIjhick5oU2M1KmJAO0lHJEw4RHI6IyhCZFxACi1jSkRdVTx0Ni9oOGxda15VKVY4bUVhL1ZxbFY9XWM9Yj9GPSdjPzVrPktPK2VdQVZtYCIiPmEoVnRCbmBXM0NhUgotSHRmKmIjV1khKWZFX050LzoxJCRuT1kqc2whNHJARCE/WWYjIlZwW19FcGonV09gMFZQUEQ1VV9ebm10OUpSaToKLT5hKmtDSlUwIzNtNmk5LmNQN10kRjc8aiEnQkZidT1MNFdXN05NY0lgZlRIQ00/JkwrXjFQUDhrVCZQYkNeYkBTCi0raSpxRClrUDNjI1lTayNZQ1BwQF9bMjUyYiZGSjdVVWhAV0FJXmhkJD1ZcWNWIytJW2FbWj8ySF5NJDskUGluIgotUSphR2ZkWzZMLlAlKFBvRTImZSJwNW8wKC0iJGllXUdPWy8wJixUXEE9aUlzMiY0YCo9K087aVc6X0pQSz1MWV8KLWk1RSQ/ZUQ+JTxNJ1oxKTllYGAoRj4mOmtLV1RqM11GTTZDcWJ0dGIjXz9BbDVvJ086XFo2XkZiMW5OWFglPCZlCi1xXCVlZU5Ha20qWjU2JEhtJnFLLWc5MGtmbkM6X1Q5SiMiTkNcNmI1ZHMzNkwhWydvO0A3VlNxQSZFMCRWN0VxIQotMCRaaGtkTiRKamFIQj1xbkNrOVJxUT1EX10yISNiYGZ1LF4kMW5CMkFoSFxBYjAnSGhPa1Fvbkw7aDBdXVQpIyQKLUVzUyNcODZvQjlDRiJuPUlGPCMzPU1WMVxEQjZeMWVWPC8kPlAvMi5nbTQ6bEsiIystI2lwcmwiIUFdfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzI1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3MjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE2NzEgMCBSIAotL1Jlc291cmNlcyAxNzMwIDAgUiAKLS9Db250ZW50cyAxNzI5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTcyOCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzI3IDAgb2JqCi08PCAKLS9EIFsgMTcyNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MjggMCBvYmoKLTw8IAotL1AgMTcyNiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3MjMgMCBSIAotL04gMTczNyAwIFIgCi0+PiAKLWVuZG9iagotMTcyOSAwIG9iagotPDwgL0xlbmd0aCAyMDcyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83ZnMsOTFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIilgOUdqM041Q0EmRiwpLEBDLkxTS3FlWmZeaD5RbDloIigzITxoVi4wXVhfYyIqJ1oiCi1EKTBfZm9zOkApNV04XVJLRWhUZl1dXkoiZCoyS08hTFZhPiRtUW45MWxdQzZcP0BGY0Y4QHFXX1xoVVQlRSJZIgotTFA7ZXVBSUdNUFcoUixMTyRoRFAtIjtNbDNYWT8pcGNZZFNUTiVBNSZTbmZkJD8raz8iMi5OLWJtJEpcS0FKPGwKLTZTJzRZLSNvPGwwVENdbWA6L2IqPlQzcEwwaGJVXjdCJWZJLVUsRXI1VE4sTEkhSGV0aURBR3BgcGRiTVEmXDNbCi1nK1xOaEpCRyIvLmY3NEglbDcmOTMpKCQtPVZkJThIQTJ0WVVTLEBUX29pJiQvZDJVS1szIUJab1lETFRKT2knQAotLixcb0E0M0IjOWZKPF0pb19MNWYwM25qZGBoRkgvMkAqMkooSUNuUmZNdERURkJmYlNMTkJoci4pPWo7T3NeTkUKLU9HWThaUDVOME9lZU9GRDUxV2FcLC1uMis1W29EQC1wZVEoS0U4I2xeQlZOW1FLWTI7TWwsZDZhZDx0dUtgXGQyCi0xbFtbKF4sMlsxNVg3JyVjTkZNMyVrZjBwMmleNnJsbmxlR0pvSThHSzsqYEw0Pk8uTk5KPyU4KChgImVZaUhNJAotNXNXUlFOaF4iSCtRN1FdWD5tLltwIXUnXWonWi4uTTJ0QzkpJFsnQmtXKXMmS0M4TUNAZCdhOi0xSXJKKipdRzsKLWdtU0JXLm5gXSkvXTYxcmIvKU5raU9HcFVPXzIuNEp0YTBtOEYjUiwzbVBPPlIiWVBYNXE0XmRXZD1FUjA6WU47Ci1eb3RbTXFuUmFfbSlLUGc6L1dsNCFzbkspO0Q9a15sZnEsbmJXLS1tRFM1ajIsOXVyZzoyZydCJCpTPFQwWWlBXQotXkBMJWYxTjpnWU5hKlhiXiRdZE4xVEleNCNoTFJyRGwpWCE1YGRnNzJhP21uZmMiTTJyMFtdczEoRGk0YVEiLGgKLV9JY1dZQzc7KWpBVVlLQ0s+ZWUnO0QtIipfbGFZJGtrTXRoVFA+MnFVTl8mU0tsM2JaayE1LlJBLzA9KTpTUGYoCi1AaTQmX2QiLysiN11yZiwtbDZja1xEX2FuY2FaQl9OSTs8MTNcU0IxZFBEJ2FhQDRnJWg3a1pBKjkxTEhhTjFKMgotX3RdPkEvJFg4NDc3aSlgOGU0UFIsPUphRTNbZDcuJGl0bDBLKCo9WV84J1JoI11NPSE6UWJvLW5FcFtLZzQyPTkKLSNzcF9dPUtOYSIwbnAtPi4wYGw/KjdzYE9BV0VHJFx0Z0lNVGZcaXRUVjwmNUxgNSJqSjhcLlgzInVFQktgLDhmCi0rcEVMUTQrXGw8VW5LVW4kbUY3WV9VdSUoXy9ObUpWIkkmQ0czJks+WlxXQUMhOmR1TTVqMC1uPVhzdUQyWz5HdQotSGpPJUE4WytHSl46IWVDKysnSCo7JGJvQEJDUG5taSVCMnU+V1wlNytHYyljJzYhQUQkcGdqQj8sOXRiImI+IzQKLSIpLEZVTXRBSFlkJmcoRkpDa10rQk9WQytiV0kyJW5HKExUMTAwTGIpX1FxZSNRcWtLLDBtUmNea0BaMCtwIS5LCi07M1ZjcS4kL2Y4PihoYVJOXkNdJVZcTmI8MjNHLlkvaywjXyp1bXNfTixhImI5bGNANmhiN2QrL29FXEFAKmhdQQotUzhXXFVMXydiN0taJkZXQVdLOTtDZSpbQys8UThoNnQiNFQ4OCVLJFRBLFFTRHRsRFZCY2RKSSowYygwREc1XC4KLTExLFUyLz46UVtCWWBZRi4kWCJMIlYzTC1iOjVXPUFZXzhOb1BiTC1QXnRKbktZWCZrJ0dqRyddLm5qPjhYVjprCi0rXSQyaCdWX0MoUydiXFo7MF1RLyIjVWdDJlcsdSRhS0RmVjNETl8yOFMrI04vQCpAPmVRViRZW2s0Sk0kbDZCMQotPlFJYERKZCtbUVZBTSluN2FkNmZlLEJVVC5IKiQ2b3RSQFtuQF9UbEFPMD48I0kuKkVfaj5xWDVzWW5vSyIwckQKLWgubVFiJSUmazJkcENdNj5lWVlZI3VRPCQ7VGtKWydKSUdJZ1UuM142RThCXEpPcToxUXVNTSEoXC5vTFRhVmFoCi1eZkpNLyEsNE9cUFJuJGFoU1xcPis6VzRNZFpzXDwqUl8/TE1oUFJFIz89Nys+Xj5zOGVeNjdZS3VTZUlLZml1NQotSURobjk9J2hUWURSQklwLnRYKFMkOCMsOzdVYFVRIz44Mj9sYSUnYyNRLUhIXTVbKiVTNlM/XElhcFtzJENwS28KLW82dFAtIiE2I1NRMGBpTiFOJ1o7TzpWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzMwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3MzEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE3NDAgMCBSIAotL1Jlc291cmNlcyAxNzM5IDAgUiAKLS9Db250ZW50cyAxNzM4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTczNyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzMyIDAgb2JqCi08PCAKLS9EIFsgMTczMSAwIFIgL1hZWiBudWxsIDU0OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTczMyAwIG9iagotPDwgCi0vRCBbIDE3MzEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzM0IDAgb2JqCi08PCAKLS9EIFsgMTczMSAwIFIgL1hZWiBudWxsIDU4OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTczNSAwIG9iagotPDwgCi0vRCBbIDE3MzEgMCBSIC9YWVogbnVsbCA1MjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3MzYgMCBvYmoKLTw8IAotL0QgWyAxNzMxIDAgUiAvWFlaIG51bGwgMzIwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzM3IDAgb2JqCi08PCAKLS9QIDE3MzEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNzI4IDAgUiAKLS9OIDE3NDUgMCBSIAotPj4gCi1lbmRvYmoKLTE3MzggMCBvYmoKLTw8IC9MZW5ndGggMTkzNyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2ZzXEkxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBJkYsOElCY1hlbyJpQ0E9NEsxJUwjals1X0guJm8+MUVCMzAxU3UjRgotPUtNaT1CKi9JdGM/TUVWQEgtK1A9MDZFdVJuYTFaUVtBR0NOdDdFSV5CUkxhVk9HN1FnXFVSUixGW21JIl0uU1kKLXJdQSNia1cnKHNFNmVkKytbRjczJUhEK2UzJzJiY21cLFUiLyVsKSZKSC9bWy1GIUQ3Z15HXDA/Tz1QZ0hCKz8rCi1KVEwyXEtgYmpAMTUjXGw1V00hJXIlXjVBVVMsKzIiQD1ObDNbYDVNX1hZOj8zOFFGbyIySS9CIjlCKEQnWW0iTgotI20yayk3JC5vZVdFYkRqNlAuVUxvdUwkUWVLaTdXQ25FLHVFaUFJY19dYEZaNVJrUD9yXDBCSSZES1RHbys0ZTgKLSJCOiZwMTs5b21KMmc6Vm4zazlVRTYtPm5gL2ElZTsxcWshY0FQQ0svO3R1RlU6YT48OGA/VVUoXjYxaUJmSyYtCi1GREVKTW8zPjBSTWRfLkowbmtuMmpeIWhxbEVhaVVAPyQlNGBXOD1qQyJlbFRYXl9lNGQtNGszbzQ8Rmk9blhDIgotPmhLbG1dSWVrXUk0JCZMRks9aHVdMGAxVTNCWj8lSDkha0NGSTxsZEBzYnFtWDZfc09uaVlHVj5sck9hSkFzT0gKLU90PUpFOTotXWo0QTllcmpWOyo/MygrO11AMEQ2Qi4nX1BNUlorI1dhdF8kNT4pQEMkKE1uTG08QVUuRTA5LV9kCi08M1Fkb0lPLWFUTzwrb2gvZCZVaDpzUmElKWovJWpFOEVQX1VOSDcpImlFPUoxSyNBLW1tZ1BCJkVZWyxfXy0pLAotQmBnJW8wdFc7L1Q8TFxkcHNNOSJFLDtJMmNZbkosJydfTkY1U0lvRmcnWnJPYkVKKkIzTjAvcWw4ZjtvWVU/TEIKLVhyJm8/QzxGI19uVmE+VE1dc1E5LztmKV1ULmhgPl8qRVQtJSReNkgyYidRO1x1bVIsIjQpUEEsQj9rJl1CWlxECi0yVzk6ZWZvVzprMTc1RVEtcjJBTVU1NiRjaCQoWCFDby1gWnFrYjhpTTNvMjVWVTVmT3I2Oz9rPGdCVkIvPERUMAotaTxOYUVvRkNtbG8oO1xePDg7KlxCPiZkJytVO05oJWU7bURWSSdEYTJCLWh1RmYkVUpeUjNrUjVsYzA+aVJBUXEKLWQmN1M+aUkzQ1EsYWY8MjpgOjgzNnVhVCkyaG81W005c19NP20zI3JLSlVEZ1FtJTRpN0ZeOmQ7VUJHKFdRUEpMCi02bENVbk9AT2s5ZFEzLmNsa1JtPShrWWE3NDJAZmZMKE4mVF9qYk5QWGhZVzxCUTRORUVCT2JeUilSIVdFZDg3OgotTls3OFUmLW9OK0Y0MnAwSlVqRTcpISJyPV9lUClbNWpgNllQVVtbVVM3SC8kRmg4cGc2PD9KWkVYXm9TLWxDcmkKLV1URkZGIlZGOWNLI2QzZEpYQ00+aTYycjxCWWJPUmE9MWZNQDhpcysvZmJlTSs6NWtgLTNWRT47QEMqI0AwbHJCCi0tS0gidFUpUE9MMSpKQm9HKWg+Z0kkI3FRSG0nMUhmR09hcEAxQGU9NFwsIVApSXNjR08/ZltBOFhRaDJkbiJuPwotTnAqZzZrQnA3IyIuMDlYYCNDZz9ObzxRXDIlIm8tMW01PU1IJT5zKi5qMD9zLFksWEkkSlhIZGA4VENdPTFaKTkKLSdHQ28lPFhaSl9MdE4yWFYxX2JVaV1GRmAkNDwiSS5PSjp0Nk83NUglX3NCPERPTl5WKSpsc1g4YThJI3JlISx1Ci1HLiFYLzAqVTlhK2dILSkybD1mb0VSU04mNColZVBfNS5VKitOdF0qPWJkPFwxT2tmPD4lUmtuU0k8USUwbVdqJwotMkMxZlVsISE6ZSVqN18qSytMamdpIjElK01xLmwnVmVkOnBxSDA0I11KYFAlPi91N2RDUCNKXVEsJEszO0ozKU0KLTM6Nl1uJjtGVVhTbTQqIVpqTj0iPUc5J142b1R0bG1OMGB0Y0JJNzA4O0RiXi0sZTElPi0hbThQZEkkLyZEPCgzCi1MZUYrWlsoNTNxIzdPPSZqUmY4YERBOE9LVSgwcitAInJfaidOUmBHPWY9R15BQDEiXGYsMTFsLXNUJD5uSjhhVAotSFRyLjtBU0pOdW1fKTkyMWRLK2Z+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE3MzkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNzQwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTczMSAwIFIgMTc0MSAwIFIgMTc0OCAwIFIgMTc1NiAwIFIgMTc2MyAwIFIgMTc2OSAwIFIgMTc3NCAwIFIgMTc4MSAwIFIgCi0xNzg4IDAgUiAxODA2IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xNzQxIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNzQwIDAgUiAKLS9SZXNvdXJjZXMgMTc0NyAwIFIgCi0vQ29udGVudHMgMTc0NiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE3NDUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTc0MiAwIG9iagotPDwgCi0vRCBbIDE3NDEgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NDMgMCBvYmoKLTw8IAotL0QgWyAxNzQxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc0NCAwIG9iagotPDwgCi0vRCBbIDE3NDEgMCBSIC9YWVogbnVsbCA4MzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NDUgMCBvYmoKLTw8IAotL1AgMTc0MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3MzcgMCBSIAotL04gMTc1MyAwIFIgCi0+PiAKLWVuZG9iagotMTc0NiAwIG9iagotPDwgL0xlbmd0aCAxNzMyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83ZnQ3WTFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy5qIlJVcjVUO01lQF5Zc0YoM1c/KWBnJTBmWjFTREo5S0xhXCRHJClINikyam89KDFJNl04Ci1EcGsjdEwoZypMa0I0KiNDIWA2Kytxci09JVBLJjhbNGUsNEt1JjpPWl9pPy9VLDM8Lj4nX29gTiVqJlMlJjkzMAotMz1SMkkrcVE5bVRccWc2LyEqUmROLFhZVDBmcFZtJkJGdF1aPzZKa1R0akpbTiRHLE5uaVk1YDVrUjokRWoyWi4KLUBzSF9tND49W01nY0Z0QT81LzxsVFRrZHNYN0c+MDBJcTBXJ0ZuV09gJlw/ZlVZJU83WVtIVDA0cCFOclpgMiRQCi1sNTY4QV9YTlM6WVY6WUNMN3RQQm5WbmMsaUBNV1svJ2RlI0RldE9eLjRbMEJMOyZQLEBmKW45WVtlXSxjZj1xYQotNWYrR1ZfUGkqT0teJnVgR2g9bzsiJV8zJ19AYVRGKHI9I2dibW0rZ24zQXBtWydWYjolJjotOzNpLT03bjFgLzoKLV5pX2xgQklJQFYvSWojazB0RXRYRCNtQF5CT0xtcUpZSFBAS1ZONTsxKExZK2kxX2omSSR0aVU8cEhRTk5hbmFDCi0zbC1ASU5zWjtIUC4hTlZVN2JKU0tHUU1uRlVOYWg0PzxUSUU3Ml9ecFcxaToiWDJeVkdLc1Vzckgib11UTV41SQotOGlSYzY/NFBMZjBpJWdIPCYtb2YlTjstUChiUFcwajkqM1UycjxTZDJpJD1YTl4mVS4iM3NFImpTN3M5UEovaCEKLSNpbjFqVStANDsoMHFxPS9daXFba3JPcipXXFRSVW9POVNWRVBwTzAzcTxzdG5fP0UoPyNnRj9ELiFvUks2WXQ0Ci1OSXNkUWw5ZFVkMmJxaVwiYTs2RFUsQERxIU9gVztAT2BPb0RBdV86PUNHZ3BpQlRrZDVtXlo7bWxIKjVmYyxySwotS09oM0QsSDBpSzwuYyUqOXROLCo7T2UkYSJzJmBMXEpYRlU+NFYoY1JkJXJ1anRbOFsoPWdnalt1LSIzJGZfK0kKLTFsZSxkbENOdWYwTmJOcDMhRk5OalotcD1nXk0jQ0dhNCZxUE1iOy00cWtwa3BIQ007b0tpSUlARmYiXEdYOXVcCi1LNGYkTkgzNipTbSE2aiZgU3UyPzpUK2cwXi5LJ3JqLjZlKU9FO11hPzEqWlZPTT9IUyw6QEMoP1YjNkcmIT5ISgotPSd1aWRsLmNjLE09OClCPTwhT0BBSGRZPGFiTl44cHRmTV9HWDgucTVtMlo2Kl83SmIjQjE4OVwyKyE4QSteI08KLW5UPiQxN01vTiNxMSVqJWoyIV0qImkzazhLYW9FMUxFYVxEaF5mYVMwTGNUVCEoPW5yK0RxWz9jNFtrcjsiSipgCi0uWVdHODA+clQ8JHEkZ0hHZCxhKyMwOEByaVdMWTQmRmlmPXBZdXIqQTN0cGg7Pi5xPz5uVVVPOW51TmkuNjtGXwotKXJlTDpNYmpUczdIZV8yaF5pO25kSytVLExVXDchQSRIRF1YPWg2JjVvM3E5M2RYVz8xVl0vYSFzOEMoSmFjLDsKLTdYLWQvQC1nOkBZX2U9V2NwOGZyJ1M4WEBlVihuND81TVwoPWFVZS5ecj9bQ3I4VWJOS0o/WFY3KW1iK2lzXCMhCi0wcEU1QWE4NlRTSShiZ1diI3Vdb0NDWHFiVFNSUTk7OStOPy5BXUJfUHVBQms1QTZyOGsiSkY5RWxtcjlIIzQ1VQotcV1NQUspQWJyIkMpPnI5JklZbToiJE5tJmlfXEQ+SG5va2U1PDYuWEpgJm4lO1JHJjFqaGIlcSNYL0FkWi1wdVgKLXFScEAtVz1Ea3NOa0xrR2xzNi5NUD1ATWZLKWYlRSFLLXIyZGJYSz48cydcQDtiN0pmbUYvN0IzQ2clT2tHIz5MCi0hJ0dKVnFpJm8pKzxVfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzQ3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTc0OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTc0MCAwIFIgCi0vUmVzb3VyY2VzIDE3NTUgMCBSIAotL0NvbnRlbnRzIDE3NTQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxNzUzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE3NDkgMCBvYmoKLTw8IAotL0QgWyAxNzQ4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc1MCAwIG9iagotPDwgCi0vRCBbIDE3NDggMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NTEgMCBvYmoKLTw8IAotL0QgWyAxNzQ4IDAgUiAvWFlaIG51bGwgNDAxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzUyIDAgb2JqCi08PCAKLS9EIFsgMTc0OCAwIFIgL1hZWiBudWxsIDI2NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc1MyAwIG9iagotPDwgCi0vUCAxNzQ4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTc0NSAwIFIgCi0vTiAxNzYwIDAgUiAKLT4+IAotZW5kb2JqCi0xNzU0IDAgb2JqCi08PCAvTGVuZ3RoIDMwNDIgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdmdGdpMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtqV2grNGIwR29SYj0sdWZrJ19uNzA3OWI4KWBZaycrczVcVWMzN2AuM3FiMUlodAotJTpePl9cWmN1Tk9bLmoiUlVyLiUoNVRnT2Q5KjpmNCNKQFNiX0ssKlBYJys/Um5UX0FYZD1yQEtecVNkU21eMmwKLUNFIV9eQU91PSs+VlsuIWsoVUBOVFliNHVrdEdeLCQtbWpeWiwnJm4nS1gsRUtKajxrITolRlxfYDBvYl0jLyVLCi0oOnA5RmF1MEEwWj8ubV1VTjFgOU5lOGdpK2dwP1A2OSxJbCNmXFdSXyNiPC0lNFBFLicuOzEkPG5GczhrYm9kUgotaUcvOyQsMFVHTSheOkxUanFLbGVkXkNiNEA/PiJYXGtccEAxISwhMUJLTTFbb0U2LiFKSFcjJGF0QmNxZy4hY0QKLVpLbytUWWhoMDBjRXM4L1x0SyxkMyhkW1NRbDFZKydNPkdvLkRnM0ZgOjoxOTQsMiVaPlNQNFVpMkBBOGxwdFMpCi0rXTo7ITFUUlBRJVBiT2lZZm8lZDtmKE9sNTdjNjxzI1k1OTVWXDlzZ14rTmY7NFJHSzosO2IpLjBbVj5vLmU0aAotSSo0Ol4nKFJ0Sl0jc3E6NnE6WCUoNz9NIzVqIzozTVYsbFJOVU9PUS80NmMpKDd0XjNdIT1AQ0EiX11fLWFgUFoKLTZUXyJ1THBPKSs2RFdkLFRvdS9EIU8mL3AnU2A8MzpjbUcjZ1xVcyZPbE8scytnMkArbmZrb1VUKEteN0JOdUFZCi02KT5mTktgWCtrJi5HZ0IrdXRbSzlYbS1CQSJgLWVeaU5MO0k2WU9PMkVJbTtnOVZGPTBpXEhjXHVdLW87cmVTUgotLmhMSUVfUlFkIyIqSUM6XlwsWzMyQE1WRXBPOmNFQSklb1VOTTokUmJkJ3E4MEFON1liYmZybGFDI3E3JFpiL00KLU5fMS4hMTBoRSVjbCVQUlpmN3I8K1tqPmhYPjxpLyNbQkE3cyhtWj5BMi5gQSZsaj8tQzpjNmspaGwsTENOWEwrCi0jL2k4KChzXjptbFFMNF1bSGtyOWBpTmAva2hjWUVcc0NGNFkwcTInKGNbWkwmZmFGbUw4aU5CXSFpZ1YvWlA3VAotYD0vNFgrK1MySTxXc1hUQ247XkU8dFRSJWxZLkFYIkxQbD81MiEuKzRnLGFERmJodCFdXmdMKVc7OjJcL0JfaDAKLUc0Wmw7a0pPZ2owVEhoLi8iWlZsIyY0aF1xKk1RVU4kRHVlTU4hMi81V0Y0Ji4uQSM6JmJCZkpjLV5sLm1cLzs4Ci1LT1ByNlJMWDloNjMiSE1SLFpyNj1FY0FwZmJXWS9yUE5yMzkwaDhOIWVrWzVQakEwLStpLS1qVmh1KFdFclwxVAotLSQrXD9VMkg+aUciPyNnTEJVIlIkM0JjWiI5RyNQMHAiWDI9ZWRuYVRtU1ovZiNBTEZFJSs2Jy9nXldSNVNTaSQKLSpZKEtIISEzQz1mXCVzISVINF1UN0JqcUIiLUgjbyI/azNaaz5HI19hP0dBdXJbVUJMU2ZGSW00Q11PVCx0LGlACi1Na1kvaUhqNzdlVyEwb18/VE9OZSJrQCwjTGlhTk5FLU1qKEFKNiopNXA5PTJLTWRtTCskZ1IhXmtlMFciOT9kZgotT2Q2USJiQixbZkAiSlFkIXJOTm9KW0JIalUrPGVGYVJsJUBCbkQnQig4TldwSSRmUU5EQEg/YzNQW24uTVVAPy8KLUFHISIrN1hRN2FDPXVnKTRhYiIlPUokL3BWMWU/N1g9aVBpQ3UvQyZOUkNwYDVyWW51NlszJkw4UEs+QkJAZHBWCi1rVkkxN2kyKyJxSkYmPm1KSVRjXyYtUztJMVA5KEwlWTxeQipcXkdGVVpjU2cvVlMnV0xAYmBiPitTK2pBMktyawotRUMoUWhVZXJFYkMpMksoSGNZOUtRKil1RF1iY104O0pBZEVWcE5EdFVmUygqMSpEWDJYXDsvUio2LVhzJytBZnQKLTJDIktFJFlIX01KNTJbbFViSGk8T3VnOVQhUWsvODE7WG5PODBBMUdYOy5hVV9UIUc+LXRBMFw6OyxhY1doTDNTCi1NdEEzNTouYVotY3M0RyNlJl1Mbm9aRmxgQkhUVy1dSlsnTU5zMUI9RixTUzojMWZIcSlWLDcuO2YxYXJlPGlyJQotQlcyRG9BUCpgJyY4N2lhSSdtQyVkJFI6WiVpWmcyODclc29ISC9TRipNUkw/TiYqVmtibyMxPCw5OGspY2tcSVUKLVxKJDE6IkhGb0Q1VCEnQypANUNqTz9AKUg5VF9YbSUpSyQ6NF02bU9VY0Q/QV8qWD5lTjlScW5LZWVBci5uKnF1Ci04TiFOQGJnO2RLUzVodWpXaWJkUSpDR0w8JVMuaWdLKTFnND9jJmZQbC1NRXBhblUrc047bnJyUjFDTEpyKnVBKgotaEpbc3UwY2E7VyknQnFfMGQsVWArJWlYa09VRjZLZjEpcEpkVDhINCdPMiZBQ3JrSEs2NDcvTSNIOVkyWSJoKGYKLWpyV202V3RSVytea18pdU5rSlovb3NwblFbTEkxJyVNa187XHA3KDpZKUYkUkFnTGxtMWtvdHJKb0AjZDtaWDw+Ci0sOEBGYWNzOTRWVyVeJCooQD1AJmJPI2FtRF1SbGxBcihGTk5QLSwvP0hgRGs1Jjc4LFY2clEmZGdFJ0kuWD1CSwotcFhccl5qYDtpZlY4UiRgKG5xNVZHLE1RUmZaTTJjSGo6ZUYqOUl0bzstOShRWTRSZEBpJyYvOUFScXA/PlghckcKLThmIz5SPCZyaE5eOiEuInAzdUlpTmVXZCFAY2ZwdWRXXkwlP1ZFYCEiKi5CR1ckRi1sQXBvJ1hlKzlDWmRqV2ZVCi1yQlRZYT1PZ1FOSSdhJk1TTzZbUz1tM11HVkp0W1RkLXUqUW9NIjV1LS5HPkM9VmBjMSZMJiEyNGBGPWAxNHAtUQotTmxxKldDc05mYUBDR0c8VWJuUVsha1MiLllTdCktN1AoSWBcYlZSYkxiYV84U3U1YmhgLl0uOComK11QMkYwZWYKLVJ0Y0A1RGhmdT02X0lqV0NOVkctVkVGY2s8U2peRTljQDtCaUlPQGpMTkY2aGZNZj87T0tKUmQiWClrRDUwWXJZCi1nJHQuckBCRD00PTUmN0phWmksVllWQkpybmYwLFJFXVs6SyM+XmZZYVtvX2FoR3NhYGZKNE9XOVRkQTtIVEUkSAotXDgpUUAuTHE3TTZraWNjLkxKaE5wY1trJmRSMHIlVElpKHVPbikxIU9RXXBlSy4mXGVvIUMnKiRYRyY7aFVsNFoKLWZScz8uRilLVF9UaSVtRyw7QjFTKUlKc1MyWypfS0xCRk5NJHA9bnVdPlw2bEQyX1s7bGlsXVo9cEFwITdiYSk/Ci1bJ15sMjteJyhBcHRPOWtXPmJhL14sLmVlJlQzYiRlIUI1QDFjVShmKEZZXC0zTzJMPUhzNEEvT0lhYDFbYzh0ZAotLyhaamIzUUklZ09GVWZvMkpwKkBpMU1JZiQ0bjZVXSQnUVVWRylAKWZccjtxRSROcF5wbEtaakkwK28+MFNtUjkKLWdtMlk8WydwPDEyZEdaQkByTj5SYFk3PFcnKjBvQTUvY0NxNEQkJWJscSJQJCZtOyhOXmMkP2hsSVU/XCJzQ2w2Ci1hQTZUYzBrcV0xNzlFS2JZLlxQOnMhQyg9TzRzKFUrRD03LDUvXCo3OkBxNVZTdUYqSUBaIm9ZbTlqSE04bmVBYyFNVFZ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE3NTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNzU2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNzQwIDAgUiAKLS9SZXNvdXJjZXMgMTc2MiAwIFIgCi0vQ29udGVudHMgMTc2MSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE3NjAgMCBSIF0gCi0+PiAKLWVuZG9iagotMTc1NyAwIG9iagotPDwgCi0vRCBbIDE3NTYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzU4IDAgb2JqCi08PCAKLS9EIFsgMTc1NiAwIFIgL1hZWiBudWxsIDY5NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc1OSAwIG9iagotPDwgCi0vRCBbIDE3NTYgMCBSIC9YWVogbnVsbCA0NzYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NjAgMCBvYmoKLTw8IAotL1AgMTc1NiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3NTMgMCBSIAotL04gMTc2NiAwIFIgCi0+PiAKLWVuZG9iagotMTc2MSAwIG9iagotPDwgL0xlbmd0aCAzMTUyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83ZnVDJDFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy1vP1IjRTQmJ29FRUNfZFRyKFc/KWxhTCcoJixjPi1jQkxeN0lwPUZlRDBVMTJGSFA4VVVKCi1OXSVxSCMibzhBQWhrOXEiOic4IWIuRCN1U0lQUykwOjp0aV0rMzwiJi5SWTJlMXV1JE9SPXE2VU1yTCFeP1luQgotIWw0OnU/OSwwZUdacWo3OEAmQDVcZmxUNWs5YmY1Om5nMWwuKioyLSE8QXVSTk1CJXNvRkUqPEwpPlVUJkM8LEYKLTZWLEU0I3FrYC8pWz9DMmNNc3BHIThLPzpZYlZqUF85ZShWYEpkMGJqUidSU1IpMW9uV0VAIkslS2d0KDJhPz5lCi0qclYnT1AtVjNNQSJ0Iyk2TlpKTSxsc2E1PDRiT0FLTGM8Y19sRiwnJS4vRScrZytdc2k/UTw7OVBpW0EmUyYzPgotN1suLnNuTi9MMjwiS09MR2hZaU1qLmQlaWE3Kj0sMmljcD08cz9YL0ZDJG03RFRzcHM7cShwVi5rOl4wZmBGXDMKLV5mKjZnUEhtQzojJl5NNydNS2FAJDhHIks4Q0szLm8qI0ZFXm5WMVJvWDNeck1kc0VEPi0rOClFU0stb11WPnBxCi1BZGZub2tXR1xdZ3BqRk9kR1g0SyU1UCNIcEJFcEtHPClXR01UaHMiK2hGPlouU0wrRVlEa0JgOSJNKyhAYU1OOwotOyYwNUM/QGVSMV09LSJSJWg1Y2VgJnQlZitmYGpzWDc+NFZYVVFLcEgiSz9QLyRVbD5vLlx1cVgsP05xIWBaSnQKLS1OY3M0RTNCSTtFb2JIR15tVyttSyNnaDhOS15EYSpiLCRWXy5FKEFjTEQwW0A0JjpFKic7Lz9cQVtgbWolUXVpCi1lPnNlPjFsX1M6YDpZTFFWLjJkTCFdQlkpLkVLU0goY0k6bWlJWUlhRzIlR0kkZDsic0RVW05AMVA/WnBvPWNacwotQSNZNzhpS0tMbi06dCo+KSIyZycpQWBVSklmZCkrM2dRYFlCM0Y7Wlgjbl8iTkZuLG1JWkZHZVMxbithP2JyW1kKLSlfWjBtMW9dKmNMaFBMJ2Q0aWhxO2M2MEZlSTgtYmF1aihEPkk1M2knKlE5MC1jJj5rKUZsZmBRQ21Nai9yPVFYCi1BJCVZa15LV01qWWc+VEMhWzdCJCluciVQU1NgWWlvJSFGPVowc2ZUY0EjYnBHO2IucTpTK2xlUGYidGlMSUknNwotT3FSKiVjbykpZ2k9TW9vOUc/LmdmUEhIKEZ1MG1fSSRsYCJDTS5vNVchK2ZgUCM7UVlXRyI6NVZVI0pTYj9cLj4KLSI/UzU0bD81T0BcVUtFdDJgX1draUsyTnNAcXRvWSImcUNlZ0lbPEZORj8kM2ppWF5fNDZcaScmTjZGQU1CLE1kCi0vTyInLyEyU2IzOSRwIVU3N29RXyxQOUVqNmRzRlpUdFZbKyw3YkBnQHRuKChcUkRobUkxYDIpOFU3UXFHQ2wzUwotJ04sbiE7NkNhZks5bi5PTU5hKV0jM2NYMWkodCEuJHIpVGFrYiNUOTVTNFhvbXVfRm8kbCFgRmlXczg6Tz0pJCsKLTZmUVs8JVdOT1gjPW9bbjdzY0U6PC9IWD9oRjk7MVtpSFozLiRBVS8xZEQmcChkaW4xQmRvL0JbOlNQMjhSLVhbCi1kVTNwcEo2X0ZgPkNjcVlIblY/UmRrYClPciUyPThyQiNbLCxGZzpRK0tgP1NSSi9CRFMjYSZlQD04aGEjcVdyKgotbGlxSG4+dHBVUj4zZ2EvRVxkKDVONU11cl1ndDhgNDlWZUcjO20hQz40TVBcVzgwcTtkJis6OyxHZmFGT2BMXkEKLWQhKEJUREo7VUtTc3RJNj05Ql1zJSc9cC9VXDglXydmO3RXOztkX0ZmW1NER08+TWFcJDxUZjU3azdCKkBTIUQuCi0vVlhzTVsjWyFmNjBMJD4nN3Q9bmRqU2Y6Ll5UYS5pKzxGWjE2KV4rbl46PWc9VlJeM0A5U1ZZLCxQJV04X2Y1VQotTmNJVGtiO3FeQz0yYGpXJGh0XUBHOExZbmtcTFtDXFwoOiRVMDhCKSU/akhsQiIhZStnTEttM085QSs0Ki5tWyYKLUEyJF5kVHNfIyJAKiJCMiU8IV1EQlNmPHI1UmRhZmQ/RmNWNDw1UFJtaFFwcVlgWlo7VlddR1QsLWpAKV8yVkt1Ci0ybyQ9USEtSl80N1VJNTRKUU5TXkBXSzkqWz83Yl0xOFxHbEFQOU5uOjFEOjFTP09tVGMtRWtiOFpuTkxLQ0dBLQotZkdMLjRjU0hNN11YUTxxaTdwPm0/dFgkZVNhWDMsY09hPWppVSQyKFpcajFfSC1SIyZiNUFHUiwvMDFULCtfRmkKLUwnZT0pMSsiXiRAXGgrRFoodDNTLy8rQGtOZE5zL2NnZWgnWkVUVVlkUUQnRio7KUBZTjFwc1Y5MHVQYURJMEFzCi03UDY1U0EoVkUwYmVXOVc/NiU9XTxzITkrUDQ9OSglS2hzZj1Tcm88Ym5RNCFPSiw7Y1YqQDQyTXFxQzBWZTsuQAotJyFxNXJTOF4oYzAoLzZrRXMhQCQnSDs6UWJ0ZlkpVy1IanMvU2YuJDk8c2QlbkVMMk41YChvMmplVmdObDJhKUkKLUdyQzRQVWBnVjtHJHRrViVnU3Q1ViJIN1AsSj5DdG91SlpcOHUzaiguXlU+SEtPRilHJ19JNnMjN2dcUENcUy9HCi1JJVMxZShiKDVDRVo9NUBHbiZgXiY3bk9aTlBnKE48MS5Fby9lSSxyVWVObWApNjBCMDhyWl5ZYT8iMUo8NCMwVQotTWRBXSM7JExGRnBmVTBYRlBwOCMtNlNyb0w9PHBZQyEnXEEjXEpCOT1FZHBvT3FvYGtpIi0uIWxONV9ZYGdnNmMKLTdLcFMoKEJJJmcwIUU+XEQrN2E7W2A3JGFjY0dlYjxNanEsXmFwIT1ZV1prSk9CcVEwb3BlPkJHN3NaX0EyVkpKCi1nV11STiMhaFJgXChPazxIaXUwQSo9JCgyMHV1LHBiPS5VQjNjcVlgT3BGUlZVL1decCo9USpQJSwoVzEoayNJNAotJEAiUTkoaD08YipWcGVbXzcjYWY9aSZXJyYjW2lHKmxOQi9MK2hTYzwrXTIuXkF1UkZAQD05Y0YmNnA0Q3FUWFcKLU4rUGpRUlo3W11QKVstbG9bQnUpWnVaQyZOKlxXLTElNkZaNCNlLCtDWio9PSVhLjZNRW5zaCEiPDQwKD5EKkglCi1dW0YpIWppP2JaX1E5bUJCcihUIkgwISIuXDxGJjJVVSFxT2N0VysjbyZoXSJfUWMzNU1uOjFoPSFLSEQzIXBaTQotaUg0P3I1c09Sa0s5UmpBZGVMUk8yMixUMiIraT0vV2JqTSpLWm5zY1VyNldVZkduK0BgUT5VX2h1dTczVCU4Oi0KLWEjIjJebUxzZUcnZU5mbT8tc1BAUkhuKTEjOVxsQC5SM1ZHcyxxdVokNDpvVFFKKU4+QmVWKSVwSHJCWyNHP110Ci1LYSRBQVtNNFovQChZT2ZAKUgxalZwPjVMKE1tckpbW2s2KWZBY2g0XVJnWyZqWW46Tl9yOHMnTEVtbD06VThwRwotJElGRWUjOm9lPC9mXVkhaFhUdDFjaWxUYCM/MixwXUtyQFAhWHAsLyIyRz90Oi9eOGxiTyRvZ0o3TlImLCdoRF4KLVpnOHFraTJmZ0VON2orVWBoVGkzWHRHSjxNTUglZFBjbC1URShHOWM6LVc3ayJxUyJzQWtGZzJyLVY5QUx1QC0jCi1hJm0vcWU8XUpZJHVFQSosPi1cMG45ZFtTMFo7MUtMbVc8MmlwYGlTMUxNK0QrOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTc2MiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3NjMgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE3NDAgMCBSIAotL1Jlc291cmNlcyAxNzY4IDAgUiAKLS9Db250ZW50cyAxNzY3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTc2NiAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzY0IDAgb2JqCi08PCAKLS9EIFsgMTc2MyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NjUgMCBvYmoKLTw8IAotL0QgWyAxNzYzIDAgUiAvWFlaIG51bGwgNzA2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzY2IDAgb2JqCi08PCAKLS9QIDE3NjMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNzYwIDAgUiAKLS9OIDE3NzEgMCBSIAotPj4gCi1lbmRvYmoKLTE3NjcgMCBvYmoKLTw8IC9MZW5ndGggMjIyMSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2Z1czQxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1stbz9SI0U0JidvRUVDX2RUcihXPylsYUwnKGIoZCdiQCtSNyVucCQsR2RoJjdPa1FVQ2k3ZwotQGxda1ozNCMkYzVeMlUoOXJBKSVrSSxDRmdrPnIyJXQ6X28lRHNcZy5tR1gqcCtfU1tHaVU3X0s5UC5LWDVPL2QKLSYzZ11QYXVVJC1PUENCV19bK21VTjFrMlUmLjJvPGdiR2Ila2JvZFJpRy87JCwwVTxya185K3JCVU9GU11JKyZBCi0mKHAjKk5KIiE0MlwqYE1mSzBNQWc5VD5FQHBtXz5fQD1GRzJAXFtjKEFKIj1tIkdiKmoxR0djTjw7YDEjc0hAJwotOUpUMy5scUI0UDZVVWAvXTJAWDsrQG5qbDxzNDBZJ041YHRVN2JKSFxrVVRlbE5JcGYhai5EV1pGWzZEbEg2UT0KLWMxNlxRWVhmSHFbJVwia11UVyNLIiJaQTtkOyZrQzJpTCsjYjYwXWU+cW8lXk9Vc2JsTDEuU2crSmlRVi4vXyxcCi0vOlNkckpQOSZaOldcay0yaVw0OmU/R2NpRTdYRCxvPF8hLTx0RXFMQFpFZjU6LShTNCJZcW1PYi8xUGpfVVtILQotJT84XFFnK25ZbDtzZDg7LD9lK2c9ND8uOShwKGtuKUI+YkpJSU4iQStnWkBUWTBpblUpQz5jaEk9b0ZnIS4oXlQKLUstN1o8JG9pLEhMdUkhQC0mO19XJ0BbZCtHaHNHNU4zPy5FWkRpYUxMTz9WUVUrQDVmOT9XXmMzWidCQSkqKFk3Ci1XXUgpK1ItPWtkXF9AVFFONl4pNS1CK184NVZiUi1ranI4W0VpQCJlVi4yPXJYOjllaTVWaW5UNSgjOmlbZitLMAotY1ZTZWlYWUFKaUxFYWgyPjNmUzlETywiKzNyLjdwKmZkSG0xTUZDKFIpViRIZVEsInJMO1MqVlpBcydIUDwsT00KLVEoXFJpMEZVYzxOYmllKDQ6XEBXaUdENV1EKTNHUF9Bbj0hZzdvJ1I6L2ZKZCdLLDhYcjsvXlxhZTJIbF9AMkRPCi1McylzWHE4Y1cnRyIqXWBHSUQ4R2sscShOKG8rbzRTUiI+QmgrOk8yIi5zZGBqTlxzR1BQQGwhPydoPW4hKzZlJAotZ09hNzMtWEUrXWdAJ0NVRlkmUUpKRGdaJjpfJVYqXUstPj1UdFpzR19jIzRkLzRMayFINzZZWCVxRmpQREhLI1UKLW5FTDhtRWZYLyJgRihhSENeTSlFPEQwTzMnMDYtO2tgNCJwRSFnK2UwKjcvMz0vLiZiTXI8VHVZW0NFclclaGxtCi0iUi5UdSQ0NmVga21XQ0ttMDxfNWNKLiNAS0IsLTFScTtsQCRqa1IjQmQ+SUAoP0Y6TCY6NiU2bkBvJlJTNWRWMQotLDs8ZFMiWWZQdCViazA6IlVMK1haXFVSXiFGVTBWSmErZFBvbiFNUWtUR2FyLFdTPWxPVWlXLS9yMVwhK2Q+TlYKLUs0NyhnTSw8UVBgN1VbbjsmRSxha3JoX1o/ckojOD5ZdSRbI1dZOC8kNDd1aT1jK3I1Q1VILlYsYmooWU1NTzVSCi04O1BTK1VvUnNnZDpqMy88KDtdKFU7YEAtZWhrSWkqI1c5UyxWOCU7a24sLyM3PWdrakhLUjBQUUp1P1whX1QoWQotLGNpX2xBJGw+RjQwV0ohalIhLV9gPFInb1UyZjdyWUk1MFxlNUEmJCVkVWdhX0FRdCFmZ0kvOitOdFpiODY/OUYKLVBlVVZhcS5bKC1cS0trVEw2RTpRQm5HOigkXnJqWjdbKSlNIzc5YClPMF0zX2BOanFmYW8rQj9lRiM2MV9MZyoxCi1tNXBdLkclJ0BeYDxUZF1hSjFScVNxK0Q0NFNWPDNBWkk3PyZOQ1pPXDV0PlRjbktnRmlUISVVaTZXUlhiUlQ8LgotQipPWlhcXGlMMSI6ZUgsLk1CVydSOzoqI2xjblcpYGI4PFpSOFBeZWRMYDErWHA+Kyg/VjxvXiMxWFAtO0pJVGgKLSMybSVcNGpyK2MmWiR0KGJCVS8+SEFQLzpZVko3Xi4oRTdnY0B0UFZFaVJYdUsyTSxTcCFLbVg3a25rY1RTRWdACi1TUFVuPStMaUUuR2t0bDhfRC8sJzUlKDg8U008XyNNYFc8PTQyPjdWPG1tWFolO1RXNlhMZkszLyM7JC5kI2I1JQotK3FQNTdcMWsqOyFPZzowSk01bjJPSWJyIzYzXkMrKjIpZ21AJEQtSz1KQlMkKlJ1I1NaLmMsW3FWRTVDTkRYLUYKLW9KUW5dPTwhbjArVSdkYiMyP1pkRGgxL2ZCSyY0dVliaTQ1IUtfPyMhNydrOEM6UEcwSjkiIT9BSVpPbUJiIUtJCi0vcmFOb2dUXktaRCpuMkFcRyVPMGdzQjw0OklscTAiWChHMEhbP0c7Zy5vOCg3ZGdCZF8qay1Faj1bcDIiMmwvLgotTChNZV5TZEsqKWhfWiskRG1nU25UbVNxLEExckVjcCZJNlglKGZxQGQ7Uzc4KzJHLFEoSVMqNEVAUXJIJVtDIUgKLWllc0BPIiI1XWZXLip1Oz5SY1ZaYzNxN1dwQCQxb19nKFVDUmZUO2Z+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE3NjggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xNzY5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNzQwIDAgUiAKLS9SZXNvdXJjZXMgMTc3MyAwIFIgCi0vQ29udGVudHMgMTc3MiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE3NzEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTc3MCAwIG9iagotPDwgCi0vRCBbIDE3NjkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzcxIDAgb2JqCi08PCAKLS9QIDE3NjkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNzY2IDAgUiAKLS9OIDE3NzggMCBSIAotPj4gCi1lbmRvYmoKLTE3NzIgMCBvYmoKLTw8IC9MZW5ndGggMjA2OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdURxIwotSmBRJC4yay1icUxiJ1NcJE8yUjBLJzU8WldEalE/N2chTkQxZzJeU2BlNEVAXEFnQkdcJzdPb2otY2ReI1QhbjwKLUpjXVk+akM6IlAjIiozL2AsW2pXaCs0YjBHb1JiPSx1ZmsnX243MDc5YjgpYFlrJytzNVxVYzM3YC4zcWIxSWh0Ci0lOl4+X1xaY3VOT1suaiIpYDlHajNONUNBIiFOS1MtbnVXMURTbEtvXmhNMUc5TFQwcEVSPC1EMkFvMXRpZU1gbQotaUBnXlpvQCdDUDsqP2ZUTCI1Y2RiWkskQlJndTwmUkE5JSIiWTZWQF1zIzg6JSZwLCEuK2dBOF8jVzdFTk1AbWUKLSpmJEVoXC9FKiJabjw0I0BGRkgpS3MzKjxecTRNQF8hc09MMVhKM0hAazY6LV8sJDlZcWBiVj9xJi1zWidMPDxUCi1kMyleOlksYSU+WmolcE4sKHEqZlcnRDorVHQiPkgjMEwmSE8iSkozVyMuLVg7SjdZOSFoZHBJJG1WRy8zPVIyRQotbDhmP1E9UGo9YCxLTiwrTj9iW00yWnM1LWAmMFlFVTlIV10vISpVNy8wZV1cMHMhMG1qWVNKdDhESDY4bEdDJzcKLS8vK2lINDpIO1htazt0TWpTVWNsYW41RUw6WkhFNjE1cGQpJ2BTWU84QGc4VzhVTmtDTENyZ01sOGY7OFtNMCxwCi1KRGo0JSIqaF0oMjxlNXMycU84akUmLSdVUGhmKTVpQyM6OUw7T2tXM0tCJiNiVjUmdTVpZ1A1VVdEOlFLRUZLVwotM0RtXCgqRzE5IlBtQjkxMW9oJ1c2KyEwUVEpakticExfXWlmUDNISTxGP15wIlxGdHMxNjMhIydpRy9LMXUxJTYKLSIqNTZaWCgvaSEyNU9mbWRdXDw+LyZYS0hvOEZ1M2NdbkxyOSZsOFI1Yl9FP1loYjVua3VkLDJaOFRLYSVvbWFmCi1MPm88RjcjcD1PYihzak44a0FHVS8lWHRzQ1FOKEpkJSElbkpINUVUXmskUzo9WEw1JioiVzlNSG0wVDZcLUEhSwota29nN3RWWCQyYWwpbEgjWyEvSztDT2w7aC87US07VmIic3BNTWBWJmN1Q0dVL3NOQXNcdFFGKFI9VlslU01cXnAKLSMhYG1gPVhIIm1BZFpOQTA4J0VdaGZdSihZaFYla29cLU4tJVdsU3E/ISpVZmBBXTlgNFxbUygwVGJLXE5ZPitQCi0jNFsoU2wmc008OjI8b2FiRWYqOTxxcEY9N1NkcygsVnJwdE10XVplOW1sLls5SHNoXkNlUDJmU11fTDFDcjpJTQotKCM+PDtlNzRzVWMpVlQvKCw+XSUjailxMVxaaCVQREpoUCEmOC1RR1UpTklqUyM1SzdZMChNRmgyK09DTklhXi8KLWknN1BkSyEvcCYrOz4mV2dnTlEwRElFbCQ0WnJmLyhkYiIlJSdAP3FZU1w7JGJXQVU7L1pvOE84MT1TdTZqSj0iCi1lZGFScTpgMSZEQFFaP0EoXkYvUikuQCNcSz9bUDlfTjdiLitqNFNSXzpVXTIzKVw8MEpuJTlKbU08WHNmTjtEPgotN3U/WU8rSSVbZWROQyhiLjFoV01QPzpUZiImKUU5WWdzYyg9TXRPaixZIT1CVyZtSW5HXzsqLkFJRTBaMCM+SW0KLTdBKlVjIlZEZT42QGVwTEAsdFItSj4sOGA9UkA2KEE6RnMsalNhY2wjaGRXNkVcLVYqcTZ0STFMKDFGYkJJKFpkCi1WOC5bImhbKGVzWUI9PC9uRWEhMFJXTCYmSlNHQ1QyIk9Paltna3BoZ19IMiVUKWxHWSJUWWgkUGFDPlNoaWcsWQotYEMoUkdRTmtnKitrU2tBcUlWRkctQS1xIUc3M3NuKWJBb0pkU0ZsYE8uX0ZDIj5KbVM7W1FuOCcyaDxAcENuUm4KLU0tcGhfa2FLYDJJKTgwayg1ITA1RnIpJV40L1tVTyJqakBLY1ZqOXJrJUpvQWUqOEI6RkRGKmxYVDRwYSRAUF9uCi1tNSlXUzBGUkVIMSdSMSs2RFROIVApMTVRJlJzZjFTKWcmV20wcjlWS1hCXTlrVT9gWmE6bmpKO0BGZilVQ0ljdQotJi9GZ19aMyhgOC4idU5sXnQwUkpSNl9kJzlYNDctW28wXz1QSmg6Y2MydUktU0A0TihDaU4lK2BgKSw1Ol1pM3MKLUFSTXJRT1MpcktPQCEjKEZJYiQpa0w8TlJZXVY+I2VMdVsyQzg0LTgpT3JUS2RacjdwQEYjIy0tYTBaVEtUdFxaCi1qXlNIJ1R0cC9iXHQlbFBfallYdGMjSClROTN0czxCcFlySWkpNTlTa0dzTDhTMGAkQDBCUjBNPWpeLHJWKmwwJgotIi9TUiFbKXNgJUUkO0FzYCFAJiJFZ3UlNVI/YVRfazhrbFlIXSpGXEw+JFs/KWJqWC9PPj1saVxdPlkjWlVrUGoKLUpJYigqVUJzU0Y1Q0pOZiFRVVQ1Q0ZzTlZbUGxGYkwuY0dobEM/SVZacCpAJHBMWFtfZD4mNDxmJkZ0OCkwLiFOCi1iRyZndSJQYmhdTztnY1whTWZofj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzczIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3NzQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE3NDAgMCBSIAotL1Jlc291cmNlcyAxNzgwIDAgUiAKLS9Db250ZW50cyAxNzc5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTc3OCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzc1IDAgb2JqCi08PCAKLS9EIFsgMTc3NCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3NzYgMCBvYmoKLTw8IAotL0QgWyAxNzc0IDAgUiAvWFlaIG51bGwgODExIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzc3IDAgb2JqCi08PCAKLS9EIFsgMTc3NCAwIFIgL1hZWiBudWxsIDY3NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc3OCAwIG9iagotPDwgCi0vUCAxNzc0IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTc3MSAwIFIgCi0vTiAxNzg1IDAgUiAKLT4+IAotZW5kb2JqCi0xNzc5IDAgb2JqCi08PCAvTGVuZ3RoIDI0ODUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVEcSMKLUpgUSQuMmstYnFMYidTXCRPMlIwSyc1PFpXRGpRPzdnIilUMWcyXlNgZTRFQFxBZ0JHXCc3T29qLWNkXiNUIW48Ci1KY11ZPmpDOiJQIyIqMy9gLFtsTDs4SyYxKidCNWpNXDwkWldhWGByJWptKT9BXzs5aylCXmttIU1hKG4+XC5eXwotN3UiOi5bYyNkSS5FSi9sKGVkQzIkJlhOQ2ZsOnVgRCtjP0tMJyQ9aC0+IV09TUAsKWouIkwpXTJPUyxnby5ZZDIKLWgpPzNuYFxWJVZrPDUqaktmOi9GRk5lWWBHXF5uOWMhXUhoJSclXCYyW28uMlxEMyU8QlotTiljTkQpczRGbUxUCi0wWDs3UydKYlcpK05QN1RVN2RhO0tyYWUqTV9IZClqdU51PDg4bzdRVURXMlVgQG1uLChJTztUT3JVSFo1W29YMgotZEZwIiwjL1JCW2tiXnFFOmFEJUdpOGNfVE1URWcqWCIpY2ExXmtUT2hZIlJjSGMzTHNaLSZUcldfT2dnalReWTcKLVNFTiIvVFEmVnJtYDs6LGFsKkIjLmEkXVBmXzdROmArJ09vVUlhKXUlP082YjNeWEAsZ29gME4hOFBQUyxDJk45Ci0uajRvWFN1VnM3cVpzayJfITNyaWooUTpqJTNsXywyQFlgMmNOJ2xoUzVwRUZZa1kuMyxPVjQ4a1UpPjc1PTNaZAotZSlMLlUhdSdKWGYtc3FsM0ImVjE8O091THFbWylJNiNdKCMjbmpiajQmbUg2Qkc9PS5GMWE5VFssbFclTjIrPGcKLUEnZTQtK1sqUTcwXjpQclRQXCU8TCZsdFw+KG0nalxPNGVhKiIiVVtGVGhlMGFYUWtNLVVyOShZQyFgO2tnUCUuCi1kVC1RMjoqV0E0OF0oc0I1QFZSaSExa1BEVGBWPGQ8OjxRLzxeWDk7QC1QOCZON250SG5zJCsoOSwjOGY2YyFqdQotbG8wb2lUWkxnTCFfXl5jJUA/X2lPIWJlSzpjVypuWydNbS87M2BEdVgpSnVeS11rQyQiKldNZ1JjR0QyPS82KFYKLThbc0RhMV50by1SaGA0MmJOQGVnITxqRTROb05pKSY2LlxjKVh1dWVGMUNiZW9aRnEqIjlYMjMhUlFzJ1hnWlw7Ci1DJ2tmWmIlZj9CV1o1S0Rea0RqYl5VaG5hN2tIPjlkZHEpNUwoYVxeJ04yMGw4dTIjTjNaLEs/RiJZITdZcCUlVgotXDhvXlhSUT5MVnMjSiokIU9rQUIuW25sPVkuR10jZVZJMDQkPEI2aSwyZCZOIy5xQDMzPVU/RmNvOGBCUS1DX20KLWNMKCJoNDFrQ3ImOGpSc2lUbys1KCFKRHMmdF9nP0t0WnRtZCclRipBPyJFJVFcYiFlOzFSSC5KcUJzY00sNi9FCi1bJF5IVkpMYSQmQVQnYVtXZT1PWDY9OjdSSmVgdWEoa1lFYThxRkE9WD9zWT9lSXNjJFhBSCUkaTkmPCNVS0QncQotbT9Sc2xoVkY5T2s/LV1Wb2NUQFlAYy1LcDhVdT1KLDY2cSJfaGddVktqa2ljVVdWPzZeZ2RkYSU3Li4pYVMhSCUKLVlfRUsqXCNfc2MkYy1wZj1qQUU/LERUNWM7O3UiLmEhO1JVLGhQVjw2aWRjaiU4U2wtbHJbLzFFWGcoLVhbQyw3Ci0qOFRBQDlNImc6JlJdPl4kZCoqLFgyI1U3RyNmPTFIP0U9P2toJE5XY0NeJjpFXi1dPSEyNjEzKXFPbWIkdFktLQotIzNPJklTcmRBWWtFUUIib0E6Ym8oYlovJlg7LkUvYCM9N1gvbShuUzJTdTxLJHNNW0EvI3QtIVhTJjZuUUQ5MTwKLWp0JkAtRldDTWFXb3VPPE8+UDFXPmUtVkYkWElMcjdSUF4kU3Nob2k0RDBzU1Z0Qyo0LSQ2QVc1XyhYYDc/WEJyCi1BQDtaQ1RHVT1la2s4THMnaVcwRjNKVUdUWiw4PSolLmJvRFdgSVtaNXNtYislczpKbyxOLSIwSDtkXFdZY1okVwotazdcVVRJVUQ4bTplOFBcbl4yPzJOY05kXTI8PjtaZCJFSFZKW2RTWWAkLTVgJk0lKTNAOEkwVGRONSJmI0RQYXMKLSlDUTBOTj8oImkiZkMmbUs0JkJsLVgicW05V1tXcyxsIXN0LD8jJmZlSS9ITjpKLDAvJi5URF9RXnVpQk1Tamk9Ci00Oz1iRTJlRkouVWU8RkQ5Xmo0PFdaXyVLLDwxQ25oMychdEZUJWMhNzQsO29vL3QrTjsoIVNaJS5tRj5aWTMzKQotTz84dFQvaVhdI0YvV1sqUjtgSzszRF5kNk1JciU8P1MsW0VxQS8oaEchUSs9O3JORWovaTZVZTsxLU1fYnRiPTMKLTshX1ZUUk0kLDlKVkY5KlxSPFRJMyZvPDEoX21UcV1UL2NaODxqO3AiJW4iVyQmQnVYTFF1O0RuNyExNzVdQUdECi1eX208aztlcT9CNUJbJUxsOUMyXDMhJj5yMlc7Xm46Jm5KVTlELidOImtAaFAsUHVZJT9uVCdIcEAkZTtlLWhhQwotUl81PlU0VFojPUcvOD1vXXNpYW9oRjFmWiItRkEyK2NuZWZYOV0oWEJPaFc1KSNpSFRvbXFiR3JbK1AvbSRIWDwKLSRncEliIlxPJENLJkdjMjZdY0UtMmApNihsbTZbRm43SztBZ0AsMTE8Qik6PEIjKiNZcS1YJEpNdChDPGBIUWVMCi0/cWFAQ1l1VHUrXEhgNzQ5R3JvOV4tb14xXShkKVNOSW5HNy5ESWsqLjo2PWlLSkgial46Pm0zP2BdbFE5W1MmOwotQiY7RUxvJjRRUjhXTzpoMlxaPjpSPCxOXjhAaDdkbDtucio2Pm88T2A6c1FXaDdRTzdtYGtqUkAiOjZSbHRCOU0KLVNqTGUqWlUsSm9qLlw0Km9ZbTcsMDUrU2VOQ2c6I15qJFh0aTEoVThaN1lebClJTzdmNlA1JUIqWkomOlVDVWZCCi03PVsqPi1JZFU5NENnUUwpNmFrMGBTMDM6QGEvVkVvIkk8PUImO2xMOW81KD1tWT4qInMnT2g9UnVxXllPNGViTwotZ1srPS5aOCtWTTBBMTVgRDd1WEFvUzFsPEdAdC9sNEYrRkZmYE4/Pn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTc4MCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE3ODEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE3NDAgMCBSIAotL1Jlc291cmNlcyAxNzg3IDAgUiAKLS9Db250ZW50cyAxNzg2IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTc4NSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xNzgyIDAgb2JqCi08PCAKLS9EIFsgMTc4MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3ODMgMCBvYmoKLTw8IAotL0QgWyAxNzgxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc4NCAwIG9iagotPDwgCi0vRCBbIDE3ODEgMCBSIC9YWVogbnVsbCA3MzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3ODUgMCBvYmoKLTw8IAotL1AgMTc4MSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE3NzggMCBSIAotL04gMTgwMyAwIFIgCi0+PiAKLWVuZG9iagotMTc4NiAwIG9iagotPDwgL0xlbmd0aCAxMTQ0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RHEjCi1KYFEkLjJrLWJxTGInU1wkTzJSMEsnNTxaV0RqUT83ZyJZZDFnMl5TYGU0RUBcQWdCR1wnN09vai1jZF4jVCFuPAotSmNdWT5qQzoiUCMiKjMvYCxbaldoKzRiMEdvUmI9LHVmaydfbjcwNzliOClgWWsnK3M1XFVjMzdgLjNxYjFJaHQKLSU6Xj5fXFpjdU5PWy1vP1IjRTQmJ29FRUNfZFRyKFc/KW1jQGFkI0ZDZiIoZikrNFlMZlwxZHImL2BWPF9ccHRWCi1ANi5oVl9ALm0jaSt0TjMlZCpBRlkjXWEnZj5Ja2wlUlJcRzRYMWZybTEqWCFqOm1ATTVqQyhhSzwsUW4iVi9vIwotMXI4WlBiNkMtMjk4NDo7IUg6O3BOUGRSOiMqJHFvYjcpOXM2UGZUUSIra3ExNXA5bz4vckc2WT81QmBmUEdZP0AKLStiNE9wLUI+SCQzPVZybGBdKE80R2ckXklPSzlXXjdJWWlNMltqMWVnYlhUcjwzZTRmOnE1XkxfbmM+Oi0qLUlfCi1gOj8lOjZlJ19hRWNCMidfIWsjNiMwazxDa1ZuLnNXZDUzZEsuR2FSMSFiW0Jgc2piZkJjQEQxO0VibSQlJ2dUagotS2BfViIhUWBBYmstLD9hPmNcSy1FSV5rP04xbEo6bjM3Il9mRlVlMztxQWdFailFSDcjJT1qVjJcKG4mMyYmLlIKLU4rKlJPQGwqc0IwbC9pJ3BsMktAZDQ1WCw+ZnViLGxPKCdUTlRxZCUpTSw3ZkFPbTZJT01XZjVaQ0FbME5oXlZxCi0yU1BGSVsnLU1kajcscXIkIWhyXGg2Wi5JbUNUUCFaOFcyY0ZmLTAlaUczOjRMNU1OOyheOiNjKnBTRm0qKlN0KgotRnRCVFolNFBFJTQlYUEvYjosT3VQT15RU2k7aUYtTmlyb0A0XkBgS2ZKZWlMQ141aHNpWXU2LkA/OWBdNDRzI28KLTosSXM5WnFWY0VkYEJbXWBwcSxpKlQxQS1KVjcwOUlPUVgrLDc6bjMlLSlgOy8xXjo3NVZvXHFsRnNMN0pXT1czCi1eZkFAbyRdUE09K3VbJlRNbnJ0YFVWcEdYNCZYViYkLU1eS0U7L0NSYVJVcWUycThGUmQ4JHBLbShJX25fLF1pcwotLTthM0VqLWs8PjoiLjcyMTBJYT0oUjtxdCMkaWBUVVFwN048YztLc1NyP0ZxOD9JaEhOcGRTRkgzTEFjYTEqYDMKLWxXSlB0QmxYV0MxYlojKXJQcyRVNCQ4UkBoYHVWTmZtLFlWL1xAWCMocTRQZWo0T1lfMTk1TlFRRSlCPGskcTUxCi1lNTAiRSMxK0NfVU9mTiEpTSE+fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xNzg3IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTc4OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTc0MCAwIFIgCi0vUmVzb3VyY2VzIDE4MDUgMCBSIAotL0NvbnRlbnRzIDE4MDQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxODAzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE3ODkgMCBvYmoKLTw8IAotL0QgWyAxNzg4IDAgUiAvWFlaIG51bGwgODIzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzkwIDAgb2JqCi08PCAKLS9EIFsgMTc4OCAwIFIgL1hZWiBudWxsIDY2MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc5MSAwIG9iagotPDwgCi0vRCBbIDE3ODggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzkyIDAgb2JqCi08PCAKLS9EIFsgMTc4OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3OTMgMCBvYmoKLTw8IAotL0QgWyAxNzg4IDAgUiAvWFlaIG51bGwgNTc2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzk0IDAgb2JqCi08PCAKLS9EIFsgMTc4OCAwIFIgL1hZWiBudWxsIDQwNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc5NSAwIG9iagotPDwgCi0vRCBbIDE3ODggMCBSIC9YWVogbnVsbCAzOTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3OTYgMCBvYmoKLTw8IAotL0QgWyAxNzg4IDAgUiAvWFlaIG51bGwgMzgzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xNzk3IDAgb2JqCi08PCAKLS9EIFsgMTc4OCAwIFIgL1hZWiBudWxsIDM3MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTc5OCAwIG9iagotPDwgCi0vRCBbIDE3ODggMCBSIC9YWVogbnVsbCAzNTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE3OTkgMCBvYmoKLTw8IAotL0QgWyAxNzg4IDAgUiAvWFlaIG51bGwgMzM5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODAwIDAgb2JqCi08PCAKLS9EIFsgMTc4OCAwIFIgL1hZWiBudWxsIDMyOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgwMSAwIG9iagotPDwgCi0vRCBbIDE3ODggMCBSIC9YWVogbnVsbCAzMTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MDIgMCBvYmoKLTw8IAotL0QgWyAxNzg4IDAgUiAvWFlaIG51bGwgMjQ4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODAzIDAgb2JqCi08PCAKLS9QIDE3ODggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxNzg1IDAgUiAKLS9OIDE4MTIgMCBSIAotPj4gCi1lbmRvYmoKLTE4MDQgMCBvYmoKLTw8IC9MZW5ndGggMjc1NiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcThhOUYnXScvN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kxVkhDaVgpT0NwXygpbV9DLDlfYnU0Qm46TS1XUVZnOmY5OmskNExDK0o+MFZcLk1BR00pa2JBXwotYCMvOlJoSS1FMkFTKW5qMj9SQlxjZSRGJWMhZjMzIzZwXU9dYS40WyYtZjo2PlQqZ2hMbz9APFRuJEFiInBoTUgKLSMuYWwvY25xUzhAKT1sNU09PGJjNk5cMWozTiZpW1g8V1hTUXQuLDNBIWxPQCVLZ3Q6M1dvUDBiXzYzUjg3THJxCi1KVCptZ0tGcjw3KSVNTC1YVzlvXyE6N0opLEI/ZyhZLStFXzJbbEltSGtfPW9UTVdPYyxCMVhcJVxrLk0nWUZxaAotKll0cTBDYT8jSGQiI3FkLUI8YmoxV0wrcl4oOk1cSSFkQ1FAMD5tVWIjNSU6MzxURiZaRStMZlIsL0FfNlJZNTQKLU4yJVlHLFJzPU9ROHFTTmRnZTAnNWxnKyo7Oks6QilILiNXOmJwIy1BO1VwLyxDJk1zTj42RWJYYy4nMCEyPEMqCi0tbE9RPThYLzNLNyEibWBvWjhrPUMpPjNTMSkhRUJLKydoODktSFErMS1AJFpKP15RR01wU0U8QEFtWmE0dHIxbAotJ0ZHUidFRHFqTDhEPmMlNlZVRW00QVlAS25aIy1FIkgrSzRVXylITUNRLXNiLzYySk5sYW8jbjVXYXJNQCtjdWYKLVsjSTQ7YkkmMilLaWk/TV5MVS1BJ2o0VTdLOik3LU4yKC9pKXFEP0Bjbk5ST0ZBaXBvSy1MT2k7LGchLztpRHFECi1vLFFERm48OSNDYlomWSlkRkpUWjNfOHJoW2RMZCRYYSNvQ2lQTG9mXGVbLDw2O1VSblU7USciS2suPUZIJkBHawotaC9dQV9OSzFPOjU3WmFQJ09yI1dIKkgnWGguJTllMkBdSmFLZGRMVzUlZEZDKCM9MkNmQ3FoUzNGMCRcSTM7cjgKLVReTmFvXDQmV11pOFtOcj0lOF5EJVBcSHVWKkBJTlVNL1Y+ZyFYUCEzK2NaRmEmRj9wW2dHLkxGamtnPitmTWBvCi1NYTFeREJZPCtSYUE9O3FVTiMkdDcuOStFZktEMG4mVVYzcEhrJSomUVEqJG0iVHMrXSdOJ2AmQXVvSUk4RDYiXQotSztkRVhZazVvXGhULlpFbChMa0JmS202RVk6Iy9oTDd1SzJXTVpBJmtxRGcpJENdNVRsQjpyOCIqdHIvNiVrTiYKLWBZPjdAPT86XCZcVHNcSUxwYidNOyRMVytXJClpRksyP3AnLTNWZ1leMS1JLWZOO1xxJURYcWRuNj9sPWJKWlhMCi04YEhCc0FkdVNfYkJdbylSJjhIK1lMJ1FsRVwoKTkxXFtYPD5yZG9KI2MmPmpCPjNbOztQOGhWQ2A9JltCYjtPRQotTmRaSHMjIV1OMEA2cWNhSVlzXi9cYF5bQ19uMVIzITRmWCxRbDlDKj1fVEkmZTJJVXRfU2ZEQCRWJjliLG02KDQKLXBDcVhJO0NqZGc0WCxuazlSLlAqLS50LC1LXCJUXkBMPzMpQD4pJi9aQ1RrLGgxWDAlUWotW0Y8b1NiaExNU1MkCi03Y18uYlJvMlhWOVh0YD5kKiFBNiRRO1cnWm5SOSMoZj07XjkqR2Q9O1xjZVhyZi5SLyMjVCs3X0MudGxpc0hfLwotZFpRQ05aOClsXlp0XnFiKmE/NVoqIj5cU2IpO0dcMTwnVTwkXExdZCVBZTU0WTotSylOYW9BUUYjJVhQOFQ3JEQKLUkqbWptcUNiUUdLLER1IUdhUD1mQSdDOydeV2hDLTk0MzkqXk1tSUNkRE89VzdzNCs8ZjxFWSlaZFdWOUxfYyxXCi0+UmV0WEtTcEhhKV4tRD4oRCxrLEZBNj5iWWRqPStqNlV1MmJVI2JDV0xDS1pcMl07SnBwSkRnOTA5I11nUlBVPwotIyxkUHJJTzdxPU0vYTsqLHBndFlQTyJCUC9qOGtkWzc2LVlqKDMvJVtRcEVuUUM5NGxwSih1aidMVURFKW9GYWoKLUEzay9LLHBaclYiJVpsMVAuSDtsUVIjP28/dEtkc1Y6TWJNP1YyW1gmcEFxMSkkPzc4bVQ4VSMjVSw8QSM9UCQhCi1kSjszW1lSK04wMV1IcDxEMC8lZG0vM1BaUGxbQUwjXFxBa15GTmN0aFVGbklBSilVZmVnMjxyTiwuXltaOWRuQQotalcrRG5GUVJgWDMybzFGVTVJOU0oMTQ6UihkWGduOU1VNjY5QW5fQkslWmUqTmxwSWpZbS9zO2A6PzpNST09YigKLSpcZG0kcnQqYF40Wi1nXSZyJTZVKjo7KmhYYF8kLTsoSTJAbUVDXiJmKEllITVjNmhWVTVsbGFDMENnR1xETzxaCi0vXFJrJTMqZyFPO11XL0ktXTBsOFY5bTVVL2d0IXREOEIxWT0mLycjbFYiXT5PPjtQdWROMERHQ0NLcS9bYCtESAotSDM0UE1dInRJJUwzNE1oMFFuImZDb2VOWyRtYSE9VWUtPkRLKlROLz9KZUE3OnFRNzdCMUNvISp1JWdnXSNIUV8KLTQ0KSNaNlpVWTppM3NQaVM3WitbYmg1YlxKbyJqZFpGVEViMXFnOj5Yb1xibGJ1IipES1wuU1dqSC9TdEVySmUsCi1XJ0tlNCohW3B1VTN0LDlsISs4dVs8bzRAblYhVWMxU3JqSU9vZGJELWQrTT8xS3NaX2pRKFIxYichQSc3I0lcQAotRi8pREhmLSc1cUVaOVhVRFtccTM5KlwrOUU2cytgJDEiXTNCZTpjcGc3JUdoWD8kcWpQNiM2cGouM29scGI9SWgKLSxxSCkkSkxdZEIoZm4vRTljYmJiMzkyNztfXiJfVUQ4N1BTK2hDYEYyYEdpTyVSOz1eRyN0QzE7MUltPiVVI2hxCi05V11fP1tHblQ2K1ZpOF5UNSpqY0pPWG5wUTI4VlA6c3A2RGM+MVQxJmtvPFdZWkA2YUA7cGU+RzZeMjxdZiI0PwotWTFpXSNWVTAkVmNAQUo/QlpfRS9nLV9tPixgYENuQFhcUUE5VHFpNT1DQmw9TzBKPz9sKktMOU0wQiJNYERfR1oKLTYoQElxcShPWERGNm5RJz5RODhIXydxLkRBUChlNHAnKmU7bz5TQVthX0A2SzJJJC9wRWtUdSokXF0kYytQW2VSCi0kRDxpY11HWklzO2ctKjQvPzFNblFwYkI1TTpPakNUb2VNQzk8WU1KbmAkJ0UjXjguVWk0VF9YK0M8azwyW2RDQgotSj4tdCZUJ2c9OGRYPmt1Sl4+XU1aUHIrZWlqPUtKRUxUQUEocTBsa1ZIYT1lJi1+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4MDUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODA2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxNzQwIDAgUiAKLS9SZXNvdXJjZXMgMTgxNCAwIFIgCi0vQ29udGVudHMgMTgxMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4MTIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTgwNyAwIG9iagotPDwgCi0vRCBbIDE4MDYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODA4IDAgb2JqCi08PCAKLS9EIFsgMTgwNiAwIFIgL1hZWiBudWxsIDU5OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgwOSAwIG9iagotPDwgCi0vRCBbIDE4MDYgMCBSIC9YWVogbnVsbCA0NDUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MTAgMCBvYmoKLTw8IAotL0QgWyAxODA2IDAgUiAvWFlaIG51bGwgMzM5IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODExIDAgb2JqCi08PCAKLS9EIFsgMTgwNiAwIFIgL1hZWiBudWxsIDMzOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgxMiAwIG9iagotPDwgCi0vUCAxODA2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTgwMyAwIFIgCi0vTiAxODIyIDAgUiAKLT4+IAotZW5kb2JqCi0xODEzIDAgb2JqCi08PCAvTGVuZ3RoIDMxOTggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE4YT1AOXMucjdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz9bN2pFQTMoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0ZnYCJDdDBAcHVaJAotIiVtU14ocmQ0JEtMMC5RNiZybSIyUGxaYF9MZUpfNVxyOUVOYGAmSlE8LyRXTiwxPnREOXVmUVc3bCo6IXRpbyIKLUNfbXE4JjhHZDpiVyRHWGw+cC5KQkwxdE9IWFdCX0RTTyxZXVJ1bS5vWSMuc2dfVS9qTVBScm9ANmUoTyUxXVZiCi1YOkBOZUBONU9fUi1IXGxVQm9MMSVrYCtgMG9SP01iLHBYUyhmRHVESmw3ZDBYQGRHRChCdC9PclksUCpmXTNqLgotT1c2TSozXFcpViMpPDR1QmEkdWJFbzdeZkBDVFJPIylmZVkkX2tpJkAyXlVFUWw/NmVuO0BNbWAuT2pgMVA+aysKLStxUDVPOEJzJSVKSFIvTlcuVTwhWGg5W2FkZCUjO2lcaF9iTmpCNTglJjRjMzNYdEpEX0RUMkxqPTpWVTFHJGo4Ci0jJzhrcDRIOEMiNW4xXEk8JVNNRkYjJlhoN0RiXXNSM24jL2BdJm9XPnJYUmBVVSdtN1lcTT1oMUs9TmxZc1VYawotNylmY0ohc20/X0w+ZXBKJjFZZkttbzBhMT1SSiNpZTkhJ0E2ZldUXDJiXGghL0RnVUEzKnRhbCdca0suTiUqdVIKLSx1YkooJSMsITpPcm5lPmIpOzwxVVZVY0woXj8uWlcwayxWM1tmdEFwPmZnKS9kUV0qXVM5Tj1rQnI4VWZQLGZGCi1iOy5xTEpbSCwrSGY2YCFDUERzIjBPaFAkPUBNcikrXXJPbU5gOjhxTUFRYUZROCtUYjEpKzJQXi49SEBNWyNsdQotTjh1NF9QJS9jLEpWLjtdNikjWTQyXCNAbGcsK2lrIl5JXE4oRTtjW19aQytzMUsoUGJTLkpaYixBL2wuUl9bYzwKLU5XVnVPZUk5N3QuOCgpJUhPal1rKDBqJ3NfaVhMVlk+blA4YT8mWXNSLjw3a1ohOkohaStzZl0uXVNpJkU5LE5CCi02cW9NZFVSWFZjTCxLbSYmPyg0OF9FLXN1NGM5bV1wLi5KUTovcGxAMTxwM3VvMChGIT5rTl47ZDt1WDhaViopWgotbkROYWtjbm89Wmo4RlcnRDEtIUVvcENNQStpXFZdUVEqXytHQilTKVI8ckVsYHI1MzUwYjFPLWNUK0U9Ui1ELkwKLW5sZHNzInApKi1fL1A1LkJcc3Q8OjZyW0w1bGZmSmc8S0A6RC1NWCtfW3Q4dCM5QnJXUyFfODg2U2RMLGA7KzxVCi06dSVPLUUrJzNUaT02XkFZai1lL1hCX3E8azYjKnMlQGU9RS9UMDciNEshNE5jW2tYP0o+KGh0MmgyPHRfbHVVPAotYVNgXSRmI0ZCU2JdWC9YIk11QTZtbmU3I0NvczhzLFomRmk4cko2bUxXbS04T1BDXk4zYjsta2pvPCsyKSQmRW0KLSMjMikxMzRhNVZsOmE5UENCXDpaLkZjWi89IyotTlc2Y0dNQFZROUxASFc6KDEjOV0rOWFZQUJLYTA/PltEbWsnCi0pVS1XIUsxRjlJTEJQUCdNLUFqcTdMVTstIyUibDkhcGcqcDZsTFwoZFcxOCdvM1M2LlJZTmJkUi9xKjMwJSRNSwotXzg9TGdVdFBsRFllN2lxITZRPyo6aUs0J1wyOzZdY3U6J21fWmxkTFxmPmRTN3VLcW5QIkFabF9rdFlTOm8iOFYKLURlWmE0XClPaDxVIUB1Rm9KUW5jZXNmI3UudC1XS183RHU2bCcqRmglJnBUcExCVlE4X29RWyc2K2xDYzFTMEovCi1uNyVrcWhCWDtELTR1QW1cZyZRT1pvXzQ0JHFnRUE0LEdfPFFUKXFyZF4vMGJZNVFhOjduZl1tT1hrTV8+VypkKQotWFleLSVgJ2EmQG9yQTRbbyt0aWozMzAhMiZTJFApIU8ybG0hMihMQ3A7MW5lVToxUF5qb2kmOmJTcm9yR0FMXSwKLSdFcT1nZEs4PlVRLUAyKU9bOlY0O0tUP1svJ0prYUIraFY/WVVCdD1VX2ovZl1cIi85UjA0NSxRQTFWcExYP0dsCi06JyQjJjJFRzg/Sy5ML20lQ3EvMUdgdCRjNF0jczU/IitKIUZYY0lKbG5FK0w2Ok0vKiZRNzcwJG5wZyQuQVttcAotO2xQV2IvaldwIjc8RC9LZylbNChFUitrSl5HYVdtLjY3ZVpYL3VNTlsqcDxYJVVsJkYoY2lFRyZQLiRUJ11qP28KLXBhQz4zNXVOaDY3UF45cGohOXRzcF5YW2VVa0BrJy0tTlphUGsoXE9iMTddTlFtMmZnRzBRZmEkWiRddSo5SUV1Ci1SQlh0UEcxW0psP09sNm0zIS9FOi5QPzZfXSNFO0lVUUZWdWRmTWEmLV8qNV43Uy1wKC0rKmpsLDM7dDYnYllEMwotV2sxaz1wdFptZChpSEAtImgycUg/UWBXYU8xSiFocF5AaTwwTDlAU0ZlWGZ1SktgMixWKD4wQ09gakZYODUjO24KLSUraDxXNisjPWwjPjhcc1M5c2YxInMpKHIjM3EjaVsqaWNvOzZgQF47WiI5Ny8uSXVXMTEnMT1TSVVPIzNpJmk9Ci0qQ1REbzZSdGV0LTM3ai9mWU1NSyxYYT5aZzBSaklsc2dXJWc5JTJYWjZpRS9MaD1fQCVfL0BEVjxOSCpPSycvKwotRDBTITlOM3NAK1MoMEFwNVdSdC8rcTdJYypZLllvUSwoYmVNRjAxZUxFWSdxSzJDYDpQb1kqOFxdWyNhRTZdRWUKLU01aHRobVZLaVZpNzZfaUszK2I9Ky4rdVU+JW91XDgtLTdoM1lgI2gmJGhJNmIrYDtnUVUoTUVwaG1JQVwwRms2Ci1hJSMwRSpsOTkiU3NDVWU6RE1dNFdmU14yKWBoSGokN21zS1suPVA/a2lXLT1UY1FNLSs7bi5ZUjhdYSdcdHRrZAotUWc9O0A9SHA2b1hNbyduZVlIJiQxKlU3TjtdWVw8U1w3dG9NLUgnQj1fU01aJFRtTy5BJG1oZ2QkNTdjN1I7VjUKLU9wcGwsPjguJlZvUVZ0bHBYXF8+JUxHbm9rL0Y6KWY0OzRjYmtQTlk1V09dYjRkNWcnaC9fIVFKRUVlcVxnZ206Ci1uVW1SVWNrZFpCLmc7OFNNY1Y6K1NHUUNLMHVkW2gqLD5EInBIVEo6PzBEclo5X0VtQy1fPkZTP3JFQ3E8Vj5aTwotITlQNzgjXGZ0RS0iWDEwNzNSXUwxLkdbJCk5LSZcJCRrWiZmTSchdCxfUDYzQzc7bmZXaiI9W2xVY14kREBLKGYKLTU/U2lmQnJ0T1syTEIucUYmSVA+Ui5zKFJBbjMoJm0ib1l1bDdZL2FkOygsXydJTU80X2FJNHRFJlwoKzpuKVVgCi0vanI6ST8paWp1VDJnJjgza0tEWVBNRmFEPGI3Zkc9a2FZWEwnJ1p1YiNVdWpnUlAhKiNFNixnK0dmMDNNVD85QgotSUdTVCsuRTk9VDglMDFYbStjaUdRMDRjVzNzYFIlZk9bR0JqbkMsVGRJKi9CNGFdZlZBYypVWWU3Nm8rbGtJb2gKLS9XZVZuYz9JRCtAJk1AJmc9XV5SMjAuJS9QU1RZVzIjOEM0V0duZl8pTztgYFMtZ0JMNjJOSE48OCszR1VzLDhaCi1ZX3V1cTtbJicpVVRXR1k/ajdtSCxEOXE7WDJZVSxiMUowNkwxNmhBYCMsSm9yZWA+TG8tcHRwLmlhK1FvVUUkKAotJVJlNzMtRjJpKjUrSUIocko4R3QvdW5STGItKGVBWkwtSDQlSE86QjxobE4zaGIuOjdOVnIpMFo5aHNRUzFVaUUKLUxCK2gzYiFFZ0o2L21cX2l0T25ZUktPMWpVPmg4QjgiUGxfMUJJUjNdUzxlOmI7UFdFIVg6byolJkBoR2piWCwkCi0qYyZkJlRqWnBpWUAoRk5eaW90KTE7RmVOKzl+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4MTQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODE1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTgyNCAwIFIgCi0vQ29udGVudHMgMTgyMyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4MjIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTgxNiAwIG9iagotPDwgCi0vRCBbIDE4MTUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODE3IDAgb2JqCi08PCAKLS9EIFsgMTgxNSAwIFIgL1hZWiBudWxsIDc5NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgxOCAwIG9iagotPDwgCi0vRCBbIDE4MTUgMCBSIC9YWVogbnVsbCA2NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MTkgMCBvYmoKLTw8IAotL0QgWyAxODE1IDAgUiAvWFlaIG51bGwgNDI0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODIwIDAgb2JqCi08PCAKLS9EIFsgMTgxNSAwIFIgL1hZWiBudWxsIDQyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgyMSAwIG9iagotPDwgCi0vRCBbIDE4MTUgMCBSIC9YWVogbnVsbCAzMTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MjIgMCBvYmoKLTw8IAotL1AgMTgxNSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE4MTIgMCBSIAotL04gMTgzNyAwIFIgCi0+PiAKLWVuZG9iagotMTgyMyAwIG9iagotPDwgL0xlbmd0aCAzMDY0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOGE9QHBUQHQ3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8/WzdqRUEzKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKHJkNCRLTDAuUTYmcm0iMlBsWmBgTl9eKjtFNVUlJUg8TSNUS21OM04oM3IlLj5pZHBYZG9sNF9qUjgwCi1Hck05XiNCTkpAZkg8Kmo5WU0wYkpBdUxjUzM8YFFgMnEwQV11LCpfUSVxWHJcZ2UiWTg3SmcmVFAvQUYrbjBkdAotVy5yLipVPyshTko2V29xSllIUEBOaF5SQTQ5UF1TNVdRTjEzcGNCImohYUNOXkVbLi8oQ19tSCpZdHEmUF1XbkMKLSZKUmVNJS0mMkUmNE91c2k+RSRgXEUjPyghSGEpQGBcRiE8KDVYMlpsOGFrakdoPXM2QGdMXidOP2BNYTNpSXRACi1SNENvQ2VAQDUqNlYsLy0lP1kyWjEtT1hUXEA9b1JeZy5zKWJNWjI0Tkl1ITRxTWg4a15EOHI0SyMiNjdEPWV0LwotVTU2JGkpRT8jLzNnaDw8Q2J1dDU7IkEzJlxVazdMVCsvW0RrVlM9Oy4rZ1lvL2F1VS5dZT9bcyY1KUVOWDxXWFMKLVF0LiwzRjkiUWJOWU9WWSYuWGMiX0QzTyMjZ2lRSiIlNmY2JT9rbiIzPWQ4OkVaJ1ZaUExfUk5LMSInSjJJaCFRCi0xbFQ+cl9cSENVLy5WbSdsY1pcIldmJ0pfJ01LYUdIbnUwVSl1NDooMHBrMzsjZkNvSywiOydZNW0iIlM8I0RtVgotbUs9ZFA2QGpfISRyXiFYM3RJI1ckcUNyS25QISFSYzUoOGgtcU5sdUNQOk5NZ2lrdG07PjxGImFuUkpdLGZ0KEUKLUBqPUhARXBZQCFvJCJRcWJPWi5fMTUzJXVIU29JTUN1N0tRPCE7SCQ6QUBOUyo5Q3NBIUM2bXIsbjRKNjgyVjZeCi0yc1FZSmlKKyYrMT81bm5vJFdvOVtUR2h1XzBZcXIoQykraC9APV1nIWtYLTVDRCVLOl9xVyRtJT5KaTVCXWBDaQotJE5lL1hPKVI/PTVFPFhnbUxDXV8samk8XzpzOUo2IjBNamsybzE7SG5WLHRxZitYMT5KRGwlaE0tLmhdZT4kXisKLStqNSRsYzUtVGJITmxMRiYpYzJpTj11VD8zUGEhLmlqMmhwWy5TWGBSJnJBNGhJPkQ+Mk4/YWZeYylfX1RZYEVgCi1AMCEyKjBnZUxwNCwnIV5cJlYudGs4c1VkMnBnXElZdVt1YVhCP0trcGBqWjxvLyU+PV80dDc3TXJXKUBVYV5TZgotI0MlKic9Q2tfRSEmay1AcC9mdT5xP0kuOilBTyVrbzlpZzwzbVombVQ0QEE+UUk9L0UwJlMzQShQb1pHTGJnXCwKLWlDPyM3RTRkLy0wRiRsPSU2MmhuKiN1TjslIlpyVyduYkVeOWBoOkFtT19lVlt1LGMuLyw7SyhgVm9zcUIpaTxECi0+XmwjakwpVGRoaVlMZ1YyKzRPPkwvP1spZyZmMlZZXVRwXFpOTS4+M1NuIUdaIzcraWRfTzdOcDQ5QSEnPi5qcAotJT5vZzdMIVtVTC85UipgT2cwJ2YucSkzZzgiOXVSWmlqPi5USHEoVzNgW0VHcig/OkZLYStxbUhELlYwLms/MkgKLWFWMj02PGAvY1hMUiFHcTpyWE1eZShkMEVMJEpxQ05zUXNiWjdwL10mLWJcTkltRiw4JT1rbDNQNSthMyhRZ1JKCi1CRlRVJyNjTkI/SE9oU1BjKlgxMS8+bnRGLSRrWz9EKCZQYSpEciZQOkooJ3QhZT1ROGpmRzxnTCstJWs1WEA/aQotIiI5NyxvbyMwU1FqSHEtQ2VVIktuTFdhOSRXYiphIlRaMU9eI3I7WV9paXFBbCcyNFAwXVtGUXFWciUrV19uTS0KLUhKYDE5QDNTMklNWlo0UEw3Ok1yRC9xNkFUPlUpRzpNZixwRTheKVJbKCxWYmlAP1NsYiZPWD5fRmlVOyJmLyY6Ci0xczFJL0o8a18oJUg0Q1JYVl9cVS0mTWtbJkxNImxkXFNeTSEmRmlNLSZPLl5nPW1LXCooOW4pJ2B1bkdhVmk4TAotLjFFKGsxO25SXCkxcicpIUw5KiFgY1k7cFA8MkpJcSksTW5gQjlTNjdTUEg0MkQjXTFTNlwzTUEtcHBPKE05V2cKLSdFRDZoWG0lZiZMOiErVlgnTStYMzhjXE0vNFNqP1E5dUAnJTFxYDo5Z1ZGKD5IYGxkJ0EyK2YlcipbSDkkZk9MCi1cQ3FkLnInPCIrJjMlLzA0Iyo0Zl0yKiJ0LWtmYydAXWJSZVtdVWJpOG5oLHFmJG5MalknKWMwTHVfcVAnUWxcYQotWmwmc2I+XUxsYG1ZMTdVNTlEbzciOyRlakRYRTc8KiYobjU8N2lsVTlyXlclXmtXMFokR25LPU9pYEBSPCNdXlAKLThbM0EvODZ0NCpGNm8qKjBXOSRfU0NMZyxSMEIrSHA5cFY5YV1yM3ApVzctLS8zOExzY0xCai4qaScwWTM1dDNHCi0iKGZYVyJYKVM9OiNabEFTSD5zKSRTPmtQamZDcidtNCk+aEAnLDMtIjwtQ2M8IT8rOyRLJ1RrXCVyNzdVdDw4RQotVShXOXRfQVFJX0AxM20mW3I8I2ZvZVIkYDBVOVhDaCJPMS9FY3RsbnEsNnJfQi1QTFZebSc5WjhPbStSNlZQLkgKLShzM1xnb2ZkRjgiNVMtb1AySkZgYEFURSgiVSNcViw2QS9qQkNaNnFLPzlIK2RcakppK1M2LGMrSmVEQmBKUkk5Ci07MWkpLSpWM0ZQNlZpdEduaUQmVyk6W3I9XV5dcl1GUmEmdSMwMV5xQydDLCNWIlJIcUY1RDpMYk9ecVxLJSxBWAotS25bV1QiTFteVCxvLzFITDY5cW46WE1jPzlSJDskcCFIYFkkampEbTJ0OkEjMz8zISdVPipYS0VvOWdWXUZQZVMKLTwyMXUoNHReamArUyxIRS5DZyQ3UV9vQSJfMypMVXAhT2hWKiwpXEBiVjYvKTpqaisyQEZKWVQwWnFLc2dUPywpCi0jI0ZhS2dKQ2FRUj1IbXUyVz1UTT91XkcjblY/IU0yJTlYbl5VIVY9N0dxRF8jNFFMQlpIUD0zLnJbWSo+RkxqVQotcDApP1tfMnBEQS9kSl9UZUcsKC9lWiJwP1ZtZ2pSRyQ4PVAjWCdZRCo1ZWhfVGtxSWZWZ0dSRURUW3NOQTRsOVAKLUEkcFEiKi9iL0MuOSNpTTpgTDptQ1ZlJ18qP0UsbypbbENKVSsvQEkmO0tTJC0+SyMkXCtKaSgiL0wmTFlbSiRYCi1dVjFyI0AuPSNHNG1LTWUpLipoRlFaUThbM3VTZWZYcCZgcztJRkklYEdfW0kqaUckL08mdGZcM3MmWVxBIzQsLQotQWplZlVGKWU8ZXBpQytpUTU0TWQ5NFF0YCRqU2tIVFhVcVU/UEtedDw0SjhuJTBDW0NDLXNJKyZNdGUlaWczQWkKLVY7Pz5qLUZIVUtbK0s9ODZTZlpoLWU+WEw6KzJsVVZkMUliaylAdE01QG5jbVQ5NTlzPVFIa2cmJW4nN29kXSZECi1FNCRVPU4xPmFYQD5NbU1FaCQpXGZJNldPXWVKQUddTThkXXInai1zJWYwTy1pZyhSUG4zLkJXSXIlcUxMY0FPTwotSDpKJ0gjM3FNWGM8USkxSmlTVHFQWFVsbEApZT9ZYjNAK3FHTyVgaGJnTFBbYmtscCRvdVczdTZvNSxNZCRxNG4KLSRoKS51JVQpL1xwPlk+SnJGXigpVSc7X19+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4MjQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODI1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTgxNSAwIFIgMTgyNiAwIFIgMTg0MCAwIFIgMTg0NyAwIFIgMTg1NiAwIFIgMTg2NyAwIFIgMTg3NCAwIFIgMTg4MSAwIFIgCi0xODkwIDAgUiAxODk5IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxMjU1IDAgUiAKLT4+IAotZW5kb2JqCi0xODI2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTgzOSAwIFIgCi0vQ29udGVudHMgMTgzOCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4MzcgMCBSIF0gCi0+PiAKLWVuZG9iagotMTgyNyAwIG9iagotPDwgCi0vRCBbIDE4MjYgMCBSIC9YWVogbnVsbCA2NzcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MjggMCBvYmoKLTw8IAotL0QgWyAxODI2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgyOSAwIG9iagotPDwgCi0vRCBbIDE4MjYgMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MzAgMCBvYmoKLTw8IAotL0QgWyAxODI2IDAgUiAvWFlaIG51bGwgODMzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODMxIDAgb2JqCi08PCAKLS9EIFsgMTgyNiAwIFIgL1hZWiBudWxsIDc3MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgzMiAwIG9iagotPDwgCi0vRCBbIDE4MjYgMCBSIC9YWVogbnVsbCA2NjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MzMgMCBvYmoKLTw8IAotL0QgWyAxODI2IDAgUiAvWFlaIG51bGwgNjYyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODM0IDAgb2JqCi08PCAKLS9EIFsgMTgyNiAwIFIgL1hZWiBudWxsIDY2MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTgzNSAwIG9iagotPDwgCi0vRCBbIDE4MjYgMCBSIC9YWVogbnVsbCA1OTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4MzYgMCBvYmoKLTw8IAotL0QgWyAxODI2IDAgUiAvWFlaIG51bGwgNTc4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODM3IDAgb2JqCi08PCAKLS9QIDE4MjYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxODIyIDAgUiAKLS9OIDE4NDQgMCBSIAotPj4gCi1lbmRvYmoKLTE4MzggMCBvYmoKLTw8IC9MZW5ndGggMzQwOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcThhPUFSNVMhN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfP1s3akVBMygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RmdgIkN0MEBwdVokCi0iJW1TXiojKkhmWiZFLz4oZHFPWCddRFBKVjZOR1hkVl5sKjNUYCxeLXJZIXQoc1JjXiFQJCFgMTdaVm8nLURtKgotPnEtSmQyQiRCaSc+dGEpR2lONVdRdSJbV1BwPS9uSkBLIl5UaDIjSCtIOyNKSS4lUHQ4Ri8qa0s/LXNjTCo4bm8KLTRIOEMiNVZdO18hNzNGOUAwM08kM1RITGowVENdbTVtZSspVzdqMWhLO2RFWFs2bm9zMmxkPyhbY3RBdFVgVDxDCi0wJip1K11JdDVIJi5DcUk1ayw4WCh0KDJOL3BQXDVdZFwyMF1TN1RIL0E8XGJUTVJaWSZWKydSNDpgK0koXyxNWQotJyM9XE9kYm9fMzA0TXJZXDtnPilXLnItaG8pNj1zSjdvaUokKWx1Sk5AcCNqM11nIUFfJyRzMSE2UkRjaitMX1QKLSU1Vi9yaSRsdXVWI1dcbWZOZT0hbCZvTz1MMS5GampiM2FNTjFwYHUkc1loSW8mTzRIS0VISkMmNjctVV9dX0pgCi0iQTlxLidyXjo8LmddS3MndWRHK0NiaTZUJkYpO0VuPm44T05VVSczI0RXPUY+OjtYJFROJT1QNl4hM0ElNXFWWgotXmNFNCtcZSViPEQoI1VDaUdgQClXXztIVDMiQTsoYlZZQHBQaF8hRV8zPW5EWGBdVEhebD8wTmlAMXJSVE90JFMKLVhjNVwzMDk+L2sociVhOTpiMF9qKkdbPUwnLDYzV2JqNjFwUS8janRhXUAzalM+bThjMi1jWF8lY2BZZjMiPzhlCi0wLEAiZ19aaGkuLEMlcCUlNUUxOzNpY0RmYCZHbCJabG5eaCtiM0NsXWFuIV8uQnArYFZOOExESTdFP0wuYm5vIwotM2dzI21tMGZWLDYmWjVSKHJyN14iKGtvNy4kO190I2VPNS4/XU5fVUw0Xi1MT1xTPV83WTp0NCtVcW9lY1BUdVMKLVZIPkdxQEJmOEhOaVpmRUNdVXVtQz9PQ1szZzRcOzhva0JCL0xzcV4yaVpobGA1UShiPjBQcik+bis+QkN0aDteCi1DImctQGg3KVVOWS5xM10+JGY6ZmdjTyYxU2svXEhiOltCJ0U3WXFJUEBhSTQvcUtbJ2ZDY3NNN1E2KWdmMW4+NgotZ3NeW29iLFVVTVc0OmZkcDVfNGMmcWkuT1I9JyxDNCRlK2kyNVByRCRvXWpLKC5tPEppQ0lTME5kLChEaVM5XU4KLU9ENTA/RV1ScV9YbWRjSyxeYkVQMihAZzBqWDYuL2AjLGlHQko2YzZcME84NFQ8aTZdLzg2ImFmI0FYTlBPcmAkCi1mSU1ROEMoM0hzIUojLCkiMkwrIjklZCttNkQ5bysrT2xEaTZZZXRCOSRuUC08dGBabkgwI05FYyxxbiNXN0AnSQotS2ElYlpSQXJfSzxuJTRDJEVpL0gySUpjVSFjVyZmNislPUpmJmhYT0MpMGxBUW9nUnVSI0tmPzM8XVxuYUovdEMKLSZIWj82SiYnaFIvbXVRJik6SC8jIU8rTTsmcjlUNkh1TW81WVc4KidgOHF1RiZkQT9ZJG49W0gsQF46UCRBIm41Ci1VaV9kQD1oPCRgOTpkQkdXMEJwKU88QGVFXig4MkgpQT5KMGU4W2RlM05GSG4ncW9fJ0E3PSIkIVdbcl5fLHFnMgotYzkyZGRhRUQmbkZIQl5AQVB1LSZrJzlnP0VeZ1knLDxTPG8mNDl0cVEtLidJKkVMYjtnJ043Mi9BVk1wYFhOIisKLXFqZW4uJTgzNCMvPXRMSGtRTHVZZ0lmPiU6NGtCREI+QiRBIyNsQl4pNiktbkQ+IVVXcFI3b0A7Py9sbDY9Q2AoCi0yTFpkSnJkJkV0J0VqXDVNQC47TSI5ZkVmVkguI1wlXV9CX2RgK01VN2VINlsqM2JgKywkS180UjdAZnRBUzAjPgotM21eZTkjTlE5MjNUOFVMXVdmTDVTVTRUZkQ/cXUiMWhJXCksTzZqckpWJElcXi1cWUFxTlRvaUkwV2wiJXRjUVMKLTcnT3BXKllgIjxLLihbYkJyVj8nUD9iJlJCYzczIjVjUGc+XEtxOVQuOCJNUVZaY14uQClKcF4uZ0wvT1JLMmRuCi1LM0tDV2BHL0JkZzpGajQ9PT1HK2RNQl5wQE5NKC0uaz5WVFN0Yl9vWlFtLC5PKWFsKyM0VS5qaztsSXNidUg6RgotY3IiI2pTVDVuInJsIyguW2FFZiRbPWUjcVQuNihbaXRWcEAkXS9fQVc7bzUlIU89P2RKPkMpSlBgLVVKYURkKS8KLS0kIlojSWNGOk1GMUFYaj4scXMtWF4lXTc/NEJhXWcwI3VOUkEyW00kUTFRZXBPbkJwLHFFL21ROVZaY0xsbkEvCi1dKyNwS1pWWWoqSFdUZSsicEhVRFczbVAlX1laJyJAKDdyJlJGRF1JRjQqdDBiMkxJMF9MW25BK0pSRiVRY25sIQotQEchT3BfI1crKSdjWFt0JERgZ2hBT1wvPl9caFZoMVAxJUtSRGZBPkksXlZmYmRlUnFRLnVUZDxfZlsmXmZRM1MKLWhFJkMzOVBAaVxHTTIvMyxAWHQiQ0tHKSkwcVtBNEdDXWs1cTBVVTZwNXRrKjN1PSltI19pWioiIUQ/Yi8sNCxwCi04SnJoYlApcCY7UmdzZypJZF10SlI/IkhTIVAucGMoZEs9XyltXG09S0ZFaVAjRkNHWTYjP0xwXF1VQDs+TCFLcQotPyIncFg5LEM7TF5vcFYxXzZQY1pcNjlRcWVMTlknTT4pPio8c3IjNiQqanUncClfbl4ucihldW5oaHErU2cpKlEKLWM7LWcoYlUjYSdbImhkPyg+RmU+ZWdXWkU4YUBySWYwLmVjR0FnNDpYTFxnbCpDY1o/QyVjLGU/Vy5ASGg5PlYuCi1adHJZOVZlby5MWz1LLG1BKSxLQE9UKk5wMkI4RnIxVDIzbylKSFZkMEpbP1QuXm8maUVTRjJMREJOZjBPZzY0MwotImkvbjRWW1NmXmUtVTtcQV9AdCc5Nk0hT1EoQTg0VWNEWzZcLy4rXidiLyFxQVZCLHFFOj09cF5qcSZuS1VzTnIKLV9NIUNKKENwVGhlTVcqaTdgTlwiXiEmMFE2Yl5nUkNybzwkQSpoKEEycmMmYltwZFNAazpnYmIyS0ssV1JWTDguCi1JSC43IWhWR2E+aWNHPD1tVEBYanI4NV1ATSIkRT5fYDJpT1tzV09bIz5RZ3AzNiJiMFxQOzdgPXNXYyQ7ZCs1XgotZHIwcDRRZS1OVWRIPm9PRm1Sc2RbIzlyNmhlY1NjRDBvJ1ZcIVNRTWF0NlkwbTcrOk41LWNKWmlrc2R0KTJvZiEKLVphOUA0PDw8VjQmTlg3PlFpUUgqQGdiQElpdGZxU1tObSFMbE9VNSxjW0UxQDlLI2dTbGY2WidUOFpqdGBQcz1TCi1nbiIhXzZuIiQtZFQiVSRwVUUhTllJMEo4aGNdOURobHNlOz9lTSJtNy0tOEZgOT1vMmU4SGo8ZHQwPSNOMlNiNQotUiFVQEJvbV9oTUo6a2lsP1FEVjttdXQnbic/ZUUqTlk7bkxvV0hEblNwLEZvQilXZytLWyVtWEhCNGw2WSlJKVEKLWRMOFRVYlw0YEAuLF5tLSM2JDptIS51IVpMcUloPldrWmNIN0xiQj8/dVM/LWdeSHRIcnBOQz9KRFUxRE5qLmlOCi08YjYjNFRdZlNDKDM3PFttTFRxIUxyYERMT0JoOUlwPyc8bks0Xi4lRkc7PTBLRkBkbkpCMS1bKVlzcXVvZ01GSgotWSltQUNEJEo+N1prLyZHQz0kRDNlblg6OlAlbEQoK1JWO0tBO3EiTlxIbWU+VjAzQDhAW3IqRFZXbU5xa0QzLDEKLU5oaUkpNycrSD1iJzlpKD90MVY1V0AwXDNNPWdhQGdwRCMjTUJIO1Nhc1tOPGdkbz0iLmprZlFCWk1UXzBOUDVmCi0lU0xYP2JGaG9gcDhYJ1pcSEU4cEJLZydgP09dSlElP0lxZTBdS2RlaTNUWGU4Z2MvYytEPjVcODRCPi9FJ1czXgotVEtuYDY5WTA/MmEpJ2hXYUxscmpbXDFYMiZyMTNVRSJzLEo1bFlBQEtFcHB1RG5MbDAqKFwrYCJVOWVmblZWK18KLSQ3TixaUjpTanNLT0JtdSR0ZUdPazpQREduMEo9ZC5TVi07K0NZQn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTgzOSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE4NDAgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE4MjUgMCBSIAotL1Jlc291cmNlcyAxODQ2IDAgUiAKLS9Db250ZW50cyAxODQ1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTg0NCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xODQxIDAgb2JqCi08PCAKLS9EIFsgMTg0MCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NDIgMCBvYmoKLTw8IAotL0QgWyAxODQwIDAgUiAvWFlaIG51bGwgNzk1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODQzIDAgb2JqCi08PCAKLS9EIFsgMTg0MCAwIFIgL1hZWiBudWxsIDc1MSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg0NCAwIG9iagotPDwgCi0vUCAxODQwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTgzNyAwIFIgCi0vTiAxODUzIDAgUiAKLT4+IAotZW5kb2JqCi0xODQ1IDAgb2JqCi08PCAvTGVuZ3RoIDIyNjIgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE4YT1CM2tlIzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz9bN2pFQTMoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0ZnYCJDdDBAcHVaJAotIiVtU14qIylta1ZMcUFyLiI7Xkk7N20+X1toNC8jP282c1stNmUkYjRKajVDI1MpU0ZARWQoWChnSjZEZ1c3Ul8KLTtqclAyIy9iX0BbT3JBYTpCaEpIXnQ8MzcpJURrYjMmSVFLNFdzZ0wwVDlNNzVUMjZjcUokbTYmKnN1RSJLUitdCi1qI0EzPi87VHUqWjc2Q2lfNHQ8ZCxLaWBXU2Rjb2BjNEM8IUJTJU9kWWBdRWwvN0ZETCRxPGReLy9uZGRUUFBQcgotRTw4PmUjNF50bC9WTzYzZksoQ3RFNUZYRixJIzxLJWo9Vlcoa2lBWlhJVk9RNWhzLi84UWEhNktFRGUvMFc3bDMKLV9FPEpbIjclPzwiMVtES2FjUz9fYCFka21hdD1vSVpnUm8oai0zQ1U3PWZERDYmTDRhRVojI19HWiNAXiE8QzUxCi0kX2o7WVFiODgqRS9RQjBCT0RdLS5AOyV1JVlJJHAzTyVPW2xTNEUwVzkjSDUhQ1h0KWJbVydWM3Q0JkxAb2ZnJAotRC5OZVpiWVpfQU4pLiNjMUpiKTtWQ01wXD1CO00oZVNONVpmOnRtaT9yKE9bW29jYmA3P20wS2oqU0NNPEwlTiUKLThDREhUZGlqRFctcFRuU29oW241OFJrMG02JkVMKG1tQnFcMzdMIUxFJj9CMT1uPjIzNS8+QjltNXRTb2VBYUJVCi0xVUZKZC0iNT9FOExaN2hAInBYW19pLEVeK2ZLOjJhMilVTGtVJFY3N2xqRF8yNU4lW1BPUU9ITjAsWWU/SHI0WgotPSJBcSs0XzEwVkBrK3I9ZWwoUztuTGkoRVRdaUxlUiV0bjpvSCdSJExTNGgycUVFNkBhLmNKODIpKUZwK3UjMCwKLSNlR0soVzlTRy1NWylLSjVhIUslSmdkRT4jVTE+LVchISxEXFs/NS0hNFdfc19iOmBOTVcwX0wtdVYyPWwrOmpQCi1wa3VoRG81TVErImtwVGJuYFxYTXBfNzh1QCxFV1pOIkE2NU43YE50Lm9eI1dfRFZONDlwUmhFW2Y1XDRVO0ldJwotWDpCQUlGPkBjXXFKJUpkaWNwbGdscjUlIzBvJipSXDJLQF4rUlE2bVk8T1doI1U1QGpiQlEyZFYic0InYlAwZnIKLSFaNl5YbSFHbyhoS1FpLnBaJEVhR0R0cW5jXilrUDYvbE0tLTJcZ24mYjovRzM0XFxWZk8zSlFoZTc3X2tQO0tuCi1ZX0VlbVcnZ29vXz0zJydQNVg1JnEjckRoJnRRaSc7JyteSCNbbm1hXDdYcTs2R1BQYmMhZWMlTC5wa3UhKSpoRgotTGNIPEpjbDdUZjUlaSZZMSthXVkoZFMtaSQlWGkhNmA4dVZUKTcmUTAtRT1cMF1YNVRFc3JJUEhvOzBzUGNmWS8KLThWTG1nbVA4YWFNLFxfRC0ja0NNVlhWYCNlSSJyUE1gYHNQITlDPDNBMiZhKE9sY2AtWyFEYT0zIW10MW4yMXBICi0qMi5uIUZxST1tVCZrODwiJismdTVfNEB0a2xoZD00IylpZS8yO25LZzQiWjpNWmFRMDQvLFI2KiQmakNLUmdWLgotYHM0Qy1pb2sqN2kuPUZRZCtbWlJAOT5hNWpySzQ6Z0RlcVw1Qm1iSG5KdC9EJm4xcmlRRWVSU2JHZEVKPmVIXFkKLWpTQCxXIzxMNWVSPEVrWENtcCRtU2VNNyRfLmsrIlUsKTVgJVlISFhRI2ZiV2MhXWBWNlwmX1E2JltsPDpuLzNXCi07ZkUpOzBJZlJYPzUudUE/aklvTVlfKVxzMVAuU14sZDpqaV84KVFRNi46WEI7dStDYVAzZj9oT0VoJ3NIbTBaPQotJnJBcGw7QDd0SzNaK09SKkNHP0I2SC5VVSsyWC0kLGliMUJDbjolOz1URW0hbjdHajdXVTltQ04iWjchLVo0SUkKLS9KUEVxJz9cclwkS1I5YkwsKUA5YyQxbE5iQlB0I0ZWUVo4YktfXEo7P01YSiUwQFlOOXEjSzkxLUFDQ0cvSV1JCi0zUGdAZDREJl5FJzdFJnFlUShYME1SM2RBajJSN1VcYUVHPURAaVNDTmlMV3VYanRlLz4zZFdtNDspRCk2PE4ySQotIVJoWkdWXmVMZF5lYkRpRjJrSHEoY2ZdOzooKGdRRnErJDBfKU9xIi90PjpFRDY6TF1jclthOipxYm48b1heRCYKLUhVSjJrRlxXN2kqWCUtdGJzQGplOG5qVF5ecGw8MW1UVnQ3LWBAcSpLQGg9Qj9kcV1TbUc3UkBpMFMwP0ZPNkA+Ci1bPEA8akZQMGl1ZzMhbEw9XiQuLTA1KjVpNTJgcTBMKkpqKUsuRHE4WSFWUTJVZy5qTk1ESF9RZUlAVyNSWj5lXAotK183Sy1bWSYkJ1xlSFdMOyg9LmVaTTg4IlQiOCo9N05HTC9kLT4jZDhoMTFKYl83YlI8KGMsYkUqOTNOM19mM1gKLU0qam40RlVULUxWaiRPV2ZtM2oxRiwiTSdbKlk8aEVvXixQal1mc0pjRFQzODZPb2ZbYGxhVGhKWDliZTlmLGxxCi1aZzhNRF8rNkVmWC8vWGoyQXEzSWhAYCkxMEpTO1wldXNUKjNMKzw3ZnIla11IR2F1TC0jUzZlLHBbIi4lZCFlKgotLTNZdVFqc0huSllSTV10fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xODQ2IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTg0NyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTgyNSAwIFIgCi0vUmVzb3VyY2VzIDE4NTUgMCBSIAotL0NvbnRlbnRzIDE4NTQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxODUzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE4NDggMCBvYmoKLTw8IAotL0QgWyAxODQ3IDAgUiAvWFlaIG51bGwgODUyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODQ5IDAgb2JqCi08PCAKLS9EIFsgMTg0NyAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NTAgMCBvYmoKLTw8IAotL0QgWyAxODQ3IDAgUiAvWFlaIG51bGwgODEwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODUxIDAgb2JqCi08PCAKLS9EIFsgMTg0NyAwIFIgL1hZWiBudWxsIDYwMSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg1MiAwIG9iagotPDwgCi0vRCBbIDE4NDcgMCBSIC9YWVogbnVsbCA4MTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NTMgMCBvYmoKLTw8IAotL1AgMTg0NyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE4NDQgMCBSIAotL04gMTg2NCAwIFIgCi0+PiAKLWVuZG9iagotMTg1NCAwIG9iagotPDwgL0xlbmd0aCAyMTYwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOGE9QmpNIiU3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8/WzdqRUEzKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKiMqSGZaJkVFUChlJG5FJ0dzZUFPbEcjZEtPTVk1aUJpW0phQT9BKSNSTWo8ViJpL0IxIXJYajY8I2lwCi1gIy1KJ2onZklPNCNKNic5dVx1ZCJQZSguPT8lI1k6U0pLcEw3dUNmKWEwNyw/bCciSlBFX0xyVSk2LU81IzdzPwotUSpFVkpLRzRpZyE5Y0ooNlpDMk1OQHMvRyY0PVxCVz0mblJNbHVFKkBzSF1jWCE4Zmg0LGtKWyldTS1oUikxYyEKLSxIUHVDX18tVSExZGBzPStTaWFRJjZvYlBLLkZZc05KIW0xJ1lKPzYqWXRxMyZoTGFLME9SXjlOWTRuPDBZOSQ/Ci0vaS9ObWoxLEwsOnA9cEouZycyQiZeNWw4aEUtYTw9QWcja2lCVyIyYCVMOTduJTllRFw7YzZcQTI2JVAsQCEjRAotJTRQRCUuUWlTWkBeKWkpQ09ZOCVrXTNDOiMib1JrKDtTbVpCR3IzKFcoSnQtaiE6PCxOMis9NzMpTj4lWS5US2gKLWIsMVdTMFIyRzVNaCs8QzBUMUtRRy43bTE7SklycmovQnBjIjlUO1A2Tm42OlNPRzcrW0Bba2Q1bGMzQiMmbSJoCi1BI1M9JlArJSpWOUNkXiJCUFtJRDc0PWxdKU1aRWwjYzUoR1AlKlIyaUNJXSVmTCcvUzBoODUwNWYoRC85Tjo/XQotJ1AvOi5kTkpjQS5hbGhgYSVgUjVsXU1mO1glYyleZUZjQC9TclNdRzgyRj82RTRdWGA9VyM+RmdTM04iM0YhI1gKLVlkPEc4L15FTT5RQVw+JmsrU2BiJi1YU3UnR0xbWSExWiFbXDwmdE04Yi5iQzNEQy9mOThMWDhyZVpMczksJSoiCi0sI0ElZE4qYWpfbyFJOl81Y0dyJVllMmJfTlJUcHUpV1taLGxHYl9sSWJRZy9uSmxYNWA9Wit1KEsoUUcrdWpMWwotXyEhZmkrVFVYYyVSVU5NMVE7TDY6Y1QkVzF1OXRrZT4oMUQ/KkAjPUtLV05cYmA7by80UkhpRSxJOChATiZLR1wKLUVwTCpXaXI8PU4iXHQkNW4yKF5ZK11AZmhdYFxGJT0jJ24hRTk1X3E5S2FMVy0hSGhwMyIuY19DLSNONUIra11tCi1VTVhbJE4rMzctYzMsMTBCY0w0LCdebFRsaTwxLFVIc1tIVTMiMlJPJV1dbTVubUBtMDxTWS5mOjIyVW41XzYjLQotMk5EciJPPlM+Ji5IVzJjKGBTKjNsbyY6OmBZRmFfKWM0cy1FPVlgJUxMUSFtNlFnKWlCQCpeYTFWdC1dUFBRRSUKLT8kPEspKmxhKG4xaXVDUDtCVV1cJ2FdYzc0LCthTihdX2o6UW9LMGtNVixOa0tsZ1o7V20rYWYlQG85LC5hN3VuCi05SW9HNlk6ZiEtXU06RkI1X29sdVlHLGJIZE5PNlkvMChgPiIxV1E5IVo9aSlCa1NfLSojUk85QDUtb3AmM3FKRwotUWpOQkQ4MGs9JTUsQFxkUVd1KSFZZGI2MyJpKFFbZ0UyMG1VKVhoQz80NFJOWXVZVGYoQyQxLVdnLiVyPXFYRXEKLS5wLzdPKEtAI2AucFdSOmQuLyIyQSRKbShPSkZMSjp1TD1VL04sKU03TWBGciVNJFIkTldHdDFiOD8yKGIrWyZpCi0hUnMuQ1lYcDo/NmEpYkdBWU9mYkA1SFYmKzo3V1BAQnJzPilbISlYJUgzYEw0QklSL0FsQEI1OV5TMCU9Y2sxNwotZ0RoZDMnXF1SNFUoRzQuPVwmaS4lKmEoKCRETzwoPzEhQCRLLTRjV2g8U11hOlJPMl9GRSNKSEhndSo6ZEpFdE0KLW5Kc3RqIiVXXUNhTCdSISojdC8hUnIxNlFLKE9UODtFPkZFOGBmTlU4TjxnYGIqLiIiKUY1Zz8jcEZrXTBLbWUxCi1PQFtINixOT2BmUEcrOjdhYF4sbClxPSM3aVFlKSQrUihCYDksOz0yaThdRyREIXJTNkJSZylXNCJWLyEkKG43JgotMiwjMS9VOV8kRyIrNVFPL1RSLlZWKTdEczBKUDFtXilGImRELGZZcy5ncERCVS9WXT04KG5uTiM4UVZiWyNnPGsKLWhGXz1KK0csVGNALEMzIyRkNHJaTkZhKmBrdHNnQD9ZPzReKVJOTlpNSXFaQ1lTNWAtOiEzdVQtVVA1QlEncEMxCi0jL2loOEkvdFNDOFEqS0tdYmkvVCklRmhHSDhoMDQsWklUUS5rSHJHYyVPJSxLMHA1WzA7LSxjYHVBci8rbmYhXQotZGIwQ3NXLSs4LSQqdDBjKTdNQSZDcjtEaVMvKlNyXyFvbl8/ZGNEO1RdMD5xJ2hfYCUlOSVqTG5kOi04MDQ+cyEKLSduMzhLJk5yKiVwKUlkdUFDY00yYG8tOWs2WGEzLUNtUCpWK1AkZjFCUUFjTWlrY05raSNObyklJ1lzO2BZMFcxCi1OSmJ1ZzI9IWZzWy8oTDduIUovK1R0aVdlKDo0cEtEOjJqJFotS1VBLy1BRUt+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4NTUgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODU2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTg2NiAwIFIgCi0vQ29udGVudHMgMTg2NSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4NjQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTg1NyAwIG9iagotPDwgCi0vRCBbIDE4NTYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODU4IDAgb2JqCi08PCAKLS9EIFsgMTg1NiAwIFIgL1hZWiBudWxsIDg0NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg1OSAwIG9iagotPDwgCi0vRCBbIDE4NTYgMCBSIC9YWVogbnVsbCA3ODAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NjAgMCBvYmoKLTw8IAotL0QgWyAxODU2IDAgUiAvWFlaIG51bGwgNzE0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODYxIDAgb2JqCi08PCAKLS9EIFsgMTg1NiAwIFIgL1hZWiBudWxsIDY1MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg2MiAwIG9iagotPDwgCi0vRCBbIDE4NTYgMCBSIC9YWVogbnVsbCA1ODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NjMgMCBvYmoKLTw8IAotL0QgWyAxODU2IDAgUiAvWFlaIG51bGwgMjg4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODY0IDAgb2JqCi08PCAKLS9QIDE4NTYgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxODUzIDAgUiAKLS9OIDE4NzEgMCBSIAotPj4gCi1lbmRvYmoKLTE4NjUgMCBvYmoKLTw8IC9MZW5ndGggMjI2MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcThhPUNMLjQnN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfP1s3akVBMygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RmdgIkN0MEBwdVokCi0iJW1TXiojKkhmWiZFLz4oZHFPWCddRFBvVWNdNzVrdWclZW1NNjk5M1lURktfS2IqTGMnVzwqVjNOOkMhSD5oagotMWtlWDNAWkZtL1NePFldS2QuMkZUWlNCM1NBJ0pPLj42bj9YKClLO3JCPzpIX0QyOnImRDAqdSIxJlt1TiRBbmQKLTE2LGReNVUtYHVPP2JhYE1WLSNNNUp0UyQkM1VGZzpjQWpEVEtrTXRVT187M15ac0lqInFIOFFtZnM+IUtJITpNCi1VN2RhO0tyYERcTV9DLDZATilaPVFsPlhXSzFPY1RhaHAyUDE5bF9YZFEqO11pKTdJbWFqQkg0Tkl0VigxUTgpTAotSS9jQ2okcyNEWixCVGFgNUQrWElxXjguW1NpU1BWKHVAJU8mWmI9U1xaVT5IWD1IUjpsQ1E9czZpN1k9WjF0NzQKLSxPWy5nb1o6TjBTRUUsOmdlOWhpai9jOTw7a21hQTJbYjIoQS9gRWE3LjtxRm5aOGwpPCEwWVE0IiZFXFNRNWsuCi1SWEA2SmRyU0xgTktdbmgjIy5qN2dGNV84O3MqRyMhdVRdQzZHY0RyPTNUM2lvZ1hNPkg9V0k0bnRbWm9ZdS4xTwotNlciVU03UFZhbidoVD5KO110PUlbR3J0KzJbamNGIjsiNXJYNzhIaCE8ZWlLXj5ocWJRLz0tMD0/L0Q4OEVnXlMKLVBNQCleX0QlSzBsJW1VXGAyPlMwUEVQPGY4ckxXVk0/QTZycy81WGRfUFgkMF4sNTQkXzZUWyRdSTxDJ09ROjNUCi1xZi5GI0dfUXJlRTdpKWQ4cmVlNkAwQD5balNkQWYvN1BcLEVpQSVRaFIwSkYuJkNvbik1XjdhXEJIblUsQ0k3NQotIz81NV1Vcl91JilXLyZsWVtGRGFUdGtMKyJnOSVWKUVlLnJATUI0NkUqdEksIiI3XDVZTGZqMjA5LW8uYnQ1TWIKLT9wR1diYyZRMm4vTGNfQFpJNGU5SmVXczVXKSskM19QaWhLIlgwN09jLEtMWzItOSJtJ15NVThISGF1TmAzaDoxCi1jTF5kYC9fWTplKEowYGFmcyZKdFdybGJtRUshXSdhdWcuSEQ5dD0wRG9JQUZscjgqTVsrZ2Q0IWdXKHRrakZgJgotLlIodDxYRiE6MVs7RDBtaU9OaV9KbmNybiohViYzbkBuTG5NcmNGTy0sZyheSyhJJUNyL0RtLylkQVIyIUA1TDgKLTdAIj9fQzE3RFFQZigoNkg7RTY2ODNaST0jcyxFblxJc2EkIjo6SUIwWE88KGUpVV1wMEhrJ2JrKCgtPTMrPEFyCi1XQldIPTFCZT0+J1BVKTU0S0o0TltVLEJgRWV1NDtfVVpGQDpWJWwnLSNIX3BBcnI5VkV0SmhdNVMsc203TSZAUQotQG5ga2wyQWdEUylISUxEMkpIOFEjPmooXyhWOjAuYmBSWzhfITZha0hyZ2VtISc3IzpUWEdXXy1rJVBkMSpMNlgKLWBMMCQ2M3NRVVwyYiNwUk02XnEtWDRCMkY9SVFaP1M5XFtBZ2tuVktBcEdLV2orJ15FLjQvWXVKKVo4bjVYRDIjCi1ZTkVKKjpuImFiOjcqZ3AiXjkxbEdVWWheJHAkcF1AWUlYaSktOCE+MFNcMkJJRzUwZCNnSlkyNHNEJ0QhPD1yPQotY15hUj9RTCU9SDFvcGZpIj9LMHVwMDgrcDVtPkg6K3I3RShWYnUoaCVmaWdySyMlIWdiQ09bZGBUQ25NMTI3bkQKLSI3ZFNbKl51MEcnRl9nYk8/PSI9b2BCaiY5I0c9TjdGNT4mWHVLVlk2WHNHVC5LTTYxKGkkcz8oYSotWGQ8Y3FtCi01a2RuS102amA6P05MT2E3YmA4M0RETiQ9W3M+K3NCJEFKPEBHaWZBakByMSxjbWZMa3JASmZraiUmPkFtZ19YNAotT3FaQyYkN1M0X1YrZ2s9OW5YbFBXR0NAZW9fQT0zSkEqKD0tdFQ6SmsrLjcsSmw0Jz0rSytsTlVmMiMoOVc/UG0KLSU5MyYjKylwZ01pUEBDSydpKC8jbkZdW28/ISspNkp1SS03IlxlNUY8aTZcNFhdPEtLKmlmRiMzJkBzNlM5N1I5Ci1fL3RlZDcpXGJQNnU4U0c+NGtaPWBNK2E/IywxNT1LOCRKLjAuMkklI2FUIUlQYGhGQitiVl1CamZHcWJuRCZXPQotYF9mMDoiT29RO2w9KVw1M19fbVklOU4lNlM+MCRcUiplUlA1SFFOcmAhJ1hEUF5rLmJaUyZRMzdHSi5MK0VrNnQKLWUvPVIhUT9xcz43XSpSQ2o5Sy1CPCRIJSMjNTtwSj43Y09gUEIkPS0kZ3E0OS1DJjltPlApbkRZIiJNKj8hcTw3Ci1ySSUyOy4+RXI8UWpjaG8kdTMiLFAtbldEY21XZkJgPTw5YFpvI0dePihlREZbMUFmIlZBaWhtJj45TyVyJ2dNWgotS2BRPltOcz5pSU9YVHVrLVxcVFA3IVNFNjVfayZNbC1jLCU6JjtBaGczLWswSnRtOGNOdWtBcGNXNSZmYEBzYXUKLVdzRkg1ZD80b2w4Vi9JbmpibjZ1RlRGPDNLSktET1RtbislKVIyK1c9PD5vazslVjdXQ1JIViJfZj9oVU9yV1YxCi1LXCU0JGdJQ3ByWVJNXXR+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4NjYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODY3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTg3MyAwIFIgCi0vQ29udGVudHMgMTg3MiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4NzEgMCBSIF0gCi0+PiAKLWVuZG9iagotMTg2OCAwIG9iagotPDwgCi0vRCBbIDE4NjcgMCBSIC9YWVogbnVsbCAyODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NjkgMCBvYmoKLTw8IAotL0QgWyAxODY3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg3MCAwIG9iagotPDwgCi0vRCBbIDE4NjcgMCBSIC9YWVogbnVsbCAyNjcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NzEgMCBvYmoKLTw8IAotL1AgMTg2NyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE4NjQgMCBSIAotL04gMTg3OCAwIFIgCi0+PiAKLWVuZG9iagotMTg3MiAwIG9iagotPDwgL0xlbmd0aCAyMTMyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOGE9RC1kRik3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8/WzdqRUEzKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKiMpbWtWTHFBci4iO15JOzdtPl9baDQvIz9vNnNbLTZlJ1tZZWtJSFA3OGxxVFJjY1VMUHAncTAtc0EuCi1FJnNBR0w2RUo+aSlDRmM2aW1rTUU0QDtLJDpmUkZMbmopczUsNG5AcjRjdSspWWNLajp1KEpsJDByO0Y1M3VibgotJi1ZRWxrVkEuJSxQX0omX2c3KEEtX2xuL2w0IjtwLmdzNkplMkk9MCZGO1NANk5fVCIxO1lhb2pVKz8kYCYuV18KLSZTKjEsS2dSaUMmV0pKSDVXOzJKNyFlW01ZW0gqPU5QZGE+MWRKP0ZxWCtiOlVZLUYjYjFQVzQ4WyNjLyQ0Vy5sCi0lZlZOcFdmbDlrQD5ZXFJUYTQ3PyYtZWk8RSMvX3BaQmNzYmI9WjRxS2BcZDMtajBYXmo9bFNySkJHIVE2Y19ObgotI2phW04xNSNgYGhEUGdxR2pjaThvVmglNiUhJ2YiUS4naWo1VlovaCh1dUJjK2kkbzBiOzw8ZHBDIV5nUGJiZVIKLUBgSUJQJVBWOmhMOTdNQig6Z1NwVT9UbTE6dSFnZGlxcmxaYERQW20oRnM1R1Qqcz50Z2RibyFbWiU7VmFmaFBKCi0wPllrN2Q0bmooLDdibTomT2FrYmc2V0pfMD9DQy1bcmQ8a0FfLmwsWi42TkRWUk1LYzA/KyoxQUp0XmZqbkJFWQotMGhnKz1oMThUMyteWFR1ZUhKJT83SzRGYTMjblA9YiR0PyFGQ05rSGhZdVFFKl47KF8oRjRkITQxRUJERTh0JksKLVZfNmduVFlFLygzKS9wXGJ0QTReVmJRSEBna208JEs0QCRpRjZbLTtjaVVeVUAiZi9yZDM+OGFBREhIVzVtOFUsCi1XdGVvRT02bj9WNF0jKkZFYFA2IVduP01vV3JqM1kxOm5KVy1tPTpRPT91L19sITgiLTx0ZiRcPzdKdEdVKUY1LwotOGotV0RjQSVvKSJMKV1zJi5PVUZRWSsjV2xyVjlkR0gtJllLVWV1bi1oRFcubCpZVGsjPUQjS2ovRDRqbz1bT1wKLWVULkJsX11gJCdQJiY/Skgvc3QzYEk1NDgnb0lFWD9la2wrKU4zWnMwMG5gZE1nNGxmUT1PNm02ZDlsV1QxZT5uCi1JS3RyZlUiL3BRKVs3KSZqdUBJYEw0bGdGTlszWVwwdTowP1ZFJl9nNS9PdDNTdEhkOSlwbUZZSzI/LFksY25zNwotYEVdNVknRiwkckA3TE8hZlFUXTcqXk9COCYwR2xaZV1fTjNKQmE1W1dxPSUxZ1MuTTJqX1g3VWQtLWkwTGlZZCcKLVxBVFBFOmxXQEpUMlstQFsyIjsjJDw9Kzg0PTApaU9eZSpqOjNkMG5NPyNDWE9NXzlsKU8oWF5hZ3NDXDo4PGFKCi1EJTZUTzdnQjdwVltDM15KZ2lPSzBvIlghX10iazVuQkFdTSE4XFRfTWZVclxeKTAzYWRScXJWPV9raiwyNXMibAotJU5HTlUvTVJZSjdDWFwoaUA6JUNVaGd0YG89RyQtKGhYPlBbTGlUKW5JQ0peWW0sLWZvLjNeWT1KT2wtJTRPRkUKLUxBO1xqai0pUzdXKXRtTzInZ2s+YUVJZmU0VzFlMStOPWBXQXIxOCMmJTQ8Kjp0cVdjJSJZOGNeYVRhb1Vfa2xsCi1pS1FHL1BMVTs/QHMpWVo0STtXYSQ0XDZMPC86Y0s1IVJdRSElJSxVS24tJS80SGBhIVJkYkcwOnQuRzhrJThnNAotZ2ZiME1AVWkhTGhfKENLRi1Gcm8vPnRRLylhYW1XTVs8KlEuUnBNbUIxdVA/O1RaSjdKRUpeNWRFW3BZZVBgcVgKLTprTSwlUlA4U2ZHdD8kJClDLSQ4JG8oPSRjKHVJViQuTSdmIU8/dFAiR0YpMTNaIT0kJUtGM1k2USknaiwkJVlNCi1Kayc/RG5eZFZiLUQ/QyJXY11gRS5AR2VzK2QtLT5RRnR1dSY3Ul1iRE9PM1A1bSpMWjZrM3QzQGpubC1KVllicAotMyVEPzE8USsjLjYoKFNHS1tfSjBDME4/ako4KGxMRFBqbSVlM1ROQCU7O1AvMz4jZlc+cCNuUUVJYmhBVm4iUzQKLV81Z1IuRkY6LixfW2RAN11bcyIjRnVFQyItSlAjPzZcTlVhPHNNX20zMiRMKy5zImstKkpuaHU2XlchbjBzVkQuCi1iMColW3JBQzhSYDkpW2BBM28sJEpAJGRQLWNqNEIqJG1xP1Ehb3RaZktzXmJAU2dtLVsxLFY/NWUvJFI9Q19ULgotW0IqMWlrW0RAP0RtND9RXzlpJS88b1NwWCU9dWtbSyVqPSJVWjBJZVUhPixGVE9KNlswSVs1TGE6bmpKO0BGKi4KLVJna0hDUGdhREVMJDBNXz8jI0MpLEMuRmtqZkFbc2BXYGRQJCgsWSQmWGs+JmUvM2dJVWdHIzBnb14+c2ZVU1xhCi0+Mi5gXURQdCNJKS40QEo1UX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTg3MyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE4NzQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE4MjUgMCBSIAotL1Jlc291cmNlcyAxODgwIDAgUiAKLS9Db250ZW50cyAxODc5IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTg3OCAwIFIgXSAKLT4+IAotZW5kb2JqCi0xODc1IDAgb2JqCi08PCAKLS9EIFsgMTg3NCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4NzYgMCBvYmoKLTw8IAotL0QgWyAxODc0IDAgUiAvWFlaIG51bGwgNjc0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODc3IDAgb2JqCi08PCAKLS9EIFsgMTg3NCAwIFIgL1hZWiBudWxsIDM0OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg3OCAwIG9iagotPDwgCi0vUCAxODc0IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTg3MSAwIFIgCi0vTiAxODg3IDAgUiAKLT4+IAotZW5kb2JqCi0xODc5IDAgb2JqCi08PCAvTGVuZ3RoIDIxMDQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE4YT1EZEVYKzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz9bRDpcaD8lTlwrRWBKSVM+PEE8a0lMUWIrMFpLc11xJTFqRkchN0Ekci9pJ2JoLEshWCdeTEQhYAotUGlQWSMuKXMvISMqKkZwclkuRGdHVCcoaSw2O2MhQnVxaHU3MFlQVktdYWo0KUdYcDIhVWVuVyg+X01lM2g0XlgKLUZZT2dFLThGJmRXJSs2bCI8RillRSk5ZFJOckBpOTgnKFcpJVpkc2NyQCRUPmhZPUsnRjE7Yy9YQV11NTBvU3BvCi0nYilDXGF1NyVSZ15sT1ZsNVVHLk5fZytcMWRZJDcvSVhpdGUrc1ZDT1JWPz5OVDc3ZCNYajwwLU9SYFtiUjRObAotRS9cVEolLSZtLDFyMkhYaCZScFZqNWhJTkBwbUc8JS0rIy4hX0cnKltQM2AmPlpoUTtAdDxZZjUwc0VaMkciSDkKLXBjY2lYOTdGLiMtcVlcOitYajlTKU1cZjFDYD1nNFUtLGZbL21yJysvNGxNQydJVCVkYzRFVDgtcFRfTTZWdG9bCi1dN1lMRy1jNCRdUiVGZikjZmZARDV0R0gpIlRwMTRUaTg+czZDIVBKSEVdLjVPSy9GQSRtVDdtMnE9WV4yQionRgotYEVuaFg1bTluWDs8KW9UMyI3TEFaR0JDSjIlVlNtVT9KTyUtMTszSyokV1NjZG01PiZfSzddZUs8MVJTNTFFK2cKLTFDZzEmK15NLGByQl8mKTZgW1gsPyxKLyQ8ZkdRJDVWamU+WzZrKixLP05hIyJaQ0xySyIucmBAWip0VTNbZm5FCi1NYjYsdUxqKVw9PnRQX2BiMFNKIkZXYF4mMkxPI085cDlVbzJXOF9IYFlWREFia0MyLUxmTFovPWN0SlUyVU9tPwotUSNTakZaO3JcXjNNS1AuaWxxMjxAMUI2WltQTSFbKltRXD9sSEwsN2RHcG0pS2lzZS5kc1koYTUldUhITS1jPD4KLWkpO0NCQ2hbKG1SJmh1ZGNELD1eKSIlU1EycVw2TCokW2IoJkZ0TVZCXyFQOSdTJkhZLy9zWmhcZCFfPzcodUs4Ci1lWCZeKik1V1A5S0drXWhNJTQkSiJdaldXKGZoQ0IvdXUvUUR1MG9oMjUtJEVoVnM3c0xoSWJOb0AnI2ZcYG5WYAotNjE4JT8yK1dFUyRfNkM2IT5uXU81SWNfJCRZVDtHVEEvLSVRdC4qRW9ycXRabUZJMidrSU0idUJ0YHVCTVg7ajQKLTVwZT9IJVs/MFxhM09ZSydLVjdKKmVETDRuWl83WEJ1O0BnbTdUUmYycmo6R0JBcTR0XzIpbzVOdExHK08tby4zCi0tSWdxRUYzSnBGZUA2UDlycU88TmUzJ3A/Z0daOT5wQmInXDs2UFFAIiMrV3VpJDdHPkNQaGEtVTNtNGhjdFwyaAotLTIzW1ZcRk5FOCM9J3BqKTgtXnAiV2tkLzBnciFfUCxFPjsqVC8uRiVnYWQ4VkxUVlFdRC08aChfQTVgYFohZlcKLU5EV0R0ZT9wWCVaWDwmMEoxRlUsYCQiS1E8S2ZPSGFVL1Y1LUlBVEc+MmckLmM2R2ZFQGdQdTsyQGRtSjNlZ1o4Ci1KUkVKQEg+Xl4/MmpeYzloOSdSPVo0NnBsKHRSYC1aJiJKMT1yaUFTJU4naHRna3EoIjJdXS1gKkU3V1JOUUdWbQotXlpZWSpOdVZDT1ltPEFwJkQja2BKOHUoV2VYQFZSazhoX0AjJm03dUtWb0c2N2JhW2UzRCZib0pxZFtGTicoJksKLW4iQktrN2xucVMzLVM0bGpNQTkpOV5waEo4UER0JlQ9KlY2KVpzSmQlY2pfYlxnSEEiJUxMI1UlXFRiUTBPZiwwCi1uMUBHYG48Zy4yYClmX0JqOUVwJmhuMFkxJlJwXGo0XE5HaltNLUl1aFE0QzxWZkkzQDg2LU1jNV4qViIhJXRtTgotNFU8NUc2cGZBYGNfYCNEVG4qQCIxWy1uOy5qcyZKPDg1ZV8mVC5vLE07Q1tvXDdnNXIoKE8xKTRxNkhZbCYpXk0KLXJRUjxDJ1QxWlAlPWxTKWRPPWJrQSlsLEQnRnAoamkzdSZvYT5nJGJSWWFGRk5CcGE7MFFFNVthMCRtIUMuVlNzCi1LYFNJdFtNV3BTVkRUZyFEcGpyJ2ZST0RbTTFZcXFaMS00NT5sZUQ0T180LyZXXlM7MF8nUFJwLCIsUW8oPWxHWQotTmZaZ0FhRGEjYUwxaE4vaVxrJiJSOkY/PyFBJy1AOjFRYWI+N2M9JjdWMSZPOlhUXT05QDAsXWxxNjtDWC43IV4KLXA4akItLFxFZTs8SDFHV1dtIm43ai1vVVQxQm51bWo7UVphPGZHMGgncmxZZ1BsLjdabyg5JDxFdGw/Yj5jZUwhCi1dRlkzV0hNajF1RSpNcFZPI2YzJmwmKF9kK1RUbyljQyo3KiVaaSEoWmdkRypxKk5waydjck82cSFMOSZBLlh1OAotY0EmOmFyYShnUkhRZG5wMGQ0WWc2VVhxJk9EMFYtXCUhVWQnUDJaUzpiXVpCSi87VkItcFlpWn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTg4MCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE4ODEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE4MjUgMCBSIAotL1Jlc291cmNlcyAxODg5IDAgUiAKLS9Db250ZW50cyAxODg4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTg4NyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xODgyIDAgb2JqCi08PCAKLS9EIFsgMTg4MSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4ODMgMCBvYmoKLTw8IAotL0QgWyAxODgxIDAgUiAvWFlaIG51bGwgNzQ3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODg0IDAgb2JqCi08PCAKLS9EIFsgMTg4MSAwIFIgL1hZWiBudWxsIDU4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg4NSAwIG9iagotPDwgCi0vRCBbIDE4ODEgMCBSIC9YWVogbnVsbCA1ODQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4ODYgMCBvYmoKLTw8IAotL0QgWyAxODgxIDAgUiAvWFlaIG51bGwgMzU4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODg3IDAgb2JqCi08PCAKLS9QIDE4ODEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxODc4IDAgUiAKLS9OIDE4OTYgMCBSIAotPj4gCi1lbmRvYmoKLTE4ODggMCBvYmoKLTw8IC9MZW5ndGggMjUxNCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcThhPUVGJmotN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfP1s3akVBMygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RmdgIkN0MEBwdVokCi0iJW1TXihyZDQkS0wwLlE2JnJtIjJQbFpgX0xkJ1Y8K1pbXzokNUBTWWZfJiE8TXI8LS5Dc244M1oxPGo2VXVzZgotQDVkbj9yPTo5U2AraCZwY0BZTV1fP3IkJWRtOWF0UFgicXUuTnUkOFc0PlFXP2wnIkpUUDBdPlRkVzB0XSl1UDYKLS00TTJla1VzIkRHWnFiNzshT25eTWRdIW4mamVyVmduJ08kXnBrOSJVKEgwOTc6REJkJ1o0QDRDYCE8VihkS0dYCi1tZykybCI5VFNHM1hkX3U8cV8xVzQ0NFsnRF0/a0g0biIzaidUOF1ZUFFtInI8I1pwdFlyWzpKNz1nWDgzPWRqIwotQiIxSmhnamwhJDlPTC4nTC1kJCIzdC9HUGQ0R00mS15ULFpfREQyaTMzVlRZTWA+LkRFZUQwLjhuJko/Sy5GI2EKLTcpTS1bcGNfJzhxWVtGM29gXCZkVHQidFYzOjlDJSIsNmk3P0NBXzxacU4zZmU9YyNqWXNDb2kqIUhpYWBdNygiCi1UWlphNFduPjZQV3JqS2Q4QkUpLDVVb2YvbjUoalY7QHFQP1ghOGJMX25FSllgaU9ncSc/JFZCcCRLKG4wRVoiSAotMkhVXjVCM05EVk4yXDxSbkNuOWksMFN1b1JLWDQ4Zyhza24wXSh0JFVWa0shXUt0J0RyJGRPQ3B1IkJxSnRndSQKLS4uQ0c9NXU7KVojN2FNcGQuJ0ckS10hRDJRXDdGP0tHODVSMz1ZWl5mYT4+J0k5ZWVOSlk6WzVMOjpFallbRkpQCi1JXTY4JVlcRyMwZUg6bm5WRmNkaSJEPE5nQmI3bUIhOkRcJ09IQD0/TmU7YlI4NllrLFg+Jm5FRl91UV5lXjNHPAotME5LJUg4SS9hTEwpI0ROIWY8JW4yNSc3MT9ZW0hjK00sXzpsOFVLbz5LSjNSZEw+O0VOZSkoWi81Jy5lOSlfZyYKLSNbPStoSEg9bmBtNmBNWkY2J3J1LVJoKERNbC5dYFtCNFxVTkByI2tjS1xaQ1otTHMyLSVVTywoKy1qMjQ+KFRfCi0nRnEyS2EvcHU/LFYtXlUyJz9sQm5LQzBTMylVLnJcLm1nJVNRPjhQKkktRG1Xcm0hMjBfSV46PVVTSE9dPzd0JAotOjhNbDZvP1JjUSxadFRHQHFFTVs8MkBHMFtUL2EnJUspPURRdDdNUyM1N2VTZWBUcDE6UXVuPmJ1Kisnaz1kY0sKLVlpK2FKJjdHdT9PX2dVM19SPGRFV1tOcmxXNDxda1hXNEM4ImpSTy5WdERmNk5XT2JrQV4sc246a0JQNz91cE02Ci04RyVZZVp1XmpDaSFfKUBSWlEqPDcjaGlwIylLT1YuTyUnLihmTm1OVGVuT0FpZEJJUlAiW25FQEspZ09ZJGZpLgotPUc3NVVRK0wlUE9yLCspK2I3WUhLOTBQb2I9UUlYQjVvQWJFZyU4dGNuOjdfSTFWbChYcjdDZUE3I0A3LVxgMmsKLSFUKmxxJG44Xm9KY09lLE9uLklGTCspU0hwQkQha09fK2Y2JlUsYF9pYC4pUytadE8xJjNFbilNMmBeWzNSPiwpCi1YTURGJk1WOjNVWj5GLW9lME1lKSQ3QE1VU1U8KWVwcU4uLWVjWkJmLl5MZ2ZfJF5oYEAtJ3Q1UG43USRnJm0oPQotK10rUTIxVEhPSCthLG9rTlAyKVBDXmshLys6Li45Z2U9cnRoVTYuMEFFWzE0VHFqWidNckFKR25YNWg9UXUmWVkKLWE8MVtwZmBTNWlKPi5uJUY/RUU0KVRDJzg9cUxQUk4wKUovKV03Lz1STlotUmkxYC5POEUsXnVXLGQiazRwRGlQCi0odEpkc0RbdGoxZS1BOCIpRkdvckNDciMwKltrNSNiLylfXkpZYVsvPVxwKjVnNXBMOlpvV3JcK01dNmJNT3JxXgotXVpCLnUsWEZqQDBDOjNjK1heLC9fYjZwMiVcUGRAImhgQVE/dXBzQGVUUkUiZidqcjojYWZEVUd0LiJWRi9QaHIKLS9xRSNnUHBzUVg/LiwlL0tHa2JdMy5UOHNqREBGYDRYLVZFRTpdWlMnaEp1cC1WNmwqWlwqaGUlNTlAJzJrcTw/Ci1VLHRwVF86MUNKMlsqK1xCSy0xR0U8WEc2aUQmO0VvcCdZSkthKjxJWzFbXnIlSUgnMS80dSNQVEhfKlshTCxDSgotTVIlXS1nJjxmUzZsPylRYmAuTW8lVW9xTUBcT3UxS2IxTj43WWZ1OiImczpKOzg9OltDZk9kVktvME9qZ0Y1YEIKLWImNVpuPl9jajk+PihvZmxpYlxgKVRqVUM5ZiFeQyM9LSQpaDE7QSlaUjJtXEtJVl1XQkppOUdKMSs5PVQpX2MhCi06bS8mYWxIcF9YRmQmTzRZXV5jQEw/TFVoVmxWIlIkNHIrPWRgbFNVSDQwclgkb0FdXGNFU2hKMFNXTnI1WFRVRQotNzUtLERCPSMsTVUocmIiNidLMHEnRy84bGtFcUlzY3RqMmlXOUBZLE9IRCo0bztSTiUxYjE/aCVCQiYwMEw7J18KLUwzYU1WOSlXOyQ7NW1JUlAmIT9uSlFuISMyWWpFLD4yMzNFcy0/PWNaLS8mJVRWXmxZPzU5Jj5nR1U/cFE+U2UpCi1cR2clW2ZyZWdVUlBdcVwuMzJnPzlRYkQ0SFwvJWZmdF9dOiFoYSVhVWQwR2RMQURCVmVfLF1kOWdRViY8U19hRQotYXVYPk1Xa0ZzOU5zPW5rMjhbU3VLRUZZLUxEOms7I3BwLGVbYDcqTVcoWiYyNi1abStkKShxM2MndEZaL19lSDsKLWZvNy9XVzw9KUxpZzM9TUpTI1koLUVOMzlTViRkcCVXSGJJKCxnKmUmNVg1U1NVOlBAaTU6PjYlTl4yU0UlWTNSCi02ciI8alp1aDkiZFc7MydPZSIyUThaVVpjYFhgXWo0QUwuKzorTiooNXBkVDBrMSRZR1xBQmAyUS5gMnU3LTBpJStDa1R+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4ODkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODkwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTg5OCAwIFIgCi0vQ29udGVudHMgMTg5NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE4OTYgMCBSIF0gCi0+PiAKLWVuZG9iagotMTg5MSAwIG9iagotPDwgCi0vRCBbIDE4OTAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODkyIDAgb2JqCi08PCAKLS9EIFsgMTg5MCAwIFIgL1hZWiBudWxsIDIzOSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg5MyAwIG9iagotPDwgCi0vRCBbIDE4OTAgMCBSIC9YWVogbnVsbCA3OTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE4OTQgMCBvYmoKLTw8IAotL0QgWyAxODkwIDAgUiAvWFlaIG51bGwgMzMwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xODk1IDAgb2JqCi08PCAKLS9EIFsgMTg5MCAwIFIgL1hZWiBudWxsIDI1MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTg5NiAwIG9iagotPDwgCi0vUCAxODkwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTg4NyAwIFIgCi0vTiAxOTA0IDAgUiAKLT4+IAotZW5kb2JqCi0xODk3IDAgb2JqCi08PCAvTGVuZ3RoIDI3MTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE4YT1GJ10nLzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz9bN2pFQTMoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0ZnYCJDdDBAcHVaJAotIiVtU14qIylta1ZMcUFyLiI7Xkk7JmJIRjs7bDMoPlZJJyotNTA2KUpGIkM1aS9HWz4zUm0sJF0saChXNGNtJkIKLU5rNkA4ZjkoZCgkY18rYEBhUSNcPXQxWDZDU1MzYkxuTFAhTklxTiNebD83IWNucGFgITpEXChOK2gtLk4/YEUrCi1eVi5dRFInREFvOUJja1pMcDFeK0whUm8tLk8zNVg/bFlqKFJWRjtdJWZrSEAlNztQYDNXb1Awaj47aCJPTk9dQgotMFVVb1ckbVFfLDFvNFxxaERwVUtBJ1hHI1VQJmIsTidoKmsiaTc0U2ZKWjNvMEw1b1UiIzAiITdXOVBRIy9FakgKLWB1dHApVWBVWVViQ1VjTlk5QV5ATV9CdVxCSiJvP1llaTouVUZLOnVjZjoqYzM8XW9WZ0RsNitRczoxLyc1XCRFCi0waVQhLydOLEZWaEUkWjBQZDtzV2opUy1PTlNzbGcxNXJHMiwyJ2dfZlE3Z2NVN2RhKmAkKExhXS9ETzFVcVRWKwotaSswQlAxT3JqTkwmalEnL0lzXEo1VmVCN2FPMmZaUCMrRCJOJEdfWzJbaE4rNWNjWVpIdCsldW8mKWVrYSRaJm0KLTRqVTpKWjRJRj8iVS5EVk9nclNLLnE+VVw6Syo7WD1dXFc1Rl88WmZaXlJiW01oLkZDJEZmTjkpITspaFx0WlIzCi1OYmI3b1RoMW5SMG9ZLURCR1NGaSxWJV8nQ1NLWD1odFYudWpeSz9MRitHSis0O3AvO1BbJT84Pk9bP2FFUjBkZAotPF1jOVMvVylUQiYyYyd1LnE6UWZCajBQRVxUJytAZWdgVVVlPGpIZWVfdDFYKExdOFhqKnNoNy9GYGEyQDBGN3QKLTVccSc2MXM5JzVLSzUnLzsiSHVqK1tCPjMvaD4zPXAjISpNV0VlJWBYYTViKSgpO1s5OGw7SUxCPylJcFxVJm9FCi1WNXVXIT0kPHIvN1k8TzYmOC0xUT4vQXRLPCpfKFtnakVfYTlRPWAzXDhHPDRrckVZNzBOIzQyZS0/Uyk4KGpeOAotUVUoRWk2TFlJJD5wXz1jYW5LcE0ucThrRGdzU0pSaF1SbXRJOVdaQl0hZ3BkYDdaRDldTjpCbHFkSyZdMktQVCQKLTNLMlgyOkthZ0gzbFs3biFaOzNBPVBdYCYjWmZScGljPCglM1xeQmNjLS84biojUjNtPD04cVMhdG43JkBCZyltCi1HN2EhUk1wP0dRckIhJzhaQFEoai44alUpKTdfVCZAb2kzYSMqJEZVMHU9YnM2KHJOUTdJViFHTE1GaV0waz1fVgotQm4oX2ljOV0/b0JnQFpqVVVMbSIlRjBqPCw9bTY0VmhIJlhmc0MmVUA+dTUnUHJQMSE4bG89bFtCOi5IY2w6NDIKLT5VUU9sIWpjdWIpU2xLVUgiQTpSUTcrcTohPEwxRSJcJyZnJ00pSisxY1ludW9GWzglbj9sNjtpI3M2LFNaYiFdCi1wS1oqTUlWSEE2Kj5OSkpfKkNbYkxzVzwmIiEyblc1VS1GXyI6dFxsXj5cK2ZBTWFyMSxXPmtfPzlzZ0RMUzE9bAotK1ZLKUBPZT4qRyxucSxJSjhabXQ5VD1SPW9KYG1hPD4zN21GKUQiVCdiYV8ySlAjRGgjdDhDIV9jXlwqVEIpVjYKLUpPJztRJCVBSGsma0VEdWpXOWpZWWYuSGFHJTJdPjAhIT8wTDBvVU4jXWQnOFVrRzxWYydvSzchLlpbJ0wyYUhCCi1DIzlDSCNrLEJMXVpmNz9JMShTJjkxUlhhPjJzOWJOVGk7cCIiPEBILUIhS2QkU0V1I0tyWmshNylzRms3NFxWUQotT3JZbUovSSpQOyk5Uz9lKS5cQVZQIUZVayM+KzNxLGczL18hMFVSMStALkVBUC5hVjJBckI5Y2s6OT0yWUBXbT4KLS9eKldcOEw9a1YiOzorITlQSjk6a3ErcmBQXjZcMD1jamloPXVTYzVKcyckMjooP0gmPShlNVREcEIsITxwKSElCi07ZkJxLTFZTj0+JCFYVl1lJz0jRCkjWGhUYmttREpOXUk6U2ZkIkJYaz8vRS0haSZfJmo8TmIvUD1qaGdhP3JNSQotIjFWXjNvTC0+TWZzTidPUypeXE9LWzxgPGpddDVhOl4qZ2lCaE5QcU86aTg2VzZ0bUc4YTpGbi43QnNpVmFkVl0KLU1JLm0zJ2YyQTFVO3NIMStzJCQ9bW0lPi0wO11OKD1YZ0pCVSU6azBlQiYoSVYqby8tTzYiaFQ9OE1mKD5PbnJiCi1JU1YrQF9BT29QMjVfNDk6ZkZvTTpUZnNLXSFFI0c/JkZbdVZJYEUiWkJoRUI+LFBBN1B1dEdJcDk6a05AbSFfQQotLnBYYnVuJzxxV14oNVQ/NSNIcTFUNXJZZWojTGc8VGc1NVc1aF03OiZzYzJvcSNbW01bTV1dI0A3aUUtY0o1ZD8KLU5LTSg9N3VOLEc6a0ZsOUxoblVkNm1ocGZVZD5OUSk5YkxhYEVUNlo6bD5wLyguUEA6JTZyI2dPQ0FcKTY3WShVCi0tcFpXME1Bb2o4TV1HJkNbRCkrSUdcPTlpWm82TjhiLiFbJUUoO1dXYGFgaEhlKUsvTEgwTms3VS0pWnUrSmozTwotZC9iL2YtW3B0a0lMXmppJmBWMmlIPC8+NTZ0YDNoNFdYcFAmQ2UuLzlUUER1aGRBX0MrMHEjK3BhST9rLUNGOWkKLSZzbChNOD49ayU1JS1hL0ZOKUk4OkQxKHJHU11kWDpeXGZjMyZlVS1BZSEkc1xjIkJyTi49YjM/NF9vJkkzPnQ/Ci1yYDYmX0QxW0wiKz0pV3AlTkJKYSMnRTBSW1E2UkhPWUFhUG1uPUUjOCtLOkU7MjlYO18kQEUlVFZkQDlUYVg/cgotVElsJmZbZF8hZjY/bURmaTEzbDs7ND5kMGlESz9hKVNncmQhLE1oM1s8JkYqaTA6QyclOFIjWzE7YG1hJjJsRyQKLT40NlY5Iz1PYCImLjFUKTNvXiU6b1xRXVlrJDE9QUNEVlNhRVhcTnJNWmoqNSNXQHBCVkIkQ1ZfWzdRaWwyNUwvCi1lLmBRTURAUiZpR2Rkb2Q4V08lamo7XS10KGVtOzNsXTYjN1lYNE46JTJnTkg6QyxNaChhaiJAJjcmMSomSl9lVwotZWNcSSYpWjUvJ0I0PlBNWFNlVUtVMC8nYTRLL2N1TyZWVCJKdDYqYj9zSVpJUCVmZmo+PHUpcmY+bnBSLCtFT2EKLVpcIV9WLy1BRUt+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE4OTggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xODk5IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxODI1IDAgUiAKLS9SZXNvdXJjZXMgMTkwNiAwIFIgCi0vQ29udGVudHMgMTkwNSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5MDQgMCBSIF0gCi0+PiAKLWVuZG9iagotMTkwMCAwIG9iagotPDwgCi0vRCBbIDE4OTkgMCBSIC9YWVogbnVsbCA4NTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5MDEgMCBvYmoKLTw8IAotL0QgWyAxODk5IDAgUiAvWFlaIG51bGwgNjUxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTAyIDAgb2JqCi08PCAKLS9EIFsgMTg5OSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5MDMgMCBvYmoKLTw8IAotL0QgWyAxODk5IDAgUiAvWFlaIG51bGwgNjM2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTA0IDAgb2JqCi08PCAKLS9QIDE4OTkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxODk2IDAgUiAKLS9OIDE5MDkgMCBSIAotPj4gCi1lbmRvYmoKLTE5MDUgMCBvYmoKLTw8IC9MZW5ndGggMjIwNiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkIUA5cy5yN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kxVkhDaHEobFRaNidvRURMLHRSTnVKbXBbMDo0YFNBVFpTQjRTZFpzcEpbITo8XDYoXklrWURuJgotJDAyUE4oST46WlFjdE1LTCcoV29kJ2I+UEZiQnRlY1YyUDxabWs0WTNcVmUhPF1jOWNAK1ojIUBzSUA0LmZmWToKLWA9NCU/a1dGTSNHZyhqRjAwIURUJHVmRlZtQ1RQITFDXzMyT1JiNWZfYFNicF04bENNMXJBYkpjNGdIJztsbFJrCi0iLWJoZCJWLycjMz1SLUY7RCppWTtJMS1CL2ZIOlQicVFmMSleLyJdOmM/MUNBMidgMyIkPzpbTmU7W1siVi47cAota1cnJXJVVFFFX20wXXFjJHUzakswZm5uU2I6bFVlQUNORVsnMlVxO0wjTnFNJ3JxXGszPWVMaD5aaD9PMFdab0AKLWFSVms/LktyRC5YPzJAY2FRRlAjRUooRygzZmhhaigqdXJoZExcXFU8OUVNX1leQ2lXYT0+cForMzVUKkZcJ1ZJCi1iP2xfJlhjUi02IylcY2RxaHAjZ2pxUHBnSjddVyUhWk07IWVxOD5iO0daNlNMTTUib2deYjtYVTgyVzpOKyNHSgotWS9xO1MrIXJcOGAxRXUyUTghKWIra0JhbCtYZl1jYV9EKWkhNkknVitVJCUzOC0+cHQzbjxkKDloIWdkNnBfXGsKLSdWLWF0Zl8vJiNTbD4uN25pKUxwOnMvbW9EUTRDLmlPI0c5J05obClqKDhZVzg4XT1MJzB0Sjg+Km5YSTJAVWxGCi1kMWxjY2kodGVdIiI7cUxNMUozMCloZWAqIz5xPT1NTCRsWTM9Wy1vPy5YZHFBZEJVdWBwXixEQ2pTITs8JT49OAotXSEtaSsyTj1kUW9tVTkhTCcqImJaNCJLaGlSbzhGR04pWTRIInBiQl1MKG1XNlBcbWdeUHJgcEUpQXVFZTJbclQKLSVeKSlAMlFhL2IlSklsdDokTER1VVVsLVxCXSIvcWQ5YTQ+TWguNyspUHBxMVo4LSRcZU5uVkRQPVk7Om5zYkEmCi1MaS9WQlNPNmJybkQpI09uQlNtMjdKPCVxM2ZNVV5jJV4qRnFvNEIjTU5gZFAsL0wzY3BTNidFS2JjQz5gTSRCQgotXDJzcTYjOWY8dEU8Ui4pLGszRV0sLEMmWSNkQHReL0MvNzVcQjY9RFcwdV5VOjYlLj8uOW8/JDZSZGQjaz9WJlsKLVlpX0RwJyZRUDcwZl5VSDViNCtUWm4hO3EzIVc6NFJTTEElSE9TbSNZXCJDRyIpQyhwNztZSkgxaWUlUGxdaiVPCi0+bS5aNm0nTWsiPURIKWhIbz8xUGcvbj4nP3BXMWwubiEocV8jUydXWTNjOS0tWHVuZzB1LzJfMWxFRGEvOTFjZQotOydWbWVJKEMmQUdFMmJwLjQnWUVPT01BRFQ0Zj5PTC0tODouJk1GRzlBckRwT100WnNrMjRJWkQwcihcMTlGJGAKLSY2PW0vOXNFLjUicWxhXSwtV3NlYjFWTjI6aCg6TCk4SjU6Li0zb0BAJEFcJC9VanJxLk1FQGkkYyxlXkhfQG1nCi1KdFFGVChISGFGO041KWRLSihTQytyYW5ZbGpzPF8yS2UsJDZqSTs+T1RMQT9KRTpVTiI5SWwhLy8/UFxmMnJKNwotUDYhLnM7XSZ0cCElSkZkUFdbLEtbNFB1UF5dZDgmMkAhKCUxUSJULlE3I29QKlQ1LV4tR3NnZW81LyI/OmlBQTEKLTVVbzxVUzI8dEYpSS8zLVU2TEIkJ0YzPS5cXXBAOT09SFJHYiVHJU9fXnFmXW51c1NLLWJEIm1tLXQ4LiZBQ24iCi0/VERhXDZqNkhbMS5zQ2BIVTUkKlA5PkIpXSRUTWgpVU5BZztMLUYzaWVeJk41VW06RD1QJlxIMWVTMihlPixNRgotUzpaR2lHQ3A1NSVXKnQzYW5GW1UtMmQ/ZEBKIzdNQnMvb21bLyNsPVhUIkZEIzwoXjtKSUQnZFNQOXVjMTtoNGgKLVdtYVdxYnR1UjMtYlRrXFBxWTxbR0pAIlRNPyIlViglL0UuXmomQytiPDU2cEtMUU1gSC9nQEFNSWlUTlQ2J1JHCi1mPz9SO0xfW29WK05HSXBfPj9KJm1UNVJdSkhvJ101RTgwP1ElaXVDUm42ZW1HcCsobl1YXF9VVWdbK1tALDFQWwotIWxaRXFTR1NKdD9rPEhPJnA7JT9STEdrITEiNGZoVipSP2s3PlFVWGRtLy9tZUtnWGlmJWNfS1ZmdCI0VVMzb2QKLVNrWHJ0UFJRdCYuJm05SVdEdT5PbCknX0pYJmliQGJ0NSQ1LTAvNnJlJmwoUy5Sa0FUJSguY3NwNnNldUdhOG47Ci1EW15JR15eJE9UTDctUmsiWj0jLGdPUyZlNjFuPV8oVUMnc15mPmFIbSE/QmRmZV0yV2dzMnE7OUVlaERyXzhtXAotSjFnQkRebUFBPD91VCRJWURydXRwYzRtUlMwYGppOiRLK3ByJVdzLG8kNEg8IUxcSkUjaV8+S01fVEIvX1xJPzEKLSFtRkF1WU5bcGExTy8wQF5nVDJyXC4nUSd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5MDYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xOTA3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTEyIDAgUiAKLS9SZXNvdXJjZXMgMTkxMSAwIFIgCi0vQ29udGVudHMgMTkxMCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5MDkgMCBSIF0gCi0+PiAKLWVuZG9iagotMTkwOCAwIG9iagotPDwgCi0vRCBbIDE5MDcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTA5IDAgb2JqCi08PCAKLS9QIDE5MDcgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxOTA0IDAgUiAKLS9OIDE5MTUgMCBSIAotPj4gCi1lbmRvYmoKLTE5MTAgMCBvYmoKLTw8IC9MZW5ndGggMjE2NSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkIUBwVEB0N1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kpWWdZbjVSWnAkbTBjQ0tGUzs/Uk4/bk46OkFlUypeWyFabU5SRVl0JiE7N05zXDNuNkVPZERCMwotMil1T0xMSnNLSWg7RydgSCFXNExRN1tJdSsrPW9VVFcyYFY0WDJAPydiLyYvbU91P1guKj0uRyFvUXJmJXI2Z1sKLW5pWTc6JyovOChVXDRvLFdOM1B0NicvX2EjPCUyP2ZKWDMhKiNRSSU2Ul5lSTZuZiNpIz1FSW86Y15ZVDVmdGRdCi1EWSs7PU04T1hyInEtIU9iOUZUbUE8N1tlaXIhcD84WztUN1w0NGxdSHAnUWIiRmAjRjEpcTVYIyNdLVdYXCg/JgotQi1nNyMnWl9yTTV0bCVuN2UrXUcxLTNedVsxQHAnWWs5cm1jRVFzLCU+LShSNEFTbzpqIiZFWGJJOSVMWkQ/Rk4KLV1sLmBZJUJgQDIuL1UsVmxKUjkobUxXaWMrdCxjL01NKSM0OV1pSCtMcGUhUCw/V0FRJS1rVm4zMmYxXWYzJk43Ci04RTtmQi1yPGVdTC1cKUUyRSReMGxUZy5Ka2JvZFYvZGZUOFRmITpQTUJdbThBZkhIP1lcXi5uTSJPZHU9N3VwVgotJ1NaV1Y4aT1DTyU7L2txcEJAMyxmTictTEBvKzxLbVBLcl9EPVRIW1RgRTp0TlBjVXNebD83JCVRaEhuKVI5bl8KLUs3KjgyP2MuN2Qycj00WDVUTnVjPipAZW1NXTdMTFxEYCU2KU1UaHRdJnUqYU9KblAjIUkudCQlNig1LjRNVytaCi1kbWthWS9gbmZqbi49Z2FrNWRoQCNlaSR0N3AiPlFXZV8zWCFMQTM9ImlFYHBUUzBdJ01aNltiL3MldSo9blpTZQotIlk3OW4pZUhSKVBXRmhCaTZGPWssN20tZ1cuVUNFSEVcNHAiYWlsQldgQ25hMjoxI19ZUUpSdEE2RHJENDA3VWoKLW0uNFlHQG4oPT5MQU4lNyYtdGw+ZldFdCxwY3Bub3BgTWo9blJIMk5ON2oqbjNpPy4yUSlATGFKV09NXGdOPmxdCi1EcWxMKWEpWmg4KEcpXUdGdFMmKllpQ2dDKiFJL1o1Y1o4IiVla2ZLIjFoTzdYKCoiKF8uR18kK2xOVmgtMkQnLwotR2QtJGNOZTwsJ010RUNtUzsoUD1ROXFPKUNuJGsvXGFHQkBRMDA6amtCa2MnQl4mc2ZSWUdfMWhsKC9yQD8oOEAKLTpnRik/R1wlOUFoNm1PbyVVRlpXMDVVYTIoU1pXdSlaYjppQ1NmWjE1cDU9bytMMz5HVHIjNCJkK0o/SyxVTnRzCi1mblRkWW5lXjdQVUhVO3RZcltNcDYzcDJaIyU2KjovWiNzSVB0Mj9hQDlxVE89KWMkO0V0aTU6VjxpZWUnXis/bQotXWw+UlE9LDAraShnJT5gRixnLlJYM2ZBTSVjYkVOTXVZZGRvaltBcGRSWFMnUGknMnFhQmkuYzJDXzVWKElKRUUKLWZISFhlRlBvIV4iK28+S2I/SzVwIUwsXE46cmA4TEM0UVEyQ2ExW1VDMmkuRGxOQD8sVzNVWCpiJFVWaD9pZCZjCi0hV1tVYithYyMqIlgqPWFGM2A/RFowRyszUHFBXEtdJUJQbTBVPXRzJlY6IjtIOiYqQTxfZEI0Xi9TbmJqNzpiVgotNWlEaGcmQUIsJWAyRyZdRTVANzgvc0RLZD9PWk0oJmRNITckV1NzWlFAT0sxYitRdF1Sbj9qVDcyPFw1YDhOQk4KLUtZZS1SJk1Da3VPVDZbcGlYVVhDL15EX1cqS2AkdUpRIzgxIV5QUiFrL11FTEYqLWgnSmxiLFNqUSdmS3JiKlNYCi1ePTw1ZW00UVRDMW01RUoxMFA1M1Q+NXQzY2JmJzktZSxBK2xiWmhZKGYkSVtiWls3dFsuT1dWS1olKVpyLVBIYAotT0FNaGEzVHQtZThbOidHWFMiakRQbzE+QThxI0FXNzk4TVFNUmQzPlckL0NlRWs3YDJFWG8vVnAtY3MuQzxSVVMKLT06NUZVIWVTJEVAQTk/OSxZQiY9QGpHM05vQyUsTmBHUT5YPFk9Um5LNyEiLV5wbDMoXTlcJz1XdEFHbzJvKkVOCi05S01yK0E/P2wtMjBwOFtGOjtMa2hCbDxqcHFQR2giIypNJlxOP2dUKTFfZDElTFVAVUwqXi84WD81J106YCdgSAotQCxDQ04vPlklbmlDam4vQmJRLTdAO25vXzdTKVFtcUcmYz4uT1A5PlpBN0xfazFFNzVWImpAM10sKGg2V3QmRTUKLW9fQC44bSE2RTRFIjVGOVg6cy0uJGtOYVdKS1RNYy8pIl9bOmtNJTooUU1JY2E6aDxDL0MvMkk4bnBWWj9OOm0iCi1qSSdzJDA7WE1yMG5cJENUPTtFJT9SXHVlayxjUj8oXFtDVjNCS0I6KGdnJVlEWipHNWNKMSd1cihcJmpITm84KgotS0o1XFskaG5pTEpqQWZBNWxgJnIkJVhzNFV0RCo9IiU6IW9mKllxWmtDPFpOUTY5XUB+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5MTEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xOTEyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTkwNyAwIFIgMTkxMyAwIFIgMTkxOCAwIFIgMTkyMyAwIFIgMTkyOSAwIFIgMTkzOSAwIFIgMTk0NCAwIFIgMTk1MiAwIFIgCi0xOTYwIDAgUiAxOTY1IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxOTc1IDAgUiAKLT4+IAotZW5kb2JqCi0xOTEzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTEyIDAgUiAKLS9SZXNvdXJjZXMgMTkxNyAwIFIgCi0vQ29udGVudHMgMTkxNiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5MTUgMCBSIF0gCi0+PiAKLWVuZG9iagotMTkxNCAwIG9iagotPDwgCi0vRCBbIDE5MTMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTE1IDAgb2JqCi08PCAKLS9QIDE5MTMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxOTA5IDAgUiAKLS9OIDE5MjAgMCBSIAotPj4gCi1lbmRvYmoKLTE5MTYgMCBvYmoKLTw8IC9MZW5ndGggMTg0OSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkIUFSNVMhN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kpWWdZbjVSWnAkbiVdSjRnT2tZXS0+VkkoOmIqKkUmSzw8YmspR0ohTWZUPVpxNEdYNjI7SzlGLAotP2dqUlprJlZ1dTVVOEguOlZGcio2c0ZwU0lWTnEsbiRxbFg0TXJTXTJAUT83a2syV21IZkRPZjk9Ky1kMDkzKnEKLTRnImpaPDE6RS9dRDwoJ2luTVdJTl5IQF8xZExNPmgiVjhdQSFbIkdjY1JnRl9fL0lyJEd1NTRBSyFvSWUuVz1PCi1fXk9xK19yRTkob1knOmhfRFZuIS81aTZvWWRBSDtdNUh0a25cYF1dZC1zPTUzOGpUclAlOismN1BZQVchbDQ8WAotODJybjRgNHVwTkYmWlc3OU1sM2cxO1BiL2RrPTFuYCtNMihpPDcrJDVmM0hDcytII3RqPitNPGVEMEI4MGJkMkYKLTo6KTtWNmpyV2RwXzZNPTY2Nm9OOjVicFVLT0ZrWDE5ak1cNXRULWliLXNgdUs7ZGtJYVEkY0QwVE0qImF1UVU9Ci1nYEk/N0B0PFchTip1ZDc7TjFiVjshcUhTOVxXNFAmRF4vOU4+M1lHL1csY1QiX2BpPixkUjBwJm1DRE5mcyIyQgotNFonVUwtcDpkVi9aaXFfWmNtT2MlKVs+VFhaTWNsZ0hOTW9tMkooQTJMVmViPydiWXI0LGo+OSNqdDxnNDRBO2MKLStUT2hNS0UyWHUwOHVwXi00c0MoclM4PSY9QEMsXmA2Xz5sJi1vXnRdXlREaV1bbylxIig4dSolTik0VEdpIVY2Ci1gP1JxYyguL2Q1RUswQDpBITJqSW5CLi1yWig4VGg6NFxeNTs7OzBDY2suaVNKRShVb1EpYHI0Y0NZLDQ8Ljl0MAotOlVBVyEySmRNST5ldSldVTl1amJiNiInOUwrI1k8S0hWYkI1VCw7Qlw2S3NXYiNrVScvTGNLWms2OnNGVW1fWyIKLTVkLGR0ajFJXT4lW2E6dF8yPGU9aVlbQE8odGNgZFFBVHUiJStnbGQzXFZlITxsSypxXmVsNmA4ZUJXMSUzb2k7Ci0mLlokM19AUjJfOktKY28hWjQwV0Z0P1MwNlspS3A1VmNCMlxFRGpvNmEnIV1HZFROWT1wK3BKamsjMjFrYm9kUgotblIsZkc9LD9hRks7TiRwJmh1cEVKQU89RVdvJThIJUguPEVjRFRMZTYuJ2U1JjNxaU8qR2FGTDZbUUBqbV1IOiUKLTJgZ1VQTS0sISdjbjVCXT5dbFI4MzxoYUEyaEktIUZbTjQlPzl1WEQsTF0hQzZaXSNFVSExRTBGRzA9Plg0VmJwCi1FQDJOZyYuMENyQmxZTS5xbmEwQCFNNV9JJSxuRUxMKm9gKGZXMWZ1OjhvQnUjX3FYIyohJi9PV1NiO0ZhUV81OwotN3NOPzNncTs3MidUMF5XPzZRVHEjQkVpVFQkLGs7LU5VXTxfaGQqbjMldWc2amhERGojJzgoSDBJRWZRLGVASDQKLUheME5bNClgTm4wUCwuX18jcnREVHN1ZTJlOmRfVk1tbXBEJjMyajFYS0c0JVNXNSplP1J1Sk9fM1dTPz1OYWlYCi04XV8pUixVQStVLmQ3X0Ihbk9rV0VCW0luRSVRZiVCVzZYPClbdC1oMj9vTTZCam9kWzAjPikrIzRVPWQpMD8wWQotbEkmTCI6cycwXjs9XE4wWGNBdCo8PC0vSCYtYFNMWWFvcHJUdS41NzQpTGl1OTRRYjIoMVUkMSRtSmlZSCM0LkcKLS80a3UlXUpEPCQ4alhsIi8iQkAuU3FlUiRaLkRwbyRaaFJWIz0tL0JWZGdyZy9XUCtGWyVmaEZudSEhTGBkaztVCi0rOitnQkRATERpbVEwI1QoWmEqQFQpa0BQWz1tRiJCSVZTVzFZLW9wYW10T2w2TzA3NSFPVTJyYnM8Y1YwS1JeKwotNTE7cVM+VDdabC5GI3I1MlxJTi1OMTUwNFZfUSEkQit0XFxQSDA7VTxgX090REw3Xzg6ZllsbiZPMzJNOlN1PTIKLSVgK0FmNyhCVENpbyJhNV5rKzcsXEFpSlwqK3BgdVV1XTZcZ3UwTkhlLSlmWiU+SG4+Wz1OQSsvI2I1R0pDNEt+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5MTcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTkxOCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTkxMiAwIFIgCi0vUmVzb3VyY2VzIDE5MjIgMCBSIAotL0NvbnRlbnRzIDE5MjEgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxOTIwIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE5MTkgMCBvYmoKLTw8IAotL0QgWyAxOTE4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTkyMCAwIG9iagotPDwgCi0vUCAxOTE4IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTkxNSAwIFIgCi0vTiAxOTI2IDAgUiAKLT4+IAotZW5kb2JqCi0xOTIxIDAgb2JqCi08PCAvTGVuZ3RoIDIyMzUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCFCM2tlIzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtJKVlnWW41UlpwJG4lXUo0Z09rWV0tPlZJKDpiKipJalRMcD51U0hLdC1mc28xSzA5bSM6O15sZlMKLWs3QHRoVUc5Tmo6YTZNX3IrNlY5UUVWTSNCTVAtWy48TUw3LS9pVjApKmooSkMraz5DSjgxKCZARGZ0XSRmY2lzCi0uS3JERVh0Xz1sQCl0IVtLMVAmVl5NYjVbJmomQyhjbzZyWi1zZVY6VUJwS00lJjptTVdzSjZhRSRNUDBOJGV0RAotY0dXbypOPWM5ZyZcQ0UnYGljOHVDYWJhamQ2cHRNN0Y/ZCIpRmhpbUVZalAsXnFyIWkmVjAhW2FNVklbJz8pXDIKLT44UDo3WEQ4X0hqLV02a044aldiMWxQPzlOdWMqXEpkVVBKNiZJNExUYTdxUiYyaVtVVy9pTVpMZW9BP09iP1VrCi0lWUk9LTFVX29ha25CIzQ+cFQzazgyP1I7TCsjYXM6bmljTUNgJzdpWVxeL19ra2dxaitcQUgvLnVhWCk/azxlLQotVzhyWDkyJGRZKjhHJyM6MnEnQE9fRTxKYD9wSD1oQEMqVFglKVtMOjNLOWQ+ZmVFcz1RJE9EUiIqaGRUJVciLFEKLW05NnFlUFZXXm1TKk9BNzYmaUIwTkFQPWw4JyVHbW03QVwjT1FbQ25jaVA5aTBWUUdvV1wkKWk6b3BeM2xQNDloCi0kdUFqTmZYMDpjbGpnKytZYSpaKltBLk1zbzZocXMjP1RzYlVwcS04KHVlQCUzKy9cPllBOUxAXF4jaSg3MVI0XQotTD1NOjhhUVhqMUsmQkpxNnBYWjVfbSwuczVTWGBKTmVmTipfLDBONyVca0deJ1NIU0JpOHJsLi0zZm9xZWcnTXIKLSVLWUFTJ1BqXXFOXV8sVTomYGcsL3M9ZEYiOUlocyg1TE1HX0Q1c1g3SzNEKFg1SGY6REVGSFUoNiJgVWpaIVxPCi1WWGwqKEs9dSYpa00tJilcSVArJW9yNzVmXSdbNElAN0s0ZEQmWD4/MUtlLVRlQV1WIXA2JU9sSz8hMCtvKVtobwotV1VqPD1xUixmNSMzY3M1Z2YhKEBGKCc3IiFzSmNUZlVoZkxrREB1SSpINkdFTjtRSGUoOTBPLDNeMm5aQStEOz4KLVxyXWU+S3BtOD5XOVNiOFE1IkZoMDI9N3A1NXBkK0ZuKE4mZyQ1LylMImlLPko6Njk5Pm1JN1gqYElONGNRT1JMCi0jT15iXmUnTihlImpqJzNKRyNMPF0qdGs4XnEhOWgqaFAyTUgtZSM+XDBzJyJpJXI4aGNYQSliIyMlQmEmUTJTYwotJSNvbG4+Y08mdUxhRSpZbEBoSyQlUkg5NiJYKFNwIVdfTF06PjMqJUBAMCoxaTVWUWQmVmklSTIuUXBsbD83ZGMKLSs9TidkYD8uR0tAKzo5WyVJalN1L0FQaixRK0o1KiM1bURGMFAiR3NTMS9CdEtKSi87ZCYxQSYlIylMTChlMTdOCi1YcWZaXUE+UCpbIW9wJHJNNihMc181OTFZR2lwKT5QQzxcXHIzRGpeRWJrYmpaQVwrXD0jLiZrOV07V208ZTZMTwotV0dwO3RpW2RUV2ssYWlOZV9bcjpsTFUzcGU/LHUjJWBWckk9c3EuajRLMFZVJUAtTSI5TDZsV1w4XkI6KC0yLiEKLWtAY2VKMFteZmFbJzJva1I+KG9USSk+dSRAUilAJ0pLU1E2JTE8Z1JQRVIrKipjUihGSkgwN1M5Pz4jT1EkLnBvCi0xVz4xOThSciZbbDU2RWtcUGFxPzQwK1QnMFRPTGlAO0VGNVJeWWpGVUVoMms1aUNnWD1USjo5YVphP1daOWxVTAotPm1vXlpCZSJtOyYyXzg0TV43NCclZGs7dCsmTGNNTyc4TGVVZmk0I2staSo6YisiXylMMFs8JWojOWFuOk5WL0oKLUV0ZCI0KG1bVDA+XVNPQGFuOz5VQFI1VlBBZk5uKUFEWGAxISwjM01ANW5KTGRoZFNCcUdJc1JBPnMuayNRb1dBCi09czsiJmArW2tOPTZXOlBNTGUiL1YkJzVeM1JULmZUSFBKQzNsZkNjXC10WyUxO25HLClKKiNeLnI3czNlWSdmOAotLXUrMGEsWTNUZTBQKSdaSEUwJmJgIzBPZDBRZl5QPj9xVShFdWhnPkxvMWtpUHIpS19lUU9hPmwvXSZXOTtaM04KLSJESCdzPjNNSDJTMUIyUUMoNE46UVRqWlpOaVJIaioucUhUTWpDKU1jY01xYTtJKFwzW10xc11lNnUyYls4SmtyCi1FZDNAUlAuZSFVRWslRltFSkh1IyhtYzUjWD5DLToxNGw9RU1NTyNgYmVAbCExYjlTSCtFXmBXMHNzK1w2c0BEVwotPF80czcmWkklOSpFdDNBTz9vTk8yREBjMSlwcmhHTElMMig+TzsuPjI+XSE4bUs7QlAldDVpdDdoL3QlNi9dQloKLSswWnU9XitHPDhLKClfRiFdPDYtRUcsbl44O19TQ1gpTkVdWDsoZzcvSGQkX2s/VXFlMHFOV3JNLGhdWyRoRygsCi0jPCR1KD11XkNScSNELiRecllYa09bc2xfVTQ1NCYicU9xKDdXU2ZuM1wtczAkbGlFOiFNZmh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5MjIgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xOTIzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTEyIDAgUiAKLS9SZXNvdXJjZXMgMTkyOCAwIFIgCi0vQ29udGVudHMgMTkyNyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5MjYgMCBSIF0gCi0+PiAKLWVuZG9iagotMTkyNCAwIG9iagotPDwgCi0vRCBbIDE5MjMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTI1IDAgb2JqCi08PCAKLS9EIFsgMTkyMyAwIFIgL1hZWiBudWxsIDc4NyBudWxsIF0gCi0+PiAKLWVuZG9iagotMTkyNiAwIG9iagotPDwgCi0vUCAxOTIzIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTkyMCAwIFIgCi0vTiAxOTM1IDAgUiAKLT4+IAotZW5kb2JqCi0xOTI3IDAgb2JqCi08PCAvTGVuZ3RoIDIxNTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCFCak0iJTdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtJKVlnWW41UlpwJG4lXUo0Z09rWV0tPyNKYmgtNmUhRzwnWUlaU0lWUEsoclRIYjJrPFtgNk1cLksKLTZvZ1M7IzJzN2pmT1ppWiJicDQuRSlZWmBxIyVqSTA7bUNwTl5IQF8xZDReLmFTUTNYSmZZXTIrZDx0R1ZRUWxwCi0iWVMmXUJhX2NZNVlERV5pK1QmKC1EPlpqJi1zTVJrVjA4bSE5UTUiVUY4QWQlJzlxQTNYbFRcPF1VXUsiREpZWgotTmw1MF9OZTxHWTB0VTJ0aT1EZlouKUlfSk9kcC9BLSNyLmwoQ3RKXChgLEtaWk08XUdVVGlVS1s6PTYnMz1fKksKLShyWlVZOnRAQ18vM00zPDlkP21aMkBjSzRsanVkbm0jYG5dY0VQYlAtZE8mai5EOD06Zko8XHA+aF84NlBIW3NnCi1jVlhpQCVPaShHWForS1JsUC4/NF9hTW0wOXA8Nl05JSRaKXFXcGJTKkFrYHAhclc/YyJWYGcrNzZxUEw5Km5ZRwotTWxUTVQ2VCJjdDdLXlRPJ05eUW07YG4sO2ovWi1AQ2BSbyo0Sk9LXjZCJjk3JzJbKk05PENmUmVcJmFbIjprVVIKLUBGUz8uOkAtWkMkaEVqTmNVRmcjXXFbajktLDonKyNTcEg6Ql8+UVcyOitYLDtVMkE/PUAhWlhYVXVeRDVna3FWCi1AMCJlPGE5b2kwKlI0YitfXFJuLTBdLmMtLDVxZ1hnUFotI1olYVohLChxKmZXJ0luZytnPmRaTU1VaU9sJihnaAotNWUmY0AlUy5CQCtkODUhWGBAQy8tVXVlKyU/Wz84WVpyK08pKU5IZlxxOy1SMzxeUl5FImlfZCtPVz4/X10jZmwKLSRyTTBqMTk1RTNZbktQN0RNXWMzOzlicWtOZyc3YSdoQktDWTlDdXVZLS5jYDklXy1BJG1WM2UzSkdiV091RU9nCi1rYm9kWytpO01CK1MqN0svTGw8ZVMvO0c/LCVfJkUmWi1NTi1gZjtyKEdULkZaKlZDOEImc2FyT2BvPXFhImNGaAotYEdxPGtPTmpzV0coMHFcbkVyXUwrY3MiKl4xblVhV09wNjNoYjVmcFksSThjS0VISkQqRzQsUlopVlFwM3JoMSEKLSIoOmA9blM8cWspNkRlUCxNXCVvVS1AYXAnJTFLbTovRD44USYnXC5gTjpnYz9VYlQqZz5HNDpjakQqYE4rSiE2Ci1KQXJHUGwkczVmYys6VFFWVnIjazIuPDMqNEdPJkVvVG87OiUqNStZImk8LyxPKl4oW1g+JUpHIz40XFVDWicyaAotK1FqPSEyI0cqVkU9PzorXl11NyJyc0hoWCVrbW0sKGNFTiVoMmtUTlhIZDYhYS5hRSc7ZCE/NkNjJWJMa2guKiIKLUVlQTxTX0x1UzBbJFxKXSUnR0dpW0otb15odUlKSm1tWj4iN0NsMGRLMlJXcEAzUkc5RnJBMipEW10/bzMmaGBcCi0pXkMvXy0iLSFRJ1UrKDdjNkZccmk0dTpEMFE6aEdNOVMnRUAtSj4kaSNJQW9Acik7UzI/bEZdKU81Piw6Qz1gRwotNj1hY0tPX0IvRyNeJDxEZS9qcSlrcmk4U3FGRHQ2W2IkLysuMV5IdU4vIVBRKV1PQClOWTBARSpiMyJbKiExVG0KLSEwVSteTSpNcUVHVWEpcG9JZDpWV1ojMzJITl1NOyFlXGpHNm1XSkBOOV9vVlooblBxKmdlM1NkYlw2UlY/NFN0Ci1tKkpOL0RLMkU1KEUwI0lETz1rIi9xT0QyNjcwcSVTST8+SjhdOlVxZiooSCthTE11LUMkLldsJypcU0lKMHRRcgotYGYoPzc/QjVTdVtFa2lIM2JGP1FLSjY6MzppSloqQiIwJU8hT3QiPS5DJ2VkVW1AMldFZGwtMGA1IS9dKFM8NU8KLURHYkpVOTJfM2VURV5eKlVTLExqVlxLSmBGQldjYiJvUEAiMTxRUklLcWw5XilVak0rLjNjaG0pbW0lW0V1Q0InCi1UcipQZF5wQChPLE5IS0RkSmclNyZ1P19uTGJdL1dmXUcyLigzRTw9LSQ9dVwiPSdeaSRgL1xjP2BjWiowSm1rWQotOmdxLURUW1hZVzBOJjtoVEw1ND1OJWghdUBSP20/RWV1NFg1LFlYISVOZEFdIy9pTl8sTi05VSgvOGhHJyYmVS4KLTNBWEUzISYkZz9aa3AuXl9CK2JfR20zOzMsTU90bSZgKF4qN25daCRYSDZtI183MjIuOTdeKjtSLEFmS1ctQUteCi1WLkE7WD5BSTwyWVlDRzlTRD9oV0A2by0sJWhXQEhMRzMkSmkzNykpaUBsKSdIXXJMPClDZicuWW9RLCxhcjxcUgotRSI3KE1lXWBxV0ZLTGg4XSRCSSloNzgmYzYkc0gmXnNqMUpiTVJcY1NNW0tCSlMyJWZVcHIqOW5AaHVQa01MVnIKLUZnJ1dSXTJzJVIjNj09UyRsMCNbZkxsQEk3JEROWEM7SWIoTnMkPjAjIWJFfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTI4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE5MjkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5MTIgMCBSIAotL1Jlc291cmNlcyAxOTM4IDAgUiAKLS9Db250ZW50cyAxOTM3IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTkzNSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xOTMwIDAgb2JqCi08PCAKLS9EIFsgMTkyOSAwIFIgL1hZWiBudWxsIDc1MSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTkzMSAwIG9iagotPDwgCi0vRCBbIDE5MjkgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTMyIDAgb2JqCi08PCAKLS9EIFsgMTkyOSAwIFIgL1hZWiBudWxsIDc5NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTkzMyAwIG9iagotPDwgCi0vRCBbIDE5MjkgMCBSIC9YWVogbnVsbCA3MzYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5MzQgMCBvYmoKLTw8IAotL0QgWyAxOTI5IDAgUiAvWFlaIG51bGwgNjcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTM1IDAgb2JqCi08PCAKLS9QIDE5MjkgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxOTI2IDAgUiAKLS9OIDE5NDEgMCBSIAotPj4gCi1lbmRvYmoKLTE5MzYgMCBvYmoKLTw8IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvTmFtZSAvSW0xMyAvV2lkdGggNTEzIC9IZWlnaHQgNTQ5IAotL0JpdHNQZXJDb21wb25lbnQgOCAvQ29sb3JTcGFjZSAyOTkgMCBSIC9JbnRlcnBvbGF0ZSB0cnVlIC9MZW5ndGggMTAxNDMgCi0vRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUozVnNnMyRdN0sjRD5FUDpxMSRvKj1tcm9AU28rXDxcNSxIN1VvPCpqRTxbLkxhXzA/Vz9kZCgtXjc1NztScD5ICi0+cV9SPUFsQ15jZW5tQDk6MW1NOWpTIiFkVE1UNF09O1wlJzgjMCRzPDRaWCFTUFExYEMvbTxrPGlvSCk8YmteSAotamBcPUVZWlBeQjQhZEBRIWkmbjg8a0RxT2gvQmYuREhBb3JldG0jQV45OlZJV2lsO01eYWUzTV1JIkYoTFchWUEKLT1NLzYpKktTOVBFYGtOJSlYM08yQW9oK2ZrJyZ0T14+TnJpND4jUkE4bGElZWc6XyssZmBJcjgqa08iaDFNYS9LCi1ES2YqXzlXamVcYkEoQig0c1QpZFVzSlVXPmVYaTAwdClTdUg5NDxdNlo1Wl1HJ2ROL2snbS5WaWk7ZCRIb0BGXQotX1coQF9xbkhkUWg2Y0dFLjFlXzYnQWBFXERTNylVPHJTITddRlJZb1VIPlwyJTBPRVNpZzBDJE5nKE86Xz0ibXEKLSJOJDglL0MtRUgkaTlGbVk8Mm1ZXEY3WDEmWyFmdTlcW0NHLFpQU1xPNSNXbVdHVmVHJSk+WGEwLHFxRGI3cy8sCi0wOGxrLDgkOWRRK2lvZWBeOy5YJy8zOVdIYzZQYW04ZVIjaCc+YSskSTRFQjtiZD09alolQTVZMFRpLnMhX0JYSwotYmxZcUlDYHMpKjFLJ0pvYzRjLCowZyU2OiNrTFc9O2FlQWBFbnBVWFxxaSwpZztqcSwsc1k8P01jMmRcbDpmIi0KLTJsVGA8M0R1KkIuYS04aWJyIUpRbUlXQkY7KUplTzs6TGpcaCluWmU5aVkzRFEiJzU0ZWVPMFU9azhrP0QtUFUsCi1jI209RFEwaiEsZkc0cE1ARyRrdE5GVVdXOXBLO0NRPkxsLj1yKipvQyJlbFRYX1paLGMqX0RfXl00Q1E+U2RqZwotRVNRbTRjI19cSD8rYmFFRz42bjtoQTsxNUgvPWpgZzQucWVwJTxhalFnT2EkaSJ1cS1KYCluSiU+M1VWOikvS0EKLVF1M3EiaVlbXCVNO2pvKi9Vbm1FXiU3MEJSLW0rdWo7QUZyT2xWb185cD1UUmBQN0FuR3QpKStqcicxalJIQnA/Ci1EM1gnYERKdSovUkk1S3FrU2Fwa1E8ZnAwS3FtbE46NmhbP1IxPihPbCsybk9XVG9xVFEpRV9IQiEmMyRSZFJrbQotaWdSa0dZXF1kXWMqUWBqKDYsXDxScjcma2sxYHFFXDhJZT1tQ1ZeR2NDcW1oUypwNmlobiwxU15pNWVzJUM+UC8KLTU4RDAtUls0XS1uZjNdOlMrNkVLL14qYChHNGlPaTRSWUdaaVZdbEZkSWB0XXE5YTw/Oks+Vl0qRkUrKG5RZydBCi1nJDFbQUJubD1lXk5IPT5JR1BSa3BZSEMqVUEuaExKYD9KQ09wVTQtU2ovWStqTichSko5ZyJEWGNLLjNeSkUsQAotSWIyOVhIPSRXUG4sL1EpJmIxNDs/ZCYtMjR0ImFKcFYxQSZkLCxxK1lPVlVBYzNNMmJoT2o8OlRFPjdGWTxpMygKLShfIlwzSFJqMCEqWDRfI0QjTjZiIitkW05yQk9JNiJsUCUmSmFkK1k1MCw7XEAwPUIhbjpoUTtHWGknSzZgdSszCi1WQTszcDxzckdoU3FaW1IpRURKRCU6Ui82TEBGPUgzLCFMSEBLVig3bkhMMHJCU1IxLzZaLl9NLTcxV2FRUDNoXAotQm5BJFYuKWY2YSdCNkIlRy1PZG83RnB1RSw0bztXMG5NLEw9LC5TOjFoZ2QyT3U1X1tAMmdHNUVJJ0A2M0NkMlwKLSMsQVBOQnAkN3E4KEsxNCxQNlA3ZEYoPE88b1k+SzFsNWciIV8jWjNwRUNsKU9eckpmMVZLMiYiWEtqI0lFViVRCi1hYG88XSwnNmUyRWRAZ1pSMjc5PHIiPjZUQy9abmA8PD1JTypnQDcuTCEnNCNvLUowI1BuLGNXXjpBOlY+biJEbwotUDVVUDpCRV4kTic/LT8lOW8uI01QNDMnZiwrNlhqQyE/PG8xZyd0M1JaZ25TOS9gbjFWPCRFV28zcHVWcS1RKi8KLSc8QFheSD1TdERXQitWL2hKMEMqImpaciVuZ0BXXlNyXCNROk8ySW1SXF1oLzonUTJBV1c6UTQnV1JBKCgiYzxNCi1vWT4qXXJFZilpTCxqUSJkLS0vVVUvLFpcZDknc0drWDwlLkRjMTRHM14kIW5gKGxbTipnOUtHLVVtNkclJi9vKgotTm1kKHU5SCJwLVRROFZQZHE4RE4uRWAkcVsuOXA+a2BuW2NyODs3UGxDdWRBZjI8T0JrQ045aiM+QW0nPCwuK2gKLVBaMDk4MFdKPldnQkJqMjpTKW8sPis4VjQ/Ii5Cb1teRlpeZCpsYzFDT2YyMVplImhvPlwyQ11QPyQuc2VrMyxQCi0vKnU1Vm9pZW9AOSIvNFVbPUdKPWwoNkpoSWAmMU43XjVrbl8pKDhsOS5XTC9SLlQrU1o8PVM6Q1tIOExlPDZNLwotI3BqNHIvTSlzKiVhM1A6XWtPOWJXM244cmEmMU1BNmxqNW9bU25zMzpgJXFwVyRSUCNmJ1s2VT4tcFZtS2VnKEwKLS1LODk2S1wkS0ZWalhubWstWEFnO0ZrailcVF1Zbj8hNEwtWG1scyxscVp0Pi8lbXJdIkMhJ29QKG06aWQ8NGheCi1hSFxEOkMjMnRwSGAoR2xENyNVNT9ZS0NlLj8xbFRQTEJIZWc5VE5kMj8na2lkYFRsRSFKIywoLlpzS2FGUSEhTAotcTQnbl9aJzpGMD8vLHNCL3ROXU4xUmUhayonVy4xanBHdWM6Ol1AaDloSllyamkncEFLaSI4WEMlNDknXj1eXHUKLWkwbFg6VXFSVl0oaCdeTWZCVmIrTl46XUZsOUY9TWhiS1dYciNtYUQ4RTs8VCs2c0BNREpzLzpoNV44aEVqZiVjCi0yYU5EVDgpb1RtamxYWzEwb1AsVy1aQUo3Vz9MbkdiZitEOVJyVEg+K1NoanVkT1ZZUDFUWDlxbHJ0aUxtK1wtJwotUUFDcShyYj8qYE00akplcS5OalBoVnE2WTxITCY3ZE1aT2Q9X3JZIW9YOCVMKUVKZE5dWjVCYypoVXEjTEpoYloKLTFQW1EhIzAlLT82WWNAVFVGcSJUZWlGSUZnMDUpaVMtR2s/cVAsKm5iVGlzYGhHKVYzWk90JipmODsyJVBmKClxCi0+c0hRakshUkFOVnUmXDo/IyZoRm1uVkUxUSgpQE9TWFZNMWsyIVpFWUFkaFhEWyxwYTNOJkBtRkRGJFJEIjZtKwotXTVUZ2xtUygkbmg0REw5RmNHS29tRTliST8sPFlRKEIkPGkiaTBoa0gpP3QsQzJfZEohOzVkY2BdTClAPktHc2IKLUVTZDRnTnFbdGttUHRvaVFNQSRyNj4jWywoOnMjSCFUYSJDXFQuJE9gM0dwZWZwTkotbzAtbTJGc2ZTZ1NFZW1OCi1OX1IzV08kcXFGR0ZOOmEyNT4tRllNb0RiY1cmKChlW05jYmw3ZjkyRjhmc3JYSlxETXFTVEdcWS5LNUY/WFc0UgotQSM0NVQ3bGdFMDw4PmJUW2VCLSFmQ3JXc2o7KU8jcCEvXUpISGR0Im9wYFgpcWNWXVgwLGlsYihPZz0wWDNgRkcKLTdIUm5VXmokbk5qMUhhVG5obGMqcStePTsuZUFucSVWcVgwXkNga0lbbmtHZFdtTFA/IVMiX0c/SilUJV1EK1FpCi1qbyJSZm5RbWxtQi5HUXRvNyQ9YmhUKiFNPk5YOS9ZPWs/RkNaT0Q8TT1IITFJPF40ZWRWRi0lb0BsZFtVT0NnZwotSUI/alJJR1ZALihoWCROY2IhTlA3Q0xGUDQzb28/WzZLLmknXltvPUk6aihvcWc+SlhDQVdMWT1DJnBqRFBtRG8KLTw7blEzcFRFclVEPDE/UzFpb2wscStyIiM5ci4hczF1UV1zVlhNUCUwOz1ZYk9URmRUa0ReOCElPGNraiFydSw1Ci1xRzJSaGNYLHN1LUhrWyshcTQ0NU88Rj8pYG5lbD5iQUdzVTBMbCYlPmVbPGVkVl0hPm44L0JuPm04U11tVmtfbAotbjc2YSg8c0dQL2RkVyJrJik/Kmg+ajtsYSNMRWgvJSxmaVA1bUsjR1xrPk8hbWBOTGJvYCo5aCRTXHJhJXM3dTgKLV0oJUlAZC1zcyomLCxVU1doZG4hJDFRQjxtNnAydV9ZREBJTU1jI0xjI0YxKGZhZVk+bEIjXWc5JSlnPEkoJkRXCi0jN3VeNzBhZSVbLG5VTDRDRlkuZjhrMD1dbWdlTUYla21kbU8+PHNMUGQ6ZTEnLzs+T0UxaHRgLC1oXSIldVQ7ZgotJGZxPDcqPkw7LyNaKlkwJkxlO0g3aDBBSWpIKWVCbENTTmcpXDVhLE8pUCUsWEgpZyg5YixQVEZFJjYiblZFSVgKLTcwTGpKYmJtQEpZST5Dc0pKXihEJSNxcGpjbzFYQjg6LktvJ18iJSNFT2EiYGByclpiInRdV1I6VFNaIlw+TSdtCi1pbSsiX09LLisncU9KNUMkSUxqPkQzalVuUmllaVkpcSMvJmQnayMlNkhARl1vUGRTSTBaLCVHIlNFQTZaaykkcQotWWE2TyQnK1JmUCc9Jj06MF0qbjMyI09QMiNuJkkyMGtnZnJDbThrOSp0TUwiMFRAP3UxRUxRImQ1IV1yMFcsWjUKLT1YTlhAa3FZRzxsUVs9MkU/PVhqbjUwbmlaL0dPWDtYVEYsYVYhOFFFOFlYaUteM1k0UUJEMVYmbDA8XmNSS1BICi0nRyo+T1owSzpASV00ZlIodCpJRiU9J0pra21RWVwtQlRZTCZ0XCk8VT0pcGpVMmtaMkJSTTtVaiFeJWNYRExOSAota0A2Jlg2QE9dKXBAOldKWC1GTXJLLm9lOSlBJ3FBO1lvR0RHbmsiSDBwO3RcblQ+ZkIlXy9RKCVeTUtVJT4tMVkKLVZYSDtiWkFGUHNjOFJRYXJ1Rl1EMUsjNFRhZkA5KCVrWjFhKVI6USVtK2ghN0ZYPCw2MEcjZm44OytDbidXTmUpCi0yOjoidVopXVRYLmxbZzwrcWVIRVhSZSorMUgxOyEvWClNTmtcVz8tWkNqIkszN0Q0YjotZzFJWThPNkAkQmEuKwotT01PI2JOdTdBay5dTVNkZGBpdDZHcmNPJTQ0N0NkO3FqLCJZcmFdNTUnLCo8O2I3aDRxVGxHUWlxJlF1WVJvKjsKLV9ga0RiNDddOiVjZyphOGEkKCk0M0BSZEE5OytZOGRtO0JKNklLXGQnSWM0InBBbSlNL2JDdGVkUEIuNSM1XjVFCi02ck10TjhgcFo3ITxzMSEzZmNtUSdPKTNVOSNIbGQwMlpeOjk1LWxCLVVqNzEyL2VrXlpQdExhNlI3U0tuISZTUQotJ0RFaG9Sa1pdaC4qYVtgO1g2Rlg0JUMhQy9aZHJuRjxzOk02VVspRy9KT1tKV2osNChdW3VPcjVkWlJbY3JkPmgKLVthXUApOTljMXFaXXNSVnFRVVVyOkdjJzkkUURfcUk0LGVONiN1by5FQ2doaFs0KmJrOmZELFAxdD01R2FXRTohCi02OFxXIkZXIXFyYSJiVEcyTj1sSDBLPzwuX19SPFNnPGMqUUZXVypeYVExWDMzbilaL2QlKiwlT1ghaDQhZ0FDMwotJ2lzSHJfVSZwJjlVMCpLWzxHKTxIUjpUTjptRTcmPEomZ3UvQCFfPzRnWVQhWnI5LE4lb11rRDptL1xwT3ArbjkKLSNkOTNNPGcjQ0BGYmAtUU51Iy4rU1gjQTQ6ZFsxbFNSIyU9JkctVnRGXUJXSEA5KE9Daz5ARENQcUlWXjxFbiIhCi00T11wLzBHYGlabnMuYk8/VjxtcjFNJ0lHWiElYixAP21mc0VnXjxMOkhkOEJAKnQqRzwhO15AcmxgWko9bU0+XgotJypETyI0TkRUVWE3Q1pgWSg5QmksZGlxJC9UcC5AZU9ZaytFPWFzN2VXcFNURVAhQlltOGwxLkE1SVpwZVNTSGgKLWNZKE0hP0JxRV1GYEQhX0lwJyQsJitEa2RvbmRASi1CaTpNY28sZERbUXVmcFRiWy1mI1ZhUVhGdGhZOkNKTTFACi1xOjtqLGEvKlQrZXVEY0xfbHFTNDxqK1FsXjohW1hDdC5vZkI4TDxGaikuamVEXzBwIjJHJSo9O2JRSiI+Lig8LgotRnVeXmdbb05hImdHKipQMllBdXUoSVJjNEQiJyNVZTNSZzxnTENaWEIvXDpcPG0sKStNZj9uXjtgP0w/Zi9GSFsKLScvaGNvOWJhM208J2JRUWdKWHA7QF5eZ29PaXE7TjJcUGI6Ry4xIyVGIjpVQEZbRkFGRmdCSS9sREozcloiSy11Ci1NWTRSQC9VcTY5OTZHQFVnTlIyck5PSEpwOSg6PEtAa2k3PmUmUS90Ki9pZiohOzorWkdCJUVNUG11PTVIdFxMSAotRnJhN2MsOjBjb0BvcFFVLVtnRGIzN0FdLC4hPS1fPG9YLkdnTzdHRCI3RHE2WzxtLlU+QzNCMkhNPVk/bzdYNjIKLUpUTCsvSm5tI1M8cGIxIVJ0O0NSPzVPLFdcLnFmTChyKDlEYChyVT9wTHVEVnFVQVE2RWp1QClRcXAiS08jJjlYCi1Ib0FIUVwvZy5obzEmTFI5ITQpKj0+PUg0YC5aVjhMUjclVVIiI1I0PkRGJiZMJ1ZuU1tUPmdVJWEkYmBCZkdPTQotJD07JzA9Kz02aTpgLTBoV2g1JitGYmIrcTBRR25lams0bi8rYzM/J29lZlQ5MTJnTGgvUk1TTU4qKytMPHA0QlYKLXI8Q2hnR00pOSUwTyU2RDQkVjRWSjJRKTY9S3M2dE8hT00yLV4iMihHakM/VmdLXiM+XE4oKmhwSiRJcWFjSDV1Ci1DSkE7VXBWRGssSFVXLlxQJCcvLEVKNHQ2Lj4vRktMM1daXWFyPCdaNzxUTmFJWz1KKnEnMiI+JzcyXio2YiQzXAotb1c9MDFKIUxzXklKOVJEb2gxUWssQlsmN1BGNEtgOVRwMFgvVSgsZkEsMlVdTmhwc09pSWdubU5EZlZRUj1QPD8KLVlfPy9MUUZUcUFuIyhAKVlFcWRLU0BJKXFIJm5JdGhnWTNmVCpnJ2okWFg7O0hWY1J1U3M+LmJCVDFoTU9gcmghCi03Wy8qT0goQ0FpNXNjSVxUMnNEUS88LGUkUVxdcUFMIlE5UE1KRV1fcFMnR0dUZk5uYSkoVDFtJCdSJGNVUiY8XwotYSgiZTJEYD41UU9xZVMqSCNdSjBfX2w9L0BzMVdmXDMxRUFlWF8iOFFaLmgxXFEsTldRXk86PFM5XiRPMSRORDoKLTAxaFI5NSNmNGwpSDFrcWMlYyQibkBGSVNSJylib1Y1ZWQqRjE7K0pxMWtNdFBmVSVwKS03SlBaZSkma105YlIqCi1VOkNOMVtrVV4jP0hOclNYQk5aSHFUR1wlYjpCJTM2Mj0wVmc+LSIvJCpSUCwzYSlLWTNZQT1FTyU2ZTFGam5tRgotcVRsK1AhTytPYEg/RDU1M2NnXS4nPSlaV1I5NVM/Z0ZZMyMwc2BVUlVVcTRnW2plNlA1STxMQClFUmkpcSk+XFMKLUI5UU5oN3AkRW1nRTNZZ0tyLmRrOHBhUENcLEVjTWBPKStrWVBSIipbZC1jPSsxT0NkPUJCalU+O3MoZE8tITdqCi0wNzArdF0uXjozSUIrN09adWdyJVAyZihJQj1nNkxcYmkvJjFgTC1Hb2czZFk3L0lAbF0rTV5RXSdDJ3BdRzs2SgotZ04uUmNeS2BoUV1jNlJWPUpdQW9uXD10cT4hJ3BCXUI/bF5xNklXT1dMSTIuPlJRZGJUPS51SlouT0s1cXNWQCgKLT8pQl1tXTowdFUpVVlnWSVENGRPRjtnXldaVyJgMjZdUlpxOE5cYChvLShwKSFQO1FdWUQrdTpxaXNrKjpHQ1I6Ci1gYHFLOz5YLGxnTFNBJFhgXVFnVmdjPDU2JiZCNjxbQzZnaSotOE5YTzMmQi5hTG0/KUg0bjZRTW50SFlgKkI6KwotRzM/Y1U0X0YkVG5HOVZESSZGVTJNbmJdbiU9MTBbUzxCQjVuJFJQJmJTNGozKilqMi03LmYtLFwsPSJkU0VtL2QKLVdRKEhEMS9pJiQqIT02RmtzPGdjX0hcSjc+a2MrSVgjYllCWSdcM3U+Xy5EZEdEK2MlUFprMyFHYFU8K00vKGhMCi1hMVguTzxcaURMOlU0MyRcb1k6KmgrdVE1TVQmMGtOdV1AYl05PD06OUBNMmwndGtYOHJFSGZIR2hPLFpbXSonVAotPmZGcC0jKE81L1YrQ21iPyZxLTM5P1M7U2tcdElvSTguVC1NIjA7TGIuTy5lXVlXPkIoWCwkJWxodFBDNFtqbSoKLWlSNUIwZ3AsSl0+ayt1MUpwXFFJZW03JWRkYSwsMFEsLFc0QllFYGBSQjE7NlpkIWozTmRcYWdoNWY4UDk7XThzCi1pTExoTEY8VFQ4KWxhWWlodSRjT0k+UDVCNk9sZWIrTUdiUipZVy9yaVMjPG9qI2gyPUhyMWdOXGAtMGtpZzFKOgotSShlWV9ARm9vMiJeJ2xHM1heUidrR3NLMGo4Ii88XjQjI15NcjlyNFNLN1JIUXEtP21qWkddWGcicU1KUUBuRE4KLU5USyNUMkU5O1dJWy9ZbTYwWXFEU2onKDUuaCxvJiskJjJhaU9MXF5JWGVBZyRKO2tAZT5rQkYpUGJZQ0FUXSdFCi1tPDVDXElWTyhuKyxVIVlnSE8pUF4nLWlwbGZCKT9qTFQnT3JWKWVuNG0tJklocTR1bFt0Y2tqcW9AUW9uVURHNgotTFZdVTIxI2Q0dFVcbSI+MyoyXl9oKilWJ0BUVzVMSWNMJiIuOWcuMm8pK3MnbEJoLnUwPjZ0MGwySEI5W09tRCQKLVdUZTtkYlAuOFpUMlg1W21mSyJecEtrWytFJ2BrMVlQRD8ob2o7RGNoSy8wTkdOcDNeYSYjalVhTTVOWmpZcmM2Ci1pPmxrLCswZDYiPWlxQkttL0VVYF48OmQkXj9xRTNxMFt0ZFMiOT1dSFYuWUNdXGYsLVlRK05tYlBqU1lRQD9PaQotaVcwIi5KLGctLyxUW08oS2dPYVtmUTdgOCV1RVUxRUIoPTMwYWBmVVRNWlFlQWpJVCY4RTAwTSxVUTU1T0BqI2UKLWFfW3RjMHB0RGcxQUxMZUA1akhEQitydFpVKzg5YTpNPnRwYmwxMSlVSlRxYVcyMlBBOzVNTlBQcG1GVDpKZSldCi0uRmhPO0M6QFdJYzdCXEpIczNkYVs4cHJ1bFdkJzIsSTYoX0ZrXl9dbCQ5UFhES1MmLjJZRFdyZ01aZDpYbzldKAotV0NMcnFhUTkkKUw8M25DUXRxWjAncEdsUDBZKzdmcVVMU1FCXVpkbDdbbFExYjJCWkdORDE/UFRARHVqPGtUajoKLTRnIT8oaWZmbj5tczEsTF8wK0tCMk1aOkhlKWtoRClwXT1ZM1R0UjFmI2hsUzRrLGc4XE4oK2BRYVBBM29KY1s5Ci0oSSY1YF1oOWZHREZXWCNJSExAbXFsX1hUbDFPXT0xL2lbNGByLmBQSyFiP2cvW0szaF4hSk9DaVA7SiFDbz1vbwotSyNIYFAkVlMvOl8oJVBEISgvR01wQk5FaS8kQjdHRT4wVjswZT1PZyVsTmNiS1psazdyKidFRSZMdWw6LiQ7LmQKLVRMTWU7Ql9qR1xnOTBvbE9vaWxJMUp1QT0qQExBZi9KLSJrSDomanVPdCx1Tjhab1xUXnJeVitwcGVBbE4ybk0sCi05RGxrcl9UUlZVL05BZC49VEwhaVBRblw/bzQqJUAyS01pVzQxb1QtUGdRYU45JDdIIjtzU1dpXS8vNkk2YDUjJgotS2c9IVkqLVhzJFpyNTlzNDBzaGUyOkJzRGgoREAtMidrXTVbMmhDPzE2RTsvO2wuaGU7K0Y4dGpULkdCTyxWMDcKLWVlKlU5PFJsbUVCamFYSiI8MWNJRTVeaj43XlV1bmVsL2dPMXQwMlRAXXI7TSgtUmJQPW5KaG8wJGZXU10oWDp0Ci1qZilCVDJIQSI5PjRqYj5FTlkxUU1dVVZqPy0uOGRHLS5sazNIcl4nPmkpW29DNGI0MFg1ZVA2ZkldQmxdL04oMAotSUdeQ1olOnJQaXJMWGN0PF9UXVE5J05jJydqaVE8ImJHXGFvXV0mRTxHTztpakBnVDtOXlsnLTsiYGYjO011K0YKLUNqYS1ZQSU3aDpZJFVlWDdkXSRaN1gyM24pNzRgT0JfWmAjVTEzb1JuWFMpI0ExOFI2Wk5dU0NCcHFNbjsuWXJDCi1PZl5fWlg6S1VCUUJmRlxhQjxFKVZzRFo2I2hOPjZDM2Q1OWNSKmVDN0NGR2dUJi5eTTRNJ3VCYCxUI0xdRzNaLwotXks8WypaYE1xRD0yczI9ST49RmFdR2hASjheLkpmYU4wWDUzQCIhPi1Ub0tBSFlVW0wwNjdALWVCY2xtVzMjKDIKLWEhQ24zWWhbTFg5WUQpdGwxPVZnX05PWFYtT1hSMzs1XFVCRmFdIj5bITpGOjNKP1RbRzRqI09JOSo9dEdeYzMvCi1NdTArJCVITFJGbTxiWnRoWig5UUNjdUZXWFMpKDE0KUs9IzpZR0FFNSojZ0I1PGZaIVBpIyVmXDY5Ql1yMm8rTwotXUFPU25IRT5NVzNkKl1hPVVXSyltbihycUdMbHQmQHU1SV5oPmBubktgR0gvKDFtc2VxbmExOEUqcUFOSGBHP3EKLV4uJSphK1k0Z0g3RzhRcEJHLVpiNmp0O1ZHcVZNSkIpV2phNF5oLXNuTnJEb14+W2U1TF8wQ2c3JFNvLFUpVUNuCi0mIi9NRC1dOFdRJF1LdGMhW2c0UVRQKUJIbVkub0gvQWFAQyh1Zjw6SSZzSidVLkRIYjtOKT8lOVwpMG1CWTdRLwotPCEkcSoxKm9GXDpFJjlQUUEyOlkmJm5cb1pLJUU6PjQyTVdYbl0+XWhlUSVUbmdaQXNhVktBOiQqXCprKkleSVwKLS5qbi51LVVbOm5mcTBdTi1gJlhESytXXTE3QiJgY2pgNjA/bEUtVk9qLV8/LUknL1xBcl1NRiZEXzopQ0o8P3V0Ci1dP0MjLC5cZkQ/M2o0aStiWlU+XlYrW0lCUDlPVlwzRl5TZU43NDcmLCUubURfX2U3NzVhTzlIcGVDUyppWmtlIgotLy1RPE06JEtoLUIrJk5uIkw8MHFnJCMqa2ghZSFVcUBaUyxwcjkzblBGWDtQczNLQylzKDZaWk1cNVkzOmcrX04KLS1wNUE/LWBWPmRmPXNFMWAmRE0+L3JFTjsvRDZNRzpucSEtTD0rXFVdQkJ0OlVmOjZUOWtWTD1CSSwxKkxhJjBgCi0uVV5lbz5nJyFiXjcqTWIxSlZYWTQvXDchVDJFXzFpUWM6IlctJT0hZTdnLXFsOl1GJCVMUGctcUdnR1lWLHMzJgotPi0oYDdcUTVgbD9ZUW87WVo8WTw9SzxgXD8rJC0uPGpkJ1JYKD8zSFtDV2tMMmcmMyZWMD5ZIWIuTGZkNUAoPk8KLUltWipZXmZXR2A/YFlRL0w2TEs0PUxbczNYQ1tIWyctPjR0M3MvdW9WM2Q9MTkkQ0dNJzUiPy1UODVDT2NycjliCi1AXV5yU1JvWUVyPi44Y2tYXyJcTnA4WmJMMTQ8YDlWNzIldHJuTF9lJCNIYSpeUHUyVmkqODtQRFFZOytKPnA5RAotPmUxcXFZJT5oXT0kRyY8KWw3NCNWOkRvPT9MMWdRWzxDbzVoN002KW42UiVPR2pjcjddW3JhbD9DVEpRMDRqT1MKLVFiTjVyTXJmP1BWPWhSUV9ZZGMwZm1gRE9CWVcwdVo9IlhVPT4yJypYLWF0MzxLJVpFbEQ+JCxlTChXMilMWzsuCi1WKS0hQD9EI3RnMi1vXnMqTkhRWyY3MTtVTSFLTDNgNzJPN2lnXiUsblJfbUJmWTdNdSorYV9BVkRaMldoXS0mJQotRmNQc1c0aWMyVitDbEhIT1JhXztgKiIvXGpEOio7RD4kXTxSNTY2Zj5aJGFJcmAuK2hoXmk/LEVLbWNpb1pNTi8KLTpNKFRjLHV1NShibypFOkIiWmZkRio7S0kpOTRhTTRSJkRYW1dnJThrPDE8Nz1lPjZZSiddKT02ImlDZlRsYDJKCi1kMkFxMGthX1lLRjpPPlZmcC5CQ00uJT82YGcwWGM1ViRRXjNOJHVtVEA9ZDc6RWhqUzg3LV1FTWpaKG1DOyFjTQotalAmKTJQLitFTzlmREd0TkxjSGE1OTkmaVsncXApKHRPI0lTbm4sQVk4c0IsLmguJW8rY1R1MUBFSzU5ZTZyYTQKLVIpbkQsaU9PXEhAcW0sYWNIVlxEYjFaRHFSTixVWSVYL3U5ViE0OENDdCwjZFtdUjVsYXFuVyhDLVNcZCIsaFxmCi03TjotYkpcUGBFbihVPzdQTztAcV0lazEhQlAlN2lEVlpHU0dZPmQpUGJFYypqQ0NRUzx0J2RQKFBUY2Y9MXUsMAotX0c4OCpNSltzWWFhITdsVDZvaWZFXDRsK3EwKyo6SFUhRzA/PGI7QERfVG8jYS43OSgwTEU4cypgLjNZTlVoaU4KLTVOY0Fsa24yTC5tWWRQTlR1MTl1KjE1RHI0XSVpTzJiaU0sOTw/MWpbQy45PyJiS3UkWU9aP2NmWkZeSGpMb1ZSCi1gX08yUXFYNyM+UzQmIyRyREBFVDkvPm8lUV5SUV1vPll1XTRtXnJjR1AnMWUjPC8pJU10LVxdb1dLKGNdQj0ubQotQjQubVheRGYzMUJ1QjxaKWpeMGttRyooIlEvQDZSXGdeKC5UREh0XWlxcGQrLlFKMSMsSDwzYm9SamknXj1INEYKLTdxXz90cFRkVkYwQj46Yi5aXFZyaCtvQEpiZSc0N203Ti9rcVFDZSlkMTwjLW1WMjk6aChAJVJEa1pnO10/Ym5NCi1ASTQhUz04Kl8+RUlJa2RgNGZKRm5jJlcvXWFvbl1DMl1PO3JeWighVDosNzAhPW5yRyl0ajIqYj05NFBxYDplUgotU0xeXzVqN3A8T2NiRGQxM0JNUSYsUTlmOSMucHItXi5cZEBUaGBAOnFuJFlFXlFZYGE5Rj0lU2VBJjo1XmNUKVkKLVopWVJmUGUqQC9WcGdDNjZidFlvQSU7RHQzVDohJCRZbTNqPDRmZE1SUzRJMyI8NStWT2Y2QlAyamtjJ0hdIzorCi0oUVMrI1xfSFI9WmwtSG4sWE88KDNWM3JsbDMmSz5eLSM5VE83SzIjWDRdQlRiYT0jbSgkXT5HTSxLQW4lKUx0KwotNiZKc0xCb3RhcSM3aE0sNThgSEs2KCxXUksjO2lKKG40RjhXNmkqVmc5bV8rMW42ME1sbj4iXkhhUV8lNHRCKVoKLU0wUUIwODJJOzwrXzQmMVVlOFM0OT5uYkJgNy5NZmAoPEFoOlMwVXNKLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTkzNyAwIG9iagotPDwgL0xlbmd0aCAyMjg2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQhQ0wuNCc3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZrSSlZZ1luNVJacCRuJV1KNGdPa1ldLT5WSSg6YioqRSZdWzFSVFI3NjZfLj43PjAxN2dyLUBSI2xsCi04JWFkTGpBV21KZzJRTyRgVEtUK1pmWk5tKSw2dEFKXjMyL0tyYDorIU5LazQ4ZTtKYCE2ZDojNlpDMTE1cE4vbwotckJIQTZOV3RBbDtKSVI1OGg7VihecnE+RlZDWi81JnI8NGU4aChBVl81Y108IzBMJkhPIkRmOj4zPyhqSyNGKWMKLUA2Z3QwYFBGZ2YzXGRCODVXMi9DVVZJRixqLlBLWSVjX2ZwMjZjLE5hdDxtLE9ENmljWGVOKlROOGxDcjNYdFJECi1sOF5QNWE/XzZZK2MoKE8lJDRzNTRHM2JRNVdRcyY5XHFnaEEjLkYvYzE6Mz0xK05BLWw3ZTYuUXMxZ0ZFcDJANwotJTc7XUNlVyVDOVxnZSJYSGloMD8jZFg3SU1OX2pNJ0wmNDA1dGIsYDk5LnQqYzcwQ2RVOz0nQikrS0VdR1NDRVUKLSZEOSUmX2BbMyNMZ2FDZCYuRjBza3AmdCtQa2ROUjt1ZmBNVi43L21gZW9DUzssIm9EJnRLXTk7KTBQWCMsL29ZCi0oZmxaNFNldERWXDtpRGhOI1tbLGM4S0xwQkA6OHFgXEgwUj5tTVYrKCk1QGs7RkAwWjMqb08uaEUqLSwmM3FzRgotTyE+L1lkKmtxJyYuU2VqJmk+UEY+bU5LaFcpMihLOVhHXmRCKkdgVjBiJFheWWokPD5VTGBSQz0lXzgsNCMnKW4KLWI2Xm1RMigxTHJHRmJGbWY8dXViQTU+IzpxYGo4XVNQMFQvUG1EQ0oiVHMhSSheMVsjYjlAQj9TZlwrJCtVMG5lCi1OJERxP1k6JCkhbDhFL2NvYGQrZFI1QDJMIylcOk0jM0BXMGkmRiNmbz0taFJfXmJwR1gjWm5VK2hwVFBaXkVMVwotV2pKQzBnV2wzSz1MTD9cVTRqQGhPWy8vP1RbQnEzJG0kYmBZVCJHJCVkaFdrZFtHM1gjKG87UkBzSCFNZlwnYDwKLTNEJjhVb2VPOWxLXjRMKXElQTFhbz1QYDxTZGk9Zls+OWghKENCKltHSUJfJkBfTUsicy9zVi5BZkVkJ1VpLEBNCi0vc1U8J05rPCJXMCQnPjQ1cTwnPzVmNTNOWmFMMFElSEJSQjJTaTpVXUpnOUVMPG5OOTJpWD9DPUIiY1RKWUQqTgotMnEzRmQ1XitfMG5NLW5CaFJwYVEsdVgjPiEkN0NkSlIoOG5AMEk2MFhdQlVASy8zLW5UcGJkNiE3SiUqRjkycGAKLSZbRkNXTiM4I2lDXiRzXSg4bF0yKHRlViMlSFMyLyM7bDQ8PTN0VzZARC9vTW9xXXIjZSdwVy5BL2tbUj9zYHElCi1SUzBRQSV1MlEiXiZcOjtIS2QkcCM6J2xDYV1OQmgrZTFBM09PdE1pSFFSQy5BWlJeJykjNUJWK0doTE9oamI+IQotRT1rTFcicElFOFE9KzE0P0ozW2Q3bzBpOVRaR2c3bG1gR1YuMDFQXlRGIiE9RSdzXSEmWVImLCpGUmwvNV1TN2gKLSMpUC9Gakg6RGIhMGZbY1VMXElRYVlhN1tXIjkpVERQOUY+NCVlYUopTnE+WypDRlByTW5sOC1hTTsmMmVGP0wuCi1XWGAoOUUxSlRfaSRec1NFInJUOFwtYk9WOVVcbVRCbkRGTSVULmE3M2pRJW0rSSVqOjhnS2prVFJwQ2tQJ28yNwotU0Bpc0dja0hUb2E7VFk/PVs9MTFEVS4xajExal1xUkJvIXJLPVMmbDYoMEQxWllqNnNsLGJLUyc4RShJTGM1TXAKLWtgUVVwK0l1PidQS3E7OzREOV1HUilxNnNkPFhoQUs0T25QbCpxXVtxLF1qcCwjK2EiRTxbLzdoUG1IKiQpMT5rCi1NQlcxTTUlcDI6VC86XzhkPkAkV0FxXjJXLjBjIVxnL2VRdE9rP01IV2dIWlpkbkxRTzJPUkljTScxYUUoWnRqJAotIlZjZG5LOEtndSRxY01GIUwxc11SRiwxJFNQYHF1VEs+NmBbbF0zZm5JPD07SHJXRjIqSzJacFZcUnUpPFFWSigKLS1tYGdfInE8OjYpVURqR0FTRyd1OUdeZ1xSIWV1PU48UkNaSy1FYW1YLVc8LDM8X183U0FdLzRiVT41K05RcnJqCi0uJyIqMmxyalY4L0gqPj1vR1xRJGNyQlBeLDkuKEI2VUAsOjc6aTomY15RQChMaCpENThxIV9MRlxiRk5YZ2FQVgotVGBXTm5IVFxHL1trLE0rREhvW1laV10tLkoqZVxeZzFWUCM/JGRTJC1iU3BoT1BJK289Yjo5O1FrbD5LPmdwckwKLVJuXz84RiJXLGkzdTw1YUZERjNVOTEwREFfa1Q+UGQwWUUrbjYtMzZDZmBuVztaMkE0cU5kNDZBUjJbPktkOFJCCi1PNCJCYVY1WT4vVTBxSDAmJSFBZkA+bTMyUFMvLGVaPFVQKmdfcDZJV19tSzJWSDFYY2NAUTM8KS10WmNILUdEKAotWFRdXVsnQzFCIUUwO0UjRWBYNyc2J2pHc0tgUWdIMV8lXV5FPGIhNVlhWTBUNi1wKW0iaU9nJCM5Xy5rODc2RVwKLVZTOjdWRVkiQCIhJkZnKT0+PnJyPzRvVkIhIUU8NjJoOThMIiVXW34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTkzOCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQyAvSW1hZ2VJIF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL1hPYmplY3QgPDwgL0ltMTMgMTkzNiAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotL0NvbG9yU3BhY2UgPDwgL0NTMSAyOTkgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE5MzkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5MTIgMCBSIAotL1Jlc291cmNlcyAxOTQzIDAgUiAKLS9Db250ZW50cyAxOTQyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTk0MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xOTQwIDAgb2JqCi08PCAKLS9EIFsgMTkzOSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5NDEgMCBvYmoKLTw8IAotL1AgMTkzOSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE5MzUgMCBSIAotL04gMTk0OSAwIFIgCi0+PiAKLWVuZG9iagotMTk0MiAwIG9iagotPDwgL0xlbmd0aCAyNzYxIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQhRC1kRik3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZrSSlZZ1luNVJacCRuJV1HQiwoK0FbWj9uTjkqIypUQGxOdD5fV1I7MmorRUwwIjAycGosalRgTXNvCi1GT2c0QTYzRXBWWnQkMi5OJGddPzRCbShLSVZOcSZKXVFcJltZJVxQbkBNJz9uLjYqVGtXaDs2IWhgTV1LRmlyKQotMVFAJDNgJVsxMmo5VW8yJDZaWWEuIlsrOzE5aSdXN09BUWhTJ1dwTEsvaCF1JTRWM1YoNiJ1VGF0XitmLFQ/dUIKLSY8Sy9LXWFqP3AvVlZPT2BdNEkmI2pDWGJuISNSWk4yKztlJi1SWCdtTV8iYy8+RllJSz9VTU1NaDlzSFc0cTUzCi1uciMvYG0lR2o8O1A8TG9cLlskOy9lOWFrWWUoQTUzN3AoIlRgRSJoJG1RVj8mNTRoNis7VHBSOEQrRTNqJDsnPgotWS8/cExQc2YqSGkiak90X3Q6WU5FVTR0bzQtJnFvbTBkcUdeSlcwL241Qi48Slw+OyYjQiRqXG0oNzlMNVR0ZGwKLSlNZiljVTdkX1RfOCduTCsmaT5dZ2NDRnMuI3AnQ0pwITIqODYlb0A8SkVBSj9XX3NzPkxZXllbMjtaKGZdLVlgCi1UMyU8TkpLQHBaQG9mX1FPdS86STQmVDJNb00wSURXanRsJmg8ZDdzZGZkVWFKWmJOZDFWXCYoLFNvNjQ1WTVIZwotaUcsWzwlSis4cWQsPlwwXyNjJCxbSyppamVDO2pGPUVPTWw7MllNNjsyKVgyJ10hTFpRRmo0NEwtXzhFMFRPSDAKLUBAOVYmTHJia0RpQlo2VT4nWXAjcF5QUThIKGUqcS4sL2RvcCdxTlJqRFo2SlBAWGoxPEEpWU8kbVQ1c0pxZzZKCi1DQSpTbSQhTlkhRGNmJztTblJMbSIrXThtOFJuJ1NGNGFaRlw9dUMmckMkZCgwKGwsQzxTS1tBJyJraSRoNzEuTgotSDUvYCtsNVglaURMLUhTKTkoIVZBXERpcDlHVGg9Z1U1UUk3RkFKXVhgR0BWcFdkLl4lXlpkRCIrXTtiXVRqSTYKLSdqO1JMVyNMSyljSG0rL0Bqb002JHBBLSFvazRvVDEqUSdvUk9zKj5DTCsubUU4LTdONCxmb3NQVCZcZFRZaydxCi1JVEFOZEgpW3VEVWQhJWVWITYsXVBIYUchMjdHajw+W3NcMmZLRmwlJ2lDZkJiLXBuKSRIZlJtTzdBbyxCPS5FKgotJ0JYXkxxWktWQG9gKFFxTU4mME5NKzEzKmQ/VihsSnJqS0E+bU8iLytfMzlfZDFidGhjSSlCdCxdX0lAbzk8NCoKLVpvKkxSISNzL2csX0FlPCZlaW5JVjJyNDwzX28nRl47Qy5hVEY2bEptXUcnT28+cTkjTUNOQSZiVzdWKmhSKkJKCi1cSF01KFs2OWNMKTQ2NHM4T2BqIWAkP0lZVSs8R3VFMFZCO1FEaz1nMVJcSC80cTBzUStyWFZiSFlUNCgqZVZsUQotInJ1bVk1XD5gO1ErLVxnXyNvWltXVUxISFBoTjhCLCJkKS5XJlkpWmBaNWlSNzo2TjFOdXRiaiY0N1JONzAwcWIKLVlkVi5WaV8zKCs4cl4jMEdnUFtVOHVpMDNpYDguTzBOUVpYUzhnJTcrLDxFLCxOT2MoQHVpQCpgbycsV2dSb3JcCi03RFEsQV9UISFUOEoqKkssYDcwVGIkPiVQMkNXJzJOdSFtZkYyPEFjIy9ocFkhZT9HQWkjdDVkIUxQcCZrb1VdRAotUj42PFJyJkZybW8hSSRNXkduImhmYFJSXTwwTCJPQUJCXjwmOEAoaiRTY0xkMTBHWzJCT0ZITVdASkk9Li9BV1MKLXJZZWpoZ0M9RTkzWDFcYypFMylXQlQzbCRbJkYsJWJcUCU/JE1AYnVFLEspTVhQNkZBYCNNRydZcidSc1NPMS9sCi0paSRbYEtTJGMmMFFDYmIjKls5KC4mXyJsa0hPXCgzU0dHVDctW1hmWHQ6Wlc8aG1KNDhJZmdVS3B0SyFHKFZTawotVjJZNFxjRU81U0FqQShhQywoTyFfUkVOMypCLi8wYypOJz9dUTkqYmVYTVFMO29lKSY0MCZNKiJVNiFYY1JKai8KLU5kcnIxYE1Cb0EyWSUyJmpSSmtdTGtaXjJCUUU6UitKPl9lSzdYRkQvQWpRLFNSSzU2LUlEM0NKUzZXbjo6V1BmCi0yVlJkcnIzTi8yY0FtWStrPzxGLTFDIW9TW28sUVExJylDQ0giSC0oOUAtTSxoNSghLygmWV9tUEROXVNYMFF0awotcDNHIWRUayNjRUUmaE9HUkM/IVhHJFklUlNaMyNgXU4jYmxDKkQ7XCZkQFI2R0khQHMiZ15jTC8/T1osJnBiZkgKLW49MzlQNWFAUFw8RG5XXSVCOG1rPzFyYiNKWyQrQkZLVXElXTsyPWdMYVxnNGlqQW8kLD8uJUxxQDNQMTE3MyVDCi0qRjNXJlM1YkFjYzw4Rz1qNkExcWVTPWJXJ1BUbjhlTzlvPiomTF1yXigqR200cDwoRipvXUZeSCMkdEtdSUpScgotYFRhV1dsXkZBNTwoM0c+XU4sa2E2JjMxOGc1SGNZNTJrVW5JRGc/LSlyYkM2TUQ8YV86ajAiblRiKzIkYyhKYloKLWlMb2ZxMTlfVkNeaGo3YnFSTTM6LUFrVEBJTy91Q2FwMnJmJV4kUGszK2lwOiosbzpiNicqcTdMR2lyaCxIKHFaCi1ZWTVNYl1nOEhxRzlTOzNbP2dBTCxUXF9NTCpUQlFTVSM1WTk/JT5BJi1PUDhxLUQ3PFtsVFNDbDUpZj1PVis7XwotODtRJUliKFBUISZdMUo/PGphdCRTPnEvZDVzOTdBRmtgTlhSYlklMm4zRSslIUNYZV41ZkZpS0lDJT5rZiRuLG0KLVElayVFVDpQVzQ7SjxaaTtAITJPKSk6JjQhUipBZiE4ViprK2EvN2UpKVMsUFllLytnLD9iP2JmcSpgZktVMERgCi1fTTBPLGVuOVluTy8udGowOCgkVGMiU1MwcWc8SFtTXi1fOzZRJy9TLVdGdVA/cVwkXF0yNGEtRV8maUlVbi1NRAotcFIrRytXJVZoKT86cVgtNHQvXzRmLmlQS3I2Ui0kIlExUk04ajNXMVZ1c0xQJSdsMHAnTGwqRVxjUChXJGBmWWQKLS1KW0Ffb15GOj00LkhrRFteTiFKVCowX3U8Omg2NmQtbEwsSWonbjItbDY4LmtDKC1kJltXNiNlSipSXFIwYSFOCi1mRlw4RVdZNUdBLChnbj9Acm01UmUoLyE+NCdlYmFva2oyQFFJYldqbU4kPSUiImpbSCNRfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTQzIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE5NDQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5MTIgMCBSIAotL1Jlc291cmNlcyAxOTUxIDAgUiAKLS9Db250ZW50cyAxOTUwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTk0OSAwIFIgXSAKLT4+IAotZW5kb2JqCi0xOTQ1IDAgb2JqCi08PCAKLS9EIFsgMTk0NCAwIFIgL1hZWiBudWxsIDcwNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk0NiAwIG9iagotPDwgCi0vRCBbIDE5NDQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTQ3IDAgb2JqCi08PCAKLS9EIFsgMTk0NCAwIFIgL1hZWiBudWxsIDc0OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk0OCAwIG9iagotPDwgCi0vRCBbIDE5NDQgMCBSIC9YWVogbnVsbCA2OTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5NDkgMCBvYmoKLTw8IAotL1AgMTk0NCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE5NDEgMCBSIAotL04gMTk1NyAwIFIgCi0+PiAKLWVuZG9iagotMTk1MCAwIG9iagotPDwgL0xlbmd0aCAyMjU1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQhRGRFWCs3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRkxPKiNfN3Nfb1VjZ1lwdVBhVkIrVixubjxRXj8mK2drVSchcjopRSZKUGBgQCdeR1xcL0wKLUQlMiREUztJT1QodGBQcWRFUDkqYD5GUj1PXFNTbmlcMi9XM0UkNl9LPC0yZVNIS2lTK2g2RHRgMS4zZUpLYFpWCi0+U1FsMD9HQm43N05gcURIVV4nPGZZXWwnKj1TaCJLS05HTkwvODVTbEZRImhlZnAnKjM2RGRvWTVCJUoxZTt1SAotJCwqTmgmaUlMP2E/Vk1zME5jOWglY1x0W18yYS44cDooSFw8IV9lTytUVWteTWY0RjgtT2NjZlsuOHFxbG1Xc2cKLWNcKDlpJUZNNWBtak87ZDwib2tESyZqTy8mLythUDRdNHApJ1cvMSFeNFJrbShoLy9tLXBlUShLRThGXShDJV5dCi1RNz0tJjhuLXVnIU9JWk9KWUxkbi5MY0pQPFxrNVxFNWpwbS8vWyo1IlgvXEAnRl5hRW8nQVBtRWBXbTY8IjAkagotTmhcWlMwVENdbTVXPVk8IkE4cD5LLjlwJ1goL2drMjVPZSpoRS9aPDE5YE1DNk86XkVOLSUmNDQkLUVbMmNnRmgKLThAZzhXOFVMSFJMQnQzXTJFMypfQmZSazctc1opYE9CbSE4LjVpWm9MK0wwQU1SOUwtbGJgMiokXEgyR1RvNVJXCi0oZV1yMWpLJmhZT01hR0ZVQm9lQ0xnXjtBMmlUJidvVWpTK1loci9UNlEiXiZkRjk8JUgpayNGYzRFaStaO3JmcwotNllQWG9LRUFZXSovN0U4O0FgIi5YNzZoSmVwVmlbVUZfaUk/ZE1nZFczazQ5NWo8XlNlNTVDIWNzczBPJUUjL0wKLSJiJmFeOUM8QCQ9PmsrMEEoSFFsL0kpVzVEQXQnJ0hqcDNFPHFOWTJYSE9zUFVvZSYubk5CWywmNykxbyVOUF00Ci0rVVgxRClNWkVKNDs4JkcqRjpiMSIqUDBuPnNsXXJWZUJnZmIpJmRUWVxHJz5aUmpFWlxpP09HMy8lRSwjISVcNwotclhldFViV1khZWNaQUFRRzBvdV5sbzBvVlpubGdbRlNgQzxkcG5YcTBiJEskcFA2PzgySzhTI1VSOjhIbTsrY1IKLTgyZHFgSylbSmEvLWUnO2E/OEVBJTBJK3U5al9EP2piPydAMFxBPzRnOWdJbVlaK3AlMylSJG86Y0ZFVyomRyEkCi1oKj00TT9ndV87MFREaVhmSjlca1ItSFk7RG9aSE5LSDpZWTBTQ0VxVDwrJSslJm9JPFtAQXFjJzxpU2E5ZlpvLQotMjZLbz01Vk9aMWNsPGM3Y3VbS2hkZ0NjSCdFW2MxI1FiOUIucksmYV4oQS1nX1wlJXNiVFFuXF5nKUNtMGY9IjUKLSUyVic7PFpIX2RAPXEoMDtbNi47cTghJVwkbW0jNl9mUVkkSytwRkcmR2RCJDFDaCluZD07YG5QazUnZGtkVW42Ci1HPiNrTk1cZSdaUjFoPSM5Z2pGOV1CMyFrTTo7UDksbWFHTiJfUEh0VHJdcWEwbmxmP0kuXDxfbmRJMjE5PCI1LwotRSNZYmMsOVk+TjVdcWZpNiVYIyVKPisrJko1bTk6SlMjLUIiZmIjL1YmK3VlL0hyNDBtPXBsVXBtdHRPSVopSnMKLTRQIVA2KT9ILmImTzcyJjFGPzk6Ki8nLGRTalhQWFhwcGhnZlBsYSIuUFdoMilxa1U9M1dTNiQxLj9mX2dfX0dmCi06VSxEP1ZEb1I+NDdpcnRQZ01Va1ItOiZtcGEnWiMmMF5ZUm5cXydzRTl0XDxXM29TQlNBOHI/bS5wYiorSDZDcAotKiFcSWNOV2slTk9UV0Y3Q2s+Sl0kTl5VTHIpPjVuSC1LZD4yLnNmTT5oYTc5QW0qblVGSVpPTi5lUWhWIjp0VzIKLXA1dDM2IS9FISs0LCpNMkdpRCRBJTVCRishWF11W05gczJPJnU3TjArUjByKiomTnEicmY0LzMuTj84Q2osJCdkCi0naVF0RTh0aVRTNFY5T3Q7QT5ULTtGTS0jJj9OIXU4J1pSXls0QS1lJmZqaic1I05qJiMsaFFrUCtlODVBV2c9QwotVF1vTE47J1poci5TVnBbUCxiY1NSITBJL2RlLCM+aWhtUyJVSWBnXSxuPzAwXzFpTjE+KjVhaFdvWUcrZStsbiwKLUo4LyZeQ1hCMlNSX29aOT5fXT9QQiJTQSlLaXEzVUNvdCdyJzM+N2U/KiVkJSNINTEqPTBnampsSjRgdUJjSWM8Ci0iaHJKIWdMLkU8Si9KR0NEJispZDE0azJMVC4oIjVyTVNbNyVBQlVpPGZsK3Vncl4iRSQyb2xCa2ZhclBxTz0sLAotXUs9RDAjcCpfVStGdGgsKSttaHU0Q0YjaEpuM0MqXykzZFlNQmcmSidVQ2M3LVBKYU1rdWAjcmFLO0dKcSo+Q24KLVpUMiojW0EpOjooP2hUTUxCWSUlImtaSUtXV0ZjKjJyXEZWVV9lTTZvcU5rNFpuXCJibzBmZk9zMVY8I1tAWmxJCi0tJ1liLjwiaTspVS9TPUJtLDJbaVdkPV1zaklcQ1AmOjZqQ1prcyYlNDopSTE0PkZYaCg9RDcvKHU1ZSsidXMybAotSkQzQT86UjIyTk80K3BYIi9BXG8yJWclUkxFYmFjSFklJSdKM1ZbXXFIXy9zIys8OERdaUdtYlRYbWJsSzRWY00KLUwwMlkiZEswfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTUxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTk1MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTkxMiAwIFIgCi0vUmVzb3VyY2VzIDE5NTkgMCBSIAotL0NvbnRlbnRzIDE5NTggMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxOTU3IDAgUiBdIAotPj4gCi1lbmRvYmoKLTE5NTMgMCBvYmoKLTw8IAotL0QgWyAxOTUyIDAgUiAvWFlaIG51bGwgNDUxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTU0IDAgb2JqCi08PCAKLS9EIFsgMTk1MiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5NTUgMCBvYmoKLTw8IAotL0QgWyAxOTUyIDAgUiAvWFlaIG51bGwgNDM2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTU2IDAgb2JqCi08PCAKLS9EIFsgMTk1MiAwIFIgL1hZWiBudWxsIDQzNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk1NyAwIG9iagotPDwgCi0vUCAxOTUyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTk0OSAwIFIgCi0vTiAxOTYyIDAgUiAKLT4+IAotZW5kb2JqCi0xOTU4IDAgb2JqCi08PCAvTGVuZ3RoIDI4MTggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCFFRiZqLTdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtJKVlnWW41UlpwJG4lXUo0Z09rWV0tPlZJKDpiKipFJ2ZaSVxiKXBVbkQkJ01fQjBTZmpkMCtqNmIKLTBHbiVHJ1slPzUnK29tYUBcTm4ta0Y9Rkw7VGItZjlaTlk/IzRLdVInRktJWGFxLCEhVzgtX24sQj9pWCNnTlApCi1MJ0dKN2ssPkM0PU8mW15LKSFER05oWzA8VThbP01LIUUxcjZmK2VuVT1gO0QubVgvNS9yRzZZUDZpZDJAcTttIgotYiopTjYtYTtyJSZCJk9AOkM5LEBLTj5mVV8jVktWS0VEbnUzaUIiNFpFK0lFKHM0azhAbk8qYk5saTQoMFRDVmAKLWI3VGAvLiw2ajBAc0g2ODdXR0hmW10wQF1INTxcLUxpQTgqSlNZNiVjXFxIJmA9PjZAbmVBZFJMZW5saidQT0VaCi1MRVZhVTJoYEUuPzg4WlpZaUlpMiItakU7O0lhR1Y2cDhAT2EiaVgsOEVWbDYnIkVbdCVURmtJM08laWElbm1KLgotQF5cQFk2Vi1HRF1IXSxRZChxRDxrbSM+NCo/Ul0hZGpYPz5aJjZEITNeRCVXaERQUEROLDBzSThYJ0U7JUhHKzYKLTFQPmVZK1dOSTosTi5VYWNfK3NZVVhTaCtrYlxaYjddbGpxSkUvWjQ2UWtZUzVrO0dMSiQ8aSM7Y1U1SD1QZyteCi0nbiRCVS9kUWpvKEMiIUM9OzI1XWdXXG9BSldQTGRkKG9fVTJAbT4yaThyc0NYU0IzRStUdDlOTWRwQCoxWVJtJAotZklqPEJpYk9qbSwxdF5bX3BKVFUiLCooa0U+JUc0Ij89cispOW9gLCUqbTVCMFxTRFJiPkRyYDFlWCZkM0VAZFUKLWtWPUtAbjpaZDViP3A3P0ViZDw6QSFXSyFYcF5FW1kyW2socW0/U0UicFIoQURbLDcpQFtqQ0xdPlY0Q0FFXlR0Ci0/MTNlXDM3LGl1P2ttUHFeIzZEO0A5SSJvXT5NVnBQdS1fJG1YLExGUmM/P2I2JydTX1FQX2x1Ly0sO3RqSjFSLQotZC1LKlk+O0Q3ZSwqQVxkNClqcVtbPU8qQ1pAaTg6Ni5eOHQoPjYvU0pXRjxvalpGL2oyQExnXGlBRV5nLig5WiwKLT1xakhyQ2tHS0NVaSdNIjdNTCYzRE5oYkFSQzwuTEg9JygiJCkrVi0sbCZZOUddIjxeJihDPGU6XFpbZmpOU0hsCi1KP0JkbTlBYidcR3MpNFpkLkt0NERAUGxNMmhxUXMpY0lyZ0JCX0RmLyJmLm0oXl5IcFkiO1suZi9CVEI7USIqTwotSC1FTSFfUTJVKFRGQG81OlArOC5SWS44QT1RVG9aLi03SD9mJFEtW0MkRiRLLGE7ODkrdGVVKGcpPDYvRE9UUDQKLSU+MFEhWGVkRjBQc0dPR0wyQlhsTC1YQjQ9QScmNGBbRVs7YU09OjBDOUxhPDBZbkMwYDNnMFlTOlRwWDJfSU0lCi0oN3IwIkVVZUsjWmAhcUEsImVfMixsKDE+QlUwVWYnISMqPWU8UGEnOl9WPChcMHA3Il9oT0U0WzFHQ0I8M1c/UwotV1BdUVI6dGZjPUBHVktwWkVnQUBcOS84XlAhKDtJSUwkWThKMXM5LidTPlFGW25sY1QzMEZIakw6KWM5VW5PaGYKLU1RLzVGPDZsN1Jac1MoOlVjKnU1XjZRU3QkT2ZhKzI2IzVEK3JtbXA5KEheMkw8K1stVEwpcTkwTVlbbEVzND1PCi1dLTBmOT9vSjkoMl9FLEhjTlwrZyFqTT8wJFVKSEola2g1dCM2SXFpYlQnWjoiYCxtNGpOZmNMQ3VAUz89SWdxJwotYDFdUF8/amhYKClhNCRFJSJZMz8yc0Q9LF5UX1pUZCllLzpecGw1OTFpYFtrMGw5S25ZKUFCYGE7aWk5UiMyMnAKLVEoQWk0WUBCQS5TbkMwdTNaKlsyJFZIIktCdGJxMytCa3JgbyJRa2woY0ZYZCY7JFpkJVUuLGdHIyUvPSNRbD88Ci1MOHRZNS1Fb2BSZGRVZEFXUDNdYTNHYVplWW0hLE0jc0I4KyY5Oj1HMUkpMSIoQmJxOFksXSs5Uj9LVzVLX01WZwotSmlIR1lWVS45KmpHUjFSMVw8aVxdI0M5cUEuQXUnckFnJiVZdURqL0ArTS1sJSYpVDViZ10qal9uKj06ViRydEIKLSlYZ146V3NrXGYnI1JJUGxOSlFGZVpbKXBeay5ZWyVGS0U1Om5iYC8idTk3SVcuS2UtT1MmWz4+N2hzOS1vRjdkCi0oPjc9SiJgO1k4XmJKXTxSMj8qLz1QYyNLO2I8Jl4jKSFbLiwxMFZTRTowXGVnSiVgZDZLRCZcSEhoJEFBZT5KVwotKG1IaCgrWGhcdS9kUEhEPS0kPD88STZOP19iQ1pRRTFkbksiOmhyMFAjNTxqJU1ESXQ2UT02YV4ya1JxV1tyRloKLShhTHJpPClCLHQ2RS49ZldbcCYwbD9GOCM3MkpGRjIvPkBOPVNPOUctcS9dSzFGdHE+KEJrcigqKGd0KSI7Rk5JCi1kOFtUNC4tNkIrWU1kRycmOChxUWMnKDBNZ0FKYGQqaSljKFBzc1loZSJabi9GKUEmK1s+TypTTFFrJTAwTEI+YAotbVFNN1IxXzM3bjlYJ0o9Uy5KL0taI2Y8TSN1dF0lJlhCWyojVnR1TlNkLjRtIXUtKSlAKTdkcF8zUS1xUGhxIkUKLSR0RmkzS3FYbFowT2JbSmlPO1RgaFZcZUc2cXByRTBSOkNlQiwrMURWMCJiY1dkdD1HLmdXMEhmbkJXbSwsJlplCi0mQzhwdCVvXEJMbFEpZl0oKXFjXSMsJVglZCNiRSsnVGtnXmZuJ0AoPUAicmVoIihfTiI7Y2Y8XUdgMy4xR0pILgotQVZBPHMpWyEja2coVmVILDZZKlVFbUFbUlRWKkVfOyI6ZVg6Jzg2ITpCOGNKYj85cF0uT2ojU1dGRm9NJHBnWmMKLTc5MzIyVUAhRzhTJ0NsMnFgQVkqJFBgUSNOXDtPVWFHZWRzcFFMb0c0OWliKD1mXyZOVkk6Zk5dYnQjYkxFT2drCi0mM150X1pYWk1wNlE8dCsqUTZTSjdxJitlPmNOYEU7LmBJVkE5MCc0XD8vQihMMUlFLT1HJCpaZSUuVUZjNmBVSAotYXRPOGo4cENPWyEkVDBcXzUkZm0jTlg2bm5GWz5ZXyRzZHJcIykpPGkyYkg4OmQ1dVxsIltRJi03IzBdZys1XEsKLShxSzolKlBfXy49ZDlAclhERkRRcFZSZUMkb05YZGB1JHVaWlBjLl1DOzE9dDM9X0A8aVMoPTVWQ2BxLlhlciQ+Ci1ETistcFtqbGAzTHNfUFFKIWZyJUcqSUhgMiY6SypedD5iXkE0Z0ZLQmBTfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTU5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTk2MCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTkxMiAwIFIgCi0vUmVzb3VyY2VzIDE5NjQgMCBSIAotL0NvbnRlbnRzIDE5NjMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxOTYyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE5NjEgMCBvYmoKLTw8IAotL0QgWyAxOTYwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk2MiAwIG9iagotPDwgCi0vUCAxOTYwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTk1NyAwIFIgCi0vTiAxOTY3IDAgUiAKLT4+IAotZW5kb2JqCi0xOTYzIDAgb2JqCi08PCAvTGVuZ3RoIDIzMjUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCFGJ10nLzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRlxJWExyKDtbUiFuIioyQixROk9sRyNkXDIoVVA3QmthPF5lZGlnU0hLMGI2J09XSDJrKDgybz06W1AKLUIrUHApb0xkLz5cX10lWTlgQU9HUydaKDBHNUohOTNOdWM+JF0qR08yQ1A8YFckTmw5TVNjNkFUdXMwZF84cFlrCi0pYFdaPWlZVmo4SjdvaUokKWgvSF5RN3RnKjxaX1RGPkZAWyxKSCpzNWxkSzklJjdkJS04I1JOVkFCRzZiLDFWXAotVU1KRkFgRD5kVy5Lcl0tcEVAVk81WHQ+UkBwblRxI0ViQltyZTg2VEkzXz04bHRYLWo6dSIlRSJUYF9gJi4xY1EKLWszWUE2ITZSJissR2BwJmItKFk/bWxSOy5dZUtdNksjIjY3RD5ZSTYsKUVJPCohWUFDT1FAXzE4bi84NiUkRDxuCi0zTUhkVylNWHFRZFEoJHM4Qio/Q0pINFdJOWI1RlcxbzUtc0FmRSxjZUJUaDAlOWNkbiVJS2gqMjdwYm5sOF0iawotTGk9JWlfb1VbcUtFRktWNCQxYzo0XjsmUzVpM0RJV1UzJT5PImw2QjFGNnJxb14+RDYiOWVqJjBKakBcMC9fMC8KLV4rQ2UsOmIiXFAyLFEwWWVHcWxsZltqKSUzSzRkS2ZXRThZRjRkM206VDNLbU5RR0lCYFtfZE5wQCgxPyxPPnNICi07cF5MLTpQYE8kaTUtWGhVSW5kKW42OEBMRTlMK1o9dTA6J3IvUzhtZFBIbTNIZChrSEVKV208TE47MGcqOEc9OQotNiJzazwjImxbQic3MVM4IjsuJD4yblVAYlpeQF1MQ2wiUEJxJWNQY0I9R1w0UTNpMFhnQ3QoKl42Iy4pR2xDJ0UKLUtHaW9NWGxvNGxLS1JONWhOXUFOXSo3RjdDN0JKLzNjLydnZ1JSQU8jYXB0R100U2dqQzQiRDA0VWUpXHFrZTwuCi1JYDdwXT47MkYqTipBUWpfcz8hcidwSiEyJUk6Um42YSNPXjksdCsqU1NCLmlvLDRLMVQuLkNlLDtbPW5sQ0RuTwotZlFEUjdeWHFiNkJZbFpmIiNrIz0iOVRzITBoInMzS3VjTk1zJHUsRU5xP3U/R0NxOS5ZUlxRc0xWOCM2Km41ZVkKLTBPU0BKMydSOUImLWNwZy9PXV1DQldgJlxUZzdabU5XWSJPcmY0Ol87Zj0qPT5sKkEuO3Q7RjYhTjdlTmEhTD5OCi1PQ2hIYFMqOihXMyY2OEFabFJIXUc+ZWdYWDthUVZNTjdmaj1PNT4qIy9KWShUNlBBZS5jZkthJjQkV1M2L0UoWgotK15LaWxgZ1lHaFxRPEVoO0M4KCE6S2otIjtoaEJKNl45Ui08SiMwISE0M040YSdicyFBK3I3TF1jNCsiRywjKVMKLVlebi9bI1RzW2glOFJUIz1eZ0UtWDs2YWwmU2drdWBGUSpKWytdOUY8I3VKLFRLMzp1N1c2LCUtQTo8LSxhXkdZCi05JTtOVzBecnAsLVBQIlpfWzVIT0A+KyooO2FNQGktdD9XSCNXXWkhJkNUNGIpJFVbRTgtNEZmb2c8LDFAPCpKTAotOD5aQmJUIU0/S2pePjIqSkU2VUZhRSVPNGM0bEptQUpZRzAwZGs4Xm1oPW5lWkFKR0g3QThNVSsmZ0s4VGZfVEYKLWkxTTQ2MEw3Oz4xLWM+KCpYRz0hZXFNSmwxNlJfSjlwZF46bWl1amY5byQ5KmIyUzZGVDZ1USkvJWs1a1lXcmVpCi1LLWNoR1xlN0xNcDc1V1RdVGdtYShyXWx0RyhYTDNNaiZOSChvTGNXJCFcTlBMWnFdM0BNRiN1RiVdYzZlVUdFRgota15VRE9AS1pxJS89blFQKVZZTzklQUIlYVNwMzo3QkgyNSlOJmNcMC03IzU5V0ROamJoKmFzPzFtYz0/LXFDTEkKLUNhQS5SPzxPIWFWRl9mKFtGQ05qPTQsa3MrWWJGZGU/JWsiLlUkTzdmZTBQWl5uKWw2QW0rWWwyXGluRkBvNVFCCi06OSEmKDBeJigsVEFeRCswRHJvb0xeLVJbNlFAWFQ8JFItX00maFdDWHEkJD09TjJLSDFEP00jTitbVClMRktOVAotVlNzTjphTHJGYzNKPTVucGdYYkFMMDJVJldaLlZQRkljIjdHIjJPMD81ajdPTV8+PnA6TE5FQ1FOO2RGJStMPzMKLU9ETDlFV2txbCRPdEtWP0lYT1NORCsvLUdBWVUiVytZNUcyO1RHJCgqX0FvVS06SW0vXzU7VicpMWArcTgzJGxJCi0ta3I0XltdRXVQUiR0QlZwUDAoZ09caWhKM0RyamU9QD9cWi9eW1oxVSM/XiVpdFdAUW9IOmc9OUplMm4pXXV0bgotSlhnYiQ6SXJbI10/dTFeW3VVZVZhPmxqMSsqak9pYFtKWDVsYE5wSjBQYGVlT0hsXSloQUNsQUFXXWxpTEhYL2AKLXBgSmA5WEZTUVNebyxjXERRRT8nYjg7cWkzXjdxYSdbQktyUiJqMCwhRWZHW0FsLnQzTVpbTjRMT2h1VCMqNj1pCi1ATyc5VzBmQTNLMGxfamY0OFBDdV5nV0AoQVJicyhHNygxWi9xdCNfSnE9KmIjJXNiOlNmcV8sZ3BNVyJtamFacQotUDBzXVcvLlkoYDYyZWBxaWVUOUUpQWxSMmhUMmNKTyJmLko2InFlV0BWJi9yT1tUVGMnUFxESDFxZXFucTlHTV8KLUFubnRrcjYjWCwhV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTk2NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE5NjUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5MTIgMCBSIAotL1Jlc291cmNlcyAxOTY5IDAgUiAKLS9Db250ZW50cyAxOTY4IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMTk2NyAwIFIgXSAKLT4+IAotZW5kb2JqCi0xOTY2IDAgb2JqCi08PCAKLS9EIFsgMTk2NSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5NjcgMCBvYmoKLTw8IAotL1AgMTk2NSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE5NjIgMCBSIAotL04gMTk3MiAwIFIgCi0+PiAKLWVuZG9iagotMTk2OCAwIG9iagotPDwgL0xlbmd0aCAyMTg5IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOS5JXUY+WDkjLWpqJVp1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKiMpbWtWTHFBci4iO15JOzdoZjRbZk0jaD9vNnNbLTZlIWlbLCw9U1JnY11XV1QpZUcoPl03JTNoNFxsCi1IYWY3RDtjK0YuZ2dgNV9CUyQ8RGNjMERdTWlBZlVPTylBSlxxQj1fXSFhNURVOiNeJTgzZVU0VVI6NlYlSEItLQotMTVwaVZrbUJNKV90NEtLX2I3P0o1cDo6KksiMCkzQFopRVk2N2UiSSFPQ0dAWFhUKDcnRjVqUUMpVmQ7aTYnQ1UKLSIiO2VdLWReZjpwUHQxNGdjOic0a2JvZFYvY3MkMFRlVDY2TUJdbUA/bD1bN1lcXi5uTSIiVTFMKCZxUlJSVWFCCi1nYj1fP0AuRyNTIUpqUmklWUsrPzBUQnUmaEUkWl8hOCcsZTZeJi1GV3RXdTYzXl9wVV9TPS9KTGQ0IyFYPicpMAotTlBkOyU3MUI+KW0tVGBkZG0sXVtAaVVCQVYwJkg7MS4xRCVyJmkoNjwxKi8uIUprXVEwNjcsLT1BNDk0cnFGJDcKLU1NMkdiLDthUVQkMVwpTyxEZ3RCQWZKYzgqNy1TaUZDVmE/OCMnaCdRKkUsUUUiaWBAVzdqImRfaz8tLiI5QU0iCi0yVkRMQFBvZ0ZDaDdCWnQ8Qls5QD4vPFM3MyYqMDpgcEJyZDwwSlZaWT5TcThnIW5zNCYuV2NIKlk4YShLakFzNAotMjw/VyQ4ITNGcDRPXUg9TjBWKiskZ0pVYWQvQjRkX1xfKnFoYXRtc0FAW0VxX1A0RT5FVTgsaiU1QUtVaUFjQWoKLU5LZikuXTNkMiROY1VrXC1EPlpqJjdyYjY/azxRRCJiZ0UhUiQ8NVxlKEQ7Oyg7UktXcD9GZmloJypDbXFPPkZvCi1DQSZkbzJAXUZwNVNbMEFcQkkjPUsmQk0yQ24hLHEoMmInQipcaFBhQiNoTWwpcFwyYSUiZEQ4JjNVbyVyPl5KMAotWTA3VWhfOyJzWGdjI1dlKmtuK21vc2hpczxzOlYvLEMlODwjKF1cTzRVZVFUaDhLa28oQnFpdWNqKGdKTCckUikKLWFwXUhLMyVda0pRUkZTM19fQU06Rz9AQF0vVlxdW2FqcW1cNGkwMmZVU1JDcUVQLU5uIUhrQj9sbzFrZi1fJU8yCi1dWElqYW07K15YWEYrOWVxN0xdMzJVIW9SXkEoIjBuOWNtUWYwYjIiQEdwam9ZQXJMcFRAXFZbaEBvYTFZUTxkdAotLWBIc2gxXkBCZCEidCVFX1JBMz02aywyc2MrUz4sKTRrNUlEOXVDZVxZKWprJDspVTlrYituIUZKb0hHUW9KX2gKLUdvMihdQWU3V0tfLTtnMEdfLStfKHJLSGElLTg0KCxncidEZFlvSXEuJ1xkSzFwaVNebm1HLVpjNS1QNFkpYnJbCi0uMGghOzJoRDJTSWZaU1c+M11LUipGcC9lYlIwRkBuTz1zWkt0dDJiVS0yOkUqPSZcS2dfbXAwTUA+P18xb184TwotJUg1TW07Ljc4QS1Cb1grUEljJCZhQlVfMEApPGMrZ0RhWSQxdD0yKWhUMVAhaUBwLyVuczVHUCQ1Q1hsJS1XLi8KLTEkK19CPWRwW2xqPWhQajVbbmMlQDVTTVskO0lpMDdSPGpmJTRvPFIwVTN1Zyk5PldmTmkmYj9XKyxhcFVCPV5zCi1rXHJKa2QtYU5CZT86aCVgOFJHVkRIJm9oMG82PjJrRkU5YGQkakdWNERNWz5abTZlRiIoTyRPJF0oO2RUVFpjVQotb1MvSjZFPVgob2JUIyRUMTBBPCxsQ0M7REZxRlNQPkVXaiZbOFtXXU8pYVlRN3JEQHJbaisyXC5tbzpERC9xQHMKLVIrKWlIOCIyO05vIU8sLEhyJDklJV1wZSovZkQ+aGhhZ2FEOGJHPF0rQTR0NWA8NlgqaT0vVXUlbkdZWy8+UiJUCi0zQDs8JjhhKmhpQnJvJTg7WUdoWWUmPUNYQmFLXEkkIXRfRUNkQjdCJSNZbkpDbUl1UTBQQ2E5LlJiYmIsSmVzbAotJHExRlsndCdgJiVfOjckV105Q0lVQkZyQUJRMD1IXy8jaSxhQXFAQm4hTVFKODRrKUU2UkhNRlJILEoxU0pbTzkKLVZRaSFMQEFIIWUhLjtUYlw3cHMnWm9UOTheSFVmaTRlblsjJlp1XCE8c21aTCUiW09HIzExZUcnRWA+J0trck4iCi1LSiZEODIrTnJdOWRzJlkmLlFwJDgjZidPPEErWUYmWi9pWEFzNTQkUG8zPStOYG9lbyUwLilFM3QjSzdTVmFVcAotMjFeQStmals9OUJQQCMkMmMqTWxBU2VxIVpSY1lLMFxcZHNtMFcyVVYvR0s2Yj1XWFJeImopZUM9UU9oPVYuOGYKLS1UM20pU2pNKG9FOGs9XyNbdEhTY0loLnFWITwsbiFJUXUsayk6LzpaNSwwR2shNEx1TDtHViVFMU51aTs1YlZtCi0pWHBBRytcQXBlIWVdRT5KdFFtNWZOKjhiNz8zQy07W0hiUlBTVkBFPVg8LmhzIUZnKUJBYGhMJUE3YkVUKFJyLgotJ1NAcT04LWZ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5NjkgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xOTcwIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTc2IDAgUiAKLS9SZXNvdXJjZXMgMTk3NCAwIFIgCi0vQ29udGVudHMgMTk3MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5NzIgMCBSIF0gCi0+PiAKLWVuZG9iagotMTk3MSAwIG9iagotPDwgCi0vRCBbIDE5NzAgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTcyIDAgb2JqCi08PCAKLS9QIDE5NzAgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxOTY3IDAgUiAKLS9OIDE5ODMgMCBSIAotPj4gCi1lbmRvYmoKLTE5NzMgMCBvYmoKLTw8IC9MZW5ndGggMjIyNiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkJUBwVEB0N1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kxVkhDaG1CVCssZSdvSHRqVFtNSmVHXEspU2AhOFhxUFgmIygpLDglaUAmLjZrJ1EiPEE2YElBSwotPnEtSmQyQiRCaSc/LkZMLC9bajZRdSJbV1BwPik0VmNVaC00TyUmMTJcIy1bbENQJWQmRnBBQmosaFxNM1klN2cKLUtmZElzOmJkclwhOVEjUF9ncHRcJV1qLURRK0UhW2JWdE42QS4mWnIhUk9hOjRcLXUxcCsxKGBNVm9aI010IipLCi1fLlszbSJwKEIxUW1UKDdfUUFPLkdpJWV1LEBGYjpOVSkwOyg5XG1HWEpyKGwjak9NWSxCT3ROJTNxN3UyQExoTwotUmRtdStmWkg7ZCItPmMyS1JzSzAvLjpJKU9zYD5DLXBUcyEnOSknLE1GJzpVK08+LHFqWjNbIS4laSRyIjZkPisKLSRAdTBfL14oQUNUSnMoZEsqOC5zaU1eMFtlK0E+PidNRD9iXUstRGZKQjdrRyE+KFkoS3Fhc21sQWU0Wzc0Qms2Ci1QX0M5YUpOdV43JSddTmwzJlpCcGthcjsvJG85ZmBDJU5OJ05jaTo9KEo7Y1ZIQ2klN0QyXi1sNlJddEZZdFpZJQotMTYxQkttMy9ZXVBecFZWNiVwQVRKW0M7TUNmbUkvXDI2NVZLcU9daEc5K2tKS0c9KzFpbmAtIms/cnJGQCskaWoKLShVMmpsNjBuc2FJYl44SWQ8NDgoQE5jayJsOXFPVTg1ZDYiMVFAPmZOc0FmaDIjP1ZKaVw3L1VNOEgsai07TDpjCi1NQlJrT0AiS2gnW2FqYl9nW2NRTEJoR1xFSF1ocGo3VCk8W0gjP3VWbChYUS00M2xoNlZDQ106Zl1SV1RmLDNbYQotaEE7SkkySEJOW2wnMkM+QCRtSUAhaHBkRGsoOCxVM3NwUjdANldYUzBZYENsMzBrI1lMbmVxKzBnSWdOXlU4bXAKLUQhaVA6cSdROVxuQE1gU1tySjBOTGJjbGM1YEBhYF9dRzZuI2JtLVQrTTU1cDgmb1JSLEhcalwxZyNobU1PTGNLCi1Cay50PGYzYURbNz47P2BfYko3ST4rLjR1T3BHdF4nSHRFdEksMEF1KjNZSj4lUkhLLE5GT25DLyFFOTpgNlApawotVTR1dSNCKUFgPmIpKGF1TlsxUVVGPEVVVDRLK2kzM2VNYkZLVjovcVJKU1Q3MTJFW2ZoVHJYcWZqSU1cbDZJXFsKLUAkMipnXUIiQFVPbjlabGYpJk8kKnNLZ1NPWG9wVyoublFrNjE0aGhaNnRJdVBCMkhhQDY+az5uPiRsOyY2MCJQCi0oYT9oOUtHJVJbcUo6J2ExOU1FcVU2SzE6S2kjJms2TypPaDZDSztOQzw5WCJBOj10blVfQDhnb2o+VSdaM1YzYwotKi1hbSRVJ0FVZ2VsaGglQkk1MUNgRTk4TCk9bU4vL1U9UTdMO2FzciEkbEo2MjgtNnUxYE1AKD9vVEdscFFadV8KLUVXTTdaLDpEOkVPbEZlXzs9WnRVYDZkWUNjcC9QZldic2orU01tJiFecCQwVD5FTklrMUJuRTEpLCooJTVYOW43Ci0oXkYjXmhpcz1XIUtAP2lAKjBFIj1jPWpTU0VnQ14nR3MyUk89MC10WFhqUlVNKlYsUSUrNypMIyViRmYkITssNAotQllddDoxVlU4U1UtQWheYlNxK20jUlVbPU1ELUZ1bF9NRy4kOjElPDQ8Xi08OGsoJ0dfL0xNPzlBbCkvMFtBJWoKLXBhQ2xxSG9uMy41UjdHTSlbPS1NNypFS00rdCRjMz1PLUpPODpqbyUqOi5TaUM5Q19UWWl1IjtUUTVJZSZVPi5bCi1TZiVXKF06Q19SRkBjL1VGUD5cJzYmN1dbOk9rX3BTYSJPbW9OJCk9MF0hYTlKOCU3cEE/RTNwXnVsJz9BbjpKcAotOSxRPl1GQC5ILzdIXkpCVVAlOUBPK0c9cV5yUj9kZStAXF41WiI4LV4iIT44PFpVRGMoY29dRm03aGxTQz5XIVQKLVAvai9jN2o+bm0nXUI8QC1RcWwxSjZhNiw9ajc8Pmk7aCZZVy02SlFmZlYkSTkkKS9sRmY+RG1RJkNZMi85ck8rCi1jUmMjUCFSOFxXSzMhY1YjVHVCclpBcWZIKWBoX0JrLEhrcUBNYjU4MUk1YFxSPyQhcyJpK1lSXytJW3BAKSpJVwotcTYrJVMiWFhccGJXNkssSjYiKkJlaUZTT0FLRzxoKGVJcFdXSmA2VDE1QWpoLVBZNCY1bURAXSRYdCslLiExWTIKLStUXF8scDBzK2gjSSY3KHMmNjhTQVlydS8wVklFOTwvWWk4WGwqdCdVI1w7SldIX0ldXF5gQkkyMktbLkFtOWhECi0oSUwsKDBpWUNCS0dQV2UiOUJEJTk5QVpwJyxmQGlkaCpIQjY1WV0+T3VOWEw3LGMyN2oiZD8zMGEucT5jUVMqWgotKjEjUyhMOEdBQkpjUFk6YkNXKWJFLTdxTVgyJ0htQTBaYzNcZkpaPzslKmpwLzlTMlonWi5MZyRmUiVWRlEnTVEKLTY2Jm8xK1opNyJkLlxOYCotW0hJRERRRzFlZko7dU1IbT04LFY8SHNiN0hFMX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMTk3NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTE5NzUgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2VzIAotL0tpZHMgWyAxOTEyIDAgUiAxOTc2IDAgUiAyMDU5IDAgUiAyMTQyIDAgUiAyNzA0IDAgUiBdIAotL0NvdW50IDQ1IAotL1BhcmVudCAxMTk1IDAgUiAKLT4+IAotZW5kb2JqCi0xOTc2IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlcyAKLS9LaWRzIFsgMTk3MCAwIFIgMTk3NyAwIFIgMTk4NiAwIFIgMTk5NCAwIFIgMTk5OSAwIFIgMjAwNSAwIFIgMjAxMSAwIFIgMjAxNyAwIFIgCi0yMDIzIDAgUiAyMDI4IDAgUiBdIAotL0NvdW50IDEwIAotL1BhcmVudCAxOTc1IDAgUiAKLT4+IAotZW5kb2JqCi0xOTc3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTc2IDAgUiAKLS9SZXNvdXJjZXMgMTk4NSAwIFIgCi0vQ29udGVudHMgMTk4NCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5ODMgMCBSIF0gCi0+PiAKLWVuZG9iagotMTk3OCAwIG9iagotPDwgCi0vRCBbIDE5NzcgMCBSIC9YWVogbnVsbCA3MjMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5NzkgMCBvYmoKLTw8IAotL0QgWyAxOTc3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk4MCAwIG9iagotPDwgCi0vRCBbIDE5NzcgMCBSIC9YWVogbnVsbCA3NjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5ODEgMCBvYmoKLTw8IAotL0QgWyAxOTc3IDAgUiAvWFlaIG51bGwgNzY2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTgyIDAgb2JqCi08PCAKLS9EIFsgMTk3NyAwIFIgL1hZWiBudWxsIDcwOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk4MyAwIG9iagotPDwgCi0vUCAxOTc3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTk3MiAwIFIgCi0vTiAxOTkxIDAgUiAKLT4+IAotZW5kb2JqCi0xOTg0IDAgb2JqCi08PCAvTGVuZ3RoIDIxMTggL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCVBUjVTITdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRlxJWExyKDtbUiFAQ3BHb0kzbEFPdT8tOmc9bENgP05yUmJbO2hBUztwJlBiY0tUMjE9amEqbkgiSGgKLT0+PzJlVmBGLVxsdEovMCUwZmE+X0wqSV4qRE9PMFY/R1w+TmFvKyxYPGhBJGw4XHRKOEBnOFc4azxFcVdOPWBrCi1fTTFbP2ReP15JXEJJIz1NaDhhQS83Rm9OKWBbLEdwdWYzSDlDVm1FTzc2QmM3S1Q3MDFvNHU8PjNjQC5KOSRRLwotTiRyWScwOTEiZzMiPyVQO0FiL2k1aSszMURjI0xVJG1TPHUyQGdyMm1QZy5uPiNxYCpAbj5nS04yJFtBLlpDLUUKLSRvPi9sKWNla1ciKDk4MGJiTHBDMGIwdFI9JCRrb2ozJHU3Wjk0OipONjFTKzBob0llZUhKNmhCVylYSFkmTUI3Ci1OSXRWKS1WPiM1NVVYOmBFL2w3SytkZC1dNztwcldfJ05VKF1aLlowVWxPPmQiISZYRjdbKDNUM0tCOi9hVlRVMwotMXBATiJVVk9jKjpuY0RPIywmMko1X11Mbk9ybjUuYihzalBbTFFkKyhlNWFCQlVDLUEzN3UxI1VRYVVvNlhdc2QKLTlvSiFiVWFNIzlWOFtIXkBYcz1aTVA9TDEuMEtiLG5xZmpmLTFEYF5ZanI2NVRybkhtaGtHcTJDYCpISSlqSEFbCi04V0JZYyMxZ0B1N1lMb1ZCMHFXPlJYMiYrZFFnWSNZWXE2MS45QzkuYldNcFo7ISxbPWUyLls4S0ZnIS1OL1RRcwotbylobSpiLTNXMFItYWhHNEpSP1wmNVRoKmhhMSclPVIqWzJfYGBjRDsyXCVbazo0VSNrV0hULmFQYD5BSk8mWkEKLVomQ1peMnArSytMSCpHQT1DTXRVTz1Va1E0Nis9bTJpW3UyYFwlRTxHK088PU9Hbzw1K1VYKVYmLWVpQVBBKDElCi0uLkhtPidjUj82OTlrNyQiSzpUWitMMGpiJUxLdCtUcjtnXjNHQSstKHVlLFs7Jk1MbVk6LVQxZWhZMHUvQ0Y8XAotJGA5VUxIYz9QXnBGay8mXzNAVUgzUGJeOjIhPE5oPiEiaz1ITnMnRSlJKCpINEcrYDYwXDM4RVJcJztKQzU9SmUKLUBCZVFSZChRczRga1RpZCw1XWc0QGhoMzMiJDI+RF80YlUhKGRiOi9vLT9qNlZCNHJwPitDZnBQYVIsSyNzQl5BCi1GYTJwJylpYzRaPWR1a2hMJ3RqOC5nOWMlaWVIc0pHL0okcCVFWVNMKXRxamBUS0JZSl85SDRHS2RQayNDJWo7WAotTCc0LjJTdGE9JjM8b2RAcyNDLmZqSWU7PUs1IWNBIzFUbVMlbG0kVVRzOWxTPDlhYCMkOkc/aUQ/ZG4hQzAkcFEKLSkqSSUwbUE8PSJZUmBjbTloMzIvXyk1SmJLOkZUMDBEKF42ITdsR1RPbl1DTjZvVixZLUVzIz9gSFBdSUE9T0MlCi0kanFoLitSO1E2WWs+Kisna2hFQiEuWkw1UWVXMEpkXnAjdW9Hc1wuOGRpYm9tPlhYW1NOXEZCQCNLUkgiZkJDVwotMGQ+M2NnJk9OK2JvbEFsPFUxdT1aYjZRPWpJMmhITUFlamcyJTZiKlVkRztPLEdOWSsjQShiVjhFWVtUZTBsZWQKLVR1cFpPPWFKSHRXZT45PGRBVFtqKiIxaFg2T2xtaS5DVDwiQk9bXV4lSWE/UiMqQT9HYlEpcjtaUGM1KkZDP1NwCi04b0Jsa0VOW0tRX0FRUnJWanJyMz9WRS49JXFgKT8lJExaSEt0NiVWQWg6P1taTT49UzNVbzJwJSpiPFhKVVlwKwotKEdsLW02cDR1KjM8byxVY0RKWy5RXXF0TSNPMFZiJWIwaTYxV2s4RThVT0FLRjRIWSItPWBlWCliRl5qTzoiOjwKLTNccEA6SSksbCVCcnFrXmRzLmNdQlttVFpkY0Q8RVRbKFBcbS10VS5ETmM6T1ZiS09ASys2PjlOYCwrPS1HYWVwCi0uV2gsOCJGPWBeJGxXR0hrTWhCOFIrIk4/IUYlYihhPjUsdTEpUSotPXNbYzcxNTdMNyFGKyQ8UD09VjZiL3RNYQotaz1PaWJhN1dWamciUV9VPnRWKVwvSm5cWiFFKTNMWDlbNTQoZihdOiQlVzZIIjlAdSUyaHBqM2tUbDFmb1wqYC0KLVlnWWloIlUlI0JwPS5lMzFJWSJIS2tbNkg2cj9lQjtGKyNWVXQhJkRlVl5fampuMC9sRmFdZl0tby5YIjRbPywkCi0mPioiTWpdaCYsQT9LUmpdMnNsbj9SOHVeVGpjV1snc2AwcCc3R1g6N05UPyVKM2JfUkFXIUVjJyQiLj47LlFjKQotUUVxP0FjM0VTcyQ+alZfWydsUVFoSzl1WlhDQWh1TFJ0QCFdM0g3K0tTNUg8ZFI7aTM7aC1HL11WVnRqZUIjTlk1ZmEzfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTg1IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTk4NiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTk3NiAwIFIgCi0vUmVzb3VyY2VzIDE5OTMgMCBSIAotL0NvbnRlbnRzIDE5OTIgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAxOTkxIDAgUiBdIAotPj4gCi1lbmRvYmoKLTE5ODcgMCBvYmoKLTw8IAotL0QgWyAxOTg2IDAgUiAvWFlaIG51bGwgNDcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTg4IDAgb2JqCi08PCAKLS9EIFsgMTk4NiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTE5ODkgMCBvYmoKLTw8IAotL0QgWyAxOTg2IDAgUiAvWFlaIG51bGwgNDU2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTkwIDAgb2JqCi08PCAKLS9EIFsgMTk4NiAwIFIgL1hZWiBudWxsIDQ1NiBudWxsIF0gCi0+PiAKLWVuZG9iagotMTk5MSAwIG9iagotPDwgCi0vUCAxOTg2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMTk4MyAwIFIgCi0vTiAxOTk2IDAgUiAKLT4+IAotZW5kb2JqCi0xOTkyIDAgb2JqCi08PCAvTGVuZ3RoIDI1MDQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCVCM2tlIzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRlxJWExyKDtpPUozXUYyQixROk9sOmkjP29FcDpfNTREJjpzYGJiKTMxVFMpOkpZKVEnYjxaMU80ci0KLUA2LDlBQjYtWW4pdCNRKmJcIzA7Yi1FL2EqLyxVTF5uQlEyTiQvMVUnbnAmcmpLKz0uXnJlYkpAanA6KDBNXV5HCi0zQGJMVGhFJFtKQlxrTktVRCw+XyVVaG8+LkxBW2s+LmhWMU1RI1psIU5PKSwzZkkjSjRLQVEoKVkmTnQiRVovSgotK2luMS4uJXUvZiYuRUtpTUUzSlFec01rYUUzU1g4JEJOcWonTCNxLihBLDZMcGNwUSdLOihSUF1ZY0dvMWxdQzgKLVBqQWdyR2g9bz1vLURSOTZGKENUMz1OZTYpXEdKZ0JXKVhtOFlBbTQsQFJoL2xqJDE4JDVmaW9CR3Frajg6Oz4xCi0uUD0pX05zMmRyQkdyMyhXKFI8MVleIVlsOEhXQTEnU0hTQmkubzgwRStOJUxCcmxEOyVUMCZyVVgpbSJMRS1LdQotLElIbCokbHM9cGZHMjIuKFBEaUxhdVVoWVItSEM5RFhjbSE0XTonTDQnQ1NMZl4tNGZtJ1MlXkNQO0ZgIjlcJikKLT49VlJSUD5AJzQ1ZnQ6MjZeL3JxZUAtSTcqRERaYWkiaCpjT05WMkVLOmtJTktHNFNqK1BpZSRCZWgpaF5kL0BHCi0wXGVgI04uW10pKTJFRiREXU4xY0dpWlx1SmYnay5Mbl4hLC1dMiQuQmxEU3MoL0ouRzkpOHNuLzhiPihpP0YpXgotQylYWGM2XjZfMy91MGpBVGktdF4uVShmS1NOSzxJNFZHJElOWFskSC5OdGk2TmlrNEgwSWVDbTc1a0U6X2tmUm8KLUxEUFlWVWgoOWhAc0kqWlNUQSlrOmxVKzphJlg0PUEoYGJHUmVHR0JncG4/V1tfQ0YkYUhqLURbLGo5VGI0SnJ0Ci03Rk8kSkdBWjU4Q2l1bzJYOjlkVlZka1UsS1xScjY2V1Vxc010YmNzM1goJ00jb1VqcDopPT0rOnVqYitpXSpOKAotWjxXWzcxRk00TXAtRmdPU1klNEZuPG4kVFY1X2BBVjNzO29UT1A2Pz4sJ0g0YElYMF5rck9FO3J1VDVJMzo/KzoKLURmYC9hXm9zNm4sc1AyY3ImX1A3Iyo+WS4pMW5CaSMydVVqWyZuXlwnNltbLWVTKTE4YyNdQmAqXGklJ00tNnUoCi1vPWVZW1xlR1k8KiZvODouLFc+Ry5tOGBrXm5jVCRIVTIwLSJmOFJCNTg+bFA7K2RyWkpEaXNcNzZwOE0+NWhqJQotXVc8cSdJYUhOQ1M4NT5MJEMvKCdKKVAnUjVqMSZsL1RRWW4kdSteMEUmOU07ZF5DLz4/dHAxUDFfOWtBX0IiaFoKLSs/WTRebGxKRlFeUUA0OT5OaTouMjA8NDUiKSlzX1YiaGFEWVdzME0uSydfRmtWLmJATGszSTJCTGFRTS5BZktPCi0jUltlKz9wTjUsX15HcUhAVz5RXE9bVVRiWkAlLElrVWUzPyEjXkRzZ19gQmtLNnAqcmBDUFo0I1FvJGE/ZF0/QAotSyVSSCYmUyc6SmtJIyFBS0VRaUssK1daYyI+V00pYjhlPXU6ZihlXi5ZXm0rcFE/ZHM2MC5pcVFvUCRvYjA2dUYKLS5BW0BVZTBjUSZfKmVjYUtKXEclNkFYIz8+OVFUNiNnJmpFS2BjdXMwRUkmQ1QkWXAiXy9iODlhdXIwOGBiLjtsCi0rPlgzcW0tMSc7O0BYPE5HdFssJzBTXXQrU21VR2NHZEVxIU9eTWY8NiQoOjJBOjI3SEJNMC9lWjpsWEpbKSV0bAotanF1IXRCYWRaJi1HdFoyKm0lVGlSMFRIOSMzYDkvSkgwako7M1s/ITBPRk1UIStcNHRVM1RVKE1JPlk6Iys2LlEKLSMraGVZNWxsS2kzRCcmbmA+Tlk6P1c2aC1jYUo2JWN1LGtKX3Q2a25kWyY/UmA6M2hBQXRCUDpXXiY4WilJbEIpCi0+PSRtc2I1ZV0uZS9Yaj48Nj1fOTp1WTxPYW0oU0NfLjlESiEuQDU5PCo6QlkuTk9vMjJlYTorSzE/ZEE2MWR0YAotJlFMZVpaVkdcOF9xXjk4TiVcay9AMCZRYkFkdVJBNW1kVz49PDFuVj4haVRhNkFbSkFgPF9FTyteZWU2OjVwODoKLSlcU0NgV1pEVy5YdVYqJysoUloxMmI3QUlxQW1bK15TU2MqU3VMIkFhK0E3QmwrKE0oZU07RXI9PSNiKF0lMCEjCi1EIVhdK0hZW0AxakNUWj5pMStDb0B0QyVGVE89THRTcUMpP0RCTk1mSkd1SV1lbiZ1OmwmR3NBalEqXjsuZlxOIwotbTBHVmcpUGZJNDllUTdLOUcuTCdgb2QhZ19iKkxwbztYdURIRXFmdGZtbGJ0L3MlMWVpKnFgOUBoLEVhJDNXQ2cKLTkoKi49Vj9eS2ZlXSQ2PWpSZ2Y+PHNqLDg1aSF0Q0ZjYT1cYXNkT1ZnKU1VUHBSXDgvMWtvdHMtR3Q4NCI7MiwjCi1iQjAlQmUxTXFaOlxDVE0tRCIxNGklb2xFTStUWDoxPWk8VkFBVyIuNEBcKzY7LHM/aDJHLjhVUUVYI0BLN2ZkKgotSj9eal8ibVhlSzc9SjYvWWVDMGg4TVwySCQiKG1XOlRtZFZIMzhEKztyRWMuLGtOIlJoPUUlUyRlLXNdcCZrZVUKLVAkZV1sVlFOOXIjLypBUiNzczErJi0+XEwoQldONEBVUU4kUiZvREIkXDw9TmBUOitQJjVfa2E1VkNTXD1ZI14nCi0rJU5COmg5TlVMOWBnWjA1JWNDYywkMVhkOmBKLlNoTCxOXHAoNkw4JjlCc08vRz8wI3A5UmVWT1VIJClCK0NWaAotIkpfcTwnYiE4JTRpK2U1bTtVM1ZrdT5qPS02P1FqNk5yNyghWU1lLiZpa1ZXSXFka3JAc3FybyMqOUF+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTE5OTMgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0xOTk0IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTc2IDAgUiAKLS9SZXNvdXJjZXMgMTk5OCAwIFIgCi0vQ29udGVudHMgMTk5NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDE5OTYgMCBSIF0gCi0+PiAKLWVuZG9iagotMTk5NSAwIG9iagotPDwgCi0vRCBbIDE5OTQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0xOTk2IDAgb2JqCi08PCAKLS9QIDE5OTQgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAxOTkxIDAgUiAKLS9OIDIwMDIgMCBSIAotPj4gCi1lbmRvYmoKLTE5OTcgMCBvYmoKLTw8IC9MZW5ndGggMjY5MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkJUJqTSIlN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGXElYTHIoO2k9SjNdRjJCLFE6T2w5dWg+VkkjY1ZNMjlARStVakMqPVFRKllmZ0VxMWBPYDtiMVZUbgotKz9JaGFBZjRhdWRIPERnOV1vPVxUP189LlJuVFI4IS5eImVOXnV1RWhoRTpBW0xgWkVFOkNjV1kwNDZuNDBKSXQKLW5bdSVlZFBAazU4Ql9WVTArdEtMNVtoSCokU1ZbJWM0RS5dLihVbDc4VStGT0wqPURiXixhI1tDYEstRFFyKlxqCi1LMVBBI05UMVQiMTVvXzw8XTpNRm5CPFNGRHFZcCJLRmhoRjJhVCpoYjRjQTdiNklcTS45T19UNTlrXjJvPkQ2IgotN1BjXmY1aS9SckVnWWNHYU5SVU0nTCRIYk86VmxqZllTMS5fbDI/RktxVjFBKDVkWkA1M0lZMU87ZENTWDp0QFkKLThjcDNRM2A5Si9pOkZSU1VvJDE3VyckNSQlPmU4aVNOWUppNVdjWE1QZyhzWUBqcCViTldYczQnQFVHQW0lOyVVCi1IZDRYM1s+PEhsX1o5YlgvQTFRPmQuTCs0J05iUmRab0RHNVhBUk4mMmIybm1OJisvNCZEZj1HJi81RVElPW5OQQotM1kjL1tlSihVaykhLFNQQSFsMmolJHJaJiY1bEsja3Q9VWEhM1IjalRyOmRFYkVDWVM/PC9gX0hQNk11U1ZFam0KLW5QLDk4OnIsRWBgPTQkdGBBKiNSSmROP3IuVmQmJyMnJU4uWz1qMSVgNVNbVDNnNVQqQ0c5O18uVCl0NU5ea3AuCi07LjIuWFVvKmtER3MoNzpoTlhRKC9kMnBFYSleLE9TXkNwVURkXl4/IlonVnNMVCo7LmAuZz5dMyxtZSpCckZUcQotJVNzPW5OP0hBVT1yMWNIaXFWZU8malhAKmglKVEmM1JCVCRpaixRb19YLzEwPjNhUCkiVzBCTF5wJW4pXTRwISMKLSJXW05FI15CUCsjJT1gTVkuQjRzaGdublhyNTRKLVFKSCssYjxyKVc0YzU9P0lySTwvYkpsPEFwXVhETGUuXWVSCi0zRHN1bDxcazNYIThdZjZARmhFO2piUk06V0NJNTdVKUw9bmxKaWU7Uz0kN0JLYE5iIy06a3ReKW5rVlhkZUZMYAotO0JYLik9PVZPVSxoQ29TRjpgY088TE9VR1RuOzdyS1kmVWBMP2pZWkw1UTgwUy5hbUM4RmsyJjoyNVJoYmdiblwKLSgmNVAtaVQiL25gJldRLmRjLWNIKWRfZjg9LC1pWGRuQ1lBOlBYYi4sXi8wYSlnUic4Q0U1NzdecmkpaDE0TlhdCi1sbDpYJzdMREc2MlwsOGxFLytWPlg0SmI5JWtVWiEyb0s8Lil1RE9HOTItYWcrUGEyMFJJNDspU0hIXGM+Y1w2NwotbXRBS2VoaDVYImEsVmxQLCIsUG0mVj9gdGZzQE4vWStkOjA7IS9SI1JENFlNI2A5NCVCRllNbnItOmUwODAydG8KLW1cLSpVTjJqXUUtJU8nL2VQW1NrLzU9Yk9BaGBHQz1wNzFNW0ZIVF9IUEtfaipjXUlrYVloXEYqbEVVdTQkZyhkCi0sclZGb1JrW1lCXnBrOjZwMHEjM1RMMUQrPCchUFJgNDZbQExlWiIuIksxbzJALHFaOiVdUy9fYVRwc2RqVygqZQotI2VcJGBmPHR1cmAwcmJxWWpqMFg7XmBRcCVAQW89T2dBYiRbMGNLLSI7JHFdIz9ab2oobW8rTFc8Iy45UjsuamgKLSwzTlhmXyVUSys2PGxnOGUhUCtOOTIoJzAiX0xgKD42MHNEUiVWYlFmaGwuSm8+WFsmN2puXUcpSWs5Q1heOC1aCi1xXm5ePlxQQWlgNDElQzQjVTI8KCVVbVQjI0ZSZDNTY25NTCdHYnU8PUZOdFdaa1FPU2o7KFBVUm03PlhBWFlGZwotQDdrXVonQFZQTzorTlcsVmcqJEpfZ05Ga1RxNkkmKUZtTTYrdSxuYT9AMSwwIiNAY1c9L0hEL0peNWZfLlZNWHIKLVRybztoY0BaOVllU08nMm83aDgpSDlgKDxNLjxMVFJcXC86ZjFLTSJSQW9hc0JzJ0xwNWNMO1RSXi9lKDMnK2U0Ci1TTFdNXnAhbFlbTVRpQmolN1s0W1o/ZjJpT3BWYEhEKjYmZV1ALzE1P0RPZig5J2RRM1w2dCR1Xy0wbUY3LzxMVAotN2BlaClBU1wqTC5YS2JFLEBwJWRjXyowdVouUU8/cD41MUdKaC83cT10OnQ3Nk9SRl5wPSwhPyhwXCxlZ25QJl4KLV9EIkpGO11HZyw5YiVoZk1GXy11QEY4cTpNXCJBcz5fSFBvVVFmLWkmXzdFM0whN0tlL18yNF9dS0NjTzFraiotCi04SVorWCdbQzsrTSYkSWs6TkJuJD48Plo+VW5jNEdOMStaMWZxRSEjZEJLZmJmcTBVJ0pRWD9GTFF1SExfR2pRIQotOEJCSmdYZ0thYWNmRDlcbUIhKSMyLiNnKVIpYS9TTkJCaHRpPTM7VS45RzRHR0RdIyQmJk1uJilcT21gNEBiUy8KLS8lN3FSSy1fVkUnciMnXjlMaml1Wlg3JlZKbCxwRzhBKlFTUHVARE1GJGFPaVY4RlZxWF1aTCRBO0BUIidtXzMjCi1HcXMpRWwpRyghOjFAPFgtP1FiNlU2SXI0bjpQQlhHSDRbRic3amtWODpkbUdmaiJLMjFAOiczUXBXVz9iUzxGXAotW08tXkVMMmdXOXBMK0VPN1ZKKSInTzwhUilra2hMXS5tSz9nZXN0Z2FLXVJkQyo5Ym5pKHQpSmFsYSgsMzNDLV0KLWdSQVRlS3RFSkdpWWBzKEVbKERbMFgpMydLOiQualVdYCRYZzlVR1dwbSJxTFkjM2BnQUcqSC9pQFhcNSh0QnA/Ci0zW21icVgnSGFdTTk9b1orOio1Yy9SZ1BLVy9XSjhlQVFZJG00bEJFJSM7Smw/clU3ZiQrWUFJamRjKDY5SVdBZwotJSQlSiJMQS5rMmpYMF9LQChbO09vbzE6PUhhLzJxXyhkSk1ZWjtkJE4lbVNKJ2B0QVwvXlhHWlFgUjIuXXBiOW0KLS1jTC5qV0RUVmEsUWwiTyEuK2hLXTlXS3VxbkxDPmMrbGEhSm9HNVNWM1glSz02ZyIqNmAmLE5cPkwrN2RkRHVlCi1VW1dfaWc2blNMZmhWIyxub2Qia08tPXNOVyU5KD1gOyROL2paS2A0byhIJG9eaEVmfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0xOTk4IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMTk5OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTk3NiAwIFIgCi0vUmVzb3VyY2VzIDIwMDQgMCBSIAotL0NvbnRlbnRzIDIwMDMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDAyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwMDAgMCBvYmoKLTw8IAotL0QgWyAxOTk5IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAwMSAwIG9iagotPDwgCi0vRCBbIDE5OTkgMCBSIC9YWVogbnVsbCA3NDEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMDIgMCBvYmoKLTw8IAotL1AgMTk5OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDE5OTYgMCBSIAotL04gMjAwOCAwIFIgCi0+PiAKLWVuZG9iagotMjAwMyAwIG9iagotPDwgL0xlbmd0aCAyMjIwIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQlQ0wuNCc3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZcSVhMcig7aT1KM11GMkIsUTpPbDskL0JrIU1IYDw7XEtkKlFLbFI4NCMjQnUmQTRfanE7Im5IJSMtCi1FJipuVi1PRiotO0RCLXUlKDFfQ0dnXjAqU05OSF1SJiU7QyN0ZGhGVkNaLztCIzk5Z1U4NUxgVzdtdTZWUT04QQotJi1ZP3RpMzVKJkBhI2FGQEVdTGUzTURBJktmVUFCNVZgYG1VZi1mQ1RsPDcuI201Rz8xNjBLRztCKEBBNmMoWkQKLUMkPFJRJSQxI1xcOyE7Wj5pW2REQ0BfLURjc1UpcSJxRlUpbzAhVVxpIi1DWThEI2cnJGtWJlJLRURuTW90SmJpCi1iNDdeQUo1QSVeVU0uZS8lWis8Q21TKExVQio/OlAkND9tOTg3Vy9XTC5KVnVbQlcoWW0wZlQ2YjtMLyY8Iz9QPAotOjtOK1goUE8kIkRBM0AiODg5J11lIiM0a2BLSVU1L1BDXiVmSzUkOmIjVUlAVVFhUjBLc1QhWlxkIjZPbTNSTiMKLUNkQVtcVVFVQmVZW2FXZjpKQjMzZGUvPTtKZlldOTYndUttOF5KRyJrbT5oODVxOVFkRC1dIl9EVUBXYl4rVyUjCi0wOCdHLUg4PyY6aTY0LT85cW5wSU44bUlhMVA+ayJjblVNOzBMLkBPLkhvcTIiOU0tWGVcLl9jazQvdWFHaWxkTQotOkFpRllWbVZlVj5aWFJWUk1cJDdqLyQzZ3AsZ3JfTllfW2wyaU02IShHOmBDVF0pLTkpJjFhXzonayU0J0wpJjAKLWNvMkFDVUI4OVYwOTBCdWM3XlRuJ1NJQUVDKExtKjBeRm8qKSVhcU8lXG8tQHIpUS5XPDEsKSRVVDVGRlU+U3NcCi1XOVImPjUsIz1yVjJWcDhbJWBULmlCVy42PE9wWkNJSFlsay51MCczOmY4OWY1c1dJQyU/QTZnPVtPLFFJXTRNZAotKUN1ZV4jZzg9azNLZWswTkRnUEEzSVFuSUJcTDkqKSVCcjhpTkdtVF83YDNYXmBpPFsmRGY0Jzo/Iz1AQk1ZNmAKLTIuVysyIVArM00yX2lRLS5jMT8tamgxU0JSJz5WX1kvWTRmXitYLWlSSHJzaiVeZTE4MysmWk1bczlKQWk4clA2Ci0qUVVKbiRETHByOSUqL1hIb0JoWTlbI05PcFFBTywrXTcvYEZqImNrZ15rc1dlYDhiPV9fQXNMNWx1NDRhKm0kVgotTD4pOV5PbVInVnIidXArIThzNWpAVV1ZM0lbLEZLaTt0Y14uQVNnJ1hSbldNUytDYmhMZnBzbD0+ajw1UDhIW0oKLWVMbFMhZS87RTQ/bjpfV1llZGg1PDE9XlkuT105SSo0QEReXzRvOicrSjlAWFlmT0NTKGlpSHIuKF5FSEshWW5mCi0wKlVnYGZLWzxfOSZJZiY+TihqQStYWk9fTVNvai5kKHQrK2BWQEFVJFBOXWQiY0M1ZU4wVGZ1RkRwKkJHcj1hSgotS1xPImAvZSh1Iiw1RChvaHFSOVRUbzojNFtdWUleci1mKS1sJ1s1cHJZTkc+cCd1WC5fKSIlRDpQNDBLIkg0QSIKLVo7PVgwVEIoV2dpL25hQlZPbmxba1dMKFQkbWwvSU1BMVooOkM5dE9cLm9eQylVbydsPTA0V2FRbllLaS0kNkFXCi07QUhFZmZrYXUpQUBfcEZwKk0/MCklXkNaO01wLjBHYlxCRjonb0FTOiE7bmxRJnQ5cmRKNjFEOWJBcVFZV3MpWwotSE1gImI6YnQ+VGc0KDM1X0lrRmZGWD1TZjEqdCVpTlFRcUlgdSpxVks5MFomT1hgRl1rWEdoJmRwXDwjLCIwMSwKLSFaPi4xMVNET2A0JVpbNi1ZUyNaUiJaYDxiZko2SEFwZEUlWlVjTjxgaGBqO1M3JHJOayFxXTJmZmVIOEQkNyxYCi1JWSpDOilaYUxkJVs3X0A4IXNmLkJQYDVXUCxLM3BZVCNwbUMramhSQl9ldHEvT2Zmb0JhXzMiS1tJbVA7SjlvIQotJGZNNmJWWFZZPTpBWmBDRC8rOGRSXCIhKy9RJk5pQzdpa3FZb2onTC8jXnVCVXNcSi85bCUhZVJGKzMzYEEhZ0AKLVRXaSM6Vk01IjVhbDpTYGQ9TWpNX0lVdWM5Il5fam8pdUklVVdAXV5hQyFTLDpuYzBrO3BcTDs2YV1tcVoyVUV1Ci0kQWkkUV1SSGhyM0xTUy5lUyhtXVdNcWRhMyFOdSwjZCYlbCUiV1ROIVdZbCshb1JyITdOPTc6Yj9cKTlvcitmKAotIy5XSGdoLU9sazA7J21gUEQ1UXQ/PDE7TzNBcEY/O0hwKD1UTipFRCVMLzlJcS85Yjk+cSk8RmRgazFcMyFxNmsKLUdISzJyJ1NfXmkqU1tubCU/Mm8hUlZSM2pfI1BZYkpWPiN0NDk/MGA4OEFYRChfSHAvYlo4W2o4ZSdhUmk+P04mCi1KZGMsSzQ4OVgwI01ZZGttW1VybiExTmpuXnBYWFFtRlJjMjNiVjxnVV8lL3VDXm8/W0k1STQ6KGdSVDBUL1dYPQotZnQ3MjRZUSxrLF5zPDMoQ2AnSzQ/bmZFWEphbTBhNiYxRSgiIUFdfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMDA0IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjAwNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMTk3NiAwIFIgCi0vUmVzb3VyY2VzIDIwMTAgMCBSIAotL0NvbnRlbnRzIDIwMDkgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDA4IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwMDYgMCBvYmoKLTw8IAotL0QgWyAyMDA1IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAwNyAwIG9iagotPDwgCi0vRCBbIDIwMDUgMCBSIC9YWVogbnVsbCA1ODcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMDggMCBvYmoKLTw8IAotL1AgMjAwNSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIwMDIgMCBSIAotL04gMjAxNCAwIFIgCi0+PiAKLWVuZG9iagotMjAwOSAwIG9iagotPDwgL0xlbmd0aCAyMzU3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQlRC1kRik3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZrSSlZZ1luNVJacCRuJV1HQiwpWmxnWz10Z2EkIyhvTCNlNFAvITZjSE5zUVpmOlgxbjBHOV9sWEo4Ci1GUmJtRyFvbSJsXytfK21ANS9UZS03VSxXJT5QI1JicUdOUi02WVhXMV5wSCZgXSZtUEpDNj1hVUVeNzFOMWc2awotWEZwXFVINFVQR1c4bkt1X2xMXjowSShVPTBWcjg1aERQZ3FHal5pUDpOMjlONHBZWVNxRGRHY1UpUS4sbEpoImcKLTo4IlFkS1Y4RCgzQlNPWl47VkJhITs3XUpqJE8kRFcrMSc7LThAbExvJ0BkX0JXKVhtWjlbYi5MJyRSKCplWS86Ci1TQEQ0NGtpPVBDaUpiYDI4Y3AzbjFlV0JmXUllazpJJkFIVDFTU1YlY2JXIyQzIkReWDxcOTlqLzwobmJAZE80QAotJG1XLCctQjA2VCt0OkNVVXMtWydOKnNnQy4naChHNXRGcywlbjZzIThFaVdEO2xGLkMyQFp0WU1dcSkhV1s4JToKLSNZUHNuMDhudGw1Ik1EISlSPC9zRCNZYSc4bi9uSEJYMjRTTWRcbERUKjZCb0UiaWBgI2lMdS5PPGNNPSU+MmpNCi0rcS5zZWAmS0o9VWJGU2VqJDslWE4yKzIrIk1wKCdcU2hwOVRbR1FTMmMvM2BOTUNtJlhAMzU9LVAudDVCWiJzdQotbmUtP2ElVGlHSCdUOF1ZUGFCIXUtdWlsTE5lO2xFLUBuRyRFRWZaKz5vNStgP3RQQiYnci9KVzgpbiFrLj80TEEKLXFCZk0uVjBOby9UdDZtNj02bnRDJVJcLFQmMnNkLyFZYz8oK2NvUF1MJmpccTNFaWwkYj1OL3A6cjpwbyhfdCFvCi0kbVQiISNmOkJ0L0k6RjIhaiVxJGc4MWtiJSY1PGZXZUNPPS4+b2YzUDckRVNiS1svTCxPVUhPS2ROK0FrV0ZrQgotImdtbUQ6RUpXKCVNcnErXGFBRTpsW1M0RCE6MkRQUz0lTV0tZXQjRSYmXi9nMyZZKmZUWWRGOywiaS9ZaU5TYnQKLVolTk1oa3MiKzpdW0YxVlRnbWVKREQ4Nz1bLDpXZyNCJkwvIzRJSlpwJC8oMiM5Z3QzUWZePCJDUmFLSWhHXiQvCi1xP2tpKzc2IUNLJVVgLDNqcWdKMzQsJGJHVydXJzRZJjddMidGSilBaTw5XC40PSVgUUEicDkmVCUhIixqQEsuWwotP3RddGxVJkBKVEdUKilAVCFVZnNpW0JBRjBTYEtXKj1QI0YyLyVqSCwoYGksaHFUMyRrX3RkXDdCMWBkNi9yKFcKLVxaN2NxPiUhWylSUEArKDBTVWhpcTpcWUYlRXEndSttJ1E8ZSo2RS0rSj9XYSFgbGEyXE9DXW5ARD1QJ141aTtYCi01J05yTVUpM21sJTlLTlo0TWQ3PDJhR1MpPXUtTGs4MC9AI1AjYE5rTS1DSUg4MjI4I0xqN15NPFwlakYmLV4lQQotJSJnU2kkcjFoKS5mX2dUY20qLU1WLzVZNTshSm1rQG8jcSFLSkw4Y1FCbV1vXUknPGludWllamJ0czlMOS5yL28KLSw7USdTOHIsOUw4RWY2SCxeYiw/KVs4VydKPWhRTWpQM0VHSE5YQkIsbzZaXmBfUGlNRFImSE8hV1w1byFyLCtoCi1pQGxYNStNSkQ9VyglJy8oMVJJaVA2bUxnMjMvbWo8V1c3bTBCTlxcUidSaUViZGozIWJDT1xQVFhuQzZvV1ZFPAotMUhcYmVkOXJTaFJYWDBscyZpKSNURUFnNFppTkVgPyVNKUdKZCZIVVZ0PHJOLW9AM0RwIjUlKixRKzFUV04zLWQKLURASWQ2bTl1XixUZTlHVldmXC05JURmXD5TZTAycT4jN2FuTlAlJGVjdFxCc1c+YyZYaVVdcTJyLnRNRE8jcDJyCi1eZSNZRnMuUWZaLmc5WHAnN3Q+YmdkbDlkOD9uQWtqK2RHQiFLSUMyTSEkIyRFZlw+QDAqVTlhLCI7UmJAWlpDZQotNW1Ub0hkZHR0NmlrYzpLQmJJWSoxVUIoKC49PXJYbTZKRzsoO0ByTD9PN0ZeLlRSPU0pJ0E2Z1ZdYkInPTQwXEoKLUpIXitxb1xrLEpsTzQsT0k7T0pUSjIrbUplUj5PPUV0NzApMVk3MEE/UyReXFlRN1VPIzZrPD9RUEYiYlBpXGBECi1NXFRJX0NYb1hUVEheZTAicSRHP0ZAc0E5ZmlhNGg/bkdKJ1tPX3AwPTUtRys1dCxbclE5Km1UQColSElCUi4mPAotKDxsbWdOWjJrMDEzOW89JjZuXmVXNlcoaCJmQkIqVVowbSlKSE4mXllnSnBGVlUyZkg2JmkrKTZuVTghZ2UsSUQKLURsNkpKWyU4NVZrNiI4JFhtQEJmMWg4b2ghRDlyO2JHWicpYDNXLyMrbDk9cS5JLGI0bCJdUDQlKSY9JmJAKHQpCi0kTmN0Z1FpVGwxIlgmc0FKaUkqREAyKDhINDksbEFlRTo8WEVpN2FpVkBaOXNMam1bNCVFZGhvTGBhaGFYajFNJgotXF8+O1psVUQ2I2RvcmpzVFoyWGAsQUcybGVIak43NzppK2ZKXDF1RnMhRyxmUiwmPGs/P25ETzJPcEdrRFVwQU4KLWEnLC0jQ1lGKDo/bkFWOSFsbC4iNENBN1JCVFMzYV9rTkxoUnVuR01jOVIiRDVIRzhrMExdXSZwP0w2N1JxUlEqCi0sTG0nP14pdShAPkFTcjsnPmgvMSgnNiVjT3FeXzoiYjwnKWdtaCxOTGAkM34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjAxMCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIwMTEgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5NzYgMCBSIAotL1Jlc291cmNlcyAyMDE2IDAgUiAKLS9Db250ZW50cyAyMDE1IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjAxNCAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMDEyIDAgb2JqCi08PCAKLS9EIFsgMjAxMSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMTMgMCBvYmoKLTw8IAotL0QgWyAyMDExIDAgUiAvWFlaIG51bGwgNTUxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDE0IDAgb2JqCi08PCAKLS9QIDIwMTEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMDA4IDAgUiAKLS9OIDIwMjAgMCBSIAotPj4gCi1lbmRvYmoKLTIwMTUgMCBvYmoKLTw8IC9MZW5ndGggMjM5OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkJURkRVgrN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akZMTyojXzdzX29VY2dZcHVQYVZCK1Ysbm48UV4/Jitna1UnIXI6KUUmSlBgYEAnXkdcXC9MCi1EJTIkRFM7SU9UKHRgUHFkRVA5KmBKN0UyIiVfZ3Q/bk45KjNKQyVcVEtqVltTXXJMJipYTG5NJi5fLzRfKk9tUQotaSJbJTM0JlpIaWZQYE0/MEYrQCVdWm9PLypCZGAmaDgxM0tZOUIsNVdNWmkuPDolNTdraFBYPitUUCVuTlQ3JlQKLTE7Qm9wVyJoUnRpNF5ZIVVTKl0mTmFrPlVwNVltdWE+MUVnT1JhZTBLOUhmSzQtJnEpJ1otazwwKzxRbjtcMVhCCi1AazFbTjYzLjMnbiNJXC08XF5YKV50QmloOz1Oa0JYKVMsKTQjJyluX0QpTFAuVFI4ZmxcJy1rXGFHPitSPVYqZQotWFVQU3QwXDZuczpXKEpNJUtUcyomZTlqc2NPUFYlNDM1RHI1bSxSLmBZJy1QX2hzJF9Rbk87Sjg9VXVhb01ESXQKLSV1PTNwNnI/b2tVYHRVPStNSzRbX0kwXEsiWDwwLyxsdDlcOmQybXVHWnJlMzo3QSxnVkxfIT0oUERqL2hVLCxPCi1GUkleU289M2ltJTE6MXQyRVxsOjVXVEE1IjVZdHJAMCJNMWZBZ2hlMlRubmVtL1hxO2kodCZISz8ydCtOTT9kOwotbmReOWhmRzZUcTxJJGxgIjA8OipOUGQ2U3IzNVg8Rk1scVkhNyxuakdJPEFtYkwiMlFsNCZAQzU3aVhVOEZvJjcKLSZTdE1hZU1ULmRMO2QjJElkcGZ0cGwrZVFRb05LSGlRaVdANW1pZGZaNSxhcU4kaEZnZkZ0REVONmA+PE1JSCpsCi1mNzdHOmJIRXMlZC1NXEE6NnROR290Nj5WOyleV1M8XGJvO1xGYDZLNydTb2pNYShXRj1XOnFnITtbNjhaPFZnSgotQ0RrVkIzZlsuTl8hdShSbUQhY1AyRixgYTY0ZjchVSNKLFNxZ2JRVV0uQzA4TVxvb1ZVKnI+QE1NKSMvQF4/OVQKLVpCY3NiYj1aN3VMPCo4LDFLTUUnO0IxRVc2T3JcaiksXy5fbik5KCJGJUFaRUxyNThDb1Q2bkosOUd1LWFSUExQCi1RJkpnTlYucCxDZC0qO1EwKkluVmZdLEFJL2Q/OCtjTSo4bkRobzhoMSRKMGlnKVUwNCdNOVVANlcpQixhQzYsXwotRmFrWypnJGEnJFElciJiSkRpJXMwKjoyPSRBYEA3blMlUjFrVzI6ZUMsY10hS1M6dF42XllrNUsuODhQIVVbIVMKLTE+bTNiISVwTjRGSUtqXUxBciJgN284LlEtXFQ6LCdTPypIJERBOl0iQls+aEprL2luImooUHFWNlg6WmQ5ZDEiCi0rUTdxYy9Ec3JWJ0koPz5baUYhPlI2YSk5NmA8Tzc0OVZWNCclNEVDIVFqUi1KQmYwOVUkJGFFTSxIOkxgKUUwLAotO0spJ0cmLUZeOCRfMGxbLE9hJSFcTS1ocCpZSUZXVFpHKT86c1NOOT1nO2c6SlQycVxQKjhzXjpnISQxLCFFQUgKLSo/akJEOG5hPi8vSGBHLFJxb2VKZEZJSzluQ28iOjFAPlFaZChtNjcjbmBuISUwYU90LDxabTJwLlIhbDVgM0BHCi1ML0BCSF9oKSJvJiFhaF1AdE5UL0EqUE8+WWMqamNkZW86Om9mQGNWPWI2WCpaLl1pTCVLTSRSIyVQbUgqVDxfcQotIS5rMkBKRTYjQUZAVjAyZDspIjcoNGQ3VkNSN1xWRXJzO0kpQG9xXDY3SD1iIWlMQVVkND5LNy5AZl9MPC5xSlUKLXBnYWttSjJkXz8kREc8WjpDPGQkLTNSOisnRVNQLSNiY0NQW09LRz82QGEpQCtWSlhnUUI3VTtAbigjXWFlPT0uCi1lTjRcXFYvJWxTbGBsUCcqI0E/UiNjVkVJY3VBJzlBYFcuZFgsUyNWS2hqTClBP21lLWVtJEJJZ0gqWiVeYWQ6ZgotQEJUai1PLTMrWU9zY2Y1L0hwQT0iMEJeJWE4S2c+YEZRKFA2RlJBc2ZVazNYSSE8SiJtSzxwOkd0MFBSKiJgMyUKLSRvTTlLVDk9ViZTXz83NUNIPW1UX1pgVnRqTEpNbzswMTMiITRvJlNGZG42YURvXXU8O0JTQ3NSTCdUciMhJHJwCi07PXUrQyE6R18+QTkwPmc0Uj81VS4+PkNMZkdQXzVUbG1cYTAkWkEiZmlkaykiUCpsWV9GXjopZ1dfLE1iLWt0VgotPSI+SUYvPC0kWW1VTm0wa2skK1Q1XkxyaickVSRVSVNIaiE8cCxYVWYuYidNbUhnUFU8cyQwPThxVClBKkkiNVYKLXFKcm5IQTlmWlc0PGIwMzR0Li9kKGtEaz0icT1WYGJbVWotLWddb2dQQnU5QEEmSz89Zkk0NWZNTVNNZiRbNislCi0wWUFtL28rNVY0NlhrbGJFK0UoKyIqaCcwVHNPSFkuPy5HYEdEJ0FBXDhraElIbmxPYkFwWT1FX0JqPlgmNzhSOQotJz9GaUYzWSpwRC9aR3BNRGxgKEZKQmZcSiNia1o+MXE2Y1xsRUVfb1E0MEB0OXBGOmQjMmU/WCVGJ2BEPFRZJWIKLV1oPTkvIi9YKVcycidARUUrJy44Z1tyOkNpXFxTNWJ0YzBMMCNmM1UpO2pJIjwrJkFSSlZRPylSZzZacVVCQURtCi1GaC9ja0I4W1wvPDRmIjYvLmM0YkwwdUdJQ2doVVA0JzMnQClKW2NfUjdvS25pLENyUGY4XjMjTVdycFNXXEA1UwotUlEkRmVSLXAyMS1cWlQ+LWpWXEZAVi9JISpDRjwmWClOcEJcaE1mPyIqQkkvOkIqWF0mcG9NMj91UkUpQzhqPnIKLWpLaGwyNGE5IUg7PDlTZiIlV1t+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIwMTYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMDE3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTc2IDAgUiAKLS9SZXNvdXJjZXMgMjAyMiAwIFIgCi0vQ29udGVudHMgMjAyMSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIwMjAgMCBSIF0gCi0+PiAKLWVuZG9iagotMjAxOCAwIG9iagotPDwgCi0vRCBbIDIwMTcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDE5IDAgb2JqCi08PCAKLS9EIFsgMjAxNyAwIFIgL1hZWiBudWxsIDUwNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAyMCAwIG9iagotPDwgCi0vUCAyMDE3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjAxNCAwIFIgCi0vTiAyMDI1IDAgUiAKLT4+IAotZW5kb2JqCi0yMDIxIDAgb2JqCi08PCAvTGVuZ3RoIDIyNjcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JCVFRiZqLTdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtJKVlnWW41UlpwJG4lXUdCLCgrQVtaP25OOSojKlRAbFFZOlkoKXRZayVKOmtLVyZWcGNgO2tfXyUKLURPJGImazQmSylfSkQ5JDozXmdjSkVDci1xLjUkREpYM09CIjlZPURyc2hoZGw4Qi0xSmZZXTIrZDx0R1ZQbmd0Ci1VT2YvNDw5Z1VvIWdwNkktcVlcOitYajlTKVs8Iic+VDNtaT1LJTk0Lj5ZREgjVjZxTzNbX2dkbmhjQlFuQTctcAotIi0/RWkiVHMiZGBddTFmIj5scnE3I0RPR2RLQFNeMFE2IjMsZldBU0loJS83KHRlUGU2ViwnSyU+LSc2Ji4kMHUKLWo6RGBwXnFyIWknKnBpRCJYPDAvLHExR0wyTU8yUXFpMkxDK2c+TTo3O0lnUWtkazV0QE1Bcz9VVGNNNVouUVEjCi0lWywxQGA9MWRPbDhmPCg4M2VxLmRmXUxfO1QjPCtyc3JtdFZabT1PRVwrcHQsPTwxR2Q9WnRYLkw5S2teKjNtQwotVy5aSydVQTFUNiNVMStDL3IrNHEvPU9yJ0AobiQhNlYsdW4jYUZcbjgobDpfaj5bPG88PztiX0ZMKWA8ZGlpLEAKLSlHUUlATVtFU0Y3P18oQEshUTIsPW0+VWAmbE85bGFfVi50MT5vXHFjdGplKSYlNDtKNnI/PSopK1JSPVEoOlV0Ci1HKlA5Z2U2ck1SJDw2Y208amZbM1xBcz5hWy5SaWM+aj1jKyZqSEpbY0xNKT1rV2ZlZnEkUS8+ZU1tP1ZKQVJEcgotYDI+dUZQV0ZbR181TGZeYDo2R1xSNzRxV1QoPlMka1tRMGVBIWs7S05XWXE+MHJsR3RoIUpPUyRqSTdPX2cnZmwKLTQnJD1IMnBPNExsSlNhYmIsJTgkLilUSVlcXiNpJ2w7OCkjOzJpN2EuLCskJyVjWF1GaShnNDkzKV0hSFxHU1FyCi0jWilAWDo6Q0tpRTVOMiMqJywnVTE0cj9jREs6UyUuJ1JBJi9zL1AlKC03WnNDOGUiO0NnSkE3ZEouWXAlJzJHVgotcyZJSW0idSknT2xGLWRZZEJNQCklSEI0S1Vyc0QiXV8+UjdyN2o9clFMSS1fS0VKYUcqVDVDK2JXOmEkKSFKYz4KLUElOWxCYUlWPnIyVFRnJmI7cXEpYjImISY6NTQ0Ty1CV2UnLT9cLXNiNEVmO2xXMWo7OlgkPz48OlhOXF8sOVpzCi1QI2csWCQ5OFNeamYsWmlIQlExVUA9YT1za2U2VkVJOXFRWEhTOTNPMilGKS4pXFpDSCYiTyckRW1kWV82bExESgotRVRqQjBmTi09I0VYY0VlYkZFWCwkcVJaR0xDRVlgIiNORT07MGUhZ09HMm0/RTkmJEdkSDVuVWFvL2xqWDpAT1sKLTlFWUFOLFdRLSRjKFZiPTZrSmkqUnFAOTloLC0nP1c6MmFdbkZFRSwiMTpXcDRTb0BPSS1dY1pwUEU6MCYtZks9Ci1PaV5kRzouYGdpW1k0LWk1bShxWVRaamQ1ZUhYZ1kwZjxANFBiTDhnTj51JmAkPUJtUnAmXWxaQGhqQjUlSDNqagotImdER0ZRNkcuTTtOKUVEVzJEISNUTGZFRUdTTDtTJ1Isa0JoXkNkUCpRZ0JaL2BlRUMtYE5cOypWaW5paWJAOzYKLVAxIVJZO25qcU8zLSVwNV5ecy9jNXFnaFciLVZyWzFVVWNFKSspdDMjI14xYzlSMDwtJDF1ZW1vMC01TSZvMD5iCi1hQ2wlTnIlNUpkNXFRXjUtJ1o0aUZlQFU1KUdoczw5W0dQLjErITJJQV5OXFFkOiFNUlZLUmNITz5KdWNNNHBabAotNTI7V1NuSEFxIyMiWytYSl0iMTouYENPNEw2ZlElSzFdcWhPPjhhX1wsP1FKISxpOVNOOlM9SD81WyhuOVIlXDEKLS9rciFNJ3VEX0xCJypwOSkiciFOLU5aSkRZJSFyayxHblg6VStgQzphT2lTMEwzP1V1WFRtXzEnTDNpVik/WnUxCi1DUURwPlFtLFRQOGg+PEEtOVwjYFB1Lj4oS0k7bVknc15lIkZFIV5IYFxeK1ApJDoqIytlK1hLOyFGZmwsblNwMAotYi5xTnJKVVhcYWpXQDtiIS1NWD47PXFzdStSQjNMSUByJFonZkgnSylXTWlrUVlKXVg9XCFrTCFETlpwT18talQKLUVcL1pvViRwMFczT2pcRj0lJVlNLjBjSHAnTipyIyRxIjBRJHFhZy0jJDthNUJfWiUkY0heZiU6cnVeaDhWN0duCi0lWksvcChvKEpLPSkoZG9YPk1KKHAoSWhFIjsuLmJdYlF1cSw9bEFUTyZpQnJPQlcjQkQua1NbJU5XLUlqUycwVgotbHRRKlxuNXJTO0onLVNwSD5kTGxUOS1yakpILi1TYU1RVjc2aXMrNENzNlhLJWNMTlZGSFltZTFCdFxUJkpESHMKLXJCa24mJUMpX3IjJDtRSEM3Uz9kYWQhckstJyk2MkpubilZcSlERj1yLENeIkpqWlw7KGBddT5DTGZiZSJsUitxCi1Vb1NILGc/TjtaNittOiMhKEJeTSgmNWwkKztGciwsY1ZTWk8mN2tbS0lJSmIkUSonOWFjXSlNOE5gYEotJlZGKgotQ3E0WkBmcSZQO1w3JnNnPlIkOSR+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIwMjIgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMDIzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAxOTc2IDAgUiAKLS9SZXNvdXJjZXMgMjAyNyAwIFIgCi0vQ29udGVudHMgMjAyNiAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIwMjUgMCBSIF0gCi0+PiAKLWVuZG9iagotMjAyNCAwIG9iagotPDwgCi0vRCBbIDIwMjMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDI1IDAgb2JqCi08PCAKLS9QIDIwMjMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMDIwIDAgUiAKLS9OIDIwNDAgMCBSIAotPj4gCi1lbmRvYmoKLTIwMjYgMCBvYmoKLTw8IC9MZW5ndGggMjUzNiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkJUYnXScvN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfP1tMRWgucygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RmdgIkN0MEBwdVokCi0iJW1TXiojKW1rVkxxQXIuIjtZNzFgQWVCbl84bDg+VlA1NC1EclluS11tLCljS0QpSyFSU3UrMyJHP2ZuU1I+dQota0djXiMtPUhwbzpmSzA9JGZzMHFZZ1JWPylMQSI4OFw7VnElS1RzLjNLPCgiKCxDU3AxVkUyY0UoaCQsJG1PVi0KLSYtbm9vJ0hyPGJwa2dMLTY/bz01IjlYYi4zXkNuK1c9Mi1qaj8yclxpK1QmKDRcb1NEI0oyLGYvL2xHL2c+TSYpCi1UbFxNOzA3Y0M1JkliamFncjsnNyEqJ1JybjsoIVkuMXBwVnMhUF43PXMkLiJSLUhSPk9KImlOJCxfLyUwU0JQNAotX1lZaXRpZERBc1VEVmlKJSJUK2QoSWVFbjcxcCktMWY0XyJVNk9mTjAkYz8kK0hOUlZVX0YhazpkRmtAZGQuPm8KLU5lOVU+Ji5GViViYiM8SW4zQWM9LDpNMiItIjBWVzZWYWVbbmhILixiXCQ9KCFIP1tNTjo1dDUtQXU7X1xlWUpuCi1abUBgWm45QTMzLnJfaHIyaVRcIV5iQ1tUTHE/c0JNNjIyLmZJRl0kQFRfIS1bTWA0Z0lAOmpMX2ZcZ1YiVnBPXgotMFRFOypCR29DW1F0OWt1Wm91JD5nN2BLNDJyKGczPV8lYCVcNz9OMDxuNXFjS1Q8ImwxVzQ+KydpbkQiWEcvTE8KLVRnWG50OE1YTnUtSmFQSiE/VDtNODVWXm1ZOVJOOzNBTGtIKFBEaTRhdVBEak9PPmpdR0ZMaVpkVVRrcDguRzAkCi1uQTM+JFgxJ3VdZHQ+XCthNCkkWSZycVVjaTl1VUxLUCgiNVBeR2JTNC1XXWUoPDtYUkpAM0svajwmMGdmTSNjSgotS2IsNDMiMzM9U2k7IVgnTDVyQUFVTFYmNE5mVzgjISdqQCskbypeSF1qRm0kZlc9PCROWXRkbjFLcEpbNmtbZCwKLVkvZTFJcCcxSV9tLEojbls+XlNtaFolSWhxdVsyb29lLUNHTmdxRTU8Y0hoWjdFJzBBYUYuYENXTlJQZ2RsYWVoCi1FcTk8JTVxOmE7Iz9wbDk0STRPTW8lZzInZ01Vcz9gUk4nKSpSITozclZrTCdtTXNQbWoxdDYha04xVUxOOWNMNQotZzktKC9WUzsmUWklLztvJnI8NGU4aChBVkBCcVgtIzBMJkhPIkRmOj4zPykzMSktL2JEZ2BtLDw3bD10YSc/RyIKLTFEQ2hdSjg+W0ota3NDJ0BMPFglKz9taEJRKXVnRzxnOzZXSlk6cDgwMGhlVF8jUG5sVGhtJExQQz9GPCkvVXFfCi1iaStrTmYkayhZQCJlXzxPLUxwYXMmPl1DOVQjMk9fOCw9UWUmMzEvIUwrQjNUWzguRmAhUXQ0Z20rYSVnNy4oNwotUD9faFwxVnRQMj5YPUgtImkwNmchdF1HSCRWPDB1YSs8RnJqL2NXXilOZChySlg/Sz1gYD5BLTNgOUM+USVpXSgKLSZ1JmJWIz5pPmA2PzoiMytfYWg2XnFjbjJbIihaPVxeKjthXm1dalFZU2ROYz9dSVdxNGdNbD8qaC4rbyI5P3BnCi0mR1w6UV9XJ2hiNW5HYCpBTDd0QC89MlBVTCtKcUw2anFrXUFIaFguOUVuS3JccS1AMTRIM0wnOEVGLnNfY1YkawotJmtTWTs4TVthOjFxJlRnRyVIZClwRi5DQitJKlM+PjZpU0wvN2s/TlFEKkcpNSFrZThiKjJbTUApcztpP3NOVU8KLVBPcG4zaSM3am5CJ1owTy51PWohKy4xTzsuUlM1bEcyXkx1InI/XlwnMDs3QFRxJy1CWzNERXFFUl1YKFlsWk9TCi01Z2VjU0RbaU9TXUhKXFwnYmxsUyVEZj5FN2UjXkUkbERRS2trNlohIi5mdCJGOFVaYVJOWCwkXElwLGJPSjx1OAotQFEtLWRWYkkvMDRkNyFHLU05UTtNLVVaZGBXQmhRKGM8LCZrXU5QVTRba1FiTnRGXkI4OFVsaDFXSlA/STcjRS0KLU1VN1Y7NUNkO0JXREksXDliakZkWmc4VVtSWldGLWdiY2dGaWcsY2sqMmZMTzI0L0AlOCY1MTpQZWtMOiMzX0JXCi1iMiE6VkBIQFFbMFtpPCNtJUpqM0BbTlVbXGVxRzAqMGhcSzNRK2FSJ0huSyU3TChtaiIkZ10lYWZTXU5RIWhNJAotXENoUmBANzc9TmVxby4+ZE1yblFlckYxWzM8ZyZjOSdPYVcwRCM2JitAbHEwYjFxKGgnIklQUmFTXiFDUjwvWEAKLWldcmpKUy4vNDVtZmEuZCx1KiQoIiV0QGRMO2QnOT1tSj5qVjg8aiFvR2tAQmZOOzshTj9qR0ZWRCpQUHFjUEQyCi0uayRdMyljKVgqVW9dTUJWbD1MN2ZhKztoNlgjXzJDdVBrImU0MStnRl1EQWUhJz9pV0lgaGBwcSRhXjEoS0ljKAotRUsxO1osMSEibiZPSiNXSlY8ODdXTWhVIVwsdWBrNV1hTmFyLmBKdSxsMz4oP0BEOlxrIStCNzhvSmVNO0s6RFEKLTxDPT43NlBGQDkycmxvUUBZVV1KMkNGOnRWIWJKal0wdGAyJjw5a1kiZVhIImIpWDFCSldNbnU1ZUd1Q19oRkFFCi04VmYzM0E+TEpca20qZEpvSTwsWGMnTHRvL2U4XiIvYHVnUCVQczVMXkdJL1pQTlxfWSt0K1M+a0FyUUNhPEQpYgotT2JeLC5wY1ItL1s2MjgsVlQ3OWFTa2xvbzVONS5aJT9bNVw9IUlcYTYjTDtAQjBAQThXai0tIUlXXjU7aGFMVlsKLSloS1FAOD9eJGExMidxWyFsSzdsJTghcltnWlkxQi5SSz48MGdtYWdYSDo4OGM2XkY2JEAqOHNwKUhbP0hkRGJDCi0sRE1VWyltcDg1VixadEBMQlxrL0ZPWzo/Iz5qX0JXWV9cQUoyazJgQjRZVmAkO2hbLi5WNHQoNUFWL0c3cChLUAotO0wpSVpgI1w2VEEidEVnW1VdVDE/bEQ5cX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjAyNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIwMjggMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDE5NzYgMCBSIAotL1Jlc291cmNlcyAyMDQyIDAgUiAKLS9Db250ZW50cyAyMDQxIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjA0MCAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMDI5IDAgb2JqCi08PCAKLS9EIFsgMjAyOCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMzAgMCBvYmoKLTw8IAotL0QgWyAyMDI4IDAgUiAvWFlaIG51bGwgODE3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDMxIDAgb2JqCi08PCAKLS9EIFsgMjAyOCAwIFIgL1hZWiBudWxsIDc3MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAzMiAwIG9iagotPDwgCi0vRCBbIDIwMjggMCBSIC9YWVogbnVsbCA3MjkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMzMgMCBvYmoKLTw8IAotL0QgWyAyMDI4IDAgUiAvWFlaIG51bGwgNjQzIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDM0IDAgb2JqCi08PCAKLS9EIFsgMjAyOCAwIFIgL1hZWiBudWxsIDU3NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAzNSAwIG9iagotPDwgCi0vRCBbIDIwMjggMCBSIC9YWVogbnVsbCA1NDMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMzYgMCBvYmoKLTw8IAotL0QgWyAyMDI4IDAgUiAvWFlaIG51bGwgNTExIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDM3IDAgb2JqCi08PCAKLS9EIFsgMjAyOCAwIFIgL1hZWiBudWxsIDM5NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjAzOCAwIG9iagotPDwgCi0vRCBbIDIwMjggMCBSIC9YWVogbnVsbCAyOTcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwMzkgMCBvYmoKLTw8IAotL0QgWyAyMDI4IDAgUiAvWFlaIG51bGwgMjc3IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDQwIDAgb2JqCi08PCAKLS9QIDIwMjggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMDI1IDAgUiAKLS9OIDIwNTYgMCBSIAotPj4gCi1lbmRvYmoKLTIwNDEgMCBvYmoKLTw8IC9MZW5ndGggMjg2MCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkKUA5cy5yN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa01UWXVAQ0UoZHFSU0Y7Ylc1X2RVQEMzWG1adStbVjxJYURyW2BSaipJRV5qcXF0MlVAQDAxQ24vUwotSmlkPy8zJjM1PGdnYEJrYz0ydCQ6bUZUaGZQLlNILFlCKnQvcUxsISlhSz4xP24qRDs1Z2hTJE1WdTJuTjIqJjAKLSJxLHVJVzlmSDNSLTouUCE8Pyg3MG9UJ29fbmc7KjwmQlU6aSk3JzkkPV8hbSMyc049KTUvUVFmKDRtSThFQyY3Ci0rVFVYYyVUJDlRJi5YPj1ZZWU4US4qZUZmIjFaX0paKWBIdCg5XS1scHVtXGQ+XmVWbDo3dVA/JScmKHVlVydaTAotNVVmI0VXOG9sYEBcQUgmJGZaRHMmMjZCUGtrYkNUVE4oK1kiLjhALk4rNDl1M08mKnNpJCslRk9JZG1yTiM5Ym0KLU4/X3VhMDIpQ2dtZWBaXGJab2wrWiVRWywwJS4mVycjRHFGa1RVSnJXNUxTJlljS0g4NlNOJTImVkxgJWpdWThMCi1bJlUrJlRgb2pPZkc0cEYxMCQyNmI3PiNEOU5JcGYwQFg+R2BiOChpXicxM1w+U28jajtKNmI3Jl8pKEo4LmxWbgotLD1mMGc8RTtcc0hQazswRmotZCM8KFc2ZGtmXCMxQGtaJVg+NllnRjFHbUU3YyNbXlkzNmxUSTAwSVIpViNOXiwKLUY9bWVkOyxoKWw4KCc1Ym1uMk8xYyguVS5lcjwlJzZJPE5BK01qPTNjVzkqYUtKY29NaTxASjkiOVohUSgxI0xbCi1mM3I7LHJHPyhBNl9tXXQrT28uKUJOLGtWcGBcTUdeciRWWEVVODE8ODdUMFgzXGUpcU1mXUZJOVlgQkIrYDdmPgota2d1VF1SKFQybWJDOWtPNz89T3VLLmFbTDo5ci9OI2NIMUxdX11BNmRWOlxWR0tAXWJhST81UDhRYiJ0YytxdXQKLUxAalxpT04sdDNtRic7I1I3SlAzTkQiMHM5N1p1UFdmZVhmIzRbTGEoYT9ldTIkP144UyNZZWQwJipyZGdgcG9xCi1YSyxmQFpOZFpaRkFQI1hSVTQjLV4kZ2pecT0/U3NLU2QzcFMsZks0THIzYl9MNXBMVDN0OkhwKiVBYFw3L1NyVQotZmhHcmNOX28uSlNWOjZyQmtEOVlRPzJgOF9EKCUrTjRCZV4wdUxtZmh0VzQ9U3B0P0BYcSQyYWVyb04oTElMUFAKLWV1NWpqVSFzOGhgOVxNQVslTnVMJTtHJjUxR25kV2lZL1lkQ18tbidWcTVERWIwVjhbYypkSHU4KjonJ2xdNF4tCi1icVFENm5AN0UhR11ALGMmXC8oKyFQbm1MSFhZPS8saz4ha0s7c0FfVHM7QmVHXDNZJHBldV9kZ19wNkVKZFBzcgotKCd1LG5MRjMoWCguKXQrJCpkMUFgK0JYOVFsJmoxaUEpZSImPyQ0Lj9xIyxDaVQhL2EzbWU0KlNSYDcubFJNRDwKLSY0OnRlJSZJXCo1byFYWiktYyckJFNpMHAncm5bWFJFZC1zVi1sSldiY082ISwoLT9pX2guLCgjUz0mdDc3VlNQCi1LWVd1JGhDQ21BYl1UWXJfUGdYPlM1LCwibSZlKV9BLWA4ZVg/N21iUSklTTohYW83QUZmZyd0OG5AYC1UU2haQgotJlpuXzBBTWtGJyxdUi1EOiRTIlJtMmRNIj1wVkZWNGhdTTgrQz5nZ09IVDxLWDtOI2BocTtBJDgrJ29UN0gvRFUKLTEwYjlqL00wOVpZZ1psVyRcPXQkMkVRI0A8b3I/MFNEXiVvYi1KRGNpJWRjVycqN01wLW4qKUkxRS5yJlE4b2MiCi0nU0BJOkUxV2NOZ0VaTG1iKkEzQ0h1X1lbSnVTJHJoYDQ1aFhGWGNaNVpEM0YzK0U6LjtGakElPEN0KWlCK0VGbQotM0RMPFhkJi9DJiJUXm0tJ0BLclBkSCdlYCc/U2hUJDE9cCdIVjcxLCpaMU1xN21pNTNFWFhRJF9iYXVWKjdzXWYKLUUnXyMnInNmVTpBVmFvNWNfPCk5MF4wLDJDMFlWVE0xKGJmLjgiPE06bDJTaidTQSlYJzdpXDMjLGInSC1jIls1Ci1CWnIvYyciUVxOLlx0dUFQNGJyIjIyIT9xYSVQWk5EbC40TVxIN1lvUktLOiE5blhzSFZeMzlsK2UhalYkNDAlJQotYD1BVkE9ZlpOJ0Fsci9LOVdkWEZkPSxNYDIqZ1pRJXBOPWlIayRVbC9kZytoLWM7QCxCb11ZV0g9XWVbVWQ3Oz8KLVBrOldhbD9QWiE/M0M7RTBXNmwjQ2RDSXRMOSc6PmQjIWQzaipVaTpvSnVKNEAlJ2xTPXF0IyRUSjtnWGFcNC5LCi0yTGkmcjMjKm5fZy9eNkI3biEjMjMsa2NgUltrMUtNWjFoJldTbCQ0bl40USktIVNRJ0hWaWhPZzhON25WMUshdAotOSdaJXFaazdbQTo4UlEqXypEb0pZW1hRXTE5Zj8vUFI7dS1pc2ozKmdDRS9PQS5LaW4wWG5zQCleNkctYHQtSWwKLSd0N244OjVFYnQ9JTBPUTtMMkMzZS41W0tyWDw6Wj1JM0tVYCxlXW9pS1ljTz5EazBwPjZIJmYmV2dCLyRQPUZACi0vdVwpMzBROzQ6IiJRclhoLzhnW2xMNT04byIzQyNqQ01qI0o0U1RRIyhZQD40VnByaEpwOmBcaTJTakFpNiEoZQotZXEiOTNXZV5namIsXFFKaWg5OzkpYDJsKEw8QDpTJUdEaE4raFpCczFfWGJeUkVfRjMoLVAjWD5dY0NUQEtQYmEKLSJcJG4jSmpbQWg1cEIjQlVbT0gtPW5kaEhQQFBtQikzXWBnWzRycmtyRmQrVyZYRzNRSkJrOSslVlMrQDJeOV5WCi1mRTVOIlJESEU9LE1QZlApWlhVXWJGZ1U1azNIdDIqOyI6RmsySjpRTztkT3BCXiYvPjE+SDdyRGpxa1pbPUpQNQotZ0RhcFMiJFElYzJaRFtsSFowbXIvYj8/WT9NK0s7Y2tyIlxYRTBCUSJRNzs3SVcyRy1fbV1kQGcqQzxfbUdOIk8KLTlzNEtTSG8pQjo/OWNIPlFKVVhhS1w6P285Pyk0OmRqJ20zWlljOGJbbDBvYzNOTCZDbVNhTSpxJ1tyVD5IYVo6Ci1JV2BDImYqXkJyMDpIZjMnP0lhbDNbNl9lUiROMTBra00+KmprWEYyRVIidCUvJTg9OV1UXVE2XjhvOj8hJlduRgotTWlqNzxlXE0lT1ljYyFgUT9MVkBoInBKPzMjcUI/bmRZS0tiJCtQX2ZuNnMvUE9sTmNwR2dKRzk6Y11jYWgpaW8KLWBvUHU4VTNSNi4hclBQW2w1U2QkbWs0UmVdXVk3Lz85PS9AVShRSmBtcWgrK2tKQCFpO0YyWCRmQzU/X2ViXkZlCi1nJVtCM290SUppSGBxI0YlSC48fj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMDQyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0YzIDcgMCBSIC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMDQzIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMDU5IDAgUiAKLS9SZXNvdXJjZXMgMjA1OCAwIFIgCi0vQ29udGVudHMgMjA1NyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIwNTYgMCBSIF0gCi0+PiAKLWVuZG9iagotMjA0NCAwIG9iagotPDwgCi0vRCBbIDIwNDMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDQ1IDAgb2JqCi08PCAKLS9EIFsgMjA0MyAwIFIgL1hZWiBudWxsIDg0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA0NiAwIG9iagotPDwgCi0vRCBbIDIwNDMgMCBSIC9YWVogbnVsbCA3NTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNDcgMCBvYmoKLTw8IAotL0QgWyAyMDQzIDAgUiAvWFlaIG51bGwgNzIyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDQ4IDAgb2JqCi08PCAKLS9EIFsgMjA0MyAwIFIgL1hZWiBudWxsIDcwMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA0OSAwIG9iagotPDwgCi0vRCBbIDIwNDMgMCBSIC9YWVogbnVsbCA2MTYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNTAgMCBvYmoKLTw8IAotL0QgWyAyMDQzIDAgUiAvWFlaIG51bGwgNTYwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDUxIDAgb2JqCi08PCAKLS9EIFsgMjA0MyAwIFIgL1hZWiBudWxsIDUxNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA1MiAwIG9iagotPDwgCi0vRCBbIDIwNDMgMCBSIC9YWVogbnVsbCA0NzIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNTMgMCBvYmoKLTw8IAotL0QgWyAyMDQzIDAgUiAvWFlaIG51bGwgNDI4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDU0IDAgb2JqCi08PCAKLS9EIFsgMjA0MyAwIFIgL1hZWiBudWxsIDM1NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA1NSAwIG9iagotPDwgCi0vRCBbIDIwNDMgMCBSIC9YWVogbnVsbCAzMTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNTYgMCBvYmoKLTw8IAotL1AgMjA0MyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIwNDAgMCBSIAotL04gMjA3NCAwIFIgCi0+PiAKLWVuZG9iagotMjA1NyAwIG9iagotPDwgL0xlbmd0aCAyODI3IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQpQHBUQHQ3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZrSSlZZ1skYylPKnA4RjwhZFRfaGNOVD9yVzBvJTQ6LDNFNSJndFNJJUdHMSEmM2ctXl1sXl8qTG87Ci1DYlBNLVBOLjFEPEpTKE9gT0Q1Qm41KDgqSVhiXz1bdGQtXiVJWHI/bCszUWJkUHFWYzkmUXAmTVxvdERLdSg5MgotS1lFPjRDQCIhVlRbNUklRFA1LS5WbmlCIjBUQ15kMyZjZj1fWnAxJDZSXXQ+Xis2UT9eJ2VAOVpFOS1RODdFUEIKLSVgbW9xME9tYlVsK1BHJz5sNHErb1JOM1wsM1lzTyFNWjVkUllsXDZRbk84aU9KRjddOWpDVSs3LjFncStmL1tmCi1oV2gtYiFvWVIvWillNkJWbmtvQSk/Zy5gUmpZMGVLI0ZRMmM2LVNTN3IrYzYpQ10rJCpmZUxLXD5eSlE2LSltbwotS0U4a240OVBePmZKZWE2VVNdaSMhZUIvMCI5S01GNCJvcS4ic1hWUUZDLnJWRjFlMSdcMThJRjU5XUdVVF1IQFkKLVJlNWRTMC9MdVQ0azkmOS1PY2NbTGM6P2gmRC9iUWNRTD4/PV0iMEwmcmElZyg1Im9PQTAyKW9DNldCRyNdXCg0Ci0qbiloJF9AUjEtLk1Xcy4rY1JPJCI7LDFhJi5FQGRrVjBTaWc5RU0sZFkkWCFYYGYsVkFeOEZaUDJLT3BOT0szOwotK2AkQU5mS3UoNkEpTU4/YDpAIzIiOUFOKyhfcmVYNyQwQC9LMGJeVTJbRWlYbnUzUGU6czprWz4qazFIRjQjMksKLWgiLUhtb1onJSNcMzQ7VUBHKyldTEkwOk1XOVplZlY1IUNpcDFxakE0XG9IZyhxc0YlKmgnajRiT15cKjpONTEuCi1qNDdHaTEtbElQOFNocWk/K1lWYTBaRWRqX2gwaGMqXXMsUUNOZVAuTjVaVVNpaGcnYS0yT2RKKVZUMGU8Z0FcVAotVFxtPCNXbmBDRkNtJGJELGBcI15oJ1FkQEEnNkI4LCRqM0VOYW8kLTBvVmxway81P0ldWCczNVVKK1REYiRkXVMKLUg7byM7ImFWW0NpKzxpMlksSztMJUFPOGVKdWRsZm9caVUyT3NHcWk2JWdDSitROHU0VzRFWztmMEBbNEtkQj11Ci1BIl9xMzwndGUhVEBEQW07Y1UmJURMNUpvMjRLTS1cSHEsLClfUXMhQmdjXC5yamloSDxacGkpP01KQ0htNVcqJgotVVlPaXJQPmJsN0JyczdoNWRKOkssQyQ8Z1BIRGJPZVdAJ28+VVxoWCMkJmY8Zi9pLlEvX3VvIiNTPV86UEMqS0UKLSthdGVtcnJzODhvZkEjaWJDVHQyJDoxJTwiVFxgVEtKOFElQDlfU2VBZl80PjVobGBQIi5FUVo5VTM0RGdgOGF0Ci1eQ0VyWSYtYTlKSEhCQkw3Uy5uRjJ1Ii9RZEIiXkc6KWpmSmkyUkZsQTJvP0BmVWlBc1ZSXSY9NEFRS21QO0YrLQotPygvRCQkZ2I7JS5DUGJ1JixJaDJuLm1JKVciQilnNm5hVFQyNj1VX2I2MiQrJzRFSm0kYWpxVyRpdDwkInFUTFcKLVcwVVduKmtRWXAmPl1laXAlQjlAOHUtUEAkMztEc01Wb2FYKCtnZllrc1gqMChtTyhtJS1WRE1gQT9abipMc1c2Ci07MTFpZVAjaU5yNnUicEtYPnJjLmgmSVomWTZgPnIzbHNxXmQ6PUg7QipfczFeYT5GbihxYjApO0AwP11fc1xmXAotZzdTVUc2NCI/bi41ZSJaUF5EQVM7RzFPXDBTOWIxJUgzNyZgckpARmRMaEovWWVjVSJBNi5SKVVRUWNvXjBPQ1IKLU4hTEQ0OG1PJi9fOE1bTTNva05JPjRZU0w3cVBaSCYkbGs1Tzo6WF4mRSJOUkdbdDptaWMyNkZaUVlxNExpPi89Ci1GQUEtXzQhXWRRUCYxT3VacyQwciRJbmQqMEVrMzxgdF1DZWpKXD5CJVJkJ0EjYmtgUEgiVHNQJjRCVzMnJmZvZQotTUBpR3JWJCxHMTsrK0VBbVpvPXFwS1xZSDREQlIsL2lMYEBmLFMjdUZKSDBHTz4tcloyZWFDTFZ0P2lOZGA7KUIKLShjOEtdZUM9RmYjUyg+LENGKHI9X1BhXVRfQWNRMi8ja0pgT2U6cTQ8aVlPQ1opSTpXM15EV0hQZylhdENbLV8yCi0kNmk4U1JbU0VsPVtcIVhabElrL0B1UHRuUEw+UTk+VFsxaUlBdWt1XVlJdVpYblhlL2FyVGNCPTBBPCZiTSouIwotMTFNPitfWUQ9V1tvRWQ4ZU4lczkxdVAucywjPyRaUmc1Q2JUPG48c2NnZE1pbF42WzhFaEdqUE47LSg8Y1hAQE8KLUlscCROYDN0Uj86Q0pKIz5TS1g8WUlJIkxANGZbNVhtJFY8WDRMcyImU25FOWRcLWtGUVhoIXFvaTNIOGJUYWppCi07XEckc1FEZ2FgIzlgKEU2ZC9OOENWaXNTM01PaWU5Y2R0ZmpcUktZYzVlSURbND5AblEoRWApKjA0aCZfXGFdJAotP09Qa0NfZSUoIidaSl43Z1ltREhFK0tLZ15FSkBfbFQ9Uk9aQkwhRmJEJldDTSw8Q1lhWjIhdDRtW0FrWUxRLWQKLUdtMi5FN0heJ0BWRzBmV2QzSDFsL0VSVmI/WlUrYS9MQUtKUlMhKzBNYzhzc1VcWjNRLEZ1RFZjUXRlPGFZbSo1Ci1hVjkiWidoJ09rWkZoZWc7Kykha2tJWTsjcTxrPEs6QmsnalJGczhbYm00YV9qQ0k+QCEsYDJRYT5ZNyZIVnJWRwotNWJQcyI8WnBQZykxdG0zRG9mQWIyR1dicSgvOFVSNihvJmpBXmFYWjpgOWRLZm5CWEwwMnEvLD0wX0hpMSJnbGQKLXE8S1ZsWCROYCwsKFJJZSlkU1U5IUtQQ1lScDpwPlBAOk9NbWA8T1RMTUMnPUZmVFg7WTtjZVhCQz5tXSU3LFQvCi1mOigvcWxdKCMtRmw9Q21dJi1uSSVJaEx0VCRUQiI4T0RsL01tcDMmZSkpLDFLXkZjKyVDVlNlZ1xcPTlEWEJtJwotRzFQPnFyJzInOSFnaCE7K19UamMldWtKQDpXa1xIKz50MzhRTFw+N2JyTGZlOm4vYjptcV1WRUdNXidsS05VV10KLTltYVxMIjNgQkVkcG05dFBaJT43OV1WXXRhKWhlQWJeZyFmay5JMWJLNiFhNEc7aVlWXWwvKDEmaFZgb2UyXSFACi1QSEspMztxUSIhQ3UoRzVadWMrdWdrbzJoSVhKJjxRTDBPQkZXaGAjcj5VMy0xRUVqMltmWUkiJ2dNPC1Gam1xIgotSWQxL2dWaVpGP2lBZ2llXUEuJjNHXl9mcFBMMS0zS2VJRT1JbCNgKSsvQURfSSwwPiQhV34+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjA1OCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjA1OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDIwNDMgMCBSIDIwNjAgMCBSIDIwNzcgMCBSIDIwODIgMCBSIDIwODkgMCBSIDIwOTggMCBSIDIxMDUgMCBSIDIxMTMgMCBSIAotMjExOCAwIFIgMjEyNiAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMTk3NSAwIFIgCi0+PiAKLWVuZG9iagotMjA2MCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIwNzYgMCBSIAotL0NvbnRlbnRzIDIwNzUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDc0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwNjEgMCBvYmoKLTw8IAotL0QgWyAyMDYwIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA2MiAwIG9iagotPDwgCi0vRCBbIDIwNjAgMCBSIC9YWVogbnVsbCA4NDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNjMgMCBvYmoKLTw8IAotL0QgWyAyMDYwIDAgUiAvWFlaIG51bGwgNzcyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDY0IDAgb2JqCi08PCAKLS9EIFsgMjA2MCAwIFIgL1hZWiBudWxsIDY4MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA2NSAwIG9iagotPDwgCi0vRCBbIDIwNjAgMCBSIC9YWVogbnVsbCA2MjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNjYgMCBvYmoKLTw8IAotL0QgWyAyMDYwIDAgUiAvWFlaIG51bGwgNTU2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDY3IDAgb2JqCi08PCAKLS9EIFsgMjA2MCAwIFIgL1hZWiBudWxsIDQzNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA2OCAwIG9iagotPDwgCi0vRCBbIDIwNjAgMCBSIC9YWVogbnVsbCA0MTQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNjkgMCBvYmoKLTw8IAotL0QgWyAyMDYwIDAgUiAvWFlaIG51bGwgMzk0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDcwIDAgb2JqCi08PCAKLS9EIFsgMjA2MCAwIFIgL1hZWiBudWxsIDM5NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA3MSAwIG9iagotPDwgCi0vRCBbIDIwNjAgMCBSIC9YWVogbnVsbCAzNjIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwNzIgMCBvYmoKLTw8IAotL0QgWyAyMDYwIDAgUiAvWFlaIG51bGwgMzMwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDczIDAgb2JqCi08PCAKLS9EIFsgMjA2MCAwIFIgL1hZWiBudWxsIDI4NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA3NCAwIG9iagotPDwgCi0vUCAyMDYwIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjA1NiAwIFIgCi0vTiAyMDc5IDAgUiAKLT4+IAotZW5kb2JqCi0yMDc1IDAgb2JqCi08PCAvTGVuZ3RoIDI3OTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5MnFdRj5YOSMtamolWnUuVVg3a0lZO1sucmN0MmstS0JpSj1eJzllYClyCi1BcTlzJ0QyJm1mN2pFQSsoJ2I/cEs0O2QhT2ZGZG1LTDxrVSFuaGA8QTs1bUwrb2w8L0IsO0ZnYCJDdDBAcHVaJAotIiVtU14qIypIZlomRS8+KGRxT1gjVEFYKl9aPklLNFo1PyU5VU06JEpFVjg8KSw2dEFKXjMuXGkpPz0zNiZbMU8KLTBjQj1JX2VOPVA0PiNaOStTLjokQ2YiKGYpKzRbPUgqR3BbTm9OW2MxVjFsTFstZjVNUipibTomNmhDXCVILjwsCi1ebEhQK2tjQCFZLm1YSyRVTUJvQiU8KW0iUSZYZlg1Vz1XaDpzKE1RTS0uXE9OZT1qYTE5YSo8O1kjUGM1ZlBdNAotJElEJF1LZCxgWixwaE1ibi8tb2RaTShaJkpPJF5aM19tJSsxUT0paTBjLGsmVTN0Sz5LKyhOaDYtcS1mbUNUJWwKLW1QZy5uPUxdJ1dpXDRpR1dNalRnTSc6aXBqcj5Vc1ldLFByRDB0JyxeZWhQPypLL29iZFEqPj5IcjspSSVhKS4mCi1OSzJNJTNfQXJcZklyKCtGTDQlPCE8Pyg3L2EuU0AoSi44JTV1WjtLOWlTOCdvTVtqZSU/cmo5LWs6bHA1YmluKQotVE4lQjFGbVclITxPIzdcMT1AQ2EtVDAvVEsjU1o0aUdgWlBUZTIoNldNWyU2Kj4qcj8scGM4WDo6J1AuYTNjS08KLXJEWTtJblBbKXA3OlNfUm5QISFsaDAjOScnU2JTPjpgISpqUFtIUDQ2WlE2TmFFPmFOcVsub2xRbk84aU9KRjddCi05aU9mZmdFVmdBKWkiR15kMV9JSypWa1E2IUM0ZF8/UGlwJj8hU1lhO0F0OmA1Z29bITpvI1tfaDZCcF0mLlNlagotIi07MzMmRnBCQz07QjswZXE5NyIwNCRWWjw9QDE2RTRHT3BZZSd1OCRtVEBFTU4iOzlhPzdLMi9hbzooWls5UiEKLT1kRjMnXSVuNihcUjg3YDc5aChXJ1NYIjNkXjE7VjoiLUtKYj5JVzZvbUw0SmVGbkdzWWZoSmQnUTciPSImRD5mCi06cmY2W2w6MilyZVUtRDInbG9nOG1AYCxJX25gTiNSZ2tzQkwxLCU8Qy1LS1U+YkFuKG9QR1I8OzxIPyo/LmtiTgotI2laYGg3PEAxR0wqU0o5Rzg9dGBWdFRJRy5dP2pbVU1TQCVEWnRdRygsW3AvaFxBP2hgUl5eZVZpTTZyLz8xSiUKLUEjNnI3a0lEaHFqajImRG03PiRBb1FtWTFnKDE8Q0hRTFpkUS04Il4yKGVfYGdtTjkkJmFIVWdoPEg+MEQudTxxCi1mQmZCa0swMlt1TkVxLWlvR25iLXJaT3JRS0o5OD9kQFRuKUJWQ0Y+WCtwbHVLNmU+Jm0nSlxwOnVtcTEhaUpicAotSC1TO09SY2lFTVxUJHIwPVhyP3NOPDs5IURDU3ImUE5NL2c8UHU6Rk5vZT4zVl4vPXRxUjFaYW5mayloJUxTRi4KLVFxYFRTSy9OQmNmW2M1OEhzamAuKCs3Py9RZU1DYllDN0hUVjhVYXJPZkMqNDc8dSg6bUxpQVFbVHEyaC0nNSg/Ci0jJEhpUDIrNFNZM2ZsVlM9TSMrbGNXdUlEUS1wVyhiNTtgXSlFXDQzbDVQam9KMXNjKjBZbzFISUdnayxAOjtcQwotNkZFJUYhR2tnXDE1NlopRlU3PGBFZ1w+LGlaNSJSbVxeY2s1VWQ5T11Zcj5yJl9sbF5FS01paTk1KWknJElFPnAKLSJyXmAsPClPXE5YLWtMLjxZaWgmKUBNayFIXS9NJjBmJyhGUUpfImJPJTlISTJnOTZ1UCtpXE5FcytUcFZJNyY8Ci1gIi5HTXJYVjlGJEdrZlEoQ19kXSxmZCxUKyZLbitCTiJDYCt0ODQvSzZWTlFhSSJ0Jk9Obl9NTT4xPj5bPDBaOgotS1ZAOk0qS21NXyFBYlVUYDhiczFKUnAvRC1RLDhaZ0RtI1g6c04iVzwpVUdfSjg+V0lBbGNoJkAsN09jRi1hLGMKLUBgNFRPY19eITpFOGQwQFxxOkZNZCUkLixQaGpDJ2s3Ny5ILFImNCs+JUpEOTUlXmJyVFFFcmtQWiJFYk0maEkqCi1TQysjdTRWaj1sXzZeKTNkR2YoNzZFKGFEUF1nPWlJXiN1c1sqN0ZvUGJnND1XJENTWltqWnJAVU1RKGtKcVA3ZwotOztjPSVUc1ldRC0saio5Q0E8Km5YZSZBLy87Y2chKz1OTVoyYDFTIzpNOmFCNlcpcVw0ayhdMCYucSdZbykvajcKLU05cjZeSy8nWWc1VVFfM1FrTGQwNS01SmUtR2ctSUJJbEciNVYwMlFbOjRxbWRaJWUyUTFkXj4hOWtiZGBMU0xpCi1kYEYpQU5lYk10ZnE+ZjoyYkRaI0NaMCFFLlJaZ2MoPTciaU8kRmZsQCk6NmdvQlxmK1wyIjpBWmstTz1iLF87YgotTF5oMXIzIVdWZUZXMDdXV1Q2YkQtV0tNKCFLcVtcMUlVRU08SWJhRWRdUTE3MjlpJDpTNkFPW1YzNkNgL0twJCUKLUJIUzNSN3M4aTQ/XmEjWGtrZWhSRDNrPlE1X3BGcDg4M141Q0JZZitQY05TNyUlM0pEVzBKUyNJQmJzYmBIR0dvCi1oVEhMI1FqWzMhcGtCVmAsMWB0NGFDPl1Ra1ZHODdLZSRCay5gTzI8QV5wVyFrbEY3Rl9JVz4sOE8xS3FUN1NuSAotL0BNNXJFczFsRGdwRDhicl9HRUxNK0RWNS06TjIyMT9ALWpWUXRuSzc2JklAQHBDLV0ldTwhTE1raFAwNE1wXU8KLV1RaFdRSnIqJiRvai05cEIvITMpXU9uYV1GZiZJZVBTNiwnJy1zJj0rbElES0BBKFFEcjo+aydoR2dLJT48Y1xQCi1DXnJhcCpgM10hYkctdFNgJTQ9TTV0MzRVWjQkOEknOTFeLlFaTygxRDJSUSNcazQ0IVNebFN0Zm1BOFBZPUojTgotXlMxLlYsTk9dNDQ0SilpJyhcKSdMY00rL1RcUEwoSzNmIzRDPGRzX0haQmkmMy1tbHJVYGVnXCkxdHFZWXRjdSwKLTJCXjFjUTstXlMhTUw5Q1MjU10nY3RbbCMrbV5EQlVgOGRaJVciRmwkSmxgRksncSEjU2lCamcyT2tzRFBlR0Y0Ci1OUiZDIyMuXEk8W0E0NCc/UjRYLEI4YDVKQkZaJSktQ1BwSSY5QE04YUVfRDhNa3JxM0VTYkduM0VeIlQpbzEucgotREU1cyYtVEtyJV5AYDorKXBya0lqcmprL01KbDVoXiduWzhoRTE+J21wNUN0SEM5JEJrMyVOaFAqYVhCLVNqWy0KLTA5Z0Nna0lDPzY5Xj50I1pMZEQ0YzIzOF9sJSVaWW9QUklYcXJeOSxWREs0Y2hXckVGa0JRJm4xSTY0W080akdMCi05KDc4OWpkYjNLaHRpYkczSjhbNVMkRSh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIwNzYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjA3NyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIwODEgMCBSIAotL0NvbnRlbnRzIDIwODAgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDc5IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwNzggMCBvYmoKLTw8IAotL0QgWyAyMDc3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA3OSAwIG9iagotPDwgCi0vUCAyMDc3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjA3NCAwIFIgCi0vTiAyMDg2IDAgUiAKLT4+IAotZW5kb2JqCi0yMDgwIDAgb2JqCi08PCAvTGVuZ3RoIDE4NDQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JClCM2tlIzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtNVFl1QENFKGRxSjowWUVEaCxAU1BaVz8qWEsiOWA1NlxBaVgraTowOVhXTzBmYzNYPzROUENcdFAKLUA1cG0mSnFCWWtAUFNwXCR0ZFNSXEY8YDtNRydkNDw/dSVYV01qUEVpV15mJUUjU3RzT3EmRThiOzonNFxgcCdACi1uLStgJSpZdHEmTGlBOCpKTyY/UyVIRVE3JEUybHJXImdZU0BnIlRqIVAxKixMRmRJJyMtKUM5OShCUXQzOGpJaQotTy1qJlZeQz1FcyYmXjFCPCZZNkUhOz9qUmQqK0VlXGo2SVBuO2BQYGkjU3M0M2JwMCVAa14xQE1OPS49LEUvQ2oKLVA0MVZSUz5uUlohRlNHWU5UNyZUMTUxOTlXXSVuKzgzZTVPVykvM3EkZldTMS4xLCF0bkxWV2xONENBSTtfNyJHCi1NTmR1QDYtdXBVOS5hIiwrUiY0OlplVzgvO2JuT1orTzlQayY9U1pcSydzTXEwWWdwNUwoVEEqMUlYWT43al82XwotZTJYanBQREkuOC4nWT0uKTkqKDJGWFRgUCdRa0hlZEtLNUxOalxmTD1xMS8zUSE/bzJncFxuPig2Y11mO1RfRV8KLTc/JyhwXyhlVzlUU1sjWCcyLS01OXNdNi0zUjUjYSVuazssPm8sXCNlLS0iQjp0KnJqNzowIy1rc3NYPFNjTmZLCi1mP0NkIjtpX0BgcCFiV0g4VDgnWzlNOEM8USJvbm08X0ItXWBcQmFaPCJ0JXArRHIvJigvL2NAPWJDNzYyYjVxTwotamNgbTpnXFlGM1tFUDZRYiNqMlQxWGlcdGpaKmBaLiFJOlIudGA7Si84b2oxTSlgajQkRnRmalVFNUdIWSlCMUIKLV0nZFgqSzQsQTBiayslb0EpLWlDOlNfN21eSCdkQSEsPTIrViNsO100Oyo6JEpWLk09bFtfSVMmbVNDME0lT11vCi1DZjspPTNUT1omIyckRyNRWWMzRTsnK2p1TSE2Jk9AMFs7VEtHJEQyLSxkJSRaUkFKIVIsQnUhNlQtQWZrXTguUwotL2Q/KjE4aUAqS1U+M1oiSTIlPS9jPlVdPzlPZ1thM00odDZGXmhVLUcsOSZvb1pTcTs/PHJqKE9pTFNcUzhHVDgKLUkoWG1QODNWLGNEVixgPjkuJ0w5ZWQ0JGlLKHUlajQ7Vjp1RzQ4UlxmZilZRTctUVI4IUdIa1U2XlchKk5iZkVCCi0yJW9GUE1xRFNvLWxmbj5ccFQsdC0iUUE8KW1ablVwREpWP0YhOSo5IVg8SmQmbUtDLTo3XCUoYTRNM0ZSVWxnbAotUTJuXVhnbVppUXEtSnFJNVF0UGUnKjhHPSNwQ3VIXUknKSg+J1txLVZbXjguQHVzWHE4U29bcF51UkFtXVFGXmgKLWZKI2EmVHEwWkhQbm07MztzMU9eVCtnQUQ6VTVhbjZrb1svIWhBKSZPcDQyWC4pdURra15zQGIqZSgtRkhrVFJGCi1pYCpnaTdCM1UxMz1vbDArTidMZCE5Jz9WYC5qJ2Y2X1x0SSttPyJQOHNJcCdHXyF0UzAjYjZGUjhaKGUjZjRTQAotTDx1TS9LMmFMMSYpaGZAUTBPV3QkQEg1c2wkWW9nJ1ZTVT9LcCU8RlozTVp1VW1McUNRIy1dVzFlJmFnZlcoXUIKLThzVyYjTF8rLj5IKD4tRGJnO0h1Q2dLRSMwYT5GRClfPWxNMW8+clNDRi4xQCIqK2xoTlN0WUBUXTBQJmFmODw3Ci1XJiQoX0dpYzY/Nj5qbUJiVmNfaF1uLTYhJVMzdGtTUkJzI2NaMVJTVmtlLFIjL1lkX2clYSxhYWZxRU9RK2Q+bAotVmE0cytnUjthPkNdYGpyMiEwV2ZSZSZfJDlxWiMrIVE+ODZvN1JaTTNaLUZbZUlcREc/Qk5QSCVuV1t0MUJzZCUKLS00bFZGNj47XUFNNm5tXVQqZl44SjdwZzI8I1IkN1JYW0VfI21bNnEvZ2YlZyooQ3VMNC40UTBCcFJHPTloaEhfCi1VVSpZck9kW0xTJSxFNSRGSVgzZC5cZmZpJ2AzX0VSXUtOclFWNldhb2ZfdFNWVVFOPjZ1Lz8rVjUrNH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjA4MSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GMyA3IDAgUiAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjA4MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIwODggMCBSIAotL0NvbnRlbnRzIDIwODcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDg2IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwODMgMCBvYmoKLTw8IAotL0QgWyAyMDgyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA4NCAwIG9iagotPDwgCi0vRCBbIDIwODIgMCBSIC9YWVogbnVsbCA0NTggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwODUgMCBvYmoKLTw8IAotL0QgWyAyMDgyIDAgUiAvWFlaIG51bGwgMzg1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDg2IDAgb2JqCi08PCAKLS9QIDIwODIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMDc5IDAgUiAKLS9OIDIwOTUgMCBSIAotPj4gCi1lbmRvYmoKLTIwODcgMCBvYmoKLTw8IC9MZW5ndGggMjIzOSAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkKUJqTSIlN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kxVkhDaG1CVCssZSdiQ2ZAX1ZwJF5gPyNeLSVIYGpvZFgzL288X1M3blRxOjROaTciQV47MmNsYQotMURnUlRfZFRyKFc/KW10InJtcjoxcSxCNTo2JD5ZWG8+T2IiWC9cQCdGXys6X0RpIy0uXm5VUEs2VFgwJWpSYW8KLV8jc2sta1coYCg9TjgvZUsrIlhHS0ZqQFQxXnAucF9QLkhLOEQ1YldKSDUnUSVeN0lrJjxBTTk+UyYmVStBc2hMCi1KbDVualk6cFM/XitDZS9tUD49NEArW0R1bkdwY29OUGNVc15sP15oWjRJRkAuLWREKUUraEtrXl5xMWMwWTVFRAotWmssbmIoczxTRyYpOCNmYFQoSzxRJWRXQEhESDlHJENaXidfMnJcaUwyM0gmcTVTLy1icENTYkBjMyRfJG4tKj0KLVheYEwxM2ZIRjhNUEdgclxoa0E5JmUscExLYE5VZClOOnEnaSU+MDhUWi9rcCFGciZcIlgrJHE4bEVLOiVRRFVfCi0hO0FwYmVGYXJRYHQ/Oic5Iy5VNmcsSz1RSj5hMmIoJ3I+RSI7TzIkPEsjaXJhdVRmbVNWU0wjNls3PDROJ2dUQgotMmleN1U9OnUqY1JoZGM1Sk1pRWNLZjJxdSdOZDttNVRZXVo6a2c7KWlbQ1RPJDAlNFgmNy9DU201LyMsVzh0ZFAKLVFlaE9naSY0OmFBYDFCKThJZ2JKNGcwNGQrXCIrX0AhQCZGVWdlbT9xUkEwTWdPVmlARGthMy1aJkRMRSdhNWFvCi1BZkhLbypDV2sqZU88Sj08UHJ0YlIjWT0/RlpXK0Nlby1pKmVIQmpyIjtKKXJPYiglb0VKcSkoZC02UW9AcURdVgotTUskMj5ESGtdcmAiWklDME1TTkkpUSQva2RnLkkzWXBtc0JVdUFUKS5naWg/IU45UF00biNmQiw+JlQ1V0l0YksKLTtbNjE5Mik4Nkk1VnFuLDxKMUNnPldjJSo3LkVFIjpFSnFXTENbM2xLOy9ecWZfN0U8QUpMJ1lBIjRsKyVcNm90Ci1ILSdROGNlMjVXO11MYyRfNTBHZ25aWTMqPFJuSURsJS9NKFlAI3JJLy5nLiZkaEhEX14wWnJBXGhBcWFcPD8uRAotZU9IZyZnQG1iWkthX0hEZ09lTT43WzZfJF80LWYzWEBsaTs3K1taPktodGxuWkprSypadXBocj5bak9TOHU6TUsKLWEsSWdrUyRAR2snalxLZkhOMEZTXzBZUV1DYjtKN3BLNyMoQ0pUZTA1JC0lcSQqLyJvJSZLZjdmQT9GMScxP0dLCi1lWE5uNCE3KWMsNUJybVBqL1giciRDWCI8QmVKWkkuSktkU0AlMVA/Oj4tKz5wYm9dK2xmTU0tSmI2RF9OODJuOgotR1deWF0obS5YIj8zajMhO2ImXC1cMCslOk06J2FWSjpKZjErUkVJajQrcDNUOVlpXlg6X2F0KzNIQWZAOWE/MlQKLWpkYTNYTEpEW1RPT0soVExqMW0zSkRjR0hvI3NTWm83NyZHZl1lWzJeX2IzY0NDSG4mJGBdIyNLbkdNQ09iRjc0Ci1MQks2dCpnMXInLzA3XD8oaUtDWmJST2ZSYiFfUSsyXj1DLGZOUmckcmVEbVVwIk04WSVJOGFAOFhKXks/aTZhZgotOEUqXm1mZmtiSmI9KVM0VSpaKXElM0ltIVJLaF1vS1UtKUFvZCM/KS0iMktjVD5SYlhBQVRIWUBFXkZGRWBPKV4KLWdxVChMOyFLYCpTPVg2VTYjWWpWbDpIV0MxWVxYTywsIVk5MUBTK0tfbWpAaC04PS4iW15NSypNMkZQSCU/MURoCi1hcj9TNEIvLVEoPEwhUHQ8KWRWSTUzWz4hTDteWlsnMUU5b0pdcDAwXyEkZDEsXlVaP19ML24lQUVbW2oyM1opXwotLVRUJjY8JTNeczZZQkMwLHVkNiYpKnElJidaLGcvIlBrWSxFXEtzU1NwU28ocD5xQCdeYiRrOCE3LHQtQiMvUSYKLVdiVlNrUC1kVzJATjNYbC1jT05McUQ4Tm04ZCNWPVZKVDAlM3VcU0ZEZCFtKSEyaiIjJ0JiOXMsIixOTio5Klc6Ci1TJjllQGkuPGdHQTE2InJXLDhaWGRHVGNjaCZIbkVFY1I8JGJmQCVCOT9jWWorUWU/M0s0PUJcIUs/cFxpNSF0VwotbFUsPVAkW2k1NmE7XjReRkRoR21TLUs7PGQ/LVwlNz8rQ3VNVyEiVT5CWmBZYVNFME48bVpKT0NJaTpCQkptOCIKLVsiUjRFP3VFKjhJM0BcK2RiTD1ZRF80dThaYVFUVz5LOy8rWFMjYCgtJ1l1RWdPRiM/ImlJb0dvR0hDZ1BbODY9Ci1tKDVhWGMhSFQ8RkRcIXVeIjZTKmdvR3BSJ0VDLkFkO247U3FmWTpsU2NWKUQtS25dJU9wcXEmIkxnPixsa1doTQotRjA1Oy8uTTxPJ0AhZSNqVWEncnU6NixTcDVcZDBJTk40ZUxkN24oQ09KJFNfLloxQjRwbVw9S0NvbiI6L11YbWQKLWdSTjUwODRGaTkjM3VeIz1VQnVGaEFGO2JNXUg5TihQWUsrN2A3XS0kIWg3SidsamRgX1xUbGhPOlZ+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIwODggMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjA4OSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIwOTcgMCBSIAotL0NvbnRlbnRzIDIwOTYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMDk1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwOTAgMCBvYmoKLTw8IAotL0QgWyAyMDg5IDAgUiAvWFlaIG51bGwgNDgxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDkxIDAgb2JqCi08PCAKLS9EIFsgMjA4OSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwOTIgMCBvYmoKLTw8IAotL0QgWyAyMDg5IDAgUiAvWFlaIG51bGwgNTI0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMDkzIDAgb2JqCi08PCAKLS9EIFsgMjA4OSAwIFIgL1hZWiBudWxsIDg0MCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjA5NCAwIG9iagotPDwgCi0vRCBbIDIwODkgMCBSIC9YWVogbnVsbCA0NjYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIwOTUgMCBvYmoKLTw8IAotL1AgMjA4OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIwODYgMCBSIAotL04gMjEwMiAwIFIgCi0+PiAKLWVuZG9iagotMjA5NiAwIG9iagotPDwgL0xlbmd0aCAzMjI0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQpQ0wuNCc3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZcSVhMcig7aTsjbypeMkFeQXRBT3U9Kz5WSSxgLT1HOVNUVnVOWmNVN3RJV09UcmlebWgwNDNsbGlpCi1BSW9rcFtCaVU6a11vLSo5cjhTV1hNWlBNUjgmRllfNkUsWyVIRkQ0YGtVZC07QWIvaTZkUlpkRGMjXlFeTFA+TQotMkBVbihrVmJSK0U2OXI6QSJfWmklJDo4SDJoZig9XGdlIlhHWnFiciNkWDZnInAoS3BSUUAvc2hEa11ALi5BcE0KLVVQKD49Xm9sPkhySmZqTGcsIkJtSGZGal0lQTpRcV0uMV0mYEJgb2BjOHByWy4sNmlkIippJCQkXD1jJCcxRTchCi1AXilpNWZQWlpRTUhcSC4zUVEvUUtkTUA8KHJaVVk6ckdEUl9fX2RzV0E/bF0yMjVPa2QmRWYuSHQ+PmNaTnQqbwotJG1RVi8xNioiKl9AUjFaSGVMTVZsOUpPWVxLUnQpJ3NPQ00+clldQVg0ZlNfSypvKEAuZmZYPy5aJmFiPj4+WXEKLUNZQ0prTVYoZkVMPmJDTC4+VkcoT3E6V0dQYEhIcW5PYTBGV0pfVTZXP0x1KCoyblVjTGhyKlMwbjxzdU1NWy1jCi0nJDNxNWtVbSNAVFova25PKGMkO0tHMiI8NFxxOjZFJzo/O1NPZzM9bCk8JmFoJFVCSDA4U1g6a1U2cG5RLV4uMwotQSNnQSNZa0xFTTllMFhLPEhqKXMwTSI1WjZUdHM4YlglPV1xMk45UzBoMkZsSVBINEgoWGhvKDslQyJiMDhiIS4KLVYhTyxGcCFITDNfZ2ttUyRCS2hkVCs0YC4/IS5YL1s0dEJLQyViQkBNTGxcNVJMNFdQVyRJMUNHXXBTKEpQcDVDCi1AK11OKlc5Umg/VWFaVzBRRkIrMzk9QTA4anMwME1bYmxGYHBfN1VGIWw4UUxjMnNnIVU1NjBmMjdaY0lkWzgjVAotW0FOMkIhZDliITVQPSojbGlbXU1UMFhXXDZRYSdccSY2VCcuKGRuOl4mYjhnQS9LQkZVVCtrOGJZWl9BTik3O1UKLU8kYzoiR3BwYG0vV2tfLWxHMlFwTi4kLCMmNGsuSS1NLl8zamEhT18wM19JOTlUYCJMazY/TEY3aSMoUjZJUyFpCi0zWVt0cGNqNGwiZmBrbG1eb0BSQ0xCLVNNVShlazM4Pi0lVCEvKG1jaXBLLHRXNTpXOioyODAqPDRlOGNNajVWMgotQC0hU0w7UicuSmo+ZkdXQkdqYVlERiZpXStYO1s2KUZJbkNHRzJEYF5rLkhNOyxjK1NXUGZePyhZQiZzUklQTU0KLTVXIjdsMyokLTU0cS9tJG4vKjsxZEQ1ZmElMWxxPiNCYzhVKShKNClhM2FASjtwTFA2SjdzTylPYGkjLmdrOjtJCi1xYFAzTyIvKDtdWCxySiw5MkBxW1tGL1RGIUNUKzxXYzVlL0E4Xz0sJG9oayZvXmpnXy01bzViW0xQaSMuXE1tRwotXXFGb1A0Vj0pJTYtLz9uOk1iREJFNz9mdGA2KEFIWj11VDQ6a1RQc0xkb1ptKlgpUVFfJ1R1QFEvL2cjTTg9biwKLS0nWWsuJj8xWHM6MEd1MS1NbyMtIkhOYTVSRFBLNScnXXMzP2pJcEQ+WGo4L21gXFc0NmZIaT9MOktTPkp0YEsvCi1sLkd1Kl9RWSc+Zy06bkgrP0c2RExgOnRXRkclckcoSEZFIkpSZVVWUmpnbyNfJ0EoW2VfQD9dbCc8dGRWODN1TgotRWBiSGZpRS4+J2FDJDBzNVJscmQzTEZpbVg2LjlkO0JgMjwqTExoIzYtKGViIVBCLCEhKVNsQkprZVlPclNmJkIKLUhCOFdUZ0lkVDMuPkIpTFFROCpLSylpPjQ6L2RhWFB0MztpTCdcREVwXm5QcVVuPC1pcjojbFdANShGTjBwbVw5Ci1wYUtfSFFXIWImTDFXPyNhKD02TGRIXEIpJWEhXnRmRG9DbmFFWDk9S2VQLUhHIlUrajhPTVtjLXJKUi5wPEtLWQotP2cnKT1jJztFIjxJZVJFLGxCRiNxJGAtZidCRlBlQzYsLE5aT1dcZStIPW8/OFZcV1BIWS8nVlZRLlhTX19gTEEKLSZmPmJUODlzN0VuRCxDQVskW2RrT2NpTW40STYvJ0lndSIqMk9KUzldTHBDUUhyLFtlO0E2OFImb0FGTFhYMy8yCi0pOkJJOj5yVnJuNW1eS0JZIkhPWz5WQEc7RDglYl8+MEdtVCRcNj0vSnNXQC44WzE2Jjo9LFVwRWpvLy4tKCRCKwotKjspWXBNTFNGYC8iUiEnZVBjZC9dInJWalFjTm5HOWsrQyQhSS1DXC9LRiosKWU8dHIucko9ZW9pMyRqZmVacE8KLVBlLEFkRmZRaHQqNyNldSI5Q2pgYzMxIkZMZkQ3KkxbWjknbkE5IjlpaFgjTFc+O0ZqRmAuWTleUyZWUjJWXV88Ci0qKSc2QzkvJmdBZ25XKT4vbnVFLEFTLUQmYSc9LWooaVFyLlJHLnBtKmR0Nm5tNlt0ZzJHcU9dRCFzdWxfNilRMAotZlhUKEo6QWxibCRAPGFzPjwtUmU3RCQlPTkmUHRdTSdjWVphTVwsKCNKWlw0KihnclBZPm5ANSMrSDI2LlVqVlsKLUJsXi9zT1AqSSZqYHVAV2JtQEs7azQqMVRrSjtFLW0kR2NBOCosXzU0UTRaYlY1ZC0qV0IoNlsuPD43LjdwJy1fCi1DVkh1SzVqWDdnMTcoa1JGVWVHQ2dLXjNSVj0qOytkLkZXLDlUOG87NlY6TCVZXyRvRClUN3E1PjNOJUZOZWM3YAotVktadGcwcG47Pj9SalxWWSlqUSxNRCtMRWA+MilTZy5gMCJCY05EajclZ0EnPnVpO0ddaClvXGRZQVdkVWZuQ3UKLUw3QWwlNmMkVFwjNlx1YiIraTl0Y0JPSnU4YGJMVzdMWy1OO0tkcEpjIioyYi07YDE0LlQydF1fajpgaCReXjVjCi0iPDZmWURyKEIrcEQ+QWJdMSk0VUNXKls5XkIqLGsnbmBtNEUiZywjQzBfNCMyP2lUNj0mTl1dQjdcMHNEZW1uOwotR1EvaURyKG8nOiIkUiduUXRrRnJlTmNSam91T1t1bXBgb05LVUAyaShXMy1SLytTcl5LLV0jaToqMDJIYjZpcnUKLWQtN2YzcjdQKXMudS5pPz1UVSZWS3NQJDRSJmxYJFslK3QlLkxKOzsyZyg8NTNsdVhrWCkwZVo8ZmJmUCtqTnBPCi1oZytvIzg3Im9MQVRgLGErS0ZBQT0vZzRJODJxbVUiK3RMKmU0K1dkITZONCIiWiswYFE2MEVyLkgvVSQ3ajVgLQotZHVkMitAITBvS1xVL01MMkcpNio6ayVXaTBNIXEyNWhGMFIiQ0BpNzpqQFtpJTxCQDpQKmMmOGU0aj8wQlFkRCgKLWQoSVtmImw9NmRSXix0cWVaVU9GTEgkLyclbykwMmBXJjgyKmo0TDxoW2EsMnIuc2BbWTYnRCVVc3VDYUJdMihpCi1qW0NKakJTQjtGTE8pW0M5IV5FQ1VMTnVfY21GMU5hciJPKCVZTj44L3EvbDNqM15YVDgzXGs1ZkwxPFNWY2xFPQotW1NuW0JXSithWGIrKFUqcHNXIT5BPzpNNyxASzVVQE5yXkIhYildYlROaixQTEI+UyZGX0tQOyVbb2xvLWs0QHEKLVdJVHJLI21mJytYP2M0W2QpPUtHISsqSTZuQ2Y5VTE/KVVyWTEuXUs9cEV0QWdMRlVxaz47PSolTzk+Ri5LVlNfCi1WX2ZPVkY5WixmOWtkV1BkIiIjQGdic2MrJCk3aDNKaDJTTGtRXk9AIU8jJFA3QzRMX0pGJCpmJGNLdDtUUFEmcgotT1BeVl0jY0xCJG1mczJdXkB1I0YkckdxQjp1J2Y4TT9hPG4yUihJMk9SIUVnW1BwUXUrPFV+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIwOTcgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjMgNyAwIFIgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjA5OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIxMDQgMCBSIAotL0NvbnRlbnRzIDIxMDMgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMTAyIDAgUiBdIAotPj4gCi1lbmRvYmoKLTIwOTkgMCBvYmoKLTw8IAotL0QgWyAyMDk4IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEwMCAwIG9iagotPDwgCi0vRCBbIDIwOTggMCBSIC9YWVogbnVsbCA4NDYgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMDEgMCBvYmoKLTw8IAotL0QgWyAyMDk4IDAgUiAvWFlaIG51bGwgNDQ4IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTAyIDAgb2JqCi08PCAKLS9QIDIwOTggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMDk1IDAgUiAKLS9OIDIxMTAgMCBSIAotPj4gCi1lbmRvYmoKLTIxMDMgMCBvYmoKLTw8IC9MZW5ndGggMjczOCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkKUQtZEYpN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtdaDFsaS03akVBMygnYj9wSzQ7ZCFPZkZkbUtMPGtVIW5oYDxBOzVtTCtvbDwvQiw7RmdgIkN0MEBwdVokCi0iJW1TXiojKkhmWiZFLz4oZHFPWCddRFBKVjZOPGs7RFQtcyVSdVlVVXRmVWFDczUlTiFQbWJGKGxlYihvL1huLwotRDYtZDM2QlRAMTpoKUMiYTxxKEAsaS1zJiQ0REhKOFRebVcuNFlhb0w3cDRCQFlEOE1ZXUAmU182VEBWLEplbjgKLSheOj4pQiciXkpUWzVISSIvRidxM2ZGQCIwVEQnWmF1VHQ2SEY+YmtfI1ZMRF1IS1BfMFk0RiFaOFcybyEzI0JQCi1tc0lfX05ydSZ0Ml9ZWE81bzteTy4scHBsJlgnUlZdPFo0bm8qcUkwSTFEN3EhOksqbTo8O1FXJSY0Wmcmak5TcgotPzVCXnQkN3JuWDYmVCElLUBuRyszZlYjclghOCRtK1A4SE1DT3VtMV5lNU1eX1JAV1tlZ2Bpb1BOX20uJihDPEsKLV5iLFsrNiYsSm8kRTpvU2tnOjtBNls3bFMuck1eXSZlLSk4Myc+Wy1PP2shWztDIlsmWCguT1xgPUEtXjM/Pm9vCi1OLXMuYmRNLyxjYmNoNXNaTmhtQGQpKFBPPixcZypOYW9gazhOJCE4KWhyby8+UyUjSkddIjMkK1w2PmRLYjNKPQotMyI3W2Y5NDRfVSJYRjwhQEFtXzhkKWlDJHBxQ1tJbVEqUWNoIyllMUZKVU9mMDoqKzEzbVIoL2ZKZWZNPiNtTmoKLSxAITVDNlxAKUwySVBSV1hSJDBuaDovXFFOVmVPaFR1cjEtKT91M3U+NnRLTywlLWpuaURbLEwiaUQwQidhPG9UCi0rKE1GXTtKSGZUY1tiO1QiOUlIRXBdXFEjSUBEazZOXyxEbCxBWF9INTsnP1lgPTFjRyVgVTUrU3U9Xy1ZTGwqJwotWHIvajJbYVBmNCcjX0ItY0RkaltEcUs2QyRAdSlqK0FuaGVncGV0MFpMYVVRVVtGM1prdWgkaFdATzM1bTcsckEKLXFzQGAjKTRtWHIlTj4mVzg4TU1lYWhicyJjUCZjVCFDbjFrRVptdD0qZiRbakwqZDtmLiY4OXVpZzFzcW1tMi1tCi1KPCFKZGw4XlAtVmJiaDhJO1txNURgXSJeJ1E7S1VEbnRVcT88Um5dUDkoVD8iO09GRjxRSHA4TVNcR0VzIjMyaAotNE5MPk1lTj9rI1c3U1w6XiFfI1k3b2UsX2glcUU2RWtSZWxbSiRBbkRxdCk6P1tdUzk0ZHNzbDhqZ1cmYnE2Ni4KLTFaQiskKGUrcmBsbUVpcjM5YGNmMUcsPHEoUDpUISpeXjgrImplLm5LLTRkcGkhWmY+YDc9XyFHTEA7RUdZPFxuCi1gVyFWLUNCLCcsKidmM0tNJy5DJCUxbzBiNilacFBaRjNNXV8xQj9mazplRUBMX2JhWUJPcVgvY25wTWtQVEUqawotSi44M2c0ZipoPVFOSltsQE0nbGU3RFMrcE0tO0gmLm1XV1osa2AwSz44QlgtSjIuPyYvdUY3bEYnQExSIlZeQ2gKLUBGOkwlSEFdLHJZKGdoXzxfQWBqImg/VCs8KUJKNk88PiUvb2wyVFFiU3FhWFJqRGw5MW9kNSoqUiNIQDphSig/Ci00IThFRSlfNmJPWSZTaWZvIk1qXlA1XEFAbkUnY1YjK15rakYhNEJ0USpEVScocklkUU9ZTTs4U08+SCUnKTYkPwotI1BoZDEsMFVHclwySkxaV14uZGRSJ1RTOGMzKz1YTFNeOChGXUJbNSUnX2NQI0YmKClfXEE0YCtkLHQzMXI8WFEKLSxga05SbDdGMGhgZio5NFwuM000KDhcQilOS1NvaDQsWjpJKmBMQGMoSU4wZWtZMjkmO2pmTiJFaSJjXjYhY09sCi1QLTlFOkZ0bDpbPl8yc29NOFFpNzg5KHAmYF4lYURVRVcnK1paNTxXNmU4RD9ndUcvXFJaQz5MQG47WEg5K0ktPQotMWUwNlkpcFxCIiFPTi90IihXdT8mY3EwUU9fJWlzRkYmPD9VXVswZEVldGVqX1xuUXMqPG8wMTVLVTJMWWxWZUQKLS9UO09bXmtgXi0rRUlAWl51PkJ1cCM6JDhsKiQqcEEwSz49LVdCJCdHRE9YR21PTzBUKV0qN24iOjQiR2UhLyk3Ci0hTFhqZi5pcjpMX1s4XWgoYXUyOUxtPU10PGc1LD9cdT9FJTEiP0dQWEhCJTY+NicxJkw2MS1rYloqbCgnZU83TgotV2lFWWdvYFVLZiMjUWVWbW9Zb11TSGRXNDlNM3VFXy5EaFA8TzAzKypLWzpMX250VlYiRCVlXVdzS25JQUhpO0kKLTM1dXRMM0c2NWhCTkNoOjJsZmNwKXJkQVg3Rl48QlZlSTsyYlNqOzQvQlpoPmpoQm84ZTxfSioxKlwjbz5wI00sCi0pSiFuRyheIj0iUzU2UF8tTlA0KVNPNkNlX2RJPGpsSDZmYlsnI0U6T0UzLVI2PSpHdVxzK0pqVyVUUEtlWW1VKAotLixQcidbTSNDNz49aHI0UEdHRVJlNlAyWFtOQChTckhqXyUjVDQ1OzBOLj0jM2I4PD0jTCpQLk5bVjgyXkk7Rl8KLSJzX0FPPGw+UlNAK2RdK1lpWnM5Y3NcNUM6YTdeJSMrTVwrWT9pP0chc15PLCRcTTFuNVw2PCNASCs3OkQ9MSo+Ci1gcnJgJDQ9WCctW1Q6UWhCWC0yL0IzKCw0Wjk7ai1uVWN0ISNRbTFgUWg0RG9kL28mXWsrKSpDQz1TK1JnZlJoaQotXzghdUtkKz9wP0tvbWRiRCh0MGssZi5pQyxqMD0lQkU9TU0qZjplN006US45XnI4VTRqdWlgQEwyK21dNWQybFIKLVxYL1ErTzAxMlU0XVxxYypIJGtvXSgmSjU8c2JuL01TTlsxbk4uTCZPRG4wQD42MzJBKEtQKSNYZjlCZytAO3FlCi0xR1djWWRnOm9VQVVxSChsQz4ibF86Q1txPVNFb1YhNm9cYFo6Pj1zTG5ROiooVXAhYm5wIlEtcFNOLnJmajdjSAotS19TdEZbSGhfMmo+c1xFQEZBRjFsN0tWR0lLX1BFPlc7dFppcz02RS9yV3E3LyU1YEVgLUFPRUFvYzJbTChtc1sKLUZUPmQ7cE1GNkRyQGohPSlIUDNIIWVhOjhRc2RHTSZYRCInZ2A9TlNRSmZubjxFbCJXaFhyJFdcO040aGY+W2tHCi0oM2deU2N0LFlZTDlGIWkpTzdnWy9qOEs6PDxCPWshZFxxdUZDOVYyNXRFUjMmIyJtYTpwNk1uMWtwZjhCMSRWTAotJURgZ2gkIzxkLVNUQV83Y29DSVdrXWEibCFNZmh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIxMDQgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMTA1IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMDU5IDAgUiAKLS9SZXNvdXJjZXMgMjExMiAwIFIgCi0vQ29udGVudHMgMjExMSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIxMTAgMCBSIF0gCi0+PiAKLWVuZG9iagotMjEwNiAwIG9iagotPDwgCi0vRCBbIDIxMDUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTA3IDAgb2JqCi08PCAKLS9EIFsgMjEwNSAwIFIgL1hZWiBudWxsIDUwMiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEwOCAwIG9iagotPDwgCi0vRCBbIDIxMDUgMCBSIC9YWVogbnVsbCAzNDIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMDkgMCBvYmoKLTw8IAotL0QgWyAyMTA1IDAgUiAvWFlaIG51bGwgMjcxIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTEwIDAgb2JqCi08PCAKLS9QIDIxMDUgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMTAyIDAgUiAKLS9OIDIxMTUgMCBSIAotPj4gCi1lbmRvYmoKLTIxMTEgMCBvYmoKLTw8IC9MZW5ndGggMjU3NCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkKURkRVgrN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akZMTyojXzdzX29VY2dZcHVQYVZCK1Ysbm48UV4/Jitna1UnIXI6KUUmSlBgYEAnXkdcXC9MCi1EJTIkRFM7SU9UKHRgUHFkRVA5KmBKN0ReaXNnaUM0PXFCWEwnJ2A7X0oxNEUpMiYxMDV1PlI7MDlUJkxQR2BCSgotREU6UlIiaTNgW0g5SHJuYWJCOjc4PkskMUhTLG0iRDxCUTEwN2NLcGxqY0Iya1c0X3Qob1s2b08wZTxyXk1DL2YKLWw4bC1XWVNXIVohMVohVDpIUVdTTiREYFk0VWUiYWhaTyZhMF46UypBInMpYS0iMFZXI2YhJ1NyaSpLc2JJM2xmCi0hXVtxKjRKPi1mb1N1Xk9nQHI8N1MqS21jK1xMWkIiXTxKTSIkbUp0KSghLGhVYUdAcyFDMCsyXTIyX28tQVdqRQotbjFUW0ZXMjpoc2ljJS4pLChUYWg1IlFzcmFZTzkmNytGMWlkUic2NSJPajw8LGAwdTRkT0BuM0N1NHBrWihxNioKLWJITXF1bi1YK2dYTW08SjZkdWtTNl9oQEtaIW9FODJAUT0hX0RbQEgmNlB1J19OO2Y4PDBdPTsoLy4naU5bPihsCi0mOydgJlUwdDsjNjRDNW9SWTUwIWZVZzRVTiEvS0djTlJUVjw0K2hccGYycUVUMkY8Ijc9cT07RXElNVI5R1U8QwotIWw0OyFsNmhGM2ZHZV5oWkh1a2E5PSJLNSMjPWVJcEkuZ2E+aiJDSFwkWmYzNGpTZl01aDw6XyRUdWYuOVxeXlIKLSFNcGVVO0BqN2tnNUlbSjEtLW9mT05vU2Jsc2dfQCJbUSckMVFLZGg1WCFuJz5waF5DVU48dS5qLVwrX19yWT41Ci1pJkVocC0lVjwnRzptLDciclovSHJfJTQxZjY2QG5bMyNCI0Z0SmBLZk4oaGs0QGtEUC04c3RnayhSXFU8XDsqQwotPy5YYDInJ1RjIiUmUFJhTUB0YD0jWUhRWCMoX0Q9KVs9R2hTPShdVk1sLEwyQnJJc2UlNFBEaE5KPnQuPUkiaT8KLVJYNFRvIig5YkRLRUltcCZycS11WWEoLmohOEtNbj4vOGMlL2UudTtbJWVlTWdvM1AhWSZCaU8wQE1KVkQkWE5lCi1XITQyR0UlU2smPCo6Ims1bUYyQE4yKSteYVVDL0hhOkpoa1kmRFNxU0E4I1RNTG5hY1twQHNVVURlazFgZ0Y6KQotNidJYitHNj4vYzFyLm1zaF85YUc6Z3QsI2k7aTVaYFQqPWpsakVaXlhWTUB1V2VkZHVAc1lCWGRORS0xMCooQ0wKLTc3XmtCUEVaUyRablZkWjU0ZFdmOE44P0BaNThVPSRrPV8jL1NlPy8zWXAiQ0xnYkNDMCVkbSJKM1hzcSY5TUtaCi1Yb3VRR1VeS0pYWlpgSCFfUylhYWhMV0kjK10hViY1VnJ0LD5nbyFkbVI+NmRfb0BVcyQ2c2VvXWJJM0o+OCVNLAotSXJJJWIiaS9fUydacVlRIyU2KEIjI19sSFM6W2dGIVQhVmtgXDg3SVBOYDtQVEpGL10nK2tSJWQhQT1ua150UXUKLXBWOlJTJWNQSl9aWjpJI19nR1NqMD9pYmQwW15uPykyYEcmVjZwQVclZCQtSy5MbnVoMydeVFNpSWAiTiI5Rj5sCi1gS3BsSUBmKTZAIU9PZ0duM0pGcmcjRU9YU2lCLzApJD9SUyZwLlk9RFFRcEFYQihRLFE9Z2NuNlQ/bnJNNGM4WQotS0lBWV47ITAoWUxqOUkyVkcrc08xYFcvJiJILSJpJyQsVUspQXA4KyVINHJXSmNuSVtkNDpCO0AtUzdnMydfSG4KLTBIYEBVXm8ybEEqXzBQcWRTI0A/UlkiQWorQEUyYSUuV2dIIyk0MVlnRF9QVS5oTTxDcFtqO0kpL1ohY29KP1gtCi1kNl4tZy4wTzJuMUVMWDIvWDpZNzxgQzhlIiJHKk82I3Q1RSUmTDZmKTxQLD0vSHBWTSZdZ080azxoVTAuMFw1SAotO2hlNWJAXFIiVy0kNz9JOTtqOG1WYktFbmk1ayReazMxV1duUyluaDhCSmNabmQ1RjNPR01DJzEqMV5EIWFQcUwKLVE7Q0J0LEEwaFZlbm0mRGVBXiVVbzdnREosVT1zUionQnM5WVQ2KihEZWZXaUIkK04sSlZxQDxYTCI7UVtdNThwCi04bUsrbVdkVT9tTGxVJkxGXy1uV2JUJzo9RFhMdFRdRkU8dSdaMUpZJjQmaUUjLGhqdSM6SVM1KyNAPCo6cidfcgotSy1ec0piTS1yI2RRQlVFNmw7XVdFY01nZjtFOVFdcDElTjU9UlojPV4qc1szUHBEJEsvckg5UjE4IyolWGIlJk4KLSMrLz9SY1osVmtDOHBdbzloRSxkMHIiOSVKJi1yNyMvW2gyQGQwVnRGTTZROk1KWlQjJURXQ0wqb1ZjZXBmUWYqCi0yUiJXUVdKOmdzKkBpL1UzLGxeZWdrJCUwK2dIRTU3QCdpNUxlckNAPmNoY0hTLkdvNURdNk5BJE9zJjJjNFtxXwotST9BPywub2cwZWdlI2UlTHNTKTk8WFJ0clJoWik5Tkluai9tVGxAcENPbjJkQENgbj5GLV5TXEZKTyYqQ3RIPVMKLUBkSUtoNlZaVVxENDRiXU1dQDdkZDlFLUhtK0kickUtVk9sNkglT2kkOjY7KDw/WDcqImdaKFc3bzNxdW4tLGktCi1UVjwwL2AuNmxXPEtcWTpSZ1JpdCIjNmdETUBKKHMoYTxJcyg/ZC9lK106JmZTYWE2ZUM9KjJGKCVkREJeZ11hJQotSSE7UCk0PGBZWGZiM0NQSCtaKnAhSltocj8vZFVdTSc7MUc6I09LOiRyRDVfWkw0QiFCJiNoRTtsK0I8X1o+akIKLXFYK0RWZzJlRlFgRSxZJWEyNF4kST8mZVw4TkUzQG9AQXAxVHU8WEAsJCNdUV9pPCwiK1ZBRzMtIU1tQVI0cldUCi0yLylVMT8/U2FxZmhtWFlnRHJeYFVTNixPMF8zcG0oXUJjb2cqTSIqQT9GK0xfSCx1Oy11KkNrKGRBbEQmWzg8NwotPDpaQEpmOkJPUEFAMGp1PS1uNEpZYCI1KF1cXSxkWD8iSEBrdTMuJGhqY0Q7MkU5Ylg8SWs7NjE8Kl0rTzpWfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMTEyIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjExMyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjA1OSAwIFIgCi0vUmVzb3VyY2VzIDIxMTcgMCBSIAotL0NvbnRlbnRzIDIxMTYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMTE1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIxMTQgMCBvYmoKLTw8IAotL0QgWyAyMTEzIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjExNSAwIG9iagotPDwgCi0vUCAyMTEzIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjExMCAwIFIgCi0vTiAyMTIzIDAgUiAKLT4+IAotZW5kb2JqCi0yMTE2IDAgb2JqCi08PCAvTGVuZ3RoIDE5MDMgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JClFRiZqLTdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRmtJKVlnWW41UlpwJG4lXUdCLClabGdbPXRnYSQjKG9MI2U2WGQ+KSxDSj4uPypJQ2VkZD9KQyFlV18KLUBRQG5ZK3AwUXFmT2FhcWM7TXNGRlFtYiJNZjFOK1tJQCEqTylNbyVmZkYjR3IiayZdVFlgT0ZfL1JFKzV1OnQhCi0nRlRJYVljUyQxUiwwYTgiKDl0QU46OjYjJi5WJ1BsOGg0YC5UUz5oOjxWcWsvY3FcRlJZcC1lZFEua2ouZ0BePQotMCtgclUiOm0zKidlbldkT3N1OUkzK05oW18wQnU7N1BVOSwsIjRqaWNHP1AyZls7WzwldCQ+cSVZRzBlKzpbP2IKLTVXVD5WOGxkbz5VSD9tXktFSmElMjhPJV89U14hb2ZOXWtaZGw+Myw1WW9hM3JbTVdcYT5dKjJAaF5yTFcpMWo1Ci0lKCFTKSltc2BobDdpYSM5SFFXXVlacihYIjlMakY0LGZyP0kpRjI+SkFXJVsmVCJgYThDQm8jUlo/bmxmV0MpVwotS1w1XlAxREFcJE5eRzU6OGUhUjVkNTslP0EzVyMrJlNVK0ElWitINWVXLE8rSmUvRWtrZj1RQEA2ZGQuY25IXUIKLTZBNUZbKGJxIyZXZV8yaDo9SGBBJGZgKUooQ15CWyFyXTcxLS1TO1IoSzk2NSVWKT5pMnI5LFldNyZTRz1IWSQ7Ci1AVVEyWyNicSpuTD5fZWhkcmpLT0dqJGZAUVVVLmMuLVl0XEVCcV1MbG8xa2VdYSZyImVFZUZwMGdkcT9fcmAyTgotLnJOMWhZJHMsQEczXiFhIjlEUDxkcT8zIkE9QzpwMW80I19SViRVUjYvaClQVThdJWo7NVdUUFY5Z2xQMUJNcWAKLUJLPUFQJjhHQ3FmSXImKCU9UEQiLEVVampfUmNCWlgoclZxXyIiPCgzNTVZZW49SW4tQ1lPI2JcRC82TCRaXi1tCi0iYzxrMGc+OUhVS2M6ZmAkTEY2NylEP29AT0pGN10+YypbWzU8JExWW0lIQzFmZiFJZjFhZGdQSzk1LjAiQyhtSgotQzVnTURoRC4yWi4tPCxpSzVhM29FXlBAXCsnOWJUbDhCLUItQnN0a2dlNSZyIyFRKGdWPT5ldF1ALTRnUiM6OyMKLSovQjBoI0pAOi9iXUAlUDRtVnBUXnMxQSYqRGZWYS1mJyM5bT5gN1ZDImxgcWNaZTc/clhYYlI/OT83NC9da1JmCi1RQ0BGJTgxOGQ8JUoyU1xYTjQyXCxdTzs/Ij8xcThoW3IrXjteKEJbKF9vNEJAMClBbGk1P0ouaSwjPi1xXlBFdAotcTxURz0tQCRRX0RMOVk0XCJSSE82Q2JaVUYpSCsuM1ZNVi4rPlRVPEJcRSpqW0tRTTZKYEpcLWFwYytyM2ZrQV0KLW1YSEAxaClpWilAR2dbcDc4TzBQNmhjdVs8PE5Sb0UlVjJbIy1lOWQhWCFEYk5ZWGI/XD9qPFBBSUlrVCQrcGdPCi1jSnVFVCUuKVtQNW0kRTpUVVUoVVc9MU1UWzNqZyEkL1ErQFIrOCdGSmZJLlguUnRlJSg0bVthKXFIdWQ2dCtHJAotSmN1VmlSTDd0dUQtYiluT0FOUV9NZiJTKVRpM2FtN2kyc0InNGcyNmIiQEdAWVprcGRMNjZXXFtudDNkJDEqWGsKLVArRCJGMFxSQlRDJSU+NTorc1RoKD4wOkBvcDRSJU5RYyshJ1cnOHElS05lNjlrZmIuQWBSSFJvKVZHImwlbzpNCi1vTVEuN0thcGVkXWRZOkw7NDk4OllLTVhbMSQ4RSJTWllGIzohJjtXLVdLSCYmYlwmZTM3YzJgQ0tRMWZiYXNTPAotJy9zTWFSMTcyW0EhNCZfZTpFNzpLZWBCaDZGVE4qVDwpTG9QQHReS1xcZ2E7QydZLV40PVVMV01AYClrOC1rbiUKLU5RZjE4KUNLYlVWWmhVSigtImopODNtUCtUUlwhYTBPLCc8WXRJKlFhSSZMaFUndXFsMV5kXWJZLDY9X0cjXj5CCi05YVFVZSNGJW1mLiU4Ikhub1FzZ0E5KF4kIStkdTpBRnBxQChlMj9IbW1BOEpgWUYpK1osPCQvV3AtYCVLK011LwotIiplPEU3JzE5XD0+VXMtPiYiTV9FI0Y5TkM6LlU1U1FLPGYoNHFYWidgcTJAMT5rIT5KLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjExNyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMTE4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMDU5IDAgUiAKLS9SZXNvdXJjZXMgMjEyNSAwIFIgCi0vQ29udGVudHMgMjEyNCAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIxMjMgMCBSIF0gCi0+PiAKLWVuZG9iagotMjExOSAwIG9iagotPDwgCi0vRCBbIDIxMTggMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTIwIDAgb2JqCi08PCAKLS9EIFsgMjExOCAwIFIgL1hZWiBudWxsIDc5MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEyMSAwIG9iagotPDwgCi0vRCBbIDIxMTggMCBSIC9YWVogbnVsbCA3NDEgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMjIgMCBvYmoKLTw8IAotL0QgWyAyMTE4IDAgUiAvWFlaIG51bGwgNTU0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTIzIDAgb2JqCi08PCAKLS9QIDIxMTggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMTE1IDAgUiAKLS9OIDIxMzAgMCBSIAotPj4gCi1lbmRvYmoKLTIxMjQgMCBvYmoKLTw8IC9MZW5ndGggMjI4MiAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkKUYnXScvN1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGXElYTHIoO2k9SjNdRjJCLFE6T2w6aSM/by1uPSRZIl9LQ2khVEJSZ3QmLyEuXnFnYD5vJ2MsS1BEXAotRVxObD43WyVoXjVdZWgjNmpFN0ZVc0pCXVJmaWVVa3RtVj9MKzxWIkw1KmwyQXVNZ149SyFzNksoc3BXJUtdMlYKLTFsZDFKVyJjQkIhZ3A2SWxAPDojLlVbJWgmLkhJVGdiRmhKJE8vQ05PKmZqdCVLZCFWMjJpYj5iM2dSPDM3cDBmCi1YXXJhOy5oQ1w9ISdqMG89ckFtNGZRK1NXK2MoKXEwN2NBXDRiXEc4cVtCLkVnKS9JLi4vTz5nOFNPXF8nS2dCagotQixoJFVFOEpzIyw5alFNS0VHYDpxKiJsZ2AmPFEhPU5ab1MhdXBoMCVZSy0lcmtJWUoiImM8SEJRMlMnO01xUCMKLU1zazEqJE9gJzVOaGphcEEtczhDb1AxPmhibTcubTFvNF1sZFBhPFcjalhiJSZQVy4mJWwrZ3QoNT9eP0JIJilRCi1DbXVmai5uY1pQJVJFZFknTWk0YGZLMmltJ0ImW2cyQWpVN1s7X1g2ci9Eck5tMWkkTzFmOCchbXUlQilOVDReMgotO2lJSW8/IS9VMz4vWzxfYzNvU2csMVhXS08jZ19qX1koY2FDKHFBOytjb1AqImxjMytRNEYoamF1OyFfJkVlLiYKLT0nP09TLCMwMDwpRDxeMVBpYiFCXTslKjorXDY+ZGJfKUdIMVE7TDBmXmF1UjhCa1FKIUM0bCRBWDRJb25JPz1QCi09dVZDLUAqMUJcKEJkTCpAMWRTQTJOOHMhZl81ajgwTC5dUzlGMHBLTjQ6Sk5LXSpOWVJpWFtxTlheWTE4UWEnTQotM2hfWE0zYURmWzxBLiNZS24jUm9LOFBBazUiYSNAM0s9MWlgXGNCYFEpP1dHZDdYVzxmamc3T1hRUXFoTy5kIkYKLShBNT1ZUUczQTNgO0ImWyoiJiVvciY5PFFLWlVGOmVLWVBjVzNkWmRaUi84OjsjSD5xKDd0PiFvOChnTDRUZ25qCi0yWFxJTFpWaDc7Xmw5LHAsN1ZWXyI5SSNXNmZISHRLNjdBKkxoW3AyOEZUZ0ZMJm1yXFFtU01PP1NdNjFAIShpYgotJC5TKGgwaSc0QkVeWiUuKE1YSWM0ZEhXYjY9P2AnQ0tkNi1cMDpPbD5kaGNfPmMsI1FKTnVdSU1CYl8kaUkhQTgKLSE4LGNZMUpeNU0/MmhTTWpDJF5KMSdoYE1mRVxuXGcjKUIrQUxzdGc2JjZMZ2NYR2Y9N3FhUUwscGlzMT1xKmVsCi0oY19nJDVSTmFTNCtjUERzK1kxZyNUdClqSkYxYypfXz1vUGk5VzpROVdCMFxCU3RZdCI4YyFiOiZALy42NCtULAotK0A9RzYzXlFpQktxU2Y6JUxRL0giNDI/XEpmJS9oaT1tXkUrSic6QWo7KlNkMSZJOWhTZkVBMkY6UE49MExkSjQKLSkxbikuO1daJVo3LSgqUyQ6Szh1WisyOiRBTTNwSVFuRGpxNG1PMF9NQDYkKWdhX2NAZlkvYFNNXT5YQ0VKbWlpCi0sNE1QWT9cOzZsTCdkXUhmYS5TUDsrUTJAZWYyTW8nK1ozYjUoaUFyKTQmbyYvUllZRCJFPW5dOHVPbCVVU0smXQotT0hMOCM9QVhWb1puLXBYXl9GaGdJMTc7IUFVbVNpPTNDO2QrPDtGPVFYc25VNmtsSVUrNlkjLSZMYUdDX1hlay0KLT5aIWk5SG9zaTI6RFJBVD5gNyJcMHVkPkEpRz5iR05OX0UzYHNDY0khaTA3clovVEM0KT4tI3NYT3JWNVNsOmhVCi0kczFtIyVRRUtATHAkbiNBKXBNLyxHYERKXWEnb2tRMiFaVGtKQ0MpMFBvJSdvNihSdC5AQCMkP0hsVy9EZjJqbAotJDslXSZbTiduUkRzMT1oU2hvRj1fLHIzVUxYbG5pRmJGXEw2Ji5XMk86VlhOY2w6OVA+Nz0kRFlEMjMhX1ZHbXUKLT0qKm49LTlAWmNfZkQjQStKZTMmTC0hQigsLU9mTi4yVF5CKVdbNC1PXXJQVEFYR0ZjTjBjJEEwRWkjaC1vP1tQCi1QZl1DPitRKzMpTG4/WW1QWHVCbkovOz4/UDtYN20iIVxyKTo4UUldYzlsbmo0L0ticyIrbTBUXzZKL0E8MTMhOwotX2t1TnNrVTpLXkJGbTUyazhgPCFpLSYoY1BHYl5qPGZcK2IlPmhfLzxGXEEkJDJXOmcrRyFIams8QDg9WlIqKVsKLVg6UkQ0ZXIoODBDTi9fS2Q5JFBgblZXT08uTmxdIio0IlNyKmc+KFcmaTtNJVJ1LyswSz5HJ1RPTis7ODg9VGJwCi1nK2cmRjNRRThkZFpcQjUuczFGazhtKUJgJnM7TkhKXyVQQUdwKmRJZWNcMDFqbTpvYSNAQSc2R2Vpa2tkL3JMLQotQmhNYGs0LiMpdVFtSkQmJjdMSDlibStcKE1aWkIhRXRTVFVpM1B0ZF1OVCI1YztBXDcwbmY3YlwwSUQpV0NYXzQKLS1oR0tqKCxAUistIiZILSIycGhYUm5CWWpZLj9dKWA7N2NdLT9vdVEpREpzY25JUU5tWmNJXEdoSFVJLUVBRT4kCi1edUVNVHA7MCxFb0g0V3NvSlFuYCVTb0hUYT1AU2RiN0hFMX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjEyNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIxMjYgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIwNTkgMCBSIAotL1Jlc291cmNlcyAyMTMyIDAgUiAKLS9Db250ZW50cyAyMTMxIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjEzMCAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMTI3IDAgb2JqCi08PCAKLS9EIFsgMjEyNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMjggMCBvYmoKLTw8IAotL0QgWyAyMTI2IDAgUiAvWFlaIG51bGwgNjAyIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTI5IDAgb2JqCi08PCAKLS9EIFsgMjEyNiAwIFIgL1hZWiBudWxsIDQ5MiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEzMCAwIG9iagotPDwgCi0vUCAyMTI2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjEyMyAwIFIgCi0vTiAyMTM5IDAgUiAKLT4+IAotZW5kb2JqCi0yMTMxIDAgb2JqCi08PCAvTGVuZ3RoIDI5MDUgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JC1AOXMucjdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRlxJWExyKDtpPUozXUYyQixROk9sOmkjP29CIkFWTTI5QFlnUXVAQFpNXTdqRDhYSzE1Z2YsMTgxQisKLUYyT1FuIyRgJSdLUFdDXjl1Xy9SZ0QsOzJyR1ZIRUZLRj1UK1tKYk0oa2kmL2ZedCxyITYyKm4iK10jWE4sVj4xCi00IiVxZWtWUEohVF5OI0RsSCYwIyVZSyIoL3JHNlk/NUJeZkxpQTgqTWI3WHM0UmJuWSYuVzMjYXRcbCMjaFxRLAotY046PlEiOy1QbiYmKFpPZmNAaWQhOF1icztILDlAMi5MVWhUKycpIicoMUtscHJca1c5N2RLZlg9QG0la2RXNyYKLSoycENyNC1tQ2VUbiRlcC00LVZXKFduTSNqWFMrakU3MjY+bk5ePXM6XldZKyZyaVoyYT8lQVpCXytSO21mYEV0Ci0ySCwiXV4nK05malQ/IW0sQTkzImolLztoOkpXISI7OkxlczVUcjtVZ205QSlNPlIpcDVRW19pJjYjZ0M1VmVCNQotUywzKm9DT2k+dS1EPlI4Ji11XEdNJCNKIiNqR1h1KChhYikrTmUwNWhsOTUyTDVRODBhRDtZUSVUQWNUS2BjXmwKLSVEYmtLY0twS2YqMGU6XW41LnQiTk4xLjBsT0QzN1x0YzVcImYtbEhNTmw9JS5OdGpMMjIvQVFoZicoI0U3LWlPCi0hVkMpJF40QnRePWJXVl4naSo2TiRmc0hHJWgvMlsrTDxvQ2onJkJKL0UtbDcuUVd0RS90ZVJnTk1CJi9BUWItKAotNW4jJkwjaUlaUDpfN1ZjXz8zMXImdWRZclZWaXEpVkdKLGFHNCZGYTJANWBobDkpSEdsUkdOQyE3KDljZnFTXE8KLUI2aWlEVEo7RjA8cE8/UVJeT3E0R0EsJEBOWiJNLjFxTFQiW2o2cEQlPCNMYk4hQCFZYWA3YDduSDhuYWMoVykpCi1scitZRztlVFklM2FrQF1dQUMwVUZoXVZWWzRmJS07PiJcRGg2aC9VPT9uUFskUVxePVdqL2dBbjRWKDlZbC40LgotMFk6Zy8nLihRZThEI3ReQHBQXT43K00sdGs6TmomVkEnPWwtPzshU0BzZXROQWpdNi4qVGwrN1tmdUdVNWZ0bFsKLSRHYm4zPWFMJ2BsVDVXaVtpX1ltXk5XQ0YnJSNnWSJYMDdOJ0Y2NjFFUWNvNCxJMD1VcE5UbSQhLEtHP2NRIm8nCi01ZyEtRiNcT1BuYT5vc2QoYFVlUTppbz1DLF9cVmhEciFMXTQpJV4rLm1xbHFmOlpvMGxIdSI6ZTdRQmpnOG1NTgotJDI/VWFQL3JyVygtIWssaVlPQXU3dWo2MSVqQUc6Wk9rK14iKDYkVS1jR2hPXmVpZlJFWTFjVk0kQ1lUaEFEOlIKLUQkVCQ9J1lqZGNeO3QoXD4vWDZxIiRnSTxjOl5xZVolXS50NWImXiM4YnVILCNsY0NsL3FGYilFdDU7PUU/WGhuCi0lY1FhJUxfMHQ8IydVPVkhazlaYFRbWFpCPEsvJUNvUXVDM15eclJTaEFdaVA1JlZjJyEnaGQhJUYwb0RIVk8kOQotW0l1Tk1PZFNATS1ZNGByNzE+biU4ZihXJ1BrTGM7SytRdV1YKFNPNEtWQVpZR1o+RFctIlszTCpHPSslaUFicmgKLVkxWS5vcSdyVGMuRilYZykhWFpmLDFoYmxub0UiSj0uXFI9KyhCIkw+VlNLIUw9VUMjZjRxZmJhN1wyWyE2NF86Ci1iMCxVRlRsbTNAI1NUUlElMFFeQTJtWUs6KmIwRkMiZDlyYjlXOWYuPSk8KTlPc1g4VEwzWVwwSDReV3RYU1ktYwotY0RPOFdDailNOjNbKGlebSomby9RakVlbzpJSUMia2UocXJKXVk7RydQUCwkLzIhKyRfJWZZXiQ1Y0EjbW8zKC8KLSw8WE04KXJFZSI8Zjtia1gkRmdpaT9HXTlAJnQqZlFHc2xxND9ZITJXPVBkUSlVMEgmRGEwckQ9ZWJ1OkxlN01vCi1JUDhuZlpdSUk2LEVRXk9MKV9KYmE5SGJ0My1AX2o4S0sxQko+Lm5hQ2Q4S0UsKS5RM0BxWlIlTFwiLTlYTE5gYwotOnJ1Z1AvVlxwN2AsXypnJ05QTGRebydPSFAwKGVNQVZUWHAkTmxLJE4hIzdOTG9BT3UnO1pRcic8SWlsMkhnTkMKLSI8XFdAOGA/cEsob0tmdEtiamFtP101QTxpTEJLZWpDIzxrPGFhXSEtTylMQ1BXQkMsQ1VCZUVRVW0obV1bVWBhCi1gU1Q9OXJYYitDNnFYSSdaJTw/RjokS21wSDFQY21WMGNjcCInYmYlOSoqJ1dhITU9ZFJHQkhsKjs6XktQdW1ENQotJXA8UkRbUHM8MWdLbmkwJUlzRz9mbFRVaiFDTzJINzpCWSIzQkg7I1Eoa2BBQDlNRnA7WEBXcW9uNzZhLVhKLVYKLTkjNnMyN0gpdFtpKCdbOypjZlY3Nz5RWzc1XVlsbThTXz9tWVYxXDFlZXU+VEVYaGVfVSc4PjAnYGVCX1s9Z0MhCi1LLTUsOidHUTcsTFRYUShlLlIvI01FMjFpbD1eNShcSXI2VERUI1pFVkFOLT87WG1BcWEmLTcsSzQ6V2AlXSRYSgotJyFNcC9DMlctL1BRMWxsSGwhWVdpMUgtMC8xUV9qYV5CaV9lbUUvVVZBVkUjNmtKZFExN1ZIUlVjajNtJjdpNEUKLUZZJSpGLHJbOC5AXG4qMypzQTspOCNQR0xTO0Y4QVFSRWRnaXIhO0ZtT2dELUFHQStjXmRQPUtsNCs1cU1jMXRMCi03MjVqV14vdF9BNTM5RksoME4uWywvRDpXWGlTU21lV1wjXGtIOG5PYDt1dGJrW2hGc181ZjNCIzw+cXUkLE9sJwotb1BAb0dScyYiSmcrZlNTVW05XUFqaTA8N2FuNDc0UHBUS2ZAP1BsTlUsL2o2JU4lUGdHMEh0YF5vbEZwZiU3IiEKLUtRX2I0QDBdZWNYckdZZiNpJUpgPFNNaE5RQFtXSkRhXWoxWk91X1A/T2BeMSxhRzNHWGNqRG1kOUpuUGFTNVxKCi0xS2JTIl5xZjBzIzhpQUM+NEpBRm03ZjtvUiZDYDI3WiFUWjw8PD9sPTJIaj85TmhpOUJNb0JOO2Y3SiNOI1A4IwotPFlFOiVDKjVkYUluSCZ1MDlBSUwlSDlLR01OZ1JJR2E2LzllTmdcLWxRbGJsZnA8T2hxVzJMXSwwXE4iPV9WSD8KLVUwVic1YSoyOmxIK1YzI2BILmNuJUxDRTkyQjRoPUBmRUMxIUkkMF82bypWOUcqLy5IXU8qUSxJNDBoXWA0VSxJCi09S15FcUQ9Ll0wQl5iRj5eXl5ZUlxzQFtOT1s0J25YNllzYE5SQ3EhTm84Z0RiVnR0MyEvTVw6S2dMXXNSa2w7ZQotKlIjTEQkcUo8WjxIWjYnY1ZyN0hUcWFjUmQsdHA5Oj0kLk48biQjP0s2XUNdYzMsLS8tTSdXUmMrbiVbIU1maH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjEzMiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIxMzMgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxNDIgMCBSIAotL1Jlc291cmNlcyAyMTQxIDAgUiAKLS9Db250ZW50cyAyMTQwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjEzOSAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMTM0IDAgb2JqCi08PCAKLS9EIFsgMjEzMyAwIFIgL1hZWiBudWxsIDUxNSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEzNSAwIG9iagotPDwgCi0vRCBbIDIxMzMgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTM2IDAgb2JqCi08PCAKLS9EIFsgMjEzMyAwIFIgL1hZWiBudWxsIDU1OCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjEzNyAwIG9iagotPDwgCi0vRCBbIDIxMzMgMCBSIC9YWVogbnVsbCA1MDAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxMzggMCBvYmoKLTw8IAotL0QgWyAyMTMzIDAgUiAvWFlaIG51bGwgNTAwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTM5IDAgb2JqCi08PCAKLS9QIDIxMzMgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMTMwIDAgUiAKLS9OIDIxNDYgMCBSIAotPj4gCi1lbmRvYmoKLTIxNDAgMCBvYmoKLTw8IC9MZW5ndGggMjEzMyAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8naEpzX21SdUVPNQotQUskWzdLPk0mKWQ/cjlkI0RcUW9KcTkkLUBwVEB0N1k9Z2lKNkZsS2BoU2ohV0VPW2oxbjJiOkpUL1AwKz08SU4KLTdQZDtbQTJfPmE3akYvMF5sJjtNT2huOzM8Q2tZNjQyTjAlZC9lJ3ElbC1MPyMqQW1CQ2JxIS5YUHNOVGVoT0dfCi1SZlQ/RydGa0kpWWdZbjVSWnAkbiVdR0IsKCtBW1o/bk45KiMqVEBsXDZgYC8oZXBuMUA/Yiw8bCYwSSkwLXM6MQotPjguPys3ZnVuYVA/UjtcTmVUVV5naGxkIiNpUzcqLiJLTXVdOmY1RTM9TVlna1ZCMksmRnBBcUsvZ1MnTkdqLSEKLTQ5WnFtVyRNSj1UTihOcjAybytCNCtlcWQzSzt0dDtBUCN1K0N0RGJEc0ZFcCUtJmJrVDBVYWpCSyhtJlgxSl9VCi1sOlpgNkwrI1k8S0hWYkI1VDlvZVBPPjkpTSI4dV1cXiNfNyleLmVKY20mdUVFNUZMQks/LXQ2TCo4bm8wVEtZMQotbDhIZzEzJ11NNiYyNkAzTlQ2dEkpMjpHVWpZKUFpNmkmX05qLkpbVSVZSUlDKHNhRVhdKWFUUTBePjcxRiotJWsKLVYuNSY1Lzw1WktnK1xNKW0qLmlDWld1Nkw5b25YKW1EKE0zYCJwQ1RfQi81JFl0Tj0oTCs9Z1UlTGVSOW5OQDpqCi1UXF9bcEZGWlY8Oz9LSi8hMCNGYzpjRkJAb0Q7X0RfXyNxOE4/XW9SMHNGJDxfXnJnVWJsMEhLLEYrTi02STxXIgotKy8rN0lFMld0VjZkLTYuQHBtIy89QDg4ZTAuP0FdUidEQ15FLD1YOTlCNEExPSpGZG9FU2Z1Ij5pZHInOSVHXFYKLVtFdVdJNWY1cUhZW0ZNZkFmSXRUUmRAXTZMcEhmX2IvJEAwYD00JSRMTTZxPDpmRTorIVklQ089NEVLYTJwTzRMCi1sWGtlY0JZbE1qRmpORUNeVTRJZTBUOUxEX1xmRVw9TmlfSUs2WmdMTEstczBpKnMyZ1V1UjE6TGhbcEBFYmFVcwotXGlUK2MnRnBtV2RRQFg1b1tgaktHYTdTcF1QZjpwJ0VrdWdNa2UlaytRQihbUFBfW2EuKD85N1JkUXEvTSpEMyYKLUxCYjIsNDs5YGNAVkBZTStMbl4kLiNTOydQMEc7SldLTGFuIzgxVzgsYEwmS2lBallzWztQdShwIjdrUUtFSm90Ci1gaUQybjVsZllDJkI2Yms8YlU7Uj1lL2lqPzdRQjU0XlNWTUlBQWY2XzYhVWROXkkiXWpTN2MsVjc5TzhudTdddAotWkgyMjJrQCJSaUhKalxvKTY1YUEmdSQ6ZDRSQWlJXHNrJWtadSZsXmc6MkpBPFMrZ0FLKl5CVCZYJixeVHRRNWQKLSYzcFZuO2liZ3Q2K2FMWW9cVUFzSW1idDpfQjdxTiNUUlBMRUdmTDNZIU8lZ01OYThxXnNFb09RVDNUW0dyNWpRCi1YPiM1L2pwXSkzPXEtIjU0czR1ISlyQz80N0lKakUnIj1oTDtnO2tMYmxNYW4oOSUlZmZrKjY7V09dZ2FOL1YwMQotJ2VJL0JJUEBMMlUnIy5zLm4kSGshZUFaNjYkLU5DSj5OSDU1YEJeLiZxazsxVz9YLT1SImtfVDY0SmglMl5ZPjQKLUJPLSFpP2svRE4hZyVHW2NfN0NgalM/W3QyNUxcMzZKQEwqciJMNURgbWdCTzg5ME9zJko4S3BcYCNTRTNYXz9ZCi1TcSpEa2o0YEIiWWkuZXE2QEEoVHFsaWJVIUYxZWxoXUVMLTYnOENxWEhnOz1ZRU5GNUZRYSViVEpvbzI7dT09MQotYXE2Y2JHalloXmFDTFJQUkhxLGVaRSk5Jz8iPlxfME09RC9KXSFfK09SYWwnVkFUSDBoMUokJ05BcV1FZC1SSSIKLWQ1V0xKJmpuIUghaHQ8ZlxNLDI6M080anUmWFdwIzZtYHNcVlVaUmotUSUmLSRcXSJfXCR1Ym0yIUE2SE0wVjNUCi0/M2gpIkNrKW4+R1ldT2U5JWlrJz4jO0tcTChOcSordUM/aCEuaDNkJjdjOENNZENocDhiZG8sPCFYLFIhPSkmJgotTmVgXiRDQjc7aUQ9XWRkMl9bbFFkRTJKRTk/REpvS2lXI01QP2ZiSlBxOSpGNVJCZzRwbnMrbVtDaFVkYWhbcywKLU5vPkdmMTNnQ1NiUSlxdFomQjVvKEVGNzo8Rz1UZSYzO25qIzhfLj8hPGxKYzk9MydkKE1hOmYiXWFcZGYqKCw4Ci1KUDlQWUUpNzVSZ0JcZ2FSOU0ocEZUXjE6cmNgL049MD1pRFo7dFdxajZLXVs9SjslY0pyOyNhQ2BSL21bTSQqQgotZTcnRkxGY3MpPlFFNWZTJWE8QUQnPSwlWmJncjY5PkRnNCNbTzVIOGcpRFk9Q2MucmwiVWtxVWdKTVskTkU/P2IKLVxuZkE0LU02WU1yRkI/QmciSXJrSEBsWzw0b3NSb0pjTCwjZGJWWDFbZlhFJjNqXWJsXDZpLiFJR2BnVmRvYGNUCi1eSSxIXGdQNzk5LCZfPT4iWF9WS2M4dEEjLydXRlNpS2g0OEpFW3A7J25qKFViMk0hTCUxbi5EbD9FIS01P3RoXAotR2poMmtaWl5OPGhCT1dUOC1mfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMTQxIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjE0MiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDIxMzMgMCBSIDIxNDMgMCBSIDIxNDkgMCBSIDIxNTQgMCBSIDIxNjIgMCBSIDIxNzEgMCBSIDIxNzcgMCBSIDIyNzggMCBSIAotMjM4NSAwIFIgMjQ4NiAwIFIgXSAKLS9Db3VudCAxMCAKLS9QYXJlbnQgMTk3NSAwIFIgCi0+PiAKLWVuZG9iagotMjE0MyAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE0MiAwIFIgCi0vUmVzb3VyY2VzIDIxNDggMCBSIAotL0NvbnRlbnRzIDIxNDcgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMTQ2IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIxNDQgMCBvYmoKLTw8IAotL0QgWyAyMTQzIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE0NSAwIG9iagotPDwgCi0vRCBbIDIxNDMgMCBSIC9YWVogbnVsbCAyNDkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNDYgMCBvYmoKLTw8IAotL1AgMjE0MyAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIxMzkgMCBSIAotL04gMjE1MSAwIFIgCi0+PiAKLWVuZG9iagotMjE0NyAwIG9iagotPDwgL0xlbmd0aCAyNDE2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQtQVI1UyE3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZrSSlZZ1luNVJacCRuJV1KNGdPa0hgLWk9P15cN1U4J0dgKmIyNyU2N3VrTG5OMTYzWD8vVjtrXF1UCi1GPXFkTSFXYy9SJipNS29OMk05Y1VkMDo6J2E3TjUjUFwvcU5fXmVfM0E9cUtbZFUvSV5xKFEkMEEnK2EuLFxuNQotUl9CKm9iNEU7IktBLSg1RSdyZHU0PHEpSTJFbj1XKVpEdGlvRjI8czVsYzNCNnBrSyYjZjpQLjopIWk4SyJjamQKLU1cb29WVSpyPkBNTSkjN0BNc205WVxeLm5NIjh1XU1kXGxSMV50WzthcSwmODVnI1tPIXVUbFVOSmNCLS51XEhmCi1YS0BHNjhFOko+K2kkbzBOKzhPNTRPJyNgOnJBPWIsZWwlNiIoOjdNS0VKYUYxbGRhL19NKGFZTGVvZ2NKSDRnZQotY3NxXkYyQFVtOVk6UFlePUVHNzhVN2RhSFwuUyFDaV5iW11AJlNnUl9oZl9PY0dSI1YtRFErUDJpTS9GSmlPPC4KLSNrSWtRSz8zIiVZUU43cDUvYmpFKjwzbWwiWEgpYlVOIkA7TXI+dC8/XEFHK0poaTdoXW9fZVhVTyVjK1c9YzQwCi1zJmdSXmE+QCxHL0xeRSooOTguNytyOEZfJ081ZlBpNUgvKT1MVHBtZGpyOUo9YSprZDJgdTsnamBocG4uXlVoYgotPHQxNDFkRE5YJ2BgZmkuWlpOcXVRci9aLjAscWJrXmEjV1pfMkRlU0BMclpFb3FRNkRwXV4uSUtMNSRKJCI8VmgKLXFkZWIhJ0Y8LkpkMmwtbUFUZF1OSF1EMVFBIXUrVFpoZ0NnZTE6IVpkQGg+Q25kTik9V0lQSjJPRU0xIyxCMVBBCi0+Lj1rMzUobSovQ0Q/LWVUTCNzRkR0JDQtI11MJ2VWYm0mT0JKUE8uKU4wUz5qL0NvZSVgOW9vXTJsTV5SPFBLOwotaDxoPDEzbVAzRmpkKiZPKkpCVUhNNl4+XXAtWHU0WlgsTVdYOyk/ZSs9XjdiLiNTOlxKaG5dRVAnKDFdTHNHcUMKLTNfL2dAJWtsViNJM1MxKV9nKFU3TjIkW0E/KlJEVUxiWGovZy9tNTkiIy9SaSVBIS9MOi9mW0ZLIUVnX1B0XC0yCi1ARFdPVSJnNUpDbUNUZiQlUD85MjBMLkJkaXRTVEIicDQ0WFJnNDpoajVCP3Q/ZWI9NUJRckhtZFlsQ1JOW1xpYQotXmdPRExmSGA+KW5iPkElXjgpM0AjXzt1Tyg3JW4rJDZRPGY5I2A7Mi0pLldIKCI6WjJrOkdoS2ovLDgnaSRcX2MKLSpGdXNbK0VlLURFXD5DJ2w5XmZiUFtSYVU+REJzPiF0c2AqQCVrQS01aFpXKW4+PFolYW1pKEtmVisoJEksS1csCi1qdWEzM1JLMWozWjlvNSNMRmRcdC9YKXE/XzVwJy4hRCljMDJHQmcnKilNTVlkT0g3PkE5TyFkPC9VL1tvPWdLMwotSHF0IypKKjA1Lk9nckAuZ1JNcjwhSCglUFByYmhnS0pcQXBhOnBsYW1dcDRXI19nVlw0W0EtKlpPTDpzSm48Ij8KLThfRiVJak1Za3JpJjIzPVVUNGBTOUlzRDBcLzdSTjkqcTtrQ1BNRFM8PztmXUFQUyU/Izg2R1o3IUVsYGNwMjwlCi1OVE1VYkJcKnQxUzkkZTlWQ1tHMidWWE9GJVpBRk0zKD4kTyZnZFdfUXIsYk5gPjAxOlN1Y2Y1ZEQ1JWJLYXVWXgotLzNzTHJGO1JJaUxtSGM5RGc3RFEpOVc9JidyQFxrTUEpZkxLOEhXNUI2XEtoLmRnOVQ3bV49OEYvMSFPJSNZdUkKLWJqLGFKOlMuWWMlamdEMiM+WSYsLmZrSltTZVdzTV9oLDBnTTc+TCEoKz8lZmxaNHByS0puUSIvRnFCVUQlMz9MCi00OzZZdDhXcGBIJVk8RyQtQlFKQ2pDcGZWJzdERGcsJCNaSXIxZkIkJ0hCbm1fS0hQUCQ3OlR1aWlBYTckXWpkSwotMFFjLDFUKCdzcztTJS1KQnNmbXJLYERyVyteOmdkTkFpLyZMQUtZb0YvW1dWJjNHUklZJVwyKyI5RUokSzRNJmwKLWRgUFZ1TUJ0XWlmLkMqJ2ZpdEEqYT5NMW9wQHMzSzJRQl43TSdcTk0pcSpjajpHNHNLSyVoY2QiMEYrWV81PXBLCi0wUG5MXyNdP1tYQiE5LjdsNVBBRklMWkNrM0BJa1M+WzMpL0gnUFduTENpYzYpb1s+W2VkXj8zWVohVlVtJVptYwotTHRDPDpVTERYXU0sRCpiMlJpQCdEXS1yVFpmUFhRWCw7SUYnUVNgLjJkazEhW2ZSUDdnNjwpKGFYYCo0Wj9YcjMKLTgtQkk2aGJmbFtgS0h1ISI6YjRKJy5UamQwJjdVIidTYklCPFtgOGspXSchWFNBcUwjYXA5JHBKNTBaYWo5R0xdCi1WJCEvaVl0PlNJYDByYm5DQWYtW2lLPDY9I0VKQEJRdWJIYVxxOixxTmM5USsoLl5GKGUiZUEqN3U9SGBYVWIuWgotTDwic0M2Xl9uZHBxaF8xLzhBYC84a1ltKz9sWUlfclhfQGQyMmpJZjJQak04KGlVZVlVckc4SVFvKWo2Z1w+SyQKLSgiM1RPWlUxRUFxSExAPC5NIlopVG1eayxvNSFhbC8oMDtEPVRhJmhiW0g+aD5jU29oJmxtM1whPlJuVFlXcmMrCi0mOT42TU48NUI8NVNPOy0/aiRMKDBTYjIlUmQ6a08jIWVoP2dpYlJyO1c8P2BsKWNtSnI/YjhHZWNDRT1abzgzWQotaEFDbENFJyw7VzhRcVNXSi5lVWs5ZC5fN14+dWE8JShIYGgrOX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjE0OCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIxNDkgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxNDIgMCBSIAotL1Jlc291cmNlcyAyMTUzIDAgUiAKLS9Db250ZW50cyAyMTUyIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjE1MSAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMTUwIDAgb2JqCi08PCAKLS9EIFsgMjE0OSAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNTEgMCBvYmoKLTw8IAotL1AgMjE0OSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIxNDYgMCBSIAotL04gMjE1OSAwIFIgCi0+PiAKLWVuZG9iagotMjE1MiAwIG9iagotPDwgL0xlbmd0aCAxNjU4IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOS8oXUY+WDkjLWpqJVp1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKHJkNCRLTDAuUTYmcm0iMlBsWmBfWj1fbEQkbF5JYDxTYXJQWCZdTylcLlVtJlxRJXMxNzZAPSIqcXU5Ci1BTihWPFtEKGgmakNVKjViYmAtSFwzXWo+b2wqREU4RG08Kk5QZmhJMVNJKi1IbC5QPih0Y19aaihSQC8lajpyOAotMmliKiJAZkpWWCIvbiZRQGNCOWIlPi0xdHFoYDQ4bU0oRiJPQU5oVmNORCpHS2QsYFoscGhNYm5JKSk3Zz0jMyQKLS5hLCFcJV1TZEhfJGhvYmI2J3VTWmNXaEksRlZYbCRtVlB0MFRDVmNpJlFjKiE4SkFbMHErN0JYPUBtJSozKVBXCi1hRzI1dDY0VyowJVVgWl8jKVJxSCZdLW9GZFBIZ0EoZmhCKl9rXCFVVSUsP2wpLFEzXGpxJWslT1BXJklAayhQKAotXzZBPE9uJTo6bWI0RTsiPj8rQTFtdTJlM05QZGc2LktyZDRYPFdEXz1QND9aSy4tKEFiLSxRLXBjX1U4TlgiIXMKLVNILTcwMVBGYyRLYGQjQzBuXVhKYjBVWj1EKDciRyxEMydTLmpIPCswOS9aP2pIVTdMITtCZEc8JFpMbF5AL191Ci0rY1xvQFVJUWdNL1dMQkFtajBDUDRHLElJbEBdNyFkb1diQFY0Jy9uUG9XSTI+VGo3N0VscGI2Il00IzVLIWMwPQotR0ZQWnEwZEI2KzBrI1ZLJ2tuKWJUTEUnNighWmkhS1FtISZKQmlgUGZhMzw2KlFyTk9pPD1sbl4tYS5xbE87M0cKLVdDYihUKk1bXzpLOVxSaSVHO0xdRUZIWmYwODxwSDJDRjU/UCkpQXQ2bl9HPlMpKWM9NVdjX19HKGwpbWVyR2xLCi1OKUhGUSVRcCMkaj8oI2xVWFxfY1lRQiwzQ05nJ0wzLCdOOThZYjwoWTQ5JFc+TlEmIj5hSTdzVT1kXW9QanJcRgotJTwlOzgyMD5mKCUnTGBBJi49KkpcJisnXi1PcjE/UT9NVzVWLUt0MmA6NWQhK3FTWDwwL281IkRkSSkpRUhoQmEKLVFlN2VBXV4kKTwodHUrYSIuY18wRVJMZFdBRFIxRnAtK0U0VyhHZXFJQzlwV0ghVFcmZk9NVVw1UysyTmVyLS1fCi1pSE4hIz0hIl46XFxwQFFYNnI+OToqa2NZaEtDVmdGVVw9PTRtRiNDYXNadHJbbDtWMl0+NDo4aDI8TGclWzhEJgotJ0lwZ3VVUV02dTIiPzBBJDQ1Qlg0cSgmMzlhMj1ST1ZZSEwlQiNsaExIc18tPykrUS1ZQ1hcRygndCNyWls3M0YKLVRLXUtzSENQWylfLHRQOz0/Z0hmZVhlIUdJdVNVNlhBSGU9XyN1V0pCO0cpJyJnWVNlXHEpTEJINU5xWDhlQjpICi1AaCE0dVZfcHRGak9TcjhBUz1kZDUvYU9KNlluI3E3XUNZPFlYMCxXLXRgc15pJkU8XV4pIlA4L0kqR1AoNT81LgotJEQnZDoiaS41OSJvKyZhPys9MHJtSjRiVyxvIWFRJ0Q0TGJoK0U8ck1BdDZxK0NZQVVUc1tsTiVpRTZGSUU3LUMKLTRdaGk4aUc6JCRkWVs7Kjp0aFloWnJWWjFLcGI3ZjhEZSErJlBwRCM0ZyViWCYxJCM/JiRncGMxYz5MJDY2bkYtCi1FaUdTSy42ZTdbTV0kUzMoKjFTYUtlRiU+MDNAODtnLls6Z1tbWS5gT0R1UFdgM2ZyVixvalU2SkhaPmJPUEY1MgotYURIayZabzlvPFctSSZCVmQtMykrLDYxM0BTa1ByI1xpXFcjNFRwYUs1O0pTbyw6dCI3OWxvNzcuIyplal9AS1wKLS5SOyZcfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMTUzIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjE1IDE4NCAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTIxNTQgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDIxNDIgMCBSIAotL1Jlc291cmNlcyAyMTYxIDAgUiAKLS9Db250ZW50cyAyMTYwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9CIFsgMjE1OSAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMTU1IDAgb2JqCi08PCAKLS9EIFsgMjE1NCAwIFIgL1hZWiBudWxsIDM4OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE1NiAwIG9iagotPDwgCi0vRCBbIDIxNTQgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTU3IDAgb2JqCi08PCAKLS9EIFsgMjE1NCAwIFIgL1hZWiBudWxsIDM3NCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE1OCAwIG9iagotPDwgCi0vRCBbIDIxNTQgMCBSIC9YWVogbnVsbCAzNzQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNTkgMCBvYmoKLTw8IAotL1AgMjE1NCAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIxNTEgMCBSIAotL04gMjE2OCAwIFIgCi0+PiAKLWVuZG9iagotMjE2MCAwIG9iagotPDwgL0xlbmd0aCAyMzg0IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOTJRXUY+WDkjLWpqJVp1LlVYN2tJWTtbLnJjdDJrLUtCaUo9Xic5ZWApcgotQXE5cydEMiZtZjdqRUErKCdiP3BLNDtkIU9mRmRtS0w8a1UhbmhgPEE7NW1MK29sPC9CLDtGZ2AiQ3QwQHB1WiQKLSIlbVNeKHJkNCRLTDAuUTYmcm0iMlBsWmBfW0loXEFkcD5MJEErRF1hQT9kaE4hMDdiWFJuYyIxYEJxOmFPby50Ci1BXSNQNFUncGUoaSt0T1ElSGdaT1VnYzp0KSNcJzFWLi1lQyUmOlZcMG9pJChlaE4wRUJcS1BITS0vbiRaImgxcgotKTI6Rz1nYk9vWSwyMyZJRTZyLWk0UmIwYWY4Ym0sXGdlIlhHWnFhRGtkJ29oVkxfLE4yW3EhXmw4QiYpMEwuUlUKLTZXPTdOJVVqPEEmLiQwdWpUI2VuJGYoPywhUmZoVkwrPFYiIyk9W2srIkV1LExobiVrYVJFQnEicChCMVFtU01PCi0/NFtSLCZFam8+LnNgOVBMIVpvK1s9aztnaEQuUmg9SUQjdWloMDg+S1ZSPyI1RDkrVGRQaFNFQC1YSGghPk5zQgotYyFzIi02LW9gI2dxJ3BNJ1pSaD8nLzJcY05fYlNlcFV0I1E8WWBeaDxDb2VJMHUycTpjWkZcJzVxKTgkbk1yKDUKLVhEQlVjLDkzN1hjY044RD1IOCFrOmJEbnBna1NaMkEhImtSXWpoPTYkYV5VbWt1TD5ib25kMF0oMCpJQCUoKFFHCi0ybmgyOFhfXWpeRjhHVDVscWwpPjBsMEJHJ2I4K2onSmVGUDVqVUcuRz1tMEE9S2ZmbkdtLjc5UVNYSUNGb01CbwotPGhpWHMlQ10jJ211N2lgY1g5UzQqVlkkOWUkLzRlP3MiYGFQMERwSWJFImw0SjNZbnFHYEZEUD0+JjVsR2ZcaT8KLWM4Kzw3NDhMbUhFWlJhXyNsMklncCJgO09xMzBWcSo3NnJbKClBMj5dXTN0Vm42Jm9mWGIzPExZJUlONWYyVSpQCi1sOyVQKzFNTCE6KWpvJWNhTzJlcih0dURYJVUlPkFAVTxQVjdvJ0kyTmtHMiZZNjU/Tl50MkliMnNkJS1RVWssLwota11cREliJHJCSjkkUmJsTVsiYTxiaT81ZD5mYyxjX2c9W2AzYzRAcjxrWCwsaV0nMCptMShyOj1qaFtSJG5vdDUKLWZuRC5DO15iNzIqMy5waSFKNygkL01jdDcwaGQtYGZKZWE9Zk5dNkhfL1NOcW5GcDdtQUhaRUFSSCxsRzIhbUNmCi1vazBsbTU+UFxUMWxVR2hhJkBdMFYlXW9OSVw4cVReMi1hIl9hZmpZYHI6cTc6VjBmVG9acj5rKGlzZExZT0stKAotRj1PRlo1VTZlc3BuJllUTF9zN2pYRlgyJkotI184KW9GcFlKbCIkZFlkVCdZSy1BbF1ZVTBPWWQsKWdaIjpwKTwKLU4+aixDNW01byI7W2liVVMjcG9AJFhgSW8vU0teKjBrVj9rOG9fVHE6LWRjajBPUD9ARi1uMkphSSZoLE5eQVNyCi1kMGJrSSI6Ilc6R1RCcGgkci04TCpbT15JY2UwZzIjaiRobiE6R3UlPVkibDpMb2QzYDlXQjI3NT05c09xT19fJwotKSswNklOaTFpVFhaKW1tX2gldCIvKHJYTktrdGcvUjMpVUpeYCZgMVU0LHAwRS46VFxebmA8KWhHOkVPJUlPZ2MKLTdSYSptX2E2ZyZMKTtXZjxiP1gwcUY+V1NxOWZMLDlUO2ozQGsvW1AwZlNVVShtSSFrLnJoWjEnazI6J2k8Y2lNCi1aNSIoVCdPWFgmV1laMFkib0hLQV0kdWxOTihYSU5xbWRURUU1QFpXTS5dNCNMUEdwSywwUF4lQjMhQF9rJkRvKAotJSJTTl41dCkhIyVsIkRiNVUhQjxNJltdalM+JlRyTS5xSltTRVYrS1JATFRpY1RZTVJaYiYjXFJLOG9GLlRPJj0KLWYvXHVzWkNPTHUzbVFhaDAqKSY/QVRLMHBRais3ZEpPaFIkaTFNNCYyW1hlPjtmTjstWSc8V1MoKDpYdGNSLVRnCi1TTTJ1LClpb1tWQ141Qi1UUDhTISR0UT1qam9pTV5xKUk/M1YldVI1JDI+YSJpXyVSKis6MFg8NDk+ZU1DZjIqQQotNUgkLi5gYzB1V2w8OUZFUGY/NEpwQUMnIj1jOFYoNjhcc0RmR2JHNzg5O1Y1PC5eM0wlMDhiTDRGa1dwJ0Q8Ol0KLU91L1IxImBAKC4sUlssI1clQTFHSmU2M0c6aSwjM0JLcmNpNC51KXFJb0pKcURDPFhnZGFcOWNpZG9HWyQ2MW9GCi03RVM2P2FuKS9QJDA3QWA5ISFYUj5FbU9ETjcjJEY5J1JfJSVeREQmVlJDamFPLzZKYWVra3Vtb0pAIks9RGs0VQotSjJnLk9AWnFRYCdiO1xHPFdeSCw+U0A3blptUzk3Pl5NOU5mPEIlSzFoZChAYFtjJEU3JGFsJG9VYEAvPGdsQlsKLW80cTdUZkVWTjhnPm5yWlc6aUQyVU4zZ3E9ZTNLSjloOz9ZOS44dGlyUlheN11kZlFEVT9kR3FZXkB1cW46a28wCi06MU9LWj9HV0YjOV4xI1NqZCE9YmRUVmFcMFMxNy8nWClXa00xTTtSRl5RbHBBdS8jI3JlQTshRWZdVG9YOUptcAotU0FfLltYIkB0TzxOLUBoXFdWNmdIVUQmM1pAWUJoa2UzJD1ma1hRJUtmMDltQCc7Jy1YZ1BsOSJHQEtVZE0uODwKLU4hcVtIZ2o8XiM3JWNfZ2c0N2NMXTJVQ25tODJgTFVvOFtWVjtdNi9FbSFNbipDSG9PJWFqJm5lS1snWWlzZTwuCi08Y2xdZW1GNTZrU0YpMis7L3NOL2gzQkA2PCdlP0Yib3VIRDQ9TSdHYWM6KF9EUWpualcjKTIsWGRSJEM4MkAnWwotLlI7Jlx+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIxNjEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GOSA2MCAwIFIgL0YxNSAxODQgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMTYyIDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTQyIDAgUiAKLS9SZXNvdXJjZXMgMjE3MCAwIFIgCi0vQ29udGVudHMgMjE2OSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQiBbIDIxNjggMCBSIF0gCi0+PiAKLWVuZG9iagotMjE2MyAwIG9iagotPDwgCi0vRCBbIDIxNjIgMCBSIC9YWVogbnVsbCAzNTIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNjQgMCBvYmoKLTw8IAotL0QgWyAyMTYyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE2NSAwIG9iagotPDwgCi0vRCBbIDIxNjIgMCBSIC9YWVogbnVsbCAzOTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNjYgMCBvYmoKLTw8IAotL0QgWyAyMTYyIDAgUiAvWFlaIG51bGwgMzk1IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTY3IDAgb2JqCi08PCAKLS9EIFsgMjE2MiAwIFIgL1hZWiBudWxsIDMzNyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE2OCAwIG9iagotPDwgCi0vUCAyMTYyIDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjE1OSAwIFIgCi0vTiAyMTc0IDAgUiAKLT4+IAotZW5kb2JqCi0yMTY5IDAgb2JqCi08PCAvTGVuZ3RoIDMwODQgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJ2hKc19tUnVFTzUKLUFLJFs3Sz5NJilkP3I5ZCNEXFFvSnE5JC1DTC40JzdZPWdpSjZGbEtgaFNqIVdFT1tqMW4yYjpKVC9QMCs9PElOCi03UGQ7W0EyXz5hN2pGLzBebCY7TU9objszPENrWTY0Mk4wJWQvZSdxJWwtTD8jKkFtQkNicSEuWFBzTlRlaE9HXwotUmZUP0cnRlxJWExyKDtpPUozUCUyQixROk9sOmkjP29YJzxfNTREJjpzYHBBUXFXNjBhRkxjViklO087Jy8+aWcKLUQ6UCw4LVVVSVlmUCpKY0lAKS9ZUi1KUURyOiI7U0gqbE4qJTNsRzoxNSNiQWYjRWAmNmpQYV1LO2QnUFlbWk5mCi0jUXQ2aztBYi9pNWcmZ2FBJz9SX0thXiZvJi5NIipqdU5WSSlyKj10RShaIT9NTG5gNCg5XUYwVThlQyJDUSw0JwotOjhAMVI1PSNAUFNOWT8sMGIkMzNiWW9gUjBcR1NFTmFncEUoQmJBTDVtdFJTYUFPIjQ1c1g5Zld0QWFyJi5RTioKLWIscFxmKHVSSG8mVGQ0ck5JdFdyIXRFLi01V09sTUJaMnFvK1RWKmVOX2A/PzM9TmUyYHJcP11RdSlrWDBuYSdlCi0iXEZraidGX20tIXRpZDMvTSZjNCFSZm5YTCs8ViIjKT1baysmXGZUTGhuITI4RyRyYyMoYExWUlk3SGlpLm89JwotRjJKcm9UYy9fQzY0Yjk6K0dkbF9eRUtgb0trTlsha1ZBTzFcK01QMU1CXW1AQChKPy47amdlLzYsUitQXSEsL2oKLTJAWFFKOmFzLURgMGgmOyIsX2RbYEBNYDYzRD9JKl9gYzdxIlBmVC1BI1NLIVs7WVpvJ2dHOGxoRDhNNlxsTGk+Ci1kNlBpOjhgT2pscUM8ZDopXTZTN1guWkdwMSFqSTktQj1vUjFyODNvPSFcQEFiYiReczspM1FKOU9oYm0xKD5IYgotUHJCMzVPTVdzZSkxMi5RIjlUQCYxaCsiSl1eUSwsPU5XUD0iIWMrRDdEaiFVcS1iTCM6bkxBbGVoOVBBMSFqPzMKLT5TKVFhJ3VDV2tJZi1FMFBtJm4kMVY6YTE2NTE5cVYsMVNrREFpWmtVb0dcOEBqcGBHRFhkdXVVKDVwL21rWlk5Ci1FOE1AO25lLG80JS0mbl5TUmxhbUY+c0g4ZkdlQmw8KU9IbUtjMDdbVDhdajJQSk90MzUsVClDRTgvJlolOl1mLwotaGhGNi8pNi8/JnB1c1srUXBjXFpWL1wlXVg5OSZZa1cxdEdVbktuQz5MXVw9NCEiUmJzJzksYTFJbE00bE8vZEYKLWwpcERGS3FXPl8wTUsvWzFaITdwXHJOVDkyTDpuSCMsL28uWyZuSz9iQCIjUEQrKFkxXzM5Z1dNckUwJkMmKCFxCi0hL0FuTjtvckkhWm5lO24kbE45dChDKShWL0xBP0pRazw4UjlMdDlaLChTQWE2WCtMdSFKU2NDNVxwZ1pcMltIZgotalZvcWtkXFA0SnJYQzdiNV9lZGRPQkpYZjlFRXMmTDtMQkdpPFYmPVdoRTpCJmhKITIxPVFGNlojPmNiVy0rMUcKLS1cN3F1VGBXbEIqISQuX0NFXkFZTEdEbyw8IidpWERBZm1VYCNPSUpIUCdecVxmajRnXyMmcSVeYV91RmlYcG1LCi1FXyxIRCJVNjsuVmNTXW1SNCcyOy9rUyI3LUJvR1wiK0xjOi4yMCViOC9fVCs/dENqaVhiSi5tcHNVRiE5YVFlTwotVlxKOkQ4YTpMa2lQOl9Ya0hKc11uMT9Pai5Cak9TVyMjSnNFczN1PShddUkjKm9SNiE/ZDMtYDhWW1MmIWhwY1sKLVRvOmwzRSpOaidHWjUsam9eb1JLaXApVCJqLD5IKWxfW2FSKCIxZkE0TkRzalslS1olX2dALDowOXFoRzdsO2FzCi1aJCdWTG5FTS1rWyotcmtNYjROaTkvVmxnVE4nLGklTTZrZC1LdGBRUm5SWy8kS1RnYVFycUFkI1VrdU9iJCVHUAotRTxvTFVdMURNYzA9bG87bUsuPz0lWTtrPjFZQiFjQS4yWDRuQ1hAKFxYRk5OPiVhTCZFXW03KWhhOnRiO0kocFIKLScyQmpsSCw2OEU8Iko+bihSIUtVKHVRZUdVIWRCZEJgTmYuZThVZiRxRGZBNydmUi9XMmYwX18uTWk1JCVLVU4qCi0jJV1FPlgyU0NiTGNYSWpkYGRKQ2kuY19vZ1c/KTM2OipTbDV0dGtbRE88JycnTkE0cDErI3VFU15aRXU6RVxlLgotakteMHNpT1Y0TkApPGYhJFh1aTJNUEhQIWNTPU5UbFwzWi0kLjYhIilacW1CI2ctPTojQ3NcLE88VTlFRlJEKzwKLTtoRCJaR1RbMyc1aihCJ1FIKiFYP21bImhxaEM0JSNRYVNUJHQ1KywiSFpySEs5LmBdOD5uRUpvSD5wa1gkP2lzCi1uVj5maSkkQ1RsRUA4bUQ2XFk1U2NHPVk5PHFFOnIqWkJaSkQ4IUs4YFJtMlg1aWg0NUQ0aCdhNm9RTVVXIzlLWgotUWJAJFcuNmIvKCQ1MGNCImVkVWRMNGY9PzYkUWorQEhkZkpPQnI8WS9LOklwIWxnIVdLUmRlW0NwQllEZ09kcXEKLUg+XDBHOVFfVmM7cTdcTjYtMFdeRTFMZ2NQMSEkOEknS09AUTxWcFppNkJqZ2pZOVsmWGJRPmApTTlMN1lJMT5hCi1WV3I3OFQ1R1ltWWIldUgkQ2kzQjRxV2tWXkJpJW4ucW1MVzY3TUMiLEksO21ibzBJVDtVM011O1IySnUoNT5nNQotNnMvR0FAUFM/REU/NThkbnNeYzU1dUtJbDRIO0NLaUs3TVklU2YtMltJSEZzVjtQOShsWzVDI2VoazpbalVVXSgKLWw+ZlhWZzsxNiMjO2g2OV9RS1Q7NCwsV20lSFQzLGE9PDUhJ2U8Kls5Uk9rKSRGXFNFcWRgRSJPa0twPFA2Y202Ci1oQURbLUVrcD05IVRDKEBGLUw5Vk5YSjwlQjJdZ09WRVQ8MUA4ZGpBTTZJRlRYZChXPjFiamBrJWpoaUNFRDJPRgotIT9rVGpQJDBVVjZTInU+MisuV2M/NWEsNjgiOktsZVxtQk9nV2RlN0o+WVVrayM+KSNyaTZydDRRamQ7MGZQTm4KLThecDxZTEhMJ1ZbSClEXGFDNzY1VS08WExdalohbXI+UCZaNjYqbkQ0Q1AlZ1xZOUZoXVxDbl8lZGopLTJoTVRpCi0tajk6aFdKITVmOXMkaFdyMVJaO2RzYHBpKW9aRDFQaHAhbFhHPC5GYFlISVUwOHQvPlxjYFopVz4+R1E6L3FIbAota0csc01eLFxvZU41Y1UhLDJSbmlyYjVIQlA4R2NEYlZZXDBoSTIocUZGR0RSKGk6YUpxRmNhOmk1LmZlTGkuM00KLUMhSmxqV1BnY1hFY1JrODNtWkMwTUhWM0hkRV5fUkpzcytUIVhNVS8yLSZ1bk0sayheRFstSU9UbDs4P2FpLT1oCi0xLSpBJVI+NGssYkk5NTA5VyFUSEcjQkVBWixTaTk4ZU1CJTwidGEpcUxSdUZHbFsvMFdZL0VzOlhyMnVcLUAuNwotYzpmZXEuWiE8Q1hwSCQiQ1x0WDYqQFg5WzU+MEAkbzdcVEdYZE1vTVlxSWlbTDVXIjwxJk5pdTkkajpiJTRWVUoKLUw3MGFDXi1ZWltCRTVrW2s7ZD0nbSE4cGJGZXMnWGZHdEFhSz1ZZiQmImVVN19WJCp0U2hPYTosY2gsbm1RLDg6Ci1uZl5IPzooJGRmWFhKRFVBRj41OUg2XzNnbDFALzdEUGAucU8mJnFFS0ZDLXUsLUh0aFlRYVNPJip1L2E7IkZ1XQotP2ZeTUwiQW1mKC4sKD9KJVxqazltMWEuIWAlWWBXbzNhaVYuK1pTWi9jaFtKfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yMTcwIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjkgNjAgMCBSIC9GMTUgMTg0IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjE3MSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE0MiAwIFIgCi0vUmVzb3VyY2VzIDIxNzYgMCBSIAotL0NvbnRlbnRzIDIxNzUgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0IgWyAyMTc0IDAgUiBdIAotPj4gCi1lbmRvYmoKLTIxNzIgMCBvYmoKLTw8IAotL0QgWyAyMTcxIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE3MyAwIG9iagotPDwgCi0vRCBbIDIxNzEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTc0IDAgb2JqCi08PCAKLS9QIDIxNzEgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMTY4IDAgUiAKLS9OIDIyNzQgMCBSIAotPj4gCi1lbmRvYmoKLTIxNzUgMCBvYmoKLTw8IC9MZW5ndGggNjgyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbydoSnNfbVJ1RU81Ci1BSyRbN0s+TSYpZD9yOWQjRFxRb0pxOSQtRC1kRik3WT1naUo2RmxLYGhTaiFXRU9bajFuMmI6SlQvUDArPTxJTgotN1BkO1tBMl8+YTdqRi8wXmwmO01PaG47MzxDa1k2NDJOMCVkL2UncSVsLUw/IypBbUJDYnEhLlhQc05UZWhPR18KLVJmVD9HJ0ZcSVhMcig7aT1KM11GMkIsUTpPbDppI0A/Nis6JFkiXV8lKVFPMSlHWlk+KTo3NF8zb0NJZUU8M1NlCi1nSC05XTZDbW5pOmgpQmglSFxtNFBmQGYqaVFkMT07LGMtKV4jTkw+aztKND1kUHFgM0EnUWorQHQ8RG1OUGhMaQotJjNELCNmR2smKllpbXRVL1ImR2MuZmZZNDMnUDVOX1lDbWxDWWZiWyFDRkBNTUxuYDQoOVxtO0UvUUIjQ1JRKEUKLSFNY0BuXG80KSdxaDtpaE4kbDZAaj91JWg2U1FBM11oWydGbT5bMF9mSmVmTT4jbU5qLD9yWU9iJSRZWTFVLG1OCi1sOGg7Wk9RPyIqWWo4Wl1fVTVfRzMpMjBHKGMmclEuXnEpPkpPJlQ5TmhcIikzWSpxZlwualN1SkFPLltfNzQubQotImkzbEApJShwbUFFYTchVFs1TmxEWGNOI05haz8zIktRJFdibVQ0LTE0OWBEaihRUnNOPVMhNjBhc2hRZU82PVEKLTBdImYhV20lLy1kVTZpQyMsISh+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTIxNzYgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMTc3IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTQyIDAgUiAKLS9SZXNvdXJjZXMgMjI3NiAwIFIgCi0vQ29udGVudHMgMjI3NSAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQW5ub3RzIFsgMjE4MiAwIFIgMjE4NSAwIFIgMjE4NiAwIFIgMjE4NyAwIFIgMjE4OCAwIFIgMjE4OSAwIFIgMjE5MCAwIFIgMjE5MSAwIFIgCi0yMTkyIDAgUiAyMTkzIDAgUiAyMTk0IDAgUiAyMTk1IDAgUiAyMTk2IDAgUiAyMTk3IDAgUiAyMTk4IDAgUiAyMTk5IDAgUiAKLTIyMDAgMCBSIDIyMDEgMCBSIDIyMDIgMCBSIDIyMDMgMCBSIDIyMDQgMCBSIDIyMDUgMCBSIDIyMDcgMCBSIDIyMDkgMCBSIAotMjIxMCAwIFIgMjIxMSAwIFIgMjIxMiAwIFIgMjIxMyAwIFIgMjIxNCAwIFIgMjIxNSAwIFIgMjIxNiAwIFIgMjIxNyAwIFIgCi0yMjE4IDAgUiAyMjE5IDAgUiAyMjIwIDAgUiAyMjIxIDAgUiAyMjIyIDAgUiAyMjIzIDAgUiAyMjI0IDAgUiAyMjI1IDAgUiAKLTIyMjYgMCBSIDIyMjcgMCBSIDIyMjggMCBSIDIyMjkgMCBSIDIyMzAgMCBSIDIyMzEgMCBSIDIyMzIgMCBSIDIyMzMgMCBSIAotMjIzNCAwIFIgMjIzNSAwIFIgMjIzNiAwIFIgMjIzNyAwIFIgMjIzOCAwIFIgMjIzOSAwIFIgMjI0MCAwIFIgMjI0MSAwIFIgCi0yMjQyIDAgUiAyMjQzIDAgUiAyMjQ0IDAgUiAyMjQ1IDAgUiAyMjQ2IDAgUiAyMjQ3IDAgUiAyMjQ4IDAgUiAyMjQ5IDAgUiAKLTIyNTAgMCBSIDIyNTEgMCBSIDIyNTIgMCBSIDIyNTMgMCBSIDIyNTQgMCBSIDIyNTUgMCBSIDIyNTYgMCBSIDIyNTcgMCBSIAotMjI1OCAwIFIgMjI1OSAwIFIgMjI2MCAwIFIgMjI2MSAwIFIgMjI2MiAwIFIgMjI2MyAwIFIgMjI2NCAwIFIgMjI2NSAwIFIgCi0yMjY2IDAgUiAyMjY3IDAgUiAyMjY4IDAgUiAyMjY5IDAgUiAyMjcwIDAgUiAyMjcxIDAgUiAyMjcyIDAgUiAyMjczIDAgUiAKLV0gCi0vQiBbIDIyNzQgMCBSIF0gCi0+PiAKLWVuZG9iagotMjE3OCAwIG9iagotPDwgCi0vRCBbIDIxNzcgMCBSIC9YWVogbnVsbCA4NDQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxNzkgMCBvYmoKLTw8IAotL0QgWyAyMTc3IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE4MCAwIG9iagotPDwgCi0vRCBbIDIxNzcgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yMTgxIDAgb2JqCi08PCAKLS9EIFsgMjE3NyAwIFIgL1hZWiBudWxsIDgxNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE4MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDU3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYzNyAyOTcgNjQ5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTgzIDAgb2JqCi08PCAKLS9EIFsgMjE3NyAwIFIgL1hZWiBudWxsIDc3MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjE4NCAwIG9iagotPDwgCi0vRCBbIDIxNzcgMCBSIC9YWVogbnVsbCA3NzMgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIxODUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1OTQgMjk3IDYwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE4NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU4MCAyOTcgNTkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTg3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTY2IDI5NyA1NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIxODggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NTIgMjk3IDU2NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE4OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDA2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUzOCAyMDYgNTUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTkwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMjA2IDUzOCAyMjQgNTUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTkxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjE3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDIyNCA1MzggMjk3IDU1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE5MiAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTI0IDI5NyA1MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIxOTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MTAgMTI2IDUyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE5NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDEyNiA1MTAgMjk3IDUyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE5NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzM4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ5NiAyOTcgNTA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTk2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjIxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDQ4MiAxMzMgNDk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMTk3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjgyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDEzMyA0ODIgMjk3IDQ5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjE5OCAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMjAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDY4IDI5NyA0ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIxOTkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NTQgMjk3IDQ2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIwMCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDQwIDI5NyA0NTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMDEgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzk5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQyNiAyNDAgNDM4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjAyIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTgwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAyNDAgNDI2IDI5NyA0MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMDMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMxOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0MTIgMjk3IDQyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIwNCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzk4IDI5NyA0MTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMDUgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzY4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM3MCAyOTcgMzk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjA2IDAgb2JqCi08PCAKLS9EIFsgMjE3NyAwIFIgL1hZWiBudWxsIDUwNiBudWxsIF0gCi0+PiAKLWVuZG9iagotMjIwNyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzExIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMyNyAyOTcgMzM5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjA4IDAgb2JqCi08PCAKLS9EIFsgMjE3NyAwIFIgL1hZWiBudWxsIDQ2MyBudWxsIF0gCi0+PiAKLWVuZG9iagotMjIwOSAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjcwIDI5NyAyODIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMTAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNTYgMjk3IDI2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIxMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI0MiAyOTcgMjU0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjEyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjI4IDI5NyAyNDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMTMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ4MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCAyMTQgMjA1IDIyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIxNCAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDk0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDIwNSAyMTQgMjk3IDIyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIxNSAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIwMCAyOTcgMjEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjE2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTg2IDI5NyAxOTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI4MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNzIgMjk3IDE4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIxOCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3MDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTU4IDI5NyAxNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMTkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI3MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDQgMjk3IDE1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyMCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjU4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEzMCAxMzYgMTQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjIxIDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE2MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxMzYgMTMwIDI5NyAxNDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMjIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxMTYgMTE1IDEyOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyMyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDE2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDExNSAxMTYgMjk3IDEyOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyNCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEwMiAyOTcgMTE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjI1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE1MDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNzQgMjk3IDEwMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3MDggNTQwIDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyNyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2OTQgNTQwIDcwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyOCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIyOSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NjYgNTQwIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjIzMCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk4MDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY1MiA1NDAgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjMxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MjEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYzOCA1NDAgNjUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjMyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0ODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYyNCA1NDAgNjM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjMzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYxMCA1NDAgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjM0IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NzQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU5NiA1NDAgNjA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjM1IDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTgyIDU0MCA1OTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMzYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQyOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTY4IDU0MCA1ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQyNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMzggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQzNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTQwIDU0MCA1NTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyMzkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTI2IDU0MCA1MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyNDAgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzA1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMzMyA1MTIgNDQ4IDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjkyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ0OCA1MTIgNDY2IDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ2NiA1MTIgNTQwIDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0OTggNTQwIDUxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0ODQgNTQwIDQ5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NzAgNTQwIDQ4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NTYgNTQwIDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDE3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NDIgNTQwIDQ1NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MjggNTQwIDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI0OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MTQgNTQwIDQyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MDAgNTQwIDQxMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDE5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzODYgNTQwIDM5OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDIwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNTggNTQwIDM3MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjU1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNDQgMzkzIDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM5MyAzNDQgNTQwIDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzg1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMTYgNTQwIDMyOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzcyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMDIgNTQwIDMxNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyODggNTQwIDMwMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI1OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNzQgNTQwIDI4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzIyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNDYgNTQwIDI1OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMzIgNTQwIDI0NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2MiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxOTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIxOCA1NDAgMjMwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjYzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE5MCA1NDAgMjAyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjY0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjAzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNzYgNTQwIDE4OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNjIgNTQwIDE3NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDUyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNDggNDA2IDE2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQwNiAxNDggNTQwIDE2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjcwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMzQgNDczIDE0NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI2OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDU4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ3MyAxMzQgNTQwIDE0NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI3MCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEyMCA1NDAgMTMyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjcxIDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODcwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTA2IDU0MCAxMTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyNzIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI3MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgOTIgNTQwIDEwNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI3MyAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc4IDU0MCA5MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI3NCAwIG9iagotPDwgCi0vUCAyMTc3IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjE3NCAwIFIgCi0vTiAyMzgyIDAgUiAKLT4+IAotZW5kb2JqCi0yMjc1IDAgb2JqCi08PCAvTGVuZ3RoIDIxMjcgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCxpKGpOOzVrKy8KLTQ9MWdRKTMiZ0hHXjMyYy1sRUg1b3E2ISpCSmtiVCJmJCdyQyxvbXBRKURZWThcRWpiKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdTFBUXzUoMFE0SDlsLyZ1bkYkQEdWUywtQVclQGZRaVZ1Kz5lbFRVTEJadEFSYzlBTDlaX11edDkpRgotYUltS0xicWQhaEx0JnBIOD9nbFhBV0kwSmVWZHJQQSQpcTVMNlgwUjorQEEqJUNRLyc9XTpKXjRJXSM2bzNvdDYKLTdNcyFnMFxFaTtBJlg/OEw2XzB0UGtIWEBUMHJjWU8uVyQkM19sQ1xsVFFrPT5qYGk5Vy5QJTQ4byopXDRtalFnCi0qMyhYYCdKWVBWLi08T0xqLGNNXiVcbiFfM1xSN0s8Wi1aI0BkOFQiWC9LSkg0MCg+cSducCZyQkdtcTdDTEo1UAotblZlLzslImgrKzFVXE1ZYDFLRWUkcUNyLEBBJSREN3JgV1lXTVpHMF9EXUo1K05ELytfXk89UjBAQC0mYVtdMz0KLVYmb2pBLilSLzpVRj49XyVIQVg2K0hBZj9RUy06b0sqRTUhJGxFTGwjKWNsZidkZzdgZkpqPEIjWExMSGQzUzMjCi0jLiwqTidGNXFGaj1sV0Q9Q2BBVEBAXFVhNztKLjYuS29uXVhxMidGSSJYTzZAL3NwcFc+JDdjLkxdZnMnR3NjLQotPEY4PHVBJyFVUiRtVUApKihMRiZBLyNOUWtXaDRoMU8pL0ZOZTxHWiZXWDJyanFoJTZiXT9WJFArKG81JD1YajgKLSxlRlw7TkNlcGIlRThxYks2WUJzYypJLF4wSkRJJmldPCdPLnU1ZV5GODBaX2VpLSVKRWByUjBaVj1ZKjQ7OWk6Ci1LNlotck4/XUdbRz90cE9sJWkiWDRNNzpyJGkiM0dpQmAsLHMvKCRJKWkpQSFPTkVBZDM1K01lQG1iRSJRXSReKQotYitjMTlEN15sQFdNISszaD4ocU1CQEFfR2crRU9ebzpaQm4vdDpZdTxQYmBGRGBLIVUpI3V0a0Y1XjIjbjQ2Q0cKLV1UY15iSC5VWnBBVkArJjdbQzdCWV9KaC8sOztNOidGOSNzZipMXD1PQ1Q9dFkibjpaOGg6RmFaXFU3R2RQSWdoCi1UXmlYJ2ojNGw3S0grIUBRLFdGUzphJTVTQC1IKW5qIU1nZzZWTE5ISj5UJVpySVdhSkM0QydqX0JfIVBvZT5gLgotWmlSVHBNRUY2TkwwbT9LaigsRywjNkRPNjVETDhXRDs1UTVlNEw5ckstdSdqZmxoLUQyRDtzLWUyRT0pWSolWGEKLUlCPWlzPExEQj5eJTBBcWBdNE0jZGoqOUUhZVVvcUg0XTI9JSlfKyJvPydsaD01LGNyKyUubD1kLTZGOUFbUUQqCi0yODBII09EZkQ5S1owPDRDQjJwSDFJZT4haU1adXEhRi03TiNVaipqK2lITCEmSkZfLVg5JWMqZWpLb0laIU0oWgotIlgjbnRMYChnUHBpQy5kJzA/PWRtIiM1OCUjUVhnWFhKJ19iQDxTYGBMU0EjVFBiLWdPVSNWaTVlRTpOSEI2Sl4KLWN0NWFtMlEkLSs5JVtmIjxoWTNWXGVPcEQjXlxYNE5nXmxkQC1FZT9aXi1RMVUqJDJdNTVRQEJDaXJVY2YhPDpICi1kKSFBL0lubmZNTEJbNy5UP0hTRW1jRTlCVmswIk9iMyIsKz0+VV1RUl0ycFAxbGtOZDA5YlUtcjwhXyRNQ0ItaAotWTsiKjpnZl50KGNbbmRvKFsyXUVnZyppViJxbE48UlpXNDg4OTwnQVwlWiFRT3MnbSJGUWhGO2IwWlVkSzFwYCQKLThJQHFrQWhKbitlPDRqZzReWTE0PDkiVlRFZEVTRWhuRFZRcWhiM2JJUlk/KyMmITtkPiYmTF5XN2cyWzNPIj5CCi0kRlozS2JWSUgkZ3A5bWhqRHIoJm9JQHQpP2ZrO2AkOjBxN1xBNmw9KipSMk1tXUthPldTMS4yb0RfOy46MCxdRgotZlsvWCIyXl4pSzxDcC5QbzQwbT9LU3BuIlYuP2gmLVg5dSladUlgRkdDTWxTTjxGaD85SVs6MCwqP09XOFZBbj4KLUsiZiR0KkNHRlglU0YjSUwyJEUnKDlDaS1NXT0ybEJgMDxDZUtbdCM8Pi87Z0ZcYFNJNUgkImg8W0xnOCMjdW9TCi03Wks1LVFoVkxCLD8zby5fMjYuLz4ndWxRNjtVQStAO2duclU7PFlaWStfK2EwZU1tTT1GZ1dkIjlJNHVMSzN0OQotZ3ApWWheam0uWnA7akddPCM5TCVvaGxJQm9XbzNXNjxXZzNUSWplWVIzOUotPlA4QDY5MDNYLyQ6VUElQUNgcS0KLU0jTT8vaDJBWFdkNnNzVTdablQ9I0ktImA3WVdWSm4mJHNfJCxLUmYiTmktbWVTJHE5T0BHI0pXbXQsOWQ6XDU4Ci1yZWh0PkFFQilOW1A/NSdBKF5xc1FePEM2WzVHLEpcbEBdRGQ0bWdya09KdGYuK05Pc2lCPSlXLzI5OlxDXjpRVgotcGNoQWcjOmcqYWwmJFQrOjksW2gzRVBrO1MyKyxWaT0kT00sJz4sLz5lJDlsaXElb1U+NUdCYkZgPDUvUSpfQ3IKLWJKQi5OMTRWMzNKLH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjI3NiAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0Y5IDYwIDAgUiAvRjExIDYxIDAgUiAvRjEzIDIyNzcgMCBSID4+IAotL0V4dEdTdGF0ZSA8PCAvR1MyIDEwIDAgUiA+PiAKLT4+IAotZW5kb2JqCi0yMjc3IDAgb2JqCi08PCAKLS9UeXBlIC9Gb250IAotL1N1YnR5cGUgL1R5cGUxIAotL05hbWUgL0YxMyAKLS9FbmNvZGluZyAvTWFjUm9tYW5FbmNvZGluZyAKLS9CYXNlRm9udCAvVGltZXMtQm9sZCAKLT4+IAotZW5kb2JqCi0yMjc4IDAgb2JqCi08PCAKLS9UeXBlIC9QYWdlIAotL1BhcmVudCAyMTQyIDAgUiAKLS9SZXNvdXJjZXMgMjM4NCAwIFIgCi0vQ29udGVudHMgMjM4MyAwIFIgCi0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gCi0vQW5ub3RzIFsgMjI4MCAwIFIgMjI4MSAwIFIgMjI4MiAwIFIgMjI4MyAwIFIgMjI4NCAwIFIgMjI4NSAwIFIgMjI4NiAwIFIgMjI4NyAwIFIgCi0yMjg4IDAgUiAyMjg5IDAgUiAyMjkwIDAgUiAyMjkxIDAgUiAyMjkyIDAgUiAyMjkzIDAgUiAyMjk0IDAgUiAyMjk1IDAgUiAKLTIyOTYgMCBSIDIyOTcgMCBSIDIyOTggMCBSIDIzMDAgMCBSIDIzMDEgMCBSIDIzMDIgMCBSIDIzMDMgMCBSIDIzMDQgMCBSIAotMjMwNSAwIFIgMjMwNiAwIFIgMjMwNyAwIFIgMjMwOCAwIFIgMjMwOSAwIFIgMjMxMCAwIFIgMjMxMSAwIFIgMjMxMiAwIFIgCi0yMzEzIDAgUiAyMzE0IDAgUiAyMzE1IDAgUiAyMzE2IDAgUiAyMzE3IDAgUiAyMzE4IDAgUiAyMzE5IDAgUiAyMzIwIDAgUiAKLTIzMjEgMCBSIDIzMjIgMCBSIDIzMjMgMCBSIDIzMjQgMCBSIDIzMjUgMCBSIDIzMjYgMCBSIDIzMjcgMCBSIDIzMjggMCBSIAotMjMyOSAwIFIgMjMzMCAwIFIgMjMzMSAwIFIgMjMzMiAwIFIgMjMzMyAwIFIgMjMzNCAwIFIgMjMzNSAwIFIgMjMzNiAwIFIgCi0yMzM3IDAgUiAyMzM4IDAgUiAyMzM5IDAgUiAyMzQwIDAgUiAyMzQxIDAgUiAyMzQyIDAgUiAyMzQzIDAgUiAyMzQ0IDAgUiAKLTIzNDUgMCBSIDIzNDYgMCBSIDIzNDcgMCBSIDIzNDggMCBSIDIzNDkgMCBSIDIzNTAgMCBSIDIzNTEgMCBSIDIzNTIgMCBSIAotMjM1MyAwIFIgMjM1NCAwIFIgMjM1NSAwIFIgMjM1NiAwIFIgMjM1NyAwIFIgMjM1OCAwIFIgMjM1OSAwIFIgMjM2MCAwIFIgCi0yMzYxIDAgUiAyMzYyIDAgUiAyMzY0IDAgUiAyMzY1IDAgUiAyMzY2IDAgUiAyMzY3IDAgUiAyMzY4IDAgUiAyMzY5IDAgUiAKLTIzNzAgMCBSIDIzNzEgMCBSIDIzNzIgMCBSIDIzNzMgMCBSIDIzNzQgMCBSIDIzNzUgMCBSIDIzNzYgMCBSIDIzNzcgMCBSIAotMjM3OCAwIFIgMjM3OSAwIFIgMjM4MCAwIFIgMjM4MSAwIFIgXSAKLS9CIFsgMjM4MiAwIFIgXSAKLT4+IAotZW5kb2JqCi0yMjc5IDAgb2JqCi08PCAKLS9EIFsgMjI3OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIyODAgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzU1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3OCA1NDAgOTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyODEgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzkxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDcwOCAyOTcgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjgyIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2OTQgMjk3IDcwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI4MyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE4MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2NjYgMjk3IDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI4NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzY4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY1MiAyOTcgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjg1IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODcwNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MzggMjEwIDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI4NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDIxMCA2MzggMjk3IDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI4NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDUxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYyNCAyOTcgNjM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjg4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDI5NyA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyODkgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDk1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU4MiAxNDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjkwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMjMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQwIDU4MiAyOTcgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjkxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMjcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTY4IDI5NyA1ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyOTIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NTQgMjk3IDU2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI5MyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NDAgMjk3IDU1MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI5NCAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxOTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTI2IDI5NyA1MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIyOTUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MTIgMTU0IDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI5NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE1NCA1MTIgMjk3IDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI5NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ5OCAyOTcgNTEwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMjk4IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODkwMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0ODQgMjk3IDQ5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjI5OSAwIG9iagotPDwgCi0vRCBbIDIyNzggMCBSIC9YWVogbnVsbCA2MjAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTIzMDAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI2MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NDEgMTM5IDQ1MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMwMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDEzOSA0NDEgMjk3IDQ1MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMwMiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQyNyAyOTcgNDM5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzAzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDEzIDE1OSA0MjUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMDQgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE1OSA0MTMgMjk3IDQyNSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMwNSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM4NSAyOTcgMzk3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzA2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzcxIDI5NyAzODMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMDcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMxMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNTcgMjk3IDM2OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMwOCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzAwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM0MyAyOTcgMzU1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzA5IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMTMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzI5IDI5NyAzNDEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMTAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI1MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMTUgMjk3IDMyNyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMxMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMwMSAyOTcgMzEzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzEyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjg3IDI5NyAyOTkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTUwNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNzMgMjk3IDI4NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMxNCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjc1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI1OSAxMjkgMjcxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzE1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTI5IDI1OSAyOTcgMjcxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzE2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjQ1IDE0OCAyNTcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQyNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNDggMjQ1IDI5NyAyNTcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMTggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMzEgMjk3IDI0MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMxOSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMTcgMjk3IDIyOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMyMCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMDMgMjk3IDIxNSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMyMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE4OSAxNTkgMjAxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzIyIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNTkgMTg5IDI5NyAyMDEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMjMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI4NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNzUgMjk3IDE4NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMyNCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTYxIDI5NyAxNzMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMjUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI1MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDcgMTYwIDE1OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMyNiAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTYwIDE0NyAyOTcgMTU5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzI3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDExOSAyOTcgMTMxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzI4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTA1IDE2MCAxMTcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMjkgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzc2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE2MCAxMDUgMjk3IDExNyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMzMCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NjUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNzcgMjk3IDg5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzMxIDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODc1NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzA4IDU0MCA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMzIgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2OTQgNTQwIDcwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMzMyAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY4MCA0NDYgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzM0IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTgwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0NDYgNjgwIDU0MCA2OTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzk1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NjYgNTQwIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMzNiAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NzcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY1MiA1NDAgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzM3IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTgwNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzMzggMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzkxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MjQgNTQwIDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjMzOSAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3ODcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYxMCA1NDAgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzQwIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc3MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNDEgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzk3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMzMyA1ODIgMzk3IDU5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM0MiAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzk3IDU4MiA1NDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzQzIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc4OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTY4IDU0MCA1ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNDQgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzcyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NTQgNTQwIDU2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM0NSAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3ODQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU0MCA1NDAgNTUyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzQ2IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc3NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTI2IDU0MCA1MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNDcgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1MTIgNTQwIDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM0OCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ5OCA1NDAgNTEwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzQ5IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc4MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDg0IDU0MCA0OTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNTAgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzcwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NzAgNTQwIDQ4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM1MSAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NzggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ1NiA1NDAgNDY4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzUyIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc4OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDQyIDU0MCA0NTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzg1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MjggNTQwIDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM1NCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQxNCA1NDAgNDI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzU1IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc3OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDAwIDU0MCA0MTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNTYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMxNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzg2IDU0MCAzOTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NTA3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM1OCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDM1OCA1NDAgMzcwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzU5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0Njg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNDQgNTQwIDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM2MCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMzMCA1NDAgMzQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzYxIDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODUwOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzE2IDU0MCAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNjIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNzYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMwMiA1NDAgMzE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzYzIDAgb2JqCi08PCAKLS9EIFsgMjI3OCAwIFIgL1hZWiBudWxsIDQzOCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjM2NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNTkgMzU4IDI3MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM2NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM1OCAyNTkgNTQwIDI3MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM2NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjc4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNDUgMzYxIDI1NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM2NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM2MSAyNDUgNTQwIDI1NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM2OCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjMxIDU0MCAyNDMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNjkgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMTcgNTQwIDIyOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMDMgMzY3IDIxNSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM2NyAyMDMgNTQwIDIxNSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzI1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxODkgNTQwIDIwMSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNzUgNTQwIDE4NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3NCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3NjMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE2MSA1NDAgMTczIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzc1IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODc2NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTQ3IDU0MCAxNTkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNzYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ4MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTMzIDQyMiAxNDUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzNzcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDM0MjIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDIyIDEzMyA1NDAgMTQ1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzc4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzNDIyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMDUgNTQwIDExNyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM3OSAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDc4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA5MSAzODkgMTAzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzgwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0NzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzg5IDkxIDU0MCAxMDMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzODEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzcgNTQwIDg5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzgyIDAgb2JqCi08PCAKLS9QIDIyNzggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyMjc0IDAgUiAKLS9OIDI0ODMgMCBSIAotPj4gCi1lbmRvYmoKLTIzODMgMCBvYmoKLTw8IC9MZW5ndGggMTk5OCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kLGkoak47NWsrLwotND0xZ1EpMyJnSEdeMzJjLWxFSDYncWY2SUJKa2JUImYkJ3JDLG9tcFEpRFlZOFxFamIoQ1dgYSFibT5LQGwrR3EKLTZZbVVYRV1HKW4jZD86NiojZlk+PC9qa3BdSFNDayYvTkhuby0/LlhCYjFBOV9gNTBLYFpVPE9AaUYwS1lTcEgmCi01aUFDUzltVz9HTHIoQFJSIW1DNjwwJUBsTEBaOzRnMTwyYCRuIl44cjhyOGJTSURDQyE4KSgnTFBwJkYmW2E3XAotLW1ZNSpgcSw9Z2doNiY3WGUlK29lJmdhWU9ObHE6Sllecl9cdEssXjM9WSFbZl40XTdAZDhUW2NSUGZcTUx1YnUKLUtFaVpZazY4ImEqJCJSYjpaTiFKIjlUbUdsJlInPmIqQF1pUDFWNWY4WlZLYU5AcHQnMFolPD1wQVZoc1A1WjtRCi1OI0ZEUzUtV04qUllbYFcjOD07IW4zQWFoZEBmZSo4Tzk6YCRjamstMlJDRUBGMGN1VE9xXHJPI1wvdD4hJ1Q5RAotWkwhTiZOKTslJmxZSjlbYUUlRl0xZWdZQ0g0VTolQFpgVW1jVEkrMU5jSWgkNEFTNFk9SVAmYFc4JyxKOl87TFgKLTQlXUE+YU5fKE87JGIkVEYyJ1dJUDNmOzFgVTpoLjBbXjgwRUQ8REhbNmNuYTZgaDQhNzAxVlw8JEFRSm1rOVhHCi0/cEdtTjphIihdTk89X0U6S0h1RyNzYzonYyNQZytNQk03QE5JdUs2a0lOQEFmXE5ycG5lckRyODxwXUJLRTdgXgotKVs0aDRiaUZTR1w7XThuTVlMWj0uVF5wRU1bIyljM2d0YnMrQDBePVhCUG9ZNzwqITsoNiJVNGlJOEw/WHAnQ2MKLSxGSEotWzI3bStJbGptQydVamk/KGRMLE1Zcm9RKmUrMzllVGFjWEk+NSdhRT83bG90ZXI3XUYlTVg+aykkYCwuCi1XcCNEOjNkbSI8WnM5OT1rKmBSJ1M3YmZfQVgtN1QmPnJQbGFccnFDZSEmb1xvQUc2TGAmYlVMUGEnL042Nk9FLAotJG1Wb0kmMjshYFNFTEhGN01AcjlkXmozTmkxXkxJLj5dcTwtWGwnTy5hUDs3KVxENmk6M0MsUTNgWzFEWTdTWU0KLSdqak46UFYiRXVXLlFuXTE5ai1XIzxfPWI5aj5UZjI0ZCNsPHUnODIhS0hkSV9kTGUvSnJyZ3M0Ki1aNj1yKkVKCi1WMmg7cHFMZ0cqYyhBW2ZfaVIuTXA6W3RXPiNOdXFjb01XP1QhYjRHUicrIldiWiYhIUI7SyUlLkFXaTcwNU5ZLQotMEpMWCkzS1hpRjFBWSR1XUJkaHI9Tk1QQVltNlQ2SChoWXVsb0BDP1FrMFhjOyI/UGVqJS4vcSFiKEwrRHVfX0wKLSx0OGwsYUJTbSRJNk5zPjBTTCo7Oy9OO09KZl8vT2pXQWdgSVNGcUgyS1BWPWkrI1w6aTwyM081aF5gMXFgOT5vCi1OQ0pPOU9DYzdZL2Q9XWApT2ZUISVMbGtlNUFPLSdPRy5AbT90cig/JVwsTCRHXlM/ZyFUdUlVMkJGW0tJV2M0SwotZ11rUjAvZz9CYiVHUCdvPUg5bTZMLj8nSjo9KzYobF0lU0AmRU1OPGkjbU4pNEkqYWs8WTMpTC5qQyplPEM9NEEKLSNRbUc1JT8zNDRdTEUlXSlbZy5ZRTFBczA3KjVzaVVgPjVOVSpoalQmOWhCIyFfQlIvLDlCc2UlJjFCSElYckAwCi04M2ZHKDpNXGNPbls6aWtcTiRvKlM4RV5uViptbyhWXWgrUFgoWSpPN0FIaF1kI1VjYTRmT1xjIzIiMj9BInMpVAotZExJV1MtQ1pcOF9gLy0lbkhsJz0hQCY6bDJOcSVDJ0wzNWBOKjYncU9zSk8rXi5FLzRSOTNCTlAvLU0uPTZMQEcKLTFDam8xanV1STEkUWZsIkgnRHJgKTcxTmJwSlAwYTllJEdEY1heTkpqKV84OTokQSVbITonPEAkNnMmOlJBW0lFCi1wQVxMcy9yU28wKThbOXRINE9hNVU5KEZBZD8kVXUoPEE7ISxoO3NNaTlOay1vXDlvPXI6W2ctO1BoYScnTXRpPQotRypNKnVFKUdWPiJzYjRhUTZqYmdfKkNGcDk8aT1lLldAaC1TTkQ5M2pRKG5NVEdnMFJQdDAtIkMvai1EOk1RJ08KLVdlc3BHTCpzXENOQzgsRGBZXmdpIzowdDVOP1clJFBpdF5lXkEpIT9kNW0+VW8hQm06TiUwYjpXYmklKio5QEpxCi1TVC5cKGE4Sjh0RmkrdSNBNFw/MidrYVhGYUVxYDxdbF46VkNTanA7cUBwPnJOcEIsSiY7cjZYWCdnL1xAP2xKWgotLmNnNldUSyR1My48aS1FTWVMYSghS1NPNTRlRE5OUzckUnNbQk43VFZdL3VXLU4wcy1pNHA+VzNYNG8kLE9Nb0sKLXJfTmZmZ14jTV1PcyI5PH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjM4NCAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxMSA2MSAwIFIgL0YxMyAyMjc3IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjM4NSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE0MiAwIFIgCi0vUmVzb3VyY2VzIDI0ODUgMCBSIAotL0NvbnRlbnRzIDI0ODQgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDIzODcgMCBSIDIzODggMCBSIDIzODkgMCBSIDIzOTAgMCBSIDIzOTEgMCBSIDIzOTIgMCBSIDIzOTMgMCBSIDIzOTQgMCBSIAotMjM5NSAwIFIgMjM5NiAwIFIgMjM5NyAwIFIgMjM5OCAwIFIgMjM5OSAwIFIgMjQwMCAwIFIgMjQwMiAwIFIgMjQwMyAwIFIgCi0yNDA0IDAgUiAyNDA1IDAgUiAyNDA2IDAgUiAyNDA3IDAgUiAyNDA4IDAgUiAyNDA5IDAgUiAyNDEwIDAgUiAyNDExIDAgUiAKLTI0MTIgMCBSIDI0MTMgMCBSIDI0MTUgMCBSIDI0MTYgMCBSIDI0MTcgMCBSIDI0MTggMCBSIDI0MjAgMCBSIDI0MjEgMCBSIAotMjQyMiAwIFIgMjQyMyAwIFIgMjQyNCAwIFIgMjQyNSAwIFIgMjQyNiAwIFIgMjQyNyAwIFIgMjQyOSAwIFIgMjQzMCAwIFIgCi0yNDMxIDAgUiAyNDMyIDAgUiAyNDMzIDAgUiAyNDM0IDAgUiAyNDM1IDAgUiAyNDM2IDAgUiAyNDM3IDAgUiAyNDM4IDAgUiAKLTI0MzkgMCBSIDI0NDAgMCBSIDI0NDEgMCBSIDI0NDIgMCBSIDI0NDMgMCBSIDI0NDQgMCBSIDI0NDUgMCBSIDI0NDYgMCBSIAotMjQ0NyAwIFIgMjQ0OCAwIFIgMjQ0OSAwIFIgMjQ1MCAwIFIgMjQ1MSAwIFIgMjQ1MiAwIFIgMjQ1MyAwIFIgMjQ1NCAwIFIgCi0yNDU1IDAgUiAyNDU2IDAgUiAyNDU3IDAgUiAyNDU4IDAgUiAyNDU5IDAgUiAyNDYwIDAgUiAyNDYxIDAgUiAyNDYyIDAgUiAKLTI0NjMgMCBSIDI0NjQgMCBSIDI0NjUgMCBSIDI0NjYgMCBSIDI0NjcgMCBSIDI0NzEgMCBSIDI0NzIgMCBSIDI0NzMgMCBSIAotMjQ3NCAwIFIgMjQ3NSAwIFIgMjQ3NiAwIFIgMjQ3NyAwIFIgMjQ3OCAwIFIgMjQ3OSAwIFIgMjQ4MCAwIFIgMjQ4MiAwIFIgCi1dIAotL0IgWyAyNDgzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTIzODYgMCBvYmoKLTw8IAotL0QgWyAyMzg1IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjM4NyAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3NyA1NDAgODkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzODggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ5MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3MDggMjk3IDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM4OSAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDY5NCAxNjcgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzkwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg1MDMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTY3IDY5NCAyOTcgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzkxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0ODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjgwIDI5NyA2OTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzOTIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2NjYgMjk3IDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM5MyAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY1MiAyOTcgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzk0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0ODIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjM4IDI5NyA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzOTUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ5MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MjQgMjk3IDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM5NiAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDg0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYxMCAyOTcgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yMzk3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0ODEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDI5NyA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTIzOTggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ4NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1ODIgMjk3IDU5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjM5OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzI3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU2OCAyOTcgNTgwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDAwIDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE2MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NTQgMjk3IDU2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQwMSAwIG9iagotPDwgCi0vRCBbIDIzODUgMCBSIC9YWVogbnVsbCA2OTAgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0MDIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM2NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MTEgMjk3IDUyMyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQwMyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzE1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ5NyAyOTcgNTA5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDA0IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDgzIDI5NyA0OTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MDUgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ2OSAyOTcgNDgxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDA2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDU1IDI5NyA0NjcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MDcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI4OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NDEgMjk3IDQ1MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQwOCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQxMyAyOTcgNDI1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDA5IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzk5IDI5NyA0MTEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MTAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM4OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzODUgMjk3IDM5NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQxMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzkxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM3MSAyOTcgMzgzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDEyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzU3IDI5NyAzNjkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNDMgMjk3IDM1NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQxNCAwIG9iagotPDwgCi0vRCBbIDIzODUgMCBSIC9YWVogbnVsbCA0NzkgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0MTUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzAwIDI5NyAzMTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MTYgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI4NiAyOTcgMjk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDE3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI1OCAyOTcgMjcwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDE4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjQ0IDI5NyAyNTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MTkgMCBvYmoKLTw8IAotL0QgWyAyMzg1IDAgUiAvWFlaIG51bGwgMzgwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNDIwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNjUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjAxIDI5NyAyMTMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MjEgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ1OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxODcgMTczIDE5OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQyMiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkwNzYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTczIDE4NyAyOTcgMTk5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDIzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTcxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE3MyAyOTcgMTg1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDI0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTcyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE1OSAyOTcgMTcxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDI1IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc2OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDUgMjk3IDE1NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQyNiAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk4MDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTMxIDI0MyAxNDMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MjcgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5ODAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDI0MyAxMzEgMjk3IDE0MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQyOCAwIG9iagotPDwgCi0vRCBbIDIzODUgMCBSIC9YWVogbnVsbCAyNjcgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0MjkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI1NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA4OCAxMzUgMTAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDMwIDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE2NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxMzUgODggMjk3IDEwMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQzMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjgwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDc0IDEwNiA4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQzMiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDEwNiA3NCAyOTcgODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MzMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI3NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzA4IDM2NSA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MzQgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ0NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzNjUgNzA4IDU0MCA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI3NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjk0IDM3MSA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MzYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ0NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzNzEgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0MzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQzOCAwIG9iagotPDwgCi0vRGVzdCAvSTcuMS45OTgxNjMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY2NiA1NDAgNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDM5IDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE1NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjUyIDU0MCA2NjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0NDAgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTY1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MzggNTQwIDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MjQgNTQwIDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MTAgNTQwIDYyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1OTYgNTQwIDYwOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1ODIgNTQwIDU5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NjggNTQwIDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NTQgNTQwIDU2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjY3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NDAgNTQwIDU1MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1MjYgNTQwIDUzOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ0OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzE5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0OTggNTQwIDUxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzIwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0ODQgNTQwIDQ5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzEyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NzAgNTQwIDQ4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NTYgNDIyIDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQyMiA0NTYgNTQwIDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NDIgNTQwIDQ1NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDc0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MjggNTQwIDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1NiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MTQgNTQwIDQyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MDAgNTQwIDQxMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDc1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzODYgNTQwIDM5OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ1OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDcxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNTggNTQwIDM3MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDcwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNDQgNTQwIDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2MiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDY5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMzAgNTQwIDM0MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDc2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMTYgNTQwIDMyOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDc2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMDIgNTQwIDMxNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ2NSAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg2OTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI4OCAzOTggMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDY2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzk4IDI4OCA0MTYgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDY3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NzIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDE2IDI4OCA1NDAgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDY4IDAgb2JqCi08PCAKLS9EIFsgMjM4NSAwIFIgL1hZWiBudWxsIDQyNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjQ2OSAwIG9iagotPDwgCi0vRCBbIDIzODUgMCBSIC9YWVogbnVsbCA0MjQgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0NzAgMCBvYmoKLTw8IAotL0QgWyAyMzg1IDAgUiAvWFlaIG51bGwgNDI0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNDcxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI0NSAzNzcgMjU3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDcyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTgwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM3NyAyNDUgNTQwIDI1NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ3MyAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3NjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIzMSA1NDAgMjQzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDc0IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTgwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjE3IDQ4NiAyMjkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0NzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5ODA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ4NiAyMTcgNTQwIDIyOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ3NiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTg5IDU0MCAyMDEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0NzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMzNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTYxIDU0MCAxNzMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0NzggMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzg2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNDcgNTQwIDE1OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ3OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMzMgNTQwIDE0NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ4MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzE3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMTkgNTQwIDEzMSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ4MSAwIG9iagotPDwgCi0vRCBbIDIzODUgMCBSIC9YWVogbnVsbCAyNTUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI0ODIgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4ODk5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3NiA1NDAgODggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0ODMgMCBvYmoKLTw8IAotL1AgMjM4NSAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDIzODIgMCBSIAotL04gMjU4NSAwIFIgCi0+PiAKLWVuZG9iagotMjQ4NCAwIG9iagotPDwgL0xlbmd0aCAyMDM1IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQsaShqTjs1aysvCi00PTFnUSkzImdIR14zMmMtbEVINjI1IldpQkprYlQiZiQnckMsb21wUSlEWVk4XEVqYihDV2BhIWJtPktAbCtHcQotNlltVVhFXUcpbiNkPzo2KiNmWT48L2prcF1IU0NrJi9OSG5vLT8uWEJiMUE5X2A1MEtgWlU8T0BpRjBLWVNwSCYKLTVpQUNTOW1XP0dMcihAUlIhbUM2PDAlQGhMMUAzbWBjU3JQY0ljVnVLWiVbXkxeK2U5NE00bUAobGJNPUpPJ10wCi1FJmVsXWs5QztBPTUsPjlgXjlkR1lJW1tKOWg4YHU9RylGPDU3KzlFMTVuVCFjODFHKUU2ZUlmMEVea1s1W3VWYQotIk1uU11sOENbKks8UG1yIXQpM3QtaCRQNSM9KFgsWWluQUplJHUyPStbRjE0JHRDXkQzV29QWG5pLiZRQllsX2UKLSIiPEBpJUhBXU8mZDg+Z0hvOyo1Myxmai5KcTNHN1lMLT0qU2pJdS5mWTdqVDp0ZGw6Sk8kXlpdMkUuTW4kVmEzCi1fWFhfZS4uSGo7VVJMdG0tIjM8NXFuXzVCPzkwSVdwckc6UDZTImBiTm0+Xl0ncmBANz1QazlxVTgzV0M4P0BzbAotTDtAaEZuS1kkM040KFpebEMqSTskQlNfVDs4SzI/Sz1NXSNPc1VJLiEpc0w8SypeWnBgaiouXXErLSxwWT8rX2gKLUZeOC0pOlVGNzBMdDAuOCJjYFw0JyxoJ1RuL0UuIV9nKDhgN1pOa3NsRlFTIzVUOW9qLSg2aChPKC8sWz4+QiM3Ci0uK2tzaHA7S2pvQV0zZS0kWSZDUmJnYEUvMG9SPmZPPi43aCIvW3NkWz90U042NmNtbClESyZnbDhGVHJFOVQ/OgotZE5HLyJcaTZRUksmSEUhKChhXmFVMXUpWWZOJDM3aChYNlEyYStJRkFmQWFTa2liJ2Y5RSJDLz9GVD5XQ3FIaCoKLSVvJWQ4O2hMVTdMcFEwUDtLIU07LExaXU1HYyEiYHI+K0ApXEEyTkE8MXVTJytVcyZwYDphW0JidCI0KGwpOVlyCi1WcSNtaHArckpVZkpsQSdPP2JQQTFfckheOSZnWzVCai1QNGtCQlYnIm0hIklLLGZ1bkNRISZkXFNrRDVDKTVhRgotOUsiaWgmclJSI2QrVWdXU1EiJFEvL14wYVEvcSJfKi8tOEdlIzhOdGJEJGBWT3FzI2gxalIpSE11T2xZIlRoMW4KLVQqLFg2U15zV1snKl1FQ2lDP14qRG51WlxrYi9OZ007TztBKEUxJkM0dVpqcCRBKXJaQ1guN3BBKkVidStQbmo0Ci1cNXBRc05OcnNGbSJYSmdpcVw/KTdWZWMycUcvUDBCcyQ8K2MiS19RNGlwV2s/Qm4iYy9qRSlEPzttc1w3UFExIwotY3BlcEAxP15FJkAoJS4yPlJaRUoyKVcyLV05W1tPKTJdW0cjIWgjS1hKLWNLPlZJUlhqXWpSV1cmUCYqQSQ/N18KLVMyVyJbV25SVmsjW3AtJzhZZVVEKUgsOzc3WiRMclZ0QyxtQEJwMlhfOjUyL2A7I3NiS0tmW0IyQUk0bnBuI2wqCi0mb1EodS1HI0o+WDNQXzwjKkNVODMmajAmYWY5KT1XK21uNDcqKiJcLzc4Vm1nYyNHKUc3aWcpSmQrZFhYJSktTAotZU8uZ0MwQz8laF8nam1TUl0oKmMwXy1KOyJVJ0hlQ2szIm8kOWgiKmtTby8pRltncU1CLlhBbk9WVSFnPFRyKlUKLShvNStDTVIlSThqbUJdTUsqJ29PV1VeL21NRG0nOExwZVU3WF1bKGEuTC45PSppM21lTXBcP2s4ZVFMaEsqaj51Ci1BSSgxXyI7XzM1NC9JQCZGaEdrQTY0Y0omO2grbFcoU0EmMSU5TkcyUmBRa2tVPVdvbThnQSkuOTNPUEplRjRIVAotIk4kW0Q1IkVuRGRXUnU0a21hUzInLXIzQE9WLSJKOTwhPTFTcy5gUEI0Si5RJDFwMXQ2ckwpczEkQ2JqWj9hX3MKLVhbKDlya3NkLDRCMS1FWyZuYEtDVSQmN2VYVDZjZGVSRXQ6TClOMzpSUF89c0daJ1o0ZTFuaTZnJ0EpRUg7SU9gCi1QZUpuUilyTz1RQCxadVwoPEZlWy0/TyFoZSJVNnIjOEQ+XHExQ0Q2JVciLTFnPnEvPk0/W2dURjk7ZDNWKlJAPwotSWQvKVExVV9eMyFLal4nK0xOSVcyXVZvLUZHUDdaMEpKMkdiIjJXP2VZTkUiW1Q7QllwN0M+I1BBXycmTC5CNlAKLSFOYUJJblQpMWpQUywhL2FrYDsrIlMpW1xvI1V1TislakFgRSRcRic+Y0lYLjRGbzFDTEdmcXRDJyYlLTg5bEAyCi08XWwxUVNOYTwlTSIxVUhZLlhwS1NlITVlNjpWY284XlY5Uzc0UGA/WDImOW9sbixlN0A/PEYnPE5ASTNnbXNhTAotWGlUJjVoRWldVzwkQjYyVFtlUl48bllCYUJwREM9KC9wQilCa24lYmlRVDYtaiE2bjIjUX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjQ4NSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxMSA2MSAwIFIgL0YxMyAyMjc3IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjQ4NiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjE0MiAwIFIgCi0vUmVzb3VyY2VzIDI1ODcgMCBSIAotL0NvbnRlbnRzIDI1ODYgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDI0ODggMCBSIDI0ODkgMCBSIDI0OTAgMCBSIDI0OTEgMCBSIDI0OTIgMCBSIDI0OTMgMCBSIDI0OTQgMCBSIDI0OTUgMCBSIAotMjQ5NiAwIFIgMjQ5NyAwIFIgMjQ5OCAwIFIgMjQ5OSAwIFIgMjUwMCAwIFIgMjUwMSAwIFIgMjUwMiAwIFIgMjUwMyAwIFIgCi0yNTA0IDAgUiAyNTA2IDAgUiAyNTA3IDAgUiAyNTA4IDAgUiAyNTA5IDAgUiAyNTEwIDAgUiAyNTExIDAgUiAyNTEyIDAgUiAKLTI1MTMgMCBSIDI1MTQgMCBSIDI1MTUgMCBSIDI1MTYgMCBSIDI1MTcgMCBSIDI1MTggMCBSIDI1MTkgMCBSIDI1MjAgMCBSIAotMjUyMSAwIFIgMjUyMiAwIFIgMjUyMyAwIFIgMjUyNCAwIFIgMjUyNiAwIFIgMjUyNyAwIFIgMjUyOCAwIFIgMjUyOSAwIFIgCi0yNTMwIDAgUiAyNTMxIDAgUiAyNTMyIDAgUiAyNTM0IDAgUiAyNTM1IDAgUiAyNTM2IDAgUiAyNTM3IDAgUiAyNTM4IDAgUiAKLTI1MzkgMCBSIDI1NDAgMCBSIDI1NDEgMCBSIDI1NDIgMCBSIDI1NDMgMCBSIDI1NDQgMCBSIDI1NDUgMCBSIDI1NDYgMCBSIAotMjU0NyAwIFIgMjU0OCAwIFIgMjU0OSAwIFIgMjU1MCAwIFIgMjU1MSAwIFIgMjU1MiAwIFIgMjU1MyAwIFIgMjU1NCAwIFIgCi0yNTU1IDAgUiAyNTU2IDAgUiAyNTU3IDAgUiAyNTU4IDAgUiAyNTU5IDAgUiAyNTYwIDAgUiAyNTYxIDAgUiAyNTYyIDAgUiAKLTI1NjMgMCBSIDI1NjQgMCBSIDI1NjUgMCBSIDI1NjYgMCBSIDI1NjcgMCBSIDI1NjggMCBSIDI1NjkgMCBSIDI1NzAgMCBSIAotMjU3MSAwIFIgMjU3MiAwIFIgMjU3MyAwIFIgMjU3NCAwIFIgMjU3NSAwIFIgMjU3NiAwIFIgMjU3NyAwIFIgMjU3OCAwIFIgCi0yNTc5IDAgUiAyNTgwIDAgUiAyNTgxIDAgUiAyNTgyIDAgUiAyNTgzIDAgUiAyNTg0IDAgUiBdIAotL0IgWyAyNTg1IDAgUiBdIAotPj4gCi1lbmRvYmoKLTI0ODcgMCBvYmoKLTw8IAotL0QgWyAyNDg2IDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjQ4OCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg4OTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc2IDU0MCA4OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ4OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY4MCAyOTcgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDkwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE1MDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjY2IDI5NyA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0OTEgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTUwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2NTIgMjk3IDY2NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ5MiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MzggMTUwIDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ5MyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg3NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNTAgNjM4IDI5NyA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0OTQgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQyOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MjQgMjk3IDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ5NSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDMwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYxMCAyOTcgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDk2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDI5NyA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI0OTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQyNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1ODIgMjk3IDU5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjQ5OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzc2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU1NCAyOTcgNTY2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNDk5IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODc2MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NDAgMjk3IDU1MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUwMCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjY5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUyNiAxODQgNTM4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTAxIDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE1OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxODQgNTI2IDI5NyA1MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MDIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTEyIDI5NyA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MDMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI2MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0OTggMjk3IDUxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUwNCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ4NCAyOTcgNDk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTA1IDAgb2JqCi08PCAKLS9EIFsgMjQ4NiAwIFIgL1hZWiBudWxsIDYyMCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjUwNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ0MSAxNzQgNDUzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTA3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MzggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTc0IDQ0MSAyOTcgNDUzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTA4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDI3IDI5NyA0MzkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MDkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDEzIDE4OSA0MjUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxODYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTg5IDQxMyAyOTcgNDI1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTExIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzQzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM5OSAyOTcgNDExIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTEyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzg1IDI5NyAzOTcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNzEgMjk3IDM4MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUxNCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNTcgMTc3IDM2OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUxNSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNzcgMzU3IDI5NyAzNjkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxOTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzQzIDI5NyAzNTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzI5IDI5NyAzNDEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ2OTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzE1IDI5NyAzMjcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MTkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTUwNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMDEgMjk3IDMxMyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUyMCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyODcgMTc4IDI5OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUyMSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIxNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNzggMjg3IDI5NyAyOTkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MjIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMzMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNzMgMTYyIDI4NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUyMyAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxOTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTYyIDI3MyAyOTcgMjg1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTI0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjAwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI1OSAyOTcgMjcxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTI1IDAgb2JqCi08PCAKLS9EIFsgMjQ4NiAwIFIgL1hZWiBudWxsIDM5NSBudWxsIF0gCi0+PiAKLWVuZG9iagotMjUyNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIxNiAxMzcgMjI4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTI3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTM3IDIxNiAyOTcgMjI4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTI4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTg4IDI5NyAyMDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MjkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTc0IDE0MSAxODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQxIDE3NCAyOTcgMTg2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTMxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTYwIDI5NyAxNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDYgMjk3IDE1OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUzMyAwIG9iagotPDwgCi0vRCBbIDI0ODYgMCBSIC9YWVogbnVsbCAyODIgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI1MzQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTAzIDI5NyAxMTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3NSAyOTcgODcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzA4IDU0MCA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1MzggMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzU4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMzMyA2ODAgNDA5IDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjUzOSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQwOSA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU0MCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjk4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NjYgNTQwIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU0MSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MzggNTQwIDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU0MiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg0MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjI0IDM2NCA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NDMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzY0IDYyNCA1NDAgNjM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTQ0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODgyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MTAgNTQwIDYyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU0NSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NDYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU4MiA1NDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTQ3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NjggNTQwIDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU0OCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg2NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NDkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU0MCA1NDAgNTUyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTUwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODY5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1MjYgNTQwIDUzOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU1MSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTEyIDU0MCA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NTIgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0OTggNTQwIDUxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU1MyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDg0IDU0MCA0OTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NTQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ3MCA1NDAgNDgyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTU1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODgwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NTYgNTQwIDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU1NiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDQyIDU0MCA0NTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NTcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NjUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDQyOCA0NzUgNDQwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTU4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODY2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ3NSA0MjggNTQwIDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU1OSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg0NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDE0IDU0MCA0MjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NjAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQwMCA1NDAgNDEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTYxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTAuMS45OTg0ODQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDM4NiA1NDAgMzk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTYyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU2MyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzU4IDU0MCAzNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NjQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDM0NCA1NDAgMzU2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTY1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODQ0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMzAgNTQwIDM0MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU2NiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjkwMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzE2IDU0MCAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NjcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQzNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzAyIDU0MCAzMTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NjggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4ODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI4OCA1NDAgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTY5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODY4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNzQgNTQwIDI4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU3MCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjkwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjYwIDU0MCAyNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NzEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDI0NiA0NTQgMjU4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTcyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODc1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ1NCAyNDYgNTQwIDI1OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU3MyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjMyIDU0MCAyNDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NzQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI5MDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIxOCA1NDAgMjMwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTc1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODg1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMDQgNTQwIDIxNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU3NiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg2MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTkwIDU0MCAyMDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1NzcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4OTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE3NiA1NDAgMTg4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTc4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODU2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNjIgNTQwIDE3NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU3OSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg1NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTQ4IDU0MCAxNjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1ODAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEzNCA1NDAgMTQ2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTgxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODk0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMjAgNTQwIDEzMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU4MiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg2MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTA2IDU0MCAxMTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1ODMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDkyIDU0MCAxMDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1ODQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4OTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc4IDU0MCA5MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU4NSAwIG9iagotPDwgCi0vUCAyNDg2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjQ4MyAwIFIgCi0vTiAyNzAxIDAgUiAKLT4+IAotZW5kb2JqCi0yNTg2IDAgb2JqCi08PCAvTGVuZ3RoIDIxNjAgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCxpKGpOOzVrKy8KLTQ9MWdRKTMiZ0hHXjMyYy1sRUh1J3FmNklCSmtiVCJmJCdyQyxvbXBRKURZWThcRWpiKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdRyluI2Q/OjYqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwS2BaVTxPQGlGMEtZU3BIJgotNWlBQ1M5bVc/R0xyKEBgPUozWWI8MCVAcVZAdVAyXDByczo2akAvI1xBaVgpUyNyI1ozNEEqLCljSCwrTVF0VFcKLUFoXVVyVSZ1LDlmT1gtNHFnLzg4I0snSy9vKGZydExrQjZIImcpOyJuMnM/Jz4zMWBSLikpRT0iL3NqNSI5V28sCi1sbj8wVmVAI144O3Q7V1kwTmNMJl87UENQMz1JLG9RTz5CWzMjYDonVTFmLS4kJWBHOUtFYFR1XC9DI2VLNlNCUgotJkM9NiNOMigoKVQqLDY9X0UmKVpZXE8hR1k1QFlXTGEqa2czS0BUb2pRWDdZXTxbXihuYGpqPCUmNCpNI2BaYDAKLW8tSFgzaW9NT1FaIyMlOWIzbCUsJDRZR0VRUERyT3IuP0xuaigtImFOY0pbXXFiPGJQXmNEdCNQNVsxMGowNkJZCi0lXjAnUjFxby9gbkszYk4sVE9daTZdZy5cYC5NYVdwbjdfcV1HKExERCkyRFtEaC1uKGI8clZlKSRdRkVDSyIiQAotb0ZGc0pkTzxSR2VoOi03KihROjpDTCxDaGxtNFxJPFBqa1xNNk0nKjMqMzdyZCU6YiY2YGZzOFE/Ji0qWz5qX3EKLSlDZTpDYVBwRXRZWnIsPW1SV2tWMmY3aUtMOkBTU04vQWdxVT5DcC1UZFxcTU5PPFZRPT9AN1o1VCw8WChoaCJDCi1fKkZRQSUmOTNKb1kiYFFyJWVlNzk8T1A3RzRiPkBodFJbLU1GJyJkWkBsPj1CUT10aXBbakomaTcydVdRcmxZaQotQG9KNjpNcDN1OkEiX21EXShBYEIkWT5IImVIKmVYMzJeTHEwIzY2dWtgaG00NjttWCNrVytUMyNpUEMwSztkKVgKLVl0R0xEKi83UWJFPkpwai5NKlNTRjtDISpNQCZlKXJyYEFKNFdiIjVhUVBISVtmQ0VJOmlJXjUyXCM5SzVtVGt1Ci0vNUhaNFxIKEpGTidnVlBQMWMtPEYtVGs5SSFkOktVMHNCJCVJUyNWLnUlak81VEYiXjRZNixcSy0nMHE6P3BKawotRSUtXD5AcmFPbF4kcnVGTWxrWSUzP2luMWcicCNCbEE3SzZZW25nM0pPIUJ0bnNNUVRfOkZsMlQ/LVNEWWdQOmQKLWciZV9jZTI4Oz5bcmxJR0woRlwrb2crKzxTLD83Xmw/ajhiLWdQOF1PM2JpaWBsOGkiOixmOHJNdDJvMyJySy5PCi08V2AidGovR3FZOyI5OFFYcD4oNzondERUJjNiJkZfXT1ySj5ZYVA9WSZaKDVKXHBfWVVzcGVUMU8vOl1xVzBcMwotbSJbXCxObDhnUENJRykmQVs2QSJXUFg0QC1fXFpRNWYxZVhPKWJlSiNvT3VuNWs8TEo9Pkc8RCtXUSpsQTNuJjIKLVhwM3IsblVyW3FjWDpmcTBpOUtnW2UyNmJQMC5tJzBsXT0vXnNdMUAuVSxsVTtARmJWSGtoU29CYWMvQTU9UlI0Ci0oUVRPci1nL0pqXkYuNTRfLHFnUFdbLjZcQi8zW3M8J0d0cGFnc0NOcDooLiFJOyd0Vy4mQV1vZSkyJ2A3I0BKKwotWmhCIU9jJTlqZUIqcTI2ZT1zY0gtcyYrSUVAVzE0RXBSOlhQYG5DZTFTMSFjQjtMMyojWjkqQ1ZEVlp0TT1dTHAKLUQ6VUhlaS5pRVUiME4lXTs1J0JNOkdMbzwoKEh0UTFrcyJWS2s1WVg+NEJMLyMlWGVAKjkzVzQlWjQsRmsxW14+Ci0qN2dPMlhyR1o6aF9hSnFVXldzVUoxWDNEM1NgIj5NVVREI2FhaWZmOUxxb3ElQjZzNXBvXyciY29JSyJrZUFWagotak85UUtMZjhpJidgbkMhb0ZhZjolU2IwYjhbKUg9Uk9uNzwhPixpcydyPT9uM3UrSGNtUFB0dGc3Q1ZVIiQ1RCsKLTB0c21NQFY7NSg9LzdlbThHQCMkX0I9LDcvODNaZGFkWUk/TGFXUCZpOlQ+OnJZY251QT1vdGkqTkZGUDtlJEs9Ci1UalhOPCMvSyo9ak01X1YwNlVtU1xGdFZUUCQzYiskK2xDJ15tcyg7Rz03InVYY3JSOldQVWYpJHJANyMjOlNbUwotLT5jcm4kJiMkIyk2NldiM0VCPlZxLyZaJl8rODw4TUheaVFwIV0+K1k/NShlSF9IWltVZGNtU1csWzNlJlZjVT0KLV0vOGB0NyJsJyMqNyRFYSlBNjxvN25VXyVFKV9PYU1wW0Q8WklASkYsQGtiUk4sa2cmWzJPM2RwR1U8clUoTV9cCi1Da09pTDopZWc2RzclYl1RbGo1Qj4kUzIsQEMoWzZlZ1xcKmsmVXVYbVJaWjsmRlhdSXBoMSpbX1dJU102am1GVgotMTorL1JDZzpYRUg+ZiVtXjstSlNMO1dYJkpUN1Z1K2MtZzosZ1U1VWtXK203TGFaOl83TDFKcD0vb3REXDVwKyoKLSVQVyIiVGg6aCgyNTVqImtlJ0JSUCUjM2NgJzVxVmhBIShgZURXbUctM0hkRX4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMjU4NyAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxMSA2MSAwIFIgL0YxMyAyMjc3IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjU4OCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjcwNCAwIFIgCi0vUmVzb3VyY2VzIDI3MDMgMCBSIAotL0NvbnRlbnRzIDI3MDIgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDI1OTAgMCBSIDI1OTEgMCBSIDI1OTIgMCBSIDI1OTMgMCBSIDI1OTQgMCBSIDI1OTUgMCBSIDI1OTYgMCBSIDI1OTcgMCBSIAotMjU5OCAwIFIgMjU5OSAwIFIgMjYwMCAwIFIgMjYwMSAwIFIgMjYwMiAwIFIgMjYwMyAwIFIgMjYwNCAwIFIgMjYwNSAwIFIgCi0yNjA2IDAgUiAyNjA3IDAgUiAyNjA4IDAgUiAyNjA5IDAgUiAyNjEwIDAgUiAyNjExIDAgUiAyNjEyIDAgUiAyNjEzIDAgUiAKLTI2MTQgMCBSIDI2MTUgMCBSIDI2MTYgMCBSIDI2MTcgMCBSIDI2MTggMCBSIDI2MTkgMCBSIDI2MjAgMCBSIDI2MjEgMCBSIAotMjYyMiAwIFIgMjYyMyAwIFIgMjYyNCAwIFIgMjYyNSAwIFIgMjYyNiAwIFIgMjYyNyAwIFIgMjYyOCAwIFIgMjYyOSAwIFIgCi0yNjMwIDAgUiAyNjMxIDAgUiAyNjMyIDAgUiAyNjMzIDAgUiAyNjM0IDAgUiAyNjM1IDAgUiAyNjM2IDAgUiAyNjM3IDAgUiAKLTI2MzggMCBSIDI2MzkgMCBSIDI2NDAgMCBSIDI2NDEgMCBSIDI2NDIgMCBSIDI2NDMgMCBSIDI2NDQgMCBSIDI2NDUgMCBSIAotMjY0NiAwIFIgMjY0NyAwIFIgMjY0OCAwIFIgMjY0OSAwIFIgMjY1MCAwIFIgMjY1MSAwIFIgMjY1MiAwIFIgMjY1MyAwIFIgCi0yNjU0IDAgUiAyNjU1IDAgUiAyNjU2IDAgUiAyNjU3IDAgUiAyNjU4IDAgUiAyNjU5IDAgUiAyNjYwIDAgUiAyNjYxIDAgUiAKLTI2NjIgMCBSIDI2NjMgMCBSIDI2NjQgMCBSIDI2NjUgMCBSIDI2NjYgMCBSIDI2NjcgMCBSIDI2NjggMCBSIDI2NjkgMCBSIAotMjY3MCAwIFIgMjY3MSAwIFIgMjY3MiAwIFIgMjY3MyAwIFIgMjY3NCAwIFIgMjY3NSAwIFIgMjY3NiAwIFIgMjY3NyAwIFIgCi0yNjc4IDAgUiAyNjc5IDAgUiAyNjgwIDAgUiAyNjgxIDAgUiAyNjgyIDAgUiAyNjgzIDAgUiAyNjg0IDAgUiAyNjg1IDAgUiAKLTI2ODYgMCBSIDI2ODcgMCBSIDI2ODggMCBSIDI2ODkgMCBSIDI2OTAgMCBSIDI2OTEgMCBSIDI2OTIgMCBSIDI2OTMgMCBSIAotMjY5NCAwIFIgMjY5NSAwIFIgMjY5NiAwIFIgMjY5NyAwIFIgMjY5OCAwIFIgMjY5OSAwIFIgMjcwMCAwIFIgXSAKLS9CIFsgMjcwMSAwIFIgXSAKLT4+IAotZW5kb2JqCi0yNTg5IDAgb2JqCi08PCAKLS9EIFsgMjU4OCAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI1OTAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4OTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc4IDU0MCA5MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU5MSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg2MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3MDggMjk3IDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU5MiAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg5NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2OTQgMjk3IDcwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU5MyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg4MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2ODAgMjk3IDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU5NCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgNjY2IDE4NiA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1OTUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxODYgNjY2IDIwNCA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1OTYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMjA0IDY2NiAyMjggNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNTk3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODk2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDIyOCA2NjYgMjUyIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjU5OCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg5NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAyNTIgNjY2IDI5NyA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI1OTkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI5MDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjUyIDI5NyA2NjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MDAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjM4IDI5NyA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MDEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4OTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjI0IDI5NyA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MDIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgNjEwIDE2MCA2MjIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MDMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NjcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTYwIDYxMCAyOTcgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODg0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU5NiAyOTcgNjA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU4MiAyOTcgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODg2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU2OCAyOTcgNTgwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU1NCAyOTcgNTY2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDU0MCAyOTcgNTUyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjA5IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTE5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MjYgMjk3IDUzOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxMCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg3NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCA1MTIgMTY3IDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxMSAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg3OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNjcgNTEyIDI5NyA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MTIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDk4IDI5NyA1MTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MTMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NzMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDg0IDI5NyA0OTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MTQgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI0OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NzAgMjk3IDQ4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxNSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjQ2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ1NiAxNTUgNDY4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjE2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODQzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE1NSA0NTYgMjk3IDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxNyAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg0OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NDIgMjk3IDQ1NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxOCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0MjggMjk3IDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYxOSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQxNCAxMzIgNDI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjIwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTMyIDQxNCAyOTcgNDI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjIxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDAwIDI5NyA0MTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MjIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMzNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzODYgMjk3IDM5OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYyMyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM3MiAyOTcgMzg0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjI0IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzU4IDI5NyAzNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MjUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMzMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNDQgMjk3IDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYyNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzM5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMzMCAyOTcgMzQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjI3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMzQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzE2IDI5NyAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MjggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMzMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMDIgMjk3IDMxNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYyOSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzY0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI4OCAyOTcgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjMwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTk5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI3NCAyOTcgMjg2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjMxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMzAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjYwIDI5NyAyNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MzIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNDYgMjk3IDI1OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYzMyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzY0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIzMiAyOTcgMjQ0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjM0IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyOTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjE4IDI5NyAyMzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ1MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMDQgMjk3IDIxNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYzNiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxOTAgMTY1IDIwMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYzNyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE4NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNjUgMTkwIDI5NyAyMDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2MzggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNzYgMjk3IDE4OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjYzOSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE2MiAyOTcgMTc0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzMxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEzNCAyOTcgMTQ2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzEyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEyMCAyOTcgMTMyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEwNiAyOTcgMTE4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzEzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDkyIDE1MCAxMDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NDQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTUwIDkyIDI5NyAxMDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NDUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNzggMjk3IDkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQ2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3MDggNTQwIDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY0NyAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NDggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDY4MCA0NTAgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjQ5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzQxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ1MCA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY1MCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjY2IDU0MCA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NTEgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzAzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NTIgNTQwIDY2NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY1MiAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcwMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NTMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYyNCA1NDAgNjM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjU0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzI3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MTAgNTQwIDYyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY1NSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDc0OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NTYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ2ODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU4MiA1NDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjU3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NjkyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NjggNTQwIDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY1OCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcyMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NTkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMC4xLjk5ODQ4MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTQwIDU0MCA1NTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NjAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MzcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDUyNiA1NDAgNTM4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjYxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1MTIgNTQwIDUyNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY2MiAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDczMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDk4IDU0MCA1MTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NjMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ2OTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ4NCA1NDAgNDk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjY0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzE3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NzAgNTQwIDQ4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY2NSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDU2IDU0MCA0NjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NjYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MDggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ0MiA1NDAgNDU0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjY3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0Njg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MjggNTQwIDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY2OCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcxMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgNDE0IDQ3MSA0MjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NjkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDcxIDQxNCA1NDAgNDI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjcwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzE5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMzMyA0MDAgNDI2IDQxMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY3MSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcyMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0MjYgNDAwIDU0MCA0MTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NzIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDM4NiA1NDAgMzk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjczIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NjkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY3NCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDc1MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzU4IDU0MCAzNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NzUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MzIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDM0NCA1NDAgMzU2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjc2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzM1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMzAgNTQwIDM0MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY3NyAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzE2IDU0MCAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2NzggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMwMiA1NDAgMzE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjc5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NjkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyODggNTQwIDMwMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY4MCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjc0IDU0MCAyODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2ODEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI2MCA1NDAgMjcyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjgyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNDYgNTQwIDI1OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY4MyAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDc0OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjMyIDU0MCAyNDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2ODQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MzAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIxOCA1NDAgMjMwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjg1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMDQgNTQwIDIxNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY4NiAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcwMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgMTkwIDM5OSAyMDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2ODcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzk5IDE5MCA1NDAgMjAyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjg4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzE1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNzYgNTQwIDE4OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY4OSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTYyIDU0MCAxNzQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2OTAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE0OCA1NDAgMTYwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjkxIDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgMTM0IDQzMCAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2OTIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0MzAgMTM0IDQ0OSAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2OTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ0MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0NDkgMTM0IDQ2NyAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2OTQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDY3IDEzNCA0OTEgMTQ2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjk1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzA2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQ5MSAxMzQgNTE2IDE0NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY5NiAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDc0NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA1MTYgMTM0IDU0MCAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI2OTcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3NDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEyMCA1NDAgMTMyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNjk4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzUwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMDYgNTQwIDExOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjY5OSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcwOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgOTIgNTQwIDEwNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjcwMCAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDczOCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzggNTQwIDkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzAxIDAgb2JqCi08PCAKLS9QIDI1ODggMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyNTg1IDAgUiAKLS9OIDI4MDkgMCBSIAotPj4gCi1lbmRvYmoKLTI3MDIgMCBvYmoKLTw8IC9MZW5ndGggMjEyNCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kLGkoak47NWsrLwotND0xZ1EpMyJnSEdeMzJjLWxFSHUyNSJXaUJKa2JUImYkJ3JDLG9tcFEpRFlZOFxFamIoQ1dgYSFibT5LQGwrR3EKLTZZbVVYRV1HKW4jZD86NiojZlk+PC9qa3BdSFNDayYvTkhuby0/LlhCYjFBOV9gNTBLYFpVPE9AaUYwS1lTcEgmCi01aUFDUzltVz9HTHIoQFJSIW1DNjwwJUBuN1QyLz1iJi9yJUFTNU0/XDNQIWxSU0NncWZSazheTFBwJkYmW2E3XQotYXRmTHRWXnFTcV9KRDoqXDNsMF86ZlRDN3FSckdwMy5UNDZcY1xdJ15UYlU4bDhIMzVVL2krYzYoQDA6VlNiWzkKLTEoRVU2YFxuNU1SWDE3JC8vVyU8WihaXGdgZUhkcFwvQyNlSjc+YiFsKTpLZDZCKDcxITVOUFk7JjYlSFRZZ2Q9Ci1AMCJzSSU8KDo+KUZqanJrVykxJClaMlpNRSNcYFUkdWNqWCJnTikhTl1QPDk+TkVpQytiWGVwTmwoWD4hPW0hKQotOmJEbyxIdF44UzYrIkJcYltZYjwxWC5ZRVVGLz9rRWZMQDxkO1xGdE07aGRiMWVnb11mZls/XnBvUWotWkBvJGcKLWQxYj0zUmghO1goSFBDIkkrb1ZKSz8ydCtOTT9kOyYuRz5MX0RbRFZAKjAjYydATiI3ZSRUJz8zKGVhVDpEQ1grCi1WJ1FCU21hUF4yTEVXVSYtT1BuJ0NFKl1BUHNkVCY2NihBME4paW8+cSk9VSVwQDEkNl9vVkYjaUdDYj0lPXQwOwotMmlcVSVYJ01VMm5wRT48cEVlJic0NCYscydPMFUvNkw9cyQ3IjhtU19vcXM3ZVBbQixEYSI3Yls7ayEuXmkxOjYKLSFlW2ZHXTprVSU+RDxGO2ZYZGFMZSZuWWVVQysuODBcMChrUS9ZWlw0PkwoIlMubE5GXCFWbWJLamIoTGspTjJgCi1VNlVJdUZTUTIvbkI8aFcjI1cxKy5aJmFoPUxJIXBQUTI3WzplJGpLPEdYcUMwdXRTXHFqLGUlSj5QJ0MoZiUxVAotQSdjcEgxWSRjTGlMNltJZ2lrLF0pO0pMQmFCTFJNIlJVOEJnSV5Lb1BkKCpNOzgpKkE2S2dqajooPy5eYDFbV20KLVROZCYvUllGRDBDRlE0SF9NSF1gQ1ItXzdTLHBoJWIhaVJvXVFpMldMSEE4akojNzFrWzMjbSI0R1pmXkF1WnV0Ci1tMHBOamp1ZVd1JkRmO2tAQkAuZmdZJmNCNENKck5AdGgxXWNAXkU5IiJxa1hrMlZpYzNBRmZTKWY1LilpYkg/cgotSzdAIjNGNmYxIU5jakMna1ZPc0ZeVGJORzkvcU1YcUQmZ1EwXTFYMXBGUzk8ITYiO1sraGN0JlQ2cCpEbictdVYKLUo3dSpZIStaTHAjbTw+UUkmOi9ZMGE9YEQ4VkBaOWFIMFc/MHFkKFldJjg4JCopZClBVmFaOTgxKFxfKEBPVkpyCi1hRmg9SD8/dDROMGtbRyFDJy4hZjlBJV9JIlZBVykjNFRcUzxEa2AkYiJOdE1uQ1NTMSRXTV1oUkpxaF4uLlEpRgotRE1NWjY8JW5PQT9mJCQ6PEMrJjosQ2tPYSgxS0xEbEJQO0pQdVw7ayw7KVQla2o+JUtlSkZ1Ykg6ZmhiImJWV1oKLWxfPTVyLWNjVXRSIkdlUSFEazZoIThaUERpLnVLPF1RODJgKl1xPWBMYFNwKFZbWSdIMlQrYS9bL2xkMzY0YD43Ci1ZRWJdbyItV1ksQ110UXFVMXQ5LWAkQThQOD85YFRxS1hBQC4kWUZFYkNiVipLRTxxMEMrMV9dVlQyWz42K1lXaQotZGNIIk1MSiVSU1UsV0ZwWVcnIyFeRzFjJCtBI0dvVDs6XyQnKjViKjtKb0psTD9SRzpAWlk1NiRnaFhda1RyLUsKLUo0SCNpKz5zOSdnbF9hSj4pJ0E3OFZEJlkmNC5OayVnUixuLVwsbmwkKWdCJ1cobVQ/M0FFNF5QbGFIak8+ciJ0Ci1ZLE4ta1cwRSJNLVxHTSMnUzhyTkArIldVK2VmTVdAV0VrYzVoXk4tJDhXUV02LytxLjc1P0AiJkdiO1dGYyVZRAotUEomc05JcTVXRkxhNClcYkFzVSVLMF9bMTBzS2wnTS84MVpaLnMvVjtKRHJLWCJVIU1mVXI1Oy0zZmM5MW85OzAKLTBDckxnODMzVV02Nz5iPkZAKEVtYD1HMlxeZUwhOSMiWURDbFVCPG9DOFhcLFtcUD9GPiYuQzdCTXAjLVh0W2Q0Ci1SW1lnUG9IP2Y1Mk11WTBIX3U+Q2JtNElLcydTbkZHN0RPWDFeOTQ3bmB0YzwkNFFfUiM7bmdlLVlyb09BNiJBSgotaTY6aUQkLiwjXlc6aV9iSS1eLGxyJTFBcClwOSVkKiI0VUlQTnRhclhbP1daJVU0XXImMXQqIkZdSzF1MVskTGAKLSonI291ZGZccEo4TmVIJjJeQmxfYTkuUzBWKUFcLy9xQD07SlY1cCk3KnU6NjFiMURdbFRbYjBLJV0ickUrO2BCCi06RyhdYyohN045PjdHKydJI2Y8Tyg+SkVUYkpAYyZMcWBJKi5cZydVQGZtM1NfWGpxcHJEXzMkLVNXYzxgaUNDUwotQl1xYUchTWZofj4KLWVuZHN0cmVhbQotZW5kb2JqCi0yNzAzIDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjExIDYxIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMjcwNCAwIG9iagotPDwgCi0vVHlwZSAvUGFnZXMgCi0vS2lkcyBbIDI1ODggMCBSIDI3MDUgMCBSIDI4MTIgMCBSIDI5MjIgMCBSIDMwMjYgMCBSIF0gCi0vQ291bnQgNSAKLS9QYXJlbnQgMTk3NSAwIFIgCi0+PiAKLWVuZG9iagotMjcwNSAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjcwNCAwIFIgCi0vUmVzb3VyY2VzIDI4MTEgMCBSIAotL0NvbnRlbnRzIDI4MTAgMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDI3MDcgMCBSIDI3MDggMCBSIDI3MDkgMCBSIDI3MTAgMCBSIDI3MTEgMCBSIDI3MTIgMCBSIDI3MTMgMCBSIDI3MTQgMCBSIAotMjcxNSAwIFIgMjcxNiAwIFIgMjcxNyAwIFIgMjcxOCAwIFIgMjcxOSAwIFIgMjcyMCAwIFIgMjcyMSAwIFIgMjcyNCAwIFIgCi0yNzI1IDAgUiAyNzI2IDAgUiAyNzI3IDAgUiAyNzI4IDAgUiAyNzI5IDAgUiAyNzMwIDAgUiAyNzMxIDAgUiAyNzMyIDAgUiAKLTI3MzMgMCBSIDI3MzQgMCBSIDI3MzYgMCBSIDI3MzcgMCBSIDI3MzggMCBSIDI3MzkgMCBSIDI3NDAgMCBSIDI3NDEgMCBSIAotMjc0MiAwIFIgMjc0MyAwIFIgMjc0NCAwIFIgMjc0NSAwIFIgMjc0NiAwIFIgMjc0NyAwIFIgMjc0OCAwIFIgMjc0OSAwIFIgCi0yNzUwIDAgUiAyNzUxIDAgUiAyNzUyIDAgUiAyNzUzIDAgUiAyNzU0IDAgUiAyNzU1IDAgUiAyNzU2IDAgUiAyNzU3IDAgUiAKLTI3NTggMCBSIDI3NTkgMCBSIDI3NjAgMCBSIDI3NjEgMCBSIDI3NjIgMCBSIDI3NjMgMCBSIDI3NjQgMCBSIDI3NjUgMCBSIAotMjc2NiAwIFIgMjc2NyAwIFIgMjc2OCAwIFIgMjc2OSAwIFIgMjc3MCAwIFIgMjc3MSAwIFIgMjc3MiAwIFIgMjc3MyAwIFIgCi0yNzc0IDAgUiAyNzc1IDAgUiAyNzc2IDAgUiAyNzc3IDAgUiAyNzc4IDAgUiAyNzc5IDAgUiAyNzgwIDAgUiAyNzgxIDAgUiAKLTI3ODIgMCBSIDI3ODMgMCBSIDI3ODQgMCBSIDI3ODUgMCBSIDI3ODYgMCBSIDI3ODcgMCBSIDI3ODggMCBSIDI3ODkgMCBSIAotMjc5MCAwIFIgMjc5MSAwIFIgMjc5MiAwIFIgMjc5MyAwIFIgMjc5NCAwIFIgMjc5NSAwIFIgMjc5NiAwIFIgMjc5NyAwIFIgCi0yNzk4IDAgUiAyNzk5IDAgUiAyODAwIDAgUiAyODAxIDAgUiAyODAyIDAgUiAyODAzIDAgUiAyODA0IDAgUiAyODA1IDAgUiAKLTI4MDYgMCBSIDI4MDcgMCBSIDI4MDggMCBSIF0gCi0vQiBbIDI4MDkgMCBSIF0gCi0+PiAKLWVuZG9iagotMjcwNiAwIG9iagotPDwgCi0vRCBbIDI3MDUgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNzA3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzM4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3OCA1NDAgOTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MDggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ2OTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgNzA4IDE4MSA3MjAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MDkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MjIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTgxIDcwOCAyOTcgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzEwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzM0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY5NCAyOTcgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzExIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzAzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY4MCAyOTcgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzEyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY2NiAyOTcgNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzEzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NzM2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY1MiAyOTcgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzE0IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTE5NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2MzggMjk3IDY1MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjcxNSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcyNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCA2MjQgMTY3IDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjcxNiAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDcyNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNjcgNjI0IDI5NyA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MTcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MjEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjEwIDI5NyA2MjIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MTggMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ3MDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDI5NyA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MTkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMi4xLjEwMDQ2OTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTgyIDI5NyA1OTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MjAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI0NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NjggMTY0IDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjcyMSAwIG9iagotPDwgCi0vRGVzdCAvSTEyLjEuMTAwNDY4NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNjQgNTY4IDI5NyA1ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MjIgMCBvYmoKLTw8IAotL0QgWyAyNzA1IDAgUiAvWFlaIG51bGwgNzA0IG51bGwgXSAKLT4+IAotZW5kb2JqCi0yNzIzIDAgb2JqCi08PCAKLS9EIFsgMjcwNSAwIFIgL1hZWiBudWxsIDcwNCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjcyNCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTI1IDI5NyA1MzcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MjUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM4MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MTEgMjk3IDUyMyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjcyNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDU0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ5NyAxOTAgNTA5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzI3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTkwIDQ5NyAyOTcgNTA5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzI4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDgzIDE5MyA0OTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MjkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ1NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxOTMgNDgzIDI5NyA0OTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MzAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM4MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NjkgMjk3IDQ4MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjczMSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDM3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ1NSAyOTcgNDY3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzMyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDQxIDI5NyA0NTMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MzMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0MjcgMjk3IDQzOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjczNCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIzMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzOTkgMjk3IDQxMSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjczNSAwIG9iagotPDwgCi0vRCBbIDI3MDUgMCBSIC9YWVogbnVsbCA1MzUgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI3MzYgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM0MiAyOTcgMzU0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzM3IDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ3OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMjggMjk3IDM0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjczOCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0ODEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzE0IDI5NyAzMjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3MzkgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDk0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMwMCAyOTcgMzEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzQwIDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ4NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyODYgMjk3IDI5OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc0MSAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0ODIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjcyIDI5NyAyODQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NDIgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDk3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDI1OCAyOTcgMjcwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzQzIDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ4MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNDQgMjk3IDI1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc0NCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0ODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjMwIDI5NyAyNDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NDUgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIxNiAyOTcgMjI4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzQ2IDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc4MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMDIgMjk3IDIxNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc0NyAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0OTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTc0IDI5NyAxODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NDggMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NTAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDE2MCAxMzkgMTcyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzQ5IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTM5IDE2MCAxNTcgMTcyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzUwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTEuMS4xMDAyODcyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE1NyAxNjAgMjk3IDE3MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc1MSAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgMTQ2IDE0NSAxNTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NTIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNDUgMTQ2IDE2MyAxNTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ0MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxNjMgMTQ2IDI5NyAxNTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NTQgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NTAzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDEzMiAxMjcgMTQ0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzU1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDEyNyAxMzIgMjk3IDE0NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc1NiAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTE4IDI5NyAxMzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxMDQgMjk3IDExNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc1OCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzEwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDkwIDI5NyAxMDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NTkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMwNiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA3NiAyOTcgODggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjAgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3MDggNTQwIDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc2MSAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY5NCA1NDAgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzYyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTc4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc2MyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NjYgNTQwIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc2NCAwIG9iagotPDwgCi0vRGVzdCAvSTExLjEuMTAwMjg0NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjUyIDU0MCA2NjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM0MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMxMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjI0IDU0MCA2MzYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTMyMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjEwIDU0MCA2MjIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDM4NSA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NjkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzODUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTgyIDU0MCA1OTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzEgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTY4IDU0MCA1ODAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzIgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM3MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTQwIDU0MCA1NTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzQgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTI2IDU0MCA1MzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzUgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTEyIDU0MCA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzYgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgNDk4IDM5NyA1MTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzOTcgNDk4IDU0MCA1MTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwNCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDg0IDU0MCA0OTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3NzkgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQwOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDcwIDU0MCA0ODIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3ODAgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQxMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDU2IDU0MCA0NjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3ODEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMDIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ0MiA1NDAgNDU0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzgyIDAgb2JqCi08PCAKLS9EZXN0IC9JOC4xLjk5OTc4NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDI4IDU0MCA0NDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3ODMgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5NzgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MTQgNTQwIDQyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc4NCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3ODIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQwMCA1NDAgNDEyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzg1IDAgb2JqCi08PCAKLS9EZXN0IC9JMy4xLjk5ODI5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzcyIDU0MCAzODQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3ODYgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4OTAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNTggNTQwIDM3MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc4NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjg0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNDQgNTQwIDM1NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc4OCAwIG9iagotPDwgCi0vRGVzdCAvSTMuMS45OTgyOTAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMzMCA1NDAgMzQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzg5IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODg5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzE2IDU0MCAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3OTAgMCBvYmoKLTw8IAotL0Rlc3QgL0kzLjEuOTk4MjkxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzMDIgNTQwIDMxNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc5MSAwIG9iagotPDwgCi0vRGVzdCAvSTMuMS45OTgyOTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI4OCA1NDAgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzkyIDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODY5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjc0IDU0MCAyODYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3OTMgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzU3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNjAgNTQwIDI3MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc5NCAwIG9iagotPDwgCi0vRGVzdCAvSTMuMS45OTgyODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI0NiA1NDAgMjU4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzk1IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODg5OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjMyIDU0MCAyNDQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI3OTYgMCBvYmoKLTw8IAotL0Rlc3QgL0k0LjEuOTk4NzAwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMTggNDA5IDIzMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc5NyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjY2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQwOSAyMTggNTQwIDIzMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjc5OCAwIG9iagotPDwgCi0vRGVzdCAvSTcuMS45OTgxNjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIwNCA0MDYgMjE2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yNzk5IDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE2NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0MDYgMjA0IDU0MCAyMTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MDAgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTczIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxOTAgNTQwIDIwMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgwMSAwIG9iagotPDwgCi0vRGVzdCAvSTcuMS45OTgxNjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE3NiA1NDAgMTg4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODAyIDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTYyIDU0MCAxNzQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MDMgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTY5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNDggNTQwIDE2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgwNCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDQ4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMzQgNTQwIDE0NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgwNSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI2OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTIwIDU0MCAxMzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MDYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEwNiA1NDAgMTE4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODA3IDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE3MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgOTIgNTQwIDEwNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgwOCAwIG9iagotPDwgCi0vRGVzdCAvSTcuMS45OTgxNzAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc4IDU0MCA5MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgwOSAwIG9iagotPDwgCi0vUCAyNzA1IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMjcwMSAwIFIgCi0vTiAyOTE5IDAgUiAKLT4+IAotZW5kb2JqCi0yODEwIDAgb2JqCi08PCAvTGVuZ3RoIDIwOTkgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSA+PiAKLXN0cmVhbQotCi1KLlJUZ2Q8UVJEKztmbkFMMSJdNT9tKDZCaVBHVyphc10oZE1oWjVdOzclOFExUDg0ZUpIMz9DO2k7Tz1AS0l1ZgotNTcwLWdiKGpxTFRWYmQ5T2kuRSVSP1plYCxGcU9VNlJcYi9DNFslUG47KCUhKiVpNCErW2VvJCxpKGpOOzVrKy8KLTQ9MWdRKTMiZ0hHXjMyYy1sRUh1PE00JDRCSmtiVCJmJCdyQyxvbXBRKURZWThcRWpiKENXYGEhYm0+S0BsK0dxCi02WW1VWEVdRyluI2Q/OjYqI2ZZPjwvamtwXUhTQ2smL05Ibm8tPy5YQmIxQTlfYDUwS2BaVTxPQGlGMEtZU3BIJgotNWlBQ1M5bVc/R0xyKEBSUiFtQzY8MCdiNkwoZzhWYFpSL1g5dWFvMFNlKl10NjNiPiNBMz0oPShsYk09TmAiISIKLSs+TWM2Zj1VR0piXVBpXXE3I1RqYCxGRytLMV5gcFdEKU05JV4xdVozPU4qaUJHZGs0ZzFpWVgiJWxUUiVJVD5BCi1ULTQ2TkIqPnUjNWM/YCgiKDk6RDRcb1BiJjNdSz9qdTVKdFw4KUwiVTdoJzolJjdMUTMhOT0zbjFdaitsb2xCbgotZDo+Kk5gXEV0SilbP0gmQWYxZGBaUWY9YDVzZmhmTk1FSClrL1UySGhELl0iLyUjYyxPTj1OQCUzbC50JWx0MmEKLVcmSGNSTGhJVnFfUmxVISVIRyQjKi86LzNTMTZTWV9WIj1ib0FkXlhYUG1qTjRNZC1zaERkcGk7bUk2cEVFaSJpCi1bPmpfcSlDZTpDLiNOWllXK20uUV82Xyg/VlA5NytoNydEISlXMykyTUNoTCtUb2E9bCJUXiU0MFhJTXNkZk1eIwotOUBhWFllOGdadU1GL2YvMSdBIVNmSz1maFspIklhYV4jaS08YFRwbTJkIyNCRC1UKi9oJj0sM3A0TmBcTnBlZVAKLUNLQklJRik7LGlqYUAibzJALytZNFNGLW1cdEpaZjU0U3RmPUI9J0QsODBcXSMqTjhBJSNBRCRfRSJIOkdoWGVTCi1QTEsrZT9FWFAjWmUtTHUjLz8qdDc/Zlw/WWtsNlpAXnMlcV9bUFMuKCxsX1VSYjwhPj1Icm4mTis2PzNxYyUjXgotKG9BaFQ8QFdaImtjZVk9MCF0NWlqR0o1YEgoNmhoaCxLOEVfNlY3WSR1XCE3bzgvKS5jb1IrMTNmQTowXFQ0UjkKLUxpVS1sX1ZQKD46LSohLmhIPjI6bCpkPENsPm8zVldwOUgpWzNUPTBsTjwiMSFJYVFmTldZQyIxWS0mTGc/T0NICi05WTdNbU5hPlBJWFlLPTxfXzdMQEFAOnI5NWJPX1hfZyg4XDR0dWJDIkVQY1NkOig8UjdMYiNnbiY+U0pOb1BKWwotWCg4aUxYSjA8MmEib0JdZW1wdS5cbzBRPi9wNiw8WT8/a3RKRTdELSghR2dbRXNiQVtRTEIwNjh0UGslck5DOUgKLTBfZk1LaDJoIyMzJkErKiVcRGNjanMwMFdpQlcyU042W08uQFdGVFcyRT5BPzNuJXNOQ2hSMmQ+YHNhTCNgXGVlCi0hc0hDVkYyXEtGYDVNZ0cjNFVMUGRxdC9SZGhsYFtSNnFVbjRPKV0pVXNTOSlfaW5hQkxHN2o5IXUxbEUjVWg/VwotUzJXYFQmN0xtMyxTI3AoPSFRcDEkV1xNdDNIMzRbKG9SRmA7RXVpPTZsZj0tZihhOUdARXBeZ1wyOWAmX0s4L3AKLThQbTZrZ1NMJzYlOGxCYzQzYCRAKzZcbC9oPyU9TmQxKmImWy9UcjE+O0BxVFolb2N0XDY3aF1iclAsQTJRdTswCi1NLWU6Uz5IVktQTEgnSmpQV0ZYKzAiTWI7ZSxGRVg3IklMb0pLcHJNci09Sm5PR0RwQTJhNS4jJlMlbTUuI1NXYQotIl0xUiIhPFgzK0VfM1l0VzZaOFVxPmsnSCZTRUBnTlhQcmBgJClGVCxENldKKHNqW1BGM2NRUypuYV9YUTVbMkwKLTs6N08hYVJbK2tBJlczKyZJOU8rcyEoZGk1bjZOM0E1I1JlLGlNRU1IIW1WIzhXblFKLUdpSm4uJidcNS1UbmA1Ci0kNW45XGBbM1ZrSWZDI09tdVBOa0YldS46M18/OEY1Y0BDZCg5JjovQFZPKSk7dStZV09xPTAxLzdzXyw/NV1WMQotW15rOGVaOlY2KTNlZiNkVTFlbzA9LSVyaUxINnFVVzNiOUFGQ2VgQGw4WE1pXE4sVlA7SCZtI0tIM2duIkA8WlEKLW8/VnFgJkRScCkiOjAsMzNTLUkmSy42KnFNQjAlTUgvY0FKSzkwSjtVYSQlLlRFa3Fiai9IYExfTTBsbSlyVVphCi1GIV9TWF1FPjZXQSs6NydlKiwpM0FWRFZeZU1bYG1hPjo1M2RoR2JSV2NDajJvOjZbLis1VjslOXFkZSs7biRVQwotZClwNVVsLD5aXDw6NUhSOWU7K1piV0NRQ1hFbiwuYjwjLFYvQSwuYTo0Y2tmSy1oSUg3Pi1WXyFOYXE6WydkK2kKLXE/OXNlZS9ESSNgRmMqPEQqJFI7YCEzSD4tQTshQjFzLV4hJHExSU9LJSROUC5kQzNFMS0mYltGO2lyKW5PLllHCi1jR1tPWVxrVztnSUtUWnBCZCQsT0xXSURvXGNJMSdML0AoSiY7cXFhXylzRmlcRj80dF1IKmdiRFhRP1BzIlVdRgotQTk+OnMtM1RFYDkqOS1WPG9zMVBYSl5CM2QvRDEwMkRXO1ZvOm9aMVxzXDZWOUVwUml+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTI4MTEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTEgNjEgMCBSIC9GMTMgMjI3NyAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTI4MTIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDI3MDQgMCBSIAotL1Jlc291cmNlcyAyOTIxIDAgUiAKLS9Db250ZW50cyAyOTIwIDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9Bbm5vdHMgWyAyODE0IDAgUiAyODE1IDAgUiAyODE2IDAgUiAyODE3IDAgUiAyODE5IDAgUiAyODIwIDAgUiAyODIxIDAgUiAyODIyIDAgUiAKLTI4MjMgMCBSIDI4MjQgMCBSIDI4MjUgMCBSIDI4MjYgMCBSIDI4MjcgMCBSIDI4MjggMCBSIDI4MjkgMCBSIDI4MzAgMCBSIAotMjgzMSAwIFIgMjgzMiAwIFIgMjgzMyAwIFIgMjgzNCAwIFIgMjgzNSAwIFIgMjgzNiAwIFIgMjgzNyAwIFIgMjgzOCAwIFIgCi0yODM5IDAgUiAyODQwIDAgUiAyODQxIDAgUiAyODQyIDAgUiAyODQzIDAgUiAyODQ0IDAgUiAyODQ1IDAgUiAyODQ2IDAgUiAKLTI4NDcgMCBSIDI4NDggMCBSIDI4NDkgMCBSIDI4NTAgMCBSIDI4NTEgMCBSIDI4NTIgMCBSIDI4NTMgMCBSIDI4NTQgMCBSIAotMjg1NSAwIFIgMjg1NiAwIFIgMjg1NyAwIFIgMjg1OCAwIFIgMjg1OSAwIFIgMjg2MCAwIFIgMjg2MSAwIFIgMjg2MiAwIFIgCi0yODYzIDAgUiAyODY0IDAgUiAyODY1IDAgUiAyODY2IDAgUiAyODY3IDAgUiAyODY4IDAgUiAyODY5IDAgUiAyODcwIDAgUiAKLTI4NzEgMCBSIDI4NzIgMCBSIDI4NzMgMCBSIDI4NzQgMCBSIDI4NzUgMCBSIDI4NzYgMCBSIDI4NzcgMCBSIDI4NzggMCBSIAotMjg3OSAwIFIgMjg4MCAwIFIgMjg4MSAwIFIgMjg4MiAwIFIgMjg4MyAwIFIgMjg4NCAwIFIgMjg4NSAwIFIgMjg4NiAwIFIgCi0yODg3IDAgUiAyODg4IDAgUiAyODg5IDAgUiAyODkwIDAgUiAyODkxIDAgUiAyODkyIDAgUiAyODkzIDAgUiAyODk0IDAgUiAKLTI4OTUgMCBSIDI4OTYgMCBSIDI4OTcgMCBSIDI4OTggMCBSIDI4OTkgMCBSIDI5MDAgMCBSIDI5MDEgMCBSIDI5MDIgMCBSIAotMjkwMyAwIFIgMjkwNCAwIFIgMjkwNSAwIFIgMjkwNiAwIFIgMjkwNyAwIFIgMjkwOCAwIFIgMjkwOSAwIFIgMjkxMCAwIFIgCi0yOTExIDAgUiAyOTEyIDAgUiAyOTEzIDAgUiAyOTE0IDAgUiAyOTE1IDAgUiAyOTE2IDAgUiAyOTE3IDAgUiAyOTE4IDAgUiAKLV0gCi0vQiBbIDI5MTkgMCBSIF0gCi0+PiAKLWVuZG9iagotMjgxMyAwIG9iagotPDwgCi0vRCBbIDI4MTIgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yODE0IDAgb2JqCi08PCAKLS9EZXN0IC9JNy4xLjk5ODE3MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzggNTQwIDkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODE1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjY3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY5NCAyOTcgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODE2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0NDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNjY2IDI5NyA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTQ1MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2NTIgMjk3IDY2NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgxOCAwIG9iagotPDwgCi0vRCBbIDI4MTIgMCBSIC9YWVogbnVsbCA3ODggbnVsbCBdIAotPj4gCi1lbmRvYmoKLTI4MTkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgNTk1IDE1MCA2MDcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MjAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyODEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTUwIDU5NSAyOTcgNjA3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODIxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjE1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDU4MSAxNzUgNTkzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODIyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjE2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE3NSA1ODEgMjk3IDU5MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyMyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NjcgMjk3IDU3OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyNCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NTMgMjk3IDU2NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyNSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIxMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MzkgMjk3IDU1MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyNiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIyOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MjUgMjk3IDUzNyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyNyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1MTEgMjk3IDUyMyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyOCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE4MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0OTcgMjk3IDUwOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjgyOSAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg3MDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDgzIDI5NyA0OTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MzAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgNDY5IDI0OSA0ODEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4MzEgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNzAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMjQ5IDQ2OSAyOTcgNDgxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODMyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjExIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ1NSAyOTcgNDY3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODMzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjMwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ0MSAyOTcgNDUzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTk4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQyNyAyOTcgNDM5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjMyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQxMyAyOTcgNDI1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjA2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM5OSAyOTcgNDExIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM4NSAyOTcgMzk3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjA4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM3MSAyOTcgMzgzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODM5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjE5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDM1NyAyMzIgMzY5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODQwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjIwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDIzMiAzNTcgMjk3IDM2OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0MSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCAzNDMgMjAwIDM1NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0MiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAyMDAgMzQzIDI5NyAzNTUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NDMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTI5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMjkgMjk3IDM0MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0NCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzQyMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMTUgMjk3IDMyNyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0NSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMDEgMjk3IDMxMyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0NiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyODcgMjk3IDI5OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0NyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE5NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNzMgMjk3IDI4NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0OCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNTkgMjk3IDI3MSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg0OSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNDUgMjk3IDI1NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1MCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE4NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMzEgMjk3IDI0MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1MSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMTcgMjk3IDIyOSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1MiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMDMgMjk3IDIxNSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1MyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxODkgMjk3IDIwMSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1NCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNzUgMjk3IDE4NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1NSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIwOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNjEgMjk3IDE3MyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1NiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNDcgMjk3IDE1OSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1NyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI5MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCAxMzMgMTk1IDE0NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg1OCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI5MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAxOTUgMTMzIDI5NyAxNDUgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NTkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgMTE5IDIzNiAxMzEgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NjAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMjM2IDExOSAyOTcgMTMxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODYxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjEyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEwNSAyOTcgMTE3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODYyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjI0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDkwIDkxIDIwMyAxMDMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NjMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMjAzIDkxIDI5NyAxMDMgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NjQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxODQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNzcgMjk3IDg5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODY1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjgwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3MDggNTQwIDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg2NiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIxMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjk0IDU0MCA3MDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NjcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxOTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDY4MCAzOTkgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODY4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjY2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM5OSA2ODAgNTQwIDY5MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg2OSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjY2IDU0MCA2NzggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NzAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDY1MiA0MzkgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODcxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQzOSA2NTIgNTQwIDY2NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg3MiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIzMSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NzMgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDg2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MjQgNTQwIDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg3NCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg1MDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDYxMCA0MjkgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODc1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQyOSA2MTAgNTQwIDYyMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg3NiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI2NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4NzcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNzggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU4MiA1NDAgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODc4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjAyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1NjggNTQwIDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg3OSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4ODAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyOTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU0MCA1NDAgNTUyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODgxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjM4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA1MjYgNTQwIDUzOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg4MiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIzNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTEyIDU0MCA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4ODMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ5OCA1NDAgNTEwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODg0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjM0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0ODQgNTQwIDQ5NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg4NSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIzMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDcwIDU0MCA0ODIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4ODYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ1NiA1NDAgNDY4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODg3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjM1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0NDIgNTQwIDQ1NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg4OCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI0NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNDI4IDU0MCA0NDAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4ODkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMzYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQxNCA1NDAgNDI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODkwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjM5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA0MDAgNTQwIDQxMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg5MSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE3OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgMzg2IDQyNCAzOTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4OTIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNzIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDI0IDM4NiA1NDAgMzk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODkzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjc4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzIgNTQwIDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg5NCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzIyNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMzMgMzU4IDQxMCAzNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4OTUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDEwIDM1OCA1NDAgMzcwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODk2IDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ5MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzQ0IDU0MCAzNTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI4OTcgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI1NDggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDMzMCA0MzQgMzQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yODk4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0NTYwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDQzNCAzMzAgNDU4IDM0MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjg5OSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE5NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0NTggMzMwIDQ4MiAzNDIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MDAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxOTMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNDgyIDMzMCA1NDAgMzQyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTAxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMzMyAzMTYgNDI0IDMyOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkwMiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI3MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA0MjQgMzE2IDU0MCAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MDMgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxOTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMwMiA1NDAgMzE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTA0IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjAxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyNzQgNTQwIDI4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkwNSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI2MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjYwIDU0MCAyNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MDYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNjAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI0NiA1NDAgMjU4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTA3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjQ2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyMzIgNTQwIDI0NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkwOCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI0MyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMjE4IDU0MCAyMzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MDkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIwNCA1NDAgMjE2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTEwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjYxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxOTAgNTQwIDIwMiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkxMSAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI2NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTc2IDU0MCAxODggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MTIgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE2MiA1NDAgMTc0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTEzIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjUzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNDggNTQwIDE2MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkxNCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI1NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTM0IDU0MCAxNDYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MTUgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyNTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEyMCA1NDAgMTMyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTE2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjU2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxMDYgNTQwIDExOCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkxNyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI1OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgOTIgNTQwIDEwNCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkxOCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI0NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzggNTQwIDkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTE5IDAgb2JqCi08PCAKLS9QIDI4MTIgMCBSIAotL1IgWyA2MyA2MyA1NDkgNzI5IF0gCi0vViAyODA5IDAgUiAKLS9OIDMwMjMgMCBSIAotPj4gCi1lbmRvYmoKLTI5MjAgMCBvYmoKLTw8IC9MZW5ndGggMjA5NCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdID4+IAotc3RyZWFtCi0KLUouUlRnZDxRUkQrO2ZuQUwxIl01P20oNkJpUEdXKmFzXShkTWhaNV07NyU4UTFQODRlSkgzP0M7aTtPPUBLSXVmCi01NzAtZ2IoanFMVFZiZDlPaS5FJVI/WmVgLEZxT1U2UlxiL0M0WyVQbjsoJSEqJWk0IStbZW8kLGkoak47NWsrLwotND0xZ1EpMyJnSEdeMzJjLWxFSHVGZUVFVEJKa2JUImYkJ3JDLG9tcFEpRFlZOFxFamIoQ1dgYSFibT5LQGwrR3EKLTZZbVVYRV1HKW4jZD86NiojZlk+PC9qa3BdSFNDayYvTkhuby0/LlhCYjFBOV9gNTBLYFpVPE9AaUYwS1lTcEgmCi01aUFDUzltVz9HTHIoQGA9SjNZYjwwJ2JPIkVPSlVlbiQ2TSVSTDdQZUQrT3A/VlQrcFg7a0dlKGxiTT1OYD4pUgotO19qbU4jNGtFcmtycEpeWltIL3BCKVJVb2dINTkzaGhUNFhNSVhgXTBiKi9OazNiSHAiMnExOVUqLlQ3NGcvUEUKLSYtZWhbZklAJXJXMVotWldbJl1HNmEzQDtVVCNEcD1QazlxVTgzVzc6KldmRSMxLVM5UlltIzVHMkIzc0NPaUJECi1hSig0KTcqK18uMG9fOF5dYGdYYlcuSSM+Nk88N0pMLV4/LV8xazdDQGdnMHQ1X1NqOF9vUCstJSY1QUgoXjonIgotQi4xbkdYS1wuTDY9P2JpIztdSVkrYmE/LDVwP15eUlgxNyhkbzhtSS1ETUYnb1g1OSRjbzZvRFRcZXBtbXVZXVkKLTpQJFQsM0FDcHI1U1hII3B0Y1BrSzFQLGM6QCVFOV10NnM3QG07Q1YiUWhZWUUvPDxWTjIrO0kyX1UqXVRHXktcCi1yM0BLcks3TUIuJG5ucGMzIkFvJGZKOEduTjM/TTZbR11lSDttZ2o5PUgjLmROZUIhLUFRQ2BWIiQjVG5mTS1uNQotMltoTVtnK3BAZl5oWWAjJyInLiY+SU89TTZCNzluJmkzQm4iV0I2cWovIXRsZ0shP0szYT9lLWQ7YiwyTiReV0cKLTJsc19VTllYbXMzKGFcaWphZ0EqL0wrM3FbOG1ILlZ0REomOiIvLWFsS2hoSz86UmFoZkNfamc8QWlQbEApPyFxCi0qQ3E9XktdRj1aLDckU3VqUSErOCY3R2lAZiM3aDFqXSlPZm1gaFNWaG1gVC4xckc/bDY4UWBZSytpISdmOjo8NQotInFsaD1EJFlkPWE+VCMmKkI2ITosOjcwRyJxbVNBJmB0T0BNRUcoO0tydTsqKSFuVEBOKzQ5cEU4XiNxJ2lQPDgKLVFMQlhBJiZ1WiRLYl1YYzNYKmJzM1xhNCRQZTdrPD5ebFU+THVXJWIwVENWYG0pJzhXI2ZVPCUrZiswRSUoZzlLCi1VKzV0TzEiOGxmNV1MJyInXydNbXA+IXRRY0hcZEpXP01IYTROJzJmNDpOT1JnSzg5SjNWV0hVZShhSiFHRFxFagotR1w9IzZFckhsX2trajU/Sy5kKExKPTNpX2czQ2dRJSVCLFRbJ2daNmxkZl0xVmBrZSRbUXFjLFQ3XTo+L2JOKy4KLWUtPnNhVSJERyE3RipIVlM5ZFBpQHEnNXVdYSVCWkhWQDpGQ15GKzwtJ1I/JyosOkJALyJsWDhQTTFCJE9DaWQ9Ci1iZjlmdF5naXFxcWgrOSlnKmknQEhPazIoTCdicEtZbjVcJl9JQ3U0JTxcSEtMYzA3Ok9BTDRyWGBENkczLnFDTwotM0VdbzouIl5BZjYsQlAnIywnbyoqXztNNGlhUk80JUV1NmxvRDRFKDMpRCFHaSZNImxgbyg6KzJNO0xNKk5jKmcKLSQvczVrIyx0R3NYZTtJLTZQMldvTzBvOkw4I0JhIkpvWnFDIl5mPjk1bCJkL048XzE0clEiVmIqLnI7aTBbImBfCi1UJnFPKjtUTWRULnBQMERRNkxHLzkmWGlKYT00PzRhO2BAZ0dZXylxWydxRVVqOHRlUi5jcVU6TElORSlSJWE7QAotbipYR2U3YiJlND5BamEia3VDQkI5WmRxLClqUTEwMDgxT2cmWEUtJiQtUT1vTEdULWIqQG1ZRSNuPj04SjZZSiIKLWljOTsmWVYxWUBpPUNQYDc5SywnOmNaWGJRPWpJaVNhMnEoOCs+Wz5rR2hDTThKNkZWIWonOjheYyVqLFlUb2EkCi1MYD03NFgpJDJrRCw2VD0qPUIxVFQoQScrUE48IXQuK2ZyPy11S15GcUJGZVtVUUQpcVRLNXRjLG1WYzdQWjpcYQotb1p1ZSc4MTdYKERiTXU3MT42XVVVYlcuJWNcOyFNI2wtZmNXK2gsQUVaITdjSWlHNmoxLjlLLC8jT01rbDVgZFMKLVZrTFw0WFgncDpLIjo5NmlTOV49VE8mOnFHV0BMOj9sWzkyQUwqU2JPRjQ2X2xiNGouNj5IXyRKSG8/Xi5xV2hmCi1PV2pUbWpwIVk7NVhARSZkRzZFSCtVLyIobWdfcWQzSjRcWSM2bG1EKzJda0gzbitAQmRsSWFIIjBGWTo4JXQ/TgotYjwlbTksbzxFJCokWyIyZ00oRGYzTVEuWGV1SG8lOVdeX2w0WW8pKT4/YkVdV0pybmZlbHA6I1Y6MC5dJjlGLDYKLSklYlNcLm1ZV0xUN2NhSEdZXVdKI3BwQklcZm9NZGNhJ2B0bUxATDVRWW0+XUhgXUZHXXIuV2xPU0tXI1okKCRzCi0/Yk0jaC04J2hvX2xlLDNcZFoiWGE3ZjA1bXRMVi9PPz5WWVlmZ24tT1RRXkt+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTI5MjEgMCBvYmoKLTw8IAotL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gCi0vRm9udCA8PCAvRjUgOCAwIFIgL0Y3IDkgMCBSIC9GMTEgNjEgMCBSIC9GMTMgMjI3NyAwIFIgPj4gCi0vRXh0R1N0YXRlIDw8IC9HUzIgMTAgMCBSID4+IAotPj4gCi1lbmRvYmoKLTI5MjIgMCBvYmoKLTw8IAotL1R5cGUgL1BhZ2UgCi0vUGFyZW50IDI3MDQgMCBSIAotL1Jlc291cmNlcyAzMDI1IDAgUiAKLS9Db250ZW50cyAzMDI0IDAgUiAKLS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSAKLS9Bbm5vdHMgWyAyOTI0IDAgUiAyOTI1IDAgUiAyOTI2IDAgUiAyOTI3IDAgUiAyOTI4IDAgUiAyOTI5IDAgUiAyOTMwIDAgUiAyOTMxIDAgUiAKLTI5MzIgMCBSIDI5MzMgMCBSIDI5MzQgMCBSIDI5MzUgMCBSIDI5MzYgMCBSIDI5MzcgMCBSIDI5MzggMCBSIDI5MzkgMCBSIAotMjk0MCAwIFIgMjk0MSAwIFIgMjk0MiAwIFIgMjk0MyAwIFIgMjk0NCAwIFIgMjk0NSAwIFIgMjk0NiAwIFIgMjk0NyAwIFIgCi0yOTQ4IDAgUiAyOTQ5IDAgUiAyOTUwIDAgUiAyOTUxIDAgUiAyOTUyIDAgUiAyOTUzIDAgUiAyOTU0IDAgUiAyOTU1IDAgUiAKLTI5NTYgMCBSIDI5NTcgMCBSIDI5NTggMCBSIDI5NTkgMCBSIDI5NjAgMCBSIDI5NjEgMCBSIDI5NjIgMCBSIDI5NjMgMCBSIAotMjk2NCAwIFIgMjk2NSAwIFIgMjk2NiAwIFIgMjk2NyAwIFIgMjk2OCAwIFIgMjk2OSAwIFIgMjk3MCAwIFIgMjk3MSAwIFIgCi0yOTcyIDAgUiAyOTczIDAgUiAyOTc0IDAgUiAyOTc1IDAgUiAyOTc2IDAgUiAyOTc3IDAgUiAyOTc4IDAgUiAyOTc5IDAgUiAKLTI5ODAgMCBSIDI5ODEgMCBSIDI5ODIgMCBSIDI5ODMgMCBSIDI5ODQgMCBSIDI5ODUgMCBSIDI5ODYgMCBSIDI5ODcgMCBSIAotMjk4OCAwIFIgMjk4OSAwIFIgMjk5MCAwIFIgMjk5MSAwIFIgMjk5MiAwIFIgMjk5MyAwIFIgMjk5NSAwIFIgMjk5NiAwIFIgCi0yOTk3IDAgUiAyOTk4IDAgUiAyOTk5IDAgUiAzMDAwIDAgUiAzMDAxIDAgUiAzMDAyIDAgUiAzMDAzIDAgUiAzMDA1IDAgUiAKLTMwMDYgMCBSIDMwMDcgMCBSIDMwMDggMCBSIDMwMDkgMCBSIDMwMTAgMCBSIDMwMTEgMCBSIDMwMTIgMCBSIDMwMTMgMCBSIAotMzAxNCAwIFIgMzAxNSAwIFIgMzAxNiAwIFIgMzAxNyAwIFIgMzAxOSAwIFIgMzAyMCAwIFIgMzAyMSAwIFIgMzAyMiAwIFIgCi1dIAotL0IgWyAzMDIzIDAgUiBdIAotPj4gCi1lbmRvYmoKLTI5MjMgMCBvYmoKLTw8IAotL0QgWyAyOTIyIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCi0+PiAKLWVuZG9iagotMjkyNCAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzI0NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNzggNTQwIDkwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTI1IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjQxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDcwOCAyOTcgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTI2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjUyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY5NCAyOTcgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTI3IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY4MCAyOTcgNjkyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTI4IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjQ3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY2NiAyOTcgNjc4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTI5IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjQyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDY1MiAyOTcgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTMwIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjQ4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYzOCAyOTcgNjUwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTMxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjUwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYyNCAyOTcgNjM2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTMyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjUxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDYxMCAyOTcgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTMzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNDQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTk2IDE0MyA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MzQgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQzIDU5NiAyOTcgNjA4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTM1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTgyIDE0OSA1OTQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MzYgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxNjcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQ5IDU4MiAyOTcgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTM3IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODY5OSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA1NjggMjk3IDU4MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjkzOCAwIG9iagotPDwgCi0vRGVzdCAvSTQuMS45OTg2OTggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTU0IDE3NiA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5MzkgMCBvYmoKLTw8IAotL0Rlc3QgL0k3LjEuOTk4MTcyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE3NiA1NTQgMjk3IDU2NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk0MCAwIG9iagotPDwgCi0vRGVzdCAvSTguMS45OTk3OTUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTQwIDI5NyA1NTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NDEgMCBvYmoKLTw8IAotL0Rlc3QgL0k4LjEuOTk5Nzc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDUyNiAyOTcgNTM4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTQyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMzkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNTEyIDI5NyA1MjQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NDMgMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM0MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0OTggMjk3IDUxMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk0NCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjk1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ4NCAxMjkgNDk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTQ1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNjcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTI5IDQ4NCAxNDcgNDk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTQ2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQ3IDQ4NCAyOTcgNDk2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTQ3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDE0MDAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDcwIDI5NyA0ODIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NDggMCBvYmoKLTw8IAotL0Rlc3QgL0k2LjEuMTAwMTM5MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0NTYgMjk3IDQ2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk0OSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzkzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDQ0MiAyOTcgNDU0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTUwIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA3OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA0MjggMjk3IDQ0MCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk1MSAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkwNjkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDE0IDE0MyA0MjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NTIgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MDcwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE0MyA0MTQgMjk3IDQyNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk1MyAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgNDAwIDI5NyA0MTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NTQgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTE4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM4NiAyOTcgMzk4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTU1IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTExNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzNzIgMjk3IDM4NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk1NiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzU4IDI5NyAzNzAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NTcgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTE3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDM0NCAyOTcgMzU2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTU4IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTExOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAzMzAgMjk3IDM0MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk1OSAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMjMgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMzE2IDI5NyAzMjggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NjAgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTA0IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDMwMiAyOTcgMzE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTYxIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA4NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCAyODggMTQ0IDMwMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk2MiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMjAgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTQ0IDI4OCAyOTcgMzAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTYzIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEwNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCAyNzQgMTc4IDI4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk2NCAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxOTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMTc4IDI3NCAyOTcgMjg2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTY1IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA4NiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyNjAgMjk3IDI3MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk2NiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMDggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjQ2IDI5NyAyNTggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NjcgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MDgzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDIzMiAyOTcgMjQ0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTY4IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA4MCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAyMTggMjk3IDIzMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk2OSAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMjA0IDI5NyAyMTYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NzAgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MDc5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE5MCAyOTcgMjAyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTcxIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA4MiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxNzYgMjk3IDE4OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk3MiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkwNzcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgOTAgMTYyIDE1NCAxNzQgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NzMgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTI2IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE1NCAxNjIgMjk3IDE3NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk3NCAwIG9iagotPDwgCi0vRGVzdCAvSTEwLjEuOTk4NDkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDE0OCAyOTcgMTYwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTc1IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEwMyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiAxMzQgMjk3IDE0NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk3NiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgNzIgMTIwIDI5NyAxMzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5NzcgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTAwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDEwNiAyOTcgMTE4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTc4IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTA4NCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA5MiAyOTcgMTA0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTc5IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEwOSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCA3OCAxOTkgOTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5ODAgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTIxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDE5OSA3OCAyOTcgOTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5ODEgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTEwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3MDggNTQwIDcyMCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk4MiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkwNzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY5NCA1NDAgNzA2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTgzIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEyMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjgwIDU0MCA2OTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5ODQgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MDgxIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2NjYgNTQwIDY3OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk4NSAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMDEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDY1MiA1NDAgNjY0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTg2IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEwMiAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNjM4IDU0MCA2NTAgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5ODcgMCBvYmoKLTw8IAotL0Rlc3QgL0k5LjEuOTk5MTEzIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA2MjQgNTQwIDYzNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk4OCAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMTQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDYxMCA1NDAgNjIyIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTg5IDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEyNSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTk2IDU0MCA2MDggXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5OTAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMyMjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzMzIDU4MiAzNzYgNTk0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTkxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMjI4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDM3NiA1ODIgNTQwIDU5NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMjk5MiAwIG9iagotPDwgCi0vRGVzdCAvSTkuMS45OTkxMDYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDU2OCA1NDAgNTgwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTkzIDAgb2JqCi08PCAKLS9EZXN0IC9JOS4xLjk5OTEwNyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgNTU0IDU0MCA1NjYgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTI5OTQgMCBvYmoKLTw8IAotL0QgWyAyOTIyIDAgUiAvWFlaIG51bGwgNjkwIG51bGwgXSAKLT4+IAotZW5kb2JqCi0yOTk1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDUxMSAzNzEgNTIzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTk2IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzcxIDUxMSA1NDAgNTIzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTk3IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzOTkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ5NyA1NDAgNTA5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTk4IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNzEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ4MyA1NDAgNDk1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0yOTk5IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNjYgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ2OSA1NDAgNDgxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDAwIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMDkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ1NSA1NDAgNDY3IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDAxIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMDUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQ0MSA1NDAgNDUzIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDAyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMDggCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQyNyA1NDAgNDM5IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDAzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzMDcgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDQxMyA1NDAgNDI1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDA0IDAgb2JqCi08PCAKLS9EIFsgMjkyMiAwIFIgL1hZWiBudWxsIDU0OSBudWxsIF0gCi0+PiAKLWVuZG9iagotMzAwNSAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjU5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNzAgNTQwIDM4MiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAwNiAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMzg3IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNTYgNTQwIDM2OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAwNyAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxMjg4IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAzNDIgNTQwIDM1NCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAwOCAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0OTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDMxNCA1NDAgMzI2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDA5IDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ4OCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMzAwIDU0MCAzMTIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTMwMTAgMCBvYmoKLTw8IAotL0Rlc3QgL0k1LjEuOTk4NDkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAyODYgNTQwIDI5OCBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAxMSAwIG9iagotPDwgCi0vRGVzdCAvSTUuMS45OTg0OTIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI3MiA1NDAgMjg0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDEyIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzNzUgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDI0NCA1NDAgMjU2IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDEzIDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIxNiA1NDAgMjI4IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDE0IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEzODIgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDIwMiA1NDAgMjE0IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDE1IDAgb2JqCi08PCAKLS9EZXN0IC9JNi4xLjEwMDEyNjQgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDE4OCA1NDAgMjAwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDE2IDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTkwIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSAxNzQgNTQwIDE4NiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAxNyAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE5MSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTYwIDU0MCAxNzIgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTMwMTggMCBvYmoKLTw8IAotL0QgWyAyOTIyIDAgUiAvWFlaIG51bGwgMjk2IG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMDE5IDAgb2JqCi08PCAKLS9EZXN0IC9JNC4xLjk5ODkwMCAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyAzMTUgMTE3IDU0MCAxMjkgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTMwMjAgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMS4xLjEwMDI4NTEgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDEwMyA1NDAgMTE1IF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDIxIDAgb2JqCi08PCAKLS9EZXN0IC9JMTIuMS4xMDA0Njk1IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA4OSA1NDAgMTAxIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDIyIDAgb2JqCi08PCAKLS9EZXN0IC9JMTMuMS4xMDAzMTg5IAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDMxNSA3NSA1NDAgODcgXSAKLS9Cb3JkZXIgWyAwIDAgMCBdIAotPj4gCi1lbmRvYmoKLTMwMjMgMCBvYmoKLTw8IAotL1AgMjkyMiAwIFIgCi0vUiBbIDYzIDYzIDU0OSA3MjkgXSAKLS9WIDI5MTkgMCBSIAotL04gMzAzMyAwIFIgCi0+PiAKLWVuZG9iagotMzAyNCAwIG9iagotPDwgL0xlbmd0aCAxOTUyIC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQsaShqTjs1aysvCi00PTFnUSkzImdIR14zMmMtbEVIdVEoVmZ0QkprYlQiZiQnckMsb21wUSlEWVk4XEVqYihDV2BhIWJtPktAbCtHcQotNlltVVhFXUcpbiNkPzo2KiNmWT48L2prcF1IU0NrJi9OSG5vLT8uWEJiMUE5X2A1MEtgWlU8T0BpRjBLWVNwSCYKLTVpQUNTOW1XP0dMcihAUlIhbUM2PDAlQG5MLDM3Y1M3T2U0TmVJIT5DaCw6PD45VyJcVzVOT0ddUTFRUW1YWyg/Ci1GNldAOzZRcUduVyUrOCxxN1E9NjttIltHSG90YiJKUD44ZiUzb2k7cWBTazROWCEyY01vSTMpVVNGWGUzcHQzJgotIk1cRkQoY2puLiI5ZiZvTzNBPSNfXztLJ2xBLVs4aSVoPiUvM08/WTBcZjU1NzA9ZXEiIj1gPz9RMilRIW1WUkEKLU5hUCsyTldaJFBeVGhUZ0UjY2k6ai1aZGQmZWIsXTBvLzVZKCEhKFdrLzt1dFM+YlJCaUglZ1IlM2xHRl9bZG1qCi1iVlk8My5NKkslQEFuL1xLVlAzXzQ6Wm9CYT5Bb0UuKiFKQGRuamoiOihlLSYxc1hSZ29mYzBmUFpCN0UwZlZHOgotOklBQVQmLWQtSyldUURscVBLXnAmLVZcYyUmOTdsU3JTc0oiXE1XZzREXVlqJ1tzb1s7NTVVczFHTTI1IyolNCMKLU4iM0dMUGciNjxOJW4kZjNtVjw7bnMrck5IbVxlISIrMTIyLWZHJ2gycEIxPGgqJmkmNzxLTyNNajhdYktiS0dVCi09alhNIllzLVUlZ15zRWg7KW04YE5ZYThXMXUvMkdQYl5YMUFfaFNXQENVMi0jJl80cjVaYCdGIic3JjQsam1SRAotIjEmQ21OJEImQyolYz47QyhhaEEnYV1YXChsZnNxQF9rPCMzSzxfZGEjLkBvTCpcXF4pJFRPLiJHPEhYMVZwUz0KLSstMSEkRms7USYnUiFFRiI7dSNWJm4vW2NsXWMjVz9BImU4SmRAa3RLRUc/ITRIQUhIaj4oQy5ZJFlRSDZVIi4oCi1OTmQqQzJzVUxgL1orUCwpIk5ySSFKOldOQTJKaFYyNz1HPmFlNWtBI1x0MDJAc0hdY2FubEEuWiZHL2FjTVwvZQotbz9rLz1IYlJiPTgtQCphW2RURiRfYyUhLVVsZ2JpQGdNP1hDYEJoK19rcy5OYjs3V2RgVStFNGRuX11rX0hQU2cKLSwqKWczZyxNb3FbYm4zIkA3OTpCYT80KUAmLWs/QDpidGxsL25hLV9oRCFBNk5TOmJpXzBCRC07cVhFIkIxRV1ACi1aMDlTLE5hMk5NZkw6LG1nK2F1M2NgLSgkQ0xhUmIjIlVeZ2YtJ01tYzFES0xzMF1MJDxxWyQsXypDXihsMSlybQotMSs5X3FUTTlMbCQmLCsqcGc4WFpDXWpxW1s1USdNS2BaPig8X2Q/RF5TZlpWZmE8IkgvaUY4JitLIi10RilaZlIKLVMyJThTLGdZLkpDaFxbZ1MhL3EhSCc4a09EYjtUJypsKUMnJWAtYjhDa1wrP3BjZV4lK2JrV3BNQmlxQE4wWyhFCi0/TnFZIlc9XlBXVi1mPD8jL0ljNlNjYixqOTQ+RmtWKTNwcyFpLTVxWnJkRzJlLzVyJl4pTkJcUFFxZCMoXiE2TAotW29JNUUjVSwxa1dbPWdUPGs7JDhiOTs1RWVVbD9TSyRGaEs2IkUtIWdFJS4raTxsOWcyOCdSaD9jKytURXBDVlMKLTZTYERhTXJXMDpBZyJ1PUJmKy43OmJtKjBiInQ0cDtebi0hVyVoMlBoVEZNPmVjVD8wRiMlPzBXdTVOLGpnOzNgCi1tOSlLbmFZb29qPCsxWEdZaHAjRVcsUTQ3UGA7XD4qMSRyQjduXyhLMmokTWNgRF9JSUxjQDBwblBKOVs6ZyttJQotcUVdWU8vTj5SZWpMTmA9PiIpayZVbzZdMEo9SVNtQ1NCOl9hS2VoVFRMJkZHTi0xczxCZGVkcUE8OzwsSmolMCYKLTxvRGxWRlVbQ1gxRyoxQlBKXEBQOSMuc1U4YDNHMFNPPUQkPC1UVDhBRzY1ZWloPCI6R2trNGJmVypqIjNGITctCi1QdHRvbFVsWjt0QCs8OyJYW2Eja2RuIl9MJy02Vi8pSUdoMWlGZiRIaSZUOF9IVT8kYTtMKHVFXkJWWCElLHI1MwotOkVkOicuNj1fMmwuWks2YW4yNEBBPUdYNCxJLlpzUzMiSXQ1UzFiNi5qNG9UN29ZQWI4JkhnKVFSSkBhIVgkZGkKLTtuQ0k1ZFEkKCxhTjY4TktORlVeOVwzIWFhcEozX2c1TCNEMUQpJWFAYUFUO1ozVVJnIzRWJVFrLDlwPl8sMlhcCi1sPTQsOkpOZVpSKmJxRlJUSDc/UEluTU8zSSYkITNBO0QqKH4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzAyNSAwIG9iagotPDwgCi0vUHJvY1NldCBbIC9QREYgL1RleHQgXSAKLS9Gb250IDw8IC9GNSA4IDAgUiAvRjcgOSAwIFIgL0YxMSA2MSAwIFIgL0YxMyAyMjc3IDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzAyNiAwIG9iagotPDwgCi0vVHlwZSAvUGFnZSAKLS9QYXJlbnQgMjcwNCAwIFIgCi0vUmVzb3VyY2VzIDM0MTkgMCBSIAotL0NvbnRlbnRzIDM0MTggMCBSIAotL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIAotL0Fubm90cyBbIDMwMjkgMCBSIDMwMzAgMCBSIDMwMzEgMCBSIDMwMzIgMCBSIF0gCi0vQiBbIDMwMzMgMCBSIF0gCi0+PiAKLWVuZG9iagotMzAyNyAwIG9iagotPDwgCi0vRCBbIDMwMjYgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKLT4+IAotZW5kb2JqCi0zMDI4IDAgb2JqCi08PCAKLS9EIFsgMzAyNiAwIFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAotPj4gCi1lbmRvYmoKLTMwMjkgMCBvYmoKLTw8IAotL0Rlc3QgL0kxMy4xLjEwMDMxODkgCi0vVHlwZSAvQW5ub3QgCi0vU3VidHlwZSAvTGluayAKLS9SZWN0IFsgMzE1IDc1IDU0MCA4NyBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAzMCAwIG9iagotPDwgCi0vRGVzdCAvSTYuMS4xMDAxNDYyIAotL1R5cGUgL0Fubm90IAotL1N1YnR5cGUgL0xpbmsgCi0vUmVjdCBbIDcyIDcwOCAyOTcgNzIwIF0gCi0vQm9yZGVyIFsgMCAwIDAgXSAKLT4+IAotZW5kb2JqCi0zMDMxIDAgb2JqCi08PCAKLS9EZXN0IC9JNS4xLjk5ODQ4NSAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA3MiA2OTQgMjk3IDcwNiBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAzMiAwIG9iagotPDwgCi0vRGVzdCAvSTEzLjEuMTAwMzE5NyAKLS9UeXBlIC9Bbm5vdCAKLS9TdWJ0eXBlIC9MaW5rIAotL1JlY3QgWyA5MCA2ODAgMTI3IDY5NSBdIAotL0JvcmRlciBbIDAgMCAwIF0gCi0+PiAKLWVuZG9iagotMzAzMyAwIG9iagotPDwgCi0vUCAzMDI2IDAgUiAKLS9SIFsgNjMgNjMgNTQ5IDcyOSBdIAotL1YgMzAyMyAwIFIgCi0vTiA1NyAwIFIgCi0+PiAKLWVuZG9iagotMzAzNCAwIG9iagotPDwgCi0vVGl0bGUgKFByZWZhY2UpCi0vRGVzdCBbIDE3MiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDM0MjUgMCBSIAotL05leHQgMzA0NCAwIFIgCi0vRmlyc3QgMzAzNSAwIFIgCi0vTGFzdCAzMDQzIDAgUiAKLS9Db3VudCAtNiAKLT4+IAotZW5kb2JqCi0zMDM1IDAgb2JqCi08PCAKLS9UaXRsZSAoSW50cm9kdWN0aW9uKQotL0Rlc3QgWyAxNzIgMCBSIC9YWVogbnVsbCA4MTEgbnVsbCBdIAotL1BhcmVudCAzMDM0IDAgUiAKLS9OZXh0IDMwMzYgMCBSIAotPj4gCi1lbmRvYmoKLTMwMzYgMCBvYmoKLTw8IAotL1RpdGxlIChTV0lHIHJlc291cmNlcykKLS9EZXN0IFsgMTcyIDAgUiAvWFlaIG51bGwgNDY3IG51bGwgXSAKLS9QYXJlbnQgMzAzNCAwIFIgCi0vUHJldiAzMDM1IDAgUiAKLS9OZXh0IDMwMzcgMCBSIAotPj4gCi1lbmRvYmoKLTMwMzcgMCBvYmoKLTw8IAotL1RpdGxlIChBYm91dCB0aGlzIG1hbnVhbCkKLS9EZXN0IFsgMTg1IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzAzNCAwIFIgCi0vUHJldiAzMDM2IDAgUiAKLS9OZXh0IDMwNDEgMCBSIAotL0ZpcnN0IDMwMzggMCBSIAotL0xhc3QgMzA0MCAwIFIgCi0vQ291bnQgLTMgCi0+PiAKLWVuZG9iagotMzAzOCAwIG9iagotPDwgCi0vVGl0bGUgKFByZXJlcXVpc2l0ZXMpCi0vRGVzdCBbIDE4NSAwIFIgL1hZWiBudWxsIDc1OCBudWxsIF0gCi0vUGFyZW50IDMwMzcgMCBSIAotL05leHQgMzAzOSAwIFIgCi0+PiAKLWVuZG9iagotMzAzOSAwIG9iagotPDwgCi0vVGl0bGUgKE9yZ2FuaXphdGlvbiBvZiB0aGlzIG1hbnVhbCkKLS9EZXN0IFsgMTg1IDAgUiAvWFlaIG51bGwgNjYxIG51bGwgXSAKLS9QYXJlbnQgMzAzNyAwIFIgCi0vUHJldiAzMDM4IDAgUiAKLS9OZXh0IDMwNDAgMCBSIAotPj4gCi1lbmRvYmoKLTMwNDAgMCBvYmoKLTw8IAotL1RpdGxlIChIb3cgdG8gYXZvaWQgcmVhZGluZyB0aGUgbWFudWFsKQotL0Rlc3QgWyAxODUgMCBSIC9YWVogbnVsbCA1NjQgbnVsbCBdIAotL1BhcmVudCAzMDM3IDAgUiAKLS9QcmV2IDMwMzkgMCBSIAotPj4gCi1lbmRvYmoKLTMwNDEgMCBvYmoKLTw8IAotL1RpdGxlIChDcmVkaXRzKQotL0Rlc3QgWyAxODUgMCBSIC9YWVogbnVsbCA0NjMgbnVsbCBdIAotL1BhcmVudCAzMDM0IDAgUiAKLS9QcmV2IDMwMzcgMCBSIAotL05leHQgMzA0MiAwIFIgCi0+PiAKLWVuZG9iagotMzA0MiAwIG9iagotPDwgCi0vVGl0bGUgKFdoYXRcMjIwcyBuZXc/KQotL0Rlc3QgWyAxOTIgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMDM0IDAgUiAKLS9QcmV2IDMwNDEgMCBSIAotL05leHQgMzA0MyAwIFIgCi0+PiAKLWVuZG9iagotMzA0MyAwIG9iagotPDwgCi0vVGl0bGUgKEJ1ZyByZXBvcnRzKQotL0Rlc3QgWyAxOTIgMCBSIC9YWVogbnVsbCA1OTggbnVsbCBdIAotL1BhcmVudCAzMDM0IDAgUiAKLS9QcmV2IDMwNDIgMCBSIAotPj4gCi1lbmRvYmoKLTMwNDQgMCBvYmoKLTw8IAotL1RpdGxlIChJbnRyb2R1Y3Rpb24pCi0vRGVzdCBbIDIwMiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDM0MjUgMCBSIAotL1ByZXYgMzAzNCAwIFIgCi0vTmV4dCAzMDY4IDAgUiAKLS9GaXJzdCAzMDQ1IDAgUiAKLS9MYXN0IDMwNjMgMCBSIAotL0NvdW50IC0xMiAKLT4+IAotZW5kb2JqCi0zMDQ1IDAgb2JqCi08PCAKLS9UaXRsZSAoV2hhdCBpcyBTV0lHPykKLS9EZXN0IFsgMjAyIDAgUiAvWFlaIG51bGwgNzI2IG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vTmV4dCAzMDQ2IDAgUiAKLT4+IAotZW5kb2JqCi0zMDQ2IDAgb2JqCi08PCAKLS9UaXRsZSAoTGlmZSBiZWZvcmUgU1dJRykKLS9EZXN0IFsgMjAyIDAgUiAvWFlaIG51bGwgMzA0IG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDQ1IDAgUiAKLS9OZXh0IDMwNDcgMCBSIAotPj4gCi1lbmRvYmoKLTMwNDcgMCBvYmoKLTw8IAotL1RpdGxlIChMaWZlIGFmdGVyIFNXSUcpCi0vRGVzdCBbIDIxMSAwIFIgL1hZWiBudWxsIDYyNSBudWxsIF0gCi0vUGFyZW50IDMwNDQgMCBSIAotL1ByZXYgMzA0NiAwIFIgCi0vTmV4dCAzMDQ4IDAgUiAKLT4+IAotZW5kb2JqCi0zMDQ4IDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIFNXSUcgcGFja2FnZSkKLS9EZXN0IFsgMjExIDAgUiAvWFlaIG51bGwgMzA3IG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDQ3IDAgUiAKLS9OZXh0IDMwNDkgMCBSIAotPj4gCi1lbmRvYmoKLTMwNDkgMCBvYmoKLTw8IAotL1RpdGxlIChBIFNXSUcgZXhhbXBsZSkKLS9EZXN0IFsgMjIwIDAgUiAvWFlaIG51bGwgNTYxIG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDQ4IDAgUiAKLS9OZXh0IDMwNTcgMCBSIAotL0ZpcnN0IDMwNTAgMCBSIAotL0xhc3QgMzA1NiAwIFIgCi0vQ291bnQgLTcgCi0+PiAKLWVuZG9iagotMzA1MCAwIG9iagotPDwgCi0vVGl0bGUgKFNXSUcgaW50ZXJmYWNlIGZpbGUpCi0vRGVzdCBbIDIyMCAwIFIgL1hZWiBudWxsIDI5OSBudWxsIF0gCi0vUGFyZW50IDMwNDkgMCBSIAotL05leHQgMzA1MSAwIFIgCi0+PiAKLWVuZG9iagotMzA1MSAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSBzd2lnIGNvbW1hbmQpCi0vRGVzdCBbIDIzMCAwIFIgL1hZWiBudWxsIDczMCBudWxsIF0gCi0vUGFyZW50IDMwNDkgMCBSIAotL1ByZXYgMzA1MCAwIFIgCi0vTmV4dCAzMDUyIDAgUiAKLT4+IAotZW5kb2JqCi0zMDUyIDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgYSBQZXJsNSBtb2R1bGUpCi0vRGVzdCBbIDIzMCAwIFIgL1hZWiBudWxsIDQ4OSBudWxsIF0gCi0vUGFyZW50IDMwNDkgMCBSIAotL1ByZXYgMzA1MSAwIFIgCi0vTmV4dCAzMDUzIDAgUiAKLT4+IAotZW5kb2JqCi0zMDUzIDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgYSBQeXRob24gbW9kdWxlKQotL0Rlc3QgWyAyNDAgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMDQ5IDAgUiAKLS9QcmV2IDMwNTIgMCBSIAotL05leHQgMzA1NCAwIFIgCi0+PiAKLWVuZG9iagotMzA1NCAwIG9iagotPDwgCi0vVGl0bGUgKFNob3J0Y3V0cykKLS9EZXN0IFsgMjQwIDAgUiAvWFlaIG51bGwgNjE5IG51bGwgXSAKLS9QYXJlbnQgMzA0OSAwIFIgCi0vUHJldiAzMDUzIDAgUiAKLS9OZXh0IDMwNTUgMCBSIAotPj4gCi1lbmRvYmoKLTMwNTUgMCBvYmoKLTw8IAotL1RpdGxlIChEb2N1bWVudGF0aW9uIGdlbmVyYXRpb24pCi0vRGVzdCBbIDI1MCAwIFIgL1hZWiBudWxsIDgxNyBudWxsIF0gCi0vUGFyZW50IDMwNDkgMCBSIAotL1ByZXYgMzA1NCAwIFIgCi0vTmV4dCAzMDU2IDAgUiAKLT4+IAotZW5kb2JqCi0zMDU2IDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgbGlicmFyaWVzIGFuZCBtb2R1bGVzKQotL0Rlc3QgWyAyNTAgMCBSIC9YWVogbnVsbCAyOTggbnVsbCBdIAotL1BhcmVudCAzMDQ5IDAgUiAKLS9QcmV2IDMwNTUgMCBSIAotPj4gCi1lbmRvYmoKLTMwNTcgMCBvYmoKLTw8IAotL1RpdGxlIChDIHN5bnRheCwgYnV0IG5vdCBhIEMgY29tcGlsZXIpCi0vRGVzdCBbIDI1OCAwIFIgL1hZWiBudWxsIDYyMyBudWxsIF0gCi0vUGFyZW50IDMwNDQgMCBSIAotL1ByZXYgMzA0OSAwIFIgCi0vTmV4dCAzMDU4IDAgUiAKLT4+IAotZW5kb2JqCi0zMDU4IDAgb2JqCi08PCAKLS9UaXRsZSAoTm9uLWludHJ1c2l2ZSBpbnRlcmZhY2UgYnVpbGRpbmcpCi0vRGVzdCBbIDI1OCAwIFIgL1hZWiBudWxsIDMwOSBudWxsIF0gCi0vUGFyZW50IDMwNDQgMCBSIAotL1ByZXYgMzA1NyAwIFIgCi0vTmV4dCAzMDU5IDAgUiAKLT4+IAotZW5kb2JqCi0zMDU5IDAgb2JqCi08PCAKLS9UaXRsZSAoSGFuZHMgb2ZmIGNvZGUgZ2VuZXJhdGlvbikKLS9EZXN0IFsgMjcwIDAgUiAvWFlaIG51bGwgODIwIG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDU4IDAgUiAKLS9OZXh0IDMwNjAgMCBSIAotPj4gCi1lbmRvYmoKLTMwNjAgMCBvYmoKLTw8IAotL1RpdGxlIChFdmVudCBkcml2ZW4gQy9DKysgcHJvZ3JhbW1pbmcpCi0vRGVzdCBbIDI3MCAwIFIgL1hZWiBudWxsIDY5NyBudWxsIF0gCi0vUGFyZW50IDMwNDQgMCBSIAotL1ByZXYgMzA1OSAwIFIgCi0vTmV4dCAzMDYxIDAgUiAKLT4+IAotZW5kb2JqCi0zMDYxIDAgb2JqCi08PCAKLS9UaXRsZSAoQXV0b21hdGljIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbikKLS9EZXN0IFsgMjc5IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDYwIDAgUiAKLS9OZXh0IDMwNjIgMCBSIAotPj4gCi1lbmRvYmoKLTMwNjIgMCBvYmoKLTw8IAotL1RpdGxlIChTdW1tYXJ5KQotL0Rlc3QgWyAyNzkgMCBSIC9YWVogbnVsbCA3MTUgbnVsbCBdIAotL1BhcmVudCAzMDQ0IDAgUiAKLS9QcmV2IDMwNjEgMCBSIAotL05leHQgMzA2MyAwIFIgCi0+PiAKLWVuZG9iagotMzA2MyAwIG9iagotPDwgCi0vVGl0bGUgKFNXSUcgZm9yIFdpbmRvd3MgYW5kIE1hY2ludG9zaCkKLS9EZXN0IFsgMjc5IDAgUiAvWFlaIG51bGwgNDM2IG51bGwgXSAKLS9QYXJlbnQgMzA0NCAwIFIgCi0vUHJldiAzMDYyIDAgUiAKLS9GaXJzdCAzMDY0IDAgUiAKLS9MYXN0IDMwNjcgMCBSIAotL0NvdW50IC00IAotPj4gCi1lbmRvYmoKLTMwNjQgMCBvYmoKLTw8IAotL1RpdGxlIChTV0lHIG9uIFdpbmRvd3MgOTUvTlQpCi0vRGVzdCBbIDI3OSAwIFIgL1hZWiBudWxsIDM0MyBudWxsIF0gCi0vUGFyZW50IDMwNjMgMCBSIAotL05leHQgMzA2NSAwIFIgCi0+PiAKLWVuZG9iagotMzA2NSAwIG9iagotPDwgCi0vVGl0bGUgKFNXSUcgb24gdGhlIFBvd2VyIE1hY2ludG9zaCkKLS9EZXN0IFsgMjkxIDAgUiAvWFlaIG51bGwgODM3IG51bGwgXSAKLS9QYXJlbnQgMzA2MyAwIFIgCi0vUHJldiAzMDY0IDAgUiAKLS9OZXh0IDMwNjYgMCBSIAotPj4gCi1lbmRvYmoKLTMwNjYgMCBvYmoKLTw8IAotL1RpdGxlIChDcm9zcyBwbGF0Zm9ybSB3b2VzKQotL0Rlc3QgWyAyOTEgMCBSIC9YWVogbnVsbCA0MzIgbnVsbCBdIAotL1BhcmVudCAzMDYzIDAgUiAKLS9QcmV2IDMwNjUgMCBSIAotL05leHQgMzA2NyAwIFIgCi0+PiAKLWVuZG9iagotMzA2NyAwIG9iagotPDwgCi0vVGl0bGUgKEhvdyB0byBzdXJ2aXZlIHRoaXMgbWFudWFsKQotL0Rlc3QgWyAyOTEgMCBSIC9YWVogbnVsbCAzMzUgbnVsbCBdIAotL1BhcmVudCAzMDYzIDAgUiAKLS9QcmV2IDMwNjYgMCBSIAotPj4gCi1lbmRvYmoKLTMwNjggMCBvYmoKLTw8IAotL1RpdGxlIChTY3JpcHRpbmcgTGFuZ3VhZ2VzKQotL0Rlc3QgWyAzMDMgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzNDI1IDAgUiAKLS9QcmV2IDMwNDQgMCBSIAotL05leHQgMzA4MCAwIFIgCi0vRmlyc3QgMzA2OSAwIFIgCi0vTGFzdCAzMDc5IDAgUiAKLS9Db3VudCAtNCAKLT4+IAotZW5kb2JqCi0zMDY5IDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIHR3byBsYW5ndWFnZSB2aWV3IG9mIHRoZSB3b3JsZCkKLS9EZXN0IFsgMzAzIDAgUiAvWFlaIG51bGwgNjYxIG51bGwgXSAKLS9QYXJlbnQgMzA2OCAwIFIgCi0vTmV4dCAzMDcyIDAgUiAKLS9GaXJzdCAzMDcwIDAgUiAKLS9MYXN0IDMwNzEgMCBSIAotL0NvdW50IC0yIAotPj4gCi1lbmRvYmoKLTMwNzAgMCBvYmoKLTw8IAotL1RpdGxlIChXaWxsIHNjcmlwdGluZyBsYW5ndWFnZXMgbWFrZSBteSBDIHByb2dyYW0gaW5lZmZpYy4uLikKLS9EZXN0IFsgMzEzIDAgUiAvWFlaIG51bGwgNzIwIG51bGwgXSAKLS9QYXJlbnQgMzA2OSAwIFIgCi0vTmV4dCAzMDcxIDAgUiAKLT4+IAotZW5kb2JqCi0zMDcxIDAgb2JqCi08PCAKLS9UaXRsZSAoV2lsbCBhZGRpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgdG8gbXkgQyBwcm9ncmFtIG0uLi4pCi0vRGVzdCBbIDMxMyAwIFIgL1hZWiBudWxsIDQ5MiBudWxsIF0gCi0vUGFyZW50IDMwNjkgMCBSIAotL1ByZXYgMzA3MCAwIFIgCi0+PiAKLWVuZG9iagotMzA3MiAwIG9iagotPDwgCi0vVGl0bGUgKEhvdyBkb2VzIGEgc2NyaXB0aW5nIGxhbmd1YWdlIHRhbGsgdG8gQz8pCi0vRGVzdCBbIDMyMiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMwNjggMCBSIAotL1ByZXYgMzA2OSAwIFIgCi0vTmV4dCAzMDc3IDAgUiAKLS9GaXJzdCAzMDczIDAgUiAKLS9MYXN0IDMwNzYgMCBSIAotL0NvdW50IC00IAotPj4gCi1lbmRvYmoKLTMwNzMgMCBvYmoKLTw8IAotL1RpdGxlIChXcmFwcGVyIGZ1bmN0aW9ucykKLS9EZXN0IFsgMzIyIDAgUiAvWFlaIG51bGwgNzMyIG51bGwgXSAKLS9QYXJlbnQgMzA3MiAwIFIgCi0vTmV4dCAzMDc0IDAgUiAKLT4+IAotZW5kb2JqCi0zMDc0IDAgb2JqCi08PCAKLS9UaXRsZSAoVmFyaWFibGUgbGlua2luZykKLS9EZXN0IFsgMzMyIDAgUiAvWFlaIG51bGwgNzA0IG51bGwgXSAKLS9QYXJlbnQgMzA3MiAwIFIgCi0vUHJldiAzMDczIDAgUiAKLS9OZXh0IDMwNzUgMCBSIAotPj4gCi1lbmRvYmoKLTMwNzUgMCBvYmoKLTw8IAotL1RpdGxlIChDb25zdGFudHMpCi0vRGVzdCBbIDM0MyAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMwNzIgMCBSIAotL1ByZXYgMzA3NCAwIFIgCi0vTmV4dCAzMDc2IDAgUiAKLT4+IAotZW5kb2JqCi0zMDc2IDAgb2JqCi08PCAKLS9UaXRsZSAoU2hhZG93IGNsYXNzZXMpCi0vRGVzdCBbIDM0MyAwIFIgL1hZWiBudWxsIDc4MCBudWxsIF0gCi0vUGFyZW50IDMwNzIgMCBSIAotL1ByZXYgMzA3NSAwIFIgCi0+PiAKLWVuZG9iagotMzA3NyAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb25zKQotL0Rlc3QgWyAzNTkgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMDY4IDAgUiAKLS9QcmV2IDMwNzIgMCBSIAotL05leHQgMzA3OSAwIFIgCi0vRmlyc3QgMzA3OCAwIFIgCi0vTGFzdCAzMDc4IDAgUiAKLS9Db3VudCAtMSAKLT4+IAotZW5kb2JqCi0zMDc4IDAgb2JqCi08PCAKLS9UaXRsZSAoU3RhdGljIGxpbmtpbmcpCi0vRGVzdCBbIDM1OSAwIFIgL1hZWiBudWxsIDc1OCBudWxsIF0gCi0vUGFyZW50IDMwNzcgMCBSIAotPj4gCi1lbmRvYmoKLTMwNzkgMCBvYmoKLTw8IAotL1RpdGxlIChTaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljIGxvYWRpbmcpCi0vRGVzdCBbIDM1OSAwIFIgL1hZWiBudWxsIDUxMSBudWxsIF0gCi0vUGFyZW50IDMwNjggMCBSIAotL1ByZXYgMzA3NyAwIFIgCi0+PiAKLWVuZG9iagotMzA4MCAwIG9iagotPDwgCi0vVGl0bGUgKFNXSUcgQmFzaWNzKQotL0Rlc3QgWyAzNzMgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzNDI1IDAgUiAKLS9QcmV2IDMwNjggMCBSIAotL05leHQgMzE0OCAwIFIgCi0vRmlyc3QgMzA4MSAwIFIgCi0vTGFzdCAzMTQxIDAgUiAKLS9Db3VudCAtOSAKLT4+IAotZW5kb2JqCi0zMDgxIDAgb2JqCi08PCAKLS9UaXRsZSAoUnVubmluZyBTV0lHKQotL0Rlc3QgWyAzNzMgMCBSIC9YWVogbnVsbCA3MjYgbnVsbCBdIAotL1BhcmVudCAzMDgwIDAgUiAKLS9OZXh0IDMwODggMCBSIAotL0ZpcnN0IDMwODIgMCBSIAotL0xhc3QgMzA4NyAwIFIgCi0vQ291bnQgLTYgCi0+PiAKLWVuZG9iagotMzA4MiAwIG9iagotPDwgCi0vVGl0bGUgKElucHV0IGZvcm1hdCkKLS9EZXN0IFsgMzczIDAgUiAvWFlaIG51bGwgMzQ1IG51bGwgXSAKLS9QYXJlbnQgMzA4MSAwIFIgCi0vTmV4dCAzMDgzIDAgUiAKLT4+IAotZW5kb2JqCi0zMDgzIDAgb2JqCi08PCAKLS9UaXRsZSAoU1dJRyBPdXRwdXQpCi0vRGVzdCBbIDQwNyAwIFIgL1hZWiBudWxsIDcwNiBudWxsIF0gCi0vUGFyZW50IDMwODEgMCBSIAotL1ByZXYgMzA4MiAwIFIgCi0vTmV4dCAzMDg0IDAgUiAKLT4+IAotZW5kb2JqCi0zMDg0IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tbWVudHMpCi0vRGVzdCBbIDQwNyAwIFIgL1hZWiBudWxsIDYyMiBudWxsIF0gCi0vUGFyZW50IDMwODEgMCBSIAotL1ByZXYgMzA4MyAwIFIgCi0vTmV4dCAzMDg1IDAgUiAKLT4+IAotZW5kb2JqCi0zMDg1IDAgb2JqCi08PCAKLS9UaXRsZSAoQyBQcmVwcm9jZXNzb3IgZGlyZWN0aXZlcykKLS9EZXN0IFsgNDA3IDAgUiAvWFlaIG51bGwgNTM4IG51bGwgXSAKLS9QYXJlbnQgMzA4MSAwIFIgCi0vUHJldiAzMDg0IDAgUiAKLS9OZXh0IDMwODYgMCBSIAotPj4gCi1lbmRvYmoKLTMwODYgMCBvYmoKLTw8IAotL1RpdGxlIChTV0lHIERpcmVjdGl2ZXMpCi0vRGVzdCBbIDQwNyAwIFIgL1hZWiBudWxsIDM4OSBudWxsIF0gCi0vUGFyZW50IDMwODEgMCBSIAotL1ByZXYgMzA4NSAwIFIgCi0vTmV4dCAzMDg3IDAgUiAKLT4+IAotZW5kb2JqCi0zMDg3IDAgb2JqCi08PCAKLS9UaXRsZSAoTGltaXRhdGlvbnMgaW4gdGhlIFBhcnNlciBcKGFuZCB2YXJpb3VzIHRoaW5ncyB0byBrLi4uKQotL0Rlc3QgWyA0MDcgMCBSIC9YWVogbnVsbCAzMzEgbnVsbCBdIAotL1BhcmVudCAzMDgxIDAgUiAKLS9QcmV2IDMwODYgMCBSIAotPj4gCi1lbmRvYmoKLTMwODggMCBvYmoKLTw8IAotL1RpdGxlIChTaW1wbGUgQyBmdW5jdGlvbnMsIHZhcmlhYmxlcywgYW5kIGNvbnN0YW50cykKLS9EZXN0IFsgNDM1IDAgUiAvWFlaIG51bGwgNjY0IG51bGwgXSAKLS9QYXJlbnQgMzA4MCAwIFIgCi0vUHJldiAzMDgxIDAgUiAKLS9OZXh0IDMwOTMgMCBSIAotL0ZpcnN0IDMwODkgMCBSIAotL0xhc3QgMzA5MiAwIFIgCi0vQ291bnQgLTQgCi0+PiAKLWVuZG9iagotMzA4OSAwIG9iagotPDwgCi0vVGl0bGUgKEludGVnZXJzKQotL0Rlc3QgWyA0MzUgMCBSIC9YWVogbnVsbCAyOTcgbnVsbCBdIAotL1BhcmVudCAzMDg4IDAgUiAKLS9OZXh0IDMwOTAgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTAgMCBvYmoKLTw8IAotL1RpdGxlIChGbG9hdGluZyBQb2ludCkKLS9EZXN0IFsgNDU0IDAgUiAvWFlaIG51bGwgNTM5IG51bGwgXSAKLS9QYXJlbnQgMzA4OCAwIFIgCi0vUHJldiAzMDg5IDAgUiAKLS9OZXh0IDMwOTEgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTEgMCBvYmoKLTw8IAotL1RpdGxlIChDaGFyYWN0ZXIgU3RyaW5ncykKLS9EZXN0IFsgNDU0IDAgUiAvWFlaIG51bGwgNDA5IG51bGwgXSAKLS9QYXJlbnQgMzA4OCAwIFIgCi0vUHJldiAzMDkwIDAgUiAKLS9OZXh0IDMwOTIgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTIgMCBvYmoKLTw8IAotL1RpdGxlIChDb25zdGFudHMpCi0vRGVzdCBbIDQ3NiAwIFIgL1hZWiBudWxsIDYyMiBudWxsIF0gCi0vUGFyZW50IDMwODggMCBSIAotL1ByZXYgMzA5MSAwIFIgCi0+PiAKLWVuZG9iagotMzA5MyAwIG9iagotPDwgCi0vVGl0bGUgKFBvaW50ZXJzIGFuZCBjb21wbGV4IG9iamVjdHMpCi0vRGVzdCBbIDQ4NyAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMwODAgMCBSIAotL1ByZXYgMzA4OCAwIFIgCi0vTmV4dCAzMDk5IDAgUiAKLS9GaXJzdCAzMDk0IDAgUiAKLS9MYXN0IDMwOTggMCBSIAotL0NvdW50IC01IAotPj4gCi1lbmRvYmoKLTMwOTQgMCBvYmoKLTw8IAotL1RpdGxlIChTaW1wbGUgcG9pbnRlcnMpCi0vRGVzdCBbIDQ4NyAwIFIgL1hZWiBudWxsIDc4NCBudWxsIF0gCi0vUGFyZW50IDMwOTMgMCBSIAotL05leHQgMzA5NSAwIFIgCi0+PiAKLWVuZG9iagotMzA5NSAwIG9iagotPDwgCi0vVGl0bGUgKFJ1biB0aW1lIHBvaW50ZXIgdHlwZSBjaGVja2luZykKLS9EZXN0IFsgNDg3IDAgUiAvWFlaIG51bGwgMjgzIG51bGwgXSAKLS9QYXJlbnQgMzA5MyAwIFIgCi0vUHJldiAzMDk0IDAgUiAKLS9OZXh0IDMwOTYgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTYgMCBvYmoKLTw8IAotL1RpdGxlIChEZXJpdmVkIHR5cGVzLCBzdHJ1Y3RzLCBhbmQgY2xhc3NlcykKLS9EZXN0IFsgNTA1IDAgUiAvWFlaIG51bGwgNjM5IG51bGwgXSAKLS9QYXJlbnQgMzA5MyAwIFIgCi0vUHJldiAzMDk1IDAgUiAKLS9OZXh0IDMwOTcgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTcgMCBvYmoKLTw8IAotL1RpdGxlIChXaGF0IGhhcHBlbnMgd2hlbiBTV0lHIGVuY291bnRlcnMgYW4gdW5rbm93biBkYXRhdC4uLikKLS9EZXN0IFsgNTE2IDAgUiAvWFlaIG51bGwgODI0IG51bGwgXSAKLS9QYXJlbnQgMzA5MyAwIFIgCi0vUHJldiAzMDk2IDAgUiAKLS9OZXh0IDMwOTggMCBSIAotPj4gCi1lbmRvYmoKLTMwOTggMCBvYmoKLTw8IAotL1RpdGxlIChUeXBlZGVmKQotL0Rlc3QgWyA1MTYgMCBSIC9YWVogbnVsbCA2MTIgbnVsbCBdIAotL1BhcmVudCAzMDkzIDAgUiAKLS9QcmV2IDMwOTcgMCBSIAotPj4gCi1lbmRvYmoKLTMwOTkgMCBvYmoKLTw8IAotL1RpdGxlIChHZXR0aW5nIGRvd24gdG8gYnVzaW5lc3MpCi0vRGVzdCBbIDUxNiAwIFIgL1hZWiBudWxsIDQ2MyBudWxsIF0gCi0vUGFyZW50IDMwODAgMCBSIAotL1ByZXYgMzA5MyAwIFIgCi0vTmV4dCAzMTA5IDAgUiAKLS9GaXJzdCAzMTAwIDAgUiAKLS9MYXN0IDMxMDggMCBSIAotL0NvdW50IC05IAotPj4gCi1lbmRvYmoKLTMxMDAgMCBvYmoKLTw8IAotL1RpdGxlIChQYXNzaW5nIGNvbXBsZXggZGF0YXR5cGVzIGJ5IHZhbHVlKQotL0Rlc3QgWyA1MTYgMCBSIC9YWVogbnVsbCAzNzAgbnVsbCBdIAotL1BhcmVudCAzMDk5IDAgUiAKLS9OZXh0IDMxMDEgMCBSIAotPj4gCi1lbmRvYmoKLTMxMDEgMCBvYmoKLTw8IAotL1RpdGxlIChSZXR1cm4gYnkgdmFsdWUpCi0vRGVzdCBbIDUyNyAwIFIgL1hZWiBudWxsIDc2NSBudWxsIF0gCi0vUGFyZW50IDMwOTkgMCBSIAotL1ByZXYgMzEwMCAwIFIgCi0vTmV4dCAzMTAyIDAgUiAKLT4+IAotZW5kb2JqCi0zMTAyIDAgb2JqCi08PCAKLS9UaXRsZSAoTGlua2luZyB0byBjb21wbGV4IHZhcmlhYmxlcykKLS9EZXN0IFsgNTI3IDAgUiAvWFlaIG51bGwgMzcxIG51bGwgXSAKLS9QYXJlbnQgMzA5OSAwIFIgCi0vUHJldiAzMTAxIDAgUiAKLS9OZXh0IDMxMDMgMCBSIAotPj4gCi1lbmRvYmoKLTMxMDMgMCBvYmoKLTw8IAotL1RpdGxlIChBcnJheXMpCi0vRGVzdCBbIDUzNSAwIFIgL1hZWiBudWxsIDczNyBudWxsIF0gCi0vUGFyZW50IDMwOTkgMCBSIAotL1ByZXYgMzEwMiAwIFIgCi0vTmV4dCAzMTA0IDAgUiAKLT4+IAotZW5kb2JqCi0zMTA0IDAgb2JqCi08PCAKLS9UaXRsZSAoQ3JlYXRpbmcgcmVhZC1vbmx5IHZhcmlhYmxlcykKLS9EZXN0IFsgNTM1IDAgUiAvWFlaIG51bGwgNDQ0IG51bGwgXSAKLS9QYXJlbnQgMzA5OSAwIFIgCi0vUHJldiAzMTAzIDAgUiAKLS9OZXh0IDMxMDUgMCBSIAotPj4gCi1lbmRvYmoKLTMxMDUgMCBvYmoKLTw8IAotL1RpdGxlIChSZW5hbWluZyB0aGluZ3MpCi0vRGVzdCBbIDUzNSAwIFIgL1hZWiBudWxsIDI3MiBudWxsIF0gCi0vUGFyZW50IDMwOTkgMCBSIAotL1ByZXYgMzEwNCAwIFIgCi0vTmV4dCAzMTA2IDAgUiAKLT4+IAotZW5kb2JqCi0zMTA2IDAgb2JqCi08PCAKLS9UaXRsZSAoT3ZlcnJpZGluZyBjYWxsIGJ5IHJlZmVyZW5jZSkKLS9EZXN0IFsgNTQ3IDAgUiAvWFlaIG51bGwgNjkxIG51bGwgXSAKLS9QYXJlbnQgMzA5OSAwIFIgCi0vUHJldiAzMTA1IDAgUiAKLS9OZXh0IDMxMDcgMCBSIAotPj4gCi1lbmRvYmoKLTMxMDcgMCBvYmoKLTw8IAotL1RpdGxlIChEZWZhdWx0L29wdGlvbmFsIGFyZ3VtZW50cykKLS9EZXN0IFsgNTQ3IDAgUiAvWFlaIG51bGwgMzEyIG51bGwgXSAKLS9QYXJlbnQgMzA5OSAwIFIgCi0vUHJldiAzMTA2IDAgUiAKLS9OZXh0IDMxMDggMCBSIAotPj4gCi1lbmRvYmoKLTMxMDggMCBvYmoKLTw8IAotL1RpdGxlIChQb2ludGVycyB0byBmdW5jdGlvbnMpCi0vRGVzdCBbIDU1OCAwIFIgL1hZWiBudWxsIDc2NSBudWxsIF0gCi0vUGFyZW50IDMwOTkgMCBSIAotL1ByZXYgMzEwNyAwIFIgCi0+PiAKLWVuZG9iagotMzEwOSAwIG9iagotPDwgCi0vVGl0bGUgKFN0cnVjdHVyZXMsIHVuaW9ucywgYW5kIG9iamVjdCBvcmllbnRlZCBDIHByb2dyYW1tLi4uKQotL0Rlc3QgWyA1NjkgMCBSIC9YWVogbnVsbCA3ODcgbnVsbCBdIAotL1BhcmVudCAzMDgwIDAgUiAKLS9QcmV2IDMwOTkgMCBSIAotL05leHQgMzExNyAwIFIgCi0vRmlyc3QgMzExMCAwIFIgCi0vTGFzdCAzMTE2IDAgUiAKLS9Db3VudCAtNyAKLT4+IAotZW5kb2JqCi0zMTEwIDAgb2JqCi08PCAKLS9UaXRsZSAoVHlwZWRlZiBhbmQgc3RydWN0dXJlcykKLS9EZXN0IFsgNTY5IDAgUiAvWFlaIG51bGwgMzg5IG51bGwgXSAKLS9QYXJlbnQgMzEwOSAwIFIgCi0vTmV4dCAzMTExIDAgUiAKLT4+IAotZW5kb2JqCi0zMTExIDAgb2JqCi08PCAKLS9UaXRsZSAoQ2hhcmFjdGVyIHN0cmluZ3MgYW5kIHN0cnVjdHVyZXMpCi0vRGVzdCBbIDU4MCAwIFIgL1hZWiBudWxsIDgzNyBudWxsIF0gCi0vUGFyZW50IDMxMDkgMCBSIAotL1ByZXYgMzExMCAwIFIgCi0vTmV4dCAzMTEyIDAgUiAKLT4+IAotZW5kb2JqCi0zMTEyIDAgb2JqCi08PCAKLS9UaXRsZSAoQXJyYXkgbWVtYmVycykKLS9EZXN0IFsgNTgwIDAgUiAvWFlaIG51bGwgNDg4IG51bGwgXSAKLS9QYXJlbnQgMzEwOSAwIFIgCi0vUHJldiAzMTExIDAgUiAKLS9OZXh0IDMxMTMgMCBSIAotPj4gCi1lbmRvYmoKLTMxMTMgMCBvYmoKLTw8IAotL1RpdGxlIChDIGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMpCi0vRGVzdCBbIDU4MCAwIFIgL1hZWiBudWxsIDQwNCBudWxsIF0gCi0vUGFyZW50IDMxMDkgMCBSIAotL1ByZXYgMzExMiAwIFIgCi0vTmV4dCAzMTE0IDAgUiAKLT4+IAotZW5kb2JqCi0zMTE0IDAgb2JqCi08PCAKLS9UaXRsZSAoQWRkaW5nIG1lbWJlciBmdW5jdGlvbnMpCi0vRGVzdCBbIDU4OSAwIFIgL1hZWiBudWxsIDU0NCBudWxsIF0gCi0vUGFyZW50IDMxMDkgMCBSIAotL1ByZXYgMzExMyAwIFIgCi0vTmV4dCAzMTE1IDAgUiAKLT4+IAotZW5kb2JqCi0zMTE1IDAgb2JqCi08PCAKLS9UaXRsZSAoTmVzdGVkIHN0cnVjdHVyZXMpCi0vRGVzdCBbIDYwOSAwIFIgL1hZWiBudWxsIDU1OCBudWxsIF0gCi0vUGFyZW50IDMxMDkgMCBSIAotL1ByZXYgMzExNCAwIFIgCi0vTmV4dCAzMTE2IDAgUiAKLT4+IAotZW5kb2JqCi0zMTE2IDAgb2JqCi08PCAKLS9UaXRsZSAoT3RoZXIgdGhpbmdzIHRvIG5vdGUgYWJvdXQgc3RydWN0dXJlcykKLS9EZXN0IFsgNjE3IDAgUiAvWFlaIG51bGwgNTQ2IG51bGwgXSAKLS9QYXJlbnQgMzEwOSAwIFIgCi0vUHJldiAzMTE1IDAgUiAKLT4+IAotZW5kb2JqCi0zMTE3IDAgb2JqCi08PCAKLS9UaXRsZSAoQysrIHN1cHBvcnQpCi0vRGVzdCBbIDYxNyAwIFIgL1hZWiBudWxsIDM5MyBudWxsIF0gCi0vUGFyZW50IDMwODAgMCBSIAotL1ByZXYgMzEwOSAwIFIgCi0vTmV4dCAzMTMyIDAgUiAKLS9GaXJzdCAzMTE4IDAgUiAKLS9MYXN0IDMxMzEgMCBSIAotL0NvdW50IC0xNCAKLT4+IAotZW5kb2JqCi0zMTE4IDAgb2JqCi08PCAKLS9UaXRsZSAoU3VwcG9ydGVkIEMrKyBmZWF0dXJlcykKLS9EZXN0IFsgNjI5IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzExNyAwIFIgCi0vTmV4dCAzMTE5IDAgUiAKLT4+IAotZW5kb2JqCi0zMTE5IDAgb2JqCi08PCAKLS9UaXRsZSAoQysrIGV4YW1wbGUpCi0vRGVzdCBbIDYyOSAwIFIgL1hZWiBudWxsIDU0NiBudWxsIF0gCi0vUGFyZW50IDMxMTcgMCBSIAotL1ByZXYgMzExOCAwIFIgCi0vTmV4dCAzMTIwIDAgUiAKLT4+IAotZW5kb2JqCi0zMTIwIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycykKLS9EZXN0IFsgNjM4IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzExNyAwIFIgCi0vUHJldiAzMTE5IDAgUiAKLS9OZXh0IDMxMjEgMCBSIAotPj4gCi1lbmRvYmoKLTMxMjEgMCBvYmoKLTw8IAotL1RpdGxlIChNZW1iZXIgZnVuY3Rpb25zKQotL0Rlc3QgWyA2MzggMCBSIC9YWVogbnVsbCA2OTAgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjAgMCBSIAotL05leHQgMzEyMiAwIFIgCi0+PiAKLWVuZG9iagotMzEyMiAwIG9iagotPDwgCi0vVGl0bGUgKFN0YXRpYyBtZW1iZXJzKQotL0Rlc3QgWyA2MzggMCBSIC9YWVogbnVsbCA1NjIgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjEgMCBSIAotL05leHQgMzEyMyAwIFIgCi0+PiAKLWVuZG9iagotMzEyMyAwIG9iagotPDwgCi0vVGl0bGUgKE1lbWJlciBkYXRhKQotL0Rlc3QgWyA2MzggMCBSIC9YWVogbnVsbCA0OTEgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjIgMCBSIAotL05leHQgMzEyNCAwIFIgCi0+PiAKLWVuZG9iagotMzEyNCAwIG9iagotPDwgCi0vVGl0bGUgKFByb3RlY3Rpb24pCi0vRGVzdCBbIDY1MSAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMxMTcgMCBSIAotL1ByZXYgMzEyMyAwIFIgCi0vTmV4dCAzMTI1IDAgUiAKLT4+IAotZW5kb2JqCi0zMTI1IDAgb2JqCi08PCAKLS9UaXRsZSAoRW51bXMgYW5kIGNvbnN0YW50cykKLS9EZXN0IFsgNjUxIDAgUiAvWFlaIG51bGwgNzQxIG51bGwgXSAKLS9QYXJlbnQgMzExNyAwIFIgCi0vUHJldiAzMTI0IDAgUiAKLS9OZXh0IDMxMjYgMCBSIAotPj4gCi1lbmRvYmoKLTMxMjYgMCBvYmoKLTw8IAotL1RpdGxlIChSZWZlcmVuY2VzKQotL0Rlc3QgWyA2NTEgMCBSIC9YWVogbnVsbCA1MjEgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjUgMCBSIAotL05leHQgMzEyNyAwIFIgCi0+PiAKLWVuZG9iagotMzEyNyAwIG9iagotPDwgCi0vVGl0bGUgKEluaGVyaXRhbmNlKQotL0Rlc3QgWyA2NTEgMCBSIC9YWVogbnVsbCAzMTAgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjYgMCBSIAotL05leHQgMzEyOCAwIFIgCi0+PiAKLWVuZG9iagotMzEyOCAwIG9iagotPDwgCi0vVGl0bGUgKFJlbmFtaW5nKQotL0Rlc3QgWyA2NjAgMCBSIC9YWVogbnVsbCAyNzEgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjcgMCBSIAotL05leHQgMzEyOSAwIFIgCi0+PiAKLWVuZG9iagotMzEyOSAwIG9iagotPDwgCi0vVGl0bGUgKEFkZGluZyBuZXcgbWV0aG9kcykKLS9EZXN0IFsgNjY4IDAgUiAvWFlaIG51bGwgNTIwIG51bGwgXSAKLS9QYXJlbnQgMzExNyAwIFIgCi0vUHJldiAzMTI4IDAgUiAKLS9OZXh0IDMxMzAgMCBSIAotPj4gCi1lbmRvYmoKLTMxMzAgMCBvYmoKLTw8IAotL1RpdGxlIChQYXJ0aWFsIGNsYXNzIGRlZmluaXRpb25zKQotL0Rlc3QgWyA2NzcgMCBSIC9YWVogbnVsbCA3MTIgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMjkgMCBSIAotL05leHQgMzEzMSAwIFIgCi0+PiAKLWVuZG9iagotMzEzMSAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSBmdXR1cmUgb2YgQysrIGFuZCBTV0lHKQotL0Rlc3QgWyA2NzcgMCBSIC9YWVogbnVsbCA1NjMgbnVsbCBdIAotL1BhcmVudCAzMTE3IDAgUiAKLS9QcmV2IDMxMzAgMCBSIAotPj4gCi1lbmRvYmoKLTMxMzIgMCBvYmoKLTw8IAotL1RpdGxlIChDb25kaXRpb25hbCBjb21waWxhdGlvbikKLS9EZXN0IFsgNjc3IDAgUiAvWFlaIG51bGwgNDc1IG51bGwgXSAKLS9QYXJlbnQgMzA4MCAwIFIgCi0vUHJldiAzMTE3IDAgUiAKLS9OZXh0IDMxMzYgMCBSIAotL0ZpcnN0IDMxMzMgMCBSIAotL0xhc3QgMzEzNSAwIFIgCi0vQ291bnQgLTMgCi0+PiAKLWVuZG9iagotMzEzMyAwIG9iagotPDwgCi0vVGl0bGUgKERlZmluaW5nIHN5bWJvbHMpCi0vRGVzdCBbIDY5MCAwIFIgL1hZWiBudWxsIDY5MCBudWxsIF0gCi0vUGFyZW50IDMxMzIgMCBSIAotL05leHQgMzEzNCAwIFIgCi0+PiAKLWVuZG9iagotMzEzNCAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSAjaWYgZGlyZWN0aXZlKQotL0Rlc3QgWyA2OTAgMCBSIC9YWVogbnVsbCA1MzEgbnVsbCBdIAotL1BhcmVudCAzMTMyIDAgUiAKLS9QcmV2IDMxMzMgMCBSIAotL05leHQgMzEzNSAwIFIgCi0+PiAKLWVuZG9iagotMzEzNSAwIG9iagotPDwgCi0vVGl0bGUgKFByZWRlZmluZWQgU3ltYm9scykKLS9EZXN0IFsgNjkwIDAgUiAvWFlaIG51bGwgMzgxIG51bGwgXSAKLS9QYXJlbnQgMzEzMiAwIFIgCi0vUHJldiAzMTM0IDAgUiAKLT4+IAotZW5kb2JqCi0zMTM2IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29kZSBJbnNlcnRpb24pCi0vRGVzdCBbIDY5OCAwIFIgL1hZWiBudWxsIDgyMCBudWxsIF0gCi0vUGFyZW50IDMwODAgMCBSIAotL1ByZXYgMzEzMiAwIFIgCi0vTmV4dCAzMTQxIDAgUiAKLS9GaXJzdCAzMTM3IDAgUiAKLS9MYXN0IDMxNDAgMCBSIAotL0NvdW50IC00IAotPj4gCi1lbmRvYmoKLTMxMzcgMCBvYmoKLTw8IAotL1RpdGxlIChDb2RlIGJsb2NrcykKLS9EZXN0IFsgNjk4IDAgUiAvWFlaIG51bGwgNzQwIG51bGwgXSAKLS9QYXJlbnQgMzEzNiAwIFIgCi0vTmV4dCAzMTM4IDAgUiAKLT4+IAotZW5kb2JqCi0zMTM4IDAgb2JqCi08PCAKLS9UaXRsZSAoSW5saW5lZCBjb2RlIGJsb2NrcykKLS9EZXN0IFsgNjk4IDAgUiAvWFlaIG51bGwgMzE0IG51bGwgXSAKLS9QYXJlbnQgMzEzNiAwIFIgCi0vUHJldiAzMTM3IDAgUiAKLS9OZXh0IDMxMzkgMCBSIAotPj4gCi1lbmRvYmoKLTMxMzkgMCBvYmoKLTw8IAotL1RpdGxlIChJbml0aWFsaXphdGlvbiBibG9ja3MpCi0vRGVzdCBbIDcxMCAwIFIgL1hZWiBudWxsIDc0MSBudWxsIF0gCi0vUGFyZW50IDMxMzYgMCBSIAotL1ByZXYgMzEzOCAwIFIgCi0vTmV4dCAzMTQwIDAgUiAKLT4+IAotZW5kb2JqCi0zMTQwIDAgb2JqCi08PCAKLS9UaXRsZSAoV3JhcHBlciBjb2RlIGJsb2NrcykKLS9EZXN0IFsgNzEwIDAgUiAvWFlaIG51bGwgNTc0IG51bGwgXSAKLS9QYXJlbnQgMzEzNiAwIFIgCi0vUHJldiAzMTM5IDAgUiAKLT4+IAotZW5kb2JqCi0zMTQxIDAgb2JqCi08PCAKLS9UaXRsZSAoQSBnZW5lcmFsIGludGVyZmFjZSBidWlsZGluZyBzdHJhdGVneSkKLS9EZXN0IFsgNzEwIDAgUiAvWFlaIG51bGwgNDAzIG51bGwgXSAKLS9QYXJlbnQgMzA4MCAwIFIgCi0vUHJldiAzMTM2IDAgUiAKLS9GaXJzdCAzMTQyIDAgUiAKLS9MYXN0IDMxNDcgMCBSIAotL0NvdW50IC02IAotPj4gCi1lbmRvYmoKLTMxNDIgMCBvYmoKLTw8IAotL1RpdGxlIChQcmVwYXJpbmcgYSBDIHByb2dyYW0gZm9yIFNXSUcpCi0vRGVzdCBbIDcxMCAwIFIgL1hZWiBudWxsIDMzNiBudWxsIF0gCi0vUGFyZW50IDMxNDEgMCBSIAotL05leHQgMzE0MyAwIFIgCi0+PiAKLWVuZG9iagotMzE0MyAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSBTV0lHIGludGVyZmFjZSBmaWxlKQotL0Rlc3QgWyA3MjIgMCBSIC9YWVogbnVsbCA2MDMgbnVsbCBdIAotL1BhcmVudCAzMTQxIDAgUiAKLS9QcmV2IDMxNDIgMCBSIAotL05leHQgMzE0NCAwIFIgCi0+PiAKLWVuZG9iagotMzE0NCAwIG9iagotPDwgCi0vVGl0bGUgKEdldHRpbmcgdGhlIHJpZ2h0IGhlYWRlciBmaWxlcykKLS9EZXN0IFsgNzMzIDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzE0MSAwIFIgCi0vUHJldiAzMTQzIDAgUiAKLS9OZXh0IDMxNDUgMCBSIAotPj4gCi1lbmRvYmoKLTMxNDUgMCBvYmoKLTw8IAotL1RpdGxlIChXaGF0IHRvIGRvIHdpdGggbWFpblwoXCkpCi0vRGVzdCBbIDczMyAwIFIgL1hZWiBudWxsIDY5NCBudWxsIF0gCi0vUGFyZW50IDMxNDEgMCBSIAotL1ByZXYgMzE0NCAwIFIgCi0vTmV4dCAzMTQ2IDAgUiAKLT4+IAotZW5kb2JqCi0zMTQ2IDAgb2JqCi08PCAKLS9UaXRsZSAoSG93IHRvIGNvcGUgd2l0aCBDKyspCi0vRGVzdCBbIDczMyAwIFIgL1hZWiBudWxsIDQxNSBudWxsIF0gCi0vUGFyZW50IDMxNDEgMCBSIAotL1ByZXYgMzE0NSAwIFIgCi0vTmV4dCAzMTQ3IDAgUiAKLT4+IAotZW5kb2JqCi0zMTQ3IDAgb2JqCi08PCAKLS9UaXRsZSAoSG93IHRvIGF2b2lkIGNyZWF0aW5nIHRoZSBpbnRlcmZhY2UgZnJvbSBoZWxsKQotL0Rlc3QgWyA3MzMgMCBSIC9YWVogbnVsbCAzMDUgbnVsbCBdIAotL1BhcmVudCAzMTQxIDAgUiAKLS9QcmV2IDMxNDYgMCBSIAotPj4gCi1lbmRvYmoKLTMxNDggMCBvYmoKLTw8IAotL1RpdGxlIChNdWx0aXBsZSBmaWxlcyBhbmQgdGhlIFNXSUcgbGlicmFyeSkKLS9EZXN0IFsgNzQ5IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzQyNSAwIFIgCi0vUHJldiAzMDgwIDAgUiAKLS9OZXh0IDMxNjEgMCBSIAotL0ZpcnN0IDMxNDkgMCBSIAotL0xhc3QgMzE2MCAwIFIgCi0vQ291bnQgLTEwIAotPj4gCi1lbmRvYmoKLTMxNDkgMCBvYmoKLTw8IAotL1RpdGxlIChUaGUgJWluY2x1ZGUgZGlyZWN0aXZlKQotL0Rlc3QgWyA3NDkgMCBSIC9YWVogbnVsbCA2NTIgbnVsbCBdIAotL1BhcmVudCAzMTQ4IDAgUiAKLS9OZXh0IDMxNTAgMCBSIAotPj4gCi1lbmRvYmoKLTMxNTAgMCBvYmoKLTw8IAotL1RpdGxlIChTdGF0aWMgaW5pdGlhbGl6YXRpb24gb2YgbXVsdGlwbGUgbW9kdWxlcykKLS9EZXN0IFsgNzQ5IDAgUiAvWFlaIG51bGwgMzc2IG51bGwgXSAKLS9QYXJlbnQgMzE0OCAwIFIgCi0vUHJldiAzMTQ5IDAgUiAKLS9OZXh0IDMxNTEgMCBSIAotPj4gCi1lbmRvYmoKLTMxNTEgMCBvYmoKLTw8IAotL1RpdGxlIChHZW5lcmF0aW5nIHJhdyB3cmFwcGVyIGNvZGUpCi0vRGVzdCBbIDc2MiAwIFIgL1hZWiBudWxsIDgyMCBudWxsIF0gCi0vUGFyZW50IDMxNDggMCBSIAotL1ByZXYgMzE1MCAwIFIgCi0vTmV4dCAzMTUyIDAgUiAKLT4+IAotZW5kb2JqCi0zMTUyIDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlICVleHRlcm4gZGlyZWN0aXZlKQotL0Rlc3QgWyA3NjIgMCBSIC9YWVogbnVsbCA2NjIgbnVsbCBdIAotL1BhcmVudCAzMTQ4IDAgUiAKLS9QcmV2IDMxNTEgMCBSIAotL05leHQgMzE1MyAwIFIgCi0+PiAKLWVuZG9iagotMzE1MyAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSAlaW1wb3J0IGRpcmVjdGl2ZSkKLS9EZXN0IFsgNzYyIDAgUiAvWFlaIG51bGwgNDI3IG51bGwgXSAKLS9QYXJlbnQgMzE0OCAwIFIgCi0vUHJldiAzMTUyIDAgUiAKLS9OZXh0IDMxNTQgMCBSIAotPj4gCi1lbmRvYmoKLTMxNTQgMCBvYmoKLTw8IAotL1RpdGxlIChJbmNsdWRpbmcgZmlsZXMgb24gdGhlIGNvbW1hbmQgbGluZSkKLS9EZXN0IFsgNzYyIDAgUiAvWFlaIG51bGwgMjkxIG51bGwgXSAKLS9QYXJlbnQgMzE0OCAwIFIgCi0vUHJldiAzMTUzIDAgUiAKLS9OZXh0IDMxNTUgMCBSIAotPj4gCi1lbmRvYmoKLTMxNTUgMCBvYmoKLTw8IAotL1RpdGxlIChUaGUgU1dJRyBsaWJyYXJ5KQotL0Rlc3QgWyA3NzYgMCBSIC9YWVogbnVsbCA3NjEgbnVsbCBdIAotL1BhcmVudCAzMTQ4IDAgUiAKLS9QcmV2IDMxNTQgMCBSIAotL05leHQgMzE1NiAwIFIgCi0+PiAKLWVuZG9iagotMzE1NiAwIG9iagotPDwgCi0vVGl0bGUgKExpYnJhcnkgZXhhbXBsZSkKLS9EZXN0IFsgNzc2IDAgUiAvWFlaIG51bGwgNDk1IG51bGwgXSAKLS9QYXJlbnQgMzE0OCAwIFIgCi0vUHJldiAzMTU1IDAgUiAKLS9OZXh0IDMxNTkgMCBSIAotL0ZpcnN0IDMxNTcgMCBSIAotL0xhc3QgMzE1OCAwIFIgCi0vQ291bnQgLTIgCi0+PiAKLWVuZG9iagotMzE1NyAwIG9iagotPDwgCi0vVGl0bGUgKHRjbHNoLmkpCi0vRGVzdCBbIDc3NiAwIFIgL1hZWiBudWxsIDQyOCBudWxsIF0gCi0vUGFyZW50IDMxNTYgMCBSIAotL05leHQgMzE1OCAwIFIgCi0+PiAKLWVuZG9iagotMzE1OCAwIG9iagotPDwgCi0vVGl0bGUgKG1hbGxvYy5pKQotL0Rlc3QgWyA3ODggMCBSIC9YWVogbnVsbCA3MTQgbnVsbCBdIAotL1BhcmVudCAzMTU2IDAgUiAKLS9QcmV2IDMxNTcgMCBSIAotPj4gCi1lbmRvYmoKLTMxNTkgMCBvYmoKLTw8IAotL1RpdGxlIChDcmVhdGluZyBsaWJyYXJ5IGZpbGVzKQotL0Rlc3QgWyA3ODggMCBSIC9YWVogbnVsbCA1MDEgbnVsbCBdIAotL1BhcmVudCAzMTQ4IDAgUiAKLS9QcmV2IDMxNTYgMCBSIAotL05leHQgMzE2MCAwIFIgCi0+PiAKLWVuZG9iagotMzE2MCAwIG9iagotPDwgCi0vVGl0bGUgKE1vcmUgYWJvdXQgdGhlIFNXSUcgbGlicmFyeSkKLS9EZXN0IFsgNzg4IDAgUiAvWFlaIG51bGwgMjY3IG51bGwgXSAKLS9QYXJlbnQgMzE0OCAwIFIgCi0vUHJldiAzMTU5IDAgUiAKLT4+IAotZW5kb2JqCi0zMTYxIDAgb2JqCi08PCAKLS9UaXRsZSAoRG9jdW1lbnRhdGlvbiBTeXN0ZW0pCi0vRGVzdCBbIDc5OSAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDM0MjUgMCBSIAotL1ByZXYgMzE0OCAwIFIgCi0vTmV4dCAzMTgzIDAgUiAKLS9GaXJzdCAzMTYyIDAgUiAKLS9MYXN0IDMxODIgMCBSIAotL0NvdW50IC0xNCAKLT4+IAotZW5kb2JqCi0zMTYyIDAgb2JqCi08PCAKLS9UaXRsZSAoSW50cm9kdWN0aW9uKQotL0Rlc3QgWyA3OTkgMCBSIC9YWVogbnVsbCA3MjYgbnVsbCBdIAotL1BhcmVudCAzMTYxIDAgUiAKLS9OZXh0IDMxNjMgMCBSIAotPj4gCi1lbmRvYmoKLTMxNjMgMCBvYmoKLTw8IAotL1RpdGxlIChIb3cgaXQgd29ya3MpCi0vRGVzdCBbIDc5OSAwIFIgL1hZWiBudWxsIDQzNCBudWxsIF0gCi0vUGFyZW50IDMxNjEgMCBSIAotL1ByZXYgMzE2MiAwIFIgCi0vTmV4dCAzMTY0IDAgUiAKLT4+IAotZW5kb2JqCi0zMTY0IDAgb2JqCi08PCAKLS9UaXRsZSAoQ2hvb3NpbmcgYSBkb2N1bWVudGF0aW9uIGZvcm1hdCkKLS9EZXN0IFsgODEyIDAgUiAvWFlaIG51bGwgNzM3IG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTYzIDAgUiAKLS9OZXh0IDMxNjUgMCBSIAotPj4gCi1lbmRvYmoKLTMxNjUgMCBvYmoKLTw8IAotL1RpdGxlIChGdW5jdGlvbiB1c2FnZSBhbmQgYXJndW1lbnQgbmFtZXMpCi0vRGVzdCBbIDgxMiAwIFIgL1hZWiBudWxsIDU2MSBudWxsIF0gCi0vUGFyZW50IDMxNjEgMCBSIAotL1ByZXYgMzE2NCAwIFIgCi0vTmV4dCAzMTY2IDAgUiAKLT4+IAotZW5kb2JqCi0zMTY2IDAgb2JqCi08PCAKLS9UaXRsZSAoVGl0bGVzLCBzZWN0aW9ucywgYW5kIG1vcmUpCi0vRGVzdCBbIDgxMiAwIFIgL1hZWiBudWxsIDI3MiBudWxsIF0gCi0vUGFyZW50IDMxNjEgMCBSIAotL1ByZXYgMzE2NSAwIFIgCi0vTmV4dCAzMTY3IDAgUiAKLT4+IAotZW5kb2JqCi0zMTY3IDAgb2JqCi08PCAKLS9UaXRsZSAoRm9ybWF0dGluZykKLS9EZXN0IFsgODM4IDAgUiAvWFlaIG51bGwgNTMzIG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTY2IDAgUiAKLS9OZXh0IDMxNzUgMCBSIAotL0ZpcnN0IDMxNjggMCBSIAotL0xhc3QgMzE3NCAwIFIgCi0vQ291bnQgLTcgCi0+PiAKLWVuZG9iagotMzE2OCAwIG9iagotPDwgCi0vVGl0bGUgKERlZmF1bHQgRm9ybWF0dGluZykKLS9EZXN0IFsgODQ3IDAgUiAvWFlaIG51bGwgNzc4IG51bGwgXSAKLS9QYXJlbnQgMzE2NyAwIFIgCi0vTmV4dCAzMTY5IDAgUiAKLT4+IAotZW5kb2JqCi0zMTY5IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tbWVudCBGb3JtYXR0aW5nIHZhcmlhYmxlcykKLS9EZXN0IFsgODQ3IDAgUiAvWFlaIG51bGwgNjQyIG51bGwgXSAKLS9QYXJlbnQgMzE2NyAwIFIgCi0vUHJldiAzMTY4IDAgUiAKLS9OZXh0IDMxNzAgMCBSIAotPj4gCi1lbmRvYmoKLTMxNzAgMCBvYmoKLTw8IAotL1RpdGxlIChTb3J0aW5nKQotL0Rlc3QgWyA4NDcgMCBSIC9YWVogbnVsbCAzNDcgbnVsbCBdIAotL1BhcmVudCAzMTY3IDAgUiAKLS9QcmV2IDMxNjkgMCBSIAotL05leHQgMzE3MSAwIFIgCi0+PiAKLWVuZG9iagotMzE3MSAwIG9iagotPDwgCi0vVGl0bGUgKENvbW1lbnQgcGxhY2VtZW50IGFuZCBmb3JtYXR0aW5nKQotL0Rlc3QgWyA4NTUgMCBSIC9YWVogbnVsbCA3NTIgbnVsbCBdIAotL1BhcmVudCAzMTY3IDAgUiAKLS9QcmV2IDMxNzAgMCBSIAotL05leHQgMzE3MiAwIFIgCi0+PiAKLWVuZG9iagotMzE3MiAwIG9iagotPDwgCi0vVGl0bGUgKFRhYnMgYW5kIG90aGVyIGFubm95YW5jZXMpCi0vRGVzdCBbIDg2MiAwIFIgL1hZWiBudWxsIDcyNCBudWxsIF0gCi0vUGFyZW50IDMxNjcgMCBSIAotL1ByZXYgMzE3MSAwIFIgCi0vTmV4dCAzMTczIDAgUiAKLT4+IAotZW5kb2JqCi0zMTczIDAgb2JqCi08PCAKLS9UaXRsZSAoSWdub3JpbmcgY29tbWVudHMpCi0vRGVzdCBbIDg2MiAwIFIgL1hZWiBudWxsIDU4MSBudWxsIF0gCi0vUGFyZW50IDMxNjcgMCBSIAotL1ByZXYgMzE3MiAwIFIgCi0vTmV4dCAzMTc0IDAgUiAKLT4+IAotZW5kb2JqCi0zMTc0IDAgb2JqCi08PCAKLS9UaXRsZSAoQyBJbmZvcm1hdGlvbikKLS9EZXN0IFsgODYyIDAgUiAvWFlaIG51bGwgNDY2IG51bGwgXSAKLS9QYXJlbnQgMzE2NyAwIFIgCi0vUHJldiAzMTczIDAgUiAKLT4+IAotZW5kb2JqCi0zMTc1IDAgb2JqCi08PCAKLS9UaXRsZSAoQWRkaW5nIEFkZGl0aW9uYWwgVGV4dCkKLS9EZXN0IFsgODYyIDAgUiAvWFlaIG51bGwgMzQ1IG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTY3IDAgUiAKLS9OZXh0IDMxNzYgMCBSIAotPj4gCi1lbmRvYmoKLTMxNzYgMCBvYmoKLTw8IAotL1RpdGxlIChEaXNhYmxpbmcgYWxsIGRvY3VtZW50YXRpb24pCi0vRGVzdCBbIDg3MiAwIFIgL1hZWiBudWxsIDc5NCBudWxsIF0gCi0vUGFyZW50IDMxNjEgMCBSIAotL1ByZXYgMzE3NSAwIFIgCi0vTmV4dCAzMTc3IDAgUiAKLT4+IAotZW5kb2JqCi0zMTc3IDAgb2JqCi08PCAKLS9UaXRsZSAoQW4gRXhhbXBsZSkKLS9EZXN0IFsgODcyIDAgUiAvWFlaIG51bGwgNTAwIG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTc2IDAgUiAKLS9OZXh0IDMxNzggMCBSIAotPj4gCi1lbmRvYmoKLTMxNzggMCBvYmoKLTw8IAotL1RpdGxlIChBU0NJSSBEb2N1bWVudGF0aW9uKQotL0Rlc3QgWyA5MDIgMCBSIC9YWVogbnVsbCAzMTggbnVsbCBdIAotL1BhcmVudCAzMTYxIDAgUiAKLS9QcmV2IDMxNzcgMCBSIAotL05leHQgMzE3OSAwIFIgCi0+PiAKLWVuZG9iagotMzE3OSAwIG9iagotPDwgCi0vVGl0bGUgKEhUTUwgRG9jdW1lbnRhdGlvbikKLS9EZXN0IFsgOTEwIDAgUiAvWFlaIG51bGwgNzE2IG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTc4IDAgUiAKLS9OZXh0IDMxODAgMCBSIAotPj4gCi1lbmRvYmoKLTMxODAgMCBvYmoKLTw8IAotL1RpdGxlIChMYVRlWCBEb2N1bWVudGF0aW9uKQotL0Rlc3QgWyA5MjYgMCBSIC9YWVogbnVsbCA0MDkgbnVsbCBdIAotL1BhcmVudCAzMTYxIDAgUiAKLS9QcmV2IDMxNzkgMCBSIAotL05leHQgMzE4MSAwIFIgCi0+PiAKLWVuZG9iagotMzE4MSAwIG9iagotPDwgCi0vVGl0bGUgKEMrKyBTdXBwb3J0KQotL0Rlc3QgWyA5MzUgMCBSIC9YWVogbnVsbCA2ODkgbnVsbCBdIAotL1BhcmVudCAzMTYxIDAgUiAKLS9QcmV2IDMxODAgMCBSIAotL05leHQgMzE4MiAwIFIgCi0+PiAKLWVuZG9iagotMzE4MiAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSBGaW5hbCBXb3JkPykKLS9EZXN0IFsgOTM1IDAgUiAvWFlaIG51bGwgNTUzIG51bGwgXSAKLS9QYXJlbnQgMzE2MSAwIFIgCi0vUHJldiAzMTgxIDAgUiAKLT4+IAotZW5kb2JqCi0zMTgzIDAgb2JqCi08PCAKLS9UaXRsZSAoU1dJRyBUeXBlbWFwcykKLS9EZXN0IFsgOTQ3IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzQyNSAwIFIgCi0vUHJldiAzMTYxIDAgUiAKLS9OZXh0IDMyMDEgMCBSIAotL0ZpcnN0IDMxODQgMCBSIAotL0xhc3QgMzIwMCAwIFIgCi0vQ291bnQgLTEwIAotPj4gCi1lbmRvYmoKLTMxODQgMCBvYmoKLTw8IAotL1RpdGxlIChJbnRyb2R1Y3Rpb24pCi0vRGVzdCBbIDk0NyAwIFIgL1hZWiBudWxsIDcyNiBudWxsIF0gCi0vUGFyZW50IDMxODMgMCBSIAotL05leHQgMzE4NSAwIFIgCi0+PiAKLWVuZG9iagotMzE4NSAwIG9iagotPDwgCi0vVGl0bGUgKE1vdGl2YXRpb24gZm9yIHVzaW5nIHR5cGVtYXBzKQotL0Rlc3QgWyA5NDcgMCBSIC9YWVogbnVsbCA0MzQgbnVsbCBdIAotL1BhcmVudCAzMTgzIDAgUiAKLS9QcmV2IDMxODQgMCBSIAotL05leHQgMzE4OCAwIFIgCi0vRmlyc3QgMzE4NiAwIFIgCi0vTGFzdCAzMTg3IDAgUiAKLS9Db3VudCAtMiAKLT4+IAotZW5kb2JqCi0zMTg2IDAgb2JqCi08PCAKLS9UaXRsZSAoTWFuYWdpbmcgc3BlY2lhbCBkYXRhLXR5cGVzIHdpdGggaGVscGVyIGZ1bmN0aW9ucykKLS9EZXN0IFsgOTQ3IDAgUiAvWFlaIG51bGwgMzA2IG51bGwgXSAKLS9QYXJlbnQgMzE4NSAwIFIgCi0vTmV4dCAzMTg3IDAgUiAKLT4+IAotZW5kb2JqCi0zMTg3IDAgb2JqCi08PCAKLS9UaXRsZSAoQSBUeXBlbWFwIEltcGxlbWVudGF0aW9uKQotL0Rlc3QgWyA5NTkgMCBSIC9YWVogbnVsbCA0ODcgbnVsbCBdIAotL1BhcmVudCAzMTg1IDAgUiAKLS9QcmV2IDMxODYgMCBSIAotPj4gCi1lbmRvYmoKLTMxODggMCBvYmoKLTw8IAotL1RpdGxlIChXaGF0IGlzIGEgdHlwZW1hcD8pCi0vRGVzdCBbIDk1OSAwIFIgL1hZWiBudWxsIDM1MSBudWxsIF0gCi0vUGFyZW50IDMxODMgMCBSIAotL1ByZXYgMzE4NSAwIFIgCi0vTmV4dCAzMTkyIDAgUiAKLS9GaXJzdCAzMTg5IDAgUiAKLS9MYXN0IDMxOTEgMCBSIAotL0NvdW50IC0zIAotPj4gCi1lbmRvYmoKLTMxODkgMCBvYmoKLTw8IAotL1RpdGxlIChDcmVhdGluZyBhIG5ldyB0eXBlbWFwKQotL0Rlc3QgWyA5NjggMCBSIC9YWVogbnVsbCA2ODAgbnVsbCBdIAotL1BhcmVudCAzMTg4IDAgUiAKLS9OZXh0IDMxOTAgMCBSIAotPj4gCi1lbmRvYmoKLTMxOTAgMCBvYmoKLTw8IAotL1RpdGxlIChEZWxldGluZyBhIHR5cGVtYXApCi0vRGVzdCBbIDk3NSAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMxODggMCBSIAotL1ByZXYgMzE4OSAwIFIgCi0vTmV4dCAzMTkxIDAgUiAKLT4+IAotZW5kb2JqCi0zMTkxIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29weWluZyBhIHR5cGVtYXApCi0vRGVzdCBbIDk3NSAwIFIgL1hZWiBudWxsIDc5NSBudWxsIF0gCi0vUGFyZW50IDMxODggMCBSIAotL1ByZXYgMzE5MCAwIFIgCi0+PiAKLWVuZG9iagotMzE5MiAwIG9iagotPDwgCi0vVGl0bGUgKFR5cGVtYXAgbWF0Y2hpbmcgcnVsZXMpCi0vRGVzdCBbIDk3NSAwIFIgL1hZWiBudWxsIDY4NSBudWxsIF0gCi0vUGFyZW50IDMxODMgMCBSIAotL1ByZXYgMzE4OCAwIFIgCi0vTmV4dCAzMTkzIDAgUiAKLT4+IAotZW5kb2JqCi0zMTkzIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tbW9uIHR5cGVtYXAgbWV0aG9kcykKLS9EZXN0IFsgOTg1IDAgUiAvWFlaIG51bGwgNzg1IG51bGwgXSAKLS9QYXJlbnQgMzE4MyAwIFIgCi0vUHJldiAzMTkyIDAgUiAKLS9OZXh0IDMxOTQgMCBSIAotPj4gCi1lbmRvYmoKLTMxOTQgMCBvYmoKLTw8IAotL1RpdGxlIChXcml0aW5nIHR5cGVtYXAgY29kZSkKLS9EZXN0IFsgMTAxMSAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMxODMgMCBSIAotL1ByZXYgMzE5MyAwIFIgCi0vTmV4dCAzMTk3IDAgUiAKLS9GaXJzdCAzMTk1IDAgUiAKLS9MYXN0IDMxOTYgMCBSIAotL0NvdW50IC0yIAotPj4gCi1lbmRvYmoKLTMxOTUgMCBvYmoKLTw8IAotL1RpdGxlIChTY29wZSkKLS9EZXN0IFsgMTAxMSAwIFIgL1hZWiBudWxsIDgxMCBudWxsIF0gCi0vUGFyZW50IDMxOTQgMCBSIAotL05leHQgMzE5NiAwIFIgCi0+PiAKLWVuZG9iagotMzE5NiAwIG9iagotPDwgCi0vVGl0bGUgKFNwZWNpYWwgdmFyaWFibGVzKQotL0Rlc3QgWyAxMDExIDAgUiAvWFlaIG51bGwgNzEzIG51bGwgXSAKLS9QYXJlbnQgMzE5NCAwIFIgCi0vUHJldiAzMTk1IDAgUiAKLT4+IAotZW5kb2JqCi0zMTk3IDAgb2JqCi08PCAKLS9UaXRsZSAoVHlwZW1hcHMgZm9yIGhhbmRsaW5nIGFycmF5cykKLS9EZXN0IFsgMTAxMSAwIFIgL1hZWiBudWxsIDQxNiBudWxsIF0gCi0vUGFyZW50IDMxODMgMCBSIAotL1ByZXYgMzE5NCAwIFIgCi0vTmV4dCAzMTk4IDAgUiAKLT4+IAotZW5kb2JqCi0zMTk4IDAgb2JqCi08PCAKLS9UaXRsZSAoVHlwZW1hcHMgYW5kIHRoZSBTV0lHIExpYnJhcnkpCi0vRGVzdCBbIDEwMzcgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMTgzIDAgUiAKLS9QcmV2IDMxOTcgMCBSIAotL05leHQgMzE5OSAwIFIgCi0+PiAKLWVuZG9iagotMzE5OSAwIG9iagotPDwgCi0vVGl0bGUgKEltcGxlbWVudGluZyBjb25zdHJhaW50cyB3aXRoIHR5cGVtYXBzKQotL0Rlc3QgWyAxMDM3IDAgUiAvWFlaIG51bGwgMzIyIG51bGwgXSAKLS9QYXJlbnQgMzE4MyAwIFIgCi0vUHJldiAzMTk4IDAgUiAKLS9OZXh0IDMyMDAgMCBSIAotPj4gCi1lbmRvYmoKLTMyMDAgMCBvYmoKLTw8IAotL1RpdGxlIChUeXBlbWFwIGV4YW1wbGVzKQotL0Rlc3QgWyAxMDQ3IDAgUiAvWFlaIG51bGwgNTQ0IG51bGwgXSAKLS9QYXJlbnQgMzE4MyAwIFIgCi0vUHJldiAzMTk5IDAgUiAKLT4+IAotZW5kb2JqCi0zMjAxIDAgb2JqCi08PCAKLS9UaXRsZSAoRXhjZXB0aW9uIEhhbmRsaW5nKQotL0Rlc3QgWyAxMDU4IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzQyNSAwIFIgCi0vUHJldiAzMTgzIDAgUiAKLS9OZXh0IDMyMTAgMCBSIAotL0ZpcnN0IDMyMDIgMCBSIAotL0xhc3QgMzIwOSAwIFIgCi0vQ291bnQgLTcgCi0+PiAKLWVuZG9iagotMzIwMiAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSAlZXhjZXB0IGRpcmVjdGl2ZSkKLS9EZXN0IFsgMTA1OCAwIFIgL1hZWiBudWxsIDY3NCBudWxsIF0gCi0vUGFyZW50IDMyMDEgMCBSIAotL05leHQgMzIwMyAwIFIgCi0+PiAKLWVuZG9iagotMzIwMyAwIG9iagotPDwgCi0vVGl0bGUgKEhhbmRsaW5nIGV4Y2VwdGlvbnMgaW4gQyBjb2RlKQotL0Rlc3QgWyAxMDU4IDAgUiAvWFlaIG51bGwgMzI2IG51bGwgXSAKLS9QYXJlbnQgMzIwMSAwIFIgCi0vUHJldiAzMjAyIDAgUiAKLS9OZXh0IDMyMDQgMCBSIAotPj4gCi1lbmRvYmoKLTMyMDQgMCBvYmoKLTw8IAotL1RpdGxlIChFeGNlcHRpb24gaGFuZGxpbmcgd2l0aCBsb25nam1wXChcKSkKLS9EZXN0IFsgMTA3MyAwIFIgL1hZWiBudWxsIDMyOSBudWxsIF0gCi0vUGFyZW50IDMyMDEgMCBSIAotL1ByZXYgMzIwMyAwIFIgCi0vTmV4dCAzMjA1IDAgUiAKLT4+IAotZW5kb2JqCi0zMjA1IDAgb2JqCi08PCAKLS9UaXRsZSAoSGFuZGxpbmcgQysrIGV4Y2VwdGlvbnMpCi0vRGVzdCBbIDEwODkgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMjAxIDAgUiAKLS9QcmV2IDMyMDQgMCBSIAotL05leHQgMzIwNiAwIFIgCi0+PiAKLWVuZG9iagotMzIwNiAwIG9iagotPDwgCi0vVGl0bGUgKERlZmluaW5nIGRpZmZlcmVudCBleGNlcHRpb24gaGFuZGxlcnMpCi0vRGVzdCBbIDEwODkgMCBSIC9YWVogbnVsbCA0NTYgbnVsbCBdIAotL1BhcmVudCAzMjAxIDAgUiAKLS9QcmV2IDMyMDUgMCBSIAotL05leHQgMzIwOCAwIFIgCi0vRmlyc3QgMzIwNyAwIFIgCi0vTGFzdCAzMjA3IDAgUiAKLS9Db3VudCAtMSAKLT4+IAotZW5kb2JqCi0zMjA3IDAgb2JqCi08PCAKLS9UaXRsZSAoQXBwbHlpbmcgZXhjZXB0aW9uIGhhbmRsZXJzIHRvIHNwZWNpZmljIGRhdGF0eXBlcy4uLi4pCi0vRGVzdCBbIDEwOTggMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMjA2IDAgUiAKLT4+IAotZW5kb2JqCi0zMjA4IDAgb2JqCi08PCAKLS9UaXRsZSAoRGVidWdnaW5nIGFuZCBvdGhlciBpbnRlcmVzdGluZyB1c2VzIGZvciAlZXhjZXB0KQotL0Rlc3QgWyAxMDk4IDAgUiAvWFlaIG51bGwgMzgwIG51bGwgXSAKLS9QYXJlbnQgMzIwMSAwIFIgCi0vUHJldiAzMjA2IDAgUiAKLS9OZXh0IDMyMDkgMCBSIAotPj4gCi1lbmRvYmoKLTMyMDkgMCBvYmoKLTw8IAotL1RpdGxlIChNb3JlIEV4YW1wbGVzKQotL0Rlc3QgWyAxMTA3IDAgUiAvWFlaIG51bGwgNzAyIG51bGwgXSAKLS9QYXJlbnQgMzIwMSAwIFIgCi0vUHJldiAzMjA4IDAgUiAKLT4+IAotZW5kb2JqCi0zMjEwIDAgb2JqCi08PCAKLS9UaXRsZSAoU1dJRyBhbmQgUGVybDUpCi0vRGVzdCBbIDExMTYgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzNDI1IDAgUiAKLS9QcmV2IDMyMDEgMCBSIAotL05leHQgMzI2NCAwIFIgCi0vRmlyc3QgMzIxMSAwIFIgCi0vTGFzdCAzMjYzIDAgUiAKLS9Db3VudCAtMTUgCi0+PiAKLWVuZG9iagotMzIxMSAwIG9iagotPDwgCi0vVGl0bGUgKFByZWxpbWluYXJpZXMpCi0vRGVzdCBbIDExMTYgMCBSIC9YWVogbnVsbCA2NjEgbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9OZXh0IDMyMTcgMCBSIAotL0ZpcnN0IDMyMTIgMCBSIAotL0xhc3QgMzIxNiAwIFIgCi0vQ291bnQgLTUgCi0+PiAKLWVuZG9iagotMzIxMiAwIG9iagotPDwgCi0vVGl0bGUgKFJ1bm5pbmcgU1dJRykKLS9EZXN0IFsgMTExNiAwIFIgL1hZWiBudWxsIDU2OCBudWxsIF0gCi0vUGFyZW50IDMyMTEgMCBSIAotL05leHQgMzIxMyAwIFIgCi0+PiAKLWVuZG9iagotMzIxMyAwIG9iagotPDwgCi0vVGl0bGUgKEdldHRpbmcgdGhlIHJpZ2h0IGhlYWRlciBmaWxlcykKLS9EZXN0IFsgMTExNiAwIFIgL1hZWiBudWxsIDQyNSBudWxsIF0gCi0vUGFyZW50IDMyMTEgMCBSIAotL1ByZXYgMzIxMiAwIFIgCi0vTmV4dCAzMjE0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjE0IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tcGlsaW5nIGEgZHluYW1pYyBtb2R1bGUpCi0vRGVzdCBbIDExMTYgMCBSIC9YWVogbnVsbCAyNDYgbnVsbCBdIAotL1BhcmVudCAzMjExIDAgUiAKLS9QcmV2IDMyMTMgMCBSIAotL05leHQgMzIxNSAwIFIgCi0+PiAKLWVuZG9iagotMzIxNSAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIGEgc3RhdGljIHZlcnNpb24gb2YgUGVybCkKLS9EZXN0IFsgMTEyOCAwIFIgL1hZWiBudWxsIDY3OCBudWxsIF0gCi0vUGFyZW50IDMyMTEgMCBSIAotL1ByZXYgMzIxNCAwIFIgCi0vTmV4dCAzMjE2IDAgUiAKLT4+IAotZW5kb2JqCi0zMjE2IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tcGlsYXRpb24gcHJvYmxlbXMgYW5kIGNvbXBpbGluZyB3aXRoIEMrKykKLS9EZXN0IFsgMTEzNyAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMyMTEgMCBSIAotL1ByZXYgMzIxNSAwIFIgCi0+PiAKLWVuZG9iagotMzIxNyAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIFBlcmwgRXh0ZW5zaW9ucyB1bmRlciBXaW5kb3dzIDk1L05UKQotL0Rlc3QgWyAxMTM3IDAgUiAvWFlaIG51bGwgNjMzIG51bGwgXSAKLS9QYXJlbnQgMzIxMCAwIFIgCi0vUHJldiAzMjExIDAgUiAKLS9OZXh0IDMyMjAgMCBSIAotL0ZpcnN0IDMyMTggMCBSIAotL0xhc3QgMzIxOSAwIFIgCi0vQ291bnQgLTIgCi0+PiAKLWVuZG9iagotMzIxOCAwIG9iagotPDwgCi0vVGl0bGUgKFJ1bm5pbmcgU1dJRyBmcm9tIERldmVsb3BlciBTdHVkaW8pCi0vRGVzdCBbIDExMzcgMCBSIC9YWVogbnVsbCA1MjcgbnVsbCBdIAotL1BhcmVudCAzMjE3IDAgUiAKLS9OZXh0IDMyMTkgMCBSIAotPj4gCi1lbmRvYmoKLTMyMTkgMCBvYmoKLTw8IAotL1RpdGxlIChVc2luZyBOTUFLRSkKLS9EZXN0IFsgMTE0NyAwIFIgL1hZWiBudWxsIDY5MyBudWxsIF0gCi0vUGFyZW50IDMyMTcgMCBSIAotL1ByZXYgMzIxOCAwIFIgCi0+PiAKLWVuZG9iagotMzIyMCAwIG9iagotPDwgCi0vVGl0bGUgKE1vZHVsZXMsIHBhY2thZ2VzLCBhbmQgY2xhc3NlcykKLS9EZXN0IFsgMTE1NCAwIFIgL1hZWiBudWxsIDY5NyBudWxsIF0gCi0vUGFyZW50IDMyMTAgMCBSIAotL1ByZXYgMzIxNyAwIFIgCi0vTmV4dCAzMjIxIDAgUiAKLT4+IAotZW5kb2JqCi0zMjIxIDAgb2JqCi08PCAKLS9UaXRsZSAoQmFzaWMgUGVybCBpbnRlcmZhY2UpCi0vRGVzdCBbIDExNjIgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyMjAgMCBSIAotL05leHQgMzIyNyAwIFIgCi0vRmlyc3QgMzIyMiAwIFIgCi0vTGFzdCAzMjI2IDAgUiAKLS9Db3VudCAtNSAKLT4+IAotZW5kb2JqCi0zMjIyIDAgb2JqCi08PCAKLS9UaXRsZSAoRnVuY3Rpb25zKQotL0Rlc3QgWyAxMTYyIDAgUiAvWFlaIG51bGwgODI4IG51bGwgXSAKLS9QYXJlbnQgMzIyMSAwIFIgCi0vTmV4dCAzMjIzIDAgUiAKLT4+IAotZW5kb2JqCi0zMjIzIDAgb2JqCi08PCAKLS9UaXRsZSAoR2xvYmFsIHZhcmlhYmxlcykKLS9EZXN0IFsgMTE2MiAwIFIgL1hZWiBudWxsIDYwOCBudWxsIF0gCi0vUGFyZW50IDMyMjEgMCBSIAotL1ByZXYgMzIyMiAwIFIgCi0vTmV4dCAzMjI0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjI0IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29uc3RhbnRzKQotL0Rlc3QgWyAxMTYyIDAgUiAvWFlaIG51bGwgMzQ5IG51bGwgXSAKLS9QYXJlbnQgMzIyMSAwIFIgCi0vUHJldiAzMjIzIDAgUiAKLS9OZXh0IDMyMjUgMCBSIAotPj4gCi1lbmRvYmoKLTMyMjUgMCBvYmoKLTw8IAotL1RpdGxlIChQb2ludGVycykKLS9EZXN0IFsgMTE2MiAwIFIgL1hZWiBudWxsIDMwNCBudWxsIF0gCi0vUGFyZW50IDMyMjEgMCBSIAotL1ByZXYgMzIyNCAwIFIgCi0vTmV4dCAzMjI2IDAgUiAKLT4+IAotZW5kb2JqCi0zMjI2IDAgb2JqCi08PCAKLS9UaXRsZSAoU3RydWN0dXJlcyBhbmQgQysrIGNsYXNzZXMpCi0vRGVzdCBbIDExNzMgMCBSIC9YWVogbnVsbCA0MjcgbnVsbCBdIAotL1BhcmVudCAzMjIxIDAgUiAKLS9QcmV2IDMyMjUgMCBSIAotPj4gCi1lbmRvYmoKLTMyMjcgMCBvYmoKLTw8IAotL1RpdGxlIChBIHNpbXBsZSBQZXJsIGV4YW1wbGUpCi0vRGVzdCBbIDExODEgMCBSIC9YWVogbnVsbCA3MzAgbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyMjEgMCBSIAotL05leHQgMzIzMSAwIFIgCi0vRmlyc3QgMzIyOCAwIFIgCi0vTGFzdCAzMjMwIDAgUiAKLS9Db3VudCAtMyAKLT4+IAotZW5kb2JqCi0zMjI4IDAgb2JqCi08PCAKLS9UaXRsZSAoR3JhcGhzKQotL0Rlc3QgWyAxMTgxIDAgUiAvWFlaIG51bGwgNjUwIG51bGwgXSAKLS9QYXJlbnQgMzIyNyAwIFIgCi0vTmV4dCAzMjI5IDAgUiAKLT4+IAotZW5kb2JqCi0zMjI5IDAgb2JqCi08PCAKLS9UaXRsZSAoQSBzaW1wbGUgU1dJRyBpbnRlcmZhY2UgZmlsZSkKLS9EZXN0IFsgMTE4OSAwIFIgL1hZWiBudWxsIDQ3NSBudWxsIF0gCi0vUGFyZW50IDMyMjcgMCBSIAotL1ByZXYgMzIyOCAwIFIgCi0vTmV4dCAzMjMwIDAgUiAKLT4+IAotZW5kb2JqCi0zMjMwIDAgb2JqCi08PCAKLS9UaXRsZSAoU2FtcGxlIFBlcmwgU2NyaXB0KQotL0Rlc3QgWyAxMTk3IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzIyNyAwIFIgCi0vUHJldiAzMjI5IDAgUiAKLT4+IAotZW5kb2JqCi0zMjMxIDAgb2JqCi08PCAKLS9UaXRsZSAoQWNjZXNzaW5nIGFycmF5cyBhbmQgb3RoZXIgc3RyYW5nZSBvYmplY3RzKQotL0Rlc3QgWyAxMjEzIDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzIxMCAwIFIgCi0vUHJldiAzMjI3IDAgUiAKLS9OZXh0IDMyMzIgMCBSIAotPj4gCi1lbmRvYmoKLTMyMzIgMCBvYmoKLTw8IAotL1RpdGxlIChSYXBpZCBwcm90b3R5cGluZyBpbiBQZXJsKQotL0Rlc3QgWyAxMjI1IDAgUiAvWFlaIG51bGwgNDc1IG51bGwgXSAKLS9QYXJlbnQgMzIxMCAwIFIgCi0vUHJldiAzMjMxIDAgUiAKLS9OZXh0IDMyMzMgMCBSIAotPj4gCi1lbmRvYmoKLTMyMzMgMCBvYmoKLTw8IAotL1RpdGxlIChTaGFkb3cgY2xhc3NlcykKLS9EZXN0IFsgMTIzNyAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMyMTAgMCBSIAotL1ByZXYgMzIzMiAwIFIgCi0vTmV4dCAzMjM0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjM0IDAgb2JqCi08PCAKLS9UaXRsZSAoR2V0dGluZyBzZXJpb3VzKQotL0Rlc3QgWyAxMjQ5IDAgUiAvWFlaIG51bGwgODIwIG51bGwgXSAKLS9QYXJlbnQgMzIxMCAwIFIgCi0vUHJldiAzMjMzIDAgUiAKLS9OZXh0IDMyMzUgMCBSIAotPj4gCi1lbmRvYmoKLTMyMzUgMCBvYmoKLTw8IAotL1RpdGxlIChXcmFwcGluZyBDIGxpYnJhcmllcyBhbmQgb3RoZXIgcGFja2FnZXMpCi0vRGVzdCBbIDEyNzQgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyMzQgMCBSIAotL05leHQgMzIzNiAwIFIgCi0+PiAKLWVuZG9iagotMzIzNiAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIGEgUGVybDUgaW50ZXJmYWNlIHRvIE1BVExBQikKLS9EZXN0IFsgMTI3NCAwIFIgL1hZWiBudWxsIDYzNyBudWxsIF0gCi0vUGFyZW50IDMyMTAgMCBSIAotL1ByZXYgMzIzNSAwIFIgCi0vTmV4dCAzMjQxIDAgUiAKLS9GaXJzdCAzMjM3IDAgUiAKLS9MYXN0IDMyNDAgMCBSIAotL0NvdW50IC00IAotPj4gCi1lbmRvYmoKLTMyMzcgMCBvYmoKLTw8IAotL1RpdGxlIChUaGUgTUFUTEFCIGVuZ2luZSBpbnRlcmZhY2UpCi0vRGVzdCBbIDEyNzQgMCBSIC9YWVogbnVsbCA1NDQgbnVsbCBdIAotL1BhcmVudCAzMjM2IDAgUiAKLS9OZXh0IDMyMzggMCBSIAotPj4gCi1lbmRvYmoKLTMyMzggMCBvYmoKLTw8IAotL1RpdGxlIChXcmFwcGluZyB0aGUgTUFUTEFCIG1hdHJpeCBmdW5jdGlvbnMpCi0vRGVzdCBbIDEyODMgMCBSIC9YWVogbnVsbCA1MjAgbnVsbCBdIAotL1BhcmVudCAzMjM2IDAgUiAKLS9QcmV2IDMyMzcgMCBSIAotL05leHQgMzIzOSAwIFIgCi0+PiAKLWVuZG9iagotMzIzOSAwIG9iagotPDwgCi0vVGl0bGUgKFB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyKQotL0Rlc3QgWyAxMjg4IDAgUiAvWFlaIG51bGwgNjQxIG51bGwgXSAKLS9QYXJlbnQgMzIzNiAwIFIgCi0vUHJldiAzMjM4IDAgUiAKLS9OZXh0IDMyNDAgMCBSIAotPj4gCi1lbmRvYmoKLTMyNDAgMCBvYmoKLTw8IAotL1RpdGxlIChHcmFwaGljYWwgV2ViLVN0YXRpc3RpY3MgaW4gUGVybDUpCi0vRGVzdCBbIDEyOTMgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMjM2IDAgUiAKLS9QcmV2IDMyMzkgMCBSIAotPj4gCi1lbmRvYmoKLTMyNDEgMCBvYmoKLTw8IAotL1RpdGxlIChFeGNlcHRpb24gaGFuZGxpbmcpCi0vRGVzdCBbIDEyOTggMCBSIC9YWVogbnVsbCA1NjggbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyMzYgMCBSIAotL05leHQgMzI0MiAwIFIgCi0+PiAKLWVuZG9iagotMzI0MiAwIG9iagotPDwgCi0vVGl0bGUgKFJlbWFwcGluZyBkYXRhdHlwZXMgd2l0aCB0eXBlbWFwcykKLS9EZXN0IFsgMTMwOSAwIFIgL1hZWiBudWxsIDUwMCBudWxsIF0gCi0vUGFyZW50IDMyMTAgMCBSIAotL1ByZXYgMzI0MSAwIFIgCi0vTmV4dCAzMjU1IDAgUiAKLS9GaXJzdCAzMjQzIDAgUiAKLS9MYXN0IDMyNTQgMCBSIAotL0NvdW50IC0xMiAKLT4+IAotZW5kb2JqCi0zMjQzIDAgb2JqCi08PCAKLS9UaXRsZSAoQSBzaW1wbGUgdHlwZW1hcCBleGFtcGxlKQotL0Rlc3QgWyAxMzA5IDAgUiAvWFlaIG51bGwgMzk0IG51bGwgXSAKLS9QYXJlbnQgMzI0MiAwIFIgCi0vTmV4dCAzMjQ0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjQ0IDAgb2JqCi08PCAKLS9UaXRsZSAoUGVybDUgdHlwZW1hcHMpCi0vRGVzdCBbIDEzMTYgMCBSIC9YWVogbnVsbCA2MzIgbnVsbCBdIAotL1BhcmVudCAzMjQyIDAgUiAKLS9QcmV2IDMyNDMgMCBSIAotL05leHQgMzI0NSAwIFIgCi0+PiAKLWVuZG9iagotMzI0NSAwIG9iagotPDwgCi0vVGl0bGUgKFR5cGVtYXAgdmFyaWFibGVzKQotL0Rlc3QgWyAxMzE2IDAgUiAvWFlaIG51bGwgNDU3IG51bGwgXSAKLS9QYXJlbnQgMzI0MiAwIFIgCi0vUHJldiAzMjQ0IDAgUiAKLS9OZXh0IDMyNDYgMCBSIAotPj4gCi1lbmRvYmoKLTMyNDYgMCBvYmoKLTw8IAotL1RpdGxlIChOYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbikKLS9EZXN0IFsgMTMxNiAwIFIgL1hZWiBudWxsIDMzNCBudWxsIF0gCi0vUGFyZW50IDMyNDIgMCBSIAotL1ByZXYgMzI0NSAwIFIgCi0vTmV4dCAzMjQ3IDAgUiAKLT4+IAotZW5kb2JqCi0zMjQ3IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29udmVydGluZyBjaGFyICoqIHRvIGEgUGVybDUgYXJyYXkpCi0vRGVzdCBbIDEzMjIgMCBSIC9YWVogbnVsbCA3MjYgbnVsbCBdIAotL1BhcmVudCAzMjQyIDAgUiAKLS9QcmV2IDMyNDYgMCBSIAotL05leHQgMzI0OCAwIFIgCi0+PiAKLWVuZG9iagotMzI0OCAwIG9iagotPDwgCi0vVGl0bGUgKFVzaW5nIHR5cGVtYXBzIHRvIHJldHVybiB2YWx1ZXMpCi0vRGVzdCBbIDEzMjggMCBSIC9YWVogbnVsbCA0MzUgbnVsbCBdIAotL1BhcmVudCAzMjQyIDAgUiAKLS9QcmV2IDMyNDcgMCBSIAotL05leHQgMzI0OSAwIFIgCi0+PiAKLWVuZG9iagotMzI0OSAwIG9iagotPDwgCi0vVGl0bGUgKEFjY2Vzc2luZyBhcnJheSBzdHJ1Y3R1cmUgbWVtYmVycykKLS9EZXN0IFsgMTMzNCAwIFIgL1hZWiBudWxsIDU0NSBudWxsIF0gCi0vUGFyZW50IDMyNDIgMCBSIAotL1ByZXYgMzI0OCAwIFIgCi0vTmV4dCAzMjUwIDAgUiAKLT4+IAotZW5kb2JqCi0zMjUwIDAgb2JqCi08PCAKLS9UaXRsZSAoVHVybmluZyBQZXJsIHJlZmVyZW5jZXMgaW50byBDIHBvaW50ZXJzKQotL0Rlc3QgWyAxMzQwIDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzI0MiAwIFIgCi0vUHJldiAzMjQ5IDAgUiAKLS9OZXh0IDMyNTEgMCBSIAotPj4gCi1lbmRvYmoKLTMyNTEgMCBvYmoKLTw8IAotL1RpdGxlIChVc2VmdWwgZnVuY3Rpb25zKQotL0Rlc3QgWyAxMzQ1IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzI0MiAwIFIgCi0vUHJldiAzMjUwIDAgUiAKLS9OZXh0IDMyNTIgMCBSIAotPj4gCi1lbmRvYmoKLTMyNTIgMCBvYmoKLTw8IAotL1RpdGxlIChTdGFuZGFyZCB0eXBlbWFwcykKLS9EZXN0IFsgMTM1OSAwIFIgL1hZWiBudWxsIDY2NiBudWxsIF0gCi0vUGFyZW50IDMyNDIgMCBSIAotL1ByZXYgMzI1MSAwIFIgCi0vTmV4dCAzMjUzIDAgUiAKLT4+IAotZW5kb2JqCi0zMjUzIDAgb2JqCi08PCAKLS9UaXRsZSAoUG9pbnRlciBoYW5kbGluZykKLS9EZXN0IFsgMTM2NiAwIFIgL1hZWiBudWxsIDc1OSBudWxsIF0gCi0vUGFyZW50IDMyNDIgMCBSIAotL1ByZXYgMzI1MiAwIFIgCi0vTmV4dCAzMjU0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjU0IDAgb2JqCi08PCAKLS9UaXRsZSAoUmV0dXJuIHZhbHVlcykKLS9EZXN0IFsgMTM2NiAwIFIgL1hZWiBudWxsIDQ4NiBudWxsIF0gCi0vUGFyZW50IDMyNDIgMCBSIAotL1ByZXYgMzI1MyAwIFIgCi0+PiAKLWVuZG9iagotMzI1NSAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSBnb3J5IGRldGFpbHMgb24gc2hhZG93IGNsYXNzZXMpCi0vRGVzdCBbIDEzNjYgMCBSIC9YWVogbnVsbCAzOTggbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyNDIgMCBSIAotL05leHQgMzI2MyAwIFIgCi0vRmlyc3QgMzI1NiAwIFIgCi0vTGFzdCAzMjYyIDAgUiAKLS9Db3VudCAtNyAKLT4+IAotZW5kb2JqCi0zMjU2IDAgb2JqCi08PCAKLS9UaXRsZSAoTW9kdWxlIGFuZCBwYWNrYWdlIG5hbWVzKQotL0Rlc3QgWyAxMzc2IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzI1NSAwIFIgCi0vTmV4dCAzMjU3IDAgUiAKLT4+IAotZW5kb2JqCi0zMjU3IDAgb2JqCi08PCAKLS9UaXRsZSAoV2hhdCBnZXRzIGNyZWF0ZWQ/KQotL0Rlc3QgWyAxMzc2IDAgUiAvWFlaIG51bGwgNzI4IG51bGwgXSAKLS9QYXJlbnQgMzI1NSAwIFIgCi0vUHJldiAzMjU2IDAgUiAKLS9OZXh0IDMyNTggMCBSIAotPj4gCi1lbmRvYmoKLTMyNTggMCBvYmoKLTw8IAotL1RpdGxlIChPYmplY3QgT3duZXJzaGlwKQotL0Rlc3QgWyAxMzgxIDAgUiAvWFlaIG51bGwgMjcxIG51bGwgXSAKLS9QYXJlbnQgMzI1NSAwIFIgCi0vUHJldiAzMjU3IDAgUiAKLS9OZXh0IDMyNTkgMCBSIAotPj4gCi1lbmRvYmoKLTMyNTkgMCBvYmoKLTw8IAotL1RpdGxlIChOZXN0ZWQgT2JqZWN0cykKLS9EZXN0IFsgMTM4NyAwIFIgL1hZWiBudWxsIDI4NiBudWxsIF0gCi0vUGFyZW50IDMyNTUgMCBSIAotL1ByZXYgMzI1OCAwIFIgCi0vTmV4dCAzMjYwIDAgUiAKLT4+IAotZW5kb2JqCi0zMjYwIDAgb2JqCi08PCAKLS9UaXRsZSAoU2hhZG93IEZ1bmN0aW9ucykKLS9EZXN0IFsgMTM5NCAwIFIgL1hZWiBudWxsIDUyMiBudWxsIF0gCi0vUGFyZW50IDMyNTUgMCBSIAotL1ByZXYgMzI1OSAwIFIgCi0vTmV4dCAzMjYxIDAgUiAKLT4+IAotZW5kb2JqCi0zMjYxIDAgb2JqCi08PCAKLS9UaXRsZSAoSW5oZXJpdGFuY2UpCi0vRGVzdCBbIDEzOTQgMCBSIC9YWVogbnVsbCAyNjEgbnVsbCBdIAotL1BhcmVudCAzMjU1IDAgUiAKLS9QcmV2IDMyNjAgMCBSIAotL05leHQgMzI2MiAwIFIgCi0+PiAKLWVuZG9iagotMzI2MiAwIG9iagotPDwgCi0vVGl0bGUgKEl0ZXJhdG9ycykKLS9EZXN0IFsgMTQwMSAwIFIgL1hZWiBudWxsIDMxMyBudWxsIF0gCi0vUGFyZW50IDMyNTUgMCBSIAotL1ByZXYgMzI2MSAwIFIgCi0+PiAKLWVuZG9iagotMzI2MyAwIG9iagotPDwgCi0vVGl0bGUgKFdoZXJlIHRvIGdvIGZyb20gaGVyZT8pCi0vRGVzdCBbIDE0MDcgMCBSIC9YWVogbnVsbCA1MzcgbnVsbCBdIAotL1BhcmVudCAzMjEwIDAgUiAKLS9QcmV2IDMyNTUgMCBSIAotPj4gCi1lbmRvYmoKLTMyNjQgMCBvYmoKLTw8IAotL1RpdGxlIChTV0lHIGFuZCBQeXRob24pCi0vRGVzdCBbIDE0MTYgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzNDI1IDAgUiAKLS9QcmV2IDMyMTAgMCBSIAotL05leHQgMzM0NCAwIFIgCi0vRmlyc3QgMzI2NSAwIFIgCi0vTGFzdCAzMzMxIDAgUiAKLS9Db3VudCAxMyAKLT4+IAotZW5kb2JqCi0zMjY1IDAgb2JqCi08PCAKLS9UaXRsZSAoUHJlbGltaW5hcmllcykKLS9EZXN0IFsgMTQxNiAwIFIgL1hZWiBudWxsIDY3NCBudWxsIF0gCi0vUGFyZW50IDMyNjQgMCBSIAotL05leHQgMzI3MyAwIFIgCi0vRmlyc3QgMzI2NiAwIFIgCi0vTGFzdCAzMjcyIDAgUiAKLS9Db3VudCAtNyAKLT4+IAotZW5kb2JqCi0zMjY2IDAgb2JqCi08PCAKLS9UaXRsZSAoUnVubmluZyBTV0lHKQotL0Rlc3QgWyAxNDE2IDAgUiAvWFlaIG51bGwgNTgxIG51bGwgXSAKLS9QYXJlbnQgMzI2NSAwIFIgCi0vTmV4dCAzMjY3IDAgUiAKLT4+IAotZW5kb2JqCi0zMjY3IDAgb2JqCi08PCAKLS9UaXRsZSAoR2V0dGluZyB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzKQotL0Rlc3QgWyAxNDE2IDAgUiAvWFlaIG51bGwgNDM0IG51bGwgXSAKLS9QYXJlbnQgMzI2NSAwIFIgCi0vUHJldiAzMjY2IDAgUiAKLS9OZXh0IDMyNjggMCBSIAotPj4gCi1lbmRvYmoKLTMyNjggMCBvYmoKLTw8IAotL1RpdGxlIChDb21waWxpbmcgYSBkeW5hbWljIG1vZHVsZSkKLS9EZXN0IFsgMTQyNiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMyNjUgMCBSIAotL1ByZXYgMzI2NyAwIFIgCi0vTmV4dCAzMjY5IDAgUiAKLT4+IAotZW5kb2JqCi0zMjY5IDAgb2JqCi08PCAKLS9UaXRsZSAoUmVidWlsZGluZyB0aGUgUHl0aG9uIGludGVycHJldGVyIFwoYWthLiBzdGF0aWMgbGluLi4uKQotL0Rlc3QgWyAxNDI2IDAgUiAvWFlaIG51bGwgNTg0IG51bGwgXSAKLS9QYXJlbnQgMzI2NSAwIFIgCi0vUHJldiAzMjY4IDAgUiAKLS9OZXh0IDMyNzAgMCBSIAotPj4gCi1lbmRvYmoKLTMyNzAgMCBvYmoKLTw8IAotL1RpdGxlIChCdWlsZGluZyBkeW5hbWljL3N0YXRpYyBtb2R1bGVzKQotL0Rlc3QgWyAxNDM1IDAgUiAvWFlaIG51bGwgNjk0IG51bGwgXSAKLS9QYXJlbnQgMzI2NSAwIFIgCi0vUHJldiAzMjY5IDAgUiAKLS9OZXh0IDMyNzEgMCBSIAotPj4gCi1lbmRvYmoKLTMyNzEgMCBvYmoKLTw8IAotL1RpdGxlIChVc2luZyB5b3VyIG1vZHVsZSkKLS9EZXN0IFsgMTQzNSAwIFIgL1hZWiBudWxsIDUxMSBudWxsIF0gCi0vUGFyZW50IDMyNjUgMCBSIAotL1ByZXYgMzI3MCAwIFIgCi0vTmV4dCAzMjcyIDAgUiAKLT4+IAotZW5kb2JqCi0zMjcyIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tcGlsYXRpb24gcHJvYmxlbXMgYW5kIGNvbXBpbGluZyB3aXRoIEMrKykKLS9EZXN0IFsgMTQzNSAwIFIgL1hZWiBudWxsIDM3NCBudWxsIF0gCi0vUGFyZW50IDMyNjUgMCBSIAotL1ByZXYgMzI3MSAwIFIgCi0+PiAKLWVuZG9iagotMzI3MyAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIFB5dGhvbiBFeHRlbnNpb25zIHVuZGVyIFdpbmRvd3MgOTUvTlQpCi0vRGVzdCBbIDE0NDIgMCBSIC9YWVogbnVsbCA4MjAgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMyNjUgMCBSIAotL05leHQgMzI3NiAwIFIgCi0vRmlyc3QgMzI3NCAwIFIgCi0vTGFzdCAzMjc1IDAgUiAKLS9Db3VudCAtMiAKLT4+IAotZW5kb2JqCi0zMjc0IDAgb2JqCi08PCAKLS9UaXRsZSAoUnVubmluZyBTV0lHIGZyb20gRGV2ZWxvcGVyIFN0dWRpbykKLS9EZXN0IFsgMTQ0MiAwIFIgL1hZWiBudWxsIDcwMSBudWxsIF0gCi0vUGFyZW50IDMyNzMgMCBSIAotL05leHQgMzI3NSAwIFIgCi0+PiAKLWVuZG9iagotMzI3NSAwIG9iagotPDwgCi0vVGl0bGUgKFVzaW5nIE5NQUtFKQotL0Rlc3QgWyAxNDQyIDAgUiAvWFlaIG51bGwgMjUyIG51bGwgXSAKLS9QYXJlbnQgMzI3MyAwIFIgCi0vUHJldiAzMjc0IDAgUiAKLT4+IAotZW5kb2JqCi0zMjc2IDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIGxvdy1sZXZlbCBQeXRob24vQyBpbnRlcmZhY2UpCi0vRGVzdCBbIDE0NTEgMCBSIC9YWVogbnVsbCAyNzMgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMyNzMgMCBSIAotL05leHQgMzI4NCAwIFIgCi0vRmlyc3QgMzI3NyAwIFIgCi0vTGFzdCAzMjgzIDAgUiAKLS9Db3VudCAtNyAKLT4+IAotZW5kb2JqCi0zMjc3IDAgb2JqCi08PCAKLS9UaXRsZSAoTW9kdWxlcykKLS9EZXN0IFsgMTQ1OCAwIFIgL1hZWiBudWxsIDgzNyBudWxsIF0gCi0vUGFyZW50IDMyNzYgMCBSIAotL05leHQgMzI3OCAwIFIgCi0+PiAKLWVuZG9iagotMzI3OCAwIG9iagotPDwgCi0vVGl0bGUgKEZ1bmN0aW9ucykKLS9EZXN0IFsgMTQ1OCAwIFIgL1hZWiBudWxsIDc1MyBudWxsIF0gCi0vUGFyZW50IDMyNzYgMCBSIAotL1ByZXYgMzI3NyAwIFIgCi0vTmV4dCAzMjc5IDAgUiAKLT4+IAotZW5kb2JqCi0zMjc5IDAgb2JqCi08PCAKLS9UaXRsZSAoVmFyaWFibGUgTGlua2luZykKLS9EZXN0IFsgMTQ1OCAwIFIgL1hZWiBudWxsIDU5MiBudWxsIF0gCi0vUGFyZW50IDMyNzYgMCBSIAotL1ByZXYgMzI3OCAwIFIgCi0vTmV4dCAzMjgwIDAgUiAKLT4+IAotZW5kb2JqCi0zMjgwIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29uc3RhbnRzKQotL0Rlc3QgWyAxNDY2IDAgUiAvWFlaIG51bGwgNjQ3IG51bGwgXSAKLS9QYXJlbnQgMzI3NiAwIFIgCi0vUHJldiAzMjc5IDAgUiAKLS9OZXh0IDMyODEgMCBSIAotPj4gCi1lbmRvYmoKLTMyODEgMCBvYmoKLTw8IAotL1RpdGxlIChQb2ludGVycykKLS9EZXN0IFsgMTQ2NiAwIFIgL1hZWiBudWxsIDU2MyBudWxsIF0gCi0vUGFyZW50IDMyNzYgMCBSIAotL1ByZXYgMzI4MCAwIFIgCi0vTmV4dCAzMjgyIDAgUiAKLT4+IAotZW5kb2JqCi0zMjgyIDAgb2JqCi08PCAKLS9UaXRsZSAoU3RydWN0dXJlcykKLS9EZXN0IFsgMTQ2NiAwIFIgL1hZWiBudWxsIDMxOCBudWxsIF0gCi0vUGFyZW50IDMyNzYgMCBSIAotL1ByZXYgMzI4MSAwIFIgCi0vTmV4dCAzMjgzIDAgUiAKLT4+IAotZW5kb2JqCi0zMjgzIDAgb2JqCi08PCAKLS9UaXRsZSAoQysrIENsYXNzZXMpCi0vRGVzdCBbIDE0NzUgMCBSIC9YWVogbnVsbCA2MzEgbnVsbCBdIAotL1BhcmVudCAzMjc2IDAgUiAKLS9QcmV2IDMyODIgMCBSIAotPj4gCi1lbmRvYmoKLTMyODQgMCBvYmoKLTw8IAotL1RpdGxlIChQeXRob24gc2hhZG93IGNsYXNzZXMpCi0vRGVzdCBbIDE0ODEgMCBSIC9YWVogbnVsbCA2NjcgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMyNzYgMCBSIAotL05leHQgMzI5MCAwIFIgCi0vRmlyc3QgMzI4NSAwIFIgCi0vTGFzdCAzMjg5IDAgUiAKLS9Db3VudCAtNSAKLT4+IAotZW5kb2JqCi0zMjg1IDAgb2JqCi08PCAKLS9UaXRsZSAoQSBzaW1wbGUgZXhhbXBsZSkKLS9EZXN0IFsgMTQ4MSAwIFIgL1hZWiBudWxsIDU3NCBudWxsIF0gCi0vUGFyZW50IDMyODQgMCBSIAotL05leHQgMzI4NiAwIFIgCi0+PiAKLWVuZG9iagotMzI4NiAwIG9iagotPDwgCi0vVGl0bGUgKFdoeSB3cml0ZSBzaGFkb3cgY2xhc3NlcyBpbiBQeXRob24/KQotL0Rlc3QgWyAxNDg4IDAgUiAvWFlaIG51bGwgNzU2IG51bGwgXSAKLS9QYXJlbnQgMzI4NCAwIFIgCi0vUHJldiAzMjg1IDAgUiAKLS9OZXh0IDMyODcgMCBSIAotPj4gCi1lbmRvYmoKLTMyODcgMCBvYmoKLTw8IAotL1RpdGxlIChBdXRvbWF0ZWQgc2hhZG93IGNsYXNzIGdlbmVyYXRpb24pCi0vRGVzdCBbIDE0ODggMCBSIC9YWVogbnVsbCA0NjQgbnVsbCBdIAotL1BhcmVudCAzMjg0IDAgUiAKLS9QcmV2IDMyODYgMCBSIAotL05leHQgMzI4OCAwIFIgCi0+PiAKLWVuZG9iagotMzI4OCAwIG9iagotPDwgCi0vVGl0bGUgKENvbXBpbGluZyBtb2R1bGVzIHdpdGggc2hhZG93IGNsYXNzZXMpCi0vRGVzdCBbIDE0OTYgMCBSIC9YWVogbnVsbCA4MzcgbnVsbCBdIAotL1BhcmVudCAzMjg0IDAgUiAKLS9QcmV2IDMyODcgMCBSIAotL05leHQgMzI4OSAwIFIgCi0+PiAKLWVuZG9iagotMzI4OSAwIG9iagotPDwgCi0vVGl0bGUgKFdoZXJlIHRvIGdvIGZvciBtb3JlIGluZm9ybWF0aW9uKQotL0Rlc3QgWyAxNDk2IDAgUiAvWFlaIG51bGwgNTg3IG51bGwgXSAKLS9QYXJlbnQgMzI4NCAwIFIgCi0vUHJldiAzMjg4IDAgUiAKLT4+IAotZW5kb2JqCi0zMjkwIDAgb2JqCi08PCAKLS9UaXRsZSAoQWJvdXQgdGhlIEV4YW1wbGVzKQotL0Rlc3QgWyAxNDk2IDAgUiAvWFlaIG51bGwgNDk5IG51bGwgXSAKLS9QYXJlbnQgMzI2NCAwIFIgCi0vUHJldiAzMjg0IDAgUiAKLS9OZXh0IDMyOTEgMCBSIAotPj4gCi1lbmRvYmoKLTMyOTEgMCBvYmoKLTw8IAotL1RpdGxlIChTb2x2aW5nIGEgc2ltcGxlIGhlYXQtZXF1YXRpb24pCi0vRGVzdCBbIDE0OTYgMCBSIC9YWVogbnVsbCAzMTEgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMyOTAgMCBSIAotL05leHQgMzMwMCAwIFIgCi0vRmlyc3QgMzI5MiAwIFIgCi0vTGFzdCAzMjk5IDAgUiAKLS9Db3VudCAtOCAKLT4+IAotZW5kb2JqCi0zMjkyIDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIEMrKyBjb2RlKQotL0Rlc3QgWyAxNTA1IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzI5MSAwIFIgCi0vTmV4dCAzMjkzIDAgUiAKLT4+IAotZW5kb2JqCi0zMjkzIDAgb2JqCi08PCAKLS9UaXRsZSAoTWFraW5nIGEgcXVpY2sgYW5kIGRpcnR5IFB5dGhvbiBtb2R1bGUpCi0vRGVzdCBbIDE1MDUgMCBSIC9YWVogbnVsbCA0MDIgbnVsbCBdIAotL1BhcmVudCAzMjkxIDAgUiAKLS9QcmV2IDMyOTIgMCBSIAotL05leHQgMzI5NCAwIFIgCi0+PiAKLWVuZG9iagotMzI5NCAwIG9iagotPDwgCi0vVGl0bGUgKFVzaW5nIG91ciBuZXcgbW9kdWxlKQotL0Rlc3QgWyAxNTEwIDAgUiAvWFlaIG51bGwgNzEzIG51bGwgXSAKLS9QYXJlbnQgMzI5MSAwIFIgCi0vUHJldiAzMjkzIDAgUiAKLS9OZXh0IDMyOTUgMCBSIAotPj4gCi1lbmRvYmoKLTMyOTUgMCBvYmoKLTw8IAotL1RpdGxlIChBY2Nlc3NpbmcgYXJyYXkgZGF0YSkKLS9EZXN0IFsgMTUxNSAwIFIgL1hZWiBudWxsIDYwMyBudWxsIF0gCi0vUGFyZW50IDMyOTEgMCBSIAotL1ByZXYgMzI5NCAwIFIgCi0vTmV4dCAzMjk2IDAgUiAKLT4+IAotZW5kb2JqCi0zMjk2IDAgb2JqCi08PCAKLS9UaXRsZSAoVXNlIFB5dGhvbiBmb3IgcHJvdG90eXBpbmcsIEMgZm9yIHBlcmZvcm1hbmNlKQotL0Rlc3QgWyAxNTIxIDAgUiAvWFlaIG51bGwgNDc5IG51bGwgXSAKLS9QYXJlbnQgMzI5MSAwIFIgCi0vUHJldiAzMjk1IDAgUiAKLS9OZXh0IDMyOTcgMCBSIAotPj4gCi1lbmRvYmoKLTMyOTcgMCBvYmoKLTw8IAotL1RpdGxlIChHZXR0aW5nIGV2ZW4gbW9yZSBzZXJpb3VzIGFib3V0IGFycmF5IGFjY2VzcykKLS9EZXN0IFsgMTUyNiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMyOTEgMCBSIAotL1ByZXYgMzI5NiAwIFIgCi0vTmV4dCAzMjk4IDAgUiAKLT4+IAotZW5kb2JqCi0zMjk4IDAgb2JqCi08PCAKLS9UaXRsZSAoR2V0dGluZyByZWFsbHkgc2VyaW91cyBhYm91dCBhcnJheXMpCi0vRGVzdCBbIDE1MzggMCBSIC9YWVogbnVsbCA2MTUgbnVsbCBdIAotL1BhcmVudCAzMjkxIDAgUiAKLS9QcmV2IDMyOTcgMCBSIAotL05leHQgMzI5OSAwIFIgCi0+PiAKLWVuZG9iagotMzI5OSAwIG9iagotPDwgCi0vVGl0bGUgKFN1bW1hcnkgXChzbyBmYXJcKSkKLS9EZXN0IFsgMTU0NCAwIFIgL1hZWiBudWxsIDM1NCBudWxsIF0gCi0vUGFyZW50IDMyOTEgMCBSIAotL1ByZXYgMzI5OCAwIFIgCi0+PiAKLWVuZG9iagotMzMwMCAwIG9iagotPDwgCi0vVGl0bGUgKFdyYXBwaW5nIGEgQyBsaWJyYXJ5KQotL0Rlc3QgWyAxNTUwIDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzI2NCAwIFIgCi0vUHJldiAzMjkxIDAgUiAKLS9OZXh0IDMzMDggMCBSIAotL0ZpcnN0IDMzMDEgMCBSIAotL0xhc3QgMzMwNyAwIFIgCi0vQ291bnQgLTcgCi0+PiAKLWVuZG9iagotMzMwMSAwIG9iagotPDwgCi0vVGl0bGUgKFByZXBhcmluZyBhIG1vZHVsZSkKLS9EZXN0IFsgMTU1MCAwIFIgL1hZWiBudWxsIDc1OCBudWxsIF0gCi0vUGFyZW50IDMzMDAgMCBSIAotL05leHQgMzMwMiAwIFIgCi0+PiAKLWVuZG9iagotMzMwMiAwIG9iagotPDwgCi0vVGl0bGUgKFVzaW5nIHRoZSBnZCBtb2R1bGUpCi0vRGVzdCBbIDE1NTkgMCBSIC9YWVogbnVsbCAzOTUgbnVsbCBdIAotL1BhcmVudCAzMzAwIDAgUiAKLS9QcmV2IDMzMDEgMCBSIAotL05leHQgMzMwMyAwIFIgCi0+PiAKLWVuZG9iagotMzMwMyAwIG9iagotPDwgCi0vVGl0bGUgKEV4dGVuZGluZyBhbmQgZml4aW5nIHRoZSBnZCBtb2R1bGUpCi0vRGVzdCBbIDE1NjQgMCBSIC9YWVogbnVsbCA3NTYgbnVsbCBdIAotL1BhcmVudCAzMzAwIDAgUiAKLS9QcmV2IDMzMDIgMCBSIAotL05leHQgMzMwNCAwIFIgCi0+PiAKLWVuZG9iagotMzMwNCAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIGEgc2ltcGxlIDJEIGltYWdpbmcgY2xhc3MpCi0vRGVzdCBbIDE1NzAgMCBSIC9YWVogbnVsbCA2MjggbnVsbCBdIAotL1BhcmVudCAzMzAwIDAgUiAKLS9QcmV2IDMzMDMgMCBSIAotL05leHQgMzMwNSAwIFIgCi0+PiAKLWVuZG9iagotMzMwNSAwIG9iagotPDwgCi0vVGl0bGUgKEEgbWF0aGVtYXRpY2FsIGZ1bmN0aW9uIHBsb3R0ZXIpCi0vRGVzdCBbIDE1ODYgMCBSIC9YWVogbnVsbCA1NTYgbnVsbCBdIAotL1BhcmVudCAzMzAwIDAgUiAKLS9QcmV2IDMzMDQgMCBSIAotL05leHQgMzMwNiAwIFIgCi0+PiAKLWVuZG9iagotMzMwNiAwIG9iagotPDwgCi0vVGl0bGUgKFBsb3R0aW5nIGFuIHVuc3RydWN0dXJlZCBtZXNoKQotL0Rlc3QgWyAxNTkyIDAgUiAvWFlaIG51bGwgNTQ4IG51bGwgXSAKLS9QYXJlbnQgMzMwMCAwIFIgCi0vUHJldiAzMzA1IDAgUiAKLS9OZXh0IDMzMDcgMCBSIAotPj4gCi1lbmRvYmoKLTMzMDcgMCBvYmoKLTw8IAotL1RpdGxlIChGcm9tIEMgdG8gU1dJRyB0byBQeXRob24pCi0vRGVzdCBbIDE2MDkgMCBSIC9YWVogbnVsbCA3NDMgbnVsbCBdIAotL1BhcmVudCAzMzAwIDAgUiAKLS9QcmV2IDMzMDYgMCBSIAotPj4gCi1lbmRvYmoKLTMzMDggMCBvYmoKLTw8IAotL1RpdGxlIChQdXR0aW5nIGl0IGFsbCB0b2dldGhlcikKLS9EZXN0IFsgMTYwOSAwIFIgL1hZWiBudWxsIDU5MCBudWxsIF0gCi0vUGFyZW50IDMyNjQgMCBSIAotL1ByZXYgMzMwMCAwIFIgCi0vTmV4dCAzMzE0IDAgUiAKLS9GaXJzdCAzMzA5IDAgUiAKLS9MYXN0IDMzMTMgMCBSIAotL0NvdW50IC01IAotPj4gCi1lbmRvYmoKLTMzMDkgMCBvYmoKLTw8IAotL1RpdGxlIChNZXJnaW5nIG1vZHVsZXMpCi0vRGVzdCBbIDE2MDkgMCBSIC9YWVogbnVsbCA1MTAgbnVsbCBdIAotL1BhcmVudCAzMzA4IDAgUiAKLS9OZXh0IDMzMTAgMCBSIAotPj4gCi1lbmRvYmoKLTMzMTAgMCBvYmoKLTw8IAotL1RpdGxlIChVc2luZyBkeW5hbWljIGxvYWRpbmcpCi0vRGVzdCBbIDE2MDkgMCBSIC9YWVogbnVsbCAzNDEgbnVsbCBdIAotL1BhcmVudCAzMzA4IDAgUiAKLS9QcmV2IDMzMDkgMCBSIAotL05leHQgMzMxMSAwIFIgCi0+PiAKLWVuZG9iagotMzMxMSAwIG9iagotPDwgCi0vVGl0bGUgKFVzZSBzdGF0aWMgbGlua2luZykKLS9EZXN0IFsgMTYxNiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMzMDggMCBSIAotL1ByZXYgMzMxMCAwIFIgCi0vTmV4dCAzMzEyIDAgUiAKLT4+IAotZW5kb2JqCi0zMzEyIDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgbGFyZ2UgbXVsdGktbW9kdWxlIHN5c3RlbXMpCi0vRGVzdCBbIDE2MTYgMCBSIC9YWVogbnVsbCA2NjkgbnVsbCBdIAotL1BhcmVudCAzMzA4IDAgUiAKLS9QcmV2IDMzMTEgMCBSIAotL05leHQgMzMxMyAwIFIgCi0+PiAKLWVuZG9iagotMzMxMyAwIG9iagotPDwgCi0vVGl0bGUgKEEgY29tcGxldGUgYXBwbGljYXRpb24pCi0vRGVzdCBbIDE2MTYgMCBSIC9YWVogbnVsbCA0MTAgbnVsbCBdIAotL1BhcmVudCAzMzA4IDAgUiAKLS9QcmV2IDMzMTIgMCBSIAotPj4gCi1lbmRvYmoKLTMzMTQgMCBvYmoKLTw8IAotL1RpdGxlIChFeGNlcHRpb24gaGFuZGxpbmcpCi0vRGVzdCBbIDE2MjcgMCBSIC9YWVogbnVsbCA2MjcgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMzMDggMCBSIAotL05leHQgMzMxNSAwIFIgCi0+PiAKLWVuZG9iagotMzMxNSAwIG9iagotPDwgCi0vVGl0bGUgKFJlbWFwcGluZyBDIGRhdGF0eXBlcyB3aXRoIHR5cGVtYXBzKQotL0Rlc3QgWyAxNjQ3IDAgUiAvWFlaIG51bGwgNjIwIG51bGwgXSAKLS9QYXJlbnQgMzI2NCAwIFIgCi0vUHJldiAzMzE0IDAgUiAKLS9OZXh0IDMzMjggMCBSIAotL0ZpcnN0IDMzMTYgMCBSIAotL0xhc3QgMzMyNyAwIFIgCi0vQ291bnQgLTEyIAotPj4gCi1lbmRvYmoKLTMzMTYgMCBvYmoKLTw8IAotL1RpdGxlIChXaGF0IGlzIGEgdHlwZW1hcD8pCi0vRGVzdCBbIDE2NDcgMCBSIC9YWVogbnVsbCA1MjcgbnVsbCBdIAotL1BhcmVudCAzMzE1IDAgUiAKLS9OZXh0IDMzMTcgMCBSIAotPj4gCi1lbmRvYmoKLTMzMTcgMCBvYmoKLTw8IAotL1RpdGxlIChQeXRob24gdHlwZW1hcHMpCi0vRGVzdCBbIDE2NTQgMCBSIC9YWVogbnVsbCA4MDAgbnVsbCBdIAotL1BhcmVudCAzMzE1IDAgUiAKLS9QcmV2IDMzMTYgMCBSIAotL05leHQgMzMxOCAwIFIgCi0+PiAKLWVuZG9iagotMzMxOCAwIG9iagotPDwgCi0vVGl0bGUgKFR5cGVtYXAgdmFyaWFibGVzKQotL0Rlc3QgWyAxNjU0IDAgUiAvWFlaIG51bGwgNjEyIG51bGwgXSAKLS9QYXJlbnQgMzMxNSAwIFIgCi0vUHJldiAzMzE3IDAgUiAKLS9OZXh0IDMzMTkgMCBSIAotPj4gCi1lbmRvYmoKLTMzMTkgMCBvYmoKLTw8IAotL1RpdGxlIChOYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbikKLS9EZXN0IFsgMTY1NCAwIFIgL1hZWiBudWxsIDQ4OSBudWxsIF0gCi0vUGFyZW50IDMzMTUgMCBSIAotL1ByZXYgMzMxOCAwIFIgCi0vTmV4dCAzMzIwIDAgUiAKLT4+IAotZW5kb2JqCi0zMzIwIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29udmVydGluZyBjaGFyICoqIHRvIGEgUHl0aG9uIGxpc3QpCi0vRGVzdCBbIDE2NTkgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMzE1IDAgUiAKLS9QcmV2IDMzMTkgMCBSIAotL05leHQgMzMyMSAwIFIgCi0+PiAKLWVuZG9iagotMzMyMSAwIG9iagotPDwgCi0vVGl0bGUgKENvbnZlcnRpbmcgYSBQeXRob24gZmlsZSBvYmplY3QgdG8gYSBGSUxFICopCi0vRGVzdCBbIDE2NjUgMCBSIC9YWVogbnVsbCA1NjcgbnVsbCBdIAotL1BhcmVudCAzMzE1IDAgUiAKLS9QcmV2IDMzMjAgMCBSIAotL05leHQgMzMyMiAwIFIgCi0+PiAKLWVuZG9iagotMzMyMiAwIG9iagotPDwgCi0vVGl0bGUgKFVzaW5nIHR5cGVtYXBzIHRvIHJldHVybiBhcmd1bWVudHMpCi0vRGVzdCBbIDE2NzIgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMzE1IDAgUiAKLS9QcmV2IDMzMjEgMCBSIAotL05leHQgMzMyMyAwIFIgCi0+PiAKLWVuZG9iagotMzMyMyAwIG9iagotPDwgCi0vVGl0bGUgKE1hcHBpbmcgUHl0aG9uIHR1cGxlcyBpbnRvIHNtYWxsIGFycmF5cykKLS9EZXN0IFsgMTY3MiAwIFIgL1hZWiBudWxsIDI2MSBudWxsIF0gCi0vUGFyZW50IDMzMTUgMCBSIAotL1ByZXYgMzMyMiAwIFIgCi0vTmV4dCAzMzI0IDAgUiAKLT4+IAotZW5kb2JqCi0zMzI0IDAgb2JqCi08PCAKLS9UaXRsZSAoQWNjZXNzaW5nIGFycmF5IHN0cnVjdHVyZSBtZW1iZXJzKQotL0Rlc3QgWyAxNjc5IDAgUiAvWFlaIG51bGwgNTM3IG51bGwgXSAKLS9QYXJlbnQgMzMxNSAwIFIgCi0vUHJldiAzMzIzIDAgUiAKLS9OZXh0IDMzMjUgMCBSIAotPj4gCi1lbmRvYmoKLTMzMjUgMCBvYmoKLTw8IAotL1RpdGxlIChVc2VmdWwgRnVuY3Rpb25zKQotL0Rlc3QgWyAxNjg1IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzMxNSAwIFIgCi0vUHJldiAzMzI0IDAgUiAKLS9OZXh0IDMzMjYgMCBSIAotPj4gCi1lbmRvYmoKLTMzMjYgMCBvYmoKLTw8IAotL1RpdGxlIChTdGFuZGFyZCB0eXBlbWFwcykKLS9EZXN0IFsgMTY5NCAwIFIgL1hZWiBudWxsIDQxMiBudWxsIF0gCi0vUGFyZW50IDMzMTUgMCBSIAotL1ByZXYgMzMyNSAwIFIgCi0vTmV4dCAzMzI3IDAgUiAKLT4+IAotZW5kb2JqCi0zMzI3IDAgb2JqCi08PCAKLS9UaXRsZSAoUG9pbnRlciBoYW5kbGluZykKLS9EZXN0IFsgMTcwMiAwIFIgL1hZWiBudWxsIDI3MCBudWxsIF0gCi0vUGFyZW50IDMzMTUgMCBSIAotL1ByZXYgMzMyNiAwIFIgCi0+PiAKLWVuZG9iagotMzMyOCAwIG9iagotPDwgCi0vVGl0bGUgKEltcGxlbWVudGluZyBDIGNhbGxiYWNrIGZ1bmN0aW9ucyBpbiBQeXRob24pCi0vRGVzdCBbIDE3MDggMCBSIC9YWVogbnVsbCAzMjMgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMzMTUgMCBSIAotL05leHQgMzMyOSAwIFIgCi0+PiAKLWVuZG9iagotMzMyOSAwIG9iagotPDwgCi0vVGl0bGUgKE90aGVyIG9kZHMgYW5kIGVuZHMpCi0vRGVzdCBbIDE3MzEgMCBSIC9YWVogbnVsbCA1NjAgbnVsbCBdIAotL1BhcmVudCAzMjY0IDAgUiAKLS9QcmV2IDMzMjggMCBSIAotL05leHQgMzMzMSAwIFIgCi0vRmlyc3QgMzMzMCAwIFIgCi0vTGFzdCAzMzMwIDAgUiAKLS9Db3VudCAtMSAKLT4+IAotZW5kb2JqCi0zMzMwIDAgb2JqCi08PCAKLS9UaXRsZSAoQWRkaW5nIG5hdGl2ZSBQeXRob24gZnVuY3Rpb25zIHRvIGEgU1dJRyBtb2R1bGUpCi0vRGVzdCBbIDE3MzEgMCBSIC9YWVogbnVsbCA1MjQgbnVsbCBdIAotL1BhcmVudCAzMzI5IDAgUiAKLT4+IAotZW5kb2JqCi0zMzMxIDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIGdvcnkgZGV0YWlscyBvZiBzaGFkb3cgY2xhc3NlcykKLS9EZXN0IFsgMTc0MSAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMyNjQgMCBSIAotL1ByZXYgMzMyOSAwIFIgCi0vRmlyc3QgMzMzMiAwIFIgCi0vTGFzdCAzMzQzIDAgUiAKLS9Db3VudCAtMTIgCi0+PiAKLWVuZG9iagotMzMzMiAwIG9iagotPDwgCi0vVGl0bGUgKEEgc2ltcGxlIHNoYWRvdyBjbGFzcykKLS9EZXN0IFsgMTc0MSAwIFIgL1hZWiBudWxsIDc5NyBudWxsIF0gCi0vUGFyZW50IDMzMzEgMCBSIAotL05leHQgMzMzMyAwIFIgCi0+PiAKLWVuZG9iagotMzMzMyAwIG9iagotPDwgCi0vVGl0bGUgKE1vZHVsZSBuYW1lcykKLS9EZXN0IFsgMTc0OCAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMzMzEgMCBSIAotL1ByZXYgMzMzMiAwIFIgCi0vTmV4dCAzMzM0IDAgUiAKLT4+IAotZW5kb2JqCi0zMzM0IDAgb2JqCi08PCAKLS9UaXRsZSAoVHdvIGNsYXNzZXMpCi0vRGVzdCBbIDE3NDggMCBSIC9YWVogbnVsbCA3ODAgbnVsbCBdIAotL1BhcmVudCAzMzMxIDAgUiAKLS9QcmV2IDMzMzMgMCBSIAotL05leHQgMzMzNSAwIFIgCi0+PiAKLWVuZG9iagotMzMzNSAwIG9iagotPDwgCi0vVGl0bGUgKFRoZSB0aGlzIHBvaW50ZXIpCi0vRGVzdCBbIDE3NDggMCBSIC9YWVogbnVsbCA0MTkgbnVsbCBdIAotL1BhcmVudCAzMzMxIDAgUiAKLS9QcmV2IDMzMzQgMCBSIAotL05leHQgMzMzNiAwIFIgCi0+PiAKLWVuZG9iagotMzMzNiAwIG9iagotPDwgCi0vVGl0bGUgKE9iamVjdCBvd25lcnNoaXApCi0vRGVzdCBbIDE3NDggMCBSIC9YWVogbnVsbCAyNjUgbnVsbCBdIAotL1BhcmVudCAzMzMxIDAgUiAKLS9QcmV2IDMzMzUgMCBSIAotL05leHQgMzMzNyAwIFIgCi0+PiAKLWVuZG9iagotMzMzNyAwIG9iagotPDwgCi0vVGl0bGUgKENvbnN0cnVjdG9ycyBhbmQgRGVzdHJ1Y3RvcnMpCi0vRGVzdCBbIDE3NTYgMCBSIC9YWVogbnVsbCA2OTQgbnVsbCBdIAotL1BhcmVudCAzMzMxIDAgUiAKLS9QcmV2IDMzMzYgMCBSIAotL05leHQgMzMzOCAwIFIgCi0+PiAKLWVuZG9iagotMzMzOCAwIG9iagotPDwgCi0vVGl0bGUgKE1lbWJlciBkYXRhKQotL0Rlc3QgWyAxNzU2IDAgUiAvWFlaIG51bGwgNjEwIG51bGwgXSAKLS9QYXJlbnQgMzMzMSAwIFIgCi0vUHJldiAzMzM3IDAgUiAKLS9OZXh0IDMzMzkgMCBSIAotPj4gCi1lbmRvYmoKLTMzMzkgMCBvYmoKLTw8IAotL1RpdGxlIChQcmludGluZykKLS9EZXN0IFsgMTc1NiAwIFIgL1hZWiBudWxsIDU1MiBudWxsIF0gCi0vUGFyZW50IDMzMzEgMCBSIAotL1ByZXYgMzMzOCAwIFIgCi0vTmV4dCAzMzQwIDAgUiAKLT4+IAotZW5kb2JqCi0zMzQwIDAgb2JqCi08PCAKLS9UaXRsZSAoU2hhZG93IEZ1bmN0aW9ucykKLS9EZXN0IFsgMTc1NiAwIFIgL1hZWiBudWxsIDQ5NCBudWxsIF0gCi0vUGFyZW50IDMzMzEgMCBSIAotL1ByZXYgMzMzOSAwIFIgCi0vTmV4dCAzMzQxIDAgUiAKLT4+IAotZW5kb2JqCi0zMzQxIDAgb2JqCi08PCAKLS9UaXRsZSAoTmVzdGVkIG9iamVjdHMpCi0vRGVzdCBbIDE3NjMgMCBSIC9YWVogbnVsbCA3MjQgbnVsbCBdIAotL1BhcmVudCAzMzMxIDAgUiAKLS9QcmV2IDMzNDAgMCBSIAotL05leHQgMzM0MiAwIFIgCi0+PiAKLWVuZG9iagotMzM0MiAwIG9iagotPDwgCi0vVGl0bGUgKEluaGVyaXRhbmNlIGFuZCBzaGFkb3cgY2xhc3NlcykKLS9EZXN0IFsgMTc3NCAwIFIgL1hZWiBudWxsIDgxMSBudWxsIF0gCi0vUGFyZW50IDMzMzEgMCBSIAotL1ByZXYgMzM0MSAwIFIgCi0vTmV4dCAzMzQzIDAgUiAKLT4+IAotZW5kb2JqCi0zMzQzIDAgb2JqCi08PCAKLS9UaXRsZSAoUGVyZm9ybWFuY2UgY29uY2VybnMgYW5kIGhpbnRzKQotL0Rlc3QgWyAxNzc0IDAgUiAvWFlaIG51bGwgNjc1IG51bGwgXSAKLS9QYXJlbnQgMzMzMSAwIFIgCi0vUHJldiAzMzQyIDAgUiAKLT4+IAotZW5kb2JqCi0zMzQ0IDAgb2JqCi08PCAKLS9UaXRsZSAoU1dJRyBhbmQgVGNsKQotL0Rlc3QgWyAxNzg4IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzQyNSAwIFIgCi0vUHJldiAzMjY0IDAgUiAKLS9OZXh0IDM0MTcgMCBSIAotL0ZpcnN0IDMzNDUgMCBSIAotL0xhc3QgMzQxNiAwIFIgCi0vQ291bnQgLTE1IAotPj4gCi1lbmRvYmoKLTMzNDUgMCBvYmoKLTw8IAotL1RpdGxlIChQcmVsaW1pbmFyaWVzKQotL0Rlc3QgWyAxNzg4IDAgUiAvWFlaIG51bGwgNjc0IG51bGwgXSAKLS9QYXJlbnQgMzM0NCAwIFIgCi0vTmV4dCAzMzU1IDAgUiAKLS9GaXJzdCAzMzQ2IDAgUiAKLS9MYXN0IDMzNTQgMCBSIAotL0NvdW50IC05IAotPj4gCi1lbmRvYmoKLTMzNDYgMCBvYmoKLTw8IAotL1RpdGxlIChSdW5uaW5nIFNXSUcpCi0vRGVzdCBbIDE3ODggMCBSIC9YWVogbnVsbCA1OTQgbnVsbCBdIAotL1BhcmVudCAzMzQ1IDAgUiAKLS9OZXh0IDMzNDcgMCBSIAotPj4gCi1lbmRvYmoKLTMzNDcgMCBvYmoKLTw8IAotL1RpdGxlIChBZGRpdGlvbmFsIFNXSUcgb3B0aW9ucykKLS9EZXN0IFsgMTc4OCAwIFIgL1hZWiBudWxsIDQ0OSBudWxsIF0gCi0vUGFyZW50IDMzNDUgMCBSIAotL1ByZXYgMzM0NiAwIFIgCi0vTmV4dCAzMzQ4IDAgUiAKLT4+IAotZW5kb2JqCi0zMzQ4IDAgb2JqCi08PCAKLS9UaXRsZSAoR2V0dGluZyB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzIGFuZCBsaWJyYXJpZXMpCi0vRGVzdCBbIDE3ODggMCBSIC9YWVogbnVsbCAyNjYgbnVsbCBdIAotL1BhcmVudCAzMzQ1IDAgUiAKLS9QcmV2IDMzNDcgMCBSIAotL05leHQgMzM0OSAwIFIgCi0+PiAKLWVuZG9iagotMzM0OSAwIG9iagotPDwgCi0vVGl0bGUgKENvbXBpbGluZyBhIGR5bmFtaWMgbW9kdWxlIFwoVW5peFwpKQotL0Rlc3QgWyAxODA2IDAgUiAvWFlaIG51bGwgNjE3IG51bGwgXSAKLS9QYXJlbnQgMzM0NSAwIFIgCi0vUHJldiAzMzQ4IDAgUiAKLS9OZXh0IDMzNTAgMCBSIAotPj4gCi1lbmRvYmoKLTMzNTAgMCBvYmoKLTw8IAotL1RpdGxlIChVc2luZyBhIGR5bmFtaWMgbW9kdWxlKQotL0Rlc3QgWyAxODA2IDAgUiAvWFlaIG51bGwgNDYzIG51bGwgXSAKLS9QYXJlbnQgMzM0NSAwIFIgCi0vUHJldiAzMzQ5IDAgUiAKLS9OZXh0IDMzNTEgMCBSIAotPj4gCi1lbmRvYmoKLTMzNTEgMCBvYmoKLTw8IAotL1RpdGxlIChTdGF0aWMgbGlua2luZykKLS9EZXN0IFsgMTgwNiAwIFIgL1hZWiBudWxsIDM1NyBudWxsIF0gCi0vUGFyZW50IDMzNDUgMCBSIAotL1ByZXYgMzM1MCAwIFIgCi0vTmV4dCAzMzUyIDAgUiAKLT4+IAotZW5kb2JqCi0zMzUyIDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tcGlsYXRpb24gcHJvYmxlbXMpCi0vRGVzdCBbIDE4MTUgMCBSIC9YWVogbnVsbCA0NDIgbnVsbCBdIAotL1BhcmVudCAzMzQ1IDAgUiAKLS9QcmV2IDMzNTEgMCBSIAotL05leHQgMzM1MyAwIFIgCi0+PiAKLWVuZG9iagotMzM1MyAwIG9iagotPDwgCi0vVGl0bGUgKFNldHRpbmcgYSBwYWNrYWdlIHByZWZpeCkKLS9EZXN0IFsgMTgxNSAwIFIgL1hZWiBudWxsIDMzMiBudWxsIF0gCi0vUGFyZW50IDMzNDUgMCBSIAotL1ByZXYgMzM1MiAwIFIgCi0vTmV4dCAzMzU0IDAgUiAKLT4+IAotZW5kb2JqCi0zMzU0IDAgb2JqCi08PCAKLS9UaXRsZSAoVXNpbmcgW2luY3IgVGNsXSBuYW1lc3BhY2VzKQotL0Rlc3QgWyAxODI2IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzM0NSAwIFIgCi0vUHJldiAzMzUzIDAgUiAKLT4+IAotZW5kb2JqCi0zMzU1IDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgVGNsL1RrIEV4dGVuc2lvbnMgdW5kZXIgV2luZG93cyA5NS9OVCkKLS9EZXN0IFsgMTgyNiAwIFIgL1hZWiBudWxsIDY4OSBudWxsIF0gCi0vUGFyZW50IDMzNDQgMCBSIAotL1ByZXYgMzM0NSAwIFIgCi0vTmV4dCAzMzU4IDAgUiAKLS9GaXJzdCAzMzU2IDAgUiAKLS9MYXN0IDMzNTcgMCBSIAotL0NvdW50IC0yIAotPj4gCi1lbmRvYmoKLTMzNTYgMCBvYmoKLTw8IAotL1RpdGxlIChSdW5uaW5nIFNXSUcgZnJvbSBEZXZlbG9wZXIgU3R1ZGlvKQotL0Rlc3QgWyAxODI2IDAgUiAvWFlaIG51bGwgNTk2IG51bGwgXSAKLS9QYXJlbnQgMzM1NSAwIFIgCi0vTmV4dCAzMzU3IDAgUiAKLT4+IAotZW5kb2JqCi0zMzU3IDAgb2JqCi08PCAKLS9UaXRsZSAoVXNpbmcgTk1BS0UpCi0vRGVzdCBbIDE4NDAgMCBSIC9YWVogbnVsbCA3OTUgbnVsbCBdIAotL1BhcmVudCAzMzU1IDAgUiAKLS9QcmV2IDMzNTYgMCBSIAotPj4gCi1lbmRvYmoKLTMzNTggMCBvYmoKLTw8IAotL1RpdGxlIChCYXNpYyBUY2wgSW50ZXJmYWNlKQotL0Rlc3QgWyAxODQ3IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzM0NCAwIFIgCi0vUHJldiAzMzU1IDAgUiAKLS9OZXh0IDMzNjUgMCBSIAotL0ZpcnN0IDMzNTkgMCBSIAotL0xhc3QgMzM2NCAwIFIgCi0vQ291bnQgLTYgCi0+PiAKLWVuZG9iagotMzM1OSAwIG9iagotPDwgCi0vVGl0bGUgKEZ1bmN0aW9ucykKLS9EZXN0IFsgMTg0NyAwIFIgL1hZWiBudWxsIDgyOCBudWxsIF0gCi0vUGFyZW50IDMzNTggMCBSIAotL05leHQgMzM2MCAwIFIgCi0+PiAKLWVuZG9iagotMzM2MCAwIG9iagotPDwgCi0vVGl0bGUgKEdsb2JhbCB2YXJpYWJsZXMpCi0vRGVzdCBbIDE4NDcgMCBSIC9YWVogbnVsbCA2MTkgbnVsbCBdIAotL1BhcmVudCAzMzU4IDAgUiAKLS9QcmV2IDMzNTkgMCBSIAotL05leHQgMzM2MSAwIFIgCi0+PiAKLWVuZG9iagotMzM2MSAwIG9iagotPDwgCi0vVGl0bGUgKENvbnN0YW50cykKLS9EZXN0IFsgMTg1NiAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDMzNTggMCBSIAotL1ByZXYgMzM2MCAwIFIgCi0vTmV4dCAzMzYyIDAgUiAKLT4+IAotZW5kb2JqCi0zMzYyIDAgb2JqCi08PCAKLS9UaXRsZSAoUG9pbnRlcnMpCi0vRGVzdCBbIDE4NTYgMCBSIC9YWVogbnVsbCA3ODAgbnVsbCBdIAotL1BhcmVudCAzMzU4IDAgUiAKLS9QcmV2IDMzNjEgMCBSIAotL05leHQgMzM2MyAwIFIgCi0+PiAKLWVuZG9iagotMzM2MyAwIG9iagotPDwgCi0vVGl0bGUgKFN0cnVjdHVyZXMpCi0vRGVzdCBbIDE4NTYgMCBSIC9YWVogbnVsbCA2MDAgbnVsbCBdIAotL1BhcmVudCAzMzU4IDAgUiAKLS9QcmV2IDMzNjIgMCBSIAotL05leHQgMzM2NCAwIFIgCi0+PiAKLWVuZG9iagotMzM2NCAwIG9iagotPDwgCi0vVGl0bGUgKEMrKyBDbGFzc2VzKQotL0Rlc3QgWyAxODU2IDAgUiAvWFlaIG51bGwgMjg4IG51bGwgXSAKLS9QYXJlbnQgMzM1OCAwIFIgCi0vUHJldiAzMzYzIDAgUiAKLT4+IAotZW5kb2JqCi0zMzY1IDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIG9iamVjdCBvcmllbnRlZCBpbnRlcmZhY2UpCi0vRGVzdCBbIDE4NjcgMCBSIC9YWVogbnVsbCAyOTQgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzNTggMCBSIAotL05leHQgMzM3MyAwIFIgCi0vRmlyc3QgMzM2NiAwIFIgCi0vTGFzdCAzMzcyIDAgUiAKLS9Db3VudCAtNyAKLT4+IAotZW5kb2JqCi0zMzY2IDAgb2JqCi08PCAKLS9UaXRsZSAoQ3JlYXRpbmcgbmV3IG9iamVjdHMpCi0vRGVzdCBbIDE4NzQgMCBSIC9YWVogbnVsbCA2OTIgbnVsbCBdIAotL1BhcmVudCAzMzY1IDAgUiAKLS9OZXh0IDMzNjcgMCBSIAotPj4gCi1lbmRvYmoKLTMzNjcgMCBvYmoKLTw8IAotL1RpdGxlIChJbnZva2luZyBtZW1iZXIgZnVuY3Rpb25zKQotL0Rlc3QgWyAxODc0IDAgUiAvWFlaIG51bGwgMzQ5IG51bGwgXSAKLS9QYXJlbnQgMzM2NSAwIFIgCi0vUHJldiAzMzY2IDAgUiAKLS9OZXh0IDMzNjggMCBSIAotPj4gCi1lbmRvYmoKLTMzNjggMCBvYmoKLTw8IAotL1RpdGxlIChEZWxldGluZyBvYmplY3RzKQotL0Rlc3QgWyAxODgxIDAgUiAvWFlaIG51bGwgNzQ3IG51bGwgXSAKLS9QYXJlbnQgMzM2NSAwIFIgCi0vUHJldiAzMzY3IDAgUiAKLS9OZXh0IDMzNjkgMCBSIAotPj4gCi1lbmRvYmoKLTMzNjkgMCBvYmoKLTw8IAotL1RpdGxlIChBY2Nlc3NpbmcgbWVtYmVyIGRhdGEpCi0vRGVzdCBbIDE4ODEgMCBSIC9YWVogbnVsbCA2MDIgbnVsbCBdIAotL1BhcmVudCAzMzY1IDAgUiAKLS9QcmV2IDMzNjggMCBSIAotL05leHQgMzM3MCAwIFIgCi0+PiAKLWVuZG9iagotMzM3MCAwIG9iagotPDwgCi0vVGl0bGUgKENoYW5naW5nIG1lbWJlciBkYXRhKQotL0Rlc3QgWyAxODgxIDAgUiAvWFlaIG51bGwgMzc2IG51bGwgXSAKLS9QYXJlbnQgMzM2NSAwIFIgCi0vUHJldiAzMzY5IDAgUiAKLS9OZXh0IDMzNzEgMCBSIAotPj4gCi1lbmRvYmoKLTMzNzEgMCBvYmoKLTw8IAotL1RpdGxlIChSZWxhdGlvbnNoaXAgd2l0aCBwb2ludGVycykKLS9EZXN0IFsgMTg5MCAwIFIgL1hZWiBudWxsIDgxNSBudWxsIF0gCi0vUGFyZW50IDMzNjUgMCBSIAotL1ByZXYgMzM3MCAwIFIgCi0vTmV4dCAzMzcyIDAgUiAKLT4+IAotZW5kb2JqCi0zMzcyIDAgb2JqCi08PCAKLS9UaXRsZSAoUGVyZm9ybWFuY2UgY29uY2VybnMgYW5kIGRpc2FibGluZyB0aGUgb2JqZWN0IG9yaWUuLi4pCi0vRGVzdCBbIDE4OTAgMCBSIC9YWVogbnVsbCAzNDggbnVsbCBdIAotL1BhcmVudCAzMzY1IDAgUiAKLS9QcmV2IDMzNzEgMCBSIAotPj4gCi1lbmRvYmoKLTMzNzMgMCBvYmoKLTw8IAotL1RpdGxlIChBYm91dCB0aGUgZXhhbXBsZXMpCi0vRGVzdCBbIDE4OTkgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzNjUgMCBSIAotL05leHQgMzM3NCAwIFIgCi0+PiAKLWVuZG9iagotMzM3NCAwIG9iagotPDwgCi0vVGl0bGUgKEJpbmFyeSB0cmVlcyBpbiBUY2wpCi0vRGVzdCBbIDE4OTkgMCBSIC9YWVogbnVsbCA2NjMgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzNzMgMCBSIAotL05leHQgMzM4MCAwIFIgCi0vRmlyc3QgMzM3NSAwIFIgCi0vTGFzdCAzMzc5IDAgUiAKLS9Db3VudCAtNSAKLT4+IAotZW5kb2JqCi0zMzc1IDAgb2JqCi08PCAKLS9UaXRsZSAoQyBmaWxlcykKLS9EZXN0IFsgMTg5OSAwIFIgL1hZWiBudWxsIDU5NiBudWxsIF0gCi0vUGFyZW50IDMzNzQgMCBSIAotL05leHQgMzM3NiAwIFIgCi0+PiAKLWVuZG9iagotMzM3NiAwIG9iagotPDwgCi0vVGl0bGUgKE1ha2luZyBhIHF1aWNrIGEgZGlydHkgVGNsIG1vZHVsZSkKLS9EZXN0IFsgMTkwNyAwIFIgL1hZWiBudWxsIDcwNyBudWxsIF0gCi0vUGFyZW50IDMzNzQgMCBSIAotL1ByZXYgMzM3NSAwIFIgCi0vTmV4dCAzMzc3IDAgUiAKLT4+IAotZW5kb2JqCi0zMzc3IDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgYSBDIGRhdGEgc3RydWN0dXJlIGluIFRjbCkKLS9EZXN0IFsgMTkwNyAwIFIgL1hZWiBudWxsIDM2NCBudWxsIF0gCi0vUGFyZW50IDMzNzQgMCBSIAotL1ByZXYgMzM3NiAwIFIgCi0vTmV4dCAzMzc4IDAgUiAKLT4+IAotZW5kb2JqCi0zMzc4IDAgb2JqCi08PCAKLS9UaXRsZSAoSW1wbGVtZW50aW5nIG1ldGhvZHMgaW4gQykKLS9EZXN0IFsgMTkxOCAwIFIgL1hZWiBudWxsIDc4NCBudWxsIF0gCi0vUGFyZW50IDMzNzQgMCBSIAotL1ByZXYgMzM3NyAwIFIgCi0vTmV4dCAzMzc5IDAgUiAKLT4+IAotZW5kb2JqCi0zMzc5IDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgYW4gb2JqZWN0IG9yaWVudGVkIEMgaW50ZXJmYWNlKQotL0Rlc3QgWyAxOTE4IDAgUiAvWFlaIG51bGwgNDA2IG51bGwgXSAKLS9QYXJlbnQgMzM3NCAwIFIgCi0vUHJldiAzMzc4IDAgUiAKLT4+IAotZW5kb2JqCi0zMzgwIDAgb2JqCi08PCAKLS9UaXRsZSAoQnVpbGRpbmcgQy9DKysgZGF0YSBzdHJ1Y3R1cmVzIHdpdGggVGspCi0vRGVzdCBbIDE5MjkgMCBSIC9YWVogbnVsbCA3NjMgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzNzQgMCBSIAotL05leHQgMzM4MSAwIFIgCi0+PiAKLWVuZG9iagotMzM4MSAwIG9iagotPDwgCi0vVGl0bGUgKEFjY2Vzc2luZyBhcnJheXMpCi0vRGVzdCBbIDE5NDQgMCBSIC9YWVogbnVsbCA3MTcgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzODAgMCBSIAotL05leHQgMzM4MiAwIFIgCi0+PiAKLWVuZG9iagotMzM4MiAwIG9iagotPDwgCi0vVGl0bGUgKEJ1aWxkaW5nIGEgc2ltcGxlIE9wZW5HTCBtb2R1bGUpCi0vRGVzdCBbIDE5NTIgMCBSIC9YWVogbnVsbCA0NjMgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzODEgMCBSIAotL05leHQgMzM5MSAwIFIgCi0vRmlyc3QgMzM4MyAwIFIgCi0vTGFzdCAzMzkwIDAgUiAKLS9Db3VudCAtOCAKLT4+IAotZW5kb2JqCi0zMzgzIDAgb2JqCi08PCAKLS9UaXRsZSAoUmVxdWlyZWQgZmlsZXMpCi0vRGVzdCBbIDE5NTIgMCBSIC9YWVogbnVsbCAzODMgbnVsbCBdIAotL1BhcmVudCAzMzgyIDAgUiAKLS9OZXh0IDMzODQgMCBSIAotPj4gCi1lbmRvYmoKLTMzODQgMCBvYmoKLTw8IAotL1RpdGxlIChXcmFwcGluZyBnbC5oKQotL0Rlc3QgWyAxOTUyIDAgUiAvWFlaIG51bGwgMjk5IG51bGwgXSAKLS9QYXJlbnQgMzM4MiAwIFIgCi0vUHJldiAzMzgzIDAgUiAKLS9OZXh0IDMzODUgMCBSIAotPj4gCi1lbmRvYmoKLTMzODUgMCBvYmoKLTw8IAotL1RpdGxlIChXcmFwcGluZyBnbHUuaCkKLS9EZXN0IFsgMTk2MCAwIFIgL1hZWiBudWxsIDUyMyBudWxsIF0gCi0vUGFyZW50IDMzODIgMCBSIAotL1ByZXYgMzM4NCAwIFIgCi0vTmV4dCAzMzg2IDAgUiAKLT4+IAotZW5kb2JqCi0zMzg2IDAgb2JqCi08PCAKLS9UaXRsZSAoV3JhcHBpbmcgdGhlIGF1eCBsaWJyYXJ5KQotL0Rlc3QgWyAxOTYwIDAgUiAvWFlaIG51bGwgMjg0IG51bGwgXSAKLS9QYXJlbnQgMzM4MiAwIFIgCi0vUHJldiAzMzg1IDAgUiAKLS9OZXh0IDMzODcgMCBSIAotPj4gCi1lbmRvYmoKLTMzODcgMCBvYmoKLTw8IAotL1RpdGxlIChBIGZldyBoZWxwZXIgZnVuY3Rpb25zKQotL0Rlc3QgWyAxOTY1IDAgUiAvWFlaIG51bGwgNzczIG51bGwgXSAKLS9QYXJlbnQgMzM4MiAwIFIgCi0vUHJldiAzMzg2IDAgUiAKLS9OZXh0IDMzODggMCBSIAotPj4gCi1lbmRvYmoKLTMzODggMCBvYmoKLTw8IAotL1RpdGxlIChBbiBPcGVuR0wgcGFja2FnZSkKLS9EZXN0IFsgMTk2NSAwIFIgL1hZWiBudWxsIDUzNSBudWxsIF0gCi0vUGFyZW50IDMzODIgMCBSIAotL1ByZXYgMzM4NyAwIFIgCi0vTmV4dCAzMzg5IDAgUiAKLT4+IAotZW5kb2JqCi0zMzg5IDAgb2JqCi08PCAKLS9UaXRsZSAoVXNpbmcgdGhlIE9wZW5HTCBtb2R1bGUpCi0vRGVzdCBbIDE5NzAgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzMzgyIDAgUiAKLS9QcmV2IDMzODggMCBSIAotL05leHQgMzM5MCAwIFIgCi0+PiAKLWVuZG9iagotMzM5MCAwIG9iagotPDwgCi0vVGl0bGUgKFByb2JsZW1zIHdpdGggdGhlIE9wZW5HTCBpbnRlcmZhY2UpCi0vRGVzdCBbIDE5NzAgMCBSIC9YWVogbnVsbCAzNTggbnVsbCBdIAotL1BhcmVudCAzMzgyIDAgUiAKLS9QcmV2IDMzODkgMCBSIAotPj4gCi1lbmRvYmoKLTMzOTEgMCBvYmoKLTw8IAotL1RpdGxlIChFeGNlcHRpb24gaGFuZGxpbmcpCi0vRGVzdCBbIDE5NzcgMCBSIC9YWVogbnVsbCA3MzUgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDMzODIgMCBSIAotL05leHQgMzM5MiAwIFIgCi0+PiAKLWVuZG9iagotMzM5MiAwIG9iagotPDwgCi0vVGl0bGUgKFR5cGVtYXBzKQotL0Rlc3QgWyAxOTg2IDAgUiAvWFlaIG51bGwgNDgzIG51bGwgXSAKLS9QYXJlbnQgMzM0NCAwIFIgCi0vUHJldiAzMzkxIDAgUiAKLS9OZXh0IDM0MDQgMCBSIAotL0ZpcnN0IDMzOTMgMCBSIAotL0xhc3QgMzQwMyAwIFIgCi0vQ291bnQgLTExIAotPj4gCi1lbmRvYmoKLTMzOTMgMCBvYmoKLTw8IAotL1RpdGxlIChXaGF0IGlzIGEgdHlwZW1hcD8pCi0vRGVzdCBbIDE5ODYgMCBSIC9YWVogbnVsbCAzOTAgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9OZXh0IDMzOTQgMCBSIAotPj4gCi1lbmRvYmoKLTMzOTQgMCBvYmoKLTw8IAotL1RpdGxlIChUY2wgdHlwZW1hcHMpCi0vRGVzdCBbIDE5OTQgMCBSIC9YWVogbnVsbCA2NTAgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9QcmV2IDMzOTMgMCBSIAotL05leHQgMzM5NSAwIFIgCi0+PiAKLWVuZG9iagotMzM5NSAwIG9iagotPDwgCi0vVGl0bGUgKFR5cGVtYXAgdmFyaWFibGVzKQotL0Rlc3QgWyAxOTk0IDAgUiAvWFlaIG51bGwgNDg4IG51bGwgXSAKLS9QYXJlbnQgMzM5MiAwIFIgCi0vUHJldiAzMzk0IDAgUiAKLS9OZXh0IDMzOTYgMCBSIAotPj4gCi1lbmRvYmoKLTMzOTYgMCBvYmoKLTw8IAotL1RpdGxlIChOYW1lIGJhc2VkIHR5cGUgY29udmVyc2lvbikKLS9EZXN0IFsgMTk5NCAwIFIgL1hZWiBudWxsIDM2NSBudWxsIF0gCi0vUGFyZW50IDMzOTIgMCBSIAotL1ByZXYgMzM5NSAwIFIgCi0vTmV4dCAzMzk3IDAgUiAKLT4+IAotZW5kb2JqCi0zMzk3IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29udmVydGluZyBjaGFyICoqIHRvIGEgVGNsIGxpc3QpCi0vRGVzdCBbIDE5OTkgMCBSIC9YWVogbnVsbCA3NTkgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9QcmV2IDMzOTYgMCBSIAotL05leHQgMzM5OCAwIFIgCi0+PiAKLWVuZG9iagotMzM5OCAwIG9iagotPDwgCi0vVGl0bGUgKFJlbWFwcGluZyBjb25zdGFudHMpCi0vRGVzdCBbIDIwMDUgMCBSIC9YWVogbnVsbCA2MDUgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9QcmV2IDMzOTcgMCBSIAotL05leHQgMzM5OSAwIFIgCi0+PiAKLWVuZG9iagotMzM5OSAwIG9iagotPDwgCi0vVGl0bGUgKFJldHVybmluZyB2YWx1ZXMgaW4gYXJndW1lbnRzKQotL0Rlc3QgWyAyMDExIDAgUiAvWFlaIG51bGwgNTY5IG51bGwgXSAKLS9QYXJlbnQgMzM5MiAwIFIgCi0vUHJldiAzMzk4IDAgUiAKLS9OZXh0IDM0MDAgMCBSIAotPj4gCi1lbmRvYmoKLTM0MDAgMCBvYmoKLTw8IAotL1RpdGxlIChNYXBwaW5nIEMgc3RydWN0dXJlcyBpbnRvIFRjbCBMaXN0cykKLS9EZXN0IFsgMjAxNyAwIFIgL1hZWiBudWxsIDUyNCBudWxsIF0gCi0vUGFyZW50IDMzOTIgMCBSIAotL1ByZXYgMzM5OSAwIFIgCi0vTmV4dCAzNDAxIDAgUiAKLT4+IAotZW5kb2JqCi0zNDAxIDAgb2JqCi08PCAKLS9UaXRsZSAoVXNlZnVsIGZ1bmN0aW9ucykKLS9EZXN0IFsgMjAyMyAwIFIgL1hZWiBudWxsIDM1OSBudWxsIF0gCi0vUGFyZW50IDMzOTIgMCBSIAotL1ByZXYgMzQwMCAwIFIgCi0vTmV4dCAzNDAyIDAgUiAKLT4+IAotZW5kb2JqCi0zNDAyIDAgb2JqCi08PCAKLS9UaXRsZSAoU3RhbmRhcmQgdHlwZW1hcHMpCi0vRGVzdCBbIDIwNjAgMCBSIC9YWVogbnVsbCAzMDIgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9QcmV2IDM0MDEgMCBSIAotL05leHQgMzQwMyAwIFIgCi0+PiAKLWVuZG9iagotMzQwMyAwIG9iagotPDwgCi0vVGl0bGUgKFBvaW50ZXIgaGFuZGxpbmcpCi0vRGVzdCBbIDIwODIgMCBSIC9YWVogbnVsbCA0NzYgbnVsbCBdIAotL1BhcmVudCAzMzkyIDAgUiAKLS9QcmV2IDM0MDIgMCBSIAotPj4gCi1lbmRvYmoKLTM0MDQgMCBvYmoKLTw8IAotL1RpdGxlIChDb25maWd1cmF0aW9uIG1hbmFnZW1lbnQgd2l0aCBTV0lHKQotL0Rlc3QgWyAyMDg5IDAgUiAvWFlaIG51bGwgNDkzIG51bGwgXSAKLS9QYXJlbnQgMzM0NCAwIFIgCi0vUHJldiAzMzkyIDAgUiAKLS9OZXh0IDM0MTEgMCBSIAotL0ZpcnN0IDM0MDUgMCBSIAotL0xhc3QgMzQxMCAwIFIgCi0vQ291bnQgLTYgCi0+PiAKLWVuZG9iagotMzQwNSAwIG9iagotPDwgCi0vVGl0bGUgKFdyaXRpbmcgYSBtYWluIHByb2dyYW0gYW5kIFRjbF9BcHBJbml0XChcKSkKLS9EZXN0IFsgMjA5OCAwIFIgL1hZWiBudWxsIDg2NCBudWxsIF0gCi0vUGFyZW50IDM0MDQgMCBSIAotL05leHQgMzQwNiAwIFIgCi0+PiAKLWVuZG9iagotMzQwNiAwIG9iagotPDwgCi0vVGl0bGUgKENyZWF0aW5nIGEgbmV3IHBhY2thZ2UgaW5pdGlhbGl6YXRpb24gbGlicmFyeSkKLS9EZXN0IFsgMjEwNSAwIFIgL1hZWiBudWxsIDI4OSBudWxsIF0gCi0vUGFyZW50IDM0MDQgMCBSIAotL1ByZXYgMzQwNSAwIFIgCi0vTmV4dCAzNDA3IDAgUiAKLT4+IAotZW5kb2JqCi0zNDA3IDAgb2JqCi08PCAKLS9UaXRsZSAoQ29tYmluaW5nIFRjbC9UayBFeHRlbnNpb25zKQotL0Rlc3QgWyAyMTE4IDAgUiAvWFlaIG51bGwgODExIG51bGwgXSAKLS9QYXJlbnQgMzQwNCAwIFIgCi0vUHJldiAzNDA2IDAgUiAKLS9OZXh0IDM0MDggMCBSIAotPj4gCi1lbmRvYmoKLTM0MDggMCBvYmoKLTw8IAotL1RpdGxlIChMaW1pdGF0aW9ucyB0byB0aGlzIGFwcHJvYWNoKQotL0Rlc3QgWyAyMTI2IDAgUiAvWFlaIG51bGwgNjg2IG51bGwgXSAKLS9QYXJlbnQgMzQwNCAwIFIgCi0vUHJldiAzNDA3IDAgUiAKLS9OZXh0IDM0MDkgMCBSIAotPj4gCi1lbmRvYmoKLTM0MDkgMCBvYmoKLTw8IAotL1RpdGxlIChEeW5hbWljIGxvYWRpbmcgXChwYW5jZWEgb3IgcHJvYmxlbT9cKSkKLS9EZXN0IFsgMjEyNiAwIFIgL1hZWiBudWxsIDYwMiBudWxsIF0gCi0vUGFyZW50IDM0MDQgMCBSIAotL1ByZXYgMzQwOCAwIFIgCi0vTmV4dCAzNDEwIDAgUiAKLT4+IAotZW5kb2JqCi0zNDEwIDAgb2JqCi08PCAKLS9UaXRsZSAoVHVybmluZyBhIFNXSUcgbW9kdWxlIGludG8gYSBUY2wgUGFja2FnZS4pCi0vRGVzdCBbIDIxMjYgMCBSIC9YWVogbnVsbCA0OTIgbnVsbCBdIAotL1BhcmVudCAzNDA0IDAgUiAKLS9QcmV2IDM0MDkgMCBSIAotPj4gCi1lbmRvYmoKLTM0MTEgMCBvYmoKLTw8IAotL1RpdGxlIChCdWlsZGluZyBuZXcga2luZHMgb2YgVGNsIGludGVyZmFjZXMgXChpbiBUY2xcKSkKLS9EZXN0IFsgMjEzMyAwIFIgL1hZWiBudWxsIDUyNyBudWxsIF0gCi0vUGFyZW50IDMzNDQgMCBSIAotL1ByZXYgMzQwNCAwIFIgCi0vTmV4dCAzNDEzIDAgUiAKLS9GaXJzdCAzNDEyIDAgUiAKLS9MYXN0IDM0MTIgMCBSIAotL0NvdW50IC0xIAotPj4gCi1lbmRvYmoKLTM0MTIgMCBvYmoKLTw8IAotL1RpdGxlIChTaGFkb3cgY2xhc3NlcykKLS9EZXN0IFsgMjE0MyAwIFIgL1hZWiBudWxsIDI2NyBudWxsIF0gCi0vUGFyZW50IDM0MTEgMCBSIAotPj4gCi1lbmRvYmoKLTM0MTMgMCBvYmoKLTw8IAotL1RpdGxlIChFeHRlbmRpbmcgdGhlIFRjbCBOZXRzY2FwZSBQbHVnaW4pCi0vRGVzdCBbIDIxNTQgMCBSIC9YWVogbnVsbCA0MDEgbnVsbCBdIAotL1BhcmVudCAzMzQ0IDAgUiAKLS9QcmV2IDM0MTEgMCBSIAotL05leHQgMzQxNiAwIFIgCi0vRmlyc3QgMzQxNCAwIFIgCi0vTGFzdCAzNDE1IDAgUiAKLS9Db3VudCAtMiAKLT4+IAotZW5kb2JqCi0zNDE0IDAgb2JqCi08PCAKLS9UaXRsZSAoVGhlIHN0ZXAtYnktc3RlcCBwcm9jZXNzIGZvciBtYWtpbmcgYSBwbHVnaW4gZXh0ZW4uLi4pCi0vRGVzdCBbIDIxNjIgMCBSIC9YWVogbnVsbCA2NjUgbnVsbCBdIAotL1BhcmVudCAzNDEzIDAgUiAKLS9OZXh0IDM0MTUgMCBSIAotPj4gCi1lbmRvYmoKLTM0MTUgMCBvYmoKLTw8IAotL1RpdGxlIChVc2luZyB0aGUgcGx1Z2luKQotL0Rlc3QgWyAyMTYyIDAgUiAvWFlaIG51bGwgNDYxIG51bGwgXSAKLS9QYXJlbnQgMzQxMyAwIFIgCi0vUHJldiAzNDE0IDAgUiAKLT4+IAotZW5kb2JqCi0zNDE2IDAgb2JqCi08PCAKLS9UaXRsZSAoVGNsOC4wIGZlYXR1cmVzKQotL0Rlc3QgWyAyMTYyIDAgUiAvWFlaIG51bGwgMzY0IG51bGwgXSAKLS9QYXJlbnQgMzM0NCAwIFIgCi0vUHJldiAzNDEzIDAgUiAKLT4+IAotZW5kb2JqCi0zNDE3IDAgb2JqCi08PCAKLS9UaXRsZSAoSW5kZXgpCi0vRGVzdCBbIDIxNzcgMCBSIC9YWVogbnVsbCA4NjQgbnVsbCBdIAotL1BhcmVudCAzNDI1IDAgUiAKLS9QcmV2IDMzNDQgMCBSIAotPj4gCi1lbmRvYmoKLTM0MTggMCBvYmoKLTw8IC9MZW5ndGggMzc2IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gPj4gCi1zdHJlYW0KLQotSi5SVGdkPFFSRCs7Zm5BTDEiXTU/bSg2QmlQR1cqYXNdKGRNaFo1XTs3JThRMVA4NGVKSDM/QztpO089QEtJdWYKLTU3MC1nYihqcUxUVmJkOU9pLkUlUj9aZWAsRnFPVTZSXGIvQzRbJVBuOyglISolaTQhK1tlbyQsaShqTjs1aysvCi00PTFnUSkzImdIR14zMmMtbEVIdVtAaDNBZUpcdSw3Y1A/OEVtNkhsOlFCJU5IK0ZQPihsSk0iZGc9KzhCRmtULAotZkhIKDNFXTpFPT91WVpyMkNxSiIpUUFMOjZwLW5cL1hLby44OCpQJSs5bWdbRUguOCY1b3ByYTI0RVE1MW9ET0sKLV8rJCxJb2Y9WjpLTE1XPzYmXHBGKllcb1VrOUM7S2lCQGVqJTQ8QUxOOUZ0OykrNFIoUSpNR19cZFYnWF09PU47Ci1iaWEnVmEmQDFjcGhsQFVdPGxnI10+OSRmZUUzU3ApNnNlbkw1XnVvSjpJfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0zNDE5IDAgb2JqCi08PCAKLS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIAotL0ZvbnQgPDwgL0Y1IDggMCBSIC9GNyA5IDAgUiAvRjExIDYxIDAgUiA+PiAKLS9FeHRHU3RhdGUgPDwgL0dTMiAxMCAwIFIgPj4gCi0+PiAKLWVuZG9iagotMzQyMCAwIG9iagotPDwgCi0vVHlwZSAvSGFsZnRvbmUgCi0vSGFsZnRvbmVUeXBlIDEgCi0vSGFsZnRvbmVOYW1lIChEZWZhdWx0KQotL0ZyZXF1ZW5jeSA2MCAKLS9BbmdsZSA0NSAKLS9TcG90RnVuY3Rpb24gL1JvdW5kIAotPj4gCi1lbmRvYmoKLTM0MjEgMCBvYmoKLTw8IAotL1R5cGUgL0ZvbnREZXNjcmlwdG9yIAotL0FzY2VudCA3MjYgCi0vQ2FwSGVpZ2h0IDY4MSAKLS9EZXNjZW50IC0yNzEgCi0vRmxhZ3MgMjYyMTc4IAotL0ZvbnRCQm94IFsgLTE1MiAtMjY2IDEwMDAgOTI0IF0gCi0vRm9udE5hbWUgL1BhbGF0aW5vLUJvbGQgCi0vSXRhbGljQW5nbGUgMCAKLS9TdGVtViAxMjIgCi0vWEhlaWdodCA0NzEgCi0+PiAKLWVuZG9iagotMzQyMiAwIG9iagotPDwgCi0vVHlwZSAvRm9udERlc2NyaXB0b3IgCi0vQXNjZW50IDczMyAKLS9DYXBIZWlnaHQgNjkyIAotL0Rlc2NlbnQgLTI4MSAKLS9GbGFncyAzNCAKLS9Gb250QkJveCBbIC0xNjYgLTI4MyAxMDIxIDkyNyBdIAotL0ZvbnROYW1lIC9QYWxhdGluby1Sb21hbiAKLS9JdGFsaWNBbmdsZSAwIAotL1N0ZW1WIDg0IAotL1hIZWlnaHQgNDY5IAotPj4gCi1lbmRvYmoKLTM0MjMgMCBvYmoKLTw8IAotL1R5cGUgL0ZvbnREZXNjcmlwdG9yIAotL0FzY2VudCA3MzMgCi0vQ2FwSGVpZ2h0IDY5MiAKLS9EZXNjZW50IC0yNzYgCi0vRmxhZ3MgOTggCi0vRm9udEJCb3ggWyAtMTcwIC0yNzYgMTAxMCA5MTggXSAKLS9Gb250TmFtZSAvUGFsYXRpbm8tSXRhbGljIAotL0l0YWxpY0FuZ2xlIC0xMCAKLS9TdGVtViA4NCAKLS9YSGVpZ2h0IDQ4MiAKLT4+IAotZW5kb2JqCi0zNDI0IDAgb2JqCi08PCAKLS9UeXBlIC9Gb250RGVzY3JpcHRvciAKLS9Bc2NlbnQgNzI2IAotL0NhcEhlaWdodCA2ODEgCi0vRGVzY2VudCAtMjcxIAotL0ZsYWdzIDI2MjI0MiAKLS9Gb250QkJveCBbIC0xNzAgLTI3MSAxMDczIDkyNiBdIAotL0ZvbnROYW1lIC9QYWxhdGluby1Cb2xkSXRhbGljIAotL0l0YWxpY0FuZ2xlIC0xMCAKLS9TdGVtViAxMjIgCi0vWEhlaWdodCA0NjkgCi0+PiAKLWVuZG9iagotMzQyNSAwIG9iagotPDwgCi0vQ291bnQgMjUgCi0vRmlyc3QgMzAzNCAwIFIgCi0vTGFzdCAzNDE3IDAgUiAKLT4+IAotZW5kb2JqCi0zNDI2IDAgb2JqCi1bIAotNTYgMCBSIAotXQotZW5kb2JqCi0zNDI3IDAgb2JqCi08PCAKLS9GLkRvY3VtZW50YXRpb24uU3lzdGVtIDgwNCAwIFIgCi0vRi5FeGNlcHRpb25zIDEwNjMgMCBSIAotL0YuSW50cm9kdWN0aW9uIDIwNyAwIFIgCi0vRi5MaWJyYXJ5IDc1NCAwIFIgCi0vRi5QZXJsLjUgMTEyMCAwIFIgCi0vRi5QcmVmYWNlIDE3NyAwIFIgCi0vRi5QeXRob24gMTQyMCAwIFIgCi0vRi5TV0lHLkJhc2ljcyAzNzcgMCBSIAotL0YuU1dJRy5NYW51YWxJWCAyMTgwIDAgUiAKLS9GLlNXSUcuTWFudWFsVE9DIDE5IDAgUiAKLS9GLlNjcmlwdGluZy5MYW5ndWFnZXMgMzA3IDAgUiAKLS9GLlRjbCAxNzkyIDAgUiAKLS9GLlRpdGxlIDQgMCBSIAotL0YuVHlwZW1hcHMgOTUyIDAgUiAKLS9HMTAuOTk2NzQ3IDEwNTkgMCBSIAotL0cxMC45OTc4OTYgMTA2MCAwIFIgCi0vRzEwLjk5ODA0MSAxMDYxIDAgUiAKLS9HMTAuOTk4MDU1IDEwOTAgMCBSIAotL0cxMC45OTgxMTMgMTA3NCAwIFIgCi0vRzEwLjk5ODMyOCAxMDkxIDAgUiAKLS9HMTAuOTk4MzUzIDExMDggMCBSIAotL0cxMC45OTg0MjIgMTA5OSAwIFIgCi0vRzExLjEwMDAwNTkgMTI3NSAwIFIgCi0vRzExLjEwMDA4MzkgMTE2MyAwIFIgCi0vRzExLjEwMDEwNTkgMTI1MCAwIFIgCi0vRzExLjEwMDIxMjggMTM2NyAwIFIgCi0vRzExLjEwMDIxNDggMTI3NiAwIFIgCi0vRzExLjEwMDI1MDAgMTI5OSAwIFIgCi0vRzExLjEwMDI1MDIgMTQwOCAwIFIgCi0vRzExLjEwMDI2MzYgMTE1NSAwIFIgCi0vRzExLjEwMDI2NDUgMTMxMCAwIFIgCi0vRzExLjEwMDI4MTggMTEzOCAwIFIgCi0vRzExLjk5Njc0NyAxMTE3IDAgUiAKLS9HMTEuOTk3Nzc5IDExMTggMCBSIAotL0cxMS45OTgwNDAgMTE4MiAwIFIgCi0vRzExLjk5ODUwOSAxMjE0IDAgUiAKLS9HMTEuOTk4ODEyIDEyMjYgMCBSIAotL0cxMS45OTg5NzMgMTIzOCAwIFIgCi0vRzEyLjEwMDAxMDEgMTU1MSAwIFIgCi0vRzEyLjEwMDEwMTIgMTYxMCAwIFIgCi0vRzEyLjEwMDEyMzEgMTc0MiAwIFIgCi0vRzEyLjEwMDI1ODcgMTczMiAwIFIgCi0vRzEyLjEwMDM4ODEgMTcwOSAwIFIgCi0vRzEyLjEwMDQxNzAgMTYyOCAwIFIgCi0vRzEyLjEwMDQzMjEgMTY0OCAwIFIgCi0vRzEyLjEwMDQ1MjggMTQ0MyAwIFIgCi0vRzEyLjk5Njc0NyAxNDE3IDAgUiAKLS9HMTIuOTk3OTAwIDE0MTggMCBSIAotL0cxMi45OTgxODUgMTQ1MiAwIFIgCi0vRzEyLjk5ODQ1NSAxNDgyIDAgUiAKLS9HMTIuOTk4ODE0IDE0OTggMCBSIAotL0cxMi45OTg4MTUgMTQ5NyAwIFIgCi0vRzEzLjEwMDIwMDEgMTk4NyAwIFIgCi0vRzEzLjEwMDI3OTYgMjE2MyAwIFIgCi0vRzEzLjEwMDMwNjQgMTg0OCAwIFIgCi0vRzEzLjEwMDMyOTYgMTk3OCAwIFIgCi0vRzEzLjk5Njc0NyAxNzg5IDAgUiAKLS9HMTMuOTk3OTAwIDE3OTAgMCBSIAotL0cxMy45OTgwNzkgMTgyNyAwIFIgCi0vRzEzLjk5ODM3MSAxODY4IDAgUiAKLS9HMTMuOTk4NzMzIDE5MDAgMCBSIAotL0cxMy45OTg3NTIgMTkwMSAwIFIgCi0vRzEzLjk5OTQxNiAxOTMwIDAgUiAKLS9HMTMuOTk5NDM5IDE5NTMgMCBSIAotL0cxMy45OTk2NjkgMjA5MCAwIFIgCi0vRzEzLjk5OTY4MyAyMTM0IDAgUiAKLS9HMTMuOTk5NjkyIDIxNTUgMCBSIAotL0cxMy45OTk5MDAgMTk0NSAwIFIgCi0vRzE0LjY2NSAyMTc4IDAgUiAKLS9HMy45OTY3NDcgMTczIDAgUiAKLS9HMy45OTc4OTQgMTc0IDAgUiAKLS9HMy45OTgxMDYgMTkzIDAgUiAKLS9HMy45OTgxMTIgMTc1IDAgUiAKLS9HMy45OTgxMzcgMTg2IDAgUiAKLS9HMy45OTgxODEgMTg3IDAgUiAKLS9HMy45OTgyNDAgMTk0IDAgUiAKLS9HNC45OTcwNDkgMjAzIDAgUiAKLS9HNC45OTcwNTEgMjA0IDAgUiAKLS9HNC45OTc3OTUgMjA1IDAgUiAKLS9HNC45OTgwNTkgMjEyIDAgUiAKLS9HNC45OTgxNTggMjcxIDAgUiAKLS9HNC45OTgxNjAgMjcyIDAgUiAKLS9HNC45OTgxNzMgMjgwIDAgUiAKLS9HNC45OTgxNzYgMjEzIDAgUiAKLS9HNC45OTgzNjkgMjYwIDAgUiAKLS9HNC45OTg0NTcgMjU5IDAgUiAKLS9HNC45OTg0NTkgMjIxIDAgUiAKLS9HNC45OTg2NTIgMjgxIDAgUiAKLS9HNC45OTg3NjggMjgyIDAgUiAKLS9HNS45OTY3NDcgMzA0IDAgUiAKLS9HNS45OTc4NzcgMzA1IDAgUiAKLS9HNS45OTgwOTcgMzIzIDAgUiAKLS9HNS45OTgyMzAgMzYwIDAgUiAKLS9HNS45OTg0MjYgMzYxIDAgUiAKLS9HNi4xMDAwNTUyIDYxOCAwIFIgCi0vRzYuMTAwMDk1NSA2NzggMCBSIAotL0c2LjEwMDEwMzMgNjk5IDAgUiAKLS9HNi4xMDAxMTIwIDcxMSAwIFIgCi0vRzYuOTk3OTg5IDM3NCAwIFIgCi0vRzYuOTk3OTkwIDM3NSAwIFIgCi0vRzYuOTk4MTQ3IDQ4OCAwIFIgCi0vRzYuOTk4MTk2IDUxNyAwIFIgCi0vRzYuOTk5MjEzIDQzNiAwIFIgCi0vRzYuOTk5NzI3IDU3MCAwIFIgCi0vRzcuOTk2NzQ3IDc1MCAwIFIgCi0vRzcuOTk3ODE3IDc1MSAwIFIgCi0vRzcuOTk3ODg4IDc2NCAwIFIgCi0vRzcuOTk3OTEzIDc1MiAwIFIgCi0vRzcuOTk3OTI5IDc3NyAwIFIgCi0vRzcuOTk3OTY5IDc3OCAwIFIgCi0vRzcuOTk4MDQzIDc4OSAwIFIgCi0vRzcuOTk4MDY2IDc5MCAwIFIgCi0vRzcuOTk4MTIyIDc2MyAwIFIgCi0vRzcuOTk4MTM1IDc2NSAwIFIgCi0vRzcuOTk4MTQ2IDc2NiAwIFIgCi0vRzguOTk2NzQ3IDgwMCAwIFIgCi0vRzguOTk3ODE5IDgwMSAwIFIgCi0vRzguOTk3ODU4IDgwMiAwIFIgCi0vRzguOTk3ODg4IDgxMyAwIFIgCi0vRzguOTk3OTg4IDgxNSAwIFIgCi0vRzguOTk4MTkxIDgzOSAwIFIgCi0vRzguOTk4NDg1IDg2MyAwIFIgCi0vRzguOTk4NDk4IDgxNCAwIFIgCi0vRzguOTk4NzE4IDg3MyAwIFIgCi0vRzguOTk4NzE5IDg3NCAwIFIgCi0vRzguOTk5Mjc5IDkwMyAwIFIgCi0vRzguOTk5MzAxIDkxMSAwIFIgCi0vRzguOTk5Mzc5IDkyNyAwIFIgCi0vRzguOTk5NjAyIDkzNiAwIFIgCi0vRzguOTk5NjE5IDkzNyAwIFIgCi0vRzkuOTk2NzQ3IDk0OCAwIFIgCi0vRzkuOTk3ODk0IDk0OSAwIFIgCi0vRzkuOTk4MDc3IDk3NiAwIFIgCi0vRzkuOTk4MTMyIDk4NiAwIFIgCi0vRzkuOTk4MzI2IDEwMTIgMCBSIAotL0c5Ljk5ODQ0OCAxMDEzIDAgUiAKLS9HOS45OTg1MzcgOTUwIDAgUiAKLS9HOS45OTg1NDAgOTYwIDAgUiAKLS9HOS45OTg4ODQgMTAzOCAwIFIgCi0vRzkuOTk5MDAyIDEwNDggMCBSIAotL0c5Ljk5OTE0NSAxMDM5IDAgUiAKLS9JMTAuMS45OTg0NzggMTA2NCAwIFIgCi0vSTEwLjEuOTk4NDc5IDExMTEgMCBSIAotL0kxMC4xLjk5ODQ4MCAxMDY1IDAgUiAKLS9JMTAuMS45OTg0ODEgMTA2NiAwIFIgCi0vSTEwLjEuOTk4NDgyIDEwNjcgMCBSIAotL0kxMC4xLjk5ODQ4MyAxMDY4IDAgUiAKLS9JMTAuMS45OTg0ODQgMTA3NiAwIFIgCi0vSTEwLjEuOTk4NDg2IDEwNzcgMCBSIAotL0kxMC4xLjk5ODQ4NyAxMDc4IDAgUiAKLS9JMTAuMS45OTg0ODggMTA5MyAwIFIgCi0vSTEwLjEuOTk4NDg5IDEwOTQgMCBSIAotL0kxMC4xLjk5ODQ5MCAxMTAxIDAgUiAKLS9JMTAuMS45OTg0OTEgMTEwMiAwIFIgCi0vSTEwLjEuOTk4NDkyIDEwNjkgMCBSIAotL0kxMC4xLjk5ODQ5MyAxMTEyIDAgUiAKLS9JMTAuMS45OTg0OTQgMTA4NSAwIFIgCi0vSTEwLjEuOTk4NTAzIDEwODQgMCBSIAotL0kxMS4xLjEwMDI1NDggMTE0OSAwIFIgCi0vSTExLjEuMTAwMjg0MSAxMTIxIDAgUiAKLS9JMTEuMS4xMDAyODQyIDE0MTEgMCBSIAotL0kxMS4xLjEwMDI4NDMgMTEyMiAwIFIgCi0vSTExLjEuMTAwMjg0NCAxMTIzIDAgUiAKLS9JMTEuMS4xMDAyODQ1IDExMjQgMCBSIAotL0kxMS4xLjEwMDI4NDYgMTEzMCAwIFIgCi0vSTExLjEuMTAwMjg0NyAxMTMxIDAgUiAKLS9JMTEuMS4xMDAyODQ4IDExMzIgMCBSIAotL0kxMS4xLjEwMDI4NDkgMTEzMyAwIFIgCi0vSTExLjEuMTAwMjg1MCAxMTQwIDAgUiAKLS9JMTEuMS4xMDAyODUxIDExNDEgMCBSIAotL0kxMS4xLjEwMDI4NTIgMTE0MiAwIFIgCi0vSTExLjEuMTAwMjg1MyAxMTQzIDAgUiAKLS9JMTEuMS4xMDAyODU0IDExNTAgMCBSIAotL0kxMS4xLjEwMDI4NTUgMTE1NyAwIFIgCi0vSTExLjEuMTAwMjg1NiAxMTU4IDAgUiAKLS9JMTEuMS4xMDAyODU3IDExNjUgMCBSIAotL0kxMS4xLjEwMDI4NTggMTE2NiAwIFIgCi0vSTExLjEuMTAwMjg1OSAxMTY3IDAgUiAKLS9JMTEuMS4xMDAyODYwIDExNjggMCBSIAotL0kxMS4xLjEwMDI4NjEgMTE2OSAwIFIgCi0vSTExLjEuMTAwMjg2MiAxMTc1IDAgUiAKLS9JMTEuMS4xMDAyODYzIDExNzYgMCBSIAotL0kxMS4xLjEwMDI4NjQgMTE3NyAwIFIgCi0vSTExLjEuMTAwMjg2NSAxMTg0IDAgUiAKLS9JMTEuMS4xMDAyODY2IDEyNjkgMCBSIAotL0kxMS4xLjEwMDI4NjcgMTE4NSAwIFIgCi0vSTExLjEuMTAwMjg2OCAxMTkxIDAgUiAKLS9JMTEuMS4xMDAyODY5IDEyMDQgMCBSIAotL0kxMS4xLjEwMDI4NzAgMTIxNiAwIFIgCi0vSTExLjEuMTAwMjg3MSAxMjI4IDAgUiAKLS9JMTEuMS4xMDAyODcyIDEyNDAgMCBSIAotL0kxMS4xLjEwMDI4NzMgMTI3OCAwIFIgCi0vSTExLjEuMTAwMjg3NCAxMjc5IDAgUiAKLS9JMTEuMS4xMDAyODc1IDEzMDEgMCBSIAotL0kxMS4xLjEwMDI4NzYgMTMwMiAwIFIgCi0vSTExLjEuMTAwMjg3NyAxMzEyIDAgUiAKLS9JMTEuMS4xMDAyODc4IDEzNjkgMCBSIAotL0kxMS4xLjEwMDI4ODAgMTMyNCAwIFIgCi0vSTExLjEuMTAwMjg4MSAxMzMwIDAgUiAKLS9JMTEuMS4xMDAyODgyIDEzMzYgMCBSIAotL0kxMS4xLjEwMDI4ODMgMTM0NyAwIFIgCi0vSTExLjEuMTAwMjg4NCAxMzQ4IDAgUiAKLS9JMTEuMS4xMDAyODg1IDEzNDkgMCBSIAotL0kxMS4xLjEwMDI4ODYgMTM1MCAwIFIgCi0vSTExLjEuMTAwMjg4NyAxMzUxIDAgUiAKLS9JMTEuMS4xMDAyODg4IDEzNTIgMCBSIAotL0kxMS4xLjEwMDI4ODkgMTM1MyAwIFIgCi0vSTExLjEuMTAwMjg5MCAxMzU0IDAgUiAKLS9JMTEuMS4xMDAyODkxIDEzNTUgMCBSIAotL0kxMS4xLjEwMDI4OTIgMTM2MSAwIFIgCi0vSTExLjEuMTAwMjg5MyAxMzYyIDAgUiAKLS9JMTEuMS4xMDAyODk0IDEzNzAgMCBSIAotL0kxMS4xLjEwMDI4OTUgMTM3MSAwIFIgCi0vSTExLjEuMTAwMjg5NiAxMzcyIDAgUiAKLS9JMTEuMS4xMDAyODk3IDE0MTIgMCBSIAotL0kxMS4xLjEwMDI4OTkgMTM4MyAwIFIgCi0vSTExLjEuMTAwMjkwMCAxMzg5IDAgUiAKLS9JMTEuMS4xMDAyOTAxIDEzOTYgMCBSIAotL0kxMS4xLjEwMDI5MDIgMTM5NyAwIFIgCi0vSTExLjEuMTAwMjkwMyAxNDAzIDAgUiAKLS9JMTIuMS4xMDA0NTYwIDE0NTQgMCBSIAotL0kxMi4xLjEwMDQ2ODcgMTQyMSAwIFIgCi0vSTEyLjEuMTAwNDY4OCAxNDIyIDAgUiAKLS9JMTIuMS4xMDA0Njg5IDE0MjggMCBSIAotL0kxMi4xLjEwMDQ2OTAgMTQyOSAwIFIgCi0vSTEyLjEuMTAwNDY5MSAxNDMwIDAgUiAKLS9JMTIuMS4xMDA0NjkyIDE0MzEgMCBSIAotL0kxMi4xLjEwMDQ2OTMgMTQzNyAwIFIgCi0vSTEyLjEuMTAwNDY5NCAxNDM4IDAgUiAKLS9JMTIuMS4xMDA0Njk1IDE0NDUgMCBSIAotL0kxMi4xLjEwMDQ2OTYgMTQ0NiAwIFIgCi0vSTEyLjEuMTAwNDY5NyAxNDQ3IDAgUiAKLS9JMTIuMS4xMDA0Njk4IDE0NjAgMCBSIAotL0kxMi4xLjEwMDQ2OTkgMTQ2MSAwIFIgCi0vSTEyLjEuMTAwNDcwMCAxNDYyIDAgUiAKLS9JMTIuMS4xMDA0NzAxIDE0NjggMCBSIAotL0kxMi4xLjEwMDQ3MDIgMTQ2OSAwIFIgCi0vSTEyLjEuMTAwNDcwMyAxNDcwIDAgUiAKLS9JMTIuMS4xMDA0NzA0IDE0NzcgMCBSIAotL0kxMi4xLjEwMDQ3MDUgMTQ4NCAwIFIgCi0vSTEyLjEuMTAwNDcwNiAxNTAwIDAgUiAKLS9JMTIuMS4xMDA0NzA3IDE0OTAgMCBSIAotL0kxMi4xLjEwMDQ3MDggMTQ5MSAwIFIgCi0vSTEyLjEuMTAwNDcwOSAxNDkyIDAgUiAKLS9JMTIuMS4xMDA0NzEwIDE1MDEgMCBSIAotL0kxMi4xLjEwMDQ3MTEgMTU0NiAwIFIgCi0vSTEyLjEuMTAwNDcxMiAxNTE3IDAgUiAKLS9JMTIuMS4xMDA0NzEzIDE1MjggMCBSIAotL0kxMi4xLjEwMDQ3MTQgMTU0MCAwIFIgCi0vSTEyLjEuMTAwNDcxNSAxNTUzIDAgUiAKLS9JMTIuMS4xMDA0NzE2IDE1NTQgMCBSIAotL0kxMi4xLjEwMDQ3MTcgMTU1NSAwIFIgCi0vSTEyLjEuMTAwNDcxOCAxNTY2IDAgUiAKLS9JMTIuMS4xMDA0NzE5IDE1NzIgMCBSIAotL0kxMi4xLjEwMDQ3MjAgMTU4OCAwIFIgCi0vSTEyLjEuMTAwNDcyMSAxNjEyIDAgUiAKLS9JMTIuMS4xMDA0NzIyIDE2MTggMCBSIAotL0kxMi4xLjEwMDQ3MjMgMTYzMCAwIFIgCi0vSTEyLjEuMTAwNDcyNCAxNjQzIDAgUiAKLS9JMTIuMS4xMDA0NzI1IDE2NTAgMCBSIAotL0kxMi4xLjEwMDQ3MjYgMTcxMSAwIFIgCi0vSTEyLjEuMTAwNDcyNyAxNjYxIDAgUiAKLS9JMTIuMS4xMDA0NzI4IDE2NjcgMCBSIAotL0kxMi4xLjEwMDQ3MjkgMTY3NCAwIFIgCi0vSTEyLjEuMTAwNDczMCAxNjc1IDAgUiAKLS9JMTIuMS4xMDA0NzMxIDE2ODEgMCBSIAotL0kxMi4xLjEwMDQ3MzIgMTY4NyAwIFIgCi0vSTEyLjEuMTAwNDczMyAxNjg4IDAgUiAKLS9JMTIuMS4xMDA0NzM0IDE2ODkgMCBSIAotL0kxMi4xLjEwMDQ3MzUgMTY5MCAwIFIgCi0vSTEyLjEuMTAwNDczNiAxNjk2IDAgUiAKLS9JMTIuMS4xMDA0NzM3IDE2OTcgMCBSIAotL0kxMi4xLjEwMDQ3MzggMTY5OCAwIFIgCi0vSTEyLjEuMTAwNDczOSAxNzA0IDAgUiAKLS9JMTIuMS4xMDA0NzQwIDE3MTIgMCBSIAotL0kxMi4xLjEwMDQ3NDEgMTczNCAwIFIgCi0vSTEyLjEuMTAwNDc0MiAxNzM1IDAgUiAKLS9JMTIuMS4xMDA0NzQzIDE3MzYgMCBSIAotL0kxMi4xLjEwMDQ3NDQgMTc0NCAwIFIgCi0vSTEyLjEuMTAwNDc0NSAxNzg0IDAgUiAKLS9JMTIuMS4xMDA0NzQ2IDE3NTAgMCBSIAotL0kxMi4xLjEwMDQ3NDcgMTc1MSAwIFIgCi0vSTEyLjEuMTAwNDc0OCAxNzUyIDAgUiAKLS9JMTIuMS4xMDA0NzQ5IDE3NTggMCBSIAotL0kxMi4xLjEwMDQ3NTAgMTc1OSAwIFIgCi0vSTEyLjEuMTAwNDc1MSAxNzY1IDAgUiAKLS9JMTIuMS4xMDA0NzUyIDE3NzYgMCBSIAotL0kxMi4xLjEwMDQ3NTMgMTc3NyAwIFIgCi0vSTEzLjEuMTAwMzE2NiAxNzkzIDAgUiAKLS9JMTMuMS4xMDAzMTY3IDE3OTQgMCBSIAotL0kxMy4xLjEwMDMxNjggMTc5NSAwIFIgCi0vSTEzLjEuMTAwMzE2OSAxNzk2IDAgUiAKLS9JMTMuMS4xMDAzMTcwIDE3OTcgMCBSIAotL0kxMy4xLjEwMDMxNzEgMTc5OCAwIFIgCi0vSTEzLjEuMTAwMzE3MiAxNzk5IDAgUiAKLS9JMTMuMS4xMDAzMTczIDE4MDAgMCBSIAotL0kxMy4xLjEwMDMxNzQgMTgwMSAwIFIgCi0vSTEzLjEuMTAwMzE3NSAxODAyIDAgUiAKLS9JMTMuMS4xMDAzMTc2IDE4MDggMCBSIAotL0kxMy4xLjEwMDMxNzcgMTgwOSAwIFIgCi0vSTEzLjEuMTAwMzE3OCAxODEwIDAgUiAKLS9JMTMuMS4xMDAzMTc5IDE4MTEgMCBSIAotL0kxMy4xLjEwMDMxODAgMTgxNyAwIFIgCi0vSTEzLjEuMTAwMzE4MSAxODE4IDAgUiAKLS9JMTMuMS4xMDAzMTgyIDE4MTkgMCBSIAotL0kxMy4xLjEwMDMxODMgMTgyMCAwIFIgCi0vSTEzLjEuMTAwMzE4NCAxODIxIDAgUiAKLS9JMTMuMS4xMDAzMTg1IDE4MjkgMCBSIAotL0kxMy4xLjEwMDMxODYgMTgzMCAwIFIgCi0vSTEzLjEuMTAwMzE4NyAxODMxIDAgUiAKLS9JMTMuMS4xMDAzMTg4IDE4MzIgMCBSIAotL0kxMy4xLjEwMDMxODkgMTgzMyAwIFIgCi0vSTEzLjEuMTAwMzE5MCAxODM0IDAgUiAKLS9JMTMuMS4xMDAzMTkxIDE4MzUgMCBSIAotL0kxMy4xLjEwMDMxOTIgMTg0MiAwIFIgCi0vSTEzLjEuMTAwMzE5MyAxODQzIDAgUiAKLS9JMTMuMS4xMDAzMTk0IDE4MzYgMCBSIAotL0kxMy4xLjEwMDMxOTUgMTg1MCAwIFIgCi0vSTEzLjEuMTAwMzE5NiAxODUxIDAgUiAKLS9JMTMuMS4xMDAzMTk3IDE4NTIgMCBSIAotL0kxMy4xLjEwMDMxOTggMTg1OCAwIFIgCi0vSTEzLjEuMTAwMzE5OSAxODU5IDAgUiAKLS9JMTMuMS4xMDAzMjAwIDE4NjAgMCBSIAotL0kxMy4xLjEwMDMyMDEgMTg2MSAwIFIgCi0vSTEzLjEuMTAwMzIwMiAxODYyIDAgUiAKLS9JMTMuMS4xMDAzMjAzIDE4NjMgMCBSIAotL0kxMy4xLjEwMDMyMDQgMTg3MCAwIFIgCi0vSTEzLjEuMTAwMzIwNSAxODkyIDAgUiAKLS9JMTMuMS4xMDAzMjA2IDE4NzYgMCBSIAotL0kxMy4xLjEwMDMyMDcgMTg3NyAwIFIgCi0vSTEzLjEuMTAwMzIwOCAxODgzIDAgUiAKLS9JMTMuMS4xMDAzMjA5IDE4ODQgMCBSIAotL0kxMy4xLjEwMDMyMTAgMTg4NSAwIFIgCi0vSTEzLjEuMTAwMzIxMSAxODg2IDAgUiAKLS9JMTMuMS4xMDAzMjEyIDE4OTMgMCBSIAotL0kxMy4xLjEwMDMyMTMgMTg5NCAwIFIgCi0vSTEzLjEuMTAwMzIxNCAxODk1IDAgUiAKLS9JMTMuMS4xMDAzMjE1IDE5MDMgMCBSIAotL0kxMy4xLjEwMDMyMTYgMTkzMiAwIFIgCi0vSTEzLjEuMTAwMzIxNyAxOTI1IDAgUiAKLS9JMTMuMS4xMDAzMjE4IDE5MzMgMCBSIAotL0kxMy4xLjEwMDMyMTkgMTkzNCAwIFIgCi0vSTEzLjEuMTAwMzIyMCAxOTQ3IDAgUiAKLS9JMTMuMS4xMDAzMjIxIDE5NDggMCBSIAotL0kxMy4xLjEwMDMyMjIgMTk1NSAwIFIgCi0vSTEzLjEuMTAwMzIyMyAxOTgwIDAgUiAKLS9JMTMuMS4xMDAzMjI0IDE5NTYgMCBSIAotL0kxMy4xLjEwMDMyMjUgMTk4MSAwIFIgCi0vSTEzLjEuMTAwMzIyNiAxOTg5IDAgUiAKLS9JMTMuMS4xMDAzMjI3IDE5OTAgMCBSIAotL0kxMy4xLjEwMDMyMjggMjA5MiAwIFIgCi0vSTEzLjEuMTAwMzIyOSAyMDAxIDAgUiAKLS9JMTMuMS4xMDAzMjMwIDIwMDcgMCBSIAotL0kxMy4xLjEwMDMyMzEgMjAxMyAwIFIgCi0vSTEzLjEuMTAwMzIzMiAyMDE5IDAgUiAKLS9JMTMuMS4xMDAzMjMzIDIwMzAgMCBSIAotL0kxMy4xLjEwMDMyMzQgMjAzMSAwIFIgCi0vSTEzLjEuMTAwMzIzNSAyMDMyIDAgUiAKLS9JMTMuMS4xMDAzMjM2IDIwMzMgMCBSIAotL0kxMy4xLjEwMDMyMzcgMjAzNCAwIFIgCi0vSTEzLjEuMTAwMzIzOCAyMDM1IDAgUiAKLS9JMTMuMS4xMDAzMjM5IDIwMzYgMCBSIAotL0kxMy4xLjEwMDMyNDAgMjAzNyAwIFIgCi0vSTEzLjEuMTAwMzI0MSAyMDM4IDAgUiAKLS9JMTMuMS4xMDAzMjQyIDIwMzkgMCBSIAotL0kxMy4xLjEwMDMyNDMgMjA0NSAwIFIgCi0vSTEzLjEuMTAwMzI0NCAyMDQ2IDAgUiAKLS9JMTMuMS4xMDAzMjQ1IDIwNDcgMCBSIAotL0kxMy4xLjEwMDMyNDYgMjA0OCAwIFIgCi0vSTEzLjEuMTAwMzI0NyAyMDQ5IDAgUiAKLS9JMTMuMS4xMDAzMjQ4IDIwNTAgMCBSIAotL0kxMy4xLjEwMDMyNDkgMjA1MSAwIFIgCi0vSTEzLjEuMTAwMzI1MCAyMDUyIDAgUiAKLS9JMTMuMS4xMDAzMjUxIDIwNTMgMCBSIAotL0kxMy4xLjEwMDMyNTIgMjA1NCAwIFIgCi0vSTEzLjEuMTAwMzI1MyAyMDU1IDAgUiAKLS9JMTMuMS4xMDAzMjU0IDIwNjIgMCBSIAotL0kxMy4xLjEwMDMyNTUgMjA2MyAwIFIgCi0vSTEzLjEuMTAwMzI1NiAyMDY0IDAgUiAKLS9JMTMuMS4xMDAzMjU3IDIwNjUgMCBSIAotL0kxMy4xLjEwMDMyNTggMjA2NiAwIFIgCi0vSTEzLjEuMTAwMzI1OSAyMDY3IDAgUiAKLS9JMTMuMS4xMDAzMjYwIDIwNjggMCBSIAotL0kxMy4xLjEwMDMyNjEgMjA2OSAwIFIgCi0vSTEzLjEuMTAwMzI2MiAyMDcwIDAgUiAKLS9JMTMuMS4xMDAzMjYzIDIwNzEgMCBSIAotL0kxMy4xLjEwMDMyNjQgMjA3MiAwIFIgCi0vSTEzLjEuMTAwMzI2NSAyMDczIDAgUiAKLS9JMTMuMS4xMDAzMjY2IDIwODQgMCBSIAotL0kxMy4xLjEwMDMyNjcgMjA4NSAwIFIgCi0vSTEzLjEuMTAwMzI2OCAyMDkzIDAgUiAKLS9JMTMuMS4xMDAzMjY5IDIwOTQgMCBSIAotL0kxMy4xLjEwMDMyNzAgMjEzNiAwIFIgCi0vSTEzLjEuMTAwMzI3MSAyMTAwIDAgUiAKLS9JMTMuMS4xMDAzMjcyIDIxMDEgMCBSIAotL0kxMy4xLjEwMDMyNzMgMjEwNyAwIFIgCi0vSTEzLjEuMTAwMzI3NCAyMTA4IDAgUiAKLS9JMTMuMS4xMDAzMjc1IDIxMDkgMCBSIAotL0kxMy4xLjEwMDMyNzYgMjEyMCAwIFIgCi0vSTEzLjEuMTAwMzI3NyAyMTIxIDAgUiAKLS9JMTMuMS4xMDAzMjc4IDIxMjIgMCBSIAotL0kxMy4xLjEwMDMyNzkgMjEyOCAwIFIgCi0vSTEzLjEuMTAwMzI4MCAyMTI5IDAgUiAKLS9JMTMuMS4xMDAzMjgxIDIxMzcgMCBSIAotL0kxMy4xLjEwMDMyODIgMjEzOCAwIFIgCi0vSTEzLjEuMTAwMzI4OSAyMTQ1IDAgUiAKLS9JMTMuMS4xMDAzMjkwIDIxNTcgMCBSIAotL0kxMy4xLjEwMDMyOTEgMjE2NSAwIFIgCi0vSTEzLjEuMTAwMzI5MiAyMTY2IDAgUiAKLS9JMTMuMS4xMDAzMjkzIDIxNTggMCBSIAotL0kxMy4xLjEwMDMyOTQgMjE2NyAwIFIgCi0vSTEzLjEuMTAwMzQyMiAxOTgyIDAgUiAKLS9JMy4xLjk5ODI4OSAxNzggMCBSIAotL0kzLjEuOTk4MjkwIDE3OSAwIFIgCi0vSTMuMS45OTgyOTEgMTgwIDAgUiAKLS9JMy4xLjk5ODI5MiAxOTcgMCBSIAotL0kzLjEuOTk4MjkzIDE5OCAwIFIgCi0vSTQuMS45OTg2OTYgMjIzIDAgUiAKLS9JNC4xLjk5ODY5NyAyMjQgMCBSIAotL0k0LjEuOTk4Njk4IDIzMiAwIFIgCi0vSTQuMS45OTg2OTkgMjMzIDAgUiAKLS9JNC4xLjk5ODcwMCAyMzQgMCBSIAotL0k0LjEuOTk4NzAxIDIzNSAwIFIgCi0vSTQuMS45OTg3MDIgMjM2IDAgUiAKLS9JNC4xLjk5ODcwMyAyNDIgMCBSIAotL0k0LjEuOTk4NzA0IDI0MyAwIFIgCi0vSTQuMS45OTg3MDUgMjQ0IDAgUiAKLS9JNC4xLjk5ODcwNiAyNDUgMCBSIAotL0k0LjEuOTk4NzA3IDI0NiAwIFIgCi0vSTQuMS45OTg3NTMgMjUyIDAgUiAKLS9JNC4xLjk5ODc1NCAyNTMgMCBSIAotL0k0LjEuOTk4NzU1IDI1NCAwIFIgCi0vSTQuMS45OTg3NTYgMjYyIDAgUiAKLS9JNC4xLjk5ODc1NyAyNjMgMCBSIAotL0k0LjEuOTk4NzU4IDI2NCAwIFIgCi0vSTQuMS45OTg3NTkgMjY1IDAgUiAKLS9JNC4xLjk5ODc2MCAyNjYgMCBSIAotL0k0LjEuOTk4NzYzIDI3NCAwIFIgCi0vSTQuMS45OTg3NjQgMjc1IDAgUiAKLS9JNC4xLjk5ODc2NSAyODQgMCBSIAotL0k0LjEuOTk4NzY2IDI4NSAwIFIgCi0vSTQuMS45OTg4OTggMjg2IDAgUiAKLS9JNC4xLjk5ODg5OSAyOTQgMCBSIAotL0k0LjEuOTk4OTAwIDI4NyAwIFIgCi0vSTQuMS45OTg5MDEgMjk1IDAgUiAKLS9JNC4xLjk5ODkwMiAyOTYgMCBSIAotL0k1LjEuOTk4NDc5IDMwOCAwIFIgCi0vSTUuMS45OTg0ODAgMzA5IDAgUiAKLS9JNS4xLjk5ODQ4MSAzMTUgMCBSIAotL0k1LjEuOTk4NDgyIDMxNiAwIFIgCi0vSTUuMS45OTg0ODMgMzE3IDAgUiAKLS9JNS4xLjk5ODQ4NCAzMjUgMCBSIAotL0k1LjEuOTk4NDg1IDMyNiAwIFIgCi0vSTUuMS45OTg0ODYgMzI3IDAgUiAKLS9JNS4xLjk5ODQ4NyAzMjggMCBSIAotL0k1LjEuOTk4NDg4IDMzNCAwIFIgCi0vSTUuMS45OTg0ODkgMzM1IDAgUiAKLS9JNS4xLjk5ODQ5MCAzMzYgMCBSIAotL0k1LjEuOTk4NDkxIDMzNyAwIFIgCi0vSTUuMS45OTg0OTIgMzM4IDAgUiAKLS9JNS4xLjk5ODQ5MyAzMzkgMCBSIAotL0k1LjEuOTk4NDk0IDM0NSAwIFIgCi0vSTUuMS45OTg0OTUgMzQ2IDAgUiAKLS9JNS4xLjk5ODQ5NiAzNDcgMCBSIAotL0k1LjEuOTk4NDk3IDM0OCAwIFIgCi0vSTUuMS45OTg0OTggMzQ5IDAgUiAKLS9JNS4xLjk5ODQ5OSAzNTAgMCBSIAotL0k1LjEuOTk4NTAwIDM1MSAwIFIgCi0vSTUuMS45OTg1MDEgMzUyIDAgUiAKLS9JNS4xLjk5ODUwMiAzNTMgMCBSIAotL0k1LjEuOTk4NTAzIDM1NCAwIFIgCi0vSTUuMS45OTg1MDQgMzU1IDAgUiAKLS9JNS4xLjk5ODUwNSAzNjQgMCBSIAotL0k1LjEuOTk4NTA2IDM2NSAwIFIgCi0vSTUuMS45OTg1MDcgMzY2IDAgUiAKLS9JNS4xLjk5ODUwOCAzNjcgMCBSIAotL0k1LjEuOTk4NTA5IDM2OCAwIFIgCi0vSTUuMS45OTg1MTAgMzY5IDAgUiAKLS9JNi4xLjEwMDEyNDQgMzc4IDAgUiAKLS9JNi4xLjEwMDEyNDUgMzc5IDAgUiAKLS9JNi4xLjEwMDEyNDYgMzgwIDAgUiAKLS9JNi4xLjEwMDEyNDcgMzgxIDAgUiAKLS9JNi4xLjEwMDEyNDggMzgyIDAgUiAKLS9JNi4xLjEwMDEyNDkgMzgzIDAgUiAKLS9JNi4xLjEwMDEyNTAgMzg0IDAgUiAKLS9JNi4xLjEwMDEyNTEgMzg1IDAgUiAKLS9JNi4xLjEwMDEyNTIgMzg2IDAgUiAKLS9JNi4xLjEwMDEyNTMgMzg3IDAgUiAKLS9JNi4xLjEwMDEyNTQgMzg4IDAgUiAKLS9JNi4xLjEwMDEyNTUgMzg5IDAgUiAKLS9JNi4xLjEwMDEyNTYgMzkwIDAgUiAKLS9JNi4xLjEwMDEyNTcgMzkxIDAgUiAKLS9JNi4xLjEwMDEyNTggMzkyIDAgUiAKLS9JNi4xLjEwMDEyNTkgMzkzIDAgUiAKLS9JNi4xLjEwMDEyNjAgMzk0IDAgUiAKLS9JNi4xLjEwMDEyNjEgMzk1IDAgUiAKLS9JNi4xLjEwMDEyNjIgMzk2IDAgUiAKLS9JNi4xLjEwMDEyNjMgMzk3IDAgUiAKLS9JNi4xLjEwMDEyNjQgMzk4IDAgUiAKLS9JNi4xLjEwMDEyNjUgMzk5IDAgUiAKLS9JNi4xLjEwMDEyNjYgNDAwIDAgUiAKLS9JNi4xLjEwMDEyNjcgNDAxIDAgUiAKLS9JNi4xLjEwMDEyNjggNDAyIDAgUiAKLS9JNi4xLjEwMDEyNjkgNDA5IDAgUiAKLS9JNi4xLjEwMDEyNzAgNDEwIDAgUiAKLS9JNi4xLjEwMDEyNzEgNDExIDAgUiAKLS9JNi4xLjEwMDEyNzIgNDEyIDAgUiAKLS9JNi4xLjEwMDEyNzMgNDEzIDAgUiAKLS9JNi4xLjEwMDEyNzQgNDE0IDAgUiAKLS9JNi4xLjEwMDEyNzUgNDE1IDAgUiAKLS9JNi4xLjEwMDEyNzYgNDE2IDAgUiAKLS9JNi4xLjEwMDEyNzcgNDE3IDAgUiAKLS9JNi4xLjEwMDEyNzggNDE4IDAgUiAKLS9JNi4xLjEwMDEyNzkgNDE5IDAgUiAKLS9JNi4xLjEwMDEyODAgNDIwIDAgUiAKLS9JNi4xLjEwMDEyODEgNDIxIDAgUiAKLS9JNi4xLjEwMDEyODIgNDIyIDAgUiAKLS9JNi4xLjEwMDEyODMgNDIzIDAgUiAKLS9JNi4xLjEwMDEyODQgNDI0IDAgUiAKLS9JNi4xLjEwMDEyODUgNDI1IDAgUiAKLS9JNi4xLjEwMDEyODYgNDI2IDAgUiAKLS9JNi4xLjEwMDEyODcgNDI3IDAgUiAKLS9JNi4xLjEwMDEyODggNDI4IDAgUiAKLS9JNi4xLjEwMDEyODkgNDI5IDAgUiAKLS9JNi4xLjEwMDEyOTAgNDMwIDAgUiAKLS9JNi4xLjEwMDEyOTEgNDMxIDAgUiAKLS9JNi4xLjEwMDEyOTIgNDM4IDAgUiAKLS9JNi4xLjEwMDEyOTMgNDM5IDAgUiAKLS9JNi4xLjEwMDEyOTQgNDQwIDAgUiAKLS9JNi4xLjEwMDEyOTUgNDQxIDAgUiAKLS9JNi4xLjEwMDEyOTYgNDQyIDAgUiAKLS9JNi4xLjEwMDEyOTcgNDQzIDAgUiAKLS9JNi4xLjEwMDEyOTggNDQ0IDAgUiAKLS9JNi4xLjEwMDEyOTkgNDQ1IDAgUiAKLS9JNi4xLjEwMDEzMDAgNDQ2IDAgUiAKLS9JNi4xLjEwMDEzMDEgNDQ3IDAgUiAKLS9JNi4xLjEwMDEzMDIgNDQ4IDAgUiAKLS9JNi4xLjEwMDEzMDMgNDQ5IDAgUiAKLS9JNi4xLjEwMDEzMDQgNDUwIDAgUiAKLS9JNi4xLjEwMDEzMDUgNDU2IDAgUiAKLS9JNi4xLjEwMDEzMDYgNDU3IDAgUiAKLS9JNi4xLjEwMDEzMDcgNDU4IDAgUiAKLS9JNi4xLjEwMDEzMDggNDU5IDAgUiAKLS9JNi4xLjEwMDEzMDkgNDYwIDAgUiAKLS9JNi4xLjEwMDEzMTAgNDYxIDAgUiAKLS9JNi4xLjEwMDEzMTEgNDYyIDAgUiAKLS9JNi4xLjEwMDEzMTIgNDYzIDAgUiAKLS9JNi4xLjEwMDEzMTMgNDY0IDAgUiAKLS9JNi4xLjEwMDEzMTQgNDY1IDAgUiAKLS9JNi4xLjEwMDEzMTUgNDY2IDAgUiAKLS9JNi4xLjEwMDEzMTYgNDY3IDAgUiAKLS9JNi4xLjEwMDEzMTcgNDY4IDAgUiAKLS9JNi4xLjEwMDEzMTggNDY5IDAgUiAKLS9JNi4xLjEwMDEzMTkgNDcwIDAgUiAKLS9JNi4xLjEwMDEzMjAgNDcxIDAgUiAKLS9JNi4xLjEwMDEzMjEgNDcyIDAgUiAKLS9JNi4xLjEwMDEzMjIgNDc4IDAgUiAKLS9JNi4xLjEwMDEzMjMgNDc5IDAgUiAKLS9JNi4xLjEwMDEzMjQgNDgwIDAgUiAKLS9JNi4xLjEwMDEzMjUgNDgxIDAgUiAKLS9JNi4xLjEwMDEzMjYgNDgyIDAgUiAKLS9JNi4xLjEwMDEzMjcgNDgzIDAgUiAKLS9JNi4xLjEwMDEzMjggNDkwIDAgUiAKLS9JNi4xLjEwMDEzMjkgNTE5IDAgUiAKLS9JNi4xLjEwMDEzMzAgNDkxIDAgUiAKLS9JNi4xLjEwMDEzMzEgNDkyIDAgUiAKLS9JNi4xLjEwMDEzMzIgNDkzIDAgUiAKLS9JNi4xLjEwMDEzMzMgNDk0IDAgUiAKLS9JNi4xLjEwMDEzMzQgNDk1IDAgUiAKLS9JNi4xLjEwMDEzMzUgNDk2IDAgUiAKLS9JNi4xLjEwMDEzMzYgNDk3IDAgUiAKLS9JNi4xLjEwMDEzMzcgNDk4IDAgUiAKLS9JNi4xLjEwMDEzMzggNDk5IDAgUiAKLS9JNi4xLjEwMDEzMzkgNTAwIDAgUiAKLS9JNi4xLjEwMDEzNDAgNTA3IDAgUiAKLS9JNi4xLjEwMDEzNDEgNTA4IDAgUiAKLS9JNi4xLjEwMDEzNjQgNTEwIDAgUiAKLS9JNi4xLjEwMDEzNjUgNTExIDAgUiAKLS9JNi4xLjEwMDEzNjYgNTIwIDAgUiAKLS9JNi4xLjEwMDEzNjcgNTIxIDAgUiAKLS9JNi4xLjEwMDEzNjggNTEyIDAgUiAKLS9JNi4xLjEwMDEzNzEgNTA5IDAgUiAKLS9JNi4xLjEwMDEzNzIgNTIyIDAgUiAKLS9JNi4xLjEwMDEzNzMgNTIzIDAgUiAKLS9JNi4xLjEwMDEzNzQgNTI5IDAgUiAKLS9JNi4xLjEwMDEzNzUgNTMwIDAgUiAKLS9JNi4xLjEwMDEzNzYgNTMxIDAgUiAKLS9JNi4xLjEwMDEzNzkgNTM3IDAgUiAKLS9JNi4xLjEwMDEzODAgNTM4IDAgUiAKLS9JNi4xLjEwMDEzODEgNTM5IDAgUiAKLS9JNi4xLjEwMDEzODIgNTQwIDAgUiAKLS9JNi4xLjEwMDEzODMgNTQxIDAgUiAKLS9JNi4xLjEwMDEzODQgNTQ5IDAgUiAKLS9JNi4xLjEwMDEzODUgNTUwIDAgUiAKLS9JNi4xLjEwMDEzODYgNTUxIDAgUiAKLS9JNi4xLjEwMDEzODcgNTUyIDAgUiAKLS9JNi4xLjEwMDEzODggNTUzIDAgUiAKLS9JNi4xLjEwMDEzODkgNTU0IDAgUiAKLS9JNi4xLjEwMDEzOTAgNTYwIDAgUiAKLS9JNi4xLjEwMDEzOTEgNTYxIDAgUiAKLS9JNi4xLjEwMDEzOTIgNTYyIDAgUiAKLS9JNi4xLjEwMDEzOTMgNTYzIDAgUiAKLS9JNi4xLjEwMDEzOTQgNTY0IDAgUiAKLS9JNi4xLjEwMDEzOTUgNTY1IDAgUiAKLS9JNi4xLjEwMDEzOTYgNTcyIDAgUiAKLS9JNi4xLjEwMDEzOTcgNjIwIDAgUiAKLS9JNi4xLjEwMDEzOTggNTczIDAgUiAKLS9JNi4xLjEwMDEzOTkgNTc0IDAgUiAKLS9JNi4xLjEwMDE0MDAgNTc1IDAgUiAKLS9JNi4xLjEwMDE0MDEgNTgyIDAgUiAKLS9JNi4xLjEwMDE0MDIgNTgzIDAgUiAKLS9JNi4xLjEwMDE0MDMgNTg0IDAgUiAKLS9JNi4xLjEwMDE0MDQgNTg1IDAgUiAKLS9JNi4xLjEwMDE0MDUgNTkxIDAgUiAKLS9JNi4xLjEwMDE0MDYgNTkyIDAgUiAKLS9JNi4xLjEwMDE0MDcgNjAzIDAgUiAKLS9JNi4xLjEwMDE0MDggNjA0IDAgUiAKLS9JNi4xLjEwMDE0MDkgNjExIDAgUiAKLS9JNi4xLjEwMDE0MTAgNjEyIDAgUiAKLS9JNi4xLjEwMDE0MTEgNjEzIDAgUiAKLS9JNi4xLjEwMDE0MTIgNjIxIDAgUiAKLS9JNi4xLjEwMDE0MTMgNjIyIDAgUiAKLS9JNi4xLjEwMDE0MTQgNTc2IDAgUiAKLS9JNi4xLjEwMDE0MTUgNjIzIDAgUiAKLS9JNi4xLjEwMDE0MTYgNjgwIDAgUiAKLS9JNi4xLjEwMDE0MTcgNjI0IDAgUiAKLS9JNi4xLjEwMDE0MTggNjI1IDAgUiAKLS9JNi4xLjEwMDE0MTkgNjMxIDAgUiAKLS9JNi4xLjEwMDE0MjAgNjMyIDAgUiAKLS9JNi4xLjEwMDE0MjEgNjMzIDAgUiAKLS9JNi4xLjEwMDE0MjQgNjM0IDAgUiAKLS9JNi4xLjEwMDE0MjUgNjQwIDAgUiAKLS9JNi4xLjEwMDE0MjYgNjQxIDAgUiAKLS9JNi4xLjEwMDE0MjcgNjQyIDAgUiAKLS9JNi4xLjEwMDE0MjggNjQzIDAgUiAKLS9JNi4xLjEwMDE0MjkgNjQ0IDAgUiAKLS9JNi4xLjEwMDE0MzAgNjQ1IDAgUiAKLS9JNi4xLjEwMDE0MzEgNjQ2IDAgUiAKLS9JNi4xLjEwMDE0MzIgNjUzIDAgUiAKLS9JNi4xLjEwMDE0MzMgNjU0IDAgUiAKLS9JNi4xLjEwMDE0MzQgNjU1IDAgUiAKLS9JNi4xLjEwMDE0MzUgNjU2IDAgUiAKLS9JNi4xLjEwMDE0MzYgNjYyIDAgUiAKLS9JNi4xLjEwMDE0MzcgNjYzIDAgUiAKLS9JNi4xLjEwMDE0MzggNjY0IDAgUiAKLS9JNi4xLjEwMDE0MzkgNjcwIDAgUiAKLS9JNi4xLjEwMDE0NDAgNjcxIDAgUiAKLS9JNi4xLjEwMDE0NDEgNjcyIDAgUiAKLS9JNi4xLjEwMDE0NDIgNjczIDAgUiAKLS9JNi4xLjEwMDE0NDMgNjgxIDAgUiAKLS9JNi4xLjEwMDE0NDQgNjgyIDAgUiAKLS9JNi4xLjEwMDE0NDUgNjgzIDAgUiAKLS9JNi4xLjEwMDE0NDYgNjg0IDAgUiAKLS9JNi4xLjEwMDE0NDcgNjg1IDAgUiAKLS9JNi4xLjEwMDE0NDggNjg2IDAgUiAKLS9JNi4xLjEwMDE0NDkgNjkyIDAgUiAKLS9JNi4xLjEwMDE0NTAgNjkzIDAgUiAKLS9JNi4xLjEwMDE0NTEgNjk0IDAgUiAKLS9JNi4xLjEwMDE0NTIgNzAxIDAgUiAKLS9JNi4xLjEwMDE0NTMgNzEzIDAgUiAKLS9JNi4xLjEwMDE0NTQgNTQyIDAgUiAKLS9JNi4xLjEwMDE0NTUgNTQzIDAgUiAKLS9JNi4xLjEwMDE0NTYgNjQ3IDAgUiAKLS9JNi4xLjEwMDE0NTcgNzAyIDAgUiAKLS9JNi4xLjEwMDE0NTggNzAzIDAgUiAKLS9JNi4xLjEwMDE0NTkgNzA0IDAgUiAKLS9JNi4xLjEwMDE0NjAgNzA1IDAgUiAKLS9JNi4xLjEwMDE0NjEgNzE0IDAgUiAKLS9JNi4xLjEwMDE0NjIgNzE1IDAgUiAKLS9JNi4xLjEwMDE0NjMgNzE2IDAgUiAKLS9JNi4xLjEwMDE0NjQgNzQ1IDAgUiAKLS9JNi4xLjEwMDE0NjUgNzE3IDAgUiAKLS9JNi4xLjEwMDE0NjYgNzE4IDAgUiAKLS9JNi4xLjEwMDE0NjcgNzI0IDAgUiAKLS9JNi4xLjEwMDE0NjggNzI1IDAgUiAKLS9JNi4xLjEwMDE0NjkgNzI2IDAgUiAKLS9JNi4xLjEwMDE0NzAgNzI3IDAgUiAKLS9JNi4xLjEwMDE0NzEgNzI4IDAgUiAKLS9JNi4xLjEwMDE0NzIgNzI5IDAgUiAKLS9JNi4xLjEwMDE0NzMgNzM1IDAgUiAKLS9JNi4xLjEwMDE0NzQgNzM2IDAgUiAKLS9JNi4xLjEwMDE0NzUgNzM3IDAgUiAKLS9JNi4xLjEwMDE0NzYgNzM4IDAgUiAKLS9JNi4xLjEwMDE1MDIgNTkzIDAgUiAKLS9JNi4xLjEwMDE1MDMgNTk0IDAgUiAKLS9JNi4xLjEwMDE1MDQgNTk1IDAgUiAKLS9JNi4xLjEwMDE1MDUgNTk2IDAgUiAKLS9JNi4xLjEwMDE1MDYgNTk3IDAgUiAKLS9JNy4xLjk5ODE1NyA3NTUgMCBSIAotL0k3LjEuOTk4MTU5IDc1NiAwIFIgCi0vSTcuMS45OTgxNjAgNzU3IDAgUiAKLS9JNy4xLjk5ODE2MSA3NjggMCBSIAotL0k3LjEuOTk4MTYyIDc2OSAwIFIgCi0vSTcuMS45OTgxNjMgNzcwIDAgUiAKLS9JNy4xLjk5ODE2NCA3NzEgMCBSIAotL0k3LjEuOTk4MTY1IDc3MiAwIFIgCi0vSTcuMS45OTgxNjYgNzU4IDAgUiAKLS9JNy4xLjk5ODE2NyA3OTMgMCBSIAotL0k3LjEuOTk4MTY4IDc4MCAwIFIgCi0vSTcuMS45OTgxNjkgNzgxIDAgUiAKLS9JNy4xLjk5ODE3MCA3ODIgMCBSIAotL0k3LjEuOTk4MTcxIDc4MyAwIFIgCi0vSTcuMS45OTgxNzIgNzg0IDAgUiAKLS9JNy4xLjk5ODE3MyA3OTQgMCBSIAotL0k3LjEuOTk4MTc0IDc5NSAwIFIgCi0vSTguMS45OTk3NjggODA1IDAgUiAKLS9JOC4xLjk5OTc2OSA4MDYgMCBSIAotL0k4LjEuOTk5NzcwIDgwNyAwIFIgCi0vSTguMS45OTk3NzEgODA4IDAgUiAKLS9JOC4xLjk5OTc3MiA4MTcgMCBSIAotL0k4LjEuOTk5NzczIDgxOCAwIFIgCi0vSTguMS45OTk3NzQgODE5IDAgUiAKLS9JOC4xLjk5OTc3NSA4MjAgMCBSIAotL0k4LjEuOTk5Nzc2IDgyMSAwIFIgCi0vSTguMS45OTk3NzcgODIyIDAgUiAKLS9JOC4xLjk5OTc3OCA4MjMgMCBSIAotL0k4LjEuOTk5Nzc5IDgzMCAwIFIgCi0vSTguMS45OTk3ODAgODMxIDAgUiAKLS9JOC4xLjk5OTc4MSA4MzIgMCBSIAotL0k4LjEuOTk5NzgyIDgzMyAwIFIgCi0vSTguMS45OTk3ODMgODM0IDAgUiAKLS9JOC4xLjk5OTc4NCA4NDEgMCBSIAotL0k4LjEuOTk5Nzg1IDg0MiAwIFIgCi0vSTguMS45OTk3ODYgODQzIDAgUiAKLS9JOC4xLjk5OTc4NyA4NDkgMCBSIAotL0k4LjEuOTk5Nzg4IDg1MCAwIFIgCi0vSTguMS45OTk3ODkgODUxIDAgUiAKLS9JOC4xLjk5OTc5MCA4NTcgMCBSIAotL0k4LjEuOTk5NzkxIDg1OCAwIFIgCi0vSTguMS45OTk3OTIgODY1IDAgUiAKLS9JOC4xLjk5OTc5MyA4NjYgMCBSIAotL0k4LjEuOTk5Nzk0IDg2NyAwIFIgCi0vSTguMS45OTk3OTUgODY4IDAgUiAKLS9JOC4xLjk5OTc5NiA4NzYgMCBSIAotL0k4LjEuOTk5Nzk3IDg3NyAwIFIgCi0vSTguMS45OTk3OTggOTA1IDAgUiAKLS9JOC4xLjk5OTc5OSA5MDYgMCBSIAotL0k4LjEuOTk5ODAwIDkxMyAwIFIgCi0vSTguMS45OTk4MDEgOTE0IDAgUiAKLS9JOC4xLjk5OTgwMiA5MjkgMCBSIAotL0k4LjEuOTk5ODAzIDkzMCAwIFIgCi0vSTguMS45OTk4MDQgOTQwIDAgUiAKLS9JOC4xLjk5OTgwNSA5NDEgMCBSIAotL0k4LjEuOTk5ODA2IDk0MiAwIFIgCi0vSTguMS45OTk4MDcgOTQzIDAgUiAKLS9JOS4xLjk5OTA2OSA5NTMgMCBSIAotL0k5LjEuOTk5MDcwIDEwNTEgMCBSIAotL0k5LjEuOTk5MDc1IDk1NCAwIFIgCi0vSTkuMS45OTkwNzYgOTU1IDAgUiAKLS9JOS4xLjk5OTA3NyA5NjIgMCBSIAotL0k5LjEuOTk5MDc4IDk2MyAwIFIgCi0vSTkuMS45OTkwNzkgOTY0IDAgUiAKLS9JOS4xLjk5OTA4MCA5NzAgMCBSIAotL0k5LjEuOTk5MDgxIDk3MSAwIFIgCi0vSTkuMS45OTkwODIgOTc4IDAgUiAKLS9JOS4xLjk5OTA4MyA5NzkgMCBSIAotL0k5LjEuOTk5MDg0IDk4MCAwIFIgCi0vSTkuMS45OTkwODUgOTgxIDAgUiAKLS9JOS4xLjk5OTA4NiA5ODggMCBSIAotL0k5LjEuOTk5MTAwIDk4OSAwIFIgCi0vSTkuMS45OTkxMDEgOTkwIDAgUiAKLS9JOS4xLjk5OTEwMiA5OTEgMCBSIAotL0k5LjEuOTk5MTAzIDk5MiAwIFIgCi0vSTkuMS45OTkxMDQgOTkzIDAgUiAKLS9JOS4xLjk5OTEwNSA5OTQgMCBSIAotL0k5LjEuOTk5MTA2IDk5NSAwIFIgCi0vSTkuMS45OTkxMDcgOTk2IDAgUiAKLS9JOS4xLjk5OTEwOCA5OTcgMCBSIAotL0k5LjEuOTk5MTA5IDk5OCAwIFIgCi0vSTkuMS45OTkxMTAgOTk5IDAgUiAKLS9JOS4xLjk5OTExMSAxMDAwIDAgUiAKLS9JOS4xLjk5OTExMiAxMDA3IDAgUiAKLS9JOS4xLjk5OTExMyAxMDE1IDAgUiAKLS9JOS4xLjk5OTExNCAxMDE2IDAgUiAKLS9JOS4xLjk5OTExNSAxMDE3IDAgUiAKLS9JOS4xLjk5OTExNiAxMDE4IDAgUiAKLS9JOS4xLjk5OTExNyAxMDE5IDAgUiAKLS9JOS4xLjk5OTExOCAxMDIwIDAgUiAKLS9JOS4xLjk5OTExOSAxMDIxIDAgUiAKLS9JOS4xLjk5OTEyMCAxMDIyIDAgUiAKLS9JOS4xLjk5OTEyMSAxMDI4IDAgUiAKLS9JOS4xLjk5OTEyMiAxMDI5IDAgUiAKLS9JOS4xLjk5OTEyMyAxMDMwIDAgUiAKLS9JOS4xLjk5OTEyNCAxMDMxIDAgUiAKLS9JOS4xLjk5OTEyNSAxMDQxIDAgUiAKLS9JOS4xLjk5OTEyNiAxMDMyIDAgUiAKLS9JOS4xLjk5OTEyNyAxMDMzIDAgUiAKLS9JOS4xLjk5OTE5NCAxMDQyIDAgUiAKLS9JOS4xLjk5OTE5NSAxMDQzIDAgUiAKLS9JOS4xLjk5OTE5NiAxMDUyIDAgUiAKLS9JOS4xLjk5OTE5NyAxMDUzIDAgUiAKLS9JOS4xLjk5OTE5OCAxMDU0IDAgUiAKLS9MLkRvY3VtZW50YXRpb24uU3lzdGVtIDkzOSAwIFIgCi0vTC5FeGNlcHRpb25zIDExMTAgMCBSIAotL0wuSW50cm9kdWN0aW9uIDI5MyAwIFIgCi0vTC5MaWJyYXJ5IDc5MiAwIFIgCi0vTC5QZXJsLjUgMTQxMCAwIFIgCi0vTC5QcmVmYWNlIDE5NiAwIFIgCi0vTC5QeXRob24gMTc4MyAwIFIgCi0vTC5TV0lHLkJhc2ljcyA3NDQgMCBSIAotL0wuU1dJRy5NYW51YWxJWCAzMDI4IDAgUiAKLS9MLlNXSUcuTWFudWFsVE9DIDE1NiAwIFIgCi0vTC5TY3JpcHRpbmcuTGFuZ3VhZ2VzIDM2MyAwIFIgCi0vTC5UY2wgMjE3MyAwIFIgCi0vTC5UaXRsZSAxNCAwIFIgCi0vTC5UeXBlbWFwcyAxMDUwIDAgUiAKLS9NMTQuOC5uZXdsaW5rLkEgMjE4NCAwIFIgCi0vTTE0LjgubmV3bGluay5CIDIyMDYgMCBSIAotL00xNC44Lm5ld2xpbmsuQyAyMjA4IDAgUiAKLS9NMTQuOC5uZXdsaW5rLkQgMjI5OSAwIFIgCi0vTTE0LjgubmV3bGluay5FIDIzNjMgMCBSIAotL00xNC44Lm5ld2xpbmsuRiAyNDAxIDAgUiAKLS9NMTQuOC5uZXdsaW5rLkcgMjQxNCAwIFIgCi0vTTE0LjgubmV3bGluay5IIDI0MTkgMCBSIAotL00xNC44Lm5ld2xpbmsuSSAyNDI4IDAgUiAKLS9NMTQuOC5uZXdsaW5rLkogMjQ2OCAwIFIgCi0vTTE0LjgubmV3bGluay5LIDI0NjkgMCBSIAotL00xNC44Lm5ld2xpbmsuTCAyNDcwIDAgUiAKLS9NMTQuOC5uZXdsaW5rLk0gMjQ4MSAwIFIgCi0vTTE0LjgubmV3bGluay5OIDI1MDUgMCBSIAotL00xNC44Lm5ld2xpbmsuTnVtZXJpY3MgMjE4MyAwIFIgCi0vTTE0LjgubmV3bGluay5PIDI1MjUgMCBSIAotL00xNC44Lm5ld2xpbmsuUCAyNTMzIDAgUiAKLS9NMTQuOC5uZXdsaW5rLlEgMjcyMiAwIFIgCi0vTTE0LjgubmV3bGluay5SIDI3MjMgMCBSIAotL00xNC44Lm5ld2xpbmsuUyAyNzM1IDAgUiAKLS9NMTQuOC5uZXdsaW5rLlN5bWJvbHMgMjE4MSAwIFIgCi0vTTE0LjgubmV3bGluay5UIDI4MTggMCBSIAotL00xNC44Lm5ld2xpbmsuVSAyOTk0IDAgUiAKLS9NMTQuOC5uZXdsaW5rLlYgMzAwNCAwIFIgCi0vTTE0LjgubmV3bGluay5XIDMwMTggMCBSIAotL1AuMSAzIDAgUiAKLS9QLjEwIDIwNiAwIFIgCi0vUC4xMDAgMTE4MyAwIFIgCi0vUC4xMDEgMTE5MCAwIFIgCi0vUC4xMDIgMTE5OCAwIFIgCi0vUC4xMDMgMTIwMyAwIFIgCi0vUC4xMDQgMTIwOSAwIFIgCi0vUC4xMDUgMTIxNSAwIFIgCi0vUC4xMDYgMTIyMSAwIFIgCi0vUC4xMDcgMTIyNyAwIFIgCi0vUC4xMDggMTIzMyAwIFIgCi0vUC4xMDkgMTIzOSAwIFIgCi0vUC4xMSAyMTQgMCBSIAotL1AuMTEwIDEyNDUgMCBSIAotL1AuMTExIDEyNTEgMCBSIAotL1AuMTEyIDEyNTggMCBSIAotL1AuMTEzIDEyNjMgMCBSIAotL1AuMTE0IDEyNjggMCBSIAotL1AuMTE1IDEyNzcgMCBSIAotL1AuMTE2IDEyODQgMCBSIAotL1AuMTE3IDEyODkgMCBSIAotL1AuMTE4IDEyOTQgMCBSIAotL1AuMTE5IDEzMDAgMCBSIAotL1AuMTIgMjIyIDAgUiAKLS9QLjEyMCAxMzExIDAgUiAKLS9QLjEyMSAxMzE3IDAgUiAKLS9QLjEyMiAxMzIzIDAgUiAKLS9QLjEyMyAxMzI5IDAgUiAKLS9QLjEyNCAxMzM1IDAgUiAKLS9QLjEyNSAxMzQxIDAgUiAKLS9QLjEyNiAxMzQ2IDAgUiAKLS9QLjEyNyAxMzYwIDAgUiAKLS9QLjEyOCAxMzY4IDAgUiAKLS9QLjEyOSAxMzc3IDAgUiAKLS9QLjEzIDIzMSAwIFIgCi0vUC4xMzAgMTM4MiAwIFIgCi0vUC4xMzEgMTM4OCAwIFIgCi0vUC4xMzIgMTM5NSAwIFIgCi0vUC4xMzMgMTQwMiAwIFIgCi0vUC4xMzQgMTQwOSAwIFIgCi0vUC4xMzUgMTQxOSAwIFIgCi0vUC4xMzYgMTQyNyAwIFIgCi0vUC4xMzcgMTQzNiAwIFIgCi0vUC4xMzggMTQ0NCAwIFIgCi0vUC4xMzkgMTQ1MyAwIFIgCi0vUC4xNCAyNDEgMCBSIAotL1AuMTQwIDE0NTkgMCBSIAotL1AuMTQxIDE0NjcgMCBSIAotL1AuMTQyIDE0NzYgMCBSIAotL1AuMTQzIDE0ODMgMCBSIAotL1AuMTQ0IDE0ODkgMCBSIAotL1AuMTQ1IDE0OTkgMCBSIAotL1AuMTQ2IDE1MDYgMCBSIAotL1AuMTQ3IDE1MTEgMCBSIAotL1AuMTQ4IDE1MTYgMCBSIAotL1AuMTQ5IDE1MjIgMCBSIAotL1AuMTUgMjUxIDAgUiAKLS9QLjE1MCAxNTI3IDAgUiAKLS9QLjE1MSAxNTMzIDAgUiAKLS9QLjE1MiAxNTM5IDAgUiAKLS9QLjE1MyAxNTQ1IDAgUiAKLS9QLjE1NCAxNTUyIDAgUiAKLS9QLjE1NSAxNTYwIDAgUiAKLS9QLjE1NiAxNTY1IDAgUiAKLS9QLjE1NyAxNTcxIDAgUiAKLS9QLjE1OCAxNTc3IDAgUiAKLS9QLjE1OSAxNTgyIDAgUiAKLS9QLjE2IDI2MSAwIFIgCi0vUC4xNjAgMTU4NyAwIFIgCi0vUC4xNjEgMTU5MyAwIFIgCi0vUC4xNjIgMTYwMiAwIFIgCi0vUC4xNjMgMTYxMSAwIFIgCi0vUC4xNjQgMTYxNyAwIFIgCi0vUC4xNjUgMTYyMyAwIFIgCi0vUC4xNjYgMTYyOSAwIFIgCi0vUC4xNjcgMTY0MiAwIFIgCi0vUC4xNjggMTY0OSAwIFIgCi0vUC4xNjkgMTY1NSAwIFIgCi0vUC4xNyAyNzMgMCBSIAotL1AuMTcwIDE2NjAgMCBSIAotL1AuMTcxIDE2NjYgMCBSIAotL1AuMTcyIDE2NzMgMCBSIAotL1AuMTczIDE2ODAgMCBSIAotL1AuMTc0IDE2ODYgMCBSIAotL1AuMTc1IDE2OTUgMCBSIAotL1AuMTc2IDE3MDMgMCBSIAotL1AuMTc3IDE3MTAgMCBSIAotL1AuMTc4IDE3MTcgMCBSIAotL1AuMTc5IDE3MjIgMCBSIAotL1AuMTggMjgzIDAgUiAKLS9QLjE4MCAxNzI3IDAgUiAKLS9QLjE4MSAxNzMzIDAgUiAKLS9QLjE4MiAxNzQzIDAgUiAKLS9QLjE4MyAxNzQ5IDAgUiAKLS9QLjE4NCAxNzU3IDAgUiAKLS9QLjE4NSAxNzY0IDAgUiAKLS9QLjE4NiAxNzcwIDAgUiAKLS9QLjE4NyAxNzc1IDAgUiAKLS9QLjE4OCAxNzgyIDAgUiAKLS9QLjE4OSAxNzkxIDAgUiAKLS9QLjE5IDI5MiAwIFIgCi0vUC4xOTAgMTgwNyAwIFIgCi0vUC4xOTEgMTgxNiAwIFIgCi0vUC4xOTIgMTgyOCAwIFIgCi0vUC4xOTMgMTg0MSAwIFIgCi0vUC4xOTQgMTg0OSAwIFIgCi0vUC4xOTUgMTg1NyAwIFIgCi0vUC4xOTYgMTg2OSAwIFIgCi0vUC4xOTcgMTg3NSAwIFIgCi0vUC4xOTggMTg4MiAwIFIgCi0vUC4xOTkgMTg5MSAwIFIgCi0vUC4yIDEzIDAgUiAKLS9QLjIwIDMwNiAwIFIgCi0vUC4yMDAgMTkwMiAwIFIgCi0vUC4yMDEgMTkwOCAwIFIgCi0vUC4yMDIgMTkxNCAwIFIgCi0vUC4yMDMgMTkxOSAwIFIgCi0vUC4yMDQgMTkyNCAwIFIgCi0vUC4yMDUgMTkzMSAwIFIgCi0vUC4yMDYgMTk0MCAwIFIgCi0vUC4yMDcgMTk0NiAwIFIgCi0vUC4yMDggMTk1NCAwIFIgCi0vUC4yMDkgMTk2MSAwIFIgCi0vUC4yMSAzMTQgMCBSIAotL1AuMjEwIDE5NjYgMCBSIAotL1AuMjExIDE5NzEgMCBSIAotL1AuMjEyIDE5NzkgMCBSIAotL1AuMjEzIDE5ODggMCBSIAotL1AuMjE0IDE5OTUgMCBSIAotL1AuMjE1IDIwMDAgMCBSIAotL1AuMjE2IDIwMDYgMCBSIAotL1AuMjE3IDIwMTIgMCBSIAotL1AuMjE4IDIwMTggMCBSIAotL1AuMjE5IDIwMjQgMCBSIAotL1AuMjIgMzI0IDAgUiAKLS9QLjIyMCAyMDI5IDAgUiAKLS9QLjIyMSAyMDQ0IDAgUiAKLS9QLjIyMiAyMDYxIDAgUiAKLS9QLjIyMyAyMDc4IDAgUiAKLS9QLjIyNCAyMDgzIDAgUiAKLS9QLjIyNSAyMDkxIDAgUiAKLS9QLjIyNiAyMDk5IDAgUiAKLS9QLjIyNyAyMTA2IDAgUiAKLS9QLjIyOCAyMTE0IDAgUiAKLS9QLjIyOSAyMTE5IDAgUiAKLS9QLjIzIDMzMyAwIFIgCi0vUC4yMzAgMjEyNyAwIFIgCi0vUC4yMzEgMjEzNSAwIFIgCi0vUC4yMzIgMjE0NCAwIFIgCi0vUC4yMzMgMjE1MCAwIFIgCi0vUC4yMzQgMjE1NiAwIFIgCi0vUC4yMzUgMjE2NCAwIFIgCi0vUC4yMzYgMjE3MiAwIFIgCi0vUC4yMzcgMjE3OSAwIFIgCi0vUC4yMzggMjI3OSAwIFIgCi0vUC4yMzkgMjM4NiAwIFIgCi0vUC4yNCAzNDQgMCBSIAotL1AuMjQwIDI0ODcgMCBSIAotL1AuMjQxIDI1ODkgMCBSIAotL1AuMjQyIDI3MDYgMCBSIAotL1AuMjQzIDI4MTMgMCBSIAotL1AuMjQ0IDI5MjMgMCBSIAotL1AuMjQ1IDMwMjcgMCBSIAotL1AuMjUgMzYyIDAgUiAKLS9QLjI2IDM3NiAwIFIgCi0vUC4yNyA0MDggMCBSIAotL1AuMjggNDM3IDAgUiAKLS9QLjI5IDQ1NSAwIFIgCi0vUC4zIDE4IDAgUiAKLS9QLjMwIDQ3NyAwIFIgCi0vUC4zMSA0ODkgMCBSIAotL1AuMzIgNTA2IDAgUiAKLS9QLjMzIDUxOCAwIFIgCi0vUC4zNCA1MjggMCBSIAotL1AuMzUgNTM2IDAgUiAKLS9QLjM2IDU0OCAwIFIgCi0vUC4zNyA1NTkgMCBSIAotL1AuMzggNTcxIDAgUiAKLS9QLjM5IDU4MSAwIFIgCi0vUC40IDYzIDAgUiAKLS9QLjQwIDU5MCAwIFIgCi0vUC40MSA2MDIgMCBSIAotL1AuNDIgNjEwIDAgUiAKLS9QLjQzIDYxOSAwIFIgCi0vUC40NCA2MzAgMCBSIAotL1AuNDUgNjM5IDAgUiAKLS9QLjQ2IDY1MiAwIFIgCi0vUC40NyA2NjEgMCBSIAotL1AuNDggNjY5IDAgUiAKLS9QLjQ5IDY3OSAwIFIgCi0vUC41IDEwOSAwIFIgCi0vUC41MCA2OTEgMCBSIAotL1AuNTEgNzAwIDAgUiAKLS9QLjUyIDcxMiAwIFIgCi0vUC41MyA3MjMgMCBSIAotL1AuNTQgNzM0IDAgUiAKLS9QLjU1IDc0MyAwIFIgCi0vUC41NiA3NTMgMCBSIAotL1AuNTcgNzY3IDAgUiAKLS9QLjU4IDc3OSAwIFIgCi0vUC41OSA3OTEgMCBSIAotL1AuNiAxNTUgMCBSIAotL1AuNjAgODAzIDAgUiAKLS9QLjYxIDgxNiAwIFIgCi0vUC42MiA4MjkgMCBSIAotL1AuNjMgODQwIDAgUiAKLS9QLjY0IDg0OCAwIFIgCi0vUC42NSA4NTYgMCBSIAotL1AuNjYgODY0IDAgUiAKLS9QLjY3IDg3NSAwIFIgCi0vUC42OCA4ODIgMCBSIAotL1AuNjkgODg3IDAgUiAKLS9QLjcgMTc2IDAgUiAKLS9QLjcwIDg5MiAwIFIgCi0vUC43MSA4OTcgMCBSIAotL1AuNzIgOTA0IDAgUiAKLS9QLjczIDkxMiAwIFIgCi0vUC43NCA5MTkgMCBSIAotL1AuNzUgOTI4IDAgUiAKLS9QLjc2IDkzOCAwIFIgCi0vUC43NyA5NTEgMCBSIAotL1AuNzggOTYxIDAgUiAKLS9QLjc5IDk2OSAwIFIgCi0vUC44IDE4OCAwIFIgCi0vUC44MCA5NzcgMCBSIAotL1AuODEgOTg3IDAgUiAKLS9QLjgyIDEwMDYgMCBSIAotL1AuODMgMTAxNCAwIFIgCi0vUC44NCAxMDI3IDAgUiAKLS9QLjg1IDEwNDAgMCBSIAotL1AuODYgMTA0OSAwIFIgCi0vUC44NyAxMDYyIDAgUiAKLS9QLjg4IDEwNzUgMCBSIAotL1AuODkgMTA4MyAwIFIgCi0vUC45IDE5NSAwIFIgCi0vUC45MCAxMDkyIDAgUiAKLS9QLjkxIDExMDAgMCBSIAotL1AuOTIgMTEwOSAwIFIgCi0vUC45MyAxMTE5IDAgUiAKLS9QLjk0IDExMjkgMCBSIAotL1AuOTUgMTEzOSAwIFIgCi0vUC45NiAxMTQ4IDAgUiAKLS9QLjk3IDExNTYgMCBSIAotL1AuOTggMTE2NCAwIFIgCi0vUC45OSAxMTc0IDAgUiAKLT4+IAotZW5kb2JqCi0zNDI4IDAgb2JqCi08PCAKLS9UeXBlIC9DYXRhbG9nIAotL1BhZ2VzIDExOTUgMCBSIAotL091dGxpbmVzIDM0MjUgMCBSIAotL1RocmVhZHMgMzQyNiAwIFIgCi0vRGVzdHMgMzQyNyAwIFIgCi0+PiAKLWVuZG9iagotMzQyOSAwIG9iagotPDwgL0ZpbHRlciBbIC9BU0NJSTg1RGVjb2RlIC9MWldEZWNvZGUgXSAvTGVuZ3RoIDM0MzAgMCBSID4+IAotc3RyZWFtCi0KLUouJ01TbztSXHEvTG03dWpNT1IhYXVnXlFhP2ZwO2krTzVMUChXb0whO0xwYStWPXVmZExmOm8wLWNfJDYzQjZuCi0wTGNyImAhJkxeSi9VMiROISdmbmAsJ0UtTWJNQmdkNk40WzwmRmJLVXRIXnAjbVEmTFRvZUprODNmJ00lKXArZAotYCtoOlJPQFo4LmlLMmknNThLN0VAazBbY2FbQFNDYVd0aiw8OUBhUDk4VE1aRVJfakFVWEVqczErXGYxMGMoOlIKLV9mNVwrRV0rXkRFXkJmKDU4I2xdJTdTMGNTQWFLIiMrO0BKIjIqQSFRYzxPQCknUjooL1cuZDdvOmNaZzFvRF5QCi1fLWxjIj5XKlo5TThgcm9SP2BAayxFZzBpZV0/aCJDYl80I1ZkMDwrcE90ci47NWs4MEImXUdwV0dlZkEwcldEVQotTUFvV0FaMlFePj10Z2EkSVQmJEJnOWBqVyUnOjtoOEU9SGUkQicuKi5raSlcRj1LSlkxRDlOIW4uUDROTj9gXScKLU5QNyhzIzRGS0NNZ0RCXyR0czFpMGdVXyRpW2FKLGA6cSldaSorJicvNl5nNU1kXGw+J1dBOEpFWjldVmtib2RoCi1NSkk3MjJpPSlSWCNmYnAzdGonQkpuNCUtYjBYckNeSjpnQCohWDY8ITxHOFUnPXQpLzEoMiYyTC5rXVMpbVpZSAotOSFHKytjdSdecUpIL2psLm80NW9mImBhWExiT2ssOEI7PktUbE5DUk4kSF4lMTY0LHJbaWA2b2drTFo/OkZzTCgKLTlYNkk1WXNqZG9XJFdqIjpmJj5FVU9eM0ElWUpIOzJcKEI9aE85NzFHaFArZVVTQDVoJD1hcSU7MmYhOiUzSVwkCi1lOmRBJ1RwVG1rWGdGPVMjMUJTYTAyLickVzgnNGlkITN1IiVsSCtXLlpULGVkOUZMJCIyYlR1ZHBrM1JMMmg/aQotMWcjZnUvUEhNOWQmK1MtVTB0aHFOMWc2LEI+Q2M/ayo8YWhaU1dYLCR0TDlOOnAvUmEiTU9vMENuL0snNVprVk8KLVVIaCkmP0Vcc2VAbU1jXGV0KGJDTiFrMzZmSTFSJ2hyLXFyQ2VMKUUnamE4bzdEVVwlZFFQXGVeJ0xkZygjN0BzCi0iPk5eZSdhUG9qQSFnUCZnOy5hTjEoTGlAJlJBJyMsKGptS1RtMk85M045KksoQyQoLD0vck1halFTNC9lXWJeRQotLCZXIl8xLjVtTj5rWTQlWFArR0VUciwrN11lY1RhPC9xKCVqPjtoVTc3bzFNQGMxLkRaOWJddCliMUNuMDlYXj8KLWdjRzcqPC8vUWdnbTBGJkZBa0wzZkpXajZRTFZYN19OO3BQTmBLaThDYlZNcyFXfj4KLWVuZHN0cmVhbQotZW5kb2JqCi0zNDMwIDAgb2JqCi0xMDM5IAotZW5kb2JqCi0zNDMxIDAgb2JqCi08PCAvRmlsdGVyIFsgL0FTQ0lJODVEZWNvZGUgL0xaV0RlY29kZSBdIC9MZW5ndGggMzQzMiAwIFIgPj4gCi1zdHJlYW0KLQotSi4nTVNvO1JccS9MbTd1ak1PUiFhdWdeUWE/ZnA7aStPNUxQKFdvTCE7THBhK1Y9dWZkTGY6bzAtY18kNjNCNm4KLTBMY3IiYCEmTF5KL1UyJE4hJ2ZuYCwnRS1NYk1CZ2Q2TjRbPCZGYktVdEhecCNtUSZMVG9lSms4M2YnTSUpcCtkCi1gK2g6Uk9AWjguaUsyaSc1OEs3RUBrMFtjYVtAU0NhV3RqLDw5QGFQOThUTVpFUl9qQVVYRWpzMStcZjEwYyg6UgotX2Y1XCtFXSteREVeQmYoNTgjbF0lN1MwY1NBYUsiIys7QEoiMipBIVFjPE9AKSdSOigvVy5kN286Y1pnMW9EXlAKLV8tbGMiPlcqWjlNOGByb1I/YEBrLEVnMGllXT9oIkNiXzQjVmQwPCtwT3RyLjs1azgwQiZdR3BXR2VmQTByV0RVCi1NQW9XQVoyUV4+PXRnYSRJVCYkQmc5YGpXJSc6O2g4RT1IZSRCJy4qLmtpKVxGPUtKWTFEOU4hbi5QNE5OP2BdJwotTlA3KHMjNEZLQ01nREJfJHRzMWkwZ1VfJGlbYUosYDpxKV1pKismJy82Xmc1TWRcbD4nU1FWcGpWZkBbT0RZYmoKLVU3ZGI9LkJVYWNoQzxDPVhSIWZcbHFGOlIkJ1VuUi5tXkNTckFxI0ZFI1QhOCI5ZSpHOj9uQVlhSCUjcikpNVE9Ci1EVF1YaS5gLj1LNitDSmJLRTViIlhabXRdPjYoVVIrTXAyTCw5VDV1S3VqPjswVFNTL2F1bVBob1J1XiRFXFxzWgotNEw2X1UxZUI7VGA+MW5aVFU7LiQ1c1U1XU5ZL01aMk40RE1rUlwzZlcubTZqVU9fVmowKiknTTBvXCU9YFxQcHMKLSRibS1BWThhSlpMR1kxSzkkKElYMFpJJGppKHRuX19hcy8iTj9iK2Y8JG4/PGtWLnUyYlY6OVIwXUsyblpVKSo2Ci0oS2NsLE47MWpZZlZxVydDXS4hVCRtU2xzJi4hSDwkUFpAWD5TKkFcNiw3SFo2KWw0Qm1ELzNhaSMyZ0FiWyh0ZQotTWxqLT0iOjJGJ3BhXDZqJylUcXFoQS1zRFwxMj9KTDw1R1cnS1IjWl5NWm9Wb0tMMnU7XkJnPD5nWmQ2TVMxYE0KLWQ6PkwwJ2FJKFBpVy10WUwiMVVVKENbJl1sXVkxZ2pNYEBCMl8zU3VMczBAdFJgWVlNQmZAPmFdK11aaG8lb0w3Ci1iVm8jPWtVZl5xN14kRDdDOjErZiFHSDNkQ0xPaig0OVpJJWkmbSNlOEJzJWtpb11NWSJZbjFBKC46STRHNCEwQgotNFcuU0RZRVtkNW0tZTYpQSM9SE0zWnNFNz9wSC9aPk4vbTolJy1vIkI4aS8qJDNtLkd+PgotZW5kc3RyZWFtCi1lbmRvYmoKLTM0MzIgMCBvYmoKLTEwNDIgCi1lbmRvYmoKLTM0MzMgMCBvYmoKLTw8IC9GaWx0ZXIgWyAvQVNDSUk4NURlY29kZSAvTFpXRGVjb2RlIF0gL0xlbmd0aCAzNDM0IDAgUiA+PiAKLXN0cmVhbQotCi1KLidNU287UlxxL0xtN3VqTU9SIWF1Z15RYT9mcDtpK081TFAoV29MITtMcGErVj11ZmRMZjpvMC1jXyQ2M0I2bgotMExjciJgISZMXkovVTIkTiEnZm5gLCdFLU1iTUJnZDZONFs8JkZiS1V0SF5wI21RJkxUb2VKazgzZidNJSlwK2QKLWAraDpST0BaOC5pSzJpJzU4SzdFQGswW2NhW0BTQ2FXdGosPDlAYVA5OFRNWkVSX2pBVVhFanMxK1xmMTBjKDpSCi1fZjVcK0VdK15ERV5CZig1OCNsXSU3UzBjU0FhSyIjKztASiIyKkEhUWM8T0ApJ1I6KC9XLmQ3bzpjWmcxb0ReUAotXy1sYyI+VypaOU04YHJvUj9gQGssRWcwaWVdP2giQ2JfNCNWZDA8K3BPdHIuOzVrODBCJl1HcFdHZWZBMHJXRFUKLU1Bb1dBWjJRXj49dGdhJElUJiRCZzlgalclJzo7aDhFPUhlJEInLioua2kpXEY9S0pZMUQ5TiFuLlA0Tk4/YF0nCi1OUDcocyM0RktDTWdEQl8kdHMxaTBnVV8kaVthSixgOnEpXWkqKyYnLzZeZzVNZFxsPidTUVZwalZmOGhVLEwqdAotaUNMTzAjdTlLS2dvOmhDVlZlRSFdTFwoJGIlYj1QM1I7YFEpWzxMcFdsLCxDWVtbWXU6PUJANldSL2tKbk8nIjYKLSgpSTJBWDQ3aWEuMm9RNEwvV21uKDVAXnFuZWE2ZyRBXWw3LEkjVE8iOU43QU86N2xpb0pSLFFiVWtNPk5zJUJlCi0sJTZcWTFeOS5DUUsnTW5BNl5Tak0zcTZWI19PUGEpXC5MNmF1OWZdIThhMCNAc0hdZSVcb2NmJi4ybmFkbzIzOAotL0pmU0JuQzNLZ1x0UEw0OGhJRV9SS2g1N0FOPE5pIWlYbTJObU4lITNZKylHQys+NnIjZ2xxcSZoQ2owLmFzOzQKLSlocj9UTkFmSCNOQWpVaVBrXyxqZUtTRDwyMm40L0xNPVEvNy4/SlgkKnVILiM3UCxdVS89XEAlZzlUSVRQVS47Ci1pQlVNVmdFU3NLTWRKLGhaWGxFVV1cb0A+VG85QTNWViJGVVIsREM/VGwqT15vY0lSL2xwXSNQOWxhZ20ndHNzUwotZGhVXD48ITRwUFpvbyRFJHRHWjE9UEgsXGF0YUk7NzJvVC1QIkxASl1xS1wwYF06JCJVX2E2IUpsZiVZMyFBaCoKLWt1SSlqRSRCMU9lTVAzWnAxM2x0PjBRJUNMN3RLVSluZSZTOy0mXFphUSwxOmokY2l1RFc5U1EqTzRSNjZsYTdNCi1nYjRvPmViaEsoOiVZVTpwIl5CVUI2STU1I2hWJDwhZ2BZcy0sUGJkXThmcEphX2lmKkMnIn4+Ci1lbmRzdHJlYW0KLWVuZG9iagotMzQzNCAwIG9iagotMTA0NSAKLWVuZG9iagoteHJlZgotMCAzNDM1IAotMDAwMDAwMDAwMCA2NTUzNSBmIAotMDAwMDAwMDAxNiAwMDAwMCBuIAotMDAwMDAwMDIxOCAwMDAwMCBuIAotMDAwMDAwMDQzMCAwMDAwMCBuIAotMDAwMDAwMDQ4NyAwMDAwMCBuIAotMDAwMDAwMDU0NCAwMDAwMCBuIAotMDAwMDAwMTQwMyAwMDAwMCBuIAotMDAwMDAwMTUyNCAwMDAwMCBuIAotMDAwMDAwMjU5NiAwMDAwMCBuIAotMDAwMDAwMzY2NiAwMDAwMCBuIAotMDAwMDAwNDczOCAwMDAwMCBuIAotMDAwMDAwNDgxNSAwMDAwMCBuIAotMDAwMDAwNDk2OCAwMDAwMCBuIAotMDAwMDAwNTA4NCAwMDAwMCBuIAotMDAwMDAwNTE0MyAwMDAwMCBuIAotMDAwMDAwNTIwMiAwMDAwMCBuIAotMDAwMDAwODE2MyAwMDAwMCBuIAotMDAwMDAwODI2NSAwMDAwMCBuIAotMDAwMDAwODY2NCAwMDAwMCBuIAotMDAwMDAwODcyMyAwMDAwMCBuIAotMDAwMDAwODc4MiAwMDAwMCBuIAotMDAwMDAwODg5OSAwMDAwMCBuIAotMDAwMDAwOTAxNiAwMDAwMCBuIAotMDAwMDAwOTEzMyAwMDAwMCBuIAotMDAwMDAwOTI1MCAwMDAwMCBuIAotMDAwMDAwOTM2NyAwMDAwMCBuIAotMDAwMDAwOTQ4NCAwMDAwMCBuIAotMDAwMDAwOTYwMSAwMDAwMCBuIAotMDAwMDAwOTcxOCAwMDAwMCBuIAotMDAwMDAwOTgzNSAwMDAwMCBuIAotMDAwMDAwOTk1MiAwMDAwMCBuIAotMDAwMDAxMDA2OSAwMDAwMCBuIAotMDAwMDAxMDE4NiAwMDAwMCBuIAotMDAwMDAxMDMwMyAwMDAwMCBuIAotMDAwMDAxMDQyMCAwMDAwMCBuIAotMDAwMDAxMDUzNyAwMDAwMCBuIAotMDAwMDAxMDY1NCAwMDAwMCBuIAotMDAwMDAxMDc3MSAwMDAwMCBuIAotMDAwMDAxMDg4OCAwMDAwMCBuIAotMDAwMDAxMTAwNSAwMDAwMCBuIAotMDAwMDAxMTEyMiAwMDAwMCBuIAotMDAwMDAxMTIzOSAwMDAwMCBuIAotMDAwMDAxMTM1NiAwMDAwMCBuIAotMDAwMDAxMTQ3MyAwMDAwMCBuIAotMDAwMDAxMTU5MCAwMDAwMCBuIAotMDAwMDAxMTcwNyAwMDAwMCBuIAotMDAwMDAxMTgyNCAwMDAwMCBuIAotMDAwMDAxMTk0MSAwMDAwMCBuIAotMDAwMDAxMjA1OCAwMDAwMCBuIAotMDAwMDAxMjE3NSAwMDAwMCBuIAotMDAwMDAxMjI5MiAwMDAwMCBuIAotMDAwMDAxMjQwOSAwMDAwMCBuIAotMDAwMDAxMjUyNyAwMDAwMCBuIAotMDAwMDAxMjY0NSAwMDAwMCBuIAotMDAwMDAxMjc2MyAwMDAwMCBuIAotMDAwMDAxMjg4MSAwMDAwMCBuIAotMDAwMDAxMjk5NiAwMDAwMCBuIAotMDAwMDAxMzA1MSAwMDAwMCBuIAotMDAwMDAxMzE0NCAwMDAwMCBuIAotMDAwMDAxNTQ1MiAwMDAwMCBuIAotMDAwMDAxNTU4NyAwMDAwMCBuIAotMDAwMDAxNjY2NCAwMDAwMCBuIAotMDAwMDAxNjc4MyAwMDAwMCBuIAotMDAwMDAxNzIyNiAwMDAwMCBuIAotMDAwMDAxNzI4NSAwMDAwMCBuIAotMDAwMDAxNzQwMCAwMDAwMCBuIAotMDAwMDAxNzUxNyAwMDAwMCBuIAotMDAwMDAxNzYzNCAwMDAwMCBuIAotMDAwMDAxNzc1MSAwMDAwMCBuIAotMDAwMDAxNzg2OCAwMDAwMCBuIAotMDAwMDAxNzk4NSAwMDAwMCBuIAotMDAwMDAxODEwMiAwMDAwMCBuIAotMDAwMDAxODIxOSAwMDAwMCBuIAotMDAwMDAxODMzNiAwMDAwMCBuIAotMDAwMDAxODQ1MyAwMDAwMCBuIAotMDAwMDAxODU3MCAwMDAwMCBuIAotMDAwMDAxODY4NyAwMDAwMCBuIAotMDAwMDAxODgwNCAwMDAwMCBuIAotMDAwMDAxODkyMSAwMDAwMCBuIAotMDAwMDAxOTAzOCAwMDAwMCBuIAotMDAwMDAxOTE1NSAwMDAwMCBuIAotMDAwMDAxOTI3MiAwMDAwMCBuIAotMDAwMDAxOTM4OSAwMDAwMCBuIAotMDAwMDAxOTUwNiAwMDAwMCBuIAotMDAwMDAxOTYyMyAwMDAwMCBuIAotMDAwMDAxOTc0MCAwMDAwMCBuIAotMDAwMDAxOTg1NyAwMDAwMCBuIAotMDAwMDAxOTk3NCAwMDAwMCBuIAotMDAwMDAyMDA5MSAwMDAwMCBuIAotMDAwMDAyMDIwOCAwMDAwMCBuIAotMDAwMDAyMDMyNSAwMDAwMCBuIAotMDAwMDAyMDQ0MiAwMDAwMCBuIAotMDAwMDAyMDU1OSAwMDAwMCBuIAotMDAwMDAyMDY3NiAwMDAwMCBuIAotMDAwMDAyMDc5MyAwMDAwMCBuIAotMDAwMDAyMDkxMCAwMDAwMCBuIAotMDAwMDAyMTAyNyAwMDAwMCBuIAotMDAwMDAyMTE0NCAwMDAwMCBuIAotMDAwMDAyMTI2MSAwMDAwMCBuIAotMDAwMDAyMTM3OCAwMDAwMCBuIAotMDAwMDAyMTQ5NSAwMDAwMCBuIAotMDAwMDAyMTYxMyAwMDAwMCBuIAotMDAwMDAyMTczMiAwMDAwMCBuIAotMDAwMDAyMTg1MSAwMDAwMCBuIAotMDAwMDAyMTk2OSAwMDAwMCBuIAotMDAwMDAyMjA4NiAwMDAwMCBuIAotMDAwMDAyMjE2NyAwMDAwMCBuIAotMDAwMDAyNDM0NyAwMDAwMCBuIAotMDAwMDAyNDQ3MiAwMDAwMCBuIAotMDAwMDAyNDk1MyAwMDAwMCBuIAotMDAwMDAyNTAxNCAwMDAwMCBuIAotMDAwMDAyNTEzMSAwMDAwMCBuIAotMDAwMDAyNTI1MCAwMDAwMCBuIAotMDAwMDAyNTM2OSAwMDAwMCBuIAotMDAwMDAyNTQ4OCAwMDAwMCBuIAotMDAwMDAyNTYwNyAwMDAwMCBuIAotMDAwMDAyNTcyNiAwMDAwMCBuIAotMDAwMDAyNTg0NSAwMDAwMCBuIAotMDAwMDAyNTk2NSAwMDAwMCBuIAotMDAwMDAyNjA4NSAwMDAwMCBuIAotMDAwMDAyNjIwNSAwMDAwMCBuIAotMDAwMDAyNjMyNCAwMDAwMCBuIAotMDAwMDAyNjQ0MyAwMDAwMCBuIAotMDAwMDAyNjU2MiAwMDAwMCBuIAotMDAwMDAyNjY4MSAwMDAwMCBuIAotMDAwMDAyNjgwMSAwMDAwMCBuIAotMDAwMDAyNjkyMSAwMDAwMCBuIAotMDAwMDAyNzA0MSAwMDAwMCBuIAotMDAwMDAyNzE2MSAwMDAwMCBuIAotMDAwMDAyNzI4MSAwMDAwMCBuIAotMDAwMDAyNzQwMSAwMDAwMCBuIAotMDAwMDAyNzUyMSAwMDAwMCBuIAotMDAwMDAyNzY0MCAwMDAwMCBuIAotMDAwMDAyNzc1OSAwMDAwMCBuIAotMDAwMDAyNzg3OSAwMDAwMCBuIAotMDAwMDAyNzk5OCAwMDAwMCBuIAotMDAwMDAyODExNyAwMDAwMCBuIAotMDAwMDAyODIzNiAwMDAwMCBuIAotMDAwMDAyODM1NSAwMDAwMCBuIAotMDAwMDAyODQ3NSAwMDAwMCBuIAotMDAwMDAyODU5NSAwMDAwMCBuIAotMDAwMDAyODcxNSAwMDAwMCBuIAotMDAwMDAyODgzNSAwMDAwMCBuIAotMDAwMDAyODk1NSAwMDAwMCBuIAotMDAwMDAyOTA3NSAwMDAwMCBuIAotMDAwMDAyOTE5NSAwMDAwMCBuIAotMDAwMDAyOTMxNCAwMDAwMCBuIAotMDAwMDAyOTQzMyAwMDAwMCBuIAotMDAwMDAyOTU1MiAwMDAwMCBuIAotMDAwMDAyOTY3MiAwMDAwMCBuIAotMDAwMDAyOTc5MCAwMDAwMCBuIAotMDAwMDAyOTkwNyAwMDAwMCBuIAotMDAwMDAyOTk5MCAwMDAwMCBuIAotMDAwMDAzMjM0MCAwMDAwMCBuIAotMDAwMDAzMjQ2NSAwMDAwMCBuIAotMDAwMDAzMjcxMCAwMDAwMCBuIAotMDAwMDAzMjc3MSAwMDAwMCBuIAotMDAwMDAzMjgzMiAwMDAwMCBuIAotMDAwMDAzMjk0OSAwMDAwMCBuIAotMDAwMDAzMzA2OCAwMDAwMCBuIAotMDAwMDAzMzE4NyAwMDAwMCBuIAotMDAwMDAzMzMwNiAwMDAwMCBuIAotMDAwMDAzMzQyNSAwMDAwMCBuIAotMDAwMDAzMzU0NSAwMDAwMCBuIAotMDAwMDAzMzY2NSAwMDAwMCBuIAotMDAwMDAzMzc4NCAwMDAwMCBuIAotMDAwMDAzMzkwMyAwMDAwMCBuIAotMDAwMDAzNDAyMiAwMDAwMCBuIAotMDAwMDAzNDE0MiAwMDAwMCBuIAotMDAwMDAzNDI1OCAwMDAwMCBuIAotMDAwMDAzNDM0MSAwMDAwMCBuIAotMDAwMDAzNTQxOSAwMDAwMCBuIAotMDAwMDAzNTU0NCAwMDAwMCBuIAotMDAwMDAzNTY3OSAwMDAwMCBuIAotMDAwMDAzNTczOSAwMDAwMCBuIAotMDAwMDAzNTc5OSAwMDAwMCBuIAotMDAwMDAzNTg1OSAwMDAwMCBuIAotMDAwMDAzNTkyMCAwMDAwMCBuIAotMDAwMDAzNTk4MSAwMDAwMCBuIAotMDAwMDAzNjA0MSAwMDAwMCBuIAotMDAwMDAzNjEwMSAwMDAwMCBuIAotMDAwMDAzNjE2MSAwMDAwMCBuIAotMDAwMDAzNjI0NCAwMDAwMCBuIAotMDAwMDAzOTY5MiAwMDAwMCBuIAotMDAwMDAzOTgyOSAwMDAwMCBuIAotMDAwMDAzOTk0NSAwMDAwMCBuIAotMDAwMDA0MDA4MCAwMDAwMCBuIAotMDAwMDA0MDE0MCAwMDAwMCBuIAotMDAwMDA0MDIwMCAwMDAwMCBuIAotMDAwMDA0MDI2MSAwMDAwMCBuIAotMDAwMDA0MDM0NCAwMDAwMCBuIAotMDAwMDA0NDE4MyAwMDAwMCBuIAotMDAwMDA0NDMwNyAwMDAwMCBuIAotMDAwMDA0NDQ0MiAwMDAwMCBuIAotMDAwMDA0NDUwMiAwMDAwMCBuIAotMDAwMDA0NDU2MiAwMDAwMCBuIAotMDAwMDA0NDYyMyAwMDAwMCBuIAotMDAwMDA0NDY4NCAwMDAwMCBuIAotMDAwMDA0NDc0NCAwMDAwMCBuIAotMDAwMDA0NDgwNCAwMDAwMCBuIAotMDAwMDA0NDg4NyAwMDAwMCBuIAotMDAwMDA0NzIxNSAwMDAwMCBuIAotMDAwMDA0NzM1MiAwMDAwMCBuIAotMDAwMDA0NzQ4NyAwMDAwMCBuIAotMDAwMDA0NzU0NyAwMDAwMCBuIAotMDAwMDA0NzYwNyAwMDAwMCBuIAotMDAwMDA0NzY2NyAwMDAwMCBuIAotMDAwMDA0NzcyOCAwMDAwMCBuIAotMDAwMDA0Nzc4OSAwMDAwMCBuIAotMDAwMDA0Nzg3MiAwMDAwMCBuIAotMDAwMDA1MTIyNyAwMDAwMCBuIAotMDAwMDA1MTM1MSAwMDAwMCBuIAotMDAwMDA1MTQ4NyAwMDAwMCBuIAotMDAwMDA1MTU0NyAwMDAwMCBuIAotMDAwMDA1MTYwNyAwMDAwMCBuIAotMDAwMDA1MTY2OCAwMDAwMCBuIAotMDAwMDA1MTc1MSAwMDAwMCBuIAotMDAwMDA1NTcxMyAwMDAwMCBuIAotMDAwMDA1NTg1MCAwMDAwMCBuIAotMDAwMDA1NjAxMiAwMDAwMCBuIAotMDAwMDA1NjE3MSAwMDAwMCBuIAotMDAwMDA1NjMwNyAwMDAwMCBuIAotMDAwMDA1NjM2NyAwMDAwMCBuIAotMDAwMDA1NjQyOCAwMDAwMCBuIAotMDAwMDA1NjQ4OCAwMDAwMCBuIAotMDAwMDA1NjU0OCAwMDAwMCBuIAotMDAwMDA1NjYzMSAwMDAwMCBuIAotMDAwMDA1OTc3MSAwMDAwMCBuIAotMDAwMDA1OTkzNCAwMDAwMCBuIAotMDAwMDA2MDA1MiAwMDAwMCBuIAotMDAwMDA2MDE3NSAwMDAwMCBuIAotMDAwMDA2MDMxMSAwMDAwMCBuIAotMDAwMDA2MDM3MiAwMDAwMCBuIAotMDAwMDA2MDQzMiAwMDAwMCBuIAotMDAwMDA2MDQ5MiAwMDAwMCBuIAotMDAwMDA2MDU1MiAwMDAwMCBuIAotMDAwMDA2MDYxMiAwMDAwMCBuIAotMDAwMDA2MDY3MiAwMDAwMCBuIAotMDAwMDA2MDc1NSAwMDAwMCBuIAotMDAwMDA2NDE4OCAwMDAwMCBuIAotMDAwMDA2NDMyNSAwMDAwMCBuIAotMDAwMDA2NDQ2MSAwMDAwMCBuIAotMDAwMDA2NDUyMiAwMDAwMCBuIAotMDAwMDA2NDU4MiAwMDAwMCBuIAotMDAwMDA2NDY0MiAwMDAwMCBuIAotMDAwMDA2NDcwMiAwMDAwMCBuIAotMDAwMDA2NDc2MiAwMDAwMCBuIAotMDAwMDA2NDgyMiAwMDAwMCBuIAotMDAwMDA2NDkwNSAwMDAwMCBuIAotMDAwMDA2NzYwNSAwMDAwMCBuIAotMDAwMDA2Nzc0MiAwMDAwMCBuIAotMDAwMDA2Nzg3OCAwMDAwMCBuIAotMDAwMDA2NzkzOSAwMDAwMCBuIAotMDAwMDA2Nzk5OSAwMDAwMCBuIAotMDAwMDA2ODA1OSAwMDAwMCBuIAotMDAwMDA2ODExOSAwMDAwMCBuIAotMDAwMDA2ODIwMiAwMDAwMCBuIAotMDAwMDA3MDM3MSAwMDAwMCBuIAotMDAwMDA3MDUwOCAwMDAwMCBuIAotMDAwMDA3MDY0NCAwMDAwMCBuIAotMDAwMDA3MDcwNCAwMDAwMCBuIAotMDAwMDA3MDc2NCAwMDAwMCBuIAotMDAwMDA3MDgyNSAwMDAwMCBuIAotMDAwMDA3MDg4NSAwMDAwMCBuIAotMDAwMDA3MDk0NSAwMDAwMCBuIAotMDAwMDA3MTAwNSAwMDAwMCBuIAotMDAwMDA3MTA2NSAwMDAwMCBuIAotMDAwMDA3MTEyNSAwMDAwMCBuIAotMDAwMDA3MTIwOCAwMDAwMCBuIAotMDAwMDA3NDQ0NiAwMDAwMCBuIAotMDAwMDA3NDU4MyAwMDAwMCBuIAotMDAwMDA3NDcxOSAwMDAwMCBuIAotMDAwMDA3NDc3OSAwMDAwMCBuIAotMDAwMDA3NDgzOSAwMDAwMCBuIAotMDAwMDA3NDkwMCAwMDAwMCBuIAotMDAwMDA3NDk2MCAwMDAwMCBuIAotMDAwMDA3NTAyMCAwMDAwMCBuIAotMDAwMDA3NTEwMyAwMDAwMCBuIAotMDAwMDA3ODQ5NyAwMDAwMCBuIAotMDAwMDA3ODYyMSAwMDAwMCBuIAotMDAwMDA3ODc1NyAwMDAwMCBuIAotMDAwMDA3ODgxNyAwMDAwMCBuIAotMDAwMDA3ODg3NyAwMDAwMCBuIAotMDAwMDA3ODkzNyAwMDAwMCBuIAotMDAwMDA3ODk5OCAwMDAwMCBuIAotMDAwMDA3OTA1OCAwMDAwMCBuIAotMDAwMDA3OTExOCAwMDAwMCBuIAotMDAwMDA3OTE3OCAwMDAwMCBuIAotMDAwMDA3OTIzOCAwMDAwMCBuIAotMDAwMDA3OTMyMSAwMDAwMCBuIAotMDAwMDA4MjgwMyAwMDAwMCBuIAotMDAwMDA4Mjk0MCAwMDAwMCBuIAotMDAwMDA4MzA3NiAwMDAwMCBuIAotMDAwMDA4MzEzNyAwMDAwMCBuIAotMDAwMDA4MzE5OCAwMDAwMCBuIAotMDAwMDA4MzI1OCAwMDAwMCBuIAotMDAwMDA4MzMxOCAwMDAwMCBuIAotMDAwMDA4MzM3OCAwMDAwMCBuIAotMDAwMDA4MzQ2MSAwMDAwMCBuIAotMDAwMDA5MTcxMCAwMDAwMCBuIAotMDAwMDA5MTc2NSAwMDAwMCBuIAotMDAwMDA5NDE3MyAwMDAwMCBuIAotMDAwMDA5NDM3NCAwMDAwMCBuIAotMDAwMDA5NTQyOCAwMDAwMCBuIAotMDAwMDA5NTU2NCAwMDAwMCBuIAotMDAwMDA5NTYyNCAwMDAwMCBuIAotMDAwMDA5NTY4NCAwMDAwMCBuIAotMDAwMDA5NTc0NSAwMDAwMCBuIAotMDAwMDA5NTgwNiAwMDAwMCBuIAotMDAwMDA5NTg2NiAwMDAwMCBuIAotMDAwMDA5NTkyNiAwMDAwMCBuIAotMDAwMDA5NjAwOSAwMDAwMCBuIAotMDAwMDA5ODE2NiAwMDAwMCBuIAotMDAwMDA5ODMwMCAwMDAwMCBuIAotMDAwMDA5ODQzNiAwMDAwMCBuIAotMDAwMDA5ODQ5NyAwMDAwMCBuIAotMDAwMDA5ODU1NyAwMDAwMCBuIAotMDAwMDA5ODYxNyAwMDAwMCBuIAotMDAwMDA5ODY3NyAwMDAwMCBuIAotMDAwMDA5ODc2MCAwMDAwMCBuIAotMDAwMDEwMjA2MiAwMDAwMCBuIAotMDAwMDEwMjE5OSAwMDAwMCBuIAotMDAwMDEwMjM1OCAwMDAwMCBuIAotMDAwMDEwMjQ5NCAwMDAwMCBuIAotMDAwMDEwMjU1NCAwMDAwMCBuIAotMDAwMDEwMjYxNSAwMDAwMCBuIAotMDAwMDEwMjY3NSAwMDAwMCBuIAotMDAwMDEwMjczNSAwMDAwMCBuIAotMDAwMDEwMjc5NSAwMDAwMCBuIAotMDAwMDEwMjg1NSAwMDAwMCBuIAotMDAwMDEwMjkzOCAwMDAwMCBuIAotMDAwMDEwNTU3OSAwMDAwMCBuIAotMDAwMDEwNTcxNiAwMDAwMCBuIAotMDAwMDEwNTg1MiAwMDAwMCBuIAotMDAwMDEwNTkxMyAwMDAwMCBuIAotMDAwMDEwNTk3MyAwMDAwMCBuIAotMDAwMDEwNjAzMyAwMDAwMCBuIAotMDAwMDEwNjA5MyAwMDAwMCBuIAotMDAwMDEwNjE1MyAwMDAwMCBuIAotMDAwMDEwNjIxMyAwMDAwMCBuIAotMDAwMDEwNjI3MyAwMDAwMCBuIAotMDAwMDEwNjM1NiAwMDAwMCBuIAotMDAwMDEwOTY0NyAwMDAwMCBuIAotMDAwMDEwOTc5NCAwMDAwMCBuIAotMDAwMDEwOTkzMCAwMDAwMCBuIAotMDAwMDEwOTk5MSAwMDAwMCBuIAotMDAwMDExMDA1MSAwMDAwMCBuIAotMDAwMDExMDExMSAwMDAwMCBuIAotMDAwMDExMDE3MSAwMDAwMCBuIAotMDAwMDExMDIzMSAwMDAwMCBuIAotMDAwMDExMDI5MSAwMDAwMCBuIAotMDAwMDExMDM1MSAwMDAwMCBuIAotMDAwMDExMDQxMSAwMDAwMCBuIAotMDAwMDExMDQ3MSAwMDAwMCBuIAotMDAwMDExMDUzMSAwMDAwMCBuIAotMDAwMDExMDU5MSAwMDAwMCBuIAotMDAwMDExMDY1MSAwMDAwMCBuIAotMDAwMDExMDczNCAwMDAwMCBuIAotMDAwMDExMzIxNSAwMDAwMCBuIAotMDAwMDExMzM1MiAwMDAwMCBuIAotMDAwMDExMzQ4OCAwMDAwMCBuIAotMDAwMDExMzU0OCAwMDAwMCBuIAotMDAwMDExMzYwOCAwMDAwMCBuIAotMDAwMDExMzY2OSAwMDAwMCBuIAotMDAwMDExMzczMCAwMDAwMCBuIAotMDAwMDExMzc5MCAwMDAwMCBuIAotMDAwMDExMzg1MCAwMDAwMCBuIAotMDAwMDExMzkxMCAwMDAwMCBuIAotMDAwMDExMzk3MCAwMDAwMCBuIAotMDAwMDExNDAzMCAwMDAwMCBuIAotMDAwMDExNDA5MCAwMDAwMCBuIAotMDAwMDExNDE3MyAwMDAwMCBuIAotMDAwMDExNzMyMyAwMDAwMCBuIAotMDAwMDExNzQ2MCAwMDAwMCBuIAotMDAwMDExNzU5NiAwMDAwMCBuIAotMDAwMDExNzY1NiAwMDAwMCBuIAotMDAwMDExNzcxNiAwMDAwMCBuIAotMDAwMDExNzc3NyAwMDAwMCBuIAotMDAwMDExNzgzOCAwMDAwMCBuIAotMDAwMDExNzg5OCAwMDAwMCBuIAotMDAwMDExNzk1OCAwMDAwMCBuIAotMDAwMDExODAxOCAwMDAwMCBuIAotMDAwMDExODA3OCAwMDAwMCBuIAotMDAwMDExODEzOCAwMDAwMCBuIAotMDAwMDExODE5OCAwMDAwMCBuIAotMDAwMDExODI1OCAwMDAwMCBuIAotMDAwMDExODMxOCAwMDAwMCBuIAotMDAwMDExODM3OCAwMDAwMCBuIAotMDAwMDExODQzOCAwMDAwMCBuIAotMDAwMDExODQ5OCAwMDAwMCBuIAotMDAwMDExODU1OCAwMDAwMCBuIAotMDAwMDExODYxOCAwMDAwMCBuIAotMDAwMDExODY3OCAwMDAwMCBuIAotMDAwMDExODczOCAwMDAwMCBuIAotMDAwMDExODc5OCAwMDAwMCBuIAotMDAwMDExODg1OCAwMDAwMCBuIAotMDAwMDExODkxOCAwMDAwMCBuIAotMDAwMDExODk3OCAwMDAwMCBuIAotMDAwMDExOTAzOCAwMDAwMCBuIAotMDAwMDExOTA5OCAwMDAwMCBuIAotMDAwMDExOTE1OCAwMDAwMCBuIAotMDAwMDExOTIxOCAwMDAwMCBuIAotMDAwMDExOTI3OCAwMDAwMCBuIAotMDAwMDExOTMzOCAwMDAwMCBuIAotMDAwMDExOTQyMSAwMDAwMCBuIAotMDAwMDEyMTk2MSAwMDAwMCBuIAotMDAwMDEyMjExMSAwMDAwMCBuIAotMDAwMDEyMjIyOSAwMDAwMCBuIAotMDAwMDEyMjM2NSAwMDAwMCBuIAotMDAwMDEyMjQyNiAwMDAwMCBuIAotMDAwMDEyMjQ4NiAwMDAwMCBuIAotMDAwMDEyMjU0NiAwMDAwMCBuIAotMDAwMDEyMjYwNiAwMDAwMCBuIAotMDAwMDEyMjY2NiAwMDAwMCBuIAotMDAwMDEyMjcyNiAwMDAwMCBuIAotMDAwMDEyMjc4NiAwMDAwMCBuIAotMDAwMDEyMjg0NiAwMDAwMCBuIAotMDAwMDEyMjkwNiAwMDAwMCBuIAotMDAwMDEyMjk2NiAwMDAwMCBuIAotMDAwMDEyMzAyNiAwMDAwMCBuIAotMDAwMDEyMzA4NiAwMDAwMCBuIAotMDAwMDEyMzE0NiAwMDAwMCBuIAotMDAwMDEyMzIwNiAwMDAwMCBuIAotMDAwMDEyMzI2NiAwMDAwMCBuIAotMDAwMDEyMzMyNiAwMDAwMCBuIAotMDAwMDEyMzM4NiAwMDAwMCBuIAotMDAwMDEyMzQ0NiAwMDAwMCBuIAotMDAwMDEyMzUwNiAwMDAwMCBuIAotMDAwMDEyMzU2NiAwMDAwMCBuIAotMDAwMDEyMzYyNiAwMDAwMCBuIAotMDAwMDEyMzY4NiAwMDAwMCBuIAotMDAwMDEyMzc0NiAwMDAwMCBuIAotMDAwMDEyMzgwNiAwMDAwMCBuIAotMDAwMDEyMzg4OSAwMDAwMCBuIAotMDAwMDEyNzI0MSAwMDAwMCBuIAotMDAwMDEyNzM5MSAwMDAwMCBuIAotMDAwMDEyNzUyNyAwMDAwMCBuIAotMDAwMDEyNzU4NyAwMDAwMCBuIAotMDAwMDEyNzY0OCAwMDAwMCBuIAotMDAwMDEyNzcwOCAwMDAwMCBuIAotMDAwMDEyNzc2OCAwMDAwMCBuIAotMDAwMDEyNzgyOCAwMDAwMCBuIAotMDAwMDEyNzg4OCAwMDAwMCBuIAotMDAwMDEyNzk0OCAwMDAwMCBuIAotMDAwMDEyODAwOCAwMDAwMCBuIAotMDAwMDEyODA2OCAwMDAwMCBuIAotMDAwMDEyODEyOCAwMDAwMCBuIAotMDAwMDEyODE4OCAwMDAwMCBuIAotMDAwMDEyODI0OCAwMDAwMCBuIAotMDAwMDEyODMwOCAwMDAwMCBuIAotMDAwMDEyODM2OCAwMDAwMCBuIAotMDAwMDEyODQyOCAwMDAwMCBuIAotMDAwMDEyODUxMSAwMDAwMCBuIAotMDAwMDEzMTEzNSAwMDAwMCBuIAotMDAwMDEzMTI3MiAwMDAwMCBuIAotMDAwMDEzMTQwOCAwMDAwMCBuIAotMDAwMDEzMTQ2OSAwMDAwMCBuIAotMDAwMDEzMTUyOSAwMDAwMCBuIAotMDAwMDEzMTU4OSAwMDAwMCBuIAotMDAwMDEzMTY0OSAwMDAwMCBuIAotMDAwMDEzMTcwOSAwMDAwMCBuIAotMDAwMDEzMTc2OSAwMDAwMCBuIAotMDAwMDEzMTgyOSAwMDAwMCBuIAotMDAwMDEzMTg4OSAwMDAwMCBuIAotMDAwMDEzMTk0OSAwMDAwMCBuIAotMDAwMDEzMjAwOSAwMDAwMCBuIAotMDAwMDEzMjA2OSAwMDAwMCBuIAotMDAwMDEzMjEyOSAwMDAwMCBuIAotMDAwMDEzMjE4OSAwMDAwMCBuIAotMDAwMDEzMjI0OSAwMDAwMCBuIAotMDAwMDEzMjMwOSAwMDAwMCBuIAotMDAwMDEzMjM2OSAwMDAwMCBuIAotMDAwMDEzMjQyOSAwMDAwMCBuIAotMDAwMDEzMjQ4OSAwMDAwMCBuIAotMDAwMDEzMjU3MiAwMDAwMCBuIAotMDAwMDEzNTk4NiAwMDAwMCBuIAotMDAwMDEzNjEyMyAwMDAwMCBuIAotMDAwMDEzNjI1OSAwMDAwMCBuIAotMDAwMDEzNjMyMCAwMDAwMCBuIAotMDAwMDEzNjM4MCAwMDAwMCBuIAotMDAwMDEzNjQ0MCAwMDAwMCBuIAotMDAwMDEzNjUwMCAwMDAwMCBuIAotMDAwMDEzNjU2MCAwMDAwMCBuIAotMDAwMDEzNjYyMCAwMDAwMCBuIAotMDAwMDEzNjY4MCAwMDAwMCBuIAotMDAwMDEzNjc2MyAwMDAwMCBuIAotMDAwMDEzOTYyMiAwMDAwMCBuIAotMDAwMDEzOTc1OSAwMDAwMCBuIAotMDAwMDEzOTg5NSAwMDAwMCBuIAotMDAwMDEzOTk1NSAwMDAwMCBuIAotMDAwMDE0MDAxNiAwMDAwMCBuIAotMDAwMDE0MDA3NiAwMDAwMCBuIAotMDAwMDE0MDEzNiAwMDAwMCBuIAotMDAwMDE0MDE5NiAwMDAwMCBuIAotMDAwMDE0MDI1NiAwMDAwMCBuIAotMDAwMDE0MDMxNiAwMDAwMCBuIAotMDAwMDE0MDM3NiAwMDAwMCBuIAotMDAwMDE0MDQzNiAwMDAwMCBuIAotMDAwMDE0MDQ5NiAwMDAwMCBuIAotMDAwMDE0MDU1NiAwMDAwMCBuIAotMDAwMDE0MDYxNiAwMDAwMCBuIAotMDAwMDE0MDY3NiAwMDAwMCBuIAotMDAwMDE0MDc1OSAwMDAwMCBuIAotMDAwMDE0Mzg3MiAwMDAwMCBuIAotMDAwMDE0NDAwOSAwMDAwMCBuIAotMDAwMDE0NDE2OCAwMDAwMCBuIAotMDAwMDE0NDMwNCAwMDAwMCBuIAotMDAwMDE0NDM2NSAwMDAwMCBuIAotMDAwMDE0NDQyNSAwMDAwMCBuIAotMDAwMDE0NDQ4NSAwMDAwMCBuIAotMDAwMDE0NDU0NSAwMDAwMCBuIAotMDAwMDE0NDYwNSAwMDAwMCBuIAotMDAwMDE0NDY2NSAwMDAwMCBuIAotMDAwMDE0NDcyNSAwMDAwMCBuIAotMDAwMDE0NDgwOCAwMDAwMCBuIAotMDAwMDE0Nzc0MSAwMDAwMCBuIAotMDAwMDE0Nzg4OCAwMDAwMCBuIAotMDAwMDE0ODAyNCAwMDAwMCBuIAotMDAwMDE0ODA4NCAwMDAwMCBuIAotMDAwMDE0ODE0NSAwMDAwMCBuIAotMDAwMDE0ODIwNSAwMDAwMCBuIAotMDAwMDE0ODI2NSAwMDAwMCBuIAotMDAwMDE0ODMyNSAwMDAwMCBuIAotMDAwMDE0ODM4NSAwMDAwMCBuIAotMDAwMDE0ODQ0NSAwMDAwMCBuIAotMDAwMDE0ODUyOCAwMDAwMCBuIAotMDAwMDE1MjE3NCAwMDAwMCBuIAotMDAwMDE1MjMyNCAwMDAwMCBuIAotMDAwMDE1MjQ2MCAwMDAwMCBuIAotMDAwMDE1MjUyMSAwMDAwMCBuIAotMDAwMDE1MjU4MSAwMDAwMCBuIAotMDAwMDE1MjY0MSAwMDAwMCBuIAotMDAwMDE1MjcwMSAwMDAwMCBuIAotMDAwMDE1Mjc4NCAwMDAwMCBuIAotMDAwMDE1NTM4NSAwMDAwMCBuIAotMDAwMDE1NTUyMiAwMDAwMCBuIAotMDAwMDE1NTY1OCAwMDAwMCBuIAotMDAwMDE1NTcxOSAwMDAwMCBuIAotMDAwMDE1NTc3OSAwMDAwMCBuIAotMDAwMDE1NTgzOSAwMDAwMCBuIAotMDAwMDE1NTg5OSAwMDAwMCBuIAotMDAwMDE1NTk1OSAwMDAwMCBuIAotMDAwMDE1NjAxOSAwMDAwMCBuIAotMDAwMDE1NjA3OSAwMDAwMCBuIAotMDAwMDE1NjEzOSAwMDAwMCBuIAotMDAwMDE1NjIyMiAwMDAwMCBuIAotMDAwMDE1OTQzMyAwMDAwMCBuIAotMDAwMDE1OTU3MCAwMDAwMCBuIAotMDAwMDE1OTcwNiAwMDAwMCBuIAotMDAwMDE1OTc2NyAwMDAwMCBuIAotMDAwMDE1OTgyNyAwMDAwMCBuIAotMDAwMDE1OTg4NyAwMDAwMCBuIAotMDAwMDE1OTk0NyAwMDAwMCBuIAotMDAwMDE2MDAwNyAwMDAwMCBuIAotMDAwMDE2MDA2NyAwMDAwMCBuIAotMDAwMDE2MDEyNyAwMDAwMCBuIAotMDAwMDE2MDIxMCAwMDAwMCBuIAotMDAwMDE2MzMxMCAwMDAwMCBuIAotMDAwMDE2MzQ0NyAwMDAwMCBuIAotMDAwMDE2MzU4MyAwMDAwMCBuIAotMDAwMDE2MzY0NCAwMDAwMCBuIAotMDAwMDE2MzcwNCAwMDAwMCBuIAotMDAwMDE2Mzc2NCAwMDAwMCBuIAotMDAwMDE2MzgyNCAwMDAwMCBuIAotMDAwMDE2Mzg4NCAwMDAwMCBuIAotMDAwMDE2Mzk0NCAwMDAwMCBuIAotMDAwMDE2NDAwNCAwMDAwMCBuIAotMDAwMDE2NDA4NyAwMDAwMCBuIAotMDAwMDE2Njk5OCAwMDAwMCBuIAotMDAwMDE2NzEzNSAwMDAwMCBuIAotMDAwMDE2NzI3MSAwMDAwMCBuIAotMDAwMDE2NzMzMSAwMDAwMCBuIAotMDAwMDE2NzM5MiAwMDAwMCBuIAotMDAwMDE2NzQ1MiAwMDAwMCBuIAotMDAwMDE2NzUxMiAwMDAwMCBuIAotMDAwMDE2NzU3MiAwMDAwMCBuIAotMDAwMDE2NzYzMiAwMDAwMCBuIAotMDAwMDE2NzY5MiAwMDAwMCBuIAotMDAwMDE2Nzc3NSAwMDAwMCBuIAotMDAwMDE2OTkxMyAwMDAwMCBuIAotMDAwMDE3MDA1MCAwMDAwMCBuIAotMDAwMDE3MDE4NiAwMDAwMCBuIAotMDAwMDE3MDI0NyAwMDAwMCBuIAotMDAwMDE3MDMwNyAwMDAwMCBuIAotMDAwMDE3MDM2NyAwMDAwMCBuIAotMDAwMDE3MDQyNyAwMDAwMCBuIAotMDAwMDE3MDQ4NyAwMDAwMCBuIAotMDAwMDE3MDU3MCAwMDAwMCBuIAotMDAwMDE3MzE5NyAwMDAwMCBuIAotMDAwMDE3MzMzNCAwMDAwMCBuIAotMDAwMDE3MzQ3MCAwMDAwMCBuIAotMDAwMDE3MzUzMSAwMDAwMCBuIAotMDAwMDE3MzU5MSAwMDAwMCBuIAotMDAwMDE3MzY1MSAwMDAwMCBuIAotMDAwMDE3MzcxMSAwMDAwMCBuIAotMDAwMDE3Mzc3MSAwMDAwMCBuIAotMDAwMDE3MzgzMSAwMDAwMCBuIAotMDAwMDE3Mzg5MSAwMDAwMCBuIAotMDAwMDE3Mzk1MSAwMDAwMCBuIAotMDAwMDE3NDAzNCAwMDAwMCBuIAotMDAwMDE3NjQ3MyAwMDAwMCBuIAotMDAwMDE3NjYxMCAwMDAwMCBuIAotMDAwMDE3Njc0NiAwMDAwMCBuIAotMDAwMDE3NjgwNyAwMDAwMCBuIAotMDAwMDE3Njg2NyAwMDAwMCBuIAotMDAwMDE3NjkyNyAwMDAwMCBuIAotMDAwMDE3NzAxMCAwMDAwMCBuIAotMDAwMDE3ODk5OCAwMDAwMCBuIAotMDAwMDE3OTEyNCAwMDAwMCBuIAotMDAwMDE3OTI4MyAwMDAwMCBuIAotMDAwMDE3OTQxOSAwMDAwMCBuIAotMDAwMDE3OTQ4MCAwMDAwMCBuIAotMDAwMDE3OTU0MCAwMDAwMCBuIAotMDAwMDE3OTYwMCAwMDAwMCBuIAotMDAwMDE3OTY2MCAwMDAwMCBuIAotMDAwMDE3OTc0MyAwMDAwMCBuIAotMDAwMDE4MTg0NCAwMDAwMCBuIAotMDAwMDE4MTk4MSAwMDAwMCBuIAotMDAwMDE4MjExNyAwMDAwMCBuIAotMDAwMDE4MjE3NyAwMDAwMCBuIAotMDAwMDE4MjIzOCAwMDAwMCBuIAotMDAwMDE4MjI5OCAwMDAwMCBuIAotMDAwMDE4MjM1OCAwMDAwMCBuIAotMDAwMDE4MjQxOCAwMDAwMCBuIAotMDAwMDE4MjQ3OCAwMDAwMCBuIAotMDAwMDE4MjUzOCAwMDAwMCBuIAotMDAwMDE4MjU5OCAwMDAwMCBuIAotMDAwMDE4MjY4MSAwMDAwMCBuIAotMDAwMDE4NTcxMCAwMDAwMCBuIAotMDAwMDE4NTg0NyAwMDAwMCBuIAotMDAwMDE4NTk4MyAwMDAwMCBuIAotMDAwMDE4NjA0NCAwMDAwMCBuIAotMDAwMDE4NjEwNCAwMDAwMCBuIAotMDAwMDE4NjE2NCAwMDAwMCBuIAotMDAwMDE4NjIyNCAwMDAwMCBuIAotMDAwMDE4NjI4NCAwMDAwMCBuIAotMDAwMDE4NjM2NyAwMDAwMCBuIAotMDAwMDE4ODU4OSAwMDAwMCBuIAotMDAwMDE4ODcyNiAwMDAwMCBuIAotMDAwMDE4ODg2MiAwMDAwMCBuIAotMDAwMDE4ODkyMyAwMDAwMCBuIAotMDAwMDE4ODk4MyAwMDAwMCBuIAotMDAwMDE4OTA0MyAwMDAwMCBuIAotMDAwMDE4OTEwMyAwMDAwMCBuIAotMDAwMDE4OTE2MyAwMDAwMCBuIAotMDAwMDE4OTIyMyAwMDAwMCBuIAotMDAwMDE4OTI4MyAwMDAwMCBuIAotMDAwMDE4OTM0MyAwMDAwMCBuIAotMDAwMDE4OTQwMyAwMDAwMCBuIAotMDAwMDE4OTQ4NiAwMDAwMCBuIAotMDAwMDE5MTgwNSAwMDAwMCBuIAotMDAwMDE5MTk0MiAwMDAwMCBuIAotMDAwMDE5MjA3OCAwMDAwMCBuIAotMDAwMDE5MjEzOSAwMDAwMCBuIAotMDAwMDE5MjE5OSAwMDAwMCBuIAotMDAwMDE5MjI1OSAwMDAwMCBuIAotMDAwMDE5MjMxOSAwMDAwMCBuIAotMDAwMDE5MjM3OSAwMDAwMCBuIAotMDAwMDE5MjQ2MiAwMDAwMCBuIAotMDAwMDE5NTAxOCAwMDAwMCBuIAotMDAwMDE5NTE1NSAwMDAwMCBuIAotMDAwMDE5NTI5MSAwMDAwMCBuIAotMDAwMDE5NTM1MiAwMDAwMCBuIAotMDAwMDE5NTQxMiAwMDAwMCBuIAotMDAwMDE5NTQ3MiAwMDAwMCBuIAotMDAwMDE5NTUzMiAwMDAwMCBuIAotMDAwMDE5NTYxNSAwMDAwMCBuIAotMDAwMDE5Nzg0MCAwMDAwMCBuIAotMDAwMDE5Nzk3NyAwMDAwMCBuIAotMDAwMDE5ODExMyAwMDAwMCBuIAotMDAwMDE5ODE3NCAwMDAwMCBuIAotMDAwMDE5ODIzNCAwMDAwMCBuIAotMDAwMDE5ODI5NCAwMDAwMCBuIAotMDAwMDE5ODM1NCAwMDAwMCBuIAotMDAwMDE5ODQxNCAwMDAwMCBuIAotMDAwMDE5ODQ5NyAwMDAwMCBuIAotMDAwMDIwMDkyMiAwMDAwMCBuIAotMDAwMDIwMTA1OSAwMDAwMCBuIAotMDAwMDIwMTE5NSAwMDAwMCBuIAotMDAwMDIwMTI1NSAwMDAwMCBuIAotMDAwMDIwMTMxNiAwMDAwMCBuIAotMDAwMDIwMTM3NiAwMDAwMCBuIAotMDAwMDIwMTQzNiAwMDAwMCBuIAotMDAwMDIwMTQ5NiAwMDAwMCBuIAotMDAwMDIwMTU1NiAwMDAwMCBuIAotMDAwMDIwMTYxNiAwMDAwMCBuIAotMDAwMDIwMTY3NiAwMDAwMCBuIAotMDAwMDIwMTczNiAwMDAwMCBuIAotMDAwMDIwMTgxOSAwMDAwMCBuIAotMDAwMDIwNDYxOCAwMDAwMCBuIAotMDAwMDIwNDc1NSAwMDAwMCBuIAotMDAwMDIwNDg5MSAwMDAwMCBuIAotMDAwMDIwNDk1MiAwMDAwMCBuIAotMDAwMDIwNTAxMiAwMDAwMCBuIAotMDAwMDIwNTA3MiAwMDAwMCBuIAotMDAwMDIwNTEzMiAwMDAwMCBuIAotMDAwMDIwNTIxNSAwMDAwMCBuIAotMDAwMDIwNzQyMCAwMDAwMCBuIAotMDAwMDIwNzU1NyAwMDAwMCBuIAotMDAwMDIwNzY5MyAwMDAwMCBuIAotMDAwMDIwNzc1MyAwMDAwMCBuIAotMDAwMDIwNzgxNCAwMDAwMCBuIAotMDAwMDIwNzg3NCAwMDAwMCBuIAotMDAwMDIwNzkzNCAwMDAwMCBuIAotMDAwMDIwNzk5NCAwMDAwMCBuIAotMDAwMDIwODA1NCAwMDAwMCBuIAotMDAwMDIwODExNCAwMDAwMCBuIAotMDAwMDIwODE5NyAwMDAwMCBuIAotMDAwMDIxMDQ4NCAwMDAwMCBuIAotMDAwMDIxMDYyMSAwMDAwMCBuIAotMDAwMDIxMDc4MCAwMDAwMCBuIAotMDAwMDIxMDkxNiAwMDAwMCBuIAotMDAwMDIxMDk3NiAwMDAwMCBuIAotMDAwMDIxMTAzNyAwMDAwMCBuIAotMDAwMDIxMTA5NyAwMDAwMCBuIAotMDAwMDIxMTE1NyAwMDAwMCBuIAotMDAwMDIxMTIxNyAwMDAwMCBuIAotMDAwMDIxMTI3NyAwMDAwMCBuIAotMDAwMDIxMTMzNyAwMDAwMCBuIAotMDAwMDIxMTM5NyAwMDAwMCBuIAotMDAwMDIxMTQ4MCAwMDAwMCBuIAotMDAwMDIxNDU1NSAwMDAwMCBuIAotMDAwMDIxNDY5MiAwMDAwMCBuIAotMDAwMDIxNDgyOCAwMDAwMCBuIAotMDAwMDIxNDg4OSAwMDAwMCBuIAotMDAwMDIxNDk0OSAwMDAwMCBuIAotMDAwMDIxNTAwOSAwMDAwMCBuIAotMDAwMDIxNTA2OSAwMDAwMCBuIAotMDAwMDIxNTEyOSAwMDAwMCBuIAotMDAwMDIxNTE4OSAwMDAwMCBuIAotMDAwMDIxNTI0OSAwMDAwMCBuIAotMDAwMDIxNTMzMiAwMDAwMCBuIAotMDAwMDIxODIwMyAwMDAwMCBuIAotMDAwMDIxODM0MCAwMDAwMCBuIAotMDAwMDIxODQ3NiAwMDAwMCBuIAotMDAwMDIxODUzNyAwMDAwMCBuIAotMDAwMDIxODU5NyAwMDAwMCBuIAotMDAwMDIxODY1NyAwMDAwMCBuIAotMDAwMDIxODcxNyAwMDAwMCBuIAotMDAwMDIxODc3NyAwMDAwMCBuIAotMDAwMDIxODg2MCAwMDAwMCBuIAotMDAwMDIyMjQ0OCAwMDAwMCBuIAotMDAwMDIyMjU4NSAwMDAwMCBuIAotMDAwMDIyMjcyMSAwMDAwMCBuIAotMDAwMDIyMjc4MiAwMDAwMCBuIAotMDAwMDIyMjg0MyAwMDAwMCBuIAotMDAwMDIyMjkwMyAwMDAwMCBuIAotMDAwMDIyMjk4NiAwMDAwMCBuIAotMDAwMDIyNDg5NiAwMDAwMCBuIAotMDAwMDIyNTAwOSAwMDAwMCBuIAotMDAwMDIyNTE0NSAwMDAwMCBuIAotMDAwMDIyNTIwNSAwMDAwMCBuIAotMDAwMDIyNTI2NSAwMDAwMCBuIAotMDAwMDIyNTMyNSAwMDAwMCBuIAotMDAwMDIyNTM4NiAwMDAwMCBuIAotMDAwMDIyNTQ0NyAwMDAwMCBuIAotMDAwMDIyNTUwNyAwMDAwMCBuIAotMDAwMDIyNTU2NyAwMDAwMCBuIAotMDAwMDIyNTYyNyAwMDAwMCBuIAotMDAwMDIyNTY4NyAwMDAwMCBuIAotMDAwMDIyNTc3MCAwMDAwMCBuIAotMDAwMDIyODEzNSAwMDAwMCBuIAotMDAwMDIyODI4NSAwMDAwMCBuIAotMDAwMDIyODQyMSAwMDAwMCBuIAotMDAwMDIyODQ4MSAwMDAwMCBuIAotMDAwMDIyODU0MSAwMDAwMCBuIAotMDAwMDIyODYwMSAwMDAwMCBuIAotMDAwMDIyODY2MSAwMDAwMCBuIAotMDAwMDIyODcyMiAwMDAwMCBuIAotMDAwMDIyODc4MiAwMDAwMCBuIAotMDAwMDIyODg0MiAwMDAwMCBuIAotMDAwMDIyODkwMiAwMDAwMCBuIAotMDAwMDIyODk2MiAwMDAwMCBuIAotMDAwMDIyOTAyMiAwMDAwMCBuIAotMDAwMDIyOTEwNSAwMDAwMCBuIAotMDAwMDIzMjEyMiAwMDAwMCBuIAotMDAwMDIzMjI1OSAwMDAwMCBuIAotMDAwMDIzMjM5NSAwMDAwMCBuIAotMDAwMDIzMjQ1NSAwMDAwMCBuIAotMDAwMDIzMjUxNSAwMDAwMCBuIAotMDAwMDIzMjU3NiAwMDAwMCBuIAotMDAwMDIzMjYzNiAwMDAwMCBuIAotMDAwMDIzMjY5NiAwMDAwMCBuIAotMDAwMDIzMjc1NiAwMDAwMCBuIAotMDAwMDIzMjgxNiAwMDAwMCBuIAotMDAwMDIzMjg3NiAwMDAwMCBuIAotMDAwMDIzMjk1OSAwMDAwMCBuIAotMDAwMDIzNjAwMyAwMDAwMCBuIAotMDAwMDIzNjE0MCAwMDAwMCBuIAotMDAwMDIzNjI3NiAwMDAwMCBuIAotMDAwMDIzNjMzNiAwMDAwMCBuIAotMDAwMDIzNjM5NiAwMDAwMCBuIAotMDAwMDIzNjQ1NyAwMDAwMCBuIAotMDAwMDIzNjUxOCAwMDAwMCBuIAotMDAwMDIzNjU3OCAwMDAwMCBuIAotMDAwMDIzNjYzOCAwMDAwMCBuIAotMDAwMDIzNjY5OCAwMDAwMCBuIAotMDAwMDIzNjc4MSAwMDAwMCBuIAotMDAwMDIzOTYzMCAwMDAwMCBuIAotMDAwMDIzOTc2NyAwMDAwMCBuIAotMDAwMDIzOTkwMyAwMDAwMCBuIAotMDAwMDIzOTk2MyAwMDAwMCBuIAotMDAwMDI0MDAyMyAwMDAwMCBuIAotMDAwMDI0MDA4MyAwMDAwMCBuIAotMDAwMDI0MDE0NCAwMDAwMCBuIAotMDAwMDI0MDIwNSAwMDAwMCBuIAotMDAwMDI0MDI2NSAwMDAwMCBuIAotMDAwMDI0MDMyNSAwMDAwMCBuIAotMDAwMDI0MDM4NSAwMDAwMCBuIAotMDAwMDI0MDQ0NSAwMDAwMCBuIAotMDAwMDI0MDUyOCAwMDAwMCBuIAotMDAwMDI0MzI3NCAwMDAwMCBuIAotMDAwMDI0MzQxMSAwMDAwMCBuIAotMDAwMDI0MzU0NyAwMDAwMCBuIAotMDAwMDI0MzYwNyAwMDAwMCBuIAotMDAwMDI0MzY2NyAwMDAwMCBuIAotMDAwMDI0MzcyNyAwMDAwMCBuIAotMDAwMDI0Mzc4OCAwMDAwMCBuIAotMDAwMDI0Mzg0OCAwMDAwMCBuIAotMDAwMDI0MzkwOCAwMDAwMCBuIAotMDAwMDI0Mzk2OCAwMDAwMCBuIAotMDAwMDI0NDAyOCAwMDAwMCBuIAotMDAwMDI0NDA4OCAwMDAwMCBuIAotMDAwMDI0NDE0OCAwMDAwMCBuIAotMDAwMDI0NDIwOCAwMDAwMCBuIAotMDAwMDI0NDI5MSAwMDAwMCBuIAotMDAwMDI0NjkxMiAwMDAwMCBuIAotMDAwMDI0NzA0OSAwMDAwMCBuIAotMDAwMDI0NzIwOCAwMDAwMCBuIAotMDAwMDI0NzM0NCAwMDAwMCBuIAotMDAwMDI0NzQwNSAwMDAwMCBuIAotMDAwMDI0NzQ2NSAwMDAwMCBuIAotMDAwMDI0NzUyNSAwMDAwMCBuIAotMDAwMDI0NzU4NSAwMDAwMCBuIAotMDAwMDI0NzY0NSAwMDAwMCBuIAotMDAwMDI0NzcwNSAwMDAwMCBuIAotMDAwMDI0Nzc4OCAwMDAwMCBuIAotMDAwMDI0OTc0NSAwMDAwMCBuIAotMDAwMDI0OTg3MSAwMDAwMCBuIAotMDAwMDI1MDAwNyAwMDAwMCBuIAotMDAwMDI1MDA2NyAwMDAwMCBuIAotMDAwMDI1MDEyOCAwMDAwMCBuIAotMDAwMDI1MDE4OCAwMDAwMCBuIAotMDAwMDI1MDI0OCAwMDAwMCBuIAotMDAwMDI1MDMwOCAwMDAwMCBuIAotMDAwMDI1MDM5MSAwMDAwMCBuIAotMDAwMDI1NDE3NCAwMDAwMCBuIAotMDAwMDI1NDMxMSAwMDAwMCBuIAotMDAwMDI1NDQ0NyAwMDAwMCBuIAotMDAwMDI1NDUwOCAwMDAwMCBuIAotMDAwMDI1NDU2OCAwMDAwMCBuIAotMDAwMDI1NDYyOCAwMDAwMCBuIAotMDAwMDI1NDY4OCAwMDAwMCBuIAotMDAwMDI1NDc3MSAwMDAwMCBuIAotMDAwMDI1NzYzOCAwMDAwMCBuIAotMDAwMDI1Nzc3NSAwMDAwMCBuIAotMDAwMDI1NzkxMSAwMDAwMCBuIAotMDAwMDI1Nzk3MiAwMDAwMCBuIAotMDAwMDI1ODAzMiAwMDAwMCBuIAotMDAwMDI1ODA5MiAwMDAwMCBuIAotMDAwMDI1ODE3NSAwMDAwMCBuIAotMDAwMDI2MjU4MyAwMDAwMCBuIAotMDAwMDI2MjcyMCAwMDAwMCBuIAotMDAwMDI2Mjg1NiAwMDAwMCBuIAotMDAwMDI2MjkxNiAwMDAwMCBuIAotMDAwMDI2Mjk3NyAwMDAwMCBuIAotMDAwMDI2MzAzNyAwMDAwMCBuIAotMDAwMDI2MzA5NyAwMDAwMCBuIAotMDAwMDI2MzE1NyAwMDAwMCBuIAotMDAwMDI2MzIxNyAwMDAwMCBuIAotMDAwMDI2MzMwMCAwMDAwMCBuIAotMDAwMDI2NjEzNSAwMDAwMCBuIAotMDAwMDI2NjI3MiAwMDAwMCBuIAotMDAwMDI2NjQwOCAwMDAwMCBuIAotMDAwMDI2NjQ2OCAwMDAwMCBuIAotMDAwMDI2NjUyOCAwMDAwMCBuIAotMDAwMDI2NjU4OSAwMDAwMCBuIAotMDAwMDI2NjY0OSAwMDAwMCBuIAotMDAwMDI2NjcwOSAwMDAwMCBuIAotMDAwMDI2Njc5MiAwMDAwMCBuIAotMDAwMDI2OTM1MiAwMDAwMCBuIAotMDAwMDI2OTQ4OSAwMDAwMCBuIAotMDAwMDI2OTYyNSAwMDAwMCBuIAotMDAwMDI2OTY4NiAwMDAwMCBuIAotMDAwMDI2OTc2OSAwMDAwMCBuIAotMDAwMDI3MTY3NyAwMDAwMCBuIAotMDAwMDI3MTgwMyAwMDAwMCBuIAotMDAwMDI3MTkzOSAwMDAwMCBuIAotMDAwMDI3MjAwMCAwMDAwMCBuIAotMDAwMDI3MjA4MyAwMDAwMCBuIAotMDAwMDI3Mzg1OCAwMDAwMCBuIAotMDAwMDI3Mzk4NCAwMDAwMCBuIAotMDAwMDI3NDEyMCAwMDAwMCBuIAotMDAwMDI3NDE4MSAwMDAwMCBuIAotMDAwMDI3NDI2NCAwMDAwMCBuIAotMDAwMDI3NjkxNiAwMDAwMCBuIAotMDAwMDI3NzA0MiAwMDAwMCBuIAotMDAwMDI3NzE3OCAwMDAwMCBuIAotMDAwMDI3NzIzOSAwMDAwMCBuIAotMDAwMDI3NzMyMiAwMDAwMCBuIAotMDAwMDI3OTAzOSAwMDAwMCBuIAotMDAwMDI3OTE2NSAwMDAwMCBuIAotMDAwMDI3OTMyNCAwMDAwMCBuIAotMDAwMDI3OTQ2MCAwMDAwMCBuIAotMDAwMDI3OTUyMCAwMDAwMCBuIAotMDAwMDI3OTU4MSAwMDAwMCBuIAotMDAwMDI3OTY0MSAwMDAwMCBuIAotMDAwMDI3OTcwMSAwMDAwMCBuIAotMDAwMDI3OTc4NCAwMDAwMCBuIAotMDAwMDI4MjAxNSAwMDAwMCBuIAotMDAwMDI4MjE1MiAwMDAwMCBuIAotMDAwMDI4MjI4OCAwMDAwMCBuIAotMDAwMDI4MjM0OCAwMDAwMCBuIAotMDAwMDI4MjQwOSAwMDAwMCBuIAotMDAwMDI4MjQ2OSAwMDAwMCBuIAotMDAwMDI4MjUyOSAwMDAwMCBuIAotMDAwMDI4MjYxMiAwMDAwMCBuIAotMDAwMDI4NTE0NCAwMDAwMCBuIAotMDAwMDI4NTI4MSAwMDAwMCBuIAotMDAwMDI4NTQxNyAwMDAwMCBuIAotMDAwMDI4NTQ3OCAwMDAwMCBuIAotMDAwMDI4NTU2MSAwMDAwMCBuIAotMDAwMDMwODIwMCAwMDAwMCBuIAotMDAwMDMwODI1NSAwMDAwMCBuIAotMDAwMDMwOTI0NiAwMDAwMCBuIAotMDAwMDMwOTQzNiAwMDAwMCBuIAotMDAwMDMxMDQ5MCAwMDAwMCBuIAotMDAwMDMxMDYyNiAwMDAwMCBuIAotMDAwMDMxMDY4NiAwMDAwMCBuIAotMDAwMDMxMDc0NyAwMDAwMCBuIAotMDAwMDMxMDgwNyAwMDAwMCBuIAotMDAwMDMxMDg2NyAwMDAwMCBuIAotMDAwMDMxMDk1MCAwMDAwMCBuIAotMDAwMDMzMTQ0MiAwMDAwMCBuIAotMDAwMDMzMjY0MiAwMDAwMCBuIAotMDAwMDMzMjg1NiAwMDAwMCBuIAotMDAwMDMzMjk5MiAwMDAwMCBuIAotMDAwMDMzMzA1MiAwMDAwMCBuIAotMDAwMDMzMzExMiAwMDAwMCBuIAotMDAwMDMzMzE3MyAwMDAwMCBuIAotMDAwMDMzMzIzNCAwMDAwMCBuIAotMDAwMDMzMzI5NCAwMDAwMCBuIAotMDAwMDMzMzM1NCAwMDAwMCBuIAotMDAwMDMzMzQxNCAwMDAwMCBuIAotMDAwMDMzMzQ3NCAwMDAwMCBuIAotMDAwMDMzMzU1NyAwMDAwMCBuIAotMDAwMDMzNTc0MiAwMDAwMCBuIAotMDAwMDMzNTg3OSAwMDAwMCBuIAotMDAwMDMzNjAxNSAwMDAwMCBuIAotMDAwMDMzNjA3NSAwMDAwMCBuIAotMDAwMDMzNjEzNSAwMDAwMCBuIAotMDAwMDMzNjE5NSAwMDAwMCBuIAotMDAwMDMzNjI1NiAwMDAwMCBuIAotMDAwMDMzNjMxNyAwMDAwMCBuIAotMDAwMDMzNjM3NyAwMDAwMCBuIAotMDAwMDMzNjQzNyAwMDAwMCBuIAotMDAwMDMzNjQ5NyAwMDAwMCBuIAotMDAwMDMzNjU4MCAwMDAwMCBuIAotMDAwMDMzOTcwNiAwMDAwMCBuIAotMDAwMDMzOTg0MyAwMDAwMCBuIAotMDAwMDMzOTk3OSAwMDAwMCBuIAotMDAwMDM0MDAzOSAwMDAwMCBuIAotMDAwMDM0MDEwMCAwMDAwMCBuIAotMDAwMDM0MDE2MCAwMDAwMCBuIAotMDAwMDM0MDIyMCAwMDAwMCBuIAotMDAwMDM0MDI4MCAwMDAwMCBuIAotMDAwMDM0MDM2MyAwMDAwMCBuIAotMDAwMDM0Mjk2NCAwMDAwMCBuIAotMDAwMDM0MzEwMSAwMDAwMCBuIAotMDAwMDM0MzIzNyAwMDAwMCBuIAotMDAwMDM0MzI5OCAwMDAwMCBuIAotMDAwMDM0MzM1OCAwMDAwMCBuIAotMDAwMDM0MzQxOCAwMDAwMCBuIAotMDAwMDM0MzUwMSAwMDAwMCBuIAotMDAwMDM0NjM0OCAwMDAwMCBuIAotMDAwMDM0NjQ4NSAwMDAwMCBuIAotMDAwMDM0NjYyMSAwMDAwMCBuIAotMDAwMDM0NjY4MSAwMDAwMCBuIAotMDAwMDM0Njc0MiAwMDAwMCBuIAotMDAwMDM0NjgwMiAwMDAwMCBuIAotMDAwMDM0Njg2MiAwMDAwMCBuIAotMDAwMDM0NjkyMiAwMDAwMCBuIAotMDAwMDM0Njk4MiAwMDAwMCBuIAotMDAwMDM0NzA2NiAwMDAwMCBuIAotMDAwMDM0OTcyNSAwMDAwMCBuIAotMDAwMDM0OTg2MiAwMDAwMCBuIAotMDAwMDM1MDAwMiAwMDAwMCBuIAotMDAwMDM1MDA2MiAwMDAwMCBuIAotMDAwMDM1MDEyMyAwMDAwMCBuIAotMDAwMDM1MDE4MyAwMDAwMCBuIAotMDAwMDM1MDI0MyAwMDAwMCBuIAotMDAwMDM1MDMwMyAwMDAwMCBuIAotMDAwMDM1MDM2MyAwMDAwMCBuIAotMDAwMDM1MDQyMyAwMDAwMCBuIAotMDAwMDM1MDQ4MyAwMDAwMCBuIAotMDAwMDM1MDU0MyAwMDAwMCBuIAotMDAwMDM1MDYwMyAwMDAwMCBuIAotMDAwMDM1MDY2MyAwMDAwMCBuIAotMDAwMDM1MDcyMyAwMDAwMCBuIAotMDAwMDM1MDc4MyAwMDAwMCBuIAotMDAwMDM1MDg0MyAwMDAwMCBuIAotMDAwMDM1MDkwNCAwMDAwMCBuIAotMDAwMDM1MDk4OSAwMDAwMCBuIAotMDAwMDM1NDEzNCAwMDAwMCBuIAotMDAwMDM1NDI4MiAwMDAwMCBuIAotMDAwMDM1NDQ1MSAwMDAwMCBuIAotMDAwMDM1NDU5MiAwMDAwMCBuIAotMDAwMDM1NDY1NSAwMDAwMCBuIAotMDAwMDM1NDcxNyAwMDAwMCBuIAotMDAwMDM1NDgwNCAwMDAwMCBuIAotMDAwMDM1Nzg2MiAwMDAwMCBuIAotMDAwMDM1Nzk5OSAwMDAwMCBuIAotMDAwMDM1ODE0MCAwMDAwMCBuIAotMDAwMDM1ODIwMiAwMDAwMCBuIAotMDAwMDM1ODI2NCAwMDAwMCBuIAotMDAwMDM1ODMyNyAwMDAwMCBuIAotMDAwMDM1ODM4OSAwMDAwMCBuIAotMDAwMDM1ODQ1MSAwMDAwMCBuIAotMDAwMDM1ODUxMyAwMDAwMCBuIAotMDAwMDM1ODU3NSAwMDAwMCBuIAotMDAwMDM1ODYzNyAwMDAwMCBuIAotMDAwMDM1ODY5OSAwMDAwMCBuIAotMDAwMDM1ODc2MSAwMDAwMCBuIAotMDAwMDM1ODgyMyAwMDAwMCBuIAotMDAwMDM1ODkxMCAwMDAwMCBuIAotMDAwMDM2MTYzNSAwMDAwMCBuIAotMDAwMDM2MTc4MyAwMDAwMCBuIAotMDAwMDM2MTkyNCAwMDAwMCBuIAotMDAwMDM2MTk4NyAwMDAwMCBuIAotMDAwMDM2MjA0OSAwMDAwMCBuIAotMDAwMDM2MjExMSAwMDAwMCBuIAotMDAwMDM2MjE3MyAwMDAwMCBuIAotMDAwMDM2MjIzNSAwMDAwMCBuIAotMDAwMDM2MjI5NyAwMDAwMCBuIAotMDAwMDM2MjM1OSAwMDAwMCBuIAotMDAwMDM2MjQ0NiAwMDAwMCBuIAotMDAwMDM2NTIzNiAwMDAwMCBuIAotMDAwMDM2NTM2MyAwMDAwMCBuIAotMDAwMDM2NTUwNCAwMDAwMCBuIAotMDAwMDM2NTU2NiAwMDAwMCBuIAotMDAwMDM2NTYyOCAwMDAwMCBuIAotMDAwMDM2NTY5MSAwMDAwMCBuIAotMDAwMDM2NTc1MyAwMDAwMCBuIAotMDAwMDM2NTgxNSAwMDAwMCBuIAotMDAwMDM2NTg3NyAwMDAwMCBuIAotMDAwMDM2NTk2NCAwMDAwMCBuIAotMDAwMDM2ODIzMyAwMDAwMCBuIAotMDAwMDM2ODM3MSAwMDAwMCBuIAotMDAwMDM2ODUxMiAwMDAwMCBuIAotMDAwMDM2ODU3NCAwMDAwMCBuIAotMDAwMDM2ODYzNyAwMDAwMCBuIAotMDAwMDM2ODcwMCAwMDAwMCBuIAotMDAwMDM2ODc2MiAwMDAwMCBuIAotMDAwMDM2ODgyNCAwMDAwMCBuIAotMDAwMDM2ODg4NiAwMDAwMCBuIAotMDAwMDM2ODk0OCAwMDAwMCBuIAotMDAwMDM2OTAzNSAwMDAwMCBuIAotMDAwMDM3MDgwOSAwMDAwMCBuIAotMDAwMDM3MDk0NyAwMDAwMCBuIAotMDAwMDM3MTA4OCAwMDAwMCBuIAotMDAwMDM3MTE1MCAwMDAwMCBuIAotMDAwMDM3MTIxMiAwMDAwMCBuIAotMDAwMDM3MTI3NCAwMDAwMCBuIAotMDAwMDM3MTMzNyAwMDAwMCBuIAotMDAwMDM3MTQwMCAwMDAwMCBuIAotMDAwMDM3MTQ2MiAwMDAwMCBuIAotMDAwMDM3MTUyNCAwMDAwMCBuIAotMDAwMDM3MTU4NiAwMDAwMCBuIAotMDAwMDM3MTY0OCAwMDAwMCBuIAotMDAwMDM3MTcxMCAwMDAwMCBuIAotMDAwMDM3MTc3MiAwMDAwMCBuIAotMDAwMDM3MTg1OSAwMDAwMCBuIAotMDAwMDM3NDI5MSAwMDAwMCBuIAotMDAwMDM3NDQyOSAwMDAwMCBuIAotMDAwMDM3NDU3MCAwMDAwMCBuIAotMDAwMDM3NDYzMiAwMDAwMCBuIAotMDAwMDM3NDY5NSAwMDAwMCBuIAotMDAwMDM3NDc1NyAwMDAwMCBuIAotMDAwMDM3NDgxOSAwMDAwMCBuIAotMDAwMDM3NDg4MSAwMDAwMCBuIAotMDAwMDM3NDk2OCAwMDAwMCBuIAotMDAwMDM3NzE0NiAwMDAwMCBuIAotMDAwMDM3NzI4NCAwMDAwMCBuIAotMDAwMDM3NzQyNSAwMDAwMCBuIAotMDAwMDM3NzQ4OCAwMDAwMCBuIAotMDAwMDM3NzU1MCAwMDAwMCBuIAotMDAwMDM3NzYxMiAwMDAwMCBuIAotMDAwMDM3NzY5OSAwMDAwMCBuIAotMDAwMDM3OTY5MyAwMDAwMCBuIAotMDAwMDM3OTgyMCAwMDAwMCBuIAotMDAwMDM3OTk2MSAwMDAwMCBuIAotMDAwMDM4MDAyMyAwMDAwMCBuIAotMDAwMDM4MDA4NSAwMDAwMCBuIAotMDAwMDM4MDE0OCAwMDAwMCBuIAotMDAwMDM4MDIxMCAwMDAwMCBuIAotMDAwMDM4MDI3MiAwMDAwMCBuIAotMDAwMDM4MDM1OSAwMDAwMCBuIAotMDAwMDM4MjY1MiAwMDAwMCBuIAotMDAwMDM4Mjc5MCAwMDAwMCBuIAotMDAwMDM4MjkzMSAwMDAwMCBuIAotMDAwMDM4Mjk5MyAwMDAwMCBuIAotMDAwMDM4MzA1NiAwMDAwMCBuIAotMDAwMDM4MzExOCAwMDAwMCBuIAotMDAwMDM4MzE4MCAwMDAwMCBuIAotMDAwMDM4MzI2NyAwMDAwMCBuIAotMDAwMDM4NTkzNCAwMDAwMCBuIAotMDAwMDM4NjA3MiAwMDAwMCBuIAotMDAwMDM4NjI0MiAwMDAwMCBuIAotMDAwMDM4NjM4MyAwMDAwMCBuIAotMDAwMDM4NjQ0NSAwMDAwMCBuIAotMDAwMDM4NjUwOCAwMDAwMCBuIAotMDAwMDM4NjU3MSAwMDAwMCBuIAotMDAwMDM4NjYzMyAwMDAwMCBuIAotMDAwMDM4NjY5NSAwMDAwMCBuIAotMDAwMDM4Njc4MiAwMDAwMCBuIAotMDAwMDM4ODE4MCAwMDAwMCBuIAotMDAwMDM4ODMxOCAwMDAwMCBuIAotMDAwMDM4ODQ1OSAwMDAwMCBuIAotMDAwMDM4ODUyMSAwMDAwMCBuIAotMDAwMDM4ODU4MyAwMDAwMCBuIAotMDAwMDM4ODY0NiAwMDAwMCBuIAotMDAwMDM4ODcwOSAwMDAwMCBuIAotMDAwMDM4ODc3MSAwMDAwMCBuIAotMDAwMDM4ODgzMyAwMDAwMCBuIAotMDAwMDM4ODg5NSAwMDAwMCBuIAotMDAwMDM4ODk1NyAwMDAwMCBuIAotMDAwMDM4OTA0NCAwMDAwMCBuIAotMDAwMDM5MTcwNyAwMDAwMCBuIAotMDAwMDM5MTg0NSAwMDAwMCBuIAotMDAwMDM5MTk4NiAwMDAwMCBuIAotMDAwMDM5MjA0OSAwMDAwMCBuIAotMDAwMDM5MjExMSAwMDAwMCBuIAotMDAwMDM5MjE3MyAwMDAwMCBuIAotMDAwMDM5MjIzNSAwMDAwMCBuIAotMDAwMDM5MjI5NyAwMDAwMCBuIAotMDAwMDM5MjM4NCAwMDAwMCBuIAotMDAwMDM5NTc0MiAwMDAwMCBuIAotMDAwMDM5NTg4MCAwMDAwMCBuIAotMDAwMDM5NjAyMSAwMDAwMCBuIAotMDAwMDM5NjA4MyAwMDAwMCBuIAotMDAwMDM5NjE0NiAwMDAwMCBuIAotMDAwMDM5NjIwOCAwMDAwMCBuIAotMDAwMDM5NjI3MCAwMDAwMCBuIAotMDAwMDM5NjMzMiAwMDAwMCBuIAotMDAwMDM5NjM5NCAwMDAwMCBuIAotMDAwMDM5NjQ4MSAwMDAwMCBuIAotMDAwMDQwMDQ0MCAwMDAwMCBuIAotMDAwMDQwMDU3OCAwMDAwMCBuIAotMDAwMDQwMDcxOSAwMDAwMCBuIAotMDAwMDQwMDc4MiAwMDAwMCBuIAotMDAwMDQwMDg0NCAwMDAwMCBuIAotMDAwMDQwMDkwNiAwMDAwMCBuIAotMDAwMDQwMDk5MyAwMDAwMCBuIAotMDAwMDQwMzM4MSAwMDAwMCBuIAotMDAwMDQwMzUxOSAwMDAwMCBuIAotMDAwMDQwMzY2MCAwMDAwMCBuIAotMDAwMDQwMzcyMiAwMDAwMCBuIAotMDAwMDQwMzc4NSAwMDAwMCBuIAotMDAwMDQwMzg0NyAwMDAwMCBuIAotMDAwMDQwMzkwOSAwMDAwMCBuIAotMDAwMDQwMzk5NiAwMDAwMCBuIAotMDAwMDQwNjgwNiAwMDAwMCBuIAotMDAwMDQwNjk0NCAwMDAwMCBuIAotMDAwMDQwNzA4NSAwMDAwMCBuIAotMDAwMDQwNzE0NyAwMDAwMCBuIAotMDAwMDQwNzIxMCAwMDAwMCBuIAotMDAwMDQwNzI3MiAwMDAwMCBuIAotMDAwMDQwNzMzNCAwMDAwMCBuIAotMDAwMDQwNzM5NiAwMDAwMCBuIAotMDAwMDQwNzQ1OCAwMDAwMCBuIAotMDAwMDQwNzUyMCAwMDAwMCBuIAotMDAwMDQwNzYwNyAwMDAwMCBuIAotMDAwMDQwOTg2MSAwMDAwMCBuIAotMDAwMDQwOTk5OSAwMDAwMCBuIAotMDAwMDQxMDE0MCAwMDAwMCBuIAotMDAwMDQxMDIwMyAwMDAwMCBuIAotMDAwMDQxMDI2NSAwMDAwMCBuIAotMDAwMDQxMDMyNyAwMDAwMCBuIAotMDAwMDQxMDM4OSAwMDAwMCBuIAotMDAwMDQxMDQ3NiAwMDAwMCBuIAotMDAwMDQxMzQ0NCAwMDAwMCBuIAotMDAwMDQxMzU4MiAwMDAwMCBuIAotMDAwMDQxMzcyMyAwMDAwMCBuIAotMDAwMDQxMzc4NSAwMDAwMCBuIAotMDAwMDQxMzg0OCAwMDAwMCBuIAotMDAwMDQxMzkxMCAwMDAwMCBuIAotMDAwMDQxMzk3MiAwMDAwMCBuIAotMDAwMDQxNDA1OSAwMDAwMCBuIAotMDAwMDQxODUwMCAwMDAwMCBuIAotMDAwMDQxODYzOCAwMDAwMCBuIAotMDAwMDQxODc3OSAwMDAwMCBuIAotMDAwMDQxODg0MiAwMDAwMCBuIAotMDAwMDQxODkwNCAwMDAwMCBuIAotMDAwMDQxODk5MSAwMDAwMCBuIAotMDAwMDQyMTIzMiAwMDAwMCBuIAotMDAwMDQyMTM3MCAwMDAwMCBuIAotMDAwMDQyMTQ4NiAwMDAwMCBuIAotMDAwMDQyMTY1NyAwMDAwMCBuIAotMDAwMDQyMTc5OCAwMDAwMCBuIAotMDAwMDQyMTg2MSAwMDAwMCBuIAotMDAwMDQyMTk0OCAwMDAwMCBuIAotMDAwMDQyNDMyNCAwMDAwMCBuIAotMDAwMDQyNDQ2MiAwMDAwMCBuIAotMDAwMDQyNDYwMyAwMDAwMCBuIAotMDAwMDQyNDY2NiAwMDAwMCBuIAotMDAwMDQyNDcyOCAwMDAwMCBuIAotMDAwMDQyNDgxNSAwMDAwMCBuIAotMDAwMDQyNzM3NiAwMDAwMCBuIAotMDAwMDQyNzUwMyAwMDAwMCBuIAotMDAwMDQyNzY0NCAwMDAwMCBuIAotMDAwMDQyNzcwNyAwMDAwMCBuIAotMDAwMDQyNzc5NCAwMDAwMCBuIAotMDAwMDQzMDUzMyAwMDAwMCBuIAotMDAwMDQzMDY2MCAwMDAwMCBuIAotMDAwMDQzMDgwMSAwMDAwMCBuIAotMDAwMDQzMDg2MyAwMDAwMCBuIAotMDAwMDQzMDkyNiAwMDAwMCBuIAotMDAwMDQzMDk4OCAwMDAwMCBuIAotMDAwMDQzMTA3NSAwMDAwMCBuIAotMDAwMDQzMzQ0MCAwMDAwMCBuIAotMDAwMDQzMzU3OCAwMDAwMCBuIAotMDAwMDQzMzcxOSAwMDAwMCBuIAotMDAwMDQzMzc4MiAwMDAwMCBuIAotMDAwMDQzMzg2OSAwMDAwMCBuIAotMDAwMDQzNjcyOSAwMDAwMCBuIAotMDAwMDQzNjg1NiAwMDAwMCBuIAotMDAwMDQzNjk5NyAwMDAwMCBuIAotMDAwMDQzNzA1OSAwMDAwMCBuIAotMDAwMDQzNzEyMiAwMDAwMCBuIAotMDAwMDQzNzE4NCAwMDAwMCBuIAotMDAwMDQzNzI3MSAwMDAwMCBuIAotMDAwMDQzOTU2MSAwMDAwMCBuIAotMDAwMDQzOTY5OSAwMDAwMCBuIAotMDAwMDQzOTg0MCAwMDAwMCBuIAotMDAwMDQzOTkwMyAwMDAwMCBuIAotMDAwMDQzOTk5MCAwMDAwMCBuIAotMDAwMDQ0MjI4OCAwMDAwMCBuIAotMDAwMDQ0MjQxNSAwMDAwMCBuIAotMDAwMDQ0MjU1NiAwMDAwMCBuIAotMDAwMDQ0MjYxOCAwMDAwMCBuIAotMDAwMDQ0MjY4MSAwMDAwMCBuIAotMDAwMDQ0Mjc0MyAwMDAwMCBuIAotMDAwMDQ0MjgzMCAwMDAwMCBuIAotMDAwMDQ0NTMzNSAwMDAwMCBuIAotMDAwMDQ0NTQ3MyAwMDAwMCBuIAotMDAwMDQ0NTYxNCAwMDAwMCBuIAotMDAwMDQ0NTY3NyAwMDAwMCBuIAotMDAwMDQ0NTc2NCAwMDAwMCBuIAotMDAwMDQ0NzQyNiAwMDAwMCBuIAotMDAwMDQ0NzU1MyAwMDAwMCBuIAotMDAwMDQ0NzY5NCAwMDAwMCBuIAotMDAwMDQ0Nzc1NiAwMDAwMCBuIAotMDAwMDQ0NzgxOSAwMDAwMCBuIAotMDAwMDQ0NzkwNiAwMDAwMCBuIAotMDAwMDQ1MDMyNSAwMDAwMCBuIAotMDAwMDQ1MDQ2MyAwMDAwMCBuIAotMDAwMDQ1MDYzNSAwMDAwMCBuIAotMDAwMDQ1MDgwNiAwMDAwMCBuIAotMDAwMDQ1MDk0NyAwMDAwMCBuIAotMDAwMDQ1MTAxMCAwMDAwMCBuIAotMDAwMDQ1MTA5NyAwMDAwMCBuIAotMDAwMDQ1MzY3MyAwMDAwMCBuIAotMDAwMDQ1MzgwMCAwMDAwMCBuIAotMDAwMDQ1Mzk0MSAwMDAwMCBuIAotMDAwMDQ1NDAwNCAwMDAwMCBuIAotMDAwMDQ1NDA5MSAwMDAwMCBuIAotMDAwMDQ1NjM4NCAwMDAwMCBuIAotMDAwMDQ1NjUxMSAwMDAwMCBuIAotMDAwMDQ1NjY1MiAwMDAwMCBuIAotMDAwMDQ1NjcxNSAwMDAwMCBuIAotMDAwMDQ1Njc3NyAwMDAwMCBuIAotMDAwMDQ1Njg2NCAwMDAwMCBuIAotMDAwMDQ1OTY3MiAwMDAwMCBuIAotMDAwMDQ2MTE2OSAwMDAwMCBuIAotMDAwMDQ2MTMzNCAwMDAwMCBuIAotMDAwMDQ2MTQ3NSAwMDAwMCBuIAotMDAwMDQ2MTUzNyAwMDAwMCBuIAotMDAwMDQ2MTU5OSAwMDAwMCBuIAotMDAwMDQ2MTY2MiAwMDAwMCBuIAotMDAwMDQ2MTcyNCAwMDAwMCBuIAotMDAwMDQ2MTc4NiAwMDAwMCBuIAotMDAwMDQ2MTg3MyAwMDAwMCBuIAotMDAwMDQ2NDcyOSAwMDAwMCBuIAotMDAwMDQ2NDg2NyAwMDAwMCBuIAotMDAwMDQ2NTAwOCAwMDAwMCBuIAotMDAwMDQ2NTA3MSAwMDAwMCBuIAotMDAwMDQ2NTE1OCAwMDAwMCBuIAotMDAwMDQ2NzIxMiAwMDAwMCBuIAotMDAwMDQ2NzM1MCAwMDAwMCBuIAotMDAwMDQ2NzQ5MSAwMDAwMCBuIAotMDAwMDQ2NzU1NCAwMDAwMCBuIAotMDAwMDQ2NzY0MSAwMDAwMCBuIAotMDAwMDQ2OTk5NCAwMDAwMCBuIAotMDAwMDQ3MDEzMiAwMDAwMCBuIAotMDAwMDQ3MDI3MyAwMDAwMCBuIAotMDAwMDQ3MDMzNiAwMDAwMCBuIAotMDAwMDQ3MDQyMyAwMDAwMCBuIAotMDAwMDQ3MjgwNCAwMDAwMCBuIAotMDAwMDQ3Mjk0MiAwMDAwMCBuIAotMDAwMDQ3MzA4MyAwMDAwMCBuIAotMDAwMDQ3MzE0NSAwMDAwMCBuIAotMDAwMDQ3MzIwOCAwMDAwMCBuIAotMDAwMDQ3MzI3MCAwMDAwMCBuIAotMDAwMDQ3MzMzMiAwMDAwMCBuIAotMDAwMDQ3MzQxOSAwMDAwMCBuIAotMDAwMDUwMDkyNiAwMDAwMCBuIAotMDAwMDUwMDk4MyAwMDAwMCBuIAotMDAwMDUwMjYyOCAwMDAwMCBuIAotMDAwMDUwMjg0NSAwMDAwMCBuIAotMDAwMDUwMzg5NiAwMDAwMCBuIAotMDAwMDUwNDAzNyAwMDAwMCBuIAotMDAwMDUwNDA5OSAwMDAwMCBuIAotMDAwMDUwNDE2MiAwMDAwMCBuIAotMDAwMDUwNDIyNCAwMDAwMCBuIAotMDAwMDUwNDMxMSAwMDAwMCBuIAotMDAwMDUwNjkxMyAwMDAwMCBuIAotMDAwMDUwNzA1MSAwMDAwMCBuIAotMDAwMDUwNzE5MiAwMDAwMCBuIAotMDAwMDUwNzI1NSAwMDAwMCBuIAotMDAwMDUwNzM0MiAwMDAwMCBuIAotMDAwMDUxMDAyNSAwMDAwMCBuIAotMDAwMDUxMDE2MyAwMDAwMCBuIAotMDAwMDUxMDMzNCAwMDAwMCBuIAotMDAwMDUxMDQ3NSAwMDAwMCBuIAotMDAwMDUxMDUzOCAwMDAwMCBuIAotMDAwMDUxMDYwMCAwMDAwMCBuIAotMDAwMDUxMDY4NyAwMDAwMCBuIAotMDAwMDUxMzA4NSAwMDAwMCBuIAotMDAwMDUxMzIyMyAwMDAwMCBuIAotMDAwMDUxMzM2NCAwMDAwMCBuIAotMDAwMDUxMzQyNyAwMDAwMCBuIAotMDAwMDUxMzQ4OSAwMDAwMCBuIAotMDAwMDUxMzU3NiAwMDAwMCBuIAotMDAwMDUxNTg1OSAwMDAwMCBuIAotMDAwMDUxNTk5NyAwMDAwMCBuIAotMDAwMDUxNjEzOCAwMDAwMCBuIAotMDAwMDUxNjIwMSAwMDAwMCBuIAotMDAwMDUxNjI2MyAwMDAwMCBuIAotMDAwMDUxNjM1MCAwMDAwMCBuIAotMDAwMDUxODc3MSAwMDAwMCBuIAotMDAwMDUxODkwOSAwMDAwMCBuIAotMDAwMDUxOTA1MCAwMDAwMCBuIAotMDAwMDUxOTExMyAwMDAwMCBuIAotMDAwMDUxOTIwMCAwMDAwMCBuIAotMDAwMDUyMTc0NCAwMDAwMCBuIAotMDAwMDUyMTg4MiAwMDAwMCBuIAotMDAwMDUyMjAyMyAwMDAwMCBuIAotMDAwMDUyMjA4NiAwMDAwMCBuIAotMDAwMDUyMjE0OCAwMDAwMCBuIAotMDAwMDUyMjIxMCAwMDAwMCBuIAotMDAwMDUyMjI3MiAwMDAwMCBuIAotMDAwMDUyMjMzNCAwMDAwMCBuIAotMDAwMDUyMjM5NiAwMDAwMCBuIAotMDAwMDUyMjQ1OCAwMDAwMCBuIAotMDAwMDUyMjUyMCAwMDAwMCBuIAotMDAwMDUyMjU4MiAwMDAwMCBuIAotMDAwMDUyMjY0NCAwMDAwMCBuIAotMDAwMDUyMjczMSAwMDAwMCBuIAotMDAwMDUyNTQ0NSAwMDAwMCBuIAotMDAwMDUyNTU5MyAwMDAwMCBuIAotMDAwMDUyNTczNCAwMDAwMCBuIAotMDAwMDUyNTc5NyAwMDAwMCBuIAotMDAwMDUyNTg1OSAwMDAwMCBuIAotMDAwMDUyNTkyMSAwMDAwMCBuIAotMDAwMDUyNjAwOCAwMDAwMCBuIAotMDAwMDUyODQ2NyAwMDAwMCBuIAotMDAwMDUyODYxNSAwMDAwMCBuIAotMDAwMDUyODc1NiAwMDAwMCBuIAotMDAwMDUyODgxOCAwMDAwMCBuIAotMDAwMDUyODg4MSAwMDAwMCBuIAotMDAwMDUyODk0MyAwMDAwMCBuIAotMDAwMDUyOTAwNSAwMDAwMCBuIAotMDAwMDUyOTA2NyAwMDAwMCBuIAotMDAwMDUyOTEyOSAwMDAwMCBuIAotMDAwMDUyOTIxNiAwMDAwMCBuIAotMDAwMDUzMjEwMyAwMDAwMCBuIAotMDAwMDUzMjI1MSAwMDAwMCBuIAotMDAwMDUzMjM5MiAwMDAwMCBuIAotMDAwMDUzMjQ1NSAwMDAwMCBuIAotMDAwMDUzMjU0MiAwMDAwMCBuIAotMDAwMDUzNDg5MyAwMDAwMCBuIAotMDAwMDUzNTAzMSAwMDAwMCBuIAotMDAwMDUzNTE3MiAwMDAwMCBuIAotMDAwMDUzNTIzNSAwMDAwMCBuIAotMDAwMDUzNTI5NyAwMDAwMCBuIAotMDAwMDUzNTM4NCAwMDAwMCBuIAotMDAwMDUzNzY1NyAwMDAwMCBuIAotMDAwMDUzNzc5NSAwMDAwMCBuIAotMDAwMDUzNzkzNiAwMDAwMCBuIAotMDAwMDUzNzk5OSAwMDAwMCBuIAotMDAwMDUzODA2MSAwMDAwMCBuIAotMDAwMDUzODE0OCAwMDAwMCBuIAotMDAwMDU0MTIzNCAwMDAwMCBuIAotMDAwMDU0MTM3MiAwMDAwMCBuIAotMDAwMDU0MTU0MyAwMDAwMCBuIAotMDAwMDU0MTY4NCAwMDAwMCBuIAotMDAwMDU0MTc0NyAwMDAwMCBuIAotMDAwMDU0MTgwOSAwMDAwMCBuIAotMDAwMDU0MTg3MSAwMDAwMCBuIAotMDAwMDU0MTk1OCAwMDAwMCBuIAotMDAwMDU0NDU1MSAwMDAwMCBuIAotMDAwMDU0NDY4OSAwMDAwMCBuIAotMDAwMDU0NDgzMCAwMDAwMCBuIAotMDAwMDU0NDg5MyAwMDAwMCBuIAotMDAwMDU0NDk1NSAwMDAwMCBuIAotMDAwMDU0NTA0MiAwMDAwMCBuIAotMDAwMDU0NzQ1OSAwMDAwMCBuIAotMDAwMDU0NzU5NyAwMDAwMCBuIAotMDAwMDU0NzczOCAwMDAwMCBuIAotMDAwMDU0NzgwMCAwMDAwMCBuIAotMDAwMDU0Nzg2MyAwMDAwMCBuIAotMDAwMDU0NzkyNiAwMDAwMCBuIAotMDAwMDU0Nzk4OCAwMDAwMCBuIAotMDAwMDU0ODA1MCAwMDAwMCBuIAotMDAwMDU0ODEzNyAwMDAwMCBuIAotMDAwMDU1MDA5MiAwMDAwMCBuIAotMDAwMDU1MDIzMCAwMDAwMCBuIAotMDAwMDU1MDM3MSAwMDAwMCBuIAotMDAwMDU1MDQzMyAwMDAwMCBuIAotMDAwMDU1MDQ5NSAwMDAwMCBuIAotMDAwMDU1MDU1OCAwMDAwMCBuIAotMDAwMDU1MDYyMSAwMDAwMCBuIAotMDAwMDU1MDY4MyAwMDAwMCBuIAotMDAwMDU1MDc0NSAwMDAwMCBuIAotMDAwMDU1MDgzMiAwMDAwMCBuIAotMDAwMDU1MzE1MCAwMDAwMCBuIAotMDAwMDU1MzI4OCAwMDAwMCBuIAotMDAwMDU1MzQyOSAwMDAwMCBuIAotMDAwMDU1MzQ5MiAwMDAwMCBuIAotMDAwMDU1MzU1NCAwMDAwMCBuIAotMDAwMDU1MzYxNiAwMDAwMCBuIAotMDAwMDU1MzY3OCAwMDAwMCBuIAotMDAwMDU1Mzc0MCAwMDAwMCBuIAotMDAwMDU1MzgyNyAwMDAwMCBuIAotMDAwMDU1NzA4OCAwMDAwMCBuIAotMDAwMDU1NzIyNiAwMDAwMCBuIAotMDAwMDU1NzM2NyAwMDAwMCBuIAotMDAwMDU1NzQzMCAwMDAwMCBuIAotMDAwMDU1NzQ5MiAwMDAwMCBuIAotMDAwMDU1NzU1NCAwMDAwMCBuIAotMDAwMDU1NzY0MSAwMDAwMCBuIAotMDAwMDU2MDU2NSAwMDAwMCBuIAotMDAwMDU2MDcwMyAwMDAwMCBuIAotMDAwMDU2MDg0NCAwMDAwMCBuIAotMDAwMDU2MDkwNiAwMDAwMCBuIAotMDAwMDU2MDk2OSAwMDAwMCBuIAotMDAwMDU2MTAzMSAwMDAwMCBuIAotMDAwMDU2MTA5MyAwMDAwMCBuIAotMDAwMDU2MTE1NSAwMDAwMCBuIAotMDAwMDU2MTI0MiAwMDAwMCBuIAotMDAwMDU2NDcwMSAwMDAwMCBuIAotMDAwMDU2NDgzOSAwMDAwMCBuIAotMDAwMDU2NDk4MCAwMDAwMCBuIAotMDAwMDU2NTA0MiAwMDAwMCBuIAotMDAwMDU2NTEwNSAwMDAwMCBuIAotMDAwMDU2NTE2NyAwMDAwMCBuIAotMDAwMDU2NTI1NCAwMDAwMCBuIAotMDAwMDU2NzU5MyAwMDAwMCBuIAotMDAwMDU2NzczMSAwMDAwMCBuIAotMDAwMDU2Nzg3MiAwMDAwMCBuIAotMDAwMDU2NzkzNSAwMDAwMCBuIAotMDAwMDU2Nzk5NyAwMDAwMCBuIAotMDAwMDU2ODA1OSAwMDAwMCBuIAotMDAwMDU2ODEyMSAwMDAwMCBuIAotMDAwMDU2ODIwOCAwMDAwMCBuIAotMDAwMDU3MDgxNiAwMDAwMCBuIAotMDAwMDU3MDk1NCAwMDAwMCBuIAotMDAwMDU3MTA5NSAwMDAwMCBuIAotMDAwMDU3MTE1OCAwMDAwMCBuIAotMDAwMDU3MTIyMCAwMDAwMCBuIAotMDAwMDU3MTI4MiAwMDAwMCBuIAotMDAwMDU3MTM0NCAwMDAwMCBuIAotMDAwMDU3MTQzMSAwMDAwMCBuIAotMDAwMDU3NDU4MyAwMDAwMCBuIAotMDAwMDU3NDcyMSAwMDAwMCBuIAotMDAwMDU3NDg5MiAwMDAwMCBuIAotMDAwMDU3NTAzMyAwMDAwMCBuIAotMDAwMDU3NTA5NiAwMDAwMCBuIAotMDAwMDU3NTE1OCAwMDAwMCBuIAotMDAwMDU3NTI0NSAwMDAwMCBuIAotMDAwMDU3NzIwOCAwMDAwMCBuIAotMDAwMDU3NzM0NiAwMDAwMCBuIAotMDAwMDU3NzQ4NyAwMDAwMCBuIAotMDAwMDU3NzU0OSAwMDAwMCBuIAotMDAwMDU3NzYxMiAwMDAwMCBuIAotMDAwMDU3NzY3NCAwMDAwMCBuIAotMDAwMDU3Nzc2MSAwMDAwMCBuIAotMDAwMDU4MDE4NyAwMDAwMCBuIAotMDAwMDU4MDMyNSAwMDAwMCBuIAotMDAwMDU4MDQ2NiAwMDAwMCBuIAotMDAwMDU4MDUyOSAwMDAwMCBuIAotMDAwMDU4MDU5MSAwMDAwMCBuIAotMDAwMDU4MDY1MyAwMDAwMCBuIAotMDAwMDU4MDcxNSAwMDAwMCBuIAotMDAwMDU4MDgwMiAwMDAwMCBuIAotMDAwMDU4NDEyOSAwMDAwMCBuIAotMDAwMDU4NDI2NyAwMDAwMCBuIAotMDAwMDU4NDQwOCAwMDAwMCBuIAotMDAwMDU4NDQ3MCAwMDAwMCBuIAotMDAwMDU4NDUzMiAwMDAwMCBuIAotMDAwMDU4NDU5NSAwMDAwMCBuIAotMDAwMDU4NDY1NyAwMDAwMCBuIAotMDAwMDU4NDcxOSAwMDAwMCBuIAotMDAwMDU4NDgwNiAwMDAwMCBuIAotMDAwMDU4NzUyNSAwMDAwMCBuIAotMDAwMDU4NzY2MyAwMDAwMCBuIAotMDAwMDU4NzgwNCAwMDAwMCBuIAotMDAwMDU4Nzg2NyAwMDAwMCBuIAotMDAwMDU4Nzk1NCAwMDAwMCBuIAotMDAwMDU5MDA0MSAwMDAwMCBuIAotMDAwMDU5MDE3OSAwMDAwMCBuIAotMDAwMDU5MDMyMCAwMDAwMCBuIAotMDAwMDU5MDM4MyAwMDAwMCBuIAotMDAwMDU5MDQ3MCAwMDAwMCBuIAotMDAwMDU5MjU5MiAwMDAwMCBuIAotMDAwMDU5MjczMCAwMDAwMCBuIAotMDAwMDU5Mjg3MSAwMDAwMCBuIAotMDAwMDU5MjkzNCAwMDAwMCBuIAotMDAwMDU5Mjk5NiAwMDAwMCBuIAotMDAwMDU5MzA4MyAwMDAwMCBuIAotMDAwMDU5NTU0MyAwMDAwMCBuIAotMDAwMDU5NTY4MSAwMDAwMCBuIAotMDAwMDU5NTgyMiAwMDAwMCBuIAotMDAwMDU5NTg4NSAwMDAwMCBuIAotMDAwMDU5NTk3MiAwMDAwMCBuIAotMDAwMDU5ODM1MiAwMDAwMCBuIAotMDAwMDU5ODQ5MCAwMDAwMCBuIAotMDAwMDU5ODYzMSAwMDAwMCBuIAotMDAwMDU5ODY5NCAwMDAwMCBuIAotMDAwMDU5ODc1NiAwMDAwMCBuIAotMDAwMDU5ODg0MyAwMDAwMCBuIAotMDAwMDYwMTQyNyAwMDAwMCBuIAotMDAwMDYwMTU2NSAwMDAwMCBuIAotMDAwMDYwMTcwNiAwMDAwMCBuIAotMDAwMDYwMTc2OSAwMDAwMCBuIAotMDAwMDYwMTg1NiAwMDAwMCBuIAotMDAwMDYwNDMzMCAwMDAwMCBuIAotMDAwMDYwNDQ1NyAwMDAwMCBuIAotMDAwMDYwNDYyOCAwMDAwMCBuIAotMDAwMDYwNDc2OSAwMDAwMCBuIAotMDAwMDYwNDgzMiAwMDAwMCBuIAotMDAwMDYwNDg5NCAwMDAwMCBuIAotMDAwMDYwNDk4MSAwMDAwMCBuIAotMDAwMDYwNjkxOSAwMDAwMCBuIAotMDAwMDYwNzA1NyAwMDAwMCBuIAotMDAwMDYwNzE5OCAwMDAwMCBuIAotMDAwMDYwNzI2MSAwMDAwMCBuIAotMDAwMDYwNzMyMyAwMDAwMCBuIAotMDAwMDYwNzQxMCAwMDAwMCBuIAotMDAwMDYwOTcwMyAwMDAwMCBuIAotMDAwMDYwOTg0MSAwMDAwMCBuIAotMDAwMDYwOTk4MiAwMDAwMCBuIAotMDAwMDYxMDA0NCAwMDAwMCBuIAotMDAwMDYxMDEwNyAwMDAwMCBuIAotMDAwMDYxMDE2OSAwMDAwMCBuIAotMDAwMDYxMDIzMSAwMDAwMCBuIAotMDAwMDYxMDI5MyAwMDAwMCBuIAotMDAwMDYxMDM4MCAwMDAwMCBuIAotMDAwMDYxMzMwOSAwMDAwMCBuIAotMDAwMDYxMzQ0NyAwMDAwMCBuIAotMDAwMDYxMzU4OCAwMDAwMCBuIAotMDAwMDYxMzY1MSAwMDAwMCBuIAotMDAwMDYxMzczOCAwMDAwMCBuIAotMDAwMDYxNjY0NyAwMDAwMCBuIAotMDAwMDYxNjc4NSAwMDAwMCBuIAotMDAwMDYxNjkyNiAwMDAwMCBuIAotMDAwMDYxNjk4OSAwMDAwMCBuIAotMDAwMDYxNzA1MSAwMDAwMCBuIAotMDAwMDYxNzEzOCAwMDAwMCBuIAotMDAwMDYxOTYyNSAwMDAwMCBuIAotMDAwMDYxOTc2MyAwMDAwMCBuIAotMDAwMDYxOTkwNCAwMDAwMCBuIAotMDAwMDYxOTk2NyAwMDAwMCBuIAotMDAwMDYyMDAyOSAwMDAwMCBuIAotMDAwMDYyMDExNiAwMDAwMCBuIAotMDAwMDYyMjE4NyAwMDAwMCBuIAotMDAwMDYyMjMyNSAwMDAwMCBuIAotMDAwMDYyMjQ2NiAwMDAwMCBuIAotMDAwMDYyMjUyOSAwMDAwMCBuIAotMDAwMDYyMjYxNiAwMDAwMCBuIAotMDAwMDYyNDQ2MSAwMDAwMCBuIAotMDAwMDYyNDU4OCAwMDAwMCBuIAotMDAwMDYyNDcyOSAwMDAwMCBuIAotMDAwMDYyNDc5MiAwMDAwMCBuIAotMDAwMDYyNDg3OSAwMDAwMCBuIAotMDAwMDYyNjcxNCAwMDAwMCBuIAotMDAwMDYyNjg0MSAwMDAwMCBuIAotMDAwMDYyNjk4MiAwMDAwMCBuIAotMDAwMDYyNzA0NSAwMDAwMCBuIAotMDAwMDYyNzEwNyAwMDAwMCBuIAotMDAwMDYyNzE5NCAwMDAwMCBuIAotMDAwMDYyOTIwMiAwMDAwMCBuIAotMDAwMDYyOTM0MCAwMDAwMCBuIAotMDAwMDYyOTQ4MSAwMDAwMCBuIAotMDAwMDYyOTU0NCAwMDAwMCBuIAotMDAwMDYyOTYzMSAwMDAwMCBuIAotMDAwMDYzNjM1NyAwMDAwMCBuIAotMDAwMDYzNjQxMyAwMDAwMCBuIAotMDAwMDYzODQxMSAwMDAwMCBuIAotMDAwMDYzODYyOCAwMDAwMCBuIAotMDAwMDYzODc5OSAwMDAwMCBuIAotMDAwMDYzODkzOSAwMDAwMCBuIAotMDAwMDYzOTA4MCAwMDAwMCBuIAotMDAwMDYzOTE0MyAwMDAwMCBuIAotMDAwMDYzOTIzMCAwMDAwMCBuIAotMDAwMDY2MTg4OSAwMDAwMCBuIAotMDAwMDY2MTk0NSAwMDAwMCBuIAotMDAwMDY2MzYzMSAwMDAwMCBuIAotMDAwMDY2MzgzNyAwMDAwMCBuIAotMDAwMDY2Mzk3NyAwMDAwMCBuIAotMDAwMDY2NDExOCAwMDAwMCBuIAotMDAwMDY2NDE4MCAwMDAwMCBuIAotMDAwMDY2NDI0MyAwMDAwMCBuIAotMDAwMDY2NDMwNSAwMDAwMCBuIAotMDAwMDY2NDM5MiAwMDAwMCBuIAotMDAwMDY2NzM4MCAwMDAwMCBuIAotMDAwMDY2NzUxOCAwMDAwMCBuIAotMDAwMDY2NzY1OSAwMDAwMCBuIAotMDAwMDY2NzcyMiAwMDAwMCBuIAotMDAwMDY2Nzc4NCAwMDAwMCBuIAotMDAwMDY2Nzg3MSAwMDAwMCBuIAotMDAwMDY3MTAzNyAwMDAwMCBuIAotMDAwMDY3MTE3NSAwMDAwMCBuIAotMDAwMDY3MTMxNiAwMDAwMCBuIAotMDAwMDY3MTM3OSAwMDAwMCBuIAotMDAwMDY3MTQ2NiAwMDAwMCBuIAotMDAwMDY3MzA4OCAwMDAwMCBuIAotMDAwMDY3MzIxNSAwMDAwMCBuIAotMDAwMDY3MzM1NiAwMDAwMCBuIAotMDAwMDY3MzQxOCAwMDAwMCBuIAotMDAwMDY3MzQ4MSAwMDAwMCBuIAotMDAwMDY3MzU0MyAwMDAwMCBuIAotMDAwMDY3MzYzMCAwMDAwMCBuIAotMDAwMDY3Njc2MyAwMDAwMCBuIAotMDAwMDY3NjgyMCAwMDAwMCBuIAotMDAwMDY4NTU1OCAwMDAwMCBuIAotMDAwMDY5OTA4NyAwMDAwMCBuIAotMDAwMDcxNTY0MyAwMDAwMCBuIAotMDAwMDczNDQ1OCAwMDAwMCBuIAotMDAwMDczNjcxMSAwMDAwMCBuIAotMDAwMDczNjk4NyAwMDAwMCBuIAotMDAwMDczODA0MiAwMDAwMCBuIAotMDAwMDczODE4MyAwMDAwMCBuIAotMDAwMDczODI0NiAwMDAwMCBuIAotMDAwMDczODMwOCAwMDAwMCBuIAotMDAwMDczODM5NSAwMDAwMCBuIAotMDAwMDc0MTIxMiAwMDAwMCBuIAotMDAwMDc0MTM0OSAwMDAwMCBuIAotMDAwMDc0MTQ5MCAwMDAwMCBuIAotMDAwMDc0MTU1MiAwMDAwMCBuIAotMDAwMDc0MTYxNSAwMDAwMCBuIAotMDAwMDc0MTY3NyAwMDAwMCBuIAotMDAwMDc0MTc2NCAwMDAwMCBuIAotMDAwMDc0NDk0MSAwMDAwMCBuIAotMDAwMDc0NTA4OSAwMDAwMCBuIAotMDAwMDc0NTIzMCAwMDAwMCBuIAotMDAwMDc0NTI5MyAwMDAwMCBuIAotMDAwMDc0NTM4MCAwMDAwMCBuIAotMDAwMDc0ODA3MyAwMDAwMCBuIAotMDAwMDc0ODIxMSAwMDAwMCBuIAotMDAwMDc0ODM1MiAwMDAwMCBuIAotMDAwMDc0ODQxNSAwMDAwMCBuIAotMDAwMDc0ODQ3NyAwMDAwMCBuIAotMDAwMDc0ODU2NCAwMDAwMCBuIAotMDAwMDc1MDU4OSAwMDAwMCBuIAotMDAwMDc1MDcyNyAwMDAwMCBuIAotMDAwMDc1MDg2OCAwMDAwMCBuIAotMDAwMDc1MDkzMSAwMDAwMCBuIAotMDAwMDc1MDk5MyAwMDAwMCBuIAotMDAwMDc1MTA4MCAwMDAwMCBuIAotMDAwMDc1MzM4NyAwMDAwMCBuIAotMDAwMDc1MzUyNSAwMDAwMCBuIAotMDAwMDc1MzY5NiAwMDAwMCBuIAotMDAwMDc1MzgzNyAwMDAwMCBuIAotMDAwMDc1MzkwMCAwMDAwMCBuIAotMDAwMDc1Mzk2MiAwMDAwMCBuIAotMDAwMDc1NDAyNCAwMDAwMCBuIAotMDAwMDc1NDExMSAwMDAwMCBuIAotMDAwMDc1NjcwOCAwMDAwMCBuIAotMDAwMDc1Njg0NiAwMDAwMCBuIAotMDAwMDc1Njk4NyAwMDAwMCBuIAotMDAwMDc1NzA1MCAwMDAwMCBuIAotMDAwMDc1NzExMiAwMDAwMCBuIAotMDAwMDc1NzE5OSAwMDAwMCBuIAotMDAwMDc1OTg2NyAwMDAwMCBuIAotMDAwMDc2MDAwNSAwMDAwMCBuIAotMDAwMDc2MDE0NiAwMDAwMCBuIAotMDAwMDc2MDIwOSAwMDAwMCBuIAotMDAwMDc2MDI3MSAwMDAwMCBuIAotMDAwMDc2MDMzMyAwMDAwMCBuIAotMDAwMDc2MDM5NSAwMDAwMCBuIAotMDAwMDc2MDQ1NyAwMDAwMCBuIAotMDAwMDc2MDU0NCAwMDAwMCBuIAotMDAwMDc2MzQ3MiAwMDAwMCBuIAotMDAwMDc2MzYyMCAwMDAwMCBuIAotMDAwMDc2Mzc2MSAwMDAwMCBuIAotMDAwMDc2MzgyNCAwMDAwMCBuIAotMDAwMDc2Mzg4NiAwMDAwMCBuIAotMDAwMDc2Mzk0OCAwMDAwMCBuIAotMDAwMDc2NDAxMCAwMDAwMCBuIAotMDAwMDc2NDA5NyAwMDAwMCBuIAotMDAwMDc2Njc2MSAwMDAwMCBuIAotMDAwMDc2NjkwOSAwMDAwMCBuIAotMDAwMDc2NzA1MCAwMDAwMCBuIAotMDAwMDc2NzExMyAwMDAwMCBuIAotMDAwMDc2NzE3NSAwMDAwMCBuIAotMDAwMDc2NzI2MiAwMDAwMCBuIAotMDAwMDc2OTQxNCAwMDAwMCBuIAotMDAwMDc2OTU2MiAwMDAwMCBuIAotMDAwMDc2OTcwMyAwMDAwMCBuIAotMDAwMDc2OTc2NSAwMDAwMCBuIAotMDAwMDc2OTgyOCAwMDAwMCBuIAotMDAwMDc2OTg5MCAwMDAwMCBuIAotMDAwMDc2OTk1MiAwMDAwMCBuIAotMDAwMDc3MDAzOSAwMDAwMCBuIAotMDAwMDc3MzA1MiAwMDAwMCBuIAotMDAwMDc3MzIwMCAwMDAwMCBuIAotMDAwMDc3MzM0MSAwMDAwMCBuIAotMDAwMDc3MzQwNCAwMDAwMCBuIAotMDAwMDc3MzQ5MSAwMDAwMCBuIAotMDAwMDc3NTY4NCAwMDAwMCBuIAotMDAwMDc3NTgxMSAwMDAwMCBuIAotMDAwMDc3NTk1MiAwMDAwMCBuIAotMDAwMDc3NjAxNSAwMDAwMCBuIAotMDAwMDc3NjEwMiAwMDAwMCBuIAotMDAwMDc3ODMwNCAwMDAwMCBuIAotMDAwMDc3ODQzMSAwMDAwMCBuIAotMDAwMDc3ODU3MiAwMDAwMCBuIAotMDAwMDc3ODYzNSAwMDAwMCBuIAotMDAwMDc3ODcyMiAwMDAwMCBuIAotMDAwMDc4MDg4OCAwMDAwMCBuIAotMDAwMDc4MTAxNSAwMDAwMCBuIAotMDAwMDc4MTE1NiAwMDAwMCBuIAotMDAwMDc4MTIxOCAwMDAwMCBuIAotMDAwMDc4MTI4MSAwMDAwMCBuIAotMDAwMDc4MTM0MyAwMDAwMCBuIAotMDAwMDc4MTQwNSAwMDAwMCBuIAotMDAwMDc4MTQ2NyAwMDAwMCBuIAotMDAwMDc4MTU1NCAwMDAwMCBuIAotMDAwMDc4MzU4NSAwMDAwMCBuIAotMDAwMDc4MzcyMyAwMDAwMCBuIAotMDAwMDc4Mzg5NCAwMDAwMCBuIAotMDAwMDc4NDAzNSAwMDAwMCBuIAotMDAwMDc4NDA5NyAwMDAwMCBuIAotMDAwMDc4NDE2MCAwMDAwMCBuIAotMDAwMDc4NDIyMiAwMDAwMCBuIAotMDAwMDc4NDMwOSAwMDAwMCBuIAotMDAwMDc4NjEzNSAwMDAwMCBuIAotMDAwMDc4NjI3MyAwMDAwMCBuIAotMDAwMDc4NjQxNCAwMDAwMCBuIAotMDAwMDc4NjQ3NyAwMDAwMCBuIAotMDAwMDc4NjUzOSAwMDAwMCBuIAotMDAwMDc4NjYwMSAwMDAwMCBuIAotMDAwMDc4NjY2MyAwMDAwMCBuIAotMDAwMDc4Njc1MCAwMDAwMCBuIAotMDAwMDc4OTg4NiAwMDAwMCBuIAotMDAwMDc5MDAyNCAwMDAwMCBuIAotMDAwMDc5MDE2NSAwMDAwMCBuIAotMDAwMDc5MDIyOCAwMDAwMCBuIAotMDAwMDc5MDI5MCAwMDAwMCBuIAotMDAwMDc5MDM1MiAwMDAwMCBuIAotMDAwMDc5MDQzOSAwMDAwMCBuIAotMDAwMDc5MzY4NSAwMDAwMCBuIAotMDAwMDc5MzgyMyAwMDAwMCBuIAotMDAwMDc5Mzk2NCAwMDAwMCBuIAotMDAwMDc5NDAyNyAwMDAwMCBuIAotMDAwMDc5NDA4OSAwMDAwMCBuIAotMDAwMDc5NDE3NiAwMDAwMCBuIAotMDAwMDc5NjQ5MSAwMDAwMCBuIAotMDAwMDc5NjYyOSAwMDAwMCBuIAotMDAwMDc5Njc3MCAwMDAwMCBuIAotMDAwMDc5NjgzMyAwMDAwMCBuIAotMDAwMDc5NjkyMCAwMDAwMCBuIAotMDAwMDc5OTA4MiAwMDAwMCBuIAotMDAwMDc5OTIwOSAwMDAwMCBuIAotMDAwMDc5OTM1MCAwMDAwMCBuIAotMDAwMDc5OTQxMyAwMDAwMCBuIAotMDAwMDc5OTQ3NSAwMDAwMCBuIAotMDAwMDc5OTUzNyAwMDAwMCBuIAotMDAwMDc5OTYyNCAwMDAwMCBuIAotMDAwMDgwMjIwMyAwMDAwMCBuIAotMDAwMDgwMjM0MSAwMDAwMCBuIAotMDAwMDgwMjQ4MiAwMDAwMCBuIAotMDAwMDgwMjU0NSAwMDAwMCBuIAotMDAwMDgwMjYwOCAwMDAwMCBuIAotMDAwMDgwMjY3MCAwMDAwMCBuIAotMDAwMDgwMjc1NyAwMDAwMCBuIAotMDAwMDgwMzk5NSAwMDAwMCBuIAotMDAwMDgwNDEwOSAwMDAwMCBuIAotMDAwMDgwNDI1MCAwMDAwMCBuIAotMDAwMDgwNDMxMiAwMDAwMCBuIAotMDAwMDgwNDM3NCAwMDAwMCBuIAotMDAwMDgwNDQzNyAwMDAwMCBuIAotMDAwMDgwNDUwMCAwMDAwMCBuIAotMDAwMDgwNDU2MiAwMDAwMCBuIAotMDAwMDgwNDYyNCAwMDAwMCBuIAotMDAwMDgwNDY4NiAwMDAwMCBuIAotMDAwMDgwNDc0OCAwMDAwMCBuIAotMDAwMDgwNDgxMCAwMDAwMCBuIAotMDAwMDgwNDg3MiAwMDAwMCBuIAotMDAwMDgwNDkzNCAwMDAwMCBuIAotMDAwMDgwNDk5NiAwMDAwMCBuIAotMDAwMDgwNTA1OCAwMDAwMCBuIAotMDAwMDgwNTEyMCAwMDAwMCBuIAotMDAwMDgwNTIwNyAwMDAwMCBuIAotMDAwMDgwODA1NyAwMDAwMCBuIAotMDAwMDgwODE5NSAwMDAwMCBuIAotMDAwMDgwODMzNiAwMDAwMCBuIAotMDAwMDgwODM5OSAwMDAwMCBuIAotMDAwMDgwODQ2MSAwMDAwMCBuIAotMDAwMDgwODUyMyAwMDAwMCBuIAotMDAwMDgwODU4NSAwMDAwMCBuIAotMDAwMDgwODY0NyAwMDAwMCBuIAotMDAwMDgwODczNCAwMDAwMCBuIAotMDAwMDgxMjAyNiAwMDAwMCBuIAotMDAwMDgxMjE2NCAwMDAwMCBuIAotMDAwMDgxMjMwNSAwMDAwMCBuIAotMDAwMDgxMjM2OCAwMDAwMCBuIAotMDAwMDgxMjQzMCAwMDAwMCBuIAotMDAwMDgxMjQ5MiAwMDAwMCBuIAotMDAwMDgxMjU1NCAwMDAwMCBuIAotMDAwMDgxMjYxNiAwMDAwMCBuIAotMDAwMDgxMjY3OCAwMDAwMCBuIAotMDAwMDgxMjc2NSAwMDAwMCBuIAotMDAwMDgxNTkyMyAwMDAwMCBuIAotMDAwMDgxNjA2MSAwMDAwMCBuIAotMDAwMDgxNjIzMiAwMDAwMCBuIAotMDAwMDgxNjM3MyAwMDAwMCBuIAotMDAwMDgxNjQzNSAwMDAwMCBuIAotMDAwMDgxNjQ5OCAwMDAwMCBuIAotMDAwMDgxNjU2MCAwMDAwMCBuIAotMDAwMDgxNjYyMiAwMDAwMCBuIAotMDAwMDgxNjY4NCAwMDAwMCBuIAotMDAwMDgxNjc0NiAwMDAwMCBuIAotMDAwMDgxNjgwOCAwMDAwMCBuIAotMDAwMDgxNjg3MCAwMDAwMCBuIAotMDAwMDgxNjkzMiAwMDAwMCBuIAotMDAwMDgxNjk5NCAwMDAwMCBuIAotMDAwMDgxNzA4MSAwMDAwMCBuIAotMDAwMDgyMDU4MyAwMDAwMCBuIAotMDAwMDgyMDcyMSAwMDAwMCBuIAotMDAwMDgyMDg2MiAwMDAwMCBuIAotMDAwMDgyMDkyNSAwMDAwMCBuIAotMDAwMDgyMDk4NyAwMDAwMCBuIAotMDAwMDgyMTA0OSAwMDAwMCBuIAotMDAwMDgyMTEzNiAwMDAwMCBuIAotMDAwMDgyMzQ5MiAwMDAwMCBuIAotMDAwMDgyMzYzMCAwMDAwMCBuIAotMDAwMDgyMzc3MSAwMDAwMCBuIAotMDAwMDgyMzgzMyAwMDAwMCBuIAotMDAwMDgyMzg5NiAwMDAwMCBuIAotMDAwMDgyMzk1OCAwMDAwMCBuIAotMDAwMDgyNDAyMCAwMDAwMCBuIAotMDAwMDgyNDA4MiAwMDAwMCBuIAotMDAwMDgyNDE2OSAwMDAwMCBuIAotMDAwMDgyNjQyMyAwMDAwMCBuIAotMDAwMDgyNjU2MSAwMDAwMCBuIAotMDAwMDgyNjcwMiAwMDAwMCBuIAotMDAwMDgyNjc2NSAwMDAwMCBuIAotMDAwMDgyNjgyNyAwMDAwMCBuIAotMDAwMDgyNjg4OSAwMDAwMCBuIAotMDAwMDgyNjk1MSAwMDAwMCBuIAotMDAwMDgyNzAxMyAwMDAwMCBuIAotMDAwMDgyNzA3NSAwMDAwMCBuIAotMDAwMDgyNzEzNyAwMDAwMCBuIAotMDAwMDgyNzIyNCAwMDAwMCBuIAotMDAwMDgyOTU4MCAwMDAwMCBuIAotMDAwMDgyOTcxOCAwMDAwMCBuIAotMDAwMDgyOTg1OSAwMDAwMCBuIAotMDAwMDgyOTkyMSAwMDAwMCBuIAotMDAwMDgyOTk4NCAwMDAwMCBuIAotMDAwMDgzMDA0NiAwMDAwMCBuIAotMDAwMDgzMDEzMyAwMDAwMCBuIAotMDAwMDgzMjM1OSAwMDAwMCBuIAotMDAwMDgzMjQ5NyAwMDAwMCBuIAotMDAwMDgzMjYzOCAwMDAwMCBuIAotMDAwMDgzMjcwMSAwMDAwMCBuIAotMDAwMDgzMjc2MyAwMDAwMCBuIAotMDAwMDgzMjgyNSAwMDAwMCBuIAotMDAwMDgzMjkxMiAwMDAwMCBuIAotMDAwMDgzNTExMCAwMDAwMCBuIAotMDAwMDgzNTI0OCAwMDAwMCBuIAotMDAwMDgzNTM4OSAwMDAwMCBuIAotMDAwMDgzNTQ1MiAwMDAwMCBuIAotMDAwMDgzNTUxNCAwMDAwMCBuIAotMDAwMDgzNTU3NiAwMDAwMCBuIAotMDAwMDgzNTYzOCAwMDAwMCBuIAotMDAwMDgzNTcwMCAwMDAwMCBuIAotMDAwMDgzNTc4NyAwMDAwMCBuIAotMDAwMDgzODM5NSAwMDAwMCBuIAotMDAwMDgzODUzMyAwMDAwMCBuIAotMDAwMDgzODY3NCAwMDAwMCBuIAotMDAwMDgzODczNyAwMDAwMCBuIAotMDAwMDgzODc5OSAwMDAwMCBuIAotMDAwMDgzODg2MSAwMDAwMCBuIAotMDAwMDgzODkyMyAwMDAwMCBuIAotMDAwMDgzODk4NSAwMDAwMCBuIAotMDAwMDgzOTA3MiAwMDAwMCBuIAotMDAwMDg0MTg4NSAwMDAwMCBuIAotMDAwMDg0MjAyMyAwMDAwMCBuIAotMDAwMDg0MjE2NCAwMDAwMCBuIAotMDAwMDg0MjIyNiAwMDAwMCBuIAotMDAwMDg0MjI4OCAwMDAwMCBuIAotMDAwMDg0MjM1MSAwMDAwMCBuIAotMDAwMDg0MjQxMyAwMDAwMCBuIAotMDAwMDg0MjUwMCAwMDAwMCBuIAotMDAwMDg0NDgwMCAwMDAwMCBuIAotMDAwMDg0NDkzOCAwMDAwMCBuIAotMDAwMDg0NTA3OSAwMDAwMCBuIAotMDAwMDg0NTE0MiAwMDAwMCBuIAotMDAwMDg0NTIyOSAwMDAwMCBuIAotMDAwMDg0NzQ4OCAwMDAwMCBuIAotMDAwMDg0NzYyNiAwMDAwMCBuIAotMDAwMDg0Nzc5NyAwMDAwMCBuIAotMDAwMDg0NzkzOCAwMDAwMCBuIAotMDAwMDg0ODAwMSAwMDAwMCBuIAotMDAwMDg0ODA4OCAwMDAwMCBuIAotMDAwMDg1MDAzMSAwMDAwMCBuIAotMDAwMDg1MDE1OCAwMDAwMCBuIAotMDAwMDg1MDI5OSAwMDAwMCBuIAotMDAwMDg1MDM2MiAwMDAwMCBuIAotMDAwMDg1MDQ0OSAwMDAwMCBuIAotMDAwMDg1Mjc3OCAwMDAwMCBuIAotMDAwMDg1MjkxNiAwMDAwMCBuIAotMDAwMDg1MzA1NyAwMDAwMCBuIAotMDAwMDg1MzEyMCAwMDAwMCBuIAotMDAwMDg1MzE4MiAwMDAwMCBuIAotMDAwMDg1MzI2OSAwMDAwMCBuIAotMDAwMDg1NTUyMiAwMDAwMCBuIAotMDAwMDg1NTY0OSAwMDAwMCBuIAotMDAwMDg1NTc5MCAwMDAwMCBuIAotMDAwMDg1NTg1MiAwMDAwMCBuIAotMDAwMDg1NTkxNSAwMDAwMCBuIAotMDAwMDg1NTk3NyAwMDAwMCBuIAotMDAwMDg1NjAzOSAwMDAwMCBuIAotMDAwMDg1NjEwMSAwMDAwMCBuIAotMDAwMDg1NjE4OCAwMDAwMCBuIAotMDAwMDg2NjU1MiAwMDAwMCBuIAotMDAwMDg2ODkzMiAwMDAwMCBuIAotMDAwMDg2OTE0OSAwMDAwMCBuIAotMDAwMDg2OTI5MCAwMDAwMCBuIAotMDAwMDg2OTM1MyAwMDAwMCBuIAotMDAwMDg2OTQ0MCAwMDAwMCBuIAotMDAwMDg3MjI5NSAwMDAwMCBuIAotMDAwMDg3MjQyMiAwMDAwMCBuIAotMDAwMDg3MjU2MyAwMDAwMCBuIAotMDAwMDg3MjYyNSAwMDAwMCBuIAotMDAwMDg3MjY4OCAwMDAwMCBuIAotMDAwMDg3Mjc1MCAwMDAwMCBuIAotMDAwMDg3MjgxMiAwMDAwMCBuIAotMDAwMDg3Mjg5OSAwMDAwMCBuIAotMDAwMDg3NTI0OCAwMDAwMCBuIAotMDAwMDg3NTM4NiAwMDAwMCBuIAotMDAwMDg3NTUyNyAwMDAwMCBuIAotMDAwMDg3NTU4OSAwMDAwMCBuIAotMDAwMDg3NTY1MiAwMDAwMCBuIAotMDAwMDg3NTcxNCAwMDAwMCBuIAotMDAwMDg3NTc3NiAwMDAwMCBuIAotMDAwMDg3NTg2MyAwMDAwMCBuIAotMDAwMDg3ODc3NSAwMDAwMCBuIAotMDAwMDg3ODkxMyAwMDAwMCBuIAotMDAwMDg3OTA1NCAwMDAwMCBuIAotMDAwMDg3OTExNyAwMDAwMCBuIAotMDAwMDg3OTIwNCAwMDAwMCBuIAotMDAwMDg4MTYyMyAwMDAwMCBuIAotMDAwMDg4MTc2MSAwMDAwMCBuIAotMDAwMDg4MTkwMiAwMDAwMCBuIAotMDAwMDg4MTk2NSAwMDAwMCBuIAotMDAwMDg4MjA1MiAwMDAwMCBuIAotMDAwMDg4NDMzNSAwMDAwMCBuIAotMDAwMDg4NDQ3MyAwMDAwMCBuIAotMDAwMDg4NDYxNCAwMDAwMCBuIAotMDAwMDg4NDY3NyAwMDAwMCBuIAotMDAwMDg4NDc2NCAwMDAwMCBuIAotMDAwMDg4NzA4NCAwMDAwMCBuIAotMDAwMDg4NzIyMiAwMDAwMCBuIAotMDAwMDg4NzM0NyAwMDAwMCBuIAotMDAwMDg4NzUxOCAwMDAwMCBuIAotMDAwMDg4NzY1OSAwMDAwMCBuIAotMDAwMDg4NzcyMSAwMDAwMCBuIAotMDAwMDg4Nzc4NCAwMDAwMCBuIAotMDAwMDg4Nzg0NiAwMDAwMCBuIAotMDAwMDg4NzkwOCAwMDAwMCBuIAotMDAwMDg4Nzk3MCAwMDAwMCBuIAotMDAwMDg4ODA1NyAwMDAwMCBuIAotMDAwMDg5MDI2OSAwMDAwMCBuIAotMDAwMDg5MDQwNyAwMDAwMCBuIAotMDAwMDg5MDU0OCAwMDAwMCBuIAotMDAwMDg5MDYxMCAwMDAwMCBuIAotMDAwMDg5MDY3MyAwMDAwMCBuIAotMDAwMDg5MDczNSAwMDAwMCBuIAotMDAwMDg5MDc5NyAwMDAwMCBuIAotMDAwMDg5MDg4NCAwMDAwMCBuIAotMDAwMDg5MzQ4MiAwMDAwMCBuIAotMDAwMDg5MzYyMCAwMDAwMCBuIAotMDAwMDg5Mzc2MSAwMDAwMCBuIAotMDAwMDg5MzgyNCAwMDAwMCBuIAotMDAwMDg5MzkxMSAwMDAwMCBuIAotMDAwMDg5NjY5NyAwMDAwMCBuIAotMDAwMDg5NjgzNSAwMDAwMCBuIAotMDAwMDg5Njk3NiAwMDAwMCBuIAotMDAwMDg5NzAzOSAwMDAwMCBuIAotMDAwMDg5NzEwMSAwMDAwMCBuIAotMDAwMDg5NzE4OCAwMDAwMCBuIAotMDAwMDg5OTUwMiAwMDAwMCBuIAotMDAwMDg5OTY0MCAwMDAwMCBuIAotMDAwMDg5OTc4MSAwMDAwMCBuIAotMDAwMDg5OTg0NCAwMDAwMCBuIAotMDAwMDg5OTkwNiAwMDAwMCBuIAotMDAwMDg5OTk5MyAwMDAwMCBuIAotMDAwMDkwMjQ0NCAwMDAwMCBuIAotMDAwMDkwMjU4MiAwMDAwMCBuIAotMDAwMDkwMjcyMyAwMDAwMCBuIAotMDAwMDkwMjc4NiAwMDAwMCBuIAotMDAwMDkwMjg0OCAwMDAwMCBuIAotMDAwMDkwMjkzNSAwMDAwMCBuIAotMDAwMDkwNTQyNyAwMDAwMCBuIAotMDAwMDkwNTU2NSAwMDAwMCBuIAotMDAwMDkwNTcwNiAwMDAwMCBuIAotMDAwMDkwNTc2OSAwMDAwMCBuIAotMDAwMDkwNTgzMSAwMDAwMCBuIAotMDAwMDkwNTkxOCAwMDAwMCBuIAotMDAwMDkwODI3OSAwMDAwMCBuIAotMDAwMDkwODQxNyAwMDAwMCBuIAotMDAwMDkwODU1OCAwMDAwMCBuIAotMDAwMDkwODYyMSAwMDAwMCBuIAotMDAwMDkwODcwOCAwMDAwMCBuIAotMDAwMDkxMTMzOCAwMDAwMCBuIAotMDAwMDkxMTQ3NiAwMDAwMCBuIAotMDAwMDkxMTYxNyAwMDAwMCBuIAotMDAwMDkxMTY4MCAwMDAwMCBuIAotMDAwMDkxMTc0MiAwMDAwMCBuIAotMDAwMDkxMTgwNCAwMDAwMCBuIAotMDAwMDkxMTg2NiAwMDAwMCBuIAotMDAwMDkxMTkyOCAwMDAwMCBuIAotMDAwMDkxMTk5MCAwMDAwMCBuIAotMDAwMDkxMjA1MiAwMDAwMCBuIAotMDAwMDkxMjExNCAwMDAwMCBuIAotMDAwMDkxMjE3NiAwMDAwMCBuIAotMDAwMDkxMjIzOCAwMDAwMCBuIAotMDAwMDkxMjMwMCAwMDAwMCBuIAotMDAwMDkxMjM4NyAwMDAwMCBuIAotMDAwMDkxNTM0MSAwMDAwMCBuIAotMDAwMDkxNTQ3OCAwMDAwMCBuIAotMDAwMDkxNTYxOSAwMDAwMCBuIAotMDAwMDkxNTY4MiAwMDAwMCBuIAotMDAwMDkxNTc0NCAwMDAwMCBuIAotMDAwMDkxNTgwNiAwMDAwMCBuIAotMDAwMDkxNTg2OCAwMDAwMCBuIAotMDAwMDkxNTkzMCAwMDAwMCBuIAotMDAwMDkxNTk5MiAwMDAwMCBuIAotMDAwMDkxNjA1NCAwMDAwMCBuIAotMDAwMDkxNjExNiAwMDAwMCBuIAotMDAwMDkxNjE3OCAwMDAwMCBuIAotMDAwMDkxNjI0MCAwMDAwMCBuIAotMDAwMDkxNjMwMiAwMDAwMCBuIAotMDAwMDkxNjM2NCAwMDAwMCBuIAotMDAwMDkxNjQ1MSAwMDAwMCBuIAotMDAwMDkxOTM3MiAwMDAwMCBuIAotMDAwMDkxOTUwOSAwMDAwMCBuIAotMDAwMDkxOTY4MCAwMDAwMCBuIAotMDAwMDkxOTgyMSAwMDAwMCBuIAotMDAwMDkxOTg4NCAwMDAwMCBuIAotMDAwMDkxOTk0NiAwMDAwMCBuIAotMDAwMDkyMDAwOCAwMDAwMCBuIAotMDAwMDkyMDA3MCAwMDAwMCBuIAotMDAwMDkyMDEzMiAwMDAwMCBuIAotMDAwMDkyMDE5NCAwMDAwMCBuIAotMDAwMDkyMDI1NiAwMDAwMCBuIAotMDAwMDkyMDMxOCAwMDAwMCBuIAotMDAwMDkyMDM4MCAwMDAwMCBuIAotMDAwMDkyMDQ0MiAwMDAwMCBuIAotMDAwMDkyMDUwNCAwMDAwMCBuIAotMDAwMDkyMDU2NiAwMDAwMCBuIAotMDAwMDkyMDYyOCAwMDAwMCBuIAotMDAwMDkyMDcxNSAwMDAwMCBuIAotMDAwMDkyMzYwOCAwMDAwMCBuIAotMDAwMDkyMzc1NiAwMDAwMCBuIAotMDAwMDkyMzg5NyAwMDAwMCBuIAotMDAwMDkyMzk2MCAwMDAwMCBuIAotMDAwMDkyNDA0NyAwMDAwMCBuIAotMDAwMDkyNTk4NSAwMDAwMCBuIAotMDAwMDkyNjEyMiAwMDAwMCBuIAotMDAwMDkyNjI2MyAwMDAwMCBuIAotMDAwMDkyNjMyNiAwMDAwMCBuIAotMDAwMDkyNjM4OCAwMDAwMCBuIAotMDAwMDkyNjQ1MCAwMDAwMCBuIAotMDAwMDkyNjUzNyAwMDAwMCBuIAotMDAwMDkyODg3MCAwMDAwMCBuIAotMDAwMDkyOTAxOCAwMDAwMCBuIAotMDAwMDkyOTE1OSAwMDAwMCBuIAotMDAwMDkyOTIyMSAwMDAwMCBuIAotMDAwMDkyOTI4NCAwMDAwMCBuIAotMDAwMDkyOTM0NiAwMDAwMCBuIAotMDAwMDkyOTQwOCAwMDAwMCBuIAotMDAwMDkyOTQ3MCAwMDAwMCBuIAotMDAwMDkyOTU1NyAwMDAwMCBuIAotMDAwMDkzMjg3NSAwMDAwMCBuIAotMDAwMDkzMzAyMyAwMDAwMCBuIAotMDAwMDkzMzE2NCAwMDAwMCBuIAotMDAwMDkzMzIyNyAwMDAwMCBuIAotMDAwMDkzMzI4OSAwMDAwMCBuIAotMDAwMDkzMzM1MSAwMDAwMCBuIAotMDAwMDkzMzQzOCAwMDAwMCBuIAotMDAwMDkzNjI3MCAwMDAwMCBuIAotMDAwMDkzNjQwOCAwMDAwMCBuIAotMDAwMDkzNjU0OSAwMDAwMCBuIAotMDAwMDkzNjYxMiAwMDAwMCBuIAotMDAwMDkzNjY3NCAwMDAwMCBuIAotMDAwMDkzNjczNiAwMDAwMCBuIAotMDAwMDkzNjc5OCAwMDAwMCBuIAotMDAwMDkzNjg4NSAwMDAwMCBuIAotMDAwMDkzOTU1MyAwMDAwMCBuIAotMDAwMDkzOTY5MSAwMDAwMCBuIAotMDAwMDkzOTgzMiAwMDAwMCBuIAotMDAwMDkzOTg5NSAwMDAwMCBuIAotMDAwMDkzOTk4MiAwMDAwMCBuIAotMDAwMDk0MTk3OSAwMDAwMCBuIAotMDAwMDk0MjEwNiAwMDAwMCBuIAotMDAwMDk0MjI0NyAwMDAwMCBuIAotMDAwMDk0MjMxMCAwMDAwMCBuIAotMDAwMDk0MjM3MiAwMDAwMCBuIAotMDAwMDk0MjQzNCAwMDAwMCBuIAotMDAwMDk0MjQ5NiAwMDAwMCBuIAotMDAwMDk0MjU4MyAwMDAwMCBuIAotMDAwMDk0NDk1OSAwMDAwMCBuIAotMDAwMDk0NTA5NyAwMDAwMCBuIAotMDAwMDk0NTIzOCAwMDAwMCBuIAotMDAwMDk0NTMwMSAwMDAwMCBuIAotMDAwMDk0NTM2MyAwMDAwMCBuIAotMDAwMDk0NTQyNSAwMDAwMCBuIAotMDAwMDk0NTUxMiAwMDAwMCBuIAotMDAwMDk0ODUxMSAwMDAwMCBuIAotMDAwMDk0ODY0OSAwMDAwMCBuIAotMDAwMDk0ODc5MCAwMDAwMCBuIAotMDAwMDk0ODg1MiAwMDAwMCBuIAotMDAwMDk0ODkxNSAwMDAwMCBuIAotMDAwMDk0ODk3NyAwMDAwMCBuIAotMDAwMDk0OTAzOSAwMDAwMCBuIAotMDAwMDk0OTEwMSAwMDAwMCBuIAotMDAwMDk0OTE4OCAwMDAwMCBuIAotMDAwMDk1MTQxNSAwMDAwMCBuIAotMDAwMDk1MTU1MyAwMDAwMCBuIAotMDAwMDk1MTcyNCAwMDAwMCBuIAotMDAwMDk1MTg2NSAwMDAwMCBuIAotMDAwMDk1MTkyOCAwMDAwMCBuIAotMDAwMDk1MTk5MCAwMDAwMCBuIAotMDAwMDk1MjA3NyAwMDAwMCBuIAotMDAwMDk1NDU4NyAwMDAwMCBuIAotMDAwMDk1NDcyNSAwMDAwMCBuIAotMDAwMDk1NDg2NiAwMDAwMCBuIAotMDAwMDk1NDkyOSAwMDAwMCBuIAotMDAwMDk1NTAxNiAwMDAwMCBuIAotMDAwMDk1Njc2OCAwMDAwMCBuIAotMDAwMDk1Njg5NSAwMDAwMCBuIAotMDAwMDk1NzAzNiAwMDAwMCBuIAotMDAwMDk1NzA5OCAwMDAwMCBuIAotMDAwMDk1NzE2MSAwMDAwMCBuIAotMDAwMDk1NzIyMyAwMDAwMCBuIAotMDAwMDk1NzI4NSAwMDAwMCBuIAotMDAwMDk1NzM3MiAwMDAwMCBuIAotMDAwMDk1OTg1MCAwMDAwMCBuIAotMDAwMDk1OTk4OCAwMDAwMCBuIAotMDAwMDk2MDEyOSAwMDAwMCBuIAotMDAwMDk2MDE5MSAwMDAwMCBuIAotMDAwMDk2MDI1NCAwMDAwMCBuIAotMDAwMDk2MDMxNiAwMDAwMCBuIAotMDAwMDk2MDM3OCAwMDAwMCBuIAotMDAwMDk2MDQ0MCAwMDAwMCBuIAotMDAwMDk2MDUyNyAwMDAwMCBuIAotMDAwMDk2MzcwNSAwMDAwMCBuIAotMDAwMDk2Mzg0MyAwMDAwMCBuIAotMDAwMDk2Mzk4NCAwMDAwMCBuIAotMDAwMDk2NDA0NyAwMDAwMCBuIAotMDAwMDk2NDExMCAwMDAwMCBuIAotMDAwMDk2NDE5NyAwMDAwMCBuIAotMDAwMDk2NDk3MiAwMDAwMCBuIAotMDAwMDk2NTA4NiAwMDAwMCBuIAotMDAwMDk2NjA0MyAwMDAwMCBuIAotMDAwMDk2NjEwNSAwMDAwMCBuIAotMDAwMDk2NjE2OCAwMDAwMCBuIAotMDAwMDk2NjIzMSAwMDAwMCBuIAotMDAwMDk2NjI5MyAwMDAwMCBuIAotMDAwMDk2NjQxNSAwMDAwMCBuIAotMDAwMDk2NjQ3NyAwMDAwMCBuIAotMDAwMDk2NjUzOSAwMDAwMCBuIAotMDAwMDk2NjY2MSAwMDAwMCBuIAotMDAwMDk2Njc4MyAwMDAwMCBuIAotMDAwMDk2NjkwNSAwMDAwMCBuIAotMDAwMDk2NzAyNyAwMDAwMCBuIAotMDAwMDk2NzE0OSAwMDAwMCBuIAotMDAwMDk2NzI3MiAwMDAwMCBuIAotMDAwMDk2NzM5NiAwMDAwMCBuIAotMDAwMDk2NzUxNyAwMDAwMCBuIAotMDAwMDk2NzYzOSAwMDAwMCBuIAotMDAwMDk2Nzc2MiAwMDAwMCBuIAotMDAwMDk2Nzg4NCAwMDAwMCBuIAotMDAwMDk2ODAwNyAwMDAwMCBuIAotMDAwMDk2ODEzMSAwMDAwMCBuIAotMDAwMDk2ODI1MiAwMDAwMCBuIAotMDAwMDk2ODM3NCAwMDAwMCBuIAotMDAwMDk2ODQ5NSAwMDAwMCBuIAotMDAwMDk2ODYxNiAwMDAwMCBuIAotMDAwMDk2ODczOCAwMDAwMCBuIAotMDAwMDk2ODg2MCAwMDAwMCBuIAotMDAwMDk2ODk4MSAwMDAwMCBuIAotMDAwMDk2OTEwMiAwMDAwMCBuIAotMDAwMDk2OTE2NCAwMDAwMCBuIAotMDAwMDk2OTI4NiAwMDAwMCBuIAotMDAwMDk2OTM0OCAwMDAwMCBuIAotMDAwMDk2OTQ2OSAwMDAwMCBuIAotMDAwMDk2OTU5MSAwMDAwMCBuIAotMDAwMDk2OTcxMyAwMDAwMCBuIAotMDAwMDk2OTgzNSAwMDAwMCBuIAotMDAwMDk2OTk1NyAwMDAwMCBuIAotMDAwMDk3MDA4MCAwMDAwMCBuIAotMDAwMDk3MDIwMiAwMDAwMCBuIAotMDAwMDk3MDMyNCAwMDAwMCBuIAotMDAwMDk3MDQ0NiAwMDAwMCBuIAotMDAwMDk3MDU2NyAwMDAwMCBuIAotMDAwMDk3MDY4OSAwMDAwMCBuIAotMDAwMDk3MDgxMSAwMDAwMCBuIAotMDAwMDk3MDkzMyAwMDAwMCBuIAotMDAwMDk3MTA1NSAwMDAwMCBuIAotMDAwMDk3MTE3OCAwMDAwMCBuIAotMDAwMDk3MTMwMCAwMDAwMCBuIAotMDAwMDk3MTQyMSAwMDAwMCBuIAotMDAwMDk3MTU0NCAwMDAwMCBuIAotMDAwMDk3MTY2NyAwMDAwMCBuIAotMDAwMDk3MTc5MCAwMDAwMCBuIAotMDAwMDk3MTkxMyAwMDAwMCBuIAotMDAwMDk3MjAzNSAwMDAwMCBuIAotMDAwMDk3MjE1OCAwMDAwMCBuIAotMDAwMDk3MjI4MSAwMDAwMCBuIAotMDAwMDk3MjQwNCAwMDAwMCBuIAotMDAwMDk3MjUyNyAwMDAwMCBuIAotMDAwMDk3MjY0OSAwMDAwMCBuIAotMDAwMDk3Mjc3MiAwMDAwMCBuIAotMDAwMDk3Mjg5NSAwMDAwMCBuIAotMDAwMDk3MzAxOCAwMDAwMCBuIAotMDAwMDk3MzE0MSAwMDAwMCBuIAotMDAwMDk3MzI2MyAwMDAwMCBuIAotMDAwMDk3MzM4NiAwMDAwMCBuIAotMDAwMDk3MzUwOSAwMDAwMCBuIAotMDAwMDk3MzYzMiAwMDAwMCBuIAotMDAwMDk3Mzc1NSAwMDAwMCBuIAotMDAwMDk3Mzg3OCAwMDAwMCBuIAotMDAwMDk3NDAwMSAwMDAwMCBuIAotMDAwMDk3NDEyNCAwMDAwMCBuIAotMDAwMDk3NDI0NyAwMDAwMCBuIAotMDAwMDk3NDM3MCAwMDAwMCBuIAotMDAwMDk3NDQ5MyAwMDAwMCBuIAotMDAwMDk3NDYxNiAwMDAwMCBuIAotMDAwMDk3NDczOSAwMDAwMCBuIAotMDAwMDk3NDg2MiAwMDAwMCBuIAotMDAwMDk3NDk4NSAwMDAwMCBuIAotMDAwMDk3NTEwOCAwMDAwMCBuIAotMDAwMDk3NTIzMSAwMDAwMCBuIAotMDAwMDk3NTM1NCAwMDAwMCBuIAotMDAwMDk3NTQ3NyAwMDAwMCBuIAotMDAwMDk3NTYwMCAwMDAwMCBuIAotMDAwMDk3NTcyMyAwMDAwMCBuIAotMDAwMDk3NTg0NiAwMDAwMCBuIAotMDAwMDk3NTk2OCAwMDAwMCBuIAotMDAwMDk3NjA5MSAwMDAwMCBuIAotMDAwMDk3NjIxNSAwMDAwMCBuIAotMDAwMDk3NjMzOCAwMDAwMCBuIAotMDAwMDk3NjQ2MSAwMDAwMCBuIAotMDAwMDk3NjU4NCAwMDAwMCBuIAotMDAwMDk3NjcwNyAwMDAwMCBuIAotMDAwMDk3NjgzMCAwMDAwMCBuIAotMDAwMDk3Njk1MiAwMDAwMCBuIAotMDAwMDk3NzA3NCAwMDAwMCBuIAotMDAwMDk3NzE5NiAwMDAwMCBuIAotMDAwMDk3NzMxNiAwMDAwMCBuIAotMDAwMDk3NzQwMyAwMDAwMCBuIAotMDAwMDk3OTYyNCAwMDAwMCBuIAotMDAwMDk3OTc3NSAwMDAwMCBuIAotMDAwMDk3OTg5NSAwMDAwMCBuIAotMDAwMDk4MDk2MSAwMDAwMCBuIAotMDAwMDk4MTAyNCAwMDAwMCBuIAotMDAwMDk4MTE0NCAwMDAwMCBuIAotMDAwMDk4MTI2NSAwMDAwMCBuIAotMDAwMDk4MTM4NiAwMDAwMCBuIAotMDAwMDk4MTUwOSAwMDAwMCBuIAotMDAwMDk4MTYzMSAwMDAwMCBuIAotMDAwMDk4MTc1MiAwMDAwMCBuIAotMDAwMDk4MTg3NSAwMDAwMCBuIAotMDAwMDk4MTk5NyAwMDAwMCBuIAotMDAwMDk4MjExOSAwMDAwMCBuIAotMDAwMDk4MjI0MCAwMDAwMCBuIAotMDAwMDk4MjM2MyAwMDAwMCBuIAotMDAwMDk4MjQ4NSAwMDAwMCBuIAotMDAwMDk4MjYwNyAwMDAwMCBuIAotMDAwMDk4MjczMCAwMDAwMCBuIAotMDAwMDk4Mjg1MSAwMDAwMCBuIAotMDAwMDk4Mjk3MyAwMDAwMCBuIAotMDAwMDk4MzA5NiAwMDAwMCBuIAotMDAwMDk4MzIxOCAwMDAwMCBuIAotMDAwMDk4MzMzOSAwMDAwMCBuIAotMDAwMDk4MzQwMSAwMDAwMCBuIAotMDAwMDk4MzUyMyAwMDAwMCBuIAotMDAwMDk4MzY0NiAwMDAwMCBuIAotMDAwMDk4Mzc2OCAwMDAwMCBuIAotMDAwMDk4Mzg5MCAwMDAwMCBuIAotMDAwMDk4NDAxMiAwMDAwMCBuIAotMDAwMDk4NDEzNCAwMDAwMCBuIAotMDAwMDk4NDI1NiAwMDAwMCBuIAotMDAwMDk4NDM3OCAwMDAwMCBuIAotMDAwMDk4NDUwMCAwMDAwMCBuIAotMDAwMDk4NDYyMiAwMDAwMCBuIAotMDAwMDk4NDc0NCAwMDAwMCBuIAotMDAwMDk4NDg2NiAwMDAwMCBuIAotMDAwMDk4NDk4OCAwMDAwMCBuIAotMDAwMDk4NTExMCAwMDAwMCBuIAotMDAwMDk4NTIzMiAwMDAwMCBuIAotMDAwMDk4NTM1NSAwMDAwMCBuIAotMDAwMDk4NTQ3NyAwMDAwMCBuIAotMDAwMDk4NTYwMCAwMDAwMCBuIAotMDAwMDk4NTcyMiAwMDAwMCBuIAotMDAwMDk4NTg0NSAwMDAwMCBuIAotMDAwMDk4NTk2OCAwMDAwMCBuIAotMDAwMDk4NjA5MCAwMDAwMCBuIAotMDAwMDk4NjIxMiAwMDAwMCBuIAotMDAwMDk4NjMzNCAwMDAwMCBuIAotMDAwMDk4NjQ1NSAwMDAwMCBuIAotMDAwMDk4NjU3NyAwMDAwMCBuIAotMDAwMDk4NjY5OSAwMDAwMCBuIAotMDAwMDk4NjgyMiAwMDAwMCBuIAotMDAwMDk4Njk0NCAwMDAwMCBuIAotMDAwMDk4NzA2NiAwMDAwMCBuIAotMDAwMDk4NzE4NSAwMDAwMCBuIAotMDAwMDk4NzMwNyAwMDAwMCBuIAotMDAwMDk4NzQyOSAwMDAwMCBuIAotMDAwMDk4NzU1MSAwMDAwMCBuIAotMDAwMDk4NzY3MyAwMDAwMCBuIAotMDAwMDk4Nzc5NSAwMDAwMCBuIAotMDAwMDk4NzkxNyAwMDAwMCBuIAotMDAwMDk4ODAzOSAwMDAwMCBuIAotMDAwMDk4ODE2MSAwMDAwMCBuIAotMDAwMDk4ODI4MyAwMDAwMCBuIAotMDAwMDk4ODQwNSAwMDAwMCBuIAotMDAwMDk4ODUyNyAwMDAwMCBuIAotMDAwMDk4ODY0OSAwMDAwMCBuIAotMDAwMDk4ODc3MSAwMDAwMCBuIAotMDAwMDk4ODg5MyAwMDAwMCBuIAotMDAwMDk4OTAxNSAwMDAwMCBuIAotMDAwMDk4OTEzNyAwMDAwMCBuIAotMDAwMDk4OTI1OSAwMDAwMCBuIAotMDAwMDk4OTM4MSAwMDAwMCBuIAotMDAwMDk4OTUwMyAwMDAwMCBuIAotMDAwMDk4OTYyNSAwMDAwMCBuIAotMDAwMDk4OTc0NyAwMDAwMCBuIAotMDAwMDk4OTg2OSAwMDAwMCBuIAotMDAwMDk4OTk5MSAwMDAwMCBuIAotMDAwMDk5MDExMyAwMDAwMCBuIAotMDAwMDk5MDIzNSAwMDAwMCBuIAotMDAwMDk5MDM1OCAwMDAwMCBuIAotMDAwMDk5MDQ4MCAwMDAwMCBuIAotMDAwMDk5MDYwMiAwMDAwMCBuIAotMDAwMDk5MDcyNiAwMDAwMCBuIAotMDAwMDk5MDg0OCAwMDAwMCBuIAotMDAwMDk5MDk3MCAwMDAwMCBuIAotMDAwMDk5MTA5NCAwMDAwMCBuIAotMDAwMDk5MTE1NiAwMDAwMCBuIAotMDAwMDk5MTI3OSAwMDAwMCBuIAotMDAwMDk5MTQwMiAwMDAwMCBuIAotMDAwMDk5MTUyNSAwMDAwMCBuIAotMDAwMDk5MTY0OCAwMDAwMCBuIAotMDAwMDk5MTc3MiAwMDAwMCBuIAotMDAwMDk5MTg5NCAwMDAwMCBuIAotMDAwMDk5MjAxNyAwMDAwMCBuIAotMDAwMDk5MjE0MCAwMDAwMCBuIAotMDAwMDk5MjI2MyAwMDAwMCBuIAotMDAwMDk5MjM4NiAwMDAwMCBuIAotMDAwMDk5MjUwOCAwMDAwMCBuIAotMDAwMDk5MjYzMCAwMDAwMCBuIAotMDAwMDk5Mjc1MyAwMDAwMCBuIAotMDAwMDk5Mjg3NyAwMDAwMCBuIAotMDAwMDk5MzAwMSAwMDAwMCBuIAotMDAwMDk5MzEyMyAwMDAwMCBuIAotMDAwMDk5MzI0NSAwMDAwMCBuIAotMDAwMDk5MzM2NiAwMDAwMCBuIAotMDAwMDk5MzQ1MyAwMDAwMCBuIAotMDAwMDk5NTU0NSAwMDAwMCBuIAotMDAwMDk5NTY4NSAwMDAwMCBuIAotMDAwMDk5NjY0MiAwMDAwMCBuIAotMDAwMDk5NjcwNSAwMDAwMCBuIAotMDAwMDk5NjgyNiAwMDAwMCBuIAotMDAwMDk5Njk0OCAwMDAwMCBuIAotMDAwMDk5NzA3MCAwMDAwMCBuIAotMDAwMDk5NzE5MyAwMDAwMCBuIAotMDAwMDk5NzMxNSAwMDAwMCBuIAotMDAwMDk5NzQzNyAwMDAwMCBuIAotMDAwMDk5NzU1OSAwMDAwMCBuIAotMDAwMDk5NzY4MSAwMDAwMCBuIAotMDAwMDk5NzgwMyAwMDAwMCBuIAotMDAwMDk5NzkyNSAwMDAwMCBuIAotMDAwMDk5ODA0NyAwMDAwMCBuIAotMDAwMDk5ODE2OSAwMDAwMCBuIAotMDAwMDk5ODI5MSAwMDAwMCBuIAotMDAwMDk5ODQxMiAwMDAwMCBuIAotMDAwMDk5ODQ3NCAwMDAwMCBuIAotMDAwMDk5ODU5NiAwMDAwMCBuIAotMDAwMDk5ODcxOCAwMDAwMCBuIAotMDAwMDk5ODg0MCAwMDAwMCBuIAotMDAwMDk5ODk2MSAwMDAwMCBuIAotMDAwMDk5OTA4MyAwMDAwMCBuIAotMDAwMDk5OTIwNSAwMDAwMCBuIAotMDAwMDk5OTMyNyAwMDAwMCBuIAotMDAwMDk5OTQ0OSAwMDAwMCBuIAotMDAwMDk5OTU3MSAwMDAwMCBuIAotMDAwMDk5OTY5MyAwMDAwMCBuIAotMDAwMDk5OTgxNSAwMDAwMCBuIAotMDAwMDk5OTkzNyAwMDAwMCBuIAotMDAwMDk5OTk5OSAwMDAwMCBuIAotMDAwMTAwMDEyMiAwMDAwMCBuIAotMDAwMTAwMDI0MyAwMDAwMCBuIAotMDAwMTAwMDM2NiAwMDAwMCBuIAotMDAwMTAwMDQ4OCAwMDAwMCBuIAotMDAwMTAwMDU1MCAwMDAwMCBuIAotMDAwMTAwMDY3MiAwMDAwMCBuIAotMDAwMTAwMDc5NCAwMDAwMCBuIAotMDAwMTAwMDkxNiAwMDAwMCBuIAotMDAwMTAwMTAzOSAwMDAwMCBuIAotMDAwMTAwMTE2MiAwMDAwMCBuIAotMDAwMTAwMTI4MyAwMDAwMCBuIAotMDAwMTAwMTQwNCAwMDAwMCBuIAotMDAwMTAwMTUyNiAwMDAwMCBuIAotMDAwMTAwMTU4OCAwMDAwMCBuIAotMDAwMTAwMTcwOSAwMDAwMCBuIAotMDAwMTAwMTgzMCAwMDAwMCBuIAotMDAwMTAwMTk1MCAwMDAwMCBuIAotMDAwMTAwMjA3MSAwMDAwMCBuIAotMDAwMTAwMjE5NCAwMDAwMCBuIAotMDAwMTAwMjMxNyAwMDAwMCBuIAotMDAwMTAwMjQ0MCAwMDAwMCBuIAotMDAwMTAwMjU2MyAwMDAwMCBuIAotMDAwMTAwMjY4NSAwMDAwMCBuIAotMDAwMTAwMjgwNyAwMDAwMCBuIAotMDAwMTAwMjkyOSAwMDAwMCBuIAotMDAwMTAwMzA1MSAwMDAwMCBuIAotMDAwMTAwMzE3NCAwMDAwMCBuIAotMDAwMTAwMzI5NyAwMDAwMCBuIAotMDAwMTAwMzQyMCAwMDAwMCBuIAotMDAwMTAwMzU0MyAwMDAwMCBuIAotMDAwMTAwMzY2NiAwMDAwMCBuIAotMDAwMTAwMzc4OSAwMDAwMCBuIAotMDAwMTAwMzkxMiAwMDAwMCBuIAotMDAwMTAwNDAzNSAwMDAwMCBuIAotMDAwMTAwNDE1OCAwMDAwMCBuIAotMDAwMTAwNDI4MSAwMDAwMCBuIAotMDAwMTAwNDQwNCAwMDAwMCBuIAotMDAwMTAwNDUyNyAwMDAwMCBuIAotMDAwMTAwNDY1MCAwMDAwMCBuIAotMDAwMTAwNDc3MyAwMDAwMCBuIAotMDAwMTAwNDg5NiAwMDAwMCBuIAotMDAwMTAwNTAxOSAwMDAwMCBuIAotMDAwMTAwNTE0MiAwMDAwMCBuIAotMDAwMTAwNTI2NSAwMDAwMCBuIAotMDAwMTAwNTM4OCAwMDAwMCBuIAotMDAwMTAwNTUxMSAwMDAwMCBuIAotMDAwMTAwNTYzNCAwMDAwMCBuIAotMDAwMTAwNTc1NyAwMDAwMCBuIAotMDAwMTAwNTg4MCAwMDAwMCBuIAotMDAwMTAwNjAwMyAwMDAwMCBuIAotMDAwMTAwNjEyNSAwMDAwMCBuIAotMDAwMTAwNjI0OCAwMDAwMCBuIAotMDAwMTAwNjM3MSAwMDAwMCBuIAotMDAwMTAwNjQzMyAwMDAwMCBuIAotMDAwMTAwNjQ5NSAwMDAwMCBuIAotMDAwMTAwNjU1NyAwMDAwMCBuIAotMDAwMTAwNjY4MCAwMDAwMCBuIAotMDAwMTAwNjgwNCAwMDAwMCBuIAotMDAwMTAwNjkyNiAwMDAwMCBuIAotMDAwMTAwNzA0OCAwMDAwMCBuIAotMDAwMTAwNzE3MCAwMDAwMCBuIAotMDAwMTAwNzI5NCAwMDAwMCBuIAotMDAwMTAwNzQxNyAwMDAwMCBuIAotMDAwMTAwNzUzOSAwMDAwMCBuIAotMDAwMTAwNzY2MiAwMDAwMCBuIAotMDAwMTAwNzc4NSAwMDAwMCBuIAotMDAwMTAwNzg0NyAwMDAwMCBuIAotMDAwMTAwNzk2NyAwMDAwMCBuIAotMDAwMTAwODA1NCAwMDAwMCBuIAotMDAwMTAxMDE4MyAwMDAwMCBuIAotMDAwMTAxMDMyMyAwMDAwMCBuIAotMDAwMTAxMTMzNCAwMDAwMCBuIAotMDAwMTAxMTM5NyAwMDAwMCBuIAotMDAwMTAxMTUxNyAwMDAwMCBuIAotMDAwMTAxMTYzOSAwMDAwMCBuIAotMDAwMTAxMTc2MSAwMDAwMCBuIAotMDAwMTAxMTg4MyAwMDAwMCBuIAotMDAwMTAxMjAwNiAwMDAwMCBuIAotMDAwMTAxMjEzMCAwMDAwMCBuIAotMDAwMTAxMjI1MiAwMDAwMCBuIAotMDAwMTAxMjM3NCAwMDAwMCBuIAotMDAwMTAxMjQ5NiAwMDAwMCBuIAotMDAwMTAxMjYxOCAwMDAwMCBuIAotMDAwMTAxMjc0MCAwMDAwMCBuIAotMDAwMTAxMjg2MSAwMDAwMCBuIAotMDAwMTAxMjk4MyAwMDAwMCBuIAotMDAwMTAxMzEwNSAwMDAwMCBuIAotMDAwMTAxMzIyOCAwMDAwMCBuIAotMDAwMTAxMzM1MCAwMDAwMCBuIAotMDAwMTAxMzQ3MiAwMDAwMCBuIAotMDAwMTAxMzUzNCAwMDAwMCBuIAotMDAwMTAxMzY1NiAwMDAwMCBuIAotMDAwMTAxMzc3OSAwMDAwMCBuIAotMDAwMTAxMzkwMSAwMDAwMCBuIAotMDAwMTAxNDAyNCAwMDAwMCBuIAotMDAwMTAxNDE0OCAwMDAwMCBuIAotMDAwMTAxNDI3MSAwMDAwMCBuIAotMDAwMTAxNDM5MyAwMDAwMCBuIAotMDAwMTAxNDUxNSAwMDAwMCBuIAotMDAwMTAxNDYzOCAwMDAwMCBuIAotMDAwMTAxNDc2MiAwMDAwMCBuIAotMDAwMTAxNDg4NSAwMDAwMCBuIAotMDAwMTAxNTAwOCAwMDAwMCBuIAotMDAwMTAxNTEzMSAwMDAwMCBuIAotMDAwMTAxNTI1MyAwMDAwMCBuIAotMDAwMTAxNTM3NiAwMDAwMCBuIAotMDAwMTAxNTUwMCAwMDAwMCBuIAotMDAwMTAxNTYyMiAwMDAwMCBuIAotMDAwMTAxNTc0NCAwMDAwMCBuIAotMDAwMTAxNTg2NyAwMDAwMCBuIAotMDAwMTAxNTkyOSAwMDAwMCBuIAotMDAwMTAxNjA1MSAwMDAwMCBuIAotMDAwMTAxNjE3NCAwMDAwMCBuIAotMDAwMTAxNjI5NiAwMDAwMCBuIAotMDAwMTAxNjQxOSAwMDAwMCBuIAotMDAwMTAxNjU0MyAwMDAwMCBuIAotMDAwMTAxNjY2NSAwMDAwMCBuIAotMDAwMTAxNjc4NyAwMDAwMCBuIAotMDAwMTAxNjg0OSAwMDAwMCBuIAotMDAwMTAxNjk3MiAwMDAwMCBuIAotMDAwMTAxNzA5MiAwMDAwMCBuIAotMDAwMTAxNzIxNSAwMDAwMCBuIAotMDAwMTAxNzMzOCAwMDAwMCBuIAotMDAwMTAxNzQ2MCAwMDAwMCBuIAotMDAwMTAxNzU4MyAwMDAwMCBuIAotMDAwMTAxNzcwNiAwMDAwMCBuIAotMDAwMTAxNzgyOSAwMDAwMCBuIAotMDAwMTAxNzk1MyAwMDAwMCBuIAotMDAwMTAxODA3NyAwMDAwMCBuIAotMDAwMTAxODIwMSAwMDAwMCBuIAotMDAwMTAxODMyNSAwMDAwMCBuIAotMDAwMTAxODQ0OSAwMDAwMCBuIAotMDAwMTAxODU3MyAwMDAwMCBuIAotMDAwMTAxODY5NyAwMDAwMCBuIAotMDAwMTAxODgyMSAwMDAwMCBuIAotMDAwMTAxODk0NSAwMDAwMCBuIAotMDAwMTAxOTA2OSAwMDAwMCBuIAotMDAwMTAxOTE5MSAwMDAwMCBuIAotMDAwMTAxOTMxNSAwMDAwMCBuIAotMDAwMTAxOTQzOSAwMDAwMCBuIAotMDAwMTAxOTU2MyAwMDAwMCBuIAotMDAwMTAxOTY4NyAwMDAwMCBuIAotMDAwMTAxOTgxMSAwMDAwMCBuIAotMDAwMTAxOTkzNSAwMDAwMCBuIAotMDAwMTAyMDA1OSAwMDAwMCBuIAotMDAwMTAyMDE4MyAwMDAwMCBuIAotMDAwMTAyMDMwNiAwMDAwMCBuIAotMDAwMTAyMDQzMCAwMDAwMCBuIAotMDAwMTAyMDU1NCAwMDAwMCBuIAotMDAwMTAyMDY3OCAwMDAwMCBuIAotMDAwMTAyMDgwMiAwMDAwMCBuIAotMDAwMTAyMDkyNiAwMDAwMCBuIAotMDAwMTAyMTA0OSAwMDAwMCBuIAotMDAwMTAyMTE3MyAwMDAwMCBuIAotMDAwMTAyMTI5NyAwMDAwMCBuIAotMDAwMTAyMTQyMSAwMDAwMCBuIAotMDAwMTAyMTU0NSAwMDAwMCBuIAotMDAwMTAyMTY2OSAwMDAwMCBuIAotMDAwMTAyMTc5MyAwMDAwMCBuIAotMDAwMTAyMTkxNyAwMDAwMCBuIAotMDAwMTAyMjA0MSAwMDAwMCBuIAotMDAwMTAyMjE2NSAwMDAwMCBuIAotMDAwMTAyMjI4OSAwMDAwMCBuIAotMDAwMTAyMjQxMyAwMDAwMCBuIAotMDAwMTAyMjUzNyAwMDAwMCBuIAotMDAwMTAyMjY2MSAwMDAwMCBuIAotMDAwMTAyMjc4NSAwMDAwMCBuIAotMDAwMTAyMjkwOSAwMDAwMCBuIAotMDAwMTAyMzAzMiAwMDAwMCBuIAotMDAwMTAyMzE1NCAwMDAwMCBuIAotMDAwMTAyMzI0MSAwMDAwMCBuIAotMDAwMTAyNTQ5NSAwMDAwMCBuIAotMDAwMTAyNTYzNSAwMDAwMCBuIAotMDAwMTAyNjgwMSAwMDAwMCBuIAotMDAwMTAyNjg2NCAwMDAwMCBuIAotMDAwMTAyNjk4NiAwMDAwMCBuIAotMDAwMTAyNzEwOSAwMDAwMCBuIAotMDAwMTAyNzIzMiAwMDAwMCBuIAotMDAwMTAyNzM1NSAwMDAwMCBuIAotMDAwMTAyNzQ3NiAwMDAwMCBuIAotMDAwMTAyNzU5OSAwMDAwMCBuIAotMDAwMTAyNzcyMyAwMDAwMCBuIAotMDAwMTAyNzg0NyAwMDAwMCBuIAotMDAwMTAyNzk3MSAwMDAwMCBuIAotMDAwMTAyODA5NCAwMDAwMCBuIAotMDAwMTAyODIxNyAwMDAwMCBuIAotMDAwMTAyODM0MCAwMDAwMCBuIAotMDAwMTAyODQ2MyAwMDAwMCBuIAotMDAwMTAyODU4NyAwMDAwMCBuIAotMDAwMTAyODcxMCAwMDAwMCBuIAotMDAwMTAyODgzMyAwMDAwMCBuIAotMDAwMTAyODk1NiAwMDAwMCBuIAotMDAwMTAyOTA3OSAwMDAwMCBuIAotMDAwMTAyOTIwMiAwMDAwMCBuIAotMDAwMTAyOTMyMyAwMDAwMCBuIAotMDAwMTAyOTQ0NiAwMDAwMCBuIAotMDAwMTAyOTU3MCAwMDAwMCBuIAotMDAwMTAyOTY5MyAwMDAwMCBuIAotMDAwMTAyOTgxNiAwMDAwMCBuIAotMDAwMTAyOTkzOCAwMDAwMCBuIAotMDAwMTAzMDA2MCAwMDAwMCBuIAotMDAwMTAzMDE4NCAwMDAwMCBuIAotMDAwMTAzMDMwNyAwMDAwMCBuIAotMDAwMTAzMDQzMCAwMDAwMCBuIAotMDAwMTAzMDU1MiAwMDAwMCBuIAotMDAwMTAzMDY3NSAwMDAwMCBuIAotMDAwMTAzMDc5NyAwMDAwMCBuIAotMDAwMTAzMDkxOSAwMDAwMCBuIAotMDAwMTAzMTA0MSAwMDAwMCBuIAotMDAwMTAzMTE2MyAwMDAwMCBuIAotMDAwMTAzMTI4NSAwMDAwMCBuIAotMDAwMTAzMTQwNyAwMDAwMCBuIAotMDAwMTAzMTUyOSAwMDAwMCBuIAotMDAwMTAzMTY1MSAwMDAwMCBuIAotMDAwMTAzMTc3MyAwMDAwMCBuIAotMDAwMTAzMTg5NiAwMDAwMCBuIAotMDAwMTAzMjAxOCAwMDAwMCBuIAotMDAwMTAzMjE0MCAwMDAwMCBuIAotMDAwMTAzMjI2MiAwMDAwMCBuIAotMDAwMTAzMjM4NCAwMDAwMCBuIAotMDAwMTAzMjUwNiAwMDAwMCBuIAotMDAwMTAzMjYyOSAwMDAwMCBuIAotMDAwMTAzMjc1MyAwMDAwMCBuIAotMDAwMTAzMjg3NSAwMDAwMCBuIAotMDAwMTAzMjk5NyAwMDAwMCBuIAotMDAwMTAzMzEyMCAwMDAwMCBuIAotMDAwMTAzMzI0MyAwMDAwMCBuIAotMDAwMTAzMzM2NiAwMDAwMCBuIAotMDAwMTAzMzQ4OCAwMDAwMCBuIAotMDAwMTAzMzYxMSAwMDAwMCBuIAotMDAwMTAzMzczMiAwMDAwMCBuIAotMDAwMTAzMzg1NiAwMDAwMCBuIAotMDAwMTAzMzk4MCAwMDAwMCBuIAotMDAwMTAzNDEwNCAwMDAwMCBuIAotMDAwMTAzNDIyOCAwMDAwMCBuIAotMDAwMTAzNDM1MiAwMDAwMCBuIAotMDAwMTAzNDQ3NCAwMDAwMCBuIAotMDAwMTAzNDU5OCAwMDAwMCBuIAotMDAwMTAzNDcyMiAwMDAwMCBuIAotMDAwMTAzNDg0NiAwMDAwMCBuIAotMDAwMTAzNDk3MCAwMDAwMCBuIAotMDAwMTAzNTA5NCAwMDAwMCBuIAotMDAwMTAzNTIxOCAwMDAwMCBuIAotMDAwMTAzNTM0MiAwMDAwMCBuIAotMDAwMTAzNTQ2NSAwMDAwMCBuIAotMDAwMTAzNTU4OSAwMDAwMCBuIAotMDAwMTAzNTcxMyAwMDAwMCBuIAotMDAwMTAzNTgzNyAwMDAwMCBuIAotMDAwMTAzNTk2MSAwMDAwMCBuIAotMDAwMTAzNjA4NSAwMDAwMCBuIAotMDAwMTAzNjIwOSAwMDAwMCBuIAotMDAwMTAzNjMzMyAwMDAwMCBuIAotMDAwMTAzNjQ1NyAwMDAwMCBuIAotMDAwMTAzNjU4MSAwMDAwMCBuIAotMDAwMTAzNjcwNSAwMDAwMCBuIAotMDAwMTAzNjgyOSAwMDAwMCBuIAotMDAwMTAzNjk1MyAwMDAwMCBuIAotMDAwMTAzNzA3NyAwMDAwMCBuIAotMDAwMTAzNzIwMSAwMDAwMCBuIAotMDAwMTAzNzMyNSAwMDAwMCBuIAotMDAwMTAzNzQ0OSAwMDAwMCBuIAotMDAwMTAzNzU3MyAwMDAwMCBuIAotMDAwMTAzNzY5NyAwMDAwMCBuIAotMDAwMTAzNzgyMSAwMDAwMCBuIAotMDAwMTAzNzk0NSAwMDAwMCBuIAotMDAwMTAzODA2OSAwMDAwMCBuIAotMDAwMTAzODE5MyAwMDAwMCBuIAotMDAwMTAzODMxNyAwMDAwMCBuIAotMDAwMTAzODQ0MSAwMDAwMCBuIAotMDAwMTAzODU2NSAwMDAwMCBuIAotMDAwMTAzODY4OSAwMDAwMCBuIAotMDAwMTAzODgxMyAwMDAwMCBuIAotMDAwMTAzODkzNyAwMDAwMCBuIAotMDAwMTAzOTA2MSAwMDAwMCBuIAotMDAwMTAzOTE4NSAwMDAwMCBuIAotMDAwMTAzOTMwOSAwMDAwMCBuIAotMDAwMTAzOTQzMSAwMDAwMCBuIAotMDAwMTAzOTU1NCAwMDAwMCBuIAotMDAwMTAzOTY3NyAwMDAwMCBuIAotMDAwMTAzOTgwMSAwMDAwMCBuIAotMDAwMTAzOTkyNSAwMDAwMCBuIAotMDAwMTA0MDA0OSAwMDAwMCBuIAotMDAwMTA0MDE3MyAwMDAwMCBuIAotMDAwMTA0MDI5NyAwMDAwMCBuIAotMDAwMTA0MDQyMCAwMDAwMCBuIAotMDAwMTA0MDU0MiAwMDAwMCBuIAotMDAwMTA0MDYyOSAwMDAwMCBuIAotMDAwMTA0Mjg0NyAwMDAwMCBuIAotMDAwMTA0Mjk3MyAwMDAwMCBuIAotMDAwMTA0MzA5NyAwMDAwMCBuIAotMDAwMTA0NDE1NCAwMDAwMCBuIAotMDAwMTA0NDIxNyAwMDAwMCBuIAotMDAwMTA0NDMzOSAwMDAwMCBuIAotMDAwMTA0NDQ2MiAwMDAwMCBuIAotMDAwMTA0NDU4NiAwMDAwMCBuIAotMDAwMTA0NDcwOSAwMDAwMCBuIAotMDAwMTA0NDgzMiAwMDAwMCBuIAotMDAwMTA0NDk1NSAwMDAwMCBuIAotMDAwMTA0NTA3OCAwMDAwMCBuIAotMDAwMTA0NTE5OSAwMDAwMCBuIAotMDAwMTA0NTMyMiAwMDAwMCBuIAotMDAwMTA0NTQ0NiAwMDAwMCBuIAotMDAwMTA0NTU2OSAwMDAwMCBuIAotMDAwMTA0NTY5MiAwMDAwMCBuIAotMDAwMTA0NTgxNSAwMDAwMCBuIAotMDAwMTA0NTkzNyAwMDAwMCBuIAotMDAwMTA0NjA2MSAwMDAwMCBuIAotMDAwMTA0NjEyMyAwMDAwMCBuIAotMDAwMTA0NjE4NSAwMDAwMCBuIAotMDAwMTA0NjMwNiAwMDAwMCBuIAotMDAwMTA0NjQyOCAwMDAwMCBuIAotMDAwMTA0NjU1MCAwMDAwMCBuIAotMDAwMTA0NjY3MyAwMDAwMCBuIAotMDAwMTA0Njc5NSAwMDAwMCBuIAotMDAwMTA0NjkxOCAwMDAwMCBuIAotMDAwMTA0NzA0MCAwMDAwMCBuIAotMDAwMTA0NzE2MiAwMDAwMCBuIAotMDAwMTA0NzI4NCAwMDAwMCBuIAotMDAwMTA0NzQwNiAwMDAwMCBuIAotMDAwMTA0NzUyOSAwMDAwMCBuIAotMDAwMTA0NzU5MSAwMDAwMCBuIAotMDAwMTA0NzcxMiAwMDAwMCBuIAotMDAwMTA0NzgzMyAwMDAwMCBuIAotMDAwMTA0Nzk1NCAwMDAwMCBuIAotMDAwMTA0ODA3NSAwMDAwMCBuIAotMDAwMTA0ODE5NiAwMDAwMCBuIAotMDAwMTA0ODMxNyAwMDAwMCBuIAotMDAwMTA0ODQzOCAwMDAwMCBuIAotMDAwMTA0ODU1OSAwMDAwMCBuIAotMDAwMTA0ODY4MCAwMDAwMCBuIAotMDAwMTA0ODgwMSAwMDAwMCBuIAotMDAwMTA0ODkyMiAwMDAwMCBuIAotMDAwMTA0OTA0MyAwMDAwMCBuIAotMDAwMTA0OTE2NCAwMDAwMCBuIAotMDAwMTA0OTI4NyAwMDAwMCBuIAotMDAwMTA0OTQxMSAwMDAwMCBuIAotMDAwMTA0OTUzMiAwMDAwMCBuIAotMDAwMTA0OTY1NSAwMDAwMCBuIAotMDAwMTA0OTc3OCAwMDAwMCBuIAotMDAwMTA0OTg5OSAwMDAwMCBuIAotMDAwMTA1MDAyMyAwMDAwMCBuIAotMDAwMTA1MDE0NCAwMDAwMCBuIAotMDAwMTA1MDI2NiAwMDAwMCBuIAotMDAwMTA1MDM4NyAwMDAwMCBuIAotMDAwMTA1MDUwNyAwMDAwMCBuIAotMDAwMTA1MDYyOSAwMDAwMCBuIAotMDAwMTA1MDc1MSAwMDAwMCBuIAotMDAwMTA1MDg3NSAwMDAwMCBuIAotMDAwMTA1MDk5OCAwMDAwMCBuIAotMDAwMTA1MTEyMiAwMDAwMCBuIAotMDAwMTA1MTI0NSAwMDAwMCBuIAotMDAwMTA1MTM2OCAwMDAwMCBuIAotMDAwMTA1MTQ5MSAwMDAwMCBuIAotMDAwMTA1MTYxNCAwMDAwMCBuIAotMDAwMTA1MTczNyAwMDAwMCBuIAotMDAwMTA1MTg2MCAwMDAwMCBuIAotMDAwMTA1MTk4MyAwMDAwMCBuIAotMDAwMTA1MjEwNiAwMDAwMCBuIAotMDAwMTA1MjIyOSAwMDAwMCBuIAotMDAwMTA1MjM1MiAwMDAwMCBuIAotMDAwMTA1MjQ3NSAwMDAwMCBuIAotMDAwMTA1MjU5OCAwMDAwMCBuIAotMDAwMTA1MjcyMSAwMDAwMCBuIAotMDAwMTA1Mjg0NCAwMDAwMCBuIAotMDAwMTA1Mjk2NyAwMDAwMCBuIAotMDAwMTA1MzA5MCAwMDAwMCBuIAotMDAwMTA1MzIxNCAwMDAwMCBuIAotMDAwMTA1MzMzNiAwMDAwMCBuIAotMDAwMTA1MzQ1OCAwMDAwMCBuIAotMDAwMTA1MzU4MCAwMDAwMCBuIAotMDAwMTA1MzcwMiAwMDAwMCBuIAotMDAwMTA1MzgyNCAwMDAwMCBuIAotMDAwMTA1Mzk0NyAwMDAwMCBuIAotMDAwMTA1NDA2OSAwMDAwMCBuIAotMDAwMTA1NDE5MSAwMDAwMCBuIAotMDAwMTA1NDMxMyAwMDAwMCBuIAotMDAwMTA1NDQzNSAwMDAwMCBuIAotMDAwMTA1NDU1NyAwMDAwMCBuIAotMDAwMTA1NDY3OSAwMDAwMCBuIAotMDAwMTA1NDgwMSAwMDAwMCBuIAotMDAwMTA1NDkyMyAwMDAwMCBuIAotMDAwMTA1NTA0NSAwMDAwMCBuIAotMDAwMTA1NTE2OCAwMDAwMCBuIAotMDAwMTA1NTI5MCAwMDAwMCBuIAotMDAwMTA1NTQxMiAwMDAwMCBuIAotMDAwMTA1NTUzNCAwMDAwMCBuIAotMDAwMTA1NTY1NiAwMDAwMCBuIAotMDAwMTA1NTc3OCAwMDAwMCBuIAotMDAwMTA1NTkwMCAwMDAwMCBuIAotMDAwMTA1NjAyMyAwMDAwMCBuIAotMDAwMTA1NjE0NyAwMDAwMCBuIAotMDAwMTA1NjI3MSAwMDAwMCBuIAotMDAwMTA1NjM5MiAwMDAwMCBuIAotMDAwMTA1NjUxMiAwMDAwMCBuIAotMDAwMTA1NjU5OSAwMDAwMCBuIAotMDAwMTA1ODc5MiAwMDAwMCBuIAotMDAwMTA1ODkzMiAwMDAwMCBuIAotMDAwMTA2MDAzNSAwMDAwMCBuIAotMDAwMTA2MDA5OCAwMDAwMCBuIAotMDAwMTA2MDIxOCAwMDAwMCBuIAotMDAwMTA2MDM0MSAwMDAwMCBuIAotMDAwMTA2MDQ2MyAwMDAwMCBuIAotMDAwMTA2MDU4NSAwMDAwMCBuIAotMDAwMTA2MDY0NyAwMDAwMCBuIAotMDAwMTA2MDc3MCAwMDAwMCBuIAotMDAwMTA2MDg5NCAwMDAwMCBuIAotMDAwMTA2MTAxNyAwMDAwMCBuIAotMDAwMTA2MTE0MSAwMDAwMCBuIAotMDAwMTA2MTI2NCAwMDAwMCBuIAotMDAwMTA2MTM4NyAwMDAwMCBuIAotMDAwMTA2MTUxMCAwMDAwMCBuIAotMDAwMTA2MTYzMyAwMDAwMCBuIAotMDAwMTA2MTc1NiAwMDAwMCBuIAotMDAwMTA2MTg3OSAwMDAwMCBuIAotMDAwMTA2MjAwMCAwMDAwMCBuIAotMDAwMTA2MjEyMyAwMDAwMCBuIAotMDAwMTA2MjI0NyAwMDAwMCBuIAotMDAwMTA2MjM3MCAwMDAwMCBuIAotMDAwMTA2MjQ5MyAwMDAwMCBuIAotMDAwMTA2MjYxNiAwMDAwMCBuIAotMDAwMTA2MjczOSAwMDAwMCBuIAotMDAwMTA2Mjg2MiAwMDAwMCBuIAotMDAwMTA2Mjk4NSAwMDAwMCBuIAotMDAwMTA2MzEwOCAwMDAwMCBuIAotMDAwMTA2MzIzMSAwMDAwMCBuIAotMDAwMTA2MzM1NSAwMDAwMCBuIAotMDAwMTA2MzQ3OCAwMDAwMCBuIAotMDAwMTA2MzYwMiAwMDAwMCBuIAotMDAwMTA2MzcyNCAwMDAwMCBuIAotMDAwMTA2Mzg0NyAwMDAwMCBuIAotMDAwMTA2Mzk3MCAwMDAwMCBuIAotMDAwMTA2NDA5MyAwMDAwMCBuIAotMDAwMTA2NDIxNiAwMDAwMCBuIAotMDAwMTA2NDMzOSAwMDAwMCBuIAotMDAwMTA2NDQ2MiAwMDAwMCBuIAotMDAwMTA2NDU4NSAwMDAwMCBuIAotMDAwMTA2NDcwOCAwMDAwMCBuIAotMDAwMTA2NDgzMSAwMDAwMCBuIAotMDAwMTA2NDk1NCAwMDAwMCBuIAotMDAwMTA2NTA3NyAwMDAwMCBuIAotMDAwMTA2NTIwMCAwMDAwMCBuIAotMDAwMTA2NTMyMyAwMDAwMCBuIAotMDAwMTA2NTQ0NiAwMDAwMCBuIAotMDAwMTA2NTU3MCAwMDAwMCBuIAotMDAwMTA2NTY5MyAwMDAwMCBuIAotMDAwMTA2NTgxNyAwMDAwMCBuIAotMDAwMTA2NTk0MCAwMDAwMCBuIAotMDAwMTA2NjA2MiAwMDAwMCBuIAotMDAwMTA2NjE4NSAwMDAwMCBuIAotMDAwMTA2NjMwNiAwMDAwMCBuIAotMDAwMTA2NjQzMCAwMDAwMCBuIAotMDAwMTA2NjU1NCAwMDAwMCBuIAotMDAwMTA2NjY3OCAwMDAwMCBuIAotMDAwMTA2NjgwMiAwMDAwMCBuIAotMDAwMTA2NjkyNiAwMDAwMCBuIAotMDAwMTA2NzA1MCAwMDAwMCBuIAotMDAwMTA2NzE3NCAwMDAwMCBuIAotMDAwMTA2NzI5OCAwMDAwMCBuIAotMDAwMTA2NzQyMCAwMDAwMCBuIAotMDAwMTA2NzU0MiAwMDAwMCBuIAotMDAwMTA2NzY2NiAwMDAwMCBuIAotMDAwMTA2Nzc5MCAwMDAwMCBuIAotMDAwMTA2NzkxNCAwMDAwMCBuIAotMDAwMTA2ODAzOCAwMDAwMCBuIAotMDAwMTA2ODE2MiAwMDAwMCBuIAotMDAwMTA2ODI4NiAwMDAwMCBuIAotMDAwMTA2ODQxMCAwMDAwMCBuIAotMDAwMTA2ODUzNCAwMDAwMCBuIAotMDAwMTA2ODY1OCAwMDAwMCBuIAotMDAwMTA2ODc4MiAwMDAwMCBuIAotMDAwMTA2ODkwNiAwMDAwMCBuIAotMDAwMTA2OTAzMCAwMDAwMCBuIAotMDAwMTA2OTE1NCAwMDAwMCBuIAotMDAwMTA2OTI3OCAwMDAwMCBuIAotMDAwMTA2OTQwMiAwMDAwMCBuIAotMDAwMTA2OTUyNiAwMDAwMCBuIAotMDAwMTA2OTY1MCAwMDAwMCBuIAotMDAwMTA2OTc3NCAwMDAwMCBuIAotMDAwMTA2OTg5OCAwMDAwMCBuIAotMDAwMTA3MDAyMiAwMDAwMCBuIAotMDAwMTA3MDE0NiAwMDAwMCBuIAotMDAwMTA3MDI2OCAwMDAwMCBuIAotMDAwMTA3MDM5MiAwMDAwMCBuIAotMDAwMTA3MDUxNiAwMDAwMCBuIAotMDAwMTA3MDY0MCAwMDAwMCBuIAotMDAwMTA3MDc2NCAwMDAwMCBuIAotMDAwMTA3MDg4OCAwMDAwMCBuIAotMDAwMTA3MTAxMiAwMDAwMCBuIAotMDAwMTA3MTEzNiAwMDAwMCBuIAotMDAwMTA3MTI2MCAwMDAwMCBuIAotMDAwMTA3MTM4NCAwMDAwMCBuIAotMDAwMTA3MTUwOCAwMDAwMCBuIAotMDAwMTA3MTYzMiAwMDAwMCBuIAotMDAwMTA3MTc1NiAwMDAwMCBuIAotMDAwMTA3MTg4MCAwMDAwMCBuIAotMDAwMTA3MjAwNCAwMDAwMCBuIAotMDAwMTA3MjEyOCAwMDAwMCBuIAotMDAwMTA3MjI1MiAwMDAwMCBuIAotMDAwMTA3MjM3NiAwMDAwMCBuIAotMDAwMTA3MjUwMCAwMDAwMCBuIAotMDAwMTA3MjYyNCAwMDAwMCBuIAotMDAwMTA3Mjc0OCAwMDAwMCBuIAotMDAwMTA3Mjg3MSAwMDAwMCBuIAotMDAwMTA3Mjk5MyAwMDAwMCBuIAotMDAwMTA3MzA4MCAwMDAwMCBuIAotMDAwMTA3NTI2OCAwMDAwMCBuIAotMDAwMTA3NTQwOCAwMDAwMCBuIAotMDAwMTA3NjQzOCAwMDAwMCBuIAotMDAwMTA3NjUwMSAwMDAwMCBuIAotMDAwMTA3NjYyMyAwMDAwMCBuIAotMDAwMTA3Njc0NiAwMDAwMCBuIAotMDAwMTA3Njg2OSAwMDAwMCBuIAotMDAwMTA3Njk5MiAwMDAwMCBuIAotMDAwMTA3NzExNSAwMDAwMCBuIAotMDAwMTA3NzIzOCAwMDAwMCBuIAotMDAwMTA3NzM2MSAwMDAwMCBuIAotMDAwMTA3NzQ4NCAwMDAwMCBuIAotMDAwMTA3NzYwNyAwMDAwMCBuIAotMDAwMTA3NzcyOSAwMDAwMCBuIAotMDAwMTA3Nzg1MyAwMDAwMCBuIAotMDAwMTA3Nzk3NSAwMDAwMCBuIAotMDAwMTA3ODA5OSAwMDAwMCBuIAotMDAwMTA3ODIyMCAwMDAwMCBuIAotMDAwMTA3ODM0MSAwMDAwMCBuIAotMDAwMTA3ODQ2MyAwMDAwMCBuIAotMDAwMTA3ODU4NCAwMDAwMCBuIAotMDAwMTA3ODcwNSAwMDAwMCBuIAotMDAwMTA3ODgyNyAwMDAwMCBuIAotMDAwMTA3ODk0OSAwMDAwMCBuIAotMDAwMTA3OTA3MSAwMDAwMCBuIAotMDAwMTA3OTE5NCAwMDAwMCBuIAotMDAwMTA3OTMxNyAwMDAwMCBuIAotMDAwMTA3OTQzOSAwMDAwMCBuIAotMDAwMTA3OTU2MSAwMDAwMCBuIAotMDAwMTA3OTY4MyAwMDAwMCBuIAotMDAwMTA3OTgwNCAwMDAwMCBuIAotMDAwMTA3OTkyNSAwMDAwMCBuIAotMDAwMTA4MDA0NyAwMDAwMCBuIAotMDAwMTA4MDE2OCAwMDAwMCBuIAotMDAwMTA4MDI4OSAwMDAwMCBuIAotMDAwMTA4MDQxMCAwMDAwMCBuIAotMDAwMTA4MDUzMSAwMDAwMCBuIAotMDAwMTA4MDY1MiAwMDAwMCBuIAotMDAwMTA4MDc3MyAwMDAwMCBuIAotMDAwMTA4MDg5NCAwMDAwMCBuIAotMDAwMTA4MTAxNSAwMDAwMCBuIAotMDAwMTA4MTEzNiAwMDAwMCBuIAotMDAwMTA4MTI1OCAwMDAwMCBuIAotMDAwMTA4MTM3OSAwMDAwMCBuIAotMDAwMTA4MTUwMSAwMDAwMCBuIAotMDAwMTA4MTYyMiAwMDAwMCBuIAotMDAwMTA4MTc0MyAwMDAwMCBuIAotMDAwMTA4MTg2NCAwMDAwMCBuIAotMDAwMTA4MTk4NSAwMDAwMCBuIAotMDAwMTA4MjEwNiAwMDAwMCBuIAotMDAwMTA4MjIyNyAwMDAwMCBuIAotMDAwMTA4MjM0OCAwMDAwMCBuIAotMDAwMTA4MjQ2OSAwMDAwMCBuIAotMDAwMTA4MjU5MSAwMDAwMCBuIAotMDAwMTA4MjcxMyAwMDAwMCBuIAotMDAwMTA4MjgzNCAwMDAwMCBuIAotMDAwMTA4Mjk1NSAwMDAwMCBuIAotMDAwMTA4MzA3NiAwMDAwMCBuIAotMDAwMTA4MzE5NiAwMDAwMCBuIAotMDAwMTA4MzMxNSAwMDAwMCBuIAotMDAwMTA4MzQzNSAwMDAwMCBuIAotMDAwMTA4MzU1NyAwMDAwMCBuIAotMDAwMTA4MzY3OSAwMDAwMCBuIAotMDAwMTA4MzgwMSAwMDAwMCBuIAotMDAwMTA4MzkyMyAwMDAwMCBuIAotMDAwMTA4NDA0NSAwMDAwMCBuIAotMDAwMTA4NDE2NyAwMDAwMCBuIAotMDAwMTA4NDI4OSAwMDAwMCBuIAotMDAwMTA4NDQxMSAwMDAwMCBuIAotMDAwMTA4NDUzMyAwMDAwMCBuIAotMDAwMTA4NDY1NyAwMDAwMCBuIAotMDAwMTA4NDc4MSAwMDAwMCBuIAotMDAwMTA4NDkwMyAwMDAwMCBuIAotMDAwMTA4NTAyNSAwMDAwMCBuIAotMDAwMTA4NTA4NyAwMDAwMCBuIAotMDAwMTA4NTIxMCAwMDAwMCBuIAotMDAwMTA4NTMzMyAwMDAwMCBuIAotMDAwMTA4NTQ1NiAwMDAwMCBuIAotMDAwMTA4NTU3OSAwMDAwMCBuIAotMDAwMTA4NTcwMiAwMDAwMCBuIAotMDAwMTA4NTgyNSAwMDAwMCBuIAotMDAwMTA4NTk0OCAwMDAwMCBuIAotMDAwMTA4NjA3MSAwMDAwMCBuIAotMDAwMTA4NjE5NCAwMDAwMCBuIAotMDAwMTA4NjI1NiAwMDAwMCBuIAotMDAwMTA4NjM3OSAwMDAwMCBuIAotMDAwMTA4NjUwMiAwMDAwMCBuIAotMDAwMTA4NjYyNSAwMDAwMCBuIAotMDAwMTA4Njc0NyAwMDAwMCBuIAotMDAwMTA4Njg2OSAwMDAwMCBuIAotMDAwMTA4Njk5MSAwMDAwMCBuIAotMDAwMTA4NzExMyAwMDAwMCBuIAotMDAwMTA4NzIzNiAwMDAwMCBuIAotMDAwMTA4NzM1OSAwMDAwMCBuIAotMDAwMTA4NzQ4MiAwMDAwMCBuIAotMDAwMTA4NzYwNSAwMDAwMCBuIAotMDAwMTA4NzcyOSAwMDAwMCBuIAotMDAwMTA4Nzg1MyAwMDAwMCBuIAotMDAwMTA4NzkxNSAwMDAwMCBuIAotMDAwMTA4ODAzNyAwMDAwMCBuIAotMDAwMTA4ODE2MSAwMDAwMCBuIAotMDAwMTA4ODI4NCAwMDAwMCBuIAotMDAwMTA4ODQwNiAwMDAwMCBuIAotMDAwMTA4ODQ5MyAwMDAwMCBuIAotMDAwMTA5MDUzOSAwMDAwMCBuIAotMDAwMTA5MDY3OSAwMDAwMCBuIAotMDAwMTA5MDg2OSAwMDAwMCBuIAotMDAwMTA5MDkzMiAwMDAwMCBuIAotMDAwMTA5MDk5NSAwMDAwMCBuIAotMDAwMTA5MTExNyAwMDAwMCBuIAotMDAwMTA5MTIzOSAwMDAwMCBuIAotMDAwMTA5MTM2MCAwMDAwMCBuIAotMDAwMTA5MTQ4MyAwMDAwMCBuIAotMDAwMTA5MTU2OCAwMDAwMCBuIAotMDAwMTA5MTcyNyAwMDAwMCBuIAotMDAwMTA5MTg0NyAwMDAwMCBuIAotMDAwMTA5MTk4NSAwMDAwMCBuIAotMDAwMTA5MjE3MCAwMDAwMCBuIAotMDAwMTA5MjI5MSAwMDAwMCBuIAotMDAwMTA5MjQ0MiAwMDAwMCBuIAotMDAwMTA5MjU4MSAwMDAwMCBuIAotMDAwMTA5MjcxMiAwMDAwMCBuIAotMDAwMTA5Mjg1MCAwMDAwMCBuIAotMDAwMTA5Mjk2OSAwMDAwMCBuIAotMDAwMTA5MzE1MCAwMDAwMCBuIAotMDAwMTA5MzI3MSAwMDAwMCBuIAotMDAwMTA5MzQxMSAwMDAwMCBuIAotMDAwMTA5MzU1MCAwMDAwMCBuIAotMDAwMTA5MzY5MCAwMDAwMCBuIAotMDAwMTA5Mzg3MiAwMDAwMCBuIAotMDAwMTA5Mzk5OSAwMDAwMCBuIAotMDAwMTA5NDEzOSAwMDAwMCBuIAotMDAwMTA5NDI4NiAwMDAwMCBuIAotMDAwMTA5NDQzNCAwMDAwMCBuIAotMDAwMTA5NDU2NyAwMDAwMCBuIAotMDAwMTA5NDcxNSAwMDAwMCBuIAotMDAwMTA5NDg1MyAwMDAwMCBuIAotMDAwMTA5NTAwNyAwMDAwMCBuIAotMDAwMTA5NTE2MyAwMDAwMCBuIAotMDAwMTA5NTMxMiAwMDAwMCBuIAotMDAwMTA5NTQ2NiAwMDAwMCBuIAotMDAwMTA5NTYyNCAwMDAwMCBuIAotMDAwMTA5NTc1NSAwMDAwMCBuIAotMDAwMTA5NTkzNyAwMDAwMCBuIAotMDAwMTA5NjA2NiAwMDAwMCBuIAotMDAwMTA5NjIxNyAwMDAwMCBuIAotMDAwMTA5NjM2MCAwMDAwMCBuIAotMDAwMTA5NjQ5NCAwMDAwMCBuIAotMDAwMTA5NjY4MSAwMDAwMCBuIAotMDAwMTA5Njg2NyAwMDAwMCBuIAotMDAwMTA5NzAyOCAwMDAwMCBuIAotMDAwMTA5NzE4OSAwMDAwMCBuIAotMDAwMTA5NzM5NyAwMDAwMCBuIAotMDAwMTA5NzUyMiAwMDAwMCBuIAotMDAwMTA5NzY2MiAwMDAwMCBuIAotMDAwMTA5Nzc5NSAwMDAwMCBuIAotMDAwMTA5NzkxNyAwMDAwMCBuIAotMDAwMTA5ODEyMyAwMDAwMCBuIAotMDAwMTA5ODIyOSAwMDAwMCBuIAotMDAwMTA5ODM3MyAwMDAwMCBuIAotMDAwMTA5ODU1MiAwMDAwMCBuIAotMDAwMTA5ODcxNiAwMDAwMCBuIAotMDAwMTA5ODgzNiAwMDAwMCBuIAotMDAwMTA5ODk3MSAwMDAwMCBuIAotMDAwMTA5OTEwMyAwMDAwMCBuIAotMDAwMTA5OTI1MiAwMDAwMCBuIAotMDAwMTA5OTM5MSAwMDAwMCBuIAotMDAwMTA5OTU1MyAwMDAwMCBuIAotMDAwMTA5OTc2NSAwMDAwMCBuIAotMDAwMTA5OTg4MSAwMDAwMCBuIAotMDAwMTEwMDAxOSAwMDAwMCBuIAotMDAwMTEwMDE2MCAwMDAwMCBuIAotMDAwMTEwMDI3NyAwMDAwMCBuIAotMDAwMTEwMDQ3MyAwMDAwMCBuIAotMDAwMTEwMDU5NiAwMDAwMCBuIAotMDAwMTEwMDc1MCAwMDAwMCBuIAotMDAwMTEwMDkwOSAwMDAwMCBuIAotMDAwMTEwMTA4NiAwMDAwMCBuIAotMDAwMTEwMTIwMSAwMDAwMCBuIAotMDAwMTEwMTM5MyAwMDAwMCBuIAotMDAwMTEwMTUzNSAwMDAwMCBuIAotMDAwMTEwMTY3NCAwMDAwMCBuIAotMDAwMTEwMTgyNiAwMDAwMCBuIAotMDAwMTEwMTk1NiAwMDAwMCBuIAotMDAwMTEwMjEwOCAwMDAwMCBuIAotMDAwMTEwMjI0NyAwMDAwMCBuIAotMDAwMTEwMjM5OSAwMDAwMCBuIAotMDAwMTEwMjU0OSAwMDAwMCBuIAotMDAwMTEwMjY3OCAwMDAwMCBuIAotMDAwMTEwMjg5OSAwMDAwMCBuIAotMDAwMTEwMzAyOSAwMDAwMCBuIAotMDAwMTEwMzE4NSAwMDAwMCBuIAotMDAwMTEwMzMyMiAwMDAwMCBuIAotMDAwMTEwMzQ3NiAwMDAwMCBuIAotMDAwMTEwMzYyMyAwMDAwMCBuIAotMDAwMTEwMzc2NCAwMDAwMCBuIAotMDAwMTEwMzkwOSAwMDAwMCBuIAotMDAwMTEwNDA4OSAwMDAwMCBuIAotMDAwMTEwNDIxOSAwMDAwMCBuIAotMDAwMTEwNDM1NCAwMDAwMCBuIAotMDAwMTEwNDUwNiAwMDAwMCBuIAotMDAwMTEwNDY0NiAwMDAwMCBuIAotMDAwMTEwNDc4NCAwMDAwMCBuIAotMDAwMTEwNDkxOSAwMDAwMCBuIAotMDAwMTEwNTA1MyAwMDAwMCBuIAotMDAwMTEwNTE5NiAwMDAwMCBuIAotMDAwMTEwNTMzMCAwMDAwMCBuIAotMDAwMTEwNTQ2NSAwMDAwMCBuIAotMDAwMTEwNTU5NyAwMDAwMCBuIAotMDAwMTEwNTczOSAwMDAwMCBuIAotMDAwMTEwNTg4OCAwMDAwMCBuIAotMDAwMTEwNjAyMiAwMDAwMCBuIAotMDAwMTEwNjIxMyAwMDAwMCBuIAotMDAwMTEwNjMzNyAwMDAwMCBuIAotMDAwMTEwNjQ3OCAwMDAwMCBuIAotMDAwMTEwNjYwNCAwMDAwMCBuIAotMDAwMTEwNjc4NiAwMDAwMCBuIAotMDAwMTEwNjkwNSAwMDAwMCBuIAotMDAwMTEwNzA0OCAwMDAwMCBuIAotMDAwMTEwNzE5MyAwMDAwMCBuIAotMDAwMTEwNzMyMCAwMDAwMCBuIAotMDAwMTEwNzUwOSAwMDAwMCBuIAotMDAwMTEwNzY0NyAwMDAwMCBuIAotMDAwMTEwNzc5NCAwMDAwMCBuIAotMDAwMTEwNzk0OCAwMDAwMCBuIAotMDAwMTEwODA5NiAwMDAwMCBuIAotMDAwMTEwODI0MCAwMDAwMCBuIAotMDAwMTEwODM5MyAwMDAwMCBuIAotMDAwMTEwODU5NyAwMDAwMCBuIAotMDAwMTEwODcyNyAwMDAwMCBuIAotMDAwMTEwODg5MiAwMDAwMCBuIAotMDAwMTEwOTA0MyAwMDAwMCBuIAotMDAwMTEwOTE4OCAwMDAwMCBuIAotMDAwMTEwOTMzMyAwMDAwMCBuIAotMDAwMTEwOTQ5MiAwMDAwMCBuIAotMDAwMTEwOTYzMiAwMDAwMCBuIAotMDAwMTEwOTgxNSAwMDAwMCBuIAotMDAwMTEwOTkzMCAwMDAwMCBuIAotMDAwMTExMDA0NiAwMDAwMCBuIAotMDAwMTExMDE5MiAwMDAwMCBuIAotMDAwMTExMDMyNyAwMDAwMCBuIAotMDAwMTExMDUxNiAwMDAwMCBuIAotMDAwMTExMDYzNiAwMDAwMCBuIAotMDAwMTExMDc3MiAwMDAwMCBuIAotMDAwMTExMDkyNyAwMDAwMCBuIAotMDAwMTExMTA4NCAwMDAwMCBuIAotMDAwMTExMTIzNCAwMDAwMCBuIAotMDAwMTExMTQxMiAwMDAwMCBuIAotMDAwMTExMTUzOCAwMDAwMCBuIAotMDAwMTExMTY5MCAwMDAwMCBuIAotMDAwMTExMTgyMSAwMDAwMCBuIAotMDAwMTExMTk3NyAwMDAwMCBuIAotMDAwMTExMjEyNiAwMDAwMCBuIAotMDAwMTExMjI2NyAwMDAwMCBuIAotMDAwMTExMjM4OCAwMDAwMCBuIAotMDAwMTExMjUzNCAwMDAwMCBuIAotMDAwMTExMjY4NSAwMDAwMCBuIAotMDAwMTExMjgxOSAwMDAwMCBuIAotMDAwMTExMjk2MiAwMDAwMCBuIAotMDAwMTExMzEwNCAwMDAwMCBuIAotMDAwMTExMzI0NyAwMDAwMCBuIAotMDAwMTExMzM4MiAwMDAwMCBuIAotMDAwMTExMzUwNSAwMDAwMCBuIAotMDAwMTExMzY4NyAwMDAwMCBuIAotMDAwMTExMzgwNyAwMDAwMCBuIAotMDAwMTExNDAwNCAwMDAwMCBuIAotMDAwMTExNDE2MSAwMDAwMCBuIAotMDAwMTExNDI5MyAwMDAwMCBuIAotMDAwMTExNDQ3OSAwMDAwMCBuIAotMDAwMTExNDYwOSAwMDAwMCBuIAotMDAwMTExNDc1MSAwMDAwMCBuIAotMDAwMTExNDg3NiAwMDAwMCBuIAotMDAwMTExNTAyMiAwMDAwMCBuIAotMDAwMTExNTE2OCAwMDAwMCBuIAotMDAwMTExNTM1NyAwMDAwMCBuIAotMDAwMTExNTQ3MSAwMDAwMCBuIAotMDAwMTExNTU5NyAwMDAwMCBuIAotMDAwMTExNTc1MCAwMDAwMCBuIAotMDAwMTExNTkwNCAwMDAwMCBuIAotMDAwMTExNjA2NyAwMDAwMCBuIAotMDAwMTExNjE5MiAwMDAwMCBuIAotMDAwMTExNjM3OSAwMDAwMCBuIAotMDAwMTExNjUwOSAwMDAwMCBuIAotMDAwMTExNjY2MyAwMDAwMCBuIAotMDAwMTExNjgyMyAwMDAwMCBuIAotMDAwMTExNjk3MSAwMDAwMCBuIAotMDAwMTExNzE3NyAwMDAwMCBuIAotMDAwMTExNzMyMyAwMDAwMCBuIAotMDAwMTExNzQ5NiAwMDAwMCBuIAotMDAwMTExNzYxOCAwMDAwMCBuIAotMDAwMTExNzgwMiAwMDAwMCBuIAotMDAwMTExNzk2OCAwMDAwMCBuIAotMDAwMTExODA4OSAwMDAwMCBuIAotMDAwMTExODI0NCAwMDAwMCBuIAotMDAwMTExODM5NSAwMDAwMCBuIAotMDAwMTExODU1MyAwMDAwMCBuIAotMDAwMTExODcwNSAwMDAwMCBuIAotMDAwMTExODkxOCAwMDAwMCBuIAotMDAwMTExOTA2MSAwMDAwMCBuIAotMDAwMTExOTE4MSAwMDAwMCBuIAotMDAwMTExOTMzNiAwMDAwMCBuIAotMDAwMTExOTUyNSAwMDAwMCBuIAotMDAwMTExOTY0MyAwMDAwMCBuIAotMDAwMTExOTc4NCAwMDAwMCBuIAotMDAwMTExOTkxOCAwMDAwMCBuIAotMDAwMTEyMDA1MSAwMDAwMCBuIAotMDAwMTEyMDE4NiAwMDAwMCBuIAotMDAwMTEyMDM3NiAwMDAwMCBuIAotMDAwMTEyMDQ5MSAwMDAwMCBuIAotMDAwMTEyMDY0NCAwMDAwMCBuIAotMDAwMTEyMDc3MSAwMDAwMCBuIAotMDAwMTEyMDkzOCAwMDAwMCBuIAotMDAwMTEyMTA4OCAwMDAwMCBuIAotMDAwMTEyMTIyNyAwMDAwMCBuIAotMDAwMTEyMTM2NyAwMDAwMCBuIAotMDAwMTEyMTUzMSAwMDAwMCBuIAotMDAwMTEyMTczNiAwMDAwMCBuIAotMDAwMTEyMTg3MiAwMDAwMCBuIAotMDAwMTEyMjAzMyAwMDAwMCBuIAotMDAwMTEyMjE4MSAwMDAwMCBuIAotMDAwMTEyMjMyMyAwMDAwMCBuIAotMDAwMTEyMjQ2NiAwMDAwMCBuIAotMDAwMTEyMjY2OSAwMDAwMCBuIAotMDAwMTEyMjgwMiAwMDAwMCBuIAotMDAwMTEyMjk0MSAwMDAwMCBuIAotMDAwMTEyMzA4MyAwMDAwMCBuIAotMDAwMTEyMzIzNCAwMDAwMCBuIAotMDAwMTEyMzM5NCAwMDAwMCBuIAotMDAwMTEyMzU1MCAwMDAwMCBuIAotMDAwMTEyMzcwOCAwMDAwMCBuIAotMDAwMTEyMzg3MiAwMDAwMCBuIAotMDAwMTEyNDAxMyAwMDAwMCBuIAotMDAwMTEyNDE1NSAwMDAwMCBuIAotMDAwMTEyNDI5NiAwMDAwMCBuIAotMDAwMTEyNDQxOCAwMDAwMCBuIAotMDAwMTEyNDYyMSAwMDAwMCBuIAotMDAwMTEyNDc1NCAwMDAwMCBuIAotMDAwMTEyNDg5NyAwMDAwMCBuIAotMDAwMTEyNTAzOCAwMDAwMCBuIAotMDAwMTEyNTE3NyAwMDAwMCBuIAotMDAwMTEyNTMxOCAwMDAwMCBuIAotMDAwMTEyNTQ1NCAwMDAwMCBuIAotMDAwMTEyNTU3MiAwMDAwMCBuIAotMDAwMTEyNTcwMyAwMDAwMCBuIAotMDAwMTEyNTg4NyAwMDAwMCBuIAotMDAwMTEyNjA1MyAwMDAwMCBuIAotMDAwMTEyNjE3NCAwMDAwMCBuIAotMDAwMTEyNjMyOSAwMDAwMCBuIAotMDAwMTEyNjQ4MCAwMDAwMCBuIAotMDAwMTEyNjY1OSAwMDAwMCBuIAotMDAwMTEyNjgxNSAwMDAwMCBuIAotMDAwMTEyNjk1NyAwMDAwMCBuIAotMDAwMTEyNzEwOSAwMDAwMCBuIAotMDAwMTEyNzMyNCAwMDAwMCBuIAotMDAwMTEyNzQ2NyAwMDAwMCBuIAotMDAwMTEyNzU4NyAwMDAwMCBuIAotMDAwMTEyNzc4OCAwMDAwMCBuIAotMDAwMTEyNzkwNCAwMDAwMCBuIAotMDAwMTEyODAzOCAwMDAwMCBuIAotMDAwMTEyODE3OSAwMDAwMCBuIAotMDAwMTEyODMxMyAwMDAwMCBuIAotMDAwMTEyODQ0NiAwMDAwMCBuIAotMDAwMTEyODU4MSAwMDAwMCBuIAotMDAwMTEyODcwMSAwMDAwMCBuIAotMDAwMTEyODg5MSAwMDAwMCBuIAotMDAwMTEyOTAxNiAwMDAwMCBuIAotMDAwMTEyOTE3NiAwMDAwMCBuIAotMDAwMTEyOTMzNCAwMDAwMCBuIAotMDAwMTEyOTQ5NiAwMDAwMCBuIAotMDAwMTEyOTYzNyAwMDAwMCBuIAotMDAwMTEyOTc4MCAwMDAwMCBuIAotMDAwMTEyOTk3OSAwMDAwMCBuIAotMDAwMTEzMDEwMCAwMDAwMCBuIAotMDAwMTEzMDI2MyAwMDAwMCBuIAotMDAwMTEzMDQwOCAwMDAwMCBuIAotMDAwMTEzMDU1MyAwMDAwMCBuIAotMDAwMTEzMDcyMyAwMDAwMCBuIAotMDAwMTEzMDg5MiAwMDAwMCBuIAotMDAwMTEzMTA1MiAwMDAwMCBuIAotMDAwMTEzMTE3OSAwMDAwMCBuIAotMDAwMTEzMTM2OCAwMDAwMCBuIAotMDAwMTEzMTQ5NSAwMDAwMCBuIAotMDAwMTEzMTYzOSAwMDAwMCBuIAotMDAwMTEzMTc5OCAwMDAwMCBuIAotMDAwMTEzMTk1NyAwMDAwMCBuIAotMDAwMTEzMjExMyAwMDAwMCBuIAotMDAwMTEzMjI2NyAwMDAwMCBuIAotMDAwMTEzMjQwMCAwMDAwMCBuIAotMDAwMTEzMjU5MiAwMDAwMCBuIAotMDAwMTEzMjcxNiAwMDAwMCBuIAotMDAwMTEzMjg2MiAwMDAwMCBuIAotMDAwMTEzMzAwNSAwMDAwMCBuIAotMDAwMTEzMzE2NSAwMDAwMCBuIAotMDAwMTEzMzI5NiAwMDAwMCBuIAotMDAwMTEzMzQzOSAwMDAwMCBuIAotMDAwMTEzMzY0NCAwMDAwMCBuIAotMDAwMTEzMzc3MSAwMDAwMCBuIAotMDAwMTEzMzkxMSAwMDAwMCBuIAotMDAwMTEzNDA1MyAwMDAwMCBuIAotMDAwMTEzNDIwNCAwMDAwMCBuIAotMDAwMTEzNDM2NCAwMDAwMCBuIAotMDAwMTEzNDUzMiAwMDAwMCBuIAotMDAwMTEzNDY5MSAwMDAwMCBuIAotMDAwMTEzNDg1NSAwMDAwMCBuIAotMDAwMTEzNTAxMyAwMDAwMCBuIAotMDAwMTEzNTE1NCAwMDAwMCBuIAotMDAwMTEzNTI5NiAwMDAwMCBuIAotMDAwMTEzNTQyMSAwMDAwMCBuIAotMDAwMTEzNTU4OSAwMDAwMCBuIAotMDAwMTEzNTc3NyAwMDAwMCBuIAotMDAwMTEzNTkxNyAwMDAwMCBuIAotMDAwMTEzNjEwNSAwMDAwMCBuIAotMDAwMTEzNjIzNSAwMDAwMCBuIAotMDAwMTEzNjM3MiAwMDAwMCBuIAotMDAwMTEzNjUwOCAwMDAwMCBuIAotMDAwMTEzNjY0OSAwMDAwMCBuIAotMDAwMTEzNjc5MCAwMDAwMCBuIAotMDAwMTEzNjk0MyAwMDAwMCBuIAotMDAwMTEzNzA3OSAwMDAwMCBuIAotMDAwMTEzNzIxMiAwMDAwMCBuIAotMDAwMTEzNzM1MyAwMDAwMCBuIAotMDAwMTEzNzQ5MiAwMDAwMCBuIAotMDAwMTEzNzY0NyAwMDAwMCBuIAotMDAwMTEzNzc4NiAwMDAwMCBuIAotMDAwMTEzNzk2OCAwMDAwMCBuIAotMDAwMTEzODEzNCAwMDAwMCBuIAotMDAwMTEzODI1NSAwMDAwMCBuIAotMDAwMTEzODQwMyAwMDAwMCBuIAotMDAwMTEzODU3MiAwMDAwMCBuIAotMDAwMTEzODczMiAwMDAwMCBuIAotMDAwMTEzODg3OSAwMDAwMCBuIAotMDAwMTEzOTAxOCAwMDAwMCBuIAotMDAwMTEzOTE2MyAwMDAwMCBuIAotMDAwMTEzOTMxMiAwMDAwMCBuIAotMDAwMTEzOTQ0OCAwMDAwMCBuIAotMDAwMTEzOTY2MyAwMDAwMCBuIAotMDAwMTEzOTgwNiAwMDAwMCBuIAotMDAwMTEzOTkyNiAwMDAwMCBuIAotMDAwMTE0MDExNCAwMDAwMCBuIAotMDAwMTE0MDIzMiAwMDAwMCBuIAotMDAwMTE0MDM3MyAwMDAwMCBuIAotMDAwMTE0MDUwNyAwMDAwMCBuIAotMDAwMTE0MDY0MCAwMDAwMCBuIAotMDAwMTE0MDc3NSAwMDAwMCBuIAotMDAwMTE0MDg5NSAwMDAwMCBuIAotMDAwMTE0MTA5MyAwMDAwMCBuIAotMDAwMTE0MTIyMiAwMDAwMCBuIAotMDAwMTE0MTM3MiAwMDAwMCBuIAotMDAwMTE0MTUxMyAwMDAwMCBuIAotMDAwMTE0MTY1OSAwMDAwMCBuIAotMDAwMTE0MTgwNCAwMDAwMCBuIAotMDAwMTE0MTk1NSAwMDAwMCBuIAotMDAwMTE0MjExNyAwMDAwMCBuIAotMDAwMTE0MjI2MCAwMDAwMCBuIAotMDAwMTE0MjQ0OCAwMDAwMCBuIAotMDAwMTE0MjU2NCAwMDAwMCBuIAotMDAwMTE0MjcyMiAwMDAwMCBuIAotMDAwMTE0Mjg4MSAwMDAwMCBuIAotMDAwMTE0MzAzMSAwMDAwMCBuIAotMDAwMTE0MzE3OSAwMDAwMCBuIAotMDAwMTE0MzM0MiAwMDAwMCBuIAotMDAwMTE0MzQ4MyAwMDAwMCBuIAotMDAwMTE0MzY4MyAwMDAwMCBuIAotMDAwMTE0MzgwNiAwMDAwMCBuIAotMDAwMTE0Mzk0NCAwMDAwMCBuIAotMDAwMTE0NDA4MyAwMDAwMCBuIAotMDAwMTE0NDIzMiAwMDAwMCBuIAotMDAwMTE0NDM3OSAwMDAwMCBuIAotMDAwMTE0NDUyMSAwMDAwMCBuIAotMDAwMTE0NDY2OSAwMDAwMCBuIAotMDAwMTE0NDgxMiAwMDAwMCBuIAotMDAwMTE0NDk1NSAwMDAwMCBuIAotMDAwMTE0NTEzMyAwMDAwMCBuIAotMDAwMTE0NTI2MCAwMDAwMCBuIAotMDAwMTE0NTM5NyAwMDAwMCBuIAotMDAwMTE0NTUzOSAwMDAwMCBuIAotMDAwMTE0NTY5MCAwMDAwMCBuIAotMDAwMTE0NTg0NyAwMDAwMCBuIAotMDAwMTE0NTk5MSAwMDAwMCBuIAotMDAwMTE0NjE0NSAwMDAwMCBuIAotMDAwMTE0NjMwNSAwMDAwMCBuIAotMDAwMTE0NjQ0NiAwMDAwMCBuIAotMDAwMTE0NjU4OCAwMDAwMCBuIAotMDAwMTE0NjcxMyAwMDAwMCBuIAotMDAwMTE0NjkxNiAwMDAwMCBuIAotMDAwMTE0NzA2NyAwMDAwMCBuIAotMDAwMTE0NzIzNyAwMDAwMCBuIAotMDAwMTE0NzM4OSAwMDAwMCBuIAotMDAwMTE0NzU0MiAwMDAwMCBuIAotMDAwMTE0NzcwNSAwMDAwMCBuIAotMDAwMTE0Nzg1NSAwMDAwMCBuIAotMDAwMTE0ODA3MSAwMDAwMCBuIAotMDAwMTE0ODE3OCAwMDAwMCBuIAotMDAwMTE0ODM4MCAwMDAwMCBuIAotMDAwMTE0ODU0MiAwMDAwMCBuIAotMDAwMTE0ODY2NyAwMDAwMCBuIAotMDAwMTE0ODc5MSAwMDAwMCBuIAotMDAwMTE0ODkwNSAwMDAwMCBuIAotMDAwMTE0OTM3NCAwMDAwMCBuIAotMDAwMTE0OTUwMCAwMDAwMCBuIAotMDAwMTE0OTYzMiAwMDAwMCBuIAotMDAwMTE0OTg0MiAwMDAwMCBuIAotMDAwMTE1MDA0OCAwMDAwMCBuIAotMDAwMTE1MDI1NyAwMDAwMCBuIAotMDAwMTE1MDQ3NSAwMDAwMCBuIAotMDAwMTE1MDU0NSAwMDAwMCBuIAotMDAwMTE1MDU3NiAwMDAwMCBuIAotMDAwMTE3Mzk0MyAwMDAwMCBuIAotMDAwMTE3NDA1OCAwMDAwMCBuIAotMDAwMTE3NTE5NiAwMDAwMCBuIAotMDAwMTE3NTIyMCAwMDAwMCBuIAotMDAwMTE3NjM2MSAwMDAwMCBuIAotMDAwMTE3NjM4NSAwMDAwMCBuIAotMDAwMTE3NzUyOSAwMDAwMCBuIAotdHJhaWxlcgotPDwKLS9TaXplIDM0MzUKLS9JbmZvIDEgMCBSIAotL1Jvb3QgMzQyOCAwIFIgCi0vSURbPGM0MTM1ZTczYjA0YWU0YjQzMjBjYzg5N2Q5MjZlOTg5PjxmZTVhYTVjZTA5ZGFkNTk2ODJiODRlMzI2YzdkNGIxNj5dCi0+Pgotc3RhcnR4cmVmCi0xMTc3NTUzCi0lJUVPRgotMSAwIG9iagotPDwgCi0vQ3JlYXRpb25EYXRlIChEOjE5OTcwMzI2MTUzMzI5KQotL1Byb2R1Y2VyIChBY3JvYmF0IERpc3RpbGxlciAzLjAgZm9yIFBvd2VyIE1hY2ludG9zaCkKLS9BdXRob3IgKERhdmUpCi0vVGl0bGUgKFNXSUcgTWFudWFsKQotL0NyZWF0b3IgKEZyYW1lTWFrZXIgNS4xLjEpCi0vTW9kRGF0ZSAoRDoxOTk3MDMyNjE1NDEzMCkKLT4+IAotZW5kb2JqCi0zMjY0IDAgb2JqCi08PCAKLS9UaXRsZSAoU1dJRyBhbmQgUHl0aG9uKQotL0Rlc3QgWyAxNDE2IDAgUiAvWFlaIG51bGwgODY0IG51bGwgXSAKLS9QYXJlbnQgMzQyNSAwIFIgCi0vUHJldiAzMjEwIDAgUiAKLS9OZXh0IDMzNDQgMCBSIAotL0ZpcnN0IDMyNjUgMCBSIAotL0xhc3QgMzMzMSAwIFIgCi0vQ291bnQgLTEzIAotPj4gCi1lbmRvYmoKLTM0MjUgMCBvYmoKLTw8IAotL0NvdW50IDEyIAotL0ZpcnN0IDMwMzQgMCBSIAotL0xhc3QgMzQxNyAwIFIgCi0+PiAKLWVuZG9iagotMzQyOCAwIG9iagotPDwgCi0vVHlwZSAvQ2F0YWxvZyAKLS9QYWdlcyAxMTk1IDAgUiAKLS9PdXRsaW5lcyAzNDI1IDAgUiAKLS9UaHJlYWRzIDM0MjYgMCBSIAotL0Rlc3RzIDM0MjcgMCBSIAotL1BhZ2VNb2RlIC9Vc2VPdXRsaW5lcyAKLT4+IAotZW5kb2JqCi14cmVmCi0xIDEgCi0wMDAxMjQ2NDE4IDAwMDAwIG4gCi0zMjY0IDEgCi0wMDAxMjQ2NjIwIDAwMDAwIG4gCi0zNDI1IDEgCi0wMDAxMjQ2ODA1IDAwMDAwIG4gCi0zNDI4IDEgCi0wMDAxMjQ2ODc1IDAwMDAwIG4gCi10cmFpbGVyCi08PAotL1NpemUgMzQzNQotL0luZm8gMSAwIFIgCi0vUm9vdCAzNDI4IDAgUiAKLS9QcmV2IDExNzc1NTMgCi0vSURbPGM0MTM1ZTczYjA0YWU0YjQzMjBjYzg5N2Q5MjZlOTg5Pjw1NzRiOTljZmVmMzgxZTU4MjExNTY0NjA1MmQ3NjgxZT5dCi0+Pgotc3RhcnR4cmVmCi0xMjQ3MDE0Ci0lJUVPRgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1NjcmlwdGluZy5wZGYgYi9zd2lnd2ViL0RvYzEuMS9QREYvU2NyaXB0aW5nLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM1YTY2ZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvU2NyaXB0aW5nLnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvRG9jMS4xL1BERi9UY2wucGRmIGIvc3dpZ3dlYi9Eb2MxLjEvUERGL1RjbC5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkOTM5MDYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1RjbC5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL0RvYzEuMS9QREYvVGl0bGUucGRmIGIvc3dpZ3dlYi9Eb2MxLjEvUERGL1RpdGxlLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGYzMzQ3My4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0RvYzEuMS9QREYvVGl0bGUucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1R5cGVtYXBzLnBkZiBiL3N3aWd3ZWIvRG9jMS4xL1BERi9UeXBlbWFwcy5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjZmMyODUuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9Eb2MxLjEvUERGL1R5cGVtYXBzLnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvSU5TVEFMTCBiL3N3aWd3ZWIvSU5TVEFMTApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU3ODkxMy4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL0lOU1RBTEwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTcgKzAsMCBAQAotSW5zdGFsbGF0aW9uOiAgIFNXSUcgMS4xCi1KdW5lIDI0LCAxOTk3Ci0KLUluc3RhbGxhdGlvbiAoVW5peCkKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gY29tcGlsZSBhbmQgdXNlIFNXSUcsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBvbiB5b3VyIG1hY2hpbmU6Ci0KLSAgICAgICAgQSBDKysgY29tcGlsZXIgIChpZS4gZysrKQotICAgICAgICBBbiBBTlNJIEMgY29tcGlsZXIgKGllLiBnY2MpCi0gICAgICAgIHlhY2Mgb3IgYmlzb24gIChvbmx5IG5lZWRlZCB0byByZWJ1aWxkIHRoZSBTV0lHIHBhcnNlcikuCi0KLVRvIGNvbXBpbGUgYW5kIGluc3RhbGwgU1dJRywgdHlwZSB0aGUgZm9sbG93aW5nIDoKLQotICAgICAgICAuL2NvbmZpZ3VyZQotICAgICAgICBtYWtlCi0gICAgICAgIG1ha2UgaW5zdGFsbAotCi1UaGUgY29uZmlndXJhdGlvbiBzY3JpcHQgd2lsbCBhdHRlbXB0IHRvIGxvY2F0ZSB2YXJpb3VzIHBhY2thZ2VzIG9uCi15b3VyIG1hY2hpbmUsIGluY2x1ZGluZyBUY2wsIFBlcmw1LCBhbmQgUHl0aG9uLiAgIERvbid0IHBhbmljIGlmCi15b3UgZ2V0ICdub3QgZm91bmQnIG1lc3NhZ2VzLS1TV0lHIGRvZXMgbm90IG5lZWQgdGhlc2UgcGFja2FnZXMKLXRvIGNvbXBpbGUgb3IgcnVuLiAgIFRoZSBjb25maWd1cmUgc2NyaXB0IGlzIGFjdHVhbGx5IGxvb2tpbmcgZm9yIAotdGhlc2UgcGFja2FnZXMgc28gdGhhdCB5b3UgY2FuIHRyeSBvdXQgdGhlIFNXSUcgZXhhbXBsZXMgY29udGFpbmVkCi1pbiB0aGUgJ0V4YW1wbGVzJyBkaXJlY3RvcnkuICBTZWUgdGhlIEV4YW1wbGVzIHNlY3Rpb24gYmVsb3cgZm9yCi1tb3JlIGRldGFpbHMuIAotCi1UaGUgJ21ha2UgcnVudGltZScgb3B0aW9uIGlzIGFuIG9wdGlvbmFsIHN0ZXAgdGhhdCBjYW4gYmUgdXNlZCB0bwotYnVpbGQgdGhlIFNXSUcgcnVudGltZSBsaWJyYXJpZXMuICBUaGVzZSBsaWJyYXJpZXMgYXJlIG9ubHkgdXNlZCB3aXRoCi1sYXJnZXIgcGFja2FnZXMgYW5kIGFyZSBub3QgbmVjZXNzYXJ5IGZvciBsZWFybmluZyBTV0lHIG9yIHRyeWluZwotdGhlIGV4YW1wbGVzIChwbGVhc2UgcmVmZXIgdG8gdGhlICJBZHZhbmNlZCB0b3BpY3MiIHNlY3Rpb24gb2YgdGhlCi1TV0lHIFVzZXJzIG1hbnVhbCBmb3IgbW9yZSBkZXRhaWxzKS4KLQotVHlwaW5nICdtYWtlIHRlc3QnIHdpbGwgcnVuIGEgcmF0aGVyIGV4dGVuc2l2ZSBzZXJpZXMgb2YgdGVzdHMKLWFuZCBjYW4gYmUgcnVuIGJlZm9yZSBydW5uaW5nICdtYWtlIGluc3RhbGwnIChpZiB5b3UgYXJlIHBhcmFub2lkKS4KLQotVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0aGF0IHlvdSBjYW4gZ2l2ZSB0bwotJ2NvbmZpZ3VyZScgOgotCi0gICAgICAgIC0tcHJlZml4PS91c3IvbG9jYWwgICAgIAotCi0gICAgICAgICAgU2V0IHRoZSBpbnN0YWxsYXRpb24gcHJlZml4LiAgU1dJRyBpbnN0YWxscyBpbnRvCi0gICAgICAgICAgL3Vzci9sb2NhbCBieSBkZWZhdWx0LgotCi0gICAgICAgIC0tZXhlY19wcmVmaXg9L3Vzci9sb2NhbAotCi0gICAgICAgICAgU2V0IHRoZSBwcmVmaXggdXNlZCB0byBpbnN0YWxsIHBsYXRmb3JtIHNwZWNpZmljCi0gICAgICAgICAgZmlsZXMgKGJpbmFyaWVzIGFuZCBsaWJyYXJpZXMpLiAgVXNlIHRoaXMgaWYgdGhlCi0gICAgICAgICAgbG9jYXRpb24gaXMgZGlmZmVyZW50IHRoYW4gdGhhdCBnaXZlbiB3aXRoIC0tcHJlZml4LgotCi0gICAgICAgIC0td2l0aC1sYW5nPXtUQ0wsVENMOCxQWVRIT04sUEVSTDUsUEVSTDQsR1VJTEV9Ci0KLSAgICAgICAgICBUaGlzIGxldHMgeW91IGNob29zZSB0aGUgZGVmYXVsdCBTV0lHIHRhcmdldCBsYW5ndWFnZS4KLSAgICAgICAgICBCeSBkZWZhdWx0LCBTV0lHIGNob29zZXMgVENMLCBidXQgeW91IGNhbiBzZWxlY3QKLSAgICAgICAgICBhbm90aGVyIGFzIHNob3duIDoKLQotICAgICAgICAgICAgICAgIC4vY29uZmlndXJlIC0td2l0aC1sYW5nPVBZVEhPTgotCi0gICAgICAgIC0td2l0aC1kb2M9e0FTQ0lJLExBVEVYLEhUTUwsTk9ET0N9Ci0KLSAgICAgICAgICBUaGlzIGxldHMgeW91IGNob29zZSB0aGUgZGVmYXVsdCBTV0lHIGRvY3VtZW50YXRpb24KLSAgICAgICAgICBtZXRob2QuICBCeSBkZWZhdWx0LCBTV0lHIGNob29zZXMgQVNDSUkuCi0KLVRvIHRlc3QgdGhlIFNXSUcgcGFyc2VyIGFmdGVyIGNvbXBpbGF0aW9uLCB0eXBlICdtYWtlIHRlc3QnLiAgCi0KLVNpdGUgc3BlY2lmaWMgaW5zdGFsbGF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1XaGlsZSBub3QgcmVxdWlyZWQgZm9yIGNvbXBpbGluZyBTV0lHLCB0aGUgY29uZmlndXJhdGlvbiBzY3JpcHQgbG9va3MKLWZvciB2YXJpb3VzIHBhY2thZ2VzIGluIG9yZGVyIHRvIGNyZWF0ZSBhIG1ha2VmaWxlIGZvciBjb21waWxpbmcgdGhlCi1leGFtcGxlcy4gIFRoaXMgbWFrZWZpbGUgaXMgYWxzbyBpbnN0YWxsZWQgd2l0aCB0aGUgU1dJRyBwYWNrYWdlLgotVGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBsb2NhdGlvbgotb2YgdmFyaW91cyBwYWNrYWdlcy4KLQotLS13aXRoLXRjbD1wYXRobmFtZSAgICAgICAgICAtIFNldCByb290IGRpcmVjdG9yeSBvZiBUY2wgaW5zdGFsbGF0aW9uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNXSUcgd2lsbCB1c2UgJHBhdGhuYW1lL2luY2x1ZGUgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhdGhuYW1lL2xpYi4KLQotLS13aXRoLXRjbGluY2w9cGF0aG5hbWUgICAgICAtIFNldCBleGFjdCBsb2NhdGlvbiBvZiBUY2wgaW5jbHVkZSBmaWxlcwotCi0tLXdpdGgtdGNsbGliPXBhdGhuYW1lICAgICAgIC0gU2V0IGV4YWN0IGxvY2F0aW9uIG9mIFRjbCBsaWJyYXJ5IGZpbGVzCi0KLS0td2l0aC1pdGNsPXBhdGhuYW1lICAgICAgICAgLSBTYW1lIGFzIGFib3ZlIGJ1dCBmb3IgW2luY3IgVGNsXQotCi0tLXdpdGgtaXRjbGluY2w9cGF0aG5hbWUgICAgIC0gTG9jYXRpb24gb2YgW2luY3IgVGNsXSBpbmNsdWRlIGZpbGVzCi0KLS0td2l0aC1pdGNsbGliPXBhdGhuYW1lICAgICAgLSBMb2NhdGlvbiBvZiBbaW5jciBUY2xdIGxpYnJhcmllcwotCi0tLXdpdGgtcHk9cGF0aG5hbWUgICAgICAgICAgIC0gU2V0IHBhY2thZ2UgbG9jYXRpb24gb2YgUHl0aG9uLiBUaGlzIGlzIHVzdWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb21ldGhpbmcgbGlrZSAvdXNyL2xvY2FsLiAgY29uZmlndXJlIHdpbGwgYXR0ZW1wdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGxvY2F0ZSB0aGUgYXBwcm9wcmlhdGUgaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxlcy4KLQotLS13aXRoLXB5aW5jbD1wYXRobmFtZSAgICAgICAtIFNldCBsb2NhdGlvbiBvZiBQeXRob24gaW5jbHVkZSBmaWxlcyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yIGV4YW1wbGUsIC91c3IvbG9jYWwvaW5jbHVkZSkKLQotLS13aXRoLXB5bGliPXBhdGhuYW1lICAgICAgICAtIFNldCBsb2NhdGlvbiBvZiBQeXRob24gbGlicmFyeSBmaWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3IgZXhhbXBsZSwgL3Vzci9sb2NhbC9saWIpCi0KLS0td2l0aC1wZXJsNT1leGVjdXRhYmxlICAgICAgLSBTcGVjaWZ5IHlvdXIgcGVybDUgZXhlY3V0YWJsZS4gIFNXSUcgd2lsbCBmaWd1cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgd2hlcmUgZmlsZXMgYXJlIGJ5IHJ1bm5pbmcgdGhpcyB2ZXJzaW9uIG9mIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcmwgYW5kIGdyYWJiaW5nIGl0cyBjb25maWd1cmF0aW9uIGRhdGEuCi0KLQotT3RoZXIgb3B0aW9ucyA6Ci0KLS0td2l0aG91dC15YWNjICAgICAgICAgICAgICAgLSBUcnkgdG8gY29tcGlsZSBTV0lHIHVzaW5nIGEgcHJlZ2VuZXJhdGVkIFlBQ0MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlIGdlbmVyYXRlZCBieSBCZXJrZWxleSBZQUNDIChieWFjYykuIE9ubHkgcmVjb21tZW5kZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB5b3UgZ2V0IGNvbXBpbGVyIGVycm9ycyB3aGVuIHRyeWluZyB0byBjb21waWxlIHBhcnNlci55Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgcGFyc2VyLmN4eC4KLQotCi1Ib3cgdG8gdXNlIGEgZGlmZmVyZW50IEMrKyBjb21waWxlciAgKElNUE9SVEFOVCkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTm9ybWFsbHksIHRoZSBjb25maWd1cmUgc2NyaXB0IHdpbGwgcHJvYmFibHkgdXNlIGcrKyBhcyB0aGUKLUMrKyBjb21waWxlci4gICAgSWYgeW91IHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGNvbXBpbGVyLCBkbwotdGhlIGZvbGxvd2luZyBiZWZvcmUgcnVubmluZyBjb25maWd1cmUuCi0KLQlzZXRlbnYgQ1hYIENDICAgICAgICAgICMgU2V0IENYWCB0byB5b3VyIEMrKyBjb21waWxlcgotCS4vY29uZmlndXJlIAotCW1ha2UKLQotQ2hhbmdpbmcgdGhlIE1ha2VmaWxlcyB0byB1c2UgYSBkaWZmZXJlbnQgQysrIGNvbXBpbGVyIGFmdGVyCi1jb25maWd1cmF0aW9uIGlzIG5vdCByZWNvbW1lbmRlZCEgICBJZiB5b3UgbmVlZCB0byBkbyB0aGlzLAotZG8gdGhpcyA6Ci0KLSAgICAgICAgcm0gY29uZmlnLmNhY2hlCi0Jc2V0ZW52IENYWCBDQwotCS4vY29uZmlndXJlCi0JbWFrZQotCi1UbyBjaGFuZ2UgdGhlIEMgY29tcGlsZXIgKGZvciBjb21waWxpbmcgZXhhbXBsZXMpLCBmb2xsb3cgdGhlCi1zYW1lIHByb2NlZHVyZSBhYm92ZSwgY2hhbmdlIHRoZSBzeW1ib2wgJ0NDJyBpbnN0ZWFkIG9mICdDWFgnLgotCi1UZXN0aW5nIDoKLS0tLS0tLS0tLQotCi1UaGVyZSBhcmUgc2V2ZXJhbCB0ZXN0cyB0aGF0IGNhbiBiZSBkb25lIGFmdGVyIGNvbXBpbGF0aW9uIDoKLQotbWFrZSB0ZXN0ICAgICAgIC0gVGVzdHMgdGhlIFNXSUcgcGFyc2VyIGFuZCBwZXJmb3JtcyByZWdyZXNzaW9uIHRlc3RzCi1tYWtlIHRlc3RidWlsZCAgLSBUZXN0cyBTV0lHIGFiaWxpdHkgdG8gYnVpbGQgdmFyaW91cyBtb2R1bGVzCi0gICAgICAgICAgICAgICAgICAoc2VlIGJlbG93KQotCi1tYWtlIHRlc3RhbGwgICAgLSBUZXN0IGJvdGggb2YgdGhlIGFib3ZlCi0KLVRoZSB0ZXN0aW5nIHByb2Nlc3MgcmVxdWlyZXMgdGhlIHVzZSBvZiB0aGUgJ2Jhc2gnIHNoZWxsIGFuZCBQZXJsLgotSWYgeW91IGRvbid0IGhhdmUgdGhlc2UsIGRvbid0IGV4cGVjdCB0aGUgdGVzdHMgdG8gd29yay4KLQotKioqIFdhcm5pbmcgOiAgRnVsbCB0ZXN0aW5nIHJlcXVpcmVzIGFib3V0IDIwIE1ieXRlcyBvZiBkaXNrIHNwYWNlIAotYW5kIGNyZWF0ZXMgYSBjb2xsZWN0aW9uIG9mIHJlZ3Jlc3Npb24gdGVzdGluZyBmaWxlcy4gICBBZnRlciAKLXBlcmZvcm1pbmcgdGhlIHRlc3RzLCB5b3UgY2FuIGRvIGEgJ21ha2UgdGVzdGNsZWFuJyB0byBjbGVhbiB1cCAKLXRoZSB0ZXN0IGRpcmVjdG9yaWVzIHRvIHRoZWlyIGluaXRpYWwgZGlzdHJpYnV0aW9uIHN0YXRlLgotCi1UaGUgU1dJRyBNYWtlZmlsZXMKLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TV0lHIGNyZWF0ZXMgYSBNYWtlZmlsZSB3aXRoIHJ1bGVzIG9uIGhvdyB0byBidWlsZCBhbGwga2luZHMgb2YKLW1vZHVsZXMgZm9yIGRpZmZlcmVudCBsYW5ndWFnZXMuICBUaGlzIG1ha2VmaWxlIGlzIGNhbGxlZAotJ01ha2VmaWxlLnRlbXBsYXRlJyBpbiB0aGUgdG9wIGxldmVsIGRpcmVjdG9yeSBhbmQgaXMgaW5zdGFsbGVkIHdpdGgKLXRoZSBTV0lHIGxpYnJhcnkgYXMgJ3N3aWdfbGliL01ha2VmaWxlJy4KLQotUHJpb3IgdG8gaW5zdGFsbGF0aW9uLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgcnVuIGEKLSdtYWtlIHRlc3RidWlsZCcgdG8gdGVzdCB0aGlzIE1ha2VmaWxlLiAgIFRoaXMgdGVzdCB3aWxsIHJlcG9ydAotd2hpY2gga2luZHMgb2YgZXh0ZW5zaW9ucyBjYW4gYmUgYnVpbHQuICAgSXQgaXMgbm9ybWFsIHRoYXQKLXNvbWUgdGVzdHMgd2lsbCBmYWlsIChkZXBlbmRpbmcgb24geW91ciBzeXN0ZW0gYW5kIGluc3RhbGxhdGlvbiksCi1idXQgaWYgdGhlIHRlc3RzIGZhaWwgZm9yIGEgbGFuZ3VhZ2UgeW91IHdhbnQgdG8gdXNlLCB5b3Ugd2lsbAotd2FudCB0byBlZGl0IHRoZSBmaWxlICdNYWtlZmlsZS50ZW1wbGF0ZScgYnkgaGFuZC4gIEluIHRoaXMKLXByb2Nlc3MsIHlvdSBjYW4gcmVwZWF0ZWRseSB0cnkgJ21ha2UgdGVzdGJ1aWxkJyB1bnRpbCB5b3UKLWFyZSBzYXRpc2ZpZWQuCi0KLUluIGFkZGl0aW9uIHRvIHRoZSAnTWFrZWZpbGUudGVtcGxhdGUnIFNXSUcgMS4xIGF0dGVtcHRzIHRvIGNvbmZpZ3VyZQotbW9yZSBhZHZhbmNlZCBtYWtlZmlsZXMgZm9yIGVhY2ggc2NyaXB0aW5nIGxhbmd1YWdlLiAgVGhlc2UgYXJlCi1sb2NhdGVkIGluICdzd2lnX2xpYi90Y2wvTWFrZWZpbGUnLCAnc3dpZ19saWIvcGVybDUvTWFrZWZpbGUnLCBhbmQKLSdzd2lnX2xpYi9weXRob24vTWFrZWZpbGUnLiAgUHJpb3IgdG8gaW5zdGFsbGF0aW9uLCB5b3UgbWF5IHdhbnQKLXRvIGV4YW1pbmUgdGhlc2UgTWFrZWZpbGVzIHRvIG1ha2Ugc3VyZSB0aGV5IGFjY3VyYXRlbHkgcmVmbGVjdAoteW91ciBsb2NhbCBzZXR1cC4gICAKLQotSWYgeW91J3JlIGhhcHB5IHdpdGggdGhlIHNldHVwLCBwcm9jZWVkIHRvIGluc3RhbGxhdGlvbi4KLQotSW5zdGFsbGF0aW9uCi0tLS0tLS0tLS0tLS0KLQotVHlwZSAnbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIFNXSUcuICBUaGlzIHdpbGwgaW5zdGFsbCB0aGUgZm9sbG93aW5nIDoKLQotICAgLSAgVGhlIFNXSUcgTGlicmFyeSAgKGNvbnRhaW5pbmcgaW50ZXJmYWNlIGZpbGVzKQotICAgLSAgc3dpZy5oICAgICAgICAgICAgKEhlYWRlcnMgZm9yIGJ1aWxkaW5nIFNXSUcgZXh0ZW5zaW9ucykgICAgICAgICAgCi0gICAtICBsaWJzd2lnLmEgICAgICAgICAoU1dJRyBsaWJyYXJ5IGZvciBidWlsZGluZyBTV0lHIGV4dGVuc2lvbnMpCi0gICAtICBzd2lnLjEgICAgICAgICAgICAobWFuIHBhZ2UpCi0gICAtICBzd2lnX2xpYi9NYWtlZmlsZSAgTWFrZWZpbGUgZm9yIGJ1aWxkaW5nIGV4dGVuc2lvbnMKLSAgIC0gIFJ1bnRpbWUgbGlicmFyaWVzIChpZiBidWlsdCBlYXJsaWVyKS4KLQotVHJvdWJsZXNob290aW5nCi0tLS0tLS0tLS0tLS0tLQotCi1TZWUgdGhlIGZpbGUgVFJPVUJMRVNIT09USU5HIGZvciBzb2x1dGlvbnMgdG8gc2V2ZXJhbCBwcm9ibGVtcy4KLQotV2hpbGUgSSBoYXZlIGFjY2VzcyB0byBhIGxhcmdlIG51bWJlciBvZiBtYWNoaW5lcywgaXQncyBpbXBvc3NpYmxlIGZvcgotbWUgdG8gdGVzdCBldmVyeXRoaW5nLiAgSWYgeW91IGNhbid0IGdldCBTV0lHIHRvIGJ1aWxkIHN1Y2Nlc3NmdWxseSwKLXBsZWFzZSBzZW5kIG1lIGVtYWlsIGF0IGJlYXpsZXlAY3MudXRhaC5lZHUuCi0KLQotSW5zdGFsbGF0aW9uIGZvciBXaW5kb3dzIDk1IGFuZCBOVAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgV2luIGRpcmVjdG9yeSBjb250YWlucyBtYWtlZmlsZXMgZm9yIE1pY3Jvc29mdCBWaXN1YWwgQysrIDQueC4KLVNlZSB0aGUgUkVBRE1FIGZpbGUgaW4gdGhlIFdpbiBkaXJlY3RvcnkgZm9yIHNwZWNpZmljIGJ1aWxkCi1pbnN0cnVjdGlvbnMuCi0KLUluc3RhbGxhdGlvbiBmb3IgTWFjaW50b3NoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUgTWFjIGRpcmVjdG9yeSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBidWlsZGluZyBTV0lHIG9uCi10aGUgTWFjaW50b3NoLiAgQXQgdGhpcyB0aW1lLCB0aGUgTWFjaW50b3NoIHZlcnNpb24gaXMKLWRpc3RyaWJ1dGVkIHNlcGFyYXRlbHkgYXMgYSBiaW5hcnkgcmVsZWFzZS4gIFNvdXJjZSBpcyBhbHNvCi1hdmFpbGFibGUsIGJ1dCBpcyBub24tdHJpdmlhbCB0byBidWlsZCBkdWUgdG8gZGVwZW5kZW5jaWVzCi1vbiBvdGhlciBwYWNrYWdlcy4KLQotCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvYnVncy5odCBiL3N3aWd3ZWIvYnVncy5odApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzljMjkxOS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2J1Z3MuaHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1TV0lHIEJ1ZyBUcmFja2luZwotCi08cD48aW1nIHNyYz0iaW1hZ2VzL2J1Z3MucG5nIj4KLQotPHA+QSA8YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L2J1Z3MvP2dyb3VwX2lkPTE2NDUiPmJ1Zy10cmFja2luZyBzeXN0ZW08L2E+IGZvciBTV0lHCi1pcyBsb2NhdGVkIG9uIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQiPlNvdXJjZUZvcmdlPC9hPi4gCi0KLTxwPgotTm90ZTogQnVnIHRyYWNraW5nIHdhcyBtb3ZlZCB0byBTb3VyY2VGb3JnZSBvbiA3LzIvMjAwMC4gIFBsZWFzZSByZXBvcnQgYWRtaW5pc3RyYXRpdmUKLXByb2JsZW1zIHRvIDxhIGhyZWY9Im1haWx0bzpiZWF6bGV5QGNzLnVjaGljYWdvLmVkdSI+YmVhemxleUBjcy51Y2hpY2Fnby5lZHUuPC9hPgotCi08cD4KLVBsZWFzZSBub3RlIHRoYXQgZHVlIHRvIHRpbWUgY29uc3RyYWludHMsIGJ1ZyByZXBvcnRzIG1heSBub3QgCi1yZWNlaXZlIGFuIGltbWVkaWF0ZSByZXNwb25zZS4KLUlmIHlvdSBoYXZlIGFuIHVyZ2VudCBwcm9ibGVtLCB5b3UgbWF5IHdhbnQgdG8KLXBvc3QgYSBtZXNzYWdlIHRvIHRoZSBTV0lHIG1haWxpbmcgbGlzdCBhdCA8YSBocmVmPSJtYWlsdG86c3dpZ0Bjcy51Y2hpY2Fnby5lZHUiPnN3aWdAY3MudWNoaWNhZ28uZWR1PC9hPgotaW5zdGVhZC4gCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvY29tcGF0Lmh0IGIvc3dpZ3dlYi9jb21wYXQuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGI1ZjU3NzEuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9jb21wYXQuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi1TV0lHIENvbXBhdGliaWxpdHkKLQotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL2NvbXBhdC5wbmciIGFsdD0iQ29tcGF0aWJpbGl0eSI+Ci0KLTxwPgotU1dJRyBpcyBrbm93biB0byB3b3JrIG9uIHRoZSBmb2xsb3dpbmcgcGxhdGZvcm1zIDoKLQotPHVsPgotPGxpPiBVbml4IAotCi08YmxvY2txdW90ZT4KLVNXSUcgaXMgY29uZmlndXJlZCBhbmQgYnVpbHQgdXNpbmcgYW4gYXV0b2NvbmYgc2NyaXB0IHNvIGl0IGlzCi1yZWxhdGl2ZWx5IGVhc3kgdG8gaW5zdGFsbCBvbiBhbG1vc3QgYW55IGZsYXZvciBvZiBVbml4LiAgSG93ZXZlciwgbW9zdCBvZgotU1dJRydzIGRldmVsb3BtZW50IGhhcyB0YWtlbiBwbGFjZSB1bmRlciBMaW51eCBhbmQgU29sYXJpcy4KLVdoaWxlIHRoZSBjb25maWd1cmF0aW9uIHNjcmlwdCB0cmllcyB0byBkZXRlcm1pbmUgdGhlIHByb3BlciBzZXR0aW5ncwotZm9yIHlvdXIgbWFjaGluZSwgc29tZSB0d2Vha2luZyBtYXkgYmUgcmVxdWlyZWQgdG8gY29tcGlsZSB0aGUKLWV4YW1wbGVzIGluY2x1ZGVkIGluIHRoZSBkaXN0cmlidXRpb24gKGVzcGVjaWFsbHkgaWYgeW91IGFyZSB1c2luZyBhIAotdmVyc2lvbiBvZiBVbml4IHN1Y2ggYXMgQUlYIG9yIEhQVVgpLgotPC9ibG9ja3F1b3RlPgotCi08bGk+IFdpbmRvd3MgOTUvOTgvTlQKLQotPGJsb2NrcXVvdGU+Ci1TV0lHIGNhbiBiZSBjb21waWxlZCB3aXRoIFZpc3VhbCBDKysgNC54LzUueC82Lnggb3Igd2l0aCB0aGUgQm9ybGFuZCBDKysgNS54Ci1jb21waWxlci4gICBIb3dldmVyLCBTV0lHIGhhcyBvbmx5IGJlZW4gb2ZmaWNpYWxseSB0ZXN0ZWQgdXNpbmcgdGhlCi1WaXN1YWwgQysrIGNvbXBpbGVyLiAgIFlvdSBtYXkgYWxzbyBuZWVkIHRvIGRldGVybWluZSB3aGljaCBjb21waWxlcgotaGFzIGJlZW4gdXNlZCB0byBjb21waWxlIHRoZSB2YXJpb3VzIHNjcmlwdGluZyBsYW5ndWFnZXMgdGhhdCB5b3Ugd2lsbAotYmUgdXNpbmcuICAgSW4gZ2VuZXJhbCwgdXNpbmcgU1dJRyB3aXRoIGEgZGlmZmVyZW50IEMrKyBjb21waWxlciB0aGFuCi10aGUgb25lIHRoYXQgd2FzIHVzZWQgdG8gY29tcGlsZSB0aGUgdGFyZ2V0IHNjcmlwdGluZyBsYW5ndWFnZSBtYXkKLW5vdCB3b3JrIChmb3IgZXhhbXBsZSwgdHJ5aW5nIHRvIGNyZWF0ZSBhIFRjbC9UayBtb2R1bGUgdXNpbmcgdGhlCi1Cb3JsYW5kIGNvbXBpbGVyIHdoZW4gVGNsL1RrIGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggVmlzdWFsIEMrKykuICAKLUdpdmVuIHRoYXQgU1dJRyBpcyBwcmltYXJpbHkgZGV2ZWxvcGVkIHVuZGVyIFVuaXgsIHRoZSBXaW5kb3dzCi12ZXJzaW9uIHNob3VsZCBiZSB2aWV3ZWQgYXMgYmVpbmcgc29tZXdoYXQgZXhwZXJpbWVudGFsLiAgU1dJRyBoYXMKLW9ubHkgYmVlbiB0ZXN0ZWQgdW5kZXIgV2luZG93cy1OVC4gIEhvd2V2ZXIsIFdpbmRvd3MgOTUvOTggc3lzdGVtcwotYWxzbyBhcHBlYXIgdG8gd29yay4KLQotPC9ibG9ja3F1b3RlPgotCi08bGk+IE1hY2ludG9zaAotCi08YmxvY2txdW90ZT4KLUEgaGlnaGx5IGV4cGVyaW1lbnRhbCB2ZXJzaW9uIG9mIFNXSUcgaGFzIGJlZW4gY29tcGlsZWQgdXNpbmcKLU1ldHJvd2Vya3MgQ29kZSBXYXJyaW9yIDEwLiAgR2l2ZW4gdGhlIGxpbWl0ZWQgYXZhaWxhYmlsaXR5IGFuZAotZXhwZXJpZW5jZSB3aXRoIHRoZSBNYWNpbnRvc2gsIHRoaXMgdmVyc2lvbiBvZiBTV0lHIHNob3VsZCBvbmx5Ci1iZSB1c2VkIGJ5IGV4Y2VwdGlvbmFsbHkgYnJhdmUgdXNlcnMuIFNXSUcgaGFzIG5vdCBiZWVuIGZ1bGx5IHRlc3RlZCB3aXRoIFB5dGhvbiBvcgotUGVybCBvbiB0aGUgTWFjaW50b3NoIGFsdGhvdWdoIHNvbWUgdXNlcnMgaGF2ZSByZXBvcnRlZCBzdWNjZXNzLgotPC9ibG9ja3F1b3RlPgotPC91bD4KLQotWW91IGNhbiByZWFkIHRoZQotaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBpbmNsdWRlZCBpbiB0aGUgZGlzdHJpYnV0aW9uIDxhIGhyZWY9IklOU1RBTEwiPmhlcmUuPC9hPgotCi08aDM+IFN1cHBvcnRlZCBTY3JpcHRpbmcgTGFuZ3VhZ2VzIDwvaDM+Ci0KLVRoZSBmb2xsb3dpbmcgc2NyaXB0aW5nIGxhbmd1YWdlcyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCAKLQotPHVsPgotPGxpPiBUY2wgOC4wIGFuZCBuZXdlciB2ZXJzaW9ucy4KLTxsaT4gUHl0aG9uIDEuMyBhbmQgbmV3ZXIuCi08bGk+IFBlcmwgNS4wMDMgb3IgbmV3ZXIuCi08L3VsPgotCi1BbnkgbmV3ZXIgdmVyc2lvbnMgb2YgdGhlc2UgbGFuZ3VhZ2VzIHNob3VsZCBiZSBhc3N1bWVkIHRvIGJlCi1zdXBwb3J0ZWQgdW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQuICAgCi0KLTxoMz4gQ29tcGlsYXRpb24gUmVxdWlyZW1lbnRzIDwvaDM+Ci0KLVNXSUcgaXMgaW1wbGVtZW50ZWQgaW4gQysrIGFuZCBpcyBkaXN0cmlidXRlZCBpbiBzb3VyY2UgZm9ybS4KLVlvdSB3aWxsIG5lZWQgYSB3b3JraW5nIEMrKyBjb21waWxlciAoaS5lLiwgZysrKSB0byBidWlsZCBTV0lHIGFuZCBhdAotbGVhc3Qgb25lIG9mIHRoZSBzdXBwb3J0ZWQgc2NyaXB0aW5nIGxhbmd1YWdlcyB0byB1c2UgaXQgKG9yIGVsc2UgaXQKLWlzbid0IGdvaW5nIHRvIGJlIHZlcnkgdXNlZnVsKS4gIFNXSUcgZG9lcyBub3QgZGVwZW5kIHVwb24gYW55IG9mIHRoZQotc3VwcG9ydGVkIHNjcmlwdGluZyBsYW5ndWFnZXMgZm9yIGl0cyBvd24gY29tcGlsYXRpb24uICBGaW5hbGx5LAotYWx0aG91Z2ggU1dJRyBpcyB3cml0dGVuIGluIEMrKywgYSBDKysgY29tcGlsZXIgaXMgbm90IHJlcXVpcmVkIHRvIHVzZQotU1dJRy0taXQgd29ya3MganVzdCBmaW5lIHdpdGggYm90aCBBTlNJIEMgYW5kIEMrKy4KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9jb3B5ZnVuLmh0IGIvc3dpZ3dlYi9jb3B5ZnVuLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGUzYjkwLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvY29weWZ1bi5odAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVByb3Bvc2VkIFNXSUcgQ29weXJpZ2h0Ci0KLTxwPgotPGltZyBzcmM9ImltYWdlcy9jb3B5cmlnaHQucG5nIj4KLQotPHA+Ci08cHJlPgotU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yICAoU1dJRykKLQotQ29weXJpZ2h0IChDKSAxOTk1LTIwMDAKLVRoZSBVbml2ZXJzaXR5IG9mIENoaWNhZ28KLUFsbCBSaWdodHMgUmVzZXJ2ZWQKLQotSXQncyBmcmVlLgotPC9wcmU+CmRpZmYgLS1naXQgYS9zd2lnd2ViL2NvcHlyaWdodC5odCBiL3N3aWd3ZWIvY29weXJpZ2h0Lmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzUwNGYyLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvY29weXJpZ2h0Lmh0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotU1dJRyBDb3B5cmlnaHQKLQotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL2NvcHlyaWdodC5wbmciPgotCi08cHJlPgotU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yICAoU1dJRykKLSAKLURhdmlkIEJlYXpsZXkKLURlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZSAgICAgICAgCi1Vbml2ZXJzaXR5IG9mIENoaWNhZ28KLTExMDAgRSA1OHRoIFN0cmVldAotQ2hpY2FnbywgSUwgIDYwNjM3Ci1iZWF6bGV5QGNzLnVjaGljYWdvLmVkdQotCi1TV0lHIDEuMSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6Ci0KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLUNvcHlyaWdodCAoYykgMTk5NS0xOTk4Ci1UaGUgVW5pdmVyc2l0eSBvZiBVdGFoIGFuZCB0aGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCi1BbGwgUmlnaHRzIFJlc2VydmVkCi0KLVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIHdpdGhvdXQgd3JpdHRlbiBhZ3JlZW1lbnQgYW5kIHdpdGhvdXQKLWxpY2Vuc2Ugb3Igcm95YWx0eSBmZWVzLCB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcwotc29mdHdhcmUgYW5kIGl0cyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSwgcHJvdmlkZWQgdGhhdCAKLSgxKSBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhlIGZvbGxvd2luZyB0d28gcGFyYWdyYXBocwotYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YgdGhlIHNvdXJjZSBjb2RlIGFuZCAoMikgcmVkaXN0cmlidXRpb25zCi1pbmNsdWRpbmcgYmluYXJpZXMgcmVwcm9kdWNlcyB0aGVzZSBub3RpY2VzIGluIHRoZSBzdXBwb3J0aW5nCi1kb2N1bWVudGF0aW9uLiAgIFN1YnN0YW50aWFsIG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBzb2Z0d2FyZSBtYXkgYmUKLWNvcHlyaWdodGVkIGJ5IHRoZWlyIGF1dGhvcnMgYW5kIG5lZWQgbm90IGZvbGxvdyB0aGUgbGljZW5zaW5nIHRlcm1zCi1kZXNjcmliZWQgaGVyZSwgcHJvdmlkZWQgdGhhdCB0aGUgbmV3IHRlcm1zIGFyZSBjbGVhcmx5IGluZGljYXRlZCBpbgotYWxsIGZpbGVzIHdoZXJlIHRoZXkgYXBwbHkuCi0KLUlOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IsIFRIRSBVTklWRVJTSVRZIE9GIENBTElGT1JOSUEsIFRIRSAKLVVOSVZFUlNJVFkgT0YgVVRBSCBPUiBESVNUUklCVVRPUlMgT0YgVEhJUyBTT0ZUV0FSRSBCRSBMSUFCTEUgVE8gQU5ZCi1QQVJUWSBGT1IgRElSRUNULCBJTkRJUkVDVCwgU1BFQ0lBTCwgSU5DSURFTlRBTCwgT1IgQ09OU0VRVUVOVElBTAotREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OLAotRVZFTiBJRiBUSEUgQVVUSE9SUyBPUiBBTlkgT0YgVEhFIEFCT1ZFIFBBUlRJRVMgSEFWRSBCRUVOIEFEVklTRUQgT0YKLVRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotVEhFIEFVVEhPUiwgVEhFIFVOSVZFUlNJVFkgT0YgQ0FMSUZPUk5JQSwgQU5EIFRIRSBVTklWRVJTSVRZIE9GIFVUQUgKLVNQRUNJRklDQUxMWSBESVNDTEFJTSBBTlkgV0FSUkFOVElFUyxJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgCi1USEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi1QVVJQT1NFLiBUSEUgU09GVFdBUkUgUFJPVklERUQgSEVSRVVOREVSIElTIE9OIEFOICJBUyBJUyIgQkFTSVMsIEFORCAKLVRIRSBBVVRIT1JTIEFORCBESVNUUklCVVRPUlMgSEFWRSBOTyBPQkxJR0FUSU9OIFRPIFBST1ZJREUgTUFJTlRFTkFOQ0UsCi1TVVBQT1JULCBVUERBVEVTLCBFTkhBTkNFTUVOVFMsIE9SIE1PRElGSUNBVElPTlMuCi08L3ByZT4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvY3BwLmh0IGIvc3dpZ3dlYi9jcHAuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiMTIwMDguLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9jcHAuaHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzMgKzAsMCBAQAotTmV3IEMrKyBGZWF0dXJlcwotCi08aDI+RGF2ZSdzIE1vc3QgRGVzaXJlZCBDKysgRmVhdHVyZXM8L2gyPgotCi1JbiB3cml0aW5nIFNXSUcsIEkgaGF2ZSBkZXZlbG9wZWQgYSB3aG9sZSBuZXcgYXBwcmVjaWF0aW9uIGZvciB0aGUKLWxhbmd1YWdlIHRoYXQgaXMgQysrLiAgSG93ZXZlciwgSSBoYXZlIGFsc28gY29tZSB0byBkaXNjb3ZlciBhIG51bWJlcgotb2Ygc2VyaW91cyBsaW1pdGF0aW9ucyBpbiB0aGUgbGFuZ3VhZ2UuICBUaGVyZWZvcmUsIGluIHRoZSBpbnRlcmVzdCBvZgotcHVibGljIHNlcnZpY2UsIEkgbm93IHByZXNlbnQgbXkgc2VtaS1vZmZpY2lhbCBsaXN0IG9mIEMrKyBmZWF0dXJlcwotSSB3b3VsZCBtb3N0IGxpa2UgdG8gc2VlIGltcGxlbWVudGVkOgotCi08dWw+Ci08bGk+PGI+VGhlIHNsaWdodGx5IGFtYmlndW91cyByZWZlcmVuY2UuPC9iPiBUaGlzIHdvdWxkIGJlIGEgdmFyaWF0aW9uCi1vbiB0aGUgZXZlci1zby11c2VmdWwgQysrIHJlZmVyZW5jZSAoJmFtcDspIHVzZWQgdG8gZGVub3RlIGEgcXVhbnRpdHkKLXRoYXQgcmVmZXJzIHRvIGVpdGhlciB0aGUgb2JqZWN0IGl0c2VsZiAoYnkgdmFsdWUpIHRvIGEgcmVmZXJlbmNlIHRvCi1hbiBvYmplY3QuICBUaGUgcHJlZmVycmVkIHN5bnRheCBmb3IgdGhpcyBpcyB0byBlbmNsb3NlIHRoZSB2YXJpYWJsZQotbmFtZSBpbiBicmFja2V0cyBhbmQgdXNlIHRoZSBhbXBlcnNhbmQgbGlrZSB0aGlzCi08dHQ+Jmx0OyZhbXA7Zm9vJmd0OzwvdHQ+LgotCi08YmxvY2txdW90ZT4KLTxwcmU+Ci12b2lkIGZvbyhCYXIgPCZiPikgewotICAgIGIuZnJhZygzKTsgICAgICAgLy8gQ2FsbCBzb21lIG1ldGhvZCAgCi0gICAgLi4uCi19Ci08L3ByZT4KLTwvYmxvY2txdW90ZT4KLQotSW4gdGhpcyBjYXNlLCA8dHQ+Zm9vPC90dD4gd291bGQgZWl0aGVyIGJlIHBhc3NlZCBhIGNvcHkgb2YgYQotPHR0PkJhcjwvdHQ+IHR5cGUgKHBhc3MgYnkgdmFsdWUpIG9yIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nCi08dHQ+QmFyPC90dD4uICBUaGUgcHJlY2lzZSBjaG9pY2UsIG9mIGNvdXJzZSwgd291bGQgYmUgdXAgdG8gdGhlCi1pbXBsZW1lbnRhdGlvbi4gIE9idmlvdXNseSwgdGhlIGNvbXBpbGVyIHdvdWxkIHBpY2sgdGhlIGJlc3QKLW9wdGlvbi0tbWFraW5nIGl0IGEgZ29vZCBjaG9pY2UgZm9yIHByb2dyYW1tZXJzIHRvbyBzdHVwaWQgdG8ga25vdyB3aGV0aGVyCi10aGV5IHNob3VsZCB1c2UgYSBwb2ludGVyIG9yIG5vdC4KLTxwPgotT2J2aW91c2x5LCB0aGVyZSBhcmUgYSBmZXcgY29tcGxpY2F0ZWQgY2FzZXMgc3VjaCBhczoKLQotPGJsb2NrcXVvdGU+Ci08cHJlPgotdm9pZCBmb28oY29uc3QgQmFyICpjb25zdCAqPCZiPik7Ci08L3ByZT4KLTwvYmxvY2txdW90ZT4KLQotVGhlIGludGVycHJldGF0aW9uIG9mIHRoaXMgaXMgbGVmdCBhcyBhbiBleGVyY2lzZSB0byB0aGUgcmVhZGVyIChoZXksCi1pdCdzIGdvb2QgdG8gYmUgYSBwcm9mZXNzb3IpLgotCi08cD4KLTxsaT48Yj5DaXJjdWxhciBzaGlmdCBvcGVyYXRvcnMuPC9iPiBTdXJlLCBvbmUgZG9lc24ndCByZWFsbHkgbmVlZCB0bwotZG8gYSBjaXJjdWxhciBiaXQgc2hpZnQgdmVyeSBvZnRlbiwgYnV0IHRoZXkgYXJlIHNvbWV0aW1lcyB1c2VmdWwgaW4KLWNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtcyBhbmQgZm9yIGdlbmVyYWwtcHVycG9zZSBiaXQtdHdpZGRsaW5nLiAgSQotcHJvcG9zZSB0aGUgaW5jbHVzaW9uIG9mIHRoZSB0cmlwbGUgYW5nbGUgYnJhY2tldCBvcGVyYXRvcnMKLSg8dHQ+Jmx0OyZsdDsmbHQ8L3R0PiBhbmQgPHR0PiZndDsmZ3Q7Jmd0OzwvdHQ+KSBmb3IgdGhpcyBwdXJwb3NlLiAgT2YKLWNvdXJzZSwgdGhlc2Ugb3BlcmF0b3JzIGNvdWxkIGFsc28gYmUgb3ZlcmxvYWRlZCBqdXN0IGxpa2UgdGhlIG5vcm1hbAotc2hpZnQgb3BlcmF0b3JzLiAgSXQncyBub3QgdGhhdCBJIHJlYWxseSBuZWVkIHRoZXNlIG9wZXJhdG9ycywgYnV0IGl0Ci1pcyB5ZXQgYW5vdGhlciBvcHBvcnR1bml0eSB0byBpbmNsdWRlIG1vcmUgYW5nbGUgYnJhY2tldHMgaW50byB0aGUKLWxhbmd1YWdlLgotPHA+Ci08bGk+PGI+VGhlIHN1cnZpdmFsIGNhc3QuPC9iPiAgSSdtIG5vdCByZWFsbHkgc3VyZSB3aGVyZSBJIGdvdCB0aGlzIGlkZWEsCi1idXQgYmFzaWNhbGx5IGl0IHdvcmtzIGxpa2UgdGhpczogZ2l2ZW4gYW4gb2JqZWN0LCB5b3UgY2FuIGNhc3QgaXQgdXNpbmcKLWEgPHR0PnN1cnZpdmFsX2Nhc3Q8L3R0PiBsaWtlIHRoaXMgIAotCi08YmxvY2txdW90ZT4KLTxwcmU+Ci1CYXIgKnggPSBzdXJ2aXZhbF9jYXN0Jmx0O0JhciAqJmd0Oyh5KTsKLTwvcHJlPgotPC9ibG9ja3F1b3RlPgotCi1BZnRlcndhcmRzLCB0aGUgb2JqZWN0IHRoYXQgPHR0Png8L3R0PiBwb2ludHMgdG8gaXMgZ3VhcmFudGVlZCB0byBiZQotdW5kZWxldGFibGUtLWV2ZW4gaWYgYSBwcm9ncmFtIHJlcGVhdGVkbHkgY2FsbHMgPHR0PmRlbGV0ZTwvdHQ+IG9yCi08dHQ+ZnJlZSgpPC90dD4gb24gaXQuICBUaGlzIGVmZmVjdCBhcHBsaWVzIHRvIHRoZSBvYmplY3QgaXRzZWxmLCBub3QKLXRoZSBwb2ludGVyICh0aHVzLCB0aGUgY2FzdCBpbXBsaWNpdGx5IGFwcGxpZXMgdG8gYWxsIG90aGVyIHBvaW50ZXJzIHJlZmVycmluZyB0bwotdGhlIHNhbWUgb2JqZWN0KS4gIEZ1cnRoZXJtb3JlLCB0aGUgY2FzdCByZW1haW5zIGluIGVmZmVjdCB1bnRpbCB0aGUKLXByb2dyYW0gdGVybWluYXRlcy0tbWFraW5nIHRoaXMgYSBwYXJ0aWN1bGFybHkgZ29vZCB3YXkgdG8gYXZvaWQgdGhvc2UKLXBlc2t5IG1lbW9yeSBtYW5hZ2VtZW50IHByb2JsZW1zIHN1Y2ggYXMgY2FsbGluZyBkZWxldGUgdG9vIG1hbnkgdGltZXMKLWJ5IGFjY2lkZW50LgotCi08cD4KLVRoZSBzdXJ2aXZhbCBjYXN0IGNhbiBiZSBhcHBsaWVkIHRvIHRoZSBpbmRpdmlkdWFsIGVsZW1lbnRzIG9mIGFuIGFycmF5Ci1vciBjb250YWluZXIuICBIb3dldmVyLCBpbiB0aGlzIGNhc2UsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IGVuc3VyZQotdGhhdCBkZWxldGlvbiBvZiB0aGUgYXJyYXkgb3IgY29udGFpbmVyIG9ubHkgZGVsZXRlcyB0aG9zZSBtZW1iZXJzIGZvcgotd2hpY2ggdGhlIHN1cnZpdmFsIGNhc3QgaGFzIG5vdCBiZWVuIGFwcGxpZWQuCi0KLTxwPgotV2hlbiB0b28gbWFueSBvYmplY3RzIGhhdmUgYmVlbiBjYXN0IHVzaW5nIHRoZSBzdXJ2aXZhbCBjYXN0LCB0aGV5IG1heQotZGVjaWRlIHRvIHNwb250YW5lb3VzbHkgZGVsZXRlIHRoZW1zZWx2ZXMgYWxvbmcgd2l0aCBhbiB1bnNwZWNpZmllZAotbnVtYmVyIG9mIG5vbi1zdXJ2aXZhbCBvYmplY3RzLiAgVGhpcyBpcyBhIGZlYXR1cmUuICBIb3dldmVyLCB0aGUKLXByZWNpc2UgbWVjaGFuaXNtIGFuZCBzY29wZSBvZiBkZXN0cnVjdGlvbiBpcyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYwotYW5kIG1heSBkZXBlbmQgb24gdGhlIHR5cGUgb2Ygb2JqZWN0cyB0byB3aGljaCB0aGUgc3Vydml2YWwgY2FzdCBoYXMKLWJlZW4gYXBwbGllZC4KLQotPHA+Ci08bGk+PGI+VGhlIG5vbi1jYXN0YWJsZSBmdW5jdGlvbiBwb2ludGVyPC9iPi4gIFNpbmNlIGZ1bmN0aW9uIHBvaW50ZXJzIGFyZQotdG9vIGNvbmZ1c2luZyBmb3IgZXZlcnlvbmUsIGl0IHNob3VsZCBiZSBpbXBvc3NpYmxlIHRvIGNhc3QgdGhlbSBpbnRvIGFueQotb3RoZXIgdHlwZS4gIE9oIHdhaXQsIHRoaXMgaXMgYWxyZWFkeSBhIEMrKyBmZWF0dXJlLgotCi08cD4KLTxsaT48Yj5UaGUgaWRlbnRpZmllciBsZW5ndGggY2FzdDwvYj4uICBTaW5jZSB3ZSdyZSBvbiB0aGUgc3ViamVjdCBvZiBjYXN0aW5nLi4uLiAgSSB3b3VsZAotYWxzbyBsaWtlIHRvIHByb3Bvc2UgdGhlIGlkZW50aWZpZXIgbGVuZ3RoIGNhc3QuICBUaGlzIGlzIGEgY2FzdCB0aGF0IG9ubHkgd29ya3MKLWlmIHRoZSBpZGVudGlmaWVyIG5hbWVzIG9mIHRoZSB0d28gdHlwZXMgYXJlIGV4YWN0bHkgdGhlIHNhbWUgbGVuZ3RoIGluIAotY2hhcmFjdGVycy4gIEZvciBleGFtcGxlOgotCi08YmxvY2txdW90ZT4KLTxwcmU+Ci1CYXIgKnggPSBpZGVudGlmaWVyX2xlbmd0aF9jYXN0Jmx0O0ZvbyAqJmd0Oyh5KTsgICAgIC8vIE9rCi1Gb29CYXIgKnggPSBpZGVudGlmaWVyX2xlbmd0aF9jYXN0Jmx0O0ZvbyAqJmd0Oyh5KTsgIC8vIEVycm9yCi08L3ByZT4KLTwvYmxvY2txdW90ZT4KLQotSW4gYWRkaXRpb24sIHRoZXJlIHNob3VsZCBiZSBhbiA8dHQ+aWRlbnRpZmllcl9jYXNlX2Nhc3Q8L3R0PiB0aGF0IHdvcmtzIHNpbWlsYXJseSwgYnV0Ci13aGljaCBsb29rcyBhdCB0aGUgY2FzZSBvZiB0aGUgdHlwZSBuYW1lcy4gICBJJ20gbm90IHJlYWxseSBzdXJlIHdoYXQgcHVycG9zZSB0aGVzZSBjYXN0cwotd291bGQgc2VydmUsIGJ1dCB0aGF0IGRvZXNuJ3QgcmVhbGx5IGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBhbnkgb2YgdGhlIG90aGVyIGNhc3RzLgotIAotPHA+Ci08bGk+PGI+VGhlIGluc3RhbmNlIGdvdG88L2I+LiAgSW4gYSBudXRzaGVsbCwgSSByZWFsbHkgd2FudCB0byBiZSBhYmxlIHRvIGRvCi10aGlzOgotCi08YmxvY2txdW90ZT4KLTxwcmU+Ci1jbGFzcyBGb28gewotcHVibGljOgotICAgLi4uCi0gICBiYXI6Ci0gICAgICBwcmludGYoIkhlbGxvIHdvcmxkXG4iKTsKLSAgICAgIC4uLiBzb21lIGNvZGUgaGVyZSAuLi4KLSAgICAgIGJyZWFrOwotfTsKLQotaW50IG1haW4oKSB7Ci0gICAgRm9vICpmID0gbmV3IEZvbzsKLSAgICBnb3RvIGYuYmFyOwotICAgIC4uLgotfQotPC9wcmU+Ci08L2Jsb2NrcXVvdGU+Ci1PYnZpb3VzbHksIHRoZSBiZW5lZml0cyBvZiB0aGlzIGZlYXR1cmUgYXJlIHNlbGYtZXZpZGVudC4gIEhvd2V2ZXIsCi10aGVyZSBhcmUgc3RpbGwgYSBmZXcgdHJpY2t5IHBvaW50cy4gIEZpcnN0LCB0aGUgZ290byBzaG91bGQgd29yayB3aXRoCi1pbmhlcml0YW5jZSB3aGVuIHRoZSBnb3RvIGxhYmVsIGhhcHBlbnMgdG8gYXBwZWFyIGluIGEgYmFzZS1jbGFzcy4gIFNlY29uZCwKLXRoZSBnb3RvIHNob3VsZCBjZXJ0YWlubHkgdGFrZSBhZHZhbnRhZ2Ugb2YgZHluYW1pYyBiaW5kaW5nIG11Y2ggbGlrZSB2aXJ0dWFsCi1tZW1iZXIgZnVuY3Rpb25zLiAgIEZpbmFsbHksIEkgYmVsaWV2ZSB0aGF0IHRoZXJlIHdvdWxkIGJlIG1hbnkgaW50ZXJlc3RpbmcKLXBvc3NpYmlsaXRpZXMgb2YgY29tYmluaW5nIHRlbXBsYXRlIGNsYXNzZXMgd2l0aCBnb3RvLiAgRm9yIGV4YW1wbGU6Ci0KLTxibG9ja3F1b3RlPgotPHByZT4KLXRlbXBsYXRlIGNsYXNzIEZvbzx4PiB7Ci1wdWJsaWM6Ci0gICAgeDogCi0gICAgICAgIC4uLiBzb21lIGNvZGUgaGVyZSAuLi4KLSAgICAgICAgYnJlYWs7Ci0gICAgLi4uCi19OwotPC9ibG9ja3F1b3RlPgotPC9wcmU+Ci0KLUNsZWFybHksIHRoZSBudW1iZXIgb2YgYXBwbGljYXRpb25zIGlzIGVuZGxlc3MuCi0KLTxwPgotPGxpPjxiPk1QMyBwbGF5ZXI8L2I+LiAgIFNpbmNlIGNvbXBpbGluZyBhIEMrKyBhcHBsaWNhdGlvbiB0YWtlcyBzbyBsb25nLCBJIHRoaW5rCi1pdCB3b3VsZCBiZSB1c2VmdWwgdG8gbW9kaWZ5IHRoZSBDKysgY29tcGlsZXIgdG8gZ28gb3V0IGFuZCBzZWFyY2ggdGhlIG5ldCBmb3IgYW4KLWFwcHJvcHJpYXRlIHN5bXBob255IG9yIHNvbmF0YSB0byBkb3dubG9hZCBhbmQgcGxheSB3aGlsZSBpdCBpcyB3b3JraW5nLiBBaGhoaC4gWWVzLgotT2YgY291cnNlLCBpZiB5b3UgaGF2ZSBhIERWRCBwbGF5ZXIgaGFuZHksIEkgaGF2ZSBwZXJzb25hbGx5IGZvdW5kIHRoYXQgd2F0Y2hpbmcgIkFwb2NhbHlwc2UgTm93IgotaXMgYSByZWxheGluZyB3YXkgdG8gcGFzcyB0aGUgdGltZS4KLQotPC91bD4KLQotSGF2ZSBhIGZ1cnRoZXIgZmVhdHVyZSBzdWdnZXN0aW9uPyAgUGxlYXNlIGxldCBtZSBrbm93LgotCi0KLQotCi0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9jdnMuaHQgYi9zd2lnd2ViL2N2cy5odApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgwNjc4OC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2N2cy5odAorKysgL2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLVNXSUcgQ1ZTCi0KLTxwPgotPGltZyBzcmM9ImltYWdlcy9jdnMucG5nIj4KLQotPHA+Ci08Yj5Ob3RpY2UgKDkvNC8wMCk6IER1ZSB0byBidWlsZGluZyByZW5ub3ZhdGlvbnMsIHRoZSBDVlMgcmVwb3NpdG9yeQotd2lsbCBiZSB1bmF2YWlsYWJsZSBmcm9tIDkvNS8wMCB0byA5LzE4LzAwLjwvYj4KLQotPHA+Ci1TV0lHIGlzIGN1cnJlbnRseSB1bmRlcmdvaW5nIGEgbGFyZ2UgcmVkZXZlbG9wbWVudCBlZmZvcnQuCi1EZXZlbG9wbWVudCB2ZXJzaW9ucyBvZiBTV0lHIGFyZSBhdmFpbGFibGUgdGhyb3VnaCBhIHB1YmxpYwotQ1ZTIHJlcG9zaXRvcnkuICAgIFRvIHVzZSB0aGlzIGludGVyZmFjZSB5b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwKLUNWUyAxLjkgb3IgbmV3ZXIuICAgVGhlIFNXSUcgZGV2ZWxvcG1lbnQgbWFjaGluZSBpcyBjdXJyZW50bHkKLXJ1bm5pbmcgY3ZzLTEuMTAuICAgVXNlIG9mIHRoZSBDVlMgcmVwb3NpdG9yeSBpcyBub3QgcmVjb21tZW5kZWQgZXhjZXB0IGZvcgotYWR2YW5jZWQgdXNlcnMuCi0KLTxoMz4gRGlzY2xhaW1lciA8L2gzPgotCi1UaGUgQ1ZTIHJlbGVhc2UgcmVwcmVzZW50cyB3b3JrIGluIHByb2dyZXNzIGFuZCBpcyBub3QgZ3VhcmFudGVlZCB0byBjb21waWxlIG9uIHlvdXIgbWFjaGluZSBvciBiZSBmdW5jdGlvbmFsIGluIGFueQotbWFubmVyLiAKLQotPGgzPiBUbyBjaGVjayBvdXQgdGhlIGxhdGVzdCB2ZXJzaW9uIDwvaDM+Ci0KLTxvbD4KLTxsaT4gU2V0IHRoZSBsb2NhdGlvbiBvZiBDVlNST09UCi0KLTxwPgotPHByZT4KLSAlIHNldGVudiBDVlNST09UIDpwc2VydmVyOmN2c0Bzd2lnLmNzLnVjaGljYWdvLmVkdTovY3Zzcm9vdAotPC9wcmU+Ci08cD4KLShBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUgLWQgb3B0aW9uIHRvIENWUykKLQotPHA+Ci08bGk+IExvZyBpbnRvIHRoZSBjdnMgc2VydmVyIGJ5IGlzc3VpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOgotCi08cD4KLTxwcmU+Ci0lIGN2cyBsb2dpbgotQ1ZTIHBhc3N3b3JkOiAmbHQ7ZW50ZXIgJ2N2cycgaGVyZSZndAotPC9wcmU+Ci08cD4KLVRoZSBwYXNzd29yZCB0byB0aGUgY3ZzIGFjY291bnQgaXMgJ2N2cycuCi0KLTxwPgotPGxpPlRoZSBsYXRlc3QgdmVyc2lvbiBvZiBTV0lHIGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcKLQotPHA+Ci08cHJlPgotJSBjdnMgY2hlY2tvdXQgU1dJRwotPC9wcmU+Ci08L3A+Ci0KLTwvb2w+Ci0KLTxiPk5vdGU6PC9iPiBUaGUgQ1ZTIHJlcG9zaXRvcnkgaXMgcmVhZC1vbmx5IHNvIHRoZSBzeXN0ZW0gd2lsbCBub3QgCi1hY2NlcHQgY29kZSBtb2RpZmljYXRpb25zIGF0IHRoaXMgdGltZS4KLQotPGgzPiBSZXF1aXJlZCBUb29scyA8L2gzPgotCi1UbyBjb21waWxlIFNXSUcgZnJvbSBpdHMgQ1ZTIHJlcG9zaXRvcnksIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyB0b29sczoKLQotPHVsPgotPGxpPiBBdXRvY29uZgotPGxpPiBBIHdvcmtpbmcgQysrIGNvbXBpbGVyLgotPGxpPiB5YWNjIG9yIGJpc29uICh0byBjb21waWxlIHRoZSBTV0lHIHBhcnNlcikuICAKLTwvdWw+Ci0KLTxwPgotRm9yIFdpbmRvd3MgdXNlcnMsIGl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIENWUyByZXBvc2l0b3J5IGRvZXMgbm90Ci1pbmNsdWRlIHRoZSBDKysgY29kZSBnZW5lcmF0ZWQgYnkgeWFjYyAodGhpcyBjb2RlIGlzIGluY2x1ZGVkIGluIHRoZSBub3JtYWwKLXJlbGVhc2UgaG93ZXZlcikgb3IgdGhlIHNjcmlwdHMgcHJvZHVjZWQgYnkgYXV0b2NvbmYuIFRodXMsIHlvdSB3aWxsIGhhdmUKLXRvIGluc3RhbGwgdGhlc2UgdG9vbHMgb24geW91ciBtYWNoaW5lIHRvIHdvcmsgd2l0aCBldmVyeXRoaW5nLgotCi08aDM+RGV2ZWxvcGVyIEFjY2VzczwvaDM+Ci0KLVdlIGFyZSBhbHdheXMgbG9va2luZyBmb3IgcGVvcGxlIHRvIGhlbHAgb3V0IHdpdGggdmFyaW91cyBwcm9qZWN0cy4gCi0KLTx1bD4KLTxsaT4gU2VuZCBlbWFpbCB0byA8YSBocmVmPSJtYWlsdG86YmVhemxleUBjcy51Y2hpY2Fnby5lZHUiPmJlYXpsZXlAY3MudWNoaWNhZ28uZWR1PC9hPgotaWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGRvaW5nIGRldmVsb3BlciB3b3JrIGFuZCBnYWluaW5nIHdyaXRlIGFjY2VzcyB0byB0aGUgQ1ZTIHJlcG9zaXRvcnkuCi0KLTxwPgotPGxpPkEgZGV2ZWxvcGVyIG1haWxpbmcgbGlzdCBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj0ibWFpbHRvOnN3aWctZGV2QGNzLnVjaGljYWdvLmVkdSI+c3dpZy1kZXZAY3MudWNoaWNhZ28uZWR1PC9hPiB0byBkaXNjdXNzIGNvZGluZyBpc3N1ZXMsIGJ1Z3MsIHBhdGNoZXMsIGFuZCBzbyBmb3J0aC4gIEFyY2hpdmVzIG9mIHJlY2VudAotYWN0aXZpdHkgY2FuIGJlIGZvdW5kIDxhIGhyZWY9Imh0dHA6Ly9tYWlsbWFuLmNzLnVjaGljYWdvLmVkdS9tYWlsbWFuL2xpc3RpbmZvL3N3aWctZGV2Ij5oZXJlPC9hPi4KLTwvdWw+Ci0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9kZWZhdWx0LmNvcm5lciBiL3N3aWd3ZWIvZGVmYXVsdC5jb3JuZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2NmMyMzAuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9kZWZhdWx0LmNvcm5lcgorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPGNlbnRlcj4KLTxpbWcgc3JjPSJpbWFnZXMvc3dpZzE3LnBuZyI+Ci08L2NlbnRlcj4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvZGVmYXVsdC5mb290ZXIgYi9zd2lnd2ViL2RlZmF1bHQuZm9vdGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTA5MzEwLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvZGVmYXVsdC5mb290ZXIKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxocj4KLUZlZWRiYWNrIGFuZCBxdWVzdGlvbnMgY29uY2VybmluZyB0aGlzIHNpdGUgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIDxhIGhyZWY9Im1haWx0bzpiZWF6bGV5QGNzLnVjaGljYWdvLmVkdSI+YmVhemxleUBjcy51Y2hpY2Fnby5lZHU8L2E+LgotCi08cD4KLUxhc3QgbW9kaWZpZWQgOiAkbXRpbWUKLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9kZWZhdWx0Lmh0bWwgYi9zd2lnd2ViL2RlZmF1bHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5NGE3Mi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2RlZmF1bHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTxodG1sPgotPHRpdGxlPiR0aXRsZTwvdGl0bGU+Ci08Ym9keSAgYmdjb2xvcj0iI2ZmZmZmZiIgbGluaz0iIzAwMDBmZiIgdmxpbms9IiM4MDAwZmYiPgotCi08dGFibGUgd2lkdGg9NzgwIGJvcmRlcj0wIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4KLTx0cj4KLSAgPHRkIHZhbGlnbj10b3AgYmdjb2xvcj0iIzAwMDAwMCI+Ci0gICAgICA8dGFibGUgd2lkdGg9MTgwIHZhbGlnbj10b3AgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wPgotICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgIDx0ZD4KLSRjb3JuZXIKLSAgICAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICA8L3RyPgotICAgICAgPC90YWJsZT4KLSAgIDwvdGQ+Ci0gICA8dGQgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZTBlMGUwIj4KLSAgICAgICA8dGFibGUgd2lkdGg9NjAwIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MD4KLSAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgPHRkIHZhbGlnbj1jZW50ZXI+Ci0kdG9wCi0gICAgICAgICAgICAgPC90ZD4KLSAgICAgICAgICA8L3RyPgotICAgICAgIDwvdGFibGU+Ci0gICA8L3RkPgotPC90cj4KLTx0cj4KLSAgIDx0ZCB2YWxpZ249dG9wIGJnY29sb3I9IiNlMGUwZTAiPgotICAgICAgIDx0YWJsZSB3aWR0aD0xODAgdmFsaWduPXRvcD4KLSAgICAgICAgICAgPHRyPgotICAgICAgICAgICAgICAgPHRkPgotJHNpZGUKLSAgICAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICAgIDwvdHI+Ci0gICAgICAgPC90YWJsZT4KLSAgIDwvdGQ+Ci0gICA8dGQgdmFsaWduPXRvcD4KLSAgICAgICA8dGFibGUgd2lkdGg9NjAwIHZhbGlnbj10b3A+Ci0gICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgPHRkPgotJGJvZHkKLQotJGZvb3RlcgotICAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICAgPC90cj4KLSAgICAgICA8L3RhYmxlPgotICAgPC90ZD4KLTwvdHI+Ci08L3RhYmxlPgotCi08L2JvZHk+Ci08L2h0bWw+Ci0gCi0KLQotCi0KLQotCi0KLQotCmRpZmYgLS1naXQgYS9zd2lnd2ViL2RlZmF1bHQuc2lkZSBiL3N3aWd3ZWIvZGVmYXVsdC5zaWRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmZlYTI1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvZGVmYXVsdC5zaWRlCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPHRhYmxlIHdpZHRoPSIxMDAlIj4KLTx0cj4KLTx0ZCBiZ2NvbG9yPSIjMDAwMDAwIiBhbGlnbj1jZW50ZXI+PGZvbnQgY29sb3I9IiNmZmZmZmYiPjxiPkluZm9ybWF0aW9uPC9iPjwvZm9udD48L3RkPgotPC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iZXhlYy5odG1sIj5XaGF0IGlzIFNXSUc/PC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iY29tcGF0Lmh0bWwiPkNvbXBhdGliaWxpdHk8L2E+PC90ZD48L3RyPgotPHRyPjx0ZD48YSBocmVmPSJ0dXRvcmlhbC5odG1sIj5UdXRvcmlhbDwvYT48L3RkPjwvdHI+Ci08dHI+PHRkPjxhIGhyZWY9ImRvYy5odG1sIj5Eb2N1bWVudGF0aW9uPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iY3ZzLmh0bWwiPlRoZSBCbGVlZGluZyBFZGdlPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iaGlzdG9yeS5odG1sIj5IaXN0b3J5PC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0ic3VidmVyc2lvbi5odG1sIj5TdWJ2ZXJzaW9uPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iZ3VpbHR5Lmh0bWwiPkd1aWx0eSBQYXJ0aWVzPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iY29weXJpZ2h0Lmh0bWwiPkxlZ2FsIERlcGFydG1lbnQ8L2E+PC90ZD48L3RyPgotPHRyPjx0ZD48YSBocmVmPSJsaW5rcy5odG1sIj5MaW5rczwvYT48L3RkPjwvdHI+Ci0KLTx0cj48dGQgYmdjb2xvcj0iIzAwMDAwMCIgYWxpZ249Y2VudGVyPjxmb250IGNvbG9yPSIjZmZmZmZmIj48Yj5FeGl0czwvYj48L2ZvbnQ+PC90ZD48L3RyPgotPHRyPjx0ZD48YSBocmVmPSJodHRwOi8vd3d3LnBlcmwuY29tIj5QZXJsPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5weXRob24ub3JnIj5QeXRob248L2E+PC90ZD48L3RyPgotPHRyPjx0ZD48YSBocmVmPSJodHRwOi8vd3d3LmFqdWJhc29sdXRpb25zLmNvbSI+VGNsL1RrPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2d1aWxlL2d1aWxlLmh0bWwiPkd1aWxlPC9hPjwvdGQ+PC90cj4KLTx0cj48dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5ydWJ5LWxhbmcub3JnIj5SdWJ5PC9hPjwvdGQ+PC90cj4KLQotPHRyPjx0ZCBiZ2NvbG9yPSIjMDAwMDAwIiBhbGlnbj1jZW50ZXI+PGZvbnQgY29sb3I9IiNmZmZmZmYiPjxiPk91ciBHZW5lcm91cyBIb3N0PC9iPjwvZm9udD48L3RkPjwvdHI+Ci08dHI+PHRkIGFsaWduPWNlbnRlcj48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0Ij48SU1HIHNyYz0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9pbWFnZXMvc2Zsb2dvMi1zdGVlbC5wbmciIHZzcGFjZT0iMCIgYm9yZGVyPTA+PC9BPjwvdGQ+PC90cj4KLTwvdGFibGU+Ci0KLQotCi0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9kZWZhdWx0LnRvcCBiL3N3aWd3ZWIvZGVmYXVsdC50b3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxOTU3MzguLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9kZWZhdWx0LnRvcAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPHRhYmxlIHdpZHRoPSIxMDAlIiBoZWlnaHQ9NTAgY2VsbHBhZGRpbmc9MCBib3JkZXI9MD4KLTx0cj4KLTx0ZD48YSBocmVmPSJpbmRleC5odG1sIj5Ib21lPC9hPjwvdGQ+Ci08dGQ+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0Lz9ncm91cF9pZD0xNjQ1Ij5EZXZlbG9wbWVudDwvYT48L3RkPgotPHRkPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudWNoaWNhZ28uZWR1L21haWxtYW4vbGlzdGluZm8vc3dpZyI+TWFpbGluZyBMaXN0PC9hPjwvdGQ+Ci08dGQ+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9idWdzLz9ncm91cF9pZD0xNjQ1Ij5CdWcgdHJhY2tpbmc8L2E+PC90ZD4KLTx0ZD48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3BhdGNoLz9ncm91cF9pZD0xNjQ1Ij5QYXRjaGVzPC9hPjwvdGQ+Ci08L3RyPgotPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvZG9jLmh0IGIvc3dpZ3dlYi9kb2MuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3ZGY4YTQuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9kb2MuaHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotU1dJRyBEb2N1bWVudGF0aW9uLCBQcmVzZW50YXRpb25zLCBhbmQgUGFwZXJzCi0KLTxwPjxpbWcgc3JjPSJpbWFnZXMvZG9jLnBuZyI+Ci0KLTxwPgotPHVsPgotPGxpPiA8YSBocmVmPSJEb2MxLjEvSFRNTC9Db250ZW50cy5odG1sIj5PbmxpbmUgVXNlcnMgTWFudWFsPC9hPi4KLTxwPgotPGxpPiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIDxhIGhyZWY9IkRvYzEuMS9QREYvU1dJR01hbnVhbC5wZGYiPlVzZXIgTWFudWFsPC9hPiAoMzE4IHBhZ2VzLCBBZG9iZSBQREYpLgotPHVsPgotPGxpPiA8YSBocmVmPSJEb2MxLjEvUERGL1ByZWZhY2UucGRmIj5QcmVmYWNlPC9hPiAoUERGKQotPGxpPiA8YSBocmVmPSJEb2MxLjEvUERGL0ludHJvZHVjdGlvbi5wZGYiPkludHJvZHVjdGlvbjwvYT4gKFBERikKLTxsaT4gPGEgaHJlZj0iRG9jMS4xL1BERi9TY3JpcHRpbmcucGRmIj5TY3JpcHRpbmcgbGFuZ3VhZ2VzPC9hPiAoUERGKQotPGxpPiA8YSBocmVmPSJEb2MxLjEvUERGL1NXSUcucGRmIj5TV0lHIEJhc2ljczwvYT4gKFBERikKLTxsaT4gPGEgaHJlZj0iRG9jMS4xL1BERi9MaWJyYXJ5LnBkZiI+TXVsdGlwbGUgZmlsZXMgYW5kIHRoZSBTV0lHIGxpYnJhcnk8L2E+IChQREYpCi08bGk+IDxhIGhyZWY9IkRvYzEuMS9QREYvRG9jdW1lbnRhdGlvbi5wZGYiPkRvY3VtZW50YXRpb24gc3lzdGVtLjwvYT4gKFBERikKLTxsaT4gPGEgaHJlZj0iRG9jMS4xL1BERi9UeXBlbWFwcy5wZGYiPlBvaW50ZXJzLCBjb25zdHJhaW50cywgYW5kIHR5cGVtYXBzPC9hPiAoUERGKQotPGxpPiA8YSBocmVmPSJEb2MxLjEvUERGL0V4Y2VwdGlvbnMucGRmIj5FeGNlcHRpb24gaGFuZGxpbmc8L2E+IChQREYpCi08bGk+IDxhIGhyZWY9IkRvYzEuMS9QREYvUGVybDUucGRmIj5QZXJsIDU8L2E+IChQREYpCi08bGk+IDxhIGhyZWY9IkRvYzEuMS9QREYvUHl0aG9uLnBkZiI+UHl0aG9uPC9hPiAoUERGKQotPGxpPiA8YSBocmVmPSJEb2MxLjEvUERGL1RjbC5wZGYiPlRjbDwvYT4gKFBERikKLTxsaT4gPGEgaHJlZj0iRG9jMS4xL1BERi9BZHZhbmNlZC5wZGYiPkFkdmFuY2VkIHRvcGljczwvYT4gKFBERikKLTxsaT4gPGEgaHJlZj0iRG9jMS4xL1BERi9FeHRlbmRpbmcucGRmIj5FeHRlbmRpbmcgU1dJRzwvYT4gKFBERikKLTwvdWw+Ci0KLTxwPgotPGxpPiBTV0lHIDxhIGhyZWY9IkRvYzEuMS9QREYvUmVmZXJlbmNlLnBkZiI+UmVmZXJlbmNlIE1hbnVhbDwvYT4gKFBERikuCi08cD4KLTxsaT4gUG9zdHNjcmlwdCB2ZXJzaW9ucyBvZiB0aGUgZG9jdW1lbnRhdGlvbiBhcmUgYXZhaWxhYmxlIG9uIHRoZSBTV0lHCi08YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViIj5GVFA8L2E+IHNpdGUuCi08L3VsPgotCi08aDM+IE9ubGluZSBQYXBlcnMgYWJvdXQgU1dJRyA8L2gzPgotCi08dWw+Ci08bGk+IDxiPjxhIGhyZWY9InBhcGVycy9QZXJsOTgvc3dpZ3BlcmwuaHRtIj5QZXJsIEV4dGVuc2lvbiBCdWlsZGluZyB3aXRoIFNXSUc8L2E+PC9iPi4KLVRoaXMgcGFwZXIsIHByZXNlbnRlZCBhdCB0aGUgMTk5OCBPJ1JlaWxseSBQZXJsIENvbmZlcmVuY2UsIGRlc2NyaWJlcyB0aGUgdXNlCi1vZiBTV0lHIHdpdGggUGVybDUgYW5kIGNvdmVycyBtYW55IGFkdmFuY2VkIHRvcGljcy4KLVsgPGEgaHJlZj0icGFwZXJzL1Blcmw5OC9zd2lncGVybC5wZGYiPlBERjwvYT4gXS4gPGJyPgotCi08cD4KLTxsaT4gPGI+PGEgaHJlZj0icGFwZXJzL1RjbDk4L1RjbENoYXAuaHRtbCI+VGNsIGFuZCBTV0lHIGFzIGEgQy9DKysgRGV2ZWxvcG1lbnQgVG9vbDwvYT48L2I+LgotT3JpZ2luYWxseSB3cml0dGVuIGFzIGEgZHJhZnQgZm9yIGEgYm9vayBjaGFwdGVyLCB0aGlzIHBhcGVyIHByb3ZpZGVzIGFuIG92ZXJ2aWV3IG9mCi11c2luZyBUY2wgYW5kIFNXSUcuIEl0IGFsc28gYXBwZWFycyBvbiB0aGUgQ0QtUk9NIGFjY29tcGFueWluZyAiVGNsL1RrIGZvciBSZWFsIFByb2dyYW1tZXJzIgotYnkgQ2xpZiBGbHludC48YnI+Ci0KLTxwPgotPGxpPiA8Yj48YSBocmVmPSJwYXBlcnMvVGNsOTYvdGNsOTYuaHRtbCI+U1dJRyA6IEFuIEVhc3kgdG8gVXNlIFRvb2wgZm9yIEludGVncmF0aW5nIFNjcmlwdGluZyBMYW5ndWFnZXMgd2l0aCBDIGFuZCBDKys8L2E+PC9iPi4KLVdoaWxlIGEgbGl0dGxlIGRhdGVkLCB0aGlzIGlzIHRoZSBmaXJzdCBTV0lHIHBhcGVyLiBQcmVzZW50ZWQgYXQKLXRoZSA0dGggVGNsL1RrIFdvcmtzaG9wLCBNb250ZXJleSwgQ2FsaWZvcm5pYSwgSnVseSA2LTEwLCAxOTk2LiAgIEFsc28gYXZhaWxhYmxlCi1mcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cudXNlbml4Lm9yZy9wdWJsaWNhdGlvbnMvbGlicmFyeS9wcm9jZWVkaW5ncy90Y2w5Ni9iZWF6bGV5Lmh0bWwiPlVTRU5JWDwvYT4uIDxicj4KLQotPHA+Ci08bGk+IDxiPjxhIGhyZWY9InBhcGVycy9QeTk2L3B5dGhvbjk2Lmh0bWwiPlVzaW5nIFNXSUcgdG8gQ29udHJvbCwgUHJvdG90eXBlLCBhbmQgRGVidWcKLUMgUHJvZ3JhbXMgd2l0aCBQeXRob248L2E+PC9iPi4gIFByZXNlbnRlZCBhdCB0aGUgNHRoIEludGVybmF0aW9uYWwgUHl0aG9uIENvbmZlcmVuY2UsCi1MaXZlcm1vcmUsIENhbGlmb3JuaWEsIEp1bmUsIDE5OTYuICA8YnI+Ci0KLTxwPgotPGxpPiA8Yj48YSBocmVmPSJwYXBlcnMvUHk5Ny9iZWF6bGV5Lmh0bWwiPkZlZWRpbmcgYSBMYXJnZS1zY2FsZSBQaHlzaWNzIEFwcGxpY2F0aW9uIHRvIFB5dGhvbjwvYT48L2I+LiAgUHJlc2VudGVkIGF0IHRoZSA2dGggSW50ZXJuYXRpb25hbCBQeXRob24gQ29uZmVyZW5jZSwgU2FuIEpvc2UsIENhbGlmb3JuaWEuIAotT2N0b2JlciAxNC0xNywgMTk5Ny4gICBUaGlzIHBhcGVyIGRlc2NyaWJlcyB0aGUgdXNlIG9mIFB5dGhvbi9TV0lHIHdpdGggYSBoaWdoLXBlcmZvcm1hbmNlCi1waHlzaWNzIGFwcGxpY2F0aW9uLiAgVGhpcyBhcHBsaWNhdGlvbiB3YXMgYSBydW5uZXItdXAgaW4gdGhlIDE5OTgKLUdvcmRvbi1CZWxsIHByaXplIGZvciBhY2hpZXZpbmcgMTAgR2Zsb3BzIHN1c3RhaW5lZCBwZXJmb3JtYW5jZSBvbiB0aGUgCi08YSBocmVmPSJodHRwOi8vbG9raS13d3cubGFubC5nb3YvcGFwZXJzL3NjOTgvIj5BdmFsb248L2E+IExpbnV4Ci1DbHVzdGVyIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeS4gPGJyPgotCi08cD4KLTwvdWw+Ci0KLTxoMz4gVHV0b3JpYWxzIGFib3V0IFNXSUcgPC9oMz4KLQotPHVsPgotPGxpPiA8Yj48YSBocmVmPSJwYXBlcnMvUHlUdXRvcmlhbDk4L1B5VHV0b3JpYWw5OC5wZGYiPkludGVyZmFjaW5nIEMvQysrIGFuZCBQeXRob24gd2l0aCBTV0lHPC9hPjwvYj4gKFBERikuCi1IYWxmLWRheSB0dXRvcmlhbCBwcmVzZW50ZWQgYXQgdGhlIDd0aCBJbnRlcm5hdGlvbmFsIFB5dGhvbiBDb25mZXJlbmNlLCBOb3ZlbWJlciwgMTk5OC4gPGJyPgotCi08cD4KLTxsaT4gPGI+PGEgaHJlZj0icGFwZXJzL1B5VHV0b3JpYWw5Ny9QeVR1dG9yaWFsOTcucGRmIj5JbnRlcmZhY2luZyBDL0MrKyBhbmQgUHl0aG9uIHdpdGggU1dJRzwvYT48L2I+IChQREYpLgotSGFsZi1kYXkgdHV0b3JpYWwgcHJlc2VudGVkIGF0IHRoZSA2dGggSW50ZXJuYXRpb25hbCBQeXRob24gQ29uZmVyZW5jZSwgT2N0b2JlciwgMTk5Ny4gPGJyPgotCi08cD4KLTxsaT4gPGI+PGEgaHJlZj0icGFwZXJzL1RjbFR1dG9yaWFsOTgvVGNsVHV0b3JpYWw5OC5wZGYiPlRjbCBFeHRlbnNpb24gQnVpbGRpbmcgd2l0aCBTV0lHPC9hPjwvYj4gKFBERikuICAgVHV0b3JpYWwgcHJlc2VudGVkIGF0IHRoZSAxOTk4IFRjbC9UayBDb25mZXJlbmNlLiA8L2JyPgotPC91bD4KLQotPGgzPiBPdGhlciBSZXNvdXJjZXMgPC9oMz4KLQotPHVsPgotPGxpPiBQZXJsIHVzZXJzIGNhbiBmaW5kIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgU1dJRyBpbiB0aGUgTydSZWlsbHkgYm9vayAKLTxhIGhyZWY9Imh0dHA6Ly93d3cub3JhLmNvbS9jYXRhbG9nL2FkdnBlcmwiPiJBZHZhbmNlZCBQZXJsIFByb2dyYW1taW5nIjwvYT4uIDxicj4KLQotPHA+Ci08bGk+IERhbmllbCBCbGV6ZWsgd3JvdGUgYW4gYXJ0aWNsZSBhYm91dCBTV0lHIGluIHRoZSBOb3ZlbWJlciwgMTk5OCBpc3N1ZQotb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuY3VqLmNvbS9hcmNoaXZlLzE2MTEvaW5kZXguaHRtbCI+Qy9DKysgVXNlcnMgSm91cm5hbDwvYT4uCi0KLTxwPgotPGxpPkFuIGFydGljbGUgYWJvdXQgU1dJRyBhcHBlYXJlZCBpbiB0aGUgRmVicnVhcnksIDE5OTggaXNzdWUgCi1vZiA8YSBocmVmPSJodHRwOi8vd3d3LmRkai5jb20vZGRqLzE5OTgvMTk5OF8wMi9pbmRleC5odG0iPkRyLiBEb2JiJ3MgSm91cm5hbDwvYT4gb24KLVNjcmlwdGluZyBhbmQgQWx0ZXJuYXRpdmUgTGFuZ3VhZ2VzLiA8YnI+Ci0KLTxwPgotPGxpPlNjb3R0IEJvbHRlIHdyb3RlIGFuIGFydGljbGUgYWJvdXQgU1dJRyBpbiB0aGUgV2ludGVyLCAxOTk3IGlzc3VlIG9mIAotPGEgaHJlZj0iaHR0cDovL3d3dy50cGouY29tIj5UaGUgUGVybCBKb3VybmFsPC9hPi4gPGJyPgotCi0KLTxwPgotPGxpPiBKb2huIE91c3RlcmhvdXQncyA8YSBocmVmPSJodHRwOi8vd3d3LnNjcmlwdGljcy5jb20vcGVvcGxlL2pvaG4ub3VzdGVyaG91dC9zY3JpcHRpbmcuaHRtbCI+Ci1wYXBlciA8L2E+IG9uIHNjcmlwdGluZyBsYW5ndWFnZXMgcHJvdmlkZXMgYSBnb29kICBvdmVydmlldwotb2YgdGhlIHVzZSBvZiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGFuZCB0aGVpciByZWxhdGlvbnNoaXAgdG8KLXN5c3RlbXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiAgU1dJRyB3YXMgZGV2ZWxvcGVkIHdpdGggbWFueSBvZiB0aGVzZSBpc3N1ZXMKLWluIG1pbmQgc28gdGhpcyBwYXBlciBtaWdodCBiZSBvZiBpbnRlcmVzdCB0byB1c2VycyB3aG8gYXJlIG5ldyB0bwotU1dJRyBhbmQgaXRzIGdvYWxzLiA8YnI+Ci0KLTxwPgotPGxpPiA8Yj48YSBocmVmPSJodHRwOi8vd3d3LnN1cGVyY29tcC5vcmcvc2M5Ni9wcm9jZWVkaW5ncy9TQzk2UFJPQy9CRUFaTEVZL0lOREVYLkhUTSI+IExpZ2h0d2VpZ2h0IENvbXB1dGF0aW9uYWwgU3RlZXJpbmcgb2YgVmVyeSBMYXJnZSBTY2FsZSBNb2xlY3VsYXIgRHluYW1pY3MgU2ltdWxhdGlvbnMgPC9hPjwvYj4uCi1QcmVzZW50ZWQgYXQgU3VwZXJjb21wdXRpbmcnOTYuICBUaGlzIHBhcGVyIGRlc2NyaWJlcyB0aGUgYXBwbGljYXRpb24gdGhhdCAKLW1vdGl2YXRlZCB0aGUgZGV2ZWxvcG1lbnQgb2YgU1dJRy4gKFNlZSB3aHkgU1dJRyB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQpLiA8YnI+IAotCi08L3VsPgotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9kb3dubG9hZC5odCBiL3N3aWd3ZWIvZG93bmxvYWQuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2MDA2YTYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9kb3dubG9hZC5odAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLURvd25sb2FkIFNXSUcKLTxwPgotPGltZyBzcmM9ImltYWdlcy9kb3dubG9hZC5wbmciIGFsdD0iRG93bmxvYWQiPgotCi08cD4KLVNvdXJlZm9yZ2UgaXMgbm93IHRoZSBwcmltYXJ5IHNpdGUgZm9yIFNXSUcgZGlzdHJpYnV0aW9ucy4KLQotPHVsPgotPExpPjxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9maWxlbGlzdC5waHA/Z3JvdXBfaWQ9MTY0NSI+QWxsIHJlbGVhc2VzPC9hPi4KLTxsaT48YSBocmVmPSJmdHA6Ly9zd2lnLnNvdXJjZWZvcmdlLm5ldC9wdWIvc3dpZy8iPk9sZGVyIHN0dWZmPC9hPi4KLTwvdWw+Ci0KLTxwPgotU1dJRyBoYXMgYWxzbyBiZWVuIGRpc3RyaWJ1dGVkIGFzIHNvdXJjZSBjb2RlIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6Ci0KLTx1bD4KLTxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLm1jYy5hYy51ay9wdWIvbXZjL3N3aWciPmZ0cC5tY2MuYWMudWsvcHViL212Yy9zd2lnPC9hPiAoVUspCi08bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5yZ2UuY29tL3B1Yi9sYW5ndWFnZXMvc3dpZy8iPmZ0cC5yZ2UuY29tL3B1Yi9sYW5ndWFnZXMvc3dpZzwvYT4gKE5ldyBZb3JrKS4KLTxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnB5dGhvbi5vcmcvcHViL3B5dGhvbi9jb250cmliL1N5c3RlbS8iPmZ0cC5weXRob24ub3JnL3B1Yi9weXRob24vY29udHJpYi9TeXN0ZW08L2E+IChQeXRob24gY29udHJpYnV0ZWQgc29mdHdhcmUpLgotPGxpPiA8YSBocmVmPSJodHRwOi8vd3d3LnBlcmwuY29tL0NQQU4vL2F1dGhvcnMvRGF2ZV9CZWF6bGV5Ij5DUEFOIChDb21wcmVoZW5zaXZlIFBlcmwgQXJjaGl2ZSBOZXR3b3JrKTwvYT4KLTwvdWw+Ci0KLVlvdSBjYW4gYWxzbyBmaW5kIFNXSUcgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnMgOgotCi08dWw+Ci08bGk+IDxhIGhyZWY9Imh0dHA6Ly9jZ2kuZGViaWFuLm9yZy93d3ctbWFzdGVyL2RlYmlhbi5vcmcvUGFja2FnZXMvc3RhYmxlL2ludGVycHJldGVycy9zd2lnLmh0bWwiPkRlYmlhbiBHTlUvTGludXg8L2E+LgotPGxpPiA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWVic2Qub3JnL3BvcnRzL2RldmVsLmh0bWwiPkZyZWVCU0Q8L2E+LgotPGxpPiA8YSBocmVmPSJodHRwOi8vd3d3Lm9yZWlsbHkuY29tL2NhdGFsb2cvcHl0aG9uL25vZnJhbWVzLmh0bWwiPlByb2dyYW1taW5nIFB5dGhvbjwvYT4gKEluY2x1ZGVkIG9uIENELVJPTSkuCi08bGk+IDxhIGhyZWY9Imh0dHA6Ly93d3cubWtwLmNvbS9ib29rc19jYXRhbG9nLzAtMTIyNjEtMjA1LTEuYXNwIj5UY2wvVGsgZm9yIFJlYWwgUHJvZ3JhbW1lcnM8L2E+IChJbmNsdWRlZCBvbiBDRC1ST00pLgotPC91bD4KLQotTm90ZSA6IElmIHlvdSByZWNlaXZlZCBTV0lHIG9uIENELVJPTSwgeW91IG1heSB3YW50IHRvIHVwZ3JhZGUgdG8gdGhlIGxhdGVzdCByZWxlYXNlLgotCi08aDM+IFRoZSBMYXRlc3QgUmVsZWFzZSA8L2gzPgotCi08Yj5Ob3RlICgxLzE4LzAwKSA8L2I+U1dJRzEuMXA1IGhhcyBhIG51bWJlciBvZiBjb21waWxhdGlvbiBpc3N1ZXMKLXdpdGggQU5TSSBDKysgY29tcGlsZXJzIGFuZCB3aWxsIHByb2JhYmx5IGdlbmVyYXRlIGEgbG90IG9mIGNvbXBpbGVyCi13YXJuaW5ncy4gIFNvcnJ5LgotCi08cD4KLTxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zb3VyY2Vmb3JnZS5uZXQvc3dpZy9zd2lnMS4zYTQudGFyLmd6Ij5TV0lHIDEuM2E0PC9hPgotaXMgdGhlIGxhdGVzdCBkZXZlbG9wbWVudCByZWxlYXNlICg5LzQvMDApLgotCi08cD4KLTxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zb3VyY2Vmb3JnZS5uZXQvc3dpZy9zd2lnMS4xcDUudGFyLmd6Ij5TV0lHIDEuMXA1PC9hPgotaXMgdGhlIGxhdGVzdCBzdGFibGUgcmVsZWFzZSAoMi81Lzk4KS4gCi0KLTxwPgotPGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLnNvdXJjZWZvcmdlLm5ldC9zd2lnL3N3aWcxLjEtODgzLnRhci5neiI+U1dJRzEuMS04ODM8L2E+IGlzIHRoZSBsYXN0IG1haW50ZW5hbmNlIHZlcnNpb24gb2YgU1dJRzEuMSAoMTIvOTkpLiAgVGhpcyBpc24ndCByZWFsbHkgYQotInJlbGVhc2UiLCBidXQgdGhlIGxhc3QgbmlnaHRseSBidWlsZCB0aGF0IHdhcyBjb21wbGV0ZWQgYmVmb3JlIAotZGV2ZWxvcG1lbnQgd29yayBzaGlmdGVkIHRvIFNXSUcxLjMuICBJdCBmaXhlcyBhIG51bWJlciBvZiBidWdzIGluCi1TV0lHMS4xcDUuCi0KLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9leGVjLmh0IGIvc3dpZ3dlYi9leGVjLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTFmYzJjLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvZXhlYy5odAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLUV4ZWN1dGl2ZSBTdW1tYXJ5Ci0KLTxwPgotPGltZyBzcmM9ImltYWdlcy9leGVjLnBuZyIgYWx0PSJFeGVjdXRpdmUgU3VtbWFyeSI+Ci0KLTxwPgotU1dJRyBpcyBhbiBpbnRlcmZhY2UgY29tcGlsZXIgdGhhdCBjb25uZWN0cyBwcm9ncmFtcyB3cml0dGVuIGluIEMsCi1DKyssIGFuZCBPYmplY3RpdmUtQyB3aXRoIHNjcmlwdGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nIDxhIGhyZWY9Imh0dHA6Ly93d3cucGVybC5vcmciPlBlcmw8L2E+LAotPGEgaHJlZj0iaHR0cDovL3d3dy5weXRob24ub3JnIj5QeXRob248L2E+LCBhbmQgCi08YSBocmVmPSJodHRwOi8vd3d3LnNjcmlwdGljcy5jb20iPlRjbC9UazwvYT4uICBJdCB3b3JrcyBieSB0YWtpbmcgdGhlIGRlY2xhcmF0aW9ucyBjb21tb25seSBmb3VuZCBpbiBDL0MrKyBoZWFkZXIKLWZpbGVzIGFuZCB1c2luZyB0aGVtIHRvIGdlbmVyYXRlIHRoZSBnbHVlIGNvZGUgKHdyYXBwZXJzKSB0aGF0IHNjcmlwdGluZwotbGFuZ3VhZ2VzIG5lZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIEMvQysrIGNvZGUuCi0KLTxwPgotSm9obiBPdXN0ZXJob3V0IGhhcyB3cml0dGVuIGEKLTxhIGhyZWY9Imh0dHA6Ly93d3cuc2NyaXB0aWNzLmNvbS9wZW9wbGUvam9obi5vdXN0ZXJob3V0L3NjcmlwdGluZy5odG1sIj5wYXBlcjwvYT4KLXRoYXQgZGVzY3JpYmVzIHRoZQotYmVuZWZpdHMgb2Ygc2NyaXB0aW5nIGxhbmd1YWdlcy4gICBTV0lHIG1ha2VzIGl0IGZhaXJseSBlYXN5IHRvIGNvbm5lY3Qgc2NyaXB0aW5nCi1sYW5ndWFnZXMgd2l0aCBDL0MrKyBjb2RlLgotCi08cD5Zb3UgbWlnaHQgdXNlIFNXSUcgaW4gYSBudW1iZXIgb2Ygd2F5czoKLQotPHVsPgotPGxpPjxiPkJ1aWxkaW5nIG1vcmUgcG93ZXJmdWwgQy9DKysgcHJvZ3JhbXM8L2I+LiAgIFVzaW5nIFNXSUcsIHlvdSBjYW4gcmVwbGFjZSB0aGUgbWFpbigpCi1mdW5jdGlvbiBvZiBhIEMgcHJvZ3JhbSB3aXRoIGEgc2NyaXB0aW5nIGludGVycHJldGVyIGZyb20gd2hpY2ggeW91IGNhbiBjb250cm9sIHlvdXIKLWFwcGxpY2F0aW9uLiAgVGhpcyBhZGRzIHF1aXRlIGEgbG90IG9mIGZsZXhpYmlsaXR5IGFuZCBtYWtlcyBpdCBlYXNpZXIgdG8gYnVpbGQKLWV4dGVuc2libGUgcHJvZ3JhbXMuIFdoZW4gY29tYmluZWQgd2l0aCBUaywgeW91IGNhbiBhbHNvIGJ1aWxkIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZXMuCi0KLTxwPgotPGxpPjxiPlJhcGlkIHByb3RvdHlwaW5nIGFuZCBkZWJ1Z2dpbmc8L2I+LiAgU1dJRyBhbGxvd3MgQy9DKysgcHJvZ3JhbXMgdG8gYmUgcGxhY2VkIGluCi1hIHNjcmlwdGluZyBlbnZpcm9ubWVudCB0aGF0IGNhbiBiZSB1c2VkIGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcuCi1Gb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHRlc3QgYSBsaWJyYXJ5IHdpdGggYSBjb2xsZWN0aW9uIG9mIHNjcmlwdHMgb3IgdXNlIHRoZSBzY3JpcHRpbmcKLWludGVycHJldGVyIGFzIGFuIGludGVyYWN0aXZlIGRlYnVnZ2VyLiAgIFNpbmNlIFNXSUcgcmVxdWlyZXMgbm8gbW9kaWZpY2F0aW9ucyB0byB0aGUKLXVuZGVybHlpbmcgQyBjb2RlLCBpdCBjYW4gYmUgdXNlZCBldmVuIGlmIHRoZSBmaW5hbCBwcm9kdWN0IGRvZXMgbm90IHJlbHkgdXBvbiBzY3JpcHRpbmcuCi0KLTxwPgotPGxpPjxiPlN5c3RlbXMgaW50ZWdyYXRpb248L2I+LiAgU2NyaXB0aW5nIGxhbmd1YWdlcyB3b3JrIGZhaXJseSB3ZWxsIGZvciBjb250cm9sbGluZyBhbmQgZ2x1aW5nCi1zb2Z0d2FyZSBjb21wb25lbnRzIHRvZ2V0aGVyLiAgV2l0aCBTV0lHLCBkaWZmZXJlbnQgQy9DKysgcHJvZ3JhbXMgY2FuIGJlIHR1cm5lZCBpbnRvCi1zY3JpcHRpbmcgbGFuZ3VhZ2UgZXh0ZW5zaW9uIG1vZHVsZXMuICAgVGhlc2UgbW9kdWxlcyBjYW4gdGhlbiBiZSBjb21iaW5lZCB0b2dldGhlcgotdG8gY3JlYXRlIG5ldyBhbmQgaW50ZXJlc3RpbmcgYXBwbGljYXRpb25zLgotCi08cD4KLTxsaT48Yj5Db25zdHJ1Y3Rpb24gb2Ygc2NyaXB0aW5nIGxhbmd1YWdlIGV4dGVuc2lvbiBtb2R1bGVzPC9iPi4gIFNXSUcgY2FuCi1iZSB1c2VkIHRvIHR1cm4gY29tbW9uIEMvQysrIGxpYnJhcmllcyBpbnRvIGNvbXBvbmVudHMgZm9yIHVzZSBpbgotcG9wdWxhciBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiAgIEhvd2V2ZXIsIGJlZm9yZSBkb2luZyB0aGlzLCB5b3UgbWlnaHQKLXdhbnQgdG8gZG8gYSBzZWFyY2ggdG8gc2VlIGlmIHNvbWVvbmUgZWxzZSBoYXMgYWxyZWFkeSBtYWRlIAotc3VjaCBhIG1vZHVsZS4KLTwvdWw+Ci0KLVNXSUcgaXMgc29tZXRpbWVzIGNvbXBhcmVkIHRvIGludGVyZmFjZSBkZWZpbml0aW9uIGxhbmd1YWdlIChJREwpCi1jb21waWxlcnMgc3VjaCBhcyB0aG9zZSB5b3Ugd291bGQgZmluZCB3aXRoIHN5c3RlbXMgc3VjaCBhcyBDT1JCQSBhbmQKLUNPTS4gIEFsdGhvdWdoIHRoZXJlIGFyZSBhIGZldyBzaW1pbGFyaXRpZXMsIHRoZSB3aG9sZSBwb2ludCBvZiBTV0lHCi1pcyB0byBtYWtlIGl0IHNvIHlvdSBkb24ndCBoYXZlIHRvIHNjcmV3IGFyb3VuZCB3aXRoIHRoYXQgc3R1ZmYuICBJZgotYW55dGhpbmcsIGl0J3MgbXVjaCBtb3JlIG9mIGEgcmFwaWQgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgYW5kCi1wcm90b3R5cGluZyB0b29sLiAgIFNwZWNpZmljYWxseToKLQotPHA+Ci08dWw+Ci08bGk+PGI+QU5TSSBDL0MrKyBzeW50YXg8L2I+LiAgU1dJRyBwYXJzZXMgYSBmb3JtIG9mIEFOU0kgQyAKLXN5bnRheCB0aGF0IGhhcyBiZWVuIGV4dGVuZGVkIHdpdGggYSBudW1iZXIgb2Ygc3BlY2lhbCBkaXJlY3RpdmVzLgotQXMgYSByZXN1bHQsIGludGVyZmFjZXMgYXJlIHVzdWFsbHkgYnVpbHQgYnkgZ3JhYmJpbmcgYSBoZWFkZXIgZmlsZQotYW5kIHR3ZWFraW5nIGl0IGEgbGl0dGxlIGJpdC4KLQotPHA+Ci08bGk+PGI+U1dJRyBpcyBub3QgYSBzdHViIGdlbmVyYXRvcjwvYj4uICBTV0lHIHByb2R1Y2VzIGNvZGUgdGhhdCB5b3UKLXNpbXBseSBjb21waWxlIGFuZCBydW4uICBZb3UgZG9uJ3QgaGF2ZSB0byBmaWxsIGluIGFueSBzdHVicyBvciB3cml0ZQotc3BlY2lhbCBjb2RlIGFzIHlvdSBkbyB3aXRoIFJQQy1saWtlIHN5c3RlbXMuCi0KLTxwPgotPGxpPjxiPlNXSUcgZG9lcyBub3QgZGVmaW5lIGEgcHJvdG9jb2wgbm9yIGlzIGl0IGEgY29tcG9uZW50Ci1mcmFtZXdvcmsuPC9iPiBTV0lHIGRvZXMgbm90IGRlZmluZSBtZWNoYW5pc21zIG9yIGVuZm9yY2UgcnVsZXMKLXJlZ2FyZGluZyB0aGUgd2F5IGluIHdoaWNoIHNvZnR3YXJlIGNvbXBvbmVudHMgYXJlIHN1cHBvc2VkIHRvCi1pbnRlcmFjdCB3aXRoIGVhY2ggb3RoZXIuICBBbGwgaXQgZG9lcyBpcyBwcm92aWRlIHRoZSBnbHVlIG5lZWRlZCB0bwotaG9vayBDIGNvZGUgdG8gb3RoZXIgbGFuZ3VhZ2VzLgotCi08cD4KLTxsaT48Yj5EZXNpZ25lZCB0byB3b3JrIHdpdGggZXhpc3RpbmcgQy9DKysgY29kZTwvYj4uICBTV0lHIHJlcXVpcmVzIGxpdHRsZSwgaWYgYW55LCBtb2RpZmljYXRpb25zCi10byBleGlzdGluZyBjb2RlLiAgRm9yIHRoZSBtb3N0IHBhcnQsIGl0IGVuY291cmFnZXMgeW91IHRvIGtlZXAgYSBjbGVhbiBzZXBhcmF0aW9uIGJldHdlZW4KLUMvQysrIGFuZCBpdHMgc2NyaXB0aW5nIGludGVyZmFjZS4KLQotPHA+Ci08bGk+PGI+RXh0ZW5zaWJpbGl0eTwvYj4uICBTV0lHIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBjdXN0b21pemF0aW9uIG9wdGlvbnMgdGhhdAotYWxsb3cgeW91IHRvIGJsb3cgeW91ciB3aG9sZSBsZWcgb2ZmLiAgU1dJRyBkb2VzIG5vdCBlbmZvcmNlIGFueSBydWxlcyByZWxhdGVkIHRvIHByb2dyYW1taW5nCi1tb3JhbGl0eS4KLTwvdWw+Ci0KLUEgbnVtYmVyIG9mIDxhIGhyZWY9ImRvYy5odG1sIj5wYXBlcnMgYW5kIHR1dG9yaWFsczwvYT4gZGVzY3JpYmluZyBTV0lHIGFyZSBhdmFpbGFibGUuCi1Zb3UgY2FuIGFsc28gdmlldyBhIHNpbXBsZSA8YSBocmVmPSJ0dXRvcmlhbC5odG1sIj50dXRvcmlhbDwvYT4gdG8gc2VlIGFuCi1leGFtcGxlIG9mIFNXSUcgaW4gYWN0aW9uLgotCi08cD4KLVNXSUcgaGFzIGJlZW4gZnJlZWx5IGF2YWlsYWJsZSBpbiB2YXJpb3VzIGZvcm1zIHNpbmNlIEZlYnJ1YXJ5LCAxOTk2Ci1hbmQgYSBsYXJnZSBudW1iZXIgb2YgZGV2ZWxvcGVycyBoYXZlIG1hZGUgY29udHJpYnV0aW9ucy4gIFRvZGF5LCBTV0lHCi1yZW1haW5zIGFuIGFsbC12b2x1bnRlZXIgZWZmb3J0LiAgQXBwcm94aW1hdGVseSA1NjAgcGVvcGxlIHN1YnNjcmliZQotdG8gdGhlIFNXSUcgbWFpbGluZyBsaXN0IChzd2lnQGNzLnVjaGljYWdvLmVkdSkgYW5kIGEgcHVibGljIENWUwotcmVwb3NpdG9yeSBpcyBhdmFpbGFibGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgQ2hpY2Fnby4gCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ZhcS5odCBiL3N3aWd3ZWIvZmFxLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTA5N2ZkLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvZmFxLmh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotU1dJRyBGQVEKLQotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL2ZhcS5wbmciPgotCi08cD4KLVRvIGRhdGUsIHRoZXJlIGhhcyBiZWVuIG5vIEZBUSBmb3IgU1dJRy4gICBBcyBhIHJlc3VsdCwgeW91IG1heSB3YW50IHRvIAotY2hlY2sgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6Ci0KLTx1bD4KLTxsaT5UaGUgPGEgaHJlZj0iZG9jLmh0bWwiPm9ubGluZSBkb2N1bWVudGF0aW9uPC9hPi4KLTxsaT5UaGUgPGEgaHJlZj0iYnVncy5odG1sIj5idWcgdHJhY2tpbmcgZGF0YWJhc2U8L2E+LgotPGxpPlRoZSA8YSBocmVmPSJtYWlsLmh0bWwiPk1haWxpbmcgbGlzdCBhcmNoaXZlPC9hPi4KLTwvdWw+Ci0KLUF0IHRoaXMgdGltZSwgSSBhbSBsb29raW5nIGludG8gdGhlIGNyZWF0aW9uIG9mIGEgRkFRLiAgSG93ZXZlciwgdGhpcyB3b3VsZCBiZQotbXVjaCBtdWNoIGVhc2llciBpZiB0aGVyZSB3ZXJlIGEgdm9sdW50ZWVyIHRvIGhlbHAuIApkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9mYXEubnQgYi9zd2lnd2ViL2ZhcS5udApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdlOGVmOC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ZhcS5udAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVNXSUcgRkFRCi0KLTxwPgotPGltZyBzcmM9ImltYWdlcy9mYXEuZ2lmIj4KLQotPHA+Ci1UbyBkYXRlLCB0aGVyZSBoYXMgYmVlbiBubyBGQVEgZm9yIFNXSUcuICAgQXMgYSByZXN1bHQsIHlvdSBtYXkgd2FudCB0byAKLWNoZWNrIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgotCi08dWw+Ci08bGk+VGhlIDxhIGhyZWY9ImRvYy5odG1sIj5vbmxpbmUgZG9jdW1lbnRhdGlvbjwvYT4uCi08bGk+VGhlIDxhIGhyZWY9ImJ1Z3MuaHRtbCI+YnVnIHRyYWNraW5nIGRhdGFiYXNlPC9hPi4KLTxsaT5UaGUgPGEgaHJlZj0ibWFpbC5odG1sIj5NYWlsaW5nIGxpc3QgYXJjaGl2ZTwvYT4uCi08L3VsPgotCi1BdCB0aGlzIHRpbWUsIEkgYW0gbG9va2luZyBpbnRvIHRoZSBjcmVhdGlvbiBvZiBhIEZBUS4gIEhvd2V2ZXIsIHRoaXMgd291bGQgYmUKLW11Y2ggbXVjaCBlYXNpZXIgaWYgdGhlcmUgd2VyZSBhIHZvbHVudGVlciB0byBoZWxwLiAKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvZ3VpbHR5Lmh0IGIvc3dpZ3dlYi9ndWlsdHkuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjZWE4YmUuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9ndWlsdHkuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1HdWlsdHkgUGFydGllcwotCi08cD48aW1nIHNyYz0iaW1hZ2VzL2d1aWx0eS5wbmciIGFsdD0iR3VpbHR5IFBhcnRpZXMiPgotCi08cD48Yj5UaGUgcHJpbWFyaWVzPC9iPgotCi08dWw+Ci08bGk+RGF2ZSBCZWF6bGV5LCAoYS5rLmEuLCAiTXIuIFN3aWciKQotPGxpPlRoaWVuLVRoaSBOZ3V5ZW4gKEd1aWxlKQotPGxpPk1hdHRoaWFzIEv2cHBlIChHdWlsZSkKLTxsaT5IYXJjbyBkZSBIaWxzdGVyIChKYXZhKQotPGxpPkxvaWMgRGFjaGFyeSAoUGVybCkKLTxsaT5PbGVnIFRvbG1hdGNldiAoTXpzY2hlbWUpCi08bGk+TWFzYWtpIEZ1a3VzaGltYSAoUnVieSkKLTwvdWw+Ci0KLTxwPjxiPkFpZGluZyBhbmQgQWJldHRpbmc8L2I+Ci08dWw+Ci08bGk+RWR3YXJkIFppbW1lcm1hbm4gKGZvciBETlMpCi08bGk+RGF2aWQgQXNjaGVyIChxdWFsaXR5IGNvbnRyb2wpLgotPGxpPkpvaG4gQnVja21hbiAob3JpZ2luYWwgcG9ydCB0byBOVCkuCi08bGk+S2V2aW4gQnV0bGVyIChmdXJ0aGVyIE5UIHN1cHBvcnQpLgotPGxpPkRvbWluaXF1ZSBEdW1vbnQgKFBlcmw1IG1vZHVsZSBkZWJ1Z2dpbmcpLgotPGxpPlBpZXIgR2lvcmdpbyBFc3Bvc2l0byAoQm9ybGFuZCBNYWtlZmlsZXMpLgotPGxpPkRhdmlkIEZsZXRjaGVyIChQZXJsNSBzaGFkb3cgY2xhc3MgZGVzaWduKS4KLTxsaT5HYXJ5IEhvbHQgKFBlcmw1IHNoYWRvdyBjbGFzcyBkZXNpZ24pCi08bGk+RHVzdGluIE1pdGNoZWxsLgotPGxpPklhbiBDb29rZS4KLTxsaT5IYXNhbiBCYXJhbiBLb3Z1ay4KLTwvdWw+Ci0KLTxwPjxiPkZyaWVuZHM8L2I+Ci08dWw+Ci08bGk+VGhlIEYgc3RyZWV0IGNyZXcKLTxsaT5QZXRlciBMb21kYWhsCi08bGk+Q2hyaXMgTXllcnMKLTxsaT5Kb2huIFNjaG1pZHQKLTxsaT5UaW0gR2VybWFubgotPGxpPlBhdWwgRHVib2lzCi08bGk+S3VydGlzIEJsZWVrZXIKLTxsaT5MYXJyeSBWaXJkZW4KLTxsaT5QZXRlci1QaWtlIFNsb2FuCi08bGk+UGF0cmljayBUdWxsbWFubgotPC91bD4KLQotQXBvbG9naWVzIHRvIGFueW9uZSBtaXNzZWQuLi4uCi0KLQotCmRpZmYgLS1naXQgYS9zd2lnd2ViL2hpc3RvcnkuaHQgYi9zd2lnd2ViL2hpc3RvcnkuaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNjRkM2QuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9oaXN0b3J5Lmh0CisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotU1dJRyBIaXN0b3J5Ci0KLTxwPgotPGltZyBzcmM9ImltYWdlcy9oaXN0b3J5LnBuZyIgYWx0PSJIaXN0b3J5Ij4KLQotPHA+Ci1KdXN0IHRoZSBmYWN0czoKLQotPHVsPgotPGxpPkp1bHksIDE5OTUuIFNXSUcgZGV2ZWxvcGVkIGluIHRoZSBUaGVvcmV0aWNhbCBQaHlzaWNzIERpdmlzaW9uIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwKLUxhYm9yYXRvcnkgYXMgYW4gZXh0ZW5zaW9uIGJ1aWxkaW5nIHRvb2wgZm9yIGEgbGFtZSBjdXN0b21pemVkIHNjcmlwdGluZyBsYW5ndWFnZQotdGhhdCBoYWQgYmVlbiBjcmVhdGVkIGZvciB0aGUgQ29ubmVjdGlvbiBNYWNoaW5lIDUuICAKLQotPGxpPkphbnVhcnksIDE5OTYuIFNXSUcgcmV3cml0dGVuIGluIEMrKyBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoIGFuZCBleHBhbmRlZCB0byBjb3ZlcgotVGNsLCBQZXJsLCBhbmQgR3VpbGUuCi0KLTxsaT5GZWJydWFyeSwgMTk5Ni4gRmlyc3QgYWxwaGEgcmVsZWFzZS4KLQotPGxpPlNlcHRlbWJlciwgMTk5Ni4gVmVyc2lvbiAxLjAgcmVsZWFzZWQuICBTdXBwb3J0IGZvciBQeXRob24gYWRkZWQuCi0KLTxsaT5TZXB0ZW1iZXIsIDE5OTcuIFZlcnNpb24gMS4xIHJlbGVhc2VkIHdpdGggYSB2YXJpZXR5IG9mIGltcHJvdmVtZW50cy4KLQotPGxpPkZlYnJ1YXJ5LCAxOTk4LiBTV0lHMS4xcDUgcmVsZWFzZWQuCi0KLTxsaT4xOTk3LTE5OTkuICBWYXJpb3VzIGF0dGVtcHRzIGFyZSBtYWRlIHRvIGNyZWF0ZSBTV0lHMi4wIHdpdGhvdXQgbXVjaCBzdWNjZXNzLgotTW9zdGx5IHRoaXMgaXMgZHVlIHRvIGFubm95aW5nIGRpc3RyYWN0aW9ucyBzdWNoIGFzIHdyaXRpbmcgZGlzc2VydGF0aW9ucywgc2VhcmNoaW5nIGZvciBqb2JzLCBhbmQgc28gZm9ydGguCi0KLTxsaT5KdWx5LCAxOTk4LiBTV0lHIGRldmVsb3BtZW50IG1vdmVzIHRvIHRoZSBVbml2ZXJzaXR5IG9mIENoaWNhZ28uCi0KLTxsaT5KYW51YXJ5IDEsIDIwMDAuICBEYXZlIHN1cnZpdmVzIGhpcyBtb3N0IHBsZWFzYW50IFkySyBmbGlnaHQgdG8gQ2hpY2FnbyBPJ0hhcmUuCi0KLTxsaT5GZWJydWFyeSAxMSwgMjAwMC4gU1dJRzEuMyBhbHBoYSByZWxlYXNlZC4gIAotPGxpPk1hcmNoIDEsIDIwMDAuIFNXSUcxLjNhMiByZWxlYXNlZC4KLTxsaT5KdW5lIDE4LCAyMDAwLiBTV0lHMS4zYTMgcmVsZWFzZWQuCi08bGk+U2VwdGVtYmVyIDQsIDIwMDAuIFNXSUcxLjNhNCByZWxlYXNlZC4KLQotPC91bD4KLQotPHA+Ci1DdXJyZW50bHkgU1dJRyBpcyBiZWluZyByZXdyaXR0ZW4gaW4gQU5TSSBDIGFuZCByZW9yZ2FuaXplZCBpbiBhbgotYXR0ZW1wdCB0byBzaW1wbGlmeSB0aGUgY29uc3RydWN0aW9uIG9mIGxhbmd1YWdlIG1vZHVsZXMgYW5kIHRvCi1pbXByb3ZlIHRoZSBxdWFsaXR5IG9mIHRoZSBjb2RlIHRoYXQgaXMgZ2VuZXJhdGVkLiAgIEFzIHRoaXMgaXMgb25seSBhIHBhcnQtdGltZSBwcm9qZWN0IGZvcgotanVzdCBhYm91dCBldmVyeW9uZSBpbnZvbHZlZCwgIHRoaXMgd29yayB3aWxsIGJlIGNvbXBsZXRlZCB3aGVuIGl0IGlzIGNvbXBsZXRlZCAoaS5lLiwgZG9uJ3QKLWhvbGQgeW91ciBicmVhdGgpLgotCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2JsZWVkLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2JsZWVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYyYTAxNS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9ibGVlZC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9idWdzLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2J1Z3MucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTZjMGZiLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2J1Z3MucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvYnVybmdpZnMucG5nIGIvc3dpZ3dlYi9pbWFnZXMvYnVybmdpZnMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmQ2MTY3Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2J1cm5naWZzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2NvZGVydW5zLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2NvZGVydW5zLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhNGQ4NC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9jb2RlcnVucy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9jb2Rld29ya3MucG5nIGIvc3dpZ3dlYi9pbWFnZXMvY29kZXdvcmtzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI5ZTlhYi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9jb2Rld29ya3MucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvY29tcGF0LnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2NvbXBhdC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjM2QxZmQuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvY29tcGF0LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2NvcHlyaWdodC5wbmcgYi9zd2lnd2ViL2ltYWdlcy9jb3B5cmlnaHQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzQzZjFjLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2NvcHlyaWdodC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9jdXJlLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2N1cmUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjhmMGE1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2N1cmUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvY3ZzLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL2N2cy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxMmIyMTIuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvY3ZzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2RvYy5wbmcgYi9zd2lnd2ViL2ltYWdlcy9kb2MucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzI3MzE1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2RvYy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9kb3dubG9hZC5wbmcgYi9zd2lnd2ViL2ltYWdlcy9kb3dubG9hZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NzJiNGIuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvZG93bmxvYWQucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvZXhlYy5wbmcgYi9zd2lnd2ViL2ltYWdlcy9leGVjLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZlMTZkYi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9leGVjLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2ZhcS5wbmcgYi9zd2lnd2ViL2ltYWdlcy9mYXEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTUyYjFmLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2ZhcS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9ndWlsdHkucG5nIGIvc3dpZ3dlYi9pbWFnZXMvZ3VpbHR5LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGRhMWU1Yi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9ndWlsdHkucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvaGlzdG9yeS5wbmcgYi9zd2lnd2ViL2ltYWdlcy9oaXN0b3J5LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk5ZjYxMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9oaXN0b3J5LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL2lzbC5wbmcgYi9zd2lnd2ViL2ltYWdlcy9pc2wucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOGZiODI1Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL2lzbC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9saW5rcy5wbmcgYi9zd2lnd2ViL2ltYWdlcy9saW5rcy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NWJjNjkuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvbGlua3MucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvbWFpbC5wbmcgYi9zd2lnd2ViL2ltYWdlcy9tYWlsLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTliN2I5OS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9tYWlsLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3Byb2plY3RzLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3Byb2plY3RzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJhYTdhOS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9wcm9qZWN0cy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9wcm9wYWdhbmRhLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3Byb3BhZ2FuZGEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTMxMjlkLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL3Byb3BhZ2FuZGEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvcmFudHMucG5nIGIvc3dpZ3dlYi9pbWFnZXMvcmFudHMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmViY2M0Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL3JhbnRzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3JhdmVzLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3JhdmVzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJhNjQ2MS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9yYXZlcy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9zY3JlZW4ucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc2NyZWVuLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZjN2E3Mi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zY3JlZW4ucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvc2NyZWVuc2hvdC5wbmcgYi9zd2lnd2ViL2ltYWdlcy9zY3JlZW5zaG90LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNlZTljNS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zY3JlZW5zaG90LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3N1YnZlcnNpb24ucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3VidmVyc2lvbi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMjQyY2QuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvc3VidmVyc2lvbi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTAucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3dpZzEwLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI2Y2IyZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvc3dpZzExLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxMS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4OThkMzYuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvc3dpZzExLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxMi5wbmcgYi9zd2lnd2ViL2ltYWdlcy9zd2lnMTIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjk3Yjc0Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTMucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3dpZzEzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ0OTA5OC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvc3dpZzE1LnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxNS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNmE0MjUuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbWFnZXMvc3dpZzE1LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxNi5wbmcgYi9zd2lnd2ViL2ltYWdlcy9zd2lnMTYucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2YzYWRjLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWcxNi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTcucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3dpZzE3LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAzODViZi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnMTcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvc3dpZzcucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3dpZzcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWE5N2JiLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWc3LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3N3aWc4LnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3N3aWc4LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTllNTAyMS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnOC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy9zd2lnZmlsZXMucG5nIGIvc3dpZ3dlYi9pbWFnZXMvc3dpZ2ZpbGVzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBiYWE1ZS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnZmlsZXMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbWFnZXMvc3dpZ29yZy5wbmcgYi9zd2lnd2ViL2ltYWdlcy9zd2lnb3JnLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTliNzkzMy4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy9zd2lnb3JnLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvaW1hZ2VzL3R1dG9yaWFsLnBuZyBiL3N3aWd3ZWIvaW1hZ2VzL3R1dG9yaWFsLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhjOTE1NS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy90dXRvcmlhbC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL2ltYWdlcy95MmsucG5nIGIvc3dpZ3dlYi9pbWFnZXMveTJrLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWFjMTUyMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2ltYWdlcy95MmsucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9pbmRleC5odCBiL3N3aWd3ZWIvaW5kZXguaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTcwNjUuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9pbmRleC5odAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLVNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcgotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL3N3aWcxMi5wbmciIGFsdD0iU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yIj4KLQotPHA+Ci1TV0lHIGlzIGEgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdG9vbCB0aGF0IGNvbm5lY3RzIHByb2dyYW1zIHdyaXR0ZW4gaW4KLUMsIEMrKywgYW5kIE9iamVjdGl2ZS1DIHdpdGggYSB2YXJpZXR5IG9mIGhpZ2gtbGV2ZWwgcHJvZ3JhbW1pbmcKLWxhbmd1YWdlcy4gIFNXSUcgaXMgcHJpbWFyaWx5IHVzZWQgd2l0aCBjb21tb24gc2NyaXB0aW5nIGxhbmd1YWdlcwotc3VjaCBhcyBQZXJsLCBQeXRob24sIFRjbC9UaywgUnVieSwgYW5kIEd1aWxlIGJ1dCBoYXMgYWxzbyBiZWVuIGV4dGVuZGVkIHRvCi1pbmNsdWRlIGxhbmd1YWdlcyBzdWNoIGFzIEphdmEgYW5kIEVpZmZlbC4gIFNXSUcgaXMgbW9zdAotY29tbW9ubHkgdXNlZCB0byBjcmVhdGUgaGlnaC1sZXZlbCBpbnRlcnByZXRlZCBwcm9ncmFtbWluZwotZW52aXJvbm1lbnRzIGFuZCBhcyBhIHRvb2wgZm9yIGJ1aWxkaW5nIHVzZXIgaW50ZXJmYWNlcy4gIFNXSUcgbWF5IGJlCi1mcmVlbHkgdXNlZCwgZGlzdHJpYnV0ZWQsIGFuZCBtb2RpZmllZCBmb3IgY29tbWVyY2lhbCBhbmQKLW5vbmNvbW1lcmNpYWwgdXNlLgotCi08dWw+Ci08bGk+IDxhIGhyZWY9ImRvd25sb2FkLmh0bWwiPkRvd25sb2FkPC9hPiB0aGUgbGF0ZXN0IHZlcnNpb24uCi08bGk+IDxhIGhyZWY9ImRvYy5odG1sIj5Eb2N1bWVudGF0aW9uLCBwYXBlcnMsIGFuZCBwcmVzZW50YXRpb25zPC9hPgotPGxpPiA8YSBocmVmPSJtYWlsLmh0bWwiPk1haWxpbmcgTGlzdDwvYT4KLTxsaT4gPGEgaHJlZj0iYnVncy5odG1sIj5CdWcgdHJhY2tpbmc8L2E+Ci08L3VsPgotCi08aDM+SW1wb3J0YW50IE5vdGljZTwvaDM+Ci0KLVNXSUcgaXMgY3VycmVudGx5IGluIGEgc3RhdGUgb2YgcmVkZXZlbG9wbWVudCBpbiB3aGljaCBpdCBpcyBiZWluZwotcmVpbXBsZW1lbnRlZCBpbiBBTlNJIEMuICBUaGlzIHdvcmsgY2FuIGJlIGZvdW5kIGluIHRoZSBTV0lHMS4zIHNlcmllcwotb2YgcmVsZWFzZXMuICBJZiB5b3UgYXJlIGNvbmNlcm5lZCBhYm91dCBzdGFiaWxpdHkgb3IgYXJlIGEgZmlyc3QtdGltZQotdXNlciwgeW91IG1heSB3YW50IHRvIGRvd25sb2FkIHNvbWUgdmFyaWFudCBvZiBTV0lHMS4xIGluc3RlYWQuCi1DYXZlYXQtLVNXSUcxLjEgbWF5IG5vdCBiZSBjb21wYXRpYmxlIHdpdGggcmVjZW50IHJlbGVhc2VzIG9mIGNlcnRhaW4KLXNjcmlwdGluZyBsYW5ndWFnZXMgc3VjaCBhcyBQZXJsIDUuNiBhbmQgR3VpbGUuICBOb3RlOiBUaGVzZSBjaGFuZ2VzCi1vbmx5IHBlcnRhaW4gdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIFNXSUcgKHRoZSBuZXcgdmVyc2lvbiBjb250aW51ZXMKLXRvIHN1cHBvcnQgQysrIHdyYXBwZXJzKS4KLQotPHA+Ci1TV0lHIGlzIGFuIGFsbCB2b2x1bnRlZXIgZWZmb3J0LiAgV2UgYXJlIGFsd2F5cyBsb29raW5nIGZvciBmZWFybGVzcyBwZW9wbGUgd2l0aCAKLWFuIGFidW5kYW5jZSBvZiBzcGFyZSB0aW1lLgotCi08cD4KLTxoMz5OZXdzPC9oMz4KLQotPHA+Ci0oOS80LzAwKSA8YQotaHJlZj0iaHR0cDovL2Rvd25sb2FkLnNvdXJjZWZvcmdlLm5ldC9zd2lnL3N3aWcxLjNhNC50YXIuZ3oiPlNXSUcxLjNhNDwvYT4KLWhhcyBiZWVuIHJlbGVhc2VkLiAgVGhpcyByZWxlYXNlIGhhcyB0b28gbWFueSBjaGFuZ2VzIHRvIGxpc3QgaGVyZSwKLWJ1dCBpdCBmaXhlcyBhIGxvdCBvZiBidWdzIGluIFNXSUcxLjNhMywgaW5jbHVkZXMgbmV3IGxhbmd1YWdlIG1vZHVsZXMKLWZvciBSdWJ5IGFuZCBNenNjaGVtZSwgYW5kIGhhcyBzb21lIG5ldyBleGFtcGxlcy4gIE5vdGU6IHRoaXMgaXMgYSBzb21ld2hhdAotdW5zdGFibGUgcmVsZWFzZSBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciBmaXJzdCB0aW1lIHVzZXJzLgotRG93bmxvYWQgPGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLnNvdXJjZWZvcmdlLm5ldC9zd2lnL3N3aWcxLjEtODgzLnRhci5neiI+U1dJRzEuMTwvYT4gaW5zdGVhZC4KLQotPHA+Ci0oNy8xMC8wMCkgQSB2ZXJzaW9uIG9mIFNXSUcxLjNhMyBjb21waWxlZCBmb3IgV2luZG93cyBOVCBoYXMgYmVlbiBjb250cmlidXRlZCBieQotS2xhdXMgV2llZGVy5G5kZXJzLiAgRG93bmxvYWQgPGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLnNvdXJjZWZvcmdlLm5ldC9zd2lnL1N3aWcxLjNhM05ULnppcCI+aGVyZTwvYT4uCi0KLTxwPgotKDcvMi8wMCkgQnVnIHRyYWNraW5nIGhhcyBiZWVuIG1vdmVkIHRvIFNvdXJjZUZvcmdlLiBQbGVhc2UgcGFyZG9uIG91ciBkdXN0LgotCi08cD4KLSg2LzE4LzAwKSA8YSBocmVmPSJodHRwOi8vZG93bmxvYWQuc291cmNlZm9yZ2UubmV0L3N3aWcvc3dpZzEuM2EzLnRhci5neiI+U1dJRzEuM2EzPC9hPiBoYXMgYmVlbiByZWxlYXNlZC4gVGhpcyBmaXhlcyBhIG51bWJlciBvZiBidWdzIGluIDEuM2EyIGFuZAotaW5jbHVkZXMgbW9yZSBjb2RlIGNsZWFudXAuIAotCi08cD4KLSgxMS8yNi85OSkgVGhlIDxhIGhyZWY9Imh0dHA6Ly9pc2xhYi5jcy51Y2hpY2Fnby5lZHUvcHl0aG9uIj5QeXRob24gRXNzZW50aWFsIFJlZmVyZW5jZTwvYT4gaGFzIGJlZW4gcmVsZWFzZWQuICBQbGVhc2Ugc3VwcG9ydCB0aGUgUFNBIGJ5IHB1cmNoYXNpbmcgdGhyb3VnaCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5weXRob24ub3JnL3BzYS9ib29rc3RvcmUiPlBTQSBib29rc3RvcmU8L2E+LgotCi08cD4KLTwvYmxvY2txdW90ZT4KLQotCi0KLQotCmRpZmYgLS1naXQgYS9zd2lnd2ViL2xpbmsudHh0IGIvc3dpZ3dlYi9saW5rLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTc1OTUwNi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL2xpbmsudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotI2luZGV4Lmh0IzooMy8xLzAwKSBTV0lHMS4zYTIgaGFzIGJlZW4gcmVsZWFzZWQhICBEb3dubG9hZCBub3cgZnJvbSA8YSBocmVmPSJodHRwOi8vZG93bmxvYWQuc291cmNlZm9yZ2UubmV0L3N3aWcvc3dpZzEuM2EyLnRhci5neiI+U291cmNlRm9yZ2U8L2E+LiAgTm90ZTogdGhpcyBpcyBhbiB1bnN0YWJsZSByZWxlYXNlIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIGZpcnN0LXRpbWUgdXNlcnMuICBEb3dubG9hZCA8YSBocmVmPSJmdHA6Ly93d3cuc3dpZy5vcmcvcHViL3N3aWcxLjFwNS50YXIuZ3oiPlNXSUcxLjFwNTwvYT4gaW5zdGVhZC4KLWRvYy5odDo8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViIj5GVFA8L2E+IHNpdGUuCi1kb2MuaHRtbDogPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1YiI+RlRQPC9hPiBzaXRlLgotZG93bmxvYWQuaHQ6PGxpPiA8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViIj5mdHAuc3dpZy5vcmcvcHViPC9hPiAoTWFzdGVyIHNpdGUpLiAKLWRvd25sb2FkLmh0OjxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZzEuMXA1LnRhci5neiI+U1dJRyAxLjFwNTwvYT4KLWRvd25sb2FkLmh0OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnMS4xcDUudGFyLmd6Ij5zd2lnMS4xcDUudGFyLmd6PC9hPi4gVGhlIGZ1bGwgZGlzdHJpYnV0aW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcy4KLWRvd25sb2FkLmh0OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnZG9jMS4xX3BkZi50YXIuZ3oiPnN3aWdkb2MxLjFfcGRmLnRhci5nejwvYT4uIFBERiBkb2N1bWVudGF0aW9uIChpbmNsdWRlZCBpbiB0aGUgZnVsbCBkaXN0cmlidXRpb24pLgotZG93bmxvYWQuaHQ6PGxpPiA8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViL3N3aWdkb2MxLjFfcHMudGFyLmd6Ij5zd2lnZG9jMS4xX3BzLnRhci5nejwvYT4uIFBvc3RzY3JpcHQgZG9jdW1lbnRhdGlvbi4KLWRvd25sb2FkLmh0OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9NYWNTV0lHMS4xcDIuc2VhLmhxeCI+TWFjU1dJRzEuMXAyLnNlYS5ocXg8L2E+LiBTV0lHIGZvciB0aGUgUG93ZXIgTWFjaW50b3NoIChleHBlcmltZW50YWwpLgotZG93bmxvYWQuaHRtbDogPGxpPiA8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViIj5mdHAuc3dpZy5vcmcvcHViPC9hPiAoTWFzdGVyIHNpdGUpLiAKLWRvd25sb2FkLmh0bWw6IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZzEuMXA1LnRhci5neiI+U1dJRyAxLjFwNTwvYT4KLWRvd25sb2FkLmh0bWw6IDxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnMS4xcDUudGFyLmd6Ij5zd2lnMS4xcDUudGFyLmd6PC9hPi4gVGhlIGZ1bGwgZGlzdHJpYnV0aW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcy4KLWRvd25sb2FkLmh0bWw6IDxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnZG9jMS4xX3BkZi50YXIuZ3oiPnN3aWdkb2MxLjFfcGRmLnRhci5nejwvYT4uIFBERiBkb2N1bWVudGF0aW9uIChpbmNsdWRlZCBpbiB0aGUgZnVsbCBkaXN0cmlidXRpb24pLgotZG93bmxvYWQuaHRtbDogPGxpPiA8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViL3N3aWdkb2MxLjFfcHMudGFyLmd6Ij5zd2lnZG9jMS4xX3BzLnRhci5nejwvYT4uIFBvc3RzY3JpcHQgZG9jdW1lbnRhdGlvbi4KLWRvd25sb2FkLmh0bWw6IDxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9NYWNTV0lHMS4xcDIuc2VhLmhxeCI+TWFjU1dJRzEuMXAyLnNlYS5ocXg8L2E+LiBTV0lHIGZvciB0aGUgUG93ZXIgTWFjaW50b3NoIChleHBlcmltZW50YWwpLgotZG93bmxvYWQuaHR+OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1YiI+ZnRwLnN3aWcub3JnL3B1YjwvYT4gKE1hc3RlciBzaXRlKS4gCi1kb3dubG9hZC5odH46PGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnMS4xcDUudGFyLmd6Ij5TV0lHIDEuMXA1PC9hPgotZG93bmxvYWQuaHR+OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnMS4xcDUudGFyLmd6Ij5zd2lnMS4xcDUudGFyLmd6PC9hPi4gVGhlIGZ1bGwgZGlzdHJpYnV0aW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlcy4KLWRvd25sb2FkLmh0fjo8bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZ2RvYzEuMV9wZGYudGFyLmd6Ij5zd2lnZG9jMS4xX3BkZi50YXIuZ3o8L2E+LiBQREYgZG9jdW1lbnRhdGlvbiAoaW5jbHVkZWQgaW4gdGhlIGZ1bGwgZGlzdHJpYnV0aW9uKS4KLWRvd25sb2FkLmh0fjo8bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZ2RvYzEuMV9wcy50YXIuZ3oiPnN3aWdkb2MxLjFfcHMudGFyLmd6PC9hPi4gUG9zdHNjcmlwdCBkb2N1bWVudGF0aW9uLgotZG93bmxvYWQuaHR+OjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9NYWNTV0lHMS4xcDIuc2VhLmhxeCI+TWFjU1dJRzEuMXAyLnNlYS5ocXg8L2E+LiBTV0lHIGZvciB0aGUgUG93ZXIgTWFjaW50b3NoIChleHBlcmltZW50YWwpLgotZmVlZGJhY2suaHRtOjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJyZWNpcGllbnQiIHZhbHVlPSJzd2lnQHN3aWcub3JnIj4KLWd1ZXN0Ym9vay5jZ2k6JGd1ZXN0Ym9va3VybCA9ICJodHRwOi8vc3dpZy5vcmcvZ3Vlc3Riay5odG0iOwotZ3Vlc3Rib29rLmNnaTokY2dpdXJsID0gImh0dHA6Ly9zd2lnLm9yZy9jZ2ktYmluL2d1ZXN0Ym9vay5jZ2kiOwotaW5kZXguaHR+OigzLzEvMDApIFNXSUcxLjNhMiBoYXMgYmVlbiByZWxlYXNlZCEgIERvd25sb2FkIG5vdyBmcm9tIDxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zb3VyY2Vmb3JnZS5uZXQvc3dpZy9zd2lnMS4zYTIudGFyLmd6Ij5Tb3VyY2VGb3JnZTwvYT4uICBOb3RlOiB0aGlzIGlzIGFuIHVuc3RhYmxlIHJlbGVhc2UgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgZmlyc3QtdGltZSB1c2Vycy4gIERvd25sb2FkIDxhIGhyZWY9ImZ0cDovL3d3dy5zd2lnLm9yZy9wdWIvc3dpZzEuMXA1LnRhci5neiI+U1dJRzEuMXA1PC9hPiBpbnN0ZWFkLgotaW5kZXgxLmh0bWw6PGI+PGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnMS4xcDUudGFyLmd6Ij5Eb3dubG9hZDwvYT4gU1dJRzEuMXA1IG5vdyE8L2I+Ci1pbmRleDEuaHRtbDo8IS0tIGhvc3QgLS0+ICB3d3cuc3dpZy5vcmcgaXMgZ2VuZXJvdXNseSBob3N0ZWQgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5wbnMuY2MiPlByb2Zlc3Npb25hbCBOZXQgU2VydmljZTwvYT4uIAotaW5kZXgyLmh0bWw6PCEtLSBob3N0IC0tPiAgd3d3LnN3aWcub3JnIGlzIGdlbmVyb3VzbHkgaG9zdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucG5zLmNjIj5Qcm9mZXNzaW9uYWwgTmV0IFNlcnZpY2U8L2E+LiAKLXNlYXJjaC5jZ2k6JGJhc2V1cmwgPSAnaHR0cDovL3N3aWcub3JnLyc7Ci1zZWFyY2guY2dpOiR0aXRsZSA9ICJzd2lnLm9yZyI7Ci1zZWFyY2guY2dpOiR0aXRsZV91cmwgPSAnaHR0cDovL3N3aWcub3JnLyc7Ci1zZWFyY2guY2dpOiRzZWFyY2hfdXJsID0gJ2h0dHA6Ly9zd2lnLm9yZy9zZWFyY2guaHRtJzsKLXNvdXJjZS5odG1sOjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1YiI+ZnRwLnN3aWcub3JnL3B1YjwvYT4gKE1hc3RlciBzaXRlKS4gCi1zb3VyY2UuaHRtbDo8YSBocmVmPSJmdHA6Ly9mdHAuc3dpZy5vcmcvcHViL3N3aWcxLjFwNS50YXIuZ3oiPlNXSUcgMS4xcDU8L2E+Ci1zb3VyY2UuaHRtbDo8bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZzEuMXA1LnRhci5neiI+c3dpZzEuMXA1LnRhci5nejwvYT4uIFRoZSBmdWxsIGRpc3RyaWJ1dGlvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMuCi1zb3VyY2UuaHRtbDo8bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvc3dpZ2RvYzEuMV9wZGYudGFyLmd6Ij5zd2lnZG9jMS4xX3BkZi50YXIuZ3o8L2E+LiBQREYgZG9jdW1lbnRhdGlvbiAoaW5jbHVkZWQgaW4gdGhlIGZ1bGwgZGlzdHJpYnV0aW9uKS4KLXNvdXJjZS5odG1sOjxsaT4gPGEgaHJlZj0iZnRwOi8vZnRwLnN3aWcub3JnL3B1Yi9zd2lnZG9jMS4xX3BzLnRhci5neiI+c3dpZ2RvYzEuMV9wcy50YXIuZ3o8L2E+LiBQb3N0c2NyaXB0IGRvY3VtZW50YXRpb24uCi1zb3VyY2UuaHRtbDo8bGk+IDxhIGhyZWY9ImZ0cDovL2Z0cC5zd2lnLm9yZy9wdWIvTWFjU1dJRzEuMXAyLnNlYS5ocXgiPk1hY1NXSUcxLjFwMi5zZWEuaHF4PC9hPi4gU1dJRyBmb3IgdGhlIFBvd2VyIE1hY2ludG9zaCAoZXhwZXJpbWVudGFsKS4KLXN3aWcuaHQ6PCEtLSBob3N0IC0tPiAgd3d3LnN3aWcub3JnIGlzIGdlbmVyb3VzbHkgaG9zdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucG5zLmNjIj5Qcm9mZXNzaW9uYWwgTmV0IFNlcnZpY2U8L2E+LiAKLXN3aWcuaHRtbDogPCEtLSBob3N0IC0tPiAgd3d3LnN3aWcub3JnIGlzIGdlbmVyb3VzbHkgaG9zdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93d3cucG5zLmNjIj5Qcm9mZXNzaW9uYWwgTmV0IFNlcnZpY2U8L2E+LiAKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvbGlua3MuaHQgYi9zd2lnd2ViL2xpbmtzLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWNjZjA3Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvbGlua3MuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi1TV0lHIFJlbGF0ZWQgTGlua3MKLQotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL2xpbmtzLnBuZyI+Ci0KLTxIMz4gTGFuZ3VhZ2UgcmVsYXRlZCBsaW5rcyA8L2gzPgotCi08dWw+Ci0KLVRoZSA8YSBocmVmPSJodHRwOi8vd3d3LnNjcmlwdGljcy5jb20iPiBUY2wvVGsgPC9hPiBob21lcGFnZSBhdCBTY3JpcHRpY3M8YnI+Ci1UaGUgPGEgaHJlZiA9Imh0dHA6Ly93d3cucHl0aG9uLm9yZyI+IFB5dGhvbiA8L2E+IGhvbWVwYWdlLiA8YnI+Ci08YSBocmVmPSJodHRwOi8vd3d3LnBlcmwub3JnIj4gVGhlIFBlcmwgSW5zdGl0dXRlPC9hPiA8YnI+Ci08YSBocmVmPSJodHRwOi8vcmVwdWJsaWMucGVybC5jb20iPiBUaGUgUHJvZ3JhbW1pbmcgUmVwdWJsaWMgb2YgUGVybDwvYT4uIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cucGVybC5jb20vQ1BBTi9DUEFOLmh0bWwiPiBDUEFOIChDb21wcmVoZW5zaXZlIFBlcmwgQXJjaGl2ZSBOZXR3b3JrKTwvYT4gPGJyPgotPGEgaHJlZj0iaHR0cDovL3N0YXJzaGlwLnB5dGhvbi5uZXQiPiBTdGFyc2hpcCBQeXRob248L2E+IDxicj4KLQotPGEgaHJlZj0iaHR0cDovL3d3dy5uZW9zb2Z0LmNvbS90Y2wvZGVmYXVsdC5odG1sIj4gVGNsL1RrIENvbnRyaWJ1dGVkIFNvdXJjZXMgQXJjaGl2ZSA8L2E+IDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cuc2NvLmNvbS9UZWNobm9sb2d5L3RjbC9UY2wuaHRtbCI+IFRjbC9UayBJbmZvcm1hdGlvbiA8L2E+IDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9ndWlsZS9ndWlsZS5odG1sIj5HdWlsZTwvYT4gaG9tZXBhZ2UuIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cucnVieS1sYW5nLm9yZy8iPlJ1Ynk8L2E+IGhvbWVwYWdlLiA8YnI+Ci08L3VsPgotCi08aDM+IENvZGUgZ2VuZXJhdG9ycyBhbmQgb3RoZXIgaW50ZXJlc3RpbmcgcGFja2FnZXM8L2gzPgotCi08dWw+Ci1UaGUgPGEgaHJlZj0iZnRwOi8vcGFyY2Z0cC5wYXJjLnhlcm94LmNvbS9wdWIvaWx1L2lsdS5odG1sIj4gSUxVIDwvYT4gaG9tZXBhZ2UgKFhlcm94IFBBUkMpIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cudW5pLWZyYW5rZnVydC5kZS9+ZnAvVG9vbHMvdGNsb2JqIj4gVGNsT2JqIDwvYT4gPC9icj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cuYW1hdGgud2FzaGluZ3Rvbi5lZHUvfmxmL3NvZnR3YXJlL3RjbCsrIj5Nb2R1bGFyIFRjbDwvYT48L2JyPgotPGEgaHJlZj0iaHR0cDovL2xuYy51c2MuZWR1L35ob2x0L21hdHdyYXAvIj5NYXR3cmFwPC9hPi4gQSB3cmFwcGVyCi1nZW5lcmF0b3IgZm9yIG1hdHJpeCBsYW5ndWFnZXMuIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cucml2ZXItYmFuay5kZW1vbi5jby51ay9zb2Z0d2FyZSI+U0lQPC9hPi4gQSB3cmFwcGVyIGdlbmVyYXRvcgotZm9yIGludGVncmF0aW5nIEMrKyBsaWJyYXJpZXMgd2l0aCBQeXRob24uIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly94ZmlsZXMubGxubC5nb3YvcHl0aG9uLmh0bSI+Q1hYPC9hPi4gQSBDKysgZnJpZW5kbHkgZXh0ZW5zaW9uIEFQSSBmb3IgUHl0aG9uLjxicj4KLTxhIGhyZWY9Imh0dHA6Ly94ZmlsZXMubGxubC5nb3YvcHl0aG9uLmh0bSI+cHlmb3J0PC9hPi4gQSB3cmFwcGVyIGdlbmVyYXRvciBmb3IgaW50ZXJmYWNpbmcgRm9ydHJhbiB3aXRoIFB5dGhvbi48YnI+Ci08YSBocmVmPSJodHRwOi8vd3d3LmFjbC5sYW5sLmdvdi9zaWxvb24iPlNJTE9PTjwvYT4uIEEgd3JhcHBlciBnZW5lcmF0aW9uIHRvb2wgCi13aXRoIHNvbWUgYW1iaXRpb3VzIGdvYWxzIGZvciBDKysuPGJyPgotPGEgaHJlZj0iaHR0cDovL3d3dzkuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGUvZW5nL3Jlc2VhcmNoL3JlbmRlcmluZy92aXNpb24vaXRjbC8iPkl0Y2wrKzwvYT4uIAotQSB3cmFwcGVyIGdlbmVyYXRvciBmb3IgaW50ZXJmYWNpbmcgQysrIHdpdGggW2luY3IgVGNsXS48YnI+Ci0KLTxhIGhyZWY9Imh0dHA6Ly93d3cuaGxsYS5pcy50c3VrdWJhLmFjLmpwL35jaGliYSI+T3BlbkMrKzwvYT4uICBBIHZlcnkgY29vbCBjb21waWxlciBwcm9qZWN0IHRoYXQgbGV0cyB5b3UgY3Jhd2wgaW5zaWRlIEMrKyBwYXJzZSB0cmVlcyBhbmQgbW9yZS4gPGJyPgotPGEgaHJlZj0iaHR0cDovL3d3dy5zdGFjay5ubC9+ZGltaXRyaS9kb3h5Z2VuIj5Eb3h5Z2VuPC9hPi4gR2VuZXJhdGUgZG9jdW1lbnRhdGlvbiBhbmQgbW9yZSBmb3IgQy9DKysgcHJvZ3JhbXMuPGJyPgotPGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35jaHJpc2xlZS9Tb2Z0d2FyZS9nLXdyYXAvIj5HLVdyYXA8L2E+LiBBIHdyYXBwZXIgZ2VuZXJhdG9yIGZvciBpbnRlcmZhY2luZyBDIGFuZCBTY2hlbWUgKGluY2x1ZGluZyBHdWlsZSkuPGJyPgotCi08YSBocmVmPSJodHRwOi8vY2Vucy5pb2MuZWUvcHJvamVjdHMvZjJweTJlIj5mMnB5PC9hPi4gQW4gaW50ZXJmYWNlIGdlbmVyYXRvciBmb3IgYmluZGluZyBGb3J0cmFuIGFuZCBQeXRob24uPGJyPgotCi08L3VsPgotCi08aDM+IE90aGVyIGludGVyZXN0aW5nIGxpbmtzPC9oMz4KLQotPHVsPgotCi1Kb2huIE91c3RlcmhvdXQncyA8YSBocmVmPSJodHRwOi8vd3d3LnNjcmlwdGljcy5jb20vcGVvcGxlL2pvaG4ub3VzdGVyaG91dC9zY3JpcHRpbmcuaHRtbCI+IHBhcGVyIDwvYT4gb24gc2NyaXB0aW5nIGxhbmd1YWdlcwotKGFwcGVhcmVkIGluIElFRUUgQ29tcHV0ZXIpLiA8YnI+Ci08QSBIUkVGPSJodHRwOi8vU0FMLkthY2hpbmFUZWNoLkNPTS8iPiBTQUwgLSBTY2llbnRpZmljIEFwcGxpY2F0aW9ucyBvbiBMaW51eDwvYT4uIDxicj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cudXNlbml4Lm9yZyI+VVNFTklYPC9hPiA8YnI+Ci0KLTwvdWw+Ci0KLTxiPkkgYW0gYWx3YXlzIG9uIHRoZSBsb29rb3V0IGZvciBwcm9qZWN0cyB0aGF0IGFyZSBlaXRoZXIgcmVsYXRlZCB0byBTV0lHIAotb3Igd2hpY2ggcHJvdmlkZSBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgdG8gdGhlIHByb2JsZW0gb2Ygd3JhcHBpbmcgQy9DKysgY29kZS4KLVBsZWFzZSBkcm9wIG1lIGEgbGluZSBpZiB0aGVyZSBhcmUgb3RoZXIgcHJvamVjdHMgdGhhdAotc2hvdWxkIGJlIGxpbmtlZCBoZXJlLiAtLSBEYXZlPC9iPgotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9tYWlsLmh0IGIvc3dpZ3dlYi9tYWlsLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Yjk2YjY4Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvbWFpbC5odAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotU1dJRyBNYWlsaW5nIExpc3QKLQotPHA+PGltZyBzcmM9ImltYWdlcy9tYWlsLnBuZyI+Ci0KLTxwPgotQSBtYWlsbWFuIG1haWxpbmcgbGlzdCBpcyBhdmFpbGFibGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgQ2hpY2FnbyBmb3IgZGlzY3Vzc2lvbiBvZiBTV0lHCi1yZWxhdGVkIHRvcGljcy4gICBZb3UgY2FuIHN1YnNjcmliZSB0byB0aGUgbGlzdCBhbmQgdmlldyBhcmNoaXZlcyBieSBjbGlja2luZyA8YSBocmVmPSJodHRwOi8vbWFpbG1hbi5jcy51Y2hpY2Fnby5lZHUvbWFpbG1hbi9saXN0aW5mby9zd2lnIj5oZXJlPC9hPi4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvbWFrZXdlYi5weSBiL3N3aWd3ZWIvbWFrZXdlYi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNzBmMTY3Yi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL21ha2V3ZWIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotIyEvdXNyL2xvY2FsL2Jpbi9weXRob24KLSMgTWFrZSB0aGUgU1dJRyB3ZWItcGFnZXMKLSMKLSMgT2theS4gWWV0IGFub3RoZXIgYm9ndXMgcmV3cml0ZSBvZiBCYXJyeSdzIHdvcmsKLQotaW1wb3J0IHN0cmluZwotaW1wb3J0IGdsb2IKLWltcG9ydCBvcwotaW1wb3J0IHRpbWUKLWltcG9ydCBzdGF0Ci0KLWRlZiBtYWtlcGFnZShmaWxlbmFtZSk6Ci0gICAgICAgIG5hbWUsIHN1ZmZpeCA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpCi0JZiA9IG9wZW4oImRlZmF1bHQuaHRtbCIpCi0JcGFnZSA9IGYucmVhZCgpCi0gICAgICAgIGYuY2xvc2UoKQotCi0JIyBSZWFkIGluIHRoZSBib2R5IGZpbGUKLSAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUpCi0JYm9keSA9IGYucmVhZGxpbmVzKCkKLQlmLmNsb3NlKCkKLQl0aXRsZSA9IGJvZHlbMF0KLQlib2R5ID0gc3RyaW5nLmpvaW4oYm9keVsxOl0pCi0JcGFnZSA9IHN0cmluZy5yZXBsYWNlKHBhZ2UsIiR0aXRsZSIsdGl0bGUpCQotCXBhZ2UgPSBzdHJpbmcucmVwbGFjZShwYWdlLCIkYm9keSIsYm9keSkKLQotCSMgUmVhZCBpbiB0aGUgY29ybmVyIGZpbGUKLQl0cnk6Ci0JCWYgPSBvcGVuKG5hbWUrIi5jb3JuZXIiKQotCQljb3JuZXIgPSBmLnJlYWQoKQotCQlmLmNsb3NlKCkKLQlleGNlcHQgSU9FcnJvcjoKLQkJdHJ5OgotCQkJZiA9IG9wZW4oImRlZmF1bHQuY29ybmVyIikKLQkJCWNvcm5lciA9IGYucmVhZCgpCi0JCQlmLmNsb3NlKCkKLQkJZXhjZXB0OgotCQkJY29ybmVyID0gIiIKLQkKLQlwYWdlID0gc3RyaW5nLnJlcGxhY2UocGFnZSwiJGNvcm5lciIsY29ybmVyKQotCi0JIyBSZWFkIGluIHRoZSB0b3AgZmlsZQotCXRyeToKLQkJZiA9IG9wZW4obmFtZSsiLnRvcCIpCi0JCXRvcCA9IGYucmVhZCgpCi0JCWYuY2xvc2UoKQotCWV4Y2VwdCBJT0Vycm9yOgotCQl0cnk6Ci0JCQlmID0gb3BlbigiZGVmYXVsdC50b3AiKQotCQkJdG9wID0gZi5yZWFkKCkKLQkJCWYuY2xvc2UoKQotCQlleGNlcHQ6Ci0JCQl0b3AgPSAiIgotCQotCXBhZ2UgPSBzdHJpbmcucmVwbGFjZShwYWdlLCIkdG9wIix0b3ApCi0KLQkjIFJlYWQgaW4gdGhlIHNpZGUgZmlsZQotCXRyeToKLQkJZiA9IG9wZW4obmFtZSsiLnNpZGUiKQotCQlzaWRlID0gZi5yZWFkKCkKLQkJZi5jbG9zZSgpCi0JZXhjZXB0IElPRXJyb3I6Ci0JCXRyeToKLQkJCWYgPSBvcGVuKCJkZWZhdWx0LnNpZGUiKQotCQkJc2lkZSA9IGYucmVhZCgpCi0JCQlmLmNsb3NlKCkKLQkJZXhjZXB0OgotCQkJc2lkZSA9ICIiCi0JCi0JcGFnZSA9IHN0cmluZy5yZXBsYWNlKHBhZ2UsIiRzaWRlIixzaWRlKQotCi0JIyBSZWFkIGluIHRoZSBmb290ZXIgZmlsZQotCXRyeToKLQkJZiA9IG9wZW4obmFtZSsiLmZvb3RlciIpCi0JCWZvb3RlciA9IGYucmVhZCgpCi0JCWYuY2xvc2UoKQotCWV4Y2VwdCBJT0Vycm9yOgotCQl0cnk6Ci0JCQlmID0gb3BlbigiZGVmYXVsdC5mb290ZXIiKQotCQkJZm9vdGVyID0gZi5yZWFkKCkKLQkJCWYuY2xvc2UoKQotCQlleGNlcHQ6Ci0JCQlmb290ZXIgPSAiIgotCi0JcGFnZSA9IHN0cmluZy5yZXBsYWNlKHBhZ2UsIiRmb290ZXIiLGZvb3RlcikKLQotCW10aW1lID0gb3Muc3RhdChmaWxlbmFtZSlbc3RhdC5TVF9NVElNRV0KLQltc3RyID0gdGltZS5jdGltZShtdGltZSkKLQotCXBhZ2UgPSBzdHJpbmcucmVwbGFjZShwYWdlLCIkbXRpbWUiLG1zdHIpOwotCi0JIyBXcml0ZSBvdXQgdGhlIHBhZ2UKLQlmID0gb3BlbihuYW1lKyIuaHRtbCIsInciKQotCWYud3JpdGUocGFnZSkKLQlmLmNsb3NlKCkKLQlwcmludCAiV3JvdGUgIiwgbmFtZSsiLmh0bWwiCi0KLWZpbGVzID0gZ2xvYi5nbG9iKCIqLmh0IikKLQotZm9yIGYgaW4gZmlsZXM6Ci0JbWFrZXBhZ2UoZikKLQotCi0KLQpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvUGVybDk4L3JlYWRtZSBiL3N3aWd3ZWIvcGFwZXJzL1Blcmw5OC9yZWFkbWUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQyMmQ4ZjcuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9wYXBlcnMvUGVybDk4L3JlYWRtZQorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVBlcmwgRXh0ZW5zaW9uIEJ1aWxkaW5nIHdpdGggU1dJRwotCi1BdXRob3JzIDogRGF2aWQgQmVhemxleQotICAgICAgICAgIERhdmlkIEZsZXRjaGVyCi0gICAgICAgICAgRG9taW5pcXVlIER1bW9udAotCi1Db250YWN0IDogRGF2ZSBCZWF6bGV5Ci0gICAgICAgICAgYmVhemxleUBjcy51dGFoLmVkdQotICAgICAgICAgICg4MDEpIDM1OS01NzA1Ci0KLVNlc3Npb24gOiBQZXJsIEludGVybmFscyBhbmQgTGlua2luZyB0byBDCi0gICAgICAgICAgVGh1cnNkYXksIEF1Z3VzdCAyMCwgMTozMCBwbS4KLQotCi1UaGUgcHJlc2VudGF0aW9uIGNvbnNpc3RzIG9mIGEgcGFwZXIgYWJvdXQgU1dJRwotYW5kIGl0cyB1c2Ugd2l0aCBQZXJsLiAgVGhyZWUgZmlsZXMgYXJlIGF2YWlsYWJsZSA6Ci0KLXN3aWdwZXJsLmh0bWwgICAgLSAgSFRNTCBWZXJzaW9uIG9mIHRoZSBwYXBlcgotc3dpZ3BlcmwucHMgICAgICAtICBQb3N0c2NyaXB0IHZlcnNpb24gKDIgY29sdW1uKQotc3dpZ3BlcmwucGRmICAgICAtICBQREYgVmVyc2lvbiBvZiB0aGUgcG9zdHNjcmlwdCBwYXBlcgotCi1UaGUgSFRNTCB2ZXJzaW9uIGNvbnRhaW5zIGxpbmtzIHRvIHRoZSBwb3N0c2NyaXB0IGFuZCBQREYKLXZlcnNpb25zLgotCmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9QZXJsOTgvc3dpZ3BlcmwuaHRtIGIvc3dpZ3dlYi9wYXBlcnMvUGVybDk4L3N3aWdwZXJsLmh0bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDNjOWNlOC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9QZXJsOTgvc3dpZ3BlcmwuaHRtCisrKyAvZGV2L251bGwKQEAgLTEsMjE5OCArMCwwIEBACi08aHRtbD4KLTx0aXRsZT4gUGVybCBFeHRlbnNpb24gQnVpbGRpbmcgd2l0aCBTV0lHIDwvdGl0bGU+Ci08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxoMT4gUGVybCBFeHRlbnNpb24gQnVpbGRpbmcgd2l0aCBTV0lHPC9oMT4KLQotKFByZXNlbnRlZCBhdCB0aGUgTydSZWlsbHkgUGVybCBDb25mZXJlbmNlIDIuMCwgQXVndXN0IDE3LTIwLCAxOTk4LCBTYW4gSm9zZSwgQ2FsaWZvcm5pYS4pCi08cD4KLQotPGI+IERhdmlkIE0uIEJlYXpsZXkgPC9iPiA8YnI+Ci08ZW0+IERlcHQuIG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBDaGljYWdvIDxicj4KLUNoaWNhZ28sIElMICA2MDYzNyA8YnI+Ci08L2VtPiAKLQotPHA+Ci08Yj4gRGF2aWQgRmxldGNoZXIgPC9iPiA8YnI+Ci08ZW0+RnVzaW9uIE1pY3JvTWVkaWEsIENvcnAuIDxicj4KLUxvbmdtb250LCBDTyA4MDUwMSA8YnI+Ci08L2VtPgotCi08cD4KLTxiPkRvbWluaXF1ZSBEdW1vbnQ8L2I+IDxicj4KLTxlbT4gSGV3bGV0dCBQYWNrYXJkIDxicj4KLUxhYiBUSUQgPGJyPgotNSBBdmUgUmF5bW9uZCBDaGFuYXMgPGJyPgotMzgwNTMgR3Jlbm9ibGUgY2VkZXggPGJyPgotRnJhbmNlIDxicj4gPC9lbT4KLQotPHA+Ci1bIDxhIGhyZWY9InN3aWdwZXJsLnBkZiI+UERGIDwvYT4gXQotCi08aDI+IEFic3RyYWN0IDwvaDI+Ci0KLTxlbT4KLVNXSUcgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcikgaXMgYSBmcmVlbHkgYXZhaWxhYmxlCi10b29sIHRoYXQgaW50ZWdyYXRlcyBQZXJsLCBQeXRob24sIFRjbCwgYW5kIG90aGVyIHNjcmlwdGluZyBsYW5ndWFnZXMKLXdpdGggcHJvZ3JhbXMgd3JpdHRlbiBpbiBDLCBDKyssIGFuZCBPYmplY3RpdmUtQy4gICBUaGlzIHBhcGVyCi1wcm92aWRlcyBhbiBpbnRyb2R1Y3Rpb24gdG8gU1dJRyBhbmQgc2hvd3MgaG93IGl0IGNhbiBiZSB1c2VkIHRvCi1jb25zdHJ1Y3QgUGVybCBleHRlbnNpb24gbW9kdWxlcy4gIEluIGFkZGl0aW9uLCBhIG51bWJlciBvZiBhcHBsaWNhdGlvbnMKLWluIHdoaWNoIFNXSUcgaGFzIGJlZW4gdXRpbGl6ZWQgYXJlIGRlc2NyaWJlZC4gICBXaGlsZSBTV0lHIGlzIHNpbWlsYXIKLXRvIG90aGVyIFBlcmwgZXh0ZW5zaW9uIGJ1aWxkaW5nIHRvb2xzIHN1Y2ggYXMgeHN1YnBwIGFuZCBoMnhzLCBTV0lHCi1oYXMgYSBudW1iZXIgb2YgdW5pcXVlIGZlYXR1cmVzIHRoYXQgaGVscCBzaW1wbGlmeSB0aGUgdGFzayBvZiBjcmVhdGluZwotUGVybCBleHRlbnNpb24gbW9kdWxlcy4gIE1hbnkgb2YgdGhlc2UgZmVhdHVyZXMgYXJlIGRlc2NyaWJlZCBhcyB3ZWxsIGFzCi1saW1pdGF0aW9ucyBhbmQgZnV0dXJlIGRpcmVjdGlvbnMuCi1UaGlzIHBhcGVyIGlzCi1wcmltYXJpbHkgaW50ZW5kZWQgZm9yIGRldmVsb3BlcnMgd2hvIGFyZSBpbnRlcmVzdGVkIGluIGNvbWJpbmluZyBQZXJsCi13aXRoIGFwcGxpY2F0aW9ucyB3cml0dGVuIGluIEMgb3IgQysrIGFzIHdlbGwgYXMgY3VycmVudCBTV0lHIHVzZXJzCi13aG8gYXJlIGludGVyZXN0ZWQgaW4gbGVhcm5pbmcgbW9yZSBhYm91dCBzb21lIG9mIFNXSUcncyBhZHZhbmNlZCBmZWF0dXJlcy4KLTwvZW0+Ci0KLTxoMj4gMSBJbnRyb2R1Y3Rpb24gPC9oMj4KLQotT25lIG9mIFBlcmwncyBncmVhdGVzdCBzdHJlbmd0aHMgaXMgaXRzIGFiaWxpdHkgdG8gc2ltcGxpZnkgaGFyZAotcHJvZ3JhbW1pbmcgdGFza3MgYXMgd2VsbCBhcyBiZWluZyBhYmxlIHRvIHNvbHZlIHRoZSBvZGQgYW5kIHZhcmllZAotY29tcHV0aW5nIHByb2JsZW1zIHRoYXQgb2NjdXIgb24gYSBkYXktdG8tZGF5IGJhc2lzLiAgV2hpbGUgaXQgd291bGQKLWJlIG5pY2UgdG8gdXNlIFBlcmwgKG9yIG90aGVyIGhpZ2gtbGV2ZWwgbGFuZ3VhZ2VzKSBmb3IgZXZlcnl0aGluZywKLXRoaXMgaXMgc2ltcGx5IG5vdCBwcmFjdGljYWwgZm9yIG1hbnkgYXBwbGljYXRpb25zLiAgSW4gZmFjdCwKLXBlcmZvcm1hbmNlIGNyaXRpY2FsIHRhc2tzLCBsb3ctbGV2ZWwgc3lzdGVtcyBwcm9ncmFtbWluZywgYW5kIAotY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgYXJlIGxpa2VseSB0byBiZSBpbXBsZW1lbnRlZAotaW4gYSBjb21waWxlZCBsYW5ndWFnZSBzdWNoIGFzIEMgb3IgQysrIChhbmQgbWF5IGJlIGVhc2llciB0byBtYW5hZ2UKLWluIHN1Y2ggbGFuZ3VhZ2VzKS4gIEZ1cnRoZXJtb3JlLCBkZXZlbG9wZXJzIG9mdGVuIG5lZWQgdG8gd29yayB3aXRoIGEKLXdpZGUgdmFyaWV0eSBvZiBleGlzdGluZyBhcHBsaWNhdGlvbnMgYW5kIGBgbGVnYWN5Jycgc3lzdGVtcyB0aGF0Ci1hcmUgd3JpdHRlbiBpbiBzdWNoIGxhbmd1YWdlcy4KLQotPHA+Ci1UaGUgaW50ZWdyYXRpb24gb2YgUGVybCBhbmQgY29kZSB3cml0dGVuIGluIGNvbXBpbGVkIGxhbmd1YWdlcyBoYXMgYQotbnVtYmVyIG9mIHByYWN0aWNhbCBiZW5lZml0cy4gIEZpcnN0LCBpdCBhbGxvd3MgZXhpc3RpbmcgQy9DKysKLWFwcGxpY2F0aW9ucyB0byBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIGhpZ2gtbGV2ZWwgaW50ZXJwcmV0ZWQKLWVudmlyb25tZW50LiAgVGhpcyBlbnZpcm9ubWVudCBwcm92aWRlcyBncmVhdGVyIGZsZXhpYmlsaXR5IGFuZCBvZnRlbgotc2ltcGxpZmllcyBkZXZlbG9wbWVudCBzaW5jZSBkZWJ1Z2dpbmcgYW5kIHRlc3RpbmcgY2FuIGJlIHBlcmZvcm1lZAotdXNpbmcgUGVybCBzY3JpcHRzLiAgU2Vjb25kLCBQZXJsIGNhbiBzZXJ2ZSBhcyBhIHBvd2VyZnVsIHVzZXIKLWludGVyZmFjZS4gIEluIG90aGVyIHdvcmRzLCByYXRoZXIgdGhhbiB3cml0aW5nIGEgdXNlciBpbnRlcmZhY2UKLWZyb20gc2NyYXRjaCwgaXQgaXMgcG9zc2libGUgdG8gdXNlIGEgUGVybCBpbnRlcnByZXRlciBpbnN0ZWFkLgotVGhpcyBhbHNvIGFsbG93cyBvdGhlciBmb3Igb3RoZXIgcG9zc2liaWxpdGllcyBzdWNoIGFzIGdyYXBoaWNhbAotdXNlciBpbnRlcmZhY2UgZGV2ZWxvcG1lbnQgd2l0aCBQZXJsL1RrLiAgRmluYWxseSwgUGVybAotcHJvdmlkZXMgZGV2ZWxvcGVycyB3aXRoIGEgbWVjaGFuaXNtIGZvciBhc3NlbWJsaW5nIGFuZCBjb250cm9sbGluZwotc29mdHdhcmUgY29tcG9uZW50cy4gIFJhdGhlciB0aGFuIGNyZWF0aW5nIGEgaHVnZSBtb25vbGl0aGljIHBhY2thZ2UsCi1DL0MrKyBwcm9ncmFtcyBjYW4gYmUgcGFja2FnZWQgYXMgY29sbGVjdGlvbnMgb2YgUGVybCBleHRlbnNpb24KLW1vZHVsZXMuICBBcyBhIHJlc3VsdCwgcHJvZ3JhbXMgYmVjb21lIG1vcmUgbW9kdWxhciBhbmQgZWFzaWVyIHRvCi1tYWludGFpbi4gIEZ1cnRoZXJtb3JlLCBpdCBpcyBldmVuIHBvc3NpYmxlIHRvIGNvbWJpbmUgZW50aXJlbHkKLWRpZmZlcmVudCBwcm9ncmFtcyB0b2dldGhlciB3aXRoaW4gYSBzaGFyZWQgUGVybCBpbnRlcnByZXRlci4KLQotCi08cD4KLVRoaXMgcGFwZXIgcHJvdmlkZXMgYW4gaW50cm9kdWN0aW9uIGFuZCBvdmVydmlldyBvZiBTV0lHLCBhIHRvb2wKLWRlc2lnbmVkIHRvIGludGVncmF0ZSBDIGNvZGUgd2l0aCBhIHZhcmlldHkgb2Ygc2NyaXB0aW5nCi1sYW5ndWFnZXMgaW5jbHVkaW5nIFBlcmwsIFB5dGhvbiwgYW5kIFRjbC4gIEN1cnJlbnRseSwgU1dJRyBjYW4KLWNvbnN0cnVjdCBQZXJsIGV4dGVuc2lvbiBtb2R1bGVzIG9uIFVuaXggYW5kIFdpbmRvd3MtTlQgc3lzdGVtcy4gSXQgYWxzbwotc3VwcG9ydHMgdGhlIEFjdGl2ZVN0YXRlIFBlcmwgZm9yIFdpbmRvd3MgYW5kIFBlcmw0LiAgU1dJRyBoYXMgYmVlbgotZnJlZWx5IGF2YWlsYWJsZSBzaW5jZSBGZWJydWFyeSwgMTk5NiBhbmQgaGFzIGJlZW4KLXByZXZpb3VzbHkgZGVzY3JpYmVkIGluIDxlbT5BZHZhbmNlZCBQZXJsIFByb2dyYW1taW5nPC9lbT4sIDxlbT5UaGUKLVBlcmwgSm91cm5hbDwvZW0+LCBhbmQgPGVtPkRyLiBEb2JiJ3MgSm91cm5hbDwvZW0+WzEsMiwzXS4KLUluIGFkZGl0aW9uLCBTV0lHIGlzIHBhY2thZ2VkIHdpdGggYSAzMDAgcGFnZSB1c2VyIG1hbnVhbCBkZXNjcmliaW5nIGl0cwotdXNlIFs0XS4gVGhlIGdvYWwgb2YgdGhpcyBwYXBlciBpcyBub3QgdG8gcmVwZWF0IGFsbCBvZiB0aGlzIGluZm9ybWF0aW9uLCBidXQgdG8gcHJvdmlkZSBhbiBvdmVydmlldyBvZgotU1dJRywgZGVtb25zdHJhdGUgdGhlIHVzZSBvZiBzb21lIG9mIGl0cyBtb3JlIGFkdmFuY2VkIGZlYXR1cmVzLCBhbmQgZGVzY3JpYmUKLXNvbWUgb2YgdGhlIHdheXMgdGhhdCBpdCBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZC4gVGhlIGF1dGhvcnMgaW5jbHVkZSB0aGUgZGV2ZWxvcGVyCi1vZiBTV0lHIGFuZCB0d28gb2YgU1dJRydzIGZvcmVtb3N0IFBlcmwgZXhwZXJ0cyB3aG8gaGF2ZSBtYWRlIHN1YnN0YW50aWFsCi1jb250cmlidXRpb25zIHRvIFNXSUcncyBkZXZlbG9wbWVudC4KLQotPGgyPiAyIFBlcmwgRXh0ZW5zaW9uIEJ1aWxkaW5nIDwvaDI+Ci0KLVRvIGludGVyZmFjZSBQZXJsIHdpdGggY29kZSB3cml0dGVuIGluIEMgb3IgQysrLCBpdCBpcwotbmVjZXNzYXJ5IHRvIHdyaXRlIHdyYXBwZXJzIHRoYXQgc2VydmUgYXMgYSBnbHVlIGxheWVyIGJldHdlZW4KLXRoZSBQZXJsIGludGVycHJldGVyIGFuZCB0aGUgdW5kZXJseWluZyBDIGNvZGUuICBUaGVzZSB3cmFwcGVycwotYXJlIHJlc3BvbnNpYmxlIGZvciBjb252ZXJ0aW5nIGRhdGEgYmV0d2VlbiBQZXJsIGFuZCBDLCByZXBvcnRpbmcKLWVycm9ycywgYW5kIG90aGVyIHRhc2tzLiAgUGVybCBpcyBwYWNrYWdlZCB3aXRoIHNldmVyYWwgdG9vbHMKLWZvciBjcmVhdGluZyB0aGVzZSB3cmFwcGVycy4gIE9uZSBzdWNoIHRvb2wgaXMgPHR0PnhzdWJwcDwvdHQ+LCBhCi1jb21waWxlciB0aGF0IHRha2VzIGludGVyZmFjZSBkZWZpbml0aW9ucyB3cml0dGVuIGluIGEgc3BlY2lhbAotbGFuZ3VhZ2Uga25vd24gYXMgWFMgYW5kIGNvbnZlcnRzIHRoZW0gaW50byB3cmFwcGVycy4gICBGb3IgZXhhbXBsZSwKLXN1cHBvc2UgdGhhdCB5b3UgaGFkIHRoZSBmb2xsb3dpbmcgQyBmdW5jdGlvbjoKLQotPGJsb2NrcXVvdGU+PHByZT4KLWludCBmYWN0KGludCBuKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVG8gd3JhcCB0aGlzIGZ1bmN0aW9uIGludG8gYSBQZXJsIG1vZHVsZSB3aXRoIDx0dD54c3VicHA8L3R0PiwgeW91IHdvdWxkIHdyaXRlCi10aGUgZm9sbG93aW5nIFhTIGZpbGU6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBmaWxlIDogZXhhbXBsZS54cyAqLwotZXh0ZXJuIGludCBmYWN0KGludCBuKTsKLU1PRFVMRSA9IEV4YW1wbGUgICAgIFBBQ0tBR0UgPSBFeGFtcGxlCi1pbnQKLWZhY3QobikKLSAgICAgaW50ICAgIG4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotV2hlbiBwcm9jZXNzZWQgd2l0aCA8dHQ+eHN1YnBwPC90dD4sIHRoZSBmb2xsb3dpbmcgd3JhcHBlciBmaWxlIGlzIHByb2R1Y2VkCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jaW5jbHVkZSAiRVhURVJOLmgiCi0jaW5jbHVkZSAicGVybC5oIgotI2luY2x1ZGUgIlhTVUIuaCIKLWV4dGVybiBpbnQgZmFjdChpbnQgbik7Ci0KLVhTKFhTX0V4YW1wbGVfZmFjdCkKLXsKLSAgICBkWFNBUkdTOwotICAgIGlmIChpdGVtcyAhPSAxKQotICAgICAgICBjcm9haygiVXNhZ2U6IEV4YW1wbGU6OmZhY3QobikiKTsKLSAgICB7Ci0gICAgICAgIGludCAgICAgbiA9IChpbnQpU3ZJVihTVCgwKSk7Ci0gICAgICAgIGludCAgICAgUkVUVkFMOwotICAgICAgICBSRVRWQUwgPSBmYWN0KG4pOwotICAgICAgICBTVCgwKSA9IHN2X25ld21vcnRhbCgpOwotICAgICAgICBzdl9zZXRpdihTVCgwKSwgKElWKVJFVFZBTCk7Ci0gICAgfQotICAgIFhTUkVUVVJOKDEpOwotfQotCi1YUyhib290X0V4YW1wbGUpCi17Ci0gICAgZFhTQVJHUzsKLSAgICBjaGFyKiBmaWxlID0gX19GSUxFX187Ci0gICAgWFNfVkVSU0lPTl9CT09UQ0hFQ0sgOwotICAgIG5ld1hTKCJFeGFtcGxlOjpmYWN0IiwgCi0gICAgICAgICAgIFhTX0V4YW1wbGVfZmFjdCwgZmlsZSk7Ci0gICAgU1QoMCkgPSAmc3ZfeWVzOwotICAgIFhTUkVUVVJOKDEpOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UbyB1c2UgdGhlIG1vZHVsZSwgdGhlIHdyYXBwZXIgY29kZSBtdXN0IGJlIGNvbXBpbGVkIGFuZCBsaW5rZWQgaW50byBhCi1zaGFyZWQgbGlicmFyeSB0aGF0IGNhbiBiZSBkeW5hbWljYWxseSBsb2FkZWQgaW50byB0aGUgUGVybCBpbnRlcnByZXRlci4KLVRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHdpdGggdGhlIE1ha2VNYWtlciB1dGlsaXR5IGJ5IHdyaXRpbmcgYQotc2NyaXB0IGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIGZpbGUgOiBNYWtlZmlsZS5QTAotdXNlIEV4dFV0aWxzOjpNYWtlTWFrZXI7Ci1Xcml0ZU1ha2VmaWxlKAotICAgJ05BTUUnID0mZ3Q7ICdFeGFtcGxlJywKLSAgICdPQkpFQ1QnID0mZ3Q7ICdleGFtcGxlLm8gZmFjdC5vJwotKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotdGhpcyBzY3JpcHQgaXMgdGhlbiB1c2VkIHRvIGNyZWF0ZSBhIE1ha2VmaWxlIGFuZCBtb2R1bGUgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLXVuaXggPiBwZXJsIE1ha2VmaWxlLlBMCi11bml4ID4gbWFrZQotdW5peCA+IG1ha2UgaW5zdGFsbAotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1GaW5hbGx5LCBpbiBhZGRpdGlvbiB0byBjcmVhdGluZyB0aGUgQyBjb21wb25lbnQgb2YgdGhlIGV4dGVuc2lvbiBtb2R1bGUsCi1pdCBpcyBuZWNlc3NhcnkgdG8gd3JpdGUgYSA8dHQ+LnBtPC90dD4gZmlsZSB0aGF0IGlzIHVzZWQgdG8gbG9hZAotYW5kIGluaXRpYWxpemUgdGhlIG1vZHVsZS4gIEZvciBleGFtcGxlLAotCi08YmxvY2txdW90ZT48cHJlPgotIyBmaWxlIDogRXhhbXBsZS5wbQotcGFja2FnZSBFeGFtcGxlOwotcmVxdWlyZSBFeHBvcnRlcjsKLXJlcXVpcmUgRHluYUxvYWRlcjsKLUBJU0EgPSBxdyhFeHBvcnRlciBEeW5hTG9hZGVyKTsKLWJvb3RzdHJhcCBFeGFtcGxlOwotMTsKLTwvcHJlPjwvYmxvY2txdW90ZT4gCi0KLUF0IHRoaXMgcG9pbnQsIHlvdSBzaG91bGQgaGF2ZSBhIHdvcmtpbmcgUGVybCBleHRlbnNpb24gbW9kdWxlLiAgSW4KLXByaW5jaXBsZSwgYnVpbGRpbmcgYSBQZXJsIGV4dGVuc2lvbiByZXF1aXJlcyBhbiBYUyBzcGVjaWZpY2F0aW9uIGZvcgotZXZlcnkgQyBmdW5jdGlvbiB0aGF0IGlzIHRvIGJlIGFjY2Vzc2VkLiAgVG8gc2ltcGxpZnkgdGhlIHByb2Nlc3Mgb2YKLWNyZWF0aW5nIHRoZXNlIHNwZWNpZmljYXRpb25zLCBQZXJsIGluY2x1ZGVzIDx0dD5oMnhzPC90dD4sIGEgdG9vbCB0aGF0Ci1jb252ZXJ0cyBDIGhlYWRlciBmaWxlcyB0byBYUyBkZXNjcmlwdGlvbnMuICBXaGlsZSB1c2VmdWwsIDx0dD5oMnhzPC90dD4KLWlzIHNvbWV3aGF0IGxpbWl0ZWQgaW4gaXRzIGFiaWxpdHkgdG8gaGFuZGxlIGdsb2JhbCB2YXJpYWJsZXMsCi1zdHJ1Y3R1cmVzLCBjbGFzc2VzLCBhbmQgbW9yZSBhZHZhbmNlZCBDL0MrKyBmZWF0dXJlcy4gIEFzIGEgcmVzdWx0LAotPHR0PmgyeHM8L3R0PiBjYW4gYmUgc29tZXdoYXQgZGlmZmljdWx0IHRvIHVzZSB3aXRoIG1vcmUgY29tcGxleAotYXBwbGljYXRpb25zLgotCi08aDI+IDMgU1dJRyBPdmVydmlldyA8L2gyPgotCi1JbiBhIG51dHNoZWxsLCBTV0lHIGlzIGEgc3BlY2lhbGl6ZWQgY29tcGlsZXIgdGhhdCB0cmFuc2Zvcm1zIEFOU0kKLUMvQysrIGRlY2xhcmF0aW9ucyBpbnRvIHNjcmlwdGluZyBsYW5ndWFnZSBleHRlbnNpb24gd3JhcHBlcnMuICAKLVdoaWxlCi1zb21ld2hhdCBzaW1pbGFyIHRvIDx0dD5oMnhzPC90dD4sIFNXSUcgaGFzIGEgbnVtYmVyIG9mCi1ub3RhYmxlIGRpZmZlcmVuY2VzLiAgRmlyc3QsIFNXSUcgaXMgbXVjaCBsZXNzIGludGVybmFscyBvcmllbnRlZCB0aGFuCi1YUy4gIEluIG90aGVyIHdvcmRzLCBTV0lHIGludGVyZmFjZXMgY2FuIHVzdWFsbHkgYmUgY29uc3RydWN0ZWQKLXdpdGhvdXQgYW55IGtub3dsZWRnZSBvZiBQZXJsJ3MgaW50ZXJuYWwgb3BlcmF0aW9uLiAgU2Vjb25kLCBTV0lHIGlzIGRlc2lnbmVkIHRvCi1iZSBleHRlbnNpYmxlIGFuZCBnZW5lcmFsIHB1cnBvc2UuICBDdXJyZW50bHksIHdyYXBwZXJzIGNhbiBiZQotZ2VuZXJhdGVkIGZvciBQZXJsLCBQeXRob24sIFRjbCwgYW5kIEd1aWxlLiAgSW4gYWRkaXRpb24sIGV4cGVyaW1lbnRhbAotbW9kdWxlcyBmb3IgTUFUTEFCIGFuZCBKYXZhIGhhdmUgYmVlbiBkZXZlbG9wZWQuICBGaW5hbGx5LCBTV0lHCi1zdXBwb3J0cyBhIGxhcmdlciBzdWJzZXQgb2YgQyBhbmQgQysrIGluY2x1ZGluZyBzdHJ1Y3R1cmVzLAotY2xhc3NlcywgZ2xvYmFsIHZhcmlhYmxlcywgYW5kIGluaGVyaXRhbmNlLiAgVGhpcyBzZWN0aW9uIHByb3ZpZGVzIGEgdG91ciBvZiBTV0lHIGFuZCBkZXNjcmliZXMgbWFueQotb2YgaXRzIGludGVyZXN0aW5nIGZlYXR1cmVzLiAKLQotPGgzPiAzLjEgQSBTbWFsbCBUYXN0ZTwvaDM+Ci0KLUFzIGEgZmlyc3QgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IHlvdSB3YW50ZWQgdG8gYnVpbGQgYSBQZXJsCi1pbnRlcmZhY2UgdG8gVGhvbWFzIEJvdXRlbGwncyBnZCBncmFwaGljcyBsaWJyYXJ5IFtmb290bm90ZToKLVRoZSBnZCBsaWJyYXJ5IGlzIGEgZnJlZWx5IGF2YWlsYWJsZSBncmFwaGljcyBsaWJyYXJ5IGZvcgotcHJvZHVjaW5nIEdJRiBpbWFnZXMgYW5kIGNhbiBiZSBvYnRhaW5lZCBhdCA8dHQ+Ci08YSBocmVmPSJodHRwOi8vd3d3LmJvdXRlbGwuY29tL2dkL2dkLmh0bWwiPgotaHR0cDovL3d3dy5ib3V0ZWxsLmNvbS9nZC9nZC5odG1sPC9hPjwvdHQ+LiAgIEEgUGVybCBtb2R1bGUgdG8gZ2QsCi1kZXZlbG9wZWQgYnkgTGluY29sbiBTdGVpbiwgaXMgYWxzbyBhdmFpbGFibGUgb24gQ1BBTiBzbwotaW50ZXJlc3RlZCByZWFkZXJzIGFyZSBlbmNvdXJhZ2VkIHRvIGNvbXBhcmUgdGhlIHJlc3VsdHMgb2YKLXVzaW5nIFNXSUcgYWdhaW5zdCBhbiBleGlzdGluZyBQZXJsIGV4dGVuc2lvbi5dCi0KLTxwPgotU2luY2UgZ2QgaXMgYSBDIGxpYnJhcnksCi1pbWFnZXMgYXJlIG5vcm1hbGx5IGNyZWF0ZWQgYnkgd3JpdGluZyBDIGNvZGUgc3VjaCBhcwotZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSNpbmNsdWRlICJnZC5oIgotaW50IG1haW4oKSB7Ci0gIGdkSW1hZ2VQdHIgIGltOwotICBGSUxFICAgICAgICpvdXQ7Ci0gIGludCAgICAgICAgIGJsayx3aHQ7Ci0KLSAgLyogQ3JlYXRlIGFuIGltYWdlICovCi0gIGltPWdkSW1hZ2VDcmVhdGUoMjAwLDIwMCk7Ci0gIAotICAvKiBBbGxvY2F0ZSBzb21lIGNvbG9ycyAqLwotICBibGs9Z2RJbWFnZUNvbG9yQWxsb2NhdGUoaW0sMCwwLDApOwotICB3aHQ9Z2RJbWFnZUNvbG9yQWxsb2NhdGUoaW0sMjU1LDI1NSwyNTUpOwotCi0gIC8qIERyYXcgYSBsaW5lICovCi0gIGdkSW1hZ2VMaW5lKGltLDIwLDUwLDE4MCwxNDAsd2h0KTsKLQotICAvKiBPdXRwdXQgdGhlIGltYWdlICovCi0gIG91dD1mb3BlbigidGVzdC5naWYiLCJ3YiIpOwotICBnZEltYWdlR2lmKGltLG91dCk7Ci0gIGZjbG9zZShvdXQpOwotCi0gIC8qIENsZWFuIHVwICovCi0gIGdkSW1hZ2VEZXN0cm95KGltKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotQnkgYnVpbGRpbmcgYSBQZXJsIGludGVyZmFjZSB0byBnZCwgb3VyIGdvYWwgaXMgdG8gd3JpdGUgc2ltaWxhciBjb2RlCi1pbiBQZXJsLiAgVGh1cywgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGdkIGxpYnJhcnkgbXVzdCBiZSBleHBvc2VkIHRvCi10aGUgUGVybCBpbnRlcnByZXRlci4gIFRvIGRvIHRoaXMsIGEgU1dJRyBpbnRlcmZhY2UKLWZpbGUgY2FuIGJlIHdyaXR0ZW4gYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIEZpbGUgOiBnZC5pCi0lbW9kdWxlIGdkCi0lewotI2luY2x1ZGUgImdkLmgiCi0lfQotCi10eXBlZGVmIGdkSW1hZ2UgKmdkSW1hZ2VQdHI7Ci0KLWdkSW1hZ2VQdHIgZ2RJbWFnZUNyZWF0ZShpbnQgc3gsIGludCBzeSk7Ci12b2lkICAgICAgIGdkSW1hZ2VEZXN0cm95KGdkSW1hZ2VQdHIgaW0pOwotdm9pZCAgICAgICBnZEltYWdlTGluZShnZEltYWdlUHRyIGltLCAKLSAgICAgICAgICAgICAgICAgICAgICBpbnQgeDEsIGludCB5MSwKLSAgICAgICAgICAgICAgICAgICAgICBpbnQgeDIsIGludCB5MiwKLSAgICAgICAgICAgICAgICAgICAgICBpbnQgY29sb3IpOwotaW50ICAgZ2RJbWFnZUNvbG9yQWxsb2NhdGUoZ2RJbWFnZVB0ciBpbSwKLSAgICAgICAgICAgICAgICAgICAgICBpbnQgciwgaW50IGcsIGludCBiKTsKLXZvaWQgIGdkSW1hZ2VHaWYoZ2RJbWFnZVB0ciBpbSwgRklMRSAqb3V0KTsKLQotLy8gRmlsZSBJL08gZnVuY3Rpb25zIChleHBsYWluZWQgc2hvcnRseSkKLUZJTEUgKmZvcGVuKGNoYXIgKm5hbWUsIGNoYXIgKm1vZGUpOwotdm9pZCAgZmNsb3NlKEZJTEUgKik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUluIHRoaXMgZmlsZSwgdGhlIEFOU0kgQyBwcm90b3R5cGVzIGZvciBldmVyeSBmdW5jdGlvbiB0aGF0IHdlIHdvdWxkCi1saWtlIHRvIGFjY2VzcyBmcm9tIFBlcmwgYXJlIGxpc3RlZC4gCi1JbiBhZGRpdGlvbiwgYSBudW1iZXIgb2YgU1dJRwotZGlyZWN0aXZlcyAod2hpY2ggYXJlIGFsd2F5cyBwcmVjZWRlZCBieSBhIGBgJScnKSBhcHBlYXIuICBUaGUgPHR0PgotJW1vZHVsZTwvdHQ+IGRpcmVjdGl2ZSBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbiBtb2R1bGUuICBUaGUKLTx0dD4leywgJX08L3R0PiBibG9jayBpcyB1c2VkIHRvIGluc2VydCBsaXRlcmFsIGNvZGUgaW50byB0aGUgb3V0cHV0Ci13cmFwcGVyIGZpbGUgW2Zvb3Rub3RlIDogVGhpcyBzeW50YXggaXMgZGVyaXZlZCBmcm9tIGxleCBhbmQgeWFjY10uICBJbgotdGhpcyBjYXNlLCB3ZSBzaW1wbHkgaW5jbHVkZSB0aGUgYGA8dHQ+Z2QuaDwvdHQ+JycgaGVhZGVyIGZpbGUuIAotRmluYWxseSwgYSBmZXcgZmlsZQotSS9PIGZ1bmN0aW9ucyBhbHNvIGFwcGVhci4gIFdoaWxlIG5vdCBwYXJ0IG9mIGdkLCB0aGVzZSBmdW5jdGlvbnMKLWFyZSBuZWVkZWQgdG8gbWFudWZhY3R1cmUgZmlsZSBoYW5kbGVzIHVzZWQgYnkgc2V2ZXJhbCBnZCBmdW5jdGlvbnMuCi0KLTxwPgotVG8gcnVuIFNXSUcsIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBpcyBleGVjdXRlZDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLXVuaXggJmd0OyBzd2lnIC1wZXJsNSBnZC5pCi1HZW5lcmF0aW5nIHdyYXBwZXJzIGZvciBQZXJsIDUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotCi1UaGlzIHByb2R1Y2VzIHR3byBmaWxlcywgPHR0PmdkX3dyYXAuYzwvdHQ+IGFuZAotPHR0PmdkLnBtPC90dD4uICBUaGUgZmlyc3QgZmlsZSBjb250YWlucyBDIHdyYXBwZXIKLWZ1bmN0aW9ucyB0aGF0IGFwcGVhciBzaW1pbGFyIHRvIHRoZSBvdXRwdXQgdGhhdAotd291bGQgaGF2ZSBiZWVuIGdlbmVyYXRlZCBieSA8dHQ+eHN1YnBwPC90dD4uCi1UaGUKLTx0dD4ucG08L3R0PiBmaWxlIGNvbnRhaW5zIHN1cHBvcnRpbmcgUGVybCBjb2RlIG5lZWRlZCB0bwotbG9hZCBhbmQgdXNlIHRoZSBtb2R1bGUuIAotCi08cD4KLVRvIGJ1aWxkIHRoZSBtb2R1bGUsCi10aGUgd3JhcHBlciBmaWxlIGlzIGNvbXBpbGVkIGFuZCBsaW5rZWQgaW50byBhIHNoYXJlZCBsaWJyYXJ5LgotVGhpcyBwcm9jZXNzIHZhcmllcyBvbiBldmVyeSBtYWNoaW5lIChjb25zdWx0IHRoZSBtYW4gcGFnZXMpLCBidXQgdGhlIGZvbGxvd2luZwotc3RlcHMgYXJlIHBlcmZvcm1lZCBvbiBMaW51eDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLXVuaXggJmd0OyBnY2MgLWZwaWMgLWMgZ2Rfd3JhcC5jIFwKLSAgIC1EYm9vbD1jaGFyIFwKLSAgIC1JL3Vzci9saWIvcGVybDUvaTU4Ni1saW51eC81LjAwNC9DT1JFCi11bml4ICZndDsgZ2NjIC1zaGFyZWQgZ2Rfd3JhcC5vIC1sZ2QgLW8gZ2Quc28KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotQXQgdGhpcyBwb2ludCwgIHRoZSBtb2R1bGUgaXMgcmVhZHkgdG8gdXNlLiAgICBGb3IgZXhhbXBsZSwKLXRoZSBlYXJsaWVyIEMgcHJvZ3JhbSBjYW4gYmUgZGlyZWN0bHkgdHJhbnNsYXRlZCBpbnRvIHRoZQotZm9sbG93aW5nIFBlcmwgc2NyaXB0OgotCi08YmxvY2txdW90ZT48cHJlPgotIyEvdXNyL2Jpbi9wZXJsCi11c2UgZ2Q7Ci0KLSMgQ3JlYXRlIGFuIGltYWdlCi0kaW0gPSBnZDo6Z2RJbWFnZUNyZWF0ZSgyMDAsMjAwKTsKLQotIyBBbGxvY2F0ZSBzb21lIGNvbG9ycwotJGJsaz1nZDo6Z2RJbWFnZUNvbG9yQWxsb2NhdGUoJGltLDAsMCwwKTsKLSR3aHQ9Z2Q6OmdkSW1hZ2VDb2xvckFsbG9jYXRlKCRpbSwyNTUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsMjU1KTsKLQotIyBEcmF3IGEgbGluZSAKLWdkOjpnZEltYWdlTGluZSgkaW0sMjAsNTAsMTgwLDE0MCwkd2h0KTsKLQotIyBPdXRwdXQgdGhlIGltYWdlCi0kb3V0PWdkOjpmb3BlbigidGVzdC5naWYiLCJ3YiIpOwotZ2Q6OmdkSW1hZ2VHaWYoJGltLCRvdXQpOwotZ2Q6OmZjbG9zZSgkb3V0KTsKLQotIyBDbGVhbiB1cCAKLWdkOjpnZEltYWdlRGVzdHJveSgkaW0pOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi08aDM+IDMuMiBJbnB1dCBGaWxlczwvaDM+Ci0KLUluIHRoZSBnZCBleGFtcGxlLCBTV0lHIHdhcyBnaXZlbiBhIHNwZWNpYWwgaW50ZXJmYWNlIGZpbGUKLWNvbnRhaW5pbmcgYSBsaXN0IG9mIHRoZSBDIGRlY2xhcmF0aW9ucyB0byBiZSBpbmNsdWRlZAotaW4gdGhlIFBlcmwgbW9kdWxlLiAgV2hlbiB3b3JraW5nIHdpdGggYSBsYXJnZSBDIGxpYnJhcnksIGludGVyZmFjZQotZmlsZXMgY2FuIG9mdGVuIGJlIGNvbnN0cnVjdGVkIGJ5IGNvcHlpbmcgYW4KLWV4aXN0aW5nIGhlYWRlciBmaWxlIGFuZCBtb2RpZnlpbmcgaXQgc2xpZ2h0bHkuICBIb3dldmVyLCBpbiBzb21lCi1jYXNlcywgaXQgaXMgcG9zc2libGUgdG8gaW5jbHVkZSBhIGhlYWRlciBmaWxlIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lbW9kdWxlCi0lewotI2luY2x1ZGUgImdkLmgiCi0lfQotCi0vLyBHcmFiIHRoZSBkZWNsYXJhdGlvbnMgZnJvbSBnZC5oCi0laW5jbHVkZSAiZ2QuaCIKLQotLy8gU29tZSBmaWxlIEkvTyBmdW5jdGlvbnMKLUZJTEUgKmZvcGVuKGNoYXIgKm5hbWUsIGNoYXIgKm1vZGUpOwotdm9pZCAgZmNsb3NlKEZJTEUgKik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoZSA8dHQ+JWluY2x1ZGU8L3R0PiBkaXJlY3RpdmUgdGVsbHMgU1dJRyB0byBpbmNsdWRlIGEgZmlsZSBhbmQKLXBhcnNlIGFsbCBvZiB0aGUgZGVjbGFyYXRpb25zIGl0IGNvbnRhaW5zLiAgIEluIHRoaXMgY2FzZSwgdGhlCi1pbnRlcmZhY2Ugd291bGQgbm93IHdyYXAgZXZlcnkgZnVuY3Rpb24gaW4gdGhlIGdkIGxpYnJhcnkKLWFzIG9wcG9zZWQgdG8gdGhlIGhhbGYtZG96ZW4gZnVuY3Rpb25zIGxpc3RlZCBpbiB0aGUgZmlyc3QgZXhhbXBsZS4KLQotPHA+Ci1TV0lHIGFsc28gaW5jbHVkZXMgYSBDIHByZXByb2Nlc3NvciB0aGF0IGNhbiBiZSB1c2VkIGZvciBtYWNybwotZXhwYW5zaW9uIGFuZCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gICBJZiBhIG5ldyBhcHBsaWNhdGlvbiBpcwotYmVpbmcgd3JpdHRlbiB3aXRoIFNXSUcgaW4gbWluZCwgaGVhZGVyIGZpbGVzIGNhbiBiZSB3cml0dGVuIGFzCi1mb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotI2lmZGVmIFNXSUcKLSVtb2R1bGUgZ2QKLSV7Ci0jaW5jbHVkZSAiZ2QuaCIKLSV9Ci0jZW5kaWYKLQotLyogQyBkZWNsYXJhdGlvbnMgKi8KLS4uLgotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1XaXRoIHRoaXMgYXBwcm9hY2gsIHRoZSBmaWxlIGNhbiBzZXJ2ZSBhcyBib3RoIGEgdmFsaWQgQyBoZWFkZXIKLWZpbGUgYW5kIGFzIGFuIGludGVyZmFjZSBzcGVjaWZpY2F0aW9uLiAgIFRoZSA8dHQ+U1dJRzwvdHQ+IHN5bWJvbAotaXMgb25seSBkZWZpbmVkIHdoZW4gU1dJRyBpcyBwYXJzaW5nIHNvIHNwZWNpYWwgZGlyZWN0aXZlcyBjYW4gYmUKLWVhc2lseSBoaWRkZW4gZnJvbSB0aGUgQyBjb21waWxlciBhcyBuZWVkZWQuCi0KLTxwPgotRmluYWxseSwgZm9yIHRoZSB0cnVseSBsYXp5LCBTV0lHIGNhbiBzb21ldGltZXMgYmUgcnVuIGRpcmVjdGx5IG9uCi1DIGhlYWRlciBhbmQgc291cmNlIGZpbGVzLiAgRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lIHN3aWcgLXBlcmw1IC1tb2R1bGUgZ2QgZ2QuaAotJSBzd2lnIC1wZXJsNSAtbW9kdWxlIGV4YW1wbGUgZXhhbXBsZS5jCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLU1vc3QgdXNlcnMsIGhvd2V2ZXIsIHVzZSBhIG1peCBvZiBkZWRpY2F0ZWQgaW50ZXJmYWNlIGZpbGVzCi1hbmQgaGVhZGVyIGZpbGVzLgotCi08aDM+IDMuMyBEYXRhIE1vZGVsPC9oMz4KLQotVGhlIG1vc3QgY3JpdGljYWwgcGFydCBvZiBpbnRlcmZhY2luZyBQZXJsIHRvIEMgcHJvZ3JhbXMgaXMKLXRoZSBtYW5hZ2VtZW50IG9mIGRhdGEuICAgU2luY2UgUGVybCBhbmQgQyB1dGlsaXplIGEgZGlmZmVyZW50IHNldCBvZgotaW50ZXJuYWwgZGF0YXR5cGVzLCB3cmFwcGVyIGdlbmVyYXRvcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBwcm9kdWNpbmcKLWNvZGUgdGhhdCBtYXJzaGFscyBkYXRhIGFuZCBvYmplY3RzIGJldHdlZW4gbGFuZ3VhZ2VzLiAgIEZvciBmdW5kYW1lbnRhbCB0eXBlcwotc3VjaCBhcyA8dHQ+aW50PC90dD4gYW5kIDx0dD5kb3VibGU8L3R0PiB0aGUgY29udmVyc2lvbiBwcm9jZXNzIGlzIAotc3RyYWlnaHRmb3J3YXJkLiAgSG93ZXZlciwgcG9pbnRlcnMsIGFycmF5cywgc3RydWN0dXJlcywgYW5kIG9iamVjdHMKLWNvbXBsaWNhdGUgdGhlIHByb2Nlc3MuICAgRnVydGhlcm1vcmUsIHNpbmNlIG1vc3QgQy9DKysgcHJvZ3JhbXMKLW1ha2UgZXh0ZW5zaXZlIHVzZSBvZiB0aGVzZSBkYXRhdHlwZXMsIGl0IGlzIGltcG9ydGFudCBmb3Igd3JhcHBlciBnZW5lcmF0b3JzCi10byBzdXBwb3J0IGFzIG1hbnkgb2YgdGhlc2UgZGF0YXR5cGVzIGFzIHBvc3NpYmxlLgotCi08aDQ+IDMuMy4xIFBvaW50ZXJzPC9oND4KLQotU1dJRyBtYXBzIEMgcG9pbnRlcnMgYW5kIEMrKyByZWZlcmVuY2VzIGludG8gUGVybCBibGVzc2VkIHJlZmVyZW5jZXMuICBUaGVzZSByZWZlcmVuY2VzCi1jb250YWluIGJvdGggdGhlIHZhbHVlIG9mIHRoZSBwb2ludGVyIGl0c2VsZiwgcGx1cyBhIHR5cGUtc2lnbmF0dXJlLgotSW4gdGhlIGdkIGV4YW1wbGUsIHBvaW50ZXJzIHdlcmUgdXNlZCB0byBtYW5hZ2UgYm90aCBpbWFnZXMKLWFuZCBmaWxlcy4gICBJZiBvbmUgd2VyZSB0byBwcmludCBvdXQgdGhlIHZhbHVlIGEgcG9pbnRlciwgaXQgd291bGQKLWFwcGVhciBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotZ2RJbWFnZVB0cj1TQ0FMQVIoMHg4MGI5OTE0KQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1TV0lHIHVzZXMgdGhlIHR5cGUtc2lnbmF0dXJlIHRvIHBlcmZvcm0gcnVuLXRpbWUgY2hlY2tpbmcgb2YgYWxsIHBvaW50ZXIgdmFsdWVzLiAgVGhlc2UgY2hlY2tzIGVtdWxhdGUKLW1hbnkgb2YgdGhlIGNoZWNrcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgYnkgYSBDIGNvbXBpbGVyLiAKLVdoZW4gYW4gaW52YWxpZCBQZXJsIGRhdGF0eXBlCi1vciBwb2ludGVyIG9mIGludmFsaWQgdHlwZSBpcyB1c2VkLCBhIHJ1bi10aW1lIGVycm9yIGlzIGdlbmVyYXRlZC4gIEZvciBleGFtcGxlLAotCi08YmxvY2txdW90ZT48cHJlPgotJSBwZXJsCi11c2UgZ2Q7Ci0kZiA9IGdkOjpmb3BlbigidGVzdC5naWYiLCJ3Iik7Ci1nZDo6Z2RJbWFnZUxpbmUoJGYsMjAsNTAsMTgwLDE0MCwwKTsKLVR5cGUgZXJyb3IgaW4gYXJndW1lbnQgMSBvZiBnZEltYWdlTGluZS4gCi1FeHBlY3RlZCBnZEltYWdlUHRyLiBhdCAtIGxpbmUgMy4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVHlwZS1jaGVja2luZyBpcyBiYXNlZCBvbiB0aGUgbmFtZSBvZiBlYWNoIGRhdGF0eXBlLiAgIEhvd2V2ZXIsCi10aGUgdHlwZS1jaGVja2VyIGFsc28ga2VlcHMgdHJhY2sgb2YgQysrIGluaGVyaXRhbmNlIGhpZXJhcmNoaWVzIGFuZAotPHR0PnR5cGVkZWY8L3R0PiBkZWZpbml0aW9ucy4gIFRodXMsIGFuIGFjY2VwdGFibGUgcG9pbnRlciB0eXBlIGluY2x1ZGVzIGFueQotYWx0ZXJuYXRlIG5hbWVzIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGNyZWF0ZWQgd2l0aCBhIDx0dD50eXBlZGVmPC90dD4KLWRlY2xhcmF0aW9uIGFzIHdlbGwgYXMgYW55IGRlcml2ZWQgZGF0YXR5cGVzIGluIEMrKy4KLQotPHA+Ci1XaGVuIHBvaW50ZXJzIGFyZSBtYW5pcHVsYXRlZCBpbiBQZXJsLCB0aGV5IGFyZSBvcGFxdWUgdmFsdWVzLiAgVGhhdAotaXMsIHBvaW50ZXJzIGNhbiBiZSBjcmVhdGVkIGFuZCBwYXNzZWQgYXJvdW5kIHRvIG90aGVyIEMgZnVuY3Rpb25zLAotYnV0IHRoZXkgY2FuIG5vdCBiZSBkZXJlZmVyZW5jZWQgZGlyZWN0bHkuICBUaHVzLCBpbiB0aGUgZXhhbXBsZSwgaXQKLWlzIGRpZmZpY3VsdCAob3IgaW1wcmFjdGljYWwpIGZvciBhIHVzZXIgdG8gZGlyZWN0bHkgbWFuaXB1bGF0ZSB0aGUgaW50ZXJuYWwKLXJlcHJlc2VudGF0aW9uIG9mIGFuIGltYWdlIGZyb20gdGhlIFBlcmwgaW50ZXJwcmV0ZXIuICBGdXJ0aGVybW9yZSwKLVNXSUcsIGJ5IGRlZmF1bHQsIGhhbmRsZXMgYWxsIHBvaW50ZXJzIGluIGEgdW5pZm9ybSBtYW5uZXIuICBUaHVzLAotZGF0YXR5cGVzIHN1Y2ggYXMgPHR0PkZJTEUgKjwvdHQ+IGFyZSByZXByZXNlbnRlZCBhcyBibGVzc2VkIHJlZmVyZW5jZXMKLWV2ZW4gdGhvdWdoIHN1Y2ggdHlwZXMgbWF5IGFwcGVhciByZW1hcmthYmx5IHNpbWlsYXIgdG8gb3RoZXIgUGVybAotZGF0YXR5cGVzIHN1Y2ggYXMgZmlsZSBoYW5kbGVzLgotCi08aDQ+IDMuMy4yIEFycmF5czwvaDQ+Ci0KLVNXSUcgbWFwcyBhbGwgYXJyYXlzIGludG8gcG9pbnRlcnMgd2hlcmUgdGhlIGBgdmFsdWUnJyBvZiBhbiBhcnJheQotaXMgc2ltcGx5IGEgcG9pbnRlciB0byB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkuICBUaGlzIGlzCi10aGUgc2FtZSBtb2RlbCB1c2VkIGJ5IEMgY29tcGlsZXJzIGFuZCBsaWtlIEMsIFNXSUcgcGVyZm9ybXMgbm8KLWJvdW5kcyBvciBzaXplIGNoZWNraW5nLiAgIFRodXMsIGEgZnVuY3Rpb24gc3VjaCBhcyAKLQotPGJsb2NrcXVvdGU+PHByZT4KLXZvaWQgZm9vKGRvdWJsZSBhWzRdWzRdKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotd291bGQgYWNjZXB0IDxlbT5hbnk8L2VtPiBvYmplY3Qgb2YgdHlwZSA8dHQ+ZG91YmxlICo8L3R0Pi4gIEl0IGlzCi11cCB0byB0aGUgdXNlciB0byBlbnN1cmUgdGhhdCB0aGUgcG9pbnRlciBpcyB2YWxpZCBhbmQgdGhhdCBpdAotcG9pbnRzIHRvIG1lbW9yeSB0aGF0IGhhcyBiZWVuIHByb3Blcmx5IGFsbG9jYXRlZC4KLQotPGg0PiAzLjMuMyBTdHJ1Y3R1cmVzIGFuZCBPYmplY3RzPC9oND4KLQotRmluYWxseSwgYWxsIHN0cnVjdHVyZXMgYW5kIG9iamVjdHMgYXJlIHJlcHJlc2VudGVkIGFzCi1wb2ludGVycy4gIFRoaXMgaW5jbHVkZXMgY2FzZXMgd2hlcmUgb2JqZWN0cyBhcmUgbWFuaXB1bGF0ZWQKLWJ5IHZhbHVlLiAgRm9yIGV4YW1wbGUsIHRoZSBmdW5jdGlvbnMKLQotPGJsb2NrcXVvdGU+PHByZT4KLWRvdWJsZSBkb3RfcHJvZHVjdChWZWN0b3IgYSwgVmVjdG9yIGIpOwotVmVjdG9yIGNyb3NzX3Byb2R1Y3QoVmVjdG9yIGEsIFZlY3RvciBiKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotCi1hcmUgdHJhbnNmb3JtZWQgYnkgU1dJRyBpbnRvIHRoZSBmb2xsb3dpbmcgd3JhcHBlcnMgW2Zvb3Rub3RlOiBXaGVuCi1DKysgaXMgdXNlZCwgIFNXSUcgdXNlcyB0aGUgZGVmYXVsdCBjb3B5IGNvbnN0cnVjdG9yIGluc3RlYWQgb2YKLTx0dD5tYWxsb2M8L3R0Pl06Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci1kb3VibGUKLXdyYXBfZG90X3Byb2R1Y3QoVmVjdG9yICphLCBWZWN0b3IgKmIpIHsKLSAgcmV0dXJuIGRvdF9wcm9kdWN0KCphLCpiKTsKLX0KLVZlY3RvciAqCi13cmFwX2Nyb3NzX3Byb2R1Y3QoVmVjdG9yICphLCBWZWN0b3IgKmIpIHsKLSAgVmVjdG9yICpyOwotICByID0gKFZlY3RvciAqKSBtYWxsb2Moc2l6ZW9mKFZlY3RvcikpOwotICAqciA9IGNyb3NzX3Byb2R1Y3QoKmEsKmIpOwotICByZXR1cm4gcjsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVGhlIHJlcHJlc2VudGF0aW9uIG9mIG9iamVjdHMgYnkgcmVmZXJlbmNlIGF2b2lkcwotdGhlIHByb2JsZW0gb2YgbWFyc2hhbGluZyBvYmplY3RzIGJldHdlZW4gYSBDIGFuZCBQZXJsIHJlcHJlc2VudGF0aW9uLS1hCi1wcm9jZXNzIHRoYXQgd291bGQgYmUgZXh0cmVtZWx5IGRpZmZpY3VsdCBmb3IKLXZlcnkgY29tcGxpY2F0ZWQgQyBkYXRhdHlwZXMuICBJdCBhbHNvIHByb3ZpZGVzIGJldHRlciBwZXJmb3JtYW5jZQotc2luY2UgbWFuaXB1bGF0aW5nIHJlZmVyZW5jZXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBjb3B5aW5nIG9iamVjdAotZGF0YSBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIGxhbmd1YWdlcy4gIEZpbmFsbHksIHRoZSB1c2Ugb2YgcmVmZXJlbmNlcyAKLWNsb3NlbHkgbWF0Y2hlcyB0aGUgd2F5IGluIHdoaWNoIG1vc3QgQy9DKysgcHJvZ3JhbXMgYWxyZWFkeSBoYW5kbGUgCi1vYmplY3RzLiAgCi0KLTxwPgotVGhlIGRvd25zaWRlIHRvIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBvYmplY3RzIGFyZSBvcGFxdWUgaW4gUGVybC4KLVRoaXMgcHJldmVudHMgdXNlcnMgZnJvbSBleGFtaW5pbmcgdGhlaXIgY29udGVudHMgZGlyZWN0bHkuICBJbgotYWRkaXRpb24sIFNXSUcgd3JhcHBlcnMgb2NjYXNpb25hbGx5IG5lZWQgdG8gcGVyZm9ybSBpbXBsaWNpdCBtZW1vcnkKLWFsbG9jYXRpb25zIGFzIHNob3duIGFib3ZlLiAgSXQgaXMgdXAgdGhlIHVzZXIgdG8gZnJlZSB0aGUgcmVzb3VyY2VzCi11c2VkIGJ5IHN1Y2ggZnVuY3Rpb25zIChvciBsZWFybiB0byBsaXZlIHdpdGggYSBtZW1vcnkgbGVhaykuICBPZgotY291cnNlLCB0aGlzIG5hdHVyYWxseSBicmluZ3MgdXMgdG8gdGhlIG5leHQgdG9waWMuCi0KLTxoND4gMy4zLjQgTWVtb3J5IE1hbmFnZW1lbnQ8L2g0PgotCi1TV0lHIG1haW50YWlucyBhIHN0cmljdCBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIG1hbmFnZW1lbnQgb2YgUGVybCBhbmQgQyAKLW9iamVjdHMuICBXaGlsZSBQZXJsIHVzZXMgcmVmZXJlbmNlIGNvdW50aW5nIHRvIGtlZXAgdHJhY2sgb2YgaXRzCi1vd24gb2JqZWN0cywgdGhpcyBzY2hlbWUgaXMgbm90IGV4dGVuZGVkIHRvIEMvQysrCi1leHRlbnNpb25zIGNyZWF0ZWQgd2l0aCBTV0lHLiAgVGh1cywgd2hlbiBQZXJsIGRlc3Ryb3lzIGEgYmxlc3NlZAotcmVmZXJlbmNlIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIGEgQyBwb2ludGVyLCAgb25seSB0aGUgcG9pbnRlcgotdmFsdWUgZGlzYXBwZWFycywgbm90IHRoZSB1bmRlcmx5aW5nIEMgZGF0YSB0aGF0IGl0IHBvaW50cyB0by4KLQotPHA+Ci1Gcm9tIGEgdXNlciBzdGFuZHBvaW50LCBTV0lHIGdlbmVyYXRlZCBDL0MrKyBleHRlbnNpb25zIGZvbGxvdyB0aGUKLXNhbWUgbWVtb3J5IG1hbmFnZW1lbnQgcnVsZXMgYXMgdGhlIHVuZGVybHlpbmcgYXBwbGljYXRpb24uCi1UaHVzLCBpZiBhIHByb2dyYW0gcmVsaWVzIG9uIDx0dD5tYWxsb2M8L3R0PiBhbmQgPHR0PmZyZWU8L3R0PiB0byBhbGxvY2F0ZQotYW5kIGRlYWxsb2NhdGUgb2JqZWN0cywgdGhlc2Ugd2lsbCBhbHNvIGJlIHVzZWQgZnJvbSB0aGUgUGVybAotaW50ZXJwcmV0ZXIuICBMaWtld2lzZSwgYSBDKysgZXh0ZW5zaW9uIHR5cGljYWxseSByZXF1aXJlcwotZXhwbGljaXQgaW52b2NhdGlvbiBvZiBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLiAgRnVydGhlcm1vcmUsIGZvcgotZnVuY3Rpb25zIHRoYXQgaW1wbGljaXRseSBhbGxvY2F0ZSBtZW1vcnkgYXMgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb24sCi1pdCBpcyB1cCB0byB0aGUgdXNlciB0byBleHBsaWNpdGx5IGRlc3Ryb3kgdGhlIHJlc3VsdCB1c2luZyA8dHQ+Ci1mcmVlPC90dD4gb3IgYSBDKysgZGVzdHJ1Y3Rvci4gV2hpbGUgc3VjaCBhIHNjaGVtZSBtYXkgc2VlbSBwcm9ibGVtYXRpYywKLWl0IGlzIG5vIGxlc3MgcHJvYmxlbWF0aWMgdGhhbiBtZW1vcnkgbWFuYWdlbWVudCBpbiBDICh3aGljaCBtYXkgb3IKLW1heSBub3QgYmUgYSBnb29kIHRoaW5nIGRlcGVuZGluZyBvbiB5b3VyIHBvaW50IG9mIHZpZXcpLiAgRXZlbiBpZgotaXQgd2VyZSBwb3NzaWJsZSB0byBoYXZlIFBlcmwgYXV0b21hdGljYWxseSBtYW5hZ2UgQy9DKysgb2JqZWN0cywgdGhpcwotd291bGQgYmUgYW4gaW5oZXJlbnRseSBkYW5nZXJvdXMgYWZmYWlyLS1lc3BlY2lhbGx5IHNpbmNlIFBlcmwgaGFzIG5vCi13YXkgdG8ga25vdyBob3cgYW4gdW5kZXJseWluZyBDIGFwcGxpY2F0aW9uIHJlYWxseSBvcGVyYXRlcy4gRnVydGhlcm1vcmUsIGl0Ci13b3VsZCBiZSBhIGZhdGFsIGVycm9yIGZvciBQZXJsIHRvIGRlYWxsb2NhdGUgb2JqZWN0cyB0aGF0IHdlcmUgc3RpbGwKLWluIHVzZS4KLVRoZXJlZm9yZSwgU1dJRyBsZWF2ZXMgbWVtb3J5IG1hbmFnZW1lbnQgbGFyZ2VseSB1cCB0aGUgdXNlci4KLQotPGg0PiAzLjMuNSBQb2ludGVycywgQXJyYXlzLCBhbmQgUGVybDwvaDQ+Ci0KLUEgY29tbW9uIGNvbmZ1c2lvbiBhbW9uZyBzb21lIG5vdmljZSB1c2VycyBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIAotQyBkYXRhdHlwZXMgYW5kIHNpbWlsYXIgUGVybCBkYXRhdHlwZXMuICAgCi1JbiBwYXJ0aWN1bGFyLCAgUGVybCByZWZlcmVuY2VzIGFyZSBub3QgdGhlCi1zYW1lIGFzIGEgQyBwb2ludGVycyBhbmQgUGVybCBhcnJheXMgYXJlIG5vdCB0aGUgc2FtZSBhcyBDIGFycmF5cy4gIERpZmZlcmVuY2VzCi1hbHNvIGFwcGx5IHRvIG90aGVyIGRhdGF0eXBlcyBzdWNoIGFzIGZpbGVzICh0aGlzIGlzIHRoZSByZWFzb24gdGhhdAotdGhlIHNpbXBsZSBleGFtcGxlIGluY2x1ZGVkIHByb3RvdHlwZXMgZm9yIDx0dD5mb3BlbjwvdHQ+IGFuZCA8dHQ+ZmNsb3NlPC90dD4pLgotVGhlIHByaW1hcnkgcmVhc29uIGZvcgotdGhlc2UgZGlmZmVyZW5jZXMgaXMgdGhhdCBvYmplY3RzIGluIFBlcmwgaGF2ZSBhIGRpZmZlcmVudCBpbnRlcm5hbAotcmVwcmVzZW50YXRpb24gdGhhbiBvYmplY3RzIGluIEMuICBGb3IgZXhhbXBsZSwgYSBQZXJsIGFycmF5IGlzCi1yZXByZXNlbnRlZCBhcyBhIGNvbGxlY3Rpb24gb2YgcmVmZXJlbmNlcyB0byBQZXJsIG9iamVjdHMgd2hpY2ggbWF5IGJlIG9mIG1peGVkCi10eXBlcy4gIFRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGFycmF5IGlzIGVudGlyZWx5Ci1kaWZmZXJlbnQgdGhhbiB3aGF0IHdvdWxkIGJlIHVzZWQgZm9yIGEgbm9ybWFsIEMgYXJyYXkuICBUaGVyZWZvcmUsIGl0Ci1pcyBpbXBvc3NpYmxlIHRvIHRha2UgYSBQZXJsIGFycmF5IGFuZCBwYXNzIGl0IGluIHVubW9kaWZpZWQgZm9ybSB0bwotYW4gYXJiaXRyYXJ5IEMgZnVuY3Rpb24uCi0KLTxwPgotVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBQZXJsIGFuZCBDIGRhdGF0eXBlcyBvZnRlbiBhcmlzZXMgd2l0aAotQyBmdW5jdGlvbnMgc3VjaCBhcyB0aGUgZm9sbG93aW5nOgotCi08YmxvY2txdW90ZT48cHJlPgotLyogUGxvdCBzb21lIHBvaW50cyAqLwotdm9pZAotcGxvdHB0cyhnZEltYWdlUHRyIGltLCBpbnQgeFtdLCBpbnQgeVtdLAotICAgICAgICBpbnQgbnB0cywgIGludCBjKQotewotICAgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBucHRzOyBpKyspIHsKLSAgICAgIGdkSW1hZ2VTZXRQaXhlbChpbSx4W2ldLHlbaV0sYyk7Ci0gICB9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLQotSWRlYWxseSwgYSB1c2VyIG1pZ2h0IHdhbnQgdG8gcGFzcyBQZXJsIGFycmF5cyBhcyBhcmd1bWVudHMgCi1hcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotQGEgPSAoMTAsMjAsMzAsNDApOwotQGIgPSAoNTAsNzAsNjAsMjAwKTsKLWdkOjpwbG90cHRzKCRpbSxcQGEsXEBiLDQsMSk7ICMgRXJyb3IhCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLQotSG93ZXZlciwgdGhpcyBzY3JpcHQgZ2VuZXJhdGVzIGEgdHlwZSBlcnJvciBpbnN0ZWFkIG9mIGFjdGluZwotYXMgb25lIG1pZ2h0IGV4cGVjdC4gICAgV2hpbGUgc3VjaCBiZWhhdmlvciBtYXkgc2VlbSByZXN0cmljdGl2ZQotb3IgYml6YXJyZSwgU1dJRyBoYXMgYmVlbiBkZWxpYmVyYXRlbHkgZGVzaWduZWQgdG8gb3BlcmF0ZQotaW4gdGhpcyBtYW5uZXIuICAgSW4gZmFjdCwgdGhlcmUgYXJlIGV2ZW4gYmVuZWZpdHMgdG8gdGhpcyBhcHByb2FjaC4KLUlmIFBlcmwgYXJyYXlzIHdlcmUgdG8gYmUgdXNlZCBhcyBDIGFycmF5cywgYSAKLWNvcHkgd291bGQgYmUgbWFkZSwgdmVyaWZpZWQgZm9yIHR5cGUtY29ycmVjdG5lc3MsIGFuZCBkZWFsbG9jYXRlZCBldmVyeSAKLXRpbWUgYW4gYXJyYXkgd2FzIHBhc3NlZCB0byBhIEMgZnVuY3Rpb24uICBGb3IgbGFyZ2UgYXJyYXlzLCB0aGlzIHdvdWxkCi1pbnRyb2R1Y2UgYSBzdWJzdGFudGlhbCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4gICBTcGFjZSByZXF1aXJlbWVudHMgYXJlCi1hbHNvIGEgY29uY2VybiBmb3Igc29tZSBDIHByb2dyYW1zLiAgRm9yIGV4YW1wbGUsIGEgbnVtZXJpY2FsIGFwcGxpY2F0aW9uCi1taWdodCBtYW5pcHVsYXRlIGFycmF5cyB3aXRoIG1pbGxpb25zIG9mIGVsZW1lbnRzLiAgIENvbnZlcnRpbmcgc3VjaAotYXJyYXlzIHRvIGFuZCBmcm9tIGEgUGVybCByZXByZXNlbnRhdGlvbiB3b3VsZCBjbGVhcmx5IGludHJvZHVjZSBzdWJzdGFudGlhbCBtZW1vcnkKLWFuZCBwZXJmb3JtYW5jZSBvdmVyaGVhZC4gIEluIGNvbnRyYXN0LCBtYW5pcHVsYXRpbmcgcG9pbnRlcnMgdG8gc3VjaCBhcnJheXMKLWlzIGVhc3kgYW5kIGVmZmljaWVudC4KLQotPHA+Ci1JdCBzaG91bGQgYWxzbyBiZSBub3RlZCB0aGF0IFNXSUcgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGN1c3RvbWl6YXRpb24gb3B0aW9ucwotdGhhdCBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgaXRzIGJlaGF2aW9yLiAgSW4gZmFjdCwgb25lIGNhbiBldmVuIG1ha2UgU1dJRyBtYXAKLVBlcmwgYXJyYXlzIGludG8gQyBhcnJheXMgaWYgZGVzaXJlZC4gIFRoZXJlZm9yZSwgbW9zdCByZXN0cmljdGlvbnMKLWNhbiBiZSBlbGltaW5hdGVkIHdpdGggYSBsaXR0bGUgZXh0cmEgd29yay4gIFNvbWUgb2YgdGhlc2UgY3VzdG9taXphdGlvbiB0ZWNobmlxdWVzIGFyZQotZGVzY3JpYmVkIHNob3J0bHkuCi0KLTxoMz4gMy40IEhlbHBlciBGdW5jdGlvbnMgPC9oMz4KLQotU29tZXRpbWVzIHRoZSBQZXJsIGludGVyZmFjZSBjb25zdHJ1Y3RlZCBieSBTV0lHIGlzIGxhY2tpbmcgaW4KLWZ1bmN0aW9uYWxpdHkgb3IgaXMgZGlmZmljdWx0IHRvIHVzZS4gRm9yIGV4YW1wbGUsIGluIHRoZSBwcmV2aW91cwotc2VjdGlvbiwgYSBmdW5jdGlvbiBvcGVyYXRpbmcgb24gQyBhcnJheXMgd2FzIHByZXNlbnRlZC4gIFRvIGNvbnN0cnVjdAotQyBhcnJheXMgZnJvbSBQZXJsLCBpdCBpcyBuZWNlc3NhcnkgdG8gYWRkIHNvbWUgYWRkaXRpb25hbCAKLWZ1bmN0aW9ucyB0byB0aGUgU1dJRyBpbnRlcmZhY2UuICBUaGlzIGNhbiBiZSBkb25lIHVzaW5nIHRoZQotPHR0PiVpbmxpbmU8L3R0PiBkaXJlY3RpdmUgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIEFkZCBzb21lIGhlbHBlciBmdW5jdGlvbnMgZm9yIEMgYXJyYXlzCi0laW5saW5lICV7Ci1pbnQgKmludF9hcnJheShpbnQgc2l6ZSkgewotICAgcmV0dXJuIChpbnQgKikgbWFsbG9jKHNpemVvZihpbnQpKnNpemUpOwotfQotdm9pZCBpbnRfZGVzdHJveShpbnQgKmEpIHsKLSAgIGZyZWUoYSk7Ci19Ci12b2lkIGludF9zZXQoaW50ICphLCBpbnQgaSwgaW50IHZhbCkgewotICAgYVtpXSA9IHZhbDsKLX0KLWludCBpbnRfZ2V0KGludCAqYSwgaW50IGkpIHsKLSAgIHJldHVybiBhW2ldOwotfQotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotV2hlbiBTV0lHIGJ1aWxkcyB0aGUgc2NyaXB0aW5nIGludGVyZmFjZSwgdGhlc2UgZnVuY3Rpb25zCi1iZWNvbWUgcGFydCBvZiB0aGUgZXh0ZW5zaW9uIG1vZHVsZSBhbmQgY2FuIGJlIHVzZWQgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSMgQ29udmVydCBhIFBlcmwgYXJyYXkgaW50byBhIEMgaW50IGFycmF5Ci1zdWIgY3JlYXRlX2FycmF5IHsKLSAkbGVuID0gc2NhbGFyKEBfKTsKLSAkaWEgPSBnZDo6aW50X2FycmF5KCRsZW4pOwotIGZvciAoJGkgPSAwOyAkaSAmbHQ7ICRsZW47ICRpKyspIHsKLSAgICB2YWwgPSBzaGlmdDsKLSAgICBnZDo6aW50X3NldCgkaWEsJGksJHZhbCk7Ci0gfQotIHJldHVybiAkaWE7Ci19Ci0gICAKLUBhID0gKDEwLDIwLDMwLDQwKTsKLUBiID0gKDUwLDcwLDYwLDIwMCk7Ci0kaWEgPSBjcmVhdGVfYXJyYXkoQGEpOyAgIyBDcmVhdGUgQyBhcnJheXMKLSRpYiA9IGNyZWF0ZV9hcnJheShAYik7Ci1nZDo6cGxvdHB0cygkaW0sJGlhLCRpYiw0LDEpOwotLi4uCi1nZDo6aW50X2Rlc3Ryb3koJGlhKTsKLWdkOjppbnRfZGVzdHJveSgkaWIpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi08aDM+IDMuNSBDbGFzc2VzIGFuZCBTdHJ1Y3R1cmVzPC9oMz4KLQotV2hpbGUgU1dJRyByZXByZXNlbnRzIGFsbCBvYmplY3RzIGFzIG9wYXF1ZSBwb2ludGVycywgdGhlCi1jb250ZW50cyBvZiBhbiBvYmplY3QgY2FuIGJlIGV4YW1pbmVkIGFuZCBtb2RpZmllZCB0aHJvdWdoCi10aGUgdXNlIG9mIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotLyogRXh0cmFjdCBkYXRhIGZyb20gYW4gb2JqZWN0ICovCi1kb3VibGUgUG9pbnRfeF9nZXQoUG9pbnQgKnApIHsKLSAgICByZXR1cm4gcC0mZ3Q7eDsKLX0KLS8qIEludm9rZSBhIEMrKyBtZW1iZXIgZnVuY3Rpb24gKi8KLWludCBGb29fYmFyKEZvbyAqZikgewotICAgIHJldHVybiBmLSZndDtiYXIoKTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotRnJvbSBhIFBlcmwgc2NyaXB0LCBhIHVzZXIgc2ltcGx5IHBhc3NlcyBhbiBvYmplY3QgcG9pbnRlcgotdG8gYWNjZXNzb3IgZnVuY3Rpb25zIHRvIGV4dHJhY3QgaW50ZXJuYWwgaW5mb3JtYXRpb24KLW9yIGludm9rZSBtZW1iZXIgZnVuY3Rpb25zLgotCi08cD4KLVdoaWxlIGl0IGlzIHBvc3NpYmxlIHRvIHdyaXRlIGFjY2Vzc29yIGZ1bmN0aW9ucwotbWFudWFsbHksIFNXSUcgYXV0b21hdGljYWxseSBjcmVhdGVzIHRoZW0gd2hlbiBpdCBpcwotZ2l2ZW4gc3RydWN0dXJlIGFuZCBjbGFzcyBkZWZpbml0aW9ucy4gRm9yIGV4YW1wbGUsIGluIHRoZSBnZCBsaWJyYXJ5LCB0aGUKLWZvbGxvd2luZyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBjb250YWluIGltYWdlIGluZm9ybWF0aW9uOgotCi08YmxvY2txdW90ZT48cHJlPgotdHlwZWRlZiBzdHJ1Y3QgZ2RJbWFnZVN0cnVjdCB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgKiogcGl4ZWxzOwotICAgICAgICBpbnQgc3g7Ci0gICAgICAgIGludCBzeTsKLSAgICAgICAgaW50IGNvbG9yc1RvdGFsOwotLi4uCi19IGdkSW1hZ2U7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUlmIHRoaXMgc3RydWN0dXJlIGRlZmluaXRpb24gd2VyZSBwbGFjZWQgaW4gdGhlIFNXSUcKLWludGVyZmFjZSBmaWxlLCBhY2Nlc3NvciBmdW5jdGlvbnMgd291bGQgYXV0b21hdGljYWxseSBiZQotY3JlYXRlZC4gIFRoZXNlIGNvdWxkIHRoZW4gYmUgdXNlZCB0byBleHRyYWN0IGluZm9ybWF0aW9uCi1hYm91dCBpbWFnZXMgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSMhL3Vzci9iaW4vcGVybAotdXNlIGdkOwotJGltID0gZ2Q6OmdkSW1hZ2VDcmVhdGUoNDAwLDMwMCk7Ci0jIFByaW50IG91dCB0aGUgaW1hZ2Ugd2lkdGgKLXByaW50IGdkOjpnZEltYWdlX3N4X2dldCgkaW0pLCAiXG4iOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1BY2Nlc3NvciBmdW5jdGlvbnMgYXJlIGFsc28gY3JlYXRlZCBmb3IgQysrIGNsYXNzZXMgYW5kIE9iamVjdGl2ZS1DCi1pbnRlcmZhY2VzLiAgRm9yIGV4YW1wbGUsIHRoZSBjbGFzcyBkZWZpbml0aW9uCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci1jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLSAgIExpc3QoKTsKLSAgfkxpc3QoKTsKLSAgIHZvaWQgaW5zZXJ0KE9iamVjdCAqKTsKLSAgIE9iamVjdCAqZ2V0KGludCBpKTsKLSAgIGludCAgbGVuZ3RoKCk7Ci0gICAuLi4KLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLWlzIHRyYW5zbGF0ZWQgaW50byB0aGUgZm9sbG93aW5nIGFjY2Vzc29yIGZ1bmN0aW9uczoKLQotPGJsb2NrcXVvdGU+PHByZT4KLUxpc3QgKm5ld19MaXN0KCkgewotICAgcmV0dXJuIG5ldyBMaXN0OwotfQotdm9pZCBkZWxldGVfTGlzdChMaXN0ICpsKSB7Ci0gICBkZWxldGUgbDsKLX0KLXZvaWQgTGlzdF9pbnNlcnQoTGlzdCAqbCwgT2JqZWN0ICpvKSB7Ci0gICBsLSZndDtpbnNlcnQobyk7Ci19IAotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLTxoMz4gMy42IFNoYWRvdyBDbGFzc2VzIGFuZCBQZXJsIE9iamVjdHM8L2gzPgotCi1BcyBhbiBvcHRpb25hbCBmZWF0dXJlLCB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIGNyZWF0ZWQgYnkgU1dJRyBjYW4gYmUKLXVzZWQgdG8gd3JpdGUgUGVybCB3cmFwcGVyIGNsYXNzZXMgKHRoaXMgaXMgZW5hYmxlZCBieSBydW5uaW5nIFNXSUcKLXdpdGggdGhlIDx0dD4tc2hhZG93PC90dD4gb3B0aW9uKS4gIFdoaWxlIGFsbCB0aGUgZ29yeSBkZXRhaWxzIGNhbiBiZQotZm91bmQgaW4gdGhlIFNXSUcgVXNlcnMgTWFudWFsLCB0aGUgZ2VuZXJhbCBpZGVhIGlzIHRoYXQgdGhlIGFjY2Vzc29yCi1mdW5jdGlvbnMgY2FuIGJlIGVuY2Fwc3VsYXRlZCBpbgotYSBQZXJsIGNsYXNzIHRoYXQgbWltaWNzIHRoZSBiZWhhdmlvciBvZiB0aGUgdW5kZXJseWluZyBvYmplY3QuICBGb3IgZXhhbXBsZSwKLQotPGJsb2NrcXVvdGU+PHByZT4KLQotcGFja2FnZSBMaXN0OwotQElTQSA9IHF3KCBleGFtcGxlICk7Ci1zdWIgbmV3IHsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15IEBhcmdzID0gQF87Ci0gICAgJHNlbGYgPSBuZXdfTGlzdChAYXJncyk7Ci0gICAgcmV0dXJuIHVuZGVmIGlmICghZGVmaW5lZCgkc2VsZikpOwotICAgIGJsZXNzICRzZWxmLCAiTGlzdCI7Ci0gICAgbXkgJXJldHZhbDsKLSAgICB0aWUgJXJldHZhbCwgIkxpc3QiLCAkc2VsZjsKLSAgICByZXR1cm4gYmxlc3MgXCVyZXR2YWwsIkxpc3QiOwotfQotc3ViIERFU1RST1kgewotICAgIGRlbGV0ZV9MaXN0KEBfKTsKLX0KLXN1YiBpbnNlcnQgewotICAgIHJldHVybiAkcmVzdWx0ID0gTGlzdF9pbnNlcnQoQF8pOwotfQotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGlzIGNsYXNzIHByb3ZpZGVzIGEgd3JhcHBlciBhcm91bmQgdGhlIHVuZGVybHlpbmcgb2JqZWN0IGFuZAotaXMgc2FpZCB0byBgYHNoYWRvdycnIHRoZSBvcmlnaW5hbCBvYmplY3QuIAotU2hhZG93IGNsYXNzZXMgYWxsb3cgQyBhbmQgQysrIG9iamVjdHMgdG8gYmUgdXNlZCBmcm9tIFBlcmwKLWluIGEgbmF0dXJhbCBtYW5uZXIuICBGb3IgZXhhbXBsZSwKLQotPGJsb2NrcXVvdGU+PHByZT4KLSRsID0gbmV3IExpc3Q7Ci0kbC0mZ3Q7aW5zZXJ0KCRvKTsKLS4uLgotJGwtJmd0O0RFU1RST1koKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotRm9yIEMgc3RydWN0dXJlcywgYWNjZXNzIHRvIHZhcmlvdXMgYXR0cmlidXRlcyBhcmUgcHJvdmlkZWQgdGhyb3VnaAotdGllZCBoYXNoIHRhYmxlcy4gIEZvciB0aGUgZ2QgbGlicmFyeSwgbWVtYmVycyBvZiB0aGUKLWltYWdlIGRhdGEgc3RydWN0dXJlIGNvdWxkIGJlIGFjY2Vzc2VkIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0kaW0gPSBnZDo6Z2RJbWFnZUNyZWF0ZSg0MDAsNDAwKTsKLSR3aWR0aCA9ICRpbS0mZ3Q7e3N4fTsKLSRoZWlnaHQgPSAkaW0tJmd0O3tzeX07Ci0uLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVGhlIG90aGVyIHNpZ25pZmljYW50IGFzcGVjdCBvZiBzaGFkb3cgY2xhc3NlcyBpcyB0aGF0IHRoZXkgYWxsb3cgUGVybAotdG8gcGVyZm9ybSBhIGxpbWl0ZWQgZm9ybSBvZiBhdXRvbWF0aWMgbWVtb3J5IG1hbmFnZW1lbnQgZm9yIEMvQysrCi1vYmplY3RzLiAgSWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQgZnJvbSBQZXJsIHVzaW5nIGEgc2hhZG93IGNsYXNzLCB0aGUKLTx0dD5ERVNUUk9ZPC90dD4gbWV0aG9kIG9mIHRoYXQgY2xhc3MgYXV0b21hdGljYWxseSBpbnZva2VzIHRoZSBDKysKLWRlc3RydWN0b3Igd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4gIEFzIGEgcmVzdWx0LCBDL0MrKyBvYmplY3RzCi13cmFwcGVkIGJ5IHNoYWRvdyBjbGFzc2VzIGNhbiBiZSBtYW5hZ2VkIHVzaW5nIHRoZSBzYW1lIHJlZmVyZW5jZSBjb3VudGluZwotc2NoZW1lIHV0aWxpemVkIGJ5IG90aGVyIFBlcmwgZGF0YXR5cGVzLgotCi08aDM+IDMuNyBDbGFzcyBFeHRlbnNpb248L2gzPgotCi1XaGVuIGJ1aWxkaW5nIG9iamVjdC1vcmllbnRlZCBQZXJsIGludGVyZmFjZXMsIGl0IGlzIHNvbWV0aW1lcyB1c2VmdWwKLXRvIG1vZGlmeSBvciBleHRlbmQgb2JqZWN0cyB3aXRoIG5ldyBjYXBhYmlsaXRpZXMuICAgRm9yIGV4YW1wbGUsCi10aGUgZ2QgbGlicmFyeSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgZm9yIGRlZmluaW5nIHBvaW50czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBpbnQgeCx5OwotfSBnZFBvaW50OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi0KLVRvIG1ha2UgdGhpcyBzdHJ1Y3R1cmUgbW9yZSB1c2VmdWwsIHdlIGNhbiBhZGQgY29uc3RydWN0b3JzLCBkZXN0cnVjdG9ycywKLWFuZCB2YXJpb3VzIG1ldGhvZHMgdG8gaXQgKHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBpbXBsZW1lbnRlZCBpbiBDIG9yCi1DKyspLiAgVG8gZG8gdGhpcywgdGhlIFNXSUcgPHR0PiVhZGRtZXRob2RzPC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBBZGQgc29tZSBtZXRob2RzIHRvIHBvaW50cyAqLwotJWFkZG1ldGhvZHMgZ2RQb2ludCB7Ci0vKiBDcmVhdGUgYSBwb2ludCBvciBhbiBhcnJheSBvZiBwb2ludHMgKi8KLWdkUG9pbnQoaW50IG5wdHMgPSAxKSB7Ci0gIHJldHVybiAoZ2RQb2ludCAqKSAKLSAgICAgIG1hbGxvYyhzaXplb2YoZ2RQb2ludCkqbnB0cyk7Ci19Ci0vKiBEZXN0cm95IGEgcG9pbnQgKi8KLX5nZFBvaW50KCkgewotICBmcmVlKHNlbGYpOwotfQotLyogQXJyYXkgaW5kZXhpbmcgKi8KLWdkUG9pbnQgKmdldChpbnQgaSkgewotICByZXR1cm4gc2VsZitpOwotfQotLyogQSBkZWJ1Z2dpbmcgZnVuY3Rpb24gKi8KLXZvaWQgb3V0cHV0KCkgewotICBwcmludGYoIiglZCwlZClcbiIsc2VsZi0mZ3Q7eCxzZWxmLSZndDt5KTsKLX0KLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLU5vdywgaW4gdGhlIFBlcmwgaW50ZXJmYWNlIDx0dD5nZFBvaW50PC90dD4gd2lsbCBhcHBlYXIganVzdCBsaWtlIGEgCi1jbGFzcyB3aXRoIGNvbnN0cnVjdG9ycywgZGVzdHJ1Y3RvcnMsIGFuZCBtZXRob2RzLiAgRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIENyZWF0ZSBhIHBvaW50Ci0kcHQgPSBuZXcgZ2RQb2ludDsKLSRwdC0mZ3Q7e3h9ID0gMjA7Ci0kcHQtJmd0O3t5fSA9IDUwOwotJHB0LSZndDtvdXRwdXQoKTsKLQotIyBDcmVhdGUgYW4gYXJyYXkgb2YgcG9pbnRzCi0kcHRzID0gbmV3IGdkUG9pbnQoMTApOwotZm9yICgkaSA9IDA7ICRpICZsdDsgMTA7ICRpKyspIHsKLSAgICRwID0gJHB0cy0mZ3Q7Z2V0KCRpKTsKLSAgICRwLSZndDt7eH0gPSAkaTsKLSAgICRwLSZndDt7eX0gPSAxMCokaTsKLX0KLQotIyBQYXNzIHRoZSBwb2ludHMgdG8gYSBmdW5jdGlvbgotZ2Q6OmdkSW1hZ2VQb2x5Z29uKCRpbSwkcHRzLDEwLDEpOwotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoZSBjbGFzcyBleHRlbnNpb24gbWVjaGFuaXNtIGlzIGFsc28gYSBwb3dlcmZ1bAotd2F5IHRvIHJlcGFja2FnZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LiAgRm9yIGV4YW1wbGUsIHRoZQotPHR0PmdkSW1hZ2U8L3R0PiBzdHJ1Y3R1cmUgYW5kIHZhcmlvdXMgZnVuY3Rpb25zIGluIHRoZSBnZCBsaWJyYXJ5Ci1jb3VsZCBiZSBjb21iaW5lZCBpbnRvIGEgUGVybCBjbGFzcyBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotJWFkZG1ldGhvZHMgZ2RJbWFnZSB7Ci1nZEltYWdlKGludCB3LCBpbnQgaCkgewotICByZXR1cm4gZ2RJbWFnZUNyZWF0ZSh3LGgpOwotfQotfmdkSW1hZ2UoKSB7Ci0gIGdkSW1hZ2VEZXN0cm95KHNlbGYpOwotfQotaW50Ci1jb2xvckFsbG9jYXRlKGludCByLCBpbnQgZywgaW50IGIpIHsKLSAgcmV0dXJuIGdkSW1hZ2VDb2xvckFsbG9jYXRlKHNlbGYscixnLGIpOwotfQotdm9pZAotbGluZShpbnQgeDEsaW50IHkxLGludCB4MixpbnQgeTIsaW50IGMpIHsKLSAgZ2RJbWFnZUxpbmUoc2VsZix4MSx5MSx4Mix5MixjKTsKLX0KLS4uLgotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVXNlcnMgY2FuIG5vdyB3cml0ZSBzY3JpcHRzIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIS91c3IvYmluL3BlcmwKLXVzZSBnZDsKLSRpbSA9IG5ldyBnZEltYWdlKDQwMCw0MDApOwotJGJsYWNrID0gJGltLSZndDtjb2xvckFsbG9jYXRlKDAsMCwwKTsKLSR3aGl0ZSA9ICRpbS0mZ3Q7Y29sb3JBbGxvY2F0ZSgyNTUsMjU1LDI1NSk7Ci0kaW0tJmd0O2xpbmUoMjAsNTAsMTgwLDE0MCwkd2hpdGUpOwotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVdpdGggdGhlc2Ugc2ltcGxlIG1vZGlmaWNhdGlvbnMsIG91ciBpbnRlcmZhY2UgaXMgYWxyZWFkeQotbG9va2luZyByZW1hcmthYmx5IHNpbWlsYXIgdG8gdGhhdCB1c2VkIGluIHRoZSBHRCBtb2R1bGUKLW9uIENQQU4uICBIb3dldmVyLCBtb3JlIGltcHJvdmVtZW50cyB3aWxsIGJlIGRlc2NyaWJlZCBzaG9ydGx5LgotCi08aDM+IDMuOCBBY2Nlc3MgQ29udHJvbCBhbmQgTmFtaW5nPC9oMz4KLQotSW4gY2VydGFpbiBpbnN0YW5jZXMsIGl0IG1heSBiZSB1c2VmdWwgdG8gcmVzdHJpY3QgYWNjZXNzIHRvCi1jZXJ0YWluIHZhcmlhYmxlcyBhbmQgY2xhc3MgbWVtYmVycy4gICBIaWRpbmcgb2JqZWN0cyBpcyBlYXN5LS1zaW1wbHkKLXJlbW92ZSB0aGVtIGZyb20gdGhlIGludGVyZmFjZSBmaWxlLiAgIFByb3ZpZGluZyByZWFkLW9ubHkgYWNjZXNzIGNhbgotYmUgYWNjb21wbGlzaGVkIHVzaW5nIHRoZSA8dHQ+JXJlYWRvbmx5PC90dD4gYW5kCi08dHQ+JXJlYWR3cml0ZTwvdHQ+IGRpcmVjdGl2ZXMuICBGb3IgZXhhbXBsZSwKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIENyZWF0ZSByZWFkLW9ubHkgdmFyaWFibGVzCi0lcmVhZG9ubHkKLWludCBmb287ICAgICAgICAgLy8gUmVhZC1vbmx5Ci1kb3VibGUgYmFyOyAgICAgIC8vIFJlYWQtb25seQotJXJlYWR3cml0ZQotCi0vLyBDcmVhdGUgcmVhZC1vbmx5IGNsYXNzIG1lbWJlcnMKLWNsYXNzIExpc3QgewotLi4uCi0lcmVhZG9ubHkKLSAgICBpbnQgbGVuZ3RoOyAgLy8gUmVhZC1vbmx5IG1lbWJlcgotJXJlYWR3cml0ZQotLi4uCi19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLQotV2hlbiByZWFkLW9ubHkgbW9kZSBpcyB1c2VkLCBhdHRlbXB0cyB0byBtb2RpZnkgYSB2YWx1ZSBmcm9tCi1QZXJsIHJlc3VsdCBpbiBhIHJ1bi10aW1lIGVycm9yLgotCi08cD4KLUFub3RoZXIgY29tbW9uIHByb2JsZW0gaXMgY2hhbmdpbmcgdGhlIG5hbWUgb2YgdmFyaW91cyBDIGRlY2xhcmF0aW9ucy4KLUZvciBleGFtcGxlLCBhIEMgZnVuY3Rpb24gbmFtZSBtYXkgY29uZmxpY3Qgd2l0aCBhbiBleGlzdGluZyBQZXJsIGtleXdvcmQgb3Igc3Vicm91dGluZS4gIFRvCi1maXggdGhpcyBwcm9ibGVtLCB0aGUgPHR0PiVuYW1lPC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkLiAgRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lbmFtZShjcGFjaykgdm9pZCBwYWNrKE9iamVjdCAqKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotCi1jcmVhdGVzIGEgbmV3IGNvbW1hbmQgYGBjcGFjay4nJyAgIElmIG5hbWUgY29uZmxpY3RzIG9jY3VyIHJlcGVhdGVkbHksCi10aGUgPHR0PiVyZW5hbWU8L3R0PiBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIGFsbCBmdXR1cmUgb2NjdXJyZW5jZXMKLW9mIGEgcGFydGljdWxhciBpZGVudGlmaWVyIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lcmVuYW1lIHBhY2sgY3BhY2s7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoZSByZW5hbWluZyBvcGVyYXRpb25zIGNhbiBhbHNvIGJlIGFwcGxpZWQgdG8gQy9DKysgY2xhc3MgYW5kIHN0cnVjdHVyZQotbmFtZXMgYXMgbmVlZGVkLiAgRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lbmFtZShJbWFnZSkgY2xhc3MgZ2RJbWFnZSB7Ci0uLi4KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotPGgzPiAzLjkgRXhjZXB0aW9uIEhhbmRsaW5nIDwvaDM+Ci0KLVRvIGNhdGNoIGVycm9ycywgU1dJRyBhbGxvd3MgdXNlcnMgdG8gY3JlYXRlIHVzZXItZGVmaW5lZCBleGNlcHRpb24KLWhhbmRsZXJzIHVzaW5nIHRoZSA8dHQ+JWV4Y2VwdDwvdHQ+IGRpcmVjdGl2ZS4gIFRoZXNlIGhhbmRsZXJzIGFyZQotcmVzcG9uc2libGUgZm9yIGNhdGNoaW5nIGFuZCBjb252ZXJ0aW5nIEMvQysrIHJ1bnRpbWUgZXJyb3JzIGludG8gUGVybAotZXJyb3JzLiAgQXMgYW4gZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBlcnJvciBoYW5kbGVyIGNhbiBiZSB1c2VkIHRvCi1jYXRjaCBlcnJvcnMgaW4gdGhlIHN0YW5kYXJkIEMgbGlicmFyeToKLQotPGJsb2NrcXVvdGU+PHByZT4KLSVleGNlcHQocGVybDUpIHsKLSAgIGVycm5vID0gMDsKLSAgICRmdW5jdGlvbgotICAgaWYgKGVycm5vKSB7Ci0gICAgICBkaWUoc3RyZXJyb3IoZXJybm8pKTsKLSAgIH0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotV2hlbiBkZWZpbmVkLCB0aGUgZXhjZXB0aW9uIGhhbmRsaW5nIGNvZGUgaXMgcGxhY2VkIGludG8gYWxsIG9mIHRoZQotd3JhcHBlciBmdW5jdGlvbnMuIEluIHRoZSBwcm9jZXNzLCB0aGUgPHR0PgotJGZ1bmN0aW9uPC90dD4gdG9rZW4gaXMgcmVwbGFjZWQgYnkgdGhlIGFjdHVhbCBDIGZ1bmN0aW9uIGNhbGwuICBGb3IgdGhlCi1leGFtcGxlIHNob3duLCB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgcmVzZXRzIHRoZSA8dHQ+ZXJybm88L3R0PiB2YXJpYWJsZQotYW5kIGNhbGxzIHRoZSBDIGZ1bmN0aW9uLiAgSWYgdGhlIHZhbHVlIG9mIDx0dD5lcnJubzwvdHQ+IGlzIG1vZGlmaWVkIHRvCi1hIG5vbi16ZXJvIHZhbHVlLCBhbiBlcnJvciBtZXNzYWdlIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSBDIGxpYnJhcnkKLWFuZCByZXBvcnRlZCBiYWNrIHRvIFBlcmwuICAgCi0KLTxwPgotV2hpbGUgY2F0Y2hpbmcKLWVycm9ycyBpbiB0aGUgQyBsaWJyYXJ5IGhhcyBiZWVuIGlsbHVzdHJhdGVkLCBleGNlcHRpb24gaGFuZGxlcnMKLWNhbiBhbHNvIGJlIHdyaXR0ZW4gdG8gY2F0Y2ggQysrIGV4Y2VwdGlvbnMgb3IgdG8gdXNlIGFueQotc3BlY2lhbCBwdXJwb3NlIGVycm9yIGhhbmRsaW5nIGNvZGUgdGhhdCBtaWdodCBiZSBwcmVzZW50IGluIGFuCi1hcHBsaWNhdGlvbi4KLQotPGgzPiAzLjEwIFR5cGVtYXBzPC9oMz4KLQotVHlwZW1hcHMgYXJlIG9uZSBvZiBTV0lHJ3MgbW9zdCBwb3dlcmZ1bCBmZWF0dXJlcyBhbmQgdGhlIHByaW1hcnkKLW1lYW5zIG9mIGN1c3RvbWl6YXRpb24uICBTaW1wbHkgc3RhdGVkLCBhCi10eXBlbWFwIGlzIGEgc21hbGwgYml0IG9mIEMgY29kZSB0aGF0IGNhbiBiZSBnaXZlbiB0byBTV0lHIHRvIG1vZGlmeQotdGhlIHdheSB0aGF0IGl0IHByb2Nlc3NlcyBzcGVjaWZpYyBkYXRhdHlwZXMuICAKLUZvciBpbnN0YW5jZSwgUGVybCBhcnJheXMgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIEMgYXJyYXlzLCBQZXJsCi1yZWZlcmVuY2VzIGNhbiBiZSBzdWJzdGl0dXRlZCBmb3IgcG9pbnRlcnMsIGFuZCBzbyBmb3J0aC4gIFRoaXMKLXNlY3Rpb24gYnJpZWZseSBpbnRyb2R1Y2VzIHR5cGVtYXBzIGFuZCB0aGVpciB1c2UuICBIb3dldmVyLCB0eXBlbWFwcwotYXJlIGEgY29tcGxpY2F0ZWQgdG9waWMgc28gaXQgaXMgaW1wb3NzaWJsZSB0byBjb3ZlciBhbGwgb2YgdGhlIGRldGFpbHMKLWhlcmUgYW5kIGludGVyZXN0ZWQgcmVhZGVycyBhcmUgc3Ryb25nbHkgYWR2aXNlZCB0byBjb25zdWx0IHRoZSBTV0lHIGRvY3VtZW50YXRpb24uCi0KLTxoND4gMy4xMC4xIEV4YW1wbGU6IE91dHB1dCBWYWx1ZXM8L2g0PgotCi1BcyBhIGZpcnN0IHR5cGVtYXAgZXhhbXBsZSwgY29uc2lkZXIgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdmFsdWVzIHRocm91Z2ggaXRzCi1wYXJhbWV0ZXJzIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci12b2lkCi1pbWFnZXNpemUoZ2RJbWFnZVB0ciBpbSwgaW50ICp3LCBpbnQgKmgpIHsKLSAgICAqdyA9IGdkSW1hZ2VTWChpbSk7Ci0gICAgKmggPSBnZEltYWdlU1koaW0pOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1BcyBpcywgdGhpcyBmdW5jdGlvbiB3b3VsZCBiZSBkaWZmaWN1bHQgdG8gdXNlIGJlY2F1c2UgdGhlCi11c2VyIG11c3Qgd3JpdGUgaGVscGVyIGZ1bmN0aW9ucyB0byBtYW51ZmFjdHVyZSwgZGVyZWZlcmVuY2UsCi1hbmQgZGVzdHJveSBpbnRlZ2VyIHBvaW50ZXJzLiAgVGhlc2UgZnVuY3Rpb25zIG1pZ2h0IGJlIHVzZWQgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSR3cHRyID0gbmV3X2ludGVnZXIoKTsgICMgQ3JlYXRlIGFuICdpbnQgKicKLSRocHRyID0gbmV3X2ludGVnZXIoKTsKLWltYWdlc2l6ZSgkaW0sICR3cHRyLCAkaHB0cik7ICAKLSR3ID0gaW50ZWdlcl92YWx1ZSgkd3B0cik7ICMgRGVyZWZlcmVuY2UKLSRoID0gaW50ZWdlcl92YWx1ZSgkaHB0cik7Ci1kZWxldGVfaW50ZWdlcigkd3B0cik7ICAgICAjIENsZWFuIHVwCi1kZWxldGVfaW50ZWdlcigkaHB0cik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUEgbW9yZSBlbGVnYW50IHNvbHV0aW9uIGlzIHRvIHVzZSB0aGUgU1dJRyB0eXBlbWFwIGxpYnJhcnkKLWluIHRoZSBpbnRlcmZhY2UgZmlsZSBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotJWluY2x1ZGUgdHlwZW1hcHMuaQotdm9pZCBpbWFnZXNpemUoZ2RJbWFnZVB0ciBpbSwgaW50ICpPVVRQVVQsCi0gICAgICAgICAgICAgICBpbnQgKk9VVFBVVCk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLQotTm93LCBpbiB0aGUgUGVybCBzY3JpcHQsIGl0IGlzIHBvc3NpYmxlIHRvIGRvIHRoaXM6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0oJHcsJGgpID0gaW1hZ2VzaXplKCRpbSk7IAotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1JbiBhIHNpbWlsYXIgc3Bpcml0LCBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZQotUGVybCByZWZlcmVuY2VzLiAgRm9yIGV4YW1wbGU6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0laW5jbHVkZSB0eXBlbWFwcy5pCi12b2lkCi1pbWFnZXNpemUoZ2RJbWFnZVB0ciBpbSwgaW50ICpSRUZFUkVOQ0UsCi0gICAgICAgICAgaW50ICpSRUZFUkVOQ0UpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi0KLU5vdyBpbiBQZXJsOgotCi08YmxvY2txdW90ZT48cHJlPgotIyBSZXR1cm4gdmFsdWVzIGluICR3IGFuZCAkaAotaW1hZ2VzaXplKCRpbSxcJHcsXCRoKTsgCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRvIGltcGxlbWVudCB0aGlzIGJlaGF2aW9yLCB0aGUgZmlsZSA8dHQ+dHlwZW1hcHMuaTwvdHQ+IGRlZmluZXMKLWEgY29sbGVjdGlvbiBvZiB0eXBlbWFwIGBgcnVsZXMnJyB0aGF0IGFyZSBhdHRhY2hlZCB0byBzcGVjaWZpYwotZGF0YXR5cGVzIHN1Y2ggYXMgPHR0PmludCAqT1VUUFVUPC90dD4gYW5kIDx0dD5pbnQgKlJFRkVSRU5DRTwvdHQ+LgotVGhlIGNyZWF0aW9uIG9mIHRoZXNlIHJ1bGVzIGlzIG5vdyBkaXNjdXNzZWQuCi0KLTxoND4gMy4xMC4yIENyZWF0aW5nIE5ldyBUeXBlbWFwczwvaDQ+Ci0KLUFsbCB3cmFwcGVyIGZ1bmN0aW9ucyBwZXJmb3JtIGEgY29tbW9uIHNlcXVlbmNlIG9mIGludGVybmFsIGBgb3BlcmF0aW9ucy4nJwotRm9yIGV4YW1wbGUsIGFyZ3VtZW50cyBtdXN0IGJlIGNvbnZlcnRlZCBmcm9tIFBlcmwgaW50byBhCi1DIHJlcHJlc2VudGF0aW9uLCBhIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIG11c3QgYmUgY29udmVydGVkIGJhY2sgaW50byAKLVBlcmwsIGFyZ3VtZW50IHZhbHVlcyBtaWdodCBiZSBjaGVja2VkLCBhbmQgc28gZm9ydGguICBTV0lHIGdpdmVzIGVhY2ggb2YKLXRoZXNlIG9wZXJhdGlvbnMgYSB1bmlxdWUgbmFtZSBzdWNoIGFzIGBgaW4nJyBmb3IgaW5wdXQgcGFyYW1ldGVyIHByb2Nlc3NpbmcsCi1gYG91dCcnIGZvciByZXR1cm5pbmcgdmFsdWVzLCBgYGNoZWNrJycgZm9yIGNoZWNraW5nIHZhbHVlcywgYW5kIHNvIGZvcnRoLgotVHlwZW1hcHMgYWxsb3cgYSB1c2VyIHRvIHJlLWltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGZvciBzcGVjaWZpYyBkYXRhdHlwZXMKLWJ5IHN1cHBseWluZyBzbWFsbCBmcmFnbWVudHMgb2YgQyBjb2RlIHRoYXQgU1dJRyBpbnNlcnRzIGludG8gdGhlIHJlc3VsdGluZyB3cmFwcGVyIGNvZGUuCi0KLTxwPgotVG8gaWxsdXN0cmF0ZSwgY29uc2lkZXIgdGhlIGdkIGV4YW1wbGUuICBJbiB0aGUgb3JpZ2luYWwgaW50ZXJmYWNlIGZpbGUsCi10d28gZnVuY3Rpb25zIHdlcmUgaW5jbHVkZWQgdG8gb3BlbiBhbmQgY2xvc2UgZmlsZXMuICAgVGhlc2Ugd2VyZSByZXF1aXJlZAotYmVjYXVzZSBTV0lHIG5vcm1hbGx5IG1hcHMgYWxsIHBvaW50ZXJzIChpbmNsdWRpbmcgZmlsZXMpIGludG8gYmxlc3NlZAotcmVmZXJlbmNlcy4gIFNpbmNlIGEgYmxlc3NlZCByZWZlcmVuY2UgaXMgbm90IHRoZSBzYW1lIGFzIGEgUGVybCBmaWxlIGhhbmRsZSwKLWl0IGlzIG5vdCBwb3NzaWJsZSB0byBwYXNzIFBlcmwgZmlsZXMgdG8gZnVuY3Rpb25zIGV4cGVjdGluZyBhIDx0dD5GSUxFICo8L3R0Pi4KLUhvd2V2ZXIsIHRoaXMgaXMgZWFzaWx5IGNoYW5nZWQgd2l0aCBhIHR5cGVtYXAgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSV0eXBlbWFwKHBlcmw1LGluKSBGSUxFICogewotICAgJHRhcmdldCA9IElvSUZQKHN2XzJpbygkc291cmNlKSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoaXMgZGVjbGFyYXRpb24gdGVsbHMgU1dJRyB0aGF0IHdoZW5ldmVyIGEgPHR0PkZJTEUgKjwvdHQ+Ci1hcHBlYXJzIGFzIGEgZnVuY3Rpb24gcGFyYW1ldGVyLCBpdCBzaG91bGQgYmUgY29udmVydGVkIHVzaW5nIHRoZQotc3VwcGxpZWQgQyBjb2RlLiAgV2hlbiBnZW5lcmF0aW5nIHdyYXBwZXJzLCB0aGUgdHlwZW1hcCBjb2RlIGlzCi1pbnNlcnRlZCBpbnRvIGFsbCB3cmFwcGVyIGZ1bmN0aW9ucyB3aGVyZSBhIDx0dD5GSUxFICo8L3R0PiBpcyBpbnZvbHZlZC4KLUluIHRoZSBwcm9jZXNzIHRoZQotPHR0PiRzb3VyY2U8L3R0PiBhbmQgPHR0PiR0YXJnZXQ8L3R0PiB0b2tlbnMgYXJlIHJlcGxhY2VkIGJ5IHRoZSBuYW1lcyBvZgotQyBsb2NhbCB2YXJpYWJsZXMgY29ycmVzcG9uZGluZyB0byB0aGUgUGVybCBhbmQgQyByZXByZXNlbnRhdGlvbnMgb2YKLWFuIG9iamVjdCByZXNwZWN0aXZlbHkuICBBcyBhIHJlc3VsdCwgdGhpcyB0eXBlbWFwIGFsbG93cyBQZXJsIGZpbGVzCi10byBiZSB1c2VkIGluIGEgbmF0dXJhbCBtYW5uZXIuICBGb3IgZXhhbXBsZSwKLQotPGJsb2NrcXVvdGU+PHByZT4KLW9wZW4oT1VULCImZ3Q7dGVzdC5naWYiKSB8fCBkaWUgImVycm9yIVxuIjsKLQotIyBNdWNoIGJldHRlciB0aGFuIGJlZm9yZQotZ2Q6OmdkSW1hZ2VHaWYoJGltLCpPVVQpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1DZXJ0YWluIG9wZXJhdGlvbnMsIHN1Y2ggYXMgb3V0cHV0IHZhbHVlcywgYXJlIGltcGxlbWVudGVkIHVzaW5nIAotYSBjb21iaW5hdGlvbiBvZiB0eXBlbWFwcyBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotJXR5cGVtYXAocGVybDUsaWdub3JlKQotaW50ICpPVVRQVVQoaW50IHRlbXApIHsKLSAgJHRhcmdldCA9ICZ0ZW1wOwotfQotJXR5cGVtYXAocGVybDUsYXJnb3V0KSBpbnQgKk9VVFBVVCB7Ci0gIGlmIChhcmd2aSAmZ3Q7PSBpdGVtcykgewotICAgICBFWFRFTkQoc3AsMSk7Ci0gIH0KLSAgJHRhcmdldCA9IHN2X25ld21vcnRhbCgpOwotICBzdl9zZXRpdigkdGFyZ2V0LChJVikgKigkc291cmNlKSk7Ci0gIGFyZ3ZpKys7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUluIHRoaXMgY2FzZSwgdGhlIGBgaWdub3JlJycgdHlwZW1hcCB0ZWxscyBTV0lHIHRoYXQgYSBwYXJhbWV0ZXIgaXMKLWdvaW5nIHRvIGJlIGlnbm9yZWQgYW5kIHRoYXQgdGhlIFBlcmwgaW50ZXJwcmV0ZXIgd2lsbCBub3QgYmUKLXN1cHBseWluZyBhIHZhbHVlLiAgU2luY2UgdGhlIHVuZGVybHlpbmcgQyBmdW5jdGlvbiBzdGlsbCBuZWVkcyBhCi12YWx1ZSwgdGhlIHR5cGVtYXAgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciB0byBwb2ludAotdG8gYSB0ZW1wb3JhcnkgdmFyaWFibGUgPHR0PnRlbXA8L3R0Pi4gVGhlIGBgYXJnb3V0JycgdHlwZW1hcCBpcyB1c2VkIHRvCi1yZXR1cm4gYSB2YWx1ZSBoZWxkIGluIG9uZSBvZiB0aGUgZnVuY3Rpb24gYXJndW1lbnRzLiAgSW4gdGhpcyBjYXNlLAotdGhlIHR5cGVtYXAgZXh0ZW5kcyB0aGUgUGVybCBzdGFjayAoaWYgbmVlZGVkKSwgYW5kIGNyZWF0ZXMgYSBuZXcKLXJldHVybiB2YWx1ZS4gIFRoZSA8dHQ+YXJndmk8L3R0PiB2YXJpYWJsZSBpcyBhIFNXSUctc3BlY2lmaWMgdmFyaWFibGUKLWNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIFBlcmwgaW50ZXJwcmV0ZXIgKHNvCi1pdCBpcyBpbmNyZW1lbnRlZCBmb3IgZWFjaCByZXR1cm4gdmFsdWUpLgotCi08cD4KLVRoZSBDIGNvZGUgc3VwcGxpZWQgaW4gZWFjaCB0eXBlbWFwIGlzIHBsYWNlZCBpbiBhIHByaXZhdGUgc2NvcGUgdGhhdAotaXMgbm90IHZpc2libGUgdG8gYW55IG90aGVyIHR5cGVtYXBzIG9yIG90aGVyIHBhcnRzIG9mIGEgd3JhcHBlciBmdW5jdGlvbi4KLVRoaXMgYWxsb3dzIGRpZmZlcmVudCB0eXBlbWFwcyB0byBiZSB1c2VkIHNpbXVsdGFuZW91c2x5LS1ldmVuIGlmIHRoZXkKLWRlZmluZSB2YXJpYWJsZXMgd2l0aCB0aGUgc2FtZSBuYW1lcy4gIFRoaXMgYWxzbyBhbGxvd3MgdGhlIHNhbWUgdHlwZW1hcAotdG8gYmUgdXNlZCBtb3JlIG9uY2UgaW4gdGhlIHNhbWUgd3JhcHBlciBmdW5jdGlvbi4gRm9yIGV4YW1wbGUsIHRoZSBwcmV2aW91cwotc2VjdGlvbiB1c2VkIHRoZSA8dHQ+aW50ICpPVVRQVVQ8L3R0PiB0eXBlbWFwIHR3aWNlIGluIHRoZSBzYW1lIGZ1bmN0aW9uCi13aXRob3V0IGFueSBhZHZlcnNlIHNpZGUtZWZmZWN0cy4KLQotPGg0PiAzLjEwLjMgVHlwZW1hcCBMaWJyYXJpZXM8L2g0PgotCi1Xcml0aW5nIG5ldyB0eXBlbWFwcyBpcyBhIHNvbWV3aGF0IG1hZ2ljYWwgYXJ0IHRoYXQgcmVxdWlyZXMga25vd2xlZGdlIG9mCi1QZXJsJ3MgaW50ZXJuYWwgb3BlcmF0aW9uLCBTV0lHLCBhbmQgdGhlIHVuZGVybHlpbmcgYXBwbGljYXRpb24uIAotQm9va3Mgc3VjaCBhcyA8ZW0+QWR2YW5jZWQgUGVybCBQcm9ncmFtbWluZzwvZW0+IGFuZCB0aGUgbWFuIHBhZ2VzIG9uCi1leHRlbmRpbmcgYW5kIGVtYmVkZGluZyB0aGUgUGVybCBpbnRlcnByZXRlciB3aWxsIHByb3ZlIHRvIGJlIHF1aXRlIHVzZWZ1bC4KLUhvd2V2ZXIsIHNpbmNlIHdyaXRpbmcgdHlwZW1hcHMgZnJvbSBzY3JhdGNoIGlzIGRpZmZpY3VsdCwgU1dJRyBwcm92aWRlcyBhCi13YXkgZm9yIHR5cGVtYXBzIHRvIGJlIHBsYWNlZCBpbiBhIGxpYnJhcnkgYW5kIHV0aWxpemVkIHdpdGhvdXQKLWtub3dpbmcgdGhlaXIgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gICBUbyBpbGx1c3RyYXRlLCAKLXN1cHBvc2UgdGhhdCB5b3Ugd2FudGVkIHRvIHdyaXRlIHNvbWUgZ2VuZXJpYyB0eXBlbWFwcyBmb3IgY2hlY2tpbmcgdGhlCi12YWx1ZSBvZiB2YXJpb3VzIGlucHV0IHBhcmFtZXRlcnMuICBUaGlzIGNvdWxkIGJlIGRvbmUgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIGNoZWNrLmkKLS8vIHR5cGVtYXBzIGZvciBjaGVja2luZyBhcmd1bWVudCB2YWx1ZXMKLSV0eXBlbWFwKHBlcmw1LGNoZWNrKSBOdW1iZXIgUE9TSVRJVkUgewotICAgIGlmICgkdGFyZ2V0ICZsdDs9IDApCi0gICAgICAgY3JvYWsoIkV4cGVjdGVkIGEgcG9zaXRpdmUgdmFsdWUiKTsKLX0KLQotJXR5cGVtYXAocGVybDUsY2hlY2spIFBvaW50ZXIgKk5PTk5VTEwgewotICAgIGlmICgkdGFyZ2V0ID09IE5VTEwpCi0gICAgICAgY3JvYWsoIlJlY2VpdmVkIGEgTlVMTCBwb2ludGVyISIpOwotfQotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRvIHVzZSB0aGVzZSB0eXBlbWFwcywgYSB1c2VyIGNvdWxkIGluY2x1ZGUgdGhlIGZpbGUgPHR0PmNoZWNrLmk8L3R0PgotYW5kIHVzZSB0aGUgPHR0PiVhcHBseTwvdHQ+IGRpcmVjdGl2ZS4gIFRoZSA8dHQ+JWFwcGx5PC90dD4gZGlyZWN0aXZlIHNpbXBseQotdGFrZXMgZXhpc3RpbmcgdHlwZW1hcHMgYW5kIG1ha2VzIHRoZW0gd29yayB3aXRoIG5ldyBkYXRhdHlwZXMuICBGb3IKLWV4YW1wbGU6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0laW5jbHVkZSBjaGVjay5pCi0KLS8vIEZvcmNlICdkb3VibGUgcHgnIHRvIGJlIHBvc2l0aXZlCi0lYXBwbHkgTnVtYmVyIFBvc2l0aXZlIHsgZG91YmxlIHB4IH07Ci0KLS8vIEZvcmNlIHRoZXNlIHBvaW50ZXJzIHRvIGJlIE5PTi1OVUxMCi0lYXBwbHkgUG9pbnRlciBOT05OVUxMIHsgRklMRSAqLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3IgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBNYXRyaXggKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnZEltYWdlICogfTsKLQotLy8gTm93IHNvbWUgZnVuY3Rpb25zCi1kb3VibGUgbG9nKGRvdWJsZSBweCk7ICAgLy8gJ3B4JyBwb3NpdGl2ZQotZG91YmxlIGRvdF9wcm9kdWN0KFZlY3RvciAqLCBWZWN0b3IgKik7Ci0uLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotSW4gdGhpcyBjYXNlLCB0aGUgdHlwZW1hcHMgd2UgZGVmaW5lZCBmb3IgY2hlY2tpbmcKLWRpZmZlcmVudCB2YWx1ZXMgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gYSB2YXJpZXR5IG9mIAotbmV3IGRhdGF0eXBlcy4gIFRoaXMgaGFzIGJlZW4gZG9uZSB3aXRob3V0IGhhdmluZyB0bwotZXhhbWluZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhvc2UgdHlwZW1hcHMgb3IgaGF2aW5nIAotdG8gbG9vayBhdCBhbnkgUGVybCBpbnRlcm5hbHMuICAgQ3VycmVudGx5LCBTV0lHIGluY2x1ZGVzCi1hIG51bWJlciBvZiBsaWJyYXJpZXMgdGhhdCBvcGVyYXRlIGluIHRoaXMgbWFubmVyLgotCi08aDM+IDMuMTEgT3RoZXIgU1dJRyBGZWF0dXJlczwvaDM+Ci0KLVNXSUcgaGFzIGEgbnVtYmVyIG9mIG90aGVyIGZlYXR1cmVzIHRoYXQgaGF2ZSBub3QgYmVlbiBkaXNjdXNzZWQuCi1JbiBhZGRpdGlvbiB0byBwcm9kdWNpbmcgd3JhcHBlciBjb2RlLCBTV0lHIGFsc28gcHJvZHVjZXMKLXNpbXBsZSBkb2N1bWVudGF0aW9uIGZpbGVzLiAgVGhlc2UgZGVzY3JpYmUgdGhlIGNvbnRlbnRzIG9mIGEKLW1vZHVsZS4gIEluIGFkZGl0aW9uLCBDIGNvbW1lbnRzIGNhbiBiZSB1c2VkIHRvIHByb3ZpZGUgZGVzY3JpcHRpdmUKLXRleHQgaW4gdGhlIGRvY3VtZW50YXRpb24gZmlsZS4gICAgU1dJRyBpcyBhbHNvIHBhY2thZ2VkIHdpdGggYQotbGlicmFyeSBvZiB1c2VmdWwgbW9kdWxlcyB0aGF0IGluY2x1ZGUgdHlwZW1hcHMgYW5kIGludGVyZmFjZXMgdG8KLWNvbW1vbiBsaWJyYXJpZXMuICBUaGVzZSBsaWJyYXJpZXMgY2FuIHNpbXBsaWZ5IHRoZSBjb25zdHJ1Y3Rpb24KLW9mIHNjcmlwdGluZyBpbnRlcmZhY2VzLgotCi08aDM+IDMuMTIgUHV0dGluZyBpdCBBbGwgVG9nZXRoZXI8L2gzPgotCi1JbiB0aGUgZmlyc3QgcGFydCBvZiB0aGlzIHNlY3Rpb24sIGEgbWluaW1hbCBpbnRlcmZhY2UgdG8gdGhlCi1nZCBsaWJyYXJ5IHdhcyBwcmVzZW50ZWQuICBOb3csIGxldCdzIHRha2UgYSBsb29rIGF0IGEgbW9yZQotc3Vic3RhbnRpYWwgdmVyc2lvbiBvZiB0aGF0IGludGVyZmFjZS4KLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIGdkLmkKLSVtb2R1bGUgZ2QKLSV7Ci0jaW5jbHVkZSAiZ2QuaCIKLSV9Ci0KLS8vIE1ha2UgRklMRSAqIHdvcmsKLSV0eXBlbWFwKHBlcmw1LGluKSBGSUxFICogewotICAgJHRhcmdldCA9IElvSUZQKHN2XzJpbygkc291cmNlKSk7Ci19Ci0KLS8vIEdyYWIgdGhlIGdkLmggaGVhZGVyIGZpbGUKLSVpbmNsdWRlICJnZC5oIgotCi0vLyBFeHRlbmQgdGhlIGludGVyZmFjZSBhIGxpdHRsZSBiaXQKLSVhZGRtZXRob2RzIGdkSW1hZ2UgewotZ2RJbWFnZShpbnQgdywgaW50IGgpIHsKLSAgICByZXR1cm4gZ2RJbWFnZUNyZWF0ZSh3LGgpOwotfQotfmdkSW1hZ2UoKSB7Ci0gICAgZ2RJbWFnZURlc3Ryb3koc2VsZik7Ci19Ci0uLi4gZXRjIC4uLgotfTsKLQotJWFkZG1ldGhvZHMgZ2RQb2ludCB7Ci0uLi4gZXRjIC4uLgotfQotCi0vLyBXcmFwIHRoZSBmb250cyAocmVhZG9ubHkgdmFyaWFibGVzKQotJXJlYWRvbmx5Ci0laW5jbHVkZSAiZ2Rmb250dC5oIgotJWluY2x1ZGUgImdkZm9udHMuaCIKLSVpbmNsdWRlICJnZGZvbnRtYi5oIgotJWluY2x1ZGUgImdkZm9udGwuaCIKLSVpbmNsdWRlICJnZGZvbnRnLmgiCi0lcmVhZHdyaXRlCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUZpbmFsbHksIGhlcmUgaXMgYSBzaW1wbGUgc2NyaXB0IHRoYXQgdXNlcyB0aGUgbW9kdWxlLiAgIEFzaWRlIGZyb20KLWEgZmV3IG1pbm9yIGRpZmZlcmVuY2VzLCB0aGUgc2NyaXB0IGlzIHJlbWFya2FibHkgc2ltaWxhciB0byB0aGUgZmlyc3QKLWV4YW1wbGUgZ2l2ZW4gaW4gdGhlIHN0YW5kYXJkIEdEIG1vZHVsZSBkb2N1bWVudGF0aW9uLgotCi08YmxvY2txdW90ZT48cHJlPgotdXNlIGdkOwotCi0kaW0gPSBuZXcgZ2RJbWFnZSgxMDAsMTAwKTsKLSR3aGl0ZT0gJGltLSZndDtjb2xvckFsbG9jYXRlKDI1NSwyNTUsMjU1KTsKLSRibGFjaz0gJGltLSZndDtjb2xvckFsbG9jYXRlKDAsMCwwKTsKLSRyZWQ9ICRpbS0mZ3Q7Y29sb3JBbGxvY2F0ZSgyNTUsMCwwKTsKLSRibHVlPSAkaW0tJmd0O2NvbG9yQWxsb2NhdGUoMCwwLDI1NSk7Ci0kaW0tJmd0O3RyYW5zcGFyZW50Y29sb3IoJHdoaXRlKTsKLSRpbS0mZ3Q7aW50ZXJsYWNlZCgxKTsKLSRpbS0mZ3Q7cmVjdGFuZ2xlKDAsMCw5OSw5OSwkd2hpdGUpOwotJGltLSZndDthcmMoNTAsNTAsOTUsNzUsMCwzNjAsJGJsdWUpOwotJGltLSZndDtmaWxsKDUwLDUwLCRyZWQpOwotb3BlbihJTUcsICImZ3Q7dGVzdC5naWYiKTsKLSRpbS0mZ3Q7Z2lmKCpJTUcpOwotY2xvc2UoSU1HKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotPGgyPiA0IEludGVyZmFjZSBCdWlsZGluZyBTdHJhdGVnaWVzPC9oMj4KLQotU1dJRyBzaW1wbGlmaWVzIHRoZSBjb25zdHJ1Y3Rpb24gb2YgUGVybCBleHRlbnNpb25zIGJlY2F1c2UgaXQgaGlkZXMKLVBlcmwtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhbmQgYWxsb3dzIHByb2dyYW1tZXJzIHRvCi1pbmNvcnBvcmF0ZSBDL0MrKyBhcHBsaWNhdGlvbnMgaW50byBhIFBlcmwgZW52aXJvbm1lbnQgdXNpbmcgZmFtaWxpYXIKLUFOU0kgQy9DKysgc3ludGF4IHJ1bGVzLiAgSW4gYWRkaXRpb24sIFNXSUcgaW50ZXJmYWNlcyBhcmUgZ2VuZXJhbGx5Ci1zcGVjaWZpZWQgaW4gYSBsZXNzIGZvcm1hbCBtYW5uZXIgdGhhbiB0aGF0IGZvdW5kIGluIFhTIG9yIGNvbXBvbmVudAotYXJjaGl0ZWN0dXJlcyBzdWNoIGFzIENPUkJBIGFuZCBDT00uICAgQXMgYSByZXN1bHQsIG1hbnkgdXNlcnMgYXJlCi1zdXJwcmlzZWQgdG8gZmluZCBvdXQgaG93IHJhcGlkbHkgdGhleSBjYW4gY3JlYXRlIFBlcmwgaW50ZXJmYWNlcwotdG8gdGhlaXIgQy9DKysgYXBwbGljYXRpb25zLiAgIEhvd2V2ZXIsICBpdCBpcyBhIG1pc3BlcmNlcHRpb24gdG8gdGhpbmsKLXRoYXQgU1dJRyBjYW4gbWFnaWNhbGx5IHRha2UgYW4gYXJiaXRyYXJ5IEMvQysrIGhlYWRlciBmaWxlIGFuZCAKLWluc3RhbnRseSB0dXJuIGl0IGludG8gYSB1c2VmdWwgUGVybCBtb2R1bGUuICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcwotc29tZSBvZiB0aGUgaXNzdWVzIGFuZCBzb2x1dGlvbiBzdHJhdGVnaWVzIGZvciBlZmZlY3RpdmVseSB1c2luZyBTV0lHLgotCi08aDM+IDQuMSBXcmFwcGluZyBhbiBFeGlzdGluZyBQcm9ncmFtIDwvaDM+Ci0KLUJ1aWxkaW5nIGEgUGVybCBpbnRlcmZhY2UgdG8gYW4gZXhpc3RpbmcgYXBwbGljYXRpb24gZ2VuZXJhbGx5IGludm9sdmVzCi10aGUgZm9sbG93aW5nIHN0ZXBzIDoKLQotPG9sPgotPGxpPiBMb2NhdGUgaGVhZGVyIGZpbGVzIGFuZCBvdGhlciBzb3VyY2VzIG9mIEMgZGVjbGFyYXRpb25zLgotPGxpPiBDb3B5IGhlYWRlciBmaWxlcyB0byBpbnRlcmZhY2UgZmlsZXMuCi08bGk+IEVkaXQgdGhlIGludGVyZmFjZSBmaWxlIGFuZCBhZGQgU1dJRyBkaXJlY3RpdmVzLgotPGxpPiBSZW1vdmUgb3IgcmV3cml0ZSB0aGUgYXBwbGljYXRpb24ncyA8dHQ+bWFpbigpPC90dD4gZnVuY3Rpb24gaWYgbmVjZXNzYXJ5LgotPGxpPiBSdW4gU1dJRywgY29tcGlsZSwgYW5kIGxpbmsgaW50byBhIFBlcmwgZXh0ZW5zaW9uIG1vZHVsZS4KLTwvb2w+Ci0KLVdoaWxlIGl0IGlzIHRoZW9yZXRpY2FsbHkgcG9zc2libGUgdG8gcnVuIFNXSUcgZGlyZWN0bHkgb24gYSBDIGhlYWRlcgotZmlsZSwgdGhpcyByYXJlbHkgcmVzdWx0cyBpbiB0aGUgYmVzdCBzY3JpcHRpbmcgaW50ZXJmYWNlLiAgRmlyc3QsIGEKLXJhdyBoZWFkZXIgZmlsZSBtYXkgY29udGFpbiBwcm9ibGVtYXRpYyBkZWNsYXJhdGlvbnMgdGhhdCBTV0lHIGRvZXNuJ3QKLXVuZGVyc3RhbmQuICBTZWNvbmQsIGl0IGlzIHVzdWFsbHkgdW5uZWNlc3NhcnkgdG8gd3JhcCBldmVyeSBmdW5jdGlvbiBhbmQKLXZhcmlhYmxlIGluIGEgbGFyZ2UgbGlicmFyeS4gIE1vcmUgb2Z0ZW4gdGhhbiBub3QsIHRoZXJlIGFyZSBpbnRlcm5hbAotZnVuY3Rpb25zIHRoYXQgbWFrZSBsaXR0bGUgc2Vuc2UgdG8gdXNlIGZyb20gUGVybC4gIEJ5IGNvcHlpbmcgaGVhZGVyCi1maWxlcyB0byBhIHNlcGFyYXRlIGludGVyZmFjZSBmaWxlLCBpdCBpcyBwb3NzaWJsZSB0byBlbGltaW5hdGUgdGhlc2UKLWZ1bmN0aW9ucyBhbmQgY2xlYW4gdGhpbmdzIHVwIHdpdGggYSBsaXR0bGUgZWRpdGluZyBbZm9vdG5vdGU6IEFuCi1hbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBjb3B5aW5nIGhlYWRlciBmaWxlcyBpcyB0byBtb2RpZnkgdGhlIGhlYWRlcgotZmlsZXMgdXNpbmcgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gYWRkIFNXSUcgZGlyZWN0aXZlcyBvciB0bwotcmVtb3ZlIHVubmVjZXNzYXJ5IGZ1bmN0aW9uc10uICBGaW5hbGx5LCB0aGUgdW5kZXJseWluZyBhcHBsaWNhdGlvbgotbWF5IHJlcXVpcmUgYSBmZXcgc2xpZ2h0IG1vZGlmaWNhdGlvbnMuICBGb3IgZXhhbXBsZSwgUGVybCBzdXBwbGllcwotaXRzIG93biA8dHQ+bWFpbigpPC90dD4gZnVuY3Rpb24gc28gaWYgYW4gYXBwbGljYXRpb24gYWxzbyBjb250YWlucyA8dHQ+Ci1tYWluKCk8L3R0PiwgaXQgd2lsbCBoYXZlIHRvIGJlIHJlbW92ZWQsIHJld3JpdHRlbiwgb3Igbm90IGxpbmtlZCBpbnRvIHRoZQotZXh0ZW5zaW9uIG1vZHVsZS4gIAotCi08aDM+IDQuMiBFdm9sdXRpb25hcnkgSW50ZXJmYWNlIEJ1aWxkaW5nPC9oMz4KLQotQWZ0ZXIgYSBQZXJsIGludGVyZmFjZSBpcyBmaXJzdCBidWlsdCwgaXRzIHVzZSB3aWxsIAotZXhwb3NlIGFueSBwcm9ibGVtcyBhbmQgbGltaXRhdGlvbnMuICBUaGVzZSBwcm9ibGVtcyBpbmNsdWRlIGZ1bmN0aW9ucwotdGhhdCBhcmUgYXdrd2FyZCB0byB1c2UsIHBvb3IgaW50ZWdyYXRpb24gd2l0aCBQZXJsIGRhdGF0eXBlcywgbWlzc2luZwotZnVuY3Rpb25hbGl0eSwgYW5kIHNvIGZvcnRoLiAgVG8gZml4IHRoZXNlIHByb2JsZW1zLCAKLWludGVyZmFjZSBmaWxlcyBjYW4gYmUgZW5oYW5jZWQgd2l0aCBoZWxwZXIgZnVuY3Rpb25zLAotdHlwZW1hcHMsIGV4Y2VwdGlvbiBoYW5kbGVycywgYW5kIG90aGVyIGRlY2xhcmF0aW9ucy4gICBTaW5jZSAKLWludGVyZmFjZXMgYXJlIGVhc2lseSByZWdlbmVyYXRlZCwgbWFraW5nIHN1Y2ggY2hhbmdlcyBpcyBhIHJlbGF0aXZlbHkKLXN0cmFpZ2h0Zm9yd2FyZCBwcm9jZXNzLiBIb3dldmVyLCBhcyBhIHJlc3VsdCwgIFNXSUcgaW50ZXJmYWNlcyB0ZW5kCi10byBiZSBidWlsdCBpbiBhbiBldm9sdXRpb25hcnkgYW5kIGl0ZXJhdGl2ZSBtYW5uZXIgcmF0aGVyIHRoYW4gYmVpbmcKLWZvcm1hbGx5IHNwZWNpZmllZCBpbiBhZHZhbmNlLgotCi08aDM+IDQuMyBUcmFwcyBhbmQgUGl0ZmFsbHM8L2gzPgotCi1GaW5hbGx5LCB0aGVyZSBhcmUgYSBudW1iZXIgb2Ygc3VidGxlIHByb2JsZW1zIHRoYXQgc29tZXRpbWVzIGFyaXNlCi13aGVuIHRyYW5zZm9ybWluZyBhIEMvQysrIHByb2dyYW0gaW50byBhIFBlcmwgZXh0ZW5zaW9uIG1vZHVsZS4gIE9uZQotb2YgdGhlc2UgcHJvYmxlbXMgaXMgdGhlIGlzc3VlIG9mIGltcGxpY2l0IGV4ZWN1dGlvbiBvcmRlcgotZGVwZW5kZW5jaWVzIGFuZCByZWVudHJhbnQgZnVuY3Rpb25zLiAgRnJvbSB0aGUgUGVybCBpbnRlcnByZXRlciwgdXNlcnMgd2lsbCBiZQotYWJsZSB0byBleGVjdXRlIGZ1bmN0aW9ucyBhdCBhbnkgdGltZSBhbmQgaW4gYW55IG9yZGVyLiAgSG93ZXZlciwgaW4KLW1hbnkgQyBwcm9ncmFtcywgZXhlY3V0aW9uIGlzIHByZWNpc2VseSBkZWZpbmVkLiAgRm9yCi1leGFtcGxlLCBhIHByZWNpc2Ugc2VxdWVuY2Ugb2YgZnVuY3Rpb24gY2FsbHMgbWlnaHQgYmUgcGVyZm9ybWVkIHRvCi1wcm9wZXJseSBpbml0aWFsaXplIHByb2dyYW0gZGF0YS4gIExpa2V3aXNlLCBpdCBtYXkgb25seSBiZSB2YWxpZCB0bwotY2FsbCBjZXJ0YWluIGZ1bmN0aW9ucyBvbmNlIGR1cmluZyBhIHNpbmdsZSBleGVjdXRpb24uICAgRnJvbSBQZXJsLAotaXQgaXMgZWFzeSBmb3IgYSB1c2VyIHRvIHZpb2xhdGUgdGhlc2UgY29uc3RyYWludHMtLXJlc3VsdGluZyBpbgotYSBwb3RlbnRpYWwgcHJvZ3JhbSBjcmFzaCBvciBpbmNvcnJlY3QgYmVoYXZpb3IuICAgIFRvIGZpeCB0aGVzZQotcHJvYmxlbXMsIGFwcGxpY2F0aW9ucyBjYW4gc29tZXRpbWVzIGJlIG1vZGlmaWVkIGJ5IGludHJvZHVjaW5nIGFkZGl0aW9uYWwKLXN0YXRlIHZhcmlhYmxlcy4gIEZvciBleGFtcGxlLCB0byBwcmV2ZW50IHJlcGVhdGVkIGV4ZWN1dGlvbiwgYSBmdW5jdGlvbgotY2FuIGJlIG1vZGlmaWVkIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci12b2lkIGZvbygpIHsKLSAgIHN0YXRpYyBpbnQgY2FsbGVkID0gMDsKLSAgIGlmIChjYWxsZWQpIHJldHVybjsKLSAgIC4uLgotICAgY2FsbGVkID0gMTsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotCi1JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNhdGNoIHN1Y2ggYmVoYXZpb3IgdXNpbmcgZXhjZXB0aW9uIGhhbmRsZXJzLiAgRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0lZXhjZXB0KHBlcmw1KSB7Ci0gICBzdGF0aWMgaW50IGNhbGxlZCA9IDA7Ci0gICBpZiAoY2FsbGVkKSAKLSAgICAgICAgIGNyb2FrKCJBbHJlYWR5IGV4ZWN1dGVkIVxuIik7Ci0gICAkZnVuY3Rpb24KLSAgIGNhbGxlZCA9IDE7Ci19Ci0vLyBMaXN0IGFsbCBub24tcmVlbnRyYW50IGZ1bmN0aW9ucwotdm9pZCBmb28oKTsKLS4uLgotLy8gQ2xlYXIgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyCi0lZXhjZXB0KHBlcmw1KTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotQW5vdGhlciBjb21tb24gcHJvYmxlbSBpcyB0aGF0IG9mIGltcHJvcGVyIG1lbW9yeSBtYW5hZ2VtZW50LiAgQXMgcHJldmlvdXNseSBtZW50aW9uZWQsCi1TV0lHIGV4dGVuc2lvbnMgdXNlIHRoZSBzYW1lIG1lbW9yeSBtYW5hZ2VtZW50IHRlY2huaXF1ZXMgYXMgQy4gIFRoZXJlZm9yZSwgY2FyZWxlc3MgdXNlCi1tYXkgcmVzdWx0IGluIG1lbW9yeSBsZWFrcywgZGFuZ2xpbmcgcG9pbnRlcnMsIGFuZCBzbyBmb3J0aC4gCi1BIHNvbWV3aGF0IG1vcmUgb2JzY3VyZSBtZW1vcnkgcmVsYXRlZCBwcm9ibGVtIGlzIGNhdXNlZCB3aGVuIGEgQyBwcm9ncmFtIAotb3ZlcndyaXRlcyBQZXJsIGRhdGEuICBUaGlzIGNhbiBiZSBjYXVzZWQgYnkgYSBmdW5jdGlvbiBzdWNoIGFzIHRoZSBmb2xsb3dpbmc6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci12b2lkIGdldGVycm9yKGNoYXIgKm1zZykgewotICAgICBzdHJjcHkobXNnLHN0cmVycm9yKGVycm5vKSk7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoaXMgZnVuY3Rpb24gY29waWVzIGEgc3RyaW5nIGludG8gbWVtb3J5IHBvaW50ZWQgdG8gYnkgPHR0Pm1zZzwvdHQ+LiAgSG93ZXZlciwgaW4gdGhlCi13cmFwcGVyIGZ1bmN0aW9uLCB0aGUgdmFsdWUgb2YgPHR0Pm1zZzwvdHQ+IGlzIHJlYWxseSBhIHBvaW50ZXIgdG8gZGF0YSBidXJpZWQgZGVlcAotaW5zaWRlIGEgUGVybCBzY2FsYXIgdmFsdWUuICAgV2hlbiB0aGUgZnVuY3Rpb24gb3ZlcndyaXRlcyB0aGUgdmFsdWUsIGl0IGNvcnJ1cHRzCi10aGUgdmFsdWUgb2YgdGhlIFBlcmwgc2NhbGFyIHZhbHVlIGFuZCBjYW4gY2F1c2UgdGhlIFBlcmwgaW50ZXJwcmV0ZXIgdG8gY3Jhc2gKLXdpdGggYSBtZW1vcnkgYWRkcmVzc2luZyBlcnJvciBvciBvYnNjdXJlIHJ1bi10aW1lIGVycm9yLiAgQWdhaW4sIHRoaXMgc29ydCBvZiBwcm9ibGVtCi1jYW4gdXN1YWxseSBiZSBmaXhlZCB3aXRoIHRoZSB1c2Ugb2YgdHlwZW1hcHMuICAgRm9yIGV4YW1wbGUsIGl0IGlzIHBvc3NpYmxlIHRvIHR1cm4gdGhlCi08dHQ+bXNnPC90dD4gcGFyYW1ldGVyIGludG8gYW4gb3V0cHV0IHZhbHVlIGFzIGZvbGxvd3MgOgotCi08YmxvY2txdW90ZT48cHJlPgotLy8gVXNlIGEgdGVtcG9yYXJ5IGFycmF5IGZvciB0aGUgcmVzdWx0Ci0ldHlwZW1hcChwZXJsNSxpZ25vcmUpCi1jaGFyICptc2cgKGNoYXIgdGVtcFs1MTJdKSB7Ci0gICAgJHRhcmdldCA9IHRlbXA7Ci19Ci0vLyBDb3B5IHRoZSBvdXRwdXQgaW50byBhIG5ldyBQZXJsIHNjYWxhcgotJXR5cGVtYXAocGVybDUsYXJnb3V0KSBjaGFyICptc2cgewotICBpZiAoYXJndmkgJmd0Oz0gaXRlbXMpIHsKLSAgICAgRVhURU5EKHNwLDEpOwotICB9Ci0gICR0YXJnZXQgPSBzdl9uZXdtb3J0YWwoKTsKLSAgc3Zfc2V0cHYoJHRhcmdldCwkc291cmNlKTsKLSAgYXJndmkrKzsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotPGgyPiA1IEFwcGxpY2F0aW9ucyA8L2gyPgotCi1TV0lHIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIGluIGFuIGluY3JlYXNpbmcgdmFyaWV0eSBvZiBhcHBsaWNhdGlvbnMuICAKLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgc29tZSBvZiB0aGUgd2F5cyBpbiB3aGljaCBoYXMgYmVlbiB1c2VkLiAgQSBudW1iZXIKLW9mIGFkdmFuY2VkIFNXSUcvUGVybCBpbnRlcmZhY2luZyB0ZWNobmlxdWVzIHN1Y2ggYXMgdHlwZW1hcHMgYW5kCi1jYWxsYmFjayBmdW5jdGlvbnMgYXJlIGFsc28gZGVzY3JpYmVkLgotCi08aDM+IDUuMSBFbGVjdHJvbmljIENBRDwvaDM+Ci0KLVNXSUcgcGxheXMgYSBwaXZvdGFsIHJvbGUgaW4gdGhlIGRldmVsb3BtZW50IHByb2Nlc3Mgb2YgQmFkZ2VyLCBhbgotZWxlY3Ryb25pYyBjb21wdXRlci1haWRlZCBkZXNpZ24gc3lzdGVtLCBiZWluZyBkZXZlbG9wZWQgYnkgRnVzaW9uCi1NaWNyb01lZGlhLCB1c2VkIGluIHRoZSBkZXNpZ24gb2YgaW50ZWdyYXRlZCBjaXJjdWl0cyBhbmQgb3RoZXIKLWVsZWN0cm9uaWMgY29tcG9uZW50cy4gIEJhZGdlciBpcyBhIGZ1bGx5IG9iamVjdC1vcmllbnRlZCwgbW9kdWxhciwKLWFuZCBoaWdobHkgZXh0ZW5zaWJsZSBzeXN0ZW0sIHJ1bm5pbmcgdW5kZXIgdmFyaW91cyBmbGF2b3JzIG9mIHRoZQotVU5JWCBvcGVyYXRpbmcgc3lzdGVtIGFzIHdlbGwgYXMKLVdpbmRvd3MtTlQuCi0KLTxwPgotVGhlIGNvcmUgY29tcG9uZW50cyBpbiBCYWRnZXIgYXJlIGNvbnN0cnVjdGVkIGluIEMrKyBhbmQgYXJlCi1kZWxpdmVyZWQgYXMgYSBzZXQgb2Ygc2hhcmVkIChkeW5hbWljYWxseSBsb2FkZWQpIGxpYnJhcmllcy4gIFRoZQotbGlicmFyaWVzIGFyZSA8ZW0+bm90PC9lbT4gZGlyZWN0bHkgbGlua2VkIGludG8gYW4gZXhlY3V0YWJsZSBwcm9ncmFtLgotSW5zdGVhZCwgZWFjaCBsaWJyYXJ5IGNvbWVzIHdpdGggYW4gZXh0ZW5zaW9uIGxhbmd1YWdlIChFTCkKLWludGVyZmFjZSB0aGF0IGlzIGdlbmVyYXRlZCBieSBTV0lHLCBhbGxvd2luZyB0aGUgbGlicmFyeSB0byBiZSB1c2VkCi13aXRoaW4gYSBQZXJsIHByb2dyYW0gW2Zvb3Rub3RlOiBGb3Igbm93LCBQZXJsIGlzIHRoZSBvbmx5IHN1cHBvcnRlZAotZXh0ZW5zaW9uIGxhbmd1YWdlLiAgVGNsIGFuZCBKYXZhIHdpbGwgYmUgc3VwcG9ydGVkIGluIHRoZSBmdXR1cmVdLgotVGhlIGNvbWJpbmF0aW9uIG9mIGEgcG93ZXJmdWwgRUwgYW5kIHdlbGwtdHVuZWQsIGFwcGxpY2F0aW9uLXNwZWNpZmljCi1zb2Z0d2FyZSByZXN1bHRzIGluIGEgc3lzdGVtIHRoYXQgaXMgcG90ZW50LCBmbGV4aWJsZSwgYW5kIGVhc3kgdG8KLXVzZS4KLQotPHA+Ci1Gb3IgdGhlIG1vc3QgcGFydCwgU1dJRyBpcyB1c2VkIGluIGEgYGBub3JtYWwnJyBmYXNoaW9uOiBhIGRlc2NyaXB0aW9uCi1vZiB0aGUgY2xhc3NlcyBjb250YWluZWQgd2l0aGluIGEgbGlicmFyeSBpcyBwcmVzZW50ZWQgdG8gU1dJRywgYW5kIGl0Ci1nZW5lcmF0ZXMgYW4gRUwgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRoZSBjb2RlIHdpdGhpbiB0aGF0IGxpYnJhcnkgdG8KLWJlIGFjY2Vzc2VkIGZyb20gYW4gRUwuICBUaGVyZSBhcmUgdHdvIGludGVyZXN0aW5nIGZhY2V0cyB0byB0aGUgdXNlCi1vZiBTV0lHIHdpdGhpbiBCYWRnZXI6IHRoZSB1c2Ugb2YgYGBzbWFydCByZWZlcmVuY2VzLCcnIGFuZCB0aGUgdXNlCi1vZiBjYWxsYmFja3MgZnJvbSBDKysgdG8gdGhlIEVMLAotCi08aDQ+IDUuMS4xIFNtYXJ0IFJlZmVyZW5jZXM8L2g0PgotCi1TdXBwb3NlIGEgUGVybCBwcm9ncmFtIGNhbGxzIGEgZnVuY3Rpb24gZGVmaW5lZCBieSBCYWRnZXIgKGFuZCB3cmFwcGVkCi13aXRoIFNXSUcpIGluIG9yZGVyIHRvIGNyZWF0ZSBhbmQgcmV0dXJuIHNvbWUgb2JqZWN0LiAgQW55IFBlcmwKLXZhcmlhYmxlIHVzZWQgdG8gcmVmZXIgdG8gdGhhdCBvYmplY3QgcmVhbGx5IGhvbGRzIGEgPGVtPmhhbmRsZTwvZW0+IHRvCi10aGUgb2JqZWN0LCBpbXBsZW1lbnRlZCBhcyBhIGJsZXNzZWQgcmVmZXJlbmNlIGNvbnRhaW5pbmcgdGhlIG9iamVjdCdzIHR5cGUgYW5kCi1pdHMgbWVtb3J5IGFkZHJlc3MuICBBbHRob3VnaCB0aGUgaW1wbGVtZW50YXRpb24gaXMgYSBiaXQgbW9yZQotaW52b2x2ZWQsIHRoZSBoYW5kbGUsIGluIGVmZmVjdCwgYWN0cyBsaWtlIGEgcG9pbnRlciBpbiBDLiAgTm93LAotc3VwcG9zZSBhbm90aGVyIGZ1bmN0aW9uIHdpdGhpbiBCYWRnZXIgaXMgY2FsbGVkIHRoYXQgY2F1c2VzIHRoZQotb3JpZ2luYWwgb2JqZWN0IHRvIGJlIGRlc3Ryb3llZC4gIFNldmVyZSBwcm9ibGVtcyB3aWxsIG9jY3VyIGlmIHRoZQotUGVybCB2YXJpYWJsZSBpcyBzdXBwbGllZCB0byBhbm90aGVyIEJhZGdlciBmdW5jdGlvbiwgYmVjYXVzZSB0aGUKLXZhcmlhYmxlIHJlZmVycyB0byBhIG5vbi1leGlzdGVudCBvYmplY3QuICBUaGUgcmVhc29uIGZvciB0aGUKLWRpZmZpY3VsdHkgaXMgdGhhdCB0aGUgZXh0ZW5zaW9uIGxhbmd1YWdlIGV4cGVjdHMgdG8gaGF2ZSBjb250cm9sIG92ZXIKLXRoZSBsaWZldGltZSBvZiB0aGUgb2JqZWN0LCBidXQgdGhlIGV4dGVybmFsIHN5c3RlbSAoQmFkZ2VyKSBjYW5ub3QKLW1lZXQgdGhpcyBleHBlY3RhdGlvbi4KLQotPHA+Ci1JdCBpcyBwb3NzaWJsZSB0byBkZXNpZ24gQmFkZ2VyIHNvIHRoYXQgdGhlIGV4dGVuc2lvbiBsYW5ndWFnZSAKLWhhcyBjb21wbGV0ZSBjb250cm9sIG92ZXIgdGhlIGxpZmV0aW1lIG9mIGFsbCB0aGUgb2JqZWN0cyB3aXRoaW4gdGhlCi1zeXN0ZW0uICBVbmZvcnR1bmF0ZWx5LCB0aGlzIGFwcHJvYWNoIHJlc3VsdHMgaW4gYSBzeXN0ZW0gdGhhdCBpcyB0b28KLWNsb3NlbHkgdGllZCB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlLCBhbmQgYWRkaW5nCi1hIG5ldyBleHRlbnNpb24gbGFuZ3VhZ2UgdG8gdGhlIG1peCBpcyBkaWZmaWN1bHQuICBBbiBhbHRlcm5hdGUKLXNvbHV0aW9uIHRoYXQgaXMgc2ltcGxlIHRvIGltcGxlbWVudCBhbmQgaXMgcG9ydGFibGUsIGlzIHRvCi1pbnRyb2R1Y2UgYGBzbWFydCByZWZlcmVuY2VzJycgKGFsc28gY2FsbGVkIHByb3hpZXMpIGludG8gdGhlCi1kZXNpZ24gWzUsIHBnLiAyMDddLiAgSW4gZWZmZWN0LCBhIHNtYXJ0IHJlZmVyZW5jZSBpcyBhbiBvYmplY3QgdGhhdCBoYXMgdGhlIHNhbWUKLXNldCBvZiBvcGVyYXRpb25zIGFzIGEgYGByZWFsJycgb2JqZWN0LCBidXQgdGhlIHNtYXJ0IHJlZmVyZW5jZSdzCi1pbXBsZW1lbnRhdGlvbiBjb25zaXN0cyBzb2xlbHkgb2YgYSBzaW5nbGUgcG9pbnRlciB0byBhIGBgcmVhbCcnCi1vYmplY3Qgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCi0KLTxwPgotVGhlIGV4dGVuc2lvbiBsYW5ndWFnZSBpbnRlcmZhY2VzIHdpdGhpbiBCYWRnZXIgIGhhdmUgYmVlbiBjcmFmdGVkIHNvCi10aGF0IHRoZSBleHRlbnNpb24gbGFuZ3VhZ2UgbWFuaXB1bGF0ZXMgc21hcnQgcmVmZXJlbmNlcyBhbmQgdGhhdCB0aGUgbGlmZXRpbWUKLW9mIGEgc21hcnQgcmVmZXJlbmNlIGlzIGNvbXBsZXRlbHkgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlCi1leHRlbnNpb24gbGFuZ3VhZ2UuICBVbmRlciBtb3N0IGNpcmN1bXN0YW5jZXMsIHRoZSBleHRlbnNpb24gbGFuZ3VhZ2UKLXBlcmZvcm1zIGFuIG9wZXJhdGlvbiBvbiB0aGUgc21hcnQgcmVmZXJlbmNlLCBhbmQgdGhlIHNtYXJ0IHJlZmVyZW5jZQotdGhlbiBhdHRlbXB0cyB0byB0cmFuc2ZlciB0aGUgb3BlcmF0aW9uIHRvIHRoZSByZWFsIG9iamVjdC4gIElmIHRoZQotcmVhbCBvYmplY3QgaGFzIGJlZW4gZGVzdHJveWVkIHRoZW4gdGhlIHNtYXJ0IHJlZmVyZW5jZSB3aWxsIGhhdmUgYmVlbgotaW52YWxpZGF0ZWQgKGl0IHBvaW50cyB0byA8dHQ+bmlsPC90dD4pLiAgSW4gdGhpcyBjYXNlLCB0aGUgb3BlcmF0aW9uCi1pcyBhYm9ydGVkIGFuZCwgaWYgcG9zc2libGUsIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gdGhlIGV4dGVuc2lvbgotbGFuZ3VhZ2UuICBCYWRnZXIgY29udGFpbnMgdGhlIG5lY2Vzc2FyeSBtYWNoaW5lcnkgdG8gaW52YWxpZGF0ZSBhbnkKLXNtYXJ0IHJlZmVyZW5jZXMgdGhhdCBwb2ludCB0byBhbiBvYmplY3QgYmVpbmcgZGVzdHJveWVkLgotCi08cD4KLU1vZGVybiBDKysgY29tcGlsZXJzLCB3aXRoIHRoZWlyIHN1cHBvcnQgZm9yIHRlbXBsYXRlcywgcnVuLXRpbWUgdHlwZQotaWRlbnRpZmljYXRpb24sIGFuZCBzbyBmb3J0aCwgcHJvdmlkZSB0aGUgbWVhbnMgdG8gYXV0b21hdGljYWxseQotY29uc3RydWN0IHNtYXJ0IHJlZmVyZW5jZSBjbGFzc2VzLiAgRm9yIGEgdmFyaWV0eSBvZiByZWFzb25zLCB3ZSBhcmUKLW5vdCBhYmxlIHRvIGFsd2F5cyB1dGlsaXplIG1vZGVybiBjb21waWxlcnMuICBIZW5jZSwgd2UgaGF2ZSBjcmVhdGVkCi10aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzbWFydCByZWZlcmVuY2VzIG1hbnVhbGx5LCB3aGljaCBpcyBhCi10ZWRpb3VzIHByb2Nlc3MuICBGb3J0dW5hdGVseSwgdGhpcyB0YXNrIGNhbiBiZSBtb3N0bHkgYXV0b21hdGVkIGJ5Ci1jcmVhdGluZyBvdXIgb3duIGNvZGUgZ2VuZXJhdG9yIGFzIHBhcnQgb2YgU1dJRy4gIFRoaXMgaXMgYSBzaW1wbGUKLW1hdHRlciwgYXMgU1dJRyBpcyBhIG1vZHVsYXIgc29mdHdhcmUgc3lzdGVtLgotCi08aDQ+IDUuMS4yIENhbGxiYWNrczwvaDQ+Ci0KLVRoZSBleHRlbnNpb24gbGFuZ3VhZ2UgaW50ZXJmYWNlIHByb2R1Y2VkIGJ5IFNXSUcgYWxsb3dzIGZ1bmN0aW9ucwotZGVmaW5lZCBpbiB0aGUgZXh0ZXJuYWwgc3lzdGVtIHRvIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBleHRlbnNpb24KLWxhbmd1YWdlLiAgVW5mb3J0dW5hdGVseSwgdGhlIGludGVyZmFjZSBwcm9kdWNlZCBieSBTV0lHIGRvZXMgbm90Ci1zdXBwb3J0IHRoZSBjYWxsaW5nIG9mIGV4dGVuc2lvbiBsYW5ndWFnZSBmdW5jdGlvbnMgd2l0aGluIEMsCi1DKyssIG9yIE9iamVjdGl2ZS1DLiAgVGhlIGFiaWxpdHkgdG8gaW52b2tlIGZ1bmN0aW9ucyBiaWRpcmVjdGlvbmFsbHkKLWlzIG5lZWRlZCBieSBCYWRnZXIsIHNvIHN1cHBvcnQgZm9yIGNhbGxiYWNrcyBmcm9tIEMrKyB0byBQZXJsIGhhcyBiZWVuCi1kZXZlbG9wZWQgW2Zvb3Rub3RlOiBGb3Igbm93LCBjYWxsYmFja3Mgb25seSB3b3JrIHdpdGggUGVybC4gIFN1cHBvcnQKLSAgZm9yIGNhbGxiYWNrcyB3aXRoIFRjbCBhbmQgSmF2YSB3aWxsIGJlIGFkZGVkIGxhdGVyXS4gIFRoZSBiYXNpYwotYXBwcm9hY2ggaXMgdGhpczoKLQotPHVsPgotPGxpPiBEZWZpbmUgYSBmdW5jdGlvbi4KLTxsaT4gUmVnaXN0ZXIgdGhlIGZ1bmN0aW9uLgotPGxpPiBQZXJmb3JtIHNvbWUgb3BlcmF0aW9uIHRoYXQgY2F1c2VzIHRoZSByZWdpc3RlcmVkIGZ1bmN0aW9uIHRvIGJlCi0gIGludm9rZWQuCi08L3VsPgotCi1UbyBtYWtlIHRoaXMgd29yaywgQmFkZ2VyIHByb3ZpZGVzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgaW4KLUMrKyBjYWxsZWQgPHR0PlRyaWdnZXI8L3R0Piwgc28gY2FsbGVkIGJlY2F1c2UgYSBmdW5jdGlvbiBhc3NvY2lhdGVkCi13aXRoIG9iamVjdHMgb2YgdGhpcyBjbGFzcyBpcyBpbnZva2VkIHdoZW4gYW4gZXZlbnQgb2Ygc29tZSBraW5kCi1vY2N1cnMuICBCYWRnZXIgYWxzbyBwcm92aWRlcyB0aGUgbWFjaGluZXJ5IHRvIGFzc29jaWF0ZSA8dHQ+VHJpZ2dlcjwvdHQ+Ci1vYmplY3RzIHdpdGggYW4gZXZlbnQgbmFtZSBhbmQgd2l0aCBvbmUgb3IgbW9yZSBvYmplY3RzIGludGVybmFsIHRvCi10aGUgc3lzdGVtLiAgV2hlbiBhbiBpbnRlcm5hbCBvYmplY3QgYGByZWNlaXZlcycnIGFuIGV2ZW50LCBpdAotZXhhbWluZXMgdGhlIHNldCBvZiByZWdpc3RlcmVkIGZ1bmN0aW9ucyBsb29raW5nIGZvciBhIG1hdGNoLiAgSWYgYQotbWF0Y2ggaXMgZm91bmQgdGhlbiB0aGUgPHR0PlRyaWdnZXI8L3R0PiBvYmplY3QgaXMgaW52b2tlZCwgYW5kIHRoZSBuYW1lIG9mIHRoZQotZXZlbnQgYW5kIHRoZSBvYmplY3QgdGhhdCByZWNlaXZlZCB0aGUgZXZlbnQgYXJlIHN1cHBsaWVkIGFzCi1hcmd1bWVudHMuCi0KLTxwPgotQmFkZ2VyIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgZGVyaXZlZCBmcm9tIDx0dD5UcmlnZ2VyPC90dD4gdGhhdAotc3BlY2lhbGl6ZSBpdHMgYmVoYXZpb3IgZm9yIGNlcnRhaW4gZXh0ZW5zaW9uIGxhbmd1YWdlcywgZm9yIEMrKywgb3IKLWZvciBhbiBvYmplY3QgcmVxdWVzdCBicm9rZXIuICBGb3IgZXhhbXBsZSwgdGhlIDx0dD5QZXJsNVRyaWdnZXI8L3R0PgotY2xhc3MgaXMgZGVyaXZlZCBmcm9tIDx0dD5UcmlnZ2VyPC90dD4gYW5kIGl0IHNwZWNpYWxpemVzIGl0cyBiYXNlIGNsYXNzIGJ5Ci1zdG9yaW5nIGEgcG9pbnRlciB0byBhIFBlcmwgZnVuY3Rpb24gcmVmZXJlbmNlIChhbiA8dHQ+U1YqPC90dD4pLCBhbmQKLWJ5IHByb3ZpZGluZyB0aGUgbWFjaGluZXJ5IG5lZWRlZCB0byBpbnZva2UgdGhhdCBQZXJsIGZ1bmN0aW9uLgotCi08cD4KLUZvciBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIFBlcmwgZnJhZ21lbnQ6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci1zdWIgTXlGY24gewotICBteSAkRXZlbnROYW1lID0gc2hpZnQ7Ci0gIG15ICRPYmplY3QgPSBzaGlmdDsKLSAgIyAuLi4gcmVzdCBvZiBmdW5jdGlvbiBoZXJlLgotfQotbXkgJE9iamVjdCA9IEJhZGdlckZ1bmN0aW9uKC4uLi4pOwotbXkgJE5hbWUgPSAiQ2FuJ3QgZmluZCBmaWxlIjsKLUJhZGdlcjo6UmVnaXN0ZXJCeU9iamVjdCgkTmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAkT2JqZWN0LCBcJk15RmNuKTsKLSRPYmplY3QtJmd0O1JlYWRGaWxlKCJBIGJvZ3VzIGZpbGUgbmFtZSIpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UaGUgPHR0Pk15RmNuKCk8L3R0PiBQZXJsIGZ1bmN0aW9uIGlzIHRoZSBjYWxsYmFjayAodHJpZ2dlcikgZnVuY3Rpb24sCi1hbmQgaXQgaXMgcmVnaXN0ZXJlZCB3aXRoIDx0dD4kT2JqZWN0PC90dD4gdXNpbmcgdGhlCi1ldmVudCBuYW1lIGNhbGxlZCBgYDx0dD5DYW4ndCBmaW5kIGZpbGU8L3R0PicnLiAgTm93LCBzdXBwb3NlIHRoYXQgdGhlCi08dHQ+JE9iamVjdC0mZ3Q7UmVhZEZpbGUoKTwvdHQ+IG9wZXJhdGlvbiBmYWlscy4gIEludGVybmFsbHksIEJhZGdlciB3aWxsCi1ub3RlIHRoZSBmYWlsdXJlLCBkZXRlcm1pbmUgdGhlIGFwcHJvcHJpYXRlIGV2ZW50IG5hbWUsIGF0dGVtcHQgdG8KLWZpbmQgYSBUcmlnZ2VyIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhhdCBldmVudCwgYW5kIGlmIGZvdW5kLCB3aWxsCi1gYGludm9rZSB0aGUgVHJpZ2dlcicnIGJ5IGNhbGxpbmcgdGhlIGFwcHJvcHJpYXRlIG1lbWJlciBmdW5jdGlvbi4KLUZvciB0aGUgZXhhbXBsZSBhYm92ZSwgdGhpcyBtZWFucyB0aGF0IHRoZSA8dHQ+TXlGY24oKTwvdHQ+IGZ1bmN0aW9uCi13aWxsIGJlIGNhbGxlZCB3aXRoIDx0dD4kT2JqZWN0PC90dD4gYW5kIGBgPHR0PkNhbid0IGZpbmQgZmlsZTwvdHQ+JycKLXN1cHBsaWVkIGFzIGFyZ3VtZW50cy4gIFRoZSBmdW5jdGlvbiBtYXkgcmVxdWlyZSBtb3JlIGluZm9ybWF0aW9uIHN1Y2gKLWFzIHRoZSBmaWxlIG5hbWUgKHRoYXQgY291bGQgbm90IGJlIG9wZW5lZCksIGFuZCBpdCBtaWdodCBmaW5kIHRoaXMKLWluZm9ybWF0aW9uIGJ5IGBgcHVsbGluZycnIGRhdGEgZnJvbSB0aGUgZXh0ZXJuYWwgbGlicmFyeSB1c2luZyB0aGUKLWZ1bmN0aW9ucyB3cmFwcGVkIGJ5IFNXSUcuCi0KLTxwPgotVGhlIDx0dD5SZWdpc3RlckJ5T2JqZWN0KCk8L3R0PiBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcKLWFuIG9iamVjdCBvZiB0aGUgPHR0PlBlcmw1VHJpZ2dlcjwvdHQ+IGNsYXNzLCBhbmQgZm9yIGNyZWF0aW5nIHRoZSBhc3NvY2lhdGlvbgotYmV0d2VlbiB0aGUgPHR0PlBlcmw1VHJpZ2dlcjwvdHQ+LCB0aGUgZXZlbnQgbmFtZSwgYW5kIHRoZSBvYmplY3QgcmVjZWl2aW5nIHRoZQotZXZlbnQuICBUaGVyZSBpcyBhIGJpdCBvZiB0eXBlbWFwIHRyaWNrZXJ5IGludm9sdmVkIHdoZW4gaW50ZXJjZXB0aW5nCi10aGUgYXJndW1lbnRzIGZyb20gUGVybDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSV0eXBlbWFwKHBlcmw1LGluKSBTViogcEZjbiB7Ci0gIGlmICghU3ZST0soJHNvdXJjZSkpCi0gICAgY3JvYWsoIkV4cGVjdGVkIGEgcmVmZXJlbmNlLlxuIik7Ci0gICR0YXJnZXQgPSBTdlJWKCRzb3VyY2UpOwotfQotdm9pZAotUmVnaXN0ZXJCeU9iamVjdChjb25zdCBjaGFyKiBwY0V2ZW50TmFtZSwKLSAgICAgICAgICAgICAgICAgUmVmKiBwUmVmLCBTViogcEZjbik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSBzeXN0ZW0gbGVmdCB0byBkZXNjcmliZSBpcyB0aGUgaW1wbGVtZW50YXRpb24KLW9mIHRoZSA8dHQ+UGVybDVUcmlnZ2VyOjpJbnZva2UoKTwvdHQ+IG1lbWJlciBmdW5jdGlvbiwgd2hpY2ggaXMKLXJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIHRoZSBQZXJsIGZ1bmN0aW9uIGZyb20gdGhlIEMrKyBzaWRlIG9mIHRoZQotd29ybGQuICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcywgdGFrZW4gbmVhcmx5IHZlcmJhdGltIGZyb20gdGhlCi1BZHZhbmNlZCBQZXJsIFByb2dyYW1taW5nIGJvb2sgWzEsIHBnLiAzNTNdLCBsb29rcyBsaWtlCi10aGlzOgotCi08YmxvY2txdW90ZT48cHJlPgotYm9vbAotUGVybDVUcmlnZ2VyOjoKLUludm9rZShjb25zdCBjaGFyKiBwY0V2ZW50TmFtZSwKLSAgICAgICB2b2lkKiBwT2JqZWN0LAotICAgICAgIGNvbnN0IGNoYXIqIHBjVHlwZU5hbWUpIHsKLSAgZFNQOwotICBFTlRFUjsKLSAgU0FWRVRNUFM7Ci0gIFBVU0hNQVJLKHNwKTsKLSAgU1YqIHBTViA9IHN2X25ld21vcnRhbCgpOwotICBzdl9zZXRwdihwU1YsIChjaGFyKikgcGNFdmVudE5hbWUpOwotICBYUFVTSHMocFNWKTsKLSAgcFNWID0gc3ZfbmV3bW9ydGFsKCk7Ci0gIHN2X3NldHJlZl9wdihwU1YsIChjaGFyKikgcGNUeXBlTmFtZSwKLSAgICAgICAgICAgICAgIHBPYmplY3QpOwotICBYUFVTSHMocFNWKTsKLSAgcFNWID0gc3ZfbmV3bW9ydGFsKCk7Ci0gIHN2X3NldHB2KHBTViwgKGNoYXIqKSBwY1R5cGVOYW1lKTsKLSAgWFBVU0hzKHBTVik7Ci0gIFBVVEJBQ0s7Ci0gIGludCBuID0gcGVybF9jYWxsX3N2KHRoaXMtJmd0O3BQZXJsNUZjbiwgCi0gICAgICAgICAgICAgICBHX1NDQUxBUik7IAotICBTUEFHQUlOOwotICBpZiAobiA9PSAxKQotICAgIG4gPSBQT1BpOwotICBQVVRCQUNLOwotICBGUkVFVE1QUzsKLSAgTEVBVkU7Ci0gIHJldHVybiBuID09IDAgPyBmYWxzZSA6IHRydWU7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLTxoND4gNS4xLjMgQmVuZWZpdHMgQW5kIExpbWl0YXRpb25zPC9oND4KLQotVGhlIGJlbmVmaXRzIHRoYXQgU1dJRyBwcm92aWRlcyB0byBCYWRnZXIgYXJlIGVub3Jtb3VzOgotCi08dWw+Ci08bGk+IE5vdCBjb3VudGluZyBjdXN0b20gY29kZSAoZS5nLiwgbGFuZ3VhZ2Utc3BlY2lmaWMKLSAgY2FsbGJhY2tzKSwgYW4gZXh0ZW5zaW9uIGxhbmd1YWdlIGludGVyZmFjZSBjYW4gYmUgZGV2ZWxvcGVkIGluIGEKLSAgZGF5LCBjb21wYXJlZCB3aXRoIHdlZWtzIGZvciBhIGhhbmQtY3JhZnRlZCBhcHByb2FjaC4KLQotPGxpPiBTV0lHIHN1cHBvcnRzIHRoZSB1c2Ugb2YgbXVsdGlwbGUgZXh0ZW5zaW9uIGxhbmd1YWdlcyB3aXRoIGVhc2UuCi0KLTxsaT4gVGhlIHJlc3VsdGluZyBzb2x1dGlvbiBpcyBmbGV4aWJsZSwgYW5kIHRoZSByZXN1bHRzIGNhbiBiZQotICB0YWlsb3JlZCB0byBtZWV0IHRoZSBuZWVkcyBvZiBjb21wbGV4IGFwcGxpY2F0aW9ucyAoZS5nLiwKLSAgY2FsbGJhY2tzLCBzbWFydCByZWZlcmVuY2VzLCBhbmQgc28gb24pLgotPC91bD4KLQotU1dJRyBkb2VzIGhhdmUgbGltaXRhdGlvbnMsIGJ1dCBzbyBmYXIsIG5vbmUgb2YgdGhlc2UgbGltaXRhdGlvbnMgaGFzCi1wcm92ZW4gdG8gYmUgYSByZWFsIGltcGVkaW1lbnQuICBJdCBhbHNvIGFwcGVhcnMgdGhhdCBtb3N0IG9mIHRoZXNlCi1saW1pdGF0aW9ucyB3aWxsIGJlIGVyYWRpY2F0ZWQsIG9uY2UgU1dJRyBoYXMgaXRzIG93biBleHRlbnNpb24KLWxhbmd1YWdlIGludGVyZmFjZSAoc2VlIFNlY3Rpb24gNykuCi0KLQotPGgzPiA1LjIgVENBUCBhbmQgU0NDUCBmcm9tIEhQIE9wZW5DYWxsPC9oMz4KLQotT25lIG9mIHRoZSB3ZWxsIGtub3duIHBpdGZhbGxzIG9mIHN5c3RlbWF0aWMgbGlicmFyeSB0ZXN0aW5nIGlzIAotdGhlIGNyZWF0aW9uIG9mIGEgaHVnZSBudW1iZXIgb2Ygc21hbGwgQyBwcm9ncmFtcy0tZWFjaCBkZXNpZ25lZCB0byBwZXJmb3JtCi1hIHNpbmdsZSB0ZXN0LiAgTW9yZSBvZnRlbiB0aGFuIG5vdCwgdGhlc2UgQyBwcm9ncmFtcyBoYXZlIGEgbG90IG9mCi1jb21tb24gY29kZSB0aGF0IGlzIGNvcGllZCBmcm9tIG9uZSB0ZXN0IGNhc2UgdG8gdGhlCi1vdGhlci4gVGVzdGluZyBpcyBmdXJ0aGVyIGNvbXBsaWNhdGVkIGJ5IHRoZSB0ZWRpb3VzIHByb2Nlc3Mgb2YKLWVkaXRpbmcsIGNvbXBpbGluZywgYW5kIGV4ZWN1dGluZyBlYWNoIG9mIHRoZXNlIHByb2dyYW1zLgotCi08cD4KLVRvIHNvbHZlIHRoaXMgcHJvYmxlbSwgU1dJRyBjYW4gYmUgdXNlZCB0byBpbmNvcnBvcmF0ZSBsaWJyYXJpZXMKLWludG8gUGVybCBleHRlbnNpb24gbW9kdWxlcyB3aGVyZSB0ZXN0IGNhc2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBQZXJsIHNjcmlwdHMuCi1BcyBhIHJlc3VsdCwgdGhlIGNvbXBpbGUtZXhlY3V0ZSBjeWNsZSBpcyBubyBsb25nZXIgYSBwcm9ibGVtIGFuZAotUGVybCBzY3JpcHRzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBjb21tb24gcGFydHMgb2YgdmFyaW91cyB0ZXN0IGNhc2VzLgotCi08cD4KLVRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGludGVncmF0aW9uIG9mIFBlcmwgd2l0aCBhbiBBUEkgdGhhdCBpcwotcGFydCBvZiBhIEhQIE9wZW5DYWxsIHRlbGVjb20gcHJvZHVjdCBkZXZlbG9wZWQgYXQgSFAgR3Jlbm9ibGUuICBUaGUKLUFQSSBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIFRDQVAgYW5kIFNDQ1AgbGF5ZXJzIG9mIHRoZSBTUzcgcHJvdG9jb2wKLWFuZCBjb25zaXN0cyBvZiBhYm91dCAyMCBmdW5jdGlvbiBhbmQgNjAgc3RydWN0dXJlIGRlY2xhcmF0aW9ucy4KLUZ1cnRoZXJtb3JlLCBtb3N0IGZ1bmN0aW9uIHBhcmFtZXRlcnMgYXJlIHBvaW50ZXJzIHRvIGRlZXBseSBuZXN0ZWQKLXN0cnVjdHVyZXMgc3VjaCBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotdHlwZWRlZiBlbnVtIHsKLSAgLi4uCi19IHRjX2FkZHJlc3NfbmF0dXJlOwotCi10eXBlZGVmIHN0cnVjdCAgewotICAuLi4KLSAgdGNfYWRkcmVzc19uYXR1cmUgIG5hdHVyZTsKLSAgLi4uCi19IHRjX2dsb2JhbF90aXRsZTsKLQotdHlwZWRlZiBzdHJ1Y3QgdGNfYWRkcmVzc19zdHJ1Y3QgewotICAuLi4KLSAgdGNfZ2xvYmFsX3RpdGxlICAgIGd0OwotICAuLi4KLX0gdGNfYWRkcmVzczsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotRnJvbSBhIFBlcmwgdXNlcnMnIHBvaW50IG9mIHZpZXcsIHRoZSBmdW5jdGlvbmFsaXR5IG9mZmVyZWQKLWJ5IHRoZSBTV0lHIGdlbmVyYXRlZCBtb2R1bGUgbXVzdCBiZSBub3QgYmUgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgdW5kZXJseWluZyBDIEFQSS4KLU90aGVyd2lzZSwgdGVzdCB3cml0ZXJzIG1heSBiZSBjb25mdXNlZCBieSB0aGUgUGVybCBBUEkgYW5kIHRlc3RpbmcKLXdpbGwgYmUgdW5uZWNlc3NhcmlseSBjb21wbGljYXRlZC4gIEZvcnR1bmF0ZWx5LCBTV0lHIGFkZHJlc3NlcyB0aGlzIHByb2JsZW0KLWJlY2F1c2UgUGVybCBpbnRlcmZhY2VzIAotYXJlIHNwZWNpZmllZCB1c2luZyBDIHN5bnRheCBhbmQgdGhlIHJlc3VsdGluZyBpbnRlcmZhY2UgY2xvc2VseQotcmVzZW1ibGVzIHRoZSBvcmlnaW5hbCBBUEkuCi0KLTxoND4gNS4yLjEgQ3JlYXRpbmcgdGhlIFNXSUcgSW50ZXJmYWNlPC9oMz4KLQotVG8gd3JhcCB0aGUgQyBBUEksIHRoZXJlIHdlcmUgdGhyZWUgY2hvaWNlczogY29weQotYW5kIG1vZGlmeSB0aGUgaGVhZGVyIGZpbGVzIGludG8gYSBTV0lHIGludGVyZmFjZSBmaWxlLCBmZWVkIHRoZQotaGVhZGVyIGZpbGVzIGRpcmVjdGx5IHRvIFNXSUcsIG9yIHdyaXRlIGFuIGludGVyZmFjZSBmaWxlIHRoYXQgaW5jbHVkZXMKLXNvbWUgcGFydHMgb2YgdGhlIGhlYWRlciBmaWxlcy4gVGhlIGZpcnN0IGNob2ljZSAKLXJlcXVpcmVzIHRoZSBkdXBsaWNhdGlvbiBvZiBDIGRlZmluaXRpb25zLS1hIHRhc2sgdGhhdCBpcwotZGlmZmljdWx0IHRvIG1hbmFnZSBhcyB0aGUgQVBJIGV2b2x2ZXMgKHNpbmNlIGl0IGlzIGhhcmQgdG8gbWFpbnRhaW4KLWNvbnNpc3RlbmN5IGJldHdlZW4gdGhlIGludGVyZmFjZSBmaWxlIGFuZCBoZWFkZXIgZmlsZXMpLgotVGhlIHNlY29uZCBjaG9pY2UgbWF5IHdvcmsgaWYgdGhlIGhlYWRlciBmaWxlcyBhcmUgd3JpdHRlbiBpbiBhIHZlcnkKLWNsZWFuIHdheS4gIEhvd2V2ZXIsIGl0IGNhbiBicmVhayBkb3duIGlmIGhlYWRlciBmaWxlcyBhcmUgdG9vIGNvbXBsaWNhdGVkLgotVGhlcmVmb3JlLCBhIG1peCBvZiBoZWFkZXIgZmlsZXMgYW5kIGludGVyZmFjZXMgd2FzIHV0aWxpemVkLgotCi08cD4KLUFzIHBhcnQgb2YgdGhlIGludGVyZmFjZSBidWlsZGluZyBwcm9jZXNzLCBoZWFkZXIgZmlsZXMgd2VyZSB0bwotYmUgaW5jbHVkZWQgZGlyZWN0bHkgaW50byBpbnRlcmZhY2UgZmlsZXMuICBUaGlzIGlzIGVhc2lseSBkb25lCi11c2luZyB0aGUgPHR0PiVpbmNsdWRlPC90dD4gZGlyZWN0aXZlLCBidXQgYSBudW1iZXIgb2YgcHJvYmxlbWF0aWMKLW5lc3RlZCBzdHJ1Y3R1cmUgZGVjbGFyYXRpb25zIGhhZCB0byBiZSBmaXhlZC4gRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci1zdHJ1Y3QgdGNTdGF0IHsKLSAgLi4uCi0gIHVuaW9uIHsKLSAgICAuLi4KLSAgICBzdHJ1Y3Qgc3RhdF9wX2Fib3J0IHsKLSAgICAgIGludCB2YWx1ZTsKLSAgICAgIHRjX3BfYWJvcnRfY2F1c2UgIHBfYWJvcnQ7Ci0gICAgfSBhYm9ydDsKLSAgICAuLi4KLSAgfSBwOwotfSB0Y19zdGF0OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UbyBtYWtlIHRoaXMgc3RydWN0dXJlIG1vcmUgbWFuYWdlYWJsZSBpbiBTV0lHLCBpdCBjYW4gYmUgc3BsaXQgaW50bwotc21hbGxlciBwaWVjZXMgYW5kIHJld3JpdHRlbiBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotdHlwZWRlZiBzdHJ1Y3QgewotICBpbnQgdmFsdWU7Ci0gIHRjX3BfYWJvcnRfY2F1c2UgIHBfYWJvcnQ7Ci19IHRjX3N0YXRfYWJvcnQ7Ci0KLXN0cnVjdCBUY1N0YXQgewotICAuLi4KLSAgdGNfc3RhdF9hYm9ydCAgYWJvcnQ7Ci0gIC4uLgotfTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLVN1Y2ggY2hhbmdlcyBoYXZlIG5vIGltcGFjdCBvbiB1c2VyIGNvZGUsIGJ1dCB0aGV5IHNpbXBsaWZ5IHRoZQotdXNlIG9mIFNXSUcuCi08cD4KLUluIGFkZGl0aW9uIHRvIHNwbGl0dGluZywgYSBudW1iZXIgb2Ygc3RydWN0dXJlcyBpbiB0aGUKLWhlYWRlciBmaWxlcyB3ZXJlIHRvIGJlIGhpZGRlbiBmcm9tIHRoZSBTV0lHIGNvbXBpbGVyLiAgV2hpbGUKLXRoaXMgY291bGQgYmUgZG9uZSB1c2luZyBhIHNpbXBsZSA8dHQ+I2lmbmRlZiBTV0lHPC90dD4gaW4gdGhlIGNvZGUsCi10aGlzIGNvdWxkIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBhIGh1Z2UgY3VzdG9tZXIgcHJvYmxlbSBpZiB0aGV5IGFsc28gZGVmaW5lZAotYSA8dHQ+U1dJRzwvdHQ+IG1hY3JvIGluIHRoZWlyIGNvbXBpbGF0aW9uIHByb2Nlc3MuICAgVGhlcmVmb3JlLAotY29uZGl0aW9uYWwgY29tcGlsYXRpb24gd2FzIGltcGxlbWVudGVkIHVzaW5nIHNvbWUgY2xldmVyIEMKLWNvbW1lbnRzIHRoYXQgd2VyZSBwYXJzZWQgYnkgdnBwIChTZWUgdGhlIFRleHQ6OlZwcCBtb2R1bGUpIGR1cmluZwotdGhlIGJ1aWxkIG9mIHRoZSBTV0lHIGludGVyZmFjZS4gRm9yIGV4YW1wbGUsCi0KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKgotSFAgcmVzZXJ2ZWQgY29tbWVudAotQGlmIG5vdCAkX2hwX3Jlc2VydmVkX3QKLSovCi10eXBlZGVmIHN0cnVjdCB7Ci0gIGludCAgICAgICAgICAgbGVuZ3RoOwotICB1bnNpZ25lZCBjaGFyIGRhdGFzW01BWF9BQk9SVF9MRU5dOwotfSB0Y191X2Fib3J0OwotLyoKLUBlbmRpZgotICovCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLTxoND4gNS4yLjIgU2hhZG93IENsYXNzZXM8L2g0PgotCi1CeSBkZWZhdWx0LCBTV0lHIGNvbnZlcnRzIHN0cnVjdHVyZSBkZWZpbml0aW9ucyBpbnRvIGFjY2Vzc29yIGZ1bmN0aW9ucwotc3VjaCBhcwotCi08YmxvY2txdW90ZT48cHJlPgotdGNfZ2xvYmFsX3RpdGxlICoKLXRjX2FkZHJlc3NfZ3RfZ2V0KHRjX2FkZHJlc3MgKik7Ci0KLXRjX2FkZHJlc3NfbmF0dXJlCi10Y19nbG9iYWxfdGl0bGVfbmF0dXJlX3NldCgKLSAgIHRjX2dsb2JhbF90aXRsZSAqdCwKLSAgIHRjX2FkZHJlc3NfbmF0dXJlIHZhbCk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVVuZm9ydHVuYXRlbHksIHVzaW5nIHN1Y2ggZnVuY3Rpb25zIGlzIHNvbWV3aGF0IHVuZnJpZW5kbHkKLWZyb20gUGVybC4gIEZvciBleGFtcGxlLCB0byBzZXQgYSBzaW5nbGUgdmFsdWUsIGl0IHdvdWxkIGJlCi1uZWNlc3NhcnkgdG8gd3JpdGUgdGhlIGZvbGxvd2luZzoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSRwYXJhbSA9IG5ld190Y19hZGRyZXNzKCk7Ci10Y19nbG9iYWxfdGl0bGVfbmF0dXJlX3NldCgKLSAgICB0Y19hZGRyZXNzX2d0X2dldCgkcGFyYW0pLAotICAgICR2YWx1ZSk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUZvcnR1bmF0ZWx5LCBzaGFkb3cgY2xhc3NlcyBzb2x2ZSB0aGlzIHByb2JsZW0gYnkgcHJvdmlkaW5nIG9iamVjdC1vcmllbnRlZAotYWNjZXNzIHRvIHRoZSB1bmRlcmx5aW5nIEMgc3RydWN0dXJlcy4gIEFzIGEgcmVzdWx0LCBpdCBpcyBwb3NzaWJsZQotdG8gcmV3cml0ZSB0aGUgYWJvdmUgUGVybCBjb2RlIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0kcGFybSA9IG5ldyB0Y19hZGRyZXNzOwotJHBhcmFtLSZndDt7Z3R9e25hdHVyZX0gPSAkdmFsdWU7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLU5lZWRsZXNzIHRvIHNheSwgdGhpcyBhcHByb2FjaCBpcyBtdWNoIGVhc2llciBmb3IgdXNlcnMgdG8gZ3Jhc3AuCi0KLTxoND4gNS4yLjMgQ3VzdG9taXphdGlvbiBXaXRoIFR5cGVtYXBzPC9oND4KLQotVG8gaW1wcm92ZSB0aGUgUGVybCBpbnRlcmZhY2UsIGEgbnVtYmVyIG9mIHR5cGVtYXBzIHdlcmUgZGVmaW5lZAotZm9yIHZhcmlvdXMgcGFydHMgb2YgdGhlIGludGVyZmFjZS4gICAKLU9uZSB1c2Ugb2YgdHlwZW1hcHMgd2FzIGluIHN0cnVjdHVyZXMgc3VjaCBhcyB0aGUgZm9sbG93aW5nOgotCi08YmxvY2txdW90ZT48cHJlPgotdHlwZWRlZiBzdHJ1Y3QgewotICAgIC4uLgotICAgIHRjX3VfYWJvcnQgIGFib3J0X3JlYXNvbjsKLSAgICAuLi4KLX0gdGNfZGlhbG9nX3BvcnRpb247Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVNpbmNlIDx0dD50Y191X2Fib3J0PC90dD4gaXMgZGVmaW5lZCBieSB0aGUgc3RydWN0dXJlIHNob3duIGVhcmxpZXIsCi1TV0lHIG5vcm1hbGx5IHRyaWVzIHRvIG1hbmlwdWxhdGUgaXQgdGhyb3VnaCBwb2ludGVycy4gIEhvd2V2ZXIsIGEgdHlwZW1hcAotY2FuIGJlIGRlZmluZWQgdG8gY2hhbmdlIHRoaXMgYmVoYXZpb3IuICBJbiBwYXJ0aWN1bGFyLCBpdCB3YXMKLWRlY2lkZWQgdGhhdCB0ZXN0ZXJzIHNob3VsZCBiZSBhYmxlIHRvIHNldCBhbmQgZ2V0IHRoaXMgdmFsdWUgdXNpbmcKLUJDRCBlbmNvZGVkIHN0cmluZ3Mgc3VjaCBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotbXkgJGRpYWxvZyA9IG5ldyB0Y19kaWFsb2dfcG9ydGlvbjsKLSRkaWFsb2ctJmd0O3thYm9ydF9yZWFzb259ID0gJzBmNDU2QSc7Ci0KLSMgT3IKLXByaW50ICJVc2VyIGFib3J0IHJlYXNvbiBpcyBcCi0kZGlhbG9nLSZndDt7YWJvcnRfcmVhc29ufSBcbiI7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRvIGRvIHRoaXMsIGEgdHlwZW1hcCBmb3IgY29udmVydGluZyBCQ0QgUGVybCBzdHJpbmdzIGludG8gYW4gCi1hcHByb3ByaWF0ZSBieXRlIHNlcXVlbmNlIHdlcmUgZGV2ZWxvcGVkLiAgSW4gYWRkaXRpb24sIHRoZSB0eXBlbWFwCi1wZXJmb3JtcyBhIGZldyBzYW5pdHkgY2hlY2tzIHRvIHByZXZlbnQgaW52YWxpZCB2YWx1ZXMuIAotCi08YmxvY2txdW90ZT48cHJlPgotJXR5cGVtYXAgKHBlcmw1LGluKSB0Y191X2Fib3J0ICoKLSgkYmFzZXR5cGUgdGVtcCkKLXsKLSAgaW50IGk7Ci0gIFNUUkxFTiBsZW47Ci0gIHNob3J0IHRtcDsKLSAgY2hhciAqc3RyOwotICAkdGFyZ2V0ID0gJnRlbXA7Ci0KLSAgLyogY29udmVydCAgc2NhbGFyIHRvIGNoYXIqICovCi0gIHN0ciA9IFN2UFYoJHNvdXJjZSxsZW4pOwotICAvKiBjaGVjayBpZiAgZXZlbiAjIG9mIGNoYXIgKi8KLSAgaWYgKCAobGVuICUgMikgIT0gMCApIHsKLSAgICBjcm9haygiVW5ldmVuICMgb2YgY2hhciIpOwotICB9Ci0gIC8qIHNldCBsZW5ndGggZmllbGQgKi8KLSAgJHRhcmdldC0mZ3Q7bGVuZ3RoPShsZW4vMik7Ci0gIGlmICgobGVuLzIpJmd0OyhzaXplb2YoJGJhc2V0eXBlKS0xKSkKLSAgewotICAgIGNyb2FrKCJUb28gbWFueSBieXRlcyBpbiB2YWx1ZVxuIik7Ci0gIH0KLSAgZm9yIChpPTA7aSZsdDskdGFyZ2V0LSZndDtsZW5ndGg7aSsrKQotICB7Ci0gICAgaWYgKHNzY2FuZihzdHIsIiUyaHgiLCAmdG1wKSAhPSAxICkKLSAgICAgIGNyb2FrKCJzc2NhbmYgZmFpbGVkIG9uICVzLCBcCi0gICAgICAgICAgICAgaXMgaXQgaGV4YSA/XG4iLHN0cik7Ci0gICAgICAkdGFyZ2V0LSZndDtkYXRhc1tpXSA9IHRtcDsKLSAgICAgIHN0cis9MjsKLSAgfQotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UbyByZXR1cm4gdGhlIGJ5dGUgYnVmZmVyIGJhY2sgdG8gUGVybCBhcyBhIHN0cmluZywgYSBzb21ld2hhdCBzaW1wbGVyIHR5cGVtYXAKLWlzIHVzZWQ6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0ldHlwZW1hcCAocGVybDUsb3V0KSB0Y191X2Fib3J0ICoKLXsKLSAgaW50IGk7Ci0gICR0YXJnZXQ9bmV3U1ZwdmYoIiV4Iiwkc291cmNlLSZndDtkYXRhc1swXSk7Ci0KLSAgZm9yIChpPTE7IGkmbHQ7ICRzb3VyY2UtJmd0O2xlbmd0aDsgaSsrKSB7Ci0gICAgc3ZfY2F0cHZmKCR0YXJnZXQsIiV4IiwKLSAgICAgICAgICAgICAgJHNvdXJjZS0mZ3Q7ZGF0YXNbaV0pOwotICB9Ci0gIGFyZ3ZpICsrOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1TV0lHIHR5cGVtYXBzIHdlcmUgYWxzbyB1c2VkIHRvIGZpeCBhIGZldyBvdGhlciBmdW5jdGlvbnMuICBGb3IgZXhhbXBsZSwKLXNvbWUgZnVuY3Rpb25zIHJlcXVpcmVkIGFuIGFkZHJlc3MgcGFyYW1ldGVyIGVuY29kZWQgYXMgYSB0d28tZWxlbWVudCBhcnJheS4KLUJ5IGRlZmF1bHQsIFNXSUcgd3JhcHMgdGhpcyBwYXJhbWV0ZXIgYXMgYSBwb2ludGVyLCBidXQgdGhpcyAKLWxlYXZlcyB0aGUgUGVybCB3cml0ZXIgd2l0aCB0aGUgcGFpbmZ1bCB0YXNrcyBvZiBjcmVhdGluZyBhbmQKLWZpbGxpbmcgYSBDIGFycmF5IHdpdGggc2Vuc2libGUgdmFsdWVzIHVzaW5nIHRoZSBTV0lHIHBvaW50ZXIgbGlicmFyeSBvcgotaGVscGVyIGZ1bmN0aW9ucy4gIEZvcnR1bmF0ZWx5LCB3aXRoIHR5cGVtYXBzLCBpdCB3YXMgcG9zc2libGUgdG8KLWNyZWF0ZSBhbmQgc2V0IHRoaXMgcGFyYW1ldGVyIHVzaW5nIFBlcmwgaGFzaGVzIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jICRhZGRyZXNzIGlzIGFuIG9yZGluYXJ5IHBlcmwgaGFzaAotIyAkYWRkcmVzcyB3aWxsIGJlIHVzZWQgYXMgYW4gYXJyYXkKLSRhZGRyZXNzLSZndDt7cGN9ID0gMTA7IAotJGFkZHJlc3MtJmd0O3tzc259PSAxMjsKLS4uLgotU0NDUF9vYW1jbWQoJGNueElkLCAkdGltZSwgdW5kZWYsICRhZGRyZXNzLAotICAgICAgICAgICAgJGNvbW1hbmQsICRjbWRfcGFybXMpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UaGUgdHlwZW1hcCBpbXBsZW1lbnRpbmcgdGhpcyBiZWhhdmlvciBpcyBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT48cHJlPgotJXR5cGVtYXAgKHBlcmw1LGluKSBTY2NwT2FtQWRkcmVzcyogewotICBIViogcGFzc2VkSGFzaDsKLSAgU1YqKiB2YWx1ZVBQOwotICBTY2NwT2FtQWRkcmVzcyB0ZW1wQWRkcmVzczsKLSAgaWYgKCFTdk9LKCRzb3VyY2UpKSB7Ci0gICAgICAvKiB3ZSB3ZXJlIHBhc3NlZCB1bmRlZiAqLwotICAgICAgdGVtcEFkZHJlc3NbMF0gPSAwOwotICAgICAgdGVtcEFkZHJlc3NbMV0gPSAwOwotICB9IGVsc2UgewotICAgIGlmICghU3ZST0soJHNvdXJjZSkpCi0gICAgICBjcm9haygiTm90IGEgcmVmZXJlbmNlXG4iKTsKLSAgICBpZiAoU3ZUWVBFKFN2UlYoJHNvdXJjZSkpICE9IFNWdF9QVkhWKQotICAgICAgY3JvYWsoIk5vdCBhIGhhc2ggcmVmZXJlbmNlXG4iKTsKLQotICAgIHBhc3NlZEhhc2ggPSAoSFYqKSBTdlJWKCRzb3VyY2UpOwotICAgIHZhbHVlUFA9aHZfZmV0Y2gocGFzc2VkSGFzaCwic3NuIiwzLDApOwotCi0gICAgaWYgKCp2YWx1ZVBQID09IE5VTEwpCi0gICAgICBjcm9haygiTWlzc2luZyAnc3NuJyBrZXlcbiIpOwotICAgIHRlbXBBZGRyZXNzWzFdID0gU3ZJVigqdmFsdWVQUCk7Ci0gICAgdmFsdWVQUD1odl9mZXRjaChwYXNzZWRIYXNoLCJwYyIsMiwwKTsKLSAgICBpZiAoKnZhbHVlUFAgPT0gTlVMTCkKLSAgICAgIGNyb2FrKCJNaXNzaW5nICdwYycga2V5XG4iKTsKLSAgICB0ZW1wQWRkcmVzc1swXSA9IFN2SVYoKnZhbHVlUFApOwotICB9Ci0gICR0YXJnZXQgPSAmdGVtcEFkZHJlc3M7Ci19Ci0KLS8qIFNjY3BPYW1BZGRyZXNzIGlzIHJldHVybmVkIGFzIAotICAgeydzc24nPT5zc25fdmFsdWUsICdwYyc9PnBjX3ZhbHVlfSAqLwotJXR5cGVtYXAgKHBlcmw1LG91dCkgU2NjcE9hbUFkZHJlc3MqIHsKLSAgSFYqIHBhc3NlZEhhc2g7Ci0gIFNWKiB0aGVTc247Ci0gIFNWKiB0aGVQYzsKLQotICB0aGVQYyAgPSBuZXdTVml2KCgqJHNvdXJjZSlbMF0pOwotICB0aGVTc24gPSBuZXdTVml2KCgqJHNvdXJjZSlbMV0pOwotICBwYXNzZWRIYXNoID0gbmV3SFYoKTsKLSAgaHZfc3RvcmUocGFzc2VkSGFzaCwic3NuIiwzLHRoZVNzbiwwKTsKLSAgaHZfc3RvcmUocGFzc2VkSGFzaCwicGMiLDIsdGhlUGMsMCk7Ci0gICR0YXJnZXQgPSBuZXdSVl9ub2luYygoU1YqKSBwYXNzZWRIYXNoKTsKLSAgYXJndmkgKys7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLTxoND4gNS4yLjQgU3RhdGlzdGljczwvaDQ+Ci0KLVRhYmxlIDEgc2hvd3MgdGhlIGFtb3VudCBvZiBjb2RlIGFzc29jaWF0ZWQgd2l0aCAuaSBmaWxlcyBhbmQKLWhlYWRlciBmaWxlcyBhcyB3ZWxsIGFzIHRoZSBhbW91bnQgb2YgY29kZSBnZW5lcmF0ZWQgYnkgU1dJRyAoLkMgYW5kIC5wbQotZmlsZXMpLiAgIFdoaWxlIGl0IHdhcyBuZWNlc3NhcnkgdG8gd3JpdGUgYSBmZXcgLmkgZmlsZXMsIHRoZSBzaXplIG9mCi10aGVzZSBmaWxlcyBpcyBzbWFsbCBpbiBjb21wYXJzaW9uIHRvIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzLgotCi08cD4KLTxjZW50ZXI+Ci08dGFibGUgYm9yZGVyIGNlbGxzcGFjaW5nPTAgY2VsbHBhZGRpbmc9NT4KLTxjYXB0aW9uIGFsaWduPWJvdHRvbT4gVGFibGUgMTogVENBUCBhbmQgU0NQUCBNb2R1bGVzPC9jYXB0aW9uPgotPHRyPgotPHRoPiBNb2R1bGUgPC90aD4KLTx0aD4gLmkgZmlsZXMgPC90aD4KLTx0aD4gLmggZmlsZXMgPC90aD4KLTx0aD4gLkMgZmlsZXMgPC90aD4KLTx0aD4gLnBtIGZpbGVzIDwvdGg+Ci08L3RyPgotPHRyPgotPHRoPiBUQ0FQIDwvdGg+Ci08dGQ+IDQzNCA8L3RkPgotPHRkPiA5NzcgPC90ZD4KLTx0ZD4gMTYwOTggPC90ZD4KLTx0ZD4gMzU2MSA8L3RkPgotPC90cj4KLTx0cj4KLTx0aD4gU0NQUCA8L3RoPgotPHRkPiAzNjQgPC90ZD4KLTx0ZD4gNDk0IDwvdGQ+Ci08dGQ+IDEzMDYwIDwvdGQ+Ci08dGQ+IDIyNDYgPC90ZD4KLTwvdHI+Ci08L3RhYmxlPgotPC9jZW50ZXI+Ci0KLTxoND4gNS4yLjUgUmVzdWx0cyA8L2g0PgotCi1PdmVyYWxsLCBTV0lHIHNhdmVkIHRpbWUgd2hlbiBwcm92aWRpbmcgUGVybCBhY2Nlc3MgdG8gdGhlIFRDQVAgYW5kIFNDQ1AKLWxpYnJhcmllcy4gICBXaGlsZSBpdCB0b29rIHNvbWUgdGltZSBhbmQgaGFyZCB3b3JrIHRvIHdyaXRlIHRoZSB0eXBlbWFwcywKLXRoZSBTV0lHIGFwcHJvYWNoIGhhcyBzZXZlcmFsIGFkdmFudGFnZXMgY29tcGFyZWQgdG8gWFMgb3IgdGhlCi1wdXJlIEMgYXBwcm9hY2g6Ci0KLTx1bD4KLQotPGxpPiBUaGUgaW50ZXJmYWNlIGZpbGVzIGFyZSBxdWl0ZSBzaG9ydCBzbyBpZiB0aGV5IGFyZSB3ZWxsIGRvY3VtZW50ZWQsIGEgbmV3IAotICBTV0lHIHVzZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBtYWpvciBwcm9ibGVtcyBtYWludGFpbmluZyB0aGVtLgotPGxpPiBBIG5ldyB2ZXJzaW9uIG9mIHRoZSBBUEkgaXMgd3JhcHBlZCB3aXRoIGEgJ21ha2UnIGNvbW1hbmQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gZWRpdAotICBhbnkgZmlsZS4gSW4gbW9zdCBjYXNlcyB0aGUgaW50ZXJmYWNlIGZpbGVzIGNhbiByZW1haW4gdW5tb2RpZmllZCwgcHJvdmlkZWQKLSAgdGhlcmUgYXJlIG5vIHdlaXJkIGNvbnN0cnVjdHMgaW50cm9kdWNlZCBpbiB0aGUgbmV3IHZlcnNpb24gb2YgdGhlIEFQSS4KLTxsaT4gTmV3IGNvbW1lbnRzIGFkZGVkIGluIHRoZSBoZWFkZXIgZmlsZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGluIHRoZQotICBkb2N1bWVudGF0aW9uIGZpbGVzIGdlbmVyYXRlZCBieSBTV0lHLgotPGxpPiBJZiBuZWNlc3NhcnksIG5ldyBoZWxwZXIgZnVuY3Rpb25zIG1heSBiZSBhZGRlZCBpbiB0aGUgLmkgZmlsZXMgd2l0aG91dCAKLSAgaW1wYWN0aW5nIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIG9yIHR5cGVtYXBzLiAgVGhpcyBhbGxvd3MgYSBuZXcgdXNlciB0byBkbyBpdAotICB3aXRob3V0IHJlYWRpbmcgdGhlIHdob2xlIFNXSUcgbWFudWFsLgotPGxpPiBUeXBlbWFwcyB0aGF0IGRlYWwgd2l0aCBiYXNpYyB0eXBlcyBvciBzaW1wbGUgc3RydWN0dXJlcyBhcmUgcmV1c2FibGUKLSAgYW5kIGNhbiBiZSB1c2VkIHdpdGggb3RoZXIgQVBJcy4KLTwvdWw+Ci0KLUZvciB0aG9zZSB3aG8gYXJlIGNvbnNpZGVyaW5nIFNXSUcncyBhZHZhbmNlZCBmZWF0dXJlcywgdGhlIGxlYXJuaW5nCi1jdXJ2ZSBpcyBhIGxpdHRsZSBzdGVlcCBhdCBmaXJzdCwgYnV0IHRoZSByZXdhcmRzIGFyZSBncmVhdCBiZWNhdXNlCi1TV0lHIGFkdmFuY2VkIGZlYXR1cmVzIHdpbGwgZW5hYmxlIHlvdSB0byBwcm92aWRlIGFuIGltcHJvdmVkCi1pbnRlcmZhY2UgdG8gdGhlIFBlcmwgdXNlci4KLQotCi0KLQotCi0KLQotPGgyPiA2IExpbWl0YXRpb25zPC9oMj4KLQotQ3VycmVudGx5LCBTV0lHIGlzIGJlaW5nIHVzZWQgYnkgaHVuZHJlZHMgb2YgdXNlcnMgaW4gY29uanVuY3Rpb24KLXdpdGggYSB2YXJpZXR5IG9mIGFwcGxpY2F0aW9ucy4gICBIb3dldmVyLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbgotb2YgU1dJRyBoYXMgYSBudW1iZXIgb2YgbGltaXRhdGlvbnMuICAgIFNvbWUgb2YgdGhlc2UgbGltaXRhdGlvbnMgYXJlCi1kdWUgdG8gdGhlIGZhY3QgdGhhdCBTV0lHIGlzIG5vdCBhIGZ1bGwgQy9DKysgcGFyc2VyLiAgIEluIHBhcnRpY3VsYXIsCi10aGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZDoKLQotPHVsPgotPGxpPiBWYXJpYWJsZSBsZW5ndGggYXJndW1lbnRzICguLi4pCi08bGk+IFBvaW50ZXJzIHRvIGZ1bmN0aW9ucy4KLTxsaT4gVGVtcGxhdGVzLgotPGxpPiBPdmVybG9hZGVkIGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3JzLgotPGxpPiBDKysgTmFtZXNwYWNlcy4KLTxsaT4gTmVzdGVkIGNsYXNzIGRlZmluaXRpb25zLgotPC91bD4KLQotV2hlbiB0aGVzZSBmZWF0dXJlcyBhcHBlYXIgaW4gYSBTV0lHIGlucHV0IGZpbGUsIGEgc3ludGF4IGVycm9yIG9yCi13YXJuaW5nIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkLiAgVG8gZWxpbWluYXRlIHRoZXNlIHdhcm5pbmdzLAotcHJvYmxlbWF0aWMgZGVjbGFyYXRpb25zIGNhbiBlaXRoZXIgYmUgcmVtb3ZlZCBmcm9tIHRoZSBpbnRlcmZhY2UsCi1oaWRkZW4gd2l0aCBjb25kaXRpb25hbCBjb21waWxhdGlvbiwgb3Igd3JhcHBlZCB1c2luZyBoZWxwZXIKLWZ1bmN0aW9ucyBhbmQgb3RoZXIgU1dJRyBkaXJlY3RpdmVzLgotCi08cD4KLUEgY2xvc2VseSByZWxhdGVkIHByb2JsZW0gaXMgdGhhdCBjZXJ0YWluIEMvQysrIHByb2dyYW1zIGFyZSBub3QgZWFzaWx5Ci1zY3JpcHRlZC4gIEZvciBleGFtcGxlLCBwcm9ncmFtcyB0aGF0IG1ha2UgZXh0ZW5zaXZlIHVzZSBvZgotYWR2YW5jZWQgQysrIGZlYXR1cmVzIHN1Y2ggYXMgdGVtcGxhdGVzLCBzbWFydCBwb2ludGVycywgYW5kIG92ZXJsb2FkZWQKLW9wZXJhdG9ycyBjYW4gYmUgZXh0cmVtZWx5IHRyb3VibGVzb21lIHRvIGluY29ycG9yYXRlCi1pbnRvIFBlcmwuICAgVGhpcyBpcyBlc3BlY2lhbGx5IHRoZSBjYXNlIGZvciBDKysgcHJvZ3JhbXMgdGhhdCBvdmVycmlkZQotdGhlIHN0YW5kYXJkIGJlaGF2aW9yIG9mIHBvaW50ZXJzIGFuZCBkZWZlcmVuY2luZyBvcGVyYXRpb25zLS0tb3BlcmF0aW9ucwotdGhhdCBhcmUgdXNlZCBleHRlbnNpdmVseSBieSBTV0lHIGdlbmVyYXRlZCB3cmFwcGVyIGNvZGUuCi0KLTxwPgotSW4gYWRkaXRpb24sIFNXSUcgZG9lcyBub3QgcHJvdmlkZSBxdWl0ZSBhcyBtdWNoIGZsZXhpYmlsaXR5IGFzIDx0dD54c3VicHA8L3R0PiBhbmQKLW90aGVyIFBlcmwgc3BlY2lmaWMgZXh0ZW5zaW9uIGJ1aWxkaW5nIHRvb2xzLiAgIEluIG9yZGVyIHRvIGJlIGdlbmVyYWwgcHVycG9zZSwKLVNXSUcgaGlkZXMgbWFueSBvZiB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiBlYWNoIHNjcmlwdGluZwotbGFuZ3VhZ2UuICBBcyBhIHJlc3VsdCwgaXQgY2FuIGJlIGRpZmZpY3VsdCB0byBhY2NvbXBsaXNoIGNlcnRhaW4gdGFza3MuICBGb3IKLWV4YW1wbGUsIG9uZSBzdWNoIHNpdHVhdGlvbiBpcyB0aGUgaGFuZGxpbmcgb2YgZnVuY3Rpb25zIHdoZXJlIGFyZ3VtZW50cwotYXJlIGltcGxpY2l0bHkgcmVsYXRlZCB0byBlYWNoIG90aGVyIGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci12b2lkIGZvbyhjaGFyICpzdHIsIGludCBsZW4pIHsKLSAgIC8vIHN0ciA9IHN0cmluZyBkYXRhCi0gICAvLyBsZW4gPSBsZW5ndGggb2Ygc3RyaW5nIGRhdGEgICAKLSAgIC4uLgotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1JZGVhbGx5LCBpdCBtaWdodCBiZSBkZXNpcmFibGUgdG8gcGFzcyBhIHNpbmdsZSBQZXJsIHN0cmluZyB0byBzdWNoIGEgZnVuY3Rpb24KLWFuZCBoYXZlIGl0IGV4cGFuZGVkIGludG8gYSBkYXRhIGFuZCBsZW5ndGggY29tcG9uZW50LiAgIFVuZm9ydHVuYXRlbHksIFNXSUcKLWhhcyBubyB3YXkgdG8ga25vdyB0aGF0IHRoZSBhcmd1bWVudHMgYXJlIHJlbGF0ZWQgdG8gZWFjaCBvdGhlciBpbiB0aGlzIG1hbm5lci4KLUZ1cnRoZXJtb3JlLCB0aGUgY3VycmVudCB0eXBlbWFwIG1lY2hhbmlzbSBvbmx5IGFwcGxpZXMgdG8gc2luZ2xlIGFyZ3VtZW50cyAKLXNvIGl0IGNhbiBub3QgYmUgdXNlZCB0byBjb21iaW5lIGFyZ3VtZW50cyBpbiB0aGlzIG1hbm5lci4gICBYUywgb24gdGhlIG90aGVyIGhhbmQsIGlzIG1vcmUKLWNsb3NlbHkgdGllZCB0byB0aGUgUGVybCBpbnRlcnByZXRlciBhbmQgY29uc2VxdWVudGx5IHByb3ZpZGVzIG1vcmUKLXBvd2VyIGluIHRoZSB3YXkgdGhhdCBhcmd1bWVudHMgY2FuIGJlIGNvbnZlcnRlZCBhbmQgcGFzc2VkIHRvIEMgZnVuY3Rpb25zLgotCi08cD4KLUZpbmFsbHksIFNXSUcgaXMgc3RpbGwgc29tZXdoYXQgaW1tYXR1cmUgd2l0aCByZXNwZWN0IHRvIGl0cyBvdmVyYWxsCi1pbnRlZ3JhdGlvbiB3aXRoIFBlcmwuICBGb3IgZXhhbXBsZSwgU1dJRyBkb2VzIG5vdCBmdWxseSBzdXBwb3J0Ci1QZXJsJ3MgcGFja2FnZSBhbmQgbW9kdWxlIG5hbWluZyBzeXN0ZW0uICBJbiBvdGhlciB3b3JkcywgU1dJRyBjYW4gY3JlYXRlCi1hIG1vZHVsZSBgYEZvbycnLCBidXQgY2FuJ3QgY3JlYXRlIGEgbW9kdWxlIGBgRm9vOjpCYXIuJycgIExpa2V3aXNlLAotU1dJRyBkb2VzIG5vdCBjdXJyZW50bHkgdXRpbGl6ZSBNYWtlTWFrZXIgYW5kIG90aGVyIHV0aWxpdGllcwotKGFsdGhvdWdoIHVzZXJzIGhhdmUgc3VjY2Vzc2Z1bGx5IHVzZWQgU1dJRyB3aXRoIHN1Y2ggdG9vbHMpLiBJbgotYWRkaXRpb24sIHNvbWUgdXNlcnMgaGF2ZSByZXBvcnRlZCBvY2Nhc2lvbmFsIHByb2JsZW1zIHdoZW4gU1dJRwotbW9kdWxlcyBhcmUgdXNlZCB3aXRoIHRoZSBQZXJsIGRlYnVnZ2VyIGFuZCBvdGhlciB0b29scy4KLQotPGgyPiA3IEZ1dHVyZSBEaXJlY3Rpb25zIDwvaDI+Ci0KLUZ1dHVyZSBkZXZlbG9wbWVudCBvZiBTV0lHIGlzIGZvY3VzZWQgb24gdGhyZWUgcHJpbWFyeSBhcmVhcy4gIEZpcnN0LCBpbXByb3ZlZAotcGFyc2luZyBhbmQgc3VwcG9ydCBmb3IgbW9yZSBhZHZhbmNlZCBDKysgYXJlIGJlaW5nIGFkZGVkLiAgVGhlc2UgYWRkaXRpb25zCi1pbmNsdWRlIHN1cHBvcnQgZm9yIG92ZXJsb2FkZWQgZnVuY3Rpb25zIGFuZCBDKysgbmFtZXNwYWNlcy4gIExpbWl0ZWQgc3VwcG9ydCBmb3Igd3JhcHBpbmcKLUMrKyB0ZW1wbGF0ZXMgbWF5IGFsc28gYmUgYWRkZWQuICBTZWNvbmQsIFNXSUcncyBjb2RlIGdlbmVyYXRpb24gYWJpbGl0aWVzCi1hcmUgYmVpbmcgaW1wcm92ZWQuICAgQWRkaXRpb25zIGluY2x1ZGUgbW9yZSBmbGV4aWJsZSB0eXBlbWFwcyBhbmQgYmV0dGVyCi1hY2Nlc3MgdG8gc2NyaXB0aW5nLWxhbmd1YWdlIHNwZWNpZmljIGZlYXR1cmVzLiAgRmluYWxseSwgYW4gZXh0ZW5zaW9uIEFQSQotaXMgYmVpbmcgYWRkZWQgdG8gdGhlIFNXSUcgY29tcGlsZXIuICAgVGhpcyBBUEkgd2lsbCBhbGxvdyB2YXJpb3VzCi1wYXJ0cyBvZiB0aGUgU1dJRyBjb21waWxlciBzdWNoIGFzIHRoZSBwcmVwcm9jZXNzb3IsIHBhcnNlciwgYW5kIGNvZGUgZ2VuZXJhdG9ycwotdG8gYmUgYWNjZXNzZWQgdGhyb3VnaCBhIHNjcmlwdGluZyBsYW5ndWFnZSBpbnRlcmZhY2UuICBJbiBmYWN0LCB0aGlzIAotaW50ZXJmYWNlIHdpbGwgZXZlbiBhbGxvdyBuZXcgcGFyc2VycyBhbmQgY29kZSBnZW5lcmF0b3JzIHRvIGJlIGltcGxlbWVudGVkCi1lbnRpcmVseSBpbiBQZXJsLgotCi08aDI+IDggQWNrbm93bGVkZ21lbnRzPC9oMj4KLQotU1dJRyB3b3VsZCBub3QgYmUgcG9zc2libGUgd2l0aG91dCB0aGUgZmVlZGJhY2sgYW5kIGNvbnRyaWJ1dGlvbnMgb2YgaXRzIHVzZXJzLgotV2hpbGUgaXQgaXMgaW1wb3NzaWJsZSB0byBhY2tub3dsZWRnZSBldmVyeW9uZSBpbmRpdmlkdWFsbHksIGEgbnVtYmVyIG9mCi1wZW9wbGUgaGF2ZSBiZWVuIGluc3RydW1lbnRhbCBpbiBwcm9tb3RpbmcgYW5kIGltcHJvdmluZyBTV0lHJ3MgUGVybCBzdXBwb3J0LgotSW4gcGFydGljdWxhciwgR2FyeSBIb2x0IHByb3ZpZGVkIG1hbnkgb2YgdGhlIGlkZWFzIHVzZWQgaW4gdGhlIHNoYWRvdwotY2xhc3MgbWVjaGFuaXNtLiAgV2Ugd291bGQgYWxzbyBsaWtlIHRvIHRoYW5rIEpvaG4gQnVja21hbiwgU2NvdHQgQm9sdGUsIAotYW5kIFNyaXJhbSBTcmluaXZhc2FuLCBmb3IgdGhlaXIgc3VwcG9ydCBvZiBTV0lHLiAgV2UgYWxzbyB0aGFuayB0aGUgVW5pdmVyc2l0eQotb2YgVXRhaCBhbmQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5IGZvciB0aGVpciBjb250aW51ZWQgc3VwcG9ydC4KLQotPGgyPiA5IEF2YWlsYWJpbGl0eSA8L2gyPgotCi1TV0lHIGlzIGZyZWVseSBhdmFpbGFibGUgb24gQ1BBTiBhdCA8YnI+Ci0KLTxwPgotPGEgaHJlZj0iaHR0cDovL3d3dy5wZXJsLmNvbS9DUEFOL2F1dGhvcnMvRGF2ZV9CZWF6bGV5Ij4KLTx0dD53d3cucGVybC5jb20vQ1BBTi9hdXRob3JzL0RhdmVfQmVhemxleTwvdHQ+LjwvYT48YnI+Ci0KLTxwPgotQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSBvbiB0aGUgU1dJRyBob21lcGFnZSBhdCAKLTxhIGhyZWY9Imh0dHA6Ly93d3cuc3dpZy5vcmciPjx0dD53d3cuc3dpZy5vcmc8L3R0PjwvYT4uIEFuCi1hY3RpdmUgbWFpbGluZyBsaXN0IG9mIHNldmVyYWwgaHVuZHJlZCBzdWJzY3JpYmVycyBpcyBhbHNvIGF2YWlsYWJsZS4KLQotPGgyPiBCaWJsaW9ncmFwaHkgPC9oMj4KLQotWzFdIFNyaXJhbSBTcmluaXZhc2FuLiA8ZW0+IEFkdmFuY2VkIFBlcmwgUHJvZ3JhbW1pbmc8L2VtPi4gTydSZWlsbHkKLWFuZCBBc3NvY2lhdGVzLCAxOTk3LgotCi08cD4KLVsyXSBTY290dCBCb2x0ZS4gU1dJRy4gPGVtPiBUaGUgUGVybCBKb3VybmFsPC9lbT4sIDIoNCk6MjYtMzEsIFdpbnRlciAxOTk3LgotCi08cD4KLVszXSBELk0uIEJlYXpsZXkuIFNXSUcgYW5kIEF1dG9tYXRlZCBDL0MrKyBTY3JpcHRpbmcgRXh0ZW5zaW9ucy4KLTxlbT4gRHIuIERvYmIncyBKb3VybmFsPC9lbT4sICgyODIpOjMwLTM2LCBGZWIgMTk5OC4KLQotPHA+Ci1bNF0gRC5NLiBCZWF6bGV5LCBTV0lHIFVzZXJzIE1hbnVhbC4gVGVjaG5pY2FsIFJlcG9ydCBVVUNTLTk4LTAxMiwKLVVuaXZlcnNpdHkgb2YgVXRhaCwgMTk5OC4KLQotPHA+Ci1bNV0gRS4gR2FtbWEsIFIuIEhlbG0sIFIuIEpvaG5zb24sIGFuZCBKLiBWbGlzc2lkZXMsIDxlbT5EZXNpZ24gUGF0dGVybnM8L2VtPi4KLUFkZGlzb24tV2VzbGV5LCAxOTk1LgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9QZXJsOTgvc3dpZ3BlcmwucGRmIGIvc3dpZ3dlYi9wYXBlcnMvUGVybDk4L3N3aWdwZXJsLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNjg1ZGY4Yi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9QZXJsOTgvc3dpZ3BlcmwucGRmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvUHk5Ni9weXRob245Ni5odG1sIGIvc3dpZ3dlYi9wYXBlcnMvUHk5Ni9weXRob245Ni5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4YmQ5ZTAzLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcGFwZXJzL1B5OTYvcHl0aG9uOTYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU3MiArMCwwIEBACi08aHRtbD4KLTx0aXRsZT4KLVVzaW5nIFNXSUcgdG8gQ29udHJvbCwgUHJvdG90eXBlLCBhbmQgRGVidWcgQyBQcm9ncmFtcyB3aXRoIFB5dGhvbgotPC90aXRsZT4KLTxib2R5IEJHQ09MT1I9ImZmZmZmZiI+Ci08aDE+IFVzaW5nIFNXSUcgdG8gQ29udHJvbCwgUHJvdG90eXBlLCBhbmQgRGVidWcgQyBQcm9ncmFtcyB3aXRoIFB5dGhvbiA8L2gxPgotPGI+IAotKFN1Ym1pdHRlZCB0byB0aGUgNHRoIEludGVybmF0aW9uYWwgUHl0aG9uIENvbmZlcmVuY2UpIDxicj4gPGJyPgotRGF2aWQgTS4gQmVhemxleSA8YnI+Ci1EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBVdGFoIDxicj4KLVNhbHQgTGFrZSBDaXR5LCBVdGFoICA4NDExMiA8YnI+Ci08YSBocmVmPSJodHRwOi8vd3d3LmNzLnV0YWguZWR1L35iZWF6bGV5Ij4gYmVhemxleUBjcy51dGFoLmVkdSA8L2E+IDxicj4KLTwvYj4KLTxoMj4gQWJzdHJhY3QgPC9oMj4KLTxlbT4KLUkgZGlzY3VzcyBlYXJseSByZXN1bHRzIGluIHVzaW5nIFNXSUcgdG8gaW50ZXJhY3Qgd2l0aCBDIGFuZCBDKysgcHJvZ3JhbXMKLXVzaW5nIFB5dGhvbi4gICAgRXhhbXBsZXMgb2YgdXNpbmcgU1dJRyBhcmUgcHJvdmlkZWQgYWxvbmcgd2l0aCBhCi1kaXNjdXNzaW9uIG9mIHRoZSBiZW5lZml0cyBhbmQgbGltaXRhdGlvbnMgb2YgdGhpcyBhcHByb2FjaC4gIFRoaXMKLXBhcGVyIGRlc2NyaWJlcyB3b3JrIGluIHByb2dyZXNzIHdpdGggdGhlIGhvcGUgb2YgZ2V0dGluZyBmZWVkYmFjayBhbmQKLWlkZWFzIGZyb20gdGhlIFB5dGhvbiBjb21tdW5pdHkuCi08L2VtPiA8YnI+IDxicj4KLQotTm90ZSA6IFNXSUcgaXMgZnJlZWx5IGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmNzLnV0YWguZWR1L35iZWF6bGV5L1NXSUciPiBodHRwOi8vd3d3LmNzLnV0YWguZWR1L35iZWF6bGV5L1NXSUcgPC9hPgotCi08aDI+IEludHJvZHVjdGlvbiA8L2gyPgotCi1TV0lHIChTaW1wbGlmaWVkIFdyYXBwZXIgYW5kIEludGVyZmFjZSBHZW5lcmF0b3IpIGlzIGEgY29kZQotZGV2ZWxvcG1lbnQKLXRvb2wgZGVzaWduZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBzY2llbnRpc3RzIGFuZCBlbmdpbmVlcnMgdG8gYWRkIHNjcmlwdGluZwotbGFuZ3VhZ2UgaW50ZXJmYWNlcyB0byBwcm9ncmFtcyBhbmQgbGlicmFyaWVzIHdyaXR0ZW4gaW4gQyBhbmQgQysrLgotVGhlIGZpcnN0IHZlcnNpb24gb2YgU1dJRyB3YXMgZGV2ZWxvcGVkIGluIEp1bHkgMTk5NSAKLWZvciB1c2Ugd2l0aAotdmVyeSBsYXJnZSBzY2FsZSBzY2llbnRpZmljIGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIHRoZSBDb25uZWN0aW9uIAotTWFjaGluZSA1IGFuZCBDcmF5IFQzRCBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkuIAotU2luY2UgdGhhdCB0aW1lLCB0aGUgc3lzdGVtIGhhcyBiZWVuIGV4dGVuZGVkIHRvIHN1cHBvcnQgc2V2ZXJhbAotaW50ZXJmYWNlIGxhbmd1YWdlcyBpbmNsdWRpbmcgUHl0aG9uLCBUY2wsIFBlcmw0LCBQZXJsNSwgYW5kIEd1aWxlIFsxXS4KLQotSW4gdGhpcyBwYXBlciwgSSB3aWxsIGRlc2NyaWJlIGhvdyBTV0lHIGNhbiBiZSB1c2VkIHRvIGludGVyYWN0IHdpdGgKLUMgYW5kIEMrKyBjb2RlIGZyb20gUHl0aG9uLiAgSSdsbCBhbHNvIGRpc2N1c3Mgc29tZQotYXBwbGljYXRpb25zIGFuZCBsaW1pdGF0aW9ucyBvZiB0aGlzIGFwcHJvYWNoLiAgIEl0IGlzIGltcG9ydGFudCB0bwotZW1waGFzaXplIHRoYXQgU1dJRyB3YXMgcHJpbWFyaWx5IGRlc2lnbmVkIGZvciBzY2llbnRpc3RzIGFuZCBlbmdpbmVlcnMKLXdobyB3b3VsZCBsaWtlIHRvIGhhdmUgYSBuaWNlIGludGVyZmFjZSwgYnV0IHdobyB3b3VsZCByYXRoZXIKLXdvcmsgb24gbW9yZSBpbnRlcmVzdGluZyBwcm9ibGVtcyB0aGFuIGZpZ3VyaW5nIG91dCBob3cgdG8gYnVpbGQKLWEgdXNlciBpbnRlcmZhY2Ugb3IgdXNpbmcgYSBjb21wbGljYXRlZCBpbnRlcmZhY2UgZ2VuZXJhdGlvbiB0b29sLgotCi08aDI+IEludHJvZHVjaW5nIFNXSUcgPC9oMj4KLQotVGhlIGlkZWEgYmVoaW5kIFNXSUcgaXMgcmVhbGx5IHF1aXRlIHNpbXBsZS0tLW1vc3QgaW50ZXJmYWNlCi1sYW5ndWFnZXMgc3VjaCBhcyBQeXRob24gcHJvdmlkZSBzb21lIG1lY2hhbmlzbSBmb3IgbWFraW5nCi1jYWxscyB0byBmdW5jdGlvbnMgd3JpdHRlbiBpbiBDIG9yIEMrKy4gIEhvd2V2ZXIsIHRoaXMgYWxtb3N0Ci1hbHdheXMgcmVxdWlyZXMgdGhlIHVzZXIgdG8gd3JpdGUgc3BlY2lhbCAid3JhcHBlciIgZnVuY3Rpb25zCi10aGF0IHByb3ZpZGUgdGhlIGdsdWUgYmV0d2VlbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIGFuZCB0aGUKLUMgZnVuY3Rpb25zLiAgICBBcyBhbiBleGFtcGxlLCBpZiB5b3Ugd2FudGVkIHRvIGFkZCB0aGUKLTx0dD4gZ2V0ZW52KCkgPC90dD4gZnVuY3Rpb24gdG8gUHl0aG9uLCB5b3Ugd291bGQgbmVlZCB0byB3cml0ZQotdGhlIGZvbGxvd2luZyB3cmFwcGVyIGNvZGUgWzRdIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotc3RhdGljIFB5T2JqZWN0ICp3cmFwX2dldGVudihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpIHsKLSAgICAgICAgIGNoYXIgKiByZXN1bHQ7Ci0gICAgICAgICBjaGFyICogYXJnMDsKLSAgICAgICAgIGlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzIiwmYXJnMCkpCi0gICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgcmVzdWx0ID0gZ2V0ZW52KGFyZzApOwotICAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoInMiLCByZXN1bHQpOwotfQotCi08L3ByZT4gPC90dD4KLTwvYmxvY2txdW90ZT4KLVdoaWxlIHdyaXRpbmcgYSBzaW5nbGUgd3JhcHBlciBmdW5jdGlvbiBpc24ndCB0b28gZGlmZmljdWx0LAotaXQgcXVpY2tseSBiZWNvbWVzIHRlZGlvdXMgYW5kIGVycm9yIHByb25lIGFzIHRoZSBudW1iZXIKLW9mIGZ1bmN0aW9ucyBpbmNyZWFzZXMuCi1TV0lHIGF1dG9tYXRlcyB0aGlzIHByb2Nlc3MgYnkgZ2VuZXJhdGluZwotd3JhcHBlciBjb2RlIGZyb20gYSBsaXN0IEFOU0kgQyBmdW5jdGlvbiBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb25zLgotQXMgYSByZXN1bHQsIGFkZGluZyBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHRvIEMgYXBwbGljYXRpb25zIGNhbiBiZWNvbWUKLWFuIGFsbW9zdCB0cml2aWFsIGV4ZXJjaXNlLiA8YnI+IDxicj4KLQotVGhlIGNvcmUgb2YgdGhlIFNXSUcgY29uc2lzdHMgb2YgYSBZQUNDIHBhcnNlciBhbmQgYSBjb2xsZWN0aW9uCi1vZiBnZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBmdW5jdGlvbnMuICAgVGhlIG91dHB1dCBvZiB0aGUgcGFyc2VyCi1pcyBzZW50IHRvIHR3byBkaWZmZXJlbnQgbW9kdWxlcy0tYSBsYW5ndWFnZSBtb2R1bGUgZm9yIHdyaXRpbmcKLXdyYXBwZXIgZnVuY3Rpb25zIGFuZCBhIGRvY3VtZW50YXRpb24gbW9kdWxlIGZvciBwcm9kdWNpbmcgYSBzaW1wbGUKLXJlZmVyZW5jZSBndWlkZS4gICBFYWNoIG9mIHRoZSB0YXJnZXQgbGFuZ3VhZ2VzIGFuZCBkb2N1bWVudGF0aW9uIG1ldGhvZHMgCi1pcyBpbXBsZW1lbnRlZCBhcyBDKysgY2xhc3MgdGhhdCBjYW4gYmUgcGx1Z2dlZCBpbiB0byB0aGUgc3lzdGVtLgotQ3VycmVudGx5LCBQeXRob24sIFRjbCwgUGVybDQsIFBlcmw1LCBhbmQgR3VpbGUgYXJlIHN1cHBvcnRlZCBhcwotdGFyZ2V0IGxhbmd1YWdlcyB3aGlsZSBkb2N1bWVudGF0aW9uIGNhbiBiZSBwcm9kdWNlZCBpbiBBU0NJSSwgSFRNTCwKLWFuZCBMYVRlWC4gICBEaWZmZXJlbnQgdGFyZ2V0IGxhbmd1YWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgYXMgYSBuZXcKLUMrKyBjbGFzcyB0aGF0IGlzIGxpbmtlZCB3aXRoIGEgZ2VuZXJhbCBwdXJwb3NlIFNXSUcgbGlicmFyeSBmaWxlLgotCi08aDI+IFByZXZpb3VzIHdvcmsgPC9oMj4KLQotTW9zdCBQeXRob24gdXNlcnMgYXJlIHByb2JhYmx5IGF3YXJlIHRoYXQgYXV0b21hdGljIHdyYXBwZXIgZ2VuZXJhdGlvbiBpcyAKLW5vdCBhIG5ldyBpZGVhLiAgIEluIHBhcnRpY3VsYXIsIHBhY2thZ2VzIHN1Y2ggYXMgSUxVIGFyZSBjYXBhYmxlCi1vZiBwcm92aWRpbmcgYmluZGluZ3MgYmV0d2VlbiBDLCBDKyssIGFuZCBQeXRob24gdXNpbmcgc3BlY2lmaWNhdGlvbnMKLWdpdmVuIGluIElETCAoSW50ZXJmYWNlIERlZmluaXRpb24gTGFuZ3VhZ2UpIFszXS4gU1dJRyBpcyBub3QgcmVhbGx5IG1lYW50IHRvIGNvbXBldGUgd2l0aCB0aGlzCi1hcHByb2FjaCwgYnV0IGlzIGRlc2lnbmVkIHRvIGJlIGEgbm8tbm9uc2Vuc2UsIGVhc3kgdG8gdXNlIHRvb2wKLXRoYXQgc2NpZW50aXN0cyBhbmQgZW5naW5lZXJzIGNhbiB1c2UgdG8gYnVpbGQgaW50ZXJlc3RpbmcgaW50ZXJmYWNlcwotd2l0aG91dCBoYXZpbmcgdG8gd29ycnkgYWJvdXQgZ3J1bmd5IHByb2dyYW1taW5nIGRldGFpbHMgb3IgbGVhcm5pbmcKLWEgY29tcGxpY2F0ZWQgaW50ZXJmYWNlIHNwZWNpZmljYXRpb24gbGFuZ3VhZ2UuCi1XaXRoIHRoYXQgc2FpZCwgU1dJRyBpcyBjZXJ0YWlubHkgbm90IGRlc2lnbmVkIHRvIHR1cm4gUHl0aG9uIGludG8KLWEgQyBvciBDKysgY2xvbmUgKEknbSBub3Qgc3VyZSB0aGF0IHR1cm5pbmcgUHl0aG9uIGludG8gaW50ZXJwcmV0ZWQKLUMvQysrIGNvbXBpbGVyIHdvdWxkIGJlIGEgZ29vZCBpZGVhIGFueXdheXMpLiAgSG93ZXZlciwgU1dJRyBjYW4gYWxsb3cKLVB5dGhvbiB0byBpbnRlcmZhY2Ugd2l0aCBhIHN1cnByaXNpbmdseSB3aWRlIHZhcmlldHkgb2YgQyBmdW5jdGlvbnMuCi0KLTwvYm9keT4KLTwvaHRtbD4KLQotPGgyPiBBIFNXSUcgZXhhbXBsZSA8L2gyPgotCi1XaGlsZSBpdCBpcyBub3QgbXkgaW50ZW50IHRvIHByb3ZpZGUgYSB0dXRvcmlhbCwgSSBob3BlIHRvCi1pbGx1c3RyYXRlIGhvdyBTV0lHIHdvcmtzIGJ5IGJ1aWxkaW5nIGEgbW9kdWxlIGZyb20gcGFydCBvZiB0aGUKLVVOSVggc29ja2V0IGxpYnJhcnkuCi1XaGlsZSB0aGVyZSBpcyBwcm9iYWJseSBubyBuZWVkIHRvIGRvIHRoaXMgaW4gcHJhY3RpY2UgKHNpbmNlIFB5dGhvbgotYWxyZWFkeSBoYXMgYSBzb2NrZXQgbW9kdWxlKSwgaXQgaWxsdXN0cmF0ZXMgbW9zdCBvZiBTV0lHJ3MgY2FwYWJpbGl0aWVzCi1vbiBhIG1vZGVyYXRlbHkgY29tcGxleCBleGFtcGxlIGFuZCBwcm92aWRlcyBhIGJhc2lzIGZvciAKLWNvbXBhcmlzb24gYmV0d2VlbiBhbiBleGlzdGluZyBtb2R1bGUgYW5kIG9uZSBjcmVhdGVkIGJ5IFNXSUcuIDxicj4gPGJyPgotCi1BcyBpbnB1dCwgU1dJRyB0YWtlcyBhbiBpbnB1dCBmaWxlIHJlZmVycmVkIHRvIGFzIGFuICJpbnRlcmZhY2UgZmlsZS4iCi1UaGUgZmlsZSBzdGFydHMgd2l0aCBhIHByZWFtYmxlIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlCi1tb2R1bGUgYW5kIGEgY29kZSBibG9jayB3aGVyZSBzcGVjaWFsIGhlYWRlciBmaWxlcywgYWRkaXRpb25hbCBDCi1jb2RlLCBhbmQgb3RoZXIgdGhpbmdzIGNhbiBiZSBhZGRlZC4gIEFmdGVyIHRoYXQsIEFOU0kgQyBmdW5jdGlvbgotYW5kIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBhcmUgbGlzdGVkIGluIGFueSBvcmRlci4gICBTaW5jZSBTV0lHCi11c2VzIEMgc3ludGF4LCBpdCdzIHVzdWFsbHkgZmFpcmx5IGVhc3kgdG8gYnVpbGQgYW4gaW50ZXJmYWNlIAotZnJvbSBzY3JhdGNoIG9yIHNpbXBseSBieSBjb3B5aW5nIGFuIGV4aXN0aW5nIGhlYWRlciBmaWxlLgotVGhlIGZvbGxvd2luZyBTV0lHIGludGVyZmFjZSBmaWxlIHdpbGwgYmUgdXNlZCBmb3Igb3VyIHNvY2tldCBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotLy8gc29ja2V0LmkKLS8vIFNXSUcgSW50ZXJmYWNlIGZpbGUgdG8gcGxheSB3aXRoIHNvbWUgc29ja2V0cwotJWluaXQgc29jayAgICAgICAgICAvLyBOYW1lIG9mIG91ciBtb2R1bGUKLSV7Ci0jaW5jbHVkZSAmbHQ7c3lzL3R5cGVzLmgmZ3QKLSNpbmNsdWRlICZsdDtzeXMvc29ja2V0LmgmZ3QKLSNpbmNsdWRlICZsdDtuZXRpbmV0L2luLmgmZ3QKLSNpbmNsdWRlICZsdDthcnBhL2luZXQuaCZndAotI2luY2x1ZGUgJmx0O25ldGRiLmgmZ3QKLQotLyogU2V0IHNvbWUgdmFsdWVzIGluIHRoZSBzb2NrYWRkcl9pbiBzdHJ1Y3R1cmUgKi8KLXN0cnVjdCBzb2NrYWRkciAqbmV3X3NvY2thZGRyX2luKHNob3J0IGZhbWlseSwgdW5zaWduZWQgbG9uZyBob3N0aWQsIGludCBwb3J0KSB7Ci0gICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqYWRkcjsKLSAgICAgICAgYWRkciA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKLSAgICAgICAgYnplcm8oKGNoYXIgKikgYWRkciwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOwotICAgICAgICBhZGRyLSZndDtzaW5fZmFtaWx5ID0gZmFtaWx5OwotICAgICAgICBhZGRyLSZndDtzaW5fYWRkci5zX2FkZHIgPSBob3N0aWQ7Ci0gICAgICAgIGFkZHItJmd0O3Npbl9wb3J0ID0gaHRvbnMocG9ydCk7Ci0gICAgICAgIHJldHVybiAoc3RydWN0IHNvY2thZGRyICopIGFkZHI7Ci19Ci0vKiBHZXQgaG9zdCBhZGRyZXNzLCBidXQgcmV0dXJuIGFzIGEgc3RyaW5nIGluc3RlYWQgb2YgaG9zdGVudCAqLwotY2hhciAqbXlfZ2V0aG9zdGJ5bmFtZShjaGFyICpob3N0bmFtZSkgewotICAgICAgICBzdHJ1Y3QgaG9zdGVudCAqaDsKLSAgICAgICAgaCA9IGdldGhvc3RieW5hbWUoaG9zdG5hbWUpOwotICAgICAgICBpZiAoaCkgcmV0dXJuIGgtJmd0O2hfbmFtZTsKLSAgICAgICAgZWxzZSByZXR1cm4gIiI7Ci19Ci0lfQotCi0vLyBBZGQgdGhlc2UgY29uc3RhbnRzCi1lbnVtIHtBRl9VTklYLCBBRl9JTkVULCBTT0NLX1NUUkVBTSwgU09DS19ER1JBTSwgU09DS19SQVcsCi0gICAgICBJUFBST1RPX1VEUCwgSVBQUk9UT19UQ1AsIElOQUREUl9BTll9OwotCi0jZGVmaW5lICBTSVpFT0ZfU09DS0FERFIgIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIpCi0KLS8vIFdyYXAgdGhlc2UgZnVuY3Rpb25zIAotaW50IHNvY2tldChpbnQgZmFtaWx5LCBpbnQgdHlwZSwgaW50IHByb3RvY29sKTsKLWludCBiaW5kKGludCBzb2NrZmQsIHN0cnVjdCBzb2NrYWRkciAqbXlhZGRyLCBpbnQgYWRkcmxlbik7Ci1pbnQgY29ubmVjdChpbnQgc29ja2ZkLCBzdHJ1Y3Qgc29ja2FkZHIgKnNlcnZhZGRyLCBpbnQgYWRkcmxlbik7Ci1pbnQgbGlzdGVuKGludCBzb2NrZmQsIGludCBiYWNrbG9nKTsKLWludCBhY2NlcHQoaW50IHNvY2tmZCwgc3RydWN0IHNvY2thZGRyICpwZWVyLCAldmFsIGludCAqYWRkcmxlbik7Ci1pbnQgY2xvc2UoaW50IGZkKTsKLXN0cnVjdCBzb2NrYWRkciAqbmV3X3NvY2thZGRyX2luKHNob3J0IGZhbWlseSwgdW5zaWduZWQgbG9uZywgaW50IHBvcnQpOwotJW5hbWUgZ2V0aG9zdGJ5bmFtZSB7IGNoYXIgKm15X2dldGhvc3RieW5hbWUoY2hhciAqKTsgfQotdW5zaWduZWQgbG9uZyBpbmV0X2FkZHIoY29uc3QgY2hhciAqaXApOwotCi0laW5jbHVkZSB1bml4aW8uaQotPC9wcmU+Ci08L3R0PgotPC9ibG9ja3F1b3RlPgotCi1UaGVyZSBhcmUgc2V2ZXJhbCB0aGluZ3MgdG8gbm90aWNlIGFib3V0IHRoaXMgZmlsZQotCi08dWw+Ci08bGk+IFRoZSBtb2R1bGUgbmFtZSBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgPHR0PiAlaW5pdCA8L3R0PiBkaXJlY3RpdmUuCi08bGk+IEhlYWRlciBmaWxlcyBhbmQgc3VwcG9ydGluZyBDIGNvZGUgaXMgcGxhY2VkIGluIDx0dD4gJXssJX0gPC90dD4uCi08bGk+IFNwZWNpYWwgc3VwcG9ydCBmdW5jdGlvbnMgbWF5IGJlIG5lY2Vzc2FyeS4gRm9yIGV4YW1wbGUsIDx0dD4KLW5ld19zb2NrYWRkcl9pbigpIDwvdHQ+IGNyZWF0ZXMgYSBuZXcgPHR0PiBzdHJ1Y3Qgc29ja2FkZHJfaW4gPC90dD4gdHlwZQotYW5kIHNldHMgc29tZSBvZiBpdHMgdmFsdWVzLgotPGxpPiBDb25zdGFudHMgYXJlIGNyZWF0ZWQgd2l0aCA8dHQ+IGVudW0gPC90dD4gb3IgPHR0PiAjZGVmaW5lLiA8L3R0PgotPGxpPiBGdW5jdGlvbnMgY2FuIHRha2UgbW9zdCBDIGJhc2ljIGRhdGF0eXBlcyBhcyB3ZWxsIGFzIHBvaW50ZXJzCi10byBjb21wbGV4IHR5cGVzLgotPGxpPiBGdW5jdGlvbnMgY2FuIGJlIHJlbmFtZWQgd2l0aCB0aGUgPHR0PiAlbmFtZSA8L3R0PiBkaXJlY3RpdmUuCi08bGk+IFRoZSA8dHQ+ICV2YWwgPC90dD4gZGlyZWN0aXZlIGZvcmNlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGJlIGNhbGxlZCBieQotdmFsdWUuCi0KLTxsaT4gVGhlIDx0dD4gJWluY2x1ZGUgPC90dD4gZGlyZWN0aXZlIGNhbiBiZSB1c2VkIHRvIGluY2x1ZGUgb3RoZXIKLVNXSUcgaW50ZXJmYWNlIGZpbGVzLiAgIEluIHRoaXMgY2FzZSwgdGhlIGZpbGUgPHR0PiB1bml4aW8uaSA8L3R0PgotbWlnaHQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOgotCi08YmxvY2txdW90ZT4KLTx0dD4KLTxwcmU+Ci0vLyBGaWxlIDogdW5peGlvLmkgCi0vLyBTb21lIGZpbGUgSS9PIGFuZCBtZW1vcnkgZnVuY3Rpb25zCi0lewotJX0KLWludCByZWFkKGludCBmZCwgdm9pZCAqYnVmZmVyLCBpbnQgbik7Ci1pbnQgd3JpdGUoaW50IGZkLCB2b2lkICpidWZmZXIsIGludCBuKTsKLXR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKLXZvaWQgKm1hbGxvYyhzaXplX3QgbmJ5dGVzKTsKLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLTxsaT4gU2luY2UgaW50ZXJmYWNlIGZpbGVzIGNhbiBpbmNsdWRlIG90aGVyIGludGVyZmFjZSBmaWxlcywgaXQgY2FuIGJlIHZlcnkKLWVhc3kgdG8gYnVpbGQgdXAgbGlicmFyaWVzIGFuZCBjb2xsZWN0aW9ucyBvZiB1c2VmdWwgZnVuY3Rpb25zLgotPGxpPiA8dHQ+IHR5cGVkZWYgPC90dD4gY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBtYXBwaW5nIGJldHdlZW4gZGF0YXR5cGVzLgotPGxpPiBDIGFuZCBDKysgY29tbWVudHMgYXJlIGFsbG93ZWQgYW5kIGxpa2UgQywgU1dJRyBpZ25vcmVzIHdoaXRlc3BhY2UuCi08L3VsPgotCi1UaGUga2V5IHRoaW5nIHRvIG5vdGljZSBhYm91dCBTV0lHIGludGVyZmFjZSBmaWxlcyBpcyB0aGF0IHRoZXkgc3VwcG9ydAotcmVhbCBDIGZ1bmN0aW9ucywgY29uc3RhbnRzLCBhbmQgZGF0YXR5cGVzIGluY2x1ZGluZyBDIHBvaW50ZXJzLiAgIEFzCi1hIGdlbmVyYWwgcnVsZSB0aGVzZSBmaWxlcyBhcmUgYWxzbyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IHNjcmlwdGluZwotbGFuZ3VhZ2UtLXRoZSBwcmltYXJ5IHJlYXNvbiB3aHkgaXQncyBlYXN5IHRvIHN1cHBvcnQgZGlmZmVyZW50Ci1sYW5ndWFnZXMuCi0KLTxoMj4gQnVpbGRpbmcgYSBQeXRob24gbW9kdWxlIDwvaDI+Ci0KLUJ1aWxkaW5nIGEgUHl0aG9uIG1vZHVsZSB3aXRoIFNXSUcgaXMgYSBzaW1wbGUgcHJvY2VzcyB0aGF0IHByb2NlZWRzIGFzCi1mb2xsb3dzIChhc3N1bWluZyB5b3UncmUgcnVubmluZyBTb2xhcmlzIDIueCkgOgotCi08YmxvY2txdW90ZT4KLTx0dD4KLTxwcmU+Ci11bml4ID4gd3JhcCAtcHl0aG9uIHNvY2tldC5pCi11bml4ID4gZ2NjIC1jIHNvY2tldF93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUvUHkKLXVuaXggPiBsZCAtRyBzb2NrZXRfd3JhcC5vIC1sc29ja2V0IC1sbnNsIC1vIHNvY2ttb2R1bGUuc28KLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotVGhlIDx0dD4gd3JhcCA8L3R0PiBjb21tYW5kIHRha2VzIHRoZSBpbnRlcmZhY2UgZmlsZSBhbmQgcHJvZHVjZXMgYSBDIGZpbGUKLWNhbGxlZCA8dHQ+IHNvY2tldF93cmFwLmMgPC90dD4uICAgVGhpcyBmaWxlIGlzIHRoZW4gY29tcGlsZWQgYW5kIGJ1aWx0IGludG8KLWEgc2hhcmVkIG9iamVjdCBmaWxlLiAKLQotPGgyPiBBIHNhbXBsZSBQeXRob24gc2NyaXB0IDwvaDI+Ci0KLU91ciBuZXcgc29ja2V0IG1vZHVsZSBjYW4gYmUgdXNlZCBub3JtYWxseSB3aXRoaW4gYSBQeXRob24gc2NyaXB0LiAKLUZvciBleGFtcGxlLCB3ZSBjb3VsZCB3cml0ZSBhIHNpbXBsZSBzZXJ2ZXIgcHJvY2VzcyB0byBlY2hvIGFsbAotZGF0YSByZWNlaXZlZCBiYWNrIHRvIGEgY2xpZW50IDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotIyBFY2hvIHNlcnZlciBwcm9ncmFtIHVzaW5nIFNXSUcgbW9kdWxlCi1mcm9tIHNvY2sgaW1wb3J0ICoKLVBPUlQgPSA1MDAwCi1zb2NrZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApCi1pZiBzb2NrZmQgPCAwOgotICAgICAgICByYWlzZSBJT0Vycm9yLCAnc2VydmVyIDogdW5hYmxlIHRvIG9wZW4gc3RyZWFtIHNvY2tldCcKLWFkZHIgPSBuZXdfc29ja2FkZHJfaW4oQUZfSU5FVCxJTkFERFJfQU5ZLFBPUlQpCi1pZiAoYmluZChzb2NrZmQsIGFkZHIsIFNJWkVPRl9TT0NLQUREUikpIDwgMCA6Ci0gICAgICAgIHJhaXNlIElPRXJyb3IsICdzZXJ2ZXIgOiB1bmFibGUgdG8gYmluZCBsb2NhbCBhZGRyZXNzJwotbGlzdGVuKHNvY2tmZCw1KQotY2xpZW50X2FkZHIgPSBuZXdfc29ja2FkZHJfaW4oQUZfSU5FVCwgMCwgMCkKLW5ld3NvY2tmZCA9IGFjY2VwdChzb2NrZmQsIGNsaWVudF9hZGRyLCBTSVpFT0ZfU09DS0FERFIpCi1idWZmZXIgPSBtYWxsb2MoMTAyNCkKLXdoaWxlIDE6Ci0gICAgICAgIG5ieXRlcyA9IHJlYWQobmV3c29ja2ZkLCBidWZmZXIsIDEwMjQpCi0gICAgICAgIGlmIG5ieXRlcyA+IDAgOgotICAgICAgICAgICAgICAgIHdyaXRlKG5ld3NvY2tmZCxidWZmZXIsbmJ5dGVzKQotICAgICAgICBlbHNlIDogYnJlYWsKLWNsb3NlKG5ld3NvY2tmZCkKLWNsb3NlKHNvY2tmZCkKLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotSW4gb3VyIFB5dGhvbiBtb2R1bGUsIHdlIGFyZSBtYW5pcHVsYXRpbmcgYSBzb2NrZXQsIGluIGFsbW9zdAotZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgd291bGQgYmUgZG9uZSBpbiBhIEMgcHJvZ3JhbS4gIFdlJ2xsIHRha2UKLWEgbG9vayBhdCBhIGNsaWVudCB3cml0dGVuIHVzaW5nIHRoZSBQeXRob24gc29ja2V0IGxpYnJhcnkgc2hvcnRseS4KLQotPGgyPiBQb2ludGVycyBhbmQgcnVuLXRpbWUgdHlwZSBjaGVja2luZyA8L2gyPgotCi1TV0lHIGltcG9ydHMgQyBwb2ludGVycyBhcyBBU0NJSSBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB0aGUKLWFkZHJlc3MgYW5kIHBvaW50ZXIgdHlwZS4gIFRodXMsIGEgdHlwaWNhbCBTV0lHIHBvaW50ZXIgbWlnaHQgbG9vawotbGlrZSB0aGUgZm9sbG93aW5nIDogPGJyPiA8YnI+Ci0KLTxjZW50ZXI+Ci08dHQ+IF9mZDJhMF9zdHJ1Y3Rfc29ja2FkZHJfcCA8L3R0PiA8YnI+IDxicj4KLTwvY2VudGVyPgotCi1Tb21lIG1heSB2aWV3IHRoZSBpZGVhIG9mIGltcG9ydGluZyBDIHBvaW50ZXJzIGludG8gUHl0aG9uIGFzIHVuc2FmZSBvciBldmVuCi10cnVseSBpbnNhbmUuICBIb3dldmVyLCBoYW5kbGluZyBwb2ludGVycyBzZWVtcyB0byBiZSBuZWVkZWQgaW4gb3JkZXIKLWZvciBTV0lHIHRvIGhhbmRsZSBtb3N0IGludGVyZXN0aW5nIHR5cGVzIG9mIEMgY29kZS4gICBUbyBwcm92aWRlIHNvbWUgc2FmZXR5LAotdGhlIHdyYXBwZXIgZnVuY3Rpb25zIGdlbmVyYXRlZCBieSBTV0lHIHBlcmZvcm0gcG9pbnRlci10eXBlIGNoZWNraW5nCi0oc2luY2UgaW1wb3J0aW5nIEMgcG9pbnRlcnMgaW50byAKLVB5dGhvbiBoYXMgaW4gZWZmZWN0LCBieXBhc3NlZCB0eXBlLWNoZWNraW5nIGluIHRoZSBDIGNvbXBpbGVyKS4KLVdoZW4gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZXMgYXJlIHVzZWQsIHRoaXMgaXMgd2hhdCBoYXBwZW5zIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotdW5peCA+IHB5dGhvbgotUHl0aG9uIDEuMyAoQXByIDEyIDE5OTYpICBbR0NDIDIuNS44XQotQ29weXJpZ2h0IDE5OTEtMTk5NSBTdGljaHRpbmcgTWF0aGVtYXRpc2NoIENlbnRydW0sIEFtc3RlcmRhbQotPj4+IGZyb20gc29jayBpbXBvcnQgKgotPj4+IHNvY2tmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwwKTsKLT4+PiBidWZmZXIgPSBtYWxsb2MoODE5Mik7Ci0+Pj4gYmluZChzb2NrZmQsYnVmZmVyLFNJWkVPRl9TT0NLQUREUik7Ci1UcmFjZWJhY2sgKGlubmVybW9zdCBsYXN0KToKLSAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPwotVHlwZUVycm9yOiBUeXBlIGVycm9yIGluIGFyZ3VtZW50IDIgb2YgYmluZC4gRXhwZWN0ZWQgX3N0cnVjdF9zb2NrYWRkcl9wLgotPj4+IAotPC9wcmU+Ci08L3R0PgotPC9ibG9ja3F1b3RlPgotCi0KLVNXSUcncyBydW4tdGltZSB0eXBlIGNoZWNraW5nIHByb3ZpZGVzIGEgY2VydGFpbiBkZWdyZWUgb2Ygc2FmZXR5IGZyb20KLXVzaW5nIGludmFsaWQgcGFyYW1ldGVycyBhbmQgbWFraW5nIHNpbXBsZSBtaXN0YWtlcy4gIE9mIGNvdXJzZSwgYW55IHN5c3RlbSAKLXN1cHBvcnRpbmcgcG9pbnRlcnMgY2FuIGJlIGFidXNlZCwgYnV0IFNXSUcncyBpbXBsZW1lbnRhdGlvbiBoYXMgcHJvdmVuCi10byBiZSBxdWl0ZSByZWxpYWJsZSB1bmRlciBub3JtYWwgdXNlLiAgCi0KLTxoMj4gQ29tcGFyaXNvbiB3aXRoIGEgcmVhbCBQeXRob24gbW9kdWxlIDwvaDI+Ci0KLUFzIGEgcG9pbnQgb2YgY29tcGFyaXNvbiwgd2UgY2FuIG5vdyB3cml0ZSBhIGNsaWVudCBzY3JpcHQgdXNpbmcgdGhlCi1QeXRob24gc29ja2V0IG1vZHVsZSAodGhpcyBleGFtcGxlIGNvdXJ0ZXN5IG9mIHRoZSBQeXRob24gbGlicmFyeQotcmVmZXJlbmNlIG1hbnVhbCkgWzVdLiAKLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotIyBFY2hvIGNsaWVudCBwcm9ncmFtCi1mcm9tIHNvY2tldCBpbXBvcnQgKgotSE9TVCA9ICd0amF6ZS5sYW5sLmdvdicKLVBPUlQgPSA1MDAwCi1zID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNKQotcy5jb25uZWN0KEhPU1QsUE9SVCkKLXMuc2VuZCgnSGVsbG8gd29ybGQnKQotZGF0YSA9IHMucmVjdigxMDI0KQotcy5jbG9zZSgpCi1wcmludCAnUmVjZWl2ZWQnLCBgZGF0YWAKLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotQXMgb25lIG1pZ2h0IGV4cGVjdCwgdGhlIHR3byBzY3JpcHRzIGxvb2sgZmFpcmx5IHNpbWlsYXIuIEhvd2V2ZXIKLXRoZXJlIGFyZSBjZXJ0YWluIG9idmlvdXMgZGlmZmVyZW5jZXMuICBGaXJzdCwgdGhlIFNXSUcgZ2VuZXJhdGVkCi1tb2R1bGUgaXMgY2xlYXJseSBhIHF1aWNrIGFuZCBkaXJ0eSBhcHByb2FjaC4gICBXZSBtdXN0IGV4cGxpY2l0bHkKLWNoZWNrIGZvciBlcnJvcnMgYW5kIGNyZWF0ZSBhIGZldyBDIGRhdGEgc3RydWN0dXJlcy4gIEZ1cnRoZXJtb3JlLAotd2hpbGUgUHl0aG9uIGZ1bmN0aW9ucyBzdWNoIGFzIDx0dD4gc29ja2V0KCkgPC90dD4gY2FuIHRha2Ugb3B0aW9uYWwKLWFyZ3VtZW50cywgU1dJRyBnZW5lcmF0ZWQgZnVuY3Rpb25zIGNhbiBub3QgKHNpbmNlIHRoZSB1bmRlcmx5aW5nCi1DIGZ1bmN0aW9uIGNhbid0KS4gICBPZiBjb3Vyc2UsIHRoZSBhcHBhcmVudCB1Z2xpbmVzcyAKLW9mIHRoZSBTV0lHIG1vZHVsZSBjb21wYXJlZCB0byB0aGUgUHl0aG9uIGVxdWl2YWxlbnQgaXMgbm90IHRoZQotcG9pbnQgaGVyZS4KLVRoZSByZWFsIGlkZWEgdG8gZW1waGFzaXplIGlzIHRoYXQgU1dJRwotY2FuIHRha2UgYSBzZXQgb2YgcmVhbCBDIGZ1bmN0aW9ucyB3aXRoIG1vZGVyYXRlIGNvbXBsZXhpdHkgYW5kIAotcHJvZHVjZSBhIGZ1bGx5IGZ1bmN0aW9uYWwgUHl0aG9uIG1vZHVsZSBpbiBhIHZlcnkgc2hvcnQgcGVyaW9kIG9mCi10aW1lLiAgSW4gdGhpcyBjYXNlLCBhYm91dCAxMCBtaW51dGVzIHdvcnRoIG9mIGVmZm9ydC4gIAotKEknbQotZ3Vlc3NpbmcgdGhhdCB0aGUgUHl0aG9uIHNvY2tldCBtb2R1bGUgcmVxdWlyZWQgbW9yZSB0aW1lIHRoYW4gdGhhdCkuCi1XaXRoIGEgYml0IG9mIHdvcmssIHRoZSBTV0lHIGdlbmVyYXRlZCBtb2R1bGUgY291bGQgcHJvYmFibHkgYmUKLXVzZWQgdG8gYnVpbGQgYSBtb3JlIHVzZXItZnJpZW5kbHkgdmVyc2lvbiB0aGF0IGhpZCBtYW55IG9mIHRoZSBkZXRhaWxzLgotCi08aDI+IENvbnRyb2xsaW5nIEMgcHJvZ3JhbXMgPC9oMj4KLQotT2YgY291cnNlLCB0aGUgcmVhbCBnb2FsIG9mIFNXSUcgaXMgbm90IHRvIHByb2R1Y2UgcXVpcmt5Ci1yZXBsYWNlbWVudHMgZm9yIG1vZHVsZXMgaW4gdGhlIFB5dGhvbiBsaWJyYXJ5LiAgIEluc3RlYWQsIGl0Ci1iZXR0ZXIgc3VpdGVkIGFzIGEgbWVjaGFuaXNtIGZvcgotY29udHJvbGxpbmcgYSB2YXJpZXR5IG9mIEMgcHJvZ3JhbXMuIDxicj4gPGJyPgotCi1JbiB0aGUgU1BhU00gbW9sZWN1bGFyIGR5bmFtaWNzIGNvZGUgdXNlZCBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsCi1MYWJvcmF0b3J5LCBTV0lHCi1pcyB1c2VkIHRvIGJ1aWxkIGFuIGludGVyZmFjZSBvdXQgb2YgYWJvdXQgMjAwIEMgZnVuY3Rpb25zIFsyXS4KLVRoaXMgaGFwcGVucyBhdCBjb21waWxlIHRpbWUgc28gbW9zdCB1c2VycyBkb24ndAotbm90aWNlIHRoYXQgaXQgaGFzIG9jY3VycmVkLiAgIEhvd2V2ZXIsIGFzIGEgcmVzdWx0LCBpdCBpcyBub3cKLWV4dHJlbWVseSBlYXN5IGZvciB0aGUgcGh5c2ljaXN0cyB1c2luZyB0aGUgY29kZSB0byAKLWV4dGVuZCBpdCB3aXRoIG5ldyBmdW5jdGlvbnMuIAotV2hlbmV2ZXIgbmV3IGZ1bmN0aW9uYWxpdHkgaXMgYWRkZWQsIHRoZSBuZXcKLWZ1bmN0aW9ucyBhcmUgcHV0IGludG8gYSBTV0lHIGludGVyZmFjZSBmaWxlIGFuZCB0aGUgZnVuY3Rpb25zCi1iZWNvbWUgYXZhaWxhYmxlIHdoZW4gdGhlIGNvZGUgaXMgcmVjb21waWxlZCAoYSBwcm9jZXNzCi13aGljaCB1c3VhbGx5IG9ubHkgaW52b2x2ZXMgdGhlIG5ldyBDIGZ1bmN0aW9ucyBhbmQgU1dJRyBnZW5lcmF0ZWQKLXdyYXBwZXIgZmlsZSkuICAgT2YgY291cnNlLCB3aGVuIHJ1bm5pbmcgdW5kZXIgUHl0aG9uLCBpdCBpcyBwb3NzaWJsZQotdG8gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgZHluYW1pY2FsbHkgbG9hZCB0aGVtIGFzIG5lZWRlZC4gIDxicj4gPGJyPgotCi1Bbm90aGVyIHBvaW50LCBub3QgdG8gYmUgb3Zlcmxvb2tlZCwgaXMgdGhlIGZhY3QgdGhhdCBTV0lHIG1ha2VzIGl0Ci12ZXJ5IGVhc3kgZm9yIGEgdXNlciB0byBjb21iaW5lIGJpdHMgYW5kIHBpZWNlcyBvZiBjb21wbGV0ZWx5IGRpZmZlcmVudAotc29mdHdhcmUgcGFja2FnZXMgd2l0aG91dCB3YWl0aW5nIGZvciBzb21lb25lIHRvIHdyaXRlIGEgc3BlY2lhbAotcHVycG9zZSBtb2R1bGUuICAgRm9yIGV4YW1wbGUsIFNXSUcgY2FuIGJlIHVzZWQgdG8gaW1wb3J0IHRoZSBDIEFQSQotb2YgTWF0bGFiIDQuMiBpbnRvIFB5dGhvbi4gICAgVGhpcyBjb21iaW5lZCB3aXRoIGEgc2ltdWxhdGlvbiBtb2R1bGUKLWNhbiBhbGxvdyBhIHNjaWVudGlzdCB0byBwZXJmb3JtIGJvdGggc2ltdWxhdGlvbiBhbmQgZGF0YSBhbmFseXNpcyBpbgotaW50ZXJhY3RpdmVseSBvciBmcm9tIGEgc2NyaXB0LiAgIE9uZSBjb3VsZCBldmVuIGJ1aWxkIGEgVGtpbnRlciBpbnRlcmZhY2UgdG8gY29udHJvbAotdGhlIGVudGlyZSBzeXN0ZW0uICAgVGhlIGVhc2Ugb2YgdXNpbmcgU1dJRyBtYWtlcyBpdCBwb3NzaWJsZSBmb3IKLXNjaWVudGlzdHMgdG8gYnVpbGQgYXBwbGljYXRpb25zIG91dCBvZiBjb21wb25lbnRzIHRoYXQKLW1pZ2h0IG5vdCBoYXZlIGJlZW4gY29uc2lkZXJlZCBlYXJsaWVyLiAgIAotCi08aDI+IFByb3RvdHlwaW5nIGFuZCBEZWJ1Z2dpbmcgPC9oMj4KLQotV2hlbiBkZWJ1Z2dpbmcgbmV3IG1vZHVsZXMgb3IgbGlicmFyaWVzLCBpdCB3b3VsZCBiZSBuaWNlIHRvIGJlIGFibGUKLXRvIHRlc3Qgb3V0IHRoZSBmdW5jdGlvbnMgd2l0aG91dCBoYXZpbmcgdG8gcmVwZWF0ZWRseSByZWNvbXBpbGUgdGhlCi1tb2R1bGUgd2l0aCB0aGUgcmVzdCBvZiBhIGxhcmdlIGFwcGxpY2F0aW9uLiAgV2l0aCBTV0lHLCBpdCBpcyBvZnRlbgotcG9zc2libGUgdG8gcHJvdG90eXBlIGFuZCBkZWJ1ZyBtb2R1bGVzIGluZGVwZW5kZW50bHkuICAgU1dJRyBjYW4gYmUKLXVzZWQgdG8gYnVpbGQgUHl0aG9uIHdyYXBwZXJzIGFyb3VuZCB0aGUgZnVuY3Rpb25zIGFuZCBzY3JpcHRzCi1jYW4gYmUgdXNlZCBmb3IgdGVzdGluZy4gICBJbiBtYW55IGNhc2VzLCBpdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUKLXRoZSBDIGRhdGEgc3RydWN0dXJlcyBhbmQgb3RoZXIgaW5mb3JtYXRpb24gdGhhdCB3b3VsZCBoYXZlIGJlZW4gZ2VuZXJhdGVkCi1ieSB0aGUgbGFyZ2VyIGFwcGxpY2F0aW9uIGFsbCBmcm9tIHdpdGhpbiBhIFB5dGhvbiBzY3JpcHQuICBTaW5jZQotU1dJRyByZXF1aXJlcyBubyBjaGFuZ2VzIHRvIHRoZSBDIGNvZGUsIGludGVncmF0aW5nIHRoZSBuZXcgQyBjb2RlIGludG8KLXRoZSBsYXJnZSBwYWNrYWdlIGlzIHVzdWFsbHkgcHJldHR5IGVhc3kuIDxicj4gPGJyPgotCi1BIHJlbGF0ZWQgYmVuZWZpdCBvZiB0aGUgU1dJRyBhcHByb2FjaCBpcyB0aGF0IGl0IGlzIG5vdyBwb3NzaWJsZQotdG8gZWFzaWx5IGV4cGVyaW1lbnQgd2l0aCBsYXJnZSBzb2Z0d2FyZSBsaWJyYXJpZXMgYW5kIHBhY2thZ2VzLgotUGV0ZXItUGlrZSBTbG9hbiBhdCB0aGUKLVVuaXZlcnNpdHkgb2YgVXRhaCwgdXNlZCBTV0lHIHRvIHdyYXAgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgT3Blbi1HTAotbGlicmFyeSAoaW5jbHVkaW5nIG1vcmUgdGhhbiA1NjAgY29uc3RhbnRzIGFuZCAzNDAgQyBmdW5jdGlvbnMpLgotVGhpcyBgYGludGVycHJldGVkJycgT3Blbi1HTCBjb3VsZCB0aGVuIGJlIHVzZWQgaW50ZXJhY3RpdmVseSB0bwotZGV0ZXJtaW5lIHZhcmlvdXMgaW1hZ2UgcGFyYW1ldGVycyBhbmQgdG8gZHJhdyBzaW1wbGUgZmlndXJlcy4KLUlzIHRoaXMgY2FzZSwgaXQgcHJvdmVkIHRvIGJlIGEgcmVtYXJrYWJseSBlZmZlY3RpdmUgd2F5IG9mCi1maWd1cmluZyBvdXQgdGhlIGVmZmVjdHMgb2YgZGlmZmVyZW50IHBhcmFtZXRlcnMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0Ci1oYXZpbmcgdG8gcmVjb21waWxlIGFmdGVyIGV2ZXJ5IG1vZGlmaWNhdGlvbi4KLQotPGgyPiBMaXZpbmcgZGFuZ2Vyb3VzbHkgd2l0aCBkYXRhdHlwZXMgPC9oMj4KLQotT25lIG9mIHRoZSByZWFzb25zIFNXSUcgaXMgZWFzeSB0byB1c2UgZm9yIHByb3RvdHlwaW5nIGFuZCBjb250cm9sCi1hcHBsaWNhdGlvbnMgaXMgaXRzIGV4dHJlbWVseSBmb3JnaXZpbmcgdHJlYXRtZW50IG9mIGRhdGF0eXBlcy4KLTx0dD4gdHlwZWRlZiA8L3R0PiBjYW4gYmUgdXNlZCB0byBtYXAgZGF0YXR5cGVzLCBidXQgd2hlbmV2ZXIKLVNXSUcgZW5jb3VudGVycyBhbiB1bmtub3duIGRhdGF0eXBlLCBpdCBzaW1wbHkgYXNzdW1lcyB0aGF0IGl0J3MKLXNvbWUgc29ydCBvZiBjb21wbGV4IGRhdGF0eXBlLiAgQXMgYSByZXN1bHQsIGl0J3MgcG9zc2libGUgdG8KLXdyYXAgc29tZSBmYWlybHkgY29tcGxleCBDIGNvZGUgd2l0aCBhbG1vc3Qgbm8gZWZmb3J0LiAgRm9yIGV4YW1wbGUsIAotb25lIGNvdWxkIGNyZWF0ZSBhIG1vZHVsZSBhbGxvd2luZyBQeXRob24gdG8gY3JlYXRlIGEgVGNsIGludGVycHJldGVyCi1hbmQgZXhlY3V0ZSBUY2wgY29tbWFuZHMgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PgotPHByZT4KLS8vIHRjbC5pCi0vLyBXcmFwIFRjbCdzIEMgaW50ZXJmYWNlCi0laW5pdCB0Y2wKLSV7Ci0jaW5jbHVkZSAmbHQ7dGNsLmgmZ3Q7Ci0lfQotCi1UY2xfSW50ZXJwICpUY2xfQ3JlYXRlSW50ZXJwKHZvaWQpOwotdm9pZCAgICAgICAgVGNsX0RlbGV0ZUludGVycChUY2xfSW50ZXJwICppbnRlcnApOwotaW50ICAgICAgICAgVGNsX0V2YWwoVGNsX0ludGVycCAqaW50ZXJwLCBjaGFyICpzY3JpcHQpOwotaW50ICAgICAgICAgVGNsX0V2YWxGaWxlKFRjbF9JbnRlcnAgKmludGVycCwgY2hhciAqZmlsZSk7Ci08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLVNXSUcgaGFzIG5vIGlkZWEgd2hhdCA8dHQ+IFRjbF9JbnRlcnAgPC90dD4gaXMsIGJ1dCBpdCBkb2Vzbid0Ci1yZWFsbHkgY2FyZSBhcyBsb25nIGFzIGl0J3MgdXNlZCBhcyBhIHBvaW50ZXIuICAgIFdoZW4gdXNlZCBpbiBhCi1QeXRob24gc2NyaXB0LCB0aGlzIG1vZHVsZSB3b3VsZCB3b3JrIGFzIGZvbGxvd3MgOgotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotdW5peCA+IHB5dGhvbgotUHl0aG9uIDEuMyAoTWFyIDI2IDE5OTYpICBbR0NDIDIuNy4wXQotQ29weXJpZ2h0IDE5OTEtMTk5NSBTdGljaHRpbmcgTWF0aGVtYXRpc2NoIENlbnRydW0sIEFtc3RlcmRhbQotPj4+IGltcG9ydCB0Y2wKLT4+PiBpbnRlcnAgPSB0Y2wuVGNsX0NyZWF0ZUludGVycCgpOwotPj4+IHRjbC5UY2xfRXZhbChpbnRlcnAsImZvciB7c2V0IGkgMH0geyRpIDwgNX0ge2luY3IgaSAxfSB7cHV0cyAkaX0iKTsKLTAKLTEKLTIKLTMKLTQKLTAKLT4+PgotPC9wcmU+Ci08L3R0PgotPC9ibG9ja3F1b3RlPgotCi08aDI+IExpbWl0YXRpb25zIDwvaDI+Ci0KLVRoaXMgYXBwcm9hY2ggcmVwcmVzZW50cyBhIGJhbGFuY2Ugb2YgZmxleGliaWxpdHkgYW5kIGVhc2Ugb2YgdXNlLgotSSBoYXZlIGFsd2F5cyBmZWx0IHRoYXQgdGhlIHRvb2wgc2hvdWxkbid0IGJlIG1vcmUgY29tcGxpY2F0ZWQgdGhhbgotdGhlIG9yaWdpbmFsIHByb2JsZW0uICAgIFRoZXJlZm9yZSwgU1dJRyBjZXJ0YWlubHkgd29uJ3QgZG8gZXZlcnl0aGluZy4KLVNvbWUgb2YgU1dJRydzIGxpbWl0YXRpb25zIGluY2x1ZGUgaXQncyBsaW1pdGVkIHVuZGVyc3RhbmRpbmcgb2YKLWNvbXBsZXggZGF0YXR5cGVzLiAgIE9mdGVuIHRoZSB1c2VyIG11c3Qgd3JpdGUgc3BlY2lhbCBmdW5jdGlvbnMKLXRvIGV4dHJhY3QgaW5mb3JtYXRpb24gZnJvbSBzdHJ1Y3R1cmVzIGV2ZW4gdGhvdWdoIHBhc3NpbmcgY29tcGxleAotZGF0YXR5cGVzIGFyb3VuZCBieSByZWZlcmVuY2Ugd29ya3MgcmVtYXJrYWJseSB3ZWxsIGluIHByYWN0aWNlLgotU1dJRydzIHN1cHBvcnQgZm9yIEMrKyBpcyBhbHNvIHF1aXRlIGxpbWl0ZWQuICAgQXQgdGhlIG1vbWVudCBTV0lHCi1jYW4gYmUgdXNlZCB0byBwYXNzIHBvaW50ZXJzIHRvIEMrKyBvYmplY3RzIGFyb3VuZCwgYnV0IGFjdHVhbGx5Ci10cmFuc2Zvcm1pbmcgYSBDKysgb2JqZWN0IGludG8gc29tZSBzb3J0IG9mIFB5dGhvbiBvYmplY3QgaXMgZmFyCi1iZXlvbmQgdGhlIGNhcGFiaWxpdGllcyBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gIEZpbmFsbHksIFNXSUcKLWxhY2tzIGFuIGV4Y2VwdGlvbiBtb2RlbCB3aGljaCBtYXkgYmUgb2YgY29uY2VybiB0byBzb21lIHVzZXJzLgotCi08aDI+IExpbWl0YXRpb25zIGluIHRoZSBQeXRob24gaW1wbGVtZW50YXRpb24gPC9oMj4KLQotU1dJRydzIHN1cHBvcnQgZm9yIFB5dGhvbiBpcyBpbiBtYW55IHdheXMsIGxpbWl0ZWQgYnkgdGhlIGZhY3QgdGhhdAotU1dJRyB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgZm9yIHVzZSB3aXRoIG90aGVyIGxhbmd1YWdlcy4gIEZvciBleGFtcGxlLAotcmVwcmVzZW50aW5nIEMgcG9pbnRlcnMgYXMgYSBjaGFyYWN0ZXIgc3RyaW5nIGNhbiBiZSBzZWVuIGFzIGEgY2Fycnktb3ZlcgotZnJvbSBhbiBlYXJsaWVyIFRjbCBpbXBsZW1lbnRhdGlvbi4gIFdpdGggYSBsaXR0bGUgd29yaywgSSBiZWxpZXZlIAotdGhhdCBvbmUgY291bGQgY3JlYXRlIGEgUHl0aG9uICJwb2ludGVyIiBkYXRhdHlwZSB3aGlsZSBzdGlsbCByZXRhaW5pbmcKLXR5cGUtY2hlY2tpbmcgYW5kIG90aGVyIGZlYXR1cmVzLiA8YnI+IDxicj4KLQotQW5vdGhlciBsaW1pdGF0aW9uIGluIHRoZSBjdXJyZW50IFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBpcyB0aGUgYXBwYXJlbnQgbGFjawotb2YgdmFyaWFibGUgbGlua2luZyBzdXBwb3J0LiAgTWFueSBhcHBsaWNhdGlvbnMsIHBhcnRpY3VsYXJseSBzY2llbnRpZmljIG9uZXMsCi1oYXZlIGdsb2JhbCB2YXJpYWJsZXMgdGhhdCBhIHVzZXIgbWF5IHdhbnQgdG8gYWNjZXNzLiAgIFNXSUcgY3VycmVudGx5Ci1jcmVhdGVzIFB5dGhvbiBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGVzZSB2YXJpYWJsZXMsIGJ1dCBvdGhlcgotc2NyaXB0aW5nIGxhbmd1YWdlcyBwcm92aWRlIGEgbW9yZSBuYXR1cmFsIG1lY2hhbmlzbS4gCi1Gb3IgZXhhbXBsZSwgaW4gUGVybCwgaXQgaXMKLXBvc3NpYmxlIHRvIGF0dGFjaCAic2V0IiBhbmQgImdldCIgZnVuY3Rpb25zIHRvIGEgUGVybCBvYmplY3QuICBUaGVzZQotYXJlIGV2YWx1YXRlZCB3aGVuZXZlciB0aGF0IHZhcmlhYmxlIGlzIGFjY2Vzc2VkIGluIGEgc2NyaXB0LiAgCi1Gb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcyB0aGlzIHNwZWNpYWwgdmFyaWFibGUgbG9va3MgbGlrZSBhbnkgb3RoZXIgUGVybAotdmFyaWFibGUsIGJ1dCBpcyByZWFsbHkgbGlua2VkIHRvIGFuIEMgZ2xvYmFsIHZhcmlhYmxlIChvZiBjb3Vyc2UsCi1tYXliZSB0aGVyZSBpcyBhIHJlYXNvbiB3aHkgUGVybCBjYWxscyB0aGVzZSAibWFnaWMiIHZhcmlhYmxlcykuIDxicj4gPGJyPgotCi1JZiBhbiBlcXVpdmFsZW50IHZhcmlhYmxlIGxpbmtpbmcgbWVjaGFuaXNtIGlzIGF2YWlsYWJsZSBpbiBQeXRob24sIEkKLWNvdWxkbid0IGZpbmQgaXQgWzRdLgotSWYgbm90LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBjcmVhdGUgYSBuZXcga2luZCBvZiBQeXRob24gZGF0YXR5cGUKLXRoYXQgc3VwcG9ydHMgdmFyaWFibGUgbGlua2luZywgYnV0IHdoaWNoIGludGVyYWN0cyBzZWFtbGVzc2x5Ci13aXRoIGV4aXN0aW5nIFB5dGhvbiBpbnRlZ2VyLCBmbG9hdGluZyBwb2ludCwgYW5kIGNoYXJhY3RlciBzdHJpbmcgdHlwZXMuCi0KLTxoMj4gU3VtbWFyeSBhbmQgZnV0dXJlIHdvcmsgPC9oMj4gCi0KLVRoaXMgcGFwZXIgaGFzIGRlc2NyaWJlZCB3b3JrIGluIHByb2dyZXNzIHdpdGggdGhlIFNXSUcgc3lzdGVtIGFuZAotaXRzIHN1cHBvcnQgZm9yIFB5dGhvbi4gICBJIGJlbGlldmUgdGhhdCB0aGlzIGFwcHJvYWNoIHNob3dzIGdyZWF0Ci1wcm9taXNlIGZvciBmdXR1cmUgd29yay0tZXNwZWNpYWxseSB3aXRoaW4gdGhlIHNjaWVudGlmaWMgYW5kCi1lbmdpbmVlcmluZyBjb21tdW5pdHkuICBNb3N0IG9mIHRoZSBwZW9wbGUgaW50cm9kdWNlZCB0byBTV0lHIGFuZAotUHl0aG9uIGhhdmUKLWZvdW5kIGJvdGggc3lzdGVtcyBleHRyZW1lbHkgZWFzeSBhbmQgc3RyYWlnaHRmb3J3YXJkIHRvIHVzZS4gIAotSSBhbSBjdXJyZW50bHkKLXF1aXRlIGludGVyZXN0ZWQgaW4gaW1wcm92aW5nIFNXSUcncyBpbnRlcmZhY2UgdG8gUHl0aG9uIGFuZCBleHBsb3JpbmcKLWl0cyB1c2Ugd2l0aCBudW1lcmljYWwgUHl0aG9uIGluIG9yZGVyIHRvIGJ1aWxkIGludGVyZXN0aW5nCi1hbmQgZmxleGlibGUgc2NpZW50aWZpYyBhcHBsaWNhdGlvbnMgWzZdLgotCi08aDI+IEFja25vd2xlZGdtZW50cyA8L2gyPgotCi1UaGlzIHByb2plY3Qgd291bGQgbm90IGhhdmUgYmVlbiBwb3NzaWJsZSB3aXRob3V0IHRoZSBzdXBwb3J0IG9mIGEgbnVtYmVyCi1vZiBwZW9wbGUuICAgUGV0ZXIgTG9tZGFobCwgU2h1amlhIFpob3UsIEJyYWQgSG9saWFuLCBUaW0gR2VybWFubiwgYW5kIE5pZWxzCi1KZW5zZW4gYXQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5IHdlcmUgdGhlIGZpcnN0IHVzZXJzIGFuZCB3ZXJlCi1pbnN0cnVtZW50YWwgaW4gdGVzdGluZyBvdXQgdGhlIGZpcnN0IGRlc2lnbnMuICAgUGF0cmljayBUdWxsbWFubiwKLUpvaG4gU2NobWlkdCxQZXRlci1QaWtlIFNsb2FuLCBhbmQgS3VydGlzIEJsZWVrZXIgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCBoYXZlIGFsc28KLWJlZW4gaW5zdHJ1bWVudGFsIGluIHRlc3Rpbmcgb3V0IHNvbWUgb2YgdGhlIG5ld2VyIHZlcnNpb25zIGFuZCAKLXByb3ZpZGluZyBmZWVkYmFjay4KLUpvaG4gQnVja21hbiBoYXMgc3VnZ2VzdGVkIG1hbnkgaW50ZXJlc3RpbmcKLWltcHJvdmVtZW50cyBhbmQgaXMgY3VycmVudGx5IHdvcmtpbmcgb24gcG9ydGluZyBTV0lHIHRvIG5vbi1Vbml4Ci1wbGF0Zm9ybXMgaW5jbHVkaW5nIE5ULCBPUy8yIGFuZCBNYWNpbnRvc2guCi1GaW5hbGx5Ci1JJ2QgbGlrZSB0byB0aGFuayBDaHJpcyBKb2huc29uIGFuZCB0aGUgbWVtYmVycyBvZiB0aGUgU2NpZW50aWZpYwotQ29tcHV0aW5nIGFuZCBJbWFnaW5nIGdyb3VwIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWggZm9yIHRoZWlyIGNvbnRpbnVlZAotc3VwcG9ydC4gIFNvbWUgb2YgdGhpcyB3b3JrIHdhcyBwZXJmb3JtZWQgdW5kZXIgdGhlIGF1c3BpY2VzIG9mIHRoZQotRGVwYXJ0bWVudCBvZiBFbmVyZ3kuCi0KLTxoMj4gUmVmZXJlbmNlcyA8L2gyPgotCi1bMV0gRC5NLiBCZWF6bGV5LiA8ZW0+IFNXSUcgOiBBbiBFYXN5IHRvIFVzZSBUb29sIGZvciBJbnRlZ3JhdGluZwotU2NyaXB0aW5nIExhbmd1YWdlcyB3aXRoIEMgYW5kIEMrKyA8L2VtPi4gIFByb2NlZWRpbmdzIG9mIHRoZSA0dGgKLVVTRU5JWCBUY2wvVGsgV29ya3Nob3AgKDE5OTYpICh0byBhcHBlYXIpLiA8YnI+IDxicj4KLQotWzJdIEQuTS4gQmVhemxleSBhbmQgUC5TLiBMb21kYWhsIDxlbT4gTWVzc2FnZS1QYXNzaW5nIE11bHRpLUNlbGwKLU1vbGVjdWxhciBEeW5hbWljcyBvbiB0aGUgQ29ubmVjdGlvbiBNYWNoaW5lIDUgPC9lbT4sIFBhcmFsbGVsCi1Db21wdXRpbmcgMjAgKDE5OTQpLCBwLiAxNzMtMTk1LiA8YnI+IDxicj4KLQotWzNdIEJpbGwgSmFuc3NlbiBhbmQgTWlrZSBTcHJlaXR6ZXIsIDxlbT4gSUxVIDogSW50ZXItTGFuZ3VhZ2UKLVVuaWZpY2F0aW9uIHZpYSBPYmplY3QgTW9kdWxlczwvZW0+LCBPT1BTTEEgOTQgV29ya3Nob3Agb24KLU11bHRpLUxhbmd1YWdlIE9iamVjdCBNb2RlbHMuCi08YnI+IDxicj4KLQotWzRdIEd1aWRvIHZhbiBSb3NzdW0sIDxlbT4gRXh0ZW5kaW5nIGFuZCBFbWJlZGRpbmcgdGhlIFB5dGhvbiBJbnRlcnByZXRlciwKLTwvZW0+IE9jdG9iZXIgMTk5NS4gPGJyPiA8YnI+Ci0KLVs1XSBHdWlkbyB2YW4gUm9zc3VtLCA8ZW0+IFB5dGhvbiBMaWJyYXJ5IFJlZmVyZW5jZSA8L2VtPiwgT2N0b2JlcgotMTk5NS4gPGJyPiA8YnI+Ci0KLVs2XSBQYXVsIEYuIER1Ym9pcywgS29ucmFkIEhpbnNlbiwgYW5kIEphbWVzIEh1Z3VuaW4sIDxlbT4gTnVtZXJpY2FsCi1QeXRob24sIDwvZW0+IENvbXB1dGVycyBpbiBQaHlzaWNzLCAoMTk5NikgKHRvIGFwcGVhcikKLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvUHk5Ny8ufmJlYXpsZXkuaHRtbCBiL3N3aWd3ZWIvcGFwZXJzL1B5OTcvLn5iZWF6bGV5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGM4MWMxYmEuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9wYXBlcnMvUHk5Ny8ufmJlYXpsZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc2MiArMCwwIEBACi08aHRtbD4KLTx0aXRsZT4gRmVlZGluZyBhIExhcmdlLXNjYWxlIFBoeXNpY3MgQXBwbGljYXRpb24gdG8gUHl0aG9uIDwvdGl0bGU+Ci08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLQotPGgxPiBGZWVkaW5nIGEgTGFyZ2Utc2NhbGUgUGh5c2ljcyBBcHBsaWNhdGlvbiB0byBQeXRob24gPC9oMT4KLQotRGF2aWQgTS4gQmVhemxleSA8YnI+Ci1EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBVdGFoIDxicj4KLVNhbHQgTGFrZSBDaXR5LCBVdGFoICA4NDExMiA8YnI+Ci08dHQ+IGJlYXpsZXlAY3MudXRhaC5lZHUgPC90dD4gPGJyPgotPHA+Ci1QZXRlciBTLiBMb21kYWhsIDxicj4KLVRoZW9yZXRpY2FsIERpdmlzaW9uIDxicj4KLUxvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeSA8YnI+Ci1Mb3MgQWxhbW9zLCBOZXcgTWV4aWNvICAgODc1NDUgPGJyPgotPHR0PiBweGxAbGFubC5nb3YgPC90dD4gPGJyPgotCi0KLQotPGgyPiBBYnN0cmFjdCA8L2gyPgotCi08ZW0+Ci1XZSBkZXNjcmliZSBvdXIgZXhwZXJpZW5jZXMgdXNpbmcgUHl0aG9uIHdpdGggdGhlIFNQYVNNIG1vbGVjdWxhcgotZHluYW1pY3MgY29kZSBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkuICBPcmlnaW5hbGx5IGRldmVsb3BlZAotYXMgYSBsYXJnZSBtb25vbGl0aGljIGFwcGxpY2F0aW9uIGZvciBtYXNzaXZlbHkgcGFyYWxsZWwgcHJvY2Vzc2luZwotc3lzdGVtcywgd2UgaGF2ZSB1c2VkIFB5dGhvbiB0byB0cmFuc2Zvcm0gb3VyIGFwcGxpY2F0aW9uIGludG8gYQotZmxleGlibGUsIGhpZ2hseSBtb2R1bGFyLCBhbmQgZXh0cmVtZWx5IHBvd2VyZnVsIHN5c3RlbSBmb3IgcGVyZm9ybWluZwotc2ltdWxhdGlvbiwgZGF0YSBhbmFseXNpcywgYW5kIHZpc3VhbGl6YXRpb24uICBJbiBhZGRpdGlvbiwgd2UKLWRlc2NyaWJlIGhvdyBQeXRob24gaGFzIHNvbHZlZCBhIG51bWJlciBvZiBpbXBvcnRhbnQgcHJvYmxlbXMgcmVsYXRlZAotdG8gdGhlIGRldmVsb3BtZW50LCBkZWJ1Z2dpbmcsIGRlcGxveW1lbnQsIGFuZCBtYWludGVuYW5jZSBvZgotc2NpZW50aWZpYyBzb2Z0d2FyZS4gPC9lbT4KLQotPGgyPiBCYWNrZ3JvdW5kIDwvaDI+Ci0KLUZvciB0aGUgcGFzdCA1IHllYXJzLCB3ZSBoYXZlIGJlZW4gZGV2ZWxvcGluZyBhIGxhcmdlLXNjYWxlIHBoeXNpY3MKLWNvZGUgZm9yIHBlcmZvcm1pbmcgbW9sZWN1bGFyLWR5bmFtaWNzIHNpbXVsYXRpb25zIG9mCi1tYXRlcmlhbHMuICBUaGlzIGNvZGUsIFNQYVNNIChTY2FsYWJsZSBQYXJhbGxlbCBTaG9ydC1yYW5nZQotTW9sZWN1bGFyLWR5bmFtaWNzKSwgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGZvciB0aGUgQ29ubmVjdGlvbgotTWFjaGluZSA1IG1hc3NpdmVseSBwYXJhbGxlbCBzdXBlcmNvbXB1dGluZyBzeXN0ZW0gYW5kIGxhdGVyIG1vdmVkIHRvCi1hIG51bWJlciBvZiBvdGhlciBtYWNoaW5lcyBpbmNsdWRpbmcgdGhlIENyYXkgVDNELCBtdWx0aXByb2Nlc3NvciBTdW4KLWFuZCBTR0kgc3lzdGVtcywgYW5kIFVuaXggd29ya3N0YXRpb25zIFsxLDJdLiAgT3VyIGdvYWwgaGFzCi1iZWVuIHRvIGludmVzdGlnYXRlIG1hdGVyaWFsIHByb3BlcnRpZXMgc3VjaCBhcyBmcmFjdHVyZSwgY3JhY2sKLXByb3BhZ2F0aW9uLCBkaXNsb2NhdGlvbiBnZW5lcmF0aW9uLCBmcmljdGlvbiwgYW5kIGR1Y3RpbGUtYnJpdHRsZSB0cmFuc2l0aW9ucyBbM10uCi1UaGUgU1BhU00gY29kZQotaGVscHMgdXMgaW52ZXN0aWdhdGUgdGhlc2UgcHJvYmxlbXMgYnkgcGVyZm9ybWluZyBhdG9taXN0aWMKLXNpbXVsYXRpb25zLS10aGF0IGlzLCB3ZSBzaW11bGF0ZSB0aGUgZHluYW1pY3Mgb2YgZXZlcnkgYXRvbSBpbiBhCi1tYXRlcmlhbCBhbmQgaG9wZSB0byBtYWtlIHNlbnNlIG9mIHdoYXQgaGFwcGVucy4gIE9mIGNvdXJzZSwgdGhlCi11bmRlcmx5aW5nIHBoeXNpY3MgaXMgbm90IHNvIGltcG9ydGFudCBmb3IgdGhpcyBkaXNjdXNzaW9uLgotCi08cD4KLVdoaWxlIHRoZSBkZXZlbG9wbWVudCBvZiBTUGFTTSBpcyBhbiBvbmdvaW5nIGVmZm9ydCwgd2UKLWhhdmUgYmVlbiBoYW1wZXJlZCBieSBhIG51bWJlciBvZiBzZXJpb3VzIHByb2JsZW1zLgotRmlyc3QsIHR5cGljYWwKLXNpbXVsYXRpb25zIGdlbmVyYXRlIHRlbnMgdG8gaHVuZHJlZHMgb2YgZ2lnYWJ5dGVzIG9mIGRhdGEgdGhhdCBtdXN0Ci1iZSBhbmFseXplZC4gVGhpcyB0YXNrIGlzIG5vdCBlYXNpbHkgcGVyZm9ybWVkIG9uIGEgdXNlcidzCi13b3Jrc3RhdGlvbiwgbm9yIGlzIGl0IGVjb25vbWljYWxseSBmZWFzaWJsZSB0byBidXkgZXZlcnlvbmUgdGhlaXIgb3duCi1wZXJzb25hbCBkZXNrdG9wIHN1cGVyY29tcHV0ZXIuICBBIHNlY29uZCBwcm9ibGVtIGlzIHRoYXQgb2YKLWludGVyYWN0aXZpdHkgYW5kIGNvbnRyb2wuICBXZSBhcmUgY29uc3RhbnRseSBtYWtpbmcgY2hhbmdlcyB0bwotaW52ZXN0aWdhdGUgbmV3IHBoeXNpY2FsIG1vZGVscywgZGlmZmVyZW50IG1hdGVyaWFscywgYW5kIHNvIGZvcnRoLgotVGhpcyB3b3VsZCB1c3VhbGx5IHJlcXVpcmUgY2hhbmdlcyB0byB0aGUgdW5kZXJseWluZyBDCi1jb2RlLS1hIHByb2Nlc3MgdGhhdCB3YXMgdGVkaW91cyBhbmQgbm90IHZlcnkgdXNlciBmcmllbmRseS4gV2UKLXdhbnRlZCBhIG1vcmUgZmxleGlibGUgbWVjaGFuaXNtLgotRmluYWxseSwgdGhlcmUgd2VyZSBtYW55IGRpZmZpY3VsdGllcyBhc3NvY2lhdGVkIHdpdGggdGhlCi1kZXZlbG9wbWVudCBhbmQgbWFpbnRlbmFuY2Ugb2Ygb3VyIHNvZnR3YXJlLiAgIFdoaWxlIHdlIGFyZSBvbmx5IGEgc21hbGwKLWdyb3VwLCBpdCB3YXMgbm90IHVuY29tbW9uIGZvciBkaWZmZXJlbnQgdXNlcnMgdG8gaGF2ZSB0aGVpciAKLW93biBwcml2YXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUgdGhhdCBoYWQgYmVlbiBtb2RpZmllZCBpbiBzb21lIG1hbm5lci4gCi1UaGlzLCBpbiB0dXJuLCBsZWQgdG8gYSBtYWludGVuYW5jZSBuaWdodG1hcmUgdGhhdCBtYWRlIGl0IGFsbW9zdCBpbXBvc3NpYmxlCi10byB1cGRhdGUgdGhlIHNvZnR3YXJlIG9yIGFwcGx5IGJ1Zy1maXhlcyBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgotCi08cD4KLVRvIGFkZHJlc3MgdGhlc2UgcHJvYmxlbXMsIHdlIHN0YXJ0ZWQgaW52ZXN0aWdhdGluZyB0aGUgdXNlIG9mIHNjcmlwdGluZwotbGFuZ3VhZ2VzLiAgSW4gMTk5NSwgd2Ugd3JvdGUgYSBzcGVjaWFsIHB1cnBvc2UgcGFyYWxsZWwtc2NyaXB0aW5nIGxhbmd1YWdlLAotYnV0IHJlcGxhY2VkIGl0IHdpdGggUHl0aG9uIGEgeWVhciBsYXRlciAoYWx0aG91Z2ggdGhlIGludGVyZmFjZQotZ2VuZXJhdGlvbiB0b29sIGZvciB0aGF0IHNjcmlwdGluZyBsYW5ndWFnZSBsaXZlcyBvbiBhcyBTV0lHKS4gIEluIHRoaXMKLXBhcGVyLCB3ZSBob3BlIHRvIGRlc2NyaWJlIHNvbWUgb2Ygb3VyIGV4cGVyaWVuY2VzIHdpdGggUHl0aG9uIGFuZCBob3cKLWl0IGhhcyBoZWxwZWQgdXMgc29sdmUgcHJhY3RpY2FsIHNjaWVudGlmaWMgY29tcHV0aW5nIHByb2JsZW1zLiAgIEluIHBhcnRpY3VsYXIsCi13ZSBkZXNjcmliZSB0aGUgb3JnYW5pemF0aW9uIG9mIG91ciBzeXN0ZW0sIG1vZHVsZSBidWlsZGluZyBwcm9jZXNzLAotaW50ZXJlc3RpbmcgdG9vbHMgdGhhdCBQeXRob24gaGFzIGhlbHBlZCB1cyBkZXZlbG9wLCBhbmQgd2h5IHdlIHRoaW5rIHRoaXMKLWFwcHJvYWNoIGlzIHBhcnRpY3VsYXJseSB3ZWxsLXN1aXRlZCBmb3Igc2NpZW50aWZpYyBjb21wdXRpbmcgcmVzZWFyY2guCi0KLTxoMj4gV2h5IFB5dGhvbj8gPC9oMj4KLQotQWx0aG91Z2ggb3VyIGNvZGUgb3JpZ2luYWxseSB1c2VkIGEgY3VzdG9tIHNjcmlwdGluZyBsYW5ndWFnZSwgd2UgZGVjaWRlZAotdG8gc3dpdGNoIHRvIFB5dGhvbiBmb3IgYSBudW1iZXIgb2YgcmVhc29ucyA6Ci0KLTxwPgotPHVsPgotPGxpPiBGZWF0dXJlcy4gIFB5dGhvbiBoYWQgYSByaWNoIHNldCBvZiBkYXRhdHlwZXMsIHN1cHBvcnQgZm9yCi1vYmplY3Qgb3JpZW50ZWQgcHJvZ3JhbW1pbmcsIG5hbWVzcGFjZXMsIGV4Y2VwdGlvbnMsIGR5bmFtaWMgbG9hZGluZywKLWFuZCBhIGxhcmdlIG51bWJlciBvZiB1c2VmdWwgbW9kdWxlcy4KLTxsaT4gU3ludGF4LiAgT3VyIHN5c3RlbSBpcyBjb250cm9sbGVkIHRocm91Z2gKLXRleHQtYmFzZWQgY29tbWFuZHMgYW5kIHNjcmlwdHMuICBXZSBmZWx0IHRoYXQgUHl0aG9uIGhhZCBhIG5pY2UKLXN5bnRheCB0aGF0IGRvZXMgbm90IHJlcXVpcmUgdXNlcnMgdG8KLXR5cGUgd2VpcmQgc3ltYm9scyAoJCwlLEAsIGV0Yy4uLikgb3IgdXNlIHN5bnRheCB0aGF0IGlzIHJhZGljYWxseQotZGlmZmVyZW50IHRoYW4gQy4KLTxsaT4gQSBzbWFsbCBjb3JlLiAgVGhlIG1vZHVsYXIgc3RydWN0dXJlIG9mIFB5dGhvbiBtYWtlcyBpdCBlYXN5IGZvciB1cwotdG8gcmVtb3ZlIG9yIGFkZCBtb2R1bGVzIGFzIG5lZWRlZC4gICBHaXZlbiB0aGUgZGlmZmljdWx0IHRhc2sgb2YgcnVubmluZwotb24gcGFyYWxsZWwgbWFjaGluZXMgYW5kIHN1cGVyY29tcHV0ZXJzLCB3ZSBmZWx0IHRoYXQgdGhpcyBzdHJ1Y3R1cmUKLXdvdWxkIG1ha2UgaXQgZWFzaWVyIGZvciB1cyB0byBwb3J0IFB5dGhvbiB0byBhIHZhcmlldHkgb2Ygc3BlY2lhbC1wdXJwb3NlCi1tYWNoaW5lcyAoc2luY2Ugd2UgY291bGQganVzdCByZW1vdmUgcHJvYmxlbWF0aWMgbW9kdWxlcykuCi08bGk+IEF2YWlsYWJpbGl0eSBvZiBkb2N1bWVudGF0aW9uLiAgIFVzZXJzIGNvdWxkIGdvIHRvIHRoZSBib29rc3RvcmUgCi10byBmaW5kIG91dCBtb3JlIGFib3V0IFB5dGhvbi4KLTxsaT4gU3VwcG9ydCBhbmQgc3RhYmlsaXR5LiAgUHl0aG9uIGFwcGVhcmVkIHRvIGJlIGhpZ2hseSBzdGFibGUgYW5kCi13ZWxsIHN1cHBvcnRlZCB0aHJvdWdoIG5ld3Nncm91cHMsIHNwZWNpYWwgaW50ZXJlc3QgZ3JvdXBzLCBhbmQgdGhlIFBTQS4KLTxsaT4gRnJlZWx5IGF2YWlsYWJsZS4gIFdlIGhhdmUgYmVlbiBhYmxlIHRvCi11c2UgYW5kIG1vZGlmeSBQeXRob24gYXMgbmVlZGVkIGZvciBvdXIgYXBwbGljYXRpb24uICBUaGlzIHdvdWxkIGhhdmUKLWJlZW4gaW1wb3NzaWJsZSB3aXRob3V0IGFjY2VzcyB0byB0aGUgUHl0aG9uIHNvdXJjZS4KLTwvdWw+Ci0KLTxwPgotQW5vdGhlciBmYWN0b3IsIG5vdCB0byBiZSBvdmVybG9va2VkLCBpcyB0aGUgaW5jcmVhc2luZyBhY2NlcHRhbmNlIG9mCi1QeXRob24gZWxzZXdoZXJlIGluIHRoZSBjb21wdXRhdGlvbmFsIHNjaWVuY2UgY29tbXVuaXR5LiAgRWZmb3J0cyBhdAotTGF3cmVuY2UgTGl2ZXJtb3JlIE5hdGlvbmFsIExhYm9yYXRvcnkgYW5kIGVsc2V3aGVyZSB3ZXJlCi1hdHRyYWN0aXZlLS1pbiBwYXJ0aWN1bGFyLCB3ZSBzYXcgUHl0aG9uIGFzIGJlaW5nIGEgcG90ZW50aWFsIHZlaGljbGUKLWZvciBzaGFyaW5nIG1vZHVsZXMgYW5kIHV0aWxpemluZyB0aGlyZC1wYXJ0eSB0b29scyBbNCw5LDEwXS4KLQotPGgyPiBTeXN0ZW0gT3JnYW5pemF0aW9uIDwvaDI+Ci0KLU91ciBnb2FsIHdhcyB0byBidWlsZCBhIGhpZ2hseSBtb2R1bGFyIHN5c3RlbSB0aGF0IGNvdWxkIHBlcmZvcm0KLXNpbXVsYXRpb24sIGRhdGEgYW5hbHlzaXMsIGFuZCB2aXN1YWxpemF0aW9uLS1vZnRlbiBwZXJmb3JtaW5nCi1hbGwgb2YgdGhlc2UgdGFza3Mgc2ltdWx0YW5lb3VzbHkuICBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBhIHRlbmRlbmN5Ci10byBkbyB0aGlzIGJ5IGJ1aWxkaW5nIGEgdGlnaHRseSBpbnRlZ3JhdGVkCi1tb25vbGl0aGljIHBhY2thZ2UgKHBlcmhhcHMgdXNpbmcgYSB3ZWxsLXN0cnVjdHVyZWQgQysrIGNsYXNzCi1oaWVyYXJjaHkgZm9yIGV4YW1wbGUpLiAgSW4gb3VyIHZpZXcsIHRoaXMgaXMgdG9vCi1mb3JtYWwgYW5kIHJlc3RyaWN0aXZlLiAgV2Ugd2FudGVkIHRvIHN1cHBvcnQgbW9kdWxlcyB0aGF0IG1pZ2h0IG9ubHkKLWJlIGxvb3NlbHkgcmVsYXRlZCB0byBlYWNoIG90aGVyLiAgRm9yIGV4YW1wbGUsIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEKLWdyYXBoaWNzIGxpYnJhcnkgdG8gZGVwZW5kIG9uIHRoZSBzYW1lIHN0cnVjdHVyZXMgYXMgYSBzaW11bGF0aW9uIGNvZGUKLW9yIHRvIGV2ZW4gYmUgd3JpdHRlbiBpbiB0aGUgc2FtZSBsYW5ndWFnZSBmb3IgdGhhdCBtYXR0ZXIuICBMaWtld2lzZSwKLXdlIHdhbnRlZCB0byBleHBsb2l0IHRoaXJkLXBhcnR5IG1vZHVsZXMgd2hlcmUgbm8gYXNzdW1wdGlvbnMgCi1jb3VsZCBiZSBtYWRlIGFib3V0IHRoZWlyIGludGVybmFsIHN0cnVjdHVyZS4KLQotPHA+Ci1UaGUgbWFqb3IgY29tcG9uZW50cyBvZiBvdXIgc3lzdGVtIHRha2UgdGhlIGZvcm0gb2YgQyBsaWJyYXJpZXMuICBXaGVuCi1QeXRob24gaXMgdXNlZCwgdGhlIGxpYnJhcmllcyBhcmUgY29tcGlsZWQgaW50byBzaGFyZWQgbGlicmFyaWVzIGFuZAotZHluYW1pY2FsbHkgbG9hZGVkIGludG8gUHl0aG9uIGFzIGV4dGVuc2lvbiBtb2R1bGVzLiAgVGhlCi1mdW5jdGlvbmFsaXR5IG9mIGVhY2ggbGlicmFyeSBpcyBleHBvc2VkIGFzIGEgY29sbGVjdGlvbiBvZiBQeXRob24KLSJjb21tYW5kcy4iICBCZWNhdXNlIG9mIHRoaXMsIHRoZSBDIGFuZCBQeXRob24gcHJvZ3JhbW1pbmcKLWVudmlyb25tZW50cyBhcmUgY2xvc2VseSByZWxhdGVkLiAgSW4gbWFueSBjYXNlcywgaXQgaXMgcG9zc2libGUgdG8KLWltcGxlbWVudCB0aGUgc2FtZSBjb2RlIGluIGJvdGggQyBvciBQeXRob24uIEZvciBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+PHByZT4KLS8qIEEgc2ltcGxlIGZ1bmN0aW9uIHdyaXR0ZW4gaW4gQyAqLwotI2luY2x1ZGUgIlNQYVNNLmgiCi12b2lkIHJ1bihpbnQgbnN0ZXBzLCBkb3VibGUgRHQsIGludCBmcmVxKSB7Ci0gICAgaW50IGk7Ci0gICAgY2hhciBmaWxlbmFtZVs2NF07Ci0gICAgZm9yIChpID0gMDsgaSA8IG5zdGVwczsgaSsrKSB7Ci0gICAgICAgICBpbnRlZ3JhdGVfYWR2X2Nvb3JkKER0KTsKLSAgICAgICAgIGJvdW5kYXJ5X3BlcmlvZGljKCk7Ci0gICAgICAgICByZWRpc3RyaWJ1dGUoKTsKLSAgICAgICAgIGZvcmNlX2VhbSgpOwotICAgICAgICAgaW50ZWdyYXRlX2Fkdl92ZWxvY2l0eShEdCk7Ci0gICAgICAgICBpZiAoKGkgJSBmcmVxKSA9PSAwKSB7Ci0gICAgICAgICAgICBzcHJpbnRmKGZpbGVuYW1lLCJEYXQlZCIsaSk7Ci0gICAgICAgICAgICBvdXRwdXRfcGFydGljbGVzKGZpbGVuYW1lKTsKLSAgICAgICAgIH0KLSAgICB9Ci19PC9wcmU+Ci08L3R0PgotPC9ibG9ja3F1b3RlPgotICAgICAgICAKLU5vdywgaW4gUHl0aG9uIDoKLQotPGJsb2NrcXVvdGU+PHR0PjxwcmU+Ci0jIEEgZnVuY3Rpb24gd3JpdHRlbiBpbiBQeXRob24KLWZyb20gU1BhU00gaW1wb3J0ICoKLWRlZiBydW4obnN0ZXBzLCBEdCwgZnJlcSk6Ci0gICAgZm9yIGkgaW4geHJhbmdlKDAsIG5zdGVwcyk6Ci0gICAgICAgICBpbnRlZ3JhdGVfYWR2X2Nvb3JkKER0KQotICAgICAgICAgYm91bmRhcnlfcGVyaW9kaWMoKQotICAgICAgICAgcmVkaXN0cmlidXRlKCkKLSAgICAgICAgIGZvcmNlX2VhbSgpCi0gICAgICAgICBpbnRlZ3JhdGVfYWR2X3ZlbG9jaXR5KER0KQotICAgICAgICAgaWYgKGkgJSBmcmVxKSA9PSAwKSA6Ci0gICAgICAgICAgICBvdXRwdXRfcGFydGljbGVzKCdEYXQnK3N0cihpKSkKLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotV2hpbGUgQyBsaWJyYXJpZXMgcHJvdmlkZSBtdWNoIG9mIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uYWxpdHksIHRoZSByZWFsIHBvd2VyCi1vZiB0aGUgc3lzdGVtIGNvbWVzIGluIHRoZSBmb3JtIG9mIG1vZHVsZXMgYW5kIHNjcmlwdHMgd3JpdHRlbiBlbnRpcmVseSBpbiBQeXRob24uCi1Vc2VycyB3cml0ZSBzY3JpcHRzIHRvIHNldCB1cCBhbmQgY29udHJvbCBzaW11bGF0aW9ucy4gIFNldmVyYWwgbWFqb3IKLWNvbXBvbmVudHMgc3VjaCBhcyB0aGUgdmlzdWFsaXphdGlvbiBhbmQgZGF0YS1hbmFseXNpcyBzeXN0ZW0gbWFrZSBoZWF2eQotdXNlIG9mIFB5dGhvbi4gIFdlIGFsc28gdXRpbGl6ZSBhIHZhcmlldHkgb2YgbW9kdWxlcyBpbiB0aGUgUHl0aG9uCi1saWJyYXJ5IGFuZCBoYXZlIGR5bmFtaWNhbGx5IGxvYWRhYmxlIHZlcnNpb25zIG9mIFRraW50ZXIgYW5kIHRoZQotUHl0aG9uIEltYWdpbmcgTGlicmFyeSBbMTFdLgotCi08aDI+IEVtYmVkZGluZyBQeXRob24gYW5kIEhpZGluZyBTeXN0ZW0gRGVwZW5kZW5jaWVzIDwvaDI+Ci0KLU9uZSBvZiB0aGUgYmlnZ2VzdCBpbXBsZW1lbnRhdGlvbiBwcm9ibGVtcyB3ZSBoYXZlIGVuY291bnRlcmVkIGlzIHRoZQotZmFjdCB0aGF0IHRoZSBTUGFTTSBjb2RlIGlzIGEgcGFyYWxsZWwgYXBwbGljYXRpb24gdGhhdCByZWxpZXMgaGVhdmlseQotdXBvbiB0aGUgcHJvcGVyIGltcGxlbWVudGF0aW9uIG9mIGxvdy1sZXZlbCBzeXN0ZW0gc2VydmljZXMgc3VjaCBhcwotSS9PIGFuZCBwcm9jZXNzIG1hbmFnZW1lbnQuIEN1cnJlbnRseSwgaXQgaXMgcG9zc2libGUgdG8gcnVuIHRoZSBjb2RlCi1pbiB0d28gZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zLS1vbmUgdGhhdCB1c2VzIG1lc3NhZ2UgcGFzc2luZyB2aWEgdGhlCi1NUEkgbGlicmFyeSBhbmQgYW5vdGhlciB1c2luZyBTb2xhcmlzIHRocmVhZHMuICBVc2luZyBQeXRob24gd2l0aAotYm90aCB2ZXJzaW9ucyBvZiBjb2RlIHJlcXVpcmVzIGEgZGVncmVlIG9mIGNhcmUtLWluIHBhcnRpY3VsYXIsIHdlCi1oYXZlIGZvdW5kIGl0IHRvIGJlIG5lY2Vzc2FyeSB0byBwcm92aWRlIFB5dGhvbiB3aXRoIGVuaGFuY2VkIEkvTwotc3VwcG9ydCB0byBydW4gcHJvcGVybHkgaW4gcGFyYWxsZWwuICBUaGlzIHdvcmsgaGFzIGJlZW4gZGVzY3JpYmVkCi1lbHNld2hlcmUgWzUsNl0uCi0KLTxwPgotSGFuZGxpbmcgdHdvIG9wZXJhdGlvbmFsIG1vZGVzIGludHJvZHVjZXMgYSBudW1iZXIgb2YgcHJvYmxlbXMgcmVsYXRlZAotdG8gY29kZSBtYWludGVuYW5jZSBhbmQgaW5zdGFsbGF0aW9uLiAgVHJhZGl0aW9uYWxseSwgd2Ugd291bGQKLXJlY29tcGlsZSB0aGUgZW50aXJlIHN5c3RlbSBhbmQgYWxsIG9mIGl0cyBtb2R1bGVzIGZvciBlYWNoCi1jb25maWd1cmF0aW9uIChwbGFjaW5nIHRoZSBmaWxlcyBpbiBhbiBhcmNoaXRlY3R1cmUgZGVwZW5kZW50Ci1zdWJkaXJlY3RvcnkpLiAgVXNlcnMgd291bGQgaGF2ZSB0byBkZWNpZGUgd2hpY2ggc3lzdGVtIHRoZXkgd2FudGVkIHRvCi11c2UgYW5kIGNvbXBpbGUgYWxsIG9mIHRoZWlyIG1vZHVsZXMgYnkgbGlua2luZyBhZ2FpbnN0IHRoZQotYXBwcm9wcmlhdGUgbGlicmFyaWVzIGFuZCBzZXR0aW5nIHRoZSByaWdodCBjb21waWxlLXRpbWUgb3B0aW9ucy4KLUNoYW5naW5nIGNvbmZpZ3VyYXRpb25zIHdvdWxkIHR5cGljYWxseSByZXF1aXJlIGEgY29tcGxldGUgcmVjb21waWxlLgotCi08cD4KLVdpdGggZHluYW1pYyBsb2FkaW5nIGFuZCBzaGFyZWQgbGlicmFyaWVzIGhvd2V2ZXIsIHdlIGhhdmUgYmVlbiBhYmxlCi10byBkZXZpc2UgYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gdGhpcyBwcm9ibGVtLiAgUmF0aGVyCi10aGFuIHJlY29tcGlsaW5nIGV2ZXJ5dGhpbmcgZm9yIGVhY2ggY29uZmlndXJhdGlvbiwgd2UgdXNlIGFuCi1pbXBsZW1lbnRhdGlvbiBpbmRlcGVuZGVudCBsYXllciBvZiBzeXN0ZW0gd3JhcHBlcnMuICBUaGVzZSB3cmFwcGVycwotcHJvdmlkZSBhIGdlbmVyaWMgaW1wbGVtZW50YXRpb24gb2YgbWVzc2FnZSBwYXNzaW5nLCBwYXJhbGxlbCBJL08sIGFuZAotdGhyZWFkIG1hbmFnZW1lbnQuICBBbGwgb2YgdGhlIGNvcmUgbW9kdWxlcyBhcmUgdGhlbiBjb21waWxlZAotdXNpbmcgdGhlc2UgZ2VuZXJpYyB3cmFwcGVycy4gICBUaGlzIG1ha2VzIHRoZSBtb2R1bGVzIGluZGVwZW5kZW50Ci1vZiB0aGUgdW5kZXJseWluZyBvcGVyYXRpb25hbCBtb2RlLS0tdG8gdXNlIE1QSSBvciB0aHJlYWRzLCAgd2Ugc2ltcGx5Ci1uZWVkIHRvIHN1cHBseSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIHN5c3RlbSB3cmFwcGVyIGxpYnJhcmllcy4KLVRoaXMgaXMgZWFzaWx5IGFjY29tcGxpc2hlZCBieSBidWlsZGluZyB0d28gZGlmZmVyZW50IHZlcnNpb25zIG9mCi1QeXRob24gdGhhdCBhcmUgbGlua2VkIGFnYWluc3QgdGhlIGFwcHJvcHJpYXRlIHN5c3RlbSBsaWJyYXJpZXMuIAotVG8gcnVuIGluIGEgcGFydGljdWxhciBtb2RlLCB3ZSBub3cganVzdCBydW4gdGhlIGFwcHJvcHJpYXRlCi12ZXJzaW9uIG9mIFB5dGhvbiAoaS5lLiAncHl0aG9uJyBvciAncHl0aG9ubXBpJykuICBUaGUgbmVhdCAKLXBhcnQgYWJvdXQgdGhpcyBhcHByb2FjaCBpcyB0aGF0IGFsbCBvZiB0aGUgbW9kdWxlcyB3b3JrIHdpdGggYm90aAotb3BlcmF0aW9uYWwgbW9kZXMgd2l0aG91dCBhbnkgcmVjb21waWxhdGlvbiBvciByZWNvbmZpZ3VyYXRpb24uICBJZiBhCi11c2VyIGlzIHVzaW5nIHRocmVhZHMsIGJ1dCB3YW50cyB0byBzd2l0Y2ggdG8gTVBJLCB0aGV5IHNpbXBseSBydW4KLWEgZGlmZmVyZW50IHZlcnNpb24gb2YgUHl0aG9uLS1ubyByZWNvbXBpbGF0aW9uIG9mIG1vZHVsZXMgaXMgbmVjZXNzYXJ5LgotCi08cD4KLUEgZnVsbCBkaXNjdXNzaW9uIG9mIHdyaXRpbmcgc3lzdGVtLXdyYXBwZXJzIGNhbiBiZSBmb3VuZCBlbHNld2hlcmUuCi1JbiBwYXJ0aWN1bGFyLCBhIGRpc2N1c3Npb24gb2Ygd3JpdGluZyBwYXJhbGxlbCBJL08gd3JhcHBlcnMgZm9yCi1QeXRob24gY2FuIGJlIGZvdW5kIGluIFs1XS4gIEFuIGVhcmxpZXIgZGlzY3Vzc2lvbiBvZiB0aGUgdGVjaG5pcXVlIHdlCi1oYXZlIHVzZWQgZm9yIHdyaXRpbmcgbWVzc2FnZSBwYXNzaW5nIGFuZCBJL08gd3JhcHBlcnMgY2FuIGFsc28gYmUKLWZvdW5kIGluIFs3XS4KLQotPGgyPiBNb2R1bGUgQnVpbGRpbmcgd2l0aCBTV0lHIDwvaDI+Ci0KLVRvIGJ1aWxkIG1vZHVsZXMsIHdlIGhhdmUgYmVlbiB1c2luZyBTV0lHIFs4XS4KLUVhY2ggbW9kdWxlIGlzIGRlc2NyaWJlZCBieSBhIFNXSUcgaW50ZXJmYWNlIGZpbGUgY29udGFpbmluZyB0aGUgQU5TSQotQyBkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zLCBzdHJ1Y3R1cmVzLCBhbmQgdmFyaWFibGVzIGluIHRoYXQgbW9kdWxlLgotRm9yIGV4YW1wbGUgOgotCi08YmxvY2txdW90ZT48cHJlPgotLy8gU1dJRyBpbnRlcmZhY2UgZmlsZQotJW1vZHVsZSBTUGFTTQotJXsKLSNpbmNsdWRlICJTUGFTTS5oIgotJX0KLXZvaWQgaW50ZWdyYXRlX2Fkdl9jb29yZChkb3VibGUgRHQpOwotdm9pZCBib3VuZGFyeV9wZXJpb2RpYygpOwotdm9pZCByZWRpc3RyaWJ1dGUoKTsKLXZvaWQgZm9yY2VfZWFtKCk7Ci12b2lkIGludGVncmF0ZV9hZHZfdmVsb2NpdHkoZG91YmxlIER0KTsKLWludCAgb3V0cHV0X3BhcnRpY2xlcyhjaGFyICpmaWxlbmFtZSk7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVNXSUcgcHJvdmlkZXMgYSBsb2dpY2FsIG1hcHBpbmcgb2YgdGhlIHVuZGVybHlpbmcgQyBpbXBsZW1lbnRhdGlvbiBpbnRvCi1QeXRob24uICAgRHVyaW5nIGNvbXBpbGF0aW9uLCBpbnRlcmZhY2UgZmlsZXMgYXJlIGF1dG9tYXRpY2FsbHkKLWNvbnZlcnRlZCBpbnRvIHdyYXBwZXIgY29kZSBhbmQgY29tcGlsZWQgaW50byBQeXRob24gbW9kdWxlcy4gIFRoaXMgCi1wcm9jZXNzIGlzIGVudGlyZWx5IHRyYW5zcGFyZW50LS1jaGFuZ2VzIG1hZGUgdG8gdGhlIGludGVyZmFjZQotYXJlIGF1dG9tYXRpY2FsbHkgcHJvcGFnYXRlZCB0byBQeXRob24gd2hlbmV2ZXIgYSBtb2R1bGUgaXMgcmVjb21waWxlZC4KLUdpdmVuIHRoZSBjb25zdGFudGx5IGV2b2x2aW5nIG5hdHVyZSBvZiByZXNlYXJjaCBhcHBsaWNhdGlvbnMsIHRoaXMgbWFrZXMKLWl0IGVhc3kgdG8gZXh0ZW5kIGFuZCBtYWludGFpbiB0aGUgc3lzdGVtLiAgCi0KLTxoMz4gU2VwYXJhdGlvbiBvZiBJbXBsZW1lbnRhdGlvbiBhbmQgSW50ZXJmYWNlIDwvaDM+Ci0KLUFuIGltcG9ydGFudCBhc3BlY3Qgb2YgU1dJRyBpcyB0aGF0IGl0IGlzIHJlcXVpcmVzIG5vIG1vZGlmaWNhdGlvbnMgdG8KLWV4aXN0aW5nIEMgY29kZSB3aGljaCBhbGxvd3MgdXMgdG8gbWFpbnRhaW4gYSBzdHJpY3QKLXNlcGFyYXRpb24gYmV0d2VlbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgQyBtb2R1bGVzIGFuZCB0aGVpcgotUHl0aG9uIGludGVyZmFjZS4gIFdlIGJlbGlldmUgdGhhdCB0aGlzIHJlc3VsdHMgaW4gY29kZSB0aGF0Ci1pcyBtb3JlIG9yZ2FuaXplZCBhbmQgZ2VuZXJhbGx5IHJldXNhYmxlLiAgVGhlcmUgaXMgbm8gcGFydGljdWxhcgotcmVhc29uIHdoeSBhIEMgbW9kdWxlIHNob3VsZCBkZXBlbmQgb24gUHl0aG9uIChvbmUgbWlnaHQKLXdhbnQgdG8gdXNlIGl0IGFzIGEgc3RhbmQtYWxvbmUgcGFja2FnZSBvciBpbiBhIGRpZmZlcmVudCBhcHBsaWNhdGlvbikuCi1EZXNwaXRlIHVzaW5nIFB5dGhvbiBleHRlbnNpdmVseSwgdGhlIFNQYVNNIGNvZGUgY2FuIHN0aWxsIGJlCi1jb21waWxlZCB3aXRoIG5vIFB5dGhvbiBpbnRlcmZhY2UgKG9mIGNvdXJzZSwgeW91IGxvc2UgYWxsIG9mCi10aGUgYmVuZWZpdHMgZ2FpbmVkIGJ5IGhhdmluZyBQeXRob24pLiAgCi1XZSBmZWVsIHRoYXQgbW9zdCBwaHlzaWNzIGNvZGVzIHRlbmQKLXRvIGhhdmUgYSByYXRoZXIgbG9uZyBsaWZlLXNwYW4uICBNYWludGFpbmluZyBhIHNlcGFyYXRpb24gb2YKLWltcGxlbWVudGF0aW9uIGFuZCBpbnRlcmZhY2UgaGVscHMgaW5zdXJlIHRoYXQgb3VyIHBoeXNpY3MgY29kZSB3aWxsCi1iZSB1c2FibGUgaW4gdGhlIGZ1dHVyZS0tZXZlbiBpZiB0aGVyZSBhcmUgZHJhc3RpYyBjaGFuZ2VzIGluIHRoZQotaW50ZXJmYWNlIGFsb25nIHRoZSB3YXkuCi0KLTxoMz4gUHJvdmlkaW5nIEFjY2VzcyB0byBEYXRhIFN0cnVjdHVyZXMgPC9oMz4KLQotRm9yIHRoZSBwdXJwb3NlcyBvZiBkZWJ1Z2dpbmcgYW5kIGRhdGEgZXhwbG9yYXRpb24sIHdlIGhhdmUgCi11c2VkIFNXSUcgdG8gcHJvdmlkZSB3cmFwcGVycyBhcm91bmQgQyBkYXRhIHN0cnVjdHVyZXMuICAgRm9yIGV4YW1wbGUsCi1hIGNvbGxlY3Rpb24gb2YgQyBzdHJ1Y3R1cmVzIHN1Y2ggYXMgdGhlIGZvbGxvd2luZwotCi08YmxvY2txdW90ZT48cHJlPgotdHlwZWRlZiBzdHJ1Y3QgewotICAgICBkb3VibGUgeCx5LHo7Ci19IFZlY3RvcjsKLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgICBpbnQgICAgdHlwZTsKLSAgICAgVmVjdG9yIHI7Ci0gICAgIFZlY3RvciB2OwotICAgICBWZWN0b3IgZjsKLX0gUGFydGljbGU7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLWNhbiBiZSB0dXJuZWQgaW50byBQeXRob24gd3JhcHBlciBjbGFzc2VzLiAgSW4gYWRkaXRpb24sIFNXSUcgY2FuIGV4dGVuZCBzdHJ1Y3R1cmVzIHdpdGggbWVtYmVyIGZ1bmN0aW9ucyBhcyBmb2xsb3dzIDoKLQotPGJsb2NrcXVvdGU+IDxwcmU+Ci0vLyBTV0lHIGludGVyZmFjZSBmb3IgdmVjdG9yIGFuZCBwYXJ0aWNsZSBzdHJ1Y3R1cmVzCi0laW5jbHVkZSBkYXRhdHlwZXMuaAotCi0vLyBFeHRlbmQgZGF0YSBzdHJ1Y3R1cmVzIHdpdGggYSBmZXcgdXNlZnVsIG1ldGhvZHMKLSVhZGRtZXRob2RzIFZlY3RvciB7Ci0gICAgIGNoYXIgKl9fc3RyX18oKSB7Ci0gICAgICAgICBzdGF0aWMgY2hhciBhWzEwMjRdOwotICAgICAgICAgc3ByaW50ZihhLCJbICUwLjEwZiwgJTAuMTBmLCAlMC4xMGYgXSIsIHNlbGYtPngsIHNlbGYtPnksIHNlbGYtPnopOwotICAgICAgICAgcmV0dXJuIGE7Ci0gICAgIH0KLX0KLSVhZGRtZXRob2RzIFBhcnRpY2xlIHsKLSAgICAgUGFydGljbGUgKl9fZ2V0aXRlbV9fKGludCBpbmRleCkgewotICAgICAgICAgIHJldHVybiBzZWxmK2luZGV4OwotICAgICB9Ci0gICAgIGNoYXIgKl9fc3RyX18oKSB7Ci0gICAgICAgICAgLy8gcHJpbnQgb3V0IGEgcGFydGljbGUKLSAgICAgICAgICAuLi4KLSAgICAgfQotfQotPC9wcmU+Ci08L2Jsb2NrcXVvdGU+Ci0KLVdoZW4gdGhlIFB5dGhvbiBpbnRlcmZhY2UgaXMgYnVpbHQsIEMgc3RydWN0dXJlcyBub3cgYXBwZWFyIGxpa2UKLVB5dGhvbiBvYmplY3RzLiAgQnkgcHJvdmlkaW5nIFB5dGhvbi1zcGVjaWZpYyBtZXRob2RzIChzdWNoIGFzCi08dHQ+X19nZXRpdGVtX188L3R0Pikgd2UgY2FuIGV2ZW4gcHJvdmlkZSBhcnJheSBhY2Nlc3MuCi1Gb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBQeXRob24gY29kZSB3b3VsZCBwcmludCBvdXQKLWFsbCBvZiB0aGUgY29vcmRpbmF0ZXMgb2Ygc3RvcmVkIHBhcnRpY2xlcyA6Ci0KLTxibG9ja3F1b3RlPgotPHByZT4KLSMgUHJpbnQgb3V0IGFsbCBjb29yZGluYXRlcyB0byBhIGZpbGUKLWYgPSBvcGVuKCJwYXJ0LmRhdGEiLCJ3IikKLXAgPSBTUGFTTV9maXJzdF9wYXJ0aWNsZSgpICAgICAgICAgICMgR2V0IGZpcnN0IHBhcnRpY2xlIHBvaW50ZXIKLWZvciBpIGluIHhyYW5nZSgwLFNQYVNNX2NvdW50X3BhcnRpY2xlcygpKToKLSAgICBmLndyaXRlKCIlZiwgJWYsICVmXG4iICUgKHBbaV0uci54LCBwW2ldLnIueSwgcFtpXS5yLnopKQotZi5jbG9zZSgpCi08L3ByZT4KLTwvYmxvY2txdW90ZT4KLQotV2hpbGUgb25seSBhIHNpbXBsZSBleGFtcGxlLCBoYXZpbmcgZGlyZWN0IGFjY2VzcyB0byB1bmRlcmx5aW5nIGRhdGEgaGFzCi1wcm92ZW4gdG8gYmUgcXVpdGUgdmFsdWFibGUgc2luY2Ugd2UgdmlldyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gCi1vZiBkYXRhLCBjaGVjayB2YWx1ZXMsIGFuZCBwZXJmb3JtIGRpYWdub3N0aWNzLiAKLQotPGgzPiBJbXByb3ZpbmcgdGhlIFJlbGlhYmlsaXR5IG9mIE1vZHVsZXMgPC9oMz4KLQotV2hlbiBpbnN0cnVtZW50aW5nIG91ciBvcmlnaW5hbCBwaHlzaWNzIGFwcGxpY2F0aW9uIHRvIHVzZSBzY3JpcHRpbmcsCi13ZSBmb3VuZCB0aGF0IG1hbnkgcGFydHMgb2YgdGhlIGNvZGUgd2VyZSBub3Qgd3JpdHRlbiBpbiBhbiBlbnRpcmVseQotInJlbGlhYmxlIiBtYW5uZXIuICBJbiBwYXJ0aWN1bGFyLCB0aGUgY29kZSBoYWQgbmV2ZXIgYmVlbiBvcGVyYXRlZCBpbgotYW4gZXZlbnQtZHJpdmVuIG1hbm5lci4gIEZ1bmN0aW9ucyBvZnRlbiBtYWRlIGFzc3VtcHRpb25zIGFib3V0Ci1pbml0aWFsaXphdGlvbnMgYW5kIHJhcmVseSBjaGVja2VkIHRoZSB2YWxpZGl0eSBvZiBpbnB1dCBwYXJhbWV0ZXJzLgotVG8gYWRkcmVzcyB0aGVzZSBpc3N1ZXMsIG1vc3Qgc2VjdGlvbnMgb2YgY29kZSB3ZXJlIGdyYWR1YWxseSBjaGFuZ2VkCi10byBwcm92aWRlIHNvbWUga2luZCBvZiB2YWxpZGF0aW9uIG9mIGlucHV0IHZhbHVlcyBhbmQgZXJyb3IgcmVjb3ZlcnkuCi1UaGUgU1dJRyBjb21waWxlciBoYXMgYWxzbyBiZWVuIGV4dGVuZGVkIHRvIHByb3ZpZGUgc29tZSBvZiB0aGVzZQotY2FwYWJpbGl0aWVzIGFzIHdlbGwuCi08cD4KLU9uZSBvZiBQeXRob24ncyBtb3N0IHBvd2VyZnVsIGZlYXR1cmVzIGlzIGl0cyBleGNlcHRpb24gaGFuZGxpbmcgbWVjaGFuaXNtLgotRXhjZXB0aW9ucyBhcmUgZWFzaWx5IHJhaXNlZCBhbmQgaGFuZGxlZCBpbiBQeXRob24gc2NyaXB0cyBhcyBmb2xsb3dzIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLSMgQSBQeXRob24gZnVuY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uCi1kZWYgYWxsb2NhdGUobmJ5dGVzKToKLQlwdHIgPSBTUGFTTV9tYWxsb2MobmJ5dGVzKQotICAgICAgICBpZiBwdHIgPT0gIk5VTEwiOiByYWlzZSBNZW1vcnlFcnJvciwiT3V0IG9mIG1lbW9yeSEiCi0KLSMgQSBQeXRob24gZnVuY3Rpb24gdGhhdCBjYXRjaGVzIGFuIGV4Y2VwdGlvbgotZGVmIGZvbygpOgotCXRyeToKLQkJYWxsb2NhdGUoTkJZVEVTKQotCWV4Y2VwdDoKLQkJcmV0dXJuICAgICMgQmFpbGluZyBvdXQKLQotPC9ibG9ja3F1b3RlPjwvcHJlPgotCi1XZSBoYXZlIGJvcnJvd2VkIHRoaXMgaWRlYSBhbmQgaW1wbGVtZW50ZWQgYSBzaW1pbGFyIGV4Y2VwdGlvbiBoYW5kbGluZwotbWVjaGFuaXNtIGZvciBvdXIgQyBjb2RlLiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgdXNpbmcgZnVuY3Rpb25zIGluIHRoZQotPHR0PiZsdDtzZXRqbXAuaCZndDs8L3R0PiBsaWJyYXJ5IGFuZCBkZWZpbmluZyBhIGZldyBDIG1hY3JvcyBmb3IgIjx0dD5Ucnk8L3R0PiIsICI8dHQ+RXhjZXB0PC90dD4iLAotIjx0dD5UaHJvdzwvdHQ+IiwgZXRjLi4uIFVzaW5nIHRoZXNlIG1hY3JvcywgbWFueSBvZiBvdXIgbGlicmFyeSBmdW5jdGlvbnMgbm93IGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8qIEEgQyBmdW5jdGlvbiB0aGF0IHRocm93cyBhbiBleGNlcHRpb24gKi8KLXZvaWQgKlNQYVNNX21hbGxvYyhzaXplX3QgbmJ5dGVzKSB7Ci0gICAgdm9pZCAqcHRyID0gKHZvaWQgKikgbWFsbG9jKG5ieXRlcyk7Ci0gICAgaWYgKCFwdHIpIFRocm93KCJTUGFTTV9tYWxsb2MgOiBPdXQgb2YgbWVtb3J5ISIpOwotICAgIHJldHVybiBwdHI7Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUxpa2UgUHl0aG9uLCB3ZSBhbGxvdyBDIGZ1bmN0aW9ucyB0bwotY2F0Y2ggZXhjZXB0aW9ucyBhbmQgcHJvdmlkZSB0aGVpciBvd24gcmVjb3ZlcnkgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPiA8cHJlPgotLyogQSBDIGZ1bmN0aW9uIGNhdGNoaW5nIGFuIGV4Y2VwdGlvbiAqLwotaW50IGZvbygpIHsKLSAgICB2b2lkICpwOwotICAgIFRyeSB7Ci0gICAgICAgIHAgPSBTUGFTTV9tYWxsb2MoTkJZVEVTKTsKLSAgICB9IEV4Y2VwdCB7Ci0gICAgICAgIHByaW50ZigiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeS4gUmV0dXJuaW5nIVxuIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci19Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUluIHRoZSBjYXNlIG9mIGEgc3RhbmQtYWxvbmUgQyBhcHBsaWNhdGlvbiwgZXhjZXB0aW9ucyBjYW4KLWJlIGNhdWdodCBhbmQgaGFuZGxlZCBpbnRlcm5hbGx5LiAgU2hvdWxkIGFuIHVuY2F1Z2h0IGV4Y2VwdGlvbgotb2NjdXIsIHRoZSBjb2RlIHByaW50cyBhbiBlcnJvciBtZXNzYWdlIGFuZCB0ZXJtaW5hdGVzLiBIb3dldmVyLAotd2hlbiBQeXRob24gaXMgdXNlZCwgd2UgY2FuIAotZ2VuZXJhdGUgUHl0aG9uIGV4Y2VwdGlvbnMgdXNpbmcgYSBTV0lHIHVzZXItZGVmaW5lZAotZXhjZXB0aW9uIGhhbmRsZXIgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDoKLQotPGJsb2NrcXVvdGU+IDxwcmU+Ci0lbW9kdWxlIFNQYVNNCi0vLyBBIFNXSUcgdXNlciBkZWZpbmVkIGV4Y2VwdGlvbiBoYW5kbGVyCi0lZXhjZXB0KHB5dGhvbikgewotICAgICBUcnkgewotICAgICAgICAgICRmdW5jdGlvbgotICAgICB9IEV4Y2VwdCB7Ci0gICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvcixTUGFTTV9lcnJvcl9tc2coKSk7Ci0gICAgIH0KLX0KLS8vIEMgZGVjbGFyYXRpb25zIAotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVRoZSBoYW5kbGVyIGNvZGUgZ2V0cyBwbGFjZWQgaW50byBhbGwgb2YgdGhlIFB5dGhvbgotIndyYXBwZXIiIGZ1bmN0aW9ucyBhbmQgaXMgcmVzcG9uc2libGUgZm9yIHRyYW5zbGF0aW5nIEMgZXhjZXB0aW9ucwotaW50byBQeXRob24gZXhjZXB0aW9ucy4gIERvaW5nIHRoaXMgbWFrZXMgb3VyIHBoeXNpY3MgY29kZSBvcGVyYXRlCi1pbiBhIG1vcmUgc2VhbWxlc3MgbWFubmVyIGFuZCBnaXZlcyBpdCBhIHByZWNpc2VseSBkZWZpbmVkIGVycm9yIHJlY292ZXJ5Ci1wcm9jZWR1cmUgKGkuZS4gIGludGVybmFsIGVycm9ycyBhbHdheXMgcmVzdWx0IFB5dGhvbiBleGNlcHRpb25zKS4gRm9yIGV4YW1wbGUgOgotCi08YmxvY2txdW90ZT48cHJlPgotPj4+IFNQYVNNX21hbGxvYygxMDAwMDAwMDAwKQotUnVudGltZUVycm9yOiBTUGFTTV9tYWxsb2MoMTAwMDAwMDAwMCkuIE91dCBvZiBtZW1vcnkhCi0oTGluZSA1MiBpbiBtZW1vcnkuYykKLT4+PgotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1XZSBoYXZlIGZvdW5kIGVycm9yIHJlY292ZXJ5IHRvIGJlIGNyaXRpY2FsLiAgV2l0aG91dCBpdCwgc2ltdWxhdGlvbnMgbWF5IAotY29udGludWUgdG8gcnVuLCBvbmx5IHRvIGdlbmVyYXRlIHdyb25nIGFuc3dlcnMgb3IgYSBteXN0ZXJpb3VzCi1zeXN0ZW0gY3Jhc2guICAKLQotPGgyPiBNb3JlIFRoYW4gU2NyaXB0aW5nIDwvaDI+Ci0KLVdoZW4gd2Ugb3JpZ2luYWxseSBzdGFydGVkIHVzaW5nIHNjcmlwdGluZyBsYW5ndWFnZXMsIHdlIHRob3VnaHQgCi10aGV5IHdvdWxkIG1haW5seSBiZSBhIGNvbnZlbmllbnQgbWVjaGFuaXNtIGZvciBnbHVpbmcgQyBsaWJyYXJpZXMKLXRvZ2V0aGVyIGFuZCBjb250cm9sbGluZyB0aGVtIGluIGFuIGludGVyYWN0aXZlIG1hbm5lci4gIEhvd2V2ZXIsIAotd2UgaGF2ZSBjb21lIHRvIHJlYWxpemUgdGhhdCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGFyZQotbXVjaCBtb3JlIHBvd2VyZnVsIHRoYW4gdGhpcy4gIE5vdywgd2UgZmluZCBvdXJzZWx2ZXMKLWltcGxlbWVudGluZyBzaWduaWZpY2FudCBmdW5jdGlvbmFsaXR5IGVudGlyZWx5IGluIFB5dGhvbi0tYnlwYXNzaW5nCi1DIGFsdG9nZXRoZXIuICAgVGhlIG1vc3Qgc3VycHJpc2luZyAod2VsbCwgbm90IHJlYWxseSB0aGF0IHN1cnByaXNpbmcpCi1mYWN0IGlzIHRoYXQgUHl0aG9uIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHZlcnkgcG93ZXJmdWwgdG9vbHMgd2l0aAotb25seSBhIHNtYWxsIGFtb3VudCBvZiBleHRyYSBwcm9ncmFtbWluZy4gICBJbiB0aGlzIHNlY3Rpb24sIHdlIHByZXNlbnQKLWEgYnJpZWYgb3ZlcnZpZXcgb2Ygc29tZSBvZiB0aGUgdG9vbHMgd2UgaGF2ZSBkZXZlbG9wZWQtLW1vc3Qgb2YKLXdoaWNoIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCBsYXJnZWx5IGluIFB5dGhvbi4KLQotPGgzPiBPYmplY3QtT3JpZW50ZWQgVmlzdWFsaXphdGlvbiBhbmQgRGF0YSBBbmFseXNpcyA8L2gzPgotCi1PdXIgb3JpZ2luYWwgZ29hbCB3YXMgdG8gYWRkIGEgcG93ZXJmdWwgZGF0YSBhbmFseXNpcyBhbmQKLXZpc3VhbGl6YXRpb24gY29tcG9uZW50IHRvIG91ciBhcHBsaWNhdGlvbi4gIFRvIHRoaXMgZW5kLCB3ZSBkZXZlbG9wZWQKLWEgbGlnaHR3ZWlnaHQgaGlnaC1wZXJmb3JtYW5jZSBncmFwaGljcyBsaWJyYXJ5IGltcGxlbWVudGVkIGluIEMuCi1UaGlzIGxpYnJhcnkgc3VwcG9ydHMgYm90aCAyRCBhbmQgM0QgcGxvdHRpbmcgYW5kIHByb2R1Y2VzIG91dHB1dCBpbgotdGhlIGZvcm0gb2YgR0lGIGltYWdlcy4gIFRvIG1ha2UgcGxvdHMsIGEgdXNlciB3cml0ZXMgc2ltcGxlIEMKLWZ1bmN0aW9ucyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOgotCi08YmxvY2txdW90ZT48cHJlPgotdm9pZCBwbG90X3NwaGVyZXMoUGxvdDNEICpwMywgRGF0YUZ1bmN0aW9uIGZ1bmMsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgsCi0gICAgICAgICAgICAgICAgICBkb3VibGUgcmFkaXVzKSB7Ci0gICAgUGFydGljbGUgKnAgPSBQYXJ0aWNsZXM7Ci0gICAgaW50ICAgICAgIGksIG5wYXJ0LCBjb2xvcjsKLSAgICBucGFydCA9IFNQYVNNX2NvdW50X3BhcnRpY2xlcygpOwotICAgIGZvciAoaSA9IDA7IGkgPCBucGFydDsgaSsrLCBwKyspIHsKLSAgICAgICAgLyogQ29tcHV0ZSBjb2xvciB2YWx1ZSAqLwotICAgICAgICB2YWx1ZSA9ICgqZnVuYykocCk7Ci0gICAgICAgIGNvbG9yID0gKHZhbHVlLW1pbikvKG1heC1taW4pKjI1NTsKLSAgICAgICAgLyogUGxvdCBpdCAqLwotICAgICAgICBQbG90M0Rfc3BoZXJlKHAzLHAtPnIueCxwLT5yLnkscC0+ci56LHJhZGl1cyxjb2xvcik7Ci0gICAgfQotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2hlbiBleGVjdXRlZCwgdGhpcyBmdW5jdGlvbiBwcm9kdWNlcyBhIHJhdyBpbWFnZSBzdWNoIGFzIHRoZSBmb2xsb3dpbmcKLXNob3dpbmcgc3RhY2tpbmctZmF1bHRzIGdlbmVyYXRlZCBieSBhIHBhc3Npbmcgc2hvY2sgd2F2ZSBpbiBhbiBmY2MgY3J5c3RhbAotb2YgMTAgbWlsbGlvbiBhdG9tcyA6Ci08cD4KLTxjZW50ZXI+Ci08aW1nIHNyYz0iYmlnc2hvY2tyYXcuZ2lmIj4KLTwvY2VudGVyPgotPHA+Ci1XaGlsZSBzaW1wbGUsIHdlIG9mdGVuIHdhbnQgb3VyIGltYWdlcyB0byBjb250YWluIG1vcmUgaW5mb3JtYXRpb24KLWluY2x1ZGluZyB0aXRsZXMsIGF4aXMgbGFiZWxzLCBjb2xvcmJhcnMsIHRpbWUtc3RhbXBzLCBhbmQgYm91bmRpbmcKLWJveGVzLiAgIFRvIGRvIHRoaXMsIHdlIGhhdmUgYnVpbHQgYW4gb2JqZWN0LW9yaWVudGVkIHZpc3VhbGl6YXRpb24KLWZyYW1ld29yayBpbiBQeXRob24uICAgUHl0aG9uIGNsYXNzZXMgcHJvdmlkZSBtZXRob2RzIGZvciBncmFwaCBhbm5vdGF0aW9uCi1hbmQgY29tbW9uIGdyYXBoIG9wZXJhdGlvbnMuICAgSWYgYSB1c2VyIHdhbnRzIHRvIG1ha2UgYSBuZXcga2luZCBvZiBwbG90LAotdGhleSBzaW1wbHkgaW5oZXJpdCBmcm9tIGFuIGFwcHJvcHJpYXRlIGJhc2UgY2xhc3MgYW5kIHByb3ZpZGUgYSBmdW5jdGlvbgotdG8gcGxvdCB0aGUgZGVzaXJlZCBkYXRhLiBGb3IgZXhhbXBsZSwgYSAiU3BoZXJlIiBwbG90IHVzaW5nIHRoZSBhYm92ZSBDCi1mdW5jdGlvbiB3b3VsZCBsb29rIGxpa2UgdGhpcyA6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci1jbGFzcyBTcGhlcmVzKEltYWdlM0QpOgotICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsIG1pbiwgbWF4LCByYWRpdXM9MC41KToKLSAgICAgICAgICAgICBJbWFnZTNELl9faW5pdF9fKHNlbGYsIC4uLiAKLSAgICAgICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCi0gICAgICAgICAgICAgc2VsZi5taW4gID0gbWluCi0gICAgICAgICAgICAgc2VsZi5tYXggID0gbWF4Ci0gICAgICAgICAgICAgc2VsZi5yYWRpdXMgPSByYWRpdXMKLSAgICAgIGRlZiBkcmF3KHNlbGYpOgotICAgICAgICAgICAgIHNlbGYubmV3cGxvdCgpCi0gICAgICAgICAgICAgcGxvdF9zcGhlcmVzKHNlbGYucDMsc2VsZi5mdW5jLHNlbGYubWluLHNlbGYubWF4LHNlbGYucmFkaXVzKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UbyB1c2UgdGhlIG5ldyBpbWFnZSwgb25lIHNpbXBseSBjcmVhdGVzIGFuIG9iamVjdCBvZiB0aGF0IHR5cGUgYW5kCi1tYW5pcHVsYXRlcyBpdC4gIEZvciBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLT4+PiBzID0gU3BoZXJlcyhQRSwtOCwtMy41KSAgICMgQ3JlYXRlIGEgbmV3IGltYWdlCi0+Pj4gcy5yb3RkKDQ1KSAgICAgICAgICAgICAgICAjIFJvdGF0ZSBpdCBkb3duCi0+Pj4gcy56b29tKDIwMCkgICAgICAgICAgICAgICAjIFpvb20gaW4KLT4+PiBzLnNob3coKSAgICAgICAgICAgICAgICAgICMgZ2VuZXJhdGUgSW1hZ2UgYW5kIGRpc3BsYXkgaXQKLT4+PiAuLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotPGNlbnRlcj4KLTxpbWcgc3JjPSJiaWdzaG9jay5naWYiPgotPC9jZW50ZXI+Ci0KLTxwPgotVGh1cywgd2l0aCBhIHNpbXBsZSBDIGZ1bmN0aW9uIGFuZCBhIHNpbXBsZSBQeXRob24gY2xhc3MsIHdlIGdldCBhIGxvdAotb2YgZnVuY3Rpb25hbGl0eSBmb3IgZnJlZSwgaW5jbHVkaW5nIG1ldGhvZHMgZm9yIGltYWdlIG1hbmlwdWxhdGlvbiwKLWdyYXBoIGFubm90YXRpb24sIGFuZCBkaXNwbGF5LiAgSW4gdGhlIGN1cnJlbnQgc3lzdGVtLCB0aGVyZSBhcmUgYWJvdXQKLWEgZG96ZW4gZGlmZmVyZW50IHR5cGVzIG9mIGltYWdlcyBmb3IgMkQgYW5kIDNEIHBsb3R0aW5nLiAgSXQgaXMgYWxzbwotcG9zc2libGUgdG8gcGVyZm9ybSBmaWx0ZXJpbmcsIGFwcGx5IGNsaXBwaW5nIHBsYW5lcywgYW5kIG90aGVyCi1hZHZhbmNlZCBvcGVyYXRpb25zLiAgICBNb3N0IG9mIHRoaXMgaXMgc3VwcG9ydGVkIGJ5IGFib3V0IDIwMDAgbGluZXMgb2YKLVB5dGhvbiBjb2RlIGFuZCBhIHJlbGF0aXZlbHkgc21hbGwgQyBsaWJyYXJ5IGNvbnRhaW5pbmcgcGVyZm9ybWFuY2UKLWNyaXRpY2FsIG9wZXJhdGlvbnMuCi0KLTxoMz4gV2ViLUJhc2VkIFNpbXVsYXRpb24gTW9uaXRvcmluZyA8L2gzPgotCi1PbmUgZmVhdHVyZSBvZiBtYW55IHBoeXNpY3MgY29kZXMgaXMgdGhhdCB0aGV5IHRlbmQgdG8gcnVuIGZvciBhIGxvbmcKLXRpbWUuICBJbiBvdXIgY2FzZSwgYSBzaW11bGF0aW9uIG1heSBydW4gZm9yIHRlbnMgdG8gaHVuZHJlZHMgb2YKLWhvdXJzLiAgRHVyaW5nIHRoZSBjb3Vyc2Ugb2YgYSBzaW11bGF0aW9uLCBpdCBpcyBkZXNpcmFibGUgdG8gY2hlY2sgb24KLWl0cyBzdGF0dXMgYW5kIHNlZSBob3cgaXQgaXMgcHJvZ3Jlc3NpbmcuICBHaXZlbiB0aGUgc3Ryb25nIEludGVybmV0Ci1zdXBwb3J0IGFscmVhZHkgYnVuZGxlZCB3aXRoIFB5dGhvbiwgd2UgZGVjaWRlZCB0byB3cml0ZSBhIHNpbXBsZQotcGh5c2ljcyB3ZWItc2VydmVyIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLiAgVW5saWtlIGEKLW1vcmUgdHJhZGl0aW9uYWwgc2VydmVyLCBvdXIgc2VydmVyIGlzIHVzZWQgYnkgInJlZ2lzdGVyaW5nIiB2YXJpb3VzCi1vYmplY3RzIHRoYXQgb25lIHdhbnRzIHRvIGxvb2sgYXQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgYSBzaW11bGF0aW9uLgotVGhlIHNpbXVsYXRpb24gY29kZSB0aGVuIHBlcmlvZGljYWxseSBwb2xscyBhIG5ldHdvcmsgc29ja2V0IHRvIHNlZSBpZgotYW55b25lIGhhcyByZXF1ZXN0ZWQgYW55dGhpbmcuICBJZiBzbywgdGhlIHNpbXVsYXRpb24gd2lsbCBzdG9wIGZvciBhCi1tb21lbnQsIGdlbmVyYXRlIHRoZSByZXF1ZXN0ZWQgaW5mb3JtYXRpb24sIHNlbmQgaXQgdG8gdGhlIHVzZXIsIGFuZAotdGhlbiBjb250aW51ZSBvbiB3aXRoIHRoZSBjYWxjdWxhdGlvbi4gIEEgc2ltcGxpZmllZCBleGFtcGxlIG9mIHVzaW5nCi10aGUgc2VydmVyIGlzIGFzIGZvbGxvd3MgOgotCi08YmxvY2txdW90ZT4gPHByZT4KLSMgU2ltcGxpZmllZCBzY3JpcHQgdXNpbmcgYSB3ZWItc2VydmVyCi1mcm9tIHZpcyBpbXBvcnQgKgotZnJvbSB3ZWIgaW1wb3J0ICoKLQotd2ViID0gU1BhU01XZWIoKQotd2ViLmFkZChXZWJNYWluKCIiKSkKLXdlYi5hZGQoV2ViRmlsZVRleHQoIk1zZyIrYHJ1bl9ub2ApKQotCi0jIENyZWF0ZSBhbiBpbWFnZSBvYmplY3QKLQotc2V0X2dyYXBoaWNzX21vZGUoSFRUUCkKLWtlID0gU3BoZXJlcyhLRSwwLDIwKQota2UudGl0bGUgPSAiS2luZXRpYyBFbmVyZ3kiCi13ZWIuYWRkKFdlYkltYWdlKCJrZS5naWYiLGtlKSkKLQotZGVmIHJ1bihuc3RlcHMpOgotCWZvciBpIGluIHhyYW5nZSgwLG5zdGVwcyk6Ci0JCWludGVncmF0ZSgxKSAgICAgICAgICAgIyBJbnRlZ3JhdGUgMSB0aW1lc3RlcAotICAgICAgICAgICAgICAgIHdlYi5wb2xsKCkgICAgICAgICAgICAgIyBBbnlvbmUgbG9va2luZyBmb3IgbWU/Ci0KLSMgUnVuIGl0Ci1ydW4oMTAwMDApCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLVdoaWxlIHNpbXBsZSwgdGhpcyBleGFtcGxlIGdpdmVzIHRoZSBiYXNpYyBpZGVhLiBXZSBjcmVhdGUgYQotc2VydmVyIG9iamVjdCBhbmQgcmVnaXN0ZXIgYSBmZXcgImxpbmtzLiIgIFdoZW4gYSB1c2VyIGNvbm5lY3RzIHdpdGgKLXRoZSBzZXJ2ZXIsIHRoZXkgd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCBzb21lIHN0YXR1cyBpbmZvcm1hdGlvbiBhbmQgYQotbGlzdCBvZiBhdmFpbGFibGUgbGlua3MuICBXaGVuIHRoZSBsaW5rcyBhcmUgYWNjZXNzZWQsIHRoZSBzZXJ2ZXIKLWZlZWRzIHJlYWwtdGltZSBkYXRhIGJhY2sgdG8gdGhlIHVzZXIuICBJbiB0aGUgY2FzZSBvZgotaW1hZ2VzLCB0aGV5IGFyZSBnZW5lcmF0ZWQgaW1tZWRpYXRlbHkgYW5kIHNlbnQgYmFjayBpbiBHSUYgZm9ybWF0LiBEdXJpbmcKLXRoaXMgcHJvY2Vzcywgbm8gdGVtcG9yYXJ5IGZpbGVzIGFyZSBjcmVhdGVkLCBub3IgaXMgdGhlIHNlcnZlcgotdHJhbnNtaXR0aW5nIHByZXZpb3VzbHkgc3RvcmVkIGluZm9ybWF0aW9uIChpLmUuIGV2ZXJ5dGhpbmcgaXMgCi1jcmVhdGVkIG9uLXRoZS1mbHkpLiAKLQotPHA+Ci1XaGlsZSB3ZSBhcmUgc3RpbGwgcmVmaW5pbmcgdGhlIGltcGxlbWVudGF0aW9uLCB0aGlzIGFwcHJvYWNoIGhhcyB0dXJuZWQKLW91dCB0byBiZSB1c2VmdWwtLW5vdCBvbmx5IGNhbiB3ZSBwZXJpb2RpY2FsbHkgY2hlY2sgdXAKLW9uIGEgcnVubmluZyBzaW11bGF0aW9uLCB0aGlzIGNhbiBjYW4gYmUgZG9uZSBmcm9tIGFueSBtYWNoaW5lIHRoYXQKLWhhcyBhIFdlYi1icm93c2VyLCBpbmNsdWRpbmcgUENzIGFuZCBNYWNzIHJ1bm5pbmcgb3ZlciBhIG1vZGVtIGxpbmUKLShhbGxvd2luZyBhIGJvcmVkIHBoeXNpY2lzdCB0byBjaGVjayBvbiBsb25nLXJ1bm5pbmcgam9icyBmcm9tIGhvbWUKLW9yIHdoaWxlIG9uIHRyYXZlbCkuICBPZiBjb3Vyc2UsIHRoZSBtb3N0IGFtYXppbmcgZmFjdCBvZiBhbGwgaXMgdGhhdAotdGhpcyB3YXMgaW1wbGVtZW50ZWQgYnkgb25lIHBlcnNvbiBpbiBhbiBhZnRlcm5vb24gYW5kIG9ubHkgaW52b2x2ZWQKLWFib3V0IDE1MCBsaW5lcyBvZiBQeXRob24gY29kZSAod2l0aCBnZW5lcm91cyBoZWxwIGZyb20gdGhlIFB5dGhvbiBsaWJyYXJ5KS4KLQotPGgzPiBEZXZlbG9wbWVudCBTdXBwb3J0IDwvaDM+Ci0KLUZpbmFsbHksIHdlIGhhdmUgZm91bmQgUHl0aG9uIHRvIGJlIHF1aXRlIHVzZWZ1bCBmb3Igc3VwcG9ydGluZwotdGhlIGZ1dHVyZSBkZXZlbG9wbWVudCBvZiBvdXIgY29kZS4gIFNvbWUgb2YgdGhpcyBjb21lcyBpbiB0aGUgZm9ybSBvZgotc29waGlzdGljYXRlZCBkZWJ1Z2dpbmctLVB5dGhvbiBjYW4gYmUgdXNlZCB0byBhbmFseXplIGludGVybmFsIGRhdGEKLXN0cnVjdHVyZXMgYW5kIHRyYWNrIGRvd24gcHJvYmxlbXMuICBTaW5jZSBQeXRob24gY2FuIHJlYWQKLWFuZCBtb2RpZnkgbW9zdCBvZiB0aGUgY29yZSBDIGRhdGEgc3RydWN0dXJlcywgaXQgaXMgcG9zc2libGUgdG8KLXByb3RvdHlwZSBuZXcgZnVuY3Rpb25zIG9yIHRvIHBlcmZvcm0gb25lLXRpbWUgb3BlcmF0aW9ucyB3aXRob3V0IGV2ZXIKLWxvYWRpbmcgdXAgdGhlIEMgY29tcGlsZXIuCi0KLTxwPgotV2UgaGF2ZSBhbHNvIHVzZWQgUHl0aG9uIGluIGNvbmp1bmN0aW9uIHdpdGggY29kZQotbWFuYWdlbWVudC4gT25lIG9mIHRoZSBuZXdlciBwcm9ibGVtcyB3ZSBoYXZlIGZhY2VkIGlzIHRoZSB0YXNrIG9mCi1maW5kaW5nIHRoZSBkZWZpbml0aW9ucyBvZiBDIGZ1bmN0aW9ucyAoZm9yIGV4YW1wbGUsIAotd2UgbWlnaHQgd2FudCB0byBrbm93IGhvdyBhIHBhcnRpY3VsYXIgY29tbWFuZCBoYXMgYmVlbgotaW1wbGVtZW50ZWQgaW4gQykuICBUbyBzdXBwb3J0IHRoaXMsIHdlIGhhdmUgd3JpdHRlbiB0b29scyBmb3IKLWJyb3dzaW5nIHNvdXJjZSBkaXJlY3RvcmllcywgZGlzcGxheWluZyBkZWZpbml0aW9ucywgYW5kIHNwYXduaW5nCi1lZGl0b3JzLiAgQWxsIG9mIHRoaXMgaXMgaW1wbGVtZW50ZWQgaW4gUHl0aG9uIGFuZCBjYW4gYmUgcGVyZm9ybWVkCi1kaXJlY3RseSBmcm9tIHRoZSBQaHlzaWNzIGFwcGxpY2F0aW9uLiAgUHl0aG9uIGhhcyBtYWRlIHRoZXNlIGtpbmRzCi1vZiB0b29scyB2ZXJ5IGVhc3kgdG8gd3JpdGUtLW9mdGVuIG9ubHkgcmVxdWlyaW5nIGEgZmV3IGhvdXJzIG9mCi1lZmZvcnQuCi0KLTxoMj4gUHl0aG9uIGFuZCB0aGUgRGV2ZWxvcG1lbnQgb2YgU2NpZW50aWZpYyBTb2Z0d2FyZSA8L2gyPgotCi1UaGUgYWRvcHRpb24gb2YgUHl0aG9uIGhhcyBoYWQgYSBwcm9mb3VuZCBlZmZlY3Qgb24gdGhlIG92ZXJhbGwKLXN0cnVjdHVyZSBvZiBvdXIgYXBwbGljYXRpb24uICBXaXRoIHRpbWUsIHRoZSBjb2RlIGJlY2FtZSBtb3JlCi1tb2R1bGFyLCBtb3JlIHJlbGlhYmxlLCBhbmQgYmV0dGVyIG9yZ2FuaXplZC4gICAKLUZ1cnRoZXJtb3JlLCB0aGVzZSBnYWlucyBoYXZlIGJlZW4gYWNoaWV2ZWQKLXdpdGhvdXQgc2lnbmlmaWNhbnQgbG9zc2VzIGluIHBlcmZvcm1hbmNlLCBpbmNyZWFzZWQgY29kaW5nIGNvbXBsZXhpdHksCi1vciBzdWJzdGFudGlhbGx5IGluY3JlYXNlZCBkZXZlbG9wbWVudCBjb3N0LiAgIEl0IHNob3VsZCBhbHNvIGJlIHN0cmVzc2VkCi10aGF0IGF1dG9tYXRlZCB0b29scyBzdWNoIGFzIFNXSUcgaGF2ZSBwbGF5ZWQgYSBjcml0aWNhbCByb2xlIGluIHRoaXMKLWVmZm9ydCBieSBoaWRpbmcgdGhlIFB5dGhvbi1DIGludGVyZmFjZSBhbmQgYWxsb3dpbmcgdXMgdG8gY29uY2VudHJhdGUKLW9uIHRoZSByZWFsIHByb2JsZW1zIGF0IGhhbmQgKGkuZS4gcGh5c2ljcykuICAKLQotPHA+Ci1PbmUgcG9pbnQsIHRoYXQgd2Ugd291bGQgbGlrZSB0byBzdHJvbmdseSBlbXBoYXNpemUsIGlzIHRoZSBkeW5hbWljCi1uYXR1cmUgb2YgbWFueSBzY2llbnRpZmljIGFwcGxpY2F0aW9ucy4gIE91ciBhcHBsaWNhdGlvbiBpcyBub3QgYSBodWdlCi1tb25vbGl0aGljIHBhY2thZ2UgdGhhdCBuZXZlciBjaGFuZ2VzIGFuZCB3aGljaCBubyBvbmUgaXMgc3VwcG9zZWQgdG8KLW1vZGlmeS4gIFJhdGhlciwgdGhlIGNvZGUgaXMgPGVtPmNvbnN0YW50bHk8L2VtPiBjaGFuZ2luZyB0byBleHBsb3JlCi1uZXcgcHJvYmxlbXMsIHRyeSBuZXcgbnVtZXJpY2FsIG1ldGhvZHMsIG9yIHRvIHByb3ZpZGUgYmV0dGVyCi1wZXJmb3JtYW5jZS4gIFRoZSBoaWdobHkgbW9kdWxhciBuYXR1cmUgb2YgUHl0aG9uIHdvcmtzIGdyZWF0IGluCi10aGlzIGVudmlyb25tZW50LiAgV2UgcHJvdmlkZSBhIGNvbW1vbiByZXBvc2l0b3J5IG9mIG1vZHVsZXMgdGhhdCBhcmUgc2hhcmVkIGJ5IGFsbAotb2YgdGhlIHVzZXJzIG9mIHRoZSBzeXN0ZW0uICBEaWZmZXJlbnQgdXNlcnMgYXJlIHR5cGljYWxseSByZXNwb25zaWJsZQotZm9yIGRpZmZlcmVudCBtb2R1bGVzIGFuZCBhbGwgdXNlcnMgbWF5IGJlIHdvcmtpbmcgb24gZGlmZmVyZW50IG1vZHVsZXMKLWF0IHRoZSBzYW1lIHRpbWUuIAotV2hlbmV2ZXIgY2hhbmdlcyB0byBhIG1vZHVsZSBhcmUgbWFkZSwgdGhleSBhcmUgaW1tZWRpYXRlbHkgcHJvcGFnYXRlZAotdG8gZXZlcnlvbmUgZWxzZS4gIEluIHRoZSBjYXNlIG9mIGJ1Zy1maXhlcywgdGhpcyBtZWFucyB0aGF0IHBhdGNoZWQKLXZlcnNpb25zIG9mIGNvZGUgYXJlIGF2YWlsYWJsZSBpbW1lZGlhdGVseS4gIExpa2V3aXNlLCBuZXcKLWZlYXR1cmVzIHNob3cgdXAgYXV0b21hdGljYWxseSBhbmQgY2FuIGJlIGVhc2lseSB0ZXN0ZWQgYnkgZXZlcnlvbmUuCi1BbmQgb2YgY291cnNlLCBpZiBzb21ldGhpbmcgYnJlYWtzLS1vdGhlcnMgdGVuZCB0byBub3RpY2UgYWxtb3N0IGltbWVkaWF0ZWx5Ci0od2hpY2ggd2UgZmVlbCBpcyBhIGdvb2QgdGhpbmcpLgotCi08aDI+IExpbWl0YXRpb25zIG9mIFB5dGhvbiA8L2gyPgotCi1XaGlsZSB3ZSBjb25zaWRlciBvdXIgUHl0aG9uICJleHBlcmltZW50IiB0byBiZSBoaWdobHkgc3VjY2Vzc2Z1bCwgd2UKLWhhdmUgZXhwZXJpZW5jZWQgYSBudW1iZXIgb2YgcHJvYmxlbXMgYWxvbmcgdGhlIHdheS4gIFRoZSBmaXJzdCBpcwotbWVyZWx5IGEgdGVjaG5pY2FsIGlzc3VlLS1pdCB3b3VsZCBiZSBuaWNlIGlmIHRoZSBtZWNoYW5pc20gZm9yCi1idWlsZGluZyBzdGF0aWMgZXh0ZW5zaW9ucyB0byBQeXRob24gd2VyZSBtYWRlIGVhc2llci4gIFdoaWxlIHdlIGFyZQotY3VycmVudGx5IHVzaW5nIGR5bmFtaWMgbG9hZGluZywgbWFueSBtYWNoaW5lcywgZXNwZWNpYWxseQotc3VwZXJjb21wdXRpbmcgc3lzdGVtcywgZG8gbm90IHN1cHBvcnQgaXQuICBPbiB0aGVzZSBtYWNoaW5lcyBpdCBpcwotbmVjZXNzYXJ5IHRvIHN0YXRpY2x5IGxpbmsgZXZlcnl0aGluZy4gIExpYnJhcmllcyBoZWxwIHNpbXBsaWZ5IHRoZQotdGFzaywgYnV0IGNvbWJpbmluZyBkaWZmZXJlbnQgc3RhdGljYWxseSBsaW5rZWQgbW9kdWxlcyB0b2dldGhlciBpbnRvCi1hIHNpbmdsZSBQeXRob24gaW50ZXJwcmV0ZXIgc3RpbGwgcmVtYWlucyBtYWdpY2FsIGFuZCBzb21ld2hhdAotcHJvYmxlbWF0aWMgKGVzcGVjaWFsbHkgc2luY2Ugd2UgYXJlIGNyZWF0aW5nIGFuIGFwcGxpY2F0aW9uIHRoYXQKLWNoYW5nZXMgYSBsb3QtLW5vdCBtZXJlbHkgdHJ5aW5nIHRvIHBhdGNoIHRoZSBQeXRob24gY29yZSB3aXRoIGEgbmV3Ci1leHRlbnNpb24gbW9kdWxlKS4KLQotPHA+Ci1BIHNlY29uZCBwcm9ibGVtIGlzIHRoYXQgb2YgZWR1Y2F0aW9uLS13ZSBoYXZlIGZvdW5kIHRoYXQgc29tZSB1c2VycwotaGF2ZSBhIHZlcnkgZGlmZmljdWx0IHRpbWUgbWFraW5nIHNlbnNlIG9mIHRoZSBzeXN0ZW0gKGV2ZW4gd2UncmUKLXNvbWV3aGF0IGFtYXplZCB0aGF0IGl0IHJlYWxseSB3b3JrcykuCi1JbnRlcmVzdGluZ2x5IGVub3VnaCwgdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGRpcmVjdGx5IHJlbGF0ZWQgdG8gdGhlCi11c2Ugb2YgQyBjb2RlIG9yIFB5dGhvbiBmb3IgdGhhdCBtYXR0ZXIsIGJ1dCB0byBpc3N1ZXMgcmVsYXRlZCB0byB0aGUKLWNvbmZpZ3VyYXRpb24sIGNvbXBpbGF0aW9uLCBkZWJ1Z2dpbmcsIGFuZCBpbnN0YWxsYXRpb24gb2YgbW9kdWxlcy4gIFdoaWxlIG1vc3QKLXVzZXJzIGhhdmUgd3JpdHRlbiBwcm9ncmFtcyBiZWZvcmUsIHRoZXkgaGF2ZSBuZXZlciBkZWFsdCB3aXRoIHNoYXJlZAotbGlicmFyaWVzLCBhdXRvbWF0ZWQgY29kZSBnZW5lcmF0b3JzLCBoaWdoLWxldmVsIGxhbmd1YWdlcywgYW5kIHRoaXJkLXBhcnR5IHBhY2thZ2VzCi1zdWNoIGFzIFB5dGhvbi4gIEluIG90aGVyIGNhc2VzLCB0aGVyZSBzZWVtcyB0byBiZSBhCi0iZmVhciBvZiBhdXRvY29uZiItLWlmIGEgcHJvZ3JhbSByZXF1aXJlcyBhIGNvbmZpZ3VyZSBzY3JpcHQsIGl0IG11c3QKLWJlIHRvbyBjb21wbGljYXRlZCB0byB1bmRlcnN0YW5kICh3aGljaCBpcyBub3QgdGhlIGNhc2UKLWhlcmUpLiAgVGhlIGNvbWJpbmF0aW9uIG9mIHRoZXNlCi1mYWN0b3JzIGhhcyBsZWQgc29tZSB1c2VycyB0byBiZWxpZXZlIHRoYXQgdGhlIHN5c3RlbSBpcyBmYXIgbW9yZQotY29tcGxpY2F0ZWQgYW5kIGZyYWdpbGUgdGhhbiBpdCByZWFsbHkgaXMuICBXZSdyZSBub3Qgc3VyZSBob3cgdG8gY29tYmF0Ci10aGlzIHByb2JsZW0gb3RoZXIgdGhhbiB0byB0cnkgYW5kIGVkdWNhdGUgdGhlIHVzZXJzCi0oaS5lLiBpdCdzIGVzc2VudGlhbGx5IHRoZSBzYW1lIGNvZGUgYXMgYmVmb3JlLCBidXQgd2l0aCBhIHJlYWxseSBjb29sCi1oYWNrKS4KLQotPGgyPiBDb25jbHVzaW9ucyBhbmQgRnV0dXJlIFdvcmsgPC9oMj4KLQotUHl0aG9uIGlzIGNvb2wgYW5kIHdlIHBsYW4gdG8ga2VlcCB1c2luZyBpdC4gSG93ZXZlciBtdWNoIHdvcmsKLXJlbWFpbnMuICBPbmUgb2YgdGhlIG1vcmUgZXhjaXRpbmcgYXNwZWN0cyBvZiBQeXRob24gaXMgaXRzIHNvbGlkCi1zdXBwb3J0IGZvciBtb2R1bGFyIHByb2dyYW1taW5nIGFuZCB0aGUgY3VsdHVyZSBvZiBjb29wZXJhdGlvbiBpbiB0aGUKLVB5dGhvbiBjb21tdW5pdHkuIFRoZXJlIGFyZSBhbHJlYWR5IG1hbnkgUHl0aG9uLXJlbGF0ZWQgc2NpZW50aWZpYwotY29tcHV0aW5nIHByb2plY3RzIHVuZGVyd2F5LiAgSWYgdGhlc2UgZWZmb3J0cyB3ZXJlIGNvb3JkaW5hdGVkIAotaW4gc29tZSBtYW5uZXIsIHdlIGZlZWwgdGhhdCB0aGUgcmVzdWx0cyBjb3VsZCBiZSBzcGVjdGFjdWxhci4KLQotPGgyPiBBY2tub3dsZWRnbWVudHMgPC9oMj4KLQotV2Ugd291bGQgbGlrZSBhY2tub3dsZWRnZSBvdXIgY29sbGFib3JhdG9ycyBCcmFkIEhvbGlhbiwgVGltIEdlcm1hbm4sIFNodWppYSBaaG91LCBhbmQgV2Fuc2h1IEh1YW5nIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeS4gIFdlIHdvdWxkIGFsc28gbGlrZQotdG8gYWNrbm93bGVkZ2UgUGF1bCBEdWJvaXMgYW5kIEJyaWFuIFlhbmcgYXQgTGF3cmVuY2UgTGl2ZXJtb3JlCi1OYXRpb25hbCBMYWJvcmF0b3J5IGZvciBtYW55IGludGVyZXN0aW5nIGNvbnZlcnNhdGlvbnMgY29uY2VybmluZyBQeXRob24KLWFuZCBpdHMgdXNlIGluIHBoeXNpY3MgYXBwbGljYXRpb25zLiAgV2Ugd291bGQgYWxzbyBsaWtlIHRvCi1hY2tub3dsZWRnZSB0aGUgU2NpZW50aWZpYyBDb21wdXRpbmcgYW5kIEltYWdpbmcgR3JvdXAgYXQgdGhlCi1Vbml2ZXJzaXR5IG9mIFV0YWggZm9yIHRoZWlyIGNvbnRpbnVlZCBzdXBwb3J0LiAgRmluYWxseSwgd2UnZCBsaWtlIHRvCi10aGFuayB0aGUgZW50aXJlIFB5dGhvbiBkZXZlbG9wbWVudCBjb21tdW5pdHkgZm9yIG1ha2luZyBhIHRydWx5Ci1hd2Vzb21lIHRvb2wgZm9yIHNvbHZpbmcgcmVhbCBwcm9ibGVtcy4gIERldmVsb3BtZW50IG9mIHRoZSBTUGFTTSBjb2RlCi1oYXMgYmVlbiBwZXJmb3JtZWQgdW5kZXIgdGhlIGF1c3BpY2VzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIERlcGFydG1lbnQKLW9mIEVuZXJneS4KLQotPGgyPiBSZWZlcmVuY2VzIDwvaDI+Ci0KLTxwPgotWzFdIEQuTS5CZWF6bGV5IGFuZCBQLlMuIExvbWRhaGwsICJNZXNzYWdlCi1QYXNzaW5nIE11bHRpLUNlbGwgTW9sZWN1bGFyIER5bmFtaWNzIG9uIHRoZSBDb25uZWN0aW9uIE1hY2hpbmUgNSwiCi1QYXJhbGxlbCBDb21wdXRpbmcgMjAgKDE5OTQpLCBwLiAxNzMtMTk1LiA8cD4KLQotPHA+Ci1bMl0gUC5TLkxvbWRhaGwsIFAuVGFtYXlvLCBOLkdyb25iZWNoLUplbnNlbiwKLWFuZCBELk0uQmVhemxleSwgIjUwIEdmbG9wcyBNb2xlY3VsYXIgRHluYW1pY3Mgb24gdGhlIENNLTUsIiBQcm9jZWVkaW5ncwotb2YgU3VwZXJjb21wdXRpbmcgOTMsIElFRUUgQ29tcHV0ZXIgU29jaWV0eSAoMTk5MyksIHAuNTIwLTUyNy4gPHA+Ci0KLTxwPgotWzNdIFMuSi5aaG91LCBELk0uIEJlYXpsZXksIFAuUy4gTG9tZGFobCwgQi5MLiBIb2xpYW4sIFBoeXNpY2FsIFJldmlldwotTGV0dGVycy4gNzgsIDQ3OSAoMTk5NykuCi0KLTxwPgotWzRdIFAuIER1Ym9pcywgSy4gSGluc2VuLCBhbmQgSi4gSHVndW5pbiwgQ29tcHV0ZXJzIGluIFBoeXNpY3MgKDEwKSwgKDE5OTYpCi1wLiAyNjItMjY3LgotCi08cD4KLVs1XSBELiBNLiBCZWF6bGV5IGFuZCBQLlMuIExvbWRhaGwsICJFeHRlbnNpYmxlIE1lc3NhZ2UgUGFzc2luZyBBcHBsaWNhdGlvbgotRGV2ZWxvcG1lbnQgYW5kIERlYnVnZ2luZyB3aXRoIFB5dGhvbiIsIFByb2NlZWRpbmdzIG9mIElQUFMnOTcsIEdlbmV2YQotU3dpdHplcmxhbmQsIElFRUUgQ29tcHV0ZXIgU29jaWV0eSAoMTk5NykuCi0KLTxwPgotWzZdIFQuLVkuQi4gWWFuZywgRC5NLiBCZWF6bGV5LCBQLiBGLiBEdWJvaXMsIEcuIEZ1cm5pc2gsICJTdGVlcmluZyBPYmplY3Qtb3JpZW50ZWQgQ29tcHV0YXRpb25zIHdpdGgKLVB5dGhvbiIsIFB5dGhvbiBXb3Jrc2hvcCA1LCBXYXNoaW5ndG9uIEQuQy4sIE5vdi4gNC01LCAxOTk2LgotCi08cD4KLVs3XSBELk0uIEJlYXpsZXkgYW5kIFAuUy4gTG9tZGFobCwgIkhpZ2gKLVBlcmZvcm1hbmNlIE1vbGVjdWxhciBEeW5hbWljcyBNb2RlbGluZyB3aXRoIFNQYVNNIDogUGVyZm9ybWFuY2UgYW5kCi1Qb3J0YWJpbGl0eSBJc3N1ZXMsIiBQcm9jZWVkaW5ncyBvZiB0aGUgV29ya3Nob3Agb24gRGVidWdnaW5nIGFuZAotVHVuaW5nIGZvciBQYXJhbGxlbCBDb21wdXRlciBTeXN0ZW1zLCBDaGF0aGFtLCBNQSwgMTk5NCAoSUVFRSBDb21wdXRlcgotU29jaWV0eSBQcmVzcywgTG9zIEFsYW1pdG9zLCBDQSwgMTk5NiksIHBwLiAzMzctMzUxLgotCi08cD4KLVs4XSBELk0uIEJlYXpsZXksICJVc2luZyBTV0lHIHRvIENvbnRyb2wsIFByb3RvdHlwZSwgYW5kIERlYnVnIEMgUHJvZ3JhbXMgd2l0aCBQeXRob24iLAotUHJvY2VlZGluZ3Mgb2YgdGhlIDR0aCBJbnRlcm5hdGlvbmFsIFB5dGhvbiBDb25mZXJlbmNlLCBMYXdyZW5jZSBMaXZlcm1vcmUgCi1OYXRpb25hbCBMYWJvcmF0b3J5LCBKdW5lIDMtNiwgMTk5Ni4gCi0KLTxwPgotWzldIEsuIEhpbnNlbiwgVGhlIE1vbGVjdWxhciBNb2RlbGluZyBUb29sa2l0LCA8dHQ+aHR0cDovL3N0YXJzaGlwLnNreXBvcnQubmV0L2NyZXcvaGluc2VuL21tdGsuaHRtbDwvdHQ+Ci0KLTxwPgotWzEwXSBKaW0gSHVndW5pbiwgTnVtZXJpYyBQeXRob24sIDx0dD5odHRwOi8vd3d3LnNscy5sY3MubWl0LmVkdS9qamgvbnVtcHk8L3R0PgotCi08cD4KLVsxMV0gRnJlZHJpayBMdW5kaCwgUHl0aG9uIEltYWdpbmcgTGlicmFyeSwgPHR0Pmh0dHA6Ly93d3cucHl0aG9uLm9yZy9zaWdzL2ltYWdlLXNpZy9JbWFnaW5nLmh0bWw8L3R0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvUHk5Ny9iZWF6bGV5Lmh0bWwgYi9zd2lnd2ViL3BhcGVycy9QeTk3L2JlYXpsZXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzIzMjJjNC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9QeTk3L2JlYXpsZXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc2MyArMCwwIEBACi08aHRtbD4KLTx0aXRsZT4gRmVlZGluZyBhIExhcmdlLXNjYWxlIFBoeXNpY3MgQXBwbGljYXRpb24gdG8gUHl0aG9uIDwvdGl0bGU+Ci08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLQotPGgxPiBGZWVkaW5nIGEgTGFyZ2Utc2NhbGUgUGh5c2ljcyBBcHBsaWNhdGlvbiB0byBQeXRob24gPC9oMT4KLQotRGF2aWQgTS4gQmVhemxleSA8YnI+Ci1EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBVdGFoIDxicj4KLVNhbHQgTGFrZSBDaXR5LCBVdGFoICA4NDExMiA8YnI+Ci08dHQ+IGJlYXpsZXlAY3MudXRhaC5lZHUgPC90dD4gPGJyPgotPHA+Ci1QZXRlciBTLiBMb21kYWhsIDxicj4KLVRoZW9yZXRpY2FsIERpdmlzaW9uIDxicj4KLUxvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeSA8YnI+Ci1Mb3MgQWxhbW9zLCBOZXcgTWV4aWNvICAgODc1NDUgPGJyPgotPHR0PiBweGxAbGFubC5nb3YgPC90dD4gPGJyPgotCi08cD4KLShQcmVzZW50ZWQgYXQgdGhlIDZ0aCBJbnRlcm5hdGlvbmFsIFB5dGhvbiBDb25mZXJlbmNlLCBTYW4gSm9zZSwgQ2FsaWZvcm5pYS4gT2N0b2JlciAxNC0xNywgMTk5NykuCi0KLTxoMj4gQWJzdHJhY3QgPC9oMj4KLQotPGVtPgotV2UgZGVzY3JpYmUgb3VyIGV4cGVyaWVuY2VzIHVzaW5nIFB5dGhvbiB3aXRoIHRoZSBTUGFTTSBtb2xlY3VsYXIKLWR5bmFtaWNzIGNvZGUgYXQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5LiAgT3JpZ2luYWxseSBkZXZlbG9wZWQKLWFzIGEgbGFyZ2UgbW9ub2xpdGhpYyBhcHBsaWNhdGlvbiBmb3IgbWFzc2l2ZWx5IHBhcmFsbGVsIHByb2Nlc3NpbmcKLXN5c3RlbXMsIHdlIGhhdmUgdXNlZCBQeXRob24gdG8gdHJhbnNmb3JtIG91ciBhcHBsaWNhdGlvbiBpbnRvIGEKLWZsZXhpYmxlLCBoaWdobHkgbW9kdWxhciwgYW5kIGV4dHJlbWVseSBwb3dlcmZ1bCBzeXN0ZW0gZm9yIHBlcmZvcm1pbmcKLXNpbXVsYXRpb24sIGRhdGEgYW5hbHlzaXMsIGFuZCB2aXN1YWxpemF0aW9uLiAgSW4gYWRkaXRpb24sIHdlCi1kZXNjcmliZSBob3cgUHl0aG9uIGhhcyBzb2x2ZWQgYSBudW1iZXIgb2YgaW1wb3J0YW50IHByb2JsZW1zIHJlbGF0ZWQKLXRvIHRoZSBkZXZlbG9wbWVudCwgZGVidWdnaW5nLCBkZXBsb3ltZW50LCBhbmQgbWFpbnRlbmFuY2Ugb2YKLXNjaWVudGlmaWMgc29mdHdhcmUuIDwvZW0+Ci0KLTxoMj4gQmFja2dyb3VuZCA8L2gyPgotCi1Gb3IgdGhlIHBhc3QgNSB5ZWFycywgd2UgaGF2ZSBiZWVuIGRldmVsb3BpbmcgYSBsYXJnZS1zY2FsZSBwaHlzaWNzCi1jb2RlIGZvciBwZXJmb3JtaW5nIG1vbGVjdWxhci1keW5hbWljcyBzaW11bGF0aW9ucyBvZgotbWF0ZXJpYWxzLiAgVGhpcyBjb2RlLCBTUGFTTSAoU2NhbGFibGUgUGFyYWxsZWwgU2hvcnQtcmFuZ2UKLU1vbGVjdWxhci1keW5hbWljcyksIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgdGhlIENvbm5lY3Rpb24KLU1hY2hpbmUgNSBtYXNzaXZlbHkgcGFyYWxsZWwgc3VwZXJjb21wdXRpbmcgc3lzdGVtIGFuZCBsYXRlciBtb3ZlZCB0bwotYSBudW1iZXIgb2Ygb3RoZXIgbWFjaGluZXMgaW5jbHVkaW5nIHRoZSBDcmF5IFQzRCwgbXVsdGlwcm9jZXNzb3IgU3VuCi1hbmQgU0dJIHN5c3RlbXMsIGFuZCBVbml4IHdvcmtzdGF0aW9ucyBbMSwyXS4gIE91ciBnb2FsIGhhcwotYmVlbiB0byBpbnZlc3RpZ2F0ZSBtYXRlcmlhbCBwcm9wZXJ0aWVzIHN1Y2ggYXMgZnJhY3R1cmUsIGNyYWNrCi1wcm9wYWdhdGlvbiwgZGlzbG9jYXRpb24gZ2VuZXJhdGlvbiwgZnJpY3Rpb24sIGFuZCBkdWN0aWxlLWJyaXR0bGUgdHJhbnNpdGlvbnMgWzNdLgotVGhlIFNQYVNNIGNvZGUKLWhlbHBzIHVzIGludmVzdGlnYXRlIHRoZXNlIHByb2JsZW1zIGJ5IHBlcmZvcm1pbmcgYXRvbWlzdGljCi1zaW11bGF0aW9ucy0tdGhhdCBpcywgd2Ugc2ltdWxhdGUgdGhlIGR5bmFtaWNzIG9mIGV2ZXJ5IGF0b20gaW4gYQotbWF0ZXJpYWwgYW5kIGhvcGUgdG8gbWFrZSBzZW5zZSBvZiB3aGF0IGhhcHBlbnMuICBPZiBjb3Vyc2UsIHRoZQotdW5kZXJseWluZyBwaHlzaWNzIGlzIG5vdCBzbyBpbXBvcnRhbnQgZm9yIHRoaXMgZGlzY3Vzc2lvbi4KLQotPHA+Ci1XaGlsZSB0aGUgZGV2ZWxvcG1lbnQgb2YgU1BhU00gaXMgYW4gb25nb2luZyBlZmZvcnQsIHdlCi1oYXZlIGJlZW4gaGFtcGVyZWQgYnkgYSBudW1iZXIgb2Ygc2VyaW91cyBwcm9ibGVtcy4KLUZpcnN0LCB0eXBpY2FsCi1zaW11bGF0aW9ucyBnZW5lcmF0ZSB0ZW5zIHRvIGh1bmRyZWRzIG9mIGdpZ2FieXRlcyBvZiBkYXRhIHRoYXQgbXVzdAotYmUgYW5hbHl6ZWQuIFRoaXMgdGFzayBpcyBub3QgZWFzaWx5IHBlcmZvcm1lZCBvbiBhIHVzZXIncwotd29ya3N0YXRpb24sIG5vciBpcyBpdCBlY29ub21pY2FsbHkgZmVhc2libGUgdG8gYnV5IGV2ZXJ5b25lIHRoZWlyIG93bgotcGVyc29uYWwgZGVza3RvcCBzdXBlcmNvbXB1dGVyLiAgQSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IG9mCi1pbnRlcmFjdGl2aXR5IGFuZCBjb250cm9sLiAgV2UgYXJlIGNvbnN0YW50bHkgbWFraW5nIGNoYW5nZXMgdG8KLWludmVzdGlnYXRlIG5ldyBwaHlzaWNhbCBtb2RlbHMsIGRpZmZlcmVudCBtYXRlcmlhbHMsIGFuZCBzbyBmb3J0aC4KLVRoaXMgd291bGQgdXN1YWxseSByZXF1aXJlIGNoYW5nZXMgdG8gdGhlIHVuZGVybHlpbmcgQwotY29kZS0tYSBwcm9jZXNzIHRoYXQgd2FzIHRlZGlvdXMgYW5kIG5vdCB2ZXJ5IHVzZXIgZnJpZW5kbHkuIFdlCi13YW50ZWQgYSBtb3JlIGZsZXhpYmxlIG1lY2hhbmlzbS4KLUZpbmFsbHksIHRoZXJlIHdlcmUgbWFueSBkaWZmaWN1bHRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZQotZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIG9mIG91ciBzb2Z0d2FyZS4gICBXaGlsZSB3ZSBhcmUgb25seSBhIHNtYWxsCi1ncm91cCwgaXQgd2FzIG5vdCB1bmNvbW1vbiBmb3IgZGlmZmVyZW50IHVzZXJzIHRvIGhhdmUgdGhlaXIgCi1vd24gcHJpdmF0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlIHRoYXQgaGFkIGJlZW4gbW9kaWZpZWQgaW4gc29tZSBtYW5uZXIuIAotVGhpcywgaW4gdHVybiwgbGVkIHRvIGEgbWFpbnRlbmFuY2UgbmlnaHRtYXJlIHRoYXQgbWFkZSBpdCBhbG1vc3QgaW1wb3NzaWJsZQotdG8gdXBkYXRlIHRoZSBzb2Z0d2FyZSBvciBhcHBseSBidWctZml4ZXMgaW4gYSBjb25zaXN0ZW50IG1hbm5lci4KLQotPHA+Ci1UbyBhZGRyZXNzIHRoZXNlIHByb2JsZW1zLCB3ZSBzdGFydGVkIGludmVzdGlnYXRpbmcgdGhlIHVzZSBvZiBzY3JpcHRpbmcKLWxhbmd1YWdlcy4gIEluIDE5OTUsIHdlIHdyb3RlIGEgc3BlY2lhbCBwdXJwb3NlIHBhcmFsbGVsLXNjcmlwdGluZyBsYW5ndWFnZSwKLWJ1dCByZXBsYWNlZCBpdCB3aXRoIFB5dGhvbiBhIHllYXIgbGF0ZXIgKGFsdGhvdWdoIHRoZSBpbnRlcmZhY2UKLWdlbmVyYXRpb24gdG9vbCBmb3IgdGhhdCBzY3JpcHRpbmcgbGFuZ3VhZ2UgbGl2ZXMgb24gYXMgU1dJRykuICBJbiB0aGlzCi1wYXBlciwgd2UgaG9wZSB0byBkZXNjcmliZSBzb21lIG9mIG91ciBleHBlcmllbmNlcyB3aXRoIFB5dGhvbiBhbmQgaG93Ci1pdCBoYXMgaGVscGVkIHVzIHNvbHZlIHByYWN0aWNhbCBzY2llbnRpZmljIGNvbXB1dGluZyBwcm9ibGVtcy4gICBJbiBwYXJ0aWN1bGFyLAotd2UgZGVzY3JpYmUgdGhlIG9yZ2FuaXphdGlvbiBvZiBvdXIgc3lzdGVtLCBtb2R1bGUgYnVpbGRpbmcgcHJvY2VzcywKLWludGVyZXN0aW5nIHRvb2xzIHRoYXQgUHl0aG9uIGhhcyBoZWxwZWQgdXMgZGV2ZWxvcCwgYW5kIHdoeSB3ZSB0aGluayB0aGlzCi1hcHByb2FjaCBpcyBwYXJ0aWN1bGFybHkgd2VsbC1zdWl0ZWQgZm9yIHNjaWVudGlmaWMgY29tcHV0aW5nIHJlc2VhcmNoLgotCi08aDI+IFdoeSBQeXRob24/IDwvaDI+Ci0KLUFsdGhvdWdoIG91ciBjb2RlIG9yaWdpbmFsbHkgdXNlZCBhIGN1c3RvbSBzY3JpcHRpbmcgbGFuZ3VhZ2UsIHdlIGRlY2lkZWQKLXRvIHN3aXRjaCB0byBQeXRob24gZm9yIGEgbnVtYmVyIG9mIHJlYXNvbnMgOgotCi08cD4KLTx1bD4KLTxsaT4gRmVhdHVyZXMuICBQeXRob24gaGFkIGEgcmljaCBzZXQgb2YgZGF0YXR5cGVzLCBzdXBwb3J0IGZvcgotb2JqZWN0IG9yaWVudGVkIHByb2dyYW1taW5nLCBuYW1lc3BhY2VzLCBleGNlcHRpb25zLCBkeW5hbWljIGxvYWRpbmcsCi1hbmQgYSBsYXJnZSBudW1iZXIgb2YgdXNlZnVsIG1vZHVsZXMuCi08bGk+IFN5bnRheC4gIE91ciBzeXN0ZW0gaXMgY29udHJvbGxlZCB0aHJvdWdoCi10ZXh0LWJhc2VkIGNvbW1hbmRzIGFuZCBzY3JpcHRzLiAgV2UgZmVsdCB0aGF0IFB5dGhvbiBoYWQgYSBuaWNlCi1zeW50YXggdGhhdCBkb2VzIG5vdCByZXF1aXJlIHVzZXJzIHRvCi10eXBlIHdlaXJkIHN5bWJvbHMgKCQsJSxALCBldGMuLi4pIG9yIHVzZSBzeW50YXggdGhhdCBpcyByYWRpY2FsbHkKLWRpZmZlcmVudCB0aGFuIEMuCi08bGk+IEEgc21hbGwgY29yZS4gIFRoZSBtb2R1bGFyIHN0cnVjdHVyZSBvZiBQeXRob24gbWFrZXMgaXQgZWFzeSBmb3IgdXMKLXRvIHJlbW92ZSBvciBhZGQgbW9kdWxlcyBhcyBuZWVkZWQuICAgR2l2ZW4gdGhlIGRpZmZpY3VsdCB0YXNrIG9mIHJ1bm5pbmcKLW9uIHBhcmFsbGVsIG1hY2hpbmVzIGFuZCBzdXBlcmNvbXB1dGVycywgd2UgZmVsdCB0aGF0IHRoaXMgc3RydWN0dXJlCi13b3VsZCBtYWtlIGl0IGVhc2llciBmb3IgdXMgdG8gcG9ydCBQeXRob24gdG8gYSB2YXJpZXR5IG9mIHNwZWNpYWwtcHVycG9zZQotbWFjaGluZXMgKHNpbmNlIHdlIGNvdWxkIGp1c3QgcmVtb3ZlIHByb2JsZW1hdGljIG1vZHVsZXMpLgotPGxpPiBBdmFpbGFiaWxpdHkgb2YgZG9jdW1lbnRhdGlvbi4gICBVc2VycyBjb3VsZCBnbyB0byB0aGUgYm9va3N0b3JlIAotdG8gZmluZCBvdXQgbW9yZSBhYm91dCBQeXRob24uCi08bGk+IFN1cHBvcnQgYW5kIHN0YWJpbGl0eS4gIFB5dGhvbiBhcHBlYXJlZCB0byBiZSBoaWdobHkgc3RhYmxlIGFuZAotd2VsbCBzdXBwb3J0ZWQgdGhyb3VnaCBuZXdzZ3JvdXBzLCBzcGVjaWFsIGludGVyZXN0IGdyb3VwcywgYW5kIHRoZSBQU0EuCi08bGk+IEZyZWVseSBhdmFpbGFibGUuICBXZSBoYXZlIGJlZW4gYWJsZSB0bwotdXNlIGFuZCBtb2RpZnkgUHl0aG9uIGFzIG5lZWRlZCBmb3Igb3VyIGFwcGxpY2F0aW9uLiAgVGhpcyB3b3VsZCBoYXZlCi1iZWVuIGltcG9zc2libGUgd2l0aG91dCBhY2Nlc3MgdG8gdGhlIFB5dGhvbiBzb3VyY2UuCi08L3VsPgotCi08cD4KLUFub3RoZXIgZmFjdG9yLCBub3QgdG8gYmUgb3Zlcmxvb2tlZCwgaXMgdGhlIGluY3JlYXNpbmcgYWNjZXB0YW5jZSBvZgotUHl0aG9uIGVsc2V3aGVyZSBpbiB0aGUgY29tcHV0YXRpb25hbCBzY2llbmNlIGNvbW11bml0eS4gIEVmZm9ydHMgYXQKLUxhd3JlbmNlIExpdmVybW9yZSBOYXRpb25hbCBMYWJvcmF0b3J5IGFuZCBlbHNld2hlcmUgd2VyZQotYXR0cmFjdGl2ZS0taW4gcGFydGljdWxhciwgd2Ugc2F3IFB5dGhvbiBhcyBiZWluZyBhIHBvdGVudGlhbCB2ZWhpY2xlCi1mb3Igc2hhcmluZyBtb2R1bGVzIGFuZCB1dGlsaXppbmcgdGhpcmQtcGFydHkgdG9vbHMgWzQsOSwxMF0uCi0KLTxoMj4gU3lzdGVtIE9yZ2FuaXphdGlvbiA8L2gyPgotCi1PdXIgZ29hbCB3YXMgdG8gYnVpbGQgYSBoaWdobHkgbW9kdWxhciBzeXN0ZW0gdGhhdCBjb3VsZCBwZXJmb3JtCi1zaW11bGF0aW9uLCBkYXRhIGFuYWx5c2lzLCBhbmQgdmlzdWFsaXphdGlvbi0tb2Z0ZW4gcGVyZm9ybWluZwotYWxsIG9mIHRoZXNlIHRhc2tzIHNpbXVsdGFuZW91c2x5LiAgVW5mb3J0dW5hdGVseSwgdGhlcmUgaXMgYSB0ZW5kZW5jeQotdG8gZG8gdGhpcyBieSBidWlsZGluZyBhIHRpZ2h0bHkgaW50ZWdyYXRlZAotbW9ub2xpdGhpYyBwYWNrYWdlIChwZXJoYXBzIHVzaW5nIGEgd2VsbC1zdHJ1Y3R1cmVkIEMrKyBjbGFzcwotaGllcmFyY2h5IGZvciBleGFtcGxlKS4gIEluIG91ciB2aWV3LCB0aGlzIGlzIHRvbwotZm9ybWFsIGFuZCByZXN0cmljdGl2ZS4gIFdlIHdhbnRlZCB0byBzdXBwb3J0IG1vZHVsZXMgdGhhdCBtaWdodCBvbmx5Ci1iZSBsb29zZWx5IHJlbGF0ZWQgdG8gZWFjaCBvdGhlci4gIEZvciBleGFtcGxlLCB0aGVyZSBpcyBubyBuZWVkIGZvciBhCi1ncmFwaGljcyBsaWJyYXJ5IHRvIGRlcGVuZCBvbiB0aGUgc2FtZSBzdHJ1Y3R1cmVzIGFzIGEgc2ltdWxhdGlvbiBjb2RlCi1vciB0byBldmVuIGJlIHdyaXR0ZW4gaW4gdGhlIHNhbWUgbGFuZ3VhZ2UgZm9yIHRoYXQgbWF0dGVyLiAgTGlrZXdpc2UsCi13ZSB3YW50ZWQgdG8gZXhwbG9pdCB0aGlyZC1wYXJ0eSBtb2R1bGVzIHdoZXJlIG5vIGFzc3VtcHRpb25zIAotY291bGQgYmUgbWFkZSBhYm91dCB0aGVpciBpbnRlcm5hbCBzdHJ1Y3R1cmUuCi0KLTxwPgotVGhlIG1ham9yIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSB0YWtlIHRoZSBmb3JtIG9mIEMgbGlicmFyaWVzLiAgV2hlbgotUHl0aG9uIGlzIHVzZWQsIHRoZSBsaWJyYXJpZXMgYXJlIGNvbXBpbGVkIGludG8gc2hhcmVkIGxpYnJhcmllcyBhbmQKLWR5bmFtaWNhbGx5IGxvYWRlZCBpbnRvIFB5dGhvbiBhcyBleHRlbnNpb24gbW9kdWxlcy4gIFRoZQotZnVuY3Rpb25hbGl0eSBvZiBlYWNoIGxpYnJhcnkgaXMgZXhwb3NlZCBhcyBhIGNvbGxlY3Rpb24gb2YgUHl0aG9uCi0iY29tbWFuZHMuIiAgQmVjYXVzZSBvZiB0aGlzLCB0aGUgQyBhbmQgUHl0aG9uIHByb2dyYW1taW5nCi1lbnZpcm9ubWVudHMgYXJlIGNsb3NlbHkgcmVsYXRlZC4gIEluIG1hbnkgY2FzZXMsIGl0IGlzIHBvc3NpYmxlIHRvCi1pbXBsZW1lbnQgdGhlIHNhbWUgY29kZSBpbiBib3RoIEMgb3IgUHl0aG9uLiBGb3IgZXhhbXBsZSA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PjxwcmU+Ci0vKiBBIHNpbXBsZSBmdW5jdGlvbiB3cml0dGVuIGluIEMgKi8KLSNpbmNsdWRlICJTUGFTTS5oIgotdm9pZCBydW4oaW50IG5zdGVwcywgZG91YmxlIER0LCBpbnQgZnJlcSkgewotICAgIGludCBpOwotICAgIGNoYXIgZmlsZW5hbWVbNjRdOwotICAgIGZvciAoaSA9IDA7IGkgPCBuc3RlcHM7IGkrKykgewotICAgICAgICAgaW50ZWdyYXRlX2Fkdl9jb29yZChEdCk7Ci0gICAgICAgICBib3VuZGFyeV9wZXJpb2RpYygpOwotICAgICAgICAgcmVkaXN0cmlidXRlKCk7Ci0gICAgICAgICBmb3JjZV9lYW0oKTsKLSAgICAgICAgIGludGVncmF0ZV9hZHZfdmVsb2NpdHkoRHQpOwotICAgICAgICAgaWYgKChpICUgZnJlcSkgPT0gMCkgewotICAgICAgICAgICAgc3ByaW50ZihmaWxlbmFtZSwiRGF0JWQiLGkpOwotICAgICAgICAgICAgb3V0cHV0X3BhcnRpY2xlcyhmaWxlbmFtZSk7Ci0gICAgICAgICB9Ci0gICAgfQotfTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLSAgICAgICAgCi1Ob3csIGluIFB5dGhvbiA6Ci0KLTxibG9ja3F1b3RlPjx0dD48cHJlPgotIyBBIGZ1bmN0aW9uIHdyaXR0ZW4gaW4gUHl0aG9uCi1mcm9tIFNQYVNNIGltcG9ydCAqCi1kZWYgcnVuKG5zdGVwcywgRHQsIGZyZXEpOgotICAgIGZvciBpIGluIHhyYW5nZSgwLCBuc3RlcHMpOgotICAgICAgICAgaW50ZWdyYXRlX2Fkdl9jb29yZChEdCkKLSAgICAgICAgIGJvdW5kYXJ5X3BlcmlvZGljKCkKLSAgICAgICAgIHJlZGlzdHJpYnV0ZSgpCi0gICAgICAgICBmb3JjZV9lYW0oKQotICAgICAgICAgaW50ZWdyYXRlX2Fkdl92ZWxvY2l0eShEdCkKLSAgICAgICAgIGlmIChpICUgZnJlcSkgPT0gMCkgOgotICAgICAgICAgICAgb3V0cHV0X3BhcnRpY2xlcygnRGF0JytzdHIoaSkpCi08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLVdoaWxlIEMgbGlicmFyaWVzIHByb3ZpZGUgbXVjaCBvZiB0aGUgdW5kZXJseWluZyBmdW5jdGlvbmFsaXR5LCB0aGUgcmVhbCBwb3dlcgotb2YgdGhlIHN5c3RlbSBjb21lcyBpbiB0aGUgZm9ybSBvZiBtb2R1bGVzIGFuZCBzY3JpcHRzIHdyaXR0ZW4gZW50aXJlbHkgaW4gUHl0aG9uLgotVXNlcnMgd3JpdGUgc2NyaXB0cyB0byBzZXQgdXAgYW5kIGNvbnRyb2wgc2ltdWxhdGlvbnMuICBTZXZlcmFsIG1ham9yCi1jb21wb25lbnRzIHN1Y2ggYXMgdGhlIHZpc3VhbGl6YXRpb24gYW5kIGRhdGEtYW5hbHlzaXMgc3lzdGVtIG1ha2UgaGVhdnkKLXVzZSBvZiBQeXRob24uICBXZSBhbHNvIHV0aWxpemUgYSB2YXJpZXR5IG9mIG1vZHVsZXMgaW4gdGhlIFB5dGhvbgotbGlicmFyeSBhbmQgaGF2ZSBkeW5hbWljYWxseSBsb2FkYWJsZSB2ZXJzaW9ucyBvZiBUa2ludGVyIGFuZCB0aGUKLVB5dGhvbiBJbWFnaW5nIExpYnJhcnkgWzExXS4KLQotPGgyPiBFbWJlZGRpbmcgUHl0aG9uIGFuZCBIaWRpbmcgU3lzdGVtIERlcGVuZGVuY2llcyA8L2gyPgotCi1PbmUgb2YgdGhlIGJpZ2dlc3QgaW1wbGVtZW50YXRpb24gcHJvYmxlbXMgd2UgaGF2ZSBlbmNvdW50ZXJlZCBpcyB0aGUKLWZhY3QgdGhhdCB0aGUgU1BhU00gY29kZSBpcyBhIHBhcmFsbGVsIGFwcGxpY2F0aW9uIHRoYXQgcmVsaWVzIGhlYXZpbHkKLXVwb24gdGhlIHByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiBsb3ctbGV2ZWwgc3lzdGVtIHNlcnZpY2VzIHN1Y2ggYXMKLUkvTyBhbmQgcHJvY2VzcyBtYW5hZ2VtZW50LiBDdXJyZW50bHksIGl0IGlzIHBvc3NpYmxlIHRvIHJ1biB0aGUgY29kZQotaW4gdHdvIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy0tb25lIHRoYXQgdXNlcyBtZXNzYWdlIHBhc3NpbmcgdmlhIHRoZQotTVBJIGxpYnJhcnkgYW5kIGFub3RoZXIgdXNpbmcgU29sYXJpcyB0aHJlYWRzLiAgVXNpbmcgUHl0aG9uIHdpdGgKLWJvdGggdmVyc2lvbnMgb2YgY29kZSByZXF1aXJlcyBhIGRlZ3JlZSBvZiBjYXJlLS1pbiBwYXJ0aWN1bGFyLCB3ZQotaGF2ZSBmb3VuZCBpdCB0byBiZSBuZWNlc3NhcnkgdG8gcHJvdmlkZSBQeXRob24gd2l0aCBlbmhhbmNlZCBJL08KLXN1cHBvcnQgdG8gcnVuIHByb3Blcmx5IGluIHBhcmFsbGVsLiAgVGhpcyB3b3JrIGhhcyBiZWVuIGRlc2NyaWJlZAotZWxzZXdoZXJlIFs1LDZdLgotCi08cD4KLUhhbmRsaW5nIHR3byBvcGVyYXRpb25hbCBtb2RlcyBpbnRyb2R1Y2VzIGEgbnVtYmVyIG9mIHByb2JsZW1zIHJlbGF0ZWQKLXRvIGNvZGUgbWFpbnRlbmFuY2UgYW5kIGluc3RhbGxhdGlvbi4gIFRyYWRpdGlvbmFsbHksIHdlIHdvdWxkCi1yZWNvbXBpbGUgdGhlIGVudGlyZSBzeXN0ZW0gYW5kIGFsbCBvZiBpdHMgbW9kdWxlcyBmb3IgZWFjaAotY29uZmlndXJhdGlvbiAocGxhY2luZyB0aGUgZmlsZXMgaW4gYW4gYXJjaGl0ZWN0dXJlIGRlcGVuZGVudAotc3ViZGlyZWN0b3J5KS4gIFVzZXJzIHdvdWxkIGhhdmUgdG8gZGVjaWRlIHdoaWNoIHN5c3RlbSB0aGV5IHdhbnRlZCB0bwotdXNlIGFuZCBjb21waWxlIGFsbCBvZiB0aGVpciBtb2R1bGVzIGJ5IGxpbmtpbmcgYWdhaW5zdCB0aGUKLWFwcHJvcHJpYXRlIGxpYnJhcmllcyBhbmQgc2V0dGluZyB0aGUgcmlnaHQgY29tcGlsZS10aW1lIG9wdGlvbnMuCi1DaGFuZ2luZyBjb25maWd1cmF0aW9ucyB3b3VsZCB0eXBpY2FsbHkgcmVxdWlyZSBhIGNvbXBsZXRlIHJlY29tcGlsZS4KLQotPHA+Ci1XaXRoIGR5bmFtaWMgbG9hZGluZyBhbmQgc2hhcmVkIGxpYnJhcmllcyBob3dldmVyLCB3ZSBoYXZlIGJlZW4gYWJsZQotdG8gZGV2aXNlIGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHRoaXMgcHJvYmxlbS4gIFJhdGhlcgotdGhhbiByZWNvbXBpbGluZyBldmVyeXRoaW5nIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24sIHdlIHVzZSBhbgotaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgbGF5ZXIgb2Ygc3lzdGVtIHdyYXBwZXJzLiAgVGhlc2Ugd3JhcHBlcnMKLXByb3ZpZGUgYSBnZW5lcmljIGltcGxlbWVudGF0aW9uIG9mIG1lc3NhZ2UgcGFzc2luZywgcGFyYWxsZWwgSS9PLCBhbmQKLXRocmVhZCBtYW5hZ2VtZW50LiAgQWxsIG9mIHRoZSBjb3JlIG1vZHVsZXMgYXJlIHRoZW4gY29tcGlsZWQKLXVzaW5nIHRoZXNlIGdlbmVyaWMgd3JhcHBlcnMuICAgVGhpcyBtYWtlcyB0aGUgbW9kdWxlcyBpbmRlcGVuZGVudAotb2YgdGhlIHVuZGVybHlpbmcgb3BlcmF0aW9uYWwgbW9kZS0tLXRvIHVzZSBNUEkgb3IgdGhyZWFkcywgIHdlIHNpbXBseQotbmVlZCB0byBzdXBwbHkgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhlICBzeXN0ZW0gd3JhcHBlciBsaWJyYXJpZXMuCi1UaGlzIGlzIGVhc2lseSBhY2NvbXBsaXNoZWQgYnkgYnVpbGRpbmcgdHdvIGRpZmZlcmVudCB2ZXJzaW9ucyBvZgotUHl0aG9uIHRoYXQgYXJlIGxpbmtlZCBhZ2FpbnN0IHRoZSBhcHByb3ByaWF0ZSBzeXN0ZW0gbGlicmFyaWVzLiAKLVRvIHJ1biBpbiBhIHBhcnRpY3VsYXIgbW9kZSwgd2Ugbm93IGp1c3QgcnVuIHRoZSBhcHByb3ByaWF0ZQotdmVyc2lvbiBvZiBQeXRob24gKGkuZS4gJ3B5dGhvbicgb3IgJ3B5dGhvbm1waScpLiAgVGhlIG5lYXQgCi1wYXJ0IGFib3V0IHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBhbGwgb2YgdGhlIG1vZHVsZXMgd29yayB3aXRoIGJvdGgKLW9wZXJhdGlvbmFsIG1vZGVzIHdpdGhvdXQgYW55IHJlY29tcGlsYXRpb24gb3IgcmVjb25maWd1cmF0aW9uLiAgSWYgYQotdXNlciBpcyB1c2luZyB0aHJlYWRzLCBidXQgd2FudHMgdG8gc3dpdGNoIHRvIE1QSSwgdGhleSBzaW1wbHkgcnVuCi1hIGRpZmZlcmVudCB2ZXJzaW9uIG9mIFB5dGhvbi0tbm8gcmVjb21waWxhdGlvbiBvZiBtb2R1bGVzIGlzIG5lY2Vzc2FyeS4KLQotPHA+Ci1BIGZ1bGwgZGlzY3Vzc2lvbiBvZiB3cml0aW5nIHN5c3RlbS13cmFwcGVycyBjYW4gYmUgZm91bmQgZWxzZXdoZXJlLgotSW4gcGFydGljdWxhciwgYSBkaXNjdXNzaW9uIG9mIHdyaXRpbmcgcGFyYWxsZWwgSS9PIHdyYXBwZXJzIGZvcgotUHl0aG9uIGNhbiBiZSBmb3VuZCBpbiBbNV0uICBBbiBlYXJsaWVyIGRpc2N1c3Npb24gb2YgdGhlIHRlY2huaXF1ZSB3ZQotaGF2ZSB1c2VkIGZvciB3cml0aW5nIG1lc3NhZ2UgcGFzc2luZyBhbmQgSS9PIHdyYXBwZXJzIGNhbiBhbHNvIGJlCi1mb3VuZCBpbiBbN10uCi0KLTxoMj4gTW9kdWxlIEJ1aWxkaW5nIHdpdGggU1dJRyA8L2gyPgotCi1UbyBidWlsZCBtb2R1bGVzLCB3ZSBoYXZlIGJlZW4gdXNpbmcgU1dJRyBbOF0uCi1FYWNoIG1vZHVsZSBpcyBkZXNjcmliZWQgYnkgYSBTV0lHIGludGVyZmFjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIEFOU0kKLUMgZGVjbGFyYXRpb25zIG9mIGZ1bmN0aW9ucywgc3RydWN0dXJlcywgYW5kIHZhcmlhYmxlcyBpbiB0aGF0IG1vZHVsZS4KLUZvciBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLS8vIFNXSUcgaW50ZXJmYWNlIGZpbGUKLSVtb2R1bGUgU1BhU00KLSV7Ci0jaW5jbHVkZSAiU1BhU00uaCIKLSV9Ci12b2lkIGludGVncmF0ZV9hZHZfY29vcmQoZG91YmxlIER0KTsKLXZvaWQgYm91bmRhcnlfcGVyaW9kaWMoKTsKLXZvaWQgcmVkaXN0cmlidXRlKCk7Ci12b2lkIGZvcmNlX2VhbSgpOwotdm9pZCBpbnRlZ3JhdGVfYWR2X3ZlbG9jaXR5KGRvdWJsZSBEdCk7Ci1pbnQgIG91dHB1dF9wYXJ0aWNsZXMoY2hhciAqZmlsZW5hbWUpOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1TV0lHIHByb3ZpZGVzIGEgbG9naWNhbCBtYXBwaW5nIG9mIHRoZSB1bmRlcmx5aW5nIEMgaW1wbGVtZW50YXRpb24gaW50bwotUHl0aG9uLiAgIER1cmluZyBjb21waWxhdGlvbiwgaW50ZXJmYWNlIGZpbGVzIGFyZSBhdXRvbWF0aWNhbGx5Ci1jb252ZXJ0ZWQgaW50byB3cmFwcGVyIGNvZGUgYW5kIGNvbXBpbGVkIGludG8gUHl0aG9uIG1vZHVsZXMuICBUaGlzIAotcHJvY2VzcyBpcyBlbnRpcmVseSB0cmFuc3BhcmVudC0tY2hhbmdlcyBtYWRlIHRvIHRoZSBpbnRlcmZhY2UKLWFyZSBhdXRvbWF0aWNhbGx5IHByb3BhZ2F0ZWQgdG8gUHl0aG9uIHdoZW5ldmVyIGEgbW9kdWxlIGlzIHJlY29tcGlsZWQuCi1HaXZlbiB0aGUgY29uc3RhbnRseSBldm9sdmluZyBuYXR1cmUgb2YgcmVzZWFyY2ggYXBwbGljYXRpb25zLCB0aGlzIG1ha2VzCi1pdCBlYXN5IHRvIGV4dGVuZCBhbmQgbWFpbnRhaW4gdGhlIHN5c3RlbS4gIAotCi08aDM+IFNlcGFyYXRpb24gb2YgSW1wbGVtZW50YXRpb24gYW5kIEludGVyZmFjZSA8L2gzPgotCi1BbiBpbXBvcnRhbnQgYXNwZWN0IG9mIFNXSUcgaXMgdGhhdCBpdCBpcyByZXF1aXJlcyBubyBtb2RpZmljYXRpb25zIHRvCi1leGlzdGluZyBDIGNvZGUgd2hpY2ggYWxsb3dzIHVzIHRvIG1haW50YWluIGEgc3RyaWN0Ci1zZXBhcmF0aW9uIGJldHdlZW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIEMgbW9kdWxlcyBhbmQgdGhlaXIKLVB5dGhvbiBpbnRlcmZhY2UuICBXZSBiZWxpZXZlIHRoYXQgdGhpcyByZXN1bHRzIGluIGNvZGUgdGhhdAotaXMgbW9yZSBvcmdhbml6ZWQgYW5kIGdlbmVyYWxseSByZXVzYWJsZS4gIFRoZXJlIGlzIG5vIHBhcnRpY3VsYXIKLXJlYXNvbiB3aHkgYSBDIG1vZHVsZSBzaG91bGQgZGVwZW5kIG9uIFB5dGhvbiAob25lIG1pZ2h0Ci13YW50IHRvIHVzZSBpdCBhcyBhIHN0YW5kLWFsb25lIHBhY2thZ2Ugb3IgaW4gYSBkaWZmZXJlbnQgYXBwbGljYXRpb24pLgotRGVzcGl0ZSB1c2luZyBQeXRob24gZXh0ZW5zaXZlbHksIHRoZSBTUGFTTSBjb2RlIGNhbiBzdGlsbCBiZQotY29tcGlsZWQgd2l0aCBubyBQeXRob24gaW50ZXJmYWNlIChvZiBjb3Vyc2UsIHlvdSBsb3NlIGFsbCBvZgotdGhlIGJlbmVmaXRzIGdhaW5lZCBieSBoYXZpbmcgUHl0aG9uKS4gIAotV2UgZmVlbCB0aGF0IG1vc3QgcGh5c2ljcyBjb2RlcyB0ZW5kCi10byBoYXZlIGEgcmF0aGVyIGxvbmcgbGlmZS1zcGFuLiAgTWFpbnRhaW5pbmcgYSBzZXBhcmF0aW9uIG9mCi1pbXBsZW1lbnRhdGlvbiBhbmQgaW50ZXJmYWNlIGhlbHBzIGluc3VyZSB0aGF0IG91ciBwaHlzaWNzIGNvZGUgd2lsbAotYmUgdXNhYmxlIGluIHRoZSBmdXR1cmUtLWV2ZW4gaWYgdGhlcmUgYXJlIGRyYXN0aWMgY2hhbmdlcyBpbiB0aGUKLWludGVyZmFjZSBhbG9uZyB0aGUgd2F5LgotCi08aDM+IFByb3ZpZGluZyBBY2Nlc3MgdG8gRGF0YSBTdHJ1Y3R1cmVzIDwvaDM+Ci0KLUZvciB0aGUgcHVycG9zZXMgb2YgZGVidWdnaW5nIGFuZCBkYXRhIGV4cGxvcmF0aW9uLCB3ZSBoYXZlIAotdXNlZCBTV0lHIHRvIHByb3ZpZGUgd3JhcHBlcnMgYXJvdW5kIEMgZGF0YSBzdHJ1Y3R1cmVzLiAgIEZvciBleGFtcGxlLAotYSBjb2xsZWN0aW9uIG9mIEMgc3RydWN0dXJlcyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcKLQotPGJsb2NrcXVvdGU+PHByZT4KLXR5cGVkZWYgc3RydWN0IHsKLSAgICAgZG91YmxlIHgseSx6OwotfSBWZWN0b3I7Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICAgaW50ICAgIHR5cGU7Ci0gICAgIFZlY3RvciByOwotICAgICBWZWN0b3IgdjsKLSAgICAgVmVjdG9yIGY7Ci19IFBhcnRpY2xlOwotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1jYW4gYmUgdHVybmVkIGludG8gUHl0aG9uIHdyYXBwZXIgY2xhc3Nlcy4gIEluIGFkZGl0aW9uLCBTV0lHIGNhbiBleHRlbmQgc3RydWN0dXJlcyB3aXRoIG1lbWJlciBmdW5jdGlvbnMgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPiA8cHJlPgotLy8gU1dJRyBpbnRlcmZhY2UgZm9yIHZlY3RvciBhbmQgcGFydGljbGUgc3RydWN0dXJlcwotJWluY2x1ZGUgZGF0YXR5cGVzLmgKLQotLy8gRXh0ZW5kIGRhdGEgc3RydWN0dXJlcyB3aXRoIGEgZmV3IHVzZWZ1bCBtZXRob2RzCi0lYWRkbWV0aG9kcyBWZWN0b3IgewotICAgICBjaGFyICpfX3N0cl9fKCkgewotICAgICAgICAgc3RhdGljIGNoYXIgYVsxMDI0XTsKLSAgICAgICAgIHNwcmludGYoYSwiWyAlMC4xMGYsICUwLjEwZiwgJTAuMTBmIF0iLCBzZWxmLT54LCBzZWxmLT55LCBzZWxmLT56KTsKLSAgICAgICAgIHJldHVybiBhOwotICAgICB9Ci19Ci0lYWRkbWV0aG9kcyBQYXJ0aWNsZSB7Ci0gICAgIFBhcnRpY2xlICpfX2dldGl0ZW1fXyhpbnQgaW5kZXgpIHsKLSAgICAgICAgICByZXR1cm4gc2VsZitpbmRleDsKLSAgICAgfQotICAgICBjaGFyICpfX3N0cl9fKCkgewotICAgICAgICAgIC8vIHByaW50IG91dCBhIHBhcnRpY2xlCi0gICAgICAgICAgLi4uCi0gICAgIH0KLX0KLTwvcHJlPgotPC9ibG9ja3F1b3RlPgotCi1XaGVuIHRoZSBQeXRob24gaW50ZXJmYWNlIGlzIGJ1aWx0LCBDIHN0cnVjdHVyZXMgbm93IGFwcGVhciBsaWtlCi1QeXRob24gb2JqZWN0cy4gIEJ5IHByb3ZpZGluZyBQeXRob24tc3BlY2lmaWMgbWV0aG9kcyAoc3VjaCBhcwotPHR0Pl9fZ2V0aXRlbV9fPC90dD4pIHdlIGNhbiBldmVuIHByb3ZpZGUgYXJyYXkgYWNjZXNzLgotRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgUHl0aG9uIGNvZGUgd291bGQgcHJpbnQgb3V0Ci1hbGwgb2YgdGhlIGNvb3JkaW5hdGVzIG9mIHN0b3JlZCBwYXJ0aWNsZXMgOgotCi08YmxvY2txdW90ZT4KLTxwcmU+Ci0jIFByaW50IG91dCBhbGwgY29vcmRpbmF0ZXMgdG8gYSBmaWxlCi1mID0gb3BlbigicGFydC5kYXRhIiwidyIpCi1wID0gU1BhU01fZmlyc3RfcGFydGljbGUoKSAgICAgICAgICAjIEdldCBmaXJzdCBwYXJ0aWNsZSBwb2ludGVyCi1mb3IgaSBpbiB4cmFuZ2UoMCxTUGFTTV9jb3VudF9wYXJ0aWNsZXMoKSk6Ci0gICAgZi53cml0ZSgiJWYsICVmLCAlZlxuIiAlIChwW2ldLnIueCwgcFtpXS5yLnksIHBbaV0uci56KSkKLWYuY2xvc2UoKQotPC9wcmU+Ci08L2Jsb2NrcXVvdGU+Ci0KLVdoaWxlIG9ubHkgYSBzaW1wbGUgZXhhbXBsZSwgaGF2aW5nIGRpcmVjdCBhY2Nlc3MgdG8gdW5kZXJseWluZyBkYXRhIGhhcwotcHJvdmVuIHRvIGJlIHF1aXRlIHZhbHVhYmxlIHNpbmNlIHdlIHZpZXcgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIAotb2YgZGF0YSwgY2hlY2sgdmFsdWVzLCBhbmQgcGVyZm9ybSBkaWFnbm9zdGljcy4gCi0KLTxoMz4gSW1wcm92aW5nIHRoZSBSZWxpYWJpbGl0eSBvZiBNb2R1bGVzIDwvaDM+Ci0KLVdoZW4gaW5zdHJ1bWVudGluZyBvdXIgb3JpZ2luYWwgcGh5c2ljcyBhcHBsaWNhdGlvbiB0byB1c2Ugc2NyaXB0aW5nLAotd2UgZm91bmQgdGhhdCBtYW55IHBhcnRzIG9mIHRoZSBjb2RlIHdlcmUgbm90IHdyaXR0ZW4gaW4gYW4gZW50aXJlbHkKLSJyZWxpYWJsZSIgbWFubmVyLiAgSW4gcGFydGljdWxhciwgdGhlIGNvZGUgaGFkIG5ldmVyIGJlZW4gb3BlcmF0ZWQgaW4KLWFuIGV2ZW50LWRyaXZlbiBtYW5uZXIuICBGdW5jdGlvbnMgb2Z0ZW4gbWFkZSBhc3N1bXB0aW9ucyBhYm91dAotaW5pdGlhbGl6YXRpb25zIGFuZCByYXJlbHkgY2hlY2tlZCB0aGUgdmFsaWRpdHkgb2YgaW5wdXQgcGFyYW1ldGVycy4KLVRvIGFkZHJlc3MgdGhlc2UgaXNzdWVzLCBtb3N0IHNlY3Rpb25zIG9mIGNvZGUgd2VyZSBncmFkdWFsbHkgY2hhbmdlZAotdG8gcHJvdmlkZSBzb21lIGtpbmQgb2YgdmFsaWRhdGlvbiBvZiBpbnB1dCB2YWx1ZXMgYW5kIGVycm9yIHJlY292ZXJ5LgotVGhlIFNXSUcgY29tcGlsZXIgaGFzIGFsc28gYmVlbiBleHRlbmRlZCB0byBwcm92aWRlIHNvbWUgb2YgdGhlc2UKLWNhcGFiaWxpdGllcyBhcyB3ZWxsLgotPHA+Ci1PbmUgb2YgUHl0aG9uJ3MgbW9zdCBwb3dlcmZ1bCBmZWF0dXJlcyBpcyBpdHMgZXhjZXB0aW9uIGhhbmRsaW5nIG1lY2hhbmlzbS4KLUV4Y2VwdGlvbnMgYXJlIGVhc2lseSByYWlzZWQgYW5kIGhhbmRsZWQgaW4gUHl0aG9uIHNjcmlwdHMgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0jIEEgUHl0aG9uIGZ1bmN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbgotZGVmIGFsbG9jYXRlKG5ieXRlcyk6Ci0JcHRyID0gU1BhU01fbWFsbG9jKG5ieXRlcykKLSAgICAgICAgaWYgcHRyID09ICJOVUxMIjogcmFpc2UgTWVtb3J5RXJyb3IsIk91dCBvZiBtZW1vcnkhIgotCi0jIEEgUHl0aG9uIGZ1bmN0aW9uIHRoYXQgY2F0Y2hlcyBhbiBleGNlcHRpb24KLWRlZiBmb28oKToKLQl0cnk6Ci0JCWFsbG9jYXRlKE5CWVRFUykKLQlleGNlcHQ6Ci0JCXJldHVybiAgICAjIEJhaWxpbmcgb3V0Ci0KLTwvYmxvY2txdW90ZT48L3ByZT4KLQotV2UgaGF2ZSBib3Jyb3dlZCB0aGlzIGlkZWEgYW5kIGltcGxlbWVudGVkIGEgc2ltaWxhciBleGNlcHRpb24gaGFuZGxpbmcKLW1lY2hhbmlzbSBmb3Igb3VyIEMgY29kZS4gIFRoaXMgaXMgYWNjb21wbGlzaGVkIHVzaW5nIGZ1bmN0aW9ucyBpbiB0aGUKLTx0dD4mbHQ7c2V0am1wLmgmZ3Q7PC90dD4gbGlicmFyeSBhbmQgZGVmaW5pbmcgYSBmZXcgQyBtYWNyb3MgZm9yICI8dHQ+VHJ5PC90dD4iLCAiPHR0PkV4Y2VwdDwvdHQ+IiwKLSI8dHQ+VGhyb3c8L3R0PiIsIGV0Yy4uLiBVc2luZyB0aGVzZSBtYWNyb3MsIG1hbnkgb2Ygb3VyIGxpYnJhcnkgZnVuY3Rpb25zIG5vdyBsb29rIGxpa2UgdGhlIGZvbGxvd2luZyA6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0vKiBBIEMgZnVuY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uICovCi12b2lkICpTUGFTTV9tYWxsb2Moc2l6ZV90IG5ieXRlcykgewotICAgIHZvaWQgKnB0ciA9ICh2b2lkICopIG1hbGxvYyhuYnl0ZXMpOwotICAgIGlmICghcHRyKSBUaHJvdygiU1BhU01fbWFsbG9jIDogT3V0IG9mIG1lbW9yeSEiKTsKLSAgICByZXR1cm4gcHRyOwotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1MaWtlIFB5dGhvbiwgd2UgYWxsb3cgQyBmdW5jdGlvbnMgdG8KLWNhdGNoIGV4Y2VwdGlvbnMgYW5kIHByb3ZpZGUgdGhlaXIgb3duIHJlY292ZXJ5IGFzIGZvbGxvd3MgOgotCi08YmxvY2txdW90ZT4gPHByZT4KLS8qIEEgQyBmdW5jdGlvbiBjYXRjaGluZyBhbiBleGNlcHRpb24gKi8KLWludCBmb28oKSB7Ci0gICAgdm9pZCAqcDsKLSAgICBUcnkgewotICAgICAgICBwID0gU1BhU01fbWFsbG9jKE5CWVRFUyk7Ci0gICAgfSBFeGNlcHQgewotICAgICAgICBwcmludGYoIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkuIFJldHVybmluZyFcbiIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1JbiB0aGUgY2FzZSBvZiBhIHN0YW5kLWFsb25lIEMgYXBwbGljYXRpb24sIGV4Y2VwdGlvbnMgY2FuCi1iZSBjYXVnaHQgYW5kIGhhbmRsZWQgaW50ZXJuYWxseS4gIFNob3VsZCBhbiB1bmNhdWdodCBleGNlcHRpb24KLW9jY3VyLCB0aGUgY29kZSBwcmludHMgYW4gZXJyb3IgbWVzc2FnZSBhbmQgdGVybWluYXRlcy4gSG93ZXZlciwKLXdoZW4gUHl0aG9uIGlzIHVzZWQsIHdlIGNhbiAKLWdlbmVyYXRlIFB5dGhvbiBleGNlcHRpb25zIHVzaW5nIGEgU1dJRyB1c2VyLWRlZmluZWQKLWV4Y2VwdGlvbiBoYW5kbGVyIHN1Y2ggYXMgdGhlIGZvbGxvd2luZyA6Ci0KLTxibG9ja3F1b3RlPiA8cHJlPgotJW1vZHVsZSBTUGFTTQotLy8gQSBTV0lHIHVzZXIgZGVmaW5lZCBleGNlcHRpb24gaGFuZGxlcgotJWV4Y2VwdChweXRob24pIHsKLSAgICAgVHJ5IHsKLSAgICAgICAgICAkZnVuY3Rpb24KLSAgICAgfSBFeGNlcHQgewotICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsU1BhU01fZXJyb3JfbXNnKCkpOwotICAgICB9Ci19Ci0vLyBDIGRlY2xhcmF0aW9ucyAKLS4uLgotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1UaGUgaGFuZGxlciBjb2RlIGdldHMgcGxhY2VkIGludG8gYWxsIG9mIHRoZSBQeXRob24KLSJ3cmFwcGVyIiBmdW5jdGlvbnMgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyBDIGV4Y2VwdGlvbnMKLWludG8gUHl0aG9uIGV4Y2VwdGlvbnMuICBEb2luZyB0aGlzIG1ha2VzIG91ciBwaHlzaWNzIGNvZGUgb3BlcmF0ZQotaW4gYSBtb3JlIHNlYW1sZXNzIG1hbm5lciBhbmQgZ2l2ZXMgaXQgYSBwcmVjaXNlbHkgZGVmaW5lZCBlcnJvciByZWNvdmVyeQotcHJvY2VkdXJlIChpLmUuICBpbnRlcm5hbCBlcnJvcnMgYWx3YXlzIHJlc3VsdCBQeXRob24gZXhjZXB0aW9ucykuIEZvciBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLT4+PiBTUGFTTV9tYWxsb2MoMTAwMDAwMDAwMCkKLVJ1bnRpbWVFcnJvcjogU1BhU01fbWFsbG9jKDEwMDAwMDAwMDApLiBPdXQgb2YgbWVtb3J5IQotKExpbmUgNTIgaW4gbWVtb3J5LmMpCi0+Pj4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotV2UgaGF2ZSBmb3VuZCBlcnJvciByZWNvdmVyeSB0byBiZSBjcml0aWNhbC4gIFdpdGhvdXQgaXQsIHNpbXVsYXRpb25zIG1heSAKLWNvbnRpbnVlIHRvIHJ1biwgb25seSB0byBnZW5lcmF0ZSB3cm9uZyBhbnN3ZXJzIG9yIGEgbXlzdGVyaW91cwotc3lzdGVtIGNyYXNoLiAgCi0KLTxoMj4gTW9yZSBUaGFuIFNjcmlwdGluZyA8L2gyPgotCi1XaGVuIHdlIG9yaWdpbmFsbHkgc3RhcnRlZCB1c2luZyBzY3JpcHRpbmcgbGFuZ3VhZ2VzLCB3ZSB0aG91Z2h0IAotdGhleSB3b3VsZCBtYWlubHkgYmUgYSBjb252ZW5pZW50IG1lY2hhbmlzbSBmb3IgZ2x1aW5nIEMgbGlicmFyaWVzCi10b2dldGhlciBhbmQgY29udHJvbGxpbmcgdGhlbSBpbiBhbiBpbnRlcmFjdGl2ZSBtYW5uZXIuICBIb3dldmVyLCAKLXdlIGhhdmUgY29tZSB0byByZWFsaXplIHRoYXQgc2NyaXB0aW5nIGxhbmd1YWdlcyBhcmUKLW11Y2ggbW9yZSBwb3dlcmZ1bCB0aGFuIHRoaXMuICBOb3csIHdlIGZpbmQgb3Vyc2VsdmVzCi1pbXBsZW1lbnRpbmcgc2lnbmlmaWNhbnQgZnVuY3Rpb25hbGl0eSBlbnRpcmVseSBpbiBQeXRob24tLWJ5cGFzc2luZwotQyBhbHRvZ2V0aGVyLiAgIFRoZSBtb3N0IHN1cnByaXNpbmcgKHdlbGwsIG5vdCByZWFsbHkgdGhhdCBzdXJwcmlzaW5nKQotZmFjdCBpcyB0aGF0IFB5dGhvbiBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCB2ZXJ5IHBvd2VyZnVsIHRvb2xzIHdpdGgKLW9ubHkgYSBzbWFsbCBhbW91bnQgb2YgZXh0cmEgcHJvZ3JhbW1pbmcuICAgSW4gdGhpcyBzZWN0aW9uLCB3ZSBwcmVzZW50Ci1hIGJyaWVmIG92ZXJ2aWV3IG9mIHNvbWUgb2YgdGhlIHRvb2xzIHdlIGhhdmUgZGV2ZWxvcGVkLS1tb3N0IG9mCi13aGljaCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgbGFyZ2VseSBpbiBQeXRob24uCi0KLTxoMz4gT2JqZWN0LU9yaWVudGVkIFZpc3VhbGl6YXRpb24gYW5kIERhdGEgQW5hbHlzaXMgPC9oMz4KLQotT3VyIG9yaWdpbmFsIGdvYWwgd2FzIHRvIGFkZCBhIHBvd2VyZnVsIGRhdGEgYW5hbHlzaXMgYW5kCi12aXN1YWxpemF0aW9uIGNvbXBvbmVudCB0byBvdXIgYXBwbGljYXRpb24uICBUbyB0aGlzIGVuZCwgd2UgZGV2ZWxvcGVkCi1hIGxpZ2h0d2VpZ2h0IGhpZ2gtcGVyZm9ybWFuY2UgZ3JhcGhpY3MgbGlicmFyeSBpbXBsZW1lbnRlZCBpbiBDLgotVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIGJvdGggMkQgYW5kIDNEIHBsb3R0aW5nIGFuZCBwcm9kdWNlcyBvdXRwdXQgaW4KLXRoZSBmb3JtIG9mIEdJRiBpbWFnZXMuICBUbyBtYWtlIHBsb3RzLCBhIHVzZXIgd3JpdGVzIHNpbXBsZSBDCi1mdW5jdGlvbnMgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDoKLQotPGJsb2NrcXVvdGU+PHByZT4KLXZvaWQgcGxvdF9zcGhlcmVzKFBsb3QzRCAqcDMsIERhdGFGdW5jdGlvbiBmdW5jLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LAotICAgICAgICAgICAgICAgICAgZG91YmxlIHJhZGl1cykgewotICAgIFBhcnRpY2xlICpwID0gUGFydGljbGVzOwotICAgIGludCAgICAgICBpLCBucGFydCwgY29sb3I7Ci0gICAgbnBhcnQgPSBTUGFTTV9jb3VudF9wYXJ0aWNsZXMoKTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbnBhcnQ7IGkrKywgcCsrKSB7Ci0gICAgICAgIC8qIENvbXB1dGUgY29sb3IgdmFsdWUgKi8KLSAgICAgICAgdmFsdWUgPSAoKmZ1bmMpKHApOwotICAgICAgICBjb2xvciA9ICh2YWx1ZS1taW4pLyhtYXgtbWluKSoyNTU7Ci0gICAgICAgIC8qIFBsb3QgaXQgKi8KLSAgICAgICAgUGxvdDNEX3NwaGVyZShwMyxwLT5yLngscC0+ci55LHAtPnIueixyYWRpdXMsY29sb3IpOwotICAgIH0KLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gZXhlY3V0ZWQsIHRoaXMgZnVuY3Rpb24gcHJvZHVjZXMgYSByYXcgaW1hZ2Ugc3VjaCBhcyB0aGUgZm9sbG93aW5nCi1zaG93aW5nIHN0YWNraW5nLWZhdWx0cyBnZW5lcmF0ZWQgYnkgYSBwYXNzaW5nIHNob2NrIHdhdmUgaW4gYW4gZmNjIGNyeXN0YWwKLW9mIDEwIG1pbGxpb24gYXRvbXMgOgotPHA+Ci08Y2VudGVyPgotPGltZyBzcmM9ImJpZ3Nob2NrcmF3LmdpZiI+Ci08L2NlbnRlcj4KLTxwPgotV2hpbGUgc2ltcGxlLCB3ZSBvZnRlbiB3YW50IG91ciBpbWFnZXMgdG8gY29udGFpbiBtb3JlIGluZm9ybWF0aW9uCi1pbmNsdWRpbmcgdGl0bGVzLCBheGlzIGxhYmVscywgY29sb3JiYXJzLCB0aW1lLXN0YW1wcywgYW5kIGJvdW5kaW5nCi1ib3hlcy4gICBUbyBkbyB0aGlzLCB3ZSBoYXZlIGJ1aWx0IGFuIG9iamVjdC1vcmllbnRlZCB2aXN1YWxpemF0aW9uCi1mcmFtZXdvcmsgaW4gUHl0aG9uLiAgIFB5dGhvbiBjbGFzc2VzIHByb3ZpZGUgbWV0aG9kcyBmb3IgZ3JhcGggYW5ub3RhdGlvbgotYW5kIGNvbW1vbiBncmFwaCBvcGVyYXRpb25zLiAgIElmIGEgdXNlciB3YW50cyB0byBtYWtlIGEgbmV3IGtpbmQgb2YgcGxvdCwKLXRoZXkgc2ltcGx5IGluaGVyaXQgZnJvbSBhbiBhcHByb3ByaWF0ZSBiYXNlIGNsYXNzIGFuZCBwcm92aWRlIGEgZnVuY3Rpb24KLXRvIHBsb3QgdGhlIGRlc2lyZWQgZGF0YS4gRm9yIGV4YW1wbGUsIGEgIlNwaGVyZSIgcGxvdCB1c2luZyB0aGUgYWJvdmUgQwotZnVuY3Rpb24gd291bGQgbG9vayBsaWtlIHRoaXMgOgotCi08YmxvY2txdW90ZT48cHJlPgotY2xhc3MgU3BoZXJlcyhJbWFnZTNEKToKLSAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBtaW4sIG1heCwgcmFkaXVzPTAuNSk6Ci0gICAgICAgICAgICAgSW1hZ2UzRC5fX2luaXRfXyhzZWxmLCAuLi4gCi0gICAgICAgICAgICAgc2VsZi5mdW5jID0gZnVuYwotICAgICAgICAgICAgIHNlbGYubWluICA9IG1pbgotICAgICAgICAgICAgIHNlbGYubWF4ICA9IG1heAotICAgICAgICAgICAgIHNlbGYucmFkaXVzID0gcmFkaXVzCi0gICAgICBkZWYgZHJhdyhzZWxmKToKLSAgICAgICAgICAgICBzZWxmLm5ld3Bsb3QoKQotICAgICAgICAgICAgIHBsb3Rfc3BoZXJlcyhzZWxmLnAzLHNlbGYuZnVuYyxzZWxmLm1pbixzZWxmLm1heCxzZWxmLnJhZGl1cykKLTwvcHJlPjwvYmxvY2txdW90ZT4KLQotVG8gdXNlIHRoZSBuZXcgaW1hZ2UsIG9uZSBzaW1wbHkgY3JlYXRlcyBhbiBvYmplY3Qgb2YgdGhhdCB0eXBlIGFuZAotbWFuaXB1bGF0ZXMgaXQuICBGb3IgZXhhbXBsZSA6Ci0KLTxibG9ja3F1b3RlPjxwcmU+Ci0+Pj4gcyA9IFNwaGVyZXMoUEUsLTgsLTMuNSkgICAjIENyZWF0ZSBhIG5ldyBpbWFnZQotPj4+IHMucm90ZCg0NSkgICAgICAgICAgICAgICAgIyBSb3RhdGUgaXQgZG93bgotPj4+IHMuem9vbSgyMDApICAgICAgICAgICAgICAgIyBab29tIGluCi0+Pj4gcy5zaG93KCkgICAgICAgICAgICAgICAgICAjIGdlbmVyYXRlIEltYWdlIGFuZCBkaXNwbGF5IGl0Ci0+Pj4gLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLTxjZW50ZXI+Ci08aW1nIHNyYz0iYmlnc2hvY2suZ2lmIj4KLTwvY2VudGVyPgotCi08cD4KLVRodXMsIHdpdGggYSBzaW1wbGUgQyBmdW5jdGlvbiBhbmQgYSBzaW1wbGUgUHl0aG9uIGNsYXNzLCB3ZSBnZXQgYSBsb3QKLW9mIGZ1bmN0aW9uYWxpdHkgZm9yIGZyZWUsIGluY2x1ZGluZyBtZXRob2RzIGZvciBpbWFnZSBtYW5pcHVsYXRpb24sCi1ncmFwaCBhbm5vdGF0aW9uLCBhbmQgZGlzcGxheS4gIEluIHRoZSBjdXJyZW50IHN5c3RlbSwgdGhlcmUgYXJlIGFib3V0Ci1hIGRvemVuIGRpZmZlcmVudCB0eXBlcyBvZiBpbWFnZXMgZm9yIDJEIGFuZCAzRCBwbG90dGluZy4gIEl0IGlzIGFsc28KLXBvc3NpYmxlIHRvIHBlcmZvcm0gZmlsdGVyaW5nLCBhcHBseSBjbGlwcGluZyBwbGFuZXMsIGFuZCBvdGhlcgotYWR2YW5jZWQgb3BlcmF0aW9ucy4gICAgTW9zdCBvZiB0aGlzIGlzIHN1cHBvcnRlZCBieSBhYm91dCAyMDAwIGxpbmVzIG9mCi1QeXRob24gY29kZSBhbmQgYSByZWxhdGl2ZWx5IHNtYWxsIEMgbGlicmFyeSBjb250YWluaW5nIHBlcmZvcm1hbmNlCi1jcml0aWNhbCBvcGVyYXRpb25zLgotCi08aDM+IFdlYi1CYXNlZCBTaW11bGF0aW9uIE1vbml0b3JpbmcgPC9oMz4KLQotT25lIGZlYXR1cmUgb2YgbWFueSBwaHlzaWNzIGNvZGVzIGlzIHRoYXQgdGhleSB0ZW5kIHRvIHJ1biBmb3IgYSBsb25nCi10aW1lLiAgSW4gb3VyIGNhc2UsIGEgc2ltdWxhdGlvbiBtYXkgcnVuIGZvciB0ZW5zIHRvIGh1bmRyZWRzIG9mCi1ob3Vycy4gIER1cmluZyB0aGUgY291cnNlIG9mIGEgc2ltdWxhdGlvbiwgaXQgaXMgZGVzaXJhYmxlIHRvIGNoZWNrIG9uCi1pdHMgc3RhdHVzIGFuZCBzZWUgaG93IGl0IGlzIHByb2dyZXNzaW5nLiAgR2l2ZW4gdGhlIHN0cm9uZyBJbnRlcm5ldAotc3VwcG9ydCBhbHJlYWR5IGJ1bmRsZWQgd2l0aCBQeXRob24sIHdlIGRlY2lkZWQgdG8gd3JpdGUgYSBzaW1wbGUKLXBoeXNpY3Mgd2ViLXNlcnZlciB0aGF0IGNvdWxkIGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4gIFVubGlrZSBhCi1tb3JlIHRyYWRpdGlvbmFsIHNlcnZlciwgb3VyIHNlcnZlciBpcyB1c2VkIGJ5ICJyZWdpc3RlcmluZyIgdmFyaW91cwotb2JqZWN0cyB0aGF0IG9uZSB3YW50cyB0byBsb29rIGF0IGR1cmluZyB0aGUgY291cnNlIG9mIGEgc2ltdWxhdGlvbi4KLVRoZSBzaW11bGF0aW9uIGNvZGUgdGhlbiBwZXJpb2RpY2FsbHkgcG9sbHMgYSBuZXR3b3JrIHNvY2tldCB0byBzZWUgaWYKLWFueW9uZSBoYXMgcmVxdWVzdGVkIGFueXRoaW5nLiAgSWYgc28sIHRoZSBzaW11bGF0aW9uIHdpbGwgc3RvcCBmb3IgYQotbW9tZW50LCBnZW5lcmF0ZSB0aGUgcmVxdWVzdGVkIGluZm9ybWF0aW9uLCBzZW5kIGl0IHRvIHRoZSB1c2VyLCBhbmQKLXRoZW4gY29udGludWUgb24gd2l0aCB0aGUgY2FsY3VsYXRpb24uICBBIHNpbXBsaWZpZWQgZXhhbXBsZSBvZiB1c2luZwotdGhlIHNlcnZlciBpcyBhcyBmb2xsb3dzIDoKLQotPGJsb2NrcXVvdGU+IDxwcmU+Ci0jIFNpbXBsaWZpZWQgc2NyaXB0IHVzaW5nIGEgd2ViLXNlcnZlcgotZnJvbSB2aXMgaW1wb3J0ICoKLWZyb20gd2ViIGltcG9ydCAqCi0KLXdlYiA9IFNQYVNNV2ViKCkKLXdlYi5hZGQoV2ViTWFpbigiIikpCi13ZWIuYWRkKFdlYkZpbGVUZXh0KCJNc2ciK2BydW5fbm9gKSkKLQotIyBDcmVhdGUgYW4gaW1hZ2Ugb2JqZWN0Ci0KLXNldF9ncmFwaGljc19tb2RlKEhUVFApCi1rZSA9IFNwaGVyZXMoS0UsMCwyMCkKLWtlLnRpdGxlID0gIktpbmV0aWMgRW5lcmd5Igotd2ViLmFkZChXZWJJbWFnZSgia2UuZ2lmIixrZSkpCi0KLWRlZiBydW4obnN0ZXBzKToKLQlmb3IgaSBpbiB4cmFuZ2UoMCxuc3RlcHMpOgotCQlpbnRlZ3JhdGUoMSkgICAgICAgICAgICMgSW50ZWdyYXRlIDEgdGltZXN0ZXAKLSAgICAgICAgICAgICAgICB3ZWIucG9sbCgpICAgICAgICAgICAgICMgQW55b25lIGxvb2tpbmcgZm9yIG1lPwotCi0jIFJ1biBpdAotcnVuKDEwMDAwKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotCi1XaGlsZSBzaW1wbGUsIHRoaXMgZXhhbXBsZSBnaXZlcyB0aGUgYmFzaWMgaWRlYS4gV2UgY3JlYXRlIGEKLXNlcnZlciBvYmplY3QgYW5kIHJlZ2lzdGVyIGEgZmV3ICJsaW5rcy4iICBXaGVuIGEgdXNlciBjb25uZWN0cyB3aXRoCi10aGUgc2VydmVyLCB0aGV5IHdpbGwgYmUgcHJlc2VudGVkIHdpdGggc29tZSBzdGF0dXMgaW5mb3JtYXRpb24gYW5kIGEKLWxpc3Qgb2YgYXZhaWxhYmxlIGxpbmtzLiAgV2hlbiB0aGUgbGlua3MgYXJlIGFjY2Vzc2VkLCB0aGUgc2VydmVyCi1mZWVkcyByZWFsLXRpbWUgZGF0YSBiYWNrIHRvIHRoZSB1c2VyLiAgSW4gdGhlIGNhc2Ugb2YKLWltYWdlcywgdGhleSBhcmUgZ2VuZXJhdGVkIGltbWVkaWF0ZWx5IGFuZCBzZW50IGJhY2sgaW4gR0lGIGZvcm1hdC4gRHVyaW5nCi10aGlzIHByb2Nlc3MsIG5vIHRlbXBvcmFyeSBmaWxlcyBhcmUgY3JlYXRlZCwgbm9yIGlzIHRoZSBzZXJ2ZXIKLXRyYW5zbWl0dGluZyBwcmV2aW91c2x5IHN0b3JlZCBpbmZvcm1hdGlvbiAoaS5lLiBldmVyeXRoaW5nIGlzIAotY3JlYXRlZCBvbi10aGUtZmx5KS4gCi0KLTxwPgotV2hpbGUgd2UgYXJlIHN0aWxsIHJlZmluaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiwgdGhpcyBhcHByb2FjaCBoYXMgdHVybmVkCi1vdXQgdG8gYmUgdXNlZnVsLS1ub3Qgb25seSBjYW4gd2UgcGVyaW9kaWNhbGx5IGNoZWNrIHVwCi1vbiBhIHJ1bm5pbmcgc2ltdWxhdGlvbiwgdGhpcyBjYW4gY2FuIGJlIGRvbmUgZnJvbSBhbnkgbWFjaGluZSB0aGF0Ci1oYXMgYSBXZWItYnJvd3NlciwgaW5jbHVkaW5nIFBDcyBhbmQgTWFjcyBydW5uaW5nIG92ZXIgYSBtb2RlbSBsaW5lCi0oYWxsb3dpbmcgYSBib3JlZCBwaHlzaWNpc3QgdG8gY2hlY2sgb24gbG9uZy1ydW5uaW5nIGpvYnMgZnJvbSBob21lCi1vciB3aGlsZSBvbiB0cmF2ZWwpLiAgT2YgY291cnNlLCB0aGUgbW9zdCBhbWF6aW5nIGZhY3Qgb2YgYWxsIGlzIHRoYXQKLXRoaXMgd2FzIGltcGxlbWVudGVkIGJ5IG9uZSBwZXJzb24gaW4gYW4gYWZ0ZXJub29uIGFuZCBvbmx5IGludm9sdmVkCi1hYm91dCAxNTAgbGluZXMgb2YgUHl0aG9uIGNvZGUgKHdpdGggZ2VuZXJvdXMgaGVscCBmcm9tIHRoZSBQeXRob24gbGlicmFyeSkuCi0KLTxoMz4gRGV2ZWxvcG1lbnQgU3VwcG9ydCA8L2gzPgotCi1GaW5hbGx5LCB3ZSBoYXZlIGZvdW5kIFB5dGhvbiB0byBiZSBxdWl0ZSB1c2VmdWwgZm9yIHN1cHBvcnRpbmcKLXRoZSBmdXR1cmUgZGV2ZWxvcG1lbnQgb2Ygb3VyIGNvZGUuICBTb21lIG9mIHRoaXMgY29tZXMgaW4gdGhlIGZvcm0gb2YKLXNvcGhpc3RpY2F0ZWQgZGVidWdnaW5nLS1QeXRob24gY2FuIGJlIHVzZWQgdG8gYW5hbHl6ZSBpbnRlcm5hbCBkYXRhCi1zdHJ1Y3R1cmVzIGFuZCB0cmFjayBkb3duIHByb2JsZW1zLiAgU2luY2UgUHl0aG9uIGNhbiByZWFkCi1hbmQgbW9kaWZ5IG1vc3Qgb2YgdGhlIGNvcmUgQyBkYXRhIHN0cnVjdHVyZXMsIGl0IGlzIHBvc3NpYmxlIHRvCi1wcm90b3R5cGUgbmV3IGZ1bmN0aW9ucyBvciB0byBwZXJmb3JtIG9uZS10aW1lIG9wZXJhdGlvbnMgd2l0aG91dCBldmVyCi1sb2FkaW5nIHVwIHRoZSBDIGNvbXBpbGVyLgotCi08cD4KLVdlIGhhdmUgYWxzbyB1c2VkIFB5dGhvbiBpbiBjb25qdW5jdGlvbiB3aXRoIGNvZGUKLW1hbmFnZW1lbnQuIE9uZSBvZiB0aGUgbmV3ZXIgcHJvYmxlbXMgd2UgaGF2ZSBmYWNlZCBpcyB0aGUgdGFzayBvZgotZmluZGluZyB0aGUgZGVmaW5pdGlvbnMgb2YgQyBmdW5jdGlvbnMgKGZvciBleGFtcGxlLCAKLXdlIG1pZ2h0IHdhbnQgdG8ga25vdyBob3cgYSBwYXJ0aWN1bGFyIGNvbW1hbmQgaGFzIGJlZW4KLWltcGxlbWVudGVkIGluIEMpLiAgVG8gc3VwcG9ydCB0aGlzLCB3ZSBoYXZlIHdyaXR0ZW4gdG9vbHMgZm9yCi1icm93c2luZyBzb3VyY2UgZGlyZWN0b3JpZXMsIGRpc3BsYXlpbmcgZGVmaW5pdGlvbnMsIGFuZCBzcGF3bmluZwotZWRpdG9ycy4gIEFsbCBvZiB0aGlzIGlzIGltcGxlbWVudGVkIGluIFB5dGhvbiBhbmQgY2FuIGJlIHBlcmZvcm1lZAotZGlyZWN0bHkgZnJvbSB0aGUgUGh5c2ljcyBhcHBsaWNhdGlvbi4gIFB5dGhvbiBoYXMgbWFkZSB0aGVzZSBraW5kcwotb2YgdG9vbHMgdmVyeSBlYXN5IHRvIHdyaXRlLS1vZnRlbiBvbmx5IHJlcXVpcmluZyBhIGZldyBob3VycyBvZgotZWZmb3J0LgotCi08aDI+IFB5dGhvbiBhbmQgdGhlIERldmVsb3BtZW50IG9mIFNjaWVudGlmaWMgU29mdHdhcmUgPC9oMj4KLQotVGhlIGFkb3B0aW9uIG9mIFB5dGhvbiBoYXMgaGFkIGEgcHJvZm91bmQgZWZmZWN0IG9uIHRoZSBvdmVyYWxsCi1zdHJ1Y3R1cmUgb2Ygb3VyIGFwcGxpY2F0aW9uLiAgV2l0aCB0aW1lLCB0aGUgY29kZSBiZWNhbWUgbW9yZQotbW9kdWxhciwgbW9yZSByZWxpYWJsZSwgYW5kIGJldHRlciBvcmdhbml6ZWQuICAgCi1GdXJ0aGVybW9yZSwgdGhlc2UgZ2FpbnMgaGF2ZSBiZWVuIGFjaGlldmVkCi13aXRob3V0IHNpZ25pZmljYW50IGxvc3NlcyBpbiBwZXJmb3JtYW5jZSwgaW5jcmVhc2VkIGNvZGluZyBjb21wbGV4aXR5LAotb3Igc3Vic3RhbnRpYWxseSBpbmNyZWFzZWQgZGV2ZWxvcG1lbnQgY29zdC4gICBJdCBzaG91bGQgYWxzbyBiZSBzdHJlc3NlZAotdGhhdCBhdXRvbWF0ZWQgdG9vbHMgc3VjaCBhcyBTV0lHIGhhdmUgcGxheWVkIGEgY3JpdGljYWwgcm9sZSBpbiB0aGlzCi1lZmZvcnQgYnkgaGlkaW5nIHRoZSBQeXRob24tQyBpbnRlcmZhY2UgYW5kIGFsbG93aW5nIHVzIHRvIGNvbmNlbnRyYXRlCi1vbiB0aGUgcmVhbCBwcm9ibGVtcyBhdCBoYW5kIChpLmUuIHBoeXNpY3MpLiAgCi0KLTxwPgotT25lIHBvaW50LCB0aGF0IHdlIHdvdWxkIGxpa2UgdG8gc3Ryb25nbHkgZW1waGFzaXplLCBpcyB0aGUgZHluYW1pYwotbmF0dXJlIG9mIG1hbnkgc2NpZW50aWZpYyBhcHBsaWNhdGlvbnMuICBPdXIgYXBwbGljYXRpb24gaXMgbm90IGEgaHVnZQotbW9ub2xpdGhpYyBwYWNrYWdlIHRoYXQgbmV2ZXIgY2hhbmdlcyBhbmQgd2hpY2ggbm8gb25lIGlzIHN1cHBvc2VkIHRvCi1tb2RpZnkuICBSYXRoZXIsIHRoZSBjb2RlIGlzIDxlbT5jb25zdGFudGx5PC9lbT4gY2hhbmdpbmcgdG8gZXhwbG9yZQotbmV3IHByb2JsZW1zLCB0cnkgbmV3IG51bWVyaWNhbCBtZXRob2RzLCBvciB0byBwcm92aWRlIGJldHRlcgotcGVyZm9ybWFuY2UuICBUaGUgaGlnaGx5IG1vZHVsYXIgbmF0dXJlIG9mIFB5dGhvbiB3b3JrcyBncmVhdCBpbgotdGhpcyBlbnZpcm9ubWVudC4gIFdlIHByb3ZpZGUgYSBjb21tb24gcmVwb3NpdG9yeSBvZiBtb2R1bGVzIHRoYXQgYXJlIHNoYXJlZCBieSBhbGwKLW9mIHRoZSB1c2VycyBvZiB0aGUgc3lzdGVtLiAgRGlmZmVyZW50IHVzZXJzIGFyZSB0eXBpY2FsbHkgcmVzcG9uc2libGUKLWZvciBkaWZmZXJlbnQgbW9kdWxlcyBhbmQgYWxsIHVzZXJzIG1heSBiZSB3b3JraW5nIG9uIGRpZmZlcmVudCBtb2R1bGVzCi1hdCB0aGUgc2FtZSB0aW1lLiAKLVdoZW5ldmVyIGNoYW5nZXMgdG8gYSBtb2R1bGUgYXJlIG1hZGUsIHRoZXkgYXJlIGltbWVkaWF0ZWx5IHByb3BhZ2F0ZWQKLXRvIGV2ZXJ5b25lIGVsc2UuICBJbiB0aGUgY2FzZSBvZiBidWctZml4ZXMsIHRoaXMgbWVhbnMgdGhhdCBwYXRjaGVkCi12ZXJzaW9ucyBvZiBjb2RlIGFyZSBhdmFpbGFibGUgaW1tZWRpYXRlbHkuICBMaWtld2lzZSwgbmV3Ci1mZWF0dXJlcyBzaG93IHVwIGF1dG9tYXRpY2FsbHkgYW5kIGNhbiBiZSBlYXNpbHkgdGVzdGVkIGJ5IGV2ZXJ5b25lLgotQW5kIG9mIGNvdXJzZSwgaWYgc29tZXRoaW5nIGJyZWFrcy0tb3RoZXJzIHRlbmQgdG8gbm90aWNlIGFsbW9zdCBpbW1lZGlhdGVseQotKHdoaWNoIHdlIGZlZWwgaXMgYSBnb29kIHRoaW5nKS4KLQotPGgyPiBMaW1pdGF0aW9ucyBvZiBQeXRob24gPC9oMj4KLQotV2hpbGUgd2UgY29uc2lkZXIgb3VyIFB5dGhvbiAiZXhwZXJpbWVudCIgdG8gYmUgaGlnaGx5IHN1Y2Nlc3NmdWwsIHdlCi1oYXZlIGV4cGVyaWVuY2VkIGEgbnVtYmVyIG9mIHByb2JsZW1zIGFsb25nIHRoZSB3YXkuICBUaGUgZmlyc3QgaXMKLW1lcmVseSBhIHRlY2huaWNhbCBpc3N1ZS0taXQgd291bGQgYmUgbmljZSBpZiB0aGUgbWVjaGFuaXNtIGZvcgotYnVpbGRpbmcgc3RhdGljIGV4dGVuc2lvbnMgdG8gUHl0aG9uIHdlcmUgbWFkZSBlYXNpZXIuICBXaGlsZSB3ZSBhcmUKLWN1cnJlbnRseSB1c2luZyBkeW5hbWljIGxvYWRpbmcsIG1hbnkgbWFjaGluZXMsIGVzcGVjaWFsbHkKLXN1cGVyY29tcHV0aW5nIHN5c3RlbXMsIGRvIG5vdCBzdXBwb3J0IGl0LiAgT24gdGhlc2UgbWFjaGluZXMgaXQgaXMKLW5lY2Vzc2FyeSB0byBzdGF0aWNseSBsaW5rIGV2ZXJ5dGhpbmcuICBMaWJyYXJpZXMgaGVscCBzaW1wbGlmeSB0aGUKLXRhc2ssIGJ1dCBjb21iaW5pbmcgZGlmZmVyZW50IHN0YXRpY2FsbHkgbGlua2VkIG1vZHVsZXMgdG9nZXRoZXIgaW50bwotYSBzaW5nbGUgUHl0aG9uIGludGVycHJldGVyIHN0aWxsIHJlbWFpbnMgbWFnaWNhbCBhbmQgc29tZXdoYXQKLXByb2JsZW1hdGljIChlc3BlY2lhbGx5IHNpbmNlIHdlIGFyZSBjcmVhdGluZyBhbiBhcHBsaWNhdGlvbiB0aGF0Ci1jaGFuZ2VzIGEgbG90LS1ub3QgbWVyZWx5IHRyeWluZyB0byBwYXRjaCB0aGUgUHl0aG9uIGNvcmUgd2l0aCBhIG5ldwotZXh0ZW5zaW9uIG1vZHVsZSkuCi0KLTxwPgotQSBzZWNvbmQgcHJvYmxlbSBpcyB0aGF0IG9mIGVkdWNhdGlvbi0td2UgaGF2ZSBmb3VuZCB0aGF0IHNvbWUgdXNlcnMKLWhhdmUgYSB2ZXJ5IGRpZmZpY3VsdCB0aW1lIG1ha2luZyBzZW5zZSBvZiB0aGUgc3lzdGVtIChldmVuIHdlJ3JlCi1zb21ld2hhdCBhbWF6ZWQgdGhhdCBpdCByZWFsbHkgd29ya3MpLgotSW50ZXJlc3RpbmdseSBlbm91Z2gsIHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBkaXJlY3RseSByZWxhdGVkIHRvIHRoZQotdXNlIG9mIEMgY29kZSBvciBQeXRob24gZm9yIHRoYXQgbWF0dGVyLCBidXQgdG8gaXNzdWVzIHJlbGF0ZWQgdG8gdGhlCi1jb25maWd1cmF0aW9uLCBjb21waWxhdGlvbiwgZGVidWdnaW5nLCBhbmQgaW5zdGFsbGF0aW9uIG9mIG1vZHVsZXMuICBXaGlsZSBtb3N0Ci11c2VycyBoYXZlIHdyaXR0ZW4gcHJvZ3JhbXMgYmVmb3JlLCB0aGV5IGhhdmUgbmV2ZXIgZGVhbHQgd2l0aCBzaGFyZWQKLWxpYnJhcmllcywgYXV0b21hdGVkIGNvZGUgZ2VuZXJhdG9ycywgaGlnaC1sZXZlbCBsYW5ndWFnZXMsIGFuZCB0aGlyZC1wYXJ0eSBwYWNrYWdlcwotc3VjaCBhcyBQeXRob24uICBJbiBvdGhlciBjYXNlcywgdGhlcmUgc2VlbXMgdG8gYmUgYQotImZlYXIgb2YgYXV0b2NvbmYiLS1pZiBhIHByb2dyYW0gcmVxdWlyZXMgYSBjb25maWd1cmUgc2NyaXB0LCBpdCBtdXN0Ci1iZSB0b28gY29tcGxpY2F0ZWQgdG8gdW5kZXJzdGFuZCAod2hpY2ggaXMgbm90IHRoZSBjYXNlCi1oZXJlKS4gIFRoZSBjb21iaW5hdGlvbiBvZiB0aGVzZQotZmFjdG9ycyBoYXMgbGVkIHNvbWUgdXNlcnMgdG8gYmVsaWV2ZSB0aGF0IHRoZSBzeXN0ZW0gaXMgZmFyIG1vcmUKLWNvbXBsaWNhdGVkIGFuZCBmcmFnaWxlIHRoYW4gaXQgcmVhbGx5IGlzLiAgV2UncmUgbm90IHN1cmUgaG93IHRvIGNvbWJhdAotdGhpcyBwcm9ibGVtIG90aGVyIHRoYW4gdG8gdHJ5IGFuZCBlZHVjYXRlIHRoZSB1c2VycwotKGkuZS4gaXQncyBlc3NlbnRpYWxseSB0aGUgc2FtZSBjb2RlIGFzIGJlZm9yZSwgYnV0IHdpdGggYSByZWFsbHkgY29vbAotaGFjaykuCi0KLTxoMj4gQ29uY2x1c2lvbnMgYW5kIEZ1dHVyZSBXb3JrIDwvaDI+Ci0KLVB5dGhvbiBpcyBjb29sIGFuZCB3ZSBwbGFuIHRvIGtlZXAgdXNpbmcgaXQuIEhvd2V2ZXIgbXVjaCB3b3JrCi1yZW1haW5zLiAgT25lIG9mIHRoZSBtb3JlIGV4Y2l0aW5nIGFzcGVjdHMgb2YgUHl0aG9uIGlzIGl0cyBzb2xpZAotc3VwcG9ydCBmb3IgbW9kdWxhciBwcm9ncmFtbWluZyBhbmQgdGhlIGN1bHR1cmUgb2YgY29vcGVyYXRpb24gaW4gdGhlCi1QeXRob24gY29tbXVuaXR5LiBUaGVyZSBhcmUgYWxyZWFkeSBtYW55IFB5dGhvbi1yZWxhdGVkIHNjaWVudGlmaWMKLWNvbXB1dGluZyBwcm9qZWN0cyB1bmRlcndheS4gIElmIHRoZXNlIGVmZm9ydHMgd2VyZSBjb29yZGluYXRlZCAKLWluIHNvbWUgbWFubmVyLCB3ZSBmZWVsIHRoYXQgdGhlIHJlc3VsdHMgY291bGQgYmUgc3BlY3RhY3VsYXIuCi0KLTxoMj4gQWNrbm93bGVkZ21lbnRzIDwvaDI+Ci0KLVdlIHdvdWxkIGxpa2UgYWNrbm93bGVkZ2Ugb3VyIGNvbGxhYm9yYXRvcnMgQnJhZCBIb2xpYW4sIFRpbSBHZXJtYW5uLCBTaHVqaWEgWmhvdSwgYW5kIFdhbnNodSBIdWFuZyBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkuICBXZSB3b3VsZCBhbHNvIGxpa2UKLXRvIGFja25vd2xlZGdlIFBhdWwgRHVib2lzIGFuZCBCcmlhbiBZYW5nIGF0IExhd3JlbmNlIExpdmVybW9yZQotTmF0aW9uYWwgTGFib3JhdG9yeSBmb3IgbWFueSBpbnRlcmVzdGluZyBjb252ZXJzYXRpb25zIGNvbmNlcm5pbmcgUHl0aG9uCi1hbmQgaXRzIHVzZSBpbiBwaHlzaWNzIGFwcGxpY2F0aW9ucy4gIFdlIHdvdWxkIGFsc28gbGlrZSB0bwotYWNrbm93bGVkZ2UgdGhlIFNjaWVudGlmaWMgQ29tcHV0aW5nIGFuZCBJbWFnaW5nIEdyb3VwIGF0IHRoZQotVW5pdmVyc2l0eSBvZiBVdGFoIGZvciB0aGVpciBjb250aW51ZWQgc3VwcG9ydC4gIEZpbmFsbHksIHdlJ2QgbGlrZSB0bwotdGhhbmsgdGhlIGVudGlyZSBQeXRob24gZGV2ZWxvcG1lbnQgY29tbXVuaXR5IGZvciBtYWtpbmcgYSB0cnVseQotYXdlc29tZSB0b29sIGZvciBzb2x2aW5nIHJlYWwgcHJvYmxlbXMuICBEZXZlbG9wbWVudCBvZiB0aGUgU1BhU00gY29kZQotaGFzIGJlZW4gcGVyZm9ybWVkIHVuZGVyIHRoZSBhdXNwaWNlcyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBEZXBhcnRtZW50Ci1vZiBFbmVyZ3kuCi0KLTxoMj4gUmVmZXJlbmNlcyA8L2gyPgotCi08cD4KLVsxXSBELk0uQmVhemxleSBhbmQgUC5TLiBMb21kYWhsLCAiTWVzc2FnZQotUGFzc2luZyBNdWx0aS1DZWxsIE1vbGVjdWxhciBEeW5hbWljcyBvbiB0aGUgQ29ubmVjdGlvbiBNYWNoaW5lIDUsIgotUGFyYWxsZWwgQ29tcHV0aW5nIDIwICgxOTk0KSwgcC4gMTczLTE5NS4gPHA+Ci0KLTxwPgotWzJdIFAuUy5Mb21kYWhsLCBQLlRhbWF5bywgTi5Hcm9uYmVjaC1KZW5zZW4sCi1hbmQgRC5NLkJlYXpsZXksICI1MCBHZmxvcHMgTW9sZWN1bGFyIER5bmFtaWNzIG9uIHRoZSBDTS01LCIgUHJvY2VlZGluZ3MKLW9mIFN1cGVyY29tcHV0aW5nIDkzLCBJRUVFIENvbXB1dGVyIFNvY2lldHkgKDE5OTMpLCBwLjUyMC01MjcuIDxwPgotCi08cD4KLVszXSBTLkouWmhvdSwgRC5NLiBCZWF6bGV5LCBQLlMuIExvbWRhaGwsIEIuTC4gSG9saWFuLCBQaHlzaWNhbCBSZXZpZXcKLUxldHRlcnMuIDc4LCA0NzkgKDE5OTcpLgotCi08cD4KLVs0XSBQLiBEdWJvaXMsIEsuIEhpbnNlbiwgYW5kIEouIEh1Z3VuaW4sIENvbXB1dGVycyBpbiBQaHlzaWNzICgxMCksICgxOTk2KQotcC4gMjYyLTI2Ny4KLQotPHA+Ci1bNV0gRC4gTS4gQmVhemxleSBhbmQgUC5TLiBMb21kYWhsLCAiRXh0ZW5zaWJsZSBNZXNzYWdlIFBhc3NpbmcgQXBwbGljYXRpb24KLURldmVsb3BtZW50IGFuZCBEZWJ1Z2dpbmcgd2l0aCBQeXRob24iLCBQcm9jZWVkaW5ncyBvZiBJUFBTJzk3LCBHZW5ldmEKLVN3aXR6ZXJsYW5kLCBJRUVFIENvbXB1dGVyIFNvY2lldHkgKDE5OTcpLgotCi08cD4KLVs2XSBULi1ZLkIuIFlhbmcsIEQuTS4gQmVhemxleSwgUC4gRi4gRHVib2lzLCBHLiBGdXJuaXNoLCAiU3RlZXJpbmcgT2JqZWN0LW9yaWVudGVkIENvbXB1dGF0aW9ucyB3aXRoCi1QeXRob24iLCBQeXRob24gV29ya3Nob3AgNSwgV2FzaGluZ3RvbiBELkMuLCBOb3YuIDQtNSwgMTk5Ni4KLQotPHA+Ci1bN10gRC5NLiBCZWF6bGV5IGFuZCBQLlMuIExvbWRhaGwsICJIaWdoCi1QZXJmb3JtYW5jZSBNb2xlY3VsYXIgRHluYW1pY3MgTW9kZWxpbmcgd2l0aCBTUGFTTSA6IFBlcmZvcm1hbmNlIGFuZAotUG9ydGFiaWxpdHkgSXNzdWVzLCIgUHJvY2VlZGluZ3Mgb2YgdGhlIFdvcmtzaG9wIG9uIERlYnVnZ2luZyBhbmQKLVR1bmluZyBmb3IgUGFyYWxsZWwgQ29tcHV0ZXIgU3lzdGVtcywgQ2hhdGhhbSwgTUEsIDE5OTQgKElFRUUgQ29tcHV0ZXIKLVNvY2lldHkgUHJlc3MsIExvcyBBbGFtaXRvcywgQ0EsIDE5OTYpLCBwcC4gMzM3LTM1MS4KLQotPHA+Ci1bOF0gRC5NLiBCZWF6bGV5LCAiVXNpbmcgU1dJRyB0byBDb250cm9sLCBQcm90b3R5cGUsIGFuZCBEZWJ1ZyBDIFByb2dyYW1zIHdpdGggUHl0aG9uIiwKLVByb2NlZWRpbmdzIG9mIHRoZSA0dGggSW50ZXJuYXRpb25hbCBQeXRob24gQ29uZmVyZW5jZSwgTGF3cmVuY2UgTGl2ZXJtb3JlIAotTmF0aW9uYWwgTGFib3JhdG9yeSwgSnVuZSAzLTYsIDE5OTYuIAotCi08cD4KLVs5XSBLLiBIaW5zZW4sIFRoZSBNb2xlY3VsYXIgTW9kZWxpbmcgVG9vbGtpdCwgPHR0Pmh0dHA6Ly9zdGFyc2hpcC5za3lwb3J0Lm5ldC9jcmV3L2hpbnNlbi9tbXRrLmh0bWw8L3R0PgotCi08cD4KLVsxMF0gSmltIEh1Z3VuaW4sIE51bWVyaWMgUHl0aG9uLCA8dHQ+aHR0cDovL3d3dy5zbHMubGNzLm1pdC5lZHUvampoL251bXB5PC90dD4KLQotPHA+Ci1bMTFdIEZyZWRyaWsgTHVuZGgsIFB5dGhvbiBJbWFnaW5nIExpYnJhcnksIDx0dD5odHRwOi8vd3d3LnB5dGhvbi5vcmcvc2lncy9pbWFnZS1zaWcvSW1hZ2luZy5odG1sPC90dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcGFwZXJzL1B5OTcvYmlnc2hvY2suZ2lmIGIvc3dpZ3dlYi9wYXBlcnMvUHk5Ny9iaWdzaG9jay5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGE4MGRlNDQuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9wYXBlcnMvUHk5Ny9iaWdzaG9jay5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9QeTk3L2JpZ3Nob2NrcmF3LmdpZiBiL3N3aWd3ZWIvcGFwZXJzL1B5OTcvYmlnc2hvY2tyYXcuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBlMmJmYjk5Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcGFwZXJzL1B5OTcvYmlnc2hvY2tyYXcuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvUHlUdXRvcmlhbDk3L1B5VHV0b3JpYWw5Ny5wZGYgYi9zd2lnd2ViL3BhcGVycy9QeVR1dG9yaWFsOTcvUHlUdXRvcmlhbDk3LnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZhYzQwMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9QeVR1dG9yaWFsOTcvUHlUdXRvcmlhbDk3LnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2Ly5+bmV3dGNsLmh0bWwgYi9zd2lnd2ViL3BhcGVycy9UY2w5Ni8ufm5ld3RjbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBhZjI2NTUxLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2Ly5+bmV3dGNsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDg0ICswLDAgQEAKLTxodG1sPgotPHRpdGxlPiBTV0lHIDogQW4gRWFzeSB0byBVc2UgVG9vbCBGb3IgSW50ZWdyYXRpbmcgU2NyaXB0aW50IExhbmd1YWdlcyAKLXdpdGggQyBhbmQgQysrIDwvdGl0bGU+Ci08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxoMT4KLVNXSUcgOiBBbiBFYXN5IHRvIFVzZSBUb29sIGZvciBJbnRlZ3JhdGluZyBTY3JpcHRpbmcgTGFuZ3VhZ2VzICB3aXRoIEMgYW5kIEMrKwotPC9oMT4KLQotPGI+IERhdmlkIE0uIEJlYXpsZXkgPC9iPiA8YnI+Ci08ZW0+IERlcGFydG1lbnQgb2YgQ29tcHV0ZXIgU2NpZW5jZSA8YnI+Ci1Vbml2ZXJzaXR5IG9mIFV0YWggPGJyPgotU2FsdCBMYWtlIENpdHksIFV0YWggODQxMTIgPGJyPgotYmVhemxleUBjcy51dGFoLmVkdSA8YnI+IDwvZW0+Ci0KLTxicj4gPGJyPgotKFRvIGJlIHByZXNlbnRlZCBhdCB0aGUgNHRoIEFubnVhbCBUY2wvVGsgV29ya3Nob3AsIE1vbnRlcmV5LCBDQS4gSnVseSA2LTEwLCAxOTk2LiApCi0KLTxoMj4gQWJzdHJhY3QgPC9oMj4KLQotPGVtPgotSSBwcmVzZW50IFNXSUcgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvciksIGEKLXByb2dyYW0gZGV2ZWxvcG1lbnQgdG9vbCB0aGF0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHRoZSBiaW5kaW5ncwotYmV0d2VlbiBDL0MrKyBjb2RlIGFuZCBjb21tb24gc2NyaXB0aW5nIGxhbmd1YWdlcyBpbmNsdWRpbmcKLVRjbCwgUHl0aG9uLCBQZXJsIGFuZCBHdWlsZS4gIFNXSUcgc3VwcG9ydHMgbW9zdCBDL0MrKyBkYXRhdHlwZXMKLWluY2x1ZGluZyBwb2ludGVycywgc3RydWN0dXJlcywgYW5kIGNsYXNzZXMuCi1Vbmxpa2UgbWFueSBvdGhlciBhcHByb2FjaGVzLCBTV0lHCi11c2VzIEFOU0kgQy9DKysgZGVjbGFyYXRpb25zIGFuZCByZXF1aXJlcyB0aGUgdXNlciB0byBtYWtlIHZpcnR1YWxseQotbm8gbW9kaWZpY2F0aW9ucyB0byB0aGUgdW5kZXJseWluZyBDIGNvZGUuCi1JbiBhZGRpdGlvbiwgU1dJRyBhdXRvbWF0aWNhbGx5Ci1wcm9kdWNlcyBkb2N1bWVudGF0aW9uIGluIEhUTUwsIExhVGVYLCBvciBBU0NJSSBmb3JtYXQuCi1TV0lHIGhhcyBiZWVuIHByaW1hcmlseSBkZXNpZ25lZCBmb3Igc2NpZW50aXN0cywgZW5naW5lZXJzLCBhbmQgYXBwbGljYXRpb24KLWRldmVsb3BlcnMgd2hvIHdvdWxkIGxpa2UgdG8gdXNlIHNjcmlwdGluZyBsYW5ndWFnZXMgd2l0aCB0aGVpciBDL0MrKyBwcm9ncmFtcwotd2l0aG91dCB3b3JyeWluZyBhYm91dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzCi1vZiBlYWNoIGxhbmd1YWdlIG9yIHVzaW5nIGEgY29tcGxpY2F0ZWQgc29mdHdhcmUgZGV2ZWxvcG1lbnQgdG9vbC4KLVRoaXMgcGFwZXIgY29uY2VudHJhdGVzIG9uIFNXSUcncyB1c2Ugd2l0aCBUY2wvVGsuCi08L2VtPgotCi08aDI+IDEuIEludHJvZHVjdGlvbiA8L2gyPgotU1dJRyAoU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yKQotaXMgYSBzb2Z0d2FyZQotZGV2ZWxvcG1lbnQgdG9vbCB0aGF0IEkgbmV2ZXIgaW50ZW5kZWQgdG8gZGV2ZWxvcC4gICBBdCB0aGUgdGltZSwKLUkgd2FzIHRyeWluZyB0byBhZGQgYSBkYXRhIGFuYWx5c2lzIGFuZCB2aXN1YWxpemF0aW9uIGNhcGFiaWxpdHkgdG8KLWEgbW9sZWN1bGFyIGR5bmFtaWNzIChNRCkgY29kZSBJIGhhZCBoZWxwZWQgZGV2ZWxvcCBmb3IgbWFzc2l2ZWx5Ci1wYXJhbGxlbCBzdXBlcmNvbXB1dGVycyBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkgW0JlYXpsZXksTG9tZGFobF0uICBJIHdhbnRlZAotdG8gcHJvdmlkZSBhIHNpbXBsZSwgeWV0IGZsZXhpYmxlIHVzZXIgaW50ZXJmYWNlIHRoYXQgY291bGQgYmUgdXNlZAotdG8gZ2x1ZSB2YXJpb3VzIGNvZGUgbW9kdWxlcyB0b2dldGhlciBhbmQgYW4gZXh0ZW5zaWJsZSBzY3JpcHRpbmcKLWxhbmd1YWdlIHNlZW1lZCBsaWtlIGFuIGlkZWFsIHNvbHV0aW9uLiBVbmZvcnR1bmF0ZWx5IHRoZXJlIHdlcmUgY29uc3RyYWludHMuCi1GaXJzdCwgSSBkaWRuJ3Qgd2FudCB0byBoYWNrIHVwIDQteWVhcnMgb2YgY29kZSBkZXZlbG9wbWVudCB0cnlpbmcgdG8KLWZpdCBvdXIgTUQgY29kZSBpbnRvIHlldCBhbm90aGVyIGludGVyZmFjZSBzY2hlbWUgKGhhdmluZyBkb25lIHNvIHNldmVyYWwKLXRpbWVzIGFscmVhZHkpLiAgU2Vjb25kbHksIHRoaXMgY29kZQotd2FzIHJvdXRpbmVseSBydW4gb24gc3lzdGVtcyByYW5naW5nIGZyb20gQ29ubmVjdGlvbiBNYWNoaW5lcyBhbmQgQ3JheXMgdG8KLXdvcmtzdGF0aW9ucyBhbmQgSSBkaWRuJ3Qgd2FudCB0byBkZXBlbmQgb24gYW55IG9uZQotaW50ZXJmYWNlIGxhbmd1YWdlLS0tb3V0IG9mIGZlYXIgdGhhdCBpdCBtaWdodCBub3QgYmUgc3VwcG9ydGVkIG9uCi1hbGwgb2YgdGhlc2UgcGxhdGZvcm1zLiAgRmluYWxseSwgdGhlIHVzZXJzIHdlcmUgY29uc3RhbnRseSBhZGRpbmcKLW5ldyBjb2RlIGFuZCBtYWtpbmcgbW9kaWZpY2F0aW9ucy4gIEkgbmVlZGVkIGEgZmxleGlibGUsIHlldCBlYXN5IHRvIHVzZQotc3lzdGVtIHRoYXQgZGlkIG5vdCBnZXQgaW4gdGhlIHdheSBvZiB0aGUgcGh5c2ljaXN0cy4gPGJyPiA8YnI+Ci0KLVNXSUcgaXMgbXkgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtLiAgU2ltcGx5IHN0YXRlZCwgU1dJRyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhbGwKLW9mIHRoZSBjb2RlCi1uZWVkZWQgdG8gYmluZCBDL0MrKyBmdW5jdGlvbnMgd2l0aCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHVzaW5nIG9ubHkKLWEgc2ltcGxlIGlucHV0IGZpbGUgY29udGFpbmluZyBDIGZ1bmN0aW9uIGFuZCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCi1BdCBmaXJzdCwgSSBzdXBwb3J0ZWQKLWEgc2NyaXB0aW5nIGxhbmd1YWdlIEkgaGFkIGRldmVsb3BlZCBzcGVjaWZpY2FsbHkgZm9yIHVzZQotb24gbWFzc2l2ZWx5IHBhcmFsbGVsIHN5c3RlbXMuICBMYXRlciBJIGRlY2lkZWQgdG8gcmV3cml0ZSBTV0lHIGluIEMrKyBhbmQgZXh0ZW5kIGl0IHRvIHN1cHBvcnQKLVRjbCwgUHl0aG9uLCBQZXJsLCBHdWlsZSBhbmQgb3RoZXIgbGFuZ3VhZ2VzIHRoYXQgaW50ZXJlc3RlZCBtZS4gICBJIGFsc28KLWFkZGVkIG1vcmUgZGF0YS10eXBlcywgc3VwcG9ydCBmb3IgcG9pbnRlcnMsIEMrKyBjbGFzc2VzLCBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24sIGFuZAotYSBmZXcgb3RoZXIgZmVhdHVyZXMuIDxicj4gPGJyPgotCi1UaGlzIHBhcGVyIHByb3ZpZGVzIGEgYnJpZWYgb3ZlcnZpZXcgb2YgU1dJRyAKLXdpdGggYSBwYXJ0aWN1bGFyIGVtcGhhc2lzIG9uIFRjbC9Uay4gSG93ZXZlciwgdGhlIHJlYWRlciBzaG91bGQKLXJlbWFpbiBhd2FyZSB0aGF0IFNXSUcgd29ya3MgZXF1YWxseSB3ZWxsIHdpdGgKLVBlcmwgYW5kIG90aGVyIGxhbmd1YWdlcy4gSXQgaXMgbm90IG15IGludGVudCB0byBwcm92aWRlCi1hIHR1dG9yaWFsIG9yIGEgdXNlcidzIGd1aWRlLCBidXQgcmF0aGVyIHRvIHNob3cKLWhvdyBTV0lHIGNhbiBiZSB1c2VkIHRvIGRvIGludGVyZXN0aW5nIHRoaW5ncyBzdWNoIGFzIAotYWRkaW5nIFRjbC9UayBpbnRlcmZhY2VzIHRvIGV4aXN0aW5nIEMgYXBwbGljYXRpb25zLCAKLXF1aWNrbHkgZGVidWdnaW5nIGFuZCBwcm90b3R5cGluZyBDIGNvZGUsCi1hbmQgYnVpbGRpbmcgaW50ZXJmYWNlLWxhbmd1YWdlLWluZGVwZW5kZW50IEMgYXBwbGljYXRpb25zLiAgIAotCi08aDI+IDIuIFRjbCBhbmQgV3JhcHBlciBGdW5jdGlvbnMgPC9oMj4KLQotSW4gb3JkZXIgdG8gYWRkIGEgbmV3IEMgb3IgQysrIGZ1bmN0aW9uIHRvIFRjbCwgaXQgaXMgbmVjZXNzYXJ5IHRvCi13cml0ZSBhIHNwZWNpYWwgYGB3cmFwcGVyJycgZnVuY3Rpb24gdGhhdCBwYXJzZXMgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cwotcHJlc2VudGVkIGFzIEFTQ0lJIHN0cmluZ3MgYnkgdGhlIFRjbCBpbnRlcnByZXRlciBpbnRvIGEgcmVwcmVzZW50YXRpb24KLXRoYXQgY2FuIGJlIHVzZWQgdG8gY2FsbCB0aGUgQyBmdW5jdGlvbi4gICAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50ZWQKLXRvIGFkZCB0aGUgZmFjdG9yaWFsIGZ1bmN0aW9uIHRvIFRjbCwgYSB3cmFwcGVyIGZ1bmN0aW9uIG1pZ2h0Ci1sb29rIGxpa2UgdGhlIGZvbGxvd2luZyA6IDxicj4KLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci1pbnQgd3JhcF9mYWN0KENsaWVudERhdGEgY2xpZW50RGF0YSwKLSAgICAgICAgICAgICAgVGNsX0ludGVycCAqaW50ZXJwLAotICAgICAgICAgICAgICBpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gICAgaW50IHJlc3VsdDsKLSAgICBpbnQgYXJnMDsKLSAgICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgICAgIGludGVycC0+cmVzdWx0ID0gIndyb25nICMgYXJncyI7Ci0gICAgICAgIHJldHVybiBUQ0xfRVJST1I7Ci0gICAgfQotICAgIGFyZzAgPSBhdG9pKGFyZ3ZbMV0pOwotICAgIHJlc3VsdCA9IGZhY3QoYXJnMCk7Ci0gICAgc3ByaW50ZihpbnRlcnAtPnJlc3VsdCwiJWQiLHJlc3VsdCk7Ci0gICAgcmV0dXJuIFRDTF9PSzsKLX0KLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotSW4gYWRkaXRpb24gdG8gd3JpdGluZyB0aGUgd3JhcHBlciBmdW5jdGlvbiwgYSB1c2VyIHdpbGwgYWxzbyBuZWVkIHRvIAotd3JpdGUgY29kZSB0byBhZGQgdGhpcyBmdW5jdGlvbiB0byB0aGUgVGNsIGludGVycHJldGVyLiAgSW4gdGhlIGNhc2Ugb2YKLVRjbCA3LjUsIHRoaXMgY291bGQgYmUgZG9uZSBieSB3cml0aW5nIGFuIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHRvCi1iZSBjYWxsZWQgd2hlbiB0aGUgZXh0ZW5zaW9uIGlzIGxvYWRlZCBkeW5hbWljYWxseS4gICBXaGlsZSB3cml0aW5nCi1hIHdyYXBwZXIgZnVuY3Rpb24gdXN1YWxseSBpcyBub3QgdG9vIGRpZmZpY3VsdCwgdGhlIHByb2Nlc3MgcXVpY2tseQotYmVjb21lcyB0ZWRpb3VzIGFuZCBlcnJvciBwcm9uZSBhcyB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyBpbmNyZWFzZXMuCi1UaGVyZWZvcmUsIGF1dG9tYXRlZCBhcHByb2FjaGVzIGZvciBwcm9kdWNpbmcgd3JhcHBlciBmdW5jdGlvbnMgYXJlCi1hcHBlYWxpbmctLWVzcGVjaWFsbHkgd2hlbiB3b3JraW5nIHdpdGggYSBsYXJnZSBudW1iZXIgb2YgQyBmdW5jdGlvbnMKLW9yIHdpdGggQysrIChpbiB3aGljaCBjYXNlIHRoZSB3cmFwcGVyIGNvZGUgdGVuZHMgdG8gZ2V0IG1vcmUgY29tcGxpY2F0ZWQpLgotCi08aDI+IDMuIFByaW9yIFdvcmsgPC9oMj4KLQotVGhlIGlkZWEgb2YgYXV0b21hdGljYWxseSBnZW5lcmF0aW5nIHdyYXBwZXIgY29kZSBpcyBjZXJ0YWlubHkgbm90IG5ldy4KLVNvbWUgZWZmb3J0cyBzdWNoIGFzCi1JdGNsKyssIE9iamVjdCBUY2wsIG9yIHRoZSBYUyBsYW5ndWFnZSBpbmNsdWRlZCB3aXRoIFBlcmw1LCBwcm92aWRlIGEgbWVjaGFuaXNtIGZvcgotZ2VuZXJhdGluZyB3cmFwcGVyIGNvZGUsIGJ1dCByZXF1aXJlIHRoZSB1c2VyIHRvIHByb3ZpZGUgZGV0YWlsZWQKLXNwZWNpZmljYXRpb25zLCB0eXBlIGNvbnZlcnNpb24gcnVsZXMsIG9yIHVzZSBhIHNwZWNpYWxpemVkCi1zeW50YXggW2hlaWRyaWNoLFdldGhlcmFsbCxwZXJsNV0uICBMYXJnZSBwYWNrYWdlcwotc3VjaCBhcyB0aGUgVmlzdWFsaXphdGlvbiBUb29sa2l0ICh2dGspIG1heSB1c2UgdGhlaXIgb3duIEMvQysrIHRyYW5zbGF0b3JzLAotYnV0IHRoZXNlIGFsbW9zdCBhbHdheXMgdGVuZCB0byBiZSBzb21ld2hhdCBzcGVjaWFsIHB1cnBvc2UgKGluIGZhY3QsIFNXSUcgc3RhcnRlZAotb3V0IGluIHRoaXMgbWFubmVyKSBbdnRrXS4KLUlmIHN1cHBvcnRpbmcgbXVsdGlwbGUgbGFuZ3VhZ2VzIGlzIHRoZSB1bHRpbWF0ZSBnb2FsLCBhIHByb2dyYW1tZXIgbWlnaHQKLWNvbnNpZGVyIGEgcGFja2FnZSBzdWNoIGFzIElMVSBbSmFuc3Nlbl0uIAotVW5mb3J0dW5hdGVseSwKLXRoaXMgcmVxdWlyZXMgdGhlIHVzZXIgdG8gcHJvdmlkZSBzcGVjaWZpY2F0aW9ucyBpbiBJREwtLWEgcHJvY2VzcyB3aGljaAotaXMgdW5hcHBlYWxpbmcgdG8gbWFueSB1c2Vycy4KLVNXSUcgaXMgbm90IG5lY2Vzc2FyaWx5IGludGVuZGVkIHRvIGNvbXBldGUgd2l0aCAKLXRoZXNlIGFwcHJvYWNoZXMsIGJ1dCByYXRoZXIgaXMgZGVzaWduZWQgdG8gYmUgYSBuby1ub25zZW5zZSB0b29sIHRoYXQKLXNjaWVudGlzdHMgYW5kIGVuZ2luZWVycyBjYW4gdXNlIHRvIGVhc2lseSBhZGQgVGNsIGFuZCBvdGhlciBzY3JpcHRpbmcKLWxhbmd1YWdlcyB0byB0aGVpciBvd24gYXBwbGljYXRpb25zLiAgIFNXSUcgaXMgYWxzbyAKLXZlcnkgZGlmZmVyZW50IHRoYW4gRW1iZWRkZWQgVGsgKEVUKSB3aGljaCBhbHNvIGFpbXMgdG8KLXNpbXBsaWZ5IGNvZGUgZGV2ZWxvcG1lbnQgW0VUXS4gVW5saWtlIEVULCBTV0lHIGlzIGRlc2lnbmVkIHRvIAotaW50ZWdyYXRlIEMgZnVuY3Rpb25zIGludG8gVGNsL1RrIGFzIG9wcG9zZWQgdG8gaW50ZWdyYXRpbmcgVGNsL1RrIGludG8KLUMgcHJvZ3JhbXMuCi0KLTxoMj4gNC4gQSBRdWljayBUb3VyIG9mIFNXSUcgPC9oMj4KLQotPGgzPiA0LjEgT3JnYW5pemF0aW9uIDwvaDM+Ci0KLTxjZW50ZXI+Ci08aW1nIGFsdCA9ICJTV0lHIE9yZ2FuaXphdGlvbiIgc3JjPSJmaWcxLmdpZiI+ICA8YnI+Ci1GaWd1cmUgMSA6IFNXSUcgT3JnYW5pemF0aW9uIDxicj4gPGJyPgotPC9jZW50ZXI+Ci0KLUZpZ3VyZSAxIHNob3dzIHRoZSBzdHJ1Y3R1cmUgb2YgU1dJRy4gIEF0IHRoZSBjb3JlIGlzIGEgWUFDQyBwYXJzZXIKLWZvciByZWFkaW5nIGlucHV0IGZpbGVzIGFsb25nIHdpdGggc29tZSB1dGlsaXR5IGZ1bmN0aW9ucy4gCi1UbyBnZW5lcmF0ZSBjb2RlLAotdGhlIHBhcnNlciBjYWxscyBhYm91dCBhIGRvemVuIGZ1bmN0aW9ucyBmcm9tIGEgZ2VuZXJpYyBsYW5ndWFnZQotY2xhc3MgdG8gZG8gdGhpbmdzIGxpa2Ugd3JpdGUgYSB3cmFwcGVyIGZ1bmN0aW9uLCBsaW5rIGEKLXZhcmlhYmxlLCB3cmFwIGEgQysrIG1lbWJlciBmdW5jdGlvbiwgZXRjLi4uICBFYWNoIHRhcmdldCBsYW5ndWFnZSBpcwotaW1wbGVtZW50ZWQgYXMgYSBDKysgY2xhc3MgY29udGFpbmluZyB0aGUgZnVuY3Rpb25zIHRoYXQgZW1pdAotdGhlIHJlc3VsdGluZyBDIGNvZGUuICAgSWYgYW4gYGBlbXB0eScnIGxhbmd1YWdlIGRlZmluaXRpb24gaXMgZ2l2ZW4KLXRvIFNXSUcsIGl0IHdpbGwgcHJvZHVjZSBubyBvdXRwdXQuICAgVGh1cywgZWFjaCBsYW5ndWFnZSBjbGFzcyBjYW4KLWJlIGltcGxlbWVudGVkIGluIGFsbW9zdCBhbnkgbWFubmVyLgotVGhlIGRvY3VtZW50YXRpb24gc3lzdGVtIGlzIGltcGxlbWVudGVkIGluIGEgc2ltaWxhciBtYW5uZXIgYW5kIGNhbgotY3VycmVudGx5IHByb2R1Y2UgQVNDSUksIExhVGVYLCBvciBIVE1MIG91dHB1dC4gIEFzIG91dHB1dCwKLVNXSUcgcHJvZHVjZXMgYSBDIGZpbGUgdGhhdCBzaG91bGQgYmUgY29tcGlsZWQgYW5kIGxpbmtlZCB3aXRoIHRoZSByZXN0IAotb2YgdGhlIGNvZGUgYW5kIGEgZG9jdW1lbnRhdGlvbiBmaWxlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGxhdGVyIHJlZmVyZW5jZS4KLQotPGgzPiA0LjIuIEludGVyZmFjZSBGaWxlcyA8L2gzPgotCi1BcyBpbnB1dCwgU1dJRyB0YWtlcyBhIHNpbmdsZSBpbnB1dCBmaWxlIHJlZmVycmVkIHRvIGFzIGFuIGBgaW50ZXJmYWNlIGZpbGUuJycKLVRoaXMgZmlsZSBjb250YWlucyBhIGZldyBTV0lHIHNwZWNpZmljIGRpcmVjdGl2ZXMsIGJ1dCBvdGhlcndpc2UgY29udGFpbnMKLUFOU0kgQyBmdW5jdGlvbiBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb25zLiAgIFVubGlrZSB0aGUgYXBwcm9hY2ggaW4gW0hlaWRyaWNoXSwgbm8gdHlwZSBjb252ZXJzaW9uIHJ1bGVzIGFyZSBuZWVkZWQgYW5kIGFsbCBkZWNsYXJhdGlvbnMgYXJlIG1hZGUKLXVzaW5nIGZhbWlsaWFyIEFOU0kgQy9DKysgcHJvdG90eXBlcy4gICAgVGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGFuCi1pbnRlcmZhY2UgZmlsZSBmb3Igd3JhcHBpbmcgYSBmZXcgQyBmaWxlIEkvTyBhbmQgbWVtb3J5IG1hbmFnZW1lbnQgZnVuY3Rpb25zLgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLS8qIEZpbGUgOiBmaWxlLmkgKi8KLSVtb2R1bGUgZmlsZWlvCi0lewotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0lfQotCi1GSUxFCSpmb3BlbihjaGFyICpmaWxlbmFtZSwgY2hhciAqdHlwZSk7Ci1pbnQJIGZjbG9zZShGSUxFICpzdHJlYW0pOwotdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90Ci1zaXplX3QJIGZyZWFkKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICBzaXplX3Qgbm9iaiwgRklMRSAqc3RyZWFtKTsKLXNpemVfdAkgZndyaXRlKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgc2l6ZV90IG5vYmosRklMRSAqc3RyZWFtKTsKLXZvaWQJKm1hbGxvYyhzaXplX3QgbmJ5dGVzKTsKLXZvaWQJIGZyZWUodm9pZCAqKTsKLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLVRoZSA8dHQ+ICVtb2R1bGUgPC90dD4gZGlyZWN0aXZlCi1zZXRzIHRoZSBuYW1lIG9mIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gIFRoaXMgaXMgb3B0aW9uYWwsIGJ1dCBpcwotcmVjb21tZW5kZWQgaWYgYnVpbGRpbmcgYSBUY2wgNy41IG1vZHVsZS4KLUV2ZXJ5dGhpbmcgaW5zaWRlIHRoZSA8dHQ+ICV7LCAlfSA8L3R0PgotYmxvY2sgaXMgY29waWVkIGRpcmVjdGx5IGludG8gdGhlIG91dHB1dCwgYWxsb3dpbmcgdGhlIGluY2x1c2lvbiBvZgotaGVhZGVyIGZpbGVzIGFuZCBhZGRpdGlvbmFsIEMgY29kZS4KLUFmdGVyd2FyZHMsIEMvQysrIGZ1bmN0aW9uIGFuZCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgYXJlIGxpc3RlZCBpbiBhbnkKLW9yZGVyLgotQnVpbGRpbmcgYSBuZXcgVGNsIG1vZHVsZSBpcyB1c3VhbGx5IGFzIAotZWFzeSBhcyB0aGUgZm9sbG93aW5nIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci11bml4ID4gc3dpZyAtdGNsIGZpbGUuaQotdW5peCA+IGdjYyBmaWxlX3dyYXAuYyAtSS91c3IvbG9jYWwvaW5jbHVkZQotdW5peCA+IGxkIC1zaGFyZWQgZmlsZV93cmFwLm8gLW8gRmlsZWlvLnNvCi08L3ByZT4gPC90dD4gCi08L2Jsb2NrcXVvdGU+Ci0KLQotPGgzPiA0LjMuIEEgVGNsIEV4YW1wbGUgPC9oMz4KLQotTmV3bHkgYWRkZWQgZnVuY3Rpb25zIHdvcmsgbGlrZSBvcmRpbmFyeSBUY2wgcHJvY2VkdXJlcy4gIEZvcgotZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBUY2wgc2NyaXB0IGNvcGllcyBhIGZpbGUgdXNpbmcgdGhlIGJpbmFyeQotZmlsZSBJL08gZnVuY3Rpb25zIGFkZGVkIGluIHRoZSBwcmV2aW91cyBleGFtcGxlIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci1wcm9jIGZpbGVjb3B5IHtuYW1lMSBuYW1lMn0gewotICAgIHNldCBidWZmZXIgW21hbGxvYyA4MTkyXTsKLSAgICBzZXQgZjEgW2ZvcGVuICRuYW1lMSByXTsKLSAgICBzZXQgZjIgW2ZvcGVuICRuYW1lMiB3XTsKLSAgICBzZXQgbmJ5dGVzIFtmcmVhZCAkYnVmZmVyIDEgODE5MiAkZjFdOwotICAgIHdoaWxlIHskbmJ5dGVzID4gMH0gewotICAgICAgICBmd3JpdGUgJGJ1ZmZlciAxICRuYnl0ZXMgJGYyOwotICAgICAgICBzZXQgbmJ5dGVzIFtmcmVhZCAkYnVmZmVyIDEgODE5MiAkZjFdOwotICAgIH0KLSAgICBmY2xvc2UgJGYxOwotICAgIGZjbG9zZSAkZjI7Ci0gICAgZnJlZSAkYnVmZmVyCi19Ci08L3ByZT4gPC90dD4KLTwvYmxvY2txdW90ZT4KLQotPGgzPiA0LjQuIERhdGF0eXBlcyBhbmQgUG9pbnRlcnMgPC9oMz4KLQotU1dJRyBzdXBwb3J0cyB0aGUgYmFzaWMgZGF0YXR5cGVzIG9mIDx0dD4gaW50LCBzaG9ydCwKLWxvbmcsIGZsb2F0LCBkb3VibGUsIGNoYXIsIDwvdHQ+IGFuZCA8dHQ+IHZvaWQgPC90dD4KLWFzIHdlbGwgYXMgc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vycy4gIFNXSUcKLWFsc28gYWxsb3dzIGRlcml2ZWQgdHlwZXMgc3VjaCBhcyBwb2ludGVycywgc3RydWN0dXJlcywgYW5kIGNsYXNzZXMsCi1idXQgdGhlc2UgYXJlIGFsbCBlbmNvZGVkIGFzIHBvaW50ZXJzLiAgICAKLUlmIGFuIHVua25vd24gdHlwZSBpcyBlbmNvdW50ZXJlZCwgU1dJRyBhc3N1bWVzCi10aGF0IGl0IGlzIGEgY29tcGxleCBkYXRhdHlwZSB0aGF0IGhhcyBiZWVuIGRlZmluZWQgZWFybGllci4KLU5vIGF0dGVtcHQgaXMgbWFkZSB0byBmaWd1cmUgb3V0IHdoYXQgZGF0YSB0aGF0IGRhdGF0eXBlIGFjdHVhbGx5IGNvbnRhaW5zCi1vciBob3cgaXQgc2hvdWxkIGJlIHVzZWQuICBPZiBjb3Vyc2UsIHRoaXMgdGhpcyBpcyBvbmx5IHBvc3NpYmxlCi1zaW5jZSBTV0lHJ3MgbWFwcGluZyBvZiBjb21wbGV4IHR5cGVzIGludG8gcG9pbnRlcnMgYWxsb3dzIHRoZW0KLXRvIGJlIGhhbmRsZWQgaW4gYSB1bmlmb3JtIG1hbm5lci4gCi1BcyBhIHJlc3VsdCwgU1dJRyBkb2VzIG5vdCBub3JtYWxseSBuZWVkIGFueSBzb3J0Ci1vZiB0eXBlLW1hcHBpbmcsIGJ1dCA8dHQ+IHR5cGVkZWYgPC90dD4gY2FuIGJlIHVzZWQgdG8gbWFwIGFueSBvZiB0aGUgYnVpbHQtaW4KLWRhdGF0eXBlcyB0byBuZXcgdHlwZXMgaWYgZGVzaXJlZC4gPGJyPiA8YnI+Ci0KLVNXSUcgZW5jb2RlcyBwb2ludGVycyBhcyBoZXhhZGVjaW1hbCBzdHJpbmdzIHdpdGggdHlwZS1pbmZvcm1hdGlvbi4gIFRoaXMKLXR5cGUgaW5mb3JtYXRpb24gaXMgdXNlZCB0byBwcm92aWRlIGEgcnVuLXRpbWUgdHlwZSBjaGVja2luZyBtZWNoYW5pc20uCi1UaHVzLCBhIHR5cGljYWwgU1dJRyBwb2ludGVyIGxvb2tzIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcgOiA8YnI+IDxicj4KLQotPGNlbnRlcj4KLTx0dD4gXzEwMDhlNjE0X1ZlY3Rvcl9wIDwvdHQ+IDxicj4gPGJyPgotPC9jZW50ZXI+Ci0KLUlmIHRoaXMgcG9pbnRlciBpcyBwYXNzZWQgaW50byBhIGZ1bmN0aW9uIHJlcXVpcmluZyBzb21lIG90aGVyIGtpbmQgb2YKLXBvaW50ZXIsIFNXSUcgd2lsbCBnZW5lcmF0ZSBhIFRjbCBlcnJvciBhbmQgcmV0dXJuIGFuIGVycm9yIG1lc3NhZ2UuCi1UaGUgTlVMTCBwb2ludGVyIGlzIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgIk5VTEwiLiAgIFRoZSBTV0lHIHJ1bi10aW1lCi10eXBlIGNoZWNrZXIgaXMgc2FhdnkgdG8gdHlwZWRlZnMgYW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBiYXNlIGNsYXNzZXMKLWFuZCBkZXJpdmVkIGNsYXNzZXMgaW4gQysrLiBUaHVzIGlmIGEKLXVzZXIgc3BlY2lmaWVzIDxicj4gPGJyPgotCi08Y2VudGVyPgotPHR0PiB0eXBlZGVmIGRvdWJsZSBSZWFsOyA8L3R0PiA8YnI+IDxicj4KLTwvY2VudGVyPgotCi10aGUgdHlwZSBjaGVja2VyIGtub3dzIHRoYXQgPHR0PiBSZWFsICogPC90dD4gIGFuZCA8dHQ+IGRvdWJsZSAqIDwvdHQ+Ci1hcmUgZXF1aXZhbGVudCAobW9yZSBvbiBDKysgaW4gYSBtaW51dGUpLgotRnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiBvdGhlciBUY2wgZXh0ZW5zaW9ucywKLVNXSUcgcG9pbnRlcnMgc2hvdWxkIGJlIHNlZW4gYXMgc3BlY2lhbCAiaGFuZGxlcyIgZXhjZXB0IHRoYXQgdGhleSAKLWhhcHBlbiB0byBjb250YWluIHRoZSBwb2ludGVyIHZhbHVlIGFuZCBpdHMgdHlwZS4gPGJyPiA8YnI+Ci0KLVRvIHNvbWUsIHRoaXMgYXBwcm9hY2ggbWF5IHNlZW0gaG9ycmlibHkgcmVzdHJpY3RpdmUgKG9yIGVycm9yIHByb25lKSwKLWJ1dCBrZWVwIGluIG1pbmQgdGhhdCBTV0lHIHdhcyBwcmltYXJpbHkgZGVzaWduZWQgdG8gd29yayB3aXRoCi1leGlzdGluZyBDIGFwcGxpY2F0aW9ucy4gIFNpbmNlIG1vc3QgQyBwcm9ncmFtcyBwYXNzIGNvbXBsZXggZGF0YXR5cGVzCi1hcm91bmQgYnkgcmVmZXJlbmNlIHRoaXMgdGVjaG5pcXVlIHdvcmtzIHJlbWFya2FibHkgd2VsbCBpbiBwcmFjdGljZS4KLVJ1biB0aW1lIHR5cGUtY2hlY2tpbmcgYWxzbyBlbGltaW5hdGVzIG1vc3QgY29tbW9uIGNyYXNoZXMgYnkgY2F0Y2hpbmcKLXN0dXBpZCBtaXN0YWtlcyBzdWNoIGFzIHVzaW5nIGEgd3JvbmcgdmFyaWFibGUgbmFtZSBvciBmb3JnZXR0aW5nIHRoZQotIiQiIGNoYXJhY3RlciBpbiBhIFRjbCBzY3JpcHQuICAgIFdoaWxlIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIGNyYXNoIFRjbCBieSBmb3JnaW5nIGEKLVNXSUcgcG9pbnRlciB2YWx1ZSAob3IgbWFraW5nIGEgY2FsbCB0byBidWdneSBDIGNvZGUpLCBpdCBpcyB3b3J0aAotZW1waGFzaXppbmcgdGhhdCBleGlzdGluZyBUY2wgZXh0ZW5zaW9ucwotbWF5IGFsc28gY3Jhc2ggaWYgZ2l2ZW4gYW4gaW52YWxpZCBoYW5kbGUuCi0KLTxoMz4gNC41LiBHbG9iYWwgVmFyaWFibGVzIGFuZCBDb25zdGFudHMgPC9oMz4KLQotU1dJRyBjYW4gaW5zdGFsbCBnbG9iYWwgQyB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyB1c2luZyBUY2wncyB2YXJpYWJsZSBsaW5rYWdlCi1tZWNoYW5pc20uCi1WYXJpYWJsZXMgbWF5IGFsc28gYmUgZGVjbGFyZWQgYXMgYGByZWFkIG9ubHknJyAKLXdpdGhpbiB0aGUgVGNsIGludGVycHJldGVyLiAgVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzCi1ob3cgdmFyaWFibGVzIGFuZCBjb25zdGFudHMgY2FuIGJlIGFkZGVkIHRvIFRjbCA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotLy8gU1dJRyBmaWxlIHdpdGggdmFyaWFibGVzIGFuZCBjb25zdGFudHMKLSV7Ci0lfQotCi0vLyBTb21lIGdsb2JhbCB2YXJpYWJsZXMKLWV4dGVybiAgaW50IE15X3ZhcmlhYmxlOyAgICAgCi1leHRlcm4gIGNoYXIgKmRlZmF1bHRfcGF0aDsKLWV4dGVybiAgZG91YmxlIE15X2RvdWJsZTsKLQotLy8gU29tZSBjb25zdGFudHMKLSNkZWZpbmUgIFBJICAgICAzLjE0MTU5MjY1MzU5Ci0jZGVmaW5lICBQSV80ICAgUEkvNC4wCi1lbnVtIGNvbG9ycyB7cmVkLGJsdWUsZ3JlZW59OwotY29uc3QgaW50IFNJWkVPRl9WRUNUT1IgPSBzaXplb2YoVmVjdG9yKTsKLQotLy8gQSByZWFkIG9ubHkgdmFyaWFibGUKLSVyZWFkb25seQotZXh0ZXJuIGludCBTdGF0dXM7Ci0lcmVhZHdyaXRlCi0KLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotPGgzPiA0LjYuIEMrKyBTdXBwb3J0IDwvaDM+Ci0KLVRoZSBTV0lHIHBhcnNlciBjYW4gaGFuZGxlIHNpbXBsZSBDKysgY2xhc3MgZGVmaW5pdGlvbnMgYW5kIHN1cHBvcnRzIHB1YmxpYwotaW5oZXJpdGFuY2UsIHZpcnR1YWwgZnVuY3Rpb25zLCBzdGF0aWMgZnVuY3Rpb25zLCBjb25zdHJ1Y3RvcnMgYW5kCi1kZXN0cnVjdG9ycy4gICAgQ3VycmVudGx5LCBDKysgdHJhbnNsYXRpb24gaXMgcGVyZm9ybWVkCi1ieSBwb2xpdGVseSB0cmFuZm9ybWluZyBDKysgY29kZSBpbnRvIEMgY29kZSBhbmQgZ2VuZXJhdGluZyB3cmFwcGVycyBmb3IgdGhlCi1DIGZ1bmN0aW9ucy4gIEZvciBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIFNXSUcgaW50ZXJmYWNlIGZpbGUKLWNvbnRhaW5pbmcgYSBDKysgY2xhc3MgZGVmaW5pdGlvbjoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0lbW9kdWxlIHRyZWUKLSV7Ci0jaW5jbHVkZSAidHJlZS5oIgotJX0KLQotY2xhc3MgVHJlZSB7Ci1wdWJsaWM6Ci0gICBUcmVlKCk7Ci0gIH5UcmVlKCk7Ci0gICB2b2lkICBpbnNlcnQoY2hhciAqaXRlbSk7Ci0gICBpbnQgICBzZWFyY2goY2hhciAqaXRlbSk7Ci0gICBpbnQgICByZW1vdmUoY2hhciAqaXRlbSk7Ci1zdGF0aWMgdm9pZCBwcmludChUcmVlICp0KTsgICAKLX07Ci08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLVdoZW4gdHJhbnNsYXRlZCwgdGhlIGNsYXNzIHdpbGwgYmUgYWNjZXNzIHVzZWQgdGhlIGZvbGxvd2luZyBzZXQgb2YKLWZ1bmN0aW9ucyAoY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFNXSUcpLgotCi08YmxvY2txdW90ZT4KLTx0dD4KLTxwcmU+Ci1UcmVlICpuZXdfVHJlZSgpOwotdm9pZCBkZWxldGVfVHJlZShUcmVlICp0aGlzKTsKLXZvaWQgVHJlZV9pbnNlcnQoVHJlZSAqdGhpcywgY2hhciAqaXRlbSk7Ci1pbnQgIFRyZWVfc2VhcmNoKFRyZWUgKnRoaXMsIGNoYXIgKml0ZW0pOwotaW50ICBUcmVlX3JlbW92ZShUcmVlICp0aGlzLCBjaGFyICppdGVtKTsKLXZvaWQgVHJlZV9wcmludChUcmVlICp0KTsKLTwvcHJlPgotPC90dD4KLTwvYmxvY2txdW90ZT4KLQotCi1BbGwgQysrIGZ1bmN0aW9ucyB3cmFwcGVkIGJ5IFNXSUcgZXhwbGljaXRseSByZXF1aXJlIHRoZSA8dHQ+IHRoaXMgPC90dD4gcG9pbnRlcgotYXMgc2hvd24uICBUaGlzIGFwcHJvYWNoIGhhcyB0aGUgYWR2YW50YWdlIG9mIHdvcmtpbmcgZm9yIGFsbCBvZiB0aGUgdGFyZ2V0Ci1sYW5ndWFnZXMuICBJdCBhbHNvIG1ha2VzIGl0IGVhc2llciB0byBwYXNzIG9iamVjdHMgYmV0d2Vlbgotb3RoZXIgQysrIGZ1bmN0aW9ucyBzaW5jZSBldmVyeSBDKysgb2JqZWN0IGlzIHNpbXBseSByZXByZXNlbnRlZCBhcyBhIFNXSUcgcG9pbnRlci4gICBTV0lHIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb24gb3ZlcmxvYWRpbmcsIGJ1dCBvdmVybG9hZGVkIGZ1bmN0aW9ucwotY2FuIGJlIHJlc29sdmVkIGJ5IHJlbmFtaW5nIHRoZW0gd2l0aCB0aGUgU1dJRyA8dHQ+ICVuYW1lIDwvdHQ+IGRpcmVjdGl2ZSBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLWNsYXNzIExpc3QgewotcHVibGljOgotICAgICAgICAgICAgICAgTGlzdCgpOwotJW5hbWUoTGlzdE1heCkgTGlzdChpbnQgbWF4c2l6ZSk7Ci0uLi4KLX07Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1UaGUgYXBwcm9hY2ggdXNlZCBieSBTV0lHIGlzCi1xdWl0ZSBkaWZmZXJlbnQgdGhhbiB0aGF0IHVzZWQgaW4gc3lzdGVtcyBzdWNoIGFzCi1PYmplY3QgVGNsIG9yIHZ0ayBbdnRrLFdldGhlcmFsbF0uICBBcyBhIHJlc3VsdCwgdXNlcnMgb2YgdGhvc2Ugc3lzdGVtcwotbWF5IGZpbmQgaXQgdG8gYmUgY29uZnVzaW5nLiAgSG93ZXZlciwKLUl0IGlzIGltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIG1vZHVsYXIgZGVzaWduIG9mCi1TV0lHIGFsbG93cyB0aGUgdXNlciB0byBjb21wbGV0ZWx5IHJlZGVmaW5lIHRoZSBvdXRwdXQgYmVoYXZpb3Igb2YKLXRoZSBzeXN0ZW0uICBUaHVzLCB3aGlsZSB0aGUgY3VycmVudCBDKysgaW1wbGVtZW50YXRpb24gaXMgcXVpdGUgZGlmZmVyZW50Ci10aGFuIG90aGVyIHN5c3RlbXMgc3VwcG9ydGluZyBDKyssIGl0IHdvdWxkIGJlIGVudGlyZWx5IHBvc3NpYmxlCi13cml0ZSBhIG5ldyBTV0lHIG1vZHVsZSB0aGF0IHdyYXBwZWQgQysrIGNsYXNzZXMgaW50byBhIHJlcHJlc2VudGF0aW9uCi1zaW1pbGFyIHRvIHRoYXQgdXNlZCBieSBPYmplY3QgVGNsIChpbiBmYWN0LCBpbiBtaWdodCBldmVuIGJlIHBvc3NpYmxlCi10byB1c2UgU1dJRyB0byBwcm9kdWNlIHRoZSBpbnB1dCBmaWxlcyB1c2VkIGZvciBPYmplY3QgVGNsKS4KLQotPGgzPiA0LjcuIE11bHRpcGxlIEZpbGVzIGFuZCBDb2RlIFJldXNlIDwvaDM+Ci0KLUFuIGVzc2VudGlhbCBmZWF0dXJlIG9mIFNXSUcgaXMgaXRzIHN1cHBvcnQgZm9yIG11bHRpcGxlIGZpbGVzCi1hbmQgbW9kdWxlcy4gICBBIFNXSUcgaW50ZXJmYWNlIGZpbGUgbWF5IGluY2x1ZGUgYW5vdGhlciBpbnRlcmZhY2UKLWZpbGUgdXNpbmcgdGhlICI8dHQ+ICVpbmNsdWRlIDwvdHQ+IiBkaXJlY3RpdmUuICAgIFRodXMsIGFuIGludGVyZmFjZQotZm9yIGEgbGFyZ2Ugc3lzdGVtIG1pZ2h0IGJlIGJyb2tlbiB1cCBpbnRvIGEgY29sbGVjdGlvbiBvZiBzbWFsbGVyCi1tb2R1bGVzIGFzIHNob3duIAotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLSVtb2R1bGUgcGFja2FnZQotJXsKLSNpbmNsdWRlICJwYWNrYWdlLmgiCi0lfQotCi0laW5jbHVkZSBnZW9tZXRyeS5pCi0laW5jbHVkZSBtZW1vcnkuaQotJWluY2x1ZGUgbmV0d29yay5pCi0laW5jbHVkZSBncmFwaGljcy5pCi0laW5jbHVkZSBwaHlzaWNzLmkKLQotJWluY2x1ZGUgd2lzaC5pCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1Db21tb24gb3BlcmF0aW9ucyBjYW4gYmUgcGxhY2VkIGludG8gYSBTV0lHIGxpYnJhcnkgZm9yIHVzZSBpbgotYWxsIGFwcGxpY2F0aW9ucy4gIEZvciBleGFtcGxlLCB0aGUgPHR0PiAlaW5jbHVkZSB3aXNoLmkgPC90dD4gZGlyZWN0aXZlCi10ZWxscyBTV0lHIHRvIGluY2x1ZGUgY29kZSBmb3IgdGhlIDx0dD4gVGNsX0FwcEluaXQoKSA8L3R0PiBmdW5jdGlvbgotbmVlZGVkIHRvIHJlYnVpbGQgdGhlIDx0dD4gd2lzaCA8L3R0PiBwcm9ncmFtLiAgVGhlIGxpYnJhcnkgY2FuIGFsc28gYmUKLXVzZWQgdG8gYnVpbGQgbW9kdWxlcwotYWxsb3dpbmcgU1dJRyB0byBiZSB1c2VkIHdpdGggY29tbW9uIFRjbCBleHRlbnNpb25zIHN1Y2gKLWFzIEV4cGVjdCBbRXhwZWN0XS4gT2YgY291cnNlLCB0aGUgcHJpbWFyeSB1c2Ugb2YgdGhlIGxpYnJhcnkgaXMgd2l0aAotbGFyZ2UgYXBwbGljYXRpb25zIHN1Y2ggYXMgT3Blbi1JbnZlbnRvciB3aGljaCBjb250YWluIGh1bmRyZWRzIG9mCi1tb2R1bGVzIGFuZCBhIHN1YnN0YW50aWFsIGNsYXNzIGhpZXJhcmNoeSBbSW52ZW50XS4gICBJbiB0aGlzIGNhc2UgYSB1c2VyCi1jb3VsZCB1c2UgU1dJRydzIGluY2x1ZGUgbWVjaGFuaXNtIHRvIHNlbGVjdGl2ZWx5IHBpY2sgd2hpY2ggbW9kdWxlcwotdGhleSB3YW50ZWQgdG8gdXNlIGZvciBhIHBhcnRpY3VsYXIgcHJvYmxlbS4KLQotPGgzPiA0LjguIFRoZSBEb2N1bWVudGF0aW9uIFN5c3RlbSA8L2gzPgotCi1TV0lHIHByb2R1Y2VzIGRvY3VtZW50YXRpb24gaW4gQVNDSUksIExhVGVYLCBvciBIVE1MCi1mb3JtYXQgZGVzY3JpYmluZyBldmVyeXRoaW5nIHRoYXQgd2FzIHdyYXBwZWQuICBUaGUgZG9jdW1lbnRhdGlvbgotZm9sbG93cyB0aGUgc3ludGF4IHJ1bGVzIG9mIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgYW5kIGNhbgotY2FuIGJlIGZ1cnRoZXIgZW5oYW5jZWQgYnkgYWRkaW5nIGRlc2NyaXB0aW9ucyBpbiBhIEMvQysrIGNvbW1lbnQKLWltbWVkaWF0ZWx5IGZvbGxvd2luZyBhIGRlY2xhcmF0aW9uLiAgVGhlc2UgY29tbWVudHMgbWF5IGFsc28gY29udGFpbgotZW1iZWRkZWQgTGFUZVggb3IgSFRNTCBjb21tYW5kcy4gIEZvciBleGFtcGxlOgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLWV4dGVybiBzaXplX3QgZnJlYWQodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9iaiwgRklMRSAqc3RyZWFtKTsKLS8qIHtcdHQgZnJlYWR9IHJlYWRzIGZyb20ge1x0dCBzdHJlYW19IGludG8KLXRoZSBhcnJheSB7XHR0IHB0cn0gYXQgbW9zdCB7XHR0IG5vYmp9IG9iamVjdHMKLW9mIHNpemUge1x0dCBzaXplfS4gICB7XHR0IGZyZWFkfSByZXR1cm5zCi10aGUgbnVtYmVyIG9mIG9iamVjdHMgcmVhZC4gKi8KLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLVdoZW4gb3V0cHV0IGJ5IFNXSUcgYW5kIHByb2Nlc3NlZCBieSBMYVRlWCwgdGhpcyBhcHBlYXJzIGFzIGZvbGxvd3MgOgotCi08dWw+Ci08dHQ+IHNpemVfdCA6IGZyZWFkIHB0ciBzaXplIG5vYmogc3RyZWFtIDwvdHQ+IDxicj4KLTx1bD4KLSAgICAgPHR0PiBmcmVhZCA8L3R0PiByZWFkcyBmcm9tIDx0dD4gc3RyZWFtIDwvdHQ+IGludG8gdGhlIGFycmF5IDx0dD4gcHRyIDwvdHQ+IGF0Ci0gICAgIG1vc3QgPHR0PiBub2JqIDwvdHQ+IG9iamVjdHMgb2Ygc2l6ZSA8dHQ+IHNpemUgPC90dD4uICA8dHQ+IGZyZWFkIDwvdHQ+IAotICAgIHJldHVybnMKLSAgICAgdGhlIG51bWJlciBvZiBvYmplY3RzIHJlYWQuIAotPC91bD4KLTwvdWw+Ci0KLTxoMz4gNC45LiBFeHRlbmRpbmcgdGhlIFNXSUcgU3lzdGVtIDwvaDM+Ci0KLUZpbmFsbHksIFNXSUcgaXRzZWxmIGNhbiBiZSBleHRlbmRlZCBieSB0aGUgdXNlciB0byBwcm92aWRlIG5ldwotZnVuY3Rpb25hbGl0eS4gICAgVGhpcyBpcyBkb25lIGJ5IG1vZGlmeWluZyBhbiBleGlzdGluZyBvciBjcmVhdGluZyBhCi1uZXcgbGFuZ3VhZ2UgY2xhc3MuICAgQSB0eXBpY2FsIGNsYXNzIG11c3Qgc3BlY2lmeSB0aGUgZm9sbG93aW5nCi1mdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmUgdGhlIGJlaGF2aW9yIG9mIHRoZSBwYXJzZXIgb3V0cHV0IDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0vLyBGaWxlIDogc3dpZ3RjbC5oCi1jbGFzcyBUQ0wgOiBwdWJsaWMgTGFuZ3VhZ2UgewotcHJpdmF0ZToKLSAgLy8gUHV0IHByaXZhdGUgc3R1ZmYgaGVyZQotcHVibGljIDoKLSAgVENMKCk7Ci0gIGludCBtYWluKGludCwgY2hhciAqYXJndltdKTsKLSAgdm9pZCBjcmVhdGVfZnVuY3Rpb24oY2hhciAqLGNoYXIgKixEYXRhVHlwZSosCi0gICAgICAgICAgICAgICAgICAgICAgIFBhcm1MaXN0ICopOwotICB2b2lkIGxpbmtfdmFyaWFibGUoY2hhciAqLGNoYXIgKixEYXRhVHlwZSAqKTsKLSAgdm9pZCBkZWNsYXJlX2NvbnN0KGNoYXIgKixpbnQsY2hhciAqKTsKLSAgdm9pZCBpbml0aWFsaXplKHZvaWQpOwotICB2b2lkIGhlYWRlcnModm9pZCk7Ci0gIHZvaWQgY2xvc2Uodm9pZCk7Ci0gIHZvaWQgdXNhZ2VfdmFyKGNoYXIgKixEYXRhVHlwZSosY2hhciAqKik7Ci0gIHZvaWQgdXNhZ2VfZnVuYyhjaGFyICosRGF0YVR5cGUqLFBhcm1MaXN0KiwKLSAgICAgICAgICAgICAgICAgIGNoYXIgKiopOwotICB2b2lkIHVzYWdlX2NvbnN0KGNoYXIgKixpbnQsY2hhciosY2hhcioqKTsKLSAgdm9pZCBzZXRfbW9kdWxlKGNoYXIgKik7Ci0gIHZvaWQgc2V0X2luaXQoY2hhciAqKTsKLX07Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1EZXNjcmlwdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgU1dJRwotdXNlcnMgbWFudWFsLiAgIFRvIGJ1aWxkIGEgbmV3IHZlcnNpb24gb2YgU1dJRywgdGhlIHVzZXIKLW9ubHkgbmVlZHMgdG8gcHJvdmlkZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYW5kIGEgbWFpbgotcHJvZ3JhbSB3aGljaCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0KLS8vIFNXSUcgbWFpbiBwcm9ncmFtCi0KLSNpbmNsdWRlICJzd2lnLmgiCi0jaW5jbHVkZSAic3dpZ3RjbC5oIgotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLQotICBMYW5ndWFnZSAqbGFuZzsKLQotICBsYW5nID0gbmV3IFRDTDsKLSAgU1dJR19tYWluKGFyZ2MsYXJndixsYW5nLChEb2N1bWVudGF0aW9uICopIDApOwotCi19Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1XaGVuIGxpbmtlZCB3aXRoIGEgbGlicmFyeSBmaWxlLCBhbnkgZXh0ZW5zaW9ucyBhbmQKLW1vZGlmaWNhdGlvbnMgY2FuIG5vdyBiZSB1c2VkIHdpdGggdGhlIFNXSUcgcGFyc2VyLiAgV2hpbGUKLXdyaXRpbmcgYSBuZXcgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBub3QgZW50aXJlbHkgdHJpdmlhbCwKLWl0IGNhbiB1c3VhbGx5IGJlIGRvbmUgYnkganVzdCBjb3B5aW5nIG9uZSBvZiB0aGUgZXhpc3RpbmcKLW1vZHVsZXMgYW5kIG1vZGlmeWluZyBpdCBhcHByb3ByaWF0ZWx5LiAgIAotCi08aDI+IDUuIEV4YW1wbGVzIDwvaDI+Ci0KLTxoMz4gNS4xLiBBIEMtVGNsIExpbmtlZCBMaXN0IDwvaDM+Ci0KLVNXSUcgY2FuIGJlIHVzZWQgdG8gYnVpbGQgc2ltcGxlIGRhdGEgc3RydWN0dXJlcyB0aGF0IGFyZSB1c3VhYmxlIGluIAotYm90aCBDIGFuZCBUY2wuICAgVGhlIGZvbGxvd2luZyBjb2RlIHNob3dzIGEgU1dJRyBpbnRlcmZhY2UgZmlsZSBmb3IKLWJ1aWxkaW5nIGEgc2ltcGxlIGxpbmtlZCBsaXN0LgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLS8qIEZpbGUgOiBsaXN0LmkgKi8KLSV7Ci1zdHJ1Y3QgTm9kZSB7Ci0gIE5vZGUoY2hhciAqbikgewotICAgIG5hbWUgPSBuZXcgY2hhcltzdHJsZW4obikrMV07Ci0gICAgc3RyY3B5KG5hbWUsbik7Ci0gICAgbmV4dCA9IDA7Ci0gIH07Ci0gIGNoYXIgICpuYW1lOwotICBOb2RlICpuZXh0OwotfTsKLSV9Ci0KLS8vIEp1c3QgYWRkIHN0cnVjdCBkZWZpbml0aW9uIHRvCi0vLyB0aGUgaW50ZXJmYWNlIGZpbGUuCi0KLXN0cnVjdCBOb2RlIHsKLSAgTm9kZShjaGFyICopOwotICBjaGFyICpuYW1lOwotICBOb2RlICpuZXh0OwotfTsKLQotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2hlbiB1c2VkIGluIGEgVGNsIHNjcmlwdCwgd2UgY2FuIG5vdyBjcmVhdGUgbmV3IG5vZGVzIGFuZCBhY2Nlc3MKLWluZGl2aWR1YWwgbWVtYmVycyBvZiB0aGUgPHR0PiBOb2RlIDwvdHQ+IHN0cnVjdHVyZS4gICBJbiBmYWN0LCB3ZSBjYW4KLXdyaXRlIGNvZGUgdG8gY29udmVydCBiZXR3ZWVuIFRjbCBsaXN0cyBhbmQgbGlua2VkIGxpc3RzIGVudGlyZWx5Ci1pbiBUY2wgYXMgc2hvd24gOgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLSMgQnVpbGRzIGxpbmtlZCBsaXN0IGZyb20gYSBUY2wgbGlzdAotcHJvYyBidWlsZGxpc3Qge2xpc3QgaGVhZH0gewotICAgIHNldCBuaXRlbXMgW2xsZW5ndGggJGxpc3RdOwotICAgIGZvciB7c2V0IGkgMH0geyRpICZsdDsgJG5pdGVtc30ge2luY3IgaSAtMX0gewotICAgICAgICBzZXQgaXRlbSBbbHJhbmdlICRsaXN0ICRpICRpXSAKLSAgICAgICAgc2V0IG4gW25ld19Ob2RlICRpdGVtXSAgICAgICAgCi0gICAgICAgIE5vZGVfc2V0X25leHQgJG4gJGhlYWQgICAgICAgIAotICAgICAgICBzZXQgaGVhZCAkbiAgICAgICAgICAgICAgICAgICAKLSAgICB9Ci0gICAgcmV0dXJuICRoZWFkCi19Ci0jIEJ1aWxkcyBhIFRjbCBsaXN0IGZyb20gYSBsaW5rZWQgbGlzdAotcHJvYyBnZXRfbGlzdCB7bGxpc3R9IHsKLSAgICBzZXQgbGlzdCB7fSAKLSAgICB3aGlsZSB7JGxsaXN0ICE9ICJOVUxMIn0gewotICAgICAgICBsYXBwZW5kIGxpc3QgW05vZGVfbmFtZV9nZXQgJGxsaXN0XQotICAgICAgICBzZXQgbGxpc3QgW05vZGVfZ2V0X25leHQgJGxsaXN0XSAgIAotICAgIH0KLSAgICByZXR1cm4gJGxpc3QgICAgICAgICAgICAgICAgICAgICAgCi19Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1XaGVuIHJ1biBpbnRlcmFjdGl2ZWx5LCB3ZSBjb3VsZCBub3cgdXNlIG91ciBUY2wgZnVuY3Rpb25zIGFzCi1mb2xsb3dzLgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLSUgc2V0IGwge0pvaG4gQW5uZSBNYXJ5IEppbX0KLUpvaG4gQW5uZSBNYXJ5IEppbQotJSBzZXQgbGwgW2J1aWxkbGlzdCAkbCBfMF9Ob2RlX3BdICAgICAgICAgICAKLV8xMDAwY2FiOF9Ob2RlX3AKLSUgZ2V0X2xpc3QgJGxsCi1KaW0gTWFyeSBBbm5lIEpvaG4KLSUgc2V0IGxsIFtidWlsZGxpc3Qge01pa2UgUGV0ZXIgRGF2ZX0gJGxsXQotXzEwMDBjYzM4X05vZGVfcAotJSBnZXRfbGlzdCAkbGwKLURhdmUgUGV0ZXIgTWlrZSBKaW0gTWFyeSBBbm5lIEpvaG4KLSUgCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotQXNpZGUgZnJvbSB0aGUgcG9pbnRlciB2YWx1ZXMsIG91ciBzY3JpcHQgYWN0cyBsaWtlIGFueSBvdGhlcgotVGNsIHNjcmlwdC4gICBIb3dldmVyLCB3ZSBoYXZlIGJ1aWx0IHVwIGEgcmVhbAotQyBkYXRhIHN0cnVjdHVyZSB0aGF0IGNvdWxkIGJlIGVhc2lseSBwYXNzZWQgdG8gb3RoZXIgQyBmdW5jdGlvbnMKLWlmIG5lZWRlZC4KLQotPGgzPiA1LjIuIFVzaW5nIEMgRGF0YS1TdHJ1Y3R1cmVzIHdpdGggVGsgPC9oMz4KLQotSW4gbWFubmVyIHNpbWlsYXIgdG8gdGhlIGxpbmtlZCBsaXN0IGV4YW1wbGUsIFRjbC9UayBjYW4gYmUgdXNlZAotdG8gYnVpbGQgY29tcGxleCBDL0MrKyBkYXRhIHN0cnVjdHVyZXMuICAgRm9yIGV4YW1wbGUsIHN1cHBvc2Ugd2UKLXdhbnRlZCB0byBpbnRlcmFjdGl2ZWx5IGJ1aWxkIGEgZ3JhcGggb2YgYGBOb2RlcycnIGZvciB1c2UgaW4gYSBDCi1hcHBsaWNhdGlvbi4KLUEgdHlwaWNhbCBpbnRlcmZhY2UgZmlsZSBtaWdodCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgotCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotJXsKLSNpbmNsdWRlICJub2Rlcy5oIgotJX0KLQotJWluY2x1ZGUgd2lzaAotZXh0ZXJuIE5vZGUgKm5ld19ub2RlKCk7ICAgICAgICAgICAgICAgICAKLWV4dGVybiB2b2lkIEFkZEVkZ2UoTm9kZSAqbjEsIE5vZGUgKm4yKTsgCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1XaXRoaW4gYSBUY2wvVGsgc2NyaXB0LCBsb29zZWx5IGJhc2VkIG9uIG9uZSB0byBtYWtlIGJhbGwgYW5kIHN0aWNrIGdyYXBocwotaW4gW091c3RlcmhvdXRdLCBhIGdyYXBoIGNvdWxkIGJlIGJ1aWx0IGFzIGZvbGxvd3M6Ci0KLTxibG9ja3F1b3RlPiA8dHQ+IDxwcmU+Ci1wcm9jIG1ha2VOb2RlIHt4IHl9IHsKLSAgIGdsb2JhbCBub2RlWCBub2RlWSBub2RlUCBlZGdlRmlyc3QgZWRnZVNlY29uZAotICAgc2V0IG5ldyBbLmNyZWF0ZSBvdmFsIFtleHByICR4LTE1XSBcCi0gICAgICAgICAgIFtleHByICR5LTE1XSBbZXhwciAkeCsxNV0gXAotICAgICAgICAgICBbZXhwciAkeSsxNV0gLW91dGxpbmUgYmxhY2sgXAotICAgICAgICAgICAtZmlsbCB3aGl0ZSAtdGFncyBub2RlXQotICAgc2V0IG5ld25vZGUgW25ld19ub2RlXSAgICAgICAgICAgCi0gICBzZXQgbm9kZVgoJG5ldykgJHgKLSAgIHNldCBub2RlWSgkbmV3KSAkeQotICAgc2V0IG5vZGVQKCRuZXcpICRuZXdub2RlICAgICAgICAgCi0gICBzZXQgZWRnZUZpcnN0KCRuZXcpIHt9Ci0gICBzZXQgZWRnZVNlY29uZCgkbmV3KSB7fQotfQotcHJvYyBtYWtlRWRnZSB7Zmlyc3Qgc2Vjb25kfSB7Ci0gICBnbG9iYWwgbm9kZVggbm9kZVkgbm9kZVAgZWRnZUZpcnN0IGVkZ2VTZWNvbmQKLSAgIHNldCB4MSAkbm9kZVgoJGZpcnN0KTsgIHNldCB5MSAkbm9kZVkoJGZpcnN0KQotICAgc2V0IHgyICRub2RlWCgkc2Vjb25kKTsgc2V0IHkyICRub2RlWSgkc2Vjb25kKQotICAgc2V0IGVkZ2UgWy5jIGNyZWF0ZSBsaW5lICR4MSAkeTEgJHgyICR5MiBcCi0gICAgICAgICAgICAgIC10YWdzIGVkZ2V9Ci0gICAuYyBsb3dlciBlZGdlCi0gICBsYXBwZW5kIGVkZ2VGaXJzdCgkZmlyc3QpICRlZGdlCi0gICBsYXBwZW5kIGVkZ2VTZWNvbmQoJGZpcnN0KSAkZWRnZQotICAgQWRkRWRnZSAkbm9kZVAoJGZpcnN0KSAkbm9kZVAoJHNlY29uZCkKLX0KLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLVRoZXNlIGZ1bmN0aW9ucyBjcmVhdGUKLVRrIGNhbnZhcyBpdGVtcywgYnV0IGFsc28gYXR0YWNoIGEgcG9pbnRlciB0byBhIEMgZGF0YSBzdHJ1Y3R1cmUgdG8gZWFjaCBvbmUuCi1UaGlzIGlzIGRvbmUgYnkgbWFpbnRhaW5pbmcgYW4gYXNzb2NpYXRpdmUgYXJyYXkgbWFwcGluZyAKLWl0ZW0gaWRlbnRpZmllcnMgdG8gcG9pbnRlcnMgKHdpdGggdGhlIDx0dD4gbm9kZVAoKSA8L3R0PiBhcnJheSkuIAotV2hlbiBhCi1wYXJ0aWN1bGFyIGBgbm9kZScnIGlzIHJlZmVyZW5jZWQgbGF0ZXIsIHdlIGNhbiB1c2UgdGhpcyB0bwotZ2V0IGl0cyBwb2ludGVyIHVzZSBpdCBpbiBjYWxscyB0byBDIGZ1bmN0aW9ucy4KLQotPGgzPiA1LjMuIFBhcnNpbmcgYSBDKysgU2ltcGxlIENsYXNzIEhpZXJhcmNoeSA8L2gzPgotCi1BcyBtZW50aW9uZWQgZWFybGllciwgU1dJRyBjYW4gaGFuZGxlIEMrKyBjbGFzc2VzIGFuZCBwdWJsaWMKLWluaGVyaXRhbmNlLiAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBwcm92aWRlcyBhIGZldyBjbGFzc2VzCi1hbmQgaWxsdXN0cmF0ZXMgaG93IHRoaXMgaXMgYWNjb21wbGlzaGVkIChzb21lIGNvZGUgaGFzIGJlZW4KLW9tbWl0dGVkIGZvciByZWFkYWJpbGl0eSkuCi0KLTxibG9ja3F1b3RlPiA8dHQ+IDxwcmU+Ci0vLyBBIFNXSUcgaW5oZXJpdGFuY2UgZXhhbXBsZQotJW1vZHVsZSBzaGFwZXMKLSV7Ci0jaW5jbHVkZSAic2hhcGVzLmgiCi0lfQotCi1jbGFzcyBTaGFwZSB7Ci1wcml2YXRlOgotICBkb3VibGUgeGMsIHljOwotcHVibGljOgotICB2aXJ0dWFsIGRvdWJsZSBhcmVhKCkgPSAwOwotICB2aXJ0dWFsIGRvdWJsZSBwZXJpbWV0ZXIoKSA9IDA7Ci0gIHZvaWQgICAgc2V0X3Bvc2l0aW9uKGRvdWJsZSB4LCBkb3VibGUgeSk7Ci0gIHZvaWQgICAgcHJpbnRfcG9zaXRpb24oKTsKLX07Ci0KLWNsYXNzIENpcmNsZTogcHVibGljIFNoYXBlIHsKLSBwcml2YXRlOgotICBkb3VibGUgcmFkaXVzOwotIHB1YmxpYzoKLSAgQ2lyY2xlKGRvdWJsZSByKTsKLSAgZG91YmxlIGFyZWEoKTsKLSAgZG91YmxlIHBlcmltZXRlcigpOwotfTsKLQotY2xhc3MgU3F1YXJlIDogcHVibGljIFNoYXBlIHsKLXByaXZhdGU6Ci0gIGRvdWJsZSB3aWR0aDsKLXB1YmxpYzoKLSAgU3F1YXJlKGRvdWJsZSB3KTsKLSAgZG91YmxlIGFyZWEoKTsKLSAgZG91YmxlIHBlcmltZXRlcigpOwotfTsKLQotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotTm93LCB3aGVuIHdyYXBwZWQgYnkgU1dJRyAobm90ZSA6Ci1XaGVuIHBhcnNpbmcgQysrIGNsYXNzZXMsIFNXSUcgdGhyb3dzIGF3YXkgZXZlcnl0aGluZyBkZWNsYXJlZCBhcyBwcml2YXRlLAotaW5saW5lIGNvZGUsIGFuZCBhbG90IG9mIHRoZSBvdGhlciBjbHV0dGVyIGZvdW5kIGluIEMrKyBoZWFkZXIgZmlsZXMuICAKLVByaW1hcmlseSB0aGlzIGlzIHByb3ZpZGVkIG9ubHkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gYnVpbGQgaW50ZXJmYWNlcyBmcm9tCi1leGlzdGluZyBDKysgaGVhZGVyIGZpbGVzLiksIHdlIGNhbiB1c2Ugb3VyIGNsYXNzIHN0cnVjdHVyZSBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotJSBzZXQgYyBbbmV3X0NpcmNsZSA0XQotXzEwMDBhZDcwX0NpcmNsZV9wCi0lIHNldCBzIFtuZXdfU3F1YXJlIDEwXQotXzEwMDBhZGMwX1NxdWFyZV9wCi0lIFNoYXBlX2FyZWEgJGMKLTUwLjI2NTQ4MjQ2NDAwMDAwMjAwCi0lIFNoYXBlX2FyZWEgJHMKLTEwMC4wMDAwMDAwMDAwMDAwMDAwMAotJSBTaGFwZV9zZXRfcG9zaXRpb24gJGMgLTUgMTAKLSUgQ2lyY2xlX3ByaW50X3Bvc2l0aW9uICRjCi14YyA9IC01LCB5YyA9IDEwCi0lIAotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotSW4gb3VyIGV4YW1wbGUsIHdlIGhhdmUgY3JlYXRlZCBuZXcgPHR0PiBDaXJjbGUgPC90dD4gYW5kIDx0dD4gU3F1YXJlIDwvdHQ+IG9iamVjdHMsCi1idXQgdGhlc2UgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2FibHkgaW4gYW55IGZ1bmN0aW9ucyBkZWZpbmVkIGluIHRoZSA8dHQ+IFNoYXBlIDwvdHQ+Ci1iYXNlIGNsYXNzLiAgVGhlIFNXSUcgdHlwZSBjaGVja2VyIGlzIGVuY29kZWQgd2l0aCB0aGUgY2xhc3MgaGllcmFyY2h5IGFuZAota25vd3MgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBkaWZmZXJlbnQgY2xhc3Nlcy4gICBUaHVzLCB3aGlsZSBhbgotb2JqZWN0IG9mIHR5cGUgPHR0PiBDaXJjbGUgPC90dD4gaXMgcGVyZmVjdGx5IGFjY2VwdGFibGUgdG8gYSBmdW5jdGlvbiBvcGVyYXRpbmcKLW9uIHNoYXBlcywgaXQgd291bGQgYmUgdW5hY2NlcHRhYmxlIHRvIGEgZnVuY3Rpb24gb3BlcmF0aW5nIG9ubHkgb24gdGhlCi08dHQ+IFNxdWFyZSA8L3R0PiB0eXBlLiAgICBBcyBpbiBDKyssIGFueSBmdW5jdGlvbnMgaW4gdGhlIGJhc2UgY2xhc3MgY2FuIGJlCi1jYWxsZWQgaW4gdGhlIGRlcml2ZWQgY2xhc3MgYXMgc2hvd24gYnkgdGhlIDx0dD4gQ2lyY2xlX3ByaW50X3Bvc2l0aW9uIDwvdHQ+Ci1mdW5jdGlvbiBhYm92ZS4KLQotPGgyPiA2LiBVc2luZyBTV0lHIGluIFJlYWwgQXBwbGljYXRpb25zIDwvaDI+Ci0KLVNvIGZhciBvbmx5IGEgZmV3IHNpbXBsZSB0b3kgZXhhbXBsZXMgaGF2ZSBiZWVuIHByZXNlbnRlZCB0byBpbGx1c3RyYXRlCi10aGUgb3BlcmF0aW9uIG9mIFNXSUcgaW4gZ2VuZXJhbC4KLVRoaXMgc2VjdGlvbiB3aWxsIGRlc2NyaWJlIGhvdyBTV0lHIGNhbiBiZSB1c2VkCi13aXRoIGxhcmdlciBhcHBsaWNhdGlvbnMuCi0KLTxoMz4gNi4xLiBVc2UgaW4gU2NpZW50aWZpYyBBcHBsaWNhdGlvbnMgPC9oMz4KLSAKLU1hbnkgdXNlcnMsIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBzY2llbnRpZmljIGFuZCBlbmdpbmVlcmluZyAKLWNvbW11bml0eSwgaGF2ZSBzcGVudCB5ZWFycyBkZXZlbG9waW5nIHNpbXVsYXRpb24gY29kZXMuCi1XaGlsZSBtYW55IG9mIHRoZXNlIHVzZXJzIGFwcHJlY2lhdGUgdGhlCi1wb3dlciB0aGF0IGEgc2NyaXB0aW5nIGxhbmd1YWdlIGNhbiBwcm92aWRlLCB0aGV5IGRvbid0IHdhbnQgdG8gCi1jb21wbGV0ZWx5IHJld3JpdGUgdGhlaXIgYXBwbGljYXRpb25zIG9yIHNwZW5kIGFsbCBvZiB0aGVpciB0aW1lCi10cnlpbmcgdG8gYnVpbGQgYSB1c2VyLWludGVyZmFjZSAobW9zdCB1c2VycyB3b3VsZCByYXRoZXIgYmUgd29ya2luZwotb24gdGhlIHNjaWVudGlmaWMgcHJvYmxlbSBhdCBoYW5kKS4gIFdoaWxlIFNXSUcgY2VydGFpbmx5IHdvbid0IGRvIGV2ZXJ5dGhpbmcsCi1pdCBjYW4gZHJhbWF0aWNhbGx5IHNpbXBsaWZ5IHRoaXMgcHJvY2Vzcy4gICA8YnI+IDxicj4KLQotQXMgYW4gZXhhbXBsZSwgdGhlIGZpcnN0IFNXSUcgYXBwbGljYXRpb24gd2FzIHRoZSBTUGFTTSBtb2xlY3VsYXIKLWR5bmFtaWNzIGNvZGUgZGV2ZWxvcGVkIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeQotW0JlYXpsZXksTG9tZGFobF0uICAgVGhpcyBjb2RlIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIGZvciBtYXRlcmlhbHMKLXNjaWVuY2UgcHJvYmxlbXMgYW5kIGNvbnNpc3RzIG9mIG1vcmUgdGhhbiAyMDAgQyBmdW5jdGlvbnMgYW5kIGFib3V0IDIwMDAwIGxpbmVzCi1vZiBjb2RlLgotSW4gb3JkZXIgdG8gdXNlIFNXSUcsIG9ubHkgdGhlIDx0dD4gbWFpbigpIDwvdHQ+IGZ1bmN0aW9uIGhhZCB0byBiZQotcmV3cml0dGVuIGFsb25nIHdpdGggYSBmZXcgb3RoZXIgbWlub3IgbW9kaWZpY2F0aW9ucy4KLVRoZSBmdWxsIHVzZXIgaW50ZXJmYWNlIGlzIGJ1aWx0IHVzaW5nIGEgY29sbGVjdGlvbiBvZiBtb2R1bGVzIGZvcgotc2ltdWxhdGlvbiwgZ3JhcGhpY3MsIG1lbW9yeSBtYW5hZ2VtZW50LCBldGMuLi4gCi1BIHVzZXIgbWF5IGFsc28gc3VwcGx5IHRoZWlyIG93biBpbnRlcmZhY2UgbW9kdWxlcy0tYWxsb3dpbmcgdGhlIGNvZGUgdG8KLWJlIGVhc2lseSBleHRlbmRlZCB3aXRoIG5ldyBmdW5jdGlvbmFsaXR5IGNhcGFiaWxpdGllcyBhcyBuZWVkZWQuCi1BbGwgb2YgdGhlIGludGVyZmFjZSBmaWxlcywgY29udGFpbmluZyBhIGZldyBodW5kcmVkIGxpbmVzIG9mCi1mdW5jdGlvbiBkZWNsYXJhdGlvbnMsIGFyZSBhdXRvbWF0aWNhbGx5IHRyYW5zbGF0ZWQgaW50byBtb3JlIHRoYW4KLTIwMDAgbGluZXMgb2Ygd3JhcHBlciBjb2RlIGF0IGNvbXBpbGUgdGltZS4gICBBcyBhIHJlc3VsdCwgbWFueSB1c2VycyAKLW9mIHRoZSBzeXN0ZW0ga25vdyBob3cgdG8gZXh0ZW5kIGl0LCBidXQgYXJlIHVuYXdhcmUgb2YgdGhlIGFjdHVhbAotd3JhcHBpbmcgcHJvY2VkdXJlLiAgIDxicj4gPGJyPgotCi1BZnRlciBtb2RpZnlpbmcgdGhlIFNQYVNNIGNvZGUgdG8gdXNlIFNXSUcsIG1vc3Qgb2YgdGhlIEMgY29kZSByZW1haW5lZAotdW5jaGFuZ2VkLiAgSW4gZmFjdCwgaW4gc3Vic2VxdWVudCB3b3JrLCB3ZSB3ZXJlIGFibGUgdG8gZWxpbWluYXRlCi1tb3JlIHRoYW4gMjUlIG9mIHRoZSBzb3VyY2UgY29kZS0tYWxtb3N0IGFsbCBvZiB3aGljaCB3YXMgcmVsYXRlZCB0byB0aGUKLW5vdyBvYnNvbGV0ZSBpbnRlcmZhY2UgbWV0aG9kIHRoYXQgd2UgcmVwbGFjZWQuICAgTW9yZSBpbXBvcnRhbnRseSwgd2UKLXdlcmUgYWJsZSB0byB0dXJuIGEgY29kZSB0aGF0IHdhcyBkaWZmaWN1bHQgdG8gdXNlIGFuZCBtb2RpZnkgaW50byBhIAotZmxleGlibGUgcGFja2FnZSB0aGF0IHdhcyBlYXN5IHRvIHVzZSBhbmQgZXh0ZW5kLiAgIFRoaXMgaGFzIGhhZCBhCi1odWdlIGltcGFjdCwgd2hpY2ggY2FuIG5vdCBiZSB1bmRlcnN0YXRlZCwgb24gdGhlIHVzZSBvZiB0aGUgU1BhU00KLWNvZGUgdG8gc29sdmUgcmVhbCBwcm9ibGVtcy4KLQotPGgzPiA2LjIuIE9wZW4tR0wgYW5kIEludmVudG9yIDwvaDM+Ci0KLVdoaWxlIFNXSUcgd2FzIHByaW1hcmlseSBkZXNpZ25lZCB0byB3b3JrIHdpdGggYXBwbGljYXRpb24gY29kZXMsIGl0Ci1jYW4gYWxzbyBiZSB1c2VkIHRvIHdyYXAgbGFyZ2UgbGlicmFyaWVzLiAgIEF0IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWgsCi1QZXRlci1QaWtlIFNsb2FuIHVzZWQgU1dJRyB0byB3cmFwIHRoZSBlbnRpcmUgY29udGVudHMgb2YgdGhlIE9wZW4tR0wKLWxpYnJhcnkgaW50byBUY2wgZm9yIHVzZSB3aXRoIGFuIE9wZW4tR0wgVGsgd2lkZ2V0LiAgIFRoZSBwcm9jZXNzIG9mCi13cmFwcGluZyBPcGVuLUdMIHdpdGggU1dJRyB3YXMgYXMgc2ltcGxlIGFzIHRoZSBmb2xsb3dpbmcgOgotCi08dWw+Ci08bGk+ICBNYWtlIGEgY29weSBvZiB0aGUgPHR0PiBnbC5oIDwvdHQ+IGhlYWRlciBmaWxlLgotPGxpPiAgQ2xlYW4gaXQgdXAgYnkgdGFraW5nIGEgZmV3IEMgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgb3V0IAotICAgICAgb2YgaXQuICAgRml4IGEgZmV3IHR5cGVkZWZzLgotPGxpPiBJbnNlcnQgdGhlIGZvbGxvd2luZyBjb2RlIGludG8gdGhlIGJlZ2lubmluZyAKLTxibG9ja3F1b3RlPiA8dHQ+IDxwcmU+Ci0lbW9kdWxlIG9wZW5nbAotJXsKLSNpbmNsdWRlICZsdDtHTC9nbC5oJmd0OwotJX0KLS4uLiBDb3B5IGVkaXRlZCBnbC5oIGhlcmUgLi4uCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi08bGk+IE1vZGlmeSB0aGUgT3Blbi1HTCB3aWRnZXQgdG8gY2FsbCA8dHQ+IE9wZW5nbF9Jbml0IDwvdHQ+LgotPGxpPiBSZWNvbXBpbGUKLTwvdWw+Ci0KLVRoZSBlbnRpcmUgcHJvY2VzcyByZXF1aXJlZCBvbmx5IGFib3V0IDEwIG1pbnV0ZXMgb2Ygd29yaywgYnV0IHJlc3VsdGVkCi1pbiBtb3JlIHRoYW4gNTAwIGNvbnN0YW50cyBhbmQgMzYwIGZ1bmN0aW9ucyBiZWluZyBhZGRlZCB0byBUY2wuICBGdXJ0aGVybW9yZSwKLXRoaXMgZXh0ZW5zaW9uIGFsbG93cyBPcGVuLUdMIGNvbW1hbmRzIHRvIGJlIGlzc3VlZCBkaXJlY3RseSBmcm9tIFRjbCdzCi1pbnRlcnByZXRlZCBlbnZpcm9ubWVudCBhcyBzaG93biBpbiB0aGlzIGV4YW1wbGUKLShmcm9tIHRoZSBPcGVuLUdMIG1hbnVhbCBbT3BlbkdMXSkuCi0KLTxibG9ja3F1b3RlPiA8dHQ+IDxwcmU+Ci0lIC4uLiBvcGVuIEdMIHdpZGdldCBoZXJlIC4uLgotJSBnbENsZWFyQ29sb3IgMC4wIDAuMCAwLjAgMC4wCi0lIGdsQ2xlYXIgJEdMX0NPTE9SX0JVRkZFUl9CSVQKLSUgZ2xDb2xvcjNmIDEuMCAxLjAgMS4wCi0lIGdsT3J0aG8gLTEuMCAxLjAgLTEuMCAxLjAgLTEuMCAxLjAKLSUgZ2xCZWdpbiAkR0xfUE9MWUdPTgotJSAgICBnbFZlcnRleDJmIC0wLjUgLTAuNQotJSAgICBnbFZlcnRleDJmIC0wLjUgMC41Ci0lICAgIGdsVmVydGV4MmYgMC41IDAuNQotJSAgICBnbFZlcnRleDJmIDAuNSAtMC41Ci0lIGdsRW5kCi0lIGdsRmx1c2gKLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLUVhcmx5IHdvcmsgaGFzIGFsc28gYmVlbiBwZXJmb3JtZWQgb24gdXNpbmcgU1dJRyB0byB3cmFwIHBvcnRpb25zIAotb2YgdGhlIE9wZW4tSW52ZW50b3IgcGFja2FnZSBbSW52ZW50XS4gICBUaGlzIGlzIGEgbW9yZSBhbWJpdGlvdXMgcHJvamVjdAotc2luY2UgT3Blbi1JbnZlbnRvciBjb25zaXN0cyBvZiBhIHZlcnkgbGFyZ2UgY29sbGVjdGlvbiBvZiBoZWFkZXIKLWZpbGVzIGFuZCBDKysgY2xhc3Nlcy4gICAgSG93ZXZlciwgIHRoZSBTV0lHIGxpYnJhcnkgbWVjaGFuaXNtIGNhbiBiZQotdXNlZCBlZmZlY3RpdmUgaW4gdGhpcyBjYXNlLiAgIEZvciBlYWNoIEludmVudG9yIGhlYWRlciwgd2UgY2FuIGNyZWF0ZQotYSBzYW5pdGl6ZWQgU1dJRyBpbnRlcmZhY2UgZmlsZSAocmVtb3ZpbmcgYWxvdCBvZiB0aGUgY2x1dHRlciBmb3VuZCBpbgotdGhlIGhlYWRlciBmaWxlcykuICAgVGhlc2UgaW50ZXJmYWNlIGZpbGVzIGNhbiB0aGVuIGJlIG9yZ2FuaXplZCB0byBtaXJyb3IgdGhlCi1zdHJ1Y3R1cmUgb2YgdGhlIEludmVudG9yIHN5c3RlbS4gICAgVG8gYnVpbGQgYSBtb2R1bGUgZm9yIFRjbCwgYSB1c2VyCi1jb3VsZCBzaW1wbHkgc3BlY2lmeSB3aGljaCBtb2R1bGVzIHRoZXkgd2FudGVkIHRvIHVzZSBhcyBmb2xsb3dzIDoKLQotPGJsb2NrcXVvdGU+IDx0dD4gPHByZT4KLSVtb2R1bGUgaW52ZW50Ci0lewotLi4uIHB1dCBoZWFkZXJzIGhlcmUgLi4uCi0lfQotCi0laW5jbHVkZSAiSW52ZW50b3IvWHQvU29YdC5pIgotJWluY2x1ZGUgIkludmVudG9yL1h0L1NvWHRSZW5kZXJBcmVhLmkiCi0laW5jbHVkZSAiSW52ZW50b3Ivbm9kZXMvU29Db25lLmkiCi0laW5jbHVkZSAiSW52ZW50b3Ivbm9kZXMvU29EaXJlY3Rpb25hbExpZ2h0LmkiCi0laW5jbHVkZSAiSW52ZW50b3Ivbm9kZXMvU29NYXRlcmlhbC5pIgotJWluY2x1ZGUgIkludmVudG9yL25vZGVzL1NvUGVyc3BlY3RpdmVDYW1lcmEuaSIKLSVpbmNsdWRlICJJbnZlbnRvci9ub2Rlcy9Tb1NlcGFyYXRvci5pIgotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2hpbGUgd3JhcHBpbmcgdGhlIEludmVudG9yIGxpYnJhcnkgd2lsbCByZXF1aXJlIHNpZ25pZmljYW50bHkKLW1vcmUgd29yayB0aGFuIE9wZW4tR0wsIFNXSUcgY2FuIGJlIHVzZWQgZWZmZWN0aXZlbHkgd2l0aCBzdWNoCi1zeXN0ZW1zLiAgIAotCi08aDM+IDYuMy4gQnVpbGRpbmcgSW50ZXJlc3RpbmcgQXBwbGljYXRpb25zIGJ5IEN1dCBhbmQgUGFzdGUgPC9oMz4KLQotU1dJRyBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgdG9vbHMgb3V0IG9mIGRpc3NpbWlsaWFyIAotcGFja2FnZXMgYW5kIGxpYnJhcmllcy4gICAKLUluIGNvbnRyYXN0IHRvIGNvbWJpbmluZyBwYWNrYWdlcyBhdCBhbiBpbnB1dCBsZXZlbCBhcyBvbmUgbWlnaHQKLWRvIHdpdGggd2l0aCBFeHBlY3QsIFNXSUcgY2FuIGJlIHVzZWQgdG8gYnVpbGQgYXBwbGljYXRpb25zIGF0IGEKLWZ1bmN0aW9uIGxldmVsIFtFeHBlY3RdLgotRm9yIGV4YW1wbGUsIHVzaW5nCi1hIHNpbXBsZSBpbnRlcmZhY2UgZmlsZSwgeW91IGNhbiB3cmFwIHRoZQotQyBBUEkgb2YgTUFUTEFCIDQuMiBbTUFUTEFCXS4KLVRoaXMgaW4gdHVybiBsZXRzIHlvdSBidWlsZCBhIFRjbC9UayBpbnRlcmZhY2UgZm9yIGNvbnRyb2xsaW5nCi1NQVRMQUIgcHJvZ3JhbXMuICBTZXBhcmF0ZWx5LCB5b3UgY291bGQgd3JhcCBhIG51bWVyaWNhbCBzaW11bGF0aW9uCi1jb2RlLiAgIE5vdywgYSBmZXcgdHJhbnNsYXRpb24gZnVuY3Rpb25zIGNvdWxkIGJlIHdyaXR0ZW4gYW5kIGJvdGgKLXBhY2thZ2VzIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgVGNsL1RrIGFwcGxpY2F0aW9uLiAgIFlvdSBoYXZlCi1ub3cgYnVpbHQgYSBzaW1wbGUgYGBjb21wdXRhdGlvbmFsIHN0ZWVyaW5nJycgc3lzdGVtIHRoYXQgYWxsb3dzIHlvdQotdG8gcnVuIGEgc2ltdWxhdGlvbiBjb2RlLCB2aXN1YWxpemUgZGF0YSBpbiBNQVRMQUIsIGFuZCBjb250cm9sIHRoZQotZW50aXJlIHN5c3RlbSB3aXRoIGEgVGNsL1RrIGJhc2VkIGludGVyZmFjZS4gICAgRmlndXJlIDIgc2hvd3MKLWEgc2NyZWVuIHNuYXBzaG90IGZyb20gc3VjaCBhIHNpbXVsYXRpb24gaW4gd2hpY2ggdGhlIFNQYVNNIG1vbGVjdWxhcgotZHluYW1pY3MgY29kZSwgYSB2aXN1YWxpemF0aW9uIG1vZHVsZSBsaWJyYXJ5LCBpbWFnZSBzZXJ2ZXIgKHVzaW5nIHh2KSwKLWFuZCBNQVRMQUIgaGF2ZSBiZWVuCi1jb21iaW5lZC4gICBVbmRlciB0aGlzIHN5c3RlbSwgdGhlIHVzZXIgY2FuIGludGVyYWN0aXZlbHkgc2V0IHVwCi1hbmQgcnVuIHNpbXVsYXRpb25zIHdoaWxlIHdhdGNoaW5nIHRoZSByZXN1bHRzIGV2b2x2ZSBpbiByZWFsLXRpbWUuCi08YnI+IDxicj4KLTxjZW50ZXI+Ci08aW1nIGFsdCA9ICJUY2wvVGsvTUFUTEFCL1NQQVNNIEZpZ3VyZSIgc3JjPSJzdGVlcjIuZ2lmIj4gPGJyPgotRmlndXJlIDI6IFNpbXBsZSBUY2wvVGsgU3RlZXJpbmcgQXBwbGljYXRpb24gQnVpbHQgd2l0aCBTV0lHIDxicj4KLTwvY2VudGVyPgotCi08aDM+IDYuNC4gTGFuZ3VhZ2UgSW5kZXBlbmRlbnQgQXBwbGljYXRpb25zIDwvaDM+Ci0KLQotRWFjaCBzY3JpcHRpbmcgbGFuZ3VhZ2UgaGFzIGl0J3Mgb3duIHN0cmVuZ3RocyBhbmQgd2Vha25lc3Nlcy4gIAotUmF0aGVyCi10aGFuIHRyeWluZyB0byBjaG9vc2UgdGhlIGxhbmd1YWdlIHRoYXQgaXMgdGhlIGJlc3QgYXQgZXZlcnl0aGluZyAod2hpY2gKLWlzIHByb2JhYmx5IGltcG9zc2libGUpLAotU1dJRyBhbGxvd3MgYSB1c2VyIHRvIHVzZSB0aGUgYmVzdCBsYW5ndWFnZSBmb3IgdGhlIGpvYiBhdCBoYW5kLiAgSSdtCi1hbHdheXMgZmluZGluZyBteXNlbGYgd3JpdGluZyBsaXR0bGUgdXRpbGl0aWVzIGFuZCBwcm9ncmFtcyB0byBzdXBwb3J0Ci1teSBzY2llbnRpZmljIGNvbXB1dGluZyB3b3JrLiAgV2h5IHNob3VsZCBJIGJlIGZvcmNlZCB0byB1c2Ugb25seSBvbmUKLWxhbmd1YWdlIGZvciBldmVyeXRoaW5nPyAgV2l0aCBTV0lHLCBJIGNhbiBwdXQgYSBQZXJsIGludGVyZmFjZSBvbiBhCi10b29sIGFuZCBzd2l0Y2ggb3ZlciB0byBUY2wvVGsgYXQgYW55dGltZSBieSBqdXN0IGNoYW5naW5nIGEgZmV3Ci1NYWtlZmlsZSBvcHRpb25zLiA8YnI+IDxicj4KLQotU2luY2UgU1dJRyBwcm92aWRlcyBhIGxhbmd1YWdlLWluZGVwZW5kZW50IGludGVyZmFjZSBzcGVjaWZpY2F0aW9uLAotaXQgaXMgcmVsYXRpdmVseSBlYXN5IHRvIHVzZSBTV0lHIGdlbmVyYXRlZCBtb2R1bGVzIGluIGEgdmFyaWV0eSBvZgotaW50ZXJlc3RpbmcgYXBwbGljYXRpb25zLiAgRm9yIGV4YW1wbGUsIHRoZSBpZGVudGljYWwgTUFUTEFCCi1tb2R1bGUgdXNlZCBpbiB0aGUgbGFzdCBUY2wgZXhhbXBsZSBjb3VsZCBiZSBpbXBvcnRlZCBhcyBQZXJsNSBtb2R1bGUKLWFuZCBjb21iaW5lZCB3aXRoIGEgUGVybCBzY3JpcHQgdG8gcHJvZHVjZSBncmFwaGljYWwgZGlzcGxheXMgZnJvbQotV2ViLXNlcnZlciBsb2dzIGFzIHNob3duIGluIEZpZ3VyZSAzLiA8YnI+IDxicj4KLQotPGNlbnRlcj4KLTxpbWcgYWx0PSJQZXJsNSB3ZWIgc3RhdHMgZXhhbXBsZSIgc3JjPSJoaXRzLmdpZiI+IDxicj4KLUZpZ3VyZSAzOldlYi1zZXJ2ZXIgYWN0aXZpdHkgZ3JhcGguICBHZW5lcmF0ZWQgZnJvbSBhIFBlcmwgc2NyaXB0LCBidXQKLXVzZXMgYW4gdW5tb2RpZmllZCBTV0lHIGdlbmVyYXRlZCBtb2R1bGUgZm9yIGludGVncmF0aW5nIE1BVExBQiB3aXRoIFRjbC9Uay4gPGJyPiA8YnI+Ci08L2NlbnRlcj4KLQotU29tZSBoYXZlIHByb21vdGVkIHRoZSBpZGVhIG9mIGVuY2Fwc3VsYXRpbmcgc2V2ZXJhbCBsYW5ndWFnZXMgaW50bwotYSBoaWdoZXIgbGV2ZWwgbGFuZ3VhZ2UgYXMgaGFzIGJlZW4gcHJvcG9zZWQgd2l0aCBHdWlsZSBbTG9yZF0uCi1UaGlzIG1heSBiZSBmaW5lIGlmIG9uZSB3YW50cyB0byB3cml0ZSBjb2RlIHRoYXQgdXNlcyBkaWZmZXJlbnQgbGFuZ3VhZ2VzCi1hbGwgYXQgb25jZSwgYnV0IHdoZW4gSSB3YW50IHRvIHVzZSBvbmx5IFRjbCBvciBQZXJsIGZvciBhbiBhcHBsaWNhdGlvbiwKLUkgYWxtb3N0IGFsd2F5cyBwcmVmZXIgdXNpbmcgdGhlIHJlYWwgdmVyc2lvbnMgaW5zdGVhZCBvZiBhbiBlbmNhcHN1bGF0ZWQKLXZhcmlhbnQuICAgICBTV0lHIG1ha2VzIHRoaXMgcG9zc2libGUgd2l0aG91dCBtdWNoIGVmZm9ydC4KLQotPGgzPiA2LjUuIFVzaW5nIFRjbCBhcyBhIGRlYnVnZ2VyIDwvaDM+Ci0KLVNpbmNlIFNXSUcgY2FuIHdvcmsgd2l0aCBleGlzdGluZyBDIGNvZGUsIGl0IGNhbiBiZSB1c2VkIHF1aXRlIGVmZmVjdGl2ZWx5Ci1hcyBhIGRlYnVnZ2VyLgotWW91IGNhbiB3cmFwIEMgZnVuY3Rpb25zIGFuZCBpbnRlcmFjdAotd2l0aCB0aGVtIGZyb20gPHR0PiB0Y2xzaCA8L3R0PiBvciA8dHQ+IHdpc2ggPC90dD4uCi1Vbmxpa2UgbW9zdCB0cmFkaXRpb25hbCBkZWJ1Z2dlcnMsIHlvdQotY2FuIGNyZWF0ZSBvYmplY3RzLCBidWZmZXJzLCBhcnJheXMsIGFuZCBvdGhlciB0aGluZ3Mgb24gdGhlIGZseQotYnkgcHV0dGluZyBhcHByb3ByaWF0ZSBkZWZpbml0aW9ucyBpbiB0aGUgaW50ZXJmYWNlIGZpbGUuCi1TaW5jZSA8dHQ+IHRjbHNoIDwvdHQ+IG9yIDx0dD4gd2lzaCA8L3R0PiBwcm92aWRlcyBhIDx0dD4gbWFpbigpIDwvdHQ+IGZ1bmN0aW9uLCB5b3UKLWNhbiBldmVuIHJpcCBzbWFsbCBwaWVjZXMgb3V0IG9mIGEgbGFyZ2VyIHBhY2thZ2Ugd2l0aG91dCBpbmNsdWRpbmcKLXRoYXQgcGFja2FnZSdzIG1haW4gcHJvZ3JhbS4KLVNjcmlwdHMgY2FuIGJlIHdyaXR0ZW4gdG8gdGVzdCBvdXQgZGlmZmVyZW50IHBhcnRzIG9mIHlvdXIKLWNvZGUgYXMgaXQgaXMgZGV2ZWxvcGVkLiAgICBXaGVuIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggdGhlIG1vZHVsZSwKLXJlbW92aW5nIHRoZSBpbnRlcmZhY2UgaXMgYXMgZWFzeSBhcyBkaXNjYXJkaW5nIHRoZSBTV0lHIGludGVyZmFjZQotZmlsZS4gICBJIGhhdmUgdXNlZCBTV0lHIGFzIGEgZGVidWdnZXIgZm9yIGRldmVsb3BpbmcgZ3JhcGhpY3MgbGlicmFyaWVzLAotbmV0d29yayBzZXJ2ZXJzLCBzaW11bGF0aW9uIGNvZGVzLCBhbmQgYSB3aWRlIHJhbmdlIG9mIG90aGVyIHByb2plY3RzLS1zb21lCi1vZiB3aGljaCBkaWRuJ3QgZXZlbiB1c2UgYSBzY3JpcHRpbmcgbGFuZ3VhZ2Ugd2hlbiBjb21wbGV0ZWQuCi0KLTxoMj4gNy4gTGltaXRhdGlvbnMgPC9oMj4KLQotU1dJRyByZXByZXNlbnRzIGEgYmFsYW5jZSBvZiBmbGV4aWJpbGl0eSBhbmQgZWFzZSBvZiB1c2UuCi1JIGhhdmUgYWx3YXlzIGZlbHQgdGhhdCB0aGUgdG9vbCBzaG91bGRuJ3QgYmUgbW9yZSBjb21wbGljYXRlZCB0aGFuCi10aGUgb3JpZ2luYWwgcHJvYmxlbS4gICAgVGhlcmVmb3JlLCBTV0lHIGNlcnRhaW5seSB3b24ndCBkbyBldmVyeXRoaW5nLgotV2hpbGUgSSBiZWxpZXZlIHRoZSBwb2ludGVyIHJlcHJlc2VudGF0aW9uIG9mIGNvbXBsZXggZGF0YXR5cGVzIHdvcmtzCi13ZWxsIGluIHByYWN0aWNlLCBzb21lIHVzZXJzIGhhdmUgZm91bmQgdGhpcyB0byBiZSB0b28gZ2VuZXJhbCBvcgotY29uZnVzaW5nLiAgICBTV0lHJ3MKLXN1cHBvcnQgZm9yIEMrKyBpcyBhbHNvIGxpbWl0ZWQgYnkgdGhlIGZhY3QgdGhhdCBTV0lHIGRvZXMgbm90IHN1cHBvcnQKLW9wZXJhdG9yIG92ZXJsb2FkaW5nLCBtdWx0aXBsZSBpbmhlcml0YW5jZSwgdGVtcGxhdGVzLCBhbmQgYSBudW1iZXIKLW9mIG90aGVyIG1vcmUgYWR2YW5jZWQgQysrIGZlYXR1cmVzLiAgICBTV0lHIGFsc28gbGFja3Mgc3VwcG9ydCBmb3IKLWRlZmF1bHQgb3IgdmFyaWFibGUgbGVuZ3RoIGZ1bmN0aW9uIGFyZ3VtZW50cywgYXJyYXkgbm90YXRpb24sCi1wb2ludGVycyB0byBmdW5jdGlvbnMgKHVubGVzcyBoaWRkZW4gYnkgYSB0eXBlZGVmKSBhbmQgYW4gZXhjZXB0aW9uCi1tZWNoYW5pc20uIAotRmluYWxseSwgU1dJRwotZG9lcwotbm90IHN1cHBvcnQgYWxsIG9mIHRoZSBmZWF0dXJlcyBvZiBUY2wgc3VjaCBhcyBhc3NvY2lhdGl2ZSBhcnJheXMuCi1UaGVzZSBhcmVuJ3QgYW4gaW5oZXJlbnQgcGFydCBvZiB0aGUgQyBsYW5ndWFnZSBzbyBpdCBpcyBkaWZmaWN1bHQKLXRvIGdlbmVyYWxpemUgaG93IHRoZXkgc2hvdWxkIGJlIGhhbmRsZWQgb3IgZ2VuZXJhdGVkLiBJIHByZWZlciB0bwota2VlcCB0aGUgdG9vbCBzaW1wbGUgd2hpbGUgbGVhdmluZyB0aGVzZSBpc3N1ZXMgdXAgdG8gdGhlIGluZGl2aWR1YWwKLXByb2dyYW1tZXIuICA8YnI+IDxicj4KLQotCi1Gb3J0dW5hdGVseSwgaXQgaXMgYWxtb3N0IGFsd2F5cyBwb3NzaWJsZSB0byB3b3JrIGFyb3VuZAotbWFueSBwcm9ibGVtcyBieSB3cml0aW5nIHNwZWNpYWwgbGlicmFyeSBmdW5jdGlvbnMgb3IgbWFraW5nCi1tb2RpZmljYXRpb25zIHRvIHRoZSBTV0lHIGxhbmd1YWdlIG1vZHVsZXMgdG8gcHJvZHVjZSB0aGUgZGVzaXJlZCBlZmZlY3QuCi1Gb3IgZXhhbXBsZSwgd2hlbiB3cmFwcGluZyBPcGVuLUdMLCBTV0lHIGluc3RhbGxlZCBhbGwgb2YgdGhlIE9wZW4tR0wKLWNvbnN0YW50cyBhcyBUY2wgZ2xvYmFsIHZhcmlhYmxlcy4gICBVbmZvcnR1bmF0ZWx5LCBub25lIG9mIHRoZXNlCi12YXJpYWJsZXMgd2VyZSBhY2Nlc3NpYmxlIGluc2lkZSBUY2wgcHJvY2VkdXJlcyB1bmxlc3MgdGhleSB3ZXJlIGV4cGxpY2l0bHkKLWRlY2xhcmVkIGdsb2JhbC4gICBCeSBtYWtpbmcgYSBtb2RpZmljYXRpb24gdG8gdGhlIFRjbCBsYW5ndWFnZSBtb2R1bGUsCi1pdCB3YXMgcG9zc2libGUgdG8gcHV0IHRoZSBHTCBjb25zdGFudHMgaW50byBoYXNoIHRhYmxlIGFuZCBwZXJmb3JtCi1hIGhpZGRlbiBgYGxvb2t1cCcnIGluc2lkZSBhbGwgb2YgdGhlIEdMLXJlbGF0ZWQgZnVuY3Rpb25zLiAgU2ltaWxhcmx5LAotbXVjaCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBvZiBTV0lHIGNhbiBiZSBwbGFjZWQgaW50byBsaWJyYXJ5Ci1maWxlcyBmb3IgdXNlIGluIG90aGVyIG1vZHVsZXMuCi0KLTxoMj4gOC4gQ29uY2x1c2lvbnMgPC9oMj4KLQotU1dJRyBoYXMgYmVlbiBpbiB1c2UgZm9yIGFwcHJveGltYXRlbHkgb25lIHllYXIuICBBdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnksIGl0cyB1c2Ugd2l0aCB0aGUgU1BhU00gY29kZSBoYXMKLXByb3ZlbiB0bwotYmUgYSByZW1hcmthYmx5IHNpbXBsZSwgc3RhYmxlLCBhbmQgYnVnLWZyZWUgd2F5IHRvIGJ1aWxkIGFuZCBtb2RpZnkgdXNlcgotaW50ZXJmYWNlcy4gICBBdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBTV0lHIGlzIGJlaW5nIHVzZWQgaW4gYSB2YXJpZXR5Ci1vZiBvdGhlciBhcHBsaWNhdGlvbnMgd2hlcmUgdGhlIHVzZXJzIGhhdmUgcXVpY2tseSBjb21lIHRvIGFwcHJlY2lhdGUgaXRzCi1lYXNlIG9mIHVzZSBhbmQgZmxleGliaWxpdHkuIDxicj4gPGJyPgotCi1XaGlsZSBTV0lHIG1heSBiZSBpbmFwcHJvcHJpYXRlIGZvciBjZXJ0YWluIGFwcGxpY2F0aW9ucywgSSBmZWVsIHRoYXQgaXQKLW9wZW5zIHVwIFRjbC9UaywgUHl0aG9uLCBQZXJsLCBHdWlsZSwgYW5kIG90aGVyIGxhbmd1YWdlcyAgdG8gCi11c2VycyB3aG8gd291bGQgbGlrZSB0byBkZXZlbG9wIGludGVyZXN0aW5nIHVzZXIgaW50ZXJmYWNlcyBmb3IgdGhlaXIgY29kZXMsCi1idXQgd2hvIGRvbid0IHdhbnQgdG8gd29ycnkgYWJvdXQgdGhlIGxvdy1sZXZlbCBkZXRhaWxzIG9yIGZpZ3VyaW5nCi1vdXQgaG93IHRvIHVzZSBhIGNvbXBsaWNhdGVkIHRvb2wuICA8YnI+IDxicj4KLSAgCi1GdXR1cmUgZGlyZWN0aW9ucyBmb3IgU1dJRyBpbmNsdWRlIHN1cHBvcnQgZm9yIG90aGVyIHNjcmlwdGluZyBsYW5ndWFnZXMsCi1hbmQgYSBsaWJyYXJ5IG9mIGV4dGVuc2lvbnMuICBTV0lHIG1heSBhbHNvIGJlIGV4dGVuZGVkIHRvIHN1cHBvcnQgcGFja2FnZXMKLXN1Y2ggYXMgaW5jcmVtZW50YWwgVGNsLiBXb3JrIGlzIGFsc28gdW5kZXJ3YXkgdG8gcG9ydCBTV0lHIHRvIG5vbi11bml4Ci1wbGF0Zm9ybXMuCi0KLTxoMj4gQWNrbm93bGVkZ21lbnRzIDwvaDI+Ci0KLVRoaXMgcHJvamVjdCB3b3VsZCBub3QgaGF2ZSBiZWVuIHBvc3NpYmxlIHdpdGhvdXQgdGhlIHN1cHBvcnQgb2YgYSBudW1iZXIKLW9mIHBlb3BsZS4gICBQZXRlciBMb21kYWhsLCBTaHVqaWEgWmhvdSwgQnJhZCBIb2xpYW4sIFRpbSBHZXJtYW5uLCBhbmQgTmllbHMKLUplbnNlbiBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkgd2VyZSB0aGUgZmlyc3QgdXNlcnMgYW5kIHdlcmUKLWluc3RydW1lbnRhbCBpbiB0ZXN0aW5nIG91dCB0aGUgZmlyc3QgZGVzaWducy4gICBQYXRyaWNrIFR1bGxtYW5uIGF0Ci10aGUgVW5pdmVyc2l0eSBvZiBVdGFoIHN1Z2dlc3RlZCB0aGUgaWRlYSBvZiBhdXRvbWF0aWMgZG9jdW1lbnRhdGlvbgotZ2VuZXJhdGlvbi4gIEpvaG4gU2NobWlkdCwgS3VydGlzCi1CbGVla2VyLCBQZXRlci1QaWtlIFNsb2FuLCBhbmQgU3RldmUgUGFya2VyIGF0IHRoZSBVbml2ZXJzaXR5IG9mIFV0YWggdGVzdGVkIG91dCBzb21lIG9mIHRoZSBuZXdlciB2ZXJzaW9ucyBhbmQKLXByb3ZpZGVkIHZhbHVhYmxlIGZlZWRiYWNrLiAgIEpvaG4gQnVja21hbiBzdWdnZXN0ZWQgbWFueSBpbnRlcmVzdGluZwotaW1wcm92ZW1lbnRzIGFuZCBoYXMgYmVlbiBpbnN0cnVtZW50YWwgdGhlIHJlY2VudCBkZXZlbG9wbWVudCBvZiBTV0lHLgotRmluYWxseQotSSdkIGxpa2UgdG8gdGhhbmsgQ2hyaXMgSm9obnNvbiBhbmQgdGhlIG1lbWJlcnMgb2YgdGhlIFNjaWVudGlmaWMKLUNvbXB1dGluZyBhbmQgSW1hZ2luZyBncm91cCBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoIGZvciB0aGVpciBjb250aW51ZWQKLXN1cHBvcnQgYW5kIGZvciBwdXR0aW5nIHVwIHdpdGggbXkgd3JhcHBpbmcgZXZlcnkgc29mdHdhcmUgcGFja2FnZQotSSBjb3VsZCBnZXQgbXkgaGFuZHMgb24uICAgIFNXSUcgd2FzIGRldmVsb3BlZCBpbiBwYXJ0IHVuZGVyIHRoZQotYXVzcGljZXMgb2YgdGhlIFVTIERlcGFydG1lbnQgb2YgRW5lcmd5LCB0aGUgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uLCAKLWFuZCBOYXRpb25hbCBJbnN0aXR1dGVzIG9mIEhlYWx0aC4KLQotPGgyPiBBdmFpbGFiaWxpdHkgPC9oMj4KLQotU1dJRyBpcyBmcmVlIHNvZnR3YXJlIGFuZCBhdmFpbGFibGUgdmlhIGFub255bW91cyBGVFAgYXQgIDxicj4gPGJyPgotCi08Y2VudGVyPgotPHR0PiBmdHAuY3MudXRhaC5lZHUvcHViL2JlYXpsZXkvU1dJRyA8L3R0PiA8YnI+IDxicj4KLTwvY2VudGVyPgotCi1Nb3JlIGluZm9ybWF0aW9uIGlzIGFsc28gYXZhaWxhYmxlIG9uIHRoZSBTV0lHIGhvbWVwYWdlIGF0ICA8YnI+IDxicj4KLQotPGNlbnRlcj4KLTxhIGhyZWY9Imh0dHA6Ly93d3cuY3MudXRhaC5lZHUvfmJlYXpsZXkvU1dJRyI+IDx0dD4gaHR0cDovL3d3dy5jcy51dGFoLmVkdS9+YmVhemxleS9TV0lHIDwvdHQ+IDwvYT4KLTwvY2VudGVyPiA8YnI+IDxicj4KLQotPGgyPiBSZWZlcmVuY2VzIDwvaDI+Ci0KLVtCZWF6bGV5XSBELk0uIEJlYXpsZXkgYW5kIFAuUy4gTG9tZGFobCwgCi08ZW0+IE1lc3NhZ2UtUGFzc2luZyBNdWx0aS1DZWxsIE1vbGVjdWxhciBEeW5hbWljcyBvbiB0aGUgQ29ubmVjdGlvbgotTWFjaGluZSA1IDwvZW0+LCBQYXJhbGxlbCBDb21wdXRpbmcgMjAgKDE5OTQpIHAuIDE3My0xOTUuIDxicj4gPGJyPgotCi1bRVRdIEVtYmVkZGVkIFRrLCA8YnI+Ci08dHQ+IGZ0cDovL2Z0cC52bmV0Lm5ldC9wdWIvdXNlcnMvZHJoL0VULmh0bWwgPC90dD4gPGJyPiA8YnI+Ci0KLVtFeHBlY3RdIERvbiBMaWJlcywgPGVtPiBFeHBsb3JpbmcgRXhwZWN0IDwvZW0+LCBPJ1JlaWxseSAmYW1wOyBBc3NvY2lhdGVzLCBJbmMuICgxOTk1KS4gPGJyPiA8YnI+Ci0KLVtIZWlkcmljaF0gV29sZmdhbmcgSGVpZHJpY2ggYW5kIFBoaWxpcHAgU2x1c2FsbGVrLCA8ZW0+Ci1BdXRvbWF0aWMgR2VuZXJhdGlvbiBvZiBUY2wgQmluZGluZ3MgZm9yIEMgYW5kIEMrKyBMaWJyYXJpZXMuPC9lbT4sCi1VU0VOSVggM3JkIEFubnVhbCBUY2wvVGsgV29ya3Nob3AgKDE5OTUpLiA8YnI+IDxicj4KLQotW0phbnNzZW5dIEJpbGwgSmFuc3NlbiwgTWlrZSBTcHJlaXR6ZXIsIDxlbT4gSUxVIDogSW50ZXItTGFuZ3VhZ2UgVW5pZmljYXRpb24gdmlhIE9iamVjdCBNb2R1bGVzIDwvZW0+LCBPT1BTTEEgOTQgV29ya3Nob3Agb24gTXVsdGktTGFuZ3VhZ2UKLU9iamVjdCBNb2RlbHMuIDxicj4gPGJyPgotCi1bTG9tZGFobF0gUC5TLiBMb21kYWhsLCBQLiBUYW1heW8sIAotTi5Hcm9uYmVjaC1KZW5zZW4sIGFuZCBELk0uIEJlYXpsZXksIAotPGVtPiBQcm9jLiBvZiBTdXBlcmNvbXB1dGluZyA5MyA8L2VtPiwgSUVFRSBDb21wdXRlciBTb2NpZXR5ICgxOTkzKSwgcC4gNTIwLTUyNy4KLTxicj4gPGJyPgotCi1bTG9yZF0gVGhvbWFzIExvcmQsIDxlbT4gQW4gQW5hdG9teSBvZiBHdWlsZSwgVGhlIEludGVyZmFjZSB0byAKLVRjbC9UayA8L2VtPiwgUHJvY2VlZGluZ3Mgb2YgdGhlIFVTRU5JWCAzcmQgQW5udWFsIFRjbC9UayBXb3Jrc2hvcCAoMTk5NSkuIDxicj4gPGJyPgotCi1bTUFUTEFCXSA8ZW0+IE1BVExBQiBFeHRlcm5hbCBJbnRlcmZhY2UgR3VpZGUgPC9lbT4sIFRoZSBNYXRoIFdvcmtzLCBJbmMuICAoMTk5MykuCi08YnI+IDxicj4KLQotW091c3RlcmhvdXRdIEpvaG4gSy4gT3VzdGVyaG91dCwgPGVtPiBUY2wgYW5kIHRoZSBUayBUb29sa2l0IDwvZW0+LCBBZGRpc29uLVdlc2xleSBQdWJsaXNoZXJzICgxOTk0KS4gPGJyPiA8YnI+Ci0KLVtQZXJsNV0gUGVybDUgUHJvZ3JhbW1lcnMgcmVmZXJlbmNlLCA8YnI+Ci08dHQ+IGh0dHA6Ly93d3cubWV0cm9uZXQuY29tL3BlcmxpbmZvL2RvYyA8L3R0PiwgKDE5OTYpLiA8YnI+IDxicj4KLQotW3Z0a10gVy4gU2Nocm9lZGVyLCBLLiBNYXJ0aW4sIGFuZCBCLiBMb3JlbnNlbiwgPGVtPiBUaGUKLVZpc3VhbGl6YXRpb24gVG9vbGtpdCA8L2VtPiwgUHJlbnRpY2UgSGFsbCAgKDE5OTUpLiA8YnI+IDxicj4KLQotW0ludmVudF0gSi4gV2VybmVja2UsPGVtPiBUaGUgSW52ZW50b3IgTWVudG9yIDwvZW0+LCBBZGRpc29uLVdlc2xleSBQdWJsaXNoaW5nICgxOTk0KS4gPGJyPiA8YnI+Ci0KLVtXZXRoZXJhbGxdIEQuIFdldGhlcmFsbCwgQy4gSi4gTGluZGJsYWQsIDxlbT4gRXh0ZW5kaW5nIFRjbCBmb3IKLUR5bmFtaWMgT2JqZWN0LU9yaWVudGVkIFByb2dyYW1taW5nIDwvZW0+LCBQcm9jZWVkaW5ncyBvZiB0aGUgVVNFTklYIDNyZCBBbm51YWwgVGNsL1RrIFdvcmtzaG9wICgxOTk1KS4gPGJyPiA8YnI+Ci0KLVtPcGVuR0xdIEouIE5laWRlciwgVC4gRGF2aXMsIE0uIFdvbywgPGVtPiBPcGVuR0wgUHJvZ3JhbW1pbmcgR3VpZGUgPC9lbT4sIEFkZGlzb24tV2VzbGV5IFB1Ymxpc2hpbmcgKDE5OTMpLiA8YnI+IDxicj4KLQotPC9ib2R5PgotPC9odG1sPgotCi0KLQotCi0KLQotCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L1RjbF9UYWxrLnBkZiBiL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L1RjbF9UYWxrLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggOWU2ZDI3Zi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9UY2w5Ni9UY2xfVGFsay5wZGYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9UY2w5Ni9maWcxLmdpZiBiL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L2ZpZzEuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBiODBjODcwLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L2ZpZzEuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvVGNsOTYvaGl0cy5naWYgYi9zd2lnd2ViL3BhcGVycy9UY2w5Ni9oaXRzLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggN2FlYTk2OC4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9UY2w5Ni9oaXRzLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L3N0ZWVyMi5naWYgYi9zd2lnd2ViL3BhcGVycy9UY2w5Ni9zdGVlcjIuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMmIwMTg3Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcGFwZXJzL1RjbDk2L3N0ZWVyMi5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9UY2w5Ni90Y2w5Ni5odG1sIGIvc3dpZ3dlYi9wYXBlcnMvVGNsOTYvdGNsOTYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYzJiZGJkYy4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3BhcGVycy9UY2w5Ni90Y2w5Ni5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA4NCArMCwwIEBACi08aHRtbD4KLTx0aXRsZT4gU1dJRyA6IEFuIEVhc3kgdG8gVXNlIFRvb2wgRm9yIEludGVncmF0aW5nIFNjcmlwdGludCBMYW5ndWFnZXMgCi13aXRoIEMgYW5kIEMrKyA8L3RpdGxlPgotPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiI+Ci08aDE+Ci1TV0lHIDogQW4gRWFzeSB0byBVc2UgVG9vbCBmb3IgSW50ZWdyYXRpbmcgU2NyaXB0aW5nIExhbmd1YWdlcyAgd2l0aCBDIGFuZCBDKysKLTwvaDE+Ci0KLTxiPiBEYXZpZCBNLiBCZWF6bGV5IDwvYj4gPGJyPgotPGVtPiBEZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBVdGFoIDxicj4KLVNhbHQgTGFrZSBDaXR5LCBVdGFoIDg0MTEyIDxicj4KLWJlYXpsZXlAY3MudXRhaC5lZHUgPGJyPiA8L2VtPgotCi08YnI+IDxicj4KLShQcmVzZW50ZWQgYXQgdGhlIDR0aCBBbm51YWwgVGNsL1RrIFdvcmtzaG9wLCBNb250ZXJleSwgQ0EuIEp1bHkgNi0xMCwgMTk5Ni4gKQotCi08aDI+IEFic3RyYWN0IDwvaDI+Ci0KLTxlbT4KLUkgcHJlc2VudCBTV0lHIChTaW1wbGlmaWVkIFdyYXBwZXIgYW5kIEludGVyZmFjZSBHZW5lcmF0b3IpLCBhCi1wcm9ncmFtIGRldmVsb3BtZW50IHRvb2wgdGhhdCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyB0aGUgYmluZGluZ3MKLWJldHdlZW4gQy9DKysgY29kZSBhbmQgY29tbW9uIHNjcmlwdGluZyBsYW5ndWFnZXMgaW5jbHVkaW5nCi1UY2wsIFB5dGhvbiwgUGVybCBhbmQgR3VpbGUuICBTV0lHIHN1cHBvcnRzIG1vc3QgQy9DKysgZGF0YXR5cGVzCi1pbmNsdWRpbmcgcG9pbnRlcnMsIHN0cnVjdHVyZXMsIGFuZCBjbGFzc2VzLgotVW5saWtlIG1hbnkgb3RoZXIgYXBwcm9hY2hlcywgU1dJRwotdXNlcyBBTlNJIEMvQysrIGRlY2xhcmF0aW9ucyBhbmQgcmVxdWlyZXMgdGhlIHVzZXIgdG8gbWFrZSB2aXJ0dWFsbHkKLW5vIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgQyBjb2RlLgotSW4gYWRkaXRpb24sIFNXSUcgYXV0b21hdGljYWxseQotcHJvZHVjZXMgZG9jdW1lbnRhdGlvbiBpbiBIVE1MLCBMYVRlWCwgb3IgQVNDSUkgZm9ybWF0LgotU1dJRyBoYXMgYmVlbiBwcmltYXJpbHkgZGVzaWduZWQgZm9yIHNjaWVudGlzdHMsIGVuZ2luZWVycywgYW5kIGFwcGxpY2F0aW9uCi1kZXZlbG9wZXJzIHdobyB3b3VsZCBsaWtlIHRvIHVzZSBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHdpdGggdGhlaXIgQy9DKysgcHJvZ3JhbXMKLXdpdGhvdXQgd29ycnlpbmcgYWJvdXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gZGV0YWlscwotb2YgZWFjaCBsYW5ndWFnZSBvciB1c2luZyBhIGNvbXBsaWNhdGVkIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2wuCi1UaGlzIHBhcGVyIGNvbmNlbnRyYXRlcyBvbiBTV0lHJ3MgdXNlIHdpdGggVGNsL1RrLgotPC9lbT4KLQotPGgyPiAxLiBJbnRyb2R1Y3Rpb24gPC9oMj4KLVNXSUcgKFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvcikKLWlzIGEgc29mdHdhcmUKLWRldmVsb3BtZW50IHRvb2wgdGhhdCBJIG5ldmVyIGludGVuZGVkIHRvIGRldmVsb3AuICAgQXQgdGhlIHRpbWUsCi1JIHdhcyB0cnlpbmcgdG8gYWRkIGEgZGF0YSBhbmFseXNpcyBhbmQgdmlzdWFsaXphdGlvbiBjYXBhYmlsaXR5IHRvCi1hIG1vbGVjdWxhciBkeW5hbWljcyAoTUQpIGNvZGUgSSBoYWQgaGVscGVkIGRldmVsb3AgZm9yIG1hc3NpdmVseQotcGFyYWxsZWwgc3VwZXJjb21wdXRlcnMgYXQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5IFtCZWF6bGV5LExvbWRhaGxdLiAgSSB3YW50ZWQKLXRvIHByb3ZpZGUgYSBzaW1wbGUsIHlldCBmbGV4aWJsZSB1c2VyIGludGVyZmFjZSB0aGF0IGNvdWxkIGJlIHVzZWQKLXRvIGdsdWUgdmFyaW91cyBjb2RlIG1vZHVsZXMgdG9nZXRoZXIgYW5kIGFuIGV4dGVuc2libGUgc2NyaXB0aW5nCi1sYW5ndWFnZSBzZWVtZWQgbGlrZSBhbiBpZGVhbCBzb2x1dGlvbi4gVW5mb3J0dW5hdGVseSB0aGVyZSB3ZXJlIGNvbnN0cmFpbnRzLgotRmlyc3QsIEkgZGlkbid0IHdhbnQgdG8gaGFjayB1cCA0LXllYXJzIG9mIGNvZGUgZGV2ZWxvcG1lbnQgdHJ5aW5nIHRvCi1maXQgb3VyIE1EIGNvZGUgaW50byB5ZXQgYW5vdGhlciBpbnRlcmZhY2Ugc2NoZW1lIChoYXZpbmcgZG9uZSBzbyBzZXZlcmFsCi10aW1lcyBhbHJlYWR5KS4gIFNlY29uZGx5LCB0aGlzIGNvZGUKLXdhcyByb3V0aW5lbHkgcnVuIG9uIHN5c3RlbXMgcmFuZ2luZyBmcm9tIENvbm5lY3Rpb24gTWFjaGluZXMgYW5kIENyYXlzIHRvCi13b3Jrc3RhdGlvbnMgYW5kIEkgZGlkbid0IHdhbnQgdG8gZGVwZW5kIG9uIGFueSBvbmUKLWludGVyZmFjZSBsYW5ndWFnZS0tLW91dCBvZiBmZWFyIHRoYXQgaXQgbWlnaHQgbm90IGJlIHN1cHBvcnRlZCBvbgotYWxsIG9mIHRoZXNlIHBsYXRmb3Jtcy4gIEZpbmFsbHksIHRoZSB1c2VycyB3ZXJlIGNvbnN0YW50bHkgYWRkaW5nCi1uZXcgY29kZSBhbmQgbWFraW5nIG1vZGlmaWNhdGlvbnMuICBJIG5lZWRlZCBhIGZsZXhpYmxlLCB5ZXQgZWFzeSB0byB1c2UKLXN5c3RlbSB0aGF0IGRpZCBub3QgZ2V0IGluIHRoZSB3YXkgb2YgdGhlIHBoeXNpY2lzdHMuIDxicj4gPGJyPgotCi1TV0lHIGlzIG15IHNvbHV0aW9uIHRvIHRoaXMgcHJvYmxlbS4gIFNpbXBseSBzdGF0ZWQsIFNXSUcgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgYWxsCi1vZiB0aGUgY29kZQotbmVlZGVkIHRvIGJpbmQgQy9DKysgZnVuY3Rpb25zIHdpdGggc2NyaXB0aW5nIGxhbmd1YWdlcyB1c2luZyBvbmx5Ci1hIHNpbXBsZSBpbnB1dCBmaWxlIGNvbnRhaW5pbmcgQyBmdW5jdGlvbiBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb25zLgotQXQgZmlyc3QsIEkgc3VwcG9ydGVkCi1hIHNjcmlwdGluZyBsYW5ndWFnZSBJIGhhZCBkZXZlbG9wZWQgc3BlY2lmaWNhbGx5IGZvciB1c2UKLW9uIG1hc3NpdmVseSBwYXJhbGxlbCBzeXN0ZW1zLiAgTGF0ZXIgSSBkZWNpZGVkIHRvIHJld3JpdGUgU1dJRyBpbiBDKysgYW5kIGV4dGVuZCBpdCB0byBzdXBwb3J0Ci1UY2wsIFB5dGhvbiwgUGVybCwgR3VpbGUgYW5kIG90aGVyIGxhbmd1YWdlcyB0aGF0IGludGVyZXN0ZWQgbWUuICAgSSBhbHNvCi1hZGRlZCBtb3JlIGRhdGEtdHlwZXMsIHN1cHBvcnQgZm9yIHBvaW50ZXJzLCBDKysgY2xhc3NlcywgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uLCBhbmQKLWEgZmV3IG90aGVyIGZlYXR1cmVzLiA8YnI+IDxicj4KLQotVGhpcyBwYXBlciBwcm92aWRlcyBhIGJyaWVmIG92ZXJ2aWV3IG9mIFNXSUcgCi13aXRoIGEgcGFydGljdWxhciBlbXBoYXNpcyBvbiBUY2wvVGsuIEhvd2V2ZXIsIHRoZSByZWFkZXIgc2hvdWxkCi1yZW1haW4gYXdhcmUgdGhhdCBTV0lHIHdvcmtzIGVxdWFsbHkgd2VsbCB3aXRoCi1QZXJsIGFuZCBvdGhlciBsYW5ndWFnZXMuIEl0IGlzIG5vdCBteSBpbnRlbnQgdG8gcHJvdmlkZQotYSB0dXRvcmlhbCBvciBhIHVzZXIncyBndWlkZSwgYnV0IHJhdGhlciB0byBzaG93Ci1ob3cgU1dJRyBjYW4gYmUgdXNlZCB0byBkbyBpbnRlcmVzdGluZyB0aGluZ3Mgc3VjaCBhcyAKLWFkZGluZyBUY2wvVGsgaW50ZXJmYWNlcyB0byBleGlzdGluZyBDIGFwcGxpY2F0aW9ucywgCi1xdWlja2x5IGRlYnVnZ2luZyBhbmQgcHJvdG90eXBpbmcgQyBjb2RlLAotYW5kIGJ1aWxkaW5nIGludGVyZmFjZS1sYW5ndWFnZS1pbmRlcGVuZGVudCBDIGFwcGxpY2F0aW9ucy4gICAKLQotPGgyPiAyLiBUY2wgYW5kIFdyYXBwZXIgRnVuY3Rpb25zIDwvaDI+Ci0KLUluIG9yZGVyIHRvIGFkZCBhIG5ldyBDIG9yIEMrKyBmdW5jdGlvbiB0byBUY2wsIGl0IGlzIG5lY2Vzc2FyeSB0bwotd3JpdGUgYSBzcGVjaWFsIGBgd3JhcHBlcicnIGZ1bmN0aW9uIHRoYXQgcGFyc2VzIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKLXByZXNlbnRlZCBhcyBBU0NJSSBzdHJpbmdzIGJ5IHRoZSBUY2wgaW50ZXJwcmV0ZXIgaW50byBhIHJlcHJlc2VudGF0aW9uCi10aGF0IGNhbiBiZSB1c2VkIHRvIGNhbGwgdGhlIEMgZnVuY3Rpb24uICAgIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudGVkCi10byBhZGQgdGhlIGZhY3RvcmlhbCBmdW5jdGlvbiB0byBUY2wsIGEgd3JhcHBlciBmdW5jdGlvbiBtaWdodAotbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOiA8YnI+Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotaW50IHdyYXBfZmFjdChDbGllbnREYXRhIGNsaWVudERhdGEsCi0gICAgICAgICAgICAgIFRjbF9JbnRlcnAgKmludGVycCwKLSAgICAgICAgICAgICAgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotICAgIGludCByZXN1bHQ7Ci0gICAgaW50IGFyZzA7Ci0gICAgaWYgKGFyZ2MgIT0gMikgewotICAgICAgICBpbnRlcnAtPnJlc3VsdCA9ICJ3cm9uZyAjIGFyZ3MiOwotICAgICAgICByZXR1cm4gVENMX0VSUk9SOwotICAgIH0KLSAgICBhcmcwID0gYXRvaShhcmd2WzFdKTsKLSAgICByZXN1bHQgPSBmYWN0KGFyZzApOwotICAgIHNwcmludGYoaW50ZXJwLT5yZXN1bHQsIiVkIixyZXN1bHQpOwotICAgIHJldHVybiBUQ0xfT0s7Ci19Ci08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLUluIGFkZGl0aW9uIHRvIHdyaXRpbmcgdGhlIHdyYXBwZXIgZnVuY3Rpb24sIGEgdXNlciB3aWxsIGFsc28gbmVlZCB0byAKLXdyaXRlIGNvZGUgdG8gYWRkIHRoaXMgZnVuY3Rpb24gdG8gdGhlIFRjbCBpbnRlcnByZXRlci4gIEluIHRoZSBjYXNlIG9mCi1UY2wgNy41LCB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgd3JpdGluZyBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB0bwotYmUgY2FsbGVkIHdoZW4gdGhlIGV4dGVuc2lvbiBpcyBsb2FkZWQgZHluYW1pY2FsbHkuICAgV2hpbGUgd3JpdGluZwotYSB3cmFwcGVyIGZ1bmN0aW9uIHVzdWFsbHkgaXMgbm90IHRvbyBkaWZmaWN1bHQsIHRoZSBwcm9jZXNzIHF1aWNrbHkKLWJlY29tZXMgdGVkaW91cyBhbmQgZXJyb3IgcHJvbmUgYXMgdGhlIG51bWJlciBvZiBmdW5jdGlvbnMgaW5jcmVhc2VzLgotVGhlcmVmb3JlLCBhdXRvbWF0ZWQgYXBwcm9hY2hlcyBmb3IgcHJvZHVjaW5nIHdyYXBwZXIgZnVuY3Rpb25zIGFyZQotYXBwZWFsaW5nLS1lc3BlY2lhbGx5IHdoZW4gd29ya2luZyB3aXRoIGEgbGFyZ2UgbnVtYmVyIG9mIEMgZnVuY3Rpb25zCi1vciB3aXRoIEMrKyAoaW4gd2hpY2ggY2FzZSB0aGUgd3JhcHBlciBjb2RlIHRlbmRzIHRvIGdldCBtb3JlIGNvbXBsaWNhdGVkKS4KLQotPGgyPiAzLiBQcmlvciBXb3JrIDwvaDI+Ci0KLVRoZSBpZGVhIG9mIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyB3cmFwcGVyIGNvZGUgaXMgY2VydGFpbmx5IG5vdCBuZXcuCi1Tb21lIGVmZm9ydHMgc3VjaCBhcwotSXRjbCsrLCBPYmplY3QgVGNsLCBvciB0aGUgWFMgbGFuZ3VhZ2UgaW5jbHVkZWQgd2l0aCBQZXJsNSwgcHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IKLWdlbmVyYXRpbmcgd3JhcHBlciBjb2RlLCBidXQgcmVxdWlyZSB0aGUgdXNlciB0byBwcm92aWRlIGRldGFpbGVkCi1zcGVjaWZpY2F0aW9ucywgdHlwZSBjb252ZXJzaW9uIHJ1bGVzLCBvciB1c2UgYSBzcGVjaWFsaXplZAotc3ludGF4IFtoZWlkcmljaCxXZXRoZXJhbGwscGVybDVdLiAgTGFyZ2UgcGFja2FnZXMKLXN1Y2ggYXMgdGhlIFZpc3VhbGl6YXRpb24gVG9vbGtpdCAodnRrKSBtYXkgdXNlIHRoZWlyIG93biBDL0MrKyB0cmFuc2xhdG9ycywKLWJ1dCB0aGVzZSBhbG1vc3QgYWx3YXlzIHRlbmQgdG8gYmUgc29tZXdoYXQgc3BlY2lhbCBwdXJwb3NlIChpbiBmYWN0LCBTV0lHIHN0YXJ0ZWQKLW91dCBpbiB0aGlzIG1hbm5lcikgW3Z0a10uCi1JZiBzdXBwb3J0aW5nIG11bHRpcGxlIGxhbmd1YWdlcyBpcyB0aGUgdWx0aW1hdGUgZ29hbCwgYSBwcm9ncmFtbWVyIG1pZ2h0Ci1jb25zaWRlciBhIHBhY2thZ2Ugc3VjaCBhcyBJTFUgW0phbnNzZW5dLiAKLVVuZm9ydHVuYXRlbHksCi10aGlzIHJlcXVpcmVzIHRoZSB1c2VyIHRvIHByb3ZpZGUgc3BlY2lmaWNhdGlvbnMgaW4gSURMLS1hIHByb2Nlc3Mgd2hpY2gKLWlzIHVuYXBwZWFsaW5nIHRvIG1hbnkgdXNlcnMuCi1TV0lHIGlzIG5vdCBuZWNlc3NhcmlseSBpbnRlbmRlZCB0byBjb21wZXRlIHdpdGggCi10aGVzZSBhcHByb2FjaGVzLCBidXQgcmF0aGVyIGlzIGRlc2lnbmVkIHRvIGJlIGEgbm8tbm9uc2Vuc2UgdG9vbCB0aGF0Ci1zY2llbnRpc3RzIGFuZCBlbmdpbmVlcnMgY2FuIHVzZSB0byBlYXNpbHkgYWRkIFRjbCBhbmQgb3RoZXIgc2NyaXB0aW5nCi1sYW5ndWFnZXMgdG8gdGhlaXIgb3duIGFwcGxpY2F0aW9ucy4gICBTV0lHIGlzIGFsc28gCi12ZXJ5IGRpZmZlcmVudCB0aGFuIEVtYmVkZGVkIFRrIChFVCkgd2hpY2ggYWxzbyBhaW1zIHRvCi1zaW1wbGlmeSBjb2RlIGRldmVsb3BtZW50IFtFVF0uIFVubGlrZSBFVCwgU1dJRyBpcyBkZXNpZ25lZCB0byAKLWludGVncmF0ZSBDIGZ1bmN0aW9ucyBpbnRvIFRjbC9UayBhcyBvcHBvc2VkIHRvIGludGVncmF0aW5nIFRjbC9UayBpbnRvCi1DIHByb2dyYW1zLgotCi08aDI+IDQuIEEgUXVpY2sgVG91ciBvZiBTV0lHIDwvaDI+Ci0KLTxoMz4gNC4xIE9yZ2FuaXphdGlvbiA8L2gzPgotCi08Y2VudGVyPgotPGltZyBhbHQgPSAiU1dJRyBPcmdhbml6YXRpb24iIHNyYz0iZmlnMS5naWYiPiAgPGJyPgotRmlndXJlIDEgOiBTV0lHIE9yZ2FuaXphdGlvbiA8YnI+IDxicj4KLTwvY2VudGVyPgotCi1GaWd1cmUgMSBzaG93cyB0aGUgc3RydWN0dXJlIG9mIFNXSUcuICBBdCB0aGUgY29yZSBpcyBhIFlBQ0MgcGFyc2VyCi1mb3IgcmVhZGluZyBpbnB1dCBmaWxlcyBhbG9uZyB3aXRoIHNvbWUgdXRpbGl0eSBmdW5jdGlvbnMuIAotVG8gZ2VuZXJhdGUgY29kZSwKLXRoZSBwYXJzZXIgY2FsbHMgYWJvdXQgYSBkb3plbiBmdW5jdGlvbnMgZnJvbSBhIGdlbmVyaWMgbGFuZ3VhZ2UKLWNsYXNzIHRvIGRvIHRoaW5ncyBsaWtlIHdyaXRlIGEgd3JhcHBlciBmdW5jdGlvbiwgbGluayBhCi12YXJpYWJsZSwgd3JhcCBhIEMrKyBtZW1iZXIgZnVuY3Rpb24sIGV0Yy4uLiAgRWFjaCB0YXJnZXQgbGFuZ3VhZ2UgaXMKLWltcGxlbWVudGVkIGFzIGEgQysrIGNsYXNzIGNvbnRhaW5pbmcgdGhlIGZ1bmN0aW9ucyB0aGF0IGVtaXQKLXRoZSByZXN1bHRpbmcgQyBjb2RlLiAgIElmIGFuIGBgZW1wdHknJyBsYW5ndWFnZSBkZWZpbml0aW9uIGlzIGdpdmVuCi10byBTV0lHLCBpdCB3aWxsIHByb2R1Y2Ugbm8gb3V0cHV0LiAgIFRodXMsIGVhY2ggbGFuZ3VhZ2UgY2xhc3MgY2FuCi1iZSBpbXBsZW1lbnRlZCBpbiBhbG1vc3QgYW55IG1hbm5lci4KLVRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbSBpcyBpbXBsZW1lbnRlZCBpbiBhIHNpbWlsYXIgbWFubmVyIGFuZCBjYW4KLWN1cnJlbnRseSBwcm9kdWNlIEFTQ0lJLCBMYVRlWCwgb3IgSFRNTCBvdXRwdXQuICBBcyBvdXRwdXQsCi1TV0lHIHByb2R1Y2VzIGEgQyBmaWxlIHRoYXQgc2hvdWxkIGJlIGNvbXBpbGVkIGFuZCBsaW5rZWQgd2l0aCB0aGUgcmVzdCAKLW9mIHRoZSBjb2RlIGFuZCBhIGRvY3VtZW50YXRpb24gZmlsZSB0aGF0IGNhbiBiZSB1c2VkIGZvciBsYXRlciByZWZlcmVuY2UuCi0KLTxoMz4gNC4yLiBJbnRlcmZhY2UgRmlsZXMgPC9oMz4KLQotQXMgaW5wdXQsIFNXSUcgdGFrZXMgYSBzaW5nbGUgaW5wdXQgZmlsZSByZWZlcnJlZCB0byBhcyBhbiBgYGludGVyZmFjZSBmaWxlLicnCi1UaGlzIGZpbGUgY29udGFpbnMgYSBmZXcgU1dJRyBzcGVjaWZpYyBkaXJlY3RpdmVzLCBidXQgb3RoZXJ3aXNlIGNvbnRhaW5zCi1BTlNJIEMgZnVuY3Rpb24gYW5kIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4gICBVbmxpa2UgdGhlIGFwcHJvYWNoIGluIFtIZWlkcmljaF0sIG5vIHR5cGUgY29udmVyc2lvbiBydWxlcyBhcmUgbmVlZGVkIGFuZCBhbGwgZGVjbGFyYXRpb25zIGFyZSBtYWRlCi11c2luZyBmYW1pbGlhciBBTlNJIEMvQysrIHByb3RvdHlwZXMuICAgIFRoZSBmb2xsb3dpbmcgY29kZSBzaG93cyBhbgotaW50ZXJmYWNlIGZpbGUgZm9yIHdyYXBwaW5nIGEgZmV3IEMgZmlsZSBJL08gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucy4KLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0vKiBGaWxlIDogZmlsZS5pICovCi0lbW9kdWxlIGZpbGVpbwotJXsKLSNpbmNsdWRlICZsdDtzdGRpby5oJmd0OwotJX0KLQotRklMRQkqZm9wZW4oY2hhciAqZmlsZW5hbWUsIGNoYXIgKnR5cGUpOwotaW50CSBmY2xvc2UoRklMRSAqc3RyZWFtKTsKLXR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdAotc2l6ZV90CSBmcmVhZCh2b2lkICpwdHIsIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgc2l6ZV90IG5vYmosIEZJTEUgKnN0cmVhbSk7Ci1zaXplX3QJIGZ3cml0ZSh2b2lkICpwdHIsIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgIHNpemVfdCBub2JqLEZJTEUgKnN0cmVhbSk7Ci12b2lkCSptYWxsb2Moc2l6ZV90IG5ieXRlcyk7Ci12b2lkCSBmcmVlKHZvaWQgKik7Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1UaGUgPHR0PiAlbW9kdWxlIDwvdHQ+IGRpcmVjdGl2ZQotc2V0cyB0aGUgbmFtZSBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uICBUaGlzIGlzIG9wdGlvbmFsLCBidXQgaXMKLXJlY29tbWVuZGVkIGlmIGJ1aWxkaW5nIGEgVGNsIDcuNSBtb2R1bGUuCi1FdmVyeXRoaW5nIGluc2lkZSB0aGUgPHR0PiAleywgJX0gPC90dD4KLWJsb2NrIGlzIGNvcGllZCBkaXJlY3RseSBpbnRvIHRoZSBvdXRwdXQsIGFsbG93aW5nIHRoZSBpbmNsdXNpb24gb2YKLWhlYWRlciBmaWxlcyBhbmQgYWRkaXRpb25hbCBDIGNvZGUuCi1BZnRlcndhcmRzLCBDL0MrKyBmdW5jdGlvbiBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb25zIGFyZSBsaXN0ZWQgaW4gYW55Ci1vcmRlci4KLUJ1aWxkaW5nIGEgbmV3IFRjbCBtb2R1bGUgaXMgdXN1YWxseSBhcyAKLWVhc3kgYXMgdGhlIGZvbGxvd2luZyA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotdW5peCA+IHN3aWcgLXRjbCBmaWxlLmkKLXVuaXggPiBnY2MgZmlsZV93cmFwLmMgLUkvdXNyL2xvY2FsL2luY2x1ZGUKLXVuaXggPiBsZCAtc2hhcmVkIGZpbGVfd3JhcC5vIC1vIEZpbGVpby5zbwotPC9wcmU+IDwvdHQ+IAotPC9ibG9ja3F1b3RlPgotCi0KLTxoMz4gNC4zLiBBIFRjbCBFeGFtcGxlIDwvaDM+Ci0KLU5ld2x5IGFkZGVkIGZ1bmN0aW9ucyB3b3JrIGxpa2Ugb3JkaW5hcnkgVGNsIHByb2NlZHVyZXMuICBGb3IKLWV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgVGNsIHNjcmlwdCBjb3BpZXMgYSBmaWxlIHVzaW5nIHRoZSBiaW5hcnkKLWZpbGUgSS9PIGZ1bmN0aW9ucyBhZGRlZCBpbiB0aGUgcHJldmlvdXMgZXhhbXBsZSA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotcHJvYyBmaWxlY29weSB7bmFtZTEgbmFtZTJ9IHsKLSAgICBzZXQgYnVmZmVyIFttYWxsb2MgODE5Ml07Ci0gICAgc2V0IGYxIFtmb3BlbiAkbmFtZTEgcl07Ci0gICAgc2V0IGYyIFtmb3BlbiAkbmFtZTIgd107Ci0gICAgc2V0IG5ieXRlcyBbZnJlYWQgJGJ1ZmZlciAxIDgxOTIgJGYxXTsKLSAgICB3aGlsZSB7JG5ieXRlcyA+IDB9IHsKLSAgICAgICAgZndyaXRlICRidWZmZXIgMSAkbmJ5dGVzICRmMjsKLSAgICAgICAgc2V0IG5ieXRlcyBbZnJlYWQgJGJ1ZmZlciAxIDgxOTIgJGYxXTsKLSAgICB9Ci0gICAgZmNsb3NlICRmMTsKLSAgICBmY2xvc2UgJGYyOwotICAgIGZyZWUgJGJ1ZmZlcgotfQotPC9wcmU+IDwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLTxoMz4gNC40LiBEYXRhdHlwZXMgYW5kIFBvaW50ZXJzIDwvaDM+Ci0KLVNXSUcgc3VwcG9ydHMgdGhlIGJhc2ljIGRhdGF0eXBlcyBvZiA8dHQ+IGludCwgc2hvcnQsCi1sb25nLCBmbG9hdCwgZG91YmxlLCBjaGFyLCA8L3R0PiBhbmQgPHR0PiB2b2lkIDwvdHQ+Ci1hcyB3ZWxsIGFzIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlcnMuICBTV0lHCi1hbHNvIGFsbG93cyBkZXJpdmVkIHR5cGVzIHN1Y2ggYXMgcG9pbnRlcnMsIHN0cnVjdHVyZXMsIGFuZCBjbGFzc2VzLAotYnV0IHRoZXNlIGFyZSBhbGwgZW5jb2RlZCBhcyBwb2ludGVycy4gICAgCi1JZiBhbiB1bmtub3duIHR5cGUgaXMgZW5jb3VudGVyZWQsIFNXSUcgYXNzdW1lcwotdGhhdCBpdCBpcyBhIGNvbXBsZXggZGF0YXR5cGUgdGhhdCBoYXMgYmVlbiBkZWZpbmVkIGVhcmxpZXIuCi1ObyBhdHRlbXB0IGlzIG1hZGUgdG8gZmlndXJlIG91dCB3aGF0IGRhdGEgdGhhdCBkYXRhdHlwZSBhY3R1YWxseSBjb250YWlucwotb3IgaG93IGl0IHNob3VsZCBiZSB1c2VkLiAgT2YgY291cnNlLCB0aGlzIHRoaXMgaXMgb25seSBwb3NzaWJsZQotc2luY2UgU1dJRydzIG1hcHBpbmcgb2YgY29tcGxleCB0eXBlcyBpbnRvIHBvaW50ZXJzIGFsbG93cyB0aGVtCi10byBiZSBoYW5kbGVkIGluIGEgdW5pZm9ybSBtYW5uZXIuIAotQXMgYSByZXN1bHQsIFNXSUcgZG9lcyBub3Qgbm9ybWFsbHkgbmVlZCBhbnkgc29ydAotb2YgdHlwZS1tYXBwaW5nLCBidXQgPHR0PiB0eXBlZGVmIDwvdHQ+IGNhbiBiZSB1c2VkIHRvIG1hcCBhbnkgb2YgdGhlIGJ1aWx0LWluCi1kYXRhdHlwZXMgdG8gbmV3IHR5cGVzIGlmIGRlc2lyZWQuIDxicj4gPGJyPgotCi1TV0lHIGVuY29kZXMgcG9pbnRlcnMgYXMgaGV4YWRlY2ltYWwgc3RyaW5ncyB3aXRoIHR5cGUtaW5mb3JtYXRpb24uICBUaGlzCi10eXBlIGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gcHJvdmlkZSBhIHJ1bi10aW1lIHR5cGUgY2hlY2tpbmcgbWVjaGFuaXNtLgotVGh1cywgYSB0eXBpY2FsIFNXSUcgcG9pbnRlciBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIDogPGJyPiA8YnI+Ci0KLTxjZW50ZXI+Ci08dHQ+IF8xMDA4ZTYxNF9WZWN0b3JfcCA8L3R0PiA8YnI+IDxicj4KLTwvY2VudGVyPgotCi1JZiB0aGlzIHBvaW50ZXIgaXMgcGFzc2VkIGludG8gYSBmdW5jdGlvbiByZXF1aXJpbmcgc29tZSBvdGhlciBraW5kIG9mCi1wb2ludGVyLCBTV0lHIHdpbGwgZ2VuZXJhdGUgYSBUY2wgZXJyb3IgYW5kIHJldHVybiBhbiBlcnJvciBtZXNzYWdlLgotVGhlIE5VTEwgcG9pbnRlciBpcyByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nICJOVUxMIi4gICBUaGUgU1dJRyBydW4tdGltZQotdHlwZSBjaGVja2VyIGlzIHNhYXZ5IHRvIHR5cGVkZWZzIGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYmFzZSBjbGFzc2VzCi1hbmQgZGVyaXZlZCBjbGFzc2VzIGluIEMrKy4gVGh1cyBpZiBhCi11c2VyIHNwZWNpZmllcyA8YnI+IDxicj4KLQotPGNlbnRlcj4KLTx0dD4gdHlwZWRlZiBkb3VibGUgUmVhbDsgPC90dD4gPGJyPiA8YnI+Ci08L2NlbnRlcj4KLQotdGhlIHR5cGUgY2hlY2tlciBrbm93cyB0aGF0IDx0dD4gUmVhbCAqIDwvdHQ+ICBhbmQgPHR0PiBkb3VibGUgKiA8L3R0PgotYXJlIGVxdWl2YWxlbnQgKG1vcmUgb24gQysrIGluIGEgbWludXRlKS4KLUZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2Ygb3RoZXIgVGNsIGV4dGVuc2lvbnMsCi1TV0lHIHBvaW50ZXJzIHNob3VsZCBiZSBzZWVuIGFzIHNwZWNpYWwgImhhbmRsZXMiIGV4Y2VwdCB0aGF0IHRoZXkgCi1oYXBwZW4gdG8gY29udGFpbiB0aGUgcG9pbnRlciB2YWx1ZSBhbmQgaXRzIHR5cGUuIDxicj4gPGJyPgotCi1UbyBzb21lLCB0aGlzIGFwcHJvYWNoIG1heSBzZWVtIGhvcnJpYmx5IHJlc3RyaWN0aXZlIChvciBlcnJvciBwcm9uZSksCi1idXQga2VlcCBpbiBtaW5kIHRoYXQgU1dJRyB3YXMgcHJpbWFyaWx5IGRlc2lnbmVkIHRvIHdvcmsgd2l0aAotZXhpc3RpbmcgQyBhcHBsaWNhdGlvbnMuICBTaW5jZSBtb3N0IEMgcHJvZ3JhbXMgcGFzcyBjb21wbGV4IGRhdGF0eXBlcwotYXJvdW5kIGJ5IHJlZmVyZW5jZSB0aGlzIHRlY2huaXF1ZSB3b3JrcyByZW1hcmthYmx5IHdlbGwgaW4gcHJhY3RpY2UuCi1SdW4gdGltZSB0eXBlLWNoZWNraW5nIGFsc28gZWxpbWluYXRlcyBtb3N0IGNvbW1vbiBjcmFzaGVzIGJ5IGNhdGNoaW5nCi1zdHVwaWQgbWlzdGFrZXMgc3VjaCBhcyB1c2luZyBhIHdyb25nIHZhcmlhYmxlIG5hbWUgb3IgZm9yZ2V0dGluZyB0aGUKLSIkIiBjaGFyYWN0ZXIgaW4gYSBUY2wgc2NyaXB0LiAgICBXaGlsZSBpdCBpcyBzdGlsbCBwb3NzaWJsZSB0byBjcmFzaCBUY2wgYnkgZm9yZ2luZyBhCi1TV0lHIHBvaW50ZXIgdmFsdWUgKG9yIG1ha2luZyBhIGNhbGwgdG8gYnVnZ3kgQyBjb2RlKSwgaXQgaXMgd29ydGgKLWVtcGhhc2l6aW5nIHRoYXQgZXhpc3RpbmcgVGNsIGV4dGVuc2lvbnMKLW1heSBhbHNvIGNyYXNoIGlmIGdpdmVuIGFuIGludmFsaWQgaGFuZGxlLgotCi08aDM+IDQuNS4gR2xvYmFsIFZhcmlhYmxlcyBhbmQgQ29uc3RhbnRzIDwvaDM+Ci0KLVNXSUcgY2FuIGluc3RhbGwgZ2xvYmFsIEMgdmFyaWFibGVzIGFuZCBjb25zdGFudHMgdXNpbmcgVGNsJ3MgdmFyaWFibGUgbGlua2FnZQotbWVjaGFuaXNtLgotVmFyaWFibGVzIG1heSBhbHNvIGJlIGRlY2xhcmVkIGFzIGBgcmVhZCBvbmx5JycgCi13aXRoaW4gdGhlIFRjbCBpbnRlcnByZXRlci4gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cwotaG93IHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzIGNhbiBiZSBhZGRlZCB0byBUY2wgOgotCi08YmxvY2txdW90ZT4KLTx0dD4gPHByZT4KLS8vIFNXSUcgZmlsZSB3aXRoIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzCi0lewotJX0KLQotLy8gU29tZSBnbG9iYWwgdmFyaWFibGVzCi1leHRlcm4gIGludCBNeV92YXJpYWJsZTsgICAgIAotZXh0ZXJuICBjaGFyICpkZWZhdWx0X3BhdGg7Ci1leHRlcm4gIGRvdWJsZSBNeV9kb3VibGU7Ci0KLS8vIFNvbWUgY29uc3RhbnRzCi0jZGVmaW5lICBQSSAgICAgMy4xNDE1OTI2NTM1OQotI2RlZmluZSAgUElfNCAgIFBJLzQuMAotZW51bSBjb2xvcnMge3JlZCxibHVlLGdyZWVufTsKLWNvbnN0IGludCBTSVpFT0ZfVkVDVE9SID0gc2l6ZW9mKFZlY3Rvcik7Ci0KLS8vIEEgcmVhZCBvbmx5IHZhcmlhYmxlCi0lcmVhZG9ubHkKLWV4dGVybiBpbnQgU3RhdHVzOwotJXJlYWR3cml0ZQotCi08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLTxoMz4gNC42LiBDKysgU3VwcG9ydCA8L2gzPgotCi1UaGUgU1dJRyBwYXJzZXIgY2FuIGhhbmRsZSBzaW1wbGUgQysrIGNsYXNzIGRlZmluaXRpb25zIGFuZCBzdXBwb3J0cyBwdWJsaWMKLWluaGVyaXRhbmNlLCB2aXJ0dWFsIGZ1bmN0aW9ucywgc3RhdGljIGZ1bmN0aW9ucywgY29uc3RydWN0b3JzIGFuZAotZGVzdHJ1Y3RvcnMuICAgIEN1cnJlbnRseSwgQysrIHRyYW5zbGF0aW9uIGlzIHBlcmZvcm1lZAotYnkgcG9saXRlbHkgdHJhbmZvcm1pbmcgQysrIGNvZGUgaW50byBDIGNvZGUgYW5kIGdlbmVyYXRpbmcgd3JhcHBlcnMgZm9yIHRoZQotQyBmdW5jdGlvbnMuICBGb3IgZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBTV0lHIGludGVyZmFjZSBmaWxlCi1jb250YWluaW5nIGEgQysrIGNsYXNzIGRlZmluaXRpb246Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotJW1vZHVsZSB0cmVlCi0lewotI2luY2x1ZGUgInRyZWUuaCIKLSV9Ci0KLWNsYXNzIFRyZWUgewotcHVibGljOgotICAgVHJlZSgpOwotICB+VHJlZSgpOwotICAgdm9pZCAgaW5zZXJ0KGNoYXIgKml0ZW0pOwotICAgaW50ICAgc2VhcmNoKGNoYXIgKml0ZW0pOwotICAgaW50ICAgcmVtb3ZlKGNoYXIgKml0ZW0pOwotc3RhdGljIHZvaWQgcHJpbnQoVHJlZSAqdCk7ICAgCi19OwotPC9wcmU+Ci08L3R0PgotPC9ibG9ja3F1b3RlPgotCi1XaGVuIHRyYW5zbGF0ZWQsIHRoZSBjbGFzcyB3aWxsIGJlIGFjY2VzcyB1c2VkIHRoZSBmb2xsb3dpbmcgc2V0IG9mCi1mdW5jdGlvbnMgKGNyZWF0ZWQgYXV0b21hdGljYWxseSBieSBTV0lHKS4KLQotPGJsb2NrcXVvdGU+Ci08dHQ+Ci08cHJlPgotVHJlZSAqbmV3X1RyZWUoKTsKLXZvaWQgZGVsZXRlX1RyZWUoVHJlZSAqdGhpcyk7Ci12b2lkIFRyZWVfaW5zZXJ0KFRyZWUgKnRoaXMsIGNoYXIgKml0ZW0pOwotaW50ICBUcmVlX3NlYXJjaChUcmVlICp0aGlzLCBjaGFyICppdGVtKTsKLWludCAgVHJlZV9yZW1vdmUoVHJlZSAqdGhpcywgY2hhciAqaXRlbSk7Ci12b2lkIFRyZWVfcHJpbnQoVHJlZSAqdCk7Ci08L3ByZT4KLTwvdHQ+Ci08L2Jsb2NrcXVvdGU+Ci0KLQotQWxsIEMrKyBmdW5jdGlvbnMgd3JhcHBlZCBieSBTV0lHIGV4cGxpY2l0bHkgcmVxdWlyZSB0aGUgPHR0PiB0aGlzIDwvdHQ+IHBvaW50ZXIKLWFzIHNob3duLiAgVGhpcyBhcHByb2FjaCBoYXMgdGhlIGFkdmFudGFnZSBvZiB3b3JraW5nIGZvciBhbGwgb2YgdGhlIHRhcmdldAotbGFuZ3VhZ2VzLiAgSXQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gcGFzcyBvYmplY3RzIGJldHdlZW4KLW90aGVyIEMrKyBmdW5jdGlvbnMgc2luY2UgZXZlcnkgQysrIG9iamVjdCBpcyBzaW1wbHkgcmVwcmVzZW50ZWQgYXMgYSBTV0lHIHBvaW50ZXIuICAgU1dJRyBkb2VzIG5vdCBzdXBwb3J0IGZ1bmN0aW9uIG92ZXJsb2FkaW5nLCBidXQgb3ZlcmxvYWRlZCBmdW5jdGlvbnMKLWNhbiBiZSByZXNvbHZlZCBieSByZW5hbWluZyB0aGVtIHdpdGggdGhlIFNXSUcgPHR0PiAlbmFtZSA8L3R0PiBkaXJlY3RpdmUgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci1jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgIExpc3QoKTsKLSVuYW1lKExpc3RNYXgpIExpc3QoaW50IG1heHNpemUpOwotLi4uCi19OwotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotVGhlIGFwcHJvYWNoIHVzZWQgYnkgU1dJRyBpcwotcXVpdGUgZGlmZmVyZW50IHRoYW4gdGhhdCB1c2VkIGluIHN5c3RlbXMgc3VjaCBhcwotT2JqZWN0IFRjbCBvciB2dGsgW3Z0ayxXZXRoZXJhbGxdLiAgQXMgYSByZXN1bHQsIHVzZXJzIG9mIHRob3NlIHN5c3RlbXMKLW1heSBmaW5kIGl0IHRvIGJlIGNvbmZ1c2luZy4gIEhvd2V2ZXIsCi1JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSBtb2R1bGFyIGRlc2lnbiBvZgotU1dJRyBhbGxvd3MgdGhlIHVzZXIgdG8gY29tcGxldGVseSByZWRlZmluZSB0aGUgb3V0cHV0IGJlaGF2aW9yIG9mCi10aGUgc3lzdGVtLiAgVGh1cywgd2hpbGUgdGhlIGN1cnJlbnQgQysrIGltcGxlbWVudGF0aW9uIGlzIHF1aXRlIGRpZmZlcmVudAotdGhhbiBvdGhlciBzeXN0ZW1zIHN1cHBvcnRpbmcgQysrLCBpdCB3b3VsZCBiZSBlbnRpcmVseSBwb3NzaWJsZQotd3JpdGUgYSBuZXcgU1dJRyBtb2R1bGUgdGhhdCB3cmFwcGVkIEMrKyBjbGFzc2VzIGludG8gYSByZXByZXNlbnRhdGlvbgotc2ltaWxhciB0byB0aGF0IHVzZWQgYnkgT2JqZWN0IFRjbCAoaW4gZmFjdCwgaW4gbWlnaHQgZXZlbiBiZSBwb3NzaWJsZQotdG8gdXNlIFNXSUcgdG8gcHJvZHVjZSB0aGUgaW5wdXQgZmlsZXMgdXNlZCBmb3IgT2JqZWN0IFRjbCkuCi0KLTxoMz4gNC43LiBNdWx0aXBsZSBGaWxlcyBhbmQgQ29kZSBSZXVzZSA8L2gzPgotCi1BbiBlc3NlbnRpYWwgZmVhdHVyZSBvZiBTV0lHIGlzIGl0cyBzdXBwb3J0IGZvciBtdWx0aXBsZSBmaWxlcwotYW5kIG1vZHVsZXMuICAgQSBTV0lHIGludGVyZmFjZSBmaWxlIG1heSBpbmNsdWRlIGFub3RoZXIgaW50ZXJmYWNlCi1maWxlIHVzaW5nIHRoZSAiPHR0PiAlaW5jbHVkZSA8L3R0PiIgZGlyZWN0aXZlLiAgICBUaHVzLCBhbiBpbnRlcmZhY2UKLWZvciBhIGxhcmdlIHN5c3RlbSBtaWdodCBiZSBicm9rZW4gdXAgaW50byBhIGNvbGxlY3Rpb24gb2Ygc21hbGxlcgotbW9kdWxlcyBhcyBzaG93biAKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0lbW9kdWxlIHBhY2thZ2UKLSV7Ci0jaW5jbHVkZSAicGFja2FnZS5oIgotJX0KLQotJWluY2x1ZGUgZ2VvbWV0cnkuaQotJWluY2x1ZGUgbWVtb3J5LmkKLSVpbmNsdWRlIG5ldHdvcmsuaQotJWluY2x1ZGUgZ3JhcGhpY3MuaQotJWluY2x1ZGUgcGh5c2ljcy5pCi0KLSVpbmNsdWRlIHdpc2guaQotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotQ29tbW9uIG9wZXJhdGlvbnMgY2FuIGJlIHBsYWNlZCBpbnRvIGEgU1dJRyBsaWJyYXJ5IGZvciB1c2UgaW4KLWFsbCBhcHBsaWNhdGlvbnMuICBGb3IgZXhhbXBsZSwgdGhlIDx0dD4gJWluY2x1ZGUgd2lzaC5pIDwvdHQ+IGRpcmVjdGl2ZQotdGVsbHMgU1dJRyB0byBpbmNsdWRlIGNvZGUgZm9yIHRoZSA8dHQ+IFRjbF9BcHBJbml0KCkgPC90dD4gZnVuY3Rpb24KLW5lZWRlZCB0byByZWJ1aWxkIHRoZSA8dHQ+IHdpc2ggPC90dD4gcHJvZ3JhbS4gIFRoZSBsaWJyYXJ5IGNhbiBhbHNvIGJlCi11c2VkIHRvIGJ1aWxkIG1vZHVsZXMKLWFsbG93aW5nIFNXSUcgdG8gYmUgdXNlZCB3aXRoIGNvbW1vbiBUY2wgZXh0ZW5zaW9ucyBzdWNoCi1hcyBFeHBlY3QgW0V4cGVjdF0uIE9mIGNvdXJzZSwgdGhlIHByaW1hcnkgdXNlIG9mIHRoZSBsaWJyYXJ5IGlzIHdpdGgKLWxhcmdlIGFwcGxpY2F0aW9ucyBzdWNoIGFzIE9wZW4tSW52ZW50b3Igd2hpY2ggY29udGFpbiBodW5kcmVkcyBvZgotbW9kdWxlcyBhbmQgYSBzdWJzdGFudGlhbCBjbGFzcyBoaWVyYXJjaHkgW0ludmVudF0uICAgSW4gdGhpcyBjYXNlIGEgdXNlcgotY291bGQgdXNlIFNXSUcncyBpbmNsdWRlIG1lY2hhbmlzbSB0byBzZWxlY3RpdmVseSBwaWNrIHdoaWNoIG1vZHVsZXMKLXRoZXkgd2FudGVkIHRvIHVzZSBmb3IgYSBwYXJ0aWN1bGFyIHByb2JsZW0uCi0KLTxoMz4gNC44LiBUaGUgRG9jdW1lbnRhdGlvbiBTeXN0ZW0gPC9oMz4KLQotU1dJRyBwcm9kdWNlcyBkb2N1bWVudGF0aW9uIGluIEFTQ0lJLCBMYVRlWCwgb3IgSFRNTAotZm9ybWF0IGRlc2NyaWJpbmcgZXZlcnl0aGluZyB0aGF0IHdhcyB3cmFwcGVkLiAgVGhlIGRvY3VtZW50YXRpb24KLWZvbGxvd3MgdGhlIHN5bnRheCBydWxlcyBvZiB0aGUgdGFyZ2V0IGxhbmd1YWdlIGFuZCBjYW4KLWNhbiBiZSBmdXJ0aGVyIGVuaGFuY2VkIGJ5IGFkZGluZyBkZXNjcmlwdGlvbnMgaW4gYSBDL0MrKyBjb21tZW50Ci1pbW1lZGlhdGVseSBmb2xsb3dpbmcgYSBkZWNsYXJhdGlvbi4gIFRoZXNlIGNvbW1lbnRzIG1heSBhbHNvIGNvbnRhaW4KLWVtYmVkZGVkIExhVGVYIG9yIEhUTUwgY29tbWFuZHMuICBGb3IgZXhhbXBsZToKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci1leHRlcm4gc2l6ZV90IGZyZWFkKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgc2l6ZV90IG5vYmosIEZJTEUgKnN0cmVhbSk7Ci0vKiB7XHR0IGZyZWFkfSByZWFkcyBmcm9tIHtcdHQgc3RyZWFtfSBpbnRvCi10aGUgYXJyYXkge1x0dCBwdHJ9IGF0IG1vc3Qge1x0dCBub2JqfSBvYmplY3RzCi1vZiBzaXplIHtcdHQgc2l6ZX0uICAge1x0dCBmcmVhZH0gcmV0dXJucwotdGhlIG51bWJlciBvZiBvYmplY3RzIHJlYWQuICovCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1XaGVuIG91dHB1dCBieSBTV0lHIGFuZCBwcm9jZXNzZWQgYnkgTGFUZVgsIHRoaXMgYXBwZWFycyBhcyBmb2xsb3dzIDoKLQotPHVsPgotPHR0PiBzaXplX3QgOiBmcmVhZCBwdHIgc2l6ZSBub2JqIHN0cmVhbSA8L3R0PiA8YnI+Ci08dWw+Ci0gICAgIDx0dD4gZnJlYWQgPC90dD4gcmVhZHMgZnJvbSA8dHQ+IHN0cmVhbSA8L3R0PiBpbnRvIHRoZSBhcnJheSA8dHQ+IHB0ciA8L3R0PiBhdAotICAgICBtb3N0IDx0dD4gbm9iaiA8L3R0PiBvYmplY3RzIG9mIHNpemUgPHR0PiBzaXplIDwvdHQ+LiAgPHR0PiBmcmVhZCA8L3R0PiAKLSAgICByZXR1cm5zCi0gICAgIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyByZWFkLiAKLTwvdWw+Ci08L3VsPgotCi08aDM+IDQuOS4gRXh0ZW5kaW5nIHRoZSBTV0lHIFN5c3RlbSA8L2gzPgotCi1GaW5hbGx5LCBTV0lHIGl0c2VsZiBjYW4gYmUgZXh0ZW5kZWQgYnkgdGhlIHVzZXIgdG8gcHJvdmlkZSBuZXcKLWZ1bmN0aW9uYWxpdHkuICAgIFRoaXMgaXMgZG9uZSBieSBtb2RpZnlpbmcgYW4gZXhpc3Rpbmcgb3IgY3JlYXRpbmcgYQotbmV3IGxhbmd1YWdlIGNsYXNzLiAgIEEgdHlwaWNhbCBjbGFzcyBtdXN0IHNwZWNpZnkgdGhlIGZvbGxvd2luZwotZnVuY3Rpb25zIHRoYXQgZGV0ZXJtaW5lIHRoZSBiZWhhdmlvciBvZiB0aGUgcGFyc2VyIG91dHB1dCA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotLy8gRmlsZSA6IHN3aWd0Y2wuaAotY2xhc3MgVENMIDogcHVibGljIExhbmd1YWdlIHsKLXByaXZhdGU6Ci0gIC8vIFB1dCBwcml2YXRlIHN0dWZmIGhlcmUKLXB1YmxpYyA6Ci0gIFRDTCgpOwotICBpbnQgbWFpbihpbnQsIGNoYXIgKmFyZ3ZbXSk7Ci0gIHZvaWQgY3JlYXRlX2Z1bmN0aW9uKGNoYXIgKixjaGFyICosRGF0YVR5cGUqLAotICAgICAgICAgICAgICAgICAgICAgICBQYXJtTGlzdCAqKTsKLSAgdm9pZCBsaW5rX3ZhcmlhYmxlKGNoYXIgKixjaGFyICosRGF0YVR5cGUgKik7Ci0gIHZvaWQgZGVjbGFyZV9jb25zdChjaGFyICosaW50LGNoYXIgKik7Ci0gIHZvaWQgaW5pdGlhbGl6ZSh2b2lkKTsKLSAgdm9pZCBoZWFkZXJzKHZvaWQpOwotICB2b2lkIGNsb3NlKHZvaWQpOwotICB2b2lkIHVzYWdlX3ZhcihjaGFyICosRGF0YVR5cGUqLGNoYXIgKiopOwotICB2b2lkIHVzYWdlX2Z1bmMoY2hhciAqLERhdGFUeXBlKixQYXJtTGlzdCosCi0gICAgICAgICAgICAgICAgICBjaGFyICoqKTsKLSAgdm9pZCB1c2FnZV9jb25zdChjaGFyICosaW50LGNoYXIqLGNoYXIqKik7Ci0gIHZvaWQgc2V0X21vZHVsZShjaGFyICopOwotICB2b2lkIHNldF9pbml0KGNoYXIgKik7Ci19OwotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotRGVzY3JpcHRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgZm91bmQgaW4gdGhlIFNXSUcKLXVzZXJzIG1hbnVhbC4gICBUbyBidWlsZCBhIG5ldyB2ZXJzaW9uIG9mIFNXSUcsIHRoZSB1c2VyCi1vbmx5IG5lZWRzIHRvIHByb3ZpZGUgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25zIGFuZCBhIG1haW4KLXByb2dyYW0gd2hpY2ggbG9va3Mgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZyA6Ci0KLTxibG9ja3F1b3RlPgotPHR0PiA8cHJlPgotCi0vLyBTV0lHIG1haW4gcHJvZ3JhbQotCi0jaW5jbHVkZSAic3dpZy5oIgotI2luY2x1ZGUgInN3aWd0Y2wuaCIKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0KLSAgTGFuZ3VhZ2UgKmxhbmc7Ci0KLSAgbGFuZyA9IG5ldyBUQ0w7Ci0gIFNXSUdfbWFpbihhcmdjLGFyZ3YsbGFuZywoRG9jdW1lbnRhdGlvbiAqKSAwKTsKLQotfQotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2hlbiBsaW5rZWQgd2l0aCBhIGxpYnJhcnkgZmlsZSwgYW55IGV4dGVuc2lvbnMgYW5kCi1tb2RpZmljYXRpb25zIGNhbiBub3cgYmUgdXNlZCB3aXRoIHRoZSBTV0lHIHBhcnNlci4gIFdoaWxlCi13cml0aW5nIGEgbmV3IGxhbmd1YWdlIGRlZmluaXRpb24gaXMgbm90IGVudGlyZWx5IHRyaXZpYWwsCi1pdCBjYW4gdXN1YWxseSBiZSBkb25lIGJ5IGp1c3QgY29weWluZyBvbmUgb2YgdGhlIGV4aXN0aW5nCi1tb2R1bGVzIGFuZCBtb2RpZnlpbmcgaXQgYXBwcm9wcmlhdGVseS4gICAKLQotPGgyPiA1LiBFeGFtcGxlcyA8L2gyPgotCi08aDM+IDUuMS4gQSBDLVRjbCBMaW5rZWQgTGlzdCA8L2gzPgotCi1TV0lHIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIHNpbXBsZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdXN1YWJsZSBpbiAKLWJvdGggQyBhbmQgVGNsLiAgIFRoZSBmb2xsb3dpbmcgY29kZSBzaG93cyBhIFNXSUcgaW50ZXJmYWNlIGZpbGUgZm9yCi1idWlsZGluZyBhIHNpbXBsZSBsaW5rZWQgbGlzdC4KLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0vKiBGaWxlIDogbGlzdC5pICovCi0lewotc3RydWN0IE5vZGUgewotICBOb2RlKGNoYXIgKm4pIHsKLSAgICBuYW1lID0gbmV3IGNoYXJbc3RybGVuKG4pKzFdOwotICAgIHN0cmNweShuYW1lLG4pOwotICAgIG5leHQgPSAwOwotICB9OwotICBjaGFyICAqbmFtZTsKLSAgTm9kZSAqbmV4dDsKLX07Ci0lfQotCi0vLyBKdXN0IGFkZCBzdHJ1Y3QgZGVmaW5pdGlvbiB0bwotLy8gdGhlIGludGVyZmFjZSBmaWxlLgotCi1zdHJ1Y3QgTm9kZSB7Ci0gIE5vZGUoY2hhciAqKTsKLSAgY2hhciAqbmFtZTsKLSAgTm9kZSAqbmV4dDsKLX07Ci0KLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLVdoZW4gdXNlZCBpbiBhIFRjbCBzY3JpcHQsIHdlIGNhbiBub3cgY3JlYXRlIG5ldyBub2RlcyBhbmQgYWNjZXNzCi1pbmRpdmlkdWFsIG1lbWJlcnMgb2YgdGhlIDx0dD4gTm9kZSA8L3R0PiBzdHJ1Y3R1cmUuICAgSW4gZmFjdCwgd2UgY2FuCi13cml0ZSBjb2RlIHRvIGNvbnZlcnQgYmV0d2VlbiBUY2wgbGlzdHMgYW5kIGxpbmtlZCBsaXN0cyBlbnRpcmVseQotaW4gVGNsIGFzIHNob3duIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0jIEJ1aWxkcyBsaW5rZWQgbGlzdCBmcm9tIGEgVGNsIGxpc3QKLXByb2MgYnVpbGRsaXN0IHtsaXN0IGhlYWR9IHsKLSAgICBzZXQgbml0ZW1zIFtsbGVuZ3RoICRsaXN0XTsKLSAgICBmb3Ige3NldCBpIDB9IHskaSAmbHQ7ICRuaXRlbXN9IHtpbmNyIGkgLTF9IHsKLSAgICAgICAgc2V0IGl0ZW0gW2xyYW5nZSAkbGlzdCAkaSAkaV0gCi0gICAgICAgIHNldCBuIFtuZXdfTm9kZSAkaXRlbV0gICAgICAgIAotICAgICAgICBOb2RlX3NldF9uZXh0ICRuICRoZWFkICAgICAgICAKLSAgICAgICAgc2V0IGhlYWQgJG4gICAgICAgICAgICAgICAgICAgCi0gICAgfQotICAgIHJldHVybiAkaGVhZAotfQotIyBCdWlsZHMgYSBUY2wgbGlzdCBmcm9tIGEgbGlua2VkIGxpc3QKLXByb2MgZ2V0X2xpc3Qge2xsaXN0fSB7Ci0gICAgc2V0IGxpc3Qge30gCi0gICAgd2hpbGUgeyRsbGlzdCAhPSAiTlVMTCJ9IHsKLSAgICAgICAgbGFwcGVuZCBsaXN0IFtOb2RlX25hbWVfZ2V0ICRsbGlzdF0KLSAgICAgICAgc2V0IGxsaXN0IFtOb2RlX2dldF9uZXh0ICRsbGlzdF0gICAKLSAgICB9Ci0gICAgcmV0dXJuICRsaXN0ICAgICAgICAgICAgICAgICAgICAgIAotfQotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2hlbiBydW4gaW50ZXJhY3RpdmVseSwgd2UgY291bGQgbm93IHVzZSBvdXIgVGNsIGZ1bmN0aW9ucyBhcwotZm9sbG93cy4KLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci0lIHNldCBsIHtKb2huIEFubmUgTWFyeSBKaW19Ci1Kb2huIEFubmUgTWFyeSBKaW0KLSUgc2V0IGxsIFtidWlsZGxpc3QgJGwgXzBfTm9kZV9wXSAgICAgICAgICAgCi1fMTAwMGNhYjhfTm9kZV9wCi0lIGdldF9saXN0ICRsbAotSmltIE1hcnkgQW5uZSBKb2huCi0lIHNldCBsbCBbYnVpbGRsaXN0IHtNaWtlIFBldGVyIERhdmV9ICRsbF0KLV8xMDAwY2MzOF9Ob2RlX3AKLSUgZ2V0X2xpc3QgJGxsCi1EYXZlIFBldGVyIE1pa2UgSmltIE1hcnkgQW5uZSBKb2huCi0lIAotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLUFzaWRlIGZyb20gdGhlIHBvaW50ZXIgdmFsdWVzLCBvdXIgc2NyaXB0IGFjdHMgbGlrZSBhbnkgb3RoZXIKLVRjbCBzY3JpcHQuICAgSG93ZXZlciwgd2UgaGF2ZSBidWlsdCB1cCBhIHJlYWwKLUMgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjb3VsZCBiZSBlYXNpbHkgcGFzc2VkIHRvIG90aGVyIEMgZnVuY3Rpb25zCi1pZiBuZWVkZWQuCi0KLTxoMz4gNS4yLiBVc2luZyBDIERhdGEtU3RydWN0dXJlcyB3aXRoIFRrIDwvaDM+Ci0KLUluIG1hbm5lciBzaW1pbGFyIHRvIHRoZSBsaW5rZWQgbGlzdCBleGFtcGxlLCBUY2wvVGsgY2FuIGJlIHVzZWQKLXRvIGJ1aWxkIGNvbXBsZXggQy9DKysgZGF0YSBzdHJ1Y3R1cmVzLiAgIEZvciBleGFtcGxlLCBzdXBwb3NlIHdlCi13YW50ZWQgdG8gaW50ZXJhY3RpdmVseSBidWlsZCBhIGdyYXBoIG9mIGBgTm9kZXMnJyBmb3IgdXNlIGluIGEgQwotYXBwbGljYXRpb24uCi1BIHR5cGljYWwgaW50ZXJmYWNlIGZpbGUgbWlnaHQgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKLQotPGJsb2NrcXVvdGU+IDx0dD4gPHByZT4KLSV7Ci0jaW5jbHVkZSAibm9kZXMuaCIKLSV9Ci0KLSVpbmNsdWRlIHdpc2gKLWV4dGVybiBOb2RlICpuZXdfbm9kZSgpOyAgICAgICAgICAgICAgICAgCi1leHRlcm4gdm9pZCBBZGRFZGdlKE5vZGUgKm4xLCBOb2RlICpuMik7IAotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2l0aGluIGEgVGNsL1RrIHNjcmlwdCwgbG9vc2VseSBiYXNlZCBvbiBvbmUgdG8gbWFrZSBiYWxsIGFuZCBzdGljayBncmFwaHMKLWluIFtPdXN0ZXJob3V0XSwgYSBncmFwaCBjb3VsZCBiZSBidWlsdCBhcyBmb2xsb3dzOgotCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotcHJvYyBtYWtlTm9kZSB7eCB5fSB7Ci0gICBnbG9iYWwgbm9kZVggbm9kZVkgbm9kZVAgZWRnZUZpcnN0IGVkZ2VTZWNvbmQKLSAgIHNldCBuZXcgWy5jcmVhdGUgb3ZhbCBbZXhwciAkeC0xNV0gXAotICAgICAgICAgICBbZXhwciAkeS0xNV0gW2V4cHIgJHgrMTVdIFwKLSAgICAgICAgICAgW2V4cHIgJHkrMTVdIC1vdXRsaW5lIGJsYWNrIFwKLSAgICAgICAgICAgLWZpbGwgd2hpdGUgLXRhZ3Mgbm9kZV0KLSAgIHNldCBuZXdub2RlIFtuZXdfbm9kZV0gICAgICAgICAgIAotICAgc2V0IG5vZGVYKCRuZXcpICR4Ci0gICBzZXQgbm9kZVkoJG5ldykgJHkKLSAgIHNldCBub2RlUCgkbmV3KSAkbmV3bm9kZSAgICAgICAgIAotICAgc2V0IGVkZ2VGaXJzdCgkbmV3KSB7fQotICAgc2V0IGVkZ2VTZWNvbmQoJG5ldykge30KLX0KLXByb2MgbWFrZUVkZ2Uge2ZpcnN0IHNlY29uZH0gewotICAgZ2xvYmFsIG5vZGVYIG5vZGVZIG5vZGVQIGVkZ2VGaXJzdCBlZGdlU2Vjb25kCi0gICBzZXQgeDEgJG5vZGVYKCRmaXJzdCk7ICBzZXQgeTEgJG5vZGVZKCRmaXJzdCkKLSAgIHNldCB4MiAkbm9kZVgoJHNlY29uZCk7IHNldCB5MiAkbm9kZVkoJHNlY29uZCkKLSAgIHNldCBlZGdlIFsuYyBjcmVhdGUgbGluZSAkeDEgJHkxICR4MiAkeTIgXAotICAgICAgICAgICAgICAtdGFncyBlZGdlfQotICAgLmMgbG93ZXIgZWRnZQotICAgbGFwcGVuZCBlZGdlRmlyc3QoJGZpcnN0KSAkZWRnZQotICAgbGFwcGVuZCBlZGdlU2Vjb25kKCRmaXJzdCkgJGVkZ2UKLSAgIEFkZEVkZ2UgJG5vZGVQKCRmaXJzdCkgJG5vZGVQKCRzZWNvbmQpCi19Ci08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1UaGVzZSBmdW5jdGlvbnMgY3JlYXRlCi1UayBjYW52YXMgaXRlbXMsIGJ1dCBhbHNvIGF0dGFjaCBhIHBvaW50ZXIgdG8gYSBDIGRhdGEgc3RydWN0dXJlIHRvIGVhY2ggb25lLgotVGhpcyBpcyBkb25lIGJ5IG1haW50YWluaW5nIGFuIGFzc29jaWF0aXZlIGFycmF5IG1hcHBpbmcgCi1pdGVtIGlkZW50aWZpZXJzIHRvIHBvaW50ZXJzICh3aXRoIHRoZSA8dHQ+IG5vZGVQKCkgPC90dD4gYXJyYXkpLiAKLVdoZW4gYQotcGFydGljdWxhciBgYG5vZGUnJyBpcyByZWZlcmVuY2VkIGxhdGVyLCB3ZSBjYW4gdXNlIHRoaXMgdG8KLWdldCBpdHMgcG9pbnRlciB1c2UgaXQgaW4gY2FsbHMgdG8gQyBmdW5jdGlvbnMuCi0KLTxoMz4gNS4zLiBQYXJzaW5nIGEgQysrIFNpbXBsZSBDbGFzcyBIaWVyYXJjaHkgPC9oMz4KLQotQXMgbWVudGlvbmVkIGVhcmxpZXIsIFNXSUcgY2FuIGhhbmRsZSBDKysgY2xhc3NlcyBhbmQgcHVibGljCi1pbmhlcml0YW5jZS4gICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgcHJvdmlkZXMgYSBmZXcgY2xhc3NlcwotYW5kIGlsbHVzdHJhdGVzIGhvdyB0aGlzIGlzIGFjY29tcGxpc2hlZCAoc29tZSBjb2RlIGhhcyBiZWVuCi1vbW1pdHRlZCBmb3IgcmVhZGFiaWxpdHkpLgotCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotLy8gQSBTV0lHIGluaGVyaXRhbmNlIGV4YW1wbGUKLSVtb2R1bGUgc2hhcGVzCi0lewotI2luY2x1ZGUgInNoYXBlcy5oIgotJX0KLQotY2xhc3MgU2hhcGUgewotcHJpdmF0ZToKLSAgZG91YmxlIHhjLCB5YzsKLXB1YmxpYzoKLSAgdmlydHVhbCBkb3VibGUgYXJlYSgpID0gMDsKLSAgdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOwotICB2b2lkICAgIHNldF9wb3NpdGlvbihkb3VibGUgeCwgZG91YmxlIHkpOwotICB2b2lkICAgIHByaW50X3Bvc2l0aW9uKCk7Ci19OwotCi1jbGFzcyBDaXJjbGU6IHB1YmxpYyBTaGFwZSB7Ci0gcHJpdmF0ZToKLSAgZG91YmxlIHJhZGl1czsKLSBwdWJsaWM6Ci0gIENpcmNsZShkb3VibGUgcik7Ci0gIGRvdWJsZSBhcmVhKCk7Ci0gIGRvdWJsZSBwZXJpbWV0ZXIoKTsKLX07Ci0KLWNsYXNzIFNxdWFyZSA6IHB1YmxpYyBTaGFwZSB7Ci1wcml2YXRlOgotICBkb3VibGUgd2lkdGg7Ci1wdWJsaWM6Ci0gIFNxdWFyZShkb3VibGUgdyk7Ci0gIGRvdWJsZSBhcmVhKCk7Ci0gIGRvdWJsZSBwZXJpbWV0ZXIoKTsKLX07Ci0KLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLU5vdywgd2hlbiB3cmFwcGVkIGJ5IFNXSUcgKG5vdGUgOgotV2hlbiBwYXJzaW5nIEMrKyBjbGFzc2VzLCBTV0lHIHRocm93cyBhd2F5IGV2ZXJ5dGhpbmcgZGVjbGFyZWQgYXMgcHJpdmF0ZSwKLWlubGluZSBjb2RlLCBhbmQgYWxvdCBvZiB0aGUgb3RoZXIgY2x1dHRlciBmb3VuZCBpbiBDKysgaGVhZGVyIGZpbGVzLiAgCi1QcmltYXJpbHkgdGhpcyBpcyBwcm92aWRlZCBvbmx5IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGJ1aWxkIGludGVyZmFjZXMgZnJvbQotZXhpc3RpbmcgQysrIGhlYWRlciBmaWxlcy4pLCB3ZSBjYW4gdXNlIG91ciBjbGFzcyBzdHJ1Y3R1cmUgYXMgZm9sbG93czoKLQotPGJsb2NrcXVvdGU+IDx0dD4gPHByZT4KLSUgc2V0IGMgW25ld19DaXJjbGUgNF0KLV8xMDAwYWQ3MF9DaXJjbGVfcAotJSBzZXQgcyBbbmV3X1NxdWFyZSAxMF0KLV8xMDAwYWRjMF9TcXVhcmVfcAotJSBTaGFwZV9hcmVhICRjCi01MC4yNjU0ODI0NjQwMDAwMDIwMAotJSBTaGFwZV9hcmVhICRzCi0xMDAuMDAwMDAwMDAwMDAwMDAwMDAKLSUgU2hhcGVfc2V0X3Bvc2l0aW9uICRjIC01IDEwCi0lIENpcmNsZV9wcmludF9wb3NpdGlvbiAkYwoteGMgPSAtNSwgeWMgPSAxMAotJSAKLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLUluIG91ciBleGFtcGxlLCB3ZSBoYXZlIGNyZWF0ZWQgbmV3IDx0dD4gQ2lyY2xlIDwvdHQ+IGFuZCA8dHQ+IFNxdWFyZSA8L3R0PiBvYmplY3RzLAotYnV0IHRoZXNlIGNhbiBiZSB1c2VkIGludGVyY2hhbmdhYmx5IGluIGFueSBmdW5jdGlvbnMgZGVmaW5lZCBpbiB0aGUgPHR0PiBTaGFwZSA8L3R0PgotYmFzZSBjbGFzcy4gIFRoZSBTV0lHIHR5cGUgY2hlY2tlciBpcyBlbmNvZGVkIHdpdGggdGhlIGNsYXNzIGhpZXJhcmNoeSBhbmQKLWtub3dzIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgZGlmZmVyZW50IGNsYXNzZXMuICAgVGh1cywgd2hpbGUgYW4KLW9iamVjdCBvZiB0eXBlIDx0dD4gQ2lyY2xlIDwvdHQ+IGlzIHBlcmZlY3RseSBhY2NlcHRhYmxlIHRvIGEgZnVuY3Rpb24gb3BlcmF0aW5nCi1vbiBzaGFwZXMsIGl0IHdvdWxkIGJlIHVuYWNjZXB0YWJsZSB0byBhIGZ1bmN0aW9uIG9wZXJhdGluZyBvbmx5IG9uIHRoZQotPHR0PiBTcXVhcmUgPC90dD4gdHlwZS4gICAgQXMgaW4gQysrLCBhbnkgZnVuY3Rpb25zIGluIHRoZSBiYXNlIGNsYXNzIGNhbiBiZQotY2FsbGVkIGluIHRoZSBkZXJpdmVkIGNsYXNzIGFzIHNob3duIGJ5IHRoZSA8dHQ+IENpcmNsZV9wcmludF9wb3NpdGlvbiA8L3R0PgotZnVuY3Rpb24gYWJvdmUuCi0KLTxoMj4gNi4gVXNpbmcgU1dJRyBpbiBSZWFsIEFwcGxpY2F0aW9ucyA8L2gyPgotCi1TbyBmYXIgb25seSBhIGZldyBzaW1wbGUgdG95IGV4YW1wbGVzIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8gaWxsdXN0cmF0ZQotdGhlIG9wZXJhdGlvbiBvZiBTV0lHIGluIGdlbmVyYWwuCi1UaGlzIHNlY3Rpb24gd2lsbCBkZXNjcmliZSBob3cgU1dJRyBjYW4gYmUgdXNlZAotd2l0aCBsYXJnZXIgYXBwbGljYXRpb25zLgotCi08aDM+IDYuMS4gVXNlIGluIFNjaWVudGlmaWMgQXBwbGljYXRpb25zIDwvaDM+Ci0gCi1NYW55IHVzZXJzLCBlc3BlY2lhbGx5IHdpdGhpbiB0aGUgc2NpZW50aWZpYyBhbmQgZW5naW5lZXJpbmcgCi1jb21tdW5pdHksIGhhdmUgc3BlbnQgeWVhcnMgZGV2ZWxvcGluZyBzaW11bGF0aW9uIGNvZGVzLgotV2hpbGUgbWFueSBvZiB0aGVzZSB1c2VycyBhcHByZWNpYXRlIHRoZQotcG93ZXIgdGhhdCBhIHNjcmlwdGluZyBsYW5ndWFnZSBjYW4gcHJvdmlkZSwgdGhleSBkb24ndCB3YW50IHRvIAotY29tcGxldGVseSByZXdyaXRlIHRoZWlyIGFwcGxpY2F0aW9ucyBvciBzcGVuZCBhbGwgb2YgdGhlaXIgdGltZQotdHJ5aW5nIHRvIGJ1aWxkIGEgdXNlci1pbnRlcmZhY2UgKG1vc3QgdXNlcnMgd291bGQgcmF0aGVyIGJlIHdvcmtpbmcKLW9uIHRoZSBzY2llbnRpZmljIHByb2JsZW0gYXQgaGFuZCkuICBXaGlsZSBTV0lHIGNlcnRhaW5seSB3b24ndCBkbyBldmVyeXRoaW5nLAotaXQgY2FuIGRyYW1hdGljYWxseSBzaW1wbGlmeSB0aGlzIHByb2Nlc3MuICAgPGJyPiA8YnI+Ci0KLUFzIGFuIGV4YW1wbGUsIHRoZSBmaXJzdCBTV0lHIGFwcGxpY2F0aW9uIHdhcyB0aGUgU1BhU00gbW9sZWN1bGFyCi1keW5hbWljcyBjb2RlIGRldmVsb3BlZCBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkKLVtCZWF6bGV5LExvbWRhaGxdLiAgIFRoaXMgY29kZSBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBmb3IgbWF0ZXJpYWxzCi1zY2llbmNlIHByb2JsZW1zIGFuZCBjb25zaXN0cyBvZiBtb3JlIHRoYW4gMjAwIEMgZnVuY3Rpb25zIGFuZCBhYm91dCAyMDAwMCBsaW5lcwotb2YgY29kZS4KLUluIG9yZGVyIHRvIHVzZSBTV0lHLCBvbmx5IHRoZSA8dHQ+IG1haW4oKSA8L3R0PiBmdW5jdGlvbiBoYWQgdG8gYmUKLXJld3JpdHRlbiBhbG9uZyB3aXRoIGEgZmV3IG90aGVyIG1pbm9yIG1vZGlmaWNhdGlvbnMuCi1UaGUgZnVsbCB1c2VyIGludGVyZmFjZSBpcyBidWlsdCB1c2luZyBhIGNvbGxlY3Rpb24gb2YgbW9kdWxlcyBmb3IKLXNpbXVsYXRpb24sIGdyYXBoaWNzLCBtZW1vcnkgbWFuYWdlbWVudCwgZXRjLi4uIAotQSB1c2VyIG1heSBhbHNvIHN1cHBseSB0aGVpciBvd24gaW50ZXJmYWNlIG1vZHVsZXMtLWFsbG93aW5nIHRoZSBjb2RlIHRvCi1iZSBlYXNpbHkgZXh0ZW5kZWQgd2l0aCBuZXcgZnVuY3Rpb25hbGl0eSBjYXBhYmlsaXRpZXMgYXMgbmVlZGVkLgotQWxsIG9mIHRoZSBpbnRlcmZhY2UgZmlsZXMsIGNvbnRhaW5pbmcgYSBmZXcgaHVuZHJlZCBsaW5lcyBvZgotZnVuY3Rpb24gZGVjbGFyYXRpb25zLCBhcmUgYXV0b21hdGljYWxseSB0cmFuc2xhdGVkIGludG8gbW9yZSB0aGFuCi0yMDAwIGxpbmVzIG9mIHdyYXBwZXIgY29kZSBhdCBjb21waWxlIHRpbWUuICAgQXMgYSByZXN1bHQsIG1hbnkgdXNlcnMgCi1vZiB0aGUgc3lzdGVtIGtub3cgaG93IHRvIGV4dGVuZCBpdCwgYnV0IGFyZSB1bmF3YXJlIG9mIHRoZSBhY3R1YWwKLXdyYXBwaW5nIHByb2NlZHVyZS4gICA8YnI+IDxicj4KLQotQWZ0ZXIgbW9kaWZ5aW5nIHRoZSBTUGFTTSBjb2RlIHRvIHVzZSBTV0lHLCBtb3N0IG9mIHRoZSBDIGNvZGUgcmVtYWluZWQKLXVuY2hhbmdlZC4gIEluIGZhY3QsIGluIHN1YnNlcXVlbnQgd29yaywgd2Ugd2VyZSBhYmxlIHRvIGVsaW1pbmF0ZQotbW9yZSB0aGFuIDI1JSBvZiB0aGUgc291cmNlIGNvZGUtLWFsbW9zdCBhbGwgb2Ygd2hpY2ggd2FzIHJlbGF0ZWQgdG8gdGhlCi1ub3cgb2Jzb2xldGUgaW50ZXJmYWNlIG1ldGhvZCB0aGF0IHdlIHJlcGxhY2VkLiAgIE1vcmUgaW1wb3J0YW50bHksIHdlCi13ZXJlIGFibGUgdG8gdHVybiBhIGNvZGUgdGhhdCB3YXMgZGlmZmljdWx0IHRvIHVzZSBhbmQgbW9kaWZ5IGludG8gYSAKLWZsZXhpYmxlIHBhY2thZ2UgdGhhdCB3YXMgZWFzeSB0byB1c2UgYW5kIGV4dGVuZC4gICBUaGlzIGhhcyBoYWQgYQotaHVnZSBpbXBhY3QsIHdoaWNoIGNhbiBub3QgYmUgdW5kZXJzdGF0ZWQsIG9uIHRoZSB1c2Ugb2YgdGhlIFNQYVNNCi1jb2RlIHRvIHNvbHZlIHJlYWwgcHJvYmxlbXMuCi0KLTxoMz4gNi4yLiBPcGVuLUdMIGFuZCBJbnZlbnRvciA8L2gzPgotCi1XaGlsZSBTV0lHIHdhcyBwcmltYXJpbHkgZGVzaWduZWQgdG8gd29yayB3aXRoIGFwcGxpY2F0aW9uIGNvZGVzLCBpdAotY2FuIGFsc28gYmUgdXNlZCB0byB3cmFwIGxhcmdlIGxpYnJhcmllcy4gICBBdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLAotUGV0ZXItUGlrZSBTbG9hbiB1c2VkIFNXSUcgdG8gd3JhcCB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoZSBPcGVuLUdMCi1saWJyYXJ5IGludG8gVGNsIGZvciB1c2Ugd2l0aCBhbiBPcGVuLUdMIFRrIHdpZGdldC4gICBUaGUgcHJvY2VzcyBvZgotd3JhcHBpbmcgT3Blbi1HTCB3aXRoIFNXSUcgd2FzIGFzIHNpbXBsZSBhcyB0aGUgZm9sbG93aW5nIDoKLQotPHVsPgotPGxpPiAgTWFrZSBhIGNvcHkgb2YgdGhlIDx0dD4gZ2wuaCA8L3R0PiBoZWFkZXIgZmlsZS4KLTxsaT4gIENsZWFuIGl0IHVwIGJ5IHRha2luZyBhIGZldyBDIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIG91dCAKLSAgICAgIG9mIGl0LiAgIEZpeCBhIGZldyB0eXBlZGVmcy4KLTxsaT4gSW5zZXJ0IHRoZSBmb2xsb3dpbmcgY29kZSBpbnRvIHRoZSBiZWdpbm5pbmcgCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotJW1vZHVsZSBvcGVuZ2wKLSV7Ci0jaW5jbHVkZSAmbHQ7R0wvZ2wuaCZndDsKLSV9Ci0uLi4gQ29weSBlZGl0ZWQgZ2wuaCBoZXJlIC4uLgotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotPGxpPiBNb2RpZnkgdGhlIE9wZW4tR0wgd2lkZ2V0IHRvIGNhbGwgPHR0PiBPcGVuZ2xfSW5pdCA8L3R0Pi4KLTxsaT4gUmVjb21waWxlCi08L3VsPgotCi1UaGUgZW50aXJlIHByb2Nlc3MgcmVxdWlyZWQgb25seSBhYm91dCAxMCBtaW51dGVzIG9mIHdvcmssIGJ1dCByZXN1bHRlZAotaW4gbW9yZSB0aGFuIDUwMCBjb25zdGFudHMgYW5kIDM2MCBmdW5jdGlvbnMgYmVpbmcgYWRkZWQgdG8gVGNsLiAgRnVydGhlcm1vcmUsCi10aGlzIGV4dGVuc2lvbiBhbGxvd3MgT3Blbi1HTCBjb21tYW5kcyB0byBiZSBpc3N1ZWQgZGlyZWN0bHkgZnJvbSBUY2wncwotaW50ZXJwcmV0ZWQgZW52aXJvbm1lbnQgYXMgc2hvd24gaW4gdGhpcyBleGFtcGxlCi0oZnJvbSB0aGUgT3Blbi1HTCBtYW51YWwgW09wZW5HTF0pLgotCi08YmxvY2txdW90ZT4gPHR0PiA8cHJlPgotJSAuLi4gb3BlbiBHTCB3aWRnZXQgaGVyZSAuLi4KLSUgZ2xDbGVhckNvbG9yIDAuMCAwLjAgMC4wIDAuMAotJSBnbENsZWFyICRHTF9DT0xPUl9CVUZGRVJfQklUCi0lIGdsQ29sb3IzZiAxLjAgMS4wIDEuMAotJSBnbE9ydGhvIC0xLjAgMS4wIC0xLjAgMS4wIC0xLjAgMS4wCi0lIGdsQmVnaW4gJEdMX1BPTFlHT04KLSUgICAgZ2xWZXJ0ZXgyZiAtMC41IC0wLjUKLSUgICAgZ2xWZXJ0ZXgyZiAtMC41IDAuNQotJSAgICBnbFZlcnRleDJmIDAuNSAwLjUKLSUgICAgZ2xWZXJ0ZXgyZiAwLjUgLTAuNQotJSBnbEVuZAotJSBnbEZsdXNoCi08L3ByZT4gPC90dD4gPC9ibG9ja3F1b3RlPgotCi1FYXJseSB3b3JrIGhhcyBhbHNvIGJlZW4gcGVyZm9ybWVkIG9uIHVzaW5nIFNXSUcgdG8gd3JhcCBwb3J0aW9ucyAKLW9mIHRoZSBPcGVuLUludmVudG9yIHBhY2thZ2UgW0ludmVudF0uICAgVGhpcyBpcyBhIG1vcmUgYW1iaXRpb3VzIHByb2plY3QKLXNpbmNlIE9wZW4tSW52ZW50b3IgY29uc2lzdHMgb2YgYSB2ZXJ5IGxhcmdlIGNvbGxlY3Rpb24gb2YgaGVhZGVyCi1maWxlcyBhbmQgQysrIGNsYXNzZXMuICAgIEhvd2V2ZXIsICB0aGUgU1dJRyBsaWJyYXJ5IG1lY2hhbmlzbSBjYW4gYmUKLXVzZWQgZWZmZWN0aXZlIGluIHRoaXMgY2FzZS4gICBGb3IgZWFjaCBJbnZlbnRvciBoZWFkZXIsIHdlIGNhbiBjcmVhdGUKLWEgc2FuaXRpemVkIFNXSUcgaW50ZXJmYWNlIGZpbGUgKHJlbW92aW5nIGFsb3Qgb2YgdGhlIGNsdXR0ZXIgZm91bmQgaW4KLXRoZSBoZWFkZXIgZmlsZXMpLiAgIFRoZXNlIGludGVyZmFjZSBmaWxlcyBjYW4gdGhlbiBiZSBvcmdhbml6ZWQgdG8gbWlycm9yIHRoZQotc3RydWN0dXJlIG9mIHRoZSBJbnZlbnRvciBzeXN0ZW0uICAgIFRvIGJ1aWxkIGEgbW9kdWxlIGZvciBUY2wsIGEgdXNlcgotY291bGQgc2ltcGx5IHNwZWNpZnkgd2hpY2ggbW9kdWxlcyB0aGV5IHdhbnRlZCB0byB1c2UgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPiA8dHQ+IDxwcmU+Ci0lbW9kdWxlIGludmVudAotJXsKLS4uLiBwdXQgaGVhZGVycyBoZXJlIC4uLgotJX0KLQotJWluY2x1ZGUgIkludmVudG9yL1h0L1NvWHQuaSIKLSVpbmNsdWRlICJJbnZlbnRvci9YdC9Tb1h0UmVuZGVyQXJlYS5pIgotJWluY2x1ZGUgIkludmVudG9yL25vZGVzL1NvQ29uZS5pIgotJWluY2x1ZGUgIkludmVudG9yL25vZGVzL1NvRGlyZWN0aW9uYWxMaWdodC5pIgotJWluY2x1ZGUgIkludmVudG9yL25vZGVzL1NvTWF0ZXJpYWwuaSIKLSVpbmNsdWRlICJJbnZlbnRvci9ub2Rlcy9Tb1BlcnNwZWN0aXZlQ2FtZXJhLmkiCi0laW5jbHVkZSAiSW52ZW50b3Ivbm9kZXMvU29TZXBhcmF0b3IuaSIKLTwvcHJlPiA8L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLVdoaWxlIHdyYXBwaW5nIHRoZSBJbnZlbnRvciBsaWJyYXJ5IHdpbGwgcmVxdWlyZSBzaWduaWZpY2FudGx5Ci1tb3JlIHdvcmsgdGhhbiBPcGVuLUdMLCBTV0lHIGNhbiBiZSB1c2VkIGVmZmVjdGl2ZWx5IHdpdGggc3VjaAotc3lzdGVtcy4gICAKLQotPGgzPiA2LjMuIEJ1aWxkaW5nIEludGVyZXN0aW5nIEFwcGxpY2F0aW9ucyBieSBDdXQgYW5kIFBhc3RlIDwvaDM+Ci0KLVNXSUcgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IHRvb2xzIG91dCBvZiBkaXNzaW1pbGlhciAKLXBhY2thZ2VzIGFuZCBsaWJyYXJpZXMuICAgCi1JbiBjb250cmFzdCB0byBjb21iaW5pbmcgcGFja2FnZXMgYXQgYW4gaW5wdXQgbGV2ZWwgYXMgb25lIG1pZ2h0Ci1kbyB3aXRoIHdpdGggRXhwZWN0LCBTV0lHIGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGFwcGxpY2F0aW9ucyBhdCBhCi1mdW5jdGlvbiBsZXZlbCBbRXhwZWN0XS4KLUZvciBleGFtcGxlLCB1c2luZwotYSBzaW1wbGUgaW50ZXJmYWNlIGZpbGUsIHlvdSBjYW4gd3JhcCB0aGUKLUMgQVBJIG9mIE1BVExBQiA0LjIgW01BVExBQl0uCi1UaGlzIGluIHR1cm4gbGV0cyB5b3UgYnVpbGQgYSBUY2wvVGsgaW50ZXJmYWNlIGZvciBjb250cm9sbGluZwotTUFUTEFCIHByb2dyYW1zLiAgU2VwYXJhdGVseSwgeW91IGNvdWxkIHdyYXAgYSBudW1lcmljYWwgc2ltdWxhdGlvbgotY29kZS4gICBOb3csIGEgZmV3IHRyYW5zbGF0aW9uIGZ1bmN0aW9ucyBjb3VsZCBiZSB3cml0dGVuIGFuZCBib3RoCi1wYWNrYWdlcyBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIFRjbC9UayBhcHBsaWNhdGlvbi4gICBZb3UgaGF2ZQotbm93IGJ1aWx0IGEgc2ltcGxlIGBgY29tcHV0YXRpb25hbCBzdGVlcmluZycnIHN5c3RlbSB0aGF0IGFsbG93cyB5b3UKLXRvIHJ1biBhIHNpbXVsYXRpb24gY29kZSwgdmlzdWFsaXplIGRhdGEgaW4gTUFUTEFCLCBhbmQgY29udHJvbCB0aGUKLWVudGlyZSBzeXN0ZW0gd2l0aCBhIFRjbC9UayBiYXNlZCBpbnRlcmZhY2UuICAgIEZpZ3VyZSAyIHNob3dzCi1hIHNjcmVlbiBzbmFwc2hvdCBmcm9tIHN1Y2ggYSBzaW11bGF0aW9uIGluIHdoaWNoIHRoZSBTUGFTTSBtb2xlY3VsYXIKLWR5bmFtaWNzIGNvZGUsIGEgdmlzdWFsaXphdGlvbiBtb2R1bGUgbGlicmFyeSwgaW1hZ2Ugc2VydmVyICh1c2luZyB4diksCi1hbmQgTUFUTEFCIGhhdmUgYmVlbgotY29tYmluZWQuICAgVW5kZXIgdGhpcyBzeXN0ZW0sIHRoZSB1c2VyIGNhbiBpbnRlcmFjdGl2ZWx5IHNldCB1cAotYW5kIHJ1biBzaW11bGF0aW9ucyB3aGlsZSB3YXRjaGluZyB0aGUgcmVzdWx0cyBldm9sdmUgaW4gcmVhbC10aW1lLgotPGJyPiA8YnI+Ci08Y2VudGVyPgotPGltZyBhbHQgPSAiVGNsL1RrL01BVExBQi9TUEFTTSBGaWd1cmUiIHNyYz0ic3RlZXIyLmdpZiI+IDxicj4KLUZpZ3VyZSAyOiBTaW1wbGUgVGNsL1RrIFN0ZWVyaW5nIEFwcGxpY2F0aW9uIEJ1aWx0IHdpdGggU1dJRyA8YnI+Ci08L2NlbnRlcj4KLQotPGgzPiA2LjQuIExhbmd1YWdlIEluZGVwZW5kZW50IEFwcGxpY2F0aW9ucyA8L2gzPgotCi0KLUVhY2ggc2NyaXB0aW5nIGxhbmd1YWdlIGhhcyBpdCdzIG93biBzdHJlbmd0aHMgYW5kIHdlYWtuZXNzZXMuICAKLVJhdGhlcgotdGhhbiB0cnlpbmcgdG8gY2hvb3NlIHRoZSBsYW5ndWFnZSB0aGF0IGlzIHRoZSBiZXN0IGF0IGV2ZXJ5dGhpbmcgKHdoaWNoCi1pcyBwcm9iYWJseSBpbXBvc3NpYmxlKSwKLVNXSUcgYWxsb3dzIGEgdXNlciB0byB1c2UgdGhlIGJlc3QgbGFuZ3VhZ2UgZm9yIHRoZSBqb2IgYXQgaGFuZC4gIEknbQotYWx3YXlzIGZpbmRpbmcgbXlzZWxmIHdyaXRpbmcgbGl0dGxlIHV0aWxpdGllcyBhbmQgcHJvZ3JhbXMgdG8gc3VwcG9ydAotbXkgc2NpZW50aWZpYyBjb21wdXRpbmcgd29yay4gIFdoeSBzaG91bGQgSSBiZSBmb3JjZWQgdG8gdXNlIG9ubHkgb25lCi1sYW5ndWFnZSBmb3IgZXZlcnl0aGluZz8gIFdpdGggU1dJRywgSSBjYW4gcHV0IGEgUGVybCBpbnRlcmZhY2Ugb24gYQotdG9vbCBhbmQgc3dpdGNoIG92ZXIgdG8gVGNsL1RrIGF0IGFueXRpbWUgYnkganVzdCBjaGFuZ2luZyBhIGZldwotTWFrZWZpbGUgb3B0aW9ucy4gPGJyPiA8YnI+Ci0KLVNpbmNlIFNXSUcgcHJvdmlkZXMgYSBsYW5ndWFnZS1pbmRlcGVuZGVudCBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbiwKLWl0IGlzIHJlbGF0aXZlbHkgZWFzeSB0byB1c2UgU1dJRyBnZW5lcmF0ZWQgbW9kdWxlcyBpbiBhIHZhcmlldHkgb2YKLWludGVyZXN0aW5nIGFwcGxpY2F0aW9ucy4gIEZvciBleGFtcGxlLCB0aGUgaWRlbnRpY2FsIE1BVExBQgotbW9kdWxlIHVzZWQgaW4gdGhlIGxhc3QgVGNsIGV4YW1wbGUgY291bGQgYmUgaW1wb3J0ZWQgYXMgUGVybDUgbW9kdWxlCi1hbmQgY29tYmluZWQgd2l0aCBhIFBlcmwgc2NyaXB0IHRvIHByb2R1Y2UgZ3JhcGhpY2FsIGRpc3BsYXlzIGZyb20KLVdlYi1zZXJ2ZXIgbG9ncyBhcyBzaG93biBpbiBGaWd1cmUgMy4gPGJyPiA8YnI+Ci0KLTxjZW50ZXI+Ci08aW1nIGFsdD0iUGVybDUgd2ViIHN0YXRzIGV4YW1wbGUiIHNyYz0iaGl0cy5naWYiPiA8YnI+Ci1GaWd1cmUgMzpXZWItc2VydmVyIGFjdGl2aXR5IGdyYXBoLiAgR2VuZXJhdGVkIGZyb20gYSBQZXJsIHNjcmlwdCwgYnV0Ci11c2VzIGFuIHVubW9kaWZpZWQgU1dJRyBnZW5lcmF0ZWQgbW9kdWxlIGZvciBpbnRlZ3JhdGluZyBNQVRMQUIgd2l0aCBUY2wvVGsuIDxicj4gPGJyPgotPC9jZW50ZXI+Ci0KLVNvbWUgaGF2ZSBwcm9tb3RlZCB0aGUgaWRlYSBvZiBlbmNhcHN1bGF0aW5nIHNldmVyYWwgbGFuZ3VhZ2VzIGludG8KLWEgaGlnaGVyIGxldmVsIGxhbmd1YWdlIGFzIGhhcyBiZWVuIHByb3Bvc2VkIHdpdGggR3VpbGUgW0xvcmRdLgotVGhpcyBtYXkgYmUgZmluZSBpZiBvbmUgd2FudHMgdG8gd3JpdGUgY29kZSB0aGF0IHVzZXMgZGlmZmVyZW50IGxhbmd1YWdlcwotYWxsIGF0IG9uY2UsIGJ1dCB3aGVuIEkgd2FudCB0byB1c2Ugb25seSBUY2wgb3IgUGVybCBmb3IgYW4gYXBwbGljYXRpb24sCi1JIGFsbW9zdCBhbHdheXMgcHJlZmVyIHVzaW5nIHRoZSByZWFsIHZlcnNpb25zIGluc3RlYWQgb2YgYW4gZW5jYXBzdWxhdGVkCi12YXJpYW50LiAgICAgU1dJRyBtYWtlcyB0aGlzIHBvc3NpYmxlIHdpdGhvdXQgbXVjaCBlZmZvcnQuCi0KLTxoMz4gNi41LiBVc2luZyBUY2wgYXMgYSBkZWJ1Z2dlciA8L2gzPgotCi1TaW5jZSBTV0lHIGNhbiB3b3JrIHdpdGggZXhpc3RpbmcgQyBjb2RlLCBpdCBjYW4gYmUgdXNlZCBxdWl0ZSBlZmZlY3RpdmVseQotYXMgYSBkZWJ1Z2dlci4KLVlvdSBjYW4gd3JhcCBDIGZ1bmN0aW9ucyBhbmQgaW50ZXJhY3QKLXdpdGggdGhlbSBmcm9tIDx0dD4gdGNsc2ggPC90dD4gb3IgPHR0PiB3aXNoIDwvdHQ+LgotVW5saWtlIG1vc3QgdHJhZGl0aW9uYWwgZGVidWdnZXJzLCB5b3UKLWNhbiBjcmVhdGUgb2JqZWN0cywgYnVmZmVycywgYXJyYXlzLCBhbmQgb3RoZXIgdGhpbmdzIG9uIHRoZSBmbHkKLWJ5IHB1dHRpbmcgYXBwcm9wcmlhdGUgZGVmaW5pdGlvbnMgaW4gdGhlIGludGVyZmFjZSBmaWxlLgotU2luY2UgPHR0PiB0Y2xzaCA8L3R0PiBvciA8dHQ+IHdpc2ggPC90dD4gcHJvdmlkZXMgYSA8dHQ+IG1haW4oKSA8L3R0PiBmdW5jdGlvbiwgeW91Ci1jYW4gZXZlbiByaXAgc21hbGwgcGllY2VzIG91dCBvZiBhIGxhcmdlciBwYWNrYWdlIHdpdGhvdXQgaW5jbHVkaW5nCi10aGF0IHBhY2thZ2UncyBtYWluIHByb2dyYW0uCi1TY3JpcHRzIGNhbiBiZSB3cml0dGVuIHRvIHRlc3Qgb3V0IGRpZmZlcmVudCBwYXJ0cyBvZiB5b3VyCi1jb2RlIGFzIGl0IGlzIGRldmVsb3BlZC4gICAgV2hlbiB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHRoZSBtb2R1bGUsCi1yZW1vdmluZyB0aGUgaW50ZXJmYWNlIGlzIGFzIGVhc3kgYXMgZGlzY2FyZGluZyB0aGUgU1dJRyBpbnRlcmZhY2UKLWZpbGUuICAgSSBoYXZlIHVzZWQgU1dJRyBhcyBhIGRlYnVnZ2VyIGZvciBkZXZlbG9waW5nIGdyYXBoaWNzIGxpYnJhcmllcywKLW5ldHdvcmsgc2VydmVycywgc2ltdWxhdGlvbiBjb2RlcywgYW5kIGEgd2lkZSByYW5nZSBvZiBvdGhlciBwcm9qZWN0cy0tc29tZQotb2Ygd2hpY2ggZGlkbid0IGV2ZW4gdXNlIGEgc2NyaXB0aW5nIGxhbmd1YWdlIHdoZW4gY29tcGxldGVkLgotCi08aDI+IDcuIExpbWl0YXRpb25zIDwvaDI+Ci0KLVNXSUcgcmVwcmVzZW50cyBhIGJhbGFuY2Ugb2YgZmxleGliaWxpdHkgYW5kIGVhc2Ugb2YgdXNlLgotSSBoYXZlIGFsd2F5cyBmZWx0IHRoYXQgdGhlIHRvb2wgc2hvdWxkbid0IGJlIG1vcmUgY29tcGxpY2F0ZWQgdGhhbgotdGhlIG9yaWdpbmFsIHByb2JsZW0uICAgIFRoZXJlZm9yZSwgU1dJRyBjZXJ0YWlubHkgd29uJ3QgZG8gZXZlcnl0aGluZy4KLVdoaWxlIEkgYmVsaWV2ZSB0aGUgcG9pbnRlciByZXByZXNlbnRhdGlvbiBvZiBjb21wbGV4IGRhdGF0eXBlcyB3b3Jrcwotd2VsbCBpbiBwcmFjdGljZSwgc29tZSB1c2VycyBoYXZlIGZvdW5kIHRoaXMgdG8gYmUgdG9vIGdlbmVyYWwgb3IKLWNvbmZ1c2luZy4gICAgU1dJRydzCi1zdXBwb3J0IGZvciBDKysgaXMgYWxzbyBsaW1pdGVkIGJ5IHRoZSBmYWN0IHRoYXQgU1dJRyBkb2VzIG5vdCBzdXBwb3J0Ci1vcGVyYXRvciBvdmVybG9hZGluZywgbXVsdGlwbGUgaW5oZXJpdGFuY2UsIHRlbXBsYXRlcywgYW5kIGEgbnVtYmVyCi1vZiBvdGhlciBtb3JlIGFkdmFuY2VkIEMrKyBmZWF0dXJlcy4gICAgU1dJRyBhbHNvIGxhY2tzIHN1cHBvcnQgZm9yCi1kZWZhdWx0IG9yIHZhcmlhYmxlIGxlbmd0aCBmdW5jdGlvbiBhcmd1bWVudHMsIGFycmF5IG5vdGF0aW9uLAotcG9pbnRlcnMgdG8gZnVuY3Rpb25zICh1bmxlc3MgaGlkZGVuIGJ5IGEgdHlwZWRlZikgYW5kIGFuIGV4Y2VwdGlvbgotbWVjaGFuaXNtLiAKLUZpbmFsbHksIFNXSUcKLWRvZXMKLW5vdCBzdXBwb3J0IGFsbCBvZiB0aGUgZmVhdHVyZXMgb2YgVGNsIHN1Y2ggYXMgYXNzb2NpYXRpdmUgYXJyYXlzLgotVGhlc2UgYXJlbid0IGFuIGluaGVyZW50IHBhcnQgb2YgdGhlIEMgbGFuZ3VhZ2Ugc28gaXQgaXMgZGlmZmljdWx0Ci10byBnZW5lcmFsaXplIGhvdyB0aGV5IHNob3VsZCBiZSBoYW5kbGVkIG9yIGdlbmVyYXRlZC4gSSBwcmVmZXIgdG8KLWtlZXAgdGhlIHRvb2wgc2ltcGxlIHdoaWxlIGxlYXZpbmcgdGhlc2UgaXNzdWVzIHVwIHRvIHRoZSBpbmRpdmlkdWFsCi1wcm9ncmFtbWVyLiAgPGJyPiA8YnI+Ci0KLQotRm9ydHVuYXRlbHksIGl0IGlzIGFsbW9zdCBhbHdheXMgcG9zc2libGUgdG8gd29yayBhcm91bmQKLW1hbnkgcHJvYmxlbXMgYnkgd3JpdGluZyBzcGVjaWFsIGxpYnJhcnkgZnVuY3Rpb25zIG9yIG1ha2luZwotbW9kaWZpY2F0aW9ucyB0byB0aGUgU1dJRyBsYW5ndWFnZSBtb2R1bGVzIHRvIHByb2R1Y2UgdGhlIGRlc2lyZWQgZWZmZWN0LgotRm9yIGV4YW1wbGUsIHdoZW4gd3JhcHBpbmcgT3Blbi1HTCwgU1dJRyBpbnN0YWxsZWQgYWxsIG9mIHRoZSBPcGVuLUdMCi1jb25zdGFudHMgYXMgVGNsIGdsb2JhbCB2YXJpYWJsZXMuICAgVW5mb3J0dW5hdGVseSwgbm9uZSBvZiB0aGVzZQotdmFyaWFibGVzIHdlcmUgYWNjZXNzaWJsZSBpbnNpZGUgVGNsIHByb2NlZHVyZXMgdW5sZXNzIHRoZXkgd2VyZSBleHBsaWNpdGx5Ci1kZWNsYXJlZCBnbG9iYWwuICAgQnkgbWFraW5nIGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBUY2wgbGFuZ3VhZ2UgbW9kdWxlLAotaXQgd2FzIHBvc3NpYmxlIHRvIHB1dCB0aGUgR0wgY29uc3RhbnRzIGludG8gaGFzaCB0YWJsZSBhbmQgcGVyZm9ybQotYSBoaWRkZW4gYGBsb29rdXAnJyBpbnNpZGUgYWxsIG9mIHRoZSBHTC1yZWxhdGVkIGZ1bmN0aW9ucy4gIFNpbWlsYXJseSwKLW11Y2ggb2YgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgU1dJRyBjYW4gYmUgcGxhY2VkIGludG8gbGlicmFyeQotZmlsZXMgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzLgotCi08aDI+IDguIENvbmNsdXNpb25zIDwvaDI+Ci0KLVNXSUcgaGFzIGJlZW4gaW4gdXNlIGZvciBhcHByb3hpbWF0ZWx5IG9uZSB5ZWFyLiAgQXQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5LCBpdHMgdXNlIHdpdGggdGhlIFNQYVNNIGNvZGUgaGFzCi1wcm92ZW4gdG8KLWJlIGEgcmVtYXJrYWJseSBzaW1wbGUsIHN0YWJsZSwgYW5kIGJ1Zy1mcmVlIHdheSB0byBidWlsZCBhbmQgbW9kaWZ5IHVzZXIKLWludGVyZmFjZXMuICAgQXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgU1dJRyBpcyBiZWluZyB1c2VkIGluIGEgdmFyaWV0eQotb2Ygb3RoZXIgYXBwbGljYXRpb25zIHdoZXJlIHRoZSB1c2VycyBoYXZlIHF1aWNrbHkgY29tZSB0byBhcHByZWNpYXRlIGl0cwotZWFzZSBvZiB1c2UgYW5kIGZsZXhpYmlsaXR5LiA8YnI+IDxicj4KLQotV2hpbGUgU1dJRyBtYXkgYmUgaW5hcHByb3ByaWF0ZSBmb3IgY2VydGFpbiBhcHBsaWNhdGlvbnMsIEkgZmVlbCB0aGF0IGl0Ci1vcGVucyB1cCBUY2wvVGssIFB5dGhvbiwgUGVybCwgR3VpbGUsIGFuZCBvdGhlciBsYW5ndWFnZXMgIHRvIAotdXNlcnMgd2hvIHdvdWxkIGxpa2UgdG8gZGV2ZWxvcCBpbnRlcmVzdGluZyB1c2VyIGludGVyZmFjZXMgZm9yIHRoZWlyIGNvZGVzLAotYnV0IHdobyBkb24ndCB3YW50IHRvIHdvcnJ5IGFib3V0IHRoZSBsb3ctbGV2ZWwgZGV0YWlscyBvciBmaWd1cmluZwotb3V0IGhvdyB0byB1c2UgYSBjb21wbGljYXRlZCB0b29sLiAgPGJyPiA8YnI+Ci0gIAotRnV0dXJlIGRpcmVjdGlvbnMgZm9yIFNXSUcgaW5jbHVkZSBzdXBwb3J0IGZvciBvdGhlciBzY3JpcHRpbmcgbGFuZ3VhZ2VzLAotYW5kIGEgbGlicmFyeSBvZiBleHRlbnNpb25zLiAgU1dJRyBtYXkgYWxzbyBiZSBleHRlbmRlZCB0byBzdXBwb3J0IHBhY2thZ2VzCi1zdWNoIGFzIGluY3JlbWVudGFsIFRjbC4gV29yayBpcyBhbHNvIHVuZGVyd2F5IHRvIHBvcnQgU1dJRyB0byBub24tdW5peAotcGxhdGZvcm1zLgotCi08aDI+IEFja25vd2xlZGdtZW50cyA8L2gyPgotCi1UaGlzIHByb2plY3Qgd291bGQgbm90IGhhdmUgYmVlbiBwb3NzaWJsZSB3aXRob3V0IHRoZSBzdXBwb3J0IG9mIGEgbnVtYmVyCi1vZiBwZW9wbGUuICAgUGV0ZXIgTG9tZGFobCwgU2h1amlhIFpob3UsIEJyYWQgSG9saWFuLCBUaW0gR2VybWFubiwgYW5kIE5pZWxzCi1KZW5zZW4gYXQgTG9zIEFsYW1vcyBOYXRpb25hbCBMYWJvcmF0b3J5IHdlcmUgdGhlIGZpcnN0IHVzZXJzIGFuZCB3ZXJlCi1pbnN0cnVtZW50YWwgaW4gdGVzdGluZyBvdXQgdGhlIGZpcnN0IGRlc2lnbnMuICAgUGF0cmljayBUdWxsbWFubiBhdAotdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCBzdWdnZXN0ZWQgdGhlIGlkZWEgb2YgYXV0b21hdGljIGRvY3VtZW50YXRpb24KLWdlbmVyYXRpb24uICBKb2huIFNjaG1pZHQsIEt1cnRpcwotQmxlZWtlciwgUGV0ZXItUGlrZSBTbG9hbiwgYW5kIFN0ZXZlIFBhcmtlciBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoIHRlc3RlZCBvdXQgc29tZSBvZiB0aGUgbmV3ZXIgdmVyc2lvbnMgYW5kCi1wcm92aWRlZCB2YWx1YWJsZSBmZWVkYmFjay4gICBKb2huIEJ1Y2ttYW4gc3VnZ2VzdGVkIG1hbnkgaW50ZXJlc3RpbmcKLWltcHJvdmVtZW50cyBhbmQgaGFzIGJlZW4gaW5zdHJ1bWVudGFsIHRoZSByZWNlbnQgZGV2ZWxvcG1lbnQgb2YgU1dJRy4KLUZpbmFsbHkKLUknZCBsaWtlIHRvIHRoYW5rIENocmlzIEpvaG5zb24gYW5kIHRoZSBtZW1iZXJzIG9mIHRoZSBTY2llbnRpZmljCi1Db21wdXRpbmcgYW5kIEltYWdpbmcgZ3JvdXAgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCBmb3IgdGhlaXIgY29udGludWVkCi1zdXBwb3J0IGFuZCBmb3IgcHV0dGluZyB1cCB3aXRoIG15IHdyYXBwaW5nIGV2ZXJ5IHNvZnR3YXJlIHBhY2thZ2UKLUkgY291bGQgZ2V0IG15IGhhbmRzIG9uLiAgICBTV0lHIHdhcyBkZXZlbG9wZWQgaW4gcGFydCB1bmRlciB0aGUKLWF1c3BpY2VzIG9mIHRoZSBVUyBEZXBhcnRtZW50IG9mIEVuZXJneSwgdGhlIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbiwgCi1hbmQgTmF0aW9uYWwgSW5zdGl0dXRlcyBvZiBIZWFsdGguCi0KLTxoMj4gQXZhaWxhYmlsaXR5IDwvaDI+Ci0KLVNXSUcgaXMgZnJlZSBzb2Z0d2FyZSBhbmQgYXZhaWxhYmxlIHZpYSBhbm9ueW1vdXMgRlRQIGF0ICA8YnI+IDxicj4KLQotPGNlbnRlcj4KLTx0dD4gZnRwLmNzLnV0YWguZWR1L3B1Yi9iZWF6bGV5L1NXSUcgPC90dD4gPGJyPiA8YnI+Ci08L2NlbnRlcj4KLQotTW9yZSBpbmZvcm1hdGlvbiBpcyBhbHNvIGF2YWlsYWJsZSBvbiB0aGUgU1dJRyBob21lcGFnZSBhdCAgPGJyPiA8YnI+Ci0KLTxjZW50ZXI+Ci08YSBocmVmPSJodHRwOi8vd3d3LmNzLnV0YWguZWR1L35iZWF6bGV5L1NXSUciPiA8dHQ+IGh0dHA6Ly93d3cuY3MudXRhaC5lZHUvfmJlYXpsZXkvU1dJRyA8L3R0PiA8L2E+Ci08L2NlbnRlcj4gPGJyPiA8YnI+Ci0KLTxoMj4gUmVmZXJlbmNlcyA8L2gyPgotCi1bQmVhemxleV0gRC5NLiBCZWF6bGV5IGFuZCBQLlMuIExvbWRhaGwsIAotPGVtPiBNZXNzYWdlLVBhc3NpbmcgTXVsdGktQ2VsbCBNb2xlY3VsYXIgRHluYW1pY3Mgb24gdGhlIENvbm5lY3Rpb24KLU1hY2hpbmUgNSA8L2VtPiwgUGFyYWxsZWwgQ29tcHV0aW5nIDIwICgxOTk0KSBwLiAxNzMtMTk1LiA8YnI+IDxicj4KLQotW0VUXSBFbWJlZGRlZCBUaywgPGJyPgotPHR0PiBmdHA6Ly9mdHAudm5ldC5uZXQvcHViL3VzZXJzL2RyaC9FVC5odG1sIDwvdHQ+IDxicj4gPGJyPgotCi1bRXhwZWN0XSBEb24gTGliZXMsIDxlbT4gRXhwbG9yaW5nIEV4cGVjdCA8L2VtPiwgTydSZWlsbHkgJmFtcDsgQXNzb2NpYXRlcywgSW5jLiAoMTk5NSkuIDxicj4gPGJyPgotCi1bSGVpZHJpY2hdIFdvbGZnYW5nIEhlaWRyaWNoIGFuZCBQaGlsaXBwIFNsdXNhbGxlaywgPGVtPgotQXV0b21hdGljIEdlbmVyYXRpb24gb2YgVGNsIEJpbmRpbmdzIGZvciBDIGFuZCBDKysgTGlicmFyaWVzLjwvZW0+LAotVVNFTklYIDNyZCBBbm51YWwgVGNsL1RrIFdvcmtzaG9wICgxOTk1KS4gPGJyPiA8YnI+Ci0KLVtKYW5zc2VuXSBCaWxsIEphbnNzZW4sIE1pa2UgU3ByZWl0emVyLCA8ZW0+IElMVSA6IEludGVyLUxhbmd1YWdlIFVuaWZpY2F0aW9uIHZpYSBPYmplY3QgTW9kdWxlcyA8L2VtPiwgT09QU0xBIDk0IFdvcmtzaG9wIG9uIE11bHRpLUxhbmd1YWdlCi1PYmplY3QgTW9kZWxzLiA8YnI+IDxicj4KLQotW0xvbWRhaGxdIFAuUy4gTG9tZGFobCwgUC4gVGFtYXlvLCAKLU4uR3JvbmJlY2gtSmVuc2VuLCBhbmQgRC5NLiBCZWF6bGV5LCAKLTxlbT4gUHJvYy4gb2YgU3VwZXJjb21wdXRpbmcgOTMgPC9lbT4sIElFRUUgQ29tcHV0ZXIgU29jaWV0eSAoMTk5MyksIHAuIDUyMC01MjcuCi08YnI+IDxicj4KLQotW0xvcmRdIFRob21hcyBMb3JkLCA8ZW0+IEFuIEFuYXRvbXkgb2YgR3VpbGUsIFRoZSBJbnRlcmZhY2UgdG8gCi1UY2wvVGsgPC9lbT4sIFByb2NlZWRpbmdzIG9mIHRoZSBVU0VOSVggM3JkIEFubnVhbCBUY2wvVGsgV29ya3Nob3AgKDE5OTUpLiA8YnI+IDxicj4KLQotW01BVExBQl0gPGVtPiBNQVRMQUIgRXh0ZXJuYWwgSW50ZXJmYWNlIEd1aWRlIDwvZW0+LCBUaGUgTWF0aCBXb3JrcywgSW5jLiAgKDE5OTMpLgotPGJyPiA8YnI+Ci0KLVtPdXN0ZXJob3V0XSBKb2huIEsuIE91c3RlcmhvdXQsIDxlbT4gVGNsIGFuZCB0aGUgVGsgVG9vbGtpdCA8L2VtPiwgQWRkaXNvbi1XZXNsZXkgUHVibGlzaGVycyAoMTk5NCkuIDxicj4gPGJyPgotCi1bUGVybDVdIFBlcmw1IFByb2dyYW1tZXJzIHJlZmVyZW5jZSwgPGJyPgotPHR0PiBodHRwOi8vd3d3Lm1ldHJvbmV0LmNvbS9wZXJsaW5mby9kb2MgPC90dD4sICgxOTk2KS4gPGJyPiA8YnI+Ci0KLVt2dGtdIFcuIFNjaHJvZWRlciwgSy4gTWFydGluLCBhbmQgQi4gTG9yZW5zZW4sIDxlbT4gVGhlCi1WaXN1YWxpemF0aW9uIFRvb2xraXQgPC9lbT4sIFByZW50aWNlIEhhbGwgICgxOTk1KS4gPGJyPiA8YnI+Ci0KLVtJbnZlbnRdIEouIFdlcm5lY2tlLDxlbT4gVGhlIEludmVudG9yIE1lbnRvciA8L2VtPiwgQWRkaXNvbi1XZXNsZXkgUHVibGlzaGluZyAoMTk5NCkuIDxicj4gPGJyPgotCi1bV2V0aGVyYWxsXSBELiBXZXRoZXJhbGwsIEMuIEouIExpbmRibGFkLCA8ZW0+IEV4dGVuZGluZyBUY2wgZm9yCi1EeW5hbWljIE9iamVjdC1PcmllbnRlZCBQcm9ncmFtbWluZyA8L2VtPiwgUHJvY2VlZGluZ3Mgb2YgdGhlIFVTRU5JWCAzcmQgQW5udWFsIFRjbC9UayBXb3Jrc2hvcCAoMTk5NSkuIDxicj4gPGJyPgotCi1bT3BlbkdMXSBKLiBOZWlkZXIsIFQuIERhdmlzLCBNLiBXb28sIDxlbT4gT3BlbkdMIFByb2dyYW1taW5nIEd1aWRlIDwvZW0+LCBBZGRpc29uLVdlc2xleSBQdWJsaXNoaW5nICgxOTkzKS4gPGJyPiA8YnI+Ci0KLTwvYm9keT4KLTwvaHRtbD4KLQotCi0KLQotCi0KLQotCmRpZmYgLS1naXQgYS9zd2lnd2ViL3BhcGVycy9UY2w5OC9UY2xDaGFwLmh0bWwgYi9zd2lnd2ViL3BhcGVycy9UY2w5OC9UY2xDaGFwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhYWVhODUuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9wYXBlcnMvVGNsOTgvVGNsQ2hhcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTg5OCArMCwwIEBACi08IS0tIFB1Ymxpc2hlZCBieSBRdWFkcmFsYXkgV2ViV29ya3MgSFRNTCBMaXRlIDEuNS4xIC0tPgotPCEtLSBBbmQgbXVuZ2VkIGJ5IERhdmUncyBzcGVjaWFsIFB5dGhvbiBzY3JpcHQgLS0+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlRjbCBhbmQgU1dJRyBhcyBhIEMvQysrIERldmVsb3BtZW50IFRvb2w8L3RpdGxlPgotPC9oZWFkPgotCi08Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIj4KLTxhIG5hbWU9Im4wIj48L2E+PGgxPiBUY2wgYW5kIFNXSUcgYXMgYSBDL0MrKyBEZXZlbG9wbWVudCBUb29sPC9oMT4KLQotRGF2aWQgTS4gQmVhemxleSA8YnI+Ci1EZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgPGJyPgotVW5pdmVyc2l0eSBvZiBDaGljYWdvPGJyPgotQ2hpY2FnbywgSWxsaW5vaXMgICA2MDYzNyA8YnI+Ci08YWRkcmVzcz4gPGEgaHJlZj0iaHR0cDovL3d3dy5jcy51Y2hpY2Fnby5lZHUvfmJlYXpsZXkiPmJlYXpsZXlAY3MudWNoaWNhZ28uZWR1PC9hPjwvYWRkcmVzcz4gPGJyPgotPHA+Ci0KLUNvcHlyaWdodCAoQykgMTk5OCA8YnI+Ci1BbGwgUmlnaHRzIFJlc2VydmVkIDxicj4KLQotPGgyPiBBYm91dCBUaGlzIERvY3VtZW50IDwvaDI+Ci0KLVRoaXMgcGFwZXIgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBhcyBhIGNoYXB0ZXIgZm9yIGEgVGNsIGJvb2sgcHJvamVjdC4KLUhvd2V2ZXIsIHRoYXQgcHJvamVjdCByYW4gaW50byBzb21lIGRpZmZpY3VsdGllcyBzbyB0aGUgY2hhcHRlciAoYW5kCi10aGUgYm9vayBpdHNlbGYpIG5ldmVyIGFwcGVhcmVkLiAgU2luY2UgdGhlIGNoYXB0ZXIgbWF5IGJlIG9mIHVzZSB0bwotU1dJRyBhbmQgVGNsIHVzZXJzLCBpdCBoYXMgYmVlbiBzbGlnaHRseSByZXZhbXBlZCBhbmQgcmVwdWJsaXNoZWQgaW4KLWVsZWN0cm9uaWMgZm9ybSBoZXJlLiAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCB0byBkaXN0cmlidXRlIHRoaXMKLWRvY3VtZW50IGluIGVsZWN0cm9uaWMgZm9ybSB3aXRob3V0IHJveWFsdGllcyBvciBmZWVzIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCi1jb3B5cmlnaHQgYW5kIHRoaXMgbm90aWNlIGFwcGVhciBpbiBhbGwgcmVwcm9kdWN0aW9ucy4gIAotSGFyZC1jb3B5IChwYXBlcikgcmVwcm9kdWN0aW9ucyBvZiB0aGlzIGFydGljbGUgYXJlIHN0cmljdGx5Ci1wcm9oaWJpdGVkIHdpdGhvdXQgdGhlIHdyaXR0ZW4gY29uc2VudCBvZiB0aGUgYXV0aG9yLgotCi08YSBuYW1lPSJuMSI+PC9hPjxoMj4gSW50cm9kdWN0aW9uPC9oMj4KLU9uZSBvZiB0aGUgZ3JlYXRlc3Qgc3RyZW5ndGhzIG9mIFRjbCBpcyBpdHMgYWJpbGl0eSB0byBiZSBlYXNpbHkgZXh0ZW5kZWQgd2l0aCBjb2RlIHdyaXR0ZW4gaW4gQyBvciBDKysuICBNb3JlIG9mdGVuIHRoYW4gbm90LCBjb21waWxlZCBleHRlbnNpb25zIHRvIFRjbCB0YWtlIHRoZSBmb3JtIG9mIFRrIHdpZGdldHMgYW5kIGdlbmVyYWwgcHVycG9zZSBsaWJyYXJpZXMgdGhhdCBwcm92aWRlIGFjY2VzcyB0byBkYXRhYmFzZXMsIHNvY2tldHMsIGFuZCBvdGhlciBzeXN0ZW0gc2VydmljZXMuICAgQXBwbGljYXRpb24gZGV2ZWxvcGVycyBtaWdodCBhbHNvIGV4dGVuZCBUY2wgaW4gb3JkZXIgdG8gYnVpbGQgYSB1c2VyLWludGVyZmFjZSB0byBhIGxhcmdlIHBhY2thZ2Ugd3JpdHRlbiBpbiBhIGNvbXBpbGVkIGxhbmd1YWdlLiAgSG93ZXZlciwgbWFueSBDL0MrKyBkZXZlbG9wZXJzIG1pZ2h0IGJlIHN1cnByaXNlZCB0byBsZWFybiB0aGF0IFRjbCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgZ2VuZXJhbCBwdXJwb3NlIEMvQysrIGRldmVsb3BtZW50IHRvb2wtLWV2ZW4gaW4gc2l0dWF0aW9ucyB3aGVyZSBUY2wgaXMgbm90IHBhcnQgb2YgdGhlIGZpbmFsIHByb2R1Y3Qgb3IgZGVzaWduLjxwPgotPHA+Ci1UbyBhbnN3ZXIgdGhlIHF1ZXN0aW9uIG9mIHdoeSBvbmUgbWlnaHQgd2FudCB0byB1c2UgVGNsIGZvciB0aGlzIHB1cnBvc2UsIGNvbnNpZGVyIHRoZSBmZWF0dXJlcyB0aGF0IFRjbCBwcm92aWRlcy4gIEZpcnN0LCBUY2wgcHJvdmlkZXMgYW4gaW50ZXJwcmV0ZWQgZW52aXJvbm1lbnQgdGhhdCBhbGxvd3MgeW91IGludGVyYWN0aXZlbHkgY29udHJvbCBhbmQgbWFuaXB1bGF0ZSB0aGUgdW5kZXJseWluZyBDIHByb2dyYW0uICAgSW4gb3RoZXIgd29yZHMsIGEgVGNsIGludGVyZmFjZSBhbGxvd3MgeW91IHRvIGNhbGwgQyBmdW5jdGlvbnMsIGV4YW1pbmUgdmFyaWFibGVzLCBhbmQgcGVyZm9ybSB0YXNrcyB0aGF0IG1pZ2h0IG90aGVyd2lzZSBiZSBmb3VuZCBpbiBhIGRlYnVnZ2VyLiAgIFNlY29uZCwgVGNsIHByb3ZpZGVzIGEgaGlnaC1sZXZlbCBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGNhbiBiZSB1c2VkIHRvIHdyaXRlIHByb2dyYW1zLCByYXBpZGx5IHByb3RvdHlwZSBuZXcgZmVhdHVyZXMsIGRldmVsb3AgdGVzdGluZyBzY3JpcHRzLCBhbmQgaW50ZXJhY3Qgd2l0aCBDIGNvZGUgaW4gYSBoaWdobHkgZmxleGlibGUgbWFubmVyLiAgICBBbmQgZmluYWxseSwgb25lIHNob3VsZG4ndCBmb3JnZXQgdGhhdCBUY2wgYWxsb3dzIHlvdSB0byB1dGlsaXplIG90aGVyIGV4dGVuc2lvbnMgYW5kIG1vZHVsZXMgcGVvcGxlIGhhdmUgZGV2ZWxvcGVkIChmb3IgZXhhbXBsZSwgeW91IGNvdWxkIGxhdGVyIHdyaXRlIGEgZ3JhcGhpY2FsIHVzZXIgaW50ZXJmYWNlIGluIFRrLCBhY2Nlc3MgZGF0YWJhc2Ugc3lzdGVtcyB3aXRoIE9yYVRjbCwgYW5kIHNvIGZvcnRoKS4gIEluIHNob3J0LCBUY2wgcHJvdmlkZXMgYSBudW1iZXIgb2YgYXR0cmFjdGl2ZSBmZWF0dXJlcyB0aGF0IHNpbXBseSBhcmVuJ3QgZm91bmQgaW4gYSB0eXBpY2FsIEMvQysrIGRldmVsb3BtZW50IGVudmlyb25tZW50LiAgIDxwPgotPHA+Ci1JbiB0aGlzIGNoYXB0ZXIsIEkgZGVzY3JpYmUgU1dJRyAoU2ltcGxpZmllZCBXcmFwcGVyIGFuZCBJbnRlcmZhY2UgR2VuZXJhdG9yKSwgYSBkZXZlbG9wbWVudCB0b29sIHRoYXQgaW50ZWdyYXRlcyBDL0MrKyBjb2RlIHdpdGggVGNsIGFuZCBvdGhlciBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiAgIFNXSUcgaXMgYSBjb21waWxlciB0aGF0IGNhbiBiZSB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgVGNsIGV4dGVuc2lvbnMgdG8gZXhpc3RpbmcgQyBjb2RlLiAgIEl0IHJlcXVpcmVzIG5vIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgY29kZSBhbmQgcHJvdmlkZXMgYWNjZXNzIHRvIG1vc3QgQyBwcm9ncmFtbWluZyBmZWF0dXJlcyBpbmNsdWRpbmcgcG9pbnRlcnMsIGFycmF5cywgc3RydWN0dXJlcywgY2xhc3NlcywgYW5kIHNvIGZvcnRoLiAgICBVbmxpa2UgdHJhZGl0aW9uYWwgVGNsIGV4dGVuc2lvbiBwcm9ncmFtbWluZywgU1dJRyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBleHRlbnNpb25zIGFuZCBoaWRlcyBhbG1vc3QgYWxsIG9mIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMuICAgQXMgYSByZXN1bHQsIFNXSUcgbWFrZXMgaXQgZWFzeSB0byB1c2UgVGNsIGluIGEgcmFwaWRseSBjaGFuZ2luZyBDL0MrKyBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC0tZXZlbiBpZiB0aGUgdW5kZXJseWluZyBDL0MrKyBjb2RlIGRvZXMgbm90IGludm9sdmUgVGNsLiAgIDxwPgotPHA+Ci1TV0lHIGlzIGZyZWVseSBhdmFpbGFibGUgZnJvbSA8YSBocmVmPSJodHRwOi8vd3d3LnN3aWcub3JnIj53d3cuc3dpZy5vcmc8L2E+IGFuZCBzdXBwb3J0cyBUY2wgb24gVW5peCwgV2luZG93cy1OVCwgYW5kIE1hY2ludG9zaCBwbGF0Zm9ybXMuICBTV0lHIGFsc28gZ2VuZXJhdGVzIFBlcmwgYW5kIFB5dGhvbiBleHRlbnNpb25zIGFuZCBtYW55IG9mIHRoZSBmZWF0dXJlcyBkZXNjcmliZWQgaW4gdGhpcyBjaGFwdGVyIGFsc28gYXBwbHkgdG8gdGhvc2UgbGFuZ3VhZ2VzLiAgIEZpbmFsbHksIFNXSUcgaXMgcGFja2FnZWQgd2l0aCBtb3JlIHRoYW4gMzAwIHBhZ2VzIG9mIHR1dG9yaWFsLXN0eWxlIGRvY3VtZW50YXRpb24uICAgSXQgaXMgbm90IG15IGludGVudCB0byByZXBlYXQgdGhhdCBkb2N1bWVudGF0aW9uIGhlcmUgYWx0aG91Z2ggdGhlcmUgd2lsbCBiZSBzb21lIHVuYXZvaWRhYmxlIG92ZXJsYXAuICAgUmF0aGVyLCB0aGUgZ29hbCBpcyB0byBkZXNjcmliZSBob3cgU1dJRyB3b3Jrcywgd2hhdCBpdCBkb2VzLCBhbmQgaG93IGl0IGNhbiBiZSB1c2VkIGFzIGEgQy9DKysgZGV2ZWxvcG1lbnQgdG9vbC48cD4KLTxhIG5hbWU9Im42Ij48L2E+PGgzPiBUY2wgRXh0ZW5zaW9uIEJ1aWxkaW5nPC9oMz4KLVRjbCBwcm92aWRlcyBhbiBleHRlbnNpdmUgQyBBUEkgdGhhdCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY29tcGlsZWQgZXh0ZW5zaW9ucyBpbiBDIG9yIEMrKy4gICAgVG8gaW50ZWdyYXRlIFRjbCBhbmQgQy9DKyssIGl0IGlzIG5lY2Vzc2FyeSB0byB3cml0ZSAid3JhcHBlciBmdW5jdGlvbnMiIHRoYXQgcHJvdmlkZSB0aGUgZ2x1ZSBiZXR3ZWVuICBDIGFuZCB0aGUgVGNsIGludGVycHJldGVyLiAgIFRvIGlsbHVzdHJhdGUsIHN1cHBvc2UgdGhhdCB5b3Ugd2FudGVkIHRvIGFjY2VzcyB0aGUgcG93KHgseSkgZnVuY3Rpb24gaW4gdGhlIEMgbWF0aCBsaWJyYXJ5IGZyb20gVGNsLiAgICBUbyBkbyB0aGlzLCB5b3UgIHdvdWxkIHdyaXRlIGEgd3JhcHBlciBmdW5jdGlvbiBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIFBvd09iakNtZCAKLSAqCi0gKiBUY2wgOC54IHdyYXBwZXIgZm9yIHRoZSBwb3coeCx5KSBmdW5jdGlvbi4KLSAqLwotCi0jaW5jbHVkZSAmbHQ7bWF0aC5oJmd0OwotaW50IAotUG93T2JqQ21kKENsaWVudERhdGEgY2xpZW50RGF0YSwgVGNsX0ludGVycCAqaW50ZXJwLAotICAgICAgICAgIGludCBvYmpjLCBUY2xfT2JqICpDT05TVCBvYmp2W10pCi17Ci0JCVRjbF9PYmogICpyZXN1bHRwdHI7Ci0JCWRvdWJsZSAgICB4LHkscmVzdWx0OwotCQlpbnQgICAgICAgZXJyb3I7Ci0KLQkJaWYgKG9iamMgIT0gMykgewotCQkJVGNsX1dyb25nTnVtQXJncyhpbnRlcnAsMixvYmp2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzYWdlIDogcG93IHggeSIpOwotCQkJcmV0dXJuIFRDTF9FUlJPUjsKLQkJfQotCQllcnJvciA9IFRjbF9HZXREb3VibGVGcm9tT2JqKGludGVycCwgb2JqdlsxXSwgJmFtcDt4KTsKLQkJaWYgKGVycm9yICE9IFRDTF9PSykgcmV0dXJuIGVycm9yOwotCQllcnJvciA9IFRjbF9HZXREb3VibGVGcm9tT2JqKGludGVycCwgb2JqdlsyXSwgJmFtcDt5KTsKLQkJaWYgKGVycm9yICE9IFRDTF9PSykgcmV0dXJuIGVycm9yOwotCi0JCXJlc3VsdCA9IHBvdyh4LHkpOwotCQlyZXN1bHRwdHIgPSBUY2xfR2V0T2JqUmVzdWx0KGludGVycCk7Ci0JCVRjbF9TZXREb3VibGVPYmoocmVzdWx0cHRyLHJlc3VsdCk7Ci0JCXJldHVybiBUQ0xfT0s7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRvIG1ha2UgdGhpcyBuZXcgY29tbWFuZCBhdmFpbGFibGUgdG8gVGNsLCB5b3UgYWxzbyBuZWVkIHRvIHdyaXRlIGFuIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHN1Y2ggYXMgZm9sbG93czo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbnQgCi1FeGFtcGxlX0luaXQoVGNsX0ludGVycCAqaW50ZXJwKSB7Ci0JCVRjbF9DcmVhdGVPYmpDb21tYW5kKGludGVycCwgInBvdyIsIFBvd09iakNtZCwKLQkJICAgICAgICAoQ2xpZW50RGF0YSkgTlVMTCwgKFRjbF9DbWREZWxldGVQcm9jICopIE5VTEwpOwotCQlyZXR1cm4gVENMX09LOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1GaW5hbGx5LCB0byBidWlsZCB0aGUgVGNsIGV4dGVuc2lvbiwgdGhlc2UgZnVuY3Rpb25zIChhbmQgdGhlIG9yaWdpbmFsIEMgZnVuY3Rpb25zKSBhcmUgY29tcGlsZWQgaW50byBhbiBleHRlbnNpb24gbW9kdWxlLiAgICBJbiBuZXdlciB2ZXJzaW9ucyBvZiBUY2wsIHRoaXMgaXMgdXN1YWxseSBkb25lIGJ5IGNvbXBpbGluZyB0aGUgZXh0ZW5zaW9uIG1vZHVsZSBpbnRvIGEgc2hhcmVkIGxpYnJhcnkgb3IgRExMIHRoYXQgY2FuIGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBpbnRvIHRoZSBUY2wgaW50ZXJwcmV0ZXIuICAgIEluIHRoaXMgY2FzZSwgdXNpbmcgdGhlIG1vZHVsZSBmcm9tIFRjbCBtaWdodCBsb29rIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dGNsc2gKLSUgbG9hZCAuL2V4YW1wbGUuc28gRXhhbXBsZQotJSBwb3cgMiAzCi04LjAKLSUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gY2FzZXMgd2hlcmUgZHluYW1pYyBsb2FkaW5nIGlzIG5vdCBzdXBwb3J0ZWQsIGV4dGVuc2lvbiBtb2R1bGVzIGNhbiBiZSBjb21waWxlZCBpbnRvIHRoZSB0Y2xzaCBvciB3aXNoIGV4ZWN1dGFibGUgZGlyZWN0bHkgKGFsc28ga25vd24gYXMgc3RhdGljIGxpbmtpbmcpLiAgIFRoaXMgaXMgYWNjb21wbGlzaGVkIGJ5IHdyaXRpbmcgYSA8dHQ+VGNsX0FwcEluaXQoKTwvdHQ+IGZ1bmN0aW9uIGFuZCBhIDx0dD5tYWluKCk8L3R0PiBmdW5jdGlvbi48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vKiBtYWluLmMgKi8KLSNpbmNsdWRlICZsdDt0Y2wuaCZndDsKLWludCBUY2xfQXBwSW5pdChUY2xfSW50ZXJwICppbnRlcnApOwotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0gICAgVGNsX01haW4oYXJnYywgYXJndiwgVGNsX0FwcEluaXQpOwotfQotaW50IFRjbF9BcHBJbml0KFRjbF9JbnRlcnAgKmludGVycCkgewotICAgICAgLyogSW5pdGlhbGl6ZSBUY2wgKi8KLSAgICAgIGlmIChUY2xfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgewotICAgICAgICAgICByZXR1cm4gVENMX0VSUk9SOwotICAgICAgfQotICAgICAgLyogSW5pdGlhbGl6ZSBvdXIgZXh0ZW5zaW9uICovCi0gICAgICBpZiAoRXhhbXBsZV9Jbml0KGludGVycCkgPT0gVENMX0VSUk9SKSB7Ci0gICAgICAgICAgIHJldHVybiBUQ0xfRVJST1I7Ci0gICAgICB9Ci0gICAgICByZXR1cm4gVENMX09LOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BbHRob3VnaCB3cml0aW5nIGEgc2ltcGxlIFRjbCBleHRlbnNpb24gbWF5IGJlIGVhc3kgZW5vdWdoLCBjb25zaWRlciB0aGUgcHJvYmxlbSBvZiBwcm92aWRpbmcgYSBUY2wgaW50ZXJmYWNlIHRvIGEgbGFyZ2UgQy9DKysgbGlicmFyeSBjb250YWluaW5nIGh1bmRyZWRzIG9mIGZ1bmN0aW9ucywgY2xhc3NlcywgIG9iamVjdHMsIHZhcmlhYmxlcywgYW5kIGNvbnN0YW50cy4gICBJbiB0aGlzIGNhc2UsIGl0IHdvdWxkIGJlIG5lY2Vzc2FyeSB0byB3cml0ZSBodW5kcmVkcyBvZiBjb21wbGljYXRlZCB3cmFwcGVyIGZ1bmN0aW9ucy0tLWEgdGltZSBjb25zdW1pbmcgdGFzayB0byBiZSBjZXJ0YWluLiAgTm90IG9ubHkgdGhhdCwgcHJvdmlkaW5nIGEgbWFwcGluZyBiZXR3ZWVuIEMgYW5kIFRjbCBpcyBmdXJ0aGVyIGNvbXBsaWNhdGVkIGJ5IGRhdGEgcmVwcmVzZW50YXRpb24gaXNzdWVzIGFuZCBvYmplY3QgbWFuYWdlbWVudCAoaS5lLiBob3cgZG8geW91IG1hbmFnZSBDL0MrKyBvYmplY3RzLCBwb2ludGVycywgYXJyYXlzLCBldGMuLi4pLiAgVG8gbWFrZSBtYXR0ZXJzIHdvcnNlLCBjb25zaWRlciB0aGUgdXNlIG9mIFRjbCBpbiBhIHJhcGlkbHkgY2hhbmdpbmcgQy9DKysgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgd2hlcmUgQVBJcyBhcmUgZXZvbHZpbmcsIHBhY2thZ2VzIG1pZ2h0IG9ubHkgYmUgcGFydGlhbGx5IGltcGxlbWVudGVkLCBhbmQgZGVzaWducyBhcmUgYmVpbmcgcmV2aXNlZC4gICBOZWVkbGVzcyB0byBzYXksIGl0IGlzIGRpZmZpY3VsdCB0byB3cml0ZSBhbmQgbWFpbnRhaW4gVGNsIHdyYXBwZXJzIGluIHRoaXMgc2V0dGluZy4gR2l2ZW4gdGhlIGNob2ljZSwgbW9zdCBkZXZlbG9wZXJzIHdvdWxkIHJhdGhlciBjb25jZW50cmF0ZSBvbiB0aGUgam9iIGF0IGhhbmQtLW5vdCB0aGUgdGFzayBvZiB3cml0aW5nIFRjbCB3cmFwcGVyIGNvZGUuICAgQXMgYSByZXN1bHQsIHRoZSB1c2Ugb2YgVGNsIG1pZ2h0IGJlIGlnbm9yZWQgZW50aXJlbHkgb3Igb25seSBjb25zaWRlcmVkIG11Y2ggbGF0ZXIgaW4gYSBwcm9qZWN0IChhZnRlciB0aGUgY29kZSBoYXMgc3RhYmlsaXplZCkuPHA+Ci08YSBuYW1lPSJuNyI+PC9hPjxoMz4gQSAzMCBTZWNvbmQgSW50cm9kdWN0aW9uIHRvIFNXSUc8L2gzPgotU1dJRyBpcyBhIGRldmVsb3BtZW50IHRvb2wgdGhhdCBhdXRvbWF0ZXMgdGhlIFRjbCBleHRlbnNpb24gYnVpbGRpbmcgcHJvY2Vzcy4gIEZvciBleGFtcGxlLCBjb25zaWRlciB0aGUgZWFybGllciBleGFtcGxlIG9mIHRoZSBwb3coeCx5KSBmdW5jdGlvbi4gICBXaXRoIFNXSUcsIHRoZSBUY2wgZXh0ZW5zaW9uIGNhbiBiZSBkZWZpbmVkIGVudGlyZWx5IGJ5IHRoZSBmb2xsb3dpbmcgZmlsZSAoYnkgY29udmVudGlvbiB0aGVzZSBhcmUgY2FsbGVkICJpbnRlcmZhY2UgZmlsZXMiIGFuZCBhcmUgdXN1YWxseSBnaXZlbiBhIDx0dD4uaTwvdHQ+IHN1ZmZpeCkgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPgotLy8gZXhhbXBsZS5pIDogQSBTaW1wbGUgU1dJRyBpbnRlcmZhY2UKLSVtb2R1bGUgZXhhbXBsZQotJXsKLSNpbmNsdWRlICZsdDttYXRoLmgmZ3Q7Ci0lfQotCi0vLyBBTlNJIEMvQysrIHByb3RvdHlwZXMKLWRvdWJsZSBwb3coZG91YmxlIHgsIGRvdWJsZSB5KTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBmaWxlLCB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgVGNsIG1vZHVsZSBpcyBkZWZpbmVkIGVudGlyZWx5IHdpdGggQU5TSSBDIHByb3RvdHlwZXMuIEluc3RlYWQgb2Ygd3JpdGluZyB3cmFwcGVyIGNvZGUsIHlvdSBvbmx5IG5lZWQgdG8gbGlzdCB0aGUgZnVuY3Rpb25zIHRoYXQgeW91IHdhbnQgdG8gYWNjZXNzLiAgIEluIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBmaWxlLCB0aGUgPHR0PiVtb2R1bGU8L3R0PiBkaXJlY3RpdmUgbmFtZXMgdGhlIGV4dGVuc2lvbiBtb2R1bGUuIFRoZSA8dHQ+JXssICV9PC90dD4gc2VjdGlvbiBpcyB1c2VkIHRvIGVuY2xvc2UgY29kZSB0aGF0IHNob3VsZCBiZSBjb3BpZWQgaW50byB0aGUgb3V0cHV0IHdyYXBwZXIgY29kZSAodXN1YWxseSB0aGlzIGlzIHVzZWQgdG8gZ3JhYiB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzIGFuZCBwcm92aWRlIGFkZGl0aW9uYWwgc3VwcG9ydCBjb2RlIHdoZW4gbmVlZGVkKS48cD4KLTxwPgotVG8gYnVpbGQgdGhlIGV4dGVuc2lvbiwgeW91IHNpbXBseSBydW4gU1dJRyBvbiB0aGlzIGZpbGUgdG8gZ2VuZXJhdGUgdGhlIFRjbCB3cmFwcGVyIGNvZGUgKGluIHRoaXMgY2FzZSBTV0lHIGNyZWF0ZXMgYSBmaWxlIGNhbGxlZCBleGFtcGxlX3dyYXAuYykuICAgVGhpcyBmaWxlIGlzIHRoZW4gY29tcGlsZWQgaW50byBhIFRjbCBleHRlbnNpb24gbW9kdWxlIGV4YWN0bHkgYXMgYmVmb3JlLiBGb3IgZXhhbXBsZSAoc2hvd24gZm9yIExpbnV4KSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyBzd2lnIC10Y2w4IGV4YW1wbGUuaQotR2VuZXJhdGluZyB3cmFwcGVycyBmb3IgVGNsIDgueAotJmd0OyBnY2MgLWZwaWMgLWMgZXhhbXBsZV93cmFwLmMgCi0mZ3Q7IGdjYyAtc2hhcmVkIGV4YW1wbGVfd3JhcC5vIC1vIGV4YW1wbGUuc28gLWxtIAotJmd0OyB0Y2xzaAotJSBsb2FkIC4vZXhhbXBsZS5zbyBleGFtcGxlCi0lIHBvdyAyIDMKLTguMAotJQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1XaXRoIFNXSUcsIHRoZSBleHRlbnNpb24gbW9kdWxlIHdvcmtzIGV4YWN0bHkgYXMgZXhwZWN0ZWQtLWhvd2V2ZXIsIHlvdSBkaWRuJ3QgaGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0IFRjbCBvdGhlciB0aGFuIGtub3dpbmcgaG93IHRvIGNvbXBpbGUgYW5kIGxpbmsgdGhlIGZpbmFsIGV4dGVuc2lvbiBtb2R1bGUuIDxwPgotPHA+Ci1Vbmxpa2Ugbm9ybWFsIFRjbCBleHRlbnNpb24gYnVpbGRpbmcsIFNXSUcgZXh0ZW5zaW9ucyBjYW4gYmUgdmVyeSBlYXN5IHRvIGdlbmVyYXRlLiAgSW4gdGhlIGV4YW1wbGUsIHlvdSBjb3VsZCBlYXNpbHkgbWFrZSBhbiBpbnRlcmZhY2UgdG8gdGhlIGVudGlyZSAmbHQ7bWF0aC5oJmd0OyBsaWJyYXJ5IGJ5IHNpbXBseSBjb3B5aW5nIGFsbCBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eXBlcyBvdXQgb2YgdGhlIGhlYWRlciBmaWxlIGFuZCBwbGFjaW5nIHRoZW0gaW4gdGhlIGludGVyZmFjZS4gICBJZiB5b3UgbGF0ZXIgd2FudGVkIHRvIGNoYW5nZSB0aGUgVGNsIGludGVyZmFjZSwgeW91IHdvdWxkIHNpbXBseSBtYWtlIHRoZXNlIGNoYW5nZXMgdG8gdGhlIGludGVyZmFjZSBmaWxlLiAgVGhlIHJlc3VsdGluZyBUY2wgaW50ZXJmYWNlIHdvdWxkIHRoZW4gYmUgdXBkYXRlZCB3aGVuIHRoZSBleHRlbnNpb24gbW9kdWxlIHdhcyByZWNvbXBpbGVkLjxwPgotPHA+Ci1BdCB0aGlzIHBvaW50LCB5b3Uga25vdyBhYm91dCA5MCUgb2Ygd2hhdCB5b3UgbmVlZCB0byBrbm93IHRvIHN0YXJ0IHVzaW5nIFNXSUcgKGFuZCB0aGUgc2ltcGxlIGV4YW1wbGUgZ2l2ZW4gaGVyZSBjYW4gZXZlbiBiZSB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIHlvdXIgb3duIGFwcGxpY2F0aW9ucykuICAgVGhlIGtleSB0aGluZyB0byBrZWVwIGluIG1pbmQgaXMgdGhhdCBTV0lHIGlzIGVudGlyZWx5IGF1dG9tYXRpYyBhbmQgaXQgdXNlcyBhbiBleHRlbmRlZCBzdWJzZXQgb2YgQU5TSSBDIHN5bnRheC4gTW9kdWxlcyBjYW4gdXN1YWxseSBiZSBjcmVhdGVkIGJ5IHNpbXBseSBtYXNzYWdpbmcgZXhpc3RpbmcgaGVhZGVyIGZpbGVzIGFuZCBvdGhlciBzb3VyY2VzIG9mIEFOU0kgQyBwcm90b3R5cGVzLiAgICBJbiBmYWN0LCBtYW55IHVzZXJzIGFyZSBzdXJwcmlzZWQgdG8gZmluZCBvdXQgaG93IGVhc3kgaXQgY2FuIGJlIHRvIGJ1aWxkIFRjbCBleHRlbnNpb25zIGluIHRoaXMgbWFubmVyIChpbiBmYWN0LCAgb25lIGVhcmx5IFNXSUcgdXNlciB3YXMgYWJsZSB0byB3cmFwIHRoZSBlbnRpcmUgT3BlbkdMIGxpYnJhcnkgaW50byBhIFRjbCBtb2R1bGUgd2l0aCBsZXNzIHRoYW4gdGVuIG1pbnV0ZXMgb2YgZWZmb3J0ISkuPHA+Ci08YSBuYW1lPSJuMiI+PC9hPjxoMj4gQSBUb3VyIG9mIFNXSUc8L2gyPgotSW4gdGhpcyBzZWN0aW9uLCBJIHByb3ZpZGUgYSBoaWdoLWxldmVsIHRvdXIgb2YgU1dJRy4gIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgYSBxdWljayBvdmVydmlldyBhbmQgbm90IGEgcmVwbGFjZW1lbnQgZm9yIHRoZSBTV0lHIHVzZXJzIG1hbnVhbCAod2hpY2ggY29udGFpbnMgYWxsIG9mIHRoZSBnb3J5IGRldGFpbHMpLiAgPHA+Ci08YSBuYW1lPSJuOCI+PC9hPjxoMz4gVGhlIERlc2lnbiBhbmQgSW1wbGVtZW50YXRpb24gb2YgU1dJRzwvaDM+Ci1JbiBhIG51dHNoZWxsLCBTV0lHIGlzIGEgc3BlY2lhbCBwdXJwb3NlIEMvQysrIGNvbXBpbGVyLiAgICBBcyBpbnB1dCwgU1dJRyBhY2NlcHRzIEFOU0kgQy9DKysgZGVmaW5pdGlvbnMgYW5kIHRyYW5zbGF0ZXMgdGhlbSBpbnRvIHRoZSBDIHdyYXBwZXIgY29kZSBuZWVkZWQgdG8gYWNjZXNzIHRoYXQgZnVuY3Rpb25hbGl0eSBmcm9tIGEgdmFyaWV0eSBvZiBzY3JpcHRpbmcgbGFuZ3VhZ2VzLiAgU1dJRyBhbHNvIHVuZGVyc3RhbmRzIGEgbnVtYmVyIG9mIGRpcmVjdGl2ZXMgdGhhdCBhcmUgcHJlY2VkZWQgYnkgYSBgJScuICAgVGhlc2UgZGlyZWN0aXZlcyBhdWdtZW50IHRoZSBBTlNJIEMgZGVmaW5pdGlvbnMgYW5kIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0IFNXSUcgdXNlcyB3aGVuIGdlbmVyYXRpbmcgdGhlIHdyYXBwZXIgY29kZS4gICAgIEZpbmFsbHksIGluIGFkZGl0aW9uIHRvIHByb2R1Y2luZyB3cmFwcGVyIGNvZGUsIFNXSUcgYWxzbyBnZW5lcmF0ZXMgZG9jdW1lbnRhdGlvbiBmaWxlcyAoaW4gQVNDSUksIEhUTUwsIG9yIExhVGVYKS4gICA8cD4KLTxwPgotCi1TV0lHIGlzIGRlc2lnbmVkIHRvIGJlIGV4dGVuc2libGUgd2l0aCBuZXcgbGFuZ3VhZ2UgbW9kdWxlcyBhbmQgZG9jdW1lbnRhdGlvbiBtZXRob2RzLiAgIEluIGFkZGl0aW9uIHRvIHByb2R1Y2luZyB3cmFwcGVycyBmb3IgVGNsLCBTV0lHIGNhbiBiZSB1c2VkIGZvciBpbnRlcmZhY2luZyB3aXRoIGEgdmFyaWV0eSBvZiBvdGhlciBsYW5ndWFnZXMgaW5jbHVkaW5nIFBlcmwsIFB5dGhvbiwgYW5kIEd1aWxlIChpbiBmYWN0LCB1c2VycyBoYXZlIGV2ZW4gZGV2ZWxvcGVkIG1vZHVsZXMgZm9yIEphdmEgYW5kIGNvbW1lcmNpYWwgcGFja2FnZXMgc3VjaCBhcyBNQVRMQUIpLjxwPgotPHA+Ci1TV0lHIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBhdCBMb3MgQWxhbW9zIE5hdGlvbmFsIExhYm9yYXRvcnkgYXMgYSBkZXZlbG9wbWVudCB0b29sIGZvciBpbnRlZ3JhdGluZyBwaHlzaWNzIGFwcGxpY2F0aW9ucyB3aXRoIHNjcmlwdGluZyBsYW5ndWFnZXMuICAgIFdpdGggdGhpcyBpbiBtaW5kLCB0aGVyZSB3ZXJlIGEgbnVtYmVyIG9mIGRlc2lnbiBnb2FscyA6PHA+Ci08cD4KLTx1bD4KLTxsaT5Db21wbGV0ZSBhdXRvbWF0aW9uLiAgTW9kdWxlcyBzaG91bGQgYmUgY29tcGxldGVseSBkZWZpbmVkIGJ5IHRoZSBpbnB1dCB0byBTV0lHIGFuZCBmdWxseSBmdW5jdGlvbmFsLiAgIEluIG90aGVyIHdvcmRzLCBhIHVzZXIgc2hvdWxkIG5ldmVyIGhhdmUgdG8gbW9kaWZ5IFNXSUcncyBvdXRwdXQuCi08bGk+VXNlIEFOU0kgQy9DKysgc3ludGF4LiAgVGhpcyBtYWtlcyBTV0lHIGVhc3kgdG8gYXBwbHkgdG8gZXhpc3Rpbmcgc29mdHdhcmUgcGFja2FnZXMgYmVjYXVzZSBpbnRlcmZhY2VzIGNhbiBiZSBidWlsdCBmcm9tIGhlYWRlciBmaWxlcy4gIFRoZSBvdGhlciBiZW5lZml0IGlzIHRoYXQgeW91IGRvbid0IG5lZWQgdG8gbGVhcm4gYSBzcGVjaWFsIGludGVyZmFjZSBkZWZpbml0aW9uIGxhbmd1YWdlIHRvIHVzZSBTV0lHLS1pZiB5b3Uga25vdyBDLCB0aGVuIHlvdSBhbHJlYWR5IGtub3cgbW9zdCBvZiBTV0lHLgotPGxpPk5vbi1pbnZhc2l2ZSBpbnRlcmZhY2UgYnVpbGRpbmcuICBTV0lHIGF0dGVtcHRzIHRvIG1ha2Ugc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZXMgd2l0aG91dCByZXF1aXJpbmcgbW9kaWZpY2F0aW9ucyB0byB0aGUgdW5kZXJseWluZyBDL0MrKyBjb2RlLiAgIAotPGxpPkxhbmd1YWdlIGluZGVwZW5kZW5jZS4gICBVc2luZyBhIGNvbW1vbiBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbiwgU1dJRyBjYW4gZ2VuZXJhdGUgbW9kdWxlcyBmb3IgUGVybCwgUHl0aG9uLCBHdWlsZSwgYW5kIGEgdmFyaWV0eSBvdGhlciBzeXN0ZW1zLiAgIERpZmZlcmVudCBsYW5ndWFnZXMgYXJlIGJldHRlciBhdCBkaWZmZXJlbnQgdGFza3MgKGFuZCBldmVyeW9uZSBzZWVtcyB0byBoYXZlIGEgcGVyc29uYWwgcHJlZmVyZW5jZSkuICBTV0lHIGFsbG93cyB5b3UgdG8ga2VlcCB5b3VyIG9wdGlvbnMgb3Blbi4KLTxsaT5BZGFwdGFiaWxpdHkuICAgR2l2ZW4gdGhlIGh1Z2UgdmFyaWV0eSBvZiBDL0MrKyBjb2Rpbmcgc3R5bGVzIGFuZCB0ZWNobmlxdWVzLCBTV0lHIG5lZWRzIHRvIGJlIGFibGUgdG8gYWRhcHQgaXRzZWxmIHRvIGFueSBudW1iZXIgb2Ygc2l0dWF0aW9ucy4gICBBcyBhIHJlc3VsdCwgU1dJRyBwcm92aWRlcyBhIHZhcmlldHkgb2YgY3VzdG9taXphdGlvbiBvcHRpb25zIGFzIHdlbGwgYXMgdGhlIGFiaWxpdHkgdG8gc2hvb3QgeW91cnNlbGYgaW4gdGhlIGZvb3QgaWYgbmVjZXNzYXJ5LiAgIExvb2tpbmcgYXQgaXQgYW5vdGhlciB3YXksIFNXSUcgaXMgZGVzaWduZWQgdG8gYnVpbGQgc2NyaXB0aW5nIGludGVyZmFjZXMsIG5vdCBsZWdpc2xhdGUgbW9yYWxpdHkuCi08bGk+RXh0ZW5zaWJpbGl0eS4gICAgVGhlIFNXSUcgY29tcGlsZXIgaXMgZGVzaWduZWQgdG8gYmUgZXh0ZW5kZWQgd2l0aCBuZXcgbGFuZ3VhZ2UgbW9kdWxlcyBhbmQgY2FwYWJpbGl0aWVzLiAgSW4gYWRkaXRpb24sIFNXSUcgaW5jbHVkZXMgYSBzdGFuZGFyZCBsaWJyYXJ5IHRoYXQgY2FuIGJlIHVzZWQgdG8gaGVscCBpbiB0aGUgY29uc3RydWN0aW9uIG9mIGludGVyZmFjZXMgYW5kIHRvIHByb3ZpZGUgbW9yZSBmdW5jdGlvbmFsaXR5LgotPC91bD4KLTxwPgotVGhlIHNlcGFyYXRpb24gYmV0d2VlbiB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIGFuZCB3cmFwcGVyIGNvZGUgaXMgb25lIG9mIFNXSUcncyBtb3N0IGltcG9ydGFudCBmZWF0dXJlcy4gICAgRmlyc3QsIGl0IGFsbG93cyBUY2wgdG8gYmUgdXNlZCB3aXRoIG9yZGluYXJ5IEMvQysrIGNvZGUtLWluIGZhY3QsIHRoaXMgY29kZSBkb2Vzbid0IG5lZWQgdG8ga25vdyBhbnl0aGluZyBhYm91dCB0aGUgVGNsIGludGVyZmFjZS4gICAgU2Vjb25kLCAgdGhpcyBhbGxvd3MgZm9yIHJhcGlkIGNoYW5nZSBhbmQgZGV2ZWxvcG1lbnQuICAgSWYgdGhlIEMgY29kZSBjaGFuZ2VzIGluIHNvbWUgbWFubmVyLCB0aGUgVGNsIGludGVyZmFjZSBjYW4gYmUgZWFzaWx5IHJlZ2VuZXJhdGVkIHRvIHJlZmxlY3QgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbi4gICBJdCBpcyBhbHNvIGVhc3kgdG8gYnVpbGQgYSBzdGFuZC1hbG9uZSBDIGFwcGxpY2F0aW9uLCBzd2l0Y2ggc2NyaXB0aW5nIGxhbmd1YWdlcywgb3IgZXZlbiB1cGdyYWRlIHRvIG5ld2VyIHZlcnNpb25zIG9mIFRjbCAoZm9yIGV4YW1wbGUsIHN3aXRjaGluZyBmcm9tIFRjbCA3LjYgdG8gVGNsIDguMCkuICAgRmluYWxseSwgU1dJRyBzaGlmdHMgdGhlIGZvY3VzIGZyb20gdGhlIGRldmVsb3BtZW50IG9mIFRjbCB3cmFwcGVyIGZ1bmN0aW9ucyB0byB0aGUgIHByb2JsZW0gYXQgaGFuZC4gIEFzIGEgcmVzdWx0LCBpdCBiZWNvbWVzIHBvc3NpYmxlIHRvIHVzZSBUY2wgaW4gc2l0dWF0aW9ucyB3aGVyZSBpdCBtaWdodCBvdGhlcndpc2UgaGF2ZSBub3QgYmVlbiBjb25zaWRlcmVkLjxwPgotPGEgbmFtZT0ibjkiPjwvYT48aDM+IFJ1bm5pbmcgU1dJRzwvaDM+Ci1TV0lHIGlzIGludm9rZWQgdXNpbmcgdGhlIDx0dD5zd2lnPC90dD4gY29tbWFuZC4gIFNXSUcgb3BlcmF0ZXMgbGlrZSBhIEMgY29tcGlsZXIgYW5kIGFjY2VwdHMgYSBudW1iZXIgb2Ygb3B0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3dpZyAmbHQ7b3B0aW9ucyZndDsgZmlsZW5hbWUKLQotLXRjbCAgICAgICAgICAgICAgIEdlbmVyYXRlIFRjbCA3Lnggd3JhcHBlcnMKLS10Y2w4ICAgICAgICAgICAgICBHZW5lcmF0ZSBUY2wgOC54IHdyYXBwZXJzCi0tcGVybDUgICAgICAgICAgICAgR2VuZXJhdGUgUGVybDUgd3JhcHBlcnMKLS1weXRob24gICAgICAgICAgICBHZW5lcmF0ZSBQeXRob24gd3JhcHBlcnMKLS1kYXNjaWkgICAgICAgICAgICBQcm9kdWNlIEFTQ0lJIGRvY3VtZW50YXRpb24KLS1kaHRtbCAgICAgICAgICAgICBQcm9kdWNlIEhUTUwgZG9jdW1lbnRhdGlvbgotLWRsYXRleCAgICAgICAgICAgIFByb2R1Y2UgTGFUZVggZG9jdW1lbnRhdGlvbgotLWMrKyAgICAgICAgICAgICAgIEVuYWJsZSBDKysgbW9kZQotLW9iamMgICAgICAgICAgICAgIEVuYWJsZSBPYmplY3RpdmUtQyBtb2RlCi0tSWRpciAgICAgICAgICAgICAgQWRkIGEgZGlyZWN0b3J5IHRvIHRoZSBTV0lHIHNlYXJjaCBwYXRoCi0tbGZpbGUgICAgICAgICAgICAgSW5jbHVkZSBhIFNXSUcgbGlicmFyeSBmaWxlCi0tbyBvdXRmaWxlICAgICAgICAgU2V0IHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZQotLW1vZHVsZSBuYW1lICAgICAgIFNldCB0aGUgbW9kdWxlIG5hbWUKLS1Ec3ltYm9sICAgICAgICAgICBEZWZpbmUgYSBzeW1ib2wKLS12ZXJzaW9uICAgICAgICAgICBEaXNwbGF5IFNXSUcncyB2ZXJzaW9uIG51bWJlcgotLWhlbHAgICAgICAgICAgICAgIERpc3BsYXkgYWxsIG9wdGlvbnMKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVGhpcyBpcyBvbmx5IGEgcGFydGlhbCBsaXN0IG9mIG9wdGlvbnMuICAgQSBmdWxsIGxpc3Rpbmcgb2Ygb3B0aW9ucyBjYW4gYmUgb2J0YWluZWQgYnkgaW52b2tpbmcgInN3aWcgLWhlbHAiLjxwPgotPHA+Ci1XaGVuIGdpdmVuIGFuIGlucHV0IGZpbGUgb2YgYDx0dD5teWZpbGUuaTwvdHQ+JywgU1dJRyB3aWxsIHByb2R1Y2UgYW4gb3V0cHV0IGZpbGUgb2YgYDx0dD5teWZpbGVfd3JhcC5jPC90dD4nIGFzIHdlbGwgYXMgYSBkb2N1bWVudGF0aW9uIGZpbGUuICBJZiBuZWNlc3NhcnksIHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZSBjYW4gYmUgY2hhbmdlZCB1c2luZyB0aGUgPHR0Pi1vPC90dD4gb3B0aW9uICh0aGlzIGlzIHNvbWV0aW1lcyBuZWNlc3Nhcnkgd2hlbiB3b3JraW5nIHdpdGggQysrIGNvbXBpbGVycyB0aGF0IGV4cGVjdCB0byBzZWUgYSBDKysgc3VmZml4IG9uIHNvdXJjZSBmaWxlcykuPHA+Ci08cD4KLUFsdGhvdWdoIFNXSUcgY2FuIGJlIGludm9rZWQgZGlyZWN0bHkgb24gdGhlIGNvbW1hbmQgbGluZSwgbW9zdCB1c2VycyBmaW5kIGl0IGVhc2llciB0byBpbnZva2UgU1dJRyB3aXRoaW4gYSBNYWtlZmlsZS4gIEEgdHlwaWNhbCBUY2wgTWFrZWZpbGUgbWlnaHQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgU2FtcGxlIE1ha2VmaWxlIGZvciBhIFRjbCBleHRlbnNpb24KLVNSQ1MgICAgICAgICAgPSBleGFtcGxlLmMgICAgICAgICAjIFNvdXJjZSBmaWxlcwotT0JKUyAgICAgICAgICA9ICAgICAgICAgICAgICAgICAgICMgT2JqZWN0IGZpbGVzIChhbHJlYWR5IGNyZWF0ZWQpCi1JTlRFUkZBQ0UgICAgID0gZXhhbXBsZS5pICAgICAgICAgIyBTV0lHIEludGVyZmFjZSBmaWxlCi1XUkFQRklMRSAgICAgID0gJChJTlRFUkZBQ0U6Lmk9X3dyYXAuYykKLVdSQVBPQkogICAgICAgPSAkKElOVEVSRkFDRTouaT1fd3JhcC5vKQotVEFSR0VUICAgICAgICA9IGV4YW1wbGUuc28gICAgICAgICMgT3V0cHV0IGZpbGUKLQotCi0jIENvbXBpbGVyIG9wdGlvbnMKLUNDICAgICAgICAgICAgPSBnY2MKLUNGTEFHUyAgICAgICAgPQotSU5DTFVERSAgICAgICA9Ci0KLSMgU1dJRyBPcHRpb25zCi1TV0lHICAgICAgICAgID0gL3Vzci9sb2NhbC9iaW4vc3dpZwotU1dJR09QVCAgICAgICA9IC10Y2wgIyB1c2UgLXRjbDggZm9yIFRjbCA4LjAKLVNXSUdDQyAgICAgICAgPSAkKENDKQotCi0jIFJ1bGVzIGZvciBjcmVhdGluZyAubyBmaWxlcyBmcm9tIHNvdXJjZS4KLUNPQkpTICAgICAgICAgPSAkKFNSQ1M6LmM9Lm8pCi1BTExPQkpTICAgICAgID0gJChDT0JKUykgJChPQkpTKQotCi0jIFNoYXJlZCBsaWJyYXJ5IG9wdGlvbnMgKFNob3duIGZvciBMaW51eCkKLUNDU0hBUkVEICAgICAgPSAtZnBpYwotQlVJTEQgICAgICAgICA9ICQoQ0MpIC1zaGFyZWQKLQotIyBUY2wgaW5zdGFsbGF0aW9uICh3aGVyZSBpcyBUY2wvVGsgbG9jYXRlZCkKLVRDTF9JTkNMVURFICAgPSAtSS91c3IvbG9jYWwvaW5jbHVkZQotVENMX0xJQiAgICAgICA9IC1ML3Vzci9sb2NhbC9saWIKLQotIyBBZGRpdGlvbmFsIGxpbmsgbGlicmFyaWVzCi1MSUJTICAgICAgICAgID0gCi0KLS5TVUZGSVhFUzogLmMKLQotLmMubzoKLSAgICAgICAgJChDQykgJChDQ1NIQVJFRCkgJChDRkxBR1MpICQoSU5DTFVERSkgLWMgJCZsdDsKLQotYWxsOiAkKFRBUkdFVCkKLQotIyBDb252ZXJ0IHRoZSBTV0lHIHdyYXBwZXIgZmlsZSBpbnRvIGFuIG9iamVjdCBmaWxlCi0kKFdSQVBPQkopIDogJChXUkFQRklMRSkKLSAgICAgICAgJChTV0lHQ0MpIC1jICQoQ0NTSEFSRUQpICQoQ0ZMQUdTKSAkKFdSQVBGSUxFKSAkKElOQ0xVREUpIFwgCi0gICAgICAgICAgICAgJChUQ0xfSU5DTFVERSkKLQotIyBSdW4gU1dJRwotJChXUkFQRklMRSkgOiAkKElOVEVSRkFDRSkKLSAgICAgICAgJChTV0lHKSAkKFNXSUdPUFQpIC1vICQoV1JBUEZJTEUpICQoSU5URVJGQUNFKQotCi0jIEJ1aWxkIHRoZSBmaW5hbCBleHRlbnNpb24gbW9kdWxlCi0kKFRBUkdFVCk6ICQoV1JBUE9CSikgJChBTExPQkpTKQotICAgICAgICAkKEJVSUxEKSAkKFdSQVBPQkopICQoQUxMT0JKUykgJChMSUJTKSAtbyAkKFRBUkdFVCkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaW5kb3dzLU5UIHVzZXJzIGNhbiBpbnZva2UgU1dJRyBkaXJlY3RseSBmcm9tIHRoZSBNUy1ET1MgY29tbWFuZCBzaGVsbCwgZnJvbSBNYWtlZmlsZXMsIG9yIGFzIGEgc3BlY2lhbCBwcm9jZXNzaW5nIG9wdGlvbiBpbiB3aGF0ZXZlciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB0aGF0IHRoZXkgYXJlIHVzaW5nLiAgIEZvciBleGFtcGxlLCBpbiBWaXN1YWwgQysrLCB5b3UgY2FuIGludm9rZSBTV0lHIGluIHRoZSBzYW1lIG1hbm5lciBhcyB5b3Ugd291bGQgaW52b2tlIG90aGVyIGNvZGUgZ2VuZXJhdGlvbiB0b29scyBzdWNoIGFzIExleCBhbmQgWWFjYy4gICBDb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB5b3VyIGRldmVsb3BtZW50IGVudmlyb25tZW50IGZvciBtb3JlIGRldGFpbHMuPHA+Ci08YSBuYW1lPSJuMTAiPjwvYT48aDM+IFRoZSBJbnB1dCB0byBTV0lHPC9oMz4KLU1vc3QgaW50ZXJmYWNlIGZpbGVzIGhhdmUgdGhlIGZvbGxvd2luZyBmb3JtYXQgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBteW1vZHVsZQotJXsKLS8qIEluY2x1ZGUgaGVhZGVyIGZpbGVzIGhlcmUgKi8KLSNpbmNsdWRlICJteWhlYWRlci5oIgotJX0KLS8vIE5vdyBsaXN0IEFOU0kgQyBkZWNsYXJhdGlvbnMKLWV4dGVybiBkb3VibGUgZm9vKGRvdWJsZSk7Ci0uLi4KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotU1dJRyBhbHNvIGluY2x1ZGVzIGEgcHJlcHJvY2Vzc29yIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGFuZCBtYWNybyBleHBhbnNpb24uICAgIFRoaXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIG1peGVkIGludGVyZmFjZS9oZWFkZXIgZmlsZXMgdGhhdCBhcmUgYWNjZXB0YWJsZSB0byBib3RoIFNXSUcgYW5kIHRoZSBDIGNvbXBpbGVyLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8qIGV4YW1wbGUuaCA6IEEgTWl4ZWQgU1dJRy9DIGZpbGUgKi8KLQotI2lmZGVmIFNXSUcKLSVtb2R1bGUgZXhhbXBsZQotJXsKLSNpbmNsdWRlICJleGFtcGxlLmgiCi0lfQotI2VuZGlmCi0KLSNpZmRlZiBfX1NURENfXwotI2RlZmluZSBfQU5TSV9BUkdTKGEpICAgIGEKLSNlbHNlCi0jZGVmaW5lIF9BTlNJX0FSR1MoYSkgICAgKCkKLSNlbmRpZgotI2lmZGVmIF9fY3BsdXNwbHVzCi0jZGVmaW5lIEVYVEVSTiAgIGV4dGVybiAiQyIKLSNlbHNlCi0jZGVmaW5lIEVYVEVSTiAgIGV4dGVybgotI2VuZGlmCi0KLS8qIE5vdyBkZWNsYXJlIGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KLUVYVEVSTiBkb3VibGUgZm9vIF9BTlNJX0FSR1MoKGRvdWJsZSkpOwotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUluIHN5c3RlbXMgdGhhdCBjaGFuZ2UgYWxvdCwgdGhpcyBhcHByb2FjaCBtYWtlcyBpdCBlYXNpZXIgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBoZWFkZXIgZmlsZXMgYW5kIGludGVyZmFjZSBzcGVjaWZpY2F0aW9ucyAoZXZlbiBpZiBoZWFkZXIgZmlsZXMgcGxheSBwcmVwcm9jZXNzb3IgdHJpY2tzIHRvIGFkZHJlc3Mgc3lzdGVtIGFuZCBjb21waWxlciBkZXBlbmRlbmNpZXMpLjxwPgotPHA+Ci1Gb3IgdGhlIG1vc3QgcGFydCwgYW55dGhpbmcgdGhhdCBjYW4gYmUgZ2l2ZW4gdG8gYSBDIGNvbXBpbGVyIGNhbiBhbHNvIGJlIGdpdmVuIHRvIFNXSUcuICAgSG93ZXZlciwgaXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhhdCBTV0lHIGlzIG5vdCBhIGZ1bGwgQy9DKysgY29tcGlsZXIuICBJbiBzb21lIGNhc2VzLCBpdCBtYXkgZ2V0IGNvbmZ1c2VkIGJ5IGV4dHJlbWVseSBjb21wbGljYXRlZCBkZWNsYXJhdGlvbnMuICAgT3RoZXIgZmVhdHVyZXMgc2ltcGx5IGFyZW4ndCBzdXBwb3J0ZWQtLWZvciBleGFtcGxlLCB2YXJpYWJsZSBsZW5ndGggYXJndW1lbnRzLCBvcGVyYXRvciBvdmVybG9hZGluZywgdGVtcGxhdGVzLCBldGMuLi4gIFdoZW4gaW4gZG91YnQsIHRoZSBiZXN0IHRoaW5nIHRvIGRvIGlzIHRyeSBpdCBhbmQgc2VlLiAgSWYgU1dJRyBjb21wbGFpbnMsIHlvdSBjYW4gZWl0aGVyIHJlbW92ZSB0aGUgb2ZmZW5kaW5nIGRlY2xhcmF0aW9uLCBjb21tZW50IGl0IG91dCwgb3IgdXNlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIGhpZGUgaXQuICAgIEhvd2V2ZXIsIHRoZSBTV0lHIGNvbXBpbGVyIGlzIGFsd2F5cyBpbXByb3Zpbmcgc28gY3VycmVudCBsaW1pdGF0aW9ucyBtYXkgYmUgZWxpbWluYXRlZCBpbiB0aGUgZnV0dXJlLjxwPgotPGEgbmFtZT0ibjExIj48L2E+PGgzPiBUaGUgQmFzaWMgVGNsIEludGVyZmFjZTwvaDM+Ci1TV0lHIGF0dGVtcHRzIHRvIHByb3ZpZGUgYSBkaXJlY3QgbWFwcGluZyBiZXR3ZWVuIEMgYW5kIFRjbC4gICBDIGZ1bmN0aW9ucyBhcmUgdHVybmVkIGludG8gbmV3IFRjbCBjb21tYW5kcy4gIEdsb2JhbCB2YXJpYWJsZXMgYXJlIHR1cm5lZCBpbnRvIFRjbCB2YXJpYWJsZXMgdXNpbmcgdGhlIHZhcmlhYmxlIGxpbmtpbmcgbWVjaGFuaXNtIGlmIHBvc3NpYmxlLiAgIENvbnN0YW50cyBhcmUgc2ltcGx5IHR1cm5lZCBpbnRvIHJlYWQtb25seSBUY2wgdmFyaWFibGVzLiAgICBUaHVzLCBpZiB5b3UgZ2l2ZSBTV0lHIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIGZpbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUKLWV4YW1wbGUKLQotaW50IGZhY3RvcmlhbChpbnQgbik7Ci1leHRlcm4gZG91YmxlIE15X3ZhcmlhYmxlOwotI2RlZmluZSBQSSAzLjE0MTU5MjYKLWNvbnN0IGludCBTUEFNID0gNDI7Ci0uLi4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlc2UgZGVjbGFyYXRpb25zIGFyZSBhY2Nlc3NpYmxlIGluIFRjbCBhcyBmb2xsb3dzPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBwdXRzIFtmYWN0b3JpYWwgNF0gICAgICAgICAgIDsjIENhbGwgYSBDIGZ1bmN0aW9uCi0yNAotJSBzZXQgTXlfdmFyaWFibGUgMy40ICAgICAgICAgIDsjIENoYW5nZSBhIEMgZ2xvYmFsIHZhcmlhYmxlCi0lIHB1dHMgJE15X3ZhcmlhYmxlICAgICAgICAgICAgOyMgUmVhZCBhIEMgZ2xvYmFsIHZhcmlhYmxlCi0zLjQKLSUgcHV0cyAkUEkgICAgICAgICAgICAgICAgICAgICA7IyBPdXRwdXQgdGhlIHZhbHVlIG9mIGEgQyBjb25zdGFudAotMy4xNDE1OTI2Ci0lIHB1dHMgJFNQQU0KLTQyCi0lCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZvciBDIGdsb2JhbCB2YXJpYWJsZXMsIHRoZSBUY2wgaW50ZXJwcmV0ZXIgb25seSBzdXBwb3J0cyBhIHNtYWxsIHN1YnNldCBvZiBDIGRhdGF0eXBlcyAoaW50LCBkb3VibGUsIGFuZCBjaGFyICopLiAgICBXaGVuIG90aGVyIGRhdGF0eXBlcyBhcmUgdXNlZCBzdWNoIGFzIHRoZSBmb2xsb3dpbmcsPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c2hvcnQgTXlfc2hvcnQ7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVNXSUcgY3JlYXRlcyBhIHBhaXIgb2YgYWNjZXNzb3IgZnVuY3Rpb25zIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnB1dHMgW015X3Nob3J0X2dldF0gICAgICAgICAgOyMgR2V0IHZhbHVlIG9mIGEgZ2xvYmFsIHZhcmlhYmxlCi1NeV9zaG9ydF9zZXQgNS41ICAgICAgICAgICAgIDsjIFNldCB2YWx1ZSBvZiBhIGdsb2JhbCB2YXJpYWJsZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMTIiPjwvYT48aDM+IFBvaW50ZXJzPC9oMz4KLVNXSUcgc3VwcG9ydHMgQy9DKysgcG9pbnRlcnMgYnkgbWFwcGluZyB0aGVtIGludG8gY2hhcmFjdGVyIHN0cmluZ3MgdGhhdCBlbmNvZGUgdGhlIHZhbHVlIGFuZCB0eXBlLiAgIEZvciBleGFtcGxlLCBhIHBvaW50ZXIgb2YgdHlwZSAiPHR0PlZlY3RvciAqPC90dD4iIHdvdWxkIGxvb2sgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIGluIFRjbCA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+XzEwMGY4ZTJfVmVjdG9yX3AKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotUG9pbnRlcnMgbWF5IGFwcGVhciB0aHJvdWdob3V0IGEgU1dJRyBpbnRlcmZhY2UgZmlsZS4gIEZ1cnRoZXJtb3JlLCB0eXBlIGRlZmluaXRpb25zIGFyZSBub3QgZ2VuZXJhbGx5IHJlcXVpcmVkLiAgRm9yIGV4YW1wbGUgOjxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSVtb2R1bGUgdmVjdG9yCi0lewotI2luY2x1ZGUgInZlY3Rvci5oIgotJX0KLQotVmVjdG9yICpuZXdfdmVjdG9yKGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOwotZG91YmxlIGRvdF9wcm9kdWN0KFZlY3RvciAqYSwgVmVjdG9yICpiKTsKLS4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiBUY2wsIHBvaW50ZXJzIGFyZSBvcGFxdWUgb2JqZWN0cyB0aGF0IGNhbiBiZSBwYXNzZWQgYXJvdW5kIGJldHdlZW4gZGlmZmVyZW50IEMgZnVuY3Rpb25zIGFuZCBvcGVyYXRlIGxpa2UgeW91IHdvdWxkIGV4cGVjdC4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHNldCB2MSBbbmV3X1ZlY3RvciAyIDMgNF0gICAgICAgICMgQ3JlYXRlIHR3byB2ZWN0b3JzCi0lIHNldCB2MiBbbmV3X1ZlY3RvciA1IDYgN10KLSUgcHV0cyAkdjEgCi1fMTAwZjhlMl9WZWN0b3JfcAotJSBkb3RfcHJvZHVjdCAkdjEgJHYyCi01NgotJQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Gb3IgdGhlIG1vc3QgcGFydCwgcG9pbnRlcnMgaW4gVGNsIHdvcmsgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZXkgZG8gaW4gQy4gIEhvd2V2ZXIsICB0aGUgcHJpbWFyeSBkaWZmZXJlbmNlIGlzIHRoYXQgcG9pbnRlcnMgY2FuJ3QgYmUgZGVyZWZlcmVuY2VkIGluIFRjbC4gICBJbiBvdGhlciB3b3JkcywgeW91IGNhbid0IHBlZXIgaW5zaWRlIG9iamVjdHMgYW5kIG1hbmlwdWxhdGUgdGhlbSAod2VsbCwgYXQgbGVhc3Qgbm90IHdpdGhvdXQgYSBsaXR0bGUgaGVscCkuPHA+Ci08cD4KLUludGVyZXN0aW5nbHkgZW5vdWdoLCB0aGlzIGFwcHJvYWNoIGF2b2lkcyBhIG51bWJlciBvZiBkaWZmaWN1bHQgcHJvYmxlbXMgcmVsYXRlZCB0byBkYXRhIHJlcHJlc2VudGF0aW9uIGFuZCB3b3JraW5nIHdpdGggbXVsdGlwbGUgbGFuZ3VhZ2VzLiAgIEJ5IHN1cHBvcnRpbmcgcG9pbnRlcnMsIGl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIFNXSUcgb3IgVGNsIHRvIHVuZGVyc3RhbmQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gb2YgQy9DKysgb2JqZWN0cy4gIEluIGZhY3QsIFNXSUcgZG9lcyBub3QgbmVlZCB0aGUgZGVmaW5pdGlvbiBvZiBjb21wbGV4IG9iamVjdHMgaW4gb3JkZXIgdG8gdXNlIHRoZW0uICBGb3IgZXhhbXBsZSwgdGhlIFZlY3RvciB0eXBlIHdhcyB1c2VkIGFib3ZlLCBidXQgdGhlIGRlZmluaXRpb24gb2YgVmVjdG9ycyB3YXMgbmV2ZXIgc3BlY2lmaWVkIGluIHRoZSBpbnRlcmZhY2UgZmlsZS48cD4KLTxwPgotRmluYWxseSwgU1dJRyB1c2VzIHRoZSBwb2ludGVyIHR5cGUtc2lnbmF0dXJlIHRvIHBlcmZvcm0gdHlwZS1jaGVja2luZy4gICBXaGVuZXZlciBhIHBvaW50ZXIgaXMgcGFzc2VkIHRvIGEgQyBmdW5jdGlvbiwgaXRzIHR5cGUgaXMgY2hlY2tlZCBhZ2FpbnN0IGFuIGV4cGVjdGVkIHZhbHVlLiAgSWYgYSBtaXNtYXRjaCBvY2N1cnMsIHRoZSBwb2ludGVyIHdpbGwgYmUgcmVqZWN0ZWQgYW5kIGEgVGNsIGVycm9yIHJhaXNlZC4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHNldCB2MSBbbmV3X3ZlY3RvciAyIDMgNF0KLSUgc2V0IG0gW25ld19tYXRyaXggMTAgMTBdCi0lIGRvdF9wcm9kdWN0ICR2MSAkbQotVHlwZSBlcnJvciBpbiBhcmd1bWVudCAyIG9mIGRvdF9wcm9kdWN0LiBFeHBlY3RlZCBfVmVjdG9yX3AuCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVdpdGggdHlwZSBjaGVja2luZywgaXQgaXMgc2FmZSB0byBwYXNzIHBvaW50ZXJzIGFyb3VuZCBpbiBUY2wgbXVjaCBpbiB0aGUgc2FtZSB3YXkgYXMgd291bGQgYmUgZG9uZSBpbiBDL0MrKyAod2hpY2ggbWF5IGJlIGEgZ29vZCBvciBiYWQgdGhpbmcgZGVwZW5kaW5nIG9uIHlvdXIgcG9pbnQgb2Ygdmlldy0tb3IgYWxsIGJhZCBpZiB5b3UncmUgYSBsYW5ndWFnZSBwdXJpc3QpLiAgIDxwPgotPGEgbmFtZT0ibjEzIj48L2E+PGgzPiBTdHJ1Y3R1cmVzIGFuZCBDbGFzc2VzPC9oMz4KLVRoZSBTV0lHIHBvaW50ZXIgbWVjaGFuaXNtIGlzIGEgcG93ZXJmdWwgd2F5IHRvIG1hbmlwdWxhdGUgQyBvYmplY3RzIGZyb20gVGNsLiAgSG93ZXZlciwgeW91IG1heSBhbHNvIHdhbnQgdG8gYWNjZXNzIHRoZSBpbnRlcm5hbHMgb2YgYW4gb2JqZWN0LiAgIFRvIHN1cHBvcnQgdGhpcywgU1dJRyBjYW4gcGFyc2UgQyBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgYW5kIHR1cm4gdGhlbSBpbnRvICJhY2Nlc3NvciIgZnVuY3Rpb25zLiAgRm9yIGV4YW1wbGUsPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c3RydWN0IFZlY3RvciB7Ci0gICAgICBkb3VibGUgeCx5LHo7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1pcyB0cmFuc2xhdGVkIGludG8gdGhlIGZvbGxvd2luZyBjb2xsZWN0aW9uIG9mIEMgZnVuY3Rpb25zIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5kb3VibGUgVmVjdG9yX3hfZ2V0KHN0cnVjdCBWZWN0b3IgKm9iaikgewotCQlyZXR1cm4gb2JqLSZndDt4OwotfQotZG91YmxlIFZlY3Rvcl94X3NldChzdHJ1Y3QgVmVjdG9yICpvYmosIGRvdWJsZSB4KSB7Ci0JCXJldHVybiAob2JqLSZndDt4ID0geCk7Ci19Ci1kb3VibGUgVmVjdG9yX3lfZ2V0KHN0cnVjdCBWZWN0b3IgKm9iaikgewotCQlyZXR1cm4gb2JqLSZndDt5OwotfQotZG91YmxlIFZlY3Rvcl95X3NldChzdHJ1Y3QgVmVjdG9yICpvYmosIGRvdWJsZSB5KSB7Ci0JCXJldHVybiAob2JqLSZndDt5ID0geSk7Ci19Ci1kb3VibGUgVmVjdG9yX3pfZ2V0KHN0cnVjdCBWZWN0b3IgKm9iaikgewotCQlyZXR1cm4gb2JqLSZndDt6OwotfQotZG91YmxlIFZlY3Rvcl96X3NldChzdHJ1Y3QgVmVjdG9yICpvYmosIGRvdWJsZSB6KSB7Ci0JCXJldHVybiAob2JqLSZndDt6ID0geik7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFjY2Vzc29yIGZ1bmN0aW9ucyBzaW1wbHkgdGFrZSBhbiBvYmplY3QgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IGFuZCBwcm92aWRlIGEgd2F5IHRvIG1hbmlwdWxhdGUgaXRzIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGZyb20gVGNsLiAgRm9yIGV4YW1wbGU8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIHYgaXMgYSBWZWN0b3IgdGhhdCBnb3QgY3JlYXRlZCBzb21laG93Ci0lIFZlY3Rvcl94X2dldCAkdgotMy41Ci0lIFZlY3Rvcl94X3NldCAkdiA3LjggICAgICAgICAgICA7IyBDaGFuZ2UgeCBjb21wb25lbnQKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU2ltaWxhciBhY2Nlc3MgaXMgcHJvdmlkZWQgZm9yIHVuaW9ucyBhbmQgdGhlIGRhdGEgbWVtYmVycyBvZiBDKysgY2xhc3Nlcy4gICA8cD4KLTxwPgotRm9yIEMrKyBjbGFzcyBkZWZpbml0aW9ucywgdGhlIHNhbWUgdGVjaG5pcXVlIGlzIHVzZWQgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gbWVtYmVyIGZ1bmN0aW9ucywgY29uc3RydWN0b3JzLCBhbmQgZGVzdHJ1Y3RvcnMuICAgRm9yIGV4YW1wbGUsPHA+Ci08YmxvY2txdW90ZT48cHJlPgotY2xhc3MgTGlzdCB7Ci1wdWJsaWM6Ci0gIExpc3QoKTsKLSAgfkxpc3QoKTsKLSAgaW50ICBzZWFyY2goY2hhciAqaXRlbSk7Ci0gIHZvaWQgaW5zZXJ0KGNoYXIgKml0ZW0pOwotICB2b2lkIHJlbW92ZShjaGFyICppdGVtKTsKLSAgY2hhciAqZ2V0KGludCBuKTsKLSAgaW50ICBsZW5ndGg7Ci1zdGF0aWMgdm9pZCBwcmludChMaXN0ICpsKTsKLX07Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLWlzIHRyYW5zbGF0ZWQgaW50byB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+TGlzdCAgICAqbmV3X0xpc3QoKSB7Ci0JCXJldHVybiBuZXcgTGlzdDsKLX07Ci12b2lkICAgICBkZWxldGVfTGlzdChMaXN0ICpsKSB7Ci0JCWRlbGV0ZSBsOwotfQotaW50ICAgICAgTGlzdF9zZWFyY2goTGlzdCAqbCwgY2hhciAqaXRlbSkgewotCQlyZXR1cm4gbC0mZ3Q7c2VhcmNoKGl0ZW0pOwotfQotdm9pZCAgICAgTGlzdF9pbnNlcnQoTGlzdCAqbCwgY2hhciAqaXRlbSkgewotCQlsLSZndDtpbnNlcnQoaXRlbSk7Ci19Ci12b2lkICAgICBMaXN0X3JlbW92ZShMaXN0ICpsLCBjaGFyICppdGVtKSB7Ci0JCWwtJmd0O3JlbW92ZShpdGVtKTsKLX0KLWNoYXIgICAgKkxpc3RfZ2V0KExpc3QgKmwsIGludCBuKSB7Ci0JCXJldHVybiBsLSZndDtnZXQobik7Ci19Ci1pbnQgICAgICBMaXN0X2xlbmd0aF9nZXQoTGlzdCAqbCkgewotCQlyZXR1cm4gbC0mZ3Q7bGVuZ3RoOwotfQotaW50ICAgICAgTGlzdF9sZW5ndGhfc2V0KExpc3QgKmwsIGludCBuKSB7Ci0JCXJldHVybiAobC0mZ3Q7bGVuZ3RoID0gbik7Ci19Ci12b2lkICAgICBMaXN0X3ByaW50KExpc3QgKmwpIHsKLQkJTGlzdDo6cHJpbnQobCk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdpdGhpbiBUY2wsIHlvdSBjYW4gdXNlIHRoZSBmdW5jdGlvbnMgYXMgZm9sbG93cyA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJSBzZXQgbCBbbmV3X0xpc3RdCi0lIExpc3RfaW5zZXJ0ICRsIEFsZQotJSBMaXN0X2luc2VydCAkbCBTdG91dAotJSBMaXN0X2luc2VydCAkbCBMYWdlcgotJSBMaXN0X3ByaW50ICRsCi1MYWdlcgotU3RvdXQKLUFsZQotJSBwdXRzIFtMaXN0X2xlbmd0aF9nZXQgJGxdCi0zCi0lIHB1dHMgJGwKLV8xMDA4NTYwX0xpc3RfcAotJSAKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1XaGlsZSBzb21ld2hhdCBwcmltaXRpdmUsIHRoZSBsb3ctbGV2ZWwgU1dJRyBpbnRlcmZhY2UgcHJvdmlkZXMgZGlyZWN0IGFuZCBmbGV4aWJsZSBhY2Nlc3MgdG8gYWxtb3N0IGFueSBDKysgb2JqZWN0LiAgICBBcyBpdCB0dXJucyBvdXQsIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJvdmlkZSBTV0lHIHdpdGggdGhlIGNvbXBsZXRlIGRlZmluaXRpb24gb2YgYSBzdHJ1Y3R1cmUgb3IgY2xhc3MuICAgQWNjZXNzIGNhbiBiZSByZXN0cmljdGVkIGJ5IG9ubHkgcHJvdmlkaW5nIGEgbGltaXRlZCBkZWZpbml0aW9uIChvciBubyBkZWZpbml0aW9uIGF0IGFsbCkuICA8cD4KLTxwPgotRm9yIEMrKywgU1dJRyBhbHNvIHN1cHBvcnRzIGluaGVyaXRhbmNlIChpbmNsdWRpbmcgbXVsdGlwbGUgaW5oZXJpdGFuY2UpLiAgICBJbmhlcml0YW5jZSBoaWVyYXJjaGllcyBhcmUgZW5jb2RlZCBpbnRvIHRoZSBydW4tdGltZSBwb2ludGVyIHR5cGUtY2hlY2tlciBhbmQgd29yayBhcyB5b3Ugd291bGQgZXhwZWN0LiAgRm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91IGhhZCB0aGUgZm9sbG93aW5nIGNsYXNzZXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmNsYXNzIFNoYXBlIHsKLXB1YmxpYzoKLQkJdmlydHVhbCBkb3VibGUgYXJlYSgpID0gMDsKLQkJdmlydHVhbCBkb3VibGUgcGVyaW1ldGVyKCkgPSAwOwotfTsKLQotY2xhc3MgQ2lyY2xlIDogcHVibGljIFNoYXBlIHsKLXB1YmxpYzoKLQkJQ2lyY2xlKGRvdWJsZSByYWRpdXMpOwotCQl+Q2lyY2xlKCk7Ci0JCWRvdWJsZSBhcmVhKCk7Ci0JCWRvdWJsZSBwZXJpbWV0ZXIoKTsKLX07Ci0KLWNsYXNzIFNxdWFyZSA6IHB1YmxpYyBTaGFwZSB7Ci1wdWJsaWM6Ci0JCVNxdWFyZShkb3VibGUgd2lkdGgpOwotCQl+U3F1YXJlKCk7Ci0JCWRvdWJsZSBhcmVhKCk7Ci0JCWRvdWJsZSBwZXJpbWV0ZXIoKTsKLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoZSBUY2wgaW50ZXJmYWNlLCAiQ2lyY2xlIiBhbmQgIlNxdWFyZSIgb2JqZWN0cyB3b3VsZCBiZSBhY2NlcHRlZCBhbnkgcGxhY2UgYSAiU2hhcGUiIGlzIGV4cGVjdGVkLiAgSG93ZXZlciwgdGhlIHR5cGUgc3lzdGVtIGRvZXMgbm90IGFsbG93IHNpdHVhdGlvbnMgdGhhdCBhcmUgaWxsZWdhbCAob3IgcHJvYmxlbWF0aWMpIGluIEMrKy4gRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnRjbHNoCi0lIHNldCBjIFtuZXdfQ2lyY2xlIDRdICAgICAgICAgICAgOyMgQ3JlYXRlIGEgY2lyY2xlCi0lIHNldCBzIFtuZXdfU3F1YXJlIDEwXSAgICAgICAgICAgOyMgQ3JlYXRlIGEgc3F1YXJlCi0lIFNxdWFyZV9hcmVhICRhICAgICAgICAgICAgICAgICAgOyMgVXNlIGRlcml2ZWQgY2xhc3MKLTEwMC4wCi0lIFNoYXBlX2FyZWEgJHMgICAgICAgICAgICAgICAgICAgOyMgVXNlIGJhc2UgY2xhc3MKLTEwMC4wCi0lIFNoYXBlX3BlcmltZXRlciAkYwotMjUuMTMyNzQxMjI4NwotJSBTcXVhcmVfYXJlYSAkYyAgICAgICAgICAgICAgICAgIyBUcnkgdG8gdmlvbGF0ZSB0aGUgdHlwZSBzeXN0ZW0KLVR5cGUgZXJyb3IgaW4gYXJndW1lbnQgMSBvZiBTcXVhcmVfYXJlYS4gRXhwZWN0ZWQgX1NxdWFyZV9wLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMTQiPjwvYT48aDM+IFRoZSBPYmplY3QgSW50ZXJmYWNlPC9oMz4KLUFsdGhvdWdoIFNXSUcgdHVybnMgc3RydWN0dXJlcyBhbmQgY2xhc3NlcyBpbnRvIGFjY2Vzc29yIGZ1bmN0aW9ucywgYW4gb3B0aW9uYWwgb2JqZWN0LW9yaWVudGVkIGludGVyZmFjZSBpcyBhbHNvIGF2YWlsYWJsZS4gICBUaGlzIGludGVyZmFjZSBhbGxvd3MgQy9DKysgb2JqZWN0cyB0byBhcHBlYXIgbGlrZSBUY2wgb2JqZWN0cyAob3IgVGsgd2lkZ2V0cykuICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBMaXN0IGNsYXNzIG1lbnRpb25lZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbi4gICBVc2luZyB0aGUgb3B0aW9uYWwgb2JqZWN0IGludGVyZmFjZSwgeW91IGNvdWxkIHdyaXRlIHRoZSBmb2xsb3dpbmcgVGNsIGNvZGU8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIExpc3QgbCAgICAgICAgICAgICAgICAgIDsjIENyZWF0ZSBhIG5ldyBsaXN0Ci0lIGwgaW5zZXJ0IEFsZSAgICAgICAgICAgIDsjIEludm9rZSBzb21lIG1lbWJlciBmdW5jdGlvbnMKLSUgbCBpbnNlcnQgU3RvdXQKLSUgbCBpbnNlcnQgTGFnZXIKLSUgTGlzdF9wcmludCBbbCBjZ2V0IC10aGlzXQotTGFnZXIKLVN0b3V0Ci1BbGUKLSUgcHV0cyBbbCBjZ2V0IC1sZW5ndGhdICAgOyMgR2V0IHRoZSBsZW5ndGgKLTMKLSUgcHV0cyBbbCBjZ2V0IC10aGlzXSAgICAgOyMgR2V0IHRoZSBgdGhpcycgcG9pbnRlcgotXzEwMDg1NjBfTGlzdF9wCi0lIHJlbmFtZSBsICIiICAgICAgICAgICAgIDsjIERlbGV0ZSBsCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZvciBtYW55IHVzZXJzLCB0aGlzIHByb3ZpZGVzIGEgbXVjaCBtb3JlIG5hdHVyYWwgaW50ZXJmYWNlIHRvIEMvQysrIG9iamVjdHMuICAgSXQgYWxzbyBsb29rcyByYXRoZXIgZmFtaWxpYXIgdG8gd2hhdCBpcyBkb25lIGluIFRjbCBleHRlbnNpb25zIHN1Y2ggYXMgW2luY3IgVGNsXS4gICAgRXZlbiB0aG91Z2ggdGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgYW4gYWx0ZXJuYXRpdmUgbWVjaGFuaXNtIGZvciBtYW5hZ2luZyBvYmplY3RzLCBpdCBpcyBzdGlsbCBjbG9zZWx5IHJlbGF0ZWQgdG8gdGhlIHBvaW50ZXIgaGFuZGxpbmcgbWVjaGFuaXNtIGFscmVhZHkgZGVzY3JpYmVkLiAgIEluIHBhcnRpY3VsYXIsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gZXh0cmFjdCBhIHBvaW50ZXIgdmFsdWUgZnJvbSBhIFRjbCBvYmplY3QuICAgVGhpcyBjYW4gYmUgZG9uZSBieSBleHRyYWN0aW5nIHRoZSBgdGhpcycgdmFsdWUgZnJvbSBhbiBvYmplY3QgYXMgZm9sbG93czo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zZXQgdCBbbCBjZ2V0IC10aGlzXSAgICAgICMgRXh0cmFjdCB0aGUgcG9pbnRlciB2YWx1ZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiBvdGhlciBjYXNlcywgaXQgbWF5IGJlIHVzZWZ1bCB0byB0dXJuIGFuIGV4aXN0aW5nIHBvaW50ZXIgaW50byBhIFRjbCBvYmplY3QuICAgVGhpcyBjYW4gYmUgZG9uZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5MaXN0IGwgLXRoaXMgJHQgICAgICAgICAgICMgVHVybiBhIHBvaW50ZXIgaW50byBhbiBvYmplY3QKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1BbHRob3VnaCB0aGUgb2JqZWN0IGludGVyZmFjZSBwcm92aWRlcyBhICJuYXR1cmFsIiBpbnRlcmZhY2UgdG8gb2JqZWN0cywgaXQgYWxzbyBoYXMgYSBudW1iZXIgb2YgbGltaXRhdGlvbnMuICBGaXJzdCwgaXQgY2FuIHJlc3VsdCBpbiBhIHN1YnN0YW50aWFsIGFtb3VudCBvZiBhZGRpdGlvbmFsIHdyYXBwZXIgY29kZS4gIElmIHdyYXBwaW5nIGh1bmRyZWRzIG9mIHN0cnVjdHVyZXMgYW5kIGNsYXNzZXMsIHRoZSBzaXplIG9mIHRoZSBtb2R1bGUgY3JlYXRlZCBieSBTV0lHIGNhbiBiZSBxdWl0ZSBsYXJnZS4gIElmIHRoaXMgaXMgYSBjb25jZXJuLCB0aGUgb2JqZWN0IGludGVyZmFjZSBjYW4gYmUgZGlzYWJsZWQgYnkgcnVubmluZyBTV0lHIHdpdGggdGhlIGA8dHQ+LW5vb2JqZWN0PC90dD4nIG9wdGlvbi4gIFNlY29uZCwgU1dJRyBkb2VzIG5vdCBtYWtlIFRjbCBvYmplY3Qtb3JpZW50ZWQgaW4gdGhlIHNhbWUgc2Vuc2UgYXMgZXh0ZW5zaW9ucyBzdWNoIGFzIFtpbmNyIFRjbF0uICBGb3IgZXhhbXBsZSwgeW91IHdvdWxkIG5vdCBiZSBhYmxlIHRvIGluaGVyaXQgZnJvbSBvYmplY3RzIHdyYXBwZWQgYnkgU1dJRy4gIEZpbmFsbHksIHRoZSBvYmplY3QgaW50ZXJmYWNlIGNhbiBiZSBhd2t3YXJkIHRvIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIGZ1bmN0aW9ucyBleHBlY3RpbmcgcG9pbnRlcnMgc2luY2UgeW91IHdpbGwgbmVlZCB0byBjb252ZXJ0IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gb2JqZWN0IG1vZGVsIGFuZCB0aGUgcG9pbnRlciBtb2RlbC4gIEFsdGhvdWdoIHRoaXMgaW50ZXJmYWNlIHdvbid0IGJlIGRlc2NyaWJlZCBtdWNoIGZ1cnRoZXIsIGFsbCBvZiB0aGUgZ29yeSBkZXRhaWxzIGNhbiBiZSBmb3VuZCBpbiB0aGUgU1dJRyBVc2VycyBNYW51YWwuPHA+Ci08YSBuYW1lPSJuMTUiPjwvYT48aDM+IFJlbmFtaW5nPC9oMz4KLVNvbWV0aW1lcyB0aGUgY29udGVudHMgb2YgYSBDL0MrKyBsaWJyYXJ5IHdpbGwgZ2VuZXJhdGUgYSBuYW1lc3BhY2UgY2xhc2ggd2l0aCBleGlzdGluZyBUY2wga2V5d29yZHMgYW5kIGNvbW1hbmRzLiAgIFRvIHJlc29sdmUgdGhlc2UgY29uZmxpY3RzLCBTV0lHIHByb3ZpZGVzIHRoZSA8dHQ+JW5hbWU8L3R0PiBkaXJlY3RpdmUuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0uLi4KLSVuYW1lKG15bGluZGV4KSBpbnQgbGluZGV4KCk7Ci0uLi4KLSVuYW1lKGNsaXN0KSBjbGFzcyBsaXN0IHsKLXB1YmxpYzoKLSAgICAuLi4KLX07Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTx0dD4lbmFtZTwvdHQ+IHNpbXBseSBjaGFuZ2VzIHRoZSBuYW1lIG9mIGEgY29tbWFuZCwgY2xhc3MsIG9yIG1lbWJlciBmdW5jdGlvbiB3aGVuIHVzZWQgaW4gVGNsIChpdCBoYXMgbm8gZWZmZWN0IG9uIHRoZSB1bmRlcmx5aW5nIEMgY29kZSkuPHA+Ci08YSBuYW1lPSJuMTYiPjwvYT48aDM+IFJlYWQtb25seSB2YXJpYWJsZXM8L2gzPgotVG8gcmVzdHJpY3QgYWNjZXNzIHRvIGdsb2JhbCB2YXJpYWJsZXMgYW5kIGRhdGEgbWVtYmVycyBvZiBzdHJ1Y3R1cmVzLCBTV0lHIHByb3ZpZGVzIHRoZSA8dHQ+JXJlYWRvbmx5PC90dD4gYW5kIDx0dD4lcmVhZHdyaXRlPC90dD4gZGlyZWN0aXZlcy4gICAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVyZWFkb25seQotZG91YmxlIGZvbzsgICAgICAgICAvLyBmb28gd2lsbCBiZSByZWFkLW9ubHkKLWludCAgICBiYXI7ICAgICAgICAgLy8gYmFyIHdpbGwgYmUgcmVhZC1vbmx5Ci0lcmVhZHdyaXRlCi1pbnQgc3BhbSA9IDQyOyAgICAgIC8vIHNwYW0gaXMgcmVhZC13cml0ZQotCi1jbGFzcyBMaXN0IHsKLXB1YmxpYzoKLS4uLgotJXJlYWRvbmx5Ci0gICAgIGludCBsZW5ndGg7ICAgICAgICAvLyBsZW5ndGggd2lsbCBiZSByZWFkb25seQotJXJlYWR3cml0ZQotLi4uCi19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1SZWFkLW9ubHkgbW9kZSBzdGF5cyBpbiBlZmZlY3QgdW50aWwgaXQgaXMgZXhwbGljaXRseSBkaXNhYmxlZCB3aXRoIHRoZSA8dHQ+JXJlYWR3cml0ZTwvdHQ+IGRpcmVjdGl2ZS48cD4KLTxhIG5hbWU9Im4xNyI+PC9hPjxoMz4gRmlsZSBJbmNsdXNpb24gYW5kIHRoZSBTV0lHIExpYnJhcnk8L2gzPgotU1dJRyBwcm92aWRlcyBhbiA8dHQ+JWluY2x1ZGU8L3R0PiBkaXJlY3RpdmUgdGhhdCBjYW4gYmUgdXNlZCB0byBicmVhayB1cCBpbnRlcmZhY2VzIGludG8gbXVsdGlwbGUgZmlsZXMuICBGb3IgZXhhbXBsZSwgaWYgeW91IHdlcmUgY3JlYXRpbmcgYW4gaW50ZXJmYWNlIHRvIGEgbGFyZ2UgcGFja2FnZSwgeW91IG1pZ2h0IHdyaXRlIGFuIGludGVyZmFjZSBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEludGVyZmFjZSB0byBPcGVuR0wKLSVtb2R1bGUgb3BlbmdsCi0KLS8vIEluY2x1ZGUgYSB2YXJpZXR5IG9mIHBpZWNlcwotJWluY2x1ZGUgZ2wuaQotJWluY2x1ZGUgZ2x1LmkKLSVpbmNsdWRlICJHTC9nbHVhdXguaCIKLSVpbmNsdWRlICJ0ZXN0LmMiCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBvdGhlciB1c2Ugb2YgPHR0PiVpbmNsdWRlPC90dD4gaXMgdG8gcmV0cmlldmUgZmlsZXMgZnJvbSB0aGUgU1dJRyBsaWJyYXJ5LS1hIHJlcG9zaXRvcnkgb2YgY29tbW9uIG1vZHVsZXMgYW5kIGV4dGVuc2lvbnMgdGhhdCBpcyBwYWNrYWdlZCB3aXRoIHRoZSBTV0lHIGRpc3RyaWJ1dGlvbi4gICAgRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50ZWQgdG8gcmVsaW5rIHRoZSA8dHQ+dGNsc2g8L3R0PiBpbnRlcnByZXRlciB3aXRoIGEgU1dJRyBleHRlbnNpb24gYWRkZWQgdG8gaXQsIHlvdSBjYW4gZG8gdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0lewotI2luY2x1ZGUgIm15aGVhZGVyLmgiCi0lfQotJWluY2x1ZGUgdGNsc2guaSAgICAgICAgICAgICAgLy8gSW5jbHVkZSBUY2xfQXBwSW5pdCgpIGNvZGUgZm9yIHRjbHNoCi0KLS8vIEMgZGVjbGFyYXRpb25zCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgY2FzZSwgdGhlIGxpYnJhcnkgZmlsZSBwcm92aWRlcyBhbGwgb2YgdGhlIGFkZGl0aW9uYWwgc3VwcG9ydCBjb2RlICg8dHQ+VGNsX0FwcEluaXQoKSwgbWFpbigpPC90dD4sIGV0Yy4uLikgbmVlZGVkIHRvIGJ1aWxkIGEgbmV3IHZlcnNpb24gb2YgPHR0PnRjbHNoPC90dD4uPHA+Ci08cD4KLUxpYnJhcnkgZmlsZXMgY2FuIGFsc28gYmUgaW5jbHVkZWQgb24gdGhlIGNvbW1hbmQgbGluZSB1c2luZyB0aGUgPHR0Pi1sPC90dD4gb3B0aW9uLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc3dpZyAtdGNsOCAtbHdpc2guaSBleGFtcGxlLmkKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotV2hlbiBmaWxlcyBhcmUgaW5jbHVkZWQgaW4gdGhpcyBtYW5uZXIsIHRoZXkgYXJlIGFwcGVuZGVkIHRvIHRoZSBlbmQgb2YgdGhlIFNXSUcgaW5wdXQgZmlsZSAoaS5lLiBmaWxlcyBpbmNsdWRlZCBvbiB0aGUgY29tbWFuZCBsaW5lIGFyZSBwYXJzZWQgbGFzdCkuPHA+Ci08YSBuYW1lPSJuMTgiPjwvYT48aDM+IENvZGUgSW5zZXJ0aW9uPC9oMz4KLVNvbWV0aW1lcyBpdCBpcyB1c2VmdWwgdG8gaW5zZXJ0IHN1cHBvcnQgY29kZSBpbnRvIHRoZSByZXN1bHRpbmcgd3JhcHBlciBmaWxlIGdlbmVyYXRlZCBieSBTV0lHLiAgIFRoZSB3cmFwcGVyIGZpbGUgcHJvZHVjZWQgYnkgU1dJRyBjb25zaXN0cyBvZiB0aHJlZSBzZWN0aW9ucy0tLWEgaGVhZGVyIHNlY3Rpb24gY29udGFpbmluZyBkZWNsYXJhdGlvbnMgdGhhdCBtdXN0IGFwcGVhciBiZWZvcmUgYW55IHdyYXBwZXIgZnVuY3Rpb25zLCBhIHdyYXBwZXIgY29kZSBzZWN0aW9uIGNvbnRhaW5pbmcgdGhlIGFjdHVhbCBUY2wgd3JhcHBlciBmdW5jdGlvbnMsIGFuZCBhbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiB0aGF0IHJlZ2lzdGVycyB0aGUgbW9kdWxlJ3MgZnVuY3Rpb25hbGl0eSB3aXRoIFRjbC48cD4KLTxwPgotPHA+Ci1Db2RlIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBoZWFkZXIgc2VjdGlvbiBieSBlbmNsb3NpbmcgaXQgd2l0aCAleywgJX0gKHRoZXNlIGFyZSBhbHNvIGtub3duIGFzIGNvZGUgYmxvY2tzKS4gICBXZSBoYXZlIGFscmVhZHkgc2VlbiB0aGlzIHVzZWQgdG8gaW5jbHVkZSB0aGUgcmlnaHQgaGVhZGVyIGZpbGVzLiAgSG93ZXZlciwgeW91IGNhbiBhbHNvIGluY2x1ZGUgc3VwcG9ydGluZyBDIGZ1bmN0aW9ucy4gICBGb3IgZXhhbXBsZSA6PHA+Ci08YmxvY2txdW90ZT48cHJlPgotJW1vZHVsZSBteW1vZHVsZQotJXsKLSNpbmNsdWRlICJteV9oZWFkZXIuaCIKLSV9Ci0KLS4uLiBEZWNsYXJlIEMgZnVuY3Rpb25zIGhlcmUKLQotLy8gTm93IGluY2x1ZGUgYSBUY2xfQXBwSW5pdCBmdW5jdGlvbiAobm90ZTogdGhlIHRjbHNoLmkgbGlicmFyeSBmaWxlCi0vLyBkb2VzIHRoZSBzYW1lIHRoaW5nKS4KLSV7Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgVGNsX01haW4oYXJnYywgYXJndiwgVGNsX0FwcEluaXQpOwotICByZXR1cm4oMCk7Ci19Ci0KLWludCBUY2xfQXBwSW5pdChUY2xfSW50ZXJwICppbnRlcnApewotICBpbnQgTXltb2R1bGVfSW5pdChUY2xfSW50ZXJwICopOyAKLQotICBpZiAoVGNsX0luaXQoaW50ZXJwKSA9PSBUQ0xfRVJST1IpIAotICAgIHJldHVybiBUQ0xfRVJST1I7Ci0KLSAgLyogTm93IGluaXRpYWxpemUgb3VyIGZ1bmN0aW9ucyAqLwotICBpZiAoTXltb2R1bGVfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikKLSAgICByZXR1cm4gVENMX0VSUk9SOwotICByZXR1cm4gVENMX09LOwotfQotJX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQ29kZSBibG9ja3MgYXJlIGFsc28gc29tZXRpbWVzIHVzZWQgdG8gd3JpdGUgaGVscGVyIGZ1bmN0aW9ucy4gICBUaGVzZSBhcmUgQyBmdW5jdGlvbnMgdGhhdCB5b3Ugd2FudCB0byBpbmNsdWRlIGluIHRoZSBUY2wgaW50ZXJmYWNlLCBidXQgbWlnaHQgbm90IGJlIHBhcnQgb2YgdGhlIG9yaWdpbmFsIEMgbGlicmFyeSBvciBwYWNrYWdlLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEluY2x1ZGUgYSBzdXBwb3J0IGZ1bmN0aW9uIGluIG91ciBtb2R1bGUKLSV7Ci0vKiBDcmVhdGUgYSBuZXcgdmVjdG9yICovCi1zdGF0aWMgVmVjdG9yICpuZXdfVmVjdG9yKCkgewotICAgIHJldHVybiAoVmVjdG9yICopIG1hbGxvYyhzaXplb2YoVmVjdG9yKSk7Ci19Ci0lfQotCi0vLyBOb3cgdGVsbCBTV0lHIGFib3V0IGl0LgotVmVjdG9yICpuZXdfVmVjdG9yKCk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVNpbmNlIHdyaXRpbmcgaGVscGVyIGZ1bmN0aW9ucyBpcyByZWxhdGl2ZWx5IGNvbW1vbiwgYSBzaG9ydGhhbmQgZm9ybSBvZiB0aGUgYWJvdmUgaXMgYXZhaWxhYmxlIHVzaW5nIHRoZSA8dHQ+JWlubGluZTwvdHQ+IGRpcmVjdGl2ZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4laW5saW5lICV7Ci0vKiBDcmVhdGUgYSBuZXcgdmVjdG9yICovCi1WZWN0b3IgKm5ld19WZWN0b3IoKSB7Ci0gICAgcmV0dXJuIChWZWN0b3IgKikgbWFsbG9jKHNpemVvZihWZWN0b3IpKTsKLX0KLSV9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZTx0dD4gJWlubGluZTwvdHQ+IGRpcmVjdGl2ZSBpcyByZWFsbHkganVzdCBhIGNvbnZlbmllbnQgd2F5IHRvIHdyaXRlIG5ldyBDL0MrKyBmdW5jdGlvbnMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHlvdXIgVGNsIGludGVyZmFjZS48cD4KLTxwPgotSWYgeW91IHdhbnQgdG8gaW5zZXJ0IGNvZGUgaW50byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB5b3UgY2FuIGRvIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVpbml0ICV7Ci0gICAgaW5pdF9tb2R1bGUoKTsgICAgICAgLy8gUGVyZm9ybSBtb2R1bGUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24KLSV9Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgY29kZSB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gVGNsIGxvYWRzIG9yIGluaXRpYWxpemVzIHlvdXIgZXh0ZW5zaW9uIG1vZHVsZSBhbmQgY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB5b3VyIGFwcGxpY2F0aW9uLjxwPgotPHA+Ci1GaW5hbGx5LCB0aGVyZSBpcyBhIDx0dD4ld3JhcHBlcjwvdHQ+IGRpcmVjdGl2ZSBmb3IgaW5jbHVkaW5nIGNvZGUgaW50byB0aGUgd3JhcHBlciBzZWN0aW9uIG9mIFNXSUcncyBvdXRwdXQuICAgVGhpcyBpcyByYXJlbHkgdXNlZCAob3IgbmVjZXNzYXJ5KSBidXQgaXMgYXZhaWxhYmxlIGZvciBzcGVjaWFsIGNhc2VzLjxwPgotPGEgbmFtZT0ibjE5Ij48L2E+PGgzPiBTdHJ1Y3R1cmUgYW5kIENsYXNzIEV4dGVuc2lvbjwvaDM+Ci1UaGUgb2JqZWN0LW9yaWVudGVkIGludGVyZmFjZSBwcm92aWRlcyBhIG5pY2Ugd2F5IHRvIG1hbmlwdWxhdGUgQyBzdHJ1Y3R1cmVzIGFuZCBDKysgY2xhc3Nlcy4gIEhvd2V2ZXIsICBpbiBzb21lIGNhc2VzLCB5b3UgbWF5IHdhbnQgdG8gZXh0ZW5kIHN0cnVjdHVyZXMgYW5kIGNsYXNzZXMuIEZvciBleGFtcGxlLCBzdXBwb3NlIHlvdSB3YW50ZWQgdG8gbWFuaXB1bGF0ZSB0aGUgZm9sbG93aW5nIEMgc3RydWN0dXJlIGZyb20gVGNsIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zdHJ1Y3QgVmVjdG9yIHsKLSAgICAgZG91YmxlIHgsIHksIHo7Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BcyBpcywgdGhlcmUgaXMgbm8gd2F5IHRvIGNyZWF0ZSwgZGVzdHJveSwgb3IgbG9vayBhdCBWZWN0b3JzIGluIGEgY29udmVuaWVudCBtYW5uZXIuICBIb3dldmVyLCB3aXRoIFNXSUcsIHlvdSBjYW4gZXh0ZW5kIHRoZSBWZWN0b3IgY2xhc3Mgd2l0aCBzb21lIG5ldyBtZXRob2RzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgdmVjdG9yCi0lewotI2luY2x1ZGUgInZlY3Rvci5oIgotJX0KLQotc3RydWN0IFZlY3RvciB7Ci0gICAgIGRvdWJsZSB4LHksejsKLX07Ci0KLS8vIE5vdyBleHRlbmQgdGhlIFZlY3RvciBzdHJ1Y3R1cmUgd2l0aCBzb21lIG1ldGhvZHMKLSVhZGRtZXRob2RzIFZlY3RvciB7Ci0gICAgICAvLyBDcmVhdGUgYSBuZXcgdmVjdG9yCi0gICAgICBWZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikgewotICAgICAgICAgIFZlY3RvciAqdiA9IChWZWN0b3IgKikgbWFsbG9jKHNpemVvZihWZWN0b3IpKTsKLSAgICAgICAgICB2LSZndDt4ID0geDsKLSAgICAgICAgICB2LSZndDt5ID0geTsKLSAgICAgICAgICB2LSZndDt6ID0gejsKLSAgICAgICAgICByZXR1cm4gejsKLSAgICAgIH0KLSAgICAgIC8vIERlc3Ryb3kgYSB2ZWN0b3IKLSAgICAgIH5WZWN0b3IoKSB7Ci0gICAgICAgICAgZnJlZShzZWxmKTsKLSAgICAgICB9Ci0gICAgICAgLy8gUHJpbnQgb3V0IGEgdmVjdG9yIGZvciBkZWJ1Z2dpbmcKLSAgICAgICB2b2lkIG91dHB1dCgpIHsKLSAgICAgICAgICBwcmludGYoIlsgJWcsICVnLCAlZyBdXG4iLCBzZWxmLSZndDt4LCBzZWxmLSZndDt5LCBzZWxmLSZndDt6KTsKLSAgICAgICB9Ci19OwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Ob3csIGluIFRjbCwgeW91IGNhbiBkbyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIFZlY3RvciB2IDIgNS41IC05ICAgICAgICAgIDsgIyBDcmVhdGUgYSBuZXcgdmVjdG9yCi0lIHYgb3V0cHV0ICAgICAgICAgICAgICAgICAgIDsgIyBPdXRwdXQgaXQncyB2YWx1ZQotWyAyLCA1LjUsIC05IF0KLSUgcmVuYW1lIHYgIiIgICAgICAgICAgICAgICAgOyAjIERlc3Ryb3kgdiAoY2FsbHMgdGhlIGRlc3RydWN0b3IpCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRodXMsIHdpdGgganVzdCBhIGxpdHRsZSB3b3JrLCB5b3UgY2FuIHR1cm4gYSBDIHN0cnVjdHVyZSBpbnRvIHNvbWV0aGluZyB0aGF0IGxvb2tzIGFsb3QgbGlrZSBhIEMrKyBvYmplY3Qgd2l0aCBjb25zdHJ1Y3RvcnMsIGRlc3RydWN0b3JzLCBhbmQgbWV0aG9kcy4gICBIb3dldmVyLCB0aGlzIGlzIGRvbmUgd2l0aG91dCBtb2RpZnlpbmcgdGhlIG9yaWdpbmFsIEMgc3RydWN0dXJlIG9yIHJlcXVpcmluZyBhIEMrKyBjb21waWxlci48cD4KLTxwPgotSnVzdCBhcyBDIHN0cnVjdHVyZXMgY2FuIGJlIGV4dGVuZGVkLCBDKysgY2xhc3NlcyBjYW4gYWxzbyBiZSBleHRlbmRlZCB3aXRoIG5ldyBtZXRob2RzLiAgVGhlIGV4dGVuc2lvbiBwcm9jZXNzIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgY2xhc3Mgbm9yIGRvZXMgaXQgcmVseSB1cG9uIEMrKyBpbmhlcml0YW5jZS4gIDxwPgotPGEgbmFtZT0ibjIwIj48L2E+PGgzPiBFeGNlcHRpb24gSGFuZGxpbmc8L2gzPgotSW4gc29tZSBDL0MrKyBhcHBsaWNhdGlvbnMgaXQgbWF5IGJlIHVzZWZ1bCB0byBjYXRjaCBlcnJvcnMgYW5kIHRyYW5zbGF0ZSB0aGVtIGludG8gVGNsIGVycm9ycy4gIFRoaXMgY2FuIGJlIGRvbmUgdXNpbmcgdGhlIDx0dD4lZXhjZXB0PC90dD4gZGlyZWN0aXZlLiAgIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBDb2RlIGZvciBjYXRjaGluZyBhIEMrKyBleGNlcHRpb24KLSVleGNlcHQodGNsKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgICRmdW5jdGlvbiAgICAgICAvLyBUaGUgcmVhbCBmdW5jdGlvbiBjYWxsIGlzIHBsYWNlZCBoZXJlCi0gICAgfSBjYXRjaCAoUmFuZ2VFcnJvcikgewotICAgICAgICAgaW50ZXJwLSZndDtyZXN1bHQgPSAiT3V0IG9mIGJvdW5kcy4iOwotICAgICAgICAgcmV0dXJuIFRDTF9FUlJPUjsKLSAgICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBjb2RlIHlvdSBzdXBwbHkgaXMgaW5zZXJ0ZWQgZGlyZWN0bHkgaW50byB0aGUgd3JhcHBlciBjb2RlIGNyZWF0ZWQgYnkgU1dJRy4gIFRoZSBgJGZ1bmN0aW9uJyB0b2tlbiBpcyBzaW1wbHkgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFjdHVhbCBDL0MrKyBmdW5jdGlvbiBjYWxsLiAgIFRoZSBleGNlcHRpb24gaGFuZGxlciByZW1haW5zIGluIGVmZmVjdCB1bmRlciBpdCBpcyByZWRlZmluZWQgb3IgZGlzYWJsZWQuICAgRXhjZXB0aW9ucyBjYW4gYmUgZGlzYWJsZWQgYnkgc2ltcGx5IG9taXR0aW5nIHRoZSBjb2RlLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiAlZXhjZXB0KHRjbCk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotRXhjZXB0aW9uIGhhbmRsaW5nIGlzIG5vdCBsaW1pdGVkIHRvIEMrKyBleGNlcHRpb25zIG9yIGFueSBwYXJ0aWN1bGFyIGVycm9yIGhhbmRsaW5nIG1lY2hhbmlzbS4gICBFc3NlbnRpYWxseSBhbnkgdmFsaWQgQy9DKysgY29kZSBmb3IgY2hlY2tpbmcgZXJyb3JzIGNhbiBiZSB1c2VkIHdpdGggdGhlIDx0dD4lZXhjZXB0PC90dD4gZGlyZWN0aXZlLjxwPgotPHA+Ci1TV0lHIGFsc28gcHJvdmlkZXMgYW4gZXhjZXB0aW9uIGhhbmRsaW5nIGxpYnJhcnksIDx0dD5leGNlcHRpb24uaTwvdHQ+LCAgdGhhdCBjYW4gYmUgdXNlZCB0byBoYW5kbGUgZXhjZXB0aW9ucyBpbiBhIGxhbmd1YWdlLW5ldXRyYWwgbWFubmVyLiAgIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBJbmNsdWRlIHRoZSBTV0lHIGV4Y2VwdGlvbiBoYW5kbGluZyBsaWJyYXJ5Ci0laW5jbHVkZSBleGNlcHRpb24uaQotLy8gU3BlY2lmeSBhIGdlbmVyaWMgZXhjZXB0aW9uIGhhbmRsZXIgKHdvcmtzIHdpdGggYWxsIHRhcmdldCBsYW5ndWFnZXMpCi0lZXhjZXB0IHsKLSAgICAgdHJ5IHsKLSAgICAgICAgJGZ1bmN0aW9uCi0gICAgIH0gY2F0Y2ggKFJhbmdlRXJyb3IpIHsKLSAgICAgICAgU1dJR19leGNlcHRpb24oU1dJR19SdW50aW1lRXJyb3IsICJSYW5nZSBFcnJvciIpOwotICAgICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZSBiZW5lZml0IG9mIHVzaW5nIHRoZSBleGNlcHRpb24gbGlicmFyeSBpcyB0aGF0IGV4Y2VwdGlvbiBoYW5kbGVycyBjYW4gYmUgZWFzaWx5IHdyaXR0ZW4gb25jZSBhbmQgdXNlZCBieSBhbGwgb2YgdGhlIHRhcmdldCBzY3JpcHRpbmcgbGFuZ3VhZ2VzIHN1cHBvcnRlZCBieSBTV0lHLjxwPgotPGEgbmFtZT0ibjIxIj48L2E+PGgzPiBUeXBlbWFwczwvaDM+Ci1Nb3N0IG9mIFNXSUcncyBpbnRlcm5hbCBwcm9jZXNzaW5nIGlzIGRyaXZlbiBieSB0aGUgaGFuZGxpbmcgb2YgQyBkYXRhdHlwZXMtLWluIHBhcnRpY3VsYXIsIHJ1bGVzIGZvciBjb252ZXJ0aW5nIEMgZGF0YXR5cGVzIHRvIGFuZCBmcm9tIFRjbCAoYW5kIG90aGVyIHNjcmlwdGluZyBsYW5ndWFnZXMpLiAgICAgRm9yIGV4YW1wbGUsIHdoZW4gU1dJRyBlbmNvdW50ZXJzIGFuICJpbnQiLCBpdCBuZWVkcyB0byBrbm93IGhvdyB0byBjb252ZXJ0IGFuIGludGVnZXIgZnJvbSBUY2wgdG8gQywgcmV0dXJuIGFuIGludGVnZXIgcmVzdWx0IHRvIFRjbCwgbGluayB0byBpbnRlZ2VyIHZhcmlhYmxlcywgYW5kIHNvIGZvcnRoLiAgICBCeSBkZWZhdWx0LCBTV0lHIGFscmVhZHkga25vd3MgaG93IHRvIHBlcmZvcm0gdGhlc2Ugc2ltcGxlIGNvbnZlcnNpb25zIGFzIHdlbGwgYXMgbWFwcGluZyBjb21wbGV4IG9iamVjdHMgaW50byBwb2ludGVycy48cD4KLTxwPgotRm9yIG1vc3QgdXNlcnMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGVub3VnaCB0byBnZXQgc3RhcnRlZC4gICBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCBpdCBtYXkgYmUgdXNlZnVsIHRvIGNoYW5nZSBTV0lHJ3MgaGFuZGxpbmcgb2YgYSBwYXJ0aWN1bGFyIGRhdGF0eXBlIChieSBhZGRpbmcgc3BlY2lhbCBwcm9jZXNzaW5nIG9yIG1hcHBpbmcgYSBkYXRhdHlwZSBpbnRvIFRjbCBpbiBhIGRpZmZlcmVudCBtYW5uZXIpLiAgICAgVG8gc3VwcG9ydCB0aGlzLCBTV0lHIHByb3ZpZGVzIGEgY3VzdG9taXphdGlvbiBtZWNoYW5pc20ga25vd24gYXMgInR5cGVtYXBzLiIgICAgSW4gYSBudXRzaGVsbCwgYSB0eXBlbWFwIGlzIGEgc3BlY2lhbCBwcm9jZXNzaW5nIHJ1bGUgdGhhdCBpcyBhdHRhY2hlZCB0byBwYXJ0aWN1bGFyIEMvQysrIGRhdGF0eXBlcy4gICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgYSB2ZXJ5IHNpbXBsZSB0eXBlbWFwIGluIGFjdGlvbiA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0KLS8vIFR5cGVtYXAgZm9yIGNvbnZlcnRpbmcgVGNsOCBpbnRlZ2VycyB0byBDIGludGVnZXJzCi0vLyAgICAgICAkc291cmNlIGlzIHRoZSBUY2wgaW5wdXQgb2JqZWN0IAotLy8gICAgICAgJHRhcmdldCBpcyB0aGUgQyB2YXJpYWJsZSAoYW4gaW50KS4KLSV0eXBlbWFwKHRjbDgsaW4pIGludCB7Ci0gICAgICBpbnQgZXJyb3IgPSBUY2xfR2V0RG91YmxlRnJvbU9iaihpbnRlcnAsICRzb3VyY2UsICZhbXA7JHRhcmdldCk7Ci0gICAgICBpZiAoZXJyb3IgIT0gVENMX09LKSByZXR1cm4gZXJyb3I7Ci0JCXByaW50ZigiUmVjZWl2ZWQgOiAlZFxuIiwgJHRhcmdldCk7Ci19Ci0uLi4KLWV4dGVybiBpbnQgZmFjdChpbnQgbik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gdGhpcyBleGFtcGxlIGlzIGNvbXBpbGVkIGludG8gYSBUY2wgOCBtb2R1bGUsIGl0IHdpbGwgb3BlcmF0ZSBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIGZhY3QgNgotUmVjZWl2ZWQgOiA2Ci03MjAKLSUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotSW4gdGhpcyBjYXNlLCB0aGUgQyBjb2RlIHVzZWQgZm9yIGNvbnZlcnRpbmcgaW50ZWdlcnMgZnJvbSBUY2wgdG8gQyBoYXMgYmVlbiBjaGFuZ2VkLiAgIDxwPgotPHA+Ci1UeXBlbWFwcyBjYW4gYWxzbyBiZSBhcHBsaWVkIHRvIG5hbWVkIGRhdGF0eXBlcyBzdWNoIGFzIGZ1bmN0aW9uIGFyZ3VtZW50cy4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLSVpbmNsdWRlIGV4Y2VwdGlvbi5pCi0vLyBUeXBlbWFwIGZvciBjaGVja2luZyB0aGUgdmFsdWUgb2YgYW4gaW5wdXQgYXJndW1lbnQKLS8vICh0aGlzIGlzIGRvbmUgYWZ0ZXIgaXQgaGFzIGJlZW4gY29udmVydGVkIGZyb20gVGNsIHRvIEMpCi0ldHlwZW1hcCh0Y2w4LGNoZWNrKSBkb3VibGUgcG9zaXRpdmUgewotICAgIGlmICgkc291cmNlICZsdDs9IDApIHsKLSAgICAgICAgICBTV0lHX2V4Y2VwdGlvbihTV0lHX1ZhbHVlRXJyb3IsICJFeHBlY3RlZCBhIHBvc2l0aXZlIHZhbHVlIik7Ci0gICAgfQotfQotCi1kb3VibGUgbG9nMTAoZG91YmxlIHBvc2l0aXZlKTsKLWRvdWJsZSBleHAoZG91YmxlKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotSW4gdGhpcyBjYXNlLCB0aGUgdHlwZW1hcCBpcyBvbmx5IGFwcGxpZWQgdG8gZnVuY3Rpb24gYXJndW1lbnRzIHRoYXQgZXhhY3RseSBtYXRjaCAiZG91YmxlIHBvc2l0aXZlIi4gICBUaHVzLCBmcm9tIFRjbCwgdGhlc2UgZnVuY3Rpb25zIHdvdWxkIG9wZXJhdGUgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBsb2cxMCAyCi0wLjMwMTAyOTk5NjU1NAotJSBleHAgLTEKLTAuMzY3ODc5NDQxMTcxCi0lIGxvZyAtMQotRXhwZWN0ZWQgYSBwb3NpdGl2ZSB2YWx1ZSEKLSUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotVHlwZW1hcHMgYXJlIGFwcGxpZWQgdXNpbmcgYSBzaW1wbGUgbmFtZS1iYXNlZCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bGUuICAgV2hlbiBhIHR5cGVtYXAgZm9yIGA8dHQ+aW50PC90dD4nIGlzIGdpdmVuLCBpdCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGZ1dHVyZSBvY2N1cnJlbmNlcyBvZiBgPHR0PmludDwvdHQ+Jy4gICBXaGVuIGEgdHlwZW1hcCBmb3IgYDx0dD5kb3VibGUgcG9zaXRpdmU8L3R0PicgaXMgZ2l2ZW4sIGl0IHdpbGwgb25seSBiZSBhcHBsaWVkIHRvIGFyZ3VtZW50cyB0aGF0IG1hdGNoIGA8dHQ+ZG91YmxlIHBvc2l0aXZlPC90dD4nIChpdCB3b3VsZCBub3QgYmUgYXBwbGllZCB0byBvdGhlciB1c2VzIG9mIGA8dHQ+ZG91YmxlPC90dD4nKS4gICAgIEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGFwcGx5IGV4aXN0aW5nIHR5cGVtYXAgcnVsZXMgdG8gb3RoZXIgZGF0YXR5cGVzIHVzaW5nIHRoZSA8dHQ+JWFwcGx5PC90dD4gZGlyZWN0aXZlLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgZXhhbXBsZQotJWluY2x1ZGUgZXhjZXB0aW9uLmkKLS8vIFR5cGVtYXAgZm9yIGNoZWNraW5nIHRoZSB2YWx1ZSBvZiBhbiBpbnB1dCBhcmd1bWVudAotLy8gKHRoaXMgaXMgZG9uZSBhZnRlciBpdCBoYXMgYmVlbiBjb252ZXJ0ZWQgZnJvbSBUY2wgdG8gQykKLSV0eXBlbWFwKHRjbDgsY2hlY2spIGRvdWJsZSBwb3NpdGl2ZSB7Ci0gICAgaWYgKCRzb3VyY2UgJmx0Oz0gMCkgewotICAgICAgICAgIFNXSUdfZXhjZXB0aW9uKFNXSUdfVmFsdWVFcnJvciwiRXhwZWN0ZWQgYSBwb3NpdGl2ZSB2YWx1ZSIpOwotICAgIH0KLX0KLQotLy8gTm93IGFwcGx5IHRoaXMgdHlwZW1hcCB0byBzb21lIG90aGVyIGRhdGF0eXBlcwotJWFwcGx5IGRvdWJsZSBwb3NpdGl2ZSB7IGRvdWJsZSBweCwgUmVhbCBwb3NpdGl2ZSB9OwotCi1kb3VibGUgbG9nMTAoZG91YmxlIHB4KTsgICAgICAgICAvLyBPbmx5IGFjY2VwdHMgcG9zaXRpdmUgdmFsdWVzCi0KLXR5cGVkZWYgZG91YmxlIFJlYWw7Ci1SZWFsIGxvZyhSZWFsIHBvc2l0aXZlKTsgICAgICAgIC8vIE9ubHkgYWNjZXB0cyBwb3NpdGl2ZSB2YWx1ZXMKLS4uLgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BdCBmaXJzdCBnbGFuY2UsIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgdHlwZW1hcCBtYXkgbG9vayBsaWtlIGEgaG9ycmlkIG1lc3MgKHdoaWNoIGlzIHByb2JhYmx5IHRydWUpLCBidXQgdGhlcmUgaXMgYSBtZXRob2QgYmVoaW5kIHRoZSBtYWRuZXNzLiAgVHlwZW1hcHMgaGF2ZSBmb3VyIGVzc2VudGlhbCBwaWVjZXMgdGhhdCBhcmUgc3BlY2lmaWVkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiV0eXBlbWFwKGxhbmcsIG1ldGhvZCkgdHlwZSBbbmFtZV0gWyx0eXBlMiBbbmFtZV0sdHlwZTMgW25hbWVdLC4uLl0gewotICAgICAgIENvbnZlcnNpb24gQ29kZQotfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHR0Pmxhbmc8L3R0PiBleHBsaWNpdGx5IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHNjcmlwdGluZyBsYW5ndWFnZS4gICBUeXBlbWFwcyBmb3IgYW55IG9mIHRoZSB0YXJnZXQgc2NyaXB0aW5nIGxhbmd1YWdlcyBjYW4gYXBwZWFyIGF0IGFueSB0aW1lIGluIFNXSUcncyBpbnB1dC4gIEhvd2V2ZXIsIG9ubHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgdGFyZ2V0IGxhbmd1YWdlIHdpbGwgZXZlciBiZSB1c2VkLiAgPHR0Pm1ldGhvZDwvdHQ+IHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIHBhcnRpY3VsYXIgdHlwZSBjb252ZXJzaW9uLiAgIFRoZXJlIGFyZSBtYW55IGRpZmZlcmVudCB0eXBlcyBvZiBjb252ZXJzaW9ucywgYnV0IHNvbWUgb2YgdGhlIG1vcmUgY29tbW9uIG9uZXMgYXJlIGFzIGZvbGxvd3M8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5pbiAgICAgICAtIENvbnZlcnQgZnVuY3Rpb24gYXJndW1lbnRzIGZyb20gVGNsIHRvIEMuCi1vdXQgICAgICAtIENvbnZlcnQgZnVuY3Rpb24gcmVzdWx0IGZyb20gQyB0byBUY2wuCi1hcmdvdXQgICAtIENvbnZlcnQgYSByZXN1bHQgcmV0dXJuZWQgaW4gYW4gYXJndW1lbnQgZnJvbSBDIHRvIFRjbC4KLWRlZmF1bHQgIC0gRGVmYXVsdCBhcmd1bWVudCB2YWx1ZQotY2hlY2sgICAgLSBDaGVja3MgdGhlIHZhbHVlIG9mIGFuIGlucHV0IGFyZ3VtZW50LgotcmV0ICAgICAgLSBDbGVhbiB1cCB0aGUgcmV0dXJuIHJlc3VsdCBvZiBhIGZ1bmN0aW9uCi1pZ25vcmUgICAtIFRlbGwgU1dJRyB0byBpZ25vcmUgYSBmdW5jdGlvbiBhcmd1bWVudC4KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHR0PnR5cGU8L3R0PiBhbmQgPHR0Pm5hbWU8L3R0PiBzcGVjaWZ5IHRoZSBDL0MrKyBkYXRhdHlwZSB0aGF0IHRoZSB0eXBlbWFwIGNvbnZlcnNpb24gaXMgYmVpbmcgZ2l2ZW4gZm9yLiBBZGRpdGlvbmFsIGRhdGF0eXBlcyBjYW4gYWxzbyBiZSBnaXZlbiBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0LiAgIEZpbmFsbHksIHRoZSBDL0MrKyBjb252ZXJzaW9uIGNvZGUgaXMgZ2l2ZW4gaW4gYnJhY2VzLiAgV2l0aGluIHRoZSBjb252ZXJzaW9uIGNvZGUsIGEgbnVtYmVyIG9mIHNwZWNpYWwgcGxhY2Vob2xkZXJzIGNhbiBiZSBpbmNsdWRlZCAodGhpcyBpcyBvbmx5IGEgcGFydGlhbCBsaXN0KSAgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiRzb3VyY2UgIC0gVGhlIG9yaWdpbmFsIHZhbHVlIChiZWZvcmUgY29udmVyc2lvbikKLSR0YXJnZXQgIC0gVGhlIHJlc3VsdCBvZiBhIGRhdGEgY29udmVyc2lvbgotJHR5cGUgICAgLSBUaGUgQyBkYXRhdHlwZSB1c2VkIGluIHRoZSB0eXBlbWFwCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBwbGFjZWhvbGRlcnMgZ2V0IGZpbGxlZCBpbiBieSBhcHByb3ByaWF0ZSB2YWx1ZXMgd2hlbiBTV0lHIGdlbmVyYXRlcyB3cmFwcGVyIGNvZGUuVGh1cywgYSBtb3JlIGNvbXBsaWNhdGVkIHR5cGVtYXAgc3BlY2lmaWNhdGlvbiBtaWdodCBsb29rIGxpa2UgdGhpcyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gQ29udmVydCBhIHZhcmlldHkgb2YgaW50ZWdlciB0eXBlcyBmcm9tIFRjbCB0byBDCi0ldHlwZW1hcCh0Y2w4LGluKSBpbnQsCi0gICAgICAgICAgICAgICAgICBzaG9ydCwKLSAgICAgICAgICAgICAgICAgIGxvbmcsCi0gICAgICAgICAgICAgICAgICB1bnNpZ25lZCwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0LAotICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAKLXsKLSAgICAgIGludCB0ZW1wOwotICAgICAgaWYgKFRjbF9HZXRJbnRGcm9tT2JqKGludGVycCwgJHNvdXJjZSwgJmFtcDt0ZW1wKSA9PSBUQ0xfRVJST1IpIHsKLSAgICAgICAgICByZXR1cm4gVENMX0VSUk9SOwotICAgICAgJHRhcmdldCA9ICgkdHlwZSkgdGVtcDsKLX0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQXQgdGhpcyBwb2ludCwgIGFzc3VtaW5nIHRoYXQgeW91J3JlIG5vdCBjb21wbGV0ZWx5IGNvbmZ1c2VkLCB5b3UgbWF5IGJlIHdvbmRlcmluZyBob3cgdGhlIHR5cGVtYXAgc3lzdGVtIGlzIHJlYWxseSBpbnRlbmRlZCB0byB3b3JrLiAgICBBbHRob3VnaCBtYW55IG9mIHRoZSBkZXRhaWxzIGFib3V0IHR5cGVtYXBzIGhhdmUgYmVlbiBvbWl0dGVkIGhlcmUsIHRoZSB1bmRlcmx5aW5nIGlkZWEgYmVoaW5kIHR5cGVtYXBzIGlzIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHNwZWNpYWwgcHJvY2Vzc2luZyBydWxlcyBpbiBhZHZhbmNlIGFuZCB1c2UgdGhlbSBpbiBhbiBpbnRlcmZhY2UgYnkgc2ltcGx5IGZvbGxvd2luZyBhIG5hbWluZyBjb252ZW50aW9uLiAgIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudGVkIHRvIHdyYXAgdGhlIEMgbWF0aCBsaWJyYXJ5IHdpdGggc29tZSBhZGRlZCBlcnJvciBjaGVja2luZywgaXQgbWlnaHQgbG9vayBsaWtlIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVtb2R1bGUgbWF0aAotJXsKLSNpbmNsdWRlICZsdDttYXRoLmgmZ3Q7Ci0lfQotCi10eXBlbWFwKHRjbDgsY2hlY2spIGRvdWJsZSBwb3NpdGl2ZSB7IC4uLiB9Ci10eXBlbWFwKHRjbDgsY2hlY2spIGRvdWJsZSBub25uZWdhdGl2ZSB7IC4uLiB9Ci10eXBlbWFwKHRjbDgsY2hlY2spIGRvdWJsZSBub256ZXJvIHsgLi4uIH0KLQotLi4uCi0vLyBOb3cgbGlzdCBBTlNJIEMgZGVjbGFyYXRpb25zCi1kb3VibGUgc2luKGRvdWJsZSk7Ci1kb3VibGUgY29zKGRvdWJsZSk7Ci1kb3VibGUgbG9nKGRvdWJsZSBwb3NpdGl2ZSk7Ci1kb3VibGUgbG9nMTAoZG91YmxlIHBvc2l0aXZlKTsKLWRvdWJsZSBzcXJ0KGRvdWJsZSBub25uZWdhdGl2ZSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoZW4gd29ya2luZyB3aXRoIG1peGVkIFNXSUcvQyBoZWFkZXIgZmlsZXMsIHRoaXMgYXJyYW5nZW1lbnQgYWxsb3dzIGEgZmlsZSB0byBiZSBhY2NlcHRhYmxlIHRvIGJvdGggU1dJRyBhbmQgdGhlIEMgY29tcGlsZXIgKHByb3ZpZGVkIHRoYXQgdGhlIFNXSUcgZGlyZWN0aXZlcyBhcmUgY29uZGl0aW9uYWxseSBjb21waWxlZCBvZiBjb3Vyc2UpLiAgIEl0IGFsc28gZW5jb3VyYWdlcyBoZWFkZXIgZmlsZXMgYW5kIGludGVyZmFjZSBzcGVjaWZpY2F0aW9ucyB0byB1c2UgYSBjb25zaXN0ZW50IG5hbWluZyBzY2hlbWUgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBmdW5jdGlvbiBhcmd1bWVudHMuPHA+Ci08YSBuYW1lPSJuMjIiPjwvYT48aDM+IEV4dGVuc2l2ZSBpbmZvcm1hdGlvbiBhYm91dCB0eXBlbWFwcyBpcyBwcm92aWRlZCBpbiB0aGUgU1dJRyBVc2VycyBNYW51YWwuICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgY2hhcHRlciwgeW91IHNob3VsZCBrbm93IHRoYXQgdHlwZW1hcHMgZXhpc3QgYW5kIHRoYXQgdGhleSBhcmUgb2Z0ZW4gdXNlZCBiZWhpbmQgdGhlIHNjZW5lcyB0byBwZXJmb3JtIG1hbnkgbWFnaWNhbCB0YXNrcy4gICBBcyBpdCB0dXJucyBvdXQsIGEgbnVtYmVyIG9mIHVzZWZ1bCB0eXBlbWFwcyBhcmUgaW5jbHVkZWQgaW4gdGhlIFNXSUcgbGlicmFyeS0tLXNwYXJpbmcgeW91IHRoZSB0cm91YmxlIG9mIHdyaXRpbmcgdGhlbSBieSBoYW5kIChidXQsIG1vcmUgYWJvdXQgdGhhdCBpbiBhIGxpdHRsZSBiaXQpLjwvaDM+Ci08YSBuYW1lPSJuMyI+PC9hPjxoMj4gVXNpbmcgU1dJRzwvaDI+Ci1Ob3cgdGhhdCB5b3UndmUgaGFkIGEgcXVpY2sgdG91ciBvZiB0aGUgU1dJRyBjb21waWxlciwgaXQncyB0aW1lIHRvIHN0YXJ0IHVzaW5nIGl0LiAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgc29tZSBvZiB0aGUgdGVjaG5pcXVlcyAoYW5kIHRyaWNrcykgIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQgdG8gYnVpbGQgVGNsIGludGVyZmFjZXMgdG8gQy9DKysgY29kZS4gICAgUmF0aGVyIHRoYW4gYXR0ZW1wdGluZyB0byBjb3ZlciBldmVyeSBwb3NzaWJsZSBzaXR1YXRpb24sIHRoaXMgc2VjdGlvbiBjb3ZlcnMgbWFueSBvZiB0aGUgbW9zdCBjb21tb24gcHJvYmxlbXMgYW5kIHNvbHV0aW9ucy4gICAgSG93ZXZlciwgZ2l2ZW4gdGhlIGZsZXhpYmlsaXR5IHRoYXQgU1dJRyBwcm92aWRlcywgdGhlcmUgaXMgdXN1YWxseSBtb3JlIHRoYW4gb25lIHdheSB0byBkbyBpdCAoanVzdCBzb21ldGhpbmcgdG8ga2VlcCBpbiBtaW5kKTxwPgotPGEgbmFtZT0ibjIzIj48L2E+PGgzPiBQcmVwYXJpbmcgdG8gU1dJRzwvaDM+Ci1Vc2luZyBTV0lHIGdlbmVyYWxseSBpbnZvbHZlcyB0aGUgZm9sbG93aW5nIHN0ZXBzOjxwPgotPHA+Ci08dWw+Ci08bGk+R3JhYiBhIGhlYWRlciBmaWxlLgotPGxpPlR1cm4gdGhlIGhlYWRlciBmaWxlIGludG8gYSBTV0lHIGludGVyZmFjZSBmaWxlIGFuZCB0d2VhayBpdCBpZiBuZWNlc3NhcnkuCi08bGk+UnVuIFNXSUcgYW5kIG1ha2UgYSBUY2wgaW50ZXJmYWNlLgotPC91bD4KLTxwPgotPHA+Ci1JbiBhZGRpdGlvbiB0byBwcmVwYXJpbmcgYW4gaW5wdXQgZmlsZSwgeW91IG1heSBuZWVkIHRvIGVsaW1pbmF0ZSB0aGUgPHR0Pm1haW4oKTwvdHQ+IGZ1bmN0aW9uIGZyb20gdGhlIG9yaWdpbmFsIEMvQysrIGFwcGxpY2F0aW9uLiAgICBTY3JpcHRpbmcgbGFuZ3VhZ2VzIHByb3ZpZGUgdGhlaXIgb3duIG1haW4oKSB0aGF0IHdpbGwgYmUgdXNlZCBpbnN0ZWFkLiAgICBUbyBlbGltaW5hdGUgPHR0Pm1haW4oKTwvdHQ+LCB5b3UgY2FuIGVpdGhlciBvbWl0IGl0IHdoZW4geW91IGNvbXBpbGUgdGhlIEMgY29kZSBvciBzaW1wbHkgcmVkZWZpbmUgdGhlIHN5bWJvbCBzdWNoIGFzIDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgY2MgLWMgLURtYWluPW15bWFpbiBtYWluLmMKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotRmluYWxseSwgU1dJRyBpcyBub3QgYSBmdWxsIEMvQysrIGNvbXBpbGVyIGFuZCBtYXkgbm90IHN1cHBvcnQgY2VydGFpbiBmZWF0dXJlcy4gICBTV0lHIHdpbGwgcmVwb3J0IGNvbXBpbGF0aW9uIHByb2JsZW1zIGluIHRoZXNlIGNhc2VzLiAgIFRvIGVsaW1pbmF0ZSB0aGUgcHJvYmxlbXMsIHlvdSBtYXkgaGF2ZSB0byB0d2VhayAgdGhlIFNXSUcgaW5wdXQgZmlsZSBzb21ld2hhdC4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jaWZuZGVmIFNXSUcKLWludCBwcmludGYoY2hhciAqZm10LCAuLi4pOyAgICAgICAvLyB2YXJhZ3Mgbm90IHN1cHBvcnRlZCBieSBTV0lHCi0jZWxzZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMjQiPjwvYT48aDM+IEludGVyZmFjZSBCdWlsZGluZyBDb25zaWRlcmF0aW9uczwvaDM+Ci1NYW55IHVzZXJzIGFyZSBzdXJwcmlzZWQgdG8gZmluZCBvdXQgaG93IGVhc3kgaXQgaXMgdG8gdXNlIFNXSUcuICBIb3dldmVyLCB0aGlzIGRvZXNuJ3QgbWVhbiB0aGF0IHlvdSB3aWxsIGdldCBhIGdvb2QgVGNsIGludGVyZmFjZSBvbiB0aGUgZmlyc3QgdHJ5LiAgIEluIGZhY3QsIHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgdG8ga2VlcCBpbiBtaW5kPHA+Ci08cD4KLTx1bD4KLTxsaT5TV0lHIG1heSBnZW5lcmF0ZSBhbiBpbnRlcmZhY2UgdGhhdCBpcyBhd2t3YXJkIG9yIHVudXNhYmxlLiAgIFRoaXMgY2FuIGJlIGF2b2lkZWQsIGJ1dCBpdCBtYXkgcmVxdWlyZSBhIGxpdHRsZSBtb3JlIHdvcmsgKHN0YXkgdHVuZWQpLgotPGxpPkl0IGlzIG9mdGVuIHVubmVjZXNzYXJ5IHRvIHdyYXAgZXZlcnl0aGluZyBpbiBhIGh1Z2UgbGlicmFyeS4gIElmIHlvdSBhcmUgb25seSBpbnRlcmVzdGVkIGluIGEgc21hbGwgc3Vic2V0IG9mIGEgbGlicmFyeSwgaXQgbWF5IG1ha2UgbW9yZSBzZW5zZSB0byBzaW1wbHkgd3JhcCB0aG9zZSBwaWVjZXMuIAotPGxpPk5vdCBhbGwgQyBkZWNsYXJhdGlvbnMgY2FuIGJlIGVmZmVjdGl2ZWx5IHRyYW5zbGF0ZWQgaW50byBhIHNjcmlwdGluZyBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIHBvaW50ZXJzIHRvIGZ1bmN0aW9ucyBhbmQgQysrIHRlbXBsYXRlcyBtYXkgbm90IG1ha2UgbXVjaCBzZW5zZSB3aGVuIHdvcmtpbmcgd2l0aCBUY2wuICBBbHRob3VnaCBpdCBpcyBjZXJ0YWlubHkgcG9zc2libGUgdG8gaGFuZGxlIHN1Y2ggc2l0dWF0aW9ucywgaXQgbWF5IHJlcXVpcmUgYSBsaXR0bGUgbW9yZSB3b3JrLgotPGxpPlNXSUcgaXMgbm90IGEgc3Vic3RpdHV0ZSBmb3IgZGVzaWduLiAgIEdlbmVyYWxseSBzcGVha2luZywgeW91IHdpbGwgZ2V0IGJldHRlciByZXN1bHRzIGJ5IHRoaW5raW5nIGFib3V0IHRoZSBUY2wgdXNlciBpbnRlcmZhY2UgdG8geW91ciBDL0MrKyBsaWJyYXJpZXMgaW4gYWR2YW5jZS4gICBIb3dldmVyLCBvbmUgb2YgU1dJRydzIG1vc3QgcG93ZXJmdWwgZmVhdHVyZXMgaXMgaXRzIGFiaWxpdHkgdG8gYXR0YWNoIHRvIGV4aXN0aW5nIGNvZGUtLXJlZ2FyZGxlc3Mgb2YgdGhlIGV4aXN0aW5nIGRlc2lnbiAoZm9yIGJldHRlciBvciBmb3Igd29yc2UpLgotPGxpPlNXSUcgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3IgZXZlcnkgVGNsL1RrIHByb2plY3QuICAgRm9yIGV4YW1wbGUsIHlvdSBwcm9iYWJseSB3b3VsZG4ndCB3cml0ZSBhIFRrIHdpZGdldCB1c2luZyBTV0lHLiAgIElmIGNhbGxpbmcgVGNsL1RrIGZyb20gQyBpcyB5b3VyIGdhbWUsIHlvdSBtaWdodCBoYXZlIGJldHRlciBsdWNrIHVzaW5nIGEgdG9vbCBzdWNoIGFzIEVULiAgIExpa2V3aXNlLCBhIHZhcmlldHkgb2Ygb2JqZWN0LW9yaWVudGVkIFRjbCBleHRlbnNpb25zIGFyZSBhdmFpbGFibGUgdGhhdCBtYXkgYmUgYmV0dGVyIHN1aXRlZCB0byBjZXJ0YWluIGFwcGxpY2F0aW9ucy4gIEluIG90aGVyIHdvcmRzLCB5b3VyIG1pbGVhZ2Ugd2lsbCB2YXJ5LgotPC91bD4KLTxhIG5hbWU9Im4yNSI+PC9hPjxoMz4gQ3JlYXRpbmcgYW5kIERlc3Ryb3lpbmcgU2ltcGxlIE9iamVjdHM8L2gzPgotU29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBtYW51ZmFjdHVyZSB2YXJpb3VzIEMvQysrIG9iamVjdHMgZnJvbSBhIFRjbCBpbnRlcmZhY2UuICBJbiBDLCBvYmplY3RzIGFyZSBlYXNpbHkgY29uc3RydWN0ZWQgdXNpbmcgbWFsbG9jKCkgb3IgbmV3LCBidXQgVGNsIG5lZWRzIGEgbGl0dGxlIGV4dHJhIGhlbHAuICAgVGh1cywgb2JqZWN0IGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZnRlbiByZXF1aXJlcyB0aGUgdXNlIG9mIGhlbHBlciBmdW5jdGlvbnMuIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGV4YW1wbGUKLSV7Ci0jaW5jbHVkZSAidmVjdG9yLmgiCi0lfQotCi0vLyBOb3cgZGVmaW5lIHNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcvZGVzdHJveWluZyB2ZWN0b3JzCi0laW5saW5lICV7Ci1WZWN0b3IgKm5ld19WZWN0b3IoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikgewotICAgICBWZWN0b3IgKnYgPSAoVmVjdG9yICopIG1hbGxvYyhzaXplb2YoVmVjdG9yKSk7Ci0gICAgIHYtJmd0O3ggPSB4OwotICAgICB2LSZndDt5ID0geTsKLSAgICAgdi0mZ3Q7eiA9IHo7Ci0gICAgIHJldHVybiB2OwotfQotCi12b2lkIGRlbGV0ZV9WZWN0b3IoVmVjdG9yICp2KSB7Ci0gICAgIGZyZWUodik7Ci19Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BbiBhbHRlcm5hdGl2ZSBhcHByb2FjaCB0byB3cml0aW5nIGhlbHBlciBmdW5jdGlvbnMgaXMgdG8gZXhwbGljaXRseSBzcGVjaWZ5IEMrKyBjb25zdHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzIGluIHRoZSBpbnRlcmZhY2UgZmlsZS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlCi0lewotI2luY2x1ZGUgInZlY3Rvci5oIgotJX0KLQotc3RydWN0IFZlY3RvciB7Ci0gICAgVmVjdG9yKCk7Ci0gICB+VmVjdG9yKCk7Ci0gICAgZG91YmxlIHgseSx6OwotfTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhpcyBhcHByb2FjaCB3b3JrcyBmcm9tIGJvdGggQyBhbmQgQysrLiAgSW4gdGhlIGNhc2Ugb2YgQU5TSSBDLCBTV0lHIHdpbGwgc2ltcGx5IGNyZWF0ZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBmdW5jdGlvbnMgdGhhdCBhcmUgbWFwcGVkIG9udG8gPHR0Pm1hbGxvYygpPC90dD4gYW5kIDx0dD5mcmVlKCk8L3R0Pi48cD4KLTxhIG5hbWU9Im4yNiI+PC9hPjxoMz4gQXJyYXlzPC9oMz4KLU1hbmlwdWxhdGluZyBhcnJheXMgaXMgY29tbW9uIHByYWN0aWNlIGluIG1hbnkgQyBhcHBsaWNhdGlvbnMuICBDIGFycmF5cyBjYW4gYWxzbyBiZSBoYW5kbGVkIHRocm91Z2ggdGhlIHVzZSBvZiBoZWxwZXIgZnVuY3Rpb25zLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIFNXSUcgaGVscGVyIGZ1bmN0aW9ucyBmb3IgYXJyYXlzCi0laW5saW5lICV7Ci0vKiBDcmVhdGUgYW4gYXJyYXkgKi8KLWRvdWJsZSAqZG91YmxlX2FycmF5KGludCBzaXplKSB7Ci0gICAgcmV0dXJuIChkb3VibGUgKikgbWFsbG9jKHNpemUqc2l6ZW9mKGRvdWJsZSkpOwotfQotCi0vKiBHZXQgYSB2YWx1ZSBmcm9tIGFuIGFycmF5ICovCi1kb3VibGUgZG91YmxlX2dldChkb3VibGUgKmEsIGludCBpbmRleCkgewotICAgICByZXR1cm4gYVtpbmRleF07Ci19Ci0vKiBTZXQgYSB2YWx1ZSBpbiB0aGUgYXJyYXkgKi8KLWRvdWJsZSBkb3VibGVfc2V0KGRvdWJsZSAqYSwgaW50IGluZGV4LCBkb3VibGUgdmFsdWUpIHsKLSAgICAgcmV0dXJuIChhW2luZGV4XSA9IHZhbHVlKTsKLX0KLSV9Ci0lbmFtZShkb3VibGVfZGVzdHJveSkgdm9pZCBmcmVlKHZvaWQgKik7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZyb20gVGNsLCB0aGVzZSBmdW5jdGlvbnMgd291bGQgYmUgY2FsbGVkIGV4cGxpY2l0bHkgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0IGQgW2FycmF5X2RvdWJsZSAxMDBdICAgICAgICAgICAgIDsjIENyZWF0ZSAxMDAgZG91YmxlcwotJSBwdXRzICRkCi1fMTAwNDVmOF9kb3VibGVfcAotJSBmb3Ige3NldCBpIDB9IHskaSAmbHQ7IDEwMH0ge2luY3IgaX0geyAgCi0gICAgICBkb3VibGVfc2V0ICRkICRpICRpICAgICAgICAgICAgICA7IyBTZXQgYSB2YWx1ZQotfQotJSBwdXRzIFtkb3VibGVfZ2V0ICRkIDUwXSAgICAgICAgICAgICAgOyMgR2V0IGEgdmFsdWUKLTUwLjAKLSUgZG91YmxlX2Rlc3Ryb3kgJGQgICAgICAgICAgICAgICAgICAgIDsjIERlc3Ryb3kgdGhlIGFycmF5Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUluIHRoaXMgY2FzZSwgdGhlIGFycmF5IGlzIHNpbXBseSBtYW5hZ2VkIGFzIGEgcG9pbnRlciB0aGF0IGNhbiBiZSBwYXNzZWQgYXJvdW5kIHRvIGFueSBDIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIGRvdWJsZSAqLiAgICBHZW5lcmFsbHkgc3BlYWtpbmcsIHRoaXMgaXMgYSBnb29kIGFwcHJvYWNoIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIHZlcnkgbGFyZ2UgQyBhcnJheXMgc2luY2UgdGhleSBjYW4gYmUgY3JlYXRlZCBhbmQgcGFzc2VkIGFyb3VuZCB3aXRob3V0IGFueSBkYXRhIGNvcHlpbmcuPHA+Ci08cD4KLVNXSUcgcHJvdmlkZXMgYSBsaWJyYXJ5IGZpbGUgPHR0PmFycmF5Lmk8L3R0PiB0aGF0IGNvbnRhaW5zIGhlbHBlciBmdW5jdGlvbnMgZm9yIDx0dD5pbnQ8L3R0PiwgPHR0PmZsb2F0PC90dD4sIDx0dD5kb3VibGU8L3R0PiwgYW5kIDx0dD5jaGFyICo8L3R0PiBkYXRhdHlwZXMuICAgIFRvIHVzZSB0aGlzIGxpYnJhcnksIHNpbXBseSBwbGFjZSB0aGUgYDx0dD4laW5jbHVkZSBhcnJheS5pPC90dD4nIGRpcmVjdGl2ZSBpbnRvIHlvdXIgaW50ZXJmYWNlIGZpbGUuPHA+Ci08cD4KLUEgY29tbW9uIHF1ZXN0aW9uIHRoYXQgYXJpc2VzIHdpdGggYXJyYXlzIGlzICJjYW4gSSBjb252ZXJ0IGEgVGNsIGxpc3QgaW50byBhIEMgYXJyYXk/IiAgQWx0aG91Z2ggdGhlIHBvaW50ZXIgbW9kZWwgaXMgYWRlcXVhdGUgZm9yIG1hbnkgIHNpdHVhdGlvbnMsIGl0IG1heSBtYWtlIG1vcmUgc2Vuc2UgdG8gd29yayB3aXRoIFRjbCBsaXN0cyBpbiBjZXJ0YWluIGNhc2VzLiAgVGhlcmUgYXJlIGEgY291cGxlIG9mIHdheXMgdG8gaGFuZGxlIHRoaXMuICBGaXJzdCwgeW91IGNhbiB3cml0ZSBmdW5jdGlvbnMgaW4gVGNsIHRvIGNvbnZlcnQgYSBsaXN0IHRvIGEgcG9pbnRlci4gICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBUY2wgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGEgVGNsIGxpc3QgdG8gYSBDIGFycmF5Ci1wcm9jIERvdWJsZUxpc3RUb0FycmF5IHtsfSB7Ci0gICAgc2V0IGxlbmd0aCBbbGxlbmd0aCAkbF0KLSAgICBzZXQgYSBbZG91YmxlX2FycmF5ICRsZW5ndGhdCi0gICAgc2V0IGkgMAotICAgIGZvcmVhY2ggaXRlbSAkbCB7Ci0gICAgICAgIGRvdWJsZV9zZXQgJGEgJGkgJGl0ZW0KLSAgICAgICAgaW5jciBpIDEKLSAgICB9Ci0gICAgcmV0dXJuIGEKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2l0aGluIGEgVGNsIHNjcmlwdCwgeW91IHdvdWxkIG5vdyBkbyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5zZXQgYSBbRG91YmxlTGlzdFRvQXJyYXkgezIuMyA0LjUgMC41IC0xMy4wfV0gICAgOyMgQ3JlYXRlIGFuIGFycmF5Ci1mb28gJGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyMgQ2FsbCBhIEMgZnVuY3Rpb24KLWRvdWJsZV9kZXN0cm95ICRhCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFsdGVybmF0aXZlbHksICBpdCBpcyBwb3NzaWJsZSB0byB1c2UgdHlwZW1hcHMgYXMgYSBjb252ZXJzaW9uIG1lY2hhbmlzbS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4ldHlwZW1hcCh0Y2wsaW4pIGRvdWJsZSBbQU5ZXSAoZG91YmxlIHRlbXBbJGRpbTBdKSB7Ci0gICAgICBjaGFyICoqaXRlbXM7Ci0gICAgICBpbnQgIGl0ZW1jLGk7Ci0gICAgICBpZiAoVGNsX1NwbGl0TGlzdChpbnRlcnAsJHNvdXJjZSwmYW1wO2l0ZW1jLCZhbXA7aXRlbXMpID09IFRDTF9FUlJPUikgewotICAgICAgICAgICByZXR1cm4gVENMX0VSUk9SOwotICAgICAgfQotICAgICAgaWYgKGl0ZW1jICE9ICRkaW0wKSB7Ci0gICAgICAgICAgIGludGVycC0mZ3Q7cmVzdWx0ID0gIkFycmF5IHNpemUgbWlzbWF0Y2ghIjsKLSAgICAgICAgICAgZnJlZShpdGVtcyk7Ci0gICAgICAgICAgIHJldHVybiBUQ0xfRVJST1I7Ci0gICAgICB9Ci0gICAgICBmb3IgKGkgPSAwOyBpICZsdDsgaXRlbWM7IGkrKykgewotICAgICAgICAgIHRlbXBbaV0gPSBhdG9mKGl0ZW1zW2ldKTsKLSAgICAgIH0KLSAgICAgICR0YXJnZXQgPSB0ZW1wOwotICAgICAgZnJlZShpdGVtcyk7Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFsdGhvdWdoIHRoaXMgbWlnaHQgdGFrZSBhIGxpdHRsZSB0aW1lIHRvIGRpZ2VzdCAoY29uc2lkZXJpbmcgb3VyIGxpbWl0ZWQgZGlzY3Vzc2lvbiBvZiB0eXBlbWFwcyksIHdoZW4gZ2l2ZW4gYSBDIGZ1bmN0aW9uIHN1Y2ggYXMgdGhlIGZvbGxvd2luZyw8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGZvbyAoZG91YmxlIGFbNF0pOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci10aGUgdHlwZW1hcCBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmcm9tIFRjbCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5mb28geyAyLjMgNC41IDAuNSAtMS4zMCB9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUlmIHRoZSBsaXN0IHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gZG9lcyBub3QgbWF0Y2ggdGhlIEMgYXJyYXkgc2l6ZSwgYW4gZXJyb3Igd2lsbCBiZSBnZW5lcmF0ZWQuICBOZWVkbGVzcyB0byBzYXksIHRoZXJlIGFyZSBhIHZhcmlldHkgb2Ygd2F5cyB0byBtYW5hZ2UgYXJyYXlzIGRlcGVuZGluZyBvbiB0aGUgcHJvYmxlbSBhdCBoYW5kIGFuZCB5b3VyIHBlcnNvbmFsIHByZWZlcmVuY2UuPHA+Ci08YSBuYW1lPSJuMjciPjwvYT48aDM+IE91dHB1dCBBcmd1bWVudHM8L2gzPgotU29tZXRpbWVzIEMgZnVuY3Rpb25zIHJldHVybiByZXN1bHRzIGluIG9uZSBvZiB0aGVpciBhcmd1bWVudHMgc3VjaCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkIGFkZChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSAqcmVzdWx0KSB7Ci0gICAgICAqYyA9IGErYjsKLX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlIG91dHB1dCBhcmd1bWVudCBtYWtlcyB0aGlzIGEgbGl0dGxlIHRyaWNreSB0byBoYW5kbGUgZnJvbSBUY2wsIGJ1dCB0aGVyZSBhcmUgc2V2ZXJhbCB0ZWNobmlxdWVzLiAgVGhhdCBjYW4gYmUgdXNlZC4gICBPbmUgYXBwcm9hY2ggaXMgdG8gd3JpdGUgZnVuY3Rpb25zIHRoYXQgbWFudWZhY3R1cmUgYSBgZG91YmxlJyBhbmQgcGFzcyBpdCB0byB0aGUgQyBmdW5jdGlvbi4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4laW5saW5lICV7Ci1kb3VibGUgKmNyZWF0ZV9kb3VibGUoZG91YmxlIHZhbCkgewotICAgICBkb3VibGUgKmQgPSAoZG91YmxlICopIG1hbGxvYyhzaXplb2YoZG91YmxlKSk7Ci0gICAgICpkID0gdmFsOwotICAgICAgcmV0dXJuIGQ7Ci19Ci1kb3VibGUgZ2V0X2RvdWJsZShkb3VibGUgKmQpIHsKLSAgICAgcmV0dXJuICpkOwotfQotZG91YmxlIHNldF9kb3VibGUoZG91YmxlICpkLCBkb3VibGUgdmFsKSB7Ci0gICAgIHJldHVybiAoKmQgPSB2YWwpOwotfQotJX0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93LCBmcm9tIFRjbCwgeW91IHdvdWxkIGRvIHRoaXMgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0IHJlc3VsdCBbY3JlYXRlX2RvdWJsZSAwLjBdCi0lIGFkZCA0LjUgOSAkcmVzdWx0ICAgICAgICAgICAgICAgICAgICAgIDsgQ2FsbCBvdXIgQyBmdW5jdGlvbgotJSBwdXRzIFtnZXRfZG91YmxlICRyZXN1bHRdCi0xMy41Ci0lCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLUlmIHdvcmtpbmcgd2l0aCBDIGJ1aWx0LWluIGRhdGF0eXBlcywgaXQgbWF5IGJlIGVhc2llciB0byB1c2UgdGhlIFNXSUcgcG9pbnRlciBsaWJyYXJ5IGJ5IGluY2x1ZGluZyB0aGUgZmlsZSBgPHR0PnBvaW50ZXIuaTwvdHQ+JyBpbiB5b3VyIGludGVyZmFjZS4gICBUaGUgcG9pbnRlciBsaWJyYXJ5IGFkZHMgc2V2ZXJhbCBuZXcgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgcG9pbnRlcnMgdG8gdmFyaW91cyBidWlsdC1pbiBkYXRhdHlwZXMgYW5kIGNhbiBiZSB1c2VkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0IHJlc3VsdCBbcHRyY3JlYXRlIGRvdWJsZV0gICAgICA7ICMgQ3JlYXRlIGEgZG91YmxlCi0lIGFkZCA0LjUgOSAkcmVzdWx0ICAgICAgICAgICAgICAgICAgCi0lIHB1dHMgW3B0cnZhbHVlICRyZXN1bHRdICAgICAgICAgICAgOyAjIERlcmVmZXJlbmNlIHRoZSByZXN1bHQKLTEzLjUKLSUgcHRyZnJlZSAkcmVzdWx0Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUZpbmFsbHksIHNpbXBsZSBvdXRwdXQgYXJndW1lbnRzIGNhbiBiZSBoYW5kbGVkIHRocm91Z2ggdGhlIHVzZSBvZiB0eXBlbWFwcy4gICBUaGlzIGNhbiBiZSBkb25lIGJ5IGluY2x1ZGluZyB0aGUgZmlsZSBgPHR0PnR5cGVtYXBzLmk8L3R0PicgaW4geW91ciBpbnRlcmZhY2UuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0laW5jbHVkZSB0eXBlbWFwcy5pCi0KLS8vIEFwcGx5IGFuIG91dHB1dCBydWxlIHRvIHRoZSBvdXRwdXQgYXJndW1lbnQKLSVhcHBseSBkb3VibGUgKk9VVFBVVCB7IGRvdWJsZSAqcmVzdWx0IH07Ci0KLS8vIE5vdyBkZWNsYXJlIHRoZSBmdW5jdGlvbgotdm9pZCBhZGQoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgKnJlc3VsdCk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgc2V0IHJlc3VsdCBbYWRkIDQuNSA5XQotJSBwdXRzICRyZXN1bHQKLTEzLjUKLSUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjI4Ij48L2E+PGgzPiBXcmFwcGluZyBQcmVwcm9jZXNzb3IgTWFjcm9zPC9oMz4KLU1hbnkgQyBwcm9ncmFtcyB1c2UgbWFjcm9zIGluc3RlYWQgb2YgZnVuY3Rpb24gY2FsbHMgdG8gcGVyZm9ybSBzb21lIG9wZXJhdGlvbi4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jZGVmaW5lIEltYWdlX3dpZHRoKGltKSAgKGltLSZndDt4cGl4ZWxzKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1TV0lHIGlzIHVuYWJsZSB0byBjcmVhdGUgVGNsIHdyYXBwZXJzIGZvciBtYWNyb3MgYmVjYXVzZSB0aGVyZSBpcyBubyB0eXBlIGluZm9ybWF0aW9uIGF2YWlsYWJsZS4gIEhvd2V2ZXIsIHlvdSBjYW4gY3JlYXRlIGEgd3JhcHBlciBieSBzaW1wbHkgZ2l2aW5nIFNXSUcgYSBmdW5jdGlvbiBwcm90b3R5cGUuPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JW1vZHVsZSBleGFtcGxlCi0lewotI2luY2x1ZGUgImhlYWRlci5oIgotJX0KLS8vIEEgd3JhcHBlciBmb3IgYSBDIG1hY3JvCi11bnNpZ25lZCBJbWFnZV93aWR0aChJbWFnZSAqaW0pOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1UaGUgcHJvdG90eXBlIGdpdmVzIFNXSUcgdGhlIHR5cGUgaW5mb3JtYXRpb24gaXQgbmVlZHMgdG8gZ2VuZXJhdGUgYSB3cmFwcGVyLiAgT3RoZXJ3aXNlLCB0aGUgZmFjdCB0aGF0IHRoZSAiZnVuY3Rpb24iIGlzIHJlYWxseSBhIG1hY3JvIGRvZXNuJ3QgbWF0dGVyLjxwPgotPGEgbmFtZT0ibjI5Ij48L2E+PGgzPiBPdmVybG9hZGluZzwvaDM+Ci1BcyBvZiB0aGlzIHdyaXRpbmcsIFNXSUcgZG9lcyBub3Qgc3VwcG9ydCBDKysgb3ZlcmxvYWRpbmcgb2YgZnVuY3Rpb25zIG9yIG9wZXJhdG9ycy4gIFRvIHJlc29sdmUgb3ZlcmxvYWRlZCBmdW5jdGlvbnMsIHRoZSA8dHQ+JW5hbWUoKTwvdHQ+IGRpcmVjdGl2ZSBjYW4gYmUgdXNlZC4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5jbGFzcyBmb28gewotcHVibGljOgotICAgICAgZm9vKCk7Ci0lbmFtZShjb3B5X2ZvbykgZm9vKGZvbyAmYW1wO2YpOwotICAgICAgLi4uCi19OwotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1PdmVybG9hZGVkIG9wZXJhdG9ycyBjYW4gYmUgaGFuZGxlZCBieSB3cml0aW5nIGhlbHBlciBmdW5jdGlvbnMuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JWlubGluZSAlewotVmVjdG9yIHZlY3Rvcl9hZGQoVmVjdG9yICZhbXA7YSwgVmVjdG9yICZhbXA7YikgewotICAgICAgIHJldHVybiBhK2I7Ci19Ci0lfQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1Ib3dldmVyLCB0aGUgdXNlIG9mIG9wZXJhdG9ycyBmcm9tIFRjbCBtYXkgcmVzdWx0ICBpbiBtZW1vcnkgbGVha3MgYW5kIG90aGVyIHByb2JsZW1zIHdpdGhvdXQgc29tZSBzcGVjaWFsIGNhcmUuICBJbiB0aGUgYWJvdmUgY2FzZSwgU1dJRyB3b3VsZCBhbGxvY2F0ZSBtZW1vcnkgdG8gc3RvcmUgdGhlIHJlc3VsdCBhbmQgcmV0dXJuIGEgcG9pbnRlciB0byBUY2wuICBJdCB3b3VsZCBiZSB1cCB0byB5b3UgdG8gZXhwbGljaXRseSBmcmVlIHRoaXMgbWVtb3J5IHdoZW4geW91IHdlcmUgZG9uZSB3aXRoIGl0LiAgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+c2V0IHIgW3ZlY3Rvcl9hZGQgJHYxICR2Ml0gICAgICAgIDsjIENyZWF0ZXMgYSBuZXcgdmVjdG9yCi0uLi4gdXNlIGl0IC4uLgotZGVsZXRlX1ZlY3RvciAkciAgICAgICAgICAgICAgICAgIDsjIEZyZWUgdGhlIHJlc3VsdAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci08YSBuYW1lPSJuMzAiPjwvYT48aDM+IFdvcmtpbmcgd2l0aCBvdGhlciBUY2wgRXh0ZW5zaW9uczwvaDM+Ci1BbHRob3VnaCBTV0lHIGdlbmVyYXRlcyBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGJ1aWxkIGFuIGludGVyZmFjZSwgaXQgY2FuIGFsc28gYmUgdXNlZCB3aXRoIG90aGVyIFRjbCBleHRlbnNpb25zLiAgICAgSWYgeW91IHdvdWxkIGxpa2UgdG8gaW5pdGlhbGl6ZSBhbm90aGVyIFRjbCBtb2R1bGUgd2hlbiB5b3VyIG1vZHVsZSBpcyBsb2FkZWQsIHlvdSBjYW4gd3JpdGUgdGhlIGZvbGxvd2luZyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ly8gSW5pdGlhbGl6ZSBCTFQgd2hlbiBsb2FkZWQKLSVpbml0ICV7Ci0gICAgIGlmIChCbHRfSW5pdChpbnRlcnApID09IFRDTF9FUlJPUikgewotICAgICAgICAgIHJldHVybiBUQ0xfRVJST1I7Ci0gICAgIH0KLSV9Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUlmIHlvdSBoYXZlIGFscmVhZHkgd3JpdHRlbiBzb21lIFRjbCB3cmFwcGVyIGZ1bmN0aW9ucywgdGhlc2UgY2FuIGJlIGFkZGVkIHRvIGEgU1dJRyBpbnRlcmZhY2UgdXNpbmcgdGhlIDx0dD4lbmF0aXZlPC90dD4gZGlyZWN0aXZlLiAgRm9yIGV4YW1wbGUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiVuYXRpdmUoZm9vKSBpbnQgZm9vX3dyYXAoVGNsX0ludGVycCAqLCBDbGllbnREYXRhLCBpbnQsIGNoYXIgKiopOwotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1vciBzaW1wbHk8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbmF0aXZlKGZvbykgZm9vX3dyYXA7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVRoZXNlIGRlY2xhcmF0aW9ucyBjcmVhdGUgYSBuZXcgVGNsIGNvbW1hbmQgYGZvbycgIHRoYXQgaXMgbWFwcGVkIG9udG8gdGhlIFRjbCB3cmFwcGVyIGZ1bmN0aW9uIDx0dD5mb29fd3JhcDwvdHQ+LjxwPgotPGEgbmFtZT0ibjMxIj48L2E+PGgzPiBTV0lHIFByZXByb2Nlc3NvciBNYWdpYzwvaDM+Ci1UaGUgU1dJRyBjb21waWxlciBpbmNsdWRlcyBhIGZ1bGwgQyBwcmVwcm9jZXNzb3IgdGhhdCBjYW4gYmUgdXNlZCBpbiBhIHZhcmlldHkgb2YgdW51c3VhbCB3YXlzLiAgSW4gZmFjdCwgdGhlIHByZXByb2Nlc3NvciBjYW4gYmUgYW4gZXh0cmVtZWx5IHVzZWZ1bCB0b29sIGZvciBxdWlja2x5IGdlbmVyYXRpbmcgaGVscGVyIGZ1bmN0aW9ucyBhbmQgb3RoZXIgYXNwZWN0cyBvZiBhIFRjbCBpbnRlcmZhY2UuICAgIE9uZSBvZiB0aGUgbW9yZSB1c2VmdWwgY2FwYWJpbGl0aWVzIG9mIHRoZSBwcmVwcm9jZXNzb3IgaXMgdGhlIDx0dD4lZGVmaW5lPC90dD4gZGlyZWN0aXZlIHRoYXQgbGV0cyB5b3UgZGVmaW5lIGNvbXBsaWNhdGVkIG1hY3Jvcy4gICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBpbnRlcmZhY2UgZmlsZSBjb3VsZCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgdmFyaWV0eSBvZiBhcnJheSBoZWxwZXIgZnVuY3Rpb25zPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Ci0vLyBBcnJheSBhY2Nlc3MgaGVscGVyIGZ1bmN0aW9ucwotJW1vZHVsZSBhcnJheQotCi0vLyBEZWZpbmUgYSBtYWNybyBmb3IgY3JlYXRpbmcgaGVscGVyIGZ1bmN0aW9ucwotJWRlZmluZSBBUlJBWShUeXBlLE5hbWUpCi0laW5saW5lICV7Ci0vKiBDcmVhdGUgYW4gYXJyYXkgKi8KLVR5cGUgKiBOYW1lICMjIF9hcnJheSAoaW50IHNpemUpIHsKLSAgICAgcmV0dXJuIChUeXBlICopIG1hbGxvYyhzaXplb2YoIFR5cGUgKSk7Ci19Ci0vKiBHZXQgYW4gaXRlbSAqLwotVHlwZSBOYW1lICMjIF9nZXQgKFR5cGUgKmEsIGludCBpbmRleCkgewotICAgICByZXR1cm4gYVtpbmRleF07Ci19Ci0vKiBTZXQgYW4gaXRlbSAqLwotVHlwZSBOYW1lICMjIF9zZXQgKFR5cGUgKmEsIGludCBpbmRleCwgVHlwZSB2YWx1ZSkgewotICAgICByZXR1cm4gKGFbaW5kZXhdID0gdmFsdWUpOwotfQotLyogRGVsZXRlIHRoZSBhcnJheSAqLwotdm9pZCBOYW1lICMjIF9kZXN0cm95IChUeXBlICphKSB7Ci0gICAgIGZyZWUoYSk7Ci19Ci0lfQotJWVuZGRlZgotCi0vLyBOb3cgY3JlYXRlIGEgYnVuY2ggb2YgaGVscGVyIGZ1bmN0aW9ucwotQVJSQVkoZG91YmxlLGRvdWJsZSkKLUFSUkFZKGZsb2F0LGZsb2F0KQotQVJSQVkoaW50LGludCkKLUFSUkFZKHNob3J0LHNob3J0KQotQVJSQVkodW5zaWduZWQgaW50LCB1bnNpZ25lZCkKLUFSUkFZKGxvbmcsIGxvbmcpCi1BUlJBWShzdHJ1Y3Qgbm9kZSwgbm9kZSkKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU2ltaWxhciB0ZWNobmlxdWVzIGNhbiBiZSB1c2VkIHRvIHdyYXAgQysrIHRlbXBsYXRlcyBhbmQgd29yayB3aXRoIG90aGVyIGNvbXBsaWNhdGVkIGRlY2xhcmF0aW9ucy4gICBPZiBjb3Vyc2UsIGl0J3MgYWxzbyBwb3NzaWJsZSB0byBjb25mdXNlIHlvdXJzZWxmLjxwPgotPGEgbmFtZT0ibjQiPjwvYT48aDI+IFB1dHRpbmcgaXQgQWxsIFRvZ2V0aGVyPC9oMj4KLVNvIGZhciwgeW91IGhhdmUgYmVlbiBnaXZlbiBhIGNyYXNoIGNvdXJzZSBpbiBTV0lHIGFuZCBzb21lIGludGVyZmFjZSBidWlsZGluZyB0ZWNobmlxdWVzLiAgSW4gdGhpcyBzZWN0aW9uLCB3ZSB3aWxsIGJ1aWxkIGEgVGNsIGludGVyZmFjZSB0byBhIEMgbGlicmFyeSwgd3JpdGUgc29tZSBzY3JpcHRzLCBhbmQgc2hvdyBob3cgeW91IGNhbiB1c2UgVGNsIHRvIGludGVyYWN0IHdpdGggdGhlIGxpYnJhcnkuICAgICBJbiB0aGlzIGV4YW1wbGUsIHdlIHdpbGwgdXNlIHRoZSBnZC0xLjIgbGlicmFyeSB3cml0dGVuIGJ5IFRob21hcyBCb3V0ZWxsIGFuZCBhdmFpbGFibGUgYXQgd3d3LmJvdXRlbGwuY29tLiAgIGdkIGlzIHJlbGF0aXZlbHkgc2ltcGxlIGFuZCBjYW4gYmUgdXNlZCBvbiBib3RoIFVuaXggYW5kIFdpbmRvd3MgcGxhdGZvcm1zIChtYWtpbmcgaXQgYSBnb29kIGV4YW1wbGUpLiAgIEZ1cnRoZXJtb3JlLCB0aGVyZSBhcmUgYWxyZWFkeSBUY2wgaW50ZXJmYWNlcyB0byBnZCwgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGNvbXBhcmUgdG8gb3RoZXIgYXBwcm9hY2hlcyBpZiB5b3UgYXJlIHNvIGluY2xpbmVkLjxwPgotPGEgbmFtZT0ibjMyIj48L2E+PGgzPiBBIEJyaWVmIEludHJvZHVjdGlvbiB0byBnZDwvaDM+Ci1nZCBpcyBhIEMgbGlicmFyeSB0aGF0IGlzIHVzZWQgdG8gY3JlYXRlIEdJRiBpbWFnZXMuICBBIHZlcnkgc2ltcGxlIGV4YW1wbGUgaW4gQyBpcyBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4KLSNpbmNsdWRlICZsdDtnZC5oJmd0OwotI2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7Ci0KLWludCBtYWluKCkgewotICAgICBnZEltYWdlUHRyIGltOwotICAgICBGSUxFICpvdXQ7Ci0gICAgIGludCAgYmxhY2ssIHdoaXRlOwotCi0gICAgIC8qIENyZWF0ZSBhbiBpbWFnZSAqLwotICAgICBpbSA9IGdkSW1hZ2VDcmVhdGUoMjAwLDIwMCk7Ci0gICAgIAotICAgICAvKiBBbGxvY2F0ZSBzb21lIGNvbG9ycyAqLwotICAgICBibGFjayA9IGdkSW1hZ2VDb2xvckFsbG9jYXRlKGltLDAsMCwwKTsKLSAgICAgd2hpdGUgPSBnZEltYWdlQ29sb3JBbGxvY2F0ZShpbSwyNTUsMjU1LDI1NSk7Ci0gIAotICAgICAvKiBEcmF3IGEgbGluZSAqLwotICAgICBnZEltYWdlTGluZShpbSwyMCw1MCwxODAsMTQwLHdoaXRlKTsKLQotICAgICAvKiBPdXRwdXQgdGhlIGltYWdlICovCi0gICAgIG91dCA9IGZvcGVuKCJ0ZXN0LmdpZiIsIndiIik7Ci0gICAgIGdkSW1hZ2VHaWYoaW0sb3V0KTsKLSAgICAgZmNsb3NlKG91dCk7Ci0KLSAgICAgLyogQ2xlYW4gdXAgKi8KLSAgICAgZ2RJbWFnZURlc3Ryb3koaW0pOwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BIHZhcmlldHkgb2YgcGxvdHRpbmcgcHJpbWl0aXZlcyBzdWNoIGFzIGxpbmVzLCBjaXJjbGVzLCBib3hlcywgYW5kIGZvbnRzIGFyZSBhbHNvIGF2YWlsYWJsZSB0byBtYWtlIG1vcmUgY29tcGxpY2F0ZWQgaW1hZ2VzLjxwPgotPGEgbmFtZT0ibjMzIj48L2E+PGgzPiBBIFNpbXBsZSBTV0lHIGludGVyZmFjZTwvaDM+Ci1UbyBidWlsZCBhIFRjbCBpbnRlcmZhY2UgdG8gZ2QsIHdlIGNhbiBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGdkCi0lewotI2luY2x1ZGUgJmx0O2dkLmgmZ3Q7Ci0lfQotCi0vLyBKdXN0IGdyYWIgdGhlIGdkLmggaGVhZGVyIGZpbGUKLSVpbmNsdWRlIGdkLmgKLQotLy8gUGx1cyBhIGZldyBmaWxlIEkvTyBmdW5jdGlvbnMgKHRvIGJlIGV4cGxhaW5lZCBzaG9ydGx5KQotRklMRSAqZm9wZW4oY2hhciAqZmlsZW5hbWUsIGNoYXIgKm1vZGUpOwotdm9pZCBmY2xvc2UoRklMRSAqZik7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLU5vdywgeW91IGNhbiBjb21waWxlIGEgbW9kdWxlIChzaG93biBmb3IgTGludXgpPHA+Ci08YmxvY2txdW90ZT48cHJlPgotJSBzd2lnIC10Y2wgZ2QuaQotTWFraW5nIHdyYXBwZXJzIGZvciBUY2wKLWdkLmggOiBMaW5lIDMxLiBXYXJuaW5nLiBBcnJheSBtZW1iZXIgd2lsbCBiZSByZWFkLW9ubHkuCi1nZC5oIDogTGluZSAzMi4gV2FybmluZy4gQXJyYXkgbWVtYmVyIHdpbGwgYmUgcmVhZC1vbmx5LgotZ2QuaCA6IExpbmUgMzMuIFdhcm5pbmcuIEFycmF5IG1lbWJlciB3aWxsIGJlIHJlYWQtb25seS4KLWdkLmggOiBMaW5lIDM0LiBXYXJuaW5nLiBBcnJheSBtZW1iZXIgd2lsbCBiZSByZWFkLW9ubHkuCi1nZC5oIDogTGluZSA0MC4gV2FybmluZy4gQXJyYXkgbWVtYmVyIHdpbGwgYmUgcmVhZC1vbmx5LgotZ2QuaCA6IExpbmUgNDEuIFdhcm5pbmcuIEFycmF5IG1lbWJlciB3aWxsIGJlIHJlYWQtb25seS4KLSUgZ2NjIC1jIC1mcGljIGdkX3dyYXAuYwotJSBnY2MgLXNoYXJlZCBnZF93cmFwLm8gLW8gZ2Quc28gLWxnZAotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UaGUgd2FybmluZyBtZXNzYWdlcyB3aWxsIGJlIGV4cGxhaW5lZCBzaG9ydGx5IGFuZCBjYW4gYmUgaWdub3JlZC4gICAgTm93LCB5b3UgY2FuIHdyaXRlIGEgc2ltcGxlIFRjbCBzY3JpcHQ8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5sb2FkIC4vZ2Quc28gZ2QKLQotIyBDcmVhdGUgYW4gaW1hZ2UKLXNldCBpbSBbZ2RJbWFnZUNyZWF0ZSAyMDAgMjAwXQotCi0jIEFsbG9jYXRlIGNvbG9ycwotc2V0IGJsYWNrIFtnZEltYWdlQ29sb3JBbGxvY2F0ZSAkaW0gMCAwIDBdCi1zZXQgd2hpdGUgW2dkSW1hZ2VDb2xvckFsbG9jYXRlICRpbSAyNTUgMjU1IDI1NV0KLQotIyBEcmF3IGEgbGluZQotZ2RJbWFnZUxpbmUgJGltIDIwIDUwIDE4MCAxNDAgJHdoaXRlCi0KLSMgV3JpdGUgdGhlIGltYWdlCi1zZXQgb3V0IFtmb3BlbiB0ZXN0LmdpZiB3Yl0KLWdkSW1hZ2VHaWYgJGltICRvdXQKLWZjbG9zZSAkb3V0Ci0KLSMgQ2xlYW4gdXAKLWdkSW1hZ2VEZXN0cm95ICRpbQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiBhIG1hbm5lciBvZiBvbmx5IGEgZmV3IG1pbnV0ZXMsIHdlIGhhdmUgYnVpbHQgYSBUY2wgaW50ZXJmYWNlIHRoYXQgc2VlbXMgdG8gd29yay48cD4KLTxhIG5hbWU9Im4zNCI+PC9hPjxoMz4gVW5kZXJzdGFuZGluZyB0aGUgV2FybmluZyBNZXNzYWdlczwvaDM+Ci1UaGUgd2FybmluZyBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgU1dJRyB3ZXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPnR5cGVkZWYgc3RydWN0IGdkSW1hZ2VTdHJ1Y3QgewotICAgICAgICB1bnNpZ25lZCBjaGFyICoqIHBpeGVsczsKLSAgICAgICAgaW50IHN4OwotICAgICAgICBpbnQgc3k7Ci0gICAgICAgIGludCBjb2xvcnNUb3RhbDsKLSAgICAgICAgaW50IHJlZFtnZE1heENvbG9yc107ICAgICAgICAgICAgICAgICEgV2FybmluZwotICAgICAgICBpbnQgZ3JlZW5bZ2RNYXhDb2xvcnNdOyAgICAgICAgICAgICAgISBXYXJuaW5nCi0gICAgICAgIGludCBibHVlW2dkTWF4Q29sb3JzXTsgICAgICAgICAgICAgICAhIFdhcm5pbmcKLSAgICAgICAgaW50IG9wZW5bZ2RNYXhDb2xvcnNdOyAgICAgICAgICAgICAgICEgV2FybmluZwotICAgICAgICBpbnQgdHJhbnNwYXJlbnQ7Ci0gICAgICAgIGludCAqcG9seUludHM7Ci0gICAgICAgIGludCBwb2x5QWxsb2NhdGVkOwotICAgICAgICBzdHJ1Y3QgZ2RJbWFnZVN0cnVjdCAqYnJ1c2g7Ci0gICAgICAgIHN0cnVjdCBnZEltYWdlU3RydWN0ICp0aWxlOwotICAgICAgICBpbnQgYnJ1c2hDb2xvck1hcFtnZE1heENvbG9yc107ICAgICAgISBXYXJuaW5nCi0gICAgICAgIGludCB0aWxlQ29sb3JNYXBbZ2RNYXhDb2xvcnNdOyAgICAgICAhIFdhcm5pbmcKLSAgICAgICAgaW50IHN0eWxlTGVuZ3RoOwotICAgICAgICBpbnQgc3R5bGVQb3M7Ci0gICAgICAgIGludCAqc3R5bGU7Ci0gICAgICAgIGludCBpbnRlcmxhY2U7Ci19IGdkSW1hZ2U7Ci08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBtZXNzYWdlICJBcnJheSBtZW1iZXIgd2lsbCBiZSByZWFkLW9ubHkiIG1lYW5zIHRoYXQgU1dJRyBrbm93cyBob3cgdG8gcmV0dXJuIHRoZSB2YWx1ZSBvZiBhbiBhcnJheSBkYXRhIG1lbWJlciAodGhlIHZhbHVlIGlzIGEgcG9pbnRlciB0byB0aGUgZmlyc3QgZWxlbWVudCksIGJ1dCBkb2VzIG5vdCBrbm93IGhvdyB0byBzZXQgdGhlIHZhbHVlIG9mIHRoZSBhcnJheS4gICAgRnJvbSBUY2wsIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIGJlaGF2aW9yPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgaW0gW2dkSW1hZ2VDcmVhdGUgMjAwIDIwMF0KLV84MGI1MWU4X2dkSW1hZ2VQdHIKLSUgZ2RJbWFnZV9yZWRfZ2V0ICRpbSAgICAgICAgICAgICA7ICMgR2V0IGFuIGFycmF5IG1lbWJlcgotXzgwYjUxZjhfaW50X3AKLSUgZ2RJbWFnZV9yZWRfc2V0ICRpbSAwICAgICAgICAgICA7ICMgVHJ5IHRvIGNoYW5nZSBhIHJlYWQtb25seSBtZW1iZXIKLWludmFsaWQgY29tbWFuZCBuYW1lICJnZEltYWdlX3JlZF9zZXQiCi0lCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFsdGhvdWdoIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBtb2RpZnkgYXJyYXkgc3RydWN0dXJlIG1lbWJlcnMgYXMgc2hvd24sIHlvdSBjb3VsZCBkbyBzbyB1c2luZyB0aGUgU1dJRyBwb2ludGVyIGxpYnJhcnkgb3IgaGVscGVyIGZ1bmN0aW9ucy4gICBGb3IgZXhhbXBsZSw8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lIHN3aWcgLXRjbCAtbHBvaW50ZXIuaSBnZC5pCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgaW4gVGNsPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgaW0gW2dkSW1hZ2VDcmVhdGUgMjAwIDIwMF0KLSUgZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDUwIDIwMCAxMDAKLSUgZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDM1IDIxMCA3NQotJSBzZXQgciBbZ2RJbWFnZV9yZWRfZ2V0ICRpbV0KLV84MGI1MWY4X2ludF9wCi0lIHB0cnZhbHVlICRyIDAgICAgICAgICAgICAgICAgICAgOyMgR2V0IHJbMF0KLTUwCi0lIHB0cnZhbHVlICRyIDEgICAgICAgICAgICAgICAgICAgOyMgR2V0IHJbMV0KLTM1Ci0lIHB0cnNldCAkciA3MCAxICAgICAgICAgICAgICAgICAgOyMgY2hhbmdlIHJbMV0KLSUgcHRydmFsdWUgJHIgMQotNzAKLSUKLTwvcHJlPjwvYmxvY2txdW90ZT4KLU9mIGNvdXJzZSwgeW91IGNvdWxkIGFsc28gZW5kIHVwIHNob290aW5nIHlvdXJzZWxmIGluIHRoZSBmb290IGJ5IG1hbmlwdWxhdGluZyB0aGluZ3MgaW4gYml6YXJyZSB3YXlzIChTV0lHIGNlcnRhaW5seSB3b24ndCBzdG9wIHlvdSBmcm9tIGRvaW5nIHRoaXMpLjxwPgotPGEgbmFtZT0ibjM1Ij48L2E+PGgzPiBXb3JraW5nIHdpdGggRmlsZXM8L2gzPgotSW4gb3VyIHNpbXBsZSBpbnRlcmZhY2Ugd2UgaW5jbHVkZWQgdHdvIGZ1bmN0aW9ucyB0byBvcGVuIGFuZCBjbG9zZSBmaWxlcy4gICAgQSB2YXJpZXR5IG9mIGZ1bmN0aW9ucyBpbiB0aGUgZ2QgbGlicmFyeSByZXF1aXJlIHRoZSB1c2Ugb2YgYSA8dHQ+RklMRSAqPC90dD4gYXJndW1lbnQgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT5nZEltYWdlUHRyIGdkSW1hZ2VDcmVhdGVGcm9tR2lmKEZJTEUgKmZkKTsKLWdkSW1hZ2VQdHIgZ2RJbWFnZUNyZWF0ZUZyb21HZChGSUxFICppbik7Ci1nZEltYWdlUHRyIGdkSW1hZ2VDcmVhdGVGcm9tWGJtKEZJTEUgKmZkKTsKLXZvaWQgZ2RJbWFnZUdpZihnZEltYWdlUHRyIGltLCBGSUxFICpvdXQpOwotdm9pZCBnZEltYWdlR2QoZ2RJbWFnZVB0ciBpbSwgRklMRSAqb3V0KTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotQW4gaWRlYWwgc29sdXRpb24gd291bGQgYmUgdG8gdXNlIFRjbCBmaWxlIGhhbmRsZXMgYXMgPHR0PkZJTEUgKjwvdHQ+IGFyZ3VtZW50cy4gIFVuZm9ydHVuYXRlbHksIHRoaXMgcmVxdWlyZXMgeW91IHRvIHVucmF2ZWwgZmlsZSBoYW5kbGVzIGFuZCBjb252ZXJ0IHRoZW0gaW50byB0aGUgY29ycmVzcG9uZGluZyA8dHQ+RklMRSAqPC90dD4gc3RydWN0dXJlLS1hIHRhc2sgdGhhdCBpcyBub3QgZWFzaWx5IGFjY29tcGxpc2hlZC4gICBGb3IgdGhlIHB1cnBvc2VzIG9mIHF1aWNrbHkgbWFraW5nIGFuIGludGVyZmFjZSwgaXQgaXMgb2Z0ZW4gZWFzaWVyIHRvIHNpbXBseSBpbmNsdWRlIGEgZmV3IHN1cHBvcnRpbmcgZnVuY3Rpb25zIHN1Y2ggYXMgZm9wZW4oKSBhbmQgZmNsb3NlKCkuICBUaGVzZSBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCBkaXJlY3RseSB0byBjcmVhdGUgZmlsZXMgZm9yIHVzZSB3aXRoIHRoZSBsaWJyYXJ5LiAgIEFsdGhvdWdoIGZpbGVzIGNyZWF0ZWQgd2l0aCB0aGVzZSBmdW5jdGlvbnMgYXJlIG5vdCB0aGUgc2FtZSBhcyBUY2wgZmlsZSBoYW5kbGVzLCB0aGV5IGFyZSBzdGlsbCBlYXN5IHRvIHVzZS48cD4KLTxhIG5hbWU9Im4zNiI+PC9hPjxoMz4gV3JhcHBpbmcgTWFjcm9zPC9oMz4KLVRoZSBnZCBsaWJyYXJ5IHByb3ZpZGVzIGEgY29sbGVjdGlvbiBvZiBtYWNyb3MgZm9yIGFjY2Vzc2luZyB2YXJpb3VzIGltYWdlIGF0dHJpYnV0ZXMuICBSYXRoZXIgdGhhbiBtYW5pcHVsYXRpbmcgdGhlIEMgZGF0YSBzdHJ1Y3R1cmUgZGlyZWN0bHksICB1c2VycyBhcmUgYWR2aXNlZCB0byB1c2UgdGhlc2UgbWFjcm9zLjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiNkZWZpbmUgZ2RJbWFnZVNYKGltKSAoKGltKS0mZ3Q7c3gpCi0jZGVmaW5lIGdkSW1hZ2VTWShpbSkgKChpbSktJmd0O3N5KQotI2RlZmluZSBnZEltYWdlQ29sb3JzVG90YWwoaW0pICgoaW0pLSZndDtjb2xvcnNUb3RhbCkKLSNkZWZpbmUgZ2RJbWFnZVJlZChpbSwgYykgKChpbSktJmd0O3JlZFsoYyldKQotI2RlZmluZSBnZEltYWdlR3JlZW4oaW0sIGMpICgoaW0pLSZndDtncmVlblsoYyldKQotI2RlZmluZSBnZEltYWdlQmx1ZShpbSwgYykgKChpbSktJmd0O2JsdWVbKGMpXSkKLSNkZWZpbmUgZ2RJbWFnZUdldFRyYW5zcGFyZW50KGltKSAoKGltKS0mZ3Q7dHJhbnNwYXJlbnQpCi0jZGVmaW5lIGdkSW1hZ2VHZXRJbnRlcmxhY2VkKGltKSAoKGltKS0mZ3Q7aW50ZXJsYWNlKQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1TV0lHIHdvbid0IHdyYXAgdGhlc2UgbWFjcm9zIGRpcmVjdGx5LCBidXQgeW91IGNhbiB3cml0ZSBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMgdG8gYWNjb21wbGlzaCB0aGUgc2FtZSB0aGluZy4gPHA+Ci08YmxvY2txdW90ZT48cHJlPgotJW1vZHVsZSBnZAotJXsKLSNpbmNsdWRlICZsdDtnZC5oJmd0OwotJX0KLQotLy8gSnVzdCBncmFiIHRoZSBnZC5oIGhlYWRlciBmaWxlCi0laW5jbHVkZSBnZC5oCi0KLS8vIENsZWFyIHRoZSBwcmV2aW91cyBtYWNybyBkZWZpbml0aW9ucyBpbmNsdWRlZCBpbiBnZC5oCi0jdW5kZWYgZ2RJbWFnZVNYCi0jdW5kZWYgZ2RJbWFnZVNZCi0jdW5kZWYgZ2RJbWFnZUNvbG9yc1RvdGFsCi0jdW5kZWYgZ2RJbWFnZVJlZAotI3VuZGVmIGdkSW1hZ2VHcmVlbgotI3VuZGVmIGdkQmx1ZQotI3VuZGVmIGdkSW1hZ2VHZXRUcmFuc3BhcmVudAotI3VuZGVmIGdkSW1hZ2VHZXRJbnRlcmxhY2VkCi0KLS8vIFByb3ZpZGUgU1dJRyB3aXRoIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIHRoZSBtYWNyb3MKLWludCBnZEltYWdlU1goZ2RJbWFnZVB0ciBpbSk7Ci1pbnQgZ2RJbWFnZVNZKGdkSW1hZ2VQdHIgaW0pOwotaW50IGdkSW1hZ2VDb2xvcnNUb3RhbChnZEltYWdlUHRyIGltKTsKLWludCBnZEltYWdlUmVkKGdkSW1hZ2VQdHIgaW0sIGludCBjKTsKLWludCBnZEltYWdlR3JlZW4oZ2RJbWFnZVB0ciBpbSwgaW50IGMpOwotaW50IGdkSW1hZ2VCbHVlKGdkSW1hZ2VQdHIgaW0sIGludCBjKTsKLWludCBnZEltYWdlR2V0VHJhbnNwYXJlbnQoZ2RJbWFnZVB0ciBpbSk7Ci1pbnQgZ2RJbWFnZUdldEludGVybGFjZWQoZ2RJbWFnZVB0ciBpbSk7Ci0KLS8vIFBsdXMgYSBmZXcgZmlsZSBJL08gZnVuY3Rpb25zCi1GSUxFICpmb3BlbihjaGFyICpmaWxlbmFtZSwgY2hhciAqbW9kZSk7Ci12b2lkIGZjbG9zZShGSUxFICpmKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotV2l0aGluIFRjbCwgdGhlc2UgbWFjcm9zIGNhbiBub3cgYmUgdXNlZCBqdXN0IGxpa2Ugb3JkaW5hcnkgZnVuY3Rpb25zPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSBzZXQgaW0gW2dkSW1hZ2VDcmVhdGUgMjAwIDIwMF0KLSUgZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDIzMyA1MCA0MAotJSBnZEltYWdlU1ggJGltCi0yMDAKLSUgZ2RJbWFnZUNvbG9yc1RvdGFsICRpbQotMQotJQotPC9wcmU+PC9ibG9ja3F1b3RlPgotPGEgbmFtZT0ibjM3Ij48L2E+PGgzPiBXcmFwcGluZyB0aGUgRm9udHM8L2gzPgotZ2QgaXMgcGFja2FnZWQgd2l0aCBmaXZlIGRpZmZlcmVudCBmb250cyB0aGF0IGFyZSB1c2VkIHdpdGggZnVuY3Rpb25zIHN1Y2ggYXM8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT52b2lkCi1nZEltYWdlQ2hhcihnZEltYWdlUHRyIGltLCBnZEZvbnRQdHIgZiwgaW50IHgsIGludCB5LCBpbnQgYywgaW50IGNvbG9yKTsKLTwvcHJlPjwvYmxvY2txdW90ZT4KLTxwPgotd2hlcmUgZ2RGb250UHRyIGlzIGEgcG9pbnRlciB0byBhIGZvbnQgc3RydWN0dXJlLiAgICAgRWFjaCBmb250IGlzIGRlZmluZWQgYnkgYSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBkZWZpbmVkIGluIGEgc2VwYXJhdGUgaGVhZGVyIGZpbGUgc3VjaCBhcyB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jaWZuZGVmIEdERk9OVFNfSAotI2RlZmluZSBHREZPTlRTX0ggMQotCi0vKiBnZGZvbnRzLmg6IGJyaW5ncyBpbiB0aGUgc21hbGxlciBvZiB0aGUgdHdvIHByb3ZpZGVkIGZvbnRzLgotICAgICAgICBBbHNvIGxpbmsgd2l0aCBnZGZvbnRzLmMuICovCi0KLSNpbmNsdWRlICJnZC5oIgotCi0vKiA2eDEyIGZvbnQgZGVyaXZlZCBmcm9tIGEgcHVibGljIGRvbWFpbiBmb250IGluIHRoZSBYCi0gICAgICAgIGRpc3RyaWJ1dGlvbi4gT25seSBjb250YWlucyB0aGUgOTYgc3RhbmRhcmQgYXNjaWkgY2hhcmFjdGVycywKLSAgICAgICAgc29ycnkuIEZlZWwgZnJlZSB0byBpbXByb3ZlIG9uIHRoaXMuICovCi0KLWV4dGVybiBnZEZvbnRQdHIgZ2RGb250U21hbGw7Ci0KLSNlbmRpZgotPC9wcmU+PC9ibG9ja3F1b3RlPgotPHA+Ci1UbyBtYWtlIHRoZSBidWlsdC1pbiBmb250cyBhdmFpbGFibGUgdG8gb3VyIFRjbCBpbnRlcmZhY2UsIHlvdSBuZWVkIHRvIG1ha2UgdGhlIGZvbnQgcG9pbnRlcnMgYXZhaWxhYmxlLiAgU2luY2UgdGhlIGZvbnQgaGVhZGVyIGZpbGVzIGFyZSBmYWlybHkgc2ltcGxlLCB0aGlzIGNhbiBiZSBkb25lIGJ5IHNpbXBseSBpbmNsdWRpbmcgdGhlIGhlYWRlciBmaWxlcyBpbiBvdXIgU1dJRyBpbnRlcmZhY2Ugc3VjaCBhcyBmb2xsb3dzIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBNYWtlIHRoZSBnZCBmb250cyBhdmFpbGFibGUgYXMgcmVhZC1vbmx5IHZhcmlhYmxlcwotJXJlYWRvbmx5Ci0laW5jbHVkZSAiZ2Rmb250dC5oIgotJWluY2x1ZGUgImdkZm9udHMuaCIKLSVpbmNsdWRlICJnZGZvbnRtYi5oIgotJWluY2x1ZGUgImdkZm9udGwuaCIKLSVpbmNsdWRlICJnZGZvbnRnLmgiCi0lcmVhZHdyaXRlCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoZSBmYWN0IHRoYXQgdGhlIGZvbnRzIGFyZSBnbG9iYWwgdmFyaWFibGVzIHByZXNlbnRzIHVzIHdpdGggYSBzbGlnaHQgY29tcGxpY2F0aW9uLiAgIFNXSUcgbm9ybWFsbHkgdHJpZXMgdG8gdXNlIHRoZSBUY2wgdmFyaWFibGUgbGlua2luZyBtZWNoYW5pc20sIGJ1dCB0aGlzIG9ubHkgc3VwcG9ydHMgdGhlIGJhc2ljIGRhdGF0eXBlcyBvZiA8dHQ+ZG91YmxlPC90dD4sIDx0dD5pbnQ8L3R0PiwgYW5kIDx0dD5jaGFyICo8L3R0Pi4gIFRvIGFjY2VzcyBvdGhlciB0eXBlcyAoaW5jbHVkaW5nIHBvaW50ZXJzKSwgU1dJRyBnZW5lcmF0ZXMgYWNjZXNzb3IgZnVuY3Rpb25zLiAgVGh1cywgaW4gVGNsLCB0aGVzZSB2YXJpYWJsZXMgYXJlIGFjY2Vzc2VkIGFzIGZvbGxvd3MgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgZ2RGb250VGlueV9nZXQKLV80MDBmNjk1Y19nZEZvbnRQdHIKLSUgZ2RJbWFnZUNoYXIgJGltIFtnZEZvbnRUaW55X2dldF0gMjAgMjAgQSAkd2hpdGUKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotU2luY2UgdGhpcyBjYW4gYmUgYSBsaXR0bGUgYXdrd2FyZCwgaXQgbWF5IG1ha2UgbW9yZSBzZW5zZSB0byB3cml0ZSBhIHNpbXBsZSBUY2wgc2NyaXB0IHRvIGZpeCB0aGUgcHJvYmxlbTxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgZ2Rmb250cy50Y2wgOiBFeHRyYWN0IHRoZSBmb250cyBpbnRvIFRjbCB2YXJpYWJsZXMKLXNldCBnZEZvbnRUaW55ICAgICAgIFtnZEZvbnRUaW55X2dldF0KLXNldCBnZEZvbnRTbWFsbCAgICAgIFtnZEZvbnRTbWFsbF9nZXRdCi1zZXQgZ2RGb250TWVkaXVtQm9sZCBbZ2RGb250TWVkaXVtQm9sZF9nZXRdCi1zZXQgZ2RGb250TGFyZ2UgICAgICBbZ2RGb250TGFyZ2VfZ2V0XQotc2V0IGdkRm9udEdpYW50ICAgICAgW2dkRm9udEdpYW50X2dldF0KLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotTm93LCB5b3Ugd291bGQganVzdCB3cml0ZSB0aGUgZm9sbG93aW5nIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIFNpbXBsZSBnZCBzY3JpcHQKLWxvYWQgLi9nZC5zbwotc291cmNlIGdkZm9udHMudGNsCi0KLXNldCBpbSBbZ2RJbWFnZUNyZWF0ZSAyMDAgMjAwXQotc2V0IGJsYWNrIFtnZEltYWdlQ29sb3JBbGxvY2F0ZSAkaW0gMCAwIDBdCi1zZXQgd2hpdGUgW2dkSW1hZ2VDb2xvckFsbG9jYXRlICRpbSAyNTUgMjU1IDI1NV0KLQotIyBEcmF3IHNvbWUgdGV4dAotZ2RJbWFnZVN0cmluZyAkaW0gJGdkRm9udExhcmdlIDEwIDUwICJIZWxsbyBXb3JsZCIgJHdoaXRlCi0KLSMgV3JpdGUgdGhlIGltYWdlCi1zZXQgb3V0IFtmb3BlbiB0ZXN0LmdpZiB3Yl0KLWdkSW1hZ2VHaWYgJGltICRvdXQKLWZjbG9zZSAkb3V0Ci0KLSMgQ2xlYW4gdXAKLWdkSW1hZ2VEZXN0cm95ICRpbQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JZiB3cml0aW5nIGEgbGl0dGxlIFRjbCBzY3JpcHQgdG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0gaXNuJ3QgeW91ciBwcmVmZXJlbmNlLCBpdCdzIGFsc28gcG9zc2libGUgdG8gY3JlYXRlIHRoZSB2YXJpYWJsZXMgd2l0aGluIHRoZSBTV0lHIG1vZHVsZS4gIEZvciBleGFtcGxlIDo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4vLyBDcmVhdGUgc29tZSBUY2wgdmFyaWFibGVzIGZvciB0aGUgZm9udHNzdGFydHVwCi0jaWZkZWYgU1dJR1RDTAotJWluaXQgJXsKLXsKLSAgICBjaGFyIHRlbXBbNjRdOwotICAgIFNXSUdfTWFrZVB0cih0ZW1wLCBnZEZvbnRUaW55LCAiX2dkRm9udFB0ciIpOwotICAgIFRjbF9TZXRWYXIoaW50ZXJwLCJnZEZvbnRUaW55Iix0ZW1wLDApOwotICAgIFNXSUdfTWFrZVB0cih0ZW1wLCBnZEZvbnRTbWFsbCwgIl9nZEZvbnRQdHIiKTsKLSAgICBUY2xfU2V0VmFyKGludGVycCwiZ2RGb250U21hbGwiLHRlbXAsMCk7Ci0gICAgU1dJR19NYWtlUHRyKHRlbXAsIGdkRm9udE1lZGl1bUJvbGQsICJfZ2RGb250UHRyIik7Ci0gICAgVGNsX1NldFZhcihpbnRlcnAsImdkRm9udE1lZGl1bUJvbGQiLHRlbXAsMCk7Ci0gICAgU1dJR19NYWtlUHRyKHRlbXAsIGdkRm9udExhcmdlLCAiX2dkRm9udFB0ciIpOwotICAgIFRjbF9TZXRWYXIoaW50ZXJwLCJnZEZvbnRMYXJnZSIsdGVtcCwwKTsKLSAgICBTV0lHX01ha2VQdHIodGVtcCwgZ2RGb250R2lhbnQsICJfZ2RGb250UHRyIik7Ci0gICAgVGNsX1NldFZhcihpbnRlcnAsImdkRm9udEdpYW50Iix0ZW1wLDApOwotfQotJX0KLSNlbmRpZgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08dHQ+U1dJR19NYWtlUHRyKCk8L3R0PiBpcyBhIGZ1bmN0aW9uIFNXSUcgdXNlcyB0byBjcmVhdGUgcG9pbnRlciB2YXJpYWJsZXMuICAgU2luY2UgdGhpcyBhcHByb2FjaCB3b3VsZCBvbmx5IHdvcmsgd2l0aCBUY2wsIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGlzIHVzZWQgdG8gbWFrZSBzdXJlIHRoaXMgY29kZSBpc24ndCBpbmNsdWRlZCB3aGVuIHByb2R1Y2luZyBpbnRlcmZhY2VzIGZvciBvdGhlciBsYW5ndWFnZXMgKDx0dD5TV0lHVENMPC90dD4gaXMgYSBzeW1ib2wgZGVmaW5lZCBieSBTV0lHIHdoZW4gaXQgaXMgcnVubmluZyBpbiBUY2wgbW9kZSkuIDxwPgotPGEgbmFtZT0ibjM4Ij48L2E+PGgzPiBDcmVhdGluZyBQb2ludHM8L2gzPgotRmluYWxseSwgdGhlIGdkIGxpYnJhcnkgY29udGFpbnMgYSBmZXcgZnVuY3Rpb25zIGZvciBkcmF3aW5nIHBvbHlnb25zIHN1Y2ggYXMgPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dm9pZCBnZEltYWdlUG9seWdvbihnZEltYWdlUHRyIGltLCBnZFBvaW50UHRyIHAsIGludCBuLCBpbnQgYyk7Ci12b2lkIGdkSW1hZ2VGaWxsZWRQb2x5Z29uKGdkSW1hZ2VQdHIgaW0sIGdkUG9pbnRQdHIgcCwgaW50IG4sIGludCBjKTsKLQotPC9wcmU+PC9ibG9ja3F1b3RlPgotVGhlc2UgZnVuY3Rpb25zIHJlcXVpcmUgYW4gYXJyYXkgb2YgcG9pbnRzIHRvIGJlIHBhc3NlZCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LiAgIFBvaW50cyBhcmUgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+dHlwZWRlZiBzdHJ1Y3QgewotICAgICAgICBpbnQgeCwgeTsKLX0gZ2RQb2ludCwgKmdkUG9pbnRQdHI7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFzIGlzLCBvdXIgVGNsIGludGVyZmFjZSBoYXMgbm8gbWVjaGFuaXNtIGZvciBjcmVhdGluZyBhcnJheXMgb2YgcG9pbnRzIHNvIHdlIHdpbGwgbmVlZCB0byBwcm92aWRlIHNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgdGhpcy4gICBIZXJlJ3Mgb25lIHdheSB0byBkbyBpdDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIHBvaW50cwotJWlubGluZSAlewotICAgZ2RQb2ludCAqbmV3X3BvaW50cyhpbnQgbnBvaW50cykgewotICAgICAgICByZXR1cm4gKGdkUG9pbnQgKikgbWFsbG9jKG5wb2ludHMqc2l6ZW9mKGdkUG9pbnQpKTsKLSAgIH0KLSAgIHZvaWQgZGVsZXRlX3BvaW50cyhnZFBvaW50ICpwKSB7Ci0gICAgICAgIGZyZWUocCk7Ci0gICB9Ci0gICB2b2lkIHNldF9wb2ludChnZFBvaW50ICpwLCBpbnQgbiwgaW50IHgsIGludCB5KSB7Ci0gICAgICAgIHBbbl0ueCA9IHg7Ci0gICAgICAgIHBbbl0ueSA9IHk7Ci0gICB9Ci0lfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1Gcm9tIFRjbCwgcG9pbnRzIGNhbiBub3cgYmUgY3JlYXRlZCBhbmQgbWFuaXB1bGF0ZWQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBDcmVhdGUgYW4gYXJyYXkgb2YgcG9pbnRzCi1zZXQgcCBbbmV3X3BvaW50cyA0XQotc2V0X3BvaW50ICRwIDAgMTAgMjAKLXNldF9wb2ludCAkcCAxIDE1MCAzMAotc2V0X3BvaW50ICRwIDIgOTUgMTUwCi1zZXRfcG9pbnQgJHAgMyAyMCA3MAotCi0jIERyYXcgYSBwb2x5Z29uCi1nZEltYWdlUG9seWdvbiAkaW0gJHAgNCAkd2hpdGUKLQotIyBEZWxldGUgdGhlIHBvaW50cwotZGVsZXRlX3BvaW50cyAkcAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuMzkiPjwvYT48aDM+IFVzaW5nIHRoZSBNb2R1bGU8L2gzPgotV2l0aCBhIGp1c3QgYSBsaXR0bGUgd29yaywgdGhlIGdkIG1vZHVsZSBpcyBub3cgZnVsbHkgZnVuY3Rpb25hbCBhbmQgcmVhZHkgdG8gYmUgdXNlZC4gICBGcm9tIFRjbCwgIHlvdSBjYW4gaW50ZXJhY3RpdmVseSBwbGF5IHdpdGggbGlicmFyeSBhbmQgdGVzdCBvdXQgaXRzIHZhcmlvdXMgZnVuY3Rpb25zLiAgSW4gZmFjdCB5b3UgY2FuIGV2ZW4gd3JpdGUgYSBzaW1wbGUgVGsgc2NyaXB0IHRvIHdhdGNoIHRoZSBvdXRwdXQgZmlsZSBhbmQgZGlzcGxheSBpbWFnZXMgaW4gYSBjYW52YXMuICBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyB3YXRjaGdpZi50Y2wgOiBQZXJpb2RpY2FsbHkgcG9sbCBhIGZpbGUgYW5kIGRpc3BsYXkgaW4gdGhlIGNhbnZhcwotc2V0IGF0aW1lICIiCi1zZXQgY2FudmFzaW5pdCAwCi1zZXQgY3VycmVudF9pbWcgIiIKLQotcHJvYyB3YXRjaGdpZiB7Zm5hbWV9IHsKLSAgICBnbG9iYWwgYXRpbWUgZmlsZW5hbWUKLSAgICBzZXQgZmlsZW5hbWUgJGZuYW1lCi0gICAgc2V0IG5ld2F0aW1lICIiCi0gICAgY2F0Y2gge3NldCBuZXdhdGltZSBbZmlsZSBtdGltZSAkZmlsZW5hbWVdfQotICAgIGlmIHsgJG5ld2F0aW1lICE9ICRhdGltZSB9IHsKLSAgICAgICAgc2V0IGF0aW1lICRuZXdhdGltZQotICAgICAgICB1cGRhdGVfaW1hZ2UKLSAgICB9Ci0gICAgYWZ0ZXIgMTAwMCAid2F0Y2hnaWYgJGZpbGVuYW1lIgotfQotCi1wcm9jIHVwZGF0ZV9pbWFnZSB7fSB7Ci0gICAgZ2xvYmFsIGNhbnZhc2luaXQgY2FudmFzIGN1cnJlbnRfaW1nIGZpbGVuYW1lCi0gICAgc2V0IGltZyBbaW1hZ2UgY3JlYXRlIHBob3RvIC1maWxlICRmaWxlbmFtZV0KLSAgICBpZiB7JGNhbnZhc2luaXQgPT0gMCB9IHsKLSAgICAgICAgY2FudmFzIC5pbWcKLSAgICAgICAgcGFjayAuaW1nCi0gICAgICAgIHNldCBjYW52YXNpbml0IDEKLSAgICB9IGVsc2UgewotICAgICAgICBpbWFnZSBkZWxldGUgJGN1cnJlbnRfaW1nCi0gICAgfQotICAgIC5pbWcgZGVsZXRlIGltYWdlZGF0YQotICAgIHNldCB3aWR0aCBbaW1hZ2Ugd2lkdGggJGltZ10KLSAgICBzZXQgaGVpZ2h0IFtpbWFnZSBoZWlnaHQgJGltZ10KLSAgICAuaW1nIGNvbmZpZ3VyZSAtd2lkdGggJHdpZHRoIC1oZWlnaHQgJGhlaWdodAotICAgIC5pbWcgY3JlYXRlIGltYWdlIDAgMCAtaW1hZ2UgJGltZyAtYW5jaG9yIG53IC10YWcgaW1hZ2VkYXRhCi0gICAgc2V0IGN1cnJlbnRfaW1nICRpbWcKLX0KLQotcHJvYyB3cml0ZSB7aW19IHsKLSAgICBnbG9iYWwgZmlsZW5hbWUKLSAgICBzZXQgb3V0IFtmb3BlbiAkZmlsZW5hbWUgd2JdCi0gICAgZ2RJbWFnZUdpZiAkaW0gJG91dAotICAgIGZjbG9zZSAkb3V0Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdyBhbiBpbnRlcmFjdGl2ZSBnZCBzZXNzaW9uPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+Jmd0OyB3aXNoCi0lIGxvYWQgLi9nZC5zbwotJSBzb3VyY2UgZ2Rmb250cy50Y2wKLSUgc291cmNlIHdhdGNoZ2lmLnRjbAotJSB3YXRjaGdpZiB0ZXN0LmdpZiAgICAgICAgICAgICAgICA7IyBXYXRjaCBhIGZpbGUgZm9yIGNoYW5nZXMgYW5kIGRpc3BsYXkKLSUgc2V0IGltIFtnZEltYWdlQ3JlYXRlIDMwMCAzMDBdCi1fODE3ZDEwOF9nZEltYWdlUHRyCi0lIHNldCBibGFjayBbZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDAgMCAwXQotMAotJSBzZXQgd2hpdGUgW2dkSW1hZ2VDb2xvckFsbG9jYXRlICRpbSAyNTUgMjU1IDI1NV0KLTEKLSUgZ2RJbWFnZUxpbmUgJGltIDIwIDIwIDI1MCA3MCAkd2hpdGUKLSUgZ2RJbWFnZVN0cmluZyAkaW0gJGdkRm9udExhcmdlIDIwIDcwICJIZWxsbyBXb3JsZCIgJHdoaXRlCi0lIHdyaXRlICRpbSAgICAgICAKLSUgZ2RJbWFnZUFyYyAkaW0gMTAwIDEwMCA1MCAyMCAwIDI3MCAkd2hpdGUKLSUgd3JpdGUgJGltICAgICAgICAgICAgICAgICAgIAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JcyB0aGlzIGV4YW1wbGUsIHZhcmlvdXMgZ2QgbGlicmFyeSBmdW5jdGlvbnMgYXJlIGlzc3VlZCBpbnRlcmFjdGl2ZWx5LiAgV2hlbmV2ZXIgeW91IHdhbnQgdG8gc2VlIHRoZSBjdXJyZW50IGltYWdlLCBzaW1wbHkgdHlwZSBgPHR0PndyaXRlICRpbTwvdHQ+JyBhbmQgdGhlIGltYWdlIGN1cnJlbnRseSBkaXNwbGF5ZWQgaW4gdGhlIGNhbnZhcyB3aWxsIGJlIHVwZGF0ZWQuICAgVGhlIGludGVyZmFjZSBpcyBtaW5pbWFsLCBidXQgeW91IGNhbiB1c2UgaXQgdG8gcGxheSB3aXRoIHRoZSBsaWJyYXJ5LCBzZWUgaG93IGl0IHdvcmtzLCBhbmQgZXZlbiB3cml0ZSBsaXR0bGUgVGNsIHNjcmlwdHMgdG8gdHJ5IHRoaW5ncyBvdXQuPHA+Ci08YSBuYW1lPSJuNDAiPjwvYT48aDM+IFdyaXRpbmcgVGVzdCBTY3JpcHRzPC9oMz4KLVdoZXJlIHRoaXMgYXBwcm9hY2ggcmVhbGx5IHNoaW5lcyBpcyB0aGUgYWJpbGl0eSB0byB3cml0ZSBmbGV4aWJsZSB0ZXN0IHNjcmlwdHMuICBXaGVuIGRldmVsb3BpbmcgQyBsaWJyYXJpZXMsIEkgYWx3YXlzIHNlZW0gdG8gZmluZCBteXNlbGYgc3BlbmRpbmcgYSBodWdlIGFtb3VudCBvZiB0aW1lIHdyaXRpbmcgdGVzdCBwcm9ncmFtcyB0byBleGVyY2lzZSB2YXJpb3VzIHBhcnRzIG9mIHRoZSBsaWJyYXJ5LiAgIEFsdGhvdWdoIEkgY291bGQgd3JpdGUgYSBjb2xsZWN0aW9uIG9mIEMgcHJvZ3JhbXMgdG8gZG8gdGhpcywgdXNpbmcgVGNsIGlzIG9mdGVuIG11Y2ggbW9yZSBmbGV4aWJsZS4gICBTdXBwb3NlIHlvdSB3YW50ZWQgdG8gdGVzdCB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIGdkIGxpYnJhcnkuICBUbyBkbyB0aGlzLCB5b3UgbWlnaHQgd3JpdGUgYSBnZW5lcmljIHRlc3Qgc2NyaXB0IHN1Y2ggYXMgdGhlIGZvbGxvd2luZzxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgZ2R0ZXN0LnRjbCA6IEdlbmVyaWMgZ2QgdGVzdCBzY3JpcHQKLSMKLSMgVGhpcyBzY3JpcHRzIHNldHMgdXAgc29tZSBkZWZhdWx0IHZhbHVlcywgY3JlYXRlcyBhbiBpbWFnZQotIyBhbmQgZXhlY3V0ZXMgYSB0ZXN0IHNjcmlwdC4KLSMKLSMgdXNhZ2UgOiB0Y2xzaCBnZHRlc3QudGNsIHNjcmlwdC50Y2wKLQotbG9hZCAuL2dkLnNvCi1zb3VyY2UgZ2Rmb250cy50Y2wKLQotIyBDb25maWd1cmF0aW9uIG9wdGlvbnMKLQotc2V0IHdpZHRoIDQwMAotc2V0IGhlaWdodCA0MDAKLQotIyBDcmVhdGUgYW4gaW1hZ2UKLXNldCBpbSBbZ2RJbWFnZUNyZWF0ZSAkd2lkdGggJGhlaWdodF0KLQotIyBDcmVhdGUgc29tZSBjb2xvcnMKLXNldCBibGFjayAgIFtnZEltYWdlQ29sb3JBbGxvY2F0ZSAkaW0gMCAwIDBdCi1zZXQgd2hpdGUgICBbZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDI1NSAyNTUgMjU1XQotc2V0IHJlZCAgICAgW2dkSW1hZ2VDb2xvckFsbG9jYXRlICRpbSAyNTUgMCAwIF0KLXNldCBncmVlbiAgIFtnZEltYWdlQ29sb3JBbGxvY2F0ZSAkaW0gMCAyNTUgMCBdCi1zZXQgYmx1ZSAgICBbZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDAgMCAyNTVdCi1zZXQgeWVsbG93ICBbZ2RJbWFnZUNvbG9yQWxsb2NhdGUgJGltIDI1NSAyNTUgMF0KLXNldCBjeWFuICAgIFtnZEltYWdlQ29sb3JBbGxvY2F0ZSAkaW0gMCAyNTUgMjU1XQotc2V0IG1hZ2VudGEgW2dkSW1hZ2VDb2xvckFsbG9jYXRlICRpbSAyNTUgMCAyNTVdCi0KLSMgR2V0IHRoZSBmaWxlbmFtZSBvZiB0aGUgdGVzdCBzY3JpcHQKLXNldCBmaWxlbmFtZSBbbGluZGV4ICRhcmd2IDBdCi0KLSMgUnVuIHRoZSB0ZXN0IHNjcmlwdAotc291cmNlICRmaWxlbmFtZQotCi0jIE91dHB1dCB0aGUgaW1hZ2UKLWFwcGVuZCBmaWxlbmFtZSAiLmdpZiIKLXNldCBvdXQgW2ZvcGVuICRmaWxlbmFtZSB3Yl0KLWdkSW1hZ2VHaWYgJGltICRvdXQKLWZjbG9zZSAkb3V0Ci0KLXB1dHMgIkltYWdlIHdyaXR0ZW4gdG8gJGZpbGVuYW1lIgotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLVRoaXMgc2NyaXB0IHNpbXBseSBzZXRzIHVwIGFuIGltYWdlIGFuZCBzb21lIGRlZmF1bHQgdmFsdWVzLiAgVG8gdXNlIGl0LCAgeW91IHdvdWxkIHdyaXRlIGEgc2hvcnQgdGVzdCBzY3JpcHQgc3VjaCBhczxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiMgbGluZXMudGNsIDogRHJhdyBzb21lIGxpbmVzCi1nZEltYWdlTGluZSAkaW0gMTAgMTAgMzAwIDUwICR3aGl0ZQotZ2RJbWFnZUxpbmUgJGltIDUwIDIwMCAyOTAgMTAgJHJlZAotLi4uCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08cD4KLWFuZCBydW4gaXQgYXMgZm9sbG93cyA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+JSB0Y2xzaCBnZHRlc3QudGNsIGxpbmVzLnRjbAotSW1hZ2Ugd3JpdHRlbiB0byBsaW5lcy50Y2wuZ2lmCi0lIAotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1GaW5hbGx5LCBpZiB5b3Ugd2FudGVkIHRvIGRldmVsb3AgYW4gZW50aXJlIHRlc3Rpbmcgc3VpdGUsIHlvdSBjYW4gd3JpdGUgYSBjb2xsZWN0aW9uIG9mIHNjcmlwdHMgdG8gZXhlcmNpc2UgdmFyaW91cyBmZWF0dXJlcyBhbG9uZyB3aXRoIGEgc2ltcGxlIHRlc3RpbmcgcHJvZ3JhbS48cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4jIGdkIHRlc3Rpbmcgc2NyaXB0Ci0KLXNldCBmaWxlcyB7IGxpbmVzLnRjbCBhcmNzLnRjbCBmb250cy50Y2wgZmlsbC50Y2wgcG9seWdvbnMudGNsIC4uLiB9Ci0KLWZvcmVhY2ggZiAkZmlsZXMgewotICAgIHB1dHMgLW5vbmV3bGluZSAiVGVzdGluZyAkZiAuLi4gIgotICAgIGlmIFtjYXRjaCB7c2V0IG1zZyBbZXhlYyB0Y2xzaCBnZHRlc3QudGNsICRmIF19XSB7Ci0gICAgIHNldCBtc2cgIkZhaWxlZCEiCi0gICAgfQotICAgIHB1dHMgJG1zZwotfQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1JbiB0aGUgdGVzdCBwcm9ncmFtLCBlYWNoIHRlc3QgaXMgcnVuIGFzIGEgc2VwYXJhdGUgcHJvY2VzcyB1c2luZyBgZXhlYycuICAgIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgdGhhdCBpZiBhIHRlc3QgZmFpbHMgd2l0aCBhbiBpbnRlcm5hbCBlcnJvciAoc3VjaCBhcyBhIHNlZ21lbnRhdGlvbiBmYXVsdCksIGl0IHdvbid0IGFmZmVjdCBhbnkgb2YgdGhlIG90aGVyIHRlc3RzIChpbiBvdGhlciB3b3JkcywgdGVzdGluZyBjYW4gcHJvY2VlZCBldmVuIGlmIGluZGl2aWR1YWwgcGFydHMgZmFpbCkuICAgV2hlbiBydW5uaW5nIHRoZSB0ZXN0LCB5b3Ugd2lsbCBub3cgZ2V0IG91dHB1dCBzdWNoIGFzIHRoZSBmb2xsb3dpbmcgOjxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPiUgdGNsc2ggdGVzdC50Y2wKLVRlc3RpbmcgbGluZXMudGNsIC4uLiBJbWFnZSB3cml0dGVuIHRvIGxpbmVzLnRjbC5naWYKLVRlc3RpbmcgYXJjcy50Y2wgLi4uIEltYWdlIHdyaXR0ZW4gdG8gYXJjLnRjbC5naWYKLVRlc3RpbmcgZm9udHMudGNsIC4uLiBJbWFnZSB3cml0dGVuIHRvIGZvbnRzLnRjbC5naWYKLVRlc3RpbmcgZmlsbC50Y2wgLi4uIEZhaWxlZCEKLVRlc3RpbmcgcG9seWdvbnMudGNsIC4uLiBJbWFnZSB3cml0dGVuIHRvIHBvbHlnb25zLnRjbC5naWYKLSUgCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLVdoaWxlIHNpbXBsZSwgeW91IGNhbiBpbWFnaW5lIHdyaXRpbmcgYSBsYXJnZSBjb2xsZWN0aW9uIG9mIHRlc3Qgc2NyaXB0cyB0byBleGVyY2lzZSB2YXJpb3VzIGZlYXR1cmVzIG9mIGEgbGlicmFyeS4gICAgQnkgd3JpdGluZyB0aGUgdGVzdCBzY3JpcHRzIGluIFRjbCwgdGhleSBhcmUgZWFzeSB0byB3cml0ZSBhbmQgZWFzeSB0byBtb2RpZnkuICAgSW4gZmFjdCwgYSBwb3dlcmZ1bCB0ZXN0aW5nIHN1aXRlIGNhbiBiZSBkZXZlbG9wZWQgd2l0aG91dCBoYXZpbmcgdG8gd3JpdGUgYWRkaXRpb25hbCBwcm9ncmFtcyBpbiBDL0MrKy48cD4KLTxhIG5hbWU9Im40MSI+PC9hPjxoMz4gQnVpbGRpbmcgYW4gT2JqZWN0IE9yaWVudGVkIEludGVyZmFjZSA8L2gzPgotT25lIG9mIHRoZSBpbnRlcmVzdGluZyBwYXJ0cyBvZiB1c2luZyBTV0lHIGlzIHRoYXQgdGhlcmUgaXMgYWxtb3N0IGFsd2F5cyBtb3JlIHRoYW4gb25lIHdheSB0byBkbyB0aGluZ3MuICBJbiB0aGUgZ2QgZXhhbXBsZSwgYSBzdHJhaWdodGZvcndhcmQgVGNsIGludGVyZmFjZSBoYXMgYmVlbiBidWlsdCB0byBDIGxpYnJhcnkuICBGcm9tIFRjbCwgdGhlIGxpYnJhcnkgd29ya3MgaW4gZXNzZW50aWFsbHkgdGhlIHNhbWUgbWFubmVyIGFzIGl0IGRvZXMgaW4gQy4gICAgSG93ZXZlciwgaXQncyBhbHNvIHBvc3NpYmxlIHRvIHBhY2thZ2UgbGlicmFyaWVzIGluIGFuIGVudGlyZWx5IGRpZmZlcmVudCBtYW5uZXIuICAgIFVzaW5nIHRoZSBTV0lHIGNsYXNzIGV4dGVuc2lvbiBtZWNoYW5pc20sICB0aGUgZm9sbG93aW5nIGNvZGUgY2FuIGJlIGFkZGVkIHRvIHRoZSBTV0lHIGludGVyZmFjZTo8cD4KLTxwPgotPGJsb2NrcXVvdGU+PHByZT4lbW9kdWxlIGdkCi0lewotI2luY2x1ZGUgImdkLmgiCi0lfQotJWluY2x1ZGUgZ2QuaAotLi4uCi0lYWRkbWV0aG9kcyBnZEltYWdlIHsKLSAgICBnZEltYWdlKGludCB3LCBpbnQgaCkgewotICAgICAgIHJldHVybiBnZEltYWdlQ3JlYXRlKHcsaCk7Ci0gICAgfQotICAgIH5nZEltYWdlKCkgewotICAgICAgIGdkSW1hZ2VEZXN0cm95KHNlbGYpOwotICAgIH0KLSAgICBpbnQgY29sb3IoaW50IHIsIGludCBnLCBpbnQgYikgewotICAgICAgIHJldHVybiBnZEltYWdlQ29sb3JBbGxvY2F0ZShzZWxmLHIsZyxiKTsKLSAgICB9Ci0gICAgdm9pZCBwbG90KGludCB4LCBpbnQgeSwgaW50IGMpIHsKLSAgICAgICBnZEltYWdlU2V0UGl4ZWwoc2VsZiwgeCwgeSwgYyk7Ci0gICAgfQotICAgIHZvaWQgbGluZShpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIsIGludCBjKSB7Ci0gICAgICAgZ2RJbWFnZUxpbmUoc2VsZix4MSx5MSx4Mix5MixjKTsKLSAgICB9Ci0gICAgdm9pZCBwb2x5KGdkUG9pbnRQdHIgcHRzLCBpbnQgbnBvaW50cywgaW50IGMpIHsKLSAgICAgICBnZEltYWdlUG9seWdvbihzZWxmLHB0cywgbnBvaW50cywgYyk7Ci0gICAgfQotICAgIHZvaWQgcmVjdChpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIsIGludCBjKSB7Ci0gICAgICAgZ2RJbWFnZVJlY3RhbmdsZShzZWxmLHgxLHkxLHgyLHkyLGMpOwotICAgIH0KLSAgICB2b2lkIHN0cmluZyhnZEZvbnRQdHIgZm9udCwgaW50IHgsIGludCB5LCBjaGFyICpzdHIsIGludCBjKSB7Ci0gICAgICAgZ2RJbWFnZVN0cmluZyhzZWxmLGZvbnQseCx5LHN0cixjKTsKLSAgICB9Ci0gICAgdm9pZCB3cml0ZShjaGFyICpmaWxlbmFtZSkgewotICAgICAgIEZJTEUgKmYgPSBmb3BlbihmaWxlbmFtZSwid2IiKTsKLSAgICAgICBpZiAoZiA9PSBOVUxMKSByZXR1cm47Ci0gICAgICAgZ2RJbWFnZUdpZihzZWxmLGYpOwotICAgICAgIGZjbG9zZShmKTsKLSAgICB9Ci19Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLU5vdywgaW1hZ2VzIGNhbiBiZSBtYW5pcHVsYXRlZCBhbG1vc3QgbGlrZSBhIFRrIHdpZGdldDxwPgotPHA+Ci08YmxvY2txdW90ZT48cHJlPmxvYWQgLi9nZC5zbwotZ2RJbWFnZSBpbWcgNDAwIDQwMCAgICAgICAgICAgICAgICAgICAgOyMgQ3JlYXRlIGFuIGltYWdlCi1zZXQgYmxhY2sgW2ltZyBjb2xvciAwIDAgMF0gICAgICAgICAgICA7IyBBbGxvY2F0ZSBzb21lIGNvbG9ycwotc2V0IHdoaXRlIFtpbWcgY29sb3IgMjU1IDI1NSAyNTVdICAgICAKLWltZyBsaW5lIDIwIDIwIDMwMCAzMDAgJHdoaXRlICAgICAgICAgIDsjIERyYXcgc29tZSBvYmplY3RzCi1pbWcgcmVjdCA0MCA0MCAyNTAgMjUwICR3aGl0ZQotaW1nIHN0cmluZyAkZ2RGb250TGFyZ2UgMTAgMTAwICJIZWxsbyBXb3JsZCIgJHdoaXRlCi1pbWcgd3JpdGUgInRlc3QuZ2lmIiAgICAgICAgICAgICAgICAgICA7IyBPdXRwdXQgdGhlIGltYWdlCi1yZW5hbWUgaW1nICIiICAgICAgICAgICAgICAgICAgICAgICAgICA7IyBEZXN0cm95IHRoZSBpbWFnZQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci08YSBuYW1lPSJuNDIiPjwvYT48aDM+IFBvcnRpbmcgdG8gT3RoZXIgTGFuZ3VhZ2VzPC9oMz4KLUFsdGhvdWdoIHRoaXMgY2hhcHRlciBoYXMgZm9jdXNlZCBleGNsdXNpdmVseSBvbiB0aGUgdXNlIG9mIFNXSUcgYW5kIFRjbCwgbm90aGluZyBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIG90aGVyIHNjcmlwdGluZyBsYW5ndWFnZXMuICBJbiBmYWN0LCBsb29raW5nIGF0IHRoZSBleGFtcGxlLCBubyBUY2wgc3BlY2lmaWMgY29kZSBpcyBpbnZvbHZlZCBpbiBjcmVhdGluZyB0aGUgc2NyaXB0aW5nIGludGVyZmFjZSAodW5sZXNzIHlvdSB3ZW50IG92ZXJib2FyZCB3aXRoIHR5cGVtYXBzIG9yIFRjbCBzcGVjaWZpYyBoZWxwZXIgZnVuY3Rpb25zKS4gICBCZWNhdXNlIG9mIHRoaXMsIGl0IGlzIHRyaXZpYWwgdG8gcmV0YXJnZXQgdGhlIGludGVyZmFjZSB0byBvdGhlciBlbnZpcm9ubWVudHMgYnkgc2ltcGx5IHJ1bm5pbmcgU1dJRyB3aXRoIGRpZmZlcmVudCBjb21tYW5kIGxpbmUgb3B0aW9uczxwPgotPGJsb2NrcXVvdGU+PHByZT4KLXN3aWcgLXBlcmw1IGdkLmkgICAgICAgICAgICAgICAgICMgQ3JlYXRlIFBlcmw1IG1vZHVsZQotc3dpZyAtcHl0aG9uIGdkLmkgICAgICAgICAgICAgICAgIyBDcmVhdGUgYSBQeXRob24gbW9kdWxlCi0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLUFzIGEgcmVzdWx0LCBpdCBpcyBlYXN5IHRvIHdyaXRlIHNjcmlwdHMgaW4gb3RoZXIgbGFuZ3VhZ2VzLiBGb3IgZXhhbXBsZSA6PHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBBIFBlcmw1IFNjcmlwdAotdXNlIGdkOwotIyBDcmVhdGUgYW4gaW1hZ2UKLSRpbSA9IGdkOjpnZEltYWdlQ3JlYXRlKDIwMCwyMDApOwotCi0jIEFsbG9jYXRlIGNvbG9ycwotJGJsYWNrID0gZ2Q6OmdkSW1hZ2VDb2xvckFsbG9jYXRlKCRpbSwwLDAsMCk7Ci0kd2hpdGUgPSBnZDo6Z2RJbWFnZUNvbG9yQWxsb2NhdGUoJGltLDI1NSwyNTUsMjU1KTsKLQotIyBEcmF3IGEgbGluZQotZ2Q6OmdkSW1hZ2VMaW5lKCRpbSwyMCw1MCwxODAsMTQwLCR3aGl0ZSk7Ci0KLSMgV3JpdGUgdGhlIGltYWdlCi0kb3V0ID0gZ2Q6OmZvcGVuKCJ0ZXN0LmdpZiIsd2IpOwotZ2Q6OmdkSW1hZ2VHaWYoJGltLCRvdXQpOwotZ2Q6OmZjbG9zZSgkb3V0KTsKLQotIyBDbGVhbiB1cAotZ2Q6OmdkSW1hZ2VEZXN0cm95KCRpbSk7Ci0KLTwvcHJlPjwvYmxvY2txdW90ZT4KLW9yPHA+Ci08cD4KLTxibG9ja3F1b3RlPjxwcmU+IyBBIFB5dGhvbiBzY3JpcHQKLWltcG9ydCBnZAotaW0gPSBnZC5nZEltYWdlQ3JlYXRlKDIwMCwyMDApCi0KLSMgQWxsb2NhdGUgY29sb3JzCi1ibGFjayA9IGdkLmdkSW1hZ2VDb2xvckFsbG9jYXRlKGltLDAsMCwwKQotd2hpdGUgPSBnZC5nZEltYWdlQ29sb3JBbGxvY2F0ZShpbSwyNTUsMjU1LDI1NSkKLQotIyBEcmF3IGEgbGluZQotZ2QuZ2RJbWFnZUxpbmUoaW0sMjAsNTAsMTgwLDE0MCx3aGl0ZSkKLQotIyBXcml0ZSB0aGUgaW1hZ2UKLW91dCA9IGdkLmZvcGVuKCJ0ZXN0LmdpZiIsd2IpCi1nZC5nZEltYWdlR2lmKGltLG91dCkKLWdkLmZjbG9zZShvdXQpCi0KLSMgQ2xlYW4gdXAKLWdkLmdkSW1hZ2VEZXN0cm95KGltKQotCi08L3ByZT48L2Jsb2NrcXVvdGU+Ci1BbHRob3VnaCB5b3UgbWlnaHQgbm90IGNvbnNpZGVyIHRoZSB1c2Ugb2Ygb3RoZXIgc2NyaXB0aW5nIGxhbmd1YWdlcyB0byBiZSBzbyBpbXBvcnRhbnQsICBjb25zaWRlciB0aGUgcHJvY2VzcyBvZiB1cGdyYWRpbmcgdG8gbmV3ZXIgdmVyc2lvbiBvZiBUY2wuICBUY2wgNyB3YXMgYmFzZWQgZW50aXJlbHkgb24gc3RyaW5ncyAodGhlICJldmVyeXRoaW5nIGlzIGEgc3RyaW5nIiBtb2RlbCkgd2hpbGUgVGNsIDggdXNlcyBkdWFsLXBvcnRlZCBvYmplY3RzLiAgIFVzaW5nIG9iamVjdHMgcHJvdmlkZXMgYmV0dGVyIHBlcmZvcm1hbmNlIGFuZCB1cGdyYWRpbmcgYSBTV0lHIG1vZHVsZSBmcm9tIFRjbCA3IHRvIFRjbCA4IGlzIHVzdWFsbHkgdHJpdmlhbCAtLSBqdXN0IHJlYnVpbGQgYWxsIG9mIHlvdXIgaW50ZXJmYWNlcyBieSBydW5uaW5nIFNXSUcgd2l0aCB0aGUgPHR0Pi10Y2w4PC90dD4gb3B0aW9uLjxwPgotPGEgbmFtZT0ibjUiPjwvYT48aDI+IFN1bW1hcnk8L2gyPgotSSBob3BlIHRvIGhhdmUgZ2l2ZW4geW91IGEgc21hbGwgdGFzdGUgb2YgU1dJRyBhbmQgaG93IGl0IGNhbiBiZSB1c2VkIHdpdGggQy9DKysgYXBwbGljYXRpb25zLiAgIEZyb20gYSBwZXJzb25hbCBwZXJzcGVjdGl2ZSwgSSBoYXZlIGZvdW5kIHRoZSBjb21iaW5hdGlvbiBvZiBTV0lHIGFuZCBUY2wgdG8gYmUgYSBwb3dlcmZ1bCBkZXZlbG9wbWVudCB0b29sLiAgIEZpcnN0LCBTV0lHIG1ha2VzIGl0IHJlbGF0aXZlbHkgZWFzeSB0byBidWlsZCBUY2wgaW50ZXJmYWNlcyB0byBleGlzdGluZyBDIGNvZGUtLWluIGZhY3QsIEkgcmFyZWx5IGhhdmUgdG8gZGlnIG91dCBteSBUY2wgYm9va3MgZm9yIHRoaXMuICAgU2Vjb25kLCBUY2wgaXMgYSBncmVhdCB3YXkgdG8gaW50ZXJhY3Qgd2l0aCBDIGxpYnJhcmllcy4gIE5vdCBvbmx5IGNhbiBJIGludGVyYWN0aXZlbHkgdHdlYWsgcGFyYW1ldGVycywgY2FsbCBmdW5jdGlvbnMsIGFuZCB0cnkgdGhpbmdzLCBJIGNhbiB3cml0ZSB0ZXN0aW5nIHNjcmlwdHMgYW5kIHNob3J0IHByb2dyYW1zIHdpdGhvdXQgaGF2aW5nIHRvIHdyaXRlIGFkZGl0aW9uYWwgQyBjb2RlLiAgRmluYWxseSwgIHRoaXMgYXBwcm9hY2ggaGFzIGhhZCBhIG5vdGljZWFibGUgaW1wYWN0IG9uIHRoZSBxdWFsaXR5IG9mIHRoZSBzb2Z0d2FyZSBJIGhhdmUgZGV2ZWxvcGVkLiAgIEJlZm9yZSBoYXZpbmcgdGhlIFRjbCBpbnRlcmZhY2UsIGl0IHdhcyBhbHdheXMgYSBzdHJ1Z2dsZSB0byB1c2UgdGhlIGNvZGUgSSBoYWQgZGV2ZWxvcGVkLiAgTW9yZSBvZnRlbiB0aGFuIG5vdCwgSSB3b3VsZCBzcGVuZCBpbm9yZGluYXRlIGFtb3VudHMgb2YgdGltZSB3cml0aW5nIGJhZCB1c2VyIGludGVyZmFjZXMgYW5kIHRlc3QgcHJvZ3JhbXMuICBIb3dldmVyLCBieSBoYXZpbmcgYSBUY2wgaW50ZXJmYWNlLCAgSSB3YXMgZ2l2ZW4gYW4gZW52aXJvbm1lbnQgdGhhdCBsZXRzIG1lIHBsYXkgd2l0aCBsaWJyYXJpZXMsIHRlc3QgY29tcG9uZW50cywgYW5kIGNvbmNlbnRyYXRlIG9uIHRoZSBwcm9ibGVtIGF0IGhhbmQuICBJbiBtYW55IGNhc2VzLCB0aGlzIGhhcyBhbGxvd2VkIG1lIHRvIGZpbmQgZGVzaWduIGZsYXdzIGFuZCBjb3JyZWN0IHJlbGlhYmlsaXR5IHByb2JsZW1zIG11Y2ggZWFybGllciB0aGFuIGJlZm9yZS48cD4KLTxwPgotVGhpcyBjaGFwdGVyIGhhcyBvbmx5IHNjcmF0Y2hlZCB0aGUgc3VyZmFjZSBvZiBTV0lHIGFuZCBpdHMgdXNlIHdpdGggVGNsLiAgICBJbiBhZGRpdGlvbiB0byBpdHMgdXNlIGluIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LCBTV0lHIGNhbiBhbHNvIGJlIHVzZWQgdG8gYnVpbGQgZ2VuZXJhbCBwdXJwb3NlIFRjbCBleHRlbnNpb24gbW9kdWxlcyBhbmQgYXMgYSB0b29sIGZvciBidWlsZGluZyBncmFwaGljYWwgdXNlciBpbnRlcmZhY2VzIHRvIEMvQysrIGFwcGxpY2F0aW9ucyAodXNpbmcgVGspLiAgIFJlYWRlcnMgaW50ZXJlc3RlZCBpbiBvdGhlciBTV0lHIGFwcGxpY2F0aW9ucyBzaG91bGQgdGFrZSBhIGxvb2sgYXQgdGhlIHdlYi1wYWdlICh3d3cuc3dpZy5vcmcpIGFuZCB0aGUgU1dJRyBVc2VycyBNYW51YWwuPHA+Ci08cD4KLVNXSUcgd291bGQgbm90IGJlIHBvc3NpYmxlIHdpdGhvdXQgdGhlIHZhbHVhYmxlIGNvbnRyaWJ1dGlvbnMgb2YgaXRzIHVzZXJzLiAgQWx0aG91Z2ggdGhlcmUgYXJlIGZhciB0b28gbWFueSBwZW9wbGUgdG8gdGhhbmsgaW5kaXZpZHVhbGx5IGF0IHRoaXMgcG9pbnQsIHlvdSBrbm93IHdobyB5b3UgYXJlLiAgU1dJRyB3b3VsZCBjZXJ0YWlubHkgbm90IGJlIGluIGl0cyBjdXJyZW50IHN0YXRlIHdpdGhvdXQgdGhlaXIgZmVlZGJhY2suPHA+Ci08cD4KLQotPHA+PGhyPgotCi08YWRkcmVzcz5iZWF6bGV5QGNzLnVjaGljYWdvLmVkdSAgRnJpIEF1ZyAxNCAxMDoyNToxOSAxOTk4PC9hZGRyZXNzPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3dpZ3dlYi9wYXBlcnMvVGNsVHV0b3JpYWw5OC9UY2xUdXRvcmlhbDk4LnBkZiBiL3N3aWd3ZWIvcGFwZXJzL1RjbFR1dG9yaWFsOTgvVGNsVHV0b3JpYWw5OC5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYTE1NWMuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9wYXBlcnMvVGNsVHV0b3JpYWw5OC9UY2xUdXRvcmlhbDk4LnBkZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcHJvamVjdHMuaHQgYi9zd2lnd2ViL3Byb2plY3RzLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODk2YTNjLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcHJvamVjdHMuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw0NjQgKzAsMCBAQAotVGhlIFNXSUcgRmlsZXMKLQotPHA+PGltZyBzcmM9ImltYWdlcy9wcm9qZWN0cy5wbmciPgotCi08cD4KLVNXSUcgaXMgYmVpbmcgdXNlZCBpbiBhbiBpbmNyZWFzaW5nIG51bWJlciBvZiBhcHBsaWNhdGlvbnMsIG1vc3Qgb2YKLXdoaWNoIGFyZSByZWxhdGVkIHRvIHJlc2VhcmNoIGFuZCBkZXZlbG9wbWVudCwgcHJvdG90eXBpbmcsIHNvZnR3YXJlIHRlc3RpbmcsCi1hbmQgY29uc3RydWN0aW9uIG9mIHNwZWNpYWxpemVkIHN5c3RlbXMuICBUaGlzIHBhZ2UgZGVzY3JpYmVzCi1zb21lIG9mIHRoZSB3YXlzIGluIHdoaWNoIFNXSUcgaXMgY3VycmVudGx5IGJlaW5nIHVzZWQuIAotCi08cD4KLShOb3RlIDogdGhlCi1vcGluaW9ucyBleHByZXNzZWQgaGVyZSBkbyBub3QgbmVjZXNzYXJpbHkgcmVmbGVjdCB0aG9zZSBvZiBhbnkKLWdpdmVuIGVtcGxveWVyIG9yIG9yZ2FuaXphdGlvbikuCi0KLTxwPgotPGhyPgotPHA+Ci1EYXZpZCBCZWF6bGV5IChkbWJAdmlraW5nLmxhbmwuZ292KSBhbmQgUGV0ZXIgTG9tZGFobCAocHhsQHZpa2luZy5sYW5sLmdvdik8YnI+Ci08cD4KLTxwPgotU1dJRyBpcyBiZWluZyB1c2VkIHRvIGNvbnN0cnVjdCBhIFB5dGhvbiBpbnRlcmZhY2UgdG8gdGhlIDxhCi1ocmVmPSJodHRwOi8vYmlmcm9zdC5sYW5sLmdvdi9NRC9NRC5odG1sIj5TUGFTTTwvYT4gbW9sZWN1bGFyIGR5bmFtaWNzCi1jb2RlIGF0IExvcyBBbGFtb3MgTmF0aW9uYWwgTGFib3JhdG9yeS4gIEN1cnJlbnRseSB0aGlzIGNvZGUgaXMgYmVpbmcKLXVzZWQgdG8gcGVyZm9ybSBsYXJnZS1zY2FsZSBzaW11bGF0aW9ucyBvZiBmcmFjdHVyZSwgc2hvY2sgd2F2ZXMsIGFuZAotZGlzbG9jYXRpb24gZHluYW1pY3MuIFRoZSBzeXN0ZW0gcnVucyBpbiBwYXJhbGxlbCBvbiBhIDEyIHByb2Nlc3NvcgotU3VuIEVudGVycHJpc2UgNDAwMCBzZXJ2ZXIgYW5kIGlzIGltcGxlbWVudGVkIHdpdGggTVBJIGFuZCBTb2xhcmlzCi1tdWx0aXRocmVhZGluZy4gIFRoZSBQeXRob24gaW50ZXJmYWNlIGlzIHVzZWQgdG8gcHJvdmlkZSB1c2VycyB3aXRoIGFuCi1pbnRlcmFjdGl2ZSBkYXRhIGFuYWx5c2lzLCB2aXN1YWxpemF0aW9uLCBhbmQgcHJvdG90eXBpbmcgZW52aXJvbm1lbnQuCi1Vc2VycyBjYW4gYWxzbyBpbnRlcmFjdCB3aXRoIHVuZGVybHlpbmcgQyBkYXRhIHN0cnVjdHVyZXMgYW5kICJzdGVlciIKLWNvbXB1dGF0aW9ucyBhcyBuZWVkZWQuICBPbmUgb2YgdGhlIGFkdmFudGFnZXMgb2YgU1dJRyBpcyB0aGF0IGl0Ci1hbGxvd3MgaW50ZXJmYWNlcyB0byBiZSBlYXNpbHkgY29uc3RydWN0ZWQgZnJvbSBleGlzdGluZyBjb2RlLiAgVGhlCi1TUGFTTSBzeXN0ZW0gY29uc2lzdHMgb2YgbmVhcmx5IDMwMCBDIGZ1bmN0aW9ucyBhbmQgdGhlIFB5dGhvbgotaW50ZXJmYWNlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGR1cmluZyBjb21waWxhdGlvbi4gIFRoaXMgd29yawotd2FzIHJlY2VudGx5IGZlYXR1cmVkIG9uIHRoZSBjb3ZlciBvZiAiQ29tcHV0ZXJzIGluIFBoeXNpY3MiIChKdW5lLAotMTk5NykuCi0KLTxwPgotPGhyPgotPHA+Ci1Kb2huIFNjaG1pZHQgKGphc0Bjcy51dGFoLmVkdSkgPGJyPgotPHA+Ci08cD4KLUkgYW0gdXNpbmcgU1dJRyB0byBpbnRlZ3JhdGUgZm91ciBzdGFuZCBhbG9uZSBzb2Z0d2FyZSBwYWNrYWdlcyBpbnRvIGEKLXVuaWZpZWQgc3lzdGVtIGNvbnRyb2xsZWQgYnkgVGNsL1RrIHNjcmlwdHMuICBUaGUgdW5pZmllZCBzb2Z0d2FyZQotc3lzdGVtIGlzIHVzZWQgdG8gZGVzaWduIGFuZCB0ZXN0IGRlZmlicmlsbGF0aW9uIGVsZWN0cm9kZXMgdmlhCi1jb21wdXRlciBzaW11bGF0aW9ucyBvZiBhIGh1bWFuIHN1YmplY3QuICBUaGUgaW5kaXZpZHVhbCBzb2Z0d2FyZQotcGllY2VzIGluY2x1ZGU6IGEgdmlzdWFsaXphdGlvbiBwYWNrYWdlIHdyaXR0ZW4gaW4gQysrIHVzaW5nCi1PcGVuSW52ZW50b3IgYW5kIE1vdGlmLCBhbiB1bnN0cnVjdHVyZWQgbWVzaCBnZW5lcmF0b3Igd3JpdHRlbiBpbiBDLCBhCi1GaW5pdGUgRWxlbWVudCBTb2x2ZXIgd3JpdHRlbiBpbiBDLCBhbmQgYSBzZWdtZW50YXRpb24gc29mdHdhcmUKLXdyaXR0ZW4gaW4gQysrIHVzaW5nIE9wZW5HTCBhbmQgTW90aWYuICBTV0lHIGhhcyBiZWVuIGNydWNpYWwgdG8gdGhlCi1kZXZlbG9wbWVudCBvZiB0aGlzIHByb2plY3QuICBXaXRoIFNXSUcsIHRoZSBpbnRlZ3JhdGlvbiBvZiB0aGUKLWluZGl2aWR1YWwgcGllY2VzIHdhcyB0cml2aWFsLgotCi08cD4KLTxocj4KLTxwPgotRGF2aWQgQnJ5ZG9uIChicnlkb25AbGFubC5nb3YpIDxicj4KLTxwPgotPHA+Ci1XZSBhcmUgdXNpbmcgc3dpZyB3aXRoIHB5dGhvbiB0byByZXRyaWV2ZSwgYW5hbHl6ZSwgYW5kIHZpc3VhbGl6ZSB2ZXJ5Ci1sYXJnZSBkYXRhIHNldHMgZnJvbSBvY2VhbiBtb2RlbCBzaW11bGF0aW9ucyBvbiBwYXJhbGxlbCBjb21wdXRlcnMuCi1XZSBoYXZlIHdyaXR0ZW4gQyByb3V0aW5lcyB0aGF0IGFjY2VzcyBvdXIgZGF0YS4gIEdyYXBoaWNzIGxpYnJhcmllcwotYW5kIE1hdGxhYiBhcmUgdXNlZCB0byB2aXN1YWxpemUgdGhlIGRhdGEuICBXZSBhcmUgdmVyeSBoYXBweSB3aXRoIHRoZQotZmxleGlibGUsIHByb2dyYW1tYWJsZSwgcG93ZXJmdWwgdG9vbCB0aGF0IHJlc3VsdHMuCi0KLTxwPgotPGhyPiAJCi08cD4KLU1pa2UgV2VpYmxlbiAobWV3QHBhcmFkaWdtc2ltLmNvbSkgPGJyPgotPHA+Ci08cD4KLVBhcmFkaWdtIHNlbGxzIG1vZHVsYXIgQyB0b29sa2l0cyBmb3IgZGV2ZWxvcGluZyB2aXN1YWwKLXNpbXVsYXRpb24vdmlydHVhbCByZWFsaXR5IGdyYXBoaWNzIGFwcGxpY2F0aW9ucyBjYWxsZWQgVmVnYSBhbmQgYW5vdGhlcgotZm9yIHNwYXRpYWwgYXVkaW8gc2ltdWxhdGlvbiBjYWxsZWQgQXVkaW9Xb3Jrcy4gIEkndmUgdXNlZCBTV0lHIHRvIHdyYXAKLVZlZ2EncyBhbmQgQVcncyBBUElzIHdpdGggU2lsaWNvbiBHcmFwaGljcycgInNnaXRjbCIgdG8gY3JlYXRlICJ2Z1RjbCIKLWFuZCAiYXdUY2wiLiAgRXhwbG9pdGluZyB0aGUgcG93ZXIgb2YgaW50ZXJhY3RpdmUgc2NyaXB0aW5nIGxhbmd1YWdlcywKLXRoZXkgcHJvdmlkZSB0aGUgZnVsbCBwb3dlciBvZiB0aGUgQVBJcyBhdCBydW50aW1lLCB3aXRob3V0IGFuCi1hcHBsaWNhdGlvbiBkZXZlbG9wZXIgaGF2aW5nIHRvIGFudGljaXBhdGUgZmxleGliaWxpdHkgYSBwcmlvcmkuICBTV0lHCi1oYXMgZW5hYmxlZCBvdXIgY3VzdG9tZXJzIHRvIGludGVyYWN0IHdpdGggb3VyIHRvb2xraXRzIGluIGZ1bmRhbWVudGFsbHkKLW5ldyB3YXlzLgotPHA+Ci1TZXZlcmFsIHllYXJzIGFnbyAoSSBiZWxpZXZlIHdlIGRpc2N1c3NlZCB0aGlzIHN0dWZmIHdheSBiYWNrIGluIDE5OTQKLTstKSwgSSBjcmVhdGVkIGEgc2V0IG9mIEMgcHJlcHJvY2Vzc29yIG1hY3JvcyB0aGF0IGRpZCBTV0lHLWxpa2UKLXRoaW5ncy4gIEl0IHdhcyBhIHZlcnkgdGVkaW91cyBwcm9jZXNzLCBtYWtpbmcgaXQgZGlmZmljdWx0IHRvIGZvbGxvdwotY2hhbmdlcyB0byBhbiBldm9sdmluZyBBUEksIGJ1dCBpdCB3YXMgdXNlZnVsIGZvciBwcm9vZi1vZi1jb25jZXB0LiAKLVdoZW4gU1dJRyAxLjFCMSBjYW1lIG91dCBpbiBPY3RvYmVyLCBJIHdhcyBnZW5lcm91c2x5IGdpdmVuIGEgUiZEIGJ1ZGdldAotdG8gcmVpbXBsZW1lbnQgbXkgcHJvamVjdCBpbiBTV0lHLiAgVGhlIHByb2plY3QgaGFzIGJlZW4gYSByZXNvdW5kaW5nCi1zdWNjZXNzISAgCi0KLTxwPgotPGhyPgotPHA+Ci1Kb25haCBMZWUgKGpvbmFoQG1lbGFiLnVhZnNvZS5hbGFza2EuZWR1KQotPHA+Ci08cD4KLVtXZSdyZSB1c2luZyBTV0lHIGZvcl0gd3JhcHBpbmcgdXAgZW5naW5lZXJpbmcgYXBwbGljYXRpb25zIHVzaW5nCi1maW5pdGUgZWxlbWVudCBtZXRob2QgaW5jbHVkaW5nIHByZS0gYW5kIHBvc3QtcHJvY2Vzc2luZy4gTXkgcHJvZ3JhbQotaXMgc29tZXdoYXQgZ2VuZXJhbCBhbmQgaXMgdXNlZCB0byBzb2x2ZSBwcm9ibGVtcyBmb3IgZW5naW5lZXJpbmcKLW1hdGVyaWFscy0tbWV0YWxzLCBwb2x5bWVycyBhbmQgaWNlLS0gdW5kZXJnb2luZyBwbGFzdGljIChwZXJtYW5lbnQpCi1kZWZvcm1hdGlvbnMuIEl0J3MgbWFpbmx5IHVzZWQgZm9yIHJhcGlkIHByb3RvdHlwaW5nLCBkZXZlbG9wbWVudCBhbmQKLXRlc3RpbmcuIFRoZSBjb2RlIHJ1bnMgb24gd29ya3N0YXRpb25zLCBDcmF5IFktTVBzIGFuZCBDcmF5IFQzRSAod2hlbgotSSBnZXQgdGhlcmUuLi4gIHRoYXQgaXMpLgotCi08cD4KLTxocj4KLTxwPkpvZHkgV2luc3RvbiAoam9keUBzY2NzaS5jb20pIAotPHA+Ci08cD4KLQotSSBoYXZlIHVzZWQgU1dJRyB0byB3cmFwIGFuIEFQSSB0aGF0IGNvbnRyb2xsZWQgdHdvIHN0ZXBwZXIgbW90b3JzIGFuZAotYSBDQ0QgY2FtZXJhIG9uIGEgTGludXggc3lzdGVtIHRoYXQgZ2F0aGVyZWQgcmVhbCB0aW1lIGltYWdlIGRhdGEuICBJbgotV2luZG93cywgSSB3cmFwcGVkIGFuIGFwcGxpY2F0aW9uJ3MgQysrIEFQSSBhbmQgdXNlZCBTV0lHIHRvIGVtYmVkIGEKLVB5dGhvbiAocHl3aW4pIGludGVycHJldGVyIGludG8gdGhlIEMrKyBhcHBsaWNhdGlvbi4gIEkgYWxzbyB1c2VkIFNXSUcKLXRvIHdyYXAgYSBGT1JUUkFOIEFQSSB0aGF0IHdhcyB1c2VkIHRvIHJlYWQgYW5kIHdyaXRlIGRhdGEgaW50byBhCi1jdXN0b20gZGF0YSBiYXNlLiAgCi08cD4KLVNXSUcgaGFzIGFsbG93ZWQgbWUgdG8gbW92ZSB0aGUgdGltZSBjcml0aWNhbCBjb2RlIGludG8gQywgQysrLCBvcgotRk9SVFJBTiB3aGlsZSBoYXZpbmcgdGhlIGFwcGxpY2F0aW9uIGJlaW5nIGNvbnRyb2xsZWQgYnkgUHl0aG9uLiAgSQotY2FuIHF1aWNrbHkgZW1iZWQgYW4gaW50ZXJwcmV0ZXIgaW50byBhbiBhcHBsaWNhdGlvbi4KLQotPHA+Ci08aHI+Ci08cD4KLVBldGVyIExpc3RlciAocC5saXN0ZXJAY3JhbmZpZWxkLmFjLnVrKTxicj4KLTxwPgotPHA+Ci1JJ20gdXNpbmcgW1NXSUddIGZvciBhIFBlcmwgc2NyaXB0YWJsZSB2ZXJzaW9uIG9mIFZhbiBKYWNvYnNvbidzIGxpYnBjYXAKLXBhY2tldCBjYXB0dXJlIGxpYnJhcnkuIEkgY2FuIG5vdyB1c2UgUGVybCByZWd1bGFyIGV4cHJlc3Npb25zIHRvCi1wcm9jZXNzIHBhY2tldHMgb24gdGhlIGZseS4gTXkgbWFpbiByZWFzb24gaXMgdG8gZXh0cmFjdCBpbmZvcm1hdGlvbgotZnJvbSBBUlAgcGFja2V0cyBhbmQgYXV0b21hdGljYWxseSBtYWludGFpbiBvdXIgZGF0YWJhc2Ugb2YgSVAvTUFDCi1hZGRyZXNzIG1hcHBpbmdzIGRpcmVjdGx5IGZyb20gcGVybCByYXRoZXIgdGhhbiBoYWNraW5nIHRoZSBvdXRwdXQgb2YKLWFycHdhdGNoIG9yIHRjcGR1bXAuCi0KLTxwPgotPGhyPgotPHA+Ci1IYXJhbGQgU2luZ2VyIChzaW5nZXJAaXRsLmF0ci5jby5qcCkgPHA+Ci08cD4KLQotW1dlIGFyZSB1c2luZyBTV0lHIGZvcl0gd3JhcHBpbmcgQyBsaWJyYXJpZXMgIHRvIFB5dGhvbiBmb3Igc3BlZWNoIHJlY29nbml0aW9uIHJlc2VhcmNoCi1hdCBBVFIgSW50ZXJwcmV0aW5nIFRlbGVjb21tdW5pY2F0aW9ucyBMYWJvcmF0b3JpZXMuCi08cD4KLVdlIGFyZSB3b3JraW5nIGluIGEgbXVsdGktdmVuZG9yIGVudmlyb25tZW50IChIUC1VWCwgT1NGMSwgTGludXgsCi1TdW5PUywgU29sYXJpcykgYW5kIHdyaXRpbmcgbmV3IGFwcGxpY2F0aW9ucyBoYXMgYmVjb21lIHZlcnkgdGVkaW91cy4KLVRoZXJlZm9yZSwgd2UgZGVjaWRlZCB0byBlbXBsb3kgcHl0aG9uLCBidXQgYXQgdGhlIHNhbWUgdGltZSB3ZSB3b3VsZAotbGlrZSB0byBoYXZlIGFjY2VzcyB0byBvdXIgc2lnbmFsIHByb2Nlc3NpbmcgbGlicmFyaWVzIGV0Yy4gdGhhdCB3ZXJlCi1hbmQgYXJlIHN0aWxsIHdyaXR0ZW4gaW4gQy4KLTxwPgotVGhlIGFkdmFudGFnZXMgb2YgdXNpbmcgUHl0aG9uIGJlY29tZSBtb3JlIGV2aWRlbnQgZXZlcnkgZGF5LiBGb3IKLWV4YW1wbGUsIGl0IHdhcyBmYWlybHkgZWFzeSB0byB3cml0ZSBhIEdVSSB1c2luZyBweXRob24vdGsuIFdlIGFyZQotdXNpbmcgdGhpcyBub3cgZm9yIGludGVyYWN0aXZlIGVycm9yIGFuYWx5c2lzLiBBIHR5cGljYWwgc2NlbmFyaW8gaXMKLWxpa2UgdGhpczoKLTxwPgotPHVsPgotPGxpPiBhdWRpbyBkYXRhIGlzIGNvbGxlY3RlZCB2aWEgbWljcm9waG9uZS9BRCAoaW4gUHl0aG9uKSBhbmQgc2VudCB0byB0aGUKLXJlY29nbml6ZXIgZnJhbWUgYnkgZnJhbWUuIAotPHA+Ci08bGk+IHRoZSByZWNvZ25pemVyIChDIGNvZGUpIG1ha2VzIGEgZGVjaXNpb24gYWJvdXQgc3BlZWNoIGVuZHBvaW50aW5nIGFuZAotb25jZSBpdCBoYXMgZGlzY292ZXJlZCBlbmQgb2YgdXR0ZXJhbmNlIGRvZXMgYSBjYWxsYmFjayB0byB0aGUKLWFwcGxpY2F0aW9uIChweXRob24vdGspIHdpdGggYSB3b3JkIGxhdHRpY2UgYXMgcmVzdWx0LgotPHA+Ci08bGk+IHRoaXMgd29yZCBsYXR0aWNlIGlzIG5vdyBkaXNwbGF5ZWQgZm9yIHRoZSB1c2VyIGluIHB5dGhvbi90ay4gCi08cD4KLTxsaT4gdGhlIHVzZXIgY2FuIG5vdyBpbnRlcmFjdGl2ZWx5IHJlc2NvcmUgcGFydCBvZiB0aGUgbGF0dGljZXMsIGxvb2sgYXQKLXRoZSBkZXRhaWxlZCBhY291c3RpYyBhbmQgbGFuZ3VhZ2UgbW9kZWwgc2NvcmVzLCBsaXN0ZW4gdG8gcGFydHMgb2YKLXRoZSB1dHRlcmFuY2UsIGV0Yy4KLTwvdWw+Ci08cD4KLVNXSUcgaGVscHMgdXMgaW4gdGFraW5nIGF3YXkgcGFydCBvZiB0aGUgZXJyb3ItcHJvbmUgdGFzayBvZiBtYWtpbmcKLXRoZSBDIHJvdXRpbmVzIGFjY2Vzc2libGUgZnJvbSBweXRob24gYW5kIGhhcyBjb25zaWRlcmFibHkgaW1wcm92ZWQKLW91ciBlZmZpY2llbmN5LgotCi08cD4KLTxocj4KLTxwPgotRG9taW5pcXVlIER1bW9udCAoZG9taUBzczdzZXJ2LmdyZW5vYmxlLmhwLmNvbSkgPHA+Ci08cD4KLUknbSB1c2luZyBTV0lHIHRvIGdlbmVyYXRlIGEgcGVybDUgQVBJIG9uIHRvcCBvZiBIUCdzIE9wZW5DYWxsIFRDQVAKLUFQSS4gVENBUCBpcyB0aGUgdG9wIHByb3RvY29sIGxheWVyIG9mIEhQJ3MgU1M3IHN0YWNrIG9mIHRlbGVjb20gCi1wcm90b2NvbC4gVGhlIHBlcmw1IEFQSSBkZXZlbG9wZW1udCBlZmZvcnQgaXMgYSBwYXJ0IG9mIHRoZSBzeXN0ZW1hdGljCi10ZXN0aW5nIGFwcHJvYWNoIHdlJ3JlIGltcGxlbWVudGluZyBpbiB0aGUgZGl2aXNpb24uIAotPHA+Ci1UaGUgdXN1YWwgd2F5IHdhcyB0byB3cml0ZSB0ZXN0IHByb2dyYW1zCi1pbiBDLiBUaGUgbWFpbiBkcmF3YmFjayBiZWluZyB0aGF0IGRldmVsb3BpbmcgYW5kIHJ1bm5pbmcgdGhlIHRlc3RzCi1jb25zdW1lcyBhIGxvdCBvZiB0aW1lLiAKLTxwPgotTm93IHRoZSBnb2FsIGlzIHRvIHdyaXRlIGFsbCAob3IgYXQgbGVhc3QgbW9zdCBvZikgdGhlIHRlc3QgaW4gcGVybAotYWxsb3dpbmcgYSBmYXN0ZXIgY3ljbGUgdGltZSBiZXR3ZWVuIG1vZGlmeWluZyB0aGUgQVBJIGFuZCB0ZXN0aW5nCi1pdC4gKFdlJ2xsIGFsc28gYmUgYWJsZSB0byBkZWJ1ZyBmYXN0ZXIgdGhlIHRlc3QgcHJvZ3JhbXMpLgotPHA+Ci1QZXJsJ3MgcG93ZXIgYWxzbyBlbmFibGVzIHVzIHRvIHdyaXRlIHRlc3QgdXNpbmcgb28gbWV0aG9kb2xvZ3kKLShhbHRob3VnaCB0aGUgQVBJIGlzIHN0cmljdGx5IHByb2NlZHVyYWwpLCB0aHVzIHdlIGNhbiBlYXNpbHkgZGV2ZWxvcCAKLWNvbXBsZXggdGVzdCBzY2VuYXJpb3MuCi08cD4KLUhvcGVmdWxseSAoaS5lLiBpZiB3ZSBoYXZlIHNvbWUgc3BhcmUgdGltZSksIHRoZSBuZXh0IHN0ZXAgd2lsbCBiZSB0bwotY29tYmluZSBUayB3aXRoIFBlcmwgYW5kIFNXSUcgc28gd2UnbGwgYmUgYWJsZSB0byBtb25pdG9yIHdpdGggYSB1c2VyCi1mcmllbmRseSBpbnRlcmZhY2UgdGhlIHByb2dyZXNzIG9mIHRoZSB0ZXN0IHN1aXRlLgotCi08cD4KLTxocj4KLTxwPkRhbmllbCBNaWNoZWxzb24gKERhbmllbC5NaWNoZWxzb25Ac21oaS5zZSkKLTxwPgotQSBjb2xsZWd1ZSBhbmQgSSBhcmUgdXNpbmcgU1dJRyBmb3IgdHdvIHB1cnBvc2VzLCBib3RoIG9mIHdoaWNoCi1jZW50cmUgYXJvdW5kIHRoZSBjcmVhdGlvbiBvZiBhIFB5dGhvbi1iYXNlZCBlbnZpcm9ubWVudCBmb3IgYW5hbHlzaXMKLWFuZCB2aXN1YWxpemF0aW9uIG9mIGRhdGEgZnJvbSB0aGUgU3dlZGlzaCBuYXRpb25hbCB3ZWF0aGVyIHJhZGFyCi1uZXR3b3JrOgotPHVsPgotPGxpPiBpbnRlcmZhY2luZyBvbGQgY29kZQotPGxpPiBpbnRlcmZhY2luZyBuZXcsIHBlcmZvcm1hbmNlIGNyaXRpY2FsLCBjb2RlLgotPC91bD4KLVdlIGhhdmUgYSBjb3VwbGUgb2Ygb3RoZXIgY29sbGVndWVzLCBhbHNvIGF0IFNNSEkgUiZELCB3aG8gYXJlIHdvcmtpbmcKLWluIHNhdGVsbGl0ZS1iYXNlZCByZW1vdGUgc2Vuc2luZyBhY3Rpdml0aWVzIGFuZCB3aG8gd2lsbCBiZSBzdGFydGluZyB0bwotdXNlIFNXSUcgaW4gdGhlIG5lYXIgZnV0dXJlIGZvciB0aGVpciBwdXJwb3Nlcy4KLQotPHA+Ci08aHI+Ci08cD5Sb2dlciBCdXJuaGFtIChyYnVybmhhbUBjcmktaW5jLmNvbSkKLTxwPgotVGhhbmtzIGFnYWluIGZvciBTV0lHLi4uIEl0cyBmdW4sIGFsbG93cyBncmVhdCBwcm9kdWN0aXZpdHkgd2hpbGUgCi1hdm9pZGluZyBtdWNoIHRlZGl1bS4uLgotPHA+Ci1UaGUgY3VycmVudCBhcHBsaWNhdGlvbiAodGhlcmUgd2lsbCBiZSBtYW55IHNwaW4tb2Zmcy92YXJpYXRpb25zKSBpcyAKLWluIHBvbGFyaXphdGlvbiBtaWNyb3Njb3B5LiAgV2UgbWFudWZhY3R1cmUgZWxlY3Ryb25pY2FsbHkgCi1jb250cm9sbGFibGUgcmV0YXJkZXIgcGxhdGVzLCBhbmQgYWxvbmcgd2l0aCBhIHNjaWVudGlzdCBhdCB0aGUgCi1NYXJpbmUgQmlvbG9naWNhbCBMYWIgaW4gV29vZHMgSG9sZSBoYXZlIGRldmVsb3BlZCBhbiBhbGdvL21ldGhvZCAKLXRoYXQgYWxsb3dzIHVzIHRvIHZpc3VhbGl6ZSBhIHNhbXBsZSdzIHJldGFyZGFuY2UgKGRpcmVjdGlvbiBhbmQgCi1tYWduaXR1ZGUpIG92ZXIgdGhlIHdob2xlIGltYWdlLiAgQ29udmVudGlvbmFsIG1ldGhvZHMgYWxsb3cgeW91IHRvIAotc2VlIHRoaXMgc3RydWN0dXJlIG9ubHkgYWxvbmcgb25lIGF4aXMgYXQgYSB0aW1lLi4uICBUaGUgbWFpbiB0b29scyAKLUknbSB1c2luZyBhcmUgUHl0aG9uL1RraW50ZXIvUElML051bVB5L1NXSUcuCi08cD4KLVNvLCBJJ3ZlIHVzZSBTV0lHIHRvOgotPHVsPgotPGxpPiBXcmFwIGEgY29tbWVyY2lhbCBzZXJpYWwgY29tbXVuaWNhdGlvbnMgRExMLgotPGxpPiBXcmFwIGEgY29tbWVyY2lhbCBmcmFtZSBncmFiYmVyIGludGVyZmFjZQotPGxpPiBBZnRlciBwcm90b3R5cGluZyBpbiBQeXRob24sIEkgbW92ZSBjb21wdXRlIGludGVuc2l2ZSByb3V0aW5lcyAKLSAgICAgaW50byBETEwncy4KLTwvdWw+Ci1PdXIgYXBwcyBhcmUgcnVubmluZyB1bmRlciBXaW45NS4gIEkgdGhvdWdodCBpdCB3YXMgcHJldHR5IGNvb2wgdG8gYmUgCi1hYmxlIHRvIGNvbnRyb2wgYSBmcmFtZSBncmFiYmVyLCBkaXNwbGF5IGxpdmUvYWNxdWlyZWQgaW1hZ2VzLCBhbGwgCi1mcm9tIHdpdGhpbiBQeXRob24sIHdpdGhpbiB0aGUgc2FtZSBkYXkgSSByZWNlaXZlZCB0aGUgZnJhbWUgZ3JhYmJlciAKLVNESywgbmV2ZXIgaGF2aW5nIGRlYWx0IHdpdGggc3VjaCBoYXJkd2FyZSBiZWZvcmUhCi0KLTxwPgotPGhyPgotPHA+Ci1TaW1vbiBHaWJzb24gKGdpYnNvbkBkc3RjLnF1dC5lZHUuYXUpIDxwPgotPHA+Ci0KLUkgaGF2ZSBiZWVuIHVzaW5nIFNXSUcgdG8gY3JlYXRlIGEgUHl0aG9uIGludGVyZmFjZSBmb3Igb3VyCi1wcm90b3R5cGUgaW1wbGVtZW50YXRpb24gb2YgR1NTQVBJLiBUaGlzIGlzIGJlaW5nIGRvbmUgc28KLXRoYXQgd2UgY2FuIGluY29ycG9yYXRlIHNlY3VyaXR5IGludG8gdGhlIEhlY3RvciBwcm9qZWN0IGhlcmUKLWF0IERTVEMuIEl0IGFsc28gbWVhbnMgdGhhdCBJIGNhbiB3cml0ZSBQeXRob24gYXBwbGljYXRpb24KLXByb2dyYW1tZXMuIEFsc28gbm93IHdlIGhhdmUgYSBzdGFuZGFyZCBpbnRlcmZhY2UgdG8gR1NTQVBJCi1hbmQgYW55IGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGJlIHBsdWdnZWQgaW4uCi08cD4KLUhlY3RvciBpcyBkZXNjcmliZWQgaW4gYW4gYXJ0aWNsZSBpbiB0aGUgSmFudWFyeS9GZWJydWFyeQotMTk5NyAtIERpc3RyaWJ1dGVkIE9iamVjdHMgPGEgaHJlZj0iaHR0cDovL3d3dy5kZGouY29tL2Rkc2JrLzE5OTcvMTk5Ny4wMS9pbmRleC5odG0iPkRyLiBEb2JiJ3MgU291cmNlYm9vazwvYT4uCi0KLTxocj4KLTxwPgotTWFyayBIYW1tb25kIChNSGFtbW9uZEBza2lwcGluZXQuY29tLmF1KQotPHA+Ci08cD4KLQotSSdtIHVzaW5nIFtTV0lHXSB0byB3cml0ZSBhIGNvbW1lcmljaWFsIGFwcGxpY2F0aW9uLCB3aGljaCBydW5zIGFzIGFuIE5UCi1zZXJ2aWNlLiAgSXQgdXNlcyB0aGUgQ09NIGV4dGVuc2lvbnMgdG8gdGFsayBuYXRpdmUgTUFQSSB0byBleGNoYW5nZQotc2VydmVyLCB0aGUgc2VydmljZSBleHRlbnNpb25zIHRvIHJ1biB1bmF0dGVuZGVkIG9uIE5ULCBhbmQgdGhlIHBpcGUsIGZpbGUKLWFuZCBldmVudCBtb2R1bGVzIHRvIG1hbmFnZSB0aGUgc2VydmljZSBjb250cm9sIG1lc3NhZ2VzIGFuZCBuYW1lZCBwaXBlCi1jb25uZWN0aW9ucyBmcm9tIGNsaWVudHMuICBBbGwgbW9kdWxlcyBuYW1lZCBhYm92ZSB3ZXJlIGdlbmVyYXRlZCBieSBTV0lHLiAKLVRoZSBDT00gZXh0ZW5zaW9ucyB3aWxsIGFsbG93IChvbmNlIHRoZSAuaSBmaWxlIGlzIHVwIHRvIGl0IDotKSBhbnkgbmF0aXZlCi1DT00gaW50ZXJmYWNlIChpZSwgbm90IElEaXNwYXRjaCAoZWcsIFZCL1dvcmQvRXhjZWwpIGJhc2VkKSB0byBiZSBzdXBwb3J0ZWQKLWJ5IFB5dGhvbi4KLQotPHA+Ci08aHI+Ci08cD4gTWljaGFlbCBCZWxsIChtaWNoYWVsYkBnb2xkLm5ldC5hdSkKLTxwPgotPHA+Ci1JJ3ZlIHVzZWQgU1dJRyBvbiBhIExpbnV4IHBsYXRmb3JtIHRvIGNyZWF0ZSBQeXRob24gbW9kdWxlcyBmb3IKLWdyYXBoaW5nIGFuZCBkYXRhYmFzZSBhY2Nlc3MuCi08cD4KLVRoZSBQR1BMT1QgR3JhcGhpY3MgU3Vicm91dGluZSBMaWJyYXJ5IGlzIGEgRm9ydHJhbiBsaWJyYXJ5IGJ5IFRpbQotUGVhcnNvbiAodGpwQGFzdHJvLmNhbHRlY2guZWR1KS4gSSB1bmRlcnN0YW5kIGl0IGlzIG9mdGVuIHVzZWQgYnkKLWFzdHJvbm9tZXJzLiAgSXQgbWF5IGFsc28gYmUgYnVpbHQgaW50byBhIEMgbGlicmFyeS4KLTxwPgotSSB1c2VkIFNXSUcgdG8gd3JhcCB0aGUgQyBsaWJyYXJ5IHdyYXBwaW5nIHRoZSBGb3J0cmFuIGxpYnJhcnkgKCEpCi1pbnRvIGEgUHl0aG9uIG1vZHVsZSwgdXNpbmcgc29tZSBzdHJhaWdodGZvcndhcmQgdHlwZW1hcHMgdG8gY29udmVydAotb25lIGFuZCB0d28gZGltZW5zaW9uYWwgUHl0aG9uIE51bWVyaWMgYXJyYXlzIGludG8gdGhlIGFwcHJvcHJpYXRlCi1wb2ludGVycy4gIEkgaGF2ZW4ndCBtZXRob2RpY2FsbHkgdGVzdGVkIHRoZSBmdWxsIGZ1bmN0aW9uYWxpdHksIGJ1dAotZXZlcnl0aGluZyBJIHRyaWVkIHdvcmtzIGp1c3QgZmluZS4KLTxwPgotSSd2ZSBhbHNvIHVzZWQgU1dJRyB0byB3cmFwIHVwIGEgbGlicmFyeSBvZiBGb3J0cmFuIHN1YnJvdXRpbmVzCi1kZXZlbG9wZWQgd2l0aGluIHRoZSBXZXN0ZXJuIEF1c3RyYWxpYW4gRGVwYXJ0bWVudCBvZiBFbnZpcm9ubWVudGFsCi1Qcm90ZWN0aW9uIHRvIG1hbmFnZSBkYXRhYmFzZXMgb2YgdGltZSBzZXJpZXMgbWV0ZW9yb2xvZ2ljYWwgYW5kIGFpcgotcXVhbGl0eSBkYXRhLiAgSSB1c2VkIFNXSUcgdG8gZ2VuZXJhdGUgYSBzaW1wbGUgc2hhZG93IGNsYXNzIHdoaWNoIEkKLXRoZW4gZXh0ZW5kZWQgZnVydGhlciB0byBtYWtlIHRoZSBpbnRlcmZhY2UgbmljZXIuCi08cD4KLVRoZSBvcmlnaW5hbCBsaWJyYXJ5IHByb3ZpZGVkLCBmb3IgaW5zdGFuY2UsIHN1YnJvdXRpbmVzIG9wZW5kYigpLAotd3JpdGRiKCksIHJlYWRkYigpIGFuZCBjbG9zZGIoKS4gIE15IG1vZHVsZSwgZXBhZGIucHksIHByb3ZpZGVzIGEKLWRhdGFiYXNlIGNsYXNzLCBlcGFkYi5EQiwgd2hpY2ggaXMgaW5zdGFudGlhdGVkLCBkPWVwYWRiLkRCKCkuICBUaGUKLWRhdGFiYXNlIGluc3RhbmNlIHRoZW4gcHJvdmlkZXMgbWV0aG9kcyBkLm9wZW4oKSwgZC5yZWFkKCksIGQud3JpdGUoKQotYW5kIGQuY2xvc2UoKSwgcmV0dXJuaW5nIGRhdGEgYXMgUHl0aG9uIGxpc3RzIGFuZCBhcnJheXMuCi08cD4KLUknbSBwYXJ0aWN1bGFybHkgcGxlYXNlZCB0aGF0IEkgbWFuYWdlZCB0byBkbyB0aGVzZSB0aGluZ3Mgd2l0aCBteQotcmVhZGluZyBvbmx5IGtub3dsZWRnZSBvZiBDLCBhbmQgbG90cyBvZiBjdXR0aW5nIGFuZCBwYXN0aW5nLgotPHA+Ci08aHI+Ci08cD4KLVNvZXJlbiBIZW5rZWwgKHNvZXJlbkBobmkudW5pLXBhZGVyYm9ybi5kZSkgPHA+Ci08cD4KLVdlIGFyZSBjdXJyZW50bHkgaW4gdGhlIHByb2Nlc3Mgb2YgcmVkZXZlbG9waW5nIE9PUFVTLCBhIHN5c3RlbSBmb3IKLW1vZGVsaW5nIHBsYW50IHN5c3RlbXMgYW5kIGdlbmVyYXRlIHBsYW50IGNvbnRyb2wgc29mdHdhcmUgZnJvbSBhIG1vZGVsLgotKERvbid0IGFzayB3aGF0IE9PUFVTIHN0YW5kcyBmb3IgLWl0J3MgYSBHZXJtYW4gYWNyb255bS4pIFdlIGRlY2lkZWQgdG8gCi1yZWltcGxlbWVudCBpdHMgdXNlciBpbnRlZmFjZSB1c2luZyBUY2wvVGsuIE9PUFVTIHB1dHMgaXRzIG1vZGVscwotaW50byBhbiBPT0RCTVMsIG5hbWVseSBQT0VULiBTbyB3ZSBuZWVkZWQgYW4gaW50ZWdyYXRpb24gb2YgUE9FVAotKHdoaWNoIGlzIHRpZ2h0bHkgY291cGxlZCB0byBDKyspIHdpdGggVGNsL1RrLCBhbmQgd2UndmUgc3VjY2Vzc2Z1bGx5Ci1kb25lIHRoYXQgd2l0aCBTV0lHLgotCi08cD4KLTxocj4KLTxwPgotUGV0ZXIgQS4gVGlua2VyIChwYXRpbmtlckBtc21haWw0LmhhYy5jb20pIDxwPgotPHA+Ci1XZSdyZSB1c2luZyBTV0lHIHRvICJnbHVlIiBUY2wvVGsgdG8gY3VzdG9tIGFuZCB0aGlyZC1wYXJ0eSBsaWJyYXJpZXMuIEluCi1wYXJ0aWN1bGFyLCBTV0lHIHByb3ZpZGVzIGFuIGVsZWdhbnQgbWVhbnMgZm9yIGNvbnRyb2xsaW5nIFNlbnNlOAotQ29ycG9yYXRpb24ncyBXb3JsZFRvb2xLaXQgKFdUSykgdmlydHVhbCBlbnZpcm9ubWVudCBkZXZlbG9wbWVudCBzeXN0ZW0gZnJvbSBhCi1UayBHVUkuIFRoZSByZXN1bHQgaXMgaGlnaGx5IHBvcnRhYmxlIGNvZGUgdGhhdCBpcwotaW5kZXBlbmRlbnQgb2YgV1RLJ3MgcHJvcHJpZXRhcnkgR1VJIHlldCBhbGxvd3MgYWNjZXNzIHRvIHZpcnR1YWxseSBhbGwgV1RLCi1mdW5jdGlvbnMgZnJvbSBhIFRjbCBzY3JpcHQgYW5kL29yIGEgVGsgR1VJLiBUaGlzIGFwcHJvYWNoIGlzCi1iZWluZyB1c2VkIGluIGEgdmFyaWV0eSBvZiBwcm9qZWN0cyBpbnZvbHZpbmcgYWR2YW5jZWQgM0QgdmlzdWFsaXphdGlvbgotb24gYSB2YXJpZXR5IG9mIGltY29tcGF0aWJsZSBzeXN0ZW1zLgotCi08cD4KLTxocj4KLTxwPgotUGV0ZXItUGlrZSBTbG9hbiAocHBzbG9hbkBjcy51dGFoLmVkdSkgPHA+Ci08cD4KLUkgaGF2ZSBiZWVuIHVzaW5nIFNXSUcgZm9yIHNldmVyYWwgcHJvamVjdHMsIG1vc3RseSB0byBzdHJlYW1saW5lCi13b3JraW5nIHdpdGggT3BlbkdMIHVuZGVyIFRjbC9Uay4gIEV4YW1wbGVzIGFyZSBhIHRpbWUtY3JpdGljYWwKLWZyYW1ld29yayBmb3Igdmlld2luZyBMdW1pZ3JhcGhzIChiYXNpY2FsbHkgYSBkaWdpdGFsIGhvbG9ncmFtKSBhbmQgYQotcHJvb2Ygb2YgY29uY2VwdCBhcHBsaWNhdGlvbiBmb3Igb3B0aW1pemluZyB0ZXh0dXJlIGNvb3JkaW5hdGVzIGJhc2VkCi1vbiByZWxhdGl2ZSBpbXBvcnRhbmNlIChkZXRlcm1pbmVkIGJ5IGFuYWx5emluZyB0aGUgZXhpc3RpbmcgdGV4dHVyZQotYW5kIHVzZXIgc3BlY2lmaWNhdGlvbi4pICBVc2luZyBTV0lHIGhhcyBkcmFtYXRpY2FsbHkgcmVkdWNlZCBteQotZGV2ZWxvcG1lbnQgdGltZSBhbGxvd2luZyBtZSB0byBkZXZlbG9wIGNvZGUgYW5kIGRlYnVnIHN0YXRlIGluIGFuCi1pbnRlcnByZXRlZCBlbnZpcm9ubWVudCAoY3VycmVudGx5IFRjbCwgYnV0IEkgdGhpbmsgSSBhbSBnb2luZyB0byBtb3ZlCi10byBQeXRob24pLgotCi08cD4KLTxocj4KLTxwPgotQ2hyaXMgTXllcnMgKG15ZXJzQGJlYW10ZWNoLmNvbSkgPHA+Ci08cD4KLVdlIGF0IEJlYW0gVGVjaG5vbG9naWVzLCBJbmMuIGhhdmUgdXNlZCBTV0lHIHRvIGJlZ2luIGRldmVsb3BpbmcgYW4KLWludGVycHJldGVkIFB5dGhvbiBpbnRlcmZhY2UgdG8gb3VyIFBERVNvbHZlIGxpYnJhcnkuICBQREVTb2x2ZSBpcyBhCi1DKysgY2xhc3MgbGlicmFyeSBmb3IgZm9ybXVsYXRpbmcgYW5kIHNvbHZpbmcgcGFydGlhbCBkaWZmZXJlbnRpYWwKLWVxdWF0aW9ucyAodXNpbmcgZWl0aGVyIGZpbml0ZSBkaWZmZXJlbmNlIG1ldGhvZHMgb3IgZmluaXRlIGVsZW1lbnQKLW1ldGhvZHMpLCBhbmQgbWFrZXMgdXNlIG9mIE9PIHRlY2hub2xvZ3kgdG8gcHJlc2VudCBhIGhpZ2gtbGV2ZWwKLXN5bWJvbGljIGludGVyZmFjZSB0byB0aGUgcHJvZ3JhbW1lci4gIFRoaXMgbWFrZXMgdGhlIGRlc2NyaXB0aW9uIG9mCi1QREUtYmFzZWQgcHJvYmxlbXMgY29uY2lzZSwgYW5kIGVuYWJsZXMgdGhlIGVtYmVkZGluZyBvZiBQREUtYmFzZWQKLW1vZGVscyBpbiBsYXJnZXIgY29tcHV0YXRpb25hbCBmcmFtZXdvcmtzIChlLmcuLCB0byBkbyBQREUtYmFzZWQKLWRlc2lnbiBvcHRpbWl6YXRpb24gb3IgY291cGxlZCBQREUtYmFzZWQgc3lzdGVtcykuICBTV0lHIGhhcyBhbGxvd2VkCi11cyB2ZXJ5IHF1aWNrbHkgdG8gZGV2ZWxvcCBhIHByb3RvdHlwZSBQeXRob24gaW50ZXJmYWNlIHRvIHRoYXQKLWxpYnJhcnkuICBTdWNoIGFuIGludGVyZmFjZSBob2xkcyB0aGUgcHJvbWlzZSBvZjogKDEpIGFsbG93aW5nIGV2ZW4KLW1vcmUgcmFwaWQgcHJvdG90eXBpbmcgb2YgbW9kZWxzLCAoMikgZHluYW1pYyBmb3JtdWxhdGlvbiBvZiBtb2RlbHMKLWFuZCBzb2x1dGlvbiBtZXRob2RzLCBhbmQgKDMpIGEgbWV0aG9kIGZvciBjb252ZW5pZW50bHkgaW50ZWdyYXRpbmcKLVBERVNvbHZlIHdpdGggb3RoZXIgcGFja2FnZXMgKGkuZS4sIHRocm91Z2ggdGhlIFB5dGhvbiBzdWJzdHJhdGUpLgotTXkgaG9wZSBpcyB0byBtYWtlIGEgUHl0aG9uLWVuYWJsZWQgUERFU29sdmUgYSB0b29sIGZvciBQREVzIHNvbWV0aGluZwotbGlrZSB3aGF0IE1hdGxhYiBwcm92aWRlcyBmb3IgbGluZWFyIGFsZ2VicmEsIGkuZS4sIGEgaGlnaC1sZXZlbCwKLWludGVycHJldGVkIGVudmlyb25tZW50IGZvciByYXBpZCBwcm90b3R5cGluZyBhbmQgaW50ZXJhY3RpdmUKLWV4cGxvcmF0aW9uLCB3aXRoIGFuIGVtYmVkZGVkIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBzY3JpcHRpbmcKLWNvbXBsZXggY29kZXMuCi0KLTxwPgotQW5kIHdoaWxlIEkgaGF2ZSBiZWVuIGxvb2tpbmcgZm9yIGEgd2hpbGUgZm9yIGEgcG93ZXJmdWwgYW5kCi1leHRlbnNpYmxlIGludGVycHJldGVkIGxhbmd1YWdlIGZvciB1c2UgYXMgYSBmcm9udC1lbmQgdG8gY29tcGlsZSBjb2RlcwotKHdoaWNoIFB5dGhvbiBpcyksIFNXSUcgaGFzIG1hZGUgdGhlIGludGVyZmFjaW5nIG9mIHRoYXQgY29kZSB2YXN0bHkKLWVhc2llciB0aGFuIGl0IHdvdWxkIGhhdmUgYmVlbiBvdGhlcndpc2UuICBXaGlsZSB3ZSBhcmUgc3RpbGwgaW4gdGhlCi1wcm90b3R5cGluZyBzdGFnZXMgb2YgdGhpcyBvdmVyYWxsIGFwcHJvYWNoLCBTV0lHIGVuYWJsZWQgdXMgdG8gZ2V0IHVwCi1hbmQgcnVubmluZyBxdWlja2x5IHdpdGggYSBQeXRob24gaW50ZXJmYWNlIHRvIFBERVNvbHZlLCBhbmQKLWRlbW9uc3RyYXRlIHRoZSB1dGlsaXR5IG9mIHN1Y2ggYW4gYXBwcm9hY2ggZm9yIGEgY29tcGxleCBDKysgbGlicmFyeQotKHNvbWV0aGluZyB0aGF0IFNXSUcgd2FzIG5vdCBvcmlnaW5hbGx5IGRlc2lnbmVkIHRvIHJlYWxseSB0YWNrbGUpLgotCi08cD4KLTxocj4KLTxwPgotVmxhZGltaXIgSS5VbG9nb3YgKGdhbmRhbGZAc3RhcnNoaXAuc2t5cG9ydC5uZXQpIDxwPgotPHA+Ci0KLVNXSUcgaXMgYmVpbmcgdXNlZCB0byBjcmVhdGUgYSBQeXRob24gaW50ZXJmYWNlIHRvIENMSVBTIGV4cGVydCBzeXN0ZW0gc2hlbGwKLWluc2lkZSBteSBnZW5lcmFsIHJlc2VhcmNoIGpvYiB1bmRlciBPT0RCTVMgRE5FVC4gVGhpcyBleHRlbnRpb24gbW9kdWxlCi1wcm92aWRlIGZ1bGwgY29udHJvbCBmcm9tIFB5dGhvbiBlbnZpcm9ubWVudCB0byBleHBlcnQgc3lzdGVtOiBDaGFuZ2UgYQotZ2xvYmFsIHZhbGlhYmxlcywgcmVnaXN0ZXIgYSBmYWN0LCBtYW5pcHVsYXRpb24gd2l0aCBhZ2VuZGEsIGZhY3QgbGlzdHMsCi1tb2R1bGVzLCBmdW5jdGlvbnMsIGNsYXNzZXMgYW5kIGluc3RhbmNlcy4gWW91IGNhbiBkeW5hbWljYWx5IGNyZWF0ZSBhbmQKLWV4ZWN1dGUgQ0xJUFMgY29tbWFuZHMgdXNpbmcgY2xpcHMuUm91dGVDb21tYW5kIGZ1bmN0aW9uIGNhbGwuIE1vZHVsZQotaW50ZXJmYWNlIGFyZSBzaW1pbGFyIHRvIENMSVBTIEFkdmFuY2VkIEFQSSwgd2hvIGRlc2NyaWJlZCBpbnRvIENMSVBTCi1kb2N1bWVudGF0aW9uLiBBbGwgYWRkaXRpb25hbCBkb2N1bWVudGF0aW9uLCBQeXRob24gY2xhc3NlcyBhcmUgZGlzdHJpYnV0ZWQKLXRvby4gTW9kdWxlIHdhcyBiZSB0ZXN0ZWQgb24gV2luZG93cy9OVCBhbmQgU1VOIFNvbGFyaXMgMi40IGhvc3QgcGxhdGZvcm1zLAotQ0xJUFMgdmVyc2lvbjogNi4wNCwgUHl0aG9uIHZlcnNpb24gMS40LiBUaGlzIG1vZHVsZSBjb25zaXN0IGFib3V0IDI3MAotZnVuY3Rpb25zLiBUaGlzIGpvYiB0b29rIDMgZGF5cyBvZiBteSBqb2IgYXQgb2N0b2JlciAxOTk3LgotCi08cD4KLTxocj4KLTxoMz4gVG9vbHMgYW5kIE1vZHVsZXMgPC9oMz4KLVRoZSBmb2xsb3dpbmcgdG9vbHMgYW5kIG1vZHVsZXMgaGF2ZSBiZWVuIHByb2R1Y2VkIHVzaW5nIFNXSUcKLW9yIGFyZSByZWxhdGVkIHRvIFNXSUcuCi0KLTx1bD4KLTxsaT48YSBocmVmPSJodHRwOi8vd3d3LnRoZXN0dWZmLm5ldC9ib2IvcHJvamVjdHMvYmxhZGUiPkJMQURFPC9hPi4gQSB3ZWIgcHVibGlzaGluZyBlbnZpcm9ubWVudC4KLQotPHA+Ci08bGk+PGEgaHJlZj0iaHR0cDovL3N0dWRlbnRzLmNzLmJ5dS5lZHUvfmJ1dGxlci9qbmkvUHlKYXZhLmh0bWwiPlB5SmF2YTwvYT4uIFByb3ZpZGVzCi1QeXRob24gYWNjZXNzIHRvIEphdmEgbWV0aG9kcyAoS2V2aW4gQnV0bGVyKS4gCi0KLTxwPgotPGxpPiA8YSBocmVmPSJmdHA6Ly9mdHAuY2Fvcy5rdW4ubmwvcHViL21pc2MvanN3aWcudGFyLmd6Ij5KYXZhU1dJRzwvYT4uIEFuCi1leHBlcmltZW50YWwgU1dJRyBtb2R1bGUgdGhhdCBpbnRlZ3JhdGVzIEMvQysrIHdpdGggSmF2YSAoSGFyY28gZGUgSGlsc3RlcikuCi0KLTxwPgotPGxpPjxhIGhyZWY9Imh0dHA6Ly9wbGF5Z3JvdW5kLnN1bi5jb20vfmJoYXJhdC9waWxvdG1nci5odG1sIj5QaWxvdCBNYW5hZ2VyPC9hPi4gSG9vawoteW91ciBVUyBSb2JvdGljcyBQYWxtUGlsb3QgdXAgdG8geW91ciBTdW4gd29ya3N0YXRpb24gKEJoYXJhdCBNZWRpcmF0dGEpLgotCi08cD4KLTxsaT4gPGEgaHJlZj0iaHR0cDovL3d3dy5taWMuYXRyLmNvLmpwL35ndWxsaXZlci9XVEsvd3d3Ij5QeVdUSzwvYT4uICBBIFB5dGhvbgotaW50ZXJmYWNlIHRvIHRoZSBXb3JsZFRvb2xLaXQgKGEgdmlydHVhbCByZWFsaXR5IG1vZGVsaW5nIHRvb2xraXQpLiAoUm9iZXJ0byBMb3BleiBHdWxsaXZlcikKLQotPHA+Ci08bGk+IEEgUHl0aG9uIGludGVyZmFjZSB0bwotPGEgaHJlZj0iaHR0cDovL3N0YXJzaGlwLnB5dGhvbi5uZXQvY3Jldy9yb2JpbmQvaW5kZXguaHRtbCI+QlNEIERCIDIuNy54PC9hPiAoUm9iaW4gRHVubikuCi0KLTxwPgotPGxpPjxhIGhyZWY9Imh0dHA6Ly9hbGxkdW5uLmNvbS93eFB5dGhvbi9pbmRleC5odG1sIj53eFB5dGhvbjwvYT4uIEEgUHl0aG9uIGV4dGVuc2lvbgotbW9kdWxlIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSB3eFdpbmRvd3MgR1VJIGNsYXNzZXMuCi0KLTxwPgotPGxpPiBOZXQtUGNhcC4gIEEgUGVybCBpbnRlcmZhY2UgdG8gdGhlIGxpYnBjYXAgbGlicmFyeSAoUGV0ZXIgTGlzdGVyKS4KLQotPHA+Ci08bGk+IFgxMTo6V2NsLiBBIFBlcmwgaW50ZXJmYWNlIHRvIHRoZSBXaWRnZXQgQ3JlYXRpb24gTGlicmFyeSAoSm9lIEJ1ZWhsZXIpLgotCi08L3VsPgotCi08aHI+Ci08aDM+IE90aGVyIEFwcGxpY2F0aW9uIEFyZWFzIDwvaDM+Ci0KLVRoZXNlIGFyZSBzb21lIG9mIHRoZSBhcHBsaWNhdGlvbiBhcmVhcyB0aGF0IEkndmUgaGVhcmQgYWJvdXQgU1dJRyBiZWluZwotdXNlZCAoYnV0IGRvbid0IGhhdmUgbWFueSBkZXRhaWxzKS4KLQotPHVsPgotPGxpPiBTZW1pY29uZHVjdG9yIENBRC4KLTxsaT4gRGF0YWJhc2VzLgotPGxpPiBSZW1vdGUgc2Vuc2luZy4KLTxsaT4gU2NpZW50aWZpYyB2aXN1YWxpemF0aW9uIGFuZCBzaW11bGF0aW9uLgotPGxpPiBGaW5hbmNpYWwgTW9kZWxpbmcuCi08bGk+IERpc3RyaWJ1dGVkIGFuZCBwYXJhbGxlbCBjb21wdXRpbmcuCi08bGk+IERpc3RyaWJ1dGVkIG9iamVjdHMgKHVzZSB3aXRoIENPUkJBKS4KLTxsaT4gU29mdHdhcmUgdGVzdGluZy4KLTwvdWw+Ci0KLTxocj4KLTxoMz4gSG93IGFyZSB5b3UgdXNpbmcgU1dJRz8gPC9oMz4KLQotSWYgeW91IHdvdWxkIGxpa2UgdG8gbGlzdCB5b3VyIHByb2plY3QgaGVyZSwgcGxlYXNlCi1zZW5kIGUtbWFpbCB0byBiZWF6bGV5QGNzLnVjaGljYWdvLmVkdS4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcHJvcGFnYW5kYS5odCBiL3N3aWd3ZWIvcHJvcGFnYW5kYS5odApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTg5ZDE5My4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3Byb3BhZ2FuZGEuaHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNzAgKzAsMCBAQAotU1dJRyBQcm9wYWdhbmRhCi0KLTxwPjxpbWcgc3JjPSJpbWFnZXMvcHJvcGFnYW5kYS5wbmciPgotCi08cD4KLVRoZSBmb2xsb3dpbmcgY29tbWVudHMgYWJvdXQgU1dJRyB3ZXJlIGNvbGxlY3RlZCBieSBhIHVzZXIgc3VydmV5IGNvbmR1Y3RlZAotaW4gTWFyY2gsIDE5OTguICAgIAotCi08dWw+Ci0KLTxwPjxsaT4iU1dJRyBoYXMgaGVscGVkIHVzIG1pbmltaXplIHRoZSBoYXNzbGUgb2Ygd3JpdGluZyBtYW51YWwgd3JhcHBlcnMuCi1TaW5jZSBTV0lHIGhhcyBwcm92ZW4gdG8gYmUgcmF0aGVyIGVhc3kgdG8gdXNlLCBJIGZpbmQgSSBjYW4gY2Fycnkgb3V0IHRoZSB0eXBlcyBvZiB3cmFwcGluZwotYWN0aXZpdGllcyB3aGljaCB3b3VsZCBvdGhlcndpc2UgaGF2ZSBiZWVuIHRoZSByZXNwb25zaWJpbGl0eSBvZiBhCi1jb21wdXRlciBzY2llbnRpc3QuIgotCi08cD48bGk+IkkgcmVhbGx5IGxvdmUgdGhlIGZhY3QgdGhhdCB0aGUgbGVhcm5pbmcgY3VydmUgaXMgc2hvcnQKLWFuZCBmbGF0LiAgSSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzIGZhY2lsaXR5IHZlcnkgb2Z0ZW4sCi1idXQgd2hlbiBJIGFic29sdXRlbHkgaGF2ZSB0byBsaW5rIGluIGV4dGVybmFsIEMgcm91dGluZXMsCi1vciB3aGVuIEkgaGF2ZSB0byBnZXQgdGhlIGxhc3QgZHJvcCBvZiBzcGVlZCBmcm9tIHNvbWV0aGluZwotcHJldmlvdXNseSB3cml0dGVuIGluIFBlcmwsIEkgY2FuIGNvdW50IG9uIFNXSUcgdG8gYmUgdGhlcmUuCi1XaGVuIEkgZG8gdXNlIFNXSUcsIEkgZG9uJ3QgbmVlZCB0byBzcGVuZCBob3VycyBsZWFybmluZwotYW5kIGRlYnVnZ2luZyB0aGUgc3lzdGVtLiAgVGhpcyBpcyB0aGUgY2xvc2VzdCB0aGluZyB0bwotY3V0LWFuZC1wYXN0ZSBJJ3ZlIGV2ZXIgc2VlbiBpbiBpbnRlci1sYW5ndWFnZSBsaWJyYXJ5Ci1jcmVhdGlvbi4iCi0KLTxwPjxsaT4iV2UgYXJlIGEgcmVzZWFyY2ggZ3JvdXAgdGhhdCBkZXZlbG9wcyBtZWRpY2FsIGltYWdpbmcgc29mdHdhcmUuCi1XZSBhcmUgaW50ZXJlc3RlZCBpbiBpbWFnZSBwcm9jZXNzaW5nL3Zpc3VhbGl6YXRpb24gcmVzZWFyY2gsCi1hbmQgZm9yIG91ciBzb2Z0d2FyZSwgd2Ugd2FudCBhIHNpbXBsZSBhbmQgcG9ydGFibGUgdG9vbCB0bwotZ2VuZXJhdGUgdXNlciBpbnRlcmZhY2VzLiBGb3IgdGhpcywgd2UgY3VycmVudGx5IHVzZQotVGNsL1RrLCBhbmQgU1dJRyB3aGljaCBwcm92aWRlcyBhIG5pY2Ugd2F5IHRvIGNvbm5lY3Qgb3VyCi1zb2Z0d2FyZSAoaW4gQysrKSB0byB0aGUgdGNsLXNjcmlwdHMuIgotCi08cD48bGk+IlZlcnkgcXVpY2sgZmlyc3QgcmVzdWx0cy4iCi0KLTxwPjxsaT4iRWFzeSB0byB1c2UsIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQgbGFuZ3VhZ2UgaW50ZXJuYWxzLiBJdCBpcyBhIGJvb24gZm9yIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMsIGxpa2UgbWUuIgotCi08cD48bGk+IkkgbGlrZSB0aGUgZmFjdCB0aGF0IGl0IGF1dG9tYXRlcyBtdWNoIG9mIHRoZSB0ZWRpb3VzIHdvcmsKLWluIGJ1aWxkaW5nIGFuIGludGVyZmFjZSBDL0MrKyBmdW5jdGlvbnMuICBUaGlzIG1ha2VzIGRldmVsb3BtZW50IGVhc2llci4iCi0KLTxwPjxsaT4iU1dJRyBpcyBieSBmYXIgdGhlIGVhc2llc3Qgd2F5IEkgaGF2ZSBmb3VuZCB0byBnZW5lcmF0ZSAKLXNjcmlwdGluZyBpbnRlcmZhY2VzIGZvciBzY2llbnRpZmljIHNvZnR3YXJlLiBTV0lHIG1ha2VzIGl0IAotcHJhY3RpY2FsIHRvIHVzZSBhIHNpbmdsZSwgcG93ZXJmdWwgc2NyaXB0aW5nIGxhbmd1YWdlIGZvciAKLWFsbCBwcm9qZWN0cyByYXRoZXIgdGhhbiB3cml0aW5nIGEgY3VzdG9tIGludGVyZmFjZSB0byBlYWNoLiAKLUl0IGFsc28gZW5jb3VyYWdlcyBhIGNvbnNpc3RlbnQgYW5kIG1vZHVsYXIgZm9ybSBmb3IgYSBwcm9ncmFtLAotYW5kIG1ha2VzIGl0IGVhc2llciB0byBhZGQgY29udHJpYnV0aW9ucyB0byBteSBwcm9ncmFtcyBmcm9tIAotb3RoZXIgdXNlcnMvcHJvZ3JhbW1lcnMuIgotCi08cD48bGk+IkkgbGlrZSB0aGUgZWFzZSB3aXRoIHdoaWNoIHNjcmlwdGluZyBsYW5ndWFnZXMgY2FuIGJlIGV4dGVuZGVkLgotVGhlIGZhY3QgdGhhdCB3ZSBjb3VsZCBzbyBlYXNpbHkgaW50ZXJmYWNlIHdpdGggTG90dXMgTm90ZXMgb24gTlQgdXNpbmcgUHl0aG9uIHdhcyBqdXN0IGFtYXppbmcuIgotCi08cD48bGk+IlNXSUcgbWFrZXMgbGlua2luZwotbXkgYXBwbGljYXRpb24gdG8gYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgZWFzeSBlbm91Z2gKLXRoYXQgaXQgaXMgd29ydGh3aGlsZS4iCi0KLTxwPjxsaT4iSSBjYW1lLCBJIHNhdywgSSB3cmFwcGVkLiAgQW5kIGl0IHJhbi4gIFdvbyBob28hIgotCi08cD48bGk+IldpdGhvdXQgU1dJRyBpdCB3b3VsZCBoYXZlIHRha2VuIG11Y2gsIG11Y2ggbG9uZ2VyIGZvcgotb3VyIGdyb3VwIHRvIHVzZSBQeXRob24gYXMgYW4gZXh0ZW5zaW9uIGxhbmd1YWdlLiAgT3VyIHdob2xlCi1hcHBsaWNhdGlvbiB3YXMgd3JpdHRlbiBtb3N0bHkgaW4gQysrLiAgV2Ugd2FudGVkIHRvIGxvb2sKLWludG8gdXNpbmcgUHl0aG9uIGZvciBwb3J0aW9ucyBvZiBpdCBpbiBvcmRlciB0byBtYWtlIGl0Ci1lYXNpZXIgdG8gZXh0ZW5kLiAgUHl0aG9uIGhhcyBhIGZhaXJseSBuaWNlIGludGVyZmFjZSBmb3IKLWRvaW5nIHRoaXMgc29ydCBvZiB0aGluZy4gIFRoZSB0cm91YmxlIHdhcyB0aGF0IHdlIG5lZWRlZCB0bwotbWFrZSBodW5kcmVkcyBvZiBDKysgY2xhc3NlcyBhdmFpbGFibGUgdG8gUHl0aG9uLiAgVGhpcwotd291bGQgaGF2ZSB0YWtlbiBhIHZlcnkgbG9uZyB0aW1lICh0byB3cml0ZSB0aGUgd3JhcHBlciBjb2RlKS4KLVNXSUcgYWxsb3dlZCB1cyB0byBzcGVuZCBhIG1pbmltYWwgYW1vdW50IG9mIHRpbWUgd2l0aAotdGhlIHdyYXBwZXIgY29kZSBhbmQgbW9zdCBvZiBvdXIgdGltZSBtb3Zpbmcgc3R1ZmYgdG8gUHl0aG9uCi0od2hpY2ggd2FzIHRoZSBiaWcgcG9pbnQgaW4gdGhlIGZpcnN0IHBsYWNlKS4iCi0KLTxwPjxsaT4iU1dJRyBpcyBhIGh1Z2UgdGltZS1zYXZlci4gIEkgaGF2ZSBhcHByb3hpbWF0ZWx5IDMwLDAwMCAKLWxpbmVzIG9mIEMgYW5kIFB5dGhvbiBjb2RlIHRoYXQgaGF2ZSBiZWVuIGdlbmVyYXRlZCBieSAKLVNXSUcgdGhhdCBJIGRpZG4ndCBoYXZlIHRvIHdyaXRlIGJ5IGhhbmQsIGRvbid0Ci1oYXZlIHRvIGZpeCBzeW50YXggYW5kIGZ1bWJsZS1maW5nZXIgZXJyb3JzIGluLCBhbmQgCi1kb24ndCBoYXZlIHRvIGFnZ3Jlc3NpdmVseSB0ZXN0LiIKLQotPHA+PGxpPiJTV0lHIGhlbHBzIHVzIGluIHRha2luZyBhd2F5IHBhcnQgb2YgdGhlIGVycm9yLXByb25lIHRhc2sgb2YgbWFraW5nCi10aGUgQyByb3V0aW5lcyBhY2Nlc3NpYmxlIGZyb20gUHl0aG9uIGFuZCBoYXMgY29uc2lkZXJhYmx5IGltcHJvdmVkCi1vdXIgZWZmaWNpZW5jeS4iCi0KLTxwPjxsaT4iSSBsaWtlIGFsbCB0aGUgdGltZSBJIGhhdmUgc2F2ZWQgYnkgbm90IHdyaXRpbmcgdGhlIGludGVyZmFjZXMgbXlzZWxmLiIKLQotPHA+PGxpPiJTV0lHIHNhdmVzIGEgbG90IG9mIG15IGVuZXJneSBpbiBpbnRlcmZhY2luZyB3aXRoIG1hbnkgZnJlZQotQy9DKysgbGlicmFyaWVzIGluIG15IHByb2plY3QuIgotCi08cD48bGk+IlNXSUcgaGFuZGxlcyB0aGUgZ29yeSBkZXRhaWxzIGFuZCBhbGxvd3MgbWUgdG8gY29uY2VudHJhdGUgb24gdGhlIGltcG9ydGFudCB0aGluZ3MuIgotCi08cD48bGk+IlVzaW5nIFNXSUcgaXMgcmVhbGx5IGZ1biwgYmVjYXVzZSBpdCBzYXZlcyB5b3UgZnJvbSAKLWEgbG90IG9mIG1lY2hhbmljYWwgd29yayBhbmQgaXQgdGFrZXMgY2FyZSBvZiBhbGwgdGhlIAotZGV0YWlscyB5b3UgZG9uJ3Qgd2FudCB0byBib3RoZXIgd2l0aCBsZXR0aW5nIHlvdSAKLWNvbmNlbnRyYXRlIG9uIHRoZSByZWFsIHByb2JsZW0uIgotCi08cD48bGk+IlRoYW5rcyBhZ2FpbiBmb3IgU1dJRy4uLiBJdCdzIGZ1biBhbmQgYWxsb3dzIGdyZWF0IHByb2R1Y3Rpdml0eSB3aGlsZQotYXZvaWRpbmcgbXVjaCB0ZWRpdW0uIgotCi08cD48bGk+IltJIGxpa2VdIHRoZSBhYmlsaXR5IHRvIHdyaXRlIGV4dGVuc2lvbnMgYmFzaWNhbGx5IHdpdGhvdXQgaGF2aW5nIHRvIHRoaW5rIHRvbwotaGFyZCBhYm91dCB3aGF0IEknbSBkb2luZy4iCi0KLTxwPjxsaT4iU1dJRyBhbGxvd3MgbWUgdG8gZ2V0IG9uIHdpdGggc2NyaXB0aW5nCi1hbmQgd3JpdGluZyBDKysgY29kZSB3aXRob3V0IGhhdmluZyB0byB3b3JyeSBhYm91dCB0aGUgCi0odXN1YWxseSBjb25zaWRlcmFibGUpIGlzc3VlcyBpbnZvbHZlZCBpbiBleHRlbmRpbmcgdGhlCi1zY3JpcHRpbmcgbGFuZ3VhZ2Ugd2l0aCBteSBjdXN0b20gY29tcG9uZW50cy4iCi0KLTxwPjxsaT4iVXNpbmcgYSBzY3JpcHRpbmcgbGFuZ3VhZ2UgYXMgZ2x1ZSBiZXR3ZWVuIEMrKyBjb21wb25lbnRzCi1pcyBhIHBvd2VyZnVsIHBhcmFkaWdtIGZvciBjb21iaW5pbmcgZmxleGliaWxpdHkgd2l0aCAKLXJvYnVzdG5lc3MgYW5kIGVmZmljaWVuY3kuICBTV0lHIGVuYWJsZXMgdGhpcyBtb2RlbCBieQotcHJvdmlkaW5nIGEgc29saWQgYnJpZGdlIGJldHdlZW4gdGhlIEMrKyBjb21wb25lbnQgYW5kIAotdGhlIHNjcmlwdGluZyBsYW5ndWFnZS4iCi0KLTxwPjxsaT4iVGhlIGFiaWxpdHkgdG8gYGBmb2xsb3cnJyB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIGNvcmUKLWFwcGxpY2F0aW9uIHdpdGhvdXQgY29uc3RhbnRseSByZWJ1aWxkaW5nIHRoZSBpbnRlcmZhY2UKLWlzIHZlcnkgZWZmZWN0aXZlLiBUaGUgZGV2ZWxvcG1lbnRzIG9mIHRoZSBrZXJuZWwgYW5kIGl0cyBpbnRlcmZhY2UgYXJlIAotbXV0dWFsbHkgcHJvdGVjdGVkIHRvIGEgbGFyZ2UgZGVncmVlLiIKLQotPHA+PGxpPiJTV0lHIGFsbG93cyB1cyB0byByZWN5Y2xlIGEgbG90IG9mIHVnbHkgb2xkIEMgY29kZSBhbmQgcHV0Ci1pdCBpbnRvIGEgcmVhc29uYWJsZSBtb2R1bGUgc3RydWN0dXJlIGFuZCBzbmF6enkgbmV3IHVzZXIKLWludGVyZmFjZXMuIgotCi08cD48bGk+Ikl0IGFsbG93cyB1cyB0byBsZXZlcmFnZSB0aGUgYWR2YW50YWdlcyBvZiB0aGUgc2NyaXB0aW5nCi1sYW5ndWFnZSwgZXNwZWNpYWxseSB3aGVuIHNvIG1hbnkgb3RoZXIgc2NyaXB0cyBhcmUgYWxyZWFkeQotYmVpbmcgd3JpdHRlbiB0byBnbHVlIHByb2dyYW1zIHRvZ2V0aGVyIGFuZCBzb21lIG9mIG91cgotb3RoZXIgdG9vbHMgaGF2ZSB0aGVpciBvd24gc2NyaXB0aW5nIGxhbmd1YWdlIGludGVyZmFjZS4KLVVzaW5nIFNXSUcgd2lsbCBhbGxvdyB1cyB0byBwcm9wZXJseSBpbnRlZ3JhdGUgZWFjaCBvZiB0aGUKLXBhcnRzIGRpcmVjdGx5IGludG8gdGhlIGxhbmd1YWdlIGluc3RlYWQgb2YgYSBjb2xsZWN0aW9uCi1vZiBzeXN0ZW0oKSBjYWxscy4iCi0KLTxwPjxsaT4iQmVmb3JlIEkgaGFkIHRvIHVzZSBDKysgZm9yIG15IGBgcmFwaWQnJyBwcm90b3R5cGluZy4KLU5vdyBJIGNhbiBzY3JpcHQgaXQhIgotCi08cD48bGk+Ik15IGNvZGUgaXMgY2xlYW5lciBhbmQgbW9yZSBjb21wYWN0IHdoaWNoIG1ha2VzIGl0IGVhc2llciB0bwotcmVhZCBhbmQgdW5kZXJzdGFuZC4gIFNXSUcgYWxzbyBlbmNvdXJhZ2VzIG1vZHVsYXJpemUgY29kZS0tYWxsb3dpbmcKLW9uZSB0byB0ZXN0L2RlYnVnIG1vZHVsZXMgaW5kZXBlbmRlbnRseS4gIFRoaXMgbWFrZXMgY29ubmVjdGluZwotZXZlcnl0aGluZyB0b2dldGhlciBhIGJyZWV6ZS4iCi0KLTxwPjxsaT4iVGhlIHZlcnkgaWRlYSBvZiBzY3JpcHRpbmcgcHJvZ3JhbW1pbmcgb24gdGhlIG9uZSBoYW5kIGFuZAotc3lzdGVtcyBwcm9ncmFtbWluZyBvbiB0aGUgb3RoZXIgaXMgcXVpdGUgbmljZSwgdGhlIG1vc3QKLWltcG9ydGFudCBmZWF0dXJlIG9mIFNXSUcgaXMgdG8gbWFrZSB0aGlzIGFwcHJvYWNoCi1wcmFjdGljYWwgb24gYSBkYXktYnktZGF5IGJhc2lzLiIKLQotPHA+PGxpPiJPbiB0aGUgd2hvbGUsIFNXSUcgaXMgbXkgbW9zdCBpbXBvcnRhbnQgZGV2ZWxvcG1lbnQgdG9vbCAKLWFmdGVyIGdjYyEiCi0KLTxwPjxsaT4iU1dJRyBoYXMgZW5hYmxlZCBvdXIgY3VzdG9tZXJzIHRvIGludGVyYWN0IHdpdGggb3VyIHRvb2xraXRzIGluIGZ1bmRhbWVudGFsbHkKLW5ldyB3YXlzLiIKLQotPHA+PGxpPiJXZSBhcmUgdXNpbmcgVGNsIHNjcmlwdHMgYXMgdGhlIGRhdGEgZmlsZXMgZHJpdmluZyBvdXIgCi1zaW11bGF0aW9ucy4gIE9uY2UgdGhlIGRhdGEgaXMgZGVmaW5lZCB1c2luZyBhIHByb2dyYW0KLSh3aGljaCBpcyBwcmV0dHkgY29vbCBpbiBpdHNlbGYpLCB3ZSBjYW4gYWN0dWFsbHkgcnVuIHRoZQotc2ltdWxhdGlvbiBmcm9tIHNjcmlwdCBjb21tYW5kcy4gIEluIG91ciBleHBlcmltZW50YWwgCi1lbnZpcm9ubWVudCwgdGhhdCBzYXZlcyByZXdyaXRpbmcgYSBsb3Qgb2YgIm1haW4iIHByb2dyYW1zCi10aGF0IGV4ZXJjaXNlIHRoZSBzYW1lIGJhc2ljIG9iamVjdHMuIFRoaXMgaXNuJ3QgZXhhY3RseSBjb21wdXRhdGlvbmFsIHN0ZWVyaW5nLCBidXQgaXQgZG9lcyBnaXZlCi1vdXIgZW5naW5lZXJzIGEgbG90IG9mIGZsZXhpYmlsaXR5LiIKLQotPHA+PGxpPiJBbGwgKHdlbGwgbW9zdCkgb2YgbXkgQysrIGNvZGUgKE1DIHNpbXVsYXRpb25zIG9mCi1wcm90ZWlucyBhbmQgc2VxdWVuY2UgYW5hbHlzaXMpIGlzIG5vdyBkcml2ZW4gYnkKLWEgUHl0aG9uIGludGVyZmFjZSB0aGFua3MgdG8gU1dJRy4gIE9uY2UgSSBoYXZlIGRlY2lkZWQgb24gYW4gaW50ZXJmYWNlLCB0aGUKLXByb2Nlc3Mgb2YgIGJ1aWxkaW5nIGl0IGlzIHVzdWFsbHkgdHJpdmlhbC4iCi0KLTxwPjxsaT4iU1dJRyBpcyBhbiBpbnRlZ3JhbCBwYXJ0IG9mIGEgdXNlciBlbnZpcm9ubWVudCBJIGFtIGNyZWF0aW5nIGZvciBhIE1vbGVjdWxhciBEeW5hbWljcyBjb21wYW55LgotVGhleSBoYXZlIEZPUlRSQU4gbW9kdWxlcyB0aGF0IHJlcXVpcmUgYSBzdGVlcmluZyBsYW5ndWFnZSAoUHl0aG9uKSB0byBlbmFibGUgZmxleGlibGUgY29tcHV0YXRpb25hbAotcmVzZWFyY2guIgotCi08cD48bGk+IlNXSUcgcGxheXMgYSBjcml0aWNhbCByb2xlIHRvIGF1dG9tYXRlIHRoZSBnZW5lcmF0aW9uIG9mCi1QZXJsIGNsaWVudCBpbnRlcmZhY2VzIGZyb20gdGhlIE9NRyBJRExzIGZvciBhIENPUkJBIE9SQi4KLVRoZSBQZXJsIGNsaWVudCBpbnRlcmZhY2UgaXMgZXNzZW50aWFsIGluIHNjcmlwdCBkcml2ZW4KLXRlc3RpbmcuIgotCi08cD48bGk+IkkgYW0gZW5qb3lpbmcgcmFwaWRseSBkZXZlbG9waW5nIGNvbXBsZXggcHJvamVjdHMgdXNpbmcgT08KLWFuZCBQeXRob24sIGJ1dCBjb21pbmcgZnJvbSBhIG51bWVyaWNhbCBiYWNrZ3JvdW5kLCBJIGxpa2UKLXRoYXQgSSBjYW4gZ2V0IGZhc3QgbnVtYmVyIGNydW5jaGluZyBwZXJmb3JtYW5jZSB3aGVuIEkgCi1uZWVkIGl0IGZyb20gQyBtb2R1bGVzIHdyYXBwZWQgdXAgYnkgU1dJRy4gIgotPC91bD4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvcmFudHMuaHQgYi9zd2lnd2ViL3JhbnRzLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzE0N2FkLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvcmFudHMuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVNXSUcgUmFudHMKLQotPHA+Ci08aW1nIHNyYz0iaW1hZ2VzL3JhbnRzLnBuZyI+Ci0KLTxwPgotV2VsbCwgdGhlcmUncyBub3RoaW5nIGhlcmUgeWV0LCBidXQgcmVzdCBhc3N1cmVkLCB0aGVyZSBhcmUgcGxlbnR5IG9mIHRoaW5ncyB0byByYW50Ci1hYm91dC4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvc2NyZWVuc2hvdC5odCBiL3N3aWd3ZWIvc2NyZWVuc2hvdC5odApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDVkODI0YS4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3NjcmVlbnNob3QuaHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVNXSUcgU2NyZWVuc2hvdAotCi08cD48aW1nIHNyYz0iaW1hZ2VzL3NjcmVlbi5wbmciIGFsdD0iU2NyZWVuc2hvdCI+Ci0KLTxwPjxpbWcgc3JjPSJpbWFnZXMvc2NyZWVuc2hvdC5wbmciPgotCi08cD4KLUl0IGlzIGxvdmVseSwgaXNuJ3QgaXQ/CmRpZmYgLS1naXQgYS9zd2lnd2ViL3N1YnZlcnNpb24uaHQgYi9zd2lnd2ViL3N1YnZlcnNpb24uaHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZTc3OGEuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi9zdWJ2ZXJzaW9uLmh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotU1dJRyBTdWJ2ZXJzaW9uCi0KLTxwPjxpbWcgc3JjPSJpbWFnZXMvc3VidmVyc2lvbi5wbmciIGFsdD0iU3VidmVyc2lvbiI+Ci0KLTx1bD4KLTxsaT5UaGUgbmV3bHktcmV2aXNlZCBTV0lHIG1pc3Npb24gc3RhdGVtZW50OgotCi08cD4KLTxjZW50ZXI+Ci08ZW0+Ci0iV2UgYXJlIGJ1aWxkaW5nIGEgd3JhcHBlciBnZW5lcmF0b3Igb2YgZXh0cmFvcmRpbmFyeSBtYWduaXR1ZGUuIgotPGJyPgotPC9lbT4KLTwvY2VudGVyPgotCi08cD4KLTxsaT5UaGUgZXZlci1zby1pbXByZXNzaXZlIFNXSUcgPGEgaHJlZj0ic2NyZWVuc2hvdC5odG1sIj5zY3JlZW5zaG90PC9hPi4KLTxsaT48YSBocmVmPSJ2aXN1YWwuaHRtbCI+VmlzdWFsIFNXSUcgMjAwMCsrPC9hPi0tdGhlIHZlcnNpb24gZm9yIGZ1bmRpbmcgYWdlbnRzIGFuZCBtYW5hZ2Vycy4KLTxsaT5UaGUgZ3JlYXRseSBzaW1wbGlmaWVkIDxhIGhyZWY9ImNvcHlmdW4uaHRtbCI+Y29weXJpZ2h0PC9hPi4KLTwvdWw+Ci0KLQotCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvdHV0b3JpYWwuaHQgYi9zd2lnd2ViL3R1dG9yaWFsLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1ZTFiZmY2Li4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvdHV0b3JpYWwuaHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotU1dJRyBUdXRvcmlhbAotCi08cD4KLTxpbWcgc3JjPSJpbWFnZXMvdHV0b3JpYWwucG5nIj4KLQotPHA+Ci1TbyB5b3Ugd2FudCB0byBnZXQgZ29pbmcgaW4gYSBodXJyeT8gIFRvIGlsbHVzdHJhdGUgdGhlIHVzZSBvZiBTV0lHLAotc3VwcG9zZSB5b3UgaGF2ZSBzb21lIEMgZnVuY3Rpb25zIHlvdSB3YW50IGFkZGVkIHRvIFRjbCwgUGVybCwgYW5kIFB5dGhvbi4KLVNwZWNpZmljYWxseSwgbGV0J3Mgc2F5IHlvdSBoYXZlIHRoZW0gaW4gYSBmaWxlICdleGFtcGxlLmMnCi0KLTx1bD48dHQ+PHByZT4KLS8qIEZpbGUgOiBleGFtcGxlLmMgKi8KLQotI2luY2x1ZGUgJmx0O3RpbWUuaCZndAotZG91YmxlIE15X3ZhcmlhYmxlID0gMy4wOwotCi1pbnQgZmFjdChpbnQgbikgewotICAgIGlmIChuICZsdDs9IDEpIHJldHVybiAxOwotICAgIGVsc2UgcmV0dXJuIG4qZmFjdChuLTEpOwotfQotCi1pbnQgbXlfbW9kKGludCB4LCBpbnQgeSkgewotICAgIHJldHVybiAoeCV5KTsKLX0KLQkKLWNoYXIgKmdldF90aW1lKCkKLXsKLSAgICB0aW1lX3QgbHRpbWU7Ci0gICAgdGltZSgmYW1wO2x0aW1lKTsKLSAgICByZXR1cm4gY3RpbWUoJmFtcDtsdGltZSk7Ci19Ci0KLTwvcHJlPjwvdHQ+PC91bD4KLQotPGgzPiBJbnRlcmZhY2UgZmlsZSA8L2gzPgotCi1Ob3csIGluIG9yZGVyIHRvIGFkZCB0aGVzZSBmaWxlcyB0byB5b3VyIGZhdm9yaXRlIHNjcmlwdGluZyBsYW5ndWFnZSwgeW91IG5lZWQgdG8gd3JpdGUgYW4KLSJpbnRlcmZhY2UgZmlsZSIgd2hpY2ggaXMgdGhlIGlucHV0IHRvIFNXSUcuICBBbiBpbnRlcmZhY2UgZmlsZSBmb3IgdGhlc2UKLUMgZnVuY3Rpb25zIG1pZ2h0IGxvb2sgbGlrZSB0aGlzIDoKLQotPHVsPjx0dD48cHJlPgotLyogZXhhbXBsZS5pICovCi0lbW9kdWxlIGV4YW1wbGUKLSV7Ci0vKiBQdXQgaGVhZGVyIGZpbGVzIGhlcmUgKG9wdGlvbmFsKSAqLwotJX0KLQotZXh0ZXJuIGRvdWJsZSBNeV92YXJpYWJsZTsKLWV4dGVybiBpbnQgZmFjdChpbnQgbik7Ci1leHRlcm4gaW50IG15X21vZChpbnQgeCwgaW50IHkpOwotZXh0ZXJuIGNoYXIgKmdldF90aW1lKCk7Ci08L3ByZT48L3R0PjwvdWw+Ci0KLTxoMz4gQnVpbGRpbmcgYSBUY2wgbW9kdWxlIDwvaDM+Ci0KLUF0IHRoZSBVTklYIHByb21wdCwgdHlwZSB0aGUgZm9sbG93aW5nIChzaG93biBmb3IgTGludXgpOgotCi08YmxvY2txdW90ZT4KLTxwcmU+PHR0PgotdW5peCAlIHN3aWcgLXRjbCBleGFtcGxlLmkKLU1ha2luZyB3cmFwcGVycyBmb3IgVGNsCi11bml4ICUgZ2NjIC1mcGljIC1jIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyBcCi0gICAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUgCi11bml4ICUgZ2NjIC1zaGFyZWQgZXhhbXBsZS5vIGV4YW1wbGVfd3JhcC5vIC1vIGV4YW1wbGUuc28KLXVuaXggJSB0Y2xzaAotJSBsb2FkIC4vZXhhbXBsZS5zbyBleGFtcGxlCi0lIHB1dHMgJE15X3ZhcmlhYmxlCi0zLjAKLSUgZmFjdCA1Ci0xMjAKLSUgbXlfbW9kIDcgMwotMQotJSBnZXRfdGltZQotU3VuIEZlYiAxMSAyMzowMTowNyAxOTk2Ci0KLSUgCi08L3R0PjwvcHJlPjwvYmxvY2txdW90ZT4KLQotVGhlIDx0dD4gc3dpZyA8L3R0PiBjb21tYW5kIHByb2R1Y2VzIGEgZmlsZSA8YSBocmVmID0gInR1dG9yaWFsL2V4YW1wbGVfd3JhcC5odG1sIj4KLTx0dD4gZXhhbXBsZV93cmFwLmMgPC90dD4gPC9hPiB0aGF0IHNob3VsZCBiZSBjb21waWxlZCBhbmQgbGlua2VkIHdpdGgKLXRoZSByZXN0IG9mIHRoZSBwcm9ncmFtLiAgSW4gdGhpcyBjYXNlLCB3ZSBoYXZlIGJ1aWx0IGEgZHluYW1pY2FsbHkgCi1sb2FkYWJsZSBleHRlbnNpb24gdGhhdCBjYW4gYmUgbG9hZGVkIGludG8gdGhlIFRjbCBpbnRlcnByZXRlciB1c2luZwotdGhlICdsb2FkJyBjb21tYW5kLiAgIAotCi08cD4KLUlmIHlvdXIgbWFjaGluZSBkb2VzIG5vdCBzdXBwb3J0IGR5bmFtaWMgbG9hZGluZywgaXQgaXMgYWxzbyBlYXN5IHRvIAotYnVpbGQgYSBuZXcgdmVyc2lvbiBvZiB0aGUgdGNsc2ggaW50ZXJwcmV0ZXIgYXMgZm9sbG93cyA6Ci0KLTxibG9ja3F1b3RlPgotPHByZT48dHQ+Ci11bml4ICUgc3dpZyAtdGNsIC1sdGNsc2guaSBleGFtcGxlLmkKLXVuaXggJSBnY2MgZXhhbXBsZS5jIGV4YW1wbGVfd3JhcC5jIC1JL3Vzci9sb2NhbC9pbmNsdWRlIFwKLSAgICAgICAtTC91c3IvbG9jYWwvbGliIC1sdGNsIC1sc29ja2V0IC1sZGwgLWxtIC1vIG15X3RjbHNoCi11bml4ICUgbXlfdGNsc2gKLSUgcHV0cyAkTXlfdmFyaWFibGUKLTMuMAotJSBmYWN0IDUKLTEyMAotJQotPC90dD48L3ByZT48L2Jsb2NrcXVvdGU+Ci0KLUluIHRoaXMgY2FzZSwgdGhlIG5ldyB2ZXJzaW9uIG9mCi10Y2xzaCBpcyBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsIHRvIHRoZSBvcmlnaW5hbCwgYnV0IGhhcyBuZXcgZnVuY3Rpb25zCi1hZGRlZCB0byBpdC4KLQotPGgzPiBCdWlsZGluZyBhIFB5dGhvbiBtb2R1bGUgPC9oMz4KLQotVHVybmluZyBDIGNvZGUgaW50byBhIFB5dGhvbiBtb2R1bGUgaXMgYWxzbyBlYXN5LiAgU2ltcGx5IGRvIHRoZSBmb2xsb3dpbmcgKHNob3duIGZvciBJcml4KToKLQotPGJsb2NrcXVvdGU+IDx0dD4gPHByZT4KLQotdW5peCAlIHN3aWcgLXB5dGhvbiBleGFtcGxlLmkKLU1ha2luZyB3cmFwcGVycyBmb3IgUHl0aG9uCi11bml4ICUgZ2NjIC1jIGV4YW1wbGUuYyBleGFtcGxlX3dyYXAuYyBcCi0gICAgICAgLUkvdXNyL2xvY2FsL2luY2x1ZGUvcHl0aG9uMS40IFwKLSAgICAgICAtSS91c3IvbG9jYWwvbGliL3B5dGhvbjEuNC9jb25maWcKLXVuaXggJSBsZCAtc2hhcmVkIGV4YW1wbGUubyBleGFtcGxlX3dyYXAubyAtbyBleGFtcGxlbW9kdWxlLnNvIAotPC9wcmU+IDwvdHQ+IDwvYmxvY2txdW90ZT4KLQotV2UgY2FuIG5vdyB1c2UgdGhlIFB5dGhvbiBtb2R1bGUgYXMgZm9sbG93cyA6IAotPGJsb2NrcXVvdGU+IDx0dD4gPHByZT4KLT4+PiBpbXBvcnQgZXhhbXBsZQotPj4+IGV4YW1wbGUuZmFjdCg1KQotMTIwCi0+Pj4gZXhhbXBsZS5teV9tb2QoNywzKQotMQotPj4+IGV4YW1wbGUuZ2V0X3RpbWUoKQotJ1N1biBGZWIgMTEgMjM6MDE6MDcgMTk5NicKLT4+PgotPC9wcmU+Ci08L3R0PiA8L2Jsb2NrcXVvdGU+Ci0KLTxoMz4gQnVpbGRpbmcgYSBQZXJsIG1vZHVsZSA8L2gzPgotRmluYWxseSwgeW91IGNhbiBidWlsZCBhIFBlcmw1IG1vZHVsZSBhcyBmb2xsb3dzIChzaG93biBmb3IgU29sYXJpcyk6Ci0KLTxibG9ja3F1b3RlPjx0dD48cHJlPgotdW5peCAlIHN3aWcgLXBlcmw1IGV4YW1wbGUuaQotTWFraW5nIHdyYXBwZXJzIGZvciBQZXJsNQotdW5peCAlIGdjYyAtYyBleGFtcGxlLmMgZXhhbXBsZV93cmFwLmMgXAotICAgICAgIC1JL3Vzci9saWIvcGVybC9zb2xhcmlzLzUuMDAzL0NPUkUgCi11bml4ICUgbGQgLUcgZXhhbXBsZS5vIGV4YW1wbGVfd3JhcC5vIC1vIGV4YW1wbGUuc28KLXVuaXggJSBwZXJsCi11c2UgZXhhbXBsZTsKLXByaW50ICRleGFtcGxlOjpNeV92YXJpYWJsZSwiXG4iOwotcHJpbnQgZXhhbXBsZTo6ZmFjdCg1KSwiXG4iOwotcHJpbnQgZXhhbXBsZS5nZXRfdGltZSgpLCJcbiI7Ci0mbHQ7Y3RybC1kJmd0OwotMy4wCi0xMjAKLVN1biBGZWIgMTEgMjM6MDE6MDcgMTk5NgotdW5peCAlIAotPC9wcmU+PC90dD48L2Jsb2NrcXVvdGU+Ci0KLQotPGgzPiBTV0lHIGZvciB0aGUgdHJ1bHkgbGF6eSA8L2gzPgotCi1BcyBpdCB0dXJucyBvdXQsIGl0IGlzIG5vdCBhbHdheXMgbmVjZXNzYXJ5IHRvIHdyaXRlIGEgc3BlY2lhbCBpbnRlcmZhY2UKLWZpbGUuICBJZiB5b3VyIEMgY29kZSBpcyByZWxhdGl2ZWx5IGNsZWFuLCB5b3UgY2FuIGp1c3QgcnVuIFNXSUcgZGlyZWN0bHkKLW9uIHRoZSBzb3VyY2UgbGlrZSB0aGlzIDoKLQotPGJsb2NrcXVvdGU+Ci08dHQ+IDxwcmU+Ci11bml4ICUgc3dpZyAtdGNsIC1tb2R1bGUgZXhhbXBsZSBleGFtcGxlLmMKLXVuaXggJSBnY2MgLWMgZXhhbXBsZS5jIGV4YW1wbGVfd3JhcC5jIC1JL3Vzci9sb2NhbC9pbmNsdWRlCi11bml4ICUgbGQgLXNoYXJlZCBleGFtcGxlLm8gZXhhbXBsZV93cmFwLm8gLW8gZXhhbXBsZS5zbwotPC9wcmU+PC90dD48L2Jsb2NrcXVvdGU+Ci0KLTxoMz4gQWRkaW5nIERvY3VtZW50YXRpb24gPC9oMz4KLQotRG9jdW1lbnRhdGlvbiBjYW4gbm93IGJlIGFkZGVkIHVzaW5nIEMvQysrIGNvbW1lbnRzLiAgRm9yIGV4YW1wbGUgOgotCi08dWw+PHR0PjxwcmU+Ci0vKiBleGFtcGxlLmkgKi8KLQotJXRpdGxlICJTaW1wbGUgRXhhbXBsZSIKLSV7Ci0vKiBQdXQgaGVhZGVyIGZpbGVzIGhlcmUgKi8KLSV9Ci0KLSVzZWN0aW9uICJNeSBDb21tYW5kcyIKLWV4dGVybiBkb3VibGUgTXlfdmFyaWFibGU7IC8vIFRoaXMgaXMgYW4gaW50ZXJlc3RpbmcgdmFyaWFibGUKLWV4dGVybiBpbnQgZmFjdChpbnQgbik7ICAgIC8vIENvbXB1dGVzIG4gZmFjdG9yaWFsCi1leHRlcm4gaW50IG15X21vZChpbnQgeCwgaW50IHkpOyAvLyBDYWxjdWxhdGVzIHggJSB5Ci1leHRlcm4gY2hhciAqZ2V0X3RpbWUoKTsKLS8qIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBhcyBhIHN0cmluZyAqLwotPC9wcmU+PC90dD48L3VsPgotCi1XZSBjYW4gbm93IHJ1biBTV0lHIHVzaW5nIDogPGJyPgotPHVsPiA8dHQ+ICUgc3dpZyAtdGNsIC1kaHRtbCBleGFtcGxlLmkgPC90dD4gPC91bD4KLQotVGhpcyB3aWxsIHByb2R1Y2UgYSBkb2N1bWVudGF0aW9uIGZpbGUgPGEgaHJlZj0idHV0b3JpYWwvZXhhbXBsZV93cmFwX3RjbC5odG1sIj4gPHR0PiBleGFtcGxlX3dyYXAuaHRtbCA8L3R0PiA8L2E+LiAKLQotPGJyPjxicj4KLVRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbSBwcm9kdWNlcyBkb2N1bWVudGF0aW9uIHVzaW5nIHRoZSBzeW50YXggb2YgdGhlCi10YXJnZXQgbGFuZ3VhZ2UuICBUaHVzLCBpZiB5b3UgdXNlZCBQZXJsNSBpbnN0ZWFkIG9mIFRjbCwgdGhlIGRvY3VtZW50YXRpb24KLWZpbGUgbWlnaHQgbG9vayBsaWtlIDxhIGhyZWY9InR1dG9yaWFsL2V4YW1wbGVfd3JhcF9wZXJsNS5odG1sIj4gdGhpcyA8L2E+LiAgPGJyPiA8YnI+Ci0KLURvY3VtZW50YXRpb24gY2FuIGFsc28gYmUgcHJvZHVjZWQgaW4gQVNDSUkgYW5kIExhVGVYIGZvcm1hdHMuICAKLVRoZSBDL0MrKyBjb21tZW50cyBjb250YWluaW5nIGRvY3VtZW50YXRpb24gY2FuIHNwYW4gbXVsdGlwbGUgbGluZXMgYW5kCi1jYW4gaW5jbHVkZSBlbWJlZGRlZCBMYVRlWCBvciBIVE1MIGlmIGRlc2lyZWQuCi0KLTxoMz4gUnVubmluZyBTV0lHIHVuZGVyIFdpbmRvd3MgTlQgPC9oMz4KLQotU1dJRyBhbHNvIHdvcmtzIHBlcmZlY3RseSB3ZWxsIHVuZGVyIFdpbmRvd3MgTlQvOTUgc3lzdGVtcy4gIFNXSUcKLWlzIHR5cGljYWxseSBpbnZva2VkIGZyb20gdGhlIGNvbW1hbmQgcHJvbXB0IGFuZCBjYW4gYmUgdXNlZCB3aXRoCi1OTUFLRS4gICBNb2R1bGVzIGFyZSB0eXBpY2FsbHkgY29tcGlsZWQgaW4gdGhlIGZvcm0gb2YgYSBETEwgdGhhdAotY2FuIGJlIGR5bmFtaWNhbGx5IGxvYWRlZCBpbnRvIFRjbCxQeXRob24sIG9yIFBlcmwuICAgV2l0aCBhIGxpdHRsZQotd29yaywgU1dJRyBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgY3VzdG9tIGJ1aWxkIG9wdGlvbiB3aXRoaW4gCi1NUyBEZXZlbG9wZXIgU3R1ZGlvLiAgCi0KLTxoMz4gVGhhdCdzIGl0ICh3ZWxsLCBtb3N0bHkpIDwvaDM+Ci0KLVRoYXQncyBhYm91dCBldmVyeXRoaW5nIHlvdSBuZWVkIHRvIGtub3cuIEhlcmUncyB0aGUgc2hvcnQgY2hlY2tsaXN0IDoKLQotPHVsPgotPGxpPiBNYWtlIHN1cmUgeW91IHNwZWNpZnkgYSBtb2R1bGUgbmFtZS4KLTxsaT4gVXNlIEFOU0kgQy9DKysgc3ludGF4Ci08bGk+IEZpZ3VyZSBvdXQgaG93IHRvIGNvbXBpbGUgYSBzaGFyZWQgbGlicmFyeSBtb2R1bGUgKG1heSByZXF1aXJlIHJlYWRpbmcgYSBmZXcgbWFuIAotcGFnZXMgZm9yIHlvdXIgY29tcGlsZXIpLgotPGxpPiBSZWxheC4KLTwvdWw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL3R1dG9yaWFsL2V4YW1wbGVfd3JhcC5odG1sIGIvc3dpZ3dlYi90dXRvcmlhbC9leGFtcGxlX3dyYXAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNTExMjAwMi4uMDAwMDAwMAotLS0gYS9zd2lnd2ViL3R1dG9yaWFsL2V4YW1wbGVfd3JhcC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+IDwvaGVhZD4KLTxib2R5IEJHQ09MT1I9IiNGRkZGRkYiPgotPHR0PiA8cHJlPgotCi0vKgotICogRmlsZSA6IGV4YW1wbGVfd3JhcC5jCi0gKiBUaHUgQXByICA0IDEzOjExOjQ1IDE5OTYKLSAqCi0gKiBUaGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IDoKLSAqIFNpbXBsaWZpZWQgV3JhcHBlciBhbmQgSW50ZXJmYWNlIEdlbmVyYXRvciAoU1dJRykKLSAqIAotICogQ29weXJpZ2h0IChjKSAxOTk1LDE5OTYKLSAqIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEgYW5kCi0gKiBUaGUgVW5pdmVyc2l0eSBvZiBVdGFoCi0gKgotICovCi0KLS8qIEltcGxlbWVudGF0aW9uIDogVENMICovCi0KLSNkZWZpbmUgSU5DTFVERV9UQ0wgICAgPHRjbC5oPgotI2RlZmluZSBJTkNMVURFX1RLICAgICA8dGsuaD4KLSNpbmNsdWRlIElOQ0xVREVfVENMCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci1zdGF0aWMgdm9pZCBfc3dpZ19tYWtlX2hleChjaGFyICpfYywgdm9pZCAqX3B0ciwgY2hhciAqdHlwZSkgewotc3RhdGljIGNoYXIgX2hleFsxNl0gPSB7ICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKLQkJCSdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicgfTsKLSAgdW5zaWduZWQgbG9uZyBfcCxfczsKLSAgY2hhciAgICAgX3Jlc3VsdFsxMjhdLCAqX3I7Ci0gIF9yID0gX3Jlc3VsdDsKLSAgX3AgPSAodW5zaWduZWQgbG9uZykgX3B0cjsKLSAgaWYgKF9wID4gMCkgewotICAgICB3aGlsZSAoX3AgPiAwKSB7Ci0gICAgICAgIF9zID0gX3AgJiAweGY7Ci0gICAgICAgICooX3IrKykgPSBfaGV4W19zXTsKLSAgICAgICAgX3AgPSBfcCA+PiA0OwotICAgICB9IAotICAgICAqX3IgPSAnXyc7Ci0gICAgIHdoaWxlIChfciA+PSBfcmVzdWx0KSAqKF9jKyspID0gKihfci0tKTsKLSAgfSBlbHNlIHsKLSAgICAgc3RyY3B5KF9jLCJOVUxMIik7Ci0gIH0KLSAgaWYgKF9wdHIpIHN0cmNweShfYyx0eXBlKTsKLX0KLXN0YXRpYyBjaGFyICpfc3dpZ19nZXRfaGV4KGNoYXIgKl9jLCB2b2lkICoqcHRyLCBjaGFyICpfdCkgewotICB1bnNpZ25lZCBsb25nIF9wOwotICBjaGFyICpfdHQ7Ci0gIF9wID0gMDsKLSAgaWYgKCpfYyA9PSAnXycpIHsgCi0gICAgIF9jKys7Ci0gICAgIHdoaWxlICgqX2MpIHsKLSAgICAgICBpZiAoKCpfYyA+PSAnMCcpICYmICgqX2MgPD0gJzknKSkgX3AgPSAoX3AgPDwgNCkgKyAoKl9jIC0gJzAnKTsKLSAgICAgICBlbHNlIGlmICgoKl9jID49ICdhJykgJiYgKCpfYyA8PSAnZicpKSBfcCA9IChfcCA8PCA0KSArICgoKl9jIC0gJ2EnKSArIDEwKTsKLSAgICAgICBlbHNlIGJyZWFrOyAKLSAgICAgICBfYysrOwotICAgICB9Ci0gICAgIGlmIChfcCA9PSAwKSB7Ci0gICAgICAgICByZXR1cm4gKGNoYXIgKikgX2M7Ci0gICAgIH0KLSAgICAgX3R0ID0gX2M7Ci0gICAgIGlmIChfdCkgewotICAgICAgICBpZiAoc3RyY21wKF9jLF90KSkgcmV0dXJuIF90dDsKLSAgICAgfQotICAgICAqcHRyID0gKHZvaWQgKikgX3A7Ci0gICAgICByZXR1cm4gKGNoYXIgKikgMDsKLSAgIH0gZWxzZSB7Ci0gICAgICBpZiAoc3RyY21wKF9jLCJOVUxMIikgPT0gMCkgewotICAgICAgICAgKnB0ciA9ICh2b2lkICopIDA7Ci0gICAgICAgICByZXR1cm4gKGNoYXIgKikgMDsKLSAgICAgIH0KLSAgICAgIGVsc2UKLSAgICAgICAgIHJldHVybiBfYzsKLSAgfQotfQotCi0jZGVmaW5lIFNXSUdfaW5pdCAgICBXcmFwX0luaXQKLQotCi0KLQotLyogQSBUQ0xfQXBwSW5pdCgpIGZ1bmN0aW9uIHRoYXQgbGV0cyB5b3UgYnVpbGQgYSBuZXcgY29weQotICogb2YgdGNsc2guCi0gKgotICogVGhlIG1hY3JvIFdHX2luaXQgY29udGFpbnMgdGhlIG5hbWUgb2YgdGhlIGluaXRpYWxpemF0aW9uCi0gKiBmdW5jdGlvbiBpbiB0aGUgd3JhcHBlciBmaWxlLgotICovCi0KLSNpZm5kZWYgU1dJR19SY0ZpbGVOYW1lCi1jaGFyICpTV0lHX1JjRmlsZU5hbWUgPSAifi8ubXlhcHByYyI7Ci0jZW5kaWYKLQotI2lmIFRDTF9NQUpPUl9WRVJTSU9OID09IDcgJiYgVENMX01JTk9SX1ZFUlNJT04gPj0gNAotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0KLSAgVGNsX01haW4oYXJnYywgYXJndiwgVGNsX0FwcEluaXQpOwotICByZXR1cm4oMCk7Ci0KLX0KLSNlbHNlCi1leHRlcm4gaW50IG1haW4oKTsKLSNlbmRpZgotCi1pbnQgVGNsX0FwcEluaXQoVGNsX0ludGVycCAqaW50ZXJwKXsKLSAgaW50IFNXSUdfaW5pdChUY2xfSW50ZXJwICopOyAgLyogRm9yd2FyZCByZWZlcmVuY2UgKi8KLQotICBpZiAoVGNsX0luaXQoaW50ZXJwKSA9PSBUQ0xfRVJST1IpIAotICAgIHJldHVybiBUQ0xfRVJST1I7Ci0KLSAgLyogTm93IGluaXRpYWxpemUgb3VyIGZ1bmN0aW9ucyAqLwotCi0gIGlmIChTV0lHX2luaXQoaW50ZXJwKSA9PSBUQ0xfRVJST1IpCi0gICAgcmV0dXJuIFRDTF9FUlJPUjsKLQotICB0Y2xfUmNGaWxlTmFtZSA9IFNXSUdfUmNGaWxlTmFtZTsKLSAgcmV0dXJuIFRDTF9PSzsKLX0KLQotZXh0ZXJuIGRvdWJsZSAgIE15X3ZhcmlhYmxlOwotZXh0ZXJuIGludCAgZmFjdChpbnQgICk7Ci1leHRlcm4gaW50ICBtb2QoaW50ICAsaW50ICApOwotZXh0ZXJuIGNoYXIgKiBnZXRfdGltZSgpOwotaW50IF93cmFwX3RjbF9mYWN0KENsaWVudERhdGEgY2xpZW50RGF0YSwgVGNsX0ludGVycCAqaW50ZXJwLCBpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0JIGludCAgX3Jlc3VsdDsKLQkgaW50IF9hcmcwOwotCi0JIGlmIChhcmdjICE9IDIpIHsKLQkJIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAiV3JvbmcgIyBhcmdzICBpbnQgIDogZmFjdCBuICIsVENMX1NUQVRJQyk7Ci0JCSByZXR1cm4gVENMX0VSUk9SOwotCX0KLQkgX2FyZzAgPSAoaW50ICkgYXRvbChhcmd2WzFdKTsKLQkgX3Jlc3VsdCA9IGZhY3QoX2FyZzApOwotCSBzcHJpbnRmKGludGVycC0+cmVzdWx0LCIlbGQiLCAobG9uZykgX3Jlc3VsdCk7Ci0JIHJldHVybiBUQ0xfT0s7Ci19Ci1pbnQgX3dyYXBfdGNsX21vZChDbGllbnREYXRhIGNsaWVudERhdGEsIFRjbF9JbnRlcnAgKmludGVycCwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewotCSBpbnQgIF9yZXN1bHQ7Ci0JIGludCBfYXJnMDsKLQkgaW50IF9hcmcxOwotCi0JIGlmIChhcmdjICE9IDMpIHsKLQkJIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAiV3JvbmcgIyBhcmdzICBpbnQgIDogbW9kIHggeSAiLFRDTF9TVEFUSUMpOwotCQkgcmV0dXJuIFRDTF9FUlJPUjsKLQl9Ci0JIF9hcmcwID0gKGludCApIGF0b2woYXJndlsxXSk7Ci0JIF9hcmcxID0gKGludCApIGF0b2woYXJndlsyXSk7Ci0JIF9yZXN1bHQgPSBtb2QoX2FyZzAsX2FyZzEpOwotCSBzcHJpbnRmKGludGVycC0+cmVzdWx0LCIlbGQiLCAobG9uZykgX3Jlc3VsdCk7Ci0JIHJldHVybiBUQ0xfT0s7Ci19Ci1pbnQgX3dyYXBfdGNsX2dldF90aW1lKENsaWVudERhdGEgY2xpZW50RGF0YSwgVGNsX0ludGVycCAqaW50ZXJwLCBpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0JIGNoYXIgKiBfcmVzdWx0OwotCi0JIGlmIChhcmdjICE9IDEpIHsKLQkJIFRjbF9TZXRSZXN1bHQoaW50ZXJwLCAiV3JvbmcgIyBhcmdzICBjaGFyICogOiBnZXRfdGltZSAiLFRDTF9TVEFUSUMpOwotCQkgcmV0dXJuIFRDTF9FUlJPUjsKLQl9Ci0JIF9yZXN1bHQgPSBnZXRfdGltZSgpOwotCSBUY2xfU2V0UmVzdWx0KGludGVycCwgX3Jlc3VsdCwgVENMX1ZPTEFUSUxFKTsKLQkgcmV0dXJuIFRDTF9PSzsKLX0KLWludCBXcmFwX0luaXQoVGNsX0ludGVycCAqaW50ZXJwKSB7Ci0JIGlmIChpbnRlcnAgPT0gMCkgCi0JCSByZXR1cm4gVENMX0VSUk9SOwotCSBUY2xfTGlua1ZhcihpbnRlcnAsICJNeV92YXJpYWJsZSIsIChjaGFyICopICZNeV92YXJpYWJsZSwgVENMX0xJTktfRE9VQkxFKTsKLQkgVGNsX0NyZWF0ZUNvbW1hbmQoaW50ZXJwLCAiZmFjdCIsIF93cmFwX3RjbF9mYWN0LCAoQ2xpZW50RGF0YSkgTlVMTCwgKFRjbF9DbWREZWxldGVQcm9jICopIE5VTEwpOwotCSBUY2xfQ3JlYXRlQ29tbWFuZChpbnRlcnAsICJtb2QiLCBfd3JhcF90Y2xfbW9kLCAoQ2xpZW50RGF0YSkgTlVMTCwgKFRjbF9DbWREZWxldGVQcm9jICopIE5VTEwpOwotCSBUY2xfQ3JlYXRlQ29tbWFuZChpbnRlcnAsICJnZXRfdGltZSIsIF93cmFwX3RjbF9nZXRfdGltZSwgKENsaWVudERhdGEpIE5VTEwsIChUY2xfQ21kRGVsZXRlUHJvYyAqKSBOVUxMKTsKLQkgcmV0dXJuIFRDTF9PSzsKLX0KLQotPC9wcmU+IDwvdHQ+IDwvYm9keT4KLTwvaHRtbD4KLQotCi0KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvdHV0b3JpYWwvZXhhbXBsZV93cmFwX3Blcmw1Lmh0bWwgYi9zd2lnd2ViL3R1dG9yaWFsL2V4YW1wbGVfd3JhcF9wZXJsNS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAyOTE0MWExLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIvdHV0b3JpYWwvZXhhbXBsZV93cmFwX3Blcmw1Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08SFRNTD4KLTxIRUFEPgotPFRJVExFPgotU2ltcGxlIEV4YW1wbGU8L1RJVExFPgotPEJPRFkgQkdDT0xPUj0iI2ZmZmZmZiI+Ci08SDE+U2ltcGxlIEV4YW1wbGU8L0gxPgotWyBNb2R1bGUgIDogc3dpZywgUGFja2FnZSA6IHN3aWcgXTxCUj4KLQotPEhSPjxIMT4gQ29udGVudHMgPC9IMT4KLTxVTD48TEk+IDxBIEhSRUY9IiNzMV8iPjEuIE15IENvbW1hbmRzPC9BPgotPC9VTD4KLQotPEEgbmFtZT0iczFfIj4KLTxIUj48SDI+MS4gTXkgQ29tbWFuZHM8L0gyPjwvQT4KLTxQPjxUVD48Qj4kTXlfdmFyaWFibGU8L0I+PC9UVD4KLTxCTE9DS1FVT1RFPlsgR2xvYmFsIDogZG91YmxlICBNeV92YXJpYWJsZSBdCi08QlI+ICAgVGhpcyBpcyBhbiBpbnRlcmVzdGluZyB2YXJpYWJsZQotPC9CTE9DS1FVT1RFPgotCi08UD48VFQ+PEI+ZmFjdChuKTs8L0I+PC9UVD4KLTxCTE9DS1FVT1RFPlsgcmV0dXJucyBpbnQgIF0KLTxCUj4gICBDb21wdXRlcyBuIGZhY3RvcmlhbAotPC9CTE9DS1FVT1RFPgotCi08UD48VFQ+PEI+bXlfbW9kKHgseSk7PC9CPjwvVFQ+Ci08QkxPQ0tRVU9URT5bIHJldHVybnMgaW50ICBdCi08QlI+ICAgQ2FsY3VsYXRlcyB4ICUgeQotPC9CTE9DS1FVT1RFPgotCi08UD48VFQ+PEI+Z2V0X3RpbWUoKTs8L0I+PC9UVD4KLTxCTE9DS1FVT1RFPlsgcmV0dXJucyBjaGFyICogXQotPEJSPiAgIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBhcyBhIHN0cmluZyAgIAotPC9CTE9DS1FVT1RFPgotCi0KLTwvQk9EWT4KLTwvSFRNTD4KZGlmZiAtLWdpdCBhL3N3aWd3ZWIvdHV0b3JpYWwvZXhhbXBsZV93cmFwX3RjbC5odG1sIGIvc3dpZ3dlYi90dXRvcmlhbC9leGFtcGxlX3dyYXBfdGNsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGFkM2Y0Y2UuLjAwMDAwMDAKLS0tIGEvc3dpZ3dlYi90dXRvcmlhbC9leGFtcGxlX3dyYXBfdGNsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08SFRNTD4KLTxIRUFEPgotPFRJVExFPgotU2ltcGxlIEV4YW1wbGU8L1RJVExFPgotPEJPRFkgQkdDT0xPUj0iI2ZmZmZmZiI+Ci08SDE+U2ltcGxlIEV4YW1wbGU8L0gxPgotCi08SFI+PEgxPiBDb250ZW50cyA8L0gxPgotPFVMPjxMST4gPEEgSFJFRj0iI3MxXyI+MS4gTXkgQ29tbWFuZHM8L0E+Ci08L1VMPgotCi08QSBuYW1lPSJzMV8iPgotPEhSPjxIMj4xLiBNeSBDb21tYW5kczwvSDI+PC9BPgotPFA+PFRUPjxCPiRNeV92YXJpYWJsZTwvQj48L1RUPgotPEJMT0NLUVVPVEU+WyBHbG9iYWwgOiBkb3VibGUgIE15X3ZhcmlhYmxlIF0KLTxCUj4gICBUaGlzIGlzIGFuIGludGVyZXN0aW5nIHZhcmlhYmxlCi08L0JMT0NLUVVPVEU+Ci0KLTxQPjxUVD48Qj5mYWN0IG4gPC9CPjwvVFQ+Ci08QkxPQ0tRVU9URT5bIHJldHVybnMgaW50ICBdCi08QlI+ICAgQ29tcHV0ZXMgbiBmYWN0b3JpYWwKLTwvQkxPQ0tRVU9URT4KLQotPFA+PFRUPjxCPm15X21vZCB4IHkgPC9CPjwvVFQ+Ci08QkxPQ0tRVU9URT5bIHJldHVybnMgaW50ICBdCi08QlI+ICAgQ2FsY3VsYXRlcyB4ICUgeQotPC9CTE9DS1FVT1RFPgotCi08UD48VFQ+PEI+Z2V0X3RpbWUgPC9CPjwvVFQ+Ci08QkxPQ0tRVU9URT5bIHJldHVybnMgY2hhciAqIF0KLTxCUj4gICBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWUgYXMgYSBzdHJpbmcgICAKLTwvQkxPQ0tRVU9URT4KLQotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9zd2lnd2ViL3kyay5odCBiL3N3aWd3ZWIveTJrLmh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWRhMzgzLi4wMDAwMDAwCi0tLSBhL3N3aWd3ZWIveTJrLmh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotU1dJRzJLCi0KLTxwPjxpbWcgc3JjPSJpbWFnZXMveTJrLnBuZyI+Ci0KLTxwPgotU1dJRyBkb2VzIG5vdCB1c2UgdGhlIGRhdGUgYW5kIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgWTJLLgotSG93ZXZlciwgbGlrZSBhbnkgZGV2ZWxvcG1lbnQgdG9vbCwgU1dJRyB3aWxsIG5vdCBwcmV2ZW50IHlvdSBmcm9tCi1jcmVhdGluZyBhIGJ1Z2d5IGFwcGxpY2F0aW9uLiAgU1dJRyBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgZm9sbG93aW5nCi10ZXJtcyA6Ci0KLTxwPgotPHByZT4KLQotSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiwgVEhFIFVOSVZFUlNJVFkgT0YgQ0FMSUZPUk5JQSwgVEhFIAotVU5JVkVSU0lUWSBPRiBVVEFIIE9SIERJU1RSSUJVVE9SUyBPRiBUSElTIFNPRlRXQVJFIEJFIExJQUJMRSBUTyBBTlkKLVBBUlRZIEZPUiBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMCi1EQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT04sCi1FVkVOIElGIFRIRSBBVVRIT1JTIE9SIEFOWSBPRiBUSEUgQUJPVkUgUEFSVElFUyBIQVZFIEJFRU4gQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1USEUgQVVUSE9SLCBUSEUgVU5JVkVSU0lUWSBPRiBDQUxJRk9STklBLCBBTkQgVEhFIFVOSVZFUlNJVFkgT0YgVVRBSAotU1BFQ0lGSUNBTExZIERJU0NMQUlNIEFOWSBXQVJSQU5USUVTLElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCAKLVRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLVBVUlBPU0UuIFRIRSBTT0ZUV0FSRSBQUk9WSURFRCBIRVJFVU5ERVIgSVMgT04gQU4gIkFTIElTIiBCQVNJUywgQU5EIAotVEhFIEFVVEhPUlMgQU5EIERJU1RSSUJVVE9SUyBIQVZFIE5PIE9CTElHQVRJT04gVE8gUFJPVklERSBNQUlOVEVOQU5DRSwKLVNVUFBPUlQsIFVQREFURVMsIEVOSEFOQ0VNRU5UUywgT1IgTU9ESUZJQ0FUSU9OUy4KLTwvcHJlPgo=