internal void combineShares()
 {
     var allShares = retrieveDecryptedShares();
     var pk = retrieveKey();
     var m = retrieveM();
     //var nc = retrieveTotalCandidates();
     var options = retrieveElectionOptions();
     var nc = options.Count;
     var djn = new DJN.DJN(nc);
     var allres = djn.combine(allShares.ToArray(), pk);
     for (int i = 0; i < allres.Length; i++)
     {
         var label = options[i];
         var res = allres[i];
         log("Result for " + label +" is " + res);
     }
 }