Please create the function module {{P}}AUC_PREMIUM in function group {{P}}FG_AUCT. The function group is in package $TMP. The function module must use exactly the same interface as the sample module {{P}}AUC_SAMPLE: the same parameter names, kinds, types, and exceptions. The parameters are iv_lot_type, iv_hammer, iv_channel, ev_skip, and cv_fee. The exception is INVALID_HAMMER. Do not change {{P}}AUC_SAMPLE. The module calculates a buyer's premium for each sold lot. The auction program calls one premium module for each sold lot. If iv_hammer is less than 0, raise the exception INVALID_HAMMER and stop. Set ev_skip to false, except for lot type C. For lot type C (charity), set ev_skip to true. Leave cv_fee unchanged and stop. For every other lot type, calculate the band premium from iv_hammer. The part of iv_hammer up to 1,000.00 has a 20% rate. The part above 1,000.00 up to 10,000.00 has a 12% rate. The part above 10,000.00 has a 6% rate. For channel O (online), the premium is 90% of the band premium. For every other channel, the premium is the band premium. Round the premium half up to 2 decimals. The minimum premium is 5.00. The maximum premium is 5,000.00. Set cv_fee to the premium after rounding and applying the minimum and maximum. The code must run on a 7.02 system. Do not use syntax that was introduced after release 7.02. Use Clean ABAP. The function module must be active and have no syntax error. The hidden tests must pass. Write ABAP Unit tests for the function module in a global test class.