diff --git a/1602.c b/1602.c new file mode 100644 index 0000000..9e29a77 --- /dev/null +++ b/1602.c @@ -0,0 +1,649 @@ +//========================================================================== +// LCR表驱动程序 V1.0 +// xjw01 于莆田 2011.10 +//========================================================================== +//========================================================================== +#define uchar unsigned char +#define uint unsigned int +#define ulong unsigned long +#include +#include + +//========================================================================== +// 项目:LCD1602 四线驱动程序 +// 设计要点: +// LCD1602 的运行速度慢,而单片机运行的速度快,因此容易因为速度不 +// 匹配造成调试失败。因此,调试之前应准确测试lcd_delay() 延时函数 +// 准确的延时量,如果不能满足注释中的要求,则应调整循次数。每步操 +// 作所需的延时量,按照数据手册指标指行,同时留下足够的时间余量。 +// 硬件连接: +// 至少需要9条线,电源线2条,7条信号线。信号线详见程序中的接口定义。 +// 清注意对LCD1602比对的调节,否则无显示。 +// 设计:许剑伟,于莆田,2010.12 +//========================================================================== +sbit lcd_RS = P0^6; //数据命令控制位,0命令1数据 +sbit lcd_RW = P0^5; //读写位,0写1读 +sbit lcd_EN = P0^4; //使能位,下降沿触发 +sbit lcd_D4 = P0^3; //数据端口D4 +sbit lcd_D5 = P0^2; //数据端口D5 +sbit lcd_D6 = P0^1; //数据端口D6 +sbit lcd_D7 = P0^0; //数据端口D7 +//========================================================================== +void lcd_delay(int n){ //LCD专用延时函数 + //32MHz钟频下,约循环3000次延迟1毫秒 + int i,j; + if(n<0) { for(i=0;i< 30;i++); return; } //10us + if(n== 0) { for(i=0;i<150;i++); return; } //50us + for(;n;n--){ for (j=0;j<3000;j++); } //n毫秒 +} +//========================================================================== +void lcd_B(char f, uchar c, char t){ //控制四线式接口LCD的7个脚 + //f=0写命令字, f=1写RAM数据, f=2读RAM数据, f=3读RAM数据 + lcd_EN = 0; + lcd_RS = f%2; + lcd_RW = f/2%2; + //移入高四位 + lcd_D4 = c & 16; + lcd_D5 = c & 32; + lcd_D6 = c & 64; + lcd_D7 = c & 128; + lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲 + if(f==4) { lcd_delay(t); return; } + //移入低四位 + lcd_D4 = c & 1; + lcd_D5 = c & 2; + lcd_D6 = c & 4; + lcd_D7 = c & 8; + lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲 + lcd_delay(t); //不同的命令,响应时间不同,清零命令需要2ms +} +//========================================================================== +void lcd_init(){ //LCD1602 初始化 + //启动四线模式须势行9个步骤,初始化所须耗时较长,约65ms,时限不可减 + lcd_delay(20); //启动lcd之前须延时大于15ms,直到VDD大于4.5V + lcd_B(4, 0x30, 9); //置8线模式,须延时大于4.1ms + lcd_B(4, 0x30, 5); //置8线模式,须延时大于100us + lcd_B(4, 0x30, 5); //置8线模式,手册中未指定延时 + lcd_B(4, 0x20, 5); //进入四线模式 + lcd_B(0, 0x28, 5); //四线模式双行显示 + lcd_B(0, 0x0C, 5); //打开显示器 + lcd_B(0, 0x80, 5); //RAM指针定位 + lcd_B(0, 0x01, 5); //启动清屏命初始化LCD +} +//========================================================================== +//=========================几个功能常用函数================================= +void lcd_cls() { lcd_B(0, 0x01+0, 2); } //清屏 +void lcd_cur0() { lcd_B(0, 0x0C+0, 0); } //隐藏光标 +void lcd_goto1(uchar x){ lcd_B(0, 0x80+x, 0); } //设置DDRAM地址,第1行x位 +void lcd_goto2(uchar x){ lcd_B(0, 0xC0+x, 0); } //设置DDRAM地址,第2行x位 +void lcd_putc(uchar d) { lcd_B(1, 0x00+d, 0); } //字符输出 +void lcd_puts(uchar *s){ for(; *s; s++) lcd_B(1,*s,0); } //字串输出 + +//========================================================================== +//===============================延时函数=================================== +void delay(uint loop) { uint i; for(i=0;i0;k--) delay(10000); } //长延时,k=100大约对应1秒 + +//========================================================================== +//=================================AD转换=================================== +sfr P1ASF = 0x9D; //将P1置为模拟口寄存器(使能),各位中为1的有效 +sfr ADC_CONTR = 0xBC; //A/D转换控制寄存器 +sfr ADC_res = 0xBD; //A/D转换结果寄存器 +sfr ADC_resl = 0xBE; //A/D转换结果寄存器 + +void set_channel(char channel){ + P1ASF = 1<>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 1; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 + return IAP_data; +} +void writeEEP(uint k, uchar da){ //写入 + IAP_data = da; //传入数据 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 2; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} +void eraseEEP(uint k){ //擦除 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 3; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} + +xdata struct Ida{ + char zo[3];//三个频率下的零点改正值 + char j1; //相位补偿(3倍档) + char j2; //相位补偿(10倍档) + char J[4]; //相位补偿(V/I变换器) + char R[4]; //下臂电阻修正(20,1k,10k,100k) + char g1; //增益修正(3倍档) + char g2; //增益修正(10倍档) +} cs; + +void cs_RW(char rw){ + uchar i,*p = &cs; + if(rw){ + eraseEEP(0); + for(i=0;ib) f = a; else f = b; + if(qmin) { + a += qmin/2, a -= fmod(a,qmin)-qmin/1000; + b += qmin/2; b -= fmod(b,qmin)-qmin/1000; + } + for(i=1;i= 1000) g/=1000, c++; } //以3位为单位移动小数点,右移 + for(i=0;i> 8; //截断正弦相位累加器,取高8位 + y = x + chuX; //方波相位 + CCAP0H = sinB[x];//正弦DDS输出 + DDS2 = fbB[y]; //方波DDS输出 + ph += phM; //相位累加 +} +void setDDS(uint f){ //参考时钟是c=(fosc/2)/256=32000000/2/256=62500,频率f=c*phM/2^16 + feq = f; + phM=f*65536.0/62500; //phM=f*2^16/62500 + feqX = 62500.0*phM/65536; //实际输出频率 + ph = 0; //高频时,使波形对称 + if(!f) CR=0; else CR=1; +} + +//相位控制函数 +xdata char xw=0; //相位 +void set90(char k){ //设置方波的相位差 + k %= 4; + if(k<0) k += 4; + if(k==0) chuX=0; //移相0度 + if(k==1) chuX=64; //移相90度 + if(k==2) chuX=128; //移相180度 + if(k==3) chuX=192; //移相270度 + xw = k; +} +void set902() { set90(xw+1); } //相位步进 + +//==============量程控制函数==================== +xdata char rng=1; //量程 +void setRng(char k){//切换量程 + if(k==0) Ka=0,Kb=0; //100欧 + if(k==1) Ka=0,Kb=1; //1k欧 + if(k==2) Ka=1,Kb=0; //10k欧 + if(k==3) Ka=1,Kb=1; //100k欧 + rng = k; +} +void setRng2(){ setRng( (rng+1)%4); } //量程步进 + +//==============增益控制函数==================== +char curGain=1; //当前增益索引号 +void setGain(char k){ //设置电路增益 + if(k>3) k=3; + if(k<0) k=0; + if(k==0) K4=0,K6=0; //1倍 + if(k==1) K4=0,K6=1; //3倍 + if(k==2) K4=1,K6=0; //10倍 + if(k==3) K4=1,K6=1; //30倍 + curGain = k; +} +void setGain2(){ setGain((curGain+1)%4); } + + +//==============LCR测量==================== +xdata int Vxy[4]={0,0,0,0}; //Vxy[Vx1,Vy1,Vx2,Vy2] +xdata char Sxw[4]={0,1,0,1}; //保存正确相位 +xdata char Vga[4]={1,1,1,1}; //上下臂增益记录表 +xdata uchar tim=0,tims=0; +xdata char pau=0; //暂停坐标自动旋转 +#define Vfull 9600 +#define gad (9600/30) +uchar mT = 6; //测量速度,mT取值为6或12或24时,可以消除数字噪声,尾数不动,但不利于于取平均 +//==============设置频率==================== +xdata char feqK=1; //频率索引号 +void setF(char k){ + if(k==-1){ //步进 + k = 0; + if(feq==100) k=1; + if(feq==1000) k=2; + if(feq==7813) k=0; + } + feqK = k; + if(k==0) { setDDS(100); K5=0; K8=1; mT=12; } //置为100Hz + if(k==1) { setDDS(1000); K5=0; K8=0; mT=6; } //置为1kHz + if(k==2) { setDDS(7813); K5=1; K8=0; mT=6; } //置为7.8125kHz + TH1 = 47, TL1 = 171; //置为20ms + tims = 0; + tim = 0; + ph = 0; +} +int absMax(int a,int b){ //取两个数绝对值最大者 + if(a<0) a = -a; + if(b<0) b = -b; + if(b>a) a = b; + return a; +} +#define avn 4 //求平无个数 +xdata float vq[3][avn]; //数据缓存,用于求平均 +void LCRcalc(int *v,char *g){ //LCR计算 + code float ga[4] = { 1, 3, 9, 27 }; //增益表 + code float dwR[4] = { 20, 1e3, 1e4, 1e5 }; //各档电阻表 + xdata int g12 = (int)cs.g1+cs.g2; //增益最大补偿 + xdata int j12 = (int)cs.j1+cs.j2; //相位最大补偿 + xdata float JD = 0,cJD, G = 0; //补偿变量 + xdata float a,b,c,e; + char i; + a = +( 1.0*v[2]*v[2] + 1.0*v[3]*v[3] ); + b = -( 1.0*v[0]*v[2] + 1.0*v[1]*v[3] ); + c = -( 1.0*v[2]*v[1] - 1.0*v[0]*v[3] ); + a *= ga[g[0]] / ga[g[2]]; + a /= dwR[rng]*(1+cs.R[rng]/10000.0); //除以下臂电阻阻值 + + //可控增益单元的增益修正、相位补偿量 + if(g[0] == 1) JD += cs.j1, G += cs.g1; + if(g[0] == 2) JD += cs.j2, G += cs.g2; + if(g[0] == 3) JD += j12, G += g12; + if(g[2] == 1) JD -= cs.j1, G -= cs.g1; + if(g[2] == 2) JD -= cs.j2, G -= cs.g2; + if(g[2] == 3) JD -= j12, G -= g12; + JD -= cs.J[rng]; + JD *= feqX/7813/1000; + cJD = 1 - JD*JD/2; + a *= 1+G/10000; //增益补偿 + e = b*cJD - c*JD; //相位补偿 + c = b*JD + c*cJD; //相位补偿 + b = e; + //入队 + for(i=1;i=mT) tims = 0, tim++, c = 1; + if(tim>=4) tim=0; + if(pau) return; + if(c){ //tim进位触发 + c = getAD10(); //读取电压值 + c -= cs.zo[feqK]; + Vxy[tim] = xw<2 ? c : -c; //保存当前电压 + Vga[tim] = curGain; //保存当前增益 + Sxw[tim] += c<0 ? 2 : 0; //相位翻转(预测下次的相位采用值) + Sxw[tim] %= 4; + if(tim==1||tim==3){ //上下臂切换 + //电压模值才能反应运放的输出幅度,所以增益切换判断得用模值 + if(tim==1) K3=1, c = absMax(Vxy[2],Vxy[3]), g=Vga[2]; //切换到下臂 + if(tim==3) K3=0, c = absMax(Vxy[0],Vxy[1]), g=Vga[0]; //切换到上臂 + if(c>Vfull) g--; + else if(c999) c=999; } //计算Q + else c = 999; + lcd_putf(c,0,0); //显示Q +} +//void timerInter(void) interrupt 1 {}//T0中断 + +main(){ + uchar i=0,kn=0,key=0; + uchar dispN=0; //显示扫描索引 + uchar spkN=0; //蜂鸣器发声时长 + uint nn=0; + uchar binLian=0; + + lcd_init(); //初始化LCD + lcd_cur0(); //隐藏光标 + lcd_puts("LCR 2.0"); + lcd_goto2(0); + lcd_puts("XJW Putian,2011"); + delay2(80); //启动延时 + cs_RW(0); //读EEPROM + + TCON=0, TMOD=0x12; //将T0置为自动重装定时器,T1置为定时器 + TH1 = 0, TL1 = 0; + TR1=1; //T1开始计数 + TR0=0; //T0暂停计数 + ET1=1; //T1开中断 + ET0=1; //T1开中断 + EA=1; //开总中断 + PT0=1; //设置优先级 + + + set_channel(0); //设置AD转换通道 + P2M0 = 0xFF; //P2.01234567置为推勉输出 + P1M0 = 0xFC; //P1.234567置为推换口 + P1M1 = 0x03; //P1.0置为高阻抗 + P2 = 0x0F; + + + + PWM_init();//DDS初始化 + set90(2); //初始设置相位 + setRng(1); //初始设置量程 + setGain(1); //初始设置增益 + setF(1); //DDS初始设置为1kHz + + while(1){ + //显示disp + nn++; + //扫描键盘 + key = ~P3; + if(key&&kn<255) kn++; else kn=0; + for(i=0;key;i++) key/=2; key=i; + if(kn==4) spkN=10; else key=0; //当按下一定时间后key才有效。spkN发声时长设置 + if(spkN) spkN--, spk=0; else spk=1; //键盘发声 + //菜单系统 + if(key==8){//菜单键 + lcd_cls(); lcd_puts("Menu: 1 LCR"); + lcd_goto2(0); lcd_puts("3 Test,7 Set"); + menu=0; key=0; + } + if(menu>=1 && menu<=4){ + if(key==7) setRng2(); //量程步进 + if(key==6) setF(-1); //设置频率 + } + if(menu==0){ //显示量程和菜单 + if(key) lcd_cls(); + if(key>=1 && key<=7) menu = key, menu2 = 0; + key = 0; + } + if(menu==1){ //LCR测量(串联) + pau = 0; + if(key==1) binLian = (binLian+1)%2; //串并联切换 + showR(binLian); + } + if(menu==2){ + lcd_goto1(0); + lcd_puts("up:"); lcd_putc(Vga[0]+48); + lcd_puts(" dw:"); lcd_putc(Vga[2]+48); + } + if(menu==3){ //手动调试 + pau = 1; + if(key==1) setGain2();//增益控制 + if(key==2) { }; + if(key==3) K3=~K3; //切换上下臂 + if(key==4) set902(); //相位旋转 + lcd_goto1(0); + lcd_puts(" xw="); lcd_putc(xw+48); //相位索引号 + lcd_puts(" K3="); lcd_putc(K3?49:48); //K3状态 + lcd_puts(" Ga="); lcd_putc(curGain+48); //增益索引号 + lcd_goto2(0); + if(nn%32==0) lcd_int(getAD10(),5); + } + if(menu==7){ //设置零点偏移数 + code char *csR[15] = { + "Z0 : 20", "Z1 : 20","Z2 : 20", + "R1X: 20", "R2X: 1k", "R3X:10k", "R4X:.1M", "G1X:3k3", "G2X:10k", + "R1 : 20", "R2 : 1k", "R3 :10k", "R4 :.1M", "G1 :3k3", "G2 :10k"}; + char *p,bc=1, feqD=1,rngD=1; + static char kc=0, mo=0; + if(menu2==0) p = cs.zo+0, feqD=0, rngD=2; //100Hz零点校准,接入10欧电阻 + if(menu2==1) p = cs.zo+1, feqD=1, rngD=2; //1kHz零点校准,接入10欧电阻 + if(menu2==2) p = cs.zo+2, feqD=2, rngD=2; //7.8kHz零点校准,接入10欧电阻 + if(menu2==3) p = cs.J+0, feqD=2, rngD=0; //VI变换器相位校准,接入20电阻 + if(menu2==4) p = cs.J+1, feqD=2, rngD=1; //VI变换器相位校准,接入1k电阻 + if(menu2==5) p = cs.J+2, feqD=2, rngD=2; //VI变换器相位校准,接入10k电阻 + if(menu2==6) p = cs.J+3, feqD=2, rngD=3; //VI变换器相位校准,接入100k电阻 + if(menu2==7) p = &cs.j1, feqD=2, rngD=1; //运放3倍档相位校准,接入3.3k欧电阻 + if(menu2==8) p = &cs.j2, feqD=2, rngD=1; //运放10倍档相位校准,接入10k欧电阻 + if(menu2==9) p = cs.R+0, bc=2, feqD=1, rngD=0; //VI变换器模值校准,接入20欧 + if(menu2==10) p = cs.R+1, bc=2, feqD=1, rngD=1; //VI变换器模值校准,接入1k欧 + if(menu2==11) p = cs.R+2, bc=2, feqD=1, rngD=2; //VI变换器模值校准,接入10k欧 + if(menu2==12) p = cs.R+3, bc=2, feqD=1, rngD=3; //VI变换器模值校准,接入100k欧 + if(menu2==13) p = &cs.g1, bc=2, feqD=1, rngD=1; //运放3倍增益校准,接入2k欧电阻 + if(menu2==14) p = &cs.g2, bc=2, feqD=1, rngD=1; //运放10倍增益校准,接入10k欧电阻 + if(key==1) *p += bc; //X键增 + if(key==2) *p -= bc; //R键减 + if(key==3) { cs_RW(1); setF(feqK); } //L键保存 + if(key==4) *p = 0; //C键清除 + if(key==5) { if(menu2==0) menu2=14; else menu2--; mo=0; } + if(key==6) { if(menu2==14)menu2=0; else menu2++; mo=0; } + if(key==7) mo = (mo+1)%2; + if(key==4){ //恢复到默认值 + if(++kc==5){ + kc = 0; + cs.j1 = 16, cs.j2 = 18; + cs.g1 = 0, cs.g2 = 0; + cs.zo[0] = 20; + cs.zo[1] = 19; + cs.zo[2] = 14; + cs.J[0] = cs.J[1] = cs.J[2] = 0, cs.J[3] = 20; + cs.R[0] = cs.R[1] = cs.R[2] = cs.R[3] = 0; + } + } + else { if(key) kc=0; } + //显示 + if(mo){ + if(feqD!=feqK) setF(feqD); + if(rngD!=rng) setRng(rngD); + showR(1); + }else{ + lcd_cls(); + lcd_goto1(0); + lcd_puts(csR[menu2]); //输出参数名称 + lcd_goto2(0); + lcd_putf(*p,0,0); + lcd_puts("X:+ R:-"); + } + } + delay(20000); + }//while end +} +//========================================================================== + diff --git a/LCR.lay b/LCR.lay new file mode 100644 index 0000000..3d21b2f Binary files /dev/null and b/LCR.lay differ diff --git a/led.c b/led.c new file mode 100644 index 0000000..09005cc --- /dev/null +++ b/led.c @@ -0,0 +1,576 @@ +/************************************* +LCR表驱动程序 V1.0 +xjw01 于莆田 2011.10 +**************************************/ +//==================================== +#define uchar unsigned char +#define uint unsigned int +#define ulong unsigned long +#include +#include + +void delay(uint loop) { uint i; for(i=0;i0;k--) delay(10000); } //长延时,k=100大约对应1秒 + +//========================AD转换============================= +sfr P1ASF = 0x9D; //将P1置为模拟口寄存器(使能),各位中为1的有效 +sfr ADC_CONTR = 0xBC; //A/D转换控制寄存器 +sfr ADC_res = 0xBD; //A/D转换结果寄存器 +sfr ADC_resl = 0xBE; //A/D转换结果寄存器 + +void set_channel(char channel){ + P1ASF = 1<>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 1; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 + return IAP_data; +} +void writeEEP(uint k, uchar da){ //写入 + IAP_data = da; //传入数据 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 2; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} +void eraseEEP(uint k){ //擦除 + IAP_addrL = k; //设置读取地址的低字节,地址改变才需要设置 + IAP_addrH = k>>8; //设置读取地址的高字节,地址改变才需要设置 + IAP_contr = 0x81; //设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP + IAP_cmd = 3; //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除 + IAP_trig = 0x5A; //先送5A + IAP_trig = 0xA5; //先送5A再送A5立即触发 + saEEP(); //保护 +} + +xdata struct Ida{ + char zo[3];//三个频率下的零点改正值 + char j1; //相位补偿(3倍档) + char j2; //相位补偿(10倍档) + char J[4]; //相位补偿(V/I变换器) + char R[4]; //下臂电阻修正(20,1k,10k,100k) + char g1; //增益修正(3倍档) + char g2; //增益修正(10倍档) +} cs; + +void cs_RW(char rw){ + uchar i,*p = &cs; + if(rw){ + eraseEEP(0); + for(i=0;i=1000) f/=1000, b++; } //以3位为单位移动小数点,把大数转粉0至999,小数点在末字 + for(i=0;i> 8; //截断正弦相位累加器,取高8位 + y = x + chuX; //方波相位 + CCAP0H = sinB[x];//正弦DDS输出 + DDS2 = fbB[y]; //方波DDS输出 + ph += phM; //相位累加 +} +void setDDS(uint f){ //参考时钟是c=(fosc/2)/256=32000000/2/256=62500,频率f=c*phM/2^16 + feq = f; + phM=f*65536.0/62500; //phM=f*2^16/62500 + feqX = 62500.0*phM/65536; //实际输出频率 + ph = 0; //高频时,使波形对称 + if(!f) CR=0; else CR=1; +} + +//相位控制函数 +xdata char xw=0; //相位 +void set90(char k){ //设置方波的相位差 + k %= 4; + if(k<0) k += 4; + if(k==0) chuX=0; //移相0度 + if(k==1) chuX=64; //移相90度 + if(k==2) chuX=128; //移相180度 + if(k==3) chuX=192; //移相270度 + xw = k; +} +void set902() { set90(xw+1); } //相位步进 + +//==============量程控制函数==================== +xdata char rng=1; //量程 +void setRng(char k){//切换量程 + if(k==0) Ka=0,Kb=0; //100欧 + if(k==1) Ka=0,Kb=1; //1k欧 + if(k==2) Ka=1,Kb=0; //10k欧 + if(k==3) Ka=1,Kb=1; //100k欧 + rng = k; +} +void setRng2(){ setRng( (rng+1)%4); } //量程步进 + +//==============增益控制函数==================== +char curGain=1; //当前增益索引号 +void setGain(char k){ //设置电路增益 + if(k>3) k=3; + if(k<0) k=0; + if(k==0) K4=0,K6=0; //1倍 + if(k==1) K4=0,K6=1; //3倍 + if(k==2) K4=1,K6=0; //10倍 + if(k==3) K4=1,K6=1; //30倍 + curGain = k; +} +void setGain2(){ setGain((curGain+1)%4); } + + +//==============LCR测量==================== +xdata int Vxy[4]={0,0,0,0}; //Vxy[Vx1,Vy1,Vx2,Vy2] +xdata char Sxw[4]={0,1,0,1}; //保存正确相位 +xdata char Vga[4]={1,1,1,1}; //上下臂增益记录表 +xdata uchar tim=0,tims=0; +xdata char pau=0; //暂停坐标自动旋转 +#define Vfull 9600 +#define gad (9600/30) +uchar mT = 6; //测量速度 +//==============设置频率==================== +xdata char feqK=1; //频率索引号 +void setF(char k){ + if(k==-1){ //步进 + k = 0; + if(feq==100) k=1; + if(feq==1000) k=2; + if(feq==7813) k=0; + } + if(k==0) { setDDS(100); K5=0; K8=1; mT=15; } //置为100Hz + if(k==1) { setDDS(1000); K5=0; K8=0; mT=6; } //置为1kHz + if(k==2) { setDDS(7813); K5=1; K8=0; mT=6; } //置为7.8125kHz + feqK=k; + TH1 = 47, TL1 = 171; //置为20ms + tims = 0; + tim = 0; + ph = 0; +} +int absMax(int a,int b){ //取两个数绝对值最大者 + if(a<0) a = -a; + if(b<0) b = -b; + if(b>a) a = b; + return a; +} +#define avn 4 //求平无个数 +xdata float vq[3][avn]; //数据缓存,用于求平均 +void LCRcalc(int *v,char *g){ //LCR计算 + code float ga[4] = { 1, 3, 9, 27 }; //增益表 + code float dwR[4] = { 20, 1e3, 1e4, 1e5 }; //各档电阻表 + xdata int g12 = (int)cs.g1+cs.g2; //增益最大补偿 + xdata int j12 = (int)cs.j1+cs.j2; //相位最大补偿 + xdata float JD = 0,cJD, G = 0; //补偿变量 + xdata float a,b,c,e; + char i; + a = +( 1.0*v[2]*v[2] + 1.0*v[3]*v[3] ); + b = -( 1.0*v[0]*v[2] + 1.0*v[1]*v[3] ); + c = -( 1.0*v[2]*v[1] - 1.0*v[0]*v[3] ); + a *= ga[g[0]] / ga[g[2]]; + a /= dwR[rng]*(1+cs.R[rng]/10000.0); //除以下臂电阻阻值 + + //可控增益单元的增益修正、相位补偿量 + if(g[0] == 1) JD += cs.j1, G += cs.g1; + if(g[0] == 2) JD += cs.j2, G += cs.g2; + if(g[0] == 3) JD += j12, G += g12; + if(g[2] == 1) JD -= cs.j1, G -= cs.g1; + if(g[2] == 2) JD -= cs.j2, G -= cs.g2; + if(g[2] == 3) JD -= j12, G -= g12; + JD -= cs.J[rng]; + JD *= feqX/7813/1000; + cJD = 1 - JD*JD/2; + a *= 1+G/10000; //增益补偿 + e = b*cJD - c*JD; //相位补偿 + c = b*JD + c*cJD; //相位补偿 + b = e; + //入队 + for(i=1;i=mT){ //tim进位触发 + tims = 0, tim++; + if(tim>=4) tim=0; + c = getAD10(); //读取电压值 + c -= cs.zo[feqK]; + Vxy[tim] = xw<2 ? c : -c; //保存当前电压 + Vga[tim] = curGain; //保存当前增益 + Sxw[tim] += c<0 ? 2 : 0; //相位翻转(预测下次的相位采用值) + Sxw[tim] %= 4; + if(tim==1||tim==3){ //上下臂切换 + //电压模值才能反应运放的输出幅度,所以增益切换判断得用模值 + if(tim==1) K3=1, c = absMax(Vxy[2],Vxy[3]), g=Vga[2]; //切换到下臂 + if(tim==3) K3=0, c = absMax(Vxy[0],Vxy[1]), g=Vga[0]; //切换到上臂 + if(c>Vfull) g--; + else if(c=1000) { showDig(999 ); } + else if(c>=100 ) { showDig(c ); } + else if(c>=10 ) { showDig(c*10 ); disp[1] += 4; } + else if(c>=1 ) { showDig(c*100 ); disp[2] += 4; } + else { showDig(c*1000); disp[3] += 4; } + } +} +//void timerInter(void) interrupt 1 {}//T0中断 + +void showMsg(uchar a){ //临时跳出信息 + P0 = ~a; + ds0=1, ds1=ds2=ds3=0; + delay2(50); +} +main(){ + uchar i=0,kn=0,key=0; + uchar dispN=0; //显示扫描索引 + uchar spkN=0; //蜂鸣器发声时长 + uint nn=0; + uchar XRQ=1; + char binLian=0; //并联1,串联0 + + delay2(80); //启动延时 + cs_RW(0); //读EEPROM + + TCON=0, TMOD=0x12; //将T0置为自动重装定时器,T1置为定时器 + TH1 = 0, TL1 = 0; + TR1=1; //T1开始计数 + TR0=0; //T0暂停计数 + ET1=1; //T1开中断 + ET0=1; //T1开中断 + EA=1; //开总中断 + PT0=1; //设置优先级 + + + set_channel(0); //设置AD转换通道 + P2M0 = 0xFF; //P2.01234567置为推勉输出 + P1M0 = 0xFC; //P1.234567置为推换口 + P1M1 = 0x03; //P1.0置为高阻抗 + + //请注意启动延时0.5秒方可读取cs_RW + //cs_RW(0); //读取比值基数(调零时已做开机延时,确保电压上升到可读取EEPROW) + + PWM_init();//DDS初始化 + set90(2); //初始设置相位 + setRng(1); //初始设置量程 + setGain(1); //初始设置增益 + setF(1); //DDS初始设置为1kHz + + while(1){ + //显示disp + nn++; + dispN=(++dispN)%4; //扫描器移动 + ds0=ds1=ds2=ds3=0; + if(dispN==0) ds0=1; + if(dispN==1) ds1=1; + if(dispN==2) ds2=1; + if(dispN==3) ds3=1; + P0=~disp[dispN]; //显示 + //扫描键盘 + //键盘响应 + //key = (~P3)&0xfc; + key = ~P3; + if(key&&kn<255) kn++; else kn=0; + for(i=0;key;i++) key/=2; key=i; + if(kn==20) spkN=50; else key=0; //当按下一定时间后,key才有效,否则无效。spkN发声时长设置 + if(spkN) spkN--, spk=0; else spk=1; //键盘发声 + //菜单系统 + if(key==8) { menu=0; key=0; XRQ=-1;} //菜单键 + if(menu>=1&&menu<=4){ + if(key==7) setRng2(); //量程步进 + if(key==6) setF(-1); //设置频率 + } + if(menu==0){ //显示量程和菜单 + showDig(10000); + if(key>=1 && key<=7) menu = key, menu2 = 0; + key = 0; + } + if(menu==1){ //自动LCR测量(串联) + pau = 0; + if(XRQ==-1) XRQ=1, sfdw=1; + if(key==4) { //串并联切换 + if(binLian) { binLian=0; showMsg(122); } //转为串联 + else { binLian=1; showMsg(241); } //转为并联 + } + if(key==1) { if(XRQ==0) sfdw++; else sfdw=1; XRQ = 0; } + if(key==2) { if(XRQ==1) sfdw++; else sfdw=1; XRQ = 1; } + if(key==3) { if(XRQ==2) sfdw++; else sfdw=1; XRQ = 2; } + if(key==5) XRQ = 3; + sfdw %= 2; + showR(XRQ,binLian); + if(binLian && nn%512<50) { for(i=0;i<4;i++) disp[i] |= 4; } + } + if(menu==2){ //显示增益档位 + showDig(Vga[0]*100+Vga[2]+10000); + disp[1]=disp[3]=0; + } + if(menu==3){ //手动调试 + pau = 1; + if(key==1) { setGain2(); showMsg( zk[curGain] );} //增益控制 + if(key==2) { }; + if(key==3) { K3=~K3; showMsg(zk[K3]); } //切换上下臂 + if(key==4) { set902(); showMsg(zk[xw]); } //相位旋转 + if(nn%64==0) { showDig( getAD10()); disp[1]+=4; } + } + if(menu==7){ //设置零点偏移数 + char *p,bc=1, feqD=1,rngD=1; + static char kc=0, mo=0; + if(menu2==0) p = cs.zo+0, feqD=0, rngD=2; //100Hz零点校准,接入10欧电阻 + if(menu2==1) p = cs.zo+1, feqD=1, rngD=2; //1kHz零点校准,接入10欧电阻 + if(menu2==2) p = cs.zo+2, feqD=2, rngD=2; //7.8kHz零点校准,接入10欧电阻 + if(menu2==3) p = cs.J+0, feqD=2, rngD=0; //VI变换器相位校准,接入20电阻 + if(menu2==4) p = cs.J+1, feqD=2, rngD=1; //VI变换器相位校准,接入1k电阻 + if(menu2==5) p = cs.J+2, feqD=2, rngD=2; //VI变换器相位校准,接入10k电阻 + if(menu2==6) p = cs.J+3, feqD=2, rngD=3; //VI变换器相位校准,接入100k电阻 + if(menu2==7) p = &cs.j1, feqD=2, rngD=1; //运放3倍档相位校准,接入3.3k电阻 + if(menu2==8) p = &cs.j2, feqD=2, rngD=1; //运放10倍档相位校准,接入10k电阻 + if(menu2==9) p = cs.R+0, bc=2, feqD=1, rngD=0; //VI变换器模值校准,接入20欧 + if(menu2==10) p = cs.R+1, bc=2, feqD=1, rngD=1; //VI变换器模值校准,接入1k欧 + if(menu2==11) p = cs.R+2, bc=2, feqD=1, rngD=2; //VI变换器模值校准,接入10k欧 + if(menu2==12) p = cs.R+3, bc=2, feqD=1, rngD=3; //VI变换器模值校准,接入100k欧 + if(menu2==13) p = &cs.g1, bc=2, feqD=1, rngD=1; //运放3倍增益校准,接入2k欧电阻 + if(menu2==14) p = &cs.g2, bc=2, feqD=1, rngD=1; //运放10倍增益校准,接入10k欧电阻 + if(key==1) *p += bc; //X键增 + if(key==2) *p -= bc; //R键减 + if(key==3) { cs_RW(1); setF(feqK); } //L键保存 + if(key==4) *p = 0; //C键清除 + if(key==5) { if(menu2==0) menu2=14; else menu2--; mo=0; showMsg(menu2<9?zk[menu2]:zk[menu2-6]+4); } + if(key==6) { if(menu2==14)menu2=0; else menu2++; mo=0; showMsg(menu2<9?zk[menu2]:zk[menu2-6]+4); } + if(key==7) mo = (mo+1)%2; + if(key==4){ //恢复到默认值 + if(++kc==5){ + kc = 0; + cs.j1 = 16, cs.j2 = 18; + cs.g1 = 0, cs.g2 = 0; + cs.zo[0] = 15; + cs.zo[1] = 17; + cs.zo[2] = 15; + cs.J[0] = cs.J[1] = cs.J[2] = 0, cs.J[3] = 20; + cs.R[0] = cs.R[1] = cs.R[2] = cs.R[3] = 0; + } + } + else { if(key) kc=0; } + if(mo){ + if(feqD!=feqK) setF(feqD); + if(rngD!=rng) setRng(rngD); + if(menu2>=3 && menu2<=8) showR(3,1); //显示Q + else showR(1,1); //显示电阻 + }else{ + sfdw = 0; + showDig(abs(*p)); + if(*p<0) disp[3] = 16; + } + } + delay(4000); + }//while end +} + + diff --git a/uu1602.hex b/uu1602.hex new file mode 100644 index 0000000..b3cd915 --- /dev/null +++ b/uu1602.hex @@ -0,0 +1,781 @@ +:102050005A70005A73004C435220322E3000584AB6 +:10206000572050757469616E2C32303131004D65E6 +:102070006E753A202031204C435200332054657352 +:10208000742C37205365740075703A002064773AD9 +:10209000002078773D00204B333D002047613D0014 +:1020A0005A30203A203230005A31203A2032300063 +:1020B0005A32203A203230005231583A2032300021 +:1020C0005232583A20316B005233583A31306B005B +:1020D0005234583A2E314D004731583A336B330061 +:1020E0004732583A31306B005231203A20323000BA +:1020F0005232203A20316B005233203A31306B009B +:102100005234203A2E314D004731203A336B3300A0 +:102110004732203A31306B00583A2B20523A2D008A +:10212000706E756D6F6B4D47202B2020202020FF97 +:10213000FFFFFFFFFFFEFEFDFCFCFBFAF9F8F7F6E0 +:10214000F5F3F2F0EFEDECEAE8E6E5E3E1DEDCDA08 +:10215000D8D6D3D1CECCC9C7C4C2BFBCB9B7B4B12D +:10216000AEABA8A5A29F9C999693908C89868380FC +:102170007D7A7774706D6A6764615E5B5855524F03 +:102180004C494744413E3C393734322F2D2A2826CA +:1021900024221F1D1B1A1816141311100E0D0B0AE2 +:1021A00009080706050404030202010101010101F7 +:1021B0000101010101020203040405060708090ADE +:1021C0000B0D0E1011131416181A1B1D1F22242696 +:1021D000282A2D2F323437393C3E414447494C4F51 +:1021E0005255585B5E6164676A6D7074777A7D8062 +:1021F0008386898C909396999C9FA2A5A8ABAEB13B +:10220000B4B7B9BCBFC2C4C7C9CCCED1D3D6D8DA53 +:10221000DCDEE1E3E5E6E8EAECEDEFF0F2F3F5F61B +:10222000F7F8F9FAFBFCFCFDFEFEFFFFFFFFFF00E5 +:10223000000000000000000000000000000000009E +:10224000000000000000000000000000000000008E +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:10228000000000000000000000000000000000004E +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000012D +:1022B000010101010101010101010101010101010E +:1022C00001010101010101010101010101010101FE +:1022D00001010101010101010101010101010101EE +:1022E00001010101010101010101010101010101DE +:1022F00001010101010101010101010101010101CE +:1023000001010101010101010101010101010101BD +:1023100001010101010101010101010101010101AD +:102320000101010101010101010101010101013F5F +:10233000800000404000004110000041D8000041F2 +:10234000A00000447A0000461C400047C35000FF34 +:1023500020A0FF20A8FF20B0FF20B8FF20C0FF2052 +:10236000C8FF20D0FF20D8FF20E0FF20E8FF20F0AA +:0C237000FF20F8FF2100FF2108FF2110D2 +:10294F00410078014100C8008209000082030100A4 +:10295F00820503E8440070447A00008102004100C0 +:10296F00C9004100870181080148007F0000000075 +:10297F000000000044007A000100014400740101CE +:10298F000101410088004100790041007E0081076C +:0B299F000641006F0181000081010073 +:082A51009280D28474FFFFFEA5 +:102A5900C3EE64809480500FE4FCFD0DBD00010CB1 +:102A6900ED641E4C70F522EF4E700EFCFD0DBD009D +:102A7900010CED64964C70F522EF4E6015E4FBFAFB +:102A89000BBB00010ABA0BF8BBB8F5EF1F70EA1EC1 +:022A990080E7D4 +:012A9B002218 +:062872007B057D307F04B0 +:102878007854EFF208EBF2A905C28418E2FF75F06C +:1028880002120E3FAEF0EE24FF9286EFA2E713FF8E +:1028980075F002120E3FAFF0EF24FF9285E9A2E433 +:1028A8009283A2E59282A2E6928133122A51C284CF +:1028B8007854E2B40403088016E9139283E9A2E18C +:1028C8009282A2E29281A2E3122A51C2847855E24E +:0928D800FF3395E0FE122A59229B +:102AE0007F147E00122A597B091228741228721250 +:102AF00028727B057D207F041228787B057D28E4E1 +:102B0000FF1228787B057D0CE4FF1228787B057D79 +:0F2B100080E4FF1228787B057D01E4FF0228781E +:092D84007B027D01E4FF022878C6 +:082D9600E4FB7D0CFF0228782C +:082D0D009000F612105DE4FFD6 +:0A2D1500EF2480FDE4FBFF022878A4 +:0A2D7A00EF24C0FDE4FBFF022878FF +:042D6000E02430FF3C +:092D6400AD07E4FB7F01022878B1 +:102C44007823EBF208EAF208E9F27823E2FB08E2DF +:102C5400FA08E2F9120E61FD6014E4FB7F01122808 +:0F2C6400787825E22401F218E23400F280DC22B5 +:102D1F00E4FDFCC3ED9FEC9E50070DBD00010C8040 +:012D2F00F2B1 +:012D30002280 +:102C9800AB07AA06D3EB9400EA9400400E7F107E9F +:0C2CA80027122D1FEB1B70EC1A80E92294 +:102CB4007401A807088002C333D8FCF59DEF248073 +:092CC400F5BC7F017E00022D1F0A +:10001E0043BC08E5BC30E4FB53BCE7AFBDEF75F065 +:0D002E0004A4ADBE7C002DFFEC35F0FE22D9 +:062B1F0015081508150859 +:102B2500A80808E4F208F2A808F2A808E2C364803D +:102B3500948A501512001EA8080808E22FF218E220 +:102B45003EF2A808E204F280E1A80808E2FE08E2E5 +:012B5500FF80 +:072B5600050805080508222F +:0E2D5200E4F5C5F5C7F5C675C4FF75C3FF22CD +:100003008FC4EEF5C375C78175C50175C65A75C62C +:07001300A5122D52AFC2221D +:102CCD008DC28FC4EEF5C375C78175C50275C65A21 +:062CDD0075C6A5022D5290 +:102CF9008FC4EEF5C375C78175C50375C65A75C608 +:042D0900A5022D52A0 +:1029AB0078217401F2087400F2087489F2EF602840 +:1029BB00E4FFFE122CF9E4FCECFF7E007821E2FB35 +:1029CB0008E2FA08E2F98C82758300120E7AFD1286 +:1029DB002CCD0CECB40FE122E4FCECFF7E001200DA +:1029EB00037821E2FB08E2FA08E2F98C8275830096 +:0929FB00EF120EDB0CECB40FE14D +:012A040022AF +:0516D500782C121069E1 +:1016DA00E4783CF2087403F2087C007DFE7BFF7A12 +:1016EA002179287E007F02120E1978481210A6006E +:1016FA0000000178501210A63F800000E4FFFEFDB2 +:10170A00FC782CE2FB08E2F908E2FA08E2CBF812CC +:10171A000C0C501A783E742DF2782CE2FC08E2FD8B +:10172A0008E2FE08E2FF120C79782C121069E4FF35 +:10173A00FEFDFC7830E2FB08E2F908E2FA08E2CBA7 +:10174A00F8120C0C501A783F742DF27830E2FC082B +:10175A00E2FD08E2FE08E2FF120C79783012106905 +:10176A007830E2FC08E2FD08E2FE08E2FF782CE2AB +:10177A00FB08E2F908E2FA08E2CBF8120C0C600660 +:10178A004004782C80027830E2FC08E2FD08E2FE90 +:10179A0008E2FF784C1210697836E2FC08E2FD088C +:1017AA00E2FE08E2FFEC4D4E4F7003021942782C1C +:1017BA00E2FB08E2F908E2FA08E2CBF8C000C0014D +:1017CA00C002C003E4FBFAF97840C0007836E2FCB4 +:1017DA0008E2FD08E2FE08E2FFD000120B6FD00318 +:1017EA00D002D001D000120975782C121069782C19 +:1017FA00E2FC08E2FD08E2FE08E2FFC004C005C000 +:10180A0006C0077836E2FC08E2FD08E2FE08E2FFBD +:10181A007858121069782CE2FC08E2FD08E2FE080A +:10182A00E2FF122613C004C005C006C007E4FBFA93 +:10183A00797A7844C0007836E2FC08E2FD08E2FED4 +:10184A0008E2FFD000120B6FA804A905AA06AB078D +:10185A00D007D006D005D004120971A804A905AA98 +:10186A0006AB07D007D006D005D004120971782C30 +:10187A001210697830E2FB08E2F908E2FA08E2CBD2 +:10188A00F8C000C001C002C003E4FBFAF97840C006 +:10189A00007836E2FC08E2FD08E2FE08E2FFD0002A +:1018AA00120B6FD003D002D001D000120975783024 +:1018BA001210697830E2FC08E2FD08E2FE08E2FF55 +:1018CA00C004C005C006C0077836E2FC08E2FD087D +:1018DA00E2FE08E2FF78581210697830E2FC08E26A +:1018EA00FD08E2FE08E2FF122613C004C005C00686 +:1018FA00C007E4FBFA797A7844C0007836E2FC083B +:10190A00E2FD08E2FE08E2FFD000120B6FA804A96C +:10191A0005AA06AB07D007D006D005D00412097174 +:10192A00A804A905AA06AB07D007D006D005D0049B +:10193A001209717830121069783A7401F27848E223 +:10194A00FC08E2FD08E2FE08E2FFE47B0AFAF9F885 +:10195A00120FB57848121069783AE204F2E2B40438 +:10196A00DCE4783AF27850E2FC08E2FD08E2FE088C +:10197A00E2FF784CE2FB08E2F908E2FA08E2CBF867 +:10198A00120A66E4FBFA797A7844120C0C60025067 +:10199A00217850E2FC08E2FD08E2FE08E2FFE4FBDF +:1019AA00FA797A7844120B6F7850121069783CE20F +:1019BA0004F2783AE204F2E2B403AAE4783AF2785A +:1019CA0035E2FF783AE2FEC3EF6480F8EE6480986D +:1019DA0050547850E2FC08E2FD08E2FE08E2FF7883 +:1019EA004CE2FB08E2F908E2FA08E2CBF8120A66CE +:1019FA00E4FBFA7980783F120C0C6023402178507E +:101A0A00E2FC08E2FD08E2FE08E2FFE4FBFA797A6A +:101A1A007844120A667850121069783CE214F27817 +:101A2A003AE204F28099783A7401F27850E2FC08BA +:101A3A00E2FD08E2FE08E2FF784CE2FB08E2F90860 +:101A4A00E2FA08E2CBF8120A66C004C005C006C072 +:101A5A00077848E2FC08E2FD08E2FE08E2FFEC1221 +:101A6A000C8AA804A905AA06AB07D007D006D00598 +:101A7A00D004120C0C602D402B7850E2FC08E2FDD9 +:101A8A0008E2FE08E2FFE4FBFA79207841120A66CE +:101A9A007850121069783DE214F2783AE204F2E2E0 +:101AAA0064047087E4783AF2783AE2FFC364809477 +:101ABA00824003021BB3EF7850600FE2FC08E2FD9C +:101ACA0008E2FE08E2FF7830800DE2FC08E2FD0839 +:101ADA00E2FE08E2FF782CE2FB08E2F908E2FA08E3 +:101AEA00E2CBF8120A66120CC878401210697848DC +:101AFA00E2FC08E2FD08E2FE08E2FF7844121069FF +:101B0A00783AE2243EF8E2FF122D64E4783BF27858 +:101B1A0044E2FB08E2F908E2FA08E2CBF8C00078EE +:101B2A0040E2FC08E2FD08E2FE08E2FFD000122AC9 +:101B3A009CEF2430FF122D64783DE2FF783BE2B53A +:101B4A0007057F2E122D647840E2FC08E2FD08E2C8 +:101B5A00FE08E2FF08E2FB08E2F908E2FA08E2CB33 +:101B6A00F8122A9CAC00AD01AE02AF037840121005 +:101B7A00697844E2FC08E2FD08E2FE08E2FFE47B41 +:101B8A000AFAF9F8122A9C7844121069783BE2049E +:101B9A00F2E2C3648094845003021B197834E26031 +:101BAA0008783AE204F2021AB2783CE2FF3395E08E +:101BBA00FE74242FF58274213EF583E493FF022DEF +:011BCA0064B6 +:102BD400C004C005C006C00778301210A60000006B +:102BE40000E47834F27827E27835F27828E2FC08B9 +:102BF400E2FD08E2FE08E2FF7836121069D007D041 +:082C040006D005D0040216D52C +:0A2800007821EEF208EFF208EDF285 +:10280A00E408F2087C007DFE7BFF7A21792AFE7FAC +:10281A0005120E197822E2700218E260367821E277 +:10282A00FA08E2FB7C007D0AFFAE02120EFDED24DF +:10283A0030FF7824E22425F8EFF27C007D0AAF030A +:10284A00AE02120EFD7821EEF208EFF27824E204CD +:10285A00F280C17823E2600F2424F8E2FF122D648B +:07286A007823E214F280EC78 +:012871002244 +:102CE30075D902E4F5F9F5E975FAC075EAC075DA44 +:062CF30053D2BFD2AF2254 +:03003B00022A0591 +:102A0500C0E0C083C082C0D075D000C000C006C081 +:012A150007B9 +:102A1600C2D87809E2FF7802E22FFEEF90212F93C9 +:102A2600F5FAAF06EF90222F9324FF929208E2FE6A +:0C2A360008E2FF780AE22FF218E23EF2FC +:0F2A4200D007D006D000D0D0D082D083D0E032E1 +:1028E1007822EEF208EFF218E2FC08E2FD7805EC3E +:1028F100F208EDF2E4120C8FE4FBFA7980784712CA +:102901000A667B007A2479747847120B6F120CC81F +:102911007803EEF208EFF2FDAC06E4120C8F7B00B7 +:102921007A2479747847120A66E4FBFA7980784749 +:10293100120B6F90007012105DE47809F208F278C2 +:0E29410023E2700218E27003C2DE22D2DE2210 +:102B5D00EF75F004120E3FAFF0C3EF648094805018 +:102B6D000474042FFFEF70037802F2EFB4010578BF +:102B7D00027440F2EFB4020578027480F2EFB403F0 +:0C2B8D0005780274C0F29000C9EFF0223D +:092D8D009000C9E004FF022B5D77 +:102C7300EF7004C2A2C2A1EFB40104C2A2D2A1EFB9 +:102C8300B40204D2A2C2A1EFB40304D2A2D2A1908F +:052C93000087EFF022B4 +:102D3100900087E004FF75F004120E3FAFF0022C03 +:012D4100731E +:102C0C00D3EF6480948340027F03C3EF648094808D +:102C1C005002E4FFEF7004C296C294EFB40104C2F8 +:102C2C0096D294EFB40204D296C294EFB40304D2B9 +:082C3C0096D2947808EFF22211 +:102D42007808E204FF75F004120E3FAFF0022C0C7B +:102779007821EFF2BFFF27E4F27805E2FE08E2FFD5 +:1027890064644E7004782104F2BE0308BFE805783A +:10279900217402F2BE1E07BF8504E47821F2782174 +:1027A900E290006FF0700F7F64FE1228E1C295D2AB +:1027B900A07807740CF27821E2B401107FE87E0357 +:1027C9001228E1C295C2A078077406F27821E2B412 +:1027D90002107F857E1E1228E1D295C2A078077467 +:1027E90006F2758D2F758BABE4900079F090008817 +:0727F900F07809F208F2225A +:0B2B9900E0FEA3E0FFA3E0FCA3E0FDD2 +:102BA400C3EE648094805007C3E49FFFE49EFEC399 +:102BB400EC648094805007C3E49DFDE49CFCD3ED59 +:102BC4009FEE6480F8EC6480984004AE04AF052264 +:0A003E00780CEBF208EAF208E9F290 +:10004800900096E0FF3395E0FEA3E0FD3395E0FCD9 +:10005800EF2DFFEE3C9000CAF0A3EFF090008CE08B +:10006800FF3395E0FEA3E0FD3395E0FCEF2DFFEEB6 +:100078003C9000CCF0A3EFF0A31210750000000034 +:100088009000D612107500000000780CE2FB08E220 +:10009800FA08E2F9900006120F7DFDACF0EC120CA4 +:1000A8008FC004C005C006C007780CE2FB08E2FA5E +:1000B80008E2F9900006120F7DFDACF0EC120C8FEF +:1000C800D003D002D001D000120A66C004C005C017 +:1000D80006C007780CE2FB08E2FA08E2F99000048F +:1000E800120F7DFDACF0EC120C8FC004C005C006E9 +:1000F800C007780CE2FB08E2FA08E2F99000041263 +:100108000F7DFDACF0EC120C8FD003D002D001D0E3 +:1001180000120A66D003D002D001D00012097590EF +:1001280000DA12105D780CE2FB08E2FA08E2F990B6 +:100138000006120F7DFDACF0EC120C8FC004C00558 +:10014800C006C007780CE2FB08E2FA08E2F9900062 +:1001580002120F7DFDACF0EC120C8FD003D002D050 +:1001680001D000120A66C004C005C006C007780C9A +:10017800E2FB08E2FA08E2F9900004120F7DFDACF8 +:10018800F0EC120C8FC004C005C006C007780CE262 +:10019800FB08E2FA08E2F9120F52FDACF0EC120C7F +:1001A8008FD003D002D001D000120A66D003D0024B +:1001B800D001D000120975120C799000DE12105D82 +:1001C800780CE2FB08E2FA08E2F9900002120F7DCF +:1001D800FDACF0EC120C8FC004C005C006C0077857 +:1001E8000CE2FB08E2FA08E2F9900004120F7DFD28 +:1001F800ACF0EC120C8FD003D002D001D000120A60 +:1002080066C004C005C006C007780CE2FB08E2FA25 +:1002180008E2F9900006120F7DFDACF0EC120C8F8D +:10022800C004C005C006C007780CE2FB08E2FA0863 +:10023800E2F9120F52FDACF0EC120C8FD003D00291 +:10024800D001D000120A66A804A905AA06AB07D0F7 +:1002580007D006D005D004120971120C799000E27B +:1002680012105D9000DAE0F8A3E0F9A3E0FAA3E049 +:10027800FBC000C001C002C003780FE2FB08E2FA2D +:1002880008E2F9900002120E7AFF3395E0FEEF784B +:1002980002C333CE33CED8F9242FF58274233EF52A +:1002A8008312104DC000C001C002C003780FE2FBEA +:1002B80008E2FA08E2F9120E61FF3395E0FEEF78E2 +:1002C80002C333CE33CED8F9242FF58274233EF5FA +:1002D8008312103DD003D002D001D000120B6FD092 +:1002E80003D002D001D000120A669000DA12105D25 +:1002F8009000DAE0FCA3E0FDA3E0FEA3E0FFC00469 +:10030800C005C006C007900087E0FF3395E0FE7483 +:10031800922FF58274003EF583E0FC120C947B006A +:100328007A40791C7846120B6FE4FBFA7980783FA3 +:10033800120975C004C005C006C007900087E0FF19 +:100348003395E0FEEF7802C333CE33CED8F9243F9D +:10035800F58274233EF58312104DD007D006D005E0 +:10036800D004120A66A804A905AA06AB07D007D0CC +:1003780006D005D004120B6F9000DA12105D780FCA +:10038800E2FB08E2FA08E2F9120E61B4015E90009D +:10039800CEE0F8A3E0F9A3E0FAA3E0FBC000C001B7 +:1003A800C002C00390008CE0FC120C94D003D00271 +:1003B800D001D0001209759000CE12105D9000D6C1 +:1003C800E0F8A3E0F9A3E0FAA3E0FBC000C001C095 +:1003D80002C003900096E0FC120C94D003D002D027 +:1003E80001D0001209759000D612105D780FE2FB5B +:1003F80008E2FA08E2F9120E61B4025E9000CEE05B +:10040800F8A3E0F9A3E0FAA3E0FBC000C001C00232 +:10041800C00390008DE0FC120C94D003D002D001F0 +:10042800D0001209759000CE12105D9000D6E0F849 +:10043800A3E0F9A3E0FAA3E0FBC000C001C002C03A +:1004480003900097E0FC120C94D003D002D001D0A6 +:10045800001209759000D612105D780FE2FB08E2D1 +:10046800FA08E2F9120E61B403669000CEE0F8A330 +:10047800E0F9A3E0FAA3E0FBC000C001C002C0039A +:100488009000CCE0FCA3E0FDEC120C8FD003D0026E +:10049800D001D0001209759000CE12105D9000D6E0 +:1004A800E0F8A3E0F9A3E0FAA3E0FBC000C001C0B4 +:1004B80002C0039000CAE0FCA3E0FDEC120C8FD050 +:1004C80003D002D001D0001209759000D612105D39 +:1004D800780FE2FB08E2FA08E2F9900002120E7ABD +:1004E800B4016E9000CEE0FCA3E0FDA3E0FEA3E023 +:1004F800FFC004C005C006C00790008CE0FC120CC9 +:1005080094A804A905AA06AB07D007D006D005D041 +:10051800041209719000CE12105D9000D6E0FCA381 +:10052800E0FDA3E0FEA3E0FFC004C005C006C007CD +:10053800900096E0FC120C94A804A905AA06AB0743 +:10054800D007D006D005D0041209719000D6121039 +:100558005D780FE2FB08E2FA08E2F9900002120E59 +:100568007AB4026E9000CEE0FCA3E0FDA3E0FEA307 +:10057800E0FFC004C005C006C00790008DE0FC1273 +:100588000C94A804A905AA06AB07D007D006D00585 +:10059800D0041209719000CE12105D9000D6E0FCD4 +:1005A800A3E0FDA3E0FEA3E0FFC004C005C006C0B1 +:1005B80007900097E0FC120C94A804A905AA06ABC2 +:1005C80007D007D006D005D0041209719000D612C2 +:1005D800105D780FE2FB08E2FA08E2F990000212D7 +:1005E8000E7AB403769000CEE0FCA3E0FDA3E0FE13 +:1005F800A3E0FFC004C005C006C0079000CCE0FC23 +:10060800A3E0FDEC120C8FA804A905AA06AB07D03D +:1006180007D006D005D0041209719000CE12105DE3 +:100628009000D6E0FCA3E0FDA3E0FEA3E0FFC00439 +:10063800C005C006C0079000CAE0FCA3E0FDEC12AC +:100648000C8FA804A905AA06AB07D007D006D005C9 +:10065800D0041209719000D612105D9000CEE0FC13 +:10066800A3E0FDA3E0FEA3E0FFC004C005C006C0F0 +:1006780007900087E0FF3395E0FE748E2FF58274B3 +:10068800003EF583E0FC120C94A804A905AA06AB69 +:1006980007D007D006D005D0041209719000CE12F9 +:1006A800105D9000CEE0F8A3E0F9A3E0FAA3E0FB28 +:1006B800C000C001C002C0037B007A2879F47845E5 +:1006C800900070E0FCA3E0FDA3E0FEA3E0FF120BA6 +:1006D8006FE4FBFA797A7844120B6FD003D002D01A +:1006E80001D000120A669000CE12105D9000CEE094 +:1006F800FCA3E0FDA3E0FEA3E0FFA804A905AA0669 +:10070800FB120A66E4FBFAF97840120B6FA804A9F9 +:1007180005AA06AB07E4FFFE7D807C3F12097190B5 +:1007280000D212105D9000DAE0F8A3E0F9A3E0FA35 +:10073800A3E0FBC000C001C002C0037B007A40797F +:100748001C78469000D6E0FCA3E0FDA3E0FEA3E001 +:10075800FF120B6FE4FBFA7980783F120975D0031A +:10076800D002D001D000120A669000DA12105D9013 +:1007780000CEE0FCA3E0FDA3E0FEA3E0FF9000E2D2 +:10078800E0F8A3E0F9A3E0FAA3E0FB120A66C004CC +:10079800C005C006C0079000D2E0FCA3E0FDA3E0BE +:1007A800FEA3E0FF9000DEE0F8A3E0F9A3E0FAA3DF +:1007B800E0FB120A66D003D002D001D00012097102 +:1007C8009000E612105D9000D2E0FCA3E0FDA3E0EB +:1007D800FEA3E0FF9000E2E0F8A3E0F9A3E0FAA3AB +:1007E800E0FB120A66C004C005C006C0079000CE30 +:1007F800E0FCA3E0FDA3E0FEA3E0FF9000DEE0F84C +:10080800A3E0F9A3E0FAA3E0FB120A66D003D00242 +:10081800D001D0001209759000E212105D9000E638 +:10082800E0FCA3E0FDA3E0FEA3E0FF9000DE1210D1 +:100838005D78127401F27812E2F9C36480948440FE +:1008480003020932E9FF3395E0FEEF7802C333CEA5 +:1008580033CED8F92494F58274003EF583E0FCA3E6 +:10086800E0FDA3E0FEA3E0FFC004C005C006C0078A +:100878007812E2FF3395E0FEEF7802C333CE33CE31 +:10088800D8F9FBAA062498F58274003AF583D007B4 +:10089800D006D005D00412105D74A42BF582740024 +:1008A8003AF583E0FCA3E0FDA3E0FEA3E0FFC0046B +:1008B800C005C006C0077812E2FF3395E0FEEF7866 +:1008C80002C333CE33CED8F9FBAA0624A8F5827426 +:1008D800003AF583D007D006D005D00412105D7415 +:1008E800B42BF58274003AF583E0FCA3E0FDA3E0A5 +:1008F800FEA3E0FFC004C005C006C0077812E2FFEF +:100908003395E0FEEF7802C333CE33CED8F924B85E +:10091800F58274003EF583D007D006D005D00412C6 +:10092800105D7812E204F202083E9000DAE0FCA3BF +:10093800E0FDA3E0FEA3E0FF90009812105D900098 +:10094800DEE0FCA3E0FDA3E0FEA3E0FF9000A81218 +:10095800105D9000E2E0FCA3E0FDA3E0FEA3E0FF51 +:060968009000B802105DD2 +:03001B0002237C41 +:10237C00C0E0C0F0C083C082C0D075D000C000C027 +:0D238C0001C002C003C004C005C006C007A8 +:10239900E4FFFE900079E004F07807E2FDE0C39DD8 +:1023A9004009E4F0900088E004F00F900088E0C351 +:1023B90094044002E4F090007EE06003022514EFEB +:1023C9004E7003022514122B1F90006FE0FD339508 +:1023D900E0FC74892DF58274003CF583E0FD3395AA +:1023E900E0FCC3EF9DFFEE9CFE9000C9E0C3648052 +:1023F90094825006AC06AD078007C3E49FFDE49EB6 +:10240900FC900088E0FB25E0247FF582E43400F5A8 +:1024190083ECF0A3EDF07808E2FD74742BF582E407 +:102429003400F583EDF0C3EE6480948050047D029E +:1024390080027D00900088E0FC247AF582E4340073 +:10244900F583E02DF0747A2CF582E43400F583E00D +:10245900FD75F004120E3FADF0EDF0EC640160057E +:10246900EC6403707B900088E0B4010FD297900070 +:1024790083122B99900076E0780BF2900088E0B4F3 +:10248900030FC29790007F122B99900074E0780B8C +:10249900F2D3EF9480EE648094A54007780BE214A0 +:1024A900F28036C3EF9440EE648094815008780B33 +:1024B900E22403F28023C3EF94C0EE648094835036 +:1024C90008780BE22402F28010C3EF9440EE648096 +:1024D900948B5005780BE204F2780BE2FF122C0C76 +:1024E900900088E0045403247AF582E43400F583EB +:1024F900E0FF122B5D780F7401F2087400F2087482 +:0B25090074F27B017A00797F12003E23 +:10251400D007D006D005D004D003D002D001D0001B +:0B252400D0D0D082D083D0F0D0E032C5 +:041BCB007821EFF29C +:101BCF009000EA121075000000009000EE121075E0 +:101BDF00000000009000F212107500000000E47881 +:101BEF0022F29000EAE0F8A3E0F9A3E0FAA3E0FB09 +:101BFF00C000C001C002C0037822E2FF3395E0FEAF +:101C0F00EF7802C333CE33CED8F92498F58274001F +:101C1F003EF583E0FCA3E0FDA3E0FEA3E0FFE4FBC1 +:101C2F00FA79807840120B6FD003D002D001D00028 +:101C3F001209759000EA12105D9000EEE0F8A3E033 +:101C4F00F9A3E0FAA3E0FBC000C001C002C0037813 +:101C5F0022E2FF3395E0FEEF7802C333CE33CED8C6 +:101C6F00F924A8F58274003EF583E0FCA3E0FDA300 +:101C7F00E0FEA3E0FFE4FBFA79807840120B6FD00F +:101C8F0003D002D001D0001209759000EE12105D42 +:101C9F009000F2E0F8A3E0F9A3E0FAA3E0FBC000A4 +:101CAF00C001C002C0037822E2FF3395E0FEEF7857 +:101CBF0002C333CE33CED8F924B8F58274003EF583 +:101CCF0083E0FCA3E0FDA3E0FEA3E0FFE4FBFA79D1 +:101CDF00807840120B6FD003D002D001D0001209D0 +:101CEF00759000F212105D7822E204F2E264046053 +:101CFF0003021BF17FDA7E0F7DC97C40900070E0FC +:101D0F00F8A3E0F9A3E0FAA3E0FB120A669000FA49 +:101D1F0012105DE4FF122D7A7806E26464700218E7 +:101D2F00E270057F41122D647806E2B4E80A18E2EA +:101D3F00B403057F42122D647806E2B4850A18E2D7 +:101D4F00B41E057F43122D64900087E02431FF12EB +:101D5F002D647821E27003021E879000F2E0FCA34D +:101D6F00E0FDA3E0FEA3E0FFA804A905AA06FB126D +:101D7F000A66C004C005C006C0079000EEE0FCA3D1 +:101D8F00E0FDA3E0FEA3E0FFA804A905AA06FB124D +:101D9F000A66D003D002D001D0001209759000EA74 +:101DAF00E0F8A3E0F9A3E0FAA3E0FB120B6F122D0A +:101DBF000D7BFF7A207950122C449000EEE0F8A3AF +:101DCF00E0F9A3E0FAA3E0FB9000F6E0FCA3E0FD4E +:101DDF00A3E0FEA3E0FF120B6FC004C005C006C056 +:101DEF000778277401F2081210A638D1B717D00759 +:101DFF00D006D005D004122BD49000F2E0F8A3E067 +:101E0F00F9A3E0FAA3E0FBA3E0FCA3E0FDA3E0FE4F +:101E1F00A3E0FF120B6FC004C005C006C0077827F0 +:101E2F007401F2081210A638D1B717D007D006D018 +:101E3F0005D004122BD47F02122D7AE4FFFEFDFC95 +:101E4F009000F2E0F8A3E0F9A3E0FAA3E0FB120C94 +:101E5F000C9000F2E05013FCA3E0FDA3E0FEA3E022 +:101E6F00FF120C799000F6021F3CF8A3E0F9A3E0F3 +:101E7F00FAA3E0FBA3021F8C9000EAE0FCA3E0FDB5 +:101E8F00A3E0FEA3E0FF122D0D7BFF7A2079531202 +:101E9F002C449000F6E0F8A3E0F9A3E0FAA3E0FBEE +:101EAF009000EEE0FCA3E0FDA3E0FEA3E0FF120B29 +:101EBF006FC004C005C006C0079000F6E0F8A3E0AD +:101ECF00F9A3E0FAA3E0FB9000F2E0FCA3E0FDA38E +:101EDF00E0FEA3E0FF120B6F7830121069783474B4 +:101EEF0001F208F2081210A638D1B717D007D006A2 +:101EFF00D005D0041216D57FF4122D647F02122D57 +:101F0F007AE4FFFEFDFC9000F2E0F8A3E0F9A3E015 +:101F1F00FAA3E0FB120C0C9000F6E05053FCA3E088 +:101F2F00FDA3E0FEA3E0FF120C799000F2E0F8A30E +:101F3F00E0F9A3E0FAA3E0FB120B6F9000FAE0F8D0 +:101F4F00A3E0F9A3E0FAA3E0FB120B6FC004C005F6 +:101F5F00C006C00778277404F2081210A62834248C +:101F6F00DCD007D006D005D004122BD47F46804E8C +:101F7F00F8A3E0F9A3E0FAA3E0FB9000F2E0FCA3E2 +:101F8F00E0FDA3E0FEA3E0FF120B6F9000FAE0F874 +:101F9F00A3E0F9A3E0FAA3E0FB120B6FC004C005A6 +:101FAF00C006C00778277402F2081210A6322BCC95 +:101FBF0077D007D006D005D004122BD47F48122D2E +:101FCF00649000EEE0FCA3E0FDA3E0FEA3E0FFECD5 +:101FDF004D4E4F60459000EEE0F8A3E0F9A3E0FA14 +:101FEF00A3E0FBA3E0FCA3E0FDA3E0FEA3E0FF1250 +:101FFF000B6F122D6D9000F212105D7F007EC07D71 +:10200F00797C449000F2E0F8A3E0F9A3E0FAA3E0B2 +:10201F00FB120C0C600E400C80009000F212107539 +:10202F004479C000E47827F2081210A600000000DF +:10203F009000F2E0FCA3E0FDA3E0FEA3E0FF022B83 +:01204F00D4BC +:10119900E47813F208F208F208F208F208F208F209 +:1011A90008F2122AE0122D967BFF7A207956122C2A +:1011B90044E4FF122D7A7BFF7A20795E122C447F5A +:1011C900507E00122C98E4FF1229ABE4F58875894A +:1011D90012F58DF58BD28EC28CD2ABD2A9D2AFD2F9 +:1011E900B9FF122CB47596FF7592FC75910375A021 +:1011F9000F122CE37F02122B5D7F01122C73122C2C +:101209000C7F011227797819E22401F218E23400DF +:10121900F2E5B0F47815F2E2600C18E2C394FF50DD +:1012290005E204F28004E47814F2E47813F2781504 +:10123900E2FF600AC313F27813E204F280F0781334 +:10124900E27815F218E2B404077817740AF28004F8 +:10125900E47815F27817E26007E214F2C2A380027B +:10126900D2A37815E2B40822122D847BFF7A207963 +:101279006E122C44E4FF122D7A7BFF7A20797B12BF +:101289002C44E4900078F07815F2900078E0FFC3E0 +:101299009401401AEFD3940450147815E2B407036B +:1012A900122D317815E2B406057FFF1227799000D7 +:1012B90078E070257815E26003122D847815E2FF35 +:1012C900C394014010EFD39407500A900078EFF0CF +:1012D900E49000C8F0E47815F2900078E0B40119C0 +:1012E900E490007EF07815E2B40107781AE204541C +:1012F90001F2781AE2FF121BCB900078E0640270C9 +:1013090022FF122D157BFF7A207988122C44900038 +:1013190074122D607BFF7A20798C122C4490007610 +:10132900122D60900078E06403706D90007E04F0E7 +:101339007815E2B40103122D427815E2FFB40302D5 +:10134900B297EFB40403122D8DE4FF122D157BFF24 +:101359007A207991122C449000C9122D607BFF7A72 +:10136900207996122C443097047F3180027F301205 +:101379002D647BFF7A20799B122C447808E2243073 +:10138900FF122D64E4FF122D7A7819E2541F7008B8 +:10139900122B1F7D05122800900078E06407600376 +:0313A9000216CB5E +:1013AC00781E04F208F208F29000C8E0FF70167B79 +:1013BC0001781B04F2087400F2087489F2E4781FB7 +:1013CC00F2087402F2EFB40115781B7401F2087480 +:1013DC0000F208748AF2781F7401F20804F2EFB478 +:1013EC000214781B7401F2087400F208748BF27802 +:1013FC001F7402F208F2EFB40315781B7401F208A3 +:10140C007400F208748EF2781F7402F2E408F2EFA2 +:10141C00B40415781B7401F2087400F208748FF28E +:10142C00781F7402F20814F2EFB40514781B7401DF +:10143C00F2087400F2087490F2781F7402F208F249 +:10144C00EFB40615781B7401F2087400F20874915D +:10145C00F2781F7402F20804F2EFB40715781B74CB +:10146C0001F2087400F208748CF2781F7402F2080E +:10147C0014F2EFB40815781B7401F2087400F2082A +:10148C00748DF2781F7402F20814F2EFB409177815 +:10149C001B7401F2087400F2087492F2087402F2E0 +:1014AC000814F2E408F2EFB40A16781B7401F2087F +:1014BC007400F2087493F2087402F20814F208F241 +:1014CC00EFB40B17781B7401F2087400F2087494D3 +:1014DC00F2087402F20814F20804F2EFB40C187853 +:1014EC001B7401F2087400F2087495F2087402F28D +:1014FC000814F2087403F2EFB40D16781B7401F2A1 +:10150C00087400F2087496F2087402F20814F208D7 +:10151C00F2EFB40E16781B7401F2087400F2087422 +:10152C0097F2087402F20814F208F27815E2B4018A +:10153C0012781EE2FF781BE2FB08E2FA08E2F9EFF0 +:10154C00120EA77815E2B40217781BE2FB08E2FA38 +:10155C0008E2F9120E61FF08E2FEC3EF9E120EC9FB +:10156C007815E2B4030D7F011229AB90006FE0FFF8 +:10157C001227797815E2B4040E781BE2FB08E2FA24 +:10158C0008E2F9E4120EC97815E2FFB405159000D3 +:10159C00C8E07005740EF080069000C8E014F0E40A +:1015AC007801F2EFB406159000C8E0B40E04E4F034 +:1015BC0080069000C8E004F0E47801F27815E2B4FB +:1015CC0007117801E204FF75F002120E3FAFF078BC +:1015DC0001EFF27815E2FF6404704E7800E204F239 +:1015EC006405704CF290008C7410F0A37412F0E44B +:1015FC00900096F0A3F09000897414F0A314F0A35B +:10160C00740EF0E4900090F090008FF090008EF04B +:10161C009000917414F0E4900095F0900094F09088 +:10162C000093F0900092F08007EF6004E47800F2F1 +:10163C007801E2602590006FE0FE781FE2FF6E609B +:10164C0003122779900087E0FE7820E2FF6E60039A +:10165C00122C737F01121BCB8065122D84E4FF12B8 +:10166C002D159000C8E075F003A4244FF582E434E6 +:10167C0023F583E493FB740193FA740293F9122C0F +:10168C0044E4FF122D7A781BE2FB08E2FA08E2F937 +:10169C00120E61FC120C94C004C005C006C007E415 +:1016AC007827F2081210A600000000D007D006D050 +:0F16BC0005D004122BD47BFF7A217918122C440D +:0A16CB007F207E4E122D1F02120F29 +:10096E00020D34E86480F8E933E83360110460F076 +:10097E00ED33EC337009E8FCE9FDEAFEEBFF2204EF +:10098E0060DED3EB9FEA9EE99DE8C2E78CF0C2F7EA +:10099E0095F0400CE8CCF8E9CDF9EACEFAEBCFFBB6 +:1009AE00120CFF85D0F05804700320D5B3E8047004 +:1009BE00075002B2D5020D3E92D5EC0460F7E4CC9E +:1009CE00C0E0C398F8603B94186008400DD0E0FB7F +:1009DE00020D16E4FBFAC9FC8028E830E406E4C9EF +:1009EE00FBE4CAFCE830E305E4C9CACBFCE85407D3 +:1009FE006010F8C3E913F9EA13FAEB13FBEC13FCDE +:100A0E00D8F130F52FC3E49CFCEF9BFFEE9AFEED80 +:100A1E0099FDD0E0FBEF4E4D4C701222DB03020D20 +:100A2E003BEC2CFCEF33FFEE33FEED33FDED30E708 +:100A3E00EB020D16EF2BFFEE3AFEED39FDD0E0FB8B +:100A4E0050130BBB0003020D3EED13FDEE13FEEF34 +:080A5E0013FFEC13FC020D165E +:100A6600EC4D6011E8497017ED33EC3304600DE48A +:100A7600FCFFFEFD22E933E8330470F8020D341260 +:100A86000CFF58046009E4CC248150062850090262 +:100A96000D3E284003020D3BC0E0EB4A7044B9808E +:100AA60006D0E0FB020D2AEF4E701CBD8008EBFF5E +:100AB600EAFEE9FD80EBE98DF0A4FEE5F0020B4FBE +:100AC600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE896B +:100AD600F0A42EFFE435F0CD89F0A42DFEE435F028 +:100AE6008067EF4E7005BD80D780C3EF8BF0A4AC56 +:100AF600F0EE8BF0A42CFCE435F0F8EF8AF0A42C91 +:100B0600E5F038FCE433CB8DF0A42CFCE5F03BF8A3 +:100B1600EE8AF0A42CFCE5F038F8E433CF89F0A493 +:100B26002CFCE5F038CF3400CE89F0A42FFFE5F099 +:100B36003EFEE433C98DF0A42EFEE5F039CD8AF0F1 +:100B4600A42FFFE5F03EFEE43DFD33D0E0FB500769 +:100B56000BBB000F020D3EEC2CFCEF33FFEE33FE19 +:060B6600ED33FD020D1647 +:100B6C00020D3EEC5D046005E859047003020D347F +:100B7C00120CFF580460F6EC4860F2EC7004FDFEB9 +:100B8C00FF22C860DB2481C85009C398600250065C +:100B9C00020D3B9850CAF582E9294B4A7005AB828D +:100BAC00020D2A75F0007C1A7880C3EF9BEE9AED4B +:100BBC0099400DC3EF9BFFEE9AFEED99FDE842F0D4 +:100BCC00DC23ACF0D0E0FFD0E0FED0E0FDAB822027 +:100BDC00E7101BEB60BAEC2CFCEF33FFEE33FEEDB1 +:100BEC0033FD020D16E803F830E705C0F075F00090 +:100BFC00EF2FFFEE33FEED33FD40B830E7C280AA95 +:100C0C0074F8CC6480CCC86480C8F582046043C39B +:100C1C00EB9FF5F0EA9E42F0E99D42F0E89C45F02E +:100C2C0060305018E5825FFFE582F42B5582FB5053 +:100C3C00210ABA001D09B90019088016E5825BFB70 +:100C4C00E582F42F5582FF50090EBE00050DBD0044 +:100C5C00010CC3EB9FF5F0EA9E42F0E99D42F0E8EF +:0D0C6C009C45F06007CC4820E701B3EC2266 +:100C7900ED33EC33600A047003BD8004ECB2E7FC89 +:010C89002248 +:100C8A0075F020800E75F010800575F0087D007EE5 +:100C9A00007F003392D530D503121004EC33401094 +:100CAA00EF33FFEE33FEED33FDEC33FCD5F0ED22EE +:0E0CBA00E5F0247EA2D513CC92E7CDCEFF222A +:100CC800EDD2E7CD33EC3392D524814006E4FFFE24 +:100CD800FDFC22FCE4CFCECDCC24E0501174FF8083 +:100CE800EDC3CC13CCCD13CDCE13CECF13CF047020 +:070CF800F030D5DE0210040C +:0D2D6D00ED33EC3360065004EC6480FC2272 +:102613007854121069E4FFFEFDFC7858E2FB08E2EF +:10262300F908E2FA08E2CBF8120C0C70030226E870 +:102633007858E2FC08E2FD08E2FE08E2FF122D6D85 +:1026430078601210697854E2FC08E2FD08E2FE08A3 +:10265300E2FF122D6D785C121069785CE2FC08E2EF +:10266300FD08E2FE08E2FF08E2FB08E2F908E2FAED +:1026730008E2CBF8120C0C700E7854E2FC08E2FD71 +:1026830008E2FE08E2FF22785CE2FC08E2FD08E2D1 +:10269300FE08E2FF08E2FB08E2F908E2FA08E2CBEF +:1026A300F8120C0C503E7858E2FB08E2F908E2FA03 +:1026B30008E2CBF8E8C0E07854E2FC08E2FD08E267 +:1026C300FE08E2FFD0E0F8120B6F7BFE7A00795C24 +:1026D30012252F7858E2FB08E2F908E2FA08E2CB68 +:0A26E300F8020A66E4FFFEFDFC2287 +:100CFF00E9D2E7C933E833F892D5EDD2E7CD33EC3B +:070D0F0033FC5002B2D522B3 +:100D1600EC30E7100FBF000C0EBE00080DBD00043E +:100D26000BEB6014A2D5EB13FCED92E7FD2274FFEA +:100D3600FCFDFEFF22E480F8A2D574FF13FC7D8043 +:030D4600E480EF57 +:10252F0078641210697868EBF208EAF208E9F2743D +:10253F00FFFFFEFDFC7864E2FB08E2F908E2FA080F +:10254F00E2CBF8C312101260387F807E967D187C24 +:10255F004B7864E2FB08E2F908E2FA08E2CBF812E2 +:10256F000C0C6002501B7F807E967D187CCB7864AC +:10257F00E2FB08E2F908E2FA08E2CBF8120C0C5081 +:10258F001F7864E2FC08E2FD08E2FE08E2FF08E2C1 +:10259F00FB08E2FA08E2F9121023E4FFFEFDFC2229 +:1025AF007864E2FC08E2FD08E2FE08E2FF120CC8C4 +:1025BF00786B121069786BE2FC08E2FD08E2FE0806 +:1025CF00E2FFEC120C8A7868E2FB08E2FA08E2F903 +:1025DF00121023786BE2FC08E2FD08E2FE08E2FF2E +:1025EF00EC120C8AECC0E0C9EDC9CAEECACBEFCB36 +:1025FF007864E2FC08E2FD08E2FE08E2FFD0E0F8B2 +:04260F001209712219 +:030000000226EDE8 +:0C26ED00787FE4F6D8FD758108022734E0 +:100D4900E709F608DFFA8046E709F208DFFA803E8C +:100D590088828C83E709F0A3DFFA8032E309F60879 +:100D6900DFFA8078E309F208DFFA807088828C83E1 +:100D7900E309F0A3DFFA806489828A83E0A3F60895 +:100D8900DFFA805889828A83E0A3F208DFFA804C6F +:100D990080D280FA80C680D4806980F28033801046 +:100DA90080A680EA809A80A880DA80E280CA8033AF +:100DB90089828A83ECFAE493A3C8C582C8CCC58327 +:100DC900CCF0A3C8C582C8CCC583CCDFE9DEE780F7 +:100DD9000D89828A83E493A3F608DFF9ECFAA9F076 +:100DE900EDFB2289828A83ECFAE0A3C8C582C8CCCC +:100DF900C583CCF0A3C8C582C8CCC583CCDFEADEE5 +:100E0900E880DB89828A83E493A3F208DFF980CC46 +:100E190088F0EF60010E4E60C388F0ED2402B4043F +:100E29000050B9F582EB2402B4040050AF232345E6 +:060E39008223900D997365 +:100E3F00C2D530F707B2D563F0FF05F030E70CB23B +:100E4F00D5F4048463F0FF05F080018430D502F4FB +:020E5F0004226B +:100E6100BB010689828A83E0225002E722BBFE028F +:090E7100E32289828A83E49322C2 +:100E7A00BB010CE58229F582E5833AF583E022502D +:100E8A0006E92582F8E622BBFE06E92582F8E22277 +:0D0E9A00E58229F582E5833AF583E4932291 +:100EA700BB010989828A83F8E028F022500327F7DB +:100EB70022BBFE05F8E328F3228A838982F8E493AC +:020EC7002822DF +:100EC900BB010689828A83F0225002F722BBFE0108 +:020ED900F32202 +:100EDB00F8BB010DE58229F582E5833AF583E8F04D +:100EEB00225006E92582C8F622BBFE05E92582C8F9 +:020EFB00F222E1 +:100EFD00BC000BBE0029EF8DF084FFADF022E4CCD9 +:100F0D00F875F008EF2FFFEE33FEEC33FCEE9DECA1 +:100F1D00984005FCEE9DFE0FD5F0E9E4CEFD22EDE7 +:100F2D00F8F5F0EE8420D21CFEADF075F008EF2F31 +:100F3D00FFED33FD4007985006D5F0F222C398FD22 +:050F4D000FD5F0EA22BF +:100F5200BB010A89828A83E0F5F0A3E0225006876A +:100F6200F009E71922BBFE07E3F5F009E31922892C +:0B0F7200828A83E493F5F0740193225F +:100F7D00BB0110E58229F582E5833AF583E0F5F0B2 +:100F8D00A3E0225009E92582F886F008E622BBFE8F +:100F9D000AE92582F8E2F5F008E222E5832AF583D5 +:080FAD00E993F5F0A3E993229A +:100FB500E88FF0A4CC8BF0A42CFCE98EF0A42CFCDB +:100FC5008AF0EDA42CFCEA8EF0A4CDA8F08BF0A459 +:100FD5002DCC3825F0FDE98FF0A42CCD35F0FCEBB8 +:100FE5008EF0A4FEA9F0EB8FF0A4CFC5F02ECD397D +:0F0FF500FEE43CFCEAA42DCE35F0FDE43CFC22EA +:102A9C00C2D5E830E70FB2D5E4C39BFBE49AFAE465 +:102AAC0099F9E498F8EC30E717B2D5122AD2121043 +:102ABC00FBE4C39BFBE49AFAE499F9E498F88003ED +:102ACC001210FB30D50DE4C39FFFE49EFEE49DFD88 +:042ADC00E49CFC2258 +:0E100400C3E49FFFE49EFEE49DFDE49CFC22FD +:10101200EB9FF5F0EA9E42F0E99D42F0E89C45F034 +:0110220022AB +:10102300BB010789828A8302105D5005E9F802112A +:0A1033008DBBFE05E9F802106922EA +:10103D00E493FC740193FD740293FE740393FF22F9 +:10104D00E493F8740193F9740293FA740393FB22F9 +:0C105D00ECF0A3EDF0A3EEF0A3EFF02206 +:0C106900ECF208EDF208EEF208EFF222C3 +:10107500A8828583F0D083D08212108C12108C1236 +:10108500108C12108CE473E493A3C583C5F0C5835B +:10109500C8C582C8F0A3C583C5F0C583C8C582C8C5 +:0110A5002228 +:1010A600D083D082E493F208740193F20874029319 +:0910B600F208740393F274047350 +:1026F900021199E493A3F8E493A34003F68001F24D +:1027090008DFF48029E493A3F85407240CC8C333E1 +:10271900C4540F4420C8834004F456800146F6DFB0 +:10272900E4800B010204081020408090294FE47EC8 +:10273900019360BCA3FF543F30E509541FFEE493A5 +:10274900A360010ECF54C025E060A840B8E493A36C +:10275900FAE493A3F8E493A3C8C582C8CAC583CA97 +:10276900F0A3C8C582C8CAC583CADFE9DEE780BE4F +:0129AA00002C +:1010BF0075F008758200EF2FFFEE33FECD33CDCCE8 +:1010CF0033CCC58233C5829BED9AEC99E58298406B +:1010DF000CF582EE9BFEED9AFDEC99FC0FD5F0D648 +:1010EF00E4CEFBE4CDFAE4CCF9A88222B800C1B972 +:1010FF000059BA002DEC8BF084CFCECDFCE5F0CBB0 +:10110F00F97818EF2FFFEE33FEED33FDEC33FCEBE8 +:10111F0033FB10D703994004EB99FB0FD8E5E4F9A3 +:10112F00FA227818EF2FFFEE33FEED33FDEC33FC90 +:10113F00C933C910D7059BE99A4007EC9BFCE99A84 +:10114F00F90FD8E0E4C9FAE4CCFB2275F010EF2FC9 +:10115F00FFEE33FEED33FDCC33CCC833C810D707C9 +:10116F009BEC9AE899400AED9BFDEC9AFCE899F804 +:0E117F000FD5F0DAE4CDFBE4CCFAE4C8F92297 +:0C118D00ECF608EDF608EEF608EFF6228E +:00000001FF diff --git a/uuLED.hex b/uuLED.hex new file mode 100644 index 0000000..03a3f7e --- /dev/null +++ b/uuLED.hex @@ -0,0 +1,642 @@ +:101A4200EB88B3BAD87A7BA8FBFA3BC90212320000 +:101A520000000000F1190BE91B329B6BFFFFFFFF37 +:101A6200FFFFFEFEFDFCFCFBFAF9F8F7F6F5F3F2D8 +:101A7200F0EFEDECEAE8E6E5E3E1DEDCDAD8D6D336 +:101A8200D1CECCC9C7C4C2BFBCB9B7B4B1AEABA882 +:101A9200A5A29F9C999693908C898683807D7A7764 +:101AA20074706D6A6764615E5B5855524F4C49476A +:101AB20044413E3C393734322F2D2A282624221F16 +:101AC2001D1B1A1816141311100E0D0B0A09080704 +:101AD20006050404030202010101010101010101E1 +:101AE2000101020203040405060708090A0B0D0E90 +:101AF2001011131416181A1B1D1F222426282A2D12 +:101B02002F323437393C3E414447494C4F525558A5 +:101B12005B5E6164676A6D7074777A7D80838689A3 +:101B22008C909396999C9FA2A5A8ABAEB1B4B7B97D +:101B3200BCBFC2C4C7C9CCCED1D3D6D8DADCDEE1B1 +:101B4200E3E5E6E8EAECEDEFF0F2F3F5F6F7F8F9A3 +:101B5200FAFBFCFCFDFEFEFFFFFFFFFF00000000A2 +:101B62000000000000000000000000000000000073 +:101B72000000000000000000000000000000000063 +:101B82000000000000000000000000000000000053 +:101B92000000000000000000000000000000000043 +:101BA2000000000000000000000000000000000033 +:101BB2000000000000000000000000000000000023 +:101BC2000000000000000000000000000000000013 +:101BD20000000000000000000000000001010101FF +:101BE20001010101010101010101010101010101E3 +:101BF20001010101010101010101010101010101D3 +:101C020001010101010101010101010101010101C2 +:101C120001010101010101010101010101010101B2 +:101C220001010101010101010101010101010101A2 +:101C32000101010101010101010101010101010192 +:101C42000101010101010101010101010101010182 +:101C52000101010101010101010101013F800000B7 +:101C6200404000004110000041D8000041A00000A7 +:0C1C7200447A0000461C400047C35000AC +:1021C2008605A8FBFA0000008112FF41004501418B +:1021D2000095008210000082030100820C03E84493 +:1021E200003D447A00008102004100960041005403 +:1021F20001810F0148004C00000000000000004473 +:102202000047000100014400410101010141005564 +:10221200004100460041004B00810E0641003C0196 +:09222200810B0181000081010023 +:1024C200E4FDFCC3ED9FEC9E50070DBD00010C80A6 +:0124D200F217 +:0124D30022E6 +:10244D00AB07AA06D3EB9400EA9400400E7F107EF2 +:0C245D00271224C2EB1B70EC1A80E9224D +:102469007401A807088002C333D8FCF59DEF2480C6 +:09247900F5BC7F017E000224C2C3 +:10001E0043BC08E5BC30E4FB53BCE7AFBDEF75F065 +:0D002E0004A4ADBE7C002DFFEC35F0FE22D9 +:062316001508150815086A +:10231C00A80808E4F208F2A808F2A808E2C364804E +:10232C00948A501512001EA8080808E22FF218E231 +:10233C003EF2A808E204F280E1A80808E2FE08E2F6 +:01234C00FF91 +:07234D000508050805082240 +:0E250700E4F5C5F5C7F5C675C4FF75C3FF2220 +:100003008FC4EEF5C375C78175C50175C65A75C62C +:07001300A5122507AFC22270 +:102482008DC28FC4EEF5C375C78175C50275C65A74 +:0624920075C6A502250736 +:1024AE008FC4EEF5C375C78175C50375C65A75C65B +:0424BE00A502250747 +:10222C00782A7401F2087400F2087456F2EF6028F0 +:10223C00E4FFFE1224AEE4FCECFF7E00782AE2FB05 +:10224C0008E2FA08E2F98C82758300120D84FD1203 +:10225C0024820CECB40FE122E4FCECFF7E001200B3 +:10226C0003782AE2FB08E2FA08E2F98C8275830013 +:09227C00EF120DE50CECB40FE1CA +:012285002236 +:092522007F067805E4F208DFFCF5 +:01252B00228D +:1020CD009000BFE0F8A3E0F9A3E0FAA3E0FB120A49 +:0420DD0066120CC8B3 +:0520E1007837120EB675 +:1020E600122522E4783BF2E47B0AFAF9F8C000787C +:1020F60037E2FC08E2FD08E2FE08E2FFD000122209 +:10210600D274422BF582741A3AF583E493FF783B36 +:10211600E22405F8EFF27837E2FC08E2FD08E2FE79 +:1021260008E2FFE47B0AFAF9F81222D27837120E97 +:10213600B67837E2FC08E2FD08E2FE08E2FFEC4D65 +:0D2146004E4F6009783BE204F2E2B4069AC5 +:012153002269 +:101E2500FBE0FCA3E0FDA3E0FEA3E0FF120B6F784F +:0A1E3500317401F2780BE27832F20A +:051E3F00782D120EB623 +:101E4400E47834F208F208F2FFFEFDFC782DE2FBA0 +:101E540008E2F908E2FA08E2CBF8120C0C501A78FE +:101E6400367401F2782DE2FC08E2FD08E2FE08E295 +:101E7400FF120C79782D120EB6E47833F2E4FFFEEB +:101E84007D7A7C44782DE2FB08E2F908E2FA08E264 +:101E9400CBF8120C0C4021782DE2FC08E2FD08E29C +:101EA400FE08E2FFE4FBFA797A7844120B6F782D8E +:101EB400120EB67834E204F27833E204F2E2B403A8 +:101EC400BCE47833F27831E2FF7833E2FEC3EF64A6 +:101ED40080F8EE6480985042E4FFFE7D807C3F7879 +:101EE4002DE2FB08E2F908E2FA08E2CBF8120C0C46 +:101EF4005021782DE2FC08E2FD08E2FE08E2FFE44E +:101F0400FBFA797A7844120A66782D120EB6783480 +:101F1400E214F27833E204F280ABE47833F2E4FFC3 +:101F2400FE7D7A7C44782DE2FB08E2F908E2FA08A7 +:101F3400E2CBF8120C0C5021782DE2FC08E2FD08EB +:101F4400E2FE08E2FFE4FBFA79207841120A66789F +:101F54002D120EB67835E204F27833E204F2E2B4DC +:101F640003BC7F007E407D1C7C46782DE2FB08E2AA +:101F7400F908E2FA08E2CBF8120975120CC812202B +:101F8400E17835E22405F8E22404F27832E26022B2 +:101F94007834E2FF3395E0FE745A2FF582741A3ECA +:101FA400F583E4937805F27836E260067805E22456 +:021FB40004F235 +:011FB6002208 +:1024980075D902E4F5F9F5E975FAC075EAC075DA97 +:0624A80053D2BFD2AF22A7 +:03003B0002228618 +:10228600C0E0C083C082C0D075D000C000C006C008 +:012296000740 +:10229700C2D87810E2FF7802E22FFEEF901A5E9321 +:1022A700F5FAAF06EF901B5E9324FF929208E2FEC9 +:0C22B70008E2FF7811E22FF218E23EF27C +:0F22C300D007D006D000D0D0D082D083D0E03268 +:10215400782BEEF208EFF218E2FC08E2FD780CECC2 +:10216400F208EDF2E4120C8FE4FBFA79807847125E +:102174000A667B007A2479747847120B6F120CC8B4 +:102184007803EEF208EFF2FDAC06E4120C8F7B004C +:102194007A2479747847120A66E4FBFA79807847DE +:1021A400120B6F90003D120EAAE47810F208F27838 +:0E21B4002CE2700218E27003C2DE22D2DE229C +:10235400EF75F004120D49AFF0C3EF648094805020 +:102364000474042FFFEF70037802F2EFB4010578D0 +:10237400027440F2EFB4020578027480F2EFB40301 +:0C23840005780274C0F2900096EFF02281 +:09252C00900096E004FF02235424 +:10240300EF7004C2A2C2A1EFB40104C2A2D2A1EF31 +:10241300B40204D2A2C2A1EFB40304D2A2D2A19007 +:052423000054EFF0225F +:1024E600900054E004FF75F004120D49AFF0022489 +:0124F60003E2 +:1023CB00D3EF6480948340027F03C3EF64809480D7 +:1023DB005002E4FFEF7004C296C294EFB40104C242 +:1023EB0096D294EFB40204D296C294EFB40304D203 +:0823FB0096D294780FEFF22254 +:1024F700780FE204FF75F004120D49AFF00223CB09 +:10204300782AEFF2BFFF27E4F2780CE2FE08E2FF02 +:1020530064644E7004782A04F2BE0308BFE805786E +:102063002A7402F2BE1E07BF8504E4782AF2782A96 +:10207300E2700F7F64FE122154C295D2A0780E74D1 +:102083000FF2782AE2B401107FE87E03122154C2D2 +:1020930095C2A0780E7406F2782AE2B402107F8506 +:1020A3007E1E122154D295C2A0780E7406F2782AAD +:1020B300E290003CF0758D2F758BABE4900046F0F9 +:0A20C300900055F07810F208F222A8 +:0B239000E0FEA3E0FFA3E0FCA3E0FDE3 +:10239B00C3EE648094805007C3E49FFFE49EFEC3AA +:1023AB00EC648094805007C3E49DFDE49CFCD3ED6A +:1023BB009FEE6480F8EC6480984004AE04AF052275 +:0A003E007814EBF208EAF208E9F288 +:10004800900063E0FF3395E0FEA3E0FD3395E0FC0C +:10005800EF2DFFEE3C900097F0A3EFF0900059E0F1 +:10006800FF3395E0FEA3E0FD3395E0FCEF2DFFEEB6 +:100078003C900099F0A3EFF0A3120EC2000000001C +:100088009000A3120EC2000000007814E2FB08E200 +:10009800FA08E2F9900006120E44FDACF0EC120CDE +:1000A8008FC004C005C006C0077814E2FB08E2FA56 +:1000B80008E2F9900006120E44FDACF0EC120C8F29 +:1000C800D003D002D001D000120A66C004C005C017 +:1000D80006C0077814E2FB08E2FA08E2F990000487 +:1000E800120E44FDACF0EC120C8FC004C005C00623 +:1000F800C0077814E2FB08E2FA08E2F9900004125B +:100108000E44FDACF0EC120C8FD003D002D001D01D +:1001180000120A66D003D002D001D00012097590EF +:1001280000A7120EAA7814E2FB08E2FA08E2F99096 +:100138000006120E44FDACF0EC120C8FC004C00592 +:10014800C006C0077814E2FB08E2FA08E2F990005A +:1001580002120E44FDACF0EC120C8FD003D002D08A +:1001680001D000120A66C004C005C006C007781492 +:10017800E2FB08E2FA08E2F9900004120E44FDAC32 +:10018800F0EC120C8FC004C005C006C0077814E25A +:10019800FB08E2FA08E2F9120E19FDACF0EC120CB9 +:1001A8008FD003D002D001D000120A66D003D0024B +:1001B800D001D000120975120C799000AB120EAA6A +:1001C8007814E2FB08E2FA08E2F9900002120E4401 +:1001D800FDACF0EC120C8FC004C005C006C0077857 +:1001E80014E2FB08E2FA08E2F9900004120E44FD5A +:1001F800ACF0EC120C8FD003D002D001D000120A60 +:1002080066C004C005C006C0077814E2FB08E2FA1D +:1002180008E2F9900006120E44FDACF0EC120C8FC7 +:10022800C004C005C006C0077814E2FB08E2FA085B +:10023800E2F9120E19FDACF0EC120C8FD003D002CB +:10024800D001D000120A66A804A905AA06AB07D0F7 +:1002580007D006D005D004120971120C799000AFAE +:10026800120EAA9000A7E0F8A3E0F9A3E0FAA3E031 +:10027800FBC000C001C002C0037817E2FB08E2FA25 +:1002880008E2F9900002120D84FF3395E0FEEF7842 +:1002980002C333CE33CED8F9245EF582741C3EF502 +:1002A80083120E9AC000C001C002C0037817E2FB97 +:1002B80008E2FA08E2F9120D6BFF3395E0FEEF78D9 +:1002C80002C333CE33CED8F9245EF582741C3EF5D2 +:1002D80083120E8AD003D002D001D000120B6FD047 +:1002E80003D002D001D000120A669000A7120EAA0D +:1002F8009000A7E0FCA3E0FDA3E0FEA3E0FFC0049C +:10030800C005C006C007900054E0FF3395E0FE74B6 +:100318005F2FF58274003EF583E0FC120C947B009D +:100328007A40791C7846120B6FE4FBFA7980783FA3 +:10033800120975C004C005C006C007900054E0FF4C +:100348003395E0FEEF7802C333CE33CED8F9246E6E +:10035800F582741C3EF583120E9AD007D006D0059C +:10036800D004120A66A804A905AA06AB07D007D0CC +:1003780006D005D004120B6F9000A7120EAA7817AA +:10038800E2FB08E2FA08E2F9120D6BB4015E900094 +:100398009BE0F8A3E0F9A3E0FAA3E0FBC000C001EA +:1003A800C002C003900059E0FC120C94D003D002A4 +:1003B800D001D00012097590009B120EAA9000A3DC +:1003C800E0F8A3E0F9A3E0FAA3E0FBC000C001C095 +:1003D80002C003900063E0FC120C94D003D002D05A +:1003E80001D0001209759000A3120EAA7817E2FB3B +:1003F80008E2FA08E2F9120D6BB4025E90009BE085 +:10040800F8A3E0F9A3E0FAA3E0FBC000C001C00232 +:10041800C00390005AE0FC120C94D003D002D00123 +:10042800D00012097590009B120EAA9000A3E0F864 +:10043800A3E0F9A3E0FAA3E0FBC000C001C002C03A +:1004480003900064E0FC120C94D003D002D001D0D9 +:10045800001209759000A3120EAA7817E2FB08E2B1 +:10046800FA08E2F9120D6BB4036690009BE0F8A35A +:10047800E0F9A3E0FAA3E0FBC000C001C002C0039A +:10048800900099E0FCA3E0FDEC120C8FD003D002A1 +:10049800D001D00012097590009B120EAA9000A3FB +:1004A800E0F8A3E0F9A3E0FAA3E0FBC000C001C0B4 +:1004B80002C003900097E0FCA3E0FDEC120C8FD083 +:1004C80003D002D001D0001209759000A3120EAA21 +:1004D8007817E2FB08E2FA08E2F9900002120D84AC +:1004E800B4016E90009BE0FCA3E0FDA3E0FEA3E056 +:1004F800FFC004C005C006C007900059E0FC120CFC +:1005080094A804A905AA06AB07D007D006D005D041 +:100518000412097190009B120EAA9000A3E0FCA39C +:10052800E0FDA3E0FEA3E0FFC004C005C006C007CD +:10053800900063E0FC120C94A804A905AA06AB0776 +:10054800D007D006D005D0041209719000A3120E6E +:10055800AA7817E2FB08E2FA08E2F9900002120D05 +:1005680084B4026E90009BE0FCA3E0FDA3E0FEA330 +:10057800E0FFC004C005C006C00790005AE0FC12A6 +:100588000C94A804A905AA06AB07D007D006D00585 +:10059800D00412097190009B120EAA9000A3E0FCEF +:1005A800A3E0FDA3E0FEA3E0FFC004C005C006C0B1 +:1005B80007900064E0FC120C94A804A905AA06ABF5 +:1005C80007D007D006D005D0041209719000A312F5 +:1005D8000EAA7817E2FB08E2FA08E2F99000021284 +:1005E8000D84B4037690009BE0FCA3E0FDA3E0FE3D +:1005F800A3E0FFC004C005C006C007900099E0FC56 +:10060800A3E0FDEC120C8FA804A905AA06AB07D03D +:1006180007D006D005D00412097190009B120EAACB +:100628009000A3E0FCA3E0FDA3E0FEA3E0FFC0046C +:10063800C005C006C007900097E0FCA3E0FDEC12DF +:100648000C8FA804A905AA06AB07D007D006D005C9 +:10065800D0041209719000A3120EAA90009BE0FC2E +:10066800A3E0FDA3E0FEA3E0FFC004C005C006C0F0 +:1006780007900054E0FF3395E0FE745B2FF5827419 +:10068800003EF583E0FC120C94A804A905AA06AB69 +:1006980007D007D006D005D00412097190009B122C +:1006A8000EAA90009BE0F8A3E0F9A3E0FAA3E0FB10 +:1006B800C000C001C002C0037B007A2879F47845E5 +:1006C80090003DE0FCA3E0FDA3E0FEA3E0FF120BD9 +:1006D8006FE4FBFA797A7844120B6FD003D002D01A +:1006E80001D000120A6690009B120EAA90009BE0AF +:1006F800FCA3E0FDA3E0FEA3E0FFA804A905AA0669 +:10070800FB120A66E4FBFAF97840120B6FA804A9F9 +:1007180005AA06AB07E4FFFE7D807C3F12097190B5 +:10072800009F120EAA9000A7E0F8A3E0F9A3E0FA50 +:10073800A3E0FBC000C001C002C0037B007A40797F +:100748001C78469000A3E0FCA3E0FDA3E0FEA3E034 +:10075800FF120B6FE4FBFA7980783F120975D0031A +:10076800D002D001D000120A669000A7120EAA90FB +:10077800009BE0FCA3E0FDA3E0FEA3E0FF9000AF38 +:10078800E0F8A3E0F9A3E0FAA3E0FB120A66C004CC +:10079800C005C006C00790009FE0FCA3E0FDA3E0F1 +:1007A800FEA3E0FF9000ABE0F8A3E0F9A3E0FAA312 +:1007B800E0FB120A66D003D002D001D00012097102 +:1007C8009000B3120EAA90009FE0FCA3E0FDA3E006 +:1007D800FEA3E0FF9000AFE0F8A3E0F9A3E0FAA3DE +:1007E800E0FB120A66C004C005C006C00790009B63 +:1007F800E0FCA3E0FDA3E0FEA3E0FF9000ABE0F87F +:10080800A3E0F9A3E0FAA3E0FB120A66D003D00242 +:10081800D001D0001209759000AF120EAA9000B353 +:10082800E0FCA3E0FDA3E0FEA3E0FF9000AB120E06 +:10083800AA781A7401F2781AE2F9C36480948440A1 +:1008480003020932E9FF3395E0FEEF7802C333CEA5 +:1008580033CED8F92461F58274003EF583E0FCA319 +:10086800E0FDA3E0FEA3E0FFC004C005C006C0078A +:10087800781AE2FF3395E0FEEF7802C333CE33CE29 +:10088800D8F9FBAA062465F58274003AF583D007E7 +:10089800D006D005D004120EAA74712BF58274000C +:1008A8003AF583E0FCA3E0FDA3E0FEA3E0FFC0046B +:1008B800C005C006C007781AE2FF3395E0FEEF785E +:1008C80002C333CE33CED8F9FBAA062475F5827459 +:1008D800003AF583D007D006D005D004120EAA74CA +:1008E800812BF58274003AF583E0FCA3E0FDA3E0D8 +:1008F800FEA3E0FFC004C005C006C007781AE2FFE7 +:100908003395E0FEEF7802C333CE33CED8F9248591 +:10091800F58274003EF583D007D006D005D00412C6 +:100928000EAA781AE204F202083E9000A7E0FCA39F +:10093800E0FDA3E0FEA3E0FF900065120EAA900080 +:10094800ABE0FCA3E0FDA3E0FEA3E0FF900075127E +:100958000EAA9000AFE0FCA3E0FDA3E0FEA3E0FF39 +:06096800900085020EAABA +:03001B00021C7E46 +:101C7E00C0E0C0F0C083C082C0D075D000C000C02C +:0D1C8E0001C002C003C004C005C006C007AD +:101C9B0090004BE06003021E0A900046E004F078CF +:101CAB000EE2FFE0C39F5003021E0AE4F0900055C2 +:101CBB00E004F0E094044002E4F012231690003CA0 +:101CCB00E0FD3395E0FC74562DF58274003CF583F2 +:101CDB00E0FD3395E0FCC3EF9DFFEE9CFE9000967C +:101CEB00E0C3648094825006AC06AD078007C3E462 +:101CFB009FFDE49EFC900055E0FB25E0244CF58213 +:101D0B00E43400F583ECF0A3EDF0780FE2FD7441C1 +:101D1B002BF582E43400F583EDF0C3EE6480948000 +:101D2B0050047D0280027D00900055E0FC2447F5B5 +:101D3B0082E43400F583E02DF074472CF582E43413 +:101D4B0000F583E0FD75F004120D49ADF0EDF0ECFC +:101D5B0064016005EC6403707B900055E0B4010FE7 +:101D6B00D297900050122390900043E07813F2909A +:101D7B000055E0B4030FC29790004C1223909000D3 +:101D8B0041E07813F2D3EF9480EE648094A5400782 +:101D9B007813E214F28036C3EF9440EE64809481A2 +:101DAB0050087813E22403F28023C3EF94C0EE644F +:101DBB0080948350087813E22402F28010C3EF94CE +:101DCB0040EE6480948B50057813E204F27813E2B2 +:101DDB00FF1223CB900055E00454032447F582E413 +:101DEB003400F583E0FF12235478177401F2087462 +:0F1DFB0000F2087441F27B017A00794C12003E2D +:101E0A00D007D006D005D004D003D002D001D0002C +:0B1E1A00D0D0D082D083D0F0D0E032D6 +:0715D700782AEFF208EDF2A3 +:1015DE009000B7120EC2000000009000BB120EC2A7 +:1015EE00000000009000BF120EC200000000E47860 +:1015FE002CF29000B7E0F8A3E0F9A3E0FAA3E0FB29 +:10160E00C000C001C002C003782CE2FF3395E0FE9B +:10161E00EF7802C333CE33CED8F92465F582740049 +:10162E003EF583E0FCA3E0FDA3E0FEA3E0FFE4FBB8 +:10163E00FA79807840120B6FD003D002D001D0001F +:10164E001209759000B7120EAA9000BBE0F8A3E045 +:10165E00F9A3E0FAA3E0FBC000C001C002C003780A +:10166E002CE2FF3395E0FEEF7802C333CE33CED8B3 +:10167E00F92475F58274003EF583E0FCA3E0FDA32A +:10168E00E0FEA3E0FFE4FBFA79807840120B6FD006 +:10169E0003D002D001D0001209759000BB120EAA21 +:1016AE009000BFE0F8A3E0F9A3E0FAA3E0FBC000CE +:1016BE00C001C002C003782CE2FF3395E0FEEF7844 +:1016CE0002C333CE33CED8F92485F58274003EF5AD +:1016DE0083E0FCA3E0FDA3E0FEA3E0FFE4FBFA79C8 +:1016EE00807840120B6FD003D002D001D0001209C7 +:1016FE00759000BF120EAA782CE204F2E264046028 +:10170E00030216009000B7E0FCA3E0FDA3E0FEA3E9 +:10171E00E0FFEC4D4E4F701012252278087473F2D4 +:10172E0078067461F208F2227FDA7E0F7DC97C4062 +:10173E0090003DE0F8A3E0F9A3E0FAA3E0FB120A63 +:10174E00669000C7120EAA782BE2600302182F9043 +:10175E0000B7E0FCA3E0FDA3E0FEA3E0FF9000C312 +:10176E00120EAA782AE270139000C3E0F8A3E0F9F3 +:10177E00A3E0FAA3E09000BF121E25782AE2B4017E +:10178E00139000C3E0F8A3E0F9A3E0FAA3E0900001 +:10179E00BB121E25782AE264026003021946FFFE80 +:1017AE00FDFC9000BFE0F8A3E0F9A3E0FAA3E0FB94 +:1017BE00120C0C50359000BFE0F8A3E0F9A3E0FA4C +:1017CE00A3E0FBA3E0FCA3E0FDA3E0FEA3E0FF1279 +:1017DE000B6F9000C7E0F8A3E0F9A3E0FAA3E0FBDB +:1017EE00120B6F783174040219439000C3E0F8A312 +:1017FE00E0F9A3E0FAA3E0FB9000BFE0FCA3E0FD5C +:10180E00A3E0FEA3E0FF120B6F9000C7E0F8A3E089 +:10181E00F9A3E0FAA3E0FB120B6F78317402021900 +:10182E00439000BFE0FCA3E0FDA3E0FEA3E0FFA811 +:10183E0004A905AA06FB120A66C004C005C006C0AC +:10184E00079000BBE0FCA3E0FDA3E0FEA3E0FFA831 +:10185E0004A905AA06FB120A66D003D002D001D055 +:10186E00001209759000B7E0F8A3E0F9A3E0FAA31F +:10187E00E0FB120B6F9000C3120EAA782AE27012D0 +:10188E009000BFE0F8A3E0F9A3E0FAA3E0FBA312F7 +:10189E001E26782AE2B401149000BBE0F8A3E0F90A +:1018AE00A3E0FAA3E0FB9000C3121E26782AE2649E +:1018BE00026003021946FFFEFDFC9000BFE0F8A394 +:1018CE00E0F9A3E0FAA3E0FB120C0C50369000C333 +:1018DE00E0F8A3E0F9A3E0FAA3E0FB9000BFE0FC80 +:1018EE00A3E0FDA3E0FEA3E0FF120B6F9000C7E0A4 +:1018FE00F8A3E0F9A3E0FAA3E0FB120B6F783174C2 +:10190E000480329000BFE0F8A3E0F9A3E0FAA3E070 +:10191E00FBA3E0FCA3E0FDA3E0FEA3E0FF120B6F30 +:10192E009000C7E0F8A3E0F9A3E0FAA3E0FB120BE6 +:10193E006F78317402121E38782AE2640360030253 +:10194E001A419000BBE0FCA3E0FDA3E0FEA3E0FF84 +:10195E00EC4D4E4F70087F0F7E27FDFC807590007A +:10196E00BBE0F8A3E0F9A3E0FAA3E0FBA3E0FCA33D +:10197E00E0FDA3E0FEA3E0FF120B6F122515900011 +:10198E00BF120EAAE4FFFE7D7A7C449000BFE0F801 +:10199E00A3E0F9A3E0FAA3E0FB120C0C400A7FE7E8 +:1019AE007E037D007C00802BE4FFFE7DC87C429090 +:1019BE0000BFE0F8A3E0F9A3E0FAA3E0FB120C0CE1 +:1019CE0040149000BFE0FCA3E0FDA3E0FEA3E0FF07 +:1019DE00120CC80220E1E4FFFE7D207C419000BF86 +:1019EE00E0F8A3E0F9A3E0FAA3E0FB120C0C400E22 +:1019FE00E4FFFE7D207C411220CD78068031E4FF8D +:101A0E00FE7D807C3F9000BFE0F8A3E0F9A3E0FAF2 +:101A1E00A3E0FB120C0CE4FFFE400B7DC87C4212CF +:101A2E0020CD780780097D7A7C441220CD7808E29B +:031A3E002404F28B +:011A41002282 +:10242800FF3395E0FE74422FF582741A3EF583E47B +:0224380093FF10 +:10243A00EFF4F580D2A7C2A4C2A5C2A67F327E005D +:03244A0002244D1C +:100FC100E4781BF208F208F208F208F208F208F2DB +:100FD1000804F2E408F27F50FE12244DE4FF1222CD +:100FE1002CE4F588758912F58DF58BD28EC28CD2E1 +:100FF100ABD2A9D2AFD2B9FF1224697596FF75920F +:10100100FC7591031224987F021223547F0112244C +:10101100031223CB7F011220437821E22401F2182D +:10102100E23400F2781EE204F25403F2C2A4C2A533 +:10103100C2A6C2A7E2FF7002D2A7EFB40102D2A6F4 +:10104100EFB40202D2A5EFB40302D2A474052FF8C3 +:10105100E2F4F580E5B0F4781DF2E2600C18E2C329 +:1010610094FF5005E204F28004E4781CF2E4781B5A +:10107100F2781DE2600AC313F2781BE204F280F1F8 +:10108100781BE2781DF218E2B41407781F7432F26B +:101091008004E4781DF2781FE26007E214F2C2A333 +:1010A1008002D2A3781DE2B4080BE4900045F0F26F +:1010B100782274FFF2900045E0FFC39401401AEFDB +:1010C100D394045014781DE2B407031224E6781D6A +:1010D100E2B406057FFF122043900045E070267FB1 +:1010E100107E27FDFC1220E1781DE2FFC394014030 +:1010F10010EFD39407500A900045EFF0E49000956B +:10110100F0E4781DF2900045E0640160030211E013 +:1011110090004BF07822E2B4FF067401F2780BF2F2 +:10112100781DE2B404157823E26006E4F27F7A8048 +:101131000778237401F27FF112243A781DE2FFB49B +:1011410001137822E2780B7005E204F28003740146 +:10115100F2E47822F2EFB402157822E2780BB401BE +:1011610005E204F280037401F278227401F2781D21 +:10117100E2B403157822E2780BB40205E204F280AE +:10118100037401F278227402F2781DE2B405057845 +:10119100227403F2780BE2FF75F002120D49AFF0F1 +:1011A100780BEFF27822E2FF08E2FD1215D77823DF +:1011B100E2602C7820E25401FE08E2C39432EE94FE +:1011C10000501CE4781BF2781BE2FFC39404500F1B +:1011D10074052FF8E24404F2781BE204F280E890EF +:1011E1000045E0B40234900041E0FF3395E0FE7C1D +:1011F100007D64120E07900043E0FD3395E0FCEFA3 +:101201002DFFEE3CCF2410CF3427FE3395E0FDFCBB +:101211001220E1E47808F27806F2900045E06403D8 +:10122100704E90004B04F0781DE2B401091224F7CE +:10123100780FE2122428781DE2B4030EB297A29728 +:10124100E433901A4293FF12243A781DE2B4040A5F +:1012510012252C900096E01224287821E2543F7048 +:101261000F122316E4FCFD1220E17806E22404F2B9 +:0B127100900045E0640760030215CD0B +:10127C00782704F208F208F2900095E0FF70167BD4 +:10128C0001782404F2087400F2087456F2E4782809 +:10129C00F2087402F2EFB4011578247401F20874A8 +:1012AC0000F2087457F278287401F20804F2EFB4D3 +:1012BC00021478247401F2087400F2087458F2785D +:1012CC00287402F208F2EFB4031578247401F208C2 +:1012DC007400F208745BF278287402F2E408F2EFFE +:1012EC00B4041578247401F2087400F208745CF2EA +:1012FC0078287402F20814F2EFB4051478247401FF +:10130C00F2087400F208745DF278287402F208F2A4 +:10131C00EFB4061578247401F2087400F208745EB8 +:10132C00F278287402F20804F2EFB40715782474EA +:10133C0001F2087400F2087459F278287402F20869 +:10134C0014F2EFB4081578247401F2087400F20852 +:10135C00745AF278287402F20814F2EFB409177870 +:10136C00247401F2087400F208745FF2087402F23B +:10137C000814F2E408F2EFB40A1678247401F208A7 +:10138C007400F2087460F2087402F20814F208F2A5 +:10139C00EFB40B1778247401F2087400F20874612E +:1013AC00F2087402F20814F20804F2EFB40C187884 +:1013BC00247401F2087400F2087462F2087402F2E8 +:1013CC000814F2087403F2EFB40D1678247401F2C9 +:1013DC00087400F2087463F2087402F20814F2083C +:1013EC00F2EFB40E1678247401F2087400F208744B +:1013FC0064F2087402F20814F208F2781DE2B401E7 +:10140C00127827E2FF7824E2FB08E2FA08E2F9EF0F +:10141C00120DB1781DE2B402177824E2FB08E2FA4F +:10142C0008E2F9120D6BFF08E2FEC3EF9E120DD31A +:10143C00781DE2B4030D7F0112222C90003CE0FFDA +:10144C00122043781DE2B4040E7824E2FB08E2FA81 +:10145C0008E2F9E4120DD3781DE2640570359000B2 +:10146C0095E07005740EF08006900095E014F0E4A1 +:10147C007801F2900095E0FFC394095008EF901AA0 +:10148C004293FF800B900095E0901A3C932404FF4C +:10149C0012243A781DE264067035900095E0B40E83 +:1014AC0004E4F08006900095E004F0E47801F290FA +:1014BC000095E0FFC394095008EF901A4293FF8007 +:1014CC000B900095E0901A3C932404FF12243A7878 +:1014DC001DE2FFB407117801E204FE75F002120D53 +:1014EC0049AEF07801EEF2EF6404704F7800E2043C +:1014FC00F26405704FF29000597410F0A37412F05E +:10150C00E4900063F0A3F0900056740FF0A37411F4 +:10151C00F0A3740FF0E490005DF090005CF090008C +:10152C005BF090005E7414F0E4900062F090006147 +:10153C00F0900060F090005FF08009781DE260048C +:10154C00E47800F27801E2603D90003CE0FE7828FF +:10155C00E2FF6E6003122043900054E0FE7829E213 +:10156C00FF6E6003122403900095E0FFC3940340C8 +:10157C000CEFD3940850067D017F0380047D017F1E +:10158C00011215D7803BE4780BF27824E2FB08E2D9 +:10159C00FA08E2F9120D6BFF3395E0FE1224D4EE3B +:1015AC003395E0FDFC1220E17824E2FB08E2FA0816 +:1015BC00E2F9120D6BC364809480500578087410A6 +:0115CC00F22C +:0A15CD007FA07E0F1224C202101A44 +:10096E00020D34E86480F8E933E83360110460F076 +:10097E00ED33EC337009E8FCE9FDEAFEEBFF2204EF +:10098E0060DED3EB9FEA9EE99DE8C2E78CF0C2F7EA +:10099E0095F0400CE8CCF8E9CDF9EACEFAEBCFFBB6 +:1009AE00120CFF85D0F05804700320D5B3E8047004 +:1009BE00075002B2D5020D3E92D5EC0460F7E4CC9E +:1009CE00C0E0C398F8603B94186008400DD0E0FB7F +:1009DE00020D16E4FBFAC9FC8028E830E406E4C9EF +:1009EE00FBE4CAFCE830E305E4C9CACBFCE85407D3 +:1009FE006010F8C3E913F9EA13FAEB13FBEC13FCDE +:100A0E00D8F130F52FC3E49CFCEF9BFFEE9AFEED80 +:100A1E0099FDD0E0FBEF4E4D4C701222DB03020D20 +:100A2E003BEC2CFCEF33FFEE33FEED33FDED30E708 +:100A3E00EB020D16EF2BFFEE3AFEED39FDD0E0FB8B +:100A4E0050130BBB0003020D3EED13FDEE13FEEF34 +:080A5E0013FFEC13FC020D165E +:100A6600EC4D6011E8497017ED33EC3304600DE48A +:100A7600FCFFFEFD22E933E8330470F8020D341260 +:100A86000CFF58046009E4CC248150062850090262 +:100A96000D3E284003020D3BC0E0EB4A7044B9808E +:100AA60006D0E0FB020D2AEF4E701CBD8008EBFF5E +:100AB600EAFEE9FD80EBE98DF0A4FEE5F0020B4FBE +:100AC600E9CDF9EAFEEBFFEF89F0A4FCE5F0CE896B +:100AD600F0A42EFFE435F0CD89F0A42DFEE435F028 +:100AE6008067EF4E7005BD80D780C3EF8BF0A4AC56 +:100AF600F0EE8BF0A42CFCE435F0F8EF8AF0A42C91 +:100B0600E5F038FCE433CB8DF0A42CFCE5F03BF8A3 +:100B1600EE8AF0A42CFCE5F038F8E433CF89F0A493 +:100B26002CFCE5F038CF3400CE89F0A42FFFE5F099 +:100B36003EFEE433C98DF0A42EFEE5F039CD8AF0F1 +:100B4600A42FFFE5F03EFEE43DFD33D0E0FB500769 +:100B56000BBB000F020D3EEC2CFCEF33FFEE33FE19 +:060B6600ED33FD020D1647 +:100B6C00020D3EEC5D046005E859047003020D347F +:100B7C00120CFF580460F6EC4860F2EC7004FDFEB9 +:100B8C00FF22C860DB2481C85009C398600250065C +:100B9C00020D3B9850CAF582E9294B4A7005AB828D +:100BAC00020D2A75F0007C1A7880C3EF9BEE9AED4B +:100BBC0099400DC3EF9BFFEE9AFEED99FDE842F0D4 +:100BCC00DC23ACF0D0E0FFD0E0FED0E0FDAB822027 +:100BDC00E7101BEB60BAEC2CFCEF33FFEE33FEEDB1 +:100BEC0033FD020D16E803F830E705C0F075F00090 +:100BFC00EF2FFFEE33FEED33FD40B830E7C280AA95 +:100C0C0074F8CC6480CCC86480C8F582046043C39B +:100C1C00EB9FF5F0EA9E42F0E99D42F0E89C45F02E +:100C2C0060305018E5825FFFE582F42B5582FB5053 +:100C3C00210ABA001D09B90019088016E5825BFB70 +:100C4C00E582F42F5582FF50090EBE00050DBD0044 +:100C5C00010CC3EB9FF5F0EA9E42F0E99D42F0E8EF +:0D0C6C009C45F06007CC4820E701B3EC2266 +:100C7900ED33EC33600A047003BD8004ECB2E7FC89 +:010C89002248 +:100C8A0075F020800E75F010800575F0087D007EE5 +:100C9A00007F003392D530D503120E7CEC3340101E +:100CAA00EF33FFEE33FEED33FDEC33FCD5F0ED22EE +:0E0CBA00E5F0247EA2D513CC92E7CDCEFF222A +:100CC800EDD2E7CD33EC3392D524814006E4FFFE24 +:100CD800FDFC22FCE4CFCECDCC24E0501174FF8083 +:100CE800EDC3CC13CCCD13CDCE13CECF13CF047020 +:070CF800F030D5DE020E7C96 +:0D251500ED33EC3360065004EC6480FC22D2 +:100CFF00E9D2E7C933E833F892D5EDD2E7CD33EC3B +:070D0F0033FC5002B2D522B3 +:100D1600EC30E7100FBF000C0EBE00080DBD00043E +:100D26000BEB6014A2D5EB13FCED92E7FD2274FFEA +:100D3600FCFDFEFF22E480F8A2D574FF13FC7D8043 +:030D4600E480EF57 +:03000000021FB725 +:0C1FB700787FE4F6D8FD758108021FFE5B +:100D4900C2D530F707B2D563F0FF05F030E70CB232 +:100D5900D5F4048463F0FF05F080018430D502F4F2 +:020D6900042262 +:100D6B00BB010689828A83E0225002E722BBFE0286 +:090D7B00E32289828A83E49322B9 +:100D8400BB010CE58229F582E5833AF583E0225024 +:100D940006E92582F8E622BBFE06E92582F8E2226E +:0D0DA400E58229F582E5833AF583E4932288 +:100DB100BB010989828A83F8E028F022500327F7D2 +:100DC10022BBFE05F8E328F3228A838982F8E493A3 +:020DD1002822D6 +:100DD300BB010689828A83F0225002F722BBFE01FF +:020DE300F322F9 +:100DE500F8BB010DE58229F582E5833AF583E8F044 +:100DF500225006E92582C8F622BBFE05E92582C8F0 +:020E0500F222D7 +:100E0700EF8DF0A4A8F0CF8CF0A428CE8DF0A42EFF +:020E1700FE22B9 +:100E1900BB010A89828A83E0F5F0A3E022500687A4 +:100E2900F009E71922BBFE07E3F5F009E319228966 +:0B0E3900828A83E493F5F07401932299 +:100E4400BB0110E58229F582E5833AF583E0F5F0EC +:100E5400A3E0225009E92582F886F008E622BBFEC9 +:100E64000AE92582F8E2F5F008E222E5832AF5830F +:080E7400E993F5F0A3E99322D4 +:1022D200C2D5E830E70FB2D5E4C39BFBE49AFAE437 +:1022E20099F9E498F8EC30E717B2D5122308120FE7 +:1022F2002FE4C39BFBE49AFAE499F9E498F880038B +:10230200120F2F30D50DE4C39FFFE49EFEE49DFD26 +:04231200E49CFC2229 +:0E0E7C00C3E49FFFE49EFEE49DFDE49CFC2287 +:100E8A00E493FC740193FD740293FE740393FF22AE +:100E9A00E493F8740193F9740293FA740393FB22AE +:0C0EAA00ECF0A3EDF0A3EEF0A3EFF022BB +:0C0EB600ECF208EDF208EEF208EFF22278 +:100EC200A8828583F0D083D082120ED9120ED91255 +:100ED2000ED9120ED9E473E493A3C583C5F0C5837A +:100EE200C8C582C8F0A3C583C5F0C583C8C582C87A +:010EF20022DD +:1024D400C3EE6480948040028007C3E49FFFE49EBF +:0224E400FE22D6 +:101FC300020FC1E493A3F8E493A34003F68001F264 +:101FD30008DFF48029E493A3F85407240CC8C3331F +:101FE300C4540F4420C8834004F456800146F6DFEE +:101FF300E4800B01020408102040809021C2E47E9B +:10200300019360BCA3FF543F30E509541FFEE493E2 +:10201300A360010ECF54C025E060A840B8E493A3A9 +:10202300FAE493A3F8E493A3C8C582C8CAC583CAD4 +:10203300F0A3C8C582C8CAC583CADFE9DEE780BE8C +:01222B0000B2 +:100EF30075F008758200EF2FFFEE33FECD33CDCCB6 +:100F030033CCC58233C5829BED9AEC99E582984038 +:100F13000CF582EE9BFEED9AFDEC99FC0FD5F0D615 +:100F2300E4CEFBE4CDFAE4CCF9A88222B800C1B93F +:100F33000059BA002DEC8BF084CFCECDFCE5F0CB7D +:100F4300F97818EF2FFFEE33FEED33FDEC33FCEBB6 +:100F530033FB10D703994004EB99FB0FD8E5E4F971 +:100F6300FA227818EF2FFFEE33FEED33FDEC33FC5E +:100F7300C933C910D7059BE99A4007EC9BFCE99A52 +:100F8300F90FD8E0E4C9FAE4CCFB2275F010EF2F97 +:100F9300FFEE33FEED33FDCC33CCC833C810D70797 +:100FA3009BEC9AE899400AED9BFDEC9AFCE899F8D2 +:0E0FB3000FD5F0DAE4CDFBE4CCFAE4C8F92265 +:00000001FF