8 changed files with 1008 additions and 0 deletions
			
			
		- 
					19branchless_min.py
- 
					31burglars.py
- 
					123rpssl.py
- 
					146seating-arrangement.py
- 
					47square.py
- 
					3square0.txt
- 
					628wedding-25s.txt
- 
					11wedding0.txt
| @ -0,0 +1,19 @@ | |||
| # coding: utf-8 | |||
| import os, sys | |||
| from z3 import * | |||
| 
 | |||
| # Create an instance of a z3 solver | |||
| solver = Solver() | |||
| # Declare z3 variables for the needed BitVectors | |||
| 
 | |||
| min_ite = BitVec(...) | |||
| 
 | |||
| solver.add(min_ite == If(x < y, x, y)) | |||
| 
 | |||
| 
 | |||
| 
 | |||
| # Check and print the result. | |||
| result = solver.check() | |||
| print(result) | |||
| if result == sat: | |||
|     print(solver.model()) | |||
| @ -0,0 +1,31 @@ | |||
| # coding: utf-8 | |||
| from z3 import * | |||
| 
 | |||
| ################################# Burglars ################################## | |||
| # create the solver | |||
| solver = Solver() | |||
| 
 | |||
| ############################################################################# | |||
| # (1) Ed: "Fred did it, and Ted is innocent". | |||
| # (2) Fred: "If Ed is guilty , then so is Ted". | |||
| # (3) Ted: "Im innocent, but at least one of the others is guilty". | |||
| ############################################################################# | |||
| 
 | |||
| # TODO Create boolean variables for each of the culprits | |||
| # TODO Add constraints to the solver representing the statements from above | |||
| 
 | |||
| # Hint: The statement of a culprit should be true if and only if he is not guilty! | |||
| 
 | |||
| 
 | |||
| 
 | |||
| res = solver.check() | |||
| if res != sat: | |||
|     print("unsat") | |||
|     sys.exit(1) | |||
| 
 | |||
| print(solver) | |||
| m = solver.model() | |||
| for d in m.decls(): | |||
|     print("%s -> %s" % (d, m[d])) | |||
| 
 | |||
| print("\n" + str(m)) | |||
| @ -0,0 +1,123 @@ | |||
| # coding: utf-8 | |||
| import os, sys, subprocess | |||
| import time | |||
| from z3 import * | |||
| 
 | |||
| CHOICES = ["Rock", "Paper", "Scissors", "Spock", "Lizard"] | |||
| 
 | |||
| def next_random_number(s_i): | |||
|     return ((11 * s_i) + 12345) & 0x7fff | |||
| 
 | |||
| class RPSSLComputer: | |||
|     def __init__(self, s0): | |||
|         self.previous_random_number = s0 | |||
| 
 | |||
|     def compute_choice(self): | |||
|         random_number = next_random_number(self.previous_random_number) | |||
|         self.previous_random_number = random_number | |||
|         return random_number % 5, CHOICES[random_number % 5] | |||
| 
 | |||
| 
 | |||
| # cf. https://bigbangtheory.fandom.com/wiki/Rock,_Paper,_Scissors,_Lizard,_Spock | |||
| def winning_mapping(i): | |||
|     if i == 0: return 1#"Paper" | |||
|     if i == 1: return 2#"Scissors" | |||
|     if i == 2: return 0#"Rock" | |||
|     if i == 3: return 4#"Lizard" | |||
|     if i == 4: return 0#"Rock" | |||
|     return "Did you forget to compute the remainder modulo 5?" | |||
| 
 | |||
| def compute_winner(computer, player): | |||
|     if computer == player: | |||
|         return "\tTie.", False | |||
|     is_player_bigger = True if player > computer else False | |||
|     absolute_difference = abs(computer - player) | |||
|     if absolute_difference % 2 == 1: | |||
|         if is_player_bigger: | |||
|             return "\tPlayer wins.", True | |||
|         else: | |||
|             return "\tComputer wins.", False | |||
|     else: | |||
|         if is_player_bigger: | |||
|             return "\tComputer wins.", False | |||
|         else: | |||
|             return "\tPlayer wins.", True | |||
| 
 | |||
| solver = Solver() | |||
| states = list() | |||
| 
 | |||
| # We are adding the first state s_0 to the list of states | |||
| states.append(BitVec("state0", 16)) | |||
| 
 | |||
| s0 = int(sys.argv[1]) | |||
| computer = RPSSLComputer(s0) | |||
| 
 | |||
| preprocess_count = 5 | |||
| 
 | |||
| def add_constraint(solver, index, computers_choice): | |||
|     # TODO create a BitVec and append it to the list of states | |||
|     # You might want to call it state{index} | |||
| 
 | |||
|     # TODO Enforce that the newly added BitVec-variable must evaluate to the result of the LCG computation using the previous result | |||
| 
 | |||
|     # TODO Enforce that the unsigned remainder of the newly added BitVec-varialbe and 5 evaluates to the choice of the computer | |||
| 
 | |||
|     pass | |||
| 
 | |||
| def store_backtracking_point(solver): | |||
|     solver.push() | |||
| 
 | |||
| def restore_backtracking_point(solver): | |||
|     solver.pop() | |||
| 
 | |||
| def add_next_state_constraint(solver): | |||
|     s_i_plus_1 = BitVec("s_i_plus_1", 16) | |||
|     # TODO Enforce that the next state value is computed via the same computation as above | |||
| 
 | |||
|     return s_i_plus_1 | |||
| 
 | |||
| def get_players_choice(solver, s_i_plus_1): | |||
|     # TODO Get the value of next_state from the model and return it modulo 5 | |||
|     # Hint: winning_mapping(...) returns a good answer for the computer's choice | |||
|     # Hint: use solver.model() like a python dict. | |||
|     # Hint: use `.as_long()` to convert a z3 variable to a python integer value | |||
|     return 0 | |||
| 
 | |||
| 
 | |||
| # Main loop: | |||
| 
 | |||
| # We read preprocess_count many choices from the computer before we start to ask z3 for a solution | |||
| # Note that for these preprocessing rounds we do not need to make a good guess and compute the winner | |||
| # We are only interested in what the computer picks for the first few rounds | |||
| for index in range(1,preprocess_count): | |||
|     computer_choice, _ = computer.compute_choice() | |||
|     player_choice = 0 # We always choose Rock since we cannot make good guesses in the beginning | |||
| 
 | |||
|     add_constraint(solver,index,computer_choice) | |||
|     output, won = compute_winner(computer_choice, player_choice) | |||
|     print(output) | |||
|     if won: print("Congratulations!") | |||
|     else:   print("Try again.") | |||
| 
 | |||
| 
 | |||
| # Now we start by adding a 'special' variable s_i_plus_1 and try to win | |||
| index = preprocess_count | |||
| while True: | |||
|     store_backtracking_point(solver) | |||
|     s_i_plus_1 = add_next_state_constraint(solver) | |||
|     solver.check() | |||
| 
 | |||
|     player_choice = get_players_choice(solver, s_i_plus_1) | |||
|     computer_choice, _ = computer.compute_choice() | |||
|     output, won = compute_winner(computer_choice, player_choice) | |||
| 
 | |||
|     print(output) | |||
|     if won: print("Congratulations!") | |||
|     else:   print("Try again.") | |||
| 
 | |||
|     restore_backtracking_point(solver) | |||
|     add_constraint(solver, index, computer_choice) | |||
|     # input("") | |||
|     index += 1 | |||
|     if index >= 100: | |||
|         break | |||
| @ -0,0 +1,146 @@ | |||
| # coding: utf-8 | |||
| import os, sys | |||
| from z3 import * | |||
| 
 | |||
| from itertools import combinations | |||
| 
 | |||
| pretty_print = True | |||
| 
 | |||
| # get the playground information | |||
| if len(sys.argv) != 2: | |||
|     print("Usage: python3 seating-arrangement.py <wedding-file>") | |||
|     sys.exit(0) | |||
| 
 | |||
| def faulty_line(line, num): | |||
|     print("Faulty input at line " + str(num) + ". Ignoring '" + line + "'") | |||
| 
 | |||
| # data structures prepared for you | |||
| guests = set() | |||
| friends = [] | |||
| foes = [] | |||
| longest_name_len = 0 | |||
| 
 | |||
| def add_to_guest_list(a,b=None): | |||
|     guests.add(a) | |||
|     if b != None: | |||
|         guests.add(b) | |||
| 
 | |||
| def longest_name(a,b=None): | |||
|     global longest_name_len | |||
|     if len(a) > longest_name_len: longest_name_len = len(a) | |||
|     if b != None and len(b) > longest_name_len : longest_name_len = len(b) | |||
| 
 | |||
| solver = Solver() | |||
| 
 | |||
| ################################### Parse Guests and Constraints #################################### | |||
| 
 | |||
| Guest = DeclareSort("Guest") | |||
| 
 | |||
| with open(sys.argv[1]) as f: | |||
|     wedding = f.read() | |||
|     wedding = wedding.strip().split("\n") | |||
|     linenum = 0 | |||
|     for line in wedding: | |||
|         linenum += 1 | |||
|         if line[0] == '#': | |||
|             continue | |||
|         if line.rstrip(): | |||
|             info = line.split(" ") | |||
| 
 | |||
|             if len(info) == 1: | |||
|                 guest = Const(info[0], Guest) | |||
|                 add_to_guest_list() | |||
|                 longest_name(info[0]) | |||
|                 continue | |||
| 
 | |||
|             if len(info) != 3: | |||
|                 faulty_line(line, linenum) | |||
|                 continue | |||
| 
 | |||
|             longest_name(info[0], info[2]) | |||
|             if info[1] == "dislikes": | |||
|                 first_guest = Const(info[0], Guest) | |||
|                 second_guest = Const(info[2], Guest) | |||
|                 add_to_guest_list(first_guest, second_guest) | |||
|                 # TODO add the pair of guests as foes | |||
|             elif info[1] == "likes": | |||
|                 first_guest = Const(info[0], Guest) | |||
|                 second_guest = Const(info[2], Guest) | |||
|                 add_to_guest_list(first_guest, second_guest) | |||
|                 # TODO add pair of guests as friends | |||
|             else: | |||
|                 faulty_line(line, linenum) | |||
|                 continue | |||
| 
 | |||
| ################################### Wedding Guests #################################### | |||
| 
 | |||
| 
 | |||
| def neigbours(a, b): | |||
|     pass | |||
| 
 | |||
| # all guests must be seated at the big table | |||
| # no two guests should sit on the same position (hint: use combinations) | |||
| # friends should be neigbours | |||
| # foes should not be neigbours | |||
| 
 | |||
| # check satisfiability | |||
| res = solver.check() | |||
| if res != sat: | |||
|     print("unsat") | |||
|     sys.exit(1) | |||
| m = solver.model() | |||
| 
 | |||
| ################################################################################ | |||
| 
 | |||
| 
 | |||
| arrangement = ["" for guest in range(len(guests))] | |||
| for guest in guests: | |||
|     arrangement[m.evaluate(position(guest),model_completion=True).as_long()] = guest.decl().name() | |||
| 
 | |||
| def print_table(): | |||
|     side_length = round(len(guests)/4) | |||
|     top    = arrangement[0:side_length] | |||
|     right  = arrangement[side_length:2*side_length] | |||
|     bottom = arrangement[2*side_length:3*side_length] | |||
|     left   = arrangement[3*side_length:] | |||
|     while len(left) < len(right): | |||
|         left.append("") | |||
|     while len(right) < len(left): | |||
|         right.append("") | |||
|     table_line_length = longest_name_len + 1 | |||
| 
 | |||
|     print("\n") | |||
| 
 | |||
|     top_row = "" | |||
|     top_row += (longest_name_len + 1) * " " | |||
|     for top_guest in top: | |||
|         top_row += top_guest + " " | |||
|         table_line_length += len(top_guest) + 1 | |||
|     print(top_row) | |||
|     print((longest_name_len + 1) * " " + table_line_length * "-") | |||
| 
 | |||
|     first_element = True | |||
|     for left_guest, right_guest in zip(reversed(left), right): | |||
|         row = "" | |||
|         if not first_element: | |||
|             row += longest_name_len * " " | |||
|             row += "|" + ">"* (table_line_length) + "|" | |||
|             print(row) | |||
|             row = "" | |||
|         else: | |||
|             first_element = False | |||
|         row += left_guest.rjust(longest_name_len) + "|" + "<"* (table_line_length) + "|" + right_guest | |||
|         print(row) | |||
| 
 | |||
|     print((longest_name_len + 1) * " " + table_line_length * "-") | |||
|     bottom_row = "" | |||
|     bottom_row += (longest_name_len + 1) * " " | |||
|     for bottom_guest in reversed(bottom): | |||
|         bottom_row += bottom_guest + " " | |||
|     print(bottom_row) | |||
|     print("\n") | |||
| 
 | |||
| if(pretty_print): | |||
|     print_table() | |||
| print("Seating plan:") | |||
| print(arrangement) | |||
| @ -0,0 +1,47 @@ | |||
| # coding: utf-8 | |||
| import os, sys | |||
| from z3 import * | |||
| 
 | |||
| # get the playground information | |||
| if len(sys.argv) != 2: | |||
|     print("Usage: python3 square.py <test-file>") | |||
|     sys.exit(0) | |||
| 
 | |||
| with open(sys.argv[1]) as f: | |||
|     playground = f.read() | |||
| rows = playground.strip().split("\n") | |||
| playground = [[None if x == "_" else int(x) for x in r.split()] for r in rows] | |||
| 
 | |||
| # get the playground size | |||
| size_y = len(playground) | |||
| assert(size_y != 0) | |||
| size_x = len(playground[0]) | |||
| assert(size_x != 0) | |||
| assert(size_x == size_y) | |||
| 
 | |||
| #################################### Square #################################### | |||
| 
 | |||
| # create the solver | |||
| solver = Solver() | |||
| 
 | |||
| # hint: when creating Int(...) variables for the cells, use something like the coordinates as part of the variable name | |||
| numbers = [[None for _j in range(size_x)] for _j in range(size_y)] | |||
| 
 | |||
| 
 | |||
| 
 | |||
| # call the solver and check satisfiability | |||
| res = solver.check() | |||
| if res != sat: | |||
|     print("unsat") | |||
|     sys.exit(1) | |||
| 
 | |||
| # print the model | |||
| m = solver.model() | |||
| for i in range(size_y): | |||
|     results = [] | |||
|     for j in range(size_x): | |||
|         num = numbers[i][j] | |||
|         results.append("_" if num is None else m[num].as_long()) | |||
|     print(("%4s" * len(results)) % tuple(results)) | |||
| 
 | |||
| ################################################################################ | |||
| @ -0,0 +1,3 @@ | |||
| _ _ 28 | |||
| _ 35 21 | |||
| _ 7 _ | |||
| @ -0,0 +1,628 @@ | |||
| Amanda dislikes Tamara | |||
| William dislikes Heather | |||
| Christopher dislikes Barbara | |||
| Dorothy dislikes Evan | |||
| Elizabeth dislikes Thomas | |||
| Thomas dislikes Barbara | |||
| Douglas dislikes Jason | |||
| Destiny dislikes Barbara | |||
| Mallory dislikes Tamara | |||
| Alexandra dislikes Kristen | |||
| Pedro dislikes Adam | |||
| Tyler dislikes Heather | |||
| Barbara dislikes Dorothy | |||
| Tamara dislikes Elizabeth | |||
| Benjamin dislikes Jason | |||
| Mark dislikes Kristen | |||
| Patrick dislikes Pedro | |||
| Jacqueline dislikes Michelle | |||
| Heather dislikes Mallory | |||
| Susan dislikes Elizabeth | |||
| Amanda dislikes Linda | |||
| William dislikes Brenda | |||
| Christopher dislikes Barbara | |||
| Elizabeth dislikes Pedro | |||
| Timothy dislikes Miranda | |||
| Thomas dislikes Destiny | |||
| Douglas dislikes Miranda | |||
| Destiny dislikes Mark | |||
| Miranda dislikes Pedro | |||
| Mallory dislikes Thomas | |||
| Jason dislikes Susan | |||
| Alexandra dislikes Mallory | |||
| Pedro dislikes Dorothy | |||
| Tyler dislikes Tamara | |||
| Barbara dislikes William | |||
| Tamara dislikes Kristen | |||
| Benjamin dislikes Pedro | |||
| Mark dislikes Tamara | |||
| Patrick dislikes Mallory | |||
| Jacqueline dislikes Susan | |||
| Heather dislikes Christopher | |||
| Susan dislikes Alexandra | |||
| Amanda dislikes Benjamin | |||
| Christopher dislikes Tamara | |||
| Dorothy dislikes Brenda | |||
| Elizabeth dislikes Patrick | |||
| Timothy dislikes Mallory | |||
| Douglas dislikes Barbara | |||
| Destiny dislikes Christopher | |||
| Miranda dislikes Heather | |||
| Mallory dislikes Kristen | |||
| Jason dislikes Linda | |||
| Alexandra dislikes Mark | |||
| Tyler dislikes Kristen | |||
| Barbara dislikes Dorothy | |||
| Tamara dislikes Michelle | |||
| Mark dislikes Jacqueline | |||
| Patrick dislikes Christopher | |||
| Jacqueline dislikes Benjamin | |||
| Susan dislikes Brenda | |||
| Amanda dislikes Brenda | |||
| William dislikes Mallory | |||
| Dorothy dislikes Thomas | |||
| Elizabeth dislikes Miranda | |||
| Thomas dislikes Tyler | |||
| Douglas dislikes Michelle | |||
| Destiny dislikes Linda | |||
| Miranda dislikes Thomas | |||
| Mallory dislikes Elizabeth | |||
| Jason dislikes William | |||
| Alexandra dislikes Timothy | |||
| Pedro dislikes Jason | |||
| Tyler dislikes Patrick | |||
| Barbara dislikes Heather | |||
| Tamara dislikes Mark | |||
| Benjamin dislikes Christopher | |||
| Mark dislikes Timothy | |||
| Patrick dislikes Thomas | |||
| Jacqueline dislikes Douglas | |||
| Heather dislikes Elizabeth | |||
| Susan dislikes Benjamin | |||
| Amanda dislikes Timothy | |||
| William dislikes Dorothy | |||
| Christopher dislikes Douglas | |||
| Dorothy dislikes Jason | |||
| Elizabeth dislikes Thomas | |||
| Timothy dislikes Tyler | |||
| Douglas dislikes Pedro | |||
| Destiny dislikes Christopher | |||
| Miranda dislikes Adam | |||
| Mallory dislikes Benjamin | |||
| Jason dislikes Mark | |||
| Alexandra dislikes Patrick | |||
| Pedro dislikes William | |||
| Tyler dislikes Dorothy | |||
| Barbara dislikes Christopher | |||
| Tamara dislikes Mallory | |||
| Benjamin dislikes Timothy | |||
| Mark dislikes Douglas | |||
| Jacqueline dislikes Benjamin | |||
| Heather dislikes Thomas | |||
| Susan dislikes Christopher | |||
| Amanda dislikes Pedro | |||
| William dislikes Patrick | |||
| Christopher dislikes Kristen | |||
| Dorothy dislikes Brenda | |||
| Elizabeth dislikes Mallory | |||
| Timothy dislikes Destiny | |||
| Thomas dislikes Evan | |||
| Douglas dislikes Linda | |||
| Destiny dislikes Mallory | |||
| Miranda dislikes Michelle | |||
| Mallory dislikes Douglas | |||
| Jason dislikes Benjamin | |||
| Alexandra dislikes Mallory | |||
| Pedro dislikes Elizabeth | |||
| Tyler dislikes Adam | |||
| Barbara dislikes Kristen | |||
| Tamara dislikes Adam | |||
| Benjamin dislikes Mallory | |||
| Mark dislikes Linda | |||
| Patrick dislikes Tamara | |||
| Jacqueline dislikes Tamara | |||
| Heather dislikes Tyler | |||
| Susan dislikes Linda | |||
| Amanda dislikes Miranda | |||
| William dislikes Heather | |||
| Christopher dislikes Mark | |||
| Elizabeth dislikes Barbara | |||
| Timothy dislikes Mark | |||
| Douglas dislikes Susan | |||
| Destiny dislikes Alexandra | |||
| Miranda dislikes Barbara | |||
| Mallory dislikes Heather | |||
| Jason dislikes Kristen | |||
| Alexandra dislikes Dorothy | |||
| Pedro dislikes Mark | |||
| Tyler dislikes Heather | |||
| Barbara dislikes Pedro | |||
| Tamara dislikes William | |||
| Benjamin dislikes Heather | |||
| Mark dislikes William | |||
| Patrick dislikes Brenda | |||
| Jacqueline dislikes Elizabeth | |||
| Heather dislikes Michelle | |||
| Amanda dislikes Tamara | |||
| William dislikes Brenda | |||
| Christopher dislikes Jason | |||
| Dorothy dislikes Alexandra | |||
| Elizabeth dislikes Susan | |||
| Timothy dislikes Christopher | |||
| Thomas dislikes Tyler | |||
| Douglas dislikes Mark | |||
| Destiny dislikes Jacqueline | |||
| Miranda dislikes Jason | |||
| Mallory dislikes Timothy | |||
| Jason dislikes Kristen | |||
| Alexandra dislikes Susan | |||
| Pedro dislikes Michelle | |||
| Tyler dislikes Benjamin | |||
| Barbara dislikes Pedro | |||
| Benjamin dislikes William | |||
| Mark dislikes Douglas | |||
| Patrick dislikes Christopher | |||
| Jacqueline dislikes Thomas | |||
| Susan dislikes Tyler | |||
| William dislikes Thomas | |||
| Christopher dislikes Michelle | |||
| Dorothy dislikes Alexandra | |||
| Elizabeth dislikes Jacqueline | |||
| Timothy dislikes Adam | |||
| Thomas dislikes Susan | |||
| Douglas dislikes Christopher | |||
| Destiny dislikes Brenda | |||
| Mallory dislikes Jacqueline | |||
| Jason dislikes Dorothy | |||
| Alexandra dislikes Adam | |||
| Pedro dislikes Evan | |||
| Tyler dislikes Alexandra | |||
| Barbara dislikes Mark | |||
| Tamara dislikes Mark | |||
| Benjamin dislikes Tyler | |||
| Mark dislikes Tamara | |||
| Patrick dislikes Adam | |||
| Jacqueline dislikes Adam | |||
| Susan dislikes Miranda | |||
| Amanda dislikes Christopher | |||
| William dislikes Linda | |||
| Christopher dislikes Linda | |||
| Dorothy dislikes Miranda | |||
| Elizabeth dislikes Jacqueline | |||
| Timothy dislikes Brenda | |||
| Thomas dislikes Elizabeth | |||
| Douglas dislikes William | |||
| Miranda dislikes Christopher | |||
| Mallory dislikes Thomas | |||
| Jason dislikes Destiny | |||
| Alexandra dislikes Tamara | |||
| Pedro dislikes Douglas | |||
| Tyler dislikes Thomas | |||
| Barbara dislikes Linda | |||
| Tamara dislikes Brenda | |||
| Benjamin dislikes Evan | |||
| Patrick dislikes Linda | |||
| Heather dislikes Mallory | |||
| Susan dislikes William | |||
| Amanda dislikes Michelle | |||
| William dislikes Barbara | |||
| Christopher dislikes Barbara | |||
| Elizabeth dislikes Miranda | |||
| Timothy dislikes Barbara | |||
| Douglas dislikes Michelle | |||
| Destiny dislikes Brenda | |||
| Mallory dislikes Patrick | |||
| Jason dislikes William | |||
| Alexandra dislikes Brenda | |||
| Pedro dislikes Tamara | |||
| Tyler dislikes Elizabeth | |||
| Barbara dislikes Mallory | |||
| Tamara dislikes Linda | |||
| Benjamin dislikes Brenda | |||
| Mark dislikes Douglas | |||
| Patrick dislikes Barbara | |||
| Jacqueline dislikes Michelle | |||
| Heather dislikes Mark | |||
| Susan dislikes Dorothy | |||
| Amanda dislikes Mark | |||
| William dislikes Dorothy | |||
| Christopher dislikes Mallory | |||
| Dorothy dislikes Mark | |||
| Elizabeth dislikes Tyler | |||
| Timothy dislikes Michelle | |||
| Thomas dislikes Mallory | |||
| Douglas dislikes Timothy | |||
| Destiny dislikes Susan | |||
| Miranda dislikes Christopher | |||
| Jason dislikes William | |||
| Alexandra dislikes Evan | |||
| Pedro dislikes Evan | |||
| Barbara dislikes Thomas | |||
| Tamara dislikes Thomas | |||
| Benjamin dislikes Elizabeth | |||
| Mark dislikes Barbara | |||
| Patrick dislikes Heather | |||
| Jacqueline dislikes Kristen | |||
| Heather dislikes Thomas | |||
| Susan dislikes Tyler | |||
| Amanda dislikes Benjamin | |||
| William dislikes Michelle | |||
| Christopher dislikes Heather | |||
| Dorothy dislikes Timothy | |||
| Elizabeth dislikes Kristen | |||
| Timothy dislikes Benjamin | |||
| Thomas dislikes Linda | |||
| Douglas dislikes Mallory | |||
| Destiny dislikes Jason | |||
| Miranda dislikes Kristen | |||
| Jason dislikes Michelle | |||
| Pedro dislikes Destiny | |||
| Barbara dislikes Susan | |||
| Tamara dislikes Elizabeth | |||
| Benjamin dislikes Mallory | |||
| Mark dislikes Dorothy | |||
| Patrick dislikes Michelle | |||
| Jacqueline dislikes Susan | |||
| Heather dislikes Douglas | |||
| Susan dislikes Barbara | |||
| Amanda dislikes Alexandra | |||
| William dislikes Miranda | |||
| Christopher dislikes Heather | |||
| Dorothy dislikes Jason | |||
| Elizabeth dislikes Adam | |||
| Timothy dislikes Evan | |||
| Douglas dislikes Linda | |||
| Destiny dislikes Susan | |||
| Miranda dislikes Tyler | |||
| Mallory dislikes Pedro | |||
| Jason dislikes Mark | |||
| Alexandra dislikes Brenda | |||
| Pedro dislikes Kristen | |||
| Tyler dislikes Mark | |||
| Barbara dislikes Christopher | |||
| Tamara dislikes Heather | |||
| Benjamin dislikes Pedro | |||
| Mark dislikes William | |||
| Patrick dislikes Tamara | |||
| Jacqueline dislikes Michelle | |||
| Heather dislikes Mallory | |||
| Susan dislikes Benjamin | |||
| William dislikes Linda | |||
| Christopher dislikes Heather | |||
| Timothy dislikes Mallory | |||
| Thomas dislikes Adam | |||
| Douglas dislikes Kristen | |||
| Destiny dislikes Timothy | |||
| Miranda dislikes Jason | |||
| Mallory dislikes Tamara | |||
| Jason dislikes Tamara | |||
| Alexandra dislikes Heather | |||
| Pedro dislikes Jason | |||
| Tyler dislikes Jacqueline | |||
| Barbara dislikes Benjamin | |||
| Tamara dislikes William | |||
| Benjamin dislikes Miranda | |||
| Mark dislikes Alexandra | |||
| Patrick dislikes Mallory | |||
| Jacqueline dislikes Tamara | |||
| Heather dislikes Pedro | |||
| Susan dislikes Patrick | |||
| Amanda dislikes Christopher | |||
| Christopher dislikes Tyler | |||
| Dorothy dislikes Michelle | |||
| Elizabeth dislikes Mark | |||
| Timothy dislikes Brenda | |||
| Thomas dislikes Barbara | |||
| Douglas dislikes Evan | |||
| Destiny dislikes Mark | |||
| Miranda dislikes Tamara | |||
| Jason dislikes Benjamin | |||
| Alexandra dislikes Michelle | |||
| Pedro dislikes Destiny | |||
| Tyler dislikes Kristen | |||
| Barbara dislikes Dorothy | |||
| Tamara dislikes Alexandra | |||
| Benjamin dislikes Miranda | |||
| Mark dislikes William | |||
| Patrick dislikes Adam | |||
| Jacqueline dislikes Kristen | |||
| Heather dislikes Mark | |||
| Susan dislikes Patrick | |||
| Amanda dislikes Alexandra | |||
| William dislikes Pedro | |||
| Christopher dislikes Douglas | |||
| Dorothy dislikes Tyler | |||
| Timothy dislikes Susan | |||
| Thomas dislikes Tamara | |||
| Douglas dislikes Mark | |||
| Destiny dislikes Mallory | |||
| Miranda dislikes Mark | |||
| Mallory dislikes Pedro | |||
| Alexandra dislikes Dorothy | |||
| Pedro dislikes William | |||
| Tyler dislikes Jacqueline | |||
| Barbara dislikes Elizabeth | |||
| Benjamin dislikes Thomas | |||
| Mark dislikes Adam | |||
| Patrick dislikes Tyler | |||
| Heather dislikes Tyler | |||
| Susan dislikes Barbara | |||
| Amanda dislikes Miranda | |||
| William dislikes Evan | |||
| Christopher dislikes Alexandra | |||
| Dorothy dislikes Tyler | |||
| Elizabeth dislikes Mallory | |||
| Timothy dislikes Dorothy | |||
| Thomas dislikes Mark | |||
| Douglas dislikes Kristen | |||
| Destiny dislikes Mark | |||
| Miranda dislikes Heather | |||
| Jason dislikes Jacqueline | |||
| Alexandra dislikes Heather | |||
| Pedro dislikes Brenda | |||
| Tyler dislikes Mallory | |||
| Barbara dislikes Christopher | |||
| Tamara dislikes Jacqueline | |||
| Mark dislikes Dorothy | |||
| Patrick dislikes Kristen | |||
| Jacqueline dislikes Michelle | |||
| Heather dislikes William | |||
| Susan dislikes Patrick | |||
| Amanda dislikes Brenda | |||
| William dislikes Evan | |||
| Christopher dislikes Mark | |||
| Dorothy dislikes Barbara | |||
| Elizabeth dislikes Heather | |||
| Timothy dislikes Adam | |||
| Thomas dislikes Destiny | |||
| Douglas dislikes Mark | |||
| Destiny dislikes Kristen | |||
| Mallory dislikes Pedro | |||
| Jason dislikes Susan | |||
| Alexandra dislikes Dorothy | |||
| Pedro dislikes Barbara | |||
| Tyler dislikes Heather | |||
| Barbara dislikes Miranda | |||
| Tamara dislikes Evan | |||
| Benjamin dislikes Miranda | |||
| Mark dislikes Michelle | |||
| Jacqueline dislikes William | |||
| Heather dislikes Timothy | |||
| Susan dislikes Tyler | |||
| Amanda dislikes Linda | |||
| William dislikes Mallory | |||
| Christopher dislikes Adam | |||
| Dorothy dislikes Miranda | |||
| Timothy dislikes William | |||
| Thomas dislikes Barbara | |||
| Destiny dislikes Pedro | |||
| Mallory dislikes Kristen | |||
| Alexandra dislikes Timothy | |||
| Pedro dislikes Evan | |||
| Tyler dislikes Timothy | |||
| Barbara dislikes Linda | |||
| Tamara dislikes Mallory | |||
| Benjamin dislikes Evan | |||
| Mark dislikes Tyler | |||
| Patrick dislikes Thomas | |||
| Jacqueline dislikes Dorothy | |||
| Heather dislikes Timothy | |||
| Susan dislikes Pedro | |||
| Amanda dislikes Evan | |||
| William dislikes Jason | |||
| Christopher dislikes Michelle | |||
| Dorothy dislikes Barbara | |||
| Elizabeth dislikes Michelle | |||
| Timothy dislikes Pedro | |||
| Thomas dislikes Adam | |||
| Douglas dislikes Pedro | |||
| Destiny dislikes Jason | |||
| Miranda dislikes Adam | |||
| Mallory dislikes Michelle | |||
| Jason dislikes Christopher | |||
| Alexandra dislikes Jacqueline | |||
| Tyler dislikes Mallory | |||
| Barbara dislikes Pedro | |||
| Tamara dislikes Adam | |||
| Benjamin dislikes Tyler | |||
| Patrick dislikes Thomas | |||
| Jacqueline dislikes William | |||
| Heather dislikes Michelle | |||
| Susan dislikes Thomas | |||
| Amanda dislikes Miranda | |||
| William dislikes Tamara | |||
| Christopher dislikes Linda | |||
| Dorothy dislikes Susan | |||
| Elizabeth dislikes Kristen | |||
| Timothy dislikes Douglas | |||
| Thomas dislikes Christopher | |||
| Douglas dislikes Evan | |||
| Destiny dislikes Thomas | |||
| Miranda dislikes Tamara | |||
| Mallory dislikes Alexandra | |||
| Alexandra dislikes Elizabeth | |||
| Tyler dislikes Heather | |||
| Barbara dislikes Adam | |||
| Tamara dislikes Kristen | |||
| Benjamin dislikes Kristen | |||
| Mark dislikes Pedro | |||
| Patrick dislikes Elizabeth | |||
| Jacqueline dislikes Destiny | |||
| Heather dislikes William | |||
| Susan dislikes Adam | |||
| Amanda dislikes Dorothy | |||
| William dislikes Brenda | |||
| Christopher dislikes Kristen | |||
| Dorothy dislikes Susan | |||
| Elizabeth dislikes Miranda | |||
| Timothy dislikes Jacqueline | |||
| Thomas dislikes Mallory | |||
| Douglas dislikes Tyler | |||
| Destiny dislikes Dorothy | |||
| Miranda dislikes William | |||
| Mallory dislikes Heather | |||
| Jason dislikes Patrick | |||
| Alexandra dislikes Mark | |||
| Pedro dislikes Douglas | |||
| Barbara dislikes Timothy | |||
| Tamara dislikes Mallory | |||
| Benjamin dislikes Patrick | |||
| Mark dislikes Brenda | |||
| Patrick dislikes Linda | |||
| Jacqueline dislikes Susan | |||
| Heather dislikes Tyler | |||
| Susan dislikes Michelle | |||
| Amanda dislikes Evan | |||
| William dislikes Mallory | |||
| Christopher dislikes Evan | |||
| Dorothy dislikes Patrick | |||
| Elizabeth dislikes Barbara | |||
| Timothy dislikes William | |||
| Thomas dislikes Miranda | |||
| Destiny dislikes Mark | |||
| Miranda dislikes Alexandra | |||
| Mallory dislikes Pedro | |||
| Jason dislikes William | |||
| Alexandra dislikes Mark | |||
| Pedro dislikes Susan | |||
| Barbara dislikes Thomas | |||
| Tamara dislikes William | |||
| Benjamin dislikes Jason | |||
| Mark dislikes Susan | |||
| Patrick dislikes Miranda | |||
| Jacqueline dislikes Evan | |||
| Heather dislikes Mallory | |||
| Susan dislikes Dorothy | |||
| Amanda dislikes Evan | |||
| William dislikes Barbara | |||
| Christopher dislikes Barbara | |||
| Dorothy dislikes Mark | |||
| Elizabeth dislikes Mark | |||
| Timothy dislikes William | |||
| Thomas dislikes Linda | |||
| Destiny dislikes Mark | |||
| Miranda dislikes Kristen | |||
| Mallory dislikes William | |||
| Jason dislikes Brenda | |||
| Alexandra dislikes Miranda | |||
| Pedro dislikes Linda | |||
| Tyler dislikes Thomas | |||
| Tamara dislikes Christopher | |||
| Benjamin dislikes Miranda | |||
| Mark dislikes Christopher | |||
| Patrick dislikes Michelle | |||
| Jacqueline dislikes Tyler | |||
| Heather dislikes Tyler | |||
| Amanda dislikes Alexandra | |||
| William dislikes Mallory | |||
| Christopher dislikes Alexandra | |||
| Dorothy dislikes Pedro | |||
| Elizabeth dislikes Mallory | |||
| Timothy dislikes Evan | |||
| Thomas dislikes Dorothy | |||
| Douglas dislikes Heather | |||
| Destiny dislikes Dorothy | |||
| Miranda dislikes Pedro | |||
| Mallory dislikes Timothy | |||
| Jason dislikes William | |||
| Alexandra dislikes Elizabeth | |||
| Pedro dislikes Patrick | |||
| Tyler dislikes Heather | |||
| Barbara dislikes William | |||
| Benjamin dislikes Mallory | |||
| Mark dislikes Tamara | |||
| Heather dislikes Benjamin | |||
| Susan dislikes Douglas | |||
| Amanda dislikes Tamara | |||
| William dislikes Mark | |||
| Christopher dislikes Miranda | |||
| Dorothy dislikes Pedro | |||
| Elizabeth dislikes Barbara | |||
| Timothy dislikes Tyler | |||
| Thomas dislikes Pedro | |||
| Douglas dislikes Barbara | |||
| Destiny dislikes Heather | |||
| Miranda dislikes Barbara | |||
| Mallory dislikes Dorothy | |||
| Jason dislikes Barbara | |||
| Alexandra dislikes Brenda | |||
| Pedro dislikes Mallory | |||
| Tyler dislikes Destiny | |||
| Barbara dislikes Mallory | |||
| Tamara dislikes Jacqueline | |||
| Benjamin dislikes Pedro | |||
| Mark dislikes Michelle | |||
| Patrick dislikes Kristen | |||
| Jacqueline dislikes Thomas | |||
| Heather dislikes Brenda | |||
| Susan dislikes Timothy | |||
| Amanda dislikes Kristen | |||
| William dislikes Linda | |||
| Christopher dislikes Alexandra | |||
| Timothy dislikes Barbara | |||
| Thomas dislikes Linda | |||
| Douglas dislikes Jason | |||
| Destiny dislikes Benjamin | |||
| Miranda dislikes Susan | |||
| Mallory dislikes Linda | |||
| Alexandra dislikes Susan | |||
| Pedro dislikes Susan | |||
| Tyler dislikes Tamara | |||
| Barbara dislikes Timothy | |||
| Mark dislikes Thomas | |||
| Patrick dislikes William | |||
| Heather dislikes Benjamin | |||
| Susan dislikes Evan | |||
| Amanda dislikes Barbara | |||
| William dislikes Kristen | |||
| Christopher dislikes Mark | |||
| Dorothy dislikes William | |||
| Elizabeth dislikes Heather | |||
| Timothy dislikes Alexandra | |||
| Thomas dislikes Benjamin | |||
| Douglas dislikes Barbara | |||
| Destiny dislikes William | |||
| Mallory dislikes Adam | |||
| Jason dislikes Christopher | |||
| Alexandra dislikes Kristen | |||
| Pedro dislikes Michelle | |||
| Tyler dislikes William | |||
| Barbara dislikes Michelle | |||
| Tamara dislikes Destiny | |||
| Benjamin dislikes Linda | |||
| Mark dislikes Linda | |||
| Patrick dislikes Miranda | |||
| Heather dislikes Brenda | |||
| Susan dislikes Christopher | |||
| Amanda dislikes Jason | |||
| William dislikes Dorothy | |||
| Christopher dislikes Mallory | |||
| Dorothy dislikes Alexandra | |||
| Elizabeth dislikes Patrick | |||
| Timothy dislikes Pedro | |||
| Thomas dislikes Mallory | |||
| Douglas dislikes Michelle | |||
| Destiny dislikes Mallory | |||
| Mallory dislikes Tyler | |||
| Jason dislikes Douglas | |||
| Alexandra dislikes Michelle | |||
| Pedro dislikes Adam | |||
| Tyler dislikes Evan | |||
| Barbara dislikes Jason | |||
| Tamara dislikes Alexandra | |||
| Benjamin dislikes Alexandra | |||
| Mark dislikes Evan | |||
| Patrick dislikes Alexandra | |||
| Jacqueline dislikes Dorothy | |||
| Heather dislikes Jason | |||
| Susan dislikes William | |||
| Christopher likes Dorothy | |||
| Mallory likes Jason | |||
| Mallory likes Jason | |||
| Elizabeth likes Timothy | |||
| Jacqueline likes Heather | |||
| Evan likes Linda | |||
| Miranda likes Mallory | |||
| Thomas likes Douglas | |||
| Destiny likes Miranda | |||
| Kristen likes Brenda | |||
| @ -0,0 +1,11 @@ | |||
| Patric dislikes Ada | |||
| Patric dislikes Katie | |||
| Patric dislikes Bob | |||
| Ada | |||
| John likes Alice | |||
| Bob likes Andrea | |||
| Andrea | |||
| Alice | |||
| Ada likes Julia | |||
| Ada likes Katie | |||
| Robert | |||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue