From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roman Yeryomin Subject: Re: OpenWRT wrong adjustment of fq_codel defaults (Was: fq_codel_drop vs a udp flood) Date: Mon, 16 May 2016 01:34:36 +0300 Message-ID: References: <1462125592.5535.194.camel@edumazet-glaptop3.roam.corp.google.com> <865DA393-262D-40B6-A9D3-1B978CD5F6C6@gmail.com> <1462128385.5535.200.camel@edumazet-glaptop3.roam.corp.google.com> <1462136140.5535.219.camel@edumazet-glaptop3.roam.corp.google.com> <1462201620.5535.250.camel@edumazet-glaptop3.roam.corp.google.com> <1462205669.5535.254.camel@edumazet-glaptop3.roam.corp.google.com> <1462464776.13075.18.camel@edumazet-glaptop3.roam.corp.google.com> <1462476207.13075.20.camel@edumazet-glaptop3.roam.corp.google.com> <20160506114243.4eb4f95e@redhat.com> <20160506144740.210901f5@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: make-wifi-fast@lists.bufferbloat.net, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , ath10k , "netdev@vger.kernel.org" , "codel@lists.bufferbloat.net" , Jonathan Morton , OpenWrt Development List , Felix Fietkau To: Dave Taht Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: codel-bounces@lists.bufferbloat.net Sender: "Codel" List-Id: netdev.vger.kernel.org T24gNiBNYXkgMjAxNiBhdCAyMjo0MywgRGF2ZSBUYWh0IDxkYXZlLnRhaHRAZ21haWwuY29tPiB3 cm90ZToKPiBPbiBGcmksIE1heSA2LCAyMDE2IGF0IDExOjU2IEFNLCBSb21hbiBZZXJ5b21pbiA8 bGVyb2kubGlzdHNAZ21haWwuY29tPiB3cm90ZToKPj4gT24gNiBNYXkgMjAxNiBhdCAyMTo0Mywg Um9tYW4gWWVyeW9taW4gPGxlcm9pLmxpc3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiBPbiA2IE1h eSAyMDE2IGF0IDE1OjQ3LCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNv bT4gd3JvdGU6Cj4+Pj4KPj4+PiBJJ3ZlIGNyZWF0ZWQgYSBPcGVuV1JUIHRpY2tldFsxXSBvbiB0 aGlzIGlzc3VlLCBhcyBpdCBzZWVtcyB0aGF0IHNvbWVvbmVbMl0KPj4+PiBjbG9zZWQgRmVsaXgn ZXMgT3BlbldSVCBlbWFpbCBhY2NvdW50IChiYWQgY2hvaWNlISBlbWFpbHMgYm91bmNpbmcpLgo+ Pj4+IFNvdW5kcyBsaWtlIE9wZW5XUlQgYW5kIHRoZSBMRURFIGh0dHBzOi8vd3d3LmxlZGUtcHJv amVjdC5vcmcvIHByb2plY3QKPj4+PiBpcyBpbiBzb21lIGtpbmQgb2YgY29uZmxpY3QuCj4+Pj4K Pj4+PiBPcGVuV1JUIHRpY2tldCBbMV0gaHR0cHM6Ly9kZXYub3BlbndydC5vcmcvdGlja2V0LzIy MzQ5Cj4+Pj4KPj4+PiBbMl0gaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC5lbWJl ZGRlZC5vcGVud3J0LmRldmVsLzQwMjk4L2ZvY3VzPTQwMzM1Cj4+Pgo+Pj4gT0ssIHNvLCBhZnRl ciBwb3J0aW5nIHRoZSBwYXRjaCB0byA0LjEgb3BlbndydCBrZXJuZWwgYW5kIHBsYXlpbmcgYQo+ Pj4gYml0IHdpdGggZnFfY29kZWwgbGltaXRzIEkgd2FzIGFibGUgdG8gZ2V0IDQyME1icHMgVURQ IGxpa2UgdGhpczoKPj4+IHRjIHFkaXNjIHJlcGxhY2UgZGV2IHdsYW4wIHBhcmVudCA6MSBmcV9j b2RlbCBmbG93cyAxNiBsaW1pdCAyNTYKPj4KPj4gRm9yZ290IHRvIG1lbnRpb24sIEkndmUgcmVk dWNlZCBkcm9wX2JhdGNoX3NpemUgZG93biB0byAzMgo+Cj4gMCkgTm90IGNsZWFyIHRvIG1lIGlm IHRoYXQncyB0aGUgcmlnaHQgbGluZSwgdGhlcmUgYXJlIDQgd2lmaSBxdWV1ZXMsCj4gYW5kIHRo ZSB0aGlyZCBvbmUKPiBpcyB0aGUgQkUgcXVldWUuCgpUaGF0IHdhcyBhbiBleGFtcGxlLCBzb3Jy eSwgc2hvdWxkIGhhdmUgc3RhdGVkIHRoYXQuIEkndmUgYXBwbGllZCBzYW1lCnNldHRpbmdzIHRv IGFsbCA0IHF1ZXVlcy4KCj4gVGhhdCBpcyB0b28gbG93IGEgbGltaXQsIGFsc28sIGZvciBub3Jt YWwgdXNlLiBBbmQ6Cj4gZm9yIHRoZSBwdXJwb3NlIG9mIHRoaXMgcGFydGljdWxhciBVRFAgdGVz dCwgZmxvd3MgMTYgaXMgb2ssIGJ1dCBub3QKPiBpZGVhbC4KCkkgcGxheWVkIHdpdGggZGlmZmVy ZW50IGNvbWJpbmF0aW9ucywgaXQgZG9lc24ndCBtYWtlIGFueQooc2lnbmlmaWNhbnQpIGRpZmZl cmVuY2U6IDIwLTMwTWJwcywgbm90IG1vcmUuCldoYXQgbnVtYmVycyB3b3VsZCB5b3UgcHJvcG9z ZT8KCj4gMSkgV2hhdCdzIHRoZSB0Y3AgbnVtYmVyICh3aXRoIGEgc2ltdWx0YW5lb3VzIHBpbmcp IHdpdGggdGhpcyBsYXRlc3QgcGF0Y2hzZXQ/Cj4gKEkgY2FyZSBhYm91dCB0Y3AgcGVyZm9ybWFu Y2UgYSBsb3QgbW9yZSB0aGFuIHVkcCBmbG9vZHMgLSBzdXJ2aXZpbmcgYQo+IHVkcCBmbG9vZCB5 ZXMsIHBlcmZvcm1hbmNlLCBubykKCkR1cmluZyB0aGUgdGVzdCAoYm90aCBUQ1AgYW5kIFVEUCkg aXQncyByb3VnaGx5IDVtcyBpbiBhdmVyYWdlLCBub3QKcnVubmluZyB0ZXN0cyB+Mm1zLiBBY3R1 YWxseSBJJ20gbm93IHdvbmRlcmluZyBpZiB0YXJnZXQgaXMgd29ya2luZyBhdAphbGwsIGJlY2F1 c2UgSSBoYWQgc2FtZSByZXN1bHQgd2l0aCB0YXJnZXQgODBtcy4uClNvLCB5ZXMsIGxhdGVuY3kg aXMgZ29vZCwgYnV0IHBlcmZvcm1hbmNlIGlzIHBvb3IuCgo+IGJlZm9yZS9hZnRlcj8KPgo+IHRj IC1zIHFkaXNjIHNob3cgZGV2IHdsYW4wIGR1cmluZy9hZnRlciByZXN1bHRzPwoKZHVyaW5nIHRo ZSB0ZXN0OgoKcWRpc2MgbXEgMDogcm9vdAogU2VudCAxNjAwNDk2MDAwIGJ5dGVzIDEwNTcxOTQg cGt0IChkcm9wcGVkIDE0MjE1NjgsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAxNykKIGJhY2tsb2cg MTU0NTc5NGIgMTAyMXAgcmVxdWV1ZXMgMTcKcWRpc2MgZnFfY29kZWwgODAwMTogcGFyZW50IDox IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3RocmVz aG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK ICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21hcmsg MAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29kZWwgODAwMjog cGFyZW50IDoyIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1z IGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBw a3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJl cXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29k ZWwgODAwMzogcGFyZW50IDozIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJn ZXQgODAuMG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDE2 MDEyNzExNjggYnl0ZXMgMTA1NzcwNiBwa3QgKGRyb3BwZWQgMTQyMjMwNCwgb3ZlcmxpbWl0cyAw IHJlcXVldWVzIDE3KQogYmFja2xvZyAxNTQxMjUyYiAxMDE4cCByZXF1ZXVlcyAxNwogIG1heHBh Y2tldCAxNTE0IGRyb3Bfb3ZlcmxpbWl0IDE0MjIzMDQgbmV3X2Zsb3dfY291bnQgMzUgZWNuX21h cmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgODAw NDogcGFyZW50IDo0IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAu MG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMg MCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBw IHJlcXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50 IDAgZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKCgphZnRlciB0 aGUgdGVzdCAoNjBzZWMpOgoKcWRpc2MgbXEgMDogcm9vdAogU2VudCAzMDg0OTk2MDUyIGJ5dGVz IDIwMzc3NDQgcGt0IChkcm9wcGVkIDI3NzAxNzYsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAyOCkK IGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMjgKcWRpc2MgZnFfY29kZWwgODAwMTogcGFyZW50IDox IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3RocmVz aG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK ICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21hcmsg MAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29kZWwgODAwMjog cGFyZW50IDoyIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1z IGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBw a3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJl cXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29k ZWwgODAwMzogcGFyZW50IDozIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJn ZXQgODAuMG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDMw ODQ5OTYwNTIgYnl0ZXMgMjAzNzc0NCBwa3QgKGRyb3BwZWQgMjc3MDE3Niwgb3ZlcmxpbWl0cyAw IHJlcXVldWVzIDI4KQogYmFja2xvZyAwYiAwcCByZXF1ZXVlcyAyOAogIG1heHBhY2tldCAxNTE0 IGRyb3Bfb3ZlcmxpbWl0IDI3NzAxNzYgbmV3X2Zsb3dfY291bnQgNjQgZWNuX21hcmsgMAogIG5l d19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgODAwNDogcGFyZW50 IDo0IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3Ro cmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRy b3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVz IDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21h cmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKCgo+IElGIHlvdSBhcmUgZG9p bmcgYnVpbGRzIGZvciB0aGUgYXJjaGVyIGM3djIsIEkgY2FuIGpvaW4gaW4gb24gdGhpcy4uLiAo PykKCkknbSBub3QgYnV0IEkgaGF2ZSBjNyBzb21ld2hlcmUsIHNvIEkgY2FuIGRvIGEgYnVpbGQg Zm9yIGl0IGFuZCBhbHNvCnRlc3QsIHNvIHdlIGFyZSBvbiB0aGUgc2FtZSBwYWdlLgoKPiBJIGRp ZCBkbyBhIHRlc3Qgb2YgdGhlIGF0aDEwayAiYmVmb3JlIiwgZnFfY29kZWwgKm5ldmVyIGVuZ2Fn ZWQqLCBhbmQKPiB0Y3AgaW5kdWNlZCBsYXRlbmNpZXMgdW5kZXIgbG9hZCwgZSBhdCAxMDBtYml0 LCBjcmFja2VkIDYwMG1zLCB3aGlsZQo+IHN0YXlpbmcgZmxhdCAoMjBtcykgYXQgMTAwbWJpdC4g KG5vdCB0aGUgc2FtZSBwYXRjaGVzIHlvdSBhcmUgdGVzdGluZykKPiBvbiB4ODYuIEkgaGF2ZSBn b3QgdGNwIDMwME1iaXQgb3V0IG9mIGFuIG9zeCBib3gsIHNpbWlsYXIgbGF0ZW5jeSwKPiBoYXZl IHlldCB0byBnZXQgYW55dGhpbmcgbW9yZSBvbiBhbnl0aGluZyBJIGN1cnJlbnRseSBoYXZlCj4g YmVmb3JlL2FmdGVyIHBhdGNoc2V0cy4KPgo+IEknbGwgZ28gYWRkIGZsb29kaW5nIHRvIHRoZSB0 ZXN0cywgSSBqdXN0IGZpbmlzaGVkIGEgc2VyaWVzIGNvbXBhcmluZwo+IHR3byBkaWZmZXJlbnQg c3BlZWQgc3RhdGlvbnMgYW5kIGxpZmUgd2FzIGdvb2Qgb24gdGhhdC4KPgo+ICJiZWZvcmUiIC0g ZnFfY29kZWwgbmV2ZXIgZW5nYWdlcywgd2Ugc2VlIHNlY29uZHMgb2YgbGF0ZW5jeSB1bmRlciBs b2FkLgo+Cj4gcm9vdEBhcHUyOn4jIHRjIC1zIHFkaXNjIHNob3cgZGV2IHdscDRzMAo+IHFkaXNj IG1xIDA6IHJvb3QKPiAgU2VudCA4NTcwNTYzODkzIGJ5dGVzIDYzMjY5ODMgcGt0IChkcm9wcGVk IDAsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAwKQo+ICBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK PiBxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjEgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVh bnR1bSAxNTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNlbnQgMjI2 MiBieXRlcyAxNyBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJh Y2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDAgZHJvcF9vdmVybGltaXQgMCBu ZXdfZmxvd19jb3VudCAwIGVjbl9tYXJrIDAKPiAgIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3Nf bGVuIDAKPiBxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjIgbGltaXQgMTAyNDBwIGZsb3dzIDEw MjQgcXVhbnR1bSAxNTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNl bnQgMjIwNDg2NTY5IGJ5dGVzIDE1MjA1OCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJl cXVldWVzIDApCj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDE4MTY4 IGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMSBlY25fbWFyayAwCj4gICBuZXdfZmxv d3NfbGVuIDAgb2xkX2Zsb3dzX2xlbiAxCj4gcWRpc2MgZnFfY29kZWwgMDogcGFyZW50IDozIGxp bWl0IDEwMjQwcCBmbG93cyAxMDI0IHF1YW50dW0gMTUxNAo+IHRhcmdldCA1LjBtcyBpbnRlcnZh bCAxMDAuMG1zIGVjbgo+ICBTZW50IDgzNDA1NDY1MDkgYnl0ZXMgNjE2MzQzMSBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMg MAo+ICAgbWF4cGFja2V0IDY4MTMwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMTIw MDUwIGVjbl9tYXJrIDAKPiAgIG5ld19mbG93c19sZW4gMSBvbGRfZmxvd3NfbGVuIDMKPiBxZGlz YyBmcV9jb2RlbCAwOiBwYXJlbnQgOjQgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAx NTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNlbnQgOTUyODU1MyBi eXRlcyAxMTQ3NyBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJh Y2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDY2IGRyb3Bfb3ZlcmxpbWl0IDAg bmV3X2Zsb3dfY291bnQgMSBlY25fbWFyayAwCj4gICBuZXdfZmxvd3NfbGVuIDEgb2xkX2Zsb3dz X2xlbiAwCj4gICBgYGAKPgo+Cj4+PiBUaGlzIGlzIGNlcnRhaW5seSBiZXR0ZXIgdGhhbiAzME1i cHMgYnV0IHN0aWxsIG1vcmUgdGhhbiB0d28gdGltZXMKPj4+IGxlc3MgdGhhbiBiZWZvcmUgKDkw MCkuCj4KPiBUaGUgbnVtYmVyIHRoYXQgSSBzdGlsbCBhbSBub3Qgc3VyZSB3ZSBnb3QgaXMgdGhh dCB5b3Ugd2VyZSBzZW5kaW5nCj4gOTAwbWJpdCB1ZHAgYW5kIHJlY2lldmluZyA5MDBtYml0IG9u IHRoZSBwcmlvciB0ZXN0cz8KCjkwMCB3YXMgc2VuZGluZywgQVAgUE9WICh3aWZpIGNsaWVudCBp cyBkb3dubG9hZGluZykKCj4+PiBUQ1AgYWxzbyBpbXByb3ZlZCBhIGxpdHRsZSAoNTUwIHRvIH41 OTApLgo+Cj4gVGhlIGxpbWl0IGlzIHByb2JhYmx5IGEgYml0IGxvdywgYWxzby4gIFlvdSBtaWdo dCB3YW50IHRvIHRyeSB0YXJnZXQKPiAyMG1zIGFzIHdlbGwuCgpJJ3ZlIHRyaWVkIGxpbWl0IHVw IHRvIDEwMjQgYW5kIHRhcmdldCB1cCB0byA4MG1zCgo+Pj4KPj4+IEZlbGl4LCBvdGhlcnMsIGRv IHlvdSB3YW50IHRvIHNlZSB0aGUgcG9ydGVkIHBhdGNoLCBtYXliZSBJIGRpZCBzb21ldGhpbmcg d3Jvbmc/Cj4+PiBEb2Vzbid0IGxvb2sgbGlrZSBpdCB3aWxsIHNhdmUgYXRoMTBrIGZyb20gcGVy Zm9ybWFuY2UgcmVncmVzc2lvbi4KPgo+IHdoYXQgd2FzIHRjcCAiYmVmb3JlIj8gKEknbSBzb3Jy eSwgc3VjaCBhIGxvbmcgdGhyZWFkKQoKNzUwTWJwcwoKPj4+Cj4+Pj4KPj4+PiBPbiBGcmksIDYg TWF5IDIwMTYgMTE6NDI6NDMgKzAyMDAKPj4+PiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91 ZXJAcmVkaGF0LmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gSGkgRmVsaXgsCj4+Pj4+Cj4+Pj4+IFRo aXMgaXMgYW4gaW1wb3J0YW50IGZpeCBmb3IgT3BlbldSVCwgcGxlYXNlIHJlYWQhCj4+Pj4+Cj4+ Pj4+IE9wZW5XUlQgY2hhbmdlZCB0aGUgZGVmYXVsdCBmcV9jb2RlbCBzY2gtPmxpbWl0IGZyb20g MTAyNDAgdG8gMTAyNCwKPj4+Pj4gd2l0aG91dCBhbHNvIGFkanVzdGluZyBxLT5mbG93c19jbnQu ICBFcmljIGV4cGxhaW5zIGJlbG93IHRoYXQgeW91IG11c3QKPj4+Pj4gYWxzbyBhZGp1c3QgdGhl IGJ1Y2tldHMgKHEtPmZsb3dzX2NudCkgZm9yIHRoaXMgbm90IHRvIGJyZWFrLiAoSnVzdAo+Pj4+ PiBhZGp1c3QgaXQgdG8gMTI4KQo+Pj4+Pgo+Pj4+PiBQcm9ibGVtYXRpYyBPcGVuV1JUIGNvbW1p dCBpbiBxdWVzdGlvbjoKPj4+Pj4gIGh0dHA6Ly9naXQub3BlbndydC5vcmcvP3A9b3BlbndydC5n aXQ7YT1wYXRjaDtoPTEyY2Q2NTc4MDg0ZQo+Pj4+PiAgMTJjZDY1NzgwODRlICgia2VybmVsOiBy ZXZlcnQgZnFfY29kZWwgcXVhbnR1bSBvdmVycmlkZSB0byBwcmV2ZW50IGl0IGZyb20gY2F1c2lu ZyB0b28gbXVjaCBjcHUgbG9hZCB3aXRoIGhpZ2hlciBzcGVlZCAoIzIxMzI2KSIpCj4+Pj4+Cj4+ Pj4+Cj4+Pj4+IEkgYWxzbyBoaWdobHkgcmVjb21tZW5kIHlvdSBjaGVycnktcGljayB0aGlzIHZl cnkgcmVjZW50IGNvbW1pdDoKPj4+Pj4gIG5ldC1uZXh0OiA5ZDE4NTYyYTIyNzggKCJmcV9jb2Rl bDogYWRkIGJhdGNoIGFiaWxpdHkgdG8gZnFfY29kZWxfZHJvcCgpIikKPj4+Pj4gIGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvZGF2ZW0vbmV0LW5leHQvYy85ZDE4NTYyYTIyNwo+Pj4+Pgo+Pj4+PiBU aGlzIHNob3VsZCBmaXggdmVyeSBoaWdoIENQVSB1c2FnZSBpbi1jYXNlIGZxX2NvZGVsIGdvZXMg aW50byBkcm9wIG1vZGUuCj4+Pj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQgZHJvcCBtb2RlIHdhcyBj b25zaWRlcmVkIHJhcmUsIGFuZCBpbXBsZW1lbnRhdGlvbgo+Pj4+PiB3aXNlIGl0IHdhcyBjaG9z ZW4gdG8gYmUgbW9yZSBleHBlbnNpdmUgKHRvIHNhdmUgY3ljbGVzIG9uIG5vcm1hbCBtb2RlKS4K Pj4+Pj4gVW5mb3J0dW5hdGVseSBpcyBpdCBlYXN5IHRvIHRyaWdnZXIgd2l0aCBhbiBVRFAgZmxv b2QuIERyb3AgbW9kZSBpcwo+Pj4+PiBlc3BlY2lhbGx5IGV4cGVuc2l2ZSBmb3Igc21hbGxlciBk ZXZpY2VzLCBhcyBpdCBzY2FucyBhIDRLIGJpZyBhcnJheSwKPj4+Pj4gdGh1cyA2NCBjYWNoZSBt aXNzZXMgZm9yIHNtYWxsIGRldmljZXMhCj4+Pj4+Cj4+Pj4+IFRoZSBmaXggaXMgdG8gYWxsb3cg ZHJvcC1tb2RlIHRvIGJ1bGstZHJvcCBtb3JlIHBhY2tldHMgd2hlbiBlbnRlcmluZwo+Pj4+PiBk cm9wLW1vZGUgKGRlZmF1bHQgNjQgYnVsayBkcm9wKS4gIFRoYXQgd2F5IHdlIGRvbid0IHN1ZGRl bmx5Cj4+Pj4+IGV4cGVyaWVuY2UgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBwcm9jZXNzaW5nIGNv c3QgcGVyIHBhY2tldCwgYnV0Cj4+Pj4+IGluc3RlYWQgY2FuIGFtb3J0aXplIHRoaXMuCj4+Pj4+ Cj4+Pj4+IFRvIEVyaWMsIHNob3VsZCB3ZSByZWNvbW1lbmQgT3BlbldSVCB0byBhZGp1c3QgZGVm YXVsdCAobWF4KSA2NCBidWxrCj4+Pj4+IGRyb3AsIGdpdmVuIHdlIGFsc28gcmVjb21tZW5kIGJ1 Y2tldCBzaXplIHRvIGJlIDEyOCA/ICh0aHVzIHRoZSBhbW91bnQKPj4+Pj4gb2YgbWVtb3J5IHRv IHNjYW4gaXMgbGVzcywgYnV0IHRoZWlyIENQVSBpcyBhbHNvIG11Y2ggc21hbGxlcikuCj4+Pj4+ Cj4+Pj4+IC0tSmVzcGVyCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE9uIFRodSwgMDUgTWF5IDIwMTYgMTI6 MjM6MjcgLTA3MDAgRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiB3cm90ZToK Pj4+Pj4KPj4+Pj4gPiBPbiBUaHUsIDIwMTYtMDUtMDUgYXQgMTk6MjUgKzAzMDAsIFJvbWFuIFll cnlvbWluIHdyb3RlOgo+Pj4+PiA+ID4gT24gNSBNYXkgMjAxNiBhdCAxOToxMiwgRXJpYyBEdW1h emV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4gPiA+ID4gT24gVGh1LCAy MDE2LTA1LTA1IGF0IDE3OjUzICswMzAwLCBSb21hbiBZZXJ5b21pbiB3cm90ZToKPj4+Pj4gPiA+ ID4KPj4+Pj4gPiA+ID4+Cj4+Pj4+ID4gPiA+PiBxZGlzYyBmcV9jb2RlbCAwOiBkZXYgZXRoMCBy b290IHJlZmNudCAyIGxpbWl0IDEwMjRwIGZsb3dzIDEwMjQKPj4+Pj4gPiA+ID4+IHF1YW50dW0g MTUxNCB0YXJnZXQgNS4wbXMgaW50ZXJ2YWwgMTAwLjBtcyBlY24KPj4+Pj4gPiA+ID4+ICBTZW50 IDEyMzA2IGJ5dGVzIDEyOCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDAp Cj4+Pj4+ID4gPiA+PiAgYmFja2xvZyAwYiAwcCByZXF1ZXVlcyAwCj4+Pj4+ID4gPiA+PiAgIG1h eHBhY2tldCAwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMCBlY25fbWFyayAwCj4+ Pj4+ID4gPiA+PiAgIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKPj4+Pj4gPiA+ID4K Pj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gTGltaXQgb2YgMTAyNCBwYWNrZXRzIGFuZCAxMDI0IGZs b3dzIGlzIG5vdCB3aXNlIEkgdGhpbmsuCj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IChJZiBhbGwg YnVja2V0cyBhcmUgaW4gdXNlLCBlYWNoIGJ1Y2tldCBoYXMgYSB2aXJ0dWFsIHF1ZXVlIG9mIDEg cGFja2V0LAo+Pj4+PiA+ID4gPiB3aGljaCBpcyBhbG1vc3QgdGhlIHNhbWUgdGhhbiBoYXZpbmcg bm8gcXVldWUgYXQgYWxsKQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiBJIHN1Z2dlc3QgdG8gaGF2 ZSBhdCBsZWFzdCA4IHBhY2tldHMgcGVyIGJ1Y2tldCwgdG8gbGV0IENvZGVsIGhhdmUgYQo+Pj4+ PiA+ID4gPiBjaGFuY2UgdG8gdHJpZ2dlci4KPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gU28geW91 IGNvdWxkIGVpdGhlciByZWR1Y2UgbnVtYmVyIG9mIGJ1Y2tldHMgdG8gMTI4IChpZiBtZW1vcnkg aXMKPj4+Pj4gPiA+ID4gdGlnaHQpLCBvciBpbmNyZWFzZSBsaW1pdCB0byA4MTkyLgo+Pj4+PiA+ ID4KPj4+Pj4gPiA+IFdpbGwgdHJ5LCBidXQgd2hhdCBJJ3ZlIHBvc3RlZCBpcyBkZWZhdWx0LCBJ IGRpZG4ndCBjaGFuZ2UvY29uZmlndXJlIHRoYXQuCj4+Pj4+ID4KPj4+Pj4gPiBmcV9jb2RlbCBo YXMgYSBkZWZhdWx0IG9mIDEwMjQwIHBhY2tldHMgYW5kIDEwMjQgYnVja2V0cy4KPj4+Pj4gPgo+ Pj4+PiA+IGh0dHA6Ly9seHIuZnJlZS1lbGVjdHJvbnMuY29tL3NvdXJjZS9uZXQvc2NoZWQvc2No X2ZxX2NvZGVsLmMjTDQxMwo+Pj4+PiA+Cj4+Pj4+ID4gSWYgc29tZW9uZSBjaGFuZ2VkIHRoYXQg aW4gdGhlIGxpbnV4IHZhcmlhbnQgeW91IHVzZSwgaGUgcHJvYmFibHkgc2hvdWxkCj4+Pj4+ID4g ZXhwbGFpbiB0aGUgcmF0aW9uYWxlLgo+Pj4+Cj4+Pj4gLS0KPj4+PiBCZXN0IHJlZ2FyZHMsCj4+ Pj4gICBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyCj4+Pj4gICBNU2MuQ1MsIFByaW5jaXBhbCBLZXJu ZWwgRW5naW5lZXIgYXQgUmVkIEhhdAo+Pj4+ICAgQXV0aG9yIG9mIGh0dHA6Ly93d3cuaXB0di1h bmFseXplci5vcmcKPj4+PiAgIExpbmtlZEluOiBodHRwOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9i cm91ZXIKPgo+Cj4KPiAtLQo+IERhdmUgVMOkaHQKPiBMZXQncyBnbyBtYWtlIGhvbWUgcm91dGVy cyBhbmQgd2lmaSBmYXN0ZXIhIFdpdGggYmV0dGVyIHNvZnR3YXJlIQo+IGh0dHA6Ly9ibG9nLmNl cm93cnQub3JnCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkNvZGVsIG1haWxpbmcgbGlzdApDb2RlbEBsaXN0cy5idWZmZXJibG9hdC5uZXQKaHR0cHM6Ly9s aXN0cy5idWZmZXJibG9hdC5uZXQvbGlzdGluZm8vY29kZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-oi0-x242.google.com ([2607:f8b0:4003:c06::242]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1b24ck-0006RL-8L for ath10k@lists.infradead.org; Sun, 15 May 2016 22:35:00 +0000 Received: by mail-oi0-x242.google.com with SMTP id d139so26143399oig.1 for ; Sun, 15 May 2016 15:34:37 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1462125592.5535.194.camel@edumazet-glaptop3.roam.corp.google.com> <865DA393-262D-40B6-A9D3-1B978CD5F6C6@gmail.com> <1462128385.5535.200.camel@edumazet-glaptop3.roam.corp.google.com> <1462136140.5535.219.camel@edumazet-glaptop3.roam.corp.google.com> <1462201620.5535.250.camel@edumazet-glaptop3.roam.corp.google.com> <1462205669.5535.254.camel@edumazet-glaptop3.roam.corp.google.com> <1462464776.13075.18.camel@edumazet-glaptop3.roam.corp.google.com> <1462476207.13075.20.camel@edumazet-glaptop3.roam.corp.google.com> <20160506114243.4eb4f95e@redhat.com> <20160506144740.210901f5@redhat.com> Date: Mon, 16 May 2016 01:34:36 +0300 Message-ID: Subject: Re: OpenWRT wrong adjustment of fq_codel defaults (Was: [Codel] fq_codel_drop vs a udp flood) From: Roman Yeryomin List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: Dave Taht Cc: make-wifi-fast@lists.bufferbloat.net, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , ath10k , "netdev@vger.kernel.org" , "codel@lists.bufferbloat.net" , Michal Kazior , Jesper Dangaard Brouer , Jonathan Morton , OpenWrt Development List , Felix Fietkau T24gNiBNYXkgMjAxNiBhdCAyMjo0MywgRGF2ZSBUYWh0IDxkYXZlLnRhaHRAZ21haWwuY29tPiB3 cm90ZToKPiBPbiBGcmksIE1heSA2LCAyMDE2IGF0IDExOjU2IEFNLCBSb21hbiBZZXJ5b21pbiA8 bGVyb2kubGlzdHNAZ21haWwuY29tPiB3cm90ZToKPj4gT24gNiBNYXkgMjAxNiBhdCAyMTo0Mywg Um9tYW4gWWVyeW9taW4gPGxlcm9pLmxpc3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiBPbiA2IE1h eSAyMDE2IGF0IDE1OjQ3LCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNv bT4gd3JvdGU6Cj4+Pj4KPj4+PiBJJ3ZlIGNyZWF0ZWQgYSBPcGVuV1JUIHRpY2tldFsxXSBvbiB0 aGlzIGlzc3VlLCBhcyBpdCBzZWVtcyB0aGF0IHNvbWVvbmVbMl0KPj4+PiBjbG9zZWQgRmVsaXgn ZXMgT3BlbldSVCBlbWFpbCBhY2NvdW50IChiYWQgY2hvaWNlISBlbWFpbHMgYm91bmNpbmcpLgo+ Pj4+IFNvdW5kcyBsaWtlIE9wZW5XUlQgYW5kIHRoZSBMRURFIGh0dHBzOi8vd3d3LmxlZGUtcHJv amVjdC5vcmcvIHByb2plY3QKPj4+PiBpcyBpbiBzb21lIGtpbmQgb2YgY29uZmxpY3QuCj4+Pj4K Pj4+PiBPcGVuV1JUIHRpY2tldCBbMV0gaHR0cHM6Ly9kZXYub3BlbndydC5vcmcvdGlja2V0LzIy MzQ5Cj4+Pj4KPj4+PiBbMl0gaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC5lbWJl ZGRlZC5vcGVud3J0LmRldmVsLzQwMjk4L2ZvY3VzPTQwMzM1Cj4+Pgo+Pj4gT0ssIHNvLCBhZnRl ciBwb3J0aW5nIHRoZSBwYXRjaCB0byA0LjEgb3BlbndydCBrZXJuZWwgYW5kIHBsYXlpbmcgYQo+ Pj4gYml0IHdpdGggZnFfY29kZWwgbGltaXRzIEkgd2FzIGFibGUgdG8gZ2V0IDQyME1icHMgVURQ IGxpa2UgdGhpczoKPj4+IHRjIHFkaXNjIHJlcGxhY2UgZGV2IHdsYW4wIHBhcmVudCA6MSBmcV9j b2RlbCBmbG93cyAxNiBsaW1pdCAyNTYKPj4KPj4gRm9yZ290IHRvIG1lbnRpb24sIEkndmUgcmVk dWNlZCBkcm9wX2JhdGNoX3NpemUgZG93biB0byAzMgo+Cj4gMCkgTm90IGNsZWFyIHRvIG1lIGlm IHRoYXQncyB0aGUgcmlnaHQgbGluZSwgdGhlcmUgYXJlIDQgd2lmaSBxdWV1ZXMsCj4gYW5kIHRo ZSB0aGlyZCBvbmUKPiBpcyB0aGUgQkUgcXVldWUuCgpUaGF0IHdhcyBhbiBleGFtcGxlLCBzb3Jy eSwgc2hvdWxkIGhhdmUgc3RhdGVkIHRoYXQuIEkndmUgYXBwbGllZCBzYW1lCnNldHRpbmdzIHRv IGFsbCA0IHF1ZXVlcy4KCj4gVGhhdCBpcyB0b28gbG93IGEgbGltaXQsIGFsc28sIGZvciBub3Jt YWwgdXNlLiBBbmQ6Cj4gZm9yIHRoZSBwdXJwb3NlIG9mIHRoaXMgcGFydGljdWxhciBVRFAgdGVz dCwgZmxvd3MgMTYgaXMgb2ssIGJ1dCBub3QKPiBpZGVhbC4KCkkgcGxheWVkIHdpdGggZGlmZmVy ZW50IGNvbWJpbmF0aW9ucywgaXQgZG9lc24ndCBtYWtlIGFueQooc2lnbmlmaWNhbnQpIGRpZmZl cmVuY2U6IDIwLTMwTWJwcywgbm90IG1vcmUuCldoYXQgbnVtYmVycyB3b3VsZCB5b3UgcHJvcG9z ZT8KCj4gMSkgV2hhdCdzIHRoZSB0Y3AgbnVtYmVyICh3aXRoIGEgc2ltdWx0YW5lb3VzIHBpbmcp IHdpdGggdGhpcyBsYXRlc3QgcGF0Y2hzZXQ/Cj4gKEkgY2FyZSBhYm91dCB0Y3AgcGVyZm9ybWFu Y2UgYSBsb3QgbW9yZSB0aGFuIHVkcCBmbG9vZHMgLSBzdXJ2aXZpbmcgYQo+IHVkcCBmbG9vZCB5 ZXMsIHBlcmZvcm1hbmNlLCBubykKCkR1cmluZyB0aGUgdGVzdCAoYm90aCBUQ1AgYW5kIFVEUCkg aXQncyByb3VnaGx5IDVtcyBpbiBhdmVyYWdlLCBub3QKcnVubmluZyB0ZXN0cyB+Mm1zLiBBY3R1 YWxseSBJJ20gbm93IHdvbmRlcmluZyBpZiB0YXJnZXQgaXMgd29ya2luZyBhdAphbGwsIGJlY2F1 c2UgSSBoYWQgc2FtZSByZXN1bHQgd2l0aCB0YXJnZXQgODBtcy4uClNvLCB5ZXMsIGxhdGVuY3kg aXMgZ29vZCwgYnV0IHBlcmZvcm1hbmNlIGlzIHBvb3IuCgo+IGJlZm9yZS9hZnRlcj8KPgo+IHRj IC1zIHFkaXNjIHNob3cgZGV2IHdsYW4wIGR1cmluZy9hZnRlciByZXN1bHRzPwoKZHVyaW5nIHRo ZSB0ZXN0OgoKcWRpc2MgbXEgMDogcm9vdAogU2VudCAxNjAwNDk2MDAwIGJ5dGVzIDEwNTcxOTQg cGt0IChkcm9wcGVkIDE0MjE1NjgsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAxNykKIGJhY2tsb2cg MTU0NTc5NGIgMTAyMXAgcmVxdWV1ZXMgMTcKcWRpc2MgZnFfY29kZWwgODAwMTogcGFyZW50IDox IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3RocmVz aG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK ICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21hcmsg MAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29kZWwgODAwMjog cGFyZW50IDoyIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1z IGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBw a3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJl cXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29k ZWwgODAwMzogcGFyZW50IDozIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJn ZXQgODAuMG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDE2 MDEyNzExNjggYnl0ZXMgMTA1NzcwNiBwa3QgKGRyb3BwZWQgMTQyMjMwNCwgb3ZlcmxpbWl0cyAw IHJlcXVldWVzIDE3KQogYmFja2xvZyAxNTQxMjUyYiAxMDE4cCByZXF1ZXVlcyAxNwogIG1heHBh Y2tldCAxNTE0IGRyb3Bfb3ZlcmxpbWl0IDE0MjIzMDQgbmV3X2Zsb3dfY291bnQgMzUgZWNuX21h cmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgODAw NDogcGFyZW50IDo0IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAu MG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMg MCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBw IHJlcXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50 IDAgZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKCgphZnRlciB0 aGUgdGVzdCAoNjBzZWMpOgoKcWRpc2MgbXEgMDogcm9vdAogU2VudCAzMDg0OTk2MDUyIGJ5dGVz IDIwMzc3NDQgcGt0IChkcm9wcGVkIDI3NzAxNzYsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAyOCkK IGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMjgKcWRpc2MgZnFfY29kZWwgODAwMTogcGFyZW50IDox IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3RocmVz aG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK ICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21hcmsg MAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29kZWwgODAwMjog cGFyZW50IDoyIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1z IGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBw a3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJl cXVldWVzIDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKcWRpc2MgZnFfY29k ZWwgODAwMzogcGFyZW50IDozIGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJn ZXQgODAuMG1zIGNlX3RocmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDMw ODQ5OTYwNTIgYnl0ZXMgMjAzNzc0NCBwa3QgKGRyb3BwZWQgMjc3MDE3Niwgb3ZlcmxpbWl0cyAw IHJlcXVldWVzIDI4KQogYmFja2xvZyAwYiAwcCByZXF1ZXVlcyAyOAogIG1heHBhY2tldCAxNTE0 IGRyb3Bfb3ZlcmxpbWl0IDI3NzAxNzYgbmV3X2Zsb3dfY291bnQgNjQgZWNuX21hcmsgMAogIG5l d19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgODAwNDogcGFyZW50 IDo0IGxpbWl0IDEwMjRwIGZsb3dzIDE2IHF1YW50dW0gMTUxNAp0YXJnZXQgODAuMG1zIGNlX3Ro cmVzaG9sZCAzMnVzIGludGVydmFsIDEwMC4wbXMgZWNuCiBTZW50IDAgYnl0ZXMgMCBwa3QgKGRy b3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCiBiYWNrbG9nIDBiIDBwIHJlcXVldWVz IDAKICBtYXhwYWNrZXQgMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDAgZWNuX21h cmsgMAogIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKCgo+IElGIHlvdSBhcmUgZG9p bmcgYnVpbGRzIGZvciB0aGUgYXJjaGVyIGM3djIsIEkgY2FuIGpvaW4gaW4gb24gdGhpcy4uLiAo PykKCkknbSBub3QgYnV0IEkgaGF2ZSBjNyBzb21ld2hlcmUsIHNvIEkgY2FuIGRvIGEgYnVpbGQg Zm9yIGl0IGFuZCBhbHNvCnRlc3QsIHNvIHdlIGFyZSBvbiB0aGUgc2FtZSBwYWdlLgoKPiBJIGRp ZCBkbyBhIHRlc3Qgb2YgdGhlIGF0aDEwayAiYmVmb3JlIiwgZnFfY29kZWwgKm5ldmVyIGVuZ2Fn ZWQqLCBhbmQKPiB0Y3AgaW5kdWNlZCBsYXRlbmNpZXMgdW5kZXIgbG9hZCwgZSBhdCAxMDBtYml0 LCBjcmFja2VkIDYwMG1zLCB3aGlsZQo+IHN0YXlpbmcgZmxhdCAoMjBtcykgYXQgMTAwbWJpdC4g KG5vdCB0aGUgc2FtZSBwYXRjaGVzIHlvdSBhcmUgdGVzdGluZykKPiBvbiB4ODYuIEkgaGF2ZSBn b3QgdGNwIDMwME1iaXQgb3V0IG9mIGFuIG9zeCBib3gsIHNpbWlsYXIgbGF0ZW5jeSwKPiBoYXZl IHlldCB0byBnZXQgYW55dGhpbmcgbW9yZSBvbiBhbnl0aGluZyBJIGN1cnJlbnRseSBoYXZlCj4g YmVmb3JlL2FmdGVyIHBhdGNoc2V0cy4KPgo+IEknbGwgZ28gYWRkIGZsb29kaW5nIHRvIHRoZSB0 ZXN0cywgSSBqdXN0IGZpbmlzaGVkIGEgc2VyaWVzIGNvbXBhcmluZwo+IHR3byBkaWZmZXJlbnQg c3BlZWQgc3RhdGlvbnMgYW5kIGxpZmUgd2FzIGdvb2Qgb24gdGhhdC4KPgo+ICJiZWZvcmUiIC0g ZnFfY29kZWwgbmV2ZXIgZW5nYWdlcywgd2Ugc2VlIHNlY29uZHMgb2YgbGF0ZW5jeSB1bmRlciBs b2FkLgo+Cj4gcm9vdEBhcHUyOn4jIHRjIC1zIHFkaXNjIHNob3cgZGV2IHdscDRzMAo+IHFkaXNj IG1xIDA6IHJvb3QKPiAgU2VudCA4NTcwNTYzODkzIGJ5dGVzIDYzMjY5ODMgcGt0IChkcm9wcGVk IDAsIG92ZXJsaW1pdHMgMCByZXF1ZXVlcyAwKQo+ICBiYWNrbG9nIDBiIDBwIHJlcXVldWVzIDAK PiBxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjEgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVh bnR1bSAxNTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNlbnQgMjI2 MiBieXRlcyAxNyBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJh Y2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDAgZHJvcF9vdmVybGltaXQgMCBu ZXdfZmxvd19jb3VudCAwIGVjbl9tYXJrIDAKPiAgIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3Nf bGVuIDAKPiBxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjIgbGltaXQgMTAyNDBwIGZsb3dzIDEw MjQgcXVhbnR1bSAxNTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNl bnQgMjIwNDg2NTY5IGJ5dGVzIDE1MjA1OCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJl cXVldWVzIDApCj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDE4MTY4 IGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMSBlY25fbWFyayAwCj4gICBuZXdfZmxv d3NfbGVuIDAgb2xkX2Zsb3dzX2xlbiAxCj4gcWRpc2MgZnFfY29kZWwgMDogcGFyZW50IDozIGxp bWl0IDEwMjQwcCBmbG93cyAxMDI0IHF1YW50dW0gMTUxNAo+IHRhcmdldCA1LjBtcyBpbnRlcnZh bCAxMDAuMG1zIGVjbgo+ICBTZW50IDgzNDA1NDY1MDkgYnl0ZXMgNjE2MzQzMSBwa3QgKGRyb3Bw ZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMg MAo+ICAgbWF4cGFja2V0IDY4MTMwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMTIw MDUwIGVjbl9tYXJrIDAKPiAgIG5ld19mbG93c19sZW4gMSBvbGRfZmxvd3NfbGVuIDMKPiBxZGlz YyBmcV9jb2RlbCAwOiBwYXJlbnQgOjQgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAx NTE0Cj4gdGFyZ2V0IDUuMG1zIGludGVydmFsIDEwMC4wbXMgZWNuCj4gIFNlbnQgOTUyODU1MyBi eXRlcyAxMTQ3NyBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDApCj4gIGJh Y2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAo+ICAgbWF4cGFja2V0IDY2IGRyb3Bfb3ZlcmxpbWl0IDAg bmV3X2Zsb3dfY291bnQgMSBlY25fbWFyayAwCj4gICBuZXdfZmxvd3NfbGVuIDEgb2xkX2Zsb3dz X2xlbiAwCj4gICBgYGAKPgo+Cj4+PiBUaGlzIGlzIGNlcnRhaW5seSBiZXR0ZXIgdGhhbiAzME1i cHMgYnV0IHN0aWxsIG1vcmUgdGhhbiB0d28gdGltZXMKPj4+IGxlc3MgdGhhbiBiZWZvcmUgKDkw MCkuCj4KPiBUaGUgbnVtYmVyIHRoYXQgSSBzdGlsbCBhbSBub3Qgc3VyZSB3ZSBnb3QgaXMgdGhh dCB5b3Ugd2VyZSBzZW5kaW5nCj4gOTAwbWJpdCB1ZHAgYW5kIHJlY2lldmluZyA5MDBtYml0IG9u IHRoZSBwcmlvciB0ZXN0cz8KCjkwMCB3YXMgc2VuZGluZywgQVAgUE9WICh3aWZpIGNsaWVudCBp cyBkb3dubG9hZGluZykKCj4+PiBUQ1AgYWxzbyBpbXByb3ZlZCBhIGxpdHRsZSAoNTUwIHRvIH41 OTApLgo+Cj4gVGhlIGxpbWl0IGlzIHByb2JhYmx5IGEgYml0IGxvdywgYWxzby4gIFlvdSBtaWdo dCB3YW50IHRvIHRyeSB0YXJnZXQKPiAyMG1zIGFzIHdlbGwuCgpJJ3ZlIHRyaWVkIGxpbWl0IHVw IHRvIDEwMjQgYW5kIHRhcmdldCB1cCB0byA4MG1zCgo+Pj4KPj4+IEZlbGl4LCBvdGhlcnMsIGRv IHlvdSB3YW50IHRvIHNlZSB0aGUgcG9ydGVkIHBhdGNoLCBtYXliZSBJIGRpZCBzb21ldGhpbmcg d3Jvbmc/Cj4+PiBEb2Vzbid0IGxvb2sgbGlrZSBpdCB3aWxsIHNhdmUgYXRoMTBrIGZyb20gcGVy Zm9ybWFuY2UgcmVncmVzc2lvbi4KPgo+IHdoYXQgd2FzIHRjcCAiYmVmb3JlIj8gKEknbSBzb3Jy eSwgc3VjaCBhIGxvbmcgdGhyZWFkKQoKNzUwTWJwcwoKPj4+Cj4+Pj4KPj4+PiBPbiBGcmksIDYg TWF5IDIwMTYgMTE6NDI6NDMgKzAyMDAKPj4+PiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91 ZXJAcmVkaGF0LmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gSGkgRmVsaXgsCj4+Pj4+Cj4+Pj4+IFRo aXMgaXMgYW4gaW1wb3J0YW50IGZpeCBmb3IgT3BlbldSVCwgcGxlYXNlIHJlYWQhCj4+Pj4+Cj4+ Pj4+IE9wZW5XUlQgY2hhbmdlZCB0aGUgZGVmYXVsdCBmcV9jb2RlbCBzY2gtPmxpbWl0IGZyb20g MTAyNDAgdG8gMTAyNCwKPj4+Pj4gd2l0aG91dCBhbHNvIGFkanVzdGluZyBxLT5mbG93c19jbnQu ICBFcmljIGV4cGxhaW5zIGJlbG93IHRoYXQgeW91IG11c3QKPj4+Pj4gYWxzbyBhZGp1c3QgdGhl IGJ1Y2tldHMgKHEtPmZsb3dzX2NudCkgZm9yIHRoaXMgbm90IHRvIGJyZWFrLiAoSnVzdAo+Pj4+ PiBhZGp1c3QgaXQgdG8gMTI4KQo+Pj4+Pgo+Pj4+PiBQcm9ibGVtYXRpYyBPcGVuV1JUIGNvbW1p dCBpbiBxdWVzdGlvbjoKPj4+Pj4gIGh0dHA6Ly9naXQub3BlbndydC5vcmcvP3A9b3BlbndydC5n aXQ7YT1wYXRjaDtoPTEyY2Q2NTc4MDg0ZQo+Pj4+PiAgMTJjZDY1NzgwODRlICgia2VybmVsOiBy ZXZlcnQgZnFfY29kZWwgcXVhbnR1bSBvdmVycmlkZSB0byBwcmV2ZW50IGl0IGZyb20gY2F1c2lu ZyB0b28gbXVjaCBjcHUgbG9hZCB3aXRoIGhpZ2hlciBzcGVlZCAoIzIxMzI2KSIpCj4+Pj4+Cj4+ Pj4+Cj4+Pj4+IEkgYWxzbyBoaWdobHkgcmVjb21tZW5kIHlvdSBjaGVycnktcGljayB0aGlzIHZl cnkgcmVjZW50IGNvbW1pdDoKPj4+Pj4gIG5ldC1uZXh0OiA5ZDE4NTYyYTIyNzggKCJmcV9jb2Rl bDogYWRkIGJhdGNoIGFiaWxpdHkgdG8gZnFfY29kZWxfZHJvcCgpIikKPj4+Pj4gIGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvZGF2ZW0vbmV0LW5leHQvYy85ZDE4NTYyYTIyNwo+Pj4+Pgo+Pj4+PiBU aGlzIHNob3VsZCBmaXggdmVyeSBoaWdoIENQVSB1c2FnZSBpbi1jYXNlIGZxX2NvZGVsIGdvZXMg aW50byBkcm9wIG1vZGUuCj4+Pj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQgZHJvcCBtb2RlIHdhcyBj b25zaWRlcmVkIHJhcmUsIGFuZCBpbXBsZW1lbnRhdGlvbgo+Pj4+PiB3aXNlIGl0IHdhcyBjaG9z ZW4gdG8gYmUgbW9yZSBleHBlbnNpdmUgKHRvIHNhdmUgY3ljbGVzIG9uIG5vcm1hbCBtb2RlKS4K Pj4+Pj4gVW5mb3J0dW5hdGVseSBpcyBpdCBlYXN5IHRvIHRyaWdnZXIgd2l0aCBhbiBVRFAgZmxv b2QuIERyb3AgbW9kZSBpcwo+Pj4+PiBlc3BlY2lhbGx5IGV4cGVuc2l2ZSBmb3Igc21hbGxlciBk ZXZpY2VzLCBhcyBpdCBzY2FucyBhIDRLIGJpZyBhcnJheSwKPj4+Pj4gdGh1cyA2NCBjYWNoZSBt aXNzZXMgZm9yIHNtYWxsIGRldmljZXMhCj4+Pj4+Cj4+Pj4+IFRoZSBmaXggaXMgdG8gYWxsb3cg ZHJvcC1tb2RlIHRvIGJ1bGstZHJvcCBtb3JlIHBhY2tldHMgd2hlbiBlbnRlcmluZwo+Pj4+PiBk cm9wLW1vZGUgKGRlZmF1bHQgNjQgYnVsayBkcm9wKS4gIFRoYXQgd2F5IHdlIGRvbid0IHN1ZGRl bmx5Cj4+Pj4+IGV4cGVyaWVuY2UgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBwcm9jZXNzaW5nIGNv c3QgcGVyIHBhY2tldCwgYnV0Cj4+Pj4+IGluc3RlYWQgY2FuIGFtb3J0aXplIHRoaXMuCj4+Pj4+ Cj4+Pj4+IFRvIEVyaWMsIHNob3VsZCB3ZSByZWNvbW1lbmQgT3BlbldSVCB0byBhZGp1c3QgZGVm YXVsdCAobWF4KSA2NCBidWxrCj4+Pj4+IGRyb3AsIGdpdmVuIHdlIGFsc28gcmVjb21tZW5kIGJ1 Y2tldCBzaXplIHRvIGJlIDEyOCA/ICh0aHVzIHRoZSBhbW91bnQKPj4+Pj4gb2YgbWVtb3J5IHRv IHNjYW4gaXMgbGVzcywgYnV0IHRoZWlyIENQVSBpcyBhbHNvIG11Y2ggc21hbGxlcikuCj4+Pj4+ Cj4+Pj4+IC0tSmVzcGVyCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE9uIFRodSwgMDUgTWF5IDIwMTYgMTI6 MjM6MjcgLTA3MDAgRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiB3cm90ZToK Pj4+Pj4KPj4+Pj4gPiBPbiBUaHUsIDIwMTYtMDUtMDUgYXQgMTk6MjUgKzAzMDAsIFJvbWFuIFll cnlvbWluIHdyb3RlOgo+Pj4+PiA+ID4gT24gNSBNYXkgMjAxNiBhdCAxOToxMiwgRXJpYyBEdW1h emV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4gPiA+ID4gT24gVGh1LCAy MDE2LTA1LTA1IGF0IDE3OjUzICswMzAwLCBSb21hbiBZZXJ5b21pbiB3cm90ZToKPj4+Pj4gPiA+ ID4KPj4+Pj4gPiA+ID4+Cj4+Pj4+ID4gPiA+PiBxZGlzYyBmcV9jb2RlbCAwOiBkZXYgZXRoMCBy b290IHJlZmNudCAyIGxpbWl0IDEwMjRwIGZsb3dzIDEwMjQKPj4+Pj4gPiA+ID4+IHF1YW50dW0g MTUxNCB0YXJnZXQgNS4wbXMgaW50ZXJ2YWwgMTAwLjBtcyBlY24KPj4+Pj4gPiA+ID4+ICBTZW50 IDEyMzA2IGJ5dGVzIDEyOCBwa3QgKGRyb3BwZWQgMCwgb3ZlcmxpbWl0cyAwIHJlcXVldWVzIDAp Cj4+Pj4+ID4gPiA+PiAgYmFja2xvZyAwYiAwcCByZXF1ZXVlcyAwCj4+Pj4+ID4gPiA+PiAgIG1h eHBhY2tldCAwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMCBlY25fbWFyayAwCj4+ Pj4+ID4gPiA+PiAgIG5ld19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDAKPj4+Pj4gPiA+ID4K Pj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gTGltaXQgb2YgMTAyNCBwYWNrZXRzIGFuZCAxMDI0IGZs b3dzIGlzIG5vdCB3aXNlIEkgdGhpbmsuCj4+Pj4+ID4gPiA+Cj4+Pj4+ID4gPiA+IChJZiBhbGwg YnVja2V0cyBhcmUgaW4gdXNlLCBlYWNoIGJ1Y2tldCBoYXMgYSB2aXJ0dWFsIHF1ZXVlIG9mIDEg cGFja2V0LAo+Pj4+PiA+ID4gPiB3aGljaCBpcyBhbG1vc3QgdGhlIHNhbWUgdGhhbiBoYXZpbmcg bm8gcXVldWUgYXQgYWxsKQo+Pj4+PiA+ID4gPgo+Pj4+PiA+ID4gPiBJIHN1Z2dlc3QgdG8gaGF2 ZSBhdCBsZWFzdCA4IHBhY2tldHMgcGVyIGJ1Y2tldCwgdG8gbGV0IENvZGVsIGhhdmUgYQo+Pj4+ PiA+ID4gPiBjaGFuY2UgdG8gdHJpZ2dlci4KPj4+Pj4gPiA+ID4KPj4+Pj4gPiA+ID4gU28geW91 IGNvdWxkIGVpdGhlciByZWR1Y2UgbnVtYmVyIG9mIGJ1Y2tldHMgdG8gMTI4IChpZiBtZW1vcnkg aXMKPj4+Pj4gPiA+ID4gdGlnaHQpLCBvciBpbmNyZWFzZSBsaW1pdCB0byA4MTkyLgo+Pj4+PiA+ ID4KPj4+Pj4gPiA+IFdpbGwgdHJ5LCBidXQgd2hhdCBJJ3ZlIHBvc3RlZCBpcyBkZWZhdWx0LCBJ IGRpZG4ndCBjaGFuZ2UvY29uZmlndXJlIHRoYXQuCj4+Pj4+ID4KPj4+Pj4gPiBmcV9jb2RlbCBo YXMgYSBkZWZhdWx0IG9mIDEwMjQwIHBhY2tldHMgYW5kIDEwMjQgYnVja2V0cy4KPj4+Pj4gPgo+ Pj4+PiA+IGh0dHA6Ly9seHIuZnJlZS1lbGVjdHJvbnMuY29tL3NvdXJjZS9uZXQvc2NoZWQvc2No X2ZxX2NvZGVsLmMjTDQxMwo+Pj4+PiA+Cj4+Pj4+ID4gSWYgc29tZW9uZSBjaGFuZ2VkIHRoYXQg aW4gdGhlIGxpbnV4IHZhcmlhbnQgeW91IHVzZSwgaGUgcHJvYmFibHkgc2hvdWxkCj4+Pj4+ID4g ZXhwbGFpbiB0aGUgcmF0aW9uYWxlLgo+Pj4+Cj4+Pj4gLS0KPj4+PiBCZXN0IHJlZ2FyZHMsCj4+ Pj4gICBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyCj4+Pj4gICBNU2MuQ1MsIFByaW5jaXBhbCBLZXJu ZWwgRW5naW5lZXIgYXQgUmVkIEhhdAo+Pj4+ICAgQXV0aG9yIG9mIGh0dHA6Ly93d3cuaXB0di1h bmFseXplci5vcmcKPj4+PiAgIExpbmtlZEluOiBodHRwOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9i cm91ZXIKPgo+Cj4KPiAtLQo+IERhdmUgVMOkaHQKPiBMZXQncyBnbyBtYWtlIGhvbWUgcm91dGVy cyBhbmQgd2lmaSBmYXN0ZXIhIFdpdGggYmV0dGVyIHNvZnR3YXJlIQo+IGh0dHA6Ly9ibG9nLmNl cm93cnQub3JnCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwphdGgxMGsgbWFpbGluZyBsaXN0CmF0aDEwa0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vYXRoMTBrCg==