<!-- Copyright 2019 The Flutter Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->

<html>
<head>
  <meta charset="UTF-8">
  <meta name="google-signin-client_id" content="308150028417-vlj9mqlm3gk1d03fb0efif1fu5nagdtt.apps.googleusercontent.com">
  <title>app_flutter</title>
  <!-- This application normally gets displayed on a TV that is hard to reach.
  Refreshing this page once a day (in seconds) makes it so the TV stays relatively
  up to date without anyone have to get a ladder to use the TV as a computer.
  -->
  <meta http-equiv="refresh" content="86400">
</head>
<body>
  <script src="main.dart.js" type="application/javascript"></script>
  <script>
    (function(w,d,s,g,js,fjs){
      g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
      js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
      js.src='https://apis.google.com/js/platform.js';
      fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
    }(window,document,'script'));
    </script>
</body>
</html>
