From 2a5d91c6c53f109832fbe0b0f2c0b6067c507a69 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 17 Dec 2023 21:40:03 +0000 Subject: [PATCH] Add INL Sweep advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.csv --- .../fluke-5440B-4670008/README.md | 3 + .../fluke-5440B-4670008/data/INLV-AdvFlu.py | 179 ++++++++++++++++++ ...81T0050---fluke-5440B-4670008---SWEEP1.csv | 142 ++++++++++++++ ...81T0050---fluke-5440B-4670008---SWEEP1.jpg | Bin 0 -> 25352 bytes 4 files changed, 324 insertions(+) create mode 100644 advantest-R6581T-781T0050/fluke-5440B-4670008/README.md create mode 100644 advantest-R6581T-781T0050/fluke-5440B-4670008/data/INLV-AdvFlu.py create mode 100644 advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.csv create mode 100644 advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.jpg diff --git a/advantest-R6581T-781T0050/fluke-5440B-4670008/README.md b/advantest-R6581T-781T0050/fluke-5440B-4670008/README.md new file mode 100644 index 0000000..75d820d --- /dev/null +++ b/advantest-R6581T-781T0050/fluke-5440B-4670008/README.md @@ -0,0 +1,3 @@ +| Meter Manufacturer | Meter Model | Meter SerialNumber | Source Manufacturer | Source Model | Source SerialNumber | MinMax | File | ID | User | +|--------------------|-------------|--------------------|---------------------|--------------|---------------------|--------|------|----|------| +|advantest|R6581T|781T0050|fluke|5440B|4670008|0.0|/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.jpg|SWEEP1|xans| diff --git a/advantest-R6581T-781T0050/fluke-5440B-4670008/data/INLV-AdvFlu.py b/advantest-R6581T-781T0050/fluke-5440B-4670008/data/INLV-AdvFlu.py new file mode 100644 index 0000000..0eb5886 --- /dev/null +++ b/advantest-R6581T-781T0050/fluke-5440B-4670008/data/INLV-AdvFlu.py @@ -0,0 +1,179 @@ +import GPIBPrologix +import bme280 +import smbus2 +from requests import post + +## Initialize GPIB adapter +GPIB = GPIBPrologix.ResourceManager("/dev/ttyACM0") +# Connect equipment +inst2 = GPIB.open_resource(5) +inst3 = GPIB.open_resource(16) +# Initialize BME280 temperature/humidity sensor +bus = smbus2.SMBus(1) +## Configure equipment +# BME280 temperature/humidity sensor +calibration_params = bme280.load_calibration_params(bus, 0x76) + +# Fluke 5440b Calibrator +inst2.write("STBY") #Standby +inst2.write("ESNS") #ExtSense +inst2.write("EGRD") #ExternalGuard +inst2.write("SOUT 0.0069")#OutputVolts +inst2.write("SCLM 10") #CurrentLimit mA +inst2.write("OPER") #Standby + +# Advantest R6581T +inst3.query("*RST") +inst3.query(":CONF:VOLT:DC") +inst3.query(":SENS:VOLT:DC:RANG 10") +inst3.query(":SENS:VOLT:DC:NPLC 100") +inst3.query(":SENS:VOLT:DC:DIG MAX") +inst3.query(":ZERO:AUTO ON") + +# Measurement functions +def readValue(instObj): + value = instObj.query("FETch?") + return value +def setValue(instObj, inputVar): + instObj.query("SOUT "+str(inputVar)) + return inputVar +def getEnvironment(instObj, i2cbus): + value = instObj.sample(i2cbus, 0x76, calibration_params) + return value + +## Have gitpython pull in the repository +import os +import git +import shutil +username = input("Your 0xC6 git username: ") +password = input("Your 0xC6 git password: ") +remote = f"https://{username}:{password}@git.0xc6.com/xans/INL-Measurements.git" +if not os.path.exists(os.getcwd()+"/INL-Measurements"): + git.Repo.clone_from(remote, os.getcwd()+"/INL-Measurements/") +else: + shutil.rmtree(os.getcwd()+"/INL-Measurements/", ignore_errors=True) + git.Repo.clone_from(remote, os.getcwd()+"/INL-Measurements/") + +## Get needed info to properly label everything +MeterManufacturer = input("Meter Manufacturer: ").lower() +MeterModel = input("Meter Model: ").upper() +MeterSN = input("Meter SN: ").upper() +SourceManufacturer = input("Source Manufacturer: ").lower() +SourceModel = input("Source Model: ").upper() +SourceSN = input("Source SN: ").upper() +measid = input("Personally assigned measurement ID: ").upper() +shellyIp = input("If you use shelly for protection, enter the IP: ").upper() + +if shellyIp and os.system("ping -c 1 " + shellyIp): + print("shelly not found") + quit() +if shellyIp: + url = "{}://{}:{}/relay/0?turn=on".format("http", "192.168.0.101", "80") + post(url) + +## Create proper directory structure +basePath = os.getcwd() + "/INL-Measurements/" +dutname = MeterManufacturer+'-'+MeterModel+'-'+MeterSN +if not os.path.exists(basePath+dutname): + os.makedirs(basePath+dutname) +sourcename = SourceManufacturer+'-'+SourceModel+'-'+SourceSN +if not os.path.exists(basePath+dutname+'/'+sourcename): + os.makedirs(basePath+dutname+'/'+sourcename) +if not os.path.exists(basePath+dutname+'/'+sourcename+"/data/"): + os.makedirs(basePath+dutname+'/'+sourcename+"/data/") +basePath = basePath+dutname+'/'+sourcename +print(basePath+"/data/") + +import csv +import time +import datetime +import numpy as np +import pandas as pd +from math import sin +## Create logfile +logFileName = MeterManufacturer+'-'+MeterModel+'-'+MeterSN+'---'+SourceManufacturer+'-'+SourceModel+'-'+SourceSN+'---'+measid+'.csv' +with open(basePath+"/data/"+logFileName, 'a') as f: + writer = csv.writer(f) + writer.writerow(["DateTime","Set Volts","Measured Volts","Env Pressure","Env Temperature", "Env Humidity"]) +print(basePath+"/data/"+logFileName) + +sweep = np.arange(-11.5,12,0.5) + +cntr = 0 +d = datetime.datetime.now() +dlast = datetime.datetime.now() +## Collect data +time.sleep(3) +for x in sweep: + cntr = cntr + 1 + try: + #Set volt and let accimatize + setPoint = setValue(inst2,round(x,5)) + timebetween = (d-dlast) * (len(sweep)-cntr) + dlast = d + print(str(cntr)+'/'+str(len(sweep))+' Estimated Time Left: '+str(timebetween)) + time.sleep(60) + for i in range(3): + try: + time.sleep(5) + #Get DUT value + readout = readValue(inst3) + #Get envirnmental values + data = getEnvironment(bme280, bus) + #Write to file + d = datetime.datetime.now() + dx = d - datetime.timedelta(microseconds=d.microsecond) + fields=[dx.strftime("%d-%m-%y %H:%M:%S"),setPoint,float(readout),round(data.humidity,2),round(data.temperature,2),round(data.pressure,2)] + print(fields) + with open(basePath+"/data/"+logFileName, 'a') as f: + writer = csv.writer(f) + writer.writerow(fields) + if shellyIp and float(data.temperature) > 30 or float(data.temperature) < 16: + url = "{}://{}:{}/relay/0?turn=off".format("http", "192.168.0.101", "80") + post(url) + except Exception as e: + time.sleep(15) + i = i-1 + except Exception as e: + print(e) + time.sleep(1) + +inst2.write("STBY") #Standby + +## Calculate high order polynomial +df = pd.read_csv(basePath+"/data/"+logFileName) +df = df.groupby(["Set Volts"], as_index=False).mean(numeric_only=True) +highOrderPolyFit = np.polyfit(df["Set Volts"], df["Set Volts"]-df["Measured Volts"], 12) +trendPoly = np.poly1d(highOrderPolyFit) +## Make plot and save +import sys +from matplotlib import pyplot as plt +plt.plot(df["Set Volts"], df["Set Volts"]-df["Measured Volts"]) +polyIndex = np.arange(-11,11,0.01) +plt.plot(polyIndex, trendPoly(polyIndex)) +plt.xlabel('Source Voltage') +plt.ylabel('Delta Set/Meas') +plt.title ('INLV sweep '+ logFileName[:-4]) +plt.savefig(basePath+"/data/"+logFileName[:-4]+".jpg", bbox_inches='tight') + +minVal = trendPoly(polyIndex) +maxVal = trendPoly(polyIndex) +minVal = min(minVal) +maxVal = min(maxVal) +## Write away values to result overview +if not os.path.exists(basePath+'/README.md'): + with open(basePath+'/README.md', 'a') as f: + f.write("| Meter Manufacturer | Meter Model | Meter SerialNumber | Source Manufacturer | Source Model | Source SerialNumber | MinMax | File | ID | User |\n") + f.write("|--------------------|-------------|--------------------|---------------------|--------------|---------------------|--------|------|----|------|\n") + f.close() +with open(basePath+'/README.md', 'a') as f: + linkToImg = "/data/"+logFileName[:-4]+".jpg" + print("|"+MeterManufacturer+"|"+MeterModel+"|"+MeterSN+"|"+SourceManufacturer+"|"+SourceModel+"|"+SourceSN+"|"+str(round((maxVal-minVal),10))+"|"+linkToImg+"|"+measid+"|"+username+"|\n") + f.write("|"+MeterManufacturer+"|"+MeterModel+"|"+MeterSN+"|"+SourceManufacturer+"|"+SourceModel+"|"+SourceSN+"|"+str(round((maxVal-minVal),10))+"|"+linkToImg+"|"+measid+"|"+username+"|\n") + f.close() + shutil.copy(os.getcwd()+'/'+sys.argv[0],basePath+"/data/") + repo = git.Repo(os.getcwd() + "/INL-Measurements/") + repo.git.add(basePath) + repo.index.commit("Add INL Sweep "+ logFileName) + repo.remotes[0].push() + diff --git a/advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.csv b/advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.csv new file mode 100644 index 0000000..a50d108 --- /dev/null +++ b/advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.csv @@ -0,0 +1,142 @@ +DateTime,Set Volts,Measured Volts,Env Pressure,Env Temperature,Env Humidity +17-12-23 20:41:28,-11.5,-11.4999147,55.32,21.57,1031.8 +17-12-23 20:41:33,-11.5,-11.4999149,55.36,21.65,1032.0 +17-12-23 20:41:38,-11.5,-11.4999153,55.4,21.64,1031.9 +17-12-23 20:42:44,-11.0,-10.9999167,55.35,21.7,1031.94 +17-12-23 20:42:49,-11.0,-10.9999167,55.38,21.69,1031.93 +17-12-23 20:42:54,-11.0,-10.9999166,55.36,21.7,1031.97 +17-12-23 20:44:00,-10.5,-10.4999216,55.71,21.79,1032.03 +17-12-23 20:44:05,-10.5,-10.4999221,55.48,21.8,1032.04 +17-12-23 20:44:10,-10.5,-10.4999215,55.52,21.82,1031.99 +17-12-23 20:45:16,-10.0,-9.9999266,54.88,21.87,1032.08 +17-12-23 20:45:21,-10.0,-9.9999267,54.86,21.87,1032.03 +17-12-23 20:45:27,-10.0,-9.9999264,54.84,21.87,1032.03 +17-12-23 20:46:33,-9.5,-9.4999309,54.98,21.86,1032.07 +17-12-23 20:46:38,-9.5,-9.499931,54.96,21.85,1032.05 +17-12-23 20:46:43,-9.5,-9.4999311,54.98,21.86,1032.07 +17-12-23 20:47:49,-9.0,-8.9999348,55.0,21.76,1032.03 +17-12-23 20:47:54,-9.0,-8.9999345,54.98,21.76,1032.06 +17-12-23 20:47:59,-9.0,-8.9999352,54.97,21.75,1032.06 +17-12-23 20:49:05,-8.5,-8.4999389,55.26,21.74,1032.07 +17-12-23 20:49:10,-8.5,-8.4999389,55.27,21.75,1032.08 +17-12-23 20:49:15,-8.5,-8.4999392,55.22,21.75,1032.0 +17-12-23 20:50:21,-8.0,-7.9999435,55.32,21.74,1031.99 +17-12-23 20:50:26,-8.0,-7.9999429,55.32,21.75,1032.01 +17-12-23 20:50:31,-8.0,-7.9999433,55.32,21.76,1032.07 +17-12-23 20:51:37,-7.5,-7.4999478,55.12,21.85,1032.0 +17-12-23 20:51:42,-7.5,-7.499947,55.12,21.86,1032.04 +17-12-23 20:51:47,-7.5,-7.4999476,55.13,21.88,1032.04 +17-12-23 20:52:53,-7.0,-6.9999518,55.07,21.95,1032.11 +17-12-23 20:52:58,-7.0,-6.9999518,55.0,21.95,1032.05 +17-12-23 20:53:03,-7.0,-6.9999515,55.0,21.96,1032.07 +17-12-23 20:54:09,-6.5,-6.4999562,54.63,21.93,1032.11 +17-12-23 20:54:15,-6.5,-6.4999557,54.64,21.93,1032.05 +17-12-23 20:54:20,-6.5,-6.4999559,54.64,21.94,1032.12 +17-12-23 20:55:26,-6.0,-5.9999605,55.03,21.95,1032.07 +17-12-23 20:55:31,-6.0,-5.9999603,55.03,21.96,1032.09 +17-12-23 20:55:36,-6.0,-5.9999598,55.04,21.96,1032.07 +17-12-23 20:56:42,-5.5,-5.4999644,54.68,22.02,1032.12 +17-12-23 20:56:47,-5.5,-5.4999645,54.68,22.03,1032.09 +17-12-23 20:56:52,-5.5,-5.4999645,54.77,22.03,1032.14 +17-12-23 20:57:58,-5.0,-4.9999686,54.66,22.1,1032.07 +17-12-23 20:58:03,-5.0,-4.9999688,54.58,22.11,1032.14 +17-12-23 20:58:08,-5.0,-4.9999684,54.58,22.12,1032.1 +17-12-23 20:59:14,-4.5,-4.4999725,54.52,22.12,1032.09 +17-12-23 20:59:19,-4.5,-4.499973,54.5,22.12,1032.16 +17-12-23 20:59:24,-4.5,-4.4999729,54.35,22.11,1032.11 +17-12-23 21:00:30,-4.0,-3.9999772,54.4,22.1,1032.13 +17-12-23 21:00:35,-4.0,-3.9999778,54.42,22.11,1032.09 +17-12-23 21:00:40,-4.0,-3.9999774,54.45,22.1,1032.1 +17-12-23 21:01:46,-3.5,-3.4999822,54.55,22.07,1032.08 +17-12-23 21:01:51,-3.5,-3.499982,54.59,22.07,1032.12 +17-12-23 21:01:56,-3.5,-3.4999819,54.58,22.06,1032.12 +17-12-23 21:03:02,-3.0,-2.9999858,54.46,22.06,1032.13 +17-12-23 21:03:07,-3.0,-2.9999855,54.46,22.06,1032.16 +17-12-23 21:03:12,-3.0,-2.9999853,54.42,22.04,1032.1 +17-12-23 21:04:18,-2.5,-2.4999901,54.59,22.0,1032.12 +17-12-23 21:04:23,-2.5,-2.4999901,54.54,21.98,1032.06 +17-12-23 21:04:29,-2.5,-2.4999901,54.46,21.99,1032.07 +17-12-23 21:05:35,-2.0,-1.9999945,54.67,21.93,1032.08 +17-12-23 21:05:40,-2.0,-1.9999944,54.75,21.94,1032.12 +17-12-23 21:05:45,-2.0,-1.9999943,54.88,21.96,1032.07 +17-12-23 21:06:51,-1.5,-1.4999982,54.56,22.01,1032.13 +17-12-23 21:06:56,-1.5,-1.4999982,54.56,22.0,1032.16 +17-12-23 21:07:01,-1.5,-1.4999983,54.64,22.0,1032.17 +17-12-23 21:08:07,-1.0,-1.0000019,54.66,21.98,1032.08 +17-12-23 21:08:12,-1.0,-1.0000019,54.69,21.97,1032.09 +17-12-23 21:08:17,-1.0,-1.0000019,54.73,21.98,1032.13 +17-12-23 21:09:23,-0.5,-0.500005,54.66,21.96,1031.99 +17-12-23 21:09:28,-0.5,-0.500005,54.68,21.96,1032.07 +17-12-23 21:09:33,-0.5,-0.5000048,54.74,21.95,1032.0 +17-12-23 21:10:39,0.0,-9.3e-06,54.88,22.01,1031.99 +17-12-23 21:10:44,0.0,-9.5e-06,54.82,22.01,1031.97 +17-12-23 21:10:49,0.0,-9.6e-06,54.8,22.02,1032.01 +17-12-23 21:11:55,0.5,0.4999883,54.6,22.08,1032.03 +17-12-23 21:12:00,0.5,0.499988,54.57,22.07,1031.99 +17-12-23 21:12:05,0.5,0.499988,54.57,22.08,1032.03 +17-12-23 21:13:11,1.0,0.9999843,54.65,22.05,1032.06 +17-12-23 21:13:16,1.0,0.999984,54.64,22.07,1032.05 +17-12-23 21:13:21,1.0,0.9999839,54.68,22.06,1031.97 +17-12-23 21:14:27,1.5,1.4999803,54.7,22.17,1032.0 +17-12-23 21:14:32,1.5,1.4999802,54.79,22.17,1032.03 +17-12-23 21:14:37,1.5,1.4999802,54.76,22.17,1031.96 +17-12-23 21:15:43,2.0,1.999977,54.51,22.17,1032.01 +17-12-23 21:15:49,2.0,1.999977,54.56,22.16,1031.97 +17-12-23 21:15:54,2.0,1.999977,54.54,22.16,1032.04 +17-12-23 21:17:00,2.5,2.4999728,54.53,22.16,1031.93 +17-12-23 21:17:05,2.5,2.4999732,54.45,22.15,1032.03 +17-12-23 21:17:10,2.5,2.4999733,54.43,22.15,1032.0 +17-12-23 21:18:16,3.0,2.9999692,54.5,22.17,1032.03 +17-12-23 21:18:21,3.0,2.9999689,54.46,22.17,1031.98 +17-12-23 21:18:26,3.0,2.9999687,54.4,22.17,1031.98 +17-12-23 21:19:32,3.5,3.4999651,54.38,22.21,1032.03 +17-12-23 21:19:37,3.5,3.4999649,54.39,22.22,1032.04 +17-12-23 21:19:42,3.5,3.499965,54.38,22.22,1032.01 +17-12-23 21:20:48,4.0,3.9999607,54.45,22.21,1032.05 +17-12-23 21:20:53,4.0,3.9999602,54.47,22.21,1032.13 +17-12-23 21:20:58,4.0,3.9999603,54.47,22.21,1032.11 +17-12-23 21:22:04,4.5,4.4999571,54.37,22.2,1032.12 +17-12-23 21:22:09,4.5,4.4999569,54.35,22.2,1032.11 +17-12-23 21:22:14,4.5,4.4999572,54.38,22.2,1032.14 +17-12-23 21:23:20,5.0,4.9999532,54.63,22.21,1032.13 +17-12-23 21:23:25,5.0,4.9999533,54.64,22.2,1032.12 +17-12-23 21:23:30,5.0,4.9999532,54.6,22.21,1032.15 +17-12-23 21:24:36,5.5,5.4999494,54.46,22.19,1032.09 +17-12-23 21:24:42,5.5,5.4999496,54.51,22.2,1032.14 +17-12-23 21:24:47,5.5,5.4999494,54.5,22.2,1032.12 +17-12-23 21:25:53,6.0,5.9999453,54.33,22.2,1032.08 +17-12-23 21:25:58,6.0,5.9999454,54.4,22.2,1032.16 +17-12-23 21:26:03,6.0,5.9999455,54.4,22.2,1032.16 +17-12-23 21:27:09,6.5,6.4999399,54.54,22.14,1032.07 +17-12-23 21:27:14,6.5,6.4999397,54.53,22.14,1032.06 +17-12-23 21:27:19,6.5,6.4999401,54.6,22.14,1032.11 +17-12-23 21:28:25,7.0,6.9999361,54.65,22.16,1032.12 +17-12-23 21:28:30,7.0,6.9999361,54.58,22.16,1032.09 +17-12-23 21:28:35,7.0,6.9999358,54.53,22.16,1032.1 +17-12-23 21:29:41,7.5,7.4999313,54.56,22.22,1032.15 +17-12-23 21:29:46,7.5,7.4999311,54.53,22.24,1032.18 +17-12-23 21:29:51,7.5,7.4999313,54.55,22.24,1032.13 +17-12-23 21:30:57,8.0,7.9999265,54.38,22.29,1032.16 +17-12-23 21:31:02,8.0,7.9999269,54.31,22.28,1032.18 +17-12-23 21:31:07,8.0,7.9999268,54.25,22.28,1032.18 +17-12-23 21:32:13,8.5,8.499922,54.35,22.24,1032.16 +17-12-23 21:32:18,8.5,8.4999224,54.37,22.23,1032.22 +17-12-23 21:32:23,8.5,8.4999223,54.59,22.24,1032.18 +17-12-23 21:33:29,9.0,8.9999175,54.61,22.18,1032.21 +17-12-23 21:33:34,9.0,8.9999175,54.64,22.16,1032.15 +17-12-23 21:33:39,9.0,8.9999177,54.56,22.15,1032.14 +17-12-23 21:34:46,9.5,9.4999126,54.76,22.13,1032.15 +17-12-23 21:34:51,9.5,9.499913,54.71,22.13,1032.09 +17-12-23 21:34:56,9.5,9.4999131,54.7,22.13,1032.13 +17-12-23 21:36:02,10.0,9.9999079,54.63,22.18,1032.13 +17-12-23 21:36:07,10.0,9.9999077,54.65,22.18,1032.13 +17-12-23 21:36:12,10.0,9.9999077,54.64,22.18,1032.14 +17-12-23 21:37:18,10.5,10.4999043,54.49,22.21,1032.07 +17-12-23 21:37:23,10.5,10.4999042,54.58,22.21,1032.07 +17-12-23 21:37:28,10.5,10.4999043,54.69,22.21,1032.11 +17-12-23 21:38:34,11.0,10.9999008,54.5,22.21,1032.07 +17-12-23 21:38:39,11.0,10.999901,54.39,22.21,1032.07 +17-12-23 21:38:44,11.0,10.9999013,54.36,22.19,1032.09 +17-12-23 21:39:50,11.5,11.4999027,54.65,22.11,1032.01 +17-12-23 21:39:55,11.5,11.4999029,54.65,22.11,1032.06 +17-12-23 21:40:00,11.5,11.4999032,54.64,22.11,1032.03 diff --git a/advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.jpg b/advantest-R6581T-781T0050/fluke-5440B-4670008/data/advantest-R6581T-781T0050---fluke-5440B-4670008---SWEEP1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..603ee334fd45153685f199880937cd7fa5863574 GIT binary patch literal 25352 zcmeFZ1yr0_wmF#+m(=+qldTae*omIu=JG;(4vVYr7-A~>B03N@Vkd^@8;NSp5*e`HD3%mqS zkdTm(9-ts2BR_nI@(2wV9Ss!~jSw3L6PJ{ToQ#x+goJ{Ig`R?niJF9jf#)gHb2d&+ zPI7uaAzpSt77kAKUzor>eE1Lz6^#HLoq(N^gp&QA{<&`kuu$N-;ENF8r~r5@I0P)X z`*wgF0N@_LM*GWv|N93H9s%(I5;DreN2ss|Djx&za0m$ShzJiJAR@w^c7y#NK*V~0 zP01#PgrlgBOl5=1?irqnLj9t&1y5=CkcQ)(t=GdxPw)u{iD>EQ8J<4lP<( zN?bxxO8T|3imIBrhNhN*p^>qPshPQ*y@R6@*xAMVlaH_8Xa9hR$S+aRF<)cj($X_B zv$At?^UBIADyyn%YU^6t+B-VCx_f#@M#sh{Ca0!nmX=pm*VZ>Sx3-UtPfpLyFD|dH ze~}9gK=?1Q{vz3LFbSiro_h_eFSW zY0E=u4y8l9cecZip3rbE(H{LG+OLxRV}g18DarmK*#F8k1E3+m!4?kz3lIS=t{Kui z9{o>a#OdVk=<;hI&)Yut$C=a8t|%=?`9kC3A=b5`GwFZp=C(A5XBu5-VRbFuQ9Q%- zFrexZx2}_fWX04(XO)aYl+07yZl_2m`Lle=d%s=p*V;pu0vEBb4fs0eFyCx68ft>` zwa47CvICec3l`P5jd!}I7L+Y%$~@}@b9gt3gulSe4(oK*FK-qI0#KR~@x-j^;N5hq zk3F=_!BWWd>-u3rJE_%X5uJ36rk|Fd8=D^EI10aGmqW4}8$ujY7s|X`Y?~Rs*4(<- z6D+f03%7oj5idq>5%p*eVJI%V!DQ)lv?Bj}Ohs$Eys$Cy>*7Tj8wCqn)GC<k{SvvY(Bn#CnMEbE6o#jv`lT$Q-5_NUIpj`UWw^m81?;s~$T@oturDcpKhE%# zijB-#!$`Ni2?_w_(`tJ@Ixl^8P|oVf>tuOiO&J=!&J~%}M#qgbNWh#h7FQkoQ7FwE zQ$NR?Om#-0?CX<)rPE(ILwojCis$y zBopju#tjB@qQmdbY^(R<_IgP^w5IXIJ!MjqQfygW_Tb4WD3och;||Yg%hO$Kk5-O) z+#MU)&%~Yz@1+qw2u!kNgRgttT-()c&Gk>wg?lI7zCwOp&Y33L%yN61A0|n#$(Mq0 z9FXajKV_EH4bnm6fz46PBkk|uo)l;ZQ#g^$U36teM~l8Gb2C6y3@O@6$~k}>Ps_;Qp){m0$An;JRK@Z?sa1kn=UZ323ZFx!QA zWDYxg>$AIAEsI%JJPE17eMfF|!t%qKO}xFNx^x*3%F{}Wj*`5s)7$a}!G|-0lp&PN z6}e179ATw+3-ZWmH=}#EpcIg)6VaGfg2?oFd%tt;FFX3*y&Yf;^~e7TY!voI!(gvQW$o|QP^|-q-PgCg32b#g;b37HqUygg0m&7 zqq)?K25{?w+lr~FVDnn^vYlx1GfpRwyLalhSo|5L%(@8eO`6Dkb{3>Ay#v?NbkU;E^{}6@SHYT@}EPM7cBI43w|+$>tJZKnruxsS{l*3B+n6-l+{Cux&B0#02R zqmCp$SCT%vc{RfHq+M@2lqxW=wH4*I5^a%zk7fffbXt#HI(WRpU*Jwr8iy_{t1JU~ z#-@P~J}@XnsSHnq;lrXm`SQ+{ zns^9IpaUH9>u2+qX5_LV3ld+Z23}sJb_33H1|~bAWIp0HJi?Sm!l}92Ltw|rHxcM0 z17UDJt9oL0L{>$BGsIF{1 ziDK`KZ8~L{r1|dY>?IfI*{EU_O^eebc|sw_GGFr46jT*O9Z0)1o`}yWO5BWz*YWW( zFV$CV&Q=Q0%WnWhSVkD8@(|e zua~3=nzs^6;-D6VYoigJSw0GW!?)gED1u%>m|VS=vmMpf7)|MB6Lr3U z*=??9$1)E2NK;utUjaWkxs%Be4*?fOo>xixmSl{{H58~E8 zGOlPJU|lvTmRV>}kEji^6wtyoOsBK6Tfa}x4|t-BjHrNYBmM!(cvQI`x$H(SJ+imA zF4w20aDj-?}emc@$IyTYbZ`yGP{ zMf5x3nr7WoxUpefi1SLJ;zt~=+b2~YEV%39%$(R>6G&gmbRqV!s5;2Svmb$ z%AiPToHRb=g!gkDk|bZ~c~dZ!1AcH}l7I$_7Bse8Lj5W>nOTH;*0)a{PjYymGMN&B zLCrXWLN!G(DxvMilIHgDiB!nb&@h(0wJ%Rr_AMQncP52$5X=Kk_Ncq~6Wq}zZ(kO6 z840T4E47%uHvo4Gv_8hFjX#ib^xo5Y!hiAk^d5L@=3?z{c{(4L*Uh|IvLG0%==62b zMxZQZ$(K(zVF=kk-1%%Ws6mo8y0~~Nn%_PSBSx^aLMi4(y!V9-V>&|RhnH_3+f`Rt zD61T?q&pRu&4~D_^%PkZgrw5;ZyJy&7(Tnr6ElA2Ch^=9p)jq6@1vW8$&W&9rTP*N z^E%Lvk{TaFDss-cXWy3Dsj0-RoDrxB&4j5YaXN-f`Mb_lCuiO-Z1bJ=uk=1r(I5B! zvAs`#z34Vxh_DjE8Q~8FWMy%iI@TaoE|Jef-~5;!(l7W3VNE^uL3dY;of{O)G z8SU=0nh4zTuToeZ?^0r==DmYfip_z2h9dN{K>~9!$|KUOkQt&`Gxjbb+Bx=v7<(Cd zmSWF7ti%fW z>va`PE6aDWt?;-U6!e69{dy_z0Std>81l%0XWi zswhkcvv)|1j{<;Wc{urx$vFF`Zt||WrZWtsW?v!2;>q^5?rdcyi(IU2B4l8t!Djv^ zkxqp(k}f5mQZR{!EUjpdd_p}k{h@73^;eb5-+94c3)MkeBIT|- z4syT3ZK}Dgm>0Vo+Rm)&K8O)t`IM)pZ7wHkhegTQ zR`tN?OKR22#8M{g+t+!EU(-a7D=UXx`4t1zK={Tz zYO8+qrtfNk>)YoraO;iU&AaNELaNGRZUd`M$N74}4aghE6f}r$sq~$HuI^_;uTh0@ zD{H2e@JCn()xC~Mu`TZ*l^P4wN3=8GdgYOWk79Od+Anb>Iu|B7=wcM+YTsoJS3h24 z87HkRe*NpfgSYP1ZZ{D+PKkX+ZaEGob;rDepLMXL)yA0VTMazw+zaurWK8mQum)Sn zvUcbS95sbwxd}sCN9e**6+dJeN$7`n?F{J?QC{Ge0uWu#nb zlN#%f8);^fchAYTV$;+v?#7JD?*UoH#G`C~RxbHR;1G1lcKqk&SUsEuqSd8uXw2w) z2X=h|_TVmj5k})K{%d^yHOIVP6=^O9%K3f6KXQM4$46MhSEO`Fa7(`Y)QczFWCc?g z6d>0<0iKRWDCwa;D%Ss5z`l=~IkSu4z&0p-+2nfFQ1rt3)V8A{%?@H_%z>5KBVseq z)Q=!Tx{}9wG`&oD|?QwU(nG6`YgxDEa(EDeP^u1gnFp_2hd82&!+>_8%pBP^PUJ)qO_5O8` z#J`Mp2s!qWu~V3=@zQhoYhk5@nVw?3XTiAi-J!MvdiACXRJC?lLlDX|n;h8*dh@7_)%kyShi zcX7*l&-uyq6H4~o3MlK>iMRe`4MfSbm-z%a=tIuzkIpJY3_}+1Mht6wssxRsV=Nff zF3xv?3>vLqW;h6SsVEt;>{?wO^yF2<1!cR0#ACmMdgH|%P}R@uTo0XeM~ZJT^|Q1V z#hLf=1mqtj$2~WC_wcsE%#{3C<<{gL(4BFDdUO4iFwXtSp9=(03&DA#nr2k4^(#43 zp2Xyp`R(3@V3HC;YEoy?eD2m(2$I7;*X=ZJZCvg=(Q#Hp*^EQcblyE&#J|LcmmlK`TM@ub0wy!H#f0Jo;!75Ag&<8G9a7u&bS=?g z20cDr%0z#@LB3+KpLc0cLs0*bMXzr0Qjdx|N9KnzaHPD*qY8Np1lIG)%#Ps3`Qk4v zg>ifqn1w#O~)CDPC>@x#ye zdO3U2LB=(i&*Jac2<9RNW51Gql^Ms!lkRNj#lP}};7njwTV%lWj*D>khvP}p7YViH5 z_Yd0;=^fccubfOW9Rz-wHfM>bjP2`CPp%yZrWOk4o}`9TMRj7_EVpd+_lL)k1h(WP z9|#gugW=uWgqd~3ZPLun1L`=j8b0X8Xry7%wKmlg@~v1CkgT2-%l|ym_On2F{LO3K zkT~DqtR5$uWdVy?s~82EIUPb_RqDPgbvPAUM;{WRo#IN~2G%1K3;rW*0a6+100f)9 z4!m}&?*>fBgqSV71EZkxpAQFHfh0*X23MgL6z55DJ~*1OL;DkByfrrsTCWR|3iF_W z`sw81;4Kq6G8FGvd#Pb5pHxW7yL-y<>g$!0b?3s_&d&(29d-I_mZt2FuMg)v5248>c;BL!9^z_whB1*DiX{tc^kMKG zM0OWz{w#T?qM*Q1{37WVl(t;0X`Gd=wgS@%RJ0Uj>yOpagQ4-(p02JhSW@XQyQN-} zr8?1Ah@V(vD51920mXaHms;c{XyPYGSMf-at@4b`P#7=tr3waIo> zn{X6li#5Qr9Z-A_hGeaue4O^qG~)ZTIp;S4!QpMukow6ru1)QqSDVN}4N7*X{#lUR zHX_l!-}OOMihtm||NIP(+;f$ygrq6H!Z&R{^zb$(XWGBXCCnhYXoJGu*!1Jsga|43CH@#Z-F(7PpUpd9G4``Tu#r}I^tH4`(*cB4)JGq- zqt75tvOo9DN?L^Fxx{mqkv_{69Q2exm0>k;<@1OM?8h56oh|FP=~l>m8_DLIKcnr5 zHNHq&exmuhtnogGL&pR0Mz&tons3D`Q-WrN;ASBz+0~|iwdD@EU29}uCOXs={U%oV zeet7SWhS9F@{zjbjncsLo{MY+!)V*`Ey0e%vO~GUzy=Bh64D1r-h7LvF z1HJeks9!$VE$O0)2OkqEdRTW>3tB@`FSVD>&XbuY&L8*ba}_2CA@F<=6~ALFP4nP` z_+9VE6kNWPmE}KYjIOBgB5XIg)BfD4a&rU{$5nv)OT+uVUH7e=#~;Hl6%{d#n9bRS zYg?d*Fjf&zL#9cOuxm!}jsv!GiXiewZ`5^>VBxknFcEIZgpB_ZGA){Zb&k-Xs;>o) z>=9WlQf7vDv3Pa?Q3EE8h!FsAu;M3yY3+PCUb z5V`hOaYRLAoLN6L)7YuR;u;1-poWQm1e3r*#25tWE`@y>cw6M%@!>sS`f$UU%yD<` z=5}}X!gbw4ppG%NVZ1V*mBh@&?#^RN%P#@PTqG%z8a-mR3g#GXE##ZmK^y4`^Jh&J zw$_Ena3gFSi?o&{l%QI86!d+eUwzm7NEDFu#BI_$h_dRPj4YQb%L4mHmd943??{_9 zrLj8UpRew{PdEzkPS0A4%_l7e)T}fCm=jh$|)^9QbPdqw11{kcdV} zeO;hRc!n?PCnr&67C2h5?iLDnu2}_SfqMW2)4OR?by(yOo)tF!Y-JroeX2ihma#R0pfLyt=Vs1FF|9ssEBfn`(Jv?8}G zo<7@5zJ$ZS2XH`mxNrk7hY8`w!8M+}{4Ef85BR4;ACn_PhVs)OKM?h9W$jh|?~wlQ zEdAfT^#9Wn_u)Fmmy?vZeF3LtA*C6E*|U#V09%d{2Gv9*}e5 z8d2w4*1N(4OF~_uHm8oh3uc<`#

Pex^&xg!3hP@5|iX2Zsi(w8sloQYv8 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 literal 0 HcmV?d00001