anchor.diff:  
   {$ENDIF}
   
  +{ TKMDeliveryBidKey }
  +function TKMDeliveryBidKey.GetHashCode: Integer;
  +var
  +  total: Int64;
  +begin
  +  //HashCode should be the same if we swap From and To
  +  Int64Rec(total).Words[0] := (FromP.X + ToP.X);
  +  Int64Rec(total).Words[1] := Abs(FromP.X - ToP.X);
  +  Int64Rec(total).Words[2] := FromP.Y + ToP.Y;
  +  Int64Rec(total).Words[3] := Abs(FromP.Y - ToP.Y);
  +  Result := THashBobJenkins.GetHashValue(total, SizeOf(Int64), 0);
  +end;
  +
   end.
  
positive.code:   TKMDeliveryBidKey = record
      FromP: TKMPoint; //House or Unit UID From where delivery path goes
      ToP: TKMPoint;   //same for To where delivery path goes
    end;
  
  type
    //Custom key comparator. Probably TDictionary can handle it himself, but lets try our custom comparator
    TKMDeliveryBidKeyEqualityComparer = class(TEqualityComparer<TKMDeliveryBidKey>)
      function Equals(const Left, Right: TKMDeliveryBidKey): Boolean; override;
  
negative.code:   //Comparison function could be executed more rare or frequent depending on signals from houses/serfs
    //e.g. with no houses signals it can sleep till first on. At any case - not more frequent than 1/tick
    //TKMDeliveryList = class; //Serfs, Houses/Warriors/Workers
  
    TKMDeliveries = class
    private
  