anchor.diff:    stop(KNode node) {
       _isStart = false;
     }
  -  maintenance(KNode node) {;}
  +
  +  maintenance(KNode node) {
  +    ;
  +  }
   
     startSearchPeer(KNode node, KId infoHash) {
  -    ;
  +    if (false == taskList.containsKey(infoHash)) {
  +      taskList[infoHash] = new KNodeAIAnnounceTask(infoHash);
  +    }
  +    taskList[infoHash].startSearchPeer(node, infoHash);
     }
   
     stopSearchPeer(KNode node, KId infoHash) {
  -    ;
  +    if (true== taskList.containsKey(infoHash)) {
  +      taskList[infoHash].stopSearchPeer(node, infoHash);
  +    }
     }
   
     onTicket(KNode node) {
  -    for(KNodeAIAnnounceTask t in taskList) {
  +    for (KNodeAIAnnounceTask t in taskList) {
         t.onTicket(node);
       }
     }
   
     onReceiveQuery(KNode node, HetiReceiveUdpInfo info, KrpcQuery query) {
  -    for(KNodeAIAnnounceTask t in taskList) {
  +    for (KNodeAIAnnounceTask t in taskList) {
         t.onReceiveQuery(node, info, query);
       }
     }
     onReceiveResponse(KNode node, HetiReceiveUdpInfo info, KrpcResponse response) {
  -    for(KNodeAIAnnounceTask t in taskList) {
  +    for (KNodeAIAnnounceTask t in taskList) {
         t.onReceiveResponse(node, info, response);
       }
     }
  -  
  +
     onReceiveError(KNode node, HetiReceiveUdpInfo info, KrpcError message) {
  -    for(KNodeAIAnnounceTask t in taskList) {
  +    for (KNodeAIAnnounceTask t in taskList) {
         t.onReceiveError(node, info, message);
       }
     }
   
     onReceiveUnknown(KNode node, HetiReceiveUdpInfo info, KrpcMessage message) {
  -    for(KNodeAIAnnounceTask t in taskList) {
  +    for (KNodeAIAnnounceTask t in taskList) {
         t.onReceiveUnknown(node, info, message);
       }
     }
   }
  -
   
   class KNodeAIAnnounceTask {
     bool _isStart = false;
  
positive.code:       announcedNode.sort((KAnnounceInfo a, KAnnounceInfo b) {
          if (a.infoHash == b.infoHash) {
            return 0;
          } else if (a.infoHash.xor(_infoHashId)  > b.infoHash.xor(_infoHashId) ) {
            return 1;
          } else {
            return -1;
  
negative.code:                   _findedNode.rawshuffled.sort((KPeerInfo a, KPeerInfo b) {
                      if (a.id == b.id) {
                        return 0;
                      } else if (a.id.xor(_infoHashId) > b.id.xor(_infoHashId)) {
                        return 1;
                      } else {
                        return -1;
  