From: alegrand Date: Tue, 21 Dec 2004 21:46:49 +0000 (+0000) Subject: Trying to make old MSG exemples run on top on SURF. Definitely need to wax it more... X-Git-Tag: v3.3~4658 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/35cd3d66a276b47386bab662f867309a91a231c2?ds=sidebyside Trying to make old MSG exemples run on top on SURF. Definitely need to wax it more, especially the context part. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@692 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/testsuite/msg/messages.h b/testsuite/msg/messages.h new file mode 100644 index 0000000000..5571a68751 --- /dev/null +++ b/testsuite/msg/messages.h @@ -0,0 +1,59 @@ +/**** MSG_LICENCE DO NOT REMOVE ****/ + +#ifndef MESSAGES_H +#define MESSAGES_H + +#include +#include +#include "msg/datatypes.h" +#include "xbt/error.h" + +static void DIE(const char *fmt, ...) +{ + m_process_t self = MSG_process_self(); + va_list ap; + + va_start(ap, fmt); + if (self) + fprintf(stderr, "[%Lg] P%d | ", MSG_getClock(), + MSG_process_get_PID(self)); + vfprintf(stderr, fmt, ap); + va_end(ap); + + xbt_abort(); + return; +} + +static void PRINT_MESSAGE(const char *fmt, ...) +{ +#ifdef VERBOSE + m_process_t self = MSG_process_self(); + va_list ap; + + va_start(ap, fmt); + if (self) + fprintf(stderr, "[%Lg] P%d | ", MSG_getClock(), + MSG_process_get_PID(self)); + vfprintf(stderr, fmt, ap); + va_end(ap); +#endif + return; +} + +static void PRINT_DEBUG_MESSAGE(const char *fmt, ...) +{ +#ifdef VERBOSE + m_process_t self = MSG_process_self(); + va_list ap; + + va_start(ap, fmt); + if (self) + fprintf(stderr, "DEBUG [%Lg] P%d | ", MSG_getClock(), + MSG_process_get_PID(self)); + vfprintf(stderr, fmt, ap); + va_end(ap); +#endif + return; +} + +#endif diff --git a/testsuite/msg/msg_deployment.txt b/testsuite/msg/msg_deployment.txt new file mode 100644 index 0000000000..fa59a141fd --- /dev/null +++ b/testsuite/msg/msg_deployment.txt @@ -0,0 +1,6 @@ + + 121 master 70 125 62 + 70 slave + 125 slave + 62 slave + \ No newline at end of file diff --git a/testsuite/msg/msg_platform.txt b/testsuite/msg/msg_platform.txt new file mode 100644 index 0000000000..e99240e082 --- /dev/null +++ b/testsuite/msg/msg_platform.txt @@ -0,0 +1,1287 @@ + + 125 137.333 1.0 "" ON "" + 95 171.667 1.0 "" ON "" + 109 137.333 1.0 "" ON "" + 175 114.444 1.0 "" ON "" + 157 98.094999999999999 1.0 "" ON "" + 81 34.333 1.0 "" ON "" + 62 114.444 1.0 "" ON "" + 165 98.094999999999999 1.0 "" ON "" + 168 42.917000000000002 1.0 "" ON "" + 112 76.296000000000006 1.0 "" ON "" + 69 114.444 1.0 "" ON "" + 145 114.444 1.0 "" ON "" + 178 98.094999999999999 1.0 "" ON "" + 124 137.333 1.0 "" ON "" + 131 76.296000000000006 1.0 "" ON "" + 121 85.832999999999998 1.0 "" ON "" + 98 22.151 1.0 "" ON "" + 170 34.333 1.0 "" ON "" + 63 68.667000000000002 1.0 "" ON "" + 162 114.444 1.0 "" ON "" + 61 68.667000000000002 1.0 "" ON "" + 107 42.917000000000002 1.0 "" ON "" + 87 68.667000000000002 1.0 "" ON "" + 77 48.492 1.0 "" ON "" + 70 85.832999999999998 1.0 "" ON "" + 88 76.296000000000006 1.0 "" ON "" + 156 22.151 1.0 "" ON "" + 83 114.444 1.0 "" ON "" + 177 114.444 1.0 "" ON "" + 150 42.917000000000002 1.0 "" ON "" + 85 114.444 1.0 "" ON "" + 111 137.333 1.0 "" ON "" + 169 34.333 1.0 "" ON "" + + + 127 4.133375 "" 9.693542 "" ON "" + 32 27.94625 "" 0.278066 "" ON "" + 90 34.285625 "" 0.514433 "" ON "" + 118 3.275625 "" 0.658142 "" ON "" + 71 15.376875 "" 35.083019 "" ON "" + 102 1.04925 "" 9.647856 "" ON "" + 18 118.6825 "" 0.136931 "" ON "" + 125 3.29775 "" 0.595883 "" ON "" + 16 41.279125 "" 0.059904 "" ON "" + 44 10.314625 "" 6.932556 "" ON "" + 55 8.015125 "" 35.076518 "" ON "" + 84 8.015125 "" 35.076518 "" ON "" + 27 10.099625 "" 0.47978 "" ON "" + 190 0.76875 "" 8.76244 "" ON "" + 161 2.179125 "" 0.320114 "" ON "" + 95 3.71425 "" 3.866813 "" ON "" + 57 34.285625 "" 0.514433 "" ON "" + 20 132.977875 "" 0.131098 "" ON "" + 163 5.7585 "" 4.760145 "" ON "" + 109 1.326125 "" 1.402769 "" ON "" + 151 6.777 "" 0.53334 "" ON "" + 89 41.279125 "" 0.059904 "" ON "" + 175 1.892625 "" 0.162735 "" ON "" + 148 5.299 "" 0.520693 "" ON "" + 31 34.285625 "" 0.514433 "" ON "" + 35 11.845375 "" 0.370788 "" ON "" + 11 41.279125 "" 0.059904 "" ON "" + 78 10.314625 "" 6.932556 "" ON "" + 93 0.979625 "" 0.424305 "" ON "" + 106 3.37125 "" 0.666676 "" ON "" + 157 2.227375 "" 0.90712 "" ON "" + 65 34.285625 "" 0.514433 "" ON "" + 29 8.015125 "" 35.076518 "" ON "" + 138 1.8855 "" 0.950938 "" ON "" + 114 3.275625 "" 0.658142 "" ON "" + 58 11.618875 "" 0.18998 "" ON "" + 153 1.62775 "" 0.278175 "" ON "" + 15 118.6825 "" 0.136931 "" ON "" + 137 1.4655 "" 0.863872 "" ON "" + 81 11.845375 "" 0.370788 "" ON "" + 60 10.314625 "" 6.932556 "" ON "" + 101 0.117125 "" 53.930106 "" ON "" + 73 8.42725 "" 0.156056 "" ON "" + 86 8.158 "" 0.270544 "" ON "" + 76 10.099625 "" 0.47978 "" ON "" + 62 8.42725 "" 0.156056 "" ON "" + 67 41.279125 "" 0.059904 "" ON "" + 165 1.51525 "" 0.844683 "" ON "" + 139 1.126875 "" 0.28784 "" ON "" + 129 0.578625 "" 5.473705 "" ON "" + 2 41.279125 "" 0.059904 "" ON "" + 17 118.6825 "" 0.136931 "" ON "" + 186 5.299 "" 0.520693 "" ON "" + 110 3.9315 "" 1.913591 "" ON "" + 82 8.158 "" 0.270544 "" ON "" + 147 0.274375 "" 4.669142 "" ON "" + 168 2.368 "" 9.547561 "" ON "" + 184 1.931125 "" 0.95183 "" ON "" + 135 0.605 "" 87.981858 "" ON "" + 14 118.6825 "" 0.136931 "" ON "" + 112 3.430125 "" 0.536941 "" ON "" + 69 11.618875 "" 0.18998 "" ON "" + 191 1.23025 "" 1.502106 "" ON "" + 172 1.8855 "" 0.950938 "" ON "" + 145 2.227375 "" 0.90712 "" ON "" + 49 34.285625 "" 0.514433 "" ON "" + 178 0.578625 "" 5.473705 "" ON "" + 24 34.285625 "" 0.514433 "" ON "" + 187 0.303375 "" 4.062241 "" ON "" + 140 1.469125 "" 1.114548 "" ON "" + 124 2.227375 "" 0.90712 "" ON "" + 104 0.253125 "" 5.652577 "" ON "" + 131 0.253125 "" 5.652577 "" ON "" + 181 5.816375 "" 0.164758 "" ON "" + 121 3.9315 "" 1.913591 "" ON "" + 79 8.42725 "" 0.156056 "" ON "" + 154 0.251625 "" 4.455826 "" ON "" + 0 255.228625 "" 7.413073 "" ON "" + 23 8.42725 "" 0.156056 "" ON "" + 96 0.926625 "" 0.601375 "" ON "" + 126 1.04925 "" 9.647856 "" ON "" + 159 0.556 "" 3.101854 "" ON "" + 160 0.251625 "" 4.455826 "" ON "" + 176 2.3485 "" 0.259761 "" ON "" + 47 11.618875 "" 0.18998 "" ON "" + 8 34.285625 "" 0.514433 "" ON "" + 98 2.227375 "" 0.90712 "" ON "" + 37 8.42725 "" 0.156056 "" ON "" + 117 1.04925 "" 9.647856 "" ON "" + 43 10.314625 "" 6.932556 "" ON "" + 5 255.228625 "" 7.413073 "" ON "" + 170 7.20975 "" 1.461517 "" ON "" + 33 27.94625 "" 0.278066 "" ON "" + 21 41.279125 "" 0.059904 "" ON "" + 63 10.099625 "" 0.47978 "" ON "" + 7 255.228625 "" 7.413073 "" ON "" + 26 34.285625 "" 0.514433 "" ON "" + 80 8.42725 "" 0.156056 "" ON "" + 119 5.18975 "" 0.630529 "" ON "" + 180 1.8855 "" 0.950938 "" ON "" + 99 1.281875 "" 6.104672 "" ON "" + 179 1.467625 "" 0.869727 "" ON "" + 162 1.51525 "" 0.844683 "" ON "" + 72 21.41475 "" 295.890617 "" ON "" + 74 41.279125 "" 0.059904 "" ON "" + 182 1.4655 "" 0.863872 "" ON "" + 61 8.015125 "" 35.076518 "" ON "" + 108 3.37125 "" 0.666676 "" ON "" + 115 0.721625 "" 0.006406 "" ON "" + 92 2.179125 "" 0.320114 "" ON "" + 103 0.9905 "" 1.742977 "" ON "" + 10 132.977875 "" 0.131098 "" ON "" + 113 6.551 "" 0.522878 "" ON "" + 152 0.253125 "" 5.652577 "" ON "" + 189 5.228375 "" 0.039417 "" ON "" + 142 0.76875 "" 8.76244 "" ON "" + 91 41.279125 "" 0.059904 "" ON "" + 167 0.578625 "" 5.473705 "" ON "" + 48 15.376875 "" 35.083019 "" ON "" + 107 2.3485 "" 0.259761 "" ON "" + 87 41.279125 "" 0.059904 "" ON "" + 174 0.317375 "" 4.583831 "" ON "" + 77 10.099625 "" 0.47978 "" ON "" + 133 1.931125 "" 0.95183 "" ON "" + 149 0.274375 "" 4.669142 "" ON "" + 123 4.27025 "" 0.672289 "" ON "" + 50 10.314625 "" 6.932556 "" ON "" + 39 8.42725 "" 0.156056 "" ON "" + 64 11.845375 "" 0.370788 "" ON "" + 97 1.23025 "" 1.502106 "" ON "" + 12 118.6825 "" 0.136931 "" ON "" + 41 15.376875 "" 35.083019 "" ON "" + 52 11.845375 "" 0.370788 "" ON "" + 173 4.416625 "" 0.019773 "" ON "" + 56 10.314625 "" 6.932556 "" ON "" + 45 10.314625 "" 6.932556 "" ON "" + 66 27.94625 "" 0.278066 "" ON "" + 19 132.977875 "" 0.131098 "" ON "" + 54 8.158 "" 0.270544 "" ON "" + 70 27.94625 "" 0.278066 "" ON "" + 188 2.583375 "" 0.410463 "" ON "" + 68 27.94625 "" 0.278066 "" ON "" + 166 0.605 "" 87.981858 "" ON "" + 1 132.977875 "" 0.131098 "" ON "" + 136 1.469125 "" 1.114548 "" ON "" + 88 34.285625 "" 0.514433 "" ON "" + 116 0.578625 "" 5.473705 "" ON "" + 144 1.281875 "" 6.104672 "" ON "" + 141 2.583375 "" 0.410463 "" ON "" + 30 11.845375 "" 0.370788 "" ON "" + 100 3.068375 "" 0.0403 "" ON "" + 25 27.94625 "" 0.278066 "" ON "" + 128 0.9905 "" 1.742977 "" ON "" + 28 15.376875 "" 35.083019 "" ON "" + 120 0.9905 "" 1.742977 "" ON "" + 156 2.23825 "" 1.043314 "" ON "" + 134 1.04925 "" 9.647856 "" ON "" + 40 11.845375 "" 0.370788 "" ON "" + 75 41.279125 "" 0.059904 "" ON "" + 83 11.845375 "" 0.370788 "" ON "" + 59 21.41475 "" 295.890617 "" ON "" + 177 3.9955 "" 0.678645 "" ON "" + 150 4.817 "" 0.117352 "" ON "" + 155 3.9315 "" 1.913591 "" ON "" + 130 1.858 "" 0.820952 "" ON "" + 53 8.42725 "" 0.156056 "" ON "" + 122 3.068375 "" 0.0403 "" ON "" + 143 1.326125 "" 1.402769 "" ON "" + 158 3.8775 "" 0.863123 "" ON "" + 42 10.314625 "" 6.932556 "" ON "" + 22 11.845375 "" 0.370788 "" ON "" + 46 10.314625 "" 6.932556 "" ON "" + 13 41.279125 "" 0.059904 "" ON "" + 105 0.272375 "" 5.922616 "" ON "" + 6 255.228625 "" 7.413073 "" ON "" + 85 41.279125 "" 0.059904 "" ON "" + 185 1.281875 "" 6.104672 "" ON "" + 36 8.158 "" 0.270544 "" ON "" + 3 118.6825 "" 0.136931 "" ON "" + 183 1.281875 "" 6.104672 "" ON "" + 94 3.275625 "" 0.658142 "" ON "" + 146 5.574625 "" 0.22743 "" ON "" + 51 8.158 "" 0.270544 "" ON "" + 9 41.279125 "" 0.059904 "" ON "" + 111 2.227375 "" 0.90712 "" ON "" + 38 11.618875 "" 0.18998 "" ON "" + 4 41.279125 "" 0.059904 "" ON "" + 34 41.279125 "" 0.059904 "" ON "" + 169 4.840375 "" 0.75181 "" ON "" + 164 0.605 "" 87.981858 "" ON "" + 132 0.472125 "" 5.161451 "" ON "" + 171 0.253125 "" 5.652577 "" ON "" + + + 125 95 (59 56 54 17 16 10 6 8 48 38 41) + 125 109 (59 56 54 17 16 10 6 8 42 43 131) + 125 175 (59 56 54 17 16 10 6 9 79 78 80 82 91) + 125 157 (59 56 54 2 3 69 64 65 72 169) + 125 81 (59 56 54 17 16 10 6 7 19 28 27 30 32 33 108) + 125 62 (59 56 54 17 16 10 6 7 19 28 29 93) + 125 165 (59 56 54 17 16 10 6 9 79 78 80 82 87 88 90) + 125 168 (59 56 54 17 16 10 6 9 79 78 80 82 87 88 90 178) + 125 112 (59 58 62 133) + 125 69 (59 56 54 17 16 10 6 7 19 28 27 30 34 99) + 125 145 (59 56 54 2 3 70) + 125 178 (59 56 54 17 16 10 6 9 79 78 80 82 91 186) + 125 124 (59 56 57 143) + 125 131 (59 56 54 52 53 148) + 125 121 (59 56 57 140) + 125 98 (59 56 54 17 16 10 6 8 48 38 41 122) + 125 170 (59 56 54 17 16 10 6 9 79 78 81) + 125 63 (59 56 54 17 16 10 6 7 19 28 29 94) + 125 162 (59 56 54 17 16 10 6 9 79 78 80 82 87 88 89 173) + 125 61 (59 56 54 17 16 10 6 7 19 28 29 92) + 125 107 (59 56 54 17 16 10 6 8 42 43 129) + 125 87 (59 56 54 17 16 10 6 8 48 38 40 113) + 125 77 (59 56 54 17 16 10 6 7 19 28 27 31 105) + 125 70 (59 56 54 17 16 10 6 7 19 28 27 30 35) + 125 88 (59 56 54 17 16 10 6 8 48 38 40 114) + 125 156 (59 56 54 2 3 69 64 65 72 168) + 125 83 (59 56 54 17 16 10 6 7 19 28 27 30 32 33 110) + 125 177 (59 56 54 17 16 10 6 9 79 78 80 82 91 185) + 125 150 (59 56 54 2 1 15 76) + 125 85 (59 56 54 17 16 10 6 8 48 38 40) + 125 111 (59 58 62 132) + 125 169 (59 56 54 17 16 10 6 9 79 78 80 82 87 88 90 179) + 95 125 (41 38 48 8 6 10 16 17 54 56 59) + 95 109 (41 38 48 42 43 131) + 95 175 (41 38 48 8 9 79 78 80 82 91) + 95 157 (41 38 48 8 6 10 16 0 3 69 64 65 72 169) + 95 81 (41 38 48 8 7 19 28 27 30 32 33 108) + 95 62 (41 38 48 8 7 19 28 29 93) + 95 165 (41 38 48 8 9 79 78 80 82 87 88 90) + 95 168 (41 38 48 8 9 79 78 80 82 87 88 90 178) + 95 112 (41 38 48 8 6 10 16 17 54 56 58 62 133) + 95 69 (41 38 48 8 7 19 28 27 30 34 99) + 95 145 (41 38 48 8 6 10 16 0 3 70) + 95 178 (41 38 48 8 9 79 78 80 82 91 186) + 95 124 (41 38 48 8 6 10 16 17 54 57 143) + 95 131 (41 38 48 8 6 10 16 17 52 53 148) + 95 121 (41 38 48 8 6 10 16 17 54 57 140) + 95 98 (122) + 95 170 (41 38 48 8 9 79 78 81) + 95 63 (41 38 48 8 7 19 28 29 94) + 95 162 (41 38 48 8 9 79 78 80 82 87 88 89 173) + 95 61 (41 38 48 8 7 19 28 29 92) + 95 107 (41 38 48 42 43 129) + 95 87 (41 40 113) + 95 77 (41 38 48 8 7 19 28 27 31 105) + 95 70 (41 38 48 8 7 19 28 27 30 35) + 95 88 (41 40 114) + 95 156 (41 38 48 8 6 10 16 0 3 69 64 65 72 168) + 95 83 (41 38 48 8 7 19 28 27 30 32 33 110) + 95 177 (41 38 48 8 9 79 78 80 82 91 185) + 95 150 (41 38 48 8 6 10 16 0 1 15 76) + 95 85 (41 40) + 95 111 (41 38 48 8 6 10 16 17 54 56 58 62 132) + 95 169 (41 38 48 8 9 79 78 80 82 87 88 90 179) + 109 125 (131 43 42 8 6 10 16 17 54 56 59) + 109 95 (131 43 42 48 38 41) + 109 175 (131 43 42 8 9 79 78 80 82 91) + 109 157 (131 43 42 8 6 10 16 0 3 69 64 65 72 169) + 109 81 (131 43 42 8 7 19 28 27 30 32 33 108) + 109 62 (131 43 42 8 7 19 28 29 93) + 109 165 (131 43 42 8 9 79 78 80 82 87 88 90) + 109 168 (131 43 42 8 9 79 78 80 82 87 88 90 178) + 109 112 (131 43 42 8 6 10 16 17 54 56 58 62 133) + 109 69 (131 43 42 8 7 19 28 27 30 34 99) + 109 145 (131 43 42 8 6 10 16 0 3 70) + 109 178 (131 43 42 8 9 79 78 80 82 91 186) + 109 124 (131 43 42 8 6 10 16 17 54 57 143) + 109 131 (131 43 42 8 6 10 16 17 52 53 148) + 109 121 (131 43 42 8 6 10 16 17 54 57 140) + 109 98 (131 43 42 48 38 41 122) + 109 170 (131 43 42 8 9 79 78 81) + 109 63 (131 43 42 8 7 19 28 29 94) + 109 162 (131 43 42 8 9 79 78 80 82 87 88 89 173) + 109 61 (131 43 42 8 7 19 28 29 92) + 109 107 (131 129) + 109 87 (131 43 42 48 38 40 113) + 109 77 (131 43 42 8 7 19 28 27 31 105) + 109 70 (131 43 42 8 7 19 28 27 30 35) + 109 88 (131 43 42 48 38 40 114) + 109 156 (131 43 42 8 6 10 16 0 3 69 64 65 72 168) + 109 83 (131 43 42 8 7 19 28 27 30 32 33 110) + 109 177 (131 43 42 8 9 79 78 80 82 91 185) + 109 150 (131 43 42 8 6 10 16 0 1 15 76) + 109 85 (131 43 42 48 38 40) + 109 111 (131 43 42 8 6 10 16 17 54 56 58 62 132) + 109 169 (131 43 42 8 9 79 78 80 82 87 88 90 179) + 175 125 (91 82 80 78 79 9 6 10 16 17 54 56 59) + 175 95 (91 82 80 78 79 9 8 48 38 41) + 175 109 (91 82 80 78 79 9 8 42 43 131) + 175 157 (91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 175 81 (91 82 80 78 79 20 19 28 27 30 32 33 108) + 175 62 (91 82 80 78 79 20 19 28 29 93) + 175 165 (91 87 88 90) + 175 168 (91 87 88 90 178) + 175 112 (91 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 175 69 (91 82 80 78 79 20 19 28 27 30 34 99) + 175 145 (91 82 80 78 79 9 6 10 16 0 3 70) + 175 178 (186) + 175 124 (91 82 80 78 79 9 6 10 16 17 54 57 143) + 175 131 (91 82 80 78 79 9 6 10 16 17 52 53 148) + 175 121 (91 82 80 78 79 9 6 10 16 17 54 57 140) + 175 98 (91 82 80 78 79 9 8 48 38 41 122) + 175 170 (91 82 80 81) + 175 63 (91 82 80 78 79 20 19 28 29 94) + 175 162 (91 87 88 89 173) + 175 61 (91 82 80 78 79 20 19 28 29 92) + 175 107 (91 82 80 78 79 9 8 42 43 129) + 175 87 (91 82 80 78 79 9 8 48 38 40 113) + 175 77 (91 82 80 78 79 20 19 28 27 31 105) + 175 70 (91 82 80 78 79 20 19 28 27 30 35) + 175 88 (91 82 80 78 79 9 8 48 38 40 114) + 175 156 (91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 175 83 (91 82 80 78 79 20 19 28 27 30 32 33 110) + 175 177 (185) + 175 150 (91 82 80 78 79 9 6 10 16 0 1 15 76) + 175 85 (91 82 80 78 79 9 8 48 38 40) + 175 111 (91 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 175 169 (91 87 88 90 179) + 157 125 (169 72 65 64 69 3 2 54 56 59) + 157 95 (169 72 65 64 69 3 0 16 10 6 8 48 38 41) + 157 109 (169 72 65 64 69 3 0 16 10 6 8 42 43 131) + 157 175 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91) + 157 81 (169 72 65 64 69 3 0 16 10 6 7 19 28 27 30 32 33 108) + 157 62 (169 72 65 64 69 3 0 16 10 6 7 19 28 29 93) + 157 165 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90) + 157 168 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90 178) + 157 112 (169 72 65 64 69 3 2 54 56 58 62 133) + 157 69 (169 72 65 64 69 3 0 16 10 6 7 19 28 27 30 34 99) + 157 145 (169 72 65 64 69 70) + 157 178 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91 186) + 157 124 (169 72 65 64 69 3 2 54 57 143) + 157 131 (169 72 65 64 69 3 2 52 53 148) + 157 121 (169 72 65 64 69 3 2 54 57 140) + 157 98 (169 72 65 64 69 3 0 16 10 6 8 48 38 41 122) + 157 170 (169 72 65 64 69 3 0 16 10 6 9 79 78 81) + 157 63 (169 72 65 64 69 3 0 16 10 6 7 19 28 29 94) + 157 162 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 89 173) + 157 61 (169 72 65 64 69 3 0 16 10 6 7 19 28 29 92) + 157 107 (169 72 65 64 69 3 0 16 10 6 8 42 43 129) + 157 87 (169 72 65 64 69 3 0 16 10 6 8 48 38 40 113) + 157 77 (169 72 65 64 69 3 0 16 10 6 7 19 28 27 31 105) + 157 70 (169 72 65 64 69 3 0 16 10 6 7 19 28 27 30 35) + 157 88 (169 72 65 64 69 3 0 16 10 6 8 48 38 40 114) + 157 156 (169 168) + 157 83 (169 72 65 64 69 3 0 16 10 6 7 19 28 27 30 32 33 110) + 157 177 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91 185) + 157 150 (169 72 65 64 73 74 76) + 157 85 (169 72 65 64 69 3 0 16 10 6 8 48 38 40) + 157 111 (169 72 65 64 69 3 2 54 56 58 62 132) + 157 169 (169 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90 179) + 81 125 (108 33 32 30 27 28 19 7 6 10 16 17 54 56 59) + 81 95 (108 33 32 30 27 28 19 7 8 48 38 41) + 81 109 (108 33 32 30 27 28 19 7 8 42 43 131) + 81 175 (108 33 32 30 27 28 19 20 79 78 80 82 91) + 81 157 (108 33 32 30 27 28 19 7 6 10 16 0 3 69 64 65 72 169) + 81 62 (108 33 32 30 27 29 93) + 81 165 (108 33 32 30 27 28 19 20 79 78 80 82 87 88 90) + 81 168 (108 33 32 30 27 28 19 20 79 78 80 82 87 88 90 178) + 81 112 (108 33 32 30 27 28 19 7 6 10 16 17 54 56 58 62 133) + 81 69 (108 33 32 34 99) + 81 145 (108 33 32 30 27 28 19 7 6 10 16 0 3 70) + 81 178 (108 33 32 30 27 28 19 20 79 78 80 82 91 186) + 81 124 (108 33 32 30 27 28 19 7 6 10 16 17 54 57 143) + 81 131 (108 33 32 30 27 28 19 7 6 10 16 17 52 53 148) + 81 121 (108 33 32 30 27 28 19 7 6 10 16 17 54 57 140) + 81 98 (108 33 32 30 27 28 19 7 8 48 38 41 122) + 81 170 (108 33 32 30 27 28 19 20 79 78 81) + 81 63 (108 33 32 30 27 29 94) + 81 162 (108 33 32 30 27 28 19 20 79 78 80 82 87 88 89 173) + 81 61 (108 33 32 30 27 29 92) + 81 107 (108 33 32 30 27 28 19 7 8 42 43 129) + 81 87 (108 33 32 30 27 28 19 7 8 48 38 40 113) + 81 77 (108 33 32 30 31 105) + 81 70 (108 33 32 35) + 81 88 (108 33 32 30 27 28 19 7 8 48 38 40 114) + 81 156 (108 33 32 30 27 28 19 7 6 10 16 0 3 69 64 65 72 168) + 81 83 (108 110) + 81 177 (108 33 32 30 27 28 19 20 79 78 80 82 91 185) + 81 150 (108 33 32 30 27 28 19 7 6 10 16 0 1 15 76) + 81 85 (108 33 32 30 27 28 19 7 8 48 38 40) + 81 111 (108 33 32 30 27 28 19 7 6 10 16 17 54 56 58 62 132) + 81 169 (108 33 32 30 27 28 19 20 79 78 80 82 87 88 90 179) + 62 125 (93 29 28 19 7 6 10 16 17 54 56 59) + 62 95 (93 29 28 19 7 8 48 38 41) + 62 109 (93 29 28 19 7 8 42 43 131) + 62 175 (93 29 28 19 20 79 78 80 82 91) + 62 157 (93 29 28 19 7 6 10 16 0 3 69 64 65 72 169) + 62 81 (93 29 27 30 32 33 108) + 62 165 (93 29 28 19 20 79 78 80 82 87 88 90) + 62 168 (93 29 28 19 20 79 78 80 82 87 88 90 178) + 62 112 (93 29 28 19 7 6 10 16 17 54 56 58 62 133) + 62 69 (93 29 27 30 34 99) + 62 145 (93 29 28 19 7 6 10 16 0 3 70) + 62 178 (93 29 28 19 20 79 78 80 82 91 186) + 62 124 (93 29 28 19 7 6 10 16 17 54 57 143) + 62 131 (93 29 28 19 7 6 10 16 17 52 53 148) + 62 121 (93 29 28 19 7 6 10 16 17 54 57 140) + 62 98 (93 29 28 19 7 8 48 38 41 122) + 62 170 (93 29 28 19 20 79 78 81) + 62 63 (93 94) + 62 162 (93 29 28 19 20 79 78 80 82 87 88 89 173) + 62 61 (93 92) + 62 107 (93 29 28 19 7 8 42 43 129) + 62 87 (93 29 28 19 7 8 48 38 40 113) + 62 77 (93 29 27 31 105) + 62 70 (93 29 27 30 35) + 62 88 (93 29 28 19 7 8 48 38 40 114) + 62 156 (93 29 28 19 7 6 10 16 0 3 69 64 65 72 168) + 62 83 (93 29 27 30 32 33 110) + 62 177 (93 29 28 19 20 79 78 80 82 91 185) + 62 150 (93 29 28 19 7 6 10 16 0 1 15 76) + 62 85 (93 29 28 19 7 8 48 38 40) + 62 111 (93 29 28 19 7 6 10 16 17 54 56 58 62 132) + 62 169 (93 29 28 19 20 79 78 80 82 87 88 90 179) + 165 125 (90 88 87 82 80 78 79 9 6 10 16 17 54 56 59) + 165 95 (90 88 87 82 80 78 79 9 8 48 38 41) + 165 109 (90 88 87 82 80 78 79 9 8 42 43 131) + 165 175 (90 88 87 91) + 165 157 (90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 165 81 (90 88 87 82 80 78 79 20 19 28 27 30 32 33 108) + 165 62 (90 88 87 82 80 78 79 20 19 28 29 93) + 165 168 (178) + 165 112 (90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 165 69 (90 88 87 82 80 78 79 20 19 28 27 30 34 99) + 165 145 (90 88 87 82 80 78 79 9 6 10 16 0 3 70) + 165 178 (90 88 87 91 186) + 165 124 (90 88 87 82 80 78 79 9 6 10 16 17 54 57 143) + 165 131 (90 88 87 82 80 78 79 9 6 10 16 17 52 53 148) + 165 121 (90 88 87 82 80 78 79 9 6 10 16 17 54 57 140) + 165 98 (90 88 87 82 80 78 79 9 8 48 38 41 122) + 165 170 (90 88 87 82 80 81) + 165 63 (90 88 87 82 80 78 79 20 19 28 29 94) + 165 162 (90 89 173) + 165 61 (90 88 87 82 80 78 79 20 19 28 29 92) + 165 107 (90 88 87 82 80 78 79 9 8 42 43 129) + 165 87 (90 88 87 82 80 78 79 9 8 48 38 40 113) + 165 77 (90 88 87 82 80 78 79 20 19 28 27 31 105) + 165 70 (90 88 87 82 80 78 79 20 19 28 27 30 35) + 165 88 (90 88 87 82 80 78 79 9 8 48 38 40 114) + 165 156 (90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 165 83 (90 88 87 82 80 78 79 20 19 28 27 30 32 33 110) + 165 177 (90 88 87 91 185) + 165 150 (90 88 87 82 80 78 79 9 6 10 16 0 1 15 76) + 165 85 (90 88 87 82 80 78 79 9 8 48 38 40) + 165 111 (90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 165 169 (179) + 168 125 (178 90 88 87 82 80 78 79 9 6 10 16 17 54 56 59) + 168 95 (178 90 88 87 82 80 78 79 9 8 48 38 41) + 168 109 (178 90 88 87 82 80 78 79 9 8 42 43 131) + 168 175 (178 90 88 87 91) + 168 157 (178 90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 168 81 (178 90 88 87 82 80 78 79 20 19 28 27 30 32 33 108) + 168 62 (178 90 88 87 82 80 78 79 20 19 28 29 93) + 168 165 (178) + 168 112 (178 90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 168 69 (178 90 88 87 82 80 78 79 20 19 28 27 30 34 99) + 168 145 (178 90 88 87 82 80 78 79 9 6 10 16 0 3 70) + 168 178 (178 90 88 87 91 186) + 168 124 (178 90 88 87 82 80 78 79 9 6 10 16 17 54 57 143) + 168 131 (178 90 88 87 82 80 78 79 9 6 10 16 17 52 53 148) + 168 121 (178 90 88 87 82 80 78 79 9 6 10 16 17 54 57 140) + 168 98 (178 90 88 87 82 80 78 79 9 8 48 38 41 122) + 168 170 (178 90 88 87 82 80 81) + 168 63 (178 90 88 87 82 80 78 79 20 19 28 29 94) + 168 162 (178 90 89 173) + 168 61 (178 90 88 87 82 80 78 79 20 19 28 29 92) + 168 107 (178 90 88 87 82 80 78 79 9 8 42 43 129) + 168 87 (178 90 88 87 82 80 78 79 9 8 48 38 40 113) + 168 77 (178 90 88 87 82 80 78 79 20 19 28 27 31 105) + 168 70 (178 90 88 87 82 80 78 79 20 19 28 27 30 35) + 168 88 (178 90 88 87 82 80 78 79 9 8 48 38 40 114) + 168 156 (178 90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 168 83 (178 90 88 87 82 80 78 79 20 19 28 27 30 32 33 110) + 168 177 (178 90 88 87 91 185) + 168 150 (178 90 88 87 82 80 78 79 9 6 10 16 0 1 15 76) + 168 85 (178 90 88 87 82 80 78 79 9 8 48 38 40) + 168 111 (178 90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 168 169 (178 179) + 112 125 (133 62 58 59) + 112 95 (133 62 58 56 54 17 16 10 6 8 48 38 41) + 112 109 (133 62 58 56 54 17 16 10 6 8 42 43 131) + 112 175 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 91) + 112 157 (133 62 58 56 54 2 3 69 64 65 72 169) + 112 81 (133 62 58 56 54 17 16 10 6 7 19 28 27 30 32 33 108) + 112 62 (133 62 58 56 54 17 16 10 6 7 19 28 29 93) + 112 165 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90) + 112 168 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90 178) + 112 69 (133 62 58 56 54 17 16 10 6 7 19 28 27 30 34 99) + 112 145 (133 62 58 56 54 2 3 70) + 112 178 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 91 186) + 112 124 (133 62 58 56 57 143) + 112 131 (133 62 58 56 54 52 53 148) + 112 121 (133 62 58 56 57 140) + 112 98 (133 62 58 56 54 17 16 10 6 8 48 38 41 122) + 112 170 (133 62 58 56 54 17 16 10 6 9 79 78 81) + 112 63 (133 62 58 56 54 17 16 10 6 7 19 28 29 94) + 112 162 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 89 173) + 112 61 (133 62 58 56 54 17 16 10 6 7 19 28 29 92) + 112 107 (133 62 58 56 54 17 16 10 6 8 42 43 129) + 112 87 (133 62 58 56 54 17 16 10 6 8 48 38 40 113) + 112 77 (133 62 58 56 54 17 16 10 6 7 19 28 27 31 105) + 112 70 (133 62 58 56 54 17 16 10 6 7 19 28 27 30 35) + 112 88 (133 62 58 56 54 17 16 10 6 8 48 38 40 114) + 112 156 (133 62 58 56 54 2 3 69 64 65 72 168) + 112 83 (133 62 58 56 54 17 16 10 6 7 19 28 27 30 32 33 110) + 112 177 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 91 185) + 112 150 (133 62 58 56 54 2 1 15 76) + 112 85 (133 62 58 56 54 17 16 10 6 8 48 38 40) + 112 111 (133 132) + 112 169 (133 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90 179) + 69 125 (99 34 30 27 28 19 7 6 10 16 17 54 56 59) + 69 95 (99 34 30 27 28 19 7 8 48 38 41) + 69 109 (99 34 30 27 28 19 7 8 42 43 131) + 69 175 (99 34 30 27 28 19 20 79 78 80 82 91) + 69 157 (99 34 30 27 28 19 7 6 10 16 0 3 69 64 65 72 169) + 69 81 (99 34 32 33 108) + 69 62 (99 34 30 27 29 93) + 69 165 (99 34 30 27 28 19 20 79 78 80 82 87 88 90) + 69 168 (99 34 30 27 28 19 20 79 78 80 82 87 88 90 178) + 69 112 (99 34 30 27 28 19 7 6 10 16 17 54 56 58 62 133) + 69 145 (99 34 30 27 28 19 7 6 10 16 0 3 70) + 69 178 (99 34 30 27 28 19 20 79 78 80 82 91 186) + 69 124 (99 34 30 27 28 19 7 6 10 16 17 54 57 143) + 69 131 (99 34 30 27 28 19 7 6 10 16 17 52 53 148) + 69 121 (99 34 30 27 28 19 7 6 10 16 17 54 57 140) + 69 98 (99 34 30 27 28 19 7 8 48 38 41 122) + 69 170 (99 34 30 27 28 19 20 79 78 81) + 69 63 (99 34 30 27 29 94) + 69 162 (99 34 30 27 28 19 20 79 78 80 82 87 88 89 173) + 69 61 (99 34 30 27 29 92) + 69 107 (99 34 30 27 28 19 7 8 42 43 129) + 69 87 (99 34 30 27 28 19 7 8 48 38 40 113) + 69 77 (99 34 30 31 105) + 69 70 (99 34 35) + 69 88 (99 34 30 27 28 19 7 8 48 38 40 114) + 69 156 (99 34 30 27 28 19 7 6 10 16 0 3 69 64 65 72 168) + 69 83 (99 34 32 33 110) + 69 177 (99 34 30 27 28 19 20 79 78 80 82 91 185) + 69 150 (99 34 30 27 28 19 7 6 10 16 0 1 15 76) + 69 85 (99 34 30 27 28 19 7 8 48 38 40) + 69 111 (99 34 30 27 28 19 7 6 10 16 17 54 56 58 62 132) + 69 169 (99 34 30 27 28 19 20 79 78 80 82 87 88 90 179) + 145 125 (70 3 2 54 56 59) + 145 95 (70 3 0 16 10 6 8 48 38 41) + 145 109 (70 3 0 16 10 6 8 42 43 131) + 145 175 (70 3 0 16 10 6 9 79 78 80 82 91) + 145 157 (70 69 64 65 72 169) + 145 81 (70 3 0 16 10 6 7 19 28 27 30 32 33 108) + 145 62 (70 3 0 16 10 6 7 19 28 29 93) + 145 165 (70 3 0 16 10 6 9 79 78 80 82 87 88 90) + 145 168 (70 3 0 16 10 6 9 79 78 80 82 87 88 90 178) + 145 112 (70 3 2 54 56 58 62 133) + 145 69 (70 3 0 16 10 6 7 19 28 27 30 34 99) + 145 178 (70 3 0 16 10 6 9 79 78 80 82 91 186) + 145 124 (70 3 2 54 57 143) + 145 131 (70 3 2 52 53 148) + 145 121 (70 3 2 54 57 140) + 145 98 (70 3 0 16 10 6 8 48 38 41 122) + 145 170 (70 3 0 16 10 6 9 79 78 81) + 145 63 (70 3 0 16 10 6 7 19 28 29 94) + 145 162 (70 3 0 16 10 6 9 79 78 80 82 87 88 89 173) + 145 61 (70 3 0 16 10 6 7 19 28 29 92) + 145 107 (70 3 0 16 10 6 8 42 43 129) + 145 87 (70 3 0 16 10 6 8 48 38 40 113) + 145 77 (70 3 0 16 10 6 7 19 28 27 31 105) + 145 70 (70 3 0 16 10 6 7 19 28 27 30 35) + 145 88 (70 3 0 16 10 6 8 48 38 40 114) + 145 156 (70 69 64 65 72 168) + 145 83 (70 3 0 16 10 6 7 19 28 27 30 32 33 110) + 145 177 (70 3 0 16 10 6 9 79 78 80 82 91 185) + 145 150 (70 3 1 15 76) + 145 85 (70 3 0 16 10 6 8 48 38 40) + 145 111 (70 3 2 54 56 58 62 132) + 145 169 (70 3 0 16 10 6 9 79 78 80 82 87 88 90 179) + 178 125 (186 91 82 80 78 79 9 6 10 16 17 54 56 59) + 178 95 (186 91 82 80 78 79 9 8 48 38 41) + 178 109 (186 91 82 80 78 79 9 8 42 43 131) + 178 175 (186) + 178 157 (186 91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 178 81 (186 91 82 80 78 79 20 19 28 27 30 32 33 108) + 178 62 (186 91 82 80 78 79 20 19 28 29 93) + 178 165 (186 91 87 88 90) + 178 168 (186 91 87 88 90 178) + 178 112 (186 91 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 178 69 (186 91 82 80 78 79 20 19 28 27 30 34 99) + 178 145 (186 91 82 80 78 79 9 6 10 16 0 3 70) + 178 124 (186 91 82 80 78 79 9 6 10 16 17 54 57 143) + 178 131 (186 91 82 80 78 79 9 6 10 16 17 52 53 148) + 178 121 (186 91 82 80 78 79 9 6 10 16 17 54 57 140) + 178 98 (186 91 82 80 78 79 9 8 48 38 41 122) + 178 170 (186 91 82 80 81) + 178 63 (186 91 82 80 78 79 20 19 28 29 94) + 178 162 (186 91 87 88 89 173) + 178 61 (186 91 82 80 78 79 20 19 28 29 92) + 178 107 (186 91 82 80 78 79 9 8 42 43 129) + 178 87 (186 91 82 80 78 79 9 8 48 38 40 113) + 178 77 (186 91 82 80 78 79 20 19 28 27 31 105) + 178 70 (186 91 82 80 78 79 20 19 28 27 30 35) + 178 88 (186 91 82 80 78 79 9 8 48 38 40 114) + 178 156 (186 91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 178 83 (186 91 82 80 78 79 20 19 28 27 30 32 33 110) + 178 177 (186 185) + 178 150 (186 91 82 80 78 79 9 6 10 16 0 1 15 76) + 178 85 (186 91 82 80 78 79 9 8 48 38 40) + 178 111 (186 91 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 178 169 (186 91 87 88 90 179) + 124 125 (143 57 56 59) + 124 95 (143 57 54 17 16 10 6 8 48 38 41) + 124 109 (143 57 54 17 16 10 6 8 42 43 131) + 124 175 (143 57 54 17 16 10 6 9 79 78 80 82 91) + 124 157 (143 57 54 2 3 69 64 65 72 169) + 124 81 (143 57 54 17 16 10 6 7 19 28 27 30 32 33 108) + 124 62 (143 57 54 17 16 10 6 7 19 28 29 93) + 124 165 (143 57 54 17 16 10 6 9 79 78 80 82 87 88 90) + 124 168 (143 57 54 17 16 10 6 9 79 78 80 82 87 88 90 178) + 124 112 (143 57 56 58 62 133) + 124 69 (143 57 54 17 16 10 6 7 19 28 27 30 34 99) + 124 145 (143 57 54 2 3 70) + 124 178 (143 57 54 17 16 10 6 9 79 78 80 82 91 186) + 124 131 (143 57 54 52 53 148) + 124 121 (143 140) + 124 98 (143 57 54 17 16 10 6 8 48 38 41 122) + 124 170 (143 57 54 17 16 10 6 9 79 78 81) + 124 63 (143 57 54 17 16 10 6 7 19 28 29 94) + 124 162 (143 57 54 17 16 10 6 9 79 78 80 82 87 88 89 173) + 124 61 (143 57 54 17 16 10 6 7 19 28 29 92) + 124 107 (143 57 54 17 16 10 6 8 42 43 129) + 124 87 (143 57 54 17 16 10 6 8 48 38 40 113) + 124 77 (143 57 54 17 16 10 6 7 19 28 27 31 105) + 124 70 (143 57 54 17 16 10 6 7 19 28 27 30 35) + 124 88 (143 57 54 17 16 10 6 8 48 38 40 114) + 124 156 (143 57 54 2 3 69 64 65 72 168) + 124 83 (143 57 54 17 16 10 6 7 19 28 27 30 32 33 110) + 124 177 (143 57 54 17 16 10 6 9 79 78 80 82 91 185) + 124 150 (143 57 54 2 1 15 76) + 124 85 (143 57 54 17 16 10 6 8 48 38 40) + 124 111 (143 57 56 58 62 132) + 124 169 (143 57 54 17 16 10 6 9 79 78 80 82 87 88 90 179) + 131 125 (148 53 52 54 56 59) + 131 95 (148 53 52 17 16 10 6 8 48 38 41) + 131 109 (148 53 52 17 16 10 6 8 42 43 131) + 131 175 (148 53 52 17 16 10 6 9 79 78 80 82 91) + 131 157 (148 53 52 2 3 69 64 65 72 169) + 131 81 (148 53 52 17 16 10 6 7 19 28 27 30 32 33 108) + 131 62 (148 53 52 17 16 10 6 7 19 28 29 93) + 131 165 (148 53 52 17 16 10 6 9 79 78 80 82 87 88 90) + 131 168 (148 53 52 17 16 10 6 9 79 78 80 82 87 88 90 178) + 131 112 (148 53 52 54 56 58 62 133) + 131 69 (148 53 52 17 16 10 6 7 19 28 27 30 34 99) + 131 145 (148 53 52 2 3 70) + 131 178 (148 53 52 17 16 10 6 9 79 78 80 82 91 186) + 131 124 (148 53 52 54 57 143) + 131 121 (148 53 52 54 57 140) + 131 98 (148 53 52 17 16 10 6 8 48 38 41 122) + 131 170 (148 53 52 17 16 10 6 9 79 78 81) + 131 63 (148 53 52 17 16 10 6 7 19 28 29 94) + 131 162 (148 53 52 17 16 10 6 9 79 78 80 82 87 88 89 173) + 131 61 (148 53 52 17 16 10 6 7 19 28 29 92) + 131 107 (148 53 52 17 16 10 6 8 42 43 129) + 131 87 (148 53 52 17 16 10 6 8 48 38 40 113) + 131 77 (148 53 52 17 16 10 6 7 19 28 27 31 105) + 131 70 (148 53 52 17 16 10 6 7 19 28 27 30 35) + 131 88 (148 53 52 17 16 10 6 8 48 38 40 114) + 131 156 (148 53 52 2 3 69 64 65 72 168) + 131 83 (148 53 52 17 16 10 6 7 19 28 27 30 32 33 110) + 131 177 (148 53 52 17 16 10 6 9 79 78 80 82 91 185) + 131 150 (148 53 52 2 1 15 76) + 131 85 (148 53 52 17 16 10 6 8 48 38 40) + 131 111 (148 53 52 54 56 58 62 132) + 131 169 (148 53 52 17 16 10 6 9 79 78 80 82 87 88 90 179) + 121 125 (140 57 56 59) + 121 95 (140 57 54 17 16 10 6 8 48 38 41) + 121 109 (140 57 54 17 16 10 6 8 42 43 131) + 121 175 (140 57 54 17 16 10 6 9 79 78 80 82 91) + 121 157 (140 57 54 2 3 69 64 65 72 169) + 121 81 (140 57 54 17 16 10 6 7 19 28 27 30 32 33 108) + 121 62 (140 57 54 17 16 10 6 7 19 28 29 93) + 121 165 (140 57 54 17 16 10 6 9 79 78 80 82 87 88 90) + 121 168 (140 57 54 17 16 10 6 9 79 78 80 82 87 88 90 178) + 121 112 (140 57 56 58 62 133) + 121 69 (140 57 54 17 16 10 6 7 19 28 27 30 34 99) + 121 145 (140 57 54 2 3 70) + 121 178 (140 57 54 17 16 10 6 9 79 78 80 82 91 186) + 121 124 (140 143) + 121 131 (140 57 54 52 53 148) + 121 98 (140 57 54 17 16 10 6 8 48 38 41 122) + 121 170 (140 57 54 17 16 10 6 9 79 78 81) + 121 63 (140 57 54 17 16 10 6 7 19 28 29 94) + 121 162 (140 57 54 17 16 10 6 9 79 78 80 82 87 88 89 173) + 121 61 (140 57 54 17 16 10 6 7 19 28 29 92) + 121 107 (140 57 54 17 16 10 6 8 42 43 129) + 121 87 (140 57 54 17 16 10 6 8 48 38 40 113) + 121 77 (140 57 54 17 16 10 6 7 19 28 27 31 105) + 121 70 (140 57 54 17 16 10 6 7 19 28 27 30 35) + 121 88 (140 57 54 17 16 10 6 8 48 38 40 114) + 121 156 (140 57 54 2 3 69 64 65 72 168) + 121 83 (140 57 54 17 16 10 6 7 19 28 27 30 32 33 110) + 121 177 (140 57 54 17 16 10 6 9 79 78 80 82 91 185) + 121 150 (140 57 54 2 1 15 76) + 121 85 (140 57 54 17 16 10 6 8 48 38 40) + 121 111 (140 57 56 58 62 132) + 121 169 (140 57 54 17 16 10 6 9 79 78 80 82 87 88 90 179) + 98 125 (122 41 38 48 8 6 10 16 17 54 56 59) + 98 95 (122) + 98 109 (122 41 38 48 42 43 131) + 98 175 (122 41 38 48 8 9 79 78 80 82 91) + 98 157 (122 41 38 48 8 6 10 16 0 3 69 64 65 72 169) + 98 81 (122 41 38 48 8 7 19 28 27 30 32 33 108) + 98 62 (122 41 38 48 8 7 19 28 29 93) + 98 165 (122 41 38 48 8 9 79 78 80 82 87 88 90) + 98 168 (122 41 38 48 8 9 79 78 80 82 87 88 90 178) + 98 112 (122 41 38 48 8 6 10 16 17 54 56 58 62 133) + 98 69 (122 41 38 48 8 7 19 28 27 30 34 99) + 98 145 (122 41 38 48 8 6 10 16 0 3 70) + 98 178 (122 41 38 48 8 9 79 78 80 82 91 186) + 98 124 (122 41 38 48 8 6 10 16 17 54 57 143) + 98 131 (122 41 38 48 8 6 10 16 17 52 53 148) + 98 121 (122 41 38 48 8 6 10 16 17 54 57 140) + 98 170 (122 41 38 48 8 9 79 78 81) + 98 63 (122 41 38 48 8 7 19 28 29 94) + 98 162 (122 41 38 48 8 9 79 78 80 82 87 88 89 173) + 98 61 (122 41 38 48 8 7 19 28 29 92) + 98 107 (122 41 38 48 42 43 129) + 98 87 (122 41 40 113) + 98 77 (122 41 38 48 8 7 19 28 27 31 105) + 98 70 (122 41 38 48 8 7 19 28 27 30 35) + 98 88 (122 41 40 114) + 98 156 (122 41 38 48 8 6 10 16 0 3 69 64 65 72 168) + 98 83 (122 41 38 48 8 7 19 28 27 30 32 33 110) + 98 177 (122 41 38 48 8 9 79 78 80 82 91 185) + 98 150 (122 41 38 48 8 6 10 16 0 1 15 76) + 98 85 (122 41 40) + 98 111 (122 41 38 48 8 6 10 16 17 54 56 58 62 132) + 98 169 (122 41 38 48 8 9 79 78 80 82 87 88 90 179) + 170 125 (81 78 79 9 6 10 16 17 54 56 59) + 170 95 (81 78 79 9 8 48 38 41) + 170 109 (81 78 79 9 8 42 43 131) + 170 175 (81 80 82 91) + 170 157 (81 78 79 9 6 10 16 0 3 69 64 65 72 169) + 170 81 (81 78 79 20 19 28 27 30 32 33 108) + 170 62 (81 78 79 20 19 28 29 93) + 170 165 (81 80 82 87 88 90) + 170 168 (81 80 82 87 88 90 178) + 170 112 (81 78 79 9 6 10 16 17 54 56 58 62 133) + 170 69 (81 78 79 20 19 28 27 30 34 99) + 170 145 (81 78 79 9 6 10 16 0 3 70) + 170 178 (81 80 82 91 186) + 170 124 (81 78 79 9 6 10 16 17 54 57 143) + 170 131 (81 78 79 9 6 10 16 17 52 53 148) + 170 121 (81 78 79 9 6 10 16 17 54 57 140) + 170 98 (81 78 79 9 8 48 38 41 122) + 170 63 (81 78 79 20 19 28 29 94) + 170 162 (81 80 82 87 88 89 173) + 170 61 (81 78 79 20 19 28 29 92) + 170 107 (81 78 79 9 8 42 43 129) + 170 87 (81 78 79 9 8 48 38 40 113) + 170 77 (81 78 79 20 19 28 27 31 105) + 170 70 (81 78 79 20 19 28 27 30 35) + 170 88 (81 78 79 9 8 48 38 40 114) + 170 156 (81 78 79 9 6 10 16 0 3 69 64 65 72 168) + 170 83 (81 78 79 20 19 28 27 30 32 33 110) + 170 177 (81 80 82 91 185) + 170 150 (81 78 79 9 6 10 16 0 1 15 76) + 170 85 (81 78 79 9 8 48 38 40) + 170 111 (81 78 79 9 6 10 16 17 54 56 58 62 132) + 170 169 (81 80 82 87 88 90 179) + 63 125 (94 29 28 19 7 6 10 16 17 54 56 59) + 63 95 (94 29 28 19 7 8 48 38 41) + 63 109 (94 29 28 19 7 8 42 43 131) + 63 175 (94 29 28 19 20 79 78 80 82 91) + 63 157 (94 29 28 19 7 6 10 16 0 3 69 64 65 72 169) + 63 81 (94 29 27 30 32 33 108) + 63 62 (94 93) + 63 165 (94 29 28 19 20 79 78 80 82 87 88 90) + 63 168 (94 29 28 19 20 79 78 80 82 87 88 90 178) + 63 112 (94 29 28 19 7 6 10 16 17 54 56 58 62 133) + 63 69 (94 29 27 30 34 99) + 63 145 (94 29 28 19 7 6 10 16 0 3 70) + 63 178 (94 29 28 19 20 79 78 80 82 91 186) + 63 124 (94 29 28 19 7 6 10 16 17 54 57 143) + 63 131 (94 29 28 19 7 6 10 16 17 52 53 148) + 63 121 (94 29 28 19 7 6 10 16 17 54 57 140) + 63 98 (94 29 28 19 7 8 48 38 41 122) + 63 170 (94 29 28 19 20 79 78 81) + 63 162 (94 29 28 19 20 79 78 80 82 87 88 89 173) + 63 61 (94 92) + 63 107 (94 29 28 19 7 8 42 43 129) + 63 87 (94 29 28 19 7 8 48 38 40 113) + 63 77 (94 29 27 31 105) + 63 70 (94 29 27 30 35) + 63 88 (94 29 28 19 7 8 48 38 40 114) + 63 156 (94 29 28 19 7 6 10 16 0 3 69 64 65 72 168) + 63 83 (94 29 27 30 32 33 110) + 63 177 (94 29 28 19 20 79 78 80 82 91 185) + 63 150 (94 29 28 19 7 6 10 16 0 1 15 76) + 63 85 (94 29 28 19 7 8 48 38 40) + 63 111 (94 29 28 19 7 6 10 16 17 54 56 58 62 132) + 63 169 (94 29 28 19 20 79 78 80 82 87 88 90 179) + 162 125 (173 89 88 87 82 80 78 79 9 6 10 16 17 54 56 59) + 162 95 (173 89 88 87 82 80 78 79 9 8 48 38 41) + 162 109 (173 89 88 87 82 80 78 79 9 8 42 43 131) + 162 175 (173 89 88 87 91) + 162 157 (173 89 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 162 81 (173 89 88 87 82 80 78 79 20 19 28 27 30 32 33 108) + 162 62 (173 89 88 87 82 80 78 79 20 19 28 29 93) + 162 165 (173 89 90) + 162 168 (173 89 90 178) + 162 112 (173 89 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 162 69 (173 89 88 87 82 80 78 79 20 19 28 27 30 34 99) + 162 145 (173 89 88 87 82 80 78 79 9 6 10 16 0 3 70) + 162 178 (173 89 88 87 91 186) + 162 124 (173 89 88 87 82 80 78 79 9 6 10 16 17 54 57 143) + 162 131 (173 89 88 87 82 80 78 79 9 6 10 16 17 52 53 148) + 162 121 (173 89 88 87 82 80 78 79 9 6 10 16 17 54 57 140) + 162 98 (173 89 88 87 82 80 78 79 9 8 48 38 41 122) + 162 170 (173 89 88 87 82 80 81) + 162 63 (173 89 88 87 82 80 78 79 20 19 28 29 94) + 162 61 (173 89 88 87 82 80 78 79 20 19 28 29 92) + 162 107 (173 89 88 87 82 80 78 79 9 8 42 43 129) + 162 87 (173 89 88 87 82 80 78 79 9 8 48 38 40 113) + 162 77 (173 89 88 87 82 80 78 79 20 19 28 27 31 105) + 162 70 (173 89 88 87 82 80 78 79 20 19 28 27 30 35) + 162 88 (173 89 88 87 82 80 78 79 9 8 48 38 40 114) + 162 156 (173 89 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 162 83 (173 89 88 87 82 80 78 79 20 19 28 27 30 32 33 110) + 162 177 (173 89 88 87 91 185) + 162 150 (173 89 88 87 82 80 78 79 9 6 10 16 0 1 15 76) + 162 85 (173 89 88 87 82 80 78 79 9 8 48 38 40) + 162 111 (173 89 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 162 169 (173 89 90 179) + 61 125 (92 29 28 19 7 6 10 16 17 54 56 59) + 61 95 (92 29 28 19 7 8 48 38 41) + 61 109 (92 29 28 19 7 8 42 43 131) + 61 175 (92 29 28 19 20 79 78 80 82 91) + 61 157 (92 29 28 19 7 6 10 16 0 3 69 64 65 72 169) + 61 81 (92 29 27 30 32 33 108) + 61 62 (92 93) + 61 165 (92 29 28 19 20 79 78 80 82 87 88 90) + 61 168 (92 29 28 19 20 79 78 80 82 87 88 90 178) + 61 112 (92 29 28 19 7 6 10 16 17 54 56 58 62 133) + 61 69 (92 29 27 30 34 99) + 61 145 (92 29 28 19 7 6 10 16 0 3 70) + 61 178 (92 29 28 19 20 79 78 80 82 91 186) + 61 124 (92 29 28 19 7 6 10 16 17 54 57 143) + 61 131 (92 29 28 19 7 6 10 16 17 52 53 148) + 61 121 (92 29 28 19 7 6 10 16 17 54 57 140) + 61 98 (92 29 28 19 7 8 48 38 41 122) + 61 170 (92 29 28 19 20 79 78 81) + 61 63 (92 94) + 61 162 (92 29 28 19 20 79 78 80 82 87 88 89 173) + 61 107 (92 29 28 19 7 8 42 43 129) + 61 87 (92 29 28 19 7 8 48 38 40 113) + 61 77 (92 29 27 31 105) + 61 70 (92 29 27 30 35) + 61 88 (92 29 28 19 7 8 48 38 40 114) + 61 156 (92 29 28 19 7 6 10 16 0 3 69 64 65 72 168) + 61 83 (92 29 27 30 32 33 110) + 61 177 (92 29 28 19 20 79 78 80 82 91 185) + 61 150 (92 29 28 19 7 6 10 16 0 1 15 76) + 61 85 (92 29 28 19 7 8 48 38 40) + 61 111 (92 29 28 19 7 6 10 16 17 54 56 58 62 132) + 61 169 (92 29 28 19 20 79 78 80 82 87 88 90 179) + 107 125 (129 43 42 8 6 10 16 17 54 56 59) + 107 95 (129 43 42 48 38 41) + 107 109 (129 131) + 107 175 (129 43 42 8 9 79 78 80 82 91) + 107 157 (129 43 42 8 6 10 16 0 3 69 64 65 72 169) + 107 81 (129 43 42 8 7 19 28 27 30 32 33 108) + 107 62 (129 43 42 8 7 19 28 29 93) + 107 165 (129 43 42 8 9 79 78 80 82 87 88 90) + 107 168 (129 43 42 8 9 79 78 80 82 87 88 90 178) + 107 112 (129 43 42 8 6 10 16 17 54 56 58 62 133) + 107 69 (129 43 42 8 7 19 28 27 30 34 99) + 107 145 (129 43 42 8 6 10 16 0 3 70) + 107 178 (129 43 42 8 9 79 78 80 82 91 186) + 107 124 (129 43 42 8 6 10 16 17 54 57 143) + 107 131 (129 43 42 8 6 10 16 17 52 53 148) + 107 121 (129 43 42 8 6 10 16 17 54 57 140) + 107 98 (129 43 42 48 38 41 122) + 107 170 (129 43 42 8 9 79 78 81) + 107 63 (129 43 42 8 7 19 28 29 94) + 107 162 (129 43 42 8 9 79 78 80 82 87 88 89 173) + 107 61 (129 43 42 8 7 19 28 29 92) + 107 87 (129 43 42 48 38 40 113) + 107 77 (129 43 42 8 7 19 28 27 31 105) + 107 70 (129 43 42 8 7 19 28 27 30 35) + 107 88 (129 43 42 48 38 40 114) + 107 156 (129 43 42 8 6 10 16 0 3 69 64 65 72 168) + 107 83 (129 43 42 8 7 19 28 27 30 32 33 110) + 107 177 (129 43 42 8 9 79 78 80 82 91 185) + 107 150 (129 43 42 8 6 10 16 0 1 15 76) + 107 85 (129 43 42 48 38 40) + 107 111 (129 43 42 8 6 10 16 17 54 56 58 62 132) + 107 169 (129 43 42 8 9 79 78 80 82 87 88 90 179) + 87 125 (113 40 38 48 8 6 10 16 17 54 56 59) + 87 95 (113 40 41) + 87 109 (113 40 38 48 42 43 131) + 87 175 (113 40 38 48 8 9 79 78 80 82 91) + 87 157 (113 40 38 48 8 6 10 16 0 3 69 64 65 72 169) + 87 81 (113 40 38 48 8 7 19 28 27 30 32 33 108) + 87 62 (113 40 38 48 8 7 19 28 29 93) + 87 165 (113 40 38 48 8 9 79 78 80 82 87 88 90) + 87 168 (113 40 38 48 8 9 79 78 80 82 87 88 90 178) + 87 112 (113 40 38 48 8 6 10 16 17 54 56 58 62 133) + 87 69 (113 40 38 48 8 7 19 28 27 30 34 99) + 87 145 (113 40 38 48 8 6 10 16 0 3 70) + 87 178 (113 40 38 48 8 9 79 78 80 82 91 186) + 87 124 (113 40 38 48 8 6 10 16 17 54 57 143) + 87 131 (113 40 38 48 8 6 10 16 17 52 53 148) + 87 121 (113 40 38 48 8 6 10 16 17 54 57 140) + 87 98 (113 40 41 122) + 87 170 (113 40 38 48 8 9 79 78 81) + 87 63 (113 40 38 48 8 7 19 28 29 94) + 87 162 (113 40 38 48 8 9 79 78 80 82 87 88 89 173) + 87 61 (113 40 38 48 8 7 19 28 29 92) + 87 107 (113 40 38 48 42 43 129) + 87 77 (113 40 38 48 8 7 19 28 27 31 105) + 87 70 (113 40 38 48 8 7 19 28 27 30 35) + 87 88 (113 114) + 87 156 (113 40 38 48 8 6 10 16 0 3 69 64 65 72 168) + 87 83 (113 40 38 48 8 7 19 28 27 30 32 33 110) + 87 177 (113 40 38 48 8 9 79 78 80 82 91 185) + 87 150 (113 40 38 48 8 6 10 16 0 1 15 76) + 87 85 (113) + 87 111 (113 40 38 48 8 6 10 16 17 54 56 58 62 132) + 87 169 (113 40 38 48 8 9 79 78 80 82 87 88 90 179) + 77 125 (105 31 27 28 19 7 6 10 16 17 54 56 59) + 77 95 (105 31 27 28 19 7 8 48 38 41) + 77 109 (105 31 27 28 19 7 8 42 43 131) + 77 175 (105 31 27 28 19 20 79 78 80 82 91) + 77 157 (105 31 27 28 19 7 6 10 16 0 3 69 64 65 72 169) + 77 81 (105 31 30 32 33 108) + 77 62 (105 31 27 29 93) + 77 165 (105 31 27 28 19 20 79 78 80 82 87 88 90) + 77 168 (105 31 27 28 19 20 79 78 80 82 87 88 90 178) + 77 112 (105 31 27 28 19 7 6 10 16 17 54 56 58 62 133) + 77 69 (105 31 30 34 99) + 77 145 (105 31 27 28 19 7 6 10 16 0 3 70) + 77 178 (105 31 27 28 19 20 79 78 80 82 91 186) + 77 124 (105 31 27 28 19 7 6 10 16 17 54 57 143) + 77 131 (105 31 27 28 19 7 6 10 16 17 52 53 148) + 77 121 (105 31 27 28 19 7 6 10 16 17 54 57 140) + 77 98 (105 31 27 28 19 7 8 48 38 41 122) + 77 170 (105 31 27 28 19 20 79 78 81) + 77 63 (105 31 27 29 94) + 77 162 (105 31 27 28 19 20 79 78 80 82 87 88 89 173) + 77 61 (105 31 27 29 92) + 77 107 (105 31 27 28 19 7 8 42 43 129) + 77 87 (105 31 27 28 19 7 8 48 38 40 113) + 77 70 (105 31 30 35) + 77 88 (105 31 27 28 19 7 8 48 38 40 114) + 77 156 (105 31 27 28 19 7 6 10 16 0 3 69 64 65 72 168) + 77 83 (105 31 30 32 33 110) + 77 177 (105 31 27 28 19 20 79 78 80 82 91 185) + 77 150 (105 31 27 28 19 7 6 10 16 0 1 15 76) + 77 85 (105 31 27 28 19 7 8 48 38 40) + 77 111 (105 31 27 28 19 7 6 10 16 17 54 56 58 62 132) + 77 169 (105 31 27 28 19 20 79 78 80 82 87 88 90 179) + 70 125 (35 30 27 28 19 7 6 10 16 17 54 56 59) + 70 95 (35 30 27 28 19 7 8 48 38 41) + 70 109 (35 30 27 28 19 7 8 42 43 131) + 70 175 (35 30 27 28 19 20 79 78 80 82 91) + 70 157 (35 30 27 28 19 7 6 10 16 0 3 69 64 65 72 169) + 70 81 (35 32 33 108) + 70 62 (35 30 27 29 93) + 70 165 (35 30 27 28 19 20 79 78 80 82 87 88 90) + 70 168 (35 30 27 28 19 20 79 78 80 82 87 88 90 178) + 70 112 (35 30 27 28 19 7 6 10 16 17 54 56 58 62 133) + 70 69 (35 34 99) + 70 145 (35 30 27 28 19 7 6 10 16 0 3 70) + 70 178 (35 30 27 28 19 20 79 78 80 82 91 186) + 70 124 (35 30 27 28 19 7 6 10 16 17 54 57 143) + 70 131 (35 30 27 28 19 7 6 10 16 17 52 53 148) + 70 121 (35 30 27 28 19 7 6 10 16 17 54 57 140) + 70 98 (35 30 27 28 19 7 8 48 38 41 122) + 70 170 (35 30 27 28 19 20 79 78 81) + 70 63 (35 30 27 29 94) + 70 162 (35 30 27 28 19 20 79 78 80 82 87 88 89 173) + 70 61 (35 30 27 29 92) + 70 107 (35 30 27 28 19 7 8 42 43 129) + 70 87 (35 30 27 28 19 7 8 48 38 40 113) + 70 77 (35 30 31 105) + 70 88 (35 30 27 28 19 7 8 48 38 40 114) + 70 156 (35 30 27 28 19 7 6 10 16 0 3 69 64 65 72 168) + 70 83 (35 32 33 110) + 70 177 (35 30 27 28 19 20 79 78 80 82 91 185) + 70 150 (35 30 27 28 19 7 6 10 16 0 1 15 76) + 70 85 (35 30 27 28 19 7 8 48 38 40) + 70 111 (35 30 27 28 19 7 6 10 16 17 54 56 58 62 132) + 70 169 (35 30 27 28 19 20 79 78 80 82 87 88 90 179) + 88 125 (114 40 38 48 8 6 10 16 17 54 56 59) + 88 95 (114 40 41) + 88 109 (114 40 38 48 42 43 131) + 88 175 (114 40 38 48 8 9 79 78 80 82 91) + 88 157 (114 40 38 48 8 6 10 16 0 3 69 64 65 72 169) + 88 81 (114 40 38 48 8 7 19 28 27 30 32 33 108) + 88 62 (114 40 38 48 8 7 19 28 29 93) + 88 165 (114 40 38 48 8 9 79 78 80 82 87 88 90) + 88 168 (114 40 38 48 8 9 79 78 80 82 87 88 90 178) + 88 112 (114 40 38 48 8 6 10 16 17 54 56 58 62 133) + 88 69 (114 40 38 48 8 7 19 28 27 30 34 99) + 88 145 (114 40 38 48 8 6 10 16 0 3 70) + 88 178 (114 40 38 48 8 9 79 78 80 82 91 186) + 88 124 (114 40 38 48 8 6 10 16 17 54 57 143) + 88 131 (114 40 38 48 8 6 10 16 17 52 53 148) + 88 121 (114 40 38 48 8 6 10 16 17 54 57 140) + 88 98 (114 40 41 122) + 88 170 (114 40 38 48 8 9 79 78 81) + 88 63 (114 40 38 48 8 7 19 28 29 94) + 88 162 (114 40 38 48 8 9 79 78 80 82 87 88 89 173) + 88 61 (114 40 38 48 8 7 19 28 29 92) + 88 107 (114 40 38 48 42 43 129) + 88 87 (114 113) + 88 77 (114 40 38 48 8 7 19 28 27 31 105) + 88 70 (114 40 38 48 8 7 19 28 27 30 35) + 88 156 (114 40 38 48 8 6 10 16 0 3 69 64 65 72 168) + 88 83 (114 40 38 48 8 7 19 28 27 30 32 33 110) + 88 177 (114 40 38 48 8 9 79 78 80 82 91 185) + 88 150 (114 40 38 48 8 6 10 16 0 1 15 76) + 88 85 (114) + 88 111 (114 40 38 48 8 6 10 16 17 54 56 58 62 132) + 88 169 (114 40 38 48 8 9 79 78 80 82 87 88 90 179) + 156 125 (168 72 65 64 69 3 2 54 56 59) + 156 95 (168 72 65 64 69 3 0 16 10 6 8 48 38 41) + 156 109 (168 72 65 64 69 3 0 16 10 6 8 42 43 131) + 156 175 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91) + 156 157 (168 169) + 156 81 (168 72 65 64 69 3 0 16 10 6 7 19 28 27 30 32 33 108) + 156 62 (168 72 65 64 69 3 0 16 10 6 7 19 28 29 93) + 156 165 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90) + 156 168 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90 178) + 156 112 (168 72 65 64 69 3 2 54 56 58 62 133) + 156 69 (168 72 65 64 69 3 0 16 10 6 7 19 28 27 30 34 99) + 156 145 (168 72 65 64 69 70) + 156 178 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91 186) + 156 124 (168 72 65 64 69 3 2 54 57 143) + 156 131 (168 72 65 64 69 3 2 52 53 148) + 156 121 (168 72 65 64 69 3 2 54 57 140) + 156 98 (168 72 65 64 69 3 0 16 10 6 8 48 38 41 122) + 156 170 (168 72 65 64 69 3 0 16 10 6 9 79 78 81) + 156 63 (168 72 65 64 69 3 0 16 10 6 7 19 28 29 94) + 156 162 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 89 173) + 156 61 (168 72 65 64 69 3 0 16 10 6 7 19 28 29 92) + 156 107 (168 72 65 64 69 3 0 16 10 6 8 42 43 129) + 156 87 (168 72 65 64 69 3 0 16 10 6 8 48 38 40 113) + 156 77 (168 72 65 64 69 3 0 16 10 6 7 19 28 27 31 105) + 156 70 (168 72 65 64 69 3 0 16 10 6 7 19 28 27 30 35) + 156 88 (168 72 65 64 69 3 0 16 10 6 8 48 38 40 114) + 156 83 (168 72 65 64 69 3 0 16 10 6 7 19 28 27 30 32 33 110) + 156 177 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 91 185) + 156 150 (168 72 65 64 73 74 76) + 156 85 (168 72 65 64 69 3 0 16 10 6 8 48 38 40) + 156 111 (168 72 65 64 69 3 2 54 56 58 62 132) + 156 169 (168 72 65 64 69 3 0 16 10 6 9 79 78 80 82 87 88 90 179) + 83 125 (110 33 32 30 27 28 19 7 6 10 16 17 54 56 59) + 83 95 (110 33 32 30 27 28 19 7 8 48 38 41) + 83 109 (110 33 32 30 27 28 19 7 8 42 43 131) + 83 175 (110 33 32 30 27 28 19 20 79 78 80 82 91) + 83 157 (110 33 32 30 27 28 19 7 6 10 16 0 3 69 64 65 72 169) + 83 81 (110 108) + 83 62 (110 33 32 30 27 29 93) + 83 165 (110 33 32 30 27 28 19 20 79 78 80 82 87 88 90) + 83 168 (110 33 32 30 27 28 19 20 79 78 80 82 87 88 90 178) + 83 112 (110 33 32 30 27 28 19 7 6 10 16 17 54 56 58 62 133) + 83 69 (110 33 32 34 99) + 83 145 (110 33 32 30 27 28 19 7 6 10 16 0 3 70) + 83 178 (110 33 32 30 27 28 19 20 79 78 80 82 91 186) + 83 124 (110 33 32 30 27 28 19 7 6 10 16 17 54 57 143) + 83 131 (110 33 32 30 27 28 19 7 6 10 16 17 52 53 148) + 83 121 (110 33 32 30 27 28 19 7 6 10 16 17 54 57 140) + 83 98 (110 33 32 30 27 28 19 7 8 48 38 41 122) + 83 170 (110 33 32 30 27 28 19 20 79 78 81) + 83 63 (110 33 32 30 27 29 94) + 83 162 (110 33 32 30 27 28 19 20 79 78 80 82 87 88 89 173) + 83 61 (110 33 32 30 27 29 92) + 83 107 (110 33 32 30 27 28 19 7 8 42 43 129) + 83 87 (110 33 32 30 27 28 19 7 8 48 38 40 113) + 83 77 (110 33 32 30 31 105) + 83 70 (110 33 32 35) + 83 88 (110 33 32 30 27 28 19 7 8 48 38 40 114) + 83 156 (110 33 32 30 27 28 19 7 6 10 16 0 3 69 64 65 72 168) + 83 177 (110 33 32 30 27 28 19 20 79 78 80 82 91 185) + 83 150 (110 33 32 30 27 28 19 7 6 10 16 0 1 15 76) + 83 85 (110 33 32 30 27 28 19 7 8 48 38 40) + 83 111 (110 33 32 30 27 28 19 7 6 10 16 17 54 56 58 62 132) + 83 169 (110 33 32 30 27 28 19 20 79 78 80 82 87 88 90 179) + 177 125 (185 91 82 80 78 79 9 6 10 16 17 54 56 59) + 177 95 (185 91 82 80 78 79 9 8 48 38 41) + 177 109 (185 91 82 80 78 79 9 8 42 43 131) + 177 175 (185) + 177 157 (185 91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 177 81 (185 91 82 80 78 79 20 19 28 27 30 32 33 108) + 177 62 (185 91 82 80 78 79 20 19 28 29 93) + 177 165 (185 91 87 88 90) + 177 168 (185 91 87 88 90 178) + 177 112 (185 91 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 177 69 (185 91 82 80 78 79 20 19 28 27 30 34 99) + 177 145 (185 91 82 80 78 79 9 6 10 16 0 3 70) + 177 178 (185 186) + 177 124 (185 91 82 80 78 79 9 6 10 16 17 54 57 143) + 177 131 (185 91 82 80 78 79 9 6 10 16 17 52 53 148) + 177 121 (185 91 82 80 78 79 9 6 10 16 17 54 57 140) + 177 98 (185 91 82 80 78 79 9 8 48 38 41 122) + 177 170 (185 91 82 80 81) + 177 63 (185 91 82 80 78 79 20 19 28 29 94) + 177 162 (185 91 87 88 89 173) + 177 61 (185 91 82 80 78 79 20 19 28 29 92) + 177 107 (185 91 82 80 78 79 9 8 42 43 129) + 177 87 (185 91 82 80 78 79 9 8 48 38 40 113) + 177 77 (185 91 82 80 78 79 20 19 28 27 31 105) + 177 70 (185 91 82 80 78 79 20 19 28 27 30 35) + 177 88 (185 91 82 80 78 79 9 8 48 38 40 114) + 177 156 (185 91 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 177 83 (185 91 82 80 78 79 20 19 28 27 30 32 33 110) + 177 150 (185 91 82 80 78 79 9 6 10 16 0 1 15 76) + 177 85 (185 91 82 80 78 79 9 8 48 38 40) + 177 111 (185 91 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + 177 169 (185 91 87 88 90 179) + 150 125 (76 15 1 2 54 56 59) + 150 95 (76 15 1 0 16 10 6 8 48 38 41) + 150 109 (76 15 1 0 16 10 6 8 42 43 131) + 150 175 (76 15 1 0 16 10 6 9 79 78 80 82 91) + 150 157 (76 74 73 64 65 72 169) + 150 81 (76 15 1 0 16 10 6 7 19 28 27 30 32 33 108) + 150 62 (76 15 1 0 16 10 6 7 19 28 29 93) + 150 165 (76 15 1 0 16 10 6 9 79 78 80 82 87 88 90) + 150 168 (76 15 1 0 16 10 6 9 79 78 80 82 87 88 90 178) + 150 112 (76 15 1 2 54 56 58 62 133) + 150 69 (76 15 1 0 16 10 6 7 19 28 27 30 34 99) + 150 145 (76 74 73 69 70) + 150 178 (76 15 1 0 16 10 6 9 79 78 80 82 91 186) + 150 124 (76 15 1 2 54 57 143) + 150 131 (76 15 1 2 52 53 148) + 150 121 (76 15 1 2 54 57 140) + 150 98 (76 15 1 0 16 10 6 8 48 38 41 122) + 150 170 (76 15 1 0 16 10 6 9 79 78 81) + 150 63 (76 15 1 0 16 10 6 7 19 28 29 94) + 150 162 (76 15 1 0 16 10 6 9 79 78 80 82 87 88 89 173) + 150 61 (76 15 1 0 16 10 6 7 19 28 29 92) + 150 107 (76 15 1 0 16 10 6 8 42 43 129) + 150 87 (76 15 1 0 16 10 6 8 48 38 40 113) + 150 77 (76 15 1 0 16 10 6 7 19 28 27 31 105) + 150 70 (76 15 1 0 16 10 6 7 19 28 27 30 35) + 150 88 (76 15 1 0 16 10 6 8 48 38 40 114) + 150 156 (76 74 73 64 65 72 168) + 150 83 (76 15 1 0 16 10 6 7 19 28 27 30 32 33 110) + 150 177 (76 15 1 0 16 10 6 9 79 78 80 82 91 185) + 150 85 (76 15 1 0 16 10 6 8 48 38 40) + 150 111 (76 15 1 2 54 56 58 62 132) + 150 169 (76 15 1 0 16 10 6 9 79 78 80 82 87 88 90 179) + 85 125 (40 38 48 8 6 10 16 17 54 56 59) + 85 95 (40 41) + 85 109 (40 38 48 42 43 131) + 85 175 (40 38 48 8 9 79 78 80 82 91) + 85 157 (40 38 48 8 6 10 16 0 3 69 64 65 72 169) + 85 81 (40 38 48 8 7 19 28 27 30 32 33 108) + 85 62 (40 38 48 8 7 19 28 29 93) + 85 165 (40 38 48 8 9 79 78 80 82 87 88 90) + 85 168 (40 38 48 8 9 79 78 80 82 87 88 90 178) + 85 112 (40 38 48 8 6 10 16 17 54 56 58 62 133) + 85 69 (40 38 48 8 7 19 28 27 30 34 99) + 85 145 (40 38 48 8 6 10 16 0 3 70) + 85 178 (40 38 48 8 9 79 78 80 82 91 186) + 85 124 (40 38 48 8 6 10 16 17 54 57 143) + 85 131 (40 38 48 8 6 10 16 17 52 53 148) + 85 121 (40 38 48 8 6 10 16 17 54 57 140) + 85 98 (40 41 122) + 85 170 (40 38 48 8 9 79 78 81) + 85 63 (40 38 48 8 7 19 28 29 94) + 85 162 (40 38 48 8 9 79 78 80 82 87 88 89 173) + 85 61 (40 38 48 8 7 19 28 29 92) + 85 107 (40 38 48 42 43 129) + 85 87 (113) + 85 77 (40 38 48 8 7 19 28 27 31 105) + 85 70 (40 38 48 8 7 19 28 27 30 35) + 85 88 (114) + 85 156 (40 38 48 8 6 10 16 0 3 69 64 65 72 168) + 85 83 (40 38 48 8 7 19 28 27 30 32 33 110) + 85 177 (40 38 48 8 9 79 78 80 82 91 185) + 85 150 (40 38 48 8 6 10 16 0 1 15 76) + 85 111 (40 38 48 8 6 10 16 17 54 56 58 62 132) + 85 169 (40 38 48 8 9 79 78 80 82 87 88 90 179) + 111 125 (132 62 58 59) + 111 95 (132 62 58 56 54 17 16 10 6 8 48 38 41) + 111 109 (132 62 58 56 54 17 16 10 6 8 42 43 131) + 111 175 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 91) + 111 157 (132 62 58 56 54 2 3 69 64 65 72 169) + 111 81 (132 62 58 56 54 17 16 10 6 7 19 28 27 30 32 33 108) + 111 62 (132 62 58 56 54 17 16 10 6 7 19 28 29 93) + 111 165 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90) + 111 168 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90 178) + 111 112 (132 133) + 111 69 (132 62 58 56 54 17 16 10 6 7 19 28 27 30 34 99) + 111 145 (132 62 58 56 54 2 3 70) + 111 178 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 91 186) + 111 124 (132 62 58 56 57 143) + 111 131 (132 62 58 56 54 52 53 148) + 111 121 (132 62 58 56 57 140) + 111 98 (132 62 58 56 54 17 16 10 6 8 48 38 41 122) + 111 170 (132 62 58 56 54 17 16 10 6 9 79 78 81) + 111 63 (132 62 58 56 54 17 16 10 6 7 19 28 29 94) + 111 162 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 89 173) + 111 61 (132 62 58 56 54 17 16 10 6 7 19 28 29 92) + 111 107 (132 62 58 56 54 17 16 10 6 8 42 43 129) + 111 87 (132 62 58 56 54 17 16 10 6 8 48 38 40 113) + 111 77 (132 62 58 56 54 17 16 10 6 7 19 28 27 31 105) + 111 70 (132 62 58 56 54 17 16 10 6 7 19 28 27 30 35) + 111 88 (132 62 58 56 54 17 16 10 6 8 48 38 40 114) + 111 156 (132 62 58 56 54 2 3 69 64 65 72 168) + 111 83 (132 62 58 56 54 17 16 10 6 7 19 28 27 30 32 33 110) + 111 177 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 91 185) + 111 150 (132 62 58 56 54 2 1 15 76) + 111 85 (132 62 58 56 54 17 16 10 6 8 48 38 40) + 111 169 (132 62 58 56 54 17 16 10 6 9 79 78 80 82 87 88 90 179) + 169 125 (179 90 88 87 82 80 78 79 9 6 10 16 17 54 56 59) + 169 95 (179 90 88 87 82 80 78 79 9 8 48 38 41) + 169 109 (179 90 88 87 82 80 78 79 9 8 42 43 131) + 169 175 (179 90 88 87 91) + 169 157 (179 90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 169) + 169 81 (179 90 88 87 82 80 78 79 20 19 28 27 30 32 33 108) + 169 62 (179 90 88 87 82 80 78 79 20 19 28 29 93) + 169 165 (179) + 169 168 (179 178) + 169 112 (179 90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 133) + 169 69 (179 90 88 87 82 80 78 79 20 19 28 27 30 34 99) + 169 145 (179 90 88 87 82 80 78 79 9 6 10 16 0 3 70) + 169 178 (179 90 88 87 91 186) + 169 124 (179 90 88 87 82 80 78 79 9 6 10 16 17 54 57 143) + 169 131 (179 90 88 87 82 80 78 79 9 6 10 16 17 52 53 148) + 169 121 (179 90 88 87 82 80 78 79 9 6 10 16 17 54 57 140) + 169 98 (179 90 88 87 82 80 78 79 9 8 48 38 41 122) + 169 170 (179 90 88 87 82 80 81) + 169 63 (179 90 88 87 82 80 78 79 20 19 28 29 94) + 169 162 (179 90 89 173) + 169 61 (179 90 88 87 82 80 78 79 20 19 28 29 92) + 169 107 (179 90 88 87 82 80 78 79 9 8 42 43 129) + 169 87 (179 90 88 87 82 80 78 79 9 8 48 38 40 113) + 169 77 (179 90 88 87 82 80 78 79 20 19 28 27 31 105) + 169 70 (179 90 88 87 82 80 78 79 20 19 28 27 30 35) + 169 88 (179 90 88 87 82 80 78 79 9 8 48 38 40 114) + 169 156 (179 90 88 87 82 80 78 79 9 6 10 16 0 3 69 64 65 72 168) + 169 83 (179 90 88 87 82 80 78 79 20 19 28 27 30 32 33 110) + 169 177 (179 90 88 87 91 185) + 169 150 (179 90 88 87 82 80 78 79 9 6 10 16 0 1 15 76) + 169 85 (179 90 88 87 82 80 78 79 9 8 48 38 40) + 169 111 (179 90 88 87 82 80 78 79 9 6 10 16 17 54 56 58 62 132) + diff --git a/testsuite/msg/msg_test.c b/testsuite/msg/msg_test.c new file mode 100644 index 0000000000..6359c7535f --- /dev/null +++ b/testsuite/msg/msg_test.c @@ -0,0 +1,147 @@ +/* $Id$ */ + +/* Copyright (c) 2002,2004,2004 Arnaud Legrand. All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +/** \file msg_test.c + * \brief Test program for msg. +*/ + +#include "msg/msg.h" + +/** This flag enable the debugging messages from PRINT_DEBUG_MESSAGE() */ +#undef VERBOSE +#include "messages.h" + +int unix_emitter(int argc, char *argv[]); +int unix_receiver(int argc, char *argv[]); +void test_all(const char *platform_file, const char *application_file, double sharing); + + +/** The names of the channels we will use in this simulation. There is + only one channel identified by the name PORT_22. */ +typedef enum { + PORT_22 = 0, + MAX_CHANNEL +} channel_t; + +/** The number of task each slave will process */ +#define NB_TASK 3 +int unix_emitter(int argc, char *argv[]) +{ + int slaves_count = 0; + m_host_t *slaves = NULL; + int todo_count = 0; + m_task_t *todo = NULL; + + int i; + + { /* Process organisation */ + slaves_count = argc - 1; + slaves = calloc(slaves_count, sizeof(m_host_t)); + + for (i = 1; i < argc; i++) { + slaves[i-1] = MSG_get_host_by_name(argv[i]); + if(slaves[i-1]==NULL) { + PRINT_MESSAGE("Unknown host %s. Stopping Now! \n", argv[i]); + abort(); + } + } + } + + { /* Task creation */ + char sprintf_buffer[64]; + int slave = slaves_count; + + todo = calloc(NB_TASK * slave, sizeof(m_task_t)); + todo_count = NB_TASK * slave; + + for (i = 0; i < NB_TASK * slave; i++) { + sprintf(sprintf_buffer, "Task_%d", i); + todo[i] = MSG_task_create(sprintf_buffer, 5000, 10, NULL); + } + } + + PRINT_MESSAGE("Got %d slave(s) :\n", slaves_count); + for (i = 0; i < slaves_count; i++) + PRINT_MESSAGE("\t %s\n", slaves[i]->name); + + PRINT_MESSAGE("Got %d task to process :\n", todo_count); + + for (i = 0; i < todo_count; i++) + PRINT_MESSAGE("\t\"%s\"\n", todo[i]->name); + + for (i = 0; i < todo_count; i++) { + PRINT_MESSAGE("Sending \"%s\" to \"%s\"\n", + todo[i]->name, + slaves[i % slaves_count]->name); + MSG_task_put(todo[i], slaves[i % slaves_count], + PORT_22); + PRINT_MESSAGE("Send completed\n"); + } + + free(slaves); + free(todo); + return 0; +} + +int unix_receiver(int argc, char *argv[]) +{ + int todo_count = 0; + m_task_t *todo = (m_task_t *) calloc(NB_TASK, sizeof(m_task_t)); + int i; + + + for (i = 0; i < NB_TASK;) { + int a; + PRINT_MESSAGE("Awaiting Task %d \n", i); + a = MSG_task_get(&(todo[i]), PORT_22); + if (a == MSG_OK) { + todo_count++; + PRINT_MESSAGE("Received \"%s\" \n", todo[i]->name); + PRINT_MESSAGE("Processing \"%s\" \n", todo[i]->name); + MSG_task_execute(todo[i]); + PRINT_MESSAGE("\"%s\" done \n", todo[i]->name); + MSG_task_destroy(todo[i]); + i++; + } else { + PRINT_MESSAGE("Hey ?! What's up ? \n"); + DIE("Unexpected behaviour"); + } + } + free(todo); + return 0; +} + + +void test_all(const char *platform_file,const char *application_file, double sharing) +{ + { /* Simulation setting */ + MSG_global_init(); + MSG_set_verbosity(MSG_SILENT); + MSG_set_channel_number(MAX_CHANNEL); + if(sharing<=0) { + MSG_set_sharing_policy(MSG_TCP,.1); + } else { + MSG_set_sharing_policy(MSG_STORE_AND_FORWARD,sharing); + } + MSG_create_environment(platform_file); + } + { /* Application deployment */ + MSG_function_register("master", unix_emitter); + MSG_function_register("slave", unix_receiver); + MSG_launch_application(application_file); + } + MSG_main(); +/* printf("Simulation time %g\n",MSG_getClock()); */ + MSG_clean(); +} + +int main(int argc, char *argv[]) +{ + test_all("msg_platform.txt","msg_deployment.txt",-.1); + test_all("msg_platform.txt","msg_deployment.txt",.1); + return (0); +}