Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial commit

Signed-off-by: Chris Aniszczyk <zx@twitter.com>
  • Loading branch information...
commit ed64ae337c538927f68195c31a4e7b883bf30cbb 0 parents
@couch couch authored caniszczyk committed
BIN  images/display.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/index.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/iphone.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
164 index.html
@@ -0,0 +1,164 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="chrome=1">
+ <title>Ospriet by twitter</title>
+
+ <link rel="stylesheet" href="stylesheets/styles.css">
+ <link rel="stylesheet" href="stylesheets/pygment_trac.css">
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <!--[if lt IE 9]>
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ <div class="wrapper">
+ <header>
+ <h1>Ospriet</h1>
+ <p>An audience moderation app built on Twitter</p>
+ <p class="view"><a href="https://github.com/twitter/ospriet">View the Project on GitHub <small>twitter/ospriet</small></a></p>
+ <ul>
+ <li><a href="https://github.com/twitter/ospriet/zipball/master">Download <strong>ZIP File</strong></a></li>
+ <li><a href="https://github.com/twitter/ospriet/tarball/master">Download <strong>TAR Ball</strong></a></li>
+ <li><a href="https://github.com/twitter/ospriet">Fork On <strong>GitHub</strong></a></li>
+ </ul>
+ </header>
+ <section>
+ <h1>An audience moderation app built on Twitter</h1>
+
+<p><a href="http://twitter.github.com/ospriet">Ospriet</a> is a moderation tool that allows for audiences to post and vote on questions/comments for talks, presentations, and events. The application is written in <a href="http://nodejs.org/">node.js</a>, uses <a href="http://www.mongodb.org/">MongoDB</a> for database storage, and is designed for deployment on <a href="http://nodejitsu.com/">nodejitsu</a>.</p>
+
+<h2>Overview</h2>
+
+<p>Ospriet allows anyone with a Twitter account to submit a question or comment, by posting an @-reply to a Twitter account dedicated for an audience-oriented event. The submission will be reposted to the event's account, with attribution. Audience members can vote up the best submissions by favoriting the submissions on the event account. Ospriet will then keep track of all of the favorites and provide the top submissions. Ospriet provides one single, simple interface for all of this that audience members can use on most devices.</p>
+
+<p>As an example, let's take the event account of <a href="https://twitter.com/dftg">@dftg</a> and submit a question.</p>
+
+<pre><code>@dftg: What are your thoughts on Apple’s approach to design?
+</code></pre>
+
+<p>This tweet will be reposted by the application to <a href="https://twitter.com/dftg">@dftg</a> as an @-reply to your submission, and look like this:</p>
+
+<pre><code>From @couch: What are your thoughts on Apple's approach to design?
+</code></pre>
+
+<p>Anyone can then favorite that reposted tweet, and see the top favorited submissions on the site.</p>
+
+<p>You can view an example of the site powered by the application—used at a 2012 SXSW panel—at <a href="http://designfromthegut.com">http://designfromthegut.com</a>.</p>
+
+<p>For more information on the origins of the application, read <a href="http://couch.tumblr.com/post/18854314402">this post</a>. The name 'Ospriet' comes from the Anglo-French term for the Osprey, a "sea hawk" known for hunting for fish in the sea.</p>
+
+<h2>Setup</h2>
+
+<p>Please refer to these wiki pages to download, customize, and deploy your own instance of Ospriet.</p>
+
+<ul>
+<li><a href="https://github.com/twitter/ospriet/wiki/Creating-your-development-environment">Creating your development environment</a></li>
+<li><a href="https://github.com/twitter/ospriet/wiki/Creating-a-Twitter-app">Creating a Twitter app</a></li>
+<li><a href="https://github.com/twitter/ospriet/wiki/Customizing-Ospriet">Customizing Ospriet</a></li>
+<li><a href="https://github.com/twitter/ospriet/wiki/Testing-Ospriet">Testing Opsriet</a></li>
+<li><a href="https://github.com/twitter/ospriet/wiki/Working-with-nodejitsu">Working with nodejitsu</a></li>
+</ul><h2>Libraries</h2>
+
+<p><strong>Server-side</strong></p>
+
+<ul>
+<li>
+<a href="http://obvious.github.com/matador">Matador</a> <em>for MVC app structure</em>
+</li>
+<li>
+<a href="http://github.com/avianflu/ntwitter">ntwitter</a> <em>node.js wrapper for Twitter API</em>
+</li>
+<li>
+<a href="http://mongoosejs.com/">mongoose</a> <em>node.js wrapper for MongoDB</em>
+</li>
+<li>
+<a href="http://socket.io">socket.io</a> <em>for real-time updating of client-side UI</em>
+</li>
+</ul><p><strong>Client-side</strong></p>
+
+<ul>
+<li>
+<a href="http://twitter.github.com/bootstrap">Bootstrap</a> <em>for skeletal layout and micro-jQuery plugins</em>
+</li>
+<li>
+<a href="http://documentcloud.github.com/underscore">underscore.js</a> <em>for client-side data manipulation</em>
+</li>
+<li>
+<a href="http://twitter.github.com/hogan.js">hogan.js</a> <em>for template rendering</em>
+</li>
+<li>
+<a href="https://dev.twitter.com/docs/intents">Twitter Web Intents</a> <em>for tweet actions without authentication</em>
+</li>
+</ul>
+
+<h2>Screenshots</h2>
+
+<p><strong>Main index view</strong></p>
+<img src="http://twitter.github.com/ospriet/images/index.jpg" title="Ospriet primary view" alt="Ospriet primary view" width="500" style="display: block;" />
+
+<p><strong>Presentation view for projector/screens</strong></p>
+<img src="http://twitter.github.com/ospriet/images/display.jpg" title="Ospriet presentation view" alt="Ospriet presentation view" width="500" style="display: block;" />
+
+<p><strong>Responsive layout for mobile</strong></p>
+<img src="http://twitter.github.com/ospriet/images/iphone.jpg" title="Ospriet mobile view" alt="Ospriet mobile view" width="300" style="display: block;" />
+
+<h2>Issues</h2>
+
+<p>Have a bug? Create an issue here on GitHub!</p>
+
+<p><a href="https://github.com/twitter/ospriet/issues">https://github.com/twitter/ospriet/issues</a></p>
+
+<h2>Versioning</h2>
+
+<p>For transparency and insight, releases will be numbered with the follow format:</p>
+
+<pre><code>&lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;
+</code></pre>
+
+<p>And constructed with the following guidelines:</p>
+
+<ul>
+<li>Breaking backwards compatibility bumps the major</li>
+<li>New additions without breaking backwards compatibility bumps the minor</li>
+<li>Bug fixes and misc changes bump the patch</li>
+</ul><p>For more information on semantic versioning, please visit <a href="http://semver.org/">http://semver.org/</a>.</p>
+
+<h2>Authors</h2>
+
+<p><strong>Bill Couch</strong></p>
+
+<ul>
+<li><a href="https://github.com/couch">https://github.com/couch</a></li>
+<li><a href="https://twitter.com/couch">https://twitter.com/couch</a></li>
+</ul><p><strong>Dustin Senos</strong></p>
+
+<ul>
+<li><a href="https://github.com/dustinsenos">https://github.com/dustinsenos</a></li>
+<li><a href="https://twitter.com/dustin">https://twitter.com/dustin</a></li>
+</ul><h2>License</h2>
+
+<p>Copyright 2012 Twitter, Inc.</p>
+
+<p>Licensed under the Apache License, Version 2.0: <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
+ </section>
+ <footer>
+ <p>This project is maintained by <a href="https://github.com/twitter">twitter</a></p>
+ <p><small>Hosted on GitHub Pages &mdash; Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
+ </footer>
+ </div>
+ <script src="javascripts/scale.fix.js"></script>
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-362648-15");
+ pageTracker._trackPageview();
+ } catch(err) {}
+ </script>
+
+ </body>
+</html>
17 javascripts/scale.fix.js
@@ -0,0 +1,17 @@
+var metas = document.getElementsByTagName('meta');
+var i;
+if (navigator.userAgent.match(/iPhone/i)) {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
+ }
+ }
+ document.addEventListener("gesturestart", gestureStart, false);
+}
+function gestureStart() {
+ for (i=0; i<metas.length; i++) {
+ if (metas[i].name == "viewport") {
+ metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
+ }
+ }
+}
1  params.json
@@ -0,0 +1 @@
+{"name":"Ospriet","body":"# An audience moderation app built on Twitter\r\n\r\n[Ospriet](http://twitter.github.com/ospriet) is a moderation tool that allows for audiences to post and vote on questions/comments for talks, presentations, and events. The application is written in [node.js](http://nodejs.org/), uses [MongoDB](http://www.mongodb.org/) for database storage, and is designed for deployment on [nodejitsu](http://nodejitsu.com/).\r\n\r\n## Overview\r\n\r\nOspriet allows anyone with a Twitter account to submit a question or comment, by posting an @-reply to a Twitter account dedicated for an audience-oriented event. The submission will be reposted to the event's account, with attribution. Audience members can vote up the best submissions by favoriting the submissions on the event account. Ospriet will then keep track of all of the favorites and provide the top submissions. Ospriet provides one single, simple interface for all of this that audience members can use on most devices.\r\n\r\nAs an example, let's take the event account of <a href=\"https://twitter.com/dftg\">@dftg</a> and submit a question.\r\n\r\n @dftg: What are your thoughts on Apple’s approach to design?\r\n\r\nThis tweet will be reposted by the application to <a href=\"https://twitter.com/dftg\">@dftg</a> as an @-reply to your submission, and look like this:\r\n\r\n From @couch: What are your thoughts on Apple's approach to design?\r\n\r\nAnyone can then favorite that reposted tweet, and see the top favorited submissions on the site.\r\n\r\nYou can view an example of the site powered by the application—used at a 2012 SXSW panel—at [http://designfromthegut.com](http://designfromthegut.com).\r\n\r\nFor more information on the origins of the application, read [this post](http://couch.tumblr.com/post/18854314402). The name 'Ospriet' comes from the Anglo-French term for the Osprey, a \"sea hawk\" known for hunting for fish in the sea.\r\n\r\n\r\n## Installation\r\n\r\nPlease refer to these wiki pages to download, customize, and deploy your own instance of Ospriet.\r\n\r\n* [Creating your development environment](https://github.com/twitter/ospriet/wiki/Creating-your-development-environment)\r\n* [Creating a Twitter app](https://github.com/twitter/ospriet/wiki/Creating-a-Twitter-app)\r\n* [Customizing Ospriet](https://github.com/twitter/ospriet/wiki/Customizing-Ospriet)\r\n* [Testing Opsriet](https://github.com/twitter/ospriet/wiki/Testing-Ospriet)\r\n* [Working with nodejitsu](https://github.com/twitter/ospriet/wiki/Working-with-nodejitsu)\r\n\r\n## Libraries\r\n\r\n**Server-side**\r\n\r\n- [Matador](http://obvious.github.com/matador) _for MVC app structure_\r\n- [ntwitter](http://github.com/avianflu/ntwitter) _node.js wrapper for Twitter API_\r\n- [mongoose](http://mongoosejs.com/) _node.js wrapper for MongoDB_\r\n- [socket.io](http://socket.io) _for real-time updating of client-side UI_\r\n\r\n**Client-side**\r\n\r\n- [Bootstrap](http://twitter.github.com/bootstrap) _for skeletal layout and micro-jQuery plugins_\r\n- [underscore.js](http://documentcloud.github.com/underscore) _for client-side data manipulation_\r\n- [hogan.js](http://twitter.github.com/hogan.js) _for template rendering_\r\n- [Twitter Web Intents](https://dev.twitter.com/docs/intents) _for tweet actions without authentication_\r\n\r\n\r\n## Issues\r\n\r\nHave a bug? Create an issue here on GitHub!\r\n\r\n[https://github.com/twitter/ospriet/issues](https://github.com/twitter/ospriet/issues)\r\n\r\n\r\n## Versioning\r\n\r\nFor transparency and insight, releases will be numbered with the follow format:\r\n\r\n <major>.<minor>.<patch>\r\n\r\nAnd constructed with the following guidelines:\r\n\r\n* Breaking backwards compatibility bumps the major\r\n* New additions without breaking backwards compatibility bumps the minor\r\n* Bug fixes and misc changes bump the patch\r\n\r\nFor more information on semantic versioning, please visit http://semver.org/.\r\n\r\n\r\n## Authors\r\n\r\n**Bill Couch**\r\n\r\n+ [https://github.com/couch](https://github.com/couch)\r\n+ [https://twitter.com/couch](https://twitter.com/couch)\r\n\r\n**Dustin Senos**\r\n\r\n+ [https://github.com/dustinsenos](https://github.com/dustinsenos)\r\n+ [https://twitter.com/dustin](https://twitter.com/dustin)\r\n\r\n## License\r\n\r\nCopyright 2012 Twitter, Inc.\r\n\r\nLicensed under the Apache License, Version 2.0: [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)","tagline":"An audience moderation app built on Twitter","google":"UA-362648-15","note":"Don't delete this file! It's used internally to help with page regeneration."}
69 stylesheets/pygment_trac.css
@@ -0,0 +1,69 @@
+.highlight { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
+
+.type-csharp .highlight .k { color: #0000FF }
+.type-csharp .highlight .kt { color: #0000FF }
+.type-csharp .highlight .nf { color: #000000; font-weight: normal }
+.type-csharp .highlight .nc { color: #2B91AF }
+.type-csharp .highlight .nn { color: #000000 }
+.type-csharp .highlight .s { color: #A31515 }
+.type-csharp .highlight .sc { color: #A31515 }
255 stylesheets/styles.css
@@ -0,0 +1,255 @@
+@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700);
+
+body {
+ padding:50px;
+ font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color:#777;
+ font-weight:300;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color:#222;
+ margin:0 0 20px;
+}
+
+p, ul, ol, table, pre, dl {
+ margin:0 0 20px;
+}
+
+h1, h2, h3 {
+ line-height:1.1;
+}
+
+h1 {
+ font-size:28px;
+}
+
+h2 {
+ color:#393939;
+}
+
+h3, h4, h5, h6 {
+ color:#494949;
+}
+
+a {
+ color:#39c;
+ font-weight:400;
+ text-decoration:none;
+}
+
+a small {
+ font-size:11px;
+ color:#777;
+ margin-top:-0.6em;
+ display:block;
+}
+
+.wrapper {
+ width:860px;
+ margin:0 auto;
+}
+
+blockquote {
+ border-left:1px solid #e5e5e5;
+ margin:0;
+ padding:0 0 0 20px;
+ font-style:italic;
+}
+
+code, pre {
+ font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal;
+ color:#333;
+ font-size:12px;
+}
+
+pre {
+ padding:8px 15px;
+ background: #f8f8f8;
+ border-radius:5px;
+ border:1px solid #e5e5e5;
+ overflow-x: auto;
+}
+
+table {
+ width:100%;
+ border-collapse:collapse;
+}
+
+th, td {
+ text-align:left;
+ padding:5px 10px;
+ border-bottom:1px solid #e5e5e5;
+}
+
+dt {
+ color:#444;
+ font-weight:700;
+}
+
+th {
+ color:#444;
+}
+
+img {
+ max-width:100%;
+}
+
+header {
+ width:270px;
+ float:left;
+ position:fixed;
+}
+
+header ul {
+ list-style:none;
+ height:40px;
+
+ padding:0;
+
+ background: #eee;
+ background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd));
+ background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+ background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%);
+
+ border-radius:5px;
+ border:1px solid #d2d2d2;
+ box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0;
+ width:270px;
+}
+
+header li {
+ width:89px;
+ float:left;
+ border-right:1px solid #d2d2d2;
+ height:40px;
+}
+
+header ul a {
+ line-height:1;
+ font-size:11px;
+ color:#999;
+ display:block;
+ text-align:center;
+ padding-top:6px;
+ height:40px;
+}
+
+strong {
+ color:#222;
+ font-weight:700;
+}
+
+header ul li + li {
+ width:88px;
+ border-left:1px solid #fff;
+}
+
+header ul li + li + li {
+ border-right:none;
+ width:89px;
+}
+
+header ul a strong {
+ font-size:14px;
+ display:block;
+ color:#222;
+}
+
+section {
+ width:500px;
+ float:right;
+ padding-bottom:50px;
+}
+
+small {
+ font-size:11px;
+}
+
+hr {
+ border:0;
+ background:#e5e5e5;
+ height:1px;
+ margin:0 0 20px;
+}
+
+footer {
+ width:270px;
+ float:left;
+ position:fixed;
+ bottom:50px;
+}
+
+@media print, screen and (max-width: 960px) {
+
+ div.wrapper {
+ width:auto;
+ margin:0;
+ }
+
+ header, section, footer {
+ float:none;
+ position:static;
+ width:auto;
+ }
+
+ header {
+ padding-right:320px;
+ }
+
+ section {
+ border:1px solid #e5e5e5;
+ border-width:1px 0;
+ padding:20px 0;
+ margin:0 0 20px;
+ }
+
+ header a small {
+ display:inline;
+ }
+
+ header ul {
+ position:absolute;
+ right:50px;
+ top:52px;
+ }
+}
+
+@media print, screen and (max-width: 720px) {
+ body {
+ word-wrap:break-word;
+ }
+
+ header {
+ padding:0;
+ }
+
+ header ul, header p.view {
+ position:static;
+ }
+
+ pre, code {
+ word-wrap:normal;
+ }
+}
+
+@media print, screen and (max-width: 480px) {
+ body {
+ padding:15px;
+ }
+
+ header ul {
+ display:none;
+ }
+}
+
+@media print {
+ body {
+ padding:0.4in;
+ font-size:12pt;
+ color:#444;
+ }
+}
Please sign in to comment.
Something went wrong with that request. Please try again.