anchor.diff:          Break;
         end else if (currentKeywordEDID = 'WeapMaterialEbony') then begin
           addPerkCondition(recipeCraft, getRecordByFormID('000CB412')); // EbonySmithing
  -	      Break;
  +        Break;
   
         end else if (currentKeywordEDID = 'WeapMaterialDaedric') then begin
           addPerkCondition(recipeCraft, getRecordByFormID('000CB413')); // DaedricSmithing
  
positive.code:   Result := false;
  
    if hasKeyword(itemRecord, keywordEditorID) then begin
        // get all keyword entries of provided record
        tmpKeywordsCollection := ElementByPath(itemRecord, 'KWDA');
        // loop through each
        for i := 0 to ElementCount(tmpKeywordsCollection) - 1 do begin
          keywordRef := LinksTo(ElementByIndex(tmpKeywordsCollection, i));
          if GetElementEditValues(keywordRef, 'EDID') = keywordEditorID then begin
            RemoveByIndex(tmpKeywordsCollection, i, true);
            Result := true;
            Break;
          end;
        end;
    end;
  end;
  
  
negative.code: 
  function isTemperable(recordToCheck: IInterface): boolean;
  var
    i: integer;
    tmp, bnam: IInterface;
  begin
    Result := false;
  
    for i := 0 to ReferencedByCount(recordToCheck) - 1 do begin
      tmp := ReferencedByIndex(recordToCheck, i);
  
      if (Signature(tmp) = 'COBJ') then begin
        if (GetElementEditValues(tmp, 'CNAM') = Name(recordToCheck)) then begin
          bnam := GetElementEditValues(tmp, 'BNAM');
          if (
            (bnam = 'CraftingSmithingSharpeningWheel [KYWD:00088108]')
            or (bnam = 'CraftingSmithingArmorTable [KYWD:000ADB78]')
          ) then begin
            Result := true;
            Break
          end;
        end;
      end;
  
    end;
  end;
  
  function isCraftable(recordToCheck: IInterface): boolean;
  var
    i: integer;
    tmp, bnam: IInterface;
  begin
    Result := false;
  
    for i := 0 to ReferencedByCount(recordToCheck) - 1 do begin
      tmp := ReferencedByIndex(recordToCheck, i);
  
      if (Signature(tmp) = 'COBJ') then begin
        if (GetElementEditValues(tmp, 'CNAM') = Name(recordToCheck)) then begin
          bnam := GetElementEditValues(tmp, 'BNAM');
          if (
            (bnam = 'CraftingSmithingForge [KYWD:00088105]')
            or (bnam = 'CraftingSmelter [KYWD:000A5CCE]')
            or (bnam = 'CraftingTanningRack [KYWD:0007866A]')
          ) then begin
            Result := true;
            Break
          end;
  
        end;
      end;
  
    end;
  end;
  
  procedure FinalizeUtils;
  begin
    if Assigned(materialKeywordsMap) then
      materialKeywordsMap.Free;
    if Assigned(materialItemsMap) then
      materialItemsMap.Free;
  end;
  
  end.
  