diff --git a/config.lua.dist b/config.lua.dist index 0ff7c015833..48724c61a77 100644 --- a/config.lua.dist +++ b/config.lua.dist @@ -43,8 +43,8 @@ maxItem = 2000 maxContainer = 100 -- Version -clientVersion = 1272 -clientVersionStr = "12.72" +clientVersion = 1285 +clientVersionStr = "12.85" -- Depot Limit freeDepotLimit = 2000 diff --git a/data/XML/mounts.xml b/data/XML/mounts.xml index a96a0c0ebcd..01cfd89d532 100644 --- a/data/XML/mounts.xml +++ b/data/XML/mounts.xml @@ -190,4 +190,8 @@ + + + + diff --git a/data/XML/outfits.xml b/data/XML/outfits.xml index 0d409937e5a..c5caf669676 100644 --- a/data/XML/outfits.xml +++ b/data/XML/outfits.xml @@ -103,6 +103,9 @@ + + + @@ -207,4 +210,7 @@ + + + diff --git a/data/items/items.otb b/data/items/items.otb index 2ae3d9094bb..54c721ce4d0 100644 Binary files a/data/items/items.otb and b/data/items/items.otb differ diff --git a/data/items/items.xml b/data/items/items.xml index 2f975fb0665..f54ef2caa73 100644 --- a/data/items/items.xml +++ b/data/items/items.xml @@ -71,18 +71,22 @@ + + - + + - - + + + @@ -151,7 +155,8 @@ - + + @@ -198,27 +203,27 @@ - - + + - - + + - - + + - - + + @@ -228,15 +233,15 @@ - - + + - - + + @@ -281,10 +286,11 @@ - + - + + @@ -299,8 +305,9 @@ - - + + + @@ -402,16 +409,16 @@ + - + - + - @@ -468,10 +475,10 @@ - - - + + + @@ -498,13 +505,13 @@ - - - + + + - + @@ -514,7 +521,7 @@ - + @@ -524,7 +531,7 @@ - + @@ -534,7 +541,7 @@ - + @@ -544,7 +551,7 @@ - + @@ -554,10 +561,10 @@ - - - + + + @@ -566,10 +573,10 @@ - - - + + + @@ -578,10 +585,10 @@ - - - + + + @@ -590,26 +597,27 @@ - - - + + + - + - + + - - + + + - @@ -635,24 +643,26 @@ - + - - + + - + - + + + @@ -660,9 +670,9 @@ - + - + @@ -677,9 +687,9 @@ - - + + @@ -788,8 +798,8 @@ - + @@ -805,14 +815,14 @@ - + - + @@ -822,13 +832,15 @@ - + - + + + @@ -842,42 +854,42 @@ + - - - + + - - + + - - + - + + - + - - + - + + - + - - + - + + @@ -886,20 +898,20 @@ - - + + - - + + - + @@ -909,7 +921,7 @@ - + @@ -925,46 +937,130 @@ - - - + + + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -979,21 +1075,105 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1183,74 +1363,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -1261,34 +1441,34 @@ - - - - + + + + - - - - + + + + - - - - + + + + @@ -1320,245 +1500,420 @@ - - + + - - + + - - + + - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - + - + - + - + @@ -1587,77 +1942,80 @@ - - - - + + + + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - - + - + + + @@ -1667,20 +2025,21 @@ - + - + - - + + + @@ -1689,77 +2048,75 @@ - + - + - + - + - + - - - - + + + - + - + - - - - + + + - - - + + + - - - + + + - + @@ -1770,74 +2127,74 @@ - + - + - + - + - + - + - - - - + + + + - - - - + + + + - + - - - - + + + + - + @@ -1856,7 +2213,9 @@ - + + + @@ -1865,8 +2224,8 @@ - + @@ -1960,8 +2319,8 @@ - + @@ -1972,8 +2331,8 @@ - + @@ -2013,24 +2372,24 @@ - + - + - + @@ -2041,8 +2400,8 @@ - + @@ -2081,24 +2440,24 @@ - + - + - + @@ -2109,8 +2468,8 @@ - + @@ -2135,24 +2494,24 @@ - + - + - + @@ -2170,8 +2529,8 @@ - + @@ -2185,8 +2544,8 @@ - + @@ -2204,8 +2563,8 @@ - + @@ -2248,13 +2607,12 @@ - - - + + @@ -2298,8 +2656,8 @@ - + @@ -2322,8 +2680,8 @@ - + @@ -2368,30 +2726,30 @@ - + - + - + - + - - - + + + @@ -2402,20 +2760,20 @@ - + - + - + - + @@ -2424,22 +2782,22 @@ - + - + - + - + - + - + @@ -2449,13 +2807,13 @@ - + - + - + @@ -2484,135 +2842,132 @@ - - - - - + + + + + - - - - - + + + + + - - + + - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - + + + + - + - - - - + + + + - + - + - - + + - - - - - + + + + + - - + + - - - - - + + + + + - - - - - + + + + @@ -2620,28 +2975,28 @@ - - - - + + + + - - - - + + + + - - + + @@ -2651,20 +3006,20 @@ - + - + - + - + @@ -2755,87 +3110,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2888,235 +3243,235 @@ - + - + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + + - - + + - - + + - - + + + - + - + + - - + - - + - + + - + + - - + + - - + + - - - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -3199,7 +3554,7 @@ - + @@ -3211,7 +3566,7 @@ - + @@ -3231,12 +3586,14 @@ - + + + - + @@ -3246,7 +3603,7 @@ - + @@ -3271,64 +3628,96 @@ - + + + - + + + - + + + - + + + - + + + - + + + - + + - + + - + + - + + - + + + - - - - - + + + + + + + + + + + + + + + - - + + + + + + @@ -3352,204 +3741,207 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - + - + + - - + - + + - - + + - - + + - + + - + - + + - + - + - + @@ -3560,22 +3952,22 @@ - + - + - + - + @@ -3583,309 +3975,309 @@ - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + + - + - + - + - + - - - + + - - + + + - + - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - + - + - + - + - - - + + + + - - + - + - + - + - + - - + - + - + - + - + - + - + + - - - + + + - + - + - @@ -3901,15 +4293,15 @@ - + - - + + @@ -3918,15 +4310,15 @@ - + - - + + @@ -3935,70 +4327,70 @@ - + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - + @@ -4042,7 +4434,7 @@ - + @@ -4054,29 +4446,29 @@ - + - + - + - + - + - + - + @@ -4084,7 +4476,7 @@ - + @@ -4129,11 +4521,11 @@ - + - + @@ -4148,8 +4540,12 @@ - - + + + + + + @@ -4161,11 +4557,10 @@ - - + + - @@ -4180,16 +4575,16 @@ - + - + - + - + @@ -4201,97 +4596,96 @@ - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + - - - + + + - + - + @@ -4318,8 +4712,8 @@ + - @@ -4340,7 +4734,7 @@ - + @@ -4352,106 +4746,107 @@ - - - + + + - + - + - - + + + - - - + + + - + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + @@ -4472,86 +4867,96 @@ - + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + + - @@ -4564,199 +4969,200 @@ - - + + - + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + - - - - + + + + + - - + - - + - - - + + + + - - - - + - - + + + + + - - - - - - - + + + + + + + + - - - - - + + + + + - - + + - - + + - - - - + + + - - + - - - + + + + - - + - - - + + + + - - + - + + + - - + + - - + + - - + - - - + + + + - - + - - - - - - - + + + + + + + + - + + @@ -4801,8 +5207,8 @@ - - + + @@ -4814,7 +5220,7 @@ - + @@ -4841,7 +5247,7 @@ - + @@ -4852,19 +5258,19 @@ - - + + - + - + @@ -4873,14 +5279,14 @@ - + - + @@ -4889,14 +5295,14 @@ - + - + @@ -4905,14 +5311,14 @@ - + - + @@ -4921,8 +5327,8 @@ - + @@ -4931,14 +5337,14 @@ - + - + @@ -4947,20 +5353,20 @@ - + - + - + - + @@ -4969,56 +5375,56 @@ - + - + - + - + - + - + - + - + - + @@ -5027,8 +5433,8 @@ - + @@ -5037,32 +5443,32 @@ - + - + - + - + - + @@ -5071,24 +5477,24 @@ - + - + - + - + @@ -5097,8 +5503,8 @@ - + @@ -5107,18 +5513,18 @@ - + - + - + @@ -5128,57 +5534,61 @@ - - + + - + + - + - - - - + + + + + - + + - + - + - + - + - + + - + - - + + @@ -5188,133 +5598,133 @@ - + - + - + - + - - + + - + - + - - + + - + + - - + + - + - + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + - - - - + + + - - + + - - + + - + @@ -5323,25 +5733,27 @@ - + - + + - + + - - + + - + @@ -5372,1713 +5784,1839 @@ - - - + + + + + + + - - - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + - - - - + + + + + - - - + + + + + + - + - - - - - - - + + + + + + - - - - + + + + + + + + - - - - - - + + + + - - - + + + + - - - - + + + + - - - + + + + - - - + + + + - - - + + - - - - + + + + + + + + - - - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - - + + + + + + + + - - - - - - - + + + + + - - - - + + + + + - - - + + - - - - + + + + + - - - + + + + - - - + + + + + + + - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + - - - - - - - + + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - - + + + + + + + - + - - - - - + + + + - - - + + + + + + - + - - - - - - + + + + + + + - + - - - - - + + + + - - - + + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - + + + + + + + + - - - - - - - - + + + + + + - - - - + - + + + + - - - + + + + - - - + + + + + + + - - - - - - - + + + + + + + - + - - - - - + + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + + + + - - - - - - - + + + + + + + - + - - - - + - + + + + + - + - - - - - + + + + - - - + + + + + + + - - - - - - - + + + + + - - - - + + + + + - - - + + + + - - - + + + + + + + - - - - - - - + + + + + + + - + - - - - - - + + + + + + + - + - - - - - + + + + + + + - - - - - - + + - + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + - - - + + - - - + + + + - + + + + + - - - - + + - - + + + - - + + + - - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + - + - + + - - + + + - - + + + - - + - + - + + - - + + + - - + + - - + + - - + + - - - + + + + - - - + + + - - + + + - - + - + - + + - - + + + - - - + + + + - - + + + - - - + + + - - + + + - - + - + - + + - - + + - - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + - + - + + - - + + + - - + - + - + + - - + + - - + + + - - + + + - - + + + - - - + + + - - + + + - - + - + - + + - - - + + + + - - - + + + - - + + + - - + - + - + + - - + + - - + + + - - + + + - - - + + + - - - + + + + - - - + + + - - + + + - - - + + + - - - + + + + - - + - + - + + - - + + + - - - + + + + - - - + + + - - - - - - + + + + + + - + - + + - - - + + + - - + + + - - + - + - + + - - + + + - - + + - + + - - + + + - - + + + - - + - + - + + - - + + + - - + + + - - + + + - - + + + - - - + + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - - + + + + - - - + + + - - + + - - + + - - - - + + + + - - + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - + + - - - - + + + + - - + + - - - - + + + + - - + + - - - - + + + + - - + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - - - + + + + - - + + - - + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -7087,13 +7625,14 @@ - - - + + + + - + @@ -7126,8 +7665,8 @@ + - @@ -7154,11 +7693,11 @@ - + + - @@ -7170,28 +7709,28 @@ - + - + - + - + - + - + - + - + @@ -7199,37 +7738,37 @@ - + - + - + + - + - - - + + - + - - + + @@ -7261,10 +7800,10 @@ - + - + @@ -7279,233 +7818,238 @@ - + - + - - + - - - - - - - + + + + + + + + - - + + - + - - - + + - + - - - + + - - + + - - + + - - + + - - + + - - + + - - + - - + + + - - + + + - - + + + - - + + - - + + + - - - + + + + - - - + + + + - - + - + - + + - - + - - + - - + - - + + + - - + + - - + + + - - - + + + - - - + + + + - - - - + + + + + - - - + + + + - + - + - + - + - - + + @@ -7532,8 +8076,8 @@ - + @@ -7578,8 +8122,8 @@ - + @@ -7606,21 +8150,25 @@ - + - + - - + + + + + + @@ -7652,7 +8200,9 @@ - + + + @@ -7664,20 +8214,20 @@ - + - + - + @@ -7700,8 +8250,8 @@ - + @@ -7795,2365 +8345,2365 @@ - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + + - - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - + - - - - + + + + - - - + + + - - + + - - + + - + + - - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - + + + - - + + - + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - - + + - + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - - - + - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - + - + - - - + + + - - - + + + - - + + - - + + - - + + - + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - - + + + + - - - + + + - + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - - - - + + + + - - - + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - + + + + + - - + - - - - + + + + - - - + + + - - - + + + - + - + - - - - + + + + - - - + + + - - + + - + - + - - - - + + + + - - - + + + - - - - - - - + + + + + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - - + - - - - - - - + - - - - - - + + + + + + + + + - + + + + - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - + @@ -10170,48 +10720,48 @@ + - - + + - - - + - + + - - + - + + - - + - + + - + @@ -10233,16 +10783,16 @@ + - + - @@ -10252,7 +10802,7 @@ - + @@ -10260,28 +10810,28 @@ - + - + - + - - - + + + @@ -10290,98 +10840,100 @@ - + - - + - + + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10394,13 +10946,13 @@ - + - + @@ -10424,18 +10976,18 @@ - - + + - + - + - + @@ -10451,12 +11003,12 @@ - - + + - + @@ -10470,7 +11022,9 @@ - + + + @@ -10539,23 +11093,23 @@ - + - + - + - + - + @@ -10565,8 +11119,8 @@ - + @@ -10584,8 +11138,8 @@ - + @@ -10599,8 +11153,8 @@ - + @@ -10618,8 +11172,8 @@ - + @@ -10633,8 +11187,8 @@ - + @@ -10652,8 +11206,8 @@ - + @@ -10667,8 +11221,8 @@ - + @@ -10686,8 +11240,8 @@ - + @@ -10701,8 +11255,8 @@ - + @@ -10713,8 +11267,8 @@ - + @@ -10725,8 +11279,8 @@ - + @@ -10737,8 +11291,8 @@ - + @@ -10766,8 +11320,8 @@ - + @@ -10778,8 +11332,8 @@ - + @@ -10818,25 +11372,31 @@ - + - + - + + + - + + + - + + + @@ -10845,7 +11405,7 @@ - + @@ -10879,44 +11439,44 @@ - - - + + + - - + + - + - + - + - + @@ -10954,8 +11514,8 @@ - + @@ -10970,14 +11530,14 @@ - - + + - - + + @@ -10996,128 +11556,130 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + @@ -11127,8 +11689,8 @@ + - @@ -11136,29 +11698,29 @@ - - - + + + - - - - + + + + - - - + + + - - - + + + @@ -11172,44 +11734,44 @@ - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + - - + + + + + @@ -11221,31 +11783,31 @@ - - - + + + - - - + + + - - + + - - + - + + @@ -11264,22 +11826,22 @@ - - - + + + - - - + + + - - + + @@ -11287,7 +11849,7 @@ - + @@ -11296,26 +11858,26 @@ - - - - + + + + - - - + + + - - - + + + @@ -11348,23 +11910,24 @@ - - + + + - - - + + + - + @@ -11377,8 +11940,8 @@ - + @@ -11387,30 +11950,30 @@ - + - - - + + + - - - + + + - - + + @@ -11419,9 +11982,9 @@ - - + + @@ -11435,22 +11998,24 @@ - - - + + + - - + + + + + - - - + + @@ -11459,39 +12024,40 @@ - - + - + + + - + - + - + - + - + @@ -11501,17 +12067,17 @@ - - + + - + @@ -11520,10 +12086,23 @@ - + + + - - + + + + + + + + + + + + + @@ -11532,28 +12111,28 @@ - + - + - + - + - + - + @@ -11562,53 +12141,53 @@ - + - + - + - + - + - + - + + - - + - + - + @@ -11618,51 +12197,52 @@ - + - + - + - + - - - + + + + - - + + - - + + - - + + - + - + @@ -11685,18 +12265,19 @@ - - - + + + + - - + + - + @@ -11709,24 +12290,24 @@ - + - - + + - - + + @@ -11738,104 +12319,106 @@ - - - - - - - + + + + + + + - - - + + + - - - - + + + + - - - + + + - - - - - - + + + + + + + + - - - + + + - + - + - + - + - + - + - - + + - - + + - + @@ -11845,923 +12428,929 @@ - - + + - + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - + - - + + - + + + - + - + - + - + - + - + - + - - + + + - - + + + - + - + @@ -12771,10 +13360,11 @@ - - - + + + + @@ -12783,8 +13373,8 @@ + - @@ -12793,43 +13383,45 @@ - + + + - + - - + + - - + + - - + + - - + + - + - + @@ -12837,34 +13429,34 @@ - + - + - + - + - + - - + + @@ -12872,15 +13464,19 @@ - + + + - + + + - + @@ -12891,8 +13487,8 @@ - + @@ -12931,16 +13527,16 @@ - + - + @@ -12954,8 +13550,8 @@ - + @@ -12966,8 +13562,8 @@ - + @@ -13006,23 +13602,25 @@ - + - + - + + + @@ -13032,463 +13630,464 @@ + - - - + + - - + + + - + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - + + - - - + + + - - - - + + + + @@ -13502,24 +14101,30 @@ - + + + - - - + + + - - - - + + + + - - + + + + + + @@ -13564,33 +14169,37 @@ - + - + + + - + - + + + + - - + - + - + @@ -13609,59 +14218,67 @@ + - - + - + - + + - - - + + + + + + - - - + + + + + + + + + - - - - - + + + - - - + + + - - + + - + @@ -13669,61 +14286,62 @@ - + - - - - + + + + + + + + - - - - - - + + + - - - + + - - + + - - + + + - - - + + + - + @@ -13739,9 +14357,9 @@ - - + + @@ -13756,14 +14374,14 @@ - + - + - + @@ -13774,58 +14392,59 @@ - - + + - - - + + + + + + + - - - - + - - + + - - - + + + - - + + - - + + - - + + @@ -13848,95 +14467,96 @@ - + - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -13977,16 +14597,16 @@ - + - + @@ -14007,8 +14627,8 @@ - + @@ -14026,8 +14646,8 @@ - + @@ -14041,8 +14661,8 @@ - + @@ -14060,8 +14680,8 @@ - + @@ -14102,8 +14722,12 @@ - - + + + + + + @@ -14121,8 +14745,8 @@ - + @@ -14140,8 +14764,8 @@ - + @@ -14155,8 +14779,8 @@ - + @@ -14174,8 +14798,8 @@ - + @@ -14214,27 +14838,27 @@ - - - + + + - - - + + + - - - + + + - - + + @@ -14247,15 +14871,16 @@ - + - + + @@ -14276,16 +14901,16 @@ - + - + @@ -14305,7 +14930,7 @@ - + @@ -14320,8 +14945,8 @@ - + @@ -14329,39 +14954,39 @@ - + - + - + - + - + - + - + - + - + @@ -14371,36 +14996,38 @@ - + - - - - + + + + - - - - + + + + - - + + - + - - + + + + + - @@ -14408,263 +15035,265 @@ - + - - - + + + - - - + + + - - - + + + - - + + - + + - - + + + - + - + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + @@ -14678,278 +15307,291 @@ - - + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + - - - + + - - - - + + + - - + + + - - + + + - - + + + + - + - + - + - + - + - - - - + + - - - + - + + + + - - - - - + + + + + + + + + - - - - - - - + + + + + - - - + + + + + + + - - - - - - + + + + + + + - - - - - - - + + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - - + + + + + - - - + + + + - - - + + - + + + + + + - - - - - - + + - + + + - - - + + + + + + + - - - - - - + - + + + + + + - + - - @@ -14980,657 +15622,706 @@ - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - + + + + + + - + - - - - - + + + + - - - + + + + + + + + - - - - - - - + + + + - - - - + + + + + + + - + - - - - - + + - + + + + + - + - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - + + + + + + - + - - - - - + + + + - - - + + + + + + - + - - - - - + + + + + + - + - - - - - + + + + - - - + + + + + + - + - - - - - - + + + + + - - - - + + + + + - - - - + + + + + + + - + - - - - - - + + + + + + + - + - - - - - - + + + + + + + - + - - - - - + + + + - - - + + + + - - - + + - + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - - + + + + + + + - + - - - - - + + - + + + + + + - - - - + - + - + - + - + - + - + - - - + + + + - - - + + + + - - - + + + + + + - + - - - - - + + + + + + - + - - - - - + + + + + + + - - - - - - + + + + - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + - - - + + + + - - - + + + - - + - + + + - - + + - - - - + + + + - - + + + - - + + + - - + - + + + - - + - + - + + - - + - + - - + + @@ -15657,56 +16348,57 @@ - + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -15726,16 +16418,26 @@ - + + + - + + + - + + + - + + + - + + + @@ -15750,12 +16452,12 @@ + - + - @@ -15766,8 +16468,8 @@ - + @@ -15778,8 +16480,8 @@ - + @@ -15818,16 +16520,16 @@ - + - + @@ -15841,20 +16543,22 @@ - - + + + + - + - + - - + + @@ -15862,9 +16566,9 @@ - + - + @@ -15875,14 +16579,16 @@ - + - + + + + - @@ -15890,12 +16596,12 @@ - - - - + + + + @@ -15905,27 +16611,29 @@ - + - - - + + + + - - - + + + + - + + - @@ -15935,7 +16643,9 @@ - + + + @@ -15948,33 +16658,33 @@ - + - + - + - + - + - + - + - + @@ -15983,12 +16693,12 @@ - + + - @@ -15996,14 +16706,14 @@ - + - + @@ -16011,9 +16721,9 @@ - - + + @@ -16021,8 +16731,8 @@ + - @@ -16049,10 +16759,10 @@ - - - + + + @@ -16068,62 +16778,66 @@ - + + + - + - + - + - + - + - + - + + - - + - + + + + + - - - + @@ -16136,31 +16850,37 @@ - + + + - + + + - - - + + + + - - + + + - - + - + + @@ -16183,7 +16903,7 @@ - + @@ -16196,895 +16916,940 @@ - + - - + - + + + + + + - - - - - + + + + + + - - - - - + - + + + + + + - - - - - + - + + + + + + - - - - - + + + + + + - - - - - + - + + + + + + - - - - - + - + + + + + + - - - - - + - + + + - - + - + + + + + + - - - - - + + + + - - - - + + - + + + - - - - - + + + + + + - - + - + - + + + - - - - - + + + + + + - - - - + + + + + - - + + + - - + + + - - + + + - - + - - - + + - - + - - + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - - + + + + + + - - - - + + + + + - - + + - - + + + - - - - - + + + + + + - - + + + - - + - + + + - - - + + + + - - + + + - - + - + - + + - - + - + + + - - + + + - - + + + - - + - + - + + - - + + + - - + + - + - - - - + + + + - - + + - + - - - - + + + + - - + + - + - - + + - + - - + + - + - - - + + + - - - + + - + + - - - + + + - - - + + - + + - - - + + + + + - - - - + + - - + + + + - - - + + + + - - - + + + - - + + - + - - + + + + - - - + + + + - - - + + + + - - - + + - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - + + + + + + - + - - - - - + + + + + + - + - - - - - + + + + + + + - - - - - - + + + + + + + - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - + @@ -17095,76 +17860,76 @@ - - + + - + + - - - + + - - + + - + + - - + - + - + - + - + - - - + + + - - - + + + - + - - - + + + @@ -17181,33 +17946,33 @@ - - - + + + - - + + - - + + - - + + - + @@ -17215,31 +17980,31 @@ + - + - + - - + + - - - + + @@ -17247,16 +18012,16 @@ - - + - + + - + - + @@ -17272,16 +18037,16 @@ - + - + @@ -17302,23 +18067,24 @@ - + - + - + + @@ -17342,16 +18108,16 @@ - + - + @@ -17372,16 +18138,16 @@ - + - + @@ -17407,8 +18173,8 @@ + - @@ -17439,7 +18205,9 @@ - + + + @@ -17465,7 +18233,7 @@ - + @@ -17481,8 +18249,8 @@ - + @@ -17492,57 +18260,60 @@ - + - + - + - + - - + - + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + - @@ -17579,6 +18350,8 @@ + + @@ -17587,8 +18360,8 @@ + - @@ -17609,19 +18382,19 @@ - + - + - + - + @@ -17638,7 +18411,7 @@ - + @@ -17655,11 +18428,11 @@ - + - + @@ -17673,9 +18446,9 @@ - + + - @@ -17684,36 +18457,38 @@ - - + + - - + + - - + + + - - + + - - + + + @@ -17722,169 +18497,180 @@ - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - + + + @@ -17894,101 +18680,101 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + @@ -18012,215 +18798,212 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + - - - - + - - - - + + + + + + - - - + - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - - - + + + - + + - - - - + + + - + + - - + - + - - - + + - - + + + @@ -18231,39 +19014,39 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -18287,197 +19070,201 @@ - + + + - + - - + + - - + + - - + + - - + + - + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - + - - - + + + - - - + + + - - + + + - - + + + @@ -18491,23 +19278,23 @@ - - + + - + - + - + @@ -18527,41 +19314,41 @@ - + - + - + - + - + - + - + - + - + @@ -18571,26 +19358,26 @@ - + - + - + - - + + - - - + + + @@ -18664,7 +19451,7 @@ - + @@ -18672,7 +19459,7 @@ - + @@ -18680,17 +19467,17 @@ - + - + - + @@ -18708,176 +19495,176 @@ - + - + - + - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + - - + + - - + + - - + + @@ -18899,18 +19686,18 @@ + - - + - + @@ -18926,23 +19713,23 @@ - + - + - + - + @@ -18950,7 +19737,7 @@ - + @@ -18960,7 +19747,7 @@ - + @@ -18986,51 +19773,51 @@ - - + - - - + + + + - - + - - - + + + + - - + - - - + + + + - - + - - + + + - + - + @@ -19040,8 +19827,8 @@ - + @@ -19052,8 +19839,8 @@ - + @@ -19092,16 +19879,16 @@ - + - + @@ -19109,256 +19896,270 @@ - - + - + + - - - - + + + + - - - - + + + + + - - - + + + + - - - + + + - - - - + + + + + - - - - + + + + + - - - + + + - - - - + + + + - - - + + + + + + + - - - - - - + + + + - - + - + - + + - - - + + + - - - - + + + + - - - + + + + - - - + + + - - - + + + + - - - + + + - - - + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - - - - + + + + + - + - + - + - + - - + + - - - + + + - - + + - - - + + + - - - - + + + + + - - + + - - - + + + - - - + + + + - - - + + + - - - + + + @@ -19394,19 +20195,19 @@ - - - - + + + + - - + + + - @@ -19427,16 +20228,16 @@ - - + - + + - + @@ -19454,8 +20255,8 @@ - + @@ -19469,8 +20270,8 @@ - + @@ -19488,8 +20289,8 @@ - + @@ -19509,21 +20310,21 @@ - - - + + + - - + + - + @@ -19534,80 +20335,80 @@ - - - + + + - - + + - + - - - + + + - + - - - + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + @@ -19616,28 +20417,28 @@ - - - + + + - - - + + + - - + + - - + + @@ -19646,53 +20447,53 @@ - - + - + + - + - + + - - + + - - + + - - + + - - + - + - + @@ -19701,7 +20502,7 @@ - + @@ -19752,10 +20553,11 @@ - - - + + + + @@ -19816,18 +20618,18 @@ - + - + - - + + @@ -19853,36 +20655,36 @@ - + - + - + - + - + - + - - + + @@ -19902,7 +20704,7 @@ - + @@ -19910,8 +20712,8 @@ - + @@ -19923,8 +20725,8 @@ - + @@ -19938,8 +20740,8 @@ - + @@ -19952,8 +20754,8 @@ - + @@ -19998,30 +20800,30 @@ - + - + - + - + - + - + @@ -20035,37 +20837,35 @@ + - - - - - + + + + - - - - - + + + + - - - - - + + + + @@ -20086,7 +20886,7 @@ - + @@ -20094,61 +20894,63 @@ - - + + - - + + - + - + - + + + - + + - - - - + + + - - - + + + - - + + - - + + - - + + @@ -20156,37 +20958,37 @@ - + - + - - - + + + - - - + + + - - + + @@ -20197,72 +20999,74 @@ - + - + - + + - + + - + - + - + - + - + - + - - + + - - - + + + - - - + + + - - + + - - + + @@ -20272,10 +21076,12 @@ - + + + - - + + @@ -20306,7 +21112,7 @@ - + @@ -20317,13 +21123,13 @@ - + - + - + @@ -20336,39 +21142,39 @@ - + - + - + - + - + - + @@ -20386,8 +21192,8 @@ - + @@ -20396,6 +21202,7 @@ + @@ -20417,16 +21224,16 @@ - + - + - + @@ -20435,43 +21242,43 @@ - + - - + + + + - - - + + + - - - - + + - - + + - - + + @@ -20483,52 +21290,52 @@ - - - - + + + + - - - - - + + - - + + + + + - - - + + + - - - + + + - - + + - - - + + + @@ -20540,29 +21347,29 @@ + - + - + - + - + - - - + + @@ -20572,252 +21379,259 @@ - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + + - - - + + + + - - - + + + - - + + - - - + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + + + + - - - - - - + + + + - - - + + + + + + + - - - - - - + + + - - - + + + - - + + - - + + @@ -20826,28 +21640,28 @@ - - - + + + - - - + + + - - + + - - + + @@ -20857,21 +21671,22 @@ - + - - + + + + + + - - - @@ -20887,19 +21702,19 @@ - + - + - + @@ -20914,7 +21729,7 @@ - + @@ -20923,7 +21738,7 @@ - + @@ -20936,7 +21751,7 @@ - + @@ -20949,98 +21764,100 @@ - - - + + + - - - + + + - - + + - - + + - - + - + + + - - + - + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + @@ -21049,10 +21866,11 @@ - - - + + + + @@ -21062,12 +21880,12 @@ - + - + @@ -21076,52 +21894,58 @@ - - + + - - - + + + - - - + + + - - + + - - + + - - + + + - - + + + - + + + - + + + @@ -21130,7 +21954,9 @@ - + + + @@ -21142,14 +21968,14 @@ - + - - - + + + @@ -21157,22 +21983,24 @@ - - + + - + + + - + - - - + + + @@ -21203,18 +22031,26 @@ - + - + + + - + + + - + + + - + + + @@ -21224,18 +22060,30 @@ - + + + - + + + - - + + + + + + - + + + - + + + @@ -21248,13 +22096,15 @@ - + + + - + @@ -21264,9 +22114,9 @@ - + @@ -21280,8 +22130,8 @@ - + @@ -21291,9 +22141,9 @@ - + @@ -21305,8 +22155,8 @@ - - + + @@ -21324,17 +22174,17 @@ - + - + @@ -21352,17 +22202,17 @@ - + - + @@ -21375,7 +22225,9 @@ - + + + @@ -21390,63 +22242,63 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -21469,7 +22321,7 @@ - + @@ -21478,13 +22330,13 @@ - + - + @@ -21499,24 +22351,24 @@ - + - + - + - - + + - + @@ -21541,7 +22393,7 @@ - + @@ -21551,8 +22403,8 @@ - + @@ -21573,8 +22425,8 @@ - + @@ -21590,35 +22442,35 @@ - - + + - + - - + + - - + + - + - + @@ -21645,7 +22497,7 @@ - + @@ -21654,7 +22506,7 @@ - + @@ -21677,9 +22529,9 @@ - - + + @@ -21701,372 +22553,379 @@ - + + + - + - - + + - + + + + + - + - + - + - + - + - + - - - - + - + - - + + + - + - - - + + + - - - + + + - - + + - - + + - + - - + - - - - - + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + - - + - + - + + - - - + + + - - - + + + - - + + - - + + - - - + + + + + + + - - - - + - + @@ -22075,55 +22934,55 @@ - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + @@ -22135,34 +22994,35 @@ - - - - - + + + + + + - - - + + + - - - + + + - - + + - - + + @@ -22172,15 +23032,15 @@ - + - + @@ -22189,88 +23049,93 @@ - - - - + + + + + - - + - + + + - - - + + + - - - - + + + + - - - - + + + + + - - - + + + - + - - + + - + - - - + + + + + + - + - - - - - + + + + + + + - - - @@ -22282,24 +23147,26 @@ - + - + - - - + + + + - - - + + + + @@ -22338,42 +23205,46 @@ - + + + - + + + - + - + - + - + - + - + - + - + - + - + @@ -22415,7 +23286,7 @@ - + @@ -22456,16 +23327,16 @@ - + - + - - + + @@ -22478,67 +23349,67 @@ - + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + @@ -22566,15 +23437,17 @@ - + - - + + + + - + @@ -22584,32 +23457,32 @@ - + - + - + - + - + - + - + @@ -22618,9 +23491,9 @@ - - + + @@ -22633,11 +23506,11 @@ - + - + @@ -22670,31 +23543,31 @@ - + - + - + - - + + - + - + - + @@ -22708,7 +23581,7 @@ - + @@ -22717,17 +23590,17 @@ - + - + - + @@ -22737,63 +23610,66 @@ + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -22803,7 +23679,7 @@ - + @@ -22825,167 +23701,167 @@ - + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + @@ -22999,9 +23875,15 @@ - - - + + + + + + + + + @@ -23036,252 +23918,252 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - + + @@ -23289,63 +24171,63 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -23356,8 +24238,8 @@ + - @@ -23387,35 +24269,36 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + + @@ -23424,15 +24307,16 @@ - + - - + + + @@ -23444,89 +24328,93 @@ - + - + - + - - + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + @@ -23534,17 +24422,17 @@ - + - - - + + + - + @@ -23552,61 +24440,62 @@ - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + + - - - + + + - - - + + + - - - + + + - - + + @@ -23615,50 +24504,52 @@ - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + + + + - @@ -23666,39 +24557,40 @@ - + - - - - - + + + + + - - + - - - + + + + - + - - + - - + + + + @@ -23710,59 +24602,59 @@ - - + + - + - - + - - - + + + + - - + + - + - + - + - + - + - - + + - + @@ -23778,7 +24670,10 @@ - + + + + @@ -23794,26 +24689,26 @@ - + - + - - + + - - + + @@ -23821,16 +24716,16 @@ - - + + - - + + - + @@ -23838,149 +24733,149 @@ - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + @@ -23989,15 +24884,15 @@ - + - + - + @@ -24005,8 +24900,9 @@ + - + @@ -24020,8 +24916,8 @@ - + @@ -24033,8 +24929,8 @@ - + @@ -24083,7 +24979,7 @@ - + @@ -24146,7 +25042,9 @@ - + + + @@ -24155,7 +25053,9 @@ - + + + @@ -24171,29 +25071,29 @@ - - - + + + - - - + + + - - - + + + - - - + + + @@ -24213,52 +25113,52 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - - + + + + @@ -24266,257 +25166,257 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + @@ -24543,27 +25443,27 @@ - - - + + + - - - + + + - - - + + + - - + + @@ -24572,31 +25472,31 @@ - - - + + + - - - + + + - - + + - - - + + + - + @@ -24605,221 +25505,226 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + + - - - - + + + + - - - + + + + - - - - + + + + + - - + - + - + + - - - - + + + + + - - + - + - + + - + + - - + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - + - + + + + - + - - + - + - + - + - + - + - + - + - + - @@ -24828,8 +25733,8 @@ + - @@ -24844,27 +25749,27 @@ - + - + + - + - + - @@ -24877,86 +25782,90 @@ - + - - + + + - - + + + - - - + + + - + - + - + - + - + - + - + - + + + + + - - - - - + + - - - - + + + + - - - + + + + @@ -24964,8 +25873,8 @@ + - @@ -24977,14 +25886,15 @@ + - + @@ -24992,7 +25902,7 @@ - + @@ -25004,7 +25914,7 @@ - + @@ -25013,100 +25923,102 @@ - + - - + - + + + - - - + + + - - + + - - - - + + + + - + - + + + + + - - - - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + @@ -25121,62 +26033,65 @@ + - + - - - + + + + - - + + + - - + + + - + - + - + - + - @@ -25213,143 +26128,148 @@ + + - + - - - + - + + + + + + - - - - - + - + + + - - + + - - + + - + - + + + + - + - - - - - + + + - - - + + + - + + - + - + + - - + - - + + - + - + - + - - - + + + - + - + - + @@ -25362,38 +26282,40 @@ + - + + - + - + - + - - + + - + @@ -25401,17 +26323,17 @@ - - + + - - + + - + @@ -25422,50 +26344,50 @@ - + - - + - + - - + + - + - - + + - + + + + + - - - - - - + + - + + @@ -25594,16 +26516,16 @@ - + - + - + - + @@ -25623,10 +26545,10 @@ - - + - + + @@ -25657,26 +26579,26 @@ - + - + - + - + @@ -25733,11 +26655,15 @@ - + + + + - - + + + @@ -25749,7 +26675,9 @@ - + + + @@ -25762,13 +26690,14 @@ + - + @@ -25776,20 +26705,20 @@ - + - + - + - + @@ -25814,35 +26743,35 @@ - - - + + + - - - + + + - - + + - + @@ -25855,151 +26784,151 @@ - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + @@ -26022,458 +26951,466 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - - - + + + - + - + - - + - + + + - + - + - - + + - - + + - + - + - - - + + + + - - - + + + + - - - + + + - - - - + - - + + + + + - - - - + + + + - - - + + + + - - - + + + + - - + - + - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + - + + + - - - - + + + + - - + - + + + - - + - + + + @@ -26542,292 +27479,298 @@ - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + + - + - + - - - - + + + + - - - + - - + + + + + + + + - - - - - - - + + + + + + + - + - - - - + + - + + - - + + - + + + + + - - - - - + + + - - + - + - - - - + + + + + + + + - - - - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + @@ -26891,13 +27834,13 @@ + - + - @@ -26909,60 +27852,60 @@ + - + - + - + - + - + - + - + - - - - - - - + + + + + + + - + - @@ -27073,20 +28016,20 @@ + - - + - + - + @@ -27167,52 +28110,52 @@ - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + @@ -27236,7 +28179,9 @@ - + + + @@ -27246,224 +28191,224 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + @@ -27490,18 +28435,20 @@ - + - + - + + + @@ -27510,8 +28457,8 @@ - + @@ -27529,8 +28476,8 @@ - + @@ -27544,8 +28491,8 @@ - + @@ -27563,8 +28510,8 @@ - + @@ -27580,33 +28527,33 @@ - + - - - + + + - - - + + + - - - + + + - - + + @@ -27621,13 +28568,14 @@ - + + @@ -27641,87 +28589,87 @@ - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + @@ -27739,8 +28687,8 @@ - + @@ -27754,8 +28702,8 @@ - + @@ -27773,8 +28721,8 @@ - + @@ -27787,33 +28735,33 @@ - - - + + + - - - + + + - - - + + + - - + + - + @@ -27822,31 +28770,33 @@ - + + - - + + + - + + + + + - + - - - - @@ -27873,10 +28823,11 @@ + - + @@ -27888,19 +28839,21 @@ + + - - + - + + - + @@ -27910,16 +28863,17 @@ - + + - + - + @@ -27932,17 +28886,18 @@ - + + + - - - + + + - @@ -27960,22 +28915,23 @@ - + + - + - + - + @@ -28002,26 +28958,26 @@ - + - + - + - + @@ -28086,21 +29042,21 @@ - + - + - + - + @@ -28114,8 +29070,8 @@ - + @@ -28133,8 +29089,8 @@ - + @@ -28148,8 +29104,8 @@ - + @@ -28167,8 +29123,8 @@ - + @@ -28185,28 +29141,28 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -28219,2003 +29175,2003 @@ - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - - - - + + + + + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - + + @@ -30249,7 +31205,7 @@ - + @@ -30264,11 +31220,14 @@ + - + + + + - @@ -30313,29 +31272,29 @@ - - - + + + - - - + + + - - + + - - - + + + @@ -30343,350 +31302,350 @@ - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + - + @@ -30702,130 +31661,130 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + - + @@ -30841,25 +31800,27 @@ - + - + - + - + + + @@ -30870,32 +31831,32 @@ - + - + - + - + - + - + - + @@ -30905,51 +31866,51 @@ - + - + - + - - - + + + - - - + + + - - - + + + - - + + - + - + @@ -30961,89 +31922,89 @@ - + - + - + - - - + + + - - - + + + - - - + + + - - + + + - - + - + - + - + - - - - + + + + - - - + + + - - + + @@ -31061,73 +32022,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + + - - + - + - + @@ -31136,9 +32097,9 @@ - - + + @@ -31158,21 +32119,21 @@ - + - + - + - + + - @@ -31206,20 +32167,20 @@ + - - - + + - + - + @@ -31228,86 +32189,88 @@ - + + + - - + + + + + - - - - - - + - + + + - - + - + - + + - - + - + - + + + - - + + + + + - - - - - + + - - - - + + + + - @@ -31315,10 +32278,10 @@ - - + + @@ -31332,39 +32295,39 @@ - - - + + + + - + + + - - - - + + + + - - - + - - + @@ -31372,15 +32335,16 @@ - - - + + + + - - + + @@ -31392,8 +32356,11 @@ - + + + + @@ -31500,30 +32467,29 @@ - + - + - + - + - + - - + @@ -31532,49 +32498,49 @@ - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - + + @@ -31583,360 +32549,386 @@ + - - + + + - + + + + + + - - - - - + + - + + + + + + - - - - - - + + - - + + + + + + + + - - - - - - + + + + + + + + - - - - - - - + - - + + + - + + + + + + - - - - - + + - + + + + + + - - - - - - + + - - + + + + + + + + - - - - - - + + + + + + + + - - - - - - - + - - + + + - + + + + + - + - - - - + + - + + + + + - + - - - - - + + - - + + + + + + + - + - - - - - + + + + + + + - + - - - - - - - + + - + - + - + + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - + + - - + + - + + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + - - - + - + + + - + + - - - - + + + + - - - - + + + - + + - - - - + + + + - - - - + - + + + @@ -31972,19 +32964,23 @@ - + + + - + - + - - - + + + + + @@ -31995,198 +32991,199 @@ + + - - + - + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - - + + + + - + - + - + - - - + + + - - - + + + - - + + - - - + + + @@ -32194,7 +33191,7 @@ - + @@ -32202,29 +33199,31 @@ - + - + + + - - + + - - + + - + - + @@ -32239,7 +33238,7 @@ - + @@ -32261,42 +33260,42 @@ + - - + - + - - - + + + - - - + + + - - + + - - - + + + @@ -32310,54 +33309,54 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + @@ -32391,23 +33390,23 @@ - + - + - + - + - + @@ -32433,29 +33432,29 @@ - - - + + + - - - + + + - - - + + + - - + + @@ -32464,7 +33463,7 @@ - + @@ -32480,7 +33479,7 @@ - + @@ -32492,41 +33491,50 @@ - - - + + + - - - + + + - - - + + + - - + + + + + + + + + + + + + - - - - + + @@ -32538,15 +33546,15 @@ - + - + - + @@ -32563,8 +33571,8 @@ - + @@ -32596,8 +33604,8 @@ - + @@ -32719,7 +33727,9 @@ - + + + @@ -32735,197 +33745,197 @@ - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + @@ -32949,140 +33959,140 @@ - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + @@ -33095,38 +34105,38 @@ - + - + - + - + - - + + - + - + @@ -33149,175 +34159,185 @@ + - + - + - + - - - - + + + - + - - - + + + + - - + + - + + + + + - - + - + - + + - - + + + - - + - + - + + - - - + + + - + - - - + + - + + + + + + - + - - - - + + - - + + - + - + + + - - + + - - + + - + + + + - - - - + + + + - - - - + + + + - - - @@ -33325,40 +34345,41 @@ - - - + + + - - - + + + - + - - - + + + + - + - - + + @@ -33401,27 +34422,29 @@ - - + + - + + + - + - - + + - + - + @@ -33432,11 +34455,12 @@ + + - - + @@ -33456,24 +34480,24 @@ - + + + - - - + + + - - @@ -33482,12 +34506,15 @@ - + + + + + - @@ -33516,30 +34543,30 @@ - + + - - - - + + + - - + + - - + + @@ -33560,29 +34587,30 @@ - + - + - + - + + - + @@ -33593,8 +34621,8 @@ - - + + @@ -33603,14 +34631,14 @@ - - - + + + - + @@ -33619,14 +34647,14 @@ - + - + @@ -33645,8 +34673,12 @@ - - + + + + + + @@ -33665,21 +34697,23 @@ + + - + - - + + @@ -33687,8 +34721,8 @@ - - + + @@ -33704,160 +34738,160 @@ - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - - - + + + + + - + - + + - - + + - - - + + - + + - - - + + + - - - + + + - - - + + + - - - + + + - + @@ -33873,25 +34907,25 @@ - - + + - + - - + + - + - + @@ -33930,42 +34964,42 @@ - + - + - + - + - + - + - + - + @@ -33975,12 +35009,12 @@ - + - + @@ -34026,13 +35060,15 @@ - + + + - - + + @@ -34056,18 +35092,20 @@ - + - - + + - - + + - + + + @@ -34078,7 +35116,7 @@ - + @@ -34099,14 +35137,14 @@ - + - + - + @@ -34128,23 +35166,23 @@ - + - - + + - + - + - + @@ -34157,17 +35195,19 @@ - + + + - + - + @@ -34176,70 +35216,72 @@ - + - - - + + + - - - + + + - - - + + + - - + + - + - + - + - + + - + - + - + - - + + + @@ -34251,89 +35293,90 @@ - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - + - + + - - - + + + - - - + + + - - - + + + - - + + - + @@ -34343,10 +35386,10 @@ - - - + + + @@ -34355,15 +35398,15 @@ - - - + + + - - + + @@ -34372,54 +35415,54 @@ - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - + - + @@ -34432,37 +35475,39 @@ - - - + + + - - - + + + - - - + + + - - + + - + - + + + @@ -34478,39 +35523,39 @@ - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + @@ -34535,14 +35580,14 @@ - - + + - - + + @@ -34555,295 +35600,301 @@ - - - + + + - - - + + + - - - + + + - - - + + + + + + + - - - - - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + + - + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + + - + - - - + + + + + + + + @@ -34873,7 +35924,7 @@ - + @@ -34885,19 +35936,19 @@ - - - + + + - - + + @@ -34908,152 +35959,160 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - + + - - - + + + - - - + + + - - + + - - - + + + - + - + + + - - - - - + + + + + + + + - - - - - - + + - + - - - + + + - - - + + + - - - + + + - - + + + + + + + + + + + - - - @@ -35069,60 +36128,60 @@ - + - - + + - - - + + + - - - + + + - - + + - - - + + + - + - + - + - + @@ -35130,203 +36189,209 @@ - + - - + + + + + + + + - - - + + + - - - + + + - - - + + + + + - - - + - - - + + + + + - - - + - - - + + + + + - - - + - - - + + + + - - + - - - + + + - - + + + + - - - + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + + - - - + + @@ -35338,8 +36403,8 @@ - - + + @@ -35348,40 +36413,43 @@ - + + + - - + + + - - + - + + + + + + + - - - - - @@ -35390,7 +36458,7 @@ - + @@ -35404,25 +36472,25 @@ - - + + + + - - - + + + - - @@ -35431,22 +36499,26 @@ - - + + - + + + - + - + + + @@ -35460,7 +36532,9 @@ - + + + @@ -35484,22 +36558,22 @@ - + - + - + @@ -35512,170 +36586,190 @@ - + - - + + - + + - - + + - + + - - - + + + + - - + + - + + - + + - - + + - - + + - + + - + + - - + + - + + - - + + - + + - - + + - - + + - + + - - + + - + + - - + + - + + - + + - - + + - - + + - + + - + + - - + + - - + + - + + - + + - - - + + + - - + + - - + + + - + + - - - + + + - - + + - - + + + @@ -35695,62 +36789,62 @@ - + + + - + - - - - - - - - + + + + + + - + - + - + - + - + - + - + - - + + @@ -35766,11 +36860,11 @@ - + - + @@ -35784,8 +36878,8 @@ - + @@ -35802,27 +36896,28 @@ - + - + - + - - + + + - + @@ -35833,99 +36928,100 @@ - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + + + - - - - + + + + - - + + + + + + + - - - - - - @@ -35940,60 +37036,62 @@ - + + + - + - - + + - - + + - - + + - + - - - + + + - - - + + + - - - + + + - - + + - - + + - + @@ -36003,346 +37101,357 @@ + + + - - - + + + - - + + + - - - - + + + + - - - + + - - - + + + + - - - - + + + + - - + + - - - + + + + - - - + + - + + + + + + - + - - - - + + - - + - - + + + + - - - - - + + + + + - - - - + + - - + + - + - + - + - + - - + + + - - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - + - - - + + + - - + @@ -36363,13 +37472,13 @@ - + - - + + @@ -36435,7 +37544,9 @@ - + + + @@ -36454,33 +37565,30 @@ - - - + + - - - + + - - - + + - - - + + + @@ -36488,310 +37596,324 @@ - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + - + + + - - + - + + + - - + + + - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + + - + - + + - + + - + + - + + - + + - - + + + - + + - + + - + - + - + - + - + - + - + + - + @@ -36807,37 +37929,37 @@ - - - - - - - - + - - + + + + + + + + + - - - - - - - - + + + + + + + + @@ -36846,27 +37968,27 @@ + - - + + - - - + + - - + + - + @@ -36879,35 +38001,35 @@ - + - + - + - + - + - + - + - - + + @@ -36933,13 +38055,13 @@ - + - + @@ -36961,7 +38083,7 @@ - + @@ -36976,7 +38098,7 @@ - + @@ -36995,49 +38117,49 @@ - + + + - - - - - + + - + + - - - - - - - - + + - + + + + + + + - - - - - - + - + + + + + + @@ -37048,14 +38170,14 @@ - - - + + - + + @@ -37065,38 +38187,38 @@ - - - - - - - - + + - + + + + + + + + - - - - - - - + - + + + + + + @@ -37104,7 +38226,7 @@ - + @@ -37113,8 +38235,8 @@ - - + + @@ -37145,73 +38267,75 @@ - + + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + @@ -37220,61 +38344,63 @@ - + - + - + + + - + - - + + + - + - + - + - + - + - + - + - - + @@ -37283,152 +38409,153 @@ - - + + - - + + - - + + - - + + - - + + - - + - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + - + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - + - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - + - - + + - + - + - + @@ -37436,28 +38563,28 @@ - + - + - + - + - + - + @@ -37467,19 +38594,19 @@ - + - + - + - + @@ -37513,8 +38640,8 @@ - + @@ -37522,8 +38649,8 @@ - + @@ -37627,12 +38754,16 @@ - + + + - + + + @@ -37650,18 +38781,18 @@ - - - - - + + + + + - - - - - + + + + + @@ -37700,6 +38831,7 @@ + @@ -37709,62 +38841,63 @@ - + + + - - - - + + + + - - - + - - + + + + + - - + + - - + + - - + - - - + + @@ -37773,82 +38906,83 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + - - + + - + - + @@ -37876,7 +39010,9 @@ - + + + @@ -37920,7 +39056,9 @@ - + + + @@ -37930,7 +39068,7 @@ - + @@ -37966,23 +39104,23 @@ - - + + - - - + + + - + - + @@ -38018,20 +39156,23 @@ + - + - + + + @@ -38048,8 +39189,11 @@ - + + + + @@ -38119,169 +39263,176 @@ - + - + - + - + - + - + - + - + + + - - + + - + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - + + + + + - - - - + + + - - - + + + - - + + - - + + - - + + - + - - + + - - + + + + + - - + + @@ -38294,13 +39445,13 @@ - - + + - - + + @@ -38308,30 +39459,30 @@ - - - + + + - - - + + + - - - + + + - - + + @@ -38344,193 +39495,201 @@ - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + - - + + + - @@ -38542,51 +39701,55 @@ + - + - - + + + + + - - + - + - + - + - + - + + - + - + - + - + @@ -38610,11 +39773,11 @@ - + - + @@ -38632,7 +39795,7 @@ - + @@ -38710,7 +39873,10 @@ - + + + + @@ -38728,10 +39894,12 @@ - + + + - + @@ -38761,50 +39929,51 @@ - + + - - - + + + + - - - - + + + + - - - + + + + + + + + - - - - - - - + - + - + @@ -38824,65 +39993,65 @@ + - + - + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - + - + - + - + - - + + - + - - + @@ -38892,22 +40061,23 @@ + - + - + - + - + @@ -38926,76 +40096,75 @@ - - + - + + + + + + - + + - - - - - - - + + + - - + - - + - - - - + + + + + - - + - - - + + + - - - + + + - - - + + + - - + + @@ -39008,21 +40177,23 @@ - - - + + + + + - + - + @@ -39038,1364 +40209,1678 @@ - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - - + + - + + - - + - + + - - + - + + - - - + + + - + + - - + + + - - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + - + + - - + + + - - + + + - - + + + - + + - - + + + - - + + + - - + + - + + - - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + + - - + + - + + - - + + + - - + + - + + - - + + - + + - - + + + - - + + + - - + + + - - + + + - - + + - + + - - + + - + + - - + + + - - + + + - - + + - + + - + - + - + - + - + - - + + - - + + - - + - + + + + - + + + + + + + - + - - + + + + + - + + + + + - + + + + - + + + + + + + - + - - + + + + + - - + + + + + - - + + + + + - - + + + + + - + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - - + + + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + + - + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + + - + + + + - + + + + - + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + - + - + + - + - + - + + - + - + - + + - + - + + - + - + - + - + - + - + - + - + + + + - - - + + - - + + - - + + - - + + - - + + + - - + + + - - + + + - - + + + - - + + + - - + + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -40403,149 +41888,149 @@ - - + + - - + + - - + + - + - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - - + + + - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + + - - - + - - + - - + - - + @@ -40565,8 +42050,8 @@ - - + + @@ -40587,31 +42072,33 @@ - + - + - + - + - + - - + + - + + + @@ -40622,11 +42109,11 @@ - + - + @@ -40651,15 +42138,15 @@ - - - + + + - - + + @@ -40669,18 +42156,18 @@ - + - + - + @@ -40697,146 +42184,156 @@ - + + + + + + + - - - - - + + + + + + + - - - - - - + + + + + + - - - - - + + + + + + + - - - - - - + + + + + - + - - - - + + + + + + - + - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - + + + + - - - + + + - - - - - - - @@ -40863,46 +42360,48 @@ - + + + - + - - - + + + - - - + + + - - - + + + - - + + + - - + @@ -40911,237 +42410,236 @@ - + - + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - + + + - - - - + + + + - - - + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + @@ -41154,8 +42652,8 @@ - + @@ -41179,7 +42677,7 @@ - + @@ -41200,7 +42698,7 @@ - + @@ -41214,54 +42712,54 @@ - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + @@ -41269,19 +42767,19 @@ - + - + - + - + @@ -41291,455 +42789,460 @@ - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + + - + + + + - - - - - + + + - + + + + - - + - + + - - - - + + - - + - + + + - + + - - - - + + + + - - - + + + - - + + + + + - - - - - - + - + - + - + - + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - + - - + + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + + + + - - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + @@ -41759,30 +43262,32 @@ - + + - - + - + - + + + + - + - @@ -41794,29 +43299,31 @@ - + + + - + - + - + - + - + @@ -41868,7 +43375,7 @@ - + @@ -41920,8 +43427,8 @@ - + @@ -41929,8 +43436,8 @@ - + @@ -41947,21 +43454,21 @@ - + - + - + - + - + @@ -41982,7 +43489,7 @@ - + @@ -42000,7 +43507,7 @@ - + @@ -42016,13 +43523,12 @@ - + - @@ -42055,11 +43561,15 @@ - - + + + + + + + - @@ -42069,107 +43579,107 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -42178,10 +43688,10 @@ - + - + @@ -42190,449 +43700,449 @@ - + + + - - - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + @@ -42649,175 +44159,186 @@ - + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + - - + + + - + + + - + + - + + + - + + - - + + - + - + - + + - + + - + + - + + - - + - + @@ -42826,592 +44347,602 @@ + + + + - - - + + - + + + + - - - + + + - - - - + + + + + + + + - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + - - + - + - + + - - - - - - + + + - - + + - + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + + + + + + + - - - - - - - + + + + - + + + + - - - - - - + + + - - + + + + + - - - - - - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + + - + - + - - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + - - - + + + - - - + + + - - + + - + - + @@ -43419,7 +44950,7 @@ - + @@ -43429,188 +44960,194 @@ + - - + + + + + + + + + - - - - - - - + + + + + + + + - - - - - - - - - + + - + + + + + + - - - - - - + + + + + + - - - - - + + + + + + - - - - - + + + + + + - - - - + - - + + - - - + + + - - - + + + - - + + - + - + - - + + - - - + + + - - - + + + - + - + - - + + - - - + + + - - - + + + @@ -43622,151 +45159,152 @@ - + - + - + + - + - - + + + + + - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - + + - - + + - + - + - + - + @@ -43838,40 +45376,41 @@ + + + - - - + - + - + - + - + - + - + - + @@ -43881,10 +45420,10 @@ - - + + @@ -43893,32 +45432,33 @@ - + + + + - + - + - - + - - + + - @@ -43943,8 +45483,9 @@ - - + + + @@ -43956,13 +45497,13 @@ + - + - @@ -43974,207 +45515,215 @@ - + - - + + - + - + - + - - + + - + - + - + - - + + - - + + + + + + + + + + + - - - - - - - - - + + - + + + - + - - + + - - - - - + + + + + + + + + - - - - - - - + + + + + - - - - + + + + - - - + + + + - - + + + + - - - - - + + + + - - + + + + - - - - - + + + + - - + + - + - - - + + + - + - - - + + + + + + + + - - - - - - - - + + + + - - - - + + + + - - - - + + + + + - - - + + + - - - @@ -44185,47 +45734,56 @@ - + + + + + - - - - + + + + - - - - + + + - - - - + + + + - - - - - + + + + + + - - - + + + + + + + + @@ -44236,16 +45794,16 @@ - + - + - + @@ -44280,10 +45838,11 @@ + - + @@ -44308,121 +45867,121 @@ - + - + - + - + - - - + + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + @@ -44471,8 +46030,8 @@ - + @@ -44505,152 +46064,152 @@ - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + @@ -44663,53 +46222,53 @@ - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + @@ -44719,359 +46278,358 @@ - - - + + + - - - + + + - - - + + + - - + + - + - - - + + + - - + + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - + + + - - + + - + - - - + + + - - - + + + - - - + + + - + - + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - + - - + + - - + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + - + - + - - + + - + @@ -45092,7 +46650,7 @@ - + @@ -45104,17 +46662,16 @@ - - + + + - - @@ -45130,19 +46687,19 @@ - + - + - + @@ -45157,21 +46714,26 @@ + + + + + - + @@ -45185,132 +46747,145 @@ - + - - + + - - + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + + + + + + + + + + + + + + @@ -45327,9 +46902,9 @@ - - + + @@ -45348,23 +46923,23 @@ - - + - + + - + @@ -45376,84 +46951,84 @@ - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + @@ -45473,7 +47048,7 @@ - + @@ -45482,12 +47057,12 @@ - - - - + + + + @@ -45503,29 +47078,29 @@ - + - - + + - - + + - - + + - + @@ -45541,62 +47116,64 @@ - - - - - - + + + + + + - + - + + - - - - - - + + + + + + - + + - + - - + + - - - + + + - - - + + + @@ -45609,18 +47186,18 @@ - + - + - + @@ -45632,121 +47209,150 @@ - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + - + - - - - + + + + + + + + - - - - + + + + + + + + - - - - - + + + + + + + + - - - + + + - - - - - - + + + + + + + + - - - - - + + + + + + - - - - + + + + + + - - - - + - - - - - - + + + + + + - + + @@ -45757,11 +47363,15 @@ - + + + - + + + @@ -45900,7 +47510,9 @@ - + + + @@ -45959,7 +47571,7 @@ - + @@ -45998,58 +47610,59 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + + @@ -46058,74 +47671,76 @@ - + - + - - + + - - + + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + + - - + + - - + + @@ -46135,26 +47750,26 @@ - + - - + + - - + + - - + + @@ -46166,27 +47781,27 @@ - + - + - - + + - + - - + + @@ -46239,8 +47854,8 @@ - + @@ -46248,7 +47863,7 @@ - + @@ -46261,53 +47876,53 @@ - + - + - - + + - + - - + + - + - + + - - - + + - - - + + + - - + + - + @@ -46319,7 +47934,9 @@ - + + + @@ -46328,7 +47945,7 @@ - + @@ -46342,13 +47959,13 @@ - + - + @@ -46376,8 +47993,8 @@ + - @@ -46401,25 +48018,28 @@ - + + + - + + - + - + - + @@ -46433,193 +48053,192 @@ - - - + + - - + + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - - + + + - - - + + + - - + + - + - - + + - - - + + + - - - + + + @@ -46627,53 +48246,53 @@ - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + @@ -46685,19 +48304,19 @@ - + - + - + - + @@ -46726,7 +48345,7 @@ - + @@ -46738,50 +48357,54 @@ - + - - + + - - - + + + - - - + + + - + + - + + - + + - + + - - + + @@ -46810,10 +48433,12 @@ + - + + @@ -46827,230 +48452,230 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + + + - - - + @@ -47099,116 +48724,124 @@ - + + - - + + + + + + + + - - - + + + - - - - - - - + + + + + + - + - - + + - - - - + + + + + - - + - + + - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + - - - + + + + - - + - + - + + - - - @@ -47238,115 +48871,120 @@ - + - - + + - - - + + + - - - + + + - + - - + + - - + + - - + + - - + + + + + + - - + + + + + - - - - - - - + + - - - - + + + + - + + + + + + - - - - - - + + - + + - + - + + - + @@ -47360,206 +48998,206 @@ - + + + - - + + - - - + - - + + - + - - - + + + - - - + + + - - + + - + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + - + - - + + - - - + + + - - - + + + @@ -47580,11 +49218,11 @@ - + - + @@ -47592,13 +49230,15 @@ - + - + + - + + @@ -47607,55 +49247,61 @@ - - + + + - - + + + - - + + + - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + + - - + + + @@ -47664,33 +49310,33 @@ - - + + - - + + - + - - + + - + - + - + @@ -47704,7 +49350,9 @@ - + + + @@ -47714,19 +49362,19 @@ - + - + - + @@ -47735,643 +49383,645 @@ - + - - + + - - - + + + - - - + + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - + - - + + + - - + + - + - - + + - - + + - + - - + + + - - + + + - - + + - + - - - + + + - - + + - + - - + + - + - - + + - + + + + - - - + + - - + + - - + + - + + + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - + + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + - - - + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - - - - + + + + - - + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - + - + - - + + - - + + - + - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + @@ -48381,5013 +50031,5509 @@ - - + + - + - + - - + + + + - + + + + - + - + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - + - + - + + - - - + + + + - + + - - - - - + + + + + + - + - + + - - + + - + - - - + + + - + - + - - + + - + - + - + - + - + - + - + - - + + - - + + - + - + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - + + - - + + - - + + - + - - - - - - - - - + + + + + + + + + - + - + + - - - + + + + - - - - + + + + + - - - + + + - - + + + - - - + + + + - + + - + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - + + + + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - - + + + - - - + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - + + - + - - + + - - + + - - + + - - + + + - - + + + - - + + + - - + + + - - + + + - + - + - + - - - + + + - - - + + + - - - + + + - - - + + + + - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - - + + + - - - + + + - + + - + + - - - + + + + - - - + + + + - - - + + + + - - - + + + + + + + + + + + + + + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + - - - + + + + - + + - - - - + + + + + - - - - - - - - - + + + + + + + + + + + + + + - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - + - + - + - + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - - + + + + + + + + + + - - - - + + - - - - + + + + - + - - - + + + - - + + - - - + + + - - + + - + - - + + - - - + + + - - - - + + + + - - - + + + - - + + - - + + + + + + + + - - + + - - + + - - + + - - + + + + + - - + + + - + - - + + - + - + - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + + - - + + - - + + - - + + - - - + + + + - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - + + - - + + - - + + - - - - - - + + + + + + + - - - - + + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - + + + + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + + - - + - + - + + - - - - - - + + + + + + + - - + - + - + + - - - - - - + + + + + + + - - + - + - + + - - - - - - - + + + + + + - + + - - - - + + + - + + - - - - - + + + + + - - - - + + + + - - + + - - - - + + + + - - - + + + - - - - - - - - - - - + + + + + + + - - + + + - + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - + + + + + + + + + - - + - + - + + - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - + + - - + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - - + + + - + + + - - + + - + - - + + - + - - + + - - - - - - + - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - + + + - - - + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - - - - - - - - - - - - + - - - + + + - - - + + + - - - + + + - + - - - + + + - - - - + + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - - - + + + - - - - + + + + - - - + + + - - - - + + - - - + + + - - + + + + - - - + + + - - - + + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - + + + + - - - - + + + + - - - + + + - - + + - - + + - - + + - - + + - + + + + + + - - + + - - + + - - + + - - + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - - + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + + + + + + + - - - + + + + - - - + + + + + - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - + + + - - - + + + - - - - + + + - - - + + + - - - - + + + + + - - + + + - - - + + + + - - + + + - - + + - - - - - - - - + + + + + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + - - - - + + + + - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + - - + - + - + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + - - - + + + + + - - - - + - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - + + + - - - - - - + + + + + + - - - + + + - - - - - - - - + + + + + + - - - - + + + + - - - - - - - + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - + + + + + + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - - - + + + + - - - - + + + - - - + + + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - - - + + + - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - + + - - + + - - - + + + + + + + + + + + + + + + - - - + + - - - + + + - - - + + + - - - + + + - - - + + + + - - - + + + + - - - + + + + - - - + + + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/data/scripts/item_classification/item_tiers.lua b/data/scripts/item_classification/item_tiers.lua new file mode 100644 index 00000000000..deea3d9e01a --- /dev/null +++ b/data/scripts/item_classification/item_tiers.lua @@ -0,0 +1,51 @@ +local itemTierClassifications = { + -- Upgrade classification 1 + [1] = { + -- Update tier 0 + [0] = {price = 25000} + }, + -- Upgrade classification 2 + [2] = { + -- Update tier 0 + [0] = {price = 750000}, + -- Update tier 1 + [1] = {price = 5000000} + }, + -- Upgrade classification 3 + [3] = { + [0] = {price = 4000000}, + [1] = {price = 10000000}, + [2] = {price = 20000000} + }, + -- Upgrade classification 4 + [4] = { + [0] = {price = 8000000}, + [1] = {price = 20000000}, + [2] = {price = 40000000}, + [3] = {price = 65000000}, + [4] = {price = 100000000}, + [5] = {price = 250000000}, + [6] = {price = 750000000}, + [7] = {price = 2500000000}, + [8] = {price = 8000000000}, + [9] = {price = 15000000000} + } +} + +for classificationId, classificationTable in ipairs(itemTierClassifications) do + local itemClassification = Game.createItemClassification(classificationId) + local classification = {} + + -- Registers table for register_item_tier.lua interface + classification.Upgrades = {} + for tierId, tierTable in ipairs(classificationTable) do + if tierId then + classification.Upgrades.TierId = tierId + end + if tierTable.price then + classification.Upgrades.Price = tierTable.price + end + end + -- Create item classification and register classification table + itemClassification:register(classification) +end diff --git a/data/scripts/lib/register_item_tier.lua b/data/scripts/lib/register_item_tier.lua new file mode 100644 index 00000000000..ae280e0789c --- /dev/null +++ b/data/scripts/lib/register_item_tier.lua @@ -0,0 +1,26 @@ +registerItemClassification = {} +setmetatable(registerItemClassification, +{ + __call = + function(self, itemClass, mask) + for _,parse in pairs(self) do + parse(itemClass, mask) + end + end +}) + +ItemClassification.register = function(self, mask) + return registerItemClassification(self, mask) +end + +registerItemClassification.Upgrades = function(itemClassification, mask) + if mask.Upgrades then + for _, value in ipairs(mask.Upgrades) do + if value.TierId and value.Price then + itemClassification:addTier(value.TierId, value.Price) + else + Spdlog.warn("[registerItemClassification.Upgrades] - Item classification failed on adquire TierID or Price attribute.") + end + end + end +end diff --git a/data/scripts/talkactions/god/looktype.lua b/data/scripts/talkactions/god/looktype.lua index eba573e51d8..53ea5c5684e 100644 --- a/data/scripts/talkactions/god/looktype.lua +++ b/data/scripts/talkactions/god/looktype.lua @@ -5,7 +5,27 @@ local invalidTypes = { 189, 190, 191, 411, 415, 424, 439, 440, 468, 469, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 501, 518, 519, 520, 524, 525, 536, 543, 549, 576, 581, 582, 597, 616, 623, 625, 638, 639, 640, 641, 642, 643, 645, - 646, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663 + 646, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 678, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 713, 715, 718, 719, + 722, 723, 737, 741, 742, 743, 744, 748, 751, 752, 753, 754, 755, 756, 757, + 758, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, + 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, + 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 847, 864, 865, 866, 867, 871, 872, 880, 891, 892, 893, + 894, 895, 896, 897, 898, 911, 912, 917, 930, 941, 942, 946, 953, 954, 983, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1012, 1014, 1015, 1022, 1028, 1074, 1075, 1080, 1081, 1082, 1083, + 1084, 1085, 1086, 1087, 1089, 1090, 1096, 1097, 1098, 1099, 1100, 1141, 1145, + 1153, 1154, 1155, 1156, 1160, 1170, 1171, 1172, 1176, 1177, 1178, 1182, 1192, + 1193, 1194, 1198, 1215, 1216, 1225, 1226, 1227, 1228, 1235, 1236, 1237, 1238, + 1239, 1240, 1241, 1242, 1250, 1254, 1263, 1267, 1273, 1274, 1287, 1302, 1318, + 1319, 1320, 1327, 1328, 1329, 1330, 1340, 1343, 1345, 1347, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1368, + 1369, 1370, 1374, 1375, 1376, 1388, 1392, 1395, 1400, 1402, 1404, 1409, 1410, + 1411, 1420, 1421, 1427, 1429, 1432, 1433, 1434, 1435, 1438, 1442, 1443, 1451, + 1452, 1458, 1462 } local looktype = TalkAction("/looktype") @@ -21,7 +41,7 @@ function looktype.onSay(player, words, param) end local lookType = tonumber(param) - if lookType >= 0 and lookType < 700 and not table.contains(invalidTypes, lookType) then + if lookType >= 0 and lookType < 1469 and not table.contains(invalidTypes, lookType) then local playerOutfit = player:getOutfit() playerOutfit.lookType = lookType player:setOutfit(playerOutfit) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f565c7d104d..7c282a4d342 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -203,6 +203,7 @@ target_sources(${PROJECT_NAME} lua/functions/events/talk_action_functions.cpp lua/functions/items/container_functions.cpp lua/functions/items/imbuement_functions.cpp + lua/functions/items/item_classification_functions.cpp lua/functions/items/item_functions.cpp lua/functions/items/item_type_functions.cpp lua/functions/items/weapon_functions.cpp diff --git a/src/config/configmanager.cpp b/src/config/configmanager.cpp index 434b0b52bae..4ad5366a34f 100644 --- a/src/config/configmanager.cpp +++ b/src/config/configmanager.cpp @@ -126,7 +126,7 @@ bool ConfigManager::load() string[MYSQL_PASS] = getGlobalString(L, "mysqlPass", ""); string[MYSQL_DB] = getGlobalString(L, "mysqlDatabase", "canary"); string[MYSQL_SOCK] = getGlobalString(L, "mysqlSock", ""); - string[CLIENT_VERSION_STR] = getGlobalString(L, "clientVersionStr", "12.72"); + string[CLIENT_VERSION_STR] = getGlobalString(L, "clientVersionStr", "12.85"); integer[SQL_PORT] = getGlobalNumber(L, "mysqlPort", 3306); integer[GAME_PORT] = getGlobalNumber(L, "gameProtocolPort", 7172); @@ -135,7 +135,7 @@ bool ConfigManager::load() integer[MARKET_OFFER_DURATION] = getGlobalNumber(L, "marketOfferDuration", 30 * 24 * 60 * 60); - integer[CLIENT_VERSION] = getGlobalNumber(L, "clientVersion", 1272); + integer[CLIENT_VERSION] = getGlobalNumber(L, "clientVersion", 1285); integer[FREE_DEPOT_LIMIT] = getGlobalNumber(L, "freeDepotLimit", 2000); integer[PREMIUM_DEPOT_LIMIT] = getGlobalNumber(L, "premiumDepotLimit", 8000); integer[DEPOT_BOXES] = getGlobalNumber(L, "depotBoxes", 19); diff --git a/src/creatures/creatures_definitions.hpp b/src/creatures/creatures_definitions.hpp index 942ceaaa083..9e6da37fa8b 100644 --- a/src/creatures/creatures_definitions.hpp +++ b/src/creatures/creatures_definitions.hpp @@ -241,8 +241,9 @@ enum MarketAction_t { }; enum MarketRequest_t { - MARKETREQUEST_OWN_OFFERS = 0xFFFE, - MARKETREQUEST_OWN_HISTORY = 0xFFFF, + MARKETREQUEST_OWN_HISTORY = 1, + MARKETREQUEST_OWN_OFFERS = 2, + MARKETREQUEST_ITEM_BROWSE = 3, }; enum MarketOfferState_t { diff --git a/src/game/game.h b/src/game/game.h index 5a652f377d9..12d0d7f69f5 100644 --- a/src/game/game.h +++ b/src/game/game.h @@ -36,6 +36,7 @@ #include "lua/creature/raids.h" #include "creatures/players/grouping/team_finder.hpp" #include "utils/wildcardtree.h" +#include "items/items_classification.hpp" class ServiceManager; class Creature; @@ -43,6 +44,7 @@ class Monster; class Npc; class CombatInfo; class Charm; +class ItemClassification; static constexpr int32_t EVENT_LIGHTINTERVAL_MS = 10000; @@ -150,6 +152,25 @@ class Game return itemsSaleCount; } + void addItemsClassification(ItemClassification* itemsClassification) { + itemsClassifications.push_back(itemsClassification); + } + ItemClassification* getItemsClassification(uint8_t id, bool create) { + auto it = std::find_if(itemsClassifications.begin(), itemsClassifications.end(), [id](ItemClassification* it) { + return it->id == id; + }); + + if (it != itemsClassifications.end()) { + return *it; + } else if (create) { + ItemClassification* itemClassification = new ItemClassification(id); + addItemsClassification(itemClassification); + return itemClassification; + } + + return nullptr; + } + LightInfo getWorldLightInfo() const; bool gameIsDay(); @@ -421,6 +442,8 @@ class Game const std::unordered_map& getPlayers() const { return players; } const std::map& getNpcs() const { return npcs; } + const std::vector& getItemsClassifications() const { return itemsClassifications; } + void addPlayer(Player* player); void removePlayer(Player* player); @@ -612,6 +635,8 @@ class Game std::map itemsPriceMap; uint16_t itemsSaleCount; + + std::vector itemsClassifications; }; #endif // SRC_GAME_GAME_H_ diff --git a/src/items/functions/item_parse.cpp b/src/items/functions/item_parse.cpp index 516ccf09315..d3864ade730 100644 --- a/src/items/functions/item_parse.cpp +++ b/src/items/functions/item_parse.cpp @@ -32,6 +32,7 @@ void ItemParse::initParse(const std::string& tmpStrValue, pugi::xml_node attribu ItemParse::parseDefense(tmpStrValue, valueAttribute, itemType); ItemParse::parseExtraDefense(tmpStrValue, valueAttribute, itemType); ItemParse::parseAttack(tmpStrValue, valueAttribute, itemType); + ItemParse::parseUpgradeClassification(tmpStrValue, valueAttribute, itemType); ItemParse::parseRotateTo(tmpStrValue, valueAttribute, itemType); ItemParse::parseWrapContainer(tmpStrValue, valueAttribute, itemType); ItemParse::parseWrapableTo(tmpStrValue, valueAttribute, itemType); @@ -151,6 +152,13 @@ void ItemParse::parseAttack(const std::string& tmpStrValue, pugi::xml_attribute } } +void ItemParse::parseUpgradeClassification(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType) { + std::string stringValue = tmpStrValue; + if (stringValue == "upgradeclassification") { + itemType.upgradeClassification = pugi::cast(valueAttribute.value()); + } +} + void ItemParse::parseRotateTo(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType) { std::string stringValue = tmpStrValue; if (stringValue == "rotateto") { diff --git a/src/items/functions/item_parse.hpp b/src/items/functions/item_parse.hpp index e4294988f0d..db032c2fdf8 100644 --- a/src/items/functions/item_parse.hpp +++ b/src/items/functions/item_parse.hpp @@ -38,6 +38,7 @@ const std::unordered_map ItemParseAttributes {"defense", ITEM_PARSE_DEFENSE}, {"extradef", ITEM_PARSE_EXTRADEF}, {"attack", ITEM_PARSE_ATTACK}, + {"upgradeclassification", ITEM_PARSE_UPGRADE_CLASS}, {"rotateto", ITEM_PARSE_ROTATETO}, {"wrapcontainer", ITEM_PARSE_WRAPCONTAINER}, {"wrapableto", ITEM_PARSE_WRAPABLETO}, @@ -258,6 +259,7 @@ class ItemParse : public Items static void parseDefense(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); static void parseExtraDefense(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); static void parseAttack(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); + static void parseUpgradeClassification(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); static void parseRotateTo(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); static void parseWrapContainer(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); static void parseWrapableTo(const std::string& tmpStrValue, pugi::xml_attribute valueAttribute, ItemType& itemType); diff --git a/src/items/items.cpp b/src/items/items.cpp index 922904d971c..bc783247851 100644 --- a/src/items/items.cpp +++ b/src/items/items.cpp @@ -152,7 +152,7 @@ FILELOADER_ERRORS Items::loadFromOtb(const std::string& file) SPDLOG_ERROR("[Items::loadFromOtb] - " "Old version detected, a newer version of items.otb is required"); return ERROR_INVALID_FORMAT; - } else if (minorVersion < CLIENT_VERSION_1140) { + } else if (minorVersion < CLIENT_VERSION_1285) { SPDLOG_ERROR("[Items::loadFromOtb] - " "A newer version of items.otb is required"); return ERROR_INVALID_FORMAT; diff --git a/src/items/items.h b/src/items/items.h index a96753615e2..56b5f4c2090 100644 --- a/src/items/items.h +++ b/src/items/items.h @@ -1,4 +1,4 @@ -/** +/** * The Forgotten Server - a free and open-source MMORPG server emulator * Copyright (C) 2019 Mark Samman * @@ -254,6 +254,7 @@ class ItemType TileFlags_t floorChange = TILESTATE_NONE; std::map imbuementTypes; + uint8_t upgradeClassification = 0; uint8_t alwaysOnTopOrder = 0; uint8_t lightLevel = 0; uint8_t lightColor = 0; diff --git a/src/items/items_classification.hpp b/src/items/items_classification.hpp new file mode 100644 index 00000000000..5d91ea28da2 --- /dev/null +++ b/src/items/items_classification.hpp @@ -0,0 +1,48 @@ +/** + * Canary - A free and open-source MMORPG server emulator + * Copyright (C) 2021 OpenTibiaBR + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef SRC_ITEMS_ITEMS_CLASSIFICATION_HPP_ +#define SRC_ITEMS_ITEMS_CLASSIFICATION_HPP_ + +// Classification class for forging system and market. +class ItemClassification +{ + public: + ItemClassification() = default; + explicit ItemClassification(uint8_t id) : + id(id) {} + virtual ~ItemClassification() = default; + + void addTier(uint8_t id, uint64_t price) + { + for (std::pair tier : tiers) { + if (tier.first == id) { + tier.second = price; + return; + } + } + + tiers.push_back(std::pair({ id, price })); + } + + uint8_t id; + std::vector> tiers; +}; + +#endif // SRC_ITEMS_ITEMS_CLASSIFICATION_HPP_ diff --git a/src/items/items_definitions.hpp b/src/items/items_definitions.hpp index a7843a1b7cc..a343e3fd95b 100644 --- a/src/items/items_definitions.hpp +++ b/src/items/items_definitions.hpp @@ -213,7 +213,7 @@ enum ClientVersion_t { CLIENT_VERSION_1100_V2 = 59, CLIENT_VERSION_1100_V3 = 60, // No relased CLIENT_VERSION_1100_V4 = 61, // No relased - CLIENT_VERSION_1140 = 62, + CLIENT_VERSION_1285 = 62, }; enum RootAttrib_ { @@ -535,6 +535,7 @@ enum ItemParseAttributes_t { ITEM_PARSE_DEFENSE, ITEM_PARSE_EXTRADEF, ITEM_PARSE_ATTACK, + ITEM_PARSE_UPGRADE_CLASS, ITEM_PARSE_ROTATETO, ITEM_PARSE_WRAPCONTAINER, ITEM_PARSE_IMBUEMENT, diff --git a/src/lua/functions/core/game/game_functions.cpp b/src/lua/functions/core/game/game_functions.cpp index 7634fc519de..4c5ed924b96 100644 --- a/src/lua/functions/core/game/game_functions.cpp +++ b/src/lua/functions/core/game/game_functions.cpp @@ -572,6 +572,24 @@ int GameFunctions::luaGameCreateBestiaryCharm(lua_State* L) { return 1; } +int GameFunctions::luaGameCreateItemClassification(lua_State* L) { + // Game.createItemClassification(id) + if (getScriptEnv()->getScriptInterface() != &g_scripts->getScriptInterface()) { + reportErrorFunc("Item classification can only be registered in the Scripts interface."); + lua_pushnil(L); + return 1; + } + + ItemClassification* itemClassification = g_game.getItemsClassification(getNumber(L, 1), true); + if (itemClassification) { + pushUserdata(L, itemClassification); + setMetatable(L, -1, "ItemClassification"); + } else { + lua_pushnil(L); + } + return 1; +} + int GameFunctions::luaGameStartRaid(lua_State* L) { // Game.startRaid(raidName) const std::string& raidName = getString(L, 1); diff --git a/src/lua/functions/core/game/game_functions.hpp b/src/lua/functions/core/game/game_functions.hpp index 3536ecbbe57..ebf1a4092bb 100644 --- a/src/lua/functions/core/game/game_functions.hpp +++ b/src/lua/functions/core/game/game_functions.hpp @@ -71,6 +71,8 @@ class GameFunctions final : LuaScriptInterface { registerMethod(L, "Game", "createTile", GameFunctions::luaGameCreateTile); registerMethod(L, "Game", "createBestiaryCharm", GameFunctions::luaGameCreateBestiaryCharm); + registerMethod(L, "Game", "createItemClassification", GameFunctions::luaGameCreateItemClassification); + registerMethod(L, "Game", "getBestiaryCharm", GameFunctions::luaGameGetBestiaryCharm); registerMethod(L, "Game", "startRaid", GameFunctions::luaGameStartRaid); @@ -129,6 +131,8 @@ class GameFunctions final : LuaScriptInterface { static int luaGameGetBestiaryCharm(lua_State* L); static int luaGameCreateBestiaryCharm(lua_State* L); + static int luaGameCreateItemClassification(lua_State* L); + static int luaGameStartRaid(lua_State* L); static int luaGameGetClientVersion(lua_State* L); diff --git a/src/lua/functions/core/game/lua_enums.hpp b/src/lua/functions/core/game/lua_enums.hpp index ee980338e83..cad59ee2461 100644 --- a/src/lua/functions/core/game/lua_enums.hpp +++ b/src/lua/functions/core/game/lua_enums.hpp @@ -319,6 +319,21 @@ class LuaEnums final : LuaScriptInterface { registerEnum(L, CONST_ME_ROOTS) registerEnum(L, CONST_ME_CHIVALRIOUS_CHALLENGE) registerEnum(L, CONST_ME_DIVINE_DAZZLE) + registerEnum(L, CONST_ME_ELECTRICALSPARK) + registerEnum(L, CONST_ME_PURPLETELEPORT) + registerEnum(L, CONST_ME_REDTELEPORT) + registerEnum(L, CONST_ME_ORANGETELEPORT) + registerEnum(L, CONST_ME_GREYTELEPORT) + registerEnum(L, CONST_ME_LIGHTBLUETELEPORT) + registerEnum(L, CONST_ME_FATAL) + registerEnum(L, CONST_ME_DODGE) + registerEnum(L, CONST_ME_HOURGLASS) + registerEnum(L, CONST_ME_FERUMBRAS_1) + registerEnum(L, CONST_ME_GAZHARAGOTH) + registerEnum(L, CONST_ME_MAD_MAGE) + registerEnum(L, CONST_ME_HORESTIS) + registerEnum(L, CONST_ME_DEVOVORGA) + registerEnum(L, CONST_ME_FERUMBRAS_2) registerEnum(L, CONST_ANI_NONE) registerEnum(L, CONST_ANI_SPEAR) diff --git a/src/lua/functions/items/item_classification_functions.cpp b/src/lua/functions/items/item_classification_functions.cpp new file mode 100644 index 00000000000..68fcaec30d2 --- /dev/null +++ b/src/lua/functions/items/item_classification_functions.cpp @@ -0,0 +1,52 @@ +/** + * Canary - A free and open-source MMORPG server emulator + * Copyright (C) 2021 OpenTibiaBR + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "otpch.h" + +#include "game/game.h" +#include "lua/functions/items/item_classification_functions.hpp" + +int ItemClassificationFunctions::luaItemClassificationCreate(lua_State* L) { + // ItemClassification(id) + if (isNumber(L, 2)) { + ItemClassification* itemClassification = g_game.getItemsClassification(getNumber(L, 2), false); + if (itemClassification) + { + pushUserdata(L, itemClassification); + setMetatable(L, -1, "ItemClassification"); + pushBoolean(L, true); + } + } + + lua_pushnil(L); + return 1; +} + +int ItemClassificationFunctions::luaItemClassificationAddTier(lua_State* L) { + // itemClassification:addTier(id, price) + ItemClassification* itemClassification = getUserdata(L, 1); + if (itemClassification) { + itemClassification->addTier(getNumber(L, 2), getNumber(L, 3)); + pushBoolean(L, true); + } else { + lua_pushnil(L); + } + + return 1; +} diff --git a/src/lua/functions/items/item_classification_functions.hpp b/src/lua/functions/items/item_classification_functions.hpp new file mode 100644 index 00000000000..39a67526c56 --- /dev/null +++ b/src/lua/functions/items/item_classification_functions.hpp @@ -0,0 +1,40 @@ +/** + * Canary - A free and open-source MMORPG server emulator + * Copyright (C) 2021 OpenTibiaBR + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef SRC_LUA_FUNCTIONS_ITEMS_ITEM_CLASSIFICATION_FUNCTIONS_HPP_ +#define SRC_LUA_FUNCTIONS_ITEMS_ITEM_CLASSIFICATION_FUNCTIONS_HPP_ + +#include "lua/scripts/luascript.h" +#include "items/items_classification.hpp" + +class ItemClassificationFunctions final : LuaScriptInterface { + public: + static void init(lua_State* L) { + registerClass(L, "ItemClassification", "", ItemClassificationFunctions::luaItemClassificationCreate); + registerMetaMethod(L, "ItemClassification", "__eq", ItemClassificationFunctions::luaUserdataCompare); + + registerMethod(L, "ItemClassification", "addTier", ItemClassificationFunctions::luaItemClassificationAddTier); + } + + private: + static int luaItemClassificationCreate(lua_State* L); + static int luaItemClassificationAddTier(lua_State* L); +}; + +#endif // SRC_LUA_FUNCTIONS_ITEMS_ITEM_CLASSIFICATION_FUNCTIONS_HPP_ diff --git a/src/lua/functions/items/item_type_functions.hpp b/src/lua/functions/items/item_type_functions.hpp index 4561dca12e5..a8e91da397e 100644 --- a/src/lua/functions/items/item_type_functions.hpp +++ b/src/lua/functions/items/item_type_functions.hpp @@ -21,6 +21,7 @@ #define SRC_LUA_FUNCTIONS_ITEMS_ITEM_TYPE_FUNCTIONS_HPP_ #include "lua/scripts/luascript.h" +#include "lua/functions/items/item_classification_functions.hpp" class ItemTypeFunctions final : LuaScriptInterface { public: @@ -86,6 +87,8 @@ class ItemTypeFunctions final : LuaScriptInterface { registerMethod(L, "ItemType", "getBaseSpeed", ItemTypeFunctions::luaItemTypeGetBaseSpeed); registerMethod(L, "ItemType", "hasSubType", ItemTypeFunctions::luaItemTypeHasSubType); + + ItemClassificationFunctions::init(L); } private: diff --git a/src/server/network/protocol/protocolgame.cpp b/src/server/network/protocol/protocolgame.cpp index c9f5f968b40..6f51ff7d84c 100644 --- a/src/server/network/protocol/protocolgame.cpp +++ b/src/server/network/protocol/protocolgame.cpp @@ -75,6 +75,9 @@ void ProtocolGame::AddItem(NetworkMessage &msg, uint16_t id, uint8_t count) msg.addByte(2); msg.addByte(0x01); } + if (it.upgradeClassification > 0) { + msg.addByte(0); + } } void ProtocolGame::AddItem(NetworkMessage &msg, const Item *item) @@ -187,6 +190,9 @@ void ProtocolGame::AddItem(NetworkMessage &msg, const Item *item) msg.addByte(lookDirection ? static_cast(boost::get(lookDirection->value)) : 2); msg.addByte(podiumVisible ? static_cast(boost::get(podiumVisible->value)) : 0x01); } + if (it.upgradeClassification > 0) { + msg.addByte(0); + } } void ProtocolGame::release() @@ -2492,7 +2498,7 @@ void ProtocolGame::parseMarketLeave() void ProtocolGame::parseMarketBrowse(NetworkMessage &msg) { - uint16_t browseId = msg.get(); + uint8_t browseId = msg.get(); if (browseId == MARKETREQUEST_OWN_OFFERS) { @@ -2504,8 +2510,9 @@ void ProtocolGame::parseMarketBrowse(NetworkMessage &msg) } else { + uint16_t itemId = msg.get(); player->sendMarketEnter(player->getLastDepotId()); - addGameTask(&Game::playerBrowseMarket, player->getID(), browseId); + addGameTask(&Game::playerBrowseMarket, player->getID(), itemId); } } @@ -2581,8 +2588,12 @@ void ProtocolGame::parseMarketCreateOffer(NetworkMessage &msg) { uint8_t type = msg.getByte(); uint16_t spriteId = msg.get(); + if (Item::items[spriteId].upgradeClassification > 0) + { + msg.getByte(); // Tier + } uint16_t amount = msg.get(); - uint32_t price = msg.get(); + uint64_t price = msg.get(); bool anonymous = (msg.getByte() != 0); if (amount > 0 && price > 0) { @@ -2933,6 +2944,12 @@ void ProtocolGame::sendCyclopediaCharacterCombatStats() msg.add(0); } + // Version 12.81 new skill (Fatal, Dodge and Momentum) + for (uint8_t i = 1; i <= 3; ++i) { + msg.add(0); + msg.add(0); + } + // Cleave (12.70) msg.add(0); // Magic shield capacity (12.70) @@ -4032,6 +4049,10 @@ void ProtocolGame::sendMarketEnter(uint32_t depotId) for (std::map::const_iterator it = depotItems.begin(); i < itemsToSend; ++it, ++i) { msg.add(it->first); + if (Item::items[it->first].upgradeClassification > 0) + { + msg.addByte(0); + } msg.add(std::min(0xFFFF, it->second)); } @@ -4102,7 +4123,11 @@ void ProtocolGame::sendMarketBrowseItem(uint16_t itemId, const MarketOfferList & NetworkMessage msg; msg.addByte(0xF9); + msg.addByte(MARKETREQUEST_ITEM_BROWSE); msg.addItemId(itemId); + if (Item::items[itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(buyOffers.size()); for (const MarketOffer &offer : buyOffers) @@ -4110,7 +4135,7 @@ void ProtocolGame::sendMarketBrowseItem(uint16_t itemId, const MarketOfferList & msg.add(offer.timestamp); msg.add(offer.counter); msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); msg.addString(offer.playerName); } @@ -4120,7 +4145,7 @@ void ProtocolGame::sendMarketBrowseItem(uint16_t itemId, const MarketOfferList & msg.add(offer.timestamp); msg.add(offer.counter); msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); msg.addString(offer.playerName); } @@ -4132,7 +4157,11 @@ void ProtocolGame::sendMarketAcceptOffer(const MarketOfferEx &offer) { NetworkMessage msg; msg.addByte(0xF9); + msg.addByte(MARKETREQUEST_ITEM_BROWSE); msg.addItemId(offer.itemId); + if (Item::items[offer.itemId].upgradeClassification > 0) { + msg.addByte(0); + } if (offer.type == MARKETACTION_BUY) { @@ -4140,7 +4169,7 @@ void ProtocolGame::sendMarketAcceptOffer(const MarketOfferEx &offer) msg.add(offer.timestamp); msg.add(offer.counter); msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); msg.addString(offer.playerName); msg.add(0x00); } @@ -4151,7 +4180,7 @@ void ProtocolGame::sendMarketAcceptOffer(const MarketOfferEx &offer) msg.add(offer.timestamp); msg.add(offer.counter); msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); msg.addString(offer.playerName); } @@ -4162,7 +4191,7 @@ void ProtocolGame::sendMarketBrowseOwnOffers(const MarketOfferList &buyOffers, c { NetworkMessage msg; msg.addByte(0xF9); - msg.add(MARKETREQUEST_OWN_OFFERS); + msg.addByte(MARKETREQUEST_OWN_OFFERS); msg.add(buyOffers.size()); for (const MarketOffer &offer : buyOffers) @@ -4170,8 +4199,11 @@ void ProtocolGame::sendMarketBrowseOwnOffers(const MarketOfferList &buyOffers, c msg.add(offer.timestamp); msg.add(offer.counter); msg.addItemId(offer.itemId); + if (Item::items[offer.itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); } msg.add(sellOffers.size()); @@ -4180,8 +4212,11 @@ void ProtocolGame::sendMarketBrowseOwnOffers(const MarketOfferList &buyOffers, c msg.add(offer.timestamp); msg.add(offer.counter); msg.addItemId(offer.itemId); + if (Item::items[offer.itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); } writeToOutputBuffer(msg); @@ -4191,7 +4226,7 @@ void ProtocolGame::sendMarketCancelOffer(const MarketOfferEx &offer) { NetworkMessage msg; msg.addByte(0xF9); - msg.add(MARKETREQUEST_OWN_OFFERS); + msg.addByte(MARKETREQUEST_OWN_OFFERS); if (offer.type == MARKETACTION_BUY) { @@ -4199,8 +4234,11 @@ void ProtocolGame::sendMarketCancelOffer(const MarketOfferEx &offer) msg.add(offer.timestamp); msg.add(offer.counter); msg.addItemId(offer.itemId); + if (Item::items[offer.itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); msg.add(0x00); } else @@ -4210,8 +4248,11 @@ void ProtocolGame::sendMarketCancelOffer(const MarketOfferEx &offer) msg.add(offer.timestamp); msg.add(offer.counter); msg.addItemId(offer.itemId); + if (Item::items[offer.itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(offer.amount); - msg.add(offer.price); + msg.add(offer.price); } writeToOutputBuffer(msg); @@ -4226,7 +4267,7 @@ void ProtocolGame::sendMarketBrowseOwnHistory(const HistoryMarketOfferList &buyO NetworkMessage msg; msg.addByte(0xF9); - msg.add(MARKETREQUEST_OWN_HISTORY); + msg.addByte(MARKETREQUEST_OWN_HISTORY); msg.add(buyOffersToSend); for (auto it = buyOffers.begin(); i < buyOffersToSend; ++it, ++i) @@ -4234,8 +4275,11 @@ void ProtocolGame::sendMarketBrowseOwnHistory(const HistoryMarketOfferList &buyO msg.add(it->timestamp); msg.add(counterMap[it->timestamp]++); msg.addItemId(it->itemId); + if (Item::items[it->itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(it->amount); - msg.add(it->price); + msg.add(it->price); msg.addByte(it->state); } @@ -4248,21 +4292,54 @@ void ProtocolGame::sendMarketBrowseOwnHistory(const HistoryMarketOfferList &buyO msg.add(it->timestamp); msg.add(counterMap[it->timestamp]++); msg.addItemId(it->itemId); + if (Item::items[it->itemId].upgradeClassification > 0) { + msg.addByte(0); + } msg.add(it->amount); - msg.add(it->price); + msg.add(it->price); msg.addByte(it->state); } writeToOutputBuffer(msg); } +void ProtocolGame::sendForgingData() +{ + NetworkMessage msg; + msg.addByte(0x86); + + std::vector classifications = g_game.getItemsClassifications(); + msg.addByte(classifications.size()); + for (ItemClassification* classification : classifications) + { + msg.addByte(classification->id); + msg.addByte(classification->tiers.size()); + for (std::pair tier : classification->tiers) + { + msg.addByte(tier.first); + msg.add(tier.second); + } + } + + // Version 12.81 + for (uint8_t i = 1; i <= 11; ++i) { + msg.addByte(0); + } + + writeToOutputBuffer(msg); +} + void ProtocolGame::sendMarketDetail(uint16_t itemId) { NetworkMessage msg; msg.addByte(0xF8); msg.addItemId(itemId); - const ItemType &it = Item::items[itemId]; + + if (it.upgradeClassification > 0) { + msg.addByte(0); + } + if (it.armor != 0) { msg.addString(std::to_string(it.armor)); @@ -4551,15 +4628,26 @@ void ProtocolGame::sendMarketDetail(uint16_t itemId) // Perfect shot modifier (12.70) msg.add(0x00); + if (it.upgradeClassification > 0) + { + msg.addString(std::to_string(it.upgradeClassification)); + } + else + { + msg.add(0x00); + } + + // Item tier modifier (12.82) + msg.add(0x00); + MarketStatistics *statistics = IOMarket::getInstance().getPurchaseStatistics(itemId); if (statistics) { msg.addByte(0x01); msg.add(statistics->numTransactions); - msg.add(std::min(std::numeric_limits::max(), statistics->totalPrice)); - msg.add(0); - msg.add(statistics->highestPrice); - msg.add(statistics->lowestPrice); + msg.add(statistics->totalPrice); + msg.add(statistics->highestPrice); + msg.add(statistics->lowestPrice); } else { @@ -4571,10 +4659,9 @@ void ProtocolGame::sendMarketDetail(uint16_t itemId) { msg.addByte(0x01); msg.add(statistics->numTransactions); - msg.add(std::min(std::numeric_limits::max(), statistics->totalPrice)); - msg.add(0); - msg.add(statistics->highestPrice); - msg.add(statistics->lowestPrice); + msg.add(std::min(std::numeric_limits::max(), statistics->totalPrice)); + msg.add(statistics->highestPrice); + msg.add(statistics->lowestPrice); } else { @@ -5265,6 +5352,8 @@ void ProtocolGame::sendAddCreature(const Creature *creature, const Position &pos sendItemsPrice(); + sendForgingData(); + //gameworld light-settings sendWorldLight(g_game.getWorldLightInfo()); @@ -5688,6 +5777,9 @@ void ProtocolGame::sendOutfitWindow() msg.addByte(0x00); //Try outfit msg.addByte(mounted ? 0x01 : 0x00); + // Version 12.81 - Random outfit 'bool' + msg.addByte(0); + writeToOutputBuffer(msg); } @@ -6328,9 +6420,16 @@ void ProtocolGame::AddPlayerSkills(NetworkMessage &msg) msg.add(player->getBaseSkill(i)); } + // Version 12.81 new skill (Fatal, Dodge and Momentum) + for (uint8_t i = 1; i <= 3; ++i) { + msg.add(0); + msg.add(0); + } + // used for imbuement (Feather) msg.add(player->getCapacity()); // total capacity msg.add(player->getBaseCapacity()); // base total capacity + } void ProtocolGame::AddOutfit(NetworkMessage &msg, const Outfit_t &outfit, bool addMount /* = true*/) @@ -6399,6 +6498,9 @@ void ProtocolGame::openImbuementWindow(Item *item) NetworkMessage msg; msg.addByte(0xEB); msg.addItemId(item->getID()); + if (Item::items[item->getID()].upgradeClassification > 0) { + msg.addByte(0); + } msg.addByte(item->getImbuementSlot()); // Send imbuement time @@ -6751,7 +6853,12 @@ void ProtocolGame::sendItemsPrice() for (const auto &it : items) { msg.addItemId(it.first); + if (Item::items[it.first].upgradeClassification > 0) + { + msg.addByte(0); + } msg.add(it.second); + msg.add(0); } } diff --git a/src/server/network/protocol/protocolgame.h b/src/server/network/protocol/protocolgame.h index 95579fca86f..77102fe5822 100644 --- a/src/server/network/protocol/protocolgame.h +++ b/src/server/network/protocol/protocolgame.h @@ -246,6 +246,7 @@ class ProtocolGame final : public Protocol void closeImbuementWindow(); void sendItemsPrice(); + void sendForgingData(); void sendDistanceShoot(const Position &from, const Position &to, uint8_t type); void sendMagicEffect(const Position &pos, uint8_t type); diff --git a/src/utils/tools.cpp b/src/utils/tools.cpp index 7959d4149d8..25fdc65a0f7 100644 --- a/src/utils/tools.cpp +++ b/src/utils/tools.cpp @@ -624,6 +624,15 @@ MagicEffectNames magicEffectNames = { {"watercreature", CONST_ME_WATERCREATURE}, {"watersplash", CONST_ME_WATERSPLASH}, {"whiteenergyspark", CONST_ME_WHITE_ENERGY_SPARK }, + {"fatal", CONST_ME_FATAL}, + {"dodge", CONST_ME_DODGE}, + {"hourglass", CONST_ME_HOURGLASS}, + {"ferumbras1", CONST_ME_FERUMBRAS_1}, + {"gazharagoth", CONST_ME_GAZHARAGOTH}, + {"madmage", CONST_ME_MAD_MAGE}, + {"horestis", CONST_ME_HORESTIS}, + {"devovorga", CONST_ME_DEVOVORGA}, + {"ferumbras2", CONST_ME_FERUMBRAS_2}, }; ShootTypeNames shootTypeNames = { diff --git a/src/utils/utils_definitions.hpp b/src/utils/utils_definitions.hpp index 599c00181a4..8c3cfe375fc 100644 --- a/src/utils/utils_definitions.hpp +++ b/src/utils/utils_definitions.hpp @@ -232,6 +232,23 @@ enum MagicEffectClasses : uint8_t { CONST_ME_ROOTS = 210, CONST_ME_CHIVALRIOUS_CHALLENGE = 219, CONST_ME_DIVINE_DAZZLE = 220, + CONST_ME_ELECTRICALSPARK = 221, + CONST_ME_PURPLETELEPORT = 222, + CONST_ME_REDTELEPORT = 223, + CONST_ME_ORANGETELEPORT = 224, + CONST_ME_GREYTELEPORT = 225, + CONST_ME_LIGHTBLUETELEPORT = 226, + // 227-229 are empty + CONST_ME_FATAL = 230, + CONST_ME_DODGE = 231, + CONST_ME_HOURGLASS = 232, + // 233-234 are empty + CONST_ME_FERUMBRAS_1 = 235, + CONST_ME_GAZHARAGOTH = 236, + CONST_ME_MAD_MAGE = 237, + CONST_ME_HORESTIS = 238, + CONST_ME_DEVOVORGA = 239, + CONST_ME_FERUMBRAS_2 = 240, CONST_ME_LAST = CONST_ME_DIVINE_DAZZLE, };