From 0fdbac981e0b43ddeee4c9c159ed5a4f0b9bc7b0 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 5 Jan 2017 12:58:49 +0100 Subject: [PATCH 1/2] should work for serial comm hv for 9m --- .../eigerDetectorServer/9mhvserial_bf.c | 188 ++++++++++++ .../eigerDetectorServer/FebControl.c | 267 +++++++++++++----- .../eigerDetectorServer/FebControl.h | 4 + .../eigerDetectorServer/Makefile | 10 +- ....0.16.4 => eigerDetectorServerv2.2.0.16.5} | Bin 281889 -> 284109 bytes .../bin/hv9m_blackfin_server | Bin 0 -> 30204 bytes .../slsDetectorServer_defs.h | 5 + 7 files changed, 400 insertions(+), 74 deletions(-) create mode 100644 slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.2.0.16.4 => eigerDetectorServerv2.2.0.16.5} (52%) create mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/hv9m_blackfin_server diff --git a/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c b/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c new file mode 100644 index 000000000..ee7b51e05 --- /dev/null +++ b/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c @@ -0,0 +1,188 @@ +#include "ansi.h" + +#include /* POSIX terminal control definitions */ +#include +#include // atoi +#include // File control definitions +#include // ioctl +#include // read, close +#include // memset +#include // I2C_SLAVE, __u8 reg + +#define PORTNAME "/dev/ttyBF1" +#define GOODBYE 200 +#define BUFFERSIZE 255 +#define I2C_DEVICE_FILE "/dev/i2c-0" +#define I2C_DEVICE_ADDRESS 0x4C +//#define I2C_DEVICE_ADDRESS 0x48 +#define I2C_REGISTER_ADDRESS 0x40 + + + +int i2c_open(const char* file,unsigned int addr){ + + //device file + int fd = open( file, O_RDWR ); + if (fd < 0) { + cprintf(RED,"Warning: Unable to open file %s\n",file); + return -1; + } + + //device address + if( ioctl( fd, I2C_SLAVE, addr&0x7F ) < 0 ) { + cprintf(RED,"Warning: Unable to set slave address:0x%x \n",addr); + return -2; + } + return fd; +} + + +int i2c_read(){ + + int fd = i2c_open(I2C_DEVICE_FILE, I2C_DEVICE_ADDRESS); + __u8 reg = I2C_REGISTER_ADDRESS & 0xff; + + unsigned char buf = reg; + if (write(fd, &buf, 1)!= 1){ + cprintf(RED,"Warning: Unable to write read request to register %d\n", reg); + return -1; + } + //read and update value (but old value read out) + if(read(fd, &buf, 1) != 1){ + cprintf(RED,"Warning: Unable to read register %d\n", reg); + return -2; + } + //read again to read the updated value + if(read(fd, &buf, 1) != 1){ + cprintf(RED,"Warning: Unable to read register %d\n", reg); + return -2; + } + close(fd); + return buf; +} + + +int i2c_write(unsigned int value){ + + __u8 val = value & 0xff; + + int fd = i2c_open(I2C_DEVICE_FILE, I2C_DEVICE_ADDRESS); + if(fd < 0) + return fd; + + __u8 reg = I2C_REGISTER_ADDRESS & 0xff; + char buf[3]; + buf[0] = reg; + buf[1] = val; + if (write(fd, buf, 2) != 2) { + cprintf(RED,"Warning: Unable to write %d to register %d\n",val, reg); + return -1; + } + + close(fd); + return 0; +} + + + + + +int main(int argc, char* argv[]) { + + int fd = open(PORTNAME, O_RDWR | O_NOCTTY); + if(fd < 0){ + cprintf(RED,"Warning: Unable to open port %s\n", PORTNAME); + return -1; + } + + struct termios serial_conf; + // Get the current options for the port + tcgetattr(fd, &serial_conf); + // reset structure + memset(&serial_conf,0,sizeof(serial_conf)); + // control options + serial_conf.c_cflag = B2400 | CS8 | CREAD | CLOCAL; + // input options + serial_conf.c_iflag = IGNPAR; + // output options + serial_conf.c_oflag = 0; + // line options + serial_conf.c_lflag = ICANON; + // flush input + tcflush(fd, TCIFLUSH); + // set new options for the port, TCSANOW:changes occur immediately without waiting for data to complete + tcsetattr(fd, TCSANOW, &serial_conf); + + + + + int ret = 0; + int n = 0; + int ival= 0; + char buffer[BUFFERSIZE]=""; + cprintf(GREEN,"Ready...\n"); + + while(ret != GOODBYE){ + memset(buffer, 0, BUFFERSIZE); + buffer[BUFFERSIZE-1]='\n'; + + n = read(fd,buffer,BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Received %d Bytes\n", n); +#endif + cprintf(BLUE,"Got message: %s\n",buffer); + + switch(buffer[0]){ + case 'p': + if (!sscanf(&buffer[1],"%d",&ival)){ + cprintf(RED,"Warning: cannot scan voltage value\n"); + break; + } + + if(i2c_write(ival)<0) + strcpy(buffer,"failed"); + else + strcpy(buffer,"successful"); + cprintf(GREEN,"%s\n",buffer); + n = write(fd, buffer, BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Sent %d Bytes\n", n); +#endif + break; + + case 'g': + ival = i2c_read(); + //ok/ fail + if(ival < 0) + strcpy(buffer,"failed"); + else + strcpy(buffer,"successful"); + n = write(fd, buffer, BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Sent %d Bytes\n", n); +#endif + //value + if(ival >= 0){ + cprintf(GREEN,"%d\n",ival); + sprintf(buffer,"%d\n",ival); + n = write(fd, buffer, BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Sent %d Bytes\n", n); +#endif + }else cprintf(GREEN,"%s\n",buffer); + break; + + case 'e': + printf("Exiting Program\n"); + ret = GOODBYE; + break; + default: + printf("Unknown Command\n"); + break; + } + } + + close(fd); + printf("Goodbye Serial Communication for HV(9M)\n"); + return 0; +} diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index 1786f16a3..1cc31b39b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -12,13 +12,7 @@ #include #include #include - -//#include -//#include -//#include -//#include - - +#include // POSIX terminal control definitions(CS8, CREAD, CLOCAL..) #include "FebRegisterDefs.h" #include "FebControl.h" @@ -68,6 +62,7 @@ double Feb_Control_rate_meas[16384]; double ratemax=-1; int Feb_Control_activated = 1; +int Feb_Control_hv_fd = -1; void Module_Module(struct Module* mod,unsigned int number, unsigned int address_top){ @@ -224,11 +219,45 @@ int Feb_Control_Init(int master, int top, int normal, int module_num){ if(Feb_Control_activated) Feb_Interface_SetByteOrder(); + //master of 9M, set up high voltage serial communication to blackfin + if(Feb_control_master && !Feb_control_normal){ + if(!Feb_Control_SetupSerialCommunication()) + return 0; + } return 1; } +int Feb_Control_SetupSerialCommunication(){ + + Feb_Control_hv_fd = open(SPECIAL9M_HIGHVOLTAGE_PORT, O_RDWR | O_NOCTTY); + if(Feb_Control_hv_fd < 0){ + cprintf(RED,"Warning: Unable to open port %s to set up high voltage serial communciation to the blackfin\n", SPECIAL9M_HIGHVOLTAGE_PORT); + return 0; + } + + struct termios serial_conf; + // Get the current options for the port + tcgetattr(Feb_Control_hv_fd, &serial_conf); + // reset structure + memset(&serial_conf,0,sizeof(serial_conf)); + // control options + serial_conf.c_cflag = B2400 | CS8 | CREAD | CLOCAL;//57600 too high + // input options + serial_conf.c_iflag = IGNPAR; + // output options + serial_conf.c_oflag = 0; + // line options + serial_conf.c_lflag = ICANON; + // flush input + tcflush(Feb_Control_hv_fd, TCIFLUSH); + // set new options for the port, TCSANOW:changes occur immediately without waiting for data to complete + tcsetattr(Feb_Control_hv_fd, TCSANOW, &serial_conf); + + return 1; +} + void Feb_Control_PrintModuleList(){ unsigned int i; @@ -496,89 +525,183 @@ float Feb_Control_DACToVoltage(unsigned int digital,unsigned int nsteps,float vm //only master gets to call this function int Feb_Control_SetHighVoltage(int value){ - - if(!Feb_control_normal){ - cprintf(RED,"\nError: Setting High Voltage not implemented for special modules\n"); - return 0; - } - - printf(" Setting High Voltage: %d(v)\t",value); - - static const unsigned int nsteps = 256; - static const float vmin=0; - static const float vmax=300; + printf(" Setting High Voltage: %dV\t",value); + /* + * maximum voltage of the hv dc/dc converter: + * 300 for single module power distribution board + * 200 for 9M power distribution board + * but limit is 200V for both + */ + const float vmin=0; + float vmax=200; + if(Feb_control_normal) + vmax=300; + const float vlimit=200; + const unsigned int ntotalsteps = 256; + unsigned int nsteps = ntotalsteps*vlimit/vmax; unsigned int dacval = 0; - //open file - FILE* fd=fopen("/sys/class/hwmon/hwmon5/device/out0_output","w"); - if(fd==NULL){ - cprintf(RED,"\nWarning: Could not open file for writing to set high voltage\n"); - return 0; - } //calculate dac value - if(!Feb_Control_VoltageToDAC(value,&dacval,nsteps,vmin,vmax)){ - cprintf(RED,"\nWarning: SetHighVoltage bad value, %d. The range is 0 to 300 V.\n",value); + if(!Feb_Control_VoltageToDAC(value,&dacval,nsteps,vmin,vlimit)){ + cprintf(RED,"\nWarning: SetHighVoltage bad value, %d. The range is 0 to %d V.\n",value, (int)vlimit); return 0; } - //convert to string, add 0 and write to file - fprintf(fd, "%d0\n", dacval); + printf("(%d dac): ",dacval); - printf("%d(dac)\n", dacval); - fclose(fd); - - return 1; + return Feb_Control_SendHighVoltage(dacval); } int Feb_Control_GetHighVoltage(int* value){ - - if(!Feb_control_normal){ - cprintf(RED,"\nError: Getting High Voltage not implemented for special modules\n"); - return 0; - } - - printf(" Getting High Voltage: "); - static const unsigned int nsteps = 256; - static const float vmin=0; - static const float vmax=300; - + printf(" Getting High Voltage:\t"); unsigned int dacval = 0; - size_t readbytes=0; - char* line=NULL; + if(!Feb_Control_ReceiveHighVoltage(&dacval)) + return 0; - //open file - FILE* fd=fopen("/sys/class/hwmon/hwmon5/device/in0_input","r"); - if(fd==NULL){ - cprintf(RED,"\nWarning: Could not open file for writing to get high voltage\n"); - return 0; - } - // Read twice, since the first value is sometimes outdated - if(getline(&line, &readbytes, fd) == -1){ - cprintf(RED,"\nWarning: could not read file to get high voltage\n"); - return 0; - } - rewind(fd); - free(line); - readbytes=0; - readbytes = getline(&line, &readbytes, fd); - if(readbytes == -1){ - cprintf(RED,"\nWarning: could not read file to get high voltage\n"); - return 0; - } - - // Remove the trailing 0 - dacval = atoi(line)/10; - //convert dac to v - *value = (int)(Feb_Control_DACToVoltage(dacval,nsteps,vmin,vmax)+0.5); - printf("%d(v)\t%d(dac)\n", *value, dacval); - free(line); - fclose(fd); + //ok, convert dac to v + /* + * maximum voltage of the hv dc/dc converter: + * 300 for single module power distribution board + * 200 for 9M power distribution board + * but limit is 200V for both + */ + const float vmin=0; + float vmax=200; + if(Feb_control_normal) + vmax=300; + const float vlimit=200; + const unsigned int ntotalsteps = 256; + unsigned int nsteps = ntotalsteps*vlimit/vmax; + *value = (int)(Feb_Control_DACToVoltage(dacval,nsteps,vmin,vlimit)+0.5); + printf("(%d dac)\t%dV\n", dacval, *value); return 1; } +int Feb_Control_SendHighVoltage(int dacvalue){ + //normal + if(Feb_control_normal){ + //open file + FILE* fd=fopen(NORMAL_HIGHVOLTAGE_OUTPUTPORT,"w"); + if(fd==NULL){ + cprintf(RED,"\nWarning: Could not open file for writing to set high voltage\n"); + return 0; + } + //convert to string, add 0 and write to file + fprintf(fd, "%d0\n", dacvalue); + fclose(fd); + } + + //9m + else{ + if (Feb_Control_hv_fd == -1){ + cprintf(RED,"\nWarning: High voltage serial communication not set up for 9m\n"); + return 0; + } + + char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]=""; + buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-1]='\n'; + int n = 0; + sprintf(buffer,"p%d",dacvalue); + n = write(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Sent %d Bytes\n", n); +#endif + + //ok/fail + n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); + #ifdef VERBOSE + cprintf(BLUE,"Received %d Bytes\n", n); + #endif + if(buffer[0] == 'f'){ + cprintf(RED,"\nError: Failed to set high voltage\n"); + return 0; + } + cprintf(GREEN,"%s\n",buffer); + } + + return 1; +} + + + + + + + +int Feb_Control_ReceiveHighVoltage(unsigned int* value){ + + //normal + if(Feb_control_normal){ + //open file + FILE* fd=fopen(NORMAL_HIGHVOLTAGE_INPUTPORT,"r"); + if(fd==NULL){ + cprintf(RED,"\nWarning: Could not open file for writing to get high voltage\n"); + return 0; + } + + //read, assigning line to null and readbytes to 0 then getline allocates initial buffer + size_t readbytes=0; + char* line=NULL; + if(getline(&line, &readbytes, fd) == -1){ + cprintf(RED,"\nWarning: could not read file to get high voltage\n"); + return 0; + } + //read again to read the updated value + rewind(fd); + free(line); + readbytes=0; + readbytes = getline(&line, &readbytes, fd); + if(readbytes == -1){ + cprintf(RED,"\nWarning: could not read file to get high voltage\n"); + return 0; + } + // Remove the trailing 0 + *value = atoi(line)/10; + free(line); + fclose(fd); + } + + + //9m + else{ + if (Feb_Control_hv_fd == -1){ + cprintf(RED,"\nWarning: High voltage serial communication not set up for 9m\n"); + return 0; + } + char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]=""; + buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-1]='\n'; + int n = 0; + //request + strcpy(buffer,"g"); + n = write(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Sent %d Bytes\n", n); +#endif + + //ok/fail + n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Received %d Bytes\n", n); +#endif + if(buffer[0] == 'f'){ + cprintf(RED,"\nWarning: failed to read high voltage\n"); + return 0; + } + + n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); +#ifdef VERBOSE + cprintf(BLUE,"Received %d Bytes\n", n); +#endif + if (!sscanf(buffer,"%d",value)){ + cprintf(RED,"\nWarning: failed to scan high voltage read\n"); + return 0; + } + } + return 1; +} diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.h b/slsDetectorSoftware/eigerDetectorServer/FebControl.h index 620ab003a..2d7abf369 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.h @@ -112,6 +112,7 @@ int Feb_Control_GetModuleNumber(); void Feb_Control_FebControl(); int Feb_Control_Init(int master, int top, int normal, int module_num); + int Feb_Control_SetupSerialCommunication(); int Feb_Control_CheckSetup(); unsigned int Feb_Control_GetNModules(); @@ -120,6 +121,9 @@ int Feb_Control_GetModuleNumber(); int Feb_Control_SetHighVoltage(int value); int Feb_Control_GetHighVoltage(int* value); + int Feb_Control_SendHighVoltage(int dacvalue); + int Feb_Control_ReceiveHighVoltage(unsigned int* value); + int Feb_Control_SetIDelays(unsigned int module_num, unsigned int ndelay_units); int Feb_Control_SetIDelays1(unsigned int module_num, unsigned int chip_pos, unsigned int ndelay_units); diff --git a/slsDetectorSoftware/eigerDetectorServer/Makefile b/slsDetectorSoftware/eigerDetectorServer/Makefile index 462930bac..c615356b9 100755 --- a/slsDetectorSoftware/eigerDetectorServer/Makefile +++ b/slsDetectorSoftware/eigerDetectorServer/Makefile @@ -1,5 +1,6 @@ CC = powerpc-4xx-softfloat-gcc CCX = powerpc-4xx-softfloat-g++ +BLACKFIN_CC = bfin-uclinux-gcc CFLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSE #-DVIRTUAL -DPCCOMPILE -DMARTIN LDLIBS += -lm -lstdc++ @@ -15,7 +16,7 @@ SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c OBJS = $(SRC_CLNT:.c=.o) -all: clean $(PROGS) #feb_debug beb_debug +all: clean $(PROGS) hv9m_blackfin_server #feb_debug beb_debug boot: $(OBJS) @@ -33,7 +34,12 @@ feb_debug:$(SRC_CLNT2) beb_debug:$(SRC_CLNT3) $(CCX) -o beb_debug $(SRC_CLNT3) -I. mv beb_debug $(DESTDIR) + +hv9m_blackfin_server:9mhvserial_bf.c + $(BLACKFIN_CC) -o hv9m_blackfin_server 9mhvserial_bf.c -Wall + mv hv9m_blackfin_server $(DESTDIR) + rm hv9m_blackfin_server.gdb clean: - rm -rf $(DESTDIR)/$(PROGS) *.o + rm -rf $(DESTDIR)/$(PROGS) *.o $(DESTDIR)/hv9m_blackfin_server diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.5 similarity index 52% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.5 index 9eaa0aef85a1e69ee8e27900e83a96298b37354d..fa4b08d2169c50dc5096b8c97bd6fad9a469b2e6 100755 GIT binary patch delta 59354 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 z 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 O4fiAj;>UYpBK`}p{|Sx& delta 56821 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 literal 0 HcmV?d00001 diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index f4dfdc073..650ad9890 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -44,6 +44,11 @@ enum detAdcIndex{TEMP_FPGAEXT, TEMP_10GE, TEMP_DCDC, TEMP_SODL, TEMP_SODR, TEMP_ enum detNetworkParameter{TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G}; +#define NORMAL_HIGHVOLTAGE_INPUTPORT "/sys/class/hwmon/hwmon5/device/in0_input" +#define NORMAL_HIGHVOLTAGE_OUTPUTPORT "/sys/class/hwmon/hwmon5/device/out0_output" +#define SPECIAL9M_HIGHVOLTAGE_PORT "/dev/ttyS1" +#define SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE 8 + #endif /* SLSDETECTORSERVER_DEFS_H_ */ From 111856ed7b70b20f8d7420e6c68903ede5b12256 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 6 Jan 2017 15:16:05 +0100 Subject: [PATCH 2/2] hv should work now --- .../eigerDetectorServer/9mhvserial_bf.c | 21 +++--- .../eigerDetectorServer/FebControl.c | 60 ++++++++++-------- .../eigerDetectorServer/FebControl.h | 3 +- .../eigerDetectorServer/Makefile | 4 +- .../bin/eigerDetectorServerv2.2.0.16.5 | Bin 284109 -> 284229 bytes .../bin/hv9m_blackfin_server | Bin 30204 -> 30184 bytes .../slsDetectorFunctionList.c | 18 ++++-- .../slsDetectorServer_defs.h | 2 +- .../slsDetectorServer_funcs.c | 34 +++++++--- 9 files changed, 88 insertions(+), 54 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c b/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c index ee7b51e05..4e4ee0ac6 100644 --- a/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c +++ b/slsDetectorSoftware/eigerDetectorServer/9mhvserial_bf.c @@ -11,7 +11,7 @@ #define PORTNAME "/dev/ttyBF1" #define GOODBYE 200 -#define BUFFERSIZE 255 +#define BUFFERSIZE 16 #define I2C_DEVICE_FILE "/dev/i2c-0" #define I2C_DEVICE_ADDRESS 0x4C //#define I2C_DEVICE_ADDRESS 0x48 @@ -119,13 +119,12 @@ int main(int argc, char* argv[]) { int ret = 0; int n = 0; int ival= 0; - char buffer[BUFFERSIZE]=""; + char buffer[BUFFERSIZE]; + buffer[BUFFERSIZE-2] = '\0'; + buffer[BUFFERSIZE-1] = '\n'; cprintf(GREEN,"Ready...\n"); while(ret != GOODBYE){ - memset(buffer, 0, BUFFERSIZE); - buffer[BUFFERSIZE-1]='\n'; - n = read(fd,buffer,BUFFERSIZE); #ifdef VERBOSE cprintf(BLUE,"Received %d Bytes\n", n); @@ -140,9 +139,9 @@ int main(int argc, char* argv[]) { } if(i2c_write(ival)<0) - strcpy(buffer,"failed"); + strcpy(buffer,"fail "); else - strcpy(buffer,"successful"); + strcpy(buffer,"success "); cprintf(GREEN,"%s\n",buffer); n = write(fd, buffer, BUFFERSIZE); #ifdef VERBOSE @@ -154,9 +153,9 @@ int main(int argc, char* argv[]) { ival = i2c_read(); //ok/ fail if(ival < 0) - strcpy(buffer,"failed"); + strcpy(buffer,"fail "); else - strcpy(buffer,"successful"); + strcpy(buffer,"success "); n = write(fd, buffer, BUFFERSIZE); #ifdef VERBOSE cprintf(BLUE,"Sent %d Bytes\n", n); @@ -164,7 +163,7 @@ int main(int argc, char* argv[]) { //value if(ival >= 0){ cprintf(GREEN,"%d\n",ival); - sprintf(buffer,"%d\n",ival); + sprintf(buffer,"%d ",ival); n = write(fd, buffer, BUFFERSIZE); #ifdef VERBOSE cprintf(BLUE,"Sent %d Bytes\n", n); @@ -177,7 +176,7 @@ int main(int argc, char* argv[]) { ret = GOODBYE; break; default: - printf("Unknown Command\n"); + printf("Unknown Command. buffer:%s\n",buffer); break; } } diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index 1cc31b39b..ead19d2b7 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -219,18 +219,14 @@ int Feb_Control_Init(int master, int top, int normal, int module_num){ if(Feb_Control_activated) Feb_Interface_SetByteOrder(); - //master of 9M, set up high voltage serial communication to blackfin - if(Feb_control_master && !Feb_control_normal){ - if(!Feb_Control_SetupSerialCommunication()) - return 0; - } - return 1; } -int Feb_Control_SetupSerialCommunication(){ - +int Feb_Control_OpenSerialCommunication(){ + cprintf(BG_BLUE,"opening serial communication of hv\n"); + if(Feb_Control_hv_fd != -1) + close(Feb_Control_hv_fd); Feb_Control_hv_fd = open(SPECIAL9M_HIGHVOLTAGE_PORT, O_RDWR | O_NOCTTY); if(Feb_Control_hv_fd < 0){ cprintf(RED,"Warning: Unable to open port %s to set up high voltage serial communciation to the blackfin\n", SPECIAL9M_HIGHVOLTAGE_PORT); @@ -258,6 +254,11 @@ int Feb_Control_SetupSerialCommunication(){ return 1; } +void Feb_Control_CloseSerialCommunication(){ + if(Feb_Control_hv_fd != -1) + close(Feb_Control_hv_fd); +} + void Feb_Control_PrintModuleList(){ unsigned int i; @@ -376,7 +377,8 @@ int Feb_Control_CheckSetup(int master){ ok=0; } } - if((Feb_control_master) &&(Module_GetHighVoltage(&modules[i])<0)){ + int value = 0; + if((Feb_control_master) && (!Feb_Control_GetHighVoltage(&value))){ cprintf(RED,"Warning: module %d's high voltage not set.\n",Module_GetModuleNumber(&modules[i])); ok=0; } @@ -525,7 +527,7 @@ float Feb_Control_DACToVoltage(unsigned int digital,unsigned int nsteps,float vm //only master gets to call this function int Feb_Control_SetHighVoltage(int value){ - printf(" Setting High Voltage: %dV\t",value); + printf(" Setting High Voltage:\t"); /* * maximum voltage of the hv dc/dc converter: * 300 for single module power distribution board @@ -544,9 +546,9 @@ int Feb_Control_SetHighVoltage(int value){ //calculate dac value if(!Feb_Control_VoltageToDAC(value,&dacval,nsteps,vmin,vlimit)){ cprintf(RED,"\nWarning: SetHighVoltage bad value, %d. The range is 0 to %d V.\n",value, (int)vlimit); - return 0; + return -1; } - printf("(%d dac): ",dacval); + printf("(%d dac):\t%dV\n", dacval, value); return Feb_Control_SendHighVoltage(dacval); } @@ -596,30 +598,34 @@ int Feb_Control_SendHighVoltage(int dacvalue){ //9m else{ + /*Feb_Control_OpenSerialCommunication();*/ if (Feb_Control_hv_fd == -1){ cprintf(RED,"\nWarning: High voltage serial communication not set up for 9m\n"); return 0; } - char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]=""; + char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]; + buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-2]='\0'; buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-1]='\n'; int n = 0; - sprintf(buffer,"p%d",dacvalue); + sprintf(buffer,"p%d ",dacvalue); n = write(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); -#ifdef VERBOSE +#ifdef VERBOSEI cprintf(BLUE,"Sent %d Bytes\n", n); #endif - //ok/fail n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); - #ifdef VERBOSE +#ifdef VERBOSEI cprintf(BLUE,"Received %d Bytes\n", n); - #endif - if(buffer[0] == 'f'){ +#endif + fflush(stdout); + /*Feb_Control_CloseSerialCommunication();*/ + if(buffer[0] != 's'){ cprintf(RED,"\nError: Failed to set high voltage\n"); return 0; } cprintf(GREEN,"%s\n",buffer); + } return 1; @@ -667,34 +673,38 @@ int Feb_Control_ReceiveHighVoltage(unsigned int* value){ //9m else{ + /*Feb_Control_OpenSerialCommunication();*/ + if (Feb_Control_hv_fd == -1){ cprintf(RED,"\nWarning: High voltage serial communication not set up for 9m\n"); return 0; } - char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]=""; + char buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE]; + buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-2]='\0'; buffer[SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE-1]='\n'; int n = 0; //request - strcpy(buffer,"g"); + strcpy(buffer,"g "); n = write(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); -#ifdef VERBOSE +#ifdef VERBOSEI cprintf(BLUE,"Sent %d Bytes\n", n); #endif //ok/fail n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); -#ifdef VERBOSE +#ifdef VERBOSEI cprintf(BLUE,"Received %d Bytes\n", n); #endif - if(buffer[0] == 'f'){ + if(buffer[0] != 's'){ cprintf(RED,"\nWarning: failed to read high voltage\n"); return 0; } n = read(Feb_Control_hv_fd, buffer, SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE); -#ifdef VERBOSE +#ifdef VERBOSEI cprintf(BLUE,"Received %d Bytes\n", n); #endif + /*Feb_Control_OpenSerialCommunication();*/ if (!sscanf(buffer,"%d",value)){ cprintf(RED,"\nWarning: failed to scan high voltage read\n"); return 0; diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.h b/slsDetectorSoftware/eigerDetectorServer/FebControl.h index 2d7abf369..fb75c8a67 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.h @@ -112,7 +112,8 @@ int Feb_Control_GetModuleNumber(); void Feb_Control_FebControl(); int Feb_Control_Init(int master, int top, int normal, int module_num); - int Feb_Control_SetupSerialCommunication(); + int Feb_Control_OpenSerialCommunication(); + void Feb_Control_CloseSerialCommunication(); int Feb_Control_CheckSetup(); unsigned int Feb_Control_GetNModules(); diff --git a/slsDetectorSoftware/eigerDetectorServer/Makefile b/slsDetectorSoftware/eigerDetectorServer/Makefile index c615356b9..3a9cc6c59 100755 --- a/slsDetectorSoftware/eigerDetectorServer/Makefile +++ b/slsDetectorSoftware/eigerDetectorServer/Makefile @@ -1,7 +1,7 @@ CC = powerpc-4xx-softfloat-gcc CCX = powerpc-4xx-softfloat-g++ BLACKFIN_CC = bfin-uclinux-gcc -CFLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSE #-DVIRTUAL -DPCCOMPILE -DMARTIN +CFLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSEI #-DVERBOSE #-DVIRTUAL -DPCCOMPILE -DMARTIN LDLIBS += -lm -lstdc++ PROGS = eigerDetectorServer @@ -36,7 +36,7 @@ beb_debug:$(SRC_CLNT3) mv beb_debug $(DESTDIR) hv9m_blackfin_server:9mhvserial_bf.c - $(BLACKFIN_CC) -o hv9m_blackfin_server 9mhvserial_bf.c -Wall + $(BLACKFIN_CC) -o hv9m_blackfin_server 9mhvserial_bf.c -Wall #-DVERBOSE mv hv9m_blackfin_server $(DESTDIR) rm hv9m_blackfin_server.gdb diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.5 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.5 index fa4b08d2169c50dc5096b8c97bd6fad9a469b2e6..9fdf4f40480e8948f0b24801cf0ca5c95005e245 100755 GIT binary patch delta 45784 zcmc%y4|q+-_CJpAnUfrGM4XUBB#|5u5kVyW28o2C8$pn?L2%OglV}hm8k#ggXlUAo z!9)e|pIh2!>7k{frKP2fduh3)jeEJ5mNr^?>5ZQ6YxdqJ=MVb6pXd2K&o57>GqYyR znl)?ItXcDCA7|h4KDpPsJb*U$Srs%>zqgA-_jXxT7DBRD?Hy&wo0E>mVg$|r{E+<1=@~^n$#rP|K>TtCr zJDdUJ87AvO*f+WsV@Yo??t@|*<3h8QKW(U8yFbFYoY-{HrW%V_satSM@~JbLl*bOa zLmtc7A^m*)^y%4o^D|jwlhgY7xl`xl<-YezleUC4Z`!+vN;;{DL?nv(1VP9&x_MTX zi1h&77BJ)?W-*b-e-H~yq@|}31fGO)(WNGmL=_syw?^I_c_B_)eVtZc^UlPd|tgvKmC|9pwpHWc!fvq zdGHwdZFa^hu+4Z;D)RrblV*k;oW24n%F7`y+)D>nuzwdT`w<^jKv|6QE7dXoElaw}#Za@;i_>Yxz3l*CL;+Rs4EaPYe;4^Yvq?Zpfz^0WfL+PXLCn6ra%G!){OxqpaJ!M~qH^6qQpTku~uqqg&rBXwn*=9*X7# zvVZ!#;kWrZkUSni62t7nYJA7}4ta9-qvY$WC-!O4c(uYAjuTg;ho^q05dlQ@5u{2CMZATlqE! zeNK^#{ee&b{Qe-hMUn3;!ibI9eBn>WB7YBG+js_R{?Es&!SA&bS&;g!)OM?qT<^a!FQ=}CL zi|0^~8LPp2I>TSE^(@vIKC3~)k8_6S#A$HZ89vu0iJ~Oug84Q=DbDb`Y>iNwGyKIA z4Q_UZ7v0t1Qyt)>Z>Qx(4W6ySikNO*#!$X9{Ec)CzrY#3 zDoKMEJHd-OF`E*VI2CkSV{5q78NRkeBUI)L=YutPxeI)a24CY0-=OG35vEy%bHSzp ztwN!ke zenSo8gH$jUfSl1iS#Y)X8OfCa*jwmY<&B%#%UR1Vu4|6KU^g1!m52HUct)UG;o zP1e1Ljff=lN1(1@JqJYT$5+ON=o(mbLNu!w@Va6Ak;b;76FzlldUfJ-{rK~;F0U)g zPVClI9V*2?%4_r-u-ge!s;mAJjV?~REbDR~uv3ZcS^Wn0xMk{J(g%` z{CySY10R8-P*T{=-OnNhJ`d@Y4YZJJZ1A9!&Ww3Y@RxP-QfBHMLNbK?XJ~7BIt$5p^rKm<+owb5Cw*DN(?jXUcMx@CFUTSE<2|fQ1|)+84eQAMDO$Qy{Mn3!%qX zu)V{^dAp483+Sn|lR|0~%UVq4-s_Ul<7JAi#WN=U746iDA~B%L$*R{*Cb&ofNa zrn}PK>wXiX;}um_)wKASa22PfvXU{+1w5%c&tFhi_Lh!f3sQ!ma!m@j%WY&? zl}1OlIkmH+M1<9N`k9XOi~TI;nL+f6wd}w%;h_`PK)hj&S}nR#{5?dj?A0eo~qgzlnFzuFNB3 z7ZS=nw4F##fvcEH>C^+ZX8fyY&@^G5A-zjur-kV{Gohbjhm8}LM3qe{SlK?mAS*C` zRf1$(HAV6P`B>D#gicQc*&zGm8NZO#Oxz68=JX|o^z=s3RWqMwqbG$pl1?7+5^FZN z{S(FV>>d_9IlwRdjI!B>AQ$5}TC^H1rJrHu$xeJGkC?%lO=)3B&yTl_fBl?*;M7Yv zFG_Q?DX8p((lT`mP)z8BNfl1nRaQFXf1#ZsmVjtY47&vZyBJaqvJ&%Bh`}Rcksc4KF7ZrXd%?16*%?UC`D-8dum<3FFF{T)i`CaB_6vN`2IK` zi5a+&h_%c=rKz!>ia$B+(X$c_rk#~&^l_>{*yiW|7BxxCYKPr$@lQsD$3z`;5S7tGJS~z`u3(J|-xx+n>S5J>N5z$e9D5w_}JRw4njzPMT)l8dF zblumUB_UYLV1{??v>J!#R*cF*hLF5CT@}< zL?=K)tPydKPMOg|P`_BK^M_ieNL{s}rAZfs%!N@Y?2KJL4$i<>g7dC_lpv6(5qPLI zs%S^FG}-@usPAs;EErV9!zN9Sr|-SSDyN4>y{DYnfxM3xP8dEh2fM(*khBj## zE6WV6MipX4uQ493Do){W?;vG0LKF+-=gDvQ9`&&*kYID9F{3TQb+ zIcq>=PYfiQ8-AKqS9WH{UTs0Ehp=l|9dWx+KR=|oL%-g+!(wMnHki{I`&Bh_CVgiy ziyqN(Fv#GOM6Yod4$z~q2Te@%)I@B9%2-{4coI$G4%%?PgVi_Fj z&CIh0(6?5ws@dW6tqfN--s;7YS3JwCIZX^^yL~av9nst$S`jPUK4`)~c3@6-m!|39 zAE~!{#Ihv4k>zZaqzWS$&S5!Q5c$F*DAcf+2Dd zefiu4uB{E~z>1&28Th>JgLWO%d~K!QnC3y^^h_wR%I=g6VI{Y`9tZ>40dXMINgaUGC!n)gL3U`E<6fM zFrzlXjNl8Ws|nY6y@9r8MeD-cG3VYo$cl6QXkr^yksD5ToOPX3j}gFt3yJ{B^Wce2 z1E1p1-cPd2|by4mEVBBDBhBC`lZ}m z#9!6CCr?@W%XpD?C_AZ@8I=P?UHn1Tupn^SYc5zTG%SBv+M_V#Kw*|v7KE~eF7+Jz zwmpko%6hSa7sCx1!cwa)X>|S+)+|5JkYV4}MdvRvWSAQvqo>orwHcMf4^ z76lkK??5&J=tEfjqJZ9;7mKXG7FH1#Hg2%UWQ28dmVkp&v5gYSJWxhaHj*X2G_zku zEz}~-(JZOHT;Gw-YWun|gsFj-|?>}%}WOT(Y&M8%$FazSuFpPOjBT(d61;ws*$ zEEUAF;)18hX?CKZJ-N&& z*LrQ7F%`CYyOb4bWpItQOmivA(8^#F)VnGNnu^%4Mq_epah`f1x?VOV!|d4NGWU8l zXWNS&nE^eDU1q=(W)UFgS@1@_k&Rf~?Eh&dOyAT->jkub<4r9+80l47I#HGyagv}y z(GaF`Nn+P+z8<%qDdh{(S+~|g#N43XYB>igur3xB>~T^6;+T`mWjrxVE2F4D%?X=!ZcM014*cJ zw=Bd^nQj?~p)%dZBZkU!8-p0C(rp-Gs7kki>|)7ex;E8yb*o!3Ki;JJUT?;0Zo1LM zP1pRNM?5M)w<$X`V(1e$>QQ^prA)BkgWf~sUf$30mk$VdZYpG}xZ?thsp})WURl?5 z3#(oJH2jT*(m+QqY4uH(_(~*QeN=N(nzK({X-!w}ckN8_h)moU@jWcFG&nr{zG&o8 z>(gbffD5}JOD{IZc6l`E>e}EccQn|V^f)Elf{vLSBR=(2;NWB|t@wJEIs=hv+)xPQ^{?}s^X|yQwA?}K|l2G=P z;dy^hSJ$+vnJKKUtoNWNoo{r!3cg{C@)chQ%-Vd!Y?Z<1dp44)UYNr6zBYiC#k0iY zPE3^fvScQ+>@q*Y^U00)(FwA;i8Mc-DeJ-st9|{+d~~>@^6{dWdmfMBqqvc-=u+hy z1L#VuWX^o7>|p1k(uS}4$_L7y+;*54JIG+cT$i?m$%AQm-oBozF3wn5n&;Yf=}3Fq zXKZb=nlIwwK)BI*YXpT>_}I7a?apc)7SB%91<(BaEm;@p%Z{v05K~~ale}NirT}Y2 zmtzXB5buH-9Wv*t!^wtZE z@m6%nb=Q*O4LLsA*eHY)6Qv94z>+GSd>j!pjGd}@E_`Zqyy=ncd|&77d>~=T>qE#x zmb1Pa-uqRp51l?W8%pt*)3(4~jwfwks?l3jnF`2LgkhdqA?pH8i*$@>>fXoG3b@IV z_H|^V-)tRObR5br4s&b0dCEo9Yijx|g@pv$x3;XOo{VYuFUr zecEG=2sN1Fdmw3ASiCmyENOE9^|{I7_WQHq&4!ja9UyEU^iNysa(r3k=I6=T)m5#B zXs;ZmrP(Sw90J8VYmHBHA*x3wqmM63uZp724rFCjQK6|YZ_g^*P35d=llB@&npRxw0 zDV))rNroAA#Z|8*O>FN@KRW;PqcX{4NxKrTnj^tHVzq?~6F}5xy zM4xG^V0V~vFfI3l)12chb59h_S;gx2v}W(@X+?9UDamg|5}LE8GilC({xaJzLpUR< zUQ{nkWjFugOXobI7pAvfrn7ImN~Y$m_n)XO9g`J@}5}(o}%r}kuKE{{^$(WU4U5)H8@FXGW&GDk6-3x z7nZQ;(!n9xKQwZNVtCMyZM742>@lm|3>?e8`%@vF_~tfe~0~1|RJ1l@%c>E1N0$$8A=BG>~mR z7(%CJv6_S7bm~BMRc;i#zPpv>Ar%@Nb4JF+6J1$s;n@=?{GAlzsmL z_4@}|<%dJ*WL!gh*aI7E7wVI)gZfjf#p=$6Ec+%%SOf2)zI4(wSBv);{(qarJU{8f zrVMOBCq8uDxJ4ZtHtxdo^0=9}uYlj+Ji_TAHH8pz2l}E_^*JW7|8Lz43*&V%K6!S?ZQTxTNA%-RI+eG%fyr5Yio7Q+zU%K6Amu6tm661^l7A4JA5)7ch;5RKk<6#?JTzYvrxm#F7dFy+FOJ+I(jRE)qfVCPsdH+ zq~^?cYEbCR&o~vszW~AbpjOmJnY6P=>(%LYyq>*9K{bVS*OZSV& zC8hVHv64IYezZ4wA5KSMEWcP_n7O@?Qq31*>8ORST^G*}cAe?-q-BKOXv6NG2_b7) z&AI;Ut)VRjpwXNu|kpo^hVXNujL-%)H8^61ww&F_e zy9X@)LNGPOu!;*&Egvae&n{jV-HEs;$rE;0PvOw#>zRgZ2~8;r&gw+7*i8#(Mm#=< zl_k?d*GDueTiHPv0wab%(FgkwTxpIat{XcxzIFJZLXFg)?C%D_fPE7{2gNIUx6$L8 zglES+MmAy2vibH7Ghb|tb@VZ_soABco~Xp%ilb`bYH7y>No`pEr9q+DX3-ab{o@lK zvjd~w_F|VWC14NX;(aGv7h(oU6RZ8UHQpptCq2b>{XN8xEwou(!E67%fF=xaIV4#9 zTqbJxkpb+T8Lb_jHmv@94tw$P(@#|3i+$O}%d-Qr4}jN4_n`C}JXE+6PUTcqdS$?X z>}%+i=&Z@HS2z~-Xxv!PZ#t->>8eIw&w>FDVeP*QiR>>rDTHI&sf+WR#~8u>M_KlF z!L&d2DBq1}cTZGOXq#u1%Jjlb5HO}l(cP7E8hYU{yZ>D%y|9)AeUE4^OZ+}G_`*mr z6>Zmc>ciZ3uZbxM0x_&uVB)3;(fOP2o%;SC)Sz>hNf4fqj@if#{G(%raynYH^q=`f z+keb2I*D(>#0FX#J4}p5fd{-mkM|<9sUD=jlyAx2>!PVUT*p*ZAm&-sGCj9LmQJ74 zI&lj5waoZWUbJ2~DdMBHxSIZNnm_#<#v*(fU|uRrT&srXAx~X!#8XimBy<)#GPk}a zt5tBcD&pOSIN-`smsKbi#s>~iH}6<8U8x$P7VZKrOYsZU@}VN*Jr`b+ge#pO&3iJz z*;c${SsHLbt*}Zks#!AwtoM|GqANXWX4T1(+emKmAwCf@{pz?1oeiq)$_;qq2W|AL z9iU*4>6h2VXHLHC=(PdvM`dYrht<~;e9viufuOz`ui^FOrb6IlU7uWZRP<8)4(>hW zhRuE=Jv#^_LC2;bvlEfu=YVe;BjL;7Bc$1xD1XfXza05O2YhAx9OxgCY0EDsIaH`a zg^}FcigaNm|N6!6d|yS;f_3@*tAsSAG+8=-la>8@YtbAJrOo0w(K7u)SWyoMR6XJgFAEeI6rB54L#9!Jo#PC*X_0 z8{#jt)4w@6eG`as3n$(I06t9g30;l`4<3CJ96mjwU-VMwCrER0gyv`!+K37QS)C-- zGY*~31p`LsPMBC|;ZMa1zFz>sGFWMj^(Fh8Rb|R3DQa7R4B|GpIV)xof9V-!uLA8!^nORgKtZ9hm8M6rFR6CEpIGpPps;w}%FQ zS_t9BsYG&2kXx+1?N77V<=esZ(}Aqvc1W99Xu$`}dDswyy^y6j>simAI+D38{ii9c zMNk|6#jxVG2Z2y>GibXB7`ydTVBa{1z+aZ0bG&sEE4L?V`~gm~fr$r3jn4@MTzsIH z!i+x$hfa03IX|c(EFv5pe0hXXk?D!kKz+!Pe{RiY#I()k`{>9=W zNn8ys8K{X5OU#Ogto~l>HaCS(PznKWoQt&bc_q?and!F)bZ#cA`pwVl=wgUJM-}(n z0|M0Vs4$&LkX$S}0@9UYF^@n8RJ**<=Ks!9zsaOWyNanKOK&%4^}hu+SNzr=)A%C!^A>QkCochBc%&&F!)_mb^gn6wUFAX>RkY zXT=vwg_FnSL*Qv^t4J4~R!O{dq+ciQPe>nfTHuF}44y+spzlFjEioy?L9tBa=DdoK za5_JmpCV*7-G7A}b;OsCq~v$ffy+7)Mdxql`8qO+R^xK{cR&7}j(9}2SDuq80wPau zaitqqm1xAKRgy{9n)YWxU*t{1%xD&02m|D6QS$czdBN6)XA^ZO+Y=>D#Ae$ugc-yOXDSt%VYL zD)Kbv!U1@Dt}HEm4SAcBp{-BKjW3*r+`YgV$s_b6q?gi)^9bi^Hhf>>@sm1KdFn+P z-M5~bcHztJ&3Y2(m#3M;ePht(!-AIs;Z%O!me=Y@up!T^s@T4^+?WTcH*Z3^6BAEt zLMD=pys`=Dfn049G6hkz2gd&@uk;|n`aGDjw+`|e5Asyk*Mt-_{?xTz$}3mN{^g#= z*AXp$okuq%0s1_+G;ej_$xVr$et{>X@5#(*utR^D#Y>x#jzg}hl3LJHrhhq%LGXY} zK~jG?;c%i8f5C)=PIq zd5n2M4(Nv=?N)$##fEqDo$2qH+gPqX9DwUjzE-*^%{yun30A!Ai}_iDkm|Z-)`r z6!uaI+hjb3-f_^2SGnxE{?T&ldVWOof58oYS;RZr@P_6jkWAzLUL*k;m*z!Y_IlAM zgbIoI%XCK!zve~O1-zJPhi!iigQx1fH2oxB(}HwE)x9f7XZ~{w;sa`KMiOp#u|%fZ zaRxZ!4)19sn~GjMAk%FdVQiCO`NXdd_^Uei;zhuh0UirDwZrqVjoT*9LKNc=E#;f+ zENs1}uDv8z)vbKnItrGzUb3^7sjR1pp7Al>WXRb3Y=NLPCd{wKME)AUA-%^oHcVUS zPic+SI55(c-|!}zyz;MUFsxl$luz>cu^8gbO=E}$uWd<&2jn+s81S~MZi7X2&5)+$ z@t&>7hh#mkZ$*MzF2rW1Dnm5Xqh?|92xE(3Ra%2)c9ZROHeb-%ybQc{j%F5{mEUW~}gz9QdFsaL!xn^*dhHw~M_ z?hHE>y8%CBhgT|=5by(l z2RXp6D7=^!)c{`N06z)-L&3XGEFa&R#CR<_V;|DWLSE6D^rO4m@bj(7xHgL&%uTGq zt9j97nZkcb^d|$Hs%}`p%lt`qx~nU%@kdqV)>qNUO;Q)F>MfaW7{;qwkk;pV`^$OD3GQSNeBKnsw7uFZ@`vD|M|B{UKFy19lq$`m2S9TD}b;?cIZ4sgpwKXBqG|Af0NtX z7)D;#7no%F#yM`DPlAL?HkuT2V+S&TmV5K$4n(+}_`MW*Zztp-kr#F9r#531nO6$1Qz6Z)}aDd|B12rWWMPx7IA z1`Z>7adR&c2a3>!ZR4_aWmtiA|-CObgn=NyS;lO9wGVwg+U@+PGmu{KdU>u_V5kRFEQ= z0Dg0BOvMQa)*oR~wAuIW0j-p%BVAAuTTG}-7oFpBEQxGcpe)-;S#bgE*g4l>LTs@;?dW9bEs%-)!Mm;1p*7Vj5xnMNxmd2eA^EZ8?^qc($+JM zbbr2L>#69dMt73%N}t@>pZ6%8b>?M~!pk5>+V#YNcA`rA=iC1W?X!G$JQ-C~SfJwn zbk$j~dE&TBc~=5{g+GXuu&`RAJuXn{Y&%^|7=# zLGoi_RNISZ_Hl9m-a*NAb%kYT1ut3JNix3f_-9v`&gTU6nq$o^jK884#?^ zMTk|{@AR>R!wXrNtGvx1(uU4!%4-LapmcmOEA$5Bez@bnR+%z3RWDa*We&~$@IYyH z8;;e*@tShFHdh>tKhh*O4uW*%&Qe<9$%9CXYbq~A&TVvh zavM44L>n{pMgB6)xylotBHg>&by=9d5!N3k3Eg{~=~ByY4dgkUN$ae=!q*YLfkUPX?FMYlMxH#FggQ()m5tlJjdUxe zG>xwL$#nnyfFBr)E&m)W(n-YcQF@JrHqlP6;!o%;RO!uL#nXq7?)swhGM#;x7mvh- z_R6cICI2~(`0%fWkQbb+)W6p9f}teH|8epiVg2`b3rdF)ucBMpngUli8{6imNl3ea zjU84G3v|&^ahQgN@q7Vi7&3|MZ6D7O)@u&ag`_{ZGuO`X9GQ#_u-AoHpyO+A@IUtsp4C#_;=7J=;$<|OX34E+u9~v zC{cf}o$RzM0gEv$KE=yM!9AYViys<=op~F6e-vp??(v|}h|cjuL~Zxk^hG<27qsrH zyiA?Ni$`Mv@Q_!nA%WaFni$D-ZcHZK#;*{y3UHSNi|P-~@Bu_^o`5x)9qH8gMjUX9 zAEmS^RHbjWIOCmFW~Ey8`vr08*QT{}ahh$DD)v^&k)w3~C_j}t@!pnPP=C zAp`vj?rnDh=G zJdQlub+L^xwV$82bI617lf;&nr9%(-sd1z;7#G9PO}fzZ(P6lkq3!=8#0lFf^<+*L zV_s6j<5I9=nzBmyc}iwY@#S&Pkd`y0Y*ihX)M|olum&%ZvhqxqEEwfIUFo8TD?+4T#0JD6A}^dT zjb=sP1p8&3Mz;;GN+p5r*c49M!z)us$Rv?GsvQSw4v0lvq3NUxrBLw{Nk0IiJl{TX zmsY8qOcFnni(V+_LYSCKYcWbjyA&o}aS~a;fTeXRYbBlzNYl``!=0#2R3%2OkyN!2 zn#9*UL&687Ul8LYR7srE*k^Z1nuhPL;*$ndgz0UeW?F~RSMmGLU@X%Ya{p&ZaImdT z`WCH@P)Qr^MxOF4=@6nRgS}wlLyd3;jLl$WY-ZcWCcT|T2$zh?*n}e%W7AROZDSK- zDp>h0R z?Zm)gko+GVq>>6%9uxCamK1gU6S5O72wHs;l+7#bM9C>zv#RP$m?Y+tHr-*ty@W9- zQI3JYh&MlzM*iZo+MFNAOU9GQEtk0oMlebJK?piM{-(f9;8U)WraW!}d2!@T2g>3+ z6NHy_(JJ8}ZM-&FXtppIor_!G*E*HG4^(bhj)2)Xm1)|QbrVUb6CdX`^5}^!EAC&L z^0bL$IK>8}ZX(Wjar`t9dZA_m==nQhUF*o(r;|WuS_>bgb#6b;O?RN>>q1NMDmwCn zNrc0y7F8F&=;d>;3ojC-sdJb5x%;I-_4CMAe9wJAS8 z8E$OKC2qb!;#f{w51u%MgnFbZhOk>PAJw0<<*!U3OAX8Js=6`mH1{!+_q~?e_Hb}2 z$GP*1X6&GU78jMmh1c~cUY^1|GssXnc7^TjN*lf;gP8g)FO}(7a@t=SV-pD?w^m@&kVD zITC8mpS2jD$FlD(kFcIvXi1q$zH$@kPj>K#EYjO)ygoU}v$Mz`XV?yYB#R8yzmg-< z;k~%WOw!%Ce4nTj%%{&JVa^4wiHgDe{h1^}sXc5wzc!Q1r1C7D`~sP+f2CN)56tir zFOc@BVCcBAf@>QeVd(K`<;MbkN9@z=`H#JYpo(h5601E1Q}NuL@s4-kaoOZ2!z-Hk z9lD42oJIa>ctx9pL(X#JZ1TDj&&S&Ey|Z1E|JWFQel`h@dZk_!@Zd|Tg&<<{<)nc2 zqp6S1@`yR8QyQz)S*BT)^G~jG^g1t4>J)2rlv`c&vG`BwWbj(lF_fNA>pXR3U5<-g zIokZuE*%}h>vB-d)}=uZ#atKf_sDVHbFM=d1})V5k=iG-^Wi04s?^cCFsOr8r{GWO zr1HzC)7XW9=eXxQvVbN&;3e}&xPApD>%iA|wE|1!5%aO_UXdu%#2vh1KG|egk)(D# zVIxn>B_A19l&JXu7c3rmWF_sr!eQ3O#VhvGyrMy-ajUd3(I(qUn+-*SalSlfJL%7V zUPf>hn@>K{uasrlKZ~Ew#};*E1=2Cxb0O(Id?n7?`#r!Y4HjK=&|X;OR~6P^%0aQ8 zxVF$mn_pdnw6gg@9mQT~u!G|LS}dGP_a2v#jw;I$eNzec zO;rh&9YXmYtt%Qq1-4ctShtAu)0f=^Qd@3%2?BjBS*Edfc#@JXL;57oM>^m&#ki=% zV`Eg}uScMK89($A8Ki$b7wPzQ1t9Ty6_U7+5)7NZ!>v?y0f{ucu1%~y@w}=47YeW6 zkZB)?Ow@P-ma0$uxwLv2v|8_iU)|_LY8cJJo^ZqYS| z%DLwX(F07c&dquB3Nk2w`O7r&q!?KEuh>{AUn;xBm@HMiYz6M&>&5MMAKxm6KE5j-s07(iC<(pU)WXKNr*Q2)`5w3 zq75-Ppt}x!Si6yy`qkt)Lf6Idlr=c+2${r-*N`Q2T@p`Ti?uCS+{lY70I2f1as}2h zc%v96S@KNR;I#@oAXqil689HO6(371E&e_c8XF9nYq2)9Efi1h0%Pvk_Qj~~7Gpjk zmPTv<{qfV$czLKivBpDM+%hWVrW3V%@H*Ur*7CjU$giXpDnTYvWEcOf@#B>|B(KhS%;+Bb4b z>6@8X%hY>^U_^DRR(9gsx02qG_CvA})|JD=)E9k*!BXCt$JV%s*`<%J1M_a%NVqe; za;EV_{FH5275FK2V2!D~bQ|gJT)*p|ws-B3_LO7IC$`sfJKC#I#!RLy@;IhT7ha!7 zTJc@m$rOD>HlSFxcVIoLC`H;`JTk%wg*TtNgLH(j%hc$=4)UC#Vt2erT*RQ?rk%JZ zZN8YN?<5o3!XsU-c%Tkzy(ZG-P>)@>tp0H)@f0rh@&{_Z)h?1O>Mffly8CFoWmg4W zd!n)cQ1AyP29QvK3G}p7;61)ZvK?Cd5Y?X z$&zurZGdo4;)(f2WU9X^8i_WqhvTN-fjOo8BPXyWw*BWtl3$w4^r`2LP^?Ct%)|GjEeo#PDXAT0wW1hgFkz>6e}HFN$(hijyf_2x(|bEN#wn_Tz3C_@;M(kEef$?~=*-H|u4Jmq6R! z1v48ozd>5h2fqj9-VmX-CBdh9kGyZ#kfP*?br#P#Aj)&JJQ3yLoE{|kh7FY}@Q?Al zjgyC9?0qsJyfW5a@1b}j;IB%h zGSdOxme;&bKA`_S%?m78^eU@(@gdTS?R&lTxzPkjUF1sQkndYh2=2mZrG?Ur{s5dsfWo>zl|l1XGS=4@s!DftGwYb_7WSl z9zSTqPkcb43>#0Wy}N%^h$WDRd;sSx^h1(u*mz$n8Nw?*gcaIk((>NC{0K1r{ULe5 zuxY9a{0~gY5rI^p<)I=+$ZEqTO?bcU=UtBCCi6GE@IDI1X|tP5eml!^j*|CC0}uNM zMfdV}&M`cjnfeil^4lCF=%@p6FJ4(D$i0(%_ebJ+R9ZajL+t6z*}UN+w7I!J%a`-$ zV>rrb;7P|o@9s!JuL#+CWV>%xI<8Xu^{AM6xMyorbo)N{NAZD>K_f9MCz>^9jiX|+ zHu}5dmldwKeClz+(53swNodO|n=W`@jQwSD2SWZB-cwaiq%VlIk{Q=^68?4zUXYD( zedlA+LtiDMG?m}@7*{0?7SB&eq|Q)fR)_62^!ZbGbhW~Q1kl?9dBLaTMYMPKQ-RI> zKU1Q(&&V6(YkuZ45nnE@Z)v(?ZQjaM;D*}0e5YUtBPWL6vu>|Qsg34RcZBt zP;VdVnY4Pp@VHZg?h&orgmUHA9JTUV9J(s|0r7HTA1QY+ z>Ik~PNe7PeH#OwOv|`@&3~A@JC05KC<(ngN6R%{>V8Z_TIT=0RhH^yUz@6EdyBo(f z?(PcJgD7<13TJwP(;Gv0@fT#&sDIxR9OH+^b@pS}EmNI2{`bwta9sQ-$N##+gU;Z* zc8l50@V_rv!0^XzhAoP2$>bj=x&JxxwtmZQq~}`BoFg-dVM~n|5Si3%v?TrwcGYXk zHEo2TiC3_3_!{PNtKd0Qjmh5fj>HI8S04O_G|3HbYY+1KP{{Z?GVUcoWN zH)N%4xg(eR^6lS{k9%(|i-Uh|b~7rUBFg0N%Du(n1g9^8{MA9qBise-;^0KZWeYxA~fq%UcET;9zvJF~iz$VIi;mjy;y!;v&8oKR(rhBkpUp^4h(6-OH0v8fI&+lI&q5Zx*E~Z+F)I?me zHPPHO)H!>{0p0>|&H31NS=FI0SMZeUI2Lcr!&kpfmeVhNxyQfYJDlCabN@xQ(lfKT z|G(iyow;s_{WtlP(9a9k-6T8xw$*9;dC27RPO)a)4Vj$A3(6C)72n(>Bcit5R|KSf z>3hR&!A>ieWm;#lmCl&Ad+_8RuxC5nmnZ*-4a0{&kXCfNKd=3P`1zf>=g@mwg)Y27 zR52?ZXX?rmbyG5qc&&KewTR0-vUd@l(BAQc@&hJ3+P4 zYe1R1O3(cxg~B{Q!A?7>|BP`tdIx5}(H+9K^ojA^Dmf9La0{zzjHWmB(2z1K!)g>#Udo2ihK> zODL_zIXtC1Y4sSP>_HY;N8fBhcdzHy40Na0E}KIWCX?MmEEUbDS99unz_Qz)dbv~M zZp)#z^zW@`L#<^^44vJS{yNp-)}MadihjSHpBhDn(j#rSaWwrQ^ux8q_-Aaz$H=km zB;%-J37hZkX8bG2wMLqpi+`p$!V;8BpCLsxm#q(v7dVHSy=uOu5^<82KI4q@NS#|K z_q0B&Y4~$ImwH8yH12}%|J(9(SLTXb0NE~i7s>oj%mw`kjV>-_ZCo0tIiexNSvq`Xwx%M2CNX$pV2ann>H^i zBfDEx_vcN|&zUtVZ+6!68M#?Sb7tFG1Bs{qgqbH0aH?Lbwk`+z^ZiK?o5DJ*}<(&?h31gph^+0!pLX`R;T& zugHL27(npmT>1;`x8{)b zkF~YdKX^~;AM5??p#nqen0HOD+iR)MrMKL=1y1bQbJm=kX|u(|o3G3Z$2kF&o-^H) zxxf%OF?trJmF3%o^fPz9vxq+H-n7HiXAJz0B6`owgd+ZHG5rl+=mjsKffn~A6d%*) z)>*Cd?^><7X^5-TIB&2$FUmv^Fr~Z}WwuaiwJtnlwdQYE!@^kP6Sa_x*p?S*0Y`q3 zn>{Qnw-#An&#_v|4p^r zJV}Q%E+WpcS{Ix^T!NkfpB%y~Ez~Dx5T8d}XSFW&L44P0T>?7P!)jewg*e)3U4?R* zZ?&$Dtw*BFYF#4`s;t)aAWR#q)~yASqzglQ12H7CZ8zd1t9AQS#Ad5?2Y+iPZSVVh zrG#q{1o0>0E>`Pw{?DDbU7Fb-N$ynui9g|!W?HQ|JY*N`-)Vj+vgnEOhlV9^o@+*o z#+1Kk{2#r@<4bqZ9%J&6b3dS#NI)k(R%>Au@@5BE1Yklqi4HJ~RFOaO;6(WYg9IZ{ z%$w|{9Z4zgwwpfP>5UXXgES059b;LZ?f^?e`UXVCH}9qs$vXaDRDNc2GHPVoYtdq> zbu(ln)i}V`Sglo{E*)`z?FLNnbKe1W#A@AAhgRw=i}%pWx^>mm&udqek?yK9(%mKm zGtP8r$D&%)X%1(m0A{YzF-6-jWDD_5+8)7U=)E99x1oTD{Y4N8s>J9`Uruc6! zVjqMi2(68hK@40I#E2vhl#6znB6!ZRTK_OgO^Xp*1!;;zJph!0(bz;Ioz(>)8lfjb zEJ7TDfXfKU2x$oE2vZTV5#Wo>DnKYkD6u5%r~3%?O6UK5mj+X>6Fl%e#4WOUeQvP{eJ^__rbs&gcIXafq1*9zYyw=KVz+;ln2?aV~#J#GMZC z4I+-L<{yfX>~!Uzdq6z&O(gOqnWN=NEdC|`1v&d|4jAY0tE{Ct#p>$D8l zAE(O=E$$j2EQ}!&RsTkL)(JX9uR{5O6LhZLXf{HOmd+>XMRzU3n|?tjQDY^~1UGu) zH6!&dwYZ<5TZ!JM+9-s*?<_rNOJ{ybf1co14$X4^gkbRff{=9kQb~FU=tm;iMyQ_q zL6P(=69{*eWTHs^pd>v-@@J83ohxv6D9|Ln|0{Y}9{|n4;O5k#-GCG&-T55-rF{T2 zC!j=3M^XC(iG&=tOH!L;sRaru5w`QhztZUTfskQf9c0)ai29WRk?sKEW`P)3hj5>> zztUm)puI*KbcX-quQblkw#*1slB8B!c+Cx(z$aXw^Z2E|(PnzJ#PY-6U^NWE`9^3O zCYF06TA^MATCQ9W7$FdHC@}mo`Tnysh`)208u+pQ&^CPJH?&Y6g1G<{t^J1nGARUY zhO9x4ezo`L9Z71pP%s(-=0XmDb)#C?8Qm3yWunjo8JUEdbhUR8vS_Dt(UgtC5*~7i zj@GxUFw%Baylp*g&0oDlyXZr~9;U|8OOURX&i^|`H4N&ijcRCvXi*u}P$6q|RKrh+ zq%x}QD+Piws_m0SQW@3uiZUpp+F`K3RYtXaIzRp`4bq2ZqTf0EpWo6Ah6o?)pGBql_UI7tfebS7Ns-Rym}2N|Mefn*u`589ec=o$;s z>Qw1cBU({}+NDB3m8lZrFOrH-ySNDiMW~$%L{brIXF)-oDp9utt|HXVrTmkB(*1@W z5K%t}vVA)jj(FmA^s+~yD7K8bP6LU)2Q;@wsb${3Xfe_ES%b6HF8uz#=|}p0kS&bg zksI`!mbS2)G@cmxmm6UXVXUfzu7Auce*{exXxaB89YPFo(9uDdG@X21+yCe`aN{70 zLHU-iZj1Kg>WwsB;`Kk#V}=AYpHK<)eIPV5ke~mVCg>Bk1GtyBsi!~d2Z31_Uavdg zNlja>-=S^Dgdt(x5Q1WSo=QPdmFQDl1XPiz+#r&QL3=wdCG`{?osETrX`zPflF41#5CoX(rTDp+>M3woUn zSab=xrwC@6MNZVUa-%&GEt3Z8{B%Os^Pbk_5~#D~NBqmigvM1{#the`P@#sql5}m| zpjDPnlLf&MrIt%$bm;`cXX!IeH-lT9I$^k?96Ivkto>tv4QLQQ5IT56nc_pg37b9EDYkt>- z8iY5ecywX>*6+IDDB+uX>}-^+A0ZwUql`Ko^*-sNq@gV z$4IBUkE!-gz~Gn)C)NU4y;~#E@N~x`1uV19l`(HZ)u1kl&AdJwKy!OTZq+)6Fe}dP69r6w4L3)(tmG$0~W8 z-fdK9$pKU=(coXJYZnP>Nfo^BjM4+VZqvI3)7#(@@t}|Lfq!1bck6AGzCQ&eP1f>H z8Og6gUDC9C3RbIXjO!_tp4%kFb?njvz5Gqk$<^>mjpS3f4Fdim=#euT{Bxs}m(9xr z{6Q7)qgD9-*VVa4)m>eA{G59)aFg)Zya|v12@qa2F%l)pSk#Q73k@o@8O@rYMP)`b zi6M#_z05Q!YlRZkp0CiDRErb_u5qsQoR_#*C1 z_U9G1PVCv+;Zr-~9v0g}5?OcjVFzUcs?}I;B4#c5yg{{-oG1o&1#2Uyev{hyhKASuC z^OX68%hPF(o{*%=s914^*ac&FNHZs4KKgr4>Q5+<;B$v!aAc|216>Gcs1nXWU`q_c zrDASoKz~LF*O1{(fnYETE1^|v)7BXIALH^`=&n-4LkTRTn>vwqb(+J!6uXuQ2NFFT zNq9}{5)_!#%5abw6odU4eT6|s!RnzfGd?^4)&at~VlAGFQ~vPx;BSoKzd}sk3UH&R zKgRnD9C=4{v4$uIj|X@Lgit!Dc}5qkN7wFfF`I%r8jV;8vx-#Edf__y)Zu zX4-{lozf@7oIe7;um6bHgnHNX~vyY$iBoBub>3iIvh@nc{O zUlQM-JEsSGbQ4dSCFZl*zV2kqzrCq%cXDX)>AkpLqnC6wTT46Q8jhq5>~(Iq?VkFi z&0=OI`tnmS|4#aCt@g7w9~&nOA;se?*lFZ+!6uP@;~jl%$VHZ~LaxcbW46& zBEg}3F${lXYjXMK3%n=hK4AcLNb+Im#4}3IW`JX2OSgg>)PNJ-t%RBM;+v8n_N_7K zn>~8ULa|Fj;AX|k*?XUJfz|<28pKYMUjg+%%0G%d!3=Gq3fzGQ>ftX|%;~g!3)rU* zitTI$>sFWICKqk+(^5VZdsh?s3RT{#w;ai1kR%Dd0t)Q+TqK!d_l+Q+d$SaXz1^tmxKKYNuvZu_qz&5_1z%mQpc}bZA9)wpe{z>f$zFdnBmj=q3ep1 zZSXs+9+PKW-2k5QTrMw2+&g$QyiNxkffj8#!TsDk;elXHls{tRU9sUFW~h6Dd_r>W zMxw@ZkxYyIQ56NGuEkVt!@lic2AZ^~Szy@ki*m=oEpgyc?;wVQ)sMYs9|Iq7F{z0JoAvEy!pHQoBx(f0P0D(x)Cu{Ux|l zu`_^GFw_hVW01RYPkm1Uam2)5zNuf~5rLu88!#=NP0?3K8Jw1h!k7@Gag$V7hk<*Q z|1<^&A+H9c)qx9R@I}bG#DpGk6-U}C_6rO!EvleZf-gD+x?iN-hJu(?l153hwha2H z@()uY<%35Qzah4|AFLiq`-soc2A!711>V5{#xG05|D3n!?1OKuASN2~bV``fYCNLL zD7}yic_*neO0O3C26Vq*NWYL{upX?-GW}Yy_hlfT;~A7rMY7n%}~Mge07X!#C(nG3U4$9#Vy4VzTf^s7~>R5`5Nqj7J>z79pLQ?aW3(q6bg< z2{BXS;6jf-BVOziZLmjrw4+LF@oGADDL$8F*ACWon(;$IFaUN*L&!2(z=Pm`;`L&V z9%TUCiZeRc8QlOnfsFexU>IDc`g_IhhCkxRFk`!z)*2MlD+4k8vxCtARPx&Aq$9x~y`V*eMynFQ9W)i@C6q@r`FtPOG@T zPBnH|al6coD*Ry{cQsZwBX2joZA5byBQGU9BvDSeVhY+9a^-Zkd|{$%)TxZ z`UblSsU3ooCuBJ@VsCc(M?C}P((N@*J~Ee*=nE9s0cGI09C9;K7tTHJy8?50mO6q* ztcGCjwPLF4;h9kR^%6+LLx0ov6EP1JgWHwT-kxZJBqIqvx)%&x=M04h<&(<;!{14+lv8+`yR`EQp~RinLmNtU4*1r z>4YTr58z3~?)=X^z|$cLIeen0VeY3KCeA{W8gPe6?$_=WCQz4AUQq1bRp3dFKQB{E z-T=5&aS;P-0&5QBxq1MDd;|09_#AC%-u{<&h1i2-^fapis@|eq;9|uc65NsKBru2s z%DdNlWfboA)^#2mRijI~VddusD7^-z2^kjL(C#d$nO z9_ym7Nd>;;xIB)4x;(!C4{d>-h&6a9f0@`H?juARviv5o+XkWQ)|~%OY|SobeEE%B zAPj@6-1$!dl7F|@Wi_rt@gum*g+Nz9{?lT%F~eZL(ubkD8T<5oVz2GMK=nZW$GknN z<2k+B^HBch@J1W*w0tJ?mudJTYVo{TV(;jMve_G8p1Y(O0qX$sD#c#Z1lDyv?*g$; zIS-60KetluMY!qm2AtQ7f!kx`DO$zpSC7oQ2mSB3^UojPKCvrnaiQ+*^L{S&{wf4~ z1NU$|y8+5{Kx({huvL%Eo8pdz0Ya;kevB`aIswf+-EOVFS)k=R}0>K@O z@9#|W_d$#{9dKOi=?)L701xxO-vPfSQ31>FbeCkhaTRb2Rl65F?C}?nl+{jWo8m^X zNAQ?mB^Rs~`$uHKXoF5GxG(x2{!zSzr{NxQ%J*;~70<6Y{rm@=!h5-UT`@t@`3m|mpaTWYAhycFr@1fM z0@h_$_&ez9V(9O39o7QY85O$IZy<(F+5NNC45&F!B+z@HYtdS?G$MicT`>%oiM?kE zh8}MQMO`xSz=MJFU@+t;xo8LcOF@ycqLCZE~Y-diJCD3-0bZG3pR>9 zv=_WX`G1B1V_*$=WWnQqK)pv_NR?dZ=-$2%F$@1*?1y1G8kJ#{*!m9euwtGAh9V~Lyv*+w^M@J+@a6l({v<>Q)FTU-&|>KRx?lKbK1Un+-Tt%iu$a-KF$y?t zrJ3;>y%`o8iF@CFD=nTzn(9jl*C~s^WVQ=uiR2&(^$c46HLO-pOUIOVV8`|7RXdwt}k_ zpK|z=;2p2&`Cl@Zq!^@2mqketWp*dH*;7!mnD5rK;GyH5M@nkMUWFn4X;;!j8SX-; z1D0_34Er8}ujCG{(;@qZTgfA0f3XgI`}F)T;YnukaTs)`D%mgg-Wu?@8t?@MPJuNC zN{;h*z67i;EhWjy!2$JH>3p7k9lh3*FLf^joJUo@v{uYcLK1Az^S|_zJD^gMu=Hrm z0BvIby%jv63OOwY>%iL;{}&hjDD;ce(*G8_$6-z4(pRaly1?qu()}2;3mow+`WO&x zD5RBsE%te0=pV0(QaDViA+&k}E-DlIEHK!i_-yKf0XoJMUnS--JQnCt+#&&64}D7U zkHvnAha>(gk44>L|AfU>x6(xelvv#eXohYJkqP5noKi%2Nh}qw5Vn(Z#ft$@`Wo#_diZA2J#pQ&r;2+ot zF(9C;plrREtG9#el)ppl2UYNE4wOAe4vm0y8JF=@uUYww@4Kk%d9jzTzyqsP0Ts?0 zJz&l1vX6My>qWlPTlZz3G2>dWdZg@IaQ;bL&hHQoF(IE`&X>=I`kCN}r@#Chu`fjS zGr**F)QkB(N#{Rkl=E;ooD-v9gV@u zXhWV>;r5kjKB$K(C}Lk@LRLdmaW2pQ1&+a2a50BPHMqtzpyEae%ps;$6!Y~V_r)L{ z$D=R7EB-@*FEPWAdn#couIPsrZE66QS}Qw|R}WOYOa?X9IRDG>fYF_;;$t!M zdr!`=;&TLwPYP5|{%}h>av7iDZk2xWx`ZkPzzfx;83^`=%~Iw4tG)iR`$v(b9&& z&<3Gsw6sxSM~jBi(ne48M9V2{^w2{~8!bJwbpJl{zVFVypx^KB|NNi-KhHB}X3d&4 zYu2n;v*z+{C-*cu^G>6}5bAegP1tPxZmUFhTi2|LAQRT?8E)8l+ep>GyvWSFBuSE* zBXmb-i6H(G)Tr)XU!)=tObFc&dLoFwID`%e?L`KE@d$|s;Rw+PZ4kO3bVhLeg&@%o zp$CGOBsG@8kcdU-h|mb36OY?NJF<2(h2_zxSuFsnk0Abh5TX!_2(1yCAc(&hgjPyQ z{U->K8KEsg1VRIZK!kP(;;*Y3x&BK+naL|WQrh7FHdYg-J@N(2sE;5Yu}ocW@(-5j z6;8=&X3~dulJ>h}lEv&8VwpHJ- zuQb9)Q-n0VAVzeV{7b`xki{R_>XCoTBfny;cSN5$*=UtU8+A4zcR>_mN5n8Ge_H$3 zJn}EGDzAt}8{MI#9xL>UXz{91>L{Zm0d>Wg9{0fN#wzsTc|;7G@~5%DJ@SHt@~5%z zm3y8%>5&(zqWo$29wH`U3OLI9 zMP87RjJo$B2HyZREk-DEe}o~Akd|y~{gI>{`>p<*ym+DXKs|5;^U#sL0sVKRZ(}|? z()TegTKXWk>+VQH7(E2)pawK+a?S0RxC*fGgR*6lo!cZ%+^HVwDm z?P!&xK3fE^gvb){mTBK}Ya4V5Pw@l9h^jTBD$AFQy{$$skccV>v-z=<1|0*9dEW+Q z_Wagv&s$lWoLnTe?`gLg*}4Yph##wH@C&)cO8tZMDJEI>)^t|sAKmt?{xDp$G(rka zut*ZX{c|j#*@Y2OSaF0DlPY=j%F*evW!reGLbwWxX$s_Wm{pD)t0xP7O=dJf6LDC66D|9#>|a7k^*LFJOuyl zY1|F}UTNGqZv~q518G0C*JPt;wsS>FfvnrM>0!Ft_PW#EzCyz<2L3Dszdrb=FG#A*StOB&2qw`;i7%cRMo8l9aB z9k0>y*N~rxe3h23MSd9a6>5G227G%G@}*iHD!07@^2J)-hk-vm|ik44C{tWWTT3$x}2=ZnvkAd5^7kQJGPeXpQ5dfnG zumG@{?FfhrFTV@r0E1iaiP6cCVl#6jvM$MF^y)qfnsgq1@`tjxaOM_nVCO4TiG@0dujVCMF`LNN^<#$C>3A4(tsS31lB{=jlTguNX zv9%ns-{ieNwYkApKN50%?F^e1J)VqU712xSt4Z8cLgHCUsLy_D>+L%I$o8`C6<-$9 zuB(3JP+9jfkVP^R$u+E4Bny!o#V)pcnw(|H?U#`w>_q#?;3}%aGID{HbeKaPuz=WQ zFpwK#pQ10dVmD%!(ia=C%#H)eK4uCEA(o&gOLwIz8>;@kT)S8rBIPlQ&s+#?N#%m{8;-= ztw}CR?Gzh1szNL5uNIE>)AC&sEMP~s>)bq#GEtL@Y_dh`x~ zmS7b+xpcP&>Lv}f1xxPSE99LO=&O$`?b{~M;!IV~~I}zWh@t9-?)94&R>uFvUO`_J`@nP{@ngrGgZBCVpJ%rszG8v`r zZF*EPqdhdwp1j$9N~L$CRxRmSDlE&Ic8V21vkrJ-js}<9@p~6*@G^IJpNks2+#TLG zQ-dE)l=4Ks91RRMYXueV6$Te-@Je_1&}t1{Cj- zs<>20y|2N=+TsFFGimT(clfvo8eA-eF8C9QG`Kddjt)=hm!}nIBkU-c>1ZI{ozU!b z4PR3M2Y$vC4W8(Z|7?^7m)+r+=QViVQ1^oQ4nnE!@T^p=LYg~#VWI}NxWkuR)Zo)x z;G}z-<##oBh6>M9dVqqL93skeudvdpRmgIOuW~Sy?GAsnpN5~~4lj(?;8r(yUYoUk zTETL+f;P<2aDh8~U519g${oI;y#_DzfahrNb?)%j73IytG~4K2uz8wRp~xM+eS!ur zc8BkhH24m8_}dQr5_kAs#}MoRJkOz}7=rhgYlKd?S2*Yp=_z;kp%M+h+8ut_LFc?X z{HO+}E=rnbM8g$PDj}NeUg6kAt$~Z~@Q)qZTjLJ@#4(MpxWi97W>c*@{PWD5Jk`?O zb}u+{SZnyMJG{y<#`oRfUrtl;iR2FdN*jCP6&0p7nfv)HP=@9ORxY;iFXdoET$f6W1EX zXqtd*>4o|1-K6-C=exMMvs)yg)q>Osc0Xxq^q8vdy><5;%Zfs*xct1Vd;T64ETKOF z^%`5=D^@?IHX%ZHpILjG*|lD;8q&0$p)G6gPh6W$NuHrki;;B;7O=y~9XqH>qPRy3 zrU;)`cn;X@L@BMQ?h`dz$Cy#04-4+oGU-~9NpZB!tBzJyE_iA0>am!mw4o}_2R;Hv zp``Ggb&qBDc^cxo*vCfBvvqx6_TbDvEkoAL-|V2qEOUd{`%eUWVCmD~ea*YYlKb_V zI;QH;P0hOiwz9D9hIO>+?0q&%@n8euN-GnvBn!GQ=K~+7+ca-CJQjnj%N*foT*0@b zRkE6XP2tkr?KiqpTFqlB`)b6Ma>sZHV$9kqR(RAwtW*HdH3@c(o_ABoKKGoV$}n?QrkAApq(5+j|Z}$ z@&J1545HTTLqLwLU>5}>iDe9G&4vt$pcQwJ96&4fDv)mkWIDS)Xk;UgL7p>;MKDAVpv)KP>s(%uMw+tMhV~OPY3PfFu`v(?Od+(@ zJR*@54}0o=OM9l+ow(3GH^@P|HEaB&ke~TU(3k7zS3LO}fMqH34P&R(0nH;`4H~;V zNzrRnXRRLzzj4}TRy|^B$m2RTtp!VYD#(A`L@{sRubX7)(<3bFsZY^D;>g*Cu{#9G z?rp?`9~nxnvf92u?E8^!>TDT5hdrBGkFH(BvQs%K8b^V(Q!cCtd9-G~jB4j96JbC$ zjEOC-Z57dGkOppXSDV>4oRm^J6>r7$>7$qiehBUSxt89UqH?4JsU9ZBG&}a8*tC z^c=e~_7yakISvh4>pCs0SlIX;t{t|FUmE+$telryX6MWb&0f=6GOn2{1%P}4YGGcF zTL-dX&N(#p7&A`T3eu$$mKw&D){)N4AH^DE__M7OBV5TB4|#!o_e#shie}6$W}Org zG~T4_{2|PIoXClm&C+-iE1l%VYw?hoZ2aVghH;fij`2^~91=dd1x}CBT+NGFaz|-A z>N-$N=!r=c&?`6D`N{tq+NokiFl(Z?F9d; z@M|7EIvKCRw4)P^J`NcO`{n6>#*WVr)SSIZd7x49oUb?w8IjLwr#*hYj__s~)7#RO z3)sf#(R6h#tC-%d6#;qmFlmdVY{a3a{#XEah-Q(FLwX}K&Y0Q3?ArA>)A&8WNED1& zw_=i^>p6N|w$&~U3ZLx2GG-2-WusWx%xGHHftimq4OEQ~yn%#b-8CGR=!V$K2=hsQ z#xS7-eNye8HGKfxzmu7_2DuJK=8MlZ2tac&urk52WShmN&1ySfyr=LXf??}{7Jvh* zd+Gp4g-+p541QSn6N6dxtoeE4GlasSBLT8*s5pbHJAW`s6Uvj^Eu+9W<}s^-;qLgM zKDc|)TeF8@U`5P&lDtJbos=fr*4pudz`*X13!>*a?Bwh&bYBB@e|BqF8lMFb4P1m& zdWfaWnPiw)Qzs;K5(m=KLCiYDO;Ey|zLyc|G4<%6m8>>nK;%R*GlE_1l)HT#beS0o z!u9X25ndTHe-KIEoyBTX-MD!-i6y5EX0N^(V3;Iqk2Y+*<9XEwB!J~SBbszwK}wC6g}l3cdxx$wxhPeQUdX_4APT^=zXN|IPbN+|o!bG<|M zC?~?u_b3P{N;y1HPQLqYV#!(I;rpfwO74p4ZcJ$(jOOtGwkN9-eX9+t$%>|LVY)4d zXyu|?yUqz+&Bt;grUqIw3O$x}$q$%iPD}Ref|zDw9jiO|Fgf|?(}tBUh^D*Nd(KtM z!-D92RS`tV!cKH&2X=8`c#jf=eN7OL5d4mtkLIg)pu*Rf=P}?LT?QqdRXiV*xBHH$ z<>ax~Esb|SS=#-;qfF_!=&^Eir|Wf6!wu+evfH~S+wE(5OI9qhI0W1s=TTQVX-8em z_7Y{Bls0=S1Jo;5BNT>;%{?kATMSf$tF*h7M_GTiE<4&V$#t!s%vvrAHB73k>uF~G zWcHQ-U8@77ES}8TEe zcnZ>2wR9>@S(Bj`1!6Zd#J*>gs>D05J31iBVEg=p*8{^&hS-be0w)GEJaLQ)PK1gy zNFZsI18~3MrB#k&i8&$q;y_W%sxnP1Cucy9$!So)G*{!LI$1p?y3c~itAqtnI*++5 z>$-1d_j3k6*0br3T}5s2c(wH8c9Yd+LY ztgN~H^dqxn>G{iS$CB7^&z^NV;OMz5y)>QGE_o7HUdegUv}hYk&x;u5GS7<^2-ZP5 zMw{nC>{x%gZbl5BrR#dcxIO8*8gUfj6^LO6y5=H=Dek&}Rp$-PQ?HYp6RhiQO+_%l zwjFS&gOI-z+2-p}Hcu;q2V1OM;o&HlF2MuRS~*{bYwazo8!n5bR@Sv{#46W3zRA|& zmJdxnzes6viccLGOW|7jN}y+xFW;s>1`9B68xSgL$nBxwO1 z*peyERTuPxkHTJEn@CqCdGfF_(8)up3lDK@HSg__Qea(pGOdU@t9~toKairzh4cWVD;y%XA{;h>GU|kw$ScCJ(oPwYP8h4 z*||qIwBiUGx*@_F*7CX4EOW!)sVjy(2C<7PN7@!mI80c{rzpqT4zb9(h)v))Oe@>y z?ps9UvM|2OFlC2=F6M(cy1CCI>2g>d_pMp-#wB#wUQcMv#upri>&?5cX`3Fudv89L z)ohw-m{Oi((hk*zz8*ru8nN`(Bgi&Z@OnowkCne3Ib+IgsKX;pqr&>T?pdKK{Ty7Y z3wG!VrIVJaSOY@Ez7z^PRXMGC*y#$r$CBUZMXf8D^$oZAYn{SM-U!!Q#l^QDeD#5i z6tRNRP)BQ;jGC~SMMiSRQy}6@t^Veo9($=t%^F}7l10Z5*$^uz}b@7c~tRqs&Z7}cF?B5T%XuT zQ}-lk+Th}T#@D%@^^_+Of$(jMBSW4&jWH3YDB5cG>>-CQ#mw6~vY(3Ew^7_Oha-x8 zk%adHk}QoHB?N4irq(!GW69e>LIRtsV9!Y!*otLsi>0HlvK`xEN2l(SrP2FDQ;OfS zMSFZBJ#BIjb74KMj&+6efLV`jAz&Vh+5R-#^i|tq>7rrm@b=I~F5d2Or%xm8{fDRIjCa_MoulcrD0Y8m^kCxxhkq}m5NDZ|n%`R) zKx0xe?r&z}{$?7UzO=%=11E2?&Up3F(lU0yWNpnFj%!L6Ok{g@xlPywU0BV~aJnFH z?XYMT^43tpG#A}|Yc|bV^ROh+*|d`0*lSdkG-V%_G@;LJMzSq^Zk_^ZvKx^8EM|8P z!?cnlhq21ojmONlSjEvGkEtEvcR*!(T9vzT^*h1}E28z&uE;u6^m)6r@C4s>V}9N~ zmiBfuod+}Yb}XF-zxM66bY2HUP1%3I*gT>nBi;!h=UDtZ&lslNMqBDorz{@D;syrN z%!h_LdE*@R&;Cv5vj;r8F0LI0@9pdf3BG;U-MxL= zPEXE<#%jYGmINLX(lNaKMrP+u#}G$jh!xMx=Um-T&YkW#lyl)$yc>s0a!qu9Rp0%J3Fius`ofMt3GP{o;?`lhi+DiCm7v6eW6 zhTGHWRkBXMiCIb`I^1-rd>hbN|6}DDUb4>nG7H|3k$fMAueIePOr#ox-0x)$$Q}luQ-@xyl*hL$i@2p z{Gb`rJXpeJ$SaQd>>ohWVKMfHHgvHy={PK9ljcORE&CG2d7*!Du?&cdgCsRC^j$dD{<$8P!U2sw0Q@kmc?0MAI@&3VQ<=FUHuf=Y5B>d^V@1Qf6$h`_s`bCa zR#mhWW}f~IAL@8C9pB2cwQ&!ettHpBmYF|6(<7IYZz1*D3z*k&W#yo^Pb(zH?(-x$ z7E(Vx!!UC~9l6@$3+Y(z|AkO~9R;CuV}A~4NXKmU^cTl0P>u@TInjiU!R^6`XACoQ z>YA{AwvdiK!b(rNX;jt8JTi)LoWLH`l;vFL(l%-w)(>%X03`K zxFm-M5^|`-CsMJ?=D#UJ*kt zb_CjRw;T%wdb0QWG^FxX&j}+R!5mEDtLu}-?2Ui6Hl$}Ix#*FOe!qq#ZwaFE+_lwi z+HIb*O`~@nm zXE$ra+pvr3TWhHYT;i|V8fFc3&|?$63JIwpkE!a*3cm`c5$9OxSFw#f34gbn)qbU% z_J8fBp8dA19oCF@I8EBJcfM|Im{kDcnzx&5VTtD(#%=R_LZUW5YX@exF@LhE31Ul; zI{-Hi^jqlS`2l^O=&y~FxXL!+OeIDk>~?JQ1a52b?j7EvC>K{nxY6;!jG#m8Pk1xS zfPrl5$a;oZCz2d$GvPuAy+p*r8rt{L!@7I$v3h$^932aHN;?b~f}O&@`bN&WCOQFd za8mLk_DA$$f5k+-m)evjpYt?P$$Qy^Z^CKv>b1k3U>|)GVVE6OCp>k2H=)T5Joot4 zi%V$lxt>tdrGt;v+Y5tO?WJczW+#Hrhj)hb{4tjOZ8RNtj}?F0tJmxd^hk8ng83hS0R2{QfivMimRsO3|T zKg&|D@Vr^VNf4i2C06u&-SWw2IE{!N1(?4I6L*Z!{gJ00IB|fXf9>XqK@>N-IX?KP zAm;u1iNKYm_ES(U;dBEINbF@T4cdmC2^RXYdg|eSI>Ca^4P_}Q$%)XY3(LG38i)@l zM9CT)<4igtnC@ILC!OuN8WLUgK+6`$lJ{I;mg>H&qE(_LgG{U1Y@H?#E54{7oY5j*hs@AKx|H$PvFOfjD_lHSv68!!X5;SLrO#dO?J2{5v6!Oz)O>* z>U>spZM%O)p~99mqg%U+5##Ge^2>suE|)IE=~f=WZD*lSEaNRX~OO z>NaPz5)ZqsKNVf++uelk6q6-sO>cr1Z6rVyKt{E*#m^V8lpllgK0k>T{lI{#Gg8Lg z?!AfgT@g6f@T-kP;rMWWLk)56YyuZe3 znyA{jV(w5?n4jHYH9rNl{d_LuD5@A;swgjP1u16_KD)_GHzFfHTLi{sK`G8OS6tQi zb7P#I-n4((jo*o3ZkjrKPfcOdevYMcv)HGS4IL}qeq$)6?i5h< z+<$+J;$3c0-XY_=wD)hz($kl;Ral}>6v7fcxy0yCY2T38bF^(XH_D~VZpy5Dr6QB?O-LpjthFGTscw2C4}>%#b?S{ z@NbcMWs2%!NX2PFA->vDrmdE@stwJ(jR7fe2*vslDUj)j7Lc~%wg8XB#r!xf9zOUu z;4mb1VXXl_qK@&$S20>*Sr(H*oiHt3zh9%rr-KPU?E|!Qf!MkDnHYBQw@@;Xr%)13 zd)?uglr+=PNDM6Y-XPM5W#4uJ4LaNi)K!BdWhz&-GX3zu1}_rC{Qu0PnaRxhXKc`i{avt9ROS6JPQm)upEAwN zTzfyj#qfQwkM+C%0vWNt;{FU0K26a))c`r}m@?O?M9P8rR~{M0PW<&TnZCckK9%S* zps&{fm>A-;QYHh>i6b9g;Y9*@2OViZGjH=m9eIZCAH=J403OqkKgcM4*o)xAwmrY$ zMTXOThlId7{Z$Kw{A3cTygX9GKnB)5dUmvtSe$HxTPew;1JO=yGab#=3Yo0@wn!iL^ZrDwH@EmORM5waZ+~Tv-`N1-M?~*Jn8^v?#kr4g- zc;pZ9qIx8vi$dLf;OA=w`n~2DO_%ql^NUr5c+Z>H)+4=o&DTuiyGKC!WX_UM%!1R3 z#PTYn1ZDKM2n(W^PjMX!Etr2zrSa}cp5a3Vk^o-jL&lTo+~`X>BiGNDVDaVFaQsv5 zOU97h+-M--hUeh^?QH>C-n?oFz7RHrdGSmGsW*L;i|N+p$aBGJ8+)dxZ9dme%a1@_ zGvWJ{)fRV;6I2mBmoC#iYlhe#oYCls4Mwt7e;vOF9_Tw4_FHpT8YhRm!PaN#nKyK>G3lZDy^(CeqJCxcbDHq9RBttXoYfarCm$o z=@$7);a8f!g2(%j-rhoKe0Wtu(v-jENAmo$!l0cdXiJn#=uU2FfGKlU7#jcG+gwVf zC?(BSKctb;Jh-^?CyL_mpxBcSl@sYCuS6NmisvSO5=vSL;Un^Xg!ek9+yA}iI&9O=WY{$P8q!gfiLvqXBJlr*cG?T*=o23F!e z-CJe5!<2`auutLUhJx)(o+9G6R`AS*V7~)j)sXatLRB^-OZ>Ao3h6?6m=wD<^E4yb z5Rz5vgzXfY3{``q8LPQZBht|^0wMTVCe&`^Tm6VPPj5sTg7o3WBs9?BA7HL6fNQvO zpDfKh#7i2HEqMzPk@tmZPSGZlIuR@jEHd433-AQMDNLpVj`e)U1;7>aV3rn?I9b~< zMO}_bma0q(&byR}ow3Gt`gF&n=)+GoCjFmUa2rI$`XCw;_E~FeVHn^Y9^KfRc+{tS ze11x8Y@zII?9EMlLKCvZe_@6O!-~KCrt+yZuMHrb_@n@04q3QdD}_k5j|F>vA}>qR zlXyu0`7rLZV+iv$%fj>W%iEG7UXCcvhS{qsuigY@2}rQoiBEn6 z0nKfF09@c80>|A4j=N^^o^Oxxe1&tB&;ni)NSfv?((VE7YeqQ51*MPL*7MVb*w2k{ zHM;PeU}%ev0WQ3Y`)Zx%%g{svm-^x?NwP?nR|s!Kz~iLnuc6!bQ>6jDa$p9m5qx0~ zNi-B+c9inNL1eI@c(p>s`uuHfY)W1?Y`tEWFGD_WYkws#Wh=*HP+b_qEo&4SrtB#A zcqw9%sN0Dxi!`_y@NyUU6b+sTxbyoQx@C|CmjPeyf**(8M4~4F3H(ejiSy4+b&mDs z>)fvy=|SJR%;jceWV1na`nE;=4#;fDo+i`H+jvbmqW?$exn zNOE~hIBCs)YEBYKGaJ%_y~7u!J3GJ@U|f7eUfp`9?GujbhQ^BuoH%Qh4Hm14NaUu= znDC3DNF-^)i=xPX$N|2*6?s*^s6?h~lDP2}3FD=D(wGm3CP}2f@bOwQJXZ37UBg=Z z+68_hnv8_C!*6Bqlr}Kr&$cG7(bu|ch#_t1YreMR4x}F89S0E;AKx0io(UX6R~-=L zWRh@n!Kyr*p2jVwHn1RCaSLnu{$ zmxzrCaG4M%C#dl31QlMMKt@jTMV|v?n!5(>Fpd~<+c?R;U#d9;*pq!OPAeRXaiRtn z?zV%KWC0WVF_@<$hn6Js{F5YzcN{?seDzZ}0PdaHNSSJ8%c6@3RzhW((}$OLCv6)q zx+eMog4hr(x(N6Ke!Dw~49OYWy|?ngg7V3bIAKxVU(%d7Ztek{&KbrtdSLa)Ik$cf z?0fU$q`qcT7N>wpK9A{1!t)keoQm?o9k3{l(S%Ro@{P^nY!{rfz)`KPw7Ad(uI&~U zmx%h!P1?s8(y>~_cR&w@*nhq5YK&z10=D&!N51Kh6)b6j=ziyl#if5kT)}r94ZYCj z@wmUObkI(AAudi-9>e)>t=u_Zd`4A@#eo}!kZAsPB1!dk?dh#G+%Ji|OK&yehm%Oi zXt%Ovj>bjXVqy)k-|`k-=i}S2RlU(I%7gYSwNC9e-o6(JndC;hPQgH1d|?3Ewd?<$ z_AO;&ng`lq>B3wRp0YS_5PY>z_;>4DZ5+RnM4}^I+x_K%A|H4D_9^_i*B!-Edy!~& zSPP!nn+(reT&=eGi}KRjIgroKgItsc6zG%iFrf%9C^GF@qIE*qe0H|JutzQXX{Yc{we&r$6QWMOI0+64%4(rlAmt~q z_9rBn#Qh}LNqhqAJa?K~o*>ar{nX#3%~gtEi(j~_()`hd=1;>EIlTE(cHRm6oR)Y; zMxR^pH}pFQ`r+fGB8@-CvjX80DJM0Zi*w?&b|yM`SNX|vYiIuT$F+m!E~1$*Ue=Ec z*XLx)bpAH()1P$elZ&J@Wt1v% z%KwIL3!XB7MAOWjJb4HSdYE3_)Nr9!`*?c)*{0EJ#qSOvo%FeINHd3V^FXr8Z5sb@ zga^wcY=cY;Zt(x)+W;Rx{BxDvD?|=oeeOPMwf&f|Lq zk+xl(G8tmOa>P*wH%y z^EWJAA%D;EmA%|LRONYz-&AYcsRD< zk1We|NNS1fY;{(gA}RM)S3cb8r7HP-xlCY9Y9zjgxCby2j*5Vvbd7XsvPe+h|R*S^k5LZsHuEAgt-vv}nSFE?= zhY+PxgEl-xnl@kK4m}g6)D#U#f1DJDfFVKWM>)2n&ZCRFd-=4d$eb3+(x^2AC-|$= z?&KZD75+Kgh`bW93dzzx z>(~d?7TaHuN`{A9m5C(Nsp5BD#F0dp*q16pCef?B zCY6loFweoH+U?I8x#ZD_6So|BSt`HDr;Wm>&Qiyq`rgB1aAyRs7=^PsYcM}Q3J(61 zR@^#H-KX*5Ur2r4b2MofWQ{=|b!N$$>f8%k_HxT;64ce2rmB=hIp!9>5TW4~LmtXc z?7&1qy)6es9`P{9;Vw@eOTvd+OSHO!H2G9&{WfZG0Aj<&2&t)-7n=^jM=iE1Mh7n% z{hi!6hJ@n#5;{4Fo5zrdK_WRqocI=CQl(1zUKp_%+GG$^ZmX?N);L#I4PBfmUz{G) zQ3s7&p7I@O$^S8ibPURmS6RrnIGP6n&fg%4#`)7!f|KqDc5&b*^Tad~-D^^=IA9Sc zN8*6R$w2-d4S%PKPlUq+rYD|+dIV@?-Fa~u24+$Vj^CvT53j4!N2{~W1viP`Pa~}& z)ZeX=oCOniItXKYk`>txcF2CBvZDuF$XYoD)8a71LiQ0_UXeYda}Cl7-qr?NM6|Q7 zoh0$9v8voB9O9K@NkkmFFyV|Q_uz-+o_|B_+QeppGPEH>q0mQEQ=ScDaE0x|5G}2n zBpBovl>53&JYmxWj!7jq0mmQXNpIfqQ(P#W8b`*ttp?SLxOqI8)Oe|)u9!Q)pokX7 z!{Co6AGNsWLRiz_rB*>0sPIz8VYQn;LK-hU;XZT6YXse zern&r8RQ>cBKh$pUOk(1bsL+HAMoHgq^~>d5>KB)2I!Zckm-;Mylf8XgTyFA20!418Dusc+=$=LAkXNRSIcy8bDlYuv>XM# zjw>sGSd8FThy?~0_{Rmjjo1#k5&$_fsgHkz5Jemvcy&3Vi`QKwoR(*EbPI%3o0rr}Orj%?yNsAG6BSgV7n zJdeEX)~_RVD)#sNI+Dv*%@^%!{pvSQyOa?A++*55e2>?lj=|B-e$Bb@IS*MJZp7oC zbLrO;a3qxb2k~{UB8}Kz{{T_3u)h-+?++C^)F74=@W6n{}VHo7iZz* zxi8_>S!A~U#dY}o@Ik!a0~sV#q(-Dc@a-uD^`(bi5D-8Ck7jR zo+Q$)FS(e8q|1tJw!DPX!CqaovCyXIOAfON6OwdDyq{{xd+&lH`rab)x&EahKpSxD zVr&mzx*^lVbG%%n3-CfJaWk)7OoCzy6wY9nK_Ri3+ET$aq~~faDYnFHQD9?53-LT< z4e{p-Um(f)l?gKKd6pl30aRDwSiR>aejDl7l_y01RH{AhsZ?L~L-{awstT;TO10KX z{P?;YP~_ z4e&inaG|{leM>l|P}q=1f(EQAboMX7SL;&(xKN%3iN$M3uJ+<#`6%gftFDC6)$MuhivrlJ z4rt^9my(xg=UiU3lq{yJWj=Hn>1yb_TX502Vs#;3wG1^nV`eTR<7lV;+-EuYIeK-e z=m}0q{AJq7VI8zFUtJ5>0`!h-SV+u#=n4`W{i>pwGL74<^*U3~H%qT7YZK_;ggg#@ zfP$;}aB-tFTup0VEz#P9&c$`-hZm~H;C{Tri^MlCt`(djKY<}rv-q6INA1C@r&Px) zu7hHG9UCWVKB<*o8DjT54>l{kk2Ad{0mm^0SfD0d2ys+~!OXcz1O*p;MTu%+Q95BZ(&?>zVcszI| ziDR#rG z^5wkzWzhr7(DwV3?(&W=k$~npv!yTtuvwxf*lc0hHY08YSjPtMV4~o91En={V!anDonc; zDpSu!lSVdq6&~Qw!V2E+Roo}V9O7B8Vn!6+RZ(LW@v>L37O&B4K=RVpx-@ zB1AV+Huk;OkY$E7J5*S!DNg#_XDx{}tf^874Lh=d<+7DD(axxo5e z@+z5{K$BzLjA+9xTW~1y5hq4c!K*k9+$(r3Co>VHZ6v>u3fs_4WIRRIx*bPuU%o*C z0lW4F;d&L;8By7G@`HZeI+-@P$&25_mU~?lFMpFfMVqwXemh7=TZcQ^_<_(zY{+h? zonG&SI)jkb{JNK?@RS{-Yg<>>@#TD>UV?vEGv!5gLWP%@ae8yji3(o2gG9UIPx(9i z4LeC&!+Q1Hfi}9w<9Cuy?$wpkk;gVyxYM&a#f^F_evQ(eB7T`RYNl!{T!QEH>nmhx zga@z-YuoyZNbeR;iQ04HTckB)nxICOx5!k(`uj;H+)T_ucPrn*m1Vhu zCYf}D%rEXHAw4$8E45wnChU@hCBe@LWPnRu_co6#+u|tW=C{d@A%4E1PMk^Ff;hlA zQ|jO1@$W$C>!0M7cc4i1_u8`GA+M6i4MRl*b!thHvw}f9$k4@^Hca5jH6);)Onq-^ zkW7s&A1Ai&S*>ijR+iyXCcXw2ls0nfUJ^9UcfFQZe13GVhYRi^t*k<$v&E%sqE@E( z^cu(2F6BwQb}yMheFJ&gyV&~p?B*xlCEa{0L^ZRt;Xd~}B_7$O| z+6Y%X0T@L;lpnBVmy+SQU{@xYOuZ-as(s}BNM0le2+N7%1V8I{_`=051?1y|B)_+~ zobX!7cf3y~g=}oE;lWw+Y7T)UstxN7@v!~4+~q~Qaz9)h9jxYlGD*J?gQQF1DP>@C zqeaD~5K0*|ePfQACujMD1LUA#qvD##6vrN62Sxb_wOraM%A@(a2T8VJW32)t_6OW- zBW?XR`H8$@@`?QTAL2L zz>o2aa`FLvuz<%L!fS|4x4GpInM7ar;}wT6ny<%*cpQK617f7F_Y;K);s+`_`M*9v zqf#J~`&ckOB%KVetIH($6aMapWI)jC=fwe(Lsx{@W%B0=Uh*N_n%A{n{&9q79>zlV zMwr^8KUN4)g!0cn#F6F~he?LvjiGAEz3aT+5tzF-vb6jGo_G|P>Er zNH^5{U8u`ZverXYteuyn8CzlLQNqaJs01msFt5qAD$ag;HJ++d3&uKk5_M8M!8s8MESQoO(|ED7465Md^gJ5YvosXA<84SWN7u< zqkNuHW~r`_CEXb%Emc?8sy-unlJ}FcmleJ)3SdaLtioBV(J_}~@>8xjw#BU8h(<84 zerg~F3M(hYGN|}dai%SWn18Nyi0ZFMS^20V=mMt{IPRaikRKaa`ROyHh5wdS&_VS> zAM)cZzPysmj{H$MByeG@%$>0xr*q>OjMnw*y!{z6eE9WEf-(Fwk1lz09b@J0j9p*- z2*#=(X6)K#e(DU)aJQ5>`MREKyL*Nl_cClzhF&IDX7LkWl6Uo6?js#&%l;>sO$=KD zgxqEFeIMJ6Y8bp8TNAW_fTDaSez^~Ow4V+MnPM_He#luU2V}oB)dd%4Y+sYuwp(+O zOql%Fw-$;o;)d9NexS);+#0Bs*0Qx2v`6uT^JIyB>j{~Bi?fXL`U`|i+5giHxZik-l`e4i&we)FPsN`bByQw3(w?={nQR# z#4NMhS!Q?)ulX1GD&!ln?mIsGDHpn;JhUX=T(VVtLk<#sF&?S>i||#K$beqOG7zx2 z(kXi&=d8cb$GLnIE6WTt97=aVU4Sjc%aP9I#&1aveKDr`1+0fi4=*l;lS^gt^)}HV zVP%ACmt3TLy#(be-lH&wt*EuWO>u01FP!3F<(GKK`IVYpfd1D>{QS4@R=*Zs*NBHo zJ~BDq2SQRl^3kqqG{G020{&(m^Bwtu7FQ{*loue)ZN?fhUKdxbIhevW;G;&z#<#rM zaTMqY=SBa<^M1S<_%~@CSdF%lq06#Uu;ta8##sV4&a^Ft@Av_(Qq^=J`BbT%xK*nM_4EUM)cMC|Uh@M9GHf%e zs#Dcr!+&tNUY8}}WvH1?_zxM4uOE5Yf8Y@OV;DDGBikdt5L+>E92Kmd4(vaVHgJQ4 z|C>sgXJ4$eUAaa+A+)j$-}58c6|^m0V-~~qIo{Fft|6Yg;Vu^NWj~Q2blXr~^%I^j zeJ*}A+_A^cPSHi6&&3Hz_lFkfzvwz1m;+)KcL^&b}qx_|rGZWdCg&WpetY(wejl<9rhy?WsFF;b-jZw|nvQpUEfw zpFY5l#;Y7{kLQWMV5jrx=^^&}BUo`?<-M%9hXsB%uR|2JvryBqrPU zw}>C{f3w0lxF@hb`xOs?!+s+(g5Ja^pYV36Un`T3@9>Sk!LvV(9ipCo#C!giG_}2b zoAe|4H_^>wn{2o5kQuthJB(m2*g3jK;H%yvf6*OgUibih)nS~d{6T&tjdzImKrVs$OnA*1CmU4WUJVRa31r3Y|-y1?GE$7GIs|yB;}jMXqqiMV5bi?;yHhjcY}6_ zm#p!kRWV}9qX1&V;ftLNe{>nP4R-PsJ$P$<4xLR8u2_GKZl?!E@KuC{(*wtBdk9@h z>H9d+_oBP#z6V0(ZNGWZH|o*1`}0CSx+`eMc};v#GTD7yGkJG;;h)&2#@3@vYzrFD zOMbMe#g-aE{k>`9RNJ%&`mZMRuN+%)XZnmUy<@bMCeq_g=;aiil|l#5BMbQ96#8T2 z;agVxU!<5SyAoPR#^F}UWc2D}!GAt$HPYdyjP%JI+o=(BG|4-jV1ID@yhrd+^T+NY zF44+jJa9bg$S6-oNc$h~-0S5%+_*c!|GVYop3LQW08V-2|DQ0E{WmlUJj$ARHV~{K zY~*AV4YpOLQtA_;8*2Z{E6O8GKt79Kn?QHu+5f6nVgJi#72+~A7U}=5LcKwiX!tzB z6@*%Z`)J$;AppUI&>kTHp&vpD0$BG+N6133BA~v)Y$Z2Mrt|aa-?0DXXZ-&y4E(=p zyndO*DVLxYHl!+iPLh#{FBC5VUG?K`I-w%F~v_?X?aW#II? zlKOwtBU1ja`u2AFO#a$#+B$H~eS8U946yi1KuEXS=kd>X)1Gaz3Xnxlls_~qf%63x z#Arukg?Vh(1RjA!FwL0t@VD_jFR6qo_>%{p($bf z^Mka7!LQVaenPgbZ5>b2&nZ84i1yX1Q11HyooQ$g42%kl!X1Hefbxz<=rFwsljq#*3QXXpV(I{gd!%ea6m&@AtdNqZv= z$VAfX3ne*0K#z)K(^Qc>Ad*dL1j214xlSa1RFW2v{6!=KPYK+e3bdH-`v*Ow58h!E zgPU1}c7sclbi1?k*OtN1s^IftK8o5nM}!=ANK&&DsUZq#5%84tOKNTz0vU$HLxw$p zsDD`?(w#uuDiA~B5r%U1B^{&>l|bFZzyFdZ8bYC~VU?29WE-!zMtk#d=jeQX;h(g= zUM;cx_)nM(Ls+E|nudwxU5A#dSAn)m=LAM`2-yUTpme_P3=QM&U8Dy7(SK<(KJ06n zt8ZQ|ih0%7^w){a(Pnd)J@T8gNAF2ei$#Lba4;7x=A%(9Y=`cO!c|HkWE3vcq=U1I zkVOlni{TY0JkKL8&?of~H;gpmHg8@_oAOsK(Dr&0*u&H~askrS(%JvQs79^=C3RF= zq=*)kQEibZpvtJW3KL0XR9nCbXrtOk6u8Q$wkYMtzM)}y6KsU( z1poIp^bJFFI(UG&2~Fb>-_j$-);L)~?>Y<4Ls-pDZaV(xyrz6`{5f6x6BG zAz9!mLTz)AfBbK{&kzR@B|wlZTX=B9ldqzeaqC2}ZNya?O7wBi+_;Oj`9DxA(RaCK zq+PB2?tkb}eF9_)<9GNPJ*%Z{>^e;%hVEC4u!b;J#X{GQ^P-^v zGA2!%K+pD%-UMz>$RfGY_K%yQ{hs|mEtS{)Og}Otq4}g*sP8?YnW4P;7us8&bk|6G zNxWGt{Y9S)W?^{!Z-FN@ZM%AlHY4Mn$ZiB7D8{Ex36iQr`&b23k?6n_kyIqw_pm@v zB-%G#Bo&GFsTD~@P5ZYOxQaykCiAr4=mEo^Of-B^k~*#wsyUb+y-e%zX1~*1WBocM zRdM*8+w`|kti`YJ{1H+v2EiYG=vz2reJ$-#&OlYI@~pS6==J2pZXHRa5FIA z8+2_imV;AteU+}iUIp?{qMKW!|xUOh74M~LnT{gXx@q;Nge zb<#hXBam&qsP4ZeEZMehEp?R?YnjbET33Zch3)GY-Dgy+OmDVR5@oh$V|8PRSa3e; zsEgOp;F5!#bw3he+f%ygdf1}7=wb+Lt_``T2yI@zp|dW*cCni-o4`WaMt9dG>0l6S z>l1a22&{swBuUVV@v-T8>z*K(X*M}o*Tjp)t+P$+rwh^vU0*Ozmqnn?wx967vJ%?U z%Qj-L4qI!e;afv>&Ap&iwog(7!9f>o7e?qN5DcHK+eqCA0s-4zP8GEv<=RoY!8%Bo zCyv$qg@Y8HI8N7B_$t$d@>W+zOKA3tU zNQ-$9s)=JbUzu0@p^G#KZ%*;(g87XU@H~Pb4=>Ws3Xqj2 z{HcqK^#cnC^obahIsQZ)@wW^?ts^{A1YRKOr1(h`K^k>U!BYQm)LEm|p>S$%V@;gA zGV*>_5hD-RTggLcN?r^t%ws3TUl#~M(f|nQCI?-3uKL%jZa z%I}(h!fhAio`L{GZ34lEAfAG}5wVw+f7U295Sr$|e;N5bF8K|}-{zInE0*rg;rFRm zcw=Dz>hNLjpRD5TbzaZL#RHn6k|pbny7J{N`8Uxl1YTFZ5BV#+Qs>nhw;z69UJ z%jkXJ<%u=f(J${zBY8C&`Ctuim61%eAn&NR)hJ!Hf=;bge$Xg=ISu`B;D2f)Eo)J( z@#*~)(#jw3@#p=cku1qUB0;UM*BkSs31HN#L<2N2k_BcU4At_n7-mtyOUw5%lJ-@| zYaP~)GD^obLMep50m16ijiiGZZ%6r3Bl$(tzoC_HGV1o1DV~rYZRIrR?xS2M! z(c+j>MIsyOjPX6gUG^K?ZmF zdrqX`*<$}|41Uc_Myikwcre)^DW;tcfkzqVQPHE&1&bL-8I;mjD9uR$UnAtC&?J2W zGHw-fV;lY5PLYUYbc(&D5uB;`5wQzggxC5wmGP|Dct0=Hql^&@It30qz~kR+2L}p1 z5p#AYxm5mW6#msy{86^~54xIM?JJ1lz}}%W`j>>?Oya}5z5)|HBzD?S=)+2XQ_O3FM8xBd zq2L3tOA}b6RXjt)e!0K5epcl26&p5937+vUV&<v7=4U zwRUH|F7_vsR;W$s?~1*BBlHQyr^O6*K{r006&3rBBhc#=&lS4}zm4{vwN&hiB`(vd zVAd)I+exq!kV*A?RqPXMfz2x5dNDl>#A#IV2C&+Nzo zx7GpYj-k&+efG@H>4m~BKMa}Yi+OHW?-+cGFX%_j5#?(Y`-|1!(~7?-Hs$C#Br|^? zren0XK8s2B)1ACm|1y7pzh}Um+V2nKy%nr=F`HkFEjxidI*HGoA?E#w-Yr>}f5-CP z!K}!FMNQQ8nBRT&RZJ!H4yKaXw~IO9%4oOJyTp9j-dmQ9`5W62yIkKhH-F*=U_|j4 z19+T%I)G=tFZS&tz3uc%?Kwg}H9xC@anb^xj=Lr|Ibbo@qtTJ{04|G+yNS9xx1dQIu6_a*!i z5eSX=A_Jqm*&k;OWqx6r(=8nVP zqxdsV8~^bY=FBF?T|gHRY9=QpCJXugTnnyB=TGrsv3~~ zDI!u7q#&m?T>$;>K;f_|jDi0N+^N_Zz$ngkxHsM7?yb# zitTEnf6P~qceU7aTA-^zdCqvR`3B|P=U)eyttmg}dHj=s$C}~LBFuYI%;#OmPN={E zF@?Lar%~|%2|wdP&XLA_HOTv^*oHAu(yVkU`h#uYxMCK{okOr|(dM%-&K(D*_WKO^ zC1Q6C^FqgI{t{Bq2iBs=Zv^iGhx{VSzf6qVRfcsc&R-)o;Zmp$Fk zfRx?S4P6Z?sArcN2RHfr1EBIUQ5B{V0IyyKHwI&K~7u#|g zgVn==`@~*VhJk^CNB*KeH@WWW$qf1_FTkN4txo@hT69#n_rT$u%J2@WZz~DbUsG1diRS?F>VlCS?&V}xX(ARD4*4DC;ZL6z@ln*?FepH`T`Wh zR33j8T`J~q5(hNGMJ-|;=!AY!``;ufd(6FP&=+@#`C<1jsW#f-WHecxvpkNe! z^`K~n*gp~SpeT!;67%LJ_;r{S9TfX(QVRcpiao%y*APgHJu2pB9SBs5W85C>Sr5VSld>4A=S_X!Lu$Y=p1r31 zKNS1n7zXw!{WBt%4}>&2XrN#oMtEj{^&f_k!_Y z68~8EUr?rUUi@=0Th?H}DOGqvOx1q)1I!*gZzH(Dr9K>xsil3T?*MMTsCQ}S(6vQFuwq+~02JdOWhF@NP8(1?@_uy(i_ zFgYQUV(}<>$$g>(>o6*LP3+;_;BmG1mtsm+gWD8;fC3`m8RQgBU?3?83@r8T*1)bv zX{BXi-*Wux{Qjj$vGFEwLf8M&6%y_zhn_{$RVk-1_em(a#UIzD%v6^TLmp58ZI0J9 zRdAf;wvbtV3T?V`a;D^#J+O~tSKwIhceu$+HdK0ZN*q$=c!&}rqP5}NK(v|jm7i+#zZKx?8R>bTtcuSHbhuGqci3#h0g z0*$=b?F*=A7Q1OB__X31nV6gq9p@DrITs9o8}#p&Or z9S(>+ztKx)M_kAxI1r-$Kk`{2g-@lSA+;4}#LyG5#eU%8Bx}NyTTlO=<;e2;&?+KWGBi`}8=g z;ZR~K#Bp{!Ka7EOCXKHW``6%5pYnel12(DwOkDBxtpAG``}f5xC-?vK9>y$8D6g1P=@Bs7f(1@t*F?q?dI_xJ|QSi^lMqhJSNaRggy{;8 zitQYtf3worC0F8MFfUYPi~S`L3vNuRIJ#Xj1|IPEQ>Kc8z~1A$P>ZXWx%LJjqJ)BnJX&wI1$3&dU(`<#0)Mush79|7uN^&+mzU5>kafz@9Y z`!M_=EwbwM9KXAv2lBeberF4KO!*(jz>}Ul;!gys2e^=QRjDDZW>-5OuRNh#v zIxm;2fcFR?Ih-`;w3ug`7*;xps?S368vL|*97d~gFpxhl!S%P3cRb|_oX5WXv8}w= zt@tW2ACH6k6kjLy#eT3~wPxOCwp3$a4e7jY3?ig~LGyO->@_vuX|a1Jh;Y5i<15wT zAsA9^`r^3QrwM6zqhfBkE{VV}>f`xbVLfz|i1a9CPj_}Z^plFYv^qnG^^=B~-^5KQ z2HTZNZ(&E}QlLAk`Ry2d!mU4=)A^glY{sMMW!m9x7+i<~`Zfft1UE9ZvL&1Uq}V}M z)rXY-H8CYFr<#KKr0jwL99paNPsKEhGLM}0adJA_{&Bbdseoh-9|)WAP)9+sM$A=f z!HwEsq1drb6le`3|ArzO0_(6%@T&W}a9J8Y4BnK6-xK358iS8KNe&u6N}yoeS6G8#7xiI~8eEgfD2h$> zuVI4|O&zC$7DdguV&B^a4mxlUxpNrYr2;uV-{w5%P<#!e#u==mriR7pe@IDi`mNbS z)gJ;+DE~b~Y%I+Hws@(bRv5I3YZ!)axrsuHrshSSy@miAsc%4SrG(ts#ERlZNqIl?;rQ)+)ULf;!Us+vUvEHa*TC&H z-+~zh(PTfV&iQvBvc^xdPyQ+nAzO%ymp6}il!+CYuWQv_NVb5bouw1DqwxS zX+1AACAH&xhja9PUqPJ}v$~I*b}KI8Xtp2v8pTX3*{e~QsknhH8xaocyixZhR>R%U zw<|q$rIYR&FKBh_Y8P~(z+pV7V=Xv^hb+fF?hJlI0VbApcTtpE=%^{FyB|EBh94Fi z83t?3)I9|q`2qiVbwA-n*VK!;Uvc_v25Zjh-Q{xk6urJeLXm-egEf(R?Xo52w(G9H z`j!nh-+s=y%a)$!p*yZ=_t5$2v}KFZY0DPx`*vOAV0hnk3nH7tp$#3q7cYp!_Z?px bc|Wr6!}BBCrtjVw7|# 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 KJ`Ick6aNR$2h_*_ diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index cb541697b..b675703c6 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -144,6 +144,11 @@ int initDetector(){ Feb_Interface_FebInterface(); Feb_Control_FebControl(); Feb_Control_Init(master,top,normal, getDetectorNumber()); + //master of 9M, check high voltage serial communication to blackfin + if(master && !normal){ + if(Feb_Control_OpenSerialCommunication()) + ;// Feb_Control_CloseSerialCommunication(); + } printf("FEB Initialization done\n"); Beb_Beb(); printf("BEB Initialization done\n"); @@ -162,7 +167,6 @@ int initDetector(){ eiger_photonenergy = -1; setReadOutFlags(NONPARALLEL); setSpeed(0,1);//clk_devider,half speed - setHighVoltage(0,0); setIODelay(650,0); setTiming(AUTO_TIMING); //SetPhotonEnergyCalibrationParameters(-5.8381e-5,1.838515,5.09948e-7,-4.32390e-11,1.32527e-15); @@ -170,6 +174,7 @@ int initDetector(){ int enable[2] = {0,1}; setExternalGating(enable);//disable external gating Feb_Control_SetInTestModeVariable(0); + setHighVoltage(0,0); Feb_Control_CheckSetup(); //print detector mac and ip @@ -436,13 +441,18 @@ void setDAC(enum detDacIndex ind, int val, int imod, int mV, int retval[]){ int setHighVoltage(int val, int imod){ if(val!=-1){ eiger_highvoltage = val; - if(master) - Feb_Control_SetHighVoltage(val); + if(master){ + int ret = Feb_Control_SetHighVoltage(val); + if(!ret) //could not set + return -2; + else if (ret == -1) //outside range + return -1; + } } if(master && !Feb_Control_GetHighVoltage(&eiger_highvoltage)){ cprintf(RED,"Warning: Could not read high voltage\n"); - return 0; + return -3; } return eiger_highvoltage; } diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index 650ad9890..9ddfea71b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -47,7 +47,7 @@ enum detNetworkParameter{TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G}; #define NORMAL_HIGHVOLTAGE_INPUTPORT "/sys/class/hwmon/hwmon5/device/in0_input" #define NORMAL_HIGHVOLTAGE_OUTPUTPORT "/sys/class/hwmon/hwmon5/device/out0_output" #define SPECIAL9M_HIGHVOLTAGE_PORT "/dev/ttyS1" -#define SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE 8 +#define SPECIAL9M_HIGHVOLTAGE_BUFFERSIZE 16 diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index ea9b12256..b41c65a73 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -1259,16 +1259,30 @@ int set_dac(int file_des) { #endif //takes time to set high voltage, so no check for it - if(ret == OK && ind != HV_POT && ind != HV_NEW){ - if(mV) - temp = retval[1]; - else - temp = retval[0]; - if ((abs(temp-val)<=5) || val==-1) { - ret=OK; - } else { - ret=FAIL; - printf("Setting dac %d of module %d: wrote %d but read %d\n", idac, imod, val, temp); + if(ret == OK){ + if(ind != HV_POT && ind != HV_NEW){ + + if(mV) + temp = retval[1]; + else + temp = retval[0]; + if ((abs(temp-val)<=5) || val==-1) { + ret=OK; + } else { + ret=FAIL; + printf("Setting dac %d of module %d: wrote %d but read %d\n", idac, imod, val, temp); + } + }else { + if(retval[0] < 0){ + if(retval[0] == -1) + sprintf(mess, "Setting high voltage failed.Bad value %d. The range is from 0 to 200 V.\n",val); + else if(retval[0] == -2) + strcpy(mess, "Setting high voltage failed. Serial/i2c communication failed.\n"); + else if(retval[0] == -3) + strcpy(mess, "Getting high voltage failed. Serial/i2c communication failed.\n"); + ret = FAIL; + } + } }