fix: address early review comments and lint

This commit is contained in:
Mrugesh Mohapatra
2019-02-18 20:43:41 +05:30
committed by Stuart Taylor
parent 65c427a266
commit 7783079af7
10 changed files with 320 additions and 442 deletions

View File

@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types';
import { Grid, Row, Col } from '@freecodecamp/react-bootstrap'; import { Grid, Row, Col } from '@freecodecamp/react-bootstrap';
import Link from '../helpers/Link'; import Link from '../helpers/Link';
@ -16,12 +17,6 @@ const ColHeader = ({ children, ...other }) => (
); );
ColHeader.propTypes = propTypes; ColHeader.propTypes = propTypes;
const linkPropTypes = {
children: PropTypes.any,
external: PropTypes.bool,
to: PropTypes.string.isRequired
};
function Footer() { function Footer() {
return ( return (
<footer className='footer'> <footer className='footer'>
@ -73,13 +68,9 @@ function Footer() {
<Link to='https://gitter.im/FreeCodeCamp/home'>Gitter</Link> <Link to='https://gitter.im/FreeCodeCamp/home'>Gitter</Link>
<Link to='https://github.com/freeCodeCamp/'>GitHub</Link> <Link to='https://github.com/freeCodeCamp/'>GitHub</Link>
<Link to='/support'>Support</Link> <Link to='/support'>Support</Link>
<Link to='/code-of-conduct'> <Link to='/code-of-conduct'>Code of Conduct</Link>
Code of Conduct
</Link>
<Link to='/privacy-policy'>Privacy Policy</Link> <Link to='/privacy-policy'>Privacy Policy</Link>
<Link to='/terms-of-service'> <Link to='/terms-of-service'>Terms of Service</Link>
Terms of Service
</Link>
</Col> </Col>
<Col lg={3} sm={2} xs={12}> <Col lg={3} sm={2} xs={12}>
<ColHeader>Our Learning Resources</ColHeader> <ColHeader>Our Learning Resources</ColHeader>

View File

@ -70,12 +70,7 @@ function Supporters({ isDonating, activeDonations }) {
</FullWidthRow> </FullWidthRow>
{isDonating ? null : ( {isDonating ? null : (
<FullWidthRow> <FullWidthRow>
<Button <Button bsSize='lg' bsStyle='primary' href='/donate' target='_blank'>
bsSize='lg'
bsStyle='primary'
href='/donate'
target='_blank'
>
Click here to become a Supporter Click here to become a Supporter
</Button> </Button>
</FullWidthRow> </FullWidthRow>

View File

@ -1,8 +1,15 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types';
import { Link as GatsbyLink } from 'gatsby'; import { Link as GatsbyLink } from 'gatsby';
const propTypes = {
children: PropTypes.any,
external: PropTypes.bool,
to: PropTypes.string.isRequired
};
const Link = ({ children, to, external, ...other }) => { const Link = ({ children, to, external, ...other }) => {
if (!external && (/^\/(?!\/)/).test(to)) { if (!external && /^\/(?!\/)/.test(to)) {
return ( return (
<GatsbyLink to={to} {...other}> <GatsbyLink to={to} {...other}>
{children} {children}
@ -16,5 +23,6 @@ const Link = ({ children, to, external, ...other }) => {
</a> </a>
); );
}; };
Link.propTypes = propTypes;
export default Link; export default Link;

View File

@ -27,7 +27,7 @@ const AboutPage = () => {
<Fragment> <Fragment>
<Helmet title='About the freeCodeCamp community | freeCodeCamp.org' /> <Helmet title='About the freeCodeCamp community | freeCodeCamp.org' />
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row> <Row>
<Col <Col
className='questions' className='questions'
@ -36,7 +36,7 @@ const AboutPage = () => {
sm={10} sm={10}
smOffset={1} smOffset={1}
xs={12} xs={12}
> >
<h2 className='text-center'>Frequently Asked Questions</h2> <h2 className='text-center'>Frequently Asked Questions</h2>
<hr /> <hr />
<h4>What is freeCodeCamp?</h4> <h4>What is freeCodeCamp?</h4>
@ -47,24 +47,19 @@ const AboutPage = () => {
</p> </p>
<h4>How can you help me learn to code?</h4> <h4>How can you help me learn to code?</h4>
<p> <p>
You'll learn to code by completing coding challenges and You'll learn to code by completing coding challenges and building
building projects. You'll also earn verified certifications projects. You'll also earn verified certifications along the way.
along the way. We also encourage you to join a study group in We also encourage you to join a study group in your city so you
your city so you can code in-person with other people. can code in-person with other people.
</p> </p>
<h4>Is freeCodeCamp really free?</h4> <h4>Is freeCodeCamp really free?</h4>
<p>Yes. Every aspect of freeCodeCamp is 100% free.</p> <p>Yes. Every aspect of freeCodeCamp is 100% free.</p>
<h4> <h4>Can freeCodeCamp help me get a job as a software developer?</h4>
Can freeCodeCamp help me get a job as a software developer?
</h4>
<p> <p>
Yes. Every year, thousands of people who join the freeCodeCamp Yes. Every year, thousands of people who join the freeCodeCamp
community get their first software developer job. If you're community get their first software developer job. If you're
curious, you can{' '} curious, you can{' '}
<Link <Link to='https://www.linkedin.com/school/4831032/alumni/'>
external={true}
to='https://www.linkedin.com/school/4831032/alumni/'
>
browse our alumni network on LinkedIn here browse our alumni network on LinkedIn here
</Link> </Link>
. .
@ -73,31 +68,19 @@ const AboutPage = () => {
<p> <p>
If you add up all the people who use our learning platform, read If you add up all the people who use our learning platform, read
our{' '} our{' '}
<Link <Link to='https://medium.freecodecamp.org'>
external={true}
to='https://medium.freecodecamp.org'
>
Medium publication Medium publication
</Link> </Link>
, watch our{' '} , watch our{' '}
<Link <Link to='https://youtube.com/freecodecamp'>YouTube channel</Link>
external={true}
to='https://youtube.com/freecodecamp'
>
YouTube channel
</Link>
, and post on <Link to='/forum'>our forum</Link>, each month we , and post on <Link to='/forum'>our forum</Link>, each month we
help millions of people learn about coding and technology. help millions of people learn about coding and technology.
</p> </p>
<h4>Is freeCodeCamp a nonprofit?</h4> <h4>Is freeCodeCamp a nonprofit?</h4>
<p> <p>
Yes, we are a 501(c)(3){' '} Yes, we are a 501(c)(3){' '}
<Link to='/donate'>donor-supported public charity</Link>. You <Link to='/donate'>donor-supported public charity</Link>. You can{' '}
can{' '} <Link to='https://s3.amazonaws.com/freecodecamp/Free+Code+Camp+Inc+IRS+Determination+Letter.pdf'>
<Link
external={true}
to='https://s3.amazonaws.com/freecodecamp/Free+Code+Camp+Inc+IRS+Determination+Letter.pdf'
>
download our IRS Determination Letter here download our IRS Determination Letter here
</Link> </Link>
. .
@ -129,10 +112,10 @@ const AboutPage = () => {
</p> </p>
<h4>Is freeCodeCamp a replacement for a 4-year degree?</h4> <h4>Is freeCodeCamp a replacement for a 4-year degree?</h4>
<p> <p>
No. Please dont drop out of college just to pursue No. Please dont drop out of college just to pursue freeCodeCamp.
freeCodeCamp. You can pursue both concurrently. Even though you You can pursue both concurrently. Even though you dont need a
dont need a 4-year degree to work as a software developer, it 4-year degree to work as a software developer, it still helps a
still helps a lot. lot.
</p> </p>
<h4>Should I complete all of the coding challenges in order?</h4> <h4>Should I complete all of the coding challenges in order?</h4>
<p> <p>
@ -142,81 +125,60 @@ const AboutPage = () => {
<h4>Do I have to use CodePen for the front end projects?</h4> <h4>Do I have to use CodePen for the front end projects?</h4>
<p> <p>
As long as your code is publicly viewable somewhere on the As long as your code is publicly viewable somewhere on the
internet, and you have a live demo, you can use whatever tools internet, and you have a live demo, you can use whatever tools you
you want. want.
</p> </p>
<h4>How did freeCodeCamp get started?</h4> <h4>How did freeCodeCamp get started?</h4>
<p> <p>
<Link <Link to='https://www.twitter.com/ossia'>Quincy</Link> started the
external={true} freeCodeCamp community in 2014. He is now just one of thousands of
to='https://www.twitter.com/ossia' active contributors.
>
Quincy
</Link>{' '}
started the freeCodeCamp community in 2014. He is now just one
of thousands of active contributors.
</p> </p>
<h4> <h4>
I'm a teacher. Is freeCodeCamp an appropriate resource for my I'm a teacher. Is freeCodeCamp an appropriate resource for my
className? className?
</h4> </h4>
<p> <p>
Yes. Many high school, college, and adult ed programs Yes. Many high school, college, and adult ed programs incorporate
incorporate freeCodeCamp into their coursework. We're open freeCodeCamp into their coursework. We're open source, so no
source, so no license or special permission from us is license or special permission from us is necessary. We're even
necessary. We're even building special tools for teachers. building special tools for teachers.
</p> </p>
<h4> <h4>
Can I live-stream myself working on freeCodeCamp challenges and Can I live-stream myself working on freeCodeCamp challenges and
projects? Can I blog about how I solved them? projects? Can I blog about how I solved them?
</h4> </h4>
<p> <p>
Yes. We welcome this. Also, don't be shy about "spoiling" Yes. We welcome this. Also, don't be shy about "spoiling" projects
projects or challenges. The solutions to all of these challenges or challenges. The solutions to all of these challenges are
are already all over the internet. already all over the internet.
</p> </p>
<h4> <h4>
Can I create apps or tools based around the freeCodeCamp Can I create apps or tools based around the freeCodeCamp community
community and platform? and platform?
</h4> </h4>
<p> <p>
Yes. freeCodeCamp is open source (BSD-3 license), and most Yes. freeCodeCamp is open source (BSD-3 license), and most
non-sensitive freeCodeCamp data is publicly available. But you non-sensitive freeCodeCamp data is publicly available. But you
must make it clear that you don't represent freeCodeCamp itself, must make it clear that you don't represent freeCodeCamp itself,
and that your project is not officially endorsed by and that your project is not officially endorsed by freeCodeCamp.
freeCodeCamp.
</p> </p>
<h4>Does freeCodeCamp have a mobile app?</h4> <h4>Does freeCodeCamp have a mobile app?</h4>
<p> <p>
You can learn on the go by listening to the{' '} You can learn on the go by listening to the{' '}
<Link <Link to='https://podcast.freecodecamp.org'>
external={true}
to='https://podcast.freecodecamp.org'
>
freeCodeCamp Podcast freeCodeCamp Podcast
</Link>{' '} </Link>{' '}
or watching{' '} or watching{' '}
<Link <Link to='https://youtube.com/freecodecamp'>
external={true}
to='https://youtube.com/freecodecamp'
>
freeCodeCamp's YouTube channel freeCodeCamp's YouTube channel
</Link> </Link>
. And if you want a mobile app designed specifically for . And if you want a mobile app designed specifically for learning
learning to code, we recommend Grasshopper. It's free and to code, we recommend Grasshopper. It's free and designed by a
designed by a freeCodeCamp contributor and her team. You can freeCodeCamp contributor and her team. You can download it on{' '}
download it on{' '} <Link to='https://itunes.apple.com/us/app/id1354133284'>iOS</Link>{' '}
<Link
external={true}
to='https://itunes.apple.com/us/app/id1354133284'
>
iOS
</Link>{' '}
or{' '} or{' '}
<Link <Link to='https://play.google.com/store/apps/details?id=com.area120.grasshopper&hl=en'>
external={true}
to='https://play.google.com/store/apps/details?id=com.area120.grasshopper&hl=en'
>
Android Android
</Link> </Link>
. .
@ -224,12 +186,9 @@ const AboutPage = () => {
<h4>Can I get a job at freeCodeCamp?</h4> <h4>Can I get a job at freeCodeCamp?</h4>
<p> <p>
We're a small donor-supported nonprofit. We've hired several We're a small donor-supported nonprofit. We've hired several
prominent contributors from within the freeCodeCamp community, prominent contributors from within the freeCodeCamp community, but
but you're much more likely to get a job at{' '} you're much more likely to get a job at{' '}
<Link <Link to='https://www.linkedin.com/school/free-code-camp/alumni/'>
external={true}
to='https://www.linkedin.com/school/free-code-camp/alumni/'
>
one of the hundreds of companies one of the hundreds of companies
</Link>{' '} </Link>{' '}
where freeCodeCamp alumni work. where freeCodeCamp alumni work.
@ -266,7 +225,7 @@ const AboutPage = () => {
sm={10} sm={10}
smOffset={1} smOffset={1}
xs={12} xs={12}
> >
<h2 className='text-center'>Helpful Links</h2> <h2 className='text-center'>Helpful Links</h2>
<hr /> <hr />
<Table> <Table>
@ -276,10 +235,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faYoutube} /> <FontAwesomeIcon icon={faYoutube} />
</td> </td>
<td> <td>
<Link <Link to='https://youtube.com/freecodecamp'>
external={true}
to='https://youtube.com/freecodecamp'
>
Our YouTube channel Our YouTube channel
</Link> </Link>
</td> </td>
@ -289,10 +245,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faGithub} /> <FontAwesomeIcon icon={faGithub} />
</td> </td>
<td> <td>
<Link <Link to='https://github.com/freecodecamp/'>
external={true}
to='https://github.com/freecodecamp/'
>
Our GitHub organization Our GitHub organization
</Link> </Link>
</td> </td>
@ -302,10 +255,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faLinkedin} /> <FontAwesomeIcon icon={faLinkedin} />
</td> </td>
<td> <td>
<Link <Link to='https://www.linkedin.com/edu/school?id=166029'>
external={true}
to='https://www.linkedin.com/edu/school?id=166029'
>
Our LinkedIn university page Our LinkedIn university page
</Link> </Link>
</td> </td>
@ -315,10 +265,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faMedium} /> <FontAwesomeIcon icon={faMedium} />
</td> </td>
<td> <td>
<Link <Link to='https://medium.freecodecamp.org'>
external={true}
to='https://medium.freecodecamp.org'
>
Our Medium publication Our Medium publication
</Link> </Link>
</td> </td>
@ -328,10 +275,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faTwitter} /> <FontAwesomeIcon icon={faTwitter} />
</td> </td>
<td> <td>
<Link <Link to='https://twitter.com/freecodecamp'>
external={true}
to='https://twitter.com/freecodecamp'
>
Our Twitter feed Our Twitter feed
</Link> </Link>
</td> </td>
@ -341,10 +285,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faFacebook} /> <FontAwesomeIcon icon={faFacebook} />
</td> </td>
<td> <td>
<Link <Link to='https://facebook.com/freecodecamp'>
external={true}
to='https://facebook.com/freecodecamp'
>
Our Facebook page Our Facebook page
</Link> </Link>
</td> </td>
@ -354,9 +295,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faLock} /> <FontAwesomeIcon icon={faLock} />
</td> </td>
<td> <td>
<Link to='/privacy-policy'> <Link to='/privacy-policy'>Our privacy policy</Link>
Our privacy policy
</Link>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -364,9 +303,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faBalanceScale} /> <FontAwesomeIcon icon={faBalanceScale} />
</td> </td>
<td> <td>
<Link to='/code-of-conduct'> <Link to='/code-of-conduct'>Our code of conduct</Link>
Our code of conduct
</Link>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -384,9 +321,7 @@ const AboutPage = () => {
<FontAwesomeIcon icon={faBook} /> <FontAwesomeIcon icon={faBook} />
</td> </td>
<td> <td>
<Link to='/terms-of-service'> <Link to='/terms-of-service'>Our terms of service</Link>
Our terms of service
</Link>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -10,15 +10,9 @@ const CodeOfConductPage = () => {
<Fragment> <Fragment>
<Helmet title='Code of Conduct | freeCodeCamp.org' /> <Helmet title='Code of Conduct | freeCodeCamp.org' />
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row> <Row>
<Col <Col md={6} mdOffset={3} sm={10} smOffset={1} xs={12}>
md={6}
mdOffset={3}
sm={10}
smOffset={1}
xs={12}
>
<h2 className='text-center'>Code of Conduct</h2> <h2 className='text-center'>Code of Conduct</h2>
<hr /> <hr />
<p> <p>
@ -30,11 +24,11 @@ const CodeOfConductPage = () => {
conduct. conduct.
</p> </p>
<p>In short: Be nice. No harassment, trolling, or spamming.</p> <p>In short: Be nice. No harassment, trolling, or spamming.</p>
<ul style={{ 'margin-top': '0', 'margin-bottom': '10px' }} > <ul style={{ 'margin-top': '0', 'margin-bottom': '10px' }}>
<li> <li>
<strong>Harassment</strong> includes sexual language and imagery, <strong>Harassment</strong> includes sexual language and
deliberate intimidation, stalking, name-calling, unwelcome imagery, deliberate intimidation, stalking, name-calling,
attention, libel, and any malicious hacking or social unwelcome attention, libel, and any malicious hacking or social
engineering. freeCodeCamp should be a harassment-free experience engineering. freeCodeCamp should be a harassment-free experience
for everyone, regardless of gender, gender identity and for everyone, regardless of gender, gender identity and
expression, age, sexual orientation, disability, physical expression, age, sexual orientation, disability, physical
@ -42,8 +36,8 @@ const CodeOfConductPage = () => {
lack thereof). lack thereof).
</li> </li>
<li> <li>
<strong>Trolling</strong> includes posting inflammatory comments to <strong>Trolling</strong> includes posting inflammatory comments
provoke an emotional response or disrupt discussions. to provoke an emotional response or disrupt discussions.
</li> </li>
<li> <li>
<strong>Spamming</strong> includes posting off-topic messages to <strong>Spamming</strong> includes posting off-topic messages to
@ -59,17 +53,14 @@ const CodeOfConductPage = () => {
<Link to='https://gitter.im/freecodecamp/admin'> <Link to='https://gitter.im/freecodecamp/admin'>
admin chat room admin chat room
</Link>{' '} </Link>{' '}
- preferably with a screen shot of the offense. The - preferably with a screen shot of the offense. The moderator team
moderator team will take any action we deem appropriate, up to and will take any action we deem appropriate, up to and including
including banning the offender from freeCodeCamp. banning the offender from freeCodeCamp.
</p> </p>
<p> <p>
Also, no bots are allowed in the freeCodeCamp community without Also, no bots are allowed in the freeCodeCamp community without
prior written permission from{' '} prior written permission from{' '}
<Link to='https://gitter.im/quincylarson'> <Link to='https://gitter.im/quincylarson'>Quincy Larson</Link>.
Quincy Larson
</Link>
.
</p> </p>
</Col> </Col>
</Row> </Row>

View File

@ -49,11 +49,7 @@ const IndexPage = ({
<p> <p>
And yes - all of this is 100% free, thanks to the thousands of campers And yes - all of this is 100% free, thanks to the thousands of campers
who{' '} who{' '}
<a <a href='/donate' rel='noopener noreferrer' target='_blank'>
href='/donate'
rel='noopener noreferrer'
target='_blank'
>
donate donate
</a>{' '} </a>{' '}
to our nonprofit. to our nonprofit.

View File

@ -12,7 +12,7 @@ const PrivacyPolicyPage = () => {
<Fragment> <Fragment>
<Helmet title='Privacy Policy | freeCodeCamp.org' /> <Helmet title='Privacy Policy | freeCodeCamp.org' />
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row> <Row>
<Col <Col
className='questions' className='questions'
@ -21,8 +21,10 @@ const PrivacyPolicyPage = () => {
sm={10} sm={10}
smOffset={1} smOffset={1}
xs={12} xs={12}
> >
<h2 className='text-center'>freeCodeCamp.org Privacy Policy: Questions and Answers</h2> <h2 className='text-center'>
freeCodeCamp.org Privacy Policy: Questions and Answers
</h2>
<hr /> <hr />
<p> <p>
We take your privacy seriously. And we give you full control over We take your privacy seriously. And we give you full control over
@ -129,131 +131,131 @@ const PrivacyPolicyPage = () => {
decision-making. decision-making.
</p> </p>
<h4>Who has access to my personal data?</h4> <h4>Who has access to my personal data?</h4>
<p> <p>
Even though freeCodeCamp has thousands of volunteers, none of Even though freeCodeCamp has thousands of volunteers, none of
those people have access to your private data. those people have access to your private data.
</p> </p>
<p> <p>
freeCodeCamp has a few full-time staff, some of whom work freeCodeCamp has a few full-time staff, some of whom work directly
directly on our databases. They have the ability to view your on our databases. They have the ability to view your private data,
private data, but only do so when providing you with technical but only do so when providing you with technical support.
support. </p>
</p> <p>
<p> As for the personal data that you choose to share on your
As for the personal data that you choose to share on your developer portfolio, anyone on the internet can see it by
developer portfolio, anyone on the internet can see it by navigating to your developer portfolio's public URL. Again, we've
navigating to your developer portfolio's public URL. Again, given you full control over what parts of your developer profile
we've given you full control over what parts of your developer are public.
profile are public. </p>
</p> <h4>What is freeCodeCamp's Donor Privacy Policy?</h4>
<h4>What is freeCodeCamp's Donor Privacy Policy?</h4> <p>
<p> freeCodeCamp will not share our donors' names or personal
freeCodeCamp will not share our donors' names or personal information with anyone outside of our nonprofit organization's
information with anyone outside of our nonprofit organization's team. Donors may choose to display that they are donating to
team. Donors may choose to display that they are donating to freeCodeCamp on their freeCodeCamp profile. Otherwise, donor
freeCodeCamp on their freeCodeCamp profile. Otherwise, donor information will only be used to process donations and send email
information will only be used to process donations and send confirmations. This policy applies to any written, verbal, or
email confirmations. This policy applies to any written, verbal, electronic communication.
or electronic communication. </p>
</p> <h4>Can any other organizations access my data?</h4>
<h4>Can any other organizations access my data?</h4> <p>
<p> We don't sell your data to anyone. In order to provide service to
We don't sell your data to anyone. In order to provide service you, your data does pass through some other services. All of these
to you, your data does pass through some other services. All of companies are based in the United States.
these companies are based in the United States. </p>
</p> <p>
<p> We use Amazon Web Services, Azure, and mLab for our servers and
We use Amazon Web Services, Azure, and mLab for our servers and databases. You can read the privacy policy for{' '}
databases. You can read the privacy policy for{' '} <Link to='https://aws.amazon.com/privacy/'>
<Link to='https://aws.amazon.com/privacy/'> Amazon Web Services
Amazon Web Services </Link>
</Link> ,{' '}
,{' '} <Link to='https://privacy.microsoft.com/en-us/privacystatement'>
<Link to='https://privacy.microsoft.com/en-us/privacystatement'> Microsoft Azure
Microsoft Azure </Link>
</Link> , and{' '}
, and <Link to='https://mlab.com/company/legal/privacy/'>mLab</Link> <Link to='https://mlab.com/company/legal/privacy/'>mLab</Link>.
. </p>
</p> <p>
<p> We use Stripe and PayPal to process donations. You can read the
We use Stripe and PayPal to process donations. You can read the privacy policy for{' '}
privacy policy for{' '} <Link to='https://stripe.com/us/privacy'>Stripe</Link> and for{' '}
<Link to='https://stripe.com/us/privacy'>Stripe</Link> and for{' '} <Link to='https://www.paypal.com/us/webapps/mpp/ua/privacy-full'>
<Link to='https://www.paypal.com/us/webapps/mpp/ua/privacy-full'> PayPal
PayPal </Link>
</Link> .
. </p>
</p> <p>
<p> We use the CloudFlare and Netlify Content Delivery Networks so
We use the CloudFlare and Netlify Content Delivery Networks so that freeCodeCamp is fast in all parts of the world. You can read
that freeCodeCamp is fast in all parts of the world. You can the privacy policy for{' '}
read the privacy policy for{' '} <Link to='https://www.cloudflare.com/privacypolicy/'>
<Link to='https://www.cloudflare.com/privacypolicy/'> CloudFlare
CloudFlare </Link>{' '}
</Link>{' '} and <Link to='https://www.netlify.com/privacy/'>Netlify</Link>{' '}
and <Link to='https://www.netlify.com/privacy/'>Netlify</Link>{' '} online.
online. </p>
</p> <p>
<p> We use Auth0 to sign you into freeCodeCamp. You can read{' '}
We use Auth0 to sign you into freeCodeCamp. You can read{' '} <Link to='https://auth0.com/privacy'>
<Link to='https://auth0.com/privacy'> the privacy policy for Auth0 online
the privacy policy for Auth0 online </Link>
</Link> .
. </p>
</p> <p>
<p> We use Google Analytics to help us understand the demographics of
We use Google Analytics to help us understand the demographics our community and how people are using freeCodeCamp. You can opt
of our community and how people are using freeCodeCamp. You can out of Google Analytics on freeCodeCamp by{' '}
opt out of Google Analytics on freeCodeCamp by{' '} <Link to='https://tools.google.com/dlpage/gaoptout'>
<Link to='https://tools.google.com/dlpage/gaoptout'> installing this browser plugin
installing this browser plugin </Link>
</Link> . You can read{' '}
. You can read{' '} <Link to='https://www.google.com/analytics/terms/'>
<Link to='https://www.google.com/analytics/terms/'> the privacy policy for Google Analytics online
the privacy policy for Google Analytics online </Link>
</Link> .
. </p>
</p> <p>
<p> For your convenience, we give you the option to sign in using
For your convenience, we give you the option to sign in using GitHub, Google, or Facebook if you don't want to use your email
GitHub, Google, or Facebook if you don't want to use your email address to sign in. If you choose to use one of these sign in
address to sign in. If you choose to use one of these sign in options, some of your freeCodeCamp data will be shared with these
options, some of your freeCodeCamp data will be shared with companies. You can read{' '}
these companies. You can read{' '} <Link to='https://help.github.com/articles/github-privacy-statement/'>
<Link to='https://help.github.com/articles/github-privacy-statement/'> the privacy policy for GitHub
the privacy policy for GitHub </Link>{' '}
</Link>{' '} and for{' '}
and for <Link to='https://policies.google.com/privacy'>Google</Link>{' '} <Link to='https://policies.google.com/privacy'>Google</Link> and
and for{' '} for <Link to='https://www.facebook.com/policy.php'>Facebook</Link>
<Link to='https://www.facebook.com/policy.php'>Facebook</Link>. .
</p> </p>
<h4>I have questions about my privacy on freeCodeCamp.</h4> <h4>I have questions about my privacy on freeCodeCamp.</h4>
<p> <p>
We're happy to answer them. Email us at{' '} We're happy to answer them. Email us at{' '}
<a href='mailto:privacy@freecodecamp.org'> <a href='mailto:privacy@freecodecamp.org'>
privacy@freecodecamp.org privacy@freecodecamp.org
</a> </a>
. .
</p> </p>
<h4>How can I find out about changes?</h4> <h4>How can I find out about changes?</h4>
<p> <p>
This version of freeCodeCamps privacy questions and answers This version of freeCodeCamps privacy questions and answers took
took effect May 25, 2018. effect May 25, 2018.
</p> </p>
<p> <p>
freeCodeCamp will announce the next version by email. In the freeCodeCamp will announce the next version by email. In the
meantime, freeCodeCamp may update its contact information in meantime, freeCodeCamp may update its contact information in these
these questions and answers by updating this page questions and answers by updating this page
(https://www.freecodecamp.org/privacy-policy). (https://www.freecodecamp.org/privacy-policy).
</p> </p>
<p> <p>
freeCodeCamp may change how it announces changes in a future freeCodeCamp may change how it announces changes in a future
version of these questions and answers. version of these questions and answers.
</p> </p>
<h4> <h4>
That's all, folks. Know your privacy rights, and stay safe out That's all, folks. Know your privacy rights, and stay safe out
there! there!
</h4> </h4>
</Col> </Col>
</Row> </Row>
</Grid> </Grid>

View File

@ -10,11 +10,9 @@ import './sponsors.css';
const SponsorsPage = () => { const SponsorsPage = () => {
return ( return (
<Fragment> <Fragment>
<Helmet <Helmet title='Sponsors who help freeCodeCamp through financial and in-kind sponsorship | freeCodeCamp.org' />
title='Sponsors who help freeCodeCamp through financial and in-kind sponsorship | freeCodeCamp.org'
/>
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row className='text-center'> <Row className='text-center'>
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}> <Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>
<h2>Financial Sponsors</h2> <h2>Financial Sponsors</h2>
@ -23,20 +21,14 @@ const SponsorsPage = () => {
</h3> </h3>
<hr /> <hr />
<Row className='sponsor-logos'> <Row className='sponsor-logos'>
<Link <Link to='https://www.class-central.com'>
external={true}
to='https://www.class-central.com'
>
<img <img
alt="Class Central's logo" alt="Class Central's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/class-central-logo.jpg' src='https://s3.amazonaws.com/freecodecamp/class-central-logo.jpg'
/> />
</Link> </Link>
<Link <Link to='https://www.tsugicloud.org'>
external={true}
to='https://www.tsugicloud.org'
>
<img <img
alt="TsugiCloud's logo" alt="TsugiCloud's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
@ -48,30 +40,21 @@ const SponsorsPage = () => {
<h3>These companies donate their services to freeCodeCamp.org</h3> <h3>These companies donate their services to freeCodeCamp.org</h3>
<hr /> <hr />
<Row className='sponsor-logos'> <Row className='sponsor-logos'>
<Link <Link to='https://netlify.com'>
external={true}
to='https://netlify.com'
>
<img <img
alt="Netlify's logo" alt="Netlify's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/netlify-logo.jpg' src='https://s3.amazonaws.com/freecodecamp/netlify-logo.jpg'
/> />
</Link> </Link>
<Link <Link to='https://www.mlab.com/'>
external={true}
to='https://www.mlab.com/'
>
<img <img
alt="mLab's logo" alt="mLab's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/mLab-logo.png' src='https://s3.amazonaws.com/freecodecamp/mLab-logo.png'
/> />
</Link> </Link>
<Link <Link to='https://auth0.com'>
external={true}
to='https://auth0.com'
>
<img <img
alt="Auth0's logo" alt="Auth0's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
@ -80,30 +63,21 @@ const SponsorsPage = () => {
</Link> </Link>
</Row> </Row>
<Row className='sponsor-logos'> <Row className='sponsor-logos'>
<Link <Link to='https://www.discourse.org/'>
external={true}
to='https://www.discourse.org/'
>
<img <img
alt="Discourse's logo" alt="Discourse's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/discourse-logo.png' src='https://s3.amazonaws.com/freecodecamp/discourse-logo.png'
/> />
</Link> </Link>
<Link <Link to='https://algolia.com'>
external={true}
to='https://algolia.com'
>
<img <img
alt="Algolia's logo" alt="Algolia's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'
src='https://s3.amazonaws.com/freecodecamp/algolia-logo.jpg' src='https://s3.amazonaws.com/freecodecamp/algolia-logo.jpg'
/> />
</Link> </Link>
<Link <Link to='https://cloudflare.com'>
external={true}
to='https://cloudflare.com'
>
<img <img
alt="Cloudflare's logo" alt="Cloudflare's logo"
className='img-responsive sponsor-logo' className='img-responsive sponsor-logo'

View File

@ -12,7 +12,7 @@ const SupportPage = () => {
<Fragment> <Fragment>
<Helmet title='Support | freeCodeCamp.org' /> <Helmet title='Support | freeCodeCamp.org' />
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row> <Row>
<Col <Col
className='questions' className='questions'
@ -21,7 +21,7 @@ const SupportPage = () => {
sm={10} sm={10}
smOffset={1} smOffset={1}
xs={12} xs={12}
> >
<h2 className='text-center'>Common Technical Support Questions</h2> <h2 className='text-center'>Common Technical Support Questions</h2>
<hr /> <hr />
<h4 id='faq_progress'> <h4 id='faq_progress'>
@ -30,13 +30,10 @@ const SupportPage = () => {
</h4> </h4>
<p> <p>
You have created a duplicate account.{' '} You have created a duplicate account.{' '}
<Link to='/settings'> <Link to='/settings'>Sign out of your account</Link> and try
Sign out of your account signing in using a different service (Google, GitHub, Facebook)
</Link>{' '} that you may have used to in the past. Or try signing in using an
and try signing in using a different service (Google, GitHub, email address you may have used on freeCodeCamp in the past.
Facebook) that you may have used to in the past. Or try signing in
using an email address you may have used on freeCodeCamp in the
past.
</p> </p>
<h4 id='faq_donation'> <h4 id='faq_donation'>
I set up a monthly donation, but I need to update or cancel the I set up a monthly donation, but I need to update or cancel the
@ -68,17 +65,14 @@ const SupportPage = () => {
freeCodeCamp. Thanks for your patience. freeCodeCamp. Thanks for your patience.
</p> </p>
<h4> <h4>
When I go to{' '} When I go to <Link to='/learn'>Learning Curriculum</Link> the
<Link to='/learn'> challenges are completely blank.
Learning Curriculum
</Link>{' '}
the challenges are completely blank.
</h4> </h4>
<p> <p>
Do a hard refresh of the website by pressing control+shift+r in Do a hard refresh of the website by pressing control+shift+r in
Windows or command+shift+r on Mac/Linux. If that doesn't work, you Windows or command+shift+r on Mac/Linux. If that doesn't work, you
may need to clear your cookies. Here is{' '} may need to clear your cookies. Here is{' '}
<Link to='/forum/t/205075'> <Link external={true} to='/forum/t/205075'>
how to clear specific cookies how to clear specific cookies
</Link> </Link>
. .
@ -89,7 +83,7 @@ const SupportPage = () => {
</h4> </h4>
<p> <p>
This is caused by an infinite loop in your code editor.{' '} This is caused by an infinite loop in your code editor.{' '}
<Link to='/forum/t/19550'> <Link external={true} to='/forum/t/19550'>
Here's how to fix this Here's how to fix this
</Link> </Link>
. .

View File

@ -12,7 +12,7 @@ const TermsOfServicePage = () => {
<Fragment> <Fragment>
<Helmet title='Terms of Service | freeCodeCamp.org' /> <Helmet title='Terms of Service | freeCodeCamp.org' />
<Spacer /> <Spacer />
<Grid className='container'> <Grid>
<Row> <Row>
<Col <Col
className='questions' className='questions'
@ -21,7 +21,7 @@ const TermsOfServicePage = () => {
sm={10} sm={10}
smOffset={1} smOffset={1}
xs={12} xs={12}
> >
<h2 className='text-center'>freeCodeCamp's Terms of Service</h2> <h2 className='text-center'>freeCodeCamp's Terms of Service</h2>
<hr /> <hr />
<p> <p>
@ -167,13 +167,11 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
You may not strain infrastructure of the website with an You may not strain infrastructure of the website with an
unreasonable volume of requests, or requests designed to impose unreasonable volume of requests, or requests designed to impose an
an unreasonable load on information systems underlying the unreasonable load on information systems underlying the website.
website.
</p> </p>
<p> <p>
You may not encourage or help anyone in violation of these You may not encourage or help anyone in violation of these terms.
terms.
</p> </p>
<p>You may not impersonate others through the website.</p> <p>You may not impersonate others through the website.</p>
<h4 id='content-standards'>Content Standards</h4> <h4 id='content-standards'>Content Standards</h4>
@ -184,8 +182,8 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
You may not submit content to the website that violates the law, You may not submit content to the website that violates the law,
infringes anyones intellectual property rights, violates infringes anyones intellectual property rights, violates anyones
anyones privacy, or breaches agreements you have with others. privacy, or breaches agreements you have with others.
</p> </p>
<p> <p>
You may not submit content to the website containing malicious You may not submit content to the website containing malicious
@ -197,9 +195,8 @@ const TermsOfServicePage = () => {
identifier. identifier.
</p> </p>
<p> <p>
You may not use the website to disclose information that you You may not use the website to disclose information that you dont
dont have the right to disclose, like others confidential have the right to disclose, like others confidential information.
information.
</p> </p>
<h4 id='enforcement'>Enforcement</h4> <h4 id='enforcement'>Enforcement</h4>
<p> <p>
@ -210,9 +207,9 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
The company reserves the right to change, redact, and delete The company reserves the right to change, redact, and delete
content on the website for any reason. If you believe someone content on the website for any reason. If you believe someone has
has submitted content to the website in violation of these submitted content to the website in violation of these terms,
terms, please contact us immediately. please contact us immediately.
</p> </p>
<h4 id='your-account'>Your Account</h4> <h4 id='your-account'>Your Account</h4>
<p> <p>
@ -223,17 +220,17 @@ const TermsOfServicePage = () => {
To create an account, you must provide some information about To create an account, you must provide some information about
yourself. If you create an account, you agree to provide, at a yourself. If you create an account, you agree to provide, at a
minimum, a valid e-mail address, and to keep that address minimum, a valid e-mail address, and to keep that address
up-to-date. You may close your account at any time by logging up-to-date. You may close your account at any time by logging into
into your account and clicking the button on your account your account and clicking the button on your account settings
settings page. page.
</p> </p>
<p> <p>
You agree to be responsible for all action taken using your You agree to be responsible for all action taken using your
account, whether authorized by you or not, until you either account, whether authorized by you or not, until you either close
close your account or notify the company that your account has your account or notify the company that your account has been
been compromised. You agree to notify the company immediately if compromised. You agree to notify the company immediately if you
you suspect your account has been compromised. You agree to suspect your account has been compromised. You agree to select a
select a secure password for your account, and keep it secret. secure password for your account, and keep it secret.
</p> </p>
<p> <p>
The company may restrict, suspend, or close your account on the The company may restrict, suspend, or close your account on the
@ -246,32 +243,32 @@ const TermsOfServicePage = () => {
Nothing in these terms gives the company any ownership rights in Nothing in these terms gives the company any ownership rights in
intellectual property that you share with the website, such as intellectual property that you share with the website, such as
your account information or other content you submit to the your account information or other content you submit to the
website. Nothing in these terms gives you any ownership rights website. Nothing in these terms gives you any ownership rights in
in the companys intellectual property, either. the companys intellectual property, either.
</p> </p>
<p> <p>
Between you and the company, you remain solely responsible for Between you and the company, you remain solely responsible for
content you submit to the website. You agree not to wrongly content you submit to the website. You agree not to wrongly imply
imply that content you submit to the website is sponsored or that content you submit to the website is sponsored or approved by
approved by the company. These terms do not obligate the company the company. These terms do not obligate the company to store,
to store, maintain, or provide copies of content you submit. maintain, or provide copies of content you submit.
</p> </p>
<p> <p>
Content you submit to the website belongs to you, and you decide Content you submit to the website belongs to you, and you decide
what permission to give others for it. But at a minimum, you what permission to give others for it. But at a minimum, you
license the company to provide content that you submit to the license the company to provide content that you submit to the
website to other users of the website. That special license website to other users of the website. That special license allows
allows the company to copy, publish, and analyze content you the company to copy, publish, and analyze content you submit to
submit to the website. the website.
</p> </p>
<p> <p>
When content you submit is removed from the website, whether by When content you submit is removed from the website, whether by
you or by the company, the companys special license ends when you or by the company, the companys special license ends when the
the last copy disappears from the companys backups, caches, and last copy disappears from the companys backups, caches, and other
other systems. Other licenses you apply to content you submit systems. Other licenses you apply to content you submit may
may continue after your content is removed. Those licenses may continue after your content is removed. Those licenses may give
give others, or the company itself, the right to share your others, or the company itself, the right to share your content
content through the website again. through the website again.
</p> </p>
<p> <p>
Others who receive content you submit to the website may violate Others who receive content you submit to the website may violate
@ -282,19 +279,18 @@ const TermsOfServicePage = () => {
<h4 id='your-responsibility'>Your Responsibility</h4> <h4 id='your-responsibility'>Your Responsibility</h4>
<p> <p>
You agree to indemnify the company from legal claims by others You agree to indemnify the company from legal claims by others
related to your breach of these terms, or breach of these terms related to your breach of these terms, or breach of these terms by
by others using your account on the website. Both you and the others using your account on the website. Both you and the company
company agree to notify the other side of any legal claims for agree to notify the other side of any legal claims for which you
which you might have to indemnify the company as soon as might have to indemnify the company as soon as possible. If the
possible. If the company fails to notify you of a legal claim company fails to notify you of a legal claim promptly, you wont
promptly, you wont have to indemnify the company for damages have to indemnify the company for damages that you could have
that you could have defended against or mitigated with prompt defended against or mitigated with prompt notice. You agree to
notice. You agree to allow the company to control investigation, allow the company to control investigation, defense, and
defense, and settlement of legal claims for which you would have settlement of legal claims for which you would have to indemnify
to indemnify the company, and to cooperate with those efforts. the company, and to cooperate with those efforts. The company
The company agrees not to agree to any settlement that admits agrees not to agree to any settlement that admits fault for you or
fault for you or imposes obligations on you without your prior imposes obligations on you without your prior agreement.
agreement.
</p> </p>
<h4 id='disclaimers'>Disclaimers</h4> <h4 id='disclaimers'>Disclaimers</h4>
<p> <p>
@ -306,19 +302,19 @@ const TermsOfServicePage = () => {
The website may hyperlink to and integrate websites and services The website may hyperlink to and integrate websites and services
run by others. The company does not make any warranty about run by others. The company does not make any warranty about
services run by others, or content they may provide. Use of services run by others, or content they may provide. Use of
services run by others may be governed by other terms between services run by others may be governed by other terms between you
you and the one running service. and the one running service.
</p> </p>
<h4 id='limits-on-liability'>Limits on Liability</h4> <h4 id='limits-on-liability'>Limits on Liability</h4>
<p> <p>
The company will not be liable to you for breach-of-contract The company will not be liable to you for breach-of-contract
damages company personnel could not have reasonably foreseen damages company personnel could not have reasonably foreseen when
when you agreed to these terms. you agreed to these terms.
</p> </p>
<p> <p>
As far as the law allows, the companys total liability to you As far as the law allows, the companys total liability to you for
for claims of any kind that are related to the website or claims of any kind that are related to the website or content on
content on the website will be limited to $50. the website will be limited to $50.
</p> </p>
<h4 id='feedback'>Feedback</h4> <h4 id='feedback'>Feedback</h4>
<p> <p>
@ -328,17 +324,16 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
You agree that the company will be free to act on feedback and You agree that the company will be free to act on feedback and
suggestions you provide, and that the company wont have to suggestions you provide, and that the company wont have to notify
notify you that your feedback was used, get your permission to you that your feedback was used, get your permission to use it, or
use it, or pay you. You agree not to submit feedback or pay you. You agree not to submit feedback or suggestions that you
suggestions that you believe might be confidential or believe might be confidential or proprietary, to you or others.
proprietary, to you or others.
</p> </p>
<h4 id='termination'>Termination</h4> <h4 id='termination'>Termination</h4>
<p> <p>
Either you or the company may end the agreement written out in Either you or the company may end the agreement written out in
these terms at any time. When our agreement ends, your these terms at any time. When our agreement ends, your permission
permission to use the website also ends. to use the website also ends.
</p> </p>
<p> <p>
The following provisions survive the end of our agreement: Your The following provisions survive the end of our agreement: Your
@ -352,54 +347,52 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
You and the company agree to seek injunctions related to these You and the company agree to seek injunctions related to these
terms only in state or federal court in San Francisco, terms only in state or federal court in San Francisco, California.
California. Neither you nor the company will object to Neither you nor the company will object to jurisdiction, forum, or
jurisdiction, forum, or venue in those courts. venue in those courts.
</p> </p>
<p> <p>
Other than to seek an injunction or for claims under the Other than to seek an injunction or for claims under the Computer
Computer Fraud and Abuse Act, you and the company will resolve Fraud and Abuse Act, you and the company will resolve any Dispute
any Dispute by binding American Arbitration Association by binding American Arbitration Association arbitration.
arbitration. Arbitration will follow the AAAs Commercial Arbitration will follow the AAAs Commercial Arbitration Rules and
Arbitration Rules and Supplementary Procedures for Consumer Supplementary Procedures for Consumer Related Disputes.
Related Disputes. Arbitration will happen in San Francisco, Arbitration will happen in San Francisco, California. You will
California. You will settle any dispute as an individual, and settle any dispute as an individual, and not as part of a class
not as part of a class action or other representative action or other representative proceeding, whether as the
proceeding, whether as the plaintiff or a class member. No plaintiff or a class member. No arbitrator will consolidate any
arbitrator will consolidate any dispute with any other dispute with any other arbitration without the companys
arbitration without the companys permission. permission.
</p> </p>
<p> <p>
Any arbitration award will include costs of the arbitration, Any arbitration award will include costs of the arbitration,
reasonable attorneys fees, and reasonable costs for witnesses. reasonable attorneys fees, and reasonable costs for witnesses.
You or the company may enter arbitration awards in any court You or the company may enter arbitration awards in any court with
with jurisdiction. jurisdiction.
</p> </p>
<h4 id='general-terms'>General Terms</h4> <h4 id='general-terms'>General Terms</h4>
<p> <p>
If a provision of these terms is unenforceable as written, but If a provision of these terms is unenforceable as written, but
could be changed to make it enforceable, that provision should could be changed to make it enforceable, that provision should be
be modified to the minimum extent necessary to make it modified to the minimum extent necessary to make it enforceable.
enforceable. Otherwise, that provision should be removed. Otherwise, that provision should be removed.
</p> </p>
<p> <p>
You may not assign your agreement with the company. The company You may not assign your agreement with the company. The company
may assign your agreement to any affiliate of the company, any may assign your agreement to any affiliate of the company, any
other company that obtains control of the company, or any other other company that obtains control of the company, or any other
company that buys assets of the company related to the website. company that buys assets of the company related to the website.
Any attempted assignment against these terms has no legal Any attempted assignment against these terms has no legal effect.
effect.
</p> </p>
<p> <p>
Neither the exercise of any right under this Agreement, nor Neither the exercise of any right under this Agreement, nor waiver
waiver of any breach of this Agreement, waives any other breach of any breach of this Agreement, waives any other breach of this
of this Agreement. Agreement.
</p> </p>
<p> <p>
These terms embody all the terms of agreement between you and These terms embody all the terms of agreement between you and the
the company about use of the website. These terms entirely company about use of the website. These terms entirely replace any
replace any other agreements about your use of the website, other agreements about your use of the website, written or not.
written or not.
</p> </p>
<h4 id='contact'>Contact</h4> <h4 id='contact'>Contact</h4>
<p> <p>
@ -408,22 +401,21 @@ const TermsOfServicePage = () => {
</p> </p>
<p> <p>
The company may notify you under these terms using the e-mail The company may notify you under these terms using the e-mail
address you provide for your account on the website, or by address you provide for your account on the website, or by posting
posting a message to the homepage of the website or your account a message to the homepage of the website or your account page.
page.
</p> </p>
<h4 id='changes'>Changes</h4> <h4 id='changes'>Changes</h4>
<p> <p>
The company last updated these terms on May 25, 2018, and may The company last updated these terms on May 25, 2018, and may
update these terms again. The company will post all updates to update these terms again. The company will post all updates to the
the website. For updates that contain substantial changes, the website. For updates that contain substantial changes, the company
company agrees to e-mail you, if youve created an account and agrees to e-mail you, if youve created an account and provided a
provided a valid e-mail address. The company may also announce valid e-mail address. The company may also announce updates with
updates with special messages or alerts on the website. special messages or alerts on the website.
</p> </p>
<p> <p>
Once you get notice of an update to these terms, you must agree Once you get notice of an update to these terms, you must agree to
to the new terms in order to keep using the website. the new terms in order to keep using the website.
</p> </p>
</Col> </Col>
</Row> </Row>