Return-Path: X-Original-To: apmail-flume-user-archive@www.apache.org Delivered-To: apmail-flume-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 420F211240 for ; Thu, 28 Aug 2014 15:24:54 +0000 (UTC) Received: (qmail 81430 invoked by uid 500); 28 Aug 2014 15:24:53 -0000 Delivered-To: apmail-flume-user-archive@flume.apache.org Received: (qmail 81377 invoked by uid 500); 28 Aug 2014 15:24:53 -0000 Mailing-List: contact user-help@flume.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@flume.apache.org Delivered-To: mailing list user@flume.apache.org Received: (qmail 81367 invoked by uid 99); 28 Aug 2014 15:24:53 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Aug 2014 15:24:53 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,UNPARSEABLE_RELAY X-Spam-Check-By: apache.org Received-SPF: unknown (nike.apache.org: error in processing during lookup of aoneill@paytronix.com) Received: from [216.82.254.113] (HELO mail1.bemta7.messagelabs.com) (216.82.254.113) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Aug 2014 15:24:27 +0000 Received: from [216.82.255.3:50185] by server-17.bemta-7.messagelabs.com id BB/F9-20470-7A94FF35; Thu, 28 Aug 2014 15:24:23 +0000 X-Env-Sender: aoneill@paytronix.com X-Msg-Ref: server-4.tower-209.messagelabs.com!1409239436!10537266!16 X-Originating-IP: [216.166.12.69] X-StarScan-Received: X-StarScan-Version: 6.11.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 2455 invoked from network); 28 Aug 2014 15:24:21 -0000 Received: from out001.collaborationhost.net (HELO out001.collaborationhost.net) (216.166.12.69) by server-4.tower-209.messagelabs.com with RC4-SHA encrypted SMTP; 28 Aug 2014 15:24:21 -0000 Received: from AUSP01VMBX24.collaborationhost.net ([10.2.12.1]) by AUSP01MHUB03.collaborationhost.net ([10.2.8.78]) with mapi; Thu, 28 Aug 2014 10:22:30 -0500 From: Andrew O'Neill To: "user@flume.apache.org" Date: Thu, 28 Aug 2014 10:23:20 -0500 Subject: Re: Flume 1.4 HDFS Sink Cannot Reconnect Thread-Topic: Flume 1.4 HDFS Sink Cannot Reconnect Thread-Index: Ac/C0+HNzaxbEnTvQv2iMm1y3AdemQ== Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.4.3.140616 acceptlanguage: en-US Content-Type: multipart/related; boundary="_007_D024C161181BCaoneillpaytronixcom_"; type="multipart/alternative" MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org --_007_D024C161181BCaoneillpaytronixcom_ Content-Type: multipart/alternative; boundary="_000_D024C161181BCaoneillpaytronixcom_" --_000_D024C161181BCaoneillpaytronixcom_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hello, Did anyone have a chance to look at this issue? Thanks, [cid:15AE4044-2A22-4E71-959A-C79917667E52] Andrew O'Neill | Paytronix 74 Bridge Street, Suite 400 Newton, MA 02458 p. 617.649.3300 x256 [cid:4AEC1A82-7442-4A90-A364-8908C948D63F] [cid:61B3BE7E-F1B1-431E-A761-65A67DF26D25] [cid:2BE733E2-B0C2-4AB3-9341-26B230DFEB80] From: Andrew Neil > Reply-To: "user@flume.apache.org" > Date: Tuesday, August 26, 2014 at 16:35 PM To: "user@flume.apache.org" > Subject: Re: Flume 1.4 HDFS Sink Cannot Reconnect Per Roshan=92s request, I have filed a bug for this issue. For those intere= sted, here is the link to the issue: https://issues.apache.org/jira/browse/FLUME-2451 Hopefully this will create some visibility on this problem. Thanks, Andrew From: Roshan Naik > Reply-To: "user@flume.apache.org" > Date: Tuesday, August 26, 2014 at 16:11 PM To: "user@flume.apache.org" > Subject: Re: Flume 1.4 HDFS Sink Cannot Reconnect Please file a bug for this with the details provided in your email. On Tue, Aug 26, 2014 at 9:44 AM, Gary Malouf > wrote: +1 I've seen this same issue. On Tue, Aug 26, 2014 at 12:33 PM, Andrew O'Neill > wrote: Hello all, My setup: - Flume 1.4 - CDH 4.2.2 (2.0.0-cdh4.2.2) I am testing a simple flume setup with a Sequence Generator Source, a File = Channel, and an HDFS Sink (see my flume.conf below). This configuration wor= ks as expected until I reboot the cluster=92s NameNode or until I restart t= he HDFS service on the cluster. At this point, it appears that the Flume Ag= ent cannot reconnect to HDFS and must be manually restarted. Since this is = not an uncommon occurrence in our production cluster, it is important that= Flume is able to reconnect gracefully without any manual intervention. So, how do we fix this HDFS reconnection issue? Here is our flume.conf: appserver.sources =3D rawtext appserver.channels =3D testchannel appserver.sinks =3D test_sink appserver.sources.rawtext.type =3D seq appserver.sources.rawtext.channels =3D testchannel appserver.channels.testchannel.type =3D file appserver.channels.testchannel.capacity =3D 10000000 appserver.channels.testchannel.minimumRequiredSpace =3D 214748364800 appserver.channels.testchannel.checkpointDir =3D /Users/aoneill/Desktop= /testchannel/checkpoint appserver.channels.testchannel.dataDirs =3D /Users/aoneill/Desktop/test= channel/data appserver.channels.testchannel.maxFileSize =3D 20000000 appserver.sinks.test_sink.type =3D hdfs appserver.sinks.test_sink.channel =3D testchannel appserver.sinks.test_sink.hdfs.path =3D hdfs://cluster01:8020/user/aone= ill/flumetest appserver.sinks.test_sink.hdfs.closeTries =3D 3 appserver.sinks.test_sink.hdfs.filePrefix =3D events- appserver.sinks.test_sink.hdfs.fileSuffix =3D .avro appserver.sinks.test_sink.hdfs.fileType =3D DataStream appserver.sinks.test_sink.hdfs.writeFormat =3D Text appserver.sinks.test_sink.hdfs.inUsePrefix =3D inuse- appserver.sinks.test_sink.hdfs.inUseSuffix =3D .avro appserver.sinks.test_sink.hdfs.rollCount =3D 100000 appserver.sinks.test_sink.hdfs.rollInterval =3D 30 appserver.sinks.test_sink.hdfs.rollSize =3D 10485760 These are the two error message that the Flume Agent outputs constantly aft= er the restart: 2014-08-26 10:47:24,572 (SinkRunner-PollingRunner-DefaultSinkProcessor)= [ERROR - org.apache.flume.sink.hdfs.AbstractHDFSWriter.isUnderReplicated(A= bstractHDFSWriter.java:96)] Unexpected error while checking replication fac= tor java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod= AccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.flume.sink.hdfs.AbstractHDFSWriter.getNumCurrentRepli= cas(AbstractHDFSWriter.java:162) at org.apache.flume.sink.hdfs.AbstractHDFSWriter.isUnderReplicated(= AbstractHDFSWriter.java:82) at org.apache.flume.sink.hdfs.BucketWriter.shouldRotate(BucketWrite= r.java:452) at org.apache.flume.sink.hdfs.BucketWriter.append(BucketWriter.java= :387) at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.j= ava:392) at org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkPr= ocessor.java:68) at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:14= 7) at java.lang.Thread.run(Thread.java:744) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.jav= a:735) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTi= meout.java:207) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:525) at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(D= FSOutputStream.java:1253) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.transfer(DFS= OutputStream.java:891) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2= ExistingPipeline(DFSOutputStream.java:881) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelin= eForAppendOrRecovery(DFSOutputStream.java:982) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatan= odeError(DFSOutputStream.java:779) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutpu= tStream.java:448) and 2014-08-26 10:47:29,592 (SinkRunner-PollingRunner-DefaultSinkProcessor)= [WARN - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.jav= a:418)] HDFS IO error java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.jav= a:735) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTi= meout.java:207) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:525) at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(D= FSOutputStream.java:1253) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.transfer(DFS= OutputStream.java:891) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2= ExistingPipeline(DFSOutputStream.java:881) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelin= eForAppendOrRecovery(DFSOutputStream.java:982) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatan= odeError(DFSOutputStream.java:779) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutpu= tStream.java:448) I can provide additional information if needed. Thank you very much for any= insight you are able to provide into this problem. Best, Andrew CONFIDENTIALITY NOTICE NOTICE: This message is intended for the use of the individual or entity to= which it is addressed and may contain information that is confidential, pr= ivileged and exempt from disclosure under applicable law. If the reader of = this message is not the intended recipient, you are hereby notified that an= y printing, copying, dissemination, distribution, disclosure or forwarding = of this communication is strictly prohibited. If you have received this com= munication in error, please contact the sender immediately and delete it fr= om your system. Thank You. --_000_D024C161181BCaoneillpaytronixcom_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable
Hello,

<= /div>
Did anyone have a chance to look at this issue?


Thanks,


Andrew O'Neill | Paytronix<= /o:p>

74 Bridge Street, Suite 400

Newton, MA 02458<= /span>

p. 617.649.3300 x256

= 3D"cid:image002.jpg@01CC4097.8560BA50"  3D"cid:image003.jpg@01CC4097.8560BA50"  3D"cid:image004.jpg@01CC4097.8560BA50"


From: Andrew Neil <aoneill@paytronix.com>
Reply-To: "user@flume.apache.org" <user@flume.apache.org>
= Date: Tuesday, August 26, 2014 at 16:35 PM
To: "user= @flume.apache.org" <us= er@flume.apache.org>
Subject: Re: Flume 1.4 HDFS Sink Cannot Reconnect

Per Roshan=92s request, I have filed a = bug for this issue. For those interested, here is the link to the issue:

Hopefully this will create some visibility on this problem.


Thanks,

Andrew

<= div>
From: Roshan Nai= k <roshan@hortonworks.com&= gt;
Reply-To: "user@flume.apache.org" <user@flume.apache.org>
Date: Tuesday, August 26, 2014 at 16:11 PM
= To: "user@flume.apache.org" <user@flume.apache.org>
Subject: Re: Flume 1.4 HDFS Sink Cannot Reconnect
=

Please file a bug for this with the details= provided in your email.


On Tue, Aug 26, 2014 at 9:44 AM, Gary Malouf <malouf.gary@= gmail.com> wrote:
+1 I've seen this same issue.


= On Tue, Aug 26, 2014 at 12:33 PM, Andrew O'Neill <aoneill@payt= ronix.com> wrote:
Hello all,

My setup: 
    - Flume 1.4 
    - CDH 4.2.2= (2.0.0-cdh4.2.2)

=

I am testing a simple flume setup with a Sequence= Generator Source, a File Channel, and an HDFS Sink (see my flume.conf belo= w). This configuration works as expected until I reboot the cluster=92s Nam= eNode or until I restart the HDFS service on the cluster. At this point, it appears that the Flume Agent cannot reconnect to HDFS an= d must be manually restarted. Since this is not an uncommon occurrence &nbs= p;in our production cluster, it is important that Flume is able to reconnec= t gracefully without any manual intervention. 

So, how do we fix this HDFS reconnection issue?

=
Here is our flume.conf:

 =   appserver.sources =3D rawtext
    appserver.cha= nnels =3D testchannel
    appserver.sinks =3D test_sink=

    appserver.sources.rawtext.type =3D = seq
    appserver.sources.rawtext.channels =3D testchan= nel

    appserver.channels.testchannel.t= ype =3D file
    appserver.channels.testchannel.capacit= y =3D 10000000
    appserver.channels.testchannel.minim= umRequiredSpace =3D 214748364800
    appserver.channels= .testchannel.checkpointDir =3D /Users/aoneill/Desktop/testchannel/checkpoin= t
    appserver.channels.testchannel.dataDirs =3D /User= s/aoneill/Desktop/testchannel/data
    appserver.channe= ls.testchannel.maxFileSize =3D 20000000

  &nb= sp; appserver.sinks.test_sink.type =3D hdfs
    appserv= er.sinks.test_sink.channel =3D testchannel
    appserve= r.sinks.test_sink.hdfs.path =3D hdfs://cluster01:8020/user/aoneill/flumetes= t
    appserver.sinks.test_sink.hdfs.closeTries =3D 3
    appserver.sinks.test_sink.hdfs.filePrefix =3D events= -
    appserver.sinks.test_sink.hdfs.fileSuffix =3D .av= ro
    appserver.sinks.test_sink.hdfs.fileType =3D Data= Stream
    appserver.sinks.test_sink.hdfs.writeFormat = =3D Text
    appserver.sinks.test_sink.hdfs.inUsePrefix= =3D inuse-
    appserver.sinks.test_sink.hdfs.inUseSuf= fix =3D .avro
    appserver.sinks.test_sink.hdfs.rollCo= unt =3D 100000
    appserver.sinks.test_sink.hdfs.rollI= nterval =3D 30
    appserver.sinks.test_sink.hdfs.rollS= ize =3D 10485760


These a= re the two error message that the Flume Agent outputs constantly after the = restart:

    2014-08-26 10:47:24,57= 2 (SinkRunner-PollingRunner-DefaultSinkProcessor) [ERROR - org.apache.flume= .sink.hdfs.AbstractHDFSWriter.isUnderReplicated(AbstractHDFSWriter.java:96)= ] Unexpected error while checking replication factor
   = ; java.lang.reflect.InvocationTargetException
     = ;   at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorI= mpl.invoke(DelegatingMethodAccessorImpl.java:43)
    &n= bsp;   at java.lang.reflect.Method.invoke(Method.java:606)
&= nbsp;       at org.apache.flume.sink.hdfs.AbstractHDFSWriter= .getNumCurrentReplicas(AbstractHDFSWriter.java:162)
   =     at org.apache.flume.sink.hdfs.AbstractHDFSWriter.isUnderRepl= icated(AbstractHDFSWriter.java:82)
        at= org.apache.flume.sink.hdfs.BucketWriter.shouldRotate(BucketWriter.java:452= )
        at org.apache.flume.sink.hdfs.Bucke= tWriter.append(BucketWriter.java:387)
       = at org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:392= )
        at org.apache.flume.sink.DefaultSin= kProcessor.process(DefaultSinkProcessor.java:68)
    &n= bsp;   at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.jav= a:147)
        at java.lang.Thread.run(Thread= .java:744)
    Caused by: java.net.ConnectException: Co= nnection refused
        at sun.nio.ch.Socket= ChannelImpl.checkConnect(Native Method)
      &nbs= p; at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735= )
        at org.apache.hadoop.net.SocketIOWi= thTimeout.connect(SocketIOWithTimeout.java:207)
    &nb= sp;   at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:525)
        at org.apache.hadoop.hdfs.DFSOutputStrea= m.createSocketForPipeline(DFSOutputStream.java:1253)
   = ;     at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.tran= sfer(DFSOutputStream.java:891)
        at org= .apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeli= ne(DFSOutputStream.java:881)
        at org.a= pache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrReco= very(DFSOutputStream.java:982)
        at org= .apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOu= tputStream.java:779)
        at org.apache.ha= doop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:448)
<= /div>

and

  &nb= sp; 2014-08-26 10:47:29,592 (SinkRunner-PollingRunner-DefaultSinkProcessor)= [WARN - org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.jav= a:418)] HDFS IO error
    java.net.ConnectException: Co= nnection refused
        at sun.nio.ch.Socket= ChannelImpl.checkConnect(Native Method)
      &nbs= p; at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735= )
        at org.apache.hadoop.net.SocketIOWi= thTimeout.connect(SocketIOWithTimeout.java:207)
    &nb= sp;   at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:525)
        at org.apache.hadoop.hdfs.DFSOutputStrea= m.createSocketForPipeline(DFSOutputStream.java:1253)
   = ;     at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.tran= sfer(DFSOutputStream.java:891)
        at org= .apache.hadoop.hdfs.DFSOutputStream$DataStreamer.addDatanode2ExistingPipeli= ne(DFSOutputStream.java:881)
        at org.a= pache.hadoop.hdfs.DFSOutputStream$DataStreamer.setupPipelineForAppendOrReco= very(DFSOutputStream.java:982)
        at org= .apache.hadoop.hdfs.DFSOutputStream$DataStreamer.processDatanodeError(DFSOu= tputStream.java:779)
        at org.apache.ha= doop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:448)
<= /div>


I can provide additional informatio= n if needed. Thank you very much for any insight you are able to provide in= to this problem.


Best,

Andrew




CONFIDENTIALITY NOTICE
= NOTICE: This message is intended for the use of the individual or entity to= which it is addressed and may contain information that is confidential, pr= ivileged and exempt from disclosure under applicable law. If the reader of this message is not= the intended recipient, you are hereby notified that any printing, copying= , dissemination, distribution, disclosure or forwarding of this communicati= on is strictly prohibited. If you have received this communication in error, please contact the sender immed= iately and delete it from your system. Thank You.
= --_000_D024C161181BCaoneillpaytronixcom_-- --_007_D024C161181BCaoneillpaytronixcom_ Content-Type: image/png; name="31917E21-8235-4B80-8785-43168B07055B[7].png" Content-Description: 31917E21-8235-4B80-8785-43168B07055B[7].png Content-Disposition: inline; filename="31917E21-8235-4B80-8785-43168B07055B[7].png"; size=3320; creation-date="Thu, 28 Aug 2014 15:22:29 GMT"; modification-date="Thu, 28 Aug 2014 15:22:29 GMT" Content-ID: <15AE4044-2A22-4E71-959A-C79917667E52> Content-Transfer-Encoding: base64 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 7GAAAAAASUVORK5CYII= --_007_D024C161181BCaoneillpaytronixcom_ Content-Type: image/png; name="FF2FE847-16F5-4EB0-9CC5-B7A1A069E51D[7].png" Content-Description: FF2FE847-16F5-4EB0-9CC5-B7A1A069E51D[7].png Content-Disposition: inline; filename="FF2FE847-16F5-4EB0-9CC5-B7A1A069E51D[7].png"; size=1390; creation-date="Thu, 28 Aug 2014 15:22:29 GMT"; modification-date="Thu, 28 Aug 2014 15:22:29 GMT" Content-ID: <4AEC1A82-7442-4A90-A364-8908C948D63F> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAIAAABLixI0AAAACXBIWXMAABJ0AAASdAHeZh94AAAF IElEQVQ4EU1Va28bRRSd3Xns0+uNE8dJ8+gjfQSoSiWo+qG/Con/gMQ/4hMSINFWICRQC6pSVWma xE4cpbb3PS/OOCli7F17Z3fO3HvOuXe9b779YbGYFeVMqtoYRQgRVAgel3OZJD3P0EUxU7pOUsGF p3RJrfZ8W9fWGj8Kc4NBSNZPbt/dYdPptK7LtqsskYS4W4qojhpreF3XxBAsopQqpdqubrtCtQUu m8YYTcOgs5awgHPhn52dscvLy65rjJWME98nWKO0kp4NGCvL0rMegsR801QA0qYW1ERRGCchsdyz YVU1Wuuu62azObNAJsRzA2fA+dZYd4VfYzyLSaa1RFA+Jfkg394cjEbDfGWD07Qq5duDw3fvj6qq 6g9SFkWRC0cDxXgIAyAUHwZQhhPBDqZtK2vV+vrqvQe7j764s729NdoYhoJMz0kQRJPp+en4eJdv MQylKLAQIKjB4REKRATFOQcWNOlkEyfszt7Nr588+urxXpYRxgixRCuS51kUB8hMSuni10YuITBz PZC3VJKzAM9DFvCe9Ye3bt/Y399bXSNlSQ7eLi6mRTHXH46PlOqQHFhjwMMPMJCU51FCND6AhgSY IQa8NkBOkmCw2l8bglry/uj4p59/e/d2rKUoFnI+n0NZDOZovh5OgavAgJWmsda2qoumrTy/Uxpa twZxGsQ1f/36z5fPX8XRahINDOFZljuyPqWF/EGO0xR/PN/xBfpEwDM/EWGYryRcWNBKKYF7kjRe GfRxkxiqlUVQTitofxUOYkFu/0Ejd8wIToejzY0bvXsPtjY2hkDByLJ0f/9+Gg89m5x8uDw6PgNL 2Nvl6CTBscSyBjG5IZ1ruzCMdna2njz9bP/zneEoCEOHtb6+/uzZM/M0ki3/5affLy5/RYXg6Sus JRBY/TSWaJ4rAa1B3M7u1u7NAPc1NvVImgYCyVMiW/Lmn3VYZzZbYKnjCytx/n+OmAGVlPlwzMfZ 5fHxUZbvZDmHCCKO29acnMybinaNmEwmMMJSxqWOV9Fc5/iJMcAJIeCNw8NDqacnkxtfPr6/d3cX Up6dTV+8+OPgzanVyflk3jRNGIZu+yug67PFJSrJGU3pjjNhiD4dj08nxaw439wcPny43yoy/bh4 9ffBy+d/US9jfg9VG0aJ4x6m5D71qG1bVHsDQ2jmG25gLspR337bQSPbdaJtg7IiIiDnl/V4uriY N5yINIkCkaAb4MukapEdGhooRAtEOYJvsL6sTScpY8ISI3hCaQICYIs4WUFJJenYdAGBqzwfaQUB upQjGFXjowawDIUNZyFCXAtBgRKGwvN9nOFGbLnsKH4cRmmcaB4IHnFfYKVWHcNDjnXCgMIY2h72 QXQWtehTGL2mXPlU93o9t7NPWtBgPSSRpiArjcKeVWhyrsEwpWUSpxhCoFWCe+cG+AG3CUFfrmIk x+z6aLiy0k8SSEP6aX8wWB2NypjnYZgWi6qsFqgihpYYx3HaS3pphujAFJJf9gxEqxi3+IJvxIUd pCRUkDiO8nywkhch63Eeda2qaluWBR7wrdVtW+MfWrRSEBcRGdQ52iwElBIdguC1cHiIVrUJGmYf S3ikqSrlw4NGQn3XBxRDoYIa9KCiKBAQWfZ6KIMNMO96p2qJp6RsUZ54aUEW7PXh/flkfM5ZGceZ liBMr60NvO++/xF7Xlxc4CEOXZzX4bkOaVKKHgRzSbw1lnLLDhWIFygPjOTWMM7irlPE6jzv3bm1 /S8m3R8Mux5bwgAAAABJRU5ErkJggg== --_007_D024C161181BCaoneillpaytronixcom_ Content-Type: image/png; name="733CAEE9-07E6-41EC-974E-D4D2E7030A3C[7].png" Content-Description: 733CAEE9-07E6-41EC-974E-D4D2E7030A3C[7].png Content-Disposition: inline; filename="733CAEE9-07E6-41EC-974E-D4D2E7030A3C[7].png"; size=1515; creation-date="Thu, 28 Aug 2014 15:22:29 GMT"; modification-date="Thu, 28 Aug 2014 15:22:29 GMT" Content-ID: <61B3BE7E-F1B1-431E-A761-65A67DF26D25> Content-Transfer-Encoding: base64 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 --_007_D024C161181BCaoneillpaytronixcom_ Content-Type: image/png; name="4A083710-4544-4D47-973A-174FA5FE4F87[7].png" Content-Description: 4A083710-4544-4D47-973A-174FA5FE4F87[7].png Content-Disposition: inline; filename="4A083710-4544-4D47-973A-174FA5FE4F87[7].png"; size=1758; creation-date="Thu, 28 Aug 2014 15:22:29 GMT"; modification-date="Thu, 28 Aug 2014 15:22:29 GMT" Content-ID: <2BE733E2-B0C2-4AB3-9341-26B230DFEB80> Content-Transfer-Encoding: base64 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 --_007_D024C161181BCaoneillpaytronixcom_--