From 61f392103db6b4a0ed746744ff5875657cd1c187 Mon Sep 17 00:00:00 2001 From: eximus Date: Tue, 12 Oct 2021 11:17:02 -0400 Subject: [PATCH] add position icons #21 @Cozy61 --- apps/python/F12020Leaderboard/constants.py | 174 +++++++++--------- apps/python/F12020Leaderboard/ui/1.png | Bin 0 -> 15952 bytes apps/python/F12020Leaderboard/ui/10.png | Bin 0 -> 16277 bytes apps/python/F12020Leaderboard/ui/10_green.png | Bin 0 -> 16334 bytes apps/python/F12020Leaderboard/ui/10_red.png | Bin 0 -> 16316 bytes apps/python/F12020Leaderboard/ui/11.png | Bin 0 -> 15990 bytes apps/python/F12020Leaderboard/ui/11_green.png | Bin 0 -> 16022 bytes apps/python/F12020Leaderboard/ui/11_red.png | Bin 0 -> 16017 bytes apps/python/F12020Leaderboard/ui/12.png | Bin 0 -> 16211 bytes apps/python/F12020Leaderboard/ui/12_green.png | Bin 0 -> 16262 bytes apps/python/F12020Leaderboard/ui/12_red.png | Bin 0 -> 16247 bytes apps/python/F12020Leaderboard/ui/13.png | Bin 0 -> 16204 bytes apps/python/F12020Leaderboard/ui/13_green.png | Bin 0 -> 16257 bytes apps/python/F12020Leaderboard/ui/13_red.png | Bin 0 -> 16241 bytes apps/python/F12020Leaderboard/ui/14.png | Bin 0 -> 16198 bytes apps/python/F12020Leaderboard/ui/14_green.png | Bin 0 -> 16245 bytes apps/python/F12020Leaderboard/ui/14_red.png | Bin 0 -> 16229 bytes apps/python/F12020Leaderboard/ui/15.png | Bin 0 -> 16115 bytes apps/python/F12020Leaderboard/ui/15_green.png | Bin 0 -> 16157 bytes apps/python/F12020Leaderboard/ui/15_red.png | Bin 0 -> 16143 bytes apps/python/F12020Leaderboard/ui/16.png | Bin 0 -> 16249 bytes apps/python/F12020Leaderboard/ui/16_green.png | Bin 0 -> 16305 bytes apps/python/F12020Leaderboard/ui/16_red.png | Bin 0 -> 16286 bytes apps/python/F12020Leaderboard/ui/17.png | Bin 0 -> 16200 bytes apps/python/F12020Leaderboard/ui/17_green.png | Bin 0 -> 16246 bytes apps/python/F12020Leaderboard/ui/17_red.png | Bin 0 -> 16232 bytes apps/python/F12020Leaderboard/ui/18.png | Bin 0 -> 16316 bytes apps/python/F12020Leaderboard/ui/18_green.png | Bin 0 -> 16377 bytes apps/python/F12020Leaderboard/ui/18_red.png | Bin 0 -> 16357 bytes apps/python/F12020Leaderboard/ui/19.png | Bin 0 -> 16249 bytes apps/python/F12020Leaderboard/ui/19_green.png | Bin 0 -> 16312 bytes apps/python/F12020Leaderboard/ui/19_red.png | Bin 0 -> 16291 bytes apps/python/F12020Leaderboard/ui/1_green.png | Bin 0 -> 15984 bytes apps/python/F12020Leaderboard/ui/1_red.png | Bin 0 -> 15975 bytes apps/python/F12020Leaderboard/ui/2.png | Bin 0 -> 16139 bytes apps/python/F12020Leaderboard/ui/20.png | Bin 0 -> 16419 bytes apps/python/F12020Leaderboard/ui/20_green.png | Bin 0 -> 16484 bytes apps/python/F12020Leaderboard/ui/20_red.png | Bin 0 -> 2593 bytes apps/python/F12020Leaderboard/ui/21.png | Bin 0 -> 4030 bytes apps/python/F12020Leaderboard/ui/21_green.png | Bin 0 -> 4113 bytes apps/python/F12020Leaderboard/ui/21_red.png | Bin 0 -> 4097 bytes apps/python/F12020Leaderboard/ui/22.png | Bin 0 -> 3940 bytes apps/python/F12020Leaderboard/ui/22_green.png | Bin 0 -> 4034 bytes apps/python/F12020Leaderboard/ui/22_red.png | Bin 0 -> 4018 bytes apps/python/F12020Leaderboard/ui/23.png | Bin 0 -> 4176 bytes apps/python/F12020Leaderboard/ui/23_green.png | Bin 0 -> 4365 bytes apps/python/F12020Leaderboard/ui/23_red.png | Bin 0 -> 4361 bytes apps/python/F12020Leaderboard/ui/24.png | Bin 0 -> 4155 bytes apps/python/F12020Leaderboard/ui/24_green.png | Bin 0 -> 4381 bytes apps/python/F12020Leaderboard/ui/24_red.png | Bin 0 -> 4355 bytes apps/python/F12020Leaderboard/ui/25.png | Bin 0 -> 971 bytes apps/python/F12020Leaderboard/ui/25_green.png | Bin 0 -> 1050 bytes apps/python/F12020Leaderboard/ui/25_red.png | Bin 0 -> 1031 bytes apps/python/F12020Leaderboard/ui/26.png | Bin 0 -> 1160 bytes apps/python/F12020Leaderboard/ui/26_green.png | Bin 0 -> 1247 bytes apps/python/F12020Leaderboard/ui/26_red.png | Bin 0 -> 1233 bytes apps/python/F12020Leaderboard/ui/27.png | Bin 0 -> 943 bytes apps/python/F12020Leaderboard/ui/27_green.png | Bin 0 -> 1115 bytes apps/python/F12020Leaderboard/ui/27_red.png | Bin 0 -> 1097 bytes apps/python/F12020Leaderboard/ui/28.png | Bin 0 -> 1166 bytes apps/python/F12020Leaderboard/ui/28_green.png | Bin 0 -> 1396 bytes apps/python/F12020Leaderboard/ui/28_red.png | Bin 0 -> 1349 bytes apps/python/F12020Leaderboard/ui/29.png | Bin 0 -> 1077 bytes apps/python/F12020Leaderboard/ui/29_green.png | Bin 0 -> 1248 bytes apps/python/F12020Leaderboard/ui/29_red.png | Bin 0 -> 1207 bytes apps/python/F12020Leaderboard/ui/2_green.png | Bin 0 -> 16185 bytes apps/python/F12020Leaderboard/ui/2_red.png | Bin 0 -> 16170 bytes apps/python/F12020Leaderboard/ui/3.png | Bin 0 -> 16128 bytes apps/python/F12020Leaderboard/ui/30.png | Bin 0 -> 1136 bytes apps/python/F12020Leaderboard/ui/30_green.png | Bin 0 -> 1341 bytes apps/python/F12020Leaderboard/ui/30_red.png | Bin 0 -> 1306 bytes apps/python/F12020Leaderboard/ui/31.png | Bin 0 -> 832 bytes apps/python/F12020Leaderboard/ui/31_green.png | Bin 0 -> 944 bytes apps/python/F12020Leaderboard/ui/31_red.png | Bin 0 -> 927 bytes apps/python/F12020Leaderboard/ui/32.png | Bin 0 -> 1015 bytes apps/python/F12020Leaderboard/ui/32_green.png | Bin 0 -> 1149 bytes apps/python/F12020Leaderboard/ui/32_red.png | Bin 0 -> 1137 bytes apps/python/F12020Leaderboard/ui/3_green.png | Bin 0 -> 16182 bytes apps/python/F12020Leaderboard/ui/3_red.png | Bin 0 -> 16165 bytes apps/python/F12020Leaderboard/ui/4.png | Bin 0 -> 16142 bytes apps/python/F12020Leaderboard/ui/4_green.png | Bin 0 -> 16190 bytes apps/python/F12020Leaderboard/ui/4_red.png | Bin 0 -> 16175 bytes apps/python/F12020Leaderboard/ui/5.png | Bin 0 -> 16037 bytes apps/python/F12020Leaderboard/ui/5_green.png | Bin 0 -> 16077 bytes apps/python/F12020Leaderboard/ui/5_red.png | Bin 0 -> 16062 bytes apps/python/F12020Leaderboard/ui/6.png | Bin 0 -> 16175 bytes apps/python/F12020Leaderboard/ui/6_green.png | Bin 0 -> 16229 bytes apps/python/F12020Leaderboard/ui/6_red.png | Bin 0 -> 16211 bytes apps/python/F12020Leaderboard/ui/7.png | Bin 0 -> 16124 bytes apps/python/F12020Leaderboard/ui/7_green.png | Bin 0 -> 16162 bytes apps/python/F12020Leaderboard/ui/7_red.png | Bin 0 -> 16147 bytes apps/python/F12020Leaderboard/ui/8.png | Bin 0 -> 16255 bytes apps/python/F12020Leaderboard/ui/8_green.png | Bin 0 -> 16316 bytes apps/python/F12020Leaderboard/ui/8_red.png | Bin 0 -> 16295 bytes apps/python/F12020Leaderboard/ui/9.png | Bin 0 -> 16187 bytes apps/python/F12020Leaderboard/ui/9_green.png | Bin 0 -> 16242 bytes apps/python/F12020Leaderboard/ui/9_red.png | Bin 0 -> 16225 bytes apps/python/F12020Leaderboard/ui/number.psd | Bin 0 -> 49720 bytes constants.py | 87 --------- 99 files changed, 87 insertions(+), 174 deletions(-) create mode 100644 apps/python/F12020Leaderboard/ui/1.png create mode 100644 apps/python/F12020Leaderboard/ui/10.png create mode 100644 apps/python/F12020Leaderboard/ui/10_green.png create mode 100644 apps/python/F12020Leaderboard/ui/10_red.png create mode 100644 apps/python/F12020Leaderboard/ui/11.png create mode 100644 apps/python/F12020Leaderboard/ui/11_green.png create mode 100644 apps/python/F12020Leaderboard/ui/11_red.png create mode 100644 apps/python/F12020Leaderboard/ui/12.png create mode 100644 apps/python/F12020Leaderboard/ui/12_green.png create mode 100644 apps/python/F12020Leaderboard/ui/12_red.png create mode 100644 apps/python/F12020Leaderboard/ui/13.png create mode 100644 apps/python/F12020Leaderboard/ui/13_green.png create mode 100644 apps/python/F12020Leaderboard/ui/13_red.png create mode 100644 apps/python/F12020Leaderboard/ui/14.png create mode 100644 apps/python/F12020Leaderboard/ui/14_green.png create mode 100644 apps/python/F12020Leaderboard/ui/14_red.png create mode 100644 apps/python/F12020Leaderboard/ui/15.png create mode 100644 apps/python/F12020Leaderboard/ui/15_green.png create mode 100644 apps/python/F12020Leaderboard/ui/15_red.png create mode 100644 apps/python/F12020Leaderboard/ui/16.png create mode 100644 apps/python/F12020Leaderboard/ui/16_green.png create mode 100644 apps/python/F12020Leaderboard/ui/16_red.png create mode 100644 apps/python/F12020Leaderboard/ui/17.png create mode 100644 apps/python/F12020Leaderboard/ui/17_green.png create mode 100644 apps/python/F12020Leaderboard/ui/17_red.png create mode 100644 apps/python/F12020Leaderboard/ui/18.png create mode 100644 apps/python/F12020Leaderboard/ui/18_green.png create mode 100644 apps/python/F12020Leaderboard/ui/18_red.png create mode 100644 apps/python/F12020Leaderboard/ui/19.png create mode 100644 apps/python/F12020Leaderboard/ui/19_green.png create mode 100644 apps/python/F12020Leaderboard/ui/19_red.png create mode 100644 apps/python/F12020Leaderboard/ui/1_green.png create mode 100644 apps/python/F12020Leaderboard/ui/1_red.png create mode 100644 apps/python/F12020Leaderboard/ui/2.png create mode 100644 apps/python/F12020Leaderboard/ui/20.png create mode 100644 apps/python/F12020Leaderboard/ui/20_green.png create mode 100644 apps/python/F12020Leaderboard/ui/20_red.png create mode 100644 apps/python/F12020Leaderboard/ui/21.png create mode 100644 apps/python/F12020Leaderboard/ui/21_green.png create mode 100644 apps/python/F12020Leaderboard/ui/21_red.png create mode 100644 apps/python/F12020Leaderboard/ui/22.png create mode 100644 apps/python/F12020Leaderboard/ui/22_green.png create mode 100644 apps/python/F12020Leaderboard/ui/22_red.png create mode 100644 apps/python/F12020Leaderboard/ui/23.png create mode 100644 apps/python/F12020Leaderboard/ui/23_green.png create mode 100644 apps/python/F12020Leaderboard/ui/23_red.png create mode 100644 apps/python/F12020Leaderboard/ui/24.png create mode 100644 apps/python/F12020Leaderboard/ui/24_green.png create mode 100644 apps/python/F12020Leaderboard/ui/24_red.png create mode 100644 apps/python/F12020Leaderboard/ui/25.png create mode 100644 apps/python/F12020Leaderboard/ui/25_green.png create mode 100644 apps/python/F12020Leaderboard/ui/25_red.png create mode 100644 apps/python/F12020Leaderboard/ui/26.png create mode 100644 apps/python/F12020Leaderboard/ui/26_green.png create mode 100644 apps/python/F12020Leaderboard/ui/26_red.png create mode 100644 apps/python/F12020Leaderboard/ui/27.png create mode 100644 apps/python/F12020Leaderboard/ui/27_green.png create mode 100644 apps/python/F12020Leaderboard/ui/27_red.png create mode 100644 apps/python/F12020Leaderboard/ui/28.png create mode 100644 apps/python/F12020Leaderboard/ui/28_green.png create mode 100644 apps/python/F12020Leaderboard/ui/28_red.png create mode 100644 apps/python/F12020Leaderboard/ui/29.png create mode 100644 apps/python/F12020Leaderboard/ui/29_green.png create mode 100644 apps/python/F12020Leaderboard/ui/29_red.png create mode 100644 apps/python/F12020Leaderboard/ui/2_green.png create mode 100644 apps/python/F12020Leaderboard/ui/2_red.png create mode 100644 apps/python/F12020Leaderboard/ui/3.png create mode 100644 apps/python/F12020Leaderboard/ui/30.png create mode 100644 apps/python/F12020Leaderboard/ui/30_green.png create mode 100644 apps/python/F12020Leaderboard/ui/30_red.png create mode 100644 apps/python/F12020Leaderboard/ui/31.png create mode 100644 apps/python/F12020Leaderboard/ui/31_green.png create mode 100644 apps/python/F12020Leaderboard/ui/31_red.png create mode 100644 apps/python/F12020Leaderboard/ui/32.png create mode 100644 apps/python/F12020Leaderboard/ui/32_green.png create mode 100644 apps/python/F12020Leaderboard/ui/32_red.png create mode 100644 apps/python/F12020Leaderboard/ui/3_green.png create mode 100644 apps/python/F12020Leaderboard/ui/3_red.png create mode 100644 apps/python/F12020Leaderboard/ui/4.png create mode 100644 apps/python/F12020Leaderboard/ui/4_green.png create mode 100644 apps/python/F12020Leaderboard/ui/4_red.png create mode 100644 apps/python/F12020Leaderboard/ui/5.png create mode 100644 apps/python/F12020Leaderboard/ui/5_green.png create mode 100644 apps/python/F12020Leaderboard/ui/5_red.png create mode 100644 apps/python/F12020Leaderboard/ui/6.png create mode 100644 apps/python/F12020Leaderboard/ui/6_green.png create mode 100644 apps/python/F12020Leaderboard/ui/6_red.png create mode 100644 apps/python/F12020Leaderboard/ui/7.png create mode 100644 apps/python/F12020Leaderboard/ui/7_green.png create mode 100644 apps/python/F12020Leaderboard/ui/7_red.png create mode 100644 apps/python/F12020Leaderboard/ui/8.png create mode 100644 apps/python/F12020Leaderboard/ui/8_green.png create mode 100644 apps/python/F12020Leaderboard/ui/8_red.png create mode 100644 apps/python/F12020Leaderboard/ui/9.png create mode 100644 apps/python/F12020Leaderboard/ui/9_green.png create mode 100644 apps/python/F12020Leaderboard/ui/9_red.png create mode 100644 apps/python/F12020Leaderboard/ui/number.psd delete mode 100644 constants.py diff --git a/apps/python/F12020Leaderboard/constants.py b/apps/python/F12020Leaderboard/constants.py index 4d3c413..6745f2f 100644 --- a/apps/python/F12020Leaderboard/constants.py +++ b/apps/python/F12020Leaderboard/constants.py @@ -1,87 +1,87 @@ -import ac - -APP_NAME = "F12020Leaderboard" - -class FC: - APP_NAME = APP_NAME - FONT_NAME = "Formula" - - # IMAGES - - # POSITION NUMBERS - LEADERBOARD_POSITION_LABEL = ["apps/python/%s/ui/positions/%d.png" % (APP_NAME, n) for n in range(21)] - LEADERBOARD_POSITION_RED_LABEL = ["apps/python/%s/ui/positions/%d_red.png" % (APP_NAME, n) for n in range(21)] - LEADERBOARD_POSITION_GREEN_LABEL = ["apps/python/%s/ui/positions/%d_green.png" % (APP_NAME, n) for n in range(21)] - - # LEADERBOARD BACKGROUNDS - LEADERBOARD_BACKGROUND = "apps/python/%s/ui/background.png" % APP_NAME - LEADERBOARD_BASE_RACE = "apps/python/%s/ui/race_base.png" % APP_NAME - LEADERBOARD_BASE_QUALI = "apps/python/%s/ui/quali_base.png" % APP_NAME - LEADERBOARD_BASE_PRACTICE = "apps/python/%s/ui/practice_base.png" % APP_NAME - LEADERBOARD_FINAL_LAP = "apps/python/%s/ui/final_lap.png" % APP_NAME - LEADERBOARD_INFO_BACKGROUNG = "apps/python/%s/ui/background_info.png" % APP_NAME - LEADERBOARD_PLAYER_HIGHLIGHT = "apps/python/%s/ui/highlight.png" % APP_NAME - - # FASTEST LAP - LEADERBOARD_FASTEST_LAP = "apps/python/%s/ui/fastest_lap.png" % APP_NAME - FASTEST_LAP_BANNER = "apps/python/%s/ui/fastest_lap_banner.png" % APP_NAME - - # DRIVER WIDGET BACKGROUND - DRIVER_WIDGET_BACKGROUND = "apps/python/%s/ui/driver_widget_background.png" % APP_NAME - DRIVER_WIDGET_BACKGROUND_ALTERNATE = "apps/python/%s/ui/driver_widget_background_alternate.png" % APP_NAME - DRIVER_WIDGET_EXTENDED_BACKGROUND = "apps/python/%s/ui/driver_widget_extended_background.png" % APP_NAME - - # FLAGS - YELLOW_FLAG = "apps/python/%s/ui/yellow_flag.png" % APP_NAME - BLUE_FLAG = "apps/python/%s/ui/blue_flag.png" % APP_NAME - YELLOW_FLAG_SECTOR1 = "apps/python/%s/ui/yellow_flag_s1.png" % APP_NAME - YELLOW_FLAG_SECTOR2 = "apps/python/%s/ui/yellow_flag_s2.png" % APP_NAME - YELLOW_FLAG_SECTOR3 = "apps/python/%s/ui/yellow_flag_s3.png" % APP_NAME - # GREEN_FLAG = "apps/python/%s/ui/green_flag.png" % APP_NAME - CHECKERED_FLAG = "apps/python/%s/ui/race_flag.png" % APP_NAME - - # POSITION CHANGED INDICATOR - POSITION_GAINED = "apps/python/%s/ui/position_gained.png" % APP_NAME - POSITION_LOST = "apps/python/%s/ui/position_lost.png" % APP_NAME - POSITION_MAINTAINED = "apps/python/%s/ui/position_maintained.png" % APP_NAME - - # MISCELANEOUS - ROLEX_LOGO = "apps/python/%s/ui/rolex.png" % APP_NAME - SPEEDOMETER_ICON = "apps/python/%s/ui/icon.png" % APP_NAME - GAPS = "apps/python/%s/ui/gaps.png" % APP_NAME - - TYRE_DIR = "apps/python/%s/ui/tyres/" % APP_NAME - - # REPLAY DIRECTORY - REPLAY_DIR = "apps/python/%s/replays/" % APP_NAME - - # CONSTANTS - OVERTAKE_POSITION_LABEL_TIMER = 3 # seconds - FASTEST_LAP_DISPLAY_TIME = 8 - FASTEST_LAP_STARTING_LAP = 2 - TRACK_SECTION_LENGTH = 110 - - TEAM_COLORS = None - TEAM_NAME = None - DRIVER_NUMBER = None - NUMBER_TAGS = None - CARS = None - -try: - if not FC.TEAM_COLORS: - FC.TEAM_COLORS = {} - FC.TEAM_NAME = {} - FC.DRIVER_NUMBER = {} - FC.NUMBER_TAGS = {} - FC.CARS = {} - with open("apps/python/%s/teams.ini" % APP_NAME) as fp: - for line in fp: - line = line.split(":") - name = line[-1][:-1] - FC.TEAM_NAME[name] = line[0] - FC.TEAM_COLORS[name] = "apps/python/%s/ui/teams/%s.png" % (APP_NAME, line[1]) - FC.CARS[name] = "apps/python/%s/ui/cars/%s.png" % (APP_NAME, line[1]) - FC.DRIVER_NUMBER[name] = line[2] - FC.NUMBER_TAGS[name] = "apps/python/%s/ui/numbers/%s.png" % (APP_NAME, line[2]) -except FileNotFoundError: - ac.log("File teams.ini not found.") +import ac + +APP_NAME = "F12020Leaderboard" + +class FC: + APP_NAME = APP_NAME + FONT_NAME = "Formula" + + # IMAGES + + # POSITION NUMBERS + LEADERBOARD_POSITION_LABEL = ["apps/python/%s/ui/positions/%d.png" % (APP_NAME, n) for n in range(33)] + LEADERBOARD_POSITION_RED_LABEL = ["apps/python/%s/ui/positions/%d_red.png" % (APP_NAME, n) for n in range(33)] + LEADERBOARD_POSITION_GREEN_LABEL = ["apps/python/%s/ui/positions/%d_green.png" % (APP_NAME, n) for n in range(33)] + + # LEADERBOARD BACKGROUNDS + LEADERBOARD_BACKGROUND = "apps/python/%s/ui/background.png" % APP_NAME + LEADERBOARD_BASE_RACE = "apps/python/%s/ui/race_base.png" % APP_NAME + LEADERBOARD_BASE_QUALI = "apps/python/%s/ui/quali_base.png" % APP_NAME + LEADERBOARD_BASE_PRACTICE = "apps/python/%s/ui/practice_base.png" % APP_NAME + LEADERBOARD_FINAL_LAP = "apps/python/%s/ui/final_lap.png" % APP_NAME + LEADERBOARD_INFO_BACKGROUNG = "apps/python/%s/ui/background_info.png" % APP_NAME + LEADERBOARD_PLAYER_HIGHLIGHT = "apps/python/%s/ui/highlight.png" % APP_NAME + + # FASTEST LAP + LEADERBOARD_FASTEST_LAP = "apps/python/%s/ui/fastest_lap.png" % APP_NAME + FASTEST_LAP_BANNER = "apps/python/%s/ui/fastest_lap_banner.png" % APP_NAME + + # DRIVER WIDGET BACKGROUND + DRIVER_WIDGET_BACKGROUND = "apps/python/%s/ui/driver_widget_background.png" % APP_NAME + DRIVER_WIDGET_BACKGROUND_ALTERNATE = "apps/python/%s/ui/driver_widget_background_alternate.png" % APP_NAME + DRIVER_WIDGET_EXTENDED_BACKGROUND = "apps/python/%s/ui/driver_widget_extended_background.png" % APP_NAME + + # FLAGS + YELLOW_FLAG = "apps/python/%s/ui/yellow_flag.png" % APP_NAME + BLUE_FLAG = "apps/python/%s/ui/blue_flag.png" % APP_NAME + YELLOW_FLAG_SECTOR1 = "apps/python/%s/ui/yellow_flag_s1.png" % APP_NAME + YELLOW_FLAG_SECTOR2 = "apps/python/%s/ui/yellow_flag_s2.png" % APP_NAME + YELLOW_FLAG_SECTOR3 = "apps/python/%s/ui/yellow_flag_s3.png" % APP_NAME + # GREEN_FLAG = "apps/python/%s/ui/green_flag.png" % APP_NAME + CHECKERED_FLAG = "apps/python/%s/ui/race_flag.png" % APP_NAME + + # POSITION CHANGED INDICATOR + POSITION_GAINED = "apps/python/%s/ui/position_gained.png" % APP_NAME + POSITION_LOST = "apps/python/%s/ui/position_lost.png" % APP_NAME + POSITION_MAINTAINED = "apps/python/%s/ui/position_maintained.png" % APP_NAME + + # MISCELANEOUS + ROLEX_LOGO = "apps/python/%s/ui/rolex.png" % APP_NAME + SPEEDOMETER_ICON = "apps/python/%s/ui/icon.png" % APP_NAME + GAPS = "apps/python/%s/ui/gaps.png" % APP_NAME + + TYRE_DIR = "apps/python/%s/ui/tyres/" % APP_NAME + + # REPLAY DIRECTORY + REPLAY_DIR = "apps/python/%s/replays/" % APP_NAME + + # CONSTANTS + OVERTAKE_POSITION_LABEL_TIMER = 3 # seconds + FASTEST_LAP_DISPLAY_TIME = 8 + FASTEST_LAP_STARTING_LAP = 2 + TRACK_SECTION_LENGTH = 110 + + TEAM_COLORS = None + TEAM_NAME = None + DRIVER_NUMBER = None + NUMBER_TAGS = None + CARS = None + +try: + if not FC.TEAM_COLORS: + FC.TEAM_COLORS = {} + FC.TEAM_NAME = {} + FC.DRIVER_NUMBER = {} + FC.NUMBER_TAGS = {} + FC.CARS = {} + with open("apps/python/%s/teams.ini" % APP_NAME) as fp: + for line in fp: + line = line.split(":") + name = line[-1][:-1] + FC.TEAM_NAME[name] = line[0] + FC.TEAM_COLORS[name] = "apps/python/%s/ui/teams/%s.png" % (APP_NAME, line[1]) + FC.CARS[name] = "apps/python/%s/ui/cars/%s.png" % (APP_NAME, line[1]) + FC.DRIVER_NUMBER[name] = line[2] + FC.NUMBER_TAGS[name] = "apps/python/%s/ui/numbers/%s.png" % (APP_NAME, line[2]) +except FileNotFoundError: + ac.log("File teams.ini not found.") diff --git a/apps/python/F12020Leaderboard/ui/1.png b/apps/python/F12020Leaderboard/ui/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f2b74619253112529274c225ef10ce2d36c912be GIT binary patch literal 15952 zcmeI3e~1)i7{}+dQm@pKs8Eq{tw?lse(bNAVQ>9$tKF%q$GPblg}yuU?%i;^JKN5j zyJwW5B&Z~z6(uPC5fVgJ^b-uTFf53$2m(zBBhbi-#KJ`Eot@pC+4uI|uJVtFce&f0 z=Y8Jq^StlpdFOq1{@5KoD<7QPKE0h`n91E;$zJr?h5oxI-h$o_ys_aN`j}MgT4yoL zl;h5S+jH}#%wU-KQ6t@F_oY^-nwbv*-ORvXC0|6nk#9kz2(&?Hvl-ZL6gmPwANe4_ z8hS@yZ6qb6ik)!4=-O0*t2eDoYnui&MGq`Uw8twd3Xq33U@Q4t!BQ(7fofb8T|3Qu zfUS112Rj0boP=y&s)y|~OOTBOqnsv&WHzP*#fTzH;rXm2h*4fpcrnZgqADn=AhNYr zAkmJl;w3$+_9mCs(jluOFkst7mFLUla;Ev;k}ZNn_EPF#>NhwP3(z)942)#jBiHWC%A8aqUhuYe*i1_i#ANY@&g;!r79 z9h$E3FbDInU|UEhw$v2|Oxv^u%u!M{+@mH&HA$r!xm%7mpKqDkvX^W`2x>@MDy{Tz z5%RszGKWeUT(S{OWlpQv+eX$aPE#buGwRr3#TZ5AcwAX^DYzAiqq(Y`B?xS@ls3&= z!d+!Ob%bnZr?aYJ>;r3!f^L?rxp5wsc=h(8!6dL@LJ}l_6QbxZElFxPqK1WseR{VO zCQq5VksWT5i(*<5RY_JuVomPrgv-%gqXQfKRRDiCUkF`Ovt}s|?1YgA{g5vf`s2LU z=3k`O1NcQoThNgZ}2$x+7;)Z?z&QSQ(43Gy%@`bX(Cd!uYbz~#=ETga=;xIE4~dqU1=o`>7oJU#z# zT2gVARVt-+7c3hTG}xU?poXAf=xQdaXR0#24=F;3S)q71Td%V<)B%gAUhASNkXM9%1n6bgmp7^u&sMVJw( zx(o~5)WaBmrzor8W6iDqbahp?I~8co5s=WFT?FcJzNyt4mba?h4#voGjt#*G`RF;y z1F$g4F62h3b{Ji6nOVCGN^ns>S{!598{MeQGCX|iJL87bzycfpT?G^|rbyAO#)WmD zaG6M0M{gj*Nf|jClfrT)8WQRi_7xDHqB9vE;Kn&1r-hIz$ZEtn2Yeky*Egda!|61Z z3V6fQ20)=7>IuF+oO%O3qW^Ny#I|bm;sX(dI1|w|}2=Ea!%*{gtSIUcBhM*Q9;~izdNek@;X=iVFimHYqMLAIwW}VL-?x5m&qSqhwe>zeFyhpBz7*+B}GU zuFPs(y(xy-bRWZP*~TzeuA|Qj3^OD!%nutFMty-{?l$+V|9C0GwB6R7T$HYy`tcia z+3}uxp88_K)}QX3_vNzkGy5lAnE&S1Z?nD2Pkwa&6VvmDpZ?_7XS?RyrS84-;hAHz zf7y9#{hm8tnL3VLxP{rzo?J8jrir&Z*KOnK7wRFnPTH*vU5cAC24>6_8q#i{H5zt)62TQ9y&d4-=Vqr(`(A-=l#0#;#a?4n>Fp={_TLNM`?tsT|9Ya z)#fWRuWq};$@aP6W;`E$eEeHyZ#{TL1v2{1t1YlZa@njculbnI@@;tx=m85>2G<-f_QP zjyH~Vrqj;ez}-IY^M0S_eLwHJ&+h)Q57$)RTabT8K89fh-b#-j{8oa0Z{BS1y<=D7 z-@wn@aAm!UVe?+n|8M%?SLWS`Va^xj+B&Vyw~7;#ULY#Oa;ZhG?1@Ngda7%Mo;HCM&86;qXOsg0f|ACYqQUl% z%0*q~SX>Sq>&=AO6zih3xy&o{gr+)Qjj3FTNG5BE4Hqbj!(?YmC@brrnPL-7QZ|BQ z35vlEnH%mk~)a)cujcGlT+lVVy+LZ_xk>s{GiEPbTRkc!7Tg7)v5jAZ&z@o%X z(K5a{vo+ypmt&_|n2)HEzL8w!#7;_{o5@p8*QACM%T>(>B{xN;4>Q%C8fG#Ctk(yf zO&@EA^-e;s3hi>{OyaGX6HFgZRxbL+^7%M#NY(g|AbCA*&`=`FBF8WRAz*RXaGnt< zoa7lh?yx&7xV_14qe+Hk1R)UHa+&hfSf@gJ6rn>eDXBOtOMx5Z)S6DhKUnU<5iA4e{3(WsUT$%+~AOU$KJ6@q&I4a0_}J zkwhnv(V7}oYFouS$kUhe+7L{W&zz&HMGDPOhvHFU9cI?6N|V;bN2C?aU~^ncb&N;N zl)>S%pBXn~4OG7KKU)Eova__UNx&JAXYqiQ5y2N9!0CXa$xbtlfXxEx$91oOqn5OA zq=U2SrTo9Q0y^t>cA@@V~TZ*H#6uchNGhzyAk|7C-+oi(sO#PA{5H z{f3JJ1s7BRK33>Jp`X^4+Ai__b^3+5y(8A2wUOXMQ2O_jG~EqL>(SD5H!Mvl*M?-x zO;2Tmn$uMJU19tVW(|0Nk=!<`)nauLa5Jo^k)u+3oks?jOjR%ac91EifgM?e^=U$I z&y*6TIi`g1rAm9$h+Vhht>8fhJVO!5hp1_nwB!ZnMjoVQbR(lev5X`T5VUFFLi2&V z1}+E)+B9&X`9NL+7X$=t8o1DWAg_T70)jRTTxdR!*T4kI2 z59Bp)K|s)^feXzC@*21xAZXLTh2{f!4O|cqv}xc%^MSkuE(i$PG;pE$KwbkE1O#mw zxX^qcuYn5!f;J6YXg-kFzy$$8n+7g4AINLqf`Fh+0~eYPRTo4enY2ZThfxHGT2ngCVaH07?UIP~d1Z^6)(0m}TfeQkHHj%jUQ?DgU zA@DA87kKITX9dkY;Du$AQ0ez!SkF=n>)VK7A5VhccQLGk#IUoC7{>h=!xkuyee>{2 z49i*V^{l9kzW&d@y0+c9c;W2Erz>CfIr5q-e|faPF>ApV&yOCvWx$0kcmq2*zv>a@ z1IGJ)=$88)K1!B8f68+4ikI0w`bP6dPkj8FLM-=)wm4@)p2w84sPLVyZ(N>hE{s|8 zw^Zq<`yt|0`?B!Ol&EAI`aZQ{Ql>Wt$qx zYZC4o>5Gh=p-z8!aL;d-mgPOZ?;!h7VVOE_EA@NU&fc|eV&WTz8@hUfKkz?!sP$m~ zm1TP;d`~~I`K{f{2UiXjw4EcXhn9_fezy_E9y`?*u+}f&o%jky%C-0ay^slSOqu*azGv`^$(EOHX*5@Rq{L-0$J=pES zYkTY5fO!yI=XL_dvy4Pd(~y z9V;!``Re4X3zIA2i!>mN5IL9LoU`Hb#Z?0j+<(t;?UURK8B-`^S7YNFe{tYK^sd;9FP}eh1lx`G@A%H->s!D!#Jm;N Ko?n+WKKO4{rU3E) literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/10_green.png b/apps/python/F12020Leaderboard/ui/10_green.png new file mode 100644 index 0000000000000000000000000000000000000000..49227e54e1b8256476e91d7dc8035f58ddbca53c GIT binary patch literal 16334 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/11.png b/apps/python/F12020Leaderboard/ui/11.png new file mode 100644 index 0000000000000000000000000000000000000000..102e27e9c413262c236e0537e1ae9de76ddaed96 GIT binary patch literal 15990 zcmeI3ZHyB|7{`Yf0nb1*A&?-(r3iB9-oAAEvP-WVT*149A}>Ym)Ck+%>D`95Te^E( z?;rt`4?+SaCK?Ey5qC|~=f`aiaQ50iTLeNNXw%c~MbG`9YJ{U92 zUANCX^M9V1-!nVY{m`8&mOn7LX+{$OU~*?iVime}p#RQE6VUtfN7jFZF1Hpsx-9^v zyzTstdFH+;cLESQW~938uH-UBGjlDfZl+;NDOW(fk#AwCplTbS&7@(Ek#7zB^!l3t z#?V^>YePvsS!jp7M#o?gt{z;T(grtZvL09%Z;F)^6d(s}l_}-2c}pp^2Fh_2^x0|V z0!+D!y`eR*$Vtd_C08)*W)U)>mN2Uc!6*}vTZE7t6{Y(bkr%=oFLQ##@`A$43NJ8~ zS0LVmKE;Z9Mp>0uT1khj)*tgU7^>sO{>=&A!W@yVq#R2WU`jK;dpbohN&%k$tHxLg0!L1 zN(~esw+dQjUr~cgHleA^ZZvz_$aux6i{yAl96Kx-Bgh<&D=RMrw?Z*ASEaoORog74 zOfwsISJ{dxLZ-dlSyd5c-dZECoBdXEjKd{fy}f8Kq1rGm@*>ajVf2?0MMVlJ692GI z?{>oENmDm619fsiNQr_Xg%u%Gk^4H~a&*_|s;&N20Dm`M2whV$W-+JQaU-YpK(3JQ ziE&<|uV-x;DeY#~ETR#?creB_YHp}X!IHg99e_p4R}NH^@-4bp?Wu3AIp2>4IOSZ+)f|iqf`6D^yEn{Q2wd+Bx{vOgh6x!W^byGv(J${*}sOvf}v#KU)tRO&@m4m#*My05l4yMyO z(CUms^KI!eZ8LJ;b5giUK=h)qW&iB%(_jAoVAWic2GMk8u9 zMT0QIQgs*>x~&H={!UR=!;ST=|8#woH#|kvoI@b4Ir|9IV_aRUH!N>ixgCt*Xy5rQBg;y=7+Xezgb}^`ONun%&WjS}()HH@-7&N)0S^)4!{LEJS26 zjBY4NS7kOGl63T@rdcr^%|t{gnhpo~YK46T#HZ*?#s|1|5=2vcP~oFW$TaRtGp<-+lwh_iVW1<^a<={m%2d|ij)uZ+pAenS zp3vv02;EZo9yQA6mfMORWY9AdS9^#WcBIt~oSXTJkWGq<%m?#Q zTo@3tNpX?+U|xy~141?_E;1j?OL1X9$R@=_=7V`DE({3Sq`1g@FfYZ00U?_d7nu*{ zrMNI4WRv0|^TE6n7Y2lEQe0#{n3v+hfRIg!i_8b}Qd}4ivPs0%wH2>VO{mhGpPL03gy`xK~O_eU4ZnLB(C(LBlw|}wl(%Emf zG(XxkIQQhZD5Slc3|sdbRF*)-rJQI+H#-0yZP>+myE~a#-2TT+vl72oxiy8 z{pKAX{%}}U;#2g@{9Ok>nfT3j*P58%>h5PdxBtHBo^egH-jSydJ+k%MdE_|9KD6fS z*@oVRjfT^27N`m}ERmCM$tLr-meZ2=fN>3}-+dI?>bZD4HgUKyMj zx~uJC_qa1dx3v9yc}^1S>X|$3w#2Jb_fJ3A-8o~7J+%Aq%jYg`Jh}3tt6QG=V9xFn qSEqmcHEI!8JHILiolBM{URk{U@jn4ZZe>>h literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/11_green.png b/apps/python/F12020Leaderboard/ui/11_green.png new file mode 100644 index 0000000000000000000000000000000000000000..2a88c3c0c0042fdd5a3b369469ce906ee5740542 GIT binary patch literal 16022 zcmeI3ZHyDg8OQf{DR2q|AzIKK6)UG9smgj^ynflmc8;7cy(9R}fLo3zQJLKx-)+wJ zy57Az-=V5Ut41X$DHJ6_LPbawNu)}r619m0N{JMx)K=<;RH*1wsp9=#((<9I#=5ip%rpPznfX1lGu{t-EI0hs_1!()48yD+8qDlRpM&UsXzl0F z``HVJ|B61=RR#~)471^i```7_S2pxAO!93rKkAHT_o}*83IoH^V7OMQpx(&$Sgiu| z3FxpI95c(Q(EFDzhgj1{g$_ouLblQm$IZdnDm*YdoY!Y3bj1igmhMj0R1}~D9l+K~ z#j>r|QlWZW6@7P``4C(0;!LDMyWNEBXg0_8TUE$L!!b@5BMCOHgvF?mkmQ}LB#1Fy zPi%B&j~Xx5~Y3WeN6tyg1SrAjMN*>12y6!{vc z@M2itJBbXvrKwC-i}j%yIuDDm1j~+%bYe$cW!!Qsd)!(gWy`%}VpNlCww1f%cuS>@ zscmOq3L$79?WnZ#GZo11hqg6Y)#1Ptn#x0+X788nq|Y9w!fU@afx4VKN`#c2c{)K5;!4- z{_>Kf%28Doo(kx_PMADv8D?RoO)iRgNmS*SDv1qwpc5`fSB(K2@M!^p-2x#DT`gGE z5^&OH35-F$QXWh4eq*3#YZBL`vwo>nK-GrsLP~|2E2(vDwk|za;}55vYZ#PZS`>rB^xOSmwnE@~chH^m^>$pJ zES>iM~ zDswSi2N9qHDF&nUCD$(Z$Jz*;vGhrITS1|{9oVpR6yE1oFyy!_X$cPKlFo@D1e_8P zWG*2mfELj-0}6<%H_kw?MTthLCORNMG0?}Ii-D2}g(!rE66Z8sigH>)mN^iY6fT<3 z3`L4WB8fO?rsxo6QK~`HMwj&r#@{W<0r<`K*8g;U)i*p9= zth^59;&Ltz!6Nz6Ii|;9d5L|Zqd@hQ5K2>@=L1c|&5QH6vW zbx(poho$xHD3@_QEvEwh@bqy|9)m`jZw{x~fRE^ZxoFGV1wAmIy=d*{@Bcy3yi&Gr zg3XO}@urz{e{iX2!$ms)sBd&=qhHkKFBh->sCzIMC+q!{n1Eiq=)O0kK{qZvM3x5K zxYSpEt!z4JsgVt94yfE;h2Afi1Ly_@reo1)1Ra=oGp@*)HCP zqoeRpK!|=b`NDvsA@oWWxYekiTV5-=kwN!ReCsA^(UI0VaPH?9e@6E+Di(_-!GMrW zii^w#^HN+G5VA>ek@;X=iVFimHYqMLAIwW}VL-?x#YN_Wc_}Uo2-&2#$b2v_#f1SO zn-mwB59Xz~Fd$@;;v)0Gyc8D(gltk=WImXe;=+KCO^S=m2lG-~7!a~aagq68UWy9? zLN+NbG9S!KabZBnCdEbOgLx?~3<%kzxX64kFU5rcA)6EznGfcrxG*4Olj0)t!Mqd~ z283)JkWGq<%m?#QTo@3tNpX?+U|xy~141?_E;1j?OL1X9$R-h2xBpl& zETdldp>#adGx?Cs}JtaGR*A53^Vs#hPitWeg2(cCIyDMeVAd?(+so4`q4M8 zKEW_uxuMMNd~M+$f8>T&?%Vv_Urzn=&F}5_{MuFD?|FLQ_a~mKY`U_K?HOIu`!*1E z{^XU5J;zh)R;)V1*tx9>yM&b=P3`#B)t_G8HFE03)4v|ftUbT7i=AUuyf)Eyv**m# zKBjBc#ad(qHx@uRhWt#-$|mYsX*`mVlf zZ>`ARc;MXa`K~=573PmH=P$_z(>qW6?RQVFK6fp3`py^new#XT=jxUR`sTOa{8*ch s*l$UHxbc4C7jq~8igIrF1BH3_k=geyZh2;h`{el0z;I^%@x$NwH?Hb#_y7O^ literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/11_red.png b/apps/python/F12020Leaderboard/ui/11_red.png new file mode 100644 index 0000000000000000000000000000000000000000..0c08e8729245f177e5e4e278fae27ac3334fd275 GIT binary patch literal 16017 zcmeI3ZEO@p7{|9jjh28WYBWIPJc7~4-oD)HuGizGS8SE5wH%>nBFyg2wF`H*$L+Rv zt%(wR4?zuT6e8Hfm#7JlMq*+J0Rxz5)TkKoEfUcWAVNQAVpI&y-d=C_rq{75AB>qx zdw0(~^M9V1-!nUN`(YpJ?z(kW%bXU5VPTjd+kepS z)3sLr>Trrr7206G-Z5N+D~G$%>hK0t()^1PE%CC90_30teC1p=Z_4FXeQBK!jC=V9Xbl0zz1diJ?V4kryHyFL6SMb-mJ1i6uB}ea6*9R8i_QurYQ^* zvz4J~DhIPL2lJMRbV5U2q2I6!v)`B`Wz9WlVpNk-nPWZo3#aEV)QHyTU=3noNfb8WBtc<6NWWhN?6yTPwg2ESjEjprTYR(Pf~ozIEJ@)hm};0TfMW zFQiug_)4l>o3%^N*0{r|;^qK*y-koEMj=c1uxd?pN`CPi6A6~n9&3x!w^6(u$tQ#45o27|F^Z7vPM zOi0zCo9MD0!uZ=oSqV4RxBk=hRoU=lpxTE(Lbdl1sKvRuR(DwLvT{1;6U#X@1QX$q zX+UC?a7aUMKw(8CmWhg?m=X!{;}!N45TBww84uvvNf1l(L79)qVf!TTbeLRUk8%p< z(^M+p4o~d|`97#6xbfkPH{c`sFBffUyPyN+?-#B9{QVyk%_(L5COE!#Puw))_75%@ zZMbL$0F{jnZS)h`+~wl*@3jx+>_DZz6yec}6YTe@)a%BjYsgZs8<)DuRe9Y?h}CRZ zvqxqBDs+CqtVB03FcArdgW))bH{*(Ky$rLxNgW-TroHt?QKpIpcQh2P@d(jxCRgZj zRE18dJhvK^bIWN(H!|oRimTm3O*qnO2hPR(;?C$|M#W;$Bp48~NpX?+U|xy~141?_ zE;1j?OL1X9$R@=_=7V`DE({3Sq`1g@FfYZ00U?_d7nu*{rMNI4WRv0|^TE6n7Y2lE zQe0#{n3v+hfRIg!i_8b}Qd}4ivPp4~`Cwj(3j;znDK0V}%u8`$K*%P=MdpKfDJ~2M z*`&D0d@wJ?g#jU(6c?Ef=B2nWAY_x`BJ;t#6c+}BY*JigKA4x{!hn!Xii^w#^HN+G z5VA>ek@;X=iVFimHYqMLAIwW}VL-?x#YN_Wc_}Uo2-zg!YH=S+hI#ZXatS?jytT_z z&;!dpwWBA+FvANOX43-<^Xmold75Dcc!v359mB}aG0Zi_wzWr>GfdO%oyn!?@|Qn; zJ$l>W?rR_ZcK)K_=Iys!b-HrR;J@ZtiX~q>x>fS#3c-jH>+0oa| zXxx^gFI;}NvS98?sFZ0(wzExRr`A7RZRTyl1I)B3SFBi7!)&Zei&eX=mI z=*d%`Eu7wee<`q&+4t3pw_mfCXFBHxTHo3?c>2AUkB!B4ZbGv~QAY0k`7(yNaA7*r Y8~)>0{rYvg?1#oX+q;r`maW_TC;WSLRR910 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/12.png b/apps/python/F12020Leaderboard/ui/12.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed0022fc2d9f12612c908d0193737bd2cc34c8c GIT binary patch literal 16211 zcmeI3e{2)y8OJXvL?IO=bZk^G!QnF0th?Nu&p)rW35j7&hC>wGHp!rHzB@ZdY@h49 z#7;T^*{E7Nezd4-%T`#{YIGf9TK@=$jdqEX zjq@(s_+y%0E3y5&&-;Cz_x(KYy|3?&+uqUs<=J%$>Ij0E-5T(Bg3kc>Z>_BX@B3fb z_y_PYD;en42;z=k82?q@y7!KS1mSsI33cgR!PUH|#v27m4a<$0coOsmzU7&uAoj^R z8J43;!fUzw)1O&LMe2PLwci*&jhS-ab1wS9@SGOUAU z+%#*W7?x+;Jj0Utm&I2HzIjqogzxmP%BKUC*V3!&NuH+D>2zb7YgAKFnsvL~G-IW$ zRtof>w84ZfWT=F8cP>aFj$hWql#XN;xu4=vN6e)}DDHDU51cSxg6~`No zS4^$xD+d6AJkp9vEi{;v=}uWw`%|L4asW)_?n<-Ql}M>LWswZelw+4O$`mrglapna zLass{Fju}MB@4Qm3aM($ms@2W1%zZvi?OPl*Rz8BS^07k}H>&#+nc9SH*r~TLGbSJFujRAbg1*BRV6ZRSHuA zc&Aua7AQBz*eI9HC4{+fSdtmGkjNBlQld2}1so7U%+$x2iv*G}5xXo)ZYLEMtza51 zn~f5jRySpLg(bI@<2aX7D5R(mW>TtvqJhhL5aMqXWv%>hdFy|=zOox0FNnq=;1i8~ zM3y{sS!-!nrDc`tpiD03^bkyvPn{#(D<`JdhjLM}9j4Z6YD7;9DS1T{ERN~yj=8Ai zGB|wYE8~{bKobW3y9&5jr`zg?h?Gqd+*H_Zlfau01{aho; zzi8#>@Bcy3a-}Ta1PdGMd;!V_~BdvJg z+{!Pd8QsdLP%NAT0)jR%E;Jv=i*Z3f&?d%(<^y>#E(i$P#JJFWATP!R0YRG>7n%>` z#ke3KXcOZ?^MSk=7X$=tVq9oGkQd{EfS^r`3(W`eVq6dqw25({`9NNb3j%^RF)lP8 z$cu47K+q<}h2{f!F)j!Q+Qhifd>}8z1pz^u7#ErkN@?u;N5VVPLq4_{wj0*ySHZd+VAIOVwK|s(Z#)aksc`+^s2-?KB z(0m{-#svXEn@C)BrN@%x1b7xX4IVmv5g_VMr|ukXnqjFQ z9;nsNkoCj0ezJP*$Ioy3TVQ1Tz31Ql957El_XaU*3A5{>Hr!l0 z)-#{GM)xdu^XLTE)7fzUxzxe^;p5CYYSW>|+2*#v(fxblH`k4v`?!lc`S7ux-J{Pm zjefgzuh{OJ(@|Tse*Bf1KmFv>&VwVP4_%x0)rG%wKkGeu;F%Y{_o8pvlh=H2 zKNfuX=}jL_?4CJK+{PX_>z#A_$5O^yGZu=bR$hN|c<^S^D9`Qu%!NrgClh_2?fcM6|LWu0|M>jDGkYJMdA+OYC@cK>wabgI4yBJY9c}m; zzxOZqync#kYmkrp?)1FPi$)eMyP{RCA2`|e@{!M9Iy^^z>wVkmcW0cPIriH%zC(-e zy0mrCKJFzFpdHy+y>DrO@Y(2%B^}<)bAPbtomrvX^o%c_Qi;X2pQ^Tx0L6Y-qgxc~qF literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/12_green.png b/apps/python/F12020Leaderboard/ui/12_green.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb50e8dcaf56f366884221c01bda9e49d05a95b GIT binary patch literal 16262 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 GtN#Q!JmGTy literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/13_green.png b/apps/python/F12020Leaderboard/ui/13_green.png new file mode 100644 index 0000000000000000000000000000000000000000..26f252d0f1a1f491e788e686954a607a3d57a4c4 GIT binary patch literal 16257 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/14.png b/apps/python/F12020Leaderboard/ui/14.png new file mode 100644 index 0000000000000000000000000000000000000000..1174ba8221e8be1695feeaba3c3aab636e3df531 GIT binary patch literal 16198 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/14_red.png b/apps/python/F12020Leaderboard/ui/14_red.png new file mode 100644 index 0000000000000000000000000000000000000000..ade73cfa85f97373eee53f41687f3254bea3e0e0 GIT binary patch literal 16229 zcmeI3YitzP701Ue0pnsy8=&HmWV;d6aXg;KzGf%u#o)Es6|ph)MzP(*cy{KlJz{rf z*%{-tl@E3!^%3$UB&|g1TB+SoA(6BNRVY>{V48f0AlR;xQXUZ{AVL#21=>bwMepo; zuh+M3%ZI9(mA$*?p8G%N-ru=%@6Lz$epBP-veMP11VNPfyq;$G>4pEkl7;Yn=;xi6 z;K$;qw@oF8rQ`a4(Mu05T|*GAU(5bht+nA{UR1(Wf}{jMRXiMpy`gVIJSvDgfMyDS zE;&+do_X`A*(6KV=0|M}bVIZjbj#lU7-;El^o#vFM5kol;4XE=c^DuJG{F=PhaxH; zuQn&*^6909B01QB77NCOxhYP zsa36R7etUkT2QI_`=Wqq2CC8%6G7cBIF>rrKJ4RXI%MkIE5A=~W+aQK%$a?`$;S5j5atX_h8w zJN)yrEN`{(R=Pb$pX`Ll8x%wPb|57d3LO+&>ltX(YF;CI=KT&iU`AJ`LR|p7_tw#H<5KnS6nKKfiFn2ZkE0FayxG9a=xGQe4_ zq~Ktkq>T$mPS#?va1J4zqCl8gsl2iZFY7*pzh0CUurt5)KV4sm4UZQ@{Sa`A`aS|A z7nRqV9aeT(B|FHo%Q-&;v*dH<= z{PXw!plHcb=5K=Ojdk{>>C%62@o>Y1JAjbb=-@^_t1Y`+lKortgE`cb={ zozb0)io`OKAVBb@feX(E@fx@gAb8Wjh3A8K4O|EiylLRV^Fh1@E(8ePG;rbhAYKC( z0t9awxbS=suYn5zf;SCZcs_{Nz=Z(8n+7gCAH-|mLV(~+0~ekT;x%v~K=7u43(p7f z8n_T3c+1LA(Yo1PIF<>y}?URBYw{Pg-A%NPCri{0CQGc?9s z_$;*i|9r(>cWiWe z%-hm2^1u(;9S1)uuQ^aDj!qpr_e}lRsT(hTxVQbG>*a?(UH^RZQ{UV+RnZKVTzu~B zMb}$Fn`3Zq^O$#XdfIm|@0c##V1HJ7wr@`qJbhzmYSr-3l~?y&y>@8V-`m#SzO3yDUKRI)p%|KZ@s`=4Lf z`y{dFC?wth14!OEJlzg}2c z*Z-XxzdO2S{GG#-2U;h|`!1H%C#W7jy`4w_{&=Um=+K54;_Q#t4gBTm%9>A~Xnpm| z#1YG{Jbx35Hs4$MLhI=}r-yd&cG literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/15.png b/apps/python/F12020Leaderboard/ui/15.png new file mode 100644 index 0000000000000000000000000000000000000000..ba38723e47ac4082848465f1db9dffc36a9ca2e5 GIT binary patch literal 16115 zcmeI3e{36P8OJYM+mwj56HI9|5P04yx^CzD;XB)Rv)vzYL%hye)H-bn3hnvswR4T_ z^L*#TNrxJShBQ`2wX%+lwL}^c0#T%?bS)j)hG134*gB0OL>H~76{9P36`Q6C#5UeL z|G4uT=OsY@Ku?@uaA}bx0@8T{FnBB$D_9|{}e?Sv3j)MKdxWP%V^TZRlHDEh*|4 zuzVSi(~B|xm1m##`*bbl-zKKmRH+w?>itt?uw`l>txk=plIC96$S`JK2j{B0LAexFmt8jJbY+X;QcsXgk{r^N(6qNoJUdiHX2OFkqB(3@1qv!}1Kz z)363@P8KbtN*B#rYC#%t62Mf;ddbp_qR)=2WQ>Xx^ZV^Y%}>2wg;Fz7(X6wB6q%}0 zVz>ayv=eD+Q&Xyx^G?$=l>vEB07c7$I8(`*p*w__1@C6?%=dUvOV**9aQysWVWX!bEZOV zgrcyoa&H+ZmQhX{Mm}DfWrGcbzTRGYR)u}5x9LUAm@sdPGN{BIZ#No9C>DtGEYH$x z2>zvcUKT`IV87te*D4|Ml%eU_$rd@srFl*k!m=2w%RQA)Ib1cGVk!SBfVY|_gr>?_ zqg+s|xL#0lfGHJoQN}Iw)ND>8x!1@WW!NGR4@Q}G#cfq-P_^z>CPCTs3EeM_zZ9T1hFJz@A7ke`6*!*Jg9+*&4SwPObr^0OFkJZKhl9HnSN5)!U73r+3Ox zeU!0xg}mO{lUiwO2fgiS%f+5psg#^7nwC;jK{64C1p!^xNZ^AhY! zMw9qpFc=9djTCLd%t_U+n{ZiABK++^*#houE&WgDm$Tu?ifSJMan;^OfEHz1O5J9; z)2dcMpF5ljLoi1^e~yV!P@HEUszq@s%&#|%tTmyO!TKDW91GbUYf)QeX!!OkBFnz*Av4T@Fu~9=Yx0&E(8ePB)IT=5HG=n z0KuCC7oHE|CAbhEc$475^Fh1>7Xk!t5?pvbh?n3(fZ$Dn3(p7f5?lxnyh(83`5<0` z3ju;R2`)Sz#7l4?K=3BPh3A8K2`&T(-Xys2d=M|eg#f{u1Q(tU;w88cAb6AD!t+7A z1Q!AXZxUR1K8Tm#LV(~+f(y?F@e*7J5WGon;rSq5f(rqHHwi90AH+*=AwcjZ7FU=1 zS~4iYcabOHOUJ2$oj-yvEc?{{%_)kST18RQU!|zOeFVSXrl<-_QI~d7l>BXqT4_A8 zNuQCtWQ_Z{$-XM_yybZHDyzOY5%9cm!n?##Ow>XQ;YYV;NDu)-Fb0wnL54t z{;#~ayL&j^y>s-!ndBz@($)PR{{EfctbWzl6nf<2j|Og_u3PGx?p~VS<@{*5%)C4O z_vf}Py?Hx#@~K~2`MtfnPXA+hXV=ZAdX5}>(!6w{_~DMnxsy-6`{s8$_i=qgL$CC$ zx$acYQ}0iWbPxWnQhs&S*u~rACHsz!TeGug^P!KP{koVs^4^7qJ8s-?d@p!&_lg_V zQ5}om7GcPZG;)|7$dw#xV#c1Z`ErG$l&pva<%bH)LU)nXi{IwOYzjW-*1B-4=4h?k(2QJ6fOjA!BxV%zaxBI#8Q)h#Z?K!tU z-Z|5A;SbTh+@9T~$or>0cXj%&>BD_}YqtjW9o_onbJq)J_5k4rf20m?yorllech}ShU;5RRRU;3*vE%q>oDdh!|9Omh@PpU8jYBv3?bp(i8wV0U J-mvrje*%m*s}BGG literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/15_green.png b/apps/python/F12020Leaderboard/ui/15_green.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf96d65b1cd254440ea64db2f39d57395c5f018 GIT binary patch literal 16157 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/16.png b/apps/python/F12020Leaderboard/ui/16.png new file mode 100644 index 0000000000000000000000000000000000000000..af79ac7e85e8ca5f42a5698a4db885e3b66b1907 GIT binary patch literal 16249 zcmeI3eQ*?K9mhA}B{8%VJ6PU2WjSCprkj1a_vP+-;Vv|Z9HhxHgqPCn?d~Njcem&5 zCU;3gQ;1UyGNXN=BDN59=rk~81_e7v0a1hFNS!#4G9^IO4lM$a*ij3PR-e81dvbY< z${&uiH_6@op5OER{hsIZd-i#5|JeS0%lyiMS<4*b`b&jj!LjhcSC&&S@IuVY7-oW=*BFgbwMHLT- zZBoQ(xP9WZ0ha`)VZGT$`Jx`NU8?JjiOt<>{CxLT-Yys(b5%GJEC>)5RSr*tLlK2d zI1S0TEcmW9lLkE5McwK&)MyFu7GERokz*omuC@?7ZM5N5do^vg+ZfZMI787ElCqPu ziJ)kfva=M8r(XtF1^DKO2|>2WyDFUySWZK`szzCojK|~EabvX{Ya?m9-A+;r$uI=y zK`31jl}iv2Woar%CXQEB_?Q$`B{_m?ak+rpp*jr)Em8KBo>w@UO%zem>;OeF!9_{B znj(vd1U{>YcEm!-p$R-GhQzQKQ5B%0i|V57vMMX>@+2vry!E%nRM)8LYhRTc~Y|EQb<+E z0p`kjVj`!?F~2N_T&Y#om_dkpJld+V;-6bDMFcsnR60mllB;(vn&{hj1IC`b5WIFOsK25E-|L$l>-zdd5Ny% z+6r4Uj*yhR)S_HW5w(TnG-Os%_S(!|dYUFToMf&wTv&9`mi%Gn+H=FqhJf|jpo{5~ z?XccKYP&*6Dx68GwQz#@<0;BTTUb6HTOUzWF2alTUKePnmL!4Y7>n5=1S!I3GFpkC z(L@tA(aI1effi|s32-LHmRxd$^4wU{p}jKSp=~Q5bZQ3{WFCai@iW>@f?yFTg5w#1 zplOjK>_*B&*i1GqUA?U;?(Fl`+`@79*9Za9#o7DQc6+ z1DrhxY<|kfQa0ACodkIuCf66DoWl7ul?vpB$G3BlHc@bqnc-v_;1T^V7j0_0U<%B? zU$nyW_y3@1sZthhf|-qV;-=})esHm1!v#A4m)z*UMn9n~w_H;FTeO2Y)RF9Ow@~0k z(%O4kn(v0C8_?2xH!RI5*F_}N#iX-A&3P*AS7GWGOf$HF5nUFu*=TlcEA4S7QFn<*#EbEJi-Qsv!hB+so>E4YyX_fTZ^CThZwmOXIp z<(J%y?qyUcmYxIxf;M$rXg-iv#{~gFn>sEuAIPiYf`Fh+9T%DpbM{vXj8|9<^y?kTo4enspCTPfxJ2{2ngELaiRG@UL6+%1a0cL(0m}Tjtc^UHg#NR zK9E<(1pz^uIxaLH$gAUmfS^qs7n%>`)p0>U(58+H%?I-8xF8^CQ^$qo19^2^5D>Jf z<3jU+ygDuj2-?(fq4_{w9Tx-yZR)ttd?2rm3j%^RbzEpZkXOeA0YRHOE;Jv=tK))z zpiLbYnh)gFaX~=PCK6Xg?y+Ps0-i;VgNKfPedyLc@W3+8*ERVtta~|zJ==$2cmDxC ze~)1u6o%bs#V~dchRu^-cxq@BhLsxYy*2*CrCXO*?7TwFo!MH0zuQ0WyXIxBb)5s| z_Gu;Y<}c1L%o?A06dS2IH&?oFsD5wn-g;*9=trJY`=0;%V%wFIc<=R&W#7Q?J?HDE zmwx)I?&$~TTt8TYC%+ozY%lj_zaB1oscFZ@&oKP1uRQZa`I6CnyT_`^KDz2Dr@!4$ z`QCwNb6{Orz`wTI*DYu9)W IuWa4%PwE-##sB~S literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/16_green.png b/apps/python/F12020Leaderboard/ui/16_green.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2918b40286c8304bc845023a44281519aacfc9 GIT binary patch literal 16305 zcmeI3dvFuS9mmf$1oJSaX{iaO9a%Vq5TEX$lOlR#gr26cvlbOfj=biL_9R-EOC7mSR~F z_8_BOAytTzq3HZ%kkL3U5EUbGSe2EKL5nN+ln%AZXw(v=UL*4ghEs_`(Ghl#A{7_H z6l0>PTp~$KX~G?mKw@Z;NPz$df{+@8Iwq$s+^VQbv{e}=Wy(EnVptQ8CzU(rc!R;5 zsiW%BPKaOxX-;L-+Z6`Xau8KIA|hDY38ykY*X&iTB+WDK*g;$#N2Ym_vcytI zR>%S8%GXAKpehlsq6D1DRn{z$4UT!IRmEX~p+ zT?zlZEX#8io}=&1&?h?~a*ra({;n)J!+2SS=WIN~j>t1Qp>lZDNP;T-s{onZGD1iq z?^hy0L3PSOp#@OkP>X{~H)ixqEhD~G2`CXbBH%PTs9eoCRbCKR?-IH|B$`nUSd_#i zxG79vrgEu<>r=t@dmo2g4r)1-%!$W<={fs?7s9A>&bJ zmp;*s>K&A}D+J{1nIv1YCzv^&oLsbp8{Cmn~0^btJS)5j(VP1%^)Uz>*@u@M(T#iSgOZRv#&d ztVA*l5JqC)3?R{=X?wX>Cek>n)7PWmjI1m6T7$@*-5E6dq@m1cUh!Wjibr>IRP z190jjuz6`SPuqBlb`oTC7+;@_asubmL@JOTp4cjcT7cxFMu#)nfR5;Yxo8vH1(RU@ z{i0=`zyAkCOO`Tw6CB-G$8MSq?FSbRH(a;_2#JjjZuDc?(#s{;zezio109L}_DUMQ zC`Nl9k!HG4X)|7$=|-h#SRZo?N?#)7fd6(fdS4+i^XhlP-ru%XprL| z(BzWgkr~ytek;tB(4dZ-!sZMi{LPdWW;jNK$x>z9Y9!9BWGlRpf%i~U>LzN;k(N4e zZseErjBaF9B$l280fIMmTzEc+SI30_!J9fRJRiiX<3fPoO&u4W58~BvAwck^jtkER z@#?q`Ab3;9h3A8KbzBG#ys6{D^Fh2iE(8eP)N$eYAYL680t9dBxbS=suZ{}=f;V+s zcs__%$AtjFn>sE$AH=KULV(~+9T%Pt;?;2>K=7uH3(p7f>bMXfcvHuP=Yx24TnG@n zspG=)LA*LH1PI>LapCzOUL6+#1aIoN@O%)jjtc>TH+5WiK8RPxg#f{uIxajP#H-^% zfZ$CX7oHE|)o~#}@Fo`5wDe=iAOxR9j=_hHH{QHffDbGiME7zJL3H0r5WNo(#PD_a zd7dCTXo478Nf7+g1W}@Fxc|^Hg2->Hb1nA9PkwZ2$0KKJ=1lo`_0hdc0+Y&SHAvsz z<$iwcVwcM`Z|BoP+Y4jGfBgJM(|;EfU)?x(tn&Er%oj(Vv-?Y=g&%gU3BXQLyni;76#ru z%MD(reeXwN@PQ*csgnM;1@{ja@zlQOf8YLW>A@k#f}RsEy#I@(9dA52P}F{28GJPF z;G7p$?cH#T+_9;#=fXF3-M44%pAY0SZ~pc2`Ld%Q%cjyj`%V?LcFude)b{IxpKfjo zfAOU)yH9XW6$QWQy&N07y7AEK9_tnQ#I^c+54RVrTlU%N(?`GEa{=6RB{q2Px>X#*{r1x*x9=P5+R?2TP8amCCyR}fmD4Zh zz2!ZzrE~V3Q_IUA-PsbElRv=KbZz^|^vPfNL%5(}%~M|1^0%fsd5!pA?^{LbO4uWe%5-+FN{*w*X4w0YZ> z-M7E?^Fx1|`pLHzNp}CtlC3WWi!bz=4xf9uO1QY~o|6am@4v67Z{EY)$>N=tp8L&% z{m*U*R~MEHBnmaKet5d!I}aAPpIbqk|9e5r(6!HP=*e5ppZV^&e~5WYH?2K4qvmoK zY|C%ps@I;o|IA9Fe7L%7m?|6o+4^gH*I$dySulH6ezN4R7_UzuK78cOi|^m|%L?tG O`nsj{uI)=!uK6e1@D2h1 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/16_red.png b/apps/python/F12020Leaderboard/ui/16_red.png new file mode 100644 index 0000000000000000000000000000000000000000..270c41310aa17e3a034c763a442668dd88e2a2e8 GIT binary patch literal 16286 zcmeI3e{dA#8OJw~#26ZeIzd|{<9U`EDx3Xrzt_u=aCd1kaxo-lNwjG8cK34I+})nL z8}5?SPO6MhA~aI56_cVjgdhp*+QViZV?reV_ zeB2VNZ&NUA)^D``g7x>!x)Z~kZ;1X@wbi$n;iO0v%S!>FDiMi+-oUpo5o5VdK{W(~ z4l!D7ys+<}(IE2G#-$b?>5I9AkXYX%3oSj3ey*pJbMVH6u2N@$0RbX{${G@pa8zLu z)y8C827K3=38Nv|MeVFM)@lh2t-dCMTapEXrOJwPl*w+eIjSg&!%mwQ7-*8R5~PEm z%s5Fgq=O+T!^F$zDh1!1G9P4`J#`c5fK_b_scMWNh<91en{37W=1 z4_xVvs%!#}D)*#QynADNar#%`@%Tg@ibbO!K5<$*GX4 zkP}=h7N$%nJ_sZNmGC-GviJ4a4Yewt#;c7`@h$g?`Za*slNiNYv zY)5YEq$4aQms*UK6+xRw)yB!0lwOV(yisT5~Tjdpvo$XcNolV;Z80%0@Y%!Q%oARielf(Pto zGtSy*2X3(kcn57Vnd~-pGDV&+Q&QE73Ru?N5Pz*GEyClut=Buhk{cewa@rx_;r*)P}>0}$F=N^si?U! zIDGzFCFBR?DcERf{TJHJ#e^9j4`pew}CpXrqo2FCy z!Nq_L7wiCRa-#zq{gk%MbV>DZ)eh!xSF*puN`eaOcflNsa?8qx@%Mya$ zOc`O8V?vlJRo1OW^4vz9Re#uJf<3jU+ygDuj2-?(fq4_{w9Tx-yZR)ttd?2rm3j%^RbzEpZ zkXOeA0YRHOE;Jv=tK))zpiLbYnh)gFaX~=Prj85E2lDE;ARuT{$A#ttd39V65VWb| zLi2&VIxYwZ+SGBO`9NMB7X$=t>bTH+Ag_)K0)jSmTxdR!SH}ebL7O@*G#|*T-9unD1fO?b5o(-m1f} z!qx^)tv~VJM}MZ)ZY9f$+aKr;dc7l0f3awFWo6|+ER9;FpFC@P!#ZQ#=ihv6eA%rpJZSyr?w3n~x2-1DMRwR)xN-T6anM$a8Pu%vHo+iw?@bbe|6*mHl` zTKm;^)?IEm^dfn7{e}3~+>b1OeB9BuV)p(^`+r>z#LMPhJbE!&H};E~MJ3;ObU|_1 zrmoq~6ka4Zw`^4Ay=0BN{@2^SuPpgo?_s9onb9M{rZ3!ee}81__P>#P#~U9R`tc9X zx;MO5efYxr3G#@mp{`=bcW&A-)V%(=V{MhQikOk^53XFE`<20hHN!XETXt!G>(_tx zv0S|UfFBzu3f<|&=z_9_dGn;L+m%;M_isKQJ~TiGw-{PZ)V6!%TSFsPUO$hwe6#m* z;2*;^+iu=9GO%sUlkt%&*skMUuPuA4t#JO9y56;I#hd?xt=YM5V|mjPZy8EePHLF+I*gvj*ckjJF=-;w4WUerNruf6&v&Vk9`JaGHxO=g{9t0qZP$9o~z} literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/17.png b/apps/python/F12020Leaderboard/ui/17.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8e0b86a7407a5224c7efefdd0c938b89c7ca80 GIT binary patch literal 16200 zcmeI3eQXow9mg*;*HIKz-xdmX!tW6LZ<{$CUY{H7 z`7`{Ql?rVzDQeDf`@iOU%jYbhDBn@NtJ~@hKPan4qEXR|2x!bEQm{7kt<0trwGUWy z1jO{D-!cB$>keAi{EqdmFc(g>fL=W`mm}T2$@~K2S&pEx)7JvQje3W-^(^jI+^5$5>vHB$g9cL117F z#vDjmN|s5Q_vV94#0dgZP3tL3H$FPnx?WK4iX?~nNY`9)unn3%P@P5DN+{QQznLE5)K!0S8Z=1Q8l$` zwQhz83P`Ie&8~qIU^{_n^ruzOx*2xm-fF$K^k`{tDk9mQDccUR`V=zTlb7YDLVkpN zu&;7U8Yq^L?lO#cAV162OdzCNTI^Znp_i`LlbVq+m-$#!QX214G!RrQ5D++lV>mbb z>keCAvz9 zRhCXT;(BhWrIfS@?1|)eOw6R>+AJYshPzPsNQaLHGQre z)%#d`SBUGCJ;|3=cCfrXRk_#`D;$>FlBT63RnQg;z=B3y*JLgNc;4d{7?0@I7~U&J z7%3`x7>}Y#f~07?>f&-!u2NoVYaw*dQ2Xs|1%}S=z?z}L@FjjO)$LUyQ8%Ng0!+jM zg^`?`$aqDs5^+W%8sPYeL}kGyCF)4)@PJU_Wp(VnXm($sE&w#i!$efU#YDWK$S58` zVqD&cCJ9cb)9XIjfTE^NYYR4aW#9Yw z{Al<%cgOUe)uEp}Ipfn?=++(eLd%^^M|KGf!CQ9UEHpi$H8;Qi$9i#P{pqjno44fE z#a~|S7#vyjSZ4H3=HlhlPHA6|zHMk`aJY8pkZWd;o_6~aO|=fYr110f7c~Rp?_9px zBVXA6!;_Lnj>bQ!J9pW?w=?$B6|1}ZmiX756`wxw)Y#dJwc}U$p}n1_H+HN#a>wq@ zy4G(kocF=_`tuE;Wse{F=w~;*{M-F2etB%~KU**CPyGHJUOjVHgRkYR_}1^<{P4(} zyHlT!eDHSDnU7uuq18vvjXAc^gEv zdi$ySpFjBPhS0Ol$c2*&-j-&Je6i*M9291E1ZzNB;7OZ!b57=k`7KkL~-+WAC1L=7rg2py|xe`8Qhr zzIFS7M_)X+@#;%V+wkn)_^wcGe>=W&w)tLD=UBs)WwHB*-|YyjUCEtT_@hJJpC7n& z@!^L4O%H#Tq8HH@XZHW)*(ICk@t-Q!-P>B*gNIi2?D!Y>chGGB literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/17_green.png b/apps/python/F12020Leaderboard/ui/17_green.png new file mode 100644 index 0000000000000000000000000000000000000000..5d43b77f0c7e1026eba8976333581e091a154b87 GIT binary patch literal 16246 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/18_red.png b/apps/python/F12020Leaderboard/ui/18_red.png new file mode 100644 index 0000000000000000000000000000000000000000..81b6be4fd902027d1234576bbff9adead42c3514 GIT binary patch literal 16357 zcmeI3dvFuS9mmfE2yx59QxDG&A0h;&#E7HXe^$%15fcc)aYU}FR;%5!cv0~e2$JFf1rdJ`_J+Rck)R+h0V?SMUO7-` zxbegCer5SZIsUL`g!5$%#;x-;7m;b8zjPz5sL_XWayq|gwJ z%fs(lGi@NFUDPFoh8bEyvf5oi7Aqk@nhPwH$Qo^=)n34w?KaNz1j#Y1g=XwDYoZvI zXY4$~l6^0OGaG($grqvY(lxU$9kdD!^{N`=X}Ynov7pgdpoF|MYq#5JhNC%-f<35k zQ$Q6WR3JP#79<|W1;S!T4yv*eAho!HM`=(C4F)Yy;?*}Ve=w0K5bk3KDbf)kNV5eD zok=8#2~DseF?Coi zSq2gGAO~y*ea`tBP5H9wN+&$^XJO}Nofo}?x0agvfjyPz$K`_$uS&5F&6k& z#c{mJ%$u0n6n(4{B6lm2T-TH)XW1%_~rHILc@= zSt!86y2bL5OhEMXdctpUmc7_r}PNG;A z2$bE(m?)dcCU}e{iMna%Re7GnpvC z%GoKi%_G@4qtR%y3h@*f!t_g3Du>}^-GuPhiZT~0O>g~A*H?7I;{{PW1e~I_j{t}} ztu;BUjSKHW6>7DW9`3bIdc``axHe9^4- z-X~3UqtY6@G}VntlgfDkS#@%K*^uTGmG-MJ_6ue%ynz8ui`i^6J7}~SRaD3k;H!4Y z@W>2nTfY@%ifT|tMqy2g5dLOL3R4_?!dR(NZZ)FkR;(4?$iRCjI&l-#??_7=IQR2Q zaz^(vDiTXif&jsrIxajP#H-^%fZ$CX7oHE|)o~#}@TQIn&j<19xDX(CQ^$qpgLrjZ z2oSufbUTH5U-940fIMmTzEc+SI30_!J9fRJRiiX<3fPoO&u4W58~BvAwck^ zjtkER@#?q`Ab1mtD?9mEG6=wDksIMd$9w+rQa*fOnG{Pa-2~A*g&^QY8?^F_H22A_HJU^d6G?CU$T9vEHC zt&_g|k!wwD>$FS5<}7{X@j%Xy_=&<{o8{-8+J1HGNFblQw%B|=@7(qi zxt)&;SM#6Qu=Ds9_txJ1dmmdBS@7C#a#p`p(=q#nwVhvYT6%Ju>GI5VKfbwnc(>yN zw)EAvul!_AWZ{{H_m;Q5UbAXv{^tu?M-Hu>`oW{NP1ciZP2;<(=N&GaE2@nQ>(MCj_!1CE$8w&4@@3QUf6!| za??I~OQ4{ADm#`uxAns}OW&YIcb4_uIzMslpvMj0efLfGg|@ER?_V50`r)&C+7Gpa zaw{kQ?Dn&z6)@|^@9tG@m3;PV;deyO)iaN|54H4O9J*!C7UxS--l|-@%{zZ$_Mqcm z4cWGM{*h;YzMAN|{O!D5{O%23kE4gRUH{eoQwQc0z5Qx;`^x7Ijw|k3Pp<0lop0@| zY#eTSW8{PbC&mqaF)$|B-E(~Z-u90x4?breMlP7Mpo6{f!tW&@Iq%}G9g9|~`#N&vR}Nozy1Be9ysK-$rS*q4oVhkG_w40y^QTR@(fer= z6R}^noVYT5+p#kX>eA+{NwGE3M)o!mn+hLZzW0wgH?#-w N%Sy^!?N2UR{ZGsrC$|6q literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/19.png b/apps/python/F12020Leaderboard/ui/19.png new file mode 100644 index 0000000000000000000000000000000000000000..a94f0a77db2c05ab2372284098c87930e5e928ad GIT binary patch literal 16249 zcmeI3e{d9M8ON8HXh;W&Gf+}-m&@ArA$_w&5_zPo?i-lmP8FD?0O2|*C0jSZe=_}Kve8;d^)-$%yU z-hv;CBMq%8K`i;X{=evvHA|Keglk;(wP-Egdw5X^)d-T}2Q{%!1ono$yJHbS>;#(0 z58CB$t@*v@PMA%yRBPUB^U~f(J?M}d`l4V{-$tL<*C}$6`EGZKE5^eBA)pDSSST1) z`B<$v9+!vT^=8U!ig(dEYt40fLQ{*k$yBdIfyq{5Cq>5MG$#>P2W>*q`?&DbfL zqZlhmGd#`lG-FD>%CaJQlmuMDTd=Xie@R6 zC1DRz?G0-}j0~$Q5>>wsDAk#ewS$ruZ zD&&H5XZ8v^g30KB4FHLAkbaT1k$$Ju zN(v5^BW+H<#IY8O#pw`IDe{Dwm#RTl;bq;6@Yjp732e`8{cqP-e8b}fQ9lISqP~v+ z$wlR~W`>nnR*4Ss{BqtHf_d_VbM$n8@B;f#B1*i&!g^H+Xgxv{)V0IKaU;89B5JM- z4WIwYxG6PIh3=160giEStUVx-R!QJUzs)MaH^EP`erEt)R8GI$LZ>R6RX}u#`ed>I zr%wW>kGAl%leg(7K~{%_^|>f-;C#A~3S@>Sb_n5iAi1g3a8eEEi2kRGc0;>h0?dD2 zwA}Oe|Db4zQs!=gsf~61rs>jexOlkX!W}?}Z**{@pVyXIE{Xmv`oSFRiudR2G<;Ev z{+^U(yHRN?UYhMjr5WXYVOevt$!th-mP)@XOx(e2f)6mjZMWGhHW!69qlzXu27)af z86KIczV$m`rnm-mI658^d& zAwck^feX(E@fx@gAb8Wjh3A8K4O|EiylLRV^Fh1@E(8ePG;rbhAYKC(0t9awxbS=s zuYn5zf;SCZcs_{Nz=Z(8n+7gCAH-|mLV(~+0~ekT;x%v~K=7u43(p7f8n_T3c+1LA(Yo1PIG*Zuz36QkVdvCwjJLv?NCx0*}5zq!02`r3Ep z16%25x}CF?w>DH4b^awVd~~wq%WH;C_4@~vk&m|j@rCD){(8&3?waXq=iE)6Gjm`4 z+gR{Gz&oS8TQxEF(bkj4q@}y--(5$P4b{%_6;+dm$@iyc?l>{Fe{1md7q3<>>$v~; z#IqeMPro@deXXy5ka( zFRXg``k@!6i#od2KJ&_-hCaNqw))WJ=mTq4tn4HQCQk2KU$}MhXG_&z9=z}NGvz-V z-S1v@_`MwkuX>k_^pV|K^ogrq-#hzMfA>#jc_@7D7nk0dsjA$&|ItrB*)sV?>22b! zJF(yncz0kIo(c;*pAm&ToufGMQIh zzvcYQwp1C8uqPH_QU`H literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/19_green.png b/apps/python/F12020Leaderboard/ui/19_green.png new file mode 100644 index 0000000000000000000000000000000000000000..481d191322b0380ff6c91ec7b3b1e88c2854e5f9 GIT binary patch literal 16312 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/1_red.png b/apps/python/F12020Leaderboard/ui/1_red.png new file mode 100644 index 0000000000000000000000000000000000000000..29340df374ee51896dd434d75c720360867c7917 GIT binary patch literal 15975 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 H|L%VPS~Ws| literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/20_green.png b/apps/python/F12020Leaderboard/ui/20_green.png new file mode 100644 index 0000000000000000000000000000000000000000..ac63c88cb1ad04ef5e59a56f2ea2b31c3e04c567 GIT binary patch literal 16484 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/20_red.png b/apps/python/F12020Leaderboard/ui/20_red.png new file mode 100644 index 0000000000000000000000000000000000000000..905d9c6e076fd83b1ebbb753dcfa391e88cfb2b8 GIT binary patch literal 2593 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 AzW@LL literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/21.png b/apps/python/F12020Leaderboard/ui/21.png new file mode 100644 index 0000000000000000000000000000000000000000..3b086b3d25b8c1a894470c695a4ea67d80a0a9ee GIT binary patch literal 4030 zcmc&%3se->8D6T0_(;*D#zsAkV?+}f=CLz74_y^m&F-lz2phylEO%#Smyz9_b#{Qo zqts$Z18qc&3BjmMH7T(ch>4+%IfPlv%4&4pwP!@ z_w3Hj-2eUm-~Zn`)j7^bMvr)4gvn$Y?XcT&;lCaJ9K(mf>&|_J=ipy*(7rTeGTrm8 z@k@AS<~yXTv%>;Z;FooPg#EriNC;ceh+YBS8_PI~ zL|F7#L<+KUkW5vR5hmS&i6l)SET2wV2%e(T5Q-pKoM3U%j1iNxoh12DB&S#cYE`r`M;O@#CXr7(1pBltMSBc1IJ^bLF0V4niEV$Axvp(~qn{xg#h!tn|ZbP~xmXAyboqu4*n-^>t$> zr#p*CW@ZE{$c!aQKvK&>4;f*^WMmuAWh+V%6oC;I_;pc~Kr;eOEQ@kwsgmL;@6E+x z6z3w%0>KNUWhMb{h!`uxump54AhRS29#!)LSOLWkyfPjPcu^!?S0PjNsTwp49WzH% zXJrYFKu8AxQFhp@DD*yEQ6zyiGZx;%u$WAdB*vL(5#xErgNXzy0^pHZj-|WhZK_ye zK+TYkcAcb(P)Cndf*?qOqG*hvSsr8DG=XuHNMmNn%v#KZcyIU{^vA@#QgddGhKW!;$V5fEZ1oX!M3Gp-6OD=>tfED_K;&tVo8%>bqg0 z93j=CmjO-A@WSE_rX7vAjj&dzJjwEu#Uo<01bEEN&=R}=H%7TR4@=RU z8v?gG@Vgx6Tt@410%LUgzv*~PPAmceuMD?89PKw0N!FBJ!32Q@;h;n0SW!_8l*$?` z5#rHQKN24ah^`_a81yM(q(ku1fE3$d;=t(N-hioNMV7R{R>UMXC1C_ZdoVySJWL&s z379tvNA{CCl5|ld%$q=(|0k&%Fcgs|7?NaJOf>U6<{@DyJk63A3uKxkETV-0a1MSG zzI{&ee*p?y?=2-NHy9|y>)q{BZ!kn4FhJD}V8l_y!kI>g39V`;zc}Rf!?*Kb8!%=QC#Y!09%?w78GQcKi!ezn@_JJZ})x#&(X$h`~VLh;;#U501iG49`KW{{PeFT(-6*K z%W#FaUwWQYKbm)6+ih3-tB=%dY230Tb=<<*i}pWwU&uXKmHg@}i}xLWYHh;!We<(~ zZspc@^4>Qsno`wRbCGmA_Wn(H;fan}U+uVZcKpp-FHQ(MzF1jt&N|tfmok5S@@MVK zr*A4LNJ$up7G?}hd$MDleRgwQ%Y5Qc7xJxfwnLS}duZzu$Gmda;Cr zdi4+ADV*0-zHVJ3bEdO%+S)VOY3O}Z9$)1<-t}eTDX;CfPsmH%RQ=GpHGrGA>I3<7 z%jMa)-Zb8x{+D0Ad;Th4(~3TOR6h5{!rfzJE5Ew_H&qJ~-qvPPm%H2A+Ft(C=eb{>Jv-(43a{6jnu|K#O4_k~yM13nL&N?P$5Kl& zYHMp1y#7g7;?1{fOW(v=v$L~LESfrQPx3Zr12=bWTM_+H&GKif-20x(f8fgElEA%n z8*YbpPT%%>&xO?HGhJPD^Qx(e=}7C!#Kp5NI~!iR`f(EWUddyf6`x(ZaBWTXDbAkZ z;uBIfeqyT_cA~Rm=$_J+<{!bta1*!PnErT5(u0s0EIqaIsAIwTL~Pv1#d}Ypt@QI* zd2K0U>&Mxid3w*Bdl#f8Hs;Sf%Q;uAORf1`@~%%W?*72Gna|kaoPG^be?GK)XT#P{ z4m4H2Sc+m9%O>Zms`}D%pC6b}cU1U6#j&Df=dic_``m|ls zikjK;l=IIUKHdCrd%My;>Euhfdpa&$xX}4}*H`bq{pGg84~HP3U*zw-@^oIw7lp+Q z8`HOJ?63f;e*E_jw_LjQSnJfmn-sYq(PIjU;n`ox4o_nUr}~Y^=d)gR!toL;G#`m+bf($imR2wJz%|U8vE4!76|gu P#v8U{fz#GBzp(NjurGKI literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/21_green.png b/apps/python/F12020Leaderboard/ui/21_green.png new file mode 100644 index 0000000000000000000000000000000000000000..69f3fbb807fcde50956a4ed55db61931e641e6dd GIT binary patch literal 4113 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 Boj3ph literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/21_red.png b/apps/python/F12020Leaderboard/ui/21_red.png new file mode 100644 index 0000000000000000000000000000000000000000..1d266116fbea3fb40bd58b1445a146964ae47b04 GIT binary patch literal 4097 zcmcgv3sh6*9goVag6|?ean~plDwq36ZjyUvDv>CpN>AY+wHqa2-v}3&z$5wzW@9G z|NZ~pmkqi0%)zl^V>KGhU|W`T9=vD4pKU;Yczvaz==bn8(3iDP)@X*DRDXT8O&u~$ zqZyPcI-H6#dk(`%o;1KqtdJJ;_#n4NGi`d%2e?u}L0F+!^qRG;hmUI!kvD7escbyk zmm!phS6?g;%AVH7YD>Ff}Hl&w<&+0O!MM5k}sab1L z4I<9$TqHyC3ka2FKsiEBB1SrmFyJ()Pen+aFk-k7BXlTEFt~xy(MaT@h1UGMipSCBnmlDxx%Y}AnKJTwQH~nGUpe4iYR#z zRU=@fGR3Tgo`ys4_@ZjPawJVKVOS9OFd_|CLkcnST$ImO=68pT^Bg9)1&`oWWXMZI zd3`04BFQCEH>#uL#|*&KW@krjbm@!76Ez_#Gs|HZk%V-~EjucF0ya;Or7}M!%q)j) zPHK-vR^|yE`Rs)_WRD6fqN^KOmGW3nLQw36Ri#8(eN2X50E*;yNRqo9JGt#yL^3i$ zSV5BWMK3P}TzbieT1~IEkaU0e&4M$>=FYj~9fwvL#-0RdnVuqNK?|=op-4 zbo!|{e83~D5W_rBK#$Bk$G9ZF2fzx59#AY`K5wxWiPn|Lkld0V8itPPLaMW~8JkyD zfR__&RgPId@rjkv8D) zgAwXALSNVey@Nd8E5a0$T0})lIIDSZaKW@1C`v~~)^o+6;C5O?m>oIfh_PKFL|NFG zqEqKWN6H*RP?-ZN1iu^^I5R+TK-V3-{WLIhPyh=4&^Or0`eHCPAV zV}?Sl&SZ%)M0`cWT%NGB!*Hm(8Nh{8$f>;{@LD9iEOr5;-jysYA1D!EvAS-UFo!I; zlmPGxmSR}k-n63{w;DFg+2gLup!}aZP7_9&G`Kia&jT7|DLoG_fJI5xyl@x!e<^v4H8FO^-n+T6iA?;?m^%yl7Cw{G z+~l1x{BG`R=l9IsgEZR*o7IvzJtz95$zIY(vJDnk!hv_FrF360a4n z2z*<4Zs>!`!0`vOuim(kRP*Rca-i?FA#vIwOHAteRo@$4WBuj94I64#9HQQS`{Iq$ zUk{8@4j_FKtS71lIEVG=U=J-K?!cGtjE@CpZ+*fyjyat8Q9|5=Kw#97*5#9{GM~lh zYjq#3e!j5qz>cQcFSl=M$vM9mU!SsT=%mup<{zJ#J>lGq2i#}ZEzTG8AKUG}ea8L6 zZH+abZ%)_F{j>9}Urj!im?&=9HhyN3q4`2pj=k9SWYfcMn(eRi_t&Otr03W1_gCM% zc|`V}zFrg8{~)`o+A{6Vos^W!;bnEz8Al8D16$*}XR1Ht$*JF#x(B`Ya_z>k_pY~0 zTwJ+wK`Q<9v-2ti>4VRH<2rJ?b^ED+J!jK|dkZqE6Hn=x~5I6U{}Ox!p^S+=y#<|3IezQ%hq!p?(wgzMTW^0nLQyLB->pA<{);Q6Zb#Dkl}FMc zum+hI?o-ZIzEiNdGt|x^S8^J54{CfaHty`7^5S{Rm}48OQj?n`&Fs23c$YP|;C(=_ zdRorV6IIvx1n1vgS1|J3enlfr=rp6&dM|!6B{;J2N3V@yjjOP%?OW?+9X{~=lYITB hBk~4y;P_F$HGQ7kvh$U%7pZ^JZ8PoG{WFTH{tljElI#Eg literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/22.png b/apps/python/F12020Leaderboard/ui/22.png new file mode 100644 index 0000000000000000000000000000000000000000..1b36287a2910c09d1dea11a0bd65ea08cf9b3a29 GIT binary patch literal 3940 zcmcgv32+nF85RUmLV!T(0_JEp0;X>8Y7c3(+66;}Ww3)~8(YS9N*dnozO@%5t=L`J zvY{@~a3uz&9BFV!!{OL26bvp5t<4Y^8j=o$5RNp{P+STv3^By*^cd2Vq;DlzHmzN| zr$$=szW@IJ@BiQ17Yp(hj2<~@q{U(xos;b;ME}|7mowr~bbY;b=?(PvSSY(pw^+u! zW&Vb|Jaf!si)B>0;wv>uy}7)o25dl51!#)|LWtX9nLRfW0^)LLU;->xf*IDX<0q|{ zB4t=h7%%A!Wx@(2yGDaWHF-XR`R$*udULy#zhx*FC* zm{p0~oYozUZWO|vd=5e!u_uKMMeaw|q&yT9j41uEnv^7Kh|km@FjUQ_s{U^56m(}1 z%gl^n1xqVYf|6RLf6WXdApfT%|PP=@R zohLb-am^&r4Vhp?7?ywm24t2*URJdLKow8|pd1pRV7V1b)|Jmx{i=oxBggD9)m|^3 z6Vwe56k(1h!-~AODT>5%46r*GAmdIaYsUfUfH-il3{KLJb&`_gaLS-t-lK|P6KbY> zyz3-YL^^t`ioi*dv;=Y4;d0;rAZ>!vMdFOi$S%quk&NK%)|Rg+sPTcnw^q|D327u{ z211EraY3XRTyQy%GM46W#wAD`ZMWN9Eb_{%HILLFmw?$_8CEK>SZZRuw&1@f3Pp9VQ8k{_PEzI#y&UCu&7p5@-o08HbD}2*aV&0Z5{}IbBpg zsiP<#O`*K;l>Psbx&cE0jFS@}BjPj!XlRjUC}=d|94C=9%`%V@xb7PFhHsyf{9k~A ztM`@?mm3TelJ)NPsW%v65E!89CNPpH=^p}vhunY1-hg!)+l9Hy}Q$92A?`O zeMg||-C^0;-WdszC0 z>*0APTAGi&ExxcIxwd-vxWm}c@t#xB5j~8t#i%bjvOMvT6s8H(aU~xwe`bKR<-z>GMLx~LF}VtkvY32e5u&iG|Ao4`ONx1 zpL|DaJ2$y#zT6i5{+`ia-_ewF?TI_*((~Wb+NP^1B|j+s?%ad)kqBZQ`4e(`e)Cqk z?u#kIUYNLPe*Vs*=?m9@9gT~gt3NYh@4Cv1of}V|TNSmvQb&4=?(hvR`*Cdl#l0V- zdh35N{QPZwM(4&`=ls#rn)|P9z^R95kIj=~`s?tIUs^fweZ9eahqmNo<#}4>Esg#SKqXko literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/22_green.png b/apps/python/F12020Leaderboard/ui/22_green.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9748f73439a3343c0a3571c3bd3283f6daee7c GIT binary patch literal 4034 zcmcgv3se->8D3w}1flT(K4~VS@hCd%Ja%?xCae@$C@8B4YXYQN@6OzXsk=Ly-C0=B zlPErFNPHb12`D~Ki9#^3ipTnhh9t*Fs>a6DV_Of#8nvl_iLs%HIrh%(vOo)kKKJa- z&fNd~|KI=LJFjHV{&DmZW1rCJbkUg^mK^k-fqt1o9z)md2NvEye~)`I@_jm8%m>=9 z-{z??<8->A(_~wonrF=tM8%Z|B*hLB11=BZ*6EUx10EnQf+}W*g|gd>w;nr*W3pt% zpJ%P4)sqT~G)*85!dL26L4a`kCbVm?K%eN9 zJ*up@F-;?|D}L3CBTqvixI7WHZeKV}C}H{l@aU;TQVS`_D2Wk1kKgMI8ka;pbV3(& zt3Jd_MR+|$imLdElpa(^$XyJe)LN|(8{PWiaz#w|)U;w0MmQnea{Fwh9;nZOKE>}9 zVOlYAb3%JGJ~an+{#%8njnHAw=;c7Z~u_qYpjEK*k?RdFg_WEeTd1XWwD zLZ;iN0=Eb=EoK~fpD4?cU~m{D8Uj1v02Czbw821d3<*#>Fr2|ei4rTC+T|^Z=+~g8 z$%nd5QbeSq!>WS^fCP{wjFQ9?z;56PPP;HHPf;w-+ZhMdu5FH2MvV`gowaISNk}8< zU?G%v6JZx=mauckD`28|g5~TIPcsa|nE;MywHA;XH3dRGx2o5Sjju{sfcQN#$5@8On z;=&>$0aFzWcsx#740edV*e!*3mw%2RwOrnW0qE;j%J1r3;Yj6;NWOFh9=2;RZ5gu!m)3=pskbaWd^x0C!| zfCATfO9{#K1qzXRx8tre7=jS!rRo|mA}Hw@0)2V{^h z{_n?Y=-CqL-*l}*gU27CyFuDlB%fcD>Bc4U^L?F?;_2*5KeK~WG89A`2SlE_dT zaL|%SqWwMOjq;!F$dS#b(~-A*KSJkd?KX0NM-P!#0O&@8&x;QD2S54fh)y>kDbtc- z3v6rNnp`wu?)cLuFKw#HYp7XMpE0grpZqlb;Ns57t2b5)es!e4y^*%pHvWUO!LMRN zW{i3-CjRo2@~zm+J!jYNj<&ua4ykb2KOL#Bc_t?1lUobEJ+`3r+OvOZJ@|Ra;HIZ` z9RKF4mid29*gSLL&km;g2h9HYpkeP|{o^dB%7^@6_l+OjXgvH-UK|%_sonqO5PV_E zz-gnAKW^Ed{`Ix!D)-RIFE9S^a>f4bqi5Y{ zTeD~FnUS9jKf!JC->ijEf%uB+w{L!{+}q)LK;_})dKsfM7nSFx_7TcH#ZDa{<3q?$E|Hyvj)vg9j9CJ{erJ!;t$^)lT};;%WqA}dE@Bx z`S;7Jo7TL$0sGyB!v(SOtXo?KY4Sr)ueg}>@&>BkxXgTTc~PNzma zTBUMg{)oXB8aCW!66k&#%i|hqj+bb%j?ag}Z)QUU(qY_5+$C8%XQ%=QS9&Oe|9sR+= zz@Bl3>vm3DnxcEX-&<~VPxGU?U90hPQC~i*o0Gjgr*REn8}DN^jm6dWRUiV+^5ozD WbRB)VIMAZKWoM?%w(Os=u>5bn5R2CU literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/22_red.png b/apps/python/F12020Leaderboard/ui/22_red.png new file mode 100644 index 0000000000000000000000000000000000000000..8a19e923ceb5af3805d9118a20e443bb7452a308 GIT binary patch literal 4018 zcmc&%3s4mI89#glB~htF1+A{jSVLiNU$?t=TTgr3K>&deI2CPc+{gc5*x;ll>3{Ez16wGx&7?PX z`}lv~|9k$v@B81XlH#YI7?n24WHLRGpXVxt_dNK^PaFZSTMjI~0dFG%c?*Ij)9B;I zFJWEg=t(Bi<5`NkTrV#w*FsscJ9f(pfNNADdzf+C7+ zN9Qv|L{Y#ADwVvY8Yo*@?3R{RNj4dsJqwu`=Ai%|&;=yy^ZJ8)*p5cz^6=SM#!)1~ zqF32bhoKNDFDgNtss<3o%wiI0p%BhyCRxHpS+Wp{AUT}iaFWIdk|$W6wjr?(3bkpn zhc9*I#&p3qJ6fsh0UpOgp^!O5n^mm>Cv7$xPEa^SVUPn0*7|iJjQNA<-4a|NC}~PS zS5!Y@NEAf1TDPOn(x?l*KwPXp7z+~&7#m!uHCUUO2eBQp$2aSWr=PtB$;Yq&td; z(;2}E^3;6AFRP(ohT%qR4{!-Ou%i?~5g5V3ubZNH3&UH8g;A~|RaQK;y}3Ayvbsr{ zCkgn?Bxs%>VyqCuvY-nCGRqS0Q8k|cGobi{3V;Xv6(|zVEALdjssj zWL1JPdbEn7jTIz;!7Nrm#$?e#LXjRTMpK+fSvd>E32|x9XbLQR!P{G^VU-Le5*`Ks z*~Vd_L@}6XwOBBLqih&s6=fSm)3lWnP{hbJ55+)}1f#m_C>dKUH!$a|jxO3*0)BAP zxW?!U2B7zl=lT^GVhTkJv_zv?1{)U)E6Xr66I(A)!oXYZQebp~5kt7{9TCcc-W1yC z3q2uogRovG)B-ISYdG0LMeNC|^h#)ir&#bANQ1(A1Vjjiln4QbdvT-7M8)7ee2*xK zlsccM1R>&UW9rJlk9!nHs+$+2Xb2^vHh_#G(PgC%APp{M(fy%H0F%{s!9+QNsz(nA z8gNv=;YAQJO0;@7%3>8+8p5Ve z!>w+kbgevNRQi8ucx<0kDflY@9Dg|4uPZXplwQsR1P#JLhsd#`lIpJk8cY%5(NrH2 zZwZL5B0?bGRisFT;5B|ZHeuqx=wIJ}q2nZuWML`7N~dIuU@RU?AQ&4Aod5_JH`Yq_ z6FQP~QzVQVPtxB==mvI$U;x2Lu-V8WgUN(N!fX;vVH{vc(jzf8f`pyxUs2F!C;tzi zVC_9pqWcB|g?PTZZR!n%2m}Vmx&e$hO8SSu;34<*=o>IkgPT|Xk32=XZnTHu|J+`q z@2+V5<{A|mIsWi{HBxSnNQCDh9?stZCNg8CL^yqAOt8@mMv`#STdf?2$r4Rk1rH@l z1ZQB#kf#2x6FEM7dL4PY=Mg+d8;|h=Jba1&1pt27_%wLHFQ)ciF`0&D<+~j2@TN~1 z&d!C;<&m$n8OGTwExF0p)ULK3>T zhwYKYmOrh|T~DRXY`^@g=>aOGWy7^KE5G>S6nK%CezLf6%$NjIa?!EutQF*u=Q<0O zGVkFZ=FZ&c+UYLkFSI4TsMmoQ)XwRV@5Ar`Y=RaNOoktJ9&}nOI`6#<-!Yhpm6&9Q+K=m_Q8{#1s@+AzULz?eCWWm z%bz~{?W)d?<~0Jxj?$5D?MS&g_1jEy1(lL5Rwg>$IJ@Mf`-OArnzs46`1H(i?`+>H zzFBv?J#GA_wI5c`xR{!{@g|AYFKN45ojcEy-Z;GV-o2zr2bY~Wea3ry?bh9UC2BL< zHv5G5&ZP^|va(-NIUCw{|I9v%ZQJB`=Qbvm)m=<_A?b}7LlRC*TK8&3%UWd5hvC2a zLvN33&O4hT6u>xbzUy37n7n>U%Ih;`l%JBlRW}?&-j=f`PY%l(weSx&8)h|>PrK4F zhs{hMcYP}U3dGC&YrA)@zR&IYD!m&)1~hIbcClGas{>Py)!qKdxF;8sY<^}tnzZvT zLyvC1H3Z%#AH~lPA3y9p$Lr^Z?%x_RE&5T7bJwW$1R~*j>he>7JM`s|wAUWI+@8H@ v*q@URW`Nu0eh{8=yiIvO!;{tny$3_HI##=u6<;Yc{#EDa6ub6jFRuFsO0jsN literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/23.png b/apps/python/F12020Leaderboard/ui/23.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a6aff4310b2bcd00f102b90d07dfa6e39bec5d GIT binary patch literal 4176 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 L&o>;JotFPMc>~tI literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/23_green.png b/apps/python/F12020Leaderboard/ui/23_green.png new file mode 100644 index 0000000000000000000000000000000000000000..39b7b9c8a1fde30f1632a39b3a0036d07850ceaa GIT binary patch literal 4365 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/23_red.png b/apps/python/F12020Leaderboard/ui/23_red.png new file mode 100644 index 0000000000000000000000000000000000000000..c76563a006d9d33dbc03c70ff7878602a0de6839 GIT binary patch literal 4361 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/24.png b/apps/python/F12020Leaderboard/ui/24.png new file mode 100644 index 0000000000000000000000000000000000000000..1289ecadf2e86ad969386cdc1df863084680965d GIT binary patch literal 4155 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 mH6FhMl~mI(dZML{_spZ2cY90dp9Bg literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/25.png b/apps/python/F12020Leaderboard/ui/25.png new file mode 100644 index 0000000000000000000000000000000000000000..9e87e4bd465488392c00151d9f42ee16074bc465 GIT binary patch literal 971 zcmV;+12p`JP){cC}~q!%W@&nQ(#ocl2@$v)B&TMA(*W_Z}2L^HW$GrW{&YSmUCqNJcK@dxe#xvYBO>-5y zRMRv@j}MD6WqBZh1du=iNFV_ukN^@$00|_31QI|32_S(4kU#=RAOR$h01`;RN12m) zy&iNr9ZwByZEZm)6moRU!^4B8HtkqnUx#Qk>i!0%1;a3KeaM%h>$+Jkm(6asYi)+X zuQsg(pU0*>2IWKS>go!PkB=c1i^2K%x$5Q}vrr$jySodwx3`NlL5P$OT3cI#TrTIS zp?<#)r>Cb(eW6f*%galtdt@>hh(scu?10JhctYqLT!MZFeUQ~Bv|24GA9R0zACzg+ z_8627F`PMy#UfLGcXy}K3`Z#ULE&&%b(5Y@E>OGOX6iiqgaA=0(96pU93CDr_1oLq zD$Q_&5`l)pA)K9^jiTvhvpI7NXUEOWO%-PNho3V;yfDWujnRaVOeXz*I4`|`Zv^IA^KzkDt!54e z1DPK6r4$MUskbjsf$)Jb3B+Mz_fWZ9&Ne6vQlM$Uj$4R8^Zd*-gLmUURA%ya0(sj0 zBJwl3u0uYbhn<}r>CSlz&U|ipe0=0a?eTcr){pVFzi<)tEczK7*LJ;x!wh>$#?J%^ z+L_5@q-R6vzL;k-4ySp3M%DqV6v@kinInNv96Mp~jgnaND0(vG?*N!Uaz~Jom7LXnQoCvR-c}pX8y-C zVOhjMcuT#qNC||?6mRikU04;oSjx%zQ((#JqQQ@y*VosuzrW8|l1in#S!ea`)>**s zGAD3Tnve0cSgCLG=sOP%4jf&x5&~iVg(1nw$%*6r0q@cWVUnCkBu2gl|EAMv*Y~0y zv%GOq zm-PU>L1R7x03!~NKqJ23!lT{6RUcyb&HM-e{=zs}WlmVtH|Pfd;PAHQK~N+Fkg6aM3qmw+Y15ybc4mLNrSyGCL)p&mOuwCZGjBEpf*=Tj zNLseB8h&Z`!oO6!rCqKbnUC#>X-e`yf;f;M4kU;J3F1J4IFKL?B!~kE;y{8pkRT2u zhyw}YK!P}!L<;$Stbot!(^QegVF8nQhoW=lM;0{I8I6pb49M8GQ>d(vpt*i8c$$ZF zX3U0FJ_IdUNH%c zLH+gb!29-RBAdWPXo#g*Oi)l~(^S#w{3^_K%Vm6M{|M(FoDsUl{+et^x29`q2l&5_ zC_*J|XLF^OR(!21@Tz%08fF3T{nF$zSnQeHtCuw#0c+_V&FxTvp+gLVaz&F{cKp}S zyphdNgyAvBl&Ng0Pc()L@_m=DrAo4} zViRXakpP`2;w}gmgP%G^!)C4kX@w>@+UVL`Mk0utAk3r29)E?YM>EXNaZOWk-7TCG zA+s;%U~zm&sH{2HEKLYnmj${D!o+r>b5cqtqEUX!1&)gc6(_H;t{IEs1_#({@>R*w zO;8}t47Cr#--$J58H_ij*A5#VbH3dFCcR2;IHmfPpo^ebaR&SueC5pw!&kwPU=Q4t zXBN)nL8~BMoIx>V^(Cs)6x^0j-?raUuZaYEc-#eHoEd#M&TIhqXQ%Qe7vxpj6vvrR zlzb7^xg}Q*fv4?#SdxsxA8)K^Z&oY_hZ8RLqQx1t0XQDu3|ZNF40^l!!mf@pVO#{E z9NfcUfinf(F(uQs5ny|;M@PG%JcI?|#uiHs&P>iLMF|hUu{dxl2c{<2agv9SAe_Pn zT0FAjO7?b>6(K?1L9eWfR&^ZLWfRQ^a5qyeLfQPn=wjIam?k8P9E7#iD~gaH+@=Uc zk9}dInCzaC)uj8LbTWc#wP?@ttZr+31>wp$+Ui*i=Q>X^XTdI4k8X7Yz6-V;+5i9m07*qoM6N<$g7DnchyVZp literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/25_red.png b/apps/python/F12020Leaderboard/ui/25_red.png new file mode 100644 index 0000000000000000000000000000000000000000..cee105d0dc768d2948df647f2c51a42627dba8ec GIT binary patch literal 1031 zcmV+i1o-=jP)OZpaQk0Czv7(ECT zJrzMLhy{`O5DU~a71Z)CqWNbj#Wy!}yXW3>&b@bcoBMt+kn7n!XTP2Eo%4O$fFKBh zAPSa4tbuQ|wf!r`x6~1dD102w%}@#l62yT7aUek)NDv1S#DN5HAVC~R5C;;(fdp|N zK^#aB2NJ}=Cemmw9*5ssTZTHScRHcGq(tgD-&R)*^{K|uvNG_MmI}2M67*?t5v~po zn=-hw4hLNH`QS=*HFuDw2M0~*Gn40`5L~XR5^8Jt68pHZ0rw{-p(YxI_w(~scP~v& zW6-5o3_dR}=W+;KgqB!^%?2G_uc3~X;&B*QSy5c?9vOkRt*t`$Xm`8eh+yo{0$-0P zLM_jGy@`iWdgF1pHZ+u2W-0LRpX=*T=X7%Key^bcPE=GF9)}E;E-?(skD8hk*M}H0 zD_^iY2Dv1rcRpabpkJGtifb}4!D=iOgt4ZRah_@@FVE4-=VQrR_h)AZ-p$Q151Y6< ziUjCfk##|M7<@85p0;zPXtdejVPj){8Ob1Pf-sMIHZ=wPDyL;U({zVI!Z{K0VPOGA z*VcsER@v=|4Z-NKz;r>F*uI#aPNWlR^aX>^?)OV4uUhxie4gK*$i4K)GEGn_&UB59 z!RYojvkk_Z+jVu8$DGGAGrNzPnneFHm?B6k&OkDQ?`dwf{1luC&cI`KyKp8CMg{TW z42tQjuh*TXU|GV**l^Zlf-_u3kgo3sVVvokm|zY7lDkt^FbEfXKIu4PCOFQ!v6v!B z{?gLIoXxE72T9K$Tuyk{Q;Rct18_FL9kMqZhJk1_?e4e}iY|94K_~}nI4p3dxLI2( zwQXAgjt6J7+8fG4SP&MrSaNV@x*iDRJOFEP&f|emoz+VrLAZr?FyzS8b_*3DLD8ip z#T0!L4x3U$vjVJU>P0A<|DJKY$26f(pW@7fH}A(^ywy{euMUat8pI-;^go06l862S^Y+1%L-y4T@FJ53HX7z%2mS z(P~%}1v3Enn+(MG{K5bL002ovPDHLkV1hqF B%&`Cf literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/26.png b/apps/python/F12020Leaderboard/ui/26.png new file mode 100644 index 0000000000000000000000000000000000000000..09bc98a78d4335bf650926ae8d45ac4104d4f24b GIT binary patch literal 1160 zcmV;31b6$1P)x>>1I%tE1HwGnhIxEC31AyD&y8`cp9{ioCENc!|EP)lvl>sCOWnTS~jSsr-yR6T&Rwoo}OrTch^;3C=}@M@X%EbyEip8 zB^4%{%~Ee~ukUf-UP9x`IQRf|M`S;)uC82-WV2aUy<9G5R;$&xh8NrhMG0<3^-K;x?$eyIWajV`Ia1j^(|)yd2}G66F|dVYSUa=C1I)6QK9%V&6a`0x46&5i4ND~Vm8gM$N_ zo}RXR87Jvot>RgKA*RoL8ncjS3hQde_t6Fjg5`9m0%WOmOOkN zY{_2k{?5*h6+(!BuM<@$gSOC@$j=fHt3Wz269%jrY?J~u9|&?~52ZnD0>QEKim-95 zR;y{X6_-Fb;GKJkB+^1F7Lx%xv%S4dTU%Sg8ktOnR#sMMVqzk2A82D_WW?8RWN{zL zW@ct+c6K)Kcq~*;8FmI!R`#T@%&^>4Q(9*Rd8H>*AgpmNdCX=%Gsw3)UF zEs!aR>tx9~kruv|7=y}iA_?ZH#%j_q6KEk{AER4;r aAfi9~I_;?+)cNNC0000K0mK0 z4|yA(Q9fTupz(MLiT0%OMRT#Xxd1QhilOY?60L>KO+P~FdXzaap~j&2zKclp z+_pVV?$iBwk72!Ghyzs%S{;pGOIys&S49kqw6Q2N%3O3iEX%U0)&u>m9+o1($zXit0~Z(%w<eIJdD?jG}hyMy9P|EX)nQxQSgsrEn>p5GO7 zy-Bvctz7Gd9&;4NPC<7^!sPN-y9WIgh}?;aJ-axg6M+4O3e5ULwZ^u}A`}Mb0jqA- zX$eH)WKNa|1;HI3ZqwQ&3<8mR)Aq6F0+G3j#G%Yo@xj(m1F)Yc2}CKJd^sE4{aq*A zjHi5`BNs}|Ds7f$#~j*E_G95;SI*fe33RvrzUei!30~|lig-4bXBwpvf-E>JlmyCd zAf4<5t5PViAga)vLbaM3mfa_-lwBwzWM9+|*noon@l$p0JSJ_I{bx3IqS(PzACgN&=#?!p*}W z>#1lf*Lu&g{qh1Of!9tq8NHYnP-1EQt|gpq-Y=+CXg%?&QDzMObY0kh%Aj~w+~_>( zuDBnwP*$3odW7j4)3)d2Z_YP9Uec}ZML%X)))pip=$3}RKqY|%lE4BaYvmUTO_!dA%t`nYA zfvy6055Rr^Irni_TsQBKhYNxD0)U?vTuN9NG7Q5o%>M)c{{c$GpNfFg&@=!5002ov JPDHLkV1gC5Q}_S? literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/26_red.png b/apps/python/F12020Leaderboard/ui/26_red.png new file mode 100644 index 0000000000000000000000000000000000000000..faa5b3b70067be486bc5dfe739bb812773da8258 GIT binary patch literal 1233 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 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/27_red.png b/apps/python/F12020Leaderboard/ui/27_red.png new file mode 100644 index 0000000000000000000000000000000000000000..235ce7b7e0d51700e69c0d0e87219ce2b0e265d5 GIT binary patch literal 1097 zcmV-P1h)H$P)F|9LImN4A4&gyMLmp27~-L0bPy^! z69;UZTOTNvEIon4^9p87P z9@G+#(}&en-{u=yTXQ_0trQCd0@PMglI^-utR$1E1sds@n4s59O-kp|_`0!?ida1h z+uM%DuqDvNl9JSqTl$kpx;`?Jv1t7MeRGqlfL*a}+L{My^2dt+l6!{7wfBGoRw3-m+a0U-}Wd$YJ`@*h$3 z%J5Yncuj|(#yL}1sC*t{Ed}F0UtH{XEMMXs;f@^@6@XZ{)3BG(C79%}fk4&^x8nK2f~lN%T308m+U?+(KsZ63%+1lDMYY^oR75>47A^vPT=&#e z#w#%9E2X7bkEvWBEb`g>e5$m!Vjvo&*0M6keUXfTnHieg-OYGcUwyr+F_j6V`3!c@ zxJV87&F!ix<(>o3Li8pQ8Q0LD`qItIILv1#9p>0cw~Ms`o6{DLXS@o3L-+0$R|3g= z2EueyS1WBDL<}Vorl{?XMwO&+Rsz9iknhHj*1+yzftSKzVc?j4R2&aTd z9E9_YNW?P(wgPExtjytgNNbhY5=eAPPZ)oU5jpjrRn$Dj+6&R_r4MFRC?fv{T|Nxg^Rcl}>K~#F zMdPa{Cj^2A8ruofJgC^c=ARb`sU>=ZiU;t1v@`r=79IR$mMma_B(OjdSRe^3kOUU! zfTZXm3v|GO=pqYrz$ei~7U+PNqKhohKJ(~@MK7>G``jTS;iuPGAfi62=phz}9uv|1 z!`^UQ1^R}kwM2A_i1rS9qdy-xJ$inpjrcPWy-25&urOp8hGCfh1S0wi`&V*sYajQ~ P00000NkvXXu0mjfW}f|6 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/28.png b/apps/python/F12020Leaderboard/ui/28.png new file mode 100644 index 0000000000000000000000000000000000000000..43a02590189d09b31488fdb944789e0dcdaf2789 GIT binary patch literal 1166 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 Hu0mjfe{6`e literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/29.png b/apps/python/F12020Leaderboard/ui/29.png new file mode 100644 index 0000000000000000000000000000000000000000..469cc0e7dfb1ecc129570d43dd89545e5e5cc33a GIT binary patch literal 1077 zcmV-51j_q~P)}J>ecpuneXLjdJzBBXY%}WA;AP9ocu~<~cZQHhc zaY!x8()9T7K3(Y?L?8wch(QEm5P=v(AO;bLK?GtDffz&}1`&us1Y!_@7(^h3k0uX2 zJUqbN-CZO@sZfDWtjKKK#I1CL9 zMY2g^D{OCXV}7V5S2mlqH#Rox`}=#<49WBJvtu9M3u7PO!}qZrjxTMq$m$F>$hfP$E(7QCcJ(2L&w+mz$d# z&wVbJixeWv&dzFOwOY;S-NXgDy}i}S1_lNK-x(YnjARr24f?M})IsngQGqb1TUlAr z%G2p|?6xN+COr2TWSWqOKrb&ZP^na$X!`v8+*4O56r2b+X&NK&AYvB?LxhEe1z22M z)ar1{U0+|<%GD)zaBvW7AA^WZpwrV+C>Dz_KR>UrCePwronBSqEsq5+j=Z1&KQ`Uo(|tAHNeyf+Z~B! z9q@ag&U!V2;5UPe1i~dlEi1}MJ3{4`s6h=a5c(a}K$P7nX{dYJ z&14jf&SL7xH)?(+DKLw$yu7Ss5a#CQjC;`3F4igFfL5zjSX*1u#3`4{Ff}z5?USfe zFDP1W#YH*HIKFD)Tmz*=&wMwJaT?B^X6ec$)(GaER##U;FRQK-2nE3$_vGXx%*@P0 zPUp&>SsIW(vxGndVi18CL?8wch(QE;;}2CR0==RCszL{+ti3k7mV5%1q6HHc=Hr*5u5s?u7xauNn!G)&HZ((6~-@G^T-rIc${5}Z@Gw;2b z;rnL3^PAtYU>JsBm_^G9(ZIj$`ue}+_)728{I1dClZ6?|;(-N{zye8Nfh4d%5?CM! zERX~iNCFEafd!Jl0!d(jB(OjdSRe^5m76ACf52pD(pE?AayMMLpW138GVmUe7ZFTF zreo!Qh9+WlbA6QMVP#2f?DyQFT)4e?$XWfFtv;0mdKCzvqa|poqd57Ed04lz7~Z{Q zN`s%C_!mR1!+3VR595LN()&gIRX10lWM{FZ7o;RmI-x(ZJJ5^n3%zK(`X!3D7wNV> z{9ptf=Yp8(pSC;#>aQaZM9|xXhEsmS{zNRO2L%rOfzXpT!fWB~vDkGx;v_=tPlcr*H#wSY_xO%i!FQnAbe{uv2Q~hw*VcmP zr0K2IAFb2WzYT_y%8`Dp8CNw|Sn9KEPbnHM`IG9%|H%ARaNL88mPVY3k%^>o;hryS zg$RX>YczG?&M~ED9T#YFR2xr`#~G3B$+p!e&0O-YL{eXZ9*zn`K^>W7D((&LjQ3qo zm7i3mAX5cL;-Gl2Cki%ccT6;Br$~&zjmWq_6nAu9?GZ-7SzZ@5AF0vSr!2YAwopdL zXhg;YqCl_r*B2PPJ}kUW##?`^P8g5mtj$R(Q;K|YPh$r6ozZBg#pIyWb%?7S%oYW&+a!$#OI@ z1GWO0GM%aDXO2te8hU)@Pu-brgeieY96h6~I9!g6`zsyYVeGJ~&ZG3SvOtvB5{W}Q zQ`L7H79>V7Lu#-oJO9N|x{J2(M<+To^^`_Pn)V+lCz zOpw8+qB`T1PV-|u<4I*YCM*_lX!cX^nh0eSRZ$Ws_2g?eKjRcJYxwbrX7(3tD^wnV z;~)Dt0liR4p0!d(jB(OjdSRe^3 z&^%F5B?~mqkf@Rcnx|b<$pX!DOH|1M%`gbyhUfwdG(!u3526b!5O7g%_J9S#PXJCB z-LPB*dIn%0fFl45|J`-DWE7`njrcKuo3l$w7#K1P!!XPe0l@#OoTWyr69HKO0000< KMNUMnLSTZr!b>^; literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/29_red.png b/apps/python/F12020Leaderboard/ui/29_red.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b527a4e6b8ad8b95b63555e94498de783d652b GIT binary patch literal 1207 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 LuE@a^8@K!uL1Mz3 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/3.png b/apps/python/F12020Leaderboard/ui/3.png new file mode 100644 index 0000000000000000000000000000000000000000..6be2dcafa6fe71e9890ee0ec98217ab4fca46924 GIT binary patch literal 16128 zcmeI3e{37&8ON_#SCvRDY0D_12pm@%EA)InY{$Nv?Iev0NvX4txFcmno`&X*3j=Nb)bFU=xKNkWqU#>0oG6e^TBwCJTzUGu9d@i!eYAn3AWQ z%jONS9QE39MflxnX1pG|i#Zncc3TNO!-)Y;kER1p(APoBoImUd2|g|;g!#Zq56^NP z3@b2PfMz+76-1WvRA1g$EBqGGm9#h*zonWET2XJtGz%iblu9LE$?wzjQHB!)fnj-u z=V{o3HpcU&RHpOB@=B0eoH#IKT`icZmiJh3rIc1Qqh7C-sQ#+XD_5u|${SU7kRnr- z3Jm9CnPwtIu4@WKJ!=n5kr|K$IgmFEsN$jSxWFKdnRmk&|JJh_Qm5db;29-GVcA|l}WP%va@+{4E zz`rEVi-DjRVDEJ4E1eK|LQ~ZAc!Qkdk~}B+S&=kfV-P3gd&S+ zP0vYYOwCE7fGOlhBaGAN>RDe#Vvm;9bT}dq^GBFw%}rHFP&U^}<3KlD<$y)8FVR)f zXk%;5kyY(WtsvYqNgoSsG_JcCLOYhm6u`c1Br`fXb~gH%`))+s&vv z!dQDkR&AU|rL}Q-ZfH%ZSj#Gr5c~3mDdlC*7mvXPpQhyBX4#70}%sEOKke^`}szk9n%&a%Gv{{mL&^-zl$87e-O4LRf8ov3Jaan3$ zNE`pV3J6?C;5*VX9Z)2JP6Y!Be3Mc%p9-hp1rSbk_}N;8T?Is^XidfixPA_VldNB4 z!(z}n2V5Oy);FS@#pyJg3OK`)Gg5vOC^4osoLU1qqW|Th&2AU0fcf`})_D5<9~7-p z%EnEwwy{p%G$Yo}EfH?Ga0ig=jSg<~)7qTnQt3Zz9n0CG-CyWn;fvv{_o~$GMy2cV zQnwqGI?8o<)r|4gY)G?9W&I|s{C*jNw=W>p5e)i+5e98W6$5G+WQXG_JTeVy>kq+9 zwgz=H6|Q#);pyxMU5=`-QYzPthJ9{TTH$RByn|xuw@}lLwEBT_IlnkFx|~swSR@Go z1aA^tcs_`i;6i}lO@a&02k{bI2oStUaN+qNUV;k&f;R~+JRihMa3MhOCc%a0gLnxp z1PI4T@Fu~9=Yx0&E(8ePB)IT=5HG=n0KuCC7oHE| zCAbhEc$475^Fh1>7Xk!t5?pvbh?n3(fZ$Dn3(p7f5?lxnyh(83`5<0`3ju;RvA9~D zhmt`aK8aj{j~wrAdwx57T-hV{4kjpS)0Ze};(m(y>=OL^n4*d-MSU_tQQ}UDTB<#A z_v^P%)SRilcz3dV^v}m$OU!M*YTn4=C1S*nwypEy zo|Z*cQ}yfV0sZg;+{R}<+B$WyZIyX*%c6|FtF7hRT&HgZSn|f^&eGDc=r;$~{AluI z?);ChT6t*jb?)G)1n&pP%~1 zLz9bN{O!8y#?Bnuyr+2AGr0|G9&G!~vB%b(+Hm3N+t*yU=c7MTdv{E>wHy}8=Snvn z{M`#LU%Fw}hxzCZ@bPEwU4O&r-Qvr;`>&idj_*6Lf9SFBmEytf9~jSxca1$ee&X-N zoj-41bo$k=pLp|7HoNPZ<@UUuSh=_T{F_4;c6JG;ZhCl9UzXc{9c4x9;A1 zcF(>K=Y4nYua3O?M!9RvifiPNXIIaE>f)nqTeh@US!BL9-u})%B8xIx&R+3iXK3y{ zr@r{==eHjHbqjNK=H%5=<4-;MRcdtZ(YHP~aoeY7AAWnPrF@_Erz6zi*M5I@Il9mu fLT>-@dDNk|*#ifEcIG?QGwOY-`{U288rk+w{>!(G literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/30.png b/apps/python/F12020Leaderboard/ui/30.png new file mode 100644 index 0000000000000000000000000000000000000000..b16aff371c70a0d90f83d7a8cdf5d08f0c70e8de GIT binary patch literal 1136 zcmV-$1dscPP)orPenk}K{?MG-_&c@`=n z>cvh@Ei5D!cgKW+&g7dGqGYh6F(n1fgZIxQ3TXrBXX~ zsbyIXJw7z1DXoJDq(KDIAOdL+fi#Ff8blxsB9I0VNP`HZK?Kqu0%;I|G>AYNKI(3G zczB?@ySth-U~Fv6cbS`;8@j%}rl+ST`}5h^89hEe+W${aPuqXHy1Hm^aF7ND1|n|p zYdok-E|)`WsAiWb#bVKJOCpi*)fU{3awxB(Wd+LT^QCw^9_l$LzrDTf`J9#%XnlP> z(&sHNFZ&WmYlASC)9JLaxGKB5yL5GR#pdO5InS~?J3BN#KkrD7$K$lPxJZ3{ebn3A z>&Pz_i*#{uK^q$zw7w@XP-hs>F=~6% zj;gspTu+s!6jmZraBozj$E$7Xs>W#%i6{O1{7fq=D>O4RH59;`AyJ%cHgOeTFVsa|l?AqqHqs2f3{1afoWOq{Z25JneYm5>$xomM_bw;tX>FFs5Ek# zB@zkkJ#{tGTjnUCjM_Qp!2vsKn{VLr4Or5` z1g??jMK`#pqUlzp`ng=_)@?L$S{ONsrv8&(aH`>Tx&Rkoe0-eE!$}K_EKXfG4h{|+ z&Ssf>KF1#zXYhlbUcSDebYe`_rehP@wyi}(`fUHiFEUKgk0 zw5a(MgSU$16fY5sjEvCK)KuV@5T@MT-X5*3t+^gXs${cSdt+=86X&K_%l?=Jjvr1? zFE1}0dGMn;J3D>9+3~Ifss-|Ep8$wJ8blxsB9I0VsKOsEQ3R^+i%S%ND*WIQMW71b zxkPakU%>k|G0U=ks~IwaUieHz4sl2XviU+pU)?g>eTpHX_KAr8kxSH~T}RMQB0?xL zQx?aKK<@{&Ab(#CG0uLzy-q3CF%$$r5QKLE5&Z}EjjEi>x=p$O00004UXCl=`5>e#xdbVi%KblhkbpO`0`snvIFc7Uh4Nklj18cV_lxzuNPIknG$$ zb7%f{=FB-~HpDOt!!RYweX@@48Qk^Xz4%H`w44(3xW6!6DIHiK1uT#P7DxdLq<{rd zzyc{?ffTSn3RoZoERX^gNC69^fCW-Pgb5BawE$XC10RsWO%O@?CB-yL@K5GVEw?$Ww1Id_|GoF1p4 zqt|FAG@J3hv7_T@pDQ}nQPbY7RNYlYp0YK@{Zk5548$%?QQv`nT8t)*djm21LtzTn z4^rE~R;udUY*fGKZP3WED4pNemz6lFpnhooZxs1@$f%xj24OAN?5)bWV>i#oG7he- zr`56U_?Za`e=sQasoq1ux0N2X`U8B|i zoaUrQPmW3L7Y5kb`;?;r#pdwSzO#b35LI_@PJMXsTo-vCelV>pZ#iig)XSd_NIQnv zxbt|Ia(9V-H|km(fcrbXdR*GR4y!H@w%{{wU!ZG;uM5{Oz$ZU^Ou3st;E`{lX=T`r zOvPCShS_c=u+;Dz6{{)`Y{ri}&kE}vOX}$(?b-v34@?WQ2V1opYF-fSXzXH4+2X1Q zgg1fR0lS2qjk`C{^GBYgz!Mv^+nbx16Ur(Ye6ITFf7CCOO<$c+)^qI#VM$&7><^ke zIVD^RzTZf}H=B&xycrVTY&ITuDt3cROMO@2N}x;*9F|lzPFcQzE08mR;K0dz6d2R? zkK0_wK>5HaWLYLFfi86SNtYC;f4P?a4#%yZRA57Vb-t|Pp+aIT5FD>e;sDvKN@eRi zb=3SugVZJzBYBU-;2-_)%xTLdxGM$P*b%U{ZnwZCh)1S#Fr?MRc!^^^bWaNW;hK=1?~H{sRQ7=3N$k!E)#D+ZkJl$Yf1ZzfOyz8NL}Fl z+g*%?*Xp&xp1cTz{IV=JjJKG{RlqrxFpCZiTd7>Mr~6#wsbtS>)J(u>`9UXIPH8n} zihY)(b*yX+?f7Cl{rt)=Y2^r2@Pia8j4V!FWFV(xKSW%n{gXEBpt)cNhX_|NOPqi$ zLc+cOqp*;3!r;e9E`Sqg&m_B95P^_s#1z+gi%7b4_WG=)l4(ZhfEkDErfHrk=K{f7 z#deC0RW?^pV0*wgCxp5<4QYIR3r(Dxv`##9Pg;>)seW#=(X2_OWdE53j$iVhq;zM5 zALS|c7|#~j!C^^!c|peV;N2$kRqz+66tF-FSRe%~kOCHHg#}q53$(%wSs@Fw!bMpj z3$(&h)hAb`_;$MmA+odHXbqpDXVHoBvfr$PGFx|S|0L>PO00000NkvXXu0mjfb6kh| literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/30_red.png b/apps/python/F12020Leaderboard/ui/30_red.png new file mode 100644 index 0000000000000000000000000000000000000000..29b6905bc4849f3f69c45ebb4d7d75ac2884dd67 GIT binary patch literal 1306 zcmV+#1?BpQP)H*ju_{k&;%E&6t%VyL@jWUhh3K=bX7ZbEkeEi1OZh&Yb(5 zbAIRd`yL~PVHk!fSQd!}KH1jx->3MM7I$2@VYvE`OiZ@5DLpqaJx$j}N9m8p zkLl**WZLI`9~+zV^OoXb+P`WQ?F=MnL`f;X~oTFdOf* zv`BZCi%*}r76;(@s|^jp{#BTFfv^RC+1*XYhKC*Z@Pa2B8l<}k1U_qf0qjP);>>`+ zY!4GyYWN%(^C}Qx#`>-<$GXRoYHw~BdIaHBc_d zRI<#Fl|bM0_6nC2_$m~l-tlqsj}^p_x{{Kt>Y;q1Ef5l~bm9Qftg>=66rzKxR|{i; z7s+`ohWsep*=eQ(AEiK>mn}25Znq#MfRE#Kw3ir`#`%pK=@$(nt>@J%Vc~eZzu)Z3 z%VfQaK`7NYf*fXVC}fr(R*?|P&U;#(9L6B*UPtQc9M|)?%#f1E$Z3!kc{d^|7cX{P zRVgfWS*K9Gc+yc6l@2`hGG9K6dJg^RxSM$i(r_A2H#I56 z0GMt#B64#!N2wY2AR5&+@fLgrAzMX41_Nz8TjxmYJ7#Yv#+~U!an}0!d(jB(Ojd zSfE*i^$QC$%ZTVA3p7i&=pqX=%ip4lEYJt=+gg`JH&~z#d{0EeLp~OW=yLo5*e zMnpekdf-zPs2`pk5gj6;j3)sFTg_`Sl?uf0Z~sayDK%r8VHk#C3KJswAH}7+({v_) QUH||907*qoM6N<$f*zP_ng9R* literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/31.png b/apps/python/F12020Leaderboard/ui/31.png new file mode 100644 index 0000000000000000000000000000000000000000..8314ad4e73f3a7f74507de3971b634d7b39de9e3 GIT binary patch literal 832 zcmV-G1Hb%!6!b-AdJ2 zhqjcIqp#?Dxp~**8e{Z)aF-iRZa#BPPHwJ15ClOGmPKL>T$W||5r0xik`zAPnKKmY zK!P}sAPyvm0}0|lf;f;M4kU;J3F1J4IFKL?B!~kE;y{8pyw~#K&1M6u)ylBJghC-j z-)^^q#bTlQ9hb`m4u`|AF)@)GEatXwWb zJRXPTa(U7H-c=5o&*#u?w=cR+O*!c4=?SvgtnP#LdcFNguxK`$%znGw{^l|9$~mP{ zsX#85(>=zs5DH|C`OD|?3FVGzwW`>sUQ7|R-EQSVp`e;rak~gC@s<&US4K1%Wy--5 zy9AaM)ai6oLuxo2UPO*;ML`%crBaD0CzVRc>-Ab>_X;c}2tx`bu;idLBe0Ah3>yp| zR!CvE8HFVTv2L~4FhPr!|2&Kqq^VG3kxr+f(P%KYWilBUkH`CVir?=Cuh$DUn@#la z<{Z8RD|tyY76zyG2iMc3HzUb4tyot3wh>1{AI0GyuS&txkxXT=b zcdvXtujs$UFf%PlyWMWH4y_4#tHFT;aUek)OcOMl%@lq3j_cMCeiqXT)=Y!JKvBE+ ze7@_y0MrYoRxqToreM!~X{e>)JowGmL9f9oI*~}+!cY{LE~r#0LA6@F*{P4K=AdXa z3V}cXJRT1OgFy&~!#6)CM1N*Ef&R>*0}{l61aTli97qrc5_IG@tCIvB`N`@eK}Wu^ zI!VwG=Hf=Gq!0W60IwuTzg};kE9k&y08q#Q613+FzJFBP_~;>qYluGqz+X5#tSUb6 zs8`T;0Qdj^AOFiypr-o{_Eq0000< KMNUMnLSTZxjCSh) literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/31_green.png b/apps/python/F12020Leaderboard/ui/31_green.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2a8221fe6a65e72bea9f21d78bcea396d3b9d5 GIT binary patch literal 944 zcmV;h15f;kP)F|9LK-aMqBQt*;k}Ei02U;G1qon50$7j$79@ZL31C42Sdah~ zB!C48U_k;LdQJ{~n@1=ZGOaObMX9Q?#a~O98=H%Hjnm_VbMFq*+N4X+RCf@)wSA^F zrfQ%I$*#E{D>Ujq>$%PkKZbZdB;6R($IHv;Q!yTz5t`>5@ZA#h58>3VYF#Xbv5;jk~%LOJGU9G zpL(^Km|8m}%$^&)nC(_4P70~)$}CeKP6nn4n&_BBcg=fMIfYc|9UnZ$(oKFeIY<{o zAvN4Qiov_Xs$&_I>F_liHFaVq8>xaQq(0vNgsHY^)v=a6Y23@IY_TsFS<%_yHp-1#oJ za$E@w@5v$|K{WY`C5O=JRgvUf%|YSCd|M}NOW(z4^7#DpOJz!6R}vDGQRY#G?nI&a z(#+rwTPjK@#3(dQHI^dOu=a(t=?^pTKO0xguKSyYl)CJOlu?XCtu>F(s$tIAgXp-@ zxk{3f%NlLx$C?~Oqu1e@LRGmP!_2ZI?cC?I>ejm8T@3*&NB|2GV40xV5%pdd?Qz)+ z)0bSMq0L9F{WW^)x8o~^Zb7ZZ?WQ!ud%ajyM#KJEHVvbR*G5_gkGBaBjV*Ezy{;TM zV|+WwOp+dA(a=g`L3N&Omp+mzh!)Ux7r2!LwA4a3JSRN1UlZaVvqZo@W-$N@62O84 zupj{}NB|28^INNs1%=W4*EALs=8aY%3kvg8tB?gP69CYnb$|seQwv~T>i`P^?#1do zU_p2Qpg!ISn^n+f02csU1F#hDM9UYXTz z>r5sbX4+8B`RQrlwS#SKaKF17y4`N6eX5xd8&4+T`pgXcE;HJyp{8=s{O&G%SzD8O zPfa1#=ya+>xmv!ZQtC_ac@#uX6!LmyMGZAsm{ybiu)504U%gHzeD3eB zI(NKTUWTD~{7@S&msJ93l1_I4v5F9pK{eN86eS~SYEV@Qn$gK(j_+30tZf^YlV0dwn zIX2ML1Y^OVp$j|NNEL)3^*9!T_vtiqY^1YO>g-|`(ggiXrC=}`Wu|cqsb_vaT+y*S zuo5YPcvCHM+2w+lp^)_DznSP3bZ2&!8&b$EuNP+1Y4xv=UPS?)+pTMQHw#^YaPe14 z4#FE%g$#SWFx1s$>!fYzw-_!SJ0~aAC4pVhCFoLXt2%Y-1=mY+o13;&q$|WQG$#7` zU`#_HZF*w^-X#*u>UwlxLA{sVkTQ#*s7mt)Rt*QdUbs0mbx0ECvI*Piu_y=O?Df#+ zW7_Q)W|k%CvkeVaJz5jAt08~{2_QiNEE6=pwZ*jI9+%xPyyRL8Za(t%*YK;~j-MQw z1-T*-Lpt)Lr-y07X}^+9!(z(y5$oX3gTadLWs4kypDR~A9vk$8#q1}lwsJ34Gz z`Y=@x7SIBUq88B3DGFR{X|a7xh-j7 zpgdE&MiP|g6R(j3?X!X#E4%|FXrBiFz}?s*K>(wrMh}o6cmV*9%AIgr1ubBm4gl@} zK(5@0mKV%S;@?3c#`^8YgOK7b3<-iD2%<&+fd85!>Is5t+MECY002ovPDHLkV1oG4 Br(OU6 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/32.png b/apps/python/F12020Leaderboard/ui/32.png new file mode 100644 index 0000000000000000000000000000000000000000..06e2df5459be0f36cc594dd848916196c7c7c054 GIT binary patch literal 1015 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 Dkcs<} literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/3_green.png b/apps/python/F12020Leaderboard/ui/3_green.png new file mode 100644 index 0000000000000000000000000000000000000000..82da02bcbc5973871c9a3ebe7c7dfd758a35219f GIT binary patch literal 16182 zcmeI3eQXow9mg-QF%|~u3Ke^+Ut zPE>6U3{_NpVWI6_3Ja6AqODW4bu20+0*wL_nkFX3IyI!4RzXLzwW|W{#V1I0N%g- z<85z%kB{d%HX8)723=DV%ydF*Or5KLmD4L~M zmIOUWV^B4PJgFKhib2Y8qOu|CO3qX?)n&yMl3Je`cDt=al~-wA*<2-&YLwUkid0_6 zQH+PC>WL(=qRI8?8GC4wNXZ#FE32jfbWB}cF0GlGk=ABOS#i&r7}O*lujH;f-fXsR zYQt>r2M9_?>ne@JU{0pGWkc)JMY+8nOl3vA*_%qrDNao!%QNfP<-9VB%<>dv_EIQT zCnbC3wY6ERD&V?nlcGx6fN^(-f+bG9ooI4YFy#nKvouLJ zgTDmJ@;*QBqrX(8FLr|DaZOTEgEex7Nw5s>rFn)c$*VfSa&Xm1f+_r~0M*^9LP#Q? z()6rgMwG13D^oeOH$*v&RXr=qh;P#}nhr)JN4z1bUUOYlLe87(gh5$1s>%V1Vqc=I zLT_zr*^yD~OD!kphHNdQu)DmHD%WP^(z7(qaO_;2LKYgO)9j405&@Q5W3HW~Ew`It zd5E(1gp5)^s1rNrD83sc$|-^hAF6`9E(OkgGW&$p7WG(a0?9D4 zKyqH%M+SXCA?ZyfC7EW*iK>FlNVHy8!0{kts`^-Skw7v!<(FlN3y?{X^^?h<4yFkayO${->+U-tKrow2pv?Xze1h6ryTc zonbkvs@Or9SkTbs4hXuux)&^tx$KR_sI@XUeEloq zhSb0i`v1EMa7=(>n^Pj`lLU@T`h6036OtsG45q-f6ihaI>2igu3J6cpnoJeo$~h2B z&|aPn@_y?asOm7gz82*iPN%t4z!{#H7Svu@icsa@lpEj?{ZAKdPP+SB*{ zplHQX)^393jdkXx8M1zE@nFLRJAhzsbYP>O(dI0dV*eiNSkCm>{kdiuyeP(cFG;K2 zuyiw8TJ46Vj&h@_m=U&=4Qj4ZS-%O3zh5?h+ZQ>~?Du>9AqsAW6#E(i$P#JJFWATP!R0YRG>7n%>`#ke3KXcOZ? z^MSk=7X$=tVq9oGkQd{EfS^r`3(W`eVq6dqw25({`9NNb3j%^RF)lP8$cu47K+q<} zh2{f!F)j!Q+Qhifd>}8z1pz^u7#ErkN@?u;N5VVPLq4_{wj0*ySHZd+VAIOVwK|s(Z#)aksc`+^s2-?KB(0m{-#svXE zn@C)Z&O^zv3Z6tB0FNBE3r~>Xab=g-(H$pqjp?lm5|L-@N$doyTt5dTwg%fr%q)_rLzDNe;Ar;r3M@ z-XFWX`}K<6%*vhPFA48^UfnwO zbaqm|f7uiLt#N1ys)_hZcTAL84|zwf>VM)meTepvY6<)JO- zrY0Vo*h5U*_w#$FRu$GrUcdUB{&N4B=FS&JABo*^bK&^r_7_+E zWO6>3ls#eo`K6g>HuR~(Yc6)|6_0)|d1P?w=);XyH@1E33GbNqcke8kf9dpM^6-;e z=50L5{^q%j({C);6Fc^A?e*#b7(vAQC literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/3_red.png b/apps/python/F12020Leaderboard/ui/3_red.png new file mode 100644 index 0000000000000000000000000000000000000000..735bcffcfb4cd051ad8059fa4e84e7673f58d9c7 GIT binary patch literal 16165 zcmeI3e{5S<6~}Kv`ePXxkrpUj)y;LgA7OibKkOIVFOHKoZWo6+w5g{iu(7@$*U4LL zKgaJSaWZXG6b3;ERSktfN7r>jqX@MOHc$rwCblw_N^}xkOIbBmP(vGNr>$r!h>iRF z>)AKXU4Z_9(6tiV=brmL=ibk`?_R$@-qgmvJDVDBXaoQ>MSCLs=(7j?N0%-}?|Yx# zdKP_Llj#{W0l4l3`@e4Y?bodUAoMdmK41;R?vhj^<&iZ*fu39{gL)%hXD%bF+o0uA z;Eu_%oV_YoL4Ttrf$t>JF*%wzQx2ZwR-5G8S>oKxJEFTO8Sx#UD zfk8bOb0TfYIVNqcE(9sXi9l1$>KRKn(k?r$tQezKhudu@D!+>JN@dE4(q@qzqR8gt z49j~sww6d!%bLt+Hkluqrm`>zQ!s6rNXOUIWrhvQFo%tKQkLEGCPp=h#mc#BjyIL6 zncB40k0As_q&1ahd?EwcerOt_Srx7yLsMB@Yxb6&aEenE$@a`Uc9_%Wk=dStEWZ>A z6$+ubO5Ir~TShi+7|C#9m2E5`bai*ztIF@XZHu1PjB&Fy#NraC-cB?aku4Y&IDuoh zHuM)41j#2#KJJqh`a&m69y2sOF;OMw`MAJKUQXh@MR`RhT#l|9O}6Cs3sBjuB7~+& z2_u`5t+1Ywhaj6t4~1B#v7%>r8A;tn(#WC_!LT>P)@rV)io=|BmplQpW<@zrQSz7Q zI(ewNwd6?Z`AaP$XH94?qz-p!C6%wu@}*~MoZ;ki^~ou0luolV%5nr;ZjZTol6iT) z8JCAxdrwH})$=H{R!^@IT1_hUvWmr|Xxg;ovFoz;T?KPkP}p|ATqKl$PCXz znF)G19~1BeWW}o}8szv=qKaU15`7}8qvJtNR`jvwqM>A5LWEEY`WZzIQ6tQpR6V+hF6s%4zg?8gaHP8RKV4nyQJM07zZqO3525=i(3UqET|a-|Aa6cC@HJ(&u?<#Qkq z=e!aZkVN|&sOT`iz8d8MPN#)bz!{!8ET@N{7G_JsDK+3D`d=>E!gj#|n18=$)u-?O zLD34Otlk7m8|&OnGi3kVlF){Wb^tlQ(V>lgPMfn_3jGJ{V>vmR?;mXA(2M2m_oB4Y zjY|i~(n>cjb(D9fbt^0svti8@D*HEK;rGjCbo&CsZKCKELoD8mD>mvmm>h`c=*Tqf zt>2F_K(a4`$g;sPMgYKZ%@-5VyBdvVkT+J`ejIL%> zEEY|I0U?_d7nu*{rMNI4WRv0|^TE6n7Y2lEQe0#{n3v+hfRIg!i_8b}Qd}4ivPp4~ z`Cwj(3j;znDK0V}%u8`$K*%P=MdpKfDJ~2M*`&D0d@wJ?g#jU(6c?Ef=B2nWAY_x` zBJ;t#6c+}BY*JigKA4x{!hn!Xii^w#^HN+G5VA>ek@;X=iVFimHYqMLAIwW}VL-?x z#YN_Wc_}Uo2-&2#$b2v_#f1SOn-mwB59Xz~Fd$@;;v)0Gyc8D(gltk=WImXe;=+KC zO(L#F=b>bnMo%J-qeqUHKXP4_LZ-53DsB^yl)0NuvhUeGcgO|Hz*T}0r_blr6l@Eye(Q99OZ&Yb* zA9*Euc5K<~GKOi_*SZV(lNl zzkSc)_UKJVcg=FXv+>@MPqkb;c*8$JGrg^=`&K@jzNGyAcgId0QCkm3H~;wSC+==p z{@6DU&kX9XKT&_-W38(i4(!| zIv2hE%#AXLTs}CpSA2QH^=I_`vxfphb*pUrpkd#pKdIp0BYRFh|ITMt+7Gfv*Y`yZ JuG{+Ae*v;byix!F literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/4.png b/apps/python/F12020Leaderboard/ui/4.png new file mode 100644 index 0000000000000000000000000000000000000000..8a8009906a38155a366193e42d218ee165114f98 GIT binary patch literal 16142 zcmeI3e{37&8OM*1geD@T9ZannU^g?ykL`Rv?6dDqwrLutBo$7x)DdX~wCB6m&QaUv z-dz&A2u4~!z^bW2orIu8K|sew0kKjvZPn6=A~XhVw^f;7)2O!5(Y0$gP>BYD?mgS_ zk2lV{s;e|@dacCg=Y8Jq^Stlp{dM=pJu=XLYe)OCc8a1p`g)^-@Y)Oi`xdmq@26hb z@JD!Q%k{3cDQe+C_y3abePdxKMTLH5#D|^X*lmhtX1uCyCV)4e$-&ytcS}B}Y8!z= zCqT-`hCOF~I_04aJ?yz%jB&ACHyAN`H(OxM=Ki?0d7~!lo?9aAp}YbEWPqd6`Aj-% zEBUae7*~P6-D1{57ppiM!=5fTAw3)$pu0^A(4sfMXuMCNgR++wWl8XVlNLBWz;ZIn z`x%Z`I9cI%y8Q7(+TpK|r6-la=*n_BXoWo^j+0YZc6@x?JMQzER*L0iS!Owb6$A#> zVC+KHQS(gJzOEExHck}Snq}l1!_3ldTs2{iI$@8;O;q`m`<2O65@qc&J4lhut2vhU za%>}!u2nR-Q7c_+ny#@R4Kg6>*igqe)a6D@$FxVxc~Vx~^CpI45{p%GH*9Yv(=fH| z^o&6SWuy(2cD#@S>>#ksQA-0oW3VgNHR`=%B&&l{7s>U^+jfvQ=8?IclB_rtN+T44 zeO0UdY9fvD<$h`@DBBUz}E^L$+36(6UFQdwS836;ZDqpObk?*i0Ts|lfNO4774 zsuM9XY6`HqY%0W73u|gtrjgQZrcDdB2t<4#wo!3IRUG7<+tdQE?3&?#gHl|gE7Vkd z>8vAd6qi~~wQS%{q_AgpCRNsEW$C$^YIBOY`qd1G_-k8PEv~k*5&@OFZEheh7NhbI z>+T6@qrM-d()#YzHm4yKcUr|_N?+D?)T{>jq7hi&H4I&mrGzHxLBROAfS>VcevwgS zU1KCIAc0_#Pw;>%PPlq`wXNmQQBxarHx(GVwEya+2E$kB={`veYMREVnxHZ~4^&3> zaehYfOKQTGNa%p$XA{)~o0Dj@Wx(S>P1n?M`=Y~STv7x;mxD|~6GSE<`TdL<6l6w} z61pt-d_F0t&ZcM(W=^VJ!-k8xfbe$*WewO=UwWaltGL}Ms^%U65zXC2fF5G&N~_JP z&Z<%cWA1RCAA&jZ`E!hqfb2ZGP$^2W!u)#MOgiJL1-epja-7fJSc+ONL&G;-85d;? zY<28E8v&UQ%0eKiF@9Z@nS|)q;g_0VgoKm~3VtaO@WBOj!6P8WIiJEwis+sL|Gg1# zS(mbFBWgAU^awlKoY{i^sX;rhUGPE&t^V}=KNz&q`m5grXE)Zln`X$p-BRF&3wHpu zxY5Cleok3+x|Heqez(@zPp1Dy=GqvW628%Gr?O8kKub zSh{~%10P>NBp`}DF~p+9sA9m#gYjsKa9;c`!=40#MSV>Wryww-&is#=u_4}?> z2f3?SkKI2R{6&}5`rwv7Or}0;dEnF?huW^ac5=z%m+DN#M?W* zHS*E9zmGk)-CXtYV+(oe@)z!i(u*b*L?=6%_AP5#{P6N-k89G^pOaI)+ZKD8&V={R zELwbUX^ZeR7u&V8K?y61q-Tc6juMhlo^wv$=_@xg$9j4FR+xn}~YocG< zx_A1umREoGxA@K-ga6od^ztLpci%m>%f4*q?uk!6yEl;A$m}*0<%OXu{IM(d?0fgX zU!+*m8%u|FZn}E)>F@loWz|hT_)Veh`!e0}<~`pYOWk?>_UV&XzizZXfAr*@JD(hC zdG@R_)%o+?6DtBwHdJQMA#@2X*&1CiZYucpM2ak`N96hBl6+qb%!pUc&l((u6xotePCCaalI5`u)?}}r~LZ3hQ=ARb1pa;&L6{+o=ci+(8 T`T3XJH`e=l`lBzc*s$eaW@x?S literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/4_green.png b/apps/python/F12020Leaderboard/ui/4_green.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8ca0c78d3768d5e7740d7f66aea4a8d4bf970d GIT binary patch literal 16190 zcmeI3ZEPIH8OJw{9gOR^NEM_dg&v2D67b%>-P}>N@wqU zZ{zdSZS$e3=49XPGtc~=XXf|J&fI>u(M|0eme<@|Ls8W7w$@Mw{A`8)ZPm-*`!iG9 z&cToC6RkZaMb*7)|1Wv+uDX>J6?jYQ?6$hY8zsevyJXdf09QJmfW4uwDV>m&eqcEw zAgbw&&Y7ccI~|(Z=Iu-^l7a-lVJ1C_D*GIzapy6reIAVEx`bBV9AbjJf@pc zy3v`5E5U2KnQ=NYU9A2_=NdbqqdUCG(PAWl!{hSO3Mcp-KGDT_L_hCtaPTbWWmu8n z+%(HctSGUZWA5b)*1)SkQtg#GLhI+!L95Z(XITk}VN$7-DEPiGNFzut4s75mSOf83#81u7fcLm5)S8cmmP0BUN*I9 zts8_0=8%?Enw>)lz;po97)UB$-5{LG?d4`~X}yKwlti*U3yvM6wFP9hCo9V=g=~ca zaIR8I63CX3>@ zI(c4ldn7meK#@M%36X~lRqGupk#k%p&q)F+d2;fiPN*E-HL7gM|0+Onx1tcLBJ~={ zxNHTrxEuvcLXQTRLSs?S{4$bSjF^#xBLYDoz?5q)tLg-4Yoj~_l4emkU{Nx+=vp~i z+M093w9KuRkdr2`7gD1$x03SrX8zW*HHG11a<$8G5Of!hvd~-@Wj+Ebx5r#Yo@qwq z0mj}FVp{1uvaO}lD;`c+D)zDphov^%v}9cYZJ{7+aA}$=$^us0PLI=la>h62ME=&8I{5ICUHvck(W#{roZ z1=dab-F`VDL?S9+xm=>6VDl2)m(<|#AjgXO*mF@~GPc(PfGYavh{Aj5h~Mp|Wgjon z9)Cm?c|j2TJ~@}7OqhA8S~U~i)I$h=yC|E%j?&iubaiF6J4sgTBOs{Qy9iJNOi62D zScO%U?V!ys=i(5|lP{bj)d%zicA;#POoxT_rqOGqZe=Y#iCuR^<3S)?N#w+i3n2+c?Qy*}RUk9Y+(SK*=pqEoadQv^7F4){A+ zL1O*cjl8JC!unE_i#VMYQ-Q+pls;LH0yW6wCY5VINA$m3w8ia$Sup>8(MnI>|AV4s zOIf-J<~G*(n`XfNx+TF47w!OZW}|}}{k*oqa>@4ZwvXl5K&HRwW#NnA?Dsiou^W~4 z;HAZGR9aBpuWMG2pUZ|c7pd&;gxT*eo8jXN2zosp!4qK6W>m3BOM_Ta{L zm?@({9c6_*MMC(EsUR$J%n7rlDtge!oLkve_!tA9pqTt4)Vw1tf8bopi^7bqWmF^< zNrC{un*4T@Fu~9 z=Yx0&E(8ePB)IT=5HG=n0KuCC7oHE|CAbhEc$475^Fh1>7Xk!t5?pvbh?n3(fZ$Cm zuA0J+l7S9?iJXEzIra{lKKOHGhtk>+rl_6u6t!zNMP2;@eqNxc0hXdJZlfsahZMEK zczo-7>nUoq(on@+xb?^F7x6AvDom^gf^)%WN>MhCA-J@?GkA2?KH&iqwh^RwgQ!!u*6Mp_-e zTvD-%s&r5jE5}bizOgoQy`;LCs<@$Wd2*CLyYKz$W3PVh>iO>egYP_lVX)HiT)p^k zcx|<}ecRJtI=|;D7aJZJ^&hSM{da_iFCPAA%hzwK9Jq=8`>uw!SML7liS6er2WuzK zxPDZnHa&FMzs2A7?K{4<^t@|$>b^pk-mNR2DcBa9*?>olTjZ9B{u7BM7P^)9|(&cGx*{T;Voo{^l z#+s2!()Y#=oob#Qc=j(+&-xX6s?NPp*HyW<>fGQuinZlf56j@WzuLM%TU4)_*Q)UN^xXKXCsSE5}!~e`ws={MhDU^N-ZY+fu(v zoIP>Nr?o47{&Dxr2fv;D&5Nf5jk0kaJF(TKXkXsh{1)}ZGhe2ji&h=F5~x@uK6}rv z@1p8I*`kd$-PHR2;nN+|$ceGjvlY#Mdvi5CGsse>XTPOgoqX-V)$})>cxwMQ4{mI( g&cgq5!>mAE+0H!n{AaN?`xowQ>)Jz;Yqve}Pn^uh?EnA( literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/4_red.png b/apps/python/F12020Leaderboard/ui/4_red.png new file mode 100644 index 0000000000000000000000000000000000000000..104da9b8d1880539309df3c253e0e1598c385df6 GIT binary patch literal 16175 zcmeI3e{2)y8OJXht3uL*z^0(KOtTzlN5}bo`0U)>9FsH-Bn4+tVnosk#`*4be2eWf zzB6`Gb<1eGQmLI7jIE*-t@>kQ(niNXMNqAg)}k@3O6e$-nssg0NlgZW{z2D5Cyl-5 z-+tq~Lkwx!^je9}&-=XJ=Xu}H`|IwHdt{)0eN)4&4HQK+_4Nh@;k6h3_toD7zYiSV z_5r*sPWFzN6xIBy{a?55Yt6S&l<#FdG;9qAH_ECJcPW|?2Ci&832Q^&+H6u$$AIMs zgHb)v;r!^ODW^l%I-Hw5K{lA|22s6tA_ayf`a|l(m?~+`wf+WQR)zuMz)~F9cr0Pc z*$!tet_*+M#f;ODt746HIJ@kGj^W^dquWRUhsWimRn9Fs+9em~kwjitXK2zGR&y4K+2MP!NhP(g27Vmn(d9pYo<1> zo*fWD0clO885&OlW)PT0I;Dc19k45HwR&&qk@DbFMY25$wjE^k1!T4-FUw7Z{0RAA zU*+x;P%I-AGK`o%Kg$M+2p!$s_N;1me08&)(2R_^+Q*=h@_3h{fq-HGKhN?k&3fTq zi05U&BMa<375aQ7L>@FWJu+S;=eQ8h$!=B_go3=H5-NwQMpG>1-vy|wRuMu|<%p4r zE0$l6E2Dr(CPsZsxv-*UX&TAhM$AaT76HH8$J8pWsS1ItwNV)dDYIfY;GpD|=v~Ta zb!pKN({oELsiaI`PoxfKaVC}4W@+i!nsRe;x%!nj@C%i#EEktsS&D$l?Kant=ZaCe zkFocJm|oqFd}(#}Dw|W2iao7@LAftsT1r9%eE~l#aOt`x3lWv`hJ^?%@E(!oRDq>M zQ4?t`EGX`X+behho11Xe@^V`Xp#z4Rwl@_RI=}yFh6=-%>8Xm!ieaxvD=M$h90wFy zaE)Z++$dr*eJ_Uh8>on5)@PF7U=2=J@+E&?NINgUCE$h&>bgfj46$yR6=jco4*d5< zz-FD#u11x_DA4>&u{p(p|D{2@wq5Xg2d(<_{XZDA{Q9fj1dAK%{7utm-)_lp!-YG5 zlH2IuMnA8tJYDkjhwWoImd@3eye#}Moc&#pR=QE?2wqz0Mx|xtri5a}QFjG#0I%*0>DunQksVuB;6omPq zs(8@Iom=@*_!tA9pqSDl)Vw3Dbl}{`ALSn1$f!sxk^}*QHwi90AH+*=AwcjZ!G-68 zcnK~92;L;P@O%(2!G!?9n*4T@Fu~9=Yx0&E(8ePB)IT=5HG=n0KuDBTn*)yl0gE#iJXD29A{>J`V@R! z*`f9h1}SP{6-7-xKv7q&!s}ltD$P>Vxos3BKTc80jXmEyxsIah&i4hnLfM(Wy>s|m z4-90b$6~~g@&v)N8 zH}`G*$7fbQKletUuVLcqpWj=VoZ9v2)Nfl(zSf{Ow@`~5R9!UM`J-K1Zl25;^_|q` zTFO69?@OIBT}MAmuecfoqc@E{u7Ij z*6-Xa-o1Kj&kyeFJTD&VTC;Pq@fTysq1VmEIlwR7ez$t-Q+?A^eD8BFUOxWO)epp` zkL4%Mw)+3>dw2Bh-))J1-1(0+fBD($+19Nmw=bL9J?otI_Dx^xdG-r;KDPAOrQ27` zPOf}1y&{u%>)AznPE4;}F*>>bME`q7-aa__+@VXy>gA@R8-@;_w{F?;Xlw5|d2p%K z+BzjgFLwUnMgOPwZ~dM!``Z0epNyOxo7sPP+r_8H zJ{&x9?mM4{*`~&+P5l>s&n`MGWzM*Q_pO&-+4REkH@|+Q>*bO3#O+NGT7Bo`D~&}? zZKsw`&RnW{`jZ&-=7IH;XZFmpKh+(S8aF(+wl#Wc@2Wv+&!yNS2`cpZ6RS?F{SCEi z?vKlUeeW}mt(y2{;Mk@o`#bCNk)kbEZlO-Ua%}fM-@PYoztY~<(;ql=*S4Mi0%|M9 A5C8xG literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/5.png b/apps/python/F12020Leaderboard/ui/5.png new file mode 100644 index 0000000000000000000000000000000000000000..fa196b12021a1b76680b613ed3dd4db0d9c64b45 GIT binary patch literal 16037 zcmeI3ZHybm8OJ9F3E{*AJ^jbGxK|9XLdjMzLDXZdb%&`1_1P=hf<^Xa|r*ZSFXVCd!O0* z9{xDDJha&cVAWsU|7E|we%0jwBwjJICyU7T%wp>=LTZag!>4OkV#DZNo%m%?!_ruIsT8kZwCaIz>x1yL2G z2ro*SsA{6bHC~})H~yBW7tPw)#Soj#JhIp<1o>R>QqkWkQftRTV^8kYyhC z;O*&>18aQAzS;}YjFUpPUNOs#X_YuPF3ed|PG2bGCThJJ^D35GiAr{Z9i}MMU|EoQ zMWK_(&|8}FRHaZKnxPA*fQqQ(*jOiZ)RiYK$Fe7_MN+ohizdc3$z)o&JC3(l?3mhi z26tct4Wu2Fc6Pdqgi&N$QxzQz?!Z&Iy3_0(Gw&CtEt2b5bnK{RE+TV1o~*tUyb2}o zT(yA;f{s+Ht+J6OLT+HdT~#se+A*_aSXKMFgg{FCdi&8(3OXn$i?YazQT&&c zWi6s;5%FgMz1NA5XDq|aPq)b>DJx4_Ske@wArEvS<@l;GpaZ`vK(JdNgrRGBt5Sqc z(k#LWB$P`N3Bhj+^lU97ZNMs66+9x83@3z6%^g))RC8{D)2Lzx%7KegzeLx=iT2i} zqhQuAwKA;O$X!T%q2@|zU7M{-&(-+DsplGoMU+&6qx75oQMMwGa(B!fSFeaS=<%Ta-;`dwc5-U0wCSRmsAw5^N0aeKBq(s{04KpoQvmUawMLMhQ(%u0|g|f=uRd8xOEQ1vtn2i)TN-;dEL`1^nUZldv>_jHJ*UPP2g=(f@MMmbMFeV7`CR+E3sAgQ9t*Y~KW% z8|%VNGvVHDX?VlMI{>V2ba}}um8AvEElHg{ne<5UxMVmH>5!~Dcww$2Hm98 zSKeAOouu5zMl=Uh?meM*|FQ``zMy1OQNsB4fNUleBW4X1##1IfGHrM3kKs&p4e978 z+#C?%J0@Qka5RKosR9og^>fQ>#g8%g2})=^LM=GbS_jUV{Nm5(OhzSQu_Oc#y2)_S z`4C=)ivU7587?{>!pm?GKTdb;bpi8Aas-A zqVplV3>N`}ZZceSK7^OyB7o3MhKtUJ@G@Kk5W2~5(fJTwhKm3~HyJKEAHvIU5kTlB z!$s#qco{AN2;F43=zIt-!$kn0n+zA758-9F2q1Km;iB^)ybKosgl;libUuWa;Ua+0 zO@@okhww671Q5E(aMAe?UWSVRLN^&MIv>Kza1lW0Cc{PNLwFf30tnrt;_CK)l#ELF zm&jH8ljE^3f3Y0@T$$5{Ml%5Hyas@odja_B8~ph(08=6W$F~BY?Ezr5wd?l7Hv+H> zrc>*(wSS*@`vfWo5`Be}8Jliz_Z$}RN=dMHP zeY^hwc5DiD{r9eotIt}=&48|zv+~`?58n3H3#)Ja-FEB9 zowpyo>eqcwe}1KM{NRd@X4Mmy%-(z`w&|kvd(M9LU(f#Zbb3R2{=mxz;oj?y?H)bw z$^D0Z`~1bT`)VhbbxjV=U3tgM{7a96%U<3$*MIoLqsLx2b=?~MytS*&|Ks02Kc_Np zUb155u@9c=`OTZBXP$Us*QqU;H?Ex<|Mb-xo&(;{NA`XNCRGdYA6`29egZ@usitG# z^$&;FT)gM?Kkt7@eCQ|XG4SvQgGZm-|ITL*ZA?G)?vtmt9DRQO*RM{msZZs-Pqu-P YOMkBa>9wwv?hnb+gTtx6tlxUix8&i44*&oF literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/5_green.png b/apps/python/F12020Leaderboard/ui/5_green.png new file mode 100644 index 0000000000000000000000000000000000000000..86219e5348b0441b1051ee3d927e3e2ca753b203 GIT binary patch literal 16077 zcmeI3e{36P8OJYe>6%O}l|}_>M`zsq=vvPA%Z`1A?Iw-8CZ!Hp>XD?VTHm{So!nyk zT;C;jQXv`83S<1Sbz@XRt-7t9rfDnNRIxuQwS#T~ZL46_(8^k-fuMp7Him-6G(>st z{Nv7VoRbPMI1)+o>0%$8F#2apaM$c$Mw^|~WIebg*%hxSC_ozko?M7}X@5Zsu+~-h94o zYRld>jS$q4wpCi0nIhzdp=C~$G`MXVO=Uy7+1p0eD^5!!$FtzrVZ~TL=6Gr{cPZ2= z6i0Ja`brSkW+`KuxnymX4K)x3`udzz6%A}0F$%g_wr-7cxWucs7Y(L>4U-}-@+{wt z{xYJdgd<9r-|f@aI$`p(sTCIM=SZttta6_D(PZOO~%3s3`6wx)qGK zwl*9&!@bmspkzU3Ati#1mDId8o0p!W@rL8(8U%TmjQB_CHG89MM!@CHnA^zRW?UZU zoIN3Dw9cc}+B!Y|aN1IFmQ^~f3=}LI6f`)HN}`64Vdx5glB%mwo{jNxl#NBhfK>%u zWWxe4X+lKL!dT2*aIJE0to6_-Q=4)&6%@L*|LUfO!h7_x65p-zAi@Go1gs!Hz{(OI zW@F(PP$gB>Aulu%`GU<$^re!4jt7wQ^>OB+qhx$G0-=tkp=x4;Rb$~W3!w%+c34<%nOVCGO0ahvEsn+PjkTz)GCX|yE90uvzyj0% zT?J$zDvRA&jScHSX4OboM{hu7MKzXPfCKoJIpaqW|ThEp8XAf%*4~)_VH>9~7-t%GOP= zv9ZqIG~>?gmV!21v;zQlqeC10yf$yS)cTJ)$8v7U?Jsxp=*0=ndtK^x`fZJwb8JN2qy6TJylUnqRybUCpRiESdxZLN+Nb zG9S!KabZBnCdEbOgLx?~3<%kzxX64kFU5rcA)6EznGfcrxG*4Olj0)t!Mqd~283)< zTx33&m*T>JkWGq<%m?#QTo@3tNpX?+U|xy~141?_E;1j?OL1X9$R@=_=7V`DE({3S zq`1g@FfYZ00U?_d7nu*{rMNI4WRv0|^TE6n7Y2lEQe0#{n3v+hfRIg!i_8b}Qd}4i zvPp4~`Cwj(3j;znDK0V}%u8`$K*%P=MdpKfDJ~2M*`&D0d@wJ?g#jU(L|k3okCI^l z{Svv1esa9*y{Bf;&y@pO|8SaNW^ZDc>NgnXqbun14-7NKGt4`C8Adt8FrPLL-ucpP z4AXJXK&m%WdGn8#9vM8_bA9!LFJ9?>b+_xO)LvteUmHM3+z zp!&}8V<*E`gsN+_ydAy%-1Gy(4{tyH*`BT68eV(i8m42}&p&tHy4d4uX766N<<4Jr zhA*Zsyj0ixbnxguo*X~$Ztsc5zyI3py^~)(_+IGZacxYvYi=Y_ee%%RO-o-s_12BQ z*z?2dzV`6p<>3!AH#UJ&m6-emRQCJPm zzWwX-JEI$pocVJS&CDHG*Ieh&^!p5a{u3Kd?XRBycxd;LjtAd*`uxEgu01yQ#K})F zH+^{QWW3||&x{=Z-MRJ41MHaxA2N5m^7Q$?3>q_QfAZ0q)g8-L_b?rqdrx1(JoeXH XZ#X>p=9irxoDXapOr6-e_v`-zz66%} literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/5_red.png b/apps/python/F12020Leaderboard/ui/5_red.png new file mode 100644 index 0000000000000000000000000000000000000000..7edb21a3b28f0fd8970ebea8e072465e8d80e93f GIT binary patch literal 16062 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 F{{-&2(WL+Y literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/7.png b/apps/python/F12020Leaderboard/ui/7.png new file mode 100644 index 0000000000000000000000000000000000000000..10dba55d314bd3701a3522114089fd8872f9d2f7 GIT binary patch literal 16124 zcmeI3eQXwzXTwv{7JN*K{vsTOlA+E$yg4TPbvHr}3O$ z&rh6(0R01@$4burJ-_Gs`#sO+_uTXN{_uDEdhc4+c0(IQQOlw|k$(8z1OKDfEQQzI z`?vfFzFnK`*<@1G@)zv?mLIKNzKWuPhxPcNH5gkjsYco(YlZ?mg>)A7hQ2k0tgMaz z%cX!}Jri>O_0Y3!m#&4}8+|c0mhA#by=Q9<3~cR?)*F z8B;2R+@-h@{A@QfZda*`H4<`n+6i5Qu|8LqkpnKDr-N2GZ@}djJ)BPr@WSmbp5;0i zR%AGVW;ux!C6;qlUhZ%k{1nV-38_D_u96N~A$QWUvJ%6LkB@uCy&fYs%y6P8GAz&V zJPmu$W-(*Q1v+EiQVvp$69J~0)3cUtWL$P!Suyff$nCZh)n1i(rL(m}8MDF;Qe+Bp zmf<`s(@dnPHBC03OO=MEsSHSgG{{&c)NxI9*`#3^X3|(7WzD@{Vpx+{td_g!c+=^o zsZFbU3?ir?ZK^cm#Vla@fobG(D(D`AQ@N$t>@7V}FHS=w+q2-)C;8M(M&q{8J@)>lR7>guvrmEYCAQO{_`xOr=kK_&Hi*Q0@mY=JP(@+{4E zz`r=pOM*`l*v$@oxf3Ff8JeCbHpn?H&U2F2D|xw!+|db@!@EY4E%{#saCUQq&{Qd5 zF{`vQ;t6NTr`-BP5596(N8NX@1vCfoQv$|McNlo zG?Djuy#c>mP0=LGyi`5932*8m!rv~+02pm-{ZCg{X}gnT)jk5ks=bQ z`RsGR(P3eIBg#dbPK&8PeRyh8&I|)B%v6U{Z9qr#zg)D%?Sf@6|9;ULPv8H8qLoY8 zxCvG_*7=)e(Ehq5!3`Jg0CH)ggB$(4w)%1@_aC&6OzO3A}p86@t{#Ux5};XF$O+CF||jic}H69z`2qi>NC2MQIS|A z2?7Lf5?pvbh?n3(fZ$Dn3(p7f5?lxnyh(83`5<0`3ju;R2`)Sz#7l4?K=3BPh3A8K z2`&T(-Xys2d=M|eg#f{u1Q(tU;w88cAb6AD!t+7A1Q!AXZxUR1K8Tm#LV(~+f(y?F z@e*7J5WGon;rSq5f(rqHHwi90AH+*=AwcjZ!G-68cnK~92;L;P@O%(2!G!?9n*{5IBV-&UZ^At7lEsFZ!Blv!XqVg<7y}N~?q@5JC z(wO|}FV|62%ahSaXT0$C+23{E{Q`Uak@vPw`_FXdmhRX->l!}29K49^diM*`FOhI+wU!h<5MnoqX@3=T5$KZ}j5qr(f;)+N0Js>XU1!miWyx-&_XY zueJ@xrSG;^#G~iFaX`9bdi2IOgrmnto;dlNudkTdoF8hPF?_Ls-><#&;a5(){gWSZ zU!ZRI)&2Y4eB#*~r>%F2%O@THEj^P@|Kqt&d5_Gr?;ZO4s-cg)f|+N^YTVO8)q#rzc(vpPo5)Ik-7} zG9y0o+ab_&w WZKpoB@09)f^k{c)Wbd6@w*M1EV7}-8 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/7_green.png b/apps/python/F12020Leaderboard/ui/7_green.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1a376e7f50c37afa7c20c14964944398d5e053 GIT binary patch literal 16162 zcmeI3eQ*?K9mh8m2#t_ZTF5jGbiG2S*zWDiz2tVeTn=)91i3VZV@R~N?Cn06TXJ`M z+1(@;9NPqCfI%GW%VqBhkISS)s0t)rtpd++z; z@)(sr9Ot=7?(X;ep6~DXJfGjQ&vX07?(gc{w4|=Fj-sd~9qplR_}LEsI~Fa3@8jRv z@do_3KHc7HQdIqm_J7SIch-NHqWs^}B0W}5c#EXyNvEvpQQ*uZ)37)6wPez=(hn>; z3i`BEv*Vp-pL5Wf+U(fw33K6eD~N0Dy9}^(S7$`o)vt)Eqa{%1&qy#p5?C^wNhVUJ zlxcQk<4W+m-OM`ZY!|D)*|FYENcV)h=vLhTw8!aX6yD{dn?xt?5q*ODE?VGtFUyH6 z?`Ak&;zWt#>HNzPsDt19h8mN)LmTtypw;Y%TUJ_P+2P?~=djDE8+|M_o*^eqPCRF;U9Qvx5}bjGSh9 zC&yM3sY+3k9yAi!p{WWB5+DgumI-xyRb4u+Te=z7XGvLf&zcz4Bpfd0t~%aivTAD6 zY8!$G@<^*H&B#a^u-(Aa2MqEsy=M4^|Pp?RPRzW5Rxqr5IBKjI4}H* z2!iDHNN(;EW%^tvL>|^vEjCgi=lO`hOD>n>67%x1PN*DSHL7gM|0+Ovx3UnbBE@tg zDO&+8Dfa<3o$B+mrN*+J#bqS5>IvO|BLV@JpRLwhRTTjlYl}Pr4702puqfF}bc5Vi z*;;TUwCtspmJJiw3#r*rSV_fevv}#*n$mExxjN+}2sD+CveaA}WibLOx5r#Xo^3|u ze%9U-5?bXva;=rqD<4i(D)zDphoz2`X~`)Cbc6!1!KrDgB#I#Baw~ulWnYx>@@}5- zc|eqj@ti35IF|kyp>zAMsw*&jiJr?F1s+ayGqNH?8J-6+ zBf2;@<8%Aus4E&(0ml~-l?9uT=x#%U$Ag?G>toMFg~_;>2LM%UVxo%RVWK`aOx7fb zjK>#MMZx8A`I_WHiYj4dq-xhpcu|ia{OzJ_1p}3>|LN+=Zg-Nb*hfG>v3C)m`q_%s z(y&UaD%U}qSuQL-Io*PD9G8kP;Pz7H;rx$KR(sFgA_eDy2i zn$*CQhyJ??h+ zjY@m*(sDN{Eh)F9G%FzFvmwo8D*HEK?)S@9c>4kZUXRD+@v~?%s_4=(Akh=j;E`$C zTYnSGl+~b)s>0qfA^gQu5|%mg!d$7!ZZxvzR<0G^#=tu$ws;FQ<47wWIM?z^X-3yF zDiVt%L4e>*f(y?F@e*7J5WGon;rSq5f(rqHHwi90AH+*=AwcjZ!G-68cnK~92;L;P z@O%(2!G!?9n*4T z@Fo^lUFo4@kb+Ml55q@}U)_4wYw&SpT50bNQ`D|C6gB!;iu%hx;O8ZZ8ssSI@(zlU zzD!XK`h)kqw2`7}raD6FBbnFV{w3f4Lh$C=tHBd1S0A7k?RKoZeCVa{2 zQafw4meC_e?|c5q10Va&A3B}q&p-O@RaSiO{riU|oR6${$9VkLYeud-@WBIPw@!TN z&r^GR-J5G)tzSybr>UBKjY}K0{QVVbQIMLqbTr#k`g+TQT?@4d-C{UFu&WbNxU%l~@x2jg#Djc;4Gy#FWbL|Xs(+3#`>)%^J2 zP2NwhGJ>b}Uwrv=+p=T(#`iAndU$@_7k>X!Xe%AWW9t4FO(-*`4Yeedzb z&39iKv!+8g?wNQvcxwEW3)|{N`eNOQedA9&6FfEW!YBW9^^Y4a)SWms{)81AXxzE| z*vS=FKls~%BAd_rc1iGer>QfCmyAwMEa)1#cVb5$_1bw)!{U||XU;S?Ox7F<+;Gp+ zH&I_7d1LpduE^BtpRH?n`_T`b{LSu*>F;;mFmV5Z&*f3Kzo}54?|c62Tj!?X^X>2v N__of_QyX^d{wLOxx-I|! literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/7_red.png b/apps/python/F12020Leaderboard/ui/7_red.png new file mode 100644 index 0000000000000000000000000000000000000000..e5940b6f506261f6234e72511621199e06ab602d GIT binary patch literal 16147 zcmeI3e{d9M8OJvXrI-MXwt!>RIS)Ek=w^T1-j7``*9*CX#Bw2qYm-nN*xP+Cx8&~j zxZQAl#2lkDB|KJWK=-uLso`@Xk-+@rlc>y|Wrq>-YiCEZ=2KKR}R|GO70gxATV zTYd}QK9KGjG$?B6Y3sl4=`~C5rYQeQT4cZ+2(OnEJ=r3wdK9$el4;l*`tHxAWn~zc zjwl$?QmxK+e)O`_p{cFTes`D+r`thX>l({|jbl9#Wo%dxRpX=(~<9D4!1hntb~q%aId3X&j5$J#X~Ec%jfWlEu35Q@xpx$p5;6Y zD>9rwvz)|=63aP?FK3_;e)4D3nA8{QET)52t21tzX^CO7*=$SJ)uLyH7)}&LhUFQa zr(qA;7)_aSj!qdX3qeY8LcmZmTH4g~l*5WENA(f2)#vph?) z9{3mGc}Z|f0=vnkFLXlWVO`Z?qg8T_i}0M}a!G=>D7SS&6xT#2DGF+1ekPc$j?+7Z9U7&NNU#;dIpXN1YCZmR&z~N1mw*1@+im{wsOFtUk7etEXolPE9J-vI>W#?v!E5DFt+g0)ezuif)VjTei#o9%H>SwB2 zE5oX+szL{Cb~)#VV3vID9N9QX&9Ms=qU1ZwtvB?TnUyo3Z3r%o`Rt8_sMRtweC<2q zmejzIxBqt)5IL{NdtwSLsIo{$-GT})a+KzyzL=L6d{K{!Emhc7Ky-@MWNd)T=YTK5 zx+K;oxvg`+)?sdaHOhIMPV=ciWq3+lP7MJyz?6nlYCuQyzg)EW?Scg`|9;V`Pv8H8 zq7_P6y$O~!*4dk;-}<^G!3`Jg0CIk#gB$&V9JC4HH>Qfv<|qmarLsL}&? z7D<8t!J7mZo)6+BxDX(Cli4T@Fu~9=Yx0&E(8ePB)IT=5HG=n0KuCC7oHE|CAbhEc$475 z^Fh1>7Xk!t5?pvbh?n3(fZ$Dn3(p7f5?lxnyh(83`5<0`3ju;R2`)Sz#7l4?K=3BP zh3A8K2`&T(-Xys2d=M|eg#f{u1Q(tU;w88cAb6AD!t+7A1Q!AXZxUR1K8Tm#LV(~+ zEUw1NkCH(O{t`J0e{%e*2hI$^pDR0*uD&oujom|0<9jG-<{$9=4-_@RQq=V=6eaDa zs1^ECn_umusJe6Ap|(iw*VC6BMsG%io^*=+VLE^Y?m| z-Sjjb-xs{;|G|~}PECCF>i(H{q;B=o^;3U}KmYDqnGa1xUR%HO<$b57SDoh{TfJe! ziiYps8GKWCe(BWop1_XDHx9YqegBu=&0ZUSXxrscdHce%o}S~EZuo9jzjg7={VyC` zaQ)D=Z40L&hj+W0cE8?u3$B;n?x<<7aOR{=%<4`S!}iLFYT0 zemD4d;`rGomcQtKb!J&}-6F?0Re$!;or|fN#p_T1r1M1;E(5B&qbGD^?UvpD1fj;f A>Hq)$ literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/8.png b/apps/python/F12020Leaderboard/ui/8.png new file mode 100644 index 0000000000000000000000000000000000000000..b185a12eef3f00974d8b2821d89c60d4094fae59 GIT binary patch literal 16255 zcmeI3e{2)y8OJYCfHW;M1u8mdi)&OAHZFH(pJU(QIKK=ev<{ImBB835^WE#@8rx@l zm&6IA5D+b8?MfMJv`}EuK%)(vP=QS=&}ySuwXH2k5C)>z+E7*PXkkKS>q^<)vt#@G z#(Bp!{+On-65G%Fyx-@2-_P^j^ZNd{XPO!pPcE5RLJ-8{hI+3be%8bPhT@6vefOc( zkKo50vHBL3Af}wu{|mN%XUZ&saG#I^&04eXQC?Ic<$|OHL3tt)gT0}zDiIUJ4xm|r zpiPceTCcqErqv=#mDUvwAMK0Pfp)pRHx8EdHU`Ar4v~|rRh|-ef`Gi1g+?!Yi7K3`_+yz`Aj z@(!(P3%ekKQKWg5YM>_uC_hk@&bSB`cEP30$+vn<4rP;*6G``sJ9m(f$C2rtlq|Uw zQW;q++5i=cwz;WnqoHSJ8}W5YSc$_K0gv5HNttUibLr`t>~xZ2H3|{naT#ZsZO+az69JX$bIv1A zHluPkrPqY8oV$)xYwq%l)5%Lk-&Q^!-w;(bAu56fuLm}i%d*7N0tZB=$dXQ{z>y2?y6J=IZrxo3Befo_+xapgXlO_C>15yVSK%+gtTrU4rh1}3#e0?s;TR5F=B?H;%iS0tP4M-j;J)Lv|I-~#Pq}^H-Oo93Lla_n> z{vRYQmCD>Am@ceii>6!uxy8eR3oC$-EOfBYk7>(pmsI~|{a6lnCi`<0G<;Ev{yr)- zx>0EhUTSos(yVfMRMtGU(b14*gG&ERnEL&)4Box~Pldx_cep9E8C5jN2@r1f%J9fk z_0sQzBPBJcBd@T|||Ac(L20Y5(_h)$Xy zK5Hcieg{F!P_};e?L`DpxS+vX6G&XRe399Fk)A%W_1CrWX%C!itFPX2y#KwucNU$A z9GJH0{^}W53j&i~m@Z#@wc(|;JL&o2??w)hs|UWCeJp<0%|$;P{z3KRbx*yx)LOc! zy2yI!j{e<_Vy~s}9^ESKH+((1Y1`D=;vZf9`X<-^_Y+U6Q&x5yj(l&w9Nk}9xMZH| zlTvYDTG_s$j?d?BdF;TpZ*#x;e!*6Mbp5qefqQE&%zkI}TGe~WU;M&1FEjh6SPp*q zr;mTKt@xqe@BaDV?$fOAf$DSA*`uU?$AYFoP!sSY<+xW;9Jk!-O}*Mg=Y^~SH04_%|CQ* zpzCqx8#OOK!IV6=Yoy=5i0zQZ}sulQi+(1nF(|5jJ{+`Cmv<|VFB zvn25z(OX#y`x9&cVEH(ff&wUCLTz8mL{{q@1Y z9Xls&m|b&tsB_P|d&<&T;M;CId`i197yesLX~(9P&0b5ancL(!v3|y#(#V3uwc3hd z;#g_>eN_c(3a)(di<4Evn>VSC|46JURMvj@r7M}yK;MbGiMM7Qdi(07#A5vs`G$p! K-q&hd*Z&g-&GbwF literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/8_green.png b/apps/python/F12020Leaderboard/ui/8_green.png new file mode 100644 index 0000000000000000000000000000000000000000..99f42a1127eeb2c72dbc9fbc1871091323bc1bca GIT binary patch literal 16316 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 HEPm`?c$f#9 literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/9.png b/apps/python/F12020Leaderboard/ui/9.png new file mode 100644 index 0000000000000000000000000000000000000000..25101fbf41811a8aae6eb080a6953ddb09fd0b4b GIT binary patch literal 16187 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 qQ#bGVgy?sST=!NAQAO0uCozQ0h literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/9_green.png b/apps/python/F12020Leaderboard/ui/9_green.png new file mode 100644 index 0000000000000000000000000000000000000000..837d4b5b8b304b72f4598049dc4dcfdd472d8448 GIT binary patch literal 16242 zcmeI3e{2)y8OJYygf1OF!b(99ZN{_>Bb?87{&^S23B*aAwoX~%K|qj+l5+4ggas5`(>=uQ3(lg?^wK z0w5$s8;pN>{Vk(G5*v(LY(BFu)(rY2?@%0c4z>G*p?-lCjg9UqSBirHB0%L0sYp1g zaH$4kIxYvlYt59=knW=PHyAf)2@PGoO@?MU4h%MvofK$`)8JrDw2gH#*7XL)Oxr0l zOVL)+Omk+IGt-9b%jm9x-&}Dq$aQ#Hv+1DKVC+-X7)MdbWYUzhnB;hfqFI)u%nZda zBi7eGq_PGwE0*{f18U!0;ynrGIrgOoIjO!H)9>7|gV zkPFV0YmNh6mE(R{4!bj}Y|}JCLvypXsvL&3TcoHcCzY?dC{&WKcRm{M@G5XKX2wjK z?eNdfFr3xKSD(|(5LtX9ru%gPHnp>lZDh`h@Gs{n=F3POki z7nI`>UUf?mJ_M*(G~}Z4jRie(%ZO{1!*U#s2)HdSs#J4Hl^>+k`}jc+R|?7ji;})X zH}aw4)@esrN?&R*KCS?5AvGAMS5ofU%w2k#CO@2Xu68~G+-%_}^Ue8D<|3eSZOkR) z>1I^!qO?6BEEUfq(^@>e!r_#pqAe?*k86u6DjyXN7g2|5@DonCOo^88q{p*^xNplvEJbY}k*WdVlI(-U}0z{&~&$qS4? z(lp>n)?&7jPM9}f2?Ru7&Lt`cHY3sfaS0v|e7K;GHWv{lGY4$|h^&JQ2#k#kIIUKa zcQ7nza|T3~u~;ll2R}WR5@BYf@=6N4s0R`LT2VT|j^ft;bakb-JB}B$Bfu?ay9f|n zR8ebwSou|z=^)K4=iCs?kk6hY*$1Mt>_V9+=?=5&6*;IT`8e1Rf{SA=dt)YQu?!7g z`pUQ|HBk7(e^&vPcCd^+D3Df>XUTxgD#ABDKr#U*yqK)cfZbxAu5dvC(J5+^DFB>1 z2b_Mhg)=)jn|2NqbeLUVjB*aA(_AW$AD+<1M?*k#Q`5tlZa_!$zg)Dr?SdIF|9;Vm zPv8H8qGd{1ya`TktTQ)Fm-cgugBvc~0r>Pr2RHf|ZTaPr>EERt%i)1^f7Wh>FN)UQ zv(iF0D(%Kg3*D$Rul#ycQr%288`4~$(tZLapCzOUL6+#1aIoN@O%)jjtc>TH+5WiK8RPxg#f{uIxajP#H-^% zfZ$CX7oHE|)o~#}@TQIn&j<19xDX(CQ^$qpgLrjZ2oSufbUTH5U-940fIMm zTzEc+SI30_!JAlIRr!aKK@>iToP>`YPsFRM;p55%!Q0^@h@m?PVt6+}eD*o~{DdF| z%mi_{mms)j2x7VX!~+wp1W|5k^K9^^&i?V-(e35*iUn78Z?E?*->_tUON~0&Te-Np zx>`E9y0hNZ1?tyw{PeT^~ncfURVpy?-* z&!0YDc6t4w*4|x5A5r5Y=M1Y}+qU&u<-k+#O~xi3_4WVgUFIA2bRY56Rvhn6ChyvO z*#Eti`|5(>pEb@q^#e!Zu4O-++_U;w)7jdJs`j;x$(1{eJ=gZsH$Cz-_g|lRduV*w zypxHl7fzh!F4i2_OHWl^oVr~9YLK{b@{Yt)J|a>(Hu34%bv3`g$SxRv$yV31Ff_d9 z&_kCJ^P0+Dy!>MM$cO5$w$bbM?}Jl&%+=jq_Uxld%US!9Lmv>wUX6IKfAiO^3oYkU zT*YmPFF*X?(N{LF9y_sg=a2hd|DE-X6H6DI>KWZzcl!_!|MsT=`^YbjS37p>j~=ds z@ixm_zI5yNSBbBj`r&x_$Ccf%X?)oWe|Y(^sRyoncI$8!GktB*$c@2@lmA#x9BW)m zeE0oBr!G`A{pPiUTR+-gVZ6F_^a^p?bG1h%Duxr+){l-yvDoxp!QUJTT8p==No%>{Szh%+L{0W literal 0 HcmV?d00001 diff --git a/apps/python/F12020Leaderboard/ui/9_red.png b/apps/python/F12020Leaderboard/ui/9_red.png new file mode 100644 index 0000000000000000000000000000000000000000..7a735d654913894cbf828d89883fa7483635167e GIT binary patch literal 16225 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 nwnpND-V*M`?ndnE-8jFfnC{M`3%