From owner-freebsd-hackers@freebsd.org Tue Nov 17 04:38:44 2020 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1FB9447F5AE; Tue, 17 Nov 2020 04:38:44 +0000 (UTC) (envelope-from carbaecker@gmx.de) Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mout.gmx.net", Issuer "TeleSec ServerPass Class 2 CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4CZtVq5RfPz3Np1; Tue, 17 Nov 2020 04:38:43 +0000 (UTC) (envelope-from carbaecker@gmx.de) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1605587920; bh=KT3aYNH9X8qUHB8ExD3tTPoJJmZQh9TxX+EqB+9emH4=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=O9zOuPTrdYfe9yP/jBIS0xXGShPMCHxYlgQ2EskgSNAPuZeIdid/RprKWRA+cB674 RWTS9L6hJeE8qaOv7KPnVKLJHZEACVyeLp3mN8WJZB596BZc9tFb3QoupW/YfJsrLo Ekkce8xm9hACN/59WShYikxrNxyc00HeeorEYWPE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.178.30] ([94.31.96.148]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MBUmD-1kYbNA3iRD-00D3Jx; Tue, 17 Nov 2020 05:38:39 +0100 Subject: Re: Problem with checksum offloading on RPi3 (PF + Jails involved) To: YongHyeon PYUN Cc: Hans Petter Selasky , Kristof Provost , freebsd-arm@freebsd.org, freebsd-hackers@freebsd.org References: <5130ee46-5832-d4df-d774-c6bd32e10b30@gmx.de> <20201029213622.GM31099@funkthat.com> <55713894-A896-4F12-ABB9-93DFEB2F16B9@FreeBSD.org> <20201103045215.GA2524@michelle> <46d08198-530c-cb4b-efa8-4edaf89471c1@selasky.org> <4dfaa9a3-c085-8466-a6e4-19f988b5ed3d@selasky.org> <20201116011910.GB1941@michelle> <1245cbe5-9d2f-4808-f989-569ae7d57a8a@gmx.de> <20201117030406.GA45158@michelle> From: =?UTF-8?Q?Carsten_B=c3=a4cker?= Message-ID: Date: Tue, 17 Nov 2020 05:38:38 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.3 MIME-Version: 1.0 In-Reply-To: <20201117030406.GA45158@michelle> Content-Type: multipart/mixed; boundary="------------05F385D1AB609A11B19CC179" Content-Language: de-DE X-Provags-ID: V03:K1:TUVAKnHdU3cum5HkQRANhCu0Sksfvt+c0UeCkBqbTs6jVTfYzhT 4enDVpyI6Rz2LLfY1PstZ9SojW9+0gU6e809uDynNTaVwdfFZOx0XBspqK7lzXi7LkQ1NP1 CIYAV0GbF+qjD4f2Gm7qatE2hyKcnvm4wQi4CirDjTlF1n9doiBu0dHKlMpObVn6JIxGOF6 FcAx9HsOT49hv+fJQM04g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:dfLoGaM++ds=:DzlUFWtrDKZmFiEEBA98ro k1OpsvX07KvWsPdusLG8sS08UA0DWOHOSPexC1qby1H3cohslHUqjwaw3eg01V3KoizHYoE51 c7NPebfk4r7qxBQyCfEB0nxb6O5uX68RS8iWE8SI4Q+s0+XRqPV45AuR1GUknrxeyf/nq6xau FfhTtpRhzU0XGuaWfTyUbNhSGP6PWY6YcHKOHVHYMDFYjdqa/xS4y15S3qsglhkEDMmDzriJQ sbKOHhHkY5VmAoMvHbd8dYb94mhWrz0AI9wRsyRmxQqRrM6SRmgSICgbyHBjdJRjNopeJCIWu R+co60+GMJVpoBhaxipf36Mf+hZjdn8Py1a+cdz6tVLCPlz957hQS2uvL6nMq7f6YaYosmB8J 9PIGTtceiPVfkcD7bNqnth17YBGnTJqMeIwJC0F2FWJcLoygFcmVsvoeIJ9SMosKcTyOcsJJL 5+ZaumeLaFDHIKbLSkIJXq4jYfV0A9dYaC7kSOUWKoXvb2FyDa5A17UESgyZS+QkVkTCCxjXv NnP8cpzG+Wetpqz/rJUnsZBCCZDrV5KM0z/d2bGRphLVrxup+OYrxb/O0HwoN57yD4uco4LKr 9r0pgI1Lydk9xHt9s+GzX4gyEB2npRNZYYCdtD1hswF2ffWHLcsoNpklioYXLFpRaDZwhvHmL 63PrvxzY5xM0IeyZ6cTNJ5kDujL3EhB7k/ecQwAtdm1fGeVTbOYVUi1l+gbluSAzNCxiSCIGI ix3tFPNDfTpBRn1b3h/QMUU0NnKbVP4sBZJMxT1z2Tnz19mLx2WsXiQkC6mr0e4xn8qmmn9hz a7jDTdN6h2wNt52inuSylrMEBymWkmkSWbtbK9K1EqL302GVdTDOJX9VaNSyJl3G+YE0AbZst m+CI/QxAq3wy/RfJM0+Q== X-Rspamd-Queue-Id: 4CZtVq5RfPz3Np1 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2020 04:38:44 -0000 This is a multi-part message in MIME format. --------------05F385D1AB609A11B19CC179 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Am 17.11.2020 um 04:04 schrieb YongHyeon PYUN: > On Mon, Nov 16, 2020 at 12:54:25PM +0100, Carsten B=C3=A4cker wrote: > > [...] > >> i just did a test with your modification. >> The good news is that the driver itself still works. > Your test indicates my approach to improve RX validation works. > Thanks a lot for testing. > >> The bad news is that it doesn't solve the problem. :-( >> > Let's dig further. Initially I thought pf(4) could be confused by > mismatch of received packet length and IP datagram length. H/W > does not strip padding bytes for short frame(< 60 bytes) and adds > FCS bytes such that the minimum ethernet frame length is 64 bytes. > When RX checksum offloading is enabled, the size will be 66 bytes. > My patch tried to correct wrong packet length stored in mbuf. > > I think simple nping test would be helpful to narrow down the issue > here. nping is bundled with nmap(ports/security/nmap). > > o Test patched smsc(4) with/without pf(4). > - Disable RX checksum offloading and make sure all works as > expected. > - Run the following command on other system and see whether you > can get ICMP port unreachable message from a box with smsc(4). > 5555 is port number that listens on incoming UDP datagrams. > #nping -c 1 --udp -p 5555 IPv4_addr_of_remote_host_with_smsc(4) > > #nping -c 1 --udp -p 5555 --data-length 100 IPv4_addr_of_remote_hos= t_with_smsc(4) > > - Repeat the same test with RX checksum offloading enabled. > > If there is RX checksum mismatch you wouldn't get ICMP port > unreachable message. You can even generate wrong checksummed UDP > datagrams with --badsum option like the following. > #nping -c 1 --udp -p 5555 --badsum IPv4_addr_of_remote_host_with_smsc(4) > >> I used the snapshot from 2020-10-29 as i already had an sdcard with tha= t >> image. >> http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/13.0/ >> >> Kernel was build from head + your patch. >> FreeBSD generic 13.0-CURRENT FreeBSD 13.0-CURRENT #1 r367714M: Mon Nov >> 16 08:03:24 UTC 2020 >> root@sysbuild:/usr/obj/usr/src_head/arm64.aarch64/sys/GENERIC arm64 >> >> Log from smsc is attached. >> > The log shows my assumption on RX packet layout is correct. > Thanks. > >> As the lack of hardware seems to be a problem... i may be able to >> provide temporary access, incl. serial using a 2nd pi - but this will >> take some time as i need to change the network-setup. >> > I think it's better to share nping test result first. Hello, i attached another set of log-files containing the output of the test using nping. The ICMP port unreachable message appeared in each case, but the paket loss changed to 100%. In addition i repeated the test with RXCSUM enabled after switching back to the unpatched kernel. Not sure if this helps. Regards, Carsten --------------05F385D1AB609A11B19CC179 Content-Type: text/plain; charset=UTF-8; name="nping_rxcsum_off.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nping_rxcsum_off.txt" cm9vdEBnZW5lcmljOn4gIyBwZmN0bCAtc1IgOyBlY2hvIDsgaWZjb25maWcgdWUwCkRpc2Fi bGVkCgp1ZTA6IGZsYWdzPTg4NDM8VVAsQlJPQURDQVNULFJVTk5JTkcsU0lNUExFWCxNVUxU SUNBU1Q+IG1ldHJpYyAwIG10dSAxNTAwCiAgICAgICAgb3B0aW9ucz04MDAwODxWTEFOX01U VSxMSU5LU1RBVEU+CiAgICAgICAgZXRoZXIgYjg6Mjc6ZWI6NTU6N2U6NzAKICAgICAgICBp bmV0IDE5Mi4xNjguMTc4LjMgbmV0bWFzayAweGZmZmZmZjAwIGJyb2FkY2FzdCAxOTIuMTY4 LjE3OC4yNTUKICAgICAgICBtZWRpYTogRXRoZXJuZXQgYXV0b3NlbGVjdCAoMTAwYmFzZVRY IDxmdWxsLWR1cGxleD4pCiAgICAgICAgc3RhdHVzOiBhY3RpdmUKICAgICAgICBuZDYgb3B0 aW9ucz0yOTxQRVJGT1JNTlVELElGRElTQUJMRUQsQVVUT19MSU5LTE9DQUw+CgotLS0Kcm9v dEB0ZXN0LWFtZDY0On4gIyBucGluZyAtYyAxIC0tdWRwIC1wIDU1NTUgMTkyLjE2OC4xNzgu MwoKU3RhcnRpbmcgTnBpbmcgMC43LjgwICggaHR0cHM6Ly9ubWFwLm9yZy9ucGluZyApIGF0 IDIwMjAtMTEtMTcgMDU6MTEgQ0VUClNFTlQgKDAuMDA1MHMpIFVEUCAxOTIuMTY4LjE3OC4y OTo1MyA+IDE5Mi4xNjguMTc4LjM6NTU1NSB0dGw9NjQgaWQ9NTQyNjEgaXBsZW49MjgKUkNW RCAoMC4wMDU3cykgSUNNUCBbMTkyLjE2OC4xNzguMyA+IDE5Mi4xNjguMTc4LjI5IFBvcnQg dW5yZWFjaGFibGUgKHR5cGU9My9jb2RlPTMpIF0gSVAgW3R0bD02NCBpZD0yNjYxNSBpcGxl bj01NiBdCgpNYXggcnR0OiAwLjY2Mm1zIHwgTWluIHJ0dDogMC42NjJtcyB8IEF2ZyBydHQ6 IDAuNjYybXMKUmF3IHBhY2tldHMgc2VudDogMSAoMjhCKSB8IFJjdmQ6IDEgKDU2QikgfCBM b3N0OiAwICgwLjAwJSkKTnBpbmcgZG9uZTogMSBJUCBhZGRyZXNzIHBpbmdlZCBpbiAxLjAz IHNlY29uZHMKCi0tLQpyb290QHRlc3QtYW1kNjQ6fiAjIG5waW5nIC1jIDEgLS11ZHAgLXAg NTU1NSAtLWRhdGEtbGVuZ3RoIDEwMCAxOTIuMTY4LjE3OC4zCgpTdGFydGluZyBOcGluZyAw LjcuODAgKCBodHRwczovL25tYXAub3JnL25waW5nICkgYXQgMjAyMC0xMS0xNyAwNToxNCBD RVQKU0VOVCAoMC4wMDUxcykgVURQIDE5Mi4xNjguMTc4LjI5OjUzID4gMTkyLjE2OC4xNzgu Mzo1NTU1IHR0bD02NCBpZD01OTQwIGlwbGVuPTEyOApSQ1ZEICgwLjAxMzRzKSBJQ01QIFsx OTIuMTY4LjE3OC4zID4gMTkyLjE2OC4xNzguMjkgUG9ydCA1NTU1IHVucmVhY2hhYmxlICh0 eXBlPTMvY29kZT0zKSBdIElQIFt0dGw9NjQgaWQ9NTU1MzggaXBsZW49MTU2IF0KCk1heCBy dHQ6IDguMjY4bXMgfCBNaW4gcnR0OiA4LjI2OG1zIHwgQXZnIHJ0dDogOC4yNjhtcwpSYXcg cGFja2V0cyBzZW50OiAxICgxMjhCKSB8IFJjdmQ6IDEgKDE1NkIpIHwgTG9zdDogMCAoMC4w MCUpCk5waW5nIGRvbmU6IDEgSVAgYWRkcmVzcyBwaW5nZWQgaW4gMS4wNSBzZWNvbmRzCgot LS0Kcm9vdEB0ZXN0LWFtZDY0On4gIyBucGluZyAtYyAxIC0tdWRwIC1wIDU1NTUgLS1iYWRz dW0gMTkyLjE2OC4xNzguMwoKU3RhcnRpbmcgTnBpbmcgMC43LjgwICggaHR0cHM6Ly9ubWFw Lm9yZy9ucGluZyApIGF0IDIwMjAtMTEtMTcgMDU6MTUgQ0VUClNFTlQgKDAuMDA1MHMpIFVE UCAxOTIuMTY4LjE3OC4yOTo1MyA+IDE5Mi4xNjguMTc4LjM6NTU1NSB0dGw9NjQgaWQ9NDA1 NzIgaXBsZW49MjgKCk1heCBydHQ6IE4vQSB8IE1pbiBydHQ6IE4vQSB8IEF2ZyBydHQ6IE4v QQpSYXcgcGFja2V0cyBzZW50OiAxICgyOEIpIHwgUmN2ZDogMCAoMEIpIHwgTG9zdDogMSAo MTAwLjAwJSkKTnBpbmcgZG9uZTogMSBJUCBhZGRyZXNzIHBpbmdlZCBpbiAxLjA0IHNlY29u ZHMK --------------05F385D1AB609A11B19CC179 Content-Type: text/plain; charset=UTF-8; name="nping_rxcsum_on.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nping_rxcsum_on.txt" cm9vdEBnZW5lcmljOn4gIyBwZmN0bCAtc1IgOyBlY2hvIDsgaWZjb25maWcgdWUwCkRpc2Fi bGVkCgp1ZTA6IGZsYWdzPTg4NDM8VVAsQlJPQURDQVNULFJVTk5JTkcsU0lNUExFWCxNVUxU SUNBU1Q+IG1ldHJpYyAwIG10dSAxNTAwCiAgICAgICAgb3B0aW9ucz04MDAwOTxSWENTVU0s VkxBTl9NVFUsTElOS1NUQVRFPgogICAgICAgIGV0aGVyIGI4OjI3OmViOjU1OjdlOjcwCiAg ICAgICAgaW5ldCAxOTIuMTY4LjE3OC4zIG5ldG1hc2sgMHhmZmZmZmYwMCBicm9hZGNhc3Qg MTkyLjE2OC4xNzguMjU1CiAgICAgICAgbWVkaWE6IEV0aGVybmV0IGF1dG9zZWxlY3QgKDEw MGJhc2VUWCA8ZnVsbC1kdXBsZXg+KQogICAgICAgIHN0YXR1czogYWN0aXZlCiAgICAgICAg bmQ2IG9wdGlvbnM9Mjk8UEVSRk9STU5VRCxJRkRJU0FCTEVELEFVVE9fTElOS0xPQ0FMPgoK LS0tCnJvb3RAdGVzdC1hbWQ2NDp+ICMgbnBpbmcgLWMgMSAtLXVkcCAtcCA1NTU1IDE5Mi4x NjguMTc4LjMKClN0YXJ0aW5nIE5waW5nIDAuNy44MCAoIGh0dHBzOi8vbm1hcC5vcmcvbnBp bmcgKSBhdCAyMDIwLTExLTE3IDA1OjE4IENFVApTRU5UICgwLjAwNTBzKSBVRFAgMTkyLjE2 OC4xNzguMjk6NTMgPiAxOTIuMTY4LjE3OC4zOjU1NTUgdHRsPTY0IGlkPTM2MjAyIGlwbGVu PTI4ClJDVkQgKDAuMDA1OHMpIElDTVAgWzE5Mi4xNjguMTc4LjMgPiAxOTIuMTY4LjE3OC4y OSBQb3J0IHVucmVhY2hhYmxlICh0eXBlPTMvY29kZT0zKSBdIElQIFt0dGw9NjQgaWQ9NTU1 MzkgaXBsZW49NTYgXQoKTWF4IHJ0dDogMC42NzJtcyB8IE1pbiBydHQ6IDAuNjcybXMgfCBB dmcgcnR0OiAwLjY3Mm1zClJhdyBwYWNrZXRzIHNlbnQ6IDEgKDI4QikgfCBSY3ZkOiAxICg1 NkIpIHwgTG9zdDogMCAoMC4wMCUpCk5waW5nIGRvbmU6IDEgSVAgYWRkcmVzcyBwaW5nZWQg aW4gMS4wMyBzZWNvbmRzCgotLS0Kcm9vdEB0ZXN0LWFtZDY0On4gIyBucGluZyAtYyAxIC0t dWRwIC1wIDU1NTUgLS1kYXRhLWxlbmd0aCAxMDAgMTkyLjE2OC4xNzguMwoKU3RhcnRpbmcg TnBpbmcgMC43LjgwICggaHR0cHM6Ly9ubWFwLm9yZy9ucGluZyApIGF0IDIwMjAtMTEtMTcg MDU6MTggQ0VUClNFTlQgKDAuMDA1MHMpIFVEUCAxOTIuMTY4LjE3OC4yOTo1MyA+IDE5Mi4x NjguMTc4LjM6NTU1NSB0dGw9NjQgaWQ9NTkwNzkgaXBsZW49MTI4ClJDVkQgKDAuMDA1OXMp IElDTVAgWzE5Mi4xNjguMTc4LjMgPiAxOTIuMTY4LjE3OC4yOSBQb3J0IDU1NTUgdW5yZWFj aGFibGUgKHR5cGU9My9jb2RlPTMpIF0gSVAgW3R0bD02NCBpZD01NTU0MCBpcGxlbj0xNTYg XQoKTWF4IHJ0dDogMC43OTltcyB8IE1pbiBydHQ6IDAuNzk5bXMgfCBBdmcgcnR0OiAwLjc5 OW1zClJhdyBwYWNrZXRzIHNlbnQ6IDEgKDEyOEIpIHwgUmN2ZDogMSAoMTU2QikgfCBMb3N0 OiAwICgwLjAwJSkKTnBpbmcgZG9uZTogMSBJUCBhZGRyZXNzIHBpbmdlZCBpbiAxLjA2IHNl Y29uZHMKCi0tLQpyb290QHRlc3QtYW1kNjQ6fiAjIG5waW5nIC1jIDEgLS11ZHAgLXAgNTU1 NSAtLWJhZHN1bSAxOTIuMTY4LjE3OC4zCgpTdGFydGluZyBOcGluZyAwLjcuODAgKCBodHRw czovL25tYXAub3JnL25waW5nICkgYXQgMjAyMC0xMS0xNyAwNToxOCBDRVQKU0VOVCAoMC4w MDUwcykgVURQIDE5Mi4xNjguMTc4LjI5OjUzID4gMTkyLjE2OC4xNzguMzo1NTU1IHR0bD02 NCBpZD05Mzg0IGlwbGVuPTI4CgpNYXggcnR0OiBOL0EgfCBNaW4gcnR0OiBOL0EgfCBBdmcg cnR0OiBOL0EKUmF3IHBhY2tldHMgc2VudDogMSAoMjhCKSB8IFJjdmQ6IDAgKDBCKSB8IExv c3Q6IDEgKDEwMC4wMCUpCk5waW5nIGRvbmU6IDEgSVAgYWRkcmVzcyBwaW5nZWQgaW4gMS4w NyBzZWNvbmRzCg== --------------05F385D1AB609A11B19CC179 Content-Type: text/plain; charset=UTF-8; name="nping_rxcsum_on_head.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nping_rxcsum_on_head.txt" cm9vdEBnZW5lcmljOn4gIyB1bmFtZSAtYQpGcmVlQlNEIGdlbmVyaWMgMTMuMC1DVVJSRU5U IEZyZWVCU0QgMTMuMC1DVVJSRU5UICMwIGI5NDAzZDdhYWU4LWMyNTQwNzEobWFpbik6IFRo dSBPY3QgMjkgMTA6Mzg6MjkgVVRDIDIwMjAgICAgIHJvb3RAcmVsZW5nMS5ueWkuZnJlZWJz ZC5vcmc6L3Vzci9vYmovdXNyL3NyYy9hcm02NC5hYXJjaDY0L3N5cy9HRU5FUklDICBhcm02 NApyb290QGdlbmVyaWM6fiAjIHBmY3RsIC1zUiA7IGVjaG8gOyBpZmNvbmZpZyB1ZTAKRGlz YWJsZWQKCnVlMDogZmxhZ3M9ODg0MzxVUCxCUk9BRENBU1QsUlVOTklORyxTSU1QTEVYLE1V TFRJQ0FTVD4gbWV0cmljIDAgbXR1IDE1MDAKICAgICAgICBvcHRpb25zPTgwMDA5PFJYQ1NV TSxWTEFOX01UVSxMSU5LU1RBVEU+CiAgICAgICAgZXRoZXIgYjg6Mjc6ZWI6NTU6N2U6NzAK ICAgICAgICBpbmV0IDE5Mi4xNjguMTc4LjMgbmV0bWFzayAweGZmZmZmZjAwIGJyb2FkY2Fz dCAxOTIuMTY4LjE3OC4yNTUKICAgICAgICBtZWRpYTogRXRoZXJuZXQgYXV0b3NlbGVjdCAo MTAwYmFzZVRYIDxmdWxsLWR1cGxleD4pCiAgICAgICAgc3RhdHVzOiBhY3RpdmUKICAgICAg ICBuZDYgb3B0aW9ucz0yOTxQRVJGT1JNTlVELElGRElTQUJMRUQsQVVUT19MSU5LTE9DQUw+ CgotLS0Kcm9vdEB0ZXN0LWFtZDY0On4gIyBucGluZyAtYyAxIC0tdWRwIC1wIDU1NTUgMTky LjE2OC4xNzguMwoKU3RhcnRpbmcgTnBpbmcgMC43LjgwICggaHR0cHM6Ly9ubWFwLm9yZy9u cGluZyApIGF0IDIwMjAtMTEtMTcgMDU6MjQgQ0VUClNFTlQgKDAuMDA1MHMpIFVEUCAxOTIu MTY4LjE3OC4yOTo1MyA+IDE5Mi4xNjguMTc4LjM6NTU1NSB0dGw9NjQgaWQ9MjcyMDIgaXBs ZW49MjgKUkNWRCAoMC4wMDYzcykgSUNNUCBbMTkyLjE2OC4xNzguMyA+IDE5Mi4xNjguMTc4 LjI5IFBvcnQgdW5yZWFjaGFibGUgKHR5cGU9My9jb2RlPTMpIF0gSVAgW3R0bD02NCBpZD02 MzY1OCBpcGxlbj01NiBdCgpNYXggcnR0OiAxLjI0M21zIHwgTWluIHJ0dDogMS4yNDNtcyB8 IEF2ZyBydHQ6IDEuMjQzbXMKUmF3IHBhY2tldHMgc2VudDogMSAoMjhCKSB8IFJjdmQ6IDEg KDU2QikgfCBMb3N0OiAwICgwLjAwJSkKTnBpbmcgZG9uZTogMSBJUCBhZGRyZXNzIHBpbmdl ZCBpbiAxLjAyIHNlY29uZHMKCi0tLQpyb290QHRlc3QtYW1kNjQ6fiAjIG5waW5nIC1jIDEg LS11ZHAgLXAgNTU1NSAtLWRhdGEtbGVuZ3RoIDEwMCAxOTIuMTY4LjE3OC4zCgpTdGFydGlu ZyBOcGluZyAwLjcuODAgKCBodHRwczovL25tYXAub3JnL25waW5nICkgYXQgMjAyMC0xMS0x NyAwNToyNCBDRVQKU0VOVCAoMC4wMDUwcykgVURQIDE5Mi4xNjguMTc4LjI5OjUzID4gMTky LjE2OC4xNzguMzo1NTU1IHR0bD02NCBpZD02NDc4NiBpcGxlbj0xMjgKUkNWRCAoMC4wMDU4 cykgSUNNUCBbMTkyLjE2OC4xNzguMyA+IDE5Mi4xNjguMTc4LjI5IFBvcnQgNTU1NSB1bnJl YWNoYWJsZSAodHlwZT0zL2NvZGU9MykgXSBJUCBbdHRsPTY0IGlkPTU2NTQyIGlwbGVuPTE1 NiBdCgpNYXggcnR0OiAwLjc0MW1zIHwgTWluIHJ0dDogMC43NDFtcyB8IEF2ZyBydHQ6IDAu NzQxbXMKUmF3IHBhY2tldHMgc2VudDogMSAoMTI4QikgfCBSY3ZkOiAxICgxNTZCKSB8IExv c3Q6IDAgKDAuMDAlKQpOcGluZyBkb25lOiAxIElQIGFkZHJlc3MgcGluZ2VkIGluIDEuMDUg c2Vjb25kcwoKLS0tCnJvb3RAdGVzdC1hbWQ2NDp+ICMgbnBpbmcgLWMgMSAtLXVkcCAtcCA1 NTU1IC0tYmFkc3VtIDE5Mi4xNjguMTc4LjMKClN0YXJ0aW5nIE5waW5nIDAuNy44MCAoIGh0 dHBzOi8vbm1hcC5vcmcvbnBpbmcgKSBhdCAyMDIwLTExLTE3IDA1OjI0IENFVApTRU5UICgw LjAwNTBzKSBVRFAgMTkyLjE2OC4xNzguMjk6NTMgPiAxOTIuMTY4LjE3OC4zOjU1NTUgdHRs PTY0IGlkPTMyMDQ2IGlwbGVuPTI4CgpNYXggcnR0OiBOL0EgfCBNaW4gcnR0OiBOL0EgfCBB dmcgcnR0OiBOL0EKUmF3IHBhY2tldHMgc2VudDogMSAoMjhCKSB8IFJjdmQ6IDAgKDBCKSB8 IExvc3Q6IDEgKDEwMC4wMCUpCk5waW5nIGRvbmU6IDEgSVAgYWRkcmVzcyBwaW5nZWQgaW4g MS4wNyBzZWNvbmRzCg== --------------05F385D1AB609A11B19CC179--