Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BE8079897 for ; Tue, 22 May 2012 09:34:35 +0000 (UTC) Received: (qmail 1540 invoked by uid 500); 22 May 2012 09:34:33 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 1479 invoked by uid 500); 22 May 2012 09:34:33 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 1426 invoked by uid 99); 22 May 2012 09:34:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 May 2012 09:34:32 +0000 X-ASF-Spam-Status: No, hits=1.8 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of dbgroup444@gmail.com designates 209.85.214.172 as permitted sender) Received: from [209.85.214.172] (HELO mail-ob0-f172.google.com) (209.85.214.172) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 May 2012 09:34:28 +0000 Received: by obbeh20 with SMTP id eh20so11573171obb.31 for ; Tue, 22 May 2012 02:34:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; bh=woXusT7Ubkj5YISNzUqud0IeFstjY3iRhQqqk6TI/6o=; b=l/qjKYlemp1QT2xZo8PL/P9DNYVyXkEEtOZMpwJBvv1qCrYqza2P0YJIboxc+2rRco 4LK8IkYuues3C4f/YdDT9dDRkCkGp6Mysg1ML8z59EwXZ1shLDPTQ2GJkynKjPV3op+X YO1KMZmylKzA1D0iD+ao9Gcd0wZamo8YiQ25yxHQlffRkhVFojtxPn8SBNkLxOIr8XrL 4g3caCj06pOSFUhFbBTcS5N6ngUQn01iFE897o175Qqmma6lvm+tOGoeRWfnsYE5zjXA ZGhUcjZrnHZJBekDyuycn2u23r/Z116mwXyXyZKp68C49Q838kYaFbfhq76rCNZQUndA KmNw== Received: by 10.182.152.4 with SMTP id uu4mr21962518obb.26.1337679247119; Tue, 22 May 2012 02:34:07 -0700 (PDT) Received: from [10.0.0.4] (c-75-64-187-78.hsd1.tn.comcast.net. [75.64.187.78]) by mx.google.com with ESMTPS id vp14sm13375769oeb.5.2012.05.22.02.34.05 (version=SSLv3 cipher=OTHER); Tue, 22 May 2012 02:34:06 -0700 (PDT) Message-ID: <4FBB5D8B.2090602@gmail.com> Date: Tue, 22 May 2012 04:34:03 -0500 From: ramesh User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: user@cassandra.apache.org Subject: Re: unable to nodetool to remote EC2 References: <4FB69588.3010807@gmail.com> <4FB699A7.40402@gmail.com> <4FBA9EE9.7010902@gmail.com> In-Reply-To: Content-Type: multipart/alternative; boundary="------------050705070508090200010309" X-Virus-Checked: Checked by ClamAV on apache.org This is a multi-part message in MIME format. --------------050705070508090200010309 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 05/22/2012 12:45 AM, Tamar Fraenkel wrote: > Thanks for the response. But it still does not work. > I am running the script from a git bash on my windows 7. > adding some debug prints, this is what I am running > ssh -i key.pem -N -f -D8123 ubuntu@ec2-*.amazonaws.com > > ssh pid = 11616 > /c/PROGRA~2/Java/jdk1.7.0_02/bin/jconsole.exe > -J-DsocksProxyHost=localhost -J-DsocksProxyPort=8123 > service:jmx:rmi:///jndi/rmi://ec2-*.amazonaws.com:7199/jmxrmi > > > Still getting "channel 2: open failed: connect failed: Connection > timed out" > Any further idea? Where are you running the script. > Thanks > > *Tamar Fraenkel * > Senior Software Engineer, TOK Media > > Inline image 1 > > tamar@tok-media.com > Tel: +972 2 6409736 > Mob: +972 54 8356490 > Fax: +972 2 5612956 > > > > > > On Mon, May 21, 2012 at 11:00 PM, ramesh > wrote: > > On 05/21/2012 03:55 AM, Tamar Fraenkel wrote: >> Hi! >> I am trying the tunnel and it fails. Will be gratefull for some >> hints: >> >> I defined >> >> * proxy_host = ubuntu@my_ec2_cassandra_node_public_ip >> * proxy_port = 22 >> >> I do: >> *ssh -N -f -i /c/Users/tamar/.ssh/Amazon/tokey.openssh -D22 >> ubuntu@my_ec2_cassandra_node_public_ip* >> >> I put some debug prints and I can see that the ssh_pid is indeed >> the correct one. >> >> I run >> *jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=22 >> service:jmx:rmi:///jndi/rmi://my_ec2_cassandra_node_public_ip:7199/jmxrmi* >> >> I get errors and it fails: >> channel 2: open failed: connect failed: Connection timed out >> >> One note though, I can ssh to that vm using >> ssh -i /c/Users/tamar/.ssh/Amazon/tokey.openssh -D22 >> ubuntu@my_ec2_cassandra_node_public_ip >> without being prompted for PW. >> >> Any help appreciated >> >> *Tamar Fraenkel * >> Senior Software Engineer, TOK Media >> >> Inline image 1 >> >> tamar@tok-media.com >> Tel: +972 2 6409736 >> Mob: +972 54 8356490 >> Fax: +972 2 5612956 >> >> >> >> >> >> On Fri, May 18, 2012 at 9:49 PM, ramesh > > wrote: >> >> On 05/18/2012 01:35 PM, Tyler Hobbs wrote: >>> Your firewall rules need to allow TCP traffic on any port >= >>> 1024 for JMX to work. It initially connects on port 7199, >>> but then the client is asked to reconnect on a randomly >>> chosen port. >>> >>> You can open the firewall, SSH to the node first, or set up >>> something like this: >>> http://simplygenius.com/2010/08/jconsole-via-socks-ssh-tunnel.html >>> >>> On Fri, May 18, 2012 at 1:31 PM, ramesh >>> > wrote: >>> >>> I updated the cassandra-env.sh >>> $JMX_HOST="10.20.30.40" >>> JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=$JMX_HOST" >>> >>> netstat -ltn shows port 7199 is listening. >>> >>> I tried both public and private IP for connecting but >>> neither helps. >>> >>> However, I am able to connect locally from within server. >>> >>> I get this error when I remote: >>> >>> Error connection to remote JMX agent! >>> java.rmi.ConnectException: Connection refused to host: >>> 10.20.30.40; nested exception is: >>> java.net.ConnectException: Connection timed out at >>> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601) >>> at >>> sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198) >>> at >>> sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) >>> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110) >>> at >>> javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown >>> Source) at >>> javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2329) >>> at >>> javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:279) >>> at >>> javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248) >>> at >>> org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:144) >>> at org.apache.cassandra.tools.NodeProbe. >>> (NodeProbe.java:114) at >>> org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:623) Caused >>> by: java.net.ConnectException: Connection timed out at >>> java.net.PlainSocketImpl.socketConnect(Native Method) at >>> java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) >>> at >>> java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) >>> at >>> java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) >>> at >>> java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) >>> at java.net.Socket.connect(Socket.java:529) at >>> java.net.Socket.connect(Socket.java:478) at >>> java.net.Socket. (Socket.java:375) at java.net.Socket. >>> (Socket.java:189) at >>> sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22) >>> at >>> sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128) >>> at >>> sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595) >>> ... 10 more >>> >>> Any help appreciated. >>> Regards >>> Ramesh >>> >>> >>> >>> >>> -- >>> Tyler Hobbs >>> DataStax >>> >> >> It helped. >> Thanks Tyler for the info and the link to the post. >> >> Regards >> Ramesh >> >> > Hello Tamar, > > In your bash file, where you ssh , pass the .pem as well : > > # start up a background ssh tunnel on the desired port > ssh -i mypem.pem -N -f -D$proxy_port $proxy_host > > Here is the entire code > > --------------------------------------------------------------------------------------------------- > #!/bin/bash > > function jc { > # set this to the host you'll proxy through. > proxy_host="ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com" > > host=$1 > > jmxport=7199 # as specified by JMX_PORT in cassandra-env.sh > proxy_port=${2:-8123} > > if [ "x$host" = "x" ]; then > echo "Usage: jc [proxy port]" > return 1 > fi > > # start up a background ssh tunnel on the desired port > ssh -i *mypem.pem* -N -f -D$proxy_port $proxy_host > > # if the tunnel failed to come up, fail gracefully. > if [ $? -ne 0 ]; then > echo "Ssh tunnel failed" > return 1 > fi > > ssh_pid=`ps awwwx | grep "[s]sh -N -f -D$proxy_port" | awk > '{print $1}'` > echo "ssh pid = $ssh_pid" > > # Fire up jconsole to your remote host > jconsole -J-DsocksProxyHost=localhost > -J-DsocksProxyPort=$proxy_port \ > service:jmx:rmi:///jndi/rmi://${host}:${jmxport}/jmxrmi > > # tear down the tunnel > kill $ssh_pid > } > > Hi Tamar, Not very sure about windows. But I guess Cygwin does help run scripts on windows. Try to keep the script file in the same directory where your pem files are and then try to ssh from within directory where your pem file and script file is, that might prevent any conflict while accessing either of the files. HTH regards, Ramesh --------------050705070508090200010309 Content-Type: multipart/related; boundary="------------050207040804000202070501" --------------050207040804000202070501 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 05/22/2012 12:45 AM, Tamar Fraenkel wrote:
Thanks for the response. But it still does not work.
I am running the script from a git bash on my windows 7.
adding some debug prints, this is what I am running
ssh -i key.pem -N -f -D8123 ubuntu@ec2-*.amazonaws.com
ssh pid = 11616
/c/PROGRA~2/Java/jdk1.7.0_02/bin/jconsole.exe -J-DsocksProxyHost=localhost -J-DsocksProxyPort=8123 service:jmx:rmi:///jndi/rmi://ec2-*.amazonaws.com:7199/jmxrmi

Still getting "channel 2: open failed: connect failed: Connection timed out"
Any further idea? Where are you running the script.
Thanks

Tamar Fraenkel 
Senior Software Engineer, TOK Media 






On Mon, May 21, 2012 at 11:00 PM, ramesh <dbgroup444@gmail.com> wrote:
On 05/21/2012 03:55 AM, Tamar Fraenkel wrote:
Hi!
I am trying the tunnel and it fails. Will be gratefull for some hints:

I defined
  • proxy_host = ubuntu@my_ec2_cassandra_node_public_ip
  • proxy_port = 22
I do:
ssh -N -f -i /c/Users/tamar/.ssh/Amazon/tokey.openssh -D22 ubuntu@my_ec2_cassandra_node_public_ip

I put some debug prints and I can see that the ssh_pid is indeed the correct one.

I run
jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=22 service:jmx:rmi:///jndi/rmi://my_ec2_cassandra_node_public_ip:7199/jmxrmi

I get errors and it fails:
channel 2: open failed: connect failed: Connection timed out

One note though, I can ssh to that vm using 
ssh -i /c/Users/tamar/.ssh/Amazon/tokey.openssh -D22 ubuntu@my_ec2_cassandra_node_public_ip
without being prompted for PW.

Any help appreciated

Tamar Fraenkel 
Senior Software Engineer, TOK Media 






On Fri, May 18, 2012 at 9:49 PM, ramesh <dbgroup444@gmail.com> wrote:
On 05/18/2012 01:35 PM, Tyler Hobbs wrote:
Your firewall rules need to allow TCP traffic on any port >= 1024 for JMX to work.  It initially connects on port 7199, but then the client is asked to reconnect on a randomly chosen port.

You can open the firewall, SSH to the node first, or set up something like this: http://simplygenius.com/2010/08/jconsole-via-socks-ssh-tunnel.html

On Fri, May 18, 2012 at 1:31 PM, ramesh <dbgroup444@gmail.com> wrote:
I updated the cassandra-env.sh
$JMX_HOST="10.20.30.40"
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=$JMX_HOST"

netstat -ltn shows port 7199 is listening.

I tried both public and private IP for connecting but neither helps.

However, I am able to connect locally from within server.

 I get this error when I remote:

Error connection to remote JMX agent! java.rmi.ConnectException: Connection refused to host: 10.20.30.40; nested exception is: java.net.ConnectException: Connection timed out at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110) at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source) at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2329) at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:279) at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248) at org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:144) at org.apache.cassandra.tools.NodeProbe. (NodeProbe.java:114) at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:623) Caused by: java.net.ConnectException: Connection timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket. (Socket.java:375) at java.net.Socket. (Socket.java:189) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595) ... 10 more

Any help appreciated.
Regards
Ramesh



--
Tyler Hobbs
DataStax

 
It helped.
Thanks Tyler for the info and the link to the post.

Regards
Ramesh

Hello Tamar,

In your bash file, where you ssh , pass the .pem as well :

 # start up a background ssh tunnel on the desired port
    ssh -i mypem.pem -N -f -D$proxy_port $proxy_host

Here is the entire code

---------------------------------------------------------------------------------------------------
#!/bin/bash

function jc {
 # set this to the host you'll proxy through.
    proxy_host="ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com"
    host=$1

    jmxport=7199 # as specified by JMX_PORT in cassandra-env.sh
    proxy_port=${2:-8123}

    if [ "x$host" = "x" ]; then
        echo "Usage: jc  [proxy port]"
        return 1
    fi

    # start up a background ssh tunnel on the desired port
    ssh -i mypem.pem -N -f -D$proxy_port $proxy_host

    # if the tunnel failed to come up, fail gracefully.
    if [ $? -ne 0 ]; then
        echo "Ssh tunnel failed"
        return 1
    fi

    ssh_pid=`ps awwwx | grep "[s]sh -N -f -D$proxy_port" | awk '{print $1}'`
    echo "ssh pid = $ssh_pid"

    # Fire up jconsole to your remote host
    jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=$proxy_port \
        service:jmx:rmi:///jndi/rmi://${host}:${jmxport}/jmxrmi

    # tear down the tunnel
    kill $ssh_pid
}

Hi Tamar,

Not very sure about windows. But I guess Cygwin does help run scripts on windows. Try to keep the script file in the same directory where your pem files are and then try to ssh from within directory where your pem file and script file is, that might prevent any conflict while accessing either of the files.

HTH

regards,
Ramesh
--------------050207040804000202070501 Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: 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 znBa+JLwo+GvIzwiiiLuRxpHSiPbo+Sj4qPqoqajPaOLowdjLGNWx1yPVY8VxrbG4eOi4mrj phZ6LdyzcCTeLj4/vn+R0aJli64uVl+cvvjMEvkl3CUnE7AJ0QlHE95zg7nV3KlEv8TKxEke h7eX94zvxt/NHxe4CIoFo0kuScVJY8kuybuSx1NcU0pSJoQcYbnwRapvalXqdFpw2uG0T+nR 6Y0ZhIyEjFMiJVGaqCNTK3NZZk+WWVZ+1uBSp6V7lk6KA8S12VD2ouxWCR39meqSGks3SYdy 5udU5LzJjco9uUxxmWhZ13LT5VuXj67wXvH9SsxK3sr2VTqr1q8aWu2++uAaaE3imva1emvz 1o6s81l3ZD1pfdr6XzZYbSje8Gpj9Ma2PM28dXnDm3w21efL5YvzBzY7b67agtki3NK9de7W sq0fC/gF1wqtCksK32/jbbv2nfV3pd992p60vbvIvmj/DtwO0Y7+na47jxQrFq8oHt4VtKt5 N3N3we5Xe5bsuVpiW1K1l7RXunewNLC0tUy/bEfZ+/KU8r4Kj4rGSo3KrZXT+/j7eve77W+o 0qwqrHp3QHjgzkGfg83VhtUlh3CHcg49qYmq6fye/X1drXptYe2Hw6LDg0fCjnTUOdTVHdU4 WlQP10vrx4/FH7v5g+cPrQ2shoONjMbC4+C49PjTHxN+7D8RcKL9JPtkw08GP1U20ZoKmqHm 5c2TLSktg62xrT2n/E+1tzm3Nf1s8fPh0zqnK84onyk6Szqbd/bTuRXnps5nnZ+4kHxhuH1J +/2LMRdvd4R2dF8KuHTlsvfli53uneeuuFw5fdXp6qlr7Gst1+2vN3fZdTX9YvdLU7d9d/MN hxutNx1vtvXM6znb69p74Zbnrcu3/W5f71vQ19Mf2X9nIH5g8A7/ztjd9Lsv7uXcm7m/7gH2 QcFDhYcljzQeVf9q8mvjoP3gmSHPoa7H4Y/vD/OGn/2W/dv7kbwn1Cclo9qjdWM2Y6fHvcdv Pl34dORZ1rOZifzfFX+vfG78/Kc/3P7omoyZHHkhfvHpz20v1V4efmX7qn0qZOrR64zXM9MF b9TeHHnLftv5Lvrd6Ezue/z70g8mH9o+Bnx88Cnj06e/AAOb8/zszueKAAAACXBIWXMAAA7D AAAOwwHHb6hkAAAHmklEQVRoBeVaa0wUVxQ+uzPLLqj1lbRWIkKKYgNq0WpRq0mjEWJRqVaL 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 --------------050207040804000202070501 Content-Type: image/png Content-Transfer-Encoding: base64 Content-ID: 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 znBa+JLwo+GvIzwiiiLuRxpHSiPbo+Sj4qPqoqajPaOLowdjLGNWx1yPVY8VxrbG4eOi4mrj phZ6LdyzcCTeLj4/vn+R0aJli64uVl+cvvjMEvkl3CUnE7AJ0QlHE95zg7nV3KlEv8TKxEke h7eX94zvxt/NHxe4CIoFo0kuScVJY8kuybuSx1NcU0pSJoQcYbnwRapvalXqdFpw2uG0T+nR 6Y0ZhIyEjFMiJVGaqCNTK3NZZk+WWVZ+1uBSp6V7lk6KA8S12VD2ouxWCR39meqSGks3SYdy 5udU5LzJjco9uUxxmWhZ13LT5VuXj67wXvH9SsxK3sr2VTqr1q8aWu2++uAaaE3imva1emvz 1o6s81l3ZD1pfdr6XzZYbSje8Gpj9Ma2PM28dXnDm3w21efL5YvzBzY7b67agtki3NK9de7W sq0fC/gF1wqtCksK32/jbbv2nfV3pd992p60vbvIvmj/DtwO0Y7+na47jxQrFq8oHt4VtKt5 N3N3we5Xe5bsuVpiW1K1l7RXunewNLC0tUy/bEfZ+/KU8r4Kj4rGSo3KrZXT+/j7eve77W+o 0qwqrHp3QHjgzkGfg83VhtUlh3CHcg49qYmq6fye/X1drXptYe2Hw6LDg0fCjnTUOdTVHdU4 WlQP10vrx4/FH7v5g+cPrQ2shoONjMbC4+C49PjTHxN+7D8RcKL9JPtkw08GP1U20ZoKmqHm 5c2TLSktg62xrT2n/E+1tzm3Nf1s8fPh0zqnK84onyk6Szqbd/bTuRXnps5nnZ+4kHxhuH1J +/2LMRdvd4R2dF8KuHTlsvfli53uneeuuFw5fdXp6qlr7Gst1+2vN3fZdTX9YvdLU7d9d/MN hxutNx1vtvXM6znb69p74Zbnrcu3/W5f71vQ19Mf2X9nIH5g8A7/ztjd9Lsv7uXcm7m/7gH2 QcFDhYcljzQeVf9q8mvjoP3gmSHPoa7H4Y/vD/OGn/2W/dv7kbwn1Cclo9qjdWM2Y6fHvcdv Pl34dORZ1rOZifzfFX+vfG78/Kc/3P7omoyZHHkhfvHpz20v1V4efmX7qn0qZOrR64zXM9MF b9TeHHnLftv5Lvrd6Ezue/z70g8mH9o+Bnx88Cnj06e/AAOb8/zszueKAAAACXBIWXMAAA7D AAAOwwHHb6hkAAAHmklEQVRoBeVaa0wUVxQ+uzPLLqj1lbRWIkKKYgNq0WpRq0mjEWJRqVaL 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 --------------050207040804000202070501-- --------------050705070508090200010309--