From 457b55a97709c96dae0aac9290642322df34330b Mon Sep 17 00:00:00 2001 From: Fawn Barisic <95543319+F-a-w-n@users.noreply.github.com> Date: Wed, 11 Jan 2023 15:16:17 -0500 Subject: [PATCH 01/11] changing pupil to regular apriltag --- track_apriltag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/track_apriltag.py b/track_apriltag.py index 876d8e3..1158103 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,5 +1,5 @@ import cv2 -from pupil_apriltags import Detector +from apriltags import Detector import numpy as np import matplotlib.pyplot as plt from time import time From 3becb245946d42f200340ab1898a756b5b76a826 Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Wed, 11 Jan 2023 15:43:27 -0500 Subject: [PATCH 02/11] no plotlib or pupil --- track_apriltag.py | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index 1158103..d71cbe8 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,7 +1,6 @@ import cv2 from apriltags import Detector import numpy as np -import matplotlib.pyplot as plt from time import time # Edit these variables for config. @@ -38,13 +37,6 @@ writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, frameSize=(int(frame_width), int(frame_height))) -if show_graph: - fig = plt.figure() - axes = plt.axes(projection='3d') - axes.set_title("3D scatterplot", pad=110, size=100) - axes.set_xlabel("X") - axes.set_ylabel("Y") - axes.set_zlabel("Z") # options = DetectorOptions(families="tag36h11") detector = Detector( @@ -149,12 +141,6 @@ # z axis cv2.line(inputImage, (cX, cY), (cX + int(poseRotation[0][2] * 100), cY + int(poseRotation[1][2] * 100)), (255, 0, 0), 2) - if show_graph: - # only if the id of the tag is 8, plot the 3D graph - if r.tag_id == 0: - axes.scatter(poseTranslation[0][0], poseTranslation[1][0], poseTranslation[2][0]) - plt.pause(0.01) - if debug_mode: # show the output image after AprilTag detection print("[INFO] displaying image after overlay") @@ -183,5 +169,3 @@ # save the output video to disk writer.release() capture.release() -if show_graph: - plt.show() From 2e3eaa2fac23fc1e46cabc51bb6a1b0452e741c7 Mon Sep 17 00:00:00 2001 From: Fawn Barisic <95543319+F-a-w-n@users.noreply.github.com> Date: Wed, 11 Jan 2023 15:49:39 -0500 Subject: [PATCH 03/11] forgot to delete the s --- track_apriltag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/track_apriltag.py b/track_apriltag.py index d71cbe8..de8e60b 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,5 +1,5 @@ import cv2 -from apriltags import Detector +from apriltag import Detector import numpy as np from time import time From f65a70a3adcd2e7f07300b928b6fe48320355a6b Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Wed, 11 Jan 2023 16:09:47 -0500 Subject: [PATCH 04/11] wpilib bs --- track_apriltag.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index d71cbe8..a53e170 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,7 +1,24 @@ import cv2 -from apriltags import Detector +from cscore import CameraServer +from apriltag import Detector import numpy as np from time import time +from networktables import NetworkTablesInstance + +ntinst = NetworkTablesInstance.getDefault() +ntinst.startClientTeam(4903) +ntinst.startDSClient() +nt = ntinst.getTable('SmartDashboard'); + +cs = CameraServer() +CameraServer.enableLogging() + +cs.startAutomaticCapture().setResolution(width, height) + +sink = cs.getVideo() + +output = cs.putVideo("April Tags", width, height) + # Edit these variables for config. camera_params = 'camera calibration/CameraCalibration.npz' @@ -34,8 +51,7 @@ frame_width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) fourcc = cv2.VideoWriter_fourcc(*"mp4v") -writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, - frameSize=(int(frame_width), int(frame_height))) +writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, frameSize=(int(frame_width), int(frame_height))) # options = DetectorOptions(families="tag36h11") @@ -124,6 +140,9 @@ cv2.circle(inputImage, (int((frame_width / 2)), int((frame_height / 2))), 5, (0, 0, 255), 2) + nt.putNumber("x", x_centered); + nt.putNumber("y", y_centered); + # pose = detector.detection_pose(detection=r, camera_params=aprilCameraMatrix, tag_size=8) poseRotation = r.pose_R poseTranslation = r.pose_t @@ -159,6 +178,7 @@ if cv2.waitKey(25) & 0xFF == ord('q'): break + output.putFrame(inputImage) # Break the loop else: From 2a0a3853bf35288b5268bdf515046d0f2ff6dfef Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Wed, 11 Jan 2023 16:12:30 -0500 Subject: [PATCH 05/11] wpilib bs --- track_apriltag.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index 81e3171..a53e170 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,7 +1,24 @@ import cv2 +from cscore import CameraServer from apriltag import Detector import numpy as np from time import time +from networktables import NetworkTablesInstance + +ntinst = NetworkTablesInstance.getDefault() +ntinst.startClientTeam(4903) +ntinst.startDSClient() +nt = ntinst.getTable('SmartDashboard'); + +cs = CameraServer() +CameraServer.enableLogging() + +cs.startAutomaticCapture().setResolution(width, height) + +sink = cs.getVideo() + +output = cs.putVideo("April Tags", width, height) + # Edit these variables for config. camera_params = 'camera calibration/CameraCalibration.npz' @@ -34,8 +51,7 @@ frame_width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) fourcc = cv2.VideoWriter_fourcc(*"mp4v") -writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, - frameSize=(int(frame_width), int(frame_height))) +writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, frameSize=(int(frame_width), int(frame_height))) # options = DetectorOptions(families="tag36h11") @@ -124,6 +140,9 @@ cv2.circle(inputImage, (int((frame_width / 2)), int((frame_height / 2))), 5, (0, 0, 255), 2) + nt.putNumber("x", x_centered); + nt.putNumber("y", y_centered); + # pose = detector.detection_pose(detection=r, camera_params=aprilCameraMatrix, tag_size=8) poseRotation = r.pose_R poseTranslation = r.pose_t @@ -159,6 +178,7 @@ if cv2.waitKey(25) & 0xFF == ord('q'): break + output.putFrame(inputImage) # Break the loop else: @@ -168,4 +188,4 @@ # When everything done, release the video capture object # save the output video to disk writer.release() -capture.release() \ No newline at end of file +capture.release() From fea9fce64d29581a2e9628c9809d5e9df5fdc876 Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Thu, 12 Jan 2023 11:33:17 -0500 Subject: [PATCH 06/11] trying again to make it compatible --- track_apriltag.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/track_apriltag.py b/track_apriltag.py index a53e170..bfb1f15 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,5 +1,8 @@ import cv2 +<<<<<<< Updated upstream from cscore import CameraServer +======= +>>>>>>> Stashed changes from apriltag import Detector import numpy as np from time import time @@ -20,6 +23,18 @@ output = cs.putVideo("April Tags", width, height) +from cscore import CameraServer +from networktables import NetworkTablesInstance + +ntinst = NetworkTablesInstance.getDefault() +ntinst.startClientTeam(4903) +ntinst.startDSClient() +nt = ntinst.getTable('SmartDashboard') + +cs = CameraServer() +CameraServer.enableLogging() +output = cs.putVideo("April Tags", 320, 240) + # Edit these variables for config. camera_params = 'camera calibration/CameraCalibration.npz' webcam = False @@ -129,6 +144,9 @@ x_centered = cX - frame_width / 2 y_centered = -1 * (cY - frame_height / 2) + nt.putNumber("x", x_centered); + nt.putNumber("y", y_centered); + cv2.putText(inputImage, f"Center X coord: {x_centered}", (ptB[0] + 10, ptB[1] - 20), cv2.FONT_HERSHEY_SIMPLEX, .5, (0, 255, 0), 2) @@ -174,9 +192,16 @@ writer.write(inputImage) # Press Q on keyboard to exit +<<<<<<< Updated upstream if not show_graph: if cv2.waitKey(25) & 0xFF == ord('q'): break +======= + if cv2.waitKey(25) & 0xFF == ord('q'): + break + #320, 240 + output.putFrame(inputImage); +>>>>>>> Stashed changes output.putFrame(inputImage) From f48433d7e66fb05a9750084f0cb0b93092324022 Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Thu, 12 Jan 2023 16:27:33 -0500 Subject: [PATCH 07/11] git is silly --- track_apriltag.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index bfb1f15..96204b3 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,8 +1,5 @@ import cv2 -<<<<<<< Updated upstream from cscore import CameraServer -======= ->>>>>>> Stashed changes from apriltag import Detector import numpy as np from time import time @@ -192,16 +189,13 @@ writer.write(inputImage) # Press Q on keyboard to exit -<<<<<<< Updated upstream if not show_graph: if cv2.waitKey(25) & 0xFF == ord('q'): break -======= if cv2.waitKey(25) & 0xFF == ord('q'): break #320, 240 output.putFrame(inputImage); ->>>>>>> Stashed changes output.putFrame(inputImage) From 6cb18f8eec4933c9da398017c4ff0b7bbfcfb850 Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Thu, 12 Jan 2023 16:33:23 -0500 Subject: [PATCH 08/11] fixing git stuff a second time --- track_apriltag.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index 96204b3..0cc3e7f 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,24 +1,7 @@ import cv2 -from cscore import CameraServer from apriltag import Detector import numpy as np from time import time -from networktables import NetworkTablesInstance - -ntinst = NetworkTablesInstance.getDefault() -ntinst.startClientTeam(4903) -ntinst.startDSClient() -nt = ntinst.getTable('SmartDashboard'); - -cs = CameraServer() -CameraServer.enableLogging() - -cs.startAutomaticCapture().setResolution(width, height) - -sink = cs.getVideo() - -output = cs.putVideo("April Tags", width, height) - from cscore import CameraServer from networktables import NetworkTablesInstance @@ -195,8 +178,6 @@ if cv2.waitKey(25) & 0xFF == ord('q'): break #320, 240 - output.putFrame(inputImage); - output.putFrame(inputImage) # Break the loop From 0f15dc8b1862a07ecb117785e1275f9cf415daf6 Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Fri, 13 Jan 2023 23:17:58 -0500 Subject: [PATCH 09/11] hopefully not broken version? --- track_apriltag.py | 65 +++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 45 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index 0cc3e7f..3fbb311 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -11,22 +11,23 @@ ntinst.startDSClient() nt = ntinst.getTable('SmartDashboard') +frame_height = 240 +frame_width = 320 + cs = CameraServer() CameraServer.enableLogging() -output = cs.putVideo("April Tags", 320, 240) +output = cs.putVideo("April Tags", frame_width, frame_height) + +cs.startAutomaticCapture().setResolution(frame_width, frame_height) + +sink = cs.getVideo() # Edit these variables for config. camera_params = 'camera calibration/CameraCalibration.npz' -webcam = False -video_source = 'Testing_apriltag.mp4' framerate = 30 - output_overlay = True -output_file = 'vision output/test_output.mp4' undistort_frame = True - -show_graph = False debug_mode = True show_framerate = True @@ -36,18 +37,8 @@ aprilCameraMatrix = [cameraMatrix[0][0], cameraMatrix[1][1], cameraMatrix[0][2], cameraMatrix[1][2]] -if webcam: - capture = cv2.VideoCapture(0) -else: - capture = cv2.VideoCapture(video_source) - -# video_fps = capture.get(cv2.CAP_PROP_FPS), -frame_height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT) -frame_width = capture.get(cv2.CAP_PROP_FRAME_WIDTH) - -fourcc = cv2.VideoWriter_fourcc(*"mp4v") -writer = cv2.VideoWriter(output_file, apiPreference=0, fourcc=fourcc, fps=framerate, frameSize=(int(frame_width), int(frame_height))) +#capture = cv2.VideoCapture(1) # options = DetectorOptions(families="tag36h11") detector = Detector( @@ -56,17 +47,17 @@ quad_decimate=2.0, quad_sigma=3.0, decode_sharpening=1.0, - refine_edges=3, + refine_edges=3 ) - +""" # Check if camera opened successfully if not capture.isOpened(): print("Error opening video stream or file") - +""" # Read until video is completed -while capture.isOpened(): +while true: # Capture frame-by-frame - ret, frame = capture.read() + ret, frame = sink.grabFrame(None) if ret: start_time = time() @@ -81,18 +72,16 @@ if debug_mode: print("[INFO] detecting AprilTags...") - results = detector.detect(image, estimate_tag_pose=True, camera_params=aprilCameraMatrix, tag_size=5.25) + results = detector.detect(image, estimate_tag_pose=True, camera_params=aprilCameraMatrix, tag_size=0.2032) # print(results) - if debug_mode: + if debug_mode: print(f"[INFO] {len(results)} total AprilTags detected") print(f"[INFO] Looping over {len(results)} apriltags and getting data") # loop over the AprilTag detection results if len(results) == 0: - if not show_graph: - cv2.imshow("Image", inputImage) - writer.write(inputImage) + cv2.imshow("Image", inputImage) for r in results: # extract the bounding box (x, y)-coordinates for the AprilTag @@ -124,9 +113,6 @@ x_centered = cX - frame_width / 2 y_centered = -1 * (cY - frame_height / 2) - nt.putNumber("x", x_centered); - nt.putNumber("y", y_centered); - cv2.putText(inputImage, f"Center X coord: {x_centered}", (ptB[0] + 10, ptB[1] - 20), cv2.FONT_HERSHEY_SIMPLEX, .5, (0, 255, 0), 2) @@ -138,12 +124,9 @@ cv2.circle(inputImage, (int((frame_width / 2)), int((frame_height / 2))), 5, (0, 0, 255), 2) - nt.putNumber("x", x_centered); - nt.putNumber("y", y_centered); - - # pose = detector.detection_pose(detection=r, camera_params=aprilCameraMatrix, tag_size=8) poseRotation = r.pose_R poseTranslation = r.pose_t + poseTranslation = [i*31.9541559133 for i in poseTranslation] if debug_mode: print(f"[DATA] Detection rotation matrix:\n{poseRotation}") @@ -167,18 +150,11 @@ cv2.putText(inputImage, f"FPS: {1 / (end_time - start_time)}", (0, 30), cv2.FONT_HERSHEY_SIMPLEX, .5, (0, 255, 0), 2) - if not show_graph: - cv2.imshow("Image", inputImage) - writer.write(inputImage) - + cv2.imshow("Image", inputImage) # Press Q on keyboard to exit - if not show_graph: - if cv2.waitKey(25) & 0xFF == ord('q'): - break if cv2.waitKey(25) & 0xFF == ord('q'): break - #320, 240 - output.putFrame(inputImage) + # Break the loop else: @@ -187,5 +163,4 @@ # When everything done, release the video capture object # save the output video to disk -writer.release() capture.release() From bf4cc3592ae2b2db04a41087aa72bc8a843eb2ea Mon Sep 17 00:00:00 2001 From: FAWN BARISIC Date: Wed, 18 Jan 2023 03:43:56 -0500 Subject: [PATCH 10/11] hopefully compatible code --- track_apriltag.py | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/track_apriltag.py b/track_apriltag.py index 3fbb311..bf876e9 100644 --- a/track_apriltag.py +++ b/track_apriltag.py @@ -1,5 +1,5 @@ import cv2 -from apriltag import Detector +from pupil_apriltags import Detector import numpy as np from time import time @@ -37,9 +37,6 @@ aprilCameraMatrix = [cameraMatrix[0][0], cameraMatrix[1][1], cameraMatrix[0][2], cameraMatrix[1][2]] - -#capture = cv2.VideoCapture(1) - # options = DetectorOptions(families="tag36h11") detector = Detector( families='tag16h5', @@ -47,17 +44,13 @@ quad_decimate=2.0, quad_sigma=3.0, decode_sharpening=1.0, - refine_edges=3 + refine_edges=3, ) -""" -# Check if camera opened successfully -if not capture.isOpened(): - print("Error opening video stream or file") -""" + # Read until video is completed -while true: +while True: # Capture frame-by-frame - ret, frame = sink.grabFrame(None) + ret, frame = sink.grabFrame(None); if ret: start_time = time() @@ -112,6 +105,9 @@ x_centered = cX - frame_width / 2 y_centered = -1 * (cY - frame_height / 2) + + nt.putNumber("x", x_centered); + nt.putNumber("y", y_centered); cv2.putText(inputImage, f"Center X coord: {x_centered}", (ptB[0] + 10, ptB[1] - 20), cv2.FONT_HERSHEY_SIMPLEX, .5, (0, 255, 0), 2) @@ -154,13 +150,11 @@ # Press Q on keyboard to exit if cv2.waitKey(25) & 0xFF == ord('q'): break + #320, 240 + output.putFrame(inputImage) + # Break the loop else: break - - -# When everything done, release the video capture object -# save the output video to disk -capture.release() From 3c21267359537a8e5e73e2b467b793a92e073481 Mon Sep 17 00:00:00 2001 From: MarcoKurepa Date: Thu, 19 Jan 2023 14:39:17 -0500 Subject: [PATCH 11/11] V1.31 --- CameraCalibration.npz | Bin 1498 -> 0 bytes camera calibration/CameraCalibration.npz | Bin 1594 -> 0 bytes camera_calibration_000.jpg | Bin 93588 -> 0 bytes camera_calibration_001.jpg | Bin 93231 -> 0 bytes camera_calibration_002.jpg | Bin 95312 -> 0 bytes camera_calibration_003.jpg | Bin 93509 -> 0 bytes camera_calibration_004.jpg | Bin 91670 -> 0 bytes camera_calibration_005.jpg | Bin 94494 -> 0 bytes camera_calibration_006.jpg | Bin 97352 -> 0 bytes camera_calibration_007.jpg | Bin 100418 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 CameraCalibration.npz delete mode 100644 camera calibration/CameraCalibration.npz delete mode 100644 camera_calibration_000.jpg delete mode 100644 camera_calibration_001.jpg delete mode 100644 camera_calibration_002.jpg delete mode 100644 camera_calibration_003.jpg delete mode 100644 camera_calibration_004.jpg delete mode 100644 camera_calibration_005.jpg delete mode 100644 camera_calibration_006.jpg delete mode 100644 camera_calibration_007.jpg diff --git a/CameraCalibration.npz b/CameraCalibration.npz deleted file mode 100644 index 24ce2ec7fab88d5a53f730cb164e54826133371e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1498 zcmWIWW@Zs#fB;2?s5iSWod9w`Sb#x6(sJKm{Xhz6fe$5EJy|N zHH>u>j5T!>Y8A)^T=A0<|LlF;>;QHYkXTq)rLCh{0_R7zss&u;YH_%ANwDDrXC7P} zrXE6nun#~9iF0`$Hmv|kfiMR!BvLYqOJE@Y5(5DkO;HFK>L{2}7y|2_snp4K-nDl; z-ghs|R`9@z<>%dUt_SR|k0`cmyOeKlI;r=0+&)zYR3APMD|_p}$iM)?oIoEIm8B*Z z!@LL*1OXULkryq1k*uR&NP#c88oL@+h{d@L`|HZKdTFt99`K(Qde`XN zmi_IjGxT^19_`=gckgS>QVxgR(q^3qqq3YuP z2YSc;W<@=+KQDFU+jUNk13w;|(w!Op+QFU%HggGGxq~A1&9Bk?yO0@P7dqWN(fE=Ea5QmX3)mIC4vr@jZ`K_Jaup| zoA7qaJ$3;Hy%T{=*DJ*xj%{?Bq32}hu*`Uu?0_zlf$Xr ztQ$K2*c{5|86Ug8L($=9zD=%|x}!tlor7E3*(Dr&S1?xlR4O6(sJKm{Xhz6fe$5EJy|N zHH>u>j5T!>Y8A)^Tw+0snt!b6bO1XFNF2EBnwHU14Cl95o-j9G)#)(VXFtO=@dCIw zOg)7DU>|@I60Gmbx2^z6fiMR!BvLYqOJE@Y5(5DkO;HFK>L{2}7y`d8{ufnktFV7N zVZs;Fgpc;$W5N=S>@BpHFH+W-#U5j?J2{d$dlCNuR3Cm*J@&4Ek%0k(Ie|VbDoaf+ zhItVr2m&ygGA|kcV_8SRkbG})@fp6fKcc#o_%QpH1{(*m`KcZN(!VW?zm2jXOQNr>Py- zpT$sMx9RJ_{TEI>;Ewa-IAGSgWM9pULi>+%zo{+DI<;TsZL*zlHiyGSvw(`*s}|Y2 ztv&8$2&v)9px z+ir7ii~ZTm)u*>?;W%Kqu5Cxeii7rlB&z@IId*0LUBBpFF*bIGS_a9h77{Hr1ZCbCAkk z(0O^2l*88(8L!>`vpZzZad|0l$j*V+n%n;(r;3C2-ye$8Up=<}^fWii&)UgB<}z+Pz4=86C%XJAw@GKnzbDnlXJ2t+o3vlM!Ximn^A+(FjO1=J5Kh0t}O q=4E7EZ-BbsIU8LYYPv$!Hl3M)0iMbNyjj^mk}N>@2uM4zf_MOh?8CbN diff --git a/camera_calibration_000.jpg b/camera_calibration_000.jpg deleted file mode 100644 index a4d19c83cf16e4816ae04b5cb34a3d94a144d55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93588 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

Qwlc8c382L0@Y*lDH2gM(!6 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 &FBR#-Qh$u5q-Q3Z} zdg{BN?5EIFQY?&AF57hZ+bgkkn(6zTFuDmW#|F5EGG~Wu@ zRCag;EmTdWA&$DJ$PYTYep0vW|063~KH<24(2e%anxgcnp^X3QOyWFYzV~H3aF#$I z>9$h$k=wSq{Si$V8C%EYpW)w=Z;Oa{ysK86y3MuliQ_2^f7%9b8n;N znI!DueKj!CmHvFnUihj&w6Tk%-~h{69XvYNek|O&&u1s^b|vbrSp&YW3E&P%!0{g1 z{6r4UJCvqRb{W~`rNPn0!V8(|Zw?|TsW>Bxa#*z_HIH=+i<0NL^Eva9p7F3Xs3j_! z5PW&%D_bRLewBB`I93I6vwaVv-7(~JW`7jIGR|!@JrR@dP3OC+lDRdZ`OTs^?4_y9 zwYp4YlMu7;xUYrQ2lcY2we@Ni;!7dskrsq*_p_q6V%TdO^mr89M1TAw*vrFzL?@l; z$!$hLga@8!IvplSNT*HJ%oZ8d6Qy;--*^w3Q< zrKZY8gV7T|BUbNna^K~3N*Ed5WP({ODOaY1Z-oACqnTn9*5J+Te*_QPg&d@Nmax9V zQbgZg3RtZdTYVskzUi;SG1_6+9*zqMKQ&HYQ~Ie%W&YuN<3u^*X{3N^uloasX+PTt z2K6*ewrK71wx|%H8>Hxq{ka^sr7m~UCo-?ksol7=i8K8Dgw5X4)#)b;KR63!zZ@L( z;^njW>XznY#0vrN|9mx}w;o-o;GWh@4kEcw!p_nM<^-&D`#Ifp+sTCzqtj#%Zf(CD z14na*(N2!HyykDEc~Tt!{F1|F(>m2i*Kb<0>LEKql}7oo=7N%Yk$~Uz%%GrCviz^@ zbqc@P&rJg9YJQqtEJ-^mb!5J>lRjFKR>?M592Py#oR5>7vz*#^U}CZa_e5U@WIWW9 zBb%NY5jP+xO`BV7NVqaui5&mN`PtEaz=xP9!M);`FD+I2ST9A!#o=jM)Zt>j|K`0x zPf;sXO#w-{uR?|v!c-jF*9m$NV$c7XnI_g9rZfz@j`6iBeP&Dxx!i5Nc`5QcvMznP z^!4k4mp(CD@-y=_QHm>TC88d7;dVv^y^oAj!b~`C32g$nZ_NAGeJ;ui8>YWO#1s^r zP5+KC_Jtn;M=ir`^(ovz|Lu?9+-}L)CPfjn=?MV}XY_d)`{*EBitu z8~zE-65E3|>-7z8+8pa!qYjQWZ1$ZT4f;OHqM4DWO6y)u9W_qa=RZKg|M7ZBlTn+F zVI)(a?#c>N9BVZ7AAvI{fj)izyx(l2`d2)e3+RlZx$|Gfz!qezKds^oU*Uq4%J(I; zG>bl34QsM{Nd(9bfMO-Jcv|E?0x0tRzb9zZI`Pod-h4LFM1j%3gJ5BHDGjIi&2%+W zQxkr*XDUp$!-!7&eeIzq`UF@%cSA8%1mzM?3Oy7~%Z+&US6SnSylN{%UY4PeJserd`i zJ2*bG<#4>m`QhPqL65`@3`QN!+pIK+V?~AKIgoEam5KL265XPO3r8)5ta^$LO# z$AzlSuKWw9Y^c)KoDmxa9CadTfqv-RrIs`L+?IpkI5$@-6hT4kL0~&_M{B0M~+gz$plj z;sdN%zwL80{5|`0xb`N5>dnt(TgY;@znJC|Mj?P*?Szg4*3*%J_^#}i%!v7$&i24W zZPBR9#U2U01|b?NnoF&0U!7|Xpnsv^Nl}zs6(C^NMvYqoVPTM0duz--*tvZ&-->qy z3KX()oe-3Pg76%kWbJD(hso{x`Wr~}6-;{i@&6%PhSR%J|44;DKySkA7!OE@#jDIXlz>r`o7kn z+iQRy0nz5D6Hvx1?r!~6>=A-JUMOB$kkqs1ko*~0;)D1YIybdO@E?H}Wbp=QA+Og{ z7xuQK2ILTru=)cXd{HmZ+!?ot4sV3rs~^7*bUNNtBm78rts#F|(+U)GkrqIyuHclV zv{px#=(vHvQHkye(qkj;2%md?cv)=-$8zrBX#Swzlix_IRdSTwt|dr3Gei8tUezQj z%KTr?*Z?_dK$rGI>cE|#c-g?z^|jc=i&n}Q|MGAN*ANU;!$7|IcZPsQp9*1?gYmSR zuz7k*ncLVbT_#Bn#fl%K0F1H?2hoHxy(&tUvI-~sqf!dj&%-OXlf&1m0ImX+YmXh> z=!*2)3%);eCKs{NKKBdOm!kthnF2gnl*aCaj-TL4;{6iU33DZ;3eE&QQ zfaU8Bc)>o`wEZ7n5yN*Is+olIY@*vZGtu?yN&i?|aHGBmhW`j&*DUPeNp4U@z2HXp z(bCsLs^GOwSu6d*RI0;s$Rg}EYgHHBNXhqv_%0I?s`al3ad574W4Ms;#iifp4>@Fl zhuFM+c<+`=^gn`#hqzP-R!Hi2_Fc+YOcQBpW@@zXed4)e>(uVT8Q|eGgPVjC3s<2A zf01PK3ybZWq8lTbVD@G2HP=HR+AP&cGT_$!qqq&_1MGqq8Jwv-h`c^JU4+>UN=h{Z zsh1hL>Z(>XqJFSVrgpSVk@@e-8cGAPAhJ20xCu`P07y>NGHedrOpW~{PUq=cZSO*} z`8H|hyeo;jNE86F%@3O=NF~B}*mmSXTTR#%c&NgRxxO)`hwCWo>g7Crz=k9@lk z{PQ&avH1MYaFgjNS4@iRjf~?1Mbnx;kVVoh^+fRc2PRDNjU;{~R4t?G%_`SaDOz z?bLm+R)X>V)b|w&@q*chnF{S54-Qg)=gN=)Si(wowI!J0ZwjIGPJo;<{u2)Rk33C( ziIW}uE_DPjM1#-)H}9_8ZNA5)oQLJymQ?C)wq9!to)p^n^U;t{d!qL{jM8^CZ1z`T z#>*P^7GTBw#g8{KC687$9c`@(41OulFoY&M|C3>cdfdw>}6kj|8!~FZRMDx*r}hAuwD3Swta5n zGqhwPypD9aCt^VeULlq!-0diatO(%-q!kY9 zZxQk#F6*E;`YSVx*_A*@@pnx&gu9cssm)T{U7vFYboCu+5iQu+&OBnP^X|iAu**$I zHJ&fg*wlWJbDQooHfbBr4htx@(pTXtlU`IumJTRTYxv4P*?je2qj*yJ9NS!~jjq#; z;gG``L6WJo<%Yi95seyK!@1Rma%~Iz5-RbO>894imAj04^3>(X_%CJbDv$Kl?PanD zRzo~&TnAm>1PLzUoTnrh>{}a9+3^;vQk;o}KgkQ;+ikJTMmO~-C?p)An&Jt80m394 zz9DuaLgvd_1rLrWWUFAVpsc+p{pw7(bDU4W)1b(XRf8X z^+L^7{UjGJEJmoa1_Svh;|!(GwoobU6pA+%yr4>>*pw47GCa*pJSz#6FyNe9JNu09 zY>|^_>P@jE=I@dz9q8qq(nCXoHkGTe%p#8@QWv5s1?x5{L@6u3^oR2l>0%2Nhi#6U zElbs~Iq8X!@SwSYSlDBz?3WKBnQuDxn!U0?RWNy6z_ih;sRjlzgxLHt_YVH?;sIC( z)Q>ax8wPQdw0mK%upvt9c2WD9 zas$FeeqnnjZRcju6OPE4u7`Q$Y7Z{iHgj1eR6b!MW$vkKHPPCs z(XuI2H2ms73@jvseUxzHofZAyGXUc+F1dSM(kvh;{qn63;!mCm?+T(jXGdv7l0fEA z=i^c{)#q1^|0ei&9QzaRP|8y=ry<;YR8>Vkt398RAS$yn^Vu8U{A#7`|Djb&h1&1j z<$AgeVsS6Nv>{>LPRCdF*cY5BDlb9%C*!jxiS4V1uP89tOz?$3z$a@}`HGE1M~x8f zsuc@))U~h97Au3~16;+MRk6Sz0Y{r?HbGA>2Yuf^nuhvrRd;pks2Yzb{Pg>JA6gHp zUm0IWOpyM%2ir=}e0(uTaLLi2BIq>pPOkinaYb+U`e(+m0f)TfvBI_ZoLFck>)?g? z31AFZDHm-vmc8&3S6Lsab~fEq;+x}adTZV2t-0A+R{Yxzq2;SNpJh{@yZ1_S8x{bQ zr0@k(K)Kg$y@(MdR`J_orzFM8CYM6CHz0E0j0%P^U{kHIE~uL=;m>cT_HAjWMf{JQ z#qWM%x)8~bIimM>B4x|XLW+uP`rp%We*m_`#{{f!sG}tlgEnfYT_3k*eTEapzM87} zV)42q>C()Ufdg>};R>F@KS;Zw!4{cko1u2DQgA#hrQn4{%DBhc=C^5{R14}~R^Hjv zA5K=PJu5r*$Wf;Y7czk?s#slsWs$F$?bez=T~6s_dz-d7zkj!^%XDJ4qp)Tt{!)S# zIWJ;(coZtv5eZ0?F8CefM^Mi(1T%{@LK6)z4aC9dmE={5_hCH9NT^)prxgS07fb@t za%0K@10Xyp^5%7ya6eW8_03qi_j_x?&wphf&i^C0^PNXof^{E>RO!fvxKLOWT?TN8 z=_G_)cY*R@46v1;r&pLW><*_RA*lCeKAx@oUaQnW!wFE$ha#aP+O9Rs>t@~Qji@2s z*W87a!zHa=96xJ(Ccx_%NFpRu_u&Yp0bSF##`?E)tuK*R9`fB)R6GMDG>|o?C0HTG>sivL;A=A0UhJYYVJCCVM-@; zzz1hebFkPqkm_kEBebSRwN%~nrs9E99)&uydX+w>kJwI$K*!h%bp++9t_7&*hxU)x zsroy%J~s}labSmQLiDk9-gxScxq5Q9-Gkj>xn@VxG>#kz({+c8)zX7Y znauBhQokz~%a|TvwU6n=dQ;_(1;n+&XBmVB4CRb}To*b%kRnQZH}|z);KC44Kb7{B z#xsp!TF~}(1oCSn^Fve1bUbKrK-(Wl_9jix!}Z4Xu)?7K`MS2EcNqTs+Qc}MUZ5*) zJZakfQt=b;Th2gIL{AI;UK>j`*28hTpfto8?>N_TkHCAO59W)+(Jp#nc@8P(p?d!x zX4w#K#47#7+EP*>}Kq&N(TEa(S};uFfLJ_UL_-Ya5j$mYR4av6Z$jOZ_(s|<3+ zZKK3*^ddA`06*f!M6Ji}yEz{Zr0Bk$%^iWCAut8ASrKqFsXWAvceqvulm?33&OxFrFzGogQAGWkP)A4%Fgga*#>f4L9yb0Vt&P))l(Z1ZWU8h2nG0+BtK)sz?iz;Erek{>8=L5@AEI%o*ExaT?HsUx>4=?Bxpe9@Ie=r3|uckfhr2rzwqF7 z+koW@Yc?cWKqu#X3n)%`ZcCKx)>vW8;qzTkt24j<2*M*3Gnd0@rjL;838tZAQOGwN zew!_LJ~zHf*XO|xY5n8ft7cb~HV-s@B0i$@4^1b%f6Xi;OOJe(bBD#25C2ENVM`BO zo}`mLmIv8401SMIO*=$Q-E#AzgW>CK@LJ#B_8A)@ed6r6ul3rBO00gE@22on`1%+4 zefWA|!94)%e7zP4qeJVZZl1>FyqsNBolC68ey!E7+uT(?C99=6dl|g6+LAA$?jLmP z#?q+1+jkVn98XL3cAJ10sWpPmxn2b(ZdM}27d|2E-XnG(jzHtzMfD$nM>(epn=ICL zBbMOc%1wQTq#~yj_vjR}Jads)^#Gf_@%1L4KI;e#y^_C9FpGXeEPv(Bw681RmO`(4 z4r%$9jLI?spxBJ=dmrxuT#UBPvSL=6888d-hdI>}ySapaczMGaPCr%EL4#A8Xb;U9 zi1v6r5uoxd*y`AHcXw9w?pH30XFcKWgr^BV0OhYWXx=L5BXO_clJBEnHk~c}zdcm7 zYrkRs#FCcQBQ5nYILgLL0`8_Co4Vr?)Dz;z^Tldk`WF5I@_6`&@>5NB(uaEydpEi` zDRefDZmzeLasX)8`h{e-lu%ip12(D*MHp=*(_~lc)0Uft?LT}d8%l{1Ud`O42h^dE zrE5na=*C*?4x`T*c0IjgL2?~5+{UMzQ+g`*Jc@>gzbT>RGq6ZP+RlI`v~ZDDOzJoO z&fKuD?7Ec$qId3yg-{ZQ{3LN5eIp4QhA<-6^FS;@V0ZZ9l-i^}^8R00AxvhN-^S=0 zx4P@>LW%hH;$&vRt*-4$x{HqxlqCeqGd#2dq^$If`<)dR5VhaMGn7@iHkS!x#~79b z8L1pxF5PshYr7_#FRRVqZm?x4uA8hzBTi>amhEQ?Br*oi39s!ayOHMKk?VD9D7{-{ zl==P|9RT5Gc8t+J$4Z`n^YJgTI7mk*^zU@=qbYIJ2+TF0QM^^}f!y=AO4LqV%FUH= zLGOGN91$F4AAUA``yYXkk=FZ6t7%hP7gfuPJ!ONG8touOr(T+Y+x#Fm7fqv)G>yBG zY7~Bu9}tu#;?ZFNFsmL3!zoN(9>$+AG1LgTS65SxDHI2ZeHV^^SyOg*h+@@&+vs{* z+itO0`4ZbhA0tmySk;LiZ;tBaD_Z|rRY$M2v&7n5?ooR2tyHp7OY``V*n@o#4&{u5epZvKNM%y5r2c%SU(2f48^BNwyY5b#JR-J9ctu4hrAkFS$ee=a| zur$emZCZ%&eR1x1rAx8U7yFD3SqGoZJP#hZkG48rt}Jx* zYeKn=zi%2Nv~o6|gD~&+>rtCJG=_bS?tnWA14eF%8zEFQLYXc2-la7U&R^YXO)}U5 zlZ_Gp?Y@DX^h9RN_8!yF%4~0)e@$yVUaQ~CjY)2b`9tiM5bPB6gp(tsaVDgM%|Z~E8!!ZQr6fFtwjETW*O+;EnNMZ?bz!u2dRZgRYeOqF5O~SF|59H zc#~{Pwf=V{+vE%4ChLIGi1cs|W4kaXT{m^FmUjXdMQ*-4A1e(OFq_=@`Kuvv zeXu|?xI}J?pwfj|LugEaa<)Sl%jY9;dJNjYa%LLee!DIt?7$0t3-am$B&hFfBu=#{ zX(vV_Kf1){CblVd$1Pbd@TPUHTs0rQ(h?t98_sqh99$dK_?yma#(qbZDRNbaiSO=1 zGq{`*E4aIvPye%TzwkiCYLokqn10?~$+N=kw*(iJ?!yGjTg*TBlU`X|zk6(ux$V?a zNh1jIHDl!AP()hJ_(|{A{Pygf>|*(u#^LQIT|dJ62b*bpIXq1d)aP-FCPY71CO>vL zChu?}rA)8u%mIdCX1Ot~-(oX}SiS&0R`Swah=*&XhmI$0F(>PT%wR4f%hoT`)=77Z z@UG~2zpk!A(j1`+zU*{flb51@f=?(f%iBxcDW9cNh7LAQ9(y_^hM$oqo*jMuh!{M# z%<6n9sBFI!p=$=_^vt?Rwp`45l49z$vUi{>iC%naQS6Sni{j%@Gpd&)l=qwbIvqaH zeQ$^*BWLzwO(Edn$kQ0&X+HuM(1E%_1Rvnab3%viI@W&B7*PC(E%oSsrmtgqXrp4^ zpGq5fCNJr|4CDg8aVC?ojcuuhYFp@)KKR@A=ky!7f7V&Q`tJ_hWNw0GOkZ1wiPPQ7 zepRc3jkzcbbR%ZfCvEb(TDPQNDAO?CLC*N3Nao|7_Z|ydllcMyWFoMRnf!9M#lXaG zHqg-7N~nW_3rW_&Km5k)$Q1(4y0%9Z3PUxy?b<-?0nBYg1_eW`n#a9ha<*#<^`o?N zp`iCQHA0Npk<|XWHDdwmm{C_CDg|Z6Z^8kJ&j;b?o*rle^)I}iQmFB>ya<_A#42V5 zj&Xp*&rLGAxH`nCl_Uzn@`G^#mvWd7w?O~l0$I9Qha`X<#ukYC{-wsjo?s`tMZfMd z6-4`#6#ukb?h5ejhGv>~nR9%2Ywnn2HW&m#X@Ic2eY2Yg0)Ie`^eQ~y8#S@C%z5h# ztYJ=>YR9c;2NudQQ^Glw@M|nPAeQfoo8dKF1QXG}E(4G=x_CI#E$%k6%60@}fYo;5 z4(dZSDOt#jjba|ujcq|Pm`ZWfMEHjF7L$W0&dsq^;l6eU%wD$0d6rq@! zU*SM2eD5Wo;HL)yKa%Qa9Inc{Qw*v zq$RTWqkODe|G9a*&oT4TH#)rknJO@aMBdJ9cMeD2y+gBE)77jrLP-ogvnyz6Z(_J5 ztSQ#V(QV;Lz8^sFOtq6>RYdnrlU?5Bb+6tyy7x6i@u!VhwsY;z>Q>SuWt5XkC=y0OqcT6gX$`oPg!1}unpVrNk8#fsRHyi?(iTM>Zz z^|%p(^&{#Bj`DAGvCNpywbC(}6dB0FUaCpU~0IB$t^Yq6TkXt%0w{eD0|u2rRGQ1m)7m zmQ{aIYTT7Tv_jyLRmy(^N{THttQN{6yA(uhsu3bLMzCRI1ARYY(P|UikBElUArsnl zH@xVByZ6jd19AQW=6j9P?#?M-en+{kCy{&7r?w$}H^lhGtiNpf^EaC+=iNPD1Q6Aa zRcxc8a%?)(b8-?xEf6;FF65*pCy14Cd!)K@qyBYj8$LO(6Q-MUOKV~%79l&gmx`n2 zp2rV92GdSqnhPkSrPzdK>NVS?plIqdA%0zDQmAH8jz;fqse3^t(!fD-2yqlS4!e1( zIF4vQ^xUyJsloBI2J@VMG^4ZfI|!8yv6SM)uadFf#==B3a^pc10aRy6w>zZQeq#+V zQ+SsY(iuU3pNH2^0pnifo2*&`Ds?E`{>H2vh4rSE>1ygXg;xF_B27#j#U$@*5H&(C zqA;D<9hA}L=}{(HU<2MQlFUYfhQx=z*kH~TqUpiYqlKz2FE4vM1X#R#o&}YwKBMHadq?0F0=Whh7DJMlatrSNWxOvybV=9PlgbcMc1zL45w4CvHE-Fk5?s7TGhSi-M5{f ze-u`5bb#AH|0atfsGWU-t30-Kh--?3H?>3!j~q5o*Pk0+(U!Xam>M=C>I z(8G7fhV?1`uo(k;-dsTs-Lg--3kv_sQ;O_*l^$tRjA8HT`Zosyk(!q9wn=(BRFvD7 zI9#0LAMl@n7W4-ubv`YjebH3$TW{(bMu&nWPLw0%DXjt1I84 zF>%&e31?G8Jnt}{-hr=%ByMTU7X>9TC|QCh_3<*87mz>B$m)HwR?fwM=&O7m!5@O6 z1EeQHdrw&CFt-B#q{oj>C74OWMl_fdq&CQz%>Bu*|ABc4vh(BpTg zW&Mq~25TtC$8xSb!=PLI-FW&lN29ZCD5A*97aScpv%O^a$-kpJ+U({$Svwys_^Xgy23Bms%L6fvpzS_KE(OG z6gXM5U9^zlx9@_QSs6n=nEx~P%))nTFUL3EO_Pv^-EW^?RqzRV%v^mIv-+|&TV{m~ zQc1DyP0MIw_!Cn3>P_GyO-$Ttlki7Y;1bSkiTT~#El2VF*>10#-B-PPcT^If`y1qbIVf;|L@RfXNmB^=pBuFE7k@XT z8xo5CtE+*QeZqXLaPZ_#3^mK0(1|))kCC#?mhF+K0hN6lug(?q8-Xp!b1T4Rwf8w{4~s#-^ksGCMQ)%`>a2v17`OH{X(V3>79tr8#Llv7oP2c9|zS zlUC3FHlUL;go%^90@)DU%lP|()4stci+7#j%xis2A4oN$t@GBMis+80uteQ$pB+$_ zWkfB+I5$?S4amF8O2`klRf;Lkb6%Z_1zBh> zMXQxVIZmR#i3$7R^p%G>SXT+%SNcr2>&T7bA%dT)M>8XNwJ@<%5|b)kl^oZbE=Pvw zowd>$WqD|@0|o}q*GpQLuMpJL^+1w6NO(fNk+zPLC5G#{o~Zc)hB|*wFghZpWdnuZ$~`X$0ndp=T9b_ zZ;P_7w}S02-UzAW}8|I*$(v|eyYi*yK! zBGvgmG)**EIu=0doxCvkmpF7d*J>hp^1E-f?~B&}h5ORso~F(6$*%S8k!hokY_Z*) zm1ol2>6@fMcImb0rI7;(RjvWh(1+^J*x9~ZlshL(OKY|k#1hf2Z*aZ&+8_`;+VF8w zsJ%Ab3aj!8BdNTt5$r8v2S-%Bz*y0QJCYUJiy}Fs|09s8bY5Ip7PHQHcR1U!eW<3d zJRxrC-Aq>VM|$^jSgDl_p_iQS8O6*>(saU4-qqw`inmkFk&CW(YjtCYk`$nNqEScl zRld)QdTR%s4r?YTRFG!8%ebDYgnDr#q4KD^5-v1?R2VogobY|`!UCHZ3yZGqaf{$Oyv{;wEX%KnNMzIsXu*Lx*8+00#_@8-}L_Q@^Zz?N!ZHpy6TfgVU&_t*J+8GVVhV zQ>!+D*VLk0J4&Hu`?0vki5M_87OgA){Kg<$5H+*fBoZrbHqmbN&2?l~uhHJ6fV3pF z^1Ul3dD4d}KtoR6-%v!g+tJ|so+>kIpXx)wv*BJknWGT8!>OK`f`?*Jx&hk$xQV?R zRTiC(SNneZV_1&$mJZ+)%ErmYx19NdssEJnJiMRtS50B0W(QI`ZY4>ubUn9~jiYiB zIz_IRC{nf6AtQZ=quMoh6GO6eKQ|_cD0^$-)sW5{QW6W*)1w5mH$C*!DWBbaZmXjy zBkv;fk7g!7l zgke_r=SqJtfTCemzh)5}Mai~fGQ&~+Zz*Sy#>n+|frdRm>8IQrLRJV*3KF7WA3nAb z`|U_IO+A3Ho`}Qz>{+yY`U5{~;+em2^;C_7ydcbRE(YGEuapSPz@h!imykV;gCxgo zuNpvObSD~4PUI}YfryhFloyu2J{{m3?rvghoybWwi(S#hDa{0prO+|yf3we;#AGYZ z_`O=NqdvkTpB>{qifQzUB~g=r$2Tk7YQ4s55(&cFNQO@sN#oW^ERn%n(~cw&gie_q zs+ke`zh2GmivE@Tl(74Re}5{|h#iPr_eeO+Qv)iN|hxr$l(k@&Biky3wIWIO5QIbPmzu-S{N+%EZq_gf4>@}L>O|DlP zLnYd^=`j-DW=6;{gFbmT5zq?}Jn8;(sT4eA7lRCh?68*1+Xs{D?RSm1**4poT3B8! zr&5Lx<&mwQ&$iiZm#e}r{p{G`oT8DsMMpj<))1;0FbD}l-_>o0O9A5#9UZ8G^NS(#k|8zRf8_r zcw*%)Cdm8b;f6I`z~WJfxm}dGiLNF@JLh#_zSP{$rW+ajBpjf`+(cpn*XTOPgPUF< zCm{x5a&f1H!NNkq25*C%<5LV`UR>Qr(t$nUl)-_gm_=-t#6Z-s1j#90aLsa&2jiWp*%f;zwp+8f9tA5=H^{ThYHY0c!Rb%egz%;gJ)W@PJ!iq9-+ zcar#{2`D0wz^mq7I^V(jU7;d@?3Wxy+o!= z!8KvEje?E_08?b1f6$eNI245CryqbX z(Xan1?HXeae~LPdIog@73ZSGqU{d@lf96L2_=t@w*-`b;!0w%1rxXIfQ7#(btl