diff --git "a/Gerber_328P\350\277\267\344\275\240PD\347\203\231\351\223\201.zip" "b/Gerber_328P\350\277\267\344\275\240PD\347\203\231\351\223\201.zip"
new file mode 100644
index 0000000..ff4616b
Binary files /dev/null and "b/Gerber_328P\350\277\267\344\275\240PD\347\203\231\351\223\201.zip" differ
diff --git "a/Schematic_328P\350\277\267\344\275\240PD\347\224\265\347\203\231\351\223\201.pdf" "b/Schematic_328P\350\277\267\344\275\240PD\347\224\265\347\203\231\351\223\201.pdf"
new file mode 100644
index 0000000..cd7b716
Binary files /dev/null and "b/Schematic_328P\350\277\267\344\275\240PD\347\224\265\347\203\231\351\223\201.pdf" differ
diff --git "a/iBOM\345\257\271\347\205\247\347\204\212\346\216\245.html" "b/iBOM\345\257\271\347\205\247\347\204\212\346\216\245.html"
new file mode 100644
index 0000000..70a609c
--- /dev/null
+++ "b/iBOM\345\257\271\347\205\247\347\204\212\346\216\245.html"
@@ -0,0 +1,3530 @@
+
+
+
+
+
+
+ Interactive BOM for KiCAD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Title
+ |
+
+ Revision
+ |
+
+
+
+ Company
+ |
+
+ Date
+ |
+
+
+
+
+
+
+
+
+
+
diff --git a/v1.03/A_ReadMe.ino b/v1.03/A_ReadMe.ino
new file mode 100644
index 0000000..021e058
--- /dev/null
+++ b/v1.03/A_ReadMe.ino
@@ -0,0 +1,29 @@
+/*
+ 校准温度曲线的方法
+ 1.准备好能测量0 - 500摄氏度的设备,探头建议使用裸装,以免外壳热传导导致热量损失测量不准
+ 2.将探头紧压住烙铁头发热前段(上锡部分再下来一点),一定要紧紧压住,不然也会测量不准
+ 3.放置好烙铁头以免校准时烫伤手或物品!
+ 4.接上电源,从控制板进入‘校准’界面,将空心选框移动至第1段温度处(即对应的ADC 10下面)
+ 5.按下确认键,此时空心选框变成实心选框,烙铁头开始加热,等待最下方的‘Now ADC’值稳定在一定的范围,与第一行相应的ADC值差不多即可(此时是ADC 10)
+ 6.使用测量设备测量烙铁头的温度,将第1段温度调至测量得到的温度(实心选框状态可旋转旋钮调节数值)
+ 7.依次测量剩下的第2段、第3段、第4段温度并输入至控制器
+ 8.测量完4段温度后将光标移至Save,按下确认键,等待程序计时温度曲线
+ 9.计算完会显示P系数界面,,再按下确认键即可退出校准界面
+ 10.在主界面准备进行二次校准
+ 11.在主界面开启加热至第二段校准的温度,如265,则加热至260度,若显示温度比实际高的话就到校准界面调高第二段温度,低则调低
+ 12.依次加热至第三第四段温度并校准,直至自己满意为止
+ 13.进入到“烙铁”选项,将冷端补偿温度改为此时主界面所显示的环境温度值(屏幕右上角),完毕。
+*/
+
+/*
+ 长按操作(5下短音最后1下长音)
+ 主界面,进入设置界面
+ 其他界面,退出至主界面
+ 双击操作(2下短音)
+ 主界面,加热或停止状态切换
+ 其他界面,无
+ 单击(1下短音)
+ 主界面,无
+ 设置界面,进入二级菜单
+ 二级菜单,切换数值更改选中状态,或确认更改数值,无选框状态则退出至一级菜单
+*/
diff --git a/v1.03/Buzzer.ino b/v1.03/Buzzer.ino
new file mode 100644
index 0000000..bdec37b
--- /dev/null
+++ b/v1.03/Buzzer.ino
@@ -0,0 +1,83 @@
+//********** 控制蜂鸣器发声的频率和时间,系统延时法,占用系统速度大 **********
+uint32_t error_buzzer_db_time = 0;
+void buzzer_run()
+{
+ if (buzzer_state == 1)
+ {
+ for (uint16_t i = 0; i < buzzer_count; i++)
+ {
+ digitalWrite(buzzer_pin, 1);
+ delayMicroseconds(buzzer_time);
+ digitalWrite(buzzer_pin, 0);
+ if (i < buzzer_count - 1) delayMicroseconds(buzzer_time); //最后一次不需要延时
+ }
+ buzzer_state = 0;
+ }
+ //错误提示报警音
+ if (vin_error == 1 || t12_adc_error == 1)
+ {
+ if (millis() - error_buzzer_db_time > 1000)
+ {
+ buzzer(120, 300);
+ error_buzzer_db_time = millis();
+ }
+ }
+
+ if (buzzer_szjm_state == 1) //进入设置界面时发出声音提示一下
+ {
+ buzzer(150, 720);
+ buzzer_szjm_state = 0;
+ }
+ else if (buzzer_zjm_state == 1) //退出至主界面时发出声音提示一下
+ {
+ buzzer(150, 720);
+ buzzer_zjm_state = 0;
+ }
+}
+
+void buzzer(uint16_t time, uint16_t count)
+{
+ buzzer_state = 1; //准备好蜂鸣器
+ buzzer_time = time; //设置时间
+ buzzer_count = count; //设置次数
+}
+//*********************************************************
+
+//****** 控制蜂鸣器发声的频率和时间,内部中断法,占用系统速度小 ******
+
+/*void buzzer(uint16_t time, uint16_t count) //时间单位ms
+ {
+ if (buzzer_state == 0 && digitalRead(buzzer_pin) == 0) //蜂鸣器停止状态才能设置定时器
+ {
+ buzzer_count = count; //设置次数
+ Timer1.initialize(time); //设置时间
+ Timer1.attachInterrupt(buzzer_isr); //设置定时器中断函数
+ Timer1.start(); //启动定时器
+ }
+ }
+ void buzzer_isr()
+ {
+ buzzer_isr_count++;
+ bitWrite(PINB, 0, 1); //设置pin8为输出 PINX写1翻转状态
+ buzzer_state = 1; //标识蜂鸣器正在工作
+ if (buzzer_isr_count >= buzzer_count)
+ {
+ buzzer_isr_count = 0; // 清除计数
+ buzzer_state = 0; //标识蜂鸣器已停止
+ digitalWrite(buzzer_pin, 0); //关闭蜂鸣器
+ Timer1.stop(); //停止中断
+ }
+ }*/
+//*********************************************************
+uint8_t get_num_digit(uint32_t num)//获取数字的位数
+{
+ uint8_t count = 0;
+ if (num == 0) count = 1;
+ while (num != 0)
+ {
+ // n = n/10
+ num /= 10;
+ ++count;
+ }
+ return count;
+}
diff --git a/v1.03/CurveFitting.ino b/v1.03/CurveFitting.ino
new file mode 100644
index 0000000..eac1bb7
--- /dev/null
+++ b/v1.03/CurveFitting.ino
@@ -0,0 +1,125 @@
+//********** 曲线拟合程序 **********
+//曲线拟合算法来至https://blog.csdn.net/m0_37362454/article/details/82456616 by欧阳小俊
+void qxnh_run() //曲线拟合运行
+{
+ int16_t i, sizenum;
+ float P[4];
+ int8_t dimension = 3; //3次多项式拟合
+ // 要拟合的数据
+ int xx[] = {sz_adc0, sz_adc1, sz_adc2, sz_adc3}; //t12 adc
+ //int yy[] = {45, 219, 366, 435}; //测量设备的温度
+
+ sizenum = sizeof(xx) / sizeof(xx[0]); //拟合数据的维数
+ polyfit(sizenum, xx, sz_temp, dimension, P);
+
+ sz_p[0] = P[0];
+ sz_p[1] = P[1];
+ sz_p[2] = P[2];
+ sz_p[3] = P[3];
+ /*
+ 得出系数:P[0],P[1],P[2]
+ 曲线公式:y = P[3]*X*X*X+P[2]*X*X + P[1]*X + P[0]
+ 曲线公式:t12_temp =P[3]* t12_ad * t12_ad* t12_ad + P[2] * t12_ad * t12_ad + P[1] * t12_ad + P[0];
+ */
+}
+
+/*==================polyfit(n,x,y,poly_n,a)===================*/
+/*=======拟合y=a0+a1*x+a2*x^2+……+apoly_n*x^poly_n========*/
+/*=====n是数据个数 xy是数据值 poly_n是多项式的项数======*/
+/*===返回a0,a1,a2,……a[poly_n],系数比项数多一(常数项)=====*/
+void polyfit(int n, int x[], int y[], int poly_n, float p[])
+{
+ int i, j;
+ float *tempx, *tempy, *sumxx, *sumxy, *ata;
+
+ tempx = (float *)calloc(n , sizeof(float));
+ sumxx = (float *)calloc((poly_n * 2 + 1) , sizeof(float));
+ tempy = (float *)calloc(n , sizeof(float));
+ sumxy = (float *)calloc((poly_n + 1) , sizeof(float));
+ ata = (float *)calloc( (poly_n + 1) * (poly_n + 1) , sizeof(float) );
+ for (i = 0; i < n; i++)
+ {
+ tempx[i] = 1;
+ tempy[i] = y[i];
+ }
+ for (i = 0; i < 2 * poly_n + 1; i++)
+ {
+ for (sumxx[i] = 0, j = 0; j < n; j++)
+ {
+ sumxx[i] += tempx[j];
+ tempx[j] *= x[j];
+ }
+ }
+ for (i = 0; i < poly_n + 1; i++)
+ {
+ for (sumxy[i] = 0, j = 0; j < n; j++)
+ {
+ sumxy[i] += tempy[j];
+ tempy[j] *= x[j];
+ }
+ }
+ for (i = 0; i < poly_n + 1; i++)
+ {
+ for (j = 0; j < poly_n + 1; j++)
+ {
+ ata[i * (poly_n + 1) + j] = sumxx[i + j];
+ }
+ }
+ gauss_solve(poly_n + 1, ata, p, sumxy);
+
+ free(tempx);
+ free(sumxx);
+ free(tempy);
+ free(sumxy);
+ free(ata);
+}
+/*============================================================
+ 高斯消元法计算得到 n 次多项式的系数
+ n: 系数的个数
+ ata: 线性矩阵
+ sumxy: 线性方程组的Y值
+ p: 返回拟合的结果
+ ============================================================*/
+void gauss_solve(int n, float A[], float x[], float b[])
+{
+ int i, j, k, r;
+ float max;
+ for (k = 0; k < n - 1; k++)
+ {
+ max = fabs(A[k * n + k]); // find maxmum
+ r = k;
+ for (i = k + 1; i < n - 1; i++)
+ {
+ if (max < fabs(A[i * n + i]))
+ {
+ max = fabs(A[i * n + i]);
+ r = i;
+ }
+ }
+ if (r != k)
+ {
+ for (i = 0; i < n; i++) //change array:A[k]&A[r]
+ {
+ max = A[k * n + i];
+ A[k * n + i] = A[r * n + i];
+ A[r * n + i] = max;
+ }
+ max = b[k]; //change array:b[k]&b[r]
+ b[k] = b[r];
+ b[r] = max;
+ }
+
+ for (i = k + 1; i < n; i++)
+ {
+ for (j = k + 1; j < n; j++)
+ A[i * n + j] -= A[i * n + k] * A[k * n + j] / A[k * n + k];
+ b[i] -= A[i * n + k] * b[k] / A[k * n + k];
+ }
+ }
+
+ for (i = n - 1; i >= 0; x[i] /= A[i * n + i], i--)
+ {
+ for (j = i + 1, x[i] = b[i]; j < n; j++)
+ x[i] -= A[i * n + j] * x[j];
+ }
+}
diff --git a/v1.03/Display.ino b/v1.03/Display.ino
new file mode 100644
index 0000000..dda0369
--- /dev/null
+++ b/v1.03/Display.ino
@@ -0,0 +1,104 @@
+//********** 显示决策 **********
+uint32_t system_sleep_db_time = 0; //系统进入睡眠对比时间
+void display()
+{
+ if (xp_state == 0) //正常显示
+ {
+ if (display_count == ZJM) zjm();
+ else if (display_count == SZJM) szjm();
+ else if (display_count == SZJM_PID) szjm_pid();
+ else if (display_count == SZJM_SLEEP) szjm_sleep();
+ else if (display_count == SZJM_OLED) szjm_oled();
+ else if (display_count == SZJM_POWER) szjm_power();
+ else if (display_count == SZJM_LAOTIE) szjm_laotie();
+ else if (display_count == SZJM_JIAOZHUN) szjm_jiaozhun();
+ }
+ else xpjm(); //显示息屏界面
+}
+
+void draw_page(void)
+{
+ static uint8_t is_next_page = 0;
+ // 调用第一页,如果需要
+ if ( is_next_page == 0 )
+ {
+ u8g2.firstPage();
+ is_next_page = 1;
+ }
+ // 画我们的屏幕
+ display();
+ // 调用下一页
+ if ( u8g2.nextPage() == 0 )
+ {
+ is_next_page = 0; // 确保调用了第一个页面
+ }
+}
+
+void display_hfccsz() //恢复出厂设置进度显示界面
+{
+ uint16_t x_old = 0;
+ for (int i = 0 ; i < EEPROM.length() ; i++)
+ {
+ __asm__ __volatile__ ("wdr"); //防止没清除完因看门狗没喂狗导致重启
+ uint16_t x_new = map(i, 0, EEPROM.length(), 0, 100);
+ if (x_new - x_old >= 5)
+ {
+ u8g2.firstPage();
+ do {
+ u8g2.setCursor(50, 16);
+ u8g2.print(x_new);
+ u8g2.setCursor(75, 16);
+ u8g2.print("%");
+ x_old = x_new;
+ } while ( u8g2.nextPage() );
+ }
+ EEPROM.write(i, 0); //清除所有EEPROM
+ }
+ set_wdt_mod(1, 0); //利用看门狗实现软重启
+}
+
+void kj_display() //开机显示版本号
+{
+ u8g2.firstPage();
+ do {
+ u8g2.setFont(chinese15);
+ u8g2.setCursor(50, 21);
+ u8g2.print(version);
+ } while ( u8g2.nextPage() );
+}
+
+void xpjm() //息屏界面
+{
+ if (xp_x - xp_x_old > 0)
+ {
+ if (xp_x_old != xp_x) xp_x_old++;
+ }
+ else if (xp_x - xp_x_old < 0 )
+ {
+ if (xp_x_old != xp_x) xp_x_old--;
+ }
+
+ if (xp_y - xp_y_old > 0)
+ {
+ if (xp_y_old != xp_y) xp_y_old++;
+ }
+ else if (xp_y - xp_y_old < 0 )
+ {
+ if (xp_y_old != xp_y) xp_y_old--;
+ }
+
+ u8g2.setFont(chinese15);
+ u8g2.setCursor(xp_x_old, xp_y_old);
+ u8g2.print(tc1047_temp, 1);
+ u8g2.setCursor(xp_x_old + 27, xp_y_old - 1);
+ u8g2.print("℃");
+}
+
+/*u8g2.firstPage();
+ do {
+ u8g2.setFont(chinese15);
+ u8g2.setCursor(xp_x, xp_y);
+ u8g2.print(tc1047_temp, 1);
+ u8g2.setCursor(xp_x + 27, xp_y - 1);
+ u8g2.print("℃");
+ } while ( u8g2.nextPage() );*/
diff --git a/v1.03/DisplayMain.ino b/v1.03/DisplayMain.ino
new file mode 100644
index 0000000..0c9ff16
--- /dev/null
+++ b/v1.03/DisplayMain.ino
@@ -0,0 +1,193 @@
+//********** 画主界面 **********
+uint8_t zjm_x1 = 0;
+uint8_t zjm_x2 = 100;
+#define zjm_x3 75
+#define zjm_x4 zjm_x3+4
+
+#define zjm_y1 7
+#define zjm_y2 19
+#define zjm_y3 32
+#define zjm_y4 14
+boolean zjm_dh_run = 0; //主界面动画状态 0-不允许 1-允许
+uint32_t zjm_dh_time1 = 0; //动画1运转对比时间
+uint32_t zjm_dh_time2 = 0; //动画2运转对比时间
+//热、停切换动画变量
+uint8_t zjm_dh_x1 = 0;
+uint8_t zjm_dh_y1 = 0;
+uint8_t zjm_dh_r1 = 1;
+//pwm动效动画
+uint8_t zjm_dh_l[14];
+//开机过度动画y增量
+int8_t zjm_dh_y = 32;
+void zjm()
+{
+ //****** 画当前温度及烙铁错误提示
+ if (t12_error == 0 && t12_adc_error == 0) //正常画面
+ {
+ u8g2.setFont(u8g2_font_bubble_tn);
+ if (t12_temp >= 99)u8g2.setCursor(0, zjm_dh_y + 18);
+ else u8g2.setCursor(10, zjm_dh_y + 18);
+ if (t12_switch == 1 && (thisError_average <= 4 && thisError_average >= -4)) u8g2.print(t12_temp_average);
+ else u8g2.print(t12_temp);
+ }
+ else if (t12_adc_error == 1) zjm_error2(); //T12ADC超出测量范围画面
+ else if (t12_error == 1) zjm_error3(); //手柄未接显示画面
+ //****** 画设置温度进度条
+ u8g2.setFont(u8g2_font_saikyosansbold8_8n);
+ //自动获取设置温度的范围
+ set_temp_max = ((sz_temp[3]) / 10 ) * 10;
+ set_temp_min = ((sz_temp[0]) / 10) * 10;
+ zjm_x1 = map(set_temp, set_temp_min, set_temp_max, 3, 57);
+ u8g2.drawDisc(zjm_x1, zjm_dh_y + 28, 2);//画实心圆
+ u8g2.drawBox(0, zjm_dh_y + 30, 61, 2); //画实心框
+ if (set_temp <= 260)u8g2.setCursor(zjm_x1 + 4, zjm_dh_y + 29); //画设置温度
+ else u8g2.setCursor(zjm_x1 - 26, zjm_dh_y + 29); //画设置温度
+ u8g2.print(set_temp);
+
+ //****** 画加热提示及切换动画
+ u8g2.setFont(chinese15);
+ if (zjm_dh_y != 0) //开机过渡动画变量变化
+ {
+ zjm_dh_y --;
+ u8g2.setCursor(50, zjm_dh_y - 11);
+ u8g2.print(version);
+ }
+ if (/*millis() - zjm_dh_time1 > 30 &&*/ zjm_dh_run == 1)
+ {
+ if (zjm_dh_x1 < 7)
+ {
+ zjm_dh_x1++;
+ zjm_dh_y1++;
+ if (zjm_dh_x1 == 7)
+ {
+ zjm_dh_r1 = 0;
+ if (t12_switch == 1 && zjm_sleep_ts == 0) EEPROM.put(set_temp_eeprom, set_temp); //停止时保存当前的设置温度
+ t12_switch = !t12_switch; //动画播放完,切换T12工作状态
+ MsTimer2::stop(); //停止一次 然后在MsTimer2_rw1()里自动切换定时的中断任务
+ }
+ zjm_dh_time1 = millis();
+ }
+ else if (zjm_dh_x1 >= 7 && millis() - zjm_dh_time1 > 300)
+ {
+ zjm_dh_x1 = 0;
+ zjm_dh_y1 = 0;
+ zjm_dh_r1 = 1;
+ zjm_dh_run = 0; //关闭动画
+ }
+ }
+ u8g2.drawRFrame(zjm_x3 - 3, zjm_dh_y + zjm_y4 - 14, 18, 18, 3); //空心圆角方形
+ u8g2.setCursor(zjm_x3, zjm_dh_y + zjm_y4);
+ if (t12_switch == 1 && zjm_sleep_ts == 0) u8g2.print("热");
+ else if (t12_switch == 1 && zjm_sleep_ts == 1) u8g2.print("休");
+ else u8g2.print("停");
+ if (zjm_dh_x1 == 7)u8g2.setDrawColor(2);
+ u8g2.drawRBox(80 - zjm_dh_x1, zjm_dh_y + 8 - zjm_dh_y1, 2 + zjm_dh_x1 * 2, 2 + zjm_dh_y1 * 2, zjm_dh_r1); //实心圆角方形
+ if (zjm_dh_x1 == 7)u8g2.setDrawColor(1);
+
+ //****** 画PWM输出比例动画
+ if (t12_switch == 1)
+ {
+ uint16_t zjm_pwmdh_time = map(pid_out, pwm_min, pwm_max, 450, 150); //输出比例决定刷新时间
+ uint8_t zjm_pwmdh_l = map(pid_out, pwm_min, pwm_max, 3, 12); //输出比例决定L的最大值
+ if (millis() - zjm_dh_time2 > zjm_pwmdh_time)
+ {
+ for (uint8_t i = 0; i < 14; i++)
+ {
+ zjm_dh_l[i] = random(1, zjm_pwmdh_l);
+ }
+ zjm_dh_time2 = millis();
+ }
+
+ for (uint8_t i = 0; i < 14; i++)
+ {
+ u8g2.drawLine(74 + i, zjm_dh_y + 32, 74 + i, zjm_dh_y + 32 - zjm_dh_l[i]); //绘制垂直线,X,Y,长度
+ //delay(100);
+ }
+ }
+ else u8g2.drawHLine(74, zjm_dh_y + 31, 14);
+
+ //****** 画室温-电压-电流-工作状态
+ if (vin_error == 1) zjm_error1(); //电压电流有一个报警就显示 报警提示画面
+ else zjm_vin_ec_temp_state(); //显示正常画面
+
+ //****** 调试信息显示
+ //u8g2.setCursor(75, 32);
+ //u8g2.print(zjm_ca_count);
+}
+
+
+void zjm_vin_ec_temp_state() //画室温-电压-电流-工作状态
+{
+ //画室温-电压
+ u8g2.setFont(u8g2_font_lucasfont_alternate_tr);
+ u8g2.setCursor(zjm_x2, zjm_dh_y + zjm_y1);
+ u8g2.print(tc1047_temp, 1);
+ u8g2.drawCircle(zjm_x2 + 21, zjm_dh_y + zjm_y1 - 6, 1, U8G2_DRAW_ALL); //画空心圆
+ u8g2.setCursor(zjm_x2 + 23, zjm_dh_y + zjm_y1);
+ u8g2.print("C");
+
+ u8g2.setCursor(zjm_x2, zjm_dh_y + zjm_y2);
+ u8g2.print(vin, 1);
+ u8g2.setCursor(zjm_x2 + 22, zjm_dh_y + zjm_y2);
+ u8g2.print("V");
+
+ u8g2.setCursor(zjm_x2, zjm_dh_y + zjm_y3);
+ u8g2.print(pid_out_bfb);
+ u8g2.setCursor(zjm_x2 + 20, zjm_dh_y + zjm_y3);
+ u8g2.print("%");
+
+ //u8g2.setCursor(70, 27);
+ //u8g2.print(t12_ad,0);
+
+ //u8g2.setCursor(45, 27);
+ //u8g2.print(sleep_count);
+ //u8g2.setCursor(65, 27);
+ //u8g2.print(xp_time_count);
+
+ /*u8g2.setCursor(55, 13);
+ u8g2.print(sleep_MsTimer2_state);*/
+
+ //u8g2.setCursor(50, 27);
+ //u8g2.print(pid_out);
+
+ //u8g2.setCursor(0, 29);
+ //u8g2.print(t12_temp_read_time);
+
+ //u8g2.setCursor(0, 29);
+ //u8g2.print(analogRead(tc1047_pin));
+}
+void zjm_error1() //主界面 电压电流报警 提示
+{
+ u8g2.setFont(chinese15);
+ if (vin_error == 1)
+ {
+ u8g2.setCursor(95, zjm_dh_y + 13);
+ u8g2.print("电 压");
+ u8g2.setCursor(95, zjm_dh_y + 29);
+ u8g2.print("过 低");
+ }
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(95 - 2, zjm_dh_y + 0, 40, 32); //实心方形
+ u8g2.setDrawColor(1);
+}
+void zjm_error2() //主界面 温度超出测量范围 错误提示
+{
+ u8g2.setFont(u8g2_font_lucasfont_alternate_tr);
+ u8g2.setCursor(12, zjm_dh_y + 8);
+ u8g2.print("T12 ADC");
+ u8g2.setCursor(23, zjm_dh_y + 17);
+ u8g2.print("HIGH");
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(0, zjm_dh_y + 0, 61, 18); //实心方形
+ u8g2.setDrawColor(1);
+}
+void zjm_error3() //主界面 手柄未接显示界面 错误提示
+{
+ u8g2.setFont(chinese15);
+ u8g2.setCursor(5, zjm_dh_y + 14);
+ u8g2.print("手柄未接");
+
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(0, zjm_dh_y + 0, 61, 18); //实心方形
+ u8g2.setDrawColor(1);
+}
diff --git a/v1.03/DisplaySet.ino b/v1.03/DisplaySet.ino
new file mode 100644
index 0000000..21a99a8
--- /dev/null
+++ b/v1.03/DisplaySet.ino
@@ -0,0 +1,505 @@
+//********** 画设置主界面及其他界面 **********
+#define szjm_y1 21
+int16_t szjm_dh_x[6] = {0, 50, 100, 150, 200, 250};
+int16_t szjm_dh_x_count = 0; //设置界面动画x增量记录
+
+#define szjm_dh_bc 5 //变化步长,只能为5的倍数
+void szjm()
+{
+ //画十字坐标
+ //u8g2.drawHLine(0, 15, 128);
+ //u8g2.drawVLine(63, 0, 32);
+ //********** 线性滚动动画
+ if (szjm_kxxk_L == 1) //顺时针滚动
+ {
+ szjm_dh_x_count += szjm_dh_bc; //记录变化次数
+ for (uint8_t i = 0; i < 6; i++) //开始变化
+ {
+ szjm_dh_x[i] += szjm_dh_bc; //步长5
+ }
+ for (uint8_t i = 0; i < 6; i++) //数值限制
+ {
+ if (szjm_dh_x[i] > 250)szjm_dh_x[i] = -45;
+ }
+ if (szjm_dh_x_count >= 50) //变化完毕
+ {
+ szjm_kxxk_L = 0; //释放状态
+ szjm_dh_x_count = 0; //变化次数清零
+ if (szjm_kxxk_count >= 6) szjm_kxxk_count = 0; //数值限制
+ }
+ }
+ else if (szjm_kxxk_R == 1) //逆时针滚动
+ {
+ szjm_dh_x_count -= szjm_dh_bc; //记录变化次数
+ for (uint8_t i = 0; i < 6; i++) //开始变化
+ {
+ szjm_dh_x[i] -= szjm_dh_bc; //步长5
+ }
+ for (uint8_t i = 0; i < 6; i++) //数值限制
+ {
+ if (szjm_dh_x[i] < -150)szjm_dh_x[i] = 145;
+ }
+ if (szjm_dh_x_count <= -50) //变化完毕
+ {
+ szjm_kxxk_R = 0; //释放状态
+ szjm_dh_x_count = 0; //变化次数清零
+ if (szjm_kxxk_count <= -6) szjm_kxxk_count = 0; //数值限制
+ }
+ }
+ //**************************************************
+ //********** 画文字和框框
+ //调试信息显示
+ //u8g2.setFont(u8g2_font_lucasfont_alternate_tr);
+ //u8g2.setCursor(0, 31);
+ //u8g2.print(szjm_dh_x_count);
+ //u8g2.setCursor(100, 31);
+ //u8g2.print(szjm_kxxk_count);
+ //u8g2.setCursor(50, 31);
+ //u8g2.print(szjm_dh_x[0]);
+
+ u8g2.setFont(chinese15);
+ if (szjm_dh_x[0] >= -50 && szjm_dh_x[0] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[0], szjm_y1);
+ u8g2.print("PID");
+ }
+ if (szjm_dh_x[1] >= -50 && szjm_dh_x[1] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[1], szjm_y1);
+ u8g2.print("休眠");
+ }
+ if (szjm_dh_x[2] >= -50 && szjm_dh_x[2] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[2], szjm_y1);
+ u8g2.print("屏幕");
+ }
+ if (szjm_dh_x[3] >= -50 && szjm_dh_x[3] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[3], szjm_y1);
+ u8g2.print("电源");
+ }
+ if (szjm_dh_x[4] >= -50 && szjm_dh_x[4] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[4], szjm_y1);
+ u8g2.print("校准");
+ }
+ if (szjm_dh_x[5] >= -50 && szjm_dh_x[5] <= 150)
+ {
+ u8g2.setCursor(szjm_dh_x[5], szjm_y1);
+ u8g2.print("烙铁");
+ }
+ u8g2.setDrawColor(2);
+ u8g2.drawRBox(43, 6, 40, 20, 1); //空心圆角方形
+ u8g2.setDrawColor(1);
+}
+
+//********** PID设置界面 **********
+#define szjm_pid_x1 2
+#define szjm_pid_x2 14
+
+#define szjm_pid_x3 82
+#define szjm_pid_x4 94
+
+#define szjm_pid_y1 14
+#define szjm_pid_y2 29
+void szjm_pid()
+{
+ u8g2.setCursor(szjm_pid_x1, szjm_pid_y1);
+ u8g2.print("P");
+ u8g2.setCursor(szjm_pid_x2, szjm_pid_y1);
+ u8g2.print(p, 1);
+
+ u8g2.setCursor(szjm_pid_x3, szjm_pid_y1);
+ u8g2.print("I");
+ u8g2.setCursor(szjm_pid_x4, szjm_pid_y1);
+ u8g2.print(i, 1);
+
+ u8g2.setCursor(szjm_pid_x1, szjm_pid_y2);
+ u8g2.print("D");
+ u8g2.setCursor(szjm_pid_x2, szjm_pid_y2);
+ u8g2.print(d, 1);
+
+ //画选框
+ switch (szjm_pid_kxxk_count) //空心选框的位置
+ {
+ case 1: //p
+ if (szjm_pid_sxxk_count == szjm_pid_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_pid_x1 - 2, szjm_pid_y1 - 13, 48, 16); //实心方形
+ //画水平线,标识进入小数点模式
+ if (dec_state == 1) u8g2.drawHLine(szjm_pid_x2 + 4 + (get_num_digit(p) * 6), szjm_pid_y1 + 1, 10);
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_pid_x1 - 2, szjm_pid_y1 - 13, 48, 16); //空心方形
+ break;
+ case 2: //i
+ if (szjm_pid_sxxk_count == szjm_pid_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_pid_x3 - 2, szjm_pid_y1 - 13, 48, 16); //实心方形
+ //画水平线,标识进入小数点模式
+ if (dec_state == 1) u8g2.drawHLine(szjm_pid_x4 + 4 + (get_num_digit(i) * 6), szjm_pid_y1 + 1, 10);
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_pid_x3 - 2, szjm_pid_y1 - 13, 48, 16); //空心方形
+ break;
+ case 3: //d
+ if (szjm_pid_sxxk_count == szjm_pid_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_pid_x1 - 2, szjm_pid_y2 - 13, 48, 16); //实心方形
+ //画水平线,标识进入小数点模式
+ if (dec_state == 1) u8g2.drawHLine(szjm_pid_x2 + 4 + (get_num_digit(d) * 6), szjm_pid_y2 + 1, 10);
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_pid_x1 - 2, szjm_pid_y2 - 13, 48, 16); //空心方形
+ break;
+ }
+}
+
+//********** 休眠设置界面 **********
+#define szjm_sleep_x1 2
+#define szjm_sleep_x2 105
+#define szjm_sleep_y1 14
+#define szjm_sleep_y2 29
+void szjm_sleep()
+{
+ u8g2.setCursor(szjm_sleep_x1, szjm_sleep_y1);
+ u8g2.print("休眠时间(S)");
+ u8g2.setCursor(szjm_sleep_x2, szjm_sleep_y1);
+ u8g2.print(sleep_time);
+
+ u8g2.setCursor(szjm_sleep_x1, szjm_sleep_y2);
+ u8g2.print("休眠温度(℃)");
+ u8g2.setCursor(szjm_sleep_x2, szjm_sleep_y2);
+ u8g2.print(sleep_temp);
+
+ //画选框
+ switch (szjm_sleep_kxxk_count) //空心选框的位置
+ {
+ case 1: //设置温度
+ if (szjm_sleep_sxxk_count == szjm_sleep_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_sleep_x1 - 2, szjm_sleep_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_sleep_x1 - 2, szjm_sleep_y1 - 13, 128, 16); //空心方形
+ break;
+ case 2: //设置温度
+ if (szjm_sleep_sxxk_count == szjm_sleep_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_sleep_x1 - 2, szjm_sleep_y2 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_sleep_x1 - 2, szjm_sleep_y2 - 13, 128, 16); //空心方形
+ break;
+ }
+}
+
+//********** OLED亮度设置界面 **********
+#define szjm_oled_x1 2
+#define szjm_oled_x2 106
+#define szjm_oled_x3 86
+#define szjm_oled_y1 14
+#define szjm_oled_y2 29
+void szjm_oled()
+{
+ if (szjm_oled_kxxk_count == 3) //第2页
+ {
+ u8g2.setCursor(szjm_oled_x1, szjm_oled_y1);
+ u8g2.print("旋转方向");
+ u8g2.setCursor(szjm_oled_x3, szjm_oled_y1);
+ if (xzbmq_fx == 0) u8g2.print("顺+逆-");
+ else u8g2.print("顺-逆+");
+ }
+ else //第1页
+ {
+ u8g2.setCursor(szjm_oled_x1, szjm_oled_y1);
+ u8g2.print("屏幕亮度");
+ u8g2.setCursor(szjm_oled_x2, szjm_oled_y1);
+ u8g2.print(oled_ld);
+
+ u8g2.setCursor(szjm_oled_x1, szjm_oled_y2);
+ u8g2.print("屏幕方向");
+ u8g2.setCursor(szjm_oled_x2, szjm_oled_y2);
+ if (oled_fx == 0) u8g2.print("0");
+ else u8g2.print("180");
+ }
+ //画选框
+ switch (szjm_oled_kxxk_count) //空心选框的位置
+ {
+ case 1: //OLED亮度
+ if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_oled_x1 - 2, szjm_oled_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_oled_x1 - 2, szjm_oled_y1 - 13, 128, 16); //空心方形
+ break;
+ case 2: //OLED方向
+ if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_oled_x1 - 2, szjm_oled_y2 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_oled_x1 - 2, szjm_oled_y2 - 13, 128, 16); //空心方形
+ break;
+ case 3: //旋转方向
+ if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_oled_x1 - 2, szjm_oled_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_oled_x1 - 2, szjm_oled_y1 - 13, 128, 16); //空心方形
+ break;
+ }
+}
+
+//********** 电源设置界面 **********
+#define szjm_power_x1 2
+#define szjm_power_x2 100
+#define szjm_power_y1 14
+#define szjm_power_y2 29
+void szjm_power()
+{
+ if (szjm_power_kxxk_count == 3) //第2页
+ {
+ u8g2.setCursor(szjm_power_x1, szjm_power_y1);
+ u8g2.print("低压报警(V)");
+ u8g2.setCursor(szjm_power_x2, szjm_power_y1);
+ if (vin_low >= 3.3) u8g2.print(vin_low, 1);
+ else if (vin_low < 3.3) u8g2.print("关");
+ }
+ else //第1页
+ {
+ u8g2.setCursor(szjm_power_x1, szjm_power_y1);
+ u8g2.print("基准电压(V)");
+ u8g2.setCursor(szjm_power_x2, szjm_power_y1);
+ u8g2.print(vcc_refer);
+ u8g2.setCursor(szjm_power_x1, szjm_power_y2);
+ u8g2.print("电源电压(V)");
+ if (vin_refer >= 0)
+ {
+ u8g2.setCursor(szjm_power_x2 - 8, szjm_power_y2);
+ u8g2.print("+");
+ u8g2.setCursor(szjm_power_x2, szjm_power_y2);
+ u8g2.print(vin_refer);
+ }
+ else
+ {
+ u8g2.setCursor(szjm_power_x2 - 6, szjm_power_y2);
+ u8g2.print(vin_refer);
+ }
+ }
+ //画选框
+ switch (szjm_power_kxxk_count) //空心选框的位置
+ {
+ case 1: //基准电压(V)
+ if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_power_x1 - 2, szjm_power_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_power_x1 - 2, szjm_power_y1 - 13, 128, 16); //空心方形
+ break;
+ case 2: //基准电压(V)
+ if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_power_x1 - 2, szjm_power_y2 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_power_x1 - 2, szjm_power_y2 - 13, 128, 16); //空心方形
+ break;
+ case 3: //电源电压(V)
+ if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_power_x1 - 2, szjm_power_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_power_x1 - 2, szjm_power_y1 - 13, 128, 16); //空心方形
+ break;
+ }
+}
+//********** 烙铁设置界面 **********
+#define szjm_laotie_x1 2
+#define szjm_laotie_x4 105
+
+#define szjm_laotie_y1 14
+#define szjm_laotie_y2 29
+
+void szjm_laotie()
+{
+
+ if (szjm_laotie_kxxk_count == 3) //第2页
+ {
+ u8g2.setCursor(szjm_laotie_x1, szjm_laotie_y1);
+ u8g2.print("重置");
+ u8g2.setCursor(szjm_laotie_x4, szjm_laotie_y1);
+ if (hfccsz_state == 1) u8g2.print("YES");
+ else u8g2.print("NO");
+ }
+ else //第1页
+ {
+ u8g2.setCursor(szjm_laotie_x1, szjm_laotie_y1);
+ u8g2.print("冷端补偿(℃)");
+ if (tc1047_refer <= -10) u8g2.setCursor(szjm_laotie_x4, szjm_laotie_y1);
+ else u8g2.setCursor(szjm_laotie_x4, szjm_laotie_y1);
+ u8g2.print(tc1047_refer);
+
+ u8g2.setCursor(szjm_laotie_x1, szjm_laotie_y2);
+ u8g2.print("开机加热");
+ u8g2.setCursor(szjm_laotie_x4, szjm_laotie_y2);
+ if (t12_kj_jr == 1) u8g2.print("YES");
+ else u8g2.print("NO");
+ }
+
+ //画选框
+ switch (szjm_laotie_kxxk_count) //空心选框的位置
+ {
+ case 1: //冷端补偿
+ if (szjm_laotie_sxxk_count == szjm_laotie_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_laotie_x1 - 2, szjm_laotie_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_laotie_x1 - 2, szjm_laotie_y1 - 13, 128, 16); //空心方形
+ break;
+ case 2: //开机加热?
+ if (szjm_laotie_sxxk_count == szjm_laotie_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_laotie_x1 - 2, szjm_laotie_y2 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_laotie_x1 - 2, szjm_laotie_y2 - 13, 128, 16); //空心方形
+ break;
+ case 3: //恢复出厂设置
+ if (szjm_laotie_sxxk_count == szjm_laotie_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_laotie_x1 - 2, szjm_laotie_y1 - 13, 128, 16); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_laotie_x1 - 2, szjm_laotie_y1 - 13, 128, 16); //空心方形
+ break;
+ }
+}
+//********** 校准设置界面 **********
+#define szjm_jiaozhun_x1 0
+
+#define szjm_jiaozhun_x2 30
+#define szjm_jiaozhun_x3 54
+#define szjm_jiaozhun_x4 80
+#define szjm_jiaozhun_x5 106
+
+#define szjm_jiaozhun_x6 102
+
+#define szjm_jiaozhun_y1 7
+#define szjm_jiaozhun_y2 18
+#define szjm_jiaozhun_y3 31
+void szjm_jiaozhun()
+{
+ u8g2.setFont(u8g2_font_lucasfont_alternate_tr);
+ if (szjm_jiaozhun_kxxk_count == 6)
+ {
+ u8g2.setCursor(0, 7);
+ u8g2.print("P0:");
+ u8g2.setCursor(25, 7);
+ u8g2.print(sz_p[0], 10);
+
+ u8g2.setCursor(0, 15);
+ u8g2.print("P1:");
+ u8g2.setCursor(25, 15);
+ u8g2.print(sz_p[1], 10);
+
+ u8g2.setCursor(0, 24);
+ u8g2.print("P2:");
+ u8g2.setCursor(25, 24);
+ u8g2.print(sz_p[2], 10);
+
+ u8g2.setCursor(0, 32);
+ u8g2.print("P3:");
+ u8g2.setCursor(25, 32);
+ u8g2.print(sz_p[3], 10);
+ }
+ else
+ {
+ u8g2.setCursor(szjm_jiaozhun_x1, szjm_jiaozhun_y1);
+ u8g2.print("ADC 10 350 650 940");
+ u8g2.setCursor(szjm_jiaozhun_x1, szjm_jiaozhun_y2);
+ u8g2.print("Temp");
+ u8g2.setCursor(szjm_jiaozhun_x2, szjm_jiaozhun_y2);
+ u8g2.print(sz_temp[0]);
+ u8g2.setCursor(szjm_jiaozhun_x3, szjm_jiaozhun_y2);
+ u8g2.print(sz_temp[1]);
+ u8g2.setCursor(szjm_jiaozhun_x4, szjm_jiaozhun_y2);
+ u8g2.print(sz_temp[2]);
+ u8g2.setCursor(szjm_jiaozhun_x5, szjm_jiaozhun_y2);
+ u8g2.print(sz_temp[3]);
+
+ u8g2.drawHLine(0, 22, 128);
+
+ u8g2.setCursor(szjm_jiaozhun_x1, szjm_jiaozhun_y3);
+ u8g2.print("Now ADC:");
+ u8g2.setCursor(48, szjm_jiaozhun_y3);
+ u8g2.print(t12_ad, 0);
+
+ u8g2.setCursor(szjm_jiaozhun_x6, szjm_jiaozhun_y3);
+ u8g2.print("Save");
+ }
+ //画选框
+ switch (szjm_jiaozhun_kxxk_count) //空心选框的位置
+ {
+ case 1: //深圳头1段温度
+ if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_jiaozhun_x2 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_jiaozhun_x2 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //空心方形
+ break;
+ case 2: //深圳头2段温度
+ if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_jiaozhun_x3 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_jiaozhun_x3 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //空心方形
+ break;
+ case 3: //深圳头3段温度
+ if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_jiaozhun_x4 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_jiaozhun_x4 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //空心方形
+ break;
+ case 4: //深圳头4段温度
+ if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_jiaozhun_x5 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //实心方形
+ u8g2.setDrawColor(1);
+ }
+ else u8g2.drawFrame(szjm_jiaozhun_x5 - 2, szjm_jiaozhun_y2 - 9, 21, 11); //空心方形
+ break;
+ case 5: //保存
+ u8g2.setDrawColor(2);
+ u8g2.drawBox(szjm_jiaozhun_x6 - 2, szjm_jiaozhun_y3 - 8, 28, 9); //实心方形
+ u8g2.setDrawColor(1);
+ break;
+ }
+}
diff --git a/v1.03/EEPROM.ino b/v1.03/EEPROM.ino
new file mode 100644
index 0000000..e3c8855
--- /dev/null
+++ b/v1.03/EEPROM.ino
@@ -0,0 +1,56 @@
+//******************* 自动刷写eeprom *******************
+void eerpom_auto()
+{
+ EEPROM.get(auto_get_eeprom, auto_get); //获取自动刷写的状态
+ if (auto_get > 1) auto_get = 0; //防止eeprom第0位不为0
+ if (auto_get == 0) //状态为0开启刷写
+ {
+ EEPROM.put(p_eeprom, p); //pid-p
+ EEPROM.put(i_eeprom, i); //pid-i
+ EEPROM.put(d_eeprom, d); //pid-d
+ EEPROM.put(sleep_time_eeprom, sleep_time); //休眠时间
+ EEPROM.put(sleep_temp_eeprom, sleep_temp); //休眠温度
+ EEPROM.put(oled_ld_eeprom, oled_ld); //OLED亮度
+ EEPROM.put(vcc_refer_eeprom, vcc_refer); //基准电压
+ EEPROM.put(vin_refer_eeprom, vin_refer); //电源电压校准值
+ EEPROM.put(t12_kj_jr_eeprom, t12_kj_jr); //是否开机就加热
+ EEPROM.put(vin_low_eeprom, vin_low); //输入电压过底报警阈值
+ EEPROM.put(tc1047_refer_eeprom, tc1047_refer); //T12环境参考温度校准值
+ EEPROM.put(oled_fx_eeprom, oled_fx); //OLED方向
+ EEPROM.put(xzbmq_fx_eeprom, xzbmq_fx); //旋转编码器方向
+ //写入曲线的4段温度
+ EEPROM.put(sz_temp0_eeprom, sz_temp[0]);
+ EEPROM.put(sz_temp1_eeprom, sz_temp[1]);
+ EEPROM.put(sz_temp2_eeprom, sz_temp[2]);
+ EEPROM.put(sz_temp3_eeprom, sz_temp[3]);
+ //写入设置温度
+ EEPROM.put(set_temp_eeprom, set_temp);
+ //刷写完,记录auto_get的状态,防止下次开机再次刷写
+ EEPROM.put(auto_get_eeprom, 1);
+ auto_get = 1;
+ }
+ if (auto_get == 1)//状态为1只读取
+ {
+ EEPROM.get(p_eeprom, p); //pid-p
+ EEPROM.get(i_eeprom, i); //pid-i
+ EEPROM.get(d_eeprom, d); //pid-d
+ EEPROM.get(sleep_time_eeprom, sleep_time); //休眠时间
+ EEPROM.get(sleep_temp_eeprom, sleep_temp); //休眠温度
+ EEPROM.get(oled_ld_eeprom, oled_ld); //OLED亮度
+ EEPROM.get(vcc_refer_eeprom, vcc_refer); //基准电压
+ EEPROM.get(vin_refer_eeprom, vin_refer); //电源电压校准值
+ EEPROM.get(t12_kj_jr_eeprom, t12_kj_jr); //是否开机就加热
+ EEPROM.get(vin_low_eeprom, vin_low); //输入电压过底报警阈值
+ EEPROM.get(tc1047_refer_eeprom, tc1047_refer); //T12环境参考温度校准值
+ EEPROM.get(oled_fx_eeprom, oled_fx); //OLED方向
+ EEPROM.get(xzbmq_fx_eeprom, xzbmq_fx); //旋转编码器方向
+ //获取曲线的4段温度
+ EEPROM.get(sz_temp0_eeprom, sz_temp[0]);
+ EEPROM.get(sz_temp1_eeprom, sz_temp[1]);
+ EEPROM.get(sz_temp2_eeprom, sz_temp[2]);
+ EEPROM.get(sz_temp3_eeprom, sz_temp[3]);
+ //获取设置温度
+ EEPROM.get(set_temp_eeprom, set_temp);
+ }
+}
+//******************************************************
diff --git a/v1.03/InterruptKey.ino b/v1.03/InterruptKey.ino
new file mode 100644
index 0000000..3371f6f
--- /dev/null
+++ b/v1.03/InterruptKey.ino
@@ -0,0 +1,580 @@
+//********** 编码器按键决策 **********
+#define xklv_time 120 //切换选框的滤波时间
+#define szlv_time 20 //切换选框的滤波时间
+#define szjm_qrcs 2;
+
+void xuan_zhaun() //旋转中断 选框决策
+{
+
+ /*Serial.print("DT "); Serial.print(digitalRead(DT));
+ Serial.print(" | ");
+ Serial.print("CLK "); Serial.print(digitalRead(CLK));
+ Serial.print(" | ");
+ Serial.print("SW "); Serial.print(digitalRead(SW));
+ Serial.println(" ");*/
+ if ((millis() - xzbmq_time) < szlv_time) return;
+ buzzer(100, 70); //时间,次数
+ if (display_count == ZJM)
+ {
+ zjm_xz_key();
+ buzzer_temp_average_state = 0; //准备好到达温度提示声
+ sleep_count = 0; //休眠计数归零
+ zjm_sleep_ts = 0; //提示主界面退出显示休眠状态
+ t12_adc_error = 0; //清除温度超出测量范围提示
+ xp_state = 0; //结束息屏
+ xp_time_count = 0; //清除息屏计数
+ xp_time_count_old = 0; //清除息屏计数旧
+ }
+ else if (display_count == SZJM) szjm_xz_key();
+ else if (display_count == SZJM_PID) pid_xz_key();
+ else if (display_count == SZJM_SLEEP) sleep_xz_key();
+ else if (display_count == SZJM_OLED) oled_xz_key();
+ else if (display_count == SZJM_POWER) power_xz_key();
+ else if (display_count == SZJM_LAOTIE) laotie_xz_key();
+ else if (display_count == SZJM_JIAOZHUN) jiaozhun_xz_key();
+ xzbmq_time = millis();
+}
+
+void an_xia()
+{
+ if ((millis() - xzbmq_time) < 160) return;
+ qj_sw_key(); //全局长按进入设置界面 或 退出至主界面
+}
+//************************ 全局长按进入设置界面 或 退出至主界面 ************************
+void qj_sw_key()
+{
+ //长按计数增加
+ if (digitalRead(SW) == 0)
+ {
+ qj_ca_count++; //计数加一
+ buzzer(80, 150); //时间,次数
+
+ if (display_count == ZJM) t12_adc_error = 0; //清除温度超出测量范围提示
+ xp_state = 0; //结束息屏
+ xp_time_count = 0; //清除息屏计数
+ xp_time_count_old = 0; //清除息屏计数旧
+
+ xzbmq_time = millis();
+ }
+ //判断按了几次 该做些什么
+ if (qj_ca_count >= 5) //进入设置界面
+ {
+ if (display_count == ZJM)
+ {
+ display_count = SZJM; //在主界面时进入设置界面
+ buzzer_szjm_state = 1;
+ }
+ else if (display_count != SZJM_JIAOZHUN)
+ {
+ display_count = ZJM; //在其他界面是退出至主界面
+ buzzer_zjm_state = 1;
+ }
+ qj_ca_count = 0; //计数清零
+ }
+ else if ((millis() - xzbmq_time) > 260) //等待一段时间,确定松手了
+ {
+ //在主界面的按下决策
+ if (display_count == ZJM) zjm_sw_key();
+ //在设置界面的按下决策
+ else if (display_count == SZJM) szjm_sw_key();
+ //在PID界面的按下决策
+ else if (display_count == SZJM_PID) pid_sw_key();
+ //在休眠界面的按下决策
+ else if (display_count == SZJM_SLEEP) sleep_sw_key();
+ //在OLED亮度界面的按下决策
+ else if (display_count == SZJM_OLED) oled_sw_key();
+ //在电源校准界面的按下决策
+ else if (display_count == SZJM_POWER) power_sw_key();
+ //在烙铁界面的按下决策
+ else if (display_count == SZJM_LAOTIE) laotie_sw_key();
+ //在校准界面的按下决策
+ else if (display_count == SZJM_JIAOZHUN) jiaozhun_sw_key();
+ qj_ca_count = 0;//计数清零
+ }
+}
+//************************ 主界面 ************************
+void zjm_sw_key()
+{
+ if (qj_ca_count == 2 && vin_error == 0 && t12_error == 0) // 启动或停止加热
+ {
+ zjm_dh_run = 1; //允许播放动画 ,动画播放完在DisplayMain里切换T12工作状态
+ zjm_sleep_ts = 0; //提示主界面退出显示休眠状态
+ buzzer_temp_average_state = 0; //准备好到达温度提示声
+ }
+}
+void zjm_xz_key() //主界面 旋转
+{
+ if (digitalRead(DT) == xzbmq_fx) set_temp += 10;
+ else if (digitalRead(CLK) == xzbmq_fx) set_temp -= 10;
+ //自动获取设置温度的范围
+ set_temp_max = ((sz_temp[3]) / 10 ) * 10;
+ set_temp_min = ((sz_temp[0]) / 10) * 10;
+ if (set_temp > set_temp_max) set_temp = set_temp_min;
+ else if (set_temp < set_temp_min) set_temp = set_temp_max;
+}
+//************************ 设置界面 ************************
+void szjm_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //进入二级菜单
+ {
+ if (szjm_kxxk_count == 0) display_count = SZJM_SLEEP; //进入休眠设置菜单
+ else if (szjm_kxxk_count == -5 || szjm_kxxk_count == 1) display_count = SZJM_PID; //进入PID设置菜单
+ else if (szjm_kxxk_count == -1 || szjm_kxxk_count == 5) display_count = SZJM_OLED; //进入OELD亮度设置菜单
+ else if (szjm_kxxk_count == -2 || szjm_kxxk_count == 4) display_count = SZJM_POWER; //进入电源设置菜单
+ else if (szjm_kxxk_count == -4 || szjm_kxxk_count == 2) display_count = SZJM_LAOTIE;//进入烙铁设置菜单
+ else if (szjm_kxxk_count == -3 || szjm_kxxk_count == 3)
+ {
+ //使用比较柔和的pid参数,退出校准界面时记得恢复正常的PID策略
+ p = p_jz; //比例系数
+ i = i_jz; //积分系数
+ d = d_jz; //微分系数
+ display_count = SZJM_JIAOZHUN;//进入烙铁设置菜单
+ }
+ }
+}
+void szjm_xz_key() //设置界面 旋转
+{
+ if (digitalRead(DT) == xzbmq_fx)
+ {
+ if (szjm_kxxk_L == 0 && szjm_kxxk_R == 0) //顺时针
+ {
+ szjm_kxxk_L = 1; //允许播放动画
+ szjm_kxxk_count++; //下一项
+ }
+ }
+ else if (digitalRead(CLK) == xzbmq_fx)
+ {
+ if (szjm_kxxk_L == 0 && szjm_kxxk_R == 0) //逆时针
+ {
+ szjm_kxxk_R = 1; //允许播放动画
+ szjm_kxxk_count--; //上一项
+ }
+ }
+}
+//************************ PID设置界面 ************************
+void pid_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_pid_kxxk_count)
+ {
+ case 0: //返回至设置界面
+ display_count = SZJM;
+ break;
+ case 1: //p 存储
+ if (szjm_pid_sxxk_count == 0) szjm_pid_sxxk_count = szjm_pid_kxxk_count;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 0) dec_state = 1;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 1)
+ {
+ EEPROM.put(p_eeprom, p);
+ dec_state = 0;
+ szjm_pid_sxxk_count = 0;
+ }
+ break;
+ case 2: //i 存储
+ if (szjm_pid_sxxk_count == 0) szjm_pid_sxxk_count = szjm_pid_kxxk_count;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 0) dec_state = 1;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 1)
+ {
+ EEPROM.put(i_eeprom, i);
+ dec_state = 0;
+ szjm_pid_sxxk_count = 0;
+ }
+ break;
+ case 3: //d 存储
+ if (szjm_pid_sxxk_count == 0) szjm_pid_sxxk_count = szjm_pid_kxxk_count;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 0) dec_state = 1;
+ else if (szjm_pid_sxxk_count == szjm_pid_kxxk_count && dec_state == 1)
+ {
+ EEPROM.put(d_eeprom, d);
+ dec_state = 0;
+ szjm_pid_sxxk_count = 0;
+ }
+ break;
+ }
+ }
+}
+void pid_xz_key() //设置界面 旋转
+{
+ if (szjm_pid_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_pid_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_pid_kxxk_count--;
+ }
+ else if (szjm_pid_sxxk_count == 1) //p加减
+ {
+ if (digitalRead(DT) == xzbmq_fx && dec_state == 0) p += 1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 0) p -= 1;
+ else if (digitalRead(DT) == xzbmq_fx && dec_state == 1) p += 0.1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 1) p -= 0.1;
+ }
+ else if (szjm_pid_sxxk_count == 2) //i加减
+ {
+ if (digitalRead(DT) == xzbmq_fx && dec_state == 0) i += 1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 0) i -= 1;
+ else if (digitalRead(DT) == xzbmq_fx && dec_state == 1) i += 0.1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 1) i -= 0.1;
+ }
+ else if (szjm_pid_sxxk_count == 3) //d加减
+ {
+ if (digitalRead(DT) == xzbmq_fx && dec_state == 0) d += 1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 0) d -= 1;
+ else if (digitalRead(DT) == xzbmq_fx && dec_state == 1) d += 0.1;
+ else if (digitalRead(CLK) == xzbmq_fx && dec_state == 1) d -= 0.1;
+ }
+ if (szjm_pid_kxxk_count > 3) szjm_pid_kxxk_count = 0;
+ else if (szjm_pid_kxxk_count < 0) szjm_pid_kxxk_count = 3;
+}
+//************************ 休眠设置界面 ************************
+void sleep_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_sleep_kxxk_count)
+ {
+ case 0: //返回至设置界面
+ display_count = SZJM;
+ break;
+ case 1: //休眠时间 存储
+ if (szjm_sleep_sxxk_count == 0) szjm_sleep_sxxk_count = szjm_sleep_kxxk_count;
+ else if (szjm_sleep_sxxk_count == szjm_sleep_kxxk_count)
+ {
+ EEPROM.put(sleep_time_eeprom, sleep_time); //休眠时间
+ szjm_sleep_sxxk_count = 0;
+ }
+ break;
+ case 2: //休眠温度 存储
+ if (szjm_sleep_sxxk_count == 0) szjm_sleep_sxxk_count = szjm_sleep_kxxk_count;
+ else if (szjm_sleep_sxxk_count == szjm_sleep_kxxk_count)
+ {
+ EEPROM.put(sleep_temp_eeprom, sleep_temp); //休眠温度
+ szjm_sleep_sxxk_count = 0;
+ }
+ break;
+ }
+ }
+}
+void sleep_xz_key() //设置界面 旋转
+{
+ if (szjm_sleep_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_sleep_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_sleep_kxxk_count--;
+ }
+ else if (szjm_sleep_sxxk_count == 1) //休眠时间加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) sleep_time += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sleep_time -= 1;
+ }
+ else if (szjm_sleep_sxxk_count == 2) //休眠温度加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) sleep_temp += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sleep_temp -= 1;
+ }
+ if (szjm_sleep_kxxk_count > 2) szjm_sleep_kxxk_count = 0;
+ else if (szjm_sleep_kxxk_count < 0) szjm_sleep_kxxk_count = 2;
+ else if (sleep_time > 999) sleep_time = 10;
+ else if (sleep_time < 10) sleep_time = 999;
+}
+//************************ OLED亮度设置界面 ************************
+void oled_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_oled_kxxk_count)
+ {
+ case 0: //返回至设置界面
+ display_count = SZJM;
+ break;
+ case 1: //OLED亮度 存储
+ if (szjm_oled_sxxk_count == 0) szjm_oled_sxxk_count = szjm_oled_kxxk_count;
+ else if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ EEPROM.put(oled_ld_eeprom, oled_ld); //OLED亮度
+ szjm_oled_sxxk_count = 0;
+ }
+ break;
+ case 2: //OLED亮度 存储
+ if (szjm_oled_sxxk_count == 0) szjm_oled_sxxk_count = szjm_oled_kxxk_count;
+ else if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ EEPROM.put(oled_fx_eeprom, oled_fx); //OLED方向
+ if (oled_fx == 1)u8g2.setDisplayRotation(U8G2_R2); //旋转180度
+ else u8g2.setDisplayRotation(U8G2_R0); //0度,默认方向
+ szjm_oled_sxxk_count = 0;
+ }
+ break;
+ case 3: //旋转编码器方向 存储
+ if (szjm_oled_sxxk_count == 0) szjm_oled_sxxk_count = szjm_oled_kxxk_count;
+ else if (szjm_oled_sxxk_count == szjm_oled_kxxk_count)
+ {
+ EEPROM.put(xzbmq_fx_eeprom, xzbmq_fx); //OLED方向
+ EEPROM.get(xzbmq_fx_eeprom, xzbmq_fx); //OLED方向
+ szjm_oled_sxxk_count = 0;
+ }
+ break;
+ }
+ }
+}
+
+void oled_xz_key() //设置界面 旋转
+{
+ if (szjm_oled_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_oled_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_oled_kxxk_count--;
+ if (szjm_oled_kxxk_count > 3) szjm_oled_kxxk_count = 0;
+ else if (szjm_oled_kxxk_count < 0) szjm_oled_kxxk_count = 3;
+ }
+ else if (szjm_oled_sxxk_count == 1) //OLED亮度 加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) oled_ld += 5;
+ else if (digitalRead(CLK) == xzbmq_fx) oled_ld -= 5;
+ if (oled_ld > 1 && oled_ld < 5) oled_ld = 5;
+ else if (oled_ld == 0)oled_ld = 255;
+ }
+ else if (szjm_oled_sxxk_count == 2) //OLED方向 状态切换
+ {
+ if (digitalRead(DT) == xzbmq_fx) oled_fx = !oled_fx;
+ else if (digitalRead(CLK) == xzbmq_fx) oled_fx = !oled_fx;
+ }
+ else if (szjm_oled_sxxk_count == 3) //旋转编码器方向 状态切换
+ {
+ if (digitalRead(DT) == xzbmq_fx) xzbmq_fx = !xzbmq_fx;
+ else if (digitalRead(CLK) == xzbmq_fx) xzbmq_fx = !xzbmq_fx;
+ }
+}
+//************************ 电源校准界面 ************************
+void power_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_power_kxxk_count)
+ {
+ case 0: //返回至设置界面
+ display_count = SZJM;
+ break;
+ case 1: //基准电压 存储
+ if (szjm_power_sxxk_count == 0) szjm_power_sxxk_count = szjm_power_kxxk_count;
+ else if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ EEPROM.put(vcc_refer_eeprom, vcc_refer);
+ szjm_power_sxxk_count = 0;
+ }
+ break;
+ case 2: //电源电压校准值 存储
+ if (szjm_power_sxxk_count == 0) szjm_power_sxxk_count = szjm_power_kxxk_count;
+ else if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ EEPROM.put(vin_refer_eeprom, vin_refer);
+ szjm_power_sxxk_count = 0;
+ }
+ break;
+ case 3: //低压报警阈值 存储
+ if (szjm_power_sxxk_count == 0) szjm_power_sxxk_count = szjm_power_kxxk_count;
+ else if (szjm_power_sxxk_count == szjm_power_kxxk_count)
+ {
+ EEPROM.put(vin_low_eeprom, vin_low);
+ szjm_power_sxxk_count = 0;
+ }
+ break;
+ }
+ }
+}
+
+void power_xz_key() //设置界面 旋转
+{
+ if (szjm_power_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_power_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_power_kxxk_count--;
+ if (szjm_power_kxxk_count > 3) szjm_power_kxxk_count = 0;
+ else if (szjm_power_kxxk_count < 0) szjm_power_kxxk_count = 3;
+ }
+ else if (szjm_power_sxxk_count == 1) //基准电压 加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) vcc_refer += 0.01;
+ else if (digitalRead(CLK) == xzbmq_fx) vcc_refer -= 0.01;
+ }
+ else if (szjm_power_sxxk_count == 2) //电源电压校准值 加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) vin_refer += 0.1;
+ else if (digitalRead(CLK) == xzbmq_fx) vin_refer -= 0.1;
+ }
+ else if (szjm_power_sxxk_count == 3) //低压报警阈值 加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) vin_low += 0.1;
+ else if (digitalRead(CLK) == xzbmq_fx) vin_low -= 0.1;
+ if (vin_low > 30)vin_low = 3.2;
+ else if (vin_low < 3.2)vin_low = 30;
+ }
+}
+
+//************************ 烙铁界面 ************************
+void laotie_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_laotie_kxxk_count)
+ {
+ case 0: //返回至设置界面
+ display_count = SZJM;
+ break;
+ case 1: //冷端补偿 存储
+ if (szjm_laotie_sxxk_count == 0) szjm_laotie_sxxk_count = szjm_laotie_kxxk_count;
+ else if (szjm_laotie_sxxk_count == szjm_laotie_kxxk_count)
+ {
+ EEPROM.put(tc1047_refer_eeprom, tc1047_refer);
+ szjm_laotie_sxxk_count = 0;
+ }
+ break;
+ case 2: //开机加热 存储
+ if (szjm_laotie_sxxk_count == 0)
+ {
+ t12_kj_jr = !t12_kj_jr;
+ EEPROM.put(t12_kj_jr_eeprom, t12_kj_jr);
+ }
+ break;
+ case 3: //恢复出厂设置 存储
+ if (szjm_laotie_sxxk_count == 0) szjm_laotie_sxxk_count = szjm_laotie_kxxk_count;
+ else if (szjm_laotie_sxxk_count == szjm_laotie_kxxk_count)
+ {
+ if (hfccsz_state == 1) display_hfccsz();
+ szjm_laotie_sxxk_count = 0;
+ }
+ break;
+ }
+ }
+}
+void laotie_xz_key() //设置界面 旋转
+{
+ if (szjm_laotie_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_laotie_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_laotie_kxxk_count--;
+ if (szjm_laotie_kxxk_count > 3) szjm_laotie_kxxk_count = 0;
+ else if (szjm_laotie_kxxk_count < 0) szjm_laotie_kxxk_count = 3;
+ }
+ else if (szjm_laotie_sxxk_count == 1) //冷端补偿校准值 加减
+ {
+ if (digitalRead(DT) == xzbmq_fx) tc1047_refer += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) tc1047_refer -= 1;
+ if (tc1047_refer > 99)tc1047_refer = 0;
+ else if (tc1047_refer < -99) tc1047_refer = 0;
+ }
+ else if (szjm_laotie_sxxk_count == 3) //恢复出厂设置 状态切换
+ {
+ if (digitalRead(DT) == xzbmq_fx) hfccsz_state = !hfccsz_state;
+ else if (digitalRead(CLK) == xzbmq_fx) hfccsz_state = !hfccsz_state;
+ }
+}
+//************************ 校准界面 ************************
+void jiaozhun_sw_key() //设置界面 按下
+{
+ if (qj_ca_count == 1) //返回或进入调节框
+ {
+ switch (szjm_jiaozhun_kxxk_count)
+ {
+ case 0: //返回至设置界面,并恢复正常PID参数
+ display_count = SZJM;
+ szjm_jiaozhun_kxxk_count = 0;
+ EEPROM.get(p_eeprom, p); //pid-p
+ EEPROM.get(i_eeprom, i); //pid-i
+ EEPROM.get(d_eeprom, d); //pid-d
+ break;
+ case 1: //深圳校准温度1段 存储
+ if (szjm_jiaozhun_sxxk_count == 0)
+ {
+ szjm_jiaozhun_sxxk_count = szjm_jiaozhun_kxxk_count;
+ t12_switch = 1; //打开加热
+ }
+ else if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ EEPROM.put(sz_temp0_eeprom, sz_temp[0]);
+ szjm_jiaozhun_sxxk_count = 0;
+ t12_switch = 0; //关闭加热
+ }
+ break;
+ case 2: //深圳校准温度2段 存储
+ if (szjm_jiaozhun_sxxk_count == 0)
+ {
+ szjm_jiaozhun_sxxk_count = szjm_jiaozhun_kxxk_count;
+ t12_switch = 1; //打开加热
+ }
+ else if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ EEPROM.put(sz_temp1_eeprom, sz_temp[1]);
+ szjm_jiaozhun_sxxk_count = 0;
+ t12_switch = 0; //关闭加热
+ }
+ break;
+ case 3: //深圳校准温度3段 存储
+ if (szjm_jiaozhun_sxxk_count == 0)
+ {
+ szjm_jiaozhun_sxxk_count = szjm_jiaozhun_kxxk_count;
+ t12_switch = 1; //打开加热
+ }
+ else if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ EEPROM.put(sz_temp2_eeprom, sz_temp[2]);
+ szjm_jiaozhun_sxxk_count = 0;
+ t12_switch = 0; //关闭加热
+ }
+ break;
+ case 4: //深圳校准温度4段 存储
+ if (szjm_jiaozhun_sxxk_count == 0)
+ {
+ szjm_jiaozhun_sxxk_count = szjm_jiaozhun_kxxk_count;
+ t12_switch = 1; //打开加热
+ }
+ else if (szjm_jiaozhun_sxxk_count == szjm_jiaozhun_kxxk_count)
+ {
+ EEPROM.put(sz_temp3_eeprom, sz_temp[3]);
+ szjm_jiaozhun_sxxk_count = 0;
+ t12_switch = 0; //关闭加热
+ }
+ break;
+ case 5: //开始曲线拟合系数计算
+ qxnh_run(); //计算曲线拟合系数
+ szjm_jiaozhun_kxxk_count = 6;
+ break;
+ case 6: //返回至设置界面,并恢复正常PID参数
+ display_count = SZJM;
+ szjm_jiaozhun_kxxk_count = 0;
+ EEPROM.get(p_eeprom, p); //pid-p
+ EEPROM.get(i_eeprom, i); //pid-i
+ EEPROM.get(d_eeprom, d); //pid-d
+ break;
+ }
+ }
+}
+void jiaozhun_xz_key() //设置界面 旋转
+{
+ if (szjm_jiaozhun_sxxk_count == 0) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) szjm_jiaozhun_kxxk_count++;
+ else if (digitalRead(CLK) == xzbmq_fx) szjm_jiaozhun_kxxk_count--;
+ if (szjm_jiaozhun_kxxk_count > 6) szjm_jiaozhun_kxxk_count = 0;
+ else if (szjm_jiaozhun_kxxk_count < 0) szjm_jiaozhun_kxxk_count = 6;
+ }
+ else if (szjm_jiaozhun_sxxk_count == 1) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) sz_temp[0] += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sz_temp[0] -= 1;
+ }
+ else if (szjm_jiaozhun_sxxk_count == 2) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) sz_temp[1] += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sz_temp[1] -= 1;
+ }
+ else if (szjm_jiaozhun_sxxk_count == 3) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) sz_temp[2] += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sz_temp[2] -= 1;
+ }
+ else if (szjm_jiaozhun_sxxk_count == 4) //选框移动
+ {
+ if (digitalRead(DT) == xzbmq_fx) sz_temp[3] += 1;
+ else if (digitalRead(CLK) == xzbmq_fx) sz_temp[3] -= 1;
+ }
+}
diff --git a/v1.03/MsTimer2.ino b/v1.03/MsTimer2.ino
new file mode 100644
index 0000000..63d5fa1
--- /dev/null
+++ b/v1.03/MsTimer2.ino
@@ -0,0 +1,41 @@
+//定时器2
+uint32_t t12_sleep_old_time = 0;
+void MsTimer2_rw1()
+{
+ if (t12_switch == 1) //烙铁启动,打开休眠判断决策
+ {
+ if (bitRead(TIMSK2, TOIE2) == 0)
+ {
+ sleep_count = 0;
+ xp_time_count = 0;
+ MsTimer2::set(1000, sleep_timing); // 1000ms 运行一次
+ MsTimer2::start(); //打开定时器2计数
+ }
+ if (millis() - t12_sleep_old_time > 700)
+ {
+ t12_sleep(); //T12休眠决策
+ t12_sleep_old_time = millis();
+ }
+ }
+ else if (t12_switch == 0)
+ {
+ if (bitRead(TIMSK2, TOIE2) == 0)
+ {
+ sleep_count = 0;
+ xp_time_count = 0;
+ MsTimer2::set(1000, xp_timing); // 1000ms 运行一次
+ MsTimer2::start(); //打开定时器2计数
+ }
+ system_sleep(); //系统休眠决策
+ }
+}
+
+void sleep_timing() //休眠定时任务
+{
+ sleep_count++; //烙铁没动,计数增加
+}
+
+void xp_timing() //息屏定时任务,校准界面不息屏
+{
+ if (display_count != SZJM_JIAOZHUN) xp_time_count++; //烙铁没动,计数增加
+}
diff --git a/v1.03/PID.ino b/v1.03/PID.ino
new file mode 100644
index 0000000..ebd6535
--- /dev/null
+++ b/v1.03/PID.ino
@@ -0,0 +1,176 @@
+//********** PID算法 **********
+//算法来至https://blog.csdn.net/foxclever/article/details/105006205 By foxclever
+void pid()
+{
+ if (t12_switch == 1 && vin_error == 0 && t12_error == 0) //加热开关开启
+ {
+ //计算设定值与平均温度的差值
+ int16_t ek_average = set_temp - t12_temp_average;
+ //平均差值小于3,发出声音提示一下
+ if (ek_average >= -3 && ek_average <= 3 && buzzer_temp_average_state == 0)
+ {
+ buzzer(120, 300);
+ buzzer_temp_average_state = 1;
+ }
+ if (display_count == SZJM_JIAOZHUN)
+ PIDRegulator(t12_ad); //在校准界面时使用T12的ADC作为PID的目标值
+ else
+ PIDRegulator(t12_temp); //在其他界面时使用T12的温度值作为PID的目标值
+ }
+ else
+ {
+ pid_out = 0;
+ lasterror = 0;
+ preerror = 0;
+ t12_temp_read_time = 450;
+ }
+ pwm_1b(pid_out);
+ pid_out_bfb = (pid_out / (pwm_max - pwm_min)) * 100;
+}
+
+void PIDRegulator(float PV)
+{
+ float factor = 0.0; //变积分系数
+ float increment = 0.0;
+ float pError = 0.0, dError = 0.0, iError = 0.0;
+ if (display_count == SZJM_JIAOZHUN) //在校准界面时使用T12的ADC作为PID的目标值 ,计算偏差
+ {
+ if (szjm_jiaozhun_sxxk_count == 1) thisError = sz_adc0 - PV;
+ else if (szjm_jiaozhun_sxxk_count == 2) thisError = sz_adc1 - PV;
+ else if (szjm_jiaozhun_sxxk_count == 3) thisError = sz_adc2 - PV;
+ else if (szjm_jiaozhun_sxxk_count == 4) thisError = sz_adc3 - PV;
+ }
+ else //在其他界面时使用T12的温度值作为PID的目标值 ,计算偏差
+ {
+ thisError = set_temp - PV; //得到偏差值
+ thisError_average = set_temp - t12_temp_average; //得到平均值的偏差值
+ }
+ //规定采样时间
+ if (thisError < -5) t12_temp_read_time = 150;
+ else if (thisError >= -5 && thisError <= 10) t12_temp_read_time = 400;
+ else if (thisError > 10 && thisError <= 30) t12_temp_read_time = 500;
+ else t12_temp_read_time = 800;
+ if (thisError <= 30 && thisError > -15)
+ {
+ if (fabs(thisError) > deadband)
+ {
+ pError = thisError - lasterror;
+ iError = float((thisError + lasterror)) / 2.0;
+ dError = thisError - 2 * (lasterror) + preerror;
+
+ //变积分系数获取
+ factor = get_factor(thisError, errorabsmax, errorabsmin);
+
+ //计算微分项增量带不完全微分
+ deltadiff = d * (1 - alpha) * dError + alpha * deltadiff;
+
+ increment = p * pError + i * factor * iError + deltadiff; //增量计算
+ }
+ else
+ {
+ if ((fabs(set_temp - pwm_min) < deadband) && (fabs(PV - pwm_min) < deadband))
+ {
+ pid_out = pwm_min;
+ }
+ increment = 0.0;
+ }
+
+ pid_out = pid_out + increment;
+
+ /*对输出限值,避免超调和积分饱和问题*/
+ if (pid_out >= pwm_max)
+ {
+ if (thisError <= 0) pid_out = pwm_min;
+ else pid_out = pwm_max;
+ }
+ else if (pid_out <= pwm_min) pid_out = pwm_min;
+
+ }
+ else if (thisError > 30) pid_out = pwm_max;
+ else if (thisError < -15) pid_out = pwm_min;
+ preerror = lasterror; //存放偏差用于下次运算
+ lasterror = thisError;
+}
+
+float get_factor(float ek0, float absmax, float absmin) //变积分系数获取
+{
+ float factor1 = 0.0;
+ factor1 = map(ek0, absmax, absmin, 0.0, 1.0);
+ if (abs(ek0) >= absmax) factor1 = 0.0;
+ else if (abs(ek0) <= absmin) factor1 = 1.0;
+ return factor1;
+}
+
+void pwm_1b(uint16_t val)//自定义PWM,使用相位和频率校正模式,2048级控温
+{
+ //输出通道B 占空比: (OCR1B+1) / (OCR1A+1)
+ //占空比不能大于OCR1A
+
+ if (val >= pwm_max) digitalWrite(t12_pwm_pin, 1);
+ else if (val <= pwm_min) digitalWrite(t12_pwm_pin, 0);
+ else
+ {
+ //pinMode(10, OUTPUT); //pin10连接至B通道
+ //bitWrite(DDRB, 2, 1); //设置pin10为输出
+ //相位和频率校正PWM,分频比64,频率: 16000000/2*256*(OCR1A+1) = 15HZ
+ TCCR1A = B00100001;
+ TCCR1B = B00010100;
+ OCR1A = pwm_max; //从0开始数到0CR1A,0-65535,设置周期和频率
+ OCR1B = val; //用来设置比较器,占空比
+ }
+ //ec_read(); //读取电流
+}
+/*时钟输出 | Arduino输出Pin | 芯片Pin | Pin 名字
+ OC0A 6 12 PD6
+ OC0B 5 11 PD5
+ OC1A 9 15 PB1
+ OC1B 10 16 PB2
+ OC2A 11 17 PB3
+ OC2B 3 5 PD3
+
+ 脉冲生成模式控制位(WGM):用来设置PWM的模式或CTC模式
+ 时钟选择位(CS):设置时钟的预分频
+ 输出模式控制位(COMnA和COMnB):使能/禁用/反相 输出A和输出B
+ 输出比较器(OCRnA和OCRnB):当计数器等于这两个值时,输出值根据不同的模式进行变化
+
+ 快速PWM(0-255 0-255 数完归零)
+ 相位修正PWM(0-255 255-0 数完倒数)
+
+ 8位(定时器0/2)
+ CSn0 001 = 1
+ CSn1 010 = 8
+ CSn2 011= 32
+ CSn3 100= 64
+ CSn4 101= 128
+ CSn5 110= 256
+ CSn6 111= 1024
+ 16位(定时器1)
+ CSn0 001 = 1
+ CSn1 010 = 8
+ CSn2 011= 64
+ CSn3 100= 256
+ CSn4 101= 1024
+
+ COMnA1 COMnB1 = 占空比AB都可控
+ 从0数到2047 0时输出高电平
+ OCRnA 当数到OCRnA,输出低电平,即A的占空比=OCRnA的值
+ OCRnB 当数到OCRnB,输出低电平,即B的占空比=OCRnB的值
+
+ COMnA0 COMnB1 = A当数到头是反相 占空比A50% B可控
+ OCRnA 从0数到OCRnA 0时输出高电平
+ OCRnB 当OCRnA=OCRnB,输出低电平
+ 输出通道B 占空比: (OCR1B+1) / (OCR1A+1)
+ 占空比不能大于OCR1A
+ pinMode(10, OUTPUT); //B
+ bitWrite(DDRB, 2, 1); //设置pin10为输出
+ 快速PWM,分频比64,频率: 16000000/64*(OCR1A+1) = 976HZ
+ TCCR1A = B00100011;
+ TCCR1B = B00011011;
+ 相位和频率校正PWM,分频比8,频率: 16000,000/2*8*(OCR1A+1) = 488HZ
+ TCCR1A = B00100001;
+ TCCR1B = B00010010;
+ 相位校正PWM,分频比256,频率: 16000000/2*256*(OCR1A+1) = 61HZ
+ TCCR1A = B00100011;
+ TCCR1B = B00010100;
+ OCR1A = 2047; //从0开始数到0CR1A,0-65535,设置周期和频率
+ OCR1B = val; //用来设置比较器,占空比*/
diff --git a/v1.03/Sleep.ino b/v1.03/Sleep.ino
new file mode 100644
index 0000000..d71719c
--- /dev/null
+++ b/v1.03/Sleep.ino
@@ -0,0 +1,62 @@
+//********** T12休眠判断决策 **********
+void t12_sleep()
+{
+ if (sleep_state != digitalRead(t12_sleep_pin))//烙铁动了,计数清零
+ {
+ sleep_state = !sleep_state; //状态取反
+ sleep_count = 0; //计数清零
+ if (zjm_sleep_ts == 1)
+ {
+ zjm_sleep_ts = 0; //提示主界面退出显示休眠状态
+ set_temp = sleep_temp_cache;
+ sleep_temp_cache = 0;
+ buzzer_temp_average_state = 0; //准备好到达温度提示声
+ buzzer(150, 300); //提示一下
+ }
+ }
+ if (sleep_count == sleep_time && zjm_sleep_ts == 0) //达到休眠的阈值,进入休眠
+ {
+ EEPROM.put(set_temp_eeprom, set_temp); //自动保存当前设置温度
+ zjm_sleep_ts = 1; //提示主界面显示休眠中
+ buzzer(150, 300); //提示一下
+
+ if (set_temp > sleep_temp) //大于设置的休眠温度
+ {
+ sleep_temp_cache = set_temp; //休眠前将温度记录下来,记录和调温
+ set_temp = sleep_temp; //将温度调至休眠温度
+ }
+ else if (set_temp <= sleep_temp) //小于等于设置的休眠温度,只记录不调温
+ sleep_temp_cache = set_temp; //休眠前将温度记录下来
+ }
+ else if (sleep_count > 1800) //半小时没操作,关闭加热
+ {
+ MsTimer2::stop();
+ set_temp = sleep_temp_cache;
+ sleep_temp_cache = 0;
+ t12_switch = 0;
+ sleep_count = 0;
+ zjm_sleep_ts = 0; //提示主界面退出休眠
+ buzzer(150, 1000); //提示一下
+ }
+}
+
+//********** 系统休眠判断决策 **********
+void system_sleep()
+{
+ if (xp_time_count >= 180) //无加热无操作超过180秒就显示息屏界面
+ {
+ if (xp_time_count - xp_time_count_old > 3) //每隔3秒刷新一次位置
+ {
+ display_count = ZJM;//退出至主界面
+ xp_state = 1; //标记息屏状态
+ xp_x = random(0, 90);
+ xp_y = random(11, 31);
+ xp_time_count_old = xp_time_count;
+ }
+ else if (xp_time_count >= 65530) //防止数值溢出
+ {
+ xp_time_count = 180;
+ xp_time_count_old = 0;
+ }
+ }
+}
diff --git a/v1.03/WDT.ino b/v1.03/WDT.ino
new file mode 100644
index 0000000..507d4a3
--- /dev/null
+++ b/v1.03/WDT.ino
@@ -0,0 +1,54 @@
+//********** 看门狗函数 **********
+void set_wdt_mod(uint8_t mod, uint8_t ii) //模式,超时时间
+{
+ /*
+ WDCE
+ 该位在定时序列中用于更改WDE和预分频器位
+ 要清除WDE位或更改预分频器位,必须将WDCE置1。
+ 一旦写入1,硬件将在四个时钟周期后清除WDCE。
+ 0=16ms,1=32ms,2=64ms,3=128ms,4=250ms
+ 5=500ms,6=1s,7=2s,8=4s,9=8s
+ */
+ if (ii > 9 ) ii = 9;
+ byte bb;
+ bb = ii & 7;
+ if (ii > 7) bb |= (1 << 5);
+ bb |= (1 << WDCE);
+
+ switch (mod) {
+ case 0: //关闭看门狗
+ __asm__ __volatile__ ("wdr"); //看门狗复位
+ MCUSR = 0x00; //看门狗复位标志清零
+ WDTCSR = (1 << WDCE) | (1 << WDE); //打开允许修改使能,并WDE置1
+ WDTCSR = 0x00; //清除所有预分频位
+ break;
+
+ case 1: //打开看门狗,设置复位模式
+ __asm__ __volatile__ ("wdr"); //看门狗复位
+ MCUSR &= ~(1 << WDRF); //MUUSR中的WDRF清零,清除复位标志
+ WDTCSR |= (1 << WDCE) | (1 << WDE); //打开允许修改使能,并WDE置1
+ //设置新的看门狗超时值bb
+ WDTCSR = bb; //8秒时bb=0011 0001
+ WDTCSR |= _BV(WDE); //设置复位模式
+ break;
+
+ case 2: //打开看门狗,设置中断模式
+ __asm__ __volatile__ ("wdr"); //看门狗复位
+ MCUSR &= ~(1 << WDRF); //MUUSR中的WDRF清零,清除复位标志
+ WDTCSR |= (1 << WDCE) | (1 << WDE); //打开允许修改使能,并WDE置1
+ //设置新的看门狗超时值bb
+ WDTCSR = bb; //8秒时bb=0011 0001
+ WDTCSR |= _BV(WDIE); //设置中断模式
+ break;
+
+ case 3: //打开看门狗,设置中断+复位模式
+ __asm__ __volatile__ ("wdr"); //看门狗复位
+ MCUSR &= ~(1 << WDRF); //MUUSR中的WDRF清零,清除复位标志
+ WDTCSR |= (1 << WDCE) | (1 << WDE); //打开允许修改使能,并WDE置1
+ //设置新的看门狗超时值bb
+ WDTCSR = bb; //8秒时bb=0011 0001
+ WDTCSR |= _BV(WDIE); //设置中断模式
+ WDTCSR |= _BV(WDE); //设置复位模式
+ break;
+ }
+}
diff --git a/v1.03/analogRead.ino b/v1.03/analogRead.ino
new file mode 100644
index 0000000..b073734
--- /dev/null
+++ b/v1.03/analogRead.ino
@@ -0,0 +1,153 @@
+//********** 读取电压、电流、温度 **********
+float vin_cache = 0.0;
+uint8_t vin_cache_count = 0;
+
+float tc1047_cache = 0.0;
+uint8_t tc1047_cache_count = 0;
+
+#define cycs 10 //时间平均滤波的采样次数 采样周期 = 采样次数*定时执行任务的时间
+uint8_t t12_adc_error_count = 0; //t12ADC超出检测范围错误计数
+void read_timing() //定时读取电源电压和机内温度
+{
+ if (millis() - vin_read_time > t12_temp_read_time)
+ {
+ read_t12_temp();
+ vin_read_time = millis();
+ }
+}
+void read_timing2()
+{
+ vin_read(); //读取电压
+ tc1047_temp_read(); //读取室温
+ if (szjm_oled_sxxk_count == 1) u8g2.setContrast(oled_ld); //改变亮度
+}
+void read_t12_temp() //定时读取T12的温度
+{
+ float t12_ad_nwe = 0.0; //临时AD
+ digitalWrite(t12_pwm_pin, 0);
+ read_timing2();
+ delay(1);
+ t12_ad_nwe = denoiseAnalog(t12_temp_pin); //读取即时AD
+ //t12_ad_nwe = analogRead(t12_temp_pin); //读取即时AD
+ t12_ad += (t12_ad_nwe - t12_ad) * 0.7; //平滑滤波
+ //if (digitalRead(t12_sleep_pin) == 1) t12_ad += 2; //补偿上拉噪声干扰
+ //计算温度,温度曲线由校准程序自动计算
+ t12_temp = sz_p[3] * t12_ad * t12_ad * t12_ad + sz_p[2] * t12_ad * t12_ad + sz_p[1] * t12_ad + sz_p[0];
+ t12_temp += (tc1047_temp - tc1047_refer); //环境温度补偿
+
+ //记录平均温度
+ t12_temp_average_cache += t12_temp;
+ t12_temp_average_count++;
+ if (t12_temp_average_count == 8)
+ {
+ t12_temp_average = t12_temp_average_cache >> 3;
+ t12_temp_average_cache = 0; //累计缓存温度清零
+ t12_temp_average_count = 0; //计数清零
+ }
+ //运行PID
+ pid();
+
+ //手柄检测及超出测量范围检测
+ if (t12_switch == 0 && t12_ad >= 1020) //无手柄
+ {
+ t12_error = 1;
+ t12_switch = 0;
+ }
+ else if (t12_switch == 1 && t12_ad >= 1020) //超出测量范围检测,延时检测
+ {
+ t12_adc_error_count++;
+ if (t12_adc_error_count >= 8)
+ {
+ MsTimer2::stop(); //停止一次 然后在MsTimer2_rw1()里自动切换定时的中断任务
+ t12_adc_error_count = 0; //清除计数
+ t12_adc_error = 1;
+ t12_switch = 0;
+ }
+ }
+ else if (t12_switch == 1 && t12_ad < 1020)
+ {
+ t12_adc_error = 0;
+ t12_adc_error_count = 0; //清除计数
+ }
+ else t12_error = 0;
+}
+
+void vin_read()
+{
+ /*
+ 串联电阻的中点电压计算公式
+ Eout 中点电压
+ Vcc 输入电压(两端施加电压)
+ R1、R2 两个串联的分压电阻
+ Eout = Vcc * R2/(R1+R2) R1靠近电源 R2靠近地
+ */
+ /*vin = (denoiseAnalog(vin_pin) / 0.1282) * vcc_refer_fl; //计算电源电压 10/68+10=0.1282
+ if (vin < vin_low && vin_low >= 3.3) //电压过低提示
+ {
+ vin_error = 1;
+ t12_switch = 0;
+ }*/
+
+ vin_cache += (denoiseAnalog(vin_pin) / 0.1282) * vcc_refer_fl;
+ vin_cache_count++;
+ if (vin_cache_count >= cycs)
+ {
+ vin = vin_cache / cycs + vin_refer;
+ vin_cache_count = 0;
+ vin_cache = 0;
+ //电压过低提示
+ if (vin < vin_low && vin_low >= 3.3)
+ {
+ vin_error = 1;
+ t12_switch = 0;
+ }
+ else vin_error = 0;
+ }
+}
+
+void tc1047_temp_read() //读取tc1047温度
+{
+ //tc1047_temp = ((denoiseAnalog(tc1047_pin) * vcc_refer_fl) - 0.5) * 100;
+
+ tc1047_cache += ((denoiseAnalog(tc1047_pin) * vcc_refer_fl) - 0.5) * 100;
+ tc1047_cache_count++;
+ if (tc1047_cache_count >= cycs)
+ {
+ tc1047_temp = tc1047_cache / cycs;
+ tc1047_cache_count = 0;
+ tc1047_cache = 0;
+ }
+}
+
+/*uint16_t denoiseAnalog(uint8_t pin)
+ {
+ uint8_t low, high;
+ if (pin >= A0) pin -= A0; //设置端口
+ ADMUX = (0x0F & pin) | bit(REFS0); //设置基准电压为5V,设置端口
+ ADCSRA |= bit (ADEN) | bit (ADIF); //启用ADC,关闭任何挂起的中断
+ set_sleep_mode (SLEEP_MODE_ADC); //在取样时进行睡眠以降低噪音,需要开启ADC中断进行唤醒
+ sleep_mode(); //进入休眠自动启动转换
+ //bitSet(ADCSRA, ADSC); //ADSC 写1启动AD转换
+ while (bitRead(ADCSRA, ADSC)); //等待转换结束
+ low = ADCL;
+ high = ADCH;
+ bitClear (ADCSRA, ADEN); // 禁用ADC
+ return (high << 8) | low; //返回数值
+ }*/
+uint16_t denoiseAnalog (byte port)
+{
+ uint16_t result = 0;
+ if (port >= A0) port -= A0; //设置端口
+ ADMUX = (0x0F & port) | bit(REFS0); //设置基准电压为5V,设置端口
+ ADCSRA |= bit (ADEN) | bit (ADIF); //启用ADC,关闭任何挂起的中断
+ set_sleep_mode (SLEEP_MODE_ADC); //在取样时进行睡眠以降低噪音,需要开启ADC中断进行唤醒
+ for (uint8_t i = 0; i < 16; i++) { // get 32 readings
+ sleep_mode(); // go to sleep while taking ADC sample
+ while (bitRead(ADCSRA, ADSC)); // 等待转换结束
+ result += ADC; // add them up
+ }
+ bitClear (ADCSRA, ADEN); // 禁用ADC
+ return (result >> 4); // devide by 32 and return value
+}
+//ADC中断服务
+EMPTY_INTERRUPT (ADC_vect); // 这里没什么可做的
diff --git a/v1.03/v1.03.ino b/v1.03/v1.03.ino
new file mode 100644
index 0000000..70e08df
--- /dev/null
+++ b/v1.03/v1.03.ino
@@ -0,0 +1,328 @@
+/*项目代码修改自 甘草酸不酸 开源https://github.com/jie326513988/mini-T12
+ * _樱下小渚花田汐_ https://space.bilibili.com/34620092 修改
+ * 编码器控制改为按键控制
+*/
+
+/*
+ 默认支持深圳头,更换其他厂商的头需要自行校准温度曲线
+ 一定要使用我提供的U8g2库,否者无法显示中文和提示内存过大无法编译!!!
+*/
+/*程序更新说明
+ * v1.03
+ 1.增大旋转的音调音量,修改进入和退出设置界面的音调音量
+ 2.降低烙铁唤醒烙铁的灵敏度
+ 3.优化pid,并不是很明显
+ * v1.02
+ 1.新增停止时记录当前的设置温度(休眠时也会自动保存)
+ v1.01
+ 1.调节PID运行间隔
+ 2.降低PWM频率为15HZ,手柄和mos的声音几乎没有了!之前为61HZ,声音还是有一点的。
+ v1.00(此版本需要更新U8G2库)
+ 1.缩小一点点的内存
+ 2.修复T12 ADC HIGH报警时无法进入息屏的BUG
+ v0.99
+ 1.开机就加热的模式下PWM动画会向下鬼畜,所以将开机过渡动画改为向上过渡,这样就看不到鬼畜啦
+ 2.开机加热模式的选择改为按下确认键就切换模式,取消原实心选框旋转选择
+ 3.添加只有在主界面下才能清除T12 ADC 超出读取读取范围的提示
+ v0.98
+ 1.温度曲线适配最新版本的PCB
+ v0.97
+ 1.优化校准界面的PID策略
+ v0.96
+ 1.优化内存
+ v0.95
+ 1.平滑的开机过度效果
+ v0.94
+ 1.曲线拟合改为3项式,以更加准确的绘制温度曲线
+ v0.93
+ 1.动态PID
+ 2.取消电流传感器,主界面取消电流显示改为显示PWM百分比
+ 3.设置菜单增加曲线拟合校准
+ 4.休眠计时和息屏倒计时改用定时器2计时
+ 5.息屏显示,无加热无操作3分钟后进入,息屏时显示环境温度
+ 6.开机提示音和开机画面
+ 7.休眠时自动保存当前设置温度到eeprom
+ 8.待机功耗8.8ma 息屏待机功耗6.4ma
+*/
+/*
+ 按键功能定义
+ 长按操作(5下短音最后1下长音)
+ 主界面:进入设置界面
+ 其他界面:退出至主界面(校准界面除外)
+ 双击操作(2下短音)
+ 主界面:加热或停止状态切换
+ 其他界面:无
+ 单击(1下短音)
+ 主界面:无
+ 设置界面:进入二级菜单
+ 二级菜单:切换数值更改的选中状态(空心选框或实心选框),或确认更改数值,无选框状态则退出至一级菜单
+ 菜单选项
+ PID
+ P
+ I
+ D
+ 休眠
+ 休眠时间
+ 休眠温度
+ 屏幕
+ 屏幕亮度
+ 屏幕方向
+ 编码器方向
+ 电源
+ 基准电压
+ 电源电压
+ 低压报警
+ 校准
+ 调节曲线1段温度
+ 调节曲线2段温度
+ 调节曲线2段温度
+ 调节曲线3段温度
+ 运行曲线拟合并校准曲线
+ 烙铁
+ 冷端补偿
+ 开机加热
+ 重置
+*/
+#include
+#include //掉电数值存储库
+#include //休眠库
+#include //屏幕驱动库
+#ifdef U8X8_HAVE_HW_I2C
+#include
+#endif
+U8G2_SSD1306_128X32_UNIVISION_2_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
+
+//********** 版本号 **********
+#define version "v1.03"
+//********** 引脚定义 **********
+#define SW 4 //按下 ,可更改其他引脚
+#define CLK 3 //旋转 ,不可更改
+#define DT 2 //旋转 ,可更改其他引脚
+//除了10号脚不能改,其他都可以改,但模拟引脚只能改模拟引脚(休眠引脚除外)
+#define t12_sleep_pin A0 //t12休眠 模拟读取引脚
+#define t12_temp_pin A2 //t12温度 模拟读取引脚
+#define tc1047_pin A3 //机内温度 模拟读取引脚
+#define vin_pin A6 //电源电压 模拟读取引脚
+#define t12_pwm_pin 10 //t12加热 pwm输出引脚,定死不可更改
+#define buzzer_pin 8 //蜂鸣器 输出引脚
+//************ EEPROM地址定义 ************
+uint8_t auto_get = 0; //自动刷写eeprom的状态存储,判断是否首次开机 0-首次 1-非首次
+#define auto_get_eeprom 0 //自动刷写eeprom的状态存储,1位
+#define p_eeprom 1 //p地址,4位
+#define i_eeprom p_eeprom+4 //i地址,4位
+#define d_eeprom i_eeprom+4 //d地址,4位
+#define sleep_time_eeprom d_eeprom+4 //休眠时间,4位
+#define sleep_temp_eeprom sleep_time_eeprom+4 //休眠温度,1位
+#define oled_ld_eeprom sleep_temp_eeprom+1 //OLED亮度,1位
+#define vcc_refer_eeprom oled_ld_eeprom+1 //基准电压,4位
+#define vin_refer_eeprom vcc_refer_eeprom+4 //电源电压校准值,4位
+#define t12_kj_jr_eeprom vin_refer_eeprom+4 //是否开机就加热?,1位
+#define vin_low_eeprom t12_kj_jr_eeprom+1 //输入电压低压报警阈值,4位
+#define tc1047_refer_eeprom vin_low_eeprom+4 //冷端补偿校准值,1位
+#define oled_fx_eeprom tc1047_refer_eeprom+1 //OELD方向,1位
+#define xzbmq_fx_eeprom oled_fx_eeprom+1 //编码器旋转方向,1位
+#define sz_temp0_eeprom xzbmq_fx_eeprom+1 //深圳头曲线温度校准1段,4位
+#define sz_temp1_eeprom sz_temp0_eeprom+4 //深圳头曲线温度校准2段,4位
+#define sz_temp2_eeprom sz_temp1_eeprom+4 //深圳头曲线温度校准3段,4位
+#define sz_temp3_eeprom sz_temp2_eeprom+4 //深圳头曲线温度校准4段,4位
+#define set_temp_eeprom sz_temp3_eeprom+4 //t12设置温度,4位
+//T12及温度相关
+boolean t12_switch = 0; //T12加热开关
+boolean t12_kj_jr = 1; //是否开机就加热? 0-否 1-是
+
+float t12_ad = 0.0; //T12即时ADC值
+uint16_t t12_temp = 0.0; //T12即时温度
+boolean t12_error = 0; //手柄未接提示
+boolean t12_adc_error = 0; //温度超出测量范围
+uint16_t set_temp_max; //自动计算设置的温度最大值
+uint16_t set_temp_min; //自动计算设置的温度最小值
+
+int16_t t12_temp_average_cache = 0; //记录采集温度,缓存用
+int16_t t12_temp_average = 0; //8次内采集到的平均温度,显示用
+uint8_t t12_temp_average_count = 0; //平均温度采集计数
+boolean buzzer_temp_average_state = 0; //到达温度提示声
+
+//float tc1047_ad = 0.0; //tc1047ADC值
+float tc1047_temp = 0.0; //tc1047温度,机内温度
+int8_t tc1047_refer = 30; //T12环境参考温度校准值
+
+float vcc_refer = 4.95; //参考电压,稳压芯片输出的电压是多少就填多少
+float vin = 0.0; //电源电压
+float vin_refer = 0.0; //输入电压校准值
+float vin_low = 3.3; //低压报警阈值
+boolean vin_error = 0; //低压报警提示
+#define vcc_refer_fl vcc_refer/1023.0 //参考电压每级分量
+
+uint32_t xzbmq_time = 0; //编码器消抖对比时间
+uint32_t temp_read_time = 0; //定时读取温度对比时间
+uint32_t vin_read_time = 0; //定时读取输入电压时间
+uint32_t t12_temp_read_time = 450; //定时T12温度采样时间
+
+boolean buzzer_state = 0; //蜂鸣器准备状态
+uint16_t buzzer_time; //蜂鸣器响的时间
+uint16_t buzzer_count; //蜂鸣器响的次数
+boolean buzzer_szjm_state = 0; //进入设置界面的长音状态
+boolean buzzer_zjm_state = 0; //退出至主界面的长音状态
+
+boolean zjm_sleep_ts = 0; //主界面休眠提示 0-无 1-休眠中
+uint16_t sleep_time = 180; //进入休眠的时间阈值,单位秒
+uint8_t sleep_temp = 200; //休眠时的温度,单位摄氏度
+boolean sleep_state = 0; //休眠引脚状态 0低电平 1高电平
+uint16_t sleep_count = 0; //休眠计数
+uint16_t sleep_temp_cache = 0; //休眠前的温度缓存
+
+uint8_t oled_ld = 50; //OLED亮度
+boolean oled_fx = 0; //OLED方向 0-不旋转,横向显示 1-旋转180度
+boolean xzbmq_fx = 0; //编码器方向 0-顺加逆减 1-顺减逆加
+boolean hfccsz_state = 0; //恢复出厂设置 0-NO 1-YES
+
+boolean xp_state = 0; //息屏状态 0-无 1-息屏
+uint16_t xp_time_count = 0; //息屏计数
+uint16_t xp_time_count_old = 0; //上一次时间计数
+int8_t xp_x = 0; //息屏随机变化位置X
+int8_t xp_y = 0; //息屏随机变化位置Y
+int8_t xp_x_old = 50; //上一次息屏随机变化位置X
+int8_t xp_y_old = 21; //上一次息屏随机变化位置Y
+
+//深圳头曲线拟合的4段ADC
+#define sz_adc0 10
+#define sz_adc1 350
+#define sz_adc2 650
+#define sz_adc3 940
+uint16_t sz_temp[4] = {49, 262, 391, 486}; //深圳头曲线拟合的4段温度 Y
+float sz_p[4]; //深圳头曲线拟合的4个系数 P
+//********** 菜单标志位相关 **********
+#define ZJM 1 //主界面
+#define SZJM 2 //设置界面
+#define SZJM_PID 3 //PID设置界面
+#define SZJM_SLEEP 4 //休眠设置界面
+#define SZJM_OLED 5 //OLED设置界面
+#define SZJM_POWER 6 //电源设置界面
+#define SZJM_JIAOZHUN 7 //校准设置界面
+#define SZJM_LAOTIE 8 //烙铁头设置界面
+
+uint8_t display_count = 1; //默认要显示的界面
+boolean dec_state = 0; //小数点输入状态 0关闭 1开启
+uint8_t qj_ca_count = 0; //全局长按计数
+
+boolean szjm_kxxk_L = 0; //设置界面空心选框 顺时针转
+boolean szjm_kxxk_R = 0; //设置界面空心选框 逆时针转
+int8_t szjm_kxxk_count = 0; //设置界面空心选框
+
+int8_t szjm_pid_kxxk_count = 0; //pid界面空心选框
+int8_t szjm_pid_sxxk_count = 0; //pid界面实心选框
+
+int8_t szjm_sleep_kxxk_count = 0; //pid界面空心选框
+int8_t szjm_sleep_sxxk_count = 0; //pid界面实心选框
+
+int8_t szjm_oled_kxxk_count = 0; //oled界面空心选框
+int8_t szjm_oled_sxxk_count = 0; //oled界面实心选框
+
+int8_t szjm_power_kxxk_count = 0; //电源设置界面空心选框
+int8_t szjm_power_sxxk_count = 0; //电源设置界面实心选框
+
+int8_t szjm_pwm_kxxk_count = 0; //PWM界面空心选框
+int8_t szjm_pwm_sxxk_count = 0; //PWM界面实心选框
+
+int8_t szjm_laotie_kxxk_count = 0; //烙铁头设置界面空心选框
+int8_t szjm_laotie_sxxk_count = 0; //烙铁头设置界面实心选框
+
+int8_t szjm_jiaozhun_kxxk_count = 0; //烙铁头设置界面空心选框
+int8_t szjm_jiaozhun_sxxk_count = 0; //烙铁头设置界面实心选框
+//********** 动态调参PID **********
+float p = 25.0; //比例系数
+float i = 8.7; //积分系数
+float d = 2.6; //微分系数
+
+#define p_jz 12.0 //校准界面用的 比例系数
+#define i_jz 2.2 //校准界面用的 积分系数
+#define d_jz 1.2 //校准界面用的 微分系数
+
+uint16_t set_temp = 320; //设置温度
+int16_t thisError = 0; //本次误差
+int16_t thisError_average = 0; //平均值的误差
+int16_t lasterror = 0; //前一拍偏差
+int16_t preerror = 0; //前两拍偏差
+const int8_t deadband = 0; //死区
+int16_t pid_out = 0.0; //PID控制器计算结果
+uint8_t pid_out_bfb = 0.0; //输出值0-100%
+const float pwm_max = 2047.0; //输出值上限
+const float pwm_min = 0.0; //输出值下限
+const float errorabsmax = 2000.0; //偏差绝对值最大值
+const float errorabsmin = 50.0; //偏差绝对值最小值
+const float alpha = 0.2; //不完全微分系数
+float deltadiff = 0.0; //微分增量
+
+void setup()
+{
+ //***** 首次开机自动刷写eeprom
+ eerpom_auto();
+ //***** 编码器配置
+ pinMode(SW, INPUT_PULLUP); //按下
+ pinMode(CLK, INPUT_PULLUP); //相位A
+ pinMode(DT, INPUT_PULLUP); //相位B
+ pinMode(t12_temp_pin, INPUT); //t12温度
+ pinMode(t12_sleep_pin, INPUT_PULLUP); //t12休眠
+ pinMode(vin_pin, INPUT); //电源电压
+ pinMode(tc1047_pin, INPUT); //机内温度
+ pinMode(buzzer_pin, OUTPUT); //蜂鸣器
+ pinMode(t12_pwm_pin, OUTPUT); //t12加热,不可更改
+
+ digitalWrite(t12_pwm_pin, 0); //默认关闭
+ digitalWrite(buzzer_pin, 0); //默认关闭
+ //***** OLED初始化
+ u8g2.begin();
+ u8g2.enableUTF8Print();
+ u8g2.setContrast(oled_ld); //设置亮度1-255
+ //u8g2.setBusClock(400000); //设置I2C通讯速度默认MAX400000
+ //u8g2.setPowerSave(0); //0开启屏幕 1关闭屏幕
+ if (oled_fx)u8g2.setDisplayRotation(U8G2_R2); //旋转180度
+ else u8g2.setDisplayRotation(U8G2_R0); //0度,默认方向
+ //***** ADC初始化
+ //ADCSRA |= bit (ADPS0) | bit (ADPS1) | bit (ADPS2); // 设置ADC分频 128倍
+ ADCSRA |= bit (ADPS1) | bit (ADPS2); //设置ADC分频 64倍
+ ADCSRA |= bit (ADIE); // 开启ADC中断
+ interrupts(); // 开启全局中断
+ //***** 打开外部中断
+ attachInterrupt(digitalPinToInterrupt(CLK), xuan_zhaun, FALLING); //PIN3,选择编码器 旋转,下降沿触发 FALLING
+ attachInterrupt(digitalPinToInterrupt(DT), xuan_zhaun, FALLING);
+
+ //***** 播放开机画面和开机声
+ kj_display();
+ buzzer(600, 200); //时间,次数
+ buzzer_run();
+ buzzer(400, 300); //时间,次数
+ buzzer_run();
+ buzzer(130, 1000); //时间,次数
+ buzzer_run();
+ //读取电压/温度
+ for (uint8_t i = 0; i < 10; i++) //读取初始值
+ {
+ vin_read();
+ tc1047_temp_read();
+ read_t12_temp();
+ }
+ //***** 开启看门狗
+ //set_wdt_mod(1, 7);
+ //***** 是否开机加热
+ if (t12_kj_jr == 1) t12_switch = 1;
+ else t12_switch = 0;
+ //***** 开机计算曲线拟合系数
+ qxnh_run();
+ //Serial.begin(9600); //打开串口调试
+}
+
+void loop()
+{
+ //uint32_t time0 = micros();
+
+ __asm__ __volatile__ ("wdr"); //看门狗复位
+ an_xia(); //编码器按下决策
+ draw_page(); //刷新屏幕
+ buzzer_run(); //蜂鸣器运行决策
+ read_timing(); //定时读取任务
+ MsTimer2_rw1(); //定时器2任务
+
+ //uint32_t time1 = micros();
+ //Serial.println(time1 - time0);
+}
diff --git a/v1.03/v1.03.ino.standard.hex b/v1.03/v1.03.ino.standard.hex
new file mode 100644
index 0000000..a7b204e
--- /dev/null
+++ b/v1.03/v1.03.ino.standard.hex
@@ -0,0 +1,1999 @@
+:100000000C94A3080C94F0260C94C9260C94CB08ED
+:100010000C94CB080C94CB080C94CB080C94CB0814
+:100020000C94CB080C9436280C94CB080C94CB0879
+:100030000C94CB080C94CB080C94CB080C94CB08F4
+:100040000C947F260C94CB080C94CB080C94CB0812
+:100050000C94CB080C94A8280C94CB080C94CB08D7
+:100060000C9417270C94CB080000000024002700F4
+:100070002A0000000000250028002B0000000000DE
+:1000800023002600290004040404040404040202DA
+:100090000202020203030303030301020408102007
+:1000A0004080010204081020010204081020000012
+:1000B0000008000201000003040700000000000027
+:1000C00000005D0003020303010405070800FF07A9
+:1000D000FF0700012E025B0371200540A4002107E9
+:1000E000799418A20022075BA6482C01230E7DB448
+:1000F0002925C9A05406A5942400240B7DB4CA0662
+:100100007110072D02250A7FC44EB2B45B1203267C
+:100110000C7EBCD1A2362D4AB46809270559961821
+:1001200028087BA44A4AB50229097BA4C84A95122B
+:10013000002A0CEFC4C92AD130444956012B0AEDDC
+:10014000B40AA3410A23002C07DA9B4914002D05A9
+:10015000CEBD382E055194102F077FC44EFB0C30B6
+:10016000097DB459326FC90231097DB4CAC44E83C6
+:1001700000320A7DB459B2306B1B04330C7DB418C5
+:10018000D23019C2705000340C7DB4CBA4A4940CAE
+:100190005A9800350A7DB4B8AEA1962C00360C7D75
+:1001A000B459327148322D590037097DB418C4ACA6
+:1001B000D804380C7DB459322D59322D5900390CE0
+:1001C0007DB459322D19422D59003A06E194880226
+:1001D0003B07F29B4913053C077CAC8B1A1B3D0780
+:1001E0005DB518D4413E087CAC089BDA003F0B7D1E
+:1001F000B459B230AB431100400F7FC4199454522C
+:10020000948A32ECC0A000410B7DB459326D183293
+:100210005B00420D7DB418924C1B944C1B140043A0
+:10022000097DB419C4AE4300440A7DB41892CCDBF6
+:10023000A000450B7DB438864312868300460A7DB4
+:10024000B4388643121601470C7DB4593231193245
+:100250002D5900480A7DB4C86CC390D9024906796B
+:100260009438044A097DB4ECA8250B004B0C7DB4EE
+:10027000C8A4A4A42551250B4C087DB4087B1C04FC
+:100280004D0B7FC448B7A52245AA354E0C7EBC084D
+:10029000372592126D14034F097DB459326FC9028C
+:1002A000500B7DB418924C1B94B008510B7DB4597F
+:1002B0003297448A9400520C7DB418924C1B94528D
+:1002C000250B530A7DB4593275D5920554097DB476
+:1002D00018A4B0270055097DB4C87C4B16005609F8
+:1002E0007DB4C8BC25B508570B7FC4489D22A5B274
+:1002F000AD01580B7DB4C8B4A456A96901590A7D53
+:10030000B4C86C492D2C015A097DB418C4ACE32043
+:100310005B087BA418A24E035C0E7FC4C8811CC876
+:10032000811CC8811C085D087BA4983A0D015F06FA
+:100330004FC43804610A6DB45993414B8600620B77
+:1003400075B408C321C9B4410163086CAC19B2E2A9
+:1003500000640A75B4AC0C9A960C01650A6DB45928
+:10036000B241498700660A74AC52A221C94A0067AB
+:100370000BF5B359322D19C26401680A75B408C36C
+:1003800021C96C01690771944886006A08FBA34A79
+:10039000A3D2026B0974ACC84A43D2146C06729C97
+:1003A000507A6D0B6FC4B84491144991546E086D26
+:1003B000B41892CC2D6F096DB459325BB200700B3A
+:1003C000F5B318924C1B943004710AF5B319342D0F
+:1003D00019C20272096DB418924C2C0273086DB4E4
+:1003E00019D48302740A75B48A0629AC26007508EC
+:1003F0006DB4C8DC922176096DB4C86C492D0277C2
+:100400000C6FC48822299222A9320C78096DB4C8D5
+:10041000925AA516790BF5B3C86CC910260B007A51
+:10042000086DB418B4B6417B0A7CAC52B228CC42F9
+:10043000017C06799438047D0A7CAC10B330CA1272
+:10044000097E07D6BD912C0000000004FFFF0000CC
+:100450001203040304040101050807000007000754
+:10046000000000000000D7200788E3C711002A0D14
+:1004700088E394109AB919929087012B0B88E307AF
+:100480001213321293052C0988E3472D2625042DDB
+:100490000888E347630F0A2E0888E3C74C0D002F36
+:1004A0000A88630F93D2591800301188E32C919178
+:1004B00090919091909190112901310A88E3951AB9
+:1004C000D3910500320D88E32C911193A19112BBB9
+:1004D00000330E88E32C911193A1939011290134DC
+:1004E0000D8863A59110D1C995980800350D8863D2
+:1004F000BC10B3139390112901360F88E32C91910E
+:100500001033919190112901370B8863BC9091525F
+:10051000A60D00381088E32C9191901129919190AB
+:10052000112901390F88E32C919190113193901189
+:1005300029013A0A88E30712131793050000000403
+:10054000FFFF000010000302050501040614160059
+:10055000FC12FA12FA00000000024D2005004414BB
+:100560002A1EAD6DB7F35299929E14C7A46DD08622
+:100570001D1CB6414B1A15A7A4A7A532AF002C101D
+:1005800027253483925A132DAA4559126A002E0B3F
+:10059000A7443483925A9341012F2854C6FA8441C8
+:1005A00027A4391AE7609CA375B48ED6D13A5A476E
+:1005B000EB681DADA375B48EC63918E7689D30E8A9
+:1005C00004303054C69AC3B38E6A39A94E4A726059
+:1005D000C801398CD53855E3548D53354ED538552F
+:1005E000E3540E631D187220C9497552A6A3F2F098
+:1005F00008312048C674431626A99CA4499AA449E8
+:100600009AA4499AA4499AA4499AA4499AA4D1A01F
+:1006100000323054C65AC3C79C12E5B424A725F152
+:1006200020276918478318E7609C83710EC6391824
+:10063000E7609C83718EC9C329A7E9449D980CBFCC
+:1006400000333654C67AC3839A13B29C94E4B4241C
+:100650001ED6248DC368D08630C77220077320074A
+:1006600073240787341A742055E3541E669D98E45A
+:10067000A42C27A4C3830634325346FAD830E4604E
+:100680000EE4508EE4480EE5408EC569AB1AA649CB
+:100690009AA5511AA5599AC483BAD3749A4E4B8617
+:1006A00083AA83698ED6E14102353053463AC307A7
+:1006B00025A7E9349D260F0725CDD178B8E5142567
+:1006C000A725C36B0E87391C0E430E84EA30A43A6B
+:1006D0002DC9497542383C4800363054C67AC3C7E4
+:1006E0009C12E5A424A725F1F092E6703C1CB29C74
+:1006F00054A725F130AB71AAC6A91AA7F230EBC4F2
+:1007000024276539211D1E3400372C54C63AC32FC7
+:10071000395127EAC46478CEC13807E31C8C7330A2
+:10072000CED13A5A87D31CADC3698ED6E13487D374
+:100730009C30E81000383154C67AC3839A13B29CB7
+:1007400054275587350AE3302B6769366C718ED68E
+:1007500009593AAC491AA76A9CCAC3AC13939C9432
+:10076000E5847478D000392E54C67AC3839A13B2C4
+:100770009C94E4447998D53855E3548D5379987511
+:100780006292D3A2E13587D3E1AB4E4B725A9413F8
+:10079000C4E141043A12C7453483925A9341E73485
+:1007A00028A93519140000000004FFFF00008C0088
+:1007B000030204040304050C0E00FD09FD0AFE01FA
+:1007C0007B0303046C200500440B2107A1BF8B436E
+:1007D000222207347D8BC814230FB6BC9BA89761D7
+:1007E000897A1996A817002410B5BDAB6CA9289971
+:1007F000A82551A254B608251197449C508992B659
+:10080000282D654953222600261097442C31CAA270
+:100810002C492B6D51264D01270631FE8A01280BEC
+:10082000C3B6AB244AA2DEA22C290CC3B68B2CCAB9
+:10083000A25EA224022A0E774CBC30A94DC3106DD3
+:100840004931032B0B77CCBBB8360C595C032C0811
+:1008500042B58A2151002D0616E48B032E0622C5CF
+:100860008A212F0EC6B4DB621AA6611AA6619A020B
+:10087000300C96C49B2109FD980C09003109954460
+:100880008BB19F0601320B96C49B2109C5BE0E0396
+:10089000330E96C49B2109D3D29C8AC99000340F91
+:1008A00096C43B2D89BA6449960C639A00350E961E
+:1008B000C48B439A0E729A8AC99000360F96C49BD5
+:1008C0002109D564D14463322400370B96C48B636D
+:1008D0001AA6C5B406380F96C49B21098DC9908409
+:1008E000C6644800390F96C49B21098DC9A0A66231
+:1008F0003224003A08724E8B211E023B09923E8B35
+:10090000211E12053C08B6B4DBB0E71E3D0846D4F4
+:100910008B3B3A0C3E09B6B48BB8C75E013F0FA6BD
+:10092000BC9B2109C53413D31C4C23004014A7449D
+:10093000ACAD92485A22294A45A9488992651300CC
+:10094000411098C43C598DC2280BA3301A96580EFA
+:10095000420D96C48B41098DC3121A8705430B962D
+:10096000C4AB2109D3CEF110440D97448C410A93B6
+:10097000D4C7649000450C96C48B435A1D94B43A76
+:100980000C460B96C48B435A1D94B415470F9744DD
+:10099000AC210AE5DA90AA49180D02480A97448C5E
+:1009A000D475B8BA06490993448A25EACB004A08A7
+:1009B000C32CAAFED3024B1096C48B504BA24A26DE
+:1009C0002659544BC2004C0996C48BB45F87014D25
+:1009D0000F98C40C7108972851A244F26C0E4E1166
+:1009E00097440C71543225932229D2122D11054FB0
+:1009F0000C9744ACAD927A4DB26C02500C96C48BFD
+:100A000041091D8725AD02510DA73CACAD927A4D31
+:100A1000B26C0704520F96C48B41098DC312D59254
+:100A20002C0903530F96C49B2109D578885331199B
+:100A30001200540A97448C4316F71B00550B974439
+:100A40008CD4AF49964D00560F97448CD49A64517C
+:100A500056099334CE00571A9B448E3014432DC947
+:100A60009228892A5912255912255992A5611A01ED
+:100A7000580E97448C544DB24A5AC92AA91A590C97
+:100A800097448C34C92A69DC1B005A0B97448C4369
+:100A90009CF67918025B09C3BE8B21EA9F065C0CA9
+:100AA000A5C58B300DD3300DD3305D09C3BE8BA9E6
+:100AB0007F1A025E0835FDAB2CA9055F0616BC8BBC
+:100AC00003600733F60B290B610C76C49B214E861D
+:100AD000D1A62C01620DA6C48BB465D144E3A62C2B
+:100AE00000630975449B41EC3A04640BA6C4DB9691
+:100AF000451BDD9425650E76C49B2109C56150C355
+:100B0000644800660BA4C49A21CB06AD3700670E7B
+:100B1000A6AC9B451BDD9425AD0C0900680BA6C453
+:100B20008BB465D1448F0169089144896418026AC5
+:100B300009C2AC992CE917056B0EA5448BB04D4A40
+:100B40004A5A1255B2006C07A1448987006D10798A
+:100B5000448D4452245BA6655AA6655A016E0A76F6
+:100B6000C48B64D1448F016F0C7744ACAD925A931F
+:100B70002C9B00700DA6AC8B64D144E3A62C6915A8
+:100B8000710BA6AC9B451BDD94256D720A74C48A5B
+:100B90006488B26E00730B75449B2553572D590022
+:100BA000740B94C49A2C1A92ACA300750976C48B6A
+:100BB000D0376509760E77448C34C9A2AC12266909
+:100BC0009C01771079448D2CD32A9D92A6A4AD98D0
+:100BD0004500780B75448B4C4B6A959A167910A793
+:100BE0002C8C544DB228AB84491AA771087A0A7527
+:100BF000448B41CC3A0E027B0CD3B6AB24EA12658F
+:100C0000515B007C06C1BF8B0F7D0CD3B68B2CEAE9
+:100C10001625514B047E0935DD9B2CA9250080113A
+:100C2000B63C3B2D4AD27090C2414AE328530000A3
+:100C3000000004FFFF210317B9BD9E1C48A2A9169E
+:100C4000E6408EE4488EE4508E64E9024EAE1CCC41
+:100C5000BCEE74784BD361C829C341C9A1241AA43E
+:100C600030CB812C0EA3441E4F111DCCBCBE3A903C
+:100C7000C5619C0C432456B2355BA3A41825C5243A
+:100C8000AA69A530044F4E1BCCBCBE544C8634AA76
+:100C90004645A99644C310B546D5A897A668923A8A
+:100CA000505C1DCCBCBE3A10A6C9304839260D4B4D
+:100CB00029CC92619092388A862DEDB601507F1F23
+:100CC000CCBCBE24AA45492DAD0C83A2C44A346CC9
+:100CD00039980C8314C659CB3048D500517319CBC1
+:100CE000BCAEB49603493A9C732C1D0E6A0E25398E
+:100CF00090A5251D1051B71CCCBCEE3455B3288CE3
+:100D0000C250CAA4304D8621D281AC14866A1DCD52
+:100D10000051C622CCBC8E3049B3284C9261C89297
+:100D2000284DA4341A162D0AB361CAA2308BC26CA6
+:100D300018D21852A024CCBCBE1CCC916148862C81
+:100D40004AA22C4AA22C4AA22C4AA25A12D592A8F4
+:100D5000964449980C9A54538B1BCCBCAEE110E5D9
+:100D600060398CC33819862C8CC3242C55A36A187F
+:100D70000D0754111BCABDCE1C8987838EE88834A9
+:100D80004452492A4943A42372A203090057FA1A7C
+:100D9000CBBCBEDA70D0CA839CC5839C65C3416A54
+:100DA0005206454D8783005C4F1DCCBCAEE19603D7
+:100DB000D9704BC252753844AD5175382459144618
+:100DC0005929CC005E551CCBBCBEDA70D0AAC3102A
+:100DD000A6E1308449160D07A96938488D512201D2
+:100DE0005EA61ECCBC7E201E0E512D1C0E512D8CDD
+:100DF0000631079361C8A2AC9884E1166D035F00C9
+:100E00001CCCBC9EE190663990E540960359363C77
+:100E1000663990C5611CA6C53803624B18CBBCEE81
+:100E2000211A742CC7E2E19C63E97050732C47EAE5
+:100E3000500C62A522CCBCAE68D8A2308BC264989C
+:100E4000C42847A261534AC99444599414A35A121E
+:100E500025B5CC0063A51FCCBCAEB4340C515619DB
+:100E6000A4248C86214A5365388451560A432D099F
+:100E7000932C3365B917CCBCDE1C4D87C71CCCC185
+:100E8000610ED38E711626591C0265CB22CCBCAEE6
+:100E90003007B27078CA726019A6248B2AAD4965F2
+:100EA00048A2A41825C548D1A2241A0265F61CCC74
+:100EB000BC7E281AD2A81A45C3214AA321C9A2FE82
+:100EC0006B34A4512DC9B10C672A18CBBCDE1C8B26
+:100ED00087738EA5C341CDA11D48AA5149CBD41417
+:100EE000673A21CCBCAE1CCC86308BA24189C22C87
+:100EF000CAA69A52AA3455B2288CB224AA255112F5
+:100F00000E67C41ECCBCAE1C8C86214AB3E1A993EB
+:100F100012552C15254A2A4AA449D5A81A15056840
+:100F2000211BCCBCAE304E4BC34B146635254D94C3
+:100F300052A5A912AA8D491869026E2921CCBC9E1E
+:100F40006C10A32C0706A9925592418CB2300793DE
+:100F50006148A4A4A9D254694A86036E9025CCBCEA
+:100F60009E6818A424CB8128CC9241AA649564D0B1
+:100F7000925A251914290B93282925A58A1249016B
+:100F800070D922CCBCAE2C07B2414B6A49A23425A1
+:100F900069968449986C5236684D49944595414903
+:100FA000B30470ED21CCBCAE2C07B2744806318B73
+:100FB00042458AB6288C9216258A7438896A514B24
+:100FC000165500753519CBBDCE1C8B875356CA4AB2
+:100FD000C3292B65A5E112A6619A0E03772026CCC2
+:100FE000BCDE611992308992308992611992288B06
+:100FF00092288B92E1A044599444599464C9A06802
+:101000006A017AEF21CCBC9E388D4A831255874104
+:10101000CAA1241986A41647C310559A86A4B225DE
+:10102000ADA1007F6E1BCCBC9EE110751A0E713C09
+:101030003CE6D0308871384861368471343C88652C
+:1010400018CCBC9E38AD0D5A1CA6A99864493446EC
+:101050004A2DAAF61B008B661DCCBC9E6149A36875
+:101060004886A54F61D26938E89461C869C3905633
+:101070008721028F6C1DCCBCAEB46D50062D4C93F5
+:101080002C4D92E12547A2411C93214BD2502D01BA
+:101090008FC71FCCBC9E1C08E33019061DCA812CCB
+:1010A000DAA2308BC238AC846998E448360C0290DE
+:1010B0000620CCBC9EAC982569320C3A9023516531
+:1010C000896AC9306449540BE32C4ECAD93008915F
+:1010D000CD1ACBBC7E401B76281D0E52E3308451C6
+:1010E000711872201ECEE9701094C11DCCBC9E38C0
+:1010F000AC8443524B076598D2A6E12D0D933089FD
+:101100009250CA4A690095F421CBBC9E6818A21C73
+:10111000D0216990A42C92B2481A24298BA42C9235
+:10112000064907121D4900987A1BCCBC9E2C1994C5
+:10113000B64A294C2A83D22DE9FFFFFF298C9262FF
+:1011400092050000A92811241FBECFEFD8E0DEBF12
+:10115000CDBF13E0A0E0B1E0E2E8FAE702C00590FD
+:101160000D92A035B107D9F726E0A0E5B3E001C0A4
+:101170001D92AF36B207E1F718E0C3EAD8E004C029
+:101180002197FE010E94E23BC23AD107C9F70E94B3
+:1011900052290C943F3D0C940000662329F06A30DC
+:1011A00019F0862F90E008958FEF9FEF0895CF926A
+:1011B000DF92EF92FF920F931F93CF93DF93EC0197
+:1011C000842F8770E1E0F0E0082E01C0EE0F0A9452
+:1011D000EAF73E2F7E0193E7E90EF11CD7019C91BF
+:1011E00010E0923018F41E2F913029F150E0487F22
+:1011F000E8ADF9ADC880D980D60150969C91949FF6
+:101200006001959FD00C11246C0D7D2D711DDF01A7
+:10121000A60FB71F011115C08C91812B83278D93C9
+:101220002150D1F7DF91CF911F910F91FF90EF9057
+:10123000DF90CF90089530E0D9CF110F330F2223E4
+:1012400089F39C91912B93279C938F5F87702150FA
+:101250008111F3CF9CADA90FB11DF70190819230A0
+:1012600028F4913009F031E011E0E9CF31E0E7CF27
+:1012700080E0089580E00895CF93DF93CEEED5E02F
+:101280009BAF8AAFDC01ED91FC9182EF95E009956F
+:10129000EAADFBAD0280F381E02D82EF95E0DF91B6
+:1012A000CF910994809365060895CF93DF9348EE1C
+:1012B00053E060E070E04093DE045093DF046093FD
+:1012C000E0047093E1049093DD048093DC04A0E7D4
+:1012D000B0E08C918E7F8C93E0EBF0E080818C7F8E
+:1012E0008083E1EBF0E08081877F8083C6EBD0E0F4
+:1012F00088818F7D88838C918D7F8C9380818460A1
+:10130000808380818C7F808386E090E09093DB04F3
+:101310008093DA04DF91CF9108959B01DC01189648
+:10132000ED91FC9141E067E109948091D70490919F
+:10133000D80401969093D8048093D70408958330FD
+:1013400081F028F4813099F08230A9F00895873037
+:10135000A9F08830C9F08430B1F4809180008F7D8D
+:1013600003C0809180008F7780938000089584B5BA
+:101370008F7784BD089584B58F7DFBCF8091B000B9
+:101380008F778093B00008958091B0008F7DF9CF62
+:10139000CF93DF93282F30E0F901E255FF4F84917E
+:1013A000F901E656FF4FD491F901EA57FF4FC49176
+:1013B000CC23A1F081110E949F09EC2FF0E0EE0FE9
+:1013C000FF1FE458FF4FA591B491EC91ED2381E00C
+:1013D00090E009F480E0DF91CF91089580E090E003
+:1013E000FACF1F93CF93DF93282F30E0F901E25516
+:1013F000FF4F8491F901E656FF4FD491F901EA5766
+:10140000FF4FC491CC23A9F0162F81110E949F0990
+:10141000EC2FF0E0EE0FFF1FEE58FF4FA591B491B7
+:101420008FB7F894EC91111108C0D095DE23DC93AE
+:101430008FBFDF91CF911F910895DE2BF8CFCF930F
+:10144000DF9390E0FC01E656FF4F24918A579F4FAF
+:10145000FC0184918823C9F090E0880F991FFC015A
+:10146000E859FF4FA591B491FC01EE58FF4FC5918B
+:10147000D49161110DC09FB7F8948C91209582236F
+:101480008C938881282328839FBFDF91CF91089573
+:10149000623051F49FB7F8943C91822F809583235A
+:1014A0008C93E8812E2BEFCF8FB7F894EC912E2BF5
+:1014B0002C938FBFEACF8230910538F0880F991FA7
+:1014C000880F991F05970197F1F708953FB7F89492
+:1014D0008091550490915604A0915704B0915804FE
+:1014E00026B5A89B05C02F3F19F00196A11DB11D7F
+:1014F0003FBFBA2FA92F982F8827BC01CD01620FBB
+:10150000711D811D911D42E0660F771F881F991F75
+:101510004A95D1F708958F929F92AF92BF92CF9242
+:10152000DF92EF92FF926B017C010E94660A4B01F1
+:101530005C01C114D104E104F104B9F00E94660A0F
+:10154000681979098A099B09683E734081059105EC
+:1015500080F321E0C21AD108E108F10888EE880E74
+:1015600083E0981EA11CB11CE4CFFF90EF90DF90A8
+:10157000CF90BF90AF909F908F9008950F931F933F
+:10158000CF93DF938C01C62F642FCC32E8F4CA329C
+:1015900008F041C0C83271F1C93209F442C080E09C
+:1015A000C034D0F1CF73F801EC0FF11D868D8F3F61
+:1015B00091F1C031E0F00E94C80921E0892B09F4C3
+:1015C00020E0F801218F27C0CD3289F140F384EB70
+:1015D0008C0F823020F7CF73C00FD12FD11D8E8D8D
+:1015E00041112EC061E00E941F0A60E08E8D0E94B2
+:1015F000F10911C0025E1F4FD0E0F80181918F0107
+:101600008F3F31F061E0D03108F062E00E941F0AA4
+:10161000DF5FD63191F781E0DF91CF911F910F917C
+:10162000089570E090E080E00E948B0AF4CF85E09E
+:1016300090E0433010F082E090E00E945B0AEBCF34
+:1016400062E00E941F0AE7CF2FB7F894609151041F
+:101650007091520480915304909154042FBF0895C7
+:10166000089520910404260F3327331F21323105BA
+:10167000ECF420912A04FC0190E080E0243069F031
+:1016800082E00895A09104042191AC014E515C4F79
+:10169000A40FB52FB11D2C930196861798F3809156
+:1016A0000404680F6093040480E0089581E00895C5
+:1016B00010922A0481E080932C0410922B0461E0A4
+:1016C00082E10E94F10961E083E10E94F109E9EB06
+:1016D000F0E080818E7F808380818D7F808388E4AD
+:1016E0008093B80085E48093BC000895CF93DF9386
+:1016F00091E09093E1038823B9F0C091B800D091B4
+:10170000BA008091BC008A7B8093BC0060E082E1DB
+:101710000E94F10960E083E10E94F1090E94580BE8
+:10172000D093BA00C093B800DF91CF910895089587
+:1017300008950895E091D9038091D803E81730F413
+:10174000F0E0E854FC4F808190E008958FEF9FEF28
+:1017500008959091D9038091D8032FEF3FEF981708
+:1017600048F4E92FF0E0E854FC4F208130E09F5F1F
+:101770009093D903C90108958091D8039091D9031A
+:10178000891B990B0895CF92DF92EF92FF920F93EE
+:101790001F93CF93DF937C01CB018A012091B70384
+:1017A000222389F0EB016B01C40ED51ECC15DD059B
+:1017B00069F06991D701ED91FC910190F081E02DE4
+:1017C000C7010995F3CF642F0E94310BC801DF9147
+:1017D000CF911F910F91FF90EF90DF90CF900895E0
+:1017E000CF93DF931F92CDB7DEB769832091B70304
+:1017F0002223F9F02091DA03203258F021E030E082
+:10180000FC013383228390E080E00F90DF91CF9141
+:1018100008958091DB03E82FF0E0E956FC4F9981B1
+:1018200090838F5F8093DB038093DA0381E090E005
+:10183000ECCF61E0CE0101960E94310BF7CFDC01C5
+:101840001A96ED91FC9130E020E00994DC011696A7
+:10185000ED91FC9130E020E040E069E10994DC0189
+:101860001696ED91FC9130E020E040E068E10994AB
+:101870009A01DC011696ED91FC91462F67E10994DF
+:10188000EF92FF920F931F93CF93DF931F92CDB7E9
+:10189000DEB77C018B01D8016C91673129F150F4DE
+:1018A0006531A0F40F90DF91CF911F910F91FF90C0
+:1018B000EF9008956A3118F16E3FA1F7F801418168
+:1018C000498369E2C7010E941F0C0BC0F8014181E6
+:1018D0004983D7011696ED91FC9130E020E0C701D5
+:1018E00009950E5F1F4FD7CFF80181818983AE0123
+:1018F0004F5F5F4F61E0C7010E94380CF2CF0F5F6E
+:101900001F4FD7011696ED91FC9130E020E040E0AA
+:10191000C7010995C0CF462FDC011696ED91FC91C9
+:1019200030E020E066E10994462FDC011696ED9147
+:10193000FC9130E020E065E10994EF92FF920F9373
+:101940001F93CF93DF93EC01042F7901693069F481
+:101950008BE991E0998388831C8A81E0DF91CF91A4
+:101960001F910F91FF90EF9008956D3009F475C0AD
+:1019700038F46A3091F16B3009F468C080E0EECF42
+:101980006E3009F47DC06F30C9F70E942F0CF7014B
+:101990001381110F110F110F6C89160F612F6295B2
+:1019A0006F706061CE010E94940C612F6F70CE0148
+:1019B0000E94940CF7016481606BCE010E94940C2C
+:1019C000F701408151816281660F660F660FCE017B
+:1019D0000E94380C0150A1F75DC0EA85FB8530E01C
+:1019E00020E040E068E20995EE81FF8130E020E0F0
+:1019F00040E064E1CE01099541E06BE4CE010E9434
+:101A00001F0CE881F981448169E2CE010E941F0C1C
+:101A100040E06BE4CE010E941F0CE881F981448113
+:101A200069E2CE010E941F0C41E06BE4CE010E94EE
+:101A30001F0CE881F981458169E2CE010E941F0CEB
+:101A400066E671E0CE010E94400C87CF61E671E04E
+:101A50004423C1F36CE571E0F5CF411109C065E5A0
+:101A600071E00E94400CE881F98182898C8B75CFEE
+:101A70006EE471E00E94400CE881F9818389F6CF21
+:101A80000E942F0C61E8CE010E94940C602FCE01C1
+:101A90000E948B0CCE010E94260C5FCFDC011896B1
+:101AA000ED91FC9130E020E040E069E10994DC0137
+:101AB0001896ED91FC9130E020E040E068E1099457
+:101AC000CF93DF931F92CDB7DEB76983BE016F5FFF
+:101AD0007F4F0E948D090F90DF91CF910895EF9273
+:101AE000FF921F93CF93DF93EC01162F7A010E9490
+:101AF000570D60E4CE010E94600DE885F9859701DD
+:101B0000412F67E1CE010995CE01DF91CF911F9161
+:101B1000FF90EF900C944E0DEF92FF921F93CF9396
+:101B2000DF93EC01142F7901663181F138F46431CF
+:101B300009F44BC0653179F080E022C06831C9F109
+:101B400050F16931C9F780919603882391F1CE0154
+:101B50000E944E0D2EC080919603882319F0CE016D
+:101B60000E944E0DCE010E94570D60E0CE010E94F2
+:101B7000600D612FCE010E94600D81E0809396037D
+:101B8000DF91CF911F91FF90EF900895642F0E94F5
+:101B9000600D81E0F5CF80919603882319F0CE0186
+:101BA0000E944E0DA701193138F4612FCE010E9419
+:101BB0006F0D10929603EDCF68E1CE010E946F0D7C
+:101BC000185188E1E80EF11CEDCF8E898F3F11F49A
+:101BD00088E78E8BE885F9859701412F64E1CE0176
+:101BE000DF91CF911F91FF90EF900994FC01662344
+:101BF000D9F16A30C9F1808D811125C06C3F48F060
+:101C000085E0808F617070E0738B628B2EEF3FEF09
+:101C100029C0683F20F084E0808F6370F4CF603F7C
+:101C200020F083E0808F6770EECF603E20F082E08E
+:101C3000808F6F70E8CF262F30E0603C98F081E015
+:101C4000808F6F71E0CF8150808F2289338996E039
+:101C5000220F331F9A95E1F76F73262B338B228B5C
+:101C60008111D4CFC90108952FEF3FEFFBCF0F9320
+:101C7000DC01FC01EE5BFF4F9081941B492F3197F3
+:101C80009081961B692F01110EC04150621BDE9698
+:101C90008C91DE97481BD496ED91FC91D597CD01A0
+:101CA00009950F910895013091F76150421BEFCFD4
+:101CB0000F93DC01DE963C91DE97431BD496ED91A9
+:101CC000FC9109950F910895FC01ED5BFF4F108287
+:101CD0003196DC01AF5BBF4F2C912083319610828F
+:101CE00011962C9112973C91231718F0422F431B09
+:101CF0004083FC01EA5BFF4FDC01DF968C91281BDF
+:101D000020830895FC01ED5BFF4F10823196DC01CA
+:101D1000AF5BBF4F2C9120833196DC01DF962C9175
+:101D200020833196805C9F4FDC018C9180830895E5
+:101D3000CF93DF93FC01A081B18182AD982F990FE1
+:101D4000990F990F95AF50969C915097903208F04B
+:101D50009FE1990F990F990F94AF23AD922F990F8F
+:101D6000990F990F96AF51963C915197682F620F3A
+:101D70007727771F3617170614F4832F821B97AF28
+:101D8000EF01C05CDF4F880F880F880F890F8883B1
+:101D9000219680EF888354968D919C915597813F31
+:101DA000910508F48883EE5BFF4F56968C918083F3
+:101DB000DF91CF9108950C94980E0C94980E0F9388
+:101DC000DC01222371F1FC0101112DC0EB5BFF4FFF
+:101DD0008081481730F131968081481710F532978D
+:101DE000908131978081260F2617C8F46917B0F4C7
+:101DF0002FEF290F8217A8F4681708F4682F291706
+:101E000008F4922F961BD696ED91FC91D7970480FB
+:101E1000F581E02D292FCD01099503C0682F6917A1
+:101E200048F30F910895ED5BFF4F80816817C8F369
+:101E3000319680816817A8F732969081319780811A
+:101E4000240F241778F4491760F42FEF290F821715
+:101E500040F7481708F4482F291708F4922F941BCD
+:101E6000D2CF482F4917E8F6F2CF0F93462F00E064
+:101E700021E0682F82EF95E00E94DF0E0F91089518
+:101E8000FF920F931F93CF93DF93F82ED62F142F2B
+:101E9000C22F00FF0CC0622F6D1B842F8F0D0E947C
+:101EA000350F6C2F6F198D2F810F0E94350F01FF99
+:101EB0000CC06C2F6D1B812F8F190E94350F6C2F5A
+:101EC0006F19812F8D1B0E94350F03FF0CC06C2FE3
+:101ED0006D0F812F8F0D0E94350F6C2F6F0D8D2F81
+:101EE000810F0E94350F02FF11C06C2F6D0F812FE3
+:101EF0008F190E94350F6C2F6F0D812F8D1BDF9175
+:101F0000CF911F910F91FF900C94350FDF91CF91DE
+:101F10001F910F91FF900895CF92DF92EF92FF9261
+:101F20000F931F93CF93DF93E82ED62EC42FC22E8C
+:101F3000D1E0D41BF42EF194FF0C022F262F482F52
+:101F40006C2F80E00E94400F10E0D7FD04C0C1500C
+:101F5000F394F394DF0D1F5F812F880F8F5FD80FED
+:101F60000C2D2D2D4E2D6C2F812F0E94400F1C17F4
+:101F700060F3DF91CF911F910F91FF90EF90DF9071
+:101F8000CF900895FF920F931F93CF93DF93182F55
+:101F9000C62FF42ED62FD20FCD1306C0DF91CF91CE
+:101FA0001F910F91FF90089500E02F2D4C2F612F6E
+:101FB00082EF95E00E94DF0ECF5FEECF0F93242FCC
+:101FC00001E0462F682F82EF95E00E94DF0E0F910F
+:101FD0000895FF920F931F93CF93DF93C82FD62FAF
+:101FE000142FF22E00FF10C041E0460F622F6D1B30
+:101FF000812F8C0F0E94DE0F41E04C0F6F2D6C1B68
+:102000008D2F810F0E94DE0F01FF10C041E04D0FA8
+:102010006F2D6D1B812F8C1B0E94DE0F41E04C0F3A
+:102020006F2D6C1B812F8D1B0E94DE0F03FF0EC0D6
+:1020300041E04D0F6F2D812F8C0F0E94DE0F41E08C
+:102040004C0F6F2D8D2F810F0E94DE0F02FF13C0EA
+:1020500041E04D0F6F2D812F8C1B0E94DE0F41E060
+:102060004C0F6F2D812F8D1BDF91CF911F910F9101
+:10207000FF900C94DE0FDF91CF911F910F91FF9095
+:102080000895CF92DF92EF92FF920F931F93CF9319
+:10209000DF93E82ED62EC42FC22ED1E0D41BF42E0F
+:1020A000F194FF0C022F262F482F6C2F80E00E9406
+:1020B000E90F10E01C1748F0DF91CF911F910F91AD
+:1020C000FF90EF90DF90CF900895D7FD04C0C150EE
+:1020D000F394F394DF0D1F5F812F880F8F5FD80F6C
+:1020E0000C2D2D2D4E2D6C2F812F0E94E90FE2CF4C
+:1020F000AF92BF92CF92DF92EF92FF920F931F9316
+:10210000CF93DF93E82EB62ED42EC22FF82EF00EEA
+:10211000C02EC60E1FEF140F180F101BDFEFD20FCB
+:10212000D60FD01B22E0402F6C2D8F2D0E94411026
+:1021300021E0402F6C2D812F0E94411024E0402F80
+:102140006D2F8F2D0E94411028E0402F6D2F812F81
+:102150000E9441101D2D101B101B133088F0F394AA
+:102160001250AA24A394A00E2A2D412F6B2D8F2D3F
+:102170000E94C20F2A2D412F6D2F8F2D0E94C20F5A
+:102180002C2F201B201B233088F0225061E06C0D87
+:102190004D2D8E2DDF91CF911F910F91FF90EF90DC
+:1021A000DF90CF90BF90AF900C94C20FDF91CF9192
+:1021B0001F910F91FF90EF90DF90CF90BF90AF9065
+:1021C0000895FF920F931F93CF93DF93D82F162F6D
+:1021D000F42EC22F00E0242F462F682F82EF95E0C7
+:1021E0000E94DF0E01E02C2F412F6D2F82EF95E032
+:1021F0000E94DF0E6FEF6F0D6D0F2C2F412F82EFBE
+:1022000095E00E94DF0E4FEF4C0F410F00E02F2DA5
+:102210006D2F82EF95E00E94DF0EDF91CF911F912D
+:102220000F91FF900895DC0118964C911897ED914D
+:10223000FC911197249130E0042E02C0359527952A
+:102240000A94E2F7842F860F883068F03196119651
+:10225000FC93EE93E49198E0941B01C0EE0F9A95E5
+:10226000EAF72E2B885018968C938FEF9FEF01C0C2
+:10227000880F6A95EAF7809582230895FC01E60F9E
+:10228000F11D849190E0982F88273196E4918E0F6C
+:10229000911D0895CF93DF932091390630913A062E
+:1022A0002817390709F490C0EC0190933A068093FF
+:1022B0003906FC018491809349063196E491E093BC
+:1022C0004A06FE013296E491E0934B06FE013396F6
+:1022D000E491E0934C06FE013496E491E0934D06C0
+:1022E000FE013596E491E0934E06FE013696E491A8
+:1022F000E0934F06FE013796E491E0935006FE010D
+:102300003896E491E0935106FE013996E491E0930A
+:102310005206FE013A96E491E0935306FE013B9685
+:10232000E491E0935406FE013C96E491E093550657
+:10233000FE013D96E491E0935606FE013E96E4913F
+:10234000E0935706FE013F96E491E0935806FE01A4
+:102350007096E491E093590661E1CE010E943E112E
+:1023600090935B0680935A0663E1CE010E943E1172
+:1023700090935D0680935C0665E1CE010E943E115C
+:1023800090935F0680935E068091390690913A069D
+:10239000892BD1F0809156068093610640915706B3
+:1023A0004093620690916006992371F0913079F420
+:1023B00090915806891714F49093610680915906FC
+:1023C000841714F480936206DF91CF9108953091C1
+:1023D000530620915506082E000C990B622F022EF1
+:1023E000000C770B630F711D37FD7A9586179707E1
+:1023F0001CF4320F30936106241734F720936206E1
+:10240000E3CFCF93DF93EC016BAFEEA9FFA901906F
+:10241000F081E02D0995EEA9FFA90280F381E02D5E
+:10242000CE01DF91CF910994AF92BF92CF92DF920C
+:10243000EF92FF920F931F93CF93DF9300D000D0C2
+:102440001F92CDB7DEB78C01DC01DA96AC90DA973B
+:10245000DB96EC90DB97ED91FC91B188FE2CD12CB2
+:10246000C12CD801ED91FC9111978089D8962D91BE
+:102470003C911C82FD828B83B8E08B9FC0011124AC
+:102480008C9DA0018D9D500D9C9D500D1124240FFD
+:10249000351F3A832983D8011496ED91FC919E0152
+:1024A0002F5F3F4F41E06FE0C8010995F3948F2DF6
+:1024B0008E198A1528F4BFEFCB1ADB0AFB1488F2B9
+:1024C0000F900F900F900F900F90DF91CF911F9171
+:1024D0000F91FF90EF90DF90CF90BF90AF90089555
+:1024E000CF92DF92EF92FF920F931F93CF93DF93E0
+:1024F000EC01962F683109F44BC0B901993130F4E1
+:102500009431C9F0973189F080E006C0993109F41F
+:1025100061C09032C9F781E0DF91CF911F910F9197
+:10252000FF90EF90DF90CF90089550E082EE94E01E
+:102530000E94C30BF0CF8C859D85AE85BF85892B0E
+:102540008A2B8B2B71F4E881F981A585B0E020EA14
+:1025500036E841E050E00E9447396C877D878E87DE
+:102560009F871092D9031092D8031092DB03109228
+:10257000DA030E94580B87E99BE090930304809351
+:10258000020488E99BE09093070480930604C3CF7C
+:102590002C853D854E855F8560E074E284EF90E098
+:1025A0000E945A39205131094109510956954795E0
+:1025B000379527952093B8008E8990E0959587955B
+:1025C00091E09093B703809395031092DB031092F0
+:1025D000DA03A1CFD091DA03D13208F093C0C091D1
+:1025E00095030E94660A6B017C0180912A04811187
+:1025F00064C082E080932A0481E080932C048FEFF2
+:102600008093290410924E04D0934D04A7E9B3E0BF
+:10261000EDE2F4E080E0D8137CC010924F0480918A
+:102620004F04CC0FC82BC0934F0480912B048130F2
+:1026300009F073C010922B040E94660A6B017C01A2
+:1026400080914F048093BB008091DD039091DE0365
+:10265000A091DF03B091E003892B8A2B8B2B99F09B
+:102660000E94660A0091DD031091DE032091DF03D2
+:102670003091E0036C197D098E099F090617170731
+:1026800028073907D8F18091BC0083FDD9CF85ECAC
+:102690008093BC000E94660A6B017C0180912A0431
+:1026A0008230E9F1809129048F3F61F18091290402
+:1026B000803241F18091290425C08091DD03909101
+:1026C000DE03A091DF03B091E003892B8A2B8B2BD3
+:1026D00009F48BCF0E94660A0091DD031091DE039E
+:1026E0002091DF033091E0036C197D098E099F0969
+:1026F000061717072807390708F077CF8091DC0302
+:102700000E94760B1092DB031092DA031092B7034B
+:1027100002CF9D9191938F5F7ECF85EEB9CF80914F
+:10272000DD039091DE03A091DF03B091E003892BDC
+:102730008A2B8B2B09F4B2CF0E94660A0091DD032D
+:102740001091DE032091DF033091E0036C197D09C5
+:102750008E099F09061717072807390708F09ECF2B
+:10276000CDCF109291031092920310929303109286
+:102770009403109290038091DA049091DB0480938B
+:10278000B200E0E7F0E080818160808308958E50A0
+:10279000806480937C0080917A00806980937A00C5
+:1027A00083B7817F826083BF20E190E080E033B710
+:1027B000316033BF889533B73E7F33BF30917A00A5
+:1027C00036FDFCCF4091780050917900840F951F21
+:1027D000215069F720917A002F7720937A0024E026
+:1027E000969587952A95E1F7089581E10E94C71390
+:1027F000BC0190E080E00E94A53A20910501309153
+:10280000060140910701509108010E945C3B20E0C5
+:1028100030EC4FE754E40E94FD3920E030E040E026
+:102820005FE30E948B3920E030E048EC52E40E94E4
+:102830005C3B20918C0330918D0340918E0350912D
+:102840008F030E948C3960938C0370938D03809367
+:102850008E0390938F0320918B032F5F20938B0324
+:102860002A30C0F020E030E040E251E40E94FD391F
+:102870006093B9047093BA048093BB049093BC0432
+:1028800010928B0310928C0310928D0310928E0382
+:1028900010928F030895CF92DF92EF92FF9284E11E
+:1028A0000E94C713BC0190E080E00E94A53A2CED85
+:1028B00036E443E05EE30E94FD392091050130914A
+:1028C000060140910701509108010E945C3B20E005
+:1028D00030EC4FE754E40E94FD392091870330919A
+:1028E00088034091890350918A030E948C39609338
+:1028F0008703709388038093890390938A032091C0
+:1029000086032F5F209386032A3008F43FC020E01F
+:1029100030E040E251E40E94FD3920917C04309186
+:102920007D0440917E0450917F040E948C39609315
+:102930009004709391048093920490939304109266
+:1029400086031092870310928803109289031092D5
+:102950008A03C0900901D0900A01E0900B01F09029
+:102960000C01A70196010E94F83987FF14C023E3E8
+:1029700033E343E550E4C701B6010E94573B87FDAE
+:102980000AC081E0809394041092D904FF90EF90E4
+:10299000DF90CF90089510929404F8CF4F925F92F9
+:1029A0006F927F928F929F92AF92BF92CF92DF925F
+:1029B000EF92FF920F931F93CF93DF9300D000D03D
+:1029C00000D0CDB7DEB76B017C0180913B01873031
+:1029D00009F064C180916104813009F043C1A7010D
+:1029E0009B0160E070E080E291E40E948B390E94DC
+:1029F0006F3A70937D0360937C0380917C03909188
+:102A00007D039E838D838B3F9F4F0CF069C186E9C8
+:102A100090E0A0E0B0E08093320190933301A09366
+:102A20003401B093350100918003109181038D81B1
+:102A30009E810E962D813E818D9708F080C1B9014F
+:102A4000330F880B990B0E94A73A6B017C019F778B
+:102A500020E030E0A9010E94573B18160CF059C144
+:102A60006D817E81601B710B072E000C880B990B0A
+:102A70000E94A73A4B015C016D817E81600F711F3E
+:102A8000072E000C880B990B0E94A73A20E030E03B
+:102A900040E05FE30E945C3B69837A838B839C8385
+:102AA000C801880F991F6D817E81681B790B809109
+:102AB0007E0390917F03680F791F072E000C880B0F
+:102AC000990B0E94A73A2B013C0120E030E0A901BC
+:102AD000C701B6010E94573B181624F0F7FAF0948C
+:102AE000F7F8F09420E030E04AEF54E4C701B60173
+:102AF0000E94573BC12CD12C760187FF06C0C12C08
+:102B0000D12C80E8E82E8FE3F82E2DEC3CEC4CE441
+:102B10005FE360910E0170910F018091100190911F
+:102B200011010E945C3BA30192010E945C3B2B01BE
+:102B30003C012DEC3CEC4CE45EE360917803709139
+:102B4000790380917A0390917B030E945C3B9B0107
+:102B5000AC01C301B2010E948C392B013C014092AF
+:102B600078035092790360927A0370927B032091EC
+:102B70001201309113014091140150911501C701C8
+:102B8000B6010E945C3B29813A814B815C810E94A5
+:102B90005C3B6B017C012091160130911701409143
+:102BA000180150911901C501B4010E945C3B9B01C1
+:102BB000AC01C701B6010E948C39A30192010E94A9
+:102BC0008C396B017C016091A7047091A804072ED9
+:102BD000000C880B990B0E94A73AA70196010E944E
+:102BE0008C390E946F3A7093A8046093A704072E53
+:102BF000000C880B990B0E94A73A6B017C0120E026
+:102C000030EE4FEF54E40E94573B87FD8DC08D811D
+:102C10009E81181619060CF480C01092A804109218
+:102C2000A70410937F0300937E032D813E81309390
+:102C300081032093800326960FB6F894DEBF0FBE63
+:102C4000CDBFDF91CF911F910F91FF90EF90DF905B
+:102C5000CF90BF90AF909F908F907F906F905F903C
+:102C60004F900895823039F4A7019B0160E070E035
+:102C70008FEA93E4BACE833039F4A7019B0160E078
+:102C800070E882E294E4B1CE843009F0B6CEA701B8
+:102C90009B0160E070E08BE694E4A7CE20913901BF
+:102CA00030913A013A832983B90190E080E00E9493
+:102CB000A53AA70196010E948B390E946F3A709342
+:102CC0007D0360937C038091B1049091B2042981CB
+:102CD0003A81281B390B3093B4042093B3048DCE72
+:102CE0008D819E810596409728F480E991E0A0E0CF
+:102CF000B0E091CE8D819E810B97449728F484EFAC
+:102D000091E0A0E0B0E087CE80E293E0A0E0B0E008
+:102D100082CEC12CD12C760156CF8FEF97E09093C5
+:102D2000A8048093A7047DCF20E030E0A901C7016B
+:102D3000B6010E94F83918160CF473CF6ECF2F31FC
+:102D400031055CF7213F3F4F09F067CF6ACF8F9283
+:102D50009F92AF92BF92CF92DF92EF92FF9260E08C
+:102D60008AE00E94F1090E944B140E94F5138091A1
+:102D70008104813061F4E091F605F091F70530E0CF
+:102D800020E040910D016EE082EF95E0099561E051
+:102D900070E080E090E00E948B0A80E10E94C713FF
+:102DA000C0906204D0906304E0906404F0906504E5
+:102DB000BC0190E080E00E94A53AA70196010E9424
+:102DC0008B3923E333E343E35FE30E945C3BA701DA
+:102DD00096010E948C396B017C01C0926204D092F2
+:102DE0006304E0926404F0926504209172043091CF
+:102DF000730440917404509175040E945C3BA701D8
+:102E000096010E945C3BA70196010E945C3B4B012E
+:102E10005C0120916E0430916F04409170045091D8
+:102E20007104C701B6010E945C3BA70196010E9494
+:102E30005C3B9B01AC01C501B4010E948C394B0184
+:102E40005C0120916A0430916B0440916C045091B4
+:102E50006D04C701B6010E945C3B9B01AC01C5013A
+:102E6000B4010E948C39209166043091670440912E
+:102E70006804509169040E948C390E94763A90E06F
+:102E800080E00E94A53A4B015C0160910401062E8E
+:102E9000000C770B880B990B0E94A73A9B01AC01A1
+:102EA0006091B9047091BA048091BB049091BC0404
+:102EB0000E948B399B01AC01C501B4010E948C3981
+:102EC0000E94763AAB017093B6046093B50480918A
+:102ED000840390918503840F951F909385038093BD
+:102EE0008403209183032F5F20938303283079F498
+:102EF00023E0959587952A95E1F79093B204809306
+:102F0000B104109285031092840310928303809180
+:102F1000D904882309F497C080919404811193C047
+:102F20008091B80481118FC08091390190913A014C
+:102F300003962091B1043091B204821B930B079742
+:102F4000A8F48091C704811111C081E08093C60468
+:102F500028E730E03093C5042093C4042CE231E02C
+:102F60003093C3042093C2048093C70480913B0133
+:102F7000873009F062C0C701B6010E94CE14E0900C
+:102F8000A704F090A804B70190E080E00E94A53A61
+:102F90004B015C0120E030EE4FEF54E40E94573BC0
+:102FA00061E087FF0BC020E030E0A901C501B4015A
+:102FB0000E94F83918160CF45FC060E08AE00E94A5
+:102FC000F1096091A7047091A804072E000C880BEA
+:102FD000990B0E94A73A20E030EE4FEF54E40E9494
+:102FE000FD3920E030E048EC52E40E945C3B0E9456
+:102FF000763A60938F04C0906204D0906304E090AE
+:103000006404F09065048091D90420E030E04FE73B
+:1030100054E4811142C0C701B6010E94573B87FDAD
+:1030200066C081E08093B804FF90EF90DF90CF906E
+:10303000BF90AF909F908F900895BA0190E080E08C
+:103040000E94A53A9ACF1092A8041092A704109259
+:1030500081031092800310927F0310927E0382EC12
+:1030600091E0A0E0B0E08093320190933301A0930F
+:103070003401B093350183CF81E28093800084E1F5
+:10308000809381008FEF97E0909389008093880070
+:10309000F0928B00E0928A0094CFC701B6010E94A3
+:1030A000573B87FD15C0809182038F5F8093820319
+:1030B000883008F4B9CF809170008E7F80937000C3
+:1030C0001092820381E08093B7041092D904ACCFB0
+:1030D00020E030E04FE754E4C701B6010E94F83920
+:1030E00087FF05C01092B704109282039DCF109203
+:1030F000B8049ACF80913B01873049F08091D50484
+:103100009091D60401969093D6048093D5040895A7
+:10311000CF92DF92EF92FF92CF93DF930E94240B26
+:10312000C0905D04D0905E04E0905F04F090600475
+:103130006C197D098E099F0964317105810591051E
+:1031400008F46AC0D1E0D093C60484E690E090937E
+:10315000C5048093C40486E490E09093C3048093F4
+:10316000C204C0913B01C13009F075C084E00E94E7
+:10317000C809209183042817190609F054C08091CA
+:10318000390190913A010A9690933A01809339015E
+:1031900080912D0190912E01CAE0D0E0BE010E94E5
+:1031A000CE3BEAE0E69F9001E79F300D112480912D
+:1031B000270190912801BE010E94CE3BE69FA0010D
+:1031C000E79F500D11248091390190913A01281701
+:1031D0003907C8F550933A01409339011092C7045A
+:1031E0001092D8041092D7041092CA041092B70417
+:1031F0001092CE041092D6041092D5041092D004EE
+:103200001092CF040E94240B60935D0470935E04BF
+:1032100080935F0490936004DF91CF91FF90EF90D3
+:10322000DF90CF90089584E00E94C8092091830424
+:10323000C227C817190609F0ABCF809139019091C8
+:103240003A010A97A1CF8417950740F630933A01C7
+:1032500020933901C3CFC23081F584E00E94C809B0
+:10326000209183042817190681F480918E0481111E
+:10327000C9CF80918A048111C5CFD0938E048091EB
+:103280008B048F5F80938B04BDCF84E00E94C809BC
+:10329000209183042D272817190609F0B3CF8091B8
+:1032A0008E048111AFCF80918A048111ABCFD0936E
+:1032B0008A0480918B048150E5CFC33009F066C148
+:1032C00080918804811120C0C091890484E00E940B
+:1032D000C809209183042817190659F4CF5FC093B9
+:1032E00089048091890484300CF44AC110928904C5
+:1032F00089CF84E00E94C80920918304D227D8177F
+:10330000190679F7C150EBCF813009F065C084E030
+:103310000E94C809209183042817190649F4809156
+:10332000870420E030E040E85FE3882309F449C0E7
+:1033300084E00E94C8092091830431E023272817E4
+:10334000190621F4809187048823E1F084E00E942B
+:10335000C809209183042817190659F184E00E94B6
+:10336000C8092091830431E023272817190609F0A2
+:10337000B8CF809187042DEC3CEC4CEC5DE38111DF
+:1033800005C0AFCF20E030E040E85FE36091160178
+:103390007091170180911801909119010E948B3949
+:1033A000609316017093170180931801909319018F
+:1033B00098CF80918704882389F22DEC3CEC4CEC6B
+:1033C0005DE3609116017091170180911801909151
+:1033D00019010E948C39E4CF823009F066C084E084
+:1033E0000E94C809209183042817190621F48091AE
+:1033F0008704882331F184E00E94C8092091830466
+:1034000031E023272817190659F184E00E94C809E2
+:103410002091830428171906F1F184E00E94C8095D
+:103420002091830431E023272817190609F059CF8A
+:10343000809187042DEC3CEC4CEC5DE3811118C0CD
+:1034400050CF20E030E040E85FE3609112017091DE
+:10345000130180911401909115010E948C3912C0C2
+:10346000809187048111D1CF20E030E040E85FE314
+:1034700060911201709113018091140190911501D6
+:103480000E948B3960931201709313018093140191
+:103490009093150126CF80918704882309F4BDCF2E
+:1034A0002DEC3CEC4CEC5DE3D0CF833009F019CF30
+:1034B00084E00E94C809209183042817190621F48A
+:1034C00080918704882341F184E00E94C8092091FB
+:1034D000830431E0232728171906A9F184E00E940C
+:1034E000C809209183042817190609F43FC084E015
+:1034F0000E94C8092091830431E023272817190668
+:1035000009F0EFCE80918704882309F4EACE2DECF0
+:103510003CEC4CEC5DE31FC020E030E040E85FE3B2
+:1035200060910E0170910F01809110019091110135
+:103530000E948C3960930E0170930F0180931001EB
+:1035400090931101CECE809187048111C7CF20E0E6
+:1035500030E040E85FE360910E0170910F018091CF
+:103560001001909111010E948B39E4CF8091870462
+:10357000882309F4BCCF2DEC3CEC4CEC5DE3D0CFC0
+:1035800087FF40CE83E0809389043CCEC43009F0AD
+:1035900080C0C0918504C11120C0C091860484E020
+:1035A0000E94C809209183042817190659F4CF5F97
+:1035B000C09386048091860483300CF44FC010922F
+:1035C000860420CE84E00E94C80920918304D2277B
+:1035D000D817190679F7C150EBCFC13009F584E04F
+:1035E0000E94C809209183042817190651F480917C
+:1035F00037019091380101969093380180933701FB
+:10360000D9CF84E00E94C80920918304C227C8173B
+:10361000190681F680913701909138010197ECCF1E
+:10362000C23041F684E00E94C80920918304281723
+:10363000190631F4809136018F5F80933601BACF3D
+:1036400084E00E94C80920918304D227D817190664
+:1036500009F0B0CF809136018150EFCF87FF04C0D1
+:1036600082E080938604CECD80913701909138011D
+:10367000883E23E0920738F08AE090E0909338018A
+:1036800080933701BFCD0A9708F0BCCD87EE93E059
+:10369000F5CFC53009F08FC0C0918104C11125C09C
+:1036A00084E00E94C809C0918404209183042817F3
+:1036B000190651F4CF5FC093840480918404843050
+:1036C00074F0109284049ECD84E00E94C809209179
+:1036D0008304D227D817190681F7C150ECCF87FF92
+:1036E00091CD83E0809384048DCDC13041F584E099
+:1036F0000E94C809209183042817190679F4809143
+:103700000D018B5F80930D0180910D019EEF980F4D
+:10371000933088F485E080930D0174CD84E00E949D
+:10372000C80920918304C227C817190669F7809138
+:103730000D018550E7CF811165CD8FEFECCFC23001
+:10374000F1F484E00E94C809209183042817190627
+:1037500039F48091820491E089278093820452CDCC
+:1037600084E00E94C8092091830431E023272817B0
+:10377000190609F047CD809182048327EECFC3302C
+:1037800009F040CD84E00E94C809209183042817E5
+:10379000190629F481E028272093830433CD84E09F
+:1037A0000E94C8092091830431E0232728171906B5
+:1037B00009F028CDF1CFC63009F007C180917B0414
+:1037C000811125C084E00E94C809C0918004209125
+:1037D00083042817190651F4CF5FC09380048091A9
+:1037E0008004843074F0109280040CCD84E00E9438
+:1037F000C80920918304D227D817190681F7C15030
+:10380000ECCF87FFFFCC83E080938004FBCC81303A
+:10381000C9F584E00E94C80920918304281719067D
+:10382000B9F42AE037ED43E25CE360910501709161
+:10383000060180910701909108010E948C396093E4
+:103840000501709306018093070190930801DACC7B
+:1038500084E00E94C8092091830431E023272817BF
+:10386000190609F0CFCC2AE037ED43E25CE3609122
+:1038700005017091060180910701909108010E9455
+:103880008B39DDCF8230C9F584E00E94C8092091D0
+:10389000830428171906B9F42DEC3CEC4CEC5DE3DD
+:1038A00060917C0470917D0480917E0490917F04EE
+:1038B0000E948C3960937C0470937D0480937E0415
+:1038C00090937F049FCC84E00E94C80920918304D8
+:1038D00031E023272817190609F094CC2DEC3CEC95
+:1038E0004CEC5DE360917C0470917D0480917E04DA
+:1038F00090917F040E948B39DDCF833009F082CC18
+:1039000084E00E94C8092091830428171906A9F5AC
+:103910002DEC3CEC4CEC5DE36091090170910A01E7
+:1039200080910B0190910C010E948C3960930901E8
+:1039300070930A0180930B0190930C01C0900901D0
+:10394000D0900A01E0900B01F0900C0120E030E0F3
+:1039500040EF51E4C701B6010E94573B181634F5F9
+:103960008DEC9CECACE4B0E48093090190930A01E7
+:10397000A0930B01B0930C0145CC84E00E94C809D0
+:103980002091830431E0232728171906B9F62DEC7E
+:103990003CEC4CEC5DE36091090170910A0180916F
+:1039A0000B0190910C010E948B39C0CF2DEC3CECA7
+:1039B0004CE450E4C701B6010E94F83987FF22CCDD
+:1039C00080E090E0A0EFB1E4CFCFC83009F071C043
+:1039D00080917704811126C084E00E94C809C091BB
+:1039E0007A04209183042817190651F4CF5FC093FD
+:1039F0007A0480917A0484307CF010927A0402CCAC
+:103A000084E00E94C8092091830431E0232728170D
+:103A1000190679F7C150EBCF87FFF4CB83E0809391
+:103A20007A04F0CB813021F584E00E94C80920910E
+:103A300083042817190671F4809104018F5F809325
+:103A40000401809104018D59873C08F4DBCB10926E
+:103A50000401D8CB84E00E94C8092091830431E09E
+:103A600023272817190669F7809104018150E7CFB1
+:103A7000833009F0C7CB84E00E94C80920918304F9
+:103A80002817190639F48091790491E089278093E9
+:103A90007904B8CB84E00E94C8092091830431E006
+:103AA00023272817190609F0ADCB809179048327C5
+:103AB000EECFC73009F0A6CBC0916104C11126C07A
+:103AC00084E00E94C809C0917604209183042817DD
+:103AD000190651F4CF5FC093760480917604873045
+:103AE0007CF0109276048ECB84E00E94C80920916D
+:103AF000830431E023272817190679F7C150EBCF4B
+:103B000087FF80CB86E0809376047CCBC13011F5B3
+:103B100084E00E94C809209183042817190651F4F3
+:103B2000809127019091280101969093280180931C
+:103B3000270168CB84E00E94C80920918304C22732
+:103B4000C817190609F05ECB8091270190912801D2
+:103B50000197EBCFC23019F584E00E94C80920918B
+:103B600083042817190651F48091290190912A01A4
+:103B7000019690932A018093290144CB84E00E940E
+:103B8000C8092091830431E023272817190609F07A
+:103B900039CB8091290190912A010197EACFC33056
+:103BA00019F584E00E94C80920918304281719069A
+:103BB00051F480912B0190912C01019690932C014E
+:103BC00080932B011FCB84E00E94C80920918304BD
+:103BD00031E023272817190609F014CB80912B0117
+:103BE00090912C010197EACFC43009F00BCB84E00F
+:103BF0000E94C809209183042817190651F4809166
+:103C00002D0190912E01019690932E0180932D010C
+:103C1000F9CA84E00E94C8092091830431E0232777
+:103C20002817190609F0EECA80912D0190912E01F6
+:103C30000197EACFEF92FF920F931F93CF93DF93F9
+:103C40008091C604882321F1D0E0C0E00091C20435
+:103C50001091C304C017D107C8F461E088E00E9446
+:103C6000F109E090C404F090C504C7010E945B0A0A
+:103C700060E088E00E94F10901501109C017D107E6
+:103C800018F4C7010E945B0A2196E0CF1092C60487
+:103C900080919404811104C08091B704882361F15C
+:103CA0000E94240B009174031091750320917603F8
+:103CB00030917703601B710B820B930B693E73404D
+:103CC00081059105C8F081E08093C60488E790E003
+:103CD0009093C5048093C4048CE291E09093C30454
+:103CE0008093C2040E94240B609374037093750345
+:103CF000809376039093770380915B048823C1F0CF
+:103D000081E08093C60486E990E09093C504809397
+:103D1000C40480ED92E09093C3048093C204109297
+:103D20005B04DF91CF911F910F91FF90EF90089569
+:103D300080915A048823A9F381E08093C60486E920
+:103D400090E09093C5048093C40480ED92E090933A
+:103D5000C3048093C20410925A04E3CFCF92DF923F
+:103D6000EF92FF920F931F93CF93DF936C01EB01C0
+:103D70007B01E40EF51E10E000E0CE15DF0561F0DA
+:103D80006991D601ED91FC910190F081E02DC60181
+:103D90000995080F191FF1CFC801DF91CF911F912D
+:103DA0000F91FF90EF90DF90CF900895089590E0ED
+:103DB00080E00895FC0101900020E9F73197AF0100
+:103DC000481B590BBC018EEE95E00C94AE1E8F92F1
+:103DD0009F92AF92BF920F931F93CF93DF93CDB774
+:103DE000DEB7A1970FB6F894DEBF0FBECDBF19A204
+:103DF000423008F44AE08E010F5D1F4F842E912C53
+:103E0000B12CA12CA50194010E945A39E62FB901C9
+:103E1000CA01EA30F4F4E05DD801EE938D01232B62
+:103E2000242B252B79F790E080E0109719F0CD0135
+:103E30000E94DA1EA1960FB6F894DEBF0FBECDBF6A
+:103E4000DF91CF911F910F91BF90AF909F908F9076
+:103E50000895E95CE1CF0C94DA1EBC0190E080E0AB
+:103E60004AE00C94E71E2F923F924F925F926F921E
+:103E70007F928F929F92AF92BF92CF92DF92EF92FA
+:103E8000FF920F931F93CF93DF9300D000D01F9228
+:103E9000CDB7DEB78C015C0124E0A20EB11CFC01A1
+:103EA000E758FF4F0190F081E02DC50109959A83F5
+:103EB00089838E3F9F4F08F040C0F801E458FF4FC0
+:103EC000F08048016BE7860E911CF401E080BE97FC
+:103ED0000190F081E02DC5010995F801EF5AFF4FDF
+:103EE000E08231968F0D808337978081918147964C
+:103EF00029813A812F3F310511F008F0FAC0B396BD
+:103F00002136310540F469817A816134710538F0D8
+:103F1000F801E459FF4F20813181820F931F9C01EA
+:103F20002F5F3F4FF9014491411121C01B82F401E1
+:103F30008081FB818F0FF401808381E090E00F90FE
+:103F40000F900F900F900F90DF91CF911F910F91D5
+:103F5000FF90EF90DF90CF90BF90AF909F908F90A9
+:103F60007F906F905F904F903F902F900895FC014D
+:103F7000449169817A814617170609F0B5C0029607
+:103F80000097A1F2B801615B7F4F7D836C83FB01D9
+:103F9000918380831086709660818C819D810E94C0
+:103FA0001311EC81FD818683F801E05AFF4F608197
+:103FB0008C819D810E941311782EEC81FD81878375
+:103FC0006801F7E7CF0ED11CF6019081EC81FD81ED
+:103FD000928781E0911180E0EC81FD818387F80177
+:103FE000EF59FF4F6080662D8C819D810E941311D7
+:103FF000382EF801EE59FF4FF0806F2D8C819D8196
+:104000000E941311482E8FEF8F0DEE24E394F12CB4
+:10401000970102C0220F331F8A95E2F73A83298362
+:10402000F801ED59FF4F5080652D8C819D810E94D4
+:1040300013115A94970101C0220F5A94EAF7821B78
+:104040008B83EC81FD81868118160CF070CF6A9409
+:1040500001C0EE0C6A94EAF782818E19380E328222
+:104060008381F9818F0F84198719EC81FD81838306
+:10407000148215829801235A3F4F3A83298378018D
+:104080003EE5E30EF11CE981FA8160818C819D811E
+:104090000E941311482EF70160818C819D810E943E
+:1040A0001311382EEC81FD8114816580542CEC8134
+:1040B000FD812680211A818581110FC06281438193
+:1040C0008385F6018083222D521408F4252D460D98
+:1040D000610F00E0C5010E94DF0E521408F43CC0DD
+:1040E0005218639410E0E3CFF9012491820F911DDF
+:1040F00016CFF801E059FF4FC080D180C80ED91EFD
+:10410000760160E0C7010E943E11C80ED91E62E030
+:10411000C7010E943E11F4E0EF0EF11C29813A81A3
+:104120008217930770F3F601849190E0982F882707
+:104130003196E4918E2B009709F4F8CE29813A81CB
+:104140002817390719F4C60103961ACFF6013296DB
+:10415000E491CE0ED11CE7CF150DEC81FD811483C7
+:104160006582532CEC81FD812680211A6281438176
+:104170008285F6018083222D521408F4252D460DE8
+:10418000610F00E0C5010E94DF0E521420F05218AA
+:10419000639410E0E7CF150DEC81FD8114836582F7
+:1041A00061E0CF010E94131181117CCFEC81FD8170
+:1041B000858187150CF467CF8285F6018083B7CEA1
+:1041C0004F925F926F927F928F929F92AF92BF9227
+:1041D000CF92DF92EF92FF92CF93DF936B017C013E
+:1041E000D42FAC019B010E94C93B882391F08DED37
+:1041F00091E0DF91CF91FF90EF90DF90CF90BF9053
+:10420000AF909F908F907F906F905F904F900C94A5
+:10421000DA1E26013701E89477F82FEF3FEF4FE7DA
+:104220005FE7C301B2010E94C93B81110DC02FEFAE
+:104230003FEF4FE75FE7C301B2010E94F83918165C
+:104240001CF481EE91E0D5CF2FEF3FEF4FE75FE415
+:10425000C701B6010E94573B18161CF485EE91E089
+:10426000C8CF2FEF3FEF4FE75FECC701B6010E94C9
+:10427000F83987FDF3CF20E030E0A901C701B6018E
+:104280000E94F839912C812C87FF0AC06DE28EEED6
+:1042900095E00E94331F4C01F7FAF094F7F8F09480
+:1042A000CD2FA12C60E070E080E09FE3AD1640F4DC
+:1042B00020E030E040E251E40E94FD39A394F6CFC3
+:1042C000A70196010E948C392B013C010E94763A8D
+:1042D0005B016C014AE00E94E71E7C01E80CF91CBE
+:1042E000DD23A9F1C601B5010E94A53A9B01AC01ED
+:1042F000C301B2010E948B394B015C016EE28EEE6C
+:1043000095E00E94331FE80EF91EC15000F120E035
+:1043100030E040E251E4C501B4010E945C3B2B0156
+:104320003C010E94763A4B01CB010E942D1FE80E02
+:10433000F91EB40190E080E00E94A53A9B01AC0117
+:10434000C301B2010E948B394B015C01DECFC70172
+:10435000DF91CF91FF90EF90DF90CF90BF90AF9023
+:104360009F908F907F906F905F904F900895CF9225
+:10437000DF92EF92FF92CF93DF936C01990FEE08DB
+:10438000FF08F7FE19C06DE28EEE95E00E94331F24
+:10439000EC0166277727CB016C197D098E099F09EF
+:1043A0004AE00E94E71E8C0F9D1FDF91CF91FF9086
+:1043B000EF90DF90CF9008954AE0C701B601DF91FA
+:1043C000CF91FF90EF90DF90CF900C94E71E85ED9A
+:1043D0008093BC008091DD039091DE03A091DF0308
+:1043E000B091E0030796A11DB11D23E0B695A795F6
+:1043F000979587952A95D1F72091BC0024FD03C09D
+:1044000010922A0408954091DD035091DE036091DB
+:10441000DF037091E003452B462B472B69F3009790
+:10442000A105B10541F025E32A95F1F700000197B8
+:10443000A109B109E1CF8091DC030C94760BFC015A
+:10444000A081B18150962C9182AD38E0839FC0014C
+:104450001124289FA001299F500D112470E060E0D5
+:1044600080AD91AD0C94383D1F93CF93DF93EC0159
+:104470000E9414121BAD8AAD180FE881F981818961
+:10448000181768F0EC81FD8130E020E040E060E149
+:10449000CE01099580E0DF91CF911F910895FE0133
+:1044A000EC58FF4F8081882319F0CE010E941F2213
+:1044B000612FCE010E94011281E0EDCFCF93DF93F7
+:1044C000EC01FC01EC58FF4F8081882319F0CE01EC
+:1044D0000E941F2260E0CE01DF91CF910C94011267
+:1044E000FF920F931F93CF93DF93EC01F62E088179
+:1044F0001981C8010E941239F81621F06F2DC801E8
+:104500000E941A39CE01DF91CF911F910F91FF9038
+:104510000895EF92FF920F931F93CF93DF9300D0F4
+:10452000CDB7DEB78C017B019A838983FB01608163
+:10453000CE0101960E9470220F5F1F4F1A830983DC
+:10454000F7016181CE0101960E947022C7010F9090
+:104550000F90DF91CF911F910F91FF90EF900895F1
+:104560000F931F93CF93DF9300D0CDB7DEB78B01AE
+:104570009A838983FB016081CE0101960E9470229B
+:10458000C8010F900F90DF91CF911F910F91089567
+:104590000F931F93CF93DF9300D0CDB7DEB78B017E
+:1045A0009A838983FB016081CE0101960E9470226B
+:1045B000C8010F900F90DF91CF911F910F91089537
+:1045C000AF92BF92CF92DF92EF92FF920F931F9321
+:1045D000CF93DF9300D0CDB7DEB78B016B0124E022
+:1045E000C20ED11C7B015C01A61AB70AC5018E0D53
+:1045F0009F1D9A838983F70161917F01CE01019606
+:104600000E947022EC14FD0489F7C8010F900F90EE
+:10461000DF91CF911F910F91FF90EF90DF90CF909E
+:10462000BF90AF900895CF93DF93EB010E941239B2
+:104630008883CE01DF91CF910895CF93DF93EB0173
+:104640000E9412398883CE01DF91CF9108950F9394
+:104650001F93CF93DF938C01EB010E941239888363
+:10466000C80101960E9412398983CE01DF91CF9152
+:104670001F910F910895CF92DF92EF92FF920F93C7
+:104680001F93CF93DF93EB017B0124E0E20EF11C3B
+:104690008B016C01C61AD70AC601800F911F0E94B8
+:1046A0001239F80181938F01EE15FF05A9F7CE01AC
+:1046B000DF91CF911F910F91FF90EF90DF90CF90FE
+:1046C00008952F923F924F925F926F927F928F92B6
+:1046D0009F92AF92BF92CF92DF92EF92FF920F9391
+:1046E0001F93CF93DF93CDB7DEB7AA970FB6F89499
+:1046F000DEBF0FBECDBF88E0E6E4F1E0DE015196FB
+:1047000001900D928A95E1F764E070E084E090E01A
+:104710000E94F73B9EA38DA364E070E087E090E0E9
+:104720000E94F73B98A78FA364E070E084E090E0DC
+:104730000E94F73B9AA789A764E070E084E090E0CC
+:104740000E94F73B9CA38BA364E070E080E190E0C3
+:104750000E94F73B9E8F8D8F37E2C32E31E0D32E20
+:10476000ADA0BEA020E1A20EB11C09A51AA5EDA026
+:10477000FEA0412C512C40E8642E4FE3742ED7014B
+:104780004D925D926D927D927D01F60161917191E4
+:104790006F01072E000C880B990B0E94A73AD801D5
+:1047A0006D937D938D939D938D01EA14FB0439F7EE
+:1047B000EFA1F8A5FA8FE98F9F01245E3F4F3C8F50
+:1047C0002B8F8F01D8011D921D921D921D928D017C
+:1047D000FE0171961F01CDA0DEA0812C912C540109
+:1047E000D6014D905D906D907D906D01A301920179
+:1047F000C501B4010E948C394B015C01F10161914A
+:1048000071911F0196012450310938A32F8F072E73
+:10481000000C880B990B0E94A73AA30192010E94F9
+:104820005C3BAF8DB8A16D937D938D939C93139753
+:10483000CE14DF04A9F6F801349780829182A28217
+:10484000B382EB8DFC8D0E171F0709F0BBCF2BA198
+:104850003CA138A32F8F690130E1C30ED11C0BA1FD
+:104860001CA189A59AA540969C8F8B8FD8011D927B
+:104870001D921D921D928D01FE0171961F01E9A4EA
+:10488000FAA4812C912C5401D7014D905D906D902C
+:104890007D907D01A3019201C501B4010E948C3974
+:1048A0004B015C01F101619171911F01970124504D
+:1048B00031093AA329A3072E000C880B990B0E94FB
+:1048C000A73AA30192010E945C3BA9A1BAA16D93F2
+:1048D0007D938D939C931397EB8DFC8DEE15FF05C7
+:1048E00099F6F801349780829182A282B3820C15E6
+:1048F0001D0509F0BBCF4D8D5E8D405C5F4F2D8D4A
+:104900003E8D90E080E0F901E80FF91FA98DBA8D86
+:10491000A80FB91FCD90DD90ED90FC90C082D182A0
+:10492000E282F38204968031910569F7898D9A8D30
+:1049300004969A8F898F205F3F4F4217530709F7DC
+:104940002D8D3E8D3A8F298F1C8E1B8EB12CA12C64
+:10495000A98DBA8DCD90DD90ED90FC90E894F7F89C
+:104960001501BFEF2B1A3B0AE98DFA8DFAA3E9A3D3
+:1049700085014101F3E08F16910409F1A9A1BAA1C3
+:1049800054964D905D906D907C905797E89477F891
+:10499000A7019601C301B2010E94573B18166CF0A3
+:1049A00026013701BFEF8B1A9B0AE9A1FAA1749681
+:1049B000FAA3E9A373016201DDCF8401F3CF0A15E5
+:1049C0001B0509F44AC0AD8DBE8D2B8D3C8DA20F09
+:1049D000B31F000F111F000F111FF801EE0FFF1F73
+:1049E000EE0FFF1FAD8CBE8CAE0EBF1E90E080E0C0
+:1049F0004D915D916D917D91F501C080D180E280F6
+:104A0000F3809D0124503109F901C082D182E282F4
+:104A1000F382F50141935193619371935F01019684
+:104A20008430910529F7EF8DF8A180819181A281D1
+:104A3000B3812BA13CA1020F131FF80140815181CA
+:104A400062817381EF8DF8A1408351836283738308
+:104A5000F80180839183A283B3836F8C78A0F4E004
+:104A60006F0E711C80EFA82EBB24BA942B8D3C8D49
+:104A7000A21AB30A098D1A8D23014101780134E18C
+:104A8000E30EF11C6101F501EE0DFF1D8B8D9C8D78
+:104A9000E80FF91FD80150962D913D914D915C91F1
+:104AA000539760817181828193810E945C3BE98D83
+:104AB000FA8D20813181428153810E94FD399B0111
+:104AC000AC01D7016D917D918D919C910E948B39A4
+:104AD000F70161937193819391937F01FFEFCF1A57
+:104AE000DF0A24E0C216D10471F6D201CD90DD9028
+:104AF000ED90FD902D01FD013497FAA3E9A3AF8D50
+:104B0000B8A12D913D914D915C91F8016089718919
+:104B1000828993890E945C3BA98DBA8D2D913D912C
+:104B20004D915C910E94FD399B01AC01C701B6011A
+:104B30000E948B39E9A1FAA16083718382839383F8
+:104B4000FFEF8F1A9F0A005F1F4F20E1A21AB108E2
+:104B500034E08316910409F091CFA98DBA8D549653
+:104B6000BA8FA98FEB8DFC8D7096FC8FEB8F510166
+:104B700078A26F8EF3E02F16310409F0E9CE8BA0F6
+:104B80009CA080E1880E911C8E01035F1F4FED8C6D
+:104B9000FE8C9CE3E90EF11CF401B291A29192917A
+:104BA00082914F01F80180839183A283B3835101E5
+:104BB000D12CC12CD8014D905D906D907C90BFEFB1
+:104BC000AB1ABB0AE4E0CE0ED11CF4E0AF16B10480
+:104BD000E9F0F801EC0DFD1D208131814281538106
+:104BE000F701EC0DFD1D60817181828193810E942E
+:104BF0005C3B9B01AC01C301B2010E948B39D8011F
+:104C00006D937D938D939C931397D4CFF70120815F
+:104C1000318142815381C301B2010E94FD39D80123
+:104C20006D937D938D939C931397B1E02B1A31086C
+:104C300004501109E4E1EE1AF108FFEF2F163F06C8
+:104C400009F0AACF8DA19EA10E94AF3C8FA198A58B
+:104C50000E94AF3C89A59AA50E94AF3C8BA19CA164
+:104C60000E94AF3C8D8D9E8D0E94AF3C89819A81C0
+:104C7000AB81BC818093660490936704A093680421
+:104C8000B09369048D819E81AF81B88580936A0459
+:104C900090936B04A0936C04B0936D0489859A85FE
+:104CA000AB85BC8580936E0490936F04A0937004D1
+:104CB000B09371048D859E85AF85B8898093720409
+:104CC00090937304A0937404B0937504AA960FB6DE
+:104CD000F894DEBF0FBECDBFDF91CF911F910F9132
+:104CE000FF90EF90DF90CF90BF90AF909F908F900C
+:104CF0007F906F905F904F903F902F9008951F92FC
+:104D00000F920FB60F9211242F933F938F939F937F
+:104D1000AF93BF938091510490915204A09153049A
+:104D2000B09154043091500423E0230F2D3758F5EF
+:104D30000196A11DB11D20935004809351049093BE
+:104D40005204A0935304B09354048091550490915D
+:104D50005604A0915704B09158040196A11DB11DAD
+:104D60008093550490935604A0935704B09358042D
+:104D7000BF91AF919F918F913F912F910F900FBE57
+:104D80000F901F90189526E8230F0296A11DB11DC4
+:104D9000D2CF1F920F920FB60F9211242F933F93F1
+:104DA0004F935F936F937F938F939F93AF93BF9333
+:104DB000EF93FF93E0910201F09103010995FF91B8
+:104DC000EF91BF91AF919F918F917F916F915F9183
+:104DD0004F913F912F910F900FBE0F901F901895FC
+:104DE0001F920F920FB60F9211242F933F934F9360
+:104DF0005F936F937F938F939F93AF93BF93EF9343
+:104E0000FF93E0910001F09101010995FF91EF916D
+:104E1000BF91AF919F918F917F916F915F914F91D2
+:104E20003F912F910F900FBE0F901F9018951F92DA
+:104E30000F920FB60F9211242F933F934F935F93CE
+:104E40006F937F938F939F93AF93BF93EF93FF9352
+:104E50008091B900887F803609F44AC0F0F5883225
+:104E600009F4A7C018F5803109F49BC0B8F4882371
+:104E700009F4F9C0883009F494C0FF91EF91BF9113
+:104E8000AF919F918F917F916F915F914F913F91E2
+:104E90002F910F900FBE0F901F901895883109F435
+:104EA00088C0803251F78093290414C0803409F4FB
+:104EB0009DC040F48033B9F38833F9F68093290418
+:104EC00085ECB0C0803509F485C0883509F496C0FA
+:104ED000883499F60E94E721D0CF883909F48CC034
+:104EE00038F5883729F050F4883611F0803729F6E4
+:104EF00083E080932A041092280457C0883809F46C
+:104F00007BC0803919F0803809F0B7CF8091280430
+:104F1000803208F071C0E091280481E08E0F809308
+:104F200028048091BB00F0E0E85FFB4F80833DC028
+:104F3000803B39F0E0F4803A09F479C0883A09F00E
+:104F40009CCF84E080932A041092050410920404FC
+:104F5000E0910204F0910304099580910404811109
+:104F60000FC081E0809304041092E20309C0803CEA
+:104F700009F4A6CF883C09F4A3CF883B09F07DCF84
+:104F8000E091050481E08E0F80930504F0E0EE517E
+:104F9000FC4F80818093BB009091050480910404B4
+:104FA00029C080914F048093BB0085EC8093BC00A6
+:104FB00064CF90914E0480914D04981758F5E0917C
+:104FC0004E0481E08E0F80934E04F0E0E35DFB4FD2
+:104FD0008081E9CFE0914E0481E08E0F80934E04F2
+:104FE0008091BB00F0E0E35DFB4F808390914E0425
+:104FF00080914D049817C8F285E8D8CFE0914E040F
+:1050000081E08E0F80934E048091BB00F0E0E35D61
+:10501000FB4F808380912C0481115CCF81E08093D1
+:105020002B0484EA8093BC0010922A0426CF85ECDE
+:105030008093BC0010922A0480912804803230F4BE
+:10504000E0912804F0E0E85FFB4F108260912804B3
+:1050500070E0E0910604F091070488E094E009957F
+:10506000109228040ACF1092290434CF1F920F9275
+:105070000FB60F9211242F933F934F935F936F932B
+:105080007F938F939F93AF93BF93EF93FF93809101
+:10509000DA049091DB048093B200809191039091A7
+:1050A0009203A0919303B09194030196A11DB11DA9
+:1050B0008093910390939203A0939303B0939403EE
+:1050C0008091910390919203A0919303B0919403E6
+:1050D0004091DE045091DF046091E0047091E1049E
+:1050E00084179507A607B70710F1809190038111E7
+:1050F0001EC081E080939003809191039091920370
+:10510000A0919303B0919403841B950BA60BB70B4E
+:105110008093910390939203A0939303B09394038D
+:10512000E091DC04F091DD04099510929003FF9169
+:10513000EF91BF91AF919F918F917F916F915F910F
+:105140004F913F912F910F900FBE0F901F90189588
+:105150001895CF931092E5041092E40488EE93E042
+:10516000A0E0B0E08093E6049093E704A093E80405
+:10517000B093E9048DEB91E09093E3048093E20413
+:105180001092F1051092F0058DEC98E0909368066E
+:10519000809367061092690610926A0610920A06BA
+:1051A0008FEC91E09093EF058093EE051092F3055C
+:1051B0001092F205109207061092FE051092FF055C
+:1051C00010920006109201068FEF809308068093DC
+:1051D0000C06E0E1F6E086E296E0CFEFC1938E1791
+:1051E0009F07E1F78DE99CE09093F7058093F60522
+:1051F0008CE89DE09093F9058093F80580E792E1B3
+:105200009093FB058093FA058EEB9AE09093FD0551
+:105210008093FC0530E020E040E069E082EF95E01B
+:105220000E949D0C10923A061092390687ED98E084
+:1052300090932706809326068EEE94E090932B069B
+:1052400080932A0682E080932C0610922D061092FD
+:1052500046061092640681E0809365068093660698
+:1052600087ED91E0909329068093280682EF95E0E0
+:105270000E94DB0EE0912806F09129060280F3815E
+:10528000E02D82EF95E009958AE399E090933C0642
+:1052900080933B06C0931B06C0931C06C0931D065B
+:1052A000CF910895CF93DF9300D0CDB7DEB7789438
+:1052B00084B5826084BD84B5816084BD85B582601B
+:1052C00085BD85B5816085BD80916E0081608093CC
+:1052D0006E00109281008091810082608093810035
+:1052E0008091810081608093810080918000816045
+:1052F000809380008091B10084608093B1008091A0
+:10530000B00081608093B00080917A0084608093C7
+:105310007A0080917A00826080937A0080917A008E
+:10532000816080937A0080917A00806880937A000F
+:105330001092C10069E574E090E080E00E941323C0
+:1053400080915904823010F01092590480915904D0
+:1053500081117AC066E171E081E090E00E94E02274
+:1053600062E171E085E090E00E94E0226EE071E091
+:1053700089E090E00E94E02267E371E08DE090E038
+:105380000E94892266E371E081E190E00E94B022F0
+:105390006DE071E082E190E00E94B02265E071E092
+:1053A00083E190E00E94E0226CE774E087E190E006
+:1053B0000E94E02268E774E08BE190E00E94C8223E
+:1053C00069E071E08CE190E00E94E02264E071E02D
+:1053D00080E290E00E94B02262E874E081E290E016
+:1053E0000E94C82263E874E082E290E00E94C82232
+:1053F00067E271E083E290E00E94892269E271E055
+:1054000087E290E00E9489226BE271E08BE290E0FB
+:105410000E9489226DE271E08FE290E00E94892271
+:1054200069E371E083E390E00E94892281E090E0EB
+:105430009A838983BE016F5F7F4F90E080E00E9476
+:10544000892281E08093590480915904813009F0C8
+:105450006CC066E171E081E090E00E943B2362E174
+:1054600071E085E090E00E943B236EE071E089E00E
+:1054700090E00E943B2367E371E08DE090E00E94A2
+:10548000272366E371E081E190E00E9413236DE041
+:1054900071E082E190E00E94132365E071E083E116
+:1054A00090E00E943B236CE774E087E190E00E946B
+:1054B0003B2368E774E08BE190E00E941D2369E0E4
+:1054C00071E08CE190E00E943B2364E071E080E2B7
+:1054D00090E00E94132362E874E081E290E00E9471
+:1054E0001D2363E874E082E290E00E941D2367E2DE
+:1054F00071E083E290E00E94272369E271E087E295
+:1055000090E00E9427236BE271E08BE290E00E9422
+:1055100027236DE271E08FE290E00E94272369E388
+:1055200071E083E390E00E94272362E082E00E9422
+:105530001F0A62E083E00E941F0A62E084E00E948A
+:105540001F0A60E080E10E941F0A62E08EE00E9474
+:105550001F0A60E084E10E941F0A60E081E10E946E
+:105560001F0A61E088E00E941F0A61E08AE00E9451
+:105570001F0A60E08AE00E94F10960E088E00E9472
+:10558000F109E091F605F091F70530E020E040E008
+:105590006AE082EF95E0099582EF95E00E945E2235
+:1055A00082EF95E00E9434228111FACF60E082EF11
+:1055B00095E00E940112E091F605F091F70530E0C8
+:1055C00020E040E06BE082EF95E0099586EF9DE0FA
+:1055D0009093680680936706E091F605F091F705D1
+:1055E00030E020E040910D016EE082EF95E00995FA
+:1055F00080918204882309F4D0C283EB91E00E9459
+:105600003C0980917A00866080937A0080917A00CC
+:10561000886080937A00789488E898E190930301F9
+:105620008093020180916900837F88608093690084
+:10563000E99A82EF95E00E945E2202E315E18EEA8C
+:1056400097E00E944A110093690610936A0689EE5A
+:1056500091E00E942B1F82EF95E00E94342281117D
+:10566000EECF11E01093C60488E592E09093C50454
+:105670008093C40488EC90E09093C3048093C204A8
+:105680000E941A1E1093C60480E991E09093C5040D
+:105690008093C4048CE291E09093C3048093C2048D
+:1056A0000E941A1E1093C60482E890E09093C504ED
+:1056B0008093C40488EE93E09093C3048093C20463
+:1056C0000E941A1E1AE00E944B140E94F5130E94B9
+:1056D000A7161150C1F780917804882309F460C29D
+:1056E00081E08093D9040E946123B1E92B2E312CF3
+:1056F000A8950E94240B00915D0410915E042091F6
+:105700005F0430916004601B710B820B930B603A55
+:1057100071058105910508F444C082E00E94C80922
+:10572000892B71F580915C048F5F80935C0481E02C
+:105730008093C60480E590E09093C5048093C404F0
+:1057400086E990E09093C3048093C20480913B016A
+:10575000813011F41092B7041092CE041092D60446
+:105760001092D5041092D0041092CF040E94240B02
+:1057700060935D0470935E0480935F049093600473
+:1057800010915C04153008F417C280913B01813000
+:1057900009F009C292E090933B0180935B04109260
+:1057A0005C048091BD04811107C082EF95E00E94E6
+:1057B0005E2281E08093BD048091CE0481110C941F
+:1057C000783780913B01813009F0A7C58091B704FB
+:1057D00010912F019091B80491110C9458388111B7
+:1057E00099C484E495E00E944A111E5E8091B5043C
+:1057F0009091B6048336910508F485C41092690629
+:1058000010936A062091D904222309F480C42091C0
+:10581000B3043091B4042C5F3F4F2930310508F0B8
+:1058200076C48091B1049091B2040E94B72180E5C2
+:1058300094E00E944A1180912701909128010AE08A
+:1058400010E0B8010E94CE3BEAE0E69F6001E79FCE
+:10585000D00C1124F12CE12C2091390130913A0126
+:1058600050E040E02C193D094E095F09A6E3B0E085
+:105870000E9447394B015C0180912D0190912E01CE
+:10588000B8010E94CE3BE69F9001E79F300D1124A6
+:1058900050E040E02C193D094E095F09C501B401F3
+:1058A0000E942839DA01C9010396A11DB11D809318
+:1058B000B00460912F01645E2FE042E00E9441102D
+:1058C00060912F01625E22E04DE380E00E94C20FF2
+:1058D0004091390150913A0190912F012091B004EB
+:1058E000935E453081E0580708F03CC42C5F20935C
+:1058F000690690936A06CA010E942D1F8EEA97E0FE
+:105900000E944A1180912F01882371F09FEF980F18
+:1059100090932F0192E3909369068C5080936A06CE
+:1059200089EE91E00E942B1F8091AF048823A1F1A2
+:105930008091AE04873008F017C48F5F8093AE0467
+:105940009091AD049F5F9093AD048730D9F410928D
+:1059500026018091D904882351F08091CA048111D5
+:1059600006C069E371E083E390E00E9489228091A0
+:10597000D90491E089278093D904809170008E7FAB
+:10598000809370000E94240B6093A9047093AA0472
+:105990008093AB049093AC0410912F01E3E0FE2EB2
+:1059A000F10E0EE0010F22E043E06F2D8BE40E9428
+:1059B0008C0F21E043E06F2D86E50E948C0F24E0E0
+:1059C00043E0602F8BE40E948C0F28E043E0602FBF
+:1059D00086E50E948C0FF4E0FF2EF10E00E02AE035
+:1059E000412F6CE482EF95E00E94DF0E41E1410F10
+:1059F0002AE06CE482EF95E00E94DF0E4AE06F2D12
+:105A000088E40E94DE0F4AE06F2D89E50E94DE0FD8
+:105A100080912F01825F9BE49093690680936A06D0
+:105A20008091D904882309F4C0C38091CA048111EC
+:105A3000B9C38CE093E00E942B1F1091AE04173085
+:105A400019F482E00E9452098091AD0421E0280FF0
+:105A5000220F41E0410F440F60912F01681B685FE6
+:105A60000091260180E5811B0E9478108091AE0490
+:105A7000873019F481E00E9452098091D90488236B
+:105A800009F4DBC3E090A704F090A8040E94240B63
+:105A90000091A3041091A4042091A5043091A604C0
+:105AA0004B015C01801A910AA20AB30A9701A4ED86
+:105AB000BEEF0E94E83B2FEF37E040E050E00E944D
+:105AC00028392E533E4F4F4F5F4F442755272815F7
+:105AD00039054A055B0508F047C005E914E073EA9B
+:105AE000A72E74E0B72E29E030E0D7010E94F03BEA
+:105AF0002FEF37E040E050E00E94283969017A0139
+:105B0000B3E0CB0ED11CE11CF11CDD24EE24FF24FC
+:105B100026013701E1E04E1A51086108710881E061
+:105B200090E0A0E0B0E0F2E0CF16D104E104F1048F
+:105B30005CF00E94BA38A30192010E942839DC016E
+:105B4000CB010196A11DB11DF80181938F01AE1605
+:105B5000BF0629F70E94240B6093A3047093A4044A
+:105B60008093A5049093A60405E914E06AE4D62E78
+:105B7000D8018D918D0190912F0150E2F52EF90EF3
+:105B8000EF2CE81AEF1410F40C946738811110C34D
+:105B9000B12CCF2CFD2CED2C11C387ED91E02FCD36
+:105BA0001092D904A0CD873009F4F9CD81E080931B
+:105BB0003B0180935A04F3CD0E94240BC0905D04F6
+:105BC000D0905E04E0905F04F09060046C197D0951
+:105BD0008E099F09653071408105910508F4E1CD7A
+:105BE00080913B01813091F4123009F0D8CD909131
+:105BF00094049111D4CD9091B8049111D0CD80939B
+:105C0000AF041092CA041092C704C9CD823009F0C3
+:105C10004EC0113009F0C3CD80918B04811104C0B6
+:105C200084E080933B01BBCD8B3F11F0813011F4B8
+:105C300083E0F7CF8F3F11F0853011F485E0F1CF8D
+:105C40008E3F11F0843011F486E0EBCF8C3F11F0E1
+:105C5000823011F488E0E5CF8D3F19F0833009F0F0
+:105C60009ECD80E090E0A0E4B1E480931601909393
+:105C70001701A0931801B09319018DEC9CECACE0D6
+:105C8000B0E48093120190931301A0931401B09398
+:105C900015018AE999E9A9E9BFE380930E01909380
+:105CA0000F01A0931001B093110187E0BACF8330A8
+:105CB00009F052C0113009F072CD80918904813011
+:105CC00081F024F481116BCD82E0ABCF823031F1D1
+:105CD000833009F064CD80918804811131C083E064
+:105CE00004C090918804911103C08093880457CD1B
+:105CF000913009F054CD80918704811104C081E076
+:105D0000809387044CCD66E171E081E090E00E94D1
+:105D1000E022109287041092880441CD809188047B
+:105D2000811102C082E0E1CF823009F038CD80914C
+:105D30008704882321F362E171E085E090E0E7CFFA
+:105D4000833009F02CCD809187048823C1F26EE066
+:105D500071E089E090E0DBCF843069F5113009F023
+:105D60001ECD80918604813049F0823009F0AACF9F
+:105D700080918504811115C082E004C09091850452
+:105D8000911103C0809385040ACD913009F007CDAD
+:105D900067E371E08DE090E00E9489221092850413
+:105DA000FECC823009F0FBCC66E371E081E190E04B
+:105DB0000E94B022F3CF853009F04FC0113009F0B6
+:105DC000EECC809184048130D9F00CF47BCF82300A
+:105DD00059F1833009F0E3CC909181049923A9F023
+:105DE000933009F0DCCC63E874E082E290E00E943A
+:105DF000C82263E874E082E290E00E941D2311C093
+:105E000080918104811104C081E080938104C7CC1A
+:105E1000813009F0C4CC6DE071E082E190E00E9435
+:105E2000B02210928104BBCC90918104992369F334
+:105E3000923009F0B4CC62E874E081E290E00E9414
+:105E4000C82280918204882329F083EB91E00E948C
+:105E50003C09E7CF87ED91E0FACF8630D1F51130DC
+:105E600009F09DCC80918004813099F00CF42ACF08
+:105E7000823019F1833009F092CC90917B04992300
+:105E800069F0933009F08BCC69E071E08CE190E02F
+:105E90000FC080917B04811104C081E080937B045A
+:105EA0007ECC813009F07BCC65E071E083E190E04D
+:105EB0000E94E02210927B0472CC90917B04992383
+:105EC00069F3923009F06BCC6CE774E087E190E005
+:105ED000EFCF883009F09BC0113009F060CC809181
+:105EE0007A04813009F46FC00CF4ECCE823009F4EE
+:105EF0007DC0833009F053CC90917704992309F445
+:105F000066C0933009F04BCC80917904882309F462
+:105F10006AC0C12CD12C7601B12CA12C10E000E07C
+:105F2000A89526013701AAE0759467945794479481
+:105F3000AA95D1F74201C2018A199B090597F0F091
+:105F400082EF95E00E945E2292E390936906A0E1C1
+:105F5000A0936A06C4010E942D1FBBE4B09369069A
+:105F6000E0E1E0936A068FEE91E00E942B1F82EF42
+:105F700095E00E9434228111E7CF520160E0C80110
+:105F80000E941A390F5F1F4FF4E6CF0ED11CE11C9F
+:105F9000F11CC11420E9D20621E0E206F10409F067
+:105FA000BFCFA89584B7877F84BF80916000886148
+:105FB0008093600080E18093600080916000886041
+:105FC0008093600010C090917704911103C080937A
+:105FD0007704E5CB913009F0E2CB64E071E080E238
+:105FE00090E00E94B02210927704D9CB8091770480
+:105FF0008111D5CB8091780491E089278093780432
+:1060000068E774E08BE190E00E94C822C8CB87303B
+:1060100009F0C5CB113009F0C2CBE0917604E7302E
+:1060200008F0BDCB0E2E000CFF0BE75EFF4C0C946E
+:10603000E23B20303830503061306F307D302030DE
+:1060400082E080933B011092760466E171E081E08A
+:1060500090E00E943B2362E171E085E090E00E94C5
+:106060003B236EE071E089E090E00E943B2397CBF8
+:1060700080916104811106C081E080936104809366
+:10608000D9048DCB813009F08ACB67E271E083E2DD
+:1060900090E00E948922109261041092D9047FCB73
+:1060A00080916104811105C082E08093610481E0E8
+:1060B000E6CF823009F073CB69E271E087E290E0CD
+:1060C000E8CF80916104811102C083E0EECF83307C
+:1060D00009F065CB6BE271E08BE290E0DACF809162
+:1060E0006104811102C084E0E0CF843009F057CB15
+:1060F0006DE271E08FE290E0CCCF0E94612386E0F8
+:10610000809376044CCB2AE02093690679CB0E94D9
+:106110002D1F8DCB82EC90E00E944A118CE0809381
+:106120006906185F10936A0681EF91E00E942B1FA9
+:1061300080912F018F5E97E19093690680936A06A4
+:1061400089EF91E00E942B1F82E00E94520922E118
+:106150004DE360912F0180E00E94C20F81E00E9418
+:10616000520965CB2A51C3CB0E94240B0091A9048C
+:106170001091AA042091AB043091AC04601B710B08
+:10618000820B930B6D3271408105910508F404CCAC
+:106190001092AE041092AD0481E08093260110921B
+:1061A000AF04FACB8BE092E046CC8FE092E043CC98
+:1061B000BB24B394CD2C8E2DEF2CF82EBFEFFB1209
+:1061C00002C04EEFF42EFE1470F5D394E8E5DE1213
+:1061D000CFCC10912F01809194048823C9F18EEACD
+:1061E00097E00E944A110FE500936906135F109330
+:1061F0006A0683E192E00E942B1F80912F01835E4B
+:106200000093690680936A068BE192E00E942B1F3F
+:1062100082E00E94520920E248E260912F018DE560
+:106220000E94C20F3DC16C2D8E2DBB2011F06E2D32
+:106230008C2D0E94350FE394C6CF40912F01415E13
+:1062400000E02EE06AE482EF95E00E94DF0EC1CF0D
+:1062500082EC90E00E944A1104E600936906195FFF
+:1062600010936A066091B9047091BA048091BB04DE
+:106270009091BC0441E050E00E94E02060912F0129
+:106280006F5F2FE041E089E70E948C0F80912F0122
+:10629000895F9BE79093690680936A0687EF91E098
+:1062A0000E942B1F80912F018D5E009369068093C1
+:1062B0006A0660919004709191048091920490918B
+:1062C000930441E050E00E94E02080912F018D5E18
+:1062D0009AE79093690680936A0683E292E00E94AF
+:1062E0002B1F80912F01805E0093690680936A06C0
+:1062F00060918F0470E090E080E04AE00E94E71E29
+:1063000080912F01805E98E79093690680936A06DA
+:106310008FEE91E00E942B1F53C2823009F004C11E
+:1063200080918E04882309F4BFC080918C049091E1
+:106330008D04059690938D0480938C040AE111E0FE
+:1063400046E251E0F80121913191BF01625071099B
+:106350002B5F3F4FDB012D933C934E175F0799F75F
+:10636000D8012D913D918D012B3F310544F09D01C8
+:106370002250310943ED5FEFD9014D935C93E01753
+:10638000F10771F7C29764F010928E0410928D0499
+:1063900010928C0480918B04863014F010928B0440
+:1063A0008EEA97E00E944A1180911A0190911B0198
+:1063B0009C012E5C3F4F293C310548F480936906CF
+:1063C00085E180936A0685E292E00E942B1F80910E
+:1063D0001C0190911D019C012E5C3F4F293C310511
+:1063E00048F48093690685E180936A0689E292E029
+:1063F0000E942B1F80911E0190911F019C012E5C19
+:106400003F4F293C310548F48093690685E180932C
+:106410006A0680E392E00E942B1F809120019091F8
+:1064200021019C012E5C3F4F293C310548F48093AB
+:10643000690685E180936A0687E392E00E942B1F3C
+:1064400080912201909123019C012E5C3F4F293CB9
+:10645000310548F48093690685E180936A068EE3EE
+:1064600092E00E942B1F80912401909125019C01B4
+:106470002E5C3F4F293C310548F48093690685E145
+:1064800080936A0685E492E00E942B1F82E00E94BE
+:10649000520901E024E148E266E08BE20E947810B4
+:1064A00081E00E9452098CC180918A04882309F4FA
+:1064B00077CF80918C0490918D04059790938D04F3
+:1064C00080938C040AE111E046E251E0F801219149
+:1064D0003191BF016250710925503109DB012D93C3
+:1064E0003C934E175F0799F7D8012D913D918D018F
+:1064F0002A363F4F34F4980122503109D9012D92A8
+:106500003C92E017F10781F78F3C9F4F0CF048CF8A
+:1065100010928A0410928D0410928C0480918B0446
+:106520008B3F0CF43BCF3CCF833009F013C102E02A
+:10653000009369061EE010936A068CE492E00E94C4
+:106540002B1F1093690610936A06609116017091D3
+:106550001701809118019091190141E050E00E94CB
+:10656000E02082E58093690610936A068EE492E04B
+:106570000E942B1F8EE58093690610936A06609136
+:10658000120170911301809114019091150141E065
+:1065900050E00E94E020009369060DE100936A0636
+:1065A00087E292E00E942B1F1093690600936A060F
+:1065B00060910E0170910F01809110019091110175
+:1065C00041E050E00E94E02080918904823009F48B
+:1065D00047C0833009F481C0813009F0F1C0809157
+:1065E000880420E140E3813009F047C282E00E9444
+:1065F000520920E140E361E080E00E94C20F8091F7
+:106600008704882309F44CCF60911601709117011B
+:1066100080911801909119010E94763A11E061155C
+:1066200071058105910579F010E02AE030E040E045
+:1066300050E00E945A39CA01B9011F5F6115710506
+:106640008105910591F7612F660F610F660F6E5EF0
+:1066500000E02AE04FE082EF95E00E94DF0E20CFBD
+:1066600080918804823091F50E94520920E140E334
+:1066700061E080E50E94C20F80918704882309F4BD
+:106680000FCF6091120170911301809114019091CC
+:1066900015010E94763A11E0611571058105910599
+:1066A00079F010E02AE030E040E050E00E945A39F2
+:1066B000CA01B9011F5F611571058105910591F747
+:1066C000612F660F610F660F6E59C2CF20E140E364
+:1066D00061E080E50E94E11073C08091880420E1B0
+:1066E00040E3833009F061C182E00E94520920E159
+:1066F00040E360E180E00E94C20F8091870488231C
+:1067000009F4CECE60910E0170910F0180911001BD
+:10671000909111010E94763A11E061157105810591
+:10672000910579F010E02AE030E040E050E00E946E
+:106730005A39CA01B9011F5F6115710581059105BB
+:1067400091F7612F660F610F660F6E5E00E02AE021
+:106750004EE181CF843009F02AC112E0109369061E
+:106760003EE0F32EF0926A0680E592E00E942B1F35
+:1067700009E600936906F0926A06809137019091CC
+:1067800038010E942D1F109369061DE110936A06BF
+:1067900080E692E00E942B1F0093690610936A0620
+:1067A0006091360170E090E080E04AE00E94E71ED0
+:1067B00080918604813009F4DEC0823009F4E8C09B
+:1067C00082EF95E00E943422811102C01092BD0434
+:1067D0000E941A1E0E94240B0091BE041091BF0457
+:1067E0002091C0043091C104601B710B820B930B8C
+:1067F0000091320110913301209134013091350123
+:10680000061717072807390760F40E94A7160E9489
+:10681000240B6093BE047093BF048093C0049093D4
+:10682000C1048091D904882309F4E9C380917000E0
+:1068300080FD0EC01092D8041092D7041092D60496
+:106840001092D50485E999E00E9455090E94B11380
+:106850000E94240B0091D1041091D2042091D30402
+:106860003091D404601B710B820B930B6D3B724013
+:106870008105910508F475C01091CB048EE00E944B
+:10688000C8091817190651F181E018271093CB0495
+:106890001092D8041092D7049091CA049923F1F071
+:1068A0001092CA042091C8043091C90430933A016F
+:1068B000209339011092C9041092C8041092C704A1
+:1068C0008093C60486E990E09093C5048093C40445
+:1068D0008CE291E09093C3048093C2048091D7042A
+:1068E0009091D80420913701309138018217930795
+:1068F00009F058C32091CA04211154C369E371E01F
+:1069000083E390E00E94892281E08093CA0480930F
+:10691000C60486E990E09093C5048093C4048CE299
+:1069200091E09093C3048093C2048091360190E07B
+:106930002091390130913A013093C9042093C80461
+:106940008217930720F490933A01809339010E94B3
+:10695000240B6093D1047093D2048093D30490935A
+:10696000D40480E090E0892B11F40C94782B0E94E1
+:1069700000000C94752B80918504813009F07BC058
+:1069800082E00E94520920E140E861E080E048CCCA
+:106990008091850420E140E8823039F482E00E9451
+:1069A000520920E140E860E1F1CF60E167C0853045
+:1069B00009F066C080918404833031F582E08093D1
+:1069C00069061EE010936A0682E792E00E942B1F80
+:1069D00086E58093690610936A068091830481118D
+:1069E00010C08FE792E00E942B1F809184048230B8
+:1069F000D1F18330D9F1813009F0E2CE8091810468
+:106A0000BCCF88E892E0EFCF12E0109369062EE049
+:106A1000F22EF0926A0681E992E00E942B1F0AE6AC
+:106A200000936906F0926A0660910D0170E090E0B3
+:106A300080E04AE00E94E71E109369061DE1109372
+:106A40006A068EE992E00E942B1F0093690610935C
+:106A50006A0680918204811103C087E393E0C3CF6B
+:106A60008BEA92E0C0CF8091810494CF8091810421
+:106A7000833009F485CF20E140E861E080E02ACE50
+:106A8000863009F0A4C080918004833009F03FC0B3
+:106A900082E0809369061EE010936A068FEA92E016
+:106AA0000E942B1F84E68093690610936A06C090AB
+:106AB0000901D0900A01E0900B01F0900C0123E352
+:106AC00033E343E550E4C701B6010E94573B41E080
+:106AD00050E087FF73C023E333E343E550E4C7018D
+:106AE000B6010E94F83987FF04C08FEB92E00E9444
+:106AF0002B1F80918004823009F463C0833009F435
+:106B000063C0813009F05CCE80917B0436CF12E007
+:106B1000109369069EE0F92EF0926A0683EC92E0EB
+:106B20000E942B1F04E600936906F0926A066091AA
+:106B3000050170910601809107019091080142E0E2
+:106B400050E00E94E020109369061DE110936A0650
+:106B500083ED92E00E942B1FC0907C04D0907D04B6
+:106B6000E0907E04F0907F0420E030E0A901C701AE
+:106B7000B6010E94573B87FD1AC08CE580936906D9
+:106B800010936A068FE892E00E942B1F009369061B
+:106B900010936A0660917C0470917D0480917E045C
+:106BA00090917F0442E050E00E94E020A2CF8EE569
+:106BB0008093690610936A0642E050E0C701B6016F
+:106BC000F3CF80917B04E6CE80917B0451CF883057
+:106BD00009F057C080917A04833031F582E08093C8
+:106BE00069061EE010936A0683EE92E00E942B1F56
+:106BF00089E68093690610936A0680917904882358
+:106C000081F08AEE92E00E942B1F80917A048230FC
+:106C100091F1833099F1813009F0D2CD80917704E0
+:106C2000ACCE8EEE92E0EFCF12E0109369068EE0CC
+:106C3000F82EF0926A0681EF92E00E942B1F80915D
+:106C4000040109E600936906F0926A06082E000C1A
+:106C5000990B0E94B721109369061DE110936A06F3
+:106C600083E093E00E942B1F0093690610936A064D
+:106C700080917804C4CF809177048CCE8091770482
+:106C8000F7CE873009F09CCD82EC90E00E944A114B
+:106C90008091760410926906863009F07CC007E086
+:106CA00000936A0680E193E00E942B1F19E1109384
+:106CB000690600936A06609166047091670480918A
+:106CC0006804909169044AE050E00E94E02010922C
+:106CD00069060FE000936A0684E193E00E942B1F8F
+:106CE0001093690600936A0660916A0470916B04C0
+:106CF00080916C0490916D044AE050E00E94E02085
+:106D00001092690608E100936A0688E193E00E9408
+:106D10002B1F1093690600936A0660916E047091B0
+:106D20006F0480917004909171044AE050E00E94D9
+:106D3000E0201092690600E200936A068CE193E07D
+:106D40000E942B1F1093690600936A0660917204DB
+:106D50007091730480917404909175044AE050E03E
+:106D60000E94E02080917604833009F49FC00CF0EB
+:106D70007AC0813009F484C0823009F021CD80913D
+:106D80006104823009F08DC00E9452092BE045E178
+:106D900069E084E345CA87E080936A0680E293E075
+:106DA0000E942B1F1092690612E110936A0689E374
+:106DB00093E00E942B1F8EE18093690610936A0670
+:106DC00080912701909128010E942D1F86E38093D6
+:106DD000690610936A068091290190912A010E9408
+:106DE0002D1F80E58093690610936A0680912B0120
+:106DF00090912C010E942D1F8AE6809369061093C2
+:106E00006A0680912D0190912E010E942D1F00E0B5
+:106E100020E846E160E082EF95E00E94DF0E1092EC
+:106E200069061FE110936A068EE393E00E942B1F10
+:106E300080E38093690610936A0660916204709102
+:106E40006304809164049091650450E040E00E94E6
+:106E5000E02086E68093690610936A0687E493E053
+:106E60000E942B1F7FCF843091F1853009F0A8CC90
+:106E700082E00E94520929E04CE167E184E6D0C932
+:106E800080916104813041F482E00E9452092BE03C
+:106E900045E169E08CE1C4C92BE045E169E08CE1A2
+:106EA00019CC2BE045E169E084E314CC80916104C6
+:106EB000833041F482E00E9452092BE045E169E011
+:106EC0008EE4AEC92BE045E169E08EE403CC80910D
+:106ED0006104843041F482E00E9452092BE045E1D4
+:106EE00069E088E69DC92BE045E169E088E6F2CBE0
+:106EF0009091CD0480913101292F092E000C330B84
+:106F0000281B310987FD3395121613060CF03EC07D
+:106F1000981719F08F5F809331019091CC04809184
+:106F20003001292F092E000C330B281B310987FD56
+:106F300033951216130684F5981719F08F5F809316
+:106F400030018EEA97E00E944A11809130019091C1
+:106F500031019093690680936A066091B90470913B
+:106F6000BA048091BB049091BC0441E050E00E94BF
+:106F7000E02080913001815090913101955E909395
+:106F8000690680936A068CE493E0C4C9232B29F236
+:106F9000981719F28150BFCF232B99F2981789F2D5
+:106FA0008150CDCF8930974008F4D1CC80917000CA
+:106FB0008E7F809370008091C8049091C904909353
+:106FC0003A01809339011092C9041092C8041092BA
+:106FD000D9041092D8041092D7041092CA0481E008
+:106FE0008093C60486E990E09093C5048093C4041E
+:106FF00088EE93E09093C3048093C204A8CC809160
+:10700000700080FD0EC01092D8041092D704109228
+:10701000D6041092D5048AE798E10E9455090E948F
+:10702000B1138091D5049091D604843B910508F466
+:1070300098CC2091CF043091D004AC01421B530B6B
+:107040004430510530F181E080933B018093CE04C0
+:107050000E94BA382AE530E040E050E00E9428392A
+:107060006093CD040E94BA3824E130E040E050E063
+:107070000E942839655F7F4F8F4F9F4F6093CC04EC
+:107080008091D5049091D6049093D0048093CF043E
+:1070900068CC8A3F9F4F08F464CC84EB90E09093D7
+:1070A000D6048093D5041092D0041092CF0459CC0A
+:1070B000811130C88EEA97E00E944A1185E08093E2
+:1070C0006906125F10936A068EEF91E03BC8BB24FD
+:1070D000B394CD2C811172C80C94C82D8F929F92BD
+:1070E000AF92BF92CF92DF92EF92FF92CF93DF9356
+:1070F000EC01688179818A819B8161157105810527
+:10710000910521F464E279ED8BE597E02DE133EF11
+:1071100041E050E00E94283949015A019B01AC012D
+:10712000A7EAB1E40E9447396B017C01ACEEB4EFF1
+:10713000A50194010E945539C60ED71EE81EF91EFE
+:10714000F7FE06C081E0C81AD108E10880E8F80A15
+:10715000C882D982EA82FB82C701B6019F77DF919C
+:10716000CF91FF90EF90DF90CF90BF90AF909F9026
+:107170008F9008958F929F92AF92BF92CF92DF929D
+:10718000EF92FF9260913C0170913D0180913E0130
+:1071900090913F01611571058105910521F464E22B
+:1071A00079ED8BE597E02DE133EF41E050E00E946F
+:1071B000283949015A019B01AC01A7EAB1E40E94B8
+:1071C00047396B017C01ACEEB4EFA50194010E943C
+:1071D0005539C60ED71EE81EF91EF7FE06C081E01F
+:1071E000C81AD108E10880E8F80AC0923C01D092A0
+:1071F0003D01E0923E01F0923F01C701B6019F7749
+:10720000FF90EF90DF90CF90BF90AF909F908F90C6
+:10721000089560933C0170933D0180933E019093EB
+:107220003F010895F999FECF92BD81BDF89A992743
+:1072300080B50895262FF999FECF1FBA92BD81BD62
+:1072400020BD0FB6F894FA9AF99A0FBE01960895E8
+:10725000052E97FB1EF400940E943F3957FD07D07E
+:107260000E945A3907FC03D04EF40C943F395095D4
+:107270004095309521953F4F4F4F5F4F0895909522
+:107280008095709561957F4F8F4F9F4F08950E9415
+:107290007C39A59F900DB49F900DA49F800D911DEA
+:1072A00011240895B7FF0C9447390E944739821B77
+:1072B000930B0895A1E21A2EAA1BBB1BFD010DC062
+:1072C000AA1FBB1FEE1FFF1FA217B307E407F50796
+:1072D00020F0A21BB30BE40BF50B661F771F881F72
+:1072E000991F1A9469F760957095809590959B0108
+:1072F000AC01BD01CF010895A29FB001B39FC001B1
+:10730000A39F700D811D1124911DB29F700D811DD1
+:107310001124911D08955058BB27AA270E94A33914
+:107320000C941D3B0E940F3B38F00E94163B20F04E
+:1073300039F49F3F19F426F40C940C3B0EF4E095BD
+:10734000E7FB0C94063BE92F0E942E3B58F3BA173B
+:10735000620773078407950720F079F4A6F50C946B
+:10736000503B0EF4E0950B2EBA2FA02D0B01B90166
+:1073700090010C01CA01A0011124FF27591B99F0AB
+:10738000593F50F4503E68F11A16F040A22F232FB7
+:10739000342F4427585FF3CF469537952795A79507
+:1073A000F0405395C9F77EF41F16BA0B620B730BAE
+:1073B000840BBAF09150A1F0FF0FBB1F661F771F1F
+:1073C000881FC2F70EC0BA0F621F731F841F48F4D4
+:1073D000879577956795B795F7959E3F08F0B0CF5D
+:1073E0009395880F08F09927EE0F97958795089544
+:1073F0000E94E23A08F481E008950E94113A0C9448
+:107400001D3B0E94163B58F00E940F3B40F029F4B0
+:107410005F3F29F00C94063B51110C94513B0C94A6
+:107420000C3B0E942E3B68F39923B1F3552391F353
+:10743000951B550BBB27AA2762177307840738F0E3
+:107440009F5F5F4F220F331F441FAA1FA9F335D040
+:107450000E2E3AF0E0E832D091505040E695001CF4
+:10746000CAF72BD0FE2F29D0660F771F881FBB1FAE
+:10747000261737074807AB07B0E809F0BB0B802D8C
+:10748000BF01FF2793585F4F3AF09E3F510578F0B8
+:107490000C94063B0C94513B5F3FE4F3983ED4F3CD
+:1074A000869577956795B795F7959F5FC9F7880F8C
+:1074B000911D9695879597F90895E1E0660F771FDE
+:1074C000881FBB1F621773078407BA0720F0621B6F
+:1074D000730B840BBA0BEE1F88F7E09508950E949A
+:1074E000763A6894B1110C94513B08950E94363B52
+:1074F00088F09F5798F0B92F9927B751B0F0E1F075
+:10750000660F771F881F991F1AF0BA95C9F714C024
+:10751000B13091F00E94503BB1E008950C94503B83
+:10752000672F782F8827B85F39F0B93FCCF386955D
+:1075300077956795B395D9F73EF4909580957095BA
+:1075400061957F4F8F4F9F4F0895E89409C097FB37
+:107550003EF490958095709561957F4F8F4F9F4F2A
+:107560009923A9F0F92F96E9BB279395F69587956E
+:1075700077956795B795F111F8CFFAF4BB0F11F431
+:1075800060FF1BC06F5F7F4F8F4F9F4F16C08823D8
+:1075900011F096E911C0772321F09EE8872F762F0E
+:1075A00005C0662371F096E8862F70E060E02AF04F
+:1075B0009A95660F771F881FDAF7880F969587953B
+:1075C00097F90895990F0008550FAA0BE0E8FEEF10
+:1075D00016161706E807F907C0F012161306E40797
+:1075E000F50798F0621B730B840B950B39F40A2690
+:1075F00061F0232B242B252B21F408950A2609F46E
+:10760000A140A6958FEF811D811D089597F99F6771
+:1076100080E870E060E008959FEF80EC089500241A
+:107620000A941616170618060906089500240A94E7
+:1076300012161306140605060895092E0394000C6D
+:1076400011F4882352F0BB0F40F4BF2B11F460FFFC
+:1076500004C06F5F7F4F8F4F9F4F089557FD905825
+:10766000440F551F59F05F3F71F04795880F97FB06
+:10767000991F61F09F3F79F08795089512161306C0
+:107680001406551FF2CF4695F1DF08C016161706EF
+:107690001806991FF1CF8695710561050894089524
+:1076A000E894BB2766277727CB0197F908950E94B6
+:1076B000E23A08F48FEF08950E946F3B0C941D3B53
+:1076C0000E940F3B38F00E94163B20F0952311F0EA
+:1076D0000C94063B0C940C3B11240C94513B0E94DF
+:1076E0002E3B70F3959FC1F3950F50E0551F629F9D
+:1076F000F001729FBB27F00DB11D639FAA27F00D0B
+:10770000B11DAA1F649F6627B00DA11D661F829F31
+:107710002227B00DA11D621F739FB00DA11D621F16
+:10772000839FA00D611D221F749F3327A00D611D33
+:10773000231F849F600D211D822F762F6A2F112415
+:107740009F5750409AF0F1F088234AF0EE0FFF1F48
+:10775000BB1F661F771F881F91505040A9F79E3F9F
+:10776000510580F00C94063B0C94513B5F3FE4F3D1
+:10777000983ED4F3869577956795B795F795E795F5
+:107780009F5FC1F7FE2B880F911D9695879597F9FE
+:1077900008950E94E23A880B990B0895AA1BBB1B1F
+:1077A00051E107C0AA1FBB1FA617B70710F0A61B01
+:1077B000B70B881F991F5A95A9F780959095BC0122
+:1077C000CD010895EE0FFF1F0590F491E02D09946F
+:1077D0000E947C39332312F48A1B9B0B0C94F23BDE
+:1077E0000E947C39B7FF0895821B930B08950F9375
+:1077F0001F93CF93DF93869F8001879F100D969FE5
+:10780000100D1124C8010E94133CEC01009729F0CF
+:10781000A80170E060E00E94383DCE01DF91CF9179
+:107820001F910F9108950F931F93CF93DF93823091
+:10783000910510F482E090E0E0916D06F0916E0603
+:1078400030E020E0B0E0A0E0309799F42115310558
+:1078500009F44AC0281B390B24303105D8F58A8138
+:107860009B816115710589F1FB0193838283FE0180
+:1078700011C0408151810281138148175907E0F0FE
+:107880004817590799F4109761F012960C931297C4
+:1078900013961C933296CF01DF91CF911F910F91D8
+:1078A000089500936D0610936E06F4CF21153105EF
+:1078B00051F04217530738F0A901DB019A01BD01CD
+:1078C000DF01F801C1CFEF01F9CF90936E068093ED
+:1078D0006D06CDCFFE01E20FF31F819391932250ED
+:1078E000310939832883D7CF20916B0630916C06FC
+:1078F000232B41F4209142013091430130936C06D7
+:1079000020936B06209140013091410121153105F2
+:1079100041F42DB73EB74091440150914501241BDD
+:10792000350BE0916B06F0916C06E217F307A0F4BB
+:107930002E1B3F0B2817390778F0AC014E5F5F4FC5
+:107940002417350748F04E0F5F1F50936C06409385
+:107950006B06819391939FCFF0E0E0E09CCFCF93B3
+:10796000DF930097E9F0FC01329713821282A09115
+:107970006D06B0916E06ED0130E020E01097A1F4A5
+:1079800020813181820F931F20916B0630916C060C
+:107990002817390709F061C0F0936C06E0936B0675
+:1079A000DF91CF910895EA01CE17DF07E8F54A810C
+:1079B0005B819E0141155105B1F7E901FB83EA8323
+:1079C00049915991C40FD51FEC17FD0761F48081CF
+:1079D00091810296840F951FE901998388838281A2
+:1079E00093819B838A83F0E0E0E012968D919C91D5
+:1079F00013970097B9F52D913C911197CD010296FF
+:107A0000820F931F20916B0630916C06281739075F
+:107A100039F6309751F510926E0610926D06B093BC
+:107A20006C06A0936B06BCCFD383C2834081518187
+:107A3000840F951FC817D90761F44E5F5F4F888187
+:107A40009981480F591F518340838A819B81938379
+:107A500082832115310509F0B0CFF0936E06E093D3
+:107A60006D069ECFFD01DC01C0CF13821282D7CFFD
+:107A7000DC0101C06D9341505040E0F70895F89447
+:027A8000FFCF36
+:107A8200300B300B1E295C9F403333534032666605
+:107A9200264033330B410000C8410000320064002D
+:107AA2009600C800FA0001310006018701E60120B4
+:107AB2001532C2010000C8B40040010101000000FB
+:107AC20000006F0680000A005E018A02AC031815EE
+:107AD200A015C019FF1815A115C819FF1815AE1960
+:107AE200FF1815AF19FF1815AE15D5168015A81673
+:107AF2001F15D316001540158D16141520160015E6
+:107B0200A115C815DA16021581168F15D916F115A9
+:107B1200DB1640152E15A415A619FF0001140A64E0
+:107B220064323200127A00000428961004000080A9
+:107B3200002000DD0E640E370E00000000F00BC3C3
+:107B42000BD71E990BBC0BA90B9A0B00000000333C
+:107B52001FAE1ED71ED61EDB0E820E580E6E616E33
+:107B620000696E66006F76660076312E303300252E
+:107B72000054313220414443004849474800E689D5
+:107B82008BE69F84E69CAAE68EA500E4BC9100E504
+:107B9200819C00E794B520E58E8B00E8BF8720E446
+:107BA200BD8E00560050494400E4BC91E79CA00001
+:107BB200E5B18FE5B99500E794B5E6BA9000E6A085
+:107BC200A1E5878600E78399E99381005000490087
+:107BD200E4BC91E79CA0E697B6E997B42853290044
+:107BE200E4BC91E79CA0E6B8A9E5BAA628E28483A2
+:107BF2002900E6978BE8BDACE696B9E5909100E9DD
+:107C0200A1BA2BE980862D00E9A1BA2DE980862B45
+:107C120000E5B18FE5B995E4BAAEE5BAA600E5B1E3
+:107C22008FE5B995E696B9E590910031383000E4D8
+:107C3200BD8EE58E8BE68AA5E8ADA628562900E51D
+:107C420085B300E59FBAE58786E794B5E58E8B2874
+:107C5200562900E794B5E6BA90E794B5E58E8B28ED
+:107C6200562900E9878DE7BDAE00594553004E4FB6
+:107C720000E586B7E7ABAFE8A1A5E581BF28E284BE
+:107C8200832900E5BC80E69CBAE58AA0E783AD00C3
+:107C920050303A0050313A0050323A0050333A00F4
+:107CA2004144432020203130202020333530202011
+:107CB20036353020203934300054656D70004E6FF7
+:107CC20077204144433A005361766500E2848300A1
+:00000001FF
diff --git a/v1.03/v1.03.ino.with_bootloader.standard.hex b/v1.03/v1.03.ino.with_bootloader.standard.hex
new file mode 100644
index 0000000..ea68889
--- /dev/null
+++ b/v1.03/v1.03.ino.with_bootloader.standard.hex
@@ -0,0 +1,2033 @@
+:020000040000FA
+:100000000C94A3080C94F0260C94C9260C94CB08ED
+:100010000C94CB080C94CB080C94CB080C94CB0814
+:100020000C94CB080C9436280C94CB080C94CB0879
+:100030000C94CB080C94CB080C94CB080C94CB08F4
+:100040000C947F260C94CB080C94CB080C94CB0812
+:100050000C94CB080C94A8280C94CB080C94CB08D7
+:100060000C9417270C94CB080000000024002700F4
+:100070002A0000000000250028002B0000000000DE
+:1000800023002600290004040404040404040202DA
+:100090000202020203030303030301020408102007
+:1000A0004080010204081020010204081020000012
+:1000B0000008000201000003040700000000000027
+:1000C00000005D0003020303010405070800FF07A9
+:1000D000FF0700012E025B0371200540A4002107E9
+:1000E000799418A20022075BA6482C01230E7DB448
+:1000F0002925C9A05406A5942400240B7DB4CA0662
+:100100007110072D02250A7FC44EB2B45B1203267C
+:100110000C7EBCD1A2362D4AB46809270559961821
+:1001200028087BA44A4AB50229097BA4C84A95122B
+:10013000002A0CEFC4C92AD130444956012B0AEDDC
+:10014000B40AA3410A23002C07DA9B4914002D05A9
+:10015000CEBD382E055194102F077FC44EFB0C30B6
+:10016000097DB459326FC90231097DB4CAC44E83C6
+:1001700000320A7DB459B2306B1B04330C7DB418C5
+:10018000D23019C2705000340C7DB4CBA4A4940CAE
+:100190005A9800350A7DB4B8AEA1962C00360C7D75
+:1001A000B459327148322D590037097DB418C4ACA6
+:1001B000D804380C7DB459322D59322D5900390CE0
+:1001C0007DB459322D19422D59003A06E194880226
+:1001D0003B07F29B4913053C077CAC8B1A1B3D0780
+:1001E0005DB518D4413E087CAC089BDA003F0B7D1E
+:1001F000B459B230AB431100400F7FC4199454522C
+:10020000948A32ECC0A000410B7DB459326D183293
+:100210005B00420D7DB418924C1B944C1B140043A0
+:10022000097DB419C4AE4300440A7DB41892CCDBF6
+:10023000A000450B7DB438864312868300460A7DB4
+:10024000B4388643121601470C7DB4593231193245
+:100250002D5900480A7DB4C86CC390D9024906796B
+:100260009438044A097DB4ECA8250B004B0C7DB4EE
+:10027000C8A4A4A42551250B4C087DB4087B1C04FC
+:100280004D0B7FC448B7A52245AA354E0C7EBC084D
+:10029000372592126D14034F097DB459326FC9028C
+:1002A000500B7DB418924C1B94B008510B7DB4597F
+:1002B0003297448A9400520C7DB418924C1B94528D
+:1002C000250B530A7DB4593275D5920554097DB476
+:1002D00018A4B0270055097DB4C87C4B16005609F8
+:1002E0007DB4C8BC25B508570B7FC4489D22A5B274
+:1002F000AD01580B7DB4C8B4A456A96901590A7D53
+:10030000B4C86C492D2C015A097DB418C4ACE32043
+:100310005B087BA418A24E035C0E7FC4C8811CC876
+:10032000811CC8811C085D087BA4983A0D015F06FA
+:100330004FC43804610A6DB45993414B8600620B77
+:1003400075B408C321C9B4410163086CAC19B2E2A9
+:1003500000640A75B4AC0C9A960C01650A6DB45928
+:10036000B241498700660A74AC52A221C94A0067AB
+:100370000BF5B359322D19C26401680A75B408C36C
+:1003800021C96C01690771944886006A08FBA34A79
+:10039000A3D2026B0974ACC84A43D2146C06729C97
+:1003A000507A6D0B6FC4B84491144991546E086D26
+:1003B000B41892CC2D6F096DB459325BB200700B3A
+:1003C000F5B318924C1B943004710AF5B319342D0F
+:1003D00019C20272096DB418924C2C0273086DB4E4
+:1003E00019D48302740A75B48A0629AC26007508EC
+:1003F0006DB4C8DC922176096DB4C86C492D0277C2
+:100400000C6FC48822299222A9320C78096DB4C8D5
+:10041000925AA516790BF5B3C86CC910260B007A51
+:10042000086DB418B4B6417B0A7CAC52B228CC42F9
+:10043000017C06799438047D0A7CAC10B330CA1272
+:10044000097E07D6BD912C0000000004FFFF0000CC
+:100450001203040304040101050807000007000754
+:10046000000000000000D7200788E3C711002A0D14
+:1004700088E394109AB919929087012B0B88E307AF
+:100480001213321293052C0988E3472D2625042DDB
+:100490000888E347630F0A2E0888E3C74C0D002F36
+:1004A0000A88630F93D2591800301188E32C919178
+:1004B00090919091909190112901310A88E3951AB9
+:1004C000D3910500320D88E32C911193A19112BBB9
+:1004D00000330E88E32C911193A1939011290134DC
+:1004E0000D8863A59110D1C995980800350D8863D2
+:1004F000BC10B3139390112901360F88E32C91910E
+:100500001033919190112901370B8863BC9091525F
+:10051000A60D00381088E32C9191901129919190AB
+:10052000112901390F88E32C919190113193901189
+:1005300029013A0A88E30712131793050000000403
+:10054000FFFF000010000302050501040614160059
+:10055000FC12FA12FA00000000024D2005004414BB
+:100560002A1EAD6DB7F35299929E14C7A46DD08622
+:100570001D1CB6414B1A15A7A4A7A532AF002C101D
+:1005800027253483925A132DAA4559126A002E0B3F
+:10059000A7443483925A9341012F2854C6FA8441C8
+:1005A00027A4391AE7609CA375B48ED6D13A5A476E
+:1005B000EB681DADA375B48EC63918E7689D30E8A9
+:1005C00004303054C69AC3B38E6A39A94E4A726059
+:1005D000C801398CD53855E3548D53354ED538552F
+:1005E000E3540E631D187220C9497552A6A3F2F098
+:1005F00008312048C674431626A99CA4499AA449E8
+:100600009AA4499AA4499AA4499AA4499AA4D1A01F
+:1006100000323054C65AC3C79C12E5B424A725F152
+:1006200020276918478318E7609C83710EC6391824
+:10063000E7609C83718EC9C329A7E9449D980CBFCC
+:1006400000333654C67AC3839A13B29C94E4B4241C
+:100650001ED6248DC368D08630C77220077320074A
+:1006600073240787341A742055E3541E669D98E45A
+:10067000A42C27A4C3830634325346FAD830E4604E
+:100680000EE4508EE4480EE5408EC569AB1AA649CB
+:100690009AA5511AA5599AC483BAD3749A4E4B8617
+:1006A00083AA83698ED6E14102353053463AC307A7
+:1006B00025A7E9349D260F0725CDD178B8E5142567
+:1006C000A725C36B0E87391C0E430E84EA30A43A6B
+:1006D0002DC9497542383C4800363054C67AC3C7E4
+:1006E0009C12E5A424A725F1F092E6703C1CB29C74
+:1006F00054A725F130AB71AAC6A91AA7F230EBC4F2
+:1007000024276539211D1E3400372C54C63AC32FC7
+:10071000395127EAC46478CEC13807E31C8C7330A2
+:10072000CED13A5A87D31CADC3698ED6E13487D374
+:100730009C30E81000383154C67AC3839A13B29CB7
+:1007400054275587350AE3302B6769366C718ED68E
+:1007500009593AAC491AA76A9CCAC3AC13939C9432
+:10076000E5847478D000392E54C67AC3839A13B2C4
+:100770009C94E4447998D53855E3548D5379987511
+:100780006292D3A2E13587D3E1AB4E4B725A9413F8
+:10079000C4E141043A12C7453483925A9341E73485
+:1007A00028A93519140000000004FFFF00008C0088
+:1007B000030204040304050C0E00FD09FD0AFE01FA
+:1007C0007B0303046C200500440B2107A1BF8B436E
+:1007D000222207347D8BC814230FB6BC9BA89761D7
+:1007E000897A1996A817002410B5BDAB6CA9289971
+:1007F000A82551A254B608251197449C508992B659
+:10080000282D654953222600261097442C31CAA270
+:100810002C492B6D51264D01270631FE8A01280BEC
+:10082000C3B6AB244AA2DEA22C290CC3B68B2CCAB9
+:10083000A25EA224022A0E774CBC30A94DC3106DD3
+:100840004931032B0B77CCBBB8360C595C032C0811
+:1008500042B58A2151002D0616E48B032E0622C5CF
+:100860008A212F0EC6B4DB621AA6611AA6619A020B
+:10087000300C96C49B2109FD980C09003109954460
+:100880008BB19F0601320B96C49B2109C5BE0E0396
+:10089000330E96C49B2109D3D29C8AC99000340F91
+:1008A00096C43B2D89BA6449960C639A00350E961E
+:1008B000C48B439A0E729A8AC99000360F96C49BD5
+:1008C0002109D564D14463322400370B96C48B636D
+:1008D0001AA6C5B406380F96C49B21098DC9908409
+:1008E000C6644800390F96C49B21098DC9A0A66231
+:1008F0003224003A08724E8B211E023B09923E8B35
+:10090000211E12053C08B6B4DBB0E71E3D0846D4F4
+:100910008B3B3A0C3E09B6B48BB8C75E013F0FA6BD
+:10092000BC9B2109C53413D31C4C23004014A7449D
+:10093000ACAD92485A22294A45A9488992651300CC
+:10094000411098C43C598DC2280BA3301A96580EFA
+:10095000420D96C48B41098DC3121A8705430B962D
+:10096000C4AB2109D3CEF110440D97448C410A93B6
+:10097000D4C7649000450C96C48B435A1D94B43A76
+:100980000C460B96C48B435A1D94B415470F9744DD
+:10099000AC210AE5DA90AA49180D02480A97448C5E
+:1009A000D475B8BA06490993448A25EACB004A08A7
+:1009B000C32CAAFED3024B1096C48B504BA24A26DE
+:1009C0002659544BC2004C0996C48BB45F87014D25
+:1009D0000F98C40C7108972851A244F26C0E4E1166
+:1009E00097440C71543225932229D2122D11054FB0
+:1009F0000C9744ACAD927A4DB26C02500C96C48BFD
+:100A000041091D8725AD02510DA73CACAD927A4D31
+:100A1000B26C0704520F96C48B41098DC312D59254
+:100A20002C0903530F96C49B2109D578885331199B
+:100A30001200540A97448C4316F71B00550B974439
+:100A40008CD4AF49964D00560F97448CD49A64517C
+:100A500056099334CE00571A9B448E3014432DC947
+:100A60009228892A5912255912255992A5611A01ED
+:100A7000580E97448C544DB24A5AC92AA91A590C97
+:100A800097448C34C92A69DC1B005A0B97448C4369
+:100A90009CF67918025B09C3BE8B21EA9F065C0CA9
+:100AA000A5C58B300DD3300DD3305D09C3BE8BA9E6
+:100AB0007F1A025E0835FDAB2CA9055F0616BC8BBC
+:100AC00003600733F60B290B610C76C49B214E861D
+:100AD000D1A62C01620DA6C48BB465D144E3A62C2B
+:100AE00000630975449B41EC3A04640BA6C4DB9691
+:100AF000451BDD9425650E76C49B2109C56150C355
+:100B0000644800660BA4C49A21CB06AD3700670E7B
+:100B1000A6AC9B451BDD9425AD0C0900680BA6C453
+:100B20008BB465D1448F0169089144896418026AC5
+:100B300009C2AC992CE917056B0EA5448BB04D4A40
+:100B40004A5A1255B2006C07A1448987006D10798A
+:100B5000448D4452245BA6655AA6655A016E0A76F6
+:100B6000C48B64D1448F016F0C7744ACAD925A931F
+:100B70002C9B00700DA6AC8B64D144E3A62C6915A8
+:100B8000710BA6AC9B451BDD94256D720A74C48A5B
+:100B90006488B26E00730B75449B2553572D590022
+:100BA000740B94C49A2C1A92ACA300750976C48B6A
+:100BB000D0376509760E77448C34C9A2AC12266909
+:100BC0009C01771079448D2CD32A9D92A6A4AD98D0
+:100BD0004500780B75448B4C4B6A959A167910A793
+:100BE0002C8C544DB228AB84491AA771087A0A7527
+:100BF000448B41CC3A0E027B0CD3B6AB24EA12658F
+:100C0000515B007C06C1BF8B0F7D0CD3B68B2CEAE9
+:100C10001625514B047E0935DD9B2CA9250080113A
+:100C2000B63C3B2D4AD27090C2414AE328530000A3
+:100C3000000004FFFF210317B9BD9E1C48A2A9169E
+:100C4000E6408EE4488EE4508E64E9024EAE1CCC41
+:100C5000BCEE74784BD361C829C341C9A1241AA43E
+:100C600030CB812C0EA3441E4F111DCCBCBE3A903C
+:100C7000C5619C0C432456B2355BA3A41825C5243A
+:100C8000AA69A530044F4E1BCCBCBE544C8634AA76
+:100C90004645A99644C310B546D5A897A668923A8A
+:100CA000505C1DCCBCBE3A10A6C9304839260D4B4D
+:100CB00029CC92619092388A862DEDB601507F1F23
+:100CC000CCBCBE24AA45492DAD0C83A2C44A346CC9
+:100CD00039980C8314C659CB3048D500517319CBC1
+:100CE000BCAEB49603493A9C732C1D0E6A0E25398E
+:100CF00090A5251D1051B71CCCBCEE3455B3288CE3
+:100D0000C250CAA4304D8621D281AC14866A1DCD52
+:100D10000051C622CCBC8E3049B3284C9261C89297
+:100D2000284DA4341A162D0AB361CAA2308BC26CA6
+:100D300018D21852A024CCBCBE1CCC916148862C81
+:100D40004AA22C4AA22C4AA22C4AA25A12D592A8F4
+:100D5000964449980C9A54538B1BCCBCAEE110E5D9
+:100D600060398CC33819862C8CC3242C55A36A187F
+:100D70000D0754111BCABDCE1C8987838EE88834A9
+:100D80004452492A4943A42372A203090057FA1A7C
+:100D9000CBBCBEDA70D0CA839CC5839C65C3416A54
+:100DA0005206454D8783005C4F1DCCBCAEE19603D7
+:100DB000D9704BC252753844AD5175382459144618
+:100DC0005929CC005E551CCBBCBEDA70D0AAC3102A
+:100DD000A6E1308449160D07A96938488D512201D2
+:100DE0005EA61ECCBC7E201E0E512D1C0E512D8CDD
+:100DF0000631079361C8A2AC9884E1166D035F00C9
+:100E00001CCCBC9EE190663990E540960359363C77
+:100E1000663990C5611CA6C53803624B18CBBCEE81
+:100E2000211A742CC7E2E19C63E97050732C47EAE5
+:100E3000500C62A522CCBCAE68D8A2308BC264989C
+:100E4000C42847A261534AC99444599414A35A121E
+:100E500025B5CC0063A51FCCBCAEB4340C515619DB
+:100E6000A4248C86214A5365388451560A432D099F
+:100E7000932C3365B917CCBCDE1C4D87C71CCCC185
+:100E8000610ED38E711626591C0265CB22CCBCAEE6
+:100E90003007B27078CA726019A6248B2AAD4965F2
+:100EA00048A2A41825C548D1A2241A0265F61CCC74
+:100EB000BC7E281AD2A81A45C3214AA321C9A2FE82
+:100EC0006B34A4512DC9B10C672A18CBBCDE1C8B26
+:100ED00087738EA5C341CDA11D48AA5149CBD41417
+:100EE000673A21CCBCAE1CCC86308BA24189C22C87
+:100EF000CAA69A52AA3455B2288CB224AA255112F5
+:100F00000E67C41ECCBCAE1C8C86214AB3E1A993EB
+:100F100012552C15254A2A4AA449D5A81A15056840
+:100F2000211BCCBCAE304E4BC34B146635254D94C3
+:100F300052A5A912AA8D491869026E2921CCBC9E1E
+:100F40006C10A32C0706A9925592418CB2300793DE
+:100F50006148A4A4A9D254694A86036E9025CCBCEA
+:100F60009E6818A424CB8128CC9241AA649564D0B1
+:100F7000925A251914290B93282925A58A1249016B
+:100F800070D922CCBCAE2C07B2414B6A49A23425A1
+:100F900069968449986C5236684D49944595414903
+:100FA000B30470ED21CCBCAE2C07B2744806318B73
+:100FB00042458AB6288C9216258A7438896A514B24
+:100FC000165500753519CBBDCE1C8B875356CA4AB2
+:100FD000C3292B65A5E112A6619A0E03772026CCC2
+:100FE000BCDE611992308992308992611992288B06
+:100FF00092288B92E1A044599444599464C9A06802
+:101000006A017AEF21CCBC9E388D4A831255874104
+:10101000CAA1241986A41647C310559A86A4B225DE
+:10102000ADA1007F6E1BCCBC9EE110751A0E713C09
+:101030003CE6D0308871384861368471343C88652C
+:1010400018CCBC9E38AD0D5A1CA6A99864493446EC
+:101050004A2DAAF61B008B661DCCBC9E6149A36875
+:101060004886A54F61D26938E89461C869C3905633
+:101070008721028F6C1DCCBCAEB46D50062D4C93F5
+:101080002C4D92E12547A2411C93214BD2502D01BA
+:101090008FC71FCCBC9E1C08E33019061DCA812CCB
+:1010A000DAA2308BC238AC846998E448360C0290DE
+:1010B0000620CCBC9EAC982569320C3A9023516531
+:1010C000896AC9306449540BE32C4ECAD93008915F
+:1010D000CD1ACBBC7E401B76281D0E52E3308451C6
+:1010E000711872201ECEE9701094C11DCCBC9E38C0
+:1010F000AC8443524B076598D2A6E12D0D933089FD
+:101100009250CA4A690095F421CBBC9E6818A21C73
+:10111000D0216990A42C92B2481A24298BA42C9235
+:10112000064907121D4900987A1BCCBC9E2C1994C5
+:10113000B64A294C2A83D22DE9FFFFFF298C9262FF
+:1011400092050000A92811241FBECFEFD8E0DEBF12
+:10115000CDBF13E0A0E0B1E0E2E8FAE702C00590FD
+:101160000D92A035B107D9F726E0A0E5B3E001C0A4
+:101170001D92AF36B207E1F718E0C3EAD8E004C029
+:101180002197FE010E94E23BC23AD107C9F70E94B3
+:1011900052290C943F3D0C940000662329F06A30DC
+:1011A00019F0862F90E008958FEF9FEF0895CF926A
+:1011B000DF92EF92FF920F931F93CF93DF93EC0197
+:1011C000842F8770E1E0F0E0082E01C0EE0F0A9452
+:1011D000EAF73E2F7E0193E7E90EF11CD7019C91BF
+:1011E00010E0923018F41E2F913029F150E0487F22
+:1011F000E8ADF9ADC880D980D60150969C91949FF6
+:101200006001959FD00C11246C0D7D2D711DDF01A7
+:10121000A60FB71F011115C08C91812B83278D93C9
+:101220002150D1F7DF91CF911F910F91FF90EF9057
+:10123000DF90CF90089530E0D9CF110F330F2223E4
+:1012400089F39C91912B93279C938F5F87702150FA
+:101250008111F3CF9CADA90FB11DF70190819230A0
+:1012600028F4913009F031E011E0E9CF31E0E7CF27
+:1012700080E0089580E00895CF93DF93CEEED5E02F
+:101280009BAF8AAFDC01ED91FC9182EF95E009956F
+:10129000EAADFBAD0280F381E02D82EF95E0DF91B6
+:1012A000CF910994809365060895CF93DF9348EE1C
+:1012B00053E060E070E04093DE045093DF046093FD
+:1012C000E0047093E1049093DD048093DC04A0E7D4
+:1012D000B0E08C918E7F8C93E0EBF0E080818C7F8E
+:1012E0008083E1EBF0E08081877F8083C6EBD0E0F4
+:1012F00088818F7D88838C918D7F8C9380818460A1
+:10130000808380818C7F808386E090E09093DB04F3
+:101310008093DA04DF91CF9108959B01DC01189648
+:10132000ED91FC9141E067E109948091D70490919F
+:10133000D80401969093D8048093D70408958330FD
+:1013400081F028F4813099F08230A9F00895873037
+:10135000A9F08830C9F08430B1F4809180008F7D8D
+:1013600003C0809180008F7780938000089584B5BA
+:101370008F7784BD089584B58F7DFBCF8091B000B9
+:101380008F778093B00008958091B0008F7DF9CF62
+:10139000CF93DF93282F30E0F901E255FF4F84917E
+:1013A000F901E656FF4FD491F901EA57FF4FC49176
+:1013B000CC23A1F081110E949F09EC2FF0E0EE0FE9
+:1013C000FF1FE458FF4FA591B491EC91ED2381E00C
+:1013D00090E009F480E0DF91CF91089580E090E003
+:1013E000FACF1F93CF93DF93282F30E0F901E25516
+:1013F000FF4F8491F901E656FF4FD491F901EA5766
+:10140000FF4FC491CC23A9F0162F81110E949F0990
+:10141000EC2FF0E0EE0FFF1FEE58FF4FA591B491B7
+:101420008FB7F894EC91111108C0D095DE23DC93AE
+:101430008FBFDF91CF911F910895DE2BF8CFCF930F
+:10144000DF9390E0FC01E656FF4F24918A579F4FAF
+:10145000FC0184918823C9F090E0880F991FFC015A
+:10146000E859FF4FA591B491FC01EE58FF4FC5918B
+:10147000D49161110DC09FB7F8948C91209582236F
+:101480008C938881282328839FBFDF91CF91089573
+:10149000623051F49FB7F8943C91822F809583235A
+:1014A0008C93E8812E2BEFCF8FB7F894EC912E2BF5
+:1014B0002C938FBFEACF8230910538F0880F991FA7
+:1014C000880F991F05970197F1F708953FB7F89492
+:1014D0008091550490915604A0915704B0915804FE
+:1014E00026B5A89B05C02F3F19F00196A11DB11D7F
+:1014F0003FBFBA2FA92F982F8827BC01CD01620FBB
+:10150000711D811D911D42E0660F771F881F991F75
+:101510004A95D1F708958F929F92AF92BF92CF9242
+:10152000DF92EF92FF926B017C010E94660A4B01F1
+:101530005C01C114D104E104F104B9F00E94660A0F
+:10154000681979098A099B09683E734081059105EC
+:1015500080F321E0C21AD108E108F10888EE880E74
+:1015600083E0981EA11CB11CE4CFFF90EF90DF90A8
+:10157000CF90BF90AF909F908F9008950F931F933F
+:10158000CF93DF938C01C62F642FCC32E8F4CA329C
+:1015900008F041C0C83271F1C93209F442C080E09C
+:1015A000C034D0F1CF73F801EC0FF11D868D8F3F61
+:1015B00091F1C031E0F00E94C80921E0892B09F4C3
+:1015C00020E0F801218F27C0CD3289F140F384EB70
+:1015D0008C0F823020F7CF73C00FD12FD11D8E8D8D
+:1015E00041112EC061E00E941F0A60E08E8D0E94B2
+:1015F000F10911C0025E1F4FD0E0F80181918F0107
+:101600008F3F31F061E0D03108F062E00E941F0AA4
+:10161000DF5FD63191F781E0DF91CF911F910F917C
+:10162000089570E090E080E00E948B0AF4CF85E09E
+:1016300090E0433010F082E090E00E945B0AEBCF34
+:1016400062E00E941F0AE7CF2FB7F894609151041F
+:101650007091520480915304909154042FBF0895C7
+:10166000089520910404260F3327331F21323105BA
+:10167000ECF420912A04FC0190E080E0243069F031
+:1016800082E00895A09104042191AC014E515C4F79
+:10169000A40FB52FB11D2C930196861798F3809156
+:1016A0000404680F6093040480E0089581E00895C5
+:1016B00010922A0481E080932C0410922B0461E0A4
+:1016C00082E10E94F10961E083E10E94F109E9EB06
+:1016D000F0E080818E7F808380818D7F808388E4AD
+:1016E0008093B80085E48093BC000895CF93DF9386
+:1016F00091E09093E1038823B9F0C091B800D091B4
+:10170000BA008091BC008A7B8093BC0060E082E1DB
+:101710000E94F10960E083E10E94F1090E94580BE8
+:10172000D093BA00C093B800DF91CF910895089587
+:1017300008950895E091D9038091D803E81730F413
+:10174000F0E0E854FC4F808190E008958FEF9FEF28
+:1017500008959091D9038091D8032FEF3FEF981708
+:1017600048F4E92FF0E0E854FC4F208130E09F5F1F
+:101770009093D903C90108958091D8039091D9031A
+:10178000891B990B0895CF92DF92EF92FF920F93EE
+:101790001F93CF93DF937C01CB018A012091B70384
+:1017A000222389F0EB016B01C40ED51ECC15DD059B
+:1017B00069F06991D701ED91FC910190F081E02DE4
+:1017C000C7010995F3CF642F0E94310BC801DF9147
+:1017D000CF911F910F91FF90EF90DF90CF900895E0
+:1017E000CF93DF931F92CDB7DEB769832091B70304
+:1017F0002223F9F02091DA03203258F021E030E082
+:10180000FC013383228390E080E00F90DF91CF9141
+:1018100008958091DB03E82FF0E0E956FC4F9981B1
+:1018200090838F5F8093DB038093DA0381E090E005
+:10183000ECCF61E0CE0101960E94310BF7CFDC01C5
+:101840001A96ED91FC9130E020E00994DC011696A7
+:10185000ED91FC9130E020E040E069E10994DC0189
+:101860001696ED91FC9130E020E040E068E10994AB
+:101870009A01DC011696ED91FC91462F67E10994DF
+:10188000EF92FF920F931F93CF93DF931F92CDB7E9
+:10189000DEB77C018B01D8016C91673129F150F4DE
+:1018A0006531A0F40F90DF91CF911F910F91FF90C0
+:1018B000EF9008956A3118F16E3FA1F7F801418168
+:1018C000498369E2C7010E941F0C0BC0F8014181E6
+:1018D0004983D7011696ED91FC9130E020E0C701D5
+:1018E00009950E5F1F4FD7CFF80181818983AE0123
+:1018F0004F5F5F4F61E0C7010E94380CF2CF0F5F6E
+:101900001F4FD7011696ED91FC9130E020E040E0AA
+:10191000C7010995C0CF462FDC011696ED91FC91C9
+:1019200030E020E066E10994462FDC011696ED9147
+:10193000FC9130E020E065E10994EF92FF920F9373
+:101940001F93CF93DF93EC01042F7901693069F481
+:101950008BE991E0998388831C8A81E0DF91CF91A4
+:101960001F910F91FF90EF9008956D3009F475C0AD
+:1019700038F46A3091F16B3009F468C080E0EECF42
+:101980006E3009F47DC06F30C9F70E942F0CF7014B
+:101990001381110F110F110F6C89160F612F6295B2
+:1019A0006F706061CE010E94940C612F6F70CE0148
+:1019B0000E94940CF7016481606BCE010E94940C2C
+:1019C000F701408151816281660F660F660FCE017B
+:1019D0000E94380C0150A1F75DC0EA85FB8530E01C
+:1019E00020E040E068E20995EE81FF8130E020E0F0
+:1019F00040E064E1CE01099541E06BE4CE010E9434
+:101A00001F0CE881F981448169E2CE010E941F0C1C
+:101A100040E06BE4CE010E941F0CE881F981448113
+:101A200069E2CE010E941F0C41E06BE4CE010E94EE
+:101A30001F0CE881F981458169E2CE010E941F0CEB
+:101A400066E671E0CE010E94400C87CF61E671E04E
+:101A50004423C1F36CE571E0F5CF411109C065E5A0
+:101A600071E00E94400CE881F98182898C8B75CFEE
+:101A70006EE471E00E94400CE881F9818389F6CF21
+:101A80000E942F0C61E8CE010E94940C602FCE01C1
+:101A90000E948B0CCE010E94260C5FCFDC011896B1
+:101AA000ED91FC9130E020E040E069E10994DC0137
+:101AB0001896ED91FC9130E020E040E068E1099457
+:101AC000CF93DF931F92CDB7DEB76983BE016F5FFF
+:101AD0007F4F0E948D090F90DF91CF910895EF9273
+:101AE000FF921F93CF93DF93EC01162F7A010E9490
+:101AF000570D60E4CE010E94600DE885F9859701DD
+:101B0000412F67E1CE010995CE01DF91CF911F9161
+:101B1000FF90EF900C944E0DEF92FF921F93CF9396
+:101B2000DF93EC01142F7901663181F138F46431CF
+:101B300009F44BC0653179F080E022C06831C9F109
+:101B400050F16931C9F780919603882391F1CE0154
+:101B50000E944E0D2EC080919603882319F0CE016D
+:101B60000E944E0DCE010E94570D60E0CE010E94F2
+:101B7000600D612FCE010E94600D81E0809396037D
+:101B8000DF91CF911F91FF90EF900895642F0E94F5
+:101B9000600D81E0F5CF80919603882319F0CE0186
+:101BA0000E944E0DA701193138F4612FCE010E9419
+:101BB0006F0D10929603EDCF68E1CE010E946F0D7C
+:101BC000185188E1E80EF11CEDCF8E898F3F11F49A
+:101BD00088E78E8BE885F9859701412F64E1CE0176
+:101BE000DF91CF911F91FF90EF900994FC01662344
+:101BF000D9F16A30C9F1808D811125C06C3F48F060
+:101C000085E0808F617070E0738B628B2EEF3FEF09
+:101C100029C0683F20F084E0808F6370F4CF603F7C
+:101C200020F083E0808F6770EECF603E20F082E08E
+:101C3000808F6F70E8CF262F30E0603C98F081E015
+:101C4000808F6F71E0CF8150808F2289338996E039
+:101C5000220F331F9A95E1F76F73262B338B228B5C
+:101C60008111D4CFC90108952FEF3FEFFBCF0F9320
+:101C7000DC01FC01EE5BFF4F9081941B492F3197F3
+:101C80009081961B692F01110EC04150621BDE9698
+:101C90008C91DE97481BD496ED91FC91D597CD01A0
+:101CA00009950F910895013091F76150421BEFCFD4
+:101CB0000F93DC01DE963C91DE97431BD496ED91A9
+:101CC000FC9109950F910895FC01ED5BFF4F108287
+:101CD0003196DC01AF5BBF4F2C912083319610828F
+:101CE00011962C9112973C91231718F0422F431B09
+:101CF0004083FC01EA5BFF4FDC01DF968C91281BDF
+:101D000020830895FC01ED5BFF4F10823196DC01CA
+:101D1000AF5BBF4F2C9120833196DC01DF962C9175
+:101D200020833196805C9F4FDC018C9180830895E5
+:101D3000CF93DF93FC01A081B18182AD982F990FE1
+:101D4000990F990F95AF50969C915097903208F04B
+:101D50009FE1990F990F990F94AF23AD922F990F8F
+:101D6000990F990F96AF51963C915197682F620F3A
+:101D70007727771F3617170614F4832F821B97AF28
+:101D8000EF01C05CDF4F880F880F880F890F8883B1
+:101D9000219680EF888354968D919C915597813F31
+:101DA000910508F48883EE5BFF4F56968C918083F3
+:101DB000DF91CF9108950C94980E0C94980E0F9388
+:101DC000DC01222371F1FC0101112DC0EB5BFF4FFF
+:101DD0008081481730F131968081481710F532978D
+:101DE000908131978081260F2617C8F46917B0F4C7
+:101DF0002FEF290F8217A8F4681708F4682F291706
+:101E000008F4922F961BD696ED91FC91D7970480FB
+:101E1000F581E02D292FCD01099503C0682F6917A1
+:101E200048F30F910895ED5BFF4F80816817C8F369
+:101E3000319680816817A8F732969081319780811A
+:101E4000240F241778F4491760F42FEF290F821715
+:101E500040F7481708F4482F291708F4922F941BCD
+:101E6000D2CF482F4917E8F6F2CF0F93462F00E064
+:101E700021E0682F82EF95E00E94DF0E0F91089518
+:101E8000FF920F931F93CF93DF93F82ED62F142F2B
+:101E9000C22F00FF0CC0622F6D1B842F8F0D0E947C
+:101EA000350F6C2F6F198D2F810F0E94350F01FF99
+:101EB0000CC06C2F6D1B812F8F190E94350F6C2F5A
+:101EC0006F19812F8D1B0E94350F03FF0CC06C2FE3
+:101ED0006D0F812F8F0D0E94350F6C2F6F0D8D2F81
+:101EE000810F0E94350F02FF11C06C2F6D0F812FE3
+:101EF0008F190E94350F6C2F6F0D812F8D1BDF9175
+:101F0000CF911F910F91FF900C94350FDF91CF91DE
+:101F10001F910F91FF900895CF92DF92EF92FF9261
+:101F20000F931F93CF93DF93E82ED62EC42FC22E8C
+:101F3000D1E0D41BF42EF194FF0C022F262F482F52
+:101F40006C2F80E00E94400F10E0D7FD04C0C1500C
+:101F5000F394F394DF0D1F5F812F880F8F5FD80FED
+:101F60000C2D2D2D4E2D6C2F812F0E94400F1C17F4
+:101F700060F3DF91CF911F910F91FF90EF90DF9071
+:101F8000CF900895FF920F931F93CF93DF93182F55
+:101F9000C62FF42ED62FD20FCD1306C0DF91CF91CE
+:101FA0001F910F91FF90089500E02F2D4C2F612F6E
+:101FB00082EF95E00E94DF0ECF5FEECF0F93242FCC
+:101FC00001E0462F682F82EF95E00E94DF0E0F910F
+:101FD0000895FF920F931F93CF93DF93C82FD62FAF
+:101FE000142FF22E00FF10C041E0460F622F6D1B30
+:101FF000812F8C0F0E94DE0F41E04C0F6F2D6C1B68
+:102000008D2F810F0E94DE0F01FF10C041E04D0FA8
+:102010006F2D6D1B812F8C1B0E94DE0F41E04C0F3A
+:102020006F2D6C1B812F8D1B0E94DE0F03FF0EC0D6
+:1020300041E04D0F6F2D812F8C0F0E94DE0F41E08C
+:102040004C0F6F2D8D2F810F0E94DE0F02FF13C0EA
+:1020500041E04D0F6F2D812F8C1B0E94DE0F41E060
+:102060004C0F6F2D812F8D1BDF91CF911F910F9101
+:10207000FF900C94DE0FDF91CF911F910F91FF9095
+:102080000895CF92DF92EF92FF920F931F93CF9319
+:10209000DF93E82ED62EC42FC22ED1E0D41BF42E0F
+:1020A000F194FF0C022F262F482F6C2F80E00E9406
+:1020B000E90F10E01C1748F0DF91CF911F910F91AD
+:1020C000FF90EF90DF90CF900895D7FD04C0C150EE
+:1020D000F394F394DF0D1F5F812F880F8F5FD80F6C
+:1020E0000C2D2D2D4E2D6C2F812F0E94E90FE2CF4C
+:1020F000AF92BF92CF92DF92EF92FF920F931F9316
+:10210000CF93DF93E82EB62ED42EC22FF82EF00EEA
+:10211000C02EC60E1FEF140F180F101BDFEFD20FCB
+:10212000D60FD01B22E0402F6C2D8F2D0E94411026
+:1021300021E0402F6C2D812F0E94411024E0402F80
+:102140006D2F8F2D0E94411028E0402F6D2F812F81
+:102150000E9441101D2D101B101B133088F0F394AA
+:102160001250AA24A394A00E2A2D412F6B2D8F2D3F
+:102170000E94C20F2A2D412F6D2F8F2D0E94C20F5A
+:102180002C2F201B201B233088F0225061E06C0D87
+:102190004D2D8E2DDF91CF911F910F91FF90EF90DC
+:1021A000DF90CF90BF90AF900C94C20FDF91CF9192
+:1021B0001F910F91FF90EF90DF90CF90BF90AF9065
+:1021C0000895FF920F931F93CF93DF93D82F162F6D
+:1021D000F42EC22F00E0242F462F682F82EF95E0C7
+:1021E0000E94DF0E01E02C2F412F6D2F82EF95E032
+:1021F0000E94DF0E6FEF6F0D6D0F2C2F412F82EFBE
+:1022000095E00E94DF0E4FEF4C0F410F00E02F2DA5
+:102210006D2F82EF95E00E94DF0EDF91CF911F912D
+:102220000F91FF900895DC0118964C911897ED914D
+:10223000FC911197249130E0042E02C0359527952A
+:102240000A94E2F7842F860F883068F03196119651
+:10225000FC93EE93E49198E0941B01C0EE0F9A95E5
+:10226000EAF72E2B885018968C938FEF9FEF01C0C2
+:10227000880F6A95EAF7809582230895FC01E60F9E
+:10228000F11D849190E0982F88273196E4918E0F6C
+:10229000911D0895CF93DF932091390630913A062E
+:1022A0002817390709F490C0EC0190933A068093FF
+:1022B0003906FC018491809349063196E491E093BC
+:1022C0004A06FE013296E491E0934B06FE013396F6
+:1022D000E491E0934C06FE013496E491E0934D06C0
+:1022E000FE013596E491E0934E06FE013696E491A8
+:1022F000E0934F06FE013796E491E0935006FE010D
+:102300003896E491E0935106FE013996E491E0930A
+:102310005206FE013A96E491E0935306FE013B9685
+:10232000E491E0935406FE013C96E491E093550657
+:10233000FE013D96E491E0935606FE013E96E4913F
+:10234000E0935706FE013F96E491E0935806FE01A4
+:102350007096E491E093590661E1CE010E943E112E
+:1023600090935B0680935A0663E1CE010E943E1172
+:1023700090935D0680935C0665E1CE010E943E115C
+:1023800090935F0680935E068091390690913A069D
+:10239000892BD1F0809156068093610640915706B3
+:1023A0004093620690916006992371F0913079F420
+:1023B00090915806891714F49093610680915906FC
+:1023C000841714F480936206DF91CF9108953091C1
+:1023D000530620915506082E000C990B622F022EF1
+:1023E000000C770B630F711D37FD7A9586179707E1
+:1023F0001CF4320F30936106241734F720936206E1
+:10240000E3CFCF93DF93EC016BAFEEA9FFA901906F
+:10241000F081E02D0995EEA9FFA90280F381E02D5E
+:10242000CE01DF91CF910994AF92BF92CF92DF920C
+:10243000EF92FF920F931F93CF93DF9300D000D0C2
+:102440001F92CDB7DEB78C01DC01DA96AC90DA973B
+:10245000DB96EC90DB97ED91FC91B188FE2CD12CB2
+:10246000C12CD801ED91FC9111978089D8962D91BE
+:102470003C911C82FD828B83B8E08B9FC0011124AC
+:102480008C9DA0018D9D500D9C9D500D1124240FFD
+:10249000351F3A832983D8011496ED91FC919E0152
+:1024A0002F5F3F4F41E06FE0C8010995F3948F2DF6
+:1024B0008E198A1528F4BFEFCB1ADB0AFB1488F2B9
+:1024C0000F900F900F900F900F90DF91CF911F9171
+:1024D0000F91FF90EF90DF90CF90BF90AF90089555
+:1024E000CF92DF92EF92FF920F931F93CF93DF93E0
+:1024F000EC01962F683109F44BC0B901993130F4E1
+:102500009431C9F0973189F080E006C0993109F41F
+:1025100061C09032C9F781E0DF91CF911F910F9197
+:10252000FF90EF90DF90CF90089550E082EE94E01E
+:102530000E94C30BF0CF8C859D85AE85BF85892B0E
+:102540008A2B8B2B71F4E881F981A585B0E020EA14
+:1025500036E841E050E00E9447396C877D878E87DE
+:102560009F871092D9031092D8031092DB03109228
+:10257000DA030E94580B87E99BE090930304809351
+:10258000020488E99BE09093070480930604C3CF7C
+:102590002C853D854E855F8560E074E284EF90E098
+:1025A0000E945A39205131094109510956954795E0
+:1025B000379527952093B8008E8990E0959587955B
+:1025C00091E09093B703809395031092DB031092F0
+:1025D000DA03A1CFD091DA03D13208F093C0C091D1
+:1025E00095030E94660A6B017C0180912A04811187
+:1025F00064C082E080932A0481E080932C048FEFF2
+:102600008093290410924E04D0934D04A7E9B3E0BF
+:10261000EDE2F4E080E0D8137CC010924F0480918A
+:102620004F04CC0FC82BC0934F0480912B048130F2
+:1026300009F073C010922B040E94660A6B017C01A2
+:1026400080914F048093BB008091DD039091DE0365
+:10265000A091DF03B091E003892B8A2B8B2B99F09B
+:102660000E94660A0091DD031091DE032091DF03D2
+:102670003091E0036C197D098E099F090617170731
+:1026800028073907D8F18091BC0083FDD9CF85ECAC
+:102690008093BC000E94660A6B017C0180912A0431
+:1026A0008230E9F1809129048F3F61F18091290402
+:1026B000803241F18091290425C08091DD03909101
+:1026C000DE03A091DF03B091E003892B8A2B8B2BD3
+:1026D00009F48BCF0E94660A0091DD031091DE039E
+:1026E0002091DF033091E0036C197D098E099F0969
+:1026F000061717072807390708F077CF8091DC0302
+:102700000E94760B1092DB031092DA031092B7034B
+:1027100002CF9D9191938F5F7ECF85EEB9CF80914F
+:10272000DD039091DE03A091DF03B091E003892BDC
+:102730008A2B8B2B09F4B2CF0E94660A0091DD032D
+:102740001091DE032091DF033091E0036C197D09C5
+:102750008E099F09061717072807390708F09ECF2B
+:10276000CDCF109291031092920310929303109286
+:102770009403109290038091DA049091DB0480938B
+:10278000B200E0E7F0E080818160808308958E50A0
+:10279000806480937C0080917A00806980937A00C5
+:1027A00083B7817F826083BF20E190E080E033B710
+:1027B000316033BF889533B73E7F33BF30917A00A5
+:1027C00036FDFCCF4091780050917900840F951F21
+:1027D000215069F720917A002F7720937A0024E026
+:1027E000969587952A95E1F7089581E10E94C71390
+:1027F000BC0190E080E00E94A53A20910501309153
+:10280000060140910701509108010E945C3B20E0C5
+:1028100030EC4FE754E40E94FD3920E030E040E026
+:102820005FE30E948B3920E030E048EC52E40E94E4
+:102830005C3B20918C0330918D0340918E0350912D
+:102840008F030E948C3960938C0370938D03809367
+:102850008E0390938F0320918B032F5F20938B0324
+:102860002A30C0F020E030E040E251E40E94FD391F
+:102870006093B9047093BA048093BB049093BC0432
+:1028800010928B0310928C0310928D0310928E0382
+:1028900010928F030895CF92DF92EF92FF9284E11E
+:1028A0000E94C713BC0190E080E00E94A53A2CED85
+:1028B00036E443E05EE30E94FD392091050130914A
+:1028C000060140910701509108010E945C3B20E005
+:1028D00030EC4FE754E40E94FD392091870330919A
+:1028E00088034091890350918A030E948C39609338
+:1028F0008703709388038093890390938A032091C0
+:1029000086032F5F209386032A3008F43FC020E01F
+:1029100030E040E251E40E94FD3920917C04309186
+:102920007D0440917E0450917F040E948C39609315
+:102930009004709391048093920490939304109266
+:1029400086031092870310928803109289031092D5
+:102950008A03C0900901D0900A01E0900B01F09029
+:102960000C01A70196010E94F83987FF14C023E3E8
+:1029700033E343E550E4C701B6010E94573B87FDAE
+:102980000AC081E0809394041092D904FF90EF90E4
+:10299000DF90CF90089510929404F8CF4F925F92F9
+:1029A0006F927F928F929F92AF92BF92CF92DF925F
+:1029B000EF92FF920F931F93CF93DF9300D000D03D
+:1029C00000D0CDB7DEB76B017C0180913B01873031
+:1029D00009F064C180916104813009F043C1A7010D
+:1029E0009B0160E070E080E291E40E948B390E94DC
+:1029F0006F3A70937D0360937C0380917C03909188
+:102A00007D039E838D838B3F9F4F0CF069C186E9C8
+:102A100090E0A0E0B0E08093320190933301A09366
+:102A20003401B093350100918003109181038D81B1
+:102A30009E810E962D813E818D9708F080C1B9014F
+:102A4000330F880B990B0E94A73A6B017C019F778B
+:102A500020E030E0A9010E94573B18160CF059C144
+:102A60006D817E81601B710B072E000C880B990B0A
+:102A70000E94A73A4B015C016D817E81600F711F3E
+:102A8000072E000C880B990B0E94A73A20E030E03B
+:102A900040E05FE30E945C3B69837A838B839C8385
+:102AA000C801880F991F6D817E81681B790B809109
+:102AB0007E0390917F03680F791F072E000C880B0F
+:102AC000990B0E94A73A2B013C0120E030E0A901BC
+:102AD000C701B6010E94573B181624F0F7FAF0948C
+:102AE000F7F8F09420E030E04AEF54E4C701B60173
+:102AF0000E94573BC12CD12C760187FF06C0C12C08
+:102B0000D12C80E8E82E8FE3F82E2DEC3CEC4CE441
+:102B10005FE360910E0170910F018091100190911F
+:102B200011010E945C3BA30192010E945C3B2B01BE
+:102B30003C012DEC3CEC4CE45EE360917803709139
+:102B4000790380917A0390917B030E945C3B9B0107
+:102B5000AC01C301B2010E948C392B013C014092AF
+:102B600078035092790360927A0370927B032091EC
+:102B70001201309113014091140150911501C701C8
+:102B8000B6010E945C3B29813A814B815C810E94A5
+:102B90005C3B6B017C012091160130911701409143
+:102BA000180150911901C501B4010E945C3B9B01C1
+:102BB000AC01C701B6010E948C39A30192010E94A9
+:102BC0008C396B017C016091A7047091A804072ED9
+:102BD000000C880B990B0E94A73AA70196010E944E
+:102BE0008C390E946F3A7093A8046093A704072E53
+:102BF000000C880B990B0E94A73A6B017C0120E026
+:102C000030EE4FEF54E40E94573B87FD8DC08D811D
+:102C10009E81181619060CF480C01092A804109218
+:102C2000A70410937F0300937E032D813E81309390
+:102C300081032093800326960FB6F894DEBF0FBE63
+:102C4000CDBFDF91CF911F910F91FF90EF90DF905B
+:102C5000CF90BF90AF909F908F907F906F905F903C
+:102C60004F900895823039F4A7019B0160E070E035
+:102C70008FEA93E4BACE833039F4A7019B0160E078
+:102C800070E882E294E4B1CE843009F0B6CEA701B8
+:102C90009B0160E070E08BE694E4A7CE20913901BF
+:102CA00030913A013A832983B90190E080E00E9493
+:102CB000A53AA70196010E948B390E946F3A709342
+:102CC0007D0360937C038091B1049091B2042981CB
+:102CD0003A81281B390B3093B4042093B3048DCE72
+:102CE0008D819E810596409728F480E991E0A0E0CF
+:102CF000B0E091CE8D819E810B97449728F484EFAC
+:102D000091E0A0E0B0E087CE80E293E0A0E0B0E008
+:102D100082CEC12CD12C760156CF8FEF97E09093C5
+:102D2000A8048093A7047DCF20E030E0A901C7016B
+:102D3000B6010E94F83918160CF473CF6ECF2F31FC
+:102D400031055CF7213F3F4F09F067CF6ACF8F9283
+:102D50009F92AF92BF92CF92DF92EF92FF9260E08C
+:102D60008AE00E94F1090E944B140E94F5138091A1
+:102D70008104813061F4E091F605F091F70530E0CF
+:102D800020E040910D016EE082EF95E0099561E051
+:102D900070E080E090E00E948B0A80E10E94C713FF
+:102DA000C0906204D0906304E0906404F0906504E5
+:102DB000BC0190E080E00E94A53AA70196010E9424
+:102DC0008B3923E333E343E35FE30E945C3BA701DA
+:102DD00096010E948C396B017C01C0926204D092F2
+:102DE0006304E0926404F0926504209172043091CF
+:102DF000730440917404509175040E945C3BA701D8
+:102E000096010E945C3BA70196010E945C3B4B012E
+:102E10005C0120916E0430916F04409170045091D8
+:102E20007104C701B6010E945C3BA70196010E9494
+:102E30005C3B9B01AC01C501B4010E948C394B0184
+:102E40005C0120916A0430916B0440916C045091B4
+:102E50006D04C701B6010E945C3B9B01AC01C5013A
+:102E6000B4010E948C39209166043091670440912E
+:102E70006804509169040E948C390E94763A90E06F
+:102E800080E00E94A53A4B015C0160910401062E8E
+:102E9000000C770B880B990B0E94A73A9B01AC01A1
+:102EA0006091B9047091BA048091BB049091BC0404
+:102EB0000E948B399B01AC01C501B4010E948C3981
+:102EC0000E94763AAB017093B6046093B50480918A
+:102ED000840390918503840F951F909385038093BD
+:102EE0008403209183032F5F20938303283079F498
+:102EF00023E0959587952A95E1F79093B204809306
+:102F0000B104109285031092840310928303809180
+:102F1000D904882309F497C080919404811193C047
+:102F20008091B80481118FC08091390190913A014C
+:102F300003962091B1043091B204821B930B079742
+:102F4000A8F48091C704811111C081E08093C60468
+:102F500028E730E03093C5042093C4042CE231E02C
+:102F60003093C3042093C2048093C70480913B0133
+:102F7000873009F062C0C701B6010E94CE14E0900C
+:102F8000A704F090A804B70190E080E00E94A53A61
+:102F90004B015C0120E030EE4FEF54E40E94573BC0
+:102FA00061E087FF0BC020E030E0A901C501B4015A
+:102FB0000E94F83918160CF45FC060E08AE00E94A5
+:102FC000F1096091A7047091A804072E000C880BEA
+:102FD000990B0E94A73A20E030EE4FEF54E40E9494
+:102FE000FD3920E030E048EC52E40E945C3B0E9456
+:102FF000763A60938F04C0906204D0906304E090AE
+:103000006404F09065048091D90420E030E04FE73B
+:1030100054E4811142C0C701B6010E94573B87FDAD
+:1030200066C081E08093B804FF90EF90DF90CF906E
+:10303000BF90AF909F908F900895BA0190E080E08C
+:103040000E94A53A9ACF1092A8041092A704109259
+:1030500081031092800310927F0310927E0382EC12
+:1030600091E0A0E0B0E08093320190933301A0930F
+:103070003401B093350183CF81E28093800084E1F5
+:10308000809381008FEF97E0909389008093880070
+:10309000F0928B00E0928A0094CFC701B6010E94A3
+:1030A000573B87FD15C0809182038F5F8093820319
+:1030B000883008F4B9CF809170008E7F80937000C3
+:1030C0001092820381E08093B7041092D904ACCFB0
+:1030D00020E030E04FE754E4C701B6010E94F83920
+:1030E00087FF05C01092B704109282039DCF109203
+:1030F000B8049ACF80913B01873049F08091D50484
+:103100009091D60401969093D6048093D5040895A7
+:10311000CF92DF92EF92FF92CF93DF930E94240B26
+:10312000C0905D04D0905E04E0905F04F090600475
+:103130006C197D098E099F0964317105810591051E
+:1031400008F46AC0D1E0D093C60484E690E090937E
+:10315000C5048093C40486E490E09093C3048093F4
+:10316000C204C0913B01C13009F075C084E00E94E7
+:10317000C809209183042817190609F054C08091CA
+:10318000390190913A010A9690933A01809339015E
+:1031900080912D0190912E01CAE0D0E0BE010E94E5
+:1031A000CE3BEAE0E69F9001E79F300D112480912D
+:1031B000270190912801BE010E94CE3BE69FA0010D
+:1031C000E79F500D11248091390190913A01281701
+:1031D0003907C8F550933A01409339011092C7045A
+:1031E0001092D8041092D7041092CA041092B70417
+:1031F0001092CE041092D6041092D5041092D004EE
+:103200001092CF040E94240B60935D0470935E04BF
+:1032100080935F0490936004DF91CF91FF90EF90D3
+:10322000DF90CF90089584E00E94C8092091830424
+:10323000C227C817190609F0ABCF809139019091C8
+:103240003A010A97A1CF8417950740F630933A01C7
+:1032500020933901C3CFC23081F584E00E94C809B0
+:10326000209183042817190681F480918E0481111E
+:10327000C9CF80918A048111C5CFD0938E048091EB
+:103280008B048F5F80938B04BDCF84E00E94C809BC
+:10329000209183042D272817190609F0B3CF8091B8
+:1032A0008E048111AFCF80918A048111ABCFD0936E
+:1032B0008A0480918B048150E5CFC33009F066C148
+:1032C00080918804811120C0C091890484E00E940B
+:1032D000C809209183042817190659F4CF5FC093B9
+:1032E00089048091890484300CF44AC110928904C5
+:1032F00089CF84E00E94C80920918304D227D8177F
+:10330000190679F7C150EBCF813009F065C084E030
+:103310000E94C809209183042817190649F4809156
+:10332000870420E030E040E85FE3882309F449C0E7
+:1033300084E00E94C8092091830431E023272817E4
+:10334000190621F4809187048823E1F084E00E942B
+:10335000C809209183042817190659F184E00E94B6
+:10336000C8092091830431E023272817190609F0A2
+:10337000B8CF809187042DEC3CEC4CEC5DE38111DF
+:1033800005C0AFCF20E030E040E85FE36091160178
+:103390007091170180911801909119010E948B3949
+:1033A000609316017093170180931801909319018F
+:1033B00098CF80918704882389F22DEC3CEC4CEC6B
+:1033C0005DE3609116017091170180911801909151
+:1033D00019010E948C39E4CF823009F066C084E084
+:1033E0000E94C809209183042817190621F48091AE
+:1033F0008704882331F184E00E94C8092091830466
+:1034000031E023272817190659F184E00E94C809E2
+:103410002091830428171906F1F184E00E94C8095D
+:103420002091830431E023272817190609F059CF8A
+:10343000809187042DEC3CEC4CEC5DE3811118C0CD
+:1034400050CF20E030E040E85FE3609112017091DE
+:10345000130180911401909115010E948C3912C0C2
+:10346000809187048111D1CF20E030E040E85FE314
+:1034700060911201709113018091140190911501D6
+:103480000E948B3960931201709313018093140191
+:103490009093150126CF80918704882309F4BDCF2E
+:1034A0002DEC3CEC4CEC5DE3D0CF833009F019CF30
+:1034B00084E00E94C809209183042817190621F48A
+:1034C00080918704882341F184E00E94C8092091FB
+:1034D000830431E0232728171906A9F184E00E940C
+:1034E000C809209183042817190609F43FC084E015
+:1034F0000E94C8092091830431E023272817190668
+:1035000009F0EFCE80918704882309F4EACE2DECF0
+:103510003CEC4CEC5DE31FC020E030E040E85FE3B2
+:1035200060910E0170910F01809110019091110135
+:103530000E948C3960930E0170930F0180931001EB
+:1035400090931101CECE809187048111C7CF20E0E6
+:1035500030E040E85FE360910E0170910F018091CF
+:103560001001909111010E948B39E4CF8091870462
+:10357000882309F4BCCF2DEC3CEC4CEC5DE3D0CFC0
+:1035800087FF40CE83E0809389043CCEC43009F0AD
+:1035900080C0C0918504C11120C0C091860484E020
+:1035A0000E94C809209183042817190659F4CF5F97
+:1035B000C09386048091860483300CF44FC010922F
+:1035C000860420CE84E00E94C80920918304D2277B
+:1035D000D817190679F7C150EBCFC13009F584E04F
+:1035E0000E94C809209183042817190651F480917C
+:1035F00037019091380101969093380180933701FB
+:10360000D9CF84E00E94C80920918304C227C8173B
+:10361000190681F680913701909138010197ECCF1E
+:10362000C23041F684E00E94C80920918304281723
+:10363000190631F4809136018F5F80933601BACF3D
+:1036400084E00E94C80920918304D227D817190664
+:1036500009F0B0CF809136018150EFCF87FF04C0D1
+:1036600082E080938604CECD80913701909138011D
+:10367000883E23E0920738F08AE090E0909338018A
+:1036800080933701BFCD0A9708F0BCCD87EE93E059
+:10369000F5CFC53009F08FC0C0918104C11125C09C
+:1036A00084E00E94C809C0918404209183042817F3
+:1036B000190651F4CF5FC093840480918404843050
+:1036C00074F0109284049ECD84E00E94C809209179
+:1036D0008304D227D817190681F7C150ECCF87FF92
+:1036E00091CD83E0809384048DCDC13041F584E099
+:1036F0000E94C809209183042817190679F4809143
+:103700000D018B5F80930D0180910D019EEF980F4D
+:10371000933088F485E080930D0174CD84E00E949D
+:10372000C80920918304C227C817190669F7809138
+:103730000D018550E7CF811165CD8FEFECCFC23001
+:10374000F1F484E00E94C809209183042817190627
+:1037500039F48091820491E089278093820452CDCC
+:1037600084E00E94C8092091830431E023272817B0
+:10377000190609F047CD809182048327EECFC3302C
+:1037800009F040CD84E00E94C809209183042817E5
+:10379000190629F481E028272093830433CD84E09F
+:1037A0000E94C8092091830431E0232728171906B5
+:1037B00009F028CDF1CFC63009F007C180917B0414
+:1037C000811125C084E00E94C809C0918004209125
+:1037D00083042817190651F4CF5FC09380048091A9
+:1037E0008004843074F0109280040CCD84E00E9438
+:1037F000C80920918304D227D817190681F7C15030
+:10380000ECCF87FFFFCC83E080938004FBCC81303A
+:10381000C9F584E00E94C80920918304281719067D
+:10382000B9F42AE037ED43E25CE360910501709161
+:10383000060180910701909108010E948C396093E4
+:103840000501709306018093070190930801DACC7B
+:1038500084E00E94C8092091830431E023272817BF
+:10386000190609F0CFCC2AE037ED43E25CE3609122
+:1038700005017091060180910701909108010E9455
+:103880008B39DDCF8230C9F584E00E94C8092091D0
+:10389000830428171906B9F42DEC3CEC4CEC5DE3DD
+:1038A00060917C0470917D0480917E0490917F04EE
+:1038B0000E948C3960937C0470937D0480937E0415
+:1038C00090937F049FCC84E00E94C80920918304D8
+:1038D00031E023272817190609F094CC2DEC3CEC95
+:1038E0004CEC5DE360917C0470917D0480917E04DA
+:1038F00090917F040E948B39DDCF833009F082CC18
+:1039000084E00E94C8092091830428171906A9F5AC
+:103910002DEC3CEC4CEC5DE36091090170910A01E7
+:1039200080910B0190910C010E948C3960930901E8
+:1039300070930A0180930B0190930C01C0900901D0
+:10394000D0900A01E0900B01F0900C0120E030E0F3
+:1039500040EF51E4C701B6010E94573B181634F5F9
+:103960008DEC9CECACE4B0E48093090190930A01E7
+:10397000A0930B01B0930C0145CC84E00E94C809D0
+:103980002091830431E0232728171906B9F62DEC7E
+:103990003CEC4CEC5DE36091090170910A0180916F
+:1039A0000B0190910C010E948B39C0CF2DEC3CECA7
+:1039B0004CE450E4C701B6010E94F83987FF22CCDD
+:1039C00080E090E0A0EFB1E4CFCFC83009F071C043
+:1039D00080917704811126C084E00E94C809C091BB
+:1039E0007A04209183042817190651F4CF5FC093FD
+:1039F0007A0480917A0484307CF010927A0402CCAC
+:103A000084E00E94C8092091830431E0232728170D
+:103A1000190679F7C150EBCF87FFF4CB83E0809391
+:103A20007A04F0CB813021F584E00E94C80920910E
+:103A300083042817190671F4809104018F5F809325
+:103A40000401809104018D59873C08F4DBCB10926E
+:103A50000401D8CB84E00E94C8092091830431E09E
+:103A600023272817190669F7809104018150E7CFB1
+:103A7000833009F0C7CB84E00E94C80920918304F9
+:103A80002817190639F48091790491E089278093E9
+:103A90007904B8CB84E00E94C8092091830431E006
+:103AA00023272817190609F0ADCB809179048327C5
+:103AB000EECFC73009F0A6CBC0916104C11126C07A
+:103AC00084E00E94C809C0917604209183042817DD
+:103AD000190651F4CF5FC093760480917604873045
+:103AE0007CF0109276048ECB84E00E94C80920916D
+:103AF000830431E023272817190679F7C150EBCF4B
+:103B000087FF80CB86E0809376047CCBC13011F5B3
+:103B100084E00E94C809209183042817190651F4F3
+:103B2000809127019091280101969093280180931C
+:103B3000270168CB84E00E94C80920918304C22732
+:103B4000C817190609F05ECB8091270190912801D2
+:103B50000197EBCFC23019F584E00E94C80920918B
+:103B600083042817190651F48091290190912A01A4
+:103B7000019690932A018093290144CB84E00E940E
+:103B8000C8092091830431E023272817190609F07A
+:103B900039CB8091290190912A010197EACFC33056
+:103BA00019F584E00E94C80920918304281719069A
+:103BB00051F480912B0190912C01019690932C014E
+:103BC00080932B011FCB84E00E94C80920918304BD
+:103BD00031E023272817190609F014CB80912B0117
+:103BE00090912C010197EACFC43009F00BCB84E00F
+:103BF0000E94C809209183042817190651F4809166
+:103C00002D0190912E01019690932E0180932D010C
+:103C1000F9CA84E00E94C8092091830431E0232777
+:103C20002817190609F0EECA80912D0190912E01F6
+:103C30000197EACFEF92FF920F931F93CF93DF93F9
+:103C40008091C604882321F1D0E0C0E00091C20435
+:103C50001091C304C017D107C8F461E088E00E9446
+:103C6000F109E090C404F090C504C7010E945B0A0A
+:103C700060E088E00E94F10901501109C017D107E6
+:103C800018F4C7010E945B0A2196E0CF1092C60487
+:103C900080919404811104C08091B704882361F15C
+:103CA0000E94240B009174031091750320917603F8
+:103CB00030917703601B710B820B930B693E73404D
+:103CC00081059105C8F081E08093C60488E790E003
+:103CD0009093C5048093C4048CE291E09093C30454
+:103CE0008093C2040E94240B609374037093750345
+:103CF000809376039093770380915B048823C1F0CF
+:103D000081E08093C60486E990E09093C504809397
+:103D1000C40480ED92E09093C3048093C204109297
+:103D20005B04DF91CF911F910F91FF90EF90089569
+:103D300080915A048823A9F381E08093C60486E920
+:103D400090E09093C5048093C40480ED92E090933A
+:103D5000C3048093C20410925A04E3CFCF92DF923F
+:103D6000EF92FF920F931F93CF93DF936C01EB01C0
+:103D70007B01E40EF51E10E000E0CE15DF0561F0DA
+:103D80006991D601ED91FC910190F081E02DC60181
+:103D90000995080F191FF1CFC801DF91CF911F912D
+:103DA0000F91FF90EF90DF90CF900895089590E0ED
+:103DB00080E00895FC0101900020E9F73197AF0100
+:103DC000481B590BBC018EEE95E00C94AE1E8F92F1
+:103DD0009F92AF92BF920F931F93CF93DF93CDB774
+:103DE000DEB7A1970FB6F894DEBF0FBECDBF19A204
+:103DF000423008F44AE08E010F5D1F4F842E912C53
+:103E0000B12CA12CA50194010E945A39E62FB901C9
+:103E1000CA01EA30F4F4E05DD801EE938D01232B62
+:103E2000242B252B79F790E080E0109719F0CD0135
+:103E30000E94DA1EA1960FB6F894DEBF0FBECDBF6A
+:103E4000DF91CF911F910F91BF90AF909F908F9076
+:103E50000895E95CE1CF0C94DA1EBC0190E080E0AB
+:103E60004AE00C94E71E2F923F924F925F926F921E
+:103E70007F928F929F92AF92BF92CF92DF92EF92FA
+:103E8000FF920F931F93CF93DF9300D000D01F9228
+:103E9000CDB7DEB78C015C0124E0A20EB11CFC01A1
+:103EA000E758FF4F0190F081E02DC50109959A83F5
+:103EB00089838E3F9F4F08F040C0F801E458FF4FC0
+:103EC000F08048016BE7860E911CF401E080BE97FC
+:103ED0000190F081E02DC5010995F801EF5AFF4FDF
+:103EE000E08231968F0D808337978081918147964C
+:103EF00029813A812F3F310511F008F0FAC0B396BD
+:103F00002136310540F469817A816134710538F0D8
+:103F1000F801E459FF4F20813181820F931F9C01EA
+:103F20002F5F3F4FF9014491411121C01B82F401E1
+:103F30008081FB818F0FF401808381E090E00F90FE
+:103F40000F900F900F900F90DF91CF911F910F91D5
+:103F5000FF90EF90DF90CF90BF90AF909F908F90A9
+:103F60007F906F905F904F903F902F900895FC014D
+:103F7000449169817A814617170609F0B5C0029607
+:103F80000097A1F2B801615B7F4F7D836C83FB01D9
+:103F9000918380831086709660818C819D810E94C0
+:103FA0001311EC81FD818683F801E05AFF4F608197
+:103FB0008C819D810E941311782EEC81FD81878375
+:103FC0006801F7E7CF0ED11CF6019081EC81FD81ED
+:103FD000928781E0911180E0EC81FD818387F80177
+:103FE000EF59FF4F6080662D8C819D810E941311D7
+:103FF000382EF801EE59FF4FF0806F2D8C819D8196
+:104000000E941311482E8FEF8F0DEE24E394F12CB4
+:10401000970102C0220F331F8A95E2F73A83298362
+:10402000F801ED59FF4F5080652D8C819D810E94D4
+:1040300013115A94970101C0220F5A94EAF7821B78
+:104040008B83EC81FD81868118160CF070CF6A9409
+:1040500001C0EE0C6A94EAF782818E19380E328222
+:104060008381F9818F0F84198719EC81FD81838306
+:10407000148215829801235A3F4F3A83298378018D
+:104080003EE5E30EF11CE981FA8160818C819D811E
+:104090000E941311482EF70160818C819D810E943E
+:1040A0001311382EEC81FD8114816580542CEC8134
+:1040B000FD812680211A818581110FC06281438193
+:1040C0008385F6018083222D521408F4252D460D98
+:1040D000610F00E0C5010E94DF0E521408F43CC0DD
+:1040E0005218639410E0E3CFF9012491820F911DDF
+:1040F00016CFF801E059FF4FC080D180C80ED91EFD
+:10410000760160E0C7010E943E11C80ED91E62E030
+:10411000C7010E943E11F4E0EF0EF11C29813A81A3
+:104120008217930770F3F601849190E0982F882707
+:104130003196E4918E2B009709F4F8CE29813A81CB
+:104140002817390719F4C60103961ACFF6013296DB
+:10415000E491CE0ED11CE7CF150DEC81FD811483C7
+:104160006582532CEC81FD812680211A6281438176
+:104170008285F6018083222D521408F4252D460DE8
+:10418000610F00E0C5010E94DF0E521420F05218AA
+:10419000639410E0E7CF150DEC81FD8114836582F7
+:1041A00061E0CF010E94131181117CCFEC81FD8170
+:1041B000858187150CF467CF8285F6018083B7CEA1
+:1041C0004F925F926F927F928F929F92AF92BF9227
+:1041D000CF92DF92EF92FF92CF93DF936B017C013E
+:1041E000D42FAC019B010E94C93B882391F08DED37
+:1041F00091E0DF91CF91FF90EF90DF90CF90BF9053
+:10420000AF909F908F907F906F905F904F900C94A5
+:10421000DA1E26013701E89477F82FEF3FEF4FE7DA
+:104220005FE7C301B2010E94C93B81110DC02FEFAE
+:104230003FEF4FE75FE7C301B2010E94F83918165C
+:104240001CF481EE91E0D5CF2FEF3FEF4FE75FE415
+:10425000C701B6010E94573B18161CF485EE91E089
+:10426000C8CF2FEF3FEF4FE75FECC701B6010E94C9
+:10427000F83987FDF3CF20E030E0A901C701B6018E
+:104280000E94F839912C812C87FF0AC06DE28EEED6
+:1042900095E00E94331F4C01F7FAF094F7F8F09480
+:1042A000CD2FA12C60E070E080E09FE3AD1640F4DC
+:1042B00020E030E040E251E40E94FD39A394F6CFC3
+:1042C000A70196010E948C392B013C010E94763A8D
+:1042D0005B016C014AE00E94E71E7C01E80CF91CBE
+:1042E000DD23A9F1C601B5010E94A53A9B01AC01ED
+:1042F000C301B2010E948B394B015C016EE28EEE6C
+:1043000095E00E94331FE80EF91EC15000F120E035
+:1043100030E040E251E4C501B4010E945C3B2B0156
+:104320003C010E94763A4B01CB010E942D1FE80E02
+:10433000F91EB40190E080E00E94A53A9B01AC0117
+:10434000C301B2010E948B394B015C01DECFC70172
+:10435000DF91CF91FF90EF90DF90CF90BF90AF9023
+:104360009F908F907F906F905F904F900895CF9225
+:10437000DF92EF92FF92CF93DF936C01990FEE08DB
+:10438000FF08F7FE19C06DE28EEE95E00E94331F24
+:10439000EC0166277727CB016C197D098E099F09EF
+:1043A0004AE00E94E71E8C0F9D1FDF91CF91FF9086
+:1043B000EF90DF90CF9008954AE0C701B601DF91FA
+:1043C000CF91FF90EF90DF90CF900C94E71E85ED9A
+:1043D0008093BC008091DD039091DE03A091DF0308
+:1043E000B091E0030796A11DB11D23E0B695A795F6
+:1043F000979587952A95D1F72091BC0024FD03C09D
+:1044000010922A0408954091DD035091DE036091DB
+:10441000DF037091E003452B462B472B69F3009790
+:10442000A105B10541F025E32A95F1F700000197B8
+:10443000A109B109E1CF8091DC030C94760BFC015A
+:10444000A081B18150962C9182AD38E0839FC0014C
+:104450001124289FA001299F500D112470E060E0D5
+:1044600080AD91AD0C94383D1F93CF93DF93EC0159
+:104470000E9414121BAD8AAD180FE881F981818961
+:10448000181768F0EC81FD8130E020E040E060E149
+:10449000CE01099580E0DF91CF911F910895FE0133
+:1044A000EC58FF4F8081882319F0CE010E941F2213
+:1044B000612FCE010E94011281E0EDCFCF93DF93F7
+:1044C000EC01FC01EC58FF4F8081882319F0CE01EC
+:1044D0000E941F2260E0CE01DF91CF910C94011267
+:1044E000FF920F931F93CF93DF93EC01F62E088179
+:1044F0001981C8010E941239F81621F06F2DC801E8
+:104500000E941A39CE01DF91CF911F910F91FF9038
+:104510000895EF92FF920F931F93CF93DF9300D0F4
+:10452000CDB7DEB78C017B019A838983FB01608163
+:10453000CE0101960E9470220F5F1F4F1A830983DC
+:10454000F7016181CE0101960E947022C7010F9090
+:104550000F90DF91CF911F910F91FF90EF900895F1
+:104560000F931F93CF93DF9300D0CDB7DEB78B01AE
+:104570009A838983FB016081CE0101960E9470229B
+:10458000C8010F900F90DF91CF911F910F91089567
+:104590000F931F93CF93DF9300D0CDB7DEB78B017E
+:1045A0009A838983FB016081CE0101960E9470226B
+:1045B000C8010F900F90DF91CF911F910F91089537
+:1045C000AF92BF92CF92DF92EF92FF920F931F9321
+:1045D000CF93DF9300D0CDB7DEB78B016B0124E022
+:1045E000C20ED11C7B015C01A61AB70AC5018E0D53
+:1045F0009F1D9A838983F70161917F01CE01019606
+:104600000E947022EC14FD0489F7C8010F900F90EE
+:10461000DF91CF911F910F91FF90EF90DF90CF909E
+:10462000BF90AF900895CF93DF93EB010E941239B2
+:104630008883CE01DF91CF910895CF93DF93EB0173
+:104640000E9412398883CE01DF91CF9108950F9394
+:104650001F93CF93DF938C01EB010E941239888363
+:10466000C80101960E9412398983CE01DF91CF9152
+:104670001F910F910895CF92DF92EF92FF920F93C7
+:104680001F93CF93DF93EB017B0124E0E20EF11C3B
+:104690008B016C01C61AD70AC601800F911F0E94B8
+:1046A0001239F80181938F01EE15FF05A9F7CE01AC
+:1046B000DF91CF911F910F91FF90EF90DF90CF90FE
+:1046C00008952F923F924F925F926F927F928F92B6
+:1046D0009F92AF92BF92CF92DF92EF92FF920F9391
+:1046E0001F93CF93DF93CDB7DEB7AA970FB6F89499
+:1046F000DEBF0FBECDBF88E0E6E4F1E0DE015196FB
+:1047000001900D928A95E1F764E070E084E090E01A
+:104710000E94F73B9EA38DA364E070E087E090E0E9
+:104720000E94F73B98A78FA364E070E084E090E0DC
+:104730000E94F73B9AA789A764E070E084E090E0CC
+:104740000E94F73B9CA38BA364E070E080E190E0C3
+:104750000E94F73B9E8F8D8F37E2C32E31E0D32E20
+:10476000ADA0BEA020E1A20EB11C09A51AA5EDA026
+:10477000FEA0412C512C40E8642E4FE3742ED7014B
+:104780004D925D926D927D927D01F60161917191E4
+:104790006F01072E000C880B990B0E94A73AD801D5
+:1047A0006D937D938D939D938D01EA14FB0439F7EE
+:1047B000EFA1F8A5FA8FE98F9F01245E3F4F3C8F50
+:1047C0002B8F8F01D8011D921D921D921D928D017C
+:1047D000FE0171961F01CDA0DEA0812C912C540109
+:1047E000D6014D905D906D907D906D01A301920179
+:1047F000C501B4010E948C394B015C01F10161914A
+:1048000071911F0196012450310938A32F8F072E73
+:10481000000C880B990B0E94A73AA30192010E94F9
+:104820005C3BAF8DB8A16D937D938D939C93139753
+:10483000CE14DF04A9F6F801349780829182A28217
+:10484000B382EB8DFC8D0E171F0709F0BBCF2BA198
+:104850003CA138A32F8F690130E1C30ED11C0BA1FD
+:104860001CA189A59AA540969C8F8B8FD8011D927B
+:104870001D921D921D928D01FE0171961F01E9A4EA
+:10488000FAA4812C912C5401D7014D905D906D902C
+:104890007D907D01A3019201C501B4010E948C3974
+:1048A0004B015C01F101619171911F01970124504D
+:1048B00031093AA329A3072E000C880B990B0E94FB
+:1048C000A73AA30192010E945C3BA9A1BAA16D93F2
+:1048D0007D938D939C931397EB8DFC8DEE15FF05C7
+:1048E00099F6F801349780829182A282B3820C15E6
+:1048F0001D0509F0BBCF4D8D5E8D405C5F4F2D8D4A
+:104900003E8D90E080E0F901E80FF91FA98DBA8D86
+:10491000A80FB91FCD90DD90ED90FC90C082D182A0
+:10492000E282F38204968031910569F7898D9A8D30
+:1049300004969A8F898F205F3F4F4217530709F7DC
+:104940002D8D3E8D3A8F298F1C8E1B8EB12CA12C64
+:10495000A98DBA8DCD90DD90ED90FC90E894F7F89C
+:104960001501BFEF2B1A3B0AE98DFA8DFAA3E9A3D3
+:1049700085014101F3E08F16910409F1A9A1BAA1C3
+:1049800054964D905D906D907C905797E89477F891
+:10499000A7019601C301B2010E94573B18166CF0A3
+:1049A00026013701BFEF8B1A9B0AE9A1FAA1749681
+:1049B000FAA3E9A373016201DDCF8401F3CF0A15E5
+:1049C0001B0509F44AC0AD8DBE8D2B8D3C8DA20F09
+:1049D000B31F000F111F000F111FF801EE0FFF1F73
+:1049E000EE0FFF1FAD8CBE8CAE0EBF1E90E080E0C0
+:1049F0004D915D916D917D91F501C080D180E280F6
+:104A0000F3809D0124503109F901C082D182E282F4
+:104A1000F382F50141935193619371935F01019684
+:104A20008430910529F7EF8DF8A180819181A281D1
+:104A3000B3812BA13CA1020F131FF80140815181CA
+:104A400062817381EF8DF8A1408351836283738308
+:104A5000F80180839183A283B3836F8C78A0F4E004
+:104A60006F0E711C80EFA82EBB24BA942B8D3C8D49
+:104A7000A21AB30A098D1A8D23014101780134E18C
+:104A8000E30EF11C6101F501EE0DFF1D8B8D9C8D78
+:104A9000E80FF91FD80150962D913D914D915C91F1
+:104AA000539760817181828193810E945C3BE98D83
+:104AB000FA8D20813181428153810E94FD399B0111
+:104AC000AC01D7016D917D918D919C910E948B39A4
+:104AD000F70161937193819391937F01FFEFCF1A57
+:104AE000DF0A24E0C216D10471F6D201CD90DD9028
+:104AF000ED90FD902D01FD013497FAA3E9A3AF8D50
+:104B0000B8A12D913D914D915C91F8016089718919
+:104B1000828993890E945C3BA98DBA8D2D913D912C
+:104B20004D915C910E94FD399B01AC01C701B6011A
+:104B30000E948B39E9A1FAA16083718382839383F8
+:104B4000FFEF8F1A9F0A005F1F4F20E1A21AB108E2
+:104B500034E08316910409F091CFA98DBA8D549653
+:104B6000BA8FA98FEB8DFC8D7096FC8FEB8F510166
+:104B700078A26F8EF3E02F16310409F0E9CE8BA0F6
+:104B80009CA080E1880E911C8E01035F1F4FED8C6D
+:104B9000FE8C9CE3E90EF11CF401B291A29192917A
+:104BA00082914F01F80180839183A283B3835101E5
+:104BB000D12CC12CD8014D905D906D907C90BFEFB1
+:104BC000AB1ABB0AE4E0CE0ED11CF4E0AF16B10480
+:104BD000E9F0F801EC0DFD1D208131814281538106
+:104BE000F701EC0DFD1D60817181828193810E942E
+:104BF0005C3B9B01AC01C301B2010E948B39D8011F
+:104C00006D937D938D939C931397D4CFF70120815F
+:104C1000318142815381C301B2010E94FD39D80123
+:104C20006D937D938D939C931397B1E02B1A31086C
+:104C300004501109E4E1EE1AF108FFEF2F163F06C8
+:104C400009F0AACF8DA19EA10E94AF3C8FA198A58B
+:104C50000E94AF3C89A59AA50E94AF3C8BA19CA164
+:104C60000E94AF3C8D8D9E8D0E94AF3C89819A81C0
+:104C7000AB81BC818093660490936704A093680421
+:104C8000B09369048D819E81AF81B88580936A0459
+:104C900090936B04A0936C04B0936D0489859A85FE
+:104CA000AB85BC8580936E0490936F04A0937004D1
+:104CB000B09371048D859E85AF85B8898093720409
+:104CC00090937304A0937404B0937504AA960FB6DE
+:104CD000F894DEBF0FBECDBFDF91CF911F910F9132
+:104CE000FF90EF90DF90CF90BF90AF909F908F900C
+:104CF0007F906F905F904F903F902F9008951F92FC
+:104D00000F920FB60F9211242F933F938F939F937F
+:104D1000AF93BF938091510490915204A09153049A
+:104D2000B09154043091500423E0230F2D3758F5EF
+:104D30000196A11DB11D20935004809351049093BE
+:104D40005204A0935304B09354048091550490915D
+:104D50005604A0915704B09158040196A11DB11DAD
+:104D60008093550490935604A0935704B09358042D
+:104D7000BF91AF919F918F913F912F910F900FBE57
+:104D80000F901F90189526E8230F0296A11DB11DC4
+:104D9000D2CF1F920F920FB60F9211242F933F93F1
+:104DA0004F935F936F937F938F939F93AF93BF9333
+:104DB000EF93FF93E0910201F09103010995FF91B8
+:104DC000EF91BF91AF919F918F917F916F915F9183
+:104DD0004F913F912F910F900FBE0F901F901895FC
+:104DE0001F920F920FB60F9211242F933F934F9360
+:104DF0005F936F937F938F939F93AF93BF93EF9343
+:104E0000FF93E0910001F09101010995FF91EF916D
+:104E1000BF91AF919F918F917F916F915F914F91D2
+:104E20003F912F910F900FBE0F901F9018951F92DA
+:104E30000F920FB60F9211242F933F934F935F93CE
+:104E40006F937F938F939F93AF93BF93EF93FF9352
+:104E50008091B900887F803609F44AC0F0F5883225
+:104E600009F4A7C018F5803109F49BC0B8F4882371
+:104E700009F4F9C0883009F494C0FF91EF91BF9113
+:104E8000AF919F918F917F916F915F914F913F91E2
+:104E90002F910F900FBE0F901F901895883109F435
+:104EA00088C0803251F78093290414C0803409F4FB
+:104EB0009DC040F48033B9F38833F9F68093290418
+:104EC00085ECB0C0803509F485C0883509F496C0FA
+:104ED000883499F60E94E721D0CF883909F48CC034
+:104EE00038F5883729F050F4883611F0803729F6E4
+:104EF00083E080932A041092280457C0883809F46C
+:104F00007BC0803919F0803809F0B7CF8091280430
+:104F1000803208F071C0E091280481E08E0F809308
+:104F200028048091BB00F0E0E85FFB4F80833DC028
+:104F3000803B39F0E0F4803A09F479C0883A09F00E
+:104F40009CCF84E080932A041092050410920404FC
+:104F5000E0910204F0910304099580910404811109
+:104F60000FC081E0809304041092E20309C0803CEA
+:104F700009F4A6CF883C09F4A3CF883B09F07DCF84
+:104F8000E091050481E08E0F80930504F0E0EE517E
+:104F9000FC4F80818093BB009091050480910404B4
+:104FA00029C080914F048093BB0085EC8093BC00A6
+:104FB00064CF90914E0480914D04981758F5E0917C
+:104FC0004E0481E08E0F80934E04F0E0E35DFB4FD2
+:104FD0008081E9CFE0914E0481E08E0F80934E04F2
+:104FE0008091BB00F0E0E35DFB4F808390914E0425
+:104FF00080914D049817C8F285E8D8CFE0914E040F
+:1050000081E08E0F80934E048091BB00F0E0E35D61
+:10501000FB4F808380912C0481115CCF81E08093D1
+:105020002B0484EA8093BC0010922A0426CF85ECDE
+:105030008093BC0010922A0480912804803230F4BE
+:10504000E0912804F0E0E85FFB4F108260912804B3
+:1050500070E0E0910604F091070488E094E009957F
+:10506000109228040ACF1092290434CF1F920F9275
+:105070000FB60F9211242F933F934F935F936F932B
+:105080007F938F939F93AF93BF93EF93FF93809101
+:10509000DA049091DB048093B200809191039091A7
+:1050A0009203A0919303B09194030196A11DB11DA9
+:1050B0008093910390939203A0939303B0939403EE
+:1050C0008091910390919203A0919303B0919403E6
+:1050D0004091DE045091DF046091E0047091E1049E
+:1050E00084179507A607B70710F1809190038111E7
+:1050F0001EC081E080939003809191039091920370
+:10510000A0919303B0919403841B950BA60BB70B4E
+:105110008093910390939203A0939303B09394038D
+:10512000E091DC04F091DD04099510929003FF9169
+:10513000EF91BF91AF919F918F917F916F915F910F
+:105140004F913F912F910F900FBE0F901F90189588
+:105150001895CF931092E5041092E40488EE93E042
+:10516000A0E0B0E08093E6049093E704A093E80405
+:10517000B093E9048DEB91E09093E3048093E20413
+:105180001092F1051092F0058DEC98E0909368066E
+:10519000809367061092690610926A0610920A06BA
+:1051A0008FEC91E09093EF058093EE051092F3055C
+:1051B0001092F205109207061092FE051092FF055C
+:1051C00010920006109201068FEF809308068093DC
+:1051D0000C06E0E1F6E086E296E0CFEFC1938E1791
+:1051E0009F07E1F78DE99CE09093F7058093F60522
+:1051F0008CE89DE09093F9058093F80580E792E1B3
+:105200009093FB058093FA058EEB9AE09093FD0551
+:105210008093FC0530E020E040E069E082EF95E01B
+:105220000E949D0C10923A061092390687ED98E084
+:1052300090932706809326068EEE94E090932B069B
+:1052400080932A0682E080932C0610922D061092FD
+:1052500046061092640681E0809365068093660698
+:1052600087ED91E0909329068093280682EF95E0E0
+:105270000E94DB0EE0912806F09129060280F3815E
+:10528000E02D82EF95E009958AE399E090933C0642
+:1052900080933B06C0931B06C0931C06C0931D065B
+:1052A000CF910895CF93DF9300D0CDB7DEB7789438
+:1052B00084B5826084BD84B5816084BD85B582601B
+:1052C00085BD85B5816085BD80916E0081608093CC
+:1052D0006E00109281008091810082608093810035
+:1052E0008091810081608093810080918000816045
+:1052F000809380008091B10084608093B1008091A0
+:10530000B00081608093B00080917A0084608093C7
+:105310007A0080917A00826080937A0080917A008E
+:10532000816080937A0080917A00806880937A000F
+:105330001092C10069E574E090E080E00E941323C0
+:1053400080915904823010F01092590480915904D0
+:1053500081117AC066E171E081E090E00E94E02274
+:1053600062E171E085E090E00E94E0226EE071E091
+:1053700089E090E00E94E02267E371E08DE090E038
+:105380000E94892266E371E081E190E00E94B022F0
+:105390006DE071E082E190E00E94B02265E071E092
+:1053A00083E190E00E94E0226CE774E087E190E006
+:1053B0000E94E02268E774E08BE190E00E94C8223E
+:1053C00069E071E08CE190E00E94E02264E071E02D
+:1053D00080E290E00E94B02262E874E081E290E016
+:1053E0000E94C82263E874E082E290E00E94C82232
+:1053F00067E271E083E290E00E94892269E271E055
+:1054000087E290E00E9489226BE271E08BE290E0FB
+:105410000E9489226DE271E08FE290E00E94892271
+:1054200069E371E083E390E00E94892281E090E0EB
+:105430009A838983BE016F5F7F4F90E080E00E9476
+:10544000892281E08093590480915904813009F0C8
+:105450006CC066E171E081E090E00E943B2362E174
+:1054600071E085E090E00E943B236EE071E089E00E
+:1054700090E00E943B2367E371E08DE090E00E94A2
+:10548000272366E371E081E190E00E9413236DE041
+:1054900071E082E190E00E94132365E071E083E116
+:1054A00090E00E943B236CE774E087E190E00E946B
+:1054B0003B2368E774E08BE190E00E941D2369E0E4
+:1054C00071E08CE190E00E943B2364E071E080E2B7
+:1054D00090E00E94132362E874E081E290E00E9471
+:1054E0001D2363E874E082E290E00E941D2367E2DE
+:1054F00071E083E290E00E94272369E271E087E295
+:1055000090E00E9427236BE271E08BE290E00E9422
+:1055100027236DE271E08FE290E00E94272369E388
+:1055200071E083E390E00E94272362E082E00E9422
+:105530001F0A62E083E00E941F0A62E084E00E948A
+:105540001F0A60E080E10E941F0A62E08EE00E9474
+:105550001F0A60E084E10E941F0A60E081E10E946E
+:105560001F0A61E088E00E941F0A61E08AE00E9451
+:105570001F0A60E08AE00E94F10960E088E00E9472
+:10558000F109E091F605F091F70530E020E040E008
+:105590006AE082EF95E0099582EF95E00E945E2235
+:1055A00082EF95E00E9434228111FACF60E082EF11
+:1055B00095E00E940112E091F605F091F70530E0C8
+:1055C00020E040E06BE082EF95E0099586EF9DE0FA
+:1055D0009093680680936706E091F605F091F705D1
+:1055E00030E020E040910D016EE082EF95E00995FA
+:1055F00080918204882309F4D0C283EB91E00E9459
+:105600003C0980917A00866080937A0080917A00CC
+:10561000886080937A00789488E898E190930301F9
+:105620008093020180916900837F88608093690084
+:10563000E99A82EF95E00E945E2202E315E18EEA8C
+:1056400097E00E944A110093690610936A0689EE5A
+:1056500091E00E942B1F82EF95E00E94342281117D
+:10566000EECF11E01093C60488E592E09093C50454
+:105670008093C40488EC90E09093C3048093C204A8
+:105680000E941A1E1093C60480E991E09093C5040D
+:105690008093C4048CE291E09093C3048093C2048D
+:1056A0000E941A1E1093C60482E890E09093C504ED
+:1056B0008093C40488EE93E09093C3048093C20463
+:1056C0000E941A1E1AE00E944B140E94F5130E94B9
+:1056D000A7161150C1F780917804882309F460C29D
+:1056E00081E08093D9040E946123B1E92B2E312CF3
+:1056F000A8950E94240B00915D0410915E042091F6
+:105700005F0430916004601B710B820B930B603A55
+:1057100071058105910508F444C082E00E94C80922
+:10572000892B71F580915C048F5F80935C0481E02C
+:105730008093C60480E590E09093C5048093C404F0
+:1057400086E990E09093C3048093C20480913B016A
+:10575000813011F41092B7041092CE041092D60446
+:105760001092D5041092D0041092CF040E94240B02
+:1057700060935D0470935E0480935F049093600473
+:1057800010915C04153008F417C280913B01813000
+:1057900009F009C292E090933B0180935B04109260
+:1057A0005C048091BD04811107C082EF95E00E94E6
+:1057B0005E2281E08093BD048091CE0481110C941F
+:1057C000783780913B01813009F0A7C58091B704FB
+:1057D00010912F019091B80491110C9458388111B7
+:1057E00099C484E495E00E944A111E5E8091B5043C
+:1057F0009091B6048336910508F485C41092690629
+:1058000010936A062091D904222309F480C42091C0
+:10581000B3043091B4042C5F3F4F2930310508F0B8
+:1058200076C48091B1049091B2040E94B72180E5C2
+:1058300094E00E944A1180912701909128010AE08A
+:1058400010E0B8010E94CE3BEAE0E69F6001E79FCE
+:10585000D00C1124F12CE12C2091390130913A0126
+:1058600050E040E02C193D094E095F09A6E3B0E085
+:105870000E9447394B015C0180912D0190912E01CE
+:10588000B8010E94CE3BE69F9001E79F300D1124A6
+:1058900050E040E02C193D094E095F09C501B401F3
+:1058A0000E942839DA01C9010396A11DB11D809318
+:1058B000B00460912F01645E2FE042E00E9441102D
+:1058C00060912F01625E22E04DE380E00E94C20FF2
+:1058D0004091390150913A0190912F012091B004EB
+:1058E000935E453081E0580708F03CC42C5F20935C
+:1058F000690690936A06CA010E942D1F8EEA97E0FE
+:105900000E944A1180912F01882371F09FEF980F18
+:1059100090932F0192E3909369068C5080936A06CE
+:1059200089EE91E00E942B1F8091AF048823A1F1A2
+:105930008091AE04873008F017C48F5F8093AE0467
+:105940009091AD049F5F9093AD048730D9F410928D
+:1059500026018091D904882351F08091CA048111D5
+:1059600006C069E371E083E390E00E9489228091A0
+:10597000D90491E089278093D904809170008E7FAB
+:10598000809370000E94240B6093A9047093AA0472
+:105990008093AB049093AC0410912F01E3E0FE2EB2
+:1059A000F10E0EE0010F22E043E06F2D8BE40E9428
+:1059B0008C0F21E043E06F2D86E50E948C0F24E0E0
+:1059C00043E0602F8BE40E948C0F28E043E0602FBF
+:1059D00086E50E948C0FF4E0FF2EF10E00E02AE035
+:1059E000412F6CE482EF95E00E94DF0E41E1410F10
+:1059F0002AE06CE482EF95E00E94DF0E4AE06F2D12
+:105A000088E40E94DE0F4AE06F2D89E50E94DE0FD8
+:105A100080912F01825F9BE49093690680936A06D0
+:105A20008091D904882309F4C0C38091CA048111EC
+:105A3000B9C38CE093E00E942B1F1091AE04173085
+:105A400019F482E00E9452098091AD0421E0280FF0
+:105A5000220F41E0410F440F60912F01681B685FE6
+:105A60000091260180E5811B0E9478108091AE0490
+:105A7000873019F481E00E9452098091D90488236B
+:105A800009F4DBC3E090A704F090A8040E94240B63
+:105A90000091A3041091A4042091A5043091A604C0
+:105AA0004B015C01801A910AA20AB30A9701A4ED86
+:105AB000BEEF0E94E83B2FEF37E040E050E00E944D
+:105AC00028392E533E4F4F4F5F4F442755272815F7
+:105AD00039054A055B0508F047C005E914E073EA9B
+:105AE000A72E74E0B72E29E030E0D7010E94F03BEA
+:105AF0002FEF37E040E050E00E94283969017A0139
+:105B0000B3E0CB0ED11CE11CF11CDD24EE24FF24FC
+:105B100026013701E1E04E1A51086108710881E061
+:105B200090E0A0E0B0E0F2E0CF16D104E104F1048F
+:105B30005CF00E94BA38A30192010E942839DC016E
+:105B4000CB010196A11DB11DF80181938F01AE1605
+:105B5000BF0629F70E94240B6093A3047093A4044A
+:105B60008093A5049093A60405E914E06AE4D62E78
+:105B7000D8018D918D0190912F0150E2F52EF90EF3
+:105B8000EF2CE81AEF1410F40C946738811110C34D
+:105B9000B12CCF2CFD2CED2C11C387ED91E02FCD36
+:105BA0001092D904A0CD873009F4F9CD81E080931B
+:105BB0003B0180935A04F3CD0E94240BC0905D04F6
+:105BC000D0905E04E0905F04F09060046C197D0951
+:105BD0008E099F09653071408105910508F4E1CD7A
+:105BE00080913B01813091F4123009F0D8CD909131
+:105BF00094049111D4CD9091B8049111D0CD80939B
+:105C0000AF041092CA041092C704C9CD823009F0C3
+:105C10004EC0113009F0C3CD80918B04811104C0B6
+:105C200084E080933B01BBCD8B3F11F0813011F4B8
+:105C300083E0F7CF8F3F11F0853011F485E0F1CF8D
+:105C40008E3F11F0843011F486E0EBCF8C3F11F0E1
+:105C5000823011F488E0E5CF8D3F19F0833009F0F0
+:105C60009ECD80E090E0A0E4B1E480931601909393
+:105C70001701A0931801B09319018DEC9CECACE0D6
+:105C8000B0E48093120190931301A0931401B09398
+:105C900015018AE999E9A9E9BFE380930E01909380
+:105CA0000F01A0931001B093110187E0BACF8330A8
+:105CB00009F052C0113009F072CD80918904813011
+:105CC00081F024F481116BCD82E0ABCF823031F1D1
+:105CD000833009F064CD80918804811131C083E064
+:105CE00004C090918804911103C08093880457CD1B
+:105CF000913009F054CD80918704811104C081E076
+:105D0000809387044CCD66E171E081E090E00E94D1
+:105D1000E022109287041092880441CD809188047B
+:105D2000811102C082E0E1CF823009F038CD80914C
+:105D30008704882321F362E171E085E090E0E7CFFA
+:105D4000833009F02CCD809187048823C1F26EE066
+:105D500071E089E090E0DBCF843069F5113009F023
+:105D60001ECD80918604813049F0823009F0AACF9F
+:105D700080918504811115C082E004C09091850452
+:105D8000911103C0809385040ACD913009F007CDAD
+:105D900067E371E08DE090E00E9489221092850413
+:105DA000FECC823009F0FBCC66E371E081E190E04B
+:105DB0000E94B022F3CF853009F04FC0113009F0B6
+:105DC000EECC809184048130D9F00CF47BCF82300A
+:105DD00059F1833009F0E3CC909181049923A9F023
+:105DE000933009F0DCCC63E874E082E290E00E943A
+:105DF000C82263E874E082E290E00E941D2311C093
+:105E000080918104811104C081E080938104C7CC1A
+:105E1000813009F0C4CC6DE071E082E190E00E9435
+:105E2000B02210928104BBCC90918104992369F334
+:105E3000923009F0B4CC62E874E081E290E00E9414
+:105E4000C82280918204882329F083EB91E00E948C
+:105E50003C09E7CF87ED91E0FACF8630D1F51130DC
+:105E600009F09DCC80918004813099F00CF42ACF08
+:105E7000823019F1833009F092CC90917B04992300
+:105E800069F0933009F08BCC69E071E08CE190E02F
+:105E90000FC080917B04811104C081E080937B045A
+:105EA0007ECC813009F07BCC65E071E083E190E04D
+:105EB0000E94E02210927B0472CC90917B04992383
+:105EC00069F3923009F06BCC6CE774E087E190E005
+:105ED000EFCF883009F09BC0113009F060CC809181
+:105EE0007A04813009F46FC00CF4ECCE823009F4EE
+:105EF0007DC0833009F053CC90917704992309F445
+:105F000066C0933009F04BCC80917904882309F462
+:105F10006AC0C12CD12C7601B12CA12C10E000E07C
+:105F2000A89526013701AAE0759467945794479481
+:105F3000AA95D1F74201C2018A199B090597F0F091
+:105F400082EF95E00E945E2292E390936906A0E1C1
+:105F5000A0936A06C4010E942D1FBBE4B09369069A
+:105F6000E0E1E0936A068FEE91E00E942B1F82EF42
+:105F700095E00E9434228111E7CF520160E0C80110
+:105F80000E941A390F5F1F4FF4E6CF0ED11CE11C9F
+:105F9000F11CC11420E9D20621E0E206F10409F067
+:105FA000BFCFA89584B7877F84BF80916000886148
+:105FB0008093600080E18093600080916000886041
+:105FC0008093600010C090917704911103C080937A
+:105FD0007704E5CB913009F0E2CB64E071E080E238
+:105FE00090E00E94B02210927704D9CB8091770480
+:105FF0008111D5CB8091780491E089278093780432
+:1060000068E774E08BE190E00E94C822C8CB87303B
+:1060100009F0C5CB113009F0C2CBE0917604E7302E
+:1060200008F0BDCB0E2E000CFF0BE75EFF4C0C946E
+:10603000E23B20303830503061306F307D302030DE
+:1060400082E080933B011092760466E171E081E08A
+:1060500090E00E943B2362E171E085E090E00E94C5
+:106060003B236EE071E089E090E00E943B2397CBF8
+:1060700080916104811106C081E080936104809366
+:10608000D9048DCB813009F08ACB67E271E083E2DD
+:1060900090E00E948922109261041092D9047FCB73
+:1060A00080916104811105C082E08093610481E0E8
+:1060B000E6CF823009F073CB69E271E087E290E0CD
+:1060C000E8CF80916104811102C083E0EECF83307C
+:1060D00009F065CB6BE271E08BE290E0DACF809162
+:1060E0006104811102C084E0E0CF843009F057CB15
+:1060F0006DE271E08FE290E0CCCF0E94612386E0F8
+:10610000809376044CCB2AE02093690679CB0E94D9
+:106110002D1F8DCB82EC90E00E944A118CE0809381
+:106120006906185F10936A0681EF91E00E942B1FA9
+:1061300080912F018F5E97E19093690680936A06A4
+:1061400089EF91E00E942B1F82E00E94520922E118
+:106150004DE360912F0180E00E94C20F81E00E9418
+:10616000520965CB2A51C3CB0E94240B0091A9048C
+:106170001091AA042091AB043091AC04601B710B08
+:10618000820B930B6D3271408105910508F404CCAC
+:106190001092AE041092AD0481E08093260110921B
+:1061A000AF04FACB8BE092E046CC8FE092E043CC98
+:1061B000BB24B394CD2C8E2DEF2CF82EBFEFFB1209
+:1061C00002C04EEFF42EFE1470F5D394E8E5DE1213
+:1061D000CFCC10912F01809194048823C9F18EEACD
+:1061E00097E00E944A110FE500936906135F109330
+:1061F0006A0683E192E00E942B1F80912F01835E4B
+:106200000093690680936A068BE192E00E942B1F3F
+:1062100082E00E94520920E248E260912F018DE560
+:106220000E94C20F3DC16C2D8E2DBB2011F06E2D32
+:106230008C2D0E94350FE394C6CF40912F01415E13
+:1062400000E02EE06AE482EF95E00E94DF0EC1CF0D
+:1062500082EC90E00E944A1104E600936906195FFF
+:1062600010936A066091B9047091BA048091BB04DE
+:106270009091BC0441E050E00E94E02060912F0129
+:106280006F5F2FE041E089E70E948C0F80912F0122
+:10629000895F9BE79093690680936A0687EF91E098
+:1062A0000E942B1F80912F018D5E009369068093C1
+:1062B0006A0660919004709191048091920490918B
+:1062C000930441E050E00E94E02080912F018D5E18
+:1062D0009AE79093690680936A0683E292E00E94AF
+:1062E0002B1F80912F01805E0093690680936A06C0
+:1062F00060918F0470E090E080E04AE00E94E71E29
+:1063000080912F01805E98E79093690680936A06DA
+:106310008FEE91E00E942B1F53C2823009F004C11E
+:1063200080918E04882309F4BFC080918C049091E1
+:106330008D04059690938D0480938C040AE111E0FE
+:1063400046E251E0F80121913191BF01625071099B
+:106350002B5F3F4FDB012D933C934E175F0799F75F
+:10636000D8012D913D918D012B3F310544F09D01C8
+:106370002250310943ED5FEFD9014D935C93E01753
+:10638000F10771F7C29764F010928E0410928D0499
+:1063900010928C0480918B04863014F010928B0440
+:1063A0008EEA97E00E944A1180911A0190911B0198
+:1063B0009C012E5C3F4F293C310548F480936906CF
+:1063C00085E180936A0685E292E00E942B1F80910E
+:1063D0001C0190911D019C012E5C3F4F293C310511
+:1063E00048F48093690685E180936A0689E292E029
+:1063F0000E942B1F80911E0190911F019C012E5C19
+:106400003F4F293C310548F48093690685E180932C
+:106410006A0680E392E00E942B1F809120019091F8
+:1064200021019C012E5C3F4F293C310548F48093AB
+:10643000690685E180936A0687E392E00E942B1F3C
+:1064400080912201909123019C012E5C3F4F293CB9
+:10645000310548F48093690685E180936A068EE3EE
+:1064600092E00E942B1F80912401909125019C01B4
+:106470002E5C3F4F293C310548F48093690685E145
+:1064800080936A0685E492E00E942B1F82E00E94BE
+:10649000520901E024E148E266E08BE20E947810B4
+:1064A00081E00E9452098CC180918A04882309F4FA
+:1064B00077CF80918C0490918D04059790938D04F3
+:1064C00080938C040AE111E046E251E0F801219149
+:1064D0003191BF016250710925503109DB012D93C3
+:1064E0003C934E175F0799F7D8012D913D918D018F
+:1064F0002A363F4F34F4980122503109D9012D92A8
+:106500003C92E017F10781F78F3C9F4F0CF048CF8A
+:1065100010928A0410928D0410928C0480918B0446
+:106520008B3F0CF43BCF3CCF833009F013C102E02A
+:10653000009369061EE010936A068CE492E00E94C4
+:106540002B1F1093690610936A06609116017091D3
+:106550001701809118019091190141E050E00E94CB
+:10656000E02082E58093690610936A068EE492E04B
+:106570000E942B1F8EE58093690610936A06609136
+:10658000120170911301809114019091150141E065
+:1065900050E00E94E020009369060DE100936A0636
+:1065A00087E292E00E942B1F1093690600936A060F
+:1065B00060910E0170910F01809110019091110175
+:1065C00041E050E00E94E02080918904823009F48B
+:1065D00047C0833009F481C0813009F0F1C0809157
+:1065E000880420E140E3813009F047C282E00E9444
+:1065F000520920E140E361E080E00E94C20F8091F7
+:106600008704882309F44CCF60911601709117011B
+:1066100080911801909119010E94763A11E061155C
+:1066200071058105910579F010E02AE030E040E045
+:1066300050E00E945A39CA01B9011F5F6115710506
+:106640008105910591F7612F660F610F660F6E5EF0
+:1066500000E02AE04FE082EF95E00E94DF0E20CFBD
+:1066600080918804823091F50E94520920E140E334
+:1066700061E080E50E94C20F80918704882309F4BD
+:106680000FCF6091120170911301809114019091CC
+:1066900015010E94763A11E0611571058105910599
+:1066A00079F010E02AE030E040E050E00E945A39F2
+:1066B000CA01B9011F5F611571058105910591F747
+:1066C000612F660F610F660F6E59C2CF20E140E364
+:1066D00061E080E50E94E11073C08091880420E1B0
+:1066E00040E3833009F061C182E00E94520920E159
+:1066F00040E360E180E00E94C20F8091870488231C
+:1067000009F4CECE60910E0170910F0180911001BD
+:10671000909111010E94763A11E061157105810591
+:10672000910579F010E02AE030E040E050E00E946E
+:106730005A39CA01B9011F5F6115710581059105BB
+:1067400091F7612F660F610F660F6E5E00E02AE021
+:106750004EE181CF843009F02AC112E0109369061E
+:106760003EE0F32EF0926A0680E592E00E942B1F35
+:1067700009E600936906F0926A06809137019091CC
+:1067800038010E942D1F109369061DE110936A06BF
+:1067900080E692E00E942B1F0093690610936A0620
+:1067A0006091360170E090E080E04AE00E94E71ED0
+:1067B00080918604813009F4DEC0823009F4E8C09B
+:1067C00082EF95E00E943422811102C01092BD0434
+:1067D0000E941A1E0E94240B0091BE041091BF0457
+:1067E0002091C0043091C104601B710B820B930B8C
+:1067F0000091320110913301209134013091350123
+:10680000061717072807390760F40E94A7160E9489
+:10681000240B6093BE047093BF048093C0049093D4
+:10682000C1048091D904882309F4E9C380917000E0
+:1068300080FD0EC01092D8041092D7041092D60496
+:106840001092D50485E999E00E9455090E94B11380
+:106850000E94240B0091D1041091D2042091D30402
+:106860003091D404601B710B820B930B6D3B724013
+:106870008105910508F475C01091CB048EE00E944B
+:10688000C8091817190651F181E018271093CB0495
+:106890001092D8041092D7049091CA049923F1F071
+:1068A0001092CA042091C8043091C90430933A016F
+:1068B000209339011092C9041092C8041092C704A1
+:1068C0008093C60486E990E09093C5048093C40445
+:1068D0008CE291E09093C3048093C2048091D7042A
+:1068E0009091D80420913701309138018217930795
+:1068F00009F058C32091CA04211154C369E371E01F
+:1069000083E390E00E94892281E08093CA0480930F
+:10691000C60486E990E09093C5048093C4048CE299
+:1069200091E09093C3048093C2048091360190E07B
+:106930002091390130913A013093C9042093C80461
+:106940008217930720F490933A01809339010E94B3
+:10695000240B6093D1047093D2048093D30490935A
+:10696000D40480E090E0892B11F40C94782B0E94E1
+:1069700000000C94752B80918504813009F07BC058
+:1069800082E00E94520920E140E861E080E048CCCA
+:106990008091850420E140E8823039F482E00E9451
+:1069A000520920E140E860E1F1CF60E167C0853045
+:1069B00009F066C080918404833031F582E08093D1
+:1069C00069061EE010936A0682E792E00E942B1F80
+:1069D00086E58093690610936A068091830481118D
+:1069E00010C08FE792E00E942B1F809184048230B8
+:1069F000D1F18330D9F1813009F0E2CE8091810468
+:106A0000BCCF88E892E0EFCF12E0109369062EE049
+:106A1000F22EF0926A0681E992E00E942B1F0AE6AC
+:106A200000936906F0926A0660910D0170E090E0B3
+:106A300080E04AE00E94E71E109369061DE1109372
+:106A40006A068EE992E00E942B1F0093690610935C
+:106A50006A0680918204811103C087E393E0C3CF6B
+:106A60008BEA92E0C0CF8091810494CF8091810421
+:106A7000833009F485CF20E140E861E080E02ACE50
+:106A8000863009F0A4C080918004833009F03FC0B3
+:106A900082E0809369061EE010936A068FEA92E016
+:106AA0000E942B1F84E68093690610936A06C090AB
+:106AB0000901D0900A01E0900B01F0900C0123E352
+:106AC00033E343E550E4C701B6010E94573B41E080
+:106AD00050E087FF73C023E333E343E550E4C7018D
+:106AE000B6010E94F83987FF04C08FEB92E00E9444
+:106AF0002B1F80918004823009F463C0833009F435
+:106B000063C0813009F05CCE80917B0436CF12E007
+:106B1000109369069EE0F92EF0926A0683EC92E0EB
+:106B20000E942B1F04E600936906F0926A066091AA
+:106B3000050170910601809107019091080142E0E2
+:106B400050E00E94E020109369061DE110936A0650
+:106B500083ED92E00E942B1FC0907C04D0907D04B6
+:106B6000E0907E04F0907F0420E030E0A901C701AE
+:106B7000B6010E94573B87FD1AC08CE580936906D9
+:106B800010936A068FE892E00E942B1F009369061B
+:106B900010936A0660917C0470917D0480917E045C
+:106BA00090917F0442E050E00E94E020A2CF8EE569
+:106BB0008093690610936A0642E050E0C701B6016F
+:106BC000F3CF80917B04E6CE80917B0451CF883057
+:106BD00009F057C080917A04833031F582E08093C8
+:106BE00069061EE010936A0683EE92E00E942B1F56
+:106BF00089E68093690610936A0680917904882358
+:106C000081F08AEE92E00E942B1F80917A048230FC
+:106C100091F1833099F1813009F0D2CD80917704E0
+:106C2000ACCE8EEE92E0EFCF12E0109369068EE0CC
+:106C3000F82EF0926A0681EF92E00E942B1F80915D
+:106C4000040109E600936906F0926A06082E000C1A
+:106C5000990B0E94B721109369061DE110936A06F3
+:106C600083E093E00E942B1F0093690610936A064D
+:106C700080917804C4CF809177048CCE8091770482
+:106C8000F7CE873009F09CCD82EC90E00E944A114B
+:106C90008091760410926906863009F07CC007E086
+:106CA00000936A0680E193E00E942B1F19E1109384
+:106CB000690600936A06609166047091670480918A
+:106CC0006804909169044AE050E00E94E02010922C
+:106CD00069060FE000936A0684E193E00E942B1F8F
+:106CE0001093690600936A0660916A0470916B04C0
+:106CF00080916C0490916D044AE050E00E94E02085
+:106D00001092690608E100936A0688E193E00E9408
+:106D10002B1F1093690600936A0660916E047091B0
+:106D20006F0480917004909171044AE050E00E94D9
+:106D3000E0201092690600E200936A068CE193E07D
+:106D40000E942B1F1093690600936A0660917204DB
+:106D50007091730480917404909175044AE050E03E
+:106D60000E94E02080917604833009F49FC00CF0EB
+:106D70007AC0813009F484C0823009F021CD80913D
+:106D80006104823009F08DC00E9452092BE045E178
+:106D900069E084E345CA87E080936A0680E293E075
+:106DA0000E942B1F1092690612E110936A0689E374
+:106DB00093E00E942B1F8EE18093690610936A0670
+:106DC00080912701909128010E942D1F86E38093D6
+:106DD000690610936A068091290190912A010E9408
+:106DE0002D1F80E58093690610936A0680912B0120
+:106DF00090912C010E942D1F8AE6809369061093C2
+:106E00006A0680912D0190912E010E942D1F00E0B5
+:106E100020E846E160E082EF95E00E94DF0E1092EC
+:106E200069061FE110936A068EE393E00E942B1F10
+:106E300080E38093690610936A0660916204709102
+:106E40006304809164049091650450E040E00E94E6
+:106E5000E02086E68093690610936A0687E493E053
+:106E60000E942B1F7FCF843091F1853009F0A8CC90
+:106E700082E00E94520929E04CE167E184E6D0C932
+:106E800080916104813041F482E00E9452092BE03C
+:106E900045E169E08CE1C4C92BE045E169E08CE1A2
+:106EA00019CC2BE045E169E084E314CC80916104C6
+:106EB000833041F482E00E9452092BE045E169E011
+:106EC0008EE4AEC92BE045E169E08EE403CC80910D
+:106ED0006104843041F482E00E9452092BE045E1D4
+:106EE00069E088E69DC92BE045E169E088E6F2CBE0
+:106EF0009091CD0480913101292F092E000C330B84
+:106F0000281B310987FD3395121613060CF03EC07D
+:106F1000981719F08F5F809331019091CC04809184
+:106F20003001292F092E000C330B281B310987FD56
+:106F300033951216130684F5981719F08F5F809316
+:106F400030018EEA97E00E944A11809130019091C1
+:106F500031019093690680936A066091B90470913B
+:106F6000BA048091BB049091BC0441E050E00E94BF
+:106F7000E02080913001815090913101955E909395
+:106F8000690680936A068CE493E0C4C9232B29F236
+:106F9000981719F28150BFCF232B99F2981789F2D5
+:106FA0008150CDCF8930974008F4D1CC80917000CA
+:106FB0008E7F809370008091C8049091C904909353
+:106FC0003A01809339011092C9041092C8041092BA
+:106FD000D9041092D8041092D7041092CA0481E008
+:106FE0008093C60486E990E09093C5048093C4041E
+:106FF00088EE93E09093C3048093C204A8CC809160
+:10700000700080FD0EC01092D8041092D704109228
+:10701000D6041092D5048AE798E10E9455090E948F
+:10702000B1138091D5049091D604843B910508F466
+:1070300098CC2091CF043091D004AC01421B530B6B
+:107040004430510530F181E080933B018093CE04C0
+:107050000E94BA382AE530E040E050E00E9428392A
+:107060006093CD040E94BA3824E130E040E050E063
+:107070000E942839655F7F4F8F4F9F4F6093CC04EC
+:107080008091D5049091D6049093D0048093CF043E
+:1070900068CC8A3F9F4F08F464CC84EB90E09093D7
+:1070A000D6048093D5041092D0041092CF0459CC0A
+:1070B000811130C88EEA97E00E944A1185E08093E2
+:1070C0006906125F10936A068EEF91E03BC8BB24FD
+:1070D000B394CD2C811172C80C94C82D8F929F92BD
+:1070E000AF92BF92CF92DF92EF92FF92CF93DF9356
+:1070F000EC01688179818A819B8161157105810527
+:10710000910521F464E279ED8BE597E02DE133EF11
+:1071100041E050E00E94283949015A019B01AC012D
+:10712000A7EAB1E40E9447396B017C01ACEEB4EFF1
+:10713000A50194010E945539C60ED71EE81EF91EFE
+:10714000F7FE06C081E0C81AD108E10880E8F80A15
+:10715000C882D982EA82FB82C701B6019F77DF919C
+:10716000CF91FF90EF90DF90CF90BF90AF909F9026
+:107170008F9008958F929F92AF92BF92CF92DF929D
+:10718000EF92FF9260913C0170913D0180913E0130
+:1071900090913F01611571058105910521F464E22B
+:1071A00079ED8BE597E02DE133EF41E050E00E946F
+:1071B000283949015A019B01AC01A7EAB1E40E94B8
+:1071C00047396B017C01ACEEB4EFA50194010E943C
+:1071D0005539C60ED71EE81EF91EF7FE06C081E01F
+:1071E000C81AD108E10880E8F80AC0923C01D092A0
+:1071F0003D01E0923E01F0923F01C701B6019F7749
+:10720000FF90EF90DF90CF90BF90AF909F908F90C6
+:10721000089560933C0170933D0180933E019093EB
+:107220003F010895F999FECF92BD81BDF89A992743
+:1072300080B50895262FF999FECF1FBA92BD81BD62
+:1072400020BD0FB6F894FA9AF99A0FBE01960895E8
+:10725000052E97FB1EF400940E943F3957FD07D07E
+:107260000E945A3907FC03D04EF40C943F395095D4
+:107270004095309521953F4F4F4F5F4F0895909522
+:107280008095709561957F4F8F4F9F4F08950E9415
+:107290007C39A59F900DB49F900DA49F800D911DEA
+:1072A00011240895B7FF0C9447390E944739821B77
+:1072B000930B0895A1E21A2EAA1BBB1BFD010DC062
+:1072C000AA1FBB1FEE1FFF1FA217B307E407F50796
+:1072D00020F0A21BB30BE40BF50B661F771F881F72
+:1072E000991F1A9469F760957095809590959B0108
+:1072F000AC01BD01CF010895A29FB001B39FC001B1
+:10730000A39F700D811D1124911DB29F700D811DD1
+:107310001124911D08955058BB27AA270E94A33914
+:107320000C941D3B0E940F3B38F00E94163B20F04E
+:1073300039F49F3F19F426F40C940C3B0EF4E095BD
+:10734000E7FB0C94063BE92F0E942E3B58F3BA173B
+:10735000620773078407950720F079F4A6F50C946B
+:10736000503B0EF4E0950B2EBA2FA02D0B01B90166
+:1073700090010C01CA01A0011124FF27591B99F0AB
+:10738000593F50F4503E68F11A16F040A22F232FB7
+:10739000342F4427585FF3CF469537952795A79507
+:1073A000F0405395C9F77EF41F16BA0B620B730BAE
+:1073B000840BBAF09150A1F0FF0FBB1F661F771F1F
+:1073C000881FC2F70EC0BA0F621F731F841F48F4D4
+:1073D000879577956795B795F7959E3F08F0B0CF5D
+:1073E0009395880F08F09927EE0F97958795089544
+:1073F0000E94E23A08F481E008950E94113A0C9448
+:107400001D3B0E94163B58F00E940F3B40F029F4B0
+:107410005F3F29F00C94063B51110C94513B0C94A6
+:107420000C3B0E942E3B68F39923B1F3552391F353
+:10743000951B550BBB27AA2762177307840738F0E3
+:107440009F5F5F4F220F331F441FAA1FA9F335D040
+:107450000E2E3AF0E0E832D091505040E695001CF4
+:10746000CAF72BD0FE2F29D0660F771F881FBB1FAE
+:10747000261737074807AB07B0E809F0BB0B802D8C
+:10748000BF01FF2793585F4F3AF09E3F510578F0B8
+:107490000C94063B0C94513B5F3FE4F3983ED4F3CD
+:1074A000869577956795B795F7959F5FC9F7880F8C
+:1074B000911D9695879597F90895E1E0660F771FDE
+:1074C000881FBB1F621773078407BA0720F0621B6F
+:1074D000730B840BBA0BEE1F88F7E09508950E949A
+:1074E000763A6894B1110C94513B08950E94363B52
+:1074F00088F09F5798F0B92F9927B751B0F0E1F075
+:10750000660F771F881F991F1AF0BA95C9F714C024
+:10751000B13091F00E94503BB1E008950C94503B83
+:10752000672F782F8827B85F39F0B93FCCF386955D
+:1075300077956795B395D9F73EF4909580957095BA
+:1075400061957F4F8F4F9F4F0895E89409C097FB37
+:107550003EF490958095709561957F4F8F4F9F4F2A
+:107560009923A9F0F92F96E9BB279395F69587956E
+:1075700077956795B795F111F8CFFAF4BB0F11F431
+:1075800060FF1BC06F5F7F4F8F4F9F4F16C08823D8
+:1075900011F096E911C0772321F09EE8872F762F0E
+:1075A00005C0662371F096E8862F70E060E02AF04F
+:1075B0009A95660F771F881FDAF7880F969587953B
+:1075C00097F90895990F0008550FAA0BE0E8FEEF10
+:1075D00016161706E807F907C0F012161306E40797
+:1075E000F50798F0621B730B840B950B39F40A2690
+:1075F00061F0232B242B252B21F408950A2609F46E
+:10760000A140A6958FEF811D811D089597F99F6771
+:1076100080E870E060E008959FEF80EC089500241A
+:107620000A941616170618060906089500240A94E7
+:1076300012161306140605060895092E0394000C6D
+:1076400011F4882352F0BB0F40F4BF2B11F460FFFC
+:1076500004C06F5F7F4F8F4F9F4F089557FD905825
+:10766000440F551F59F05F3F71F04795880F97FB06
+:10767000991F61F09F3F79F08795089512161306C0
+:107680001406551FF2CF4695F1DF08C016161706EF
+:107690001806991FF1CF8695710561050894089524
+:1076A000E894BB2766277727CB0197F908950E94B6
+:1076B000E23A08F48FEF08950E946F3B0C941D3B53
+:1076C0000E940F3B38F00E94163B20F0952311F0EA
+:1076D0000C94063B0C940C3B11240C94513B0E94DF
+:1076E0002E3B70F3959FC1F3950F50E0551F629F9D
+:1076F000F001729FBB27F00DB11D639FAA27F00D0B
+:10770000B11DAA1F649F6627B00DA11D661F829F31
+:107710002227B00DA11D621F739FB00DA11D621F16
+:10772000839FA00D611D221F749F3327A00D611D33
+:10773000231F849F600D211D822F762F6A2F112415
+:107740009F5750409AF0F1F088234AF0EE0FFF1F48
+:10775000BB1F661F771F881F91505040A9F79E3F9F
+:10776000510580F00C94063B0C94513B5F3FE4F3D1
+:10777000983ED4F3869577956795B795F795E795F5
+:107780009F5FC1F7FE2B880F911D9695879597F9FE
+:1077900008950E94E23A880B990B0895AA1BBB1B1F
+:1077A00051E107C0AA1FBB1FA617B70710F0A61B01
+:1077B000B70B881F991F5A95A9F780959095BC0122
+:1077C000CD010895EE0FFF1F0590F491E02D09946F
+:1077D0000E947C39332312F48A1B9B0B0C94F23BDE
+:1077E0000E947C39B7FF0895821B930B08950F9375
+:1077F0001F93CF93DF93869F8001879F100D969FE5
+:10780000100D1124C8010E94133CEC01009729F0CF
+:10781000A80170E060E00E94383DCE01DF91CF9179
+:107820001F910F9108950F931F93CF93DF93823091
+:10783000910510F482E090E0E0916D06F0916E0603
+:1078400030E020E0B0E0A0E0309799F42115310558
+:1078500009F44AC0281B390B24303105D8F58A8138
+:107860009B816115710589F1FB0193838283FE0180
+:1078700011C0408151810281138148175907E0F0FE
+:107880004817590799F4109761F012960C931297C4
+:1078900013961C933296CF01DF91CF911F910F91D8
+:1078A000089500936D0610936E06F4CF21153105EF
+:1078B00051F04217530738F0A901DB019A01BD01CD
+:1078C000DF01F801C1CFEF01F9CF90936E068093ED
+:1078D0006D06CDCFFE01E20FF31F819391932250ED
+:1078E000310939832883D7CF20916B0630916C06FC
+:1078F000232B41F4209142013091430130936C06D7
+:1079000020936B06209140013091410121153105F2
+:1079100041F42DB73EB74091440150914501241BDD
+:10792000350BE0916B06F0916C06E217F307A0F4BB
+:107930002E1B3F0B2817390778F0AC014E5F5F4FC5
+:107940002417350748F04E0F5F1F50936C06409385
+:107950006B06819391939FCFF0E0E0E09CCFCF93B3
+:10796000DF930097E9F0FC01329713821282A09115
+:107970006D06B0916E06ED0130E020E01097A1F4A5
+:1079800020813181820F931F20916B0630916C060C
+:107990002817390709F061C0F0936C06E0936B0675
+:1079A000DF91CF910895EA01CE17DF07E8F54A810C
+:1079B0005B819E0141155105B1F7E901FB83EA8323
+:1079C00049915991C40FD51FEC17FD0761F48081CF
+:1079D00091810296840F951FE901998388838281A2
+:1079E00093819B838A83F0E0E0E012968D919C91D5
+:1079F00013970097B9F52D913C911197CD010296FF
+:107A0000820F931F20916B0630916C06281739075F
+:107A100039F6309751F510926E0610926D06B093BC
+:107A20006C06A0936B06BCCFD383C2834081518187
+:107A3000840F951FC817D90761F44E5F5F4F888187
+:107A40009981480F591F518340838A819B81938379
+:107A500082832115310509F0B0CFF0936E06E093D3
+:107A60006D069ECFFD01DC01C0CF13821282D7CFFD
+:107A7000DC0101C06D9341505040E0F70895F89447
+:107A8000FFCF300B300B1E295C9F40333353403205
+:107A90006666264033330B410000C84100003200C7
+:107AA00064009600C800FA0001310006018701E673
+:107AB00001201532C2010000C8B4004001010100DC
+:107AC000000000006F0680000A005E018A02AC031D
+:107AD0001815A015C019FF1815A115C819FF1815FC
+:107AE000AE19FF1815AF19FF1815AE15D51680156C
+:107AF000A8161F15D316001540158D16141520163F
+:107B00000015A115C815DA16021581168F15D9169C
+:107B1000F115DB1640152E15A415A619FF0001144A
+:107B20000A6464323200127A0000042896100400BD
+:107B30000080002000DD0E640E370E00000000F013
+:107B40000BC30BD71E990BBC0BA90B9A0B000000A3
+:107B500000331FAE1ED71ED61EDB0E820E580E6ED1
+:107B6000616E00696E66006F76660076312E303386
+:107B70000025005431322041444300484947480021
+:107B8000E6898BE69F84E69CAAE68EA500E4BC917C
+:107B900000E5819C00E794B520E58E8B00E8BF8767
+:107BA00020E4BD8E00560050494400E4BC91E79C9F
+:107BB000A000E5B18FE5B99500E794B5E6BA90006D
+:107BC000E6A0A1E5878600E78399E993810050004C
+:107BD0004900E4BC91E79CA0E697B6E997B4285326
+:107BE0002900E4BC91E79CA0E6B8A9E5BAA628E282
+:107BF00084832900E6978BE8BDACE696B9E59091C1
+:107C000000E9A1BA2BE980862D00E9A1BA2DE9800F
+:107C1000862B00E5B18FE5B995E4BAAEE5BAA600CA
+:107C2000E5B18FE5B995E696B9E590910031383028
+:107C300000E4BD8EE58E8BE68AA5E8ADA628562920
+:107C400000E585B300E59FBAE58786E794B5E58E44
+:107C50008B28562900E794B5E6BA90E794B5E58EEF
+:107C60008B28562900E9878DE7BDAE0059455300A2
+:107C70004E4F00E586B7E7ABAFE8A1A5E581BF2889
+:107C8000E284832900E5BC80E69CBAE58AA0E7830C
+:107C9000AD0050303A0050313A0050323A00503383
+:107CA0003A00414443202020313020202033353019
+:107CB000202036353020203934300054656D700076
+:107CC0004E6F77204144433A005361766500E28469
+:027CD00083002F
+:107E0000112484B714BE81FFF0D085E080938100F7
+:107E100082E08093C00088E18093C10086E0809377
+:107E2000C20080E18093C4008EE0C9D0259A86E02C
+:107E300020E33CEF91E0309385002093840096BBD3
+:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
+:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
+:107E6000A2D0813461F49FD0082FAFD0023811F036
+:107E7000013811F484E001C083E08DD089C08234E0
+:107E800011F484E103C0853419F485E0A6D080C0E4
+:107E9000853579F488D0E82EFF2485D0082F10E0AE
+:107EA000102F00270E291F29000F111F8ED06801E7
+:107EB0006FC0863521F484E090D080E0DECF843638
+:107EC00009F040C070D06FD0082F6DD080E0C81688
+:107ED00080E7D80618F4F601B7BEE895C0E0D1E017
+:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
+:107EF00018F0F601B7BEE89568D007B600FCFDCFD4
+:107F0000A601A0E0B1E02C9130E011968C91119780
+:107F100090E0982F8827822B932B1296FA010C0160
+:107F200087BEE89511244E5F5F4FF1E0A038BF0790
+:107F300051F7F601A7BEE89507B600FCFDCF97BE46
+:107F4000E89526C08437B1F42ED02DD0F82E2BD052
+:107F50003CD0F601EF2C8F010F5F1F4F84911BD097
+:107F6000EA94F801C1F70894C11CD11CFA94CF0C13
+:107F7000D11C0EC0853739F428D08EE10CD085E9AC
+:107F80000AD08FE07ACF813511F488E018D01DD067
+:107F900080E101D065CF982F8091C00085FFFCCF94
+:107FA0009093C60008958091C00087FFFCCF809118
+:107FB000C00084FD01C0A8958091C6000895E0E648
+:107FC000F0E098E1908380830895EDDF803219F02E
+:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
+:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
+:047FF000FF270994CA
+:027FFE00040479
+:00000001FF
diff --git "a/\347\224\250\345\210\260\347\232\204\345\272\223/MsTimer2.zip" "b/\347\224\250\345\210\260\347\232\204\345\272\223/MsTimer2.zip"
new file mode 100644
index 0000000..2694644
Binary files /dev/null and "b/\347\224\250\345\210\260\347\232\204\345\272\223/MsTimer2.zip" differ
diff --git "a/\347\224\250\345\210\260\347\232\204\345\272\223/U8g2-2020-11-15.7z" "b/\347\224\250\345\210\260\347\232\204\345\272\223/U8g2-2020-11-15.7z"
new file mode 100644
index 0000000..5b96a5e
Binary files /dev/null and "b/\347\224\250\345\210\260\347\232\204\345\272\223/U8g2-2020-11-15.7z" differ