diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py index f762a75fb26bd3db6ae93c0f29f8db1b94dce4b8..c69bc71452d5ac3fd9e538fb6a57663fa6d8315f 100644 --- a/binarycpython/utils/grid.py +++ b/binarycpython/utils/grid.py @@ -484,7 +484,8 @@ class Population(object): # TODO: Unset custom logging code # TODO: Unset function memory adress - print(self.grid_options["custom_logging_func_memaddr"]) + # print(self.grid_options["custom_logging_func_memaddr"]) + # remove shared library files if self.grid_options["custom_logging_shared_library_file"]: @@ -1007,11 +1008,24 @@ class Population(object): + "\n" ) + code_string += ( + indent * depth + + "sampled_values_{} = {}".format(grid_variable["name"], grid_variable["spacingfunc"]) + + "\n" + ) + + # TODO: Make clear that the phasevol only works good if you sample linearly in that thing. + code_string += ( + indent * depth + + "phasevol_{} = sampled_values_{}[1]-sampled_values_{}[0]".format(grid_variable["name"], grid_variable["name"], grid_variable["name"]) + + "\n" + ) + # Adding for loop structure code_string += ( indent * depth - + "for {} in {}:".format( - grid_variable["name"], grid_variable["spacingfunc"] + + "for {} in sampled_values_{}:".format( + grid_variable["name"], grid_variable["name"] ) + "\n" ) diff --git a/binarycpython/utils/spacing_functions.py b/binarycpython/utils/spacing_functions.py index b8f70c3ba456c1c06d7f019ea2eb0f24658a215e..fbd3d35c7ceb3459fd05e7b57c0c0a7754552ade 100644 --- a/binarycpython/utils/spacing_functions.py +++ b/binarycpython/utils/spacing_functions.py @@ -1,2 +1,4 @@ -def const(): - return +import numpy as np + +def const(min, max, steps): + return np.linspace(min, max, steps) diff --git a/test_systems/README.md b/test_systems/README.md index c04d3e1049f4e5b2939a3e42619b48cf0782a007..45fd1d7814ccfe3ca074540e650a11e32a738e1b 100644 --- a/test_systems/README.md +++ b/test_systems/README.md @@ -1,2 +1 @@ -# -This directory is mean to contain script to generate test systems. +# This directory is meant to contain script to generate test systems. diff --git a/tests/population/grid_tests.py b/tests/population/grid_tests.py index a0f4e976138fabddc82c211f8eddc688727b5304..3b45b999c8e807cd676f44feed133295b71595e9 100644 --- a/tests/population/grid_tests.py +++ b/tests/population/grid_tests.py @@ -252,20 +252,20 @@ test_pop.set( #### # Dry run: -# test_pop.set(verbose=1) -# test_pop.add_grid_variable( -# name="lnm1", -# longname="log primary mass", -# valuerange=[10, 20], -# resolution="10", -# spacingfunc="np.linspace(0.213, 10.2, 10)", -# precode="M_1=math.exp(lnm1)", -# probdist="flat(M_1)", -# # probdist='self.custom_options["extra_prob_function"](M_1)', -# dphasevol="", -# parameter_name="M_1", -# condition="", -# ) +test_pop.set(verbose=1) +test_pop.add_grid_variable( + name="lnm1", + longname="log primary mass", + valuerange=[10, 20], + resolution="10", + spacingfunc="np.linspace(0.213, 10.2, 10)", + precode="M_1=math.exp(lnm1)", + probdist="flat(M_1)", + # probdist='self.custom_options["extra_prob_function"](M_1)', + dphasevol="", + parameter_name="M_1", + condition="", +) # ### Grid generating test. # test_pop.add_grid_variable( @@ -281,7 +281,7 @@ test_pop.set( # condition='self.grid_options["binary"]==0', # ) -# test_pop.generate_grid_code(dry_run=True) +test_pop.generate_grid_code(dry_run=True) # test_pop.load_grid_function() @@ -290,34 +290,39 @@ test_pop.set( #### # testing population: -test_pop.set(verbose=1, amt_cores=4) -test_pop.add_grid_variable( - name="lnm1", - longname="log primary mass", - valuerange=[10, 20], - resolution="10", - spacingfunc="np.linspace(0.213, 10.2, 10)", - precode="M_1=math.exp(lnm1)", - probdist="flat(M_1)", - # probdist='self.custom_options["extra_prob_function"](M_1)', - dphasevol="", - parameter_name="M_1", - condition="", -) +# test_pop.set(verbose=1, +# amt_cores=1, +# binary=0, +# ) +# test_pop.add_grid_variable( +# name="M_1", +# longname="log primary mass", +# valuerange=[10, 20], +# resolution="10", +# spacingfunc="const(10, 20, 4)", +# precode="", +# # precode="M_1=math.exp(lnm1)", +# probdist="flat(M_1)", +# # probdist='self.custom_options["extra_prob_function"](M_1)', +# dphasevol="dlnm1", +# parameter_name="M_1", +# condition="", +# ) -### Grid generating test. -test_pop.add_grid_variable( - name="period", - longname="period", - valuerange=["M_1", 20], - resolution="10", - spacingfunc="np.linspace(1, 10, 10)", - precode="orbital_period = period**2", - probdist="flat(orbital_period)", - parameter_name="orbital_period", - dphasevol="", - condition='self.grid_options["binary"]==0', -) +# ### Grid generating test. +# test_pop.add_grid_variable( +# name="period", +# longname="period", +# valuerange=["M_1", 20], +# resolution="10", +# spacingfunc="", +# spacingfunc="np.linspace(1, 10, 10)", +# precode="orbital_period = period**2", +# probdist="flat(orbital_period)", +# parameter_name="orbital_period", +# dphasevol="dper", +# condition='self.grid_options["binary"]==0', +# ) -test_pop.test_evolve_population() +# test_pop.test_evolve_population() # test_pop.generate_grid_code(dry_run=True) diff --git a/tests/population/scaling/plot_scaling.py b/tests/population/scaling/plot_scaling.py index fb72b1cf4c8f384e8c4ee25e06258413b89fa49d..13cd471627f2c515ace4f486fdaa6fa89cdaea71 100644 --- a/tests/population/scaling/plot_scaling.py +++ b/tests/population/scaling/plot_scaling.py @@ -8,10 +8,176 @@ import numpy as np def calc_mean_and_std(arr): return np.mean(arr), np.std(arr) +def calculate_results(results, unique_amt_cores, unique_amt_systems): + """ + Function to calculate the numbers + """ + + calculated_results = [] + for i in unique_amt_cores: + for j in unique_amt_systems: + ( + total_time_sequential_list, + total_time_multiprocessing_list, + total_ratio_list, + ) = ([], [], []) + + for res in results: + if (res[0] == i) & (res[1] == j): + total_time_sequential_list.append(res[2]) + total_time_multiprocessing_list.append(res[3]) + total_ratio_list.append(res[4]) + + if ( + (total_time_sequential_list) + and (total_time_multiprocessing_list) + and (total_ratio_list) + ): + # calculate stuff + mean_time_sequential, std_sequential = calc_mean_and_std( + np.array(total_time_sequential_list) + ) + mean_time_multiprocessing, std_multiprocessing = calc_mean_and_std( + np.array(total_time_multiprocessing_list) + ) + mean_ratio, std_ratio = calc_mean_and_std(np.array(total_ratio_list)) + + # make dict + res_dict = { + "cores": i, + "systems": j, + "mean_time_sequential": mean_time_sequential, + "mean_time_multiprocessing": mean_time_multiprocessing, + "mean_ratio": mean_ratio, + "std_sequential": std_sequential, + "std_multiprocessing": std_multiprocessing, + "std_ratio": std_ratio, + "total_runs": len(total_time_sequential_list), + } + + calculated_results.append(res_dict) + + return calculated_results + +def plot_speedup_and_efficiency(calculated_results, unique_amt_cores, unique_amt_systems): + x_position_shift = 0 + y_position_shift = -0.05 + max_speedup = 0 + + # https://stackoverflow.com/questions/46323530/matplotlib-plot-two-x-axes-one-linear-and-one-with-logarithmic-ticks + fig, ax1 = plt.subplots() + ax2 = ax1.twinx() + for amt_systems in unique_amt_systems: + + cores = [] + speedup = [] + std = [] + efficiency = [] + + for el in calculated_results: + if el["systems"] == amt_systems: + + cores.append(el["cores"] + x_position_shift) + speedup.append(el["mean_ratio"]) + std.append(el["std_ratio"]) + efficiency.append(el["mean_ratio"] / el["cores"]) + + if el["mean_ratio"] > max_speedup: + max_speedup = el["mean_ratio"] + + # add number of runs its based on + ax1.text( + el["cores"] + x_position_shift + 0.01, + el["mean_ratio"] + y_position_shift, + el["total_runs"], + ) + + ax1.errorbar( + cores, + speedup, + std, + linestyle="None", + marker="^", + label="Speed up & efficiency of {} systems".format(amt_systems), + ) + + ax2.plot(cores, efficiency, alpha=0.5) + x_position_shift += 0.1 + + ax1.set_title( + "Speed up ratio vs amount of cores for different amounts of systems on {}".format( + name_testcase + ) + ) + ax1.set_xlabel("Amount of cores used") + ax1.set_ylabel("Speed up ratio (time_linear/time_parallel)") + + ax1.set_xlim(0, max(unique_amt_cores) + 4) + ax1.set_ylim(0, max_speedup + 2) + ax2.set_ylim(0, 1) + + ax1.grid() + ax1.legend(loc=4) + fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "png"))) + fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "pdf"))) + fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "eps"))) + plt.show() + +def plot_runtime(calculated_results, unique_amt_cores, unique_amt_systems): + fig = plt.figure() + ax = fig.add_subplot(111) + + color_options = ['blue', 'green', 'red', 'black', 'yellow', 'magenta'] + + x_position_shift = 0 + y_position_shift = -0.05 + + colors = [color_options[i] for i in range(len(unique_amt_systems))] + for i, amt_systems in enumerate(unique_amt_systems): + + cores = [] + + mean_times_linear = [] + mean_times_multiprocessing = [] + std_linear = [] + std_mp = [] + + for el in calculated_results: + if el['systems']==amt_systems: + cores.append(el['cores'] + x_position_shift) + + mean_times_linear.append(el['mean_time_sequential']) + std_linear.append(el['std_sequential']) + + mean_times_multiprocessing.append(el['mean_time_multiprocessing']) + std_mp.append(el['std_multiprocessing']) + + # # add number of runs its based on + # plt.text(el['cores'] + x_position_shift+0.01, el['mean_ratio']+y_position_shift, el['total_runs']) + + ax.errorbar(cores, mean_times_linear, std_linear, color=colors[i], linewidth=1, marker='P', label='{} systems linear run'.format(amt_systems)) + ax.errorbar(cores, mean_times_multiprocessing, std_mp, linewidth=1, color=colors[i], marker='d', label='{} systems MP run'.format(amt_systems)) + x_position_shift += 0.1 + + ax.set_title("Total time for sequential and MP for different amounts of systems on {}".format(name_testcase)) + ax.set_xlabel("Amount of cores used") + ax.set_ylabel("Total time taken (s)") + + ax.set_xlim(0, max(unique_amt_cores) + 20) + ax.set_yscale('log') + ax.grid() + ax.legend() + + fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'png'))) + fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'pdf'))) + fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'eps'))) + + plt.show() -#### +##################### + # Configure result_file = "comparison_result.dat" result_file = "comparison_result_astro1.dat" @@ -27,7 +193,7 @@ with open(result_file, "r") as f: res.append(res[-2] / res[-1]) results.append(res) -# make dataframe +# make dataframe and set correct headers. headers = [ "cores", "total_systems", @@ -44,161 +210,12 @@ unique_amt_cores = df["cores"].unique() unique_amt_systems = df["total_systems"].unique() # Create dictionary with calculated means and stdevs etc -calculated_results = [] -for i in unique_amt_cores: - for j in unique_amt_systems: - ( - total_time_sequential_list, - total_time_multiprocessing_list, - total_ratio_list, - ) = ([], [], []) - - for res in results: - if (res[0] == i) & (res[1] == j): - total_time_sequential_list.append(res[2]) - total_time_multiprocessing_list.append(res[3]) - total_ratio_list.append(res[4]) - - if ( - (total_time_sequential_list) - and (total_time_multiprocessing_list) - and (total_ratio_list) - ): - # calculate stuff - mean_time_sequential, std_sequential = calc_mean_and_std( - np.array(total_time_sequential_list) - ) - mean_time_multiprocessing, std_multiprocessing = calc_mean_and_std( - np.array(total_time_multiprocessing_list) - ) - mean_ratio, std_ratio = calc_mean_and_std(np.array(total_ratio_list)) - - # make dict - res_dict = { - "cores": i, - "systems": j, - "mean_time_sequential": mean_time_sequential, - "mean_time_multiprocessing": mean_time_multiprocessing, - "mean_ratio": mean_ratio, - "std_sequential": std_sequential, - "std_multiprocessing": std_multiprocessing, - "std_ratio": std_ratio, - "total_runs": len(total_time_sequential_list), - } - - calculated_results.append(res_dict) +calculated_results = calculate_results(results, unique_amt_cores, unique_amt_systems) ############################################################################################################################# # Plot speed up and efficiency. -x_position_shift = 0 -y_position_shift = -0.05 -max_speedup = 0 -# https://stackoverflow.com/questions/46323530/matplotlib-plot-two-x-axes-one-linear-and-one-with-logarithmic-ticks -fig, ax1 = plt.subplots() -ax2 = ax1.twinx() -for amt_systems in unique_amt_systems: - - cores = [] - speedup = [] - std = [] - efficiency = [] - - for el in calculated_results: - if el["systems"] == amt_systems: - - cores.append(el["cores"] + x_position_shift) - speedup.append(el["mean_ratio"]) - std.append(el["std_ratio"]) - efficiency.append(el["mean_ratio"] / el["cores"]) - - if el["mean_ratio"] > max_speedup: - max_speedup = el["mean_ratio"] - - # add number of runs its based on - ax1.text( - el["cores"] + x_position_shift + 0.01, - el["mean_ratio"] + y_position_shift, - el["total_runs"], - ) - - ax1.errorbar( - cores, - speedup, - std, - linestyle="None", - marker="^", - label="Speed up & efficiency of {} systems".format(amt_systems), - ) - ax2.plot(cores, efficiency, alpha=0.5) - x_position_shift += 0.1 +plot_speedup_and_efficiency(calculated_results, unique_amt_cores, unique_amt_systems) -ax1.set_title( - "Speed up ratio vs amount of cores for different amounts of systems on {}".format( - name_testcase - ) -) -ax1.set_xlabel("Amount of cores used") -ax1.set_ylabel("Speed up ratio (time_linear/time_parallel)") - -ax1.set_xlim(0, max(unique_amt_cores) + 4) -ax1.set_ylim(0, max_speedup + 2) -ax2.set_ylim(0, 1) - -ax1.grid() -ax1.legend(loc=4) -fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "png"))) -fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "pdf"))) -fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "eps"))) -plt.show() - -##### +######################################################################################## # Plot run time -# fig = plt.figure() -# ax = fig.add_subplot(111) - -# color_options = ['blue', 'green', 'red', 'black', 'yellow', 'magenta'] - -# x_position_shift = 0 -# y_position_shift = -0.05 - -# colors = [color_options[i] for i in range(len(unique_amt_systems))] -# for i, amt_systems in enumerate(unique_amt_systems): - -# cores = [] - -# mean_times_linear = [] -# mean_times_multiprocessing = [] -# std_linear = [] -# std_mp = [] - -# for el in calculated_results: -# if el['systems']==amt_systems: -# cores.append(el['cores'] + x_position_shift) - -# mean_times_linear.append(el['mean_time_sequential']) -# std_linear.append(el['std_sequential']) - -# mean_times_multiprocessing.append(el['mean_time_multiprocessing']) -# std_mp.append(el['std_multiprocessing']) - -# # # add number of runs its based on -# # plt.text(el['cores'] + x_position_shift+0.01, el['mean_ratio']+y_position_shift, el['total_runs']) - -# ax.errorbar(cores, mean_times_linear, std_linear, color=colors[i], linewidth=1, marker='P', label='{} systems linear run'.format(amt_systems)) -# ax.errorbar(cores, mean_times_multiprocessing, std_multiprocessing, linewidth=1, color=colors[i], marker='d', label='{} systems MP run'.format(amt_systems)) -# x_position_shift += 0.1 - -# ax.set_title("Total time for sequential and MP for different amounts of systems on {}".format(name_testcase)) -# ax.set_xlabel("Amount of cores used") -# ax.set_ylabel("Total time taken (s)") - -# ax.set_xlim(0, max(unique_amt_cores) + 20) -# ax.set_yscale('log') -# ax.grid() -# ax.legend() - -# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'png'))) -# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'pdf'))) -# fig.savefig(os.path.join(img_dir, 'total_time_scaling_{}.{}'.format(name_testcase, 'eps'))) - -# plt.show() +plot_runtime(calculated_results, unique_amt_cores, unique_amt_systems) \ No newline at end of file diff --git a/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.eps b/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.eps index 49d71a3748813b299d696d1cea0655c904398558..2ba6d8cdae81246b3eecb20d1a73b434b2bad6e6 100644 --- a/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.eps +++ b/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Title: scaling_plots/speedup_scaling_Astro1.eps %%Creator: matplotlib version 3.1.2, http://matplotlib.org/ -%%CreationDate: Thu Jan 30 13:38:14 2020 +%%CreationDate: Mon Feb 10 16:42:49 2020 %%Orientation: portrait %%BoundingBox: 75.6 223.20000000000002 536.4 568.8 %%EndComments diff --git a/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.pdf b/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.pdf index eac5b25473077a3c03938c7fdad08fde50edc8f6..21bc02885c8f00406eddbda9d64c663fa8faa284 100644 Binary files a/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.pdf and b/tests/population/scaling/scaling_plots/speedup_scaling_Astro1.pdf differ diff --git a/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.eps b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.eps new file mode 100644 index 0000000000000000000000000000000000000000..c2e7d28f2c1ba56e791c5be08794618a1ab9ae84 --- /dev/null +++ b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.eps @@ -0,0 +1,2552 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: scaling_plots/total_time_scaling_Astro1.eps +%%Creator: matplotlib version 3.1.2, http://matplotlib.org/ +%%CreationDate: Mon Feb 10 16:42:52 2020 +%%Orientation: portrait +%%BoundingBox: 75.6 223.20000000000002 536.4 568.8 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /space /parenleft /parenright /zero /one /two /three /four /five /A /M /P /T /a /c /d /e /f /i /k /l /m /n /o /q /r /s /t /u /y ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 31 dict dup begin +/.notdef 0 def +/space{318 0 0 0 0 0 _sc +}_d +/parenleft{390 0 86 -131 310 759 _sc +310 759 _m +266 683 234 609 213 536 _c +191 463 181 389 181 314 _c +181 238 191 164 213 91 _c +234 17 266 -56 310 -131 _c +232 -131 _l +183 -54 146 20 122 94 _c +98 168 86 241 86 314 _c +86 386 98 459 122 533 _c +146 607 182 682 232 759 _c +310 759 _l +_cl}_d +/parenright{390 0 80 -131 304 759 _sc +80 759 _m +158 759 _l +206 682 243 607 267 533 _c +291 459 304 386 304 314 _c +304 241 291 168 267 94 _c +243 20 206 -54 158 -131 _c +80 -131 _l +123 -56 155 17 177 91 _c +198 164 209 238 209 314 _c +209 389 198 463 177 536 _c +155 609 123 683 80 759 _c +_cl}_d +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/three{{636 0 76 -13 556 742 _sc +406 393 _m +453 383 490 362 516 330 _c +542 298 556 258 556 212 _c +556 140 531 84 482 45 _c +432 6 362 -13 271 -13 _c +240 -13 208 -10 176 -4 _c +144 1 110 10 76 22 _c +76 117 _l +103 101 133 89 166 81 _c +198 73 232 69 268 69 _c +330 69 377 81 409 105 _c +441 129 458 165 458 212 _c +458 254 443 288 413 312 _c +383 336 341 349 287 349 _c +}_e{202 349 _l +202 430 _l +291 430 _l +339 430 376 439 402 459 _c +428 478 441 506 441 543 _c +441 580 427 609 401 629 _c +374 649 336 659 287 659 _c +260 659 231 656 200 650 _c +169 644 135 635 98 623 _c +98 711 _l +135 721 170 729 203 734 _c +235 739 266 742 296 742 _c +370 742 429 725 473 691 _c +517 657 539 611 539 553 _c +539 513 527 479 504 451 _c +481 423 448 403 406 393 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/five{{636 0 77 -13 549 729 _sc +108 729 _m +495 729 _l +495 646 _l +198 646 _l +198 467 _l +212 472 227 476 241 478 _c +255 480 270 482 284 482 _c +365 482 429 459 477 415 _c +525 370 549 310 549 234 _c +549 155 524 94 475 51 _c +426 8 357 -13 269 -13 _c +238 -13 207 -10 175 -6 _c +143 -1 111 6 77 17 _c +77 116 _l +106 100 136 88 168 80 _c +199 72 232 69 267 69 _c +}_e{323 69 368 83 401 113 _c +433 143 450 183 450 234 _c +450 284 433 324 401 354 _c +368 384 323 399 267 399 _c +241 399 214 396 188 390 _c +162 384 135 375 108 363 _c +108 729 _l +_cl}_e}_d +/A{684 0 8 0 676 729 _sc +342 632 _m +208 269 _l +476 269 _l +342 632 _l +286 729 _m +398 729 _l +676 0 _l +573 0 _l +507 187 _l +178 187 _l +112 0 _l +8 0 _l +286 729 _l +_cl}_d +/M{863 0 98 0 765 729 _sc +98 729 _m +245 729 _l +431 233 _l +618 729 _l +765 729 _l +765 0 _l +669 0 _l +669 640 _l +481 140 _l +382 140 _l +194 640 _l +194 0 _l +98 0 _l +98 729 _l +_cl}_d +/P{603 0 98 0 569 729 _sc +197 648 _m +197 374 _l +321 374 _l +367 374 402 385 427 409 _c +452 433 465 467 465 511 _c +465 555 452 588 427 612 _c +402 636 367 648 321 648 _c +197 648 _l +98 729 _m +321 729 _l +402 729 464 710 506 673 _c +548 636 569 582 569 511 _c +569 439 548 384 506 348 _c +464 311 402 293 321 293 _c +197 293 _l +197 0 _l +98 0 _l +98 729 _l +_cl}_d +/T{611 0 -2 0 614 729 _sc +-2 729 _m +614 729 _l +614 646 _l +355 646 _l +355 0 _l +256 0 _l +256 646 _l +-2 646 _l +-2 729 _l +_cl}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/d{{635 0 55 -13 544 760 _sc +454 464 _m +454 760 _l +544 760 _l +544 0 _l +454 0 _l +454 82 _l +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +}_e{348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +_cl}_e}_d +/e{{615 0 55 -13 562 560 _sc +562 296 _m +562 252 _l +149 252 _l +153 190 171 142 205 110 _c +238 78 284 62 344 62 _c +378 62 412 66 444 74 _c +476 82 509 95 541 113 _c +541 28 _l +509 14 476 3 442 -3 _c +408 -9 373 -13 339 -13 _c +251 -13 182 12 131 62 _c +80 112 55 181 55 268 _c +55 357 79 428 127 481 _c +175 533 241 560 323 560 _c +397 560 455 536 498 489 _c +}_e{540 441 562 377 562 296 _c +472 322 _m +471 371 457 410 431 440 _c +404 469 368 484 324 484 _c +274 484 234 469 204 441 _c +174 413 156 373 152 322 _c +472 322 _l +_cl}_e}_d +/f{352 0 23 0 371 760 _sc +371 760 _m +371 685 _l +285 685 _l +253 685 230 678 218 665 _c +205 652 199 629 199 595 _c +199 547 _l +347 547 _l +347 477 _l +199 477 _l +199 0 _l +109 0 _l +109 477 _l +23 477 _l +23 547 _l +109 547 _l +109 585 _l +109 645 123 690 151 718 _c +179 746 224 760 286 760 _c +371 760 _l +_cl}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/k{579 0 91 0 576 760 _sc +91 760 _m +181 760 _l +181 311 _l +449 547 _l +564 547 _l +274 291 _l +576 0 _l +459 0 _l +181 267 _l +181 0 _l +91 0 _l +91 760 _l +_cl}_d +/l{278 0 94 0 184 760 _sc +94 760 _m +184 760 _l +184 0 _l +94 0 _l +94 760 _l +_cl}_d +/m{{974 0 91 0 889 560 _sc +520 442 _m +542 482 569 511 600 531 _c +631 550 668 560 711 560 _c +767 560 811 540 842 500 _c +873 460 889 403 889 330 _c +889 0 _l +799 0 _l +799 327 _l +799 379 789 418 771 444 _c +752 469 724 482 686 482 _c +639 482 602 466 575 435 _c +548 404 535 362 535 309 _c +535 0 _l +445 0 _l +445 327 _l +445 379 435 418 417 444 _c +398 469 369 482 331 482 _c +}_e{285 482 248 466 221 435 _c +194 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +201 495 226 520 255 536 _c +283 552 317 560 357 560 _c +397 560 430 550 458 530 _c +486 510 506 480 520 442 _c +_cl}_e}_d +/n{634 0 91 0 549 560 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/o{612 0 55 -13 557 560 _sc +306 484 _m +258 484 220 465 192 427 _c +164 389 150 338 150 273 _c +150 207 163 156 191 118 _c +219 80 257 62 306 62 _c +354 62 392 80 420 118 _c +448 156 462 207 462 273 _c +462 337 448 389 420 427 _c +392 465 354 484 306 484 _c +306 560 _m +384 560 445 534 490 484 _c +534 433 557 363 557 273 _c +557 183 534 113 490 63 _c +445 12 384 -13 306 -13 _c +227 -13 165 12 121 63 _c +77 113 55 183 55 273 _c +55 363 77 433 121 484 _c +165 534 227 560 306 560 _c +_cl}_d +/q{{635 0 55 -207 544 560 _sc +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +454 82 _m +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +}_e{55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +454 547 _l +544 547 _l +544 -207 _l +454 -207 _l +454 82 _l +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/u{634 0 85 -13 543 560 _sc +85 216 _m +85 547 _l +175 547 _l +175 219 _l +175 167 185 129 205 103 _c +225 77 255 64 296 64 _c +344 64 383 79 411 110 _c +439 141 453 183 453 237 _c +453 547 _l +543 547 _l +543 0 _l +453 0 _l +453 84 _l +431 50 405 26 377 10 _c +348 -5 315 -13 277 -13 _c +214 -13 166 6 134 45 _c +101 83 85 140 85 216 _c +311 560 _m +311 560 _l +_cl}_d +/y{592 0 30 -207 562 547 _sc +322 -50 _m +296 -114 271 -157 247 -177 _c +223 -197 191 -207 151 -207 _c +79 -207 _l +79 -132 _l +132 -132 _l +156 -132 175 -126 189 -114 _c +203 -102 218 -75 235 -31 _c +251 9 _l +30 547 _l +125 547 _l +296 119 _l +467 547 _l +562 547 _l +322 -50 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +75.6 223.2 translate +460.8 345.6 0 0 clipbox +gsave +0 0 m +460.8 0 l +460.8 345.6 l +0 345.6 l +cl +1.000 setgray +fill +grestore +gsave +57.6 38.016 m +414.72 38.016 l +414.72 304.128 l +57.6 304.128 l +cl +1.000 setgray +fill +grestore +0.800 setlinewidth +1 setlinejoin +2 setlinecap +[] 0 setdash +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +57.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +54.420313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +126.276923 38.016 m +126.276923 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +126.277 38.016 o +grestore +gsave +119.917548 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +194.953846 38.016 m +194.953846 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +194.954 38.016 o +grestore +gsave +188.594471 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +263.630769 38.016 m +263.630769 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +263.631 38.016 o +grestore +gsave +257.271394 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +332.307692 38.016 m +332.307692 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +332.308 38.016 o +grestore +gsave +325.948317 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +400.984615 38.016 m +400.984615 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +400.985 38.016 o +grestore +gsave +394.625240 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +gsave +181.308437 9.750375 translate +0.000000 rotate +0.000000 0.000000 m /A glyphshow +6.840820 0.000000 m /m glyphshow +16.582031 0.000000 m /o glyphshow +22.700195 0.000000 m /u glyphshow +29.038086 0.000000 m /n glyphshow +35.375977 0.000000 m /t glyphshow +39.296875 0.000000 m /space glyphshow +42.475586 0.000000 m /o glyphshow +48.593750 0.000000 m /f glyphshow +52.114258 0.000000 m /space glyphshow +55.292969 0.000000 m /c glyphshow +60.791016 0.000000 m /o glyphshow +66.909180 0.000000 m /r glyphshow +71.020508 0.000000 m /e glyphshow +77.172852 0.000000 m /s glyphshow +82.382812 0.000000 m /space glyphshow +85.561523 0.000000 m /u glyphshow +91.899414 0.000000 m /s glyphshow +97.109375 0.000000 m /e glyphshow +103.261719 0.000000 m /d glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 162.367622 m +414.72 162.367622 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 162.368 o +grestore +gsave +32.600000 157.906684 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/two glyphshow + + +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 289.116896 m +414.72 289.116896 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 289.117 o +grestore +gsave +32.600000 284.655958 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/three glyphshow + + +grestore +0.600 setlinewidth +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 73.7737 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 96.0931 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 111.929 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 124.212 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 134.248 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 142.734 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 150.084 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 156.568 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 200.523 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 222.842 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 238.678 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 250.962 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 260.998 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 269.483 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 276.834 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 283.317 o +grestore +gsave +26.521875 121.775125 translate +90.000000 rotate +0.000000 0.000000 m /T glyphshow +6.092773 0.000000 m /o glyphshow +12.210938 0.000000 m /t glyphshow +16.131836 0.000000 m /a glyphshow +22.259766 0.000000 m /l glyphshow +25.038086 0.000000 m /space glyphshow +28.216797 0.000000 m /t glyphshow +32.137695 0.000000 m /i glyphshow +34.916016 0.000000 m /m glyphshow +44.657227 0.000000 m /e glyphshow +50.809570 0.000000 m /space glyphshow +53.988281 0.000000 m /t glyphshow +57.909180 0.000000 m /a glyphshow +64.037109 0.000000 m /k glyphshow +69.828125 0.000000 m /e glyphshow +75.980469 0.000000 m /n glyphshow +82.318359 0.000000 m /space glyphshow +85.497070 0.000000 m /parenleft glyphshow +89.398438 0.000000 m /s glyphshow +94.608398 0.000000 m /parenright glyphshow +grestore +1.000 setlinewidth +0.000 0.000 1.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 163.723345 m +85.070769 164.866354 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +112.541538 163.528633 m +112.541538 164.642327 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 90.094555 m +85.070769 91.481994 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +112.541538 56.061391 m +112.541538 58.119284 l +stroke +grestore +0.000 0.502 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 201.165776 m +85.757538 202.673914 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.228308 201.635611 m +113.228308 202.784503 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.169846 201.5032 m +168.169846 203.061394 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.052923 202.156079 m +278.052923 202.92828 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 128.32746 m +85.757538 129.47306 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.228308 93.963437 m +113.228308 94.77086 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.169846 57.911438 m +168.169846 59.05175 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.052923 50.112 m +278.052923 50.932844 l +stroke +grestore +1.000 0.000 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 252.197989 m +86.444308 253.425658 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.915077 252.285271 m +113.915077 253.365067 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.856615 251.558467 m +168.856615 253.254194 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.739692 252.152703 m +278.739692 253.089911 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 178.729098 m +86.444308 179.326355 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.915077 144.03464 m +113.915077 144.562712 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.856615 107.660024 m +168.856615 108.431221 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.739692 99.398993 m +278.739692 100.181425 l +stroke +grestore +0.000 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 291.028651 m +87.131077 291.337948 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +114.601846 290.503925 m +114.601846 291.056957 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +169.543385 290.290069 m +169.543385 292.032 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +279.426462 290.124371 m +279.426462 291.873238 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 216.882711 m +87.131077 217.533888 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +114.601846 182.341738 m +114.601846 182.498887 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +169.543385 145.402339 m +169.543385 146.411599 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +279.426462 137.551212 m +279.426462 138.809517 l +stroke +grestore +2 setlinecap +0.000 0.000 1.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 164.297816 m +112.541538 164.088297 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.0708 164.298 o +112.542 164.088 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 90.792646 m +112.541538 57.099953 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.0708 90.7926 o +112.542 57.1 o +grestore +1 setlinejoin +2 setlinecap +0.000 0.502 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 201.92501 m +113.228308 202.213054 l +168.169846 202.287811 l +278.052923 202.543533 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.7575 201.925 o +113.228 202.213 o +168.17 202.288 o +278.053 202.544 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 128.90324 m +113.228308 94.368629 l +168.169846 58.484547 l +278.052923 50.523952 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.7575 128.903 o +113.228 94.3686 o +168.17 58.4845 o +278.053 50.524 o +grestore +1 setlinejoin +2 setlinecap +1.000 0.000 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 252.815246 m +113.915077 252.827816 l +168.856615 252.41286 l +278.739692 252.623302 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +86.4443 252.815 o +113.915 252.828 o +168.857 252.413 o +278.74 252.623 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 179.028536 m +113.915077 144.299309 l +168.856615 108.046973 l +278.739692 99.791599 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +86.4443 179.029 o +113.915 144.299 o +168.857 108.047 o +278.74 99.7916 o +grestore +1 setlinejoin +2 setlinecap +0.000 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 291.183517 m +114.601846 290.781136 l +169.543385 291.167925 l +279.426462 291.005749 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +87.1311 291.184 o +114.602 290.781 o +169.543 291.168 o +279.426 291.006 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 217.209263 m +114.601846 182.420368 l +169.543385 145.909282 l +279.426462 138.18396 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +87.1311 217.209 o +114.602 182.42 o +169.543 145.909 o +279.426 138.184 o +grestore +0.800 setlinewidth +2 setlinecap +[] 0 setdash +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore +/DejaVuSans findfont +12.000 scalefont +setfont +gsave +7.214687 310.128000 translate +0.000000 rotate +0.000000 0.000000 m /T glyphshow +7.298828 0.000000 m /o glyphshow +14.640625 0.000000 m /t glyphshow +19.345703 0.000000 m /a glyphshow +26.699219 0.000000 m /l glyphshow +30.033203 0.000000 m /space glyphshow +33.847656 0.000000 m /t glyphshow +38.552734 0.000000 m /i glyphshow +41.886719 0.000000 m /m glyphshow +53.576172 0.000000 m /e glyphshow +60.958984 0.000000 m /space glyphshow +64.773438 0.000000 m /f glyphshow +68.998047 0.000000 m /o glyphshow +76.339844 0.000000 m /r glyphshow +81.273438 0.000000 m /space glyphshow +85.087891 0.000000 m /s glyphshow +91.339844 0.000000 m /e glyphshow +98.722656 0.000000 m /q glyphshow +106.339844 0.000000 m /u glyphshow +113.945312 0.000000 m /e glyphshow +121.328125 0.000000 m /n glyphshow +128.933594 0.000000 m /t glyphshow +133.638672 0.000000 m /i glyphshow +136.972656 0.000000 m /a glyphshow +144.326172 0.000000 m /l glyphshow +147.660156 0.000000 m /space glyphshow +151.474609 0.000000 m /a glyphshow +158.828125 0.000000 m /n glyphshow +166.433594 0.000000 m /d glyphshow +174.050781 0.000000 m /space glyphshow +177.865234 0.000000 m /M glyphshow +188.218750 0.000000 m /P glyphshow +195.455078 0.000000 m /space glyphshow +199.269531 0.000000 m /f glyphshow +203.494141 0.000000 m /o glyphshow +210.835938 0.000000 m /r glyphshow +215.769531 0.000000 m /space glyphshow +219.583984 0.000000 m /d glyphshow +227.201172 0.000000 m /i glyphshow +230.535156 0.000000 m /f glyphshow +234.759766 0.000000 m /f glyphshow +238.984375 0.000000 m /e glyphshow +246.367188 0.000000 m /r glyphshow +251.300781 0.000000 m /e glyphshow +258.683594 0.000000 m /n glyphshow +266.289062 0.000000 m /t glyphshow +270.994141 0.000000 m /space glyphshow +274.808594 0.000000 m /a glyphshow +282.162109 0.000000 m /m glyphshow +293.851562 0.000000 m /o glyphshow +301.193359 0.000000 m /u glyphshow +308.798828 0.000000 m /n glyphshow +316.404297 0.000000 m /t glyphshow +321.109375 0.000000 m /s glyphshow +327.361328 0.000000 m /space glyphshow +331.175781 0.000000 m /o glyphshow +338.517578 0.000000 m /f glyphshow +342.742188 0.000000 m /space glyphshow +346.556641 0.000000 m /s glyphshow +352.808594 0.000000 m /y glyphshow +359.910156 0.000000 m /s glyphshow +366.162109 0.000000 m /t glyphshow +370.867188 0.000000 m /e glyphshow +378.250000 0.000000 m /m glyphshow +389.939453 0.000000 m /s glyphshow +396.191406 0.000000 m /space glyphshow +400.005859 0.000000 m /o glyphshow +407.347656 0.000000 m /n glyphshow +414.953125 0.000000 m /space glyphshow +418.767578 0.000000 m /A glyphshow +426.976562 0.000000 m /s glyphshow +433.228516 0.000000 m /t glyphshow +437.933594 0.000000 m /r glyphshow +442.867188 0.000000 m /o glyphshow +450.208984 0.000000 m /one glyphshow +grestore +1.000 setlinewidth +0 setlinecap +0.800 setgray +gsave +247.860625 110.8845 m +407.72 110.8845 l +409.053333 110.8845 409.72 111.551167 409.72 112.8845 c +409.72 229.2595 l +409.72 230.592833 409.053333 231.2595 407.72 231.2595 c +247.860625 231.2595 l +246.527292 231.2595 245.860625 230.592833 245.860625 229.2595 c +245.860625 112.8845 l +245.860625 111.551167 246.527292 110.8845 247.860625 110.8845 c +cl +gsave +1.000 setgray +fill +grestore +stroke +grestore +1 setlinejoin +[] 0 setdash +0.000 0.000 1.000 setrgbcolor +gsave +259.860625 218.16575 m +259.860625 228.16575 l +stroke +grestore +2 setlinecap +gsave +249.860625 223.16575 m +269.860625 223.16575 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 223.166 o +grestore +0.000 setgray +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +277.860625 219.665750 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.000 1.000 setrgbcolor +gsave +259.860625 203.493875 m +259.860625 213.493875 l +stroke +grestore +2 setlinecap +gsave +249.860625 208.493875 m +269.860625 208.493875 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 208.494 o +grestore +0.000 setgray +gsave +277.860625 204.993875 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.502 0.000 setrgbcolor +gsave +259.860625 188.822 m +259.860625 198.822 l +stroke +grestore +2 setlinecap +gsave +249.860625 193.822 m +269.860625 193.822 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 193.822 o +grestore +0.000 setgray +gsave +277.860625 190.322000 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.502 0.000 setrgbcolor +gsave +259.860625 174.150125 m +259.860625 184.150125 l +stroke +grestore +2 setlinecap +gsave +249.860625 179.150125 m +269.860625 179.150125 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 179.15 o +grestore +0.000 setgray +gsave +277.860625 175.650125 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +1.000 0.000 0.000 setrgbcolor +gsave +259.860625 159.47825 m +259.860625 169.47825 l +stroke +grestore +2 setlinecap +gsave +249.860625 164.47825 m +269.860625 164.47825 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 164.478 o +grestore +0.000 setgray +gsave +277.860625 160.978250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +1.000 0.000 0.000 setrgbcolor +gsave +259.860625 144.806375 m +259.860625 154.806375 l +stroke +grestore +2 setlinecap +gsave +249.860625 149.806375 m +269.860625 149.806375 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 149.806 o +grestore +0.000 setgray +gsave +277.860625 146.306375 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +gsave +259.860625 130.1345 m +259.860625 140.1345 l +stroke +grestore +2 setlinecap +gsave +249.860625 135.1345 m +269.860625 135.1345 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +259.861 135.134 o +grestore +gsave +277.860625 131.634500 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /zero glyphshow +31.811523 0.000000 m /space glyphshow +34.990234 0.000000 m /s glyphshow +40.200195 0.000000 m /y glyphshow +46.118164 0.000000 m /s glyphshow +51.328125 0.000000 m /t glyphshow +55.249023 0.000000 m /e glyphshow +61.401367 0.000000 m /m glyphshow +71.142578 0.000000 m /s glyphshow +76.352539 0.000000 m /space glyphshow +79.531250 0.000000 m /l glyphshow +82.309570 0.000000 m /i glyphshow +85.087891 0.000000 m /n glyphshow +91.425781 0.000000 m /e glyphshow +97.578125 0.000000 m /a glyphshow +103.706055 0.000000 m /r glyphshow +107.817383 0.000000 m /space glyphshow +110.996094 0.000000 m /r glyphshow +115.107422 0.000000 m /u glyphshow +121.445312 0.000000 m /n glyphshow +grestore +1 setlinejoin +gsave +259.860625 115.462625 m +259.860625 125.462625 l +stroke +grestore +2 setlinecap +gsave +249.860625 120.462625 m +269.860625 120.462625 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +259.861 120.463 o +grestore +gsave +277.860625 116.962625 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /zero glyphshow +31.811523 0.000000 m /space glyphshow +34.990234 0.000000 m /s glyphshow +40.200195 0.000000 m /y glyphshow +46.118164 0.000000 m /s glyphshow +51.328125 0.000000 m /t glyphshow +55.249023 0.000000 m /e glyphshow +61.401367 0.000000 m /m glyphshow +71.142578 0.000000 m /s glyphshow +76.352539 0.000000 m /space glyphshow +79.531250 0.000000 m /M glyphshow +88.159180 0.000000 m /P glyphshow +94.189453 0.000000 m /space glyphshow +97.368164 0.000000 m /r glyphshow +101.479492 0.000000 m /u glyphshow +107.817383 0.000000 m /n glyphshow +grestore + +end +showpage diff --git a/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.pdf b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..936f548782b57a3cff38f2aba3bc5b123a9f1bec Binary files /dev/null and b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.pdf differ diff --git a/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.png b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d490fa0c303edcc90ec78a867a62a460614bd8 Binary files /dev/null and b/tests/population/scaling/scaling_plots/total_time_scaling_Astro1.png differ