├── .babelrc
├── .gitignore
├── src
├── copied
│ ├── assets
│ │ ├── games
│ │ │ └── invaders
│ │ │ │ ├── bullet.png
│ │ │ │ ├── explode.png
│ │ │ │ ├── invader.png
│ │ │ │ ├── player.png
│ │ │ │ ├── starfield.png
│ │ │ │ ├── enemy-bullet.png
│ │ │ │ ├── invader32x32x4.png
│ │ │ │ ├── player - Copy.png
│ │ │ │ ├── starfield - Copy.png
│ │ │ │ ├── enemy-bullet - Copy.png
│ │ │ │ └── invader32x32x4 - Copy.png
│ │ └── fonts
│ │ │ └── font-awesome
│ │ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ │ ├── less
│ │ │ ├── screen-reader.less
│ │ │ ├── fixed-width.less
│ │ │ ├── larger.less
│ │ │ ├── list.less
│ │ │ ├── core.less
│ │ │ ├── stacked.less
│ │ │ ├── font-awesome.less
│ │ │ ├── bordered-pulled.less
│ │ │ ├── rotated-flipped.less
│ │ │ ├── path.less
│ │ │ ├── animated.less
│ │ │ ├── mixins.less
│ │ │ └── variables.less
│ │ │ ├── scss
│ │ │ ├── _fixed-width.scss
│ │ │ ├── _screen-reader.scss
│ │ │ ├── _larger.scss
│ │ │ ├── _list.scss
│ │ │ ├── _core.scss
│ │ │ ├── font-awesome.scss
│ │ │ ├── _stacked.scss
│ │ │ ├── _bordered-pulled.scss
│ │ │ ├── _rotated-flipped.scss
│ │ │ ├── _path.scss
│ │ │ ├── _animated.scss
│ │ │ ├── _mixins.scss
│ │ │ └── _variables.scss
│ │ │ ├── HELP-US-OUT.txt
│ │ │ └── css
│ │ │ └── font-awesome.min.css
│ └── index.html
├── store
│ ├── constants.js
│ ├── mutations.js
│ ├── actions.js
│ └── store.js
├── styles.scss
├── vue
│ ├── Routing.js
│ └── VueInitializer.js
├── app.js
├── components
│ └── SidebarComp.vue
├── views
│ ├── Base.vue
│ ├── SpaceInvaders.vue
│ ├── Paint.vue
│ ├── Shopping.vue
│ └── GettingStarted.vue
└── games
│ └── SpaceInvaders.js
├── .env.example
├── contracts
├── invaders_dawn2
│ ├── invaders.abi
│ ├── invaders.hpp
│ ├── invaders.cpp
│ └── invaders.wast
├── paint_dawn4
│ └── paint.cpp
├── invaders_dawn3
│ └── invaders.cpp
└── invaders_dawn4
│ └── invaders.cpp
├── tests
└── eosjs.spec.js
├── package.json
├── readme.md
└── webpack.config.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-3"]
3 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | node_modules/
3 | build/
4 | .env
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/bullet.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/explode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/explode.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/invader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/invader.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/player.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/player.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/starfield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/starfield.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/enemy-bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/enemy-bullet.png
--------------------------------------------------------------------------------
/src/store/constants.js:
--------------------------------------------------------------------------------
1 |
2 | export const SET_SCATTER = 'setScatter';
3 | export const SET_EOSJS = 'setEosjs';
4 | export const SET_IDENTITY = 'setIdentity';
5 |
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/invader32x32x4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/invader32x32x4.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/player - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/player - Copy.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/starfield - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/starfield - Copy.png
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/enemy-bullet - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/enemy-bullet - Copy.png
--------------------------------------------------------------------------------
/.env.example:
--------------------------------------------------------------------------------
1 | PRIVATE_KEY=asdf
2 | ACCOUNT_NAME=asdf
3 | NETWORK_HOST="192.168.56.101"
4 | NETWORK_PORT=8888
5 |
6 | SPACE_INVADERS_OWNER_PKEY=asdf
7 | SPACE_INVADERS_OWNER_NAME=asdf
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/fonts/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/copied/assets/games/invaders/invader32x32x4 - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/games/invaders/invader32x32x4 - Copy.png
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSEssentials2/Scatter-Demos/HEAD/src/copied/assets/fonts/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/store/mutations.js:
--------------------------------------------------------------------------------
1 | import * as Mutations from './constants'
2 |
3 | export const mutations = {
4 | [Mutations.SET_SCATTER]:(state, scatter) => state.scatter = scatter,
5 | [Mutations.SET_EOSJS]:(state, eosjs) => state.eos = eosjs,
6 | [Mutations.SET_IDENTITY]:(state, identity) => state.identity = identity,
7 | };
--------------------------------------------------------------------------------
/src/store/actions.js:
--------------------------------------------------------------------------------
1 | import * as Actions from './constants'
2 |
3 | export const actions = {
4 | [Actions.SET_SCATTER]:({commit}, scatter) => commit(Actions.SET_SCATTER, scatter),
5 | [Actions.SET_EOSJS]:({commit}, eosjs) => commit(Actions.SET_EOSJS, eosjs),
6 | [Actions.SET_IDENTITY]:({commit}, identity) => commit(Actions.SET_IDENTITY, identity),
7 |
8 | };
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/src/styles.scss:
--------------------------------------------------------------------------------
1 | div, figure, section, nav, article, input, textarea, a, h1, h2, h3, p {
2 | padding:0; margin:0; box-sizing: border-box;
3 | }
4 |
5 | body {
6 | padding:0;
7 | margin:0;
8 | overflow-y:scroll;
9 | word-break: break-word;
10 | font-family: 'Raleway', sans-serif;
11 | }
12 |
13 | a {
14 | display:inherit;
15 | text-decoration: inherit;
16 | color:inherit;
17 | }
18 |
19 | $lightred: #5da1ba;
20 | $midred: #6bb9d5;
21 | $darkred: #5da1ba;
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/src/store/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex';
3 |
4 | import {mutations} from './mutations';
5 | import {actions} from './actions';
6 |
7 | Vue.use(Vuex);
8 |
9 | const state = {
10 | scatter:null,
11 | eos:null,
12 | identity:null,
13 | };
14 |
15 | const getters = {
16 | account:state => state.scatter.identity.account,
17 | httpEndpoint:state => `http://${process.env.NETWORK_HOST}:${process.env.NETWORK_PORT}`,
18 | eosNetwork:state => ({blockchain:'eos', host:process.env.NETWORK_HOST, port:process.env.NETWORK_PORT})
19 | };
20 |
21 | export const store = new Vuex.Store({
22 | state,
23 | getters,
24 | mutations,
25 | actions
26 | })
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/contracts/invaders_dawn2/invaders.abi:
--------------------------------------------------------------------------------
1 | {
2 | "types": [],
3 | "structs": [{
4 | "name": "score",
5 | "base": "",
6 | "fields": {
7 | "identity": "name",
8 | "score":"uint64",
9 | "signatory":"name",
10 | "proprietor":"name"
11 | }
12 | },{
13 | "name": "owner",
14 | "base": "",
15 | "fields": {
16 | "proprietor":"name"
17 | }
18 | }],
19 | "actions": [{
20 | "action_name": "score",
21 | "type": "score"
22 | },{
23 | "action_name": "owner",
24 | "type": "owner"
25 | }],
26 | "tables": [{
27 | "table_name": "scores",
28 | "type": "score",
29 | "index_type": "i64",
30 | "key_names" : ["name"],
31 | "key_types" : ["name"]
32 | },{
33 | "table_name": "owners",
34 | "type": "owner",
35 | "index_type": "i64",
36 | "key_names" : ["name"],
37 | "key_types" : ["name"]
38 | }
39 | ]
40 | }
41 |
--------------------------------------------------------------------------------
/src/copied/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Scatter Demos
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
27 |
28 |
--------------------------------------------------------------------------------
/contracts/invaders_dawn2/invaders.hpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | using namespace eosio;
5 | namespace invaders {
6 |
7 | struct score {
8 | name identity;
9 | uint64_t score;
10 | name signatory;
11 | name proprietor;
12 | };
13 |
14 | struct owner {
15 | name proprietor;
16 | };
17 |
18 | using scores = eosio::table<
19 | N(invaders),
20 | N(invaders),
21 | N(scores),
22 | score,
23 | name
24 | >;
25 |
26 | using owners = eosio::table<
27 | N(invaders),
28 | N(invaders),
29 | N(owners),
30 | owner,
31 | name
32 | >;
33 |
34 | inline owner get_owner(){
35 | owner found_owner;
36 | owners::front(found_owner);
37 | return found_owner;
38 | }
39 |
40 | inline bool has_owner(){
41 | owner found_owner;
42 | return owners::front(found_owner);
43 | }
44 | }
45 |
46 |
47 |
--------------------------------------------------------------------------------
/src/vue/Routing.js:
--------------------------------------------------------------------------------
1 | import GettingStarted from '../views/GettingStarted.vue'
2 | import Shopping from '../views/Shopping.vue'
3 | import SpaceInvaders from '../views/SpaceInvaders.vue'
4 | import Paint from '../views/Paint.vue'
5 |
6 | export const RouteNames = {
7 | INDEX:'index',
8 | SHOPPING:'shopping',
9 | SPACE_INVADERS:'spaceInvaders',
10 | PAINT:'paint',
11 | };
12 |
13 | const RouteViews = {
14 | [RouteNames.INDEX]:GettingStarted,
15 | [RouteNames.SHOPPING]:Shopping,
16 | [RouteNames.SPACE_INVADERS]:SpaceInvaders,
17 | [RouteNames.PAINT]:Paint,
18 | };
19 |
20 | export class Routing {
21 |
22 | static builder(){
23 | const routeNames = Object.keys(RouteNames).map(key => RouteNames[key]);
24 |
25 | let routesBuilder = {};
26 | routeNames.map(routeName => {
27 | routesBuilder[routeName] = {
28 | path:routeName === RouteNames.INDEX ? '' : '/'+routeName,
29 | name:routeName,
30 | component: RouteViews[routeName]
31 | }
32 | });
33 |
34 | return routesBuilder;
35 | }
36 |
37 | static routes(){
38 | return Object.keys(Routing.builder())
39 | .map(routeName => Routing.builder()[routeName]);
40 | }
41 | }
--------------------------------------------------------------------------------
/contracts/invaders_dawn2/invaders.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace eosio;
4 | using namespace invaders;
5 |
6 | void apply_score( const score& message ){
7 | require_auth(message.signatory);
8 | require_auth(message.proprietor);
9 | auto existing_owner = get_owner();
10 | assert(existing_owner.proprietor == message.proprietor, "incorrect contract owner");
11 | score score{message.identity, message.score};
12 | scores::store( score );
13 | }
14 |
15 | void apply_owner( const owner& message ){
16 | require_auth(message.proprietor);
17 | auto owner_exists = has_owner();
18 | assert(!owner_exists, "owner is already set");
19 |
20 | owner owner{message.proprietor};
21 | owners::store( owner );
22 | print("Added owner: ", owner.proprietor, " \n");
23 | }
24 |
25 | extern "C" {
26 | void init() {}
27 |
28 | void apply( uint64_t code, uint64_t action ) {
29 | eosio::print( "invaders Contract Apply: ", eosio::name(code), "->", eosio::name(action), "\n" );
30 |
31 | if( code == N(invaders) ) {
32 | if( action == N(score) ) apply_score(current_message< score >());
33 | if( action == N(owner) ) apply_owner(current_message< owner >());
34 | }
35 | }
36 |
37 | } // extern "C"
38 |
--------------------------------------------------------------------------------
/tests/eosjs.spec.js:
--------------------------------------------------------------------------------
1 | const assert = require('assert')
2 | const Eos = require('eosjs');
3 |
4 | describe('eosjs', () => {
5 |
6 | const initaPrivate = '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3';
7 | const initaPublic = 'EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV';
8 | const keyProvider = initaPrivate;
9 | const eos = Eos.Localnet({httpEndpoint: 'http://192.168.56.101:8888', keyProvider});
10 |
11 | function randomAccountName(){
12 | const size = Math.random() * 8 + 2;
13 | let text = "";
14 | const possible = "abcdefghij12345.";
15 | for(let i=0; i {
20 | const newAccountName = randomAccountName();
21 | console.log('newAccountName', newAccountName)
22 | eos.newaccount({
23 | creator: 'inita',
24 | name: newAccountName,
25 | owner: initaPublic,
26 | active: initaPublic,
27 | recovery: 'inita',
28 | deposit: '1 EOS'
29 | }).then(account => {
30 | console.log(account);
31 | done();
32 | })
33 | });
34 |
35 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "scatter-demos",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "set SCATTER_DEMOS_ENV=development&& webpack --watch",
8 | "build": "set SCATTER_DEMOS_ENV=production&& set NODE_ENV=production&& webpack"
9 | },
10 | "author": "",
11 | "license": "ISC",
12 | "dependencies": {
13 | "dotenv-webpack": "^1.5.5",
14 | "eosjs": "^11.0.0",
15 | "eosjs-ecc": "^4.0.0",
16 | "expose-loader": "^0.7.5",
17 | "murmurhash": "0.0.2",
18 | "phaser-ce": "^2.10.5",
19 | "pixi": "^0.3.1",
20 | "vue": "^2.5.16",
21 | "vue-color": "^2.4.6",
22 | "vue-router": "^3.0.1",
23 | "vuex": "^3.0.1"
24 | },
25 | "devDependencies": {
26 | "babel-core": "^6.26.3",
27 | "babel-loader": "^7.1.4",
28 | "babel-preset-es2015": "^6.24.1",
29 | "babel-preset-stage-3": "^6.24.1",
30 | "copy-webpack-plugin": "^4.5.1",
31 | "css-loader": "^0.28.11",
32 | "extract-text-webpack-plugin": "^3.0.2",
33 | "file-loader": "^1.1.11",
34 | "ignore-emit-webpack-plugin": "^0.2.1",
35 | "node-sass": "^4.9.0",
36 | "sass-loader": "^6.0.7",
37 | "uglifyjs-webpack-plugin": "^1.2.5",
38 | "vue-loader": "^13.7.0",
39 | "vue-template-compiler": "^2.5.16",
40 | "webpack": "^3.12.0"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/vue/VueInitializer.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 |
3 | import VueRouter from 'vue-router'
4 | import {Routing} from './Routing';
5 | import {store} from '../store/store'
6 | import * as Actions from '../store/constants'
7 |
8 | /***
9 | * Sets up an instance of Vue.
10 | * This is shared between the popup.js and prompt.js scripts.
11 | */
12 | export default class VueInitializer {
13 |
14 | constructor(routes,
15 | components,
16 | middleware = () => {},
17 | routerCallback = () => {}){
18 | this.setupVuePlugins();
19 | this.registerComponents(components);
20 | const router = this.setupRouting(routes, middleware);
21 |
22 | this.setupVue(router);
23 | routerCallback(router, store);
24 | }
25 |
26 | setupVuePlugins(){
27 | Vue.use(VueRouter);
28 | }
29 |
30 | registerComponents(components){
31 | components.map(component => {
32 | Vue.component(component.tag, component.vue);
33 | });
34 | }
35 |
36 | setupRouting(routes, middleware){
37 | const router = new VueRouter({routes});
38 | router.beforeEach((to, from, next) => middleware(to, next, store));
39 | return router;
40 | }
41 |
42 | setupVue(router){
43 | const app = new Vue({router, store});
44 | app.$mount('#scatter-demos');
45 | document.getElementById('scatter-demos').removeAttribute('id')
46 | }
47 |
48 | }
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Scatter Demos
2 |
3 | This is a set of integration demos using `eosjs` and the Scatter extension.
4 |
5 | Demos currently include
6 |
7 | ## Demos Currently Available
8 |
9 | #### Shopping Demo
10 | A small demo showing Scatter's ability to return transactions with private data such as shipping info,
11 | email, and full name. This can be used to collect data necessary for providing physical products without
12 | having to lead users through tedious forms.
13 |
14 | #### Space Invaders
15 | Showcase of the ability to upload high scores to the EOS blockchain and the use of Identity names as
16 | usernames instead of EOS account names which provides continuity and a level of abstraction over a
17 | user's private data.
18 |
19 |
20 | ## Developers
21 |
22 | You will need an http server to run this project locally. We recommend `http-server`.
23 |
24 | #### Installing Locally
25 | - Clone the repo `git clone https://github.com/EOSEssentials/Scatter-Demos.git`
26 | - Go into the directory and install the dependencies with `npm i`
27 | - Copy the `.env.example` to `.env` and fill out the properties as you need. ( You will need a local EOS dawn x2 node
28 | running for this repository. You will also need to upload the contracts in the `contracts` folder )
29 | - Build the project using `npm run build`
30 | - Point your http server to the `build` directory.
31 |
32 | #### Using http-server
33 | - Run the `npm i -g http-server` command to install `http-server` globally.
34 | - Go into the `build` directory.
35 | - Run `http-server`
36 |
37 | #### The .env File
38 |
39 | - PRIVATE_KEY: The private key of a faucet account.
40 | - ACCOUNT_NAME: The account name of the faucet account linked to the private key.
41 | - NETWORK_HOST: The URI of the local EOS node you are running.
42 | - NETWORK_PORT: The port of the local EOS node you are running.
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/app.js:
--------------------------------------------------------------------------------
1 | import VueInitializer from './vue/VueInitializer';
2 | import {Routing} from './vue/Routing';
3 | import * as Actions from './store/constants'
4 | import {RouteNames} from './vue/Routing'
5 |
6 | import * as Eos from 'eosjs'
7 | // import ecc from 'eosjs-ecc';
8 | const {ecc} = Eos.modules
9 |
10 | import { Slider, Material, Chrome } from 'vue-color'
11 | import SidebarComp from './components/SidebarComp.vue'
12 | import ViewBase from './views/Base.vue'
13 |
14 | class App {
15 |
16 | constructor(){
17 | const routes = Routing.routes();
18 | const components = [
19 | {tag:'view-base', vue:ViewBase},
20 | {tag:'sidebar', vue:SidebarComp},
21 | {tag:'slider-picker', vue:Slider},
22 | {tag:'material-picker', vue:Material},
23 | {tag:'chrome-picker', vue:Chrome},
24 | ];
25 |
26 | const middleware = (to, next, store) => {
27 | next();
28 | };
29 |
30 | new VueInitializer(routes, components, middleware, (router, store) => {
31 | document.addEventListener('scatterLoaded', () => {
32 |
33 | window.scatter.requireVersion(3.0);
34 | store.dispatch(Actions.SET_SCATTER, window.scatter);
35 | store.dispatch(Actions.SET_IDENTITY, window.scatter.identity);
36 | // window.scatter.authenticate()
37 | // .then(res => console.log('auth res', res))
38 | // .catch(err => console.log('auth err', err))
39 |
40 | const host = process.env.NETWORK_HOST;
41 | const port = process.env.NETWORK_PORT;
42 | const network = { blockchain:'eos', host, port };
43 |
44 | const eosOptions = {};
45 | const eos = store.state.scatter.eos( network, Eos.Localnet, eosOptions );
46 | store.dispatch(Actions.SET_EOSJS, eos);
47 | window.scatter = null;
48 | })
49 | });
50 | }
51 |
52 | }
53 |
54 | const popup = new App();
55 |
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const webpack = require('webpack')
3 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
5 | const IgnoreEmitPlugin = require('ignore-emit-webpack-plugin');
6 | const CopyWebpackPlugin = require('copy-webpack-plugin');
7 | const Dotenv = require('dotenv-webpack');
8 |
9 |
10 | const production = process.env.SCATTER_DEMOS_ENV === 'production';
11 | const vueAlias = `vue/dist/vue${production ? '.min' : ''}.js`;
12 | const productionPlugins = !production ? [] : [
13 | new UglifyJsPlugin()
14 | ];
15 |
16 | function replaceSuffixes(file){
17 | return file
18 | .replace('scss', 'css')
19 | }
20 |
21 | const filesToPack = [
22 | 'app.js',
23 | 'styles.scss'
24 | ];
25 | const entry = filesToPack.reduce((o, file) => Object.assign(o, {[replaceSuffixes(file)]: `./src/${file}`}), {});
26 |
27 | const phaserModulePath = path.join(__dirname, '/node_modules/phaser/');
28 |
29 | module.exports = {
30 | entry,
31 | output: {
32 | path: path.resolve(__dirname, './build'),
33 | filename: '[name]'
34 | },
35 | resolve: {
36 | alias: {
37 | vue: vueAlias
38 | },
39 | modules: [ path.join(__dirname, "node_modules") ]
40 | },
41 | module: {
42 | loaders: [
43 | { test: /\.js$/, loader: 'babel-loader', query: { presets: ['es2015', 'stage-3'] }, exclude: /node_modules/ },
44 | ],
45 | rules:[
46 | { test: /\.(sass|scss)$/, loader: ExtractTextPlugin.extract(['css-loader', 'sass-loader']) },
47 | { test: /\.(html|png)$/, loader: 'file-loader', options: { name: '[name].[ext]' } },
48 | { test: /\.vue$/, loader: 'vue-loader', options: {
49 | loaders: {
50 | js: 'babel-loader',
51 | scss: 'vue-style-loader!css-loader!sass-loader'
52 | }
53 | } }
54 | ]
55 | },
56 | plugins: [
57 | new ExtractTextPlugin({ filename: '[name]', allChunks: true }),
58 | new IgnoreEmitPlugin(/\.omit$/),
59 | new CopyWebpackPlugin([`./src/copied`]),
60 | new Dotenv({
61 | path: './.env',
62 | safe: true
63 | })
64 | ].concat(productionPlugins),
65 | stats: { colors: true },
66 | devtool: 'inline-source-map'
67 | }
--------------------------------------------------------------------------------
/contracts/paint_dawn4/paint.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | using namespace eosio;
4 | using namespace std;
5 |
6 | class paint : contract {
7 | using contract::contract;
8 |
9 | static constexpr uint64_t code = N(paint);
10 |
11 | inline static uint64_t makeUUID(string s){
12 | return std::hash{}(s);
13 | }
14 |
15 | // @abi table pixels i64
16 | struct Pixel {
17 | uint64_t pos;
18 | uint64_t x;
19 | uint64_t y;
20 | string color;
21 | string username;
22 |
23 | uint64_t primary_key() const { return pos; }
24 | EOSLIB_SERIALIZE( Pixel, (pos)(x)(y)(color)(username) )
25 | };
26 |
27 | // @abi table timestamps i64
28 | struct Timestamp {
29 | uint64_t timestamp;
30 | EOSLIB_SERIALIZE( Timestamp, (timestamp) )
31 | };
32 |
33 | typedef multi_index Pixels;
34 | typedef singleton Timestamps;
35 | typedef singleton Owner;
36 |
37 | public:
38 | paint( account_name self ) : contract(self){}
39 |
40 | void own( account_name owner ){
41 | require_auth(_self);
42 | Owner(code,_self).set(owner,_self);
43 | }
44 |
45 | void fill( uint64_t x, uint64_t y, string color, string username, string scatter_hash, account_name account ){
46 | require_auth(Owner(code,_self).get_or_default(_self));
47 | require_auth(account);
48 | eosio_assert(x >= 0 && x <= 99, "X is out of bounds");
49 | eosio_assert(y >= 0 && y <= 49, "Y is out of bounds");
50 |
51 | uint64_t scatter = makeUUID(scatter_hash);
52 |
53 | uint64_t pos = makeUUID(to_string(x) + 'x' + to_string(y));
54 | eosio_assert(Timestamps(code,scatter).get_or_default(Timestamp{0}).timestamp+(60*5) < now(), "You must wait 5 minutes between pixels");
55 |
56 | Pixels pixels(_self,_self);
57 | auto existing = pixels.find(pos);
58 | if(existing == pixels.end())
59 | pixels.emplace( _self, [&](auto& record){ record = Pixel{pos, x, y, color, username}; });
60 | else pixels.modify(existing, 0, [&](auto& record){ record = Pixel{pos, x, y, color, username}; });
61 |
62 | Timestamps(code,scatter).set(Timestamp{now()},_self);
63 | }
64 |
65 | };
66 |
67 | EOSIO_ABI( paint, (own)(fill) )
--------------------------------------------------------------------------------
/src/components/SidebarComp.vue:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
40 |
41 |
--------------------------------------------------------------------------------
/contracts/invaders_dawn3/invaders.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | using namespace eosio;
5 | using namespace std;
6 |
7 | class invaders : public contract {
8 | public:
9 | using contract::contract;
10 |
11 |
12 | /***
13 | * Constructor
14 | ****************************************************/
15 |
16 | invaders( account_name self )
17 | :contract(self){}
18 |
19 |
20 |
21 | /***
22 | * Actions
23 | ****************************************************/
24 |
25 | void scored( string username, uint64_t score, account_name identity_account, account_name application ){
26 | eosio_assert(state_config(N(invaders),_self).exists(), "Contract does not yet have an application key");
27 | eosio_assert(state_config(N(invaders),_self).get().application == application, "Application key does not match");
28 | require_auth(identity_account);
29 | require_auth(application);
30 |
31 |
32 | TABLE_Scores _scores(_self, _self);
33 |
34 | hash index = usernameToHash(username);
35 | auto record = _scores.find( index );
36 | if(record == _scores.end()) _scores.emplace( identity_account, [&]( auto& a ) {
37 | a.index = index;
38 | a.username = username;
39 | a.score = score;
40 | a.identity_account = identity_account;
41 | });
42 | else _scores.modify( record, 0, [&]( auto& a ) {
43 | eosio_assert(record->identity_account == identity_account, "User no longer has this account");
44 | eosio_assert(record->score < score, "Previous score was higher");
45 | a.score = score;
46 | });
47 | }
48 |
49 | void own( account_name application ){
50 | require_auth(_self);
51 | require_auth(application);
52 | eosio_assert(!state_config(N(invaders),_self).exists(), "Application owner already exists");
53 | state_config(N(invaders),_self).set(config{application}, _self);
54 | }
55 |
56 | void del( string username ){
57 | require_auth(_self);
58 |
59 | TABLE_Scores _scores(_self, _self);
60 |
61 | auto itr = _scores.find( usernameToHash(username) );
62 | eosio_assert(itr != _scores.end(), "No such username");
63 | _scores.erase(itr);
64 | }
65 |
66 |
67 | private:
68 | typedef uint64_t hash;
69 | /***
70 | * Structs
71 | ****************************************************/
72 |
73 | // @abi table scores i64
74 | struct scores {
75 | hash index;
76 | string username;
77 | uint64_t score;
78 | account_name identity_account;
79 |
80 | hash primary_key()const { return index; }
81 | EOSLIB_SERIALIZE( scores, (index)(username)(score)(identity_account) )
82 | };
83 |
84 | static hash usernameToHash(string username){
85 | return std::hash{}(username);
86 | }
87 |
88 | struct config {
89 | account_name application;
90 |
91 | EOSLIB_SERIALIZE( config, (application) )
92 | };
93 |
94 |
95 | /***
96 | * Tables
97 | ****************************************************/
98 |
99 | typedef multi_index TABLE_Scores;
100 | typedef singleton state_config;
101 | };
102 |
103 | EOSIO_ABI( invaders, (scored)(own)(del) )
104 |
--------------------------------------------------------------------------------
/contracts/invaders_dawn4/invaders.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | using namespace eosio;
5 | using namespace std;
6 |
7 | class invaders : public contract {
8 | public:
9 | using contract::contract;
10 |
11 |
12 | /***
13 | * Constructor
14 | ****************************************************/
15 |
16 | invaders( account_name self )
17 | :contract(self){}
18 |
19 |
20 |
21 | /***
22 | * Actions
23 | ****************************************************/
24 |
25 | void scored( string username, uint64_t score, account_name identity_account, account_name application ){
26 | eosio_assert(state_config(N(invaders),_self).exists(), "Contract does not yet have an application key");
27 | eosio_assert(state_config(N(invaders),_self).get().application == application, "Application key does not match");
28 | require_auth(identity_account);
29 | require_auth(application);
30 |
31 |
32 | TABLE_Scores _scores(_self, _self);
33 |
34 | hash index = usernameToHash(username);
35 | auto record = _scores.find( index );
36 | if(record == _scores.end()) _scores.emplace( identity_account, [&]( auto& a ) {
37 | a.index = index;
38 | a.username = username;
39 | a.score = score;
40 | a.identity_account = identity_account;
41 | });
42 | else _scores.modify( record, 0, [&]( auto& a ) {
43 | eosio_assert(record->identity_account == identity_account, "User no longer has this account");
44 | eosio_assert(record->score < score, "Previous score was higher");
45 | a.score = score;
46 | });
47 | }
48 |
49 | void own( account_name application ){
50 | require_auth(_self);
51 | require_auth(application);
52 | eosio_assert(!state_config(N(invaders),_self).exists(), "Application owner already exists");
53 | state_config(N(invaders),_self).set(config{application}, _self);
54 | }
55 |
56 | void del( string username ){
57 | require_auth(_self);
58 |
59 | TABLE_Scores _scores(_self, _self);
60 |
61 | auto itr = _scores.find( usernameToHash(username) );
62 | eosio_assert(itr != _scores.end(), "No such username");
63 | _scores.erase(itr);
64 | }
65 |
66 |
67 | private:
68 | typedef uint64_t hash;
69 | /***
70 | * Structs
71 | ****************************************************/
72 |
73 | // @abi table scores i64
74 | struct scores {
75 | hash index;
76 | string username;
77 | uint64_t score;
78 | account_name identity_account;
79 |
80 | hash primary_key()const { return index; }
81 | EOSLIB_SERIALIZE( scores, (index)(username)(score)(identity_account) )
82 | };
83 |
84 | static hash usernameToHash(string username){
85 | return std::hash{}(username);
86 | }
87 |
88 | struct config {
89 | account_name application;
90 |
91 | EOSLIB_SERIALIZE( config, (application) )
92 | };
93 |
94 |
95 | /***
96 | * Tables
97 | ****************************************************/
98 |
99 | typedef multi_index TABLE_Scores;
100 | typedef singleton state_config;
101 | };
102 |
103 | EOSIO_ABI( invaders, (scored)(own)(del) )
104 |
--------------------------------------------------------------------------------
/src/views/Base.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 | Sorry!
16 | There is no point to display this page in mobile mode
17 | since Chrome on mobile does not support extensions. Please view from your desktop/laptop.
18 |
19 |
20 |
21 |
22 |
23 |
24 |
45 |
46 |
--------------------------------------------------------------------------------
/src/views/SpaceInvaders.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Let's play some Space Invaders!
5 |
6 |
7 | We won't be recording every movement into the blockchain. What we will be storing is a list of high scores.
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
18 | You're going to need to download and install Scatter first before you can do anything else on this application.
19 |
20 |
21 | Go To Download Scatter
22 |
23 |
24 |
25 |
26 |
31 |
32 | In order to save your high scores we're going to need your Identity.
33 |
34 |
35 | Provide Identity
36 |
37 |
38 |
45 |
46 |
47 |
48 | Your Identity name is your Player name.
49 |
50 |
51 | We're going to be using your Identity name to record high scores on the blockchain.
52 |
53 |
54 |
55 | Setting some permissions
56 |
57 |
58 | You probably don't want to have to approve the transaction every time you beat your high score.
59 | You can click the big checkbox on the lower left side of the "Signature Request" popup to enable a whitelist for
60 | this transaction, and then select the checkbox next to the score which will allow the score to change every time
61 | without affecting the whitelist permission.
62 |
63 |
64 |
65 |
66 | Auto Lock
67 |
68 |
69 | If you have lowered your Auto Lock settings it might lock while you're playing and you wont be able to
70 | record your score.
71 |
72 |
73 |
74 |
75 |
76 |
77 |
80 |
81 |
82 | Provide an Identity to start playing
83 |
84 |
85 |
86 |
87 |
88 |
89 |
98 |
99 |
100 |
101 | High Scores.
102 |
103 |
104 |
105 | Record your high scores on the blockchain.
106 |
107 |
108 |
109 |
110 |
111 | #{{rank+1}} {{highScore.score}} - {{highScore.username}}
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
223 |
224 |
--------------------------------------------------------------------------------
/src/views/Paint.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 | You're going to need to setup Scatter first.
10 |
11 |
12 | Go To Getting Started
13 |
14 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 | Provide Identity
27 |
28 |
29 |
30 |
31 |
34 |
35 |
36 |
37 | Color: {{popped.color}} | Painted By: {{popped.name}}
38 |
39 |
40 |
41 |
42 |
46 |
47 |
48 |
49 |
50 |
179 |
180 |
--------------------------------------------------------------------------------
/src/games/SpaceInvaders.js:
--------------------------------------------------------------------------------
1 |
2 | import PIXI from 'expose-loader?PIXI!phaser-ce/build/custom/pixi.js';
3 | import p2 from 'expose-loader?p2!phaser-ce/build/custom/p2.js';
4 | import Phaser from 'expose-loader?Phaser!phaser-ce/build/custom/phaser-split.js';
5 |
6 | let game = null;
7 |
8 | let player;
9 | let aliens;
10 | let bullet;
11 | let bullets;
12 | let enemyBullets;
13 | let bulletTime = 0;
14 | let cursors;
15 | let fireButton;
16 | let explosions;
17 | let starfield;
18 | let score = 0;
19 | let scoreString = '';
20 | let scoreText;
21 | let lives;
22 | let enemyBullet;
23 | let firingTimer = 0;
24 | let stateText;
25 | let livingEnemies = [];
26 | let speed = 0;
27 | let level = 0;
28 | let gameOverMethod = null;
29 |
30 | export function load(cb){
31 | gameOverMethod = cb;
32 | game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
33 | speed = 1;
34 | level = 1;
35 | }
36 |
37 | export function preload() {
38 | game.load.image('bullet', 'assets/games/invaders/bullet.png');
39 | game.load.image('enemyBullet', 'assets/games/invaders/enemy-bullet.png');
40 | game.load.spritesheet('invader', 'assets/games/invaders/invader32x32x4.png', 32, 32);
41 | game.load.image('ship', 'assets/games/invaders/player.png');
42 | game.load.spritesheet('kaboom', 'assets/games/invaders/explode.png', 128, 128);
43 | game.load.image('starfield', 'assets/games/invaders/starfield.png');
44 | game.load.image('background', 'assets/games/starstruck/background2.png');
45 | }
46 |
47 | export function create() {
48 |
49 |
50 | game.physics.startSystem(Phaser.Physics.ARCADE);
51 |
52 | // The scrolling starfield background
53 | starfield = game.add.tileSprite(0, 0, 800, 600, 'starfield');
54 |
55 | // Our bullet group
56 | bullets = game.add.group();
57 | bullets.enableBody = true;
58 | bullets.physicsBodyType = Phaser.Physics.ARCADE;
59 | bullets.createMultiple(30, 'bullet');
60 | bullets.setAll('anchor.x', 0.5);
61 | bullets.setAll('anchor.y', 1);
62 | bullets.setAll('outOfBoundsKill', true);
63 | bullets.setAll('checkWorldBounds', true);
64 |
65 | // The enemy's bullets
66 | enemyBullets = game.add.group();
67 | enemyBullets.enableBody = true;
68 | enemyBullets.physicsBodyType = Phaser.Physics.ARCADE;
69 | enemyBullets.createMultiple(30, 'enemyBullet');
70 | enemyBullets.setAll('anchor.x', 0.5);
71 | enemyBullets.setAll('anchor.y', 1);
72 | enemyBullets.setAll('outOfBoundsKill', true);
73 | enemyBullets.setAll('checkWorldBounds', true);
74 |
75 | // The hero!
76 | player = game.add.sprite(400, 500, 'ship');
77 | player.anchor.setTo(0.5, 0.5);
78 | game.physics.enable(player, Phaser.Physics.ARCADE);
79 |
80 | // The baddies!
81 | aliens = game.add.group();
82 | aliens.enableBody = true;
83 | aliens.physicsBodyType = Phaser.Physics.ARCADE;
84 |
85 | createAliens();
86 |
87 | // The score
88 | scoreString = 'Score : ';
89 | scoreText = game.add.text(10, 10, scoreString + score, { font: '34px Arial', fill: '#fff' });
90 |
91 | // Lives
92 | lives = game.add.group();
93 | game.add.text(game.world.width - 100, 10, 'Lives : ', { font: '34px Arial', fill: '#fff' });
94 |
95 | // Text
96 | stateText = game.add.text(game.world.centerX,game.world.centerY,' ', { font: '84px Arial', fill: '#fff' });
97 | stateText.anchor.setTo(0.5, 0.5);
98 | stateText.visible = false;
99 |
100 | for (let i = 0; i < 3; i++)
101 | {
102 | let ship = lives.create(game.world.width - 100 + (30 * i), 60, 'ship');
103 | ship.anchor.setTo(0.5, 0.5);
104 | ship.angle = 90;
105 | ship.alpha = 0.4;
106 | }
107 |
108 | // An explosion pool
109 | explosions = game.add.group();
110 | explosions.createMultiple(30, 'kaboom');
111 | explosions.forEach(setupInvader, this);
112 |
113 | // And some controls to play the game with
114 | cursors = game.input.keyboard.createCursorKeys();
115 | fireButton = game.input.keyboard.addKey(Phaser.Keyboard.SPACEBAR);
116 |
117 | }
118 |
119 | export function createAliens () {
120 |
121 | for (let y = 0; y < 4; y++)
122 | {
123 | for (let x = 0; x < 10; x++)
124 | {
125 | let alien = aliens.create(x * 48, y * 50, 'invader');
126 | alien.anchor.setTo(0.5, 0.5);
127 | alien.animations.add('fly', [ 0, 1, 2, 3 ], 20, true);
128 | alien.play('fly');
129 | alien.body.moves = false;
130 | }
131 | }
132 |
133 | aliens.x = 100;
134 | aliens.y = 50;
135 |
136 | // All this does is basically start the invaders moving. Notice we're moving the Group they belong to, rather than the invaders directly.
137 | let tween = game.add.tween(aliens).to( { x: 200 }, 2000, Phaser.Easing.Linear.None, true, 0, 1000, true);
138 |
139 | // When the tween loops it calls descend
140 | tween.onLoop.add(descend, this);
141 | }
142 |
143 | export function setupInvader (invader) {
144 |
145 | invader.anchor.x = 0.5;
146 | invader.anchor.y = 0.5;
147 | invader.animations.add('kaboom');
148 |
149 | }
150 |
151 | export function descend() {
152 |
153 | aliens.y += 10;
154 |
155 | }
156 |
157 | export function update() {
158 |
159 | // Scroll the background
160 | starfield.tilePosition.y += 2;
161 |
162 | if (player.alive)
163 | {
164 | // Reset the player, then check for movement keys
165 | player.body.velocity.setTo(0, 0);
166 |
167 |
168 | const {x, y} = player.body.position;
169 |
170 |
171 | if(cursors.left.isDown && x>0 && !cursors.right.isDown) player.body.velocity.x = -(200 + (level*10));
172 | if(cursors.right.isDown && x < game.width - player.width && !cursors.left.isDown) player.body.velocity.x = 200 + (level*10);
173 | if(cursors.up.isDown && y > 300 && !cursors.down.isDown) player.body.velocity.y = -(200 + (level*10));
174 | if(cursors.down.isDown && y < 530 && !cursors.up.isDown) player.body.velocity.y = 200 + (level*10);
175 |
176 | // Firing?
177 | if (fireButton.isDown) fireBullet();
178 | if (game.time.now > firingTimer) enemyFires();
179 |
180 | // Run collision
181 | game.physics.arcade.overlap(bullets, aliens, collisionHandler, null, this);
182 | game.physics.arcade.overlap(enemyBullets, player, enemyHitsPlayer, null, this);
183 | }
184 |
185 | }
186 |
187 | export function render() {
188 |
189 | // for (let i = 0; i < aliens.length; i++)
190 | // {
191 | // game.debug.body(aliens.children[i]);
192 | // }
193 |
194 | }
195 |
196 | export function collisionHandler (bullet, alien) {
197 |
198 | // When a bullet hits an alien we kill them both
199 | bullet.kill();
200 | alien.kill();
201 |
202 | // Increase the score
203 | score += 20;
204 | scoreText.text = scoreString + score;
205 |
206 | // And create an explosion :)
207 | let explosion = explosions.getFirstExists(false);
208 | explosion.reset(alien.body.x, alien.body.y);
209 | explosion.play('kaboom', 30, false, true);
210 |
211 | if (aliens.countLiving() === 0){
212 | enemyBullets.callAll('kill',this);
213 | nextLevel();
214 | }
215 |
216 |
217 | }
218 |
219 | export function enemyHitsPlayer (player,bullet) {
220 |
221 | bullet.kill();
222 |
223 | let live = lives.getFirstAlive();
224 |
225 | if (live) live.kill();
226 |
227 |
228 | // And create an explosion :)
229 | let explosion = explosions.getFirstExists(false);
230 | explosion.reset(player.body.x, player.body.y);
231 | explosion.play('kaboom', 30, false, true);
232 |
233 | // When the player dies
234 | if (lives.countLiving() < 1)
235 | {
236 | player.kill();
237 | enemyBullets.callAll('kill');
238 |
239 | stateText.text=" GAME OVER \n Click to Try Again!";
240 | stateText.visible = true;
241 | gameOverMethod(score);
242 | game.input.onTap.addOnce(gameOver,this);
243 | }
244 |
245 | }
246 |
247 | export function enemyFires () {
248 |
249 | // Grab the first bullet we can from the pool
250 | enemyBullet = enemyBullets.getFirstExists(false);
251 |
252 | livingEnemies.length=0;
253 |
254 | aliens.forEachAlive(function(alien){
255 |
256 | // put every living enemy in an array
257 | livingEnemies.push(alien);
258 | });
259 |
260 |
261 | if (enemyBullet && livingEnemies.length > 0)
262 | {
263 |
264 | let random=game.rnd.integerInRange(0,livingEnemies.length-1);
265 |
266 | // randomly select one of them
267 | let shooter=livingEnemies[random];
268 | // And fire the bullet from this enemy
269 | enemyBullet.reset(shooter.body.x, shooter.body.y);
270 |
271 | game.physics.arcade.moveToObject(enemyBullet,player,180);
272 | firingTimer = game.time.now + (2000/level);
273 | }
274 |
275 | }
276 |
277 | export function fireBullet () {
278 |
279 | // To avoid them being allowed to fire too fast we set a time limit
280 | if (game.time.now > bulletTime)
281 | {
282 | // Grab the first bullet we can from the pool
283 | bullet = bullets.getFirstExists(false);
284 |
285 | if (bullet)
286 | {
287 | // And fire it
288 | bullet.reset(player.x, player.y + 8);
289 | bullet.body.velocity.y = -400;
290 | bulletTime = game.time.now + 200;
291 | }
292 | }
293 |
294 | }
295 |
296 | export function resetBullet (bullet) {
297 |
298 | // Called if the bullet goes out of the screen
299 | bullet.kill();
300 |
301 | }
302 |
303 | export function nextLevel () {
304 | aliens.removeAll();
305 | createAliens();
306 | player.revive();
307 | level++;
308 |
309 | }
310 |
311 | export function gameOver () {
312 | score = 0;
313 | scoreText.text = scoreString + score;
314 | lives.callAll('revive');
315 | aliens.removeAll();
316 | createAliens();
317 |
318 | player.revive();
319 | stateText.visible = false;
320 | level=1;
321 |
322 | }
--------------------------------------------------------------------------------
/src/views/Shopping.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Getting Started with EOS and Scatter
5 |
6 |
7 | Shopping applications are abundant throughout our modern world. We all love to buy things, but hate to use them.
8 | Let’s look at just some of the problems that they cause users on a daily basis.
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
22 |
23 | Account registration is the bane of our existence.
24 | We all hate entering our personal information over
25 | and over again to the point where we’ve even
26 | resorted to trusting Facebook to keep us safe.
27 |
28 | Let’s give account registration the middle finger.
29 |
30 |
31 | Provide Identity
32 |
33 |
34 |
35 |
40 |
41 | There is now a permission in place which allows this application to automatically retrieve your up to date
42 | Identity each time you visit it. This means you can update your Identity at the source ( Scatter ) and have it updated
43 | to each and every application it has permissions for once you re-visit it without having to deal with updating information on multiple
44 | applications.
45 |
46 | Imagine what would happen if you moved houses and had to update your shipping information on every shopping
47 | website you've ever used.
48 |
49 |
50 | Forget Identity
51 |
52 |
53 |
54 |
55 | Signing up with an application easily
56 |
57 |
58 | Your Identity name can not be used by anyone else on any network once it has been registered to your
59 | unique Scatter. This makes it so you can never be impersonated. You are truly a special little snowflake.
60 |
61 |
62 | Inside of your Identity you may store private data such as your email, name, and location. These
63 | properties of your Identity are encrypted within your Scatter and can only be given to applications when
64 | they request it, and only if you approve of giving it to them. Even if there is more information inside of your
65 | Identity, an application will never see it unless given explicit authority to do so. What this means is you don’t
66 | have to leave little fingerprints all over the internet before you actually use an application.
67 |
68 |
69 |
70 | For instance this application requires no Identity properties at all to register, so even if you have filled out
71 | your email inside of the Identity you provide the application will never know about it until they manually
72 | request it and you give it permission to access it.
73 |
74 |
75 |
76 | I'm a developer, show me how this is done!
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Some Awesome Product
92 |
93 | This product is awesome because it does anything
94 | you want it to. Why? Because it doesn’t really exist.
95 |
96 |
97 |
107 |
108 |
109 |
110 |
111 |
116 |
117 | Wasn't that simple? You've not only just paid for the item using 10 EOS , but you've also supplied
118 | some shipping information all in one click.
119 |
120 | Let's look at some of the information:
121 |
122 |
123 |
124 |
125 | Transaction ID : {{transaction.transaction_id}}
126 | Personal Information : {{getPersonalInfo(transaction.returnedFields)}}
127 | Shipping Information : {{getShippingInfo(transaction.returnedFields)}}
128 |
129 |
130 | Buy Again!
131 |
132 |
133 |
134 |
135 | Buying an item that needs to be shipped
136 |
137 |
138 | Multiple forms which lead a user on are absolute crap. They use psychological techniques to make it so users
139 | go through the steps with increasing difficulty. Applications are forced to decieve and manipulate you just to
140 | give you something that.. you already want.
141 |
142 |
143 | Screw that.
144 |
145 | This application will provide you with one easy button to purchase and ship the item to you. You won’t need to
146 | go through any meticulously planned out multipage forms, or become the subject of psychological warfare.
147 | We’re simply going to bundle the transfering of funds and personal information into one easy to approve action
148 | which is completely transparent to the only person that you actually care about in this exchange. You.
149 |
150 |
151 | I'm a developer, show me how this is done!
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
237 |
238 |
--------------------------------------------------------------------------------
/src/views/GettingStarted.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Getting Started with EOS and Scatter
5 |
6 |
7 | In order to play around with these demos you're going to need a couple things first, like Scatter and an EOS account on our network.
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
25 |
26 |
27 |
30 |
31 | If you have already set up your network and Identity you can just select an application from the menu on the left.
32 |
33 |
34 |
35 |
36 |
37 |
38 | Updating Scatter
39 |
40 |
41 | Since Scatter is still in development you will have to manually update it. Sorry for the inconvenience.
42 |
43 |
44 | To check your current Scatter version go to chrome://extensions/ and look at the number next
45 | to the Scatter title.
46 | If it is not 2.1 you need to update your Scatter.
47 |
48 |
49 | To do so first click the trash icon next to the Scatter plugin from the Chrome extensions page.
50 | Then delete you Scatter folder, and follow the installation instructions again.
51 |
52 |
53 |
54 | Once you have version 2.1 you will no longer need to manually check your Scatter version as that version included
55 | a way to require a minimum Scatter version and notify the user in the case that it doesn't match.
56 |
57 |
58 |
59 |
60 |
61 |
62 | Installing Scatter
63 |
64 |
65 | Scatter is only available for Chrome right now.
66 |
67 |
68 |
69 |
70 | Once you have Scatter installed reload this page.
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
90 |
91 | You won't be able to do anything on the EOS blockchain without an account.
92 |
93 |
94 |
95 |
98 |
99 |
100 | This account was created on our network, staked for use, and has enough EOS tokens to do all of these demos many times over.
101 |
102 |
103 |
104 | Account Name: {{accountName}}
105 |
106 | Private Key:
107 |
108 | Public Key: {{publicKey}}
109 |
110 |
111 |
112 | Generate Account
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 | Getting Scatter all set up
121 |
122 |
123 |
124 | After you configure your password Scatter will lead you through creating your first Identity.
125 | You can name it anything you want, but before you do you'll have to create an account and add a network to use it on.
126 | Follow the steps below to do just that.
127 |
128 |
129 |
130 |
131 |
132 | Generate an EOS Account
133 |
134 | Really, all you have to do is generate an account, and put that account into a Scatter Identity.
135 |
136 |
137 | In the pursuit of making this as easy as possible, we won't make you generate any keys
138 | or set any account names. We're simply going to randomly generate both for you and then give you the private key
139 | so that you can import it into your Scatter.
140 |
141 |
142 |
143 | Click the Generate Account button to left before continuing.
144 |
145 |
146 |
147 |
148 |
149 | What about your Identity name?
150 |
151 |
152 | When you first create an Identity it will be assigned a random name. If you want a vanity name of your choosing you will have to register your
153 | Identity with RIDL, which also comes with some added decentralized security for Scatter and the ability to join the reputation system.
154 |
155 | Scatter Identity names are unique across all networks so that you can never be impersonated even if you aren't on a specific network.
156 | Take for example EOSSupport as a name. You wouldn't want anyone impersonating that on any network once it is claimed. They can also
157 | serve as your username on applications.
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
259 |
260 |
--------------------------------------------------------------------------------
/contracts/invaders_dawn2/invaders.wast:
--------------------------------------------------------------------------------
1 | (module
2 | (type $FUNCSIG$vj (func (param i64)))
3 | (type $FUNCSIG$ijjjii (func (param i64 i64 i64 i32 i32) (result i32)))
4 | (type $FUNCSIG$vii (func (param i32 i32)))
5 | (type $FUNCSIG$ijjii (func (param i64 i64 i32 i32) (result i32)))
6 | (type $FUNCSIG$vi (func (param i32)))
7 | (type $FUNCSIG$iii (func (param i32 i32) (result i32)))
8 | (import "env" "assert" (func $assert (param i32 i32)))
9 | (import "env" "front_i64" (func $front_i64 (param i64 i64 i64 i32 i32) (result i32)))
10 | (import "env" "printn" (func $printn (param i64)))
11 | (import "env" "prints" (func $prints (param i32)))
12 | (import "env" "read_message" (func $read_message (param i32 i32) (result i32)))
13 | (import "env" "require_auth" (func $require_auth (param i64)))
14 | (import "env" "store_i64" (func $store_i64 (param i64 i64 i32 i32) (result i32)))
15 | (table 0 anyfunc)
16 | (memory $0 1)
17 | (data (i32.const 4) "\00A\00\00")
18 | (data (i32.const 16) "incorrect contract owner\00")
19 | (data (i32.const 48) "owner is already set\00")
20 | (data (i32.const 80) "Added owner: \00")
21 | (data (i32.const 96) " \n\00")
22 | (data (i32.const 112) "invaders Contract Apply: \00")
23 | (data (i32.const 144) "->\00")
24 | (data (i32.const 160) "\n\00")
25 | (data (i32.const 176) "invaders\00")
26 | (data (i32.const 192) "score\00")
27 | (data (i32.const 208) "message shorter than expected\00")
28 | (data (i32.const 240) "owner\00")
29 | (export "memory" (memory $0))
30 | (export "_Z11apply_scoreRKN8invaders5scoreE" (func $_Z11apply_scoreRKN8invaders5scoreE))
31 | (export "_Z11apply_ownerRKN8invaders5ownerE" (func $_Z11apply_ownerRKN8invaders5ownerE))
32 | (export "init" (func $init))
33 | (export "apply" (func $apply))
34 | (func $_Z11apply_scoreRKN8invaders5scoreE (param $0 i32)
35 | (local $1 i32)
36 | (i32.store offset=4
37 | (i32.const 0)
38 | (tee_local $1
39 | (i32.sub
40 | (i32.load offset=4
41 | (i32.const 0)
42 | )
43 | (i32.const 32)
44 | )
45 | )
46 | )
47 | (call $require_auth
48 | (i64.load offset=16
49 | (get_local $0)
50 | )
51 | )
52 | (call $require_auth
53 | (i64.load offset=24
54 | (get_local $0)
55 | )
56 | )
57 | (i64.store
58 | (get_local $1)
59 | (i64.const 0)
60 | )
61 | (drop
62 | (call $front_i64
63 | (i64.const 8428034438138429440)
64 | (i64.const 8428034438138429440)
65 | (i64.const -6402240841699557376)
66 | (get_local $1)
67 | (i32.const 8)
68 | )
69 | )
70 | (call $assert
71 | (i64.eq
72 | (i64.load
73 | (get_local $1)
74 | )
75 | (i64.load offset=24
76 | (get_local $0)
77 | )
78 | )
79 | (i32.const 16)
80 | )
81 | (i64.store offset=16
82 | (get_local $1)
83 | (i64.const 0)
84 | )
85 | (i64.store offset=24
86 | (get_local $1)
87 | (i64.const 0)
88 | )
89 | (i64.store
90 | (get_local $1)
91 | (i64.load
92 | (get_local $0)
93 | )
94 | )
95 | (i64.store offset=8
96 | (get_local $1)
97 | (i64.load offset=8
98 | (get_local $0)
99 | )
100 | )
101 | (drop
102 | (call $store_i64
103 | (i64.const 8428034438138429440)
104 | (i64.const -4455901301129084928)
105 | (get_local $1)
106 | (i32.const 32)
107 | )
108 | )
109 | (i32.store offset=4
110 | (i32.const 0)
111 | (i32.add
112 | (get_local $1)
113 | (i32.const 32)
114 | )
115 | )
116 | )
117 | (func $_Z11apply_ownerRKN8invaders5ownerE (param $0 i32)
118 | (local $1 i64)
119 | (local $2 i32)
120 | (i32.store offset=4
121 | (i32.const 0)
122 | (tee_local $2
123 | (i32.sub
124 | (i32.load offset=4
125 | (i32.const 0)
126 | )
127 | (i32.const 16)
128 | )
129 | )
130 | )
131 | (call $require_auth
132 | (i64.load
133 | (get_local $0)
134 | )
135 | )
136 | (i64.store offset=8
137 | (get_local $2)
138 | (i64.const 0)
139 | )
140 | (call $assert
141 | (i32.ne
142 | (call $front_i64
143 | (i64.const 8428034438138429440)
144 | (i64.const 8428034438138429440)
145 | (i64.const -6402240841699557376)
146 | (i32.add
147 | (get_local $2)
148 | (i32.const 8)
149 | )
150 | (i32.const 8)
151 | )
152 | (i32.const 8)
153 | )
154 | (i32.const 48)
155 | )
156 | (i64.store offset=8
157 | (get_local $2)
158 | (i64.load
159 | (get_local $0)
160 | )
161 | )
162 | (drop
163 | (call $store_i64
164 | (i64.const 8428034438138429440)
165 | (i64.const -6402240841699557376)
166 | (i32.add
167 | (get_local $2)
168 | (i32.const 8)
169 | )
170 | (i32.const 8)
171 | )
172 | )
173 | (set_local $1
174 | (i64.load offset=8
175 | (get_local $2)
176 | )
177 | )
178 | (call $prints
179 | (i32.const 80)
180 | )
181 | (call $printn
182 | (get_local $1)
183 | )
184 | (call $prints
185 | (i32.const 96)
186 | )
187 | (i32.store offset=4
188 | (i32.const 0)
189 | (i32.add
190 | (get_local $2)
191 | (i32.const 16)
192 | )
193 | )
194 | )
195 | (func $init
196 | )
197 | (func $apply (param $0 i64) (param $1 i64)
198 | (local $2 i32)
199 | (local $3 i32)
200 | (local $4 i64)
201 | (local $5 i64)
202 | (local $6 i64)
203 | (local $7 i64)
204 | (local $8 i32)
205 | (i32.store offset=4
206 | (i32.const 0)
207 | (tee_local $8
208 | (i32.sub
209 | (i32.load offset=4
210 | (i32.const 0)
211 | )
212 | (i32.const 64)
213 | )
214 | )
215 | )
216 | (call $prints
217 | (i32.const 112)
218 | )
219 | (call $printn
220 | (get_local $0)
221 | )
222 | (call $prints
223 | (i32.const 144)
224 | )
225 | (call $printn
226 | (get_local $1)
227 | )
228 | (call $prints
229 | (i32.const 160)
230 | )
231 | (set_local $5
232 | (i64.const 0)
233 | )
234 | (set_local $4
235 | (i64.const 59)
236 | )
237 | (set_local $3
238 | (i32.const 176)
239 | )
240 | (set_local $6
241 | (i64.const 0)
242 | )
243 | (loop $label$0
244 | (block $label$1
245 | (block $label$2
246 | (block $label$3
247 | (block $label$4
248 | (block $label$5
249 | (br_if $label$5
250 | (i64.gt_u
251 | (get_local $5)
252 | (i64.const 7)
253 | )
254 | )
255 | (br_if $label$4
256 | (i32.gt_u
257 | (i32.and
258 | (i32.add
259 | (tee_local $2
260 | (i32.load8_s
261 | (get_local $3)
262 | )
263 | )
264 | (i32.const -97)
265 | )
266 | (i32.const 255)
267 | )
268 | (i32.const 25)
269 | )
270 | )
271 | (set_local $2
272 | (i32.add
273 | (get_local $2)
274 | (i32.const 165)
275 | )
276 | )
277 | (br $label$3)
278 | )
279 | (set_local $7
280 | (i64.const 0)
281 | )
282 | (br_if $label$2
283 | (i64.le_u
284 | (get_local $5)
285 | (i64.const 11)
286 | )
287 | )
288 | (br $label$1)
289 | )
290 | (set_local $2
291 | (select
292 | (i32.add
293 | (get_local $2)
294 | (i32.const 208)
295 | )
296 | (i32.const 0)
297 | (i32.lt_u
298 | (i32.and
299 | (i32.add
300 | (get_local $2)
301 | (i32.const -49)
302 | )
303 | (i32.const 255)
304 | )
305 | (i32.const 5)
306 | )
307 | )
308 | )
309 | )
310 | (set_local $7
311 | (i64.shr_s
312 | (i64.shl
313 | (i64.extend_u/i32
314 | (get_local $2)
315 | )
316 | (i64.const 56)
317 | )
318 | (i64.const 56)
319 | )
320 | )
321 | )
322 | (set_local $7
323 | (i64.shl
324 | (i64.and
325 | (get_local $7)
326 | (i64.const 31)
327 | )
328 | (i64.and
329 | (get_local $4)
330 | (i64.const 4294967295)
331 | )
332 | )
333 | )
334 | )
335 | (set_local $3
336 | (i32.add
337 | (get_local $3)
338 | (i32.const 1)
339 | )
340 | )
341 | (set_local $5
342 | (i64.add
343 | (get_local $5)
344 | (i64.const 1)
345 | )
346 | )
347 | (set_local $6
348 | (i64.or
349 | (get_local $7)
350 | (get_local $6)
351 | )
352 | )
353 | (br_if $label$0
354 | (i64.ne
355 | (tee_local $4
356 | (i64.add
357 | (get_local $4)
358 | (i64.const -5)
359 | )
360 | )
361 | (i64.const -6)
362 | )
363 | )
364 | )
365 | (block $label$6
366 | (br_if $label$6
367 | (i64.ne
368 | (get_local $6)
369 | (get_local $0)
370 | )
371 | )
372 | (set_local $5
373 | (i64.const 0)
374 | )
375 | (set_local $4
376 | (i64.const 59)
377 | )
378 | (set_local $3
379 | (i32.const 192)
380 | )
381 | (set_local $6
382 | (i64.const 0)
383 | )
384 | (loop $label$7
385 | (block $label$8
386 | (block $label$9
387 | (block $label$10
388 | (block $label$11
389 | (block $label$12
390 | (br_if $label$12
391 | (i64.gt_u
392 | (get_local $5)
393 | (i64.const 4)
394 | )
395 | )
396 | (br_if $label$11
397 | (i32.gt_u
398 | (i32.and
399 | (i32.add
400 | (tee_local $2
401 | (i32.load8_s
402 | (get_local $3)
403 | )
404 | )
405 | (i32.const -97)
406 | )
407 | (i32.const 255)
408 | )
409 | (i32.const 25)
410 | )
411 | )
412 | (set_local $2
413 | (i32.add
414 | (get_local $2)
415 | (i32.const 165)
416 | )
417 | )
418 | (br $label$10)
419 | )
420 | (set_local $7
421 | (i64.const 0)
422 | )
423 | (br_if $label$9
424 | (i64.le_u
425 | (get_local $5)
426 | (i64.const 11)
427 | )
428 | )
429 | (br $label$8)
430 | )
431 | (set_local $2
432 | (select
433 | (i32.add
434 | (get_local $2)
435 | (i32.const 208)
436 | )
437 | (i32.const 0)
438 | (i32.lt_u
439 | (i32.and
440 | (i32.add
441 | (get_local $2)
442 | (i32.const -49)
443 | )
444 | (i32.const 255)
445 | )
446 | (i32.const 5)
447 | )
448 | )
449 | )
450 | )
451 | (set_local $7
452 | (i64.shr_s
453 | (i64.shl
454 | (i64.extend_u/i32
455 | (get_local $2)
456 | )
457 | (i64.const 56)
458 | )
459 | (i64.const 56)
460 | )
461 | )
462 | )
463 | (set_local $7
464 | (i64.shl
465 | (i64.and
466 | (get_local $7)
467 | (i64.const 31)
468 | )
469 | (i64.and
470 | (get_local $4)
471 | (i64.const 4294967295)
472 | )
473 | )
474 | )
475 | )
476 | (set_local $3
477 | (i32.add
478 | (get_local $3)
479 | (i32.const 1)
480 | )
481 | )
482 | (set_local $5
483 | (i64.add
484 | (get_local $5)
485 | (i64.const 1)
486 | )
487 | )
488 | (set_local $6
489 | (i64.or
490 | (get_local $7)
491 | (get_local $6)
492 | )
493 | )
494 | (br_if $label$7
495 | (i64.ne
496 | (tee_local $4
497 | (i64.add
498 | (get_local $4)
499 | (i64.const -5)
500 | )
501 | )
502 | (i64.const -6)
503 | )
504 | )
505 | )
506 | (block $label$13
507 | (br_if $label$13
508 | (i64.ne
509 | (get_local $6)
510 | (get_local $1)
511 | )
512 | )
513 | (i64.store offset=16
514 | (get_local $8)
515 | (i64.const 0)
516 | )
517 | (i64.store
518 | (get_local $8)
519 | (i64.const 0)
520 | )
521 | (i64.store offset=24
522 | (get_local $8)
523 | (i64.const 0)
524 | )
525 | (call $assert
526 | (i32.gt_u
527 | (call $read_message
528 | (get_local $8)
529 | (i32.const 32)
530 | )
531 | (i32.const 31)
532 | )
533 | (i32.const 208)
534 | )
535 | (call $require_auth
536 | (i64.load offset=16
537 | (get_local $8)
538 | )
539 | )
540 | (call $require_auth
541 | (i64.load offset=24
542 | (get_local $8)
543 | )
544 | )
545 | (i64.store offset=32
546 | (get_local $8)
547 | (i64.const 0)
548 | )
549 | (drop
550 | (call $front_i64
551 | (i64.const 8428034438138429440)
552 | (i64.const 8428034438138429440)
553 | (i64.const -6402240841699557376)
554 | (i32.add
555 | (get_local $8)
556 | (i32.const 32)
557 | )
558 | (i32.const 8)
559 | )
560 | )
561 | (call $assert
562 | (i64.eq
563 | (i64.load offset=32
564 | (get_local $8)
565 | )
566 | (i64.load offset=24
567 | (get_local $8)
568 | )
569 | )
570 | (i32.const 16)
571 | )
572 | (i64.store offset=48
573 | (get_local $8)
574 | (i64.const 0)
575 | )
576 | (i64.store offset=56
577 | (get_local $8)
578 | (i64.const 0)
579 | )
580 | (i64.store offset=32
581 | (get_local $8)
582 | (i64.load
583 | (get_local $8)
584 | )
585 | )
586 | (i64.store offset=40
587 | (get_local $8)
588 | (i64.load offset=8
589 | (get_local $8)
590 | )
591 | )
592 | (drop
593 | (call $store_i64
594 | (i64.const 8428034438138429440)
595 | (i64.const -4455901301129084928)
596 | (i32.add
597 | (get_local $8)
598 | (i32.const 32)
599 | )
600 | (i32.const 32)
601 | )
602 | )
603 | )
604 | (set_local $5
605 | (i64.const 0)
606 | )
607 | (set_local $4
608 | (i64.const 59)
609 | )
610 | (set_local $3
611 | (i32.const 240)
612 | )
613 | (set_local $6
614 | (i64.const 0)
615 | )
616 | (loop $label$14
617 | (block $label$15
618 | (block $label$16
619 | (block $label$17
620 | (block $label$18
621 | (block $label$19
622 | (br_if $label$19
623 | (i64.gt_u
624 | (get_local $5)
625 | (i64.const 4)
626 | )
627 | )
628 | (br_if $label$18
629 | (i32.gt_u
630 | (i32.and
631 | (i32.add
632 | (tee_local $2
633 | (i32.load8_s
634 | (get_local $3)
635 | )
636 | )
637 | (i32.const -97)
638 | )
639 | (i32.const 255)
640 | )
641 | (i32.const 25)
642 | )
643 | )
644 | (set_local $2
645 | (i32.add
646 | (get_local $2)
647 | (i32.const 165)
648 | )
649 | )
650 | (br $label$17)
651 | )
652 | (set_local $7
653 | (i64.const 0)
654 | )
655 | (br_if $label$16
656 | (i64.le_u
657 | (get_local $5)
658 | (i64.const 11)
659 | )
660 | )
661 | (br $label$15)
662 | )
663 | (set_local $2
664 | (select
665 | (i32.add
666 | (get_local $2)
667 | (i32.const 208)
668 | )
669 | (i32.const 0)
670 | (i32.lt_u
671 | (i32.and
672 | (i32.add
673 | (get_local $2)
674 | (i32.const -49)
675 | )
676 | (i32.const 255)
677 | )
678 | (i32.const 5)
679 | )
680 | )
681 | )
682 | )
683 | (set_local $7
684 | (i64.shr_s
685 | (i64.shl
686 | (i64.extend_u/i32
687 | (get_local $2)
688 | )
689 | (i64.const 56)
690 | )
691 | (i64.const 56)
692 | )
693 | )
694 | )
695 | (set_local $7
696 | (i64.shl
697 | (i64.and
698 | (get_local $7)
699 | (i64.const 31)
700 | )
701 | (i64.and
702 | (get_local $4)
703 | (i64.const 4294967295)
704 | )
705 | )
706 | )
707 | )
708 | (set_local $3
709 | (i32.add
710 | (get_local $3)
711 | (i32.const 1)
712 | )
713 | )
714 | (set_local $5
715 | (i64.add
716 | (get_local $5)
717 | (i64.const 1)
718 | )
719 | )
720 | (set_local $6
721 | (i64.or
722 | (get_local $7)
723 | (get_local $6)
724 | )
725 | )
726 | (br_if $label$14
727 | (i64.ne
728 | (tee_local $4
729 | (i64.add
730 | (get_local $4)
731 | (i64.const -5)
732 | )
733 | )
734 | (i64.const -6)
735 | )
736 | )
737 | )
738 | (br_if $label$6
739 | (i64.ne
740 | (get_local $6)
741 | (get_local $1)
742 | )
743 | )
744 | (i64.store offset=32
745 | (get_local $8)
746 | (i64.const 0)
747 | )
748 | (call $assert
749 | (i32.gt_u
750 | (call $read_message
751 | (i32.add
752 | (get_local $8)
753 | (i32.const 32)
754 | )
755 | (i32.const 8)
756 | )
757 | (i32.const 7)
758 | )
759 | (i32.const 208)
760 | )
761 | (call $require_auth
762 | (tee_local $5
763 | (i64.load offset=32
764 | (get_local $8)
765 | )
766 | )
767 | )
768 | (i64.store offset=32
769 | (get_local $8)
770 | (i64.const 0)
771 | )
772 | (call $assert
773 | (i32.ne
774 | (call $front_i64
775 | (i64.const 8428034438138429440)
776 | (i64.const 8428034438138429440)
777 | (i64.const -6402240841699557376)
778 | (i32.add
779 | (get_local $8)
780 | (i32.const 32)
781 | )
782 | (i32.const 8)
783 | )
784 | (i32.const 8)
785 | )
786 | (i32.const 48)
787 | )
788 | (i64.store offset=32
789 | (get_local $8)
790 | (get_local $5)
791 | )
792 | (drop
793 | (call $store_i64
794 | (i64.const 8428034438138429440)
795 | (i64.const -6402240841699557376)
796 | (i32.add
797 | (get_local $8)
798 | (i32.const 32)
799 | )
800 | (i32.const 8)
801 | )
802 | )
803 | (set_local $5
804 | (i64.load offset=32
805 | (get_local $8)
806 | )
807 | )
808 | (call $prints
809 | (i32.const 80)
810 | )
811 | (call $printn
812 | (get_local $5)
813 | )
814 | (call $prints
815 | (i32.const 96)
816 | )
817 | )
818 | (i32.store offset=4
819 | (i32.const 0)
820 | (i32.add
821 | (get_local $8)
822 | (i32.const 64)
823 | )
824 | )
825 | )
826 | )
827 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/less/variables.less:
--------------------------------------------------------------------------------
1 | // Variables
2 | // --------------------------
3 |
4 | @fa-font-path: "../fonts";
5 | @fa-font-size-base: 14px;
6 | @fa-line-height-base: 1;
7 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly
8 | @fa-css-prefix: fa;
9 | @fa-version: "4.7.0";
10 | @fa-border-color: #eee;
11 | @fa-inverse: #fff;
12 | @fa-li-width: (30em / 14);
13 |
14 | @fa-var-500px: "\f26e";
15 | @fa-var-address-book: "\f2b9";
16 | @fa-var-address-book-o: "\f2ba";
17 | @fa-var-address-card: "\f2bb";
18 | @fa-var-address-card-o: "\f2bc";
19 | @fa-var-adjust: "\f042";
20 | @fa-var-adn: "\f170";
21 | @fa-var-align-center: "\f037";
22 | @fa-var-align-justify: "\f039";
23 | @fa-var-align-left: "\f036";
24 | @fa-var-align-right: "\f038";
25 | @fa-var-amazon: "\f270";
26 | @fa-var-ambulance: "\f0f9";
27 | @fa-var-american-sign-language-interpreting: "\f2a3";
28 | @fa-var-anchor: "\f13d";
29 | @fa-var-android: "\f17b";
30 | @fa-var-angellist: "\f209";
31 | @fa-var-angle-double-down: "\f103";
32 | @fa-var-angle-double-left: "\f100";
33 | @fa-var-angle-double-right: "\f101";
34 | @fa-var-angle-double-up: "\f102";
35 | @fa-var-angle-down: "\f107";
36 | @fa-var-angle-left: "\f104";
37 | @fa-var-angle-right: "\f105";
38 | @fa-var-angle-up: "\f106";
39 | @fa-var-apple: "\f179";
40 | @fa-var-archive: "\f187";
41 | @fa-var-area-chart: "\f1fe";
42 | @fa-var-arrow-circle-down: "\f0ab";
43 | @fa-var-arrow-circle-left: "\f0a8";
44 | @fa-var-arrow-circle-o-down: "\f01a";
45 | @fa-var-arrow-circle-o-left: "\f190";
46 | @fa-var-arrow-circle-o-right: "\f18e";
47 | @fa-var-arrow-circle-o-up: "\f01b";
48 | @fa-var-arrow-circle-right: "\f0a9";
49 | @fa-var-arrow-circle-up: "\f0aa";
50 | @fa-var-arrow-down: "\f063";
51 | @fa-var-arrow-left: "\f060";
52 | @fa-var-arrow-right: "\f061";
53 | @fa-var-arrow-up: "\f062";
54 | @fa-var-arrows: "\f047";
55 | @fa-var-arrows-alt: "\f0b2";
56 | @fa-var-arrows-h: "\f07e";
57 | @fa-var-arrows-v: "\f07d";
58 | @fa-var-asl-interpreting: "\f2a3";
59 | @fa-var-assistive-listening-systems: "\f2a2";
60 | @fa-var-asterisk: "\f069";
61 | @fa-var-at: "\f1fa";
62 | @fa-var-audio-description: "\f29e";
63 | @fa-var-automobile: "\f1b9";
64 | @fa-var-backward: "\f04a";
65 | @fa-var-balance-scale: "\f24e";
66 | @fa-var-ban: "\f05e";
67 | @fa-var-bandcamp: "\f2d5";
68 | @fa-var-bank: "\f19c";
69 | @fa-var-bar-chart: "\f080";
70 | @fa-var-bar-chart-o: "\f080";
71 | @fa-var-barcode: "\f02a";
72 | @fa-var-bars: "\f0c9";
73 | @fa-var-bath: "\f2cd";
74 | @fa-var-bathtub: "\f2cd";
75 | @fa-var-battery: "\f240";
76 | @fa-var-battery-0: "\f244";
77 | @fa-var-battery-1: "\f243";
78 | @fa-var-battery-2: "\f242";
79 | @fa-var-battery-3: "\f241";
80 | @fa-var-battery-4: "\f240";
81 | @fa-var-battery-empty: "\f244";
82 | @fa-var-battery-full: "\f240";
83 | @fa-var-battery-half: "\f242";
84 | @fa-var-battery-quarter: "\f243";
85 | @fa-var-battery-three-quarters: "\f241";
86 | @fa-var-bed: "\f236";
87 | @fa-var-beer: "\f0fc";
88 | @fa-var-behance: "\f1b4";
89 | @fa-var-behance-square: "\f1b5";
90 | @fa-var-bell: "\f0f3";
91 | @fa-var-bell-o: "\f0a2";
92 | @fa-var-bell-slash: "\f1f6";
93 | @fa-var-bell-slash-o: "\f1f7";
94 | @fa-var-bicycle: "\f206";
95 | @fa-var-binoculars: "\f1e5";
96 | @fa-var-birthday-cake: "\f1fd";
97 | @fa-var-bitbucket: "\f171";
98 | @fa-var-bitbucket-square: "\f172";
99 | @fa-var-bitcoin: "\f15a";
100 | @fa-var-black-tie: "\f27e";
101 | @fa-var-blind: "\f29d";
102 | @fa-var-bluetooth: "\f293";
103 | @fa-var-bluetooth-b: "\f294";
104 | @fa-var-bold: "\f032";
105 | @fa-var-bolt: "\f0e7";
106 | @fa-var-bomb: "\f1e2";
107 | @fa-var-book: "\f02d";
108 | @fa-var-bookmark: "\f02e";
109 | @fa-var-bookmark-o: "\f097";
110 | @fa-var-braille: "\f2a1";
111 | @fa-var-briefcase: "\f0b1";
112 | @fa-var-btc: "\f15a";
113 | @fa-var-bug: "\f188";
114 | @fa-var-building: "\f1ad";
115 | @fa-var-building-o: "\f0f7";
116 | @fa-var-bullhorn: "\f0a1";
117 | @fa-var-bullseye: "\f140";
118 | @fa-var-bus: "\f207";
119 | @fa-var-buysellads: "\f20d";
120 | @fa-var-cab: "\f1ba";
121 | @fa-var-calculator: "\f1ec";
122 | @fa-var-calendar: "\f073";
123 | @fa-var-calendar-check-o: "\f274";
124 | @fa-var-calendar-minus-o: "\f272";
125 | @fa-var-calendar-o: "\f133";
126 | @fa-var-calendar-plus-o: "\f271";
127 | @fa-var-calendar-times-o: "\f273";
128 | @fa-var-camera: "\f030";
129 | @fa-var-camera-retro: "\f083";
130 | @fa-var-car: "\f1b9";
131 | @fa-var-caret-down: "\f0d7";
132 | @fa-var-caret-left: "\f0d9";
133 | @fa-var-caret-right: "\f0da";
134 | @fa-var-caret-square-o-down: "\f150";
135 | @fa-var-caret-square-o-left: "\f191";
136 | @fa-var-caret-square-o-right: "\f152";
137 | @fa-var-caret-square-o-up: "\f151";
138 | @fa-var-caret-up: "\f0d8";
139 | @fa-var-cart-arrow-down: "\f218";
140 | @fa-var-cart-plus: "\f217";
141 | @fa-var-cc: "\f20a";
142 | @fa-var-cc-amex: "\f1f3";
143 | @fa-var-cc-diners-club: "\f24c";
144 | @fa-var-cc-discover: "\f1f2";
145 | @fa-var-cc-jcb: "\f24b";
146 | @fa-var-cc-mastercard: "\f1f1";
147 | @fa-var-cc-paypal: "\f1f4";
148 | @fa-var-cc-stripe: "\f1f5";
149 | @fa-var-cc-visa: "\f1f0";
150 | @fa-var-certificate: "\f0a3";
151 | @fa-var-chain: "\f0c1";
152 | @fa-var-chain-broken: "\f127";
153 | @fa-var-check: "\f00c";
154 | @fa-var-check-circle: "\f058";
155 | @fa-var-check-circle-o: "\f05d";
156 | @fa-var-check-square: "\f14a";
157 | @fa-var-check-square-o: "\f046";
158 | @fa-var-chevron-circle-down: "\f13a";
159 | @fa-var-chevron-circle-left: "\f137";
160 | @fa-var-chevron-circle-right: "\f138";
161 | @fa-var-chevron-circle-up: "\f139";
162 | @fa-var-chevron-down: "\f078";
163 | @fa-var-chevron-left: "\f053";
164 | @fa-var-chevron-right: "\f054";
165 | @fa-var-chevron-up: "\f077";
166 | @fa-var-child: "\f1ae";
167 | @fa-var-chrome: "\f268";
168 | @fa-var-circle: "\f111";
169 | @fa-var-circle-o: "\f10c";
170 | @fa-var-circle-o-notch: "\f1ce";
171 | @fa-var-circle-thin: "\f1db";
172 | @fa-var-clipboard: "\f0ea";
173 | @fa-var-clock-o: "\f017";
174 | @fa-var-clone: "\f24d";
175 | @fa-var-close: "\f00d";
176 | @fa-var-cloud: "\f0c2";
177 | @fa-var-cloud-download: "\f0ed";
178 | @fa-var-cloud-upload: "\f0ee";
179 | @fa-var-cny: "\f157";
180 | @fa-var-code: "\f121";
181 | @fa-var-code-fork: "\f126";
182 | @fa-var-codepen: "\f1cb";
183 | @fa-var-codiepie: "\f284";
184 | @fa-var-coffee: "\f0f4";
185 | @fa-var-cog: "\f013";
186 | @fa-var-cogs: "\f085";
187 | @fa-var-columns: "\f0db";
188 | @fa-var-comment: "\f075";
189 | @fa-var-comment-o: "\f0e5";
190 | @fa-var-commenting: "\f27a";
191 | @fa-var-commenting-o: "\f27b";
192 | @fa-var-comments: "\f086";
193 | @fa-var-comments-o: "\f0e6";
194 | @fa-var-compass: "\f14e";
195 | @fa-var-compress: "\f066";
196 | @fa-var-connectdevelop: "\f20e";
197 | @fa-var-contao: "\f26d";
198 | @fa-var-copy: "\f0c5";
199 | @fa-var-copyright: "\f1f9";
200 | @fa-var-creative-commons: "\f25e";
201 | @fa-var-credit-card: "\f09d";
202 | @fa-var-credit-card-alt: "\f283";
203 | @fa-var-crop: "\f125";
204 | @fa-var-crosshairs: "\f05b";
205 | @fa-var-css3: "\f13c";
206 | @fa-var-cube: "\f1b2";
207 | @fa-var-cubes: "\f1b3";
208 | @fa-var-cut: "\f0c4";
209 | @fa-var-cutlery: "\f0f5";
210 | @fa-var-dashboard: "\f0e4";
211 | @fa-var-dashcube: "\f210";
212 | @fa-var-database: "\f1c0";
213 | @fa-var-deaf: "\f2a4";
214 | @fa-var-deafness: "\f2a4";
215 | @fa-var-dedent: "\f03b";
216 | @fa-var-delicious: "\f1a5";
217 | @fa-var-desktop: "\f108";
218 | @fa-var-deviantart: "\f1bd";
219 | @fa-var-diamond: "\f219";
220 | @fa-var-digg: "\f1a6";
221 | @fa-var-dollar: "\f155";
222 | @fa-var-dot-circle-o: "\f192";
223 | @fa-var-download: "\f019";
224 | @fa-var-dribbble: "\f17d";
225 | @fa-var-drivers-license: "\f2c2";
226 | @fa-var-drivers-license-o: "\f2c3";
227 | @fa-var-dropbox: "\f16b";
228 | @fa-var-drupal: "\f1a9";
229 | @fa-var-edge: "\f282";
230 | @fa-var-edit: "\f044";
231 | @fa-var-eercast: "\f2da";
232 | @fa-var-eject: "\f052";
233 | @fa-var-ellipsis-h: "\f141";
234 | @fa-var-ellipsis-v: "\f142";
235 | @fa-var-empire: "\f1d1";
236 | @fa-var-envelope: "\f0e0";
237 | @fa-var-envelope-o: "\f003";
238 | @fa-var-envelope-open: "\f2b6";
239 | @fa-var-envelope-open-o: "\f2b7";
240 | @fa-var-envelope-square: "\f199";
241 | @fa-var-envira: "\f299";
242 | @fa-var-eraser: "\f12d";
243 | @fa-var-etsy: "\f2d7";
244 | @fa-var-eur: "\f153";
245 | @fa-var-euro: "\f153";
246 | @fa-var-exchange: "\f0ec";
247 | @fa-var-exclamation: "\f12a";
248 | @fa-var-exclamation-circle: "\f06a";
249 | @fa-var-exclamation-triangle: "\f071";
250 | @fa-var-expand: "\f065";
251 | @fa-var-expeditedssl: "\f23e";
252 | @fa-var-external-link: "\f08e";
253 | @fa-var-external-link-square: "\f14c";
254 | @fa-var-eye: "\f06e";
255 | @fa-var-eye-slash: "\f070";
256 | @fa-var-eyedropper: "\f1fb";
257 | @fa-var-fa: "\f2b4";
258 | @fa-var-facebook: "\f09a";
259 | @fa-var-facebook-f: "\f09a";
260 | @fa-var-facebook-official: "\f230";
261 | @fa-var-facebook-square: "\f082";
262 | @fa-var-fast-backward: "\f049";
263 | @fa-var-fast-forward: "\f050";
264 | @fa-var-fax: "\f1ac";
265 | @fa-var-feed: "\f09e";
266 | @fa-var-female: "\f182";
267 | @fa-var-fighter-jet: "\f0fb";
268 | @fa-var-file: "\f15b";
269 | @fa-var-file-archive-o: "\f1c6";
270 | @fa-var-file-audio-o: "\f1c7";
271 | @fa-var-file-code-o: "\f1c9";
272 | @fa-var-file-excel-o: "\f1c3";
273 | @fa-var-file-image-o: "\f1c5";
274 | @fa-var-file-movie-o: "\f1c8";
275 | @fa-var-file-o: "\f016";
276 | @fa-var-file-pdf-o: "\f1c1";
277 | @fa-var-file-photo-o: "\f1c5";
278 | @fa-var-file-picture-o: "\f1c5";
279 | @fa-var-file-powerpoint-o: "\f1c4";
280 | @fa-var-file-sound-o: "\f1c7";
281 | @fa-var-file-text: "\f15c";
282 | @fa-var-file-text-o: "\f0f6";
283 | @fa-var-file-video-o: "\f1c8";
284 | @fa-var-file-word-o: "\f1c2";
285 | @fa-var-file-zip-o: "\f1c6";
286 | @fa-var-files-o: "\f0c5";
287 | @fa-var-film: "\f008";
288 | @fa-var-filter: "\f0b0";
289 | @fa-var-fire: "\f06d";
290 | @fa-var-fire-extinguisher: "\f134";
291 | @fa-var-firefox: "\f269";
292 | @fa-var-first-order: "\f2b0";
293 | @fa-var-flag: "\f024";
294 | @fa-var-flag-checkered: "\f11e";
295 | @fa-var-flag-o: "\f11d";
296 | @fa-var-flash: "\f0e7";
297 | @fa-var-flask: "\f0c3";
298 | @fa-var-flickr: "\f16e";
299 | @fa-var-floppy-o: "\f0c7";
300 | @fa-var-folder: "\f07b";
301 | @fa-var-folder-o: "\f114";
302 | @fa-var-folder-open: "\f07c";
303 | @fa-var-folder-open-o: "\f115";
304 | @fa-var-font: "\f031";
305 | @fa-var-font-awesome: "\f2b4";
306 | @fa-var-fonticons: "\f280";
307 | @fa-var-fort-awesome: "\f286";
308 | @fa-var-forumbee: "\f211";
309 | @fa-var-forward: "\f04e";
310 | @fa-var-foursquare: "\f180";
311 | @fa-var-free-code-camp: "\f2c5";
312 | @fa-var-frown-o: "\f119";
313 | @fa-var-futbol-o: "\f1e3";
314 | @fa-var-gamepad: "\f11b";
315 | @fa-var-gavel: "\f0e3";
316 | @fa-var-gbp: "\f154";
317 | @fa-var-ge: "\f1d1";
318 | @fa-var-gear: "\f013";
319 | @fa-var-gears: "\f085";
320 | @fa-var-genderless: "\f22d";
321 | @fa-var-get-pocket: "\f265";
322 | @fa-var-gg: "\f260";
323 | @fa-var-gg-circle: "\f261";
324 | @fa-var-gift: "\f06b";
325 | @fa-var-git: "\f1d3";
326 | @fa-var-git-square: "\f1d2";
327 | @fa-var-github: "\f09b";
328 | @fa-var-github-alt: "\f113";
329 | @fa-var-github-square: "\f092";
330 | @fa-var-gitlab: "\f296";
331 | @fa-var-gittip: "\f184";
332 | @fa-var-glass: "\f000";
333 | @fa-var-glide: "\f2a5";
334 | @fa-var-glide-g: "\f2a6";
335 | @fa-var-globe: "\f0ac";
336 | @fa-var-google: "\f1a0";
337 | @fa-var-google-plus: "\f0d5";
338 | @fa-var-google-plus-circle: "\f2b3";
339 | @fa-var-google-plus-official: "\f2b3";
340 | @fa-var-google-plus-square: "\f0d4";
341 | @fa-var-google-wallet: "\f1ee";
342 | @fa-var-graduation-cap: "\f19d";
343 | @fa-var-gratipay: "\f184";
344 | @fa-var-grav: "\f2d6";
345 | @fa-var-group: "\f0c0";
346 | @fa-var-h-square: "\f0fd";
347 | @fa-var-hacker-news: "\f1d4";
348 | @fa-var-hand-grab-o: "\f255";
349 | @fa-var-hand-lizard-o: "\f258";
350 | @fa-var-hand-o-down: "\f0a7";
351 | @fa-var-hand-o-left: "\f0a5";
352 | @fa-var-hand-o-right: "\f0a4";
353 | @fa-var-hand-o-up: "\f0a6";
354 | @fa-var-hand-paper-o: "\f256";
355 | @fa-var-hand-peace-o: "\f25b";
356 | @fa-var-hand-pointer-o: "\f25a";
357 | @fa-var-hand-rock-o: "\f255";
358 | @fa-var-hand-scissors-o: "\f257";
359 | @fa-var-hand-spock-o: "\f259";
360 | @fa-var-hand-stop-o: "\f256";
361 | @fa-var-handshake-o: "\f2b5";
362 | @fa-var-hard-of-hearing: "\f2a4";
363 | @fa-var-hashtag: "\f292";
364 | @fa-var-hdd-o: "\f0a0";
365 | @fa-var-header: "\f1dc";
366 | @fa-var-headphones: "\f025";
367 | @fa-var-heart: "\f004";
368 | @fa-var-heart-o: "\f08a";
369 | @fa-var-heartbeat: "\f21e";
370 | @fa-var-history: "\f1da";
371 | @fa-var-home: "\f015";
372 | @fa-var-hospital-o: "\f0f8";
373 | @fa-var-hotel: "\f236";
374 | @fa-var-hourglass: "\f254";
375 | @fa-var-hourglass-1: "\f251";
376 | @fa-var-hourglass-2: "\f252";
377 | @fa-var-hourglass-3: "\f253";
378 | @fa-var-hourglass-end: "\f253";
379 | @fa-var-hourglass-half: "\f252";
380 | @fa-var-hourglass-o: "\f250";
381 | @fa-var-hourglass-start: "\f251";
382 | @fa-var-houzz: "\f27c";
383 | @fa-var-html5: "\f13b";
384 | @fa-var-i-cursor: "\f246";
385 | @fa-var-id-badge: "\f2c1";
386 | @fa-var-id-card: "\f2c2";
387 | @fa-var-id-card-o: "\f2c3";
388 | @fa-var-ils: "\f20b";
389 | @fa-var-image: "\f03e";
390 | @fa-var-imdb: "\f2d8";
391 | @fa-var-inbox: "\f01c";
392 | @fa-var-indent: "\f03c";
393 | @fa-var-industry: "\f275";
394 | @fa-var-info: "\f129";
395 | @fa-var-info-circle: "\f05a";
396 | @fa-var-inr: "\f156";
397 | @fa-var-instagram: "\f16d";
398 | @fa-var-institution: "\f19c";
399 | @fa-var-internet-explorer: "\f26b";
400 | @fa-var-intersex: "\f224";
401 | @fa-var-ioxhost: "\f208";
402 | @fa-var-italic: "\f033";
403 | @fa-var-joomla: "\f1aa";
404 | @fa-var-jpy: "\f157";
405 | @fa-var-jsfiddle: "\f1cc";
406 | @fa-var-key: "\f084";
407 | @fa-var-keyboard-o: "\f11c";
408 | @fa-var-krw: "\f159";
409 | @fa-var-language: "\f1ab";
410 | @fa-var-laptop: "\f109";
411 | @fa-var-lastfm: "\f202";
412 | @fa-var-lastfm-square: "\f203";
413 | @fa-var-leaf: "\f06c";
414 | @fa-var-leanpub: "\f212";
415 | @fa-var-legal: "\f0e3";
416 | @fa-var-lemon-o: "\f094";
417 | @fa-var-level-down: "\f149";
418 | @fa-var-level-up: "\f148";
419 | @fa-var-life-bouy: "\f1cd";
420 | @fa-var-life-buoy: "\f1cd";
421 | @fa-var-life-ring: "\f1cd";
422 | @fa-var-life-saver: "\f1cd";
423 | @fa-var-lightbulb-o: "\f0eb";
424 | @fa-var-line-chart: "\f201";
425 | @fa-var-link: "\f0c1";
426 | @fa-var-linkedin: "\f0e1";
427 | @fa-var-linkedin-square: "\f08c";
428 | @fa-var-linode: "\f2b8";
429 | @fa-var-linux: "\f17c";
430 | @fa-var-list: "\f03a";
431 | @fa-var-list-alt: "\f022";
432 | @fa-var-list-ol: "\f0cb";
433 | @fa-var-list-ul: "\f0ca";
434 | @fa-var-location-arrow: "\f124";
435 | @fa-var-lock: "\f023";
436 | @fa-var-long-arrow-down: "\f175";
437 | @fa-var-long-arrow-left: "\f177";
438 | @fa-var-long-arrow-right: "\f178";
439 | @fa-var-long-arrow-up: "\f176";
440 | @fa-var-low-vision: "\f2a8";
441 | @fa-var-magic: "\f0d0";
442 | @fa-var-magnet: "\f076";
443 | @fa-var-mail-forward: "\f064";
444 | @fa-var-mail-reply: "\f112";
445 | @fa-var-mail-reply-all: "\f122";
446 | @fa-var-male: "\f183";
447 | @fa-var-map: "\f279";
448 | @fa-var-map-marker: "\f041";
449 | @fa-var-map-o: "\f278";
450 | @fa-var-map-pin: "\f276";
451 | @fa-var-map-signs: "\f277";
452 | @fa-var-mars: "\f222";
453 | @fa-var-mars-double: "\f227";
454 | @fa-var-mars-stroke: "\f229";
455 | @fa-var-mars-stroke-h: "\f22b";
456 | @fa-var-mars-stroke-v: "\f22a";
457 | @fa-var-maxcdn: "\f136";
458 | @fa-var-meanpath: "\f20c";
459 | @fa-var-medium: "\f23a";
460 | @fa-var-medkit: "\f0fa";
461 | @fa-var-meetup: "\f2e0";
462 | @fa-var-meh-o: "\f11a";
463 | @fa-var-mercury: "\f223";
464 | @fa-var-microchip: "\f2db";
465 | @fa-var-microphone: "\f130";
466 | @fa-var-microphone-slash: "\f131";
467 | @fa-var-minus: "\f068";
468 | @fa-var-minus-circle: "\f056";
469 | @fa-var-minus-square: "\f146";
470 | @fa-var-minus-square-o: "\f147";
471 | @fa-var-mixcloud: "\f289";
472 | @fa-var-mobile: "\f10b";
473 | @fa-var-mobile-phone: "\f10b";
474 | @fa-var-modx: "\f285";
475 | @fa-var-money: "\f0d6";
476 | @fa-var-moon-o: "\f186";
477 | @fa-var-mortar-board: "\f19d";
478 | @fa-var-motorcycle: "\f21c";
479 | @fa-var-mouse-pointer: "\f245";
480 | @fa-var-music: "\f001";
481 | @fa-var-navicon: "\f0c9";
482 | @fa-var-neuter: "\f22c";
483 | @fa-var-newspaper-o: "\f1ea";
484 | @fa-var-object-group: "\f247";
485 | @fa-var-object-ungroup: "\f248";
486 | @fa-var-odnoklassniki: "\f263";
487 | @fa-var-odnoklassniki-square: "\f264";
488 | @fa-var-opencart: "\f23d";
489 | @fa-var-openid: "\f19b";
490 | @fa-var-opera: "\f26a";
491 | @fa-var-optin-monster: "\f23c";
492 | @fa-var-outdent: "\f03b";
493 | @fa-var-pagelines: "\f18c";
494 | @fa-var-paint-brush: "\f1fc";
495 | @fa-var-paper-plane: "\f1d8";
496 | @fa-var-paper-plane-o: "\f1d9";
497 | @fa-var-paperclip: "\f0c6";
498 | @fa-var-paragraph: "\f1dd";
499 | @fa-var-paste: "\f0ea";
500 | @fa-var-pause: "\f04c";
501 | @fa-var-pause-circle: "\f28b";
502 | @fa-var-pause-circle-o: "\f28c";
503 | @fa-var-paw: "\f1b0";
504 | @fa-var-paypal: "\f1ed";
505 | @fa-var-pencil: "\f040";
506 | @fa-var-pencil-square: "\f14b";
507 | @fa-var-pencil-square-o: "\f044";
508 | @fa-var-percent: "\f295";
509 | @fa-var-phone: "\f095";
510 | @fa-var-phone-square: "\f098";
511 | @fa-var-photo: "\f03e";
512 | @fa-var-picture-o: "\f03e";
513 | @fa-var-pie-chart: "\f200";
514 | @fa-var-pied-piper: "\f2ae";
515 | @fa-var-pied-piper-alt: "\f1a8";
516 | @fa-var-pied-piper-pp: "\f1a7";
517 | @fa-var-pinterest: "\f0d2";
518 | @fa-var-pinterest-p: "\f231";
519 | @fa-var-pinterest-square: "\f0d3";
520 | @fa-var-plane: "\f072";
521 | @fa-var-play: "\f04b";
522 | @fa-var-play-circle: "\f144";
523 | @fa-var-play-circle-o: "\f01d";
524 | @fa-var-plug: "\f1e6";
525 | @fa-var-plus: "\f067";
526 | @fa-var-plus-circle: "\f055";
527 | @fa-var-plus-square: "\f0fe";
528 | @fa-var-plus-square-o: "\f196";
529 | @fa-var-podcast: "\f2ce";
530 | @fa-var-power-off: "\f011";
531 | @fa-var-print: "\f02f";
532 | @fa-var-product-hunt: "\f288";
533 | @fa-var-puzzle-piece: "\f12e";
534 | @fa-var-qq: "\f1d6";
535 | @fa-var-qrcode: "\f029";
536 | @fa-var-question: "\f128";
537 | @fa-var-question-circle: "\f059";
538 | @fa-var-question-circle-o: "\f29c";
539 | @fa-var-quora: "\f2c4";
540 | @fa-var-quote-left: "\f10d";
541 | @fa-var-quote-right: "\f10e";
542 | @fa-var-ra: "\f1d0";
543 | @fa-var-random: "\f074";
544 | @fa-var-ravelry: "\f2d9";
545 | @fa-var-rebel: "\f1d0";
546 | @fa-var-recycle: "\f1b8";
547 | @fa-var-reddit: "\f1a1";
548 | @fa-var-reddit-alien: "\f281";
549 | @fa-var-reddit-square: "\f1a2";
550 | @fa-var-refresh: "\f021";
551 | @fa-var-registered: "\f25d";
552 | @fa-var-remove: "\f00d";
553 | @fa-var-renren: "\f18b";
554 | @fa-var-reorder: "\f0c9";
555 | @fa-var-repeat: "\f01e";
556 | @fa-var-reply: "\f112";
557 | @fa-var-reply-all: "\f122";
558 | @fa-var-resistance: "\f1d0";
559 | @fa-var-retweet: "\f079";
560 | @fa-var-rmb: "\f157";
561 | @fa-var-road: "\f018";
562 | @fa-var-rocket: "\f135";
563 | @fa-var-rotate-left: "\f0e2";
564 | @fa-var-rotate-right: "\f01e";
565 | @fa-var-rouble: "\f158";
566 | @fa-var-rss: "\f09e";
567 | @fa-var-rss-square: "\f143";
568 | @fa-var-rub: "\f158";
569 | @fa-var-ruble: "\f158";
570 | @fa-var-rupee: "\f156";
571 | @fa-var-s15: "\f2cd";
572 | @fa-var-safari: "\f267";
573 | @fa-var-save: "\f0c7";
574 | @fa-var-scissors: "\f0c4";
575 | @fa-var-scribd: "\f28a";
576 | @fa-var-search: "\f002";
577 | @fa-var-search-minus: "\f010";
578 | @fa-var-search-plus: "\f00e";
579 | @fa-var-sellsy: "\f213";
580 | @fa-var-send: "\f1d8";
581 | @fa-var-send-o: "\f1d9";
582 | @fa-var-server: "\f233";
583 | @fa-var-share: "\f064";
584 | @fa-var-share-alt: "\f1e0";
585 | @fa-var-share-alt-square: "\f1e1";
586 | @fa-var-share-square: "\f14d";
587 | @fa-var-share-square-o: "\f045";
588 | @fa-var-shekel: "\f20b";
589 | @fa-var-sheqel: "\f20b";
590 | @fa-var-shield: "\f132";
591 | @fa-var-ship: "\f21a";
592 | @fa-var-shirtsinbulk: "\f214";
593 | @fa-var-shopping-bag: "\f290";
594 | @fa-var-shopping-basket: "\f291";
595 | @fa-var-shopping-cart: "\f07a";
596 | @fa-var-shower: "\f2cc";
597 | @fa-var-sign-in: "\f090";
598 | @fa-var-sign-language: "\f2a7";
599 | @fa-var-sign-out: "\f08b";
600 | @fa-var-signal: "\f012";
601 | @fa-var-signing: "\f2a7";
602 | @fa-var-simplybuilt: "\f215";
603 | @fa-var-sitemap: "\f0e8";
604 | @fa-var-skyatlas: "\f216";
605 | @fa-var-skype: "\f17e";
606 | @fa-var-slack: "\f198";
607 | @fa-var-sliders: "\f1de";
608 | @fa-var-slideshare: "\f1e7";
609 | @fa-var-smile-o: "\f118";
610 | @fa-var-snapchat: "\f2ab";
611 | @fa-var-snapchat-ghost: "\f2ac";
612 | @fa-var-snapchat-square: "\f2ad";
613 | @fa-var-snowflake-o: "\f2dc";
614 | @fa-var-soccer-ball-o: "\f1e3";
615 | @fa-var-sort: "\f0dc";
616 | @fa-var-sort-alpha-asc: "\f15d";
617 | @fa-var-sort-alpha-desc: "\f15e";
618 | @fa-var-sort-amount-asc: "\f160";
619 | @fa-var-sort-amount-desc: "\f161";
620 | @fa-var-sort-asc: "\f0de";
621 | @fa-var-sort-desc: "\f0dd";
622 | @fa-var-sort-down: "\f0dd";
623 | @fa-var-sort-numeric-asc: "\f162";
624 | @fa-var-sort-numeric-desc: "\f163";
625 | @fa-var-sort-up: "\f0de";
626 | @fa-var-soundcloud: "\f1be";
627 | @fa-var-space-shuttle: "\f197";
628 | @fa-var-spinner: "\f110";
629 | @fa-var-spoon: "\f1b1";
630 | @fa-var-spotify: "\f1bc";
631 | @fa-var-square: "\f0c8";
632 | @fa-var-square-o: "\f096";
633 | @fa-var-stack-exchange: "\f18d";
634 | @fa-var-stack-overflow: "\f16c";
635 | @fa-var-star: "\f005";
636 | @fa-var-star-half: "\f089";
637 | @fa-var-star-half-empty: "\f123";
638 | @fa-var-star-half-full: "\f123";
639 | @fa-var-star-half-o: "\f123";
640 | @fa-var-star-o: "\f006";
641 | @fa-var-steam: "\f1b6";
642 | @fa-var-steam-square: "\f1b7";
643 | @fa-var-step-backward: "\f048";
644 | @fa-var-step-forward: "\f051";
645 | @fa-var-stethoscope: "\f0f1";
646 | @fa-var-sticky-note: "\f249";
647 | @fa-var-sticky-note-o: "\f24a";
648 | @fa-var-stop: "\f04d";
649 | @fa-var-stop-circle: "\f28d";
650 | @fa-var-stop-circle-o: "\f28e";
651 | @fa-var-street-view: "\f21d";
652 | @fa-var-strikethrough: "\f0cc";
653 | @fa-var-stumbleupon: "\f1a4";
654 | @fa-var-stumbleupon-circle: "\f1a3";
655 | @fa-var-subscript: "\f12c";
656 | @fa-var-subway: "\f239";
657 | @fa-var-suitcase: "\f0f2";
658 | @fa-var-sun-o: "\f185";
659 | @fa-var-superpowers: "\f2dd";
660 | @fa-var-superscript: "\f12b";
661 | @fa-var-support: "\f1cd";
662 | @fa-var-table: "\f0ce";
663 | @fa-var-tablet: "\f10a";
664 | @fa-var-tachometer: "\f0e4";
665 | @fa-var-tag: "\f02b";
666 | @fa-var-tags: "\f02c";
667 | @fa-var-tasks: "\f0ae";
668 | @fa-var-taxi: "\f1ba";
669 | @fa-var-telegram: "\f2c6";
670 | @fa-var-television: "\f26c";
671 | @fa-var-tencent-weibo: "\f1d5";
672 | @fa-var-terminal: "\f120";
673 | @fa-var-text-height: "\f034";
674 | @fa-var-text-width: "\f035";
675 | @fa-var-th: "\f00a";
676 | @fa-var-th-large: "\f009";
677 | @fa-var-th-list: "\f00b";
678 | @fa-var-themeisle: "\f2b2";
679 | @fa-var-thermometer: "\f2c7";
680 | @fa-var-thermometer-0: "\f2cb";
681 | @fa-var-thermometer-1: "\f2ca";
682 | @fa-var-thermometer-2: "\f2c9";
683 | @fa-var-thermometer-3: "\f2c8";
684 | @fa-var-thermometer-4: "\f2c7";
685 | @fa-var-thermometer-empty: "\f2cb";
686 | @fa-var-thermometer-full: "\f2c7";
687 | @fa-var-thermometer-half: "\f2c9";
688 | @fa-var-thermometer-quarter: "\f2ca";
689 | @fa-var-thermometer-three-quarters: "\f2c8";
690 | @fa-var-thumb-tack: "\f08d";
691 | @fa-var-thumbs-down: "\f165";
692 | @fa-var-thumbs-o-down: "\f088";
693 | @fa-var-thumbs-o-up: "\f087";
694 | @fa-var-thumbs-up: "\f164";
695 | @fa-var-ticket: "\f145";
696 | @fa-var-times: "\f00d";
697 | @fa-var-times-circle: "\f057";
698 | @fa-var-times-circle-o: "\f05c";
699 | @fa-var-times-rectangle: "\f2d3";
700 | @fa-var-times-rectangle-o: "\f2d4";
701 | @fa-var-tint: "\f043";
702 | @fa-var-toggle-down: "\f150";
703 | @fa-var-toggle-left: "\f191";
704 | @fa-var-toggle-off: "\f204";
705 | @fa-var-toggle-on: "\f205";
706 | @fa-var-toggle-right: "\f152";
707 | @fa-var-toggle-up: "\f151";
708 | @fa-var-trademark: "\f25c";
709 | @fa-var-train: "\f238";
710 | @fa-var-transgender: "\f224";
711 | @fa-var-transgender-alt: "\f225";
712 | @fa-var-trash: "\f1f8";
713 | @fa-var-trash-o: "\f014";
714 | @fa-var-tree: "\f1bb";
715 | @fa-var-trello: "\f181";
716 | @fa-var-tripadvisor: "\f262";
717 | @fa-var-trophy: "\f091";
718 | @fa-var-truck: "\f0d1";
719 | @fa-var-try: "\f195";
720 | @fa-var-tty: "\f1e4";
721 | @fa-var-tumblr: "\f173";
722 | @fa-var-tumblr-square: "\f174";
723 | @fa-var-turkish-lira: "\f195";
724 | @fa-var-tv: "\f26c";
725 | @fa-var-twitch: "\f1e8";
726 | @fa-var-twitter: "\f099";
727 | @fa-var-twitter-square: "\f081";
728 | @fa-var-umbrella: "\f0e9";
729 | @fa-var-underline: "\f0cd";
730 | @fa-var-undo: "\f0e2";
731 | @fa-var-universal-access: "\f29a";
732 | @fa-var-university: "\f19c";
733 | @fa-var-unlink: "\f127";
734 | @fa-var-unlock: "\f09c";
735 | @fa-var-unlock-alt: "\f13e";
736 | @fa-var-unsorted: "\f0dc";
737 | @fa-var-upload: "\f093";
738 | @fa-var-usb: "\f287";
739 | @fa-var-usd: "\f155";
740 | @fa-var-user: "\f007";
741 | @fa-var-user-circle: "\f2bd";
742 | @fa-var-user-circle-o: "\f2be";
743 | @fa-var-user-md: "\f0f0";
744 | @fa-var-user-o: "\f2c0";
745 | @fa-var-user-plus: "\f234";
746 | @fa-var-user-secret: "\f21b";
747 | @fa-var-user-times: "\f235";
748 | @fa-var-users: "\f0c0";
749 | @fa-var-vcard: "\f2bb";
750 | @fa-var-vcard-o: "\f2bc";
751 | @fa-var-venus: "\f221";
752 | @fa-var-venus-double: "\f226";
753 | @fa-var-venus-mars: "\f228";
754 | @fa-var-viacoin: "\f237";
755 | @fa-var-viadeo: "\f2a9";
756 | @fa-var-viadeo-square: "\f2aa";
757 | @fa-var-video-camera: "\f03d";
758 | @fa-var-vimeo: "\f27d";
759 | @fa-var-vimeo-square: "\f194";
760 | @fa-var-vine: "\f1ca";
761 | @fa-var-vk: "\f189";
762 | @fa-var-volume-control-phone: "\f2a0";
763 | @fa-var-volume-down: "\f027";
764 | @fa-var-volume-off: "\f026";
765 | @fa-var-volume-up: "\f028";
766 | @fa-var-warning: "\f071";
767 | @fa-var-wechat: "\f1d7";
768 | @fa-var-weibo: "\f18a";
769 | @fa-var-weixin: "\f1d7";
770 | @fa-var-whatsapp: "\f232";
771 | @fa-var-wheelchair: "\f193";
772 | @fa-var-wheelchair-alt: "\f29b";
773 | @fa-var-wifi: "\f1eb";
774 | @fa-var-wikipedia-w: "\f266";
775 | @fa-var-window-close: "\f2d3";
776 | @fa-var-window-close-o: "\f2d4";
777 | @fa-var-window-maximize: "\f2d0";
778 | @fa-var-window-minimize: "\f2d1";
779 | @fa-var-window-restore: "\f2d2";
780 | @fa-var-windows: "\f17a";
781 | @fa-var-won: "\f159";
782 | @fa-var-wordpress: "\f19a";
783 | @fa-var-wpbeginner: "\f297";
784 | @fa-var-wpexplorer: "\f2de";
785 | @fa-var-wpforms: "\f298";
786 | @fa-var-wrench: "\f0ad";
787 | @fa-var-xing: "\f168";
788 | @fa-var-xing-square: "\f169";
789 | @fa-var-y-combinator: "\f23b";
790 | @fa-var-y-combinator-square: "\f1d4";
791 | @fa-var-yahoo: "\f19e";
792 | @fa-var-yc: "\f23b";
793 | @fa-var-yc-square: "\f1d4";
794 | @fa-var-yelp: "\f1e9";
795 | @fa-var-yen: "\f157";
796 | @fa-var-yoast: "\f2b1";
797 | @fa-var-youtube: "\f167";
798 | @fa-var-youtube-play: "\f16a";
799 | @fa-var-youtube-square: "\f166";
800 |
801 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/scss/_variables.scss:
--------------------------------------------------------------------------------
1 | // Variables
2 | // --------------------------
3 |
4 | $fa-font-path: "../fonts" !default;
5 | $fa-font-size-base: 14px !default;
6 | $fa-line-height-base: 1 !default;
7 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly
8 | $fa-css-prefix: fa !default;
9 | $fa-version: "4.7.0" !default;
10 | $fa-border-color: #eee !default;
11 | $fa-inverse: #fff !default;
12 | $fa-li-width: (30em / 14) !default;
13 |
14 | $fa-var-500px: "\f26e";
15 | $fa-var-address-book: "\f2b9";
16 | $fa-var-address-book-o: "\f2ba";
17 | $fa-var-address-card: "\f2bb";
18 | $fa-var-address-card-o: "\f2bc";
19 | $fa-var-adjust: "\f042";
20 | $fa-var-adn: "\f170";
21 | $fa-var-align-center: "\f037";
22 | $fa-var-align-justify: "\f039";
23 | $fa-var-align-left: "\f036";
24 | $fa-var-align-right: "\f038";
25 | $fa-var-amazon: "\f270";
26 | $fa-var-ambulance: "\f0f9";
27 | $fa-var-american-sign-language-interpreting: "\f2a3";
28 | $fa-var-anchor: "\f13d";
29 | $fa-var-android: "\f17b";
30 | $fa-var-angellist: "\f209";
31 | $fa-var-angle-double-down: "\f103";
32 | $fa-var-angle-double-left: "\f100";
33 | $fa-var-angle-double-right: "\f101";
34 | $fa-var-angle-double-up: "\f102";
35 | $fa-var-angle-down: "\f107";
36 | $fa-var-angle-left: "\f104";
37 | $fa-var-angle-right: "\f105";
38 | $fa-var-angle-up: "\f106";
39 | $fa-var-apple: "\f179";
40 | $fa-var-archive: "\f187";
41 | $fa-var-area-chart: "\f1fe";
42 | $fa-var-arrow-circle-down: "\f0ab";
43 | $fa-var-arrow-circle-left: "\f0a8";
44 | $fa-var-arrow-circle-o-down: "\f01a";
45 | $fa-var-arrow-circle-o-left: "\f190";
46 | $fa-var-arrow-circle-o-right: "\f18e";
47 | $fa-var-arrow-circle-o-up: "\f01b";
48 | $fa-var-arrow-circle-right: "\f0a9";
49 | $fa-var-arrow-circle-up: "\f0aa";
50 | $fa-var-arrow-down: "\f063";
51 | $fa-var-arrow-left: "\f060";
52 | $fa-var-arrow-right: "\f061";
53 | $fa-var-arrow-up: "\f062";
54 | $fa-var-arrows: "\f047";
55 | $fa-var-arrows-alt: "\f0b2";
56 | $fa-var-arrows-h: "\f07e";
57 | $fa-var-arrows-v: "\f07d";
58 | $fa-var-asl-interpreting: "\f2a3";
59 | $fa-var-assistive-listening-systems: "\f2a2";
60 | $fa-var-asterisk: "\f069";
61 | $fa-var-at: "\f1fa";
62 | $fa-var-audio-description: "\f29e";
63 | $fa-var-automobile: "\f1b9";
64 | $fa-var-backward: "\f04a";
65 | $fa-var-balance-scale: "\f24e";
66 | $fa-var-ban: "\f05e";
67 | $fa-var-bandcamp: "\f2d5";
68 | $fa-var-bank: "\f19c";
69 | $fa-var-bar-chart: "\f080";
70 | $fa-var-bar-chart-o: "\f080";
71 | $fa-var-barcode: "\f02a";
72 | $fa-var-bars: "\f0c9";
73 | $fa-var-bath: "\f2cd";
74 | $fa-var-bathtub: "\f2cd";
75 | $fa-var-battery: "\f240";
76 | $fa-var-battery-0: "\f244";
77 | $fa-var-battery-1: "\f243";
78 | $fa-var-battery-2: "\f242";
79 | $fa-var-battery-3: "\f241";
80 | $fa-var-battery-4: "\f240";
81 | $fa-var-battery-empty: "\f244";
82 | $fa-var-battery-full: "\f240";
83 | $fa-var-battery-half: "\f242";
84 | $fa-var-battery-quarter: "\f243";
85 | $fa-var-battery-three-quarters: "\f241";
86 | $fa-var-bed: "\f236";
87 | $fa-var-beer: "\f0fc";
88 | $fa-var-behance: "\f1b4";
89 | $fa-var-behance-square: "\f1b5";
90 | $fa-var-bell: "\f0f3";
91 | $fa-var-bell-o: "\f0a2";
92 | $fa-var-bell-slash: "\f1f6";
93 | $fa-var-bell-slash-o: "\f1f7";
94 | $fa-var-bicycle: "\f206";
95 | $fa-var-binoculars: "\f1e5";
96 | $fa-var-birthday-cake: "\f1fd";
97 | $fa-var-bitbucket: "\f171";
98 | $fa-var-bitbucket-square: "\f172";
99 | $fa-var-bitcoin: "\f15a";
100 | $fa-var-black-tie: "\f27e";
101 | $fa-var-blind: "\f29d";
102 | $fa-var-bluetooth: "\f293";
103 | $fa-var-bluetooth-b: "\f294";
104 | $fa-var-bold: "\f032";
105 | $fa-var-bolt: "\f0e7";
106 | $fa-var-bomb: "\f1e2";
107 | $fa-var-book: "\f02d";
108 | $fa-var-bookmark: "\f02e";
109 | $fa-var-bookmark-o: "\f097";
110 | $fa-var-braille: "\f2a1";
111 | $fa-var-briefcase: "\f0b1";
112 | $fa-var-btc: "\f15a";
113 | $fa-var-bug: "\f188";
114 | $fa-var-building: "\f1ad";
115 | $fa-var-building-o: "\f0f7";
116 | $fa-var-bullhorn: "\f0a1";
117 | $fa-var-bullseye: "\f140";
118 | $fa-var-bus: "\f207";
119 | $fa-var-buysellads: "\f20d";
120 | $fa-var-cab: "\f1ba";
121 | $fa-var-calculator: "\f1ec";
122 | $fa-var-calendar: "\f073";
123 | $fa-var-calendar-check-o: "\f274";
124 | $fa-var-calendar-minus-o: "\f272";
125 | $fa-var-calendar-o: "\f133";
126 | $fa-var-calendar-plus-o: "\f271";
127 | $fa-var-calendar-times-o: "\f273";
128 | $fa-var-camera: "\f030";
129 | $fa-var-camera-retro: "\f083";
130 | $fa-var-car: "\f1b9";
131 | $fa-var-caret-down: "\f0d7";
132 | $fa-var-caret-left: "\f0d9";
133 | $fa-var-caret-right: "\f0da";
134 | $fa-var-caret-square-o-down: "\f150";
135 | $fa-var-caret-square-o-left: "\f191";
136 | $fa-var-caret-square-o-right: "\f152";
137 | $fa-var-caret-square-o-up: "\f151";
138 | $fa-var-caret-up: "\f0d8";
139 | $fa-var-cart-arrow-down: "\f218";
140 | $fa-var-cart-plus: "\f217";
141 | $fa-var-cc: "\f20a";
142 | $fa-var-cc-amex: "\f1f3";
143 | $fa-var-cc-diners-club: "\f24c";
144 | $fa-var-cc-discover: "\f1f2";
145 | $fa-var-cc-jcb: "\f24b";
146 | $fa-var-cc-mastercard: "\f1f1";
147 | $fa-var-cc-paypal: "\f1f4";
148 | $fa-var-cc-stripe: "\f1f5";
149 | $fa-var-cc-visa: "\f1f0";
150 | $fa-var-certificate: "\f0a3";
151 | $fa-var-chain: "\f0c1";
152 | $fa-var-chain-broken: "\f127";
153 | $fa-var-check: "\f00c";
154 | $fa-var-check-circle: "\f058";
155 | $fa-var-check-circle-o: "\f05d";
156 | $fa-var-check-square: "\f14a";
157 | $fa-var-check-square-o: "\f046";
158 | $fa-var-chevron-circle-down: "\f13a";
159 | $fa-var-chevron-circle-left: "\f137";
160 | $fa-var-chevron-circle-right: "\f138";
161 | $fa-var-chevron-circle-up: "\f139";
162 | $fa-var-chevron-down: "\f078";
163 | $fa-var-chevron-left: "\f053";
164 | $fa-var-chevron-right: "\f054";
165 | $fa-var-chevron-up: "\f077";
166 | $fa-var-child: "\f1ae";
167 | $fa-var-chrome: "\f268";
168 | $fa-var-circle: "\f111";
169 | $fa-var-circle-o: "\f10c";
170 | $fa-var-circle-o-notch: "\f1ce";
171 | $fa-var-circle-thin: "\f1db";
172 | $fa-var-clipboard: "\f0ea";
173 | $fa-var-clock-o: "\f017";
174 | $fa-var-clone: "\f24d";
175 | $fa-var-close: "\f00d";
176 | $fa-var-cloud: "\f0c2";
177 | $fa-var-cloud-download: "\f0ed";
178 | $fa-var-cloud-upload: "\f0ee";
179 | $fa-var-cny: "\f157";
180 | $fa-var-code: "\f121";
181 | $fa-var-code-fork: "\f126";
182 | $fa-var-codepen: "\f1cb";
183 | $fa-var-codiepie: "\f284";
184 | $fa-var-coffee: "\f0f4";
185 | $fa-var-cog: "\f013";
186 | $fa-var-cogs: "\f085";
187 | $fa-var-columns: "\f0db";
188 | $fa-var-comment: "\f075";
189 | $fa-var-comment-o: "\f0e5";
190 | $fa-var-commenting: "\f27a";
191 | $fa-var-commenting-o: "\f27b";
192 | $fa-var-comments: "\f086";
193 | $fa-var-comments-o: "\f0e6";
194 | $fa-var-compass: "\f14e";
195 | $fa-var-compress: "\f066";
196 | $fa-var-connectdevelop: "\f20e";
197 | $fa-var-contao: "\f26d";
198 | $fa-var-copy: "\f0c5";
199 | $fa-var-copyright: "\f1f9";
200 | $fa-var-creative-commons: "\f25e";
201 | $fa-var-credit-card: "\f09d";
202 | $fa-var-credit-card-alt: "\f283";
203 | $fa-var-crop: "\f125";
204 | $fa-var-crosshairs: "\f05b";
205 | $fa-var-css3: "\f13c";
206 | $fa-var-cube: "\f1b2";
207 | $fa-var-cubes: "\f1b3";
208 | $fa-var-cut: "\f0c4";
209 | $fa-var-cutlery: "\f0f5";
210 | $fa-var-dashboard: "\f0e4";
211 | $fa-var-dashcube: "\f210";
212 | $fa-var-database: "\f1c0";
213 | $fa-var-deaf: "\f2a4";
214 | $fa-var-deafness: "\f2a4";
215 | $fa-var-dedent: "\f03b";
216 | $fa-var-delicious: "\f1a5";
217 | $fa-var-desktop: "\f108";
218 | $fa-var-deviantart: "\f1bd";
219 | $fa-var-diamond: "\f219";
220 | $fa-var-digg: "\f1a6";
221 | $fa-var-dollar: "\f155";
222 | $fa-var-dot-circle-o: "\f192";
223 | $fa-var-download: "\f019";
224 | $fa-var-dribbble: "\f17d";
225 | $fa-var-drivers-license: "\f2c2";
226 | $fa-var-drivers-license-o: "\f2c3";
227 | $fa-var-dropbox: "\f16b";
228 | $fa-var-drupal: "\f1a9";
229 | $fa-var-edge: "\f282";
230 | $fa-var-edit: "\f044";
231 | $fa-var-eercast: "\f2da";
232 | $fa-var-eject: "\f052";
233 | $fa-var-ellipsis-h: "\f141";
234 | $fa-var-ellipsis-v: "\f142";
235 | $fa-var-empire: "\f1d1";
236 | $fa-var-envelope: "\f0e0";
237 | $fa-var-envelope-o: "\f003";
238 | $fa-var-envelope-open: "\f2b6";
239 | $fa-var-envelope-open-o: "\f2b7";
240 | $fa-var-envelope-square: "\f199";
241 | $fa-var-envira: "\f299";
242 | $fa-var-eraser: "\f12d";
243 | $fa-var-etsy: "\f2d7";
244 | $fa-var-eur: "\f153";
245 | $fa-var-euro: "\f153";
246 | $fa-var-exchange: "\f0ec";
247 | $fa-var-exclamation: "\f12a";
248 | $fa-var-exclamation-circle: "\f06a";
249 | $fa-var-exclamation-triangle: "\f071";
250 | $fa-var-expand: "\f065";
251 | $fa-var-expeditedssl: "\f23e";
252 | $fa-var-external-link: "\f08e";
253 | $fa-var-external-link-square: "\f14c";
254 | $fa-var-eye: "\f06e";
255 | $fa-var-eye-slash: "\f070";
256 | $fa-var-eyedropper: "\f1fb";
257 | $fa-var-fa: "\f2b4";
258 | $fa-var-facebook: "\f09a";
259 | $fa-var-facebook-f: "\f09a";
260 | $fa-var-facebook-official: "\f230";
261 | $fa-var-facebook-square: "\f082";
262 | $fa-var-fast-backward: "\f049";
263 | $fa-var-fast-forward: "\f050";
264 | $fa-var-fax: "\f1ac";
265 | $fa-var-feed: "\f09e";
266 | $fa-var-female: "\f182";
267 | $fa-var-fighter-jet: "\f0fb";
268 | $fa-var-file: "\f15b";
269 | $fa-var-file-archive-o: "\f1c6";
270 | $fa-var-file-audio-o: "\f1c7";
271 | $fa-var-file-code-o: "\f1c9";
272 | $fa-var-file-excel-o: "\f1c3";
273 | $fa-var-file-image-o: "\f1c5";
274 | $fa-var-file-movie-o: "\f1c8";
275 | $fa-var-file-o: "\f016";
276 | $fa-var-file-pdf-o: "\f1c1";
277 | $fa-var-file-photo-o: "\f1c5";
278 | $fa-var-file-picture-o: "\f1c5";
279 | $fa-var-file-powerpoint-o: "\f1c4";
280 | $fa-var-file-sound-o: "\f1c7";
281 | $fa-var-file-text: "\f15c";
282 | $fa-var-file-text-o: "\f0f6";
283 | $fa-var-file-video-o: "\f1c8";
284 | $fa-var-file-word-o: "\f1c2";
285 | $fa-var-file-zip-o: "\f1c6";
286 | $fa-var-files-o: "\f0c5";
287 | $fa-var-film: "\f008";
288 | $fa-var-filter: "\f0b0";
289 | $fa-var-fire: "\f06d";
290 | $fa-var-fire-extinguisher: "\f134";
291 | $fa-var-firefox: "\f269";
292 | $fa-var-first-order: "\f2b0";
293 | $fa-var-flag: "\f024";
294 | $fa-var-flag-checkered: "\f11e";
295 | $fa-var-flag-o: "\f11d";
296 | $fa-var-flash: "\f0e7";
297 | $fa-var-flask: "\f0c3";
298 | $fa-var-flickr: "\f16e";
299 | $fa-var-floppy-o: "\f0c7";
300 | $fa-var-folder: "\f07b";
301 | $fa-var-folder-o: "\f114";
302 | $fa-var-folder-open: "\f07c";
303 | $fa-var-folder-open-o: "\f115";
304 | $fa-var-font: "\f031";
305 | $fa-var-font-awesome: "\f2b4";
306 | $fa-var-fonticons: "\f280";
307 | $fa-var-fort-awesome: "\f286";
308 | $fa-var-forumbee: "\f211";
309 | $fa-var-forward: "\f04e";
310 | $fa-var-foursquare: "\f180";
311 | $fa-var-free-code-camp: "\f2c5";
312 | $fa-var-frown-o: "\f119";
313 | $fa-var-futbol-o: "\f1e3";
314 | $fa-var-gamepad: "\f11b";
315 | $fa-var-gavel: "\f0e3";
316 | $fa-var-gbp: "\f154";
317 | $fa-var-ge: "\f1d1";
318 | $fa-var-gear: "\f013";
319 | $fa-var-gears: "\f085";
320 | $fa-var-genderless: "\f22d";
321 | $fa-var-get-pocket: "\f265";
322 | $fa-var-gg: "\f260";
323 | $fa-var-gg-circle: "\f261";
324 | $fa-var-gift: "\f06b";
325 | $fa-var-git: "\f1d3";
326 | $fa-var-git-square: "\f1d2";
327 | $fa-var-github: "\f09b";
328 | $fa-var-github-alt: "\f113";
329 | $fa-var-github-square: "\f092";
330 | $fa-var-gitlab: "\f296";
331 | $fa-var-gittip: "\f184";
332 | $fa-var-glass: "\f000";
333 | $fa-var-glide: "\f2a5";
334 | $fa-var-glide-g: "\f2a6";
335 | $fa-var-globe: "\f0ac";
336 | $fa-var-google: "\f1a0";
337 | $fa-var-google-plus: "\f0d5";
338 | $fa-var-google-plus-circle: "\f2b3";
339 | $fa-var-google-plus-official: "\f2b3";
340 | $fa-var-google-plus-square: "\f0d4";
341 | $fa-var-google-wallet: "\f1ee";
342 | $fa-var-graduation-cap: "\f19d";
343 | $fa-var-gratipay: "\f184";
344 | $fa-var-grav: "\f2d6";
345 | $fa-var-group: "\f0c0";
346 | $fa-var-h-square: "\f0fd";
347 | $fa-var-hacker-news: "\f1d4";
348 | $fa-var-hand-grab-o: "\f255";
349 | $fa-var-hand-lizard-o: "\f258";
350 | $fa-var-hand-o-down: "\f0a7";
351 | $fa-var-hand-o-left: "\f0a5";
352 | $fa-var-hand-o-right: "\f0a4";
353 | $fa-var-hand-o-up: "\f0a6";
354 | $fa-var-hand-paper-o: "\f256";
355 | $fa-var-hand-peace-o: "\f25b";
356 | $fa-var-hand-pointer-o: "\f25a";
357 | $fa-var-hand-rock-o: "\f255";
358 | $fa-var-hand-scissors-o: "\f257";
359 | $fa-var-hand-spock-o: "\f259";
360 | $fa-var-hand-stop-o: "\f256";
361 | $fa-var-handshake-o: "\f2b5";
362 | $fa-var-hard-of-hearing: "\f2a4";
363 | $fa-var-hashtag: "\f292";
364 | $fa-var-hdd-o: "\f0a0";
365 | $fa-var-header: "\f1dc";
366 | $fa-var-headphones: "\f025";
367 | $fa-var-heart: "\f004";
368 | $fa-var-heart-o: "\f08a";
369 | $fa-var-heartbeat: "\f21e";
370 | $fa-var-history: "\f1da";
371 | $fa-var-home: "\f015";
372 | $fa-var-hospital-o: "\f0f8";
373 | $fa-var-hotel: "\f236";
374 | $fa-var-hourglass: "\f254";
375 | $fa-var-hourglass-1: "\f251";
376 | $fa-var-hourglass-2: "\f252";
377 | $fa-var-hourglass-3: "\f253";
378 | $fa-var-hourglass-end: "\f253";
379 | $fa-var-hourglass-half: "\f252";
380 | $fa-var-hourglass-o: "\f250";
381 | $fa-var-hourglass-start: "\f251";
382 | $fa-var-houzz: "\f27c";
383 | $fa-var-html5: "\f13b";
384 | $fa-var-i-cursor: "\f246";
385 | $fa-var-id-badge: "\f2c1";
386 | $fa-var-id-card: "\f2c2";
387 | $fa-var-id-card-o: "\f2c3";
388 | $fa-var-ils: "\f20b";
389 | $fa-var-image: "\f03e";
390 | $fa-var-imdb: "\f2d8";
391 | $fa-var-inbox: "\f01c";
392 | $fa-var-indent: "\f03c";
393 | $fa-var-industry: "\f275";
394 | $fa-var-info: "\f129";
395 | $fa-var-info-circle: "\f05a";
396 | $fa-var-inr: "\f156";
397 | $fa-var-instagram: "\f16d";
398 | $fa-var-institution: "\f19c";
399 | $fa-var-internet-explorer: "\f26b";
400 | $fa-var-intersex: "\f224";
401 | $fa-var-ioxhost: "\f208";
402 | $fa-var-italic: "\f033";
403 | $fa-var-joomla: "\f1aa";
404 | $fa-var-jpy: "\f157";
405 | $fa-var-jsfiddle: "\f1cc";
406 | $fa-var-key: "\f084";
407 | $fa-var-keyboard-o: "\f11c";
408 | $fa-var-krw: "\f159";
409 | $fa-var-language: "\f1ab";
410 | $fa-var-laptop: "\f109";
411 | $fa-var-lastfm: "\f202";
412 | $fa-var-lastfm-square: "\f203";
413 | $fa-var-leaf: "\f06c";
414 | $fa-var-leanpub: "\f212";
415 | $fa-var-legal: "\f0e3";
416 | $fa-var-lemon-o: "\f094";
417 | $fa-var-level-down: "\f149";
418 | $fa-var-level-up: "\f148";
419 | $fa-var-life-bouy: "\f1cd";
420 | $fa-var-life-buoy: "\f1cd";
421 | $fa-var-life-ring: "\f1cd";
422 | $fa-var-life-saver: "\f1cd";
423 | $fa-var-lightbulb-o: "\f0eb";
424 | $fa-var-line-chart: "\f201";
425 | $fa-var-link: "\f0c1";
426 | $fa-var-linkedin: "\f0e1";
427 | $fa-var-linkedin-square: "\f08c";
428 | $fa-var-linode: "\f2b8";
429 | $fa-var-linux: "\f17c";
430 | $fa-var-list: "\f03a";
431 | $fa-var-list-alt: "\f022";
432 | $fa-var-list-ol: "\f0cb";
433 | $fa-var-list-ul: "\f0ca";
434 | $fa-var-location-arrow: "\f124";
435 | $fa-var-lock: "\f023";
436 | $fa-var-long-arrow-down: "\f175";
437 | $fa-var-long-arrow-left: "\f177";
438 | $fa-var-long-arrow-right: "\f178";
439 | $fa-var-long-arrow-up: "\f176";
440 | $fa-var-low-vision: "\f2a8";
441 | $fa-var-magic: "\f0d0";
442 | $fa-var-magnet: "\f076";
443 | $fa-var-mail-forward: "\f064";
444 | $fa-var-mail-reply: "\f112";
445 | $fa-var-mail-reply-all: "\f122";
446 | $fa-var-male: "\f183";
447 | $fa-var-map: "\f279";
448 | $fa-var-map-marker: "\f041";
449 | $fa-var-map-o: "\f278";
450 | $fa-var-map-pin: "\f276";
451 | $fa-var-map-signs: "\f277";
452 | $fa-var-mars: "\f222";
453 | $fa-var-mars-double: "\f227";
454 | $fa-var-mars-stroke: "\f229";
455 | $fa-var-mars-stroke-h: "\f22b";
456 | $fa-var-mars-stroke-v: "\f22a";
457 | $fa-var-maxcdn: "\f136";
458 | $fa-var-meanpath: "\f20c";
459 | $fa-var-medium: "\f23a";
460 | $fa-var-medkit: "\f0fa";
461 | $fa-var-meetup: "\f2e0";
462 | $fa-var-meh-o: "\f11a";
463 | $fa-var-mercury: "\f223";
464 | $fa-var-microchip: "\f2db";
465 | $fa-var-microphone: "\f130";
466 | $fa-var-microphone-slash: "\f131";
467 | $fa-var-minus: "\f068";
468 | $fa-var-minus-circle: "\f056";
469 | $fa-var-minus-square: "\f146";
470 | $fa-var-minus-square-o: "\f147";
471 | $fa-var-mixcloud: "\f289";
472 | $fa-var-mobile: "\f10b";
473 | $fa-var-mobile-phone: "\f10b";
474 | $fa-var-modx: "\f285";
475 | $fa-var-money: "\f0d6";
476 | $fa-var-moon-o: "\f186";
477 | $fa-var-mortar-board: "\f19d";
478 | $fa-var-motorcycle: "\f21c";
479 | $fa-var-mouse-pointer: "\f245";
480 | $fa-var-music: "\f001";
481 | $fa-var-navicon: "\f0c9";
482 | $fa-var-neuter: "\f22c";
483 | $fa-var-newspaper-o: "\f1ea";
484 | $fa-var-object-group: "\f247";
485 | $fa-var-object-ungroup: "\f248";
486 | $fa-var-odnoklassniki: "\f263";
487 | $fa-var-odnoklassniki-square: "\f264";
488 | $fa-var-opencart: "\f23d";
489 | $fa-var-openid: "\f19b";
490 | $fa-var-opera: "\f26a";
491 | $fa-var-optin-monster: "\f23c";
492 | $fa-var-outdent: "\f03b";
493 | $fa-var-pagelines: "\f18c";
494 | $fa-var-paint-brush: "\f1fc";
495 | $fa-var-paper-plane: "\f1d8";
496 | $fa-var-paper-plane-o: "\f1d9";
497 | $fa-var-paperclip: "\f0c6";
498 | $fa-var-paragraph: "\f1dd";
499 | $fa-var-paste: "\f0ea";
500 | $fa-var-pause: "\f04c";
501 | $fa-var-pause-circle: "\f28b";
502 | $fa-var-pause-circle-o: "\f28c";
503 | $fa-var-paw: "\f1b0";
504 | $fa-var-paypal: "\f1ed";
505 | $fa-var-pencil: "\f040";
506 | $fa-var-pencil-square: "\f14b";
507 | $fa-var-pencil-square-o: "\f044";
508 | $fa-var-percent: "\f295";
509 | $fa-var-phone: "\f095";
510 | $fa-var-phone-square: "\f098";
511 | $fa-var-photo: "\f03e";
512 | $fa-var-picture-o: "\f03e";
513 | $fa-var-pie-chart: "\f200";
514 | $fa-var-pied-piper: "\f2ae";
515 | $fa-var-pied-piper-alt: "\f1a8";
516 | $fa-var-pied-piper-pp: "\f1a7";
517 | $fa-var-pinterest: "\f0d2";
518 | $fa-var-pinterest-p: "\f231";
519 | $fa-var-pinterest-square: "\f0d3";
520 | $fa-var-plane: "\f072";
521 | $fa-var-play: "\f04b";
522 | $fa-var-play-circle: "\f144";
523 | $fa-var-play-circle-o: "\f01d";
524 | $fa-var-plug: "\f1e6";
525 | $fa-var-plus: "\f067";
526 | $fa-var-plus-circle: "\f055";
527 | $fa-var-plus-square: "\f0fe";
528 | $fa-var-plus-square-o: "\f196";
529 | $fa-var-podcast: "\f2ce";
530 | $fa-var-power-off: "\f011";
531 | $fa-var-print: "\f02f";
532 | $fa-var-product-hunt: "\f288";
533 | $fa-var-puzzle-piece: "\f12e";
534 | $fa-var-qq: "\f1d6";
535 | $fa-var-qrcode: "\f029";
536 | $fa-var-question: "\f128";
537 | $fa-var-question-circle: "\f059";
538 | $fa-var-question-circle-o: "\f29c";
539 | $fa-var-quora: "\f2c4";
540 | $fa-var-quote-left: "\f10d";
541 | $fa-var-quote-right: "\f10e";
542 | $fa-var-ra: "\f1d0";
543 | $fa-var-random: "\f074";
544 | $fa-var-ravelry: "\f2d9";
545 | $fa-var-rebel: "\f1d0";
546 | $fa-var-recycle: "\f1b8";
547 | $fa-var-reddit: "\f1a1";
548 | $fa-var-reddit-alien: "\f281";
549 | $fa-var-reddit-square: "\f1a2";
550 | $fa-var-refresh: "\f021";
551 | $fa-var-registered: "\f25d";
552 | $fa-var-remove: "\f00d";
553 | $fa-var-renren: "\f18b";
554 | $fa-var-reorder: "\f0c9";
555 | $fa-var-repeat: "\f01e";
556 | $fa-var-reply: "\f112";
557 | $fa-var-reply-all: "\f122";
558 | $fa-var-resistance: "\f1d0";
559 | $fa-var-retweet: "\f079";
560 | $fa-var-rmb: "\f157";
561 | $fa-var-road: "\f018";
562 | $fa-var-rocket: "\f135";
563 | $fa-var-rotate-left: "\f0e2";
564 | $fa-var-rotate-right: "\f01e";
565 | $fa-var-rouble: "\f158";
566 | $fa-var-rss: "\f09e";
567 | $fa-var-rss-square: "\f143";
568 | $fa-var-rub: "\f158";
569 | $fa-var-ruble: "\f158";
570 | $fa-var-rupee: "\f156";
571 | $fa-var-s15: "\f2cd";
572 | $fa-var-safari: "\f267";
573 | $fa-var-save: "\f0c7";
574 | $fa-var-scissors: "\f0c4";
575 | $fa-var-scribd: "\f28a";
576 | $fa-var-search: "\f002";
577 | $fa-var-search-minus: "\f010";
578 | $fa-var-search-plus: "\f00e";
579 | $fa-var-sellsy: "\f213";
580 | $fa-var-send: "\f1d8";
581 | $fa-var-send-o: "\f1d9";
582 | $fa-var-server: "\f233";
583 | $fa-var-share: "\f064";
584 | $fa-var-share-alt: "\f1e0";
585 | $fa-var-share-alt-square: "\f1e1";
586 | $fa-var-share-square: "\f14d";
587 | $fa-var-share-square-o: "\f045";
588 | $fa-var-shekel: "\f20b";
589 | $fa-var-sheqel: "\f20b";
590 | $fa-var-shield: "\f132";
591 | $fa-var-ship: "\f21a";
592 | $fa-var-shirtsinbulk: "\f214";
593 | $fa-var-shopping-bag: "\f290";
594 | $fa-var-shopping-basket: "\f291";
595 | $fa-var-shopping-cart: "\f07a";
596 | $fa-var-shower: "\f2cc";
597 | $fa-var-sign-in: "\f090";
598 | $fa-var-sign-language: "\f2a7";
599 | $fa-var-sign-out: "\f08b";
600 | $fa-var-signal: "\f012";
601 | $fa-var-signing: "\f2a7";
602 | $fa-var-simplybuilt: "\f215";
603 | $fa-var-sitemap: "\f0e8";
604 | $fa-var-skyatlas: "\f216";
605 | $fa-var-skype: "\f17e";
606 | $fa-var-slack: "\f198";
607 | $fa-var-sliders: "\f1de";
608 | $fa-var-slideshare: "\f1e7";
609 | $fa-var-smile-o: "\f118";
610 | $fa-var-snapchat: "\f2ab";
611 | $fa-var-snapchat-ghost: "\f2ac";
612 | $fa-var-snapchat-square: "\f2ad";
613 | $fa-var-snowflake-o: "\f2dc";
614 | $fa-var-soccer-ball-o: "\f1e3";
615 | $fa-var-sort: "\f0dc";
616 | $fa-var-sort-alpha-asc: "\f15d";
617 | $fa-var-sort-alpha-desc: "\f15e";
618 | $fa-var-sort-amount-asc: "\f160";
619 | $fa-var-sort-amount-desc: "\f161";
620 | $fa-var-sort-asc: "\f0de";
621 | $fa-var-sort-desc: "\f0dd";
622 | $fa-var-sort-down: "\f0dd";
623 | $fa-var-sort-numeric-asc: "\f162";
624 | $fa-var-sort-numeric-desc: "\f163";
625 | $fa-var-sort-up: "\f0de";
626 | $fa-var-soundcloud: "\f1be";
627 | $fa-var-space-shuttle: "\f197";
628 | $fa-var-spinner: "\f110";
629 | $fa-var-spoon: "\f1b1";
630 | $fa-var-spotify: "\f1bc";
631 | $fa-var-square: "\f0c8";
632 | $fa-var-square-o: "\f096";
633 | $fa-var-stack-exchange: "\f18d";
634 | $fa-var-stack-overflow: "\f16c";
635 | $fa-var-star: "\f005";
636 | $fa-var-star-half: "\f089";
637 | $fa-var-star-half-empty: "\f123";
638 | $fa-var-star-half-full: "\f123";
639 | $fa-var-star-half-o: "\f123";
640 | $fa-var-star-o: "\f006";
641 | $fa-var-steam: "\f1b6";
642 | $fa-var-steam-square: "\f1b7";
643 | $fa-var-step-backward: "\f048";
644 | $fa-var-step-forward: "\f051";
645 | $fa-var-stethoscope: "\f0f1";
646 | $fa-var-sticky-note: "\f249";
647 | $fa-var-sticky-note-o: "\f24a";
648 | $fa-var-stop: "\f04d";
649 | $fa-var-stop-circle: "\f28d";
650 | $fa-var-stop-circle-o: "\f28e";
651 | $fa-var-street-view: "\f21d";
652 | $fa-var-strikethrough: "\f0cc";
653 | $fa-var-stumbleupon: "\f1a4";
654 | $fa-var-stumbleupon-circle: "\f1a3";
655 | $fa-var-subscript: "\f12c";
656 | $fa-var-subway: "\f239";
657 | $fa-var-suitcase: "\f0f2";
658 | $fa-var-sun-o: "\f185";
659 | $fa-var-superpowers: "\f2dd";
660 | $fa-var-superscript: "\f12b";
661 | $fa-var-support: "\f1cd";
662 | $fa-var-table: "\f0ce";
663 | $fa-var-tablet: "\f10a";
664 | $fa-var-tachometer: "\f0e4";
665 | $fa-var-tag: "\f02b";
666 | $fa-var-tags: "\f02c";
667 | $fa-var-tasks: "\f0ae";
668 | $fa-var-taxi: "\f1ba";
669 | $fa-var-telegram: "\f2c6";
670 | $fa-var-television: "\f26c";
671 | $fa-var-tencent-weibo: "\f1d5";
672 | $fa-var-terminal: "\f120";
673 | $fa-var-text-height: "\f034";
674 | $fa-var-text-width: "\f035";
675 | $fa-var-th: "\f00a";
676 | $fa-var-th-large: "\f009";
677 | $fa-var-th-list: "\f00b";
678 | $fa-var-themeisle: "\f2b2";
679 | $fa-var-thermometer: "\f2c7";
680 | $fa-var-thermometer-0: "\f2cb";
681 | $fa-var-thermometer-1: "\f2ca";
682 | $fa-var-thermometer-2: "\f2c9";
683 | $fa-var-thermometer-3: "\f2c8";
684 | $fa-var-thermometer-4: "\f2c7";
685 | $fa-var-thermometer-empty: "\f2cb";
686 | $fa-var-thermometer-full: "\f2c7";
687 | $fa-var-thermometer-half: "\f2c9";
688 | $fa-var-thermometer-quarter: "\f2ca";
689 | $fa-var-thermometer-three-quarters: "\f2c8";
690 | $fa-var-thumb-tack: "\f08d";
691 | $fa-var-thumbs-down: "\f165";
692 | $fa-var-thumbs-o-down: "\f088";
693 | $fa-var-thumbs-o-up: "\f087";
694 | $fa-var-thumbs-up: "\f164";
695 | $fa-var-ticket: "\f145";
696 | $fa-var-times: "\f00d";
697 | $fa-var-times-circle: "\f057";
698 | $fa-var-times-circle-o: "\f05c";
699 | $fa-var-times-rectangle: "\f2d3";
700 | $fa-var-times-rectangle-o: "\f2d4";
701 | $fa-var-tint: "\f043";
702 | $fa-var-toggle-down: "\f150";
703 | $fa-var-toggle-left: "\f191";
704 | $fa-var-toggle-off: "\f204";
705 | $fa-var-toggle-on: "\f205";
706 | $fa-var-toggle-right: "\f152";
707 | $fa-var-toggle-up: "\f151";
708 | $fa-var-trademark: "\f25c";
709 | $fa-var-train: "\f238";
710 | $fa-var-transgender: "\f224";
711 | $fa-var-transgender-alt: "\f225";
712 | $fa-var-trash: "\f1f8";
713 | $fa-var-trash-o: "\f014";
714 | $fa-var-tree: "\f1bb";
715 | $fa-var-trello: "\f181";
716 | $fa-var-tripadvisor: "\f262";
717 | $fa-var-trophy: "\f091";
718 | $fa-var-truck: "\f0d1";
719 | $fa-var-try: "\f195";
720 | $fa-var-tty: "\f1e4";
721 | $fa-var-tumblr: "\f173";
722 | $fa-var-tumblr-square: "\f174";
723 | $fa-var-turkish-lira: "\f195";
724 | $fa-var-tv: "\f26c";
725 | $fa-var-twitch: "\f1e8";
726 | $fa-var-twitter: "\f099";
727 | $fa-var-twitter-square: "\f081";
728 | $fa-var-umbrella: "\f0e9";
729 | $fa-var-underline: "\f0cd";
730 | $fa-var-undo: "\f0e2";
731 | $fa-var-universal-access: "\f29a";
732 | $fa-var-university: "\f19c";
733 | $fa-var-unlink: "\f127";
734 | $fa-var-unlock: "\f09c";
735 | $fa-var-unlock-alt: "\f13e";
736 | $fa-var-unsorted: "\f0dc";
737 | $fa-var-upload: "\f093";
738 | $fa-var-usb: "\f287";
739 | $fa-var-usd: "\f155";
740 | $fa-var-user: "\f007";
741 | $fa-var-user-circle: "\f2bd";
742 | $fa-var-user-circle-o: "\f2be";
743 | $fa-var-user-md: "\f0f0";
744 | $fa-var-user-o: "\f2c0";
745 | $fa-var-user-plus: "\f234";
746 | $fa-var-user-secret: "\f21b";
747 | $fa-var-user-times: "\f235";
748 | $fa-var-users: "\f0c0";
749 | $fa-var-vcard: "\f2bb";
750 | $fa-var-vcard-o: "\f2bc";
751 | $fa-var-venus: "\f221";
752 | $fa-var-venus-double: "\f226";
753 | $fa-var-venus-mars: "\f228";
754 | $fa-var-viacoin: "\f237";
755 | $fa-var-viadeo: "\f2a9";
756 | $fa-var-viadeo-square: "\f2aa";
757 | $fa-var-video-camera: "\f03d";
758 | $fa-var-vimeo: "\f27d";
759 | $fa-var-vimeo-square: "\f194";
760 | $fa-var-vine: "\f1ca";
761 | $fa-var-vk: "\f189";
762 | $fa-var-volume-control-phone: "\f2a0";
763 | $fa-var-volume-down: "\f027";
764 | $fa-var-volume-off: "\f026";
765 | $fa-var-volume-up: "\f028";
766 | $fa-var-warning: "\f071";
767 | $fa-var-wechat: "\f1d7";
768 | $fa-var-weibo: "\f18a";
769 | $fa-var-weixin: "\f1d7";
770 | $fa-var-whatsapp: "\f232";
771 | $fa-var-wheelchair: "\f193";
772 | $fa-var-wheelchair-alt: "\f29b";
773 | $fa-var-wifi: "\f1eb";
774 | $fa-var-wikipedia-w: "\f266";
775 | $fa-var-window-close: "\f2d3";
776 | $fa-var-window-close-o: "\f2d4";
777 | $fa-var-window-maximize: "\f2d0";
778 | $fa-var-window-minimize: "\f2d1";
779 | $fa-var-window-restore: "\f2d2";
780 | $fa-var-windows: "\f17a";
781 | $fa-var-won: "\f159";
782 | $fa-var-wordpress: "\f19a";
783 | $fa-var-wpbeginner: "\f297";
784 | $fa-var-wpexplorer: "\f2de";
785 | $fa-var-wpforms: "\f298";
786 | $fa-var-wrench: "\f0ad";
787 | $fa-var-xing: "\f168";
788 | $fa-var-xing-square: "\f169";
789 | $fa-var-y-combinator: "\f23b";
790 | $fa-var-y-combinator-square: "\f1d4";
791 | $fa-var-yahoo: "\f19e";
792 | $fa-var-yc: "\f23b";
793 | $fa-var-yc-square: "\f1d4";
794 | $fa-var-yelp: "\f1e9";
795 | $fa-var-yen: "\f157";
796 | $fa-var-yoast: "\f2b1";
797 | $fa-var-youtube: "\f167";
798 | $fa-var-youtube-play: "\f16a";
799 | $fa-var-youtube-square: "\f166";
800 |
801 |
--------------------------------------------------------------------------------
/src/copied/assets/fonts/font-awesome/css/font-awesome.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} .fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%} .fa-2x{font-size:2em} .fa-3x{font-size:3em} .fa-4x{font-size:4em} .fa-5x{font-size:5em} .fa-fw{width:1.28571429em;text-align:center} .fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none} .fa-ul>li{position:relative} .fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center} .fa-li.fa-lg{left:-1.85714286em} .fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em} .fa-pull-left{float:left} .fa-pull-right{float:right} .fa.fa-pull-left{margin-right:.3em} .fa.fa-pull-right{margin-left:.3em} .pull-right{float:right} .pull-left{float:left} .fa.pull-left{margin-right:.3em} .fa.pull-right{margin-left:.3em} .fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear} .fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)} @-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} @keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} .fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)} .fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)} .fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)} .fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)} .fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)} :root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none} .fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle} .fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center} .fa-stack-1x{line-height:inherit} .fa-stack-2x{font-size:2em} .fa-inverse{color:#fff} .fa-glass:before{content:"\f000"} .fa-music:before{content:"\f001"} .fa-search:before{content:"\f002"} .fa-envelope-o:before{content:"\f003"} .fa-heart:before{content:"\f004"} .fa-star:before{content:"\f005"} .fa-star-o:before{content:"\f006"} .fa-user:before{content:"\f007"} .fa-film:before{content:"\f008"} .fa-th-large:before{content:"\f009"} .fa-th:before{content:"\f00a"} .fa-th-list:before{content:"\f00b"} .fa-check:before{content:"\f00c"} .fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"} .fa-search-plus:before{content:"\f00e"} .fa-search-minus:before{content:"\f010"} .fa-power-off:before{content:"\f011"} .fa-signal:before{content:"\f012"} .fa-gear:before,.fa-cog:before{content:"\f013"} .fa-trash-o:before{content:"\f014"} .fa-home:before{content:"\f015"} .fa-file-o:before{content:"\f016"} .fa-clock-o:before{content:"\f017"} .fa-road:before{content:"\f018"} .fa-download:before{content:"\f019"} .fa-arrow-circle-o-down:before{content:"\f01a"} .fa-arrow-circle-o-up:before{content:"\f01b"} .fa-inbox:before{content:"\f01c"} .fa-play-circle-o:before{content:"\f01d"} .fa-rotate-right:before,.fa-repeat:before{content:"\f01e"} .fa-refresh:before{content:"\f021"} .fa-list-alt:before{content:"\f022"} .fa-lock:before{content:"\f023"} .fa-flag:before{content:"\f024"} .fa-headphones:before{content:"\f025"} .fa-volume-off:before{content:"\f026"} .fa-volume-down:before{content:"\f027"} .fa-volume-up:before{content:"\f028"} .fa-qrcode:before{content:"\f029"} .fa-barcode:before{content:"\f02a"} .fa-tag:before{content:"\f02b"} .fa-tags:before{content:"\f02c"} .fa-book:before{content:"\f02d"} .fa-bookmark:before{content:"\f02e"} .fa-print:before{content:"\f02f"} .fa-camera:before{content:"\f030"} .fa-font:before{content:"\f031"} .fa-bold:before{content:"\f032"} .fa-italic:before{content:"\f033"} .fa-text-height:before{content:"\f034"} .fa-text-width:before{content:"\f035"} .fa-align-left:before{content:"\f036"} .fa-align-center:before{content:"\f037"} .fa-align-right:before{content:"\f038"} .fa-align-justify:before{content:"\f039"} .fa-list:before{content:"\f03a"} .fa-dedent:before,.fa-outdent:before{content:"\f03b"} .fa-indent:before{content:"\f03c"} .fa-video-camera:before{content:"\f03d"} .fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"} .fa-pencil:before{content:"\f040"} .fa-map-marker:before{content:"\f041"} .fa-adjust:before{content:"\f042"} .fa-tint:before{content:"\f043"} .fa-edit:before,.fa-pencil-square-o:before{content:"\f044"} .fa-share-square-o:before{content:"\f045"} .fa-check-square-o:before{content:"\f046"} .fa-arrows:before{content:"\f047"} .fa-step-backward:before{content:"\f048"} .fa-fast-backward:before{content:"\f049"} .fa-backward:before{content:"\f04a"} .fa-play:before{content:"\f04b"} .fa-pause:before{content:"\f04c"} .fa-stop:before{content:"\f04d"} .fa-forward:before{content:"\f04e"} .fa-fast-forward:before{content:"\f050"} .fa-step-forward:before{content:"\f051"} .fa-eject:before{content:"\f052"} .fa-chevron-left:before{content:"\f053"} .fa-chevron-right:before{content:"\f054"} .fa-plus-circle:before{content:"\f055"} .fa-minus-circle:before{content:"\f056"} .fa-times-circle:before{content:"\f057"} .fa-check-circle:before{content:"\f058"} .fa-question-circle:before{content:"\f059"} .fa-info-circle:before{content:"\f05a"} .fa-crosshairs:before{content:"\f05b"} .fa-times-circle-o:before{content:"\f05c"} .fa-check-circle-o:before{content:"\f05d"} .fa-ban:before{content:"\f05e"} .fa-arrow-left:before{content:"\f060"} .fa-arrow-right:before{content:"\f061"} .fa-arrow-up:before{content:"\f062"} .fa-arrow-down:before{content:"\f063"} .fa-mail-forward:before,.fa-share:before{content:"\f064"} .fa-expand:before{content:"\f065"} .fa-compress:before{content:"\f066"} .fa-plus:before{content:"\f067"} .fa-minus:before{content:"\f068"} .fa-asterisk:before{content:"\f069"} .fa-exclamation-circle:before{content:"\f06a"} .fa-gift:before{content:"\f06b"} .fa-leaf:before{content:"\f06c"} .fa-fire:before{content:"\f06d"} .fa-eye:before{content:"\f06e"} .fa-eye-slash:before{content:"\f070"} .fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"} .fa-plane:before{content:"\f072"} .fa-calendar:before{content:"\f073"} .fa-random:before{content:"\f074"} .fa-comment:before{content:"\f075"} .fa-magnet:before{content:"\f076"} .fa-chevron-up:before{content:"\f077"} .fa-chevron-down:before{content:"\f078"} .fa-retweet:before{content:"\f079"} .fa-shopping-cart:before{content:"\f07a"} .fa-folder:before{content:"\f07b"} .fa-folder-open:before{content:"\f07c"} .fa-arrows-v:before{content:"\f07d"} .fa-arrows-h:before{content:"\f07e"} .fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"} .fa-twitter-square:before{content:"\f081"} .fa-facebook-square:before{content:"\f082"} .fa-camera-retro:before{content:"\f083"} .fa-key:before{content:"\f084"} .fa-gears:before,.fa-cogs:before{content:"\f085"} .fa-comments:before{content:"\f086"} .fa-thumbs-o-up:before{content:"\f087"} .fa-thumbs-o-down:before{content:"\f088"} .fa-star-half:before{content:"\f089"} .fa-heart-o:before{content:"\f08a"} .fa-sign-out:before{content:"\f08b"} .fa-linkedin-square:before{content:"\f08c"} .fa-thumb-tack:before{content:"\f08d"} .fa-external-link:before{content:"\f08e"} .fa-sign-in:before{content:"\f090"} .fa-trophy:before{content:"\f091"} .fa-github-square:before{content:"\f092"} .fa-upload:before{content:"\f093"} .fa-lemon-o:before{content:"\f094"} .fa-phone:before{content:"\f095"} .fa-square-o:before{content:"\f096"} .fa-bookmark-o:before{content:"\f097"} .fa-phone-square:before{content:"\f098"} .fa-twitter:before{content:"\f099"} .fa-facebook-f:before,.fa-facebook:before{content:"\f09a"} .fa-github:before{content:"\f09b"} .fa-unlock:before{content:"\f09c"} .fa-credit-card:before{content:"\f09d"} .fa-feed:before,.fa-rss:before{content:"\f09e"} .fa-hdd-o:before{content:"\f0a0"} .fa-bullhorn:before{content:"\f0a1"} .fa-bell:before{content:"\f0f3"} .fa-certificate:before{content:"\f0a3"} .fa-hand-o-right:before{content:"\f0a4"} .fa-hand-o-left:before{content:"\f0a5"} .fa-hand-o-up:before{content:"\f0a6"} .fa-hand-o-down:before{content:"\f0a7"} .fa-arrow-circle-left:before{content:"\f0a8"} .fa-arrow-circle-right:before{content:"\f0a9"} .fa-arrow-circle-up:before{content:"\f0aa"} .fa-arrow-circle-down:before{content:"\f0ab"} .fa-globe:before{content:"\f0ac"} .fa-wrench:before{content:"\f0ad"} .fa-tasks:before{content:"\f0ae"} .fa-filter:before{content:"\f0b0"} .fa-briefcase:before{content:"\f0b1"} .fa-arrows-alt:before{content:"\f0b2"} .fa-group:before,.fa-users:before{content:"\f0c0"} .fa-chain:before,.fa-link:before{content:"\f0c1"} .fa-cloud:before{content:"\f0c2"} .fa-flask:before{content:"\f0c3"} .fa-cut:before,.fa-scissors:before{content:"\f0c4"} .fa-copy:before,.fa-files-o:before{content:"\f0c5"} .fa-paperclip:before{content:"\f0c6"} .fa-save:before,.fa-floppy-o:before{content:"\f0c7"} .fa-square:before{content:"\f0c8"} .fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"} .fa-list-ul:before{content:"\f0ca"} .fa-list-ol:before{content:"\f0cb"} .fa-strikethrough:before{content:"\f0cc"} .fa-underline:before{content:"\f0cd"} .fa-table:before{content:"\f0ce"} .fa-magic:before{content:"\f0d0"} .fa-truck:before{content:"\f0d1"} .fa-pinterest:before{content:"\f0d2"} .fa-pinterest-square:before{content:"\f0d3"} .fa-google-plus-square:before{content:"\f0d4"} .fa-google-plus:before{content:"\f0d5"} .fa-money:before{content:"\f0d6"} .fa-caret-down:before{content:"\f0d7"} .fa-caret-up:before{content:"\f0d8"} .fa-caret-left:before{content:"\f0d9"} .fa-caret-right:before{content:"\f0da"} .fa-columns:before{content:"\f0db"} .fa-unsorted:before,.fa-sort:before{content:"\f0dc"} .fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"} .fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"} .fa-envelope:before{content:"\f0e0"} .fa-linkedin:before{content:"\f0e1"} .fa-rotate-left:before,.fa-undo:before{content:"\f0e2"} .fa-legal:before,.fa-gavel:before{content:"\f0e3"} .fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"} .fa-comment-o:before{content:"\f0e5"} .fa-comments-o:before{content:"\f0e6"} .fa-flash:before,.fa-bolt:before{content:"\f0e7"} .fa-sitemap:before{content:"\f0e8"} .fa-umbrella:before{content:"\f0e9"} .fa-paste:before,.fa-clipboard:before{content:"\f0ea"} .fa-lightbulb-o:before{content:"\f0eb"} .fa-exchange:before{content:"\f0ec"} .fa-cloud-download:before{content:"\f0ed"} .fa-cloud-upload:before{content:"\f0ee"} .fa-user-md:before{content:"\f0f0"} .fa-stethoscope:before{content:"\f0f1"} .fa-suitcase:before{content:"\f0f2"} .fa-bell-o:before{content:"\f0a2"} .fa-coffee:before{content:"\f0f4"} .fa-cutlery:before{content:"\f0f5"} .fa-file-text-o:before{content:"\f0f6"} .fa-building-o:before{content:"\f0f7"} .fa-hospital-o:before{content:"\f0f8"} .fa-ambulance:before{content:"\f0f9"} .fa-medkit:before{content:"\f0fa"} .fa-fighter-jet:before{content:"\f0fb"} .fa-beer:before{content:"\f0fc"} .fa-h-square:before{content:"\f0fd"} .fa-plus-square:before{content:"\f0fe"} .fa-angle-double-left:before{content:"\f100"} .fa-angle-double-right:before{content:"\f101"} .fa-angle-double-up:before{content:"\f102"} .fa-angle-double-down:before{content:"\f103"} .fa-angle-left:before{content:"\f104"} .fa-angle-right:before{content:"\f105"} .fa-angle-up:before{content:"\f106"} .fa-angle-down:before{content:"\f107"} .fa-desktop:before{content:"\f108"} .fa-laptop:before{content:"\f109"} .fa-tablet:before{content:"\f10a"} .fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"} .fa-circle-o:before{content:"\f10c"} .fa-quote-left:before{content:"\f10d"} .fa-quote-right:before{content:"\f10e"} .fa-spinner:before{content:"\f110"} .fa-circle:before{content:"\f111"} .fa-mail-reply:before,.fa-reply:before{content:"\f112"} .fa-github-alt:before{content:"\f113"} .fa-folder-o:before{content:"\f114"} .fa-folder-open-o:before{content:"\f115"} .fa-smile-o:before{content:"\f118"} .fa-frown-o:before{content:"\f119"} .fa-meh-o:before{content:"\f11a"} .fa-gamepad:before{content:"\f11b"} .fa-keyboard-o:before{content:"\f11c"} .fa-flag-o:before{content:"\f11d"} .fa-flag-checkered:before{content:"\f11e"} .fa-terminal:before{content:"\f120"} .fa-code:before{content:"\f121"} .fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"} .fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"} .fa-location-arrow:before{content:"\f124"} .fa-crop:before{content:"\f125"} .fa-code-fork:before{content:"\f126"} .fa-unlink:before,.fa-chain-broken:before{content:"\f127"} .fa-question:before{content:"\f128"} .fa-info:before{content:"\f129"} .fa-exclamation:before{content:"\f12a"} .fa-superscript:before{content:"\f12b"} .fa-subscript:before{content:"\f12c"} .fa-eraser:before{content:"\f12d"} .fa-puzzle-piece:before{content:"\f12e"} .fa-microphone:before{content:"\f130"} .fa-microphone-slash:before{content:"\f131"} .fa-shield:before{content:"\f132"} .fa-calendar-o:before{content:"\f133"} .fa-fire-extinguisher:before{content:"\f134"} .fa-rocket:before{content:"\f135"} .fa-maxcdn:before{content:"\f136"} .fa-chevron-circle-left:before{content:"\f137"} .fa-chevron-circle-right:before{content:"\f138"} .fa-chevron-circle-up:before{content:"\f139"} .fa-chevron-circle-down:before{content:"\f13a"} .fa-html5:before{content:"\f13b"} .fa-css3:before{content:"\f13c"} .fa-anchor:before{content:"\f13d"} .fa-unlock-alt:before{content:"\f13e"} .fa-bullseye:before{content:"\f140"} .fa-ellipsis-h:before{content:"\f141"} .fa-ellipsis-v:before{content:"\f142"} .fa-rss-square:before{content:"\f143"} .fa-play-circle:before{content:"\f144"} .fa-ticket:before{content:"\f145"} .fa-minus-square:before{content:"\f146"} .fa-minus-square-o:before{content:"\f147"} .fa-level-up:before{content:"\f148"} .fa-level-down:before{content:"\f149"} .fa-check-square:before{content:"\f14a"} .fa-pencil-square:before{content:"\f14b"} .fa-external-link-square:before{content:"\f14c"} .fa-share-square:before{content:"\f14d"} .fa-compass:before{content:"\f14e"} .fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"} .fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"} .fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"} .fa-euro:before,.fa-eur:before{content:"\f153"} .fa-gbp:before{content:"\f154"} .fa-dollar:before,.fa-usd:before{content:"\f155"} .fa-rupee:before,.fa-inr:before{content:"\f156"} .fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"} .fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"} .fa-won:before,.fa-krw:before{content:"\f159"} .fa-bitcoin:before,.fa-btc:before{content:"\f15a"} .fa-file:before{content:"\f15b"} .fa-file-text:before{content:"\f15c"} .fa-sort-alpha-asc:before{content:"\f15d"} .fa-sort-alpha-desc:before{content:"\f15e"} .fa-sort-amount-asc:before{content:"\f160"} .fa-sort-amount-desc:before{content:"\f161"} .fa-sort-numeric-asc:before{content:"\f162"} .fa-sort-numeric-desc:before{content:"\f163"} .fa-thumbs-up:before{content:"\f164"} .fa-thumbs-down:before{content:"\f165"} .fa-youtube-square:before{content:"\f166"} .fa-youtube:before{content:"\f167"} .fa-xing:before{content:"\f168"} .fa-xing-square:before{content:"\f169"} .fa-youtube-play:before{content:"\f16a"} .fa-dropbox:before{content:"\f16b"} .fa-stack-overflow:before{content:"\f16c"} .fa-instagram:before{content:"\f16d"} .fa-flickr:before{content:"\f16e"} .fa-adn:before{content:"\f170"} .fa-bitbucket:before{content:"\f171"} .fa-bitbucket-square:before{content:"\f172"} .fa-tumblr:before{content:"\f173"} .fa-tumblr-square:before{content:"\f174"} .fa-long-arrow-down:before{content:"\f175"} .fa-long-arrow-up:before{content:"\f176"} .fa-long-arrow-left:before{content:"\f177"} .fa-long-arrow-right:before{content:"\f178"} .fa-apple:before{content:"\f179"} .fa-windows:before{content:"\f17a"} .fa-android:before{content:"\f17b"} .fa-linux:before{content:"\f17c"} .fa-dribbble:before{content:"\f17d"} .fa-skype:before{content:"\f17e"} .fa-foursquare:before{content:"\f180"} .fa-trello:before{content:"\f181"} .fa-female:before{content:"\f182"} .fa-male:before{content:"\f183"} .fa-gittip:before,.fa-gratipay:before{content:"\f184"} .fa-sun-o:before{content:"\f185"} .fa-moon-o:before{content:"\f186"} .fa-archive:before{content:"\f187"} .fa-bug:before{content:"\f188"} .fa-vk:before{content:"\f189"} .fa-weibo:before{content:"\f18a"} .fa-renren:before{content:"\f18b"} .fa-pagelines:before{content:"\f18c"} .fa-stack-exchange:before{content:"\f18d"} .fa-arrow-circle-o-right:before{content:"\f18e"} .fa-arrow-circle-o-left:before{content:"\f190"} .fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"} .fa-dot-circle-o:before{content:"\f192"} .fa-wheelchair:before{content:"\f193"} .fa-vimeo-square:before{content:"\f194"} .fa-turkish-lira:before,.fa-try:before{content:"\f195"} .fa-plus-square-o:before{content:"\f196"} .fa-space-shuttle:before{content:"\f197"} .fa-slack:before{content:"\f198"} .fa-envelope-square:before{content:"\f199"} .fa-wordpress:before{content:"\f19a"} .fa-openid:before{content:"\f19b"} .fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"} .fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"} .fa-yahoo:before{content:"\f19e"} .fa-google:before{content:"\f1a0"} .fa-reddit:before{content:"\f1a1"} .fa-reddit-square:before{content:"\f1a2"} .fa-stumbleupon-circle:before{content:"\f1a3"} .fa-stumbleupon:before{content:"\f1a4"} .fa-delicious:before{content:"\f1a5"} .fa-digg:before{content:"\f1a6"} .fa-pied-piper-pp:before{content:"\f1a7"} .fa-pied-piper-alt:before{content:"\f1a8"} .fa-drupal:before{content:"\f1a9"} .fa-joomla:before{content:"\f1aa"} .fa-language:before{content:"\f1ab"} .fa-fax:before{content:"\f1ac"} .fa-building:before{content:"\f1ad"} .fa-child:before{content:"\f1ae"} .fa-paw:before{content:"\f1b0"} .fa-spoon:before{content:"\f1b1"} .fa-cube:before{content:"\f1b2"} .fa-cubes:before{content:"\f1b3"} .fa-behance:before{content:"\f1b4"} .fa-behance-square:before{content:"\f1b5"} .fa-steam:before{content:"\f1b6"} .fa-steam-square:before{content:"\f1b7"} .fa-recycle:before{content:"\f1b8"} .fa-automobile:before,.fa-car:before{content:"\f1b9"} .fa-cab:before,.fa-taxi:before{content:"\f1ba"} .fa-tree:before{content:"\f1bb"} .fa-spotify:before{content:"\f1bc"} .fa-deviantart:before{content:"\f1bd"} .fa-soundcloud:before{content:"\f1be"} .fa-database:before{content:"\f1c0"} .fa-file-pdf-o:before{content:"\f1c1"} .fa-file-word-o:before{content:"\f1c2"} .fa-file-excel-o:before{content:"\f1c3"} .fa-file-powerpoint-o:before{content:"\f1c4"} .fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"} .fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"} .fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"} .fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"} .fa-file-code-o:before{content:"\f1c9"} .fa-vine:before{content:"\f1ca"} .fa-codepen:before{content:"\f1cb"} .fa-jsfiddle:before{content:"\f1cc"} .fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"} .fa-circle-o-notch:before{content:"\f1ce"} .fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"} .fa-ge:before,.fa-empire:before{content:"\f1d1"} .fa-git-square:before{content:"\f1d2"} .fa-git:before{content:"\f1d3"} .fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"} .fa-tencent-weibo:before{content:"\f1d5"} .fa-qq:before{content:"\f1d6"} .fa-wechat:before,.fa-weixin:before{content:"\f1d7"} .fa-send:before,.fa-paper-plane:before{content:"\f1d8"} .fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"} .fa-history:before{content:"\f1da"} .fa-circle-thin:before{content:"\f1db"} .fa-header:before{content:"\f1dc"} .fa-paragraph:before{content:"\f1dd"} .fa-sliders:before{content:"\f1de"} .fa-share-alt:before{content:"\f1e0"} .fa-share-alt-square:before{content:"\f1e1"} .fa-bomb:before{content:"\f1e2"} .fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"} .fa-tty:before{content:"\f1e4"} .fa-binoculars:before{content:"\f1e5"} .fa-plug:before{content:"\f1e6"} .fa-slideshare:before{content:"\f1e7"} .fa-twitch:before{content:"\f1e8"} .fa-yelp:before{content:"\f1e9"} .fa-newspaper-o:before{content:"\f1ea"} .fa-wifi:before{content:"\f1eb"} .fa-calculator:before{content:"\f1ec"} .fa-paypal:before{content:"\f1ed"} .fa-google-wallet:before{content:"\f1ee"} .fa-cc-visa:before{content:"\f1f0"} .fa-cc-mastercard:before{content:"\f1f1"} .fa-cc-discover:before{content:"\f1f2"} .fa-cc-amex:before{content:"\f1f3"} .fa-cc-paypal:before{content:"\f1f4"} .fa-cc-stripe:before{content:"\f1f5"} .fa-bell-slash:before{content:"\f1f6"} .fa-bell-slash-o:before{content:"\f1f7"} .fa-trash:before{content:"\f1f8"} .fa-copyright:before{content:"\f1f9"} .fa-at:before{content:"\f1fa"} .fa-eyedropper:before{content:"\f1fb"} .fa-paint-brush:before{content:"\f1fc"} .fa-birthday-cake:before{content:"\f1fd"} .fa-area-chart:before{content:"\f1fe"} .fa-pie-chart:before{content:"\f200"} .fa-line-chart:before{content:"\f201"} .fa-lastfm:before{content:"\f202"} .fa-lastfm-square:before{content:"\f203"} .fa-toggle-off:before{content:"\f204"} .fa-toggle-on:before{content:"\f205"} .fa-bicycle:before{content:"\f206"} .fa-bus:before{content:"\f207"} .fa-ioxhost:before{content:"\f208"} .fa-angellist:before{content:"\f209"} .fa-cc:before{content:"\f20a"} .fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"} .fa-meanpath:before{content:"\f20c"} .fa-buysellads:before{content:"\f20d"} .fa-connectdevelop:before{content:"\f20e"} .fa-dashcube:before{content:"\f210"} .fa-forumbee:before{content:"\f211"} .fa-leanpub:before{content:"\f212"} .fa-sellsy:before{content:"\f213"} .fa-shirtsinbulk:before{content:"\f214"} .fa-simplybuilt:before{content:"\f215"} .fa-skyatlas:before{content:"\f216"} .fa-cart-plus:before{content:"\f217"} .fa-cart-arrow-down:before{content:"\f218"} .fa-diamond:before{content:"\f219"} .fa-ship:before{content:"\f21a"} .fa-user-secret:before{content:"\f21b"} .fa-motorcycle:before{content:"\f21c"} .fa-street-view:before{content:"\f21d"} .fa-heartbeat:before{content:"\f21e"} .fa-venus:before{content:"\f221"} .fa-mars:before{content:"\f222"} .fa-mercury:before{content:"\f223"} .fa-intersex:before,.fa-transgender:before{content:"\f224"} .fa-transgender-alt:before{content:"\f225"} .fa-venus-double:before{content:"\f226"} .fa-mars-double:before{content:"\f227"} .fa-venus-mars:before{content:"\f228"} .fa-mars-stroke:before{content:"\f229"} .fa-mars-stroke-v:before{content:"\f22a"} .fa-mars-stroke-h:before{content:"\f22b"} .fa-neuter:before{content:"\f22c"} .fa-genderless:before{content:"\f22d"} .fa-facebook-official:before{content:"\f230"} .fa-pinterest-p:before{content:"\f231"} .fa-whatsapp:before{content:"\f232"} .fa-server:before{content:"\f233"} .fa-user-plus:before{content:"\f234"} .fa-user-times:before{content:"\f235"} .fa-hotel:before,.fa-bed:before{content:"\f236"} .fa-viacoin:before{content:"\f237"} .fa-train:before{content:"\f238"} .fa-subway:before{content:"\f239"} .fa-medium:before{content:"\f23a"} .fa-yc:before,.fa-y-combinator:before{content:"\f23b"} .fa-optin-monster:before{content:"\f23c"} .fa-opencart:before{content:"\f23d"} .fa-expeditedssl:before{content:"\f23e"} .fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"} .fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"} .fa-battery-2:before,.fa-battery-half:before{content:"\f242"} .fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"} .fa-battery-0:before,.fa-battery-empty:before{content:"\f244"} .fa-mouse-pointer:before{content:"\f245"} .fa-i-cursor:before{content:"\f246"} .fa-object-group:before{content:"\f247"} .fa-object-ungroup:before{content:"\f248"} .fa-sticky-note:before{content:"\f249"} .fa-sticky-note-o:before{content:"\f24a"} .fa-cc-jcb:before{content:"\f24b"} .fa-cc-diners-club:before{content:"\f24c"} .fa-clone:before{content:"\f24d"} .fa-balance-scale:before{content:"\f24e"} .fa-hourglass-o:before{content:"\f250"} .fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"} .fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"} .fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"} .fa-hourglass:before{content:"\f254"} .fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"} .fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"} .fa-hand-scissors-o:before{content:"\f257"} .fa-hand-lizard-o:before{content:"\f258"} .fa-hand-spock-o:before{content:"\f259"} .fa-hand-pointer-o:before{content:"\f25a"} .fa-hand-peace-o:before{content:"\f25b"} .fa-trademark:before{content:"\f25c"} .fa-registered:before{content:"\f25d"} .fa-creative-commons:before{content:"\f25e"} .fa-gg:before{content:"\f260"} .fa-gg-circle:before{content:"\f261"} .fa-tripadvisor:before{content:"\f262"} .fa-odnoklassniki:before{content:"\f263"} .fa-odnoklassniki-square:before{content:"\f264"} .fa-get-pocket:before{content:"\f265"} .fa-wikipedia-w:before{content:"\f266"} .fa-safari:before{content:"\f267"} .fa-chrome:before{content:"\f268"} .fa-firefox:before{content:"\f269"} .fa-opera:before{content:"\f26a"} .fa-internet-explorer:before{content:"\f26b"} .fa-tv:before,.fa-television:before{content:"\f26c"} .fa-contao:before{content:"\f26d"} .fa-500px:before{content:"\f26e"} .fa-amazon:before{content:"\f270"} .fa-calendar-plus-o:before{content:"\f271"} .fa-calendar-minus-o:before{content:"\f272"} .fa-calendar-times-o:before{content:"\f273"} .fa-calendar-check-o:before{content:"\f274"} .fa-industry:before{content:"\f275"} .fa-map-pin:before{content:"\f276"} .fa-map-signs:before{content:"\f277"} .fa-map-o:before{content:"\f278"} .fa-map:before{content:"\f279"} .fa-commenting:before{content:"\f27a"} .fa-commenting-o:before{content:"\f27b"} .fa-houzz:before{content:"\f27c"} .fa-vimeo:before{content:"\f27d"} .fa-black-tie:before{content:"\f27e"} .fa-fonticons:before{content:"\f280"} .fa-reddit-alien:before{content:"\f281"} .fa-edge:before{content:"\f282"} .fa-credit-card-alt:before{content:"\f283"} .fa-codiepie:before{content:"\f284"} .fa-modx:before{content:"\f285"} .fa-fort-awesome:before{content:"\f286"} .fa-usb:before{content:"\f287"} .fa-product-hunt:before{content:"\f288"} .fa-mixcloud:before{content:"\f289"} .fa-scribd:before{content:"\f28a"} .fa-pause-circle:before{content:"\f28b"} .fa-pause-circle-o:before{content:"\f28c"} .fa-stop-circle:before{content:"\f28d"} .fa-stop-circle-o:before{content:"\f28e"} .fa-shopping-bag:before{content:"\f290"} .fa-shopping-basket:before{content:"\f291"} .fa-hashtag:before{content:"\f292"} .fa-bluetooth:before{content:"\f293"} .fa-bluetooth-b:before{content:"\f294"} .fa-percent:before{content:"\f295"} .fa-gitlab:before{content:"\f296"} .fa-wpbeginner:before{content:"\f297"} .fa-wpforms:before{content:"\f298"} .fa-envira:before{content:"\f299"} .fa-universal-access:before{content:"\f29a"} .fa-wheelchair-alt:before{content:"\f29b"} .fa-question-circle-o:before{content:"\f29c"} .fa-blind:before{content:"\f29d"} .fa-audio-description:before{content:"\f29e"} .fa-volume-control-phone:before{content:"\f2a0"} .fa-braille:before{content:"\f2a1"} .fa-assistive-listening-systems:before{content:"\f2a2"} .fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"} .fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"} .fa-glide:before{content:"\f2a5"} .fa-glide-g:before{content:"\f2a6"} .fa-signing:before,.fa-sign-language:before{content:"\f2a7"} .fa-low-vision:before{content:"\f2a8"} .fa-viadeo:before{content:"\f2a9"} .fa-viadeo-square:before{content:"\f2aa"} .fa-snapchat:before{content:"\f2ab"} .fa-snapchat-ghost:before{content:"\f2ac"} .fa-snapchat-square:before{content:"\f2ad"} .fa-pied-piper:before{content:"\f2ae"} .fa-first-order:before{content:"\f2b0"} .fa-yoast:before{content:"\f2b1"} .fa-themeisle:before{content:"\f2b2"} .fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"} .fa-fa:before,.fa-font-awesome:before{content:"\f2b4"} .fa-handshake-o:before{content:"\f2b5"} .fa-envelope-open:before{content:"\f2b6"} .fa-envelope-open-o:before{content:"\f2b7"} .fa-linode:before{content:"\f2b8"} .fa-address-book:before{content:"\f2b9"} .fa-address-book-o:before{content:"\f2ba"} .fa-vcard:before,.fa-address-card:before{content:"\f2bb"} .fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"} .fa-user-circle:before{content:"\f2bd"} .fa-user-circle-o:before{content:"\f2be"} .fa-user-o:before{content:"\f2c0"} .fa-id-badge:before{content:"\f2c1"} .fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"} .fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"} .fa-quora:before{content:"\f2c4"} .fa-free-code-camp:before{content:"\f2c5"} .fa-telegram:before{content:"\f2c6"} .fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"} .fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"} .fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"} .fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"} .fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"} .fa-shower:before{content:"\f2cc"} .fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"} .fa-podcast:before{content:"\f2ce"} .fa-window-maximize:before{content:"\f2d0"} .fa-window-minimize:before{content:"\f2d1"} .fa-window-restore:before{content:"\f2d2"} .fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"} .fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"} .fa-bandcamp:before{content:"\f2d5"} .fa-grav:before{content:"\f2d6"} .fa-etsy:before{content:"\f2d7"} .fa-imdb:before{content:"\f2d8"} .fa-ravelry:before{content:"\f2d9"} .fa-eercast:before{content:"\f2da"} .fa-microchip:before{content:"\f2db"} .fa-snowflake-o:before{content:"\f2dc"} .fa-superpowers:before{content:"\f2dd"} .fa-wpexplorer:before{content:"\f2de"} .fa-meetup:before{content:"\f2e0"} .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0} .sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
5 |
--------------------------------------------------------------------------------