sf_base_att_str  = 0x000
sf_base_att_agi  = 0x001
sf_base_att_int  = 0x002
sf_base_att_cha  = 0x003

sf_effects_party = 0x010
sf_inactive      = 0x100

num_skill_words = 6



skl_trade                = 0
skl_leadership           = 1
skl_prisoner_management  = 2
skl_reserved_1           = 3
skl_reserved_2           = 4
skl_reserved_3           = 5
skl_reserved_4           = 6
skl_persuasion           = 7
skl_engineer             = 8
skl_first_aid            = 9
skl_surgery              = 10
skl_wound_treatment      = 11
skl_inventory_management = 12
skl_spotting             = 13
skl_pathfinding          = 14
skl_tactics              = 15
skl_tracking             = 16
skl_trainer              = 17
skl_reserved_5           = 18
skl_reserved_6           = 19
skl_reserved_7           = 20
skl_reserved_8           = 21
skl_looting              = 22
skl_horse_archery        = 23
skl_riding               = 24
skl_athletics            = 25
skl_shield               = 26
skl_weapon_master        = 27
skl_reserved_9           = 28
skl_reserved_10          = 29
skl_reserved_11          = 30
skl_reserved_12          = 31
skl_reserved_13          = 32
skl_power_draw           = 33
skl_power_throw          = 34
skl_power_strike         = 35
skl_ironflesh            = 36
skl_reserved_14          = 37
skl_reserved_15          = 38
skl_reserved_16          = 39
skl_reserved_17          = 40
skl_reserved_18          = 41

knows_trade_1                 = 0x01 << (skl_trade << 2)
knows_trade_2                 = 0x02 << (skl_trade << 2)
knows_trade_3                 = 0x03 << (skl_trade << 2)
knows_trade_4                 = 0x04 << (skl_trade << 2)
knows_trade_5                 = 0x05 << (skl_trade << 2)
knows_trade_6                 = 0x06 << (skl_trade << 2)
knows_trade_7                 = 0x07 << (skl_trade << 2)
knows_trade_8                 = 0x08 << (skl_trade << 2)
knows_trade_9                 = 0x09 << (skl_trade << 2)
knows_trade_10                = 0x0A << (skl_trade << 2)
knows_trade_11                = 0x0B << (skl_trade << 2)
knows_trade_12                = 0x0C << (skl_trade << 2)
knows_trade_13                = 0x0D << (skl_trade << 2)
knows_trade_14                = 0x0E << (skl_trade << 2)
knows_trade_15                = 0x0F << (skl_trade << 2)
knows_leadership_1            = 0x01 << (skl_leadership << 2)
knows_leadership_2            = 0x02 << (skl_leadership << 2)
knows_leadership_3            = 0x03 << (skl_leadership << 2)
knows_leadership_4            = 0x04 << (skl_leadership << 2)
knows_leadership_5            = 0x05 << (skl_leadership << 2)
knows_leadership_6            = 0x06 << (skl_leadership << 2)
knows_leadership_7            = 0x07 << (skl_leadership << 2)
knows_leadership_8            = 0x08 << (skl_leadership << 2)
knows_leadership_9            = 0x09 << (skl_leadership << 2)
knows_leadership_10           = 0x0A << (skl_leadership << 2)
knows_leadership_11           = 0x0B << (skl_leadership << 2)
knows_leadership_12           = 0x0C << (skl_leadership << 2)
knows_leadership_13           = 0x0D << (skl_leadership << 2)
knows_leadership_14           = 0x0E << (skl_leadership << 2)
knows_leadership_15           = 0x0F << (skl_leadership << 2)
knows_prisoner_management_1   = 0x01 << (skl_prisoner_management << 2)
knows_prisoner_management_2   = 0x02 << (skl_prisoner_management << 2)
knows_prisoner_management_3   = 0x03 << (skl_prisoner_management << 2)
knows_prisoner_management_4   = 0x04 << (skl_prisoner_management << 2)
knows_prisoner_management_5   = 0x05 << (skl_prisoner_management << 2)
knows_prisoner_management_6   = 0x06 << (skl_prisoner_management << 2)
knows_prisoner_management_7   = 0x07 << (skl_prisoner_management << 2)
knows_prisoner_management_8   = 0x08 << (skl_prisoner_management << 2)
knows_prisoner_management_9   = 0x09 << (skl_prisoner_management << 2)
knows_prisoner_management_10  = 0x0A << (skl_prisoner_management << 2)
knows_prisoner_management_11  = 0x0B << (skl_prisoner_management << 2)
knows_prisoner_management_12  = 0x0C << (skl_prisoner_management << 2)
knows_prisoner_management_13  = 0x0D << (skl_prisoner_management << 2)
knows_prisoner_management_14  = 0x0E << (skl_prisoner_management << 2)
knows_prisoner_management_15  = 0x0F << (skl_prisoner_management << 2)
knows_reserved_1_1            = 0x01 << (skl_reserved_1 << 2)
knows_reserved_1_2            = 0x02 << (skl_reserved_1 << 2)
knows_reserved_1_3            = 0x03 << (skl_reserved_1 << 2)
knows_reserved_1_4            = 0x04 << (skl_reserved_1 << 2)
knows_reserved_1_5            = 0x05 << (skl_reserved_1 << 2)
knows_reserved_1_6            = 0x06 << (skl_reserved_1 << 2)
knows_reserved_1_7            = 0x07 << (skl_reserved_1 << 2)
knows_reserved_1_8            = 0x08 << (skl_reserved_1 << 2)
knows_reserved_1_9            = 0x09 << (skl_reserved_1 << 2)
knows_reserved_1_10           = 0x0A << (skl_reserved_1 << 2)
knows_reserved_1_11           = 0x0B << (skl_reserved_1 << 2)
knows_reserved_1_12           = 0x0C << (skl_reserved_1 << 2)
knows_reserved_1_13           = 0x0D << (skl_reserved_1 << 2)
knows_reserved_1_14           = 0x0E << (skl_reserved_1 << 2)
knows_reserved_1_15           = 0x0F << (skl_reserved_1 << 2)
knows_reserved_2_1            = 0x01 << (skl_reserved_2 << 2)
knows_reserved_2_2            = 0x02 << (skl_reserved_2 << 2)
knows_reserved_2_3            = 0x03 << (skl_reserved_2 << 2)
knows_reserved_2_4            = 0x04 << (skl_reserved_2 << 2)
knows_reserved_2_5            = 0x05 << (skl_reserved_2 << 2)
knows_reserved_2_6            = 0x06 << (skl_reserved_2 << 2)
knows_reserved_2_7            = 0x07 << (skl_reserved_2 << 2)
knows_reserved_2_8            = 0x08 << (skl_reserved_2 << 2)
knows_reserved_2_9            = 0x09 << (skl_reserved_2 << 2)
knows_reserved_2_10           = 0x0A << (skl_reserved_2 << 2)
knows_reserved_2_11           = 0x0B << (skl_reserved_2 << 2)
knows_reserved_2_12           = 0x0C << (skl_reserved_2 << 2)
knows_reserved_2_13           = 0x0D << (skl_reserved_2 << 2)
knows_reserved_2_14           = 0x0E << (skl_reserved_2 << 2)
knows_reserved_2_15           = 0x0F << (skl_reserved_2 << 2)
knows_reserved_3_1            = 0x01 << (skl_reserved_3 << 2)
knows_reserved_3_2            = 0x02 << (skl_reserved_3 << 2)
knows_reserved_3_3            = 0x03 << (skl_reserved_3 << 2)
knows_reserved_3_4            = 0x04 << (skl_reserved_3 << 2)
knows_reserved_3_5            = 0x05 << (skl_reserved_3 << 2)
knows_reserved_3_6            = 0x06 << (skl_reserved_3 << 2)
knows_reserved_3_7            = 0x07 << (skl_reserved_3 << 2)
knows_reserved_3_8            = 0x08 << (skl_reserved_3 << 2)
knows_reserved_3_9            = 0x09 << (skl_reserved_3 << 2)
knows_reserved_3_10           = 0x0A << (skl_reserved_3 << 2)
knows_reserved_3_11           = 0x0B << (skl_reserved_3 << 2)
knows_reserved_3_12           = 0x0C << (skl_reserved_3 << 2)
knows_reserved_3_13           = 0x0D << (skl_reserved_3 << 2)
knows_reserved_3_14           = 0x0E << (skl_reserved_3 << 2)
knows_reserved_3_15           = 0x0F << (skl_reserved_3 << 2)
knows_reserved_4_1            = 0x01 << (skl_reserved_4 << 2)
knows_reserved_4_2            = 0x02 << (skl_reserved_4 << 2)
knows_reserved_4_3            = 0x03 << (skl_reserved_4 << 2)
knows_reserved_4_4            = 0x04 << (skl_reserved_4 << 2)
knows_reserved_4_5            = 0x05 << (skl_reserved_4 << 2)
knows_reserved_4_6            = 0x06 << (skl_reserved_4 << 2)
knows_reserved_4_7            = 0x07 << (skl_reserved_4 << 2)
knows_reserved_4_8            = 0x08 << (skl_reserved_4 << 2)
knows_reserved_4_9            = 0x09 << (skl_reserved_4 << 2)
knows_reserved_4_10           = 0x0A << (skl_reserved_4 << 2)
knows_reserved_4_11           = 0x0B << (skl_reserved_4 << 2)
knows_reserved_4_12           = 0x0C << (skl_reserved_4 << 2)
knows_reserved_4_13           = 0x0D << (skl_reserved_4 << 2)
knows_reserved_4_14           = 0x0E << (skl_reserved_4 << 2)
knows_reserved_4_15           = 0x0F << (skl_reserved_4 << 2)
knows_persuasion_1            = 0x01 << (skl_persuasion << 2)
knows_persuasion_2            = 0x02 << (skl_persuasion << 2)
knows_persuasion_3            = 0x03 << (skl_persuasion << 2)
knows_persuasion_4            = 0x04 << (skl_persuasion << 2)
knows_persuasion_5            = 0x05 << (skl_persuasion << 2)
knows_persuasion_6            = 0x06 << (skl_persuasion << 2)
knows_persuasion_7            = 0x07 << (skl_persuasion << 2)
knows_persuasion_8            = 0x08 << (skl_persuasion << 2)
knows_persuasion_9            = 0x09 << (skl_persuasion << 2)
knows_persuasion_10           = 0x0A << (skl_persuasion << 2)
knows_persuasion_11           = 0x0B << (skl_persuasion << 2)
knows_persuasion_12           = 0x0C << (skl_persuasion << 2)
knows_persuasion_13           = 0x0D << (skl_persuasion << 2)
knows_persuasion_14           = 0x0E << (skl_persuasion << 2)
knows_persuasion_15           = 0x0F << (skl_persuasion << 2)
knows_engineer_1              = 0x01 << (skl_engineer << 2)
knows_engineer_2              = 0x02 << (skl_engineer << 2)
knows_engineer_3              = 0x03 << (skl_engineer << 2)
knows_engineer_4              = 0x04 << (skl_engineer << 2)
knows_engineer_5              = 0x05 << (skl_engineer << 2)
knows_engineer_6              = 0x06 << (skl_engineer << 2)
knows_engineer_7              = 0x07 << (skl_engineer << 2)
knows_engineer_8              = 0x08 << (skl_engineer << 2)
knows_engineer_9              = 0x09 << (skl_engineer << 2)
knows_engineer_10             = 0x0A << (skl_engineer << 2)
knows_engineer_11             = 0x0B << (skl_engineer << 2)
knows_engineer_12             = 0x0C << (skl_engineer << 2)
knows_engineer_13             = 0x0D << (skl_engineer << 2)
knows_engineer_14             = 0x0E << (skl_engineer << 2)
knows_engineer_15             = 0x0F << (skl_engineer << 2)
knows_first_aid_1             = 0x01 << (skl_first_aid << 2)
knows_first_aid_2             = 0x02 << (skl_first_aid << 2)
knows_first_aid_3             = 0x03 << (skl_first_aid << 2)
knows_first_aid_4             = 0x04 << (skl_first_aid << 2)
knows_first_aid_5             = 0x05 << (skl_first_aid << 2)
knows_first_aid_6             = 0x06 << (skl_first_aid << 2)
knows_first_aid_7             = 0x07 << (skl_first_aid << 2)
knows_first_aid_8             = 0x08 << (skl_first_aid << 2)
knows_first_aid_9             = 0x09 << (skl_first_aid << 2)
knows_first_aid_10            = 0x0A << (skl_first_aid << 2)
knows_first_aid_11            = 0x0B << (skl_first_aid << 2)
knows_first_aid_12            = 0x0C << (skl_first_aid << 2)
knows_first_aid_13            = 0x0D << (skl_first_aid << 2)
knows_first_aid_14            = 0x0E << (skl_first_aid << 2)
knows_first_aid_15            = 0x0F << (skl_first_aid << 2)
knows_surgery_1               = 0x01 << (skl_surgery << 2)
knows_surgery_2               = 0x02 << (skl_surgery << 2)
knows_surgery_3               = 0x03 << (skl_surgery << 2)
knows_surgery_4               = 0x04 << (skl_surgery << 2)
knows_surgery_5               = 0x05 << (skl_surgery << 2)
knows_surgery_6               = 0x06 << (skl_surgery << 2)
knows_surgery_7               = 0x07 << (skl_surgery << 2)
knows_surgery_8               = 0x08 << (skl_surgery << 2)
knows_surgery_9               = 0x09 << (skl_surgery << 2)
knows_surgery_10              = 0x0A << (skl_surgery << 2)
knows_surgery_11              = 0x0B << (skl_surgery << 2)
knows_surgery_12              = 0x0C << (skl_surgery << 2)
knows_surgery_13              = 0x0D << (skl_surgery << 2)
knows_surgery_14              = 0x0E << (skl_surgery << 2)
knows_surgery_15              = 0x0F << (skl_surgery << 2)
knows_wound_treatment_1       = 0x01 << (skl_wound_treatment << 2)
knows_wound_treatment_2       = 0x02 << (skl_wound_treatment << 2)
knows_wound_treatment_3       = 0x03 << (skl_wound_treatment << 2)
knows_wound_treatment_4       = 0x04 << (skl_wound_treatment << 2)
knows_wound_treatment_5       = 0x05 << (skl_wound_treatment << 2)
knows_wound_treatment_6       = 0x06 << (skl_wound_treatment << 2)
knows_wound_treatment_7       = 0x07 << (skl_wound_treatment << 2)
knows_wound_treatment_8       = 0x08 << (skl_wound_treatment << 2)
knows_wound_treatment_9       = 0x09 << (skl_wound_treatment << 2)
knows_wound_treatment_10      = 0x0A << (skl_wound_treatment << 2)
knows_wound_treatment_11      = 0x0B << (skl_wound_treatment << 2)
knows_wound_treatment_12      = 0x0C << (skl_wound_treatment << 2)
knows_wound_treatment_13      = 0x0D << (skl_wound_treatment << 2)
knows_wound_treatment_14      = 0x0E << (skl_wound_treatment << 2)
knows_wound_treatment_15      = 0x0F << (skl_wound_treatment << 2)
knows_inventory_management_1  = 0x01 << (skl_inventory_management << 2)
knows_inventory_management_2  = 0x02 << (skl_inventory_management << 2)
knows_inventory_management_3  = 0x03 << (skl_inventory_management << 2)
knows_inventory_management_4  = 0x04 << (skl_inventory_management << 2)
knows_inventory_management_5  = 0x05 << (skl_inventory_management << 2)
knows_inventory_management_6  = 0x06 << (skl_inventory_management << 2)
knows_inventory_management_7  = 0x07 << (skl_inventory_management << 2)
knows_inventory_management_8  = 0x08 << (skl_inventory_management << 2)
knows_inventory_management_9  = 0x09 << (skl_inventory_management << 2)
knows_inventory_management_10 = 0x0A << (skl_inventory_management << 2)
knows_inventory_management_11 = 0x0B << (skl_inventory_management << 2)
knows_inventory_management_12 = 0x0C << (skl_inventory_management << 2)
knows_inventory_management_13 = 0x0D << (skl_inventory_management << 2)
knows_inventory_management_14 = 0x0E << (skl_inventory_management << 2)
knows_inventory_management_15 = 0x0F << (skl_inventory_management << 2)
knows_spotting_1              = 0x01 << (skl_spotting << 2)
knows_spotting_2              = 0x02 << (skl_spotting << 2)
knows_spotting_3              = 0x03 << (skl_spotting << 2)
knows_spotting_4              = 0x04 << (skl_spotting << 2)
knows_spotting_5              = 0x05 << (skl_spotting << 2)
knows_spotting_6              = 0x06 << (skl_spotting << 2)
knows_spotting_7              = 0x07 << (skl_spotting << 2)
knows_spotting_8              = 0x08 << (skl_spotting << 2)
knows_spotting_9              = 0x09 << (skl_spotting << 2)
knows_spotting_10             = 0x0A << (skl_spotting << 2)
knows_spotting_11             = 0x0B << (skl_spotting << 2)
knows_spotting_12             = 0x0C << (skl_spotting << 2)
knows_spotting_13             = 0x0D << (skl_spotting << 2)
knows_spotting_14             = 0x0E << (skl_spotting << 2)
knows_spotting_15             = 0x0F << (skl_spotting << 2)
knows_pathfinding_1           = 0x01 << (skl_pathfinding << 2)
knows_pathfinding_2           = 0x02 << (skl_pathfinding << 2)
knows_pathfinding_3           = 0x03 << (skl_pathfinding << 2)
knows_pathfinding_4           = 0x04 << (skl_pathfinding << 2)
knows_pathfinding_5           = 0x05 << (skl_pathfinding << 2)
knows_pathfinding_6           = 0x06 << (skl_pathfinding << 2)
knows_pathfinding_7           = 0x07 << (skl_pathfinding << 2)
knows_pathfinding_8           = 0x08 << (skl_pathfinding << 2)
knows_pathfinding_9           = 0x09 << (skl_pathfinding << 2)
knows_pathfinding_10          = 0x0A << (skl_pathfinding << 2)
knows_pathfinding_11          = 0x0B << (skl_pathfinding << 2)
knows_pathfinding_12          = 0x0C << (skl_pathfinding << 2)
knows_pathfinding_13          = 0x0D << (skl_pathfinding << 2)
knows_pathfinding_14          = 0x0E << (skl_pathfinding << 2)
knows_pathfinding_15          = 0x0F << (skl_pathfinding << 2)
knows_tactics_1               = 0x01 << (skl_tactics << 2)
knows_tactics_2               = 0x02 << (skl_tactics << 2)
knows_tactics_3               = 0x03 << (skl_tactics << 2)
knows_tactics_4               = 0x04 << (skl_tactics << 2)
knows_tactics_5               = 0x05 << (skl_tactics << 2)
knows_tactics_6               = 0x06 << (skl_tactics << 2)
knows_tactics_7               = 0x07 << (skl_tactics << 2)
knows_tactics_8               = 0x08 << (skl_tactics << 2)
knows_tactics_9               = 0x09 << (skl_tactics << 2)
knows_tactics_10              = 0x0A << (skl_tactics << 2)
knows_tactics_11              = 0x0B << (skl_tactics << 2)
knows_tactics_12              = 0x0C << (skl_tactics << 2)
knows_tactics_13              = 0x0D << (skl_tactics << 2)
knows_tactics_14              = 0x0E << (skl_tactics << 2)
knows_tactics_15              = 0x0F << (skl_tactics << 2)
knows_tracking_1              = 0x01 << (skl_tracking << 2)
knows_tracking_2              = 0x02 << (skl_tracking << 2)
knows_tracking_3              = 0x03 << (skl_tracking << 2)
knows_tracking_4              = 0x04 << (skl_tracking << 2)
knows_tracking_5              = 0x05 << (skl_tracking << 2)
knows_tracking_6              = 0x06 << (skl_tracking << 2)
knows_tracking_7              = 0x07 << (skl_tracking << 2)
knows_tracking_8              = 0x08 << (skl_tracking << 2)
knows_tracking_9              = 0x09 << (skl_tracking << 2)
knows_tracking_10             = 0x0A << (skl_tracking << 2)
knows_tracking_11             = 0x0B << (skl_tracking << 2)
knows_tracking_12             = 0x0C << (skl_tracking << 2)
knows_tracking_13             = 0x0D << (skl_tracking << 2)
knows_tracking_14             = 0x0E << (skl_tracking << 2)
knows_tracking_15             = 0x0F << (skl_tracking << 2)
knows_trainer_1               = 0x01 << (skl_trainer << 2)
knows_trainer_2               = 0x02 << (skl_trainer << 2)
knows_trainer_3               = 0x03 << (skl_trainer << 2)
knows_trainer_4               = 0x04 << (skl_trainer << 2)
knows_trainer_5               = 0x05 << (skl_trainer << 2)
knows_trainer_6               = 0x06 << (skl_trainer << 2)
knows_trainer_7               = 0x07 << (skl_trainer << 2)
knows_trainer_8               = 0x08 << (skl_trainer << 2)
knows_trainer_9               = 0x09 << (skl_trainer << 2)
knows_trainer_10              = 0x0A << (skl_trainer << 2)
knows_trainer_11              = 0x0B << (skl_trainer << 2)
knows_trainer_12              = 0x0C << (skl_trainer << 2)
knows_trainer_13              = 0x0D << (skl_trainer << 2)
knows_trainer_14              = 0x0E << (skl_trainer << 2)
knows_trainer_15              = 0x0F << (skl_trainer << 2)
knows_reserved_5_1            = 0x01 << (skl_reserved_5 << 2)
knows_reserved_5_2            = 0x02 << (skl_reserved_5 << 2)
knows_reserved_5_3            = 0x03 << (skl_reserved_5 << 2)
knows_reserved_5_4            = 0x04 << (skl_reserved_5 << 2)
knows_reserved_5_5            = 0x05 << (skl_reserved_5 << 2)
knows_reserved_5_6            = 0x06 << (skl_reserved_5 << 2)
knows_reserved_5_7            = 0x07 << (skl_reserved_5 << 2)
knows_reserved_5_8            = 0x08 << (skl_reserved_5 << 2)
knows_reserved_5_9            = 0x09 << (skl_reserved_5 << 2)
knows_reserved_5_10           = 0x0A << (skl_reserved_5 << 2)
knows_reserved_5_11           = 0x0B << (skl_reserved_5 << 2)
knows_reserved_5_12           = 0x0C << (skl_reserved_5 << 2)
knows_reserved_5_13           = 0x0D << (skl_reserved_5 << 2)
knows_reserved_5_14           = 0x0E << (skl_reserved_5 << 2)
knows_reserved_5_15           = 0x0F << (skl_reserved_5 << 2)
knows_reserved_6_1            = 0x01 << (skl_reserved_6 << 2)
knows_reserved_6_2            = 0x02 << (skl_reserved_6 << 2)
knows_reserved_6_3            = 0x03 << (skl_reserved_6 << 2)
knows_reserved_6_4            = 0x04 << (skl_reserved_6 << 2)
knows_reserved_6_5            = 0x05 << (skl_reserved_6 << 2)
knows_reserved_6_6            = 0x06 << (skl_reserved_6 << 2)
knows_reserved_6_7            = 0x07 << (skl_reserved_6 << 2)
knows_reserved_6_8            = 0x08 << (skl_reserved_6 << 2)
knows_reserved_6_9            = 0x09 << (skl_reserved_6 << 2)
knows_reserved_6_10           = 0x0A << (skl_reserved_6 << 2)
knows_reserved_6_11           = 0x0B << (skl_reserved_6 << 2)
knows_reserved_6_12           = 0x0C << (skl_reserved_6 << 2)
knows_reserved_6_13           = 0x0D << (skl_reserved_6 << 2)
knows_reserved_6_14           = 0x0E << (skl_reserved_6 << 2)
knows_reserved_6_15           = 0x0F << (skl_reserved_6 << 2)
knows_reserved_7_1            = 0x01 << (skl_reserved_7 << 2)
knows_reserved_7_2            = 0x02 << (skl_reserved_7 << 2)
knows_reserved_7_3            = 0x03 << (skl_reserved_7 << 2)
knows_reserved_7_4            = 0x04 << (skl_reserved_7 << 2)
knows_reserved_7_5            = 0x05 << (skl_reserved_7 << 2)
knows_reserved_7_6            = 0x06 << (skl_reserved_7 << 2)
knows_reserved_7_7            = 0x07 << (skl_reserved_7 << 2)
knows_reserved_7_8            = 0x08 << (skl_reserved_7 << 2)
knows_reserved_7_9            = 0x09 << (skl_reserved_7 << 2)
knows_reserved_7_10           = 0x0A << (skl_reserved_7 << 2)
knows_reserved_7_11           = 0x0B << (skl_reserved_7 << 2)
knows_reserved_7_12           = 0x0C << (skl_reserved_7 << 2)
knows_reserved_7_13           = 0x0D << (skl_reserved_7 << 2)
knows_reserved_7_14           = 0x0E << (skl_reserved_7 << 2)
knows_reserved_7_15           = 0x0F << (skl_reserved_7 << 2)
knows_reserved_8_1            = 0x01 << (skl_reserved_8 << 2)
knows_reserved_8_2            = 0x02 << (skl_reserved_8 << 2)
knows_reserved_8_3            = 0x03 << (skl_reserved_8 << 2)
knows_reserved_8_4            = 0x04 << (skl_reserved_8 << 2)
knows_reserved_8_5            = 0x05 << (skl_reserved_8 << 2)
knows_reserved_8_6            = 0x06 << (skl_reserved_8 << 2)
knows_reserved_8_7            = 0x07 << (skl_reserved_8 << 2)
knows_reserved_8_8            = 0x08 << (skl_reserved_8 << 2)
knows_reserved_8_9            = 0x09 << (skl_reserved_8 << 2)
knows_reserved_8_10           = 0x0A << (skl_reserved_8 << 2)
knows_reserved_8_11           = 0x0B << (skl_reserved_8 << 2)
knows_reserved_8_12           = 0x0C << (skl_reserved_8 << 2)
knows_reserved_8_13           = 0x0D << (skl_reserved_8 << 2)
knows_reserved_8_14           = 0x0E << (skl_reserved_8 << 2)
knows_reserved_8_15           = 0x0F << (skl_reserved_8 << 2)
knows_looting_1               = 0x01 << (skl_looting << 2)
knows_looting_2               = 0x02 << (skl_looting << 2)
knows_looting_3               = 0x03 << (skl_looting << 2)
knows_looting_4               = 0x04 << (skl_looting << 2)
knows_looting_5               = 0x05 << (skl_looting << 2)
knows_looting_6               = 0x06 << (skl_looting << 2)
knows_looting_7               = 0x07 << (skl_looting << 2)
knows_looting_8               = 0x08 << (skl_looting << 2)
knows_looting_9               = 0x09 << (skl_looting << 2)
knows_looting_10              = 0x0A << (skl_looting << 2)
knows_looting_11              = 0x0B << (skl_looting << 2)
knows_looting_12              = 0x0C << (skl_looting << 2)
knows_looting_13              = 0x0D << (skl_looting << 2)
knows_looting_14              = 0x0E << (skl_looting << 2)
knows_looting_15              = 0x0F << (skl_looting << 2)
knows_horse_archery_1         = 0x01 << (skl_horse_archery << 2)
knows_horse_archery_2         = 0x02 << (skl_horse_archery << 2)
knows_horse_archery_3         = 0x03 << (skl_horse_archery << 2)
knows_horse_archery_4         = 0x04 << (skl_horse_archery << 2)
knows_horse_archery_5         = 0x05 << (skl_horse_archery << 2)
knows_horse_archery_6         = 0x06 << (skl_horse_archery << 2)
knows_horse_archery_7         = 0x07 << (skl_horse_archery << 2)
knows_horse_archery_8         = 0x08 << (skl_horse_archery << 2)
knows_horse_archery_9         = 0x09 << (skl_horse_archery << 2)
knows_horse_archery_10        = 0x0A << (skl_horse_archery << 2)
knows_horse_archery_11        = 0x0B << (skl_horse_archery << 2)
knows_horse_archery_12        = 0x0C << (skl_horse_archery << 2)
knows_horse_archery_13        = 0x0D << (skl_horse_archery << 2)
knows_horse_archery_14        = 0x0E << (skl_horse_archery << 2)
knows_horse_archery_15        = 0x0F << (skl_horse_archery << 2)
knows_riding_1                = 0x01 << (skl_riding << 2)
knows_riding_2                = 0x02 << (skl_riding << 2)
knows_riding_3                = 0x03 << (skl_riding << 2)
knows_riding_4                = 0x04 << (skl_riding << 2)
knows_riding_5                = 0x05 << (skl_riding << 2)
knows_riding_6                = 0x06 << (skl_riding << 2)
knows_riding_7                = 0x07 << (skl_riding << 2)
knows_riding_8                = 0x08 << (skl_riding << 2)
knows_riding_9                = 0x09 << (skl_riding << 2)
knows_riding_10               = 0x0A << (skl_riding << 2)
knows_riding_11               = 0x0B << (skl_riding << 2)
knows_riding_12               = 0x0C << (skl_riding << 2)
knows_riding_13               = 0x0D << (skl_riding << 2)
knows_riding_14               = 0x0E << (skl_riding << 2)
knows_riding_15               = 0x0F << (skl_riding << 2)
knows_athletics_1             = 0x01 << (skl_athletics << 2)
knows_athletics_2             = 0x02 << (skl_athletics << 2)
knows_athletics_3             = 0x03 << (skl_athletics << 2)
knows_athletics_4             = 0x04 << (skl_athletics << 2)
knows_athletics_5             = 0x05 << (skl_athletics << 2)
knows_athletics_6             = 0x06 << (skl_athletics << 2)
knows_athletics_7             = 0x07 << (skl_athletics << 2)
knows_athletics_8             = 0x08 << (skl_athletics << 2)
knows_athletics_9             = 0x09 << (skl_athletics << 2)
knows_athletics_10            = 0x0A << (skl_athletics << 2)
knows_athletics_11            = 0x0B << (skl_athletics << 2)
knows_athletics_12            = 0x0C << (skl_athletics << 2)
knows_athletics_13            = 0x0D << (skl_athletics << 2)
knows_athletics_14            = 0x0E << (skl_athletics << 2)
knows_athletics_15            = 0x0F << (skl_athletics << 2)
knows_shield_1                = 0x01 << (skl_shield << 2)
knows_shield_2                = 0x02 << (skl_shield << 2)
knows_shield_3                = 0x03 << (skl_shield << 2)
knows_shield_4                = 0x04 << (skl_shield << 2)
knows_shield_5                = 0x05 << (skl_shield << 2)
knows_shield_6                = 0x06 << (skl_shield << 2)
knows_shield_7                = 0x07 << (skl_shield << 2)
knows_shield_8                = 0x08 << (skl_shield << 2)
knows_shield_9                = 0x09 << (skl_shield << 2)
knows_shield_10               = 0x0A << (skl_shield << 2)
knows_shield_11               = 0x0B << (skl_shield << 2)
knows_shield_12               = 0x0C << (skl_shield << 2)
knows_shield_13               = 0x0D << (skl_shield << 2)
knows_shield_14               = 0x0E << (skl_shield << 2)
knows_shield_15               = 0x0F << (skl_shield << 2)
knows_weapon_master_1         = 0x01 << (skl_weapon_master << 2)
knows_weapon_master_2         = 0x02 << (skl_weapon_master << 2)
knows_weapon_master_3         = 0x03 << (skl_weapon_master << 2)
knows_weapon_master_4         = 0x04 << (skl_weapon_master << 2)
knows_weapon_master_5         = 0x05 << (skl_weapon_master << 2)
knows_weapon_master_6         = 0x06 << (skl_weapon_master << 2)
knows_weapon_master_7         = 0x07 << (skl_weapon_master << 2)
knows_weapon_master_8         = 0x08 << (skl_weapon_master << 2)
knows_weapon_master_9         = 0x09 << (skl_weapon_master << 2)
knows_weapon_master_10        = 0x0A << (skl_weapon_master << 2)
knows_weapon_master_11        = 0x0B << (skl_weapon_master << 2)
knows_weapon_master_12        = 0x0C << (skl_weapon_master << 2)
knows_weapon_master_13        = 0x0D << (skl_weapon_master << 2)
knows_weapon_master_14        = 0x0E << (skl_weapon_master << 2)
knows_weapon_master_15        = 0x0F << (skl_weapon_master << 2)
knows_reserved_9_1            = 0x01 << (skl_reserved_9 << 2)
knows_reserved_9_2            = 0x02 << (skl_reserved_9 << 2)
knows_reserved_9_3            = 0x03 << (skl_reserved_9 << 2)
knows_reserved_9_4            = 0x04 << (skl_reserved_9 << 2)
knows_reserved_9_5            = 0x05 << (skl_reserved_9 << 2)
knows_reserved_9_6            = 0x06 << (skl_reserved_9 << 2)
knows_reserved_9_7            = 0x07 << (skl_reserved_9 << 2)
knows_reserved_9_8            = 0x08 << (skl_reserved_9 << 2)
knows_reserved_9_9            = 0x09 << (skl_reserved_9 << 2)
knows_reserved_9_10           = 0x0A << (skl_reserved_9 << 2)
knows_reserved_9_11           = 0x0B << (skl_reserved_9 << 2)
knows_reserved_9_12           = 0x0C << (skl_reserved_9 << 2)
knows_reserved_9_13           = 0x0D << (skl_reserved_9 << 2)
knows_reserved_9_14           = 0x0E << (skl_reserved_9 << 2)
knows_reserved_9_15           = 0x0F << (skl_reserved_9 << 2)
knows_reserved_10_1           = 0x01 << (skl_reserved_10 << 2)
knows_reserved_10_2           = 0x02 << (skl_reserved_10 << 2)
knows_reserved_10_3           = 0x03 << (skl_reserved_10 << 2)
knows_reserved_10_4           = 0x04 << (skl_reserved_10 << 2)
knows_reserved_10_5           = 0x05 << (skl_reserved_10 << 2)
knows_reserved_10_6           = 0x06 << (skl_reserved_10 << 2)
knows_reserved_10_7           = 0x07 << (skl_reserved_10 << 2)
knows_reserved_10_8           = 0x08 << (skl_reserved_10 << 2)
knows_reserved_10_9           = 0x09 << (skl_reserved_10 << 2)
knows_reserved_10_10          = 0x0A << (skl_reserved_10 << 2)
knows_reserved_10_11          = 0x0B << (skl_reserved_10 << 2)
knows_reserved_10_12          = 0x0C << (skl_reserved_10 << 2)
knows_reserved_10_13          = 0x0D << (skl_reserved_10 << 2)
knows_reserved_10_14          = 0x0E << (skl_reserved_10 << 2)
knows_reserved_10_15          = 0x0F << (skl_reserved_10 << 2)
knows_reserved_11_1           = 0x01 << (skl_reserved_11 << 2)
knows_reserved_11_2           = 0x02 << (skl_reserved_11 << 2)
knows_reserved_11_3           = 0x03 << (skl_reserved_11 << 2)
knows_reserved_11_4           = 0x04 << (skl_reserved_11 << 2)
knows_reserved_11_5           = 0x05 << (skl_reserved_11 << 2)
knows_reserved_11_6           = 0x06 << (skl_reserved_11 << 2)
knows_reserved_11_7           = 0x07 << (skl_reserved_11 << 2)
knows_reserved_11_8           = 0x08 << (skl_reserved_11 << 2)
knows_reserved_11_9           = 0x09 << (skl_reserved_11 << 2)
knows_reserved_11_10          = 0x0A << (skl_reserved_11 << 2)
knows_reserved_11_11          = 0x0B << (skl_reserved_11 << 2)
knows_reserved_11_12          = 0x0C << (skl_reserved_11 << 2)
knows_reserved_11_13          = 0x0D << (skl_reserved_11 << 2)
knows_reserved_11_14          = 0x0E << (skl_reserved_11 << 2)
knows_reserved_11_15          = 0x0F << (skl_reserved_11 << 2)
knows_reserved_12_1           = 0x01 << (skl_reserved_12 << 2)
knows_reserved_12_2           = 0x02 << (skl_reserved_12 << 2)
knows_reserved_12_3           = 0x03 << (skl_reserved_12 << 2)
knows_reserved_12_4           = 0x04 << (skl_reserved_12 << 2)
knows_reserved_12_5           = 0x05 << (skl_reserved_12 << 2)
knows_reserved_12_6           = 0x06 << (skl_reserved_12 << 2)
knows_reserved_12_7           = 0x07 << (skl_reserved_12 << 2)
knows_reserved_12_8           = 0x08 << (skl_reserved_12 << 2)
knows_reserved_12_9           = 0x09 << (skl_reserved_12 << 2)
knows_reserved_12_10          = 0x0A << (skl_reserved_12 << 2)
knows_reserved_12_11          = 0x0B << (skl_reserved_12 << 2)
knows_reserved_12_12          = 0x0C << (skl_reserved_12 << 2)
knows_reserved_12_13          = 0x0D << (skl_reserved_12 << 2)
knows_reserved_12_14          = 0x0E << (skl_reserved_12 << 2)
knows_reserved_12_15          = 0x0F << (skl_reserved_12 << 2)
knows_reserved_13_1           = 0x01 << (skl_reserved_13 << 2)
knows_reserved_13_2           = 0x02 << (skl_reserved_13 << 2)
knows_reserved_13_3           = 0x03 << (skl_reserved_13 << 2)
knows_reserved_13_4           = 0x04 << (skl_reserved_13 << 2)
knows_reserved_13_5           = 0x05 << (skl_reserved_13 << 2)
knows_reserved_13_6           = 0x06 << (skl_reserved_13 << 2)
knows_reserved_13_7           = 0x07 << (skl_reserved_13 << 2)
knows_reserved_13_8           = 0x08 << (skl_reserved_13 << 2)
knows_reserved_13_9           = 0x09 << (skl_reserved_13 << 2)
knows_reserved_13_10          = 0x0A << (skl_reserved_13 << 2)
knows_reserved_13_11          = 0x0B << (skl_reserved_13 << 2)
knows_reserved_13_12          = 0x0C << (skl_reserved_13 << 2)
knows_reserved_13_13          = 0x0D << (skl_reserved_13 << 2)
knows_reserved_13_14          = 0x0E << (skl_reserved_13 << 2)
knows_reserved_13_15          = 0x0F << (skl_reserved_13 << 2)
knows_power_draw_1            = 0x01 << (skl_power_draw << 2)
knows_power_draw_2            = 0x02 << (skl_power_draw << 2)
knows_power_draw_3            = 0x03 << (skl_power_draw << 2)
knows_power_draw_4            = 0x04 << (skl_power_draw << 2)
knows_power_draw_5            = 0x05 << (skl_power_draw << 2)
knows_power_draw_6            = 0x06 << (skl_power_draw << 2)
knows_power_draw_7            = 0x07 << (skl_power_draw << 2)
knows_power_draw_8            = 0x08 << (skl_power_draw << 2)
knows_power_draw_9            = 0x09 << (skl_power_draw << 2)
knows_power_draw_10           = 0x0A << (skl_power_draw << 2)
knows_power_draw_11           = 0x0B << (skl_power_draw << 2)
knows_power_draw_12           = 0x0C << (skl_power_draw << 2)
knows_power_draw_13           = 0x0D << (skl_power_draw << 2)
knows_power_draw_14           = 0x0E << (skl_power_draw << 2)
knows_power_draw_15           = 0x0F << (skl_power_draw << 2)
knows_power_throw_1           = 0x01 << (skl_power_throw << 2)
knows_power_throw_2           = 0x02 << (skl_power_throw << 2)
knows_power_throw_3           = 0x03 << (skl_power_throw << 2)
knows_power_throw_4           = 0x04 << (skl_power_throw << 2)
knows_power_throw_5           = 0x05 << (skl_power_throw << 2)
knows_power_throw_6           = 0x06 << (skl_power_throw << 2)
knows_power_throw_7           = 0x07 << (skl_power_throw << 2)
knows_power_throw_8           = 0x08 << (skl_power_throw << 2)
knows_power_throw_9           = 0x09 << (skl_power_throw << 2)
knows_power_throw_10          = 0x0A << (skl_power_throw << 2)
knows_power_throw_11          = 0x0B << (skl_power_throw << 2)
knows_power_throw_12          = 0x0C << (skl_power_throw << 2)
knows_power_throw_13          = 0x0D << (skl_power_throw << 2)
knows_power_throw_14          = 0x0E << (skl_power_throw << 2)
knows_power_throw_15          = 0x0F << (skl_power_throw << 2)
knows_power_strike_1          = 0x01 << (skl_power_strike << 2)
knows_power_strike_2          = 0x02 << (skl_power_strike << 2)
knows_power_strike_3          = 0x03 << (skl_power_strike << 2)
knows_power_strike_4          = 0x04 << (skl_power_strike << 2)
knows_power_strike_5          = 0x05 << (skl_power_strike << 2)
knows_power_strike_6          = 0x06 << (skl_power_strike << 2)
knows_power_strike_7          = 0x07 << (skl_power_strike << 2)
knows_power_strike_8          = 0x08 << (skl_power_strike << 2)
knows_power_strike_9          = 0x09 << (skl_power_strike << 2)
knows_power_strike_10         = 0x0A << (skl_power_strike << 2)
knows_power_strike_11         = 0x0B << (skl_power_strike << 2)
knows_power_strike_12         = 0x0C << (skl_power_strike << 2)
knows_power_strike_13         = 0x0D << (skl_power_strike << 2)
knows_power_strike_14         = 0x0E << (skl_power_strike << 2)
knows_power_strike_15         = 0x0F << (skl_power_strike << 2)
knows_ironflesh_1             = 0x01 << (skl_ironflesh << 2)
knows_ironflesh_2             = 0x02 << (skl_ironflesh << 2)
knows_ironflesh_3             = 0x03 << (skl_ironflesh << 2)
knows_ironflesh_4             = 0x04 << (skl_ironflesh << 2)
knows_ironflesh_5             = 0x05 << (skl_ironflesh << 2)
knows_ironflesh_6             = 0x06 << (skl_ironflesh << 2)
knows_ironflesh_7             = 0x07 << (skl_ironflesh << 2)
knows_ironflesh_8             = 0x08 << (skl_ironflesh << 2)
knows_ironflesh_9             = 0x09 << (skl_ironflesh << 2)
knows_ironflesh_10            = 0x0A << (skl_ironflesh << 2)
knows_ironflesh_11            = 0x0B << (skl_ironflesh << 2)
knows_ironflesh_12            = 0x0C << (skl_ironflesh << 2)
knows_ironflesh_13            = 0x0D << (skl_ironflesh << 2)
knows_ironflesh_14            = 0x0E << (skl_ironflesh << 2)
knows_ironflesh_15            = 0x0F << (skl_ironflesh << 2)
knows_reserved_14_1           = 0x01 << (skl_reserved_14 << 2)
knows_reserved_14_2           = 0x02 << (skl_reserved_14 << 2)
knows_reserved_14_3           = 0x03 << (skl_reserved_14 << 2)
knows_reserved_14_4           = 0x04 << (skl_reserved_14 << 2)
knows_reserved_14_5           = 0x05 << (skl_reserved_14 << 2)
knows_reserved_14_6           = 0x06 << (skl_reserved_14 << 2)
knows_reserved_14_7           = 0x07 << (skl_reserved_14 << 2)
knows_reserved_14_8           = 0x08 << (skl_reserved_14 << 2)
knows_reserved_14_9           = 0x09 << (skl_reserved_14 << 2)
knows_reserved_14_10          = 0x0A << (skl_reserved_14 << 2)
knows_reserved_14_11          = 0x0B << (skl_reserved_14 << 2)
knows_reserved_14_12          = 0x0C << (skl_reserved_14 << 2)
knows_reserved_14_13          = 0x0D << (skl_reserved_14 << 2)
knows_reserved_14_14          = 0x0E << (skl_reserved_14 << 2)
knows_reserved_14_15          = 0x0F << (skl_reserved_14 << 2)
knows_reserved_15_1           = 0x01 << (skl_reserved_15 << 2)
knows_reserved_15_2           = 0x02 << (skl_reserved_15 << 2)
knows_reserved_15_3           = 0x03 << (skl_reserved_15 << 2)
knows_reserved_15_4           = 0x04 << (skl_reserved_15 << 2)
knows_reserved_15_5           = 0x05 << (skl_reserved_15 << 2)
knows_reserved_15_6           = 0x06 << (skl_reserved_15 << 2)
knows_reserved_15_7           = 0x07 << (skl_reserved_15 << 2)
knows_reserved_15_8           = 0x08 << (skl_reserved_15 << 2)
knows_reserved_15_9           = 0x09 << (skl_reserved_15 << 2)
knows_reserved_15_10          = 0x0A << (skl_reserved_15 << 2)
knows_reserved_15_11          = 0x0B << (skl_reserved_15 << 2)
knows_reserved_15_12          = 0x0C << (skl_reserved_15 << 2)
knows_reserved_15_13          = 0x0D << (skl_reserved_15 << 2)
knows_reserved_15_14          = 0x0E << (skl_reserved_15 << 2)
knows_reserved_15_15          = 0x0F << (skl_reserved_15 << 2)
knows_reserved_16_1           = 0x01 << (skl_reserved_16 << 2)
knows_reserved_16_2           = 0x02 << (skl_reserved_16 << 2)
knows_reserved_16_3           = 0x03 << (skl_reserved_16 << 2)
knows_reserved_16_4           = 0x04 << (skl_reserved_16 << 2)
knows_reserved_16_5           = 0x05 << (skl_reserved_16 << 2)
knows_reserved_16_6           = 0x06 << (skl_reserved_16 << 2)
knows_reserved_16_7           = 0x07 << (skl_reserved_16 << 2)
knows_reserved_16_8           = 0x08 << (skl_reserved_16 << 2)
knows_reserved_16_9           = 0x09 << (skl_reserved_16 << 2)
knows_reserved_16_10          = 0x0A << (skl_reserved_16 << 2)
knows_reserved_16_11          = 0x0B << (skl_reserved_16 << 2)
knows_reserved_16_12          = 0x0C << (skl_reserved_16 << 2)
knows_reserved_16_13          = 0x0D << (skl_reserved_16 << 2)
knows_reserved_16_14          = 0x0E << (skl_reserved_16 << 2)
knows_reserved_16_15          = 0x0F << (skl_reserved_16 << 2)
knows_reserved_17_1           = 0x01 << (skl_reserved_17 << 2)
knows_reserved_17_2           = 0x02 << (skl_reserved_17 << 2)
knows_reserved_17_3           = 0x03 << (skl_reserved_17 << 2)
knows_reserved_17_4           = 0x04 << (skl_reserved_17 << 2)
knows_reserved_17_5           = 0x05 << (skl_reserved_17 << 2)
knows_reserved_17_6           = 0x06 << (skl_reserved_17 << 2)
knows_reserved_17_7           = 0x07 << (skl_reserved_17 << 2)
knows_reserved_17_8           = 0x08 << (skl_reserved_17 << 2)
knows_reserved_17_9           = 0x09 << (skl_reserved_17 << 2)
knows_reserved_17_10          = 0x0A << (skl_reserved_17 << 2)
knows_reserved_17_11          = 0x0B << (skl_reserved_17 << 2)
knows_reserved_17_12          = 0x0C << (skl_reserved_17 << 2)
knows_reserved_17_13          = 0x0D << (skl_reserved_17 << 2)
knows_reserved_17_14          = 0x0E << (skl_reserved_17 << 2)
knows_reserved_17_15          = 0x0F << (skl_reserved_17 << 2)
knows_reserved_18_1           = 0x01 << (skl_reserved_18 << 2)
knows_reserved_18_2           = 0x02 << (skl_reserved_18 << 2)
knows_reserved_18_3           = 0x03 << (skl_reserved_18 << 2)
knows_reserved_18_4           = 0x04 << (skl_reserved_18 << 2)
knows_reserved_18_5           = 0x05 << (skl_reserved_18 << 2)
knows_reserved_18_6           = 0x06 << (skl_reserved_18 << 2)
knows_reserved_18_7           = 0x07 << (skl_reserved_18 << 2)
knows_reserved_18_8           = 0x08 << (skl_reserved_18 << 2)
knows_reserved_18_9           = 0x09 << (skl_reserved_18 << 2)
knows_reserved_18_10          = 0x0A << (skl_reserved_18 << 2)
knows_reserved_18_11          = 0x0B << (skl_reserved_18 << 2)
knows_reserved_18_12          = 0x0C << (skl_reserved_18 << 2)
knows_reserved_18_13          = 0x0D << (skl_reserved_18 << 2)
knows_reserved_18_14          = 0x0E << (skl_reserved_18 << 2)
knows_reserved_18_15          = 0x0F << (skl_reserved_18 << 2)
