Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <alexy.kot.all@gmail.com>) id 1Wn4Qu-0001AY-Iw
	for bitcoin-development@lists.sourceforge.net;
	Wed, 21 May 2014 11:11:40 +0000
Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.220.169 as permitted sender)
	client-ip=209.85.220.169; envelope-from=alexy.kot.all@gmail.com;
	helo=mail-vc0-f169.google.com; 
Received: from mail-vc0-f169.google.com ([209.85.220.169])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1Wn4Qs-000247-HK
	for bitcoin-development@lists.sourceforge.net;
	Wed, 21 May 2014 11:11:40 +0000
Received: by mail-vc0-f169.google.com with SMTP id ij19so2310766vcb.28
	for <bitcoin-development@lists.sourceforge.net>;
	Wed, 21 May 2014 04:11:33 -0700 (PDT)
X-Received: by 10.52.13.41 with SMTP id e9mr7795203vdc.21.1400670692893; Wed,
	21 May 2014 04:11:32 -0700 (PDT)
MIME-Version: 1.0
Sender: alexy.kot.all@gmail.com
Received: by 10.58.211.135 with HTTP; Wed, 21 May 2014 04:10:52 -0700 (PDT)
In-Reply-To: <lli161$81k$1@ger.gmane.org>
References: <ll29m5$r6c$1@ger.gmane.org> <ll5ems$6pt$1@ger.gmane.org>
	<09E70F88-DA1C-4E3F-9342-547FB8794EAB@heliacal.net>
	<CALDj+BZrn6TBjdVjGkc293SLAAcqzni+-7daFpZAq5gSaL1cKw@mail.gmail.com>
	<CAJHLa0OaAKTLR2hL6kReBFcD6FoXYV9AoqMbn0WwqYgtTNtQKw@mail.gmail.com>
	<CALDj+BY2jEL6-NwGdrh3wdcmjW_7tEDDxmyiP6woOxCg8bMQKw@mail.gmail.com>
	<ll7hps$8gs$1@ger.gmane.org>
	<CALDj+BYqMDxv+YYcrEzaZH+qFqUsme3UYuYh5Es7C6FbMZCtpg@mail.gmail.com>
	<ll7l9t$m82$1@ger.gmane.org>
	<CALDj+BamyawuTgDhzM0AyB5LWNPb_xY_BQeDHqs9t9WLPibiCQ@mail.gmail.com>
	<779f3ed92d29cfd6922a92c5d60d3f9d@webmail.mckay.com>
	<CAJHLa0O_F3MJc1KJJn+L6AjT-wa8sPunibb4rfWGGUWYSOkVOg@mail.gmail.com>
	<0f40d061612966ff809fff04d3f698eb@webmail.mckay.com>
	<a9d48b2474c87e6d9b80b567b782ecfa@webmail.mckay.com>
	<CALDj+BZ8U29qKywO=Ejxx-WtKGvEyUg5RoYZb=j07oAOSq57yA@mail.gmail.com>
	<lli161$81k$1@ger.gmane.org>
From: Alex Kotenko <alexykot@gmail.com>
Date: Wed, 21 May 2014 12:10:52 +0100
X-Google-Sender-Auth: KH4y4c6cFK7XvbAeDXytdf8tHIo
Message-ID: <CALDj+BZ-F31aWURYX_SF+aYxfz2KxeynspLACzBxbmXnCUx4xw@mail.gmail.com>
To: Andreas Schildbach <andreas@schildbach.de>
Content-Type: multipart/alternative; boundary=20cf302efaf618e9f404f9e70fce
X-Spam-Score: -0.3 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(alexy.kot.all[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	0.3 HTML_FONT_FACE_BAD     BODY: HTML font face is not a word
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1Wn4Qs-000247-HK
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] DNS seeds unstable
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 21 May 2014 11:11:40 -0000

--20cf302efaf618e9f404f9e70fce
Content-Type: text/plain; charset=UTF-8

Misunderstanding. Both seeds are available on port 53 via BIND forwarding.
Just also each DNS seed is available separately on it's own port.


Best regards,
Alex Kotenko


2014-05-21 12:03 GMT+01:00 Andreas Schildbach <andreas@schildbach.de>:

> Great, thanks for this contribution!
>
> Do you plan to have your seeds reachable on port 53 eventually?
> Currently bitcoinj cannot deal with nonstandard ports I think.
>
>
> On 05/21/2014 11:23 AM, Alex Kotenko wrote:
> > okay, I've set it up with bind forwarding requests to two dnsseeds
> > running on separate ports. Though I see a problem with testnet DNS seed
> > itself. It runs, but somehow it only returns one IP address. Exactly
> > same DNS seeder looking for mainnet nodes is working fine.
> >
> > You can reach seeds through
> > mainnet seed:
> > dig @node.alexykot.me <http://node.alexykot.me> bitcoin-seed.alexykot.me
> > <http://bitcoin-seed.alexykot.me> A
> > or directly
> > dig -p 8353 @node.alexykot.me <http://node.alexykot.me>
> > bitcoin-seed.alexykot.me <http://bitcoin-seed.alexykot.me> A
> >
> > testnet seed
> > dig @node.alexykot.me <http://node.alexykot.me> testnet-seed.alexykot.me
> > <http://testnet-seed.alexykot.me> A
> > or directly
> > dig -p 18353 @node.alexykot.me <http://node.alexykot.me>
> > testnet-seed.alexykot.me <http://testnet-seed.alexykot.me> A
> >
> > So what can be the problem with testnet DNS seeder?
> >
> >
> > Best regards,
> > Alex Kotenko
> >
> >
> > 2014-05-20 1:50 GMT+01:00 Robert McKay <robert@mckay.com
> > <mailto:robert@mckay.com>>:
> >
> >     On Tue, 20 May 2014 01:44:29 +0100, Robert McKay wrote:
> >     > On Mon, 19 May 2014 19:49:52 -0400, Jeff Garzik wrote:
> >     >> On Mon, May 19, 2014 at 4:36 PM, Robert McKay <robert@mckay.com
> >     <mailto:robert@mckay.com>>
> >     >> wrote:
> >     >>> It should be possible to configure bind as a DNS forwarder.. this
> >     >>> can
> >     >>> be done in a zone context.. then you can forward the different
> >     >>> zones
> >     >>> to
> >     >>> different dnsseed daemons running on different non-public IPs or
> >     >>> two
> >     >>> different ports on the same IP (or on one single non-public IP
> >     >>> since
> >     >>> there's really no reason to expose the dnsseed directly daemon at
> >     >>> all).
> >     >>
> >     >> Quite the opposite.  dnsseed data rotates through a lot of
> addresses
> >     >> if available.  Using the bind/zone-xfer system would result in
> fewer
> >     >> total addresses going through to the clients, thanks to the
> addition
> >     >> of caching levels that the bind/zone-xfer system brings.
> >     >>
> >     >> That said, if the choice is between no-service and bind, bind it
> is
> >     >> ;p
> >     >
> >     > Setting it up as a zone forwarder causes each request to go through
> >     > to
> >     > the dnsseed backend for each request.
> >
> >     This stackoverflow describes a similar situation;
> >
> >     http://stackoverflow.com/questions/15338232/how-to-forward-a-subzone
> >
> >     you can additionally specify the port to forward too;
> >
> >     http://www.zytrax.com/books/dns/ch7/queries.html#forwarders
> >
> >     it should be possible to forward to different ports on 127.0.0.1 for
> >     each dnsseed instance.
> >
> >     Rob
> >
> >
> ------------------------------------------------------------------------------
> >     "Accelerate Dev Cycles with Automated Cross-Browser Testing - For
> FREE
> >     Instantly run your Selenium tests across 300+ browser/OS combos.
> >     Get unparalleled scalability from the best Selenium testing platform
> >     available
> >     Simple to use. Nothing to install. Get started now for free."
> >     http://p.sf.net/sfu/SauceLabs
> >     _______________________________________________
> >     Bitcoin-development mailing list
> >     Bitcoin-development@lists.sourceforge.net
> >     <mailto:Bitcoin-development@lists.sourceforge.net>
> >     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> >
> >
> >
> >
> >
> ------------------------------------------------------------------------------
> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> > Instantly run your Selenium tests across 300+ browser/OS combos.
> > Get unparalleled scalability from the best Selenium testing platform
> available
> > Simple to use. Nothing to install. Get started now for free."
> > http://p.sf.net/sfu/SauceLabs
> >
> >
> >
> > _______________________________________________
> > Bitcoin-development mailing list
> > Bitcoin-development@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> >
>
>
>
>
> ------------------------------------------------------------------------------
> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
> Instantly run your Selenium tests across 300+ browser/OS combos.
> Get unparalleled scalability from the best Selenium testing platform
> available
> Simple to use. Nothing to install. Get started now for free."
> http://p.sf.net/sfu/SauceLabs
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>

--20cf302efaf618e9f404f9e70fce
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:courier =
new,monospace;color:#003300">Misunderstanding. Both seeds are available on =
port 53 via BIND forwarding.</div><div class=3D"gmail_default" style=3D"fon=
t-family:courier new,monospace;color:#003300">

Just also each DNS seed is available separately on it&#39;s own port.</div>=
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra"><br clear=
=3D"all"><div><div dir=3D"ltr"><span style=3D"color:rgb(0,51,0);font-family=
:&#39;courier new&#39;,monospace">Best regards,=C2=A0</span><div>

<div><div style=3D"text-align:left"><font color=3D"#003300" face=3D"&#39;co=
urier new&#39;, monospace" style=3D"text-align:-webkit-auto">Alex Kotenko</=
font></div></div></div></div></div>
<br><br><div class=3D"gmail_quote">2014-05-21 12:03 GMT+01:00 Andreas Schil=
dbach <span dir=3D"ltr">&lt;<a href=3D"mailto:andreas@schildbach.de" target=
=3D"_blank">andreas@schildbach.de</a>&gt;</span>:<br><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex">

Great, thanks for this contribution!<br>
<br>
Do you plan to have your seeds reachable on port 53 eventually?<br>
Currently bitcoinj cannot deal with nonstandard ports I think.<br>
<div class=3D""><br>
<br>
On 05/21/2014 11:23 AM, Alex Kotenko wrote:<br>
&gt; okay, I&#39;ve set it up with bind forwarding requests to two dnsseeds=
<br>
&gt; running on separate ports. Though I see a problem with testnet DNS see=
d<br>
&gt; itself. It runs, but somehow it only returns one IP address. Exactly<b=
r>
&gt; same DNS seeder looking for mainnet nodes is working fine.<br>
&gt;<br>
&gt; You can reach seeds through<br>
&gt; mainnet seed:<br>
</div>&gt; dig @<a href=3D"http://node.alexykot.me" target=3D"_blank">node.=
alexykot.me</a> &lt;<a href=3D"http://node.alexykot.me" target=3D"_blank">h=
ttp://node.alexykot.me</a>&gt; <a href=3D"http://bitcoin-seed.alexykot.me" =
target=3D"_blank">bitcoin-seed.alexykot.me</a><br>


&gt; &lt;<a href=3D"http://bitcoin-seed.alexykot.me" target=3D"_blank">http=
://bitcoin-seed.alexykot.me</a>&gt; A<br>
&gt; or directly<br>
&gt; dig -p 8353 @<a href=3D"http://node.alexykot.me" target=3D"_blank">nod=
e.alexykot.me</a> &lt;<a href=3D"http://node.alexykot.me" target=3D"_blank"=
>http://node.alexykot.me</a>&gt;<br>
&gt; <a href=3D"http://bitcoin-seed.alexykot.me" target=3D"_blank">bitcoin-=
seed.alexykot.me</a> &lt;<a href=3D"http://bitcoin-seed.alexykot.me" target=
=3D"_blank">http://bitcoin-seed.alexykot.me</a>&gt; A<br>
&gt;<br>
&gt; testnet seed<br>
&gt; dig @<a href=3D"http://node.alexykot.me" target=3D"_blank">node.alexyk=
ot.me</a> &lt;<a href=3D"http://node.alexykot.me" target=3D"_blank">http://=
node.alexykot.me</a>&gt; <a href=3D"http://testnet-seed.alexykot.me" target=
=3D"_blank">testnet-seed.alexykot.me</a><br>


&gt; &lt;<a href=3D"http://testnet-seed.alexykot.me" target=3D"_blank">http=
://testnet-seed.alexykot.me</a>&gt; A<br>
&gt; or directly<br>
&gt; dig -p 18353 @<a href=3D"http://node.alexykot.me" target=3D"_blank">no=
de.alexykot.me</a> &lt;<a href=3D"http://node.alexykot.me" target=3D"_blank=
">http://node.alexykot.me</a>&gt;<br>
&gt; <a href=3D"http://testnet-seed.alexykot.me" target=3D"_blank">testnet-=
seed.alexykot.me</a> &lt;<a href=3D"http://testnet-seed.alexykot.me" target=
=3D"_blank">http://testnet-seed.alexykot.me</a>&gt; A<br>
<div class=3D"">&gt;<br>
&gt; So what can be the problem with testnet DNS seeder?<br>
&gt;<br>
&gt;<br>
&gt; Best regards,<br>
&gt; Alex Kotenko<br>
&gt;<br>
&gt;<br>
&gt; 2014-05-20 1:50 GMT+01:00 Robert McKay &lt;<a href=3D"mailto:robert@mc=
kay.com">robert@mckay.com</a><br>
</div>&gt; &lt;mailto:<a href=3D"mailto:robert@mckay.com">robert@mckay.com<=
/a>&gt;&gt;:<br>
<div class=3D"">&gt;<br>
&gt; =C2=A0 =C2=A0 On Tue, 20 May 2014 01:44:29 +0100, Robert McKay wrote:<=
br>
&gt; =C2=A0 =C2=A0 &gt; On Mon, 19 May 2014 19:49:52 -0400, Jeff Garzik wro=
te:<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; On Mon, May 19, 2014 at 4:36 PM, Robert McKay &=
lt;<a href=3D"mailto:robert@mckay.com">robert@mckay.com</a><br>
</div>&gt; =C2=A0 =C2=A0 &lt;mailto:<a href=3D"mailto:robert@mckay.com">rob=
ert@mckay.com</a>&gt;&gt;<br>
<div><div class=3D"h5">&gt; =C2=A0 =C2=A0 &gt;&gt; wrote:<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; It should be possible to configure bind as =
a DNS forwarder.. this<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; can<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; be done in a zone context.. then you can fo=
rward the different<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; zones<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; to<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; different dnsseed daemons running on differ=
ent non-public IPs or<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; two<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; different ports on the same IP (or on one s=
ingle non-public IP<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; since<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; there&#39;s really no reason to expose the =
dnsseed directly daemon at<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;&gt; all).<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; Quite the opposite. =C2=A0dnsseed data rotates =
through a lot of addresses<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; if available. =C2=A0Using the bind/zone-xfer sy=
stem would result in fewer<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; total addresses going through to the clients, t=
hanks to the addition<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; of caching levels that the bind/zone-xfer syste=
m brings.<br>
&gt; =C2=A0 =C2=A0 &gt;&gt;<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; That said, if the choice is between no-service =
and bind, bind it is<br>
&gt; =C2=A0 =C2=A0 &gt;&gt; ;p<br>
&gt; =C2=A0 =C2=A0 &gt;<br>
&gt; =C2=A0 =C2=A0 &gt; Setting it up as a zone forwarder causes each reque=
st to go through<br>
&gt; =C2=A0 =C2=A0 &gt; to<br>
&gt; =C2=A0 =C2=A0 &gt; the dnsseed backend for each request.<br>
&gt;<br>
&gt; =C2=A0 =C2=A0 This stackoverflow describes a similar situation;<br>
&gt;<br>
&gt; =C2=A0 =C2=A0 <a href=3D"http://stackoverflow.com/questions/15338232/h=
ow-to-forward-a-subzone" target=3D"_blank">http://stackoverflow.com/questio=
ns/15338232/how-to-forward-a-subzone</a><br>
&gt;<br>
&gt; =C2=A0 =C2=A0 you can additionally specify the port to forward too;<br=
>
&gt;<br>
&gt; =C2=A0 =C2=A0 <a href=3D"http://www.zytrax.com/books/dns/ch7/queries.h=
tml#forwarders" target=3D"_blank">http://www.zytrax.com/books/dns/ch7/queri=
es.html#forwarders</a><br>
&gt;<br>
&gt; =C2=A0 =C2=A0 it should be possible to forward to different ports on 1=
27.0.0.1 for<br>
&gt; =C2=A0 =C2=A0 each dnsseed instance.<br>
&gt;<br>
&gt; =C2=A0 =C2=A0 Rob<br>
&gt;<br>
&gt; =C2=A0 =C2=A0 --------------------------------------------------------=
----------------------<br>
&gt; =C2=A0 =C2=A0 &quot;Accelerate Dev Cycles with Automated Cross-Browser=
 Testing - For FREE<br>
&gt; =C2=A0 =C2=A0 Instantly run your Selenium tests across 300+ browser/OS=
 combos.<br>
&gt; =C2=A0 =C2=A0 Get unparalleled scalability from the best Selenium test=
ing platform<br>
&gt; =C2=A0 =C2=A0 available<br>
&gt; =C2=A0 =C2=A0 Simple to use. Nothing to install. Get started now for f=
ree.&quot;<br>
&gt; =C2=A0 =C2=A0 <a href=3D"http://p.sf.net/sfu/SauceLabs" target=3D"_bla=
nk">http://p.sf.net/sfu/SauceLabs</a><br>
&gt; =C2=A0 =C2=A0 _______________________________________________<br>
&gt; =C2=A0 =C2=A0 Bitcoin-development mailing list<br>
&gt; =C2=A0 =C2=A0 <a href=3D"mailto:Bitcoin-development@lists.sourceforge.=
net">Bitcoin-development@lists.sourceforge.net</a><br>
</div></div>&gt; =C2=A0 =C2=A0 &lt;mailto:<a href=3D"mailto:Bitcoin-develop=
ment@lists.sourceforge.net">Bitcoin-development@lists.sourceforge.net</a>&g=
t;<br>
&gt; =C2=A0 =C2=A0 <a href=3D"https://lists.sourceforge.net/lists/listinfo/=
bitcoin-development" target=3D"_blank">https://lists.sourceforge.net/lists/=
listinfo/bitcoin-development</a><br>
<div class=3D"HOEnZb"><div class=3D"h5">&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; ----------------------------------------------------------------------=
--------<br>
&gt; &quot;Accelerate Dev Cycles with Automated Cross-Browser Testing - For=
 FREE<br>
&gt; Instantly run your Selenium tests across 300+ browser/OS combos.<br>
&gt; Get unparalleled scalability from the best Selenium testing platform a=
vailable<br>
&gt; Simple to use. Nothing to install. Get started now for free.&quot;<br>
&gt; <a href=3D"http://p.sf.net/sfu/SauceLabs" target=3D"_blank">http://p.s=
f.net/sfu/SauceLabs</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Bitcoin-development mailing list<br>
&gt; <a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-d=
evelopment@lists.sourceforge.net</a><br>
&gt; <a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-develo=
pment" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitco=
in-development</a><br>
&gt;<br>
<br>
<br>
<br>
---------------------------------------------------------------------------=
---<br>
&quot;Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE=
<br>
Instantly run your Selenium tests across 300+ browser/OS combos.<br>
Get unparalleled scalability from the best Selenium testing platform availa=
ble<br>
Simple to use. Nothing to install. Get started now for free.&quot;<br>
<a href=3D"http://p.sf.net/sfu/SauceLabs" target=3D"_blank">http://p.sf.net=
/sfu/SauceLabs</a><br>
_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
</div></div></blockquote></div><br></div></div>

--20cf302efaf618e9f404f9e70fce--