﻿-- --------------------
-- TellMeWhen
-- Originally by NephMakes

-- Other contributions by:
--		Sweetmms of Blackrock, Oozebull of Twisting Nether, Oodyboo of Mug'thol,
--		Banjankri of Blackrock, Predeter of Proudmoore, Xenyr of Aszune

-- Currently maintained by
-- Cybeloras of Aerie Peak
-- --------------------


if not TMW then return end

local TMW = TMW
local L = TMW.L
local print = TMW.print

local ClassSpellCache = TMW:GetModule("ClassSpellCache")

ClassSpellCache.RaceMap = {
	[1] = "Human",
	[2] = "Orc",
	[3] = "Dwarf",
	[4] = "NightElf",
	[5] = "Scourge",
	[6] = "Tauren",
	[7] = "Gnome",
	[8] = "Troll",
	[9] = "Goblin",
	[10] = "BloodElf",
	[11] = "Draenei",
	[22] = "Worgen",
	[25] = "Pandaren",
	[26] = "Pandaren",
	[24] = "Pandaren",
	[29] = "VoidElf",
	[30] = "LightforgedDraenei",
	[27] = "Nightborne",
	[28] = "HighmountainTauren",
	[31] = "ZandalariTroll", 
	[32] = "KulTiran",
	[34] = "DarkIronDwarf",
	[35] = "Vulpera",
	[36] = "MagharOrc",
	[37] = "Mechagnome",
	[52] = "Dracthyr", -- alliance
	[70] = "Dracthyr", -- horde
	[84] = "Earthen", -- horde
	[85] = "Earthen", -- horde
}

ClassSpellCache.SpellData = {
	[1] = {71,100,355,772,845,871,1160,1161,1464,1680,1715,1719,2565,3127,3411,5246,5308,6343,6544,6552,6572,6673,7384,12294,12323,12950,12975,18499,20243,23881,23920,23922,29725,29838,34428,46917,46924,46968,57755,64382,76856,76857,81099,85288,86101,86110,86535,88163,97462,102052,103827,107570,107574,115767,118000,118038,123829,137047,137048,137049,137050,152278,161798,163201,167105,184361,184364,184367,184783,190411,190456,198912,199023,199045,199261,202095,202163,202168,202224,202316,202560,202561,202603,202743,203177,203201,205800,206315,206572,208154,213871,213915,215568,227847,228920,231842,231847,235941,236077,236273,236279,236308,248621,260643,260708,262111,262150,262161,262228,262231,275334,275336,275338,275339,279423,280001,280392,280721,280772,281001,294184,294189,296087,315720,315948,316402,316405,316411,316428,316432,316440,316464,316474,316523,316778,316825,316828,316834,319157,319158,325446,329033,334779,335070,335077,335091,352998,376079,382258,382260,382549,382764,382767,382895,382896,382900,382939,382946,382948,382953,382954,382956,383082,383103,383115,383154,383155,383219,383287,383292,383295,383297,383317,383338,383341,383430,383442,383459,383468,383486,383703,383762,383848,383852,383854,383877,383885,383922,383959,384036,384041,384042,384063,384067,384072,384100,384110,384124,384318,384361,384404,384969,385008,385059,385512,385571,385703,385704,385840,385888,385952,386011,386027,386030,386071,386164,386196,386208,386284,386394,386477,386628,386630,386634,388004,388807,388933,389306,389308,389603,390123,390135,390138,390140,390713,391271,391572,391683,392536,392777,392792,392931,392936,393950,394062,394307,394311,394329,396749,397103,397708,400205,400314,400803,411764,424654,424742,429634,429636,429637,429638,429639,429641,429642,429644,429647,431548,434969,434970,435607,436148,436152,436162,436201,436358,436707,437068,437079,437118,437134,438590,438597,440277,440992,440993,440995,444767,444769,444770,444771,444772,444773,444774,444775,444776,444777,444778,444779,444780,446085,452494,456270,462115,462116,462117,462119,1219165,1219201,1227751,1229376,1234769,1234791,1235022,1235023,1235038,1235047,1235088,1235113},
	[2] = {465,498,633,642,853,1022,1044,2812,4987,5502,6940,7328,10326,13819,19750,20066,20271,20473,23214,24275,25780,26573,31821,31849,31850,31884,31935,32223,34767,34769,35395,53376,53385,53563,53576,53595,53600,62124,69820,69826,73629,73630,76671,82242,82326,85043,85222,85256,85673,85804,86102,86103,86539,86659,93417,96231,105805,105809,114154,114158,114165,115675,115750,121183,123830,137026,137027,137028,137029,146956,148039,152261,156322,156910,157047,161800,171648,183415,183435,183778,183997,184575,184662,190784,196926,197446,198034,199324,199330,199422,199452,199456,199542,200025,200327,200430,200474,200652,200654,203316,203776,204018,204019,204023,204054,204074,204077,205191,207028,209389,210256,210341,210378,212056,213644,214202,215652,215661,216331,216853,216855,216868,223306,223817,228049,230332,231642,231644,231663,231832,231895,234299,248033,255937,267316,267610,269569,270562,270564,275773,275779,280373,289941,290608,305394,315867,315921,315924,317866,317872,317906,317907,317911,321136,325966,326730,326732,326734,327193,327977,327979,327980,327981,342348,343527,343721,344172,353367,355614,358934,363613,375576,376996,377053,377128,378279,378285,378405,378425,378457,378762,378845,378974,379021,379022,379043,379391,380188,382536,383228,383254,383314,383328,383342,383344,383388,383396,384027,384376,384815,384820,384909,384914,385125,385414,385422,385427,385450,385515,385633,385726,386568,386653,386738,387170,387174,387781,387786,387791,387801,387805,387808,387879,387998,388007,389539,391054,391142,392902,392907,392911,392928,392938,392951,392961,393022,393024,393030,393071,393114,394088,402912,402964,402971,403010,403026,403479,403495,403509,403530,403654,403664,403698,403745,403826,403876,403975,404306,404357,404436,404512,404540,404542,404752,404834,405278,405289,405355,405461,405607,405757,406064,406101,406154,406157,406158,406468,406545,406646,406835,406872,406940,407067,408459,409439,409441,410126,412314,414073,414113,414195,414273,414443,414720,415091,415244,415364,416770,417383,417855,425518,427445,428076,431377,431402,431404,431406,431407,431413,431423,431425,431463,431474,431480,431482,431533,431551,431687,431730,432459,432463,432615,432626,432802,432804,432821,432866,432919,432929,432964,432977,432990,432992,433011,433015,433106,433568,433583,433718,439760,440013,445200,446663,447985,448040,453785,458359,460422,460720,461243,461244,461245,461246,461250,461273,461278,461287,462092,462093,462095,462096,468454,469279,469304,469309,469316,469317,469321,469325,469337,469409,469411,469416,469434,469439,469445,469476,469701,469770,469780,469883,469886,469895,556606,936051,1229376,1232616},
	[3] = {136,781,883,982,1462,1494,1513,1515,1543,2641,2643,5116,5384,6197,6991,19434,19574,19577,19801,19878,19879,19880,19882,19883,19884,19885,34026,34477,53209,53270,53351,53480,56641,61648,76657,83242,83243,83244,83245,93321,93322,109215,109248,109304,115939,120360,120679,125050,127933,131894,137014,137015,137016,137017,138430,147362,157443,162487,162488,185358,185789,186257,186265,186270,186289,186387,187650,187698,187707,190925,191384,193455,193468,193532,193533,194595,195645,199483,199528,199530,199532,199921,201430,202746,203235,203340,203413,203415,204089,205154,208652,209997,210000,212431,212436,212638,212640,213691,217200,229533,231548,236776,242155,248443,248518,257044,257284,257620,257621,257891,257944,259387,259391,259398,259489,259495,260228,260240,260241,260243,260248,260285,260309,260331,260367,260393,260402,260404,263135,264332,264735,265895,266921,267116,268501,269737,269751,270581,271014,271788,272651,273887,288613,294029,320976,321014,321290,321297,321460,321468,321530,325028,325037,342049,343241,343242,343244,343247,343248,344572,354831,355589,355596,356707,356719,356962,356976,357018,359844,360952,360966,378002,378004,378207,378209,378210,378244,378442,378743,378767,378769,378771,378913,378934,378937,378940,378950,378951,378955,378962,384790,384799,385539,385695,385737,385810,386870,388039,389019,389880,391559,392053,393344,393933,400456,407028,407404,407412,424557,424558,430707,430709,430712,450369,450373,450374,450375,450376,450378,450379,450381,450383,450384,450385,451516,451530,451546,459450,459455,459460,459466,459488,459502,459506,459507,459517,459527,459533,459534,459542,459546,459550,459552,459693,459730,459741,459783,459794,459802,459828,459843,459868,459875,459920,459921,459922,459939,459964,459983,459991,460198,462031,462036,462079,462080,462081,462082,466867,466904,466932,466990,467644,467741,467749,467897,467902,467911,467941,468695,468701,469638,469880,470068,470943,470945,471348,471350,471363,471366,471369,471427,471428,471876,472352,472357,472358,472476,472524,472550,472639,472660,472707,472719,472729,472741,473369,473370,473378,473379,473385,473520,473522,473523,474296,474421,474440,474456,474738,474746,1215021,1217102,1217429,1217434,1217524,1217535,1217788,1218150,1218223,1219162,1219616,1223323,1229376,1232739,1232955,1235397,1244920,1245926},
	[4] = {53,408,703,921,1329,1725,1752,1766,1776,1784,1804,1833,1856,1860,1943,1966,2094,2098,2823,2836,2983,3408,5277,5761,5938,6770,8676,8679,13750,13877,14062,14161,14190,14983,31209,31224,31230,32645,32743,35551,51667,51690,51723,56814,57934,58423,61329,76803,76806,76808,79008,79096,79134,82245,91023,108208,108209,108216,114014,114018,121411,121471,131511,137034,137035,137036,137037,137619,152152,154904,157442,185311,185313,185314,185438,185565,185763,193315,193531,193537,193539,193546,193640,195457,196819,196861,196864,196912,196922,196937,196938,196976,197000,197835,197899,198020,198145,198675,199736,200733,200758,200759,200806,207777,209752,210108,212182,212283,221622,231691,231716,231719,235484,238104,245687,255544,255989,256165,256170,256188,257505,269513,270061,271877,272026,277925,277953,279876,280716,280719,315341,315496,315508,315584,319032,319066,319175,319473,319600,319949,319951,328085,330469,331851,343142,343160,344362,344363,354124,354406,354425,354661,354825,354895,354897,359053,360194,378427,378436,378803,378807,378813,378996,379005,381542,381543,381619,381620,381621,381623,381624,381626,381627,381629,381630,381631,381632,381634,381637,381640,381652,381664,381669,381673,381797,381798,381799,381800,381801,381802,381822,381828,381839,381845,381846,381877,381878,381885,381894,381982,381985,381988,381989,381990,382015,382017,382238,382245,382503,382504,382505,382506,382507,382508,382511,382512,382513,382514,382515,382517,382518,382524,382525,382528,382742,382746,383281,384631,385478,385627,385722,386823,392384,393970,393972,394023,394309,394320,394321,394930,394931,394932,394935,394983,395422,400783,400804,421975,423054,423136,423647,423662,423683,423701,423703,424044,426555,426563,426591,426594,428377,428387,428486,441146,441247,441250,441263,441273,441274,441321,441346,441359,441367,441398,441403,441415,441423,441429,452536,453428,453457,454286,454300,454419,454426,454428,454429,454430,454432,454433,454434,454435,455072,455131,455143,455352,457022,457034,457052,457053,457054,457055,457056,457057,457058,457062,457063,457066,457067,457068,457512,461980,462102,462103,462104,462105,469642,469779,470347,470668,470669,1219122,1229376},
	[5] = {17,139,453,527,528,585,586,589,596,605,1706,2006,2050,2060,2061,2096,8092,8122,9484,10060,14914,15286,15407,15487,19236,20711,21562,32375,32379,33076,33206,34433,34861,34914,45243,47515,47540,47585,47788,55676,62618,63733,64044,64129,64843,64901,73325,77485,78500,81749,88625,108920,108942,108945,108968,109142,109186,109964,110744,120517,120644,121536,122121,123040,132157,137030,137031,137032,137033,155271,193063,193134,193155,193157,193195,194509,196439,196704,196707,196985,197045,197268,197419,197535,197862,198068,199259,199445,199484,199855,200128,200174,200183,200199,200209,204197,204263,205364,205367,205385,211522,212036,213610,213634,214205,214621,215768,215982,228260,228264,228266,231682,232698,235587,236499,238063,238100,238135,238136,238558,263165,263716,265259,271466,271534,280391,280749,280752,288733,289666,314867,316262,321291,321377,322115,327821,328530,335467,341167,341240,341273,341374,341491,341997,343690,345218,356085,357481,357711,368275,372307,372309,372354,372370,372616,372760,372835,372969,372972,372991,373003,373035,373049,373054,373065,373180,373202,373212,373218,373223,373273,373280,373310,373427,373446,373450,373456,373457,373466,373481,375767,375888,375901,375994,377065,377349,377422,377438,390615,390620,390622,390632,390667,390668,390670,390676,390684,390685,390686,390689,390691,390693,390705,390767,390770,390786,390832,390919,390954,390967,390972,390977,390992,390994,391090,391099,391109,391124,391151,391154,391161,391186,391209,391228,391233,391284,391297,391339,391381,391387,391399,392507,392988,393870,397527,406788,407430,407469,407470,408557,408853,409044,414553,415416,415479,417191,419110,421453,421557,424509,426438,428924,428940,433905,440006,440661,440662,440669,440670,440671,440674,440681,440738,440742,440743,440766,447444,448278,448403,449806,449874,449880,449912,450138,450405,450612,451018,451204,451234,451308,451311,451569,451840,453109,453726,453729,453783,453799,453828,453844,453845,453852,453917,453918,454001,457042,458718,459559,459985,459990,462097,462098,462099,462101,471504,471668,472361,472433,472568,1215241,1215245,1215265,1215275,1218211,1228516,1229376,1238052,1240364,1240388,1240394,1240401,1242666,1242779,1242862},
	[6] = {674,3714,42650,43265,45524,46584,46585,47476,47528,47541,47568,48263,48265,48707,48743,48792,49020,49028,49039,49143,49184,49206,49530,49576,49998,50842,50977,51052,51128,51271,51462,51986,53343,53344,53428,55078,55090,55095,55233,56222,57330,59057,61250,61999,62158,63560,77513,77514,77515,77575,77606,81136,81229,81333,82246,85948,86113,86536,86537,108194,108199,111673,114556,115989,127344,137005,137006,137007,137008,152279,152280,161797,178819,190780,194662,194679,194844,194878,194909,194912,194913,194916,194917,195182,195292,195621,195679,196770,197147,199719,199720,202727,203173,204080,205224,205723,205727,206930,206931,206940,206967,206970,206974,207018,207057,207061,207104,207126,207142,207167,207200,207230,207264,207269,207272,207289,207311,207317,207321,210128,212552,219786,219809,221536,221562,221699,233396,233412,253593,273946,273952,273953,274156,275699,276023,276079,276837,277234,278107,278223,279302,281208,281238,288848,288855,316239,316714,316803,316849,316867,316916,316961,317133,317214,317610,319230,319278,321995,325554,326805,326855,326977,327082,327574,343257,343294,356367,356470,356512,356520,373930,374030,374049,374261,374265,374277,374383,374504,374574,374598,374715,374717,374721,374737,374747,376251,376938,377056,377073,377076,377098,377190,377226,377440,377514,377537,377580,377587,377590,377592,377629,377637,377640,377655,377668,378848,383269,389682,390166,390175,390196,390259,390268,390270,390275,390283,391386,391395,391398,391458,391477,391517,391546,391566,391571,392566,392950,410301,410320,433901,433934,434028,434033,434075,434100,434136,434143,434151,434152,434157,434260,434261,434263,434905,435005,435010,436687,437122,437161,439843,439851,439948,440002,440031,440282,440476,441378,441894,443560,444005,444008,444010,444033,444037,444040,444047,444052,444069,444072,444074,444083,444097,444099,454786,454788,454822,454835,454842,454851,455135,455386,455395,455396,455397,455398,455993,456230,456237,456238,456240,457574,458572,458744,458752,458753,460448,462061,462062,462063,462064,469870,1218603,1229376,1230153,1230223,1230272,1230284,1230301,1233429,1234559,1238680,1238900,1249658},
	[7] = {370,546,556,974,1064,2008,2484,2645,2825,5394,6196,8004,8042,8143,16166,16196,17364,20608,30884,32182,33757,51485,51490,51505,51514,51533,51564,51886,52127,57994,58875,60103,60188,61295,61882,73899,73920,77130,77223,77226,77472,77756,79206,86099,86100,86108,86629,98008,108270,108271,108280,108281,108283,108285,108287,114050,114051,114052,117013,117014,137038,137039,137040,137041,157153,157154,157444,168534,170374,187828,187874,187880,188196,188443,190488,191634,191717,191861,192058,192063,192077,192088,192106,192222,192246,192249,193876,196840,196884,197214,197995,198067,198103,198434,198838,200071,200072,200076,201845,201900,204268,204331,204336,204403,206642,207399,207401,207778,210689,210714,210853,210873,211004,211010,211015,212048,231725,236501,260878,260895,262303,262624,262647,265046,269352,273221,277778,277784,280614,290250,305483,309328,318038,318044,319930,320125,320137,320746,327163,328928,328930,333919,333974,334033,334046,334195,334308,342240,342243,343198,343205,343226,343725,344357,353115,355580,355630,356736,375982,377933,378075,378077,378081,378193,378211,378266,378270,378271,378443,378773,378776,378779,381647,381650,381655,381689,381707,381708,381726,381764,381776,381782,381819,381867,381930,381932,381936,381946,382020,382021,382027,382030,382032,382039,382042,382045,382194,382197,382201,382215,382309,382315,382482,382732,382886,382888,383010,383011,383012,383013,383016,383222,383303,384087,384143,384149,384352,384355,384359,384363,384411,384444,384447,384450,390288,390370,392352,392915,392916,394150,404015,404019,404522,409293,410673,417374,428071,440012,443418,443423,443425,443441,443442,443444,443445,443446,443447,443448,443449,443450,443451,443454,444995,445024,445025,445026,445027,445028,445029,445030,445031,445032,445033,445034,445035,445036,448861,454009,454021,454022,454026,454027,454372,454391,454919,455088,455096,455110,455123,455129,455590,455630,460697,462106,462107,462108,462110,462368,462375,462383,462424,462440,462443,462454,462486,462587,462620,462695,462757,462762,462764,462791,462796,462816,462817,462840,462854,462862,462864,462866,462867,466467,467778,468571,468574,468625,468626,469314,469344,470053,470076,470194,470411,470490,1214207,1217092,1217525,1217598,1217622,1218047,1229376,1231772},
	[8] = {66,116,118,120,122,130,133,475,1449,1459,1463,1953,2120,2139,2948,3561,3562,3563,3565,3566,3567,5143,10059,11366,11416,11417,11418,11419,11420,11426,12051,12472,12846,12982,28271,28272,30449,30451,30455,31589,31661,32266,32267,32271,32272,33690,33691,35715,35717,44425,44457,44614,45438,49358,49359,49360,49361,53140,53142,55342,56377,61305,61721,61780,76613,80353,84714,86949,88342,88344,88345,88346,108839,108853,110959,112965,113724,114923,116011,117216,120145,120146,126819,131784,132620,132621,132626,132627,137018,137019,137020,137021,153561,153595,153626,155147,155148,155149,157642,157980,157981,157997,161353,161354,161355,161372,176242,176244,176246,176248,190319,190336,190356,190447,190740,193759,195283,198100,198144,198148,199786,203280,203286,205020,205021,205022,205023,205024,205025,205026,205027,205028,205029,205030,205036,205037,210086,210476,210805,212653,224869,231564,231567,231630,235219,235224,235297,235313,235365,235450,235711,235870,236058,236457,236628,236662,257537,257541,264354,269644,269650,270233,277787,277792,278309,281400,281402,281403,281404,281482,319836,321358,321387,321395,321420,321507,321526,321684,321699,321707,321710,321745,321747,342231,342245,342249,342344,343127,343140,343183,343222,343230,344587,344597,352278,353082,353128,365350,378198,378406,378448,378749,378756,378919,378947,379049,379993,380154,381244,382110,382144,382268,382270,382289,382292,382293,382297,382424,382440,382481,382490,382493,382569,382800,382820,382826,383092,383121,383391,383489,383604,383634,383669,383676,383782,383810,383860,383886,383967,383980,384033,384060,384174,384452,384581,384612,384651,384858,385167,386763,386828,387044,387807,389627,389713,389794,390218,390428,390612,391622,395277,395289,407581,410248,410939,414379,414659,414660,414664,415945,416094,416506,416714,416715,416719,417467,417489,417491,417493,418733,431038,431044,431066,431067,431095,431112,431117,431131,431166,431176,431178,431189,438595,438600,443739,443742,443783,444256,444483,444675,444719,444752,444756,444784,444827,444968,444974,444986,446534,446540,448601,448658,449293,449330,449349,449382,449394,449412,449558,449596,449619,449627,450206,450325,450331,450716,450746,450807,450813,450831,451035,451440,451466,451755,451757,451760,451875,452187,452196,452198,452924,452997,453002,453123,453282,453598,453600,454016,455428,457521,457728,457735,457803,458437,458513,460392,460590,461248,461257,461260,461261,461264,461456,461457,462083,462084,462085,462086,470021,1216953,1217359,1220739,1222947,1223798,1223800,1229376},
	[9] = {126,172,348,603,686,688,691,697,698,702,710,755,980,1098,1122,5484,5697,5740,5782,5784,6201,6353,6789,17877,17962,20707,23161,27243,29893,30146,30283,32388,48181,56244,77215,77219,77220,80240,93375,104316,104773,105174,108370,108415,108416,108503,108558,111400,111771,111898,113858,113860,116858,119898,137042,137043,137044,137046,152108,196102,196103,196226,196277,196406,196408,196412,196447,198590,200586,205145,205148,205179,205180,205184,212295,212371,212459,215941,219272,221711,231791,231792,231793,231811,234153,246985,248855,264000,264057,264078,264119,264130,264874,265187,266086,266134,267115,267170,267171,267211,267214,267215,267216,267217,268358,270545,278350,288843,316099,317138,324536,328774,333889,334183,334315,334319,334591,335052,335174,342601,342914,353294,353753,366222,384069,385881,385899,386105,386110,386113,386124,386174,386194,386613,386617,386620,386646,386648,386659,386664,386686,386689,386858,386864,386951,386976,386986,386997,387016,387075,387095,387103,387108,387153,387156,387165,387166,387173,387252,387259,387273,387275,387279,387384,387391,387399,387445,387494,387506,387541,387569,387600,387972,387976,388667,388827,388832,389359,389367,389590,389609,389623,399668,405327,405330,405670,405798,405936,405955,409835,410598,416230,416615,417234,417537,422054,426115,426352,428344,428351,428394,428514,428517,428518,428522,428911,429072,429115,429130,429581,429657,429893,429899,429902,429917,430014,440040,440043,440044,440045,440046,440048,440051,440055,440057,440059,440065,440070,442726,445465,445468,449614,449620,449624,449629,449631,449634,449637,449638,449701,449703,449704,449706,449707,452894,452902,452999,453034,453056,453080,453083,453087,453096,453105,453172,453189,453568,453619,453699,453744,453800,453908,454378,454735,454744,455449,455450,455502,455569,455572,455576,455585,455587,456939,456943,456946,456951,456975,456985,457025,457064,457114,458029,458034,458036,458041,459376,459440,460551,461917,462111,462112,462113,462114,1214442,1214467,1218692,1229376,1240189,1245325},
	[10] = {8647,100780,100784,101545,101546,101643,107428,109132,113656,115008,115069,115078,115098,115151,115173,115175,115178,115181,115203,115288,115310,115313,115315,115396,115399,115450,115546,115636,116092,116095,116645,116670,116680,116705,116812,116841,116844,116847,116849,117906,117907,117952,119381,119582,120224,120225,120227,121253,121817,122278,122280,122281,122470,122783,123904,123986,124146,124502,124682,125883,126892,126895,128595,132578,137022,137023,137024,137025,137384,137639,152175,157411,157445,169340,173841,195300,196607,196725,196730,196736,196737,196740,197895,197900,197908,197915,198898,201372,202107,202162,202200,202335,202370,202424,202577,205147,205234,207025,209525,212051,216519,218164,231602,231605,231876,232876,233759,242580,245013,247483,261767,261916,261917,261947,264348,274586,274909,274963,280195,280197,280515,287681,322101,322102,322104,322109,322113,322118,322120,322507,322719,322729,322740,322960,323999,324312,325093,325095,325153,325177,325197,325201,325208,325215,328670,343655,343730,343731,343744,344359,344487,345829,346104,353313,353361,353502,353584,354540,355917,357495,357633,362170,383695,383697,383698,383700,383707,383714,383785,383994,386937,386965,387046,387184,387219,387230,387276,387625,387638,387991,388020,388023,388031,388038,388193,388212,388218,388477,388491,388505,388509,388511,388517,388548,388551,388593,388615,388661,388664,388674,388681,388682,388701,388779,388809,388811,388812,388813,388814,388847,388848,388849,388856,388874,388917,389577,389579,389942,391330,391370,391383,391412,392900,392910,392958,392979,392982,392983,392985,392986,392989,392993,392994,393357,393400,393460,393516,394110,394123,396166,397251,397768,399226,399491,400053,400089,400629,404408,406888,410346,410777,411098,414131,414132,418359,422031,428200,432181,434774,438439,440008,442687,442719,442743,442747,442818,443028,443059,443087,443110,443255,443294,443566,443571,443589,443625,446260,446326,446345,448392,449582,450154,450335,450391,450426,450427,450432,450448,450503,450508,450514,450520,450529,450553,450560,450569,450595,450615,450622,450631,450638,450639,450867,450870,450875,450889,450892,450912,450965,450979,450982,450984,450985,450986,450987,450988,450989,450990,450991,450992,450993,450994,451017,451024,451029,451036,451041,451043,451294,451432,451454,451463,451485,451495,451498,451505,451515,451524,451529,451573,451576,451580,451823,452137,454483,454484,454969,455043,455068,455079,455081,455139,455945,457397,457974,458431,458623,459809,460276,460485,462087,462088,462090,462091,467270,467293,467307,467316,468430,471761,474441,1217413,1222923,1229376,1241059,1241097,1241136},
	[11] = {99,339,740,768,774,783,1079,1126,1822,1850,2637,2782,2908,5176,5211,5215,5217,5221,5225,5487,6795,6807,8921,8936,16864,16870,16931,16974,18562,18960,20484,22568,22570,22812,22842,24858,29166,33763,33786,33873,33891,33917,48438,48484,50334,50464,50769,52610,61336,77493,77495,77758,78674,78675,79577,80313,86093,86096,86097,86104,88423,88747,93402,102342,102351,102359,102401,102543,102558,102560,102693,102793,106830,106832,106839,106898,106951,108238,108299,113043,114107,124974,125972,127757,131768,132158,132469,135288,137009,137010,137011,137012,137013,145108,145205,155578,155580,155675,155783,155835,157447,158476,158477,158478,158504,164815,164862,165962,190984,191034,192081,193753,194153,194223,197061,197073,197488,197490,197491,197492,197524,197625,197626,197628,197632,197721,197911,200383,200390,200567,200851,200854,200931,201664,202021,202028,202031,202155,202226,202246,202342,202345,202347,202425,202430,202626,202770,202918,203224,203242,203624,203651,203953,203962,203964,203965,203974,204053,204066,205636,205673,207017,207383,207385,209730,209740,209749,210053,210065,210706,212040,213200,213764,217615,228431,228545,231032,231040,231042,231055,231063,231064,231065,231437,233673,233750,233754,233755,236012,236019,236020,236068,236144,236147,236180,236716,238049,247543,252216,270100,274281,274837,274902,276012,276029,279620,285381,285564,288826,289237,300346,300349,301768,319439,319454,326646,327541,327993,328025,328767,329042,343223,343238,343240,343647,345208,354541,354654,356517,370586,370695,371905,371999,372119,372567,372618,372943,372945,377210,377623,377779,377796,377801,377811,377842,377847,378988,382550,382552,382559,383191,383192,383195,383197,383352,384665,384667,384668,385786,390378,390772,390864,390902,391045,391078,391174,391347,391528,391548,391700,391709,391872,391875,391881,391888,391951,391969,391972,391978,392099,392116,392124,392160,392162,392167,392220,392221,392256,392288,392301,392302,392325,392356,392378,392410,393014,393371,393414,393427,393611,393618,393760,393940,393954,393956,393991,394013,394046,394048,394058,394065,394094,394121,394786,395022,400059,400129,400140,400142,400222,400254,400278,400320,400533,403521,404521,405300,405834,406890,410544,411266,417382,421432,424058,424113,426702,426784,428544,428655,428731,428859,428937,429215,429227,429399,429402,429420,429433,429520,429523,429529,429530,429532,429533,429536,429538,429539,429540,429668,433748,433831,434220,434249,439528,439868,439880,439882,439890,439895,439901,439926,439929,440015,440116,440117,440118,440119,440120,441583,441675,441678,441689,441691,441809,441814,441824,441829,441835,441841,441844,441845,441846,443046,447131,449182,449184,449185,449191,449193,449537,449645,450212,450347,450356,450418,450558,450598,451211,455461,455797,462068,462069,462070,462071,462073,468146,468743,468936,468960,468978,469004,470540,470549,470562,470581,471492,473909,474526,474530,474541,474678,474750,1213597,1217017,1217474,1229376,1232897},
	[12] = {131347,162243,162794,178940,178976,179057,183752,185123,185164,185245,187827,188499,188501,189110,191427,195072,196055,196555,196718,198013,198589,198793,202137,202138,203513,203550,203555,203556,203720,203724,203747,203782,203783,204021,204157,204254,204596,204909,205411,205596,205604,205625,205626,205627,205629,205630,206416,206476,206477,206478,206803,207029,207197,207347,207387,207407,207548,207550,207666,207684,207697,207739,209258,209281,211489,211881,212084,212612,212613,213010,213410,213480,214743,217832,217996,218612,221351,226359,227174,228477,232893,247454,255260,258860,258876,258881,258887,258920,258925,263642,263648,268175,278326,278386,320313,320331,320341,320361,320364,320374,320377,320378,320379,320380,320381,320382,320386,320387,320402,320412,320413,320415,320416,320417,320418,320420,320421,320635,320639,320654,320770,320794,320962,321021,321028,321067,321068,321299,321453,326853,328725,336639,342817,343014,343017,343206,343207,343311,344859,344862,344865,347461,350570,354489,355995,357419,370965,388106,388107,388108,388111,388112,388113,388116,388118,389220,389687,389688,389693,389694,389695,389696,389705,389708,389711,389715,389718,389720,389721,389724,389729,389732,389763,389781,389783,389799,389824,389846,389849,389958,389976,389977,389978,389985,389997,390142,390152,390154,390158,390163,390213,390808,391165,391178,391189,391275,391397,391409,393029,393822,393827,395446,427640,427775,427776,427794,428232,428241,428492,428557,428603,428607,429211,442290,442492,442497,442502,442679,442683,442686,442714,442718,442736,442806,444926,444931,444997,452402,452403,452404,452405,452406,452407,452408,452409,452410,452411,452412,452413,452414,452415,462065,462066,462067,1220506,1229376,1235091},
	[13] = {351338,353167,355913,355936,356809,356810,356816,356995,357170,357208,357210,357211,358267,358385,359073,359793,359816,360806,360823,360827,360995,361021,361178,361227,361469,362874,362969,362980,363510,363534,363906,363916,364342,364343,365261,365262,365585,365933,365937,366155,367226,368412,368432,368838,368847,368970,369089,369297,369459,369846,369908,369909,369913,369939,369990,370062,370388,370452,370455,370537,370553,370665,370781,370783,370819,370821,370837,370839,370845,370867,370886,370888,370960,370962,371016,371032,371034,371038,371257,371426,371806,371832,372048,372233,372469,372527,373270,373834,373861,374227,374251,374346,374348,374968,375087,375406,375443,375510,375517,375520,375528,375542,375544,375554,375556,375561,375574,375577,375618,375721,375722,375725,375757,375777,375783,375796,375797,375801,376138,376150,376164,376166,376179,376204,376207,376236,376237,376239,376240,376872,376888,376930,377082,377086,377099,377100,377509,378196,378437,378438,378441,378444,381773,381921,381922,383005,384689,385696,386272,386283,386336,386342,386348,386405,387341,387761,387787,390386,395152,395153,395160,396043,396186,396187,396286,396571,400006,403208,403631,404195,404977,406041,406380,406659,406732,406904,406907,407243,407814,407866,407869,407876,408002,408004,408083,408233,408543,408775,409267,409311,409329,409676,410253,410260,410261,410352,410643,410685,410687,410784,411164,411165,411212,412710,412713,412723,412733,412774,414937,414969,415651,418101,429483,431442,431484,431615,431657,431695,431715,431840,431873,431874,431875,431984,432004,432008,433871,434300,436335,438587,441176,441180,441181,441206,441212,441219,441245,441246,441253,441257,441705,443177,443264,443328,444016,444020,444081,444088,444140,444322,444843,444845,444849,445074,445625,445958,454983,459120,459537,459725,462074,462075,462076,462078,1218447,1219236,1219723,1229376,1237978,1239581,1241352},
	["PET"] = {[47468]=6,[47481]=6,[47482]=6,[47484]=6,[62137]=6,[91776]=6,[91778]=6,[91797]=6,[91800]=6,[91802]=6,[91809]=6,[91837]=6,[91838]=6,[2649]=3,[16827]=3,[17253]=3,[24423]=3,[24450]=3,[26064]=3,[35346]=3,[49966]=3,[50245]=3,[50285]=3,[50433]=3,[54644]=3,[54680]=3,[61684]=3,[65220]=3,[88680]=3,[90328]=3,[90339]=3,[90347]=3,[90361]=3,[92380]=3,[93433]=3,[94019]=3,[94022]=3,[126259]=3,[126311]=3,[126364]=3,[159788]=3,[159953]=3,[160007]=3,[160011]=3,[160018]=3,[160044]=3,[160049]=3,[160057]=3,[160060]=3,[160063]=3,[160065]=3,[160067]=3,[263423]=3,[263446]=3,[263840]=3,[263841]=3,[263852]=3,[263853]=3,[263854]=3,[263856]=3,[263857]=3,[263858]=3,[263861]=3,[263863]=3,[263865]=3,[263867]=3,[263868]=3,[263869]=3,[263887]=3,[263892]=3,[263904]=3,[263916]=3,[263921]=3,[263934]=3,[263939]=3,[264023]=3,[264360]=3,[267922]=3,[279254]=3,[279259]=3,[279336]=3,[279362]=3,[279399]=3,[279410]=3,[280069]=3,[280151]=3,[288962]=3,[341115]=3,[341117]=3,[341118]=3,[344346]=3,[344347]=3,[344348]=3,[344349]=3,[344350]=3,[344351]=3,[344352]=3,[344353]=3,[392622]=3,[36213]=7,[57984]=7,[117588]=7,[118297]=7,[118345]=7,[157331]=7,[157348]=7,[157375]=7,[3110]=9,[3716]=9,[6358]=9,[6360]=9,[7814]=9,[7870]=9,[17735]=9,[17767]=9,[19505]=9,[19647]=9,[30151]=9,[30153]=9,[30213]=9,[32233]=9,[54049]=9,[89751]=9,[89766]=9,[89792]=9,[89808]=9,[112042]=9,[114355]=9,[115236]=9,[115268]=9,[115276]=9,[115625]=9,[115746]=9,[115748]=9,[115770]=9,[115778]=9,[115781]=9,[115831]=9,[117225]=9,[119899]=9,[134477]=9,[264993]=9},
	["RACIAL"] = {[822]={{10},0},[5227]={{5},0},[6562]={{11},0},[7744]={{5},0},[20549]={{6},0},[20550]={{6},0},[20551]={{6},0},[20552]={{6},0},[20555]={{8},0},[20557]={{8},0},[20572]={{2},45},[20573]={{2},0},[20577]={{5},0},[20579]={{5},0},[20582]={{4},0},[20583]={{4},0},[20585]={{4},0},[20589]={{7},0},[20591]={{7},978},[20592]={{7},0},[20593]={{7},0},[20594]={{3},0},[20596]={{3},0},[20598]={{1},0},[25046]={{10},8},[26297]={{8},0},[28730]={{10},384},[28875]={{11},0},[28877]={{10},0},[28880]={{11},1},[33697]={{2},576},[33702]={{2},400},[50613]={{10},32},[58943]={{8},0},[58984]={{4},0},[59221]={{11},0},[59224]={{3},0},[59542]={{11},2},[59543]={{11},4},[59544]={{11},16},[59545]={{11},32},[59547]={{11},64},[59548]={{11},128},[59752]={{1},0},[68975]={{22},0},[68976]={{22},0},[68978]={{22},0},[68992]={{22},0},[68996]={{22},0},[69041]={{9},0},[69042]={{9},0},[69044]={{9},0},[69045]={{9},0},[69046]={{9},2047},[69070]={{9},0},[69179]={{10},1},[80483]={{10},4},[87840]={{22},0},[92680]={{7},0},[92682]={{3},0},[94293]={{22},0},[107072]={{24},0},[107073]={{24},0},[107074]={{24},0},[107076]={{24},0},[107079]={{24},8},[121093]={{11},512},[129597]={{10},512},[131701]={{24},0},[154742]={{10},0},[154743]={{6},0},[154744]={{7},520},[154746]={{7},1},[154747]={{7},32},[154748]={{4},0},[155145]={{10},2},[202719]={{10},2048},[227057]={{7},4},[232633]={{10},16},[255647]={{30},0},[255650]={{30},0},[255651]={{30},0},[255652]={{30},0},[255653]={{30},0},[255654]={{28},0},[255655]={{28},0},[255656]={{28},0},[255658]={{28},0},[255659]={{28},0},[255661]={{27},0},[255663]={{27},0},[255664]={{27},0},[255665]={{27},0},[255667]={{29},0},[255668]={{29},0},[255669]={{29},0},[255670]={{29},0},[256948]={{29},0},[259930]={{30},0},[260364]={{27},0},[262438]={{27},0},[262486]={{29},0},[265221]={{34},0},[265222]={{34},0},[265223]={{34},0},[265224]={{34},0},[265225]={{34},0},[273105]={{34},0},[273216]={{36},0},[273217]={{36},0},[273220]={{36},0},[274738]={{36},0},[274743]={{36},0},[281954]={{31},0},[287712]={{32},0},[291417]={{32},0},[291442]={{32},0},[291619]={{31},0},[291622]={{32},0},[291628]={{32},0},[291944]={{31},0},[292489]={{31},0},[292495]={{32},0},[292751]={{31},0},[292752]={{31},0},[312198]={{35},0},[312215]={{35},0},[312370]={{35},0},[312372]={{35},0},[312411]={{35},0},[312425]={{35},0},[312766]={{37},0},[312769]={{35},0},[312890]={{37},0},[312896]={{37},0},[312916]={{37},0},[312923]={{37},0},[312924]={{37},0},[317795]={{35},0},[351239]={{52},4509},[357214]={{52},4096},[358731]={{52},0},[358733]={{52},0},[360009]={{52},0},[360022]={{52},4509},[362633]={{52},0},[362634]={{52},0},[365575]={{52},0},[366489]={{52},0},[368437]={{52},0},[370626]={{11},8},[376743]={{52},4096},[376744]={{52},4096},[381451]={{52},4096},[403216]={{52},4096},[406087]={{22},2047},[406096]={{22},2047},[416250]={{11},384},[430846]={{52},4096},[430935]={{52},0},[436339]={{84},0},[436340]={{84},0},[436341]={{84},0},[436344]={{84},0},[443602]={{84},0},[443603]={{84},0},[448924]={{84},0},[458619]={{1},0},[461063]={{84},0}},
}

local Cache = ClassSpellCache.SpellData

-- Adjustments to the imported cache data:
tinsert(Cache[3], 1, 75) -- Add "Auto Shot" to hunter.

-- Execute issues: see https://wow.curseforge.com/projects/tellmewhen/issues/1633
tinsert(Cache[1], 280735) -- The actual ID for Execute (fury)
tinsert(Cache[1], 281000) -- The actual ID for Execute (arms)

-- Evoker empowered spell issues, see https://github.com/ascott18/TellMeWhen/issues/2017
tinsert(Cache[13], 382614)
tinsert(Cache[13], 382731)
tinsert(Cache[13], 382411)