cuju-render 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. cuju/render/__init__.py +759 -0
  2. cuju/render/__main__.py +1065 -0
  3. cuju/render/_export/__init__.py +3 -0
  4. cuju/render/_export/feed.py +542 -0
  5. cuju/render/_export/sizes.py +157 -0
  6. cuju/render/_export/video.py +1618 -0
  7. cuju/render/_export/video_jobs.py +408 -0
  8. cuju/render/_format/__init__.py +3 -0
  9. cuju/render/_format/annotations.py +235 -0
  10. cuju/render/_format/codec.py +307 -0
  11. cuju/render/_format/keep.py +121 -0
  12. cuju/render/_format/recording.py +860 -0
  13. cuju/render/_format/writer.py +54 -0
  14. cuju/render/_guide/__init__.py +3 -0
  15. cuju/render/_guide/doctor.py +523 -0
  16. cuju/render/_guide/help.py +62 -0
  17. cuju/render/_guide/tutorial.py +254 -0
  18. cuju/render/_http/__init__.py +3 -0
  19. cuju/render/_http/commands.py +57 -0
  20. cuju/render/_http/headers.py +103 -0
  21. cuju/render/_http/launch.py +500 -0
  22. cuju/render/_http/launchers.py +408 -0
  23. cuju/render/_http/pwa.py +128 -0
  24. cuju/render/_http/server.py +2105 -0
  25. cuju/render/_http/window.py +360 -0
  26. cuju/render/_moments/__init__.py +3 -0
  27. cuju/render/_moments/captions.py +284 -0
  28. cuju/render/_moments/events.py +1123 -0
  29. cuju/render/_moments/search.py +694 -0
  30. cuju/render/_packages/__init__.py +3 -0
  31. cuju/render/_packages/glsl.py +746 -0
  32. cuju/render/_packages/loudness.py +334 -0
  33. cuju/render/_packages/pack.py +1959 -0
  34. cuju/render/_packages/presentation.py +1376 -0
  35. cuju/render/_packages/vocabulary.py +609 -0
  36. cuju/render/_playing/__init__.py +3 -0
  37. cuju/render/_playing/achievements.py +463 -0
  38. cuju/render/_playing/bench.py +609 -0
  39. cuju/render/_playing/challenges.py +1813 -0
  40. cuju/render/_playing/demo.py +323 -0
  41. cuju/render/_playing/draw.py +211 -0
  42. cuju/render/_playing/errors.py +20 -0
  43. cuju/render/_playing/game.py +645 -0
  44. cuju/render/_playing/limits.py +339 -0
  45. cuju/render/_playing/play.py +926 -0
  46. cuju/render/_playing/policy_worker.py +250 -0
  47. cuju/render/_playing/strict.py +810 -0
  48. cuju/render/_registry/__init__.py +3 -0
  49. cuju/render/_registry/clips.py +394 -0
  50. cuju/render/_registry/joints.py +108 -0
  51. cuju/render/_registry/teams.py +2058 -0
  52. cuju/render/_store/__init__.py +3 -0
  53. cuju/render/_store/home.py +70 -0
  54. cuju/render/_store/library.py +604 -0
  55. cuju/render/_store/samples.py +163 -0
  56. cuju/render/_text/__init__.py +3 -0
  57. cuju/render/_text/languages.py +637 -0
  58. cuju/render/_text/messages.py +1396 -0
  59. cuju/render/_tournaments/__init__.py +3 -0
  60. cuju/render/_tournaments/results.py +547 -0
  61. cuju/render/_tournaments/tournament.py +2742 -0
  62. cuju/render/_tournaments/tournament_cli.py +587 -0
  63. cuju/render/_tournaments/tournament_runner.py +1975 -0
  64. cuju/render/_version.py +6 -0
  65. cuju/render/_watch/__init__.py +3 -0
  66. cuju/render/_watch/grid.py +265 -0
  67. cuju/render/_watch/live.py +664 -0
  68. cuju/render/_watch/notebook.py +79 -0
  69. cuju/render/_watch/show.py +171 -0
  70. cuju/render/samples/sample-11v11.cjr +0 -0
  71. cuju/render/samples/sample-5v5.cjr +0 -0
  72. cuju/render/samples/teams/starter/main.py +33 -0
  73. cuju/render/scenarios/benchmark_full_game_11_vs_11_easy.py +46 -0
  74. cuju/render/scenarios/benchmark_full_game_11_vs_11_hard.py +46 -0
  75. cuju/render/scenarios/benchmark_full_game_11_vs_11_medium.py +46 -0
  76. cuju/render/scenarios/benchmark_full_game_5_vs_5_easy.py +34 -0
  77. cuju/render/scenarios/benchmark_full_game_5_vs_5_hard.py +34 -0
  78. cuju/render/scenarios/benchmark_full_game_5_vs_5_medium.py +34 -0
  79. cuju/render/web/assets/adboard_polygon.webp +0 -0
  80. cuju/render/web/assets/adboard_your_ad_here.webp +0 -0
  81. cuju/render/web/assets/animations/kaykit-rig-medium-combatmelee.glb +0 -0
  82. cuju/render/web/assets/animations/kaykit-rig-medium-general.glb +0 -0
  83. cuju/render/web/assets/animations/kaykit-rig-medium-movementadvanced.glb +0 -0
  84. cuju/render/web/assets/animations/kaykit-rig-medium-movementbasic.glb +0 -0
  85. cuju/render/web/assets/animations/kaykit-rig-medium-simulation.glb +0 -0
  86. cuju/render/web/assets/animations/kaykit-rig-medium-special.glb +0 -0
  87. cuju/render/web/assets/ball.glb +0 -0
  88. cuju/render/web/assets/challenges/3_vs_1_with_keeper.mp4 +0 -0
  89. cuju/render/web/assets/challenges/3_vs_1_with_keeper.webp +0 -0
  90. cuju/render/web/assets/challenges/corner.mp4 +0 -0
  91. cuju/render/web/assets/challenges/corner.webp +0 -0
  92. cuju/render/web/assets/challenges/counterattack_easy.mp4 +0 -0
  93. cuju/render/web/assets/challenges/counterattack_easy.webp +0 -0
  94. cuju/render/web/assets/challenges/counterattack_hard.mp4 +0 -0
  95. cuju/render/web/assets/challenges/counterattack_hard.webp +0 -0
  96. cuju/render/web/assets/challenges/empty_goal.mp4 +0 -0
  97. cuju/render/web/assets/challenges/empty_goal.webp +0 -0
  98. cuju/render/web/assets/challenges/empty_goal_close.mp4 +0 -0
  99. cuju/render/web/assets/challenges/empty_goal_close.webp +0 -0
  100. cuju/render/web/assets/challenges/manifest.json +375 -0
  101. cuju/render/web/assets/challenges/one_on_one.mp4 +0 -0
  102. cuju/render/web/assets/challenges/one_on_one.webp +0 -0
  103. cuju/render/web/assets/challenges/one_on_one_hard.mp4 +0 -0
  104. cuju/render/web/assets/challenges/one_on_one_hard.webp +0 -0
  105. cuju/render/web/assets/challenges/pass_and_shoot_with_keeper.mp4 +0 -0
  106. cuju/render/web/assets/challenges/pass_and_shoot_with_keeper.webp +0 -0
  107. cuju/render/web/assets/challenges/run_pass_and_shoot_with_keeper.mp4 +0 -0
  108. cuju/render/web/assets/challenges/run_pass_and_shoot_with_keeper.webp +0 -0
  109. cuju/render/web/assets/challenges/run_to_score.mp4 +0 -0
  110. cuju/render/web/assets/challenges/run_to_score.webp +0 -0
  111. cuju/render/web/assets/challenges/run_to_score_with_keeper.mp4 +0 -0
  112. cuju/render/web/assets/challenges/run_to_score_with_keeper.webp +0 -0
  113. cuju/render/web/assets/challenges/single_goal_versus_lazy.mp4 +0 -0
  114. cuju/render/web/assets/challenges/single_goal_versus_lazy.webp +0 -0
  115. cuju/render/web/assets/crowd.webp +0 -0
  116. cuju/render/web/assets/crowd_normal.webp +0 -0
  117. cuju/render/web/assets/cuju-logo-384.png +0 -0
  118. cuju/render/web/assets/cuju-logo.png +0 -0
  119. cuju/render/web/assets/cuju-logo.svg +46 -0
  120. cuju/render/web/assets/cuju-mark-light.svg +33 -0
  121. cuju/render/web/assets/cuju-mark.svg +33 -0
  122. cuju/render/web/assets/goal.glb +0 -0
  123. cuju/render/web/assets/grass.webp +0 -0
  124. cuju/render/web/assets/hair_black.png +0 -0
  125. cuju/render/web/assets/hair_blonde.png +0 -0
  126. cuju/render/web/assets/hair_brown.png +0 -0
  127. cuju/render/web/assets/hair_darkblonde.png +0 -0
  128. cuju/render/web/assets/hair_long01.glb +0 -0
  129. cuju/render/web/assets/hair_long02.glb +0 -0
  130. cuju/render/web/assets/hair_medium01.glb +0 -0
  131. cuju/render/web/assets/hair_red.png +0 -0
  132. cuju/render/web/assets/hair_short01.glb +0 -0
  133. cuju/render/web/assets/hair_short02.glb +0 -0
  134. cuju/render/web/assets/icons/cuju-192.png +0 -0
  135. cuju/render/web/assets/icons/cuju-512.png +0 -0
  136. cuju/render/web/assets/icons/cuju-maskable-512.png +0 -0
  137. cuju/render/web/assets/kit_goalkeeper.webp +0 -0
  138. cuju/render/web/assets/kit_mask.png +0 -0
  139. cuju/render/web/assets/kit_normal.webp +0 -0
  140. cuju/render/web/assets/manifest.json +601 -0
  141. cuju/render/web/assets/models/kaykit-barbarian.glb +0 -0
  142. cuju/render/web/assets/models/kaykit-barbarian.json +23 -0
  143. cuju/render/web/assets/models/kaykit-knight.glb +0 -0
  144. cuju/render/web/assets/models/kaykit-knight.json +23 -0
  145. cuju/render/web/assets/models/kaykit-mage.glb +0 -0
  146. cuju/render/web/assets/models/kaykit-mage.json +23 -0
  147. cuju/render/web/assets/models/kaykit-mannequin-medium.glb +0 -0
  148. cuju/render/web/assets/models/kaykit-mannequin-medium.json +23 -0
  149. cuju/render/web/assets/models/kaykit-ranger.glb +0 -0
  150. cuju/render/web/assets/models/kaykit-ranger.json +23 -0
  151. cuju/render/web/assets/models/kaykit-rogue-hooded.glb +0 -0
  152. cuju/render/web/assets/models/kaykit-rogue-hooded.json +23 -0
  153. cuju/render/web/assets/models/kaykit-rogue.glb +0 -0
  154. cuju/render/web/assets/models/kaykit-rogue.json +23 -0
  155. cuju/render/web/assets/models/kaykit-skeleton-mage.glb +0 -0
  156. cuju/render/web/assets/models/kaykit-skeleton-mage.json +23 -0
  157. cuju/render/web/assets/models/kaykit-skeleton-minion.glb +0 -0
  158. cuju/render/web/assets/models/kaykit-skeleton-minion.json +23 -0
  159. cuju/render/web/assets/models/kaykit-skeleton-rogue.glb +0 -0
  160. cuju/render/web/assets/models/kaykit-skeleton-rogue.json +23 -0
  161. cuju/render/web/assets/models/kaykit-skeleton-warrior.glb +0 -0
  162. cuju/render/web/assets/models/kaykit-skeleton-warrior.json +23 -0
  163. cuju/render/web/assets/pitch.webp +0 -0
  164. cuju/render/web/assets/pitch_normal.webp +0 -0
  165. cuju/render/web/assets/player.glb +0 -0
  166. cuju/render/web/assets/shoe.webp +0 -0
  167. cuju/render/web/assets/shoe_sole.png +0 -0
  168. cuju/render/web/assets/skin_01.png +0 -0
  169. cuju/render/web/assets/skin_02.png +0 -0
  170. cuju/render/web/assets/skin_03.png +0 -0
  171. cuju/render/web/assets/skin_04.png +0 -0
  172. cuju/render/web/assets/sounds/applause.ogg +0 -0
  173. cuju/render/web/assets/sounds/beach-wave-1.ogg +0 -0
  174. cuju/render/web/assets/sounds/beach-wave-2.ogg +0 -0
  175. cuju/render/web/assets/sounds/beach-wave-3.ogg +0 -0
  176. cuju/render/web/assets/sounds/beach-wave-4.ogg +0 -0
  177. cuju/render/web/assets/sounds/city-horn.ogg +0 -0
  178. cuju/render/web/assets/sounds/city-loop.ogg +0 -0
  179. cuju/render/web/assets/sounds/city-siren.ogg +0 -0
  180. cuju/render/web/assets/sounds/crowd-cheer.ogg +0 -0
  181. cuju/render/web/assets/sounds/crowd-loop.ogg +0 -0
  182. cuju/render/web/assets/sounds/crowd-ooh.ogg +0 -0
  183. cuju/render/web/assets/sounds/gulls.ogg +0 -0
  184. cuju/render/web/assets/sounds/neon-sting.ogg +0 -0
  185. cuju/render/web/assets/sounds/rain-loop.ogg +0 -0
  186. cuju/render/web/assets/sounds/sounds.json +46 -0
  187. cuju/render/web/assets/sounds/space-beep.ogg +0 -0
  188. cuju/render/web/assets/sounds/space-hum.ogg +0 -0
  189. cuju/render/web/assets/sounds/space-radio.ogg +0 -0
  190. cuju/render/web/assets/sounds/whistle-long.ogg +0 -0
  191. cuju/render/web/assets/sounds/whistle-short.ogg +0 -0
  192. cuju/render/web/assets/sounds/wind-loop.ogg +0 -0
  193. cuju/render/web/easy.css +357 -0
  194. cuju/render/web/export.html +23 -0
  195. cuju/render/web/feed.css +262 -0
  196. cuju/render/web/feed.html +28 -0
  197. cuju/render/web/flat.css +120 -0
  198. cuju/render/web/home.css +837 -0
  199. cuju/render/web/index.html +373 -0
  200. cuju/render/web/js/boot.js +50 -0
  201. cuju/render/web/js/broadcast/audio.js +2141 -0
  202. cuju/render/web/js/broadcast/celebrate.js +1238 -0
  203. cuju/render/web/js/broadcast/decisions.js +609 -0
  204. cuju/render/web/js/broadcast/hud.js +352 -0
  205. cuju/render/web/js/broadcast/show.js +3614 -0
  206. cuju/render/web/js/broadcast/transition.js +2231 -0
  207. cuju/render/web/js/broadcast/voices.js +153 -0
  208. cuju/render/web/js/capture.js +101 -0
  209. cuju/render/web/js/core/accessibility.js +90 -0
  210. cuju/render/web/js/core/api.js +429 -0
  211. cuju/render/web/js/core/comfort.js +135 -0
  212. cuju/render/web/js/core/i18n.js +705 -0
  213. cuju/render/web/js/core/icons.js +167 -0
  214. cuju/render/web/js/core/input-settings.js +156 -0
  215. cuju/render/web/js/core/keys.js +277 -0
  216. cuju/render/web/js/core/language-ui.js +125 -0
  217. cuju/render/web/js/core/menu.js +853 -0
  218. cuju/render/web/js/core/names.js +113 -0
  219. cuju/render/web/js/core/page-structure.js +110 -0
  220. cuju/render/web/js/core/scenarios.js +109 -0
  221. cuju/render/web/js/core/spoilers.js +236 -0
  222. cuju/render/web/js/core/typeahead.js +38 -0
  223. cuju/render/web/js/export/dom-picture.js +330 -0
  224. cuju/render/web/js/export/export-host.js +97 -0
  225. cuju/render/web/js/export/feed-dialog.js +191 -0
  226. cuju/render/web/js/export/feed-params.js +266 -0
  227. cuju/render/web/js/export/feed.js +363 -0
  228. cuju/render/web/js/export/mp4-mux.js +295 -0
  229. cuju/render/web/js/export/photo-core.js +313 -0
  230. cuju/render/web/js/export/photo.js +1314 -0
  231. cuju/render/web/js/export/safe-frame.js +59 -0
  232. cuju/render/web/js/export/size-fields.js +103 -0
  233. cuju/render/web/js/export/sizes.js +178 -0
  234. cuju/render/web/js/export/video-boot.js +55 -0
  235. cuju/render/web/js/export/video-browser.js +325 -0
  236. cuju/render/web/js/export/video-export.js +417 -0
  237. cuju/render/web/js/export/video-plan.js +207 -0
  238. cuju/render/web/js/export/video-range.js +185 -0
  239. cuju/render/web/js/export/webm-mux.js +198 -0
  240. cuju/render/web/js/feed-boot.js +151 -0
  241. cuju/render/web/js/feed-frame.js +101 -0
  242. cuju/render/web/js/help/doctor.js +488 -0
  243. cuju/render/web/js/help/firstrun.js +379 -0
  244. cuju/render/web/js/help/help-center.js +438 -0
  245. cuju/render/web/js/help/install-offer.js +164 -0
  246. cuju/render/web/js/help/install-state.js +104 -0
  247. cuju/render/web/js/help/lessons-core.js +207 -0
  248. cuju/render/web/js/help/lessons.js +463 -0
  249. cuju/render/web/js/help/palette.js +584 -0
  250. cuju/render/web/js/help/pwa.js +257 -0
  251. cuju/render/web/js/help/tour-core.js +241 -0
  252. cuju/render/web/js/help/tour.js +461 -0
  253. cuju/render/web/js/main.js +2513 -0
  254. cuju/render/web/js/pages/draw.js +188 -0
  255. cuju/render/web/js/pages/fieldpage.js +530 -0
  256. cuju/render/web/js/pages/home.js +521 -0
  257. cuju/render/web/js/pages/matches.js +779 -0
  258. cuju/render/web/js/pages/moments-ui.js +359 -0
  259. cuju/render/web/js/pages/queue-filters.js +63 -0
  260. cuju/render/web/js/pages/recording-groups.js +80 -0
  261. cuju/render/web/js/pages/recordings.js +1069 -0
  262. cuju/render/web/js/play/bench.js +347 -0
  263. cuju/render/web/js/play/challenges.js +1302 -0
  264. cuju/render/web/js/play/medals.js +127 -0
  265. cuju/render/web/js/play/play.js +1953 -0
  266. cuju/render/web/js/play/teasers.js +196 -0
  267. cuju/render/web/js/play/touch.js +350 -0
  268. cuju/render/web/js/play/tournament-layout.js +487 -0
  269. cuju/render/web/js/play/tournament-results.js +441 -0
  270. cuju/render/web/js/play/tournament-strict.js +560 -0
  271. cuju/render/web/js/play/tournament.js +2585 -0
  272. cuju/render/web/js/players/animate.js +972 -0
  273. cuju/render/web/js/players/clips.js +224 -0
  274. cuju/render/web/js/players/kaykit.js +162 -0
  275. cuju/render/web/js/players/kits.js +676 -0
  276. cuju/render/web/js/players/number-patch.js +82 -0
  277. cuju/render/web/js/players/players.js +2694 -0
  278. cuju/render/web/js/players/recolor.js +893 -0
  279. cuju/render/web/js/players/retarget.js +325 -0
  280. cuju/render/web/js/players/rig-numbers.js +174 -0
  281. cuju/render/web/js/presentation/animator.js +231 -0
  282. cuju/render/web/js/presentation/assign.js +85 -0
  283. cuju/render/web/js/presentation/behaviors.js +440 -0
  284. cuju/render/web/js/presentation/budget.js +209 -0
  285. cuju/render/web/js/presentation/catalog.js +1674 -0
  286. cuju/render/web/js/presentation/clocks.js +72 -0
  287. cuju/render/web/js/presentation/commands.js +301 -0
  288. cuju/render/web/js/presentation/contract.js +240 -0
  289. cuju/render/web/js/presentation/effects.js +904 -0
  290. cuju/render/web/js/presentation/flash.js +605 -0
  291. cuju/render/web/js/presentation/freeze-worklet.js +22 -0
  292. cuju/render/web/js/presentation/glsl.js +464 -0
  293. cuju/render/web/js/presentation/host.js +323 -0
  294. cuju/render/web/js/presentation/index.js +2066 -0
  295. cuju/render/web/js/presentation/loudness-worklet.js +235 -0
  296. cuju/render/web/js/presentation/loudness.js +740 -0
  297. cuju/render/web/js/presentation/moments.js +536 -0
  298. cuju/render/web/js/presentation/post.js +327 -0
  299. cuju/render/web/js/presentation/preview.js +180 -0
  300. cuju/render/web/js/presentation/protocol.js +174 -0
  301. cuju/render/web/js/presentation/reach.js +158 -0
  302. cuju/render/web/js/presentation/rigging.js +130 -0
  303. cuju/render/web/js/presentation/sandbox.js +157 -0
  304. cuju/render/web/js/presentation/shaders.js +235 -0
  305. cuju/render/web/js/presentation/stage.js +402 -0
  306. cuju/render/web/js/presentation/teamaudio.js +722 -0
  307. cuju/render/web/js/presentation/tracks.js +197 -0
  308. cuju/render/web/js/presentation/values.js +81 -0
  309. cuju/render/web/js/recording/annotation-data.js +203 -0
  310. cuju/render/web/js/recording/captions.js +491 -0
  311. cuju/render/web/js/recording/codec.js +185 -0
  312. cuju/render/web/js/recording/decode-worker.js +70 -0
  313. cuju/render/web/js/recording/decode.js +94 -0
  314. cuju/render/web/js/recording/episodes.js +46 -0
  315. cuju/render/web/js/recording/format.js +461 -0
  316. cuju/render/web/js/recording/live.js +348 -0
  317. cuju/render/web/js/recording/moments-query.js +59 -0
  318. cuju/render/web/js/recording/moments.js +149 -0
  319. cuju/render/web/js/recording/pose.js +86 -0
  320. cuju/render/web/js/recording/timeline.js +275 -0
  321. cuju/render/web/js/teams/art.js +50 -0
  322. cuju/render/web/js/teams/clip-editor.js +293 -0
  323. cuju/render/web/js/teams/editor.js +1979 -0
  324. cuju/render/web/js/teams/library.js +344 -0
  325. cuju/render/web/js/teams/painter.js +633 -0
  326. cuju/render/web/js/teams/surprise-ui.js +195 -0
  327. cuju/render/web/js/teams/surprise.js +497 -0
  328. cuju/render/web/js/teams/team-check.js +127 -0
  329. cuju/render/web/js/watch/annotations.js +270 -0
  330. cuju/render/web/js/watch/flat.js +366 -0
  331. cuju/render/web/js/watch/grid.js +436 -0
  332. cuju/render/web/js/watch/pitch2d.js +289 -0
  333. cuju/render/web/js/watch/player-tools.js +192 -0
  334. cuju/render/web/js/watch/presets.js +201 -0
  335. cuju/render/web/js/world/arenas.js +997 -0
  336. cuju/render/web/js/world/ball.js +204 -0
  337. cuju/render/web/js/world/cameras.js +982 -0
  338. cuju/render/web/js/world/crowd.js +376 -0
  339. cuju/render/web/js/world/field.js +227 -0
  340. cuju/render/web/js/world/framing.js +145 -0
  341. cuju/render/web/js/world/occlusion.js +48 -0
  342. cuju/render/web/js/world/pitch.js +703 -0
  343. cuju/render/web/js/world/scene.js +395 -0
  344. cuju/render/web/js/world/sky.js +325 -0
  345. cuju/render/web/js/world/stadium.js +1262 -0
  346. cuju/render/web/js/world/vendor-sky.js +367 -0
  347. cuju/render/web/js/world/weather.js +264 -0
  348. cuju/render/web/languages/en.json +4750 -0
  349. cuju/render/web/lessons.json +137 -0
  350. cuju/render/web/manifest.webmanifest +23 -0
  351. cuju/render/web/style.css +8399 -0
  352. cuju/render/web/sw.js +235 -0
  353. cuju/render/web/vendor/fabric/LICENSE +16 -0
  354. cuju/render/web/vendor/fabric/fabric.min.mjs +1 -0
  355. cuju/render/web/vendor/lucide/LICENSE +43 -0
  356. cuju/render/web/vendor/lucide/icons.js +141 -0
  357. cuju/render/web/vendor/three/LICENSE +21 -0
  358. cuju/render/web/vendor/three/build/three.core.js +60586 -0
  359. cuju/render/web/vendor/three/build/three.module.js +19719 -0
  360. cuju/render/web/vendor/three/examples/jsm/loaders/GLTFLoader.js +4925 -0
  361. cuju/render/web/vendor/three/examples/jsm/postprocessing/EffectComposer.js +365 -0
  362. cuju/render/web/vendor/three/examples/jsm/postprocessing/MaskPass.js +195 -0
  363. cuju/render/web/vendor/three/examples/jsm/postprocessing/OutputPass.js +148 -0
  364. cuju/render/web/vendor/three/examples/jsm/postprocessing/Pass.js +191 -0
  365. cuju/render/web/vendor/three/examples/jsm/postprocessing/RenderPass.js +193 -0
  366. cuju/render/web/vendor/three/examples/jsm/postprocessing/ShaderPass.js +135 -0
  367. cuju/render/web/vendor/three/examples/jsm/postprocessing/UnrealBloomPass.js +541 -0
  368. cuju/render/web/vendor/three/examples/jsm/shaders/CopyShader.js +52 -0
  369. cuju/render/web/vendor/three/examples/jsm/shaders/LuminosityHighPassShader.js +68 -0
  370. cuju/render/web/vendor/three/examples/jsm/shaders/OutputShader.js +103 -0
  371. cuju/render/web/vendor/three/examples/jsm/utils/BufferGeometryUtils.js +1501 -0
  372. cuju/render/web/vendor/three/examples/jsm/utils/SkeletonUtils.js +496 -0
  373. cuju_render-0.1.0.dist-info/METADATA +116 -0
  374. cuju_render-0.1.0.dist-info/RECORD +382 -0
  375. cuju_render-0.1.0.dist-info/WHEEL +4 -0
  376. cuju_render-0.1.0.dist-info/licenses/LICENSE +202 -0
  377. cuju_render-0.1.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +396 -0
  378. cuju_render-0.1.0.dist-info/licenses/LICENSES/CC0-1.0.txt +127 -0
  379. cuju_render-0.1.0.dist-info/licenses/LICENSES/ISC.txt +16 -0
  380. cuju_render-0.1.0.dist-info/licenses/LICENSES/MIT.txt +24 -0
  381. cuju_render-0.1.0.dist-info/licenses/LICENSES/Unlicense.txt +13 -0
  382. cuju_render-0.1.0.dist-info/licenses/NOTICE +35 -0
@@ -0,0 +1,375 @@
1
+ {
2
+ "version": 1,
3
+ "generator": "ci/make_challenge_teasers.py",
4
+ "cuju": "0.2.1",
5
+ "size": [
6
+ 480,
7
+ 270
8
+ ],
9
+ "fps": 24,
10
+ "camera": "broadcast",
11
+ "search": 40,
12
+ "challenges": {
13
+ "empty_goal_close": {
14
+ "teaser": "empty_goal_close.mp4",
15
+ "teaser_sha256": "0b75b94f3529209ab869e98ded04f7290dc0939176e627478fa5ede25c09d4ff",
16
+ "teaser_bytes": 201346,
17
+ "still": "empty_goal_close.webp",
18
+ "still_sha256": "3153c526d2521426bd5de10794418adb26e8d57a7b64e745050d2eaa1c1eb903",
19
+ "still_bytes": 16212,
20
+ "seconds": 3.4,
21
+ "quality": "standard",
22
+ "still_seconds": 0.25,
23
+ "attempts": [
24
+ {
25
+ "policy": "builtin",
26
+ "seed": 458825655,
27
+ "search_index": 1,
28
+ "goal_seconds": 0.8,
29
+ "goals": [
30
+ 1,
31
+ 0
32
+ ],
33
+ "start": 0.0,
34
+ "end": 0.8
35
+ },
36
+ {
37
+ "policy": "builtin",
38
+ "seed": 458841493,
39
+ "search_index": 3,
40
+ "goal_seconds": 0.9,
41
+ "goals": [
42
+ 1,
43
+ 0
44
+ ],
45
+ "start": 0.0,
46
+ "end": 0.9
47
+ },
48
+ {
49
+ "policy": "builtin",
50
+ "seed": 458865250,
51
+ "search_index": 6,
52
+ "goal_seconds": 0.8,
53
+ "goals": [
54
+ 1,
55
+ 0
56
+ ],
57
+ "start": 0.0,
58
+ "end": 0.8
59
+ },
60
+ {
61
+ "policy": "builtin",
62
+ "seed": 458873169,
63
+ "search_index": 7,
64
+ "goal_seconds": 0.9,
65
+ "goals": [
66
+ 1,
67
+ 0
68
+ ],
69
+ "start": 0.0,
70
+ "end": 0.9
71
+ }
72
+ ]
73
+ },
74
+ "empty_goal": {
75
+ "teaser": "empty_goal.mp4",
76
+ "teaser_sha256": "52c5673f1a4f1e6f3098f94b91f84e106cb75030a4d4db12080904f645717c00",
77
+ "teaser_bytes": 171860,
78
+ "still": "empty_goal.webp",
79
+ "still_sha256": "e030a5bdfeb2b6781d50a2a42c2a7db6ea2ef99a066fbf523440ff89c8e909d1",
80
+ "still_bytes": 10930,
81
+ "seconds": 3.5,
82
+ "quality": "standard",
83
+ "still_seconds": 0.25,
84
+ "attempts": [
85
+ {
86
+ "policy": "builtin",
87
+ "seed": 115971128,
88
+ "search_index": 0,
89
+ "goal_seconds": 6.2,
90
+ "goals": [
91
+ 1,
92
+ 0
93
+ ],
94
+ "start": 2.7,
95
+ "end": 6.2
96
+ }
97
+ ]
98
+ },
99
+ "run_to_score": {
100
+ "teaser": "run_to_score.mp4",
101
+ "teaser_sha256": "c3cafb417430838b3398f147bbbe7b3526d985b5c774da95394ed9c37c2a9ed1",
102
+ "teaser_bytes": 168228,
103
+ "still": "run_to_score.webp",
104
+ "still_sha256": "c1dbdf7ca15921feb71afd58ee23b784a3fa6b5df210a5120506b1f4f4b393e1",
105
+ "still_bytes": 11334,
106
+ "seconds": 3.5,
107
+ "quality": "standard",
108
+ "still_seconds": 0.25,
109
+ "attempts": [
110
+ {
111
+ "policy": "builtin",
112
+ "seed": 43213768,
113
+ "search_index": 1,
114
+ "goal_seconds": 6.5,
115
+ "goals": [
116
+ 1,
117
+ 0
118
+ ],
119
+ "start": 3.0,
120
+ "end": 6.5
121
+ }
122
+ ]
123
+ },
124
+ "run_to_score_with_keeper": {
125
+ "teaser": "run_to_score_with_keeper.mp4",
126
+ "teaser_sha256": "d2932ff2d5c2074b96f341bcc8f5f49ffa5a647f01f3b7e723ef37cf5407a34d",
127
+ "teaser_bytes": 173996,
128
+ "still": "run_to_score_with_keeper.webp",
129
+ "still_sha256": "bfa1ac7c38a3c924ac0187f91037623dac2efd55863ec0d90ade8146074441d1",
130
+ "still_bytes": 11354,
131
+ "seconds": 3.5,
132
+ "quality": "standard",
133
+ "still_seconds": 0.25,
134
+ "attempts": [
135
+ {
136
+ "policy": "builtin",
137
+ "seed": 1519097439,
138
+ "search_index": 11,
139
+ "goal_seconds": 7.3,
140
+ "goals": [
141
+ 1,
142
+ 0
143
+ ],
144
+ "start": 3.8,
145
+ "end": 7.3
146
+ }
147
+ ]
148
+ },
149
+ "pass_and_shoot_with_keeper": {
150
+ "teaser": "pass_and_shoot_with_keeper.mp4",
151
+ "teaser_sha256": "e9bd5117d21c7f77110ce2c705cf1d9e46eb53c892e3f58b4061898479a4fe7c",
152
+ "teaser_bytes": 147984,
153
+ "still": "pass_and_shoot_with_keeper.webp",
154
+ "still_sha256": "101b090176e97030d7c8d776a3ffab12b3a6ed278233c63254ae1f77a60b996b",
155
+ "still_bytes": 19170,
156
+ "seconds": 3.1,
157
+ "quality": "standard",
158
+ "still_seconds": 0.25,
159
+ "attempts": [
160
+ {
161
+ "policy": "builtin",
162
+ "seed": 857349382,
163
+ "search_index": 10,
164
+ "goal_seconds": 3.1,
165
+ "goals": [
166
+ 1,
167
+ 0
168
+ ],
169
+ "start": 0.0,
170
+ "end": 3.1
171
+ }
172
+ ]
173
+ },
174
+ "run_pass_and_shoot_with_keeper": {
175
+ "teaser": "run_pass_and_shoot_with_keeper.mp4",
176
+ "teaser_sha256": "0c564ab166cd1b33012fb28461c00774759678c15b57681122b73a05703fd966",
177
+ "teaser_bytes": 175418,
178
+ "still": "run_pass_and_shoot_with_keeper.webp",
179
+ "still_sha256": "9755f11361ea5427bb5028245cbcad5000e09aaa1d5bb8c5e41a1876a3e84765",
180
+ "still_bytes": 19284,
181
+ "seconds": 3.5,
182
+ "quality": "standard",
183
+ "still_seconds": 0.25,
184
+ "attempts": [
185
+ {
186
+ "policy": "scripted",
187
+ "seed": 1080530190,
188
+ "search_index": 0,
189
+ "goal_seconds": 3.8,
190
+ "goals": [
191
+ 1,
192
+ 0
193
+ ],
194
+ "start": 0.3,
195
+ "end": 3.8
196
+ }
197
+ ]
198
+ },
199
+ "3_vs_1_with_keeper": {
200
+ "teaser": "3_vs_1_with_keeper.mp4",
201
+ "teaser_sha256": "90227ebb22ccfea9379ec0e634f742153c6e7005963bdbf17ee33bd3a33dd452",
202
+ "teaser_bytes": 164337,
203
+ "still": "3_vs_1_with_keeper.webp",
204
+ "still_sha256": "2497aebf542a49996067990ff239e26e839ceabc5745f75a45a5365712380ee7",
205
+ "still_bytes": 14388,
206
+ "seconds": 3.5,
207
+ "quality": "standard",
208
+ "still_seconds": 0.25,
209
+ "attempts": [
210
+ {
211
+ "policy": "builtin",
212
+ "seed": 1090183867,
213
+ "search_index": 0,
214
+ "goal_seconds": 8.9,
215
+ "goals": [
216
+ 1,
217
+ 0
218
+ ],
219
+ "start": 5.4,
220
+ "end": 8.9
221
+ }
222
+ ]
223
+ },
224
+ "corner": {
225
+ "teaser": "corner.mp4",
226
+ "teaser_sha256": "7566f1974b874b227dac77d14c821483edaa380192e957854cffb0c5f71cec1d",
227
+ "teaser_bytes": 165282,
228
+ "still": "corner.webp",
229
+ "still_sha256": "c86c02846fb6b8937798bfe53a2d1749a48187c4cfe095f81765b3ee0d30bf4c",
230
+ "still_bytes": 14580,
231
+ "seconds": 3.5,
232
+ "quality": "standard",
233
+ "still_seconds": 0.25,
234
+ "attempts": [
235
+ {
236
+ "policy": "builtin",
237
+ "seed": 20990691,
238
+ "search_index": 17,
239
+ "goal_seconds": 3.9,
240
+ "goals": [
241
+ 1,
242
+ 0
243
+ ],
244
+ "start": 0.4,
245
+ "end": 3.9
246
+ }
247
+ ]
248
+ },
249
+ "counterattack_easy": {
250
+ "teaser": "counterattack_easy.mp4",
251
+ "teaser_sha256": "6cca6526bcc2d354778373229a56bb0d15d3237eec5b926693a75a95f7a523e9",
252
+ "teaser_bytes": 169987,
253
+ "still": "counterattack_easy.webp",
254
+ "still_sha256": "1984bd7566f5e464770dd07ae9c93ab77cbc28bd699b123636bd903599b3db14",
255
+ "still_bytes": 14166,
256
+ "seconds": 3.5,
257
+ "quality": "standard",
258
+ "still_seconds": 0.25,
259
+ "attempts": [
260
+ {
261
+ "policy": "builtin",
262
+ "seed": 684936386,
263
+ "search_index": 1,
264
+ "goal_seconds": 14.5,
265
+ "goals": [
266
+ 1,
267
+ 0
268
+ ],
269
+ "start": 11.0,
270
+ "end": 14.5
271
+ }
272
+ ]
273
+ },
274
+ "counterattack_hard": {
275
+ "teaser": "counterattack_hard.mp4",
276
+ "teaser_sha256": "51162fdd284780ba27ea0ed75ed5b38ea18a606002329498c97d0d0689038236",
277
+ "teaser_bytes": 175453,
278
+ "still": "counterattack_hard.webp",
279
+ "still_sha256": "747ced2cfac3de068a3334c006924a0e2fd376b6e64a21b31c1e16f425f811ee",
280
+ "still_bytes": 14238,
281
+ "seconds": 3.5,
282
+ "quality": "standard",
283
+ "still_seconds": 0.25,
284
+ "attempts": [
285
+ {
286
+ "policy": "builtin",
287
+ "seed": 547780759,
288
+ "search_index": 15,
289
+ "goal_seconds": 12.1,
290
+ "goals": [
291
+ 1,
292
+ 0
293
+ ],
294
+ "start": 8.6,
295
+ "end": 12.1
296
+ }
297
+ ]
298
+ },
299
+ "single_goal_versus_lazy": {
300
+ "teaser": "single_goal_versus_lazy.mp4",
301
+ "teaser_sha256": "06de3735a34543cbb916261b8e5937b6473c6adf573244f27a678732604ae479",
302
+ "teaser_bytes": 173328,
303
+ "still": "single_goal_versus_lazy.webp",
304
+ "still_sha256": "29b6c7d4d8da02d719acfaa9eddd09650b3b27fccf8164604494df66af9c0cbc",
305
+ "still_bytes": 14324,
306
+ "seconds": 3.5,
307
+ "quality": "standard",
308
+ "still_seconds": 0.25,
309
+ "attempts": [
310
+ {
311
+ "policy": "builtin",
312
+ "seed": 486986584,
313
+ "search_index": 8,
314
+ "goal_seconds": 15.8,
315
+ "goals": [
316
+ 1,
317
+ 0
318
+ ],
319
+ "start": 12.3,
320
+ "end": 15.8
321
+ }
322
+ ]
323
+ },
324
+ "one_on_one": {
325
+ "teaser": "one_on_one.mp4",
326
+ "teaser_sha256": "6016dc998bd9757a640c5c8a02e97e2de10713bda837d246ac16fd249166ff5b",
327
+ "teaser_bytes": 169782,
328
+ "still": "one_on_one.webp",
329
+ "still_sha256": "e4927a96a3eaed44174c54984de9cacc95e124df6782190a2439a289de2beec9",
330
+ "still_bytes": 10764,
331
+ "seconds": 3.5,
332
+ "quality": "standard",
333
+ "still_seconds": 0.25,
334
+ "attempts": [
335
+ {
336
+ "policy": "scripted",
337
+ "seed": 1404202632,
338
+ "search_index": 0,
339
+ "goal_seconds": 31.9,
340
+ "goals": [
341
+ 1,
342
+ 0
343
+ ],
344
+ "start": 28.4,
345
+ "end": 31.9
346
+ }
347
+ ]
348
+ },
349
+ "one_on_one_hard": {
350
+ "teaser": "one_on_one_hard.mp4",
351
+ "teaser_sha256": "9d9b6d23c3e09e65ae865c3c8abb7572df2da2cc9fa637b85472cc427ad1b5b7",
352
+ "teaser_bytes": 171279,
353
+ "still": "one_on_one_hard.webp",
354
+ "still_sha256": "1bf171a022578a46b0b416c435fe539fc970057ff698af4e91b6368d61b4f2e5",
355
+ "still_bytes": 10794,
356
+ "seconds": 3.5,
357
+ "quality": "standard",
358
+ "still_seconds": 0.25,
359
+ "attempts": [
360
+ {
361
+ "policy": "scripted",
362
+ "seed": 714400437,
363
+ "search_index": 35,
364
+ "goal_seconds": 17.4,
365
+ "goals": [
366
+ 1,
367
+ 0
368
+ ],
369
+ "start": 13.9,
370
+ "end": 17.4
371
+ }
372
+ ]
373
+ }
374
+ }
375
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,46 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
2
+ <!-- The cuju mark. The letters C, U, J and U stand in a two by two grid, each a rounded square
3
+ stroke with two copies behind it, offset down and to the right in darker grays, on a dark
4
+ square with rounded corners and a gray border that stays three quarters white over its top
5
+ left half and darkens to a quarter white at the bottom right, as the light falls on the
6
+ letters. Each gray brightens outward from near the middle of the grid. ci/make_logo.py
7
+ renders the PNG icons of the page from this file and writes the bare marks cuju-mark.svg
8
+ and cuju-mark-light.svg from its letters. -->
9
+ <defs>
10
+ <linearGradient id="ring" x1="0" y1="0" x2="1" y2="1">
11
+ <stop offset="0" stop-color="#bfbfbf"/>
12
+ <stop offset="0.5" stop-color="#bfbfbf"/>
13
+ <stop offset="1" stop-color="#404040"/>
14
+ </linearGradient>
15
+ <radialGradient id="back" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
16
+ <stop offset="0" stop-color="#47484a"/>
17
+ <stop offset="1" stop-color="#7c7c7d"/>
18
+ </radialGradient>
19
+ <radialGradient id="middle" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
20
+ <stop offset="0" stop-color="#6a6a6c"/>
21
+ <stop offset="1" stop-color="#b3b3b4"/>
22
+ </radialGradient>
23
+ <radialGradient id="front" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
24
+ <stop offset="0" stop-color="#bbbbbb"/>
25
+ <stop offset="1" stop-color="#d1d1d1"/>
26
+ </radialGradient>
27
+ </defs>
28
+ <g id="frame">
29
+ <rect width="512" height="512" rx="112" fill="url(#ring)"/>
30
+ <rect x="32" y="32" width="448" height="448" rx="80" fill="#202124"/>
31
+ </g>
32
+ <g id="mark" transform="translate(64 64)">
33
+ <path fill="url(#back)" d="M50 30H172A20 20 0 0 1 192 50H50V172H192A20 20 0 0 1 172 192H50A20 20 0 0 1 30 172V50A20 20 0 0 1 50 30Z
34
+ M222 50A20 20 0 0 1 242 30V172H364V30A20 20 0 0 1 384 50V172A20 20 0 0 1 364 192H242A20 20 0 0 1 222 172Z
35
+ M172 222A20 20 0 0 1 192 242V364A20 20 0 0 1 172 384H50A20 20 0 0 1 30 364H172Z
36
+ M222 242A20 20 0 0 1 242 222V364H364V222A20 20 0 0 1 384 242V364A20 20 0 0 1 364 384H242A20 20 0 0 1 222 364Z"/>
37
+ <path fill="url(#middle)" d="M35 15H157A20 20 0 0 1 177 35H35V157H177A20 20 0 0 1 157 177H35A20 20 0 0 1 15 157V35A20 20 0 0 1 35 15Z
38
+ M207 35A20 20 0 0 1 227 15V157H349V15A20 20 0 0 1 369 35V157A20 20 0 0 1 349 177H227A20 20 0 0 1 207 157Z
39
+ M157 207A20 20 0 0 1 177 227V349A20 20 0 0 1 157 369H35A20 20 0 0 1 15 349H157Z
40
+ M207 227A20 20 0 0 1 227 207V349H349V207A20 20 0 0 1 369 227V349A20 20 0 0 1 349 369H227A20 20 0 0 1 207 349Z"/>
41
+ <path fill="url(#front)" d="M20 0H142A20 20 0 0 1 162 20H20V142H162A20 20 0 0 1 142 162H20A20 20 0 0 1 0 142V20A20 20 0 0 1 20 0Z
42
+ M192 20A20 20 0 0 1 212 0V142H334V0A20 20 0 0 1 354 20V142A20 20 0 0 1 334 162H212A20 20 0 0 1 192 142Z
43
+ M142 192A20 20 0 0 1 162 212V334A20 20 0 0 1 142 354H20A20 20 0 0 1 0 334H142Z
44
+ M192 212A20 20 0 0 1 212 192V334H334V192A20 20 0 0 1 354 212V334A20 20 0 0 1 334 354H212A20 20 0 0 1 192 334Z"/>
45
+ </g>
46
+ </svg>
@@ -0,0 +1,33 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="408" height="408" viewBox="0 0 408 408">
2
+ <!-- The bare cuju mark in dark grays for light surfaces, the letters of the logo alone on a
3
+ clear background. ci/make_logo.py writes this file from the shapes of
4
+ cuju-logo.svg. -->
5
+ <defs>
6
+ <radialGradient id="back" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
7
+ <stop offset="0" stop-color="#8e8f92"/>
8
+ <stop offset="1" stop-color="#c5c6c8"/>
9
+ </radialGradient>
10
+ <radialGradient id="middle" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
11
+ <stop offset="0" stop-color="#5f6064"/>
12
+ <stop offset="1" stop-color="#a3a4a7"/>
13
+ </radialGradient>
14
+ <radialGradient id="front" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
15
+ <stop offset="0" stop-color="#3c3d40"/>
16
+ <stop offset="1" stop-color="#545559"/>
17
+ </radialGradient>
18
+ </defs>
19
+ <g id="mark" transform="translate(12 12)">
20
+ <path fill="url(#back)" d="M50 30H172A20 20 0 0 1 192 50H50V172H192A20 20 0 0 1 172 192H50A20 20 0 0 1 30 172V50A20 20 0 0 1 50 30Z
21
+ M222 50A20 20 0 0 1 242 30V172H364V30A20 20 0 0 1 384 50V172A20 20 0 0 1 364 192H242A20 20 0 0 1 222 172Z
22
+ M172 222A20 20 0 0 1 192 242V364A20 20 0 0 1 172 384H50A20 20 0 0 1 30 364H172Z
23
+ M222 242A20 20 0 0 1 242 222V364H364V222A20 20 0 0 1 384 242V364A20 20 0 0 1 364 384H242A20 20 0 0 1 222 364Z"/>
24
+ <path fill="url(#middle)" d="M35 15H157A20 20 0 0 1 177 35H35V157H177A20 20 0 0 1 157 177H35A20 20 0 0 1 15 157V35A20 20 0 0 1 35 15Z
25
+ M207 35A20 20 0 0 1 227 15V157H349V15A20 20 0 0 1 369 35V157A20 20 0 0 1 349 177H227A20 20 0 0 1 207 157Z
26
+ M157 207A20 20 0 0 1 177 227V349A20 20 0 0 1 157 369H35A20 20 0 0 1 15 349H157Z
27
+ M207 227A20 20 0 0 1 227 207V349H349V207A20 20 0 0 1 369 227V349A20 20 0 0 1 349 369H227A20 20 0 0 1 207 349Z"/>
28
+ <path fill="url(#front)" d="M20 0H142A20 20 0 0 1 162 20H20V142H162A20 20 0 0 1 142 162H20A20 20 0 0 1 0 142V20A20 20 0 0 1 20 0Z
29
+ M192 20A20 20 0 0 1 212 0V142H334V0A20 20 0 0 1 354 20V142A20 20 0 0 1 334 162H212A20 20 0 0 1 192 142Z
30
+ M142 192A20 20 0 0 1 162 212V334A20 20 0 0 1 142 354H20A20 20 0 0 1 0 334H142Z
31
+ M192 212A20 20 0 0 1 212 192V334H334V192A20 20 0 0 1 354 212V334A20 20 0 0 1 334 354H212A20 20 0 0 1 192 334Z"/>
32
+ </g>
33
+ </svg>
@@ -0,0 +1,33 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="408" height="408" viewBox="0 0 408 408">
2
+ <!-- The bare cuju mark in light grays for dark surfaces, the letters of the logo alone on a
3
+ clear background. ci/make_logo.py writes this file from the shapes of
4
+ cuju-logo.svg. -->
5
+ <defs>
6
+ <radialGradient id="back" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
7
+ <stop offset="0" stop-color="#47484a"/>
8
+ <stop offset="1" stop-color="#7c7c7d"/>
9
+ </radialGradient>
10
+ <radialGradient id="middle" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
11
+ <stop offset="0" stop-color="#6a6a6c"/>
12
+ <stop offset="1" stop-color="#b3b3b4"/>
13
+ </radialGradient>
14
+ <radialGradient id="front" gradientUnits="userSpaceOnUse" cx="178" cy="178" r="256">
15
+ <stop offset="0" stop-color="#bbbbbb"/>
16
+ <stop offset="1" stop-color="#d1d1d1"/>
17
+ </radialGradient>
18
+ </defs>
19
+ <g id="mark" transform="translate(12 12)">
20
+ <path fill="url(#back)" d="M50 30H172A20 20 0 0 1 192 50H50V172H192A20 20 0 0 1 172 192H50A20 20 0 0 1 30 172V50A20 20 0 0 1 50 30Z
21
+ M222 50A20 20 0 0 1 242 30V172H364V30A20 20 0 0 1 384 50V172A20 20 0 0 1 364 192H242A20 20 0 0 1 222 172Z
22
+ M172 222A20 20 0 0 1 192 242V364A20 20 0 0 1 172 384H50A20 20 0 0 1 30 364H172Z
23
+ M222 242A20 20 0 0 1 242 222V364H364V222A20 20 0 0 1 384 242V364A20 20 0 0 1 364 384H242A20 20 0 0 1 222 364Z"/>
24
+ <path fill="url(#middle)" d="M35 15H157A20 20 0 0 1 177 35H35V157H177A20 20 0 0 1 157 177H35A20 20 0 0 1 15 157V35A20 20 0 0 1 35 15Z
25
+ M207 35A20 20 0 0 1 227 15V157H349V15A20 20 0 0 1 369 35V157A20 20 0 0 1 349 177H227A20 20 0 0 1 207 157Z
26
+ M157 207A20 20 0 0 1 177 227V349A20 20 0 0 1 157 369H35A20 20 0 0 1 15 349H157Z
27
+ M207 227A20 20 0 0 1 227 207V349H349V207A20 20 0 0 1 369 227V349A20 20 0 0 1 349 369H227A20 20 0 0 1 207 349Z"/>
28
+ <path fill="url(#front)" d="M20 0H142A20 20 0 0 1 162 20H20V142H162A20 20 0 0 1 142 162H20A20 20 0 0 1 0 142V20A20 20 0 0 1 20 0Z
29
+ M192 20A20 20 0 0 1 212 0V142H334V0A20 20 0 0 1 354 20V142A20 20 0 0 1 334 162H212A20 20 0 0 1 192 142Z
30
+ M142 192A20 20 0 0 1 162 212V334A20 20 0 0 1 142 354H20A20 20 0 0 1 0 334H142Z
31
+ M192 212A20 20 0 0 1 212 192V334H334V192A20 20 0 0 1 354 212V334A20 20 0 0 1 334 354H212A20 20 0 0 1 192 334Z"/>
32
+ </g>
33
+ </svg>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file