---------------------------------
-- 아이템 스텟 파싱 라이브러리 --
--       제작자: InTheBlue     --
---------------------------------

local MAJOR_VERSION = "LibItemSpec-2.0"
local MINOR_VERSION = 4

local lib = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION)
if not lib then return end

local _G = getfenv(0)
local type = _G.type
local pairs = _G.pairs
local ipairs = _G.ipairs
local select = _G.select
local strtrim = _G.strtrim
local tonumber = _G.tonumber
local twipe = _G.table.wipe

local tooltip = LibItemSpec20Tooltip or CreateFrame("GameTooltip", "LibItemSpec20Tooltip", UIParent, "GameTooltipTemplate")
local colorR, colorG, colorB, spliter, wmin, wmax, wspeed, wdps, wvalue, fap, key, value, GemTable, metaTable, metaData, con1, con2, setTable, slotLink
local gemCache, gemCountCache = {}, {}
local tmpItemStats = {}

local replaceText = {
	["\n내구도 (%d+)\n(%d+)"] = "",
	["최소 요구 레벨 (%d+)"] = "",
	["보석 홈 대장기술 %((%d+)%)"] = "",
	["+17 힘"] = "힘 +17",
	["+16 지능"] = "지능 +16",
	["+30 체력"] = "체력 +30",
	["+15 탄력도"] = "탄력도 +15",
	["모든 능력치 ++(%d+)"] = "힘 +%1\n민첩성 +%1\n체력 +%1\n지능 +%1\n정신력 +%1",
	["모든 저항력 ++(%d+)"] = "비전 저항력 +%1\n화염 저항력 +%1\n자연 저항력 +%1\n냉기 저항력 +%1\n암흑 저항력 +%1",
	["티타늄 도금"] = "방패 피해 방어량 +40\n무장 해제 지속시간 50%만큼 감소",
	["(%d+)의 피해 방어"] = "방패 피해 방어량 +%1",
	["방패의 피해 방어량"] = "방패 피해 방어량",
	["티타늄 무기 사슬"] = "적중도 +28\n무장 해제 지속시간 50%만큼 감소",
	["아다만타이트 무기 사슬"] = "무기 막기 숙련도 +15\n무장 해제 지속시간 50%만큼 감소",
	["5초당 생명력 및 마나 회복량 ++(%d+)"] = "5초당 생명력 회복량 +%1\n5초당 마나 회복량 +%1",
	["비전 및 화염 주문력 ++(%d+)"] = "비전 주문 공격력 +%1\n화염 주문 공격력 +%1",
	["암흑 및 냉기 주문력 ++(%d+)"] = "암흑 주문 공격력 +%1\n냉기 주문 공격력 +%1",
}
local metaGemRemoveText = {
	" / 아이템에 의한 방어도 (%d+)%%만큼 증가",
	" / 기절 지속시간 (%d+)%%만큼 감소",
	" / 치명타 피해 (%d+)%%만큼 증가",
	" / 받는 주문 피해 (%d+)%%만큼 감소",
	" / 공포 지속시간 (%d+)%%만큼 감소",
	" / 최하급 달리기 속도 증가",
	" / 치유 주문 극대화 효과 (%d+)%%만큼 증가",
	" / 덫, 이동 불가에 대한 저항력 ++(%d+)%%",
	" / 마나 (%d+)%%",
	" / 방패 피해 방어량 ++(%d+)%%",
	" / 위협 수준 (%d+)%%만큼 감소",
	" / 지능 ++(%d+)%%",
	" / 침묵 지속시간 (%d+)%%만큼 감소",
	" / 주문 시전 시 일정 확률로 마나 회복",
	" / (%d+)%% 확률로 주문 반사",
	" / 치명타 적중 시 일정 확률로 생명력 회복",
}
local skipText = { ["귀속 아이템"] = true, ["획득 시 귀속"] = true, ["착용 시 귀속"] = true, ["고유 아이템"] = true, ["고유 장착 아이템"] = true, [""] = true, ["붉은색 보석 홈"] = true, ["노란색 보석 홈"] = true, ["푸른색 보석 홈"] = true, ["무색 보석 홈"] = true, ["얼개 보석 홈"] = true, ["머리"] = true, ["어깨"] = true, ["가슴"] = true, ["손목"] = true, ["손"] = true, ["허리"] = true, ["다리"] = true, ["발"] = true, ["목"] = true, ["등"] = true, ["속옷"] = true, ["겉옷"] = true, ["손가락"] = true, ["장신구"] = true, ["주장비"] = true, ["한손 장비"] = true, ["보조 장비"] = true, ["양손 장비"] = true, ["원거리 장비"] = true, ["투척 무기"] = true, ["성물"] = true }
local itemArmorText = { ["머리"] = true, ["어깨"] = true, ["가슴"] = true, ["손목"] = true, ["손"] = true, ["허리"] = true, ["다리"] = true, ["발"] = true, ["등"] = true, ["보조장비"] = true }
local additionalArmor = { [50968] = 1176, [39225] = 336, [40252] = 336, [50802] = 630, [51901] = 630, [50978] = 1008, [49904] = 1190, [51265] = 1344, [51174] = 1190, [51267] = 1148, [51172] = 1008, [51305] = 1344, [51134] = 1190, [51307] = 1148, [51132] = 1008, [51220] = 1344, [51219] = 1190, [51222] = 1148, [51217] = 1008, [45267] = 826, [50856] = 882, [50466] = 560, [50991] = 658, [41238] = 210, [37084] = 364, [41190] = 138, [42826] = 549 }
local itemTypeText = { ["머리"] = true, ["어깨"] = true, ["가슴"] = true, ["손목"] = true, ["손"] = true, ["허리"] = true, ["다리"] = true, ["발"] = true, ["목"] = true, ["등"] = true, ["속옷"] = true, ["겉옷"] = true, ["손가락"] = true, ["장신구"] = true, ["주장비"] = true, ["한손 장비"] = true, ["보조장비"] = true, ["양손 장비"] = true, ["원거리 장비"] = true, ["투척 무기"] = true, ["성물"] = true }
local removeColor = { "|cff", "ffffff", "808080", "ff2020", "00ff00", "|r" }
local gemIcons = { ["jewelcrafting_crimsonspinel_01"] = "R", ["jewelcrafting_crimsonspinel_02"] = "R", ["jewelcrafting_gem_04"] = "R", ["jewelcrafting_gem_12"] = "R", ["jewelcrafting_gem_16"] = "R", ["jewelcrafting_gem_22"] = "R", ["jewelcrafting_gem_28"] = "R", ["jewelcrafting_gem_37"] = "R", ["jewelcrafting_livingruby_02"] = "R", ["jewelcrafting_livingruby_03"] = "R", ["misc_gem_bloodgem_02"] = "R", ["misc_gem_bloodgem_03"] = "R", ["misc_gem_bloodstone_01"] = "R", ["misc_gem_bloodstone_02"] = "R", ["misc_gem_ruby_01"] = "R", ["misc_gem_ruby_02"] = "R", ["misc_gem_ruby_03"] = "R", ["jewelcrafting_empyreansapphire_01"] = "B", ["jewelcrafting_empyreansapphire_02"] = "B", ["jewelcrafting_gem_05"] = "B", ["jewelcrafting_gem_10"] = "B", ["jewelcrafting_gem_17"] = "B", ["jewelcrafting_gem_24"] = "B", ["jewelcrafting_gem_27"] = "B", ["jewelcrafting_gem_42"] = "B", ["jewelcrafting_starofelune_01"] = "B", ["jewelcrafting_starofelune_02"] = "B", ["jewelcrafting_starofelune_03"] = "B", ["misc_gem_azuredraenite_02"] = "B", ["misc_gem_azuredraenite_03"] = "B", ["misc_gem_crystal_03"] = "B", ["jewelcrafting_dawnstone_02"] = "Y", ["jewelcrafting_dawnstone_03"] = "Y", ["jewelcrafting_gem_03"] = "Y", ["jewelcrafting_gem_08"] = "Y", ["jewelcrafting_gem_15"] = "Y", ["jewelcrafting_gem_21"] = "Y", ["jewelcrafting_gem_26"] = "Y", ["jewelcrafting_gem_38"] = "Y", ["jewelcrafting_lionseye_01"] = "Y", ["jewelcrafting_lionseye_02"] = "Y", ["misc_gem_goldendraenite_02"] = "Y", ["misc_gem_goldendraenite_03"] = "Y", ["misc_gem_topaz_01"] = "Y", ["misc_gem_topaz_02"] = "Y", ["misc_gem_topaz_03"] = "Y", ["stone_weightstone_05"] = "Y", ["jewelcrafting_gem_06"] = "RB", ["jewelcrafting_gem_11"] = "RB", ["jewelcrafting_gem_18"] = "RB", ["jewelcrafting_gem_23"] = "RB", ["jewelcrafting_gem_29"] = "RB", ["jewelcrafting_nightseye_02"] = "RB", ["jewelcrafting_nightseye_03"] = "RB", ["jewelcrafting_shadowsongamethyst_01"] = "RB", ["jewelcrafting_shadowsongamethyst_02"] = "RB", ["misc_gem_ebondraenite_02"] = "RB", ["misc_gem_ebondraenite_03"] = "RB", ["misc_gem_pearl_07"] = "RB", ["misc_gem_pearl_08"] = "RB", ["misc_gem_sapphire_02"] = "RB", ["jewelcrafting_gem_01"] = "YB", ["jewelcrafting_gem_07"] = "YB", ["jewelcrafting_gem_13"] = "YB", ["jewelcrafting_gem_19"] = "YB", ["jewelcrafting_gem_25"] = "YB", ["jewelcrafting_seasprayemerald_01"] = "YB", ["jewelcrafting_seasprayemerald_02"] = "YB", ["jewelcrafting_talasite_01"] = "YB", ["jewelcrafting_talasite_02"] = "YB", ["jewelcrafting_talasite_03"] = "YB", ["misc_gem_deepperidot_01"] = "YB", ["misc_gem_deepperidot_02"] = "YB", ["misc_gem_deepperidot_03"] = "YB", ["jewelcrafting_gem_02"] = "RY", ["jewelcrafting_gem_09"] = "RY", ["jewelcrafting_gem_14"] = "RY", ["jewelcrafting_gem_20"] = "RY", ["jewelcrafting_gem_30"] = "RY", ["jewelcrafting_nobletopaz_02"] = "RY", ["jewelcrafting_nobletopaz_03"] = "RY", ["jewelcrafting_pyrestone_01"] = "RY", ["jewelcrafting_pyrestone_02"] = "RY", ["misc_gem_flamespessarite_02"] = "RY", ["misc_gem_flamespessarite_03"] = "RY", ["misc_gem_opal_01"] = "RY", ["misc_gem_opal_02"] = "RY", ["enchant_prismaticsphere"] = "RYB", ["enchant_voidsphere"] = "RYB", ["jewelcrafting_dragonseye01"] = "RYB", ["jewelcrafting_dragonseye02"] = "RYB", ["misc_gem_pearl_10"] = "RYB", ["misc_gem_pearl_12"] = "RYB", ["jewelcrafting_gem_37"] = "R", ["jewelcrafting_gem_38"] = "Y", ["jewelcrafting_gem_42"] = "B", ["jewelcrafting_dragonseye05"] = "R", ["jewelcrafting_dragonseye03"] = "Y", ["jewelcrafting_dragonseye04"] = "B", ["jewelcrafting_gem_39"] = "RY", ["jewelcrafting_gem_41"] = "YB", ["jewelcrafting_gem_40"] = "RB" }
local metaGemIcons = { ["jewelcrafting_shadowspirit_02"] = true, ["jewelcrafting_icediamond_02"] = true, ["misc_gem_diamond_06"] = true, ["misc_gem_diamond_07"] = true }
local emptySocketIcons = { ["interface\\itemsocketingframe\\ui-emptysocket-meta"] = "M", ["interface\\itemsocketingframe\\ui-emptysocket-red"] = "R", ["interface\\itemsocketingframe\\ui-emptysocket-yellow"] = "Y", ["interface\\itemsocketingframe\\ui-emptysocket-blue"] = "B", ["interface\\itemsocketingframe\\ui-emptysocket"] = "N" }
local socketCount = { "EMPTY_SOCKET_META", "EMPTY_SOCKET_RED", "EMPTY_SOCKET_YELLOW", "EMPTY_SOCKET_BLUE" }
local socketCountCache = {}

function lib:ItemParser(unit, index, link, disableReplaceText)
	if link then
		tooltip:SetOwner(UIParent, "ANCHOR_NONE")
		tooltip:ClearLines()
		tooltip:SetHyperlink(link)
		local gem, gemCount, tooltipText, itemType, text, setItem, metaGem, setName, maxPiece, gemTest, gemTex, gemNum = "", 0
		tooltip.left = tooltip.left or { _G[tooltip:GetName().."TextLeft1"] }
		tooltip.texture = tooltip.texture or {}
		wmin, wmax, wspeed, wdps = nil
		for i = 2, tooltip:NumLines() do
			tooltip.left[i] = tooltip.left[i] or _G[tooltip:GetName().."TextLeft"..i]
			tooltipText = tooltip.left[i]:GetText()
			itemType = ((tooltipText and itemTypeText[tooltipText]) and tooltipText or nil) or itemType
			if itemType and itemType == "성물" then
				return nil, nil, nil, nil, ""
			elseif tooltipText and not skipText[tooltipText] then
				if tooltipText:find("(.+) %((%d+)/(%d+)%)") then
					-- 세트 아이템 이름 및 최대 갯수 기록
					setItem = strtrim(tooltipText:gsub("\n", "") or "")
					setName, _, maxPiece = setItem:match("(.+) %((%d+)/(%d+)%)")
					setItem = setName.."_"..maxPiece
					tooltipText = nil
					break
				else
					if tooltipText:find("|") then
						-- 색상 코드 제거
						for _, r in ipairs(removeColor) do
							tooltipText = tooltipText:gsub(r, "")
						end
					end
					if tooltipText:find("착용 효과:") then
						if tooltipText:find("일정 확률로") or tooltipText:find("(%d+)초 동안") then
							-- 착용 효과 중 일정 확률로 발동하는 것 제거
							tooltipText = ""
						else
							-- 일반적인 스텟 증가 착용 효과 변환
							tooltipText = tooltipText:gsub("착용 효과: (.+)이 (%d+)만큼 증가합니다.", "%1 +%2")
							tooltipText = tooltipText:gsub("착용 효과: (.+)가 (%d+)만큼 증가합니다.", "%1 +%2")
							-- 마나 / 생명력 리젠 변환
							tooltipText = tooltipText:gsub("착용 효과: 매 5초마다 (%d+)의 마나가 회복됩니다.", "5초당 마나 회복량 +%1")
							tooltipText = tooltipText:gsub("착용 효과: 매 5초마다 (%d+)의 생명력이 회복됩니다.", "5초당 생명력 회복량 +%1")
							if tooltipText == tooltip.left[i]:GetText() then
								tooltipText = ""
							end
						end
					elseif tooltipText:find("사용 효과:") or tooltipText:find("직업:") or tooltipText:find("요구 사항:") or tooltipText:find("재사용 대기시간:") then
						-- 사용 효과 등 고정적인 스텟이 아닌것 제거
						tooltipText = ""
					elseif tooltipText:find("보석 장착 보너스:") then
						-- 보석 장착 보너스의 활성화 여부에 따라 스텟 적용
						colorR, colorG, colorB = tooltip.left[i]:GetTextColor()
						if colorR < 0.51 and colorG < 0.51 and colorB < 0.51 then
							tooltipText = ""
						else
							tooltipText = tooltipText:gsub("보석 장착 보너스: ", "")
							if tooltipText:find("^숙련 ++(%d+)$") then
								tooltipText = tooltipText:gsub("숙련", "숙련도")
							end
						end
					elseif tooltipText:find("^공격력 (%d+) -- (%d+)") then
						-- 무기 공격력 및 공격 속도 적용 (드루이드라면 야생 전투력 변환)
						wmin, wmax = tooltipText:match("^공격력 (%d+) -- (%d+)")
						wspeed = (_G[tooltip:GetName().."TextRight"..i]:GetText()):match("^속도 (.+)")
					elseif tooltipText:find("%(초당 공격력 (.+)%)") then
						-- 초당 공격력
						wdps = tooltipText:match("%(초당 공격력 (.+)%)")
					elseif tooltipText:find("^공격력 ++(%d+)") then
						tooltipText = tooltipText:gsub("공격력", "무기 공격력")
					elseif index == 18 and tooltipText:find("(.+) 피해 (%d+)~(%d+)$") then
						-- 마법봉
						wmin, wmax = select(2, tooltipText:match("(.+) 피해 (%d+)~(%d+)$"))
						wspeed = (_G[tooltip:GetName().."TextRight"..i]:GetText()):match("^속도 (.+)")
					elseif tooltipText:find("표범, 광포한 곰, 곰, 달빛야수 변신 상태일 때 전투력이") then
						-- 드루이드 플레이어가 드루이드가 아닌 플레이어를 살펴볼때 해당 캐릭터의 야생 전투력 무시
						if UnitClass(unit) == "드루이드" then
							tooltipText = tooltipText:gsub("표범, 광포한 곰, 곰, 달빛야수 변신 상태일 때 전투력이 (%d+)만큼 증가합니다.", "야생 전투력 +%1")
						else
							tooltipText = ""
						end
					elseif tooltipText:find("^숙련 ++(%d+)") then
						-- 보석 옵션에 숙련 +xx 를 숙련도로 수정
						tooltipText = tooltipText:gsub("^숙련 ++(%d+)", "숙련도 +%1")
					elseif tooltipText:find(" / 숙련 ++(%d+)$") then
						-- 보석 옵션에 숙련 +xx 를 숙련도로 수정
						tooltipText = tooltipText:gsub(" / 숙련 ++(%d+)$", " / 숙련도 +%1")
					elseif tooltipText:find("^방어도 (%d+)") then
						-- 방어구 아이템에 의한 방어도와 일반 방어도 구분
						local linkID = lib:GetItemID(link)
						if linkID and additionalArmor[linkID] then
							local oldArmor = tonumber(tooltipText:match("^방어도 (%d+)") or "0") or 0
							tooltipText = tooltipText:gsub("^방어도 (%d+)", "아이템 방어도 +"..(oldArmor - additionalArmor[linkID]).." / 방어도 +"..additionalArmor[linkID])
						elseif itemType and itemArmorText[itemType] then
							tooltipText = tooltipText:gsub("^방어도 (%d+)", "아이템 방어도 +%1")
						else
							tooltipText = tooltipText:gsub("^방어도 (%d+)", "방어도 +%1")
						end
					elseif tooltipText:find("^조준경 %(") then
						-- 조준경 변환
						tooltipText = tooltipText:gsub("조준경 %((.+)%)", "원거리 무기 %1")
					end
					if tooltipText and tooltipText ~= "" then
						if saveSetCount and saveSetCount > 0 and tooltipText:find(" ++(%d+)$") then
							setSpecCache[saveSetCache] = setSpecCache[saveSetCache] or {}
							setSpecCache[saveSetCache][saveSetCount] = tooltipText
						elseif tooltipText:find("필요 조건:") then
							metaGem = tooltipText:gsub("  ", "")
						else
							tooltipText = tooltipText:gsub(" / ", "\n")
							text = (text and (text.."\n") or "")..strtrim(tooltipText)
						end
					end
				end
			end
			if i < 12 then
				tooltip.texture[i - 1] = tooltip.texture[i - 1] or _G[tooltip:GetName().."Texture"..(i - 1)]
				if type(tooltip.texture[i - 1]:GetTexture()) == "string" and tooltip.texture[i - 1]:IsShown() then
					gemTex = (tooltip.texture[i - 1]:GetTexture():lower()):gsub("interface\\icons\\inv_", "")
					if metaGemIcons[gemTex] then
						gem = gem.."M"
						gemCount = gemCount + 1
					elseif gemIcons[gemTex] then
						gem = gem..gemIcons[gemTex]
						gemCount = gemCount + 1
					elseif emptySocketIcons[gemTex] then
						gemCount = gemCount + 1
					end
				end
			end
		end
		if text then
			if not disableReplaceText then
				for p, v in pairs(replaceText) do
					text = text:gsub(p, v)
				end
				text = text:gsub("\n\n", "\n")
				text = text:gsub("^\n", "")
				text = text:gsub("\n$", "")
			end
			if wmin and wdps then
				wmin, wmax, wspeed, wdps = tonumber(wmin), tonumber(wmax), tonumber(wspeed), tonumber(wdps)
				GetItemStats(link, tmpItemStats)
				if tmpItemStats["ITEM_MOD_DAMAGE_PER_SECOND_SHORT"] and tmpItemStats["ITEM_MOD_DAMAGE_PER_SECOND_SHORT"] > wdps then
					wvalue = (tmpItemStats["ITEM_MOD_DAMAGE_PER_SECOND_SHORT"] * wspeed * 2 - (wmin + wmax)) / 2
					if wvalue > 0 then
						wmin = wmin + 0.5 + wvalue
						wmax = wmax - 0.5 + wvalue
					end
				end
				twipe(tmpItemStats)
				if index == 16 and UnitClass(unit) == "드루이드" and UnitClass("player") ~= "드루이드" then
					fap = (((wmin / wspeed) + (wmax / wspeed)) / 2 - 54.8) * 14
					if fap > 0 then
						text = text..(("\n야생 전투력 +%d"):format(fap))
					end
				end
				index = index - 15
				text = text..("\n무기%d 최소 공격력 +%.5f\n무기%d 최대 공격력 +%.5f\n무기%d 공격 속도 +%.2f\n무기%d 초당 공격력 +%.1f"):format(index, wmin, index, wmax, index, wspeed, index, wdps)
			end
		end
		local enchant = tonumber(select(2, link:match("item:(%d+):(%d+)")) or 0)
		if enchant == 3606 then		-- 니트로 추진기
			text = (text and (text.."\n") or "").."치명타 및 주문 극대화 적중도 +24"
		elseif enchant == 3605 then	-- 신축성 내피
			text = (text and (text.."\n") or "").."민첩성 +23"
		elseif enchant == 3859 then	-- 고탄력 거미줄매듭
			text = (text and (text.."\n") or "").."주문력 +27"
		elseif enchant == 3878 then	-- 정신 증폭 접시
			text = (text and (text.."\n") or "").."체력 +45"
		end
		return itemType, text, setItem, metaGem, gem
	end
	return nil, nil, nil, nil, ""
end

GEM_CACHE = gemCache

function lib:GetItemGemInfo(itemID)
	itemID = lib:GetItemID(itemID)
	if itemID then
		if gemCache[itemID] then
			return gemCache[itemID]
		else
			local gem
			tooltip:SetOwner(UIParent, "ANCHOR_NONE")
			tooltip:ClearLines()
			tooltip:SetHyperlink("item:"..itemID)
			tooltip.texture = tooltip.texture or {}
			gemCache[itemID] = ""
			for i = 1, 10 do
				tooltip.texture[i] = tooltip.texture[i] or _G[tooltip:GetName().."Texture"..i]
				gem = tooltip.texture[i]:GetTexture()
				if type(gem) == "string" and tooltip.texture[i]:IsShown() then
					gem = gem:lower()
					if emptySocketIcons[gem] then
						gemCache[itemID] = gemCache[itemID]..emptySocketIcons[gem]
					end
				else
					break
				end
			end
			if gemCache[itemID]:len() == lib:GetItemGemNum(itemID) then
				return gemCache[itemID]
			else
				gemCache[itemID] = nil
			end
		end
	end
	return nil
end

function lib:GetItemGemNum(itemID)
	itemID = lib:GetItemID(itemID)
	if itemID then
		if gemCountCache[itemID] then
			return gemCountCache[itemID]
		elseif not GetItemInfo(itemID) then
			tooltip:SetOwner(UIParent, "ANCHOR_NONE")
			tooltip:ClearLines()
			tooltip:SetHyperlink("item:"..itemID)
		end
		if GetItemInfo(itemID) then
			gemCountCache[itemID] = 0
			local stats = GetItemStats("item:"..itemID)
			for _, v in pairs(socketCount) do
				gemCountCache[itemID] = gemCountCache[itemID] + (stats[v] or 0)
			end
			return gemCountCache[itemID]
		end
	end
	return nil
end

function lib:GetItemID(link)
	if type(link) == "number" then
		return link
	elseif type(link) == "string" then
		return tonumber(link:match("item:(%d+)") or "")
	else
		return nil
	end
end

function lib:SetTooltip(link)
	if lib:GetItemID(link) then
		tooltip:SetOwner(UIParent, "ANCHOR_NONE")
		tooltip:SetHyperlink(link)
		tooltip:Show()
	end
end

function lib:GetTooltip()
	return tooltip
end

function lib:GetItemData(ex, ...)
	if type(ex) ~= "table" then return end
	for p in pairs(ex) do
		ex[p] = nil
	end
	local data, set, meta, gem, dataString, setString, metaString, gemString, metaCon, setName
	local avglevel, avgcount = 0, 0
	setTable = setTable or {}
	for i = 1, 19 do
		slotLink = select(i, ...)
		if slotLink then
			data, set, meta, gem = select(2, lib:ItemParser("player", i, slotLink, true))
			if data then
				dataString = (dataString and (dataString.."\n") or "")..data
			end
			if gem then
				gemString = (gemString or "")..gem
			end
			metaString = meta or metaString
			if set and set ~= "" then
				setString = true
				setTable[set] = (setTable[set] or 0) + 1
			end
			if i ~= 4 and i ~= 19 then
				avgcount = avgcount + 1
				avglevel = avglevel + (select(4, GetItemInfo(slotLink)) or 0)
			end
		end
	end
	avglevel = avgcount > 0 and (avglevel / avgcount) or 0
	if dataString then
		for p, v in pairs(replaceText) do
			dataString = dataString:gsub(p, v)
		end
		dataString = dataString:gsub("\n\n", "\n")
		dataString = dataString:gsub("^\n", "")
		dataString = dataString:gsub("\n$", "")
	end
	if gemString then
		if gemString == "" then
			gemString = nil
		else
			GemTable = GemTable or {}
			for p in pairs(GemTable) do
				GemTable[p] = nil
			end
			for i = 1, gemString:len() do
				gem = gemString:sub(i, i)
				GemTable[gem] = (GemTable[gem] or 0) + 1
			end
			GemTable.R, GemTable.Y, GemTable.B = GemTable.R or 0, GemTable.Y or 0, GemTable.B or 0
			gemString = ("R%dY%dB%d"):format(GemTable.R, GemTable.Y, GemTable.B)
		end
	end
	if gemString and metaString then
		if metaString == "" then
			metaString = nil
		else
			metaString = metaString:gsub("붉은색 ", "R")
			metaString = metaString:gsub("노란색 ", "Y")
			metaString = metaString:gsub("푸른색 ", "B")
			metaTable = metaTable or {}
			for p in pairs(metaTable) do
				metaTable[p] = nil
			end
			metaTable[0], metaTable[1], metaTable[2], metaTable[3], metaTable[4], metaTable[5] = ("\n"):split(metaString)
			metaString = nil
			metaCon = true
			for i, con in ipairs(metaTable) do
				con1, con2 = con:match("(.)보석 (%d+)개 이상")
				if con1 then
					if (GemTable[con1] or 0) < tonumber(con2) then
						metaCon = nil
						break
					end
				else
					con1, con2 = con:match("(.)보석 개수가 (.)보석보다 많음")
					if con1 then
						if GemTable[con1] <= GemTable[con2] then
							metaCon = nil
							break
						end
					end
				end
			end
			if metaCon then
				gemString = "M1"..gemString
				metaData = metaData or {}
				for p in pairs(metaData) do
					metaData[p] = nil
				end
				metaData[1], metaData[2] = ("/"):split(metaTable[0])
				for i = 1, 2 do
					if metaData[i] then
						metaData[i] = strtrim(metaData[i])
						if metaData[i]:find("^(.+) ++(%d+)$") then
							dataString = (dataString and (dataString.."\n") or "")..metaData[i]
						else
							metaString = metaData[i]
						end
					end
				end
			else
				gemString = "M0"..gemString
			end
		end
	elseif gemString then
		gemString = "M0"..gemString
	end
	if setString then
		setString = nil
		for s, c in pairs(setTable) do
			setString = (setString and (setString.."/") or "")..s:gsub("(.+)_(%d+)", "%1_"..c.."_%2")
			setName = s:match("(.+)_(%d+)")
			if setName and lib.setEffects[setName] then
				for p, v in pairs(lib.setEffects[setName]) do
					if c >= p then
						dataString = (dataString and (dataString.."\n") or "")..v
					end

				end
			end
			setTable[s] = nil
		end
	end
	if dataString then
		for p in pairs(ex) do
			ex[p] = nil
		end
		spliter = { ("\n"):split(dataString) }
		for i, d in pairs(spliter) do
			key, value = d:match("(.+) ++(.+)")
			if key then
				value = tonumber(value)
				if value then
					ex[key] = (ex[key] or 0) + value
				end
			else
				key, value = d:match("(.+) --(.+)")
				if key then
					value = tonumber(value)
					if value then
						ex[key] = max((ex[key] or 0) - value, 0)
					end
				end
			end
			spliter[i] = nil
		end
		if metaString and metaString:find("^아이템에 의한 방어도 (%d+)%%만큼 증가$") then
			if ex["아이템 방어도"] then
				ex["아이템 방어도"] = ex["아이템 방어도"] * (tonumber(metaString:match("(%d+)")) / 100 + 1)
			end
			metaString = nil
		end
	end
	return gemString or "M0R0Y0B0", metaString, setString, avglevel
end

lib.setEffects = {
	["갈래발굽의 힘"] = { [3] = "힘 +20" },
	["강력한 모조"] = { [2] = "전투력 +30" },
	["개혁가의 장비"] = { [2] = "전투력 +20" },
	["거친 황야 의복"] = { [2] = "적중도 +35" },
	["검은영혼의 손아귀"] = { [3] = "방어 숙련도 +30" },
	["검은용 쇠사슬 갑옷"] = { [2] = "적중도 +10", [3] = "치명타 및 주문 극대화 적중도 +28", [4] = "화염 저항력 +10" },
	["검은장막의 방어구"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "전투력 +40", [8] = "방어도 +200" },
	["검투사"] = { [2] = "방어도 +20", [3] = "방어 숙련도 +3", [5] = "치명타 및 주문 극대화 적중도 +14", [4] = "전투력 +10" },
	["검투사의 공포판금갑옷"] = { [2] = "탄력도 +35" },
	["경계의 부사령관 갑옷"] = { [2] = "전투력 +40", [6] = "체력 +20" },
	["계시의 의복"] = { [5] = "치명타 및 주문 극대화 적중도 +28" },
	["고결의 의복"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "주문력 +23", [8] = "방어도 +200" },
	["고룡가죽 전투장비"] = { [2] = "탄력도 +35" },
	["공포매듭 전투장비"] = { [2] = "탄력도 +35" },
	["공포의 검투사 의복"] = { [2] = "탄력도 +35" },
	["공포의 무자비한 검투사 전투장비"] = { [2] = "탄력도 +35" },
	["공포의 부사령관 의복"] = { [2] = "주문력 +23", [6] = "체력 +20" },
	["공포의안개 의복"] = { [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "주문력 +23" },
	["구름 덮인 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["구원의 검투사 방어구"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["구원의 대장군 방어구"] = { [2] = "탄력도 +35" },
	["구원의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["구원의 최고사령관 방어구"] = { [2] = "탄력도 +35" },
	["구원자의 전투장비"] = { [2] = "방패 막기 숙련도 +10" },
	["그늘매듭 의복"] = { [2] = "주문력 +18", [4] = "체력 +25" },
	["기원의 의복"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "주문력 +23" },
	["기회주의자의 전투장비"] = { [2] = "탄력도 +35" },
	["네루비안 껍질"] = { [2] = "적중도 +15", [4] = "체력 +25" },
	["녹색용 쇠사슬 갑옷"] = { [2] = "5초당 마나 회복량 +3" },
	["달렌드의 무기"] = { [2] = "전투력 +50" },
	["달빛매듭 전투장비"] = { [2] = "탄력도 +35" },
	["대군주의 결의"] = { [2] = "회피 숙련도 +12" },
	["대장군의 공포의복"] = { [2] = "탄력도 +35" },
	["대장군의 구원"] = { [2] = "탄력도 +35" },
	["대장군의 성역"] = { [2] = "탄력도 +35" },
	["대장군의 아이기스"] = { [2] = "탄력도 +35" },
	["대장군의 야생가죽"] = { [2] = "탄력도 +35" },
	["대장군의 예복"] = { [2] = "탄력도 +35" },
	["대장군의 의복"] = { [2] = "탄력도 +35" },
	["대장군의 전투장비"] = { [2] = "탄력도 +35" },
	["대장군의 제복"] = { [2] = "탄력도 +35" },
	["대장군의 지각변동"] = { [2] = "탄력도 +35" },
	["대장군의 천둥주먹"] = { [2] = "탄력도 +35" },
	["대장군의 추격"] = { [2] = "탄력도 +35" },
	["데빌사우루스 갑옷"] = { [2] = "적중도 +20" },
	["데피아즈단"] = { [2] = "방어도 +10", [3] = "비전 저항력 +5", [5] = "전투력 +10", [4] = "숙련도 +2" },
	["독사의 은총"] = { [3] = "숙련도 +4", [5] = "지능 +10", [4] = "주문력 +6" },
	["두꺼운 드레나이 방어구"] = { [2] = "적중도 +15", [4] = "치명타 및 주문 극대화 적중도 +15" },
	["드레나이 미늘 갑옷"] = { [2] = "치명타 및 주문 극대화 적중도 +15", [4] = "주문력 +18" },
	["레이네의 복수"] = { [2] = "주문력 +12" },
	["마나 깃든 예복"] = { [2] = "적중도 +35" },
	["마력 깃든 아다만타이트 갑옷"] = { [3] = "무기 막기 숙련도 +20" },
	["마력 깃든 황천매듭 제복"] = { [3] = "치명타 및 주문 극대화 적중도 +28" },
	["마법술사의 전투장비"] = { [2] = "탄력도 +35" },
	["마술사의 의복"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "주문력 +23", [8] = "방어도 +200" },
	["명주 전투장비"] = { [2] = "탄력도 +35" },
	["모독의 검투사 방어구"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["무쇠깃털 갑옷"] = { [2] = "주문력 +20" },
	["무쇠매듭 전투장비"] = { [8] = "방어도 +200" },
	["무용의 전투장비"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "전투력 +40", [8] = "방어도 +200" },
	["믿음의 검투사 예복"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["믿음의 무자비한 검투사 예복"] = { [2] = "탄력도 +35" },
	["바람매 갑옷"] = { [3] = "5초당 마나 회복량 +8" },
	["바람화살 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["보루의 부사령관 갑옷"] = { [2] = "주문력 +23", [6] = "체력 +20" },
	["복수심에 불타는 검투사 갑옷"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 구원의복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 마법의복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 방어구"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 보호구"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 비호장비"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 사제의복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 수의"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 신성예복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 예복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 의복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 전투장비"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 제복"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 주술갑옷"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 주술방어구"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 주술장비"] = { [2] = "탄력도 +35" },
	["복수심에 불타는 검투사 추적장비"] = { [2] = "탄력도 +35" },
	["부사령관의 도적 제복"] = { [2] = "무기 막기 숙련도 +20", [6] = "체력 +15" },
	["부사령관의 드루이드 의복"] = { [2] = "전투력 +40", [6] = "체력 +15" },
	["부사령관의 마법사 의복"] = { [2] = "주문력 +23", [6] = "체력 +15" },
	["부사령관의 사냥꾼 갑옷"] = { [2] = "무기 막기 숙련도 +20", [6] = "체력 +15" },
	["부사령관의 사제 예복"] = { [2] = "주문력 +23", [6] = "체력 +15" },
	["부사령관의 성기사 갑옷"] = { [2] = "지능 +6\n치명타 및 주문 극대화 적중도 +14", [6] = "체력 +15" },
	["부사령관의 전투장비"] = { [2] = "무기 막기 숙련도 +20", [6] = "체력 +15" },
	["부사령관의 주술사 갑옷"] = { [2] = "전투력 +40", [6] = "체력 +20" },
	["부사령관의 흑마법사 의복"] = { [2] = "주문력 +23", [6] = "체력 +15" },
	["북풍의 은총"] = { [2] = "치명타 및 주문 극대화 적중도 +15", [4] = "전투력 +30" },
	["불굴의 방어구"] = { [2] = "탄력도 +20" },
	["불타는 분노"] = { [2] = "적중도 +20" },
	["붉은덩굴 의복"] = { [3] = "치명타 및 주문 극대화 적중도 +28" },
	["붉은십자군"] = { [2] = "방어도 +10", [3] = "방어 숙련도 +2", [6] = "적중도 +10", [4] = "암흑 저항력 +5" },
	["붉은영혼의 손아귀"] = { [3] = "5초당 마나 회복량 +12" },
	["붉은호랑이 방어구"] = { [2] = "적중도 +14\n치명타 및 주문 극대화 적중도 +14" },
	["비전매듭 의복"] = { [3] = "적중도 +16" },
	["비전의 검투사 의복"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["비전의 무자비한 검투사 의복"] = { [2] = "탄력도 +35" },
	["비전의 부사령관 의복"] = { [2] = "주문력 +23", [6] = "체력 +20" },
	["비호의 검투사 방어구"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["비호의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["산악연대의 결단"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 결심"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 결의"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 기상"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 맹세"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 의지"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["산악연대의 인내"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["서리미늘 예복"] = { [2] = "적중도 +15", [4] = "전투력 +30" },
	["서리장식의 힘"] = { [2] = "주문력 +18", [4] = "정신력 +15" },
	["성령의 갑옷"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "전투력 +40", [8] = "방어도 +200" },
	["성역의 검투사 의복"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["성역의 무자비한 검투사 의복"] = { [2] = "탄력도 +35" },
	["성자의 의복"] = { [2] = "주문력 +12" },
	["성전사 방어구"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "전투력 +40" },
	["성전사의 문장 전투장비"] = { [2] = "탄력도 +35" },
	["성전사의 미늘 전투장비"] = { [2] = "탄력도 +35" },
	["세나리온 의복"] = { [5] = "치명타 및 주문 극대화 적중도 +28" },
	["수렵꾼의 갑옷"] = { [2] = "전투력 +20" },
	["시체 수의"] = { [2] = "방어 숙련도 +5", [3] = "전투력 +10", [5] = "적중도 +20", [4] = "비전 저항력 +15\n화염 저항력 +15\n자연 저항력 +15\n냉기 저항력 +15\n암흑 저항력 +15" },
	["시체더미 의복"] = { [2] = "방어 숙련도 +5", [3] = "지능 +5", [5] = "주문력 +23", [4] = "비전 저항력 +15\n화염 저항력 +15\n자연 저항력 +15\n냉기 저항력 +15\n암흑 저항력 +15" },
	["신비술사 의복"] = { [3] = "주문력 +18" },
	["신의 파편"] = { [2] = "비전 저항력 +10\n화염 저항력 +10\n자연 저항력 +10\n냉기 저항력 +10\n암흑 저항력 +10" },
	["신탁의 검투사 예복"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["신탁의 대장군 예복"] = { [2] = "탄력도 +35" },
	["신탁의 무자비한 검투사 예복"] = { [2] = "탄력도 +35" },
	["신탁의 부사령관 의복"] = { [2] = "주문력 +23", [6] = "체력 +20" },
	["신탁의 최고사령관 예복"] = { [2] = "탄력도 +35" },
	["심판의 갑옷"] = { [5] = "주문력 +47" },
	["심판의 검투사 전투장비"] = { [2] = "탄력도 +35" },
	["심판의 무자비한 검투사 전투장비"] = { [2] = "탄력도 +35" },
	["쌍둥이 별"] = { [2] = "주문력 +15" },
	["아다만타이트 전투장비"] = { [3] = "무기 공격력 +4" },
	["악령술사의 의복"] = { [2] = "주문력 +12" },
	["악마의 검투사 수의"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["악마의 무자비한 검투사 수의"] = { [2] = "탄력도 +35" },
	["암살의 검투사 제복"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["암살의 무자비한 검투사 제복"] = { [2] = "탄력도 +35" },
	["야만의 사로나이트 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["야만의 서리 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["야만의 판금 전투장비"] = { [2] = "탄력도 +35" },
	["야생의 검투사 방어구"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["야생의 드레나이 방어구"] = { [2] = "주문력 +18", [4] = "체력 +20" },
	["야생의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["야생의정수 의복"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "전투력 +26\n주문력 +15", [8] = "방어도 +200" },
	["야수왕의 갑옷"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "전투력 +40", [8] = "방어도 +200" },
	["야수추적자 갑옷"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "전투력 +40" },
	["야전사령관의 도적 제복"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["야전사령관의 드루이드 의복"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["야전사령관의 마법사 의복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["야전사령관의 사냥꾼 갑옷"] = { [2] = "체력 +20", [6] = "민첩성 +20" },
	["야전사령관의 사제 예복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["야전사령관의 성기사 갑옷"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["야전사령관의 전사 갑옷"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["야전사령관의 주술사 갑옷"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["야전사령관의 흑마법사 의복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["어둠추적자 갑옷"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "전투력 +40" },
	["얼음결 예복"] = { [3] = "주문력 +26" },
	["영혼매듭 예복"] = { [3] = "적중도 +16" },
	["예언자의 고리사슬 전투장비"] = { [2] = "탄력도 +35" },
	["예언자의 사슬매듭 전투장비"] = { [2] = "탄력도 +35" },
	["예언자의 쇠사슬 전투장비"] = { [2] = "탄력도 +35" },
	["용가죽 전투장비"] = { [2] = "탄력도 +35" },
	["용맹의 전투장비"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "전투력 +40" },
	["우레의 방어구"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "주문력 +23", [8] = "방어도 +200" },
	["우체국장"] = { [2] = "방어도 +50", [3] = "비전 저항력 +10\n화염 저항력 +10", [5] = "지능 +10", [4] = "주문력 +12" },
	["원소술사 의복"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "주문력 +23" },
	["원소쐐기 갑옷"] = { [3] = "전투력 +40" },
	["원시술사의 기원"] = { [2] = "주문력 +18" },
	["위안의 검투사 의복"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["위안의 대장군 의복"] = { [2] = "탄력도 +35" },
	["위안의 무자비한 검투사 의복"] = { [2] = "탄력도 +35" },
	["위안의 부사령관 의복"] = { [2] = "전투력 +40", [6] = "체력 +20" },
	["위안의 최고사령관 의복"] = { [2] = "탄력도 +35" },
	["응징의 전투장비"] = { [5] = "주문력 +71" },
	["자연의정수 의복"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "주문력 +15\n전투력 +26" },
	["자유사상가의 갑옷"] = { [2] = "5초당 마나 회복량 +4" },
	["잔질의 집중력"] = { [2] = "적중도 +8\n주문력 +6" },
	["장군의 도적 제복"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["장군의 드루이드 의복"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["장군의 마법사 의복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["장군의 사냥꾼 갑옷"] = { [2] = "체력 +20", [6] = "민첩성 +20" },
	["장군의 사제 예복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["장군의 성기사 갑옷"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["장군의 전사 갑옷"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["장군의 주술사 갑옷"] = { [2] = "체력 +20", [6] = "전투력 +40" },
	["장군의 흑마법사 의복"] = { [2] = "체력 +20", [6] = "주문력 +23" },
	["적출자의 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["전세의 검투사 방어구"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["전세의 대장군 방어구"] = { [2] = "탄력도 +35" },
	["전세의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["전세의 최고사령관 방어구"] = { [2] = "탄력도 +35" },
	["전투의 검투사 갑옷"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["전투의 무자비한 검투사 갑옷"] = { [2] = "탄력도 +35" },
	["전투의 부사령관 갑옷"] = { [2] = "전투력 +40", [6] = "체력 +20" },
	["점술가의 의복"] = { [2] = "5초당 마나 회복량 +4" },
	["정령의 방어구"] = { [2] = "방어도 +200", [8] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [4] = "주문력 +23" },
	["제사장의 의복"] = { [2] = "5초당 마나 회복량 +4" },
	["죽음의 뼈갑옷"] = { [2] = "방어 숙련도 +5", [3] = "방어도 +50", [5] = "무기 막기 숙련도 +20", [4] = "비전 저항력 +15\n화염 저항력 +15\n자연 저항력 +15\n냉기 저항력 +15\n암흑 저항력 +15" },
	["죽음의안개 의복"] = { [2] = "비전 저항력 +8\n화염 저항력 +8\n자연 저항력 +8\n냉기 저항력 +8\n암흑 저항력 +8", [6] = "주문력 +23", [8] = "방어도 +200" },
	["지각변동의 검투사 방어구"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["지각변동의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["지옥 가죽 방어구"] = { [3] = "회피 숙련도 +20" },
	["지옥강철 전투장비"] = { [3] = "힘 +25" },
	["지옥껍질 갑옷"] = { [2] = "치명타 및 주문 극대화 적중도 +15", [4] = "체력 +20" },
	["지옥무쇠 사슬 방어구"] = { [2] = "치명타 및 주문 극대화 적중도 +14", [4] = "5초당 마나 회복량 +8" },
	["지옥무쇠 판금 방어구"] = { [2] = "적중도 +15", [4] = "힘 +20" },
	["지옥추적자 갑옷"] = { [3] = "적중도 +20" },
	["질풍의 라트로"] = { [2] = "전투력 +30" },
	["집행의 방어구"] = { [5] = "치명타 및 주문 극대화 적중도 +14" },
	["천둥주먹의 검투사 방어구"] = { [2] = "탄력도 +100\n주문력 +29", [4] = "주문력 +88" },
	["천둥주먹의 무자비한 검투사 방어구"] = { [2] = "탄력도 +35" },
	["천벌의 의복"] = { [3] = "주문력 +23" },
	["최고사령관의 공포의복"] = { [2] = "탄력도 +35" },
	["최고사령관의 구원"] = { [2] = "탄력도 +35" },
	["최고사령관의 성역"] = { [2] = "탄력도 +35" },
	["최고사령관의 아이기스"] = { [2] = "탄력도 +35" },
	["최고사령관의 야생가죽"] = { [2] = "탄력도 +35" },
	["최고사령관의 예복"] = { [2] = "탄력도 +35" },
	["최고사령관의 의복"] = { [2] = "탄력도 +35" },
	["최고사령관의 전투장비"] = { [2] = "탄력도 +35" },
	["최고사령관의 제복"] = { [2] = "탄력도 +35" },
	["최고사령관의 지각변동"] = { [2] = "탄력도 +35" },
	["최고사령관의 천둥주먹"] = { [2] = "탄력도 +35" },
	["최고사령관의 추격"] = { [2] = "탄력도 +35" },
	["추적의 검투사 장비"] = { [2] = "탄력도 +100\n전투력 +50", [4] = "전투력 +150" },
	["추적의 무자비한 검투사 장비"] = { [2] = "탄력도 +35" },
	["추적의 부사령관 갑옷"] = { [2] = "민첩성 +20", [6] = "체력 +20" },
	["추적자의 사슬 전투장비"] = { [2] = "탄력도 +35" },
	["코도가죽 전투장비"] = { [2] = "탄력도 +35" },
	["코륨 방어구"] = { [3] = "주문력 +29" },
	["태초의 의복"] = { [3] = "방어도 +150\n방어 숙련도 +22" },
	["테로샨의 의복"] = { [6] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 결심"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 결의"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 기상"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 맹세"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 의지"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸단의 인내"] = { [2] = "체력 +5", [3] = "치명타 및 주문 극대화 적중도 +14" },
	["파멸의 판금 갑옷"] = { [2] = "적중도 +35" },
	["폭풍도마뱀 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["폭풍안개 갑옷"] = { [4] = "전투력 +14" },
	["폭풍우 방어구"] = { [5] = "치명타 및 주문 극대화 적중도 +42" },
	["폭풍의 부사령관 갑옷"] = { [2] = "전투력 +40", [6] = "체력 +20" },
	["푸른용 쇠사슬 갑옷"] = { [2] = "비전 저항력 +20", [3] = "주문력 +28" },
	["피고리 제복"] = { [2] = "방어 숙련도 +5", [3] = "전투력 +10", [5] = "무기 막기 숙련도 +20", [4] = "비전 저항력 +15\n화염 저항력 +15\n자연 저항력 +15\n냉기 저항력 +15\n암흑 저항력 +15" },
	["학카리 쌍검"] = { [2] = "숙련도 +14" },
	["화려한 사로나이트 전투장비"] = { [6] = "탄력도 +50", [4] = "탄력도 +75" },
	["화염의 수호"] = { [3] = "무기 막기 숙련도 +20" },
	["환영술사의 의복"] = { [2] = "주문력 +12" },
	["황제의 갑옷"] = { [2] = "방어도 +100", [6] = "체력 +18", [4] = "전투력 +28" },
	["황천매듭 제복"] = { [2] = "주문력 +23", [4] = "치명타 및 주문 극대화 적중도 +14" },
	["황천비늘 갑옷"] = { [3] = "적중도 +20" },
	["황천쐐기 갑옷"] = { [3] = "주문력 +23" },
	["황천의 격노"] = { [3] = "지능 +20" },
	["황폐의 방어구"] = { [2] = "적중도 +35" },
	["정화된 신의 파편"] = { [2] = "주문력 +222" },
	["반짝이는 신의 파편"] = { [2] = "주문력 +250" },
}