From 643bbdf9d6cbb7ccfeeb1216f55dda5695ec3649 Mon Sep 17 00:00:00 2001 From: Thomas <thomas.vogt1@rwth-aachen.de> Date: Sun, 1 Dec 2019 17:25:47 +0100 Subject: [PATCH] random NFAs --- learnlib/MealyDotfileNLStarLearner.java | 6 +- learnlib/MySimulatorOracle.java | 23 + learnlib/RandomNFAGen.java | 87 + learnlib/randomnfa2.csv | 3761 +++++++++++++++++++++++ 4 files changed, 3874 insertions(+), 3 deletions(-) create mode 100644 learnlib/MySimulatorOracle.java create mode 100644 learnlib/RandomNFAGen.java create mode 100644 learnlib/randomnfa2.csv diff --git a/learnlib/MealyDotfileNLStarLearner.java b/learnlib/MealyDotfileNLStarLearner.java index 06b5d77..3bcc8c9 100644 --- a/learnlib/MealyDotfileNLStarLearner.java +++ b/learnlib/MealyDotfileNLStarLearner.java @@ -18,9 +18,9 @@ public class MealyDotfileNLStarLearner { CompactDFA<String> target; NFA<?, String> result, result2; - MealyDotfileNLStarLearner(Path path) throws IOException { + MealyDotfileNLStarLearner(Path path, String accepting_output) throws IOException { GraphvizParser parser = new GraphvizParser(path); - target = parser.createDFAfromMealy(Collections.singletonList("OOK")); + target = parser.createDFAfromMealy(Collections.singletonList(accepting_output)); MembershipOracle.DFAMembershipOracle<String> sul = new SimulatorOracle.DFASimulatorOracle<>(target); MembershipOracle.DFAMembershipOracle<String> sul2 = new MyDFASimulatorOracle<>(target); @@ -71,7 +71,7 @@ public class MealyDotfileNLStarLearner { } public static void main(String[] args) throws IOException { - MealyDotfileNLStarLearner experiments = new MealyDotfileNLStarLearner(Paths.get("login.flat_0_1.dot")); + MealyDotfileNLStarLearner experiments = new MealyDotfileNLStarLearner(Paths.get("passport.flat_0_1.dot"), "OOK"); Visualization.visualize(experiments.target, experiments.target.getInputAlphabet()); diff --git a/learnlib/MySimulatorOracle.java b/learnlib/MySimulatorOracle.java new file mode 100644 index 0000000..e63f1bb --- /dev/null +++ b/learnlib/MySimulatorOracle.java @@ -0,0 +1,23 @@ +import de.learnlib.oracle.membership.SimulatorOracle; +import net.automatalib.automata.concepts.SuffixOutput; +import net.automatalib.automata.fsa.DFA; +import net.automatalib.words.Word; +import net.automatalib.words.WordBuilder; +import de.learnlib.oracle.membership.SimulatorOracle.DFASimulatorOracle; + +public class MySimulatorOracle<I, D> extends SimulatorOracle<I, D> { + + public MySimulatorOracle(SuffixOutput<I, D> automaton) { + super(automaton); + } + + public D answerQuery(Word<I> prefix, Word<I> suffix) { + return super.answerQuery(reverseWord(suffix), reverseWord(prefix)); + } + + private Word<I> reverseWord(Word<I> w){ + WordBuilder<I> wb = new WordBuilder<I>(w); + wb.reverse(); + return wb.toWord(); + } +} diff --git a/learnlib/RandomNFAGen.java b/learnlib/RandomNFAGen.java new file mode 100644 index 0000000..8861f31 --- /dev/null +++ b/learnlib/RandomNFAGen.java @@ -0,0 +1,87 @@ +import de.learnlib.algorithms.nlstar.NLStarLearner; +import de.learnlib.algorithms.nlstar.NLStarLearnerBuilder; +import de.learnlib.api.oracle.MembershipOracle; +import de.learnlib.oracle.equivalence.RandomWordsEQOracle; +import de.learnlib.oracle.membership.SimulatorOracle; +import de.learnlib.util.Experiment; +import net.automatalib.automata.fsa.MutableNFA; +import net.automatalib.automata.fsa.NFA; +import net.automatalib.automata.fsa.impl.compact.CompactDFA; +import net.automatalib.automata.fsa.impl.compact.CompactNFA; +import net.automatalib.util.automata.builders.AutomatonBuilders; +import net.automatalib.util.automata.builders.DFABuilder; +import net.automatalib.util.automata.builders.FSABuilder; +import net.automatalib.visualization.Visualization; +import net.automatalib.words.Alphabet; +import net.automatalib.words.impl.Alphabets; + +import java.util.Random; + +public class RandomNFAGen { + + Alphabet<Integer> alphabet; + int state_count; + Random rnd_gen; + + public RandomNFAGen(int state_count){ + this.state_count = state_count; + alphabet = Alphabets.integers(0, 1); + rnd_gen = new Random(); + } + + public CompactNFA<Integer> get(){ + FSABuilder<Integer, Integer, CompactNFA<Integer>> builder = new FSABuilder<>(new CompactNFA<>(alphabet)) + .withInitial(0); + + int transistion_count = rnd_gen.nextInt(state_count * alphabet.size()); + + for (int i = 0; i < transistion_count; i++) { + builder.from(rnd_gen.nextInt(state_count)) + .on(rnd_gen.nextInt(alphabet.size())) + .to(rnd_gen.nextInt(state_count)); + } + + int accepting_count = rnd_gen.nextInt(state_count); + + for (int i = 0; i < accepting_count; i++) { + builder.withAccepting(rnd_gen.nextInt(state_count)); + } + + return builder.create(); + } + + public static void main(String[] args) { + RandomNFAGen c = new RandomNFAGen(10); + while (true) { + CompactNFA<Integer> target = c.get(); + + SimulatorOracle<Integer, Boolean> sul = new SimulatorOracle<>(target); + SimulatorOracle<Integer, Boolean> sul2 = new MySimulatorOracle<>(target); + NLStarLearner<Integer> nlstar = + new NLStarLearnerBuilder<Integer>().withAlphabet(target.getInputAlphabet()) // input alphabet + .withOracle(sul) // membership oracle + .create(); + NLStarLearner<Integer> nlstar2 = + new NLStarLearnerBuilder<Integer>().withAlphabet(target.getInputAlphabet()) // input alphabet + .withOracle(sul2) // reverse membership oracle + .create(); + RandomWordsEQOracle<NFA<?, Integer>, Integer, Boolean> eqOracle = new RandomWordsEQOracle<>(sul, 0, 32, 5000); + RandomWordsEQOracle<NFA<?, Integer>, Integer, Boolean> eqOracle2 = new RandomWordsEQOracle<>(sul2, 0, 32, 5000); + + Experiment<NFA<?,Integer>> experiment = new Experiment<>(nlstar, eqOracle, target.getInputAlphabet()); + Experiment<NFA<?,Integer>> experiment2 = new Experiment<>(nlstar2, eqOracle2, target.getInputAlphabet()); + + experiment.run(); + experiment2.run(); + + System.out.print(experiment.getFinalHypothesis().size() + ","); + System.out.println(experiment2.getFinalHypothesis().size()); + + if (Math.abs(experiment.getFinalHypothesis().size() - experiment2.getFinalHypothesis().size()) > 3) { + Visualization.visualize(target, target.getInputAlphabet()); + Visualization.visualize(experiment.getFinalHypothesis(), target.getInputAlphabet()); + Visualization.visualize(experiment2.getFinalHypothesis(), target.getInputAlphabet()); + } + } + } +} diff --git a/learnlib/randomnfa2.csv b/learnlib/randomnfa2.csv new file mode 100644 index 0000000..2b518c1 --- /dev/null +++ b/learnlib/randomnfa2.csv @@ -0,0 +1,3761 @@ +3,3 +1,1 +2,2 +5,6 +1,1 +1,1 +2,2 +1,1 +1,1 +5,4 +1,1 +1,1 +5,5 +1,1 +1,1 +4,4 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,7 +2,2 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +4,4 +1,1 +8,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +5,5 +6,6 +4,4 +3,3 +4,5 +1,1 +1,1 +1,1 +1,1 +1,1 +7,6 +1,1 +1,1 +3,3 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,7 +1,1 +2,2 +1,1 +5,5 +2,2 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +1,1 +4,4 +4,5 +1,1 +1,1 +4,4 +4,4 +3,3 +1,1 +7,7 +6,5 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +2,2 +1,1 +5,5 +1,1 +1,1 +5,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,8 +1,1 +10,11 +1,1 +4,4 +1,1 +1,1 +5,5 +1,1 +1,1 +3,3 +5,6 +1,1 +1,1 +1,1 +10,9 +2,2 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +6,5 +6,6 +5,4 +2,2 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +8,9 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +5,5 +1,1 +1,1 +1,1 +1,1 +2,2 +7,7 +1,1 +1,1 +8,9 +1,1 +1,1 +1,1 +1,1 +6,7 +1,1 +9,8 +6,6 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +7,7 +1,1 +4,4 +1,1 +8,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +7,5 +8,7 +7,7 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +6,6 +1,1 +2,2 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +1,1 +3,3 +1,1 +3,4 +1,1 +6,6 +1,1 +1,1 +1,1 +4,4 +6,6 +5,6 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +10,11 +1,1 +1,1 +8,9 +1,1 +1,1 +1,1 +1,1 +4,4 +3,3 +1,1 +3,3 +1,1 +1,1 +3,3 +7,7 +2,2 +1,1 +6,5 +1,1 +5,5 +1,1 +1,1 +8,9 +1,1 +1,1 +3,3 +6,7 +1,1 +1,1 +3,2 +1,1 +1,1 +1,1 +2,2 +1,1 +3,3 +4,4 +2,2 +2,2 +4,5 +1,1 +4,5 +1,1 +4,5 +7,8 +1,1 +1,1 +4,3 +1,1 +5,5 +9,10 +11,9 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +9,11 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +10,10 +1,1 +1,1 +1,1 +1,1 +1,1 +8,7 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +2,2 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +6,6 +1,1 +8,7 +5,6 +6,5 +1,1 +1,1 +1,1 +5,5 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +4,4 +1,1 +5,5 +1,1 +7,7 +1,1 +10,9 +1,1 +1,1 +6,8 +1,1 +6,8 +2,2 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +3,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +8,9 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +5,5 +1,1 +5,5 +2,2 +6,6 +2,2 +1,1 +1,1 +5,5 +4,4 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +3,3 +6,9 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +2,2 +2,2 +4,4 +7,8 +7,6 +1,1 +1,1 +1,1 +10,10 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +14,10 +2,2 +8,8 +6,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +2,2 +3,3 +2,2 +1,1 +2,2 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +2,2 +1,1 +1,1 +2,2 +7,7 +1,1 +5,5 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +4,5 +1,1 +6,6 +1,1 +9,8 +1,1 +1,1 +5,4 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +3,2 +5,5 +7,7 +1,1 +4,4 +2,2 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +1,1 +5,5 +6,6 +1,1 +1,1 +1,1 +6,6 +3,3 +1,1 +1,1 +2,2 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +3,3 +2,2 +8,8 +1,1 +1,1 +6,7 +2,2 +1,1 +7,7 +1,1 +5,5 +1,1 +1,1 +4,4 +8,7 +3,3 +5,5 +1,1 +1,1 +7,8 +7,9 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +10,13 +11,15 +2,2 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +10,8 +1,1 +1,1 +2,2 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +6,6 +1,1 +1,1 +1,1 +8,9 +3,4 +6,6 +1,1 +4,4 +1,1 +1,1 +9,10 +5,5 +1,1 +7,7 +1,1 +5,5 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +3,3 +1,1 +5,5 +1,1 +1,1 +3,3 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +7,8 +3,3 +5,5 +5,5 +1,1 +1,1 +7,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +4,4 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +5,5 +1,1 +1,1 +2,2 +1,1 +1,1 +2,2 +1,1 +5,5 +1,1 +2,2 +6,5 +1,1 +8,8 +1,1 +8,7 +1,1 +1,1 +5,4 +1,1 +1,1 +2,2 +1,1 +5,6 +1,1 +4,5 +5,5 +1,1 +1,1 +2,2 +1,1 +1,1 +2,2 +4,4 +1,1 +1,1 +7,6 +1,1 +1,1 +1,1 +4,3 +4,4 +1,1 +1,1 +1,1 +1,1 +11,10 +5,5 +1,1 +1,1 +1,1 +4,3 +3,3 +1,1 +1,1 +8,9 +1,1 +1,1 +1,1 +5,5 +1,1 +6,7 +1,1 +5,5 +2,2 +4,5 +4,4 +1,1 +2,2 +1,1 +11,8 +1,1 +4,5 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +9,11 +11,9 +7,7 +1,1 +4,4 +1,1 +1,1 +9,7 +1,1 +1,1 +1,1 +5,5 +4,5 +8,7 +3,3 +1,1 +5,5 +6,6 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +3,3 +1,1 +10,9 +1,1 +1,1 +2,2 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +5,6 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +4,4 +3,3 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +7,6 +5,4 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +10,12 +6,6 +4,4 +1,1 +7,5 +6,6 +2,2 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,8 +2,2 +1,1 +9,10 +1,1 +1,1 +1,1 +1,1 +5,4 +7,6 +1,1 +1,1 +9,12 +4,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +7,7 +7,7 +1,1 +1,1 +8,8 +5,5 +1,1 +1,1 +6,6 +6,7 +2,2 +2,2 +1,1 +8,9 +1,1 +3,3 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,8 +1,1 +4,4 +1,1 +3,3 +8,9 +1,1 +1,1 +1,1 +1,1 +2,2 +5,4 +1,1 +1,1 +8,8 +8,8 +1,1 +11,11 +4,4 +2,2 +1,1 +1,1 +7,7 +7,7 +1,1 +3,3 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +5,5 +2,2 +1,1 +6,6 +1,1 +5,5 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +8,10 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +7,7 +9,10 +1,1 +1,1 +1,1 +4,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,3 +2,2 +8,7 +1,1 +3,4 +1,1 +2,2 +2,2 +1,1 +5,6 +1,1 +1,1 +1,1 +2,2 +9,10 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +2,2 +5,5 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +5,6 +1,1 +2,2 +1,1 +1,1 +1,1 +4,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +9,9 +1,1 +9,9 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +9,10 +2,2 +3,4 +2,2 +1,1 +2,2 +1,1 +1,1 +1,1 +5,5 +2,2 +4,4 +1,1 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +10,12 +7,7 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +9,8 +10,9 +1,1 +5,5 +2,2 +1,1 +1,1 +1,1 +7,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +6,6 +4,3 +1,1 +4,4 +1,1 +1,1 +1,1 +4,4 +1,1 +10,10 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +5,4 +5,6 +6,6 +1,1 +4,4 +1,1 +1,1 +1,1 +2,2 +7,7 +6,5 +2,2 +1,1 +6,6 +3,3 +1,1 +1,1 +1,1 +6,6 +1,1 +6,5 +1,1 +2,2 +1,1 +9,9 +7,7 +1,1 +5,5 +1,1 +2,2 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +5,5 +5,5 +3,3 +3,3 +5,5 +1,1 +5,5 +1,1 +6,7 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +4,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +7,9 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +1,1 +1,1 +6,7 +6,7 +4,4 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +8,8 +1,1 +7,7 +5,5 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +11,11 +1,1 +1,1 +4,4 +1,1 +8,11 +7,7 +8,7 +1,1 +4,4 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +11,9 +1,1 +1,1 +5,5 +1,1 +1,1 +4,4 +5,5 +1,1 +6,7 +1,1 +6,6 +10,11 +2,2 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +5,5 +1,1 +1,1 +2,2 +1,1 +6,6 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +2,2 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +8,9 +9,9 +7,7 +10,9 +6,6 +1,1 +3,3 +1,1 +1,1 +7,6 +7,6 +1,1 +1,1 +1,1 +5,4 +1,1 +6,5 +5,5 +2,2 +1,1 +1,1 +1,1 +7,8 +2,2 +1,1 +1,1 +6,8 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +8,8 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +4,4 +3,3 +3,3 +1,1 +1,1 +4,4 +2,2 +1,1 +1,1 +3,3 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +1,1 +6,6 +1,1 +2,2 +1,1 +1,1 +2,2 +2,2 +4,4 +3,3 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +5,4 +1,1 +8,9 +1,1 +1,1 +1,1 +4,4 +1,1 +2,2 +1,1 +1,1 +4,4 +6,5 +2,2 +1,1 +5,5 +6,6 +9,9 +9,9 +6,6 +9,9 +3,3 +1,1 +1,1 +1,1 +5,5 +3,3 +7,8 +1,1 +1,1 +3,3 +3,3 +7,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +4,3 +1,1 +1,1 +1,1 +2,2 +1,1 +7,6 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +2,2 +1,1 +7,6 +5,5 +6,7 +1,1 +1,1 +2,2 +1,1 +1,1 +5,5 +6,8 +1,1 +5,5 +1,1 +1,1 +1,1 +2,2 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +8,7 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +5,5 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +5,4 +1,1 +1,1 +7,6 +2,2 +2,2 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +9,9 +6,6 +2,2 +1,1 +1,1 +2,2 +4,5 +11,9 +5,7 +1,1 +1,1 +1,1 +6,6 +2,2 +5,4 +3,3 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +2,2 +8,9 +1,1 +1,1 +5,5 +5,6 +1,1 +1,1 +1,1 +8,13 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +1,1 +7,8 +1,1 +6,7 +1,1 +6,5 +1,1 +1,1 +3,4 +1,1 +3,3 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +8,9 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +2,2 +3,3 +1,1 +4,3 +1,1 +3,3 +1,1 +1,1 +8,8 +1,1 +2,2 +1,1 +1,1 +1,1 +6,6 +7,7 +2,2 +1,1 +1,1 +5,5 +1,1 +2,2 +1,1 +1,1 +5,6 +1,1 +2,3 +1,1 +2,2 +1,1 +1,1 +5,5 +2,2 +1,1 +1,1 +3,3 +1,1 +7,7 +2,2 +1,1 +8,8 +1,1 +1,1 +10,8 +4,4 +1,1 +5,5 +1,1 +2,2 +1,1 +4,4 +1,1 +1,1 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +5,6 +2,2 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +7,7 +1,1 +5,6 +1,1 +1,1 +2,2 +8,8 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +5,5 +9,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,4 +1,1 +1,1 +1,1 +6,6 +4,4 +6,6 +9,11 +2,2 +7,8 +3,3 +4,5 +1,1 +1,1 +1,1 +1,1 +5,5 +5,5 +1,1 +3,4 +5,5 +3,4 +6,6 +1,1 +5,5 +1,1 +2,2 +4,6 +5,6 +1,1 +1,1 +1,1 +1,1 +1,1 +6,7 +1,1 +1,1 +8,9 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +8,8 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +7,9 +1,1 +3,3 +2,2 +4,4 +7,7 +1,1 +3,3 +1,1 +1,1 +7,7 +1,1 +1,1 +3,3 +1,1 +2,2 +1,1 +1,1 +5,5 +3,3 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +8,7 +7,7 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +3,3 +2,3 +7,6 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +6,6 +5,5 +9,9 +7,8 +1,1 +1,1 +4,4 +3,2 +1,1 +1,1 +1,1 +1,1 +2,2 +4,4 +1,1 +2,3 +4,4 +4,4 +5,5 +1,1 +1,1 +1,1 +1,1 +6,5 +8,8 +1,1 +1,1 +3,3 +1,1 +1,1 +9,7 +6,6 +1,1 +5,5 +1,1 +3,3 +5,5 +5,5 +1,1 +9,9 +4,5 +4,4 +5,5 +1,1 +8,7 +2,2 +6,6 +3,3 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +6,8 +1,1 +1,1 +1,1 +7,6 +8,9 +1,1 +2,2 +1,1 +4,4 +1,1 +2,2 +5,5 +1,1 +8,8 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,10 +1,1 +2,2 +1,1 +1,1 +1,1 +4,4 +7,9 +8,8 +1,1 +4,5 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,9 +1,1 +1,1 +5,6 +1,1 +1,1 +1,1 +1,1 +2,2 +4,4 +8,11 +1,1 +10,12 +2,2 +2,2 +1,1 +1,1 +4,4 +5,5 +1,1 +4,4 +1,1 +1,1 +7,7 +1,1 +2,2 +5,5 +3,3 +1,1 +2,2 +1,1 +5,5 +1,1 +7,9 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +2,2 +2,2 +1,1 +1,1 +6,6 +1,1 +1,1 +5,5 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +7,6 +5,5 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +6,6 +6,6 +2,2 +1,1 +4,4 +1,1 +4,4 +3,3 +3,4 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +2,2 +7,8 +2,2 +1,1 +1,1 +1,1 +2,2 +6,5 +4,3 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +3,3 +1,1 +1,1 +2,2 +7,7 +1,1 +1,1 +6,6 +6,5 +1,1 +3,3 +5,4 +8,7 +2,2 +1,1 +9,7 +4,4 +3,3 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +7,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,7 +1,1 +1,1 +4,4 +1,1 +5,5 +1,1 +9,10 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +4,5 +7,10 +1,1 +1,1 +1,1 +1,1 +5,4 +7,7 +5,5 +1,1 +1,1 +7,7 +1,1 +1,1 +5,4 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +8,9 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +1,1 +2,2 +1,1 +1,1 +4,5 +6,5 +2,2 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +8,7 +5,5 +1,1 +1,1 +1,1 +5,6 +1,1 +4,4 +5,5 +10,13 +1,1 +1,1 +1,1 +3,3 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +8,10 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +4,3 +1,1 +1,1 +2,2 +1,1 +3,3 +1,1 +7,9 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +7,8 +1,1 +1,1 +1,1 +7,6 +1,1 +1,1 +1,1 +5,5 +2,3 +1,1 +2,2 +1,1 +1,1 +1,1 +12,8 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,4 +1,1 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +1,1 +2,2 +1,1 +2,2 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +6,8 +1,1 +7,8 +3,3 +1,1 +3,4 +1,1 +1,1 +3,4 +7,7 +1,1 +1,1 +1,1 +2,2 +1,1 +4,4 +8,7 +3,3 +6,9 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +3,2 +4,4 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +9,13 +1,1 +1,1 +2,2 +8,8 +1,1 +1,1 +1,1 +1,1 +1,1 +7,8 +1,1 +6,6 +1,1 +3,3 +2,2 +1,1 +4,4 +1,1 +1,1 +1,1 +4,4 +11,7 +1,1 +1,1 +1,1 +5,4 +1,1 +3,3 +1,1 +4,4 +1,1 +3,4 +1,1 +1,1 +1,1 +8,9 +1,1 +4,4 +1,1 +2,2 +2,2 +1,1 +3,2 +2,2 +4,5 +1,1 +1,1 +1,1 +3,3 +6,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +3,3 +1,1 +1,1 +4,4 +1,1 +1,1 +6,6 +5,5 +1,1 +1,1 +1,1 +3,3 +4,5 +1,1 +2,2 +1,1 +3,3 +9,9 +1,1 +1,1 +1,1 +7,8 +1,1 +1,1 +1,1 +3,3 +1,1 +4,4 +2,2 +5,5 +1,1 +1,1 +2,3 +8,8 +5,5 +5,6 +1,1 +1,1 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +5,6 +1,1 +1,1 +5,7 +1,1 +4,4 +8,9 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +2,2 +2,2 +8,7 +1,1 +1,1 +2,2 +2,3 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +6,8 +1,1 +1,1 +1,1 +2,2 +1,1 +3,3 +2,2 +2,2 +6,6 +2,2 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +6,6 +2,2 +3,3 +1,1 +2,2 +8,8 +1,1 +2,2 +4,4 +1,1 +1,1 +3,3 +2,2 +1,1 +5,6 +8,9 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +5,6 +2,2 +1,1 +1,1 +1,1 +6,7 +2,2 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +5,5 +1,1 +4,3 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +6,6 +1,1 +1,1 +4,4 +6,6 +1,1 +2,2 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +7,6 +4,5 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +1,1 +7,7 +1,1 +6,5 +3,3 +2,2 +6,6 +3,3 +1,1 +1,1 +4,4 +2,2 +1,1 +1,1 +5,5 +7,6 +1,1 +1,1 +3,3 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +3,4 +1,1 +5,5 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,4 +5,5 +2,2 +4,5 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +8,8 +1,1 +7,7 +1,1 +1,1 +1,1 +7,8 +5,5 +1,1 +7,6 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +5,5 +1,1 +4,4 +1,1 +2,2 +3,3 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +5,5 +5,5 +6,6 +2,2 +1,1 +1,1 +1,1 +1,1 +6,7 +2,2 +2,2 +3,3 +1,1 +1,1 +1,1 +1,1 +10,10 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,4 +1,1 +1,1 +11,10 +1,1 +1,1 +1,1 +7,7 +9,9 +1,1 +1,1 +2,2 +1,1 +1,1 +2,2 +2,2 +1,1 +2,2 +3,3 +4,4 +1,1 +7,7 +1,1 +1,1 +3,3 +9,11 +3,3 +9,10 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +6,6 +1,1 +12,9 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +6,6 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +4,5 +1,1 +1,1 +2,2 +1,1 +3,3 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +4,3 +1,1 +1,1 +1,1 +5,5 +1,1 +7,8 +8,7 +4,5 +1,1 +2,2 +7,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +4,4 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,7 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +5,6 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +10,10 +2,2 +8,9 +1,1 +8,6 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +2,2 +6,7 +7,8 +1,1 +7,7 +3,4 +3,3 +7,6 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +2,2 +4,4 +1,1 +1,1 +1,1 +1,1 +7,8 +5,5 +3,3 +1,1 +6,6 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +6,6 +8,8 +4,4 +10,11 +1,1 +5,4 +7,8 +3,3 +1,1 +1,1 +1,1 +3,3 +3,2 +1,1 +4,4 +4,4 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +4,4 +4,4 +1,1 +1,1 +1,1 +1,1 +4,3 +5,5 +1,1 +5,7 +9,10 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +6,6 +9,8 +3,3 +1,1 +6,7 +4,4 +6,6 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +8,8 +8,8 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +5,5 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +4,4 +1,1 +4,4 +1,1 +3,3 +1,1 +1,1 +1,1 +7,9 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +2,2 +6,6 +1,1 +8,9 +1,1 +2,2 +1,1 +9,10 +3,3 +1,1 +1,1 +2,2 +8,8 +8,8 +1,1 +5,6 +1,1 +8,8 +1,1 +1,1 +2,2 +1,1 +2,2 +1,1 +1,1 +1,1 +7,7 +2,2 +5,5 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +8,8 +1,1 +3,3 +6,6 +4,3 +1,1 +1,1 +2,2 +1,1 +2,2 +1,1 +1,1 +8,8 +8,8 +2,2 +4,4 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +4,4 +6,6 +2,2 +5,4 +4,4 +1,1 +1,1 +10,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +4,5 +2,2 +8,8 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +10,10 +9,10 +1,1 +1,1 +2,2 +1,1 +6,6 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +5,4 +1,1 +9,8 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,8 +2,2 +1,1 +7,9 +5,4 +1,1 +10,9 +1,1 +1,1 +1,1 +4,4 +5,5 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +3,3 +1,1 +8,9 +1,1 +3,3 +1,1 +1,1 +11,10 +3,3 +1,1 +3,3 +7,7 +1,1 +4,4 +4,5 +2,2 +1,1 +5,6 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +1,1 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +5,4 +1,1 +1,1 +7,8 +1,1 +1,1 +1,1 +1,1 +8,7 +4,4 +1,1 +1,1 +1,1 +1,1 +5,5 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +6,6 +5,4 +2,2 +5,6 +1,1 +1,1 +1,1 +3,3 +9,9 +7,6 +7,7 +6,6 +1,1 +1,1 +1,1 +9,10 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +2,2 +1,1 +3,3 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +9,10 +1,1 +6,6 +1,1 +1,1 +1,1 +7,6 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +5,7 +4,4 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +3,2 +10,7 +1,1 +5,5 +1,1 +1,1 +1,1 +5,6 +3,4 +1,1 +8,8 +6,7 +3,3 +8,8 +1,1 +7,7 +1,1 +2,2 +1,1 +3,3 +7,7 +1,1 +8,9 +7,7 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +1,1 +6,6 +1,1 +8,6 +9,9 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +4,4 +2,3 +1,1 +1,1 +11,10 +1,1 +2,2 +1,1 +5,5 +3,3 +4,4 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +4,6 +2,2 +1,1 +1,1 +1,1 +9,11 +1,1 +1,1 +7,9 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +9,11 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +7,6 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +3,2 +1,1 +1,1 +6,5 +1,1 +8,9 +4,4 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +6,6 +2,2 +6,6 +3,3 +5,5 +1,1 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +5,5 +1,1 +4,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,6 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +2,2 +2,2 +3,3 +1,1 +1,1 +1,1 +1,1 +1,1 +3,3 +3,3 +1,1 +1,1 +4,5 +4,4 +1,1 +2,2 +6,6 +1,1 +1,1 +3,2 +1,1 +4,4 +7,7 +1,1 +7,7 +1,1 +1,1 +1,1 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +2,2 +1,1 +4,4 +1,1 +1,1 +1,1 +1,1 +3,3 +1,1 +1,1 +11,11 +2,2 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +1,1 +1,1 +1,1 +3,3 +3,2 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +5,4 +9,8 +1,1 +10,15 +1,1 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +8,7 +1,1 +2,2 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +3,3 +2,2 +1,1 +4,3 +1,1 +4,5 +1,1 +4,4 +4,4 +2,2 +1,1 +1,1 +5,5 +1,1 +10,10 +1,1 +4,5 +1,1 +6,6 +2,2 +1,1 +6,6 +1,1 +1,1 +1,1 +1,1 +1,1 +6,5 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +3,2 +1,1 +1,1 +5,5 +1,1 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +1,1 +4,4 +1,1 +1,1 +1,1 +8,8 +1,1 +1,1 +1,1 +9,8 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +8,9 +1,1 +1,1 +1,1 +6,6 +1,1 +1,1 +1,1 +3,3 +6,6 +2,2 +1,1 +1,1 +4,3 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +8,7 +8,8 +1,1 +4,5 +5,5 +1,1 +1,1 +1,1 +1,1 +1,1 +1,1 +7,7 +2,2 +2,2 +1,1 +1,1 +1,1 +1,1 +1,1 +2,2 +3,3 +1,1 +6,6 +7,7 +1,1 +1,1 +1,1 +8,8 +2,2 +2,2 +1,1 +1,1 +5,5 +5,4 +1,1 +1,1 +4,4 +1,1 +1,1 +1,1 +8,10 +1,1 +1,1 +9,9 +1,1 +1,1 -- GitLab