--_004_D379F0C3F1674C85A93CA6A577CF5DFDivp1_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi all, I've returned to a problem of a few weeks ago. That being, a glitch appears on the DAC output of my 33FJ64GP802's. It's holding things up and I need to find out what the cause is Below is the complete code and attached is the .hex file This is what it looks like http://home.clear.net.nz/pages/joecolquitt/click.jpg (0.2V, 50us, 5ms is per division) The glitches are regularly ~19.5ms apart, which doesn't change with signal frequency. The polarity (about mid-rail) depends on the default data for the DAC, eg 0x0000 or 0xFFFF. This seems to imply that the ADC stops producing data. There's no disruption to the LATB,0 toggling, implying that the t1_loop is always executed. LATB,0 toggles with a 25us period, so the PIC speed is OK In the 4th frame of the 'scope capture, the glitch is present but not clearly seen. The wave itself is a good representation of the input, so it appears the ADC and DAC are synchronised Could someone try the hex in a chip and see if theirs also has the glitch. If I can rule out the chip then it's the code. So far I've not found alterations to the code which makes any difference. I've had problems with silicon on other PICs so not ruling it out. My dsPICs are Rev 12291 The hardware is pretty simple. PIC, decoupling caps, 16MHz crystal + 2 x 22pF. The input signal is DC-biased to mid-rail (1.65V) with a capacitor and 2 resistors TIA Joe ----------------------- Note that Timer1 interrupt code has been commented out. The program runs the same and the glitch happens with either interrupt or loop .include "P33FJ64GP802.inc" .global __reset ;program entry point ; .global __T1Interrupt ;Timer 1 ISR ;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D ; Configuration Bits ;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D config __FOSCSEL,FNOSC_FRC ;7.37MHz internal ; config __FOSCSEL,FNOSC_PRIPLL ;HS crystal= , 16MHz config __FOSC,FCKSM_CSECMD & POSCMD_HS ;clock switching, HS crystal + PLL config __FWDT,FWDTEN_OFF ;Watchdog Timer off config __FPOR,FPWRT_PWR1 ;no brown-ou= t reset config __FGS,GSS_OFF & GWRP_OFF ;no code protect config __FBS,NO_BOOT_CODE ;no boot cod= e config __FICD,JTAGEN_OFF & ICS_PGD2 ;JTAG disabled, ICSP comm channel 2 tosc =3D 38400000 pload =3D tosc/40000 ;Timer1 count @ 40,000 samples/sec, =3D> pload =3D 960 =3D 25us midpoint =3D 0x0000 ;DAC mid-point default value store_add =3D 0x0a00 ;0a00 - 0dfe =3D 512 16-bit samples read_add =3D 0x0c00 limit_add =3D 0x0e00 ;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .text __reset: init: clr LATA clr LATB ;153,600,000 / 16,000,000 =3D 9.6 =3D 48/5 ;16.000000 /5 *48 /4 =3D> 38.400000MHz mov #0b0000000000000011,w0 ; 0 ROI ; 000 DOZE ; 0 DOZEN ; 000 FRCDIV (/1) ; 00 PLLPOST (N2) =3D /2 =3D> 153.6 = =3D> 76.8MHz Fosc ; x =3D 38.4MHz Fcy ; 00011 PLLPRE (N1) =3D /5, 16MHz =3D> 3.2MHz ; FREF input frequency to PFD mov w0,CLKDIV mov #46,w0 ; xxxxxxxx ; mmmmmmmm PLLDIV =3D (46 + 2) =3D 48 * 3.= 2MHz =3D> 153.6MHz mov w0,PLLFBD ;PLL multiplier (M) ;-------------------------------- ;switch to HC + PLL ;Unlock OSCCONH mov #3,w0 ;NOSC =3D 011 (HS + PLL) mov #OSCCONH,w1 mov #0x78,w2 mov #0x9A,w3 mov.b w2,[w1] mov.b w3,[w1] mov.b w0,[w1] ;Unlock OSCCONL mov #1,w0 ;OSWEN mov #OSCCONL,w1 mov #0x46,w2 mov #0x57,w3 mov.b w2,[w1] mov.b w3,[w1] mov.b w0,[w1] btsc OSCCONL,#OSWEN ;switch done bra $-2 ;-------------------------------- mov #0b0000000000000001,w0 ; ----------- ; 1 AN0 mov w0,TRISA mov #0b0000000000000000,w0 ; 00 DAC mov w0,TRISB mov #0x0f00,w15 ;set Stack to 0f00- mov #0x0000,w0 mov w0,CMCON ;no comparators clr PMCON ;PMP disabled mov #0b1111111111111110,w0 ; 0 AN0 only analogue input mov w0,AD1PCFGL mov #0b0000010011100000,w0 ; 0 ADC module off ; x ; 0 continue in idle mode ; x DMA ; x ; 1 12-bit (set when ADC off) ; 00 integer out, 0000 dddd dddd ddd= d ; 111 clock source, auto-convert (SSRC) ; x ; x ; 0 manual sampling, write '1' to SAMP to sample ; 0 sample enable (SAMP) ; 0 done mov w0,AD1CON1 mov #0b0000000000000000,w0 ; 000 AVdd, AVss ; xx ; 0 do not scan inputs ; 00 n/a for 12-bit ; x DMA buffer fill status ; x ; xxxx DMA address increments after each conversion ; x DMA buffer fill mode, always fill from start address ; x DMA alternate sample bit, alway= s Sample A mov w0,AD1CON2 ;Fosc =3D 38.4MHz, Tcy =3D 25ns ;Sampling time, Tsmp =3D SAMC<4:0> * Tad ;12-bit, minimum sample time 3 Tad ;12-bit, conversion time 14 Tad ;ADC clock =3D 117.6ns minimum (70292C.pdf p356) mov #0b0000010100000101,w0 ; 0 Conversion Clock Source bit, ADRC, system clock (Tcy) ; xx ; 00101 SAMC<4:0>, number of Tad for sampling, 15 ; 00 ; 000101 Conversion Clock Select bits, Tcy divider, 6 =3D> Tad =3D 150ns mov w0,AD1CON3 ; xxxxxx+1 Tcy =3D Tad mov #0b0000000000000000,w0 ; xxxxxxxxxxxxx ; 000 DMA buffer size, 1 word mov w0,AD1CON4 ; AD1CHS123 n/a for 12-bit ; AD1CHS0, channel 0 input select mov #0b0000000000000000,w0 ; 0 Channel 0 negative =3D Vrefl (V= ss) ; 00000 Channel 0 positive =3D AN0 mov w0,AD1CHS0 ; AD1CSSL, ADC1 input scan select register low mov #0b0000000000000000,w0 ; 0 DACEN ; x ; 0 DACSIDL ; 0 AMPON ; xxx ; 0 FORM, unsigned integer ; x ; ------- DACFDIV mov #15,w1 ;DACFDIV divider wanted dec w1,w1 ;actual value is wanted-1 add w1,w0,w0 ;153.6 / 15 =3D 40000 * 256 =3D = 10.24 mov w0,DAC1CON mov #0b0000011110000000,w0 ;Auxilliary clock for DAC ; xx xx xxxxxxx ; 0 ;SELACLK, Fvco is source clock for divider ; 111 ;APSTSCLR =3D Fvco/1 ; 1 ;ASRCSEL, 1 =3D primary osc is clock source mov w0,ACLKCON mov #0b1010000010100000,w0 ; 1 LOEN, left outputs enabled ; x - ; 1 LMVOEN, mid-point enabled ; xx - ; 0 LITYPE, IRQ on empty/full ; 0 LFULL, IRQ bit, FIFO full ; 0 LEMPTY, IRQ bit, FIFO empty ; 1 ROEN, right outputs enabled ; x - ; 1 RMVOEN, mid-point enabled ; xx - ; 0 RITYPE, IRQ on empty/full ; 0 RFULL, IRQ bit, FIFO full ; 0 REMPTY, IRQ bit, FIFO empty mov w0,DAC1STAT mov #midpoint,w0 mov w0,DAC1DFLT ;default data ; ;0x0000 =3D signed mid-point ; ;0x8000 =3D unsigned mid-point ; mov #0b0001000000000000,w0 ; 001 Timer1 priority level (1, lowest) ; mov w0,IPC0 bset DAC1CON,#DACEN ;DAC on bset AD1CON1,#ADON ;ADC on ;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D skip_r: clr IEC0 ;disable all interrupts clr IEC1 clr IEC2 clr IEC3 clr IEC4 mov #0b1000000000000000,w0 ; 1 not using nested interrupts mov w0,INTCON1 clr INTCON2 mov #0b0000000000000000,w0 ; 0 Timer1 off/on ; x - ; x idle ; xxxxxx - ; 0 gated accumulation disabled ; 00 pre-scaler =3D 1:1 ; x - ; x when TCS =3D 0 ; 0 TCS, clock source, internal ; x - mov w0,T1CON mov #store_add,w8 ;0a00 mov #read_add,w9 ;0c00 mov #pload,w0 ;load Timer1 mov w0,PR1 bclr IFS0,#T1IF ;clear Timer1 IRQ flag bset T1CON,#TON ;Timer1 on ; bset IEC0,#T1IE ;enable Timer1 interrupts ;here: bra here ;wait here for IRQ ;------------------------------------ ; Timer1 ISR ; __T1Interrupt: t1_loop: btss IFS0,#T1IF bra $-2 bclr IFS0,#T1IF mov #pload,w0 ;reload Timer1 mov w0,PR1 ;Note - if the **** instructions are commented out, the glitch goes away. ;But of course there's no input signal processing bset AD1CON1,#SAMP ;sample **** btss AD1CON1,#DONE ; **** bra $-2 ; **** mov ADC1BUF0,w0 ;send ADC result to circular buffer **** mov w0,[w8++] ; **** sl w0,#4,w0 ;* 16 mov w0,DAC1LDAT ;and also to DAC left mov #limit_add,w0 xor w0,w8,w0 ;test for 0e00 limit bra nz,do_dacr mov #store_add,w8 ;reset to buffer start do_dacr: mov [w9++],w0 ;fetch delayed data (0000 dddd dddd dddd) sl w0,#4,w0 ;* 16 mov w0,DAC1RDAT ;send to DAC right mov #limit_add,w0 xor w0,w9,w0 ;test for limit bra nz,toggle mov #store_add,w9 ;reset to buffer start toggle: btg LATB,#0 ;activity monitor, confirm 25us T1 period bra t1_loop .end --_004_D379F0C3F1674C85A93CA6A577CF5DFDivp1_ Content-Type: application/octet-stream; name="adc-dac.hex" Content-Description: adc-dac.hex Content-Disposition: attachment; filename="adc-dac.hex"; size=4635; creation-date="Mon, 27 Jun 2016 06:13:05 GMT"; modification-date="Mon, 27 Jun 2016 06:13:05 GMT" Content-Transfer-Encoding: base64 OjAyMDAwMDA0MDAwMGZhDQo6MDgwMDAwMDAzZWFiMDQwMDAwMDAwMDAwMGINCjowMjAwMDAwNDAw MDBmYQ0KOjAyMDAwMDA0MDFmMDA5DQo6MDQwMDAwMDAzMGZmMDAwMGNkDQo6MDIwMDAwMDQwMDAw ZmENCjowMjAwMDAwNDAxZjAwOQ0KOjA0MDAwODAwZmZmZjAwMDBmNg0KOjAyMDAwMDA0MDAwMGZh DQo6MDIwMDAwMDQwMWYwMDkNCjowNDAwMGMwMGY4ZmYwMDAwZjkNCjowMjAwMDAwNDAwMDBmYQ0K OjAyMDAwMDA0MDFmMDA5DQo6MDQwMDEwMDA3ZWZmMDAwMDZmDQo6MDIwMDAwMDQwMDAwZmENCjow MjAwMDAwNDAxZjAwOQ0KOjA0MDAxNDAwN2ZmZjAwMDA2YQ0KOjAyMDAwMDA0MDAwMGZhDQo6MDIw MDAwMDQwMWYwMDkNCjowNDAwMTgwMGY4ZmYwMDAwZWQNCjowMjAwMDAwNDAwMDBmYQ0KOjAyMDAw MDA0MDFmMDA5DQo6MDQwMDFjMDBkZWZmMDAwMDAzDQo6MDIwMDAwMDQwMDAwZmENCjoxMDAwMDgw MDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwNTQNCjoxMDAwMTgwMDNhYWIwMDAwM2Fh YjAwMDAzYWFiMDAwMDNhYWIwMDAwNDQNCjoxMDAwMjgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAw MDNhYWIwMDAwMzQNCjoxMDAwMzgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwMjQN CjoxMDAwNDgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwMTQNCjoxMDAwNTgwMDNh YWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwMDQNCjoxMDAwNjgwMDNhYWIwMDAwM2FhYjAw MDAzYWFiMDAwMDNhYWIwMDAwZjQNCjoxMDAwNzgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNh YWIwMDAwZTQNCjoxMDAwODgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwZDQNCjox MDAwOTgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwYzQNCjoxMDAwYTgwMDNhYWIw MDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwYjQNCjoxMDAwYjgwMDNhYWIwMDAwM2FhYjAwMDAz YWFiMDAwMDNhYWIwMDAwYTQNCjoxMDAwYzgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIw MDAwOTQNCjoxMDAwZDgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwODQNCjoxMDAw ZTgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwNzQNCjoxMDAwZjgwMDNhYWIwMDAw M2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwNjQNCjoxMDAxMDgwMDNhYWIwMDAwM2FhYjAwMDAzYWFi MDAwMDNhYWIwMDAwNTMNCjoxMDAxMTgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAw NDMNCjoxMDAxMjgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwMzMNCjoxMDAxMzgw MDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwMjMNCjoxMDAxNDgwMDNhYWIwMDAwM2Fh YjAwMDAzYWFiMDAwMDNhYWIwMDAwMTMNCjoxMDAxNTgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAw MDNhYWIwMDAwMDMNCjoxMDAxNjgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwZjMN CjoxMDAxNzgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwZTMNCjoxMDAxODgwMDNh YWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwZDMNCjoxMDAxOTgwMDNhYWIwMDAwM2FhYjAw MDAzYWFiMDAwMDNhYWIwMDAwYzMNCjoxMDAxYTgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNh YWIwMDAwYjMNCjoxMDAxYjgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwYTMNCjox MDAxYzgwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwOTMNCjoxMDAxZDgwMDNhYWIw MDAwM2FhYjAwMDAzYWFiMDAwMDNhYWIwMDAwODMNCjoxMDAxZTgwMDNhYWIwMDAwM2FhYjAwMDAz YWFiMDAwMDNhYWIwMDAwNzMNCjowODAxZjgwMDNhYWIwMDAwM2FhYjAwMDAzNQ0KOjAyMDAwMDA0 MDAwMGZhDQo6MTAwMjA4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDUyDQo6MTAw MjE4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDQyDQo6MTAwMjI4MDAzYWFiMDAw MDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDMyDQo6MTAwMjM4MDAzYWFiMDAwMDNhYWIwMDAwM2Fh YjAwMDAzYWFiMDAwMDIyDQo6MTAwMjQ4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAw MDEyDQo6MTAwMjU4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDAyDQo6MTAwMjY4 MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGYyDQo6MTAwMjc4MDAzYWFiMDAwMDNh YWIwMDAwM2FhYjAwMDAzYWFiMDAwMGUyDQo6MTAwMjg4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAw MDAzYWFiMDAwMGQyDQo6MTAwMjk4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGMy DQo6MTAwMmE4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGIyDQo6MTAwMmI4MDAz YWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGEyDQo6MTAwMmM4MDAzYWFiMDAwMDNhYWIw MDAwM2FhYjAwMDAzYWFiMDAwMDkyDQo6MTAwMmQ4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAz YWFiMDAwMDgyDQo6MTAwMmU4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDcyDQo6 MTAwMmY4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDYyDQo6MTAwMzA4MDAzYWFi MDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDUxDQo6MTAwMzE4MDAzYWFiMDAwMDNhYWIwMDAw M2FhYjAwMDAzYWFiMDAwMDQxDQo6MTAwMzI4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFi MDAwMDMxDQo6MTAwMzM4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDIxDQo6MTAw MzQ4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDExDQo6MTAwMzU4MDAzYWFiMDAw MDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDAxDQo6MTAwMzY4MDAzYWFiMDAwMDNhYWIwMDAwM2Fh YjAwMDAzYWFiMDAwMGYxDQo6MTAwMzc4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAw MGUxDQo6MTAwMzg4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGQxDQo6MTAwMzk4 MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMGMxDQo6MTAwM2E4MDAzYWFiMDAwMDNh YWIwMDAwM2FhYjAwMDAzYWFiMDAwMGIxDQo6MTAwM2I4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAw MDAzYWFiMDAwMGExDQo6MTAwM2M4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDkx DQo6MTAwM2Q4MDAzYWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDgxDQo6MTAwM2U4MDAz YWFiMDAwMDNhYWIwMDAwM2FhYjAwMDAzYWFiMDAwMDcxDQo6MDgwM2Y4MDAzYWFiMDAwMDNhYWIw MDAwMzMNCjowMjAwMDAwNDAwMDBmYQ0KOjAyMDAwMDA0MDAwMWY5DQo6MTA1NjdjMDBjNDIyZWYw MGNjMjJlZjAwMzAwMDIwMDAyMDNhODgwMDNhDQo6MTA1NjhjMDBlMDAyMjAwMDMwM2E4ODAwMzAw MDIwMDAzMTc0MjAwMDA1DQo6MTA1NjljMDA4MjA3MjAwMGEzMDkyMDAwODI0ODc4MDA4MzQ4Nzgw MDA0DQo6MTA1NmFjMDA4MDQ4NzgwMDEwMDAyMDAwMjE3NDIwMDA2MjA0MjAwMDQzDQo6MTA1NmJj MDA3MzA1MjAwMDgyNDg3ODAwODM0ODc4MDA4MDQ4NzgwMDgxDQo6MTA1NmNjMDA0MjA3YWYwMGZl ZmYzNzAwMTAwMDIwMDAwMDE2ODgwMGQ0DQo6MTA1NmRjMDAwMDAwMjAwMDQwMTY4ODAwMGZmMDIw MDAwMDAwMjAwMDgxDQo6MTA1NmVjMDA4MDMxODgwMDAwMjZlZjAwZTBmZjJmMDA2MDE5ODgwMDUx DQo6MTA1NmZjMDAwMDRlMjAwMDAwMTk4ODAwMDAwMDIwMDAxMDE5ODgwMGJlDQo6MTA1NzBjMDA1 MDUwMjAwMDIwMTk4ODAwMDAwMDIwMDA5MDE5ODgwMGJiDQo6MTA1NzFjMDAwMDAwMjAwMDQwMTk4 ODAwMDAwMDIwMDBmMTAwMjAwMDRiDQo6MTA1NzJjMDA4MTAwZTkwMDAwODA0MDAwODAxZjg4MDAw MDc4MjAwMDg0DQo6MTA1NzNjMDA1MDNhODgwMDAwMGEyYTAwOTAxZjg4MDAwMDAwMjAwMGMwDQo6 MTA1NzRjMDBhMDFmODgwMGYxZTNhODAwMjFlM2E4MDA5NDIwZWYwMDNiDQo6MTA1NzVjMDA5NjIw ZWYwMDk4MjBlZjAwOWEyMGVmMDA5YzIwZWYwMDlkDQo6MTA1NzZjMDAwMDAwMjgwMDAwMDQ4ODAw ODIyMGVmMDAwMDAwMjAwMGM4DQo6MTA1NzdjMDAyMDA4ODgwMDA4YTAyMDAwMDljMDIwMDAwMDNj MjAwMDYwDQo6MTA1NzhjMDAxMDA4ODgwMDg0NjBhOTAwMDVlMWE4MDA4NDYwYWUwMGMwDQo6MTA1 NzljMDBmZWZmMzcwMDg0NjBhOTAwMDAzYzIwMDAxMDA4ODgwMDQwDQo6MTA1N2FjMDAyMDIzYTgw MDIwMDNhZTAwZmVmZjM3MDAwMDE4ODAwMDY1DQo6MTA1N2JjMDAwMDFjNzgwMDQ0MDBkZDAwYzAx Zjg4MDAwMGUwMjAwMGMxDQo6MTA1N2NjMDAwODAwNjgwMDAxMDAzYTAwMDhhMDIwMDAzOTAwNzgw MGE5DQo6MTA1N2RjMDA0NDAwZGQwMGIwMWY4ODAwMDBlMDIwMDAwOTAwNjgwMGQ0DQo6MTA1N2Vj MDAwMTAwM2EwMDA5YTAyMDAwY2MwMmFhMDBlN2ZmMzcwMDE0DQo6MDQ1N2ZjMDAwMDQwMDYwMDYz DQo6MDIwMDAwMDQwMDAwZmENCjowMjAwMDAwNDAwMDFmOQ0KOjA0NTY3ODAwMDAwMDAwMDAyZQ0K OjAyMDAwMDA0MDAwMGZhDQo6MDIwMDAwMDQwMDAxZjkNCjowNDU2NzQwMDAwMDBmZTAwMzQNCjow MDAwMDAwMUZGDQo= --_004_D379F0C3F1674C85A93CA6A577CF5DFDivp1_ Content-Type: text/plain; name="Certification" Content-Description: "Certification" Content-Disposition: attachment; filename="Certification"; size=208; creation-date="Mon, 27 Jun 2016 06:13:05 GMT"; modification-date="Mon, 27 Jun 2016 06:13:05 GMT" Content-Transfer-Encoding: base64 LS0tLS0NCk5vIHZpcnVzIGZvdW5kIGluIHRoaXMgbWVzc2FnZS4NCkNoZWNrZWQgYnkgQVZHIC0g d3d3LmF2Zy5jb20NClZlcnNpb246IDIwMTYuMC43NjQwIC8gVmlydXMgRGF0YWJhc2U6IDQ2MDQv MTI0OTkgLSBSZWxlYXNlIERhdGU6IDA2LzI2LzE2 --_004_D379F0C3F1674C85A93CA6A577CF5DFDivp1_ Content-Type: text/plain; name="ATT00001.txt" Content-Description: ATT00001.txt Content-Disposition: attachment; filename="ATT00001.txt"; size=224; creation-date="Mon, 27 Jun 2016 06:13:05 GMT"; modification-date="Mon, 27 Jun 2016 06:13:05 GMT" Content-Transfer-Encoding: base64 LS0gDQpodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYg bGlzdCBhcmNoaXZlDQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdA0KaHR0 cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QNCg== --_004_D379F0C3F1674C85A93CA6A577CF5DFDivp1_-- .