diff --git a/package.json b/package.json index 757aaa0..0024a9f 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,9 @@ "name": "video-chat2", "version": "1.0.0", "description": "", - "main": "index.js", + "main": "server.js", "scripts": { - "start": "node index.js", + "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", diff --git a/public/chat.html b/public/chat.html index a7032c0..752c45c 100644 --- a/public/chat.html +++ b/public/chat.html @@ -40,7 +40,6 @@ color: red; } - @@ -60,6 +59,6 @@ - + \ No newline at end of file diff --git a/public/app.js b/public/chat.js similarity index 100% rename from public/app.js rename to public/chat.js diff --git a/public/landing.html b/public/landing.html deleted file mode 100644 index 1cb9d98..0000000 --- a/public/landing.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Landing - - -

Welcome to videochat

-

Click the button to get a disposable video chat room

-Link - - - \ No newline at end of file diff --git a/public/landing/css/style.css b/public/landing/css/style.css new file mode 100755 index 0000000..43b3c90 --- /dev/null +++ b/public/landing/css/style.css @@ -0,0 +1,3228 @@ +@import url("https://fonts.googleapis.com/css?family=Fira+Sans:600|Heebo:400,500,700&display=swap"); + +html { + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +article, aside, footer, header, nav, section { + display: block +} + +h1 { + font-size: 2em; + margin: 0.67em 0 +} + +figcaption, figure, main { + display: block +} + +figure { + margin: 1em 40px +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible +} + +pre { + font-family: monospace, monospace; + font-size: 1em +} + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects +} + +abbr[title] { + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted +} + +b, strong { + font-weight: inherit +} + +b, strong { + font-weight: bolder +} + +code, kbd, samp { + font-family: monospace, monospace; + font-size: 1em +} + +dfn { + font-style: italic +} + +mark { + background-color: #ff0; + color: #000 +} + +small { + font-size: 80% +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sub { + bottom: -0.25em +} + +sup { + top: -0.5em +} + +audio, video { + display: inline-block +} + +audio:not([controls]) { + display: none; + height: 0 +} + +img { + border-style: none +} + +svg:not(:root) { + overflow: hidden +} + +button, input, optgroup, select, textarea { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0 +} + +button, input { + overflow: visible +} + +button, select { + text-transform: none +} + +button, html [type="button"], [type="reset"], [type="submit"] { + -webkit-appearance: button +} + +button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0 +} + +button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText +} + +fieldset { + padding: 0.35em 0.75em 0.625em +} + +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal +} + +progress { + display: inline-block; + vertical-align: baseline +} + +textarea { + overflow: auto +} + +[type="checkbox"], [type="radio"] { + box-sizing: border-box; + padding: 0 +} + +[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { + height: auto +} + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px +} + +[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit +} + +details, menu { + display: block +} + +summary { + display: list-item +} + +canvas { + display: inline-block +} + +template { + display: none +} + +[hidden] { + display: none +} + +@media (min-width: 641px) { + .has-animations [class*=reveal-] { + opacity: 0; + will-change: opacity, transform + } + + .has-animations .reveal-from-top { + transform: translateY(-10px) + } + + .has-animations .reveal-from-bottom { + transform: translateY(10px) + } + + .has-animations .reveal-from-left { + transform: translateX(-10px) + } + + .has-animations .reveal-from-right { + transform: translateX(10px) + } + + .has-animations .reveal-scale-up { + transform: scale(.95) + } + + .has-animations .reveal-scale-down { + transform: scale(1.05) + } + + .has-animations .reveal-rotate-from-left { + transform: perspective(1000px) rotateY(-45deg) + } + + .has-animations .reveal-rotate-from-right { + transform: perspective(1000px) rotateY(45deg) + } + + .has-animations.is-loaded [class*=reveal-] { + transition: opacity 1s cubic-bezier(0.39, 0.575, 0.565, 1), transform 1s cubic-bezier(0.39, 0.575, 0.565, 1) + } + + .has-animations.is-loaded [class*=reveal-].is-revealed { + opacity: 1; + transform: translate(0) + } +} + +html { + box-sizing: border-box +} + +*, *:before, *:after { + box-sizing: inherit +} + +body { + background: #16171B; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased +} + +hr { + border: 0; + display: block; + height: 1px; + background: #292B32; + margin-top: 24px; + margin-bottom: 24px +} + +ul, ol { + margin-top: 0; + padding-left: 24px +} + +ul:not(:last-child), ol:not(:last-child) { + margin-bottom: 24px +} + +ul { + list-style: disc +} + +ol { + list-style: decimal +} + +li:not(:last-child) { + margin-bottom: 12px +} + +li > ul, li > ol { + margin-top: 12px; + margin-bottom: 0 +} + +dl { + margin-top: 0; + margin-bottom: 24px +} + +dt { + font-weight: 700 +} + +dd { + margin-left: 24px; + margin-bottom: 24px +} + +img { + border-radius: 2px +} + +img, svg, video { + display: block; + height: auto; + max-width: 100% +} + +figure { + margin: 48px 0 +} + +figcaption { + padding: 8px 0 +} + +table { + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px; + border-collapse: collapse; + margin-bottom: 24px; + width: 100% +} + +tr { + border-bottom: 1px solid #292B32 +} + +th { + font-weight: 700; + text-align: left +} + +th, td { + padding: 8px 16px +} + +th:first-child, td:first-child { + padding-left: 0 +} + +th:last-child, td:last-child { + padding-right: 0 +} + +.invert-color hr { + display: block; + height: 1px; + background: #e5e9ff +} + +.invert-color tr { + border-bottom: 1px solid #e5e9ff +} + +html { + font-size: 20px; + line-height: 32px; + letter-spacing: -0.1px +} + +body { + color: #959CB1; + font-size: 1rem +} + +body, button, input, select, textarea { + font-family: "Heebo", sans-serif; + font-weight: 400 +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + font-family: "Fira Sans", sans-serif; + font-weight: 600; + clear: both; + color: #F9FAFF; + word-wrap: break-word; + overflow-wrap: break-word +} + +h1, .h1 { + font-size: 38px; + line-height: 48px +} + +h2, .h2 { + font-size: 32px; + line-height: 42px +} + +h3, .h3 { + font-size: 24px; + line-height: 34px; + letter-spacing: -0.1px +} + +h4, .h4 { + font-size: 24px; + line-height: 34px; + letter-spacing: -0.1px +} + +h5, .h5 { + font-size: 20px; + line-height: 32px; + letter-spacing: -0.1px +} + +h6, .h6, small, .text-sm { + font-size: 18px; + line-height: 30px; + letter-spacing: -0.1px +} + +.text-xs { + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px +} + +.text-xxs { + font-size: 14px; + line-height: 22px +} + +figcaption { + font-size: 14px; + line-height: 22px +} + +a:not(.button) { + color: inherit +} + +a:not(.button):hover, a:not(.button):active { + color: #F9FAFF; + outline: 0 +} + +a.button-link { + color: #6A6F82 +} + +a.button-link:hover, a.button-link:active { + color: #959CB1 +} + +a.func-link { + color: #376DF9 +} + +a.func-link:hover, a.func-link:active { + color: #6991FA +} + +h1, .h1 { + margin-top: 48px; + margin-bottom: 32px +} + +h2, .h2 { + margin-top: 48px; + margin-bottom: 32px +} + +h3, .h3 { + margin-top: 36px; + margin-bottom: 24px +} + +h4, h5, h6, .h4, .h5, .h6 { + margin-top: 24px; + margin-bottom: 24px +} + +p { + margin-top: 0; + margin-bottom: 24px +} + +dfn, cite, em, i { + font-style: italic +} + +blockquote { + font-size: 20px; + line-height: 32px; + letter-spacing: -0.1px; + margin-top: 24px; + margin-bottom: 24px; + margin-left: 24px +} + +blockquote::before { + content: "\201C" +} + +blockquote::after { + content: "\201D" +} + +blockquote p { + display: inline +} + +address { + border-width: 1px 0; + border-style: solid; + border-color: #292B32; + padding: 24px 0; + margin: 0 0 24px +} + +pre, pre h1, pre h2, pre h3, pre h4, pre h5, pre h6, pre .h1, pre .h2, pre .h3, pre .h4, pre .h5, pre .h6 { + font-family: "Courier 10 Pitch", Courier, monospace +} + +pre, code, kbd, tt, var { + background: #0d0d10 +} + +pre { + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px; + max-width: 100%; + overflow: auto; + padding: 24px 24px; + margin-top: 24px; + margin-bottom: 24px +} + +code, kbd, tt, var { + font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace; + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px; + padding: 2px 4px +} + +abbr, acronym { + cursor: help +} + +mark, ins { + text-decoration: none +} + +b, strong { + font-weight: 700 +} + +.invert-color { + color: #6A6F82 +} + +.invert-color a:not(.button):hover, .invert-color a:not(.button):active { + color: #1C1D22; + outline: 0 +} + +.invert-color a.button-link:hover, .invert-color a.button-link:active { + color: #376DF9 +} + +.invert-color a.func-link:hover, .invert-color a.func-link:active { + color: #6991FA +} + +.invert-color h1, .invert-color h2, .invert-color h3, .invert-color h4, .invert-color h5, .invert-color h6, .invert-color .h1, .invert-color .h2, .invert-color .h3, .invert-color .h4, .invert-color .h5, .invert-color .h6 { + color: #16171B +} + +.invert-color address { + border-color: #e5e9ff +} + +.invert-color pre, .invert-color code, .invert-color kbd, .invert-color tt, .invert-color var { + background: #0d0d10 +} + +@media (max-width: 640px) { + .h1-mobile { + font-size: 38px; + line-height: 48px + } + + .h2-mobile { + font-size: 32px; + line-height: 42px + } + + .h3-mobile { + font-size: 24px; + line-height: 34px; + letter-spacing: -0.1px + } + + .h4-mobile { + font-size: 24px; + line-height: 34px; + letter-spacing: -0.1px + } + + .h5-mobile { + font-size: 20px; + line-height: 32px; + letter-spacing: -0.1px + } + + .h6-mobile { + font-size: 18px; + line-height: 30px; + letter-spacing: -0.1px + } +} + +@media (min-width: 641px) { + h1, .h1 { + font-size: 44px; + line-height: 54px + } + + h2, .h2 { + font-size: 38px; + line-height: 48px + } + + h3, .h3 { + font-size: 32px; + line-height: 42px + } +} + +.container, .container-sm, .container-xs { + width: 100%; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px +} + +@media (min-width: 481px) { + .container, .container-sm, .container-xs { + padding-left: 24px; + padding-right: 24px + } +} + +.container { + max-width: 1128px +} + +.container-sm { + max-width: 944px +} + +.container-xs { + max-width: 668px +} + +[class*=container] [class*=container] { + padding-left: 0; + padding-right: 0 +} + +[class*=container] .container-sm { + max-width: 896px +} + +[class*=container] .container-xs { + max-width: 620px +} + +.button { + display: inline-flex; + font-size: 14px; + line-height: 22px; + font-weight: 700; + padding: 12px 31px; + height: 48px; + text-decoration: none !important; + text-transform: uppercase; + color: #6A6F82; + background-color: #F9FAFF; + border-width: 1px; + border-style: solid; + border-color: rgba(0, 0, 0, 0); + border-radius: 2px; + cursor: pointer; + justify-content: center; + text-align: center; + letter-spacing: inherit; + white-space: nowrap; + transition: background .15s ease +} + +.button:active { + outline: 0 +} + +.button:hover { + background-color: #fff +} + +.button.is-loading { + position: relative; + color: transparent !important; + pointer-events: none +} + +.button.is-loading::after { + content: ''; + display: block; + position: absolute; + width: 22px; + height: 22px; + margin-left: -11px; + margin-top: -11px; + top: 50%; + left: 50%; + border: 2px solid #6A6F82; + border-radius: 50%; + border-right-color: transparent !important; + border-top-color: transparent !important; + z-index: 1; + -webkit-animation: button-loading .6s infinite linear; + animation: button-loading .6s infinite linear +} + +.button[disabled] { + cursor: not-allowed; + color: #16171B; + background-color: #292B32 !important +} + +.button[disabled].is-loading::after { + border-color: #16171B +} + +.button-sm { + padding: 6px 23px; + height: 36px +} + +.button-dark { + color: #F9FAFF; + background-color: #292B32 +} + +.button-dark:hover { + background-color: #30323a +} + +.button-dark.is-loading::after { + border-color: #F9FAFF +} + +.button-primary { + color: #F9FAFF; + background-color: #376DF9 +} + +.button-primary:hover { + background-color: #4678f9 +} + +.button-primary.is-loading::after { + border-color: #F9FAFF +} + +.button-secondary { + color: #F9FAFF; + background-color: #FF5FA0 +} + +.button-secondary:hover { + background-color: #ff6ea9 +} + +.button-secondary.is-loading::after { + border-color: #F9FAFF +} + +.button-block { + display: flex; + width: 100% +} + +.button-group { + display: flex; + flex-wrap: wrap; + align-items: center; + margin-right: -8px; + margin-left: -8px; + margin-top: -8px +} + +.button-group:last-of-type { + margin-bottom: -8px +} + +.button-group:not(:last-of-type) { + margin-bottom: 8px +} + +.button-group > [class*=button] { + margin: 8px +} + +@media (max-width: 640px) { + .button-wide-mobile { + width: 100%; + max-width: 280px + } +} + +@-webkit-keyframes button-loading { + 0% { + transform: rotate(0) + } + 100% { + transform: rotate(360deg) + } +} + +@keyframes button-loading { + 0% { + transform: rotate(0) + } + 100% { + transform: rotate(360deg) + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0 +} + +.form-label, .form-switch { + color: #6A6F82; + font-weight: 500 +} + +.form-label { + font-size: 14px; + line-height: 22px +} + +.form-input, .form-select, .form-checkbox input, .form-radio input { + -moz-appearance: none; + -webkit-appearance: none; + background-color: #F9FAFF; + border-width: 1px; + border-style: solid; + border-color: #16171B +} + +.form-input:hover, .form-select:hover, .form-checkbox input:hover, .form-radio input:hover { + border-color: #6A6F82 +} + +.form-input:active, .form-input:focus, .form-select:active, .form-select:focus, .form-checkbox input:active, .form-checkbox input:focus, .form-radio input:active, .form-radio input:focus { + outline: none; + border-color: #376DF9 +} + +.form-input[disabled], .form-select[disabled], .form-checkbox input[disabled], .form-radio input[disabled] { + cursor: not-allowed; + background-color: #292B32; + border-color: #1C1D22 +} + +.form-input.form-error, .form-select.form-error, .form-checkbox input.form-error, .form-radio input.form-error { + border-color: #FF5FA0 +} + +.form-input.form-warning, .form-select.form-warning, .form-checkbox input.form-warning, .form-radio input.form-warning { + border-color: #FFC55A +} + +.form-input.form-success, .form-select.form-success, .form-checkbox input.form-success, .form-radio input.form-success { + border-color: #1EC198 +} + +.form-input, .form-select { + display: block; + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px; + padding: 11px 15px; + height: 48px; + border-radius: 0; + color: #16171B; + box-shadow: none; + max-width: 100%; + width: 100% +} + +.form-input::-webkit-input-placeholder { + color: #959CB1 +} + +.form-input::-moz-placeholder { + color: #959CB1 +} + +.form-input:-ms-input-placeholder { + color: #959CB1 +} + +.form-input::-ms-input-placeholder { + color: #959CB1 +} + +.form-input::placeholder { + color: #959CB1 +} + +.form-input::-ms-input-placeholder { + color: #959CB1 +} + +textarea.form-input { + height: auto; + resize: vertical +} + +.form-select { + padding-right: 46px; + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8%2011.4L2.6%206%204%204.6l4%204%204-4L13.4%206%208%2011.4z%22%20fill%3D%22%23F9FAFF%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E"); + background-position: right 15px center; + background-repeat: no-repeat; + background-size: 16px 16px +} + +.form-select-sm { + padding-right: 38px; + background-position: right 11px center +} + +.form-select-sm, .form-input-sm { + padding: 5px 11px; + height: 36px +} + +.has-icon-left, .has-icon-right { + position: relative +} + +.has-icon-left svg, .has-icon-right svg { + pointer-events: none; + position: absolute; + top: 50%; + transform: translateY(-50%) +} + +.has-icon-left .form-input { + padding-left: 46px +} + +.has-icon-left .form-input + svg { + left: 15px +} + +.has-icon-left .form-input-sm { + padding-left: 38px +} + +.has-icon-left .form-input-sm + svg { + left: 11px +} + +.has-icon-right .form-input { + padding-right: 46px +} + +.has-icon-right .form-input + svg { + right: 15px +} + +.has-icon-right .form-input-sm { + padding-right: 38px +} + +.has-icon-right .form-input-sm + svg { + right: 11px +} + +.form-checkbox, .form-radio, .form-switch { + font-size: 16px; + line-height: 24px; + letter-spacing: -0.1px; + cursor: pointer +} + +.form-checkbox, .form-radio { + color: #959CB1 +} + +.form-checkbox, .form-radio { + position: relative; + padding-left: 24px +} + +.form-checkbox input, .form-radio input { + position: absolute; + left: 0; + top: 3px; + width: 16px; + height: 16px; + cursor: pointer +} + +.form-checkbox input:checked, .form-radio input:checked { + background-color: #376DF9 !important; + border-color: #376DF9 !important; + background-position: 50% +} + +.form-checkbox input { + border-radius: 2px +} + +.form-checkbox input:checked { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+IDxwYXRoIGQ9Ik0xMS40IDVMMTAgMy42bC00IDQtMi0yTDIuNiA3IDYgMTAuNHoiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) +} + +.form-radio input { + border-radius: 50% +} + +.form-radio input:checked { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBmaWxsPSIjRkZGIiBjeD0iNyIgY3k9IjciIHI9IjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) +} + +.form-switch { + display: inline-flex; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.form-switch input { + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + position: absolute; + width: 1px +} + +.form-switch .form-switch-icon { + display: block; + position: relative; + min-width: 60px; + width: 60px; + height: 32px; + border-radius: 16px; + background: #292B32 +} + +.form-switch .form-switch-icon::before { + content: ''; + display: block; + position: absolute; + top: 2px; + left: 2px; + width: 28px; + height: 28px; + border-radius: 14px; + background: #F9FAFF; + transition: all .15s ease-out +} + +.form-switch input:checked + .form-switch-icon { + background: #376DF9 +} + +.form-switch input:checked + .form-switch-icon::before { + left: 30px +} + +.form-switch > span:not(.form-switch-icon) { + order: -1; + margin-right: 12px +} + +.form-switch > span:not(.form-switch-icon):last-child { + order: initial; + margin-left: 12px; + margin-right: 0 +} + +.invert-color .form-label, .invert-color .form-switch { + color: #292B32 +} + +.invert-color .form-input, .invert-color .form-select, .invert-color .form-checkbox input, .invert-color .form-radio input { + border-color: #e5e9ff +} + +.invert-color .form-input:active, .invert-color .form-input:focus, .invert-color .form-select:active, .invert-color .form-select:focus, .invert-color .form-checkbox input:active, .invert-color .form-checkbox input:focus, .invert-color .form-radio input:active, .invert-color .form-radio input:focus { + border-color: #376DF9 +} + +.invert-color .form-input[disabled], .invert-color .form-select[disabled], .invert-color .form-checkbox input[disabled], .invert-color .form-radio input[disabled] { + background-color: #e5e9ff +} + +.invert-color .form-input, .invert-color .form-select { + color: #292B32 +} + +.invert-color .form-select { + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8%2011.4L2.6%206%204%204.6l4%204%204-4L13.4%206%208%2011.4z%22%20fill%3D%22%23292B32%22%20fill-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E") +} + +.invert-color .form-checkbox, .invert-color .form-radio { + color: #292B32 +} + +.invert-color .form-checkbox input:checked, .invert-color .form-radio input:checked { + background-color: !important; + border-color: !important +} + +.form-group { + display: flex +} + +.form-group .form-input { + flex-grow: 1; + flex-shrink: 1; + margin-right: 12px +} + +.form-group .button { + padding-left: 24px; + padding-right: 24px; + flex-shrink: 0 +} + +.form-hint { + font-size: 14px; + line-height: 22px; + margin-top: 8px +} + +@media (max-width: 640px) { + .form-group-desktop .form-input { + margin-bottom: 12px + } + + .form-group-desktop .button { + width: 100% + } +} + +@media (min-width: 641px) { + .form-group-desktop { + display: flex + } + + .form-group-desktop .form-input { + flex-grow: 1; + flex-shrink: 1; + margin-right: 12px + } + + .form-group-desktop .button { + padding-left: 24px; + padding-right: 24px; + flex-shrink: 0 + } +} + +.header-nav-toggle { + background: transparent; + border: 0; + outline: 0; + padding: 0; + cursor: pointer +} + +.hamburger, .hamburger-inner { + display: block; + pointer-events: none +} + +.hamburger { + position: relative; + width: 24px; + height: 24px +} + +.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { + width: 24px; + height: 2px; + position: absolute; + background: #959CB1 +} + +.invert-color .hamburger-inner, .invert-color .hamburger-inner::before, .invert-color .hamburger-inner::after { + background: #1C1D22 +} + +.hamburger-inner { + top: 50%; + margin-top: -1px; + transition-duration: 0.22s; + transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19) +} + +.hamburger-inner::before, .hamburger-inner::after { + content: ''; + display: block +} + +.hamburger-inner::before { + top: -7px; + transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in +} + +.hamburger-inner::after { + bottom: -7px; + transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), width 0.1s 0.25s ease-in +} + +.off-nav-is-active .hamburger-inner { + transform: rotate(225deg); + transition-delay: 0.12s; + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1) +} + +.off-nav-is-active .hamburger-inner::before { + top: 0; + opacity: 0; + transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out +} + +.off-nav-is-active .hamburger-inner::after { + width: 24px; + bottom: 0; + transform: rotate(-90deg); + transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1), width 0.1s ease-out +} + +.accordion li { + position: relative +} + +.accordion li::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +.accordion li:last-of-type { + position: relative +} + +.accordion li:last-of-type::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +.invert-color .accordion li { + position: relative +} + +.invert-color .accordion li::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #e5e9ff +} + +.invert-color .accordion li:last-of-type { + position: relative +} + +.invert-color .accordion li:last-of-type::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #e5e9ff +} + +.accordion-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: 24px; + padding-bottom: 24px; + cursor: pointer +} + +.accordion-header span { + width: calc(100% - (16px * 2)) +} + +.accordion-content { + max-height: 0; + opacity: 0; + overflow: hidden; + transition: max-height .15s ease-in-out, opacity .15s +} + +.is-active .accordion-content { + opacity: 1 +} + +.accordion-content p:last-child { + margin-bottom: 24px +} + +.accordion-icon { + position: relative; + width: 16px; + height: 16px +} + +.accordion-icon::before, .accordion-icon::after { + content: ''; + position: absolute; + background: #376DF9; + transition: transform .25s ease-out +} + +.accordion-icon::before { + top: 0; + left: 50%; + width: 2px; + height: 100%; + margin-left: -1px +} + +.accordion-icon::after { + top: 50%; + left: 0; + width: 100%; + height: 2px; + margin-top: -1px +} + +.is-active .accordion-icon { + cursor: pointer +} + +.is-active .accordion-icon::before { + transform: rotate(90deg) +} + +.is-active .accordion-icon::after { + transform: rotate(180deg) +} + +.modal, .modal::before { + bottom: 0; + left: 0; + right: 0; + top: 0 +} + +.modal { + display: none; + align-items: center; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40 +} + +.modal.modal-video .modal-inner { + padding: 0; + max-width: 1024px +} + +.modal::before, .modal .modal-inner { + display: none +} + +.modal::before { + content: ''; + position: absolute; + background-color: rgba(22, 23, 27, 0.88) +} + +.modal.is-active { + display: flex +} + +.modal.is-active::before, .modal.is-active .modal-inner { + display: block +} + +.modal.is-active .modal-inner { + -webkit-animation: slideUpInModal .15s ease-in-out both; + animation: slideUpInModal .15s ease-in-out both +} + +.modal.is-active::before { + -webkit-animation: slideUpInModalBg .15s ease-in-out both; + animation: slideUpInModalBg .15s ease-in-out both +} + +.modal-inner { + max-height: calc(100vh - 16px * 2); + overflow: auto; + position: relative; + width: calc(100% - (16px * 2)); + max-width: 480px; + margin-left: 16px; + margin-right: 16px; + background: #292B32 +} + +.modal-content { + padding: 48px 16px +} + +.modal-close { + background: transparent; + border: 0; + outline: 0; + padding: 0; + cursor: pointer; + position: absolute; + right: 24px; + top: 24px; + width: 16px; + height: 16px +} + +.modal-close::before, .modal-close::after { + content: ''; + display: block; + position: absolute; + top: 50%; + left: 50%; + margin-top: -1px; + margin-left: -8px; + width: 16px; + height: 2px; + background: #6A6F82 +} + +.modal-close::before { + transform: rotate(225deg) +} + +.modal-close::after { + transform: rotate(-45deg) +} + +.modal-close:hover::before, .modal-close:hover::after { + background: #959CB1 +} + +@media (min-width: 641px) { + .modal-inner { + margin: 0 auto; + max-height: calc(100vh - 48px * 2) + } + + .modal-content { + padding-top: 48px; + padding-bottom: 48px; + padding-left: 32px; + padding-right: 32px + } +} + +@-webkit-keyframes slideUpInModal { + 0% { + opacity: 0; + transform: translateY(-24px) + } + to { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes slideUpInModal { + 0% { + opacity: 0; + transform: translateY(-24px) + } + to { + opacity: 1; + transform: translateY(0) + } +} + +@-webkit-keyframes slideUpInModalBg { + 0% { + opacity: 0 + } + to { + opacity: 1 + } +} + +@keyframes slideUpInModalBg { + 0% { + opacity: 0 + } + to { + opacity: 1 + } +} + +.carousel-item { + display: none +} + +.carousel-item.is-loading:not(.is-active) { + display: block; + position: absolute; + visibility: hidden; + opacity: 0 +} + +.carousel-item.is-active { + display: block +} + +.carousel-bullets { + display: inline-flex +} + +.carousel-bullet { + display: block; + position: relative; + width: 20px; + height: 20px; + padding: 0; + cursor: pointer; + line-height: 0; + border: none; + background: transparent +} + +.carousel-bullet::before { + content: ''; + position: absolute; + left: 6px; + top: 6px; + background: #292B32; + width: 8px; + height: 8px; + border-radius: 50%; + transition: background .25s ease +} + +.carousel-bullet:focus { + outline: none +} + +.carousel-bullet.is-active::before { + background: #6A6F82 +} + +.carousel-bullet:hover::before { + background: #959CB1 +} + +.invert-color .carousel-bullet::before { + background: #6A6F82 +} + +.invert-color .carousel-bullet.is-active::before { + background: #292B32 +} + +.invert-color .carousel-bullet:hover::before { + background: #376DF9 +} + +.split-wrap { + margin-top: -24px +} + +.split-wrap:last-of-type { + margin-bottom: -24px +} + +.split-wrap:not(:last-of-type) { + margin-bottom: 24px +} + +.split-wrap .split-item { + padding-top: 24px; + padding-bottom: 24px; + display: flex; + flex-direction: column +} + +.split-wrap .split-item .split-item-image { + position: relative; + width: 100% +} + +.split-wrap .split-item .split-item-image img, .split-wrap .split-item .split-item-image svg, .split-wrap .split-item .split-item-image video { + width: auto; + height: auto; + max-width: 100%; + overflow: visible +} + +.split-wrap .split-item .split-item-image.split-item-image-fill img, .split-wrap .split-item .split-item-image.split-item-image-fill svg, .split-wrap .split-item .split-item-image.split-item-image-fill video { + width: 100% +} + +@media (max-width: 640px) { + .split-wrap .split-item .split-item-content { + margin-bottom: 32px + } + + .split-wrap.invert-mobile .split-item .split-item-content { + order: 1; + margin-bottom: 0 !important + } + + .split-wrap.invert-mobile .split-item .split-item-image { + margin-bottom: 32px + } +} + +@media (min-width: 641px) { + .split-wrap { + margin-top: -40px + } + + .split-wrap:last-of-type { + margin-bottom: -40px + } + + .split-wrap:not(:last-of-type) { + margin-bottom: 40px + } + + .split-wrap .split-item { + padding-top: 40px; + padding-bottom: 40px; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + justify-content: flex-start + } + + .split-wrap .split-item .split-item-content { + flex-shrink: 0; + width: 396px; + margin-bottom: 0; + margin-right: 64px + } + + .split-wrap .split-item .split-item-image { + min-width: 436px + } + + .split-wrap:not(.invert-desktop) .split-item:nth-child(even), .split-wrap.invert-desktop .split-item:nth-child(odd) { + justify-content: flex-end + } + + .split-wrap:not(.invert-desktop) .split-item:nth-child(even) .split-item-content, .split-wrap.invert-desktop .split-item:nth-child(odd) .split-item-content { + order: 1; + margin-left: 64px; + margin-right: 0 + } + + .split-wrap:not(.invert-desktop) .split-item:nth-child(odd) .split-item-image img, .split-wrap:not(.invert-desktop) .split-item:nth-child(odd) .split-item-image svg, .split-wrap:not(.invert-desktop) .split-item:nth-child(odd) .split-item-image video, .split-wrap.invert-desktop .split-item:nth-child(even) .split-item-image img, .split-wrap.invert-desktop .split-item:nth-child(even) .split-item-image svg, .split-wrap.invert-desktop .split-item:nth-child(even) .split-item-image video { + margin-left: auto + } + + .split-wrap.align-top .split-item { + align-items: flex-start + } +} + +@media (min-width: 821px) { + .container .split-wrap .split-item .split-item-content { + width: 488px + } + + .container .split-wrap .split-item .split-item-image { + min-width: 528px + } +} + +.tiles-wrap { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-right: -12px; + margin-left: -12px; + margin-top: -12px +} + +.tiles-wrap:last-of-type { + margin-bottom: -12px +} + +.tiles-wrap:not(:last-of-type) { + margin-bottom: 12px +} + +.tiles-wrap.push-left::after { + content: ''; + flex-basis: 330px; + max-width: 330px; + box-sizing: content-box; + padding-left: 12px; + padding-right: 12px; + height: 0 +} + +.tiles-item { + flex-basis: 330px; + max-width: 330px; + box-sizing: content-box; + padding: 12px +} + +.tiles-item * { + box-sizing: border-box +} + +.tiles-item-inner { + display: flex; + flex-wrap: wrap; + flex-direction: column; + height: 100%; + padding: 32px 24px +} + +.site-header { + position: absolute !important; + top: 0; + width: 100%; + z-index: 10 !important +} + +.site-header + .site-content .section:first-of-type { + padding-top: 80px +} + +.site-header .brand { + margin-right: 32px +} + +.site-header-inner { + display: flex; + justify-content: space-between; + align-items: center; + height: 80px +} + +.header-nav { + flex-grow: 1 +} + +.header-nav .header-nav-inner { + display: flex; + flex-grow: 1 +} + +.header-nav ul { + display: flex; + align-items: center; + flex-grow: 1; + white-space: nowrap; + margin-bottom: 0 +} + +.header-nav ul:first-of-type { + flex-wrap: wrap +} + +.header-nav li + .header-button { + margin-left: 32px +} + +.header-nav a:not(.button) { + display: block; + text-decoration: none; + font-weight: 500; + text-transform: uppercase; + padding: 0 32px +} + +.invert-color .header-nav a:not(.button) { + text-decoration: none +} + +.header-nav a.button { + margin-left: 32px +} + +.header-nav-center:first-of-type { + flex-grow: 1; + justify-content: flex-end +} + +.header-nav-right { + justify-content: flex-end +} + +.header-nav-right + .header-nav-right { + flex-grow: 0 +} + +.header-nav-toggle { + display: none +} + +@media (max-width: 640px) { + .header-nav-toggle { + display: block + } + + .header-nav-toggle + .header-nav { + flex-direction: column; + position: absolute; + left: 0; + right: 0; + top: 100%; + z-index: 9999; + background: #292B32; + max-height: 0; + opacity: 0; + overflow: hidden; + transition: max-height .25s ease-in-out, opacity .15s + } + + .header-nav-toggle + .header-nav.is-active { + opacity: 1 + } + + .header-nav-toggle + .header-nav .header-nav-inner { + flex-direction: column; + padding: 24px + } + + .header-nav-toggle + .header-nav ul { + display: block; + text-align: center + } + + .header-nav-toggle + .header-nav ul a:not(.button) { + display: inline-flex; + padding-top: 12px; + padding-bottom: 12px + } + + .header-nav-toggle + .header-nav a.button { + margin-left: 0; + margin-top: 12px; + margin-bottom: 12px + } +} + +.is-boxed { + background: #1b1c21 +} + +.is-boxed .body-wrap { + max-width: 1440px; + margin: 0 auto; + box-shadow: 0 20px 48px rgba(22, 23, 27, 0.8) +} + +.is-boxed .body-wrap::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #16171B; + z-index: -10 +} + +.body-wrap { + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 100vh +} + +.site-content { + flex: 1 0 auto +} + +.site-footer { + position: relative +} + +.site-footer::before { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background: #16171B; + z-index: -3 +} + +.site-footer-inner { + padding: 48px 0 +} + +.footer-top { + padding-bottom: 12px +} + +.footer-bottom { + padding-top: 12px +} + +.footer-blocks { + display: flex; + flex-wrap: wrap; + margin-right: -24px; + margin-left: -24px; + margin-top: -12px +} + +.footer-blocks:last-of-type { + margin-bottom: 28px +} + +.footer-blocks:not(:last-of-type) { + margin-bottom: 12px +} + +.footer-block { + flex-grow: 1; + flex-basis: 160px; + box-sizing: content-box; + padding: 12px 24px +} + +.footer-block * { + box-sizing: border-box +} + +.footer-block ul li:not(:last-child) { + margin-bottom: 4px +} + +.footer-block a { + color: #6A6F82; + text-decoration: none +} + +.footer-block a:hover, .footer-block a:active { + color: #959CB1 +} + +.invert-color .footer-block a { + text-decoration: none +} + +.footer-block-title { + font-size: 14px; + line-height: 22px; + font-weight: 700; + color: #F9FAFF; + text-transform: uppercase; + margin-bottom: 8px +} + +.invert-color .footer-block-title { + color: #16171B +} + +.footer-social a, .footer-nav a { + display: flex +} + +.footer-social ul, .footer-nav ul { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + white-space: nowrap; + margin-bottom: 0 +} + +.footer-social ul { + margin-right: -16px; + margin-left: -16px +} + +.footer-social li { + padding: 0 8px +} + +.footer-social a { + padding: 8px +} + +.footer-social a svg { + fill: #376DF9; + transition: fill .15s ease +} + +.footer-social a:hover svg { + fill: #6991FA +} + +.footer-nav { + margin-right: -12px; + margin-left: -12px +} + +.footer-nav a { + color: #6A6F82; + text-decoration: none; + padding: 0 12px +} + +.footer-nav a:hover, .footer-nav a:active { + color: #959CB1 +} + +.invert-color .footer-nav a { + text-decoration: none +} + +@media (max-width: 640px) { + .footer-top > *:not(:last-child), .footer-bottom > *:not(:last-child) { + margin-bottom: 24px + } +} + +@media (min-width: 641px) { + .site-footer-inner { + padding: 64px 0 + } + + .footer-top.space-between, .footer-bottom.space-between { + display: flex; + justify-content: space-between; + align-items: center + } + + .footer-top.invert-order-desktop > *:first-child, .footer-bottom.invert-order-desktop > *:first-child { + order: 1 + } +} + +.section-inner { + position: relative; + padding-top: 48px; + padding-bottom: 48px +} + +.section-header { + padding-bottom: 48px +} + +@media (min-width: 641px) { + .section-inner { + padding-top: 80px; + padding-bottom: 80px + } + + .section-header { + padding-bottom: 80px + } +} + +.hero-inner > .hero-content + .hero-figure, .hero-inner > .hero-figure + .hero-content { + margin-top: 48px +} + +.hero-inner > .hero-figure > a { + display: inline-flex; + align-items: center; + vertical-align: top +} + +@media (max-width: 640px) { + .hero .split-wrap .split-item .split-item-content { + margin-bottom: 48px + } + + .hero .split-wrap.invert-mobile .split-item .split-item-image { + margin-bottom: 48px + } +} + +@media (min-width: 641px) { + .hero-inner > .hero-content + .hero-figure, .hero-inner > .hero-figure + .hero-content { + margin-top: 64px + } +} + +@media (min-width: 641px) { + .features-split .section-header { + padding-bottom: 92px + } +} + +.features-tiles .tiles-wrap { + margin-right: -16px; + margin-left: -16px; + margin-top: -16px +} + +.features-tiles .tiles-wrap:last-of-type { + margin-bottom: -16px +} + +.features-tiles .tiles-wrap:not(:last-of-type) { + margin-bottom: 16px +} + +.features-tiles .tiles-wrap.push-left::after { + flex-basis: 360px; + max-width: 360px; + padding-left: 16px; + padding-right: 16px +} + +.features-tiles .tiles-item { + flex-basis: 360px; + max-width: 360px; + padding: 16px +} + +.features-tiles .tiles-item-inner { + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0 +} + +@media (min-width: 641px) { + .features-tiles .tiles-wrap { + margin-right: -32px; + margin-left: -32px; + margin-top: -32px + } + + .features-tiles .tiles-wrap:last-of-type { + margin-bottom: -32px + } + + .features-tiles .tiles-wrap:not(:last-of-type) { + margin-bottom: 32px + } + + .features-tiles .tiles-wrap.push-left::after { + padding-left: 32px; + padding-right: 32px + } + + .features-tiles .tiles-item { + padding: 32px + } +} + +.pricing .tiles-wrap.push-left::after { + flex-basis: 344px; + max-width: 344px +} + +.pricing .tiles-item { + flex-basis: 344px; + max-width: 344px +} + +.pricing .tiles-item-inner { + padding-top: 24px; + padding-bottom: 24px; + padding-left: 24px; + padding-right: 24px +} + +.pricing-item-content { + flex-grow: 1; + width: 100% +} + +ul.pricing-item-features-list li { + display: flex; + align-items: center; + margin-bottom: 12px +} + +.pricing-switcher { + margin-bottom: 48px +} + +@media (min-width: 641px) { + .pricing-switcher { + margin-bottom: 64px + } +} + +.testimonial .tiles-wrap.push-left::after { + flex-basis: 344px; + max-width: 344px +} + +.testimonial .tiles-item { + flex-basis: 344px; + max-width: 344px +} + +.testimonial .tiles-item-inner { + padding-top: 20px; + padding-bottom: 20px; + padding-left: 24px; + padding-right: 24px +} + +.testimonial-item-content { + flex-grow: 1 +} + +.testimonial-item-source { + display: inline-flex; + flex-wrap: wrap; + align-items: center +} + +.team .tiles-wrap { + margin-right: -16px; + margin-left: -16px; + margin-top: -16px +} + +.team .tiles-wrap:last-of-type { + margin-bottom: -16px +} + +.team .tiles-wrap:not(:last-of-type) { + margin-bottom: 16px +} + +.team .tiles-wrap.push-left::after { + flex-basis: 296px; + max-width: 296px; + padding-left: 16px; + padding-right: 16px +} + +.team .tiles-item { + flex-basis: 296px; + max-width: 296px; + padding: 16px +} + +.team .tiles-item-inner { + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0 +} + +@media (min-width: 641px) { + .team .section-header { + padding-bottom: 80px + } + + .team .tiles-wrap { + margin-right: -32px; + margin-left: -32px; + margin-top: -32px + } + + .team .tiles-wrap:last-of-type { + margin-bottom: -32px + } + + .team .tiles-wrap:not(:last-of-type) { + margin-bottom: 32px + } + + .team .tiles-wrap.push-left::after { + padding-left: 32px; + padding-right: 32px + } + + .team .tiles-item { + padding: 32px + } +} + +.cta .section-inner { + padding-top: 48px; + padding-bottom: 48px +} + +.cta-slogan { + margin-bottom: 40px +} + +@media (min-width: 641px) { + .cta .section-inner { + padding-top: 64px; + padding-bottom: 64px + } + + .cta-split { + display: flex; + justify-content: space-between; + align-items: center + } + + .cta-split .cta-slogan { + margin-bottom: 0; + margin-right: 48px + } +} + +.clients .section-inner { + padding-top: 26px; + padding-bottom: 26px +} + +.clients-inner ul { + display: flex; + flex-wrap: wrap; + flex-direction: column; + justify-content: center; + align-items: center; + margin: 0 +} + +.clients-inner li { + padding: 12px 28px +} + +@media (min-width: 641px) { + .clients .clients-inner ul { + flex-direction: row + } +} + +.signin .section-header { + padding-bottom: 32px +} + +.signin .tiles-item-inner { + padding-top: 0; + padding-bottom: 0; + padding-left: 0; + padding-right: 0 +} + +@media (min-width: 641px) { + .signin .section-header { + padding-bottom: 48px + } +} + +.signin-footer { + display: flex; + flex-wrap: wrap; + justify-content: space-between +} + +[class*=illustration-] { + position: relative +} + +[class*=illustration-]::after { + pointer-events: none +} + +[class*=illustration-element-]::after { + z-index: -1 +} + +[class*=illustration-section-]::after { + z-index: -2 +} + +.illustration-section-01::after { + content: ''; + position: absolute; + width: 100%; + max-width: 100%; + height: 612px; + background-image: url(../images/illustration-section-01.svg); + background-repeat: no-repeat; + background-size: auto; + left: 50%; + top: 0; + background-position: center top; + transform: translate(-50%) +} + +.illustration-section-02::after { + content: ''; + position: absolute; + width: 100%; + max-width: 100%; + height: 612px; + background-image: url(../images/illustration-section-02.svg); + background-repeat: no-repeat; + background-size: auto; + left: 50%; + top: 0; + background-position: center top; + transform: translate(-50%) +} + +.site-footer { + color: #6A6F82 +} + +.features-tiles-item-image { + display: inline-flex; + border-radius: 50%; + background: radial-gradient(circle at bottom, #376DF9 0%, #ff79af 50%, #FF8D74 100%) +} + +.pricing .tiles-item-inner { + background: #292B32 +} + +.pricing-item-header { + position: relative +} + +.pricing-item-header::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +.pricing-item-header::after { + background: rgba(106, 111, 130, 0.32); + max-width: 88px +} + +.pricing-item-price-currency { + color: #959CB1 +} + +ul.pricing-item-features-list { + position: relative +} + +ul.pricing-item-features-list::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +ul.pricing-item-features-list::after { + background: rgba(106, 111, 130, 0.32) +} + +ul.pricing-item-features-list li { + margin-bottom: 0; + padding: 14px 0; + position: relative +} + +ul.pricing-item-features-list li::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +ul.pricing-item-features-list li::before { + background: rgba(106, 111, 130, 0.32) +} + +ul.pricing-item-features-list li::after { + content: ''; + display: block; + width: 24px; + height: 24px; + margin-right: 12px; + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%2011h14v2H5z%22%20fill%3D%22%236A6F82%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E"); + background-repeat: no-repeat; + order: -1 +} + +ul.pricing-item-features-list li.is-checked::after { + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill-rule%3D%22nonzero%22%20fill%3D%22none%22%3E%3Ccircle%20fill%3D%22%231EC198%22%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2212%22%2F%3E%3Cpath%20fill%3D%22%23292B32%22%20d%3D%22M10.5%2012.267l-2.5-1.6-1%201.066L10.5%2016%2017%209.067%2016%208z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") +} + +.testimonial .tiles-item-inner { + background: #292B32 +} + +.testimonial-item-content { + position: relative +} + +.testimonial-item-content::before { + content: ''; + display: block; + width: 24px; + height: 18px; + margin-top: 12px; + margin-bottom: 16px; + background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2224%22%20height%3D%2218%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M0%2013.481c0-2.34.611-4.761%201.833-7.263C3.056%203.716%204.733%201.643%206.865%200L11%202.689C9.726%204.382%208.777%206.093%208.152%207.824c-.624%201.73-.936%203.578-.936%205.545V18H0v-4.519zm13%200c0-2.34.611-4.761%201.833-7.263%201.223-2.502%202.9-4.575%205.032-6.218L24%202.689c-1.274%201.693-2.223%203.404-2.848%205.135-.624%201.73-.936%203.578-.936%205.545V18H13v-4.519z%22%20fill%3D%22%23FF5FA0%22%20fill-rule%3D%22nonzero%22%2F%3E%3C%2Fsvg%3E"); + background-repeat: no-repeat +} + +.testimonial-item-footer { + font-family: "Fira Sans", sans-serif; + font-weight: 600; + padding-top: 20px +} + +.testimonial-item-footer.has-top-divider::before { + background: rgba(106, 111, 130, 0.32) +} + +.testimonial-item-link { + color: #376DF9 +} + +.testimonial-item-link a { + color: #376DF9; + text-decoration: none +} + +.testimonial-item-link a:hover { + color: #6991FA +} + +.cta .form-input { + border-color: transparent; + border-radius: 2px +} + +.cta-inner { + padding-left: 16px; + padding-right: 16px; + background-color: #376DF9; + background: linear-gradient(100deg, #376DF9 0, #FF5FA0 75%, #FFC55A 100%) +} + +@media (min-width: 641px) { + .cta .form-input { + min-width: 280px + } + + .cta-inner { + padding-left: 48px; + padding-right: 48px + } +} + +.screen-reader { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0 +} + +.list-reset { + list-style: none; + padding: 0 +} + +.list-reset li { + margin: 0 +} + +.ta-l { + text-align: left +} + +.ta-c { + text-align: center +} + +.ta-r { + text-align: right +} + +.fw-400 { + font-weight: 400 +} + +.fw-500 { + font-weight: 500 +} + +.fw-600 { + font-weight: 600 +} + +.fw-700 { + font-weight: 700 +} + +.text-color-high { + color: #F9FAFF +} + +.text-color-mid { + color: #959CB1 +} + +.text-color-low { + color: #6A6F82 +} + +.text-color-primary { + color: #376DF9 +} + +.text-color-secondary { + color: #FF5FA0 +} + +.text-color-error { + color: #FF5FA0 +} + +.text-color-warning { + color: #FFC55A +} + +.text-color-success { + color: #1EC198 +} + +.invert-color .text-color-high { + color: #16171B +} + +.invert-color .text-color-mid { + color: #1C1D22 +} + +.invert-color .text-color-low { + color: #6A6F82 +} + +.tt-u { + text-transform: uppercase +} + +.image-full { + width: 100% +} + +.image-larger { + position: relative; + left: 50%; + transform: translateX(-50%); + width: calc(100% + 96px); + max-width: 100vw +} + +.has-bg-color { + position: relative; + background-color: #fff; + z-index: 0 +} + +.has-shadow { + box-shadow: 0 24px 64px rgba(22, 23, 27, 0.64) +} + +img.has-shadow { + border-radius: 2px +} + +.has-top-divider { + position: relative +} + +.has-top-divider::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +.has-bottom-divider { + position: relative +} + +.has-bottom-divider::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #292B32 +} + +.invert-color .has-top-divider { + position: relative +} + +.invert-color .has-top-divider::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #e5e9ff +} + +.invert-color .has-bottom-divider { + position: relative +} + +.invert-color .has-bottom-divider::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + display: block; + height: 1px; + background: #e5e9ff +} + +.center-content { + text-align: center +} + +.center-content img, .center-content svg, .center-content video { + margin-left: auto; + margin-right: auto +} + +.center-content .button-group { + justify-content: center +} + +.responsive-video { + position: relative; + padding-bottom: 56.25%; + height: 0 +} + +.responsive-video.is-4-3 { + padding-bottom: 75% +} + +.responsive-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.m-0 { + margin: 0 +} + +.mt-0 { + margin-top: 0 +} + +.mr-0 { + margin-right: 0 +} + +.mb-0 { + margin-bottom: 0 +} + +.ml-0 { + margin-left: 0 +} + +.m-4 { + margin: 4px +} + +.mt-4 { + margin-top: 4px +} + +.mr-4 { + margin-right: 4px +} + +.mb-4 { + margin-bottom: 4px +} + +.ml-4 { + margin-left: 4px +} + +.m-8 { + margin: 8px +} + +.mt-8 { + margin-top: 8px +} + +.mr-8 { + margin-right: 8px +} + +.mb-8 { + margin-bottom: 8px +} + +.ml-8 { + margin-left: 8px +} + +.m-12 { + margin: 12px +} + +.mt-12 { + margin-top: 12px +} + +.mr-12 { + margin-right: 12px +} + +.mb-12 { + margin-bottom: 12px +} + +.ml-12 { + margin-left: 12px +} + +.m-16 { + margin: 16px +} + +.mt-16 { + margin-top: 16px +} + +.mr-16 { + margin-right: 16px +} + +.mb-16 { + margin-bottom: 16px +} + +.ml-16 { + margin-left: 16px +} + +.m-24 { + margin: 24px +} + +.mt-24 { + margin-top: 24px +} + +.mr-24 { + margin-right: 24px +} + +.mb-24 { + margin-bottom: 24px +} + +.ml-24 { + margin-left: 24px +} + +.m-32 { + margin: 32px +} + +.mt-32 { + margin-top: 32px +} + +.mr-32 { + margin-right: 32px +} + +.mb-32 { + margin-bottom: 32px +} + +.ml-32 { + margin-left: 32px +} + +.p-0 { + padding: 0 +} + +.pt-0 { + padding-top: 0 +} + +.pr-0 { + padding-right: 0 +} + +.pb-0 { + padding-bottom: 0 +} + +.pl-0 { + padding-left: 0 +} + +.p-4 { + padding: 4px +} + +.pt-4 { + padding-top: 4px +} + +.pr-4 { + padding-right: 4px +} + +.pb-4 { + padding-bottom: 4px +} + +.pl-4 { + padding-left: 4px +} + +.p-8 { + padding: 8px +} + +.pt-8 { + padding-top: 8px +} + +.pr-8 { + padding-right: 8px +} + +.pb-8 { + padding-bottom: 8px +} + +.pl-8 { + padding-left: 8px +} + +.p-12 { + padding: 12px +} + +.pt-12 { + padding-top: 12px +} + +.pr-12 { + padding-right: 12px +} + +.pb-12 { + padding-bottom: 12px +} + +.pl-12 { + padding-left: 12px +} + +.p-16 { + padding: 16px +} + +.pt-16 { + padding-top: 16px +} + +.pr-16 { + padding-right: 16px +} + +.pb-16 { + padding-bottom: 16px +} + +.pl-16 { + padding-left: 16px +} + +.p-24 { + padding: 24px +} + +.pt-24 { + padding-top: 24px +} + +.pr-24 { + padding-right: 24px +} + +.pb-24 { + padding-bottom: 24px +} + +.pl-24 { + padding-left: 24px +} + +.p-32 { + padding: 32px +} + +.pt-32 { + padding-top: 32px +} + +.pr-32 { + padding-right: 32px +} + +.pb-32 { + padding-bottom: 32px +} + +.pl-32 { + padding-left: 32px +} + +.spacer-4 { + padding-top: 4px +} + +.spacer-8 { + padding-top: 8px +} + +.spacer-12 { + padding-top: 12px +} + +.spacer-16 { + padding-top: 16px +} + +.spacer-24 { + padding-top: 24px +} + +.spacer-32 { + padding-top: 32px +} + +.spacer-48 { + padding-top: 48px +} + +.spacer-64 { + padding-top: 64px +} + +@media (max-width: 640px) { + .ta-l-mobile { + text-align: left + } + + .ta-c-mobile { + text-align: center + } + + .ta-r-mobile { + text-align: right + } + + .center-content-mobile { + text-align: center + } + + .center-content-mobile img, .center-content-mobile svg, .center-content-mobile video { + margin-left: auto; + margin-right: auto + } + + .center-content-mobile .button-group { + justify-content: center + } + + .spacer-4-mobile { + padding-top: 4px + } + + .spacer-8-mobile { + padding-top: 8px + } + + .spacer-12-mobile { + padding-top: 12px + } + + .spacer-16-mobile { + padding-top: 16px + } + + .spacer-24-mobile { + padding-top: 24px + } + + .spacer-32-mobile { + padding-top: 32px + } + + .spacer-48-mobile { + padding-top: 48px + } + + .spacer-64-mobile { + padding-top: 64px + } +} + +@media (min-width: 641px) { + .ta-l-desktop { + text-align: left + } + + .ta-c-desktop { + text-align: center + } + + .ta-r-desktop { + text-align: right + } + + .center-content-desktop { + text-align: center + } + + .center-content-desktop img, .center-content-desktop svg, .center-content-desktop video { + margin-left: auto; + margin-right: auto + } + + .center-content-desktop .button-group { + justify-content: center + } +} + +/*# sourceMappingURL=data:application/json;base64,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LENBQUMsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLG1CQUFtQixDQUFDLE9BQU8saUJBQWlCLENBQUMsTUFBTSxZQUFZLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLGtCQUFrQixDQUFDLE9BQU8sbUJBQW1CLENBQUMsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLFlBQVksQ0FBQyxPQUFPLGdCQUFnQixDQUFDLE9BQU8sa0JBQWtCLENBQUMsT0FBTyxtQkFBbUIsQ0FBQyxPQUFPLGlCQUFpQixDQUFDLFVBQVUsZUFBZSxDQUFDLFVBQVUsZUFBZSxDQUFDLFdBQVcsZ0JBQWdCLENBQUMsV0FBVyxnQkFBZ0IsQ0FBQyxXQUFXLGdCQUFnQixDQUFDLFdBQVcsZ0JBQWdCLENBQUMsV0FBVyxnQkFBZ0IsQ0FBQyxXQUFXLGdCQUFnQixDQUFDLDBCQUEwQixhQUFhLGVBQWUsQ0FBQyxhQUFhLGlCQUFpQixDQUFDLGFBQWEsZ0JBQWdCLENBQUMsdUJBQXVCLGlCQUFpQixDQUFDLG1GQUFtRixnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxxQ0FBcUMsc0JBQXNCLENBQUMsaUJBQWlCLGVBQWUsQ0FBQyxpQkFBaUIsZUFBZSxDQUFDLGtCQUFrQixnQkFBZ0IsQ0FBQyxrQkFBa0IsZ0JBQWdCLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDLGtCQUFrQixnQkFBZ0IsQ0FBQyxrQkFBa0IsZ0JBQWdCLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDLENBQUMsMEJBQTBCLGNBQWMsZUFBZSxDQUFDLGNBQWMsaUJBQWlCLENBQUMsY0FBYyxnQkFBZ0IsQ0FBQyx3QkFBd0IsaUJBQWlCLENBQUMsc0ZBQXNGLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHNDQUFzQyxzQkFBc0IsQ0FBQyIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1GaXJhK1NhbnM6NjAwfEhlZWJvOjQwMCw1MDAsNzAwJmRpc3BsYXk9c3dhcFwiKTtodG1se2xpbmUtaGVpZ2h0OjEuMTU7LW1zLXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJX1ib2R5e21hcmdpbjowfWFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixuYXYsc2VjdGlvbntkaXNwbGF5OmJsb2NrfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOjAuNjdlbSAwfWZpZ2NhcHRpb24sZmlndXJlLG1haW57ZGlzcGxheTpibG9ja31maWd1cmV7bWFyZ2luOjFlbSA0MHB4fWhye2JveC1zaXppbmc6Y29udGVudC1ib3g7aGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZX1wcmV7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLCBtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDpvYmplY3RzfWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLCBtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1kZm57Zm9udC1zdHlsZTppdGFsaWN9bWFya3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjA7Y29sb3I6IzAwMH1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LTAuMjVlbX1zdXB7dG9wOi0wLjVlbX1hdWRpbyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9ja31hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfWltZ3tib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0OjEuMTU7bWFyZ2luOjB9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIFt0eXBlPVwiYnV0dG9uXCJdLFt0eXBlPVwicmVzZXRcIl0sW3R5cGU9XCJzdWJtaXRcIl17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lcntib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjB9YnV0dG9uOi1tb3otZm9jdXNyaW5nLFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmd7b3V0bGluZToxcHggZG90dGVkIEJ1dHRvblRleHR9ZmllbGRzZXR7cGFkZGluZzowLjM1ZW0gMC43NWVtIDAuNjI1ZW19bGVnZW5ke2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH1wcm9ncmVzc3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfVt0eXBlPVwiY2hlY2tib3hcIl0sW3R5cGU9XCJyYWRpb1wiXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfVt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPVwic2VhcmNoXCJdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH1bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fWRldGFpbHMsbWVudXtkaXNwbGF5OmJsb2NrfXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19Y2FudmFze2Rpc3BsYXk6aW5saW5lLWJsb2NrfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX1baGlkZGVuXXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsuaGFzLWFuaW1hdGlvbnMgW2NsYXNzKj1yZXZlYWwtXXtvcGFjaXR5OjA7d2lsbC1jaGFuZ2U6b3BhY2l0eSwgdHJhbnNmb3JtfS5oYXMtYW5pbWF0aW9ucyAucmV2ZWFsLWZyb20tdG9we3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KX0uaGFzLWFuaW1hdGlvbnMgLnJldmVhbC1mcm9tLWJvdHRvbXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KX0uaGFzLWFuaW1hdGlvbnMgLnJldmVhbC1mcm9tLWxlZnR7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwcHgpfS5oYXMtYW5pbWF0aW9ucyAucmV2ZWFsLWZyb20tcmlnaHR7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMTBweCl9Lmhhcy1hbmltYXRpb25zIC5yZXZlYWwtc2NhbGUtdXB7dHJhbnNmb3JtOnNjYWxlKC45NSl9Lmhhcy1hbmltYXRpb25zIC5yZXZlYWwtc2NhbGUtZG93bnt0cmFuc2Zvcm06c2NhbGUoMS4wNSl9Lmhhcy1hbmltYXRpb25zIC5yZXZlYWwtcm90YXRlLWZyb20tbGVmdHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC00NWRlZyl9Lmhhcy1hbmltYXRpb25zIC5yZXZlYWwtcm90YXRlLWZyb20tcmlnaHR7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg0NWRlZyl9Lmhhcy1hbmltYXRpb25zLmlzLWxvYWRlZCBbY2xhc3MqPXJldmVhbC1de3RyYW5zaXRpb246b3BhY2l0eSAxcyBjdWJpYy1iZXppZXIoMC4zOSwgMC41NzUsIDAuNTY1LCAxKSx0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAuMzksIDAuNTc1LCAwLjU2NSwgMSl9Lmhhcy1hbmltYXRpb25zLmlzLWxvYWRlZCBbY2xhc3MqPXJldmVhbC1dLmlzLXJldmVhbGVke29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApfX1odG1se2JveC1zaXppbmc6Ym9yZGVyLWJveH0qLCo6YmVmb3JlLCo6YWZ0ZXJ7Ym94LXNpemluZzppbmhlcml0fWJvZHl7YmFja2dyb3VuZDojMTYxNzFCOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfWhye2JvcmRlcjowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiMyOTJCMzI7bWFyZ2luLXRvcDoyNHB4O21hcmdpbi1ib3R0b206MjRweH11bCxvbHttYXJnaW4tdG9wOjA7cGFkZGluZy1sZWZ0OjI0cHh9dWw6bm90KDpsYXN0LWNoaWxkKSxvbDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206MjRweH11bHtsaXN0LXN0eWxlOmRpc2N9b2x7bGlzdC1zdHlsZTpkZWNpbWFsfWxpOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToxMnB4fWxpPnVsLGxpPm9se21hcmdpbi10b3A6MTJweDttYXJnaW4tYm90dG9tOjB9ZGx7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MjRweH1kdHtmb250LXdlaWdodDo3MDB9ZGR7bWFyZ2luLWxlZnQ6MjRweDttYXJnaW4tYm90dG9tOjI0cHh9aW1ne2JvcmRlci1yYWRpdXM6MnB4fWltZyxzdmcsdmlkZW97ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bzttYXgtd2lkdGg6MTAwJX1maWd1cmV7bWFyZ2luOjQ4cHggMH1maWdjYXB0aW9ue3BhZGRpbmc6OHB4IDB9dGFibGV7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDtsZXR0ZXItc3BhY2luZzotMC4xcHg7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO21hcmdpbi1ib3R0b206MjRweDt3aWR0aDoxMDAlfXRye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMyOTJCMzJ9dGh7Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246bGVmdH10aCx0ZHtwYWRkaW5nOjhweCAxNnB4fXRoOmZpcnN0LWNoaWxkLHRkOmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDowfXRoOmxhc3QtY2hpbGQsdGQ6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjB9LmludmVydC1jb2xvciBocntkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojZTVlOWZmfS5pbnZlcnQtY29sb3IgdHJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U1ZTlmZn1odG1se2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjMycHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4fWJvZHl7Y29sb3I6Izk1OUNCMTtmb250LXNpemU6MXJlbX1ib2R5LGJ1dHRvbixpbnB1dCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6XCJIZWVib1wiLCBzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMH1oMSxoMixoMyxoNCxoNSxoNiwuaDEsLmgyLC5oMywuaDQsLmg1LC5oNntmb250LWZhbWlseTpcIkZpcmEgU2Fuc1wiLCBzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtjbGVhcjpib3RoO2NvbG9yOiNGOUZBRkY7d29yZC13cmFwOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfWgxLC5oMXtmb250LXNpemU6MzhweDtsaW5lLWhlaWdodDo0OHB4fWgyLC5oMntmb250LXNpemU6MzJweDtsaW5lLWhlaWdodDo0MnB4fWgzLC5oM3tmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozNHB4O2xldHRlci1zcGFjaW5nOi0wLjFweH1oNCwuaDR7Zm9udC1zaXplOjI0cHg7bGluZS1oZWlnaHQ6MzRweDtsZXR0ZXItc3BhY2luZzotMC4xcHh9aDUsLmg1e2ZvbnQtc2l6ZToyMHB4O2xpbmUtaGVpZ2h0OjMycHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4fWg2LC5oNixzbWFsbCwudGV4dC1zbXtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDozMHB4O2xldHRlci1zcGFjaW5nOi0wLjFweH0udGV4dC14c3tmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOi0wLjFweH0udGV4dC14eHN7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweH1maWdjYXB0aW9ue2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIycHh9YTpub3QoLmJ1dHRvbil7Y29sb3I6aW5oZXJpdH1hOm5vdCguYnV0dG9uKTpob3ZlcixhOm5vdCguYnV0dG9uKTphY3RpdmV7Y29sb3I6I0Y5RkFGRjtvdXRsaW5lOjB9YS5idXR0b24tbGlua3tjb2xvcjojNkE2RjgyfWEuYnV0dG9uLWxpbms6aG92ZXIsYS5idXR0b24tbGluazphY3RpdmV7Y29sb3I6Izk1OUNCMX1hLmZ1bmMtbGlua3tjb2xvcjojMzc2REY5fWEuZnVuYy1saW5rOmhvdmVyLGEuZnVuYy1saW5rOmFjdGl2ZXtjb2xvcjojNjk5MUZBfWgxLC5oMXttYXJnaW4tdG9wOjQ4cHg7bWFyZ2luLWJvdHRvbTozMnB4fWgyLC5oMnttYXJnaW4tdG9wOjQ4cHg7bWFyZ2luLWJvdHRvbTozMnB4fWgzLC5oM3ttYXJnaW4tdG9wOjM2cHg7bWFyZ2luLWJvdHRvbToyNHB4fWg0LGg1LGg2LC5oNCwuaDUsLmg2e21hcmdpbi10b3A6MjRweDttYXJnaW4tYm90dG9tOjI0cHh9cHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToyNHB4fWRmbixjaXRlLGVtLGl7Zm9udC1zdHlsZTppdGFsaWN9YmxvY2txdW90ZXtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDozMnB4O2xldHRlci1zcGFjaW5nOi0wLjFweDttYXJnaW4tdG9wOjI0cHg7bWFyZ2luLWJvdHRvbToyNHB4O21hcmdpbi1sZWZ0OjI0cHh9YmxvY2txdW90ZTo6YmVmb3Jle2NvbnRlbnQ6XCJcXDIwMUNcIn1ibG9ja3F1b3RlOjphZnRlcntjb250ZW50OlwiXFwyMDFEXCJ9YmxvY2txdW90ZSBwe2Rpc3BsYXk6aW5saW5lfWFkZHJlc3N7Ym9yZGVyLXdpZHRoOjFweCAwO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6IzI5MkIzMjtwYWRkaW5nOjI0cHggMDttYXJnaW46MCAwIDI0cHh9cHJlLHByZSBoMSxwcmUgaDIscHJlIGgzLHByZSBoNCxwcmUgaDUscHJlIGg2LHByZSAuaDEscHJlIC5oMixwcmUgLmgzLHByZSAuaDQscHJlIC5oNSxwcmUgLmg2e2ZvbnQtZmFtaWx5OlwiQ291cmllciAxMCBQaXRjaFwiLCBDb3VyaWVyLCBtb25vc3BhY2V9cHJlLGNvZGUsa2JkLHR0LHZhcntiYWNrZ3JvdW5kOiMwZDBkMTB9cHJle2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4O21heC13aWR0aDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZzoyNHB4IDI0cHg7bWFyZ2luLXRvcDoyNHB4O21hcmdpbi1ib3R0b206MjRweH1jb2RlLGtiZCx0dCx2YXJ7Zm9udC1mYW1pbHk6TW9uYWNvLCBDb25zb2xhcywgXCJBbmRhbGUgTW9ub1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4O3BhZGRpbmc6MnB4IDRweH1hYmJyLGFjcm9ueW17Y3Vyc29yOmhlbHB9bWFyayxpbnN7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YixzdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfS5pbnZlcnQtY29sb3J7Y29sb3I6IzZBNkY4Mn0uaW52ZXJ0LWNvbG9yIGE6bm90KC5idXR0b24pOmhvdmVyLC5pbnZlcnQtY29sb3IgYTpub3QoLmJ1dHRvbik6YWN0aXZle2NvbG9yOiMxQzFEMjI7b3V0bGluZTowfS5pbnZlcnQtY29sb3IgYS5idXR0b24tbGluazpob3ZlciwuaW52ZXJ0LWNvbG9yIGEuYnV0dG9uLWxpbms6YWN0aXZle2NvbG9yOiMzNzZERjl9LmludmVydC1jb2xvciBhLmZ1bmMtbGluazpob3ZlciwuaW52ZXJ0LWNvbG9yIGEuZnVuYy1saW5rOmFjdGl2ZXtjb2xvcjojNjk5MUZBfS5pbnZlcnQtY29sb3IgaDEsLmludmVydC1jb2xvciBoMiwuaW52ZXJ0LWNvbG9yIGgzLC5pbnZlcnQtY29sb3IgaDQsLmludmVydC1jb2xvciBoNSwuaW52ZXJ0LWNvbG9yIGg2LC5pbnZlcnQtY29sb3IgLmgxLC5pbnZlcnQtY29sb3IgLmgyLC5pbnZlcnQtY29sb3IgLmgzLC5pbnZlcnQtY29sb3IgLmg0LC5pbnZlcnQtY29sb3IgLmg1LC5pbnZlcnQtY29sb3IgLmg2e2NvbG9yOiMxNjE3MUJ9LmludmVydC1jb2xvciBhZGRyZXNze2JvcmRlci1jb2xvcjojZTVlOWZmfS5pbnZlcnQtY29sb3IgcHJlLC5pbnZlcnQtY29sb3IgY29kZSwuaW52ZXJ0LWNvbG9yIGtiZCwuaW52ZXJ0LWNvbG9yIHR0LC5pbnZlcnQtY29sb3IgdmFye2JhY2tncm91bmQ6IzBkMGQxMH1AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey5oMS1tb2JpbGV7Zm9udC1zaXplOjM4cHg7bGluZS1oZWlnaHQ6NDhweH0uaDItbW9iaWxle2ZvbnQtc2l6ZTozMnB4O2xpbmUtaGVpZ2h0OjQycHh9LmgzLW1vYmlsZXtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozNHB4O2xldHRlci1zcGFjaW5nOi0wLjFweH0uaDQtbW9iaWxle2ZvbnQtc2l6ZToyNHB4O2xpbmUtaGVpZ2h0OjM0cHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4fS5oNS1tb2JpbGV7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MzJweDtsZXR0ZXItc3BhY2luZzotMC4xcHh9Lmg2LW1vYmlsZXtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDozMHB4O2xldHRlci1zcGFjaW5nOi0wLjFweH19QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXtoMSwuaDF7Zm9udC1zaXplOjQ0cHg7bGluZS1oZWlnaHQ6NTRweH1oMiwuaDJ7Zm9udC1zaXplOjM4cHg7bGluZS1oZWlnaHQ6NDhweH1oMywuaDN7Zm9udC1zaXplOjMycHg7bGluZS1oZWlnaHQ6NDJweH19LmNvbnRhaW5lciwuY29udGFpbmVyLXNtLC5jb250YWluZXIteHN7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvO3BhZGRpbmctbGVmdDoxNnB4O3BhZGRpbmctcmlnaHQ6MTZweH1AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpey5jb250YWluZXIsLmNvbnRhaW5lci1zbSwuY29udGFpbmVyLXhze3BhZGRpbmctbGVmdDoyNHB4O3BhZGRpbmctcmlnaHQ6MjRweH19LmNvbnRhaW5lcnttYXgtd2lkdGg6MTEyOHB4fS5jb250YWluZXItc217bWF4LXdpZHRoOjk0NHB4fS5jb250YWluZXIteHN7bWF4LXdpZHRoOjY2OHB4fVtjbGFzcyo9Y29udGFpbmVyXSBbY2xhc3MqPWNvbnRhaW5lcl17cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfVtjbGFzcyo9Y29udGFpbmVyXSAuY29udGFpbmVyLXNte21heC13aWR0aDo4OTZweH1bY2xhc3MqPWNvbnRhaW5lcl0gLmNvbnRhaW5lci14c3ttYXgtd2lkdGg6NjIwcHh9LmJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjIycHg7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6MTJweCAzMXB4O2hlaWdodDo0OHB4O3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOiM2QTZGODI7YmFja2dyb3VuZC1jb2xvcjojRjlGQUZGO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDApO2JvcmRlci1yYWRpdXM6MnB4O2N1cnNvcjpwb2ludGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7bGV0dGVyLXNwYWNpbmc6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3dyYXA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZX0uYnV0dG9uOmFjdGl2ZXtvdXRsaW5lOjB9LmJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ1dHRvbi5pcy1sb2FkaW5ne3Bvc2l0aW9uOnJlbGF0aXZlO2NvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0uYnV0dG9uLmlzLWxvYWRpbmc6OmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O21hcmdpbi1sZWZ0Oi0xMXB4O21hcmdpbi10b3A6LTExcHg7dG9wOjUwJTtsZWZ0OjUwJTtib3JkZXI6MnB4IHNvbGlkICM2QTZGODI7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O3otaW5kZXg6MTthbmltYXRpb246YnV0dG9uLWxvYWRpbmcgLjZzIGluZmluaXRlIGxpbmVhcn0uYnV0dG9uW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6IzE2MTcxQjtiYWNrZ3JvdW5kLWNvbG9yOiMyOTJCMzIgIWltcG9ydGFudH0uYnV0dG9uW2Rpc2FibGVkXS5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6IzE2MTcxQn0uYnV0dG9uLXNte3BhZGRpbmc6NnB4IDIzcHg7aGVpZ2h0OjM2cHh9LmJ1dHRvbi1kYXJre2NvbG9yOiNGOUZBRkY7YmFja2dyb3VuZC1jb2xvcjojMjkyQjMyfS5idXR0b24tZGFyazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzMDMyM2F9LmJ1dHRvbi1kYXJrLmlzLWxvYWRpbmc6OmFmdGVye2JvcmRlci1jb2xvcjojRjlGQUZGfS5idXR0b24tcHJpbWFyeXtjb2xvcjojRjlGQUZGO2JhY2tncm91bmQtY29sb3I6IzM3NkRGOX0uYnV0dG9uLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDY3OGY5fS5idXR0b24tcHJpbWFyeS5pcy1sb2FkaW5nOjphZnRlcntib3JkZXItY29sb3I6I0Y5RkFGRn0uYnV0dG9uLXNlY29uZGFyeXtjb2xvcjojRjlGQUZGO2JhY2tncm91bmQtY29sb3I6I0ZGNUZBMH0uYnV0dG9uLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZjZlYTl9LmJ1dHRvbi1zZWNvbmRhcnkuaXMtbG9hZGluZzo6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOiNGOUZBRkZ9LmJ1dHRvbi1ibG9ja3tkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0uYnV0dG9uLWdyb3Vwe2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLXJpZ2h0Oi04cHg7bWFyZ2luLWxlZnQ6LThweDttYXJnaW4tdG9wOi04cHh9LmJ1dHRvbi1ncm91cDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTotOHB4fS5idXR0b24tZ3JvdXA6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206OHB4fS5idXR0b24tZ3JvdXA+W2NsYXNzKj1idXR0b25de21hcmdpbjo4cHh9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuYnV0dG9uLXdpZGUtbW9iaWxle3dpZHRoOjEwMCU7bWF4LXdpZHRoOjI4MHB4fX1Aa2V5ZnJhbWVzIGJ1dHRvbi1sb2FkaW5nezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9MTAwJXt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fWZpZWxkc2V0e3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MH0uZm9ybS1sYWJlbCwuZm9ybS1zd2l0Y2h7Y29sb3I6IzZBNkY4Mjtmb250LXdlaWdodDo1MDB9LmZvcm0tbGFiZWx7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjJweH0uZm9ybS1pbnB1dCwuZm9ybS1zZWxlY3QsLmZvcm0tY2hlY2tib3ggaW5wdXQsLmZvcm0tcmFkaW8gaW5wdXR7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojRjlGQUZGO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojMTYxNzFCfS5mb3JtLWlucHV0OmhvdmVyLC5mb3JtLXNlbGVjdDpob3ZlciwuZm9ybS1jaGVja2JveCBpbnB1dDpob3ZlciwuZm9ybS1yYWRpbyBpbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzZBNkY4Mn0uZm9ybS1pbnB1dDphY3RpdmUsLmZvcm0taW5wdXQ6Zm9jdXMsLmZvcm0tc2VsZWN0OmFjdGl2ZSwuZm9ybS1zZWxlY3Q6Zm9jdXMsLmZvcm0tY2hlY2tib3ggaW5wdXQ6YWN0aXZlLC5mb3JtLWNoZWNrYm94IGlucHV0OmZvY3VzLC5mb3JtLXJhZGlvIGlucHV0OmFjdGl2ZSwuZm9ybS1yYWRpbyBpbnB1dDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOiMzNzZERjl9LmZvcm0taW5wdXRbZGlzYWJsZWRdLC5mb3JtLXNlbGVjdFtkaXNhYmxlZF0sLmZvcm0tY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdLC5mb3JtLXJhZGlvIGlucHV0W2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWQ7YmFja2dyb3VuZC1jb2xvcjojMjkyQjMyO2JvcmRlci1jb2xvcjojMUMxRDIyfS5mb3JtLWlucHV0LmZvcm0tZXJyb3IsLmZvcm0tc2VsZWN0LmZvcm0tZXJyb3IsLmZvcm0tY2hlY2tib3ggaW5wdXQuZm9ybS1lcnJvciwuZm9ybS1yYWRpbyBpbnB1dC5mb3JtLWVycm9ye2JvcmRlci1jb2xvcjojRkY1RkEwfS5mb3JtLWlucHV0LmZvcm0td2FybmluZywuZm9ybS1zZWxlY3QuZm9ybS13YXJuaW5nLC5mb3JtLWNoZWNrYm94IGlucHV0LmZvcm0td2FybmluZywuZm9ybS1yYWRpbyBpbnB1dC5mb3JtLXdhcm5pbmd7Ym9yZGVyLWNvbG9yOiNGRkM1NUF9LmZvcm0taW5wdXQuZm9ybS1zdWNjZXNzLC5mb3JtLXNlbGVjdC5mb3JtLXN1Y2Nlc3MsLmZvcm0tY2hlY2tib3ggaW5wdXQuZm9ybS1zdWNjZXNzLC5mb3JtLXJhZGlvIGlucHV0LmZvcm0tc3VjY2Vzc3tib3JkZXItY29sb3I6IzFFQzE5OH0uZm9ybS1pbnB1dCwuZm9ybS1zZWxlY3R7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOi0wLjFweDtwYWRkaW5nOjExcHggMTVweDtoZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjA7Y29sb3I6IzE2MTcxQjtib3gtc2hhZG93Om5vbmU7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0uZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6Izk1OUNCMX0uZm9ybS1pbnB1dDo6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM5NTlDQjF9dGV4dGFyZWEuZm9ybS1pbnB1dHtoZWlnaHQ6YXV0bztyZXNpemU6dmVydGljYWx9LmZvcm0tc2VsZWN0e3BhZGRpbmctcmlnaHQ6NDZweDtiYWNrZ3JvdW5kLWltYWdlOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVTLUFTQ0lJLCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDE2JTIwMTYlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUzRSUzQ3BhdGglMjBkJTNEJTIyTTglMjAxMS40TDIuNiUyMDYlMjA0JTIwNC42bDQlMjA0JTIwNC00TDEzLjQlMjA2JTIwOCUyMDExLjR6JTIyJTIwZmlsbCUzRCUyMiUyM0Y5RkFGRiUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxNXB4IGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjE2cHggMTZweH0uZm9ybS1zZWxlY3Qtc217cGFkZGluZy1yaWdodDozOHB4O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMTFweCBjZW50ZXJ9LmZvcm0tc2VsZWN0LXNtLC5mb3JtLWlucHV0LXNte3BhZGRpbmc6NXB4IDExcHg7aGVpZ2h0OjM2cHh9Lmhhcy1pY29uLWxlZnQsLmhhcy1pY29uLXJpZ2h0e3Bvc2l0aW9uOnJlbGF0aXZlfS5oYXMtaWNvbi1sZWZ0IHN2ZywuaGFzLWljb24tcmlnaHQgc3Zne3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKX0uaGFzLWljb24tbGVmdCAuZm9ybS1pbnB1dHtwYWRkaW5nLWxlZnQ6NDZweH0uaGFzLWljb24tbGVmdCAuZm9ybS1pbnB1dCtzdmd7bGVmdDoxNXB4fS5oYXMtaWNvbi1sZWZ0IC5mb3JtLWlucHV0LXNte3BhZGRpbmctbGVmdDozOHB4fS5oYXMtaWNvbi1sZWZ0IC5mb3JtLWlucHV0LXNtK3N2Z3tsZWZ0OjExcHh9Lmhhcy1pY29uLXJpZ2h0IC5mb3JtLWlucHV0e3BhZGRpbmctcmlnaHQ6NDZweH0uaGFzLWljb24tcmlnaHQgLmZvcm0taW5wdXQrc3Zne3JpZ2h0OjE1cHh9Lmhhcy1pY29uLXJpZ2h0IC5mb3JtLWlucHV0LXNte3BhZGRpbmctcmlnaHQ6MzhweH0uaGFzLWljb24tcmlnaHQgLmZvcm0taW5wdXQtc20rc3Zne3JpZ2h0OjExcHh9LmZvcm0tY2hlY2tib3gsLmZvcm0tcmFkaW8sLmZvcm0tc3dpdGNoe2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7bGV0dGVyLXNwYWNpbmc6LTAuMXB4O2N1cnNvcjpwb2ludGVyfS5mb3JtLWNoZWNrYm94LC5mb3JtLXJhZGlve2NvbG9yOiM5NTlDQjF9LmZvcm0tY2hlY2tib3gsLmZvcm0tcmFkaW97cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjI0cHh9LmZvcm0tY2hlY2tib3ggaW5wdXQsLmZvcm0tcmFkaW8gaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDozcHg7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtjdXJzb3I6cG9pbnRlcn0uZm9ybS1jaGVja2JveCBpbnB1dDpjaGVja2VkLC5mb3JtLXJhZGlvIGlucHV0OmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjojMzc2REY5ICFpbXBvcnRhbnQ7Ym9yZGVyLWNvbG9yOiMzNzZERjkgIWltcG9ydGFudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJX0uZm9ybS1jaGVja2JveCBpbnB1dHtib3JkZXItcmFkaXVzOjJweH0uZm9ybS1jaGVja2JveCBpbnB1dDpjaGVja2Vke2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlNVFFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrSUR4d1lYUm9JR1E5SWsweE1TNDBJRFZNTVRBZ015NDJiQzAwSURRdE1pMHlUREl1TmlBM0lEWWdNVEF1TkhvaUlHWnBiR3c5SWlOR1JrWWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0l2UGp3dmMzWm5QZz09KX0uZm9ybS1yYWRpbyBpbnB1dHtib3JkZXItcmFkaXVzOjUwJX0uZm9ybS1yYWRpbyBpbnB1dDpjaGVja2Vke2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1UUWlJR2hsYVdkb2REMGlNVFFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrUEdOcGNtTnNaU0JtYVd4c1BTSWpSa1pHSWlCamVEMGlOeUlnWTNrOUlqY2lJSEk5SWpNaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSXZQand2YzNablBnPT0pfS5mb3JtLXN3aXRjaHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt1c2VyLXNlbGVjdDpub25lfS5mb3JtLXN3aXRjaCBpbnB1dHtjbGlwOnJlY3QoMCwgMCwgMCwgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5mb3JtLXN3aXRjaCAuZm9ybS1zd2l0Y2gtaWNvbntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDo2MHB4O3dpZHRoOjYwcHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQ6IzI5MkIzMn0uZm9ybS1zd2l0Y2ggLmZvcm0tc3dpdGNoLWljb246OmJlZm9yZXtjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtsZWZ0OjJweDt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOiNGOUZBRkY7dHJhbnNpdGlvbjphbGwgLjE1cyBlYXNlLW91dH0uZm9ybS1zd2l0Y2ggaW5wdXQ6Y2hlY2tlZCsuZm9ybS1zd2l0Y2gtaWNvbntiYWNrZ3JvdW5kOiMzNzZERjl9LmZvcm0tc3dpdGNoIGlucHV0OmNoZWNrZWQrLmZvcm0tc3dpdGNoLWljb246OmJlZm9yZXtsZWZ0OjMwcHh9LmZvcm0tc3dpdGNoPnNwYW46bm90KC5mb3JtLXN3aXRjaC1pY29uKXtvcmRlcjotMTttYXJnaW4tcmlnaHQ6MTJweH0uZm9ybS1zd2l0Y2g+c3Bhbjpub3QoLmZvcm0tc3dpdGNoLWljb24pOmxhc3QtY2hpbGR7b3JkZXI6aW5pdGlhbDttYXJnaW4tbGVmdDoxMnB4O21hcmdpbi1yaWdodDowfS5pbnZlcnQtY29sb3IgLmZvcm0tbGFiZWwsLmludmVydC1jb2xvciAuZm9ybS1zd2l0Y2h7Y29sb3I6IzI5MkIzMn0uaW52ZXJ0LWNvbG9yIC5mb3JtLWlucHV0LC5pbnZlcnQtY29sb3IgLmZvcm0tc2VsZWN0LC5pbnZlcnQtY29sb3IgLmZvcm0tY2hlY2tib3ggaW5wdXQsLmludmVydC1jb2xvciAuZm9ybS1yYWRpbyBpbnB1dHtib3JkZXItY29sb3I6I2U1ZTlmZn0uaW52ZXJ0LWNvbG9yIC5mb3JtLWlucHV0OmFjdGl2ZSwuaW52ZXJ0LWNvbG9yIC5mb3JtLWlucHV0OmZvY3VzLC5pbnZlcnQtY29sb3IgLmZvcm0tc2VsZWN0OmFjdGl2ZSwuaW52ZXJ0LWNvbG9yIC5mb3JtLXNlbGVjdDpmb2N1cywuaW52ZXJ0LWNvbG9yIC5mb3JtLWNoZWNrYm94IGlucHV0OmFjdGl2ZSwuaW52ZXJ0LWNvbG9yIC5mb3JtLWNoZWNrYm94IGlucHV0OmZvY3VzLC5pbnZlcnQtY29sb3IgLmZvcm0tcmFkaW8gaW5wdXQ6YWN0aXZlLC5pbnZlcnQtY29sb3IgLmZvcm0tcmFkaW8gaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOiMzNzZERjl9LmludmVydC1jb2xvciAuZm9ybS1pbnB1dFtkaXNhYmxlZF0sLmludmVydC1jb2xvciAuZm9ybS1zZWxlY3RbZGlzYWJsZWRdLC5pbnZlcnQtY29sb3IgLmZvcm0tY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdLC5pbnZlcnQtY29sb3IgLmZvcm0tcmFkaW8gaW5wdXRbZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6I2U1ZTlmZn0uaW52ZXJ0LWNvbG9yIC5mb3JtLWlucHV0LC5pbnZlcnQtY29sb3IgLmZvcm0tc2VsZWN0e2NvbG9yOiMyOTJCMzJ9LmludmVydC1jb2xvciAuZm9ybS1zZWxlY3R7YmFja2dyb3VuZC1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VUy1BU0NJSSwlM0NzdmclMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxNiUyMDE2JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk04JTIwMTEuNEwyLjYlMjA2JTIwNCUyMDQuNmw0JTIwNCUyMDQtNEwxMy40JTIwNiUyMDglMjAxMS40eiUyMiUyMGZpbGwlM0QlMjIlMjMyOTJCMzIlMjIlMjBmaWxsLXJ1bGUlM0QlMjJldmVub2RkJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpfS5pbnZlcnQtY29sb3IgLmZvcm0tY2hlY2tib3gsLmludmVydC1jb2xvciAuZm9ybS1yYWRpb3tjb2xvcjojMjkyQjMyfS5pbnZlcnQtY29sb3IgLmZvcm0tY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCwuaW52ZXJ0LWNvbG9yIC5mb3JtLXJhZGlvIGlucHV0OmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjohaW1wb3J0YW50O2JvcmRlci1jb2xvcjohaW1wb3J0YW50fS5mb3JtLWdyb3Vwe2Rpc3BsYXk6ZmxleH0uZm9ybS1ncm91cCAuZm9ybS1pbnB1dHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO21hcmdpbi1yaWdodDoxMnB4fS5mb3JtLWdyb3VwIC5idXR0b257cGFkZGluZy1sZWZ0OjI0cHg7cGFkZGluZy1yaWdodDoyNHB4O2ZsZXgtc2hyaW5rOjB9LmZvcm0taGludHtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMnB4O21hcmdpbi10b3A6OHB4fUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7LmZvcm0tZ3JvdXAtZGVza3RvcCAuZm9ybS1pbnB1dHttYXJnaW4tYm90dG9tOjEycHh9LmZvcm0tZ3JvdXAtZGVza3RvcCAuYnV0dG9ue3dpZHRoOjEwMCV9fUBtZWRpYSAobWluLXdpZHRoOiA2NDFweCl7LmZvcm0tZ3JvdXAtZGVza3RvcHtkaXNwbGF5OmZsZXh9LmZvcm0tZ3JvdXAtZGVza3RvcCAuZm9ybS1pbnB1dHtmbGV4LWdyb3c6MTtmbGV4LXNocmluazoxO21hcmdpbi1yaWdodDoxMnB4fS5mb3JtLWdyb3VwLWRlc2t0b3AgLmJ1dHRvbntwYWRkaW5nLWxlZnQ6MjRweDtwYWRkaW5nLXJpZ2h0OjI0cHg7ZmxleC1zaHJpbms6MH19LmhlYWRlci1uYXYtdG9nZ2xle2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7b3V0bGluZTowO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcn0uaGFtYnVyZ2VyLC5oYW1idXJnZXItaW5uZXJ7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfS5oYW1idXJnZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MjRweDtoZWlnaHQ6MjRweH0uaGFtYnVyZ2VyLWlubmVyLC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwuaGFtYnVyZ2VyLWlubmVyOjphZnRlcnt3aWR0aDoyNHB4O2hlaWdodDoycHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDojOTU5Q0IxfS5pbnZlcnQtY29sb3IgLmhhbWJ1cmdlci1pbm5lciwuaW52ZXJ0LWNvbG9yIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwuaW52ZXJ0LWNvbG9yIC5oYW1idXJnZXItaW5uZXI6OmFmdGVye2JhY2tncm91bmQ6IzFDMUQyMn0uaGFtYnVyZ2VyLWlubmVye3RvcDo1MCU7bWFyZ2luLXRvcDotMXB4O3RyYW5zaXRpb24tZHVyYXRpb246MC4yMnM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSl9LmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLC5oYW1idXJnZXItaW5uZXI6OmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9ja30uaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmV7dG9wOi03cHg7dHJhbnNpdGlvbjp0b3AgMC4xcyAwLjI1cyBlYXNlLWluLCBvcGFjaXR5IDAuMXMgZWFzZS1pbn0uaGFtYnVyZ2VyLWlubmVyOjphZnRlcntib3R0b206LTdweDt0cmFuc2l0aW9uOmJvdHRvbSAwLjFzIDAuMjVzIGVhc2UtaW4sdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpLHdpZHRoIDAuMXMgMC4yNXMgZWFzZS1pbn0ub2ZmLW5hdi1pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcnt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyk7dHJhbnNpdGlvbi1kZWxheTowLjEyczt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKX0ub2ZmLW5hdi1pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3Jle3RvcDowO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRvcCAwLjFzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMXMgMC4xMnMgZWFzZS1vdXR9Lm9mZi1uYXYtaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmFmdGVye3dpZHRoOjI0cHg7Ym90dG9tOjA7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zaXRpb246Ym90dG9tIDAuMXMgZWFzZS1vdXQsdHJhbnNmb3JtIDAuMjJzIDAuMTJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpLHdpZHRoIDAuMXMgZWFzZS1vdXR9LmFjY29yZGlvbiBsaXtwb3NpdGlvbjpyZWxhdGl2ZX0uYWNjb3JkaW9uIGxpOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojMjkyQjMyfS5hY2NvcmRpb24gbGk6bGFzdC1vZi10eXBle3Bvc2l0aW9uOnJlbGF0aXZlfS5hY2NvcmRpb24gbGk6bGFzdC1vZi10eXBlOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiMyOTJCMzJ9LmludmVydC1jb2xvciAuYWNjb3JkaW9uIGxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnZlcnQtY29sb3IgLmFjY29yZGlvbiBsaTo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2JhY2tncm91bmQ6I2U1ZTlmZn0uaW52ZXJ0LWNvbG9yIC5hY2NvcmRpb24gbGk6bGFzdC1vZi10eXBle3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnZlcnQtY29sb3IgLmFjY29yZGlvbiBsaTpsYXN0LW9mLXR5cGU6OmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2JhY2tncm91bmQ6I2U1ZTlmZn0uYWNjb3JkaW9uLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctdG9wOjI0cHg7cGFkZGluZy1ib3R0b206MjRweDtjdXJzb3I6cG9pbnRlcn0uYWNjb3JkaW9uLWhlYWRlciBzcGFue3dpZHRoOmNhbGMoMTAwJSAtICgxNnB4ICogMikpfS5hY2NvcmRpb24tY29udGVudHttYXgtaGVpZ2h0OjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjE1cyBlYXNlLWluLW91dCxvcGFjaXR5IC4xNXN9LmlzLWFjdGl2ZSAuYWNjb3JkaW9uLWNvbnRlbnR7b3BhY2l0eToxfS5hY2NvcmRpb24tY29udGVudCBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbToyNHB4fS5hY2NvcmRpb24taWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS5hY2NvcmRpb24taWNvbjo6YmVmb3JlLC5hY2NvcmRpb24taWNvbjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiMzNzZERjk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLW91dH0uYWNjb3JkaW9uLWljb246OmJlZm9yZXt0b3A6MDtsZWZ0OjUwJTt3aWR0aDoycHg7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6LTFweH0uYWNjb3JkaW9uLWljb246OmFmdGVye3RvcDo1MCU7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjJweDttYXJnaW4tdG9wOi0xcHh9LmlzLWFjdGl2ZSAuYWNjb3JkaW9uLWljb257Y3Vyc29yOnBvaW50ZXJ9LmlzLWFjdGl2ZSAuYWNjb3JkaW9uLWljb246OmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uaXMtYWN0aXZlIC5hY2NvcmRpb24taWNvbjo6YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5tb2RhbCwubW9kYWw6OmJlZm9yZXtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDt0b3A6MH0ubW9kYWx7ZGlzcGxheTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo0MH0ubW9kYWwubW9kYWwtdmlkZW8gLm1vZGFsLWlubmVye3BhZGRpbmc6MDttYXgtd2lkdGg6MTAyNHB4fS5tb2RhbDo6YmVmb3JlLC5tb2RhbCAubW9kYWwtaW5uZXJ7ZGlzcGxheTpub25lfS5tb2RhbDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyLDIzLDI3LDAuODgpfS5tb2RhbC5pcy1hY3RpdmV7ZGlzcGxheTpmbGV4fS5tb2RhbC5pcy1hY3RpdmU6OmJlZm9yZSwubW9kYWwuaXMtYWN0aXZlIC5tb2RhbC1pbm5lcntkaXNwbGF5OmJsb2NrfS5tb2RhbC5pcy1hY3RpdmUgLm1vZGFsLWlubmVye2FuaW1hdGlvbjpzbGlkZVVwSW5Nb2RhbCAuMTVzIGVhc2UtaW4tb3V0IGJvdGh9Lm1vZGFsLmlzLWFjdGl2ZTo6YmVmb3Jle2FuaW1hdGlvbjpzbGlkZVVwSW5Nb2RhbEJnIC4xNXMgZWFzZS1pbi1vdXQgYm90aH0ubW9kYWwtaW5uZXJ7bWF4LWhlaWdodDpjYWxjKDEwMHZoIC0gMTZweCAqIDIpO292ZXJmbG93OmF1dG87cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6Y2FsYygxMDAlICAtICggMTZweCAqIDIgKSk7bWF4LXdpZHRoOjQ4MHB4O21hcmdpbi1sZWZ0OjE2cHg7bWFyZ2luLXJpZ2h0OjE2cHg7YmFja2dyb3VuZDojMjkyQjMyfS5tb2RhbC1jb250ZW50e3BhZGRpbmc6NDhweCAxNnB4fS5tb2RhbC1jbG9zZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO291dGxpbmU6MDtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MjRweDt0b3A6MjRweDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS5tb2RhbC1jbG9zZTo6YmVmb3JlLC5tb2RhbC1jbG9zZTo6YWZ0ZXJ7Y29udGVudDonJztkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luLXRvcDotMXB4O21hcmdpbi1sZWZ0Oi04cHg7d2lkdGg6MTZweDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6IzZBNkY4Mn0ubW9kYWwtY2xvc2U6OmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDIyNWRlZyl9Lm1vZGFsLWNsb3NlOjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9Lm1vZGFsLWNsb3NlOmhvdmVyOjpiZWZvcmUsLm1vZGFsLWNsb3NlOmhvdmVyOjphZnRlcntiYWNrZ3JvdW5kOiM5NTlDQjF9QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsubW9kYWwtaW5uZXJ7bWFyZ2luOjAgYXV0bzttYXgtaGVpZ2h0OmNhbGMoMTAwdmggLSA0OHB4ICogMil9Lm1vZGFsLWNvbnRlbnR7cGFkZGluZy10b3A6NDhweDtwYWRkaW5nLWJvdHRvbTo0OHB4O3BhZGRpbmctbGVmdDozMnB4O3BhZGRpbmctcmlnaHQ6MzJweH19QGtleWZyYW1lcyBzbGlkZVVwSW5Nb2RhbHswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI0cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19QGtleWZyYW1lcyBzbGlkZVVwSW5Nb2RhbEJnezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5jYXJvdXNlbC1pdGVte2Rpc3BsYXk6bm9uZX0uY2Fyb3VzZWwtaXRlbS5pcy1sb2FkaW5nOm5vdCguaXMtYWN0aXZlKXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0uY2Fyb3VzZWwtaXRlbS5pcy1hY3RpdmV7ZGlzcGxheTpibG9ja30uY2Fyb3VzZWwtYnVsbGV0c3tkaXNwbGF5OmlubGluZS1mbGV4fS5jYXJvdXNlbC1idWxsZXR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNhcm91c2VsLWJ1bGxldDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo2cHg7dG9wOjZweDtiYWNrZ3JvdW5kOiMyOTJCMzI7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yNXMgZWFzZX0uY2Fyb3VzZWwtYnVsbGV0OmZvY3Vze291dGxpbmU6bm9uZX0uY2Fyb3VzZWwtYnVsbGV0LmlzLWFjdGl2ZTo6YmVmb3Jle2JhY2tncm91bmQ6IzZBNkY4Mn0uY2Fyb3VzZWwtYnVsbGV0OmhvdmVyOjpiZWZvcmV7YmFja2dyb3VuZDojOTU5Q0IxfS5pbnZlcnQtY29sb3IgLmNhcm91c2VsLWJ1bGxldDo6YmVmb3Jle2JhY2tncm91bmQ6IzZBNkY4Mn0uaW52ZXJ0LWNvbG9yIC5jYXJvdXNlbC1idWxsZXQuaXMtYWN0aXZlOjpiZWZvcmV7YmFja2dyb3VuZDojMjkyQjMyfS5pbnZlcnQtY29sb3IgLmNhcm91c2VsLWJ1bGxldDpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQ6IzM3NkRGOX0uc3BsaXQtd3JhcHttYXJnaW4tdG9wOi0yNHB4fS5zcGxpdC13cmFwOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOi0yNHB4fS5zcGxpdC13cmFwOm5vdCg6bGFzdC1vZi10eXBlKXttYXJnaW4tYm90dG9tOjI0cHh9LnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW17cGFkZGluZy10b3A6MjRweDtwYWRkaW5nLWJvdHRvbToyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW0gLnNwbGl0LWl0ZW0taW1hZ2V7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uc3BsaXQtd3JhcCAuc3BsaXQtaXRlbSAuc3BsaXQtaXRlbS1pbWFnZSBpbWcsLnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW0gLnNwbGl0LWl0ZW0taW1hZ2Ugc3ZnLC5zcGxpdC13cmFwIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWltYWdlIHZpZGVve3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWF4LXdpZHRoOjEwMCU7b3ZlcmZsb3c6dmlzaWJsZX0uc3BsaXQtd3JhcCAuc3BsaXQtaXRlbSAuc3BsaXQtaXRlbS1pbWFnZS5zcGxpdC1pdGVtLWltYWdlLWZpbGwgaW1nLC5zcGxpdC13cmFwIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWltYWdlLnNwbGl0LWl0ZW0taW1hZ2UtZmlsbCBzdmcsLnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW0gLnNwbGl0LWl0ZW0taW1hZ2Uuc3BsaXQtaXRlbS1pbWFnZS1maWxsIHZpZGVve3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KXsuc3BsaXQtd3JhcCAuc3BsaXQtaXRlbSAuc3BsaXQtaXRlbS1jb250ZW50e21hcmdpbi1ib3R0b206MzJweH0uc3BsaXQtd3JhcC5pbnZlcnQtbW9iaWxlIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWNvbnRlbnR7b3JkZXI6MTttYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudH0uc3BsaXQtd3JhcC5pbnZlcnQtbW9iaWxlIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWltYWdle21hcmdpbi1ib3R0b206MzJweH19QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsuc3BsaXQtd3JhcHttYXJnaW4tdG9wOi00MHB4fS5zcGxpdC13cmFwOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOi00MHB4fS5zcGxpdC13cmFwOm5vdCg6bGFzdC1vZi10eXBlKXttYXJnaW4tYm90dG9tOjQwcHh9LnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW17cGFkZGluZy10b3A6NDBweDtwYWRkaW5nLWJvdHRvbTo0MHB4O2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uc3BsaXQtd3JhcCAuc3BsaXQtaXRlbSAuc3BsaXQtaXRlbS1jb250ZW50e2ZsZXgtc2hyaW5rOjA7d2lkdGg6Mzk2cHg7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1yaWdodDo2NHB4fS5zcGxpdC13cmFwIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWltYWdle21pbi13aWR0aDo0MzZweH0uc3BsaXQtd3JhcDpub3QoLmludmVydC1kZXNrdG9wKSAuc3BsaXQtaXRlbTpudGgtY2hpbGQoZXZlbiksLnNwbGl0LXdyYXAuaW52ZXJ0LWRlc2t0b3AgLnNwbGl0LWl0ZW06bnRoLWNoaWxkKG9kZCl7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zcGxpdC13cmFwOm5vdCguaW52ZXJ0LWRlc2t0b3ApIC5zcGxpdC1pdGVtOm50aC1jaGlsZChldmVuKSAuc3BsaXQtaXRlbS1jb250ZW50LC5zcGxpdC13cmFwLmludmVydC1kZXNrdG9wIC5zcGxpdC1pdGVtOm50aC1jaGlsZChvZGQpIC5zcGxpdC1pdGVtLWNvbnRlbnR7b3JkZXI6MTttYXJnaW4tbGVmdDo2NHB4O21hcmdpbi1yaWdodDowfS5zcGxpdC13cmFwOm5vdCguaW52ZXJ0LWRlc2t0b3ApIC5zcGxpdC1pdGVtOm50aC1jaGlsZChvZGQpIC5zcGxpdC1pdGVtLWltYWdlIGltZywuc3BsaXQtd3JhcDpub3QoLmludmVydC1kZXNrdG9wKSAuc3BsaXQtaXRlbTpudGgtY2hpbGQob2RkKSAuc3BsaXQtaXRlbS1pbWFnZSBzdmcsLnNwbGl0LXdyYXA6bm90KC5pbnZlcnQtZGVza3RvcCkgLnNwbGl0LWl0ZW06bnRoLWNoaWxkKG9kZCkgLnNwbGl0LWl0ZW0taW1hZ2UgdmlkZW8sLnNwbGl0LXdyYXAuaW52ZXJ0LWRlc2t0b3AgLnNwbGl0LWl0ZW06bnRoLWNoaWxkKGV2ZW4pIC5zcGxpdC1pdGVtLWltYWdlIGltZywuc3BsaXQtd3JhcC5pbnZlcnQtZGVza3RvcCAuc3BsaXQtaXRlbTpudGgtY2hpbGQoZXZlbikgLnNwbGl0LWl0ZW0taW1hZ2Ugc3ZnLC5zcGxpdC13cmFwLmludmVydC1kZXNrdG9wIC5zcGxpdC1pdGVtOm50aC1jaGlsZChldmVuKSAuc3BsaXQtaXRlbS1pbWFnZSB2aWRlb3ttYXJnaW4tbGVmdDphdXRvfS5zcGxpdC13cmFwLmFsaWduLXRvcCAuc3BsaXQtaXRlbXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fX1AbWVkaWEgKG1pbi13aWR0aDogODIxcHgpey5jb250YWluZXIgLnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW0gLnNwbGl0LWl0ZW0tY29udGVudHt3aWR0aDo0ODhweH0uY29udGFpbmVyIC5zcGxpdC13cmFwIC5zcGxpdC1pdGVtIC5zcGxpdC1pdGVtLWltYWdle21pbi13aWR0aDo1MjhweH19LnRpbGVzLXdyYXB7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXJpZ2h0Oi0xMnB4O21hcmdpbi1sZWZ0Oi0xMnB4O21hcmdpbi10b3A6LTEycHh9LnRpbGVzLXdyYXA6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206LTEycHh9LnRpbGVzLXdyYXA6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206MTJweH0udGlsZXMtd3JhcC5wdXNoLWxlZnQ6OmFmdGVye2NvbnRlbnQ6Jyc7ZmxleC1iYXNpczozMzBweDttYXgtd2lkdGg6MzMwcHg7Ym94LXNpemluZzpjb250ZW50LWJveDtwYWRkaW5nLWxlZnQ6MTJweDtwYWRkaW5nLXJpZ2h0OjEycHg7aGVpZ2h0OjB9LnRpbGVzLWl0ZW17ZmxleC1iYXNpczozMzBweDttYXgtd2lkdGg6MzMwcHg7Ym94LXNpemluZzpjb250ZW50LWJveDtwYWRkaW5nOjEycHh9LnRpbGVzLWl0ZW0gKntib3gtc2l6aW5nOmJvcmRlci1ib3h9LnRpbGVzLWl0ZW0taW5uZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6MTAwJTtwYWRkaW5nOjMycHggMjRweH0uc2l0ZS1oZWFkZXJ7cG9zaXRpb246YWJzb2x1dGUgIWltcG9ydGFudDt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MTAgIWltcG9ydGFudH0uc2l0ZS1oZWFkZXIrLnNpdGUtY29udGVudCAuc2VjdGlvbjpmaXJzdC1vZi10eXBle3BhZGRpbmctdG9wOjgwcHh9LnNpdGUtaGVhZGVyIC5icmFuZHttYXJnaW4tcmlnaHQ6MzJweH0uc2l0ZS1oZWFkZXItaW5uZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6ODBweH0uaGVhZGVyLW5hdntmbGV4LWdyb3c6MX0uaGVhZGVyLW5hdiAuaGVhZGVyLW5hdi1pbm5lcntkaXNwbGF5OmZsZXg7ZmxleC1ncm93OjF9LmhlYWRlci1uYXYgdWx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWdyb3c6MTt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLWJvdHRvbTowfS5oZWFkZXItbmF2IHVsOmZpcnN0LW9mLXR5cGV7ZmxleC13cmFwOndyYXB9LmhlYWRlci1uYXYgbGkrLmhlYWRlci1idXR0b257bWFyZ2luLWxlZnQ6MzJweH0uaGVhZGVyLW5hdiBhOm5vdCguYnV0dG9uKXtkaXNwbGF5OmJsb2NrO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0OjUwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7cGFkZGluZzowIDMycHh9LmludmVydC1jb2xvciAuaGVhZGVyLW5hdiBhOm5vdCguYnV0dG9uKXt0ZXh0LWRlY29yYXRpb246bm9uZX0uaGVhZGVyLW5hdiBhLmJ1dHRvbnttYXJnaW4tbGVmdDozMnB4fS5oZWFkZXItbmF2LWNlbnRlcjpmaXJzdC1vZi10eXBle2ZsZXgtZ3JvdzoxO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uaGVhZGVyLW5hdi1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmhlYWRlci1uYXYtcmlnaHQrLmhlYWRlci1uYXYtcmlnaHR7ZmxleC1ncm93OjB9LmhlYWRlci1uYXYtdG9nZ2xle2Rpc3BsYXk6bm9uZX1AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey5oZWFkZXItbmF2LXRvZ2dsZXtkaXNwbGF5OmJsb2NrfS5oZWFkZXItbmF2LXRvZ2dsZSsuaGVhZGVyLW5hdntmbGV4LWRpcmVjdGlvbjpjb2x1bW47cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7dG9wOjEwMCU7ei1pbmRleDo5OTk5O2JhY2tncm91bmQ6IzI5MkIzMjttYXgtaGVpZ2h0OjA7b3BhY2l0eTowO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjI1cyBlYXNlLWluLW91dCwgb3BhY2l0eSAuMTVzfS5oZWFkZXItbmF2LXRvZ2dsZSsuaGVhZGVyLW5hdi5pcy1hY3RpdmV7b3BhY2l0eToxfS5oZWFkZXItbmF2LXRvZ2dsZSsuaGVhZGVyLW5hdiAuaGVhZGVyLW5hdi1pbm5lcntmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZzoyNHB4fS5oZWFkZXItbmF2LXRvZ2dsZSsuaGVhZGVyLW5hdiB1bHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246Y2VudGVyfS5oZWFkZXItbmF2LXRvZ2dsZSsuaGVhZGVyLW5hdiB1bCBhOm5vdCguYnV0dG9uKXtkaXNwbGF5OmlubGluZS1mbGV4O3BhZGRpbmctdG9wOjEycHg7cGFkZGluZy1ib3R0b206MTJweH0uaGVhZGVyLW5hdi10b2dnbGUrLmhlYWRlci1uYXYgYS5idXR0b257bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjEycHg7bWFyZ2luLWJvdHRvbToxMnB4fX0uaXMtYm94ZWR7YmFja2dyb3VuZDojMWIxYzIxfS5pcy1ib3hlZCAuYm9keS13cmFwe21heC13aWR0aDoxNDQwcHg7bWFyZ2luOjAgYXV0bztib3gtc2hhZG93OjAgMjBweCA0OHB4IHJnYmEoMjIsMjMsMjcsMC44KX0uaXMtYm94ZWQgLmJvZHktd3JhcDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMTYxNzFCO3otaW5kZXg6LTEwfS5ib2R5LXdyYXB7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLWhlaWdodDoxMDB2aH0uc2l0ZS1jb250ZW50e2ZsZXg6MSAwIGF1dG99LnNpdGUtZm9vdGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5zaXRlLWZvb3Rlcjo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMTYxNzFCO3otaW5kZXg6LTN9LnNpdGUtZm9vdGVyLWlubmVye3BhZGRpbmc6NDhweCAwfS5mb290ZXItdG9we3BhZGRpbmctYm90dG9tOjEycHh9LmZvb3Rlci1ib3R0b217cGFkZGluZy10b3A6MTJweH0uZm9vdGVyLWJsb2Nrc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0Oi0yNHB4O21hcmdpbi1sZWZ0Oi0yNHB4O21hcmdpbi10b3A6LTEycHh9LmZvb3Rlci1ibG9ja3M6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MjhweH0uZm9vdGVyLWJsb2Nrczpub3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbToxMnB4fS5mb290ZXItYmxvY2t7ZmxleC1ncm93OjE7ZmxleC1iYXNpczoxNjBweDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O3BhZGRpbmc6MTJweCAyNHB4fS5mb290ZXItYmxvY2sgKntib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZvb3Rlci1ibG9jayB1bCBsaTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206NHB4fS5mb290ZXItYmxvY2sgYXtjb2xvcjojNkE2RjgyO3RleHQtZGVjb3JhdGlvbjpub25lfS5mb290ZXItYmxvY2sgYTpob3ZlciwuZm9vdGVyLWJsb2NrIGE6YWN0aXZle2NvbG9yOiM5NTlDQjF9LmludmVydC1jb2xvciAuZm9vdGVyLWJsb2NrIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmZvb3Rlci1ibG9jay10aXRsZXtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojRjlGQUZGO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTttYXJnaW4tYm90dG9tOjhweH0uaW52ZXJ0LWNvbG9yIC5mb290ZXItYmxvY2stdGl0bGV7Y29sb3I6IzE2MTcxQn0uZm9vdGVyLXNvY2lhbCBhLC5mb290ZXItbmF2IGF7ZGlzcGxheTpmbGV4fS5mb290ZXItc29jaWFsIHVsLC5mb290ZXItbmF2IHVse2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLWJvdHRvbTowfS5mb290ZXItc29jaWFsIHVse21hcmdpbi1yaWdodDotMTZweDttYXJnaW4tbGVmdDotMTZweH0uZm9vdGVyLXNvY2lhbCBsaXtwYWRkaW5nOjAgOHB4fS5mb290ZXItc29jaWFsIGF7cGFkZGluZzo4cHh9LmZvb3Rlci1zb2NpYWwgYSBzdmd7ZmlsbDojMzc2REY5O3RyYW5zaXRpb246ZmlsbCAuMTVzIGVhc2V9LmZvb3Rlci1zb2NpYWwgYTpob3ZlciBzdmd7ZmlsbDojNjk5MUZBfS5mb290ZXItbmF2e21hcmdpbi1yaWdodDotMTJweDttYXJnaW4tbGVmdDotMTJweH0uZm9vdGVyLW5hdiBhe2NvbG9yOiM2QTZGODI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cGFkZGluZzowIDEycHh9LmZvb3Rlci1uYXYgYTpob3ZlciwuZm9vdGVyLW5hdiBhOmFjdGl2ZXtjb2xvcjojOTU5Q0IxfS5pbnZlcnQtY29sb3IgLmZvb3Rlci1uYXYgYXt0ZXh0LWRlY29yYXRpb246bm9uZX1AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey5mb290ZXItdG9wPio6bm90KDpsYXN0LWNoaWxkKSwuZm9vdGVyLWJvdHRvbT4qOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luLWJvdHRvbToyNHB4fX1AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpey5zaXRlLWZvb3Rlci1pbm5lcntwYWRkaW5nOjY0cHggMH0uZm9vdGVyLXRvcC5zcGFjZS1iZXR3ZWVuLC5mb290ZXItYm90dG9tLnNwYWNlLWJldHdlZW57ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcn0uZm9vdGVyLXRvcC5pbnZlcnQtb3JkZXItZGVza3RvcD4qOmZpcnN0LWNoaWxkLC5mb290ZXItYm90dG9tLmludmVydC1vcmRlci1kZXNrdG9wPio6Zmlyc3QtY2hpbGR7b3JkZXI6MX19LnNlY3Rpb24taW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy10b3A6NDhweDtwYWRkaW5nLWJvdHRvbTo0OHB4fS5zZWN0aW9uLWhlYWRlcntwYWRkaW5nLWJvdHRvbTo0OHB4fUBtZWRpYSAobWluLXdpZHRoOiA2NDFweCl7LnNlY3Rpb24taW5uZXJ7cGFkZGluZy10b3A6ODBweDtwYWRkaW5nLWJvdHRvbTo4MHB4fS5zZWN0aW9uLWhlYWRlcntwYWRkaW5nLWJvdHRvbTo4MHB4fX0uaGVyby1pbm5lcj4uaGVyby1jb250ZW50Ky5oZXJvLWZpZ3VyZSwuaGVyby1pbm5lcj4uaGVyby1maWd1cmUrLmhlcm8tY29udGVudHttYXJnaW4tdG9wOjQ4cHh9Lmhlcm8taW5uZXI+Lmhlcm8tZmlndXJlPmF7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7dmVydGljYWwtYWxpZ246dG9wfUBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCl7Lmhlcm8gLnNwbGl0LXdyYXAgLnNwbGl0LWl0ZW0gLnNwbGl0LWl0ZW0tY29udGVudHttYXJnaW4tYm90dG9tOjQ4cHh9Lmhlcm8gLnNwbGl0LXdyYXAuaW52ZXJ0LW1vYmlsZSAuc3BsaXQtaXRlbSAuc3BsaXQtaXRlbS1pbWFnZXttYXJnaW4tYm90dG9tOjQ4cHh9fUBtZWRpYSAobWluLXdpZHRoOiA2NDFweCl7Lmhlcm8taW5uZXI+Lmhlcm8tY29udGVudCsuaGVyby1maWd1cmUsLmhlcm8taW5uZXI+Lmhlcm8tZmlndXJlKy5oZXJvLWNvbnRlbnR7bWFyZ2luLXRvcDo2NHB4fX1AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpey5mZWF0dXJlcy1zcGxpdCAuc2VjdGlvbi1oZWFkZXJ7cGFkZGluZy1ib3R0b206OTJweH19LmZlYXR1cmVzLXRpbGVzIC50aWxlcy13cmFwe21hcmdpbi1yaWdodDotMTZweDttYXJnaW4tbGVmdDotMTZweDttYXJnaW4tdG9wOi0xNnB4fS5mZWF0dXJlcy10aWxlcyAudGlsZXMtd3JhcDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTotMTZweH0uZmVhdHVyZXMtdGlsZXMgLnRpbGVzLXdyYXA6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206MTZweH0uZmVhdHVyZXMtdGlsZXMgLnRpbGVzLXdyYXAucHVzaC1sZWZ0OjphZnRlcntmbGV4LWJhc2lzOjM2MHB4O21heC13aWR0aDozNjBweDtwYWRkaW5nLWxlZnQ6MTZweDtwYWRkaW5nLXJpZ2h0OjE2cHh9LmZlYXR1cmVzLXRpbGVzIC50aWxlcy1pdGVte2ZsZXgtYmFzaXM6MzYwcHg7bWF4LXdpZHRoOjM2MHB4O3BhZGRpbmc6MTZweH0uZmVhdHVyZXMtdGlsZXMgLnRpbGVzLWl0ZW0taW5uZXJ7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpey5mZWF0dXJlcy10aWxlcyAudGlsZXMtd3JhcHttYXJnaW4tcmlnaHQ6LTMycHg7bWFyZ2luLWxlZnQ6LTMycHg7bWFyZ2luLXRvcDotMzJweH0uZmVhdHVyZXMtdGlsZXMgLnRpbGVzLXdyYXA6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206LTMycHh9LmZlYXR1cmVzLXRpbGVzIC50aWxlcy13cmFwOm5vdCg6bGFzdC1vZi10eXBlKXttYXJnaW4tYm90dG9tOjMycHh9LmZlYXR1cmVzLXRpbGVzIC50aWxlcy13cmFwLnB1c2gtbGVmdDo6YWZ0ZXJ7cGFkZGluZy1sZWZ0OjMycHg7cGFkZGluZy1yaWdodDozMnB4fS5mZWF0dXJlcy10aWxlcyAudGlsZXMtaXRlbXtwYWRkaW5nOjMycHh9fS5wcmljaW5nIC50aWxlcy13cmFwLnB1c2gtbGVmdDo6YWZ0ZXJ7ZmxleC1iYXNpczozNDRweDttYXgtd2lkdGg6MzQ0cHh9LnByaWNpbmcgLnRpbGVzLWl0ZW17ZmxleC1iYXNpczozNDRweDttYXgtd2lkdGg6MzQ0cHh9LnByaWNpbmcgLnRpbGVzLWl0ZW0taW5uZXJ7cGFkZGluZy10b3A6MjRweDtwYWRkaW5nLWJvdHRvbToyNHB4O3BhZGRpbmctbGVmdDoyNHB4O3BhZGRpbmctcmlnaHQ6MjRweH0ucHJpY2luZy1pdGVtLWNvbnRlbnR7ZmxleC1ncm93OjE7d2lkdGg6MTAwJX11bC5wcmljaW5nLWl0ZW0tZmVhdHVyZXMtbGlzdCBsaXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MTJweH0ucHJpY2luZy1zd2l0Y2hlcnttYXJnaW4tYm90dG9tOjQ4cHh9QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsucHJpY2luZy1zd2l0Y2hlcnttYXJnaW4tYm90dG9tOjY0cHh9fS50ZXN0aW1vbmlhbCAudGlsZXMtd3JhcC5wdXNoLWxlZnQ6OmFmdGVye2ZsZXgtYmFzaXM6MzQ0cHg7bWF4LXdpZHRoOjM0NHB4fS50ZXN0aW1vbmlhbCAudGlsZXMtaXRlbXtmbGV4LWJhc2lzOjM0NHB4O21heC13aWR0aDozNDRweH0udGVzdGltb25pYWwgLnRpbGVzLWl0ZW0taW5uZXJ7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbToyMHB4O3BhZGRpbmctbGVmdDoyNHB4O3BhZGRpbmctcmlnaHQ6MjRweH0udGVzdGltb25pYWwtaXRlbS1jb250ZW50e2ZsZXgtZ3JvdzoxfS50ZXN0aW1vbmlhbC1pdGVtLXNvdXJjZXtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcn0udGVhbSAudGlsZXMtd3JhcHttYXJnaW4tcmlnaHQ6LTE2cHg7bWFyZ2luLWxlZnQ6LTE2cHg7bWFyZ2luLXRvcDotMTZweH0udGVhbSAudGlsZXMtd3JhcDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTotMTZweH0udGVhbSAudGlsZXMtd3JhcDpub3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbToxNnB4fS50ZWFtIC50aWxlcy13cmFwLnB1c2gtbGVmdDo6YWZ0ZXJ7ZmxleC1iYXNpczoyOTZweDttYXgtd2lkdGg6Mjk2cHg7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDoxNnB4fS50ZWFtIC50aWxlcy1pdGVte2ZsZXgtYmFzaXM6Mjk2cHg7bWF4LXdpZHRoOjI5NnB4O3BhZGRpbmc6MTZweH0udGVhbSAudGlsZXMtaXRlbS1pbm5lcntwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfUBtZWRpYSAobWluLXdpZHRoOiA2NDFweCl7LnRlYW0gLnNlY3Rpb24taGVhZGVye3BhZGRpbmctYm90dG9tOjgwcHh9LnRlYW0gLnRpbGVzLXdyYXB7bWFyZ2luLXJpZ2h0Oi0zMnB4O21hcmdpbi1sZWZ0Oi0zMnB4O21hcmdpbi10b3A6LTMycHh9LnRlYW0gLnRpbGVzLXdyYXA6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206LTMycHh9LnRlYW0gLnRpbGVzLXdyYXA6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206MzJweH0udGVhbSAudGlsZXMtd3JhcC5wdXNoLWxlZnQ6OmFmdGVye3BhZGRpbmctbGVmdDozMnB4O3BhZGRpbmctcmlnaHQ6MzJweH0udGVhbSAudGlsZXMtaXRlbXtwYWRkaW5nOjMycHh9fS5jdGEgLnNlY3Rpb24taW5uZXJ7cGFkZGluZy10b3A6NDhweDtwYWRkaW5nLWJvdHRvbTo0OHB4fS5jdGEtc2xvZ2Fue21hcmdpbi1ib3R0b206NDBweH1AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpey5jdGEgLnNlY3Rpb24taW5uZXJ7cGFkZGluZy10b3A6NjRweDtwYWRkaW5nLWJvdHRvbTo2NHB4fS5jdGEtc3BsaXR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcn0uY3RhLXNwbGl0IC5jdGEtc2xvZ2Fue21hcmdpbi1ib3R0b206MDttYXJnaW4tcmlnaHQ6NDhweH19LmNsaWVudHMgLnNlY3Rpb24taW5uZXJ7cGFkZGluZy10b3A6MjZweDtwYWRkaW5nLWJvdHRvbToyNnB4fS5jbGllbnRzLWlubmVyIHVse2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjB9LmNsaWVudHMtaW5uZXIgbGl7cGFkZGluZzoxMnB4IDI4cHh9QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsuY2xpZW50cyAuY2xpZW50cy1pbm5lciB1bHtmbGV4LWRpcmVjdGlvbjpyb3d9fS5zaWduaW4gLnNlY3Rpb24taGVhZGVye3BhZGRpbmctYm90dG9tOjMycHh9LnNpZ25pbiAudGlsZXMtaXRlbS1pbm5lcntwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfUBtZWRpYSAobWluLXdpZHRoOiA2NDFweCl7LnNpZ25pbiAuc2VjdGlvbi1oZWFkZXJ7cGFkZGluZy1ib3R0b206NDhweH19LnNpZ25pbi1mb290ZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufVtjbGFzcyo9aWxsdXN0cmF0aW9uLV17cG9zaXRpb246cmVsYXRpdmV9W2NsYXNzKj1pbGx1c3RyYXRpb24tXTo6YWZ0ZXJ7cG9pbnRlci1ldmVudHM6bm9uZX1bY2xhc3MqPWlsbHVzdHJhdGlvbi1lbGVtZW50LV06OmFmdGVye3otaW5kZXg6LTF9W2NsYXNzKj1pbGx1c3RyYXRpb24tc2VjdGlvbi1dOjphZnRlcnt6LWluZGV4Oi0yfS5pbGx1c3RyYXRpb24tc2VjdGlvbi0wMTo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO2hlaWdodDo2MTJweDtiYWNrZ3JvdW5kLWltYWdlOnVybCguLi9pbWFnZXMvaWxsdXN0cmF0aW9uLXNlY3Rpb24tMDEuc3ZnKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmF1dG87bGVmdDo1MCU7dG9wOjA7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgdG9wO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LmlsbHVzdHJhdGlvbi1zZWN0aW9uLTAyOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OjYxMnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9pbGx1c3RyYXRpb24tc2VjdGlvbi0wMi5zdmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6YXV0bztsZWZ0OjUwJTt0b3A6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciB0b3A7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0uc2l0ZS1mb290ZXJ7Y29sb3I6IzZBNkY4Mn0uZmVhdHVyZXMtdGlsZXMtaXRlbS1pbWFnZXtkaXNwbGF5OmlubGluZS1mbGV4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sICMzNzZERjkgMCUsICNmZjc5YWYgNTAlLCAjRkY4RDc0IDEwMCUpfS5wcmljaW5nIC50aWxlcy1pdGVtLWlubmVye2JhY2tncm91bmQ6IzI5MkIzMn0ucHJpY2luZy1pdGVtLWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0ucHJpY2luZy1pdGVtLWhlYWRlcjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojMjkyQjMyfS5wcmljaW5nLWl0ZW0taGVhZGVyOjphZnRlcntiYWNrZ3JvdW5kOnJnYmEoMTA2LDExMSwxMzAsMC4zMik7bWF4LXdpZHRoOjg4cHh9LnByaWNpbmctaXRlbS1wcmljZS1jdXJyZW5jeXtjb2xvcjojOTU5Q0IxfXVsLnByaWNpbmctaXRlbS1mZWF0dXJlcy1saXN0e3Bvc2l0aW9uOnJlbGF0aXZlfXVsLnByaWNpbmctaXRlbS1mZWF0dXJlcy1saXN0OjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiMyOTJCMzJ9dWwucHJpY2luZy1pdGVtLWZlYXR1cmVzLWxpc3Q6OmFmdGVye2JhY2tncm91bmQ6cmdiYSgxMDYsMTExLDEzMCwwLjMyKX11bC5wcmljaW5nLWl0ZW0tZmVhdHVyZXMtbGlzdCBsaXttYXJnaW4tYm90dG9tOjA7cGFkZGluZzoxNHB4IDA7cG9zaXRpb246cmVsYXRpdmV9dWwucHJpY2luZy1pdGVtLWZlYXR1cmVzLWxpc3QgbGk6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiMyOTJCMzJ9dWwucHJpY2luZy1pdGVtLWZlYXR1cmVzLWxpc3QgbGk6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMTA2LDExMSwxMzAsMC4zMil9dWwucHJpY2luZy1pdGVtLWZlYXR1cmVzLWxpc3QgbGk6OmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9jazt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O21hcmdpbi1yaWdodDoxMnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVMtQVNDSUksJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjI0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk01JTIwMTFoMTR2Mkg1eiUyMiUyMGZpbGwlM0QlMjIlMjM2QTZGODIlMjIlMjBmaWxsLXJ1bGUlM0QlMjJub256ZXJvJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtvcmRlcjotMX11bC5wcmljaW5nLWl0ZW0tZmVhdHVyZXMtbGlzdCBsaS5pcy1jaGVja2VkOjphZnRlcntiYWNrZ3JvdW5kLWltYWdlOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVTLUFTQ0lJLCUzQ3N2ZyUyMHdpZHRoJTNEJTIyMjQlMjIlMjBoZWlnaHQlM0QlMjIyNCUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDZyUyMGZpbGwtcnVsZSUzRCUyMm5vbnplcm8lMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUzRSUzQ2NpcmNsZSUyMGZpbGwlM0QlMjIlMjMxRUMxOTglMjIlMjBjeCUzRCUyMjEyJTIyJTIwY3klM0QlMjIxMiUyMiUyMHIlM0QlMjIxMiUyMiUyRiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIyJTIzMjkyQjMyJTIyJTIwZCUzRCUyMk0xMC41JTIwMTIuMjY3bC0yLjUtMS42LTElMjAxLjA2NkwxMC41JTIwMTYlMjAxNyUyMDkuMDY3JTIwMTYlMjA4eiUyMiUyRiUzRSUzQyUyRmclM0UlM0MlMkZzdmclM0VcIil9LnRlc3RpbW9uaWFsIC50aWxlcy1pdGVtLWlubmVye2JhY2tncm91bmQ6IzI5MkIzMn0udGVzdGltb25pYWwtaXRlbS1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlfS50ZXN0aW1vbmlhbC1pdGVtLWNvbnRlbnQ6OmJlZm9yZXtjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjRweDtoZWlnaHQ6MThweDttYXJnaW4tdG9wOjEycHg7bWFyZ2luLWJvdHRvbToxNnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVMtQVNDSUksJTNDc3ZnJTIwd2lkdGglM0QlMjIyNCUyMiUyMGhlaWdodCUzRCUyMjE4JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk0wJTIwMTMuNDgxYzAtMi4zNC42MTEtNC43NjElMjAxLjgzMy03LjI2M0MzLjA1NiUyMDMuNzE2JTIwNC43MzMlMjAxLjY0MyUyMDYuODY1JTIwMEwxMSUyMDIuNjg5QzkuNzI2JTIwNC4zODIlMjA4Ljc3NyUyMDYuMDkzJTIwOC4xNTIlMjA3LjgyNGMtLjYyNCUyMDEuNzMtLjkzNiUyMDMuNTc4LS45MzYlMjA1LjU0NVYxOEgwdi00LjUxOXptMTMlMjAwYzAtMi4zNC42MTEtNC43NjElMjAxLjgzMy03LjI2MyUyMDEuMjIzLTIuNTAyJTIwMi45LTQuNTc1JTIwNS4wMzItNi4yMThMMjQlMjAyLjY4OWMtMS4yNzQlMjAxLjY5My0yLjIyMyUyMDMuNDA0LTIuODQ4JTIwNS4xMzUtLjYyNCUyMDEuNzMtLjkzNiUyMDMuNTc4LS45MzYlMjA1LjU0NVYxOEgxM3YtNC41MTl6JTIyJTIwZmlsbCUzRCUyMiUyM0ZGNUZBMCUyMiUyMGZpbGwtcnVsZSUzRCUyMm5vbnplcm8lMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS50ZXN0aW1vbmlhbC1pdGVtLWZvb3Rlcntmb250LWZhbWlseTpcIkZpcmEgU2Fuc1wiLCBzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nLXRvcDoyMHB4fS50ZXN0aW1vbmlhbC1pdGVtLWZvb3Rlci5oYXMtdG9wLWRpdmlkZXI6OmJlZm9yZXtiYWNrZ3JvdW5kOnJnYmEoMTA2LDExMSwxMzAsMC4zMil9LnRlc3RpbW9uaWFsLWl0ZW0tbGlua3tjb2xvcjojMzc2REY5fS50ZXN0aW1vbmlhbC1pdGVtLWxpbmsgYXtjb2xvcjojMzc2REY5O3RleHQtZGVjb3JhdGlvbjpub25lfS50ZXN0aW1vbmlhbC1pdGVtLWxpbmsgYTpob3Zlcntjb2xvcjojNjk5MUZBfS5jdGEgLmZvcm0taW5wdXR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MnB4fS5jdGEtaW5uZXJ7cGFkZGluZy1sZWZ0OjE2cHg7cGFkZGluZy1yaWdodDoxNnB4O2JhY2tncm91bmQtY29sb3I6IzM3NkRGOTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMDBkZWcsICMzNzZERjkgMCwgI0ZGNUZBMCA3NSUsICNGRkM1NUEgMTAwJSl9QG1lZGlhIChtaW4td2lkdGg6IDY0MXB4KXsuY3RhIC5mb3JtLWlucHV0e21pbi13aWR0aDoyODBweH0uY3RhLWlubmVye3BhZGRpbmctbGVmdDo0OHB4O3BhZGRpbmctcmlnaHQ6NDhweH19LnNjcmVlbi1yZWFkZXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwgMCwgMCwgMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlcjowfS5saXN0LXJlc2V0e2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjB9Lmxpc3QtcmVzZXQgbGl7bWFyZ2luOjB9LnRhLWx7dGV4dC1hbGlnbjpsZWZ0fS50YS1je3RleHQtYWxpZ246Y2VudGVyfS50YS1ye3RleHQtYWxpZ246cmlnaHR9LmZ3LTQwMHtmb250LXdlaWdodDo0MDB9LmZ3LTUwMHtmb250LXdlaWdodDo1MDB9LmZ3LTYwMHtmb250LXdlaWdodDo2MDB9LmZ3LTcwMHtmb250LXdlaWdodDo3MDB9LnRleHQtY29sb3ItaGlnaHtjb2xvcjojRjlGQUZGfS50ZXh0LWNvbG9yLW1pZHtjb2xvcjojOTU5Q0IxfS50ZXh0LWNvbG9yLWxvd3tjb2xvcjojNkE2RjgyfS50ZXh0LWNvbG9yLXByaW1hcnl7Y29sb3I6IzM3NkRGOX0udGV4dC1jb2xvci1zZWNvbmRhcnl7Y29sb3I6I0ZGNUZBMH0udGV4dC1jb2xvci1lcnJvcntjb2xvcjojRkY1RkEwfS50ZXh0LWNvbG9yLXdhcm5pbmd7Y29sb3I6I0ZGQzU1QX0udGV4dC1jb2xvci1zdWNjZXNze2NvbG9yOiMxRUMxOTh9LmludmVydC1jb2xvciAudGV4dC1jb2xvci1oaWdoe2NvbG9yOiMxNjE3MUJ9LmludmVydC1jb2xvciAudGV4dC1jb2xvci1taWR7Y29sb3I6IzFDMUQyMn0uaW52ZXJ0LWNvbG9yIC50ZXh0LWNvbG9yLWxvd3tjb2xvcjojNkE2RjgyfS50dC11e3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uaW1hZ2UtZnVsbHt3aWR0aDoxMDAlfS5pbWFnZS1sYXJnZXJ7cG9zaXRpb246cmVsYXRpdmU7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7d2lkdGg6Y2FsYygxMDAlICsgOTZweCk7bWF4LXdpZHRoOjEwMHZ3fS5oYXMtYmctY29sb3J7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3otaW5kZXg6MH0uaGFzLXNoYWRvd3tib3gtc2hhZG93OjAgMjRweCA2NHB4IHJnYmEoMjIsMjMsMjcsMC42NCl9aW1nLmhhcy1zaGFkb3d7Ym9yZGVyLXJhZGl1czoycHh9Lmhhcy10b3AtZGl2aWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFzLXRvcC1kaXZpZGVyOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojMjkyQjMyfS5oYXMtYm90dG9tLWRpdmlkZXJ7cG9zaXRpb246cmVsYXRpdmV9Lmhhcy1ib3R0b20tZGl2aWRlcjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojMjkyQjMyfS5pbnZlcnQtY29sb3IgLmhhcy10b3AtZGl2aWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaW52ZXJ0LWNvbG9yIC5oYXMtdG9wLWRpdmlkZXI6OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtiYWNrZ3JvdW5kOiNlNWU5ZmZ9LmludmVydC1jb2xvciAuaGFzLWJvdHRvbS1kaXZpZGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5pbnZlcnQtY29sb3IgLmhhcy1ib3R0b20tZGl2aWRlcjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO2hlaWdodDoxcHg7YmFja2dyb3VuZDojZTVlOWZmfS5jZW50ZXItY29udGVudHt0ZXh0LWFsaWduOmNlbnRlcn0uY2VudGVyLWNvbnRlbnQgaW1nLC5jZW50ZXItY29udGVudCBzdmcsLmNlbnRlci1jb250ZW50IHZpZGVve21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LmNlbnRlci1jb250ZW50IC5idXR0b24tZ3JvdXB7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ucmVzcG9uc2l2ZS12aWRlb3twb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7aGVpZ2h0OjB9LnJlc3BvbnNpdmUtdmlkZW8uaXMtNC0ze3BhZGRpbmctYm90dG9tOjc1JX0ucmVzcG9uc2l2ZS12aWRlbyBpZnJhbWV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Lm0tMHttYXJnaW46MH0ubXQtMHttYXJnaW4tdG9wOjB9Lm1yLTB7bWFyZ2luLXJpZ2h0OjB9Lm1iLTB7bWFyZ2luLWJvdHRvbTowfS5tbC0we21hcmdpbi1sZWZ0OjB9Lm0tNHttYXJnaW46NHB4fS5tdC00e21hcmdpbi10b3A6NHB4fS5tci00e21hcmdpbi1yaWdodDo0cHh9Lm1iLTR7bWFyZ2luLWJvdHRvbTo0cHh9Lm1sLTR7bWFyZ2luLWxlZnQ6NHB4fS5tLTh7bWFyZ2luOjhweH0ubXQtOHttYXJnaW4tdG9wOjhweH0ubXItOHttYXJnaW4tcmlnaHQ6OHB4fS5tYi04e21hcmdpbi1ib3R0b206OHB4fS5tbC04e21hcmdpbi1sZWZ0OjhweH0ubS0xMnttYXJnaW46MTJweH0ubXQtMTJ7bWFyZ2luLXRvcDoxMnB4fS5tci0xMnttYXJnaW4tcmlnaHQ6MTJweH0ubWItMTJ7bWFyZ2luLWJvdHRvbToxMnB4fS5tbC0xMnttYXJnaW4tbGVmdDoxMnB4fS5tLTE2e21hcmdpbjoxNnB4fS5tdC0xNnttYXJnaW4tdG9wOjE2cHh9Lm1yLTE2e21hcmdpbi1yaWdodDoxNnB4fS5tYi0xNnttYXJnaW4tYm90dG9tOjE2cHh9Lm1sLTE2e21hcmdpbi1sZWZ0OjE2cHh9Lm0tMjR7bWFyZ2luOjI0cHh9Lm10LTI0e21hcmdpbi10b3A6MjRweH0ubXItMjR7bWFyZ2luLXJpZ2h0OjI0cHh9Lm1iLTI0e21hcmdpbi1ib3R0b206MjRweH0ubWwtMjR7bWFyZ2luLWxlZnQ6MjRweH0ubS0zMnttYXJnaW46MzJweH0ubXQtMzJ7bWFyZ2luLXRvcDozMnB4fS5tci0zMnttYXJnaW4tcmlnaHQ6MzJweH0ubWItMzJ7bWFyZ2luLWJvdHRvbTozMnB4fS5tbC0zMnttYXJnaW4tbGVmdDozMnB4fS5wLTB7cGFkZGluZzowfS5wdC0we3BhZGRpbmctdG9wOjB9LnByLTB7cGFkZGluZy1yaWdodDowfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBsLTB7cGFkZGluZy1sZWZ0OjB9LnAtNHtwYWRkaW5nOjRweH0ucHQtNHtwYWRkaW5nLXRvcDo0cHh9LnByLTR7cGFkZGluZy1yaWdodDo0cHh9LnBiLTR7cGFkZGluZy1ib3R0b206NHB4fS5wbC00e3BhZGRpbmctbGVmdDo0cHh9LnAtOHtwYWRkaW5nOjhweH0ucHQtOHtwYWRkaW5nLXRvcDo4cHh9LnByLTh7cGFkZGluZy1yaWdodDo4cHh9LnBiLTh7cGFkZGluZy1ib3R0b206OHB4fS5wbC04e3BhZGRpbmctbGVmdDo4cHh9LnAtMTJ7cGFkZGluZzoxMnB4fS5wdC0xMntwYWRkaW5nLXRvcDoxMnB4fS5wci0xMntwYWRkaW5nLXJpZ2h0OjEycHh9LnBiLTEye3BhZGRpbmctYm90dG9tOjEycHh9LnBsLTEye3BhZGRpbmctbGVmdDoxMnB4fS5wLTE2e3BhZGRpbmc6MTZweH0ucHQtMTZ7cGFkZGluZy10b3A6MTZweH0ucHItMTZ7cGFkZGluZy1yaWdodDoxNnB4fS5wYi0xNntwYWRkaW5nLWJvdHRvbToxNnB4fS5wbC0xNntwYWRkaW5nLWxlZnQ6MTZweH0ucC0yNHtwYWRkaW5nOjI0cHh9LnB0LTI0e3BhZGRpbmctdG9wOjI0cHh9LnByLTI0e3BhZGRpbmctcmlnaHQ6MjRweH0ucGItMjR7cGFkZGluZy1ib3R0b206MjRweH0ucGwtMjR7cGFkZGluZy1sZWZ0OjI0cHh9LnAtMzJ7cGFkZGluZzozMnB4fS5wdC0zMntwYWRkaW5nLXRvcDozMnB4fS5wci0zMntwYWRkaW5nLXJpZ2h0OjMycHh9LnBiLTMye3BhZGRpbmctYm90dG9tOjMycHh9LnBsLTMye3BhZGRpbmctbGVmdDozMnB4fS5zcGFjZXItNHtwYWRkaW5nLXRvcDo0cHh9LnNwYWNlci04e3BhZGRpbmctdG9wOjhweH0uc3BhY2VyLTEye3BhZGRpbmctdG9wOjEycHh9LnNwYWNlci0xNntwYWRkaW5nLXRvcDoxNnB4fS5zcGFjZXItMjR7cGFkZGluZy10b3A6MjRweH0uc3BhY2VyLTMye3BhZGRpbmctdG9wOjMycHh9LnNwYWNlci00OHtwYWRkaW5nLXRvcDo0OHB4fS5zcGFjZXItNjR7cGFkZGluZy10b3A6NjRweH1AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpey50YS1sLW1vYmlsZXt0ZXh0LWFsaWduOmxlZnR9LnRhLWMtbW9iaWxle3RleHQtYWxpZ246Y2VudGVyfS50YS1yLW1vYmlsZXt0ZXh0LWFsaWduOnJpZ2h0fS5jZW50ZXItY29udGVudC1tb2JpbGV7dGV4dC1hbGlnbjpjZW50ZXJ9LmNlbnRlci1jb250ZW50LW1vYmlsZSBpbWcsLmNlbnRlci1jb250ZW50LW1vYmlsZSBzdmcsLmNlbnRlci1jb250ZW50LW1vYmlsZSB2aWRlb3ttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5jZW50ZXItY29udGVudC1tb2JpbGUgLmJ1dHRvbi1ncm91cHtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zcGFjZXItNC1tb2JpbGV7cGFkZGluZy10b3A6NHB4fS5zcGFjZXItOC1tb2JpbGV7cGFkZGluZy10b3A6OHB4fS5zcGFjZXItMTItbW9iaWxle3BhZGRpbmctdG9wOjEycHh9LnNwYWNlci0xNi1tb2JpbGV7cGFkZGluZy10b3A6MTZweH0uc3BhY2VyLTI0LW1vYmlsZXtwYWRkaW5nLXRvcDoyNHB4fS5zcGFjZXItMzItbW9iaWxle3BhZGRpbmctdG9wOjMycHh9LnNwYWNlci00OC1tb2JpbGV7cGFkZGluZy10b3A6NDhweH0uc3BhY2VyLTY0LW1vYmlsZXtwYWRkaW5nLXRvcDo2NHB4fX1AbWVkaWEgKG1pbi13aWR0aDogNjQxcHgpey50YS1sLWRlc2t0b3B7dGV4dC1hbGlnbjpsZWZ0fS50YS1jLWRlc2t0b3B7dGV4dC1hbGlnbjpjZW50ZXJ9LnRhLXItZGVza3RvcHt0ZXh0LWFsaWduOnJpZ2h0fS5jZW50ZXItY29udGVudC1kZXNrdG9we3RleHQtYWxpZ246Y2VudGVyfS5jZW50ZXItY29udGVudC1kZXNrdG9wIGltZywuY2VudGVyLWNvbnRlbnQtZGVza3RvcCBzdmcsLmNlbnRlci1jb250ZW50LWRlc2t0b3AgdmlkZW97bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30uY2VudGVyLWNvbnRlbnQtZGVza3RvcCAuYnV0dG9uLWdyb3Vwe2p1c3RpZnktY29udGVudDpjZW50ZXJ9fVxuIl19 */ \ No newline at end of file diff --git a/public/landing/images/clients-01.svg b/public/landing/images/clients-01.svg new file mode 100755 index 0000000..40510aa --- /dev/null +++ b/public/landing/images/clients-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/clients-02.svg b/public/landing/images/clients-02.svg new file mode 100755 index 0000000..0fe5ebf --- /dev/null +++ b/public/landing/images/clients-02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/clients-03.svg b/public/landing/images/clients-03.svg new file mode 100755 index 0000000..b18db75 --- /dev/null +++ b/public/landing/images/clients-03.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/clients-04.svg b/public/landing/images/clients-04.svg new file mode 100755 index 0000000..04c30fc --- /dev/null +++ b/public/landing/images/clients-04.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/clients-05.svg b/public/landing/images/clients-05.svg new file mode 100755 index 0000000..a437997 --- /dev/null +++ b/public/landing/images/clients-05.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-01.svg b/public/landing/images/feature-tile-icon-01.svg new file mode 100755 index 0000000..a1c4e2d --- /dev/null +++ b/public/landing/images/feature-tile-icon-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-02.svg b/public/landing/images/feature-tile-icon-02.svg new file mode 100755 index 0000000..d06548d --- /dev/null +++ b/public/landing/images/feature-tile-icon-02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-03.svg b/public/landing/images/feature-tile-icon-03.svg new file mode 100755 index 0000000..b5da414 --- /dev/null +++ b/public/landing/images/feature-tile-icon-03.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-04.svg b/public/landing/images/feature-tile-icon-04.svg new file mode 100755 index 0000000..13236c4 --- /dev/null +++ b/public/landing/images/feature-tile-icon-04.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-05.svg b/public/landing/images/feature-tile-icon-05.svg new file mode 100755 index 0000000..3e092f4 --- /dev/null +++ b/public/landing/images/feature-tile-icon-05.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/feature-tile-icon-06.svg b/public/landing/images/feature-tile-icon-06.svg new file mode 100755 index 0000000..99d4d42 --- /dev/null +++ b/public/landing/images/feature-tile-icon-06.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/features-split-image-01.svg b/public/landing/images/features-split-image-01.svg new file mode 100755 index 0000000..0c3fbb3 --- /dev/null +++ b/public/landing/images/features-split-image-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/features-split-image-02.svg b/public/landing/images/features-split-image-02.svg new file mode 100755 index 0000000..36cdf59 --- /dev/null +++ b/public/landing/images/features-split-image-02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/illustration-section-01.svg b/public/landing/images/illustration-section-01.svg new file mode 100755 index 0000000..c38025b --- /dev/null +++ b/public/landing/images/illustration-section-01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/illustration-section-02.svg b/public/landing/images/illustration-section-02.svg new file mode 100755 index 0000000..633ed57 --- /dev/null +++ b/public/landing/images/illustration-section-02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/image-placeholder.svg b/public/landing/images/image-placeholder.svg new file mode 100755 index 0000000..16c62da --- /dev/null +++ b/public/landing/images/image-placeholder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/logo.svg b/public/landing/images/logo.svg new file mode 100755 index 0000000..777ea8e --- /dev/null +++ b/public/landing/images/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/images/team-member-01.jpg b/public/landing/images/team-member-01.jpg new file mode 100755 index 0000000..0a71e53 Binary files /dev/null and b/public/landing/images/team-member-01.jpg differ diff --git a/public/landing/images/team-member-02.jpg b/public/landing/images/team-member-02.jpg new file mode 100755 index 0000000..d332bf2 Binary files /dev/null and b/public/landing/images/team-member-02.jpg differ diff --git a/public/landing/images/team-member-03.jpg b/public/landing/images/team-member-03.jpg new file mode 100755 index 0000000..d65b207 Binary files /dev/null and b/public/landing/images/team-member-03.jpg differ diff --git a/public/landing/images/team-member-04.jpg b/public/landing/images/team-member-04.jpg new file mode 100755 index 0000000..15a1a3c Binary files /dev/null and b/public/landing/images/team-member-04.jpg differ diff --git a/public/landing/images/team-member-05.jpg b/public/landing/images/team-member-05.jpg new file mode 100755 index 0000000..43630c3 Binary files /dev/null and b/public/landing/images/team-member-05.jpg differ diff --git a/public/landing/images/team-member-06.jpg b/public/landing/images/team-member-06.jpg new file mode 100755 index 0000000..49bdb38 Binary files /dev/null and b/public/landing/images/team-member-06.jpg differ diff --git a/public/landing/images/video-placeholder.svg b/public/landing/images/video-placeholder.svg new file mode 100755 index 0000000..3ea74aa --- /dev/null +++ b/public/landing/images/video-placeholder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/landing/js/accordion.js b/public/landing/js/accordion.js new file mode 100755 index 0000000..4eb978f --- /dev/null +++ b/public/landing/js/accordion.js @@ -0,0 +1,26 @@ +; (function () { + 'use strict' + const accordionEl = document.getElementsByClassName('accordion-header') + + function openAccordion (parent, panel) { + parent.classList.add('is-active') + panel.style.maxHeight = panel.scrollHeight + 'px' + } + + function closeAccordion (parent, panel) { + parent.classList.remove('is-active') + panel.style.maxHeight = null + } + + if (accordionEl.length > 0) { + for (let i = 0; i < accordionEl.length; i++) { + const el = accordionEl[i] + const parent = el.parentNode + const panel = el.nextElementSibling + parent.classList.contains('is-active') && openAccordion(parent, panel) + el.addEventListener('click', function () { + parent.classList.contains('is-active') ? closeAccordion(parent, panel) : openAccordion(parent, panel) + }) + } + } +}()) diff --git a/public/landing/js/carousel.js b/public/landing/js/carousel.js new file mode 100755 index 0000000..3a80383 --- /dev/null +++ b/public/landing/js/carousel.js @@ -0,0 +1,171 @@ +; (function () { + 'use strict' + + // Swipe detector + // https://gist.github.com/chrishaensel/e17c9f3838f246d75fe3bd19d6bb92e8#file-swipe-js + let swipe = { + touchStartX: 0, + touchEndX: 0, + minSwipePixels: 30, + detectionZone: undefined, + swipeCallback: function () { }, + + init: function (detectionZone, callback) { + swipe.swipeCallback = callback + detectionZone.addEventListener('touchstart', function (event) { + swipe.touchStartX = event.changedTouches[0].screenX + }, false) + detectionZone.addEventListener('touchend', function (event) { + swipe.touchEndX = event.changedTouches[0].screenX + swipe.handleSwipeGesture() + }, false) + }, + + handleSwipeGesture: function () { + let direction, moved + if (swipe.touchEndX <= swipe.touchStartX) { + moved = swipe.touchStartX - swipe.touchEndX + direction = 'left' + } + if (swipe.touchEndX >= swipe.touchStartX) { + moved = swipe.touchEndX - swipe.touchStartX + direction = 'right' + } + if (moved > swipe.minSwipePixels && direction !== 'undefined') { + swipe.swipe(direction, moved) + } + }, + + swipe: function (direction, movedPixels) { + let ret = {} + ret.direction = direction + ret.movedPixels = movedPixels + swipe.swipeCallback(ret) + } + } + + const carousels = document.getElementsByClassName('carousel-items') + + // Rotate the carousel forward or backward + function rotateCarousel(el, dir) { + if (dir === undefined) { + dir = 'next' + } + let currentItem = el.getElementsByClassName('carousel-item is-active')[0] + let nextItem = (dir === 'next') ? currentItem.nextElementSibling : currentItem.previousElementSibling + let index = currentItem.getAttribute('data-carousel') + let currentBullet = el.parentNode.getElementsByClassName('carousel-bullet')[index] + let nextBullet = (dir === 'next') ? currentBullet.nextElementSibling : currentBullet.previousElementSibling + currentItem.classList.remove('is-active') + currentBullet.classList.remove('is-active') + if (nextItem) { + nextItem.classList.add('is-active') + nextBullet.classList.add('is-active') + } else { + if (dir === 'next') { + el.firstElementChild.classList.add('is-active') + el.parentNode.getElementsByClassName('carousel-bullets')[0].firstElementChild.classList.add('is-active') + } else { + el.lastElementChild.classList.add('is-active') + el.parentNode.getElementsByClassName('carousel-bullets')[0].lastElementChild.classList.add('is-active') + } + } + } + + // Equal heights fix + function equalHeightCarousel(carousel, items) { + let taller = 0 + let height + for (let i = 0; i < items.length; i++) { + items[0].parentNode.style.minHeight = taller + 'px' + items[i].classList.add('is-loading') + height = items[i].offsetHeight + items[i].classList.remove('is-loading') + if (height > taller) { + taller = height + } + } + items[0].parentNode.style.minHeight = taller + 'px' + } + + // Clear autorotate + function clearAutorotate(autorotate) { + if (autorotate) { + clearInterval(autorotate) + } + } + + if (carousels.length > 0) { + for (let i = 0; i < carousels.length; i++) { + let carousel = carousels[i] + let items = carousel.getElementsByClassName('carousel-item') + let activeItem = 0 + let autorotateTiming = carousel.getAttribute('data-autorotate') + // Generate bullets container + const bulletsContainer = document.createElement('div') + bulletsContainer.className = 'carousel-bullets' + carousel.parentNode.insertBefore(bulletsContainer, carousel.nextSibling) + for (let i = 0; i < items.length; i++) { + // Add data attributes + items[i].setAttribute('data-carousel', i) + // Determine a new active item, if any + if (items[i].classList.contains('is-active')) activeItem = i + // Generate bullets + let bullet = document.createElement('button') + bullet.className = 'carousel-bullet' + bullet.setAttribute('data-bullet', i) + carousel.parentNode.getElementsByClassName('carousel-bullets')[0].appendChild(bullet) + } + // Add is-active class to first carousel item and bullet + items[activeItem].classList.add('is-active') + let bullets = carousel.parentNode.getElementsByClassName('carousel-bullet') + bullets[activeItem].classList.add('is-active') + // Equal height items + equalHeightCarousel(carousel, items) + window.addEventListener('resize', function () { + equalHeightCarousel(carousel, items) + }) + // Autorotate + let autorotate = false + if (autorotateTiming) { + autorotate = setInterval(function () { + rotateCarousel(carousel, 'next') + }, autorotateTiming) + } + // Rotate by bullet click + for (let i = 0; i < bullets.length; i++) { + let bullet = bullets[i] + bullet.addEventListener('click', function (e) { + e.preventDefault() + // Do nothing if item is active + if (bullet.classList.contains('is-active')) { + return + } + // Remove active classes + for (let i = 0; i < bullets.length; i++) { + bullets[i].classList.remove('is-active') + } + for (let i = 0; i < items.length; i++) { + items[i].classList.remove('is-active') + } + // Add active classes to corresponding items and bullets + let index = this.getAttribute('data-bullet') + items[index].classList.add('is-active') + this.classList.add('is-active') + // Clear autorotate timing + clearAutorotate(autorotate) + }) + } + // Rotate on swipe + swipe.init(carousel, function (e) { + if (e.direction === 'left') { + rotateCarousel(carousel, 'next') + } else if (e.direction === 'right') { + rotateCarousel(carousel, 'prev') + } + // Clear autorotate timing + clearAutorotate(autorotate) + }) + } + } +}()) diff --git a/public/landing/js/main.js b/public/landing/js/main.js new file mode 100755 index 0000000..cd4b054 --- /dev/null +++ b/public/landing/js/main.js @@ -0,0 +1,9 @@ +;(function () { + 'use strict' + document.documentElement.classList.remove('no-js') + document.documentElement.classList.add('js') + + window.addEventListener('load', function () { + document.body.classList.add('is-loaded') + }) +}()) diff --git a/public/landing/js/main.min.js b/public/landing/js/main.min.js new file mode 100644 index 0000000..3984dc1 --- /dev/null +++ b/public/landing/js/main.min.js @@ -0,0 +1 @@ +!function(){"use strict";const e=document.getElementsByClassName("accordion-header");function t(e,t){e.classList.add("is-active"),t.style.maxHeight=t.scrollHeight+"px"}function n(e,t){e.classList.remove("is-active"),t.style.maxHeight=null}if(e.length>0)for(let i=0;i=e.touchStartX&&(n=e.touchEndX-e.touchStartX,t="right"),n>e.minSwipePixels&&"undefined"!==t&&e.swipe(t,n)},swipe:function(t,n){let i={};i.direction=t,i.movedPixels=n,e.swipeCallback(i)}};const t=document.getElementsByClassName("carousel-items");function n(e,t){void 0===t&&(t="next");let n=e.getElementsByClassName("carousel-item is-active")[0],i="next"===t?n.nextElementSibling:n.previousElementSibling,s=n.getAttribute("data-carousel"),a=e.parentNode.getElementsByClassName("carousel-bullet")[s],l="next"===t?a.nextElementSibling:a.previousElementSibling;n.classList.remove("is-active"),a.classList.remove("is-active"),i?(i.classList.add("is-active"),l.classList.add("is-active")):"next"===t?(e.firstElementChild.classList.add("is-active"),e.parentNode.getElementsByClassName("carousel-bullets")[0].firstElementChild.classList.add("is-active")):(e.lastElementChild.classList.add("is-active"),e.parentNode.getElementsByClassName("carousel-bullets")[0].lastElementChild.classList.add("is-active"))}function i(e,t){let n,i=0;for(let e=0;ei&&(i=n);t[0].parentNode.style.minHeight=i+"px"}function s(e){e&&clearInterval(e)}if(t.length>0)for(let a=0;a0&&t.length>0)for(let e=0;edocument.querySelectorAll("[class*=reveal-].is-revealed").length)return;window.removeEventListener("load",i),window.removeEventListener("scroll",s),window.removeEventListener("resize",a)}()}function s(){n(30,i())}function a(){t=window.innerHeight,n(30,i())}e.length>0&&document.body.classList.contains("has-animations")&&(window.addEventListener("load",i),window.addEventListener("scroll",s),window.addEventListener("resize",a))}(),function(){"use strict";const e=document.getElementsByClassName("smooth-scroll"),t=(e,n,i,s,a)=>{const l=n-e;let c=l/i;const o=function(e){return e<.5?2*e*e:(4-2*e)*e-1}(c=Math.min(c,1));window.scroll(0,a+s*o),l{const l=n||(new Date).getTime();t(e,l,i,s,a)})};if(e.length>0)for(let n=0;n{const n=e||(new Date).getTime(),i=n,l=window.pageYOffset,c=s.getBoundingClientRect().top;t(i,n,a,c,l)})})}}(); \ No newline at end of file diff --git a/public/landing/js/mobile-menu.js b/public/landing/js/mobile-menu.js new file mode 100755 index 0000000..0155d4f --- /dev/null +++ b/public/landing/js/mobile-menu.js @@ -0,0 +1,28 @@ +;(function () { + 'use strict' + const navToggle = document.getElementById('header-nav-toggle') + const mainNav = document.getElementById('header-nav') + + if (navToggle) { + // Open menu + navToggle.addEventListener('click', function () { + document.body.classList.toggle('off-nav-is-active') + mainNav.classList.toggle('is-active') + if (mainNav.style.maxHeight) { + mainNav.style.maxHeight = null + } else { + mainNav.style.maxHeight = mainNav.scrollHeight + 'px' + } + this.getAttribute('aria-expanded') === 'true' ? this.setAttribute('aria-expanded', 'false') : this.setAttribute('aria-expanded', 'true') + }) + // Close menu + document.addEventListener('click', function (e) { + if (e.target !== mainNav && e.target !== navToggle && !mainNav.contains(e.target)) { + document.body.classList.remove('off-nav-is-active') + mainNav.classList.remove('is-active') + mainNav.style.maxHeight = null + navToggle.setAttribute('aria-expanded', 'false') + } + }) + } +}()) diff --git a/public/landing/js/modal.js b/public/landing/js/modal.js new file mode 100755 index 0000000..583bb80 --- /dev/null +++ b/public/landing/js/modal.js @@ -0,0 +1,56 @@ +;(function () { + 'use strict' + const modals = document.getElementsByClassName('modal') + const modalTriggers = document.getElementsByClassName('modal-trigger') + + function openModal (el) { + if (el) { + document.body.classList.add('modal-is-active') + el.classList.add('is-active') + } + } + + function closeModals () { + document.body.classList.remove('modal-is-active') + for (let i = 0; i < modals.length; i++) { + modals[i].classList.remove('is-active') + } + } + + if (modals.length > 0 && modalTriggers.length > 0) { + for (let i = 0; i < modalTriggers.length; i++) { + let modalTrigger = modalTriggers[i] + let modal = document.getElementById(modalTrigger.getAttribute('aria-controls')) + if (modal) { + // Modal video + if (modalTrigger.hasAttribute('data-video')) { + if (modal.querySelector('iframe') !== null) { + modal.querySelector('iframe').setAttribute('src', modalTrigger.getAttribute('data-video')) + } else if (modal.querySelector('video') !== null) { + modal.querySelector('video').setAttribute('src', modalTrigger.getAttribute('data-video')) + } + } + modalTrigger.addEventListener('click', function (e) { + e.preventDefault() + if (modalTrigger.hasAttribute('aria-controls')) { + openModal(modal) + } + }) + } + } + } + + document.addEventListener('click', function (e) { + if (e.target.classList.contains('modal') || e.target.classList.contains('modal-close-trigger')) { + e.preventDefault() + closeModals() + } + }) + + document.addEventListener('keydown', function (event) { + var e = event || window.event + if (e.keyCode === 27) { + closeModals() + } + }) +}()) diff --git a/public/landing/js/pricing-switcher.js b/public/landing/js/pricing-switcher.js new file mode 100755 index 0000000..7b5fa8d --- /dev/null +++ b/public/landing/js/pricing-switcher.js @@ -0,0 +1,22 @@ +;(function () { + 'use strict' + const pricingToggle = document.getElementById('pricing-toggle') + + if (pricingToggle) { + window.addEventListener('load', pricingSwitch) + pricingToggle.addEventListener('change', pricingSwitch) + } + + function pricingSwitch () { + const switchables = document.getElementsByClassName('pricing-switchable') + if (pricingToggle.checked) { + for (let i = 0; i < switchables.length; i++) { + switchables[i].innerHTML = switchables[i].getAttribute('data-pricing-yearly') + } + } else { + for (let i = 0; i < switchables.length; i++) { + switchables[i].innerHTML = switchables[i].getAttribute('data-pricing-monthly') + } + } + } +}()) diff --git a/public/landing/js/scroll-reveal.js b/public/landing/js/scroll-reveal.js new file mode 100755 index 0000000..67c43b9 --- /dev/null +++ b/public/landing/js/scroll-reveal.js @@ -0,0 +1,62 @@ +;(function () { + 'use strict' + const revealEl = document.querySelectorAll('[class*=reveal-]') + let viewportHeight = window.innerHeight + + function throttle (delay, fn) { + var lastCall = 0 + return function () { + var now = new Date().getTime() + if (now - lastCall < delay) { + return + } + lastCall = now + return fn.apply(void 0, arguments) + } + } + + function elementIsVisible (el, offset) { + return (el.getBoundingClientRect().top <= viewportHeight - offset) + } + + function revealElements () { + for (let i = 0; i < revealEl.length; i++) { + let el = revealEl[i] + let revealDelay = el.getAttribute('data-reveal-delay') + let revealOffset = (el.getAttribute('data-reveal-offset') ? el.getAttribute('data-reveal-offset') : '200') + let listenedEl = (el.getAttribute('data-reveal-container') ? el.closest(el.getAttribute('data-reveal-container')) : el) + if (elementIsVisible(listenedEl, revealOffset) && !el.classList.contains('is-revealed')) { + if (revealDelay && revealDelay !== 0) { + setTimeout(function () { + el.classList.add('is-revealed') + }, revealDelay) + } else { + el.classList.add('is-revealed') + } + } + } + revealDone() + } + + function revealScroll () { + throttle(30, revealElements()) + } + + function revealResize () { + viewportHeight = window.innerHeight + throttle(30, revealElements()) + } + + function revealDone () { + if (revealEl.length > document.querySelectorAll('[class*=reveal-].is-revealed').length) return + window.removeEventListener('load', revealElements) + window.removeEventListener('scroll', revealScroll) + window.removeEventListener('resize', revealResize) + } + + if (revealEl.length > 0 && document.body.classList.contains('has-animations')) { + window.addEventListener('load', revealElements) + window.addEventListener('scroll', revealScroll) + window.addEventListener('resize', revealResize) + } +}()) diff --git a/public/landing/js/smooth-scroll.js b/public/landing/js/smooth-scroll.js new file mode 100755 index 0000000..6d06297 --- /dev/null +++ b/public/landing/js/smooth-scroll.js @@ -0,0 +1,51 @@ +;(function () { + 'use strict' + const smoothScrollLinks = document.getElementsByClassName('smooth-scroll') + + const easeInOutQuad = function (t) { + return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t + } + + const scrollToEl = (startTime, currentTime, duration, scrollEndElemTop, startScrollOffset) => { + const runtime = currentTime - startTime + let progress = runtime / duration + + progress = Math.min(progress, 1) + + const ease = easeInOutQuad(progress) + + window.scroll(0, startScrollOffset + (scrollEndElemTop * ease)) + if (runtime < duration) { + window.requestAnimationFrame((timestamp) => { + const currentTime = timestamp || new Date().getTime() + scrollToEl(startTime, currentTime, duration, scrollEndElemTop, startScrollOffset) + }) + } + } + + if (smoothScrollLinks.length > 0) { + for (let i = 0; i < smoothScrollLinks.length; i++) { + const smoothScrollLink = smoothScrollLinks[i] + + smoothScrollLink.addEventListener('click', function (e) { + e.preventDefault() + const link = e.target.closest('.smooth-scroll') + const targetId = link.href.split('#')[1] + const target = document.getElementById(targetId) + const duration = link.getAttribute('data-duration') || 1000 + + if (!target) return + + window.requestAnimationFrame((timestamp) => { + const stamp = timestamp || new Date().getTime() + const start = stamp + + const startScrollOffset = window.pageYOffset + const scrollEndElemTop = target.getBoundingClientRect().top + + scrollToEl(start, stamp, duration, scrollEndElemTop, startScrollOffset) + }) + }) + } + } +}()) diff --git a/public/landing/landing.html b/public/landing/landing.html new file mode 100755 index 0000000..f27fd5f --- /dev/null +++ b/public/landing/landing.html @@ -0,0 +1,327 @@ + + + + + + + Neon Chat + + + +
+ +
+
+
+
+
+
+

The most advanced + video chat ever created.

+

Decentralized video + calling provides real-time HD quality and latency simply + not available with traditional technology.

+ +
+ +
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+

Build up the whole picture

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore + eu fugiat nulla pariatur excepteur sint — occaecat cupidatat non proident, sunt in culpa + qui.

+
+
+
+
+
+
Feature tile icon 01
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+
+
+
+
Feature tile icon 02
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+
+
+
+
Feature tile icon 03
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+
+
+
+
Feature tile icon 04
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+
+
+
+
Feature tile icon 05
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+
+
+
+
Feature tile icon 06
+
+

Generate Leads

+

Duis aute irure dolor in reprehenderit in voluptate velit + esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat + cupidatat.

+
+
+ +
+
+ Try now +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+
+
+ + + \ No newline at end of file diff --git a/public/landing/later/additional.html b/public/landing/later/additional.html new file mode 100755 index 0000000..a081b6e --- /dev/null +++ b/public/landing/later/additional.html @@ -0,0 +1,559 @@ + + + + + + + Neon Template + + + +
+ +
+
+
+
+
+

Engage Your Visitors with a beautiful template

+
+
+
+
+
+
+
+
+
$27/m
+
Lorem ipsum is a common text
+
+
+
What’s + included +
+
    +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
+
+
+ +
+
+
+
+
+
+
$47/m
+
Lorem ipsum is a common text
+
+
+
What’s + included +
+
    +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
+
+
+ +
+
+
+
+
+
+
$67/m
+
Lorem ipsum is a common text
+
+
+
What’s + included +
+
    +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
  • Excepteur sint occaecat velit
  • +
+
+
+ +
+
+
+
+
+
+
+
+
+
+

Meet the team - Lorem ipsum is placeholder + text.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore + eu fugiat nulla pariatur excepteur sint — occaecat cupidatat non proident, sunt in culpa + qui.

+
+
+
+
+
+
Team member 01
+
+
Markus Hasinika
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
Team member 02
+
+
Diana Stafford
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
Team member 03
+
+
Patricia + Collins
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
Team member 04
+
+
Anton Klenkov
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
Team member 05
+
+
Nick Kornilov
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
Team member 01
+
+
Andrea Engler
+
Founder & + CEO +
+

Magnis dis parturient montes nascetur. Quam quisque id diam + vel quam ultricies leo integer.

+
+
+
+
+
+
+
+
+
+
+

Features - Lorem ipsum is placeholder + text.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore + eu fugiat nulla pariatur excepteur sint — occaecat cupidatat non proident, sunt in culpa + qui.

+
+
+
+

Data-driven insights

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua — Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+
Features split image 01
+
+
+

Data-driven insights

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua — Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+
Features split image 02
+
+
+

Data-driven insights

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua — Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+
Features split image 03
+
+
+
+
+
+
+
+
+

Lorem ipsum is placeholder text commonly used in the + graphic.

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud + exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla + pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt + mollit anim id est laborum.

+
Image placeholder +
A super-nice image 😀 +
+
+

Flexibility

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut + labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco + laboris nisi ut aliquip ex ea commodo consequat sint occaecat cupidatat non proident, sunt + in culpa qui officia deserunt mollit anim id est laborum.

+
    +
  • Lorem ipsum dolor sit amet, consectetur.
  • +
  • Lorem ipsum dolor sit amet, consectetur.
  • +
  • Lorem ipsum dolor sit amet, consectetur.
  • +
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut + labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco + laboris.

+
+
+
+
+
+
+
+

Modal - Lorem ipsum is placeholder + text commonly used.

+ + +
+
+
+
+
+
+
+
+

Buttons - Lorem ipsum is placeholder text commonly + used.

+ + +
+
+
+
+
+
+
+
+

Input forms - Lorem ipsum is + placeholder text commonly used.

+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
Something is wrong.
+
+
+
+ +
+
You’ve done it.
+
+
+
+
+
+
+
+
+
+
+

FAQ - Lorem ipsum is placeholder text + commonly used.

+
    +
  • +
    Nisi porta lorem mollis aliquam ut. +
    +
    +

    Lorem ipsum is placeholder text commonly used + in the graphic, print, and publishing industries for previewing layouts and visual + mockups.

    +
  • +
  • +
    Nisi porta lorem mollis aliquam ut. +
    +
    +

    Lorem ipsum is placeholder text commonly used + in the graphic, print, and publishing industries for previewing layouts and visual + mockups.

    +
  • +
  • +
    Nisi porta lorem mollis aliquam ut. +
    +
    +

    Lorem ipsum is placeholder text commonly used + in the graphic, print, and publishing industries for previewing layouts and visual + mockups.

    +
  • +
  • +
    Nisi porta lorem mollis aliquam ut. +
    +
    +

    Lorem ipsum is placeholder text commonly used + in the graphic, print, and publishing industries for previewing layouts and visual + mockups.

    +
  • +
  • +
    Nisi porta lorem mollis aliquam ut. +
    +
    +

    Lorem ipsum is placeholder text commonly used + in the graphic, print, and publishing industries for previewing layouts and visual + mockups.

    +
  • +
+
+
+
+
+
+
+
+

For previewing layouts and visual?

+
+
+ + + +
+
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/public/landing/later/login.html b/public/landing/later/login.html new file mode 100755 index 0000000..d3d9347 --- /dev/null +++ b/public/landing/later/login.html @@ -0,0 +1,62 @@ + + + + + + + Neon Template + + + +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/public/landing/later/signup.html b/public/landing/later/signup.html new file mode 100755 index 0000000..a7261a3 --- /dev/null +++ b/public/landing/later/signup.html @@ -0,0 +1,62 @@ + + + + + + + Neon Template + + + +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/public/main.css b/public/main.css deleted file mode 100644 index 8e437ae..0000000 --- a/public/main.css +++ /dev/null @@ -1,12 +0,0 @@ -/*html, body {*/ -/* width: 100%;*/ -/* height: 100%;*/ -/* margin: 0;*/ -/* padding: 0;*/ -/* background-color: #DCECFE;*/ -/* background: -webkit-linear-gradient(-450deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, -webkit-linear-gradient(-450deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, -webkit-linear-gradient(-450deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, -webkit-linear-gradient(-450deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, -webkit-linear-gradient(-450deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, -webkit-linear-gradient(-390deg, #DCECFE 0%, #F5E1EE 100%) no-repeat;*/ -/* background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.05)) repeat-y, linear-gradient(120deg, #DCECFE 0%, #F5E1EE 100%) no-repeat;*/ -/* background-position: 10%, 30%, 50%, 70%, 90%, 0;*/ -/* background-size: 2px auto, 2px auto, 2px auto, 2px auto, 2px auto, 100% auto;*/ -/* background-attachment: fixed;*/ -/*}*/ \ No newline at end of file diff --git a/index.js b/server.js similarity index 97% rename from index.js rename to server.js index 6fb032b..82aeaf3 100644 --- a/index.js +++ b/server.js @@ -15,7 +15,7 @@ app.get('/', function (req, res) { }); app.get('/landing', function (req, res) { - res.sendFile(path.join(public, 'landing.html')); + res.sendFile(path.join(public, 'landing/landing.html')); }); function log(msg, room) {