diff --git a/README.md b/README.md index 7d21bb6..f470b7e 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,62 @@ -NE15-MNIST Database -=================== -NE15-MNIST contains four sub datasets: -**Poissonian:** -The code and example for generating Poissonian spikes from MNIST is located in the folder *Poissonian*. -**Focal Rank Code Order:** -The code and example for generating spikes from MNIST using Focol is located in the folder *Focol*. -**DVS recorded flashing MNIST digits:** -download from: https://goo.gl/ru0fXP -**DVS recorded moving MNIST digits:** -download from: http://www2.imse-cnm.csic.es/caviar/MNISTDVS.html - -You are welcome to cite the paper if you use the database. -"Benchmarking Spike-Based Visual Recognition: a Dataset and Evaluation", -Qian Liu, Garibaldi Pineda Garca, Evangelos Stromatias,Teresa Gotarredona, and Steve Furber - -We invite you to **visit the [Wiki page](https://github.com/NEvision/NE15/wiki)** to find further information. +# Convert Images to Poissonian Spikes + +Convert your image data to a Poisson spike source to be able to use with Spiking Neural Networks. + +
+ + + + + + + + +
Pumpkins-RGB Pumpkins-GrayScale Pumpkins-SpikesPlot
+
+ + + The parameters below are used when running convert_image_to_spike_array.py in order to turn pumpkins above into a spike array. +
max_freq = 60000 (Hz) +
on_duration = 10000 (ms) +
off_duration = 5000 (ms) +
+ +## Requirements +I use Python 3.5.2 on Linux, necessary packages are listed below along with their versions for reference. +* matplotlib (3.0.3) +* numpy (1.17.3) +* opencv-python (4.1.1.26) + +Run `pip install -r requirements.txt` to install them all. + +## Project Files and Their Usage +``` +images-to-spikes/ +├── convert_image_to_spike_array.py +├── draw_image.py +├── images +│   ├── cross.png +│   ├── horizontal_line_10x.png +│   ├── horizontal_lines.png +│   └── t10k-images-idx3-ubyte__idx_000__lbl_7_.png +├── poisson_tools.py +└── util_functions.py +``` +**[convert_image_to_spike_array.py](convert_image_to_spike_array.py)** is the main file. + - Please see its usage by running it: `python convert_image_to_spike_array.py` + - The program will store the output spike array as a _pickle_ under _pickles/_ folder in the same directory after the run. + - If you do not want a _pickle_ at the end, change the parameter inside the file, i.e. `save_as_pickle=False`. + - You may use a single image file (extension could be anything _OpenCV_ accepts) or a folder which contains multiple images (extensions need to be _.png_) as input. + +**[draw_image.py](draw_image.py)** enables you to draw your own images by adding simple shapes into it via _OpenCV_. For more information please see the file. + +**[images](images/)** folder contains three of the images that I generated by using _draw_image.py_, and one example from MNIST dataset (t10k-images-idx3-ubyte__idx_000__lbl_7_.png). + +**[poisson_tools.py](poisson_tools.py)** is where the Poisson distribution modelling takes place. + +**[util_functions.py](util_functions.py)** includes utility functions of files and images. + +## References and Citation +I only used the Poissonian spikes approach to obtain spike arrays from images in this project. The original project also contains _Focal Rank Code Order_ approach in this sense. + +Please refer to the original project's [Wiki page](https://github.com/NEvision/NE15/wiki) for further information. diff --git a/convert_image_to_spike_array.py b/convert_image_to_spike_array.py new file mode 100644 index 0000000..2839194 --- /dev/null +++ b/convert_image_to_spike_array.py @@ -0,0 +1,64 @@ +import numpy as np +import cv2 +import sys +import os + +import pylab + +from poisson_tools import image_to_poisson_trains +from util_functions import * + + + +def img_to_spike_array( img_file_name, save_as_pickle=True ): + img = cv2.imread( img_file_name, cv2.IMREAD_GRAYSCALE ) + if img is not None: + height, width = img.shape + + spikes = image_to_poisson_trains( np.array( [img.reshape(height*width)] ), # notice reshape + height, width, + max_freq, on_duration, off_duration ) + pylab.figure() + raster_plot_spike( spikes ) + pylab.show() + + #--- Pickle the spike array for further use -------------------------------------------# + if save_as_pickle: + img_file_name = img_file_name[ img_file_name.rfind('/')+1 : img_file_name.rfind('.') ] + pickle_file = "spike_array_{}".format( img_file_name ) + pickle_it( spikes, pickle_file ) + else: + print( "Image couldn't be read! -> from file ({}) to ({})".format( img_file_name, img ) ) + + + +if __name__ == '__main__': + if len( sys.argv ) != 2 and len( sys.argv ) != 5: + print( "Usage:" ) + print( "\t python convert_image_to_spike_array.py " ) + print( "or (with the default values for up to a 32x32 image {max_freq=1000} {on_duration=200} {off_duration=100}):" ) + print( "\t python convert_image_to_spike_array.py " ) + else: + img_file_name = sys.argv[1] + + if len( sys.argv ) > 2: + max_freq = int(sys.argv[2]) # Hz + on_duration = int(sys.argv[3]) # ms + off_duration = int(sys.argv[4]) # ms + else: + max_freq = 1000 # Hz + on_duration = 200 # ms + off_duration = 100 # ms + + print( "max_freq: {}".format( max_freq ) ) + print( "on_duration: {}".format( on_duration ) ) + print( "off_duration: {}".format( off_duration ) ) + + if os.path.isdir( img_file_name ): + import glob2 + image_list = glob2.glob( os.path.join( img_file_name, "**/*.png" ) ) + for img in image_list: + if os.path.isfile( img ): + img_to_spike_array( img ) + elif os.path.isfile( img_file_name ): + img_to_spike_array( img_file_name ) diff --git a/draw_image.py b/draw_image.py new file mode 100644 index 0000000..1e9bf4b --- /dev/null +++ b/draw_image.py @@ -0,0 +1,150 @@ +""" Draw (onto)black(canvas) & white images with basic shapes (i.e. lines, circles, rectangles) + via the functions below. + + Functions: + - draw_horizontal_lines + - draw_vertical_lines + - draw_line_with_angle + - draw_a_rectangle + - draw_a_circle + + Feel free to mix and match them to have multiple shapes in an image + by passing the same "img" parameter into the functions. +""" + +import numpy as np +import cv2 + +from util_functions import * + + + +""" @Params: + +* width: Width of the image +* height: Height of the image +* thickness: Thickness of the line +* key: Sets where the line would stand in the image. +** key options: start | middle | end | random +* line_count: Only matters if the key equals to 'random', otherwise there would + always be 1 line in the image. +* img: When not supplied, a new image is created, otherwise the passed image is used. +""" +def draw_horizontal_lines( width, height, thickness, line_count=1, key='middle', img=None ): + if thickness < 1 or thickness >= height: + print( "Thickness value is invalid for this image. -> {}".format( thickness ) ) + else: + img = np.zeros( (height, width) ) if img is None else img + + if key == 'random': + random_idx = np.random.random_integers( 0, height-thickness, line_count ) + for i in range( line_count ): + cv2.line( img, (0, random_idx[i]), (width-1, random_idx[i]), 255, thickness ) + else: + if key == 'middle': + idx = height//2 + elif key == 'start': + idx = thickness//2 + elif key == 'end': + idx = height-thickness//2 + cv2.line( img, (0, idx), (width-1, idx), 255, thickness ) + + return img + + +""" For @Params see above. +""" +def draw_vertical_lines( width, height, thickness=1, line_count=1, key='middle', img=None ): + if thickness < 1 or thickness >= width: + print( "Thickness value is invalid for this image. -> {}".format( thickness ) ) + else: + img = np.zeros( (height, width) ) if img is None else img + + if key == 'random': + random_idx = np.random.random_integers( 0, width-thickness, line_count ) + for i in range( line_count ): + cv2.line( img, (random_idx[i], 0), (random_idx[i], height-1), 255, thickness ) + else: + if key == 'middle': + idx = width//2 + elif key == 'start': + idx = thickness//2 + elif key == 'end': + idx = width-thickness//2 + cv2.line( img, (idx, 0), (idx, height-1), 255, thickness ) + + return img + + +""" @Params: + +* angle: Determines the angle of the line to be drawn. + Might be either 45 or 135 degrees. + +For the rest of the @Params see above. +""" +def draw_line_with_angle( width, height, angle, thickness=1, img=None ): + if thickness < 1: + print( "Thickness value is invalid for this image. -> {}".format( thickness ) ) + elif angle not in (45, 135): + print( "Angle is not right. {} is not in [45, 135]".format( angle ) ) + else: + img = np.zeros( (height, width) ) if img is None else img + + if angle == 45: + cv2.line( img, (0, height-1), (width-1, 0), 255, thickness ) + elif angle == 135: + cv2.line( img, (0, 0), (width-1, height-1), 255, thickness ) + + return img + + +""" @Params: + +* top_left_pt: Top left point tuple of the rectangle to be drawn, e.g. (10, 12) +* bottom_right_pt: Bottom right point tuple of the rectangle to be drawn, e.g. (29, 31) +* thickness: -1 to fill inside the rectangle, otherwise determines the thickness + of the rectangle's outer lines. + +For the rest of the @Params see above. +""" +def draw_a_rectangle( width, height, top_left_pt, bottom_right_pt, thickness=1, img=None ): + img = np.zeros( (height, width) ) if img is None else img + cv2.rectangle( img, top_left_pt, bottom_right_pt, 255, thickness ) # 255 is the colour, default is white obviously + return img + + +""" @Params: + +* center_pt: Center point tuple of the circle to be drawn, e.g. (14, 20) +* radius: Radius of the circle, e.g. 6. + +For the rest of the @Params see function draw_a_rectangle. +""" +def draw_a_circle( width, height, center_pt, radius, thickness=1, img=None ): + img = np.zeros( (height, width) ) if img is None else img + cv2.circle( img, center_pt, radius, 255, thickness ) + return img + + + +if __name__ == '__main__': + # Some usage scenarios + + width = height = 32 + thickness = 3 + # img = draw_a_rectangle( width, height, (10, 12), (29, 31), -1 ) + # img = draw_a_circle( width, height, (14, 20), 6, 2 ) + + img = draw_line_with_angle( width, height, 45, thickness ) + # img = draw_line_with_angle( width, height, 135, thickness, img ) + + # img = draw_horizontal_lines( width, height, thickness ) + # img = draw_horizontal_lines( width, height, 1, 5, 'random' ) + + # img = draw_vertical_lines( width, height, thickness, img=img ) + # img = draw_vertical_lines( width, height, 1, 5, 'random' ) + + imshow_opencv( img ) + # img_name = "new_image_etc.png" + # save_img( img_name, img ) diff --git a/focal/__init__.py b/focal/__init__.py deleted file mode 100644 index 1fcaea8..0000000 --- a/focal/__init__.py +++ /dev/null @@ -1,199 +0,0 @@ -from focal import * -from convolution import * -from correlation import * -from dog import * - -import pylab as plt - -idx_to_name = ["midget_off", "midget_on", "parasol_off", "parasol_on"] - - -def rgb2gray(rgb): - '''Convert an RGB array into grayscale - ''' - #return numpy.int16(numpy.dot(rgb[:,:,:3], [0.299, 0.587, 0.144])) - #return numpy.floor(numpy.dot(rgb[:,:,:3], [0.299, 0.587, 0.144])) - return rgb[:,:,0]*0.299 + rgb[:,:,1]*0.587 + rgb[:,:,2]*0.144 - - -def idx2coord(idx, width): - '''Convert a 1D index into a 2D coordinate''' - return (int(idx/width), idx%width) - - -def spike_trains_to_images_g(spike_trains, base_img, num_kernels=4): - '''Transform a FoCal spike set into images - :param spike_trains: Focal encoded image - :param base_img: Original image, used to get the shape - :num_kernels: How many of the representations to convert - ''' - imgs ={} - for cell_type in range(num_kernels): - imgs[cell_type] = numpy.zeros_like(base_img, dtype=numpy.float32) - - - for idx, val, cell_type in spike_trains: - adjusted_idx = idx - coords = idx2coord(adjusted_idx, base_img.shape[1]) - imgs[cell_type][coords] = val - if val == numpy.nan: - print "spike is nan" - if val == numpy.inf: - print "spike is inf" - if val == -numpy.inf: - print "spike is -inf" - - return imgs - - -def plot_images(images, original_img=None, use_abs_vals=False): - '''Create a figure with: - - If images is a dictionary: all images in it - - If original_img is not None: Two pictures (original and images) - - Finally just plot one image (images) - ''' - plt.close("all") - if type(images) == dict: - #num_kernels = numpy.int(numpy.sqrt(len(images.keys()))) - num_kernels = len(images.keys()) - fig = plt.figure()#figsize=(num_kernels, 2), dpi=300) - fig.clear() - ax= plt.subplot(2, num_kernels + 1, 1) - ax.imshow(original_img, cmap=plt.cm.Greys_r) - ax.get_axes().axis('off') - - for cell_type in images: - idx = cell_type - slot = 2 + cell_type - slot += 1 if cell_type >= num_kernels else 0 - ax= plt.subplot(2, num_kernels + 1, slot) - if use_abs_vals: - img = numpy.abs(images[idx].copy()) - else: - img = images[idx].copy() - ax.imshow(img, cmap=plt.cm.Greys_r) - ax.get_axes().axis('off') - elif original_img is not None: - fig = plt.figure()#figsize=(4, 2), dpi=300) - fig.clear() - ax= plt.subplot(1, 2, 1) - ax.imshow(original_img, cmap=plt.cm.Greys_r) - ax.get_axes().axis('off') - - ax= plt.subplot(1, 2, 2) - ax.imshow(images, cmap=plt.cm.Greys_r) - ax.get_axes().axis('off') - else: - fig = plt.figure()#figsize=(4, 2), dpi=300) - fig.clear() - plt.imshow(images, cmap=plt.cm.Greys_r) - plt.axis('off') - - # thismanager = plt.get_current_fig_manager() - # thismanager.window.SetPosition((1920, 0)) - # thismanager.window.wm_geometry("+1921+0") - plt.show() - plt.close("all") - - -def save_images(images, prefix, cmap=plt.cm.Greys_r, title_source=idx_to_name): #plt.cm.Paired - '''Save figures with filename = prefix-cell_type if images is a dictionary - filename = prefix otherwise - ''' - if type(images) == dict: - num_kernels = len(images.keys()) - - for cell_type in images: - - img = images[cell_type] - img_min = numpy.min(img) - img_max = numpy.max(img) - negatives = numpy.sum(img<0) - positives = numpy.sum(img>0) - - # define the colormap - - fig = plt.figure(figsize=(3,3), dpi=300) - - fig.clear() - - - im = plt.imshow(img, interpolation='none', cmap=cmap) - plt.tight_layout() - plt.colorbar(im, use_gridspec=True) - plt.title("%s \n min = %10.4f, max = %10.4f\n num pos = %s, num neg = %s"%\ - (title_source[cell_type], img_min, img_max, positives, negatives)) - - plt.axis('off') - plt.savefig("%s-%s"%(prefix, cell_type), dpi=300) - else: - fig = plt.figure(figsize=(3,3), dpi=300) - fig.clear() - plt.imshow(images, cmap=plt.cm.Greys_r) - plt.axis('off') - plt.savefig(prefix, dpi=300) - - plt.close("all") - - -def count_non_zero(img_set): - '''Count non-zero pixels in an image set - ''' - non_zero = 0 - for i in img_set: - non_zero += numpy.sum(img_set[i] != 0) - return non_zero - - -def focal_to_spike(spikes, img_shape, spikes_per_time_block=10, start_time=0., time_step=1.): - '''Convert FoCal-coded spikes into a SpikeSourceArray - :param spikes: FoCal, rank order-coded spikes - :param img_shape: (Height, Width) of image - :param spikes_per_time_block: How many spikes will go into each time bin - :param start_time: When did the spikes start appearing (milliseconds) - :param time_step: How much time between time bins - ''' - neurons_per_layer = img_shape[0]*img_shape[1] - width = img_shape[1] - height = img_shape[0] - total_width = 2*width - total_height = 2*height - spike_array = [[] for i in range(total_height*total_width)] - pack_time = start_time - spikes_per_block_count = 0 - for spike in spikes: - layer = spike[2] - pad_x = width if layer == 1 or layer == 3 else 0 - pad_y = height if layer == 2 or layer == 3 else 0 - - loc_idx = spike[0] - loc_x = loc_idx%width - loc_y = loc_idx/width - glb_x = pad_x + loc_x - glb_y = pad_y + loc_y - glb_idx = glb_y*total_width + glb_x - - spike_array[glb_idx].append(pack_time) - - spikes_per_block_count += 1 - if spikes_per_block_count == spikes_per_time_block: - spikes_per_block_count = 0 - pack_time += time_step - - return spike_array - - -def raster_plot_spike(spikes, marker='|', markersize=2): - '''Plot PyNN SpikeSourceArrays - :param spikes: The array containing spikes - ''' - x = [] - y = [] - - for neuron_id in range(len(spikes)): - for t in spikes[neuron_id]: - x.append(t) - y.append(neuron_id) - - plt.plot(x, y, marker, markersize=markersize) - diff --git a/focal/convolution.py b/focal/convolution.py deleted file mode 100644 index 3144fbe..0000000 --- a/focal/convolution.py +++ /dev/null @@ -1,148 +0,0 @@ -import numpy -from scipy.signal import sepfir2d - -class Convolution(): - ''' - Utility class to wrap around different functions for convolution - (i.e. separable convolution) - ''' - def __init__(self): - pass - - def sep_convolution(self, img, horz_k, vert_k, col_keep=1, row_keep=1, mode="full"): - ''' Separated convolution - - img => image to convolve - horiz_k => first convolution kernel vector (horizontal) - vert_k => second convolution kernel vector (horizontal) - col_keep => which columns are we supposed to calculate - row_keep => which rows are we supposed to calculate - mode => if "full": convolve all the image otherwise just valid pixels - ''' - width = img.shape[1] - height = img.shape[0] - half_k_width = horz_k.size/2 - half_img_width = width/2 - half_img_height = height/2 - - tmp = numpy.zeros_like(img, dtype=numpy.float32) - - if mode == "full": - horizontal_range = xrange(width) - vertical_range = xrange(height) - else: - horizontal_range = xrange(half_k_width, width - half_k_width + 1) - vertical_range = xrange(half_k_width, height - half_k_width + 1) - - for y in xrange(height): - for x in horizontal_range: - if (x - half_img_width)%col_keep != 0: - continue - - k_sum = 0. - k = 0 - - for i in xrange(-half_k_width, half_k_width + 1): - img_idx = x + i - if img_idx >= 0 and img_idx < img.shape[1]: - k_sum += img[y,img_idx]*horz_k[k] - k += 1 - - tmp[y,x] = k_sum - - tmp2 = numpy.zeros_like(img, dtype=numpy.float32) - for y in vertical_range: - if (y - half_img_height)%row_keep != 0: - continue - - for x in horizontal_range: - if (x - half_img_width)%col_keep != 0: - continue - - k_sum = 0. - k = 0 - for i in xrange(-half_k_width, half_k_width + 1): - img_idx = y + i - if img_idx >= 0 and img_idx < img.shape[0]: - k_sum += tmp[img_idx, x]*vert_k[k] - - k += 1 - - tmp2[y,x] = k_sum - - return tmp2 - - - def dog_sep_convolution(self, img, k, cell_type, originating_function="filter", - force_homebrew = False, mode="full"): - ''' Wrapper for separated convolution for DoG kernels in FoCal, - enables use of NumPy based sepfir2d. - - img => the image to convolve - k => 1D kernels to use - cell_type => ganglion cell type, useful for sampling - resolution numbers - originating_function => if "filter": use special sampling resolution, - else: use every pixel - force_hombrew => if True: use my code, else: NumPy's - mode => "full" all image convolution, else only valid - ''' - - if originating_function == "filter": - row_keep, col_keep = self.get_subsample_keepers(cell_type) - else: - row_keep, col_keep = 1, 1 - - if not force_homebrew: - # has a problem with images smaller than kernel - right_img = sepfir2d(img.copy(), k[0], k[1]) - left_img = sepfir2d(img.copy(), k[2], k[3]) - else: - right_img = self.sep_convolution(img, k[0], k[1], col_keep=col_keep, - row_keep=row_keep, mode=mode) - left_img = self.sep_convolution(img, k[2], k[3], col_keep=col_keep, - row_keep=row_keep, mode=mode ) - - conv_img = left_img + right_img - - if not force_homebrew and originating_function == "filter": - conv_img = self.subsample(conv_img, cell_type) - - return conv_img - - - def get_subsample_keepers(self, cell_type): - ''' return which (modulo) columns and rows to keep for cell_type - ''' - if cell_type > 1: - #~ col_keep = 7 - #~ row_keep = 7 - col_keep = 5 - row_keep = 3 - else: - col_keep = 1 - row_keep = 1 - - return row_keep, col_keep - - - def subsample(self, img, cell_type): - ''' remove unwanted rows/columns ''' - row_keep, col_keep = self.get_subsample_keepers(cell_type) - - if col_keep < img.shape[1] and row_keep < img.shape[0]: - width = img.shape[1] - height = img.shape[0] - half_img_width = width/2 - half_img_height = height/2 - - col_range = numpy.arange(width) - row_range = numpy.arange(height) - - img[:, [x for x in col_range if (x - half_img_width)%(col_keep)!= 0]] = 0 - img[[x for x in row_range if (x - half_img_height)%(row_keep)!= 0], :] = 0 - #~ img[:, [x for x in col_range if (x)%(col_keep)!= 0]] = 0 - #~ img[[x for x in row_range if (x)%(row_keep)!= 0], :] = 0 - else: - img[:,:] = 0 - - return img diff --git a/focal/correlation.py b/focal/correlation.py deleted file mode 100644 index da9834a..0000000 --- a/focal/correlation.py +++ /dev/null @@ -1,73 +0,0 @@ -from scipy.signal import sepfir2d, convolve2d -import numpy -import pickle -from os import listdir -from os.path import isfile, join -import sys -import md5 - -class Correlation(): - ''' - Class to compute the correlations between Difference of Gaussian - kernels. - ''' - - def __init__(self, full_kernels): - ''' :params: full_kernels - Dictionary that contains 2D DoG kernels - for each simulated (ganglion cell) layer - ''' - - self.full_kernels = full_kernels - self.data = self.create_all_correlations() - - - def kernels_to_string(self, kernels): - '''helper for hashing''' - - my_string = "" - for k in kernels: - my_string = "%s%s"%(my_string, kernels[k]) - return my_string - - - def create_all_correlations(self): - - mode = "full" #same, full, valid - seed = self.kernels_to_string(self.full_kernels) - seed += mode - - filename = "correlation-cache-%s.p"%( md5.new(seed).hexdigest() ) - - if isfile(filename): - correlations = pickle.load( open( filename, "rb" ) ) - print("Loaded correlations from file") - return correlations - - correlations = {} - - num_kernels = len(self.full_kernels.keys()) - - for cell_type in range(num_kernels): - correlations[cell_type] = {} - for overlap_cell_type in range(num_kernels): - percent = ((cell_type*num_kernels+overlap_cell_type)*100. + 1.)/float(num_kernels**2) - sys.stdout.write("\rCorrelations cell(%s, %s) %03d%%"%(cell_type, overlap_cell_type, percent)) - sys.stdout.flush() - - # using the correlate2d method threw different matrices than - # the ones Basab gets - correlation = convolve2d(self.full_kernels[cell_type], - self.full_kernels[overlap_cell_type], - boundary='fill', fillvalue=0, mode=mode) - - correlations[cell_type][overlap_cell_type] = correlation - - pickle.dump( correlations, open( filename, "wb" ) ) - - print("All correlations calculated\n") - - return correlations - - - def __getitem__(self, index): - return self.data[index] diff --git a/focal/dog.py b/focal/dog.py deleted file mode 100644 index ae00f6e..0000000 --- a/focal/dog.py +++ /dev/null @@ -1,174 +0,0 @@ -import numpy - -MIDGET_OFF, MIDGET_ON, PARASOL_OFF, PARASOL_ON = range(4) - -KERNEL_TYPES = [MIDGET_OFF, MIDGET_ON, PARASOL_OFF, PARASOL_ON] - -KERNEL_STR = {"midget_off": MIDGET_OFF, MIDGET_OFF: "midget_off", - "midget_on": MIDGET_ON, MIDGET_ON: "midget_on", - "parasol_off": PARASOL_OFF, PARASOL_OFF: "parasol_off", - "parasol_on": PARASOL_ON, PARASOL_ON: "parasol_on"} - - -class DifferenceOfGaussians(): - '''Difference of Gaussian kernel generator. Developed to implement FoCal - ''' - - def __init__(self): - '''We simulate four layers of Ganglion cells, so we create their - kernels here - ''' - self.max_num_kernels = 4 - self.kernels = None - self.full_kernels = None - self.kernels, self.full_kernels = self.create_all_kernels() - - - def __getitem__(self, index): - '''utility to access the kernels variable directly''' - return self.kernels[index] - - - @staticmethod - def kernel_width(self, cell_type): - '''Get the kernel width for a particular layer - :param cell_type: Index for the cell type in a layer [0 -> 3] - :returns: Width for the layer's kernel - ''' - is_off_centre, width, sigma, sigma_mult = self.get_params(cell_type) - return width - - - def create_single_kernel(self, cell_type): - '''Generate separable and 2D kernels for a particula layer - :param cell_type: Index for the cell type in a layer [0 -> 3] - :returns: Separable kernels (two 1D kernel pairs are needed) and - 2D kernel - - ''' - is_off_centre, width, sigma, sigma_mult = self.get_params(cell_type) - - kernels = self.diff_of_gauss(is_off_centre, width, sigma, sigma_mult) - - gauss1 = numpy.outer(kernels[0], kernels[1]) - gauss2 = numpy.outer(kernels[2], kernels[3]) - full_kernel = gauss1 + gauss2 - - return kernels, full_kernel - - - def create_all_kernels(self): - '''Generate separable and 2D kernels for each layer - :returns: Dictionaries for separable and 2D kernels, indexed by - integers representing each layer [0 -> 3] - ''' - kernels = {} - full_kernels = {} - - for cell_type in range(self.max_num_kernels): - kernels[cell_type], full_kernels[cell_type] = self.create_single_kernel(cell_type) - - return kernels, full_kernels - - - def diff_of_gauss(self, is_off_centre, width, sigma, sigma_mult): - '''Compute separated kernels for Difference of Gaussians 2D kernels - :param is_off_centre: Whether the simulated ganglion cell has an - OFF-centre (True) or ON-centre (False) behaviour - :param width: Width of the kernel - :param sigma: `Width` of centre Gaussian - :param sigma_mult: `Width` of surround Gaussian = sigma*sigma_mult - :returns: Separated kernels for centre (vertical_c, horizontal_c) - and surround (vertical_s, horizontal_s) components of the - difference of Gaussians - ''' - half_width = width/2 - x, y = numpy.meshgrid(numpy.arange(-half_width, half_width + 1), - numpy.arange(-half_width, half_width + 1)) - y = -y - - coord_range = numpy.arange(-half_width, half_width + 1) - - sigma_c = sigma - sigma_s = sigma_mult*sigma_c - sigma_c2 = (sigma_c**2) - sigma_s2 = (sigma_s**2) - x2_plus_y2 = x**2 + y**2 - - #get signs for selected centre-surround behaviour - sign_sigma_c, sign_sigma_s = (-1., 1.) if is_off_centre == True else (1., -1.) - - #calculate 2D centre kernel, just to get normalizing weight - kernel_c = sign_sigma_c*(1./(2.*numpy.pi*sigma_c2))*numpy.exp((-x2_plus_y2)/(2.*sigma_c2)) - mat_norm_weight = 1./numpy.sum(numpy.abs(kernel_c)) - #normalize it to sum to 1 - kernel_c *= mat_norm_weight - - #calculate 1D centre kernels and normalize them - vec_norm_weight = sign_sigma_c*numpy.sqrt(mat_norm_weight)*numpy.sqrt(1./(2.*numpy.pi*sigma_c2)) - vertical_c = (numpy.exp((-coord_range**2)/(2.*sigma_c2))*vec_norm_weight).astype(numpy.float32) - horizontal_c = (sign_sigma_c*vertical_c).astype(numpy.float32) - - #calculate 2D surround kernel, just to get normalizing weight - kernel_s = sign_sigma_s*(1./(2.*numpy.pi*sigma_s2))*numpy.exp((-x2_plus_y2)/(2.*sigma_s2)) - mat_norm_weight = 1./numpy.sum(numpy.abs(kernel_s)) - #normalize it to sum to 1 - kernel_s *= mat_norm_weight - - #calculate 1D surround kernels and normalize them - vec_norm_weight = sign_sigma_s*numpy.sqrt(mat_norm_weight)*numpy.sqrt(1./(2.*numpy.pi*sigma_s2)) - vertical_s = (numpy.exp((-coord_range**2)/(2.*sigma_s2))*vec_norm_weight).astype(numpy.float32) - horizontal_s = (sign_sigma_s*vertical_s).astype(numpy.float32) - - #calculate difference of gaussians (sums to 0) - kernel = kernel_s - kernel += kernel_c - - #get auto-convolution to 1 normalization - final_weight = 1.0/numpy.sqrt(numpy.sqrt(numpy.sum(kernel*kernel))) - kernel /= numpy.sqrt(numpy.sum(kernel*kernel)) - - vertical_c *= final_weight - horizontal_c *= final_weight - vertical_s *= final_weight - horizontal_s *= final_weight - - return vertical_c, horizontal_c, vertical_s, horizontal_s - - - def get_params(self, cell_centre_type): - '''PARAMETERS FROM: - Filter Overlap Correction ALgorithm, simulates the foveal pit - region of the human retina. - Created by Basabdatta Sen Bhattacharya. - See DOI: 10.1109/TNN.2010.2048339 - ''' - - if cell_centre_type == MIDGET_OFF: - off_centre = True - #width = 5 - width = 3 - sigma = 0.8 - #sigma_mult = 6.5 - sigma_mult = 6.7 - elif cell_centre_type == MIDGET_ON: - off_centre = False - width = 11 - sigma = 1.04 - #sigma_mult = 6.5 - sigma_mult = 6.7 - elif cell_centre_type == PARASOL_OFF: - off_centre = True - width = 61 - sigma = 8 - sigma_mult = 4.8 - elif cell_centre_type == PARASOL_ON: - off_centre = False - width = 243 - sigma = 10.4 - sigma_mult = 4.8 - - return off_centre, width, sigma, sigma_mult - - - diff --git a/focal/focal.py b/focal/focal.py deleted file mode 100644 index 409ad75..0000000 --- a/focal/focal.py +++ /dev/null @@ -1,279 +0,0 @@ -# coding: utf-8 - -import numpy -from scipy.signal import sepfir2d, convolve2d -from scipy.misc import imresize -import matplotlib.image as mpimg -from matplotlib import cm -import matplotlib.animation as animation -import matplotlib.pyplot as plt -from matplotlib.colors import BoundaryNorm -import pickle -from os import listdir -from os.path import isfile, join -import sys -import md5 - -from dog import DifferenceOfGaussians -from convolution import Convolution -from correlation import Correlation - -from __init__ import idx2coord - -class Focal(): - '''Filter Overlap Correction ALgorithm, simulates the foveal pit - region of the human retina. - Created by Basabdatta Sen Bhattacharya. - See DOI: 10.1109/TNN.2010.2048339 - ''' - - def __init__(self): - '''Get the four layer's kernels, create the correlations and - a convolution wrapper. - :const MIN_IMG_WIDTH: Minimum image width for which to use - NumPy/SciPy for convolution - ''' - self.kernels = DifferenceOfGaussians() - self.correlations = Correlation(self.kernels.full_kernels) - self.convolver = Convolution() - self.MIN_IMG_WIDTH = 256 - - def apply(self, image, spikes_per_unit=0.3): - '''Wrapper function to convert an image into a FoCal representation - :param image: The image to convert - :param spikes_per_unit: How many spikes to return, specified in per-unit - (i.e. multiply by 100 to get percentage) - ''' - spike_images = self.filter_image(image) - focal_spikes = self.focal(spike_images, spikes_per_unit=spikes_per_unit) - return focal_spikes - - - def focal(self, spike_images, spikes_per_unit=0.3): - '''Filter Overlap Correction ALgorithm, simulates the foveal pit - region of the human retina. - Created by Basabdatta Sen Bhattacharya. - See DOI: 10.1109/TNN.2010.2048339 - - spike_images => A list of the values generated by the convolution - procedure, stored as four 2D arrays, each with - the same size/shape of the original image. - spikes_per_unit => Percentage of the total spikes to be processed, - specified in a per unit [0, 1] range. - - returns: an ordered list of - [spike index, sorting value, cell layer/type] tuples. - ''' - ordered_spikes = [] - - img_size = spike_images[0].size - img_shape = spike_images[0].shape - height, width = img_shape - num_images = len(spike_images) - - #how many non-zero spikes are in the images - max_cycles = 0 - for i in range(num_images): - max_cycles += numpy.sum(spike_images[i] != 0) - - total_spikes = max_cycles.copy() - - #reduce to desired number - max_cycles = numpy.int(spikes_per_unit*max_cycles) - - #copy images from list to a large image to make it a single search space - big_shape = (height*2, width*2) - big_image = numpy.zeros(big_shape) - big_coords = [(0, 0), (0, width), (height, 0), (height, width)] - for cell_type in range(num_images): - row, col = big_coords[cell_type] - tmp_img = spike_images[cell_type].copy() - tmp_img[numpy.where(tmp_img == 0)] = -numpy.inf - big_image[row:row+height, col:col+width] = tmp_img - - # Main FoCal loop - for count in xrange(max_cycles): - - # print out completion percentage - percent = (count*100.)/float(total_spikes-1) - sys.stdout.write("\rFocal %d%%"%(percent)) - - # Get maximum value's index, - max_idx = numpy.argmax(big_image) - # its coordinates - max_coords = numpy.unravel_index(max_idx, big_shape) - # and the value - max_val = big_image[max_coords] - - if max_val == numpy.inf or max_val == -numpy.inf or max_val == numpy.nan: - sys.stderr.write("\nWrong max value in FoCal!") - break - - # translate coordinates from the big image's to a single image coordinates - if max_coords[0] < height and max_coords[1] < width: - single_coords = max_coords - else: - single_coords = self.global_to_single_coords(max_coords, img_shape) - - # calculate a local index, to store per ganglion cell layer info - local_idx = single_coords[0]*width + single_coords[1] - # calculate the type of cell from the index - cell_type = self.cell_type_from_global_coords(max_coords, img_shape) - - # append max spike info to return list - ordered_spikes.append([local_idx, max_val, cell_type]) - - # correct surrounding pixels for overlapping kernel influence - for overlap_cell_type in range(len(spike_images)): - # get equivalent coordinates for each layer - overlap_idx = self.local_coords_to_global_idx(single_coords, - overlap_cell_type, - img_shape, big_shape) - - is_max_val_layer = overlap_cell_type == cell_type - # c_i = c_i - c_{max} - self.adjust_with_correlation(big_image, - self.correlations[cell_type]\ - [overlap_cell_type], - overlap_idx, max_val, - is_max_val_layer=is_max_val_layer) - - - return ordered_spikes - - - def filter_image(self, img, force_homebrew=False): - '''Perform convolution with calculated kernels - img => the image to convolve - force_hombrew => if True: use my separated convolution code - else: use SciPy sepfir2d - ''' - num_kernels = len(self.kernels.full_kernels) - img_width, img_height = img.shape - convolved_img = {} - - for cell_type in range(num_kernels): - if img_width < self.MIN_IMG_WIDTH or img_height < self.MIN_IMG_WIDTH: - force_homebrew = True - else: - force_homebrew = False - - c = self.convolver.dog_sep_convolution(img, self.kernels[cell_type], - cell_type, - originating_function="filter", - force_homebrew=force_homebrew) - convolved_img[cell_type] = c - - return convolved_img - - - def adjust_with_correlation(self, img, correlation, max_idx, max_val, - is_max_val_layer=True): - '''Modify surrounding pixels by the correlation of kernels. - Example: - If max_val is in layer 1, we overlap all layers and then multiply - surrounding pixels by the correlation between layer 1 and layerX (1,2,3, or 4). - :param img: An image representing the spikes generated by the previous step - or simulation of a ganglion cell layer - :param max_idx: index of the pixel/neuron that has the maximum value from - the previous step or simulation - :param max_val: value of the max pixel/neuron - :param is_max_val_layer: Required to mark max_idx as visited - - :returns: img with the proper adjustment - ''' - - img_height, img_width = img.shape - correlation_width = correlation.shape[0] - half_correlation_width = correlation_width/2 - half_img_width = img_width/2 - half_img_height = img_height/2 - - # Get max value's coordinates - row, col = idx2coord(max_idx, img_width) - row_idx = row/half_img_height - col_idx = col/half_img_width - - # Calculate the zone to affect with the correlation - up_lim = (row_idx)*half_img_height - left_lim = (col_idx)*half_img_width - - down_lim = (row_idx + 1)*half_img_height - right_lim = (col_idx + 1)*half_img_width - - max_img_row = numpy.min([down_lim - 1, row + half_correlation_width + 1]) - max_img_col = numpy.min([right_lim - 1, col + half_correlation_width + 1]) - min_img_row = numpy.max([up_lim, row - half_correlation_width]) - min_img_col = numpy.max([left_lim, col - half_correlation_width]) - - max_img_row_diff = max_img_row - row - max_img_col_diff = max_img_col - col - min_img_row_diff = row - min_img_row - min_img_col_diff = col - min_img_col - - min_knl_row = half_correlation_width - min_img_row_diff - min_knl_col = half_correlation_width - min_img_col_diff - max_knl_row = half_correlation_width + max_img_row_diff - max_knl_col = half_correlation_width + max_img_col_diff - - # c_i = c_i - c_{max} - img[min_img_row:max_img_row, min_img_col:max_img_col] -= \ - max_val*correlation[min_knl_row:max_knl_row, min_knl_col:max_knl_col] - - # mark any weird pixels as -inf so they don't matter in the search - inf_indices = numpy.where(img[min_img_row:max_img_row, min_img_col:max_img_col] == numpy.inf) - img[inf_indices] = 0 - img[inf_indices] -= numpy.inf - - nan_indices = numpy.where(img[min_img_row:max_img_row, min_img_col:max_img_col] == numpy.nan) - img[nan_indices] = 0 - img[nan_indices] -= numpy.inf - - # mark max value's coordinate to -inf to get it out of the search - if is_max_val_layer: - img[row, col] -= numpy.inf - - # No need to return, variables are passed as reference because we're doing = and -= ops - - - def local_coords_to_global_idx(self, coords, cell_type, - local_img_shape, global_img_shape): - '''Utility to transform from local (width*height) coordinates to - global (2*width, 2*height) coords. --------- - Layers are represented in the global image as: [ 0 | 1 ] - ------- - [ 2 | 3 ] - --------- - ''' - row_add = cell_type/2 - col_add = cell_type%2 - global_coords = (coords[0] + row_add*local_img_shape[0], - coords[1] + col_add*local_img_shape[1]) - global_idx = global_coords[0]*global_img_shape[1] + global_coords[1] - return global_idx - - - def global_to_single_coords(self, coords, single_shape): - '''Utility to transform from global (2*width, 2*height) coordinates to - local (width*height) coords . --------- - Layers are represented in the global image as: [ 0 | 1 ] - ------- - [ 2 | 3 ] - --------- - ''' - row_count = coords[0]/single_shape[0] - col_count = coords[1]/single_shape[1] - new_row = coords[0] - single_shape[0]*row_count - new_col = coords[1] - single_shape[1]*col_count - - return (new_row, new_col) - - - def cell_type_from_global_coords(self, coords, single_shape): - '''Utility to compute which layer does a coordinate belong to''' - row_type = coords[0]/single_shape[0] - col_type = coords[1]/single_shape[1] - cell_type = row_type*2 + col_type - - return cell_type - diff --git a/images/cross.png b/images/cross.png new file mode 100644 index 0000000..2ec1c7e Binary files /dev/null and b/images/cross.png differ diff --git a/images/horizontal_line_10x.png b/images/horizontal_line_10x.png new file mode 100644 index 0000000..f16bbeb Binary files /dev/null and b/images/horizontal_line_10x.png differ diff --git a/images/horizontal_lines.png b/images/horizontal_lines.png new file mode 100644 index 0000000..a4164ed Binary files /dev/null and b/images/horizontal_lines.png differ diff --git a/images/pumpkins.jpeg b/images/pumpkins.jpeg new file mode 100644 index 0000000..c7d0f53 Binary files /dev/null and b/images/pumpkins.jpeg differ diff --git a/images/pumpkins_gray.jpeg b/images/pumpkins_gray.jpeg new file mode 100644 index 0000000..c006afb Binary files /dev/null and b/images/pumpkins_gray.jpeg differ diff --git a/images/spikes_plot_pumpkins.png b/images/spikes_plot_pumpkins.png new file mode 100644 index 0000000..90a25e8 Binary files /dev/null and b/images/spikes_plot_pumpkins.png differ diff --git a/t10k-images-idx3-ubyte__idx_000__lbl_7_.png b/images/t10k-images-idx3-ubyte__idx_000__lbl_7_.png similarity index 100% rename from t10k-images-idx3-ubyte__idx_000__lbl_7_.png rename to images/t10k-images-idx3-ubyte__idx_000__lbl_7_.png diff --git a/poisson/__init__.py b/poisson/__init__.py deleted file mode 100644 index 73be3b9..0000000 --- a/poisson/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -'''Poisson tools init file: - Just import all functions :O -''' -from poisson_tools import * diff --git a/poisson/poisson_demo.ipynb b/poisson/poisson_demo.ipynb deleted file mode 100644 index 83200a0..0000000 --- a/poisson/poisson_demo.ipynb +++ /dev/null @@ -1,2463 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "import math\n", - "import random\n", - "import sys\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import os\n", - "#import pyNN.spiNNaker as p\n", - "import pyNN.nest as p #tested on pynn0.75, nest2.2\n", - "import poisson_tools as pstool" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#An example of STDP learned weights for a digit from MNIST" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##Poissonian Presentation of the digit" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Loading MNIST dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [], - "source": [ - "train_x,train_y = pstool.get_train_data()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Plot a digit" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "image/png": [ - "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\n", - "SmV/+f8A7FAcG17oMgAAAABJRU5ErkJggg==\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pstool.plot_digit(train_x[21])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###Generating Poisson spike trains" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "mnist_poisson_gen:\n", - "create spike_source_array for pyNN, digit array will be transfered to poissonian trains with a duration time and a silence between the digits.\n", - "ruturn python list can be directly use for pyNN.SpikeSourceArray." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "random.seed(10)\n", - "image_size = 28\n", - "max_rate = 2000.\n", - "duration = 100000 #ms, 100s\n", - "silence = 100 #ms\n", - "aer_file = 'test.aedat'\n", - "jaer_size = 128\n", - "spike_source_data = pstool.mnist_poisson_gen(train_x[21:22], image_size, image_size, max_rate, duration, silence)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "spike_to_aerfile and aerfile_to_spike functions convert spike_source_array to and from jAER file." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "time_stamp, neuron_id, pol = pstool.spike_to_aerfile(spike_source_data, spike_source_data, aer_file, image_size, jaer_size)\n", - "spike_source_array_on, spike_source_array_off = pstool.aerfile_to_spike('test.aedat', 28, 128) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###setup parameters for pyNN simulation" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "teach_rate = 50.\n", - "cell_params_lif = {'cm': 0.25,\n", - " 'i_offset': 0.0,\n", - " 'tau_m': 20.0,\n", - " 'tau_refrac': 2.0,\n", - " 'tau_syn_E': 1.0,\n", - " 'tau_syn_I': 1.0,\n", - " 'v_reset': -70.0,\n", - " 'v_rest': -65.0,\n", - " 'v_thresh': -50.0\n", - " }\n", - "p.setup(timestep=1.0, min_delay=1.0, max_delay=3.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###SNN Populations: poisson -> input -> output <- teach" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "pop_poisson = p.Population(image_size*image_size, p.SpikeSourceArray,{'spike_times' : []})\n", - "for j in range(image_size*image_size):\n", - " pop_poisson[j].spike_times = spike_source_array_on[j]\n", - "pop_input = p.Population(image_size*image_size, p.IF_curr_exp, cell_params_lif)\n", - "pop_output = p.Population(1, p.IF_curr_exp, cell_params_lif)\n", - "pop_teach = p.Population(1,p.SpikeSourcePoisson,{'rate' : teach_rate,\n", - " 'start' : 0,\n", - " 'duration' :duration})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###SNN Projections: \n", - "1. poisson->input\n", - "2. teach->output\\n\n", - "3. input--->output: STDP\\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "ee_connector = p.OneToOneConnector(weights=3.0)\n", - "p.Projection(pop_poisson, pop_input, ee_connector, target='excitatory')\n", - "p.Projection(pop_teach, pop_output, ee_connector, target='excitatory')\n", - "weight_max = 1.3\n", - "stdp_model = p.STDPMechanism(\n", - " timing_dependence=p.SpikePairRule(tau_plus=10.0, tau_minus=10.0),\n", - " weight_dependence=p.MultiplicativeWeightDependence(w_min=0.0, w_max=weight_max, A_plus=0.01, A_minus=0.01)\n", - ")\n", - "proj_stdp = p.Projection(\n", - " pop_input, pop_output, p.AllToAllConnector(weights = 0.0),\n", - " synapse_dynamics=p.SynapseDynamics(slow=stdp_model)\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Run simulation" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "100101.0" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pop_poisson.record()\n", - "p.run(duration+silence)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "plot trained weights and recorded poission spikes" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "image/png": [ - "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\n", - "AAAASUVORK5CYII=\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": [ - "iVBORw0KGgoAAAANSUhEUgAAA4oAAAFRCAYAAAAy61M9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", - "AAALEgAACxIB0t1+/AAAIABJREFUeJzsvX+wbF1aFvb0vXfG1OV+V0TNDMOggGiskYtiJVy+76sU\n", - "A+KIFVCrEtDyD4kmxBQm/hEqDCQp/LBCCiZQkqKKFDGpFBokEoNRU4ECUplonXM4mMiPg8MHjMWI\n", - "MzIDwsTTh1Mhnu6dP/Z+dz/r2e9a+0fv3af73vep6nO6917rXe/vtXb33u8CAoFAIBAIBAKBQCAQ\n", - "CAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAI\n", - "BAKBQCAQCAQCgUAgEAgEAoFAIBAIBAIvID4E4A/cNxOBQCAQCCge3DcDgUAgEAhMwIcA3AJYA/go\n", - "gL8K4OkMdLcAPmMGOkrzBjWvHwbwrdjNv1Xz6sO7AfyTmfkKBAKBQCCLuFAMBAKBwCmiAvAlAF4B\n", - "8HsBPAPwn81EezWx36PCuc9GzesfAPAnAXzlxDECgUAgEDgI4kIxEAgEAqeOjwH4QQC/h459LYAP\n", - "ArgG8A8B/DE695kA/k8A/w+AXwbwPc3xv9v8/wnUv/59WfP5SwD8OICPAzhDfVFq+BCArwHwk02f\n", - "vnn1ZwD8PeHV8BsAfBuAjzSvvwTgrQA+AcD3A3hHM8Y1gLf3jBMIBAKBQCAQCAQCLx1+Hrtn+96J\n", - "+kLt6+n8v4XdxdSXo771823N5+8B8HXN+7cCeI366a2nn4P6QvRfQ/1L459qxn5Lc/5DAP4BgE9B\n", - "faHnYQvgdzTv3wXgFwH8aZLjC5v3fxHAOYDf0rzOmmMA8PmIW08DgUAgEAgEAoFAoIgPYffr2hbA\n", - "30T517wfA/ClzfvvAvCdqC/uFHqh+F9jd7FmeBPAv968/3kA/3YPr1sA/xzAr6L+lZPp8YXiBwF8\n", - "MZ17T3MeiGcUA4FAIHBgxK2ngUAgEDhFVAD+KOoCNu9GfbH1r9L5P4X64vDjzeuzUP9KB9S3iq4A\n", - "/CiAn8Lu1z0Pvx3AVxOdj6P+BfMd1GbIBdznAPgk1Le9fn2mzTsA/GP6/AsyTiAQCAQCB0NcKAYC\n", - "gUDg1PF3AXw7gG9uPv92AP8NgD+H+uLsN6G+ILQiNR8D8O+h/kXxzwL4DuQrnf4CgG9saNjrCYC/\n", - "Tm2GVC0dgn8K4NPo829rjs05RiAQCAQCgxAXioFAIBB4EfBtAD4XwHPUxV8qAP8M9Tz3p1H/omj4\n", - "MtS/CgJ1QZsK9e2hQH0R+Tuo7V8G8O83tFcN7X8D9cXi3Pge1JVb7RnFr0e97Yfx9ZsxzxYggUAg\n", - "EAgEAoFAIPBCgp/tM3wHgO9r3v/nAH4FdVXTbwXwfwD4M825b0a9n+Ea9XOB/y7R+LOof8X7OOqC\n", - "OADwh1Dfpvrx5txfR33BmONDsUH+F0vu/xsA/FfNGP8U9cXvW6ntf4f64vdXEVVPA4FAIHDi+FdQ\n", - "PyNir38O4M+jvhXohwD8LOqS5p9Ifb4OwM+hLhbwnkMyGwgEAoFAIBAIBAKBw+IB6pLgnwrgfaiL\n", - "CQDAewF8U/P+Xaj3qnoL6uc0Poi4PTYQCAQCgUAgEAgEXli8B/Umw0D9a6HtZ/X25jNQ/5r4Xurz\n", - "AwA+7yDcBQKBQCAQCAQCgUAAwGF/rfsTqB/UB+qLxI817z+G3UXjO1A/N2L4MPx9rgKBQCAQCAQC\n", - "gUAgsBAOdaH4VtQbHf9PzrkK5bLfURI8EAgEAoFAIBAIBA6IRwca5w8D+L9RV58D6l8R3w7gowA+\n", - "GcAvNcc/gvoZRsM7m2OMDyItXR4IBAKBQCAQCAQCLxP+EYDPvG8m5sD/COAr6PP7sHsW8WvRLWbz\n", - "VgCfjloBK6SIXxgDx4w37puBQCCDN+6bgUAggzfum4FAoIA37puBQCCDxa+JDvGL4icA+CIAX0nH\n", - "vgnA9wL4dwB8CMCXN8c/0Bz/AIA7AF+FuDAMBAKBQCAQCAQCgYPiEBeKvwbgt8ixX0V98ejhv2he\n", - "gUAgEAgEAoFAIBC4B8QehYHAvHj/fTMQCGTw/vtmIBDI4P33zUAgUMD775uBQCAwHHEraiAQCAQC\n", - "gUAgEHiZsfg1UfyiGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGh\n", - "GAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKB\n", - "BHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAI\n", - "BAKBBHGhGAgEAoFAIBAIBAKBBI/um4FpqM6A1ety7BrA4+bDLbB6mrYHun2889Vdc/CSGjxr/l81\n", - "7x+n51ev0/iX/jjJGPr+ecpzdZaOqX2SNleF8Z7vZOE2PCauRAb4umNZc3J12puuMvZI8GzHS0ku\n", - "b8zcseTcMzpwleGXwPpo7U59PZrcdyyfCb3HqL/Euan11ue/fVDf9PyLeWM51M+qbXPyBq1tEzh2\n", - "8/yqPTdAR8wD89YHl47EmtfeGyN3LskXjg933ttn5HNU4ndAEv+KzrmCnrx2Q2Oo0194yPXv2I5j\n", - "Bl0e+nhR38VztLGS+LL5/G1+jJYm+WdvHsmdK9BIdNBj+z70zTMletUZgNcAVMAq8yVxMZ9juD+5\n", - "cxxQ20PyxuopxZEdvwLwavP+ol831TWAJwC2KOom29/JMS1/XowZMjJ7n8diSP9SbizNe0q/b573\n", - "+OK2fbRK5wH4OULWW0V/9+biZ2h9YvXIaa+2exWt/xiviby5tV9mXunkdJGjM7c6eUL90V0Lyvza\n", - "xsJNd55LdJXTDbq67tisYJe+ecJrO3bN5OoOA9Y3pT7Ca2mNncvDY9c67bkm/60eTZ+DlsPqkIPN\n", - "hAqoAGCN2tFVhqo5VjWfLfDtwoj7VM15YBf8r5XHTvrm9Ldu/r/StLtA7XCvSBtb6Dxsjm0y75UH\n", - "gzd+5ZxjXW2aY0pb5cmNX+Kh1GeDrv49ujfY6ekcycVmu3go2cDk04XQtjnGffmc8t2nf/Mxjxd9\n", - "D/psemC8gjzOsZvArN+T5r/5leEx8XyOvC8rf80iu110c/ysMv24r/GvvqXnrf9mNzm1i1ePL4vN\n", - "h5mxbJx1s9i05M127vM7tsdjOs62N16MjxX1U9vxeDeFca2tjmXj3TTvlT6fM56ZL+aB/UHPM25J\n", - "fzxeKZ4NaxmH+7IdlAc+ZtA41HMePTg0c7BcbDnX/GZboGG2v0Ry4ZLkbdUty+DpAYXzarsNdvOX\n", - "0tGxLM8DO33l/MjsZnnS2uXmVPXlivrp8RVSP/X8Q+nn5nGgOy8qvPgBUp/x/J/yRydWrO9W2k6B\n", - "2dh4usQu5/HczLkF8P1G85X5CvOYyytAN4/moPPcBbrzifqQ6kp9m+MZyMdMhp/VA1q8q8x9YF7t\n", - "S84mvtrFOcun/st+xHlK9cTrSb7Y43UL4OcFtq1nH51zNP95vFl8buHPV9ZO/YzXsJaDdA2rsni8\n", - "eD58jjR/Wnv2MVsfm62HrEXVr1l+wF/nWTvOWepbubW+rlHGnGPfL80PJTQ6Wr02sf9gnPKF4sS+\n", - "Jylz4MXEmCQxZDLdB6XEnsM+SW4KIn67i+ZD6j/w4mDpfMI4ZNyeQo44pO4DXeyr/7H9T8EnAyeL\n", - "VftnKZzqM4relaL3TeOhxt6n3ZA+m0ybIe2HjjeE36qhzW2X1vvGGaPEq7ZVfpeA8qjj5cZ/iOOZ\n", - "QOyb7m1fwwZrdH8Z3QeenRn8Dd0YzBmH+2Dd36SIDYDz9DYhAPW3sMeMOXU5NdcMzW38fs48P4Tv\n", - "Cvv7SB/fS+ZqzbP6a3AOc/vHmHjYV99TcduMvY/sh8prOZ8ZS2sqv3PZiMcfe5GovN/icOtND2Pz\n", - "mXdun3WR9ptTF2bzQ/jXnP2VzhJriA29ll7TJjjRZxTbWxCA7n3jdK8430fctr1K2wHY3SZ2he69\n", - "6/K8UGeMwnNPybOAQPqTNt/y56HwzJ73jKF3z3jnNg3neTJD51kSpZPhL3mmytCM197S0dw6mdxu\n", - "yDzrLZXNbRLJ/f532N2KRc+xePekK388Zu+972pvvt3Mu5XEfv5/XfStzxjmbkPh24xI7o6Nma7e\n", - "kmmfrS3dWtfe1nTu3JfvPMvQiRnTJZB9hqt9bvHCOZe5z7/0DG0JHV3acygUS9nnYGg8Q+5ZBI1r\n", - "fYYqsavzbE32OTbmlXMDkD6jrLwx7Jbsoc/alp6P1hgEuvGrzwTqOfY5vk2JZEr04Oktl4v0WTbt\n", - "m3s2yNOP88x0kouc53qyzxvy7fCaY/Vcz3Nvo56hET6zuQ+7Y51YXSG9ZZGfCwSKz1sl9FlOlUOh\n", - "z+Fznu2bsznvOfOS+4yU5k4nhyZ5Frv22WejC8919z27mYsHzcGd581Kc3LmOTblJxmvlFvMHzQ/\n", - "cn7PxZWXizROOHfos92AmzeHztsJLw2tlgfVj9jbe/bQ4D5jm4mzlnbfs4rW3suBzhzV3nau87yh\n", - "4KOl5+xa3gY+62dI1g70TGfCj0HWQsm43NbaXYyMrb58brfc6lpVcl+nP/OWe/baHtXQx4l4Pi3l\n", - "/r7c0vPcdctr6XG5lxYHvZIOBAKBQCAQCAQCgSPD4tdEp3rraSAQCAQCgUAgEAgEFkJcKAYCgUAg\n", - "EAgEAoFAIEFcKAYCgUAgEAgEAoFAIEFcKAYCgUAgEAgEAoFAIEFcKAYCgUAgEAgEAoFAIEFcKAYC\n", - "gUAgEAgEAoFAIMGJ7qMI5PfS2bftlPZAd/+jEi3dZ2rMOH38TeJ9Qp8cDcOQfY/G8DIHj0vSO5Xx\n", - "+/ZVKvbD6eirN0YK+9tl6fXobUhcAt2xp9ArYZ8cACAr51CdzulX7l6DhfZjxxxLf2juHbR/2QA6\n", - "fdh3LtkH+9hiaN+p9phjHiz5yRgcak4bO36xfWZv6BLduWy6L/r2Xuz1qdxaLnOc6Rvua57sw+zr\n", - "qAE6mTrWUvPfoeNxrjzi0TsMVv1Njg5VZtuQCvWGsLbxM1BvhPkAqZxV81mJNG1WK9pIU+kD6Wbn\n", - "QL35tW2gbrTtOJBurm6wTdYfoot18982IBX+Ehpef6Zjm60zX9b3Fl0Ztb+dNz1u0dUnj8PgMZVX\n", - "5YePQ/oBZTk9+jl6Htaodc39PXobep8by9MP9+/Tudee4enZgye38feQPq/ovW34bBty28bprwmN\n", - "kp1zbdiXvPbKK+vfi+EchrblHMA68cYvHcv5sZ73/LgUA0NtPCV/j6Ff8mfAjx31K7Ur+9RUGby+\n", - "Od9EYYwcr0NtM4V/ziOaD1Q/pl/esLyUCz1+1Pcy8dZugt4XPzY/9eUxk4Xnv1wcKD82Duc7jr+p\n", - "fmP5wRuvD02OBJDKzvN1Scd2fIj/MJ83qG3Pehwjv5PnAdQy9OVeYOeD7Bd9+XMozB9snjN729yX\n", - "m+90neWtv3gMo69y2HnTtea7MXrOzT3mx3DOmT1UztK6JxcHvJ4t5Tuzl77nfqYzL7ffIB/7tgYH\n", - "8v6q/Nu4pdjw1i6e35XmgNzaFejPrepDcGgNwZB5RWRbrZq8/BC+X2yA1cMJvIzCi3ShOBfO0T8h\n", - "HwL7LKLmpLEkvUDgZUHETiAQCAQCgRmxav8sOsKJYekLxUAgEAgEAoFAILA8+u6QC2Sx/IViFLMJ\n", - "eIgr8ZcTYffTx7q/SeCAeJliaoN+eSukt98GAkD4BPBy5QrFmIvE8JUD40W9ULQJq0J38uqbqKoB\n", - "7UqLMR1rDT8BeMemLPKYR5OZP2/KPKz0ec0N6vvMxyQt7T9nwivRysmV68v6UZ5L/XSc3Jg539l3\n", - "ccS+vJbP/NpH73ZvvMLGHMOjp3fj8ZyOrzFf0u+zieEcXdvY//UAnqzNObp68fxoQ324/bmMbW1Z\n", - "P8zfGr7vyvirp9Q2Zwvmt5TjhviU8qw5qATTOedrj/6a2itPOd8cEnOevfrs35dvNE/kYoqhMgyd\n", - "o4yW+da+edfk98bos6s9k3hRaIPm/KXQVN/WWGHkYk95GTOX5mSzsfRcyTY2ttfPxvL6ezoectHN\n", - "+YFpeDIV8kar07HzCOeQITlY+TJb3/aMa7w1vHbWLcqT5XkvnnPHkTnWp1PmbUi+HLL2mGPNwO/H\n", - "0lVZ+3Q1lNdNYzsdyxtTxzI93yI/t+naaA1//i3lGBuPx1DaQ2KTx9oH9/7l76lWPW0WJkOq1o2t\n", - "xGUY1P4Z2mIDXPUpW3VrRBW8pSu1sryrzBcGQ6o1LVl9Nun3rPkwshpj0j9TaXJwRcsBleD2RZ+e\n", - "DX0VvbRdqTrZFH7m7J+ruLlPJbl7q7jWo+dBMXWNusDBzTRf28fGUyoGVmeoF299Ni7E8FhUdw0f\n", - "e1bb27dSY5++vLYAOvlmUEVZxkAdDol7bjM0/xhcuWUhOFeVPneOHOBTh67G2dJx5tVDVCVP4tUK\n", - "FF1kfOt613afcb0ckaCnkrJiyJi5dUuOtxztqZWPmV5v1fcJFbO136gYLFTu7fA9cF06dJ5Qvlx9\n", - "nvtt2/aFtdaY6tLZ8fm8zSWPhvvCmLw/lE7fzgmGDv05f5h5YRBKCQQCgUAgEAgEAi8zFr8melFv\n", - "PQ0EAoFAIBAIBAKBwETEhWIgEAgEAoFAIBAIBBLEhWIgEAgEAoFAIBAIBBLEhWIgEAgEAoFAIBAI\n", - "BBIc4kLxEwH8DQA/DeADqKsZfRKAHwLwswB+sGlj+DoAPwfgTQDvOQB/gUAgEAgEAoFAIBA4ML4L\n", - "wJ9p3j8C8BsBvA/A1zTH3gvgm5r37wLw4wDeAuDTAHwQ3YvZqi4jW53tXkBd4ra6a45Vzeu6eW3p\n", - "vbWr5Li1q+h159Cq5Nid9LPP2ww9prOl9sybyVY5L6N7RvzdiQ621NYb/86hq7zlxvV0sxXaes74\n", - "5fPXDk3ll4+bzZVfpkF7liXnWC9Gh223lbY5HeXsWnrxeOyDPMYdtdnC98WcXpSvM5Hf8yfPRqyj\n", - "uwwP3mejvxXa9pnlNx41Fq8dmqq3s91/QORhvjg3lHjP6ZI+t3q8pvcletvMuCYT+zLrXOOQ9WSy\n", - "sP48u3v57M6hd4euH9o4nH8822iuK+UHL5+docvbWYYm+4DkukSXLPsdUpk1Z3CsKW9qn1ze5Hae\n", - "TNfknxxPJXo8/3hzgedLd/L+Wl48HvuPxz/naM+/edwzeq9+vBX5WS+5fJjTQS6PCP/tvCeyASJ/\n", - "bj7VvMM20nhV23jvPX9kPphOKS8pHeaF56++HOfNY+oXfXO2zpFeXKlfe/7D+tM8obGp8TV0zvV8\n", - "yosLpemtFZtzydrK07nnD6zbXHzn7Omt29Q+3jpCc5euK7xcpPGtvLINzgr9NTcqfzo3XcuYOfvm\n", - "/Jd9zPNdzhmaU3SdozHKvOvc6s2pubWA2qIq0M3Zhvttnffb+ppoWejGl3PjNwL4MQCfIcffBPD5\n", - "AD4G4O0A3g/gd6P+NXEL4Jubdj8A4A0AP0J9K9LLBvWF5NJyBF4sVAifOXVsADzMnKtQb+z92uHY\n", - "CYzAyxZ/9y3vGsArC9D15Krq/e2qxRcvgUBgdni5ojTXvmi471w9Aav2z1JY+tbTTwfwywD+ewD/\n", - "AMBfBvAJAN6G+iIRzf+3Ne/fAeDD1P/DAD6lQP8hTs6ogSNA+MzpozRxrRAXiceMly3+7lveJS4S\n", - "AV+um/ob70AgcIJ44hx7WS4SgfvP1UeJRweg//sB/AcA/j6AbwPwtdKmQvmnU+fcG/T+3c0rEAgE\n", - "AjPgBL9VDRwJlrooDQQCyyPy/tHj/c3rcFj6QvHDzevvN5//BurbSz+K+pbTjwL4ZAC/1Jz/CIBP\n", - "pf7vbI4J3liC10AgEAjEYuFUMeYCf6nbUQOBQCAwDiNy97uR/jj2DbMzo1j61tOPAvgnAH5X8/mL\n", - "APxDAH8HwFc0x74CwP/SvP/bAP4EgLeivm31dwL40YV5HIp45iIwJ8Kf9kPoL7AkNvfNwARsB7bb\n", - "4P4vEl+G+H3RZHzR5JmC0MFwnGIOHYM5fWE1M71ZcYjtMf5DAN8N4CcAfDaAb0Rd5fQPot4e4wux\n", - "q3r6AQDf2/z/fgBfBV95G9TfiK7pfek8H2d6dtvrBl2n3gCr1a7N6kHzeYP0dtmKxjonOspXJeeY\n", - "p3Pi9bx5VdLHg8qj0HNGeyNt+JXr6+mNdWAy2Gd9741pem/arFaNjllvG2q7RmpX5XlNNrK+Ki/z\n", - "wPoze5fkZ7vYa03HGXxM/atCvahTP2V9KFR2k9X0fk4vT9ac3Dn/UV3a2J5emDf2ZY1LRsmveSzH\n", - "xlgDuEHXzuwXdnyTee/pyeTh/nycdc4v8vXWfzWvqN5zx9gH+iYOjg197/kRyZ/EGuuP23p+zbFu\n", - "NtZcyOcN3I7znJe79XjBRxM6Hj8e/6wnldnaXCL1wZxdNJeX+PV4Opd5ZS3HSryr3uF85rxlOe5S\n", - "2mJ3vmM3Hd+zrUF50hijc6sHznlDKdcwr2xvjiVdG2gMAr7d7L3JmJt3cnOVjWH9OMcrvNykfqV6\n", - "MJ1u5Ly951jg+Sk3/3Ebbz3D/SvUBcJUl578nn40N6ge+OXRzMyxbT5m6HybixfWXS7fqP9cpDIl\n", - "OdSL+6HH7HjfWkxzPEN1V4ohwNezzp99ucxb/zT2Wj1C65MrvhBiv1O+lI7OT5rjga7c3JZtx7nV\n", - "y/uQNiyXN+YNHdd5t8/ufL1gMWM5UeOE9dA3vwUahGICgUAgEAgEAoHAy4zFr4kO8YtiIBAIBAKB\n", - "QCAQCAROCHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBHGhGAgEAoFAIBAIBAKBBEvvo3hg\n", - "VGcAngG4Alav0zHQ52vUpcGtghV256vr5sNVl47SUrpZfnraJHzb2PDHz8lYGs9kWj3dQ44eGn0o\n", - "tbVzhsRujZwAgOcAblMetF1JH2Nl7uN7SDtPNk+XLj2SybWr1ybj+zx+ifd9/Ttni6J+2Ma5Nj18\n", - "JLTQHb9tMzIW+j5P4rHQ3zAkpqYiJ1Pf2PvGu2efffRbnaGTE/gY+xTj4LrN5KZSvzFj6LHeXNuT\n", - "V3Jtp6CPV6+todRnqN/08TOFvyIPe+qL6RrGyNj6P5BUtp17vTKmfV+bMbnP83PtNyY+hti6b04b\n", - "wndWlhn85SA0MY5eVt93qH+cuqBz5K9j47k4Fs83hgF5byimrmnc6xHs2ns6SN5n2i+LU9xYuTpA\n", - "kZ8Kvm5yx+ce55hwaB7vQycbAA8z58byU6L1MmEN4AnGxdFYXd+Hr5TGtMTUd77UZgqWyFdL57pj\n", - "iZMK9TYGU3lZo7sn4Snk9bkxVGaNkam64n5G0/aRHGPLOWw1hwyHwjnqxbnqyL44f23h8S3e4PDQ\n", - "12+srvaN7SmwrRbmGvMQPjImdnPtvHx+rHmwQr21xWMMs1OfHFPWLVP8MjPOCv7x+XCMRuzDIS4U\n", - "A4FAIBAIBAKBQOBIsfyFYjyj+HLhvq+wvQ22DffN21hM4XdMn77NbpfGHGN7NHgT27Fj5DYCP0bc\n", - "92a4pxZPfdhHnil9T8nX9kFOTm/jb69NYIe59HEqen0ZYmRIDMxtr6F6XdJPps7RVeb9MWIqf/vK\n", - "NadezmeklcXLdKE4dMI7tuQ3l1Nt0L31a04Mofca6tsRPfR9I5K7wATKOtpk3o+BNxkMub1QMeZb\n", - "n4cj209FLrFvsb+PePy/RsfHyDc2IfbxXhFNez9XTNitJXPbb0wu6Bt7zlgY2u++MMUOc9w6VspZ\n", - "JfAirc9OY+zofUmTk3OF+vasErY959fo9xfmv2+OXtP73Bdp9/kFzQo1j0vkTeD+F946/pRb5/Y5\n", - "39d3zMXNUButmleO5hy3LSse0rkSn3M/GuA9GtEX44qVvOd59pgw1dfW2E/vug7fF/oc5iKIW09H\n", - "jXtvzzIsganPCHnP5CiOTc4HOB5+TgWht4DiWJ4rvA8cWva+512nYEjuHotSrl9ivCWxhM7HoqSz\n", - "Y5pXA+ORm1OPwe/uG6fq20fAdzyj6CGeUQzcN17mBfNQHEECDQQCgUAgEJgNR7b+i2cUl8CcV5lj\n", - "bjHR25DsVpoptyfNKcN9P0s1N/qe7Zty773cvrrq21ZmKX3abU3HYC/lQf04V4Uzx3tJJr2di204\n", - "9TbIDbBa4f5vi7kvW6o+c3zkctwG/bfr6i39Q2X1blcqPfsy5BbNoeN6tBVTxmIfXiLn9s0jx5I3\n", - "DEMe9xhyq+IUWxxCD3M+2nHIOdrWJVPz6pD4KdUqMGxQ9ovS+SEYKyPf+rwvNvBvUd7ntuU+fS3h\n", - "P3Pp4xgxdj60c1Py7NDb7+8Np/iNfwVUa+z2OgQ6e5bk9ipx9+AzPMPu+Tl+NuMx3P37OnQKe7iN\n", - "3gtO98YTuh2+nXE7bWQPGUNnHyiD0nP2b2lpOfvVMO2cjHiGVr943DS4dPj09l8r7VVD9h6zN6Dq\n", - "xsb1bN+x1V3Tli4iW52hke+ybFfmIfFd01GfDzT02mOlvXyeSVuF58fGi8qhdMyWtxk6uf3ulFZh\n", - "Pyh3T60R9irS0v0odX9V7D4X9/18AOCG/JD7Ul7R2DL07dulewm2Y3ixVNqH1FDYY6+k48TPSY6x\n", - "e6L17fPZd3zoHpFDfWEIsnYxvApg63+5NGjPt0JMZHVjcQrUPrhFuk+ZxHF7DEj3pCzNaUP2JFXf\n", - "hPAuOcD1O3tG6iIjax/dzN6dhmJ+0X06xc+zecbg2C4595g+5+a9nv37WI7knOpA587H2PmG5OEh\n", - "+w0O2WvQa5scd+Y21w+9/VINXkzw+gIFH71GveZr4qOlB7gxl1uTAF0edTwAnVxQ3KNRZGihPoRu\n", - "f5cOtydapX37XBmbOc3ViRPPCR/CfzH36HnzkwzfCfrihtedmTl3jM/mMGrORpenrE1178m4e8vB\n", - "UV5xBwKBQCAQCAQCgcCBsPg10ct462kgEAgEAoFAIBAIBAqIC8VAIBAIBAKBQCAQCCSIC8VAIBAI\n", - "BAKBQCAQCCQ40QvF6qx+qLSqmtdZ86rode0cu2uO3zWvM3lVzqspUpKMd0083NHnLdH2aG2bl72/\n", - "zvDJ55SNa5QfAAAgAElEQVTva6QyXBfGtPNb55zXj8esqC+325LsOdp3JOu19PXkFP23Nr5DImdr\n", - "B49P9okt9WddGk8sD/O6RSp3JTycEd1r8Ud7sX1V3js57/kHv7+Tl7a9QyqjtuHz5gvqi9x3i64+\n", - "mCf1+0YnrV3upL/nb56sqhvln+1RanOGrnzX0p5tpPpR3tjmffYq2Yj9j8csye7Fr47B8nr69XTF\n", - "8cO+5fmQ5hn9rL6h8mucqs69/MCxJvHf8T3Ou6ovjXtPzjuiybnB833uJ0UKXBrKL/uvxUxunlAZ\n", - "2d4sby7mt/Le06dnU89/ts64xgvPX2pD1ZnKxnn/WsZTPtTX1M4ac6Zfz35Eo81bqqOcDys9zdG5\n", - "/KzrFZ3PNY51HjIbbIlvnr/UlkSr9c+Gp/Yz+zrL6dlLY5h9S+cRzdU6N6uMagcvX6nPefrz1jNe\n", - "TmUfzOV0zRu65rACS0Cqf9aD0c7FK+ufefbmz2t09a2xm4sN9dNrocfrGJZZ/Vxjw8sFnm/LWJ08\n", - "on6otsj5kRf7Kj/P37q+ycVMbp2Uy40OvWT9qn7NsnD+Ux04/tZp29h0eZxipZwKUc8mEAgEAoFA\n", - "IBBgVDjNtX1gEmIfxWPFnHskLYlT4bOEF+FbgRfBDqeKQ/pPted44ScBxn36Q86Pp/i3tw+qR+eU\n", - "/H/qXoOBw2BO21QY5psVdn5RyfFD4qa/yUFxbHu4TsUp5adZ0bdx+JFiJVfPQ/fk6sPUvn37CE3F\n", - "3HRz+4yN1Zv9vO7uGVTYv8/jY8i4+9j02LCvLNn9fY5ER0vwcSyylXDovFPqcx/6KuWWKf334cEw\n", - "KJctqKu+/ecOzc8hx5h77CXniVPUx1J0htLeZw7fJ3edwlwwN6bktX369dHL7X84tn/f8bF09qE5\n", - "FENyesfXB67h+2IkRxevTRLlBceL8M1EIBAIBAKBQCAQCEzF4tdEJ3rraefBaH5AWB/O9h7o1wfG\n", - "+YF8fRjXe1jWewg1V2zBeYi1I8e2+1kfqAaIrhYX4EINd8KD9xCt97Cw9zC+93C20tdCDaxPfQDa\n", - "0/Xd7lyrA9WbyqIFFLidZzPSIYD0oWF+gNwrLqH+QwUtEn9SXpQ/fYhbbab61Lbeg/X8MD8XNzgj\n", - "Gnwu5+eebvWBa6/Qg+qex+eH2zU+cw+w01hAV1etf3gPxmuBDKbJMaoFF9THtIAEj+EVIGAde3HI\n", - "uYLs0vqi5hIt2KCFDDROJN5amncZHlQHGjM8FucbT8+ag1lfW6cP5xMvbjVepJAF66vNhxqrGiNa\n", - "XEOLFugcoTGsn6/Tzy4fPG7Ghm4OyuVML89rvvViUo+zzOwPmnPuMu/ZXpwXdI7S+PByheY97zO3\n", - "5dzF71U36sMsr9pfdc88M23NtzROG4u6LuDcquOynXP69eaAO+c961hzL/tBKS95POZ8o5J+Gl9n\n", - "zrFcnvFk82RSn/Xo9a0bNB683K4+WMk5nR/VbjrnKu+UT5L17J30I70k+cXJ9x2ZNQ+pz2ie1fZn\n", - "5NO6FqCc1uZiHesOXTt5OtY1Ri6vldYe6s/q4zpH89zkrdnU7mw/XbtoXhU6nbygulN/Yr/jfGX9\n", - "nTnOfGN5nOIDrxWmX0BXOA6Z1wBeuW8m7hEbAA/vm4kD42WUeSw22H15dQxxujQsH3FeWipHhf/N\n", - "j3PUt/+8zLn8RcE+c/Ih4jcwHsduizWAxzjNvDzXfGLP/R1CB4ecA8f4ntd2RP8oZlPClKtFW5Sd\n", - "Eg7F79Bx5nig95T97kVBJe+PIS4eoo7RKUlP/VLlO0as5L++PwW8KIUKgPG57VUAT5ZgZCAOqfdT\n", - "s/FYvxxykZijd8rxe2jsu34YM1dd7DnW0ngFp7sWmuuC62HzGptfhvoR013yIlH5GXOt4eWMo8oj\n", - "p+qkawBb1MY5d14VnTNYgrnAzoBr7CqyndNxm2TWGfrWZ02fz+siO6sVdpWvNs7xdfPwb4nuZte2\n", - "lXNNL9bDOfUxeSs6vha6VUrLeFs9oD6gvhUSnlaPhF8g0dVqhTRomjFa3Vaoq3KtkeqXq8ip3lW/\n", - "ehHAdq+ID7Y/y2A8Gt9sS11gZHhx227kfMPfagXgMiOr6o7ti7RNIrv4WGJn9l32G9bhBenjAdmf\n", - "q7YxXxwf4tscc+1n1qsmzEpeG6R+pr6qOlN7bWq/bH3Z5DO5L6i/xsNa+rH8Hp8b+sxQG7CeRP9u\n", - "/LAOHL/v+KDmAR6Hx7X/l/JZba0ycX/NY2SH1aPGfzjulT/lW3XJ+UvzIOUSzqGuz6tfGp86vtfP\n", - "chvbTvt5MW+5THV+Ln6lMkD6ZOyd5Krz9H2rd/U7kD5zdlBbqz/KvLJ6gNQu60zs8/zF+ZXkb3lW\n", - "H+W5x9M7H3fioaV9DuBS9MM5zfMB0HnmQW1dyXkvH3hzbikXSpwlcQKkPsI0sZPb5cMbX+LZ1bHm\n", - "Xmeuctcj7H+V838N4BaJvXJzTmc9Z+cukK4fNOY5/l539Mr+6cnMeZSxFv/2fFJj0KC8MR8X6Po6\n", - "+xX7qLZjvWsOza1TvbkDIvu504flzcWl5gWVZYN0bJ53zKY6D6zhyrN6JPJ4frtp6LIPa6xpvtI1\n", - "jOYIoKuHZn7VXN3mn9y6UXXOc4/HJ4NlDTg4tW82A4FAIBAIBAKBQGBOLH5NdKq/KAYCgUAgEAgE\n", - "AoFAYCHEhWIgEAgEAoFAIBAIBBI8um8GpqE6A/AcwO3wzT6T/k1p2dVTjNqYc8zmmd5YCR30b8g5\n", - "ddNQb0yPrmH1Otoyu6tH6ftOv2fNh4bfQWM58iW0GnrMTw658YbYxt3EVOglG5kynjf/L/0NUYfY\n", - "qrSJqunClYvHGWhb15dsY9YN6mdFgJ0de/h3be/4USJT5viUjXU9f+kbL0tnIA85Gw8ZZyiqa9SV\n", - "726RtUWfj+R4SHxZ+k7JZd4Yfcf78l/fGAY3ZpxzCQ3T7SUS3+0b2+Nxkm0HyDBoA/KMDft4LvHi\n", - "8TQFo2Oa596C7w+SNTevOPwMmocJ7THK+3yuNFYfjyWecnIkvNxK44E6yJ0r+YaX9z1axZzQ098b\n", - "t6+vImu/An2VoYSxc0ifb5Xa99Hbl8+952F5z7E6VI4WTpy7a54nAG565j7K97n1UmftT/E5dN0y\n", - "dM0+Kj6c9YybwyRfHgZHVVlnIKrmltwK6JSWd9oChfM5nGO3qC5hjV21tBIfQzE3jTVqx3rQHLML\n", - "hFKFtzl4mEK3pPMN9q9Y1UdjjNwbdH+NX6Xn7SI72edmiAzmUxXqQkbWR/mfy1cwgI7JO1Y/7IdX\n", - "GBZTc8DTTZ+sS/n9WDAfY/JXif+p8aP5Yww8n5kjjnNyWm4bWm7eePHiCpkxGKYbII3RB6gLKKi/\n", - "7xsDxhfnBD2nPI/Rt+WbPltbO51HlAe10xC95uJW6UyNU+47xRf7xtac7fW1wh1PemgxeJ0xFlNj\n", - "rmSvIXNpnx6mwvQ3Rh85fpWXffKTFRsZ2t/aj8mtqtcp61udX0qxNdZWQ3PIFNoexuh8yBpmiP2X\n", - "XCeU5jYgy9vy22Mcw8JoLKpdfCyGoQljjoXP3LiPBe+xLLKPDfv6xyH0eggfnvqFzcuIJWw+9kJ/\n", - "KSw9yWJB+or7yP2lBfihETn/xcWxfOkdCMyFIf54oj67/IXiqT+jSKWROyWIFV5pYKbDZX1vkS/R\n", - "yyVsbcsDLgHNJa29K1otiasloLlctNIolZRuaCfbXGi5bEh7LRGspbO1NDWXCqb/Vga4s40CkOpd\n", - "+TE6hg1S/Urblj7zwDrissIePJtweWj1Dc8Gep71w5+5DY8lJb0T/1oTrXMAF469dXyWTf1bS2VX\n", - "0q9Cu61EqzO2M/u8V1ZbS11bH5X5BvUCl9uqzrzS27plgJYAVz/QctmQ88zbOXxf4RhU2TTOudQ5\n", - "09IS6BxTWho7tw0B88J0VH8qh8frJXbboTAdoOtTxr/GF//n0uwae5z/tHQ5b1OyQbc8v7Znefg9\n", - "xxGINpfNz+V5psMy5nSjLxvPthtRfrmvl4c033m5gnMDn7tBPTd5sal2yPmvysyfITRKvN9IG/UP\n", - "L18Z9DzLkJtvKuez53tGy+iqvkt8AV2aOh+zf3nbInA7T99eHoH0zcUUZGxv6wGd9zeF/L5GR552\n", - "qyxvXt4ITZafsUa6PZHGic4jnl4Uam8vv5hetA/7E9tE9c90vHnJ40X59dYMufir5FhuDcF0PP/z\n", - "4s6bH3J+n4s19jGdmzX2S3HlrQFLuVX9vaHf2dasoja5PExrqU6sGIzeDZ1Tn5K1QnKtoflJ/V7j\n", - "k/O3N9crcvnYW78EGpSSfCAQCAQCgUAgEAi86Fj8mujUf1EMBAKBQCAQCAQCgcDMONGqpwC61ZOk\n", - "OplbPTBT8ShbERDoVuoq0ZCKSy6f0q5UTdKtevQE9W18Ok6mIlKuslP2PNMxOH3daqEsX6YyU0sf\n", - "uzYdPHOOMRy6CQ9MQ3jHM7gVtMZWikvOSUVFPEf9JYwVfbgq6Ez75qppaQVH06GNc4k2BlaPCn71\n", - "DLtCAGvsqg+i69O9FffYdt7YEluJDTwe2O8kptoxbonWq6jvzVcaWuWSq9hKRdukuuGt4xOeDs2+\n", - "N8hWeuv1Gamiy306vBXiF9jZD0Dr2524ysRlq0egvtXZq5aqleSYz+dw49jNNXeo9XaR9k38Dkht\n", - "ZZ9J5+xXrpwgf3hS7tPJeabn5lbp1QPRB/NleNL8v4EfN6Yfr5qyysmxXahul807txJrRr9vTvBs\n", - "cSU0QOdz8QLS6Suob1N81G0zqNqh+abltz77OdUOge65hA+mM2De9/w8h8T+1r4v98vYbTE0qrqa\n", - "wMlzQysED6ns6/qK5O8O/1ZQym7RLlV+zfhptnoz5wGTm+YBix23YruNwXMKQWNB5XIro+s5Xd9g\n", - "dz7xoZ746UPrFzxfAt0YZ2gO0PboypOMWcqDZjf2V14z2Pnm16/VyrEx/JjLVigV+skcJ/ImMhCS\n", - "fOHNc7yWM1+W9WMpN3g7LCTnHV/yKnO7+aKZt5d/rPIEH9xE1TjbvpUAPawxrhrZPthgnqpgFcYX\n", - "OLD7nbVy2Nixx2Bp2n2V0DaYr6DHWJ3nxs7pZKqu9tXxFB0tadf7gN3zPzU2zRctj3CfXMx7tL2x\n", - "7BYTe1bD7giZUuBkqt36ZECGbt94c/v8GsMqIy7F15y0Sjov0b4v3pXfOXPvVOgcoTlc5/5Tz2ue\n", - "PF5FSs82Q/xNMaWPwcsbemwOe0yh4ck19Jh3/lB+5Y3DleWH2It9Y0ieHDMP8e2S6qNzFOvaV8+H\n", - "sNOQMTboVpgW270YxWw+BOAnAfwYgB9tjn0SgB8C8LMAfhDAJ1L7rwPwcwDeBPCeDM2llPLKgrQZ\n", - "FfK6Hzv+qkArh8fYfetl/EwZewzmSPIl2q/0tHs4Aw883hidj10k3dcC5SHSojNDsO+F6ZjjYzHl\n", - "3v2H2O8LHPPFFX1m2qV+pc8erRWmxb9Hf6jO+2TI6YgLahwCj/ubAOi36ZjS9X0YG1uGIQunPn/Z\n", - "F2NoKb9z5t6p2KL8xYF+QXzf/O4LXct4+QjwbTNlob7v4t7Lf3PbYAo9L7d6svblYOvjXQwvgT5Z\n", - "h9hrTNyuBtLk9mrjsTQAZAv/7Os7Y78sX2qMh+jOZQd/ZPAQA1YA3g3gcwB8bnPsa1FfKP4uAP97\n", - "8xkA3gXgjzf/vxjAd2R4rLCrusUVOrW6mFWN5EpJucpNXLHoPP2cVDgqVWCyakZcuckqhHGFphvs\n", - "qsZpNSmuJMZ9qMJdp+LYBXYVHaU6WVINttEdbpFU7WurnHE1JtZBrpJTrtITVyfTNp6dtBIZn2v6\n", - "WGVVt9KbwWTRarLMC4PHsopvrCu2p9i01blXcVerXNltMqD+jd1szI4/nYudeQzTYyX0tnReq9Yp\n", - "TdWx+cIjpL5levJ8gXEusnBFRq2cZv9vhV/z70eOj3sVWD05yR6tL2hMc3viv1MdjnliWqp/tg37\n", - "sueD9t/TieqLZbI2F04+2lJ78elOFVqTVXPdJbr65dzm+EBib/YVjQHzPb4dTHMNV0n06HsVPrUf\n", - "2+cSqS1pzE4ceTmOZWD9e7mR8pO+OjyxXtWXVCfM91r+cz4TvbnVEL0Ky5zXKMaS+crAPqD+AKGh\n", - "PG6EjtrW2mmsaizAOe/M14ktzT6PhNcL7HzE5mTiLfEJlsOTWfNBhdQ+oHaih8TeWrGT7eP4YeJf\n", - "3typ41/C163O2xuk81HOfxTq15q7db7k2Nc1GvuP2SezPnP7Qs5zX52vWT6NHa6kzDbiPLduZGA/\n", - "9iqGVtL3gtqoj3He5PzHKMWCxmfzvzP/ez7LOmvOJdX0S2Aa3hpb15cqs9FQeg0/6pcre5TBk5+h\n", - "8aO+obahOajTnnSerDPY/pwjNL9pTtFz6jcWt+YLN/D1e9L4eQC/WY69CeBtzfu3N5+B+tfE91K7\n", - "HwDwedJ3yW9hAoFAIBAIBAKBQODYsfg10aF+UfxhAP8XgK9sjr0NwMea9x/D7qLxHQA+TH0/DOBT\n", - "DsBjIBAIBAKBQCAQCAQaHKLq6esAfhHAb0V9u+mbcj53jzGfDwQCgUAgEAgEAoHAgXCIXxR/sfn/\n", - "ywD+JurnFD+G+pZTAPhkAL/UvP8IgE+lvu9sjgm+fgv8p78O/PlfAP7WFVBd0+sMqO6Aqmr+3wHV\n", - "tvlsL25/Ry/rX6Etj16dUdvmePteaZ3Ri9sa/YqOb4U3+39H58+EvvKtY2yFnrXd0mfVD+ul0QHg\n", - "nGPe7oSHCl1e7NhZpp3axLPRWeZF/BsS/bHdPZ5IdwDp6A5dvZ7B9yHWgdpS5fZ8RP2Bx74j2+t4\n", - "Z0j8IpH9TD5XadvEN9gGd2TzbXfMNg5YtyVfZn6vkfKuOlCd05jJuNfCo9LX8VnGM6S28uyY80W1\n", - "m+e3zFO1G9ONI7a1+Hjri6pX5l/5Yn/xzrO/eDnJyylsF81BJf9VGe4yvsO2Ub9kWbboysC2Un+6\n", - "Fr0bLbJJR2bNu+wX6qecJ7z8p36u9IR2ohulo77Ifqw+yn6nPqP8so3YD9gHdY7wcgiPrX5HeS+J\n", - "Y7abN7cpbR2DdatzDsul+s2NQ77TtmV9bWVMHmPryJfLj3fCG8eA+pknP+d29aNSjPNxHo/1qb6j\n", - "c4fypXOMl1evM7rXsZy4S/IHx7jmCNYb5/m7nb47Or9L27DtB803qh9vbafnzpxjfes5Lzdz/tW4\n", - "VpuQfIlsyi/bXHOc5mbNBZrD7+S9xivr05tzvbyrc5KXV81HKOcktFW33lrwTOxfWpuqzTjXlPKX\n", - "l3+8dbDmNSdn/PCvAX+hql9fv8UBsHRlL9tPZw3gE1BXOP0GAF8E4FcAfDPqQjaf2Px/F4C/hvpi\n", - "8lNQ37L6mYA+3MofF8UG85TqvS9UmNfGc9ObgrDJ6eLUbbc0Sr6xj98c0udeZv8eiw0Ov23EGsO2\n", - "DZkLx+QPFfzy+2N4PLT+7hM5fQ3FlHyvfab6zxTeT3l+8niv4G8bdkwx6cHLixXqojWvuT1eapz+\n", - "9hhvA/D3APw46so9/yvqi8VvAvAHUW+P8YXNZwD4AIDvbf5/P4Cvgn9VWGWOl1Dq4x3vq+40lI4d\n", - "16pn+9IcAv22oUQrJ2+FtDrZEFomrx4bIksf3dvC+b7+WhUv13+Kfxn9Pr/p24uohH3Pj+0zxF/2\n", - "sStXZVsaQ2yzD5b+9kor5/aB+dE8oFUzS32t/dCx7gOHGF+rSM4B28g5Z4sK4/y2lNeM3lRwX67o\n", - "2MfPUgsYm2PGyJTbSuYg38oL5vClnM/MNfYKw+bbHL2+vh4tjwevnfrekHm/D33rYW9dkxuvD8qv\n", - "rbPmzDGeX1u11Rx0/L4YmzsnblD7zRZpJd8L1BvQawXlIeNzdVrFGP6nrq94rTQX3YPimL9VyKHn\n", - "2xD7GXj1evq+SPIMwDMAV/1teQwFj8nHxvKox3L8JWPlzsvxoTrpgyeDYc6xsjI8axo4NvP4cfXc\n", - "3A6xelrmd1adPW8+XJbHKfJC+hjCWzvubb+sfM6Q9Tk6V12jvoPAkavTryfWennL2N6Ts0R7cOx5\n", - "bfriUfuQr/XpqjRGSZ6OfOLfQ2l4x4foaghNt93IHFWSy/Mzw1Rdj/WT9pbEK5R9VfuP5KF0PNem\n", - "1U/DV59vjEVHLvN1u2i4cjoZPxkfGKubrC0s994i6xe5/FKKhZIP8xjczpNZ5VGMWdP08Zxr2/LV\n", - "2Ezni16+e2J5dF4AEtutMnU1+tYEJR5zfO0z73s5aui6JEtzpnXIFNp969qOz7LtCv2Gjl9Cdk3S\n", - "3IKc85lBdJ05xPXpzLpjyPVA21bWBV6uTtYRxsdrOM1ruUVx9FffgUAgEAgEAoFAILAgFr8mOkQx\n", - "m0AgEAgEAoFAIBAInBAOsT3GAkh+krXbWuxWPL7VBNSudNvKc9QPAjcPzLY/+2ZuVWnHRbdfhz9G\n", - "Q0N/vnZvDaSfoYHdeYBk5lt6kP403RnL+vNx/Rlb2rQy6O1C3I51RLbIyZ70fYb6QesKWMmXFtUZ\n", - "gFdR36vOty3ZsUtqnLtVSG/zoTbtebPj5bhbQao77Ao1mSw6FsPG0VuwVB/Wln3BxtpQ21dR327A\n", - "x4jvzm213m22enuI8t08BL9aFfyxkWv1SG6zeI7dM1iXjl0MV8Kz+LR7C5Tnkxhge5ZVfVhjj8fP\n", - "3SbM9gK6z+SQbyV8PMHOh5m3J6htaj7l3S6cuXXZzTl6y5/5e2OX1SPn1jz2Rftv/N4Kjw2825n7\n", - "cmByO43aS2K8zVWS6zuy83henIs/Fm9jZh94AuBGeNVcl7tNMZePWb9wfC9jj46Ps+9dyTGS1+DK\n", - "qPme9FG6zTJpj7Rfboyc3jtzEecmvfWKdW88yDHvltUkh5XWDkA7LyXrAbklc+gjEB1f5XlNZTFk\n", - "bpvuxFVu7lE+vTnb4mCLOqbPHRnudm3bftgd8+yJV5v3N4583q18zq34nbkE8J959PTGsW79nLzD\n", - "46xeb2R9AP95cM0nI24Zbsf14j1ze7AbA0+I3k3+NsdOjmnssXpAPJIPtHM10Szl22Q8tqezxmzb\n", - "9dya2ZGfx5cc597GDeTXM5on9NZO1gfQrrW8W1aTWGK+NK8Qnc5avXDreWd9BOTXQA2Wv+v0FO9r\n", - "LVU9LVWtOvZKT4fEPpXE+voNpb1UhcclcAh+Di3zmApvS/G2xnwVBC0h24XMVHiyWvU4W2SdamW8\n", - "FxG5an8r7CaKJeOK/eXY8tYcYJmGxmufHqy4w0P6fOjqr4fEvn6xjx9PqeQ5Zg7HwLZDsE/V0Sk6\n", - "1oXkXGuivoqrpZyVo3nfsPl1n/na9MKxzjbIFS4aoouxa/8hdKeuTw5sv+Wrnh6bMw5B6UJxT7on\n", - "qY/Ai4FT9j9L0ipDSabmG7tqbDDfl55scfsiL2hfFJxymftjw9gF7JA2L/qF4cuEufLxUl/qzPnl\n", - "9qFwbPzMgak5mftN+XFhH10u+YPKjDj97TEWwmpVv9otJyzJrOFvQ2Elateob69obrNoF38b1L8Y\n", - "NOc7sP7Wh19rdGk1fVoeK6LBL8jxc+Kf6W+IzgapnFwueCNt+DiXd6/oOI+pujPZlC/lcWj5aS5p\n", - "ziX6zSaqkxz/xlszbmtPeiXHPJ2upa3qwCtxzfZWOXIQOVtfUb4vkPqZ8qO2sP9Mn32R/cqTh9qz\n", - "/C1PPB7buULXFy6bmHwgfS+kH/lme1sH61FKX7dxfr5rs3rgHGeZ+GX6Z9tXJCfLwLple9n7S9Tf\n", - "qF7A95NK6KmveP6lelX7sF09/5X4UV11cobESIdH9sucb1mcV0TD0736YmOLljZ9XvEkV+Iv5/+a\n", - "hy6R+hud69i9dF5zncqmtmV/ZL1oXvJ8nvMgiAbnRieHJHowOl7eML6El8RvPD+9oL43SG267tJZ\n", - "PUh5Tc7ZWJeof1lYk2wm78Y5zvrw5kHNeZ7NvHlTc4Hn++azrD/1ec2bXiyoPXS83PzqrV14vcN+\n", - "6o2ncp877bw8r7xpjjK5HxA9ztOsj1wuZN5ukK7B9JXLaZq3dB3wQI4ZOH4tp7Nsuibz5npvnbJ2\n", - "+vJ70l1HhnOKIeUHjl417jUn8jxhPOhxL5fqfOKMk6yhmQ7zwrq5pLbKn2dDo3dJbS9kTLbhjfBo\n", - "41zImGLbjs+w7cwfKVaz6yPWwVZ48HKNgdfkuRzOfHq5L+CgtCgPBAKBQCAQCAQCgRcdi18Tnegv\n", - "ioFAIBAIBAKBQCAQWApxoRgIBAKBQCAQCAQCgQSnuj2GlXMG6p9dtZzxY6QPzm6wK137CvWzEtV8\n", - "zHso1Pq/KuftJ99cAQ+7F/nK6Wt0DVwBjstAXyHd4sIu7pWWjWWloe0Zj4fOeX44mKtQ6U/YVkJf\n", - "t2ewcvlM26pN6n3prPM1uqXbTXbTMW1V0pZz9rab8KpbsrxGD+iWUWZbbND9wuQGu1LUXvUyk5EL\n", - "MqxFTqC7jYluLWA8cUllA/ul3YfO5adfQz/YvkB9v7750AV2JbctfriEs1b7Yn1aKWnWG29jwj5m\n", - "ujI9eGXLufz5K9jZxHT1CtHS8uXW33tQfo2urjRmNV6pLH6yxQfT52cMgDR/AKlugbRiaqmIh+Uy\n", - "zw5erlGZrC+wKwF+jVR/bCOzn8Yh0NVzzqYGlm+Lbhy+Rp/NF6wA0g1S+qZf05/p046pX7AOCsWT\n", - "OmXKNb4AvzS98a5j6rxgPJj8nh8ZaLuBdmsZ21bA5B3jB+oDuQIQlhOoBHw7n3LeYh4fUj8ITywj\n", - "x4iOa7lf/d/s780f7A9ePnK2t0nK5ns8cSzqGI/RzUm6hYTmwQdE0/zEW0cYfd0qx+aAXD63OY1z\n", - "OfsX5+6G384WOTwPq/+YD+jWIAZ9Bmpo1WflV+cKXnNcNMdt2xBBZxsf1hX7AZpz7OPIfGY+GJxD\n", - "DZ4PcHwDvl44Jo13Xg9xG28tw+s4EK9Gz9u2iPuzb3N+NvAayGLa6PD6WNcttmZodJ7kzNIaqGQP\n", - "Xc/rGlPb8PZSzM9r0gZI18xsexTk1vUppK9uz8ZrfF7LenSAnU01P0HktzbrJr/RVjYm+/J1c06x\n", - "sqzrSD4AACAASURBVFI14ZbcvkXEfUODAPAn075Svd6iYF+Z56Ax59hegOXa35fdx+hsSNtzzLMt\n", - "A08eY3ko9R+KKb60r//dp/8eEw+GfW1oGCOTd1E3Rh9L64/zxKFzxn3PTSXdDtX7fctgGMPvnP43\n", - "dH7m9hjJQ46O94XBCt01xX3YZq550PuiYN/xAjuM9V9FaU02ld6QqsjsF3rxeQj08Xkgf1y1f5bC\n", - "Kd96yhWwgLRqkLa7wO7qvHSVyVW/hvKgVbA8eMe5qtGFvOcKToYrGk+rRdkY/AuAVoliXrjCFfPm\n", - "VUUsgftX8OU0OzG4IpSCK3IpKtTf1FyiW2HO7MxVurbYVaBSnvhVyaskt+nPO260zX6eTpxfbd3x\n", - "uVLW66i/+Sr5F4/vjXne0GCf4epeDI4BpuVteNwnHx+/yJxTH2HdWeUxLy5Vbg9sf7at2dGO5eiw\n", - "XfiY8s/V0piWVWTz6HuVOxUVtVPbjYHJaxVB9dxYOlwNk6FxtUGdu9i+Xn7TMTgONIY9H9exNTfp\n", - "eHxe88QWqZ+UkONDP3Ou4uqHF9JOeS7lV/ONjdOez+d01zcXOr/uuNiiW5FQ5VU5eB5j/g18vC8n\n", - "o+e85lb1J46rMTAZ7NcMzWFres/0t/A3dWdoLlG7rpvqmHzMZLM5iMdT3Q5Bn051bOPZXryuUd9X\n", - "Wn2+pnO1lwOYhrfm0P85v8zlF/VDTwccp7o+ozmgU3kfzvu+WNX5QPsPyetNLl89xXB7qy2Aem3Q\n", - "F0O67tQcYLiUaro5f+W7xG4cHjS3cOVZhuZcbw3g4Rapz2m7vvUOv1S/XJ14Sm566TFmURMIBAKB\n", - "QCAQCAQCLxoWvyY65V8UA4FAIBAIBAKBQCCwAOJCMRAIBAKBQCAQCAQCCU70QrE6A6o7oNrSq6L/\n", - "FVBdN68z6mOva3kZjWvqzzS9vvb+rnlx34ronREt5ceO3wldo8m07hweKnnd0Xkbh9sp/a1DQ+mp\n", - "PMwzv+e2NjaPazKw7jy+tujnz7N9JWMwfRuvkaHVi7ZnG5zJe7Ut+wfTUpuaXKV+10hl92xL5zr+\n", - "zPKVbFih6A8t3WukPOfiIueDd/JZY+B6Jwfg8Mj2VbnUFhXx7cls46uMnr96saW+6MXBNXwZrpHa\n", - "LGeja6HBfTXPeHqSfNfJLfw+l8NUB+yPXp5iG3nxZ7x6OZY/q0zK552M5+XUa2mrOtg653O5hft4\n", - "saOxwXIQfde3WRbNdbkxuY3GptqEZb+TcbZpu46/61zGcrH/ak5VXj39ak5Xv8m18/yB27Ksni2b\n", - "dh3evbxPcrZ2y/Eptk/srDHA+vRiUOPJznsy6Fyic4znm8qHxrCXv/riRO2jdtc457WL9eN5q2Q/\n", - "zze8ucyzTSm3cP7YynH1PY3Zpl9iE13DePGpMnvz/VZed+jKwz6nduU1gfKstDQPefNXKVd4ui35\n", - "vcpMum9jVH2TbOPO3Wq3M6Ghsnm28eY3iaVk/pZ1U8cvdV3m5StPf+x7ffolHpbHKVaIqnA6jylW\n", - "OE0dz4Fjlv1YeJuLDwuIOSr+Da0wF+jHsfjZGMxVFXVJnAKPgZcbL5uPnmKuG4qXfU48hG1fpHjJ\n", - "ybKQHy1f9fQUA3vOC8WlA2DMAp77bNEfNMb7lDG4/6mBg/BYkst96/K+x58LVt3rGGw6B47FPwNl\n", - "LG2nofH5osTxMeBF1uWxyXZs/MyNqWuslwE525d8Yk5/OTbf2yC/ZcZCvB7H9hifDeDLAXwZgM9a\n", - "kpkR4DLMFbrlxy2wK+xKEG+Qlu8+b0rwcol6vgLlsr1czpdLGhudFfxS9zf1GMl5LsnfvFYrev8A\n", - "dQl7LY18TjTOia5tpwFqy/I0/NkrKV1tvK+pH/NHumj7SxnszvFciXrddoPHs7b2mdtKae3VI5Lj\n", - "1qGRsXXnvemKZExsyJ8r6r8Re7IfMW0tgUwytf1Jrk7p5nPSayU0uJ1tVeCVx147Zbg5RsgnWzsy\n", - "Txxnnp7Zjz19eVuYQOhT39Wj+uXak8c4p89aOpr1YOPkxifbrHSzYqbv5JQ2btRvWX7bxoV16Mmk\n", - "Y6nOvc8Usy0va4lzL740Blkuzx/tPZ9jXtkXmXeju0n5S2KA5VW/UbuW4pPzP7dVX/HkOG/spKXU\n", - "2We4L+S/xkMlnzfYxafqm/OjbbPAOXidmTuAri2MR84/6nvqgyoz9/Hyqfqxx4f6ANsmN6aX+9Wu\n", - "FfkM5BzQtdcN8jLlStKzjpiHIfHLvks8tfG43h3r+LvS8dYeoP43RA9w7ZzM657MG3R4SuYK5seg\n", - "85m935Ls3nyuumVZNrIuMfuyjyntXAycS65hfaoOdH4yqF8bdL0E6cN5U+dh+685WtckmjdU3xxX\n", - "Fbr68c57PkT20bVM8b03n3PO4ja2NQr7kvF5IW29XGMgGskaBURL1wK6BtY5zfGVzprO80n1Q421\n", - "Neo16Y3ozPpshb+1+AGN08n79lK9sF0XQ+kq9DcC+FsAfhuAn2jaPgPwCwD+KIDrfNdFUeG4vkEI\n", - "BAKBQCAQCAQCgUPiXq+Jvh3AtyD91fEhgPc15+4LB7mCDgQCgUAgEAgEAoEjxb1eE/00gLc4x98C\n", - "4M0D88KIC8VAIBAIBAKBQCDwMmPxa6LSM4r/H4B/4Rz/FwB+fRl2hmJwSWXZSgCgfrmy0N57Lamr\n", - "Jb61dLmUPG955tLrWvLYK/mb235ASw5ryXntcybntTy+lkvWstha1p/LbusYXvl7LdPslJNPxsht\n", - "J8C8e+XLtdSx6k3padl9r+S+V0Z8i9S31Fc8v8htI6B+USppPcQ3vS0evDZaqlvLd3MpZ/UppS/+\n", - "3tEV65jfe3x68aA20dLhOb/0ynQbrdKWIsqPV7Kc/UL1YPQpNhJfycWplllXe+VyhJcPlT7HIetd\n", - "de7FDeuQfZRl9ErIa+l3jy+2m5bX1zjJlUG/dujwec9/VR/qR15ce7pUHWg+1LxwR7Q9/Whcqc9r\n", - "ef2c36o9NJ+xD26dce+kvZcTOOZVf56uVJ85GZjvrfQln2hjSn3T04fO2ZpbWaazdJzEr9S/1Nc1\n", - "B+jag+2vuriTcdVfvfjxYjCXx9RWKmMuD/bllea/Ox9KXLZtPHuZf2vOVx69uPFsLdtiJbSHyKtt\n", - "jGbfliz60q1BlE+1i2dHb1sF1SHT0rlb518vBtU3ee7x1imao7w1h+YWzu86d905dL08ovF054xj\n", - "+UF9ifkq+bSOrdtdqOw6d2lu8+Lb40Xj0tOb5KflUbqv9U0AfxJpZU3r890AfveCfJVQAdUGw6vU\n", - "VdjJsO3pN5Su0dRjOfprAE+cPiWM6ePxo+cxgpbK4emlb8x9sQbw2Bl3g90XHHNWk2UZc/paY3x5\n", - "45yeltLfELom3xb1w9ev0PGVtPN0psdZX7nY8M5tZPwS/2b3Oar7svyHqEpqD6EP9R31sz7Zh/pS\n", - "Xx7InffsvUVdBOa1Hh7m8HMbD0grHgNdvYzVtdFXHs8BvOoc1/Zz5oShGDP/GSyfYkBfb86sUBdp\n", - "uEJeL3NiiI48H5jD3zybrlHL/lq3ecuL8WFxZEXmnqCca7y8q3ky15d5nSr7PjrTWLgC8Bz+nMH6\n", - "mLoW2Yc/neP30dWY/rm1zNh1Wa6d5x+eDw9ZO+XWf7co222MLNrHs3FpbaB5aV9fGrNmQqbt2Jw8\n", - "NL/l1r/k06uHA2jthdIvih8F8K2on1P8Vnp9C4BfXJKpAbAqdQataFVJe15ocJ8KSTWl1SP4FQGB\n", - "pPJQUi3Vqg/ZwomrLwHppFERr1q1TSsqXVGfio5zFSujd4NUB1qhaou0ChzzppW2LlAHKFeG0qqA\n", - "VlVOK03Zf5ZJ9ZGr1KTyg8ZlXV82Y2vlLNaHViGzKlyXGX2ukcp4g53uCaunSG0AoVWhK99WPhvP\n", - "F0RDK32xTryqeqKTpBrgVnjkF/tqc5G4ekr8bZHKsKWY4MpbN6KvC+yqwj1AtzqX2Uqr9V0241Ml\n", - "srZaGsdGhZ3d1X5sd62yZmNz1T3jw+LVxtBKZ3acK9mxX/N7rVDHfJ+jjmUGVzCraFzrcyVtb+FW\n", - "TGtheuVxmSfWxYXozHCOxI5JLFrskO+uHgGr16kSHceLyaR5QuPyXHzXoDnJ/O2WaN1i5xOkq9XT\n", - "Rn+cC0yPXjVVW8BqTL3u6IJjl/M05wL2DS+/WvU7to3XX3wk8UmOPeZLqzLSmKunTb9LpGNXSH2J\n", - "Y4bjvLlIbPWi43PFQs1LGh8899l7hvHAsa5zjenCqgzy/KXVBpkuj+vNU2ZT0f3qaSM76DjJtnqE\n", - "nR9ZJfKr5mWxy75HfKweEC+sf/vM9iYdrFbEq9lL10W6TgG6NqHKlUnlU7aP2LWNe67oiyYnPBJZ\n", - "+UsGYOf/WqFT7W3+p3le1w/eesvAvnFL/D9I832n+qfOJaZLmyPNz1iXFVLfNFmumrFZvmaubOdL\n", - "Hpdl4HH1GPue8mx5iX38sua7U4mf44TnfOvfrBM6616W2dZMmu/Y59QHmz7teCT36pGsDSwuLH8a\n", - "DTum8xnrSnOZ5qkHwjP3tfa2ZroR3Zn8t0irpG6kjfrwDR1j+3PV4cuGD25ziXSdZm0CAu8iIxAI\n", - "BAKBQCAQCAReFix+TfSocO7f7GHg+2bmJRAIBAKBQCAQCAQCR4DSheKXIi4UA4FAIBAIBAKBQCBw\n", - "AmguXpNqYlrJzat6pdWZvGpaXNmsgl9BSiuxcRU67utU1QLQrXSkFde8amD8PlclU6u6aqW2XCU7\n", - "r3pjJee3Thuu7pTr17RrbZSr3NRXuU0raOWquGoVL7YfV/byKkCWfIbtSn1bP1Sec5XRmK+c7tWe\n", - "bCuvr1bJZD15duc2XGlN+dPKjJ6euZobV/3zYo50xvHbqQZ35/iL0mcbc+xrdUCORWvjVR5V3bD9\n", - "uK3mD0/HrBv1K++Y6pb9JVdhUaupaR/mi33DqxTJ42jlR7WPl080TjjOSjkrVxFOc26ujb60kiLz\n", - "ei3nPH/z4pXPqQ5U1ms5p/ONV5lvK/1UNuK/jQm2lcacVj9UWjxnSk5t6Ws/9XtvvhP5k/hm2ytv\n", - "bGdvftH5VH2KYqejH0+Wu5ReO19y7vD8/9oZn/1I7eBVlfb8mP/L/JHkQM/fS/nby5nMh1ZxzMXW\n", - "1qHJ/Obmf44PzXNK18sV1/D17PmlNzfk/FVyeWd+1TXFHbU7k3FzelLfVTpeHlB5SusZ1q/muaZ9\n", - "Z471xvTmbvXx3PiePbz1ZM4magtPl9pf40fpnpHcOuey32tMedcQahMvF3p5Vuf9XNxeO/Q8vWo+\n", - "Uj+1dWLVuUqaGUtXLlsC1QH0csyo4NttjfHV9w6FHM8vMvpk3uAwFTenwuP/UHYcM85YnubSuyWh\n", - "F8Wvvfxxnz567DnjEPwde4540XHsPjgWL5o8+2KoPjaYVnH7PnGKPM+BlzBnrto/S6FU9fSUMfZK\n", - "Uquu9dH26HsVl4y2VrLyaPaBKlG6Vb8ed3qUUaFcLWwocnIfAl4FND63FG9DdLVFt7IhV/y6XYa1\n", - "UaiQVltludTPKqQVJr0+c0FLxedgPGmlvxKs+lxfW29cPmaVU/uQyxf7QqvyjYHHzxPn2BLzQ0kf\n", - "U+K1r09urLE5WauZlmw/xuYaY2NzhFfFdR9/86qQ3hd0jlpqjCnnx+pZ2/flF0ZpnhsLr8JwiY+p\n", - "+vHGHWNLrT5ZOe+nwOywwbAtxYD6wmNIrs/1z9ma88lazuXalmiqbry1YmmMUpt9c8pc8NasfKxv\n", - "+zsvX+6DnI6G6DewIOjn4s4pvrWGNsfV83w7j0vD+TnbG4fHK53TdqVzJeTosKwlen1jubczOHT7\n", - "+M+NUzxutxKofBk7jNGbh3375+jpLZa58Ubb3bntq9Mud5vaQPsMRS5+SvE3yPd6YqqPTl/898qV\n", - "G3ugDybjy62KpTH2RY7HwbrSW4QKObDPjxMfHJgfS/wVc57EXPKZeejJ5zlZxiCb266Ftwn5zJ1T\n", - "VM8TZOzTbaffdXecIblgKD/tscL8nOtX9Be5Ja+XrjMXlfjtnC/MmaPyl8px168Xl67eqtYjUy8f\n", - "A/PqVNuOhbdOyfqCzkk9Oh3LbzYPDMzRvbE3gnYfT7l2g+hJjGTz8sjcUNQfj5XTpdp3YrtsfnH8\n", - "IWszuuV3lJyF/OP2P5pbT18H8GnYFb+pAPyVJRgagLh9IhAIBAKBQCAQCLzMWPyaqFT11PA/APgM\n", - "AD+O9Gfb+7pQDAQCgUAgEAgEAoHAPeOncVy/4MW9voFAIBAIBAKBQOBlxuLXREOKFfwUgE9empFx\n", - "6JT05XK0XGb2Ws7xy+5P9kpyn6FbolbLu985Y9uYWo7XK5NrpdevkZbW1XLTldBmHpQv5Z3lUj60\n", - "nLGWAWbZueyv/ffKGmt5aW5rz9Pw+KozLaetJasdfbQ21FLDjr2zZaq3wgfzx3o9g2sLQGRVXrQs\n", - "M+sjp0dvfH4Wq5K+UvI50afnp5Wcd/yzw4OWdeb3nu5zJaKZpvLiycXye3b14sIrz10qta76a963\n", - "ttWS9h4N1Z2nDy/fOKW+22erxGc6ucbT+7W8ziT2NP7Yd/VZv1IpfB2LbaH+06evXOzm8oTy68mv\n", - "z116ceHkviQva17zYlvHyeVdL96sj/LvPUeTy7caJ7l48GKc9cB+V+2OJTGQ813Nobn5REvln5G+\n", - "WRbhwfVx5pXl5ePMh/PslD7/lfiVl7dYT/IcHNNOXl5f9UMvtyiPpdjQ/KRziPqZtqmQ8uXNvZqL\n", - "Na6dZ7hcO3i5gOndSV+VmXOM6kr9UOMtN8d4OsvFKOtHc77Gf0nffXn8Tj5vxc/68rP6sfJcWhNo\n", - "vvJi2lub5dbbpbVAzsasdx2H847KzfGiud/L3SxHLjaV/zvycScukznEs+UQHXg5wWiTrMtjyC+F\n", - "7wfw+wD8KIBfb45VAP7IQjz1ocLuArrC9F87KwAXAF5zjvfRHDNuqVyv0jHBcrT7tsDo6+/xZiWU\n", - "h9K+QV0h0RujpJc1gCvs9N1Xxthuc74t8GVthpRDPgfwvHl/meEjx3+fbjZC04Nn65sM3b62U7ZC\n", - "mRIrrBurwmjjMj3zjS3GleQeKof5znN0bV0qA+7xOIS3ubaa8cZUvzf+uV2FWpd9fl3Re08uo23V\n", - "aofKpL5SijNuq7KNzZN9vpPLGUNz7NDS6VaBUPU1RJ4pvqOyq74PVfL9HMAzpPxb3vTGt3NDY97T\n", - "3xp1xe6SfJxfNHa0XymvKg869lBebqSd5X/TheVBwz7bDBlPY7c6mBIrxpshl1NyczL7vvr02Pkn\n", - "xyfnxr71xlzbheVk9uQt+R5Q5lnnC6+txuPQucKjPwYlux8bSj7eJ8eQ9aBhDaye1hdsitWqvlDc\n", - "W185H6C15nFsj/EGgD8G4BsBfAuAb21e9wkrc3tD78+b15r+G8537VZ2UbQlWhV2WxnYcTumJYc3\n", - "qC8wN3KOt0Gw0usV6gmkob1a0fgV0TP+tg3tc2qHHf3VU+KTeTNet0i3ZWA9VNJ33fB2I7RVVtbL\n", - "DeoF+420q5qxbqgP87Zp6JuezoHVo0bGDdHg95f1K+Gr2vXHedPGaIqu1B6r1+sx2z52juyT+BNv\n", - "P3CF1M6s0+b46nXRB8N81exhYxk93j7DzjGNbcOD9b0SXZlO2bfY3jy++Zq2cXS4ekTtb8UWTO+m\n", - "eV2i9l+PB7abvUyvFL+rlcPnFdmP+69rvtotMjQubpDKb7wpPHszjEeOB92WYk288/gX9Jl1ajRu\n", - "mzYXRG+L3TYePKbycEOvNdIYAnbxbfJ4vJMPt7rYpp/buNFtSEyvNq5uPWL6Vv7ZfpqLVGbjz+Kd\n", - "j1m7W6Q+zbHK+ud2Sp/pofb1JD+tgdUD7OwLomUwX11RXxurojb23/RhPmA6usRuawxury+Gl3Ny\n", - "fsP6ofer17HLM5a3La9p7j2nmLxAGrMeD+dIbWHyXxF9jh3mu5l7knxk9lRfumhontM4nBO29BnY\n", - "6dl48fyc86vRN1+viIbZ0XyZY5NpMg86X+r6wejqNkDc9lz6WDwZSBftvMv5gnV60fj5DZ3TfGU+\n", - "YvwbrpxjxqvxrzamtVk7DsWca99L7PyJdYddv3auaugm8Sh5OxnX4+US6RoA2K1pLBYsDq5oHrAY\n", - "WhFdXt+dC80bpLHE85XFB7DLYw291SOSyZv7eQ7UNZrKyjbBjtbqEcnLemI7ruWYNyd7fqvrZiC1\n", - "kcF4YVsaOM/cyjnq21lTKl+k2zbf6/WEM/e3fPGa8Cm6/mt0NuQDnt5MHxdCg2PD5DoavB3AlwL4\n", - "EgD/8si+DwH8GIC/03z+JAA/BOBnAfwggE+ktl8H4OcAvAngPRl6R6WYQCAQCAQCgUAgEDgwjuKa\n", - "6MsB/GPUVU7/CoAPAfiyEf3/IwDfDeBvN5/fB+BrmvfvBfBNzft3oa6s+hbUW3F8EP4vnkehlEAg\n", - "EAgEAoFAIBC4JxzFNdFPIv0V8bc2x4bgnQB+GMAXYPeL4psA3ta8f3vzGah/TXwv9f0BAJ/n0DwK\n", - "pQQCgUAgEAgEAoHAPWHxa6IhzyiuAPwyff4VDH9w8i8B+I+RPvPyNgAfa95/DLuLxncA+DC1+zCA\n", - "T/HJJpWNtPKYV5lKq3blqg9p1SM+XiGtlsRVkryqWJWc14pYlTMGV2pSvu9kHK9aGVdwuhZ9NHQA\n", - "dCv6eWNWMo5WuXIqtPHYneqoXgUo5lOroqnsHk8V0opzPC7zoxW7chW8crbhY171Mq68mKvGpZUR\n", - "tSqXjs8VCLWSXyV09ZhXwZL14FVaZBtydTSOI62wptUMc9XlvLGYDldrdKqLdaqOenpUXnNV6lQO\n", - "tmlDP8k1WiVOKxxuhVbOJ1RnW+mj8UPVA90Kg96L85JXfbFUnS5TzVFzbC43AQ6PqmsvBlmnqiMv\n", - "t2g8aix6Ve28CnKq/1Ic5OJliB3keJKTvTykduAYuZZ2d0j9UX1V+dA5KJdXPB9Xup7OpGqom9f5\n", - "uCevzqHeGF51Rx0nZwet2km5JOGLclfnuOY8nYuvkepX/WhLbcmOSb70bK95hs95uZh9QCs5qo6c\n", - "mOzk3JyPefGoaxa1mxezalOd/5ge2yj3XvOOrsc4/6uOvPld9aS+oOsNlV/7qLye/3rVhr11hY7r\n", - "Hb+WNiyLVgZVPZXmN9Yt09U8q/ma+fT0o5+9eVz1t5W2Ovfm8pc3Pvu+2k2Ps060erI3h3jzk+ej\n", - "XiVimVeXx5ALvv8SwO8F8Nea9n8c9S+KX1PqhPp5xj8M4M8BeDeAr0b9nOPHAfwmaverqJ9b/HYA\n", - "P4L6NlUA+G8B/G8Avk/oVsBfQK1UNKS/AMhX9ttgXMW4vvb2MKlWIds4x4D6oVOrErp2+Bs6dtXQ\n", - "sP/eOeYDTjvjp6+y276onPE9vufgiemqHrgqnWevseOVZLDz6GljD8e/Cp/vJVHJ50PtjzpEb306\n", - "M/upXUvVzdTmJfsoLXuw3at0N9RXp/iYocL4aqUlWkC/vTl3NF8q9VYXHDJ2qcofF4wZY8sp401F\n", - "hfEVfXNgnyjZReU4R5ozmJ4VU5lSCdmr/K18DgXPdUbD09lUG5V46ptbeWwUxlfecnkgBy+PAMOr\n", - "i1ufOXzN42eI7nN61r59a5F94fExNJdx+y2GV7KcA3ONobwviSk8H2rdsi/2mYfHYo20uj8wu57e\n", - "37yA+jroL67mpd9F3y+KK9QXcN8J4LNRl87+TvRfJAK1ov4IgJ8H8D0AvhDAX0X9K+LbmzafDOCX\n", - "mvcfAfCp1P+dzTEHb6yBb7gBvuEC+IItdlUhFRXqRblXhQtIK3RV2E0KazlG/VaPmtcDOceV67gC\n", - "2RV2Fb+sGhtXaLJ2uap+FdLqfVvim6vCGS6pahmov9Fs2iQ64IpOXh+thAV09JL0u2l44jG4oihX\n", - "zGKe1kjH0+pS3M/Ast/Qe7N7U7Grraho9K1yGlfx0ipdXPXtvNGrpyt7cfVKreBlr8umkiDrQ23K\n", - "tNWf2HdMF+xTObtYFTWrfMZ6y9lWLyxZVu+YVvczWuYLXO2MedtKe6s6Zgsriy2rLmdtbpHajUF9\n", - "Wv646hvLoLGnMjNvV3Sc/UX7SQW1ToU49WW1/Q1VCmY/ZPoqt9IgWoncbF+qzodb7Con32JXPY7t\n", - "Y23VxyFtrN2FI6P1NZ5uHRrMo1WRNGiM2lhcebmiNsyzVojk8TTv2vg36FYmzcnNMajzh7a1ePSq\n", - "A3L+BOUMjiOLDSCd/zSnaRVDss3q9R4evVzNdNj/bK5jP7yRasDcvwTzTfZPruTJ+cGqXHJO9GLL\n", - "9LpF3oY6T3FVVK1cqPB8+RY7/7X8oXHD+rWqjVs6xjZXnSNDq3m/epS2ays5Whuea42WrQ84Xtbo\n", - "+GTiu1wB28sNLIPnbzyPcT6qpL/NXRr3LBPbz6pxswwM9lX1CV4HGZRHb53C1X2ZlmdP5oOr9tt8\n", - "bTrI+VwOztrVzW829lbaQdpYO6a9RdeWmnd1fJ0PvXH0WG5tozkix6uuq701pupG5dC5RPmw11WT\n", - "U9kXee7iGNCxSiD53w3gjfPmOuiip99BsALwUzPQ+XzsnlF8H3bPIn4tusVs3grg0wH8I+S/aQ0E\n", - "AoFAIBAIBAKBlxVHcU30XQA+d08an49d1dNPQl3gxtse4z9BXe30TQB/KEPrKJQSCAQCgUAgEAgE\n", - "AveExa+JhtzX+jMAPhP1Fhm/1hyrUN+Keh+ocBr3RQcCgUAgEAgEAoHAElj8mmgI8U/LHP/QfGyM\n", - "QlwoBgKBQCAQCAQCgZcZi18TPepv0nn49whQ8U+tVmzgcfNZC/RYtbqtnLeCDVaBTCu2KV1+kP4Z\n", - "/Oqqt9T+tqEH1A8lG56jWNl09QB1CXGu7Gi0tOppRce21I5lvSE++KFaoH6w/hn1Mf55bDj8mv63\n", - "znmnz2qFuoyvVos0vi+xqxJlD/U+QVvQo9pmZAfyAcKFBdhWZlegffC4ukbqB/beaOTOAanNtZqp\n", - "teurYMcPR+eqBJqe1H829HlNMp01bY2mgfVnNgdS3zcbPEaqQ9Mdt1U+b9DV94Xw9BDd+GI+C6Mr\n", - "pwAAIABJREFUmNdc1WCzv0eD+WbZ2H+0+iDL3MTN6qnkGm3rVS9ci8+yHz6mdpyTbpEWI3mGbqys\n", - "qc2rzX/NbcAuT1k8sX+UYmaNnexGm31fY579VHVZIeXJxj+Hn//M/7kIl8lqcmhfr3CI9eH8bPHH\n", - "MgFd25l8XAWUY5fzBvc1Pth+Fneq95yvsr9xrrOYN5pe7jRaRker1RrPNBetXke7VVJbVVFjl22y\n", - "ks+AX31V2/O8BaRxY/zz2Fci59o5pvHI+ewCyXy2etTMpeZXHD/Wj/3Km++agjCtXTx5TcccsywT\n", - "+7CNb7Z91hwz++j644ra6NzM8cm+yrnCYkHzMJD6udLy1iga59rXbGDj6jzBfD1HOi9ZbKidOY/w\n", - "+oT9QCsS59YJ3vyVy4lmX55zma7pqKQ7jQld0Of0zOd5XmSfNhhfZlteyxhUHzxveD7kxSLnObMt\n", - "HHl4PaRgXbJsV9jFpPmQtbN5ifW/IVqin874xrPNmbo+Aa1PzYdNLo5BoDsv65pB18Nqb85RBtUz\n", - "t+UcBeziVXx2+d/NhozwU9gx9i+hLjTzMwB+z1JM9aCaeEuuTgL62bsq94zlXSR6Y3mL+b6LG4+P\n", - "Md8W6Lj7ftPAk/kYKB+5BSKP4yVuTcJjedAL3z4+S3yVcIhfuXO+4/mLt3AZg9wXBHaub3LT85ro\n", - "xvSdU7d9tHTxmvP9sXHB+szlGaD7pUkfuJ9OXmNjxvtCoy8njoW30Czxw7Gf2x7C42efuNaF3hAb\n", - "e1+QjB03d74UizwRDrWJfiG6FMb6jseXLaw0Hob6oH5J4sXXOdIFmEN3tcp8YdTHU+lLQu8LXw8l\n", - "+5d4yW3nwhc4Y+fF3HH+wlq/tPfkWjrPlzA0pvvas8xzrdemtlkCuS8F+r709i5Kgd0FqJcjvXUr\n", - "nHH4QhHo9+OhULn0CwHvS+ccnbFxigI9bpfbxsi63+v2GADwWagvjp4B+J2oC9v8yJJMDQCX2F1n\n", - "3nP52eZbwdUj7MppP0K6RYKVeuYS27TFxOr1+oWrlG6nPHLV0DYnsHLXFjQX9cTTlgzXsvcNDVTY\n", - "bYthtExGLqHMMps8JrNt4VFRu4pePB7rlr5dXz1Ct4zwWl6miw3plvkEdttVsAxGT7e4MFvYt+ks\n", - "P+vMaNn2FVwu/VH9DX1SGptLXVdIEwAfN1pW5pp1w35mx7gcdu4XKLWZyrCm92x/a3uBXTlqloe3\n", - "gADp8gppaXTWncaHvdiPTG9awpljhl9rOs/8nTdxA6HjxGhC29rcCM9DyuxrDmj6taXhvTzRjNX6\n", - "+w3RYqyxK7lOftfGs/JgOjG9XEgbo9d8G9puV+DlM42Di1qmZMuQK+y24WE6Xilwtt8lUn/n/Aek\n", - "fsg2s7bsq1zqm3PGFVJf474bpLq2b4LZh7zth3g7AzumuYb5I58yu7V5wxYFdu4RUl1xjlB6V3Le\n", - "xjaYT3nxxrbVrQtsmxLLrZTj2u14eEsCL8caT+fobu/Cbe2YQe3i+eS59LXP6ifm59yHXqunSLeE\n", - "QN1+9brw6cWx5nYGxXYbXxanlcTbBbpymT5YL6wL9gGdFy8bmdbo6pXzAK89vDmKt3pawZed+bLt\n", - "XEyfyrvR9bZFOnfmfNMHxxXrutkCZfUAtX81PK8eIPVls+0t0TC5zTeAbnzpmoXnAX6JHJ31XG4b\n", - "JLa1xriuEdhXOB9qfmQaun0V61nz1EaO5XTe6LT1By836bqD2yg0zq+IB+Pb/Bl0TvMN57gLWndf\n", - "oLt2Nl7MF81WW3TXNetmrrO8bNvY8fZ3Xq5SWSvKoZJr2hh7QHq9RDunrp4inYNkfm3XvaxTs5Ha\n", - "z+Yub7s7tiHqNm3e0rj0bHk0mGPLjKkYoJjqDKium//yGjRET1vvPB/L9W/5uK5fU8beF328d47f\n", - "+byyHK2uC3IN4WPIucF8T7TfEDtm6fbIP5XfMfSm0BpKR49NGZ9js/2c8bF9sW+cTqHfHlcZJ8Z0\n", - "VgZHZ0Pk2Udm9e8sb9fT5R3L05z9Xf++do7t4RtD+yyt2ylwebpufHFo/pjI/9wxtC/NfXhI5s6Z\n", - "fcnzoVzcjs3VY8efwv8Qenquk28HrEMmz7kj1ji5fvvmpdxxtetUv5kbc61J5sbk9csIW8zGZ2ke\n", - "Wvxiccgzil9N7x8A+P0APrIMO0NhCmp/qZDjLfhe4Ce7NtqvQ7Pp1yaEK3+8Dp5NnwQT+s/yfGb7\n", - "P8Nus8/Mcf48Fa58T7B77sLZPDtnr6k8tm1QtyvRd/E8/VidYXe/+xV2dnzW6ZnnZ4/zU8B6SnT2\n", - "zGmHTKxM8YWMb2qs6NiJDhp/afUut2uovjr9McLWGcwRC6zrjp4fw/WfzrhO3ObGALB71ndA22yb\n", - "x44NS7I4KOrvCZIYGxP/yTFk6Pf0B0hPl4V+BM77ve2fo35O6NLhuWTLIRgyh3CbnOzA8HkrA29e\n", - "6ozBz7X2wZ5tep7JIY5PtW0K/pTkmYav1VMZ1/N5HRv95xOaMo7Llz6PpBg513s8dfp6PvSk1s3q\n", - "KbJ+3ok7eyarMG5pzTX0IpiRW78UQXxWZ+g8o65ytbH+uPGXHH3PF3mcAr9D7Nnxl+bZw1VmXd7R\n", - "e59uXs3z2subF0fI2yurD0OPnw+Nv0F6Jd5dH8zoTXWa9XNdH17t+u271svOS7k5/yAYcl/rG9hd\n", - "sd6hrnb6PwP4f5dhqRcVUK2xSwa84LL7h+0WImBnRC7GIQ+7tkUEUP/snEzCRuM5tbVFiF4UcdGY\n", - "zOTdOi87q1yk8IPLQNOeC1gA3UWKPnhsD/vaveE8od/sEkCyqMhM0p2J2BZgNnnzw+w3dJ4fembe\n", - "rQ/QLbTDhWH0Qp8f7teiQfag9/Xus+koO5mxvo2HK2lHRXUMmjQ6RYv4oo38VPXJbUuLplLyTWQg\n", - "/kuTT+svQLKQbu3ryNz2pfM8VvuAPceEyc4Pe3ORp5tdm0S//EC++TLHt/mZk+wTGbgYiEEXSVcZ\n", - "H7G2V3m9JHHcxOfqgVzMcVzrMYtP9hvlSSe1XE46Q/sMw2olMcsFPUR2d1wnF7q+CyfHma2b23s0\n", - "37mLaM7lWgjGcj2QPl923rVLC3s2d+P4PY/JRW7Mx5gXuhhoY4YvirwvxvjLGs6pSkv9mQsxyPgc\n", - "I6UvGlrb6DN3/Hw9Fc/p8Ce5yp7La/2J873yyTm4tFhiHWpBF+PNCj7whb5X/IR0k8QpxGbGM0TW\n", - "S4oPLrDBcaoXwlrQ6Jx0T/EIoFuUzpuP+mzZoI0bnn91Acm+qPOG5WctzsK3wHL9hQ3anK0XLq0P\n", - "qi/xGoWLNV12dZSsy2w89nHjBxm/h+RIIK9HWRu1Pqo5GegWReECgbzm0T5cjEdtzTIzPH0DaWEa\n", - "jgHHV9w11mUav1iLXCD90PogyXFawEvh5Sm1jfdlHc+/TINzlhbZsfxF69nOeiyXm9j250jzLrB7\n", - "JILpa0EwoDufaVG+K5EZSPXIRWx0PcD64XWZytQc76zLXyN5FsEY4p+A3T6K94kK8//SahPqoWiV\n", - "2mxwfw965+Dx9LJhXxvs058Xy30FgWzCWcJfpshw3767L3L8jz1ewjHGPFD73Su9rcajL5/kZB+b\n", - "h2ixC4zsewxQPZR8Yh9/mTO/54oOHRpL+a43DuAXDivlCNC5Q8R6X0z18WByLq1TvlgvzWP3mR+H\n", - "jr0Ej3PG6jHMMfvi0DKU4qjkr2PzUZ9cdP44itm8BuADAN5sPv8+AN+xGEeHA19tHjpYSuN5NpmT\n", - "vylX2UNvLXqRUZqw9uk/BE9Q26A0QRj9h3uONTeOiZc5kZNriryeXY9Bb0stCqdWJB27QLptaD2c\n", - "0Hcolnw+RPWwlE/MqZvnOA7fBcq2cYpcTMIVdvlZkdtabIVUR4fQV19MDeHhELe/PYS/9YLiPn1s\n", - "6NhL8DhnrB5LnO6DY1m79627njjHNs6xvnGGnp8VQy4Avg3AFwP4Z83nHwfw+YtxNAxaNc7eayXG\n", - "jRy3SkJcOU2rN3G1rLWMRRWNOlVLre3WOcY8crUne7+m91uk/GhVqXOHHrfhClxSka5TyTNX5c76\n", - "m+w3cHXY0ZFVC/V0yRXWuNpUJce8inpqY9YXdrIl1azWyE/+G6SVKlUmHp9t5FX7vECXTxrDrXi2\n", - "Lhw7d/rdYFdtayNjsYxapUz46cilvHj6Ihsm1QbPRd9A6uvKE6gNV4PTONGKiOxT1f/f3vvHzJKl\n", - "d33fvvfOEl/PzK7HoJ39RWaVyBJLbsA2MJ4ZI48jvHZI5JAQESJFIRv+SZzIIJR4d50/bBKiOBsT\n", - "ixABggi0gG1iASFYwNq7yBbJ+14uTrJLrr0edtfgkFniMbED3S838frtrvxR9XR/61vPqa7urnq7\n", - "+73fj1TvW111fjznOc95zjnddepInOztf1mbqZJrDL9lTN/iqHq/LKSTyaNvsMzeuKpom1qQnjmv\n", - "TM9sE/r20axu2AdFGlqfHFbLwLCfzfJhmVmPHDb0zW+u0/Sqgj7Yrppj9vyW8qpPXaL9BtQoD8fn\n", - "8oa8ZBPrtsufIx7rTt9gl/Vn7BMj/4JPWrdNtTd+4yH7RbaRRHcdH5XFZ92FTp5srrf8WEX6Td56\n", - "2ml/qu8eGVs6jzbzfKMTthPWrb7hVN8unvkY8e2zWfMYGL+pm49HUgb192oP2j/2+WUuU/YGUO13\n", - "1N+yXrM+Y9ke46zfIK4+jNNp/rfGRlomLddS+m5g85in6iuzwVK5m/POOE36j9abj9k+Fu10Wvpk\n", - "/6j2lfnmLFx2v1QuDse+tKcPbbUJJPEyvy8+esaTkUupJ/Y9rGP1G9omAvYdrHMuN+s5G0fp2I39\n", - "0DJJU8ut/VCmN9Zd5is5jNY/99389uPoG3h3BC5PNldQ3WTjgqPyt5r/n6Zrf/sYgjT0OU1jjDHG\n", - "GGOMue1MPica8tbTvw8gFkW/DcC3A/jpySQyxhhjjDHGGHPy/CoAPwDg5wH8QwDfD+ArjyiPf1E0\n", - "xhhjjDHGPM14TpRgpRhjjDHGGGOeZo766Ol3Fa6HUP/pyLLsQLVCex8UYPOGvgrtfWiA9t6Hdync\n", - "CpvXp/N+R0B3/zPeiyX2UInF+4HuJch7l/GePPrK8yCuX2Kzn5m+3SjC615FvC9SvJ6c5XuO7qMQ\n", - "5jE2+9mEXrnsS3T1h+Sa7vFU0rHqUHUTLOg+l53fJBXxeBEy7yWp+ccruO826TdprfeO030pWdcB\n", - "77PD+ziyLWp52L6A7j5EXC/8umXWLe8ppvuw6ZsqF+jutZW1A93vMPIOefXVz5lOdO8j3ieK4Tyj\n", - "3K8WwkX70b2stG3x2+BYZvSUZyXxSjYdhMxaT0PfRBdp8d52QeyLxXZXkT1yfixf1K+Wn+8D7T2+\n", - "Mrsi/9HagyvS0D3/gPbemOon+D7rcsjb2i7R3WKBr3Eb171jX6XPbF/Zlg0hD/chlfgA7gceU1zd\n", - "mzfyAGofy/bMdvycXGPb57pVuwPavpxZUB+X7T+q4Vl/uqfnFX3O9rtr8mv1OdoOFtjohm2Lz68o\n", - "TfVRHJ6vcf5ZP6p7q+p+gbzfrPp+tqtsD2bVGetDbYDHJto2S20g6gvo7vXG5Qa6e+IF2f6PmT9T\n", - "W8yQNtHa65Vl4/GO5l0KA7R9s/rP0Bvt+9zZ85P2tO3sicjlzQjfwG2Wx4K8/x1/1jS4HEO3y+Dy\n", - "Rh/Z1z9r/6L+P+yJ+xag7RNo3+LZ82jv75nJyPpmf8U6QnLOds9+qCQv64x9gPpxoDt2Zv2rz9K9\n", - "T4FumwTa9tU3ZtNxLbcbtiUdl2ia9H92h+pBX0ijb0jVNiK+dvoXoPbl8B+hO1P9cgC/G8CvbM6P\n", - "QSViaeMLWJm7DOay+H3Xs0ELk3UW2xg6oCpMMnv3scr0lZV1qAxZ+tzwhqSnTm5oPtvC99V7KU92\n", - "cjdBDNyH7PUWTqlv8pV1uqUJOMfFljAleZDkGWluy3M2IOyhdpPpZV/bHpMhdsaTlmwi3YQBMF55\n", - "YgJbym8IY8sUaW5LT8P0DfQ0HtD2oaUBAU+YddCiEyWVY99X2w/pv/raoqJ62rV/3KVtl9AvHTEg\n", - "zjaZsi8tDkG/VNkn/q77fmZfJmcy4QC5hvrNbV9o7yrX0HaQ2Uakq33g0Dau6WOAHEM4pC/hL/3H\n", - "3r4n0/UC5S9lNd4Qnzmk3Lu2ofhSYlv/o+Xb1ceO1UeVJurbYL0c0j8sgNlzO+S7F33bY3wvgD/Y\n", - "HH8CwJcB+BCAPwfg/VMKNQB+re0VascRr5Rlx6KvF464/NrZeKWthuFXW1cU9gmlEZ8fYfM6Z1Cc\n", - "Bb1Wml97y2H4VcBVIktc41f8xud4LXe8or35JbK19YfqIjpTzu9REvaK8uPXDvOrjis6QtaHqJ1R\n", - "RXHi9eMqf5xnrxfXV3lXaP8Kw1t2sAyg9KOuoi54OwfWG8uPQlqsGy5/XFM7y15/z/bG9nSFug6e\n", - "iDyc52XzOuXHaOs+dPUQm9eX0zF7Hu0tHpr0Wq8DD/1zfmyX+orrKEPYfdZOdA+xqD/eVoQ6ytZ2\n", - "Jfya6hXF54PtP8qlr9xe1G1hxk9OhI3qq7W1LrncWm+VhOEtMzSu6jLaA7cRlo3saNb459lrJG8l\n", - "4dmOOT+uE7Y/bishy3JzPnuN7pXCRVn1Vftct1y/kHOOqz470UPHp7Pf5OsrKX+0q5WE1/TV/wDd\n", - "+nnUXAt7jDSjHdC2EOs8yAbXPpbtIisf0LalRWO/aktapyEj25/aQJzHr0Pxmfs0JHFYrmh3i821\n", - "1hYg4c+zrRFY7kfUxsOGuZ/RrTs0vUu0XtW/1vFjtMcDrCctC/UN6RYT4ZvV33IbyHQW6UW/r/2a\n", - "xol78csE921qM4+askb7yg71AVrmsHfygev+ABSGdbFqjojHNPVZ3CYk5HootszxWcboU5ZNWa+w\n", - "aW9Pmj6N/U7Uk6a3kHDcjz5CG667bPxB8dlW1luwLKgdVMj9pZY5dMrtVv0u14n6f/XFbC9XFKbJ\n", - "b/a8pCX922xG7WiFtr1zG1pgM6ZYSBig1aZm99Aan6btgcdwzRMtrW2KtP01+c/uUdzmia5Ov6xj\n", - "Tc7nDrqyk2ytMZL2ZeF/wm+tqJygtHjMo/40dBj9FKfPelxIPBrPruv0qHwlgD8A4O8B+P0AvuK4\n", - "4gAAKqCqgGre/F81R5Uceu+6+XzdHBpmJUclcTnviyQvDjuX8JzHdeGYJzLGdU0vwmqeIfsFxdG0\n", - "VpQPyzSn40JkUZ1oXC0/h7toDo2/onLwkelSdcBxVWau3zguJL7qJcuzZCdZfWf1tkJXjiE6C3lL\n", - "8Rp9Ami3A64ntdG+vPrKpnrTNpLZoOp/Tun0tddIg8OW2njWZjI5SnXAMmn8Cu32ldUrt5lCeQC0\n", - "bVJlV7+0kvzVXtnuQz7VK8t8IZ9LOs9kymwhK2vIwPmrfahNahphy31+XNs810lmv5nfFJ+0rp/M\n", - "n2vZWe/b/ACHVz/JNjeX62oPqudC22n5gZJPmss1LZfqLvM7mR8g/7PWp5Z1m61pPaldZ2llPpRt\n", - "lNoEgLwdaL/DeXM9cTvK6ofrk9u7lmmLv0j7LtVTn0+U+mjF1TJwG2A96zgjs4U+W9G6uKBDw2a6\n", - "yPqUki9QeTVcNt5Ixkm9OujzR9vKnbW3Ur1ntq/6Z/9zTXKT7bXaoOp5JWUt1e9czq+TsM211Pdk\n", - "foXLpvXAbYfLTuVstWHWqY5VOL7k2+qPuS9SX61tsNQPDLGRbW0ks3HNi32g2tSqnhNNS9/Pld8L\n", - "4F8F8McB/BF0Z7XHomr0ssT2tS+l6xx3h3xbjxrxc9Tb8uXPFbo/7UdFrygO/9o7pGzZZ46rZc50\n", - "wAZ3hc2z0rv+rK2yxLez2eOo+piqyt3HApvnzfvWTu6absjFay1KtrSNobaW6WzbY6ixXm/XNWBZ\n", - "WqVy9smhOi3pvlT/pTR5DVFc2+XR1Mgve0wwWKC9riBbl4BC2hq+z8+UHrtRn1AqwxCdlepoge2P\n", - "HQ+RdVt6If+2NlaSs0L/40bqe4c+shjf4JZ0E/UPDNP1Lu1L8w5Zw6/GN+alx8iH2iOw8YMlf97X\n", - "L2Q+uERJ3iadzmPSfeuUGbW98CPb/OY2nfB66V0epda1Y9tsY5d2ts2Gtvk6YL/+iN+tEGnFus1d\n", - "llpkY5m+egpdIslnmz/R823y9ME+imXO/Oy+/ajmF/SVL2TI1spnj1Fz3KhToNt+Sun3+UTOW9cS\n", - "l9ra0DYeeT/CZl0op8dlztZUD/HPMUfRMWFzr7Vmk/1w5FHSs+oz8umTZwwbYnrqbbb+MxV9ia8A\n", - "fAnALyf3KgDH+smzarfBFtphliqrr8OTvEZfN3cIfenvOvnd1cHuI8OuMu0zgc/SAPKXlRyDXQYR\n", - "u7BLvWxL51h6OvSLglKa8WhdNjhkhxv2Nla7PTSd0Adws+tkh9I3mdz1y7Mx6Zuo963pnbRzHchY\n", - "cvRNwnf5AmofShPVuLdPX3uIXzqVui0xVL5tg/pjsItMQ76E2OdLtl3Y5YuQXZlqzBVhgWH66/uS\n", - "bahf2IVs4jTkSzbg8LFG34T1kHX1x2Dbl/B99UNxjztRPFX6Jorm6eHUBwPMOclqjDHGHErpl3H3\n", - "hduZ4gudsXAdnhTTTxT7XmZzyuz7GGyF7oLSUvpDwu2T/77sKk9Fx6F5a7pjhDlQhvVC5JtCX6yw\n", - "C6vtQfaC6/dYHDt/YLge9pW19HKIKdnX/+wjZ/jFKXzeWByq+23xS2XPrp+Cze/DPnaRMZat8Isk\n", - "bsL2jl1vN5l/6PSQPLO4u4wntN9bYvPyj2PXxVD6+pYxbLbkX3Trk1NhifpXTtXJtrHYtvoeYywz\n", - "tD44r222eApjrKNzjt8KNN9mxOLUYPYaNvvpPJbP2FwDsF4gy29DjIW5rX2YaF+s9dsAI6zuZRTx\n", - "ZL+tzn6OtDgXdzZpa3mU3vw570aWdVlJJyxfRz8Sbx1X8m7JEGUq1UXkF3tIcr7Nnjfx1qb1Ppf8\n", - "XH7zWAWnp7Ks4z1q65r3XdI8QxelsqotFMvP8j5JdCFlz+qhtYciknpTIg7tI8Xyr7dGiTVY6Npg\n", - "p7xSH+vPwEavXJ8i71oXKOghCP1jI8sgO9I97IBW3TKteknur8uuthH5cQdCbbvT/hqbY1nXaaNs\n", - "5xxGy9GRK6uzQrnTMga8Di9JO5VZ9/oCOm9Ya+maSWy+ZSe8X1yE0f3aMlsp6W2o/WVx2b7Ctpu0\n", - "on/o+BSmUHdAkjbrBej46049IKkT1hEkHZIpY5DN6H6Kkb7sxbaOI/53a9rifzvlVJ2UbIbOOz4g\n", - "0WNQ9K+sMy6vvk+A10E9kvSkfOxDO/SMEzq2WGgHfeVjev1d7NG6ao+HWvEClVfGUX3jgJJtpP6f\n", - "+5isnese17EefSWyaHsc0q9HPEmvdQ/o2F1ad6Ev3quR7SPo61MfIfUvrTFg/ODDe12WxiRo1916\n", - "b0CgbWvJeWesEfloOwiyMUTEER+jdVTq83iNYWt/9EcFG2H9KgVfnZYl80uZnBymb1wcaWZhkzFA\n", - "xz9hU87pt8c4R5762b0xxhhjjDHmqWbyOdG5PnpqjDHGGGOMMWYiPFE0xhhjjDHGGNPCE0VjjDHG\n", - "GGOMMS3OdKJYzeW4BqpV85+PuDaX6xUdkUZ8XiXp6n1Os0qO5m1f1apwn+Xj9DQ8yzLfLHhdh1sV\n", - "0rmmcy1nhL+Qz9Umj1KZOnrLwunB5VJ5L0hWPueyZPnHfdZnlOeCjrmEmSd5qrwXIh/Xw4rS4Ly4\n", - "XE06gMjLMnFYrvtrSZ/z1nq8SPLgdFdoLZAu1us12raR2d4Kbf1zHWb1O5f7/FnTUfnZdkNn2nav\n", - "C+1L2/JFco9tTW2Jdah+pJSX2gTXJcuflf06OWfda9vU8s1FD9eS33UeJ/Vd12QnrPuszjPdZO2T\n", - "bVjtn+NXSRpZO+/zBX06KOmV9cN2rH7kIsmPbVptdl7IW/unrM9g22WZNE7WN2m98udSu9P2q2E0\n", - "z1LfWvI5rKfwWaq7Ur2zn8v6iVIcLYe2z0yvEYavZ+est8yPaD2rD9N411RGvp4dpfGEtint67V9\n", - "97Vj9f2lfrSvTSW+pdVXZm2D7T7rq/r6EpWppC+tI7UV9lHqT0SPrfq6TmTgdqH+os+XZfW6kmvq\n", - "GzWMyq51qD6E9atlYtsoja0yH9dXt9qncX95vbnXaRNqo2xLma64fZf8dma7Mubu9Zeqn8z/aN9Z\n", - "6r8S22j5UfVdFGZazvFNORXGXbsZiZ2yLqaQ8RT26akwvt4jzSxt3Rh2l/x3lVXDx1tIS5vAa11s\n", - "y2+ITbAuVkkeN8XQTbd3oWS/nNc+9jWWTfKrusfYOPommcLfXGLzRs2pdVGqw752oPZ0jDZzqE/W\n", - "dnZIevvGrVC/zTDeXD1WulMy1ubuh8qwr17U3sfwYX39qMq6zb9X6N8Ufl+mGD8A09josex+qC/f\n", - "ZTyxL7vqYIpxw5RM4UcG6Mz7KN4EV+jf5y72eor9Virst/dT7MNXQu8NmQ1z/qXwQ/Ys2nXmHXrQ\n", - "fBZo7421La+ZfO7TKV9nXWr8Elm6sY1EFm/btUwHWXgKN3utIEepHZb0GIPYbfkG4USijrbZb3av\n", - "VPb4H2kn8s6eR7f+SnkN3WPrLtr7WYZM/BrpFXZro0DtD/rIZFP5F6hfO36nOYZ868d70436TRil\n", - "P+R+DPSzweE2uC7ZRpbyKnq2GUX342I7G6qX7AuiBepy9e1PxvIkaczCX5Rg+biN9emO799t0t91\n", - "n9aQ73ls2vcCdVl3taXQ1ZNGjpAvq5eS73wWZZ9Wmjweyi72oej2FaEDTb8E+6xdZcj8HfejQ1hJ\n", - "GuzD9tFt7JVXinsXLfte212pr9rmU7fJUtLpFTb1tOvejFPu5Zil+wh5n8r9ZpVc25ZPX/hdvvAr\n", - "jYOzccQuhIwL5D6hJHNme/v4xZI8TNZnDSX89QJ1uyjpaNv4SdMMSpPE0OmN7H18Tt9yB0N/Uez7\n", - "VnlG58f8pWUs+hzCkG9xpvpm7qY5xW+rd2Xfuhjyq+SUv+CORfYtotr30DyPYdeaZ+xcG+RhAAAg\n", - "AElEQVTH+OxEspTKmOWrNrJvexmrnUU6y3q/smqF2+GHxib7tXMsH3GbmLo/j4Fq7FW7K4f4o13i\n", - "7lPPnP4C5V+EbwtD+sYhepyiTQ39dW+brU/d3x/yC9pN983RH/IejpmN7yrXvjoYsfz+RfEQ9Ncq\n", - "YPNNWXDIN11D2XXGv8+3XA9R/jZoyLfKHHeXXz1PjUMc9qmUbegESLlbuL5r2rsS32aP9at19qjJ\n", - "DPvJfoxJh+YZv2Dpt/6HsEs63LbVRvp+XetjrIHRnc1/3Zy4yJCyH6rnbb8CTpFnH1pP+9r1E/T/\n", - "Ijo2JZ1MpasZpp3cvNwc/IXVLhyynugmxirB/RvMax8OsZ/SJOxG1noNZGh/t238PlV/z09A7JvH\n", - "qX4huKtc+06UT7X8KWclbMPQXxSPwbF/mTt2/mZ6XMfDsJ7MbWeXR8uMOXfs0825k9nwgXY9/S+K\n", - "59joTnmiaIwxxtwEHjgbY8xTjR897YMX8vKC2eyRIX3pSxN2NpP4S9TrELIFtnztMonbRyx4VTm2\n", - "LUat6D7ns0zu96WhMvLi6ThfovvI1ZAF343O1i96CB0OgV+uEgv4uU5Z/kh3SXFLi+ez+tbFw1Ui\n", - "Jy8I73v8LNO7vvChpDcup6apR5ZvKX/VTSywLi3e1sXV8T+LE2npS500XMTX8nH98jVNawjZiyY4\n", - "j6GPDfLLRrL0KnTl5XhZ2Et0X7BTkpdlXaKruyH60DJrXWx7MZTG4ZciaP2U0o12xEefX2O/w3mV\n", - "2NaWOb9MZ5lfizhBSd5tj2my7GpH/EIS9v+qb23T+jKbUptaALM7kq7qSsuyTO5pv5LFC5lU1kt0\n", - "+8tSW9L4WTlLvn9IH6R67bM/LlPWJ2cyZXZUklvvh0xqZyU/xkfmN9Xe2fZKMmQ65fJkZc9k2/VF\n", - "Oxw3k0vrIKPkb/lFIqX+SMNve9ke951s4yW/n+XHlPw/x++z75J/5DL19WEqi9p7ljbXifodtR/W\n", - "VVMfrbFgE671IrD4nKFjQi1PpFka75R8/dB2GnrlPjnuqb776jVgG+UyMNqWkZwzWh6TMHRAaYwx\n", - "xhhjjDG3kcnnROf8i6IxxhhjjDHGmAmYcqL4T6HeO+YzAD4L4L9orr8A4JMAPgfgRwG8g+J8FMDn\n", - "AbwB4IMTymaMMcYYY4wx5kjEa5bvAfibAL4ewMcAfEdz/cMAvqc5/wDqSeUzAF4C8AUM26DTGGOM\n", - "McYYY54mbs2c6D6AnwDwa1H/WvjO5vqLzWeg/jXxwxTnEwC+Lknr1ijFGGOMMcYYY/bg7Nco3kH9\n", - "K+FbAH4MwE+hniS+1dx/C5tJ47sBvElx3wTwnjzZqmqOa6Ba1f8BoLoAqnlzrCgch4/zFcXXcHzt\n", - "ojlWEm/e/L8uxI0wc7TkXMvI4S8onSZMpzxZGa6TtDjP5jpA1yKvVZJuyKh5rOhQXZGe1jJr/Au0\n", - "y78q5M/1xuEvCnXUJw/X7RzteivFY/2pXvU80uMyVpTfNR1zqstMx5VcX8n9iH+Bskwcdy72o2nN\n", - "5V4mC9fRnOr3WsJUSR5chpWE17zUTuaSP9Vby760/CV7yK5n+uC6mqNtx9qO1V7YVrlt8Tnb3bWU\n", - "JcuX65T9D+ta81mhawslvzZH2RaukzRVx9vaptqL+hK1A7ZxtgH1J5kPZFslnRb7hKwN6/UL5HXG\n", - "spV8D5WxJUOf/XE9ZH5Q25O2rVJ7upB0ta9R3bEdZH2k9jlzdMuetfG+/pb9svicoh/O2vac6ijz\n", - "J0N0zPeu5Vz10Oi24xezMUjpXOsyK1efrWmZuRwX6MqkvrqQZscHXUtc1QWH6etft9ltyV+pbWT6\n", - "1kN9qfpe8qnrsWWpvrmc2vdpe+izdS5LyY9ktpbpm+q542tLuldZM9+Ujd/U12c6K/mSkn/gvmDb\n", - "+EDGAi0f1tcHq39Sf5/11yX/pfleUPm17fB/HvNm7TqrR+33uS1SW78ZbmoPprcD+BHUvxr+RQBf\n", - "Qfd+EfW6xT+M+vHU72+u/3cA/moTnqnQnUBXAK5Q/3J5t0eOCvuVed94h3AJ4JUj5Hso8bperocF\n", - "gOcOSPMY+j8lDi0/x19iUzd83hd31ZxvC3ssprCPIbo5RA4Nm8UNR7cSWXatwyH5nyt95VgCeIK6\n", - "X7jTE25qdq0jDb9vHe+az6kR9r9vvWn88GV35Dqzq04qAA8BvLqPgGfGufmMofYT40dg+xjyJjik\n", - "H5mKfdrFsW0lG4uOyaH+aSSm30fx3pSJE/8YwF8B8LWof0V8EcDPAXgXgJ9vwnwRwPsoznubawnf\n", - "TeffsAK+8Z9gsx6yj30bH58fOukZyil2PPs2/iF108cUjeAUHNlQdpEzKxcPlPgpAnagJX3MMN0g\n", - "e6w6mEK2fTqXXeQo1VF2TWW5UzjfhbG+eDhl7qLtq4fKPXb5Dn1y5xGGfWm4y8BlieO89Zy/5d0m\n", - "56F1kLWxbe1613Y/w+599dQD2CHsM44Zq00cOhEaGn9oHjNsdLEA8BjAA9zMOK8kzxRhD2GfdnFs\n", - "pm5fRyrjjzfHzTFlQX8lgGsA/wjAl6H+RfH3A/hmAL8A4L8E8BHUbz39COqX2fwAgN+E+pHTTwH4\n", - "Z9H9+TD7RdGYXTmXwa4xxtw2jul/7fuHcS56OnU5T12+sXhaynlinPcviu8C8HHU31reAfBnAPx1\n", - "AJ8G8EMAfjeAnwXwO5rwn22ufxb1BPPb4BmhmQ47NHPKuNM1t5lj2vaptKtTf/T3VPS0jVOX89An\n", - "gs6Fc5XbbOEcK9a/KBpjjDHGGGOeYqb/RfEYaxTGYAHPFodwm3RUFc6PSYXNepPbxpg6vkkdaV6n\n", - "YivMKcp00+xrE7e1vRlj2gz1k6fkT8eS5ZTKZJ5yzvQXRcyaV8m+3Fx7BMxea649wGYx8n3Ub717\n", - "XN8H6lfL4v4mDkBp3cHmDY9PgNnzdB+UByS/++Xwa7GTNNZxH3XT7ou3Po8XHCwk75c38rTixCuN\n", - "H7fzWacF1G9wA+n2CdqLu2mgNqNHlyPtkINhnbfKHWnHNZDMD+ie6mSeh13rRe2iINu63CuSjaF0\n", - "W3GIdfrNwvfZTMJIObaln5ZRbHZdxrvYvLFNdLXWC9DRcZZn0TY073k7HttYKw/JJw3TI1erHqUN\n", - "r2WWum/l08QNG221uZA7Xi89sO5b+RKz15K01MYH2HerzoDN2zqvRM+RNtBu59TuWc4+vQGbeGqn\n", - "JZ8EbMrb8gF9+UUeQejkWWzaH7fFl9tppH4c1D4guo08CmXJ7CFD/ay2j1ZYbkPqg7f5EmkD1TXq\n", - "un+INuGnr5DafamcRf/Z1x8C3bah7S3iR92G/OQTO/2T+sQHkgalAwDVCi39p/YV6aBcl52wnGfY\n", - "4ROs+7mO72jQPqXYb4svbH1GohP1FwV7T8uDTZx1u+J+Qf0PpL4Tv52WAT1xtZ/jMZXaF8p9s/ZF\n", - "rbL1nfeMB1O/oXKQL1pfizohf6u22tfGubwpIvM6PI9pesZW6zJpH93Uf6ec0k9lPqLYRkLPPFbU\n", - "MSz7raxdIy9XX5lb9cBj+0fDdb11LB7l7evzqb+a3RPbfw5YvwEZBVvnfjDpawHym0vKg+9Tv7vW\n", - "0XM4z7ncpPibFmOMMcYYY8zTzORzonN99NQYY4wxxhhjzER4omiMMcYYY4wxpoUnisYYY4wxxhhj\n", - "WniiaIwxxhhjjDGmxZlOFKs5UFVyzOm4puvXyedVc8yTtFaUx6oJf9EcGv6a8ptL2qt2mtUFyTGn\n", - "zyQ3kIThdIbkybJeU/xrkeFa0tbPLLumxfrmcHFcJ/fiGuuU64vLy+Xgg3QD0LU4Mvm17FmZVZcq\n", - "t9pSKa8oE+tc76luOL2VxM/siG0msy2+f4HUvlnHgMirNsX64/rN7DyznQjPOtNrWXk5DMsWOrpA\n", - "ux1pfqxH1WmfrGzzmT9Ru1IbuUiuc7oqr7ZzDqP2xroP2dQm5ujqW2Rt1bnaL+uM88/qlP0W+wVu\n", - "r9mhec+Ta9eUNtlhyzf31SWHycrBdn5B6ZZ0zj5H5Y3ySjvq+Kisb1L7mSOXMdNRZmOsz5Wkp74n\n", - "a/OZr2O/lbWJlYRV3655aZg+v61tS3V9IWmqnktpZ/mqPKo/tm/Ok/uszFeoPJk+1Sdrn9enF9Ut\n", - "10vWNrK2UOpzSu1KfWzpyHTMbTkrI/u5LD16U2VHhpL82s5K/cGK0u3rNzI9q61mcfXadTKuLdlS\n", - "1v/36Yx9gNpfX72V+jz2i9vsnNvTXOLJeGdtBzreiIN02hmvaN+vOi6NZXicnNUPj3lUBxcF2+vT\n", - "EeuGfVTWjrbVs4wVpuccX6laYfqX/FSoX5N8t/BZw56jHndhifpLhZssZ+R51Xy+j7b+T1HvlwBe\n", - "PTCNJXI7MxsWqF9TPWX972Jfp2iLfYxtY5xe+Mqp/MUCm20X+piiTo7ZNo9hY/vk2RdnLNvgejhG\n", - "neya5yF1dxP1znlMnR+nf+i4YonNdiZjs0B3zLELu+hx13HDufQ3Q+WMLdfYFi6x2V7lWGXt62tO\n", - "ZZxW1VuyTaujczA2ZYyJ4tDBxhDOpdEewqFOcxvbdHgqjbKPCvWkts+ubkM5T4Gp9TQk/Ztq97vm\n", - "E3Y49UT6FJh6UnrTnNqEYuw0902vL5595njEwOom21LU7b62MeZYjonJy22zrTHbtE76D9HVkPHT\n", - "TdP3hXTfj0c3Ael7tv4zFefYud7EL4rnztMweTXm3HC7NMaYLvaNxuzF9BPFM12jaLZgh2vM6eF2\n", - "aYwxXewbjTlRPFE0xhhjjDHGGNPiaZgoHvM51W15L7fcH5sK4+rjEvVz3Fk+wWLHPLOwh+qpL/6h\n", - "su2ap17ft2xL5Lo/hCVO87nuko5OUdZTRttlXFviMDsci5J/WuIwGY/BWLYZ6fT5k6zd7up3s3RL\n", - "spwCQ/qJKrm2b/pT2t5QvZ6S/ktoGx6r752KfcZEu44Z+vrpuD92X96XH/9X+vzsVPWVtdsx0xt6\n", - "b8w4u8J+/pz6uZPlFJyLMcYYY4wxxhyLyedET8MvisYYY4wxxhhjdsATRWOMMcYYY4wxLTxRNMYY\n", - "Y4wxxhjTwhNFY4wxxhhjjDEtPFE0xhhjjDHGGNPiTCeK1Qqo5kB1DVRVc8S1uL5qrnMYjsNp8FFR\n", - "PM0jrl1IPqtNmoDE0bgriVMlMkS46ya9Czoi7kVB5gu0y77apNUqu55zWC3jHF15Q9clXWrZ9d5K\n", - "0r3ekq7WJde71kPUNesrsxctU0U6n1MaoYtK0p+jra/MVlj/mQ4vKD+WLTsv1RHrXmXVulO75fuq\n", - "o0xPF+jasdZRlLdUpkrC6D21UU5Xw2XpZXZXqn9Od46uzFrvqn+NqzZzjbzutZ1o2ThOZqtZm4vy\n", - "qA1kvkX9mca5oHui47VPUr/H9qhlZ5u7kM96aNtlv0Bh1u1G7bhkQ9l9qj+gEFfbj+qvZFdazpLt\n", - "cli1izn1KX3lyeq9z2dmvpLLltVH5huyNqrXqV207ER9Ptt11ueU2gPVx3p8wO03bIn7R84nq7us\n", - "DyvVX1Uom9qJ5qV1qXagsvT1o6zLzLZKesz0rH5D/WFWL+wXVHb1f1l7YJ1xn3gt99S+2J+o3JlN\n", - "8zWql9a4jW1j3g6/HoPOJQ9OvzReY3vI+h4OUyVhuGzcZliHJf+SjQOydpbZDtVDyxdl4+lSetcS\n", - "j9tk1seq7KU2memBZVtJmMx+Mx+U+UvVNdftBXIdcptaiZ1l5c3aNNts4s+mZ3YTmYxMheneBlvh\n", - "cJ0sAdwdQZaAZVoAeG7P/ENpQ8vH+e4adyhj6Lsv7RX2qwvW4RL1Fyrb5Dyk3ofU61BUp1PV3VhM\n", - "bQPBFHkMkf0U9L+Pbe5aLwsA99FuK1PWLXNIWz+Usf19xpj+YUyG1i/vEffswDhjchN2uATwBHk9\n", - "De1DhpDZuvbVx/I1Y7WFPl2OyZT5HLMelEP6IK3TMev4GP5a2beeWP5d0hi73JfA7NUd8t+LUzHk\n", - "XRgyURy7kZ5Soz+EQ8rBnd2+6RyS/7HqYJ98T81exqr3m8hbw4/hWE+hPo7ZmdwEU+l46GR8l7y3\n", - "2fQx/Nu+VACucJoTSSY2kT43uz41Mhs7Bf92zpy6vz20fqPtxROE+kXyqdnOKcp0qiyA2XPwRLHD\n", - "lL8o3jZO9ZtoY0pop+1Ow5z6QM4Yc754nHT+PMV9xGz9Z9IczgxPFIfjQbYxxph9cR9ingZs56aP\n", - "E7aP6SeKZ/oym5045qyyQnt9xk1zooadstweZDIqAJcTpDmG7bH93JZvSPrq+tzLOJX856yXc5T9\n", - "2DKP5T+G5tWH+qBj62YfDpF5aN/0tOnlNnFOY6Wx2ccGlnvGO1cy+xhbB6W0jjk2BnC+E8VKzmNC\n", - "tkCtVPo/u4N6EhD3gyW6FV2qEO0cl3Iv8po1eUW6VwAeU1iW75LicpzIJ+TL5NA8l3StQrtsFcVd\n", - "0L04V0JXrNdLiqM65vJEOGaJrjyRB4WZ3UtkkbJ29K55cBjOj9NhWSLOQ0mH62CRpKFlX1C4KM8d\n", - "1PWv6XIZWEa+HvpcoLafSH+Ftq3zcSmfOY9LsU2+x3WX6ZQPDsvlVdvL5OAwQDsvtrOH6LWTtZys\n", - "B05/SWVV2AYUrmsOm8XPBs6R7hXabUFtTvMKeRfoysB5XGHT3hdo65v1pfpfSDz1OVoOPedyq5/N\n", - "2l1mCyspf0Ymt+pay6w6YvlUfk6j1G7j/iU2bZfLlNkOxw8bjjise/b3UbbLxFYjvRXqtpD1NSw/\n", - "55X5Wi1rZvsPKV/WRdMeZ89TP7NqfBvbEsvOcrDcWqfqq9Vfq6zs47TMarfsTyLOVVL2LL/EP87u\n", - "oV1Hql/uR5boygCJW7K9zI+XykdtfqZruiPsEl1fjU08XDZ1qfbLbb1k95yf9v2lfo51VeprSn0G\n", - "y3Ip5+r3WF+X5Psy2bXNaL/F/aLkNZtR+w09L+V/1n+V6jbYNtZRf8uyZmO8TCYq77o9s/60r1Tf\n", - "8ASbNqXlbGjZpcqWjccg/zlv7ve1b83kK12Pa+y/loVwKgcTfoHb/KJ9vwi1zda4LMYOWj/3kOvP\n", - "9GAFGWOMMcYYY55mJp8TnesvisYYY4wxxhhjJsITRWOMMcYYY4wxLTxRNMYYY4wxxhjTwhNFY4wx\n", - "xhhjjDEtPFE0xhhjjDHGGNPiTCeK1ao55kB13RxzoLpo7l809ys5Vpv/nXCrQpyK8iqley1HlkfI\n", - "mKWraWtaFcWfU3rXSXp9cpMcaz1m5eU8L5ojux6fWS4Ow59X6MoY6czluKC6vqC0Qgdc56zreZL/\n", - "Ch0bWcswT9JVO9ByRBnC1qi+W+dz+az1y/dL8sZ56EjDZjpmPV5T+GtKayV5cx1kcmbtIbPPkp33\n", - "2ZfqQ9Pk+tf2xvlxGTKdcNi53FO5smtcP9EmWI5SO1R7UjvhtIbIobJk5Wg+r+1zRUfoWe1P9aX3\n", - "WHcX6MqtNjaXfDNfU5KB9SY+dZ0np8/yqH/gul9JGnpddUVytvxlyf9y2yv5OtW92sMqSWu+kSHt\n", - "34b4X2032lZZL9cS9hp52Up1V7JZ7qPVVlR+tUWWey7XtY/idDmM6jzrtzOdap599lsaI6h/Lvnv\n", - "rF5UjpJuuZ7Y12d1lY0tMv+t/kD7frYdlfO6kDaXO9MJ55X1+5lvDxmae+vxQCZ7nw2X8mdd9o0V\n", - "2C9qvzRHt/x9ddnXlkp2q2loW858hPojrlO1zT6Z2AZK4fSejsFLYxodo+h4X/U7l3Sz/DNfUqpD\n", - "9ZGZf8/6DvX72TiupDO9x30vpTU957jJaIXy22Ar1HuRPDdNvlgBuLtjnHPU8ZQM1ckCwLMDwwL1\n", - "3jJD6uYc62Ro2YDh5Rsj3E3ocuzyHMrY+ZyjPZ4a0SFYj6eNbd3cFLv0mcyUNnrb7X9fne/Kbdfj\n", - "UBo9zICJ9XGOyu6bKBpjxsVO2RgzBjc1kDTGmKeE6SeKZ/roqTG3Av3G4xS/AfEk0RgzBp4ktjlF\n", - "f3+TLI8tgJkM1+0twhPF4/C0dxCmRidhMzwdtvE0lNE8HZzzgOhpa4cVHafATTy2f0jcSj6PzZMJ\n", - "0rwpKpx3289Yol7yU2KB4XZwG78Uum31PZipJ4rvA/BjAH4KwE8C+Pbm+gsAPgngcwB+FMA7KM5H\n", - "AXwewBsAPlhId4lNQ43zS2yMOD7HsUDbyDlspBfhNO0F3bsEZjyYj3h8LOkIuINaoF7ryOVAEna5\n", - "ya+VJ99fynVOY9lOB5dyfxdCf6EHLgs7FpFnNkNLdx2dhGx8TeuF6yCLv63j73NunK4OIpaN/HGP\n", - "dcAy9KWfdSYLua/lvUrS5PqGhC+dx+fMXqIsSzrv6yA4HW1HkU4pfKajqyRs1n5Kjnlbh6a2guQz\n", - "t/VMv6qjaPtxLcuD42xrl1qWLP/LJHxfmULXkWbEk3J0wocOsjJp3uwHtO4530riqD7Vn6mNZnaa\n", - "6Yh9cZ/s6kfU53MekHhaByzTo0J+GVkb1LJr21WfxzJk17l+ucyZf7tDMnC9UrprH6hliHzZj2f6\n", - "0zIqfe08yhMH1zWSc+33NO2HdCilSWS0C85vIXH0nrb/Rp51f8hpM5luuVza/2oaES5keCj1Vyof\n", - "6zXOV6j9dJPe7A7afXnmK1Qe9l9k92s9PEZX75n/KNV35KfjmwjHbVvtopSejpsyXxVt5xHaOgu0\n", - "b8rsItLTsJx3Nr7JysVxeczL8mR+WsZus3vY1AnLF/3f86jtIvPNKq/KpWNwRceCES8Ll51v8zOa\n", - "ho5nIz+9x/b+CPm4I2tTQalP7RufcL/c1+dF+pMz9TdaLzbHZ1C/mOR/BfDbAHwIwP8N4GMAPgzg\n", - "KwB8BMAHAPwAgN8I4D0APgXgq7CZWAG1kmZYv/Fo9lo7y9L1oQyJP2YeQ9MaO9xU8cdgmwxj1NGh\n", - "+qwuADxA7ViFIbrjN7tGOjep81Oo513l6LSbl1F/K/24nEY1B3AfwKPd8xiLsdKMN1/Onh8/7VY+\n", - "ZNuHpDuljWU+NNjFr2paAFBdo/4S9SFd6/HZ+/jzXcnS3eqbgEn9yj5lHdJvj+Kb0a2fIKu3sRnS\n", - "b0xpL6dCSfelcEP79F3CK7vqui+vPl+5q31OOeYcyqna4yFyjdWfddJN+uNOvuixm8K9Yn6lOM2c\n", - "6PbwlwD8FtS/Fr6zufZi8xmof038MIX/BICvkzS2fWtrjDHGGGOMMbeZyedEN7lG8SUAX43659t3\n", - "Aniruf4WNpPGdwN4k+K8ifqXRWOMMcYYY4wxN8S9G8rnWQB/AcDvQf5Mdt+MOLv33XT+481hjDHG\n", - "GGOMMbeR15vjVvEMgB8B8Hvp2huoHzkFgHdh8+jpR5oj+ATqdUiMHz01xhhjjDHGPM2c/ZxoBuBP\n", - "A/g+uR4vsQHqieH3NOcfQP3im7cBeD+An0F3kebZK8UYY4wxxhhjDuDs50Rfj/qNpZ8B8Onm+BbU\n", - "22N8Cvn2GN8J4Auof2X85iTNs1eKMcYYY4wxxhzA5HOic3ylagVUC9SvvL/bvr7eRoOvL5vP/ArZ\n", - "JeoX+VyhXj+JJm6W3l36zPq6RP3K3fvobhz7uLn3nMgRr/J/mfJXYruFCLOi/1G2qon7XHMe+0K9\n", - "0vyPdO83cUPuCPtyT7kyQnbmWYq3qF8RXF036Ub40O0VNvW1wEYHQP1yo1ew2Wx+RXFXzX0Oy3p5\n", - "0uR7AeBVkm2Btu6zup9JeC0ThwXJxXYXNqDxMqLcLKfKFeXO0lJZkJSDyxLlZ1tRtrWZvvxD93PJ\n", - "CyIT56+65/xZhgXaeuC2qE6xpHfWQ9h9qa5KbYCvhwxke61yh3y851G0mfAH9yk+233ECf1eUVgt\n", - "o+qmBNeXxg8bjrp5tvkfvie2Vsj8B5+rDwr9Zja1zQ4fot02llhvabL2K3wv5I+8om0Cm70Nw1dw\n", - "GwO6L3G7Ij/Cvpl9NfulJg6Abj+U+Ze+dpZdC7u5T9e1vJFHo6d1nal+1XerzQIbfUX9Ae1+gm0f\n", - "2OiC7Zp9o5aLP6uPiP3bQNuScJ2GzGxjQLmPVb/V14+HTYLKDWzqPtpntBmgrWsgr//op9ifcz1k\n", - "bSDkAcl3iU2b4L5G64L1Gr4F2OgnZOLxAfuQJcXhMof9R7/NRJ3zeEXrS/2Y6lrbSNQvy8xtmNNk\n", - "22Jd8L6mPM7hfLR+o27YP7O9BFm/kY0bVUaGbfQS7aVV7Ge4Lalsj7Cxi8y+2Vep715stnNo9d0c\n", - "F2jrt1SOCMd112xFBWCjf/a72fiKx340BljLuUK7ntQHhw2+ksjPaD/PugLafozT0LbH9ZP1a1yu\n", - "xr+1yhCwL4n6jbE8+xhOO+n/Z0DXNkflXCeKx5bBnA63bg8ZY0wvU7V5+5INpQFixiF6y75cmiKf\n", - "XXnabCH7guOmcf2aXdnFf5wDu/jdBk8UMzxRNNtwJ2CMMcYYY24x008Ub3IfxXNm2xYeQPsnZXNc\n", - "4lEGMw3WbZsx9VFKa8w8pvJVtosu1snpsEtduN6MyVnC7eMYHG2Occ4TxTDWCvVzu1Vz7TIJq8/X\n", - "R/ggiwNKc9UcS4m7pOMR3Yt4zCXJvKg/z2bIyxBxK5GNzxeJPMqCwmmYkIfDZGXXtEqfK/q/lONS\n", - "8q+asl8meTd6iWOdz0LSjGuS7rqsXF9sK1w/nO+SZGK5uU4pbOuc64+vxXW1P4XDcbmi/ptrLZ0l\n", - "elvnU6GtL05PbTfLP+JcIi/7VZIm657tjfV/uTlm8bw+y0HyzPR5/pKdslzcPkKORTtMy64yXTWs\n", - "w7ENcLqsx4ebeB1dLam8ST4tO1sAsztJORformeuJK7mr3KQbmb3RBbySS271bam/kTr4iq5lvmm\n", - "kp+mOlvrnsvT52Pi+mVyT9tx1jai/Jfo6pTbM8vKYZcSNsJktpHZCOs50cu6PWR6Z/r6BO0H+Jzr\n", - "Pz7vMiBUe9V2o+1cfZfqhORo+QL1YVpW1qfmvZJwbAss8yXqeiv5m7ApLbPKyOHU1lQXka+mp22F\n", - "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\n", - "gg==\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "post = proj_stdp.getWeights(format='array',gather=False)\n", - "pstool.plot_weight(post)\n", - "\n", - "def plot_spikes(spikes, title):\n", - " if spikes is not None:\n", - " plt.figure(figsize=(15, 5))\n", - " plt.plot([i[1] for i in spikes], [i[0] for i in spikes], \".\", markersize=3.0)\n", - " plt.xlabel('Time (ms)')\n", - " plt.ylabel('Neuron ID')\n", - " plt.title(title)\n", - "\n", - " else:\n", - " print \"No spikes received\"\n", - "spikes = pop_poisson.getSpikes(compatible_output=True)\n", - "plot_spikes(spikes,'Raster Plot')\n", - "p.end()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 2", - "language": "python", - "name": "python2" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/poisson/t10k-images.idx3-ubyte b/poisson/t10k-images.idx3-ubyte deleted file mode 100644 index 1170b2c..0000000 Binary files a/poisson/t10k-images.idx3-ubyte and /dev/null differ diff --git a/poisson/t10k-labels.idx1-ubyte b/poisson/t10k-labels.idx1-ubyte deleted file mode 100644 index d1c3a97..0000000 Binary files a/poisson/t10k-labels.idx1-ubyte and /dev/null differ diff --git a/poisson/test.aedat b/poisson/test.aedat deleted file mode 100644 index 065e884..0000000 Binary files a/poisson/test.aedat and /dev/null differ diff --git a/poisson/train-images.idx3-ubyte b/poisson/train-images.idx3-ubyte deleted file mode 100644 index bbce276..0000000 Binary files a/poisson/train-images.idx3-ubyte and /dev/null differ diff --git a/poisson/train-labels.idx1-ubyte b/poisson/train-labels.idx1-ubyte deleted file mode 100644 index d6b4c5d..0000000 Binary files a/poisson/train-labels.idx1-ubyte and /dev/null differ diff --git a/poisson/poisson_tools.py b/poisson_tools.py similarity index 95% rename from poisson/poisson_tools.py rename to poisson_tools.py index e28d359..33d06e4 100644 --- a/poisson/poisson_tools.py +++ b/poisson_tools.py @@ -1,6 +1,5 @@ """poisson_tools.py: - Collection of functions to generate Poisson spike trains for the MNIST - dataset. + Collection of functions to generate Poisson spike trains. """ import math import random @@ -12,8 +11,8 @@ def plot_digit(img_raw): '''Generates a matplotlib plot from the raw pixel array. - - :param img_raw: array containing the pixels for an MNIST digit, + + :param img_raw: array containing the pixels for an MNIST digit, should contain 28*28 entries ''' img_raw = np.uint8(img_raw) @@ -24,8 +23,8 @@ def plot_digit(img_raw): def plot_weight(img_raw): '''Generates a matplotlib plot from the raw weights array. - - :param img_raw: array containing the weights for + + :param img_raw: array containing the weights for pixel-to-neuron connections ''' plt.figure(figsize=(5,5)) @@ -36,7 +35,7 @@ def plot_weight(img_raw): def get_train_data(): '''Extracts images and labels from the train files obtained from http://yann.lecun.com/exdb/mnist/ - + :returns: A tuple containing arrays of the images (train_x) and labels (train_y). ''' @@ -46,20 +45,20 @@ def get_train_data(): train_x = np.fromfile(f, dtype='>u1', count=list_size*image_hight*image_width) train_x = np.reshape(train_x, (list_size,image_hight*image_width)) f.close() - + file_name = 'train-labels.idx1-ubyte' f = open(file_name, "rb") magic_number, list_size = np.fromfile(f, dtype='>i4', count=2) train_y = np.fromfile(f, dtype='>u1', count=list_size*image_hight*image_width) f.close() - + return np.double(train_x), np.double(train_y) def get_test_data(): '''Extracts images and labels from the test files obtained from http://yann.lecun.com/exdb/mnist/ - + :returns: A tuple containing arrays of the images (test_x) and labels (test_y). ''' @@ -69,20 +68,20 @@ def get_test_data(): test_x = np.fromfile(f, dtype='>u1', count=list_size*image_hight*image_width) test_x = np.reshape(test_x, (list_size,image_hight*image_width)) f.close() - + file_name = 't10k-labels.idx1-ubyte' f = open(file_name, "rb") magic_number, list_size = np.fromfile(f, dtype='>i4', count=2) test_y = np.fromfile(f, dtype='>u1', count=list_size*image_hight*image_width) f.close() - + return np.double(test_x), np.double(test_y) def nextTime(rateParameter): '''Helper function to Poisson generator :param rateParameter: The rate at which a neuron will fire (Hz) - + :returns: Time at which the neuron should spike next (seconds) ''' return -math.log(1.0 - random.random()) / rateParameter @@ -94,7 +93,7 @@ def poisson_generator(rate, t_start, t_stop): :param rate: The rate at which a neuron will fire (Hz) :param t_start: When should the neuron start to fire (milliseconds) :param t_stop: When should the neuron stop firing (milliseconds) - + :returns: Poisson train firing at rate, from t_start to t_stop (milliseconds) ''' poisson_train = [] @@ -108,7 +107,7 @@ def poisson_generator(rate, t_start, t_stop): return poisson_train -def mnist_poisson_gen(image_list, image_height, image_width, max_freq, duration, silence): +def image_to_poisson_trains(image_list, image_height, image_width, max_freq, duration, silence): '''Generate Poisson trains for images. :param image_list: MNIST image list, numpy array of size (num images, width*height) :param image_height: MNIST digit height @@ -116,16 +115,20 @@ def mnist_poisson_gen(image_list, image_height, image_width, max_freq, duration, :param max_freq: Maximum frequency a neuron representing a pixel can fire (Hz) :param duration: How long should Poisson trains last (milliseconds) :param silence: Time for which no spikes are emmited (milliseconds) - + :returns: A PyNN SpikeSourceArray-formatted representation of a sequence of MNIST digits, interleaved by silence periods ''' if max_freq > 0: for i in range(image_list.shape[0]): + """ NOTE: + If the spike array wasn't produced at the end, max_freq below + is more likely to be insufficient(low) for your data. + """ image_list[i] = image_list[i]/sum(image_list[i])*max_freq - + spike_source_data = [[] for i in range(image_height*image_width)] - + for i in range(image_list.shape[0]): t_start = i*(duration+silence) t_stop = t_start+duration @@ -133,7 +136,7 @@ def mnist_poisson_gen(image_list, image_height, image_width, max_freq, duration, spikes = poisson_generator(image_list[i][j], t_start, t_stop) if spikes != []: spike_source_data[j].extend(spikes) - + return spike_source_data @@ -142,7 +145,7 @@ def aerfile_to_spike(file_name, image_size, jaer_size): :param file_name: Name of the file to open :param image_size: Width and height of the image :param jaer_size: -Not used?- - + :returns: A spike array for each polarity ''' if os.path.exists(file_name): @@ -162,7 +165,7 @@ def aerfile_to_spike(file_name, image_size, jaer_size): polmask=1 # polarity bit is LSB - pol= (AllAddr & polmask) # 0 is on, 1(Polirity = -1) is off + pol= (AllAddr & polmask) # 0 is on, 1(Polirity = -1) is off AllAddr = AllAddr + pol x=(AllAddr & xmask) >> xshift y=(AllAddr & ymask) >> yshift @@ -184,19 +187,19 @@ def aerfile_to_spike(file_name, image_size, jaer_size): -def spike_to_aerfile(spike_source_array_on, spike_source_array_off, +def spike_to_aerfile(spike_source_array_on, spike_source_array_off, file_name, image_size, jaer_size): - '''Converts and writes SpikeSourceArrays for ON and OFF polarities + '''Converts and writes SpikeSourceArrays for ON and OFF polarities into an aer-formated file. :param spike_source_array_on: Array containing ON events for pixels :param spike_source_array_off: Array containing OFF events for pixels :param file_name: Name of file to write to :param image_size: Width and height of image :param jaer_size: -Not used?- - + :returns: An AER representation of the arrays (times, ids, polarities) ''' - + time_stamp = [] neuron_id = [] @@ -211,7 +214,7 @@ def spike_to_aerfile(spike_source_array_on, spike_source_array_off, neuron_id.extend([i]*len(spikes)) num_on = len(time_stamp) pol = [0] * num_on - + # OFF events if len(spike_source_array_off) == num_neuron: for i in range(num_neuron): @@ -223,7 +226,7 @@ def spike_to_aerfile(spike_source_array_on, spike_source_array_off, pol.extend([-1] * (len(time_stamp)-num_on)) else: pol = [-1] * len(time_stamp) - + if len(time_stamp)>0: sort_index = sorted(range(len(time_stamp)), key=time_stamp.__getitem__) AllTs = np.uint32(np.ceil(np.array(time_stamp)[sort_index]*1000.)) #in mus @@ -258,8 +261,5 @@ def spike_to_aerfile(spike_source_array_on, spike_source_array_off, f.close() return AllTs, neuron_id, Polarity else: - print 'Output is []' + print('Output is []') return [] - - - diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..baa583a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +numpy +opencv-python diff --git a/sample_focal.py b/sample_focal.py deleted file mode 100644 index a7fe274..0000000 --- a/sample_focal.py +++ /dev/null @@ -1,38 +0,0 @@ -import scipy -import numpy -import pylab -from focal import * - -# load image -filename = "./t10k-images-idx3-ubyte__idx_000__lbl_7_.png" -img = pylab.imread(filename) #grayscale image -pylab.figure() -pylab.imshow(img, cmap="Greys_r") - -fcl = Focal() -num_kernels = len(fcl.kernels.full_kernels) # four simulated layers - -# spikes contains a rank-ordered list of triples with the following -# information: -# [ pixel/neuron index (int), pixel value (float), layer id (int) ] -spikes = fcl.apply(img) - -# we convert the spike list to 4 images, spike_imgs is a dictionary -# containing an image per simulated layer -spike_imgs = spike_trains_to_images_g(spikes, img, num_kernels) - -pylab.figure() -i = 1 -for k in spike_imgs.keys(): - pylab.subplot(2, 2, i) - pylab.imshow(spike_imgs[k], cmap="Greys_r") - i += 1 - -#convert to spike source array -pylab.figure() -spk_src = focal_to_spike(spikes, img.shape, - spikes_per_time_block=10, - start_time=0., time_step=1.) -raster_plot_spike(spk_src) - -pylab.show() diff --git a/sample_poisson.py b/sample_poisson.py deleted file mode 100644 index 71b38d2..0000000 --- a/sample_poisson.py +++ /dev/null @@ -1,29 +0,0 @@ -import scipy -import numpy -import pylab -from poisson.poisson_tools import * -from focal import raster_plot_spike - -# Demonstration file for the Poisson tools module. It also includes functions -# to load all the MNIST images/labels and converting between different formats - -# load image -filename = "./t10k-images-idx3-ubyte__idx_000__lbl_7_.png" -img = pylab.imread(filename) -height, width = img.shape - -max_freq = 1000 #Hz -on_duration = 200 #ms -off_duration = 100 #ms -pylab.figure() -pylab.imshow(img, cmap="Greys_r") - -spikes = mnist_poisson_gen(numpy.array([img.reshape(height*width)]), #notice reshape - height, width, - max_freq, on_duration, off_duration) - -pylab.figure() - -raster_plot_spike(spikes) - -pylab.show() diff --git a/util_functions.py b/util_functions.py new file mode 100644 index 0000000..e078561 --- /dev/null +++ b/util_functions.py @@ -0,0 +1,82 @@ +import pickle +import cv2 +import os +from matplotlib import pyplot as plt + + + +#--- File Operations ----------------------------------------------------------# +def pickle_it( pickle_to_be, pickle_file_name ): + if pickle_to_be is not None: + dir_name = 'pickles' + if not os.path.exists( dir_name ): + os.makedirs( dir_name ) + + pickle_file_name = "{}/{}".format( dir_name, pickle_file_name ) + pickle_file_obj = open( pickle_file_name, 'wb' ) # open the file for writing + pickle.dump( pickle_to_be, pickle_file_obj, protocol=2 ) # so that python2.x can also read it + pickle_file_obj.close() + print( "Pickle is ready! -> {}".format( pickle_file_name ) ) + + """ For more info., about bz2 etc.: + https://www.datacamp.com/community/tutorials/pickle-python-tutorial """ + + +def unpickle( pickle_file_name ): + pickle_file_obj = open( pickle_file_name, 'rb' ) # read-binary + pickled_one = pickle.load( pickle_file_obj ) + pickle_file_obj.close() + return pickled_one + + +def save_img( img_file_name, img_matrix, show_image=True ): + if img_matrix is not None: + dir_name = 'images' + if not os.path.exists( dir_name ): + os.makedirs( dir_name ) + + img_file_name = "{}/{}".format( dir_name, img_file_name ) + cv2.imwrite( img_file_name, img_matrix ) + + if show_image: + imshow_matplot( img_matrix ) + + +#--- Display Images -----------------------------------------------------------# +def raster_plot_spike( spikes, marker='|', markersize=2 ): + '''Plot PyNN SpikeSourceArrays + :param spikes: The array containing spikes + ''' + x = [] + y = [] + + for neuron_id in range( len(spikes) ): + for t in spikes[neuron_id]: + x.append(t) + y.append(neuron_id) + + plt.plot( x, y, marker, markersize=markersize ) + + +def imshow_opencv( img ): + if img is not None: + window_name = 'Your New Image' + height, width = img.shape + window_size = 100 if (height < 50 and width < 50) else cv2.WINDOW_AUTOSIZE + + cv2.namedWindow( window_name, window_size ) + cv2.imshow( window_name, img ) + + key = cv2.waitKey(0) & 0xFF + if key == 27: # ESC key + cv2.destroyAllWindows() + """ Closing the window won't end the program! Press ESC both to close + the window, and also kill the program. """ + + +def imshow_matplot( img, hide_ticks=False ): + if img is not None: + plt.imshow( img, cmap = 'gray' ) + if hide_ticks: + plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis + plt.show()