anchor.diff:  destructor TmKeysIndex.Destroy;
   begin
     FKeysDictionary.Free;
  +  FKeysValuesDictionary.Free;
     FKeysValues.Free;
     inherited Destroy;
   end;
  
positive.code:   else
    begin
      Result := TCardinalList.Create;
      FKeysDictionary.Add(aKey, Result);
    end;
  end;
  
  { TmCalculationDefs }
  
  
negative.code:     Result := tmpObj as TmKeysIndex;
    end
    else
      Result := nil;
  end;
  
  function TmKeysIndex.AddKey(const aKey: string) : TmKeysIndex;
  begin
    Result := TmKeysIndex.Create;
    Result.FLevel:= Self.FLevel + 1;
    Result.FParent := Self;
    FKeysDictionary.Add(aKey, Result);
    FKeysValues.Add(aKey);
  end;
  
  function TmKeysIndex.GetValueList(const aKey: string): TCardinalList;
  var
    tmpObj : TObject;
  begin
    tmpObj := FKeysValuesDictionary.Find(aKey);
    if Assigned(tmpObj) then
    begin
      assert(tmpObj is TCardinalList);
  