From 0a92cfaf7b6b65dd4645fc6fa4b1551d3d17254b Mon Sep 17 00:00:00 2001 From: Ge Yan Date: Fri, 23 Sep 2011 16:57:06 -0400 Subject: [PATCH 1/5] good. --- slides/4_Methods.ppt | Bin 897536 -> 900096 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/slides/4_Methods.ppt b/slides/4_Methods.ppt index 5bf7244bb3fa544a5d06f70f3fd2bd7582520ae0..15cb4cd927b587eeaaa8e30062e5681923552e01 100755 GIT binary patch delta 278 zcmZp8V%G4(Y=Qyr4K@Y_Mg|}dU|_g4(bk#qW@BS(BV%hLQ)?r0Ya>f*BWr6TTWceG zYa>T%BWG(PS8F48Ya`FrM&A03(|UMwI6tgV5J;~)!+2+UX%Fvt9u}ZktU&x92&NY% zFo{l2?d3I{UXsA1#wa!2aT2e}^o9f`VKz08r3~But>+bE6a*;-fqxJRsMByGul{t0 zjl3Mw6E^a)2;K%d^Dk5ZNYU|$js44}@G?!C#Out<$PBd)q#JDK_S8wdvl&$x7{2jK n0p&!1IR3!I$IRN?3``7Pm_h2@Q#n8+Ln=sv^md0n-UEyPQDALu delta 70 zcmZqpVb<`(Y=QyrQ8oq!Mg|}dU|={o(bk#qdShd2BV%hLQ)?r0Ya>f*BWr6TTWceG YYa>T%BWG(PS8F48Ya`FrM&A0303ogyuK)l5 From 58dcba3d938f80dac313ab80ce15beba87d82a87 Mon Sep 17 00:00:00 2001 From: Ge Yan Date: Sun, 9 Oct 2011 21:49:41 -0400 Subject: [PATCH 2/5] my implementation of PD game --- week2-3/PDGame/src - Ge/agent/Agent.java | 29 ++ .../PDGame/src - Ge/agent/Experiences.java | 40 +++ week2-3/PDGame/src - Ge/agent/Logics.java | 305 ++++++++++++++++++ .../src - Ge/agent/Logics_Interface.java | 9 + week2-3/PDGame/src - Ge/agent/Operations.java | 10 + week2-3/PDGame/src - Ge/board/Board.java | 96 ++++++ .../src - Ge/board/CompetitionSequence.java | 65 ++++ week2-3/PDGame/src - Ge/board/History.java | 76 +++++ .../candidates/PrepareCandidates.java | 95 ++++++ .../PDGame/src - Ge/world/RunTheWorld.java | 37 +++ 10 files changed, 762 insertions(+) create mode 100644 week2-3/PDGame/src - Ge/agent/Agent.java create mode 100644 week2-3/PDGame/src - Ge/agent/Experiences.java create mode 100644 week2-3/PDGame/src - Ge/agent/Logics.java create mode 100644 week2-3/PDGame/src - Ge/agent/Logics_Interface.java create mode 100644 week2-3/PDGame/src - Ge/agent/Operations.java create mode 100644 week2-3/PDGame/src - Ge/board/Board.java create mode 100644 week2-3/PDGame/src - Ge/board/CompetitionSequence.java create mode 100644 week2-3/PDGame/src - Ge/board/History.java create mode 100644 week2-3/PDGame/src - Ge/candidates/PrepareCandidates.java create mode 100644 week2-3/PDGame/src - Ge/world/RunTheWorld.java diff --git a/week2-3/PDGame/src - Ge/agent/Agent.java b/week2-3/PDGame/src - Ge/agent/Agent.java new file mode 100644 index 0000000..04e46af --- /dev/null +++ b/week2-3/PDGame/src - Ge/agent/Agent.java @@ -0,0 +1,29 @@ + +package agent; + +public class Agent { + public Logics l=new Logics(); + public Operations o=new Operations(); + public Experiences e=new Experiences(); + String ID="default ID"; + + public String getID() { + return ID; + } + + public void setID(String ID) { + this.ID = ID; + } + public void notifyPlayers(Agent player,Agent adversary,int playerOperation,int adversaryOperation, + int playerPenalty,int adversaryPenalty) throws InterruptedException{ + e.notifiedExperience(adversary, playerOperation, adversaryOperation, playerPenalty, adversaryPenalty); + } + + public void resetExperience(){ + e=new Experiences(); + } + + public void resetLogics(){ + l=new Logics(); + } +} diff --git a/week2-3/PDGame/src - Ge/agent/Experiences.java b/week2-3/PDGame/src - Ge/agent/Experiences.java new file mode 100644 index 0000000..cb13b73 --- /dev/null +++ b/week2-3/PDGame/src - Ge/agent/Experiences.java @@ -0,0 +1,40 @@ + +package agent; + +import java.util.ArrayList; + +public class Experiences { + public ArrayList getAdversaryAL() { + return adversaryAL; + } + + public ArrayList getAdversaryOperationAL() { + return adversaryOperationAL; + } + + public ArrayList getAdversaryPenaltyAL() { + return adversaryPenaltyAL; + } + + public ArrayList getPlayerOperationAL() { + return playerOperationAL; + } + + public ArrayList getPlayerPenaltyAL() { + return playerPenaltyAL; + } + ArrayList adversaryAL=new ArrayList(); + ArrayList playerOperationAL=new ArrayList(); + ArrayList adversaryOperationAL=new ArrayList(); + ArrayList playerPenaltyAL=new ArrayList(); + ArrayList adversaryPenaltyAL=new ArrayList(); + + void notifiedExperience(Agent adversary,int playerOperation,int adversaryOperation, + Integer playerPenalty, Integer adversaryPenalty){ + adversaryAL.add(adversary.getID()); + playerOperationAL.add(playerOperation); + adversaryOperationAL.add(adversaryOperation); + playerPenaltyAL.add(playerPenalty); + adversaryPenaltyAL.add(adversaryPenalty); + } +} diff --git a/week2-3/PDGame/src - Ge/agent/Logics.java b/week2-3/PDGame/src - Ge/agent/Logics.java new file mode 100644 index 0000000..0a11944 --- /dev/null +++ b/week2-3/PDGame/src - Ge/agent/Logics.java @@ -0,0 +1,305 @@ + +package agent; + +import force.Analysis; +import force.Help; +import force.Help.Report; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.Iterator; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class Logics { + Logics_Interface curStrategy = new Logic0(); + + public Logics_Interface getCurStrategy() { + return curStrategy; + } + + public void useStrategy(Logics_Interface a) { + curStrategy = a; + } + + public int makeDecision(Agent anAgent) throws IOException { + int returnValue = curStrategy.logic(anAgent); + + return returnValue; + } + + class Logic0 implements Logics_Interface { + String nameOfLogic = "default"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + return -1; + } + } + + public class Logic1 implements Logics_Interface { + String nameOfLogic = "always cooperative"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + return 0; + } + } + + public class Logic2 implements Logics_Interface { + String nameOfLogic = "always antagonistic"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + return 1; + } + } + + public class Logic3 implements Logics_Interface { + String nameOfLogic = "random"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + float value = (float) Math.random(); + if (value > 0.5) { + return 1; + } else { + return 0; + } + } + } + + public class Logic4 implements Logics_Interface { + String nameOfLogic = "tit for tat"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + if (anAgent.e.getAdversaryOperationAL().size() > 0) { + return anAgent.e.getAdversaryOperationAL().get( + anAgent.e.getAdversaryOperationAL().size() - 1); + } + return 1; + } + } + + public class Logic5 implements Logics_Interface { + String nameOfLogic = "human"; + + public String getNameOfLogic() { + return nameOfLogic; + } + + public int logic(Agent anAgent) { + String playerValue; + BufferedReader br = new BufferedReader(new InputStreamReader( + System.in)); + + System.out + .println("please input your decision(0 meanse cooperative, 1 means defective)"); + + try { + playerValue = br.readLine(); + int pv = Integer.valueOf(playerValue); + + while (pv != 0 && pv != 1) { + System.out.println("try again"); + playerValue = br.readLine(); + pv = Integer.valueOf(playerValue); + } + return pv; + + } catch (IOException ex) { + Logger.getLogger(Logics.class.getName()).log(Level.SEVERE, + null, ex); + } + return 0; + } + } + + public class Logic6 implements Logics_Interface { + String nameOfLogic = "G"; + int currentTentativeOperation = 0; + + public String getNameOfLogic() { + return nameOfLogic; + } + + int trialResponsesForLearningTheOpponent() { + if (timesOfAskingForLogic == 0) { + return currentTentativeOperation; + } else if (statistics.get(timesOfAskingForLogic - 1).get(0) == statistics + .get(timesOfAskingForLogic).get(0)) { + changeOperation(); + } + return currentTentativeOperation; + } + + int statisticsSize = 0; + int timesOfAskingForLogic = 0; + boolean firstTimeRun = true; + boolean isResponseDataComplete = false; + boolean isEvaluated = false; + ArrayList preJudgement = new ArrayList(); + Agent meIdentity=null; + + public int logic(Agent anAgent) throws IOException { + meIdentity=anAgent; + + if (firstTimeRun == true) { + tricks(anAgent, 1, 3, 1, 5); + firstTimeRun = false; + } + + if (timesOfAskingForLogic < statisticsSize) { + int aTemp = 0; + aTemp = trialResponsesForLearningTheOpponent(); + timesOfAskingForLogic++; + return aTemp; + } else { + if (isResponseDataComplete == false) { + for (int i = 0; i < statistics.size(); i++) { + statistics.get(i).add( + anAgent.e.getPlayerPenaltyAL().get(i)-anAgent.e.getAdversaryPenaltyAL() + .get(i) + ); + } + isResponseDataComplete = true; + reportStatistics(); + } + + if (isEvaluated == false) { + preJudgement = evaluation(statistics); + isEvaluated = true; + } + + return judgement(anAgent, preJudgement); + } + } + + void reportStatistics() throws IOException{ + if(isResponseDataComplete==true){ + Report r=new Help().new Report( + meIdentity.getID()+"_"+meIdentity.e.getAdversaryAL().get(0)+".txt"); + r.reportI2Horizontal(statistics); + } + } + + void changeOperation() { + if (currentTentativeOperation == 0) { + currentTentativeOperation= 1; + } else { + currentTentativeOperation =0; + } + } + + ArrayList> statistics = new ArrayList>(); + + public ArrayList> getStatistics() { + return statistics; + } + + int bestChiangingTimes = 0, bestRepeatingTimes = 0, + currentRepeatingTimes = 0; + + void trick(Agent anAgent, int changingTimes, int repeatTimes) { + for (int i = 1; i <= changingTimes; i++) { + for (int j = 1; j <= repeatTimes; j++) { + ArrayList temp = new ArrayList(); + temp.add(i); + temp.add(j); + statistics.add(temp); + statisticsSize++; + } + } + } + + void tricks(Agent anAgent, int changingTimesMin, int changingTimesMax, + int repeatTimesMin, int repeatTimesMax) { + for (int k = changingTimesMin; k < changingTimesMax; k++) { + for (int l = repeatTimesMin; l < repeatTimesMax; l++) { + trick(anAgent, k, l); + } + } + } + + ArrayList evaluation(ArrayList> fourFor) { + Report r = new Help().new Report("validation.txt"); + ArrayList> alalI = fourFor; + for (int ii = 0; ii < alalI.size(); ii++) { + try { + r.reportI1(alalI.get(ii)); + r.report("****"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + ArrayList> promisingTactic = new ArrayList>(); + + for (int i = 0; i < fourFor.size(); i++) { + ArrayList arrayList = fourFor.get(i); + + if (arrayList.get(2) <= 0) { + promisingTactic.add(Help + .integerArraylistTodoubleArraylist(arrayList)); + } + } + + if (promisingTactic.size() > 0) { + ArrayList changeTimes = new ArrayList(); + ArrayList repeatTimes = new ArrayList(); + for (int i = 0; i < promisingTactic.size(); i++) { + changeTimes.add(promisingTactic.get(i).get(0)); + repeatTimes.add(promisingTactic.get(i).get(1)); + } + + ArrayList> eval= + new Help().doubleMatrixToIntegerMatrix( + new Analysis().new GeneralAnalysis().new OccurrenceCounting().oneDimesionOccurenceCounting(changeTimes)); + + ArrayList returnEval=new ArrayList(); + returnEval.add(eval.get(0).get(eval.size()-2)); + returnEval.add(eval.get(1).get(eval.size()-2)); + return returnEval; + } else { + return new ArrayList(); + } + } + + private int judgement(Agent agent, ArrayList evaluation) { + if (evaluation.size() > 0) { + bestChiangingTimes = evaluation.get(0); + bestRepeatingTimes = evaluation.get(1); + if (currentRepeatingTimes < bestRepeatingTimes) { + currentRepeatingTimes++; + return currentTentativeOperation; + } else { + currentRepeatingTimes = 0; + changeOperation(); + return currentTentativeOperation; + } + } else { + return new Logic3().logic(agent); + } + } + } +} diff --git a/week2-3/PDGame/src - Ge/agent/Logics_Interface.java b/week2-3/PDGame/src - Ge/agent/Logics_Interface.java new file mode 100644 index 0000000..f87a9d9 --- /dev/null +++ b/week2-3/PDGame/src - Ge/agent/Logics_Interface.java @@ -0,0 +1,9 @@ + +package agent; + +import java.io.IOException; + +public interface Logics_Interface { + int logic(Agent anAgent) throws IOException; + String getNameOfLogic(); +} diff --git a/week2-3/PDGame/src - Ge/agent/Operations.java b/week2-3/PDGame/src - Ge/agent/Operations.java new file mode 100644 index 0000000..5f20267 --- /dev/null +++ b/week2-3/PDGame/src - Ge/agent/Operations.java @@ -0,0 +1,10 @@ + +package agent; + +public class Operations { + public int operate(int aDecision){ + if(aDecision==0){return 0;} + if(aDecision==1){return 1;} + else return 0; + } +} diff --git a/week2-3/PDGame/src - Ge/board/Board.java b/week2-3/PDGame/src - Ge/board/Board.java new file mode 100644 index 0000000..b8b27cf --- /dev/null +++ b/week2-3/PDGame/src - Ge/board/Board.java @@ -0,0 +1,96 @@ + +package board; + +import agent.Agent; +import agent.Logics; +import agent.Logics.Logic6; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; + +import force.Help; +import force.Help.Report; + +public class Board { + public void setNumberOfRounds() throws IllegalArgumentException, + IOException { + System.out.println("\nplease enter number of rounds to play:"); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int rounds = new Integer(br.readLine()); + + numberOfRounds = rounds; + } + + int numberOfRounds = 0; + + public void setNumberOfRounds(int numberOfRounds) { + this.numberOfRounds = numberOfRounds; + } + + void interaction(Agent a, Agent b) throws InterruptedException, IOException { + int aa = 0, bb = 0; + aa = a.o.operate(a.l.makeDecision(a)); + bb = b.o.operate(b.l.makeDecision(b)); + + ArrayList c = new ArrayList(); + ArrayList r = new ArrayList(); + ArrayList p = new ArrayList(); + + p.add(aa); + p.add(bb); + h.getProcess().add(p); + + if (aa == 0 && bb == 0) { + r.add(1); + r.add(1); + r.add(2); + c.add(a.getID()); + c.add(b.getID()); + } + if (aa == 0 && bb == 1) { + r.add(0); + r.add(5); + r.add(5); + c.add(a.getID()); + c.add(b.getID()); + } + if (aa == 1 && bb == 0) { + r.add(5); + r.add(0); + r.add(5); + c.add(a.getID()); + c.add(b.getID()); + } + if (aa == 1 && bb == 1) { + r.add(3); + r.add(3); + r.add(6); + c.add(a.getID()); + c.add(b.getID()); + } + + a.notifyPlayers(a, b, aa, bb, r.get(0), r.get(1)); + + b.notifyPlayers(b, a, bb, aa, r.get(1), r.get(0)); + + h.getResults().add(r); + h.getCompetitors().add(c); + } + + public void play(Agent a, Agent b) throws InterruptedException, IOException { + a.resetExperience(); + b.resetExperience(); + + for (int i = 1; i <= numberOfRounds; i++) { + interaction(a, b); + } + } + + History h = new History(); + + public History getH() { + return h; + } +} diff --git a/week2-3/PDGame/src - Ge/board/CompetitionSequence.java b/week2-3/PDGame/src - Ge/board/CompetitionSequence.java new file mode 100644 index 0000000..ba0193d --- /dev/null +++ b/week2-3/PDGame/src - Ge/board/CompetitionSequence.java @@ -0,0 +1,65 @@ +package board; + +import java.io.IOException; +import java.util.ArrayList; + +import force.Help; +import force.Help.Report; + +import agent.Agent; +import agent.Logics; +import agent.Logics.Logic6; + +public class CompetitionSequence { + ArrayList candidates; + + public CompetitionSequence(ArrayList candidatesList) { + candidates=candidatesList; + + } + + public class PlayWithEveryOne{ + public void cs_PlayWithEveryOne(Board aBoard) throws IOException{ + + for (int i = 0; i < candidates.size()-1; i++) { + for (int j = i+1; j < candidates.size(); j++) { + try { + + + + + + + if(candidates.get(i).l.getCurStrategy().getNameOfLogic()=="G"){ + candidates.get(i).resetLogics(); + candidates.get(i).l.useStrategy(new Logics().new Logic6()); + + + + + } + if(candidates.get(j).l.getCurStrategy().getNameOfLogic()=="G"){ + candidates.get(j).resetLogics(); + candidates.get(j).l.useStrategy(new Logics().new Logic6()); + + + + + + } + + aBoard.play(candidates.get(i), candidates.get(j)); + + + + } catch (InterruptedException e) { + + e.printStackTrace(); + } + } + } + } + } + + +} diff --git a/week2-3/PDGame/src - Ge/board/History.java b/week2-3/PDGame/src - Ge/board/History.java new file mode 100644 index 0000000..cc487b4 --- /dev/null +++ b/week2-3/PDGame/src - Ge/board/History.java @@ -0,0 +1,76 @@ + +package board; + +import agent.Agent; + +import java.io.IOException; +import java.util.ArrayList; + +import force.Help; +import force.Help.Report; + +public class History { + ArrayList> competitors = new ArrayList(); + public ArrayList> getCompetitors() { + return competitors; + } + ArrayList< ArrayList> process=new ArrayList(); + + public ArrayList> getProcess() { + return process; + } + + public void setProcess(ArrayList> process) { + this.process = process; + } + ArrayList< ArrayList> results=new ArrayList(); + + public ArrayList> getResults() { + return results; + } + + public void setResults(ArrayList> results) { + this.results = results; + } + + public void reportDetails() throws IOException{ + Report r=new Help().new Report("prisoners' dilemma.txt"); + r.reportHorizontal("\n******************************\n played " + results.size() + " rounds\nthe game is ended"); + r.reportHorizontal("\n*****************for the game process\n0 means cooperative,1 means adversary"); + r.report("\n*****************details*****************\n"+ + "my move, opponent's move, my penalty, opponent's penalty, collective penalty"); + for (int i = 0; i < results.size(); i++) { + r.reportI1Horizontal(process.get(i)); + r.reportI1Horizontal(results.get(i)); + r.reportS1Horizontal(competitors.get(i)); + r.report("\n"); + } + } + + public void reportResultsSummary() throws IOException{ + ArrayList mark=new ArrayList(); + ArrayList first=new ArrayList(), second=new ArrayList(); + + for (int i = 0; i < results.size(); i++) { + String concantenatedMeasure=competitors.get(i).get(0)+","+competitors.get(i).get(1)+":"; + if(mark.contains(concantenatedMeasure)){ + int p=mark.indexOf(concantenatedMeasure); + first.set(p, first.get(p)+results.get(i).get(0)) ; + second.set(p, second.get(p)+ results.get(i).get(1)) ; + } + else{ + mark.add(concantenatedMeasure); + first.add(new Integer( results.get(i).get(0))); + second.add(new Integer( results.get(i).get(1))); + } + } + + Report r=new Help().new Report("prisoners' dilemma summary.txt"); + for (int i = 0; i < mark.size(); i++) { + r.reportHorizontal(mark.get(i)); + r.reportHorizontal(String.valueOf(first.get(i))); + r.reportHorizontal(String.valueOf(second.get(i))); + r.report("\n"); + } + } +} diff --git a/week2-3/PDGame/src - Ge/candidates/PrepareCandidates.java b/week2-3/PDGame/src - Ge/candidates/PrepareCandidates.java new file mode 100644 index 0000000..3eab215 --- /dev/null +++ b/week2-3/PDGame/src - Ge/candidates/PrepareCandidates.java @@ -0,0 +1,95 @@ +package candidates; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; + +import force.Help; +import force.Help.Report; + +import agent.Agent; +import agent.Logics; +import agent.Logics_Interface; +import agent.Logics.Logic3; +import agent.Logics.Logic6; + +public class PrepareCandidates { + ArrayList preparedCandidates = new ArrayList(); + + public ArrayList getPreparedCandidates() { + return preparedCandidates; + } + + public void reportCandidates() throws IOException{ + Report r=new Help().new Report("candidates listing.txt"); + + for (int i = 0; i < preparedCandidates.size(); i++) { + r.report("candidate number:"+i+" ID:"+preparedCandidates.get(i).getID()+ + " strategy code:"+ preparedCandidates.get(i).l.getCurStrategy().getNameOfLogic()); + + } + } + + public void prepareCandidatesTeam1() throws IOException { + + String IDa, IDb,IDc,IDd,IDe; + System.out + .println("The Game Starts:\nplease enter the ID for agent A:"); + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + IDa = br.readLine(); + System.out.println("\nplease enter the ID for agent B:"); + IDb = br.readLine(); + System.out.println("\nplease enter the ID for agent C:"); + IDc = br.readLine(); + System.out.println("\nplease enter the ID for agent D:"); + IDd = br.readLine(); + System.out.println("\nplease enter the ID for agent E:"); + IDe = br.readLine(); + + Agent a = new Agent(); + Agent b = new Agent(); + Agent c = new Agent(); + Agent d = new Agent(); + Agent e = new Agent(); + a.setID(IDa); + b.setID(IDb); + c.setID(IDc); + d.setID(IDd); + e.setID(IDe); + + Logics_Interface aLogc = new Logics().new Logic3(); + Logics_Interface bLogc = new Logics().new Logic2(); + Logics_Interface cLogc = new Logics().new Logic1(); + Logics_Interface dLogc = new Logics().new Logic4(); + Logics_Interface eLogc = new Logics().new Logic6(); + + a.l.useStrategy(aLogc); + b.l.useStrategy(bLogc); + c.l.useStrategy(cLogc); + d.l.useStrategy(dLogc); + e.l.useStrategy(eLogc); + + + + + System.out.println("*****strategy******"); + System.out.println("player " + a.getID() + " using strategy:" + + aLogc.getNameOfLogic()); + System.out.println("player " + b.getID() + " using strategy:" + + bLogc.getNameOfLogic()); + System.out.println("player " + c.getID() + " using strategy:" + + cLogc.getNameOfLogic()); + System.out.println("player " + d.getID() + " using strategy:" + + dLogc.getNameOfLogic()); + System.out.println("player " + e.getID() + " using strategy:" + + eLogc.getNameOfLogic()); + + preparedCandidates.add(a); + preparedCandidates.add(b); + preparedCandidates.add(c); + preparedCandidates.add(d); + preparedCandidates.add(e); + + } +} diff --git a/week2-3/PDGame/src - Ge/world/RunTheWorld.java b/week2-3/PDGame/src - Ge/world/RunTheWorld.java new file mode 100644 index 0000000..17322c9 --- /dev/null +++ b/week2-3/PDGame/src - Ge/world/RunTheWorld.java @@ -0,0 +1,37 @@ + +package world; + +import agent.Agent; +import agent.Logics; +import agent.Logics.Logic3; +import agent.Logics_Interface; +import board.Board; +import board.CompetitionSequence; +import board.CompetitionSequence.PlayWithEveryOne; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import candidates.PrepareCandidates; + +public class RunTheWorld { + public static void main(String[] args) throws IOException, + InterruptedException { + PrepareCandidates pc = new PrepareCandidates(); + pc.prepareCandidatesTeam1(); + + CompetitionSequence cs = new CompetitionSequence( + pc.getPreparedCandidates()); + PlayWithEveryOne pwe = cs.new PlayWithEveryOne(); + + Board board = new Board(); + + board.setNumberOfRounds(); + + pwe.cs_PlayWithEveryOne(board); + + board.getH().reportResultsSummary(); + board.getH().reportDetails(); + pc.reportCandidates(); + } +} From af591221df4981ef587df68eea5a417b6df18b32 Mon Sep 17 00:00:00 2001 From: Ge Yan Date: Sun, 9 Oct 2011 22:34:14 -0400 Subject: [PATCH 3/5] updated with the running results. --- .../PD game summary and instructions.xlsx | Bin 0 -> 10150 bytes .../candidates listing.txt | 5 + .../prisoners' dilemma summary.txt | 20 + .../prisoners' dilemma.txt | 11108 ++++++++++++++++ 4 files changed, 11133 insertions(+) create mode 100644 week2-3/PDGame/src - Ge/results for PD game/PD game summary and instructions.xlsx create mode 100644 week2-3/PDGame/src - Ge/results for PD game/candidates listing.txt create mode 100644 week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma summary.txt create mode 100644 week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma.txt diff --git a/week2-3/PDGame/src - Ge/results for PD game/PD game summary and instructions.xlsx b/week2-3/PDGame/src - Ge/results for PD game/PD game summary and instructions.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6af9e4cff78e72dd47505c35da5c6cb981f29e9b GIT binary patch literal 10150 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 UbmPad9&|t}%+iiC{P_0&0Dn7x00000 literal 0 HcmV?d00001 diff --git a/week2-3/PDGame/src - Ge/results for PD game/candidates listing.txt b/week2-3/PDGame/src - Ge/results for PD game/candidates listing.txt new file mode 100644 index 0000000..2a397ad --- /dev/null +++ b/week2-3/PDGame/src - Ge/results for PD game/candidates listing.txt @@ -0,0 +1,5 @@ +candidate number:0 ID:a strategy code:random +candidate number:1 ID:b strategy code:always antagonistic +candidate number:2 ID:c strategy code:always cooperative +candidate number:3 ID:d strategy code:tit for tat +candidate number:4 ID:e strategy code:G diff --git a/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma summary.txt b/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma summary.txt new file mode 100644 index 0000000..64b757e --- /dev/null +++ b/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma summary.txt @@ -0,0 +1,20 @@ +a,b:,807,2237, + +a,c:,1627,287, + +a,d:,1190,1195, + +a,e:,1282,1222, + +b,c:,2775,0, + +b,d:,1665,1665, + +b,e:,2243,798, + +c,d:,554,559, + +c,e:,280,1655, + +d,e:,1138,1138, + diff --git a/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma.txt b/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma.txt new file mode 100644 index 0000000..d0f97c7 --- /dev/null +++ b/week2-3/PDGame/src - Ge/results for PD game/prisoners' dilemma.txt @@ -0,0 +1,11108 @@ + +****************************** + played 5550 rounds +the game is ended, +*****************for the game process +0 means cooperative,1 means adversary, +*****************details***************** +my move, opponent's move, my penalty, opponent's penalty, collective penalty +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +0,1,0,5,5,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,1,3,3,6,a,b, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +0,0,1,1,2,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +1,0,5,0,5,a,c, + +0,0,1,1,2,a,c, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +1,1,3,3,6,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +1,0,5,0,5,a,d, + +0,1,0,5,5,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,d, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +1,0,5,0,5,a,e, + +1,1,3,3,6,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,1,3,3,6,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +1,1,3,3,6,a,e, + +0,1,0,5,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +1,0,5,0,5,a,e, + +0,0,1,1,2,a,e, + +0,0,1,1,2,a,e, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,0,5,0,5,b,c, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,1,3,3,6,b,d, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,1,3,3,6,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,0,5,0,5,b,e, + +1,1,3,3,6,b,e, + +0,1,0,5,5,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,d, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,0,1,1,2,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +0,1,0,5,5,c,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,1,0,5,5,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,0,5,0,5,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,0,1,1,2,d,e, + +0,1,0,5,5,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + +1,1,3,3,6,d,e, + From 365756f85143f2d26a5d45ecd5305c4ca906df26 Mon Sep 17 00:00:00 2001 From: Ge Yan Date: Thu, 20 Oct 2011 01:29:11 -0400 Subject: [PATCH 4/5] clustering added --- Ge Yan_clustering for CSS605/Clustering.java | 344 ++++++++++++++++++ .../Test_Clustering.java | 46 +++ .../clustering results.txt | 94 +++++ Ge Yan_clustering for CSS605/raw data.txt | 10 + Ge Yan_clustering for CSS605/summary.xlsx | Bin 0 -> 24203 bytes 5 files changed, 494 insertions(+) create mode 100644 Ge Yan_clustering for CSS605/Clustering.java create mode 100644 Ge Yan_clustering for CSS605/Test_Clustering.java create mode 100644 Ge Yan_clustering for CSS605/clustering results.txt create mode 100644 Ge Yan_clustering for CSS605/raw data.txt create mode 100644 Ge Yan_clustering for CSS605/summary.xlsx diff --git a/Ge Yan_clustering for CSS605/Clustering.java b/Ge Yan_clustering for CSS605/Clustering.java new file mode 100644 index 0000000..ffcfac4 --- /dev/null +++ b/Ge Yan_clustering for CSS605/Clustering.java @@ -0,0 +1,344 @@ +package force; + +import java.awt.geom.Point2D; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; + +import force.Analysis.GeneralAnalysis.OccurrenceCounting; +import force.Help.ArraylistSort; +import force.Help.Report; + +public class Clustering { + class ProposedGroups { + public Point2D getGroupCenter() { + return groupCenter; + } + + public void setGroupCenter(Point2D groupCenter) { + this.groupCenter = groupCenter; + } + + public void setaGroup(ArrayList aGroup) { + this.aGroup = aGroup; + } + + public ArrayList getaGroup() { + return aGroup; + } + + String groupName; + double aggregateEntrope; + ArrayList aGroup = new ArrayList<>(); + Point2D groupCenter; + ArrayList aGroupStaistic = new ArrayList<>(); + } + + public class GroupingRequirements { + public double getTotalCoverage() { + return totalCoverage; + } + + String groupingName; + double totalCoverage; + double eachGroupMemberNumber; + + public double getEachGroupMemberNumber() { + return eachGroupMemberNumber; + } + + public GroupingRequirements(String groupingName, double totalCoverage, + int eachGroupMemberNumber) { + super(); + this.groupingName = groupingName; + this.totalCoverage = totalCoverage; + this.eachGroupMemberNumber = eachGroupMemberNumber; + } + + public String getGroupingName() { + return groupingName; + } + + public void setGroupingName(String groupingName) { + this.groupingName = groupingName; + } + } + + public class RawData { + ArrayList rawData = new ArrayList<>(); + String rawDataName; + + public RawData(ArrayList xCoordinate, + ArrayList yCoordinate, String rawDataName) { + this.rawDataName = rawDataName; + ArrayList p2d = new ArrayList<>(); + for (int i = 0; i < xCoordinate.size(); i++) { + Point2D aPoint = new Point2D.Double(xCoordinate.get(i), + yCoordinate.get(i)); + p2d.add(aPoint); + } + rawData = p2d; + } + + public ArrayList getRawData() { + return rawData; + } + + public void setRawData(ArrayList rawData) { + this.rawData = rawData; + } + + public String getRawDataName() { + return rawDataName; + } + + public void setRawDataName(String rawDataName) { + this.rawDataName = rawDataName; + } + + public void reportRawData() throws IOException { + Report r = new Help().new Report("raw data.txt"); + r.report("all 2d points, first line for X, second line for Y\n X: "); + + for (int i = 0; i < rawData.size(); i++) { + r.reportHorizontal(rawData.get(i).getX()); + } + r.report("\n Y: "); + for (int i = 0; i < rawData.size(); i++) { + r.reportHorizontal(rawData.get(i).getY()); + } + } + } + + public class Cluster { + boolean isExpanded = false; + double currentCoverage; + ArraylistSort groupSort = new Help().new ArraylistSort(); + GroupingRequirements clusterGroupingRequirements; + RawData clusterRawData; + ClusteringStatistic clusterClusteringStatistic; + + ArrayList groupList = new ArrayList<>(); + ArrayList tempGroupList = new ArrayList<>(); + ArrayList coveredPoints = new ArrayList<>(); + + ArrayList alpgTotalEntrope = new ArrayList<>(); + + public Cluster(GroupingRequirements gr, RawData rd, + ClusteringStatistic cs) { + clusterClusteringStatistic = cs; + clusterGroupingRequirements = gr; + clusterRawData = rd; + } + + public void doClustering() throws IOException, InterruptedException { + clusterClusteringStatistic.calculateStatistic(clusterRawData); + clusterClusteringStatistic.reportClusteringStatistic(); + clusterClusteringStatistic.reportHowSorted(); + + propseGroup_Fisrt(); + if (ifSatisfied()) { + System.out.println("the first step works."); + Thread.sleep(5111); + return; + } else { + isExpanded = true; + expandTheGroup(); + currentCoverage = (double) coveredPoints.size() + / (double) clusterRawData.getRawData().size(); + System.out.println("the second step works."); + Thread.sleep(5111); + } + } + + public void reportClustering() throws IOException { + Report r = new Help().new Report("clustering results.txt"); + r.report("\n\n*******************\nclustering results are here:"); + r.report("required minimum group member:," + + clusterGroupingRequirements.getEachGroupMemberNumber() + + "\nrequired coverage percentage:," + + clusterGroupingRequirements.getTotalCoverage() + + "\ntotal number of data:," + + clusterRawData.getRawData().size() + + "\ncurrent coverage:," + currentCoverage); + if (isExpanded == true) { + r.report("clustering status:,Expanded clustering"); + } else { + r.report("clustering status:,Non-expanded clustering"); + } + r.report("***************************\n"); + + for (int i = 0; i < groupList.size(); i++) { + r.report("Group number:," + i); + for (Point2D aPoinInGroup : groupList.get(i).getaGroup()) { + r.report("x:," + aPoinInGroup.getX() + " ,Y:," + + aPoinInGroup.getY()); + } + } + } + + void expandTheGroup() { + for (ProposedGroups aPG : tempGroupList) { + for (int i = 0; i < aPG.getaGroup().size(); i++) { + for (ProposedGroups aDeterminedPG : groupList) { + if (aDeterminedPG.getaGroup().contains( + aPG.getaGroup().get(i))) { + for (Point2D aP : aPG.getaGroup()) { + if (coveredPoints.contains(aP) == false) { + aDeterminedPG.getaGroup().add(aP); + coveredPoints.add(aP); + } + } + } + } + } + } + } + + public int coveredPoints() { + int a = 0; + + for (ProposedGroups p : groupList) { + for (Point2D a2Dpoint : p.getaGroup()) { + a++; + } + } + System.out.println("total points covered:" + a); + return a; + } + + private boolean ifSatisfied() throws InterruptedException { + currentCoverage = (double) coveredPoints.size() + / (double) clusterRawData.getRawData().size(); + System.out.println("thrashhold:" + + clusterGroupingRequirements.totalCoverage); + System.out.println("actual percentage:" + currentCoverage); + Thread.sleep(2000); + + if (currentCoverage >= clusterGroupingRequirements.totalCoverage) { + return true; + + } else { + return false; + } + } + + void propseGroup_Fisrt() { + for (int i = 0; i < clusterClusteringStatistic + .getClustringStatistic().size(); i++) { + double totalEntrope = 0; + for (int j = 0; j < clusterGroupingRequirements + .getEachGroupMemberNumber(); j++) { + totalEntrope = totalEntrope + + clusterClusteringStatistic + .getClustringStatistic().get(i).get(j); + } + alpgTotalEntrope.add(totalEntrope); + } + + groupSort.sortArraylistMembers(alpgTotalEntrope); + groupSort.howSorted(); + + for (int i = 0; i < groupSort.getHowSorted().size(); i++) { + ArrayList original = this.clusterClusteringStatistic + .getClustringStatistic().get( + groupSort.getHowSorted().get(i)); + + ArrayList tempP2D = new ArrayList<>(); + int count = 0; + + for (int j = 0; j < clusterGroupingRequirements + .getEachGroupMemberNumber(); j++) { + Point2D aPoint = clusterRawData.getRawData().get( + clusterClusteringStatistic.howSorted.get( + groupSort.getHowSorted().get(i)).get(j)); + + if (coveredPoints.contains(aPoint) == false) { + tempP2D.add(aPoint); + count++; + } + } + + ProposedGroups pg; + + Point2D aGoupCenter = clusterRawData.getRawData().get( + groupSort.getHowSorted().get(i)); + pg = new ProposedGroups(); + pg.setGroupCenter(aGoupCenter); + for (Point2D point2d : tempP2D) { + pg.getaGroup().add(point2d); + } + + if (count == clusterGroupingRequirements + .getEachGroupMemberNumber()) { + for (Point2D onePoint2d : pg.getaGroup()) { + coveredPoints.add(onePoint2d); + } + groupList.add(pg); + } else { + tempGroupList.add(pg); + } + } + } + } + + public class ClusteringStatistic { + RawData rawData; + ArraylistSort als = null; + String clustringStatisticName; + ArrayList> clustringStatistic = new ArrayList<>(); + ArrayList> howSorted = new ArrayList<>(); + + public void reportClusteringStatistic() throws IOException { + Report r = new Help().new Report( + "reportSortedClusteringStatistic.txt"); + r.reportD2(clustringStatistic); + } + + public void reportHowSorted() throws IOException { + Report r = new Help().new Report( + "reportClustringStatisticHowSorted.txt"); + r.reportI2(howSorted); + } + + public void calculateStatistic(RawData rd) throws IOException { + rawData = rd; + + for (int i = 0; i < rd.getRawData().size(); i++) { + Point2D center = rd.getRawData().get(i); + ArrayList distances = new ArrayList<>(); + for (int j = 0; j < rd.getRawData().size(); j++) { + Point2D target = rd.getRawData().get(j); + + double distance = Math.sqrt(Math.pow( + target.getY() - center.getY(), 2) + + Math.pow(target.getX() - center.getX(), 2)); + distances.add(distance); + } + als = new Help().new ArraylistSort(); + als.sortArraylistMembers(distances); + als.howSorted(); + als.reportSortedlist(); + clustringStatistic.add(als.getSortedArraylist()); + howSorted.add(als.getHowSorted()); + } + } + + public String getClustringStatisticName() { + return clustringStatisticName; + } + + public void setClustringStatisticName(String clustringStatisticName) { + this.clustringStatisticName = clustringStatisticName; + } + + public ArrayList> getClustringStatistic() { + return clustringStatistic; + } + + public void setClustringStatistic( + ArrayList> clustringStatistic) { + this.clustringStatistic = clustringStatistic; + } + } +} diff --git a/Ge Yan_clustering for CSS605/Test_Clustering.java b/Ge Yan_clustering for CSS605/Test_Clustering.java new file mode 100644 index 0000000..aa4fe30 --- /dev/null +++ b/Ge Yan_clustering for CSS605/Test_Clustering.java @@ -0,0 +1,46 @@ +package test_modular; + +import java.io.IOException; +import java.util.ArrayList; + +import force.Clustering; +import force.Clustering; +import force.Clustering.Cluster; +import force.Clustering.ClusteringStatistic; +import force.Clustering.GroupingRequirements; +import force.Clustering.RawData; + +public class Test_Clustering { + + + + public static void main(String[] args) throws IOException, InterruptedException { + ArrayList xs=new ArrayList<>(); + ArrayList ys=new ArrayList<>(); + + for (int i = 0; i < 100; i++) { + xs.add(Math.random()*10); + ys.add(Math.random()*10); + } + + + + + + + RawData rd=new Clustering().new RawData(xs, ys, "trial"); + rd.reportRawData(); + ClusteringStatistic cs=new Clustering().new ClusteringStatistic(); + + + + + Clustering aClustering=new Clustering(); + GroupingRequirements gr=aClustering.new GroupingRequirements("oneTrial", 0.65, 15); + Cluster aCluster=aClustering.new Cluster(gr, rd, cs); + aCluster.doClustering(); + aCluster.reportClustering(); + aCluster.coveredPoints(); + } + +} diff --git a/Ge Yan_clustering for CSS605/clustering results.txt b/Ge Yan_clustering for CSS605/clustering results.txt new file mode 100644 index 0000000..a02b26e --- /dev/null +++ b/Ge Yan_clustering for CSS605/clustering results.txt @@ -0,0 +1,94 @@ + + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +报告生成时间:Thu Oct 20 00:36:40 EDT 2011 +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +******************* +clustering results are here: +required minimum group member:,25.0 +required coverage percentage:,0.65 +total number of data:,100 +current coverage:,0.75 +clustering status:,Non-expanded clustering +*************************** + +Group number:,0 +x:,2.711335405633082 ,Y:,3.4454026502314807 +x:,2.6827359191988553 ,Y:,3.4320409654051174 +x:,2.9715731486048136 ,Y:,3.3166090143308082 +x:,2.722649055477641 ,Y:,4.221443512297702 +x:,3.484488396552783 ,Y:,3.1257978027764324 +x:,2.590942841272359 ,Y:,4.466543874136938 +x:,2.619201654321536 ,Y:,2.3228318244585253 +x:,1.8321762018883325 ,Y:,4.163776973575147 +x:,1.6768898510314312 ,Y:,4.43052695787642 +x:,2.410616657786467 ,Y:,4.859414281997187 +x:,1.130039664509167 ,Y:,3.130959000847666 +x:,2.2720936628897768 ,Y:,1.696231559171274 +x:,1.3519971204273418 ,Y:,2.2505640959156503 +x:,4.16434476416958 ,Y:,2.233067233824819 +x:,4.588224370048318 ,Y:,4.094802932086155 +x:,1.2776016704792614 ,Y:,4.823607734832556 +x:,2.342254417339553 ,Y:,1.4493040697782456 +x:,4.795154445988156 ,Y:,3.077545519435083 +x:,4.258110956086255 ,Y:,1.9753007808538958 +x:,4.0112876971623805 ,Y:,1.6959273918000983 +x:,4.589706580411811 ,Y:,2.209567611287744 +x:,3.897532375681151 ,Y:,5.37389089544816 +x:,0.3098644763082925 ,Y:,3.153347043430137 +x:,1.1133790492763451 ,Y:,5.287695131616708 +x:,1.704463430769536 ,Y:,5.786847627571786 +Group number:,1 +x:,7.482497657473236 ,Y:,1.6741585115868673 +x:,7.358206294101025 ,Y:,1.455788416680034 +x:,7.086324847826947 ,Y:,1.472731957388862 +x:,7.251446666535882 ,Y:,0.9872838381755789 +x:,8.132919641760814 ,Y:,1.0046652489031171 +x:,8.364771251866035 ,Y:,1.126477672326729 +x:,8.36814459213561 ,Y:,0.5461486886267031 +x:,9.131811090389036 ,Y:,1.41351386714624 +x:,8.964144988227694 ,Y:,0.8636314925230393 +x:,9.090876129741654 ,Y:,2.2622161628272552 +x:,8.903029827944616 ,Y:,2.7343556833992544 +x:,8.384604127110576 ,Y:,0.12052440678385845 +x:,5.672191204715511 ,Y:,1.9825627878469188 +x:,6.021744152913095 ,Y:,2.878529329564695 +x:,6.356777852653392 ,Y:,3.201043817146172 +x:,5.602847852767981 ,Y:,2.0199885777670157 +x:,7.946318080426245 ,Y:,3.5361092097668614 +x:,5.997060636088967 ,Y:,0.2534278702344839 +x:,5.9407037813625605 ,Y:,3.0942970146693263 +x:,8.096702867470675 ,Y:,3.7880691160905 +x:,8.20959986003469 ,Y:,3.760454235986135 +x:,5.353732277420641 ,Y:,0.688032786699605 +x:,9.73589505655459 ,Y:,0.9214711512226847 +x:,5.029262168292089 ,Y:,1.1489740146229366 +x:,9.868514570063088 ,Y:,0.3731035705754515 +Group number:,2 +x:,7.18931409197093 ,Y:,8.466754998150506 +x:,6.771870221742576 ,Y:,8.774876522482616 +x:,7.584526549732241 ,Y:,9.181217660539897 +x:,6.357224300765085 ,Y:,9.041600854984834 +x:,8.098529340374776 ,Y:,9.764886028496015 +x:,8.427378470902141 ,Y:,9.53749437465685 +x:,6.144197633823109 ,Y:,7.165516545386417 +x:,8.134757180428354 ,Y:,9.872366693963668 +x:,6.688585347207483 ,Y:,6.832587453357086 +x:,8.486535253615502 ,Y:,7.14744656698714 +x:,9.038764120104624 ,Y:,7.7531639838998645 +x:,9.143459157271776 ,Y:,8.118263305007996 +x:,5.078007668841727 ,Y:,8.051426771078992 +x:,9.17423027827523 ,Y:,9.957557973901388 +x:,8.988135405716658 ,Y:,6.684269439542362 +x:,9.807732882210905 ,Y:,8.622088653092602 +x:,6.8563960502609556 ,Y:,5.7994995409124925 +x:,6.90435090737944 ,Y:,5.785659867778223 +x:,4.793443401033361 ,Y:,6.373045313970918 +x:,3.9681969558377017 ,Y:,8.018578341363161 +x:,4.785334084290186 ,Y:,5.977657999143517 +x:,3.587370768805871 ,Y:,8.094292165739578 +x:,4.383477184686645 ,Y:,6.166737984931566 +x:,3.965075429018463 ,Y:,6.756438259167292 +x:,3.3139655058185467 ,Y:,8.45886979563505 diff --git a/Ge Yan_clustering for CSS605/raw data.txt b/Ge Yan_clustering for CSS605/raw data.txt new file mode 100644 index 0000000..c0132ba --- /dev/null +++ b/Ge Yan_clustering for CSS605/raw data.txt @@ -0,0 +1,10 @@ + + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +报告生成时间:Thu Oct 20 00:36:22 EDT 2011 +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +all 2d points, first line for X, second line for Y + X: +8.20959986003469,5.9407037813625605,4.0112876971623805,5.672191204715511,2.822927689596245,0.43965887542431914,9.913334669546268,1.3519971204273418,3.1741291062138877,4.785334084290186,3.587370768805871,8.096702867470675,2.410616657786467,4.795154445988156,1.704463430769536,3.280726423972963,3.3139655058185467,5.029262168292089,8.964144988227694,3.9311463010550005,0.7411373287871048,8.384604127110576,6.90435090737944,1.6992916836652983,2.711335405633082,4.383477184686645,9.73589505655459,3.9681969558377017,0.02130169892258449,4.16434476416958,3.334292547359273,5.353732277420641,6.771870221742576,2.6827359191988553,6.021744152913095,6.357224300765085,6.688585347207483,1.130039664509167,2.2720936628897768,8.427378470902141,2.619201654321536,5.078007668841727,2.9715731486048136,7.18931409197093,9.090876129741654,6.356777852653392,8.36814459213561,8.098529340374776,0.3098644763082925,9.17423027827523,2.342254417339553,1.2776016704792614,8.486535253615502,3.484488396552783,9.131811090389036,4.793443401033361,9.868514570063088,1.1133790492763451,6.144197633823109,8.132919641760814,8.364771251866035,2.648663173846433,8.988135405716658,0.13464246234422883,9.143459157271776,5.602847852767981,7.358206294101025,8.134757180428354,7.086324847826947,6.8563960502609556,2.904850348789214,7.584526549732241,7.482497657473236,4.889142964947382,2.722649055477641,3.897532375681151,8.844468806692042,9.807732882210905,4.589706580411811,0.7843025003163162,0.2290784651227029,1.6768898510314312,2.590942841272359,1.8321762018883325,7.946318080426245,0.16233331217610614,4.258110956086255,4.588224370048318,9.038764120104624,0.9931516300201959,2.859347933930607,8.903029827944616,1.4144535987854367,7.251446666535882,0.9710783862970673,3.793147663912082,3.016013141839503,5.997060636088967,3.965075429018463,9.580053551764902, + Y: +3.760454235986135,3.0942970146693263,1.6959273918000983,1.9825627878469188,9.873817091821076,7.192644675128772,4.357757543553234,2.2505640959156503,9.407023344922722,5.977657999143517,8.094292165739578,3.7880691160905,4.859414281997187,3.077545519435083,5.786847627571786,6.9531242995351,8.45886979563505,1.1489740146229366,0.8636314925230393,6.131876009930356,8.02657110805433,0.12052440678385845,5.785659867778223,9.02603358662138,3.4454026502314807,6.166737984931566,0.9214711512226847,8.018578341363161,1.4273024491321729,2.233067233824819,7.75594271608618,0.688032786699605,8.774876522482616,3.4320409654051174,2.878529329564695,9.041600854984834,6.832587453357086,3.130959000847666,1.696231559171274,9.53749437465685,2.3228318244585253,8.051426771078992,3.3166090143308082,8.466754998150506,2.2622161628272552,3.201043817146172,0.5461486886267031,9.764886028496015,3.153347043430137,9.957557973901388,1.4493040697782456,4.823607734832556,7.14744656698714,3.1257978027764324,1.41351386714624,6.373045313970918,0.3731035705754515,5.287695131616708,7.165516545386417,1.0046652489031171,1.126477672326729,9.265713471098985,6.684269439542362,7.405270040956859,8.118263305007996,2.0199885777670157,1.455788416680034,9.872366693963668,1.472731957388862,5.7994995409124925,0.01521723188468549,9.181217660539897,1.6741585115868673,4.867581208189594,4.221443512297702,5.37389089544816,4.15595190695039,8.622088653092602,2.209567611287744,9.540618545702213,9.727794454049008,4.43052695787642,4.466543874136938,4.163776973575147,3.5361092097668614,6.000462006938498,1.9753007808538958,4.094802932086155,7.7531639838998645,5.605518337178788,7.872657197814331,2.7343556833992544,5.690125055258813,0.9872838381755789,6.566342619451371,0.48603876212216957,7.529375053637882,0.2534278702344839,6.756438259167292,5.053994228676819, \ No newline at end of file diff --git a/Ge Yan_clustering for CSS605/summary.xlsx b/Ge Yan_clustering for CSS605/summary.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c8f984dd47300c36e13d5d7046a90c3e3a135fe1 GIT binary patch literal 24203 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

_~UFM*D02!VIz)PB JyTRYT{sr*LVv+y= literal 0 HcmV?d00001 From 0c899efb81cfd3d666bda067aa74850178a33493 Mon Sep 17 00:00:00 2001 From: Ge Yan Date: Thu, 20 Oct 2011 01:37:10 -0400 Subject: [PATCH 5/5] clustering --- Ge Yan__clustering for CSS605/Clustering.java | 344 ++++++++++++++++++ .../Test_Clustering.java | 46 +++ .../clustering results.txt | 94 +++++ Ge Yan__clustering for CSS605/raw data.txt | 10 + Ge Yan__clustering for CSS605/summary.xlsx | Bin 0 -> 24203 bytes 5 files changed, 494 insertions(+) create mode 100644 Ge Yan__clustering for CSS605/Clustering.java create mode 100644 Ge Yan__clustering for CSS605/Test_Clustering.java create mode 100644 Ge Yan__clustering for CSS605/clustering results.txt create mode 100644 Ge Yan__clustering for CSS605/raw data.txt create mode 100644 Ge Yan__clustering for CSS605/summary.xlsx diff --git a/Ge Yan__clustering for CSS605/Clustering.java b/Ge Yan__clustering for CSS605/Clustering.java new file mode 100644 index 0000000..ffcfac4 --- /dev/null +++ b/Ge Yan__clustering for CSS605/Clustering.java @@ -0,0 +1,344 @@ +package force; + +import java.awt.geom.Point2D; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; + +import force.Analysis.GeneralAnalysis.OccurrenceCounting; +import force.Help.ArraylistSort; +import force.Help.Report; + +public class Clustering { + class ProposedGroups { + public Point2D getGroupCenter() { + return groupCenter; + } + + public void setGroupCenter(Point2D groupCenter) { + this.groupCenter = groupCenter; + } + + public void setaGroup(ArrayList aGroup) { + this.aGroup = aGroup; + } + + public ArrayList getaGroup() { + return aGroup; + } + + String groupName; + double aggregateEntrope; + ArrayList aGroup = new ArrayList<>(); + Point2D groupCenter; + ArrayList aGroupStaistic = new ArrayList<>(); + } + + public class GroupingRequirements { + public double getTotalCoverage() { + return totalCoverage; + } + + String groupingName; + double totalCoverage; + double eachGroupMemberNumber; + + public double getEachGroupMemberNumber() { + return eachGroupMemberNumber; + } + + public GroupingRequirements(String groupingName, double totalCoverage, + int eachGroupMemberNumber) { + super(); + this.groupingName = groupingName; + this.totalCoverage = totalCoverage; + this.eachGroupMemberNumber = eachGroupMemberNumber; + } + + public String getGroupingName() { + return groupingName; + } + + public void setGroupingName(String groupingName) { + this.groupingName = groupingName; + } + } + + public class RawData { + ArrayList rawData = new ArrayList<>(); + String rawDataName; + + public RawData(ArrayList xCoordinate, + ArrayList yCoordinate, String rawDataName) { + this.rawDataName = rawDataName; + ArrayList p2d = new ArrayList<>(); + for (int i = 0; i < xCoordinate.size(); i++) { + Point2D aPoint = new Point2D.Double(xCoordinate.get(i), + yCoordinate.get(i)); + p2d.add(aPoint); + } + rawData = p2d; + } + + public ArrayList getRawData() { + return rawData; + } + + public void setRawData(ArrayList rawData) { + this.rawData = rawData; + } + + public String getRawDataName() { + return rawDataName; + } + + public void setRawDataName(String rawDataName) { + this.rawDataName = rawDataName; + } + + public void reportRawData() throws IOException { + Report r = new Help().new Report("raw data.txt"); + r.report("all 2d points, first line for X, second line for Y\n X: "); + + for (int i = 0; i < rawData.size(); i++) { + r.reportHorizontal(rawData.get(i).getX()); + } + r.report("\n Y: "); + for (int i = 0; i < rawData.size(); i++) { + r.reportHorizontal(rawData.get(i).getY()); + } + } + } + + public class Cluster { + boolean isExpanded = false; + double currentCoverage; + ArraylistSort groupSort = new Help().new ArraylistSort(); + GroupingRequirements clusterGroupingRequirements; + RawData clusterRawData; + ClusteringStatistic clusterClusteringStatistic; + + ArrayList groupList = new ArrayList<>(); + ArrayList tempGroupList = new ArrayList<>(); + ArrayList coveredPoints = new ArrayList<>(); + + ArrayList alpgTotalEntrope = new ArrayList<>(); + + public Cluster(GroupingRequirements gr, RawData rd, + ClusteringStatistic cs) { + clusterClusteringStatistic = cs; + clusterGroupingRequirements = gr; + clusterRawData = rd; + } + + public void doClustering() throws IOException, InterruptedException { + clusterClusteringStatistic.calculateStatistic(clusterRawData); + clusterClusteringStatistic.reportClusteringStatistic(); + clusterClusteringStatistic.reportHowSorted(); + + propseGroup_Fisrt(); + if (ifSatisfied()) { + System.out.println("the first step works."); + Thread.sleep(5111); + return; + } else { + isExpanded = true; + expandTheGroup(); + currentCoverage = (double) coveredPoints.size() + / (double) clusterRawData.getRawData().size(); + System.out.println("the second step works."); + Thread.sleep(5111); + } + } + + public void reportClustering() throws IOException { + Report r = new Help().new Report("clustering results.txt"); + r.report("\n\n*******************\nclustering results are here:"); + r.report("required minimum group member:," + + clusterGroupingRequirements.getEachGroupMemberNumber() + + "\nrequired coverage percentage:," + + clusterGroupingRequirements.getTotalCoverage() + + "\ntotal number of data:," + + clusterRawData.getRawData().size() + + "\ncurrent coverage:," + currentCoverage); + if (isExpanded == true) { + r.report("clustering status:,Expanded clustering"); + } else { + r.report("clustering status:,Non-expanded clustering"); + } + r.report("***************************\n"); + + for (int i = 0; i < groupList.size(); i++) { + r.report("Group number:," + i); + for (Point2D aPoinInGroup : groupList.get(i).getaGroup()) { + r.report("x:," + aPoinInGroup.getX() + " ,Y:," + + aPoinInGroup.getY()); + } + } + } + + void expandTheGroup() { + for (ProposedGroups aPG : tempGroupList) { + for (int i = 0; i < aPG.getaGroup().size(); i++) { + for (ProposedGroups aDeterminedPG : groupList) { + if (aDeterminedPG.getaGroup().contains( + aPG.getaGroup().get(i))) { + for (Point2D aP : aPG.getaGroup()) { + if (coveredPoints.contains(aP) == false) { + aDeterminedPG.getaGroup().add(aP); + coveredPoints.add(aP); + } + } + } + } + } + } + } + + public int coveredPoints() { + int a = 0; + + for (ProposedGroups p : groupList) { + for (Point2D a2Dpoint : p.getaGroup()) { + a++; + } + } + System.out.println("total points covered:" + a); + return a; + } + + private boolean ifSatisfied() throws InterruptedException { + currentCoverage = (double) coveredPoints.size() + / (double) clusterRawData.getRawData().size(); + System.out.println("thrashhold:" + + clusterGroupingRequirements.totalCoverage); + System.out.println("actual percentage:" + currentCoverage); + Thread.sleep(2000); + + if (currentCoverage >= clusterGroupingRequirements.totalCoverage) { + return true; + + } else { + return false; + } + } + + void propseGroup_Fisrt() { + for (int i = 0; i < clusterClusteringStatistic + .getClustringStatistic().size(); i++) { + double totalEntrope = 0; + for (int j = 0; j < clusterGroupingRequirements + .getEachGroupMemberNumber(); j++) { + totalEntrope = totalEntrope + + clusterClusteringStatistic + .getClustringStatistic().get(i).get(j); + } + alpgTotalEntrope.add(totalEntrope); + } + + groupSort.sortArraylistMembers(alpgTotalEntrope); + groupSort.howSorted(); + + for (int i = 0; i < groupSort.getHowSorted().size(); i++) { + ArrayList original = this.clusterClusteringStatistic + .getClustringStatistic().get( + groupSort.getHowSorted().get(i)); + + ArrayList tempP2D = new ArrayList<>(); + int count = 0; + + for (int j = 0; j < clusterGroupingRequirements + .getEachGroupMemberNumber(); j++) { + Point2D aPoint = clusterRawData.getRawData().get( + clusterClusteringStatistic.howSorted.get( + groupSort.getHowSorted().get(i)).get(j)); + + if (coveredPoints.contains(aPoint) == false) { + tempP2D.add(aPoint); + count++; + } + } + + ProposedGroups pg; + + Point2D aGoupCenter = clusterRawData.getRawData().get( + groupSort.getHowSorted().get(i)); + pg = new ProposedGroups(); + pg.setGroupCenter(aGoupCenter); + for (Point2D point2d : tempP2D) { + pg.getaGroup().add(point2d); + } + + if (count == clusterGroupingRequirements + .getEachGroupMemberNumber()) { + for (Point2D onePoint2d : pg.getaGroup()) { + coveredPoints.add(onePoint2d); + } + groupList.add(pg); + } else { + tempGroupList.add(pg); + } + } + } + } + + public class ClusteringStatistic { + RawData rawData; + ArraylistSort als = null; + String clustringStatisticName; + ArrayList> clustringStatistic = new ArrayList<>(); + ArrayList> howSorted = new ArrayList<>(); + + public void reportClusteringStatistic() throws IOException { + Report r = new Help().new Report( + "reportSortedClusteringStatistic.txt"); + r.reportD2(clustringStatistic); + } + + public void reportHowSorted() throws IOException { + Report r = new Help().new Report( + "reportClustringStatisticHowSorted.txt"); + r.reportI2(howSorted); + } + + public void calculateStatistic(RawData rd) throws IOException { + rawData = rd; + + for (int i = 0; i < rd.getRawData().size(); i++) { + Point2D center = rd.getRawData().get(i); + ArrayList distances = new ArrayList<>(); + for (int j = 0; j < rd.getRawData().size(); j++) { + Point2D target = rd.getRawData().get(j); + + double distance = Math.sqrt(Math.pow( + target.getY() - center.getY(), 2) + + Math.pow(target.getX() - center.getX(), 2)); + distances.add(distance); + } + als = new Help().new ArraylistSort(); + als.sortArraylistMembers(distances); + als.howSorted(); + als.reportSortedlist(); + clustringStatistic.add(als.getSortedArraylist()); + howSorted.add(als.getHowSorted()); + } + } + + public String getClustringStatisticName() { + return clustringStatisticName; + } + + public void setClustringStatisticName(String clustringStatisticName) { + this.clustringStatisticName = clustringStatisticName; + } + + public ArrayList> getClustringStatistic() { + return clustringStatistic; + } + + public void setClustringStatistic( + ArrayList> clustringStatistic) { + this.clustringStatistic = clustringStatistic; + } + } +} diff --git a/Ge Yan__clustering for CSS605/Test_Clustering.java b/Ge Yan__clustering for CSS605/Test_Clustering.java new file mode 100644 index 0000000..aa4fe30 --- /dev/null +++ b/Ge Yan__clustering for CSS605/Test_Clustering.java @@ -0,0 +1,46 @@ +package test_modular; + +import java.io.IOException; +import java.util.ArrayList; + +import force.Clustering; +import force.Clustering; +import force.Clustering.Cluster; +import force.Clustering.ClusteringStatistic; +import force.Clustering.GroupingRequirements; +import force.Clustering.RawData; + +public class Test_Clustering { + + + + public static void main(String[] args) throws IOException, InterruptedException { + ArrayList xs=new ArrayList<>(); + ArrayList ys=new ArrayList<>(); + + for (int i = 0; i < 100; i++) { + xs.add(Math.random()*10); + ys.add(Math.random()*10); + } + + + + + + + RawData rd=new Clustering().new RawData(xs, ys, "trial"); + rd.reportRawData(); + ClusteringStatistic cs=new Clustering().new ClusteringStatistic(); + + + + + Clustering aClustering=new Clustering(); + GroupingRequirements gr=aClustering.new GroupingRequirements("oneTrial", 0.65, 15); + Cluster aCluster=aClustering.new Cluster(gr, rd, cs); + aCluster.doClustering(); + aCluster.reportClustering(); + aCluster.coveredPoints(); + } + +} diff --git a/Ge Yan__clustering for CSS605/clustering results.txt b/Ge Yan__clustering for CSS605/clustering results.txt new file mode 100644 index 0000000..a02b26e --- /dev/null +++ b/Ge Yan__clustering for CSS605/clustering results.txt @@ -0,0 +1,94 @@ + + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +报告生成时间:Thu Oct 20 00:36:40 EDT 2011 +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + +******************* +clustering results are here: +required minimum group member:,25.0 +required coverage percentage:,0.65 +total number of data:,100 +current coverage:,0.75 +clustering status:,Non-expanded clustering +*************************** + +Group number:,0 +x:,2.711335405633082 ,Y:,3.4454026502314807 +x:,2.6827359191988553 ,Y:,3.4320409654051174 +x:,2.9715731486048136 ,Y:,3.3166090143308082 +x:,2.722649055477641 ,Y:,4.221443512297702 +x:,3.484488396552783 ,Y:,3.1257978027764324 +x:,2.590942841272359 ,Y:,4.466543874136938 +x:,2.619201654321536 ,Y:,2.3228318244585253 +x:,1.8321762018883325 ,Y:,4.163776973575147 +x:,1.6768898510314312 ,Y:,4.43052695787642 +x:,2.410616657786467 ,Y:,4.859414281997187 +x:,1.130039664509167 ,Y:,3.130959000847666 +x:,2.2720936628897768 ,Y:,1.696231559171274 +x:,1.3519971204273418 ,Y:,2.2505640959156503 +x:,4.16434476416958 ,Y:,2.233067233824819 +x:,4.588224370048318 ,Y:,4.094802932086155 +x:,1.2776016704792614 ,Y:,4.823607734832556 +x:,2.342254417339553 ,Y:,1.4493040697782456 +x:,4.795154445988156 ,Y:,3.077545519435083 +x:,4.258110956086255 ,Y:,1.9753007808538958 +x:,4.0112876971623805 ,Y:,1.6959273918000983 +x:,4.589706580411811 ,Y:,2.209567611287744 +x:,3.897532375681151 ,Y:,5.37389089544816 +x:,0.3098644763082925 ,Y:,3.153347043430137 +x:,1.1133790492763451 ,Y:,5.287695131616708 +x:,1.704463430769536 ,Y:,5.786847627571786 +Group number:,1 +x:,7.482497657473236 ,Y:,1.6741585115868673 +x:,7.358206294101025 ,Y:,1.455788416680034 +x:,7.086324847826947 ,Y:,1.472731957388862 +x:,7.251446666535882 ,Y:,0.9872838381755789 +x:,8.132919641760814 ,Y:,1.0046652489031171 +x:,8.364771251866035 ,Y:,1.126477672326729 +x:,8.36814459213561 ,Y:,0.5461486886267031 +x:,9.131811090389036 ,Y:,1.41351386714624 +x:,8.964144988227694 ,Y:,0.8636314925230393 +x:,9.090876129741654 ,Y:,2.2622161628272552 +x:,8.903029827944616 ,Y:,2.7343556833992544 +x:,8.384604127110576 ,Y:,0.12052440678385845 +x:,5.672191204715511 ,Y:,1.9825627878469188 +x:,6.021744152913095 ,Y:,2.878529329564695 +x:,6.356777852653392 ,Y:,3.201043817146172 +x:,5.602847852767981 ,Y:,2.0199885777670157 +x:,7.946318080426245 ,Y:,3.5361092097668614 +x:,5.997060636088967 ,Y:,0.2534278702344839 +x:,5.9407037813625605 ,Y:,3.0942970146693263 +x:,8.096702867470675 ,Y:,3.7880691160905 +x:,8.20959986003469 ,Y:,3.760454235986135 +x:,5.353732277420641 ,Y:,0.688032786699605 +x:,9.73589505655459 ,Y:,0.9214711512226847 +x:,5.029262168292089 ,Y:,1.1489740146229366 +x:,9.868514570063088 ,Y:,0.3731035705754515 +Group number:,2 +x:,7.18931409197093 ,Y:,8.466754998150506 +x:,6.771870221742576 ,Y:,8.774876522482616 +x:,7.584526549732241 ,Y:,9.181217660539897 +x:,6.357224300765085 ,Y:,9.041600854984834 +x:,8.098529340374776 ,Y:,9.764886028496015 +x:,8.427378470902141 ,Y:,9.53749437465685 +x:,6.144197633823109 ,Y:,7.165516545386417 +x:,8.134757180428354 ,Y:,9.872366693963668 +x:,6.688585347207483 ,Y:,6.832587453357086 +x:,8.486535253615502 ,Y:,7.14744656698714 +x:,9.038764120104624 ,Y:,7.7531639838998645 +x:,9.143459157271776 ,Y:,8.118263305007996 +x:,5.078007668841727 ,Y:,8.051426771078992 +x:,9.17423027827523 ,Y:,9.957557973901388 +x:,8.988135405716658 ,Y:,6.684269439542362 +x:,9.807732882210905 ,Y:,8.622088653092602 +x:,6.8563960502609556 ,Y:,5.7994995409124925 +x:,6.90435090737944 ,Y:,5.785659867778223 +x:,4.793443401033361 ,Y:,6.373045313970918 +x:,3.9681969558377017 ,Y:,8.018578341363161 +x:,4.785334084290186 ,Y:,5.977657999143517 +x:,3.587370768805871 ,Y:,8.094292165739578 +x:,4.383477184686645 ,Y:,6.166737984931566 +x:,3.965075429018463 ,Y:,6.756438259167292 +x:,3.3139655058185467 ,Y:,8.45886979563505 diff --git a/Ge Yan__clustering for CSS605/raw data.txt b/Ge Yan__clustering for CSS605/raw data.txt new file mode 100644 index 0000000..c0132ba --- /dev/null +++ b/Ge Yan__clustering for CSS605/raw data.txt @@ -0,0 +1,10 @@ + + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +报告生成时间:Thu Oct 20 00:36:22 EDT 2011 +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +all 2d points, first line for X, second line for Y + X: +8.20959986003469,5.9407037813625605,4.0112876971623805,5.672191204715511,2.822927689596245,0.43965887542431914,9.913334669546268,1.3519971204273418,3.1741291062138877,4.785334084290186,3.587370768805871,8.096702867470675,2.410616657786467,4.795154445988156,1.704463430769536,3.280726423972963,3.3139655058185467,5.029262168292089,8.964144988227694,3.9311463010550005,0.7411373287871048,8.384604127110576,6.90435090737944,1.6992916836652983,2.711335405633082,4.383477184686645,9.73589505655459,3.9681969558377017,0.02130169892258449,4.16434476416958,3.334292547359273,5.353732277420641,6.771870221742576,2.6827359191988553,6.021744152913095,6.357224300765085,6.688585347207483,1.130039664509167,2.2720936628897768,8.427378470902141,2.619201654321536,5.078007668841727,2.9715731486048136,7.18931409197093,9.090876129741654,6.356777852653392,8.36814459213561,8.098529340374776,0.3098644763082925,9.17423027827523,2.342254417339553,1.2776016704792614,8.486535253615502,3.484488396552783,9.131811090389036,4.793443401033361,9.868514570063088,1.1133790492763451,6.144197633823109,8.132919641760814,8.364771251866035,2.648663173846433,8.988135405716658,0.13464246234422883,9.143459157271776,5.602847852767981,7.358206294101025,8.134757180428354,7.086324847826947,6.8563960502609556,2.904850348789214,7.584526549732241,7.482497657473236,4.889142964947382,2.722649055477641,3.897532375681151,8.844468806692042,9.807732882210905,4.589706580411811,0.7843025003163162,0.2290784651227029,1.6768898510314312,2.590942841272359,1.8321762018883325,7.946318080426245,0.16233331217610614,4.258110956086255,4.588224370048318,9.038764120104624,0.9931516300201959,2.859347933930607,8.903029827944616,1.4144535987854367,7.251446666535882,0.9710783862970673,3.793147663912082,3.016013141839503,5.997060636088967,3.965075429018463,9.580053551764902, + Y: +3.760454235986135,3.0942970146693263,1.6959273918000983,1.9825627878469188,9.873817091821076,7.192644675128772,4.357757543553234,2.2505640959156503,9.407023344922722,5.977657999143517,8.094292165739578,3.7880691160905,4.859414281997187,3.077545519435083,5.786847627571786,6.9531242995351,8.45886979563505,1.1489740146229366,0.8636314925230393,6.131876009930356,8.02657110805433,0.12052440678385845,5.785659867778223,9.02603358662138,3.4454026502314807,6.166737984931566,0.9214711512226847,8.018578341363161,1.4273024491321729,2.233067233824819,7.75594271608618,0.688032786699605,8.774876522482616,3.4320409654051174,2.878529329564695,9.041600854984834,6.832587453357086,3.130959000847666,1.696231559171274,9.53749437465685,2.3228318244585253,8.051426771078992,3.3166090143308082,8.466754998150506,2.2622161628272552,3.201043817146172,0.5461486886267031,9.764886028496015,3.153347043430137,9.957557973901388,1.4493040697782456,4.823607734832556,7.14744656698714,3.1257978027764324,1.41351386714624,6.373045313970918,0.3731035705754515,5.287695131616708,7.165516545386417,1.0046652489031171,1.126477672326729,9.265713471098985,6.684269439542362,7.405270040956859,8.118263305007996,2.0199885777670157,1.455788416680034,9.872366693963668,1.472731957388862,5.7994995409124925,0.01521723188468549,9.181217660539897,1.6741585115868673,4.867581208189594,4.221443512297702,5.37389089544816,4.15595190695039,8.622088653092602,2.209567611287744,9.540618545702213,9.727794454049008,4.43052695787642,4.466543874136938,4.163776973575147,3.5361092097668614,6.000462006938498,1.9753007808538958,4.094802932086155,7.7531639838998645,5.605518337178788,7.872657197814331,2.7343556833992544,5.690125055258813,0.9872838381755789,6.566342619451371,0.48603876212216957,7.529375053637882,0.2534278702344839,6.756438259167292,5.053994228676819, \ No newline at end of file diff --git a/Ge Yan__clustering for CSS605/summary.xlsx b/Ge Yan__clustering for CSS605/summary.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c8f984dd47300c36e13d5d7046a90c3e3a135fe1 GIT binary patch literal 24203 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

_~UFM*D02!VIz)PB JyTRYT{sr*LVv+y= literal 0 HcmV?d00001