From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dimitar Kazakov lartc@triada.bg Date: Tue, 05 Dec 2000 16:39:35 +0000 Subject: [LARTC] Limiting Outgoing and Incoming Bandwidth in Linux 2.2 Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: base64 To: lartc@vger.kernel.org PFBSRT53aGF0IGFib3V0IHVzaW5nIGluZ3Jlc3MgcG9saWNlaW5nIGluc3RlYWQgb2YgcnNoYXBl ciBmb3IgbGltaXRpbmcgaW5jb21taW5nCmJhbmR3aWR0aD8KCkRpbWl0YXIKCi0tLS0tIE9yaWdp bmFsIE1lc3NhZ2UgLS0tLS0KRnJvbTogJnF1b3Q7QnJpYW4gV2lsc29uJnF1b3Q7ICZsdDs8QSBI UkVGPSJtYWlsdG86d2lsc29uQHNlbnRyaXN5c3RlbXMuY29tIj53aWxzb25Ac2VudHJpc3lzdGVt cy5jb208L0E+Jmd0OwpUbzogJmx0OzxBIEhSRUY9Im1haWx0bzpsYXJ0Y0BtYWlsbWFuLmRzOWEu bmwiPmxhcnRjQG1haWxtYW4uZHM5YS5ubDwvQT4mZ3Q7ClNlbnQ6IOLy7vDt6OosIDA1IMTl6uXs 4vDoIDIwMDAg4y4gMTc6MzkKU3ViamVjdDogW0xBUlRDXSBMaW1pdGluZyBPdXRnb2luZyBhbmQg SW5jb21pbmcgQmFuZHdpZHRoIGluIExpbnV4IDIuMgoKCiZndDs8aT4gQWZ0ZXIgbG9va2luZyBo aWdoIGFuZCBsb3cgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBkbyB0aGlzLCBJCjwvST4mZ3Q7 PGk+IGZpbmFsbHkgZ2F0aGVyZWQgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRvIHdoYXQgSSB3YW50 ZWQgdG8gZG8uCjwvST4mZ3Q7PGk+IE5vdCB0byBtZW50aW9uLCB0aGUgYXJjaGl2ZXMgZnJvbSB0 aGlzIGxpc3QgaGVscGVkIG91dCBncmVhdGx5IChldmVuCjwvST4mZ3Q7PGk+IHRob3VnaCB0aGUg bGlzdCBpcyBmYWlybHkgbmV3KS4gIFNvLCBJIGZpZ3VyZWQgSSdkICBwb3N0ICB0aGUgcmVzdWx0 cyBvZgo8L0k+Jmd0OzxpPiBteSBlbmRlYXZvciBmb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgaW50 ZXJlc3RlZC4gIEkgIGhvcGUgaXQgaGVscHMKPC9JPiZndDs8aT4gYW55b25lIHdobyBpcyBhbHNv IHRyeWluZyB0byBkbyB0aGlzLiAgIEknbGwgYWxzbyBiZSBob3VzaW5nIHRoaXMKPC9JPiZndDs8 aT4gZG9jdW1lbnQgJmFtcDsgY2hhbmdlcyBoZXJlOiA8QSBIUkVGPSJodHRwOi8vYnViYmEub3Jn L2NicS5odG1sIj5odHRwOi8vYnViYmEub3JnL2NicS5odG1sPC9BPgo8L0k+Jmd0OzxpPgo8L0k+ Jmd0OzxpPiBJIGxvb2sgZm9yd2FyZCB0byBzZWVpbmcgb3RoZXIgaW5mb3JtYXRpdmUgcG9zdHMg b24gdGhpcyBsaXN0CjwvST4mZ3Q7PGk+IGludm9sdmluZyAgTGludXggYWR2YW5jZWQgcm91dGlu ZyBjb25jZXB0cyBhbmQgdHJhZmZpYyBjb250cm9sCjwvST4mZ3Q7PGk+IGlzc3VlcyBhbmQgYXBw cmVjaWF0ZSB0aGUgcHJldmlvdXMgcG9zdHMgd2hpY2ggaGVscGVkIG1lIGdldCB0bwo8L0k+Jmd0 OzxpPiB0aGlzIHBvaW50Lgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBSZWdhcmRzLAo8L0k+Jmd0 OzxpPiBCcmlhbgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiAtLQo8L0k+Jmd0OzxpPgo8L0k+Jmd0 OzxpPiBMaW1pdGluZyBPdXRnb2luZyBhbmQgSW5jb21pbmcgQmFuZHdpZHRoIGluIExpbnV4IChm b3IgMi4yKyBLZXJuZWxzKQo8L0k+Jmd0OzxpPiAgICAgICAgQnJpYW4gV2lsc29uIC0gPEEgSFJF Rj0ibWFpbHRvOndpbHNvbkBzZW50cmlzeXN0ZW1zLmNvbSI+d2lsc29uQHNlbnRyaXN5c3RlbXMu Y29tPC9BPiAtIDEyLzMvMjAwMAo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBP dmVydmlldwo8L0k+Jmd0OzxpPiAtLS0tLS0tLS0tLQo8L0k+Jmd0OzxpPiBUaGUgcG9pbnQgb2Yg dGhpcyBkb2N1bWVudCBpcyB0byB3YWxrIHlvdSB0aHJvdWdoIHNldHRpbmcgdXAgYmFuZHdpZHRo CjwvST4mZ3Q7PGk+IGxpbWl0aW5nIGZvciBvdXRnb2luZyBhbmQgaW5jb21pbmcgbmV0d29yayBw YWNrZXRzIHVuZGVyIExpbnV4IDIuMi54Kwo8L0k+Jmd0OzxpPiBrZXJuZWwgc2VyaWVzLiAgVGhl IGxpbWl0aW5nIG9mIHRoZSBvdXRnb2luZyBiYW5kd2lkdGggaXMgYWNjb21wbGlzaGVkCjwvST4m Z3Q7PGk+IHVzaW5nIHRoZSBidWlsdC1pbiBRb1MgQ2xhc3MgQmFzZWQgUXVldWluZyAoQ0JRKSBm dW5jdGlvbnMgaW4gdGhlIDIuMi54CjwvST4mZ3Q7PGk+IGtlcm5lbC4gIFRoZSBsaW1pdGluZyBv ZiB0aGUgaW5jb21pbmcgYmFuZHdpZHRoIGlzIGFjY29tcGxpc2hlZCB1c2luZyBhCjwvST4mZ3Q7 PGk+IHN0YW5kLWFsb25lIGtlcm5lbCBtb2R1bGUgY2FsbGVkIHJzaGFwZXIuICBOT1RFOiByc2hh cGVyIGFsc28gcmVxdWlyZXMKPC9JPiZndDs8aT4gc2xpZ2h0IG1vZGlmaWZpY2F0aW9ucyB0byB5 b3VyIG5ldHdvcmsgZHJpdmVyIHNvdXJjZSBjb2RlIGFuZCBpdCBub3QKPC9JPiZndDs8aT4gb2Zm aWNpYWxseSBwYXJ0IG9mIHRoZSAyLjIga2VybmVsIChzbyB1c2UgaXQgYXQgeW91ciBvd24gcmlz aykuCjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+IEJlZm9yZSBZb3UgQmVnaW4K PC9JPiZndDs8aT4gLS0tLS0tLS0tLS0tLS0tLS0tLQo8L0k+Jmd0OzxpPiBZb3UgZmlyc3QgbmVl ZCB0byBkb3dubG9hZCBhIGZldyB1dGlsaXRpZXMuCjwvST4mZ3Q7PGk+IC0gaXByb3V0ZTIKPC9J PiZndDs8aT4KPC9JPiZndDs8aT4KPC9JPjxBIEhSRUY9ImZ0cDovL2Z0cC5mdW5ldC5maS9wdWIv bWlycm9ycy9mdHAuaW5yLmFjLnJ1L2lwLXJvdXRpbmcvaXByb3V0ZTItY3VycmVudC50YXIiPmZ0 cDovL2Z0cC5mdW5ldC5maS9wdWIvbWlycm9ycy9mdHAuaW5yLmFjLnJ1L2lwLXJvdXRpbmcvaXBy b3V0ZTItY3VycmVudC50YXI8L0E+CiZndDs8aT4gLmd6CjwvST4mZ3Q7PGk+IChhbmQgaWYgeW91 IHdpc2ggdG8gbGltaXQgaW5jb21pbmcgdHJhZmZpYyBhcyB3ZWxsLCB5b3UnbGwgbmVlZCByc2hh cGVyKQo8L0k+Jmd0OzxpPiAtIHJzaGFwZXIKPC9JPiZndDs8aT4gICAgPEEgSFJFRj0iZnRwOi8v ZnRwLnByb3NhLml0L3B1Yi9zb2Z0d2FyZS9yc2hhcGVyLTEuMDcudGFyLmd6Ij5mdHA6Ly9mdHAu cHJvc2EuaXQvcHViL3NvZnR3YXJlL3JzaGFwZXItMS4wNy50YXIuZ3o8L0E+CjwvST4mZ3Q7PGk+ CjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+IEluc3RhbGxhdGlvbgo8L0k+Jmd0OzxpPiAtLS0tLS0t LS0tLS0KPC9JPiZndDs8aT4gWW91J2xsIGZpcnN0IG5lZWQgdG8gY29uZmlndXJlIHlvdXIga2Vy bmVsIGZvciBRb1MgYW5kIENCUS4gIFRoaXMgaXMKPC9JPiZndDs8aT4gYWNjb21wbGlzaGVkIHVu ZGVyIHRoZSAmcXVvdDtOZXR3b3JraW5nIE9wdGlvbnMmcXVvdDsgbWVudS4gSGVyZSB5b3UgbmVl ZCB0byBlbmFibGUKPC9JPiZndDs8aT4gUm91dGluZyBNZXNzYWdlcyBhbmQgdGhlIEtlcm5lbC9V c2VyIG5ldGxpbmsgc29ja2V0LiAgTmV4dCwgdW5kZXIgJnF1b3Q7UW9TCjwvST4mZ3Q7PGk+IGFu ZC9vciBGYWlyIFF1ZXVpbmcmcXVvdDsgbWVudSwgaXQgaXMgcHJvYmFibHkgYmVzdCB0byBlbmFi bGUgYWxsIG9mIHRoZQo8L0k+b3B0aW9ucy4KJmd0OzxpPiBCZWxvdyBpcyB0aGUgTmV0d29ya2lu ZyBPcHRpb25zIHBvcnRpb24gb2YgbXkga2VybmVsIGNvbmZpZy4gWW91IHNob3VsZAo8L0k+Jmd0 OzxpPiBwcm9iYWJseSBtaW1pYyB0aGlzIHNldHVwICh1bmxlc3MgeW91IHdhbnQgdG8gYnVpbGQg dGhlbSBhcyBtb2R1bGVzKS4gIElmCjwvST4mZ3Q7PGk+IHlvdSBkbyBjaG9vc2UgdG8gYnVpbGQg dGhlbSBhcyBtb2R1bGVzLCB0aGVuIHlvdSdsbCBoYXZlIHRvIGxvYWQgYWxsIHRoZQo8L0k+Jmd0 OzxpPiBzcGVjaWZpYyBRb1MgbW9kdWxlcyAoc2NoX2NicSBzY2hfdGJmIHNjaF9zZnEgc2NoX3By aW8gY2xzX3UzMikgYWZ0ZXIgeW91cgo8L0k+Jmd0OzxpPiBtYWNoaW5lIGJvb3RzIChvciBhbGxv dyB0aGVtIHRvIGJlIGF1dG9sb2FkZWQpLiAgU2luY2UgSSBkb24ndCBsaWtlCjwvST5kZWFsaW5n CiZndDs8aT4gd2l0aCBhIHNsZXcgb2YgbW9kdWxlcywgSSB1c3VhbGx5IGNvbXBpbGUgZXZlcnl0 aGluZyBpbiBzdGF0aWNhbGx5Lgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAm bHQ7KiZndDsgUGFja2V0IHNvY2tldAo8L0k+Jmd0OzxpPiAgICAgICAgICAgICBbKl0gS2VybmVs L1VzZXIgbmV0bGluayBzb2NrZXQKPC9JPiZndDs8aT4gICAgICAgICAgICAgWypdIFJvdXRpbmcg bWVzc2FnZXMKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyomZ3Q7IE5ldGxpbmsgZGV2aWNl IGVtdWxhdGlvbgo8L0k+Jmd0OzxpPiAgICAgICAgICAgICBbKl0gTmV0d29yayBmaXJld2FsbHMK PC9JPiZndDs8aT4gICAgICAgICAgICAgWypdIFNvY2tldCBGaWx0ZXJpbmcKPC9JPiZndDs8aT4g ICAgICAgICAgICAgJmx0OyomZ3Q7IFVuaXggZG9tYWluIHNvY2tldHMKPC9JPiZndDs8aT4gICAg ICAgICAgICAgWypdIFRDUC9JUCBuZXR3b3JraW5nCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsq XSBJUDogbXVsdGljYXN0aW5nCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsqXSBJUDogYWR2YW5j ZWQgcm91dGVyCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsqXSBJUDogcG9saWN5IHJvdXRpbmcK PC9JPiZndDs8aT4gICAgICAgICAgICAgWypdIElQOiBlcXVhbCBjb3N0IG11bHRpcGF0aAo8L0k+ Jmd0OzxpPiAgICAgICAgICAgICBbKl0gSVA6IHVzZSBUT1MgdmFsdWUgYXMgcm91dGluZyBrZXkK PC9JPiZndDs8aT4gICAgICAgICAgICAgWyBdIElQOiB2ZXJib3NlIHJvdXRlIG1vbml0b3JpbmcK PC9JPiZndDs8aT4gICAgICAgICAgICAgWyBdIElQOiBsYXJnZSByb3V0aW5nIHRhYmxlcwo8L0k+ Jmd0OzxpPiAgICAgICAgICAgICBbKl0gSVA6IGZhc3QgbmV0d29yayBhZGRyZXNzIHRyYW5zbGF0 aW9uCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsgXSBJUDoga2VybmVsIGxldmVsIGF1dG9jb25m aWd1cmF0aW9uCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsqXSBJUDogZmlyZXdhbGxpbmcKPC9J PiZndDs8aT4gICAgICAgICAgICAgWyBdIElQOiBmaXJld2FsbCBwYWNrZXQgbmV0bGluayBkZXZp Y2UKPC9JPiZndDs8aT4gICAgICAgICAgICAgWypdIElQOiB1c2UgRldNQVJLIHZhbHVlIGFzIHJv dXRpbmcga2V5CjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFsqXSBJUDogbWFzcXVlcmFkaW5nCjwv ST4mZ3Q7PGk+ICAgICAgICAgICAgIC0tLSBQcm90b2NvbC1zcGVjaWZpYyBtYXNxdWVyYWRpbmcg c3VwcG9ydCB3aWxsIGJlIGJ1aWx0IGFzCjwvST4mZ3Q7PGk+IG1vZHVsZXMuCjwvST4mZ3Q7PGk+ ICAgICAgICAgICAgIFsqXSBJUDogSUNNUCBtYXNxdWVyYWRpbmcKPC9JPiZndDs8aT4gICAgICAg ICAgICAgLS0tIFByb3RvY29sLXNwZWNpZmljIG1hc3F1ZXJhZGluZyBzdXBwb3J0IHdpbGwgYmUg YnVpbHQgYXMKPC9JPiZndDs8aT4gbW9kdWxlcy4KPC9JPiZndDs8aT4gICAgICAgICAgICAgWypd IElQOiBtYXNxdWVyYWRpbmcgc3BlY2lhbCBtb2R1bGVzIHN1cHBvcnQKPC9JPiZndDs8aT4gICAg ICAgICAgICAgJmx0OyomZ3Q7IElQOiBpcGF1dG9mdyBtYXNxIHN1cHBvcnQgKEVYUEVSSU1FTlRB TCkKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyomZ3Q7IElQOiBpcHBvcnRmdyBtYXNxIHN1 cHBvcnQgKEVYUEVSSU1FTlRBTCkKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyomZ3Q7IElQ OiBpcCBmd21hcmsgbWFzcS1mb3J3YXJkaW5nIHN1cHBvcnQgKEVYUEVSSU1FTlRBTCkKPC9JPiZn dDs8aT4gICAgICAgICAgICAgWyBdIElQOiBvcHRpbWl6ZSBhcyByb3V0ZXIgbm90IGhvc3QKPC9J PiZndDs8aT4gICAgICAgICAgICAgJmx0OyAmZ3Q7IElQOiB0dW5uZWxpbmcKPC9JPiZndDs8aT4g ICAgICAgICAgICAgWypdIElQOiBhbGlhc2luZyBzdXBwb3J0CjwvST4mZ3Q7PGk+ICAgICAgICAg ICAgIFsgXSBJUDogQVJQIGRhZW1vbiBzdXBwb3J0IChFWFBFUklNRU5UQUwpCjwvST4mZ3Q7PGk+ ICAgICAgICAgICAgIFsqXSBJUDogVENQIHN5bmNvb2tpZSBzdXBwb3J0IChub3QgZW5hYmxlZCBw ZXIgZGVmYXVsdCkKPC9JPiZndDs8aT4gICAgICAgICAgICAgLS0tIChpdCBpcyBzYWZlIHRvIGxl YXZlIHRoZXNlIHVudG91Y2hlZCkKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyomZ3Q7IElQ OiBSZXZlcnNlIEFSUAo8L0k+Jmd0OzxpPiAgICAgICAgICAgICBbKl0gSVA6IEFsbG93IGxhcmdl IHdpbmRvd3MgKG5vdCByZWNvbW1lbmRlZCBpZiAmbHQ7MTZNYiBvZgo8L0k+bWVtb3J5KQomZ3Q7 PGk+ICAgICAgICAgICAgICZsdDsgJmd0OyBUaGUgSVB2NiBwcm90b2NvbCAoRVhQRVJJTUVOVEFM KQo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAtLS0KPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0 OyAmZ3Q7IFRoZSBJUFggcHJvdG9jb2wKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyAmZ3Q7 IEFwcGxldGFsayBERFAKPC9JPiZndDs8aT4gICAgICAgICAgICAgJmx0OyAmZ3Q7IENDSVRUIFgu MjUgUGFja2V0IExheWVyIChFWFBFUklNRU5UQUwpCjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+ICAg ICAgICAgICAgICZsdDsgJmd0OyBMQVBCIERhdGEgTGluayBEcml2ZXIgKEVYUEVSSU1FTlRBTCkK PC9JPiZndDs8aT4gICAgICAgICAgICAgWyBdIEJyaWRnaW5nIChFWFBFUklNRU5UQUwpCjwvST4m Z3Q7PGk+ICAgICAgICAgICAgIFsgXSA4MDIuMiBMTEMgKEVYUEVSSU1FTlRBTCkKPC9JPiZndDs8 aT4gICAgICAgICAgICAgJmx0OyAmZ3Q7IEFjb3JuIEVjb25ldC9BVU4gcHJvdG9jb2xzIChFWFBF UklNRU5UQUwpCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICZsdDsgJmd0OyBXQU4gcm91dGVyCjwv ST4mZ3Q7PGk+ICAgICAgICAgICAgIFsqXSBDUFUgaXMgdG9vIHNsb3cgdG8gaGFuZGxlIGZ1bGwg YmFuZHdpZHRoCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWlu ZyAgLS0tJmd0Owo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKl0gUW9T IGFuZC9vciBmYWlyIHF1ZXVlaW5nCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZsdDsqJmd0OyBDQlEgcGFja2V0IHNjaGVkdWxlcgo8L0k+Jmd0OzxpPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbHQ7KiZndDsgQ1NaIHBhY2tldCBzY2hlZHVsZXIKPC9JPiZndDs8 aT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyomZ3Q7IFRoZSBzaW1wbGVzdCBQUklP IHBzZXVkb3NjaGVkdWxlcgo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bHQ7KiZndDsgUkVEIHF1ZXVlCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZsdDsqJmd0OyBTRlEgcXVldWUKPC9JPiZndDs8aT4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmx0OyomZ3Q7IFRFUUwgcXVldWUKPC9JPiZndDs8aT4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmx0OyomZ3Q7IFRCRiBxdWV1ZQo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbKl0gUW9TIHN1cHBvcnQKPC9JPiZndDs8aT4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgWypdIFJhdGUgZXN0aW1hdG9yCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFsqXSBQYWNrZXQgY2xhc3NpZmllciBBUEkKPC9JPiZndDs8aT4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmx0OyomZ3Q7IFJvdXRpbmcgdGFibGUgYmFzZWQgY2xhc3NpZmllcgo8 L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbHQ7KiZndDsgRmlyZXdhbGwg YmFzZWQgY2xhc3NpZmllcgo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bHQ7KiZndDsgVTMyIGNsYXNzaWZpZXIKPC9JPiZndDs8aT4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmx0OyomZ3Q7IFNwZWNpYWwgUlNWUCBjbGFzc2lmaWVyCjwvST4mZ3Q7PGk+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZsdDsgJmd0OyBTcGVjaWFsIFJTVlAgY2xhc3NpZmllciBm b3IgSVB2Ngo8L0k+Jmd0OzxpPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKl0gSW5ncmVz IHRyYWZmaWMgcG9saWNpbmcKPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gV2hpbGUgeW91IGFyZSBp biB0aGUga2VybmVsIGNvbmZpZywgaWYgeW91IGhhdmUgZGVjaWRlZCB0byB1c2UgcnNoYXBlciBh bmQKPC9JPiZndDs8aT4gbGltaXQgaW5jb21pbmcgdHJhZmZpYywgdGhlbiBnbyBhaGVhZCBhbmQg bW9kdWxhcml6ZSB5b3VyIG5ldHdvcmsgZGV2aWNlCjwvST4mZ3Q7PGk+IGRyaXZlciAoaWYgaXRz IG5vdCBhbHJlYWR5IGEgbW9kdWxlKS4KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gICAgICAgICAg ICAgICAgICAgICZsdDsgTSAmZ3Q7IFN1biBMQU5DRSBzdXBwb3J0CjwvST4mZ3Q7PGk+CjwvST4m Z3Q7PGk+IERvaW5nIHNvIHdpbGwgYmUgaGVscGZ1bCBpbiBtb2RpZnlpbmcgdGhlIGRyaXZlciBh bmQgc2V0dGluZyBpdCB1cCBmb3IgdXNlCjwvST4mZ3Q7PGk+IHdpdGggcnNoYXBlci4gIElmIHlv dSBhcmVuJ3QgZ29pbmcgdG8gYmUgdXNpbmcgcnNoYXBlciwgdGhlbiB5b3UgbWF5IHNraXAKPC9J PiZndDs8aT4gdGhlCjwvST4mZ3Q7PGk+IG5leHQgc3RlcC4KPC9JPiZndDs8aT4KPC9JPiZndDs8 aT4KPC9JPiZndDs8aT4gSW5zdGFsbGluZyByc2hhcGVyCjwvST4mZ3Q7PGk+IC0tLS0tLS0tLS0t LS0tLS0tLQo8L0k+Jmd0OzxpPiBVbnBhY2thZ2UgdGhlIHNvdXJjZSwgJnF1b3Q7bWFrZSZxdW90 OyBhbmQgdGhlbiByZWFkIHRoZSBSRUFETUUhIChmcm9tIHRoZSBSRUFETUUpCjwvST4mZ3Q7PGk+ ICAgKDEpIGluIGdsb2JhbCBzcGFjZSBhZGQgdGhlIGZvbGxvd2luZyBsaW5lOgo8L0k+Jmd0Ozxp PiAgICAgICAgICAgaW50ICgqbmV0X3NoYXBlcl9yeF9ob29rKShzdHJ1Y3Qgc2tfYnVmZiAqc2ti KSA9IE5VTEw7CjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+ICAgKDIpIE9ubHkgZm9yIExpbnV4LTIu MiAobm90IGZvciBMaW51eC0yLjApLCBhZGQgdGhpcyB0b286CjwvST4mZ3Q7PGk+ICAgICAgICAg ICBFWFBPUlRfU1lNQk9MKG5ldF9zaGFwZXJfcnhfaG9vaykKPC9JPiZndDs8aT4gICAgICAgdGhp cyBsaW5lIG11c3QgYXBwZWFyIGFmdGVyIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBob29rLgo8L0k+ Jmd0OzxpPgo8L0k+Jmd0OzxpPiAgICgzKSBpbiB0aGUgcmVjZWl2ZSBmdW5jdGlvbiBvZiB0aGUg ZHJpdmVyIGNoYW5nZQo8L0k+Jmd0OzxpPiAgICAgICAgICAgIG5ldGlmX3J4KHNrYikKPC9JPiZn dDs8aT4gICB0bwo8L0k+Jmd0OzxpPiAgICAgICAgICAgIGlmIChuZXRfc2hhcGVyX3J4X2hvb2sp CjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICAgICAgICAoKm5ldF9zaGFwZXJfcnhfaG9vaykoc2ti KTsKPC9JPiZndDs8aT4gICAgICAgICAgICBlbHNlCjwvST4mZ3Q7PGk+ICAgICAgICAgICAgICAg ICAgICBuZXRpZl9yeChza2IpOwo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBUaGlzIHNob3VsZCBi ZSBpdCB1bmxlc3MgeW91IGhhdmUgbW9yZSB0aGFuIG9uZSBuZXR3b3JrIGRldmljZSBvciBpZiB5 b3UKPC9JPmFyZQomZ3Q7PGk+IG5vdCBjb21waWxpbmcgeW91ciBuZXR3b3JrIGRyaXZlciBhcyBh IG1vZHVsZS4gIElmIHRoaXMgaXMgdGhlIGNhc2UsCjwvST5wbGVhc2UKJmd0OzxpPiBzZWUgdGhl IFJFQURNRSBpbmNsdWRlZCB3aXRoIHJzaGFwZXIuCjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+Cjwv ST4mZ3Q7PGk+IEVuYWJsaW5nIENoYW5nZXMKPC9JPiZndDs8aT4gLS0tLS0tLS0tLS0tLS0tLS0t LQo8L0k+Jmd0OzxpPiBDb21waWxlIHlvdXIga2VybmVsIGFuZCBtb2R1bGVzLCBpbnN0YWxsIHRo ZW0gYW5kIHJlYm9vdCBpZiBuZWNlc3NhcnkuCjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+IE5vdywg d2UnbGwgc2V0dXAgb3VyIG91dGdvaW5nIGJhbmR3aWR0aCBsaW1pdGF0aW9ucyAobm90ZSwgcmVw bGFjZSBldGgwCjwvST53aXRoCiZndDs8aT4geW91ciBuZXR3b3JrIGRldmljZSkuCjwvST4mZ3Q7 PGk+CjwvST4mZ3Q7PGk+IFNldHVwIHRoZSBxdWV1ZSwgd2l0aCB5b3VyIG1heCBiYW5kd2lkdGgs IG1pbmUgaXMgMTBNYml0CjwvST4mZ3Q7PGk+ICMgdGMgcWRpc2MgYWRkIGRldiBldGgwIHJvb3Qg aGFuZGxlIDEwOiBjYnEgYmFuZHdpZHRoIDEwTWJpdCBhdnBrdCAxMDAwCjwvST4mZ3Q7PGk+Cjwv ST4mZ3Q7PGk+IEFkZCB5b3VyIGNsYXNzLiAgQWdhaW4sIGJhbmR3aWR0aCBpcyAxME1iaXQuIHdl aWdodCBzaG91bGQgYmUgYmFuZHdpZHRoIC8KPC9JPiZndDs8aT4gMTAuCjwvST4mZ3Q7PGk+ICMg dGMgY2xhc3MgYWRkIGRldiBldGgwIHBhcmVudCAxMDowIGNsYXNzaWQgMTA6MSBjYnEgYmFuZHdp ZHRoIDEwTWJpdCBcCjwvST4mZ3Q7PGk+ICAgcmF0ZSAxME1iaXQgYWxsb3QgMTUxNCB3ZWlnaHQg MU1iaXQgcHJpbyA4IG1heGJ1cnN0IDIwIGF2cGt0IDEwMDAKPC9JPiZndDs8aT4KPC9JPiZndDs8 aT4gQWRkIHlvdXIgc3ViY2xhc3Mgd2hlcmUgeW91J2xsIGxpbWl0IHRoZSBiYW5kd2lkdGguIEkn bSBsaW1pdGluZyBhdCBhIHJhdGUKPC9JPiZndDs8aT4gb2YgMTAyNEtiaXQncywgd2VpZ2h0IHNo b3VsZCBiZSBsZXNzIHRoYW4gdGhlIGxpbWl0LCBwcmVmZXJyYWJseSBieSBhCjwvST5mYWN0b3IK Jmd0OzxpPiBvZiAxMCBhcyBhYm92ZS4KPC9JPiZndDs8aT4gIyB0YyBjbGFzcyBhZGQgZGV2IGV0 aDAgcGFyZW50IDEwOjEgY2xhc3NpZCAxMDoxMDAgY2JxIGJhbmR3aWR0aCAxME1iaXQgXAo8L0k+ Jmd0OzxpPiAgIHJhdGUgMTAyNGtiaXQgYWxsb3QgMTUxNCB3ZWlnaHQgMTI4S2JpdCBwcmlvIDUg bWF4YnVyc3QgMjAgYXZwa3QgMTAwMCBcCjwvST4mZ3Q7PGk+ICAgYm91bmRlZAo8L0k+Jmd0Ozxp Pgo8L0k+Jmd0OzxpPiBXZSd2ZSBhZGRlZCB0aGUgcXVldWVzLCBub3cgeW91IG11c3QgdGVsbCB0 aGUga2VybmVsIHRoZXkgZXhpc3QgYW5kCjwvST4mZ3Q7PGk+IGhvdyB0byBtYW5hZ2UgdGhlbS4g IFdlJ2xsIGJlIHVzaW5nIHN0b2NoYXN0aWMgZmFpcm5lc3MgcXVldWluZyAoc2ZxKQo8L0k+Jmd0 OzxpPiAjIHRjIHFkaXNjIGFkZCBkZXYgZXRoMCBwYXJlbnQgMTA6MTAwIHNmcSBxdWFudHVtIDE1 MTRiIHBlcnR1cmIgMTUKPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gTm93IHdlIGhhdmUgdG8gdGVs bCB0aGUga2VybmVsIHRvIHNlbmQgcGFja2V0cyB0byB0aGUgcXVldWUuIE5vdGljZQo8L0k+Jmd0 OzxpPiB0aGUgaXAvbWFzay4gIENoYW5nZSB0aGlzIGRlcGVuZGluZyBvbiB5b3VyIHRhcmdldCBu ZXR3b3JrIHRvIGZpbHRlci4KPC9JPiZndDs8aT4gIyB0YyBmaWx0ZXIgYWRkIGRldiBldGgwIHBh cmVudCAxMDowIHByb3RvY29sIGlwIHByaW8gMTAwIHUzMiBtYXRjaCBpcCBcCjwvST4mZ3Q7PGk+ ICAgZHN0IDE5Mi4xNjguMS4wLzI0IGZsb3dpZCAxMDoxMDAKPC9JPiZndDs8aT4KPC9JPiZndDs8 aT4gSWYgeW91IGdldCAmcXVvdDtSVE5FVExJTksgYW5zd2VyczogSW52YWxpZCBhcmd1bWVudCZx dW90OyBlcnJvcnMsIGNoYW5jZXMgYXJlIHlvdQo8L0k+Jmd0OzxpPiBkaWRuJ3QgY29tcGlsZSBp biBhbGwgdGhlIG5lY2Vzc2FyeSBpdGVtcyBpbnRvIHRoZSBrZXJuZWwuICBDaGVjayBteQo8L0k+ Jmd0OzxpPiBjb25maWcgYWJvdmUgYW5kIG1ha2Ugc3VyZSBuZWNlc3NhcnkgdGhpbmdzIGFyZSB0 aGVyZS4gIEZvciBpbnN0YW5jZSwgaWYKPC9JPiZndDs8aT4gdGhlIGxhc3QgJnF1b3Q7dGMmcXVv dDsgY29tbWFuZCBhYm92ZSBkZWxpdmVycyB0aGlzIGVycm9yLCBpdCBtZWFucyB0aGF0IFFvUwo8 L0k+Jmd0OzxpPiB1MzIgcXVldWluZyBpcyBub3QgY29tcGlsZWQgaW50byB0aGUga2VybmVsIG9y IHRoZSBtb2R1bGUgaXNuJ3QgbG9hZGVkLgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0 OzxpPiBJZiB5b3UgZG8gbm90IHNlZSBhbnkgZXJyb3JzLCB0aGVuIGNoYW5jZXMgYXJlIHlvdSBo YXZlIGNvcnJlY3RseSBsaW1pdGVkCjwvST4mZ3Q7PGk+IHRoZSBvdXRnb2luZyBiYW5kd2lkdGgg b2YgdGhlIGFib3ZlIGRldmljZS4gIElzc3VlIHRoZSAmcXVvdDt0YyAtZCBxZGlzYyZxdW90Owo8 L0k+Jmd0OzxpPiBjb21tYW5kLgo8L0k+Jmd0OzxpPiBJdCBzaG91bGQgbG9vayBzaW1pbGFyIHRv IHRoaXM6CjwvST4mZ3Q7PGk+ICMgdGMgLWQgcWRpc2MKPC9JPiZndDs8aT4gICBxZGlzYyBzZnEg ODAwMTogZGV2IGV0aDAgcXVhbnR1bSAxNTE0YiBsaW1pdCAxMjhwIGZsb3dzIDEyOC8xMDI0IHBl cnR1cmIKPC9JPiZndDs8aT4gMTVzZWMKPC9JPiZndDs8aT4gICBxZGlzYyBjYnEgMTA6IGRldiBl dGgwIHJhdGUgMTBNYml0IGNlbGwgOGIgKGJvdW5kZWQsaXNvbGF0ZWQpIHByaW8gXAo8L0k+Jmd0 OzxpPiAgIG5vLXRyYW5zbWl0Lzggd2VpZ2h0IDEwTWJpdCBhbGxvdCAxNTE0YiBsZXZlbCAyIGV3 bWEgNSBhdnBrdCAxMDAwYgo8L0k+bWF4aWRsZQomZ3Q7PGk+IDIzdXMKPC9JPiZndDs8aT4KPC9J PiZndDs8aT4gWW91IGNhbiB2ZXJpZnkgdGhpcyBieSBjb25uZWN0aW5nIHRvIHlvdXIgbWFjaGlu ZSBmcm9tIGEgcmVtb3RlIG1hY2hpbmUKPC9JPmFuZAomZ3Q7PGk+IGNvbXBhcmluZyB5b3VyIGRv d25sb2FkIHNwZWVkcy4gIFRoaXMgaXMgYmVzdCBkb25lIG9uIGFuIGludGVybmFsIExBTgo8L0k+ d2hlcmUKJmd0OzxpPiB5b3UncmUgc3BlZWRzIGFyZSBwcmV0dHkgbXVjaCBndWFyYW50ZWVkIG1h eCBzcGVlZHMuCjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+IElmIHlvdSBoYXZlIGNob3NlbiB0byBh bHNvIGxpbWl0IGluY29taW5nIGJhbmR3aWR0aCB1c2luZyB0aGUgcnNoYXBlcgo8L0k+Jmd0Ozxp PiB1dGlsaXR5LAo8L0k+Jmd0OzxpPiB0aGVuIHlvdSdsbCBuZWVkIHRvIGxvYWQgdGhlIHJzaGFw ZXIubyBtb2R1bGUgYXQgdGhpcyB0aW1lLgo8L0k+Jmd0OzxpPiAjIGluc21vZCAvdXNyL2xpYi9y c2hhcGVyLm8KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gVGhlbiB5b3UgbmVlZCB0byBzZXR1cCB5 b3VyIGluY29taW5nIGJhbmR3aWR0aCBsaW1pdGF0aW9uIHVzaW5nIHRoZQo8L0k+Jmd0OzxpPiBy c2hhcGVyY3RsCjwvST4mZ3Q7PGk+IHV0aWxpdHkuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0 aGlzLCBzZWUgdGhlIHJzaGFwZXIgUkVBRE1FLiAgSW4gdGhpcwo8L0k+Jmd0OzxpPiBjYXNlCjwv ST4mZ3Q7PGk+IG15IGxvY2FsIG5ldHdvcmsgaXMgMTkyLjE2OC4xLjAvMjQuCjwvST4mZ3Q7PGk+ ICMgcnNoYXBlcmN0bCAxOTIuMTY4LjEuMC8yNCAxMjgwMDAKPC9JPiZndDs8aT4KPC9JPiZndDs8 aT4gVGhpcyBzaGFwZXMgYWxsIGluY29taW5nIHRyYWZmaWMgb24gdGhlIGxvY2FsIG5ldHdvcmsg dG8gMTI4a2Ivcy4gIFJ1bm5pbmcKPC9JPiZndDs8aT4gcnNoYXBlY3RsIHdpdGggbm8gb3B0aW9u cyB3aWxsIHNob3cgeW91IHRoZSBzdGF0dXMgb2Ygc2hhcGVkIGhvc3RzLgo8L0k+Jmd0OzxpPiAj IHJzaGFwZXJjdGwKPC9JPiZndDs8aT4gICBob3N0ICAgICAgICAgICAgICAgICAgICAgbWFzayAg ICAgICAgIGJ5dGVzLXBlci1zZWMgICAgICBtYXgtcXVldWUtbGVuCjwvST4ocykKJmd0OzxpPiAg IDE5Mi4xNjguMS4wICAgICAgICAgIDI1NS4yNTUuMjU1LjAgICAgICAgICAxMjgwMDAgICAgICAg ICAgICAgICAgICAgICA0CjwvST4mZ3Q7PGk+CjwvST4mZ3Q7PGk+IFRvIHRlc3QgdGhpcyBzZXR1 cCwgY29ubmVjdCBmcm9tIHlvdXIgbG9jYWwgbWFjaGluZSB0byBhIHJlbW90ZSBtYWNoaW5lCjwv ST5hbmQKJmd0OzxpPiBjb21wYXJlIHlvdXIgZG93bmxvYWQgc3BlZWRzIGZyb20gdGhpcyBtYWNo aW5lLiAgQWdhaW4sIHRoaXMgaXMgYmVzdCBkb25lCjwvST4mZ3Q7PGk+IG9uIGFuIGludGVybmFs IExBTiB3aGVyZSB5b3UncmUgc3BlZWRzIGFyZSBwcmV0dHkgbXVjaCBndWFyYW50ZWVkLgo8L0k+ Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBTY3JpcHQKPC9JPiZndDs8aT4gLS0tLS0t CjwvST4mZ3Q7PGk+IEhlcmUgaXMgdGhlIHNjcmlwdCBJIHVzZSB0byBzdGFydCBjYnEgb24gbXkg bWFjaGluZToKPC9JPiZndDs8aT4gLS0tLS0tLS0tLS0tLS0tLQo8L0k+Jmd0OzxpPiAjIS9iaW4v c2gKPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gRklMVEVSTUFTSz0mcXVvdDsxOTIuMTY4LjEuMC8y NCZxdW90Owo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiAjIGJhbmR3aWR0aCBpbiBLYml0cwo8L0k+ Jmd0OzxpPiBJTl9CQU5EV0lEVEg9JnF1b3Q7MTAyNCZxdW90Owo8L0k+Jmd0OzxpPgo8L0k+Jmd0 OzxpPiAjIGJhbmR3aWR0aCBpbiBieXRlcwo8L0k+Jmd0OzxpPiBPVVRfQkFORFdJRFRIPSZxdW90 OzEyODAwMCZxdW90Owo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBERVY9JnF1b3Q7ZXRoMCZxdW90 Owo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBQQVRIPS91c3Ivc2Jpbjovc2Jpbgo8L0k+Jmd0Ozxp Pgo8L0k+Jmd0OzxpPiBlY2hvIC1uICZxdW90O1NoYXBpbmcgaW5jb21pbmcgdHJhZmZpYyB0byAk e0lOX0JBTkRXSURUSH1LYml0L3MgJnF1b3Q7CjwvST4mZ3Q7PGk+IHRjIHFkaXNjIGFkZCBkZXYg JERFViByb290IGhhbmRsZSAxMDogY2JxIGJhbmR3aWR0aCAxME1iaXQgYXZwa3QgMTAwMAo8L0k+ Jmd0OzxpPgo8L0k+Jmd0OzxpPiBlY2hvIC1uIC4KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gdGMg Y2xhc3MgYWRkIGRldiAkREVWIHBhcmVudCAxMDowIGNsYXNzaWQgMTA6MSBjYnEgYmFuZHdpZHRo IDEwTWJpdCByYXRlCjwvST4mZ3Q7PGk+IDEwTWJpdCBhbGxvdCAxNTE0IHdlaWdodCAxTWJpdCBw cmlvIDggbWF4YnVyc3QgMjAgYXZwa3QgMTAwMAo8L0k+Jmd0OzxpPiBlY2hvIC1uIC4KPC9JPiZn dDs8aT4KPC9JPiZndDs8aT4gdGMgY2xhc3MgYWRkIGRldiAkREVWIHBhcmVudCAxMDoxIGNsYXNz aWQgMTA6MTAwIGNicSBiYW5kd2lkdGggMTBNYml0IHJhdGUKPC9JPiZndDs8aT4gJHtJTl9CQU5E V0lEVEh9a2JpdCBhbGxvdCAxNTE0IHdlaWdodCA4NWtiaXQgcHJpbyA1IG1heGJ1cnN0IDIwIGF2 cGt0IDEwMDAKPC9JPiZndDs8aT4gYm91bmRlZAo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBlY2hv IC1uIC4KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gdGMgcWRpc2MgYWRkIGRldiAkREVWIHBhcmVu dCAxMDoxMDAgc2ZxIHF1YW50dW0gMTUxNGIgcGVydHVyYiAxNQo8L0k+Jmd0OzxpPgo8L0k+Jmd0 OzxpPiBlY2hvIC1uIC4KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gdGMgZmlsdGVyIGFkZCBkZXYg JERFViBwYXJlbnQgMTA6MCBwcm90b2NvbCBpcCBwcmlvIDEwMCB1MzIgbWF0Y2ggaXAgZHN0Cjwv ST4mZ3Q7PGk+ICRGSUxURVJNQVNLIGZsb3dpZCAxMDoxMDAKPC9JPiZndDs8aT4KPC9JPiZndDs8 aT4gZWNobyAtbiAuCjwvST4mZ3Q7PGk+IGVjaG8KPC9JPiZndDs8aT4KPC9JPiZndDs8aT4gZWNo byAtbiAmcXVvdDtTaGFwaW5nIG91dGdvaW5nIHRyYWZmaWMgdG8gJHtPVVRfQkFORFdJRFRIfWJ5 dGVzL3MgJnF1b3Q7CjwvST4mZ3Q7PGk+IG1vZHByb2JlIHJzaGFwZXIKPC9JPiZndDs8aT4gcnNo YXBlcmN0bCAkRklMVEVSTUFTSyAkT1VUX0JBTkRXSURUSAo8L0k+Jmd0OzxpPiBlY2hvIC1uIC4K PC9JPiZndDs8aT4gZWNobwo8L0k+Jmd0OzxpPiAtLS0tLS0tLS0tLS0tLS0tLS0tCjwvST4mZ3Q7 PGk+CjwvST4mZ3Q7PGk+IFF1ZXN0aW9ucy9Db21tZW50cy9JbmZvcm1hdGlvbgo8L0k+Jmd0Ozxp PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo8L0k+Jmd0OzxpPiBUaGUgaW5m b3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiB3YXMgZ2F0aGVyZWQgZnJvbSBhIHdlZWtlbmRzIHdv cnRoIG9mCjwvST4mZ3Q7PGk+IHNlYXJjaGVzIG9uIGdvb2dsZS4gIEhvcGVmdWxseSB5b3UnbGwg ZmluZCBpdCB1c2VmdWwgYW5kIHVzYWJsZS4gIEkKPC9JPiZndDs8aT4gY2xhaW0gdG8gYmUgbm8g ZXhwZXJ0IG9uIHRoaXMgdG9waWMgYnkgYW55IG1lYW5zLCBzbyBJIGRvbid0IGtub3cgaWYKPC9J PiZndDs8aT4gSSdsbCBiZSBtdWNoIGhlbHAgaWYgeW91IHJ1biBpbnRvIHByb2JsZW1zLCBidXQg SSdsbCBkbyBteSBiZXN0IHRvIGhlbHAuCjwvST4mZ3Q7PGk+IFNvIHBsZWFzZSBkaXJlY3QgY29t bWVudHMgYW5kIHF1ZXN0aW9ucyB0byBtZSwgQnJpYW4gV2lsc29uCjwvST4mZ3Q7PGk+IDxBIEhS RUY9Im1haWx0bzp3aWxzb25Ac2VudHJpc3lzdGVtcy5jb20uIj53aWxzb25Ac2VudHJpc3lzdGVt cy5jb20uPC9BPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0Ozxp PiBDcmVkaXRzCjwvST4mZ3Q7PGk+IC0tLS0tLS0tLQo8L0k+Jmd0OzxpPiA8QSBIUkVGPSJodHRw Oi8vc25hZnUuZnJlZWRvbS5vcmcvbGludXgyLjIvaXByb3V0ZS1ub3Rlcy5odG1sIj5odHRwOi8v c25hZnUuZnJlZWRvbS5vcmcvbGludXgyLjIvaXByb3V0ZS1ub3Rlcy5odG1sPC9BPgo8L0k+Jmd0 OzxpPgo8L0k+PEEgSFJFRj0iaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvZG9jcy9I T1dUTy9vdGhlci1mb3JtYXRzL2h0bWxfc2luZ2xlL0Fkdi1SbyI+aHR0cDovL3d3dy5pYmlibGlv Lm9yZy9wdWIvTGludXgvZG9jcy9IT1dUTy9vdGhlci1mb3JtYXRzL2h0bWxfc2luZ2xlL0Fkdi1S bzwvQT4KJmd0OzxpPiB1dGluZy1IT1dUTy5odG1sI3M4CjwvST4mZ3Q7PGk+IDxBIEhSRUY9Imh0 dHA6Ly9tYWlsbWFuLmRzOWEubmwvcGlwZXJtYWlsL2xhcnRjLzIwMDBxNC8iPmh0dHA6Ly9tYWls bWFuLmRzOWEubmwvcGlwZXJtYWlsL2xhcnRjLzIwMDBxNC88L0E+CjwvST4mZ3Q7PGk+IHozZCBh bmQgc2gwMHAgZm9yIHBvaW50aW5nIGZpbmdlcnMgYW5kIGxhdWdoaW5nLgo8L0k+Jmd0OzxpPgo8 L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPgo8L0k+Jmd0OzxpPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo8L0k+Jmd0OzxpPiBMQVJUQyBt YWlsaW5nIGxpc3QgLyA8QSBIUkVGPSJtYWlsdG86TEFSVENAbWFpbG1hbi5kczlhLm5sIj5MQVJU Q0BtYWlsbWFuLmRzOWEubmw8L0E+CjwvST4mZ3Q7PGk+IDxBIEhSRUY9Imh0dHA6Ly9tYWlsbWFu LmRzOWEubmwvbWFpbG1hbi9saXN0aW5mby9sYXJ0YyI+aHR0cDovL21haWxtYW4uZHM5YS5ubC9t YWlsbWFuL2xpc3RpbmZvL2xhcnRjPC9BPiBIT1dUTzoKPC9JPjxBIEhSRUY9Imh0dHA6Ly9kczlh Lm5sLzIuNFJvdXRpbmcvIj5odHRwOi8vZHM5YS5ubC8yLjRSb3V0aW5nLzwvQT4KJmd0OzxpPgo8 L0k+CgoKPC9QUkU+Cg==