From owner-freebsd-arm@freebsd.org Wed Jul 20 14:10:58 2016 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 67378B9E4B9 for ; Wed, 20 Jul 2016 14:10:58 +0000 (UTC) (envelope-from stevek@juniper.net) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0100.outbound.protection.outlook.com [104.47.40.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "Microsoft IT SSL SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 184231572 for ; Wed, 20 Jul 2016 14:10:57 +0000 (UTC) (envelope-from stevek@juniper.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=rb7CI19olELRtGkMTsvOUIZUMs3rKAIHaYJUH8S4BVw=; b=RymXSyF8uu42QNmUdXVOEAhkwc0rH3ZBdmlkZr02Dp39OePL0Q6KN7dmMTZ0NYGcX2g1uWOBb6HrEaI3A5iZxDUoAI16NkMYAl0al2QMt8kqYxKntPTmqYCsgas0Mfp5DNWvB/CxB+31X4FwktOoz766byDbWDlr1rP6Hg3tqmE= Received: from CY1PR05CA0006.namprd05.prod.outlook.com (10.166.186.144) by CO2PR05MB587.namprd05.prod.outlook.com (10.141.197.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.5; Wed, 20 Jul 2016 14:10:50 +0000 Received: from BY2FFO11OLC016.protection.gbl (2a01:111:f400:7c0c::155) by CY1PR05CA0006.outlook.office365.com (2a01:111:e400:c5a4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.5 via Frontend Transport; Wed, 20 Jul 2016 14:10:49 +0000 Authentication-Results: spf=softfail (sender IP is 66.129.239.18) smtp.mailfrom=juniper.net; freebsd.org; dkim=none (message not signed) header.d=none;freebsd.org; dmarc=none action=none header.from=juniper.net; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.18 as permitted sender) Received: from p-emfe01a-sac.jnpr.net (66.129.239.18) by BY2FFO11OLC016.mail.protection.outlook.com (10.1.15.61) with Microsoft SMTP Server (TLS) id 15.1.523.9 via Frontend Transport; Wed, 20 Jul 2016 14:10:50 +0000 Received: from localhost (172.25.4.217) by p-emfe01a-sac.jnpr.net (172.24.192.21) with Microsoft SMTP Server id 14.3.123.3; Wed, 20 Jul 2016 07:10:27 -0700 Date: Wed, 20 Jul 2016 10:12:07 -0400 From: Steve Kiernan To: Jia-Shiun Li CC: "Jukka A. Ukkonen" , "freebsd-arm@freebsd.org" Subject: Re: Random number generator on rpi Message-ID: <20160720101207.12d52ae7@juniper.net> In-Reply-To: References: <5d8ec4d4-4c36-139d-6102-4fdb200fdf65@gmail.com> <790435eb-f3fc-8d4c-4231-e3cfbf93157b@gmail.com> <20160718115455.10fa95bb@juniper.net> Organization: Juniper Networks Inc. X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd10.3) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/hxGt/zePnr_NfQOfMP3yOp7"; protocol="application/pgp-signature" X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.129.239.18; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(189002)(199003)(24454002)(377454003)(68736007)(4326007)(50226002)(76506005)(36756003)(305945005)(19273905006)(356003)(6806005)(104016004)(81166006)(57986006)(2906002)(81156014)(512954002)(105596002)(69596002)(33646002)(2950100001)(19300405004)(86362001)(87936001)(1076002)(7846002)(110136002)(106466001)(92566002)(189998001)(586003)(19580405001)(16799955002)(19580395003)(97736004)(77096005)(84326002)(1411001)(8676002)(15395725005)(15975445007)(8936002)(93886004)(50986999)(76176999)(39210200001)(562404015)(563064011); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR05MB587; H:p-emfe01a-sac.jnpr.net; FPR:; SPF:SoftFail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC016; 1:wQoTUerwyQFnkxXHSKNy/qroLRBWgUsE91UmA2WxVCNg50GSTicTDGT1cfN/2JNCF6WUdi23hGOFTRMFRWK+7NDHTPedOBD785h7g0yWQmzFakuXcTEGaAmOajGrYYyJRx14njTGeyvUzRsbZgIPrkOz5cV2dUNDfGuSni9WL+3tJxo17vUdCnr8q2/vKFSeTbpO36nx9LX0QVm2JOJupNZ5tc+kuUVPgrzUAPemkMosdW09ch3HjHNRaq7ekdfmrHcjHYoe1ZPraWR3R+lDFBD1WSqllxlQl5I9MmQPv/IYGYJ8MD0K3A7xTnXQTY3mvMzsCNUqq2Fim+m0nHsXEoLGRwmnHBVY7LUBe/2evuNOewZHHCxHFptRZ5dwegrNzw+cilBr7ziiN/I8JQAC6CfWRR05jdHLPrlQOwZCPxhIkS33YbBC0+hqA08KvIPd9P0Gipq8PE6QJdTqW32ruTG5EeLT/6ypw6fiSUDRNyRSLWQHPwgLTOatf6b65RkmU56mVVJjwbmw0i1ubxj1/w6aMnyphVy9FqIU6KYILC1TunnXfm/GVhOX1WShzXXk X-MS-Office365-Filtering-Correlation-Id: 8d21a343-89eb-4f4b-0764-08d3b0a7a78d X-Microsoft-Exchange-Diagnostics: 1; CO2PR05MB587; 2:kA8tVVqXo+iUnjf13vvaW96Zo3O3ejlFYwMVOrZpnETqKA23kNnvzHDSu80g7qHSLDmImj0F5M9UBaIe25uXxQkVajDuYGttBDM724av9UymhE6jq0qVy2bXmreJPi+/FpTRVDD9WE+RkS+TW5wN1kvgLcjkwWF/EOk4IiOsTR9VWiTJnVH4f5vbR4PZ9NPb; 3:QDzhLAgPV1J07a7/pObE2CYWHGlwP+HhJArEw17QWLWU7OOsizRQvJZ3XnbKA+xPEOqQ1exOlcpy4+Rhoud5Am/dHr1RunfXiQtdlRPgCF9m0XT98UL/07hVR3CdS4PVekBBAjq+8JEI/83fZQuqh6ZiASLco8c0GRIuNVBQDtNgZVdiElI1y8qXzc6wNArMWRPfBp1quy9T0TUuXnixpOOlzC+WnzlRkL5VA/wzArk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO2PR05MB587; X-Microsoft-Exchange-Diagnostics: 1; CO2PR05MB587; 25:YgCCWT8uo4WSzl3px/ACfuDSA0LqVwu12pZu86MkytDy5UC6WW/TqlhCfqDCJyVAvJ7BsTc338cBUa5hOqS7FxuO4CUpe/JgPQhMKotiJ19qQmw1DBN6qg4Sz/7bToEcvVB2wIx4cIIZmdAUy5DXetp5mGqvRvDS/pZB9P5xwdW+/QbN49Z3RzwQJ08L78i/5FmuKHMoOA2QLYmF6OEqRJ3kGGkeVxllOcCLPgPqXl4Tu/PPKItFkrprhSa1ZPLyxm9cgmzYpXIcwgMW+AAOxQqn0AcjzyntM/tk+O0dBSe1YBI1aGOG2pqUq/D8An9BQlJIbUeUQVuss7hh/84+vi+/J8T75iFiBTELzCb0Ik7GE44QFu94pJztLai2Mu2tAfgFOEGcLMViHF9jF/+Z6IDGvUP+0zZhbiJkAP4leC9L1aCl//2LH2lXeMycNwUZ5PnfWqu6hk5XvnPA6weZ5/dCi/v99EpOOfjnUUugTaMVbNuLfgQjYCrmcm59hX6SIDL4gbE/9OSKREF/hrwDo0+nff93GhnvGOxJy9CXSMxyFpJZubVFjXzEo+d+0xpeXBq/MWZrsVpf4XSjmQHn6boJP5qxvwBUK7BuJ+HH4CtSAoPhUl8FVthaABf6Tbg1kMKt3LTSMPb5Q1cHprtIqbQZmzSqFkCFxY+gXQNEhzxMnBdW52zwbxqae7x4z84YJtwqdEvfZuyVLoQycezBe4PFpsnbm4feqtz3Ul+H/6p2XLGzyzBV5Ekthct+ZvFTD08A0qeD8vGgKY/c8Vnoh7dq/CcLxddpBdTYc10LHhmKXCzbepIBErkZMjrGbzumds+W3Qz3mRCW1XkjAmqLLX1xeUntc02+pq2SxIz1CBEaG5ZJ/oxipAflDGU5SVxj8WvNCs7Qg9tkdB1eEyX1KkPnYI6XDYWDAWUDh8fmytg= X-Microsoft-Exchange-Diagnostics: 1; CO2PR05MB587; 31:4OjZdseNdj71mowzhqCg26XnC3LC7F5u4s1YUCcgYdmCaFrGnTv4MVcbelrJeQFbcMZIQkUsjUrPYO550e/I0RSCrEXJLfm+29bFvT63cu6MyMqs3iq4fWsp46Zs+jfoxW11DObxR8nO9IHp8a3LbVRxAUFxWAYsOcv33QXHuKY16g36ozKxJ093OXbsLYscgJZYaCcmSzCKoJn9hZgjbw==; 20:fQW9L5q8AFcfWxeEZ90Xzj8yny8CiLOt4/OZ1H7AfEEs9OmicLzC3Dsd+8/r4HJI42GMAtFD/Y34nu+MKAZ9RjkwFeVEc02K3bH4QvrPFRU7pGUWhlfTAUIJdtkaqNk47jqfqWZ/GRwjZRL90ZGg8BNNUapNLVCydmIBr9LIJpNLIlbexWreYyl+SLvjjlQhkHke0ltFoCmKYAPl/VAOzxCPeIFJmzKYh/R//JrNpqFyWBB0DIwyJgUf/m8HG2bz+ony8JQK1BzNiP5xrDbMRKNg1h+wmSgx2HIrRIDI6wuYaJtrXvH5hf/uCmTbbaEvIK0woISyRc/9eniV3plvhe2pVw3OqGN8zC4jWTU+4c55mwFIKz76H+L+JlDyqYBnKkHVDq343+5XM2O1UUN1CxDkZ4CEu8pLDJraS46orI71DtbYPBWci2EBEdyiv7BsQCJBUFDQGHuYMRRICZZKfx1680vcnC36AMlmgM7r8m9rN72Dj8q7AARPCmBJKJss X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(138986009662008); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13018025)(8121501046)(13024025)(13023025)(13015025)(13017025)(5005006)(10201501046)(3002001)(6055026); SRVR:CO2PR05MB587; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB587; X-Microsoft-Exchange-Diagnostics: 1; CO2PR05MB587; 4:xGcAc6Bf4Rpj46PGdTMefwFIYmW5inPoARlVymmnSKQBOow06E1pqnTK1YO4IgeGfNgSk/WUC4DC+GAY0wEj3jSH4hmIot/d1aB73vxtdzeABFwqlF8YOP/mxSr18kI+EDMh+w7CjB40sAOCyp2CtLpq/1nm6ApfPN3NGxA46l4tJX8+JXKZUnlNM6BEjPW4yIuNXanPpTGZQwk9aQDp2y/86Xp/m7iiMBPdDux4asy6STpA4Y4e/zv44GXxOGEah6zhhG0iW6MA86L2nD4UX5GRcXIhMDG+c9b9PEouQX43vKwCXzYk7g1UWqVJPmNnvzL1JCXr3RRS/C1tzj5WTADM+CedJbpCCtlHNByzZiuyszhSJYpEjY5NoGa+PK2XkcMITSzgeO3wv+LTV8prHqxCUHn0pYsYpeiPAW2e83ImGxstt4ZV29mPd3O68U3f4Sqjnv3/HNgjWIot9ksLIeoHUfG49YvbCBGtaSJA+im/35mH4K8ol2Ak9nQxaRoDxC+SQL//LTZDzB6//zDHUQ== X-Forefront-PRVS: 000947967F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR05MB587; 23:m0vxFpftBe13nKRIdLKOJp+pAEb2bXoTWygJLxWdPl?= =?us-ascii?Q?WSFuUJMpBIdWOUz7TZe4VPMQEl1qKb4jNfF8TATjQnWFG66SyZesDTFsv/0D?= =?us-ascii?Q?9vKLVmGeVRAQBJxwnkPY25GZyrg/3gsPc03Gv62YDXt1QJMWeMl/5AyT9SOL?= =?us-ascii?Q?F4I5ZzeSOEMkbjkufgbWUzMd81SdNKaXvgxD77/kA3IDnrt6YvxmnNyoIeHi?= =?us-ascii?Q?DxnHLxOEQepSXe3AV1bDgutl9V0nuf5+t7G6mL/hDPDPVJdWKDKhU6PriJNH?= =?us-ascii?Q?590nlO6ppG9ddAvPxDBWW8koKV6FL2iLN7CWhsvlEUS/WymJ1WnumS9N3B2Q?= =?us-ascii?Q?bsucy2Z4dkkfQV8c8ywGRefMbI2vrxWeyIx7rvGglOYQR+AekHRacMRjvNhG?= =?us-ascii?Q?7m0t67MeY7NrWlPMkATXnafC2Xg48L6X5qIV+yQRpKc/bO5JXjNvjE/h32k9?= =?us-ascii?Q?mCY3OoqbGfQ0nMP1vmesVImUZmQgPN8JJHp4cRXKpTGSxD27QE6MhSf2lekE?= =?us-ascii?Q?l9JBvip2yUERhcjiW4mYit6q2LQTIWAR7Pj3peTVhOqOvPGCUrMBqu1OAvgK?= =?us-ascii?Q?6iFBddEYMbgKttWi20yTj3EdTyXfghIQZ35hoV5ntuRmLdX/QmJCkEu0Nt8X?= =?us-ascii?Q?in9yBS1vUAzpQhZPqovuTigrLzeYmCy0B86+2X4/U/D7jTCdZm1lwNzAzCYY?= =?us-ascii?Q?RPbjZI27G4UrgKaVrpy2yU7UfEguRnMoButFmAmAhf6bplMD1aToPNsSq82X?= =?us-ascii?Q?iXa4TLpfOiBGoAwvs611UdISWLH6+JhnM98F4owtGPQjzb3UlaxRI2GbDEHj?= =?us-ascii?Q?E7Q5o85hAbCJQPX7MTU8P3+Zeb8uzEfhpmAAmAmFr3CZB3iwFTB4yxMSgL0T?= =?us-ascii?Q?2+6lEhpY1Xl4dV6KsNQtDxpZDQ6Lnu7GxC31CEuu3jIA2gxWCoQVgBHnN9Ga?= =?us-ascii?Q?Dbl+Rk4WRRCWGWfXTCRXHqPn2Emih8RKyJy93xEvkAsi5/Mm3Vwno2qQowCa?= =?us-ascii?Q?bsLQ4AcfhgeJZ76DvCVFwLs0ayiRGjRvJ+2J+5JkmmhVQPgY986DmduMB9Py?= =?us-ascii?Q?VZkm5TveHzYYA3gGj4BDAithTPty8ZBDd+i5MYD5K4EdsXZ8le17Wv6yU6JL?= =?us-ascii?Q?mhg8lkheS1erJqcQmSF5uNv7JYdw27zfRvif5+ipeLRTtxfKpLa0a20sJVhX?= =?us-ascii?Q?+Xx3hnlKsS1NfKSiS/cfJrhTUGte2hykCep2+Ce3FsJDd/85gXk7dufNbU6M?= =?us-ascii?Q?mDY/xSPNg7tHbQzlA+oO/Dq0dmw2Pj085Iew0ZGGgFN4roa0Ug30sfqU5h1T?= =?us-ascii?Q?bS4swf2GUrEH+dYeZ2WHDQPYoelL7p8jS1Sr3hsSsW?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR05MB587; 6:IEQxgayqooOgp2pmqhCSni3/ZugXp38KVeJoggWkr/1NfmZr6GIeIGb1F4cORNlCdlTQyjFY52dq200toVcyNDt72p96CCrNTjHgLX/kpY1CCYXBF3RR6d/vgn3lVUi2jEZZy9fukehmqisGk7fMsSzqG53ukCrpE7TgOqzLtBuhJzsbZgxag2CYCTpDrqh0P/ALvBUQDkbeYKVZT9F2zUmj28XftWfBrDXm19RMbc5BrLSih6bStnif8YUaNJVrUpY7oUB+rC1Bh+r+d3k83UONNgvx0gAw9Ypa4QpPowrzd1s7EJnJeimHkF8C9MwG9zUyLnJf3O5fwzlUs8Bb/A==; 5:acTP2PqzbPhA0otrfP/7zdJc3yuLla3MZNF+guhbok+ZFDNsLXT1IJFyihx8GsCUrYkfXSIld2GnXrjrD+J+oZWs/9fAIq9/pH792UCCte+CXYnZY0jczgTNUmG13kv9pH/CKlxMQfCIBZk6uha87g==; 24:2T4IzhAyt38OlVHYEMVwyeF61/Gxt3OaKkrkaqvCJSsorvQAX6Zm7ainXPO5oBUqK/mkLOcY5J1pRZ2bF/Bf35nWx88C4WCiMQpxmPONeVI=; 7:AXxFqE7GnlI5kJiflitywBgIh7jaeqByCCIxdtU6WpuLXxm9WeApeZ4r1Y8KePF2ZyFIbLffaT/3p+kgYcaFALnc/glgzJy5o9y7DNFlh+J8dgQJoCngHSUxdPE2BAkMRL398Bw8mXtH+BiwkHIddEzSgRJfo16eABZxI7+arIXnpwHw9mAF1bWgOf+4rrFPQyru2+s9IawwS8CLBJtqDd3O25x1f4rx/2wThtkYbe+3PxqW5sZ8hPUtkk3swxx+ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2016 14:10:50.4252 (UTC) X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.18]; Helo=[p-emfe01a-sac.jnpr.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR05MB587 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 14:10:58 -0000 --Sig_/hxGt/zePnr_NfQOfMP3yOp7 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Wed, 20 Jul 2016 16:11:44 +0800 Jia-Shiun Li wrote: > On Mon, Jul 18, 2016 at 11:54 PM, Steve Kiernan wrot= e: >=20 > > > > You might want to see my RPi rng driver review up on Phabricator. > > It is interrupt driven, which keeps the CPU utilization down to a fract= ion > > of a percent, whereas using a callout or other method easily consumes m= uch > > more of the CPU. > > > > The review is here: > > https://reviews.freebsd.org/D6888 > > > > Note that for RBG (random bit generator) like the one in the RPi, they = are > > not really RNGs themselves but random bit sources that must be processed > > by other algorithms to generate random numbers. So even if one were to = grab > > the data to test for "randomness", one would need to not assume the rnd= test > > would necessarily be appropriate, since the values returned by the RBG = are > > not to be used directly as random numbers without post-processing. > > > > -Steve > > =20 >=20 >=20 > I saw it committed yesterday. Great & thanks! >=20 > BTW does it have any other document other than > http://pastehtml.com/view/crkxyohmp.rtxt > as mentioned in > https://www.raspberrypi.org/forums/viewtopic.php?f=3D29&t=3D19334&start= =3D275 ? >=20 > I cannot find any other source of info other than linux source and the > above link... There's not a lot of information available, but I know from working on other Broadcom SoCs that have the same register setup for the RBG, it appears to be based on the RBG100 design. I validated the settings from empirical testing and what I know about the RBG100. For example, the BCM56340 enterprise switching SoC has the same RBG in it, except the one on the RPi appears to have a smaller FIFO. On the BCM56340, the FIFO threshold default value is number of 32-bit words, while on the RPi it appears to be number of bytes, but everything else is the same. On the RPi it fires the interrupt when the number of words available in the status register only has 4 32-bit words, instead of 16 that is seen on the switching SoC version. -Steve --Sig_/hxGt/zePnr_NfQOfMP3yOp7 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXj4a3AAoJEC6j1WNlVsksrYkQAK9TwO9SIcfMifKlJHG5b/bi h5WLzTupvmLw0dldwCpDzQ+/+7+nxPBTUGov7Ql8h0w5VJS0yoZWM74iCkoMXGab y/7gLsI/Lmh57bUNzTz8T4uzGzlhLGLeKWSbMpYOLYku5NHw1P9uXP/IrgEM5s04 wOwCMVe95gZZ6pwbwfCBAlRGig2NTfyI5QogklXOwbsOclSIaDe/qNOB8w+ICfiR p4oNhXUKHIJCIiolVcSP8KnqMb+s+wb+99UJ+q38MsegA1z/bkS10Ta4Qo+fBD7z i+zlV1vint+Gvbbz4ST+K58HjD/QJAU80uC2MmtlSlvGiCPSI9uSLRK8ph+xMc6j tu/cAUAduIUTU4BN1ILTwV8YHtn/gA1F5M8BnRLGKJTM1Pm48xv71sh3L64UzsGO 0UA7eiL0FVUv/APb6sAawd7pe0EA8JRdjD0O9LfMy3SyH7hOUCINkzPI9p6hgsYR FPgzBBPKXLw1eIh5Ke8o5wubCeWOcoQ1ikwYFQ0bllk6RDbXVQNoS3WHtllhWJOY 050Yuqwqww8HiRoxxCr1zMy5HoDszJxsRZGuL7i6gRF9a7yOG/pcqWBB5848O7R2 WdsOzwI8M7t2ZUfNt1yERixFufaxtuINRPo45NWvytpBX2xWSSgxlgP42g3Iu0CD 5l/4RUODPruTtkbDckFh =8xdT -----END PGP SIGNATURE----- --Sig_/hxGt/zePnr_NfQOfMP3yOp7--