{"generator":"Jekyll","link":[{"@attributes":{"href":"https:\/\/remyraes.com\/feed.xml","rel":"self","type":"application\/atom+xml"}},{"@attributes":{"href":"https:\/\/remyraes.com\/","rel":"alternate","type":"text\/html"}}],"updated":"2026-03-24T18:15:39+01:00","id":"https:\/\/remyraes.com\/feed.xml","title":"remyraes","subtitle":"PhD candidate based in Lille, France.","entry":[{"title":"FLInD paper submitted","link":{"@attributes":{"href":"https:\/\/remyraes.com\/flind-paper-submitted.html","rel":"alternate","type":"text\/html","title":"FLInD paper submitted"}},"published":"2026-01-22T10:44:00+01:00","updated":"2026-01-22T10:44:00+01:00","id":"https:\/\/remyraes.com\/FLInD%20paper%20submitted","content":"<p>I spent the second semester of 2025 working on an extension of our previous <a href=\".\/fli.html\">FLI<\/a> contribution.\nThis new paper presents <strong>FLInD<\/strong>, for <em>Fast Linear Interpolation in n-Dimension<\/em> (yes we\u2019re very good at naming our algorithms), a generalization of <strong>FLI<\/strong> that supports compression of multiple dimensions within a single model.<\/p>\n\n<p>You can read the preprint <a href=\"https:\/\/inria.hal.science\/hal-05547600v1\">on HAL<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"I spent the second semester of 2025 working on an extension of our previous FLI contribution. This new paper presents FLInD, for Fast Linear Interpolation in n-Dimension (yes we\u2019re very good at naming our algorithms), a generalization of FLI that supports compression of multiple dimensions within a single model."},{"title":"INTACT paper accepted!","link":{"@attributes":{"href":"https:\/\/remyraes.com\/intact-paper-accepted.html","rel":"alternate","type":"text\/html","title":"INTACT paper accepted!"}},"published":"2025-06-26T17:11:00+02:00","updated":"2025-06-26T17:11:00+02:00","id":"https:\/\/remyraes.com\/INTACT%20paper%20accepted","content":"<p>Last year, I presented the storage part of our <a href=\".\/fli.html\">FLI<\/a> contribution to the DAIS conference;\nI\u2019m glad to announce the extended, full version of the paper, including the privacy section, was accepted for publication in the <a href=\"https:\/\/journals-sol.sbc.org.br\/index.php\/jisa\/\">Journal of Internet Services and Applications<\/a>.<\/p>\n\n<p>You can read the preprint <a href=\"https:\/\/hal.science\/hal-05126130v1\">on HAL<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"Last year, I presented the storage part of our FLI contribution to the DAIS conference; I\u2019m glad to announce the extended, full version of the paper, including the privacy section, was accepted for publication in the Journal of Internet Services and Applications."},{"title":"AndroWatts paper accepted!","link":{"@attributes":{"href":"https:\/\/remyraes.com\/androwatts-accepted.html","rel":"alternate","type":"text\/html","title":"AndroWatts paper accepted!"}},"published":"2025-02-27T12:50:00+01:00","updated":"2025-02-27T12:50:00+01:00","id":"https:\/\/remyraes.com\/%20AndroWatts%20accepted","content":"<p>In this paper, named <strong>AndroWatts: Unpacking the Power Consumption of Mobile Device\u2019s Components<\/strong>, we use\ncomponent-level power measurement probes to split the smartphone\u2019s energy consumption between said components,\nand build a power usage model with a high prediction accuracy.<\/p>\n\n<blockquote>\n  <p>Power efficiency is crucial for mobile devices, where software inefficiencies can rapidly drain battery\nlife and reduce device longevity. To help developers diagnose inefficiency issues and optimize power use,\nthis paper introduces a novel methodology for estimating power consumption at a hardware component level\nin mobile devices. Unlike existing approaches that rely on coarse-grained battery discharge measurements,\nour approach consists of modeling per-component power usage as an inverse problem, utilizing linear\nstatistical models and system metrics to estimate the contributions of individual components.\n<br \/>\n<br \/>In this paper, we model the total power usage using system metrics, we evaluate the accuracy of\nper-component power estimations, and we investigate the impact of dataset size on the model\u2019s performance.\nOur empirical evaluation shows that linear models achieve high predictive accuracy, with R-squared values\nexceeding 0.90 for total power usage, and robust correlations are observed between predicted and ground-truth\npower consumption for key components such as the CPU and GPU. We also observe that the amount of measures\nrequired to build such a model is of the order of magnitude of the hundred rather than the thousand.<\/p>\n<\/blockquote>\n\n<p>You can read the publication <a href=\"https:\/\/hal.science\/hal-04928609v1\">on HAL<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"In this paper, named AndroWatts: Unpacking the Power Consumption of Mobile Device\u2019s Components, we use component-level power measurement probes to split the smartphone\u2019s energy consumption between said components, and build a power usage model with a high prediction accuracy."},{"title":"MPC paper accepted!","link":{"@attributes":{"href":"https:\/\/remyraes.com\/mpc-accepted.html","rel":"alternate","type":"text\/html","title":"MPC paper accepted!"}},"published":"2024-12-31T12:07:00+01:00","updated":"2024-12-31T12:07:00+01:00","id":"https:\/\/remyraes.com\/MPC%20accepted","content":"<p>In this paper, named <strong>Application of a predictive method to protect privacy of mobility data<\/strong>, we use the\n<a href=\".\/fli\">FLI technique<\/a> to predict where users are going, to forecast whether there will be privacy issues in\nthe near future, and reacting accordingly by enabling protections <em>before<\/em> said privacy issues occur.<\/p>\n\n<blockquote>\n  <p>Users of geo-localized applications on mobile devices need protection to avoid threats to their privacy.\nSuch protection should vary in time, to cope with the dynamical nature of mobility data. We present a method\nto protect the privacy of users of location-based services, based on Model Predictive Control techniques. We\nemploy three different predictors for future movements: an exact predictor, which serves as the baseline for\nthe best expected performance, and two additional predictors allowing for online implementation. One of these\npredictors assumes the user is moving in a way that minimizes privacy,\n<a href=\".\/fli\">while the other is a linear predictor<\/a>.\n<br \/>The method has been applied to two datasets, Privamov and Cabspotting, which contain mobility data collected\nfrom real users when using a mobile device. The method demonstrated an improvement in privacy compared to a\nstate-of-the-art mechanism by approximately 12% increase for Privamov users and 5% for Cabspotting users, while\nmaintaining the same level of utility.<\/p>\n<\/blockquote>\n\n<p>You can read the publication <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0967066124003824\">on ScienceDirect<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"In this paper, named Application of a predictive method to protect privacy of mobility data, we use the FLI technique to predict where users are going, to forecast whether there will be privacy issues in the near future, and reacting accordingly by enabling protections before said privacy issues occur."},{"title":"FLI paper accepted!","link":{"@attributes":{"href":"https:\/\/remyraes.com\/fli-paper-accepted.html","rel":"alternate","type":"text\/html","title":"FLI paper accepted!"}},"published":"2024-05-16T15:52:00+02:00","updated":"2024-05-16T15:52:00+02:00","id":"https:\/\/remyraes.com\/FLI%20paper%20accepted","content":"<p>Good news, everyone!<\/p>\n\n<p>The storage part of our <a href=\".\/fli.html\">FLI<\/a> paper was accepted at\n<a href=\"https:\/\/www.discotec.org\/2024\/dais.html\">DAIS\u201924<\/a>, which will take place\nin Groningen, Netherlands, from June 17th to June 21st.<\/p>\n\n<p>You can read the preprint <a href=\"https:\/\/inria.hal.science\/hal-04969154v3\">on HAL<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"Good news, everyone!"},{"title":"Venice abstract accepted!","link":{"@attributes":{"href":"https:\/\/remyraes.com\/venice-abstract-accepted.html","rel":"alternate","type":"text\/html","title":"Venice abstract accepted!"}},"published":"2024-05-16T15:52:00+02:00","updated":"2024-05-16T15:52:00+02:00","id":"https:\/\/remyraes.com\/Venice%20abstract%20accepted","content":"<p>Our quest for more device-to-device communication continues with <em>Venice<\/em>,\na framework that (theoretically) enables local communication between any device,\nmobile or desktop.<\/p>\n\n<p>This work will be presented in two locations:<\/p>\n<ul>\n  <li>by Adrien, at <a href=\"https:\/\/conf.researchr.org\/home\/ict4s-2024\">ICT4S\u201924<\/a>,\nwhich will take place in Stockholm, Sweden, from June 24th to June 28th;<\/li>\n  <li>by me, at <a href=\"https:\/\/2024.compas-conference.fr\/\">Compas (French national conference)<\/a>,\nwhich will take place in Nantes, France, from July 2nd to July 5th.<\/li>\n<\/ul>\n\n<p>You can read the publication <a href=\"https:\/\/hal.science\/hal-04576743\">on HAL<\/a>.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"Our quest for more device-to-device communication continues with Venice, a framework that (theoretically) enables local communication between any device, mobile or desktop."},{"title":"A comic strip about IT environmental impact","link":{"@attributes":{"href":"https:\/\/remyraes.com\/comic-strip.html","rel":"alternate","type":"text\/html","title":"A comic strip about IT environmental impact"}},"published":"2024-03-12T13:10:00+01:00","updated":"2024-03-12T13:10:00+01:00","id":"https:\/\/remyraes.com\/Comic_strip","content":"<p>In December 2023, Spirals<sup id=\"fnref:1\" role=\"doc-noteref\"><a href=\"#fn:1\" class=\"footnote\" rel=\"footnote\">1<\/a><\/sup> colleagues and I welcomed Marie Sp\u00e9nale<sup id=\"fnref:2\" role=\"doc-noteref\"><a href=\"#fn:2\" class=\"footnote\" rel=\"footnote\">2<\/a><\/sup>, comic strip author, at the lab to talk about\nour research in the team; the idea for this collaboration was to create a comic strip about a research subject,\n<strong>environmental impact of information and communications technology (ICT)<\/strong> in our case (Marie already worked with other Inria teams previously).<\/p>\n\n<p>This is a good opportunity to communicate with the outer world about what we\u2019re doing in the team, in a more accessible\nway to the public than through very serious scientific publications :)<\/p>\n\n<p>A companion blog post<sup id=\"fnref:3\" role=\"doc-noteref\"><a href=\"#fn:3\" class=\"footnote\" rel=\"footnote\">3<\/a><\/sup> was also published today on Inria\u2019s website.<\/p>\n\n<style>\np {\n    text-align: justify;\n}\niframe {\n    margin: 0 auto !important;\n}\n<\/style>\n\n<blockquote class=\"instagram-media\" data-instgrm-captioned=\"\" data-instgrm-permalink=\"https:\/\/www.instagram.com\/p\/C4YUd0WCPrB\/?utm_source=ig_embed&amp;utm_campaign=loading\" data-instgrm-version=\"14\" style=\" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\"><div style=\"padding:16px;\"> <a href=\"https:\/\/www.instagram.com\/p\/C4YUd0WCPrB\/?utm_source=ig_embed&amp;utm_campaign=loading\" style=\" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;\" target=\"_blank\"> <div style=\" display: flex; flex-direction: row; align-items: center;\"> <div style=\"background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;\"><\/div> <div style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center;\"> <div style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;\"><\/div> <div style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;\"><\/div><\/div><\/div><div style=\"padding: 19% 0;\"><\/div> <div style=\"display:block; height:50px; margin:0 auto 12px; width:50px;\"><svg width=\"50px\" height=\"50px\" viewBox=\"0 0 60 60\" version=\"1.1\" xmlns=\"https:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"https:\/\/www.w3.org\/1999\/xlink\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g transform=\"translate(-511.000000, -20.000000)\" fill=\"#000000\"><g><path d=\"M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631\"><\/path><\/g><\/g><\/g><\/svg><\/div><div style=\"padding-top: 8px;\"> <div style=\" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;\">Voir cette publication sur Instagram<\/div><\/div><div style=\"padding: 12.5% 0;\"><\/div> <div style=\"display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;\"><div> <div style=\"background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);\"><\/div> <div style=\"background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;\"><\/div> <div style=\"background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);\"><\/div><\/div><div style=\"margin-left: 8px;\"> <div style=\" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;\"><\/div> <div style=\" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)\"><\/div><\/div><div style=\"margin-left: auto;\"> <div style=\" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);\"><\/div> <div style=\" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);\"><\/div> <div style=\" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);\"><\/div><\/div><\/div> <div style=\"display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;\"> <div style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;\"><\/div> <div style=\" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;\"><\/div><\/div><\/a><p style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;\"><a href=\"https:\/\/www.instagram.com\/p\/C4YUd0WCPrB\/?utm_source=ig_embed&amp;utm_campaign=loading\" style=\" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;\" target=\"_blank\">Une publication partag\u00e9e par Marie Sp\u00e9nale (@mariespenale)<\/a><\/p><\/div><\/blockquote>\n<script async=\"\" src=\"\/\/www.instagram.com\/embed.js\"><\/script>\n\n<p>Thanks again Marie for the amazing drawings!<\/p>\n\n<hr data-content=\"footnotes\" \/>\n\n<div class=\"footnotes\" role=\"doc-endnotes\">\n  <ol>\n    <li id=\"fn:1\" role=\"doc-endnote\">\n      <p>Spirals is a joint project-team between <a href=\"https:\/\/inria.fr\">Inria<\/a> and <a href=\"https:\/\/univ-lille.fr\">University of Lille<\/a> (within <a href=\"https:\/\/www.cristal.univ-lille.fr\/\">CRIStAL lab<\/a>) which focuses on software engineering issues, self-adaptive systems, privacy protection and energy consumption optimization.\u00a0<a href=\"#fnref:1\" class=\"reversefootnote\" role=\"doc-backlink\">&#8617;<\/a><\/p>\n    <\/li>\n    <li id=\"fn:2\" role=\"doc-endnote\">\n      <p>Marie\u2019s medias: <a href=\"https:\/\/www.instagram.com\/mariespenale\">Instagram<\/a>, <a href=\"https:\/\/spenale.wordpress.com\/\">personal website<\/a>\u00a0<a href=\"#fnref:2\" class=\"reversefootnote\" role=\"doc-backlink\">&#8617;<\/a><\/p>\n    <\/li>\n    <li id=\"fn:3\" role=\"doc-endnote\">\n      <p><a href=\"https:\/\/www.inria.fr\/fr\/recherche-numerique-environnement-marie-spenale-reseaux-sociaux\">\u201cLa recherche en sciences du num\u00e9rique en faveur de l\u2019environnement illustr\u00e9e sur les r\u00e9seaux sociaux\u201d<\/a>, Inria, last accessed on Mar. 12th, 2024\u00a0<a href=\"#fnref:3\" class=\"reversefootnote\" role=\"doc-backlink\">&#8617;<\/a><\/p>\n    <\/li>\n  <\/ol>\n<\/div>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"In December 2023, Spirals1 colleagues and I welcomed Marie Sp\u00e9nale2, comic strip author, at the lab to talk about our research in the team; the idea for this collaboration was to create a comic strip about a research subject, environmental impact of information and communications technology (ICT) in our case (Marie already worked with other Inria teams previously). Spirals is a joint project-team between Inria and University of Lille (within CRIStAL lab) which focuses on software engineering issues, self-adaptive systems, privacy protection and energy consumption optimization.\u00a0&#8617; Marie\u2019s medias: Instagram, personal website\u00a0&#8617;"},{"title":"D2D framework implementation - Post mortem","link":{"@attributes":{"href":"https:\/\/remyraes.com\/venice-implementation-post-mortem.html","rel":"alternate","type":"text\/html","title":"D2D framework implementation - Post mortem"}},"published":"2024-02-16T16:14:00+01:00","updated":"2024-02-16T16:14:00+01:00","id":"https:\/\/remyraes.com\/Venice_implementation_post_mortem","content":"<p>This post is a post-mortem about the implementation of Venice<sup id=\"fnref:1\" role=\"doc-noteref\"><a href=\"#fn:1\" class=\"footnote\" rel=\"footnote\">1<\/a><\/sup>, a device-to-device (D2D) communication framework\nleveraging D2D technologies, such as Bluetooth and Wi-Fi, to transparently enable communication between two devices.<\/p>\n\n<p>I developed a <a href=\"https:\/\/github.com\/Venice-D2D\/venice_demo_app\">demonstration application<\/a> allowing to exchange files and\ntext between two smartphones, using QRCode, Bluetooth Low Energy (BLE) and Wi-Fi interchangeably.<\/p>\n\n<p>Here are some personal thoughts about this project.<\/p>\n\n<h3 id=\"flutter\">Flutter<\/h3>\n\n<p>Since the aim for this framework is to support D2D communication in a transparent way for as many platforms as possible,\nit made sense to use <a href=\"https:\/\/flutter.dev\/\">Flutter<\/a> to write it.<\/p>\n\n<p>In this context, it was a good choice because Flutter involves writing one codebase for all platforms; this is\nespecially true regarding the user interface: <a href=\"https:\/\/m3.material.io\/\">Material Design specification<\/a> is well\nimplemented within Flutter, allowing for fast prototyping and a UI that looks the same on Android, iOS, Windows and\nLinux.<\/p>\n\n<p>One annoying aspect I learnt about is the modular aspect of the framework, that allows developers to write an interface\nin Dart and its implementations using native languages.\nThis allows easier cooperation between different communities on a single package, as each community can implement its\nfavourite platform; it is however a struggle for single developers to support a package on all platforms (this point is\nhowever valid for all multiplatform frameworks, and not specific to Flutter).<\/p>\n\n<h3 id=\"android-barriers\">Android barriers<\/h3>\n\n<p>To prove the concept behind the framework, I wanted to first support communications between smartphones, and thus\nfocused Android as first platform; while doing so, I encountered a few difficulties:<\/p>\n\n<h4 id=\"hotspot-connection\">Hotspot connection<\/h4>\n\n<p>The <a href=\"https:\/\/github.com\/Venice-D2D\/wifi_data_channel\">Wi-Fi data channel<\/a> package currently relies on a Wi-Fi hotspot,\n<em>i.e.<\/em> one device starts a Wi-Fi access point, and the other connects to it.<\/p>\n\n<p>Using my Pixel 4a phone to test it, I didn\u2019t expect the Wi-Fi network joining process to be that tedious!<\/p>\n\n<ol>\n  <li>After the <code class=\"language-plaintext highlighter-rouge\">connect<\/code> method invocation, Wi-Fi network is not joined;<\/li>\n  <li>You manually have to open the Wi-Fi settings page, only to see that Wi-Wi network is listed as \u201cavailable through\napp\u201d, and is not in a connected state;<\/li>\n  <li>When tapping the network to join it, an additional popup window appears to inform user network does not have any\nInternet connection, requiring user to press a button to join said network;<\/li>\n  <li>Network is only joined after the popup message has been discarded (at last!).<\/li>\n<\/ol>\n\n<div class=\"carousel__holder\">\n    <div id=\"carousel0\" class=\"carousel\">\n        \n        <input class=\"carousel__activator\" type=\"radio\" name=\"carousel0\" id=\"0a\" checked=\"checked\" \/>\n        \n        <input class=\"carousel__activator\" type=\"radio\" name=\"carousel0\" id=\"0b\" \/>\n        \n        <input class=\"carousel__activator\" type=\"radio\" name=\"carousel0\" id=\"0c\" \/>\n        \n        <input class=\"carousel__activator\" type=\"radio\" name=\"carousel0\" id=\"0d\" \/>\n        \n        <input class=\"carousel__activator\" type=\"radio\" name=\"carousel0\" id=\"0e\" \/>\n        \n        \n        \n        \n        \n        \n        <div class=\"carousel__controls\">\n            <label class=\"carousel__control carousel__control--backward\" for=\"0e\"><\/label>\n            <label class=\"carousel__control carousel__control--forward\" for=\"0b\"><\/label>\n        <\/div>\n        \n        \n        \n        \n        \n        <div class=\"carousel__controls\">\n            <label class=\"carousel__control carousel__control--backward\" for=\"0a\"><\/label>\n            <label class=\"carousel__control carousel__control--forward\" for=\"0c\"><\/label>\n        <\/div>\n        \n        \n        \n        \n        \n        <div class=\"carousel__controls\">\n            <label class=\"carousel__control carousel__control--backward\" for=\"0b\"><\/label>\n            <label class=\"carousel__control carousel__control--forward\" for=\"0d\"><\/label>\n        <\/div>\n        \n        \n        \n        \n        \n        <div class=\"carousel__controls\">\n            <label class=\"carousel__control carousel__control--backward\" for=\"0c\"><\/label>\n            <label class=\"carousel__control carousel__control--forward\" for=\"0e\"><\/label>\n        <\/div>\n        \n        \n        \n        \n        \n        <div class=\"carousel__controls\">\n            <label class=\"carousel__control carousel__control--backward\" for=\"0d\"><\/label>\n            <label class=\"carousel__control carousel__control--forward\" for=\"0a\"><\/label>\n        <\/div>\n        \n        <div class=\"carousel__track\">\n            <ul>\n                \n                <li class=\"carousel__slide\" style=\"background-image: url('\/assets\/img\/posts\/d2d-postmortem\/1.png');\"><\/li>\n                \n                <li class=\"carousel__slide\" style=\"background-image: url('\/assets\/img\/posts\/d2d-postmortem\/2.png');\"><\/li>\n                \n                <li class=\"carousel__slide\" style=\"background-image: url('\/assets\/img\/posts\/d2d-postmortem\/3.png');\"><\/li>\n                \n                <li class=\"carousel__slide\" style=\"background-image: url('\/assets\/img\/posts\/d2d-postmortem\/4.png');\"><\/li>\n                \n                <li class=\"carousel__slide\" style=\"background-image: url('\/assets\/img\/posts\/d2d-postmortem\/5.png');\"><\/li>\n                \n            <\/ul>\n        <\/div>\n        <div class=\"carousel__indicators\">\n            \n            <label class=\"carousel__indicator\" for=\"0a\"><\/label>\n            \n            <label class=\"carousel__indicator\" for=\"0b\"><\/label>\n            \n            <label class=\"carousel__indicator\" for=\"0c\"><\/label>\n            \n            <label class=\"carousel__indicator\" for=\"0d\"><\/label>\n            \n            <label class=\"carousel__indicator\" for=\"0e\"><\/label>\n            \n        <\/div>\n    <\/div>\n<\/div>\n\n<style>\n    .carousel__holder {\n        width: 270px;\n        height: 585px;\n        position: relative;\n        padding: 0;\n        margin: 0 auto;\n    }\n    .carousel {\n        height: 100%;\n        width: 100%;\n        overflow: hidden;\n        text-align: center;\n        position: absolute;\n        padding: 0;\n    }\n    .carousel__controls,\n    .carousel__activator {\n        display: none;\n    }\n    \n    .carousel__activator:nth-of-type(1):checked ~ .carousel__track {\n                                                             -webkit-transform: translateX(-000%);\n                                                         transform: translateX(-000%);\n                                                         }\n    .carousel__activator:nth-of-type(1):checked ~ .carousel__slide:nth-of-type(1) {\n        transition: opacity 0.5s, -webkit-transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n        -webkit-transform: scale(1);\n        transform: scale(1);\n    }\n    .carousel__activator:nth-of-type(1):checked ~ .carousel__controls:nth-of-type(1) {\n        display: block;\n        opacity: 1;\n    }\n    .carousel__activator:nth-of-type(1):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(1) {\n        opacity: 1;\n    }\n    \n    .carousel__activator:nth-of-type(2):checked ~ .carousel__track {\n                                                             -webkit-transform: translateX(-100%);\n                                                         transform: translateX(-100%);\n                                                         }\n    .carousel__activator:nth-of-type(2):checked ~ .carousel__slide:nth-of-type(2) {\n        transition: opacity 0.5s, -webkit-transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n        -webkit-transform: scale(1);\n        transform: scale(1);\n    }\n    .carousel__activator:nth-of-type(2):checked ~ .carousel__controls:nth-of-type(2) {\n        display: block;\n        opacity: 1;\n    }\n    .carousel__activator:nth-of-type(2):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(2) {\n        opacity: 1;\n    }\n    \n    .carousel__activator:nth-of-type(3):checked ~ .carousel__track {\n                                                             -webkit-transform: translateX(-200%);\n                                                         transform: translateX(-200%);\n                                                         }\n    .carousel__activator:nth-of-type(3):checked ~ .carousel__slide:nth-of-type(3) {\n        transition: opacity 0.5s, -webkit-transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n        -webkit-transform: scale(1);\n        transform: scale(1);\n    }\n    .carousel__activator:nth-of-type(3):checked ~ .carousel__controls:nth-of-type(3) {\n        display: block;\n        opacity: 1;\n    }\n    .carousel__activator:nth-of-type(3):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(3) {\n        opacity: 1;\n    }\n    \n    .carousel__activator:nth-of-type(4):checked ~ .carousel__track {\n                                                             -webkit-transform: translateX(-300%);\n                                                         transform: translateX(-300%);\n                                                         }\n    .carousel__activator:nth-of-type(4):checked ~ .carousel__slide:nth-of-type(4) {\n        transition: opacity 0.5s, -webkit-transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n        -webkit-transform: scale(1);\n        transform: scale(1);\n    }\n    .carousel__activator:nth-of-type(4):checked ~ .carousel__controls:nth-of-type(4) {\n        display: block;\n        opacity: 1;\n    }\n    .carousel__activator:nth-of-type(4):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(4) {\n        opacity: 1;\n    }\n    \n    .carousel__activator:nth-of-type(5):checked ~ .carousel__track {\n                                                             -webkit-transform: translateX(-400%);\n                                                         transform: translateX(-400%);\n                                                         }\n    .carousel__activator:nth-of-type(5):checked ~ .carousel__slide:nth-of-type(5) {\n        transition: opacity 0.5s, -webkit-transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s;\n        transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n        -webkit-transform: scale(1);\n        transform: scale(1);\n    }\n    .carousel__activator:nth-of-type(5):checked ~ .carousel__controls:nth-of-type(5) {\n        display: block;\n        opacity: 1;\n    }\n    .carousel__activator:nth-of-type(5):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(5) {\n        opacity: 1;\n    }\n    \n\n    .carousel__control {\n        height: 30px;\n        width: 30px;\n        margin-top: -15px;\n        top: 50%;\n        position: absolute;\n        display: block;\n        cursor: pointer;\n        border-width: 5px 5px 0 0;\n        border-style: solid;\n        border-color: #fafafa;\n        opacity: 0.35;\n        opacity: 1;\n        outline: 0;\n        z-index: 3;\n    }\n    .carousel__control:hover {\n        opacity: 1;\n    }\n    .carousel__control--backward {\n        left: 20px;\n        -webkit-transform: rotate(-135deg);\n        transform: rotate(-135deg);\n    }\n    .carousel__control--forward {\n        right: 20px;\n        -webkit-transform: rotate(45deg);\n        transform: rotate(45deg);\n    }\n    .carousel__indicators {\n        position: absolute;\n        bottom: 20px;\n        width: 100%;\n        text-align: center;\n    }\n    .carousel__indicator {\n        height: 15px;\n        width: 15px;\n        border-radius: 100%;\n        display: inline-block;\n        z-index: 2;\n        cursor: pointer;\n        opacity: 0.35;\n        margin: 0 2.5px 0 2.5px;\n    }\n    .carousel__indicator:hover {\n        opacity: 0.75;\n    }\n    .carousel__track {\n        position: absolute;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        padding: 0;\n        margin: 0;\n        transition: -webkit-transform 0.5s ease 0s;\n        transition: transform 0.5s ease 0s;\n        transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;\n    }\n    .carousel__track .carousel__slide {\n        display: block;\n        top: 0;\n        left: 0;\n        right: 0;\n        opacity: 1;\n    }\n    \n    .carousel__track .carousel__slide:nth-of-type(1) {\n        -webkit-transform: translateX(000%);\n    transform: translateX(000%);\n    }\n    \n    .carousel__track .carousel__slide:nth-of-type(2) {\n        -webkit-transform: translateX(100%);\n    transform: translateX(100%);\n    }\n    \n    .carousel__track .carousel__slide:nth-of-type(3) {\n        -webkit-transform: translateX(200%);\n    transform: translateX(200%);\n    }\n    \n    .carousel__track .carousel__slide:nth-of-type(4) {\n        -webkit-transform: translateX(300%);\n    transform: translateX(300%);\n    }\n    \n    .carousel__track .carousel__slide:nth-of-type(5) {\n        -webkit-transform: translateX(400%);\n    transform: translateX(400%);\n    }\n    \n\n    .carousel--scale .carousel__slide {\n        -webkit-transform: scale(0);\n        transform: scale(0);\n    }\n    .carousel__slide {\n        height: 100%;\n        position: absolute;\n        opacity: 0;\n        overflow: hidden;\n    }\n    .carousel__slide .overlay {height: 100%;}\n    .carousel--thumb .carousel__indicator {\n        height: 30px;\n        width: 30px;\n    }\n    .carousel__indicator {\n        background-color: #fafafa;\n    }\n    \n    .carousel__slide:nth-of-type(1),\n    .carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(1) {\n        background-size: cover;\n        background-position: center;\n    }\n    \n    .carousel__slide:nth-of-type(2),\n    .carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(2) {\n        background-size: cover;\n        background-position: center;\n    }\n    \n    .carousel__slide:nth-of-type(3),\n    .carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(3) {\n        background-size: cover;\n        background-position: center;\n    }\n    \n    .carousel__slide:nth-of-type(4),\n    .carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(4) {\n        background-size: cover;\n        background-position: center;\n    }\n    \n    .carousel__slide:nth-of-type(5),\n    .carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(5) {\n        background-size: cover;\n        background-position: center;\n    }\n    \n<\/style>\n\n<script>\n    function isVisible(el) {\n        while (el) {\n            if (el === document) {\n                return true;\n            }\n\n            var $style = window.getComputedStyle(el, null);\n\n            if (!el) {\n                return false;\n            } else if (!$style) {\n                return false;\n            } else if ($style.display === 'none') {\n                return false;\n            } else if ($style.visibility === 'hidden') {\n                return false;\n            } else if (+$style.opacity === 0) {\n                return false;\n            } else if (($style.display === 'block' || $style.display === 'inline-block') &&\n                $style.height === '0px' && $style.overflow === 'hidden') {\n                return false;\n            } else {\n                return $style.position === 'fixed' || isVisible(el.parentNode);\n            }\n        }\n    }\n    \n<\/script>\n\n<h4 id=\"api-differences\">API differences<\/h4>\n\n<p>The previous hotspot connection point is about Android 13; we found the hard way that things were different using other\nAndroid versions.<\/p>\n\n<p>For instance, using Android 11, hotspot connection process is different (with the same code base):<\/p>\n<ul>\n  <li>The Wi-Fi settings page is automatically opened;<\/li>\n  <li>New Wi-Fi network appears, but as password-protected, and tapping it requires user to enter a password;<\/li>\n  <li>User has to press the \u201cback\u201d button to go back to the app, the Wi-Fi network is then automatically joined.<\/li>\n<\/ul>\n\n<p>Android has to cover a variety of hardware, and this is sometimes (annoyingly) visible through behaviors like this one.<\/p>\n\n<hr data-content=\"footnotes\" \/>\n\n<div class=\"footnotes\" role=\"doc-endnotes\">\n  <ol>\n    <li id=\"fn:1\" role=\"doc-endnote\">\n      <p>The Venice framework relies on a set of abstractions that include modeling D2D technologies as communication <em>channels<\/em>: more information on the <a href=\"https:\/\/github.com\/Venice-D2D\">project repository<\/a>.\u00a0<a href=\"#fnref:1\" class=\"reversefootnote\" role=\"doc-backlink\">&#8617;<\/a><\/p>\n    <\/li>\n  <\/ol>\n<\/div>","author":{"name":{}},"category":{"@attributes":{"term":"blog"}},"summary":"This post is a post-mortem about the implementation of Venice1, a device-to-device (D2D) communication framework leveraging D2D technologies, such as Bluetooth and Wi-Fi, to transparently enable communication between two devices. The Venice framework relies on a set of abstractions that include modeling D2D technologies as communication channels: more information on the project repository.\u00a0&#8617;"},{"title":"Parkour gamemode","link":{"@attributes":{"href":"https:\/\/remyraes.com\/parkour-gamemode.html","rel":"alternate","type":"text\/html","title":"Parkour gamemode"}},"published":"2024-01-22T00:00:00+01:00","updated":"2024-01-22T02:27:00+01:00","id":"https:\/\/remyraes.com\/parkour-gamemode","content":"<blockquote>\n  <p><strong>Context note:<\/strong> this blog post was originally posted on the <a href=\"https:\/\/northstar.tf\/blog\/parkour-tournament\/\">Northstar blog<\/a> to\ncelebrate its second birthday.<\/p>\n<\/blockquote>\n\n<p>Happy second anniversary, Northstar!<\/p>\n\n<p>To celebrate two years of existence, we decided to organize a competition between all players to see who\u2019s the fastest:\nthis blog post tells the story of the <a href=\"https:\/\/github.com\/Alystrasz\/Alystrasz.Parkour\">Parkour mod<\/a>\u2019s origin and\ndevelopment, and showcases results of this first Parkour tournament.<\/p>\n\n<h3 id=\"developer-story\">Developer story<\/h3>\n\n<h4 id=\"origin-of-the-mod\">Origin of the mod<\/h4>\n\n<p>When I was younger, I loved going to my friends\u2019 houses, set up a local network, and play some LAN games. These games\nincluded Counter Strike 1.6, Warcraft 3, and <a href=\"https:\/\/www.trackmania.com\/?lang=en\">Trackmania<\/a>; if you don\u2019t know the\nlast, it\u2019s a car game where you have to reach a finish line, crossing a set of checkpoints as fast as you can (rings a\nbell, right?).<\/p>\n\n<p>I also spend lots of (probably more than I should) time on World of Warcraft, whose latest expansion, named Dragonflight,\nreleased a similar feature dubbed <a href=\"https:\/\/www.youtube.com\/watch?v=7Gr4rZXPw6w\">\u201cDragonriding races\u201d<\/a>.<\/p>\n\n<p>At some point, I thought: \u201cThat would be a great mod idea for Northstar!\u201d. I would call it <em>\u201cParkour\u201d<\/em>.<\/p>\n\n<p><img src=\"\/assets\/img\/posts\/parkour\/parkour.gif\" alt=\"The Office's Michael Scott doing parkour.\" \/><\/p>\n\n<h4 id=\"development\">Development<\/h4>\n\n<p>Since developing this mod basically resolved to develop a multiplayer version of the single-player \n<a href=\"https:\/\/titanfall.fandom.com\/wiki\/The_Pilot's_Gauntlet\">Gauntlet<\/a> mission, I could reuse a lot of assets from it,\nincluding starting\/finish lines visuals, speed indicator and scoreboards.\nFor other entities I had to improvise: for instance, the model used for checkpoints is actually a Titan shield, colored\nin green :)<\/p>\n\n<p><img src=\"\/assets\/img\/posts\/parkour\/checkpoint.gif\" alt=\"Parkour checkpoint using the Titan shield model, colored in green\" \/><\/p>\n\n<p>Initial development of the mod only included a local scoreboard, where you could see scores of players in the current\nmatch; we then thought it would be cool to have a way to save your personal best time for each map, which led me to\ndevelop a scoring server to save scores for all players in all maps, and an associated web scoreboard, to maintain\ncompetition between players:<\/p>\n\n<p><img src=\"\/assets\/img\/posts\/parkour\/global-scoreboard.png\" alt=\"Screenshot of the Parkour tournament web scoreboard\" \/><\/p>\n\n<p>Once the scoring server was set up, I deployed Parkour servers in Europe, North America and Australia during twelve days,\nwhich led to 367 players scoring a time on a map (maybe more tried, but couldn\u2019t finish a route? We\u2019ll never know).<\/p>\n\n<h4 id=\"feedback\">Feedback<\/h4>\n\n<p>We received <em>a lot<\/em> of feedback about Parkour which gave us lots of ideas to improve it for the next tournament, and I\nthank you all for that.<\/p>\n\n<p>This Parkour tournament was also a good opportunity to test <em>mod auto-downloading<\/em> in live conditions, if you\u2019re curious\nabout this feature, I wrote <a href=\"https:\/\/remyraes.com\/autodownload.html\">another blog post<\/a> describing it in details.<\/p>\n\n<h3 id=\"media\">Media<\/h3>\n\n<p>To celebrate Northstar\u2019s second birthday and the parkour tournament, we asked the community some help with trailers, and\ngot an amazing one from <a href=\"https:\/\/www.youtube.com\/@P3NG00Nlol\">P3NG00N<\/a>:<\/p>\n\n<iframe width=\"100%\" height=\"360\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/1DSNwdV8ahA\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\"><\/iframe>\n\n<hr \/>\n\n<p>We were also lucky enough to have <a href=\"https:\/\/www.youtube.com\/@evanboymelviper\">Evan Boymel<\/a>, voice actor of Viper,\nmake a voice-over for another trailer from <a href=\"https:\/\/www.youtube.com\/@Dionysus9517\">Dionysus9517<\/a>:<\/p>\n\n<iframe width=\"100%\" height=\"360\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/NLTfQwUpvJs\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\"><\/iframe>\n\n<p><br \/>\nAssociated YouTube short from Evan:<\/p>\n\n<iframe width=\"100%\" height=\"560\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/etnCR3pHPBY\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\"><\/iframe>\n\n<h3 id=\"closing-words\">Closing words<\/h3>\n\n<p>I was really surprised seeing the Titanfall 2 speedrunning community, including <a href=\"https:\/\/www.twitch.tv\/videos\/2028529918\">Dadadu2711<\/a>,\ntaking over the mod and breaking the routes I designed in ways I never heard of previously: grav star boosting, EPG\nboosting\u2026 There were discussions about the best ways to improve scores; I feel like there was a good competitive\nspirit within this tournament, that\u2019s definitely something I plan to redo in the future!<\/p>\n\n<p>I want to thank all players that participated in that first tournament, and all developers + play testers who helped\nmake this mod what it is today.<\/p>\n\n<p>See you all on the Frontier!<\/p>\n\n<h1 id=\"parkour-tournament-results\">Parkour tournament results<\/h1>\n\n<style>\ntable {\n    max-height: 500px;\n    display: block;\n    overflow-y: scroll;\n    overflow-x: hidden;\n    border: none;\n    padding-top: 0;\n}\n\ntr {\n    border: thin solid black;\n}\n\n.header {\n    position: sticky;\n    top: -1px;\n    background: #20263c;\n    color: white;\n}\n\nth, td {\n    text-align: center;\n}\n\ntbody {\n    width: 100%;\n    display: inline-table;\n}\n<\/style>\n\n<h2 id=\"exoplanet\">Exoplanet<\/h2>\n\n<h3 id=\"example-route-from-chill_spirit\">Example route from <em>Chill_spirit<\/em><\/h3>\n\n<video controls=\"\" style=\"max-width: 100%\">\n    <source src=\"\/assets\/video\/posts\/parkour\/chillspirit_exoplanet_34.12.mp4\" type=\"video\/webm\" \/>\n    Sorry, your browser doesn't support embedded videos.\n<\/video>\n\n<h3 id=\"final-placing\">Final placing<\/h3>\n\n<table id=\"map_10e1bbe9-d86e-48c8-a2b4-70fba0121606\" map_id=\"10e1bbe9-d86e-48c8-a2b4-70fba0121606\" class=\"map_scores\" show=\"\">\n    <tbody><tr class=\"header\">\n        <th>Position<\/th>\n        <th>Player name<\/th>\n        <th>Time (seconds)<\/th>\n    <\/tr>\n    <tr>\n        <td>1<\/td>\n        <td>Cash_Mayo<\/td>\n        <td>28.117<\/td>\n    <\/tr>\n    <tr>\n        <td>2<\/td>\n        <td>bertybhoy22<\/td>\n        <td>31.033<\/td>\n    <\/tr>\n    <tr>\n        <td>3<\/td>\n        <td>Dadadu2711<\/td>\n        <td>31.250<\/td>\n    <\/tr>\n    <tr>\n        <td>4<\/td>\n        <td>DarkwinV1<\/td>\n        <td>31.650<\/td>\n    <\/tr>\n    <tr>\n        <td>5<\/td>\n        <td>chilll_spirit<\/td>\n        <td>33.650<\/td>\n    <\/tr>\n    <tr>\n        <td>6<\/td>\n        <td>PopBom<\/td>\n        <td>34.850<\/td>\n    <\/tr>\n    <tr>\n        <td>7<\/td>\n        <td>PilotGSPL<\/td>\n        <td>36.250<\/td>\n    <\/tr>\n    <tr>\n        <td>8<\/td>\n        <td>DeedVoid<\/td>\n        <td>36.417<\/td>\n    <\/tr>\n    <tr>\n        <td>9<\/td>\n        <td>EB200321<\/td>\n        <td>37.417<\/td>\n    <\/tr>\n    <tr>\n        <td>10<\/td>\n        <td>DobryZuber<\/td>\n        <td>37.867<\/td>\n    <\/tr>\n    <tr>\n        <td>11<\/td>\n        <td>justneptune<\/td>\n        <td>38.183<\/td>\n    <\/tr>\n    <tr>\n        <td>12<\/td>\n        <td>RNM91835189<\/td>\n        <td>38.217<\/td>\n    <\/tr>\n    <tr>\n        <td>13<\/td>\n        <td>FddgeNugget<\/td>\n        <td>39.250<\/td>\n    <\/tr>\n    <tr>\n        <td>14<\/td>\n        <td>H00man<\/td>\n        <td>39.567<\/td>\n    <\/tr>\n    <tr>\n        <td>15<\/td>\n        <td>ilycit<\/td>\n        <td>40.033<\/td>\n    <\/tr>\n    <tr>\n        <td>16<\/td>\n        <td>matsRLS<\/td>\n        <td>40.617<\/td>\n    <\/tr>\n    <tr>\n        <td>17<\/td>\n        <td>Blaidan360<\/td>\n        <td>40.783<\/td>\n    <\/tr>\n    <tr>\n        <td>18<\/td>\n        <td>monzuul<\/td>\n        <td>41.050<\/td>\n    <\/tr>\n    <tr>\n        <td>19<\/td>\n        <td>My_BouncyBall<\/td>\n        <td>41.150<\/td>\n    <\/tr>\n    <tr>\n        <td>20<\/td>\n        <td>ChristDillinger<\/td>\n        <td>41.533<\/td>\n    <\/tr>\n    <tr>\n        <td>21<\/td>\n        <td>P3NG000N<\/td>\n        <td>41.600<\/td>\n    <\/tr>\n    <tr>\n        <td>22<\/td>\n        <td>emem_dash<\/td>\n        <td>41.633<\/td>\n    <\/tr>\n    <tr>\n        <td>23<\/td>\n        <td>Ryukaro<\/td>\n        <td>41.983<\/td>\n    <\/tr>\n    <tr>\n        <td>24<\/td>\n        <td>StarKiller3909<\/td>\n        <td>42.033<\/td>\n    <\/tr>\n    <tr>\n        <td>25<\/td>\n        <td>melonmadegrenade<\/td>\n        <td>42.950<\/td>\n    <\/tr>\n    <tr>\n        <td>26<\/td>\n        <td>paradies_so<\/td>\n        <td>43.667<\/td>\n    <\/tr>\n    <tr>\n        <td>27<\/td>\n        <td>1500TropicalFish<\/td>\n        <td>43.883<\/td>\n    <\/tr>\n    <tr>\n        <td>28<\/td>\n        <td>AmazingShurtle<\/td>\n        <td>44.167<\/td>\n    <\/tr>\n    <tr>\n        <td>29<\/td>\n        <td>Crazy_CAR27<\/td>\n        <td>44.333<\/td>\n    <\/tr>\n    <tr>\n        <td>30<\/td>\n        <td>J4GE<\/td>\n        <td>44.333<\/td>\n    <\/tr>\n    <tr>\n        <td>31<\/td>\n        <td>mewnEatsCrayons<\/td>\n        <td>44.450<\/td>\n    <\/tr>\n    <tr>\n        <td>32<\/td>\n        <td>hey_Uncle_Phil<\/td>\n        <td>44.600<\/td>\n    <\/tr>\n    <tr>\n        <td>33<\/td>\n        <td>braveGNUworld<\/td>\n        <td>44.600<\/td>\n    <\/tr>\n    <tr>\n        <td>34<\/td>\n        <td>ThatLegendsGuy<\/td>\n        <td>44.917<\/td>\n    <\/tr>\n    <tr>\n        <td>35<\/td>\n        <td>Nonname123C<\/td>\n        <td>45.150<\/td>\n    <\/tr>\n    <tr>\n        <td>36<\/td>\n        <td>Yuccuh<\/td>\n        <td>45.333<\/td>\n    <\/tr>\n    <tr>\n        <td>37<\/td>\n        <td>GeckoEidechse<\/td>\n        <td>46.600<\/td>\n    <\/tr>\n    <tr>\n        <td>38<\/td>\n        <td>ineedpickles<\/td>\n        <td>46.650<\/td>\n    <\/tr>\n    <tr>\n        <td>39<\/td>\n        <td>SectionGeneral<\/td>\n        <td>47.233<\/td>\n    <\/tr>\n    <tr>\n        <td>40<\/td>\n        <td>Gromit      <\/td>\n        <td>47.283<\/td>\n    <\/tr>\n    <tr>\n        <td>41<\/td>\n        <td>Wonkierlinx360<\/td>\n        <td>47.550<\/td>\n    <\/tr>\n    <tr>\n        <td>42<\/td>\n        <td>Ned_was_taken<\/td>\n        <td>47.617<\/td>\n    <\/tr>\n    <tr>\n        <td>43<\/td>\n        <td>E3VL<\/td>\n        <td>47.934<\/td>\n    <\/tr>\n    <tr>\n        <td>44<\/td>\n        <td>RobertGerkens<\/td>\n        <td>48.000<\/td>\n    <\/tr>\n    <tr>\n        <td>45<\/td>\n        <td>PwnagePotato64<\/td>\n        <td>48.400<\/td>\n    <\/tr>\n    <tr>\n        <td>46<\/td>\n        <td>S1mpl3Dude<\/td>\n        <td>48.733<\/td>\n    <\/tr>\n    <tr>\n        <td>47<\/td>\n        <td>mochaamochi<\/td>\n        <td>49.633<\/td>\n    <\/tr>\n    <tr>\n        <td>48<\/td>\n        <td>RayIeiqh<\/td>\n        <td>49.667<\/td>\n    <\/tr>\n    <tr>\n        <td>49<\/td>\n        <td>svenosss<\/td>\n        <td>50.117<\/td>\n    <\/tr>\n    <tr>\n        <td>50<\/td>\n        <td>looksfinetome<\/td>\n        <td>50.267<\/td>\n    <\/tr>\n    <tr>\n        <td>51<\/td>\n        <td>Jheeazy<\/td>\n        <td>50.650<\/td>\n    <\/tr>\n    <tr>\n        <td>52<\/td>\n        <td>Cdazx<\/td>\n        <td>50.833<\/td>\n    <\/tr>\n    <tr>\n        <td>53<\/td>\n        <td>Yirons<\/td>\n        <td>50.967<\/td>\n    <\/tr>\n    <tr>\n        <td>54<\/td>\n        <td>Stefzxc<\/td>\n        <td>51.167<\/td>\n    <\/tr>\n    <tr>\n        <td>55<\/td>\n        <td>alice_uwuu<\/td>\n        <td>51.517<\/td>\n    <\/tr>\n    <tr>\n        <td>56<\/td>\n        <td>EladNLG<\/td>\n        <td>51.567<\/td>\n    <\/tr>\n    <tr>\n        <td>57<\/td>\n        <td>tinyRoboticist<\/td>\n        <td>51.583<\/td>\n    <\/tr>\n    <tr>\n        <td>58<\/td>\n        <td>holalho<\/td>\n        <td>51.767<\/td>\n    <\/tr>\n    <tr>\n        <td>59<\/td>\n        <td>Archangel_Pasta<\/td>\n        <td>51.817<\/td>\n    <\/tr>\n    <tr>\n        <td>60<\/td>\n        <td>CooldudePUGS<\/td>\n        <td>51.867<\/td>\n    <\/tr>\n    <tr>\n        <td>61<\/td>\n        <td>Diode_VAR<\/td>\n        <td>51.933<\/td>\n    <\/tr>\n    <tr>\n        <td>62<\/td>\n        <td>swtufh<\/td>\n        <td>52.033<\/td>\n    <\/tr>\n    <tr>\n        <td>63<\/td>\n        <td>Katuro117<\/td>\n        <td>52.183<\/td>\n    <\/tr>\n    <tr>\n        <td>64<\/td>\n        <td>iLuvBenyFlyy<\/td>\n        <td>52.267<\/td>\n    <\/tr>\n    <tr>\n        <td>65<\/td>\n        <td>BRUH_MKI<\/td>\n        <td>52.283<\/td>\n    <\/tr>\n    <tr>\n        <td>66<\/td>\n        <td>lBeckett<\/td>\n        <td>52.333<\/td>\n    <\/tr>\n    <tr>\n        <td>67<\/td>\n        <td>Harbb__<\/td>\n        <td>52.717<\/td>\n    <\/tr>\n    <tr>\n        <td>68<\/td>\n        <td>Xfighter312<\/td>\n        <td>52.833<\/td>\n    <\/tr>\n    <tr>\n        <td>69<\/td>\n        <td>Cerealxkiller73<\/td>\n        <td>52.833<\/td>\n    <\/tr>\n    <tr>\n        <td>70<\/td>\n        <td>Septro31<\/td>\n        <td>53.633<\/td>\n    <\/tr>\n    <tr>\n        <td>71<\/td>\n        <td>BudderMuffins<\/td>\n        <td>53.833<\/td>\n    <\/tr>\n    <tr>\n        <td>72<\/td>\n        <td>Bluestuffaaaa<\/td>\n        <td>53.834<\/td>\n    <\/tr>\n    <tr>\n        <td>73<\/td>\n        <td>LobusRex<\/td>\n        <td>53.850<\/td>\n    <\/tr>\n    <tr>\n        <td>74<\/td>\n        <td>uuts_that-smoke<\/td>\n        <td>54.000<\/td>\n    <\/tr>\n    <tr>\n        <td>75<\/td>\n        <td>Uber_GrandPanzer<\/td>\n        <td>54.250<\/td>\n    <\/tr>\n    <tr>\n        <td>76<\/td>\n        <td>Locke_f00k_Ea<\/td>\n        <td>54.433<\/td>\n    <\/tr>\n    <tr>\n        <td>77<\/td>\n        <td>User_disconnect<\/td>\n        <td>54.800<\/td>\n    <\/tr>\n    <tr>\n        <td>78<\/td>\n        <td>Jennyann7997<\/td>\n        <td>54.950<\/td>\n    <\/tr>\n    <tr>\n        <td>79<\/td>\n        <td>Kolpy_Uno<\/td>\n        <td>54.983<\/td>\n    <\/tr>\n    <tr>\n        <td>80<\/td>\n        <td>Alystrasz<\/td>\n        <td>55.000<\/td>\n    <\/tr>\n    <tr>\n        <td>81<\/td>\n        <td>GamingZeether<\/td>\n        <td>55.067<\/td>\n    <\/tr>\n    <tr>\n        <td>82<\/td>\n        <td>Maechy<\/td>\n        <td>55.117<\/td>\n    <\/tr>\n    <tr>\n        <td>83<\/td>\n        <td>Finnstera350<\/td>\n        <td>55.117<\/td>\n    <\/tr>\n    <tr>\n        <td>84<\/td>\n        <td>ONIPIKA-1<\/td>\n        <td>55.217<\/td>\n    <\/tr>\n    <tr>\n        <td>85<\/td>\n        <td>ILIKEAWALL<\/td>\n        <td>55.533<\/td>\n    <\/tr>\n    <tr>\n        <td>86<\/td>\n        <td>Fr0sty543<\/td>\n        <td>55.700<\/td>\n    <\/tr>\n    <tr>\n        <td>87<\/td>\n        <td>DelayZuber<\/td>\n        <td>55.867<\/td>\n    <\/tr>\n    <tr>\n        <td>88<\/td>\n        <td>KillTrio-BgTT<\/td>\n        <td>55.867<\/td>\n    <\/tr>\n    <tr>\n        <td>89<\/td>\n        <td>Ryno2<\/td>\n        <td>55.917<\/td>\n    <\/tr>\n    <tr>\n        <td>90<\/td>\n        <td>tim03legeek<\/td>\n        <td>56.017<\/td>\n    <\/tr>\n    <tr>\n        <td>91<\/td>\n        <td>Bangbang5201<\/td>\n        <td>56.083<\/td>\n    <\/tr>\n    <tr>\n        <td>92<\/td>\n        <td>Tumpp1xel<\/td>\n        <td>56.133<\/td>\n    <\/tr>\n    <tr>\n        <td>93<\/td>\n        <td>DurgenTheFirst<\/td>\n        <td>56.250<\/td>\n    <\/tr>\n    <tr>\n        <td>94<\/td>\n        <td>Nickname241b<\/td>\n        <td>56.417<\/td>\n    <\/tr>\n    <tr>\n        <td>95<\/td>\n        <td>kero654<\/td>\n        <td>56.533<\/td>\n    <\/tr>\n    <tr>\n        <td>96<\/td>\n        <td>lexvi1<\/td>\n        <td>56.567<\/td>\n    <\/tr>\n    <tr>\n        <td>97<\/td>\n        <td>Dratam<\/td>\n        <td>56.583<\/td>\n    <\/tr>\n    <tr>\n        <td>98<\/td>\n        <td>rhodes_the_cat<\/td>\n        <td>57.283<\/td>\n    <\/tr>\n    <tr>\n        <td>99<\/td>\n        <td>OddComms<\/td>\n        <td>57.467<\/td>\n    <\/tr>\n    <tr>\n        <td>100<\/td>\n        <td>Gamecrusher24<\/td>\n        <td>57.617<\/td>\n    <\/tr>\n    <tr>\n        <td>101<\/td>\n        <td>WafflesRVeryNice<\/td>\n        <td>57.717<\/td>\n    <\/tr>\n    <tr>\n        <td>102<\/td>\n        <td>womble_xo<\/td>\n        <td>57.983<\/td>\n    <\/tr>\n    <tr>\n        <td>103<\/td>\n        <td>ButcherBee1<\/td>\n        <td>58.050<\/td>\n    <\/tr>\n    <tr>\n        <td>104<\/td>\n        <td>CoachD97<\/td>\n        <td>58.167<\/td>\n    <\/tr>\n    <tr>\n        <td>105<\/td>\n        <td>IronLordLoki<\/td>\n        <td>58.183<\/td>\n    <\/tr>\n    <tr>\n        <td>106<\/td>\n        <td>RoyalBlood999<\/td>\n        <td>58.333<\/td>\n    <\/tr>\n    <tr>\n        <td>107<\/td>\n        <td>MrFail3r<\/td>\n        <td>58.350<\/td>\n    <\/tr>\n    <tr>\n        <td>108<\/td>\n        <td>SomeSoggyToast25<\/td>\n        <td>58.450<\/td>\n    <\/tr>\n    <tr>\n        <td>109<\/td>\n        <td>LIALIALIALIAEMI<\/td>\n        <td>58.567<\/td>\n    <\/tr>\n    <tr>\n        <td>110<\/td>\n        <td>sussyboy2609<\/td>\n        <td>58.700<\/td>\n    <\/tr>\n    <tr>\n        <td>111<\/td>\n        <td>CatPlanter292<\/td>\n        <td>59.183<\/td>\n    <\/tr>\n    <tr>\n        <td>112<\/td>\n        <td>OddStuffAreCool<\/td>\n        <td>59.250<\/td>\n    <\/tr>\n    <tr>\n        <td>113<\/td>\n        <td>IggyForShort<\/td>\n        <td>59.467<\/td>\n    <\/tr>\n    <tr>\n        <td>114<\/td>\n        <td>PliantShark<\/td>\n        <td>59.483<\/td>\n    <\/tr>\n    <tr>\n        <td>115<\/td>\n        <td>emankciNretnE<\/td>\n        <td>59.600<\/td>\n    <\/tr>\n    <tr>\n        <td>116<\/td>\n        <td>FV0lt<\/td>\n        <td>59.600<\/td>\n    <\/tr>\n    <tr>\n        <td>117<\/td>\n        <td>Robotmind4<\/td>\n        <td>59.800<\/td>\n    <\/tr>\n    <tr>\n        <td>118<\/td>\n        <td>ZeanButZane<\/td>\n        <td>59.833<\/td>\n    <\/tr>\n    <tr>\n        <td>119<\/td>\n        <td>scoutsnumber1<\/td>\n        <td>59.900<\/td>\n    <\/tr>\n    <tr>\n        <td>120<\/td>\n        <td>PesterTheMester<\/td>\n        <td>60.000<\/td>\n    <\/tr>\n    <tr>\n        <td>121<\/td>\n        <td>Emeron420<\/td>\n        <td>60.033<\/td>\n    <\/tr>\n    <tr>\n        <td>122<\/td>\n        <td>4060Ti8G<\/td>\n        <td>60.517<\/td>\n    <\/tr>\n    <tr>\n        <td>123<\/td>\n        <td>pg9182<\/td>\n        <td>60.767<\/td>\n    <\/tr>\n    <tr>\n        <td>124<\/td>\n        <td>mattytherat<\/td>\n        <td>60.785<\/td>\n    <\/tr>\n    <tr>\n        <td>125<\/td>\n        <td>BruhBonn<\/td>\n        <td>60.800<\/td>\n    <\/tr>\n    <tr>\n        <td>126<\/td>\n        <td>Lenin-Da-Lemon<\/td>\n        <td>60.933<\/td>\n    <\/tr>\n    <tr>\n        <td>127<\/td>\n        <td>GalacticMoblin01<\/td>\n        <td>61.000<\/td>\n    <\/tr>\n    <tr>\n        <td>128<\/td>\n        <td>ItsJoeyG<\/td>\n        <td>61.033<\/td>\n    <\/tr>\n    <tr>\n        <td>129<\/td>\n        <td>Obama_Gaming23<\/td>\n        <td>61.083<\/td>\n    <\/tr>\n    <tr>\n        <td>130<\/td>\n        <td>Animator_533<\/td>\n        <td>61.233<\/td>\n    <\/tr>\n    <tr>\n        <td>131<\/td>\n        <td>VenomousDarkrai<\/td>\n        <td>61.267<\/td>\n    <\/tr>\n    <tr>\n        <td>132<\/td>\n        <td>ChibiNaotoGaming<\/td>\n        <td>61.283<\/td>\n    <\/tr>\n    <tr>\n        <td>133<\/td>\n        <td>xhoopAngelReborn<\/td>\n        <td>61.800<\/td>\n    <\/tr>\n    <tr>\n        <td>134<\/td>\n        <td>Vultroustomb31<\/td>\n        <td>61.965<\/td>\n    <\/tr>\n    <tr>\n        <td>135<\/td>\n        <td>EvilGrandpappy<\/td>\n        <td>62.300<\/td>\n    <\/tr>\n    <tr>\n        <td>136<\/td>\n        <td>joseGFX<\/td>\n        <td>62.350<\/td>\n    <\/tr>\n    <tr>\n        <td>137<\/td>\n        <td>BlasterManGuy<\/td>\n        <td>62.383<\/td>\n    <\/tr>\n    <tr>\n        <td>138<\/td>\n        <td>papermaster24<\/td>\n        <td>62.383<\/td>\n    <\/tr>\n    <tr>\n        <td>139<\/td>\n        <td>m2ytt9W<\/td>\n        <td>62.400<\/td>\n    <\/tr>\n    <tr>\n        <td>140<\/td>\n        <td>ImaCat42<\/td>\n        <td>62.500<\/td>\n    <\/tr>\n    <tr>\n        <td>141<\/td>\n        <td>CragyCreates<\/td>\n        <td>63.083<\/td>\n    <\/tr>\n    <tr>\n        <td>142<\/td>\n        <td>CotonCarnage<\/td>\n        <td>63.233<\/td>\n    <\/tr>\n    <tr>\n        <td>143<\/td>\n        <td>kisvalek<\/td>\n        <td>63.417<\/td>\n    <\/tr>\n    <tr>\n        <td>144<\/td>\n        <td>Rorenhyme<\/td>\n        <td>63.567<\/td>\n    <\/tr>\n    <tr>\n        <td>145<\/td>\n        <td>Bop5916_<\/td>\n        <td>63.833<\/td>\n    <\/tr>\n    <tr>\n        <td>146<\/td>\n        <td>Delta_exe<\/td>\n        <td>64.150<\/td>\n    <\/tr>\n    <tr>\n        <td>147<\/td>\n        <td>Divadoooo<\/td>\n        <td>64.400<\/td>\n    <\/tr>\n    <tr>\n        <td>148<\/td>\n        <td>Arknight38<\/td>\n        <td>64.633<\/td>\n    <\/tr>\n    <tr>\n        <td>149<\/td>\n        <td>DzerlaDobarCovek<\/td>\n        <td>64.850<\/td>\n    <\/tr>\n    <tr>\n        <td>150<\/td>\n        <td>Hurbskideez<\/td>\n        <td>64.900<\/td>\n    <\/tr>\n    <tr>\n        <td>151<\/td>\n        <td>calamariiiiiii<\/td>\n        <td>65.133<\/td>\n    <\/tr>\n    <tr>\n        <td>152<\/td>\n        <td>chejoroki<\/td>\n        <td>65.148<\/td>\n    <\/tr>\n    <tr>\n        <td>153<\/td>\n        <td>KorbyV4<\/td>\n        <td>65.883<\/td>\n    <\/tr>\n    <tr>\n        <td>154<\/td>\n        <td>Nokariii<\/td>\n        <td>65.950<\/td>\n    <\/tr>\n    <tr>\n        <td>155<\/td>\n        <td>AbyssalFlame11<\/td>\n        <td>66.133<\/td>\n    <\/tr>\n    <tr>\n        <td>156<\/td>\n        <td>Jakanader<\/td>\n        <td>66.467<\/td>\n    <\/tr>\n    <tr>\n        <td>157<\/td>\n        <td>Racecardriver05<\/td>\n        <td>66.483<\/td>\n    <\/tr>\n    <tr>\n        <td>158<\/td>\n        <td>BoundIvy<\/td>\n        <td>67.082<\/td>\n    <\/tr>\n    <tr>\n        <td>159<\/td>\n        <td>KennyXCuervo<\/td>\n        <td>67.417<\/td>\n    <\/tr>\n    <tr>\n        <td>160<\/td>\n        <td>matadish<\/td>\n        <td>67.567<\/td>\n    <\/tr>\n    <tr>\n        <td>161<\/td>\n        <td>fr4gmast3r<\/td>\n        <td>67.600<\/td>\n    <\/tr>\n    <tr>\n        <td>162<\/td>\n        <td>ColdSLeader<\/td>\n        <td>67.617<\/td>\n    <\/tr>\n    <tr>\n        <td>163<\/td>\n        <td>tjppj918<\/td>\n        <td>67.683<\/td>\n    <\/tr>\n    <tr>\n        <td>164<\/td>\n        <td>RubricGibbon8520<\/td>\n        <td>67.983<\/td>\n    <\/tr>\n    <tr>\n        <td>165<\/td>\n        <td>GlitchSlayed<\/td>\n        <td>68.300<\/td>\n    <\/tr>\n    <tr>\n        <td>166<\/td>\n        <td>ElFamosoMothix<\/td>\n        <td>68.833<\/td>\n    <\/tr>\n    <tr>\n        <td>167<\/td>\n        <td>TechnicDesert28<\/td>\n        <td>68.883<\/td>\n    <\/tr>\n    <tr>\n        <td>168<\/td>\n        <td>mitieusz<\/td>\n        <td>68.933<\/td>\n    <\/tr>\n    <tr>\n        <td>169<\/td>\n        <td>ChaoticShort<\/td>\n        <td>69.200<\/td>\n    <\/tr>\n    <tr>\n        <td>170<\/td>\n        <td>iiLars<\/td>\n        <td>69.250<\/td>\n    <\/tr>\n    <tr>\n        <td>171<\/td>\n        <td>orikpio<\/td>\n        <td>69.483<\/td>\n    <\/tr>\n    <tr>\n        <td>172<\/td>\n        <td>CharacterCarp08<\/td>\n        <td>69.483<\/td>\n    <\/tr>\n    <tr>\n        <td>173<\/td>\n        <td>Hex585<\/td>\n        <td>69.656<\/td>\n    <\/tr>\n    <tr>\n        <td>174<\/td>\n        <td>maIapasta<\/td>\n        <td>69.667<\/td>\n    <\/tr>\n    <tr>\n        <td>175<\/td>\n        <td>hearthburst<\/td>\n        <td>69.683<\/td>\n    <\/tr>\n    <tr>\n        <td>176<\/td>\n        <td>SpookyDookie64<\/td>\n        <td>70.000<\/td>\n    <\/tr>\n    <tr>\n        <td>177<\/td>\n        <td>The-0v3rki113r<\/td>\n        <td>71.033<\/td>\n    <\/tr>\n    <tr>\n        <td>178<\/td>\n        <td>argon-42<\/td>\n        <td>71.616<\/td>\n    <\/tr>\n    <tr>\n        <td>179<\/td>\n        <td>asatthegame<\/td>\n        <td>71.667<\/td>\n    <\/tr>\n    <tr>\n        <td>180<\/td>\n        <td>cua75<\/td>\n        <td>71.917<\/td>\n    <\/tr>\n    <tr>\n        <td>181<\/td>\n        <td>Supcio<\/td>\n        <td>71.933<\/td>\n    <\/tr>\n    <tr>\n        <td>182<\/td>\n        <td>Exof0rger<\/td>\n        <td>72.017<\/td>\n    <\/tr>\n    <tr>\n        <td>183<\/td>\n        <td>LiterallyAnfrew<\/td>\n        <td>72.317<\/td>\n    <\/tr>\n    <tr>\n        <td>184<\/td>\n        <td>Stormhawk010<\/td>\n        <td>72.483<\/td>\n    <\/tr>\n    <tr>\n        <td>185<\/td>\n        <td>juan6212<\/td>\n        <td>72.583<\/td>\n    <\/tr>\n    <tr>\n        <td>186<\/td>\n        <td>ArisuTW<\/td>\n        <td>72.900<\/td>\n    <\/tr>\n    <tr>\n        <td>187<\/td>\n        <td>fireheat324<\/td>\n        <td>72.967<\/td>\n    <\/tr>\n    <tr>\n        <td>188<\/td>\n        <td>Karasoka<\/td>\n        <td>74.583<\/td>\n    <\/tr>\n    <tr>\n        <td>189<\/td>\n        <td>Andreyeyeyeye<\/td>\n        <td>74.650<\/td>\n    <\/tr>\n    <tr>\n        <td>190<\/td>\n        <td>zel70nk4<\/td>\n        <td>74.733<\/td>\n    <\/tr>\n    <tr>\n        <td>191<\/td>\n        <td>EmeraldOne785<\/td>\n        <td>75.633<\/td>\n    <\/tr>\n    <tr>\n        <td>192<\/td>\n        <td>TrainerRed_0<\/td>\n        <td>75.833<\/td>\n    <\/tr>\n    <tr>\n        <td>193<\/td>\n        <td>V1PER_tw<\/td>\n        <td>76.450<\/td>\n    <\/tr>\n    <tr>\n        <td>194<\/td>\n        <td>feorxw<\/td>\n        <td>76.817<\/td>\n    <\/tr>\n    <tr>\n        <td>195<\/td>\n        <td>Python1465<\/td>\n        <td>76.933<\/td>\n    <\/tr>\n    <tr>\n        <td>196<\/td>\n        <td>A_Vaping_Cat<\/td>\n        <td>77.317<\/td>\n    <\/tr>\n    <tr>\n        <td>197<\/td>\n        <td>lightlysilly<\/td>\n        <td>77.700<\/td>\n    <\/tr>\n    <tr>\n        <td>198<\/td>\n        <td>windonmountains<\/td>\n        <td>77.917<\/td>\n    <\/tr>\n    <tr>\n        <td>199<\/td>\n        <td>Leo_The_Egg<\/td>\n        <td>78.633<\/td>\n    <\/tr>\n    <tr>\n        <td>200<\/td>\n        <td>USeR_bloodrage<\/td>\n        <td>79.983<\/td>\n    <\/tr>\n    <tr>\n        <td>201<\/td>\n        <td>DangerTurtle125<\/td>\n        <td>81.217<\/td>\n    <\/tr>\n    <tr>\n        <td>202<\/td>\n        <td>Draakoor<\/td>\n        <td>81.467<\/td>\n    <\/tr>\n    <tr>\n        <td>203<\/td>\n        <td>EPGhaha<\/td>\n        <td>82.000<\/td>\n    <\/tr>\n    <tr>\n        <td>204<\/td>\n        <td>Djamdude318<\/td>\n        <td>82.550<\/td>\n    <\/tr>\n    <tr>\n        <td>205<\/td>\n        <td>Dionysus9517<\/td>\n        <td>82.583<\/td>\n    <\/tr>\n    <tr>\n        <td>206<\/td>\n        <td>OneFoxAlone<\/td>\n        <td>84.133<\/td>\n    <\/tr>\n    <tr>\n        <td>207<\/td>\n        <td>Woozy_Whit_A_Hat<\/td>\n        <td>84.767<\/td>\n    <\/tr>\n    <tr>\n        <td>208<\/td>\n        <td>BoIdhat<\/td>\n        <td>86.050<\/td>\n    <\/tr>\n    <tr>\n        <td>209<\/td>\n        <td>YourTastyMelon<\/td>\n        <td>86.733<\/td>\n    <\/tr>\n    <tr>\n        <td>210<\/td>\n        <td>Redvanguard1025<\/td>\n        <td>87.100<\/td>\n    <\/tr>\n    <tr>\n        <td>211<\/td>\n        <td>MicahTGpro1<\/td>\n        <td>88.283<\/td>\n    <\/tr>\n    <tr>\n        <td>212<\/td>\n        <td>rookient<\/td>\n        <td>88.400<\/td>\n    <\/tr>\n    <tr>\n        <td>213<\/td>\n        <td>Blue-onControler<\/td>\n        <td>88.600<\/td>\n    <\/tr>\n    <tr>\n        <td>214<\/td>\n        <td>alfr3do_98<\/td>\n        <td>90.200<\/td>\n    <\/tr>\n    <tr>\n        <td>215<\/td>\n        <td>Xx_ghost_xX13435<\/td>\n        <td>92.719<\/td>\n    <\/tr>\n    <tr>\n        <td>216<\/td>\n        <td>dariuscosmoait<\/td>\n        <td>94.200<\/td>\n    <\/tr>\n    <tr>\n        <td>217<\/td>\n        <td>Jamesbwa1<\/td>\n        <td>96.917<\/td>\n    <\/tr>\n    <tr>\n        <td>218<\/td>\n        <td>Scrimnox<\/td>\n        <td>98.783<\/td>\n    <\/tr>\n    <tr>\n        <td>219<\/td>\n        <td>EspressoDrink01<\/td>\n        <td>108.167<\/td>\n    <\/tr>\n    <tr>\n        <td>220<\/td>\n        <td>Zytians<\/td>\n        <td>110.332<\/td>\n    <\/tr>\n    <tr>\n        <td>221<\/td>\n        <td>wlw_cowboy<\/td>\n        <td>110.900<\/td>\n    <\/tr>\n    <tr>\n        <td>222<\/td>\n        <td>PumpaLumpa1338<\/td>\n        <td>112.300<\/td>\n    <\/tr>\n    <tr>\n        <td>223<\/td>\n        <td>ttek9<\/td>\n        <td>128.467<\/td>\n    <\/tr>\n    <tr>\n        <td>224<\/td>\n        <td>Flame1367<\/td>\n        <td>140.667<\/td>\n    <\/tr>\n    <\/tbody><\/table>\n\n<h2 id=\"angel-city\">Angel City<\/h2>\n\n<h3 id=\"example-route-from-dadadu\">Example route from <em>Dadadu<\/em><\/h3>\n\n<video controls=\"\" style=\"max-width: 100%\">\n    <source src=\"\/assets\/video\/posts\/parkour\/dadadu_angelcity_22.17.mp4\" type=\"video\/webm\" \/>\n    Sorry, your browser doesn't support embedded videos.\n<\/video>\n\n<h3 id=\"final-placing-1\">Final placing<\/h3>\n\n<table id=\"map_7180fe82-8ab4-4d55-8c18-c6eefd7d242f\" map_id=\"7180fe82-8ab4-4d55-8c18-c6eefd7d242f\" class=\"map_scores\" show=\"\">\n    <tbody><tr class=\"header\">\n        <th>Position<\/th>\n        <th>Player name<\/th>\n        <th>Time (seconds)<\/th>\n    <\/tr>\n    <tr>\n        <td>1<\/td>\n        <td>Dadadu2711<\/td>\n        <td>21.083<\/td>\n    <\/tr>\n    <tr>\n        <td>2<\/td>\n        <td>bertybhoy22<\/td>\n        <td>22.583<\/td>\n    <\/tr>\n    <tr>\n        <td>3<\/td>\n        <td>Cash_Mayo<\/td>\n        <td>22.683<\/td>\n    <\/tr>\n    <tr>\n        <td>4<\/td>\n        <td>chilll_spirit<\/td>\n        <td>22.933<\/td>\n    <\/tr>\n    <tr>\n        <td>5<\/td>\n        <td>DarkwinV1<\/td>\n        <td>23.450<\/td>\n    <\/tr>\n    <tr>\n        <td>6<\/td>\n        <td>matsRLS<\/td>\n        <td>24.517<\/td>\n    <\/tr>\n    <tr>\n        <td>7<\/td>\n        <td>PopBom<\/td>\n        <td>26.000<\/td>\n    <\/tr>\n    <tr>\n        <td>8<\/td>\n        <td>DeedVoid<\/td>\n        <td>26.367<\/td>\n    <\/tr>\n    <tr>\n        <td>9<\/td>\n        <td>DobryZuber<\/td>\n        <td>26.483<\/td>\n    <\/tr>\n    <tr>\n        <td>10<\/td>\n        <td>justneptune<\/td>\n        <td>26.900<\/td>\n    <\/tr>\n    <tr>\n        <td>11<\/td>\n        <td>monzuul<\/td>\n        <td>27.183<\/td>\n    <\/tr>\n    <tr>\n        <td>12<\/td>\n        <td>braveGNUworld<\/td>\n        <td>27.517<\/td>\n    <\/tr>\n    <tr>\n        <td>13<\/td>\n        <td>PilotGSPL<\/td>\n        <td>27.900<\/td>\n    <\/tr>\n    <tr>\n        <td>14<\/td>\n        <td>ChristDillinger<\/td>\n        <td>28.167<\/td>\n    <\/tr>\n    <tr>\n        <td>15<\/td>\n        <td>EB200321<\/td>\n        <td>28.467<\/td>\n    <\/tr>\n    <tr>\n        <td>16<\/td>\n        <td>mewnEatsCrayons<\/td>\n        <td>28.633<\/td>\n    <\/tr>\n    <tr>\n        <td>17<\/td>\n        <td>P3NG000N<\/td>\n        <td>28.767<\/td>\n    <\/tr>\n    <tr>\n        <td>18<\/td>\n        <td>RNM91835189<\/td>\n        <td>29.300<\/td>\n    <\/tr>\n    <tr>\n        <td>19<\/td>\n        <td>FddgeNugget<\/td>\n        <td>30.700<\/td>\n    <\/tr>\n    <tr>\n        <td>20<\/td>\n        <td>Ryukaro<\/td>\n        <td>30.783<\/td>\n    <\/tr>\n    <tr>\n        <td>21<\/td>\n        <td>H00man<\/td>\n        <td>30.800<\/td>\n    <\/tr>\n    <tr>\n        <td>22<\/td>\n        <td>AmazingShurtle<\/td>\n        <td>30.883<\/td>\n    <\/tr>\n    <tr>\n        <td>23<\/td>\n        <td>paradies_so<\/td>\n        <td>31.100<\/td>\n    <\/tr>\n    <tr>\n        <td>24<\/td>\n        <td>hey_Uncle_Phil<\/td>\n        <td>31.233<\/td>\n    <\/tr>\n    <tr>\n        <td>25<\/td>\n        <td>ThatLegendsGuy<\/td>\n        <td>31.467<\/td>\n    <\/tr>\n    <tr>\n        <td>26<\/td>\n        <td>melonmadegrenade<\/td>\n        <td>31.483<\/td>\n    <\/tr>\n    <tr>\n        <td>27<\/td>\n        <td>J4GE<\/td>\n        <td>31.850<\/td>\n    <\/tr>\n    <tr>\n        <td>28<\/td>\n        <td>mochaamochi<\/td>\n        <td>32.117<\/td>\n    <\/tr>\n    <tr>\n        <td>29<\/td>\n        <td>zerytoe<\/td>\n        <td>32.167<\/td>\n    <\/tr>\n    <tr>\n        <td>30<\/td>\n        <td>Diode_VAR<\/td>\n        <td>32.183<\/td>\n    <\/tr>\n    <tr>\n        <td>31<\/td>\n        <td>uuts_that-smoke<\/td>\n        <td>32.267<\/td>\n    <\/tr>\n    <tr>\n        <td>32<\/td>\n        <td>SectionGeneral<\/td>\n        <td>32.283<\/td>\n    <\/tr>\n    <tr>\n        <td>33<\/td>\n        <td>Blaidan360<\/td>\n        <td>32.400<\/td>\n    <\/tr>\n    <tr>\n        <td>34<\/td>\n        <td>LobusRex<\/td>\n        <td>32.500<\/td>\n    <\/tr>\n    <tr>\n        <td>35<\/td>\n        <td>SleepPatterns<\/td>\n        <td>32.550<\/td>\n    <\/tr>\n    <tr>\n        <td>36<\/td>\n        <td>S1mpl3Dude<\/td>\n        <td>33.150<\/td>\n    <\/tr>\n    <tr>\n        <td>37<\/td>\n        <td>GeckoEidechse<\/td>\n        <td>33.300<\/td>\n    <\/tr>\n    <tr>\n        <td>38<\/td>\n        <td>svenosss<\/td>\n        <td>33.367<\/td>\n    <\/tr>\n    <tr>\n        <td>39<\/td>\n        <td>looksfinetome<\/td>\n        <td>33.500<\/td>\n    <\/tr>\n    <tr>\n        <td>40<\/td>\n        <td>Wonkierlinx360<\/td>\n        <td>33.583<\/td>\n    <\/tr>\n    <tr>\n        <td>41<\/td>\n        <td>Nonname123C<\/td>\n        <td>33.600<\/td>\n    <\/tr>\n    <tr>\n        <td>42<\/td>\n        <td>Ned_was_taken<\/td>\n        <td>33.667<\/td>\n    <\/tr>\n    <tr>\n        <td>43<\/td>\n        <td>emem_dash<\/td>\n        <td>33.717<\/td>\n    <\/tr>\n    <tr>\n        <td>44<\/td>\n        <td>Gamecrusher24<\/td>\n        <td>33.750<\/td>\n    <\/tr>\n    <tr>\n        <td>45<\/td>\n        <td>My_BouncyBall<\/td>\n        <td>34.167<\/td>\n    <\/tr>\n    <tr>\n        <td>46<\/td>\n        <td>StarKiller3909<\/td>\n        <td>34.200<\/td>\n    <\/tr>\n    <tr>\n        <td>47<\/td>\n        <td>PwnagePotato64<\/td>\n        <td>34.367<\/td>\n    <\/tr>\n    <tr>\n        <td>48<\/td>\n        <td>Stefzxc<\/td>\n        <td>34.617<\/td>\n    <\/tr>\n    <tr>\n        <td>49<\/td>\n        <td>RobertGerkens<\/td>\n        <td>34.817<\/td>\n    <\/tr>\n    <tr>\n        <td>50<\/td>\n        <td>Septro31<\/td>\n        <td>35.017<\/td>\n    <\/tr>\n    <tr>\n        <td>51<\/td>\n        <td>Yirons<\/td>\n        <td>35.417<\/td>\n    <\/tr>\n    <tr>\n        <td>52<\/td>\n        <td>WafflesRVeryNice<\/td>\n        <td>35.717<\/td>\n    <\/tr>\n    <tr>\n        <td>53<\/td>\n        <td>rhodes_the_cat<\/td>\n        <td>35.917<\/td>\n    <\/tr>\n    <tr>\n        <td>54<\/td>\n        <td>Emeron420<\/td>\n        <td>36.183<\/td>\n    <\/tr>\n    <tr>\n        <td>55<\/td>\n        <td>ILIKEAWALL<\/td>\n        <td>36.283<\/td>\n    <\/tr>\n    <tr>\n        <td>56<\/td>\n        <td>Uber_GrandPanzer<\/td>\n        <td>36.750<\/td>\n    <\/tr>\n    <tr>\n        <td>57<\/td>\n        <td>E3VL<\/td>\n        <td>36.767<\/td>\n    <\/tr>\n    <tr>\n        <td>58<\/td>\n        <td>EladNLG<\/td>\n        <td>37.083<\/td>\n    <\/tr>\n    <tr>\n        <td>59<\/td>\n        <td>SomeSoggyToast25<\/td>\n        <td>37.550<\/td>\n    <\/tr>\n    <tr>\n        <td>60<\/td>\n        <td>AviLolz<\/td>\n        <td>37.633<\/td>\n    <\/tr>\n    <tr>\n        <td>61<\/td>\n        <td>tim03legeek<\/td>\n        <td>37.633<\/td>\n    <\/tr>\n    <tr>\n        <td>62<\/td>\n        <td>kero654<\/td>\n        <td>37.800<\/td>\n    <\/tr>\n    <tr>\n        <td>63<\/td>\n        <td>Yuccuh<\/td>\n        <td>37.883<\/td>\n    <\/tr>\n    <tr>\n        <td>64<\/td>\n        <td>Gaban_Killasta05<\/td>\n        <td>37.917<\/td>\n    <\/tr>\n    <tr>\n        <td>65<\/td>\n        <td>Finnstera350<\/td>\n        <td>37.917<\/td>\n    <\/tr>\n    <tr>\n        <td>66<\/td>\n        <td>ineedpickles<\/td>\n        <td>38.117<\/td>\n    <\/tr>\n    <tr>\n        <td>67<\/td>\n        <td>USeR_bloodrage<\/td>\n        <td>38.199<\/td>\n    <\/tr>\n    <tr>\n        <td>68<\/td>\n        <td>kisvalek<\/td>\n        <td>38.333<\/td>\n    <\/tr>\n    <tr>\n        <td>69<\/td>\n        <td>GamingZeether<\/td>\n        <td>38.450<\/td>\n    <\/tr>\n    <tr>\n        <td>70<\/td>\n        <td>Nonogn<\/td>\n        <td>38.567<\/td>\n    <\/tr>\n    <tr>\n        <td>71<\/td>\n        <td>LPM-CJ-DayLight<\/td>\n        <td>38.641<\/td>\n    <\/tr>\n    <tr>\n        <td>72<\/td>\n        <td>coolkubo19<\/td>\n        <td>38.966<\/td>\n    <\/tr>\n    <tr>\n        <td>73<\/td>\n        <td>Zokn3<\/td>\n        <td>38.967<\/td>\n    <\/tr>\n    <tr>\n        <td>74<\/td>\n        <td>sussyboy2609<\/td>\n        <td>39.050<\/td>\n    <\/tr>\n    <tr>\n        <td>75<\/td>\n        <td>That_Damn_Dragon<\/td>\n        <td>39.050<\/td>\n    <\/tr>\n    <tr>\n        <td>76<\/td>\n        <td>lexvi1<\/td>\n        <td>39.300<\/td>\n    <\/tr>\n    <tr>\n        <td>77<\/td>\n        <td>PliantShark<\/td>\n        <td>39.533<\/td>\n    <\/tr>\n    <tr>\n        <td>78<\/td>\n        <td>Maechy<\/td>\n        <td>40.067<\/td>\n    <\/tr>\n    <tr>\n        <td>79<\/td>\n        <td>RoyalBlood999<\/td>\n        <td>40.183<\/td>\n    <\/tr>\n    <tr>\n        <td>80<\/td>\n        <td>Animator_533<\/td>\n        <td>40.417<\/td>\n    <\/tr>\n    <tr>\n        <td>81<\/td>\n        <td>BruhBonn<\/td>\n        <td>40.417<\/td>\n    <\/tr>\n    <tr>\n        <td>82<\/td>\n        <td>Fr0sty543<\/td>\n        <td>40.517<\/td>\n    <\/tr>\n    <tr>\n        <td>83<\/td>\n        <td>Hytermak<\/td>\n        <td>40.583<\/td>\n    <\/tr>\n    <tr>\n        <td>84<\/td>\n        <td>CoachD97<\/td>\n        <td>40.650<\/td>\n    <\/tr>\n    <tr>\n        <td>85<\/td>\n        <td>enderboy9217yt<\/td>\n        <td>40.717<\/td>\n    <\/tr>\n    <tr>\n        <td>86<\/td>\n        <td>TheRagebot1302<\/td>\n        <td>40.783<\/td>\n    <\/tr>\n    <tr>\n        <td>87<\/td>\n        <td>Jennyann7997<\/td>\n        <td>40.917<\/td>\n    <\/tr>\n    <tr>\n        <td>88<\/td>\n        <td>Katuro117<\/td>\n        <td>40.950<\/td>\n    <\/tr>\n    <tr>\n        <td>89<\/td>\n        <td>Hex585<\/td>\n        <td>41.000<\/td>\n    <\/tr>\n    <tr>\n        <td>90<\/td>\n        <td>BRUH_MKI<\/td>\n        <td>41.133<\/td>\n    <\/tr>\n    <tr>\n        <td>91<\/td>\n        <td>KillTrio-BgTT<\/td>\n        <td>41.183<\/td>\n    <\/tr>\n    <tr>\n        <td>92<\/td>\n        <td>Obama_Gaming23<\/td>\n        <td>41.317<\/td>\n    <\/tr>\n    <tr>\n        <td>93<\/td>\n        <td>Alystrasz<\/td>\n        <td>41.433<\/td>\n    <\/tr>\n    <tr>\n        <td>94<\/td>\n        <td>GalacticMoblin01<\/td>\n        <td>41.650<\/td>\n    <\/tr>\n    <tr>\n        <td>95<\/td>\n        <td>AbyssalFlame11<\/td>\n        <td>42.750<\/td>\n    <\/tr>\n    <tr>\n        <td>96<\/td>\n        <td>OddComms<\/td>\n        <td>42.833<\/td>\n    <\/tr>\n    <tr>\n        <td>97<\/td>\n        <td>CooldudePUGS<\/td>\n        <td>42.867<\/td>\n    <\/tr>\n    <tr>\n        <td>98<\/td>\n        <td>Locke_f00k_Ea<\/td>\n        <td>43.100<\/td>\n    <\/tr>\n    <tr>\n        <td>99<\/td>\n        <td>DurgenTheFirst<\/td>\n        <td>43.100<\/td>\n    <\/tr>\n    <tr>\n        <td>100<\/td>\n        <td>GreenAce3821<\/td>\n        <td>43.317<\/td>\n    <\/tr>\n    <tr>\n        <td>101<\/td>\n        <td>swtufh<\/td>\n        <td>43.467<\/td>\n    <\/tr>\n    <tr>\n        <td>102<\/td>\n        <td>iihateyou21<\/td>\n        <td>43.500<\/td>\n    <\/tr>\n    <tr>\n        <td>103<\/td>\n        <td>User_disconnect<\/td>\n        <td>43.567<\/td>\n    <\/tr>\n    <tr>\n        <td>104<\/td>\n        <td>glueboyjoe<\/td>\n        <td>43.683<\/td>\n    <\/tr>\n    <tr>\n        <td>105<\/td>\n        <td>Karasoka<\/td>\n        <td>43.750<\/td>\n    <\/tr>\n    <tr>\n        <td>106<\/td>\n        <td>cat_or_not<\/td>\n        <td>43.817<\/td>\n    <\/tr>\n    <tr>\n        <td>107<\/td>\n        <td>weegpp<\/td>\n        <td>43.983<\/td>\n    <\/tr>\n    <tr>\n        <td>108<\/td>\n        <td>MountYoshino<\/td>\n        <td>44.350<\/td>\n    <\/tr>\n    <tr>\n        <td>109<\/td>\n        <td>ElFamosoMothix<\/td>\n        <td>44.917<\/td>\n    <\/tr>\n    <tr>\n        <td>110<\/td>\n        <td>Jheeazy<\/td>\n        <td>45.100<\/td>\n    <\/tr>\n    <tr>\n        <td>111<\/td>\n        <td>RayIeiqh<\/td>\n        <td>45.117<\/td>\n    <\/tr>\n    <tr>\n        <td>112<\/td>\n        <td>OddStuffAreCool<\/td>\n        <td>45.250<\/td>\n    <\/tr>\n    <tr>\n        <td>113<\/td>\n        <td>InWeNa<\/td>\n        <td>45.283<\/td>\n    <\/tr>\n    <tr>\n        <td>114<\/td>\n        <td>TheRatOfficial<\/td>\n        <td>45.383<\/td>\n    <\/tr>\n    <tr>\n        <td>115<\/td>\n        <td>Shay-Khulud<\/td>\n        <td>45.450<\/td>\n    <\/tr>\n    <tr>\n        <td>116<\/td>\n        <td>XSDDRF43RE<\/td>\n        <td>45.467<\/td>\n    <\/tr>\n    <tr>\n        <td>117<\/td>\n        <td>Juli0q<\/td>\n        <td>45.550<\/td>\n    <\/tr>\n    <tr>\n        <td>118<\/td>\n        <td>FV0lt<\/td>\n        <td>45.883<\/td>\n    <\/tr>\n    <tr>\n        <td>119<\/td>\n        <td>tinyRoboticist<\/td>\n        <td>45.883<\/td>\n    <\/tr>\n    <tr>\n        <td>120<\/td>\n        <td>Ryno2<\/td>\n        <td>46.200<\/td>\n    <\/tr>\n    <tr>\n        <td>121<\/td>\n        <td>holalho<\/td>\n        <td>46.583<\/td>\n    <\/tr>\n    <tr>\n        <td>122<\/td>\n        <td>Flaming_Kunia<\/td>\n        <td>46.917<\/td>\n    <\/tr>\n    <tr>\n        <td>123<\/td>\n        <td>spunkyymonky<\/td>\n        <td>47.000<\/td>\n    <\/tr>\n    <tr>\n        <td>124<\/td>\n        <td>BURAN508<\/td>\n        <td>47.067<\/td>\n    <\/tr>\n    <tr>\n        <td>125<\/td>\n        <td>DzerlaDobarCovek<\/td>\n        <td>47.150<\/td>\n    <\/tr>\n    <tr>\n        <td>126<\/td>\n        <td>Nickname241b<\/td>\n        <td>47.350<\/td>\n    <\/tr>\n    <tr>\n        <td>127<\/td>\n        <td>ArisuTW<\/td>\n        <td>47.350<\/td>\n    <\/tr>\n    <tr>\n        <td>128<\/td>\n        <td>Harbb__<\/td>\n        <td>47.683<\/td>\n    <\/tr>\n    <tr>\n        <td>129<\/td>\n        <td>krisupperxd<\/td>\n        <td>47.733<\/td>\n    <\/tr>\n    <tr>\n        <td>130<\/td>\n        <td>4060Ti8G<\/td>\n        <td>47.900<\/td>\n    <\/tr>\n    <tr>\n        <td>131<\/td>\n        <td>Defau1t0<\/td>\n        <td>48.183<\/td>\n    <\/tr>\n    <tr>\n        <td>132<\/td>\n        <td>CotonCarnage<\/td>\n        <td>48.450<\/td>\n    <\/tr>\n    <tr>\n        <td>133<\/td>\n        <td>Ben11pearson<\/td>\n        <td>48.600<\/td>\n    <\/tr>\n    <tr>\n        <td>134<\/td>\n        <td>BLUETIMETHREE<\/td>\n        <td>48.850<\/td>\n    <\/tr>\n    <tr>\n        <td>135<\/td>\n        <td>abugonzo_14<\/td>\n        <td>49.117<\/td>\n    <\/tr>\n    <tr>\n        <td>136<\/td>\n        <td>ToxicShakal<\/td>\n        <td>49.317<\/td>\n    <\/tr>\n    <tr>\n        <td>137<\/td>\n        <td>Racecardriver05<\/td>\n        <td>49.417<\/td>\n    <\/tr>\n    <tr>\n        <td>138<\/td>\n        <td>BlasterManGuy<\/td>\n        <td>49.500<\/td>\n    <\/tr>\n    <tr>\n        <td>139<\/td>\n        <td>TrainerRed_0<\/td>\n        <td>49.517<\/td>\n    <\/tr>\n    <tr>\n        <td>140<\/td>\n        <td>Magic479<\/td>\n        <td>49.683<\/td>\n    <\/tr>\n    <tr>\n        <td>141<\/td>\n        <td>PesterTheMester<\/td>\n        <td>49.833<\/td>\n    <\/tr>\n    <tr>\n        <td>142<\/td>\n        <td>PanHorno<\/td>\n        <td>50.067<\/td>\n    <\/tr>\n    <tr>\n        <td>143<\/td>\n        <td>Tumpp1xel<\/td>\n        <td>50.283<\/td>\n    <\/tr>\n    <tr>\n        <td>144<\/td>\n        <td>BlueTealAqua<\/td>\n        <td>50.700<\/td>\n    <\/tr>\n    <tr>\n        <td>145<\/td>\n        <td>Kolpy_Uno<\/td>\n        <td>50.733<\/td>\n    <\/tr>\n    <tr>\n        <td>146<\/td>\n        <td>LiterallyAnfrew<\/td>\n        <td>50.750<\/td>\n    <\/tr>\n    <tr>\n        <td>147<\/td>\n        <td>fetchin1<\/td>\n        <td>50.917<\/td>\n    <\/tr>\n    <tr>\n        <td>148<\/td>\n        <td>DashyTheFoxxo<\/td>\n        <td>51.083<\/td>\n    <\/tr>\n    <tr>\n        <td>149<\/td>\n        <td>Caram03<\/td>\n        <td>51.134<\/td>\n    <\/tr>\n    <tr>\n        <td>150<\/td>\n        <td>ashleyyyzZ_09<\/td>\n        <td>51.217<\/td>\n    <\/tr>\n    <tr>\n        <td>151<\/td>\n        <td>ItsJoeyG<\/td>\n        <td>51.850<\/td>\n    <\/tr>\n    <tr>\n        <td>152<\/td>\n        <td>BoundIvy<\/td>\n        <td>52.183<\/td>\n    <\/tr>\n    <tr>\n        <td>153<\/td>\n        <td>Lenin-Da-Lemon<\/td>\n        <td>52.367<\/td>\n    <\/tr>\n    <tr>\n        <td>154<\/td>\n        <td>St00ge<\/td>\n        <td>53.383<\/td>\n    <\/tr>\n    <tr>\n        <td>155<\/td>\n        <td>6666234234<\/td>\n        <td>53.400<\/td>\n    <\/tr>\n    <tr>\n        <td>156<\/td>\n        <td>Cloudbounce<\/td>\n        <td>53.767<\/td>\n    <\/tr>\n    <tr>\n        <td>157<\/td>\n        <td>Hurbskideez<\/td>\n        <td>53.783<\/td>\n    <\/tr>\n    <tr>\n        <td>158<\/td>\n        <td>pg9182<\/td>\n        <td>53.817<\/td>\n    <\/tr>\n    <tr>\n        <td>159<\/td>\n        <td>wyxudagxo7oe<\/td>\n        <td>53.917<\/td>\n    <\/tr>\n    <tr>\n        <td>160<\/td>\n        <td>The_taskinoz<\/td>\n        <td>54.406<\/td>\n    <\/tr>\n    <tr>\n        <td>161<\/td>\n        <td>Gung1111<\/td>\n        <td>54.867<\/td>\n    <\/tr>\n    <tr>\n        <td>162<\/td>\n        <td>DNI4E<\/td>\n        <td>54.967<\/td>\n    <\/tr>\n    <tr>\n        <td>163<\/td>\n        <td>Paradox_Loop<\/td>\n        <td>55.117<\/td>\n    <\/tr>\n    <tr>\n        <td>164<\/td>\n        <td>Archangel_Pasta<\/td>\n        <td>55.333<\/td>\n    <\/tr>\n    <tr>\n        <td>165<\/td>\n        <td>Jxnrau<\/td>\n        <td>55.583<\/td>\n    <\/tr>\n    <tr>\n        <td>166<\/td>\n        <td>overtlion968863<\/td>\n        <td>55.617<\/td>\n    <\/tr>\n    <tr>\n        <td>167<\/td>\n        <td>IronMayo<\/td>\n        <td>55.750<\/td>\n    <\/tr>\n    <tr>\n        <td>168<\/td>\n        <td>TrilogyVR<\/td>\n        <td>56.383<\/td>\n    <\/tr>\n    <tr>\n        <td>169<\/td>\n        <td>mexquT<\/td>\n        <td>56.566<\/td>\n    <\/tr>\n    <tr>\n        <td>170<\/td>\n        <td>xhoopAngelReborn<\/td>\n        <td>56.567<\/td>\n    <\/tr>\n    <tr>\n        <td>171<\/td>\n        <td>YourTastyMelon<\/td>\n        <td>56.700<\/td>\n    <\/tr>\n    <tr>\n        <td>172<\/td>\n        <td>dtb3218<\/td>\n        <td>56.750<\/td>\n    <\/tr>\n    <tr>\n        <td>173<\/td>\n        <td>Trumcon1<\/td>\n        <td>57.233<\/td>\n    <\/tr>\n    <tr>\n        <td>174<\/td>\n        <td>GlitchSlayed<\/td>\n        <td>57.267<\/td>\n    <\/tr>\n    <tr>\n        <td>175<\/td>\n        <td>papermaster24<\/td>\n        <td>57.333<\/td>\n    <\/tr>\n    <tr>\n        <td>176<\/td>\n        <td>EPGhaha<\/td>\n        <td>57.533<\/td>\n    <\/tr>\n    <tr>\n        <td>177<\/td>\n        <td>Mikai_Kakami<\/td>\n        <td>57.950<\/td>\n    <\/tr>\n    <tr>\n        <td>178<\/td>\n        <td>lightlysilly<\/td>\n        <td>58.300<\/td>\n    <\/tr>\n    <tr>\n        <td>179<\/td>\n        <td>hearthburst<\/td>\n        <td>59.300<\/td>\n    <\/tr>\n    <tr>\n        <td>180<\/td>\n        <td>dariuscosmoait<\/td>\n        <td>59.417<\/td>\n    <\/tr>\n    <tr>\n        <td>181<\/td>\n        <td>orikpio<\/td>\n        <td>59.450<\/td>\n    <\/tr>\n    <tr>\n        <td>182<\/td>\n        <td>IggyForShort<\/td>\n        <td>59.517<\/td>\n    <\/tr>\n    <tr>\n        <td>183<\/td>\n        <td>argon-42<\/td>\n        <td>59.750<\/td>\n    <\/tr>\n    <tr>\n        <td>184<\/td>\n        <td>RupeeCollecter<\/td>\n        <td>60.467<\/td>\n    <\/tr>\n    <tr>\n        <td>185<\/td>\n        <td>koooooonisch<\/td>\n        <td>60.500<\/td>\n    <\/tr>\n    <tr>\n        <td>186<\/td>\n        <td>AntuksOWL<\/td>\n        <td>60.817<\/td>\n    <\/tr>\n    <tr>\n        <td>187<\/td>\n        <td>NecrXw<\/td>\n        <td>60.933<\/td>\n    <\/tr>\n    <tr>\n        <td>188<\/td>\n        <td>HatlessCookie26<\/td>\n        <td>61.083<\/td>\n    <\/tr>\n    <tr>\n        <td>189<\/td>\n        <td>Tiranus58<\/td>\n        <td>61.400<\/td>\n    <\/tr>\n    <tr>\n        <td>190<\/td>\n        <td>juan6212<\/td>\n        <td>61.817<\/td>\n    <\/tr>\n    <tr>\n        <td>191<\/td>\n        <td>pikmin232<\/td>\n        <td>62.133<\/td>\n    <\/tr>\n    <tr>\n        <td>192<\/td>\n        <td>TechnicDesert28<\/td>\n        <td>62.300<\/td>\n    <\/tr>\n    <tr>\n        <td>193<\/td>\n        <td>scoutsnumber1<\/td>\n        <td>62.367<\/td>\n    <\/tr>\n    <tr>\n        <td>194<\/td>\n        <td>Relicopterr<\/td>\n        <td>62.517<\/td>\n    <\/tr>\n    <tr>\n        <td>195<\/td>\n        <td>s-a092<\/td>\n        <td>63.400<\/td>\n    <\/tr>\n    <tr>\n        <td>196<\/td>\n        <td>Artemissy_exe<\/td>\n        <td>65.133<\/td>\n    <\/tr>\n    <tr>\n        <td>197<\/td>\n        <td>nn_ebb_flow<\/td>\n        <td>65.316<\/td>\n    <\/tr>\n    <tr>\n        <td>198<\/td>\n        <td>Xx_ghost_xX13435<\/td>\n        <td>65.367<\/td>\n    <\/tr>\n    <tr>\n        <td>199<\/td>\n        <td>Mark109K<\/td>\n        <td>67.233<\/td>\n    <\/tr>\n    <tr>\n        <td>200<\/td>\n        <td>Beanleeee<\/td>\n        <td>67.467<\/td>\n    <\/tr>\n    <tr>\n        <td>201<\/td>\n        <td>UZI_TRIGGERR<\/td>\n        <td>67.834<\/td>\n    <\/tr>\n    <tr>\n        <td>202<\/td>\n        <td>Xiranim<\/td>\n        <td>68.033<\/td>\n    <\/tr>\n    <tr>\n        <td>203<\/td>\n        <td>SolShine-Seal<\/td>\n        <td>68.933<\/td>\n    <\/tr>\n    <tr>\n        <td>204<\/td>\n        <td>mephill91<\/td>\n        <td>70.250<\/td>\n    <\/tr>\n    <tr>\n        <td>205<\/td>\n        <td>Flame1367<\/td>\n        <td>72.600<\/td>\n    <\/tr>\n    <tr>\n        <td>206<\/td>\n        <td>722243<\/td>\n        <td>73.017<\/td>\n    <\/tr>\n    <tr>\n        <td>207<\/td>\n        <td>IronLordLoki<\/td>\n        <td>73.317<\/td>\n    <\/tr>\n    <tr>\n        <td>208<\/td>\n        <td>RoughNewt<\/td>\n        <td>73.750<\/td>\n    <\/tr>\n    <tr>\n        <td>209<\/td>\n        <td>xdPenguin287<\/td>\n        <td>75.300<\/td>\n    <\/tr>\n    <tr>\n        <td>210<\/td>\n        <td>tap11111111<\/td>\n        <td>75.900<\/td>\n    <\/tr>\n    <tr>\n        <td>211<\/td>\n        <td>Blue-onControler<\/td>\n        <td>77.650<\/td>\n    <\/tr>\n    <tr>\n        <td>212<\/td>\n        <td>UrFavCylon<\/td>\n        <td>79.200<\/td>\n    <\/tr>\n    <tr>\n        <td>213<\/td>\n        <td>Ragnar_Thorr<\/td>\n        <td>80.567<\/td>\n    <\/tr>\n    <tr>\n        <td>214<\/td>\n        <td>ChaoticShort<\/td>\n        <td>85.633<\/td>\n    <\/tr>\n    <tr>\n        <td>215<\/td>\n        <td>GodofDeathgods<\/td>\n        <td>85.717<\/td>\n    <\/tr>\n    <tr>\n        <td>216<\/td>\n        <td>ImaCat42<\/td>\n        <td>87.517<\/td>\n    <\/tr>\n    <tr>\n        <td>217<\/td>\n        <td>AksiMozok<\/td>\n        <td>107.317<\/td>\n    <\/tr>\n    <tr>\n        <td>218<\/td>\n        <td>xSkyWordx<\/td>\n        <td>115.567<\/td>\n    <\/tr>\n    <tr>\n        <td>219<\/td>\n        <td>paintedwolf0070<\/td>\n        <td>156.667<\/td>\n    <\/tr>\n    <tr>\n        <td>220<\/td>\n        <td>TopRival75<\/td>\n        <td>231.933<\/td>\n    <\/tr>\n    <\/tbody><\/table>\n\n<h2 id=\"war-games\">War Games<\/h2>\n\n<h3 id=\"example-route-from-cash-mayo\">Example route from <em>Cash Mayo<\/em><\/h3>\n\n<video controls=\"\" style=\"max-width: 100%\">\n    <source src=\"\/assets\/video\/posts\/parkour\/cashmayo_wargames_29.75.mp4\" type=\"video\/webm\" \/>\n    Sorry, your browser doesn't support embedded videos.\n<\/video>\n\n<h3 id=\"final-placing-2\">Final placing<\/h3>\n\n<table id=\"map_9438e652-40cd-4044-91f7-bbf70a09eb8b\" map_id=\"9438e652-40cd-4044-91f7-bbf70a09eb8b\" class=\"map_scores\" show=\"\">\n    <tbody><tr class=\"header\">\n        <th>Position<\/th>\n        <th>Player name<\/th>\n        <th>Time (seconds)<\/th>\n    <\/tr>\n    <tr>\n        <td>1<\/td>\n        <td>bertybhoy22<\/td>\n        <td>26.400<\/td>\n    <\/tr>\n    <tr>\n        <td>2<\/td>\n        <td>Dadadu2711<\/td>\n        <td>28.283<\/td>\n    <\/tr>\n    <tr>\n        <td>3<\/td>\n        <td>Cash_Mayo<\/td>\n        <td>29.750<\/td>\n    <\/tr>\n    <tr>\n        <td>4<\/td>\n        <td>chilll_spirit<\/td>\n        <td>30.167<\/td>\n    <\/tr>\n    <tr>\n        <td>5<\/td>\n        <td>DarkwinV1<\/td>\n        <td>30.267<\/td>\n    <\/tr>\n    <tr>\n        <td>6<\/td>\n        <td>matsRLS<\/td>\n        <td>33.983<\/td>\n    <\/tr>\n    <tr>\n        <td>7<\/td>\n        <td>DobryZuber<\/td>\n        <td>34.583<\/td>\n    <\/tr>\n    <tr>\n        <td>8<\/td>\n        <td>DeedVoid<\/td>\n        <td>36.400<\/td>\n    <\/tr>\n    <tr>\n        <td>9<\/td>\n        <td>PopBom<\/td>\n        <td>36.467<\/td>\n    <\/tr>\n    <tr>\n        <td>10<\/td>\n        <td>mewnEatsCrayons<\/td>\n        <td>37.117<\/td>\n    <\/tr>\n    <tr>\n        <td>11<\/td>\n        <td>P3NG000N<\/td>\n        <td>37.200<\/td>\n    <\/tr>\n    <tr>\n        <td>12<\/td>\n        <td>PilotGSPL<\/td>\n        <td>37.483<\/td>\n    <\/tr>\n    <tr>\n        <td>13<\/td>\n        <td>justneptune<\/td>\n        <td>37.817<\/td>\n    <\/tr>\n    <tr>\n        <td>14<\/td>\n        <td>H00man<\/td>\n        <td>38.100<\/td>\n    <\/tr>\n    <tr>\n        <td>15<\/td>\n        <td>Blaidan360<\/td>\n        <td>38.117<\/td>\n    <\/tr>\n    <tr>\n        <td>16<\/td>\n        <td>My_BouncyBall<\/td>\n        <td>38.767<\/td>\n    <\/tr>\n    <tr>\n        <td>17<\/td>\n        <td>ThatLegendsGuy<\/td>\n        <td>38.967<\/td>\n    <\/tr>\n    <tr>\n        <td>18<\/td>\n        <td>ilycit<\/td>\n        <td>40.250<\/td>\n    <\/tr>\n    <tr>\n        <td>19<\/td>\n        <td>monzuul<\/td>\n        <td>40.417<\/td>\n    <\/tr>\n    <tr>\n        <td>20<\/td>\n        <td>ChristDillinger<\/td>\n        <td>40.633<\/td>\n    <\/tr>\n    <tr>\n        <td>21<\/td>\n        <td>paradies_so<\/td>\n        <td>40.867<\/td>\n    <\/tr>\n    <tr>\n        <td>22<\/td>\n        <td>Ryukaro<\/td>\n        <td>40.933<\/td>\n    <\/tr>\n    <tr>\n        <td>23<\/td>\n        <td>braveGNUworld<\/td>\n        <td>41.150<\/td>\n    <\/tr>\n    <tr>\n        <td>24<\/td>\n        <td>EB200321<\/td>\n        <td>41.350<\/td>\n    <\/tr>\n    <tr>\n        <td>25<\/td>\n        <td>J4GE<\/td>\n        <td>41.733<\/td>\n    <\/tr>\n    <tr>\n        <td>26<\/td>\n        <td>RNM91835189<\/td>\n        <td>42.550<\/td>\n    <\/tr>\n    <tr>\n        <td>27<\/td>\n        <td>FddgeNugget<\/td>\n        <td>43.417<\/td>\n    <\/tr>\n    <tr>\n        <td>28<\/td>\n        <td>looksfinetome<\/td>\n        <td>44.000<\/td>\n    <\/tr>\n    <tr>\n        <td>29<\/td>\n        <td>Uber_GrandPanzer<\/td>\n        <td>44.100<\/td>\n    <\/tr>\n    <tr>\n        <td>30<\/td>\n        <td>melonmadegrenade<\/td>\n        <td>44.133<\/td>\n    <\/tr>\n    <tr>\n        <td>31<\/td>\n        <td>AmazingShurtle<\/td>\n        <td>44.250<\/td>\n    <\/tr>\n    <tr>\n        <td>32<\/td>\n        <td>PwnagePotato64<\/td>\n        <td>44.650<\/td>\n    <\/tr>\n    <tr>\n        <td>33<\/td>\n        <td>Wonkierlinx360<\/td>\n        <td>44.867<\/td>\n    <\/tr>\n    <tr>\n        <td>34<\/td>\n        <td>hey_Uncle_Phil<\/td>\n        <td>44.867<\/td>\n    <\/tr>\n    <tr>\n        <td>35<\/td>\n        <td>uuts_that-smoke<\/td>\n        <td>45.167<\/td>\n    <\/tr>\n    <tr>\n        <td>36<\/td>\n        <td>xDaan11<\/td>\n        <td>45.750<\/td>\n    <\/tr>\n    <tr>\n        <td>37<\/td>\n        <td>Gamecrusher24<\/td>\n        <td>45.800<\/td>\n    <\/tr>\n    <tr>\n        <td>38<\/td>\n        <td>Ned_was_taken<\/td>\n        <td>46.200<\/td>\n    <\/tr>\n    <tr>\n        <td>39<\/td>\n        <td>Xfighter312<\/td>\n        <td>46.283<\/td>\n    <\/tr>\n    <tr>\n        <td>40<\/td>\n        <td>Nonname123C<\/td>\n        <td>46.383<\/td>\n    <\/tr>\n    <tr>\n        <td>41<\/td>\n        <td>ineedpickles<\/td>\n        <td>46.667<\/td>\n    <\/tr>\n    <tr>\n        <td>42<\/td>\n        <td>Archangel_Pasta<\/td>\n        <td>46.833<\/td>\n    <\/tr>\n    <tr>\n        <td>43<\/td>\n        <td>Septro31<\/td>\n        <td>46.867<\/td>\n    <\/tr>\n    <tr>\n        <td>44<\/td>\n        <td>emem_dash<\/td>\n        <td>47.050<\/td>\n    <\/tr>\n    <tr>\n        <td>45<\/td>\n        <td>E3VL<\/td>\n        <td>47.100<\/td>\n    <\/tr>\n    <tr>\n        <td>46<\/td>\n        <td>Harbb__<\/td>\n        <td>47.700<\/td>\n    <\/tr>\n    <tr>\n        <td>47<\/td>\n        <td>StarKiller3909<\/td>\n        <td>47.900<\/td>\n    <\/tr>\n    <tr>\n        <td>48<\/td>\n        <td>RobertGerkens<\/td>\n        <td>48.217<\/td>\n    <\/tr>\n    <tr>\n        <td>49<\/td>\n        <td>20thUSPresident<\/td>\n        <td>48.250<\/td>\n    <\/tr>\n    <tr>\n        <td>50<\/td>\n        <td>CoachD97<\/td>\n        <td>48.317<\/td>\n    <\/tr>\n    <tr>\n        <td>51<\/td>\n        <td>zerytoe<\/td>\n        <td>49.100<\/td>\n    <\/tr>\n    <tr>\n        <td>52<\/td>\n        <td>iihateyou21<\/td>\n        <td>49.150<\/td>\n    <\/tr>\n    <tr>\n        <td>53<\/td>\n        <td>Zokn3<\/td>\n        <td>49.300<\/td>\n    <\/tr>\n    <tr>\n        <td>54<\/td>\n        <td>Stefzxc<\/td>\n        <td>49.317<\/td>\n    <\/tr>\n    <tr>\n        <td>55<\/td>\n        <td>GeckoEidechse<\/td>\n        <td>49.417<\/td>\n    <\/tr>\n    <tr>\n        <td>56<\/td>\n        <td>Diode_VAR<\/td>\n        <td>49.467<\/td>\n    <\/tr>\n    <tr>\n        <td>57<\/td>\n        <td>Crazy_CAR27<\/td>\n        <td>49.533<\/td>\n    <\/tr>\n    <tr>\n        <td>58<\/td>\n        <td>Yirons<\/td>\n        <td>49.567<\/td>\n    <\/tr>\n    <tr>\n        <td>59<\/td>\n        <td>CooldudePUGS<\/td>\n        <td>49.617<\/td>\n    <\/tr>\n    <tr>\n        <td>60<\/td>\n        <td>Katuro117<\/td>\n        <td>50.067<\/td>\n    <\/tr>\n    <tr>\n        <td>61<\/td>\n        <td>Maechy<\/td>\n        <td>50.083<\/td>\n    <\/tr>\n    <tr>\n        <td>62<\/td>\n        <td>svenosss<\/td>\n        <td>50.217<\/td>\n    <\/tr>\n    <tr>\n        <td>63<\/td>\n        <td>RayIeiqh<\/td>\n        <td>50.550<\/td>\n    <\/tr>\n    <tr>\n        <td>64<\/td>\n        <td>SleepPatterns<\/td>\n        <td>50.783<\/td>\n    <\/tr>\n    <tr>\n        <td>65<\/td>\n        <td>ImaCat42<\/td>\n        <td>51.100<\/td>\n    <\/tr>\n    <tr>\n        <td>66<\/td>\n        <td>PliantShark<\/td>\n        <td>51.283<\/td>\n    <\/tr>\n    <tr>\n        <td>67<\/td>\n        <td>enderboy9217yt<\/td>\n        <td>51.417<\/td>\n    <\/tr>\n    <tr>\n        <td>68<\/td>\n        <td>mochaamochi<\/td>\n        <td>51.850<\/td>\n    <\/tr>\n    <tr>\n        <td>69<\/td>\n        <td>InWeNa<\/td>\n        <td>52.200<\/td>\n    <\/tr>\n    <tr>\n        <td>70<\/td>\n        <td>BruhBonn<\/td>\n        <td>52.533<\/td>\n    <\/tr>\n    <tr>\n        <td>71<\/td>\n        <td>juuzzee<\/td>\n        <td>52.550<\/td>\n    <\/tr>\n    <tr>\n        <td>72<\/td>\n        <td>DurgenTheFirst<\/td>\n        <td>52.567<\/td>\n    <\/tr>\n    <tr>\n        <td>73<\/td>\n        <td>Emeron420<\/td>\n        <td>53.433<\/td>\n    <\/tr>\n    <tr>\n        <td>74<\/td>\n        <td>HiyaImGeo<\/td>\n        <td>53.583<\/td>\n    <\/tr>\n    <tr>\n        <td>75<\/td>\n        <td>lexvi1<\/td>\n        <td>53.650<\/td>\n    <\/tr>\n    <tr>\n        <td>76<\/td>\n        <td>USeR_bloodrage<\/td>\n        <td>53.817<\/td>\n    <\/tr>\n    <tr>\n        <td>77<\/td>\n        <td>Lenin-Da-Lemon<\/td>\n        <td>54.000<\/td>\n    <\/tr>\n    <tr>\n        <td>78<\/td>\n        <td>Cerealxkiller73<\/td>\n        <td>54.167<\/td>\n    <\/tr>\n    <tr>\n        <td>79<\/td>\n        <td>rhodes_the_cat<\/td>\n        <td>54.483<\/td>\n    <\/tr>\n    <tr>\n        <td>80<\/td>\n        <td>The_taskinoz<\/td>\n        <td>54.533<\/td>\n    <\/tr>\n    <tr>\n        <td>81<\/td>\n        <td>glueboyjoe<\/td>\n        <td>54.583<\/td>\n    <\/tr>\n    <tr>\n        <td>82<\/td>\n        <td>Nokariii<\/td>\n        <td>54.650<\/td>\n    <\/tr>\n    <tr>\n        <td>83<\/td>\n        <td>SomeSoggyToast25<\/td>\n        <td>54.750<\/td>\n    <\/tr>\n    <tr>\n        <td>84<\/td>\n        <td>DarkNebur1<\/td>\n        <td>54.883<\/td>\n    <\/tr>\n    <tr>\n        <td>85<\/td>\n        <td>kero654<\/td>\n        <td>55.100<\/td>\n    <\/tr>\n    <tr>\n        <td>86<\/td>\n        <td>tim03legeek<\/td>\n        <td>55.217<\/td>\n    <\/tr>\n    <tr>\n        <td>87<\/td>\n        <td>Jennyann7997<\/td>\n        <td>55.283<\/td>\n    <\/tr>\n    <tr>\n        <td>88<\/td>\n        <td>GreenAce3821<\/td>\n        <td>55.733<\/td>\n    <\/tr>\n    <tr>\n        <td>89<\/td>\n        <td>Joe_See_Fuss<\/td>\n        <td>55.733<\/td>\n    <\/tr>\n    <tr>\n        <td>90<\/td>\n        <td>Nickname241b<\/td>\n        <td>55.917<\/td>\n    <\/tr>\n    <tr>\n        <td>91<\/td>\n        <td>ToxicShakal<\/td>\n        <td>55.950<\/td>\n    <\/tr>\n    <tr>\n        <td>92<\/td>\n        <td>Finnstera350<\/td>\n        <td>56.000<\/td>\n    <\/tr>\n    <tr>\n        <td>93<\/td>\n        <td>BRUH_MKI<\/td>\n        <td>56.150<\/td>\n    <\/tr>\n    <tr>\n        <td>94<\/td>\n        <td>caliswagilistic<\/td>\n        <td>56.200<\/td>\n    <\/tr>\n    <tr>\n        <td>95<\/td>\n        <td>leigasd<\/td>\n        <td>56.233<\/td>\n    <\/tr>\n    <tr>\n        <td>96<\/td>\n        <td>Rorenhyme<\/td>\n        <td>56.300<\/td>\n    <\/tr>\n    <tr>\n        <td>97<\/td>\n        <td>Jerdherder<\/td>\n        <td>56.433<\/td>\n    <\/tr>\n    <tr>\n        <td>98<\/td>\n        <td>cat_or_not<\/td>\n        <td>56.483<\/td>\n    <\/tr>\n    <tr>\n        <td>99<\/td>\n        <td>GamingZeether<\/td>\n        <td>56.617<\/td>\n    <\/tr>\n    <tr>\n        <td>100<\/td>\n        <td>TheRagebot1302<\/td>\n        <td>56.633<\/td>\n    <\/tr>\n    <tr>\n        <td>101<\/td>\n        <td>Supcio<\/td>\n        <td>56.817<\/td>\n    <\/tr>\n    <tr>\n        <td>102<\/td>\n        <td>TrainerRed_0<\/td>\n        <td>57.083<\/td>\n    <\/tr>\n    <tr>\n        <td>103<\/td>\n        <td>swtufh<\/td>\n        <td>57.350<\/td>\n    <\/tr>\n    <tr>\n        <td>104<\/td>\n        <td>vaffelbolle<\/td>\n        <td>57.983<\/td>\n    <\/tr>\n    <tr>\n        <td>105<\/td>\n        <td>FV0lt<\/td>\n        <td>58.100<\/td>\n    <\/tr>\n    <tr>\n        <td>106<\/td>\n        <td>emankciNretnE<\/td>\n        <td>58.150<\/td>\n    <\/tr>\n    <tr>\n        <td>107<\/td>\n        <td>spunkyymonky<\/td>\n        <td>58.150<\/td>\n    <\/tr>\n    <tr>\n        <td>108<\/td>\n        <td>EladNLG<\/td>\n        <td>58.167<\/td>\n    <\/tr>\n    <tr>\n        <td>109<\/td>\n        <td>WafflesRVeryNice<\/td>\n        <td>58.267<\/td>\n    <\/tr>\n    <tr>\n        <td>110<\/td>\n        <td>ArisuTW<\/td>\n        <td>58.283<\/td>\n    <\/tr>\n    <tr>\n        <td>111<\/td>\n        <td>ButcherBee1<\/td>\n        <td>58.333<\/td>\n    <\/tr>\n    <tr>\n        <td>112<\/td>\n        <td>TheRatOfficial<\/td>\n        <td>58.517<\/td>\n    <\/tr>\n    <tr>\n        <td>113<\/td>\n        <td>DzerlaDobarCovek<\/td>\n        <td>58.550<\/td>\n    <\/tr>\n    <tr>\n        <td>114<\/td>\n        <td>Alystrasz<\/td>\n        <td>58.767<\/td>\n    <\/tr>\n    <tr>\n        <td>115<\/td>\n        <td>pillows1616<\/td>\n        <td>58.900<\/td>\n    <\/tr>\n    <tr>\n        <td>116<\/td>\n        <td>Ryno2<\/td>\n        <td>59.033<\/td>\n    <\/tr>\n    <tr>\n        <td>117<\/td>\n        <td>Hurbskideez<\/td>\n        <td>59.148<\/td>\n    <\/tr>\n    <tr>\n        <td>118<\/td>\n        <td>ONIPIKA-1<\/td>\n        <td>59.250<\/td>\n    <\/tr>\n    <tr>\n        <td>119<\/td>\n        <td>Locke_f00k_Ea<\/td>\n        <td>59.350<\/td>\n    <\/tr>\n    <tr>\n        <td>120<\/td>\n        <td>Shay-Khulud<\/td>\n        <td>60.017<\/td>\n    <\/tr>\n    <tr>\n        <td>121<\/td>\n        <td>Tumpp1xel<\/td>\n        <td>60.033<\/td>\n    <\/tr>\n    <tr>\n        <td>122<\/td>\n        <td>xhoopAngelReborn<\/td>\n        <td>60.133<\/td>\n    <\/tr>\n    <tr>\n        <td>123<\/td>\n        <td>ElFamosoMothix<\/td>\n        <td>60.150<\/td>\n    <\/tr>\n    <tr>\n        <td>124<\/td>\n        <td>Kolpy_Uno<\/td>\n        <td>60.167<\/td>\n    <\/tr>\n    <tr>\n        <td>125<\/td>\n        <td>1500TropicalFish<\/td>\n        <td>60.250<\/td>\n    <\/tr>\n    <tr>\n        <td>126<\/td>\n        <td>Nonogn<\/td>\n        <td>60.283<\/td>\n    <\/tr>\n    <tr>\n        <td>127<\/td>\n        <td>KillTrio-BgTT<\/td>\n        <td>60.583<\/td>\n    <\/tr>\n    <tr>\n        <td>128<\/td>\n        <td>GalacticMoblin01<\/td>\n        <td>60.602<\/td>\n    <\/tr>\n    <tr>\n        <td>129<\/td>\n        <td>kisvalek<\/td>\n        <td>60.717<\/td>\n    <\/tr>\n    <tr>\n        <td>130<\/td>\n        <td>PYRiTEmonark<\/td>\n        <td>60.750<\/td>\n    <\/tr>\n    <tr>\n        <td>131<\/td>\n        <td>Defau1t0<\/td>\n        <td>60.767<\/td>\n    <\/tr>\n    <tr>\n        <td>132<\/td>\n        <td>Electrionikal<\/td>\n        <td>60.883<\/td>\n    <\/tr>\n    <tr>\n        <td>133<\/td>\n        <td>AbyssalFlame11<\/td>\n        <td>61.267<\/td>\n    <\/tr>\n    <tr>\n        <td>134<\/td>\n        <td>scoutsnumber1<\/td>\n        <td>61.300<\/td>\n    <\/tr>\n    <tr>\n        <td>135<\/td>\n        <td>papermaster24<\/td>\n        <td>61.350<\/td>\n    <\/tr>\n    <tr>\n        <td>136<\/td>\n        <td>m2ytt9W<\/td>\n        <td>61.383<\/td>\n    <\/tr>\n    <tr>\n        <td>137<\/td>\n        <td>lightlysilly<\/td>\n        <td>61.433<\/td>\n    <\/tr>\n    <tr>\n        <td>138<\/td>\n        <td>sussyboy2609<\/td>\n        <td>61.817<\/td>\n    <\/tr>\n    <tr>\n        <td>139<\/td>\n        <td>AviLolz<\/td>\n        <td>61.983<\/td>\n    <\/tr>\n    <tr>\n        <td>140<\/td>\n        <td>AntuksOWL<\/td>\n        <td>62.033<\/td>\n    <\/tr>\n    <tr>\n        <td>141<\/td>\n        <td>Racecardriver05<\/td>\n        <td>62.133<\/td>\n    <\/tr>\n    <tr>\n        <td>142<\/td>\n        <td>OddStuffAreCool<\/td>\n        <td>62.167<\/td>\n    <\/tr>\n    <tr>\n        <td>143<\/td>\n        <td>slightrr<\/td>\n        <td>62.500<\/td>\n    <\/tr>\n    <tr>\n        <td>144<\/td>\n        <td>overtlion968863<\/td>\n        <td>62.533<\/td>\n    <\/tr>\n    <tr>\n        <td>145<\/td>\n        <td>Hex585<\/td>\n        <td>62.617<\/td>\n    <\/tr>\n    <tr>\n        <td>146<\/td>\n        <td>Kzx209<\/td>\n        <td>62.717<\/td>\n    <\/tr>\n    <tr>\n        <td>147<\/td>\n        <td>MountYoshino<\/td>\n        <td>63.217<\/td>\n    <\/tr>\n    <tr>\n        <td>148<\/td>\n        <td>Dionysus9517<\/td>\n        <td>63.250<\/td>\n    <\/tr>\n    <tr>\n        <td>149<\/td>\n        <td>BudderMuffins<\/td>\n        <td>63.417<\/td>\n    <\/tr>\n    <tr>\n        <td>150<\/td>\n        <td>Creator_APP<\/td>\n        <td>63.517<\/td>\n    <\/tr>\n    <tr>\n        <td>151<\/td>\n        <td>cua75<\/td>\n        <td>63.667<\/td>\n    <\/tr>\n    <tr>\n        <td>152<\/td>\n        <td>CotonCarnage<\/td>\n        <td>63.800<\/td>\n    <\/tr>\n    <tr>\n        <td>153<\/td>\n        <td>IronLordLoki<\/td>\n        <td>63.950<\/td>\n    <\/tr>\n    <tr>\n        <td>154<\/td>\n        <td>LobusRex<\/td>\n        <td>64.084<\/td>\n    <\/tr>\n    <tr>\n        <td>155<\/td>\n        <td>BulletMemes<\/td>\n        <td>64.100<\/td>\n    <\/tr>\n    <tr>\n        <td>156<\/td>\n        <td>RoyalBlood999<\/td>\n        <td>64.250<\/td>\n    <\/tr>\n    <tr>\n        <td>157<\/td>\n        <td>hammer658<\/td>\n        <td>64.250<\/td>\n    <\/tr>\n    <tr>\n        <td>158<\/td>\n        <td>argon-42<\/td>\n        <td>64.283<\/td>\n    <\/tr>\n    <tr>\n        <td>159<\/td>\n        <td>fr4gmast3r<\/td>\n        <td>64.297<\/td>\n    <\/tr>\n    <tr>\n        <td>160<\/td>\n        <td>Scripps<\/td>\n        <td>64.433<\/td>\n    <\/tr>\n    <tr>\n        <td>161<\/td>\n        <td>Xiranim<\/td>\n        <td>64.667<\/td>\n    <\/tr>\n    <tr>\n        <td>162<\/td>\n        <td>pg9182<\/td>\n        <td>64.683<\/td>\n    <\/tr>\n    <tr>\n        <td>163<\/td>\n        <td>PesterTheMester<\/td>\n        <td>64.950<\/td>\n    <\/tr>\n    <tr>\n        <td>164<\/td>\n        <td>Hytermak<\/td>\n        <td>65.050<\/td>\n    <\/tr>\n    <tr>\n        <td>165<\/td>\n        <td>matadish<\/td>\n        <td>65.100<\/td>\n    <\/tr>\n    <tr>\n        <td>166<\/td>\n        <td>progunner05<\/td>\n        <td>65.217<\/td>\n    <\/tr>\n    <tr>\n        <td>167<\/td>\n        <td>Animator_533<\/td>\n        <td>65.400<\/td>\n    <\/tr>\n    <tr>\n        <td>168<\/td>\n        <td>JohnLemon48<\/td>\n        <td>65.517<\/td>\n    <\/tr>\n    <tr>\n        <td>169<\/td>\n        <td>shir0fail<\/td>\n        <td>65.550<\/td>\n    <\/tr>\n    <tr>\n        <td>170<\/td>\n        <td>HatlessCookie26<\/td>\n        <td>65.683<\/td>\n    <\/tr>\n    <tr>\n        <td>171<\/td>\n        <td>BlasterManGuy<\/td>\n        <td>65.700<\/td>\n    <\/tr>\n    <tr>\n        <td>172<\/td>\n        <td>RupeeCollecter<\/td>\n        <td>65.717<\/td>\n    <\/tr>\n    <tr>\n        <td>173<\/td>\n        <td>joseGFX<\/td>\n        <td>65.817<\/td>\n    <\/tr>\n    <tr>\n        <td>174<\/td>\n        <td>4060Ti8G<\/td>\n        <td>65.867<\/td>\n    <\/tr>\n    <tr>\n        <td>175<\/td>\n        <td>SpookyDookie64<\/td>\n        <td>65.967<\/td>\n    <\/tr>\n    <tr>\n        <td>176<\/td>\n        <td>ando_the_exalted<\/td>\n        <td>66.733<\/td>\n    <\/tr>\n    <tr>\n        <td>177<\/td>\n        <td>Ndobss<\/td>\n        <td>67.817<\/td>\n    <\/tr>\n    <tr>\n        <td>178<\/td>\n        <td>Gromit      <\/td>\n        <td>68.133<\/td>\n    <\/tr>\n    <tr>\n        <td>179<\/td>\n        <td>patchwil<\/td>\n        <td>68.200<\/td>\n    <\/tr>\n    <tr>\n        <td>180<\/td>\n        <td>Andreyeyeyeye<\/td>\n        <td>68.650<\/td>\n    <\/tr>\n    <tr>\n        <td>181<\/td>\n        <td>GlitchSlayed<\/td>\n        <td>69.250<\/td>\n    <\/tr>\n    <tr>\n        <td>182<\/td>\n        <td>TechnicDesert28<\/td>\n        <td>69.517<\/td>\n    <\/tr>\n    <tr>\n        <td>183<\/td>\n        <td>Xx_ghost_xX13435<\/td>\n        <td>69.633<\/td>\n    <\/tr>\n    <tr>\n        <td>184<\/td>\n        <td>EMECHAE213A<\/td>\n        <td>70.217<\/td>\n    <\/tr>\n    <tr>\n        <td>185<\/td>\n        <td>moussrider29<\/td>\n        <td>71.067<\/td>\n    <\/tr>\n    <tr>\n        <td>186<\/td>\n        <td>wh1t3_shadxw<\/td>\n        <td>72.217<\/td>\n    <\/tr>\n    <tr>\n        <td>187<\/td>\n        <td>Dawid_Kyoto<\/td>\n        <td>72.767<\/td>\n    <\/tr>\n    <tr>\n        <td>188<\/td>\n        <td>Allagon76<\/td>\n        <td>73.050<\/td>\n    <\/tr>\n    <tr>\n        <td>189<\/td>\n        <td>JohnBidonJOe<\/td>\n        <td>73.383<\/td>\n    <\/tr>\n    <tr>\n        <td>190<\/td>\n        <td>Velestia24<\/td>\n        <td>73.500<\/td>\n    <\/tr>\n    <tr>\n        <td>191<\/td>\n        <td>PanHorno<\/td>\n        <td>73.600<\/td>\n    <\/tr>\n    <tr>\n        <td>192<\/td>\n        <td>Magic479<\/td>\n        <td>73.700<\/td>\n    <\/tr>\n    <tr>\n        <td>193<\/td>\n        <td>Stormhawk010<\/td>\n        <td>73.783<\/td>\n    <\/tr>\n    <tr>\n        <td>194<\/td>\n        <td>Blue-onControler<\/td>\n        <td>73.950<\/td>\n    <\/tr>\n    <tr>\n        <td>195<\/td>\n        <td>Fr0sty543<\/td>\n        <td>73.983<\/td>\n    <\/tr>\n    <tr>\n        <td>196<\/td>\n        <td>CptAsswipe<\/td>\n        <td>74.150<\/td>\n    <\/tr>\n    <tr>\n        <td>197<\/td>\n        <td>TheBreedableFox<\/td>\n        <td>74.583<\/td>\n    <\/tr>\n    <tr>\n        <td>198<\/td>\n        <td>orikpio<\/td>\n        <td>75.167<\/td>\n    <\/tr>\n    <tr>\n        <td>199<\/td>\n        <td>Dratam<\/td>\n        <td>75.233<\/td>\n    <\/tr>\n    <tr>\n        <td>200<\/td>\n        <td>dingoatemykids7<\/td>\n        <td>75.550<\/td>\n    <\/tr>\n    <tr>\n        <td>201<\/td>\n        <td>bomb267<\/td>\n        <td>76.583<\/td>\n    <\/tr>\n    <tr>\n        <td>202<\/td>\n        <td>METAL_Origin2008<\/td>\n        <td>76.650<\/td>\n    <\/tr>\n    <tr>\n        <td>203<\/td>\n        <td>OneFoxAlone<\/td>\n        <td>76.666<\/td>\n    <\/tr>\n    <tr>\n        <td>204<\/td>\n        <td>Uncensored_Grim<\/td>\n        <td>76.666<\/td>\n    <\/tr>\n    <tr>\n        <td>205<\/td>\n        <td>UrFavCylon<\/td>\n        <td>77.000<\/td>\n    <\/tr>\n    <tr>\n        <td>206<\/td>\n        <td>dariuscosmoait<\/td>\n        <td>77.033<\/td>\n    <\/tr>\n    <tr>\n        <td>207<\/td>\n        <td>fireheat324<\/td>\n        <td>77.467<\/td>\n    <\/tr>\n    <tr>\n        <td>208<\/td>\n        <td>Scrimnox<\/td>\n        <td>79.050<\/td>\n    <\/tr>\n    <tr>\n        <td>209<\/td>\n        <td>kmijjj<\/td>\n        <td>79.547<\/td>\n    <\/tr>\n    <tr>\n        <td>210<\/td>\n        <td>tovasumaz564<\/td>\n        <td>80.383<\/td>\n    <\/tr>\n    <tr>\n        <td>211<\/td>\n        <td>ChaoticShort<\/td>\n        <td>82.050<\/td>\n    <\/tr>\n    <tr>\n        <td>212<\/td>\n        <td>tylerdotexe<\/td>\n        <td>82.117<\/td>\n    <\/tr>\n    <tr>\n        <td>213<\/td>\n        <td>PaladinNezha<\/td>\n        <td>82.283<\/td>\n    <\/tr>\n    <tr>\n        <td>214<\/td>\n        <td>Zytians<\/td>\n        <td>82.350<\/td>\n    <\/tr>\n    <tr>\n        <td>215<\/td>\n        <td>VAit13<\/td>\n        <td>82.833<\/td>\n    <\/tr>\n    <tr>\n        <td>216<\/td>\n        <td>AstosH<\/td>\n        <td>83.533<\/td>\n    <\/tr>\n    <tr>\n        <td>217<\/td>\n        <td>NotTheMonch<\/td>\n        <td>84.551<\/td>\n    <\/tr>\n    <tr>\n        <td>218<\/td>\n        <td>maly_baklarzan<\/td>\n        <td>84.783<\/td>\n    <\/tr>\n    <tr>\n        <td>219<\/td>\n        <td>anavin8649<\/td>\n        <td>87.584<\/td>\n    <\/tr>\n    <tr>\n        <td>220<\/td>\n        <td>glizzyboy121<\/td>\n        <td>87.700<\/td>\n    <\/tr>\n    <tr>\n        <td>221<\/td>\n        <td>Zwariowany-zwar<\/td>\n        <td>89.366<\/td>\n    <\/tr>\n    <tr>\n        <td>222<\/td>\n        <td>EZLIVING_Berjer<\/td>\n        <td>89.916<\/td>\n    <\/tr>\n    <tr>\n        <td>223<\/td>\n        <td>ADEPS24<\/td>\n        <td>90.083<\/td>\n    <\/tr>\n    <tr>\n        <td>224<\/td>\n        <td>Jamesbwa1<\/td>\n        <td>91.650<\/td>\n    <\/tr>\n    <tr>\n        <td>225<\/td>\n        <td>12yug12uyg3<\/td>\n        <td>92.450<\/td>\n    <\/tr>\n    <tr>\n        <td>226<\/td>\n        <td>Mindl3ssCr3ator<\/td>\n        <td>94.967<\/td>\n    <\/tr>\n    <tr>\n        <td>227<\/td>\n        <td>batterysniper<\/td>\n        <td>95.500<\/td>\n    <\/tr>\n    <tr>\n        <td>228<\/td>\n        <td>azarado834<\/td>\n        <td>97.850<\/td>\n    <\/tr>\n    <tr>\n        <td>229<\/td>\n        <td>Awakerr<\/td>\n        <td>99.850<\/td>\n    <\/tr>\n    <tr>\n        <td>230<\/td>\n        <td>Djamdude318<\/td>\n        <td>100.067<\/td>\n    <\/tr>\n    <tr>\n        <td>231<\/td>\n        <td>A-Known-Enemy07<\/td>\n        <td>106.783<\/td>\n    <\/tr>\n    <tr>\n        <td>232<\/td>\n        <td>SpookyLizerd<\/td>\n        <td>107.833<\/td>\n    <\/tr>\n    <tr>\n        <td>233<\/td>\n        <td>itxDrother<\/td>\n        <td>131.770<\/td>\n    <\/tr>\n    <tr>\n        <td>234<\/td>\n        <td>arch_grey027<\/td>\n        <td>204.667<\/td>\n    <\/tr>\n    <tr>\n        <td>235<\/td>\n        <td>juan6212<\/td>\n        <td>211.567<\/td>\n    <\/tr>\n    <\/tbody><\/table>","author":{"name":{}},"category":{"@attributes":{"term":"personal-project"}},"summary":"Context note: this blog post was originally posted on the Northstar blog to celebrate its second birthday. Happy second anniversary, Northstar! To celebrate two years of existence, we decided to organize a competition between all players to see who\u2019s the fastest: this blog post tells the story of the Parkour mod\u2019s origin and development, and showcases results of this first Parkour tournament. Developer story Origin of the mod When I was younger, I loved going to my friends\u2019 houses, set up a local network, and play some LAN games. These games included Counter Strike 1.6, Warcraft 3, and Trackmania; if you don\u2019t know the last, it\u2019s a car game where you have to reach a finish line, crossing a set of checkpoints as fast as you can (rings a bell, right?). I also spend lots of (probably more than I should) time on World of Warcraft, whose latest expansion, named Dragonflight, released a similar feature dubbed \u201cDragonriding races\u201d. At some point, I thought: \u201cThat would be a great mod idea for Northstar!\u201d. I would call it \u201cParkour\u201d. Development Since developing this mod basically resolved to develop a multiplayer version of the single-player Gauntlet mission, I could reuse a lot of assets from it, including starting\/finish lines visuals, speed indicator and scoreboards. For other entities I had to improvise: for instance, the model used for checkpoints is actually a Titan shield, colored in green :) Initial development of the mod only included a local scoreboard, where you could see scores of players in the current match; we then thought it would be cool to have a way to save your personal best time for each map, which led me to develop a scoring server to save scores for all players in all maps, and an associated web scoreboard, to maintain competition between players: Once the scoring server was set up, I deployed Parkour servers in Europe, North America and Australia during twelve days, which led to 367 players scoring a time on a map (maybe more tried, but couldn\u2019t finish a route? We\u2019ll never know). Feedback We received a lot of feedback about Parkour which gave us lots of ideas to improve it for the next tournament, and I thank you all for that. This Parkour tournament was also a good opportunity to test mod auto-downloading in live conditions, if you\u2019re curious about this feature, I wrote another blog post describing it in details. Media To celebrate Northstar\u2019s second birthday and the parkour tournament, we asked the community some help with trailers, and got an amazing one from P3NG00N: We were also lucky enough to have Evan Boymel, voice actor of Viper, make a voice-over for another trailer from Dionysus9517: Associated YouTube short from Evan: Closing words I was really surprised seeing the Titanfall 2 speedrunning community, including Dadadu2711, taking over the mod and breaking the routes I designed in ways I never heard of previously: grav star boosting, EPG boosting\u2026 There were discussions about the best ways to improve scores; I feel like there was a good competitive spirit within this tournament, that\u2019s definitely something I plan to redo in the future! I want to thank all players that participated in that first tournament, and all developers + play testers who helped make this mod what it is today. See you all on the Frontier! Parkour tournament results Exoplanet Example route from Chill_spirit Sorry, your browser doesn't support embedded videos. Final placing Position Player name Time (seconds) 1 Cash_Mayo 28.117 2 bertybhoy22 31.033 3 Dadadu2711 31.250 4 DarkwinV1 31.650 5 chilll_spirit 33.650 6 PopBom 34.850 7 PilotGSPL 36.250 8 DeedVoid 36.417 9 EB200321 37.417 10 DobryZuber 37.867 11 justneptune 38.183 12 RNM91835189 38.217 13 FddgeNugget 39.250 14 H00man 39.567 15 ilycit 40.033 16 matsRLS 40.617 17 Blaidan360 40.783 18 monzuul 41.050 19 My_BouncyBall 41.150 20 ChristDillinger 41.533 21 P3NG000N 41.600 22 emem_dash 41.633 23 Ryukaro 41.983 24 StarKiller3909 42.033 25 melonmadegrenade 42.950 26 paradies_so 43.667 27 1500TropicalFish 43.883 28 AmazingShurtle 44.167 29 Crazy_CAR27 44.333 30 J4GE 44.333 31 mewnEatsCrayons 44.450 32 hey_Uncle_Phil 44.600 33 braveGNUworld 44.600 34 ThatLegendsGuy 44.917 35 Nonname123C 45.150 36 Yuccuh 45.333 37 GeckoEidechse 46.600 38 ineedpickles 46.650 39 SectionGeneral 47.233 40 Gromit 47.283 41 Wonkierlinx360 47.550 42 Ned_was_taken 47.617 43 E3VL 47.934 44 RobertGerkens 48.000 45 PwnagePotato64 48.400 46 S1mpl3Dude 48.733 47 mochaamochi 49.633 48 RayIeiqh 49.667 49 svenosss 50.117 50 looksfinetome 50.267 51 Jheeazy 50.650 52 Cdazx 50.833 53 Yirons 50.967 54 Stefzxc 51.167 55 alice_uwuu 51.517 56 EladNLG 51.567 57 tinyRoboticist 51.583 58 holalho 51.767 59 Archangel_Pasta 51.817 60 CooldudePUGS 51.867 61 Diode_VAR 51.933 62 swtufh 52.033 63 Katuro117 52.183 64 iLuvBenyFlyy 52.267 65 BRUH_MKI 52.283 66 lBeckett 52.333 67 Harbb__ 52.717 68 Xfighter312 52.833 69 Cerealxkiller73 52.833 70 Septro31 53.633 71 BudderMuffins 53.833 72 Bluestuffaaaa 53.834 73 LobusRex 53.850 74 uuts_that-smoke 54.000 75 Uber_GrandPanzer 54.250 76 Locke_f00k_Ea 54.433 77 User_disconnect 54.800 78 Jennyann7997 54.950 79 Kolpy_Uno 54.983 80 Alystrasz 55.000 81 GamingZeether 55.067 82 Maechy 55.117 83 Finnstera350 55.117 84 ONIPIKA-1 55.217 85 ILIKEAWALL 55.533 86 Fr0sty543 55.700 87 DelayZuber 55.867 88 KillTrio-BgTT 55.867 89 Ryno2 55.917 90 tim03legeek 56.017 91 Bangbang5201 56.083 92 Tumpp1xel 56.133 93 DurgenTheFirst 56.250 94 Nickname241b 56.417 95 kero654 56.533 96 lexvi1 56.567 97 Dratam 56.583 98 rhodes_the_cat 57.283 99 OddComms 57.467 100 Gamecrusher24 57.617 101 WafflesRVeryNice 57.717 102 womble_xo 57.983 103 ButcherBee1 58.050 104 CoachD97 58.167 105 IronLordLoki 58.183 106 RoyalBlood999 58.333 107 MrFail3r 58.350 108 SomeSoggyToast25 58.450 109 LIALIALIALIAEMI 58.567 110 sussyboy2609 58.700 111 CatPlanter292 59.183 112 OddStuffAreCool 59.250 113 IggyForShort 59.467 114 PliantShark 59.483 115 emankciNretnE 59.600 116 FV0lt 59.600 117 Robotmind4 59.800 118 ZeanButZane 59.833 119 scoutsnumber1 59.900 120 PesterTheMester 60.000 121 Emeron420 60.033 122 4060Ti8G 60.517 123 pg9182 60.767 124 mattytherat 60.785 125 BruhBonn 60.800 126 Lenin-Da-Lemon 60.933 127 GalacticMoblin01 61.000 128 ItsJoeyG 61.033 129 Obama_Gaming23 61.083 130 Animator_533 61.233 131 VenomousDarkrai 61.267 132 ChibiNaotoGaming 61.283 133 xhoopAngelReborn 61.800 134 Vultroustomb31 61.965 135 EvilGrandpappy 62.300 136 joseGFX 62.350 137 BlasterManGuy 62.383 138 papermaster24 62.383 139 m2ytt9W 62.400 140 ImaCat42 62.500 141 CragyCreates 63.083 142 CotonCarnage 63.233 143 kisvalek 63.417 144 Rorenhyme 63.567 145 Bop5916_ 63.833 146 Delta_exe 64.150 147 Divadoooo 64.400 148 Arknight38 64.633 149 DzerlaDobarCovek 64.850 150 Hurbskideez 64.900 151 calamariiiiiii 65.133 152 chejoroki 65.148 153 KorbyV4 65.883 154 Nokariii 65.950 155 AbyssalFlame11 66.133 156 Jakanader 66.467 157 Racecardriver05 66.483 158 BoundIvy 67.082 159 KennyXCuervo 67.417 160 matadish 67.567 161 fr4gmast3r 67.600 162 ColdSLeader 67.617 163 tjppj918 67.683 164 RubricGibbon8520 67.983 165 GlitchSlayed 68.300 166 ElFamosoMothix 68.833 167 TechnicDesert28 68.883 168 mitieusz 68.933 169 ChaoticShort 69.200 170 iiLars 69.250 171 orikpio 69.483 172 CharacterCarp08 69.483 173 Hex585 69.656 174 maIapasta 69.667 175 hearthburst 69.683 176 SpookyDookie64 70.000 177 The-0v3rki113r 71.033 178 argon-42 71.616 179 asatthegame 71.667 180 cua75 71.917 181 Supcio 71.933 182 Exof0rger 72.017 183 LiterallyAnfrew 72.317 184 Stormhawk010 72.483 185 juan6212 72.583 186 ArisuTW 72.900 187 fireheat324 72.967 188 Karasoka 74.583 189 Andreyeyeyeye 74.650 190 zel70nk4 74.733 191 EmeraldOne785 75.633 192 TrainerRed_0 75.833 193 V1PER_tw 76.450 194 feorxw 76.817 195 Python1465 76.933 196 A_Vaping_Cat 77.317 197 lightlysilly 77.700 198 windonmountains 77.917 199 Leo_The_Egg 78.633 200 USeR_bloodrage 79.983 201 DangerTurtle125 81.217 202 Draakoor 81.467 203 EPGhaha 82.000 204 Djamdude318 82.550 205 Dionysus9517 82.583 206 OneFoxAlone 84.133 207 Woozy_Whit_A_Hat 84.767 208 BoIdhat 86.050 209 YourTastyMelon 86.733 210 Redvanguard1025 87.100 211 MicahTGpro1 88.283 212 rookient 88.400 213 Blue-onControler 88.600 214 alfr3do_98 90.200 215 Xx_ghost_xX13435 92.719 216 dariuscosmoait 94.200 217 Jamesbwa1 96.917 218 Scrimnox 98.783 219 EspressoDrink01 108.167 220 Zytians 110.332 221 wlw_cowboy 110.900 222 PumpaLumpa1338 112.300 223 ttek9 128.467 224 Flame1367 140.667 Angel City Example route from Dadadu Sorry, your browser doesn't support embedded videos. Final placing Position Player name Time (seconds) 1 Dadadu2711 21.083 2 bertybhoy22 22.583 3 Cash_Mayo 22.683 4 chilll_spirit 22.933 5 DarkwinV1 23.450 6 matsRLS 24.517 7 PopBom 26.000 8 DeedVoid 26.367 9 DobryZuber 26.483 10 justneptune 26.900 11 monzuul 27.183 12 braveGNUworld 27.517 13 PilotGSPL 27.900 14 ChristDillinger 28.167 15 EB200321 28.467 16 mewnEatsCrayons 28.633 17 P3NG000N 28.767 18 RNM91835189 29.300 19 FddgeNugget 30.700 20 Ryukaro 30.783 21 H00man 30.800 22 AmazingShurtle 30.883 23 paradies_so 31.100 24 hey_Uncle_Phil 31.233 25 ThatLegendsGuy 31.467 26 melonmadegrenade 31.483 27 J4GE 31.850 28 mochaamochi 32.117 29 zerytoe 32.167 30 Diode_VAR 32.183 31 uuts_that-smoke 32.267 32 SectionGeneral 32.283 33 Blaidan360 32.400 34 LobusRex 32.500 35 SleepPatterns 32.550 36 S1mpl3Dude 33.150 37 GeckoEidechse 33.300 38 svenosss 33.367 39 looksfinetome 33.500 40 Wonkierlinx360 33.583 41 Nonname123C 33.600 42 Ned_was_taken 33.667 43 emem_dash 33.717 44 Gamecrusher24 33.750 45 My_BouncyBall 34.167 46 StarKiller3909 34.200 47 PwnagePotato64 34.367 48 Stefzxc 34.617 49 RobertGerkens 34.817 50 Septro31 35.017 51 Yirons 35.417 52 WafflesRVeryNice 35.717 53 rhodes_the_cat 35.917 54 Emeron420 36.183 55 ILIKEAWALL 36.283 56 Uber_GrandPanzer 36.750 57 E3VL 36.767 58 EladNLG 37.083 59 SomeSoggyToast25 37.550 60 AviLolz 37.633 61 tim03legeek 37.633 62 kero654 37.800 63 Yuccuh 37.883 64 Gaban_Killasta05 37.917 65 Finnstera350 37.917 66 ineedpickles 38.117 67 USeR_bloodrage 38.199 68 kisvalek 38.333 69 GamingZeether 38.450 70 Nonogn 38.567 71 LPM-CJ-DayLight 38.641 72 coolkubo19 38.966 73 Zokn3 38.967 74 sussyboy2609 39.050 75 That_Damn_Dragon 39.050 76 lexvi1 39.300 77 PliantShark 39.533 78 Maechy 40.067 79 RoyalBlood999 40.183 80 Animator_533 40.417 81 BruhBonn 40.417 82 Fr0sty543 40.517 83 Hytermak 40.583 84 CoachD97 40.650 85 enderboy9217yt 40.717 86 TheRagebot1302 40.783 87 Jennyann7997 40.917 88 Katuro117 40.950 89 Hex585 41.000 90 BRUH_MKI 41.133 91 KillTrio-BgTT 41.183 92 Obama_Gaming23 41.317 93 Alystrasz 41.433 94 GalacticMoblin01 41.650 95 AbyssalFlame11 42.750 96 OddComms 42.833 97 CooldudePUGS 42.867 98 Locke_f00k_Ea 43.100 99 DurgenTheFirst 43.100 100 GreenAce3821 43.317 101 swtufh 43.467 102 iihateyou21 43.500 103 User_disconnect 43.567 104 glueboyjoe 43.683 105 Karasoka 43.750 106 cat_or_not 43.817 107 weegpp 43.983 108 MountYoshino 44.350 109 ElFamosoMothix 44.917 110 Jheeazy 45.100 111 RayIeiqh 45.117 112 OddStuffAreCool 45.250 113 InWeNa 45.283 114 TheRatOfficial 45.383 115 Shay-Khulud 45.450 116 XSDDRF43RE 45.467 117 Juli0q 45.550 118 FV0lt 45.883 119 tinyRoboticist 45.883 120 Ryno2 46.200 121 holalho 46.583 122 Flaming_Kunia 46.917 123 spunkyymonky 47.000 124 BURAN508 47.067 125 DzerlaDobarCovek 47.150 126 Nickname241b 47.350 127 ArisuTW 47.350 128 Harbb__ 47.683 129 krisupperxd 47.733 130 4060Ti8G 47.900 131 Defau1t0 48.183 132 CotonCarnage 48.450 133 Ben11pearson 48.600 134 BLUETIMETHREE 48.850 135 abugonzo_14 49.117 136 ToxicShakal 49.317 137 Racecardriver05 49.417 138 BlasterManGuy 49.500 139 TrainerRed_0 49.517 140 Magic479 49.683 141 PesterTheMester 49.833 142 PanHorno 50.067 143 Tumpp1xel 50.283 144 BlueTealAqua 50.700 145 Kolpy_Uno 50.733 146 LiterallyAnfrew 50.750 147 fetchin1 50.917 148 DashyTheFoxxo 51.083 149 Caram03 51.134 150 ashleyyyzZ_09 51.217 151 ItsJoeyG 51.850 152 BoundIvy 52.183 153 Lenin-Da-Lemon 52.367 154 St00ge 53.383 155 6666234234 53.400 156 Cloudbounce 53.767 157 Hurbskideez 53.783 158 pg9182 53.817 159 wyxudagxo7oe 53.917 160 The_taskinoz 54.406 161 Gung1111 54.867 162 DNI4E 54.967 163 Paradox_Loop 55.117 164 Archangel_Pasta 55.333 165 Jxnrau 55.583 166 overtlion968863 55.617 167 IronMayo 55.750 168 TrilogyVR 56.383 169 mexquT 56.566 170 xhoopAngelReborn 56.567 171 YourTastyMelon 56.700 172 dtb3218 56.750 173 Trumcon1 57.233 174 GlitchSlayed 57.267 175 papermaster24 57.333 176 EPGhaha 57.533 177 Mikai_Kakami 57.950 178 lightlysilly 58.300 179 hearthburst 59.300 180 dariuscosmoait 59.417 181 orikpio 59.450 182 IggyForShort 59.517 183 argon-42 59.750 184 RupeeCollecter 60.467 185 koooooonisch 60.500 186 AntuksOWL 60.817 187 NecrXw 60.933 188 HatlessCookie26 61.083 189 Tiranus58 61.400 190 juan6212 61.817 191 pikmin232 62.133 192 TechnicDesert28 62.300 193 scoutsnumber1 62.367 194 Relicopterr 62.517 195 s-a092 63.400 196 Artemissy_exe 65.133 197 nn_ebb_flow 65.316 198 Xx_ghost_xX13435 65.367 199 Mark109K 67.233 200 Beanleeee 67.467 201 UZI_TRIGGERR 67.834 202 Xiranim 68.033 203 SolShine-Seal 68.933 204 mephill91 70.250 205 Flame1367 72.600 206 722243 73.017 207 IronLordLoki 73.317 208 RoughNewt 73.750 209 xdPenguin287 75.300 210 tap11111111 75.900 211 Blue-onControler 77.650 212 UrFavCylon 79.200 213 Ragnar_Thorr 80.567 214 ChaoticShort 85.633 215 GodofDeathgods 85.717 216 ImaCat42 87.517 217 AksiMozok 107.317 218 xSkyWordx 115.567 219 paintedwolf0070 156.667 220 TopRival75 231.933 War Games Example route from Cash Mayo Sorry, your browser doesn't support embedded videos. Final placing Position Player name Time (seconds) 1 bertybhoy22 26.400 2 Dadadu2711 28.283 3 Cash_Mayo 29.750 4 chilll_spirit 30.167 5 DarkwinV1 30.267 6 matsRLS 33.983 7 DobryZuber 34.583 8 DeedVoid 36.400 9 PopBom 36.467 10 mewnEatsCrayons 37.117 11 P3NG000N 37.200 12 PilotGSPL 37.483 13 justneptune 37.817 14 H00man 38.100 15 Blaidan360 38.117 16 My_BouncyBall 38.767 17 ThatLegendsGuy 38.967 18 ilycit 40.250 19 monzuul 40.417 20 ChristDillinger 40.633 21 paradies_so 40.867 22 Ryukaro 40.933 23 braveGNUworld 41.150 24 EB200321 41.350 25 J4GE 41.733 26 RNM91835189 42.550 27 FddgeNugget 43.417 28 looksfinetome 44.000 29 Uber_GrandPanzer 44.100 30 melonmadegrenade 44.133 31 AmazingShurtle 44.250 32 PwnagePotato64 44.650 33 Wonkierlinx360 44.867 34 hey_Uncle_Phil 44.867 35 uuts_that-smoke 45.167 36 xDaan11 45.750 37 Gamecrusher24 45.800 38 Ned_was_taken 46.200 39 Xfighter312 46.283 40 Nonname123C 46.383 41 ineedpickles 46.667 42 Archangel_Pasta 46.833 43 Septro31 46.867 44 emem_dash 47.050 45 E3VL 47.100 46 Harbb__ 47.700 47 StarKiller3909 47.900 48 RobertGerkens 48.217 49 20thUSPresident 48.250 50 CoachD97 48.317 51 zerytoe 49.100 52 iihateyou21 49.150 53 Zokn3 49.300 54 Stefzxc 49.317 55 GeckoEidechse 49.417 56 Diode_VAR 49.467 57 Crazy_CAR27 49.533 58 Yirons 49.567 59 CooldudePUGS 49.617 60 Katuro117 50.067 61 Maechy 50.083 62 svenosss 50.217 63 RayIeiqh 50.550 64 SleepPatterns 50.783 65 ImaCat42 51.100 66 PliantShark 51.283 67 enderboy9217yt 51.417 68 mochaamochi 51.850 69 InWeNa 52.200 70 BruhBonn 52.533 71 juuzzee 52.550 72 DurgenTheFirst 52.567 73 Emeron420 53.433 74 HiyaImGeo 53.583 75 lexvi1 53.650 76 USeR_bloodrage 53.817 77 Lenin-Da-Lemon 54.000 78 Cerealxkiller73 54.167 79 rhodes_the_cat 54.483 80 The_taskinoz 54.533 81 glueboyjoe 54.583 82 Nokariii 54.650 83 SomeSoggyToast25 54.750 84 DarkNebur1 54.883 85 kero654 55.100 86 tim03legeek 55.217 87 Jennyann7997 55.283 88 GreenAce3821 55.733 89 Joe_See_Fuss 55.733 90 Nickname241b 55.917 91 ToxicShakal 55.950 92 Finnstera350 56.000 93 BRUH_MKI 56.150 94 caliswagilistic 56.200 95 leigasd 56.233 96 Rorenhyme 56.300 97 Jerdherder 56.433 98 cat_or_not 56.483 99 GamingZeether 56.617 100 TheRagebot1302 56.633 101 Supcio 56.817 102 TrainerRed_0 57.083 103 swtufh 57.350 104 vaffelbolle 57.983 105 FV0lt 58.100 106 emankciNretnE 58.150 107 spunkyymonky 58.150 108 EladNLG 58.167 109 WafflesRVeryNice 58.267 110 ArisuTW 58.283 111 ButcherBee1 58.333 112 TheRatOfficial 58.517 113 DzerlaDobarCovek 58.550 114 Alystrasz 58.767 115 pillows1616 58.900 116 Ryno2 59.033 117 Hurbskideez 59.148 118 ONIPIKA-1 59.250 119 Locke_f00k_Ea 59.350 120 Shay-Khulud 60.017 121 Tumpp1xel 60.033 122 xhoopAngelReborn 60.133 123 ElFamosoMothix 60.150 124 Kolpy_Uno 60.167 125 1500TropicalFish 60.250 126 Nonogn 60.283 127 KillTrio-BgTT 60.583 128 GalacticMoblin01 60.602 129 kisvalek 60.717 130 PYRiTEmonark 60.750 131 Defau1t0 60.767 132 Electrionikal 60.883 133 AbyssalFlame11 61.267 134 scoutsnumber1 61.300 135 papermaster24 61.350 136 m2ytt9W 61.383 137 lightlysilly 61.433 138 sussyboy2609 61.817 139 AviLolz 61.983 140 AntuksOWL 62.033 141 Racecardriver05 62.133 142 OddStuffAreCool 62.167 143 slightrr 62.500 144 overtlion968863 62.533 145 Hex585 62.617 146 Kzx209 62.717 147 MountYoshino 63.217 148 Dionysus9517 63.250 149 BudderMuffins 63.417 150 Creator_APP 63.517 151 cua75 63.667 152 CotonCarnage 63.800 153 IronLordLoki 63.950 154 LobusRex 64.084 155 BulletMemes 64.100 156 RoyalBlood999 64.250 157 hammer658 64.250 158 argon-42 64.283 159 fr4gmast3r 64.297 160 Scripps 64.433 161 Xiranim 64.667 162 pg9182 64.683 163 PesterTheMester 64.950 164 Hytermak 65.050 165 matadish 65.100 166 progunner05 65.217 167 Animator_533 65.400 168 JohnLemon48 65.517 169 shir0fail 65.550 170 HatlessCookie26 65.683 171 BlasterManGuy 65.700 172 RupeeCollecter 65.717 173 joseGFX 65.817 174 4060Ti8G 65.867 175 SpookyDookie64 65.967 176 ando_the_exalted 66.733 177 Ndobss 67.817 178 Gromit 68.133 179 patchwil 68.200 180 Andreyeyeyeye 68.650 181 GlitchSlayed 69.250 182 TechnicDesert28 69.517 183 Xx_ghost_xX13435 69.633 184 EMECHAE213A 70.217 185 moussrider29 71.067 186 wh1t3_shadxw 72.217 187 Dawid_Kyoto 72.767 188 Allagon76 73.050 189 JohnBidonJOe 73.383 190 Velestia24 73.500 191 PanHorno 73.600 192 Magic479 73.700 193 Stormhawk010 73.783 194 Blue-onControler 73.950 195 Fr0sty543 73.983 196 CptAsswipe 74.150 197 TheBreedableFox 74.583 198 orikpio 75.167 199 Dratam 75.233 200 dingoatemykids7 75.550 201 bomb267 76.583 202 METAL_Origin2008 76.650 203 OneFoxAlone 76.666 204 Uncensored_Grim 76.666 205 UrFavCylon 77.000 206 dariuscosmoait 77.033 207 fireheat324 77.467 208 Scrimnox 79.050 209 kmijjj 79.547 210 tovasumaz564 80.383 211 ChaoticShort 82.050 212 tylerdotexe 82.117 213 PaladinNezha 82.283 214 Zytians 82.350 215 VAit13 82.833 216 AstosH 83.533 217 NotTheMonch 84.551 218 maly_baklarzan 84.783 219 anavin8649 87.584 220 glizzyboy121 87.700 221 Zwariowany-zwar 89.366 222 EZLIVING_Berjer 89.916 223 ADEPS24 90.083 224 Jamesbwa1 91.650 225 12yug12uyg3 92.450 226 Mindl3ssCr3ator 94.967 227 batterysniper 95.500 228 azarado834 97.850 229 Awakerr 99.850 230 Djamdude318 100.067 231 A-Known-Enemy07 106.783 232 SpookyLizerd 107.833 233 itxDrother 131.770 234 arch_grey027 204.667 235 juan6212 211.567"},{"title":"MAD (Mod Auto-Downloading)","link":{"@attributes":{"href":"https:\/\/remyraes.com\/autodownload.html","rel":"alternate","type":"text\/html","title":"MAD (Mod Auto-Downloading)"}},"published":"2023-12-19T09:57:00+01:00","updated":"2023-12-19T09:57:00+01:00","id":"https:\/\/remyraes.com\/autodownload","content":"<p>The <a href=\"northstar.html\">Northstar custom server framework<\/a> allows hosting servers with custom content (gamemodes, maps)\nthrough the use of mods. Some mods are marked as <code class=\"language-plaintext highlighter-rouge\">RequiredOnClient<\/code>, meaning players wanting to join the server must\nhave downloaded said mods before being able to do so.<\/p>\n\n<p>Currently, when players join a server requiring client-side mods, they are displayed this message:<\/p>\n\n<p><img src=\"assets\/img\/missing-mod-dialog.png\" alt=\"A dialog tells player a mod is missing.\" \/><\/p>\n\n<p>which kinda breaks the user experience since it forces players to leave the game and find the mod for themselves on the\nInternet.<\/p>\n\n<h3 id=\"auto-download\">Auto-download<\/h3>\n\n<p>The Counter-Strike and Team Fortress games are known to integrate this feature, allowing custom modes such as\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Counter-Strike_surfing\">surfing<\/a> to gain popularity among players.<\/p>\n\n<p>We however cannot automatically download all mods that are marked as required by servers, as this would open the gates\nto malware and other malicious stuff, which we don\u2019t want to download to the players\u2019 computers.<\/p>\n\n<p>To counter that, we set up a verification system, which relies on a JSON file listing all mods that can be automatically\ndownloaded by clients.\nFor a mod to be registered in this file (and thus marked as <strong>verified<\/strong>), mod author must submit some information about\ntheir mod, and respect some rules (mod repository must be open source, for instance).\nDetailed mod verification procedure is described here:\n<a href=\"https:\/\/github.com\/R2Northstar\/VerifiedMods\">https:\/\/github.com\/R2Northstar\/VerifiedMods<\/a><\/p>\n\n<h3 id=\"implementation-in-northstar\">Implementation in Northstar<\/h3>\n\n<p>The implementation of this mod auto-downloading feature within Northstar was done in two separate Northstar subprojects:<\/p>\n\n<ul>\n  <li>the <strong>NorthstarLauncher<\/strong> native code (C++) is responsible for low-level calls: think file system access, mod archive\nfetching <em>etc.<\/em><\/li>\n  <li>the <strong>NorthstarMods<\/strong> script part (Squirrel VM) invokes native methods and updates UI accordingly.<\/li>\n<\/ul>\n\n<hr \/>\n\n<p>On this demonstration video, you can visualize all steps of mod auto-downloading:<\/p>\n\n<ol>\n  <li>archive downloading from mod store;<\/li>\n  <li>archive extraction to local computer;<\/li>\n  <li>mod reloading to add downloaded mod to local mods collection;<\/li>\n  <li>game server can be joined.<\/li>\n<\/ol>\n\n<video controls=\"\" loop=\"\" style=\"max-width: 100%;\">\n    <source src=\"assets\/video\/mad.webm\" type=\"video\/webm\" \/>\n    Sorry, your browser doesn't support embedded videos.\n<\/video>\n\n<p>Complete feature was shipped December 16th 2023, in the\n<a href=\"https:\/\/github.com\/R2Northstar\/Northstar\/releases\/tag\/v1.21.0\">v1.21.0<\/a> Northstar release.<\/p>","author":{"name":{}},"category":{"@attributes":{"term":"personal-project"}},"summary":"The Northstar custom server framework allows hosting servers with custom content (gamemodes, maps) through the use of mods. Some mods are marked as RequiredOnClient, meaning players wanting to join the server must have downloaded said mods before being able to do so."}]}