diff --git a/.run/fake.run.xml b/.run/fake.run.xml
new file mode 100644
index 000000000..db1531f86
--- /dev/null
+++ b/.run/fake.run.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/config/fake/advanced.json b/config/fake/advanced.json
new file mode 100644
index 000000000..7a60986df
--- /dev/null
+++ b/config/fake/advanced.json
@@ -0,0 +1,3242 @@
+{
+ "teamOverrides": {
+ "1": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/1.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F0"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/1.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F1"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/001a.mp4"
+ }
+ }
+ },
+ "2": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/2.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F2"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/2.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F3"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/002a.mp4"
+ }
+ }
+ },
+ "3": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/3.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F4"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/3.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F5"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/003a.mp4"
+ }
+ }
+ },
+ "4": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/4.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F6"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/4.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F7"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/004a.mp4"
+ }
+ }
+ },
+ "5": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/5.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F8"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/5.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F9"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/005a.mp4"
+ }
+ }
+ },
+ "6": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/6.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F10"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/6.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F11"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/006a.mp4"
+ }
+ }
+ },
+ "7": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/7.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F12"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/7.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F13"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/007a.mp4"
+ }
+ }
+ },
+ "8": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/8.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F14"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/8.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F15"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/008a.mp4"
+ }
+ }
+ },
+ "9": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/9.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F16"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/9.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F17"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/009a.mp4"
+ }
+ }
+ },
+ "10": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/10.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F18"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/10.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F19"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/010a.mp4"
+ }
+ }
+ },
+ "11": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/11.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F20"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/11.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F21"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/011a.mp4"
+ }
+ }
+ },
+ "12": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/12.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F22"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/12.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F23"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/012a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "13": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/13.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F24"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/13.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F25"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/013a.mp4"
+ }
+ }
+ },
+ "14": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/14.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F26"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/14.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F27"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/014a.mp4"
+ }
+ }
+ },
+ "15": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/15.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F28"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/15.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F29"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/015a.mp4"
+ }
+ }
+ },
+ "16": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/16.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F30"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/16.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F31"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/016a.mp4"
+ }
+ }
+ },
+ "17": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/17.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F32"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/17.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F33"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/017a.mp4"
+ }
+ }
+ },
+ "18": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/18.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F34"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/18.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F35"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/018a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "19": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/19.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F36"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/19.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F37"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/019a.mp4"
+ }
+ }
+ },
+ "20": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/20.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F38"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/20.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F39"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/020a.mp4"
+ }
+ }
+ },
+ "21": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/21.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F40"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/21.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F41"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/021a.mp4"
+ }
+ }
+ },
+ "22": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/22.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F42"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/22.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F43"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/022a.mp4"
+ }
+ }
+ },
+ "23": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/23.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F44"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/23.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F45"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/023a.mp4"
+ }
+ }
+ },
+ "24": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/24.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F46"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/24.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F47"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/024a.mp4"
+ }
+ }
+ },
+ "25": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/25.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F48"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/25.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F49"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/025a.mp4"
+ }
+ }
+ },
+ "26": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/26.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F50"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/26.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F51"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/026a.mp4"
+ }
+ }
+ },
+ "27": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/27.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F52"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/27.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F53"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/027a.mp4"
+ }
+ }
+ },
+ "28": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/28.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F54"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/28.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F55"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/028a.mp4"
+ }
+ }
+ },
+ "29": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/29.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F56"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/29.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F57"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/029a.mp4"
+ }
+ }
+ },
+ "30": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/30.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F58"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/30.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F59"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/030a.mp4"
+ }
+ }
+ },
+ "31": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/31.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F60"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/31.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F61"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/031a.mp4"
+ }
+ }
+ },
+ "33": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/33.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F62"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/33.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F63"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/033a.mp4"
+ }
+ }
+ },
+ "34": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/34.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F64"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/34.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F65"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/034a.mp4"
+ }
+ }
+ },
+ "35": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/35.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F66"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/35.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F67"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/035a.mp4"
+ }
+ }
+ },
+ "36": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/36.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F68"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/36.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F69"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/036a.mp4"
+ }
+ }
+ },
+ "38": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/38.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F70"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/38.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F71"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/038a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "39": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/39.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F72"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/39.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F73"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/039a.mp4"
+ }
+ }
+ },
+ "40": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/40.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F74"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/40.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F75"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/040a.mp4"
+ }
+ }
+ },
+ "41": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/41.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F76"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/41.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F77"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/041a.mp4"
+ }
+ }
+ },
+ "42": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/42.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F78"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/42.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F79"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/042a.mp4"
+ }
+ }
+ },
+ "43": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/43.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F80"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/43.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F81"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/043a.mp4"
+ }
+ }
+ },
+ "44": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/44.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F82"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/44.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F83"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/044a.mp4"
+ }
+ }
+ },
+ "45": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/45.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F84"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/45.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F85"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/045a.mp4"
+ }
+ }
+ },
+ "46": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/46.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F86"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/46.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F87"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/046a.mp4"
+ }
+ }
+ },
+ "47": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/47.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F88"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/47.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F89"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/047a.mp4"
+ }
+ }
+ },
+ "48": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/48.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F90"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/48.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F91"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/048a.mp4"
+ }
+ }
+ },
+ "49": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/49.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F92"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/49.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F93"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/049a.mp4"
+ }
+ }
+ },
+ "50": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/50.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F94"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/50.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F95"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/050a.mp4"
+ }
+ }
+ },
+ "51": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/51.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F96"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/51.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F97"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/051a.mp4"
+ }
+ }
+ },
+ "52": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/52.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F98"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/52.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F99"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/052a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "53": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/53.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F100"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/53.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F101"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/053a.mp4"
+ }
+ }
+ },
+ "54": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/54.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F102"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/54.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F103"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/054a.mp4"
+ }
+ }
+ },
+ "55": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/55.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F104"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/55.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F105"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/055a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "56": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/56.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F106"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/56.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F107"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/056a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "57": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/57.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F108"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/57.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F109"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/057a.mp4"
+ }
+ }
+ },
+ "58": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/58.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F110"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/58.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F111"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/058a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "59": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/59.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F112"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/59.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F113"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/059a.mp4"
+ }
+ }
+ },
+ "60": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/60.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F114"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/60.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F115"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/060a.mp4"
+ }
+ }
+ },
+ "61": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/61.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F116"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/61.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F117"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/061a.mp4"
+ }
+ }
+ },
+ "62": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/62.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F118"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/62.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F119"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/062a.mp4"
+ }
+ }
+ },
+ "63": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/63.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F120"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/63.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F121"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/063a.mp4"
+ }
+ }
+ },
+ "64": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/64.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F122"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/64.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F123"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/064a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "65": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/65.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F124"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/65.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F125"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/065a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "66": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/66.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F126"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/66.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F127"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/066a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "67": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/67.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F128"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/67.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F129"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/067a.mp4"
+ }
+ }
+ },
+ "68": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/68.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F130"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/68.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F131"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/068a.mp4"
+ }
+ }
+ },
+ "69": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/69.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F132"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/69.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F133"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/069a.mp4"
+ }
+ }
+ },
+ "70": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/70.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F134"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/70.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F135"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/070a.mp4"
+ }
+ }
+ },
+ "71": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/71.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F136"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/71.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F137"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/071a.mp4"
+ }
+ }
+ },
+ "72": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/72.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F138"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/72.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F139"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/072a.mp4"
+ }
+ }
+ },
+ "73": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/73.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F140"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/73.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F141"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/073a.mp4"
+ }
+ }
+ },
+ "74": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/74.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F142"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/74.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F143"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/074a.mp4"
+ }
+ }
+ },
+ "75": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/75.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F144"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/75.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F145"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/075a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "76": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/76.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F146"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/76.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F147"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/076a.mp4"
+ }
+ }
+ },
+ "77": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/77.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F148"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/77.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F149"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/077a.mp4"
+ }
+ }
+ },
+ "78": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/78.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F150"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/78.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F151"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/078a.mp4"
+ }
+ }
+ },
+ "79": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/79.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F152"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/79.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F153"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/079a.mp4"
+ }
+ }
+ },
+ "80": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/80.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F154"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/80.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F155"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/080a.mp4"
+ }
+ }
+ },
+ "81": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/81.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F156"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/81.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F157"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/081a.mp4"
+ }
+ }
+ },
+ "82": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/82.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F158"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/82.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F159"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/082a.mp4"
+ }
+ }
+ },
+ "83": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/83.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F160"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/83.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F161"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/083a.mp4"
+ }
+ }
+ },
+ "84": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/84.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F162"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/84.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F163"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/084a.mp4"
+ }
+ }
+ },
+ "85": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/85.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F164"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/85.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F165"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/085a.mp4"
+ }
+ }
+ },
+ "86": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/86.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F166"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/86.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F167"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/086a.mp4"
+ }
+ }
+ },
+ "88": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/88.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F168"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/88.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F169"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/088a.mp4"
+ }
+ }
+ },
+ "89": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/89.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F170"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/89.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F171"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/089a.mp4"
+ }
+ }
+ },
+ "90": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/90.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F172"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/90.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F173"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/090a.mp4"
+ }
+ }
+ },
+ "91": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/91.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F174"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/91.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F175"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/091a.mp4"
+ }
+ }
+ },
+ "92": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/92.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F176"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/92.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F177"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/092a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "93": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/93.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F178"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/93.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F179"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/093a.mp4"
+ }
+ }
+ },
+ "94": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/94.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F180"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/94.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F181"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/094a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "95": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/95.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F182"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/95.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F183"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/095a.mp4"
+ }
+ }
+ },
+ "96": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/96.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F184"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/96.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F185"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/096a.mp4"
+ }
+ }
+ },
+ "97": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/97.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F186"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/97.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F187"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/097a.mp4"
+ }
+ }
+ },
+ "98": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/98.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F188"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/98.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F189"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/098a.mp4"
+ }
+ }
+ },
+ "99": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/99.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F190"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/99.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F191"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/099a.mp4"
+ }
+ }
+ },
+ "100": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/100.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F192"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/100.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F193"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/100a.mp4"
+ }
+ }
+ },
+ "101": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/101.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F194"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/101.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F195"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/101a.mp4"
+ }
+ }
+ },
+ "102": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/102.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F196"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/102.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F197"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/102a.mp4"
+ }
+ }
+ },
+ "103": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/103.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F198"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/103.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F199"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/103a.mp4"
+ }
+ }
+ },
+ "104": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/104.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F200"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/104.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F201"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/104a.mp4"
+ }
+ }
+ },
+ "105": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/105.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F202"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/105.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F203"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/105a.mp4"
+ }
+ }
+ },
+ "106": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/106.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F204"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/106.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F205"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/106a.mp4"
+ }
+ }
+ },
+ "107": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/107.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F206"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/107.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F207"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/107a.mp4"
+ }
+ }
+ },
+ "108": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/108.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F208"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/108.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F209"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/108a.mp4"
+ }
+ }
+ },
+ "109": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/109.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F210"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/109.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F211"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/109a.mp4"
+ }
+ }
+ },
+ "110": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/110.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F212"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/110.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F213"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/110a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "111": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/111.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F214"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/111.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F215"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/111a.mp4"
+ }
+ }
+ },
+ "112": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/112.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F216"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/112.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F217"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/112a.mp4"
+ }
+ }
+ },
+ "113": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/113.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F218"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/113.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F219"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/113a.mp4"
+ }
+ }
+ },
+ "114": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/114.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F220"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/114.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F221"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/114a.mp4"
+ }
+ }
+ },
+ "115": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/115.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F222"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/115.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F223"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/115a.mp4"
+ }
+ }
+ },
+ "116": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/116.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F224"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/116.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F225"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/116a.mp4"
+ }
+ }
+ },
+ "117": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/117.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F226"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/117.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F227"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/117a.mp4"
+ }
+ }
+ },
+ "118": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/118.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F228"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/118.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F229"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/118a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "119": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/119.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F230"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/119.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F231"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/119a.mp4"
+ }
+ }
+ },
+ "120": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/120.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F232"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/120.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F233"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/120a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "121": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/121.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F234"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/121.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F235"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/121a.mp4"
+ }
+ }
+ },
+ "122": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/122.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F236"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/122.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F237"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/122a.mp4"
+ }
+ }
+ },
+ "123": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/123.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F238"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/123.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F239"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/123a.mp4"
+ }
+ }
+ },
+ "124": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/124.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F240"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/124.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F241"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/124a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "125": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/125.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F242"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/125.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F243"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/125a.mp4"
+ }
+ }
+ },
+ "126": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/126.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F244"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/126.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F245"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/126a.mp4"
+ }
+ }
+ },
+ "127": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/127.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F246"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/127.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F247"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/127a.mp4"
+ }
+ }
+ },
+ "128": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/128.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F248"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/128.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F249"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/128a.mp4"
+ }
+ }
+ },
+ "129": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/129.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F250"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/129.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F251"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/129a.mp4"
+ }
+ }
+ },
+ "130": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/130.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F252"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/130.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F253"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/130a.mp4"
+ }
+ }
+ },
+ "131": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/131.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F254"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/131.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F255"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/131a.mp4"
+ }
+ },
+ "groups": [
+ "Asia and south pacific"
+ ]
+ },
+ "132": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/132.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F256"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/132.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F257"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/132a.mp4"
+ }
+ }
+ },
+ "133": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/133.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F258"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/133.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F259"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/133a.mp4"
+ }
+ }
+ },
+ "135": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/135.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F260"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/135.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F261"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/135a.mp4"
+ }
+ }
+ },
+ "136": {
+ "medias": {
+ "achievement": {
+ "type": "Object",
+ "url": "/media/achievements/136.svg"
+ },
+ "screen": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F262"
+ },
+ "photo": {
+ "type": "Photo",
+ "url": "/media/team_photos/136.jpg"
+ },
+ "camera": {
+ "type": "WebRTCProxyConnection",
+ "url": "http://172.24.0.181:9080/c?source=http%3A%2F%2Flive%3Alanded-wafer-state-diner%40172.29.1.207%3A8080%2Fstream%2F263"
+ },
+ "record": {
+ "type": "Video",
+ "url": "/media/record/136a.mp4"
+ }
+ }
+ }
+ },
+ "scoreboardOverrides": {
+ "medals": [
+ {
+ "name": "gold",
+ "count": 4
+ },
+ {
+ "name": "silver",
+ "count": 4
+ },
+ {
+ "name": "bronze",
+ "count": 4
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/config/fake/events.properties b/config/fake/events.properties
new file mode 100644
index 000000000..2a3dc0ce2
--- /dev/null
+++ b/config/fake/events.properties
@@ -0,0 +1,3 @@
+standings.type=CLICS
+url=http://localhost:8000
+use_team_names=false
diff --git a/settings.gradle.kts b/settings.gradle.kts
index db5b64527..43d85c628 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -11,7 +11,7 @@ dependencyResolutionManagement {
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
-include(":sniper-tools", ":reactions-bot", ":common", ":cds", ":frontend", ":backend", ":cds-converter")
+include(":sniper-tools", ":reactions-bot", ":common", ":cds", ":frontend", ":backend", ":cds-converter", ":faker")
project(":sniper-tools").projectDir = file("src/sniper-tools")
project(":common").projectDir = file("src/common")
project(":reactions-bot").projectDir = file("src/reactions-bot")
@@ -19,3 +19,4 @@ project(":cds").projectDir = file("src/cds")
project(":frontend").projectDir = file("src/frontend")
project(":backend").projectDir = file("src/backend")
project(":cds-converter").projectDir = file("src/cds-converter")
+project(":faker").projectDir = file("src/faker")
diff --git a/src/faker/main.py b/src/faker/main.py
new file mode 100644
index 000000000..767884f9b
--- /dev/null
+++ b/src/faker/main.py
@@ -0,0 +1,100 @@
+import asyncio
+import uvicorn
+import json
+import datetime
+from starlette.applications import Starlette
+from starlette.routing import Route
+from starlette.responses import HTMLResponse, StreamingResponse
+
+events = []
+with open("./event-feed.json") as f:
+ for line in f.readlines():
+ events.append(json.loads(line))
+print(f"Read {len(events)} events")
+
+def event_key(event):
+ if "data" in event:
+ if "start_time" in event["data"]:
+ return event["data"]["start_time"]
+ if "time" in event["data"]:
+ return event["data"]["time"]
+ return ""
+
+# events.sort(key=event_key)
+cur_pos = 0
+
+def read_until(predicate):
+ global cur_pos
+ while not predicate(events[cur_pos]):
+ cur_pos += 1
+
+def is_submission(ev):
+ return ev["type"] == "submissions"
+
+def is_ac(ev):
+ return "data" in ev and ev["data"].get("judgement_type_id") == "AC"
+
+read_until(is_submission)
+
+generators = []
+
+start_clock = datetime.datetime.now()
+async def make_event_from_now(ev):
+ if ev["type"] == "contest":
+ ev["data"]["start_time"] = start_clock.isoformat()
+ if "data" in ev:
+ if "time" in ev["data"]:
+ ev["data"]["time"] = datetime.datetime.now().isoformat()
+ return ev
+
+async def event_generator():
+ ev = asyncio.Event()
+ generators.append(ev)
+ self_pos = 0
+ while True:
+ ev.clear()
+ for i in range(self_pos, cur_pos):
+ print(f"Sending event {i}")
+ evi = await make_event_from_now(events[i])
+ yield json.dumps(evi).encode() + b"\n"
+ self_pos = cur_pos
+ await ev.wait()
+
+
+async def sse(request):
+ return StreamingResponse(event_generator())
+
+async def notify():
+ for generator in generators:
+ generator.set()
+async def increment(request):
+ global cur_pos
+ cur_pos += 1
+ await notify()
+ return HTMLResponse("ok")
+
+async def skip(request):
+ read_until(is_submission)
+ global cur_pos
+ cur_pos += 1
+ await notify()
+ return HTMLResponse("ok")
+
+async def ac(request):
+ read_until(is_ac)
+ global cur_pos
+ cur_pos += 1
+ await notify()
+ return HTMLResponse("ok")
+
+routes = [
+ Route("/event-feed", endpoint=sse),
+ Route("/increment", endpoint=increment),
+ Route("/skip", endpoint=skip),
+ Route("/ac", endpoint=ac)
+]
+
+app = Starlette(debug=True, routes=routes)
+
+if __name__ == "__main__":
+ uvicorn.run(app, host="0.0.0.0", port=8000, log_level='info')
diff --git a/src/frontend/overlay/.eslintrc.json b/src/frontend/overlay/.eslintrc.json
deleted file mode 100644
index da069c779..000000000
--- a/src/frontend/overlay/.eslintrc.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "ignorePatterns": [
- "build/**"
- ],
- "env": {
- "node": true,
- "browser": true,
- "es2021": true
- },
- "extends": [
- "eslint:recommended",
- "plugin:react/recommended"
- ],
- "settings": {
- "react": {
- "version": "detect"
- }
- },
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- },
- "ecmaVersion": 12,
- "sourceType": "module"
- },
- "plugins": [
- "react"
- ],
- "rules": {
- "indent": [
- "error",
- 4
- ],
- "linebreak-style": [
- "error",
- "unix"
- ],
- "quotes": [
- "error",
- "double"
- ],
- "semi": [
- "error",
- "always"
- ],
- "eol-last": [
- "error",
- "always"
- ],
- "no-case-declarations": "off",
- "object-curly-spacing": [
- "error",
- "always"
- ],
- "no-unused-vars": [
- "warn"
- ],
- "react/prop-types": [
- "off"
- ]
- }
-}
diff --git a/src/frontend/overlay/src/components/atoms/ContestCells.jsx b/src/frontend/overlay/src/components/atoms/ContestCells.jsx
index ffc5d8a7d..3cfb8d4b9 100644
--- a/src/frontend/overlay/src/components/atoms/ContestCells.jsx
+++ b/src/frontend/overlay/src/components/atoms/ContestCells.jsx
@@ -157,7 +157,7 @@ export const VerdictCell = ({
runData: data,
...props
}) => {
- console.log(data);
+ // console.log(data);
if (data.result === undefined) {
return ;
}
diff --git a/src/frontend/overlay/src/components/atoms/ContestLabels2.jsx b/src/frontend/overlay/src/components/atoms/ContestLabels2.jsx
index 27c1be859..49960845d 100644
--- a/src/frontend/overlay/src/components/atoms/ContestLabels2.jsx
+++ b/src/frontend/overlay/src/components/atoms/ContestLabels2.jsx
@@ -31,9 +31,18 @@ export const IOITaskResult = PropTypes.shape({
score: PropTypes.number,
});
-const ICPCVerdictLabel = ({ runResult, ...props }) => {
+const VerdictLabel = styled(ShrinkingBox2)`
+ background-color: ${({ color }) => color};
+ font-size: 14px;
+ font-weight: 700;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`
+
+const ICPCVerdictLabel = ({ runResult, className }) => {
const color = runResult?.verdict.isAccepted ? VERDICT_OK2 : VERDICT_NOK2;
- return ;
+ return ;
};
ICPCVerdictLabel.propTypes = {
@@ -95,6 +104,7 @@ const VerdictCellProgressBar2 = styled.div.attrs(({width}) => ({
}
}))`
height: 100%;
+ transition: width 250ms linear;
background-color: ${VERDICT_UNKNOWN2};
`;
diff --git a/src/frontend/overlay/src/components/atoms/ProblemLabel.jsx b/src/frontend/overlay/src/components/atoms/ProblemLabel.jsx
index 819084f33..797482f75 100644
--- a/src/frontend/overlay/src/components/atoms/ProblemLabel.jsx
+++ b/src/frontend/overlay/src/components/atoms/ProblemLabel.jsx
@@ -19,7 +19,7 @@ const StyledProblemLabel = styled.div`
export const ProblemLabel = ({letter, problemColor, className}) => {
const dark = isShouldUseDarkColor(problemColor);
- console.log(dark);
+ // console.log(dark);
return ({
transition: bottom linear ${({ fts }) => fts ? QUEUE_ROW_FTS_TRANSITION_TIME : QUEUE_ROW_TRANSITION_TIME}ms;
animation: ${({ animation }) => animation} ${QUEUE_ROW_APPEAR_TIME}ms linear;
animation-fill-mode: forwards;
+
+ // styles below are needed for the padding-bottom based animation
+ // If you remove any one of them - the animation breaks
+ // And god knows why
box-sizing: border-box;
+ display: flex;
+ height: 25px;
+ align-items: flex-end;
`;
const FeaturedRunQueueRow = styled.div.attrs(({ zIndex, height }) => ({
@@ -65,25 +72,35 @@ const rowExpand = (fullHeight) => keyframes`
const rowContract = (fullHeight) => keyframes`
from {
- max-height: ${fullHeight}px;
+ padding-bottom: 0;
}
to {
- max-height: 0;
+ padding-bottom: ${fullHeight}px;
}
`;
const contractionStatesFeatured = (fullHeight) => ({
entering: {},
- entered: { animation: rowExpand(fullHeight) },
- exiting: { animation: rowContract(fullHeight) },
+ entered: {
+ // animation: rowExpand(fullHeight),
+ },
+ exiting: {
+ // animation: rowContract(fullHeight),
+ },
exited: {},
});
const contractionStates = (fullHeight) => ({
- entering: { animation: rowExpand(fullHeight) },
+ entering: {
+ animation: rowExpand(fullHeight),
+ style: {alignItems: "flex-start"},
+ },
entered: {},
- exiting: { animation: rowContract(fullHeight) },
+ exiting: {
+ animation: rowContract(fullHeight),
+ // style: {alignItems: "flex-start"},
+ },
exited: {},
});
@@ -98,20 +115,22 @@ const useQueueRowsData = ({
const [isFeaturedRunMediaLoaded, setIsFeaturedRunMediaLoaded] = useState(false);
- const rows = [];
+ let rows = [];
let featured = null;
let totalFts = 0;
queue.forEach((run, runIndex) => {
const row = {
...run,
isEven: (totalQueueItems - runIndex) % 2 === 0,
- zIndex: basicZIndex + runIndex,
+ zIndex: basicZIndex - runIndex + totalQueueItems,
bottom: 0,
isFeatured: false,
isFeaturedRunMediaLoaded: false,
isFts: run.result?.isFirstToSolveRun ?? false,
};
- totalFts += row.isFts;
+ if (row.isFts) {
+ totalFts++;
+ }
if (run.featuredRunMedia && featuredRunsRow.length === 0) {
row.isFeatured = true;
row.isFeaturedRunMediaLoaded = isFeaturedRunMediaLoaded;
@@ -131,14 +150,20 @@ const useQueueRowsData = ({
let ftsRowCount = 0;
let regularRowCount = 0;
rows.forEach((row) => {
- if(row.isFts) {
- row.bottom = (height - (QUEUE_ROW_HEIGHT2 + 3) * (totalFts - ftsRowCount));
+ if (row.isFts) {
+ row.bottom = (height - (QUEUE_ROW_HEIGHT2 + 3) * (totalFts - ftsRowCount)) + 3;
+ console.log(row.bottom);
+ console.log(height);
ftsRowCount++;
} else {
row.bottom = (QUEUE_ROW_HEIGHT2 + 3) * regularRowCount;
regularRowCount++;
}
});
+ const allowedRegular = QUEUE_MAX_ROWS - ftsRowCount;
+ rows = rows.filter((row, index) => {
+ return row.isFts || index < allowedRegular;
+ });
return [featured, rows];
};
@@ -191,14 +216,14 @@ export const QueueRow = ({ runInfo, flashing }) => {
const probData = useSelector((state) => state.contestInfo.info?.problemsId[runInfo.problemId]);
return
-
-
+
+
-
-
+
+
;
};
@@ -218,7 +243,7 @@ const FeaturedRunRow2 = ({ isFeatured, isLoaded, setIsLoaded, height, media, zIn
console.log(state, actualState, Date.now() / 1000, height, actualHeight);
return (
@@ -256,6 +281,7 @@ const RowsContainer = styled.div`
const QueueHeader = styled.div`
font-size: 32px;
font-weight: 700;
+ line-height: 44px;
color: white;
width: 100%;
display: flex;
@@ -268,8 +294,9 @@ const Title = styled.div`
const Caption = styled.div`
`;
-export const Queue2 = ({ widgetData }) => {
- const { sizeX: width, sizeY: height } = widgetData.location;
+export const Queue2 = ({ }) => {
+ const [width, setWidth] = useState(null);
+ const [height, setHeight] = useState(null);
const [featured, queueRows] = useQueueRowsData({ width, height });
return
@@ -281,7 +308,13 @@ export const Queue2 = ({ widgetData }) => {
{QUEUE_CAPTION}
-
+ {
+ if (el != null) {
+ const bounding = el.getBoundingClientRect();
+ setWidth(bounding.width);
+ setHeight(bounding.height);
+ }
+ }}>
{queueRows.map(row => (
@@ -301,7 +334,8 @@ export const Queue2 = ({ widgetData }) => {
{/* height={row.featuredRunMediaHeight}*/}
{/* zIndex={QUEUE_BASIC_ZINDEX + 20}*/}
{/*/>*/}
-
+
);
}}
diff --git a/src/frontend/overlay/src/index.jsx b/src/frontend/overlay/src/index.jsx
index 5758bee03..74d0f47f1 100644
--- a/src/frontend/overlay/src/index.jsx
+++ b/src/frontend/overlay/src/index.jsx
@@ -17,9 +17,7 @@ export const GlobalStyle = createGlobalStyle`
height: 100vh;
width: 100vw;
- font-family: -apple-system, BlinkMacSystemFont, 'Noto Color Emoji', 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
- sans-serif;
+ font-family: Helvetica, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;