Re: master: Perform local common subexpression elimination for some memory loads
Stas Boukarev <[email protected]> Tue, 4 Aug 2026 18:14:37 +0300
| Newsgroups | gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <CAF63=135r+J=j0zBkZgBO15=v4jFiTUOS+g9ah8iktRd78Ot=Q@mail.gmail.com> |
VGhpcyBvbmUgY2FuIGJlIHNvbHZlZCBieQoodXBkYXRlLWx2YXItZGVwZW5kZW5jaWVzIGx2YXIt bmV3IGx2YXItYzEpCgpPbiBUdWUsIEF1ZyA0LCAyMDI2IGF0IDU6NTXigK9QTSBTdGFzIEJvdWth cmV2IDxzdGFzc2F0c0BnbWFpbC5jb20+IHdyb3RlOgo+Cj4gKGRlZnVuIHRlc3QgKHkgbGlzdCkK PiAgIChkZWNsYXJlIChvcHRpbWl6ZSAoZGVidWcgMSkpKQo+ICAgKGxldCAoKHkgKDErIHkpKSkK PiAgICAgKHZhbHVlcyB5IHkKPiAgICAgICAgICAgICAobGV0ICgoaXRlbSAoY2FyIGxpc3QpKSkK PiAgICAgICAgICAgICAgIChhZGpvaW4gaXRlbSAoY2FyIGxpc3QpIDp0ZXN0ICdlcXVhbCkpKSkp Cj4gPT4KPiA7IGNhdWdodCBXQVJOSU5HOgo+IDsgICBUaGUgZnVuY3Rpb24gRVFVQUwgaXMgY2Fs bGVkIGJ5IEFESk9JTiB3aXRoIChOSUwgVCkgYnV0IGl0IGFjY2VwdHMgKFQgVCkuCj4KPiBPbiBU dWUsIEF1ZyA0LCAyMDI2IGF0IDc6MTfigK9BTSBTdGFzIEJvdWthcmV2IDxzdGFzc2F0c0BnbWFp bC5jb20+IHdyb3RlOgo+ID4KPiA+IChkZWZ1biBqMiAoeCBuKQo+ID4gICAoZGVjbGFyZSAob3B0 aW1pemUgKGRlYnVnIDApKSkKPiA+ICAgKGxldCAoKHkgKDErIHgpKSkKPiA+ICAgICAobGlzdCAo MSsgKGNhciBuKSkKPiA+ICAgICAgICAgICAoY2FyIG4pCj4gPiAgICAgICAgICAgKGNkciBuKQo+ ID4gICAgICAgICAgIHkgeSkpKQo+ID4gaW5jcmVhc2VzIHN0YWNrIHVzYWdlIGR1ZSB0byBoYXZp bmcgdG8gc2F2ZSB0aGUgbmV3IHNoYXJlZCB2YXJpYWJsZSBvbgo+ID4gdGhlIHN0YWNrLgo+ID4K PiA+IE9uIFR1ZSwgQXVnIDQsIDIwMjYgYXQgNzowNOKAr0FNIFN0YXMgQm91a2FyZXYgPHN0YXNz YXRzQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+IChkZWZ1biBrICh4IG4pCj4gPiA+ICAg KGxldCAoKHkgKDErIHgpKSkKPiA+ID4gICAgICh2YWx1ZXMgeSB5Cj4gPiA+ICAgICAgICAgICAg IChlcSAoY2FyIChjb3B5LXRyZWUgbikpCj4gPiA+ICAgICAgICAgICAgICAgICAoY2FyIChjb3B5 LXRyZWUgbikpKSkpKQo+ID4gPiA9Pgo+ID4gPiAoayAxICcoKDEpKSkKPiA+ID4gPT4KPiA+ID4g Mgo+ID4gPiAyCj4gPiA+IFQKPiA+ID4KPiA+ID4gT24gVHVlLCBBdWcgNCwgMjAyNiBhdCA2OjQ3 4oCvQU0gU3RhcyBCb3VrYXJldiA8c3Rhc3NhdHNAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPgo+ ID4gPiA+IChkZWZ1biBqICh4KQo+ID4gPiA+ICAgKGxldCAoKHkgKDErIHgpKSkKPiA+ID4gPiAg ICAgKHZhbHVlcyB5IHkKPiA+ID4gPiAgICAgICAgICAgICAoY2FyICopCj4gPiA+ID4gICAgICAg ICAgICAgKHNldGYgKiAnKGIpKQo+ID4gPiA+ICAgICAgICAgICAgIChjYXIgKikpKSkKPiA+ID4g PiAobGV0ICgoKiAnKGEpKSkgKGogMSkpCj4gPiA+ID4gPT4KPiA+ID4gPiAyCj4gPiA+ID4gMgo+ ID4gPiA+IEEKPiA+ID4gPiAoQikKPiA+ID4gPiBBCj4gPiA+ID4KPiA+ID4gPiBPbiBUdWUsIEF1 ZyA0LCAyMDI2IGF0IDQ6MjLigK9BTSBTdGFzIEJvdWthcmV2IDxzdGFzc2F0c0BnbWFpbC5jb20+ IHdyb3RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+IChkZWZzdHJ1Y3Qgcwo+ID4gPiA+ID4gICAoeCAo bWFrZS1hcnJheSAzKSkpCj4gPiA+ID4gPgo+ID4gPiA+ID4gKGxldCAoKikKPiA+ID4gPiA+ICAg KGxhbWJkYSAoKQo+ID4gPiA+ID4gICAgIChsZXQqICgocyAjLihtYWtlLXMpKQo+ID4gPiA+ID4g ICAgICAgICAgICAoYSAocy14IHMpKQo+ID4gPiA+ID4gICAgICAgICAgICAoYiAocy14IHMpKSkK PiA+ID4gPiA+ICAgICAgICh2YWx1ZXMgKGFyZWYgYSAwKQo+ID4gPiA+ID4gICAgICAgICAgICAg ICAoYXJlZiBiIDApKSkpKQo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBkZWJ1Z2dlciBp bnZva2VkIG9uIGEgU0ItSU5UOkJVRyBAQjgwMDdCODVBRCBpbiB0aHJlYWQKPiA+ID4gPiA+ICM8 VEhSRUFEIHRpZD0xOTg2NDAyICJtYWluIHRocmVhZCIgUlVOTklORyB7MTIwMTRGMDAwM30+Ogo+ ID4gPiA+ID4gICAgIGZhaWxlZCBBVkVSOiAoRVEgRU5WIChMQU1CREEtRU5WSVJPTk1FTlQgKExB TUJEQS1WQVItSE9NRSBUSElORykpKQo+ID4gPiA+ID4KPiA+ID4gPiA+IE9uIFR1ZSwgQXVnIDQs IDIwMjYgYXQgMzo1OeKAr0FNIHNudWdsYXMgdmlhIFNiY2wtY29tbWl0cwo+ID4gPiA+ID4gPHNi Y2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBUaGUgYnJhbmNoICJtYXN0ZXIiIGhhcyBiZWVuIHVwZGF0ZWQgaW4gU0JDTDoKPiA+ ID4gPiA+ID4gICAgICAgIHZpYSAgMTAwYzljMmJkY2RjYjg0ZmYwNGM4ZmVlZjk4M2E1YjQ0Njk1 Yzk3YSAoY29tbWl0KQo+ID4gPiA+ID4gPiAgICAgICBmcm9tICBiNTQxZjJmMjViMTRiNjJmY2Fi N2UxNGFhNTEyNGRiNWRkMWQ2YjIwIChjb21taXQpCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0g TG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+IGNvbW1pdCAxMDBjOWMyYmRjZGNiODRmZjA0YzhmZWVm OTgzYTViNDQ2OTVjOTdhCj4gPiA+ID4gPiA+IEF1dGhvcjogRG91Z2xhcyBLYXR6bWFuIDxkb3Vn a0Bnb29nbGUuY29tPgo+ID4gPiA+ID4gPiBEYXRlOiAgIFR1ZSBBdWcgNCAwMDo1ODoyMSAyMDI2 ICswMDAwCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICBQZXJmb3JtIGxvY2FsIGNvbW1vbiBz dWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIGZvciBzb21lIG1lbW9yeSBsb2Fkcwo+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiAgICAgVGhlIHRlY2huaXF1ZSBpcyB0byBmaW5kICJlcXVpdmFsZW50IiBs b2FkcyBpbiBiZXR3ZWVuIHdoaWNoIHRoZXJlIGlzIG5vCj4gPiA+ID4gPiA+ICAgICBjb21wdXRh dGlvbiB0aGF0IGFmZmVjdHMgdGhlIHJlc3VsdCBvZiB0aGUgbG9hZC4gQWxzbyBpdCBuZWVkcyBh IHN1cnJvdW5kaW5nCj4gPiA+ID4gPiA+ICAgICBMRVQsIHdoaWNoIGlzIGF1Z21lbnRlZCB3aXRo IGEgbmV3IHRlbXAgdmFyaWFibGUgYXMgaWYgdGhlIHVzZXIgZGlkIHRoYXQuCj4gPiA+ID4gPiA+ ICAgICBUaGlzIGlzIHNsaWdodGx5IGRlZmljaWVudCBmb3IgdmFyaW91cyByZWFzb25zOgo+ID4g PiA+ID4gPiAgICAgMS4gaXQgd29uJ3QgZG8gYW55dGhpbmcgd2l0aG91dCB0aGUgTEVUCj4gPiA+ ID4gPiA+ICAgICAyLiB0aGUgbW9yZSBraW5kcyBvZiBjb21tb24gc3ViZXhwcmVzc2lvbnMgd2Ug YWxsb3cgKHN1Y2ggYXMgbWF0aCksCj4gPiA+ID4gPiA+ICAgICAgICB0aGUgc2xvd2VyIElSMS1P UFRJTUlaRS1DT01CSU5BVElPTiBpcyBnb2luZyB0byBydW4KPiA+ID4gPiA+ID4gICAgIDMuIHRo ZXJlIGFyZSBwb3NzaWJseSBvdGhlciBub2RlIHR5cGVzIHRoYXQgc2hvdWxkIGJlIGFsbG93ZWQg dG8gaW50ZXJ2ZW5lCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICBPbiB0aGUgcGx1cyBzaWRl LCBpdCdzIG5vdCBhbGwgdGhhdCBoYXJkIHRvIGV4dGVuZCB0aGUgbG9naWMgdG8gYWNjZXB0Cj4g PiA+ID4gPiA+ICAgICBvdGhlciBmdW5jdGlvbnMgYXMgcGFydGljaXBhbnRzIGluIGNvbW1vbiBz dWJleHByZXNzaW9ucy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gICAgIEFsbCB0ZXN0IGNhc2Vz IHBsdXMgYSBsaXR0bGUgYml0IG9mIGFzc2lzdGFuY2UgZnJvbSBHZW1pbmkKPiA+ID4gPiA+ID4g LS0tCj4gPiA+ID4gPiA+ICBzcmMvY29tcGlsZXIvaXIxb3B0Lmxpc3AgfCAxNzkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiA+ICB0ZXN0cy9sY3NlLnB1cmUu bGlzcCAgICAgfCAyMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiA+ID4gIHhwZXJmZWN0aGFzaDMwLmxpc3AtZXhwciB8ICAgMyArCj4gPiA+ ID4gPiA+ICB4cGVyZmVjdGhhc2g2MS5saXNwLWV4cHIgfCAgIDMgKwo+ID4gPiA+ID4gPiAgeHBl cmZlY3RoYXNoNjMubGlzcC1leHByIHwgICAzICsKPiA+ID4gPiA+ID4gIDUgZmlsZXMgY2hhbmdl ZCwgNDIyIGluc2VydGlvbnMoKykKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L3NyYy9jb21waWxlci9pcjFvcHQubGlzcCBiL3NyYy9jb21waWxlci9pcjFvcHQubGlzcAo+ID4g PiA+ID4gPiBpbmRleCA4NTU5ODI0ZjEuLmRhYzM5M2UzMSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0t IGEvc3JjL2NvbXBpbGVyL2lyMW9wdC5saXNwCj4gPiA+ID4gPiA+ICsrKyBiL3NyYy9jb21waWxl ci9pcjFvcHQubGlzcAo+ID4gPiA+ID4gPiBAQCAtMTIyMCw2ICsxMjIwLDE4MiBAQAo+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgKHNob3ctdHlwZS1kZXJpdmF0aW9uIGNvbWJpbmF0aW9uIHJlcykp Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgKGNvZXJjZS10by12YWx1ZXMgcmVzKSkpKSkpCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+ICsoZGVmdW4gY29sbGVjdC1sdmFyLXZhcnMgKGx2YXIpCj4gPiA+ ID4gPiA+ICsgIChkZWNsYXJlICh0eXBlIGx2YXIgbHZhcikpCj4gPiA+ID4gPiA+ICsgIChsZXQg KCh1c2UgKHByaW5jaXBhbC1sdmFyLXVzZSBsdmFyKSkpCj4gPiA+ID4gPiA+ICsgICAgKGNvbmQg KChyZWYtcCB1c2UpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgIChsZXQgKChsZWFmIChyZWYtbGVh ZiB1c2UpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAod2hlbiAobGFtYmRhLXZhci1wIGxl YWYpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAobGlzdCBsZWFmKSkpKQo+ID4gPiA+ID4g PiArICAgICAgICAgICgoY29tYmluYXRpb24tcCB1c2UpCj4gPiA+ID4gPiA+ICsgICAgICAgICAg IChtYXBjYW4gIydjb2xsZWN0LWx2YXItdmFycyAoYmFzaWMtY29tYmluYXRpb24tYXJncyB1c2Up KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAodCBuaWwpKSkpCj4gPiA+ID4gPiA+ICsKPiA+ID4g PiA+ID4gKyhkZWZ1biBmaW5kLWFjdGl2ZS1sZXQtbGFtYmRhIChub2RlKQo+ID4gPiA+ID4gPiAr ICAoZGVjbGFyZSAodHlwZSBub2RlIG5vZGUpKQo+ID4gPiA+ID4gPiArICAobG9vcCBmb3IgZW52 ID0gKG5vZGUtbGV4ZW52IG5vZGUpIHRoZW4gKGxleGVudi1wYXJlbnQgZW52KQo+ID4gPiA+ID4g PiArICAgICAgICB3aGlsZSBlbnYKPiA+ID4gPiA+ID4gKyAgICAgICAgZG8gKGxldCAoKGwgKGxl eGVudi1sYW1iZGEgZW52KSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgKHdoZW4gKGFuZCBs Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb25hbC1raW5kLWVx IGwgbGV0KQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnVuY3Rp b25hbC1raW5kLWVxIGwgem9tYmllKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAocmV0 dXJuIGwpKSkpKQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsoZGVmdW4gYWRkLXZhcmlhYmxl LXRvLWxldC1sYW1iZGEgKGxldC1sYW1iZGEgdikKPiA+ID4gPiA+ID4gKyAgKGRlY2xhcmUgKHR5 cGUgY2xhbWJkYSBsZXQtbGFtYmRhKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAodHlwZSBsYW1i ZGEtdmFyIHYpKQo+ID4gPiA+ID4gPiArICAoc2V0ZiAobGFtYmRhLXZhci1ob21lIHYpIGxldC1s YW1iZGEpCj4gPiA+ID4gPiA+ICsgIChzZXRmIChsYW1iZGEtdmFycyBsZXQtbGFtYmRhKSAoYXBw ZW5kIChsYW1iZGEtdmFycyBsZXQtbGFtYmRhKSAobGlzdCB2KSkpCj4gPiA+ID4gPiA+ICsgIDs7 IFVwZGF0ZSB0aGUgY2FsbCB0byB0aGUgTEVUIGxhbWJkYQo+ID4gPiA+ID4gPiArICAobGV0KiAo KHJlZiAoY2FyIChsZWFmLXJlZnMgbGV0LWxhbWJkYSkpKQo+ID4gPiA+ID4gPiArICAgICAgICAg KGNhbGwgKGFuZCByZWYKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgKG5vZGUtbHZh ciByZWYpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIChsdmFyLWRlc3QgKG5vZGUt bHZhciByZWYpKSkpKQo+ID4gPiA+ID4gPiArICAgICh3aGVuIChhbmQgY2FsbCAoY29tYmluYXRp b24tcCBjYWxsKSkKPiA+ID4gPiA+ID4gKyAgICAgIChsZXQgKChkdW1teS1sdmFyIChtYWtlLWx2 YXIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKHNldGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBj YWxsKQo+ID4gPiA+ID4gPiArICAgICAgICAoc2V0ZiAoYmFzaWMtY29tYmluYXRpb24tYXJncyBj YWxsKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAoYXBwZW5kIChiYXNpYy1jb21iaW5hdGlv bi1hcmdzIGNhbGwpIChsaXN0IGR1bW15LWx2YXIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKHNl dGYgKGx2YXItZGVzdCBkdW1teS1sdmFyKSBjYWxsKSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiArOzsgUmV1c2Ugb2YgU1lNQk9MLVZBTFVFIG9mIGEgc3BlY2lhbCB2YXIgd291bGQgYmUg bmljZSwKPiA+ID4gPiA+ID4gKzs7IGJ1dCBTWU1CT0wtVkFMVUUgaXQgaXMgbm90IHJlcHJlc2Vu dGVkIGFzIGEgY2FsbCBpbiBJUjEKPiA+ID4gPiA+ID4gKyhkZWZpbmUtbG9hZC10aW1lLWdsb2Jh bCAqZWxpZGFibGUtbWVtb3J5LWxvYWRzKgo+ID4gPiA+ID4gPiArICAgICcoY2FyIGNkciAlaW5z dGFuY2UtcmVmICVyYXctaW5zdGFuY2UtcmVmL3dvcmQgJXJhdy1pbnN0YW5jZS1yZWYvc2lnbmVk LXdvcmQKPiA+ID4gPiA+ID4gKyAgICAgIHNhcC1yZWYtMTYgc2lnbmVkLXNhcC1yZWYtMTYgc2It c3lzOjolc2FwLXJlZi0xNi1pbmRleGVkIHNiLXN5czo6JXNpZ25lZC1zYXAtcmVmLTE2LWluZGV4 ZWQKPiA+ID4gPiA+ID4gKyAgICAgIHNhcC1yZWYtMzIgc2lnbmVkLXNhcC1yZWYtMzIgc2Itc3lz Ojolc2FwLXJlZi0zMi1pbmRleGVkIHNiLXN5czo6JXNpZ25lZC1zYXAtcmVmLTMyLWluZGV4ZWQK PiA+ID4gPiA+ID4gKyAgICAgIHNhcC1yZWYtNjQgc2lnbmVkLXNhcC1yZWYtNjQgc2Itc3lzOjol c2FwLXJlZi02NC1pbmRleGVkIHNiLXN5czo6JXNpZ25lZC1zYXAtcmVmLTY0LWluZGV4ZWQKPiA+ ID4gPiA+ID4gKyAgICAgIHNiLWFsaWVuOmRlcmVmCj4gPiA+ID4gPiA+ICsgICAgICBzYi1hbGll bjphbGllbi1zYXApKQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICs7OzsgTG9vayBmb3IgYW55 IG5vZGUgZXF1aXZhbGVudCB0byBNQVRDSCBjb25zZGVyaW5nIG5vZGVzIGluIHJldmVyc2Ugc3Rh cnRpbmcgYXQgRlJPTS4KPiA+ID4gPiA+ID4gKzs7OyBNZW1vcnkgbG9hZHMgZnJvbSB0aGUgc2Ft ZSBvYmplY3Qrc2xvdCBvciBTQVArb2Zmc2V0IGNvdWxkIGJlIGVxdWl2YWxlbnQuCj4gPiA+ID4g PiA+ICs7OzsgTm90aGluZyBlbHNlIGNhbiBiZSBlcXVpdmFsZW50ICh1bnRpbCBJIGVuaGFuY2Ug dGhpcykKPiA+ID4gPiA+ID4gKyhkZWZ1biBmaW5kLWVxdWl2YWxlbnQtbm9kZS1iYWNrd2FyZHMg KG1hdGNoIGZyb20pCj4gPiA+ID4gPiA+ICsgIChsYWJlbHMgKChsdmFyLWVxdWl2YWxlbnQtcCAo bDEgbDIpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgKGRlY2xhcmUgKHR5cGUgbHZhciBsMSBs MikpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgKGNvbmQgKChlcSBsMSBsMikgdCkKPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAoKGFuZCAoY29uc3RhbnQtbHZhci1wIGwxKSAoY29u c3RhbnQtbHZhci1wIGwyKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgKGVxbCAo bHZhci12YWx1ZSBsMSkgKGx2YXItdmFsdWUgbDIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAodAo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAobGV0ICgodTEgKHBy aW5jaXBhbC1sdmFyLXVzZSBsMSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICh1MiAocHJpbmNpcGFsLWx2YXItdXNlIGwyKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgKGNvbmQgKChhbmQgKHJlZi1wIHUxKSAocmVmLXAgdTIpKQo+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgKHJlZi1sZWFmIHUxKSAocmVmLWxl YWYgdTIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAo Y29tYmluYXRpb24tcCB1MSkgKGNvbWJpbmF0aW9uLXAgdTIpCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChiYXNpYy1jb21iaW5hdGlvbi1raW5kIHUx KSA6a25vd24pCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGVxIChiYXNpYy1jb21iaW5hdGlvbi1raW5kIHUyKSA6a25vd24pKQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tYmluYXRpb24tZXF1aXZhbGVudC1wIHUxIHUy KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCBuaWwpKSkpKSkK PiA+ID4gPiA+ID4gKyAgICAgICAgICAgKGNvbWJpbmF0aW9uLWVxdWl2YWxlbnQtcCAoYzEgYzIp Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgKGRlY2xhcmUgKHR5cGUgY29tYmluYXRpb24gYzEg YzIpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgIChhbmQgKGVxIChiYXNpYy1jb21iaW5hdGlv bi1mdW4taW5mbyBjMSkgKGJhc2ljLWNvbWJpbmF0aW9uLWZ1bi1pbmZvIGMyKSkKPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgIChsZXQgKChhcmdzMSAoYmFzaWMtY29tYmluYXRpb24tYXJn cyBjMSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoYXJnczIgKGJhc2lj LWNvbWJpbmF0aW9uLWFyZ3MgYzIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg KGFuZCAoPSAobGVuZ3RoIGFyZ3MxKSAobGVuZ3RoIGFyZ3MyKSkKPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAoZXZlcnkgIydsdmFyLWVxdWl2YWxlbnQtcCBhcmdzMSBhcmdz MikpKSkpKQo+ID4gPiA+ID4gPiArICAgIChkbyAoKG5vZGUgZnJvbSAoY3RyYW4tdXNlIChub2Rl LXByZXYgbm9kZSkpKSkgKChudWxsIG5vZGUpKQo+ID4gPiA+ID4gPiArICAgICAgKHdoZW4gKGFu ZCAoY29tYmluYXRpb24tcCBub2RlKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAoZXEg KGNvbWJpbmF0aW9uLWtpbmQgbm9kZSkgOmtub3duKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICAobm9kZS1sdmFyIG5vZGUpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgIChjb21i aW5hdGlvbi1lcXVpdmFsZW50LXAgbm9kZSBtYXRjaCkpCj4gPiA+ID4gPiA+ICsgICAgICAgIChy ZXR1cm4gbm9kZSkpCj4gPiA+ID4gPiA+ICsgICAgICAodHlwZWNhc2Ugbm9kZQo+ID4gPiA+ID4g PiArICAgICAgICAoKG9yIGNzZXQgcmVmIGNhc3QgY29tYmluYXRpb24gY2lmKSkKPiA+ID4gPiA+ ID4gKyAgICAgICAgKHQKPiA+ID4gPiA+ID4gKyAgICAgICAgIDs7IFJldHVybiA6RkFJTCB0byBh Ym9ydCBxdWlja2x5LiBUaGlzIGNvdWxkIGNob29zZSB0byBmYWlsIGlmIGEgbm9uLWZsdXNoYWJs ZQo+ID4gPiA+ID4gPiArICAgICAgICAgOzsgY29tYmluYXRpb24gaXMgc2VlbiwgYnV0IGZvciBu b3cgSSdtIGRlZmVycmluZyB0aGF0IHNvdW5kbmVzcyBjaGVjay4KPiA+ID4gPiA+ID4gKyAgICAg ICAgIChyZXR1cm4tZnJvbSBmaW5kLWVxdWl2YWxlbnQtbm9kZS1iYWNrd2FyZHMgOmZhaWwpKSkp KSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArOzs7IEF0dG1wdCB0byBmaW5kIGEgQ09NQklO QVRJT04gZXF1aXZhbGVudCB0byBUSElTIHByZWNlZGluZyBpdCBpbiBub2RlIG9yZGVyLCB0aGUg dmFsdWUKPiA+ID4gPiA+ID4gKzs7OyBvZiB3aGljaCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHRo ZSBjYWxsIHRvIFRISVMsIGFjdHVhbGx5IG1ha2luZyB0aGUgc3Vic3RpdHV0aW9uLgo+ID4gPiA+ ID4gPiArOzs7IExvb2tpbmcgYmFja3dhcmRzIGF0IG1vc3QgYSBmZXcgYmxvY2tzIHRlbmRzIHRv IHdvcmsgd2VsbCBlbm91Z2gsIGFuZCBpbnBvcnRhbnRseQo+ID4gPiA+ID4gPiArOzs7IGxpbWl0 cyB0aGUgd29yay4gU2Nhbm5pbmcgb25seSB0aGUgY3VycmVudCBibG9jayBpcyBpbmFkZXF1YXRl IGFzIHRoZSBleGFtcGxlCj4gPiA+ID4gPiA+ICs7OzsgaW4gOkxPT1AtT1ZFUi1ERVJFRiBzaG93 cy4gVGhlIGltbWVkaWF0ZSBwcmVkZWNlc3NvciBpcyBzdGlsbCBub3QgZW5vdWdoLCBiZWNhdXNl IHRoZQo+ID4gPiA+ID4gPiArOzs7IHByZWRlY2Vzc29yIGNvdWxkIGhhdmUgYmVlbiBzcGxpdCwg bGVhdmluZyBhIHRpbnkgYmxvY2sgd2hlcmUgdGhlIG9ubHkgbm9kZSBpcwo+ID4gPiA+ID4gPiAr Ozs7IGEgdHJpdmlhbCBvcGVyYXRpb24uCj4gPiA+ID4gPiA+ICsoZGVmdW4gdHJ5LXJldXNlLWV4 cHItdmFsdWUgKHRoaXMpCj4gPiA+ID4gPiA+ICsgIChkZWNsYXJlICh0eXBlIGNvbWJpbmF0aW9u IHRoaXMpKQo+ID4gPiA+ID4gPiArICAoYmluZGluZyoKPiA+ID4gPiA+ID4gKyAgICAgICgoaG9t ZS1sYW1iZGEgKGZpbmQtYWN0aXZlLWxldC1sYW1iZGEgdGhpcykgOmV4aXQtaWYtbnVsbCkKPiA+ ID4gPiA+ID4gKyAgICAgICAobG9va2JhY2sgMCkKPiA+ID4gPiA+ID4gKyAgICAgICAoYzEKPiA+ ID4gPiA+ID4gKyAgICAgICAgOzsgSW4gdGhpcyBibG9jaywgZXhwbGljaXRseSBnbyBiYWNrIGEg bm9kZSBzbyB0aGF0IEZJTkQtQkFDS1dBUkRTIGRvZXNuJ3QgY29uc2lkZXIgVEhJUwo+ID4gPiA+ ID4gPiArICAgICAgICA7OyBhcyBlcXVpdmFsZW50IHRvIGl0c2VsZi4gRmFpbGluZyB0aGF0LCB0 cnkgcHJlZGVjZXNzb3IgYmxvY2tzLCBidXQgb25seSBhcyBsb25nIGFzCj4gPiA+ID4gPiA+ICsg ICAgICAgIDs7IHByZWQgaXMgdW5pcXVlIHNpbmNlIHdlIGhhdmUgbm8gaW5mb3JtYXRpb24gYWJv dXQgbm9kZXMgdGhhdCBkb21pbmF0ZSBUSElTLgo+ID4gPiA+ID4gPiArICAgICAgICAob3IgKGZp bmQtZXF1aXZhbGVudC1ub2RlLWJhY2t3YXJkcyB0aGlzIChjdHJhbi11c2UgKG5vZGUtcHJldiB0 aGlzKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAoZG8gKChwcmVkIChibG9jay1wcmVkIChu b2RlLWJsb2NrIHRoaXMpKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgKChvciAoPiBs b29rYmFjayAzKSAobm90IChzaW5nbGV0b24tcCBwcmVkKSkpKQo+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAoaW5jZiBsb29rYmFjaykKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgKGxldCAo KG5vZGUgKGJsb2NrLWxhc3QgKGNhciBwcmVkKSkpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICh3aGVuIChudWxsIG5vZGUpIChyZXR1cm4pKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgIChhd2hlbiAoZmluZC1lcXVpdmFsZW50LW5vZGUtYmFja3dhcmRzIHRoaXMgbm9kZSkgKHJl dHVybiBpdCkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgKHNldHEgcHJlZCAoYmxvY2st cHJlZCAobm9kZS1ibG9jayBub2RlKSkpKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgIDpleGl0LWlm LW51bGwpCj4gPiA+ID4gPiA+ICsgICAgICAgKHZhcnMgOyBjYW4ndCB1c2UgOmV4aXQtaWYtbnVs bCBoZXJlIGJlY2F1c2UgVkFSUyBjYW4gYmUgYW5kIHVzdWFsbHkgaXMgTklMCj4gPiA+ID4gPiA+ ICsgICAgICAgICh1bmxlc3MgKGVxIGMxIDpmYWlsKQo+ID4gPiA+ID4gPiArICAgICAgICAgICht YXBjYW4gIydjb2xsZWN0LWx2YXItdmFycyAoYmFzaWMtY29tYmluYXRpb24tYXJncyBjMSkpKSkp Cj4gPiA+ID4gPiA+ICsgICAgKHdoZW4gKGVxIGMxIDpmYWlsKQo+ID4gPiA+ID4gPiArICAgICAg KHJldHVybi1mcm9tIHRyeS1yZXVzZS1leHByLXZhbHVlIG5pbCkpCj4gPiA+ID4gPiA+ICsgICAg KGxhYmVscyAoKGFsbC1mbHVzaGFibGUgKGN0cmFuIGVuZC1ub2RlKQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgKGRlY2xhcmUgKGN0cmFuIGN0cmFuKSAodHlwZSAob3Igbm9kZSBudWxsKSBl bmQtbm9kZSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAobG9vcCAobGV0ICgobm9kZSAo Y3RyYW4tbmV4dCBjdHJhbikpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAo Y29uZCAoKGVxIG5vZGUgZW5kLW5vZGUpIChyZXR1cm4gdCkpCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgobm90IChvay10by1mbHVzaCBub2RlKSkgKHJldHVybiBu aWwpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAobm90 IGVuZC1ub2RlKSAobm90IChub2RlLW5leHQgbm9kZSkpKSAocmV0dXJuIHQpKSkKPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgY3RyYW4gKG5vZGUtbmV4dCBub2RlKSkp KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAob2stdG8tZmx1c2ggKG5vZGUpCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAoY29uZCAoKHNldC1wIG5vZGUpIChub3QgKG1lbWJlciAoc2V0 LXZhciBub2RlKSB2YXJzKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAoKGNv bWJpbmF0aW9uLXAgbm9kZSkgKGZsdXNoYWJsZS1jb21iaW5hdGlvbi1wIG5vZGUpKQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgKChiYXNpYy1jb21iaW5hdGlvbi1wIG5vZGUpIG5p bCkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICh0IHQpKSkpIDsgYW55dGhpbmcg ZWxzZSB0aGUgYmFja3dhcmRzIHNlYXJjaCBhbGxvd2VkIGlzIG9rCj4gPiA+ID4gPiA+ICsgICAg ICA7OyBXaGVuIGxvb2tiYWNrPjAgaXQncyBwb3NzaWJsZSBmb3IgdGhlIGVxdWl2YWxlbnQgbm9k ZSB0byBiZSB0aGUgZmluYWwgbm9kZQo+ID4gPiA+ID4gPiArICAgICAgOzsgb2YgaXRzIGJsb2Nr LCBpbiB3aGljaCBjYXNlIGl0cyBOT0RFLU5FWFQgaXMgbnVsbC4KPiA+ID4gPiA+ID4gKyAgICAg IChsZXQqICgodGhpcy1ibG9jayAobm9kZS1ibG9jayB0aGlzKSkKPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAocHJlZCAoY2FyIChibG9jay1wcmVkIHRoaXMtYmxvY2spKSkpCj4gPiA+ID4gPiA+ ICsgICAgICAgICh1bmxlc3MgKGlmICg9IGxvb2tiYWNrIDApCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgIChhbGwtZmx1c2hhYmxlIChub2RlLW5leHQgYzEpIHRoaXMpCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgIChhbmQKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgIDs7IENoZWNrIHByZXYgYmxvY2sgZnJvbSBDMSB0byBpdHMgZW5kIG9mIGJsb2NrLCBh bmQgY3VycmVudCBibG9jayB1cCB0byBUSElTCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAoYWNvbmQgKChub2RlLW5leHQgYzEpIChhbGwtZmx1c2hhYmxlIGl0IG5pbCkpICh0IHQp KQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgKGFsbC1mbHVzaGFibGUgKGJsb2Nr LXN0YXJ0IHRoaXMtYmxvY2spIHRoaXMpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICA7OyBBbGwgY2hlY2sgYWxsIG9mIG9uZSBvciBib3RoIGludGVydmVuaW5nIGJsb2Nrcwo+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgKG9yICg8IGxvb2tiYWNrIDIpCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgKGFsbC1mbHVzaGFibGUgKGJsb2NrLXN0YXJ0 IHByZWQpIG5pbCkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAob3IgKDwgbG9v a2JhY2sgMykKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAoYWxsLWZsdXNo YWJsZSAoYmxvY2stc3RhcnQgKGNhciAoYmxvY2stcHJlZCBwcmVkKSkpIG5pbCkpKSkKPiA+ID4g PiA+ID4gKyAgICAgICAgICAocmV0dXJuLWZyb20gdHJ5LXJldXNlLWV4cHItdmFsdWUgbmlsKSkp KQo+ID4gPiA+ID4gPiArICAgIDs7IFN1YnN0aXR1dGUgQzEncyByZXN1bHQgaW4gZm9yIFRISVMK PiA+ID4gPiA+ID4gKyAgICAoYmluZGluZyogKChsdmFyLWMxIChub2RlLWx2YXIgYzEpIDpleGl0 LWlmLW51bGwpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAoY29uc3VtZXItMSAobHZhci1k ZXN0IGx2YXItYzEpIDpleGl0LWlmLW51bGwpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAo YzIgdGhpcykKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIChsdmFyLWMyIChub2RlLWx2YXIg YzIpIDpleGl0LWlmLW51bGwpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAodiAobWFrZS1s YW1iZGEtdmFyIChnZW5zeW0gIlJFVVNFRC1WQUwiKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6dHlwZSAoc2luZ2xlLXZhbHVlLXR5cGUgKG5vZGUtZGVy aXZlZC10eXBlIGMxKSkpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgKGx2YXItbmV3ICht YWtlLWx2YXIpKSkKPiA+ID4gPiA+ID4gKyAgICAgIChhZGQtdmFyaWFibGUtdG8tbGV0LWxhbWJk YSBob21lLWxhbWJkYSB2KQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsgICAgICA7OyAxLiBS ZWRpcmVjdCBjb25zdW1lci0xIHRvIHJlYWQgZnJvbSBsdmFyLW5ldwo+ID4gPiA+ID4gPiArICAg ICAgKHN1YnN0aXR1dGUtbHZhciBsdmFyLW5ldyBsdmFyLWMxKQo+ID4gPiA+ID4gPiArCj4gPiA+ ID4gPiA+ICsgICAgICAod2l0aC1pcjEtZW52aXJvbm1lbnQtZnJvbS1ub2RlIGMxCj4gPiA+ID4g PiA+ICsgICAgICAgIDs7IDIuIE1ha2UgQzEgd3JpdGUgdG8gYSBuZXcgTFZBUiwgYW5kIGxpbmsg aXQgdG8gYSBDU0VUIG9uIFYKPiA+ID4gPiA+ID4gKyAgICAgICAgKGxldCAoKGx2YXItYzEtbmV3 IChtYWtlLWx2YXIpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAoJWRlbGV0ZS1sdmFyLXVzZSBj MSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAodXNlLWx2YXIgYzEgbHZhci1jMS1uZXcpCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgOzsgMy4gQ3JlYXRlIFMxIChzZXQgViA9IGx2YXItYzEtbmV3KSBh bmQgaW5zZXJ0IGFmdGVyIEMxCj4gPiA+ID4gPiA+ICsgICAgICAgICAgKGxldCAoKHMxIChtYWtl LXNldCB2IGx2YXItYzEtbmV3KSkpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAoc2V0ZiAobHZh ci1kZXN0IGx2YXItYzEtbmV3KSBzMSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIChwdXNoIHMx IChiYXNpYy12YXItc2V0cyB2KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIChpbnNlcnQtbm9k ZS1hZnRlciBjMSBzMSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArICAgICAgOzsgNC4g SW5zZXJ0IHJlZjEgYmVmb3JlIGNvbnN1bWVyLTEsIHdyaXRpbmcgdG8gbHZhci1uZXcKPiA+ID4g PiA+ID4gKyAgICAgIChpbnNlcnQtcmVmLWJlZm9yZSB2IGNvbnN1bWVyLTEgbHZhci1uZXcpCj4g PiA+ID4gPiA+ICsgICAgICA7OyA1LiBJbnNlcnQgcmVmMiBiZWZvcmUgQzIsIHN0ZWFsaW5nIEMy J3MgbHZhcgo+ID4gPiA+ID4gPiArICAgICAgKGluc2VydC1yZWYtYmVmb3JlIHYgYzIgdCkKPiA+ ID4gPiA+ID4gKyAgICAgIDs7IEMyIGlzIG5vdyBkZWFkIGFuZCB3aWxsIGJlIGZsdXNoZWQgYnkg dGhlIGNhbGxlciEKPiA+ID4gPiA+ID4gKyAgICAgIHQpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiAgOzs7IERvIElSMSBvcHRpbWl6YXRpb25zIG9uIGEgQ09NQklOQVRJT04gbm9kZS4KPiA+ ID4gPiA+ID4gIChkZWZ1biBpcjEtb3B0aW1pemUtY29tYmluYXRpb24gKG5vZGUgJmF1eCAoc2hv dyAqc2hvdy10cmFuc2Zvcm1zLXAqKSkKPiA+ID4gPiA+ID4gICAgKGRlY2xhcmUgKHR5cGUgY29t YmluYXRpb24gbm9kZSkpCj4gPiA+ID4gPiA+IEBAIC0xMzA1LDYgKzE0ODEsOSBAQAo+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChub2RlLWx2YXIgbm9kZSkpKQo+ID4g PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgKHJldHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1jb21i aW5hdGlvbiAoZmx1c2gtbm9kZSBub2RlKSkpCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICgoZm9sZC1jYWxsLWRlcml2ZWQtdG8tY29uc3RhbnQgbm9kZSkKPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgIChyZXR1cm4tZnJvbSBpcjEtb3B0aW1pemUtY29tYmluYXRpb24pKQo+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAoKGFuZCAoY29tYmluYXRpb24taXMgbm9kZSAqZWxp ZGFibGUtbWVtb3J5LWxvYWRzKikKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg KHRyeS1yZXVzZS1leHByLXZhbHVlIG5vZGUpKQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgKHJldHVybi1mcm9tIGlyMS1vcHRpbWl6ZS1jb21iaW5hdGlvbikpKQo+ID4gPiA+ID4gPiAg ICAgICAgICAgICAod2hlbiAoYW5kIChpcjEtYXR0cmlidXRlcCAoZnVuLWluZm8tYXR0cmlidXRl cyBpbmZvKSBjb21tdXRhdGl2ZSkKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAo PSAobGVuZ3RoIGFyZ3MpIDIpCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9sY3NlLnB1 cmUubGlzcCBiL3Rlc3RzL2xjc2UucHVyZS5saXNwCj4gPiA+ID4gPiA+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0Cj4gPiA+ID4gPiA+IGluZGV4IDAwMDAwMDAwMC4uNDNiMzRlOTk4Cj4gPiA+ID4gPiA+ IC0tLSAvZGV2L251bGwKPiA+ID4gPiA+ID4gKysrIGIvdGVzdHMvbGNzZS5wdXJlLmxpc3AKPiA+ ID4gPiA+ID4gQEAgLTAsMCArMSwyMzQgQEAKPiA+ID4gPiA+ID4gKzs7OzsgVGhpcyBzb2Z0d2Fy ZSBpcyBwYXJ0IG9mIHRoZSBTQkNMIHN5c3RlbS4gU2VlIHRoZSBSRUFETUUgZmlsZSBmb3IKPiA+ ID4gPiA+ID4gKzs7OzsgbW9yZSBpbmZvcm1hdGlvbi4KPiA+ID4gPiA+ID4gKzs7OzsKPiA+ID4g PiA+ID4gKzs7OzsgV2hpbGUgbW9zdCBvZiBTQkNMIGlzIGRlcml2ZWQgZnJvbSB0aGUgQ01VIENM IHN5c3RlbSwgdGhlIHRlc3QKPiA+ID4gPiA+ID4gKzs7OzsgZmlsZXMgKGxpa2UgdGhpcyBvbmUp IHdlcmUgd3JpdHRlbiBmcm9tIHNjcmF0Y2ggYWZ0ZXIgdGhlIGZvcmsKPiA+ID4gPiA+ID4gKzs7 OzsgZnJvbSBDTVUgQ0wuCj4gPiA+ID4gPiA+ICs7Ozs7Cj4gPiA+ID4gPiA+ICs7Ozs7IFRoaXMg c29mdHdhcmUgaXMgaW4gdGhlIHB1YmxpYyBkb21haW4gYW5kIGlzIHByb3ZpZGVkIHdpdGgKPiA+ ID4gPiA+ID4gKzs7OzsgYWJzb2x1dGVseSBubyB3YXJyYW50eS4gU2VlIHRoZSBDT1BZSU5HIGFu ZCBDUkVESVRTIGZpbGVzIGZvcgo+ID4gPiA+ID4gPiArOzs7OyBtb3JlIGluZm9ybWF0aW9uLgo+ ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICs7Ozs7IFRlc3RzIG9mIGxvY2FsIGNvbW1vbiBzdWJl eHByZXNzaW9uIGVsaW1pbmF0aW9uCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyhpbXBvcnQg JyhjdHU6aW5zcGVjdC1pcgo+ID4gPiA+ID4gPiArICAgICAgICAgIHNiLWM6OmNvbWJpbmF0aW9u LWZ1bi1kZWJ1Zy1uYW1lCj4gPiA+ID4gPiA+ICsgICAgICAgICAgc2ItYzo6YmFzaWMtY29tYmlu YXRpb24tcCkpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyhkZWZ1biBpci1jYWxscyAoZm9y bSkKPiA+ID4gPiA+ID4gKyAgKGxldCAoY2FsbHMpCj4gPiA+ID4gPiA+ICsgICAgKGluc3BlY3Qt aXIKPiA+ID4gPiA+ID4gKyAgICAgZm9ybQo+ID4gPiA+ID4gPiArICAgICAobGFtYmRhIChjb21w b25lbnQpCj4gPiA+ID4gPiA+ICsgICAgICAgKGN0dTpkby1ibG9ja3MgKGJsb2NrIGNvbXBvbmVu dCkKPiA+ID4gPiA+ID4gKyAgICAgICAgIChjdHU6ZG8tbm9kZXMgKG5vZGUgbmlsIGJsb2NrKQo+ ID4gPiA+ID4gPiArICAgICAgICAgICAod2hlbiAoYmFzaWMtY29tYmluYXRpb24tcCBub2RlKQo+ ID4gPiA+ID4gPiArICAgICAgICAgICAgIChwdXNoIG5vZGUgY2FsbHMpKSkpKSkKPiA+ID4gPiA+ ID4gKyAgICBjYWxscykpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyhkZWZtYWNybyBhc3Nl cnQtY2FsbHMgKGZ1bi1uYW1lIGV4cGVjdGVkLWNvdW50ICgmcmVzdCBsYW1iZGEtYXJncykgJmJv ZHkgYm9keSkKPiA+ID4gPiA+ID4gKyAgKHNiLWludDpiaW5kaW5nKgo+ID4gPiA+ID4gPiArICAg ICAgKCgoZm9ybXMgZGVjbHMpIChzYi1pbnQ6cGFyc2UtYm9keSBib2R5IG5pbCkpCj4gPiA+ID4g PiA+ICsgICAgICAgKGxleHByIGAobGFtYmRhICgsQGxhbWJkYS1hcmdzKQo+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAsQGRlY2xzCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICA7 OyBXaXRob3V0IGEgY29udGFpbmluZyBMRVQgZm9ybSwgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp b24gb2YgQ1NFCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICA7OyBpcyB1bndpbGxpbmcg dG8gYmluZCBhIHRlbXBvcmFyeSBsYW1iZGEgdmFyIGZvciByZXVzZS4KPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgIChsZXQgKChhY3RpdmUtbGV0LXZhciAwKSkKPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgKHByaW50IGFjdGl2ZS1sZXQtdmFyKQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAoaW5jZiBhY3RpdmUtbGV0LXZhciAocmFuZG9tIDUpKQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAocHJpbnQgYWN0aXZlLWxldC12YXIpCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICxAZm9ybXMpKSkpCj4gPiA+ID4gPiA+ICsgICAgYChh c3NlcnQgKD0gKGNvdW50ICcsZnVuLW5hbWUgKGlyLWNhbGxzICcsbGV4cHIpIDprZXkgIydjb21i aW5hdGlvbi1mdW4tZGVidWctbmFtZSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAsZXhw ZWN0ZWQtY291bnQpKSkpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKzs7OyBCYXNpYyB0ZXN0 czogYSBzYW1wbGluZyBvZiBlbGlkYWJsZSBsb2FkIHR5cGUgd2l0aCB0d28gaWRlbnRpY2FsIGxv YWRzCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpj YXIpKQo+ID4gPiA+ID4gPiArICAoYXNzZXJ0LWNhbGxzIGNhciAxIChjb25zKQo+ID4gPiA+ID4g PiArICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ID4gPiA+ICsgICAgKGlmIChj YXIgY29ucykKPiA+ID4gPiA+ID4gKyAgICAgICAgKHByaW5jIChjYXIgY29ucykpCj4gPiA+ID4g PiA+ICsgICAgICAgIChwcmluYyAoY2RyIGNvbnMpKSkpKQo+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LW5hbWVzLWZvci1zYW1lLW9i amVjdCkpCj4gPiA+ID4gPiA+ICsgIDs7IFkgYW5kIFggcmVmZXIgdG8gdGhlIHNhbWUgdGhpbmcs IGFuZCBpdCBkb2Vzbid0IG1hdHRlcgo+ID4gPiA+ID4gPiArICA7OyB3aG9zZSBDRFIgd2UgdGFr ZSBmaXJzdC4gT25seSBvbmUgQ0RSIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQKPiA+ID4gPiA+ID4g KyAgKGFzc2VydC1jYWxscyBjZHIgMSAoeCkKPiA+ID4gPiA+ID4gKyAgICAoZGVjbGFyZSAodHlw ZSBjb25zIHgpKQo+ID4gPiA+ID4gPiArICAgIChsZXQgKCh5IHgpKQo+ID4gPiA+ID4gPiArICAg ICAgKGxpc3QgKGNkciB5KSAoY2RyIHgpKSkpCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2FsbHMg Y2RyIDEgKHgpCj4gPiA+ID4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyB4KSkKPiA+ID4g PiA+ID4gKyAgICAobGV0ICgoeSB4KSkKPiA+ID4gPiA+ID4gKyAgICAgIChsaXN0IChjZHIgeCkg KGNkciB5KSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUg KDpjc2UgOmNvbXBvc2l0aW9uLW9mLWN4cikpCj4gPiA+ID4gPiA+ICsgIDs7IFRoZSBDQVIgZXh0 cmFjdGlvbiB3aGljaCBpcyBwYXJ0IG9mIHRoZSBDREFSIGZ1bmN0aW9uIGNhbiBiZQo+ID4gPiA+ ID4gPiArICA7OyByZXVzZWQgYmFzZWQgb24gdGhlIGZhY3QgdGhhdCB3ZSBldmFsdWF0ZWQgKExJ U1RQIChDQVIgWCkpCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDEgKHgpCj4gPiA+ ID4gPiA+ICsgICAgKGlmIChsaXN0cCAoY2FyIHgpKSAoY2RhciB4KSkpCj4gPiA+ID4gPiA+ICsg IDs7IG5lZ2F0aXZlIHRlc3QgLSBDREFSIG9uIGEgZGlmZmVyZW50IFkgaXMgYW5vdGhlciBDQVIg b3BlcmF0aW9uCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2FsbHMgY2FyIDIgKHggeSkKPiA+ID4g PiA+ID4gKyAgICAoaWYgKGxpc3RwIChjYXIgeCkpIChjZGFyIHkpKSkpCj4gPiA+ID4gPiA+ICsK PiA+ID4gPiA+ID4gKyhkZWZzdHJ1Y3QgY3NlLXRlc3QtZm9vIHNsb3QgKHdzbG90IDAgOnR5cGUg c2Itdm06d29yZCkpCj4gPiA+ID4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6aW5zdGFu Y2UtcmVmKSkKPiA+ID4gPiA+ID4gKyAgKGFzc2VydC1jYWxscyBzYi1rZXJuZWw6JWluc3RhbmNl LXJlZiAxICh4KQo+ID4gPiA+ID4gPiArICAgIDs7IERlcGVuZGluZyBvbiB3aGF0IFRSQU5TRk9S TS1JTlNUQU5DRS1UWVBFUCBkb2VzLCBpdCBtaWdodCBhY2Nlc3MgaW5zdGFuY2UtbGF5b3V0Cj4g PiA+ID4gPiA+ICsgICAgOzsgdXNpbmcgJUlOU1RBTkNFLVJFRiB3aGljaCB3b3VsZCBoYXZlIHRv IGJlIGRpc2NvdW50ZWQgaW4gdGhlIGNhbGwgY291bnRpbmcuCj4gPiA+ID4gPiA+ICsgICAgOzsg SnVzdCBicnV0ZS1mb3JjZSB0aGUgdHlwZSB0byBhdm9pZCB0aGF0IHNpdHVhdGlvbi4KPiA+ID4g PiA+ID4gKyAgICAobGV0ICgoeCAodHJ1bHktdGhlIGNzZS10ZXN0LWZvbyB4KSkpCj4gPiA+ID4g PiA+ICsgICAgICAoaWYgKGNzZS10ZXN0LWZvby1zbG90IHgpCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgKHByaW5jIChjc2UtdGVzdC1mb28tc2xvdCB4KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICBu aWwpKSkpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3Nl IDpyYXctaW5zdGFuY2UtcmVmL3dvcmQpKQo+ID4gPiA+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNi LWtlcm5lbDolcmF3LWluc3RhbmNlLXJlZi93b3JkIDEgKHgpCj4gPiA+ID4gPiA+ICsgICAgKGRl Y2xhcmUgKHR5cGUgY3NlLXRlc3QtZm9vIHgpKQo+ID4gPiA+ID4gPiArICAgIChpZiAobG9ndGVz dCAoY3NlLXRlc3QtZm9vLXdzbG90IHgpICN4ZmYwMDApCj4gPiA+ID4gPiA+ICsgICAgICAgIChw cmluYyAoY3NlLXRlc3QtZm9vLXdzbG90IHgpKQo+ID4gPiA+ID4gPiArICAgICAgICBuaWwpKSkK PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNhcC1y ZWYtMzIpKQo+ID4gPiA+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLXN5czpzYXAtcmVmLTMyIDEg KHNhcCBvZmZzZXQpCj4gPiA+ID4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgc2Itc3lzOnN5c3Rl bS1hcmVhLXBvaW50ZXIgc2FwKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICh0eXBlIHNiLXZt OndvcmQgb2Zmc2V0KSkKPiA+ID4gPiA+ID4gKyAgICAoaWYgKHBsdXNwIChzYi1zeXM6c2FwLXJl Zi0zMiBzYXAgb2Zmc2V0KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKHByaW5jIChzYi1zeXM6c2Fw LXJlZi0zMiBzYXAgb2Zmc2V0KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgbmlsKSkKPiA+ID4gPiA+ ID4gKyAgKGFzc2VydC1jYWxscyBzYi1zeXM6c2lnbmVkLXNhcC1yZWYtMzIgMSAoc2FwIG9mZnNl dCkKPiA+ID4gPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBzYi1zeXM6c3lzdGVtLWFyZWEtcG9p bnRlciBzYXApCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgKHR5cGUgc2Itdm06d29yZCBvZmZz ZXQpKQo+ID4gPiA+ID4gPiArICAgIChpZiAocGx1c3AgKHNiLXN5czpzaWduZWQtc2FwLXJlZi0z MiBzYXAgb2Zmc2V0KSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKHByaW5jIChzYi1zeXM6c2lnbmVk LXNhcC1yZWYtMzIgc2FwIG9mZnNldCkpCj4gPiA+ID4gPiA+ICsgICAgICAgIG5pbCkpKQo+ID4g PiA+ID4gPiArCj4gPiA+ID4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6c2FwLXJlZi02 NCkgOnNraXBwZWQtb24gKDpub3QgOjY0LWJpdCkpCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2Fs bHMgc2Itc3lzOnNhcC1yZWYtNjQgMSAoc2FwIG9mZnNldCkKPiA+ID4gPiA+ID4gKyAgICAoZGVj bGFyZSAodHlwZSBzYi1zeXM6c3lzdGVtLWFyZWEtcG9pbnRlciBzYXApCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgKHR5cGUgc2Itdm06d29yZCBvZmZzZXQpKQo+ID4gPiA+ID4gPiArICAgIChp ZiAocGx1c3AgKHNiLXN5czpzYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gPiA+ID4gPiArICAg ICAgICAocHJpbmMgKHNiLXN5czpzYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gPiA+ID4gPiAr ICAgICAgICBuaWwpKQo+ID4gPiA+ID4gPiArICAoYXNzZXJ0LWNhbGxzIHNiLXN5czpzaWduZWQt c2FwLXJlZi02NCAxIChzYXAgb2Zmc2V0KQo+ID4gPiA+ID4gPiArICAgIChkZWNsYXJlICh0eXBl IHNiLXN5czpzeXN0ZW0tYXJlYS1wb2ludGVyIHNhcCkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAodHlwZSBzYi12bTp3b3JkIG9mZnNldCkpCj4gPiA+ID4gPiA+ICsgICAgKGlmIChwbHVzcCAo c2Itc3lzOnNpZ25lZC1zYXAtcmVmLTY0IHNhcCBvZmZzZXQpKQo+ID4gPiA+ID4gPiArICAgICAg ICAocHJpbmMgKHNiLXN5czpzaWduZWQtc2FwLXJlZi02NCBzYXAgb2Zmc2V0KSkKPiA+ID4gPiA+ ID4gKyAgICAgICAgbmlsKSkpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyh3aXRoLXRlc3Qg KDpuYW1lICg6Y3NlIDpsb29wLW92ZXItZGVyZWYpKQo+ID4gPiA+ID4gPiArICAobGV0ICgobGV4 cHIKPiA+ID4gPiA+ID4gKyAgICAgICAgICcobGFtYmRhIChmKQo+ID4gPiA+ID4gPiArICAgICAg ICAgICAgKGRlY2xhcmUgKG9wdGltaXplIChzYi1jOjphbGllbi1mdW5jYWxsLXNhdmVzLWZwLWFu ZC1wYyAwKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYi1j Ojp0eXBlLWNoZWNrIDApKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIDs7IEYgcmV0dXJucyBh IHBvaW50ZXIgdG8gYSBudWxsLXRlcm1pbmF0ZWQgYXJyYXkgb2YgdW5zaWduZWQtaW50Lgo+ID4g PiA+ID4gPiArICAgICAgICAgICAgOzsgVGhlIGRlcmVmIGZvciB0aGUgbG9vcCB0ZXJtaW5hdGlv biB0ZXN0LCBhbmQgYWdhaW4gaW4gdGhlIGJvZHkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIDs7 IHNob3VsZCB1c2UgYSBzaW5nbGUgbWVtb3J5IGxvYWQuCj4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAobGV0ICgoYSAoYWxpZW4tZnVuY2FsbCAodGhlIChhbGllbiAoZnVuY3Rpb24gKCogdW5zaWdu ZWQpKSkgZikpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgKGRvICgoaW5kZXggMCAoMSsg aW5kZXgpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICgoemVyb3AgKGRlcmVmIGEg aW5kZXgpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAocHJpbmMgKHRoZSBmaXhudW0g KGRlcmVmIGEgaW5kZXgpKSkpKSkpKQo+ID4gPiA+ID4gPiArICAgIChhc3NlcnQgKD0gKGNvdW50 ICMrKG9yIGFybTY0IHg4Ni02NCkgJ3NiLXN5czolc2FwLXJlZi02NC1pbmRleGVkCj4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIy0ob3IgYXJtNjQgeDg2LTY0KQo+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgIChwcm9nbiAjKzY0LWJpdCAnc2Itc3lzOnNhcC1yZWYt NjQgIy02NC1iaXQgJ3NiLXN5czpzYXAtcmVmLTMyKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgIChpci1jYWxscyBsZXhwcikgOmtleSAjJ2NvbWJpbmF0aW9uLWZ1bi1kZWJ1Zy1u YW1lKQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgMSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4g PiA+ID4gPiArOzs7IFNFVFEgb2YgYSB2YXJpYWJsZSB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIGFu IGVsaWRhYmxlIGxvYWQgcHJldmVudHMgQ1NFLgo+ID4gPiA+ID4gPiArOzs7IFdoZW4gYSB2YXJp YWJsZSB0aGF0IHBhcnRpY2lwYXRlcyBpbiB0aGUgbG9hZCBleHByZXNzaW9uIChlLmcuLCB0aGUg Y29ucwo+ID4gPiA+ID4gPiArOzs7IGJlaW5nIENBUidkKSBpcyBhc3NpZ25lZCBiZXR3ZWVuIHR3 byBpZGVudGljYWwgbG9hZHMsIHRoZSBzZWNvbmQgbG9hZAo+ID4gPiA+ID4gPiArOzs7IG11c3Qg bm90IGJlIGVsaW1pbmF0ZWQgYmVjYXVzZSB0aGUgdmFyaWFibGUgbWF5IHJlZmVyZW5jZSBhIGRp ZmZlcmVudCBvYmplY3QuCj4gPiA+ID4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6c2V0 cS1vZi1sb2FkLWFyZy1wcmV2ZW50cy1jYXIpKQo+ID4gPiA+ID4gPiArICA7OyBDT05TIGlzIHRo ZSBhcmd1bWVudCB0byBDQVIuIEFzc2lnbmluZyBDT05TIGJldHdlZW4gdHdvIChDQVIgQ09OUykK PiA+ID4gPiA+ID4gKyAgOzsgcHJldmVudHMgQ1NFLgo+ID4gPiA+ID4gPiArICAoYXNzZXJ0LWNh bGxzIGNhciAyIChjb25zIG90aGVyKQo+ID4gPiA+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIGNv bnMgY29ucyBvdGhlcikpCj4gPiA+ID4gPiA+ICsgICAgKGxldCAoKGEgKGNhciBjb25zKSkpCj4g PiA+ID4gPiA+ICsgICAgICAoc2V0cSBjb25zIG90aGVyKQo+ID4gPiA+ID4gPiArICAgICAgKGxl dCAoKGIgKGNhciBjb25zKSkpCj4gPiA+ID4gPiA+ICsgICAgICAgIChsaXN0IGEgYikpKSkpCj4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyh3aXRoLXRlc3QgKDpuYW1lICg6Y3NlIDpzZXRxLW9m LWxvYWQtYXJnLXByZXZlbnRzLWNkcikpCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2FsbHMgY2Ry IDIgKGNvbnMgb3RoZXIpCj4gPiA+ID4gPiA+ICsgICAgKGRlY2xhcmUgKHR5cGUgY29ucyBjb25z IG90aGVyKSkKPiA+ID4gPiA+ID4gKyAgICAobGV0ICgoYSAoY2RyIGNvbnMpKSkKPiA+ID4gPiA+ ID4gKyAgICAgIChzZXRxIGNvbnMgb3RoZXIpCj4gPiA+ID4gPiA+ICsgICAgICAobGV0ICgoYiAo Y2RyIGNvbnMpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKGxpc3QgYSBiKSkpKSkKPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiArKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOnNldHEtb2YtbG9hZC1h cmctcHJldmVudHMtaW5zdGFuY2UtcmVmKSkKPiA+ID4gPiA+ID4gKyAgOzsgQXNzaWduaW5nIHRo ZSBzdHJ1Y3QgdmFyaWFibGUgYmV0d2VlbiB0d28gcmVhZHMgb2YgdGhlIHNhbWUgc2xvdCBwcmV2 ZW50cyBDU0UuCj4gPiA+ID4gPiA+ICsgIChhc3NlcnQtY2FsbHMgc2Ita2VybmVsOiVpbnN0YW5j ZS1yZWYgMiAoeCB5KQo+ID4gPiA+ID4gPiArICAgIChsZXQgKCh4ICh0cnVseS10aGUgY3NlLXRl c3QtZm9vIHgpKQo+ID4gPiA+ID4gPiArICAgICAgICAgICh5ICh0cnVseS10aGUgY3NlLXRlc3Qt Zm9vIHkpKSkKPiA+ID4gPiA+ID4gKyAgICAgIChsZXQgKChhIChjc2UtdGVzdC1mb28tc2xvdCB4 KSkpCj4gPiA+ID4gPiA+ICsgICAgICAgIChzZXRxIHggeSkKPiA+ID4gPiA+ID4gKyAgICAgICAg KGxldCAoKGIgKGNzZS10ZXN0LWZvby1zbG90IHgpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAo bGlzdCBhIGIpKSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArKHdpdGgtdGVzdCAoOm5h bWUgKDpjc2UgOnNldHEtb2YtbG9hZC1hcmctcHJldmVudHMtc2FwLXJlZikpCj4gPiA+ID4gPiA+ ICsgIDs7IEFzc2lnbmluZyB0aGUgU0FQIHZhcmlhYmxlIGJldHdlZW4gdHdvIHJlYWRzIGF0IHRo ZSBzYW1lIG9mZnNldAo+ID4gPiA+ID4gPiArICA7OyBtdXN0IHByZXZlbnQgQ1NFIHNpbmNlIHRo ZSBzZWNvbmQgcmVhZCBtYXkgdXNlIGEgZGlmZmVyZW50IFNBUC4KPiA+ID4gPiA+ID4gKyAgKGFz c2VydC1jYWxscyBzYi1zeXM6c2FwLXJlZi0zMiAyIChzYXAxIHNhcDIgb2Zmc2V0KQo+ID4gPiA+ ID4gPiArICAgIChkZWNsYXJlICh0eXBlIHNiLXN5czpzeXN0ZW0tYXJlYS1wb2ludGVyIHNhcDEg c2FwMikKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAodHlwZSBzYi12bTp3b3JkIG9mZnNldCkp Cj4gPiA+ID4gPiA+ICsgICAgKGxldCAoKGEgKHNiLXN5czpzYXAtcmVmLTMyIHNhcDEgb2Zmc2V0 KSkpCj4gPiA+ID4gPiA+ICsgICAgICAoc2V0cSBzYXAxIHNhcDIpCj4gPiA+ID4gPiA+ICsgICAg ICAobGV0ICgoYiAoc2Itc3lzOnNhcC1yZWYtMzIgc2FwMSBvZmZzZXQpKSkKPiA+ID4gPiA+ID4g KyAgICAgICAgKGxpc3QgYSBiKSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArOzs7IFNF VFEgb2YgYW4gKnVucmVsYXRlZCogdmFyaWFibGUgc2hvdWxkIE5PVCBwcmV2ZW50IENTRS4KPiA+ ID4gPiA+ID4gKzs7OyBPbmx5IG11dGF0aW9ucyBvZiB2YXJpYWJsZXMgdGhhdCBwYXJ0aWNpcGF0 ZSBpbiB0aGUgbG9hZCBtYXR0ZXIuCj4gPiA+ID4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNz ZSA6c2V0cS1vZi11bnJlbGF0ZWQtdmFyLWFsbG93cy1jc2UpKQo+ID4gPiA+ID4gPiArICA7OyBa IGlzIG5vdCBhbiBhcmd1bWVudCB0byBDQVIsIHNvIHNldHRpbmcgWiBkb2VzIG5vdCBpbmhpYml0 IENTRS4KPiA+ID4gPiA+ID4gKyAgKGFzc2VydC1jYWxscyBjYXIgMSAoY29ucyB6KQo+ID4gPiA+ ID4gPiArICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ID4gPiA+ICsgICAgKGxl dCAoKGEgKGNhciBjb25zKSkpCj4gPiA+ID4gPiA+ICsgICAgICAoc2V0cSB6IGEpCj4gPiA+ID4g PiA+ICsgICAgICAobGV0ICgoYiAoY2FyIGNvbnMpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKGxp c3QgeiBiKSkpKSkKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArOzs7IFNCLVRIUkVBRDpCQVJS SUVSIG9mIGFueSBraW5kIHByZXZlbnRzIGVsaXNpb24gb2YgdGhlIHNlY29uZCBsb2FkCj4gPiA+ ID4gPiA+ICs7Ozsgc2luY2UgdGhlIG1lbW9yeSBiYXJyaWVycyBpcyBub3QgZmx1c2hhYmxlLiBU aGlzIGlzIHRoZSBjb25zZXJ2YXRpdmUgc3RhbmNlLgo+ID4gPiA+ID4gPiArOzs7IFRoZSBhY3R1 YWwgKGxvb3NlcikgcmVxdWlyZW1lbnRzIGFyZSBtb3JlIHN1YnRsZSB0aGFuIEkgY2FyZSB0byBk ZWFsIHdpdGguCj4gPiA+ID4gPiA+ICsoZGVmbWFjcm8gYmFycmllci10ZXN0IChraW5kKQo+ID4g PiA+ID4gPiArICBgKHdpdGgtdGVzdCAoOm5hbWUgKDpjc2UgOmJhcnJpZXItcHJldmVudHMtY2Fy ICxraW5kKSkKPiA+ID4gPiA+ID4gKyAgICAgKGFzc2VydC1jYWxscyBjYXIgMiAoY29ucykKPiA+ ID4gPiA+ID4gKyAgICAgIChkZWNsYXJlICh0eXBlIGNvbnMgY29ucykpCj4gPiA+ID4gPiA+ICsg ICAgICAobGV0ICgoYSAoY2FyIGNvbnMpKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgKHNiLXRocmVh ZDpiYXJyaWVyICgsa2luZCkpCj4gPiA+ID4gPiA+ICsgICAgICAgIChsZXQgKChiIChjYXIgY29u cykpKQo+ID4gPiA+ID4gPiArICAgICAgICAgIChsaXN0IGEgYikpKSkpKQo+ID4gPiA+ID4gPiAr KGJhcnJpZXItdGVzdCA6cmVhZCkKPiA+ID4gPiA+ID4gKyhiYXJyaWVyLXRlc3QgOndyaXRlKQo+ ID4gPiA+ID4gPiArKGJhcnJpZXItdGVzdCA6bWVtb3J5KQo+ID4gPiA+ID4gPiArKGJhcnJpZXIt dGVzdCA6Y29tcGlsZXIpCj4gPiA+ID4gPiA+ICsoYmFycmllci10ZXN0IDpkYXRhLWRlcGVuZGVu Y3kpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKzs7OyBBbnkgbm9uLWZsdXNoYWJsZSBjYWxs IGJldHdlZW4gdHdvIGlkZW50aWNhbCBsb2FkcyBwcmV2ZW50cyBDU0UKPiA+ID4gPiA+ID4gKzs7 OyBiZWNhdXNlIHRoZSBjYWxsIG1heSBoYXZlIHNpZGUgZWZmZWN0cyB0aGF0IG1vZGlmeSB0aGUg bG9hZGVkIG1lbW9yeS4KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArKHdpdGgtdGVzdCAoOm5h bWUgKDpjc2UgOm5vbi1mbHVzaGFibGUtY2FsbC1wcmV2ZW50cy1jc2UpKQo+ID4gPiA+ID4gPiAr ICA7OyBQUklOQyBpcyBhIG5vbi1mbHVzaGFibGUKPiA+ID4gPiA+ID4gKyAgKGFzc2VydC1jYWxs cyBjYXIgMiAoY29ucykKPiA+ID4gPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMp KQo+ID4gPiA+ID4gPiArICAgIChsZXQgKChhIChjYXIgY29ucykpKQo+ID4gPiA+ID4gPiArICAg ICAgKHByaW5jIDQyKQo+ID4gPiA+ID4gPiArICAgICAgKGxldCAoKGIgKGNhciBjb25zKSkpCj4g PiA+ID4gPiA+ICsgICAgICAgIChsaXN0IGEgYikpKSkpCj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ID4gKzs7OyBEaWZmZXJlbnQgZnVuY3Rpb25zIG9uIHRoZSBzYW1lIG9iamVjdCBhcmUgTk9UIGNv bnNpZGVyZWQgY29tbW9uIHN1YmV4cHJlc3Npb25zLgo+ID4gPiA+ID4gPiArOzs7IChDQVIgeCkg YW5kIChDRFIgeCkgYXJlIGRpZmZlcmVudCBsb2FkcyBldmVuIGlmIHggaXMgdGhlIHNhbWUuCj4g PiA+ID4gPiA+ICsod2l0aC10ZXN0ICg6bmFtZSAoOmNzZSA6ZGlmZmVyZW50LWFjY2Vzc29ycy1u b3QtY3NlKSkKPiA+ID4gPiA+ID4gKyAgOzsgQm90aCBDQVIgYW5kIENEUiBzaG91bGQgYXBwZWFy LCBlYWNoIGV4YWN0bHkgb25jZS4KPiA+ID4gPiA+ID4gKyAgKGFzc2VydC1jYWxscyBjYXIgMSAo Y29ucykKPiA+ID4gPiA+ID4gKyAgICAoZGVjbGFyZSAodHlwZSBjb25zIGNvbnMpKQo+ID4gPiA+ ID4gPiArICAgIChpZiAoY2FyIGNvbnMpCj4gPiA+ID4gPiA+ICsgICAgICAgIChwcmluYyAoY2Ry IGNvbnMpKQo+ID4gPiA+ID4gPiArICAgICAgICBuaWwpKQo+ID4gPiA+ID4gPiArICAoYXNzZXJ0 LWNhbGxzIGNkciAxIChjb25zKQo+ID4gPiA+ID4gPiArICAgIChkZWNsYXJlICh0eXBlIGNvbnMg Y29ucykpCj4gPiA+ID4gPiA+ICsgICAgKGlmIChjYXIgY29ucykKPiA+ID4gPiA+ID4gKyAgICAg ICAgKHByaW5jIChjZHIgY29ucykpCj4gPiA+ID4gPiA+ICsgICAgICAgIG5pbCkpKQo+ID4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoMzAubGlzcC1leHByIGIveHBlcmZlY3RoYXNo MzAubGlzcC1leHByCj4gPiA+ID4gPiA+IGluZGV4IDZhNTAzYWNmMC4uMWI3MjI3Yzc4IDEwMDY0 NAo+ID4gPiA+ID4gPiAtLS0gYS94cGVyZmVjdGhhc2gzMC5saXNwLWV4cHIKPiA+ID4gPiA+ID4g KysrIGIveHBlcmZlY3RoYXNoMzAubGlzcC1leHByCj4gPiA+ID4gPiA+IEBAIC0xNTA2LDYgKzE1 MDYsOSBAQAo+ID4gPiA+ID4gPiAgKCMoMTBCRTcyNzcgMTIyMTRBRTggMTJFMkNCREEgMTk3Mzk1 MzkgMUYzNTU2QzcgMUY2NDQzODcpCj4gPiA+ID4gPiA+ICAgIihJTlRFR0VSIEJJR05VTSBTQi1W TTo6VU5TSUdORUQtQllURS0zMSBTQi1WTTo6U0lHTkVELUJZVEUtMzIgRklYTlVNIFNCLVZNOjpQ T1NJVElWRS1GSVhOVU0pIgo+ID4gPiA+ID4gPiAgICIoKCYgKF4gdmFsICg+PiB2YWwgMjIpKSA3 KSkiKQo+ID4gPiA+ID4gPiArKCMoMTBEMkVBNEUgMTIyNEM1NTcgMTVBNThEODUgMTVCNUEyQjUg MTc1MjRBNzggMTc2OUU0MTkgMTg5MDZEMDgpCj4gPiA+ID4gPiA+ICsgIihTQi1DOjpDU0VUIFNC LUM6OlJFRiBERUxBWSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUIENBU1QgU0ItQzo6Q09NQklOQVRJ T04gU0ItQzo6Q0lGKSIKPiA+ID4gPiA+ID4gKyAiKCgmICgrICg+PiB2YWwgMSkgKD4+IHZhbCA5 KSkgNykpIikKPiA+ID4gPiA+ID4gICgjKDEwRDJFQTRFIDEyMjRDNTU3IDE1QTU4RDg1IDE1QjVB MkI1IDE3NTI0QTc4IDE3NjlFNDE5IDE4OTA2RDA4IDE5NTc3NTM5IDFDMDY1Q0I4IDFENjZDOTMy KQo+ID4gPiA+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01C SU5BVElPTikpICgoOlRZUEUgU0ItQzo6Q0lGKSkgKCg6VFlQRSBTQi1DOjpDUkVUVVJOKSkgKCg6 VFlQRSBTQi1DOjpNVi1DT01CSU5BVElPTikpICgoOlRZUEUgRVhJVCkpICgoOlRZUEUgU0ItQzo6 Q1NFVCkpICgoOlRZUEUgREVMQVkpICg6VFlQRSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZ UEUgQ0FTVCkpKSIKPiA+ID4gPiA+ID4gICAiKChsZXQgKCh0YWIgI2EoKDgpICh1bnNpZ25lZC1i eXRlIDgpIDAgNSAyIDggMTMgMyAwIDApKSkKPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL3hwZXJm ZWN0aGFzaDYxLmxpc3AtZXhwciBiL3hwZXJmZWN0aGFzaDYxLmxpc3AtZXhwcgo+ID4gPiA+ID4g PiBpbmRleCA2ZWI3MjQ4NmIuLmIxYmMwMTRmYiAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEveHBl cmZlY3RoYXNoNjEubGlzcC1leHByCj4gPiA+ID4gPiA+ICsrKyBiL3hwZXJmZWN0aGFzaDYxLmxp c3AtZXhwcgo+ID4gPiA+ID4gPiBAQCAtNDYzLDYgKzQ2Myw5IEBACj4gPiA+ID4gPiA+ICAoIyg5 QTMyMEQ0IDM5Q0FBMzM5IDQzQkJFRTE4IDRENjEzNjhGIDUzMjIyREZCIEJGQTg2MTg5IEVEQTEw MzdGIEZFRTk5QTk1KQo+ID4gPiA+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQ RSBTQi1DOjpDT01CSU5BVElPTikpICgoOlRZUEUgU0ItQzo6TVYtQ09NQklOQVRJT04pKSAoKDpU WVBFIEVYSVQpKSAoKDpUWVBFIFNCLUM6OkNTRVQpKSAoKDpUWVBFIERFTEFZKSAoOlRZUEUgU0It Qzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1QpKSkiCj4gPiA+ID4gPiA+ICAgIigoJiAo LSAoPj4gdmFsIDMpICg+PiB2YWwgMjkpKSA3KSkiKQo+ID4gPiA+ID4gPiArKCMoOUEzMjBENCAz OUNBQTMzOSA0M0JCRUUxOCA1MzIyMkRGQiA5MzgwODM3QyBCRkE4NjE4OSBGRUU5OUE5NSkKPiA+ ID4gPiA+ID4gKyAiIygoKDpUWVBFIFNCLUM6OkNJRikgKDpUWVBFIFNCLUM6OkNPTUJJTkFUSU9O KSAoOlRZUEUgREVMQVkpICg6VFlQRSBTQi1DOjpBUlJBWS1JTkRFWC1DQVNUKSAoOlRZUEUgQ0FT VCkgKDpUWVBFIFNCLUM6OlJFRikgKDpUWVBFIFNCLUM6OkNTRVQpKSkiCj4gPiA+ID4gPiA+ICsg IigoJiAoKyB2YWwgKD4+IHZhbCAzMSkpIDcpKSIpCj4gPiA+ID4gPiA+ICAoIyg5QTMyMEQ0IDQz QkJFRTE4IDUzMjIyREZCIEE4QTRDN0QyIEJGQTg2MTg5IEVBQTNEQTVDIEZFRTk5QTk1KQo+ID4g PiA+ID4gPiAgICIjKCgoOlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBERUxBWSkgKDpUWVBFIFNC LUM6OkFSUkFZLUlOREVYLUNBU1QpICg6VFlQRSBDQVNUKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5B VElPTikpICgoOlRZUEUgU0ItQzo6RU5UUlkpKSAoKDpUWVBFIFNCLUM6OkVOQ0xPU0UpKSkiCj4g PiA+ID4gPiA+ICAgIigoJiAoXiAoPj4gdmFsIDcpICg+PiB2YWwgMjMpKSA3KSkiKQo+ID4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEveHBlcmZlY3RoYXNoNjMubGlzcC1leHByIGIveHBlcmZlY3RoYXNo NjMubGlzcC1leHByCj4gPiA+ID4gPiA+IGluZGV4IGNjODYxYmIzMy4uMTNiYjVkODVkIDEwMDY0 NAo+ID4gPiA+ID4gPiAtLS0gYS94cGVyZmVjdGhhc2g2My5saXNwLWV4cHIKPiA+ID4gPiA+ID4g KysrIGIveHBlcmZlY3RoYXNoNjMubGlzcC1leHByCj4gPiA+ID4gPiA+IEBAIC04NzAsNiArODcw LDkgQEAKPiA+ID4gPiA+ID4gICgjKDEyMTA2OEREIDRENjEzNjhGIDU4MTEwRTdGIDY3RUUyRDFB IDZEOUE4ODNEIDc0NTg5RDgyIDg5N0I0NjU2IEE2OEEzOTY1KQo+ID4gPiA+ID4gPiAgICIjKCgo OlRZUEUgU0ItQzo6UkVGKSkgKCg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikpICgoOlRZUEUgU0It Qzo6TVYtQ09NQklOQVRJT04pKSAoKDpUWVBFIEVYSVQpKSAoKDpUWVBFIFNCLUM6OkNTRVQpKSAo KDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJSQVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1Qp KSkiCj4gPiA+ID4gPiA+ICAgIigoJiAoLSAoPj4gdmFsIDQpICg+PiB2YWwgMTYpKSA3KSkiKQo+ ID4gPiA+ID4gPiArKCMoMTIxMDY4REQgNTgxMTBFN0YgNjdFRTJEMUEgNkQ5QTg4M0QgNzQyRDRD NTQgODk3QjQ2NTYgQTY4QTM5NjUpCj4gPiA+ID4gPiA+ICsgIiMoKCg6VFlQRSBTQi1DOjpDSUYp ICg6VFlQRSBTQi1DOjpDT01CSU5BVElPTikgKDpUWVBFIERFTEFZKSAoOlRZUEUgU0ItQzo6QVJS QVktSU5ERVgtQ0FTVCkgKDpUWVBFIENBU1QpICg6VFlQRSBTQi1DOjpSRUYpICg6VFlQRSBTQi1D OjpDU0VUKSkpIgo+ID4gPiA+ID4gPiArICIoKCYgKC0gKD4+IHZhbCA0KSAoPj4gdmFsIDE2KSkg NykpIikKPiA+ID4gPiA+ID4gICgjKDEyNkFEQjAyIDMxQjA5NUREIDQyRDgzRkZCIDQzNDFGN0Q4 IDYzQzk3MUQ3IDdBODBGMjAxIDdCNDA4ODgwIDhGNzkxMkQ2IEVCRDAxODcyKQo+ID4gPiA+ID4g PiAgICIoOkFMTE9XLU9USEVSLUtFWVMgOlRZUEUgOlJFU1VMVC1TUEVDUyA6QVJHLVNQRUNTIDpD QUxMRVIgOkRFUFMgOkZJUkVEIDpMRVhFTlYgOlNPVVJDRS1QQVRIKSIKPiA+ID4gPiA+ID4gICAi KChsZXQgKCh0YWIgI2EoKDgpICh1bnNpZ25lZC1ieXRlIDgpIDAgNSAwIDMgMCA1IDEyIDYpKSkK PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gaG9va3MvcG9zdC1yZWNlaXZlCj4gPiA+ID4gPiA+IC0tCj4gPiA+ ID4gPiA+IFNCQ0wKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+ID4gU2JjbC1j b21taXRzIG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gPiBTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNl Zm9yZ2UubmV0Cj4gPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3Rz L2xpc3RpbmZvL3NiY2wtY29tbWl0cwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClNiY2wtY29tbWl0cyBtYWlsaW5nIGxpc3QKU2JjbC1jb21taXRzQGxp c3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9s aXN0aW5mby9zYmNsLWNvbW1pdHMK