dark mode update

This commit is contained in:
carodej
2020-07-09 10:56:17 +02:00
parent a43f0e6908
commit 5a9f5813c8
89 changed files with 1633 additions and 912 deletions

View File

@@ -0,0 +1,54 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Resources\PageCollection;
use App\Http\Resources\PageResource;
use App\Page;
use Illuminate\Http\Request;
class PagesController extends Controller
{
/**
* Get all pages
*
* @return PageCollection
*/
public function index()
{
return new PageCollection(
Page::all()
);
}
/**
* Get page resource
*
* @param $slug
* @return PageResource
*/
public function show($slug)
{
return new PageResource(
Page::where('slug', $slug)->first()
);
}
/**
* Update page content
*
* @param Request $request
* @param $slug
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function update(Request $request, $slug) {
$page = Page::where('slug', $slug)->first();
$page->update([
$request->name => $request->value
]);
return response('Done', 204);
}
}

View File

@@ -2,11 +2,17 @@
namespace App\Http\Controllers;
use App\Content;
use App\Http\Requests\PublicPages\SendMessageRequest;
use App\Http\Resources\PageResource;
use App\Mail\SendSupportForm;
use App\Page;
use App\Setting;
use Doctrine\DBAL\Driver\PDOException;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -20,6 +26,9 @@ class AppFunctionsController extends Controller
public function index()
{
try {
// Try to connect to database
\DB::getPdo();
$connection = $this->get_setup_status();
$settings = json_decode(Setting::all()->pluck('value', 'name')->toJson());
@@ -33,6 +42,36 @@ class AppFunctionsController extends Controller
->with('installation', $connection);
}
/**
* Send contact message from pages
*
* @param SendMessageRequest $request
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function contact_form(SendMessageRequest $request)
{
// Get receiver email
$receiver = Setting::where('name', 'contact_email')->first();
// Send message
Mail::to($receiver->value)->send(new SendSupportForm($request->all()));
return response('Done', 200);
}
/**
* Get single page content
*
* @param $slug
* @return PageResource
*/
public function get_page($slug)
{
return new PageResource(
Page::where('slug', $slug)->first()
);
}
/**
* Check if setup wizard was passed
*
@@ -40,8 +79,6 @@ class AppFunctionsController extends Controller
*/
private function get_setup_status(): string
{
\DB::getPdo();
$setup_success = Setting::where('name', 'setup_wizard_success')->first();
$connection = $setup_success ? 'setup-done' : 'setup-disclaimer';

View File

@@ -194,16 +194,12 @@ class SetupWizardController extends Controller
'value' => $request->currency,
],
[
'name' => 'stripe_webhook_secret',
'value' => $request->webhookSecret,
'name' => 'payments_configured',
'value' => 1,
],
[
'name' => 'stripe_secret_key',
'value' => $request->secret,
],
[
'name' => 'stripe_publishable_key',
'value' => $request->key,
'name' => 'payments_active',
'value' => 1,
],
]);
@@ -475,6 +471,11 @@ class SetupWizardController extends Controller
$logo = store_system_image($request->file('logo'), 'system');
}
// Store Logo horizontal
if ($request->hasFile('logo_horizontal')) {
$logo_horizontal = store_system_image($request->file('logo_horizontal'), 'system');
}
// Store favicon
if ($request->hasFile('favicon')) {
$favicon = store_system_image($request->file('favicon'), 'system');
@@ -494,6 +495,10 @@ class SetupWizardController extends Controller
'name' => 'app_logo',
'value' => $request->hasFile('logo') ? $logo : null,
],
[
'name' => 'app_logo_horizontal',
'value' => $request->hasFile('logo_horizontal') ? $logo_horizontal : null,
],
[
'name' => 'app_favicon',
'value' => $request->hasFile('favicon') ? $favicon : null,
@@ -587,6 +592,11 @@ class SetupWizardController extends Controller
'value' => $request->purchase_code,
]);
// Create legal pages
if ($request->license === 'Extended') {
Artisan::call('db:seed --class=PageSeeder');
}
// Retrieve access token
$response = Route::dispatch(self::make_login_request($request));

View File

@@ -2,6 +2,7 @@
use App\FileManagerFile;
use App\FileManagerFolder;
use App\Setting;
use App\Share;
use ByteUnits\Metric;
use Carbon\Carbon;
@@ -10,6 +11,55 @@ use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\ImageManagerStatic as Image;
function get_setting($setting) {
return Setting::where('name', $setting)->first()->value;
}
/**
* Create paragraph from text
*
* @param $str
* @return mixed|null|string|string[]
*/
function add_paragraphs($str)
{
// Trim whitespace
if (($str = trim($str)) === '') return '';
// Standardize newlines
$str = str_replace(array("\r\n", "\r"), "\n", $str);
// Trim whitespace on each line
$str = preg_replace('~^[ \t]+~m', '', $str);
$str = preg_replace('~[ \t]+$~m', '', $str);
// The following regexes only need to be executed if the string contains html
if ($html_found = (strpos($str, '<') !== FALSE)) {
// Elements that should not be surrounded by p tags
$no_p = '(?:p|div|article|header|aside|hgroup|canvas|output|progress|section|figcaption|audio|video|nav|figure|footer|video|details|main|menu|summary|h[1-6r]|ul|ol|li|blockquote|d[dlt]|pre|t[dhr]|t(?:able|body|foot|head)|c(?:aption|olgroup)|form|s(?:elect|tyle)|a(?:ddress|rea)|ma(?:p|th))';
// Put at least two linebreaks before and after $no_p elements
$str = preg_replace('~^<' . $no_p . '[^>]*+>~im', "\n$0", $str);
$str = preg_replace('~</' . $no_p . '\s*+>$~im', "$0\n", $str);
}
// Do the <p> magic!
$str = '<p>' . trim($str) . '</p>';
$str = preg_replace('~\n{2,}~', "</p>\n\n<p>", $str);
// The following regexes only need to be executed if the string contains html
if ($html_found !== FALSE) {
// Remove p tags around $no_p elements
$str = preg_replace('~<p>(?=</?' . $no_p . '[^>]*+>)~i', '', $str);
$str = preg_replace('~(</?' . $no_p . '[^>]*+>)</p>~i', '$1', $str);
}
// Convert single linebreaks to <br />
$str = preg_replace('~(?<!\n)\n(?!\n)~', "<br>\n", $str);
return $str;
}
/**
* Set environment value
*

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendSupportForm extends Mailable
{
use Queueable, SerializesModels;
private $request;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($request)
{
$this->request = $request;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$from = config('mail.from')['address'];
return $this->from($from)
->replyTo($this->request['email'])
->subject('New Contact Message from ' . $this->request['email'])
->view('mails.contact-message')
->with('request', $this->request);
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Requests\PublicPages;
use Illuminate\Foundation\Http\FormRequest;
class SendMessageRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required|email',
'message' => 'required|string',
];
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class PageCollection extends ResourceCollection
{
public $collects = PageResource::class;
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
];
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class PageResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => [
'id' => $this->id,
'type' => 'pages',
'attributes' => [
'visibility' => $this->visibility,
'title' => $this->title,
'slug' => $this->slug,
'content' => $this->content,
'content_formatted' => add_paragraphs($this->content),
]
],
];
}
}

View File

@@ -206,8 +206,11 @@ class Editor
$user_id = is_null($shared) ? Auth::id() : $shared->user_id;
$user_storage_used = user_storage_percentage($user_id, $file->getSize());
// Get storage limitation setup
$storage_limitation = get_setting('storage_limitation');
// Check if user can upload
if (config('vuefilemanager.limit_storage_by_capacity') && $user_storage_used >= 100) {
if ($storage_limitation && $user_storage_used >= 100) {
abort(423, 'You exceed your storage limit!');
}

12
app/Page.php Normal file
View File

@@ -0,0 +1,12 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Page extends Model
{
public $timestamps = false;
protected $guarded = ['id'];
}

View File

@@ -118,8 +118,20 @@ class User extends Authenticatable
*/
public function getStorageAttribute()
{
// Get storage limitation setup
$storage_limitation = get_setting('storage_limitation');
// Get user storage usage
if (!$storage_limitation) {
return [
'used' => $this->used_capacity,
'used_formatted' => Metric::bytes($this->used_capacity)->format(),
];
}
return [
'used' => (float)get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity),
'used_formatted' => get_storage_fill_percentage($this->used_capacity, $this->settings->storage_capacity) . '%',
'capacity' => $this->settings->storage_capacity,
'capacity_formatted' => format_gigabytes($this->settings->storage_capacity),
];

View File

@@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pages', function (Blueprint $table) {
$table->id();
$table->boolean('visibility');
$table->string('title');
$table->string('slug');
$table->longText('content');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('pages');
}
}

View File

@@ -11,9 +11,7 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
$this->call(PaymentGatewaysSeeder::class);
$this->call(PlansSeeder::class);
$this->call(InvoicesSeeder::class);
$this->call(PageSeeder::class);
$this->call(SettingSeeder::class);
}
}

View File

@@ -1,65 +0,0 @@
<?php
use Illuminate\Database\Seeder;
class InvoicesSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$user = \App\User::find(1);
$seller = [
'settings' => [
'billing_name' => 'VueFileManager',
'billing_address' => 'Somewhere 32',
'billing_state' => 'Washington',
'billing_city' => 'Manchester',
'billing_postal_code' => '04001',
'billing_country' => 'The USA',
'billing_phone_number' => '490321-6354774',
'billing_vat_number' => '7354724626246',
]
];
$invoice = \App\Invoice::create([
'token' => \Illuminate\Support\Str::random(),
'order' => '200001',
'user_id' => 1,
'plan_id' => 1,
'seller' => [
'billing_name' => $seller['settings']['billing_name'],
'billing_address' => $seller['settings']['billing_address'],
'billing_state' => $seller['settings']['billing_state'],
'billing_city' => $seller['settings']['billing_city'],
'billing_postal_code' => $seller['settings']['billing_postal_code'],
'billing_country' => $seller['settings']['billing_country'],
'billing_phone_number' => $seller['settings']['billing_phone_number'],
'billing_vat_number' => $seller['settings']['billing_vat_number'],
],
'client' => [
'billing_name' => $user->settings->billing_name,
'billing_address' => $user->settings->billing_address,
'billing_state' => $user->settings->billing_state,
'billing_city' => $user->settings->billing_city,
'billing_postal_code' => $user->settings->billing_postal_code,
'billing_country' => $user->settings->billing_country,
'billing_phone_number' => $user->settings->billing_phone_number,
],
'bag' => [
[
'description' => 'Subscription - Starter Pack',
'date' => '01-05-2020 01-06-2020',
'amount' => 2.99,
]
],
'notes' => '',
'total' => 2.99,
'currency' => 'USD',
'path' => '/invoices/200001-8HUrJkNdLKilNMeF.pdf',
]);
}
}

View File

@@ -0,0 +1,40 @@
<?php
use App\Page;
use Illuminate\Database\Seeder;
class PageSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$columns = collect([
[
'visibility' => 1,
'title' => 'Terms of Service',
'slug' => 'terms-of-service',
'content' => 'Laoreet cum hendrerit iaculis arcu phasellus congue et elementum, pharetra risus imperdiet aptent posuere rutrum parturient blandit, dapibus tellus ridiculus potenti aliquam sociis turpis. Nullam commodo eget laoreet risus cursus vel placerat, in dapibus sociis gravida faucibus sodales, fringilla potenti elit semper iaculis ullamcorper. Dignissim vulputate pretium montes pellentesque mollis, consectetur adipiscing curabitur semper sem rhoncus, litora viverra curae proin.',
],
[
'visibility' => 1,
'title' => 'Privacy Policy',
'slug' => 'privacy-policy',
'content' => 'Sit orci justo augue maecenas laoreet consectetur natoque magnis in viverra sagittis, himenaeos urna facilisis mus proin primis diam accumsan tristique inceptos. Primis quisque posuere sit praesent lobortis feugiat semper convallis facilisis, vivamus gravida ligula nostra curae eu donec duis parturient senectus, arcu dolor viverra penatibus natoque cum nisi commodo. Litora sociis mauris justo nullam suspendisse mattis maecenas nascetur congue phasellus cras ultricies posuere donec, dapibus egestas diam lacus ornare montes senectus tincidunt eu taciti sed consequat.',
],
[
'visibility' => 1,
'title' => 'Cookie Policy',
'slug' => 'cookie-policy',
'content' => 'Metus penatibus ligula dolor natoque non habitasse laoreet facilisis, libero vivamus eget semper vulputate interdum integer, phasellus lorem enim blandit consectetur nullam sollicitudin. Hendrerit interdum luctus ut in molestie himenaeos eros cum laoreet parturient est, eu lectus hac et netus viverra dictumst congue elit sem senectus litora, fames scelerisque adipiscing inceptos fringilla montes sociosqu suscipit auctor potenti. Elementum lacus vulputate viverra ac morbi ligula ipsum facilisi, sit eu imperdiet lacinia congue dis vitae.',
],
]);
$columns->each(function ($page) {
Page::create($page);
});
}
}

View File

@@ -1,42 +0,0 @@
<?php
use Carbon\Carbon;
use Illuminate\Database\Seeder;
class PlansSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('Plans')->insert([
'name' => 'Starter Pack',
'description' => 'Faucibus massa amet fermentum sodales natoque mauris',
'price' => '9.90',
'capacity' => '200',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
DB::table('Plans')->insert([
'name' => 'Professional Pack',
'description' => 'Fusce morbi a massa ullamcorper inceptos fermentum',
'price' => '19.90',
'capacity' => '500',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
DB::table('Plans')->insert([
'name' => 'Business Pack',
'description' => 'Taciti metus proin sociis aenean facilisis eu',
'price' => '44.90',
'capacity' => '1000',
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
]);
}
}

View File

@@ -11,40 +11,8 @@ class SettingSeeder extends Seeder
*/
public function run()
{
$columns = collect([
/* $columns = collect([
// Service Billing Info
['name' => 'billing_phone_number'],
['name' => 'billing_postal_code'],
['name' => 'billing_vat_number'],
['name' => 'billing_address'],
['name' => 'billing_country'],
['name' => 'billing_state'],
['name' => 'billing_city'],
['name' => 'billing_name'],
// General Settings
['name' => 'app_title'],
['name' => 'app_description'],
['name' => 'app_logo'],
['name' => 'app_favicon'],
['name' => 'google_analytics'],
['name' => 'contact_email'],
// Users
['name' => 'registration', 'value' => 1],
['name' => 'storage_limitation', 'value' => 1],
['name' => 'storage_default', 'value' => 1],
// Mail settings
['name' => 'mail_driver'],
['name' => 'mail_host'],
['name' => 'mail_port'],
['name' => 'mail_username'],
['name' => 'mail_password'],
['name' => 'mail_encryption'],
]);
$columns->each(function ($col) {
@@ -52,6 +20,6 @@ class SettingSeeder extends Seeder
'name' => $col['name'],
'value' => isset($col['value']) ? $col['value'] : null,
]);
});
});*/
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="110px" height="110px" viewBox="0 0 110 110" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 55.2 (78181) - https://sketchapp.com -->
<title>vuefilemanager-logo-icon</title>
<desc>Created with Sketch.</desc>
<g id="vuefilemanager-logo-icon" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Logo" transform="translate(10.000000, 18.000000)" fill-rule="nonzero">
<g id="folder-solid">
<path d="M70.9598041,9.77909244 L41.5971266,9.77909244 L31.8095674,0 L7.34066939,0 C3.28647886,0 0,3.28363588 0,7.33431933 L0,51.3402353 C0,55.3909188 3.28647886,58.6745546 7.34066939,58.6745546 L70.9598041,58.6745546 C75.0139946,58.6745546 78.3004735,55.3909188 78.3004735,51.3402353 L78.3004735,17.1134118 C78.3004735,13.0627283 75.0139946,9.77909244 70.9598041,9.77909244 Z" id="Path-Copy" fill="#35495D"></path>
<path d="M82.5825307,23.8365378 L53.2198531,23.8365378 L43.4322939,14.0574454 L18.9633959,14.0574454 C14.9092054,14.0574454 11.6227265,17.3410813 11.6227265,21.3917647 L11.6227265,65.3976807 C11.6227265,69.4483642 14.9092054,72.732 18.9633959,72.732 L82.5825307,72.732 C86.6367212,72.732 89.9232,69.4483642 89.9232,65.3976807 L89.9232,31.1708572 C89.9232,27.1201737 86.6367212,23.8365378 82.5825307,23.8365378 Z" id="Path" fill="#41B883"></path>
</g>
<path d="M21.4546176,63.6450096 C21.1213711,63.6450096 20.8456535,63.5339291 20.6274564,63.3117648 C20.4092593,63.0896005 20.3001624,62.8158665 20.3001624,62.4905544 C20.3001624,62.1652424 20.4092593,61.8915083 20.6274564,61.669344 C20.8456535,61.4471797 21.1213711,61.3360992 21.4546176,61.3360992 C21.7799296,61.3360992 22.0516801,61.4471797 22.2698772,61.669344 C22.4880743,61.8915083 22.5971712,62.1652424 22.5971712,62.4905544 C22.5971712,62.8158665 22.4880743,63.0896005 22.2698772,63.3117648 C22.0516801,63.5339291 21.7799296,63.6450096 21.4546176,63.6450096 Z M29.2501656,55.6947408 C29.3374445,55.5043143 29.4604264,55.3614965 29.6191152,55.2662832 C29.777804,55.1710699 29.9523591,55.123464 30.1427856,55.123464 C30.4284254,55.123464 30.6862909,55.2147087 30.9163896,55.3972008 C31.1464884,55.5796929 31.261536,55.8097882 31.261536,56.0874936 C31.261536,56.2223791 31.2258316,56.3612297 31.1544216,56.5040496 L28.0123992,62.9904216 C27.9092515,63.2046515 27.7545322,63.3692886 27.5482368,63.484338 C27.3419414,63.5993874 27.1197804,63.6569112 26.8817472,63.6569112 C26.643714,63.6569112 26.421553,63.5993874 26.2152576,63.484338 C26.0089622,63.3692886 25.8542429,63.2046515 25.7510952,62.9904216 L22.6090728,56.5040496 C22.5455973,56.3770986 22.51386,56.238248 22.51386,56.0874936 C22.51386,55.8177227 22.6328748,55.589611 22.870908,55.4031516 C23.1089412,55.2166923 23.3747409,55.123464 23.6683152,55.123464 C23.8587418,55.123464 24.0352804,55.1710699 24.1979364,55.2662832 C24.3605924,55.3614965 24.485558,55.5043143 24.5728368,55.6947408 L26.917452,60.7648224 L29.2501656,55.6947408 Z M36.1768968,57.5989968 C36.5022088,57.5989968 36.7600743,57.6862743 36.9505008,57.860832 C37.1409274,58.0353897 37.2361392,58.2734193 37.2361392,58.574928 L37.2361392,62.6928816 C37.2361392,62.970587 37.1369602,63.1986987 36.9385992,63.3772236 C36.7402382,63.5557485 36.4823728,63.6450096 36.1649952,63.6450096 C35.8793554,63.6450096 35.6452929,63.56765 35.4628008,63.4129284 C35.2803087,63.2582069 35.1850969,63.0499309 35.1771624,62.7880944 C34.9946703,63.0737343 34.7625914,63.2919281 34.4809188,63.4426824 C34.1992462,63.5934368 33.8759226,63.6688128 33.5109384,63.6688128 C32.7571666,63.6688128 32.197797,63.4605369 31.8328128,63.0439788 C31.4678286,62.6274207 31.2853392,61.9946587 31.2853392,61.1456736 L31.2853392,58.574928 C31.2853392,58.2734193 31.3805511,58.0353897 31.5709776,57.860832 C31.7614042,57.6862743 32.0192696,57.5989968 32.3445816,57.5989968 C32.6698936,57.5989968 32.9277591,57.6862743 33.1181856,57.860832 C33.3086122,58.0353897 33.403824,58.2734193 33.403824,58.574928 L33.403824,61.19328 C33.403824,61.7645597 33.649788,62.0501952 34.1417232,62.0501952 C34.427363,62.0501952 34.6614255,61.9470491 34.8439176,61.7407536 C35.0264097,61.5344582 35.1176544,61.2646913 35.1176544,60.9314448 L35.1176544,58.574928 C35.1176544,58.2734193 35.2128663,58.0353897 35.4032928,57.860832 C35.5937194,57.6862743 35.8515848,57.5989968 36.1768968,57.5989968 Z M43.2345456,61.6931472 C43.4170377,61.6931472 43.5658062,61.7645561 43.6808556,61.907376 C43.795905,62.0501959 43.8534288,62.2366525 43.8534288,62.4667512 C43.8534288,62.7841288 43.6987096,63.0261256 43.3892664,63.1927488 C43.1194955,63.3276343 42.8001391,63.4406984 42.4311876,63.5319444 C42.0622362,63.6231905 41.723044,63.6688128 41.4136008,63.6688128 C40.7629768,63.6688128 40.1956728,63.5458309 39.711672,63.2998632 C39.2276712,63.0538956 38.8547581,62.7008183 38.5929216,62.2406208 C38.3310851,61.7804233 38.2001688,61.2408895 38.2001688,60.6220032 C38.2001688,60.0348547 38.3251344,59.5092059 38.5750692,59.0450412 C38.8250041,58.5808765 39.1741142,58.2198649 39.62241,57.9619956 C40.0707059,57.7041263 40.5765188,57.5751936 41.139864,57.5751936 C41.6873404,57.5751936 42.1673668,57.6942084 42.5799576,57.9322416 C42.9925485,58.1702748 43.3119049,58.5074834 43.5380364,58.9438776 C43.764168,59.3802718 43.877232,59.8920355 43.877232,60.479184 C43.877232,60.6616761 43.8355768,60.8025103 43.7522652,60.9016908 C43.6689536,61.0008713 43.5479552,61.0504608 43.3892664,61.0504608 L40.247244,61.0504608 C40.3027851,61.4313139 40.4257671,61.705048 40.6161936,61.8716712 C40.8066202,62.0382945 41.0882886,62.1216048 41.4612072,62.1216048 C41.6595682,62.1216048 41.8420576,62.0997854 42.0086808,62.056146 C42.1753041,62.0125066 42.3617606,61.9510156 42.568056,61.8716712 C42.6870726,61.8240646 42.8041038,61.7824094 42.9191532,61.7467044 C43.0342026,61.7109994 43.1393323,61.6931472 43.2345456,61.6931472 Z M41.199372,59.0033856 C40.9216666,59.0033856 40.6995057,59.0926467 40.5328824,59.2711716 C40.3662592,59.4496965 40.2670802,59.7095455 40.2353424,60.0507264 L42.1038936,60.0507264 C42.056287,59.3524957 41.7547828,59.0033856 41.199372,59.0033856 Z" id=".Vue" fill="#35495D"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 KiB

1
public/css/app.css vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,566 +1,189 @@
{
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/js/main.f0dd2285849b19c9738b.hot-update.js": "/js/main.f0dd2285849b19c9738b.hot-update.js",
"/js/main.30c840614840293dc7f3.hot-update.js": "/js/main.30c840614840293dc7f3.hot-update.js",
"/js/main.baeab24db012768a0402.hot-update.js": "/js/main.baeab24db012768a0402.hot-update.js",
"/js/main.2792e7c771a3b2ca4dac.hot-update.js": "/js/main.2792e7c771a3b2ca4dac.hot-update.js",
"/js/main.46c6a1748ca450af9adc.hot-update.js": "/js/main.46c6a1748ca450af9adc.hot-update.js",
"/js/main.7021f6d5324258d8ebc5.hot-update.js": "/js/main.7021f6d5324258d8ebc5.hot-update.js",
"/js/main.6b6e2ba6918d96a23764.hot-update.js": "/js/main.6b6e2ba6918d96a23764.hot-update.js",
"/js/main.aa5f2db2ab43203fb1f1.hot-update.js": "/js/main.aa5f2db2ab43203fb1f1.hot-update.js",
"/js/main.7410cba2d83e9ba21d68.hot-update.js": "/js/main.7410cba2d83e9ba21d68.hot-update.js",
"/js/main.1b2ce52c6c27f8a9e4d9.hot-update.js": "/js/main.1b2ce52c6c27f8a9e4d9.hot-update.js",
"/js/main.662faf4b0df239367a04.hot-update.js": "/js/main.662faf4b0df239367a04.hot-update.js",
"/js/main.ec3be61cae2ca71bd8d6.hot-update.js": "/js/main.ec3be61cae2ca71bd8d6.hot-update.js",
"/js/main.3de9d08bf0c30d6eedc6.hot-update.js": "/js/main.3de9d08bf0c30d6eedc6.hot-update.js",
"/js/main.4c4499f3d24471bd2f70.hot-update.js": "/js/main.4c4499f3d24471bd2f70.hot-update.js",
"/js/main.1d31530128751f278f69.hot-update.js": "/js/main.1d31530128751f278f69.hot-update.js",
"/js/main.64700a23f659bfdc9b7e.hot-update.js": "/js/main.64700a23f659bfdc9b7e.hot-update.js",
"/js/main.2e559c45ff050423d52b.hot-update.js": "/js/main.2e559c45ff050423d52b.hot-update.js",
"/js/main.95db0a971604a3fe1f3a.hot-update.js": "/js/main.95db0a971604a3fe1f3a.hot-update.js",
"/js/main.216d4d3c0bce7372b2af.hot-update.js": "/js/main.216d4d3c0bce7372b2af.hot-update.js",
"/js/main.0a26d055609771e12e7b.hot-update.js": "/js/main.0a26d055609771e12e7b.hot-update.js",
"/js/main.0bc6205aa065f8926d35.hot-update.js": "/js/main.0bc6205aa065f8926d35.hot-update.js",
"/js/main.2360cb1097d160d7553d.hot-update.js": "/js/main.2360cb1097d160d7553d.hot-update.js",
"/js/main.79fe5c33c208b5b59dd0.hot-update.js": "/js/main.79fe5c33c208b5b59dd0.hot-update.js",
"/js/main.d77289504096fba48459.hot-update.js": "/js/main.d77289504096fba48459.hot-update.js",
"/js/main.32b2a58b9257f15ddc86.hot-update.js": "/js/main.32b2a58b9257f15ddc86.hot-update.js",
"/js/main.94a4b86942ddf78a4cb2.hot-update.js": "/js/main.94a4b86942ddf78a4cb2.hot-update.js",
"/js/main.c2fc16c970e36222714c.hot-update.js": "/js/main.c2fc16c970e36222714c.hot-update.js",
"/js/main.314b3615fb9fa82090bb.hot-update.js": "/js/main.314b3615fb9fa82090bb.hot-update.js",
"/js/main.71a3bb64e8c91377b1c5.hot-update.js": "/js/main.71a3bb64e8c91377b1c5.hot-update.js",
"/js/main.d0d43894e5b80fed6c74.hot-update.js": "/js/main.d0d43894e5b80fed6c74.hot-update.js",
"/js/main.88b431e22d76dbbc3246.hot-update.js": "/js/main.88b431e22d76dbbc3246.hot-update.js",
"/js/main.c4286a034616a23c629c.hot-update.js": "/js/main.c4286a034616a23c629c.hot-update.js",
"/js/main.9ad4bbf338789019ddb2.hot-update.js": "/js/main.9ad4bbf338789019ddb2.hot-update.js",
"/js/main.21f758ef0acb0abd29e4.hot-update.js": "/js/main.21f758ef0acb0abd29e4.hot-update.js",
"/js/main.d0614ad1326ca461ee76.hot-update.js": "/js/main.d0614ad1326ca461ee76.hot-update.js",
"/js/main.5fd1bcab132365291835.hot-update.js": "/js/main.5fd1bcab132365291835.hot-update.js",
"/js/main.16d4ab7fdcd49696ed15.hot-update.js": "/js/main.16d4ab7fdcd49696ed15.hot-update.js",
"/js/main.8a67deca0ae31a44c9c8.hot-update.js": "/js/main.8a67deca0ae31a44c9c8.hot-update.js",
"/js/main.0b2a3db33d1e043c87fc.hot-update.js": "/js/main.0b2a3db33d1e043c87fc.hot-update.js",
"/js/main.3204937c7956dc992b27.hot-update.js": "/js/main.3204937c7956dc992b27.hot-update.js",
"/js/main.0c6a518f571fabe408e7.hot-update.js": "/js/main.0c6a518f571fabe408e7.hot-update.js",
"/js/main.65afbe99dc0bf6d534c3.hot-update.js": "/js/main.65afbe99dc0bf6d534c3.hot-update.js",
"/js/main.8c3b2a2e428fabf307f4.hot-update.js": "/js/main.8c3b2a2e428fabf307f4.hot-update.js",
"/js/main.ae53704c2672c871391d.hot-update.js": "/js/main.ae53704c2672c871391d.hot-update.js",
"/js/main.7ede2c209aabf980fe95.hot-update.js": "/js/main.7ede2c209aabf980fe95.hot-update.js",
"/js/main.6272a4eddeef2d02c2e3.hot-update.js": "/js/main.6272a4eddeef2d02c2e3.hot-update.js",
"/js/main.90dc393b61349a0b4ea4.hot-update.js": "/js/main.90dc393b61349a0b4ea4.hot-update.js",
"/js/main.60389846f2b6d7aeddf8.hot-update.js": "/js/main.60389846f2b6d7aeddf8.hot-update.js",
"/js/main.9d3a5779307244d6ad18.hot-update.js": "/js/main.9d3a5779307244d6ad18.hot-update.js",
"/js/main.2c1a358d8b2214c7cfcb.hot-update.js": "/js/main.2c1a358d8b2214c7cfcb.hot-update.js",
"/js/main.7fff7cb324244e5e98e0.hot-update.js": "/js/main.7fff7cb324244e5e98e0.hot-update.js",
"/js/main.1058e75f9d96707e857f.hot-update.js": "/js/main.1058e75f9d96707e857f.hot-update.js",
"/js/main.8c32d49e5267c01e65fd.hot-update.js": "/js/main.8c32d49e5267c01e65fd.hot-update.js",
"/js/main.20d81028d3bee987e946.hot-update.js": "/js/main.20d81028d3bee987e946.hot-update.js",
"/js/main.792674e58a61b3e67b9d.hot-update.js": "/js/main.792674e58a61b3e67b9d.hot-update.js",
"/js/main.475e5c217357cf01b4d3.hot-update.js": "/js/main.475e5c217357cf01b4d3.hot-update.js",
"/js/main.943b57b50fff3e8aadc2.hot-update.js": "/js/main.943b57b50fff3e8aadc2.hot-update.js",
"/js/main.eaad65ed471a34faf646.hot-update.js": "/js/main.eaad65ed471a34faf646.hot-update.js",
"/js/main.4e07230c47e8f9982652.hot-update.js": "/js/main.4e07230c47e8f9982652.hot-update.js",
"/js/main.5ba353f50c03c619ea51.hot-update.js": "/js/main.5ba353f50c03c619ea51.hot-update.js",
"/js/main.6b101a36fac3e75439ff.hot-update.js": "/js/main.6b101a36fac3e75439ff.hot-update.js",
"/js/main.b984b5f0f8209f800f3c.hot-update.js": "/js/main.b984b5f0f8209f800f3c.hot-update.js",
"/js/main.f712216382efa557501a.hot-update.js": "/js/main.f712216382efa557501a.hot-update.js",
"/js/main.ea16b28c404d6b58f2f3.hot-update.js": "/js/main.ea16b28c404d6b58f2f3.hot-update.js",
"/js/main.eb7fbd4f3258ca726129.hot-update.js": "/js/main.eb7fbd4f3258ca726129.hot-update.js",
"/js/main.3da116222d4dd130e14e.hot-update.js": "/js/main.3da116222d4dd130e14e.hot-update.js",
"/js/main.f35f94f663172837a5ba.hot-update.js": "/js/main.f35f94f663172837a5ba.hot-update.js",
"/js/main.41eed0545adce815f177.hot-update.js": "/js/main.41eed0545adce815f177.hot-update.js",
"/js/main.44a47ffbb0deabd3fae7.hot-update.js": "/js/main.44a47ffbb0deabd3fae7.hot-update.js",
"/js/main.c3eac946eddc9362a1e8.hot-update.js": "/js/main.c3eac946eddc9362a1e8.hot-update.js",
"/js/main.0515d6b0d557dd606ade.hot-update.js": "/js/main.0515d6b0d557dd606ade.hot-update.js",
"/js/main.68b963c0d19ae92bcb73.hot-update.js": "/js/main.68b963c0d19ae92bcb73.hot-update.js",
"/js/main.f12c431b24b7cbc73181.hot-update.js": "/js/main.f12c431b24b7cbc73181.hot-update.js",
"/js/main.3b477ce67d422513cec3.hot-update.js": "/js/main.3b477ce67d422513cec3.hot-update.js",
"/js/main.e80baeed568f7bd0e687.hot-update.js": "/js/main.e80baeed568f7bd0e687.hot-update.js",
"/js/main.65d34b94badf0c30e5e0.hot-update.js": "/js/main.65d34b94badf0c30e5e0.hot-update.js",
"/js/main.28c09479a320f468fea8.hot-update.js": "/js/main.28c09479a320f468fea8.hot-update.js",
"/js/main.ad6df723c2d6e7857b99.hot-update.js": "/js/main.ad6df723c2d6e7857b99.hot-update.js",
"/js/main.016d474770d931e5e8e9.hot-update.js": "/js/main.016d474770d931e5e8e9.hot-update.js",
"/js/main.f83485a7306a57ddf06b.hot-update.js": "/js/main.f83485a7306a57ddf06b.hot-update.js",
"/js/main.cb948aa6c346a0cc5807.hot-update.js": "/js/main.cb948aa6c346a0cc5807.hot-update.js",
"/js/main.8b2aed0bc92c97d54f19.hot-update.js": "/js/main.8b2aed0bc92c97d54f19.hot-update.js",
"/js/main.0436070af5fc674e4c0f.hot-update.js": "/js/main.0436070af5fc674e4c0f.hot-update.js",
"/js/main.efdd3d6e26a08bd7767e.hot-update.js": "/js/main.efdd3d6e26a08bd7767e.hot-update.js",
"/js/main.b30084412dcd6db58c1b.hot-update.js": "/js/main.b30084412dcd6db58c1b.hot-update.js",
"/js/main.a4a3d2a16abe182c1e55.hot-update.js": "/js/main.a4a3d2a16abe182c1e55.hot-update.js",
"/js/main.5d4d863a27c5bd2f85af.hot-update.js": "/js/main.5d4d863a27c5bd2f85af.hot-update.js",
"/js/main.55d2fe4f4974b9f37b63.hot-update.js": "/js/main.55d2fe4f4974b9f37b63.hot-update.js",
"/js/main.f97c818ac713a99945ea.hot-update.js": "/js/main.f97c818ac713a99945ea.hot-update.js",
"/js/main.9c57c147285be7c395f6.hot-update.js": "/js/main.9c57c147285be7c395f6.hot-update.js",
"/js/main.6b58d4de7b8d9dd760b9.hot-update.js": "/js/main.6b58d4de7b8d9dd760b9.hot-update.js",
"/js/main.80eb87094ad15cb78a34.hot-update.js": "/js/main.80eb87094ad15cb78a34.hot-update.js",
"/js/main.1842454bd2076080e9e2.hot-update.js": "/js/main.1842454bd2076080e9e2.hot-update.js",
"/js/main.ecf6b855be791c9c3fb2.hot-update.js": "/js/main.ecf6b855be791c9c3fb2.hot-update.js",
"/js/main.9a0a0d0b5bf3e45d1bbc.hot-update.js": "/js/main.9a0a0d0b5bf3e45d1bbc.hot-update.js",
"/js/main.d910e5b2df7aef2de62c.hot-update.js": "/js/main.d910e5b2df7aef2de62c.hot-update.js",
"/js/main.d072b0cd6966103be3d7.hot-update.js": "/js/main.d072b0cd6966103be3d7.hot-update.js",
"/js/main.5608c7c800f59c3f7e4d.hot-update.js": "/js/main.5608c7c800f59c3f7e4d.hot-update.js",
"/js/main.0f9d3217dd2c39c91559.hot-update.js": "/js/main.0f9d3217dd2c39c91559.hot-update.js",
"/js/main.68747bb2b038f5370901.hot-update.js": "/js/main.68747bb2b038f5370901.hot-update.js",
"/js/main.8efe04c36a454acfb6db.hot-update.js": "/js/main.8efe04c36a454acfb6db.hot-update.js",
"/js/main.ec3db2db9b93d134d5e9.hot-update.js": "/js/main.ec3db2db9b93d134d5e9.hot-update.js",
"/js/main.44e3cf00cb6f733b8b78.hot-update.js": "/js/main.44e3cf00cb6f733b8b78.hot-update.js",
"/js/main.5b72c929a07994dec2d2.hot-update.js": "/js/main.5b72c929a07994dec2d2.hot-update.js",
"/js/main.a14b0304ac027bf33491.hot-update.js": "/js/main.a14b0304ac027bf33491.hot-update.js",
"/js/main.a12db1bf061101b8439c.hot-update.js": "/js/main.a12db1bf061101b8439c.hot-update.js",
"/js/main.66d46fa3a94a10b80b5e.hot-update.js": "/js/main.66d46fa3a94a10b80b5e.hot-update.js",
"/js/main.e9e22d5e5172ebc0974c.hot-update.js": "/js/main.e9e22d5e5172ebc0974c.hot-update.js",
"/js/main.77133c66c88d709093cb.hot-update.js": "/js/main.77133c66c88d709093cb.hot-update.js",
"/js/main.8aede8f144dbcb5c83f3.hot-update.js": "/js/main.8aede8f144dbcb5c83f3.hot-update.js",
"/js/main.2bf5d93a3a92eb82331a.hot-update.js": "/js/main.2bf5d93a3a92eb82331a.hot-update.js",
"/js/main.afc11165d6c1f855fca5.hot-update.js": "/js/main.afc11165d6c1f855fca5.hot-update.js",
"/js/main.d73ac4a583fb01b41a04.hot-update.js": "/js/main.d73ac4a583fb01b41a04.hot-update.js",
"/js/main.b33e0aeb22dbfd3748a1.hot-update.js": "/js/main.b33e0aeb22dbfd3748a1.hot-update.js",
"/js/main.cec7999d7e8ccdc5e083.hot-update.js": "/js/main.cec7999d7e8ccdc5e083.hot-update.js",
"/js/main.4534405bcf60f3a1ef23.hot-update.js": "/js/main.4534405bcf60f3a1ef23.hot-update.js",
"/js/main.e28d3eb205324d26b1be.hot-update.js": "/js/main.e28d3eb205324d26b1be.hot-update.js",
"/js/main.097a3d03eb60be719d44.hot-update.js": "/js/main.097a3d03eb60be719d44.hot-update.js",
"/js/main.dc7963e8f42e7f1ffd7d.hot-update.js": "/js/main.dc7963e8f42e7f1ffd7d.hot-update.js",
"/js/main.296eef4c747e5ec51b9b.hot-update.js": "/js/main.296eef4c747e5ec51b9b.hot-update.js",
"/js/main.10c77b233c3675f8fd84.hot-update.js": "/js/main.10c77b233c3675f8fd84.hot-update.js",
"/js/main.e5c5ba1e804e63a3ef60.hot-update.js": "/js/main.e5c5ba1e804e63a3ef60.hot-update.js",
"/js/main.45c73b523a59d4253f0c.hot-update.js": "/js/main.45c73b523a59d4253f0c.hot-update.js",
"/js/main.33e4dae80f58bc99cdcc.hot-update.js": "/js/main.33e4dae80f58bc99cdcc.hot-update.js",
"/js/main.e483716524061687f6d8.hot-update.js": "/js/main.e483716524061687f6d8.hot-update.js",
"/js/main.7ec5f38edc15ecda18b6.hot-update.js": "/js/main.7ec5f38edc15ecda18b6.hot-update.js",
"/js/main.8684b04f211dec07e405.hot-update.js": "/js/main.8684b04f211dec07e405.hot-update.js",
"/js/main.7c72fa93cda56717012a.hot-update.js": "/js/main.7c72fa93cda56717012a.hot-update.js",
"/js/main.e8eef096d9d8cfc9e5f1.hot-update.js": "/js/main.e8eef096d9d8cfc9e5f1.hot-update.js",
"/js/main.fe94f3eecdf01f429bc8.hot-update.js": "/js/main.fe94f3eecdf01f429bc8.hot-update.js",
"/js/main.56888db448163fcc7e17.hot-update.js": "/js/main.56888db448163fcc7e17.hot-update.js",
"/js/main.6456bcb2f9ce5c979271.hot-update.js": "/js/main.6456bcb2f9ce5c979271.hot-update.js",
"/js/main.ae813b1d77c2051bc6cf.hot-update.js": "/js/main.ae813b1d77c2051bc6cf.hot-update.js",
"/js/main.6c1cde84c28dc4eb4f12.hot-update.js": "/js/main.6c1cde84c28dc4eb4f12.hot-update.js",
"/js/main.236bc25a26fc6d1d4ef6.hot-update.js": "/js/main.236bc25a26fc6d1d4ef6.hot-update.js",
"/js/main.6e0b9ad348cc40fb7baa.hot-update.js": "/js/main.6e0b9ad348cc40fb7baa.hot-update.js",
"/js/main.eb5a4a9a7960489d67c2.hot-update.js": "/js/main.eb5a4a9a7960489d67c2.hot-update.js",
"/js/main.4bb7b879c80ff3f492c7.hot-update.js": "/js/main.4bb7b879c80ff3f492c7.hot-update.js",
"/js/main.5e565174d8f11ceefbd1.hot-update.js": "/js/main.5e565174d8f11ceefbd1.hot-update.js",
"/js/main.71ba78d19a1d929fba56.hot-update.js": "/js/main.71ba78d19a1d929fba56.hot-update.js",
"/js/main.6bc14ca848b2554c851f.hot-update.js": "/js/main.6bc14ca848b2554c851f.hot-update.js",
"/js/main.68b2af7ddb39c05d4ae6.hot-update.js": "/js/main.68b2af7ddb39c05d4ae6.hot-update.js",
"/js/main.7310fc50a9c80522f51c.hot-update.js": "/js/main.7310fc50a9c80522f51c.hot-update.js",
"/js/main.6178eda43a2fe64ec0fc.hot-update.js": "/js/main.6178eda43a2fe64ec0fc.hot-update.js",
"/js/main.b9384ccb3c4f04580920.hot-update.js": "/js/main.b9384ccb3c4f04580920.hot-update.js",
"/js/main.18112c23de995fd1f1b8.hot-update.js": "/js/main.18112c23de995fd1f1b8.hot-update.js",
"/js/main.c2279638946d0341e1ae.hot-update.js": "/js/main.c2279638946d0341e1ae.hot-update.js",
"/js/main.25c01606bc2408b99247.hot-update.js": "/js/main.25c01606bc2408b99247.hot-update.js",
"/js/main.6e71c27854c5aa52dcc7.hot-update.js": "/js/main.6e71c27854c5aa52dcc7.hot-update.js",
"/js/main.a9b1112db01879c1ddf1.hot-update.js": "/js/main.a9b1112db01879c1ddf1.hot-update.js",
"/js/main.278ff32c7eb6b1686605.hot-update.js": "/js/main.278ff32c7eb6b1686605.hot-update.js",
"/js/main.ec6218f50fd8aec1af90.hot-update.js": "/js/main.ec6218f50fd8aec1af90.hot-update.js",
"/js/main.4d4425b1984b9f8549f5.hot-update.js": "/js/main.4d4425b1984b9f8549f5.hot-update.js",
"/js/main.c858c98b55372a51a740.hot-update.js": "/js/main.c858c98b55372a51a740.hot-update.js",
"/js/main.119e400ec324c2f3c874.hot-update.js": "/js/main.119e400ec324c2f3c874.hot-update.js",
"/js/main.4e29226d0990eb1264d9.hot-update.js": "/js/main.4e29226d0990eb1264d9.hot-update.js",
"/js/main.2407c987e5ca40eda91d.hot-update.js": "/js/main.2407c987e5ca40eda91d.hot-update.js",
"/js/main.bffb7b2d967321cfc0be.hot-update.js": "/js/main.bffb7b2d967321cfc0be.hot-update.js",
"/js/main.610f6172cc1f54aa9918.hot-update.js": "/js/main.610f6172cc1f54aa9918.hot-update.js",
"/js/main.e840c4f2ae55d146f1c2.hot-update.js": "/js/main.e840c4f2ae55d146f1c2.hot-update.js",
"/js/main.f2545b8d7429678a1cd0.hot-update.js": "/js/main.f2545b8d7429678a1cd0.hot-update.js",
"/js/main.cfe8979fcbd09582e3ed.hot-update.js": "/js/main.cfe8979fcbd09582e3ed.hot-update.js",
"/js/main.c6d9842d38a50be67bfd.hot-update.js": "/js/main.c6d9842d38a50be67bfd.hot-update.js",
"/js/main.4164ea28c8a6334fad20.hot-update.js": "/js/main.4164ea28c8a6334fad20.hot-update.js",
"/js/main.0d317ea6cb2e856425e1.hot-update.js": "/js/main.0d317ea6cb2e856425e1.hot-update.js",
"/js/main.1d06d75115cb0fb54842.hot-update.js": "/js/main.1d06d75115cb0fb54842.hot-update.js",
"/js/main.18bcecc102f0c65a2c82.hot-update.js": "/js/main.18bcecc102f0c65a2c82.hot-update.js",
"/js/main.66c1d665a24785ea0af2.hot-update.js": "/js/main.66c1d665a24785ea0af2.hot-update.js",
"/js/main.58382b47d7dda5e58d17.hot-update.js": "/js/main.58382b47d7dda5e58d17.hot-update.js",
"/js/main.531e28cd73107713d703.hot-update.js": "/js/main.531e28cd73107713d703.hot-update.js",
"/js/main.00577bf39f8219403132.hot-update.js": "/js/main.00577bf39f8219403132.hot-update.js",
"/js/main.566c0e50c4f0e55b015a.hot-update.js": "/js/main.566c0e50c4f0e55b015a.hot-update.js",
"/js/main.e5d056f6012294e3fb50.hot-update.js": "/js/main.e5d056f6012294e3fb50.hot-update.js",
"/js/main.09ae2ea7188e07b79d22.hot-update.js": "/js/main.09ae2ea7188e07b79d22.hot-update.js",
"/js/main.ee175463c4b435dc3893.hot-update.js": "/js/main.ee175463c4b435dc3893.hot-update.js",
"/js/main.e5a8f05fcf0d242c68f1.hot-update.js": "/js/main.e5a8f05fcf0d242c68f1.hot-update.js",
"/js/main.d18519e8d65cdf2a46f0.hot-update.js": "/js/main.d18519e8d65cdf2a46f0.hot-update.js",
"/js/main.e4ba3ce09fbef41804f2.hot-update.js": "/js/main.e4ba3ce09fbef41804f2.hot-update.js",
"/js/main.d8f3573adf75c230b4e8.hot-update.js": "/js/main.d8f3573adf75c230b4e8.hot-update.js",
"/js/main.683a605a13a04f4f1d2e.hot-update.js": "/js/main.683a605a13a04f4f1d2e.hot-update.js",
"/js/main.08670b96398b3c3d1a5f.hot-update.js": "/js/main.08670b96398b3c3d1a5f.hot-update.js",
"/js/main.bb04980629001cf04893.hot-update.js": "/js/main.bb04980629001cf04893.hot-update.js",
"/js/main.2312576c0d928521fbe1.hot-update.js": "/js/main.2312576c0d928521fbe1.hot-update.js",
"/js/main.bac0c4b43f391d44389a.hot-update.js": "/js/main.bac0c4b43f391d44389a.hot-update.js",
"/js/main.51ef4ebe13e57f4155c0.hot-update.js": "/js/main.51ef4ebe13e57f4155c0.hot-update.js",
"/js/main.5d5a7fdcd93f59773289.hot-update.js": "/js/main.5d5a7fdcd93f59773289.hot-update.js",
"/js/main.2de0d1966c4f6fe3edc7.hot-update.js": "/js/main.2de0d1966c4f6fe3edc7.hot-update.js",
"/js/main.f91075492bf0329a08ba.hot-update.js": "/js/main.f91075492bf0329a08ba.hot-update.js",
"/js/main.bf7f00ca5177cc84ba1f.hot-update.js": "/js/main.bf7f00ca5177cc84ba1f.hot-update.js",
"/js/main.a502ae39a8a07672f73a.hot-update.js": "/js/main.a502ae39a8a07672f73a.hot-update.js",
"/js/main.bc3378c2494a2925d38b.hot-update.js": "/js/main.bc3378c2494a2925d38b.hot-update.js",
"/js/main.16c09b2c6ae9560cd851.hot-update.js": "/js/main.16c09b2c6ae9560cd851.hot-update.js",
"/js/main.b4cdf2b7b6a5a9a92f08.hot-update.js": "/js/main.b4cdf2b7b6a5a9a92f08.hot-update.js",
"/js/main.c9cf0d0a9f2ada4a4c2e.hot-update.js": "/js/main.c9cf0d0a9f2ada4a4c2e.hot-update.js",
"/js/main.8cfe2367480fc1e099c4.hot-update.js": "/js/main.8cfe2367480fc1e099c4.hot-update.js",
"/js/main.8be5314746581e38cc63.hot-update.js": "/js/main.8be5314746581e38cc63.hot-update.js",
"/js/main.8b9deb482e35c650378d.hot-update.js": "/js/main.8b9deb482e35c650378d.hot-update.js",
"/js/main.255ab3a32f21bb2f4578.hot-update.js": "/js/main.255ab3a32f21bb2f4578.hot-update.js",
"/js/main.e76422bd76aa598a76f8.hot-update.js": "/js/main.e76422bd76aa598a76f8.hot-update.js",
"/js/main.eb944b7b493519e38021.hot-update.js": "/js/main.eb944b7b493519e38021.hot-update.js",
"/js/main.423a8be53df35ae47116.hot-update.js": "/js/main.423a8be53df35ae47116.hot-update.js",
"/js/main.41ef55c29462e55af75c.hot-update.js": "/js/main.41ef55c29462e55af75c.hot-update.js",
"/js/main.a5946afdf1838a59de3b.hot-update.js": "/js/main.a5946afdf1838a59de3b.hot-update.js",
"/js/main.4eb27ddf26d706b080a9.hot-update.js": "/js/main.4eb27ddf26d706b080a9.hot-update.js",
"/js/main.b9ddd446b5469aee9b03.hot-update.js": "/js/main.b9ddd446b5469aee9b03.hot-update.js",
"/js/main.13677f1bd64b45d10bcb.hot-update.js": "/js/main.13677f1bd64b45d10bcb.hot-update.js",
"/js/main.fe8b82e32cae1997f92a.hot-update.js": "/js/main.fe8b82e32cae1997f92a.hot-update.js",
"/js/main.fd0778f40e3d3fa3aacd.hot-update.js": "/js/main.fd0778f40e3d3fa3aacd.hot-update.js",
"/js/main.2b8fe3f0fd210206ae57.hot-update.js": "/js/main.2b8fe3f0fd210206ae57.hot-update.js",
"/js/main.e372760c4dc8d8e979ad.hot-update.js": "/js/main.e372760c4dc8d8e979ad.hot-update.js",
"/js/main.fc26761c32170aab6789.hot-update.js": "/js/main.fc26761c32170aab6789.hot-update.js",
"/js/main.43dc8bf80980c90cc01b.hot-update.js": "/js/main.43dc8bf80980c90cc01b.hot-update.js",
"/js/main.fe6d2cee50dba62a9d5a.hot-update.js": "/js/main.fe6d2cee50dba62a9d5a.hot-update.js",
"/js/main.398b230a508542ff63f0.hot-update.js": "/js/main.398b230a508542ff63f0.hot-update.js",
"/js/main.9e5a0e7c9b4c499ffe59.hot-update.js": "/js/main.9e5a0e7c9b4c499ffe59.hot-update.js",
"/js/main.aa4f78dcd8768822f967.hot-update.js": "/js/main.aa4f78dcd8768822f967.hot-update.js",
"/js/main.27527702aab4c8518624.hot-update.js": "/js/main.27527702aab4c8518624.hot-update.js",
"/js/main.15e3a3b0004798010d3a.hot-update.js": "/js/main.15e3a3b0004798010d3a.hot-update.js",
"/js/main.d411d3e4c11195c359e2.hot-update.js": "/js/main.d411d3e4c11195c359e2.hot-update.js",
"/js/main.19727a5e225e31e6dd70.hot-update.js": "/js/main.19727a5e225e31e6dd70.hot-update.js",
"/js/main.91c744875268c86ea835.hot-update.js": "/js/main.91c744875268c86ea835.hot-update.js",
"/js/main.63935e14a8fdb8e52c47.hot-update.js": "/js/main.63935e14a8fdb8e52c47.hot-update.js",
"/js/main.1a9f18e9b663bf4ffca6.hot-update.js": "/js/main.1a9f18e9b663bf4ffca6.hot-update.js",
"/js/main.be7d39c91f5a90f8a0e6.hot-update.js": "/js/main.be7d39c91f5a90f8a0e6.hot-update.js",
"/js/main.05a129383da26f577dc5.hot-update.js": "/js/main.05a129383da26f577dc5.hot-update.js",
"/js/main.fba13dee1b5fa30c23db.hot-update.js": "/js/main.fba13dee1b5fa30c23db.hot-update.js",
"/js/main.202e71633e27ba8a1996.hot-update.js": "/js/main.202e71633e27ba8a1996.hot-update.js",
"/js/main.1da452b384ebb7c06fcc.hot-update.js": "/js/main.1da452b384ebb7c06fcc.hot-update.js",
"/js/main.3ea63a79efce2a14a54f.hot-update.js": "/js/main.3ea63a79efce2a14a54f.hot-update.js",
"/js/main.86aaa8c6138d54a727d2.hot-update.js": "/js/main.86aaa8c6138d54a727d2.hot-update.js",
"/js/main.5873e49d2b69142fb21d.hot-update.js": "/js/main.5873e49d2b69142fb21d.hot-update.js",
"/js/main.31d892a0db32a4c4e439.hot-update.js": "/js/main.31d892a0db32a4c4e439.hot-update.js",
"/js/main.89f5f051f243e56b0fd8.hot-update.js": "/js/main.89f5f051f243e56b0fd8.hot-update.js",
"/js/main.5153463a853089d295bf.hot-update.js": "/js/main.5153463a853089d295bf.hot-update.js",
"/js/main.8e71087ec2709ea561b4.hot-update.js": "/js/main.8e71087ec2709ea561b4.hot-update.js",
"/js/main.5825bc79ad45e6ec141d.hot-update.js": "/js/main.5825bc79ad45e6ec141d.hot-update.js",
"/js/main.c1fa0879e40ea8f8ce4e.hot-update.js": "/js/main.c1fa0879e40ea8f8ce4e.hot-update.js",
"/js/main.619ec29d7dc9d67b8865.hot-update.js": "/js/main.619ec29d7dc9d67b8865.hot-update.js",
"/js/main.1bd7b35c95180f3d55d4.hot-update.js": "/js/main.1bd7b35c95180f3d55d4.hot-update.js",
"/js/main.627641e74cfddb6d135a.hot-update.js": "/js/main.627641e74cfddb6d135a.hot-update.js",
"/js/main.58ae7a565e2df9009ec8.hot-update.js": "/js/main.58ae7a565e2df9009ec8.hot-update.js",
"/js/main.b2d75c2da68c9246bebc.hot-update.js": "/js/main.b2d75c2da68c9246bebc.hot-update.js",
"/js/main.0e07733bb73b8ee8a4c4.hot-update.js": "/js/main.0e07733bb73b8ee8a4c4.hot-update.js",
"/js/main.7bb92ebdc8d0c4d8a56d.hot-update.js": "/js/main.7bb92ebdc8d0c4d8a56d.hot-update.js",
"/js/main.fed39e7edafa032f24ec.hot-update.js": "/js/main.fed39e7edafa032f24ec.hot-update.js",
"/js/main.c8a6919a118a3a98f794.hot-update.js": "/js/main.c8a6919a118a3a98f794.hot-update.js",
"/js/main.28ecb3f8d89aa40901eb.hot-update.js": "/js/main.28ecb3f8d89aa40901eb.hot-update.js",
"/js/main.e3dde21c88d67765ea12.hot-update.js": "/js/main.e3dde21c88d67765ea12.hot-update.js",
"/js/main.2754db8f9682e692bf76.hot-update.js": "/js/main.2754db8f9682e692bf76.hot-update.js",
"/js/main.c0cc5718b3fc1944df9b.hot-update.js": "/js/main.c0cc5718b3fc1944df9b.hot-update.js",
"/js/main.34b40477878c1cdd7e00.hot-update.js": "/js/main.34b40477878c1cdd7e00.hot-update.js",
"/js/main.42557b901ac29ee712f8.hot-update.js": "/js/main.42557b901ac29ee712f8.hot-update.js",
"/js/main.2282d8778ad6ce889e5d.hot-update.js": "/js/main.2282d8778ad6ce889e5d.hot-update.js",
"/js/main.5fe3a638b9122d1c0ae5.hot-update.js": "/js/main.5fe3a638b9122d1c0ae5.hot-update.js",
"/js/main.a2ce9a402c099cc6ecbb.hot-update.js": "/js/main.a2ce9a402c099cc6ecbb.hot-update.js",
"/js/main.9f41bd6370c186c11539.hot-update.js": "/js/main.9f41bd6370c186c11539.hot-update.js",
"/js/main.9296c759d78a62fe2955.hot-update.js": "/js/main.9296c759d78a62fe2955.hot-update.js",
"/js/main.21b81d5aa340252e3147.hot-update.js": "/js/main.21b81d5aa340252e3147.hot-update.js",
"/js/main.b444edd505f10827e1aa.hot-update.js": "/js/main.b444edd505f10827e1aa.hot-update.js",
"/js/main.c50232cf622aa4bb96fb.hot-update.js": "/js/main.c50232cf622aa4bb96fb.hot-update.js",
"/js/main.318957992e04be672d67.hot-update.js": "/js/main.318957992e04be672d67.hot-update.js",
"/js/main.2ba47f4a9fb40fb947e8.hot-update.js": "/js/main.2ba47f4a9fb40fb947e8.hot-update.js",
"/js/main.23a58072251ca9ec3bf0.hot-update.js": "/js/main.23a58072251ca9ec3bf0.hot-update.js",
"/js/main.b898bcd0b91ceb030ee5.hot-update.js": "/js/main.b898bcd0b91ceb030ee5.hot-update.js",
"/js/main.fc94d61953c1d15fbdea.hot-update.js": "/js/main.fc94d61953c1d15fbdea.hot-update.js",
"/js/main.0681408679d55a287127.hot-update.js": "/js/main.0681408679d55a287127.hot-update.js",
"/js/main.4dd37cb46c46bf654a1a.hot-update.js": "/js/main.4dd37cb46c46bf654a1a.hot-update.js",
"/js/main.6f65b9bc5ce4547a2722.hot-update.js": "/js/main.6f65b9bc5ce4547a2722.hot-update.js",
"/js/main.807ebac4f2bdf83c42bd.hot-update.js": "/js/main.807ebac4f2bdf83c42bd.hot-update.js",
"/js/main.4d45a815d6ce676eb0e1.hot-update.js": "/js/main.4d45a815d6ce676eb0e1.hot-update.js",
"/js/main.7059c3aac6f3463ebafb.hot-update.js": "/js/main.7059c3aac6f3463ebafb.hot-update.js",
"/js/main.59cdbe36313b6b56411b.hot-update.js": "/js/main.59cdbe36313b6b56411b.hot-update.js",
"/js/main.07d11a1cedd05fda991b.hot-update.js": "/js/main.07d11a1cedd05fda991b.hot-update.js",
"/js/main.c50936fd2fffbfa4e081.hot-update.js": "/js/main.c50936fd2fffbfa4e081.hot-update.js",
"/js/main.7969c08d24c0989ad813.hot-update.js": "/js/main.7969c08d24c0989ad813.hot-update.js",
"/js/main.d2ec90be7e3df9b745a3.hot-update.js": "/js/main.d2ec90be7e3df9b745a3.hot-update.js",
"/js/main.50c6ee58d447b404edca.hot-update.js": "/js/main.50c6ee58d447b404edca.hot-update.js",
"/js/main.08516ac1bd220c5667dd.hot-update.js": "/js/main.08516ac1bd220c5667dd.hot-update.js",
"/js/main.44bb51696ee307563cf3.hot-update.js": "/js/main.44bb51696ee307563cf3.hot-update.js",
"/js/main.268b3aae32768b3a0422.hot-update.js": "/js/main.268b3aae32768b3a0422.hot-update.js",
"/js/main.e86dc920f2e7306349b5.hot-update.js": "/js/main.e86dc920f2e7306349b5.hot-update.js",
"/js/main.60f8c1ea286edb8b9f32.hot-update.js": "/js/main.60f8c1ea286edb8b9f32.hot-update.js",
"/js/main.55f5afa716c5a3e83c0d.hot-update.js": "/js/main.55f5afa716c5a3e83c0d.hot-update.js",
"/js/main.a1ec11cb3460beb4f3cb.hot-update.js": "/js/main.a1ec11cb3460beb4f3cb.hot-update.js",
"/js/main.0299ec18b8410117d768.hot-update.js": "/js/main.0299ec18b8410117d768.hot-update.js",
"/js/main.82fc7799f3e8b648c580.hot-update.js": "/js/main.82fc7799f3e8b648c580.hot-update.js",
"/js/main.f7a5d88ae80365207681.hot-update.js": "/js/main.f7a5d88ae80365207681.hot-update.js",
"/js/main.7dfbdc73dad584ff8896.hot-update.js": "/js/main.7dfbdc73dad584ff8896.hot-update.js",
"/js/main.99efc1c2fd33bd57406e.hot-update.js": "/js/main.99efc1c2fd33bd57406e.hot-update.js",
"/js/main.fa7d90a7fbf08cff15c7.hot-update.js": "/js/main.fa7d90a7fbf08cff15c7.hot-update.js",
"/js/main.9e787f387e4baae52e9b.hot-update.js": "/js/main.9e787f387e4baae52e9b.hot-update.js",
"/js/main.7c96e438d31e7d958df5.hot-update.js": "/js/main.7c96e438d31e7d958df5.hot-update.js",
"/js/main.c2468899b8a44146b3b8.hot-update.js": "/js/main.c2468899b8a44146b3b8.hot-update.js",
"/js/main.54b9ed2b135420cf9c51.hot-update.js": "/js/main.54b9ed2b135420cf9c51.hot-update.js",
"/js/main.95fc1d4399e3e29f94e7.hot-update.js": "/js/main.95fc1d4399e3e29f94e7.hot-update.js",
"/js/main.98f609ca9af079fc8721.hot-update.js": "/js/main.98f609ca9af079fc8721.hot-update.js",
"/js/main.0123b7b215ed0c9db93c.hot-update.js": "/js/main.0123b7b215ed0c9db93c.hot-update.js",
"/js/main.d1de1152b2c1df596774.hot-update.js": "/js/main.d1de1152b2c1df596774.hot-update.js",
"/js/main.ae743a639a6a2cb57774.hot-update.js": "/js/main.ae743a639a6a2cb57774.hot-update.js",
"/js/main.7537232273609502a67f.hot-update.js": "/js/main.7537232273609502a67f.hot-update.js",
"/js/main.045e4e76c70a19c933a6.hot-update.js": "/js/main.045e4e76c70a19c933a6.hot-update.js",
"/js/main.49fb64e2753305d4f3ba.hot-update.js": "/js/main.49fb64e2753305d4f3ba.hot-update.js",
"/js/main.c8ff80ed0419184655b6.hot-update.js": "/js/main.c8ff80ed0419184655b6.hot-update.js",
"/js/main.7b0feb32715849803aa4.hot-update.js": "/js/main.7b0feb32715849803aa4.hot-update.js",
"/js/main.0fab80d432567a17794a.hot-update.js": "/js/main.0fab80d432567a17794a.hot-update.js",
"/js/main.231619bd91b19e916b76.hot-update.js": "/js/main.231619bd91b19e916b76.hot-update.js",
"/js/main.13309b08f1693d3968da.hot-update.js": "/js/main.13309b08f1693d3968da.hot-update.js",
"/js/main.4c66bc31565cff85558c.hot-update.js": "/js/main.4c66bc31565cff85558c.hot-update.js",
"/js/main.c35e081f7bd880f53695.hot-update.js": "/js/main.c35e081f7bd880f53695.hot-update.js",
"/js/main.0161f479a4f3f69101a2.hot-update.js": "/js/main.0161f479a4f3f69101a2.hot-update.js",
"/js/main.3e5aa259fd75db2d66f6.hot-update.js": "/js/main.3e5aa259fd75db2d66f6.hot-update.js",
"/js/main.ac9aa21a56a3efb13aed.hot-update.js": "/js/main.ac9aa21a56a3efb13aed.hot-update.js",
"/js/main.8748b2665777da1b0ebd.hot-update.js": "/js/main.8748b2665777da1b0ebd.hot-update.js",
"/js/main.1eb351b76769a2c6c31c.hot-update.js": "/js/main.1eb351b76769a2c6c31c.hot-update.js",
"/js/main.6c4a571d49a7b4fb897d.hot-update.js": "/js/main.6c4a571d49a7b4fb897d.hot-update.js",
"/js/main.98b0ca929029e790753d.hot-update.js": "/js/main.98b0ca929029e790753d.hot-update.js",
"/js/main.c8021f6d0cc641918362.hot-update.js": "/js/main.c8021f6d0cc641918362.hot-update.js",
"/js/main.8304a04849081cb0d1ab.hot-update.js": "/js/main.8304a04849081cb0d1ab.hot-update.js",
"/js/main.8c3f1fa2dba8c3d4acba.hot-update.js": "/js/main.8c3f1fa2dba8c3d4acba.hot-update.js",
"/js/main.01d31e6582e6927007cf.hot-update.js": "/js/main.01d31e6582e6927007cf.hot-update.js",
"/js/main.a1bfbaa83f8f3c6d7e37.hot-update.js": "/js/main.a1bfbaa83f8f3c6d7e37.hot-update.js",
"/js/main.c64fa6ce3635e0617207.hot-update.js": "/js/main.c64fa6ce3635e0617207.hot-update.js",
"/js/main.373c055ba83895cefa0a.hot-update.js": "/js/main.373c055ba83895cefa0a.hot-update.js",
"/js/main.26d37669a09fb1f35e38.hot-update.js": "/js/main.26d37669a09fb1f35e38.hot-update.js",
"/js/main.ca1d2b9e93927c1b70a5.hot-update.js": "/js/main.ca1d2b9e93927c1b70a5.hot-update.js",
"/js/main.1481e8ced54a5907a3d6.hot-update.js": "/js/main.1481e8ced54a5907a3d6.hot-update.js",
"/js/main.2df9127960d4e1a1b6ee.hot-update.js": "/js/main.2df9127960d4e1a1b6ee.hot-update.js",
"/js/main.faa87537f3fbed4a38b2.hot-update.js": "/js/main.faa87537f3fbed4a38b2.hot-update.js",
"/js/main.6afc508c62ddb0a5760b.hot-update.js": "/js/main.6afc508c62ddb0a5760b.hot-update.js",
"/js/main.1e1dc98729a4ba7a5c41.hot-update.js": "/js/main.1e1dc98729a4ba7a5c41.hot-update.js",
"/js/main.51fcf632edc0ec42ed37.hot-update.js": "/js/main.51fcf632edc0ec42ed37.hot-update.js",
"/js/main.70f60bbb209e7eaef3dc.hot-update.js": "/js/main.70f60bbb209e7eaef3dc.hot-update.js",
"/js/main.27782cb1df26752bd4e6.hot-update.js": "/js/main.27782cb1df26752bd4e6.hot-update.js",
"/js/main.bbb9384438c52aa15a27.hot-update.js": "/js/main.bbb9384438c52aa15a27.hot-update.js",
"/js/main.b83f24b4d6b8af6069bf.hot-update.js": "/js/main.b83f24b4d6b8af6069bf.hot-update.js",
"/js/main.ecf5258f66610e71b27f.hot-update.js": "/js/main.ecf5258f66610e71b27f.hot-update.js",
"/js/main.3c635fd17fdbfccc0f92.hot-update.js": "/js/main.3c635fd17fdbfccc0f92.hot-update.js",
"/js/main.53c156ea90c38a7161fb.hot-update.js": "/js/main.53c156ea90c38a7161fb.hot-update.js",
"/js/main.2ad56df11fd996981096.hot-update.js": "/js/main.2ad56df11fd996981096.hot-update.js",
"/js/main.41e922f8cacad9ddf36c.hot-update.js": "/js/main.41e922f8cacad9ddf36c.hot-update.js",
"/js/main.c8a3c1760c50a0e67555.hot-update.js": "/js/main.c8a3c1760c50a0e67555.hot-update.js",
"/js/main.df3a0c8353e1318b9e1d.hot-update.js": "/js/main.df3a0c8353e1318b9e1d.hot-update.js",
"/js/main.79a9a741787b8c709cd4.hot-update.js": "/js/main.79a9a741787b8c709cd4.hot-update.js",
"/js/main.25b1ccd5e6b6d954be8b.hot-update.js": "/js/main.25b1ccd5e6b6d954be8b.hot-update.js",
"/js/main.cb2c1d9444f4f730acec.hot-update.js": "/js/main.cb2c1d9444f4f730acec.hot-update.js",
"/js/main.edadb738c9a23a08a2a9.hot-update.js": "/js/main.edadb738c9a23a08a2a9.hot-update.js",
"/js/main.09834b0f972615ee316f.hot-update.js": "/js/main.09834b0f972615ee316f.hot-update.js",
"/js/main.e4c5605de80964a16dd4.hot-update.js": "/js/main.e4c5605de80964a16dd4.hot-update.js",
"/js/main.687a95c27fbb50f79d88.hot-update.js": "/js/main.687a95c27fbb50f79d88.hot-update.js",
"/js/main.7ef20181a1db236c3814.hot-update.js": "/js/main.7ef20181a1db236c3814.hot-update.js",
"/js/main.683cb965093a8296b5ac.hot-update.js": "/js/main.683cb965093a8296b5ac.hot-update.js",
"/js/main.a6fc6c46bba6683b8a7c.hot-update.js": "/js/main.a6fc6c46bba6683b8a7c.hot-update.js",
"/js/main.a164bf1faea18daa9877.hot-update.js": "/js/main.a164bf1faea18daa9877.hot-update.js",
"/js/main.f570d1a50c3eeb6a1d89.hot-update.js": "/js/main.f570d1a50c3eeb6a1d89.hot-update.js",
"/js/main.c435d48bd7d0b514b5f4.hot-update.js": "/js/main.c435d48bd7d0b514b5f4.hot-update.js",
"/js/main.e735cfb65741a446e3d1.hot-update.js": "/js/main.e735cfb65741a446e3d1.hot-update.js",
"/js/main.0444204855bbb44b7c8e.hot-update.js": "/js/main.0444204855bbb44b7c8e.hot-update.js",
"/js/main.605a0d6455142b0c4514.hot-update.js": "/js/main.605a0d6455142b0c4514.hot-update.js",
"/js/main.0342806f57c9fdd1defe.hot-update.js": "/js/main.0342806f57c9fdd1defe.hot-update.js",
"/js/main.a4a82fec392e861d54fc.hot-update.js": "/js/main.a4a82fec392e861d54fc.hot-update.js",
"/js/main.41823595d4d0f9063561.hot-update.js": "/js/main.41823595d4d0f9063561.hot-update.js",
"/js/main.d89d7e44838b8ef66c68.hot-update.js": "/js/main.d89d7e44838b8ef66c68.hot-update.js",
"/js/main.15b3b0b92485c0aece2a.hot-update.js": "/js/main.15b3b0b92485c0aece2a.hot-update.js",
"/js/main.3e83f3ffcb022d84669a.hot-update.js": "/js/main.3e83f3ffcb022d84669a.hot-update.js",
"/js/main.df00bba9ff50a028d011.hot-update.js": "/js/main.df00bba9ff50a028d011.hot-update.js",
"/js/main.6c87140ba22bbd89474d.hot-update.js": "/js/main.6c87140ba22bbd89474d.hot-update.js",
"/js/main.d536a1797b8d9483cbb9.hot-update.js": "/js/main.d536a1797b8d9483cbb9.hot-update.js",
"/js/main.a6282e9607c6e6e50ea5.hot-update.js": "/js/main.a6282e9607c6e6e50ea5.hot-update.js",
"/js/main.6f55d72395da5228370f.hot-update.js": "/js/main.6f55d72395da5228370f.hot-update.js",
"/js/main.e17e99d2671d3f20f97e.hot-update.js": "/js/main.e17e99d2671d3f20f97e.hot-update.js",
"/js/main.f68bc487d731c564c162.hot-update.js": "/js/main.f68bc487d731c564c162.hot-update.js",
"/js/main.12bdd0021e2e8d527ad0.hot-update.js": "/js/main.12bdd0021e2e8d527ad0.hot-update.js",
"/js/main.0f67ffb87ae2d28b1cbc.hot-update.js": "/js/main.0f67ffb87ae2d28b1cbc.hot-update.js",
"/js/main.b42e2a8138b361ed0f0a.hot-update.js": "/js/main.b42e2a8138b361ed0f0a.hot-update.js",
"/js/main.2d3254a867c2c29d638a.hot-update.js": "/js/main.2d3254a867c2c29d638a.hot-update.js",
"/js/main.2b2e32f1cd927fc7a84a.hot-update.js": "/js/main.2b2e32f1cd927fc7a84a.hot-update.js",
"/js/main.2b3a7988d87ebdcb6bf5.hot-update.js": "/js/main.2b3a7988d87ebdcb6bf5.hot-update.js",
"/js/main.0ea637a481676621585a.hot-update.js": "/js/main.0ea637a481676621585a.hot-update.js",
"/js/main.f4b245ab0d8c7fa4569c.hot-update.js": "/js/main.f4b245ab0d8c7fa4569c.hot-update.js",
"/js/main.b1c2486a0c2e5b61aa77.hot-update.js": "/js/main.b1c2486a0c2e5b61aa77.hot-update.js",
"/js/main.2f899e679c89236f2586.hot-update.js": "/js/main.2f899e679c89236f2586.hot-update.js",
"/js/main.b55b74252934929e6d16.hot-update.js": "/js/main.b55b74252934929e6d16.hot-update.js",
"/js/main.55ca25879651d89b88c7.hot-update.js": "/js/main.55ca25879651d89b88c7.hot-update.js",
"/js/main.b8516109da93d4cf1fc6.hot-update.js": "/js/main.b8516109da93d4cf1fc6.hot-update.js",
"/js/main.ad333bb5a54f643c09ac.hot-update.js": "/js/main.ad333bb5a54f643c09ac.hot-update.js",
"/js/main.acfc2a3a4a6508f55438.hot-update.js": "/js/main.acfc2a3a4a6508f55438.hot-update.js",
"/js/main.d72b205b9fd0b32374d0.hot-update.js": "/js/main.d72b205b9fd0b32374d0.hot-update.js",
"/js/main.36c26d380d5f508e9c7a.hot-update.js": "/js/main.36c26d380d5f508e9c7a.hot-update.js",
"/js/main.4b5d081149d52f72dac1.hot-update.js": "/js/main.4b5d081149d52f72dac1.hot-update.js",
"/js/main.71be32f44c41b288cd57.hot-update.js": "/js/main.71be32f44c41b288cd57.hot-update.js",
"/js/main.0fda690821ac31e8fe98.hot-update.js": "/js/main.0fda690821ac31e8fe98.hot-update.js",
"/js/main.e5907bde65ad2f17c6ba.hot-update.js": "/js/main.e5907bde65ad2f17c6ba.hot-update.js",
"/js/main.59233718ebda92d43597.hot-update.js": "/js/main.59233718ebda92d43597.hot-update.js",
"/js/main.6efd2c8c5ed4f9850efd.hot-update.js": "/js/main.6efd2c8c5ed4f9850efd.hot-update.js",
"/js/main.b2fbeba8d37f1294993b.hot-update.js": "/js/main.b2fbeba8d37f1294993b.hot-update.js",
"/js/main.9616f1620f73c99c880f.hot-update.js": "/js/main.9616f1620f73c99c880f.hot-update.js",
"/js/main.ba73a8f0073040a78281.hot-update.js": "/js/main.ba73a8f0073040a78281.hot-update.js",
"/js/main.56ba1d7589810617a6d0.hot-update.js": "/js/main.56ba1d7589810617a6d0.hot-update.js",
"/js/main.6cc488b19e15bda40fb1.hot-update.js": "/js/main.6cc488b19e15bda40fb1.hot-update.js",
"/js/main.0f4651b96a5b5e47917c.hot-update.js": "/js/main.0f4651b96a5b5e47917c.hot-update.js",
"/js/main.795ad933ae7749d7e6cd.hot-update.js": "/js/main.795ad933ae7749d7e6cd.hot-update.js",
"/js/main.5195c50bb162d0a3c4b8.hot-update.js": "/js/main.5195c50bb162d0a3c4b8.hot-update.js",
"/js/main.f882130fb31a40c938e2.hot-update.js": "/js/main.f882130fb31a40c938e2.hot-update.js",
"/js/main.68754065ecbc5d689fc5.hot-update.js": "/js/main.68754065ecbc5d689fc5.hot-update.js",
"/js/main.637fd2412da08d4792c4.hot-update.js": "/js/main.637fd2412da08d4792c4.hot-update.js",
"/js/main.cb326c7ec1bd5cc0db94.hot-update.js": "/js/main.cb326c7ec1bd5cc0db94.hot-update.js",
"/js/main.778dc3ae83c2aa34c6d1.hot-update.js": "/js/main.778dc3ae83c2aa34c6d1.hot-update.js",
"/js/main.c7a01d1014751c673b2e.hot-update.js": "/js/main.c7a01d1014751c673b2e.hot-update.js",
"/js/main.f5c32a572fc641567b6c.hot-update.js": "/js/main.f5c32a572fc641567b6c.hot-update.js",
"/js/main.29cbfc6cd04d27ae2d51.hot-update.js": "/js/main.29cbfc6cd04d27ae2d51.hot-update.js",
"/js/main.aecfa122c1448c7b839d.hot-update.js": "/js/main.aecfa122c1448c7b839d.hot-update.js",
"/js/main.f38e27796734d0c37432.hot-update.js": "/js/main.f38e27796734d0c37432.hot-update.js",
"/js/main.54477c304a7993300aa5.hot-update.js": "/js/main.54477c304a7993300aa5.hot-update.js",
"/js/main.368014de6a9ca3699926.hot-update.js": "/js/main.368014de6a9ca3699926.hot-update.js",
"/js/main.2fa76e11f97a58fa2f2e.hot-update.js": "/js/main.2fa76e11f97a58fa2f2e.hot-update.js",
"/js/main.4ca2ffbaace725f6be9f.hot-update.js": "/js/main.4ca2ffbaace725f6be9f.hot-update.js",
"/js/main.f03abc5c50584d8b603a.hot-update.js": "/js/main.f03abc5c50584d8b603a.hot-update.js",
"/js/main.2e1d7ba332026d7a6ef1.hot-update.js": "/js/main.2e1d7ba332026d7a6ef1.hot-update.js",
"/js/main.08459d483f917e2ccb56.hot-update.js": "/js/main.08459d483f917e2ccb56.hot-update.js",
"/js/main.62889ab2545f4f5fa8ec.hot-update.js": "/js/main.62889ab2545f4f5fa8ec.hot-update.js",
"/js/main.459e07a9193338fb73e9.hot-update.js": "/js/main.459e07a9193338fb73e9.hot-update.js",
"/js/main.0b0058849530687b5834.hot-update.js": "/js/main.0b0058849530687b5834.hot-update.js",
"/js/main.e0006ab7c947f6c8fac7.hot-update.js": "/js/main.e0006ab7c947f6c8fac7.hot-update.js",
"/js/main.caf844ea8980b4a6d75c.hot-update.js": "/js/main.caf844ea8980b4a6d75c.hot-update.js",
"/js/main.981f851dc052538b82dc.hot-update.js": "/js/main.981f851dc052538b82dc.hot-update.js",
"/js/main.44eae81e83de96cacfa5.hot-update.js": "/js/main.44eae81e83de96cacfa5.hot-update.js",
"/js/main.aac7363de8c8c8e4a9da.hot-update.js": "/js/main.aac7363de8c8c8e4a9da.hot-update.js",
"/js/main.100ec2100e98021c050b.hot-update.js": "/js/main.100ec2100e98021c050b.hot-update.js",
"/js/main.59a17ac340a89773c858.hot-update.js": "/js/main.59a17ac340a89773c858.hot-update.js",
"/js/main.37276c41e2a288c722dc.hot-update.js": "/js/main.37276c41e2a288c722dc.hot-update.js",
"/js/main.c8d9e749175bdac637c3.hot-update.js": "/js/main.c8d9e749175bdac637c3.hot-update.js",
"/js/main.04ea7c7bd4a324567866.hot-update.js": "/js/main.04ea7c7bd4a324567866.hot-update.js",
"/js/main.c0fd373051731de1b93a.hot-update.js": "/js/main.c0fd373051731de1b93a.hot-update.js",
"/js/main.d80da7eca97291b9eccd.hot-update.js": "/js/main.d80da7eca97291b9eccd.hot-update.js",
"/js/main.d53a4c27df556cd9b080.hot-update.js": "/js/main.d53a4c27df556cd9b080.hot-update.js",
"/js/main.6f525def94006f7e64e1.hot-update.js": "/js/main.6f525def94006f7e64e1.hot-update.js",
"/js/main.5f1b7c9dc5204441e6c8.hot-update.js": "/js/main.5f1b7c9dc5204441e6c8.hot-update.js",
"/js/main.531df6fa9543300cf5f4.hot-update.js": "/js/main.531df6fa9543300cf5f4.hot-update.js",
"/js/main.1dbf0448f74577f740dd.hot-update.js": "/js/main.1dbf0448f74577f740dd.hot-update.js",
"/js/main.aa525cc40649d789d812.hot-update.js": "/js/main.aa525cc40649d789d812.hot-update.js",
"/js/main.95fb7036f880090f28cd.hot-update.js": "/js/main.95fb7036f880090f28cd.hot-update.js",
"/js/main.6b605db6b024250102d5.hot-update.js": "/js/main.6b605db6b024250102d5.hot-update.js",
"/js/main.f7a9769e81ee40315a6b.hot-update.js": "/js/main.f7a9769e81ee40315a6b.hot-update.js",
"/js/main.23709ed712f8a9129fd0.hot-update.js": "/js/main.23709ed712f8a9129fd0.hot-update.js",
"/js/main.d4582d2e4d482aba3c40.hot-update.js": "/js/main.d4582d2e4d482aba3c40.hot-update.js",
"/js/main.493a5984dd9705c14b25.hot-update.js": "/js/main.493a5984dd9705c14b25.hot-update.js",
"/js/main.6984223b3d5d4ef7dad3.hot-update.js": "/js/main.6984223b3d5d4ef7dad3.hot-update.js",
"/js/main.93abdfe0acba90b1179a.hot-update.js": "/js/main.93abdfe0acba90b1179a.hot-update.js",
"/js/main.a67b6b517fefd7410a5f.hot-update.js": "/js/main.a67b6b517fefd7410a5f.hot-update.js",
"/js/main.eddcfc00dd0f1dd5e285.hot-update.js": "/js/main.eddcfc00dd0f1dd5e285.hot-update.js",
"/js/main.c17710eec047258fa4f1.hot-update.js": "/js/main.c17710eec047258fa4f1.hot-update.js",
"/js/main.fc414c5eb46ce9a95091.hot-update.js": "/js/main.fc414c5eb46ce9a95091.hot-update.js",
"/js/main.7b479df63a04eb5e90b9.hot-update.js": "/js/main.7b479df63a04eb5e90b9.hot-update.js",
"/js/main.4d13cf3d9f1d9de31180.hot-update.js": "/js/main.4d13cf3d9f1d9de31180.hot-update.js",
"/js/main.fca80faa319ed8728c71.hot-update.js": "/js/main.fca80faa319ed8728c71.hot-update.js",
"/js/main.fc0a99227b69807317f4.hot-update.js": "/js/main.fc0a99227b69807317f4.hot-update.js",
"/js/main.0d417273dd3de4bed526.hot-update.js": "/js/main.0d417273dd3de4bed526.hot-update.js",
"/js/main.4f3fb2b5b8b97f86d36b.hot-update.js": "/js/main.4f3fb2b5b8b97f86d36b.hot-update.js",
"/js/main.1c65f03dfcf14bbee3c4.hot-update.js": "/js/main.1c65f03dfcf14bbee3c4.hot-update.js",
"/js/main.8ad6d8cc1f73fb0c2194.hot-update.js": "/js/main.8ad6d8cc1f73fb0c2194.hot-update.js",
"/js/main.b548a07f92fef02f7752.hot-update.js": "/js/main.b548a07f92fef02f7752.hot-update.js",
"/js/main.d0bc6eae54635979be12.hot-update.js": "/js/main.d0bc6eae54635979be12.hot-update.js",
"/js/main.497efeaffa2186dcd1a9.hot-update.js": "/js/main.497efeaffa2186dcd1a9.hot-update.js",
"/js/main.58ea69a2613beaa69a33.hot-update.js": "/js/main.58ea69a2613beaa69a33.hot-update.js",
"/js/main.029b8de2f8edddf3bdf2.hot-update.js": "/js/main.029b8de2f8edddf3bdf2.hot-update.js",
"/js/main.e9e6564fe1b5d759c754.hot-update.js": "/js/main.e9e6564fe1b5d759c754.hot-update.js",
"/js/main.fe3719c16b468acafba9.hot-update.js": "/js/main.fe3719c16b468acafba9.hot-update.js",
"/js/main.c2180f7cd6644e35c6f0.hot-update.js": "/js/main.c2180f7cd6644e35c6f0.hot-update.js",
"/js/main.82511e72c26962217114.hot-update.js": "/js/main.82511e72c26962217114.hot-update.js",
"/js/main.2bfa9ccc70783b76cf23.hot-update.js": "/js/main.2bfa9ccc70783b76cf23.hot-update.js",
"/js/main.998bfd269fc4bf02224f.hot-update.js": "/js/main.998bfd269fc4bf02224f.hot-update.js",
"/js/main.a4845af77330fdbc5b51.hot-update.js": "/js/main.a4845af77330fdbc5b51.hot-update.js",
"/js/main.b4b203f47b3c4497df09.hot-update.js": "/js/main.b4b203f47b3c4497df09.hot-update.js",
"/js/main.11215a035ecd0e1b5338.hot-update.js": "/js/main.11215a035ecd0e1b5338.hot-update.js",
"/js/main.c71a91daa1474dde4e94.hot-update.js": "/js/main.c71a91daa1474dde4e94.hot-update.js",
"/js/main.d5b0f686bf3160b4ee5f.hot-update.js": "/js/main.d5b0f686bf3160b4ee5f.hot-update.js",
"/js/main.e57ea5b80dacedc53b1a.hot-update.js": "/js/main.e57ea5b80dacedc53b1a.hot-update.js",
"/js/main.90bf99bcc5e14db77b9a.hot-update.js": "/js/main.90bf99bcc5e14db77b9a.hot-update.js",
"/js/main.135a5be67d9e17e9f79b.hot-update.js": "/js/main.135a5be67d9e17e9f79b.hot-update.js",
"/js/main.f08cfaa3644ccf61ea03.hot-update.js": "/js/main.f08cfaa3644ccf61ea03.hot-update.js",
"/js/main.1d73646a4348d3b5802d.hot-update.js": "/js/main.1d73646a4348d3b5802d.hot-update.js",
"/js/main.525fad6ad23ba628265d.hot-update.js": "/js/main.525fad6ad23ba628265d.hot-update.js",
"/js/main.b82210eb3d6976e22a1c.hot-update.js": "/js/main.b82210eb3d6976e22a1c.hot-update.js",
"/js/main.425e38acc877096dd4a9.hot-update.js": "/js/main.425e38acc877096dd4a9.hot-update.js",
"/js/main.3ea0ac7aafed67b99807.hot-update.js": "/js/main.3ea0ac7aafed67b99807.hot-update.js",
"/js/main.6722c684a2f100e82dbc.hot-update.js": "/js/main.6722c684a2f100e82dbc.hot-update.js",
"/js/main.225acd7e9ea9cb8ea8fc.hot-update.js": "/js/main.225acd7e9ea9cb8ea8fc.hot-update.js",
"/js/main.2fc5146bd0d5ffdebe7c.hot-update.js": "/js/main.2fc5146bd0d5ffdebe7c.hot-update.js",
"/js/main.c0895930a308961c27c4.hot-update.js": "/js/main.c0895930a308961c27c4.hot-update.js",
"/js/main.947535730147a47eac72.hot-update.js": "/js/main.947535730147a47eac72.hot-update.js",
"/js/main.11fa051bc6658f67efd6.hot-update.js": "/js/main.11fa051bc6658f67efd6.hot-update.js",
"/js/main.85ee4ef76690c57f82b7.hot-update.js": "/js/main.85ee4ef76690c57f82b7.hot-update.js",
"/js/main.cad1fff8196cbb341b6b.hot-update.js": "/js/main.cad1fff8196cbb341b6b.hot-update.js",
"/js/main.c7d03a2b3fe22b5ba6df.hot-update.js": "/js/main.c7d03a2b3fe22b5ba6df.hot-update.js",
"/js/main.928e27d39f4c65995d2a.hot-update.js": "/js/main.928e27d39f4c65995d2a.hot-update.js",
"/js/main.20893904805ee5f7ca8e.hot-update.js": "/js/main.20893904805ee5f7ca8e.hot-update.js",
"/js/main.80414838ed047dcdf24e.hot-update.js": "/js/main.80414838ed047dcdf24e.hot-update.js",
"/js/main.22fad3deda721488f8f8.hot-update.js": "/js/main.22fad3deda721488f8f8.hot-update.js",
"/js/main.c9fe2fdcdcd29f4c9ebc.hot-update.js": "/js/main.c9fe2fdcdcd29f4c9ebc.hot-update.js",
"/js/main.efe91fc85598790be029.hot-update.js": "/js/main.efe91fc85598790be029.hot-update.js",
"/js/main.3ae86757296351c62b5b.hot-update.js": "/js/main.3ae86757296351c62b5b.hot-update.js",
"/js/main.bb18457dea3a3481d1f6.hot-update.js": "/js/main.bb18457dea3a3481d1f6.hot-update.js",
"/js/main.819dfd655d8eb946ba19.hot-update.js": "/js/main.819dfd655d8eb946ba19.hot-update.js",
"/js/main.43f451ab4facca06bea3.hot-update.js": "/js/main.43f451ab4facca06bea3.hot-update.js",
"/js/main.dd027956b729cf8cd072.hot-update.js": "/js/main.dd027956b729cf8cd072.hot-update.js",
"/js/main.a69cb5daaca91c7dd090.hot-update.js": "/js/main.a69cb5daaca91c7dd090.hot-update.js",
"/js/main.021e625b83d08dc0dc34.hot-update.js": "/js/main.021e625b83d08dc0dc34.hot-update.js",
"/js/main.859d94cbbd3f214a3214.hot-update.js": "/js/main.859d94cbbd3f214a3214.hot-update.js",
"/js/main.f0df9e32b0d4b775cb92.hot-update.js": "/js/main.f0df9e32b0d4b775cb92.hot-update.js",
"/js/main.bbc24e5d3bd85a9c75f9.hot-update.js": "/js/main.bbc24e5d3bd85a9c75f9.hot-update.js",
"/js/main.d4961e0c332fe4d3ea96.hot-update.js": "/js/main.d4961e0c332fe4d3ea96.hot-update.js",
"/js/main.0aa375b3ccb59737427c.hot-update.js": "/js/main.0aa375b3ccb59737427c.hot-update.js",
"/js/main.b1a9cb8f5ec3aea27862.hot-update.js": "/js/main.b1a9cb8f5ec3aea27862.hot-update.js",
"/js/main.dfb8b2332b194a0adcc5.hot-update.js": "/js/main.dfb8b2332b194a0adcc5.hot-update.js",
"/js/main.d0f7b2434eba9690d78a.hot-update.js": "/js/main.d0f7b2434eba9690d78a.hot-update.js",
"/js/main.3729fbea596c69014dda.hot-update.js": "/js/main.3729fbea596c69014dda.hot-update.js",
"/js/main.5239d6190ae3a78b2f39.hot-update.js": "/js/main.5239d6190ae3a78b2f39.hot-update.js",
"/js/main.e5d6b00070f0f9b1046e.hot-update.js": "/js/main.e5d6b00070f0f9b1046e.hot-update.js",
"/js/main.7d35e9ca41358c209d61.hot-update.js": "/js/main.7d35e9ca41358c209d61.hot-update.js",
"/js/main.a96c016510b81673c673.hot-update.js": "/js/main.a96c016510b81673c673.hot-update.js",
"/js/main.892a53a9534db4ec84ad.hot-update.js": "/js/main.892a53a9534db4ec84ad.hot-update.js",
"/js/main.c5dd4f4cef74cc50df48.hot-update.js": "/js/main.c5dd4f4cef74cc50df48.hot-update.js",
"/js/main.ba6deda096d12500da72.hot-update.js": "/js/main.ba6deda096d12500da72.hot-update.js",
"/js/main.94ed22b9be7571514e2f.hot-update.js": "/js/main.94ed22b9be7571514e2f.hot-update.js",
"/js/main.7e15e83bb29b272ccb3d.hot-update.js": "/js/main.7e15e83bb29b272ccb3d.hot-update.js",
"/js/main.ae59c204ee34b0de8520.hot-update.js": "/js/main.ae59c204ee34b0de8520.hot-update.js",
"/js/main.ad2a20ce6bfa94adf8dd.hot-update.js": "/js/main.ad2a20ce6bfa94adf8dd.hot-update.js",
"/js/main.f1da33294b713c86d35d.hot-update.js": "/js/main.f1da33294b713c86d35d.hot-update.js",
"/js/main.f774cf8c9da202275192.hot-update.js": "/js/main.f774cf8c9da202275192.hot-update.js",
"/js/main.d23ccc34e68d9ec7aec9.hot-update.js": "/js/main.d23ccc34e68d9ec7aec9.hot-update.js",
"/js/main.def8b3b43da6f412ef7c.hot-update.js": "/js/main.def8b3b43da6f412ef7c.hot-update.js",
"/js/main.86e7dec7f4d4c19605ad.hot-update.js": "/js/main.86e7dec7f4d4c19605ad.hot-update.js",
"/js/main.3e568fcf99e82a33d4d9.hot-update.js": "/js/main.3e568fcf99e82a33d4d9.hot-update.js",
"/js/main.e008f096a3c086a0e34f.hot-update.js": "/js/main.e008f096a3c086a0e34f.hot-update.js",
"/js/main.68e875707cac780cfc84.hot-update.js": "/js/main.68e875707cac780cfc84.hot-update.js",
"/js/main.77d678806e5802281107.hot-update.js": "/js/main.77d678806e5802281107.hot-update.js",
"/js/main.daaf2de87271e613e928.hot-update.js": "/js/main.daaf2de87271e613e928.hot-update.js",
"/js/main.21a2720cc222f636c947.hot-update.js": "/js/main.21a2720cc222f636c947.hot-update.js",
"/js/main.4227615a465ec858977c.hot-update.js": "/js/main.4227615a465ec858977c.hot-update.js",
"/js/main.a876848c934bf935e57e.hot-update.js": "/js/main.a876848c934bf935e57e.hot-update.js",
"/js/main.239dc4f7016f31527043.hot-update.js": "/js/main.239dc4f7016f31527043.hot-update.js",
"/js/main.319d592f92abda80c31e.hot-update.js": "/js/main.319d592f92abda80c31e.hot-update.js",
"/js/main.3fb0489698dc9eb743c1.hot-update.js": "/js/main.3fb0489698dc9eb743c1.hot-update.js",
"/js/main.cfad5bbbfdf8061a0646.hot-update.js": "/js/main.cfad5bbbfdf8061a0646.hot-update.js",
"/js/main.6b2162528992a67c34bd.hot-update.js": "/js/main.6b2162528992a67c34bd.hot-update.js",
"/js/main.73796e998532d4014d2d.hot-update.js": "/js/main.73796e998532d4014d2d.hot-update.js",
"/js/main.ce2361a18f0b4362190a.hot-update.js": "/js/main.ce2361a18f0b4362190a.hot-update.js",
"/js/main.3e848ef2437cea480e10.hot-update.js": "/js/main.3e848ef2437cea480e10.hot-update.js",
"/js/main.db71a6fd8f9a76c2b376.hot-update.js": "/js/main.db71a6fd8f9a76c2b376.hot-update.js",
"/js/main.4d6cc8815198bcbbfeec.hot-update.js": "/js/main.4d6cc8815198bcbbfeec.hot-update.js",
"/js/main.ef794bfd9f6b2ccd3074.hot-update.js": "/js/main.ef794bfd9f6b2ccd3074.hot-update.js",
"/js/main.5394310e45a026b08a41.hot-update.js": "/js/main.5394310e45a026b08a41.hot-update.js",
"/js/main.16e27171ce7ae5e95abb.hot-update.js": "/js/main.16e27171ce7ae5e95abb.hot-update.js",
"/js/main.5f66f8fb10ba1069aa36.hot-update.js": "/js/main.5f66f8fb10ba1069aa36.hot-update.js",
"/js/main.42c47d59792d4bd340d4.hot-update.js": "/js/main.42c47d59792d4bd340d4.hot-update.js",
"/js/main.f4b68164b7d3b5c64eb4.hot-update.js": "/js/main.f4b68164b7d3b5c64eb4.hot-update.js",
"/js/main.5b2e24a77aa72ad31ccd.hot-update.js": "/js/main.5b2e24a77aa72ad31ccd.hot-update.js",
"/js/main.a35970f16ff68b5ffd9a.hot-update.js": "/js/main.a35970f16ff68b5ffd9a.hot-update.js",
"/js/main.8ca3d2d56485c9c20030.hot-update.js": "/js/main.8ca3d2d56485c9c20030.hot-update.js",
"/js/main.8cd17f657c63046feba2.hot-update.js": "/js/main.8cd17f657c63046feba2.hot-update.js",
"/js/main.0c76bec7e71f73af3c7b.hot-update.js": "/js/main.0c76bec7e71f73af3c7b.hot-update.js",
"/js/main.f9e377139437e6b07845.hot-update.js": "/js/main.f9e377139437e6b07845.hot-update.js"
"/js/main.16976b0d5706c2a00092.hot-update.js": "/js/main.16976b0d5706c2a00092.hot-update.js",
"/js/main.a211c0d72c6ded875d15.hot-update.js": "/js/main.a211c0d72c6ded875d15.hot-update.js",
"/js/main.2f7ed2be33be8a628c94.hot-update.js": "/js/main.2f7ed2be33be8a628c94.hot-update.js",
"/js/main.41ebe4de6b7379b19aae.hot-update.js": "/js/main.41ebe4de6b7379b19aae.hot-update.js",
"/js/main.0f3a90b8f378f32dcefd.hot-update.js": "/js/main.0f3a90b8f378f32dcefd.hot-update.js",
"/js/main.8061b41cbff2c99e8892.hot-update.js": "/js/main.8061b41cbff2c99e8892.hot-update.js",
"/js/main.8bbdafddac84c5216bf2.hot-update.js": "/js/main.8bbdafddac84c5216bf2.hot-update.js",
"/js/main.874276679a5cc2310cb2.hot-update.js": "/js/main.874276679a5cc2310cb2.hot-update.js",
"/js/main.fb0e89a13e3bccb562c6.hot-update.js": "/js/main.fb0e89a13e3bccb562c6.hot-update.js",
"/js/main.0c3be53e15ad4f96bc41.hot-update.js": "/js/main.0c3be53e15ad4f96bc41.hot-update.js",
"/js/main.bf1c3c4043845e03345e.hot-update.js": "/js/main.bf1c3c4043845e03345e.hot-update.js",
"/js/main.12e4b2cf981dcc9e768a.hot-update.js": "/js/main.12e4b2cf981dcc9e768a.hot-update.js",
"/js/main.0abf1dd52a2776a478b4.hot-update.js": "/js/main.0abf1dd52a2776a478b4.hot-update.js",
"/js/main.a18a08d3a28152cc7cb2.hot-update.js": "/js/main.a18a08d3a28152cc7cb2.hot-update.js",
"/js/main.6d3700ac99287979de27.hot-update.js": "/js/main.6d3700ac99287979de27.hot-update.js",
"/js/main.b134bc2a66c059fdf792.hot-update.js": "/js/main.b134bc2a66c059fdf792.hot-update.js",
"/js/main.d75cde21608d40f79776.hot-update.js": "/js/main.d75cde21608d40f79776.hot-update.js",
"/js/main.77ff21263b76989532ed.hot-update.js": "/js/main.77ff21263b76989532ed.hot-update.js",
"/js/main.40151b0bcd05a234189b.hot-update.js": "/js/main.40151b0bcd05a234189b.hot-update.js",
"/js/main.79c0c46b3144482d3bb0.hot-update.js": "/js/main.79c0c46b3144482d3bb0.hot-update.js",
"/js/main.469486322ed7679225b6.hot-update.js": "/js/main.469486322ed7679225b6.hot-update.js",
"/js/main.518685d7fe77c54be3c6.hot-update.js": "/js/main.518685d7fe77c54be3c6.hot-update.js",
"/js/main.083746580fffb67d9ebe.hot-update.js": "/js/main.083746580fffb67d9ebe.hot-update.js",
"/js/main.a0341dd65fdef07c70b7.hot-update.js": "/js/main.a0341dd65fdef07c70b7.hot-update.js",
"/js/main.42c5f08f687d8e7f5911.hot-update.js": "/js/main.42c5f08f687d8e7f5911.hot-update.js",
"/js/main.7e3b0de5a8e587da220b.hot-update.js": "/js/main.7e3b0de5a8e587da220b.hot-update.js",
"/js/main.6b99f5562239841fa03c.hot-update.js": "/js/main.6b99f5562239841fa03c.hot-update.js",
"/js/main.3ffbbb278020dcc4a63d.hot-update.js": "/js/main.3ffbbb278020dcc4a63d.hot-update.js",
"/js/main.4a0368537496905355bd.hot-update.js": "/js/main.4a0368537496905355bd.hot-update.js",
"/js/main.5f9c7ff63834ee297ed7.hot-update.js": "/js/main.5f9c7ff63834ee297ed7.hot-update.js",
"/js/main.a02e07e032a4351c3dfe.hot-update.js": "/js/main.a02e07e032a4351c3dfe.hot-update.js",
"/js/main.489f7ed6cf9c4e6982be.hot-update.js": "/js/main.489f7ed6cf9c4e6982be.hot-update.js",
"/js/main.872bcf53000f970576df.hot-update.js": "/js/main.872bcf53000f970576df.hot-update.js",
"/js/main.2ef085884a7fa44278ce.hot-update.js": "/js/main.2ef085884a7fa44278ce.hot-update.js",
"/js/main.34d56f38fca2e433cacf.hot-update.js": "/js/main.34d56f38fca2e433cacf.hot-update.js",
"/js/main.466d710b501a93abd7f4.hot-update.js": "/js/main.466d710b501a93abd7f4.hot-update.js",
"/js/main.f7dae3809a9f3583ff34.hot-update.js": "/js/main.f7dae3809a9f3583ff34.hot-update.js",
"/js/main.0862ece8be796e0f6195.hot-update.js": "/js/main.0862ece8be796e0f6195.hot-update.js",
"/js/main.9f95c61a9ca0721e3738.hot-update.js": "/js/main.9f95c61a9ca0721e3738.hot-update.js",
"/js/main.fa1dc34dabcbab87344b.hot-update.js": "/js/main.fa1dc34dabcbab87344b.hot-update.js",
"/js/main.c2c02a0db55681a7e541.hot-update.js": "/js/main.c2c02a0db55681a7e541.hot-update.js",
"/js/main.8d5d79b5e894c5402f7d.hot-update.js": "/js/main.8d5d79b5e894c5402f7d.hot-update.js",
"/js/main.8f82060e41947c1e7cb3.hot-update.js": "/js/main.8f82060e41947c1e7cb3.hot-update.js",
"/js/main.4ca1a3f33fff650214d0.hot-update.js": "/js/main.4ca1a3f33fff650214d0.hot-update.js",
"/js/main.5bb6544e8c6b09359550.hot-update.js": "/js/main.5bb6544e8c6b09359550.hot-update.js",
"/js/main.6d1ef470bed9b4cb265c.hot-update.js": "/js/main.6d1ef470bed9b4cb265c.hot-update.js",
"/js/main.757827785a635bc21758.hot-update.js": "/js/main.757827785a635bc21758.hot-update.js",
"/js/main.6e7f1e2f8ca70c6ad7e2.hot-update.js": "/js/main.6e7f1e2f8ca70c6ad7e2.hot-update.js",
"/js/main.1c06b4e4f740aae1077b.hot-update.js": "/js/main.1c06b4e4f740aae1077b.hot-update.js",
"/js/main.df9fd59943447226f3c6.hot-update.js": "/js/main.df9fd59943447226f3c6.hot-update.js",
"/js/main.9c621ba4eed601c0f6f0.hot-update.js": "/js/main.9c621ba4eed601c0f6f0.hot-update.js",
"/js/main.709335aea3a22987ac1a.hot-update.js": "/js/main.709335aea3a22987ac1a.hot-update.js",
"/js/main.98ae78a0faa3eaede224.hot-update.js": "/js/main.98ae78a0faa3eaede224.hot-update.js",
"/js/main.974ca0ca6760f28c54c4.hot-update.js": "/js/main.974ca0ca6760f28c54c4.hot-update.js",
"/js/main.ec16e154c799de466efe.hot-update.js": "/js/main.ec16e154c799de466efe.hot-update.js",
"/js/main.3cb2aeec0e03ba8e9c47.hot-update.js": "/js/main.3cb2aeec0e03ba8e9c47.hot-update.js",
"/js/main.fe54d34c7b97f29d9594.hot-update.js": "/js/main.fe54d34c7b97f29d9594.hot-update.js",
"/js/main.a8eb63020d7c840892c7.hot-update.js": "/js/main.a8eb63020d7c840892c7.hot-update.js",
"/js/main.23704e19cb7454c18696.hot-update.js": "/js/main.23704e19cb7454c18696.hot-update.js",
"/js/main.f5d7cf948058831397f3.hot-update.js": "/js/main.f5d7cf948058831397f3.hot-update.js",
"/js/main.f3f9f32c61e45753a3fb.hot-update.js": "/js/main.f3f9f32c61e45753a3fb.hot-update.js",
"/js/main.2b20a5b95235d5895759.hot-update.js": "/js/main.2b20a5b95235d5895759.hot-update.js",
"/js/main.256e1f115ce42c71dedf.hot-update.js": "/js/main.256e1f115ce42c71dedf.hot-update.js",
"/js/main.f92a4dfa091e4476483e.hot-update.js": "/js/main.f92a4dfa091e4476483e.hot-update.js",
"/js/main.8e577ec9da5c134f5921.hot-update.js": "/js/main.8e577ec9da5c134f5921.hot-update.js",
"/js/main.3afcbe74ecf0967bae12.hot-update.js": "/js/main.3afcbe74ecf0967bae12.hot-update.js",
"/js/main.b4e361a0f5fadbed2b91.hot-update.js": "/js/main.b4e361a0f5fadbed2b91.hot-update.js",
"/js/main.ab71a9d67bf80623241c.hot-update.js": "/js/main.ab71a9d67bf80623241c.hot-update.js",
"/js/main.822404ed31e1c7a4da54.hot-update.js": "/js/main.822404ed31e1c7a4da54.hot-update.js",
"/js/main.263161964edff3d3e929.hot-update.js": "/js/main.263161964edff3d3e929.hot-update.js",
"/js/main.9768f88e7907d660548e.hot-update.js": "/js/main.9768f88e7907d660548e.hot-update.js",
"/js/main.3b39c7f507f5bf626c96.hot-update.js": "/js/main.3b39c7f507f5bf626c96.hot-update.js",
"/js/main.5696b1aeae48d4332cb7.hot-update.js": "/js/main.5696b1aeae48d4332cb7.hot-update.js",
"/js/main.8ead1856944b29ac775e.hot-update.js": "/js/main.8ead1856944b29ac775e.hot-update.js",
"/js/main.74bd951352632ad0f3b8.hot-update.js": "/js/main.74bd951352632ad0f3b8.hot-update.js",
"/js/main.24aa72d9f5df957773f4.hot-update.js": "/js/main.24aa72d9f5df957773f4.hot-update.js",
"/js/main.ee9cc233513282294067.hot-update.js": "/js/main.ee9cc233513282294067.hot-update.js",
"/js/main.2fb019a238db5fe0b57a.hot-update.js": "/js/main.2fb019a238db5fe0b57a.hot-update.js",
"/js/main.b0747b0026aa12d82148.hot-update.js": "/js/main.b0747b0026aa12d82148.hot-update.js",
"/js/main.3eb95def6e309e869065.hot-update.js": "/js/main.3eb95def6e309e869065.hot-update.js",
"/js/main.68bc8f304c03b87bde6c.hot-update.js": "/js/main.68bc8f304c03b87bde6c.hot-update.js",
"/js/main.eea0a3863d4444122387.hot-update.js": "/js/main.eea0a3863d4444122387.hot-update.js",
"/js/main.8e63403d4cb05270cda8.hot-update.js": "/js/main.8e63403d4cb05270cda8.hot-update.js",
"/js/main.7eaa97adb1c24aa10ee7.hot-update.js": "/js/main.7eaa97adb1c24aa10ee7.hot-update.js",
"/js/main.677a29997da90d239321.hot-update.js": "/js/main.677a29997da90d239321.hot-update.js",
"/js/main.f31a178ed458429a6029.hot-update.js": "/js/main.f31a178ed458429a6029.hot-update.js",
"/js/main.08051bae45414ea3e737.hot-update.js": "/js/main.08051bae45414ea3e737.hot-update.js",
"/js/main.db9c4a61a85ec1c723ff.hot-update.js": "/js/main.db9c4a61a85ec1c723ff.hot-update.js",
"/js/main.e80c3665c97cbe2f9c99.hot-update.js": "/js/main.e80c3665c97cbe2f9c99.hot-update.js",
"/js/main.a8c70e3e9d306a653fdd.hot-update.js": "/js/main.a8c70e3e9d306a653fdd.hot-update.js",
"/js/main.01ea8fc57e9ee32f3511.hot-update.js": "/js/main.01ea8fc57e9ee32f3511.hot-update.js",
"/js/main.a96a397b546de0bdaefe.hot-update.js": "/js/main.a96a397b546de0bdaefe.hot-update.js",
"/js/main.cd37c076ef4b6ffa1066.hot-update.js": "/js/main.cd37c076ef4b6ffa1066.hot-update.js",
"/js/main.c3934e1fb8ae435bccdf.hot-update.js": "/js/main.c3934e1fb8ae435bccdf.hot-update.js",
"/js/main.0c60592eb4d7e3df5065.hot-update.js": "/js/main.0c60592eb4d7e3df5065.hot-update.js",
"/js/main.8411b90746a4fe9cffc3.hot-update.js": "/js/main.8411b90746a4fe9cffc3.hot-update.js",
"/js/main.0976a48abb2d771f18ef.hot-update.js": "/js/main.0976a48abb2d771f18ef.hot-update.js",
"/js/main.73c95c3b8a566985ba89.hot-update.js": "/js/main.73c95c3b8a566985ba89.hot-update.js",
"/js/main.30a4931b93d799ac9cde.hot-update.js": "/js/main.30a4931b93d799ac9cde.hot-update.js",
"/js/main.752f09bcab9312df80f7.hot-update.js": "/js/main.752f09bcab9312df80f7.hot-update.js",
"/js/main.9673279bcb4703b7047d.hot-update.js": "/js/main.9673279bcb4703b7047d.hot-update.js",
"/js/main.48ad6363e8988b13af7e.hot-update.js": "/js/main.48ad6363e8988b13af7e.hot-update.js",
"/js/main.a1cd261ccf13dfef9842.hot-update.js": "/js/main.a1cd261ccf13dfef9842.hot-update.js",
"/js/main.90a02c322e17b55f2aa0.hot-update.js": "/js/main.90a02c322e17b55f2aa0.hot-update.js",
"/js/main.d0998bfa55ba80b05ce2.hot-update.js": "/js/main.d0998bfa55ba80b05ce2.hot-update.js",
"/js/main.fc2c589ac28b34cd86c1.hot-update.js": "/js/main.fc2c589ac28b34cd86c1.hot-update.js",
"/js/main.5f73c9e4aaba706cc8bf.hot-update.js": "/js/main.5f73c9e4aaba706cc8bf.hot-update.js",
"/js/main.6266a430210a222231af.hot-update.js": "/js/main.6266a430210a222231af.hot-update.js",
"/js/main.16fe81256d3096ee719a.hot-update.js": "/js/main.16fe81256d3096ee719a.hot-update.js",
"/js/main.c0405a10917592b127c1.hot-update.js": "/js/main.c0405a10917592b127c1.hot-update.js",
"/js/main.1b4aa9a9619777869eec.hot-update.js": "/js/main.1b4aa9a9619777869eec.hot-update.js",
"/js/main.588d9ece8b504c93737f.hot-update.js": "/js/main.588d9ece8b504c93737f.hot-update.js",
"/js/main.b2f8de27a3bd67ac35a4.hot-update.js": "/js/main.b2f8de27a3bd67ac35a4.hot-update.js",
"/js/main.70a024f32874574bb991.hot-update.js": "/js/main.70a024f32874574bb991.hot-update.js",
"/js/main.fb7331769c4c6f65f074.hot-update.js": "/js/main.fb7331769c4c6f65f074.hot-update.js",
"/js/main.1694a9416fde14785a9c.hot-update.js": "/js/main.1694a9416fde14785a9c.hot-update.js",
"/js/main.7173937d4f7649a45a43.hot-update.js": "/js/main.7173937d4f7649a45a43.hot-update.js",
"/js/main.dd40aef833b706962974.hot-update.js": "/js/main.dd40aef833b706962974.hot-update.js",
"/js/main.b2a3fc96d076b23c0665.hot-update.js": "/js/main.b2a3fc96d076b23c0665.hot-update.js",
"/js/main.bb840bc1aa63dd116b8a.hot-update.js": "/js/main.bb840bc1aa63dd116b8a.hot-update.js",
"/js/main.d7b93a6fdc4801343643.hot-update.js": "/js/main.d7b93a6fdc4801343643.hot-update.js",
"/js/main.52be778aa7edc57c429c.hot-update.js": "/js/main.52be778aa7edc57c429c.hot-update.js",
"/js/main.839fbc8892a0e6201d14.hot-update.js": "/js/main.839fbc8892a0e6201d14.hot-update.js",
"/js/main.a5a78e0748f1a1b63dab.hot-update.js": "/js/main.a5a78e0748f1a1b63dab.hot-update.js",
"/js/main.212af0d35ad85b31a916.hot-update.js": "/js/main.212af0d35ad85b31a916.hot-update.js",
"/js/main.7a91e002c87b8af6a536.hot-update.js": "/js/main.7a91e002c87b8af6a536.hot-update.js",
"/js/main.668b6d168627c849b0e4.hot-update.js": "/js/main.668b6d168627c849b0e4.hot-update.js",
"/js/main.a93b6be9df0525809026.hot-update.js": "/js/main.a93b6be9df0525809026.hot-update.js",
"/js/main.d0b2d48845c07a042505.hot-update.js": "/js/main.d0b2d48845c07a042505.hot-update.js",
"/js/main.e4253ee3fab1d1fff214.hot-update.js": "/js/main.e4253ee3fab1d1fff214.hot-update.js",
"/js/main.91d9e11b1efe7c7d0d15.hot-update.js": "/js/main.91d9e11b1efe7c7d0d15.hot-update.js",
"/js/main.dc0fab4176fb7c6813b2.hot-update.js": "/js/main.dc0fab4176fb7c6813b2.hot-update.js",
"/js/main.d11c3b0e0d7cc1e48dca.hot-update.js": "/js/main.d11c3b0e0d7cc1e48dca.hot-update.js",
"/js/main.2a529cddc98e893a2a92.hot-update.js": "/js/main.2a529cddc98e893a2a92.hot-update.js",
"/js/main.c1ccc04443059ee81bbd.hot-update.js": "/js/main.c1ccc04443059ee81bbd.hot-update.js",
"/js/main.3591683cbd6405141621.hot-update.js": "/js/main.3591683cbd6405141621.hot-update.js",
"/js/main.edc3e8d79e6f7dbcd78a.hot-update.js": "/js/main.edc3e8d79e6f7dbcd78a.hot-update.js",
"/js/main.bcb98702fe5f148ca99b.hot-update.js": "/js/main.bcb98702fe5f148ca99b.hot-update.js",
"/js/main.d93739d96e7f0dd63a6e.hot-update.js": "/js/main.d93739d96e7f0dd63a6e.hot-update.js",
"/js/main.21982489490b8b1f053b.hot-update.js": "/js/main.21982489490b8b1f053b.hot-update.js",
"/js/main.f78fd5f2e6fdd875629a.hot-update.js": "/js/main.f78fd5f2e6fdd875629a.hot-update.js",
"/js/main.7879315093b155e70be2.hot-update.js": "/js/main.7879315093b155e70be2.hot-update.js",
"/js/main.e0b6de1f5c9fbd6385ae.hot-update.js": "/js/main.e0b6de1f5c9fbd6385ae.hot-update.js",
"/js/main.fc88d4d7925a25cd3ca8.hot-update.js": "/js/main.fc88d4d7925a25cd3ca8.hot-update.js",
"/js/main.53bde087ad2b4a5fb326.hot-update.js": "/js/main.53bde087ad2b4a5fb326.hot-update.js",
"/js/main.70e0952ecd6228de217a.hot-update.js": "/js/main.70e0952ecd6228de217a.hot-update.js",
"/js/main.b694752c4beb49d17887.hot-update.js": "/js/main.b694752c4beb49d17887.hot-update.js",
"/js/main.ca80fbb07d0f0f1ace38.hot-update.js": "/js/main.ca80fbb07d0f0f1ace38.hot-update.js",
"/js/main.b124350f9f734bcfe2ee.hot-update.js": "/js/main.b124350f9f734bcfe2ee.hot-update.js",
"/js/main.e748be3883e9de32b0fb.hot-update.js": "/js/main.e748be3883e9de32b0fb.hot-update.js",
"/js/main.278019b6c6b74a339884.hot-update.js": "/js/main.278019b6c6b74a339884.hot-update.js",
"/js/main.41107c8e3c7ad87b0d64.hot-update.js": "/js/main.41107c8e3c7ad87b0d64.hot-update.js",
"/js/main.3703f4c70eac63efbd9f.hot-update.js": "/js/main.3703f4c70eac63efbd9f.hot-update.js",
"/js/main.d749219e06421131ba5f.hot-update.js": "/js/main.d749219e06421131ba5f.hot-update.js",
"/js/main.20fa819c4cd22e824f75.hot-update.js": "/js/main.20fa819c4cd22e824f75.hot-update.js",
"/js/main.d1d52ee2fab59c6a91e1.hot-update.js": "/js/main.d1d52ee2fab59c6a91e1.hot-update.js",
"/js/main.db26cc4c20789df44aa2.hot-update.js": "/js/main.db26cc4c20789df44aa2.hot-update.js",
"/js/main.d5307c561d3c930ab7e5.hot-update.js": "/js/main.d5307c561d3c930ab7e5.hot-update.js",
"/js/main.d3041f453ecd615aae72.hot-update.js": "/js/main.d3041f453ecd615aae72.hot-update.js",
"/js/main.004d7e6d77ccc3b781b4.hot-update.js": "/js/main.004d7e6d77ccc3b781b4.hot-update.js",
"/js/main.ef2eab6e7f29b856cb04.hot-update.js": "/js/main.ef2eab6e7f29b856cb04.hot-update.js",
"/js/main.dfaaa4609f908dc952c1.hot-update.js": "/js/main.dfaaa4609f908dc952c1.hot-update.js",
"/js/main.931d8fb7c032b784e10d.hot-update.js": "/js/main.931d8fb7c032b784e10d.hot-update.js",
"/js/main.b8cd688a2fe891c59ab7.hot-update.js": "/js/main.b8cd688a2fe891c59ab7.hot-update.js",
"/js/main.ac3c8bc2323e792340fc.hot-update.js": "/js/main.ac3c8bc2323e792340fc.hot-update.js",
"/js/main.c87dd72cd5100c869612.hot-update.js": "/js/main.c87dd72cd5100c869612.hot-update.js",
"/js/main.641ff08404b2dce38497.hot-update.js": "/js/main.641ff08404b2dce38497.hot-update.js",
"/js/main.12c8a38776fc5151961a.hot-update.js": "/js/main.12c8a38776fc5151961a.hot-update.js",
"/js/main.566920d55522102802f9.hot-update.js": "/js/main.566920d55522102802f9.hot-update.js",
"/js/main.a9cbd3028594009ac18d.hot-update.js": "/js/main.a9cbd3028594009ac18d.hot-update.js",
"/js/main.1056b30c917d55f286db.hot-update.js": "/js/main.1056b30c917d55f286db.hot-update.js",
"/js/main.67b45271e6bc3ef59224.hot-update.js": "/js/main.67b45271e6bc3ef59224.hot-update.js",
"/js/main.5647a13b5606291fe87f.hot-update.js": "/js/main.5647a13b5606291fe87f.hot-update.js",
"/js/main.5c7c0c5a8555b3ca3861.hot-update.js": "/js/main.5c7c0c5a8555b3ca3861.hot-update.js",
"/js/main.6fed08595674209484cc.hot-update.js": "/js/main.6fed08595674209484cc.hot-update.js",
"/js/main.dbf95742a1c6b10fef82.hot-update.js": "/js/main.dbf95742a1c6b10fef82.hot-update.js",
"/js/main.d2cd2dbbeededfde4747.hot-update.js": "/js/main.d2cd2dbbeededfde4747.hot-update.js",
"/js/main.8c8ab7ee8f110a6778e7.hot-update.js": "/js/main.8c8ab7ee8f110a6778e7.hot-update.js",
"/js/main.0a9830dfaadcac43ad90.hot-update.js": "/js/main.0a9830dfaadcac43ad90.hot-update.js",
"/js/main.c52f09db76f6521311d0.hot-update.js": "/js/main.c52f09db76f6521311d0.hot-update.js",
"/js/main.5eaadb8ade32028e6d9c.hot-update.js": "/js/main.5eaadb8ade32028e6d9c.hot-update.js",
"/js/main.5ea1c209e4ba1a66191b.hot-update.js": "/js/main.5ea1c209e4ba1a66191b.hot-update.js",
"/js/main.fb81adae93ae1109a054.hot-update.js": "/js/main.fb81adae93ae1109a054.hot-update.js",
"/js/main.d27bcdc0e934cd992fea.hot-update.js": "/js/main.d27bcdc0e934cd992fea.hot-update.js",
"/js/main.9621e68a9cec93315d6f.hot-update.js": "/js/main.9621e68a9cec93315d6f.hot-update.js"
}

View File

@@ -164,7 +164,7 @@
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
font-size: 16px;
text-decoration: none;
color: #1b2539;
color: $text;
}
#auth {
@@ -177,6 +177,7 @@
width: 100%;
height: 100%;
overflow-y: auto;
scroll-behavior:smooth;
}
@media only screen and (max-width: 690px) {
@@ -189,6 +190,10 @@
// Dark mode support
@media (prefers-color-scheme: dark) {
* {
color: $dark_mode_text_primary;
}
body, html {
background: $dark_mode_background;
color: $dark_mode_text_primary;

View File

@@ -19,7 +19,7 @@
</td>
<td>
<span class="cell-item">
{{ row.relationships.storage.data.attributes.used }}%
{{ row.relationships.storage.data.attributes.used_formatted }}
</span>
</td>
<td>

View File

@@ -57,6 +57,18 @@
}
@media (prefers-color-scheme: dark) {
.widget-value {
span {
color: $dark_mode_text_primary;
}
}
.footer-link {
.content {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -48,4 +48,16 @@
}
}
}
@media (prefers-color-scheme: dark) {
.widget-content {
background: $dark_mode_foreground;
}
.headline {
.title {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -129,8 +129,15 @@
.button-base {
&.secondary {
color: $dark_mode_text_primary;
background: $dark_mode_foreground;
.content {
color: $dark_mode_text_primary;
}
polyline, path {
stroke: $theme;
}
}
}
}

View File

@@ -110,8 +110,12 @@
'homeDirectory',
]),
hasCapacity() {
//return this.$store.getters.user.relationships.storage.data.attributes.used <= 100
return true
if (! this.$store.getters.config.storageLimit) {
return true
}
return this.$store.getters.user.relationships.storage.data.attributes.used <= 100
},
directoryName() {
return this.currentFolder ? this.currentFolder.name : this.homeDirectory.name

View File

@@ -64,12 +64,12 @@
.title {
max-width: 100%;
font-size: 28px;
font-size: 32px;
line-height: 1.25;
margin-bottom: 15px;
/deep/ span {
font-size: 28px;
font-size: 32px;
}
}

View File

@@ -41,7 +41,7 @@
axios.get('/api/public/pricing')
.then(response => {
this.plans = response.data
this.$emit('load', false)
this.$emit('load', response.data)
})
}
}
@@ -138,4 +138,52 @@
}
}
}
@media (prefers-color-scheme: dark) {
.plans-wrapper {
background: $dark_mode_foreground;
}
.plan {
border-color: $dark_mode_border_color;
.plan-wrapper {
background: $dark_mode_foreground;
}
.plan-header {
.title {
color: $dark_mode_text_primary;
}
.description {
color: $dark_mode_text_secondary;
}
}
.plan-features {
.storage-size {
color: $dark_mode_text_primary;
}
.storage-description {
color: $dark_mode_text_primary;
}
}
.plan-footer {
.sign-in-button {
background: rgba($theme, 0.1);
/deep/ .content {
color: $theme;
}
}
}
}
}
</style>

View File

@@ -316,7 +316,18 @@
}
}
@media only screen and (max-width: 690px) {
@media only screen and (max-width: 960px) {
.page-title {
padding-top: 20px;
}
.get-started-button {
margin-bottom: 30px;
}
.cloud-bg,
.icons {
display: none;
}
}
</style>

View File

@@ -1,6 +1,7 @@
<template>
<div class="page-wrapper large hero-screenshot">
<img src="/assets/images/vuefilemanager-screenshot.png" alt="VueFileManager screenshot">
<img class="hero-light" src="/assets/images/vuefilemanager-screenshot-light.png" alt="VueFileManager application">
<img class="hero-dark" src="/assets/images/vuefilemanager-screenshot-dark.png" alt="VueFileManager application">
<div class="icons">
<link-icon size="20" class="icon"></link-icon>
@@ -59,6 +60,7 @@
.icons {
.icon {
z-index: 0;
position: absolute;
&:nth-child(1) {
@@ -168,31 +170,53 @@
}
.hero-screenshot {
position: relative;
z-index: 1;
padding-top: 75px;
padding-bottom: 130px;
img {
border-radius: 8px;
max-width: 1165px;
width: 80%;
box-shadow: 0 7px 255px rgba(#19363C, 0.1);
}
}
@media only screen and (max-width: 1390px) and (min-width: 1190px) {
.hero-screenshot {
img {
width: 80%;
&.hero-dark {
display: none;
}
}
}
@media only screen and (max-width: 1190px) {
@media only screen and (max-width: 890px) {
.icons {
display: none;
}
.hero-screenshot {
padding-top: 40px;
padding-bottom: 90px;
img {
width: 100%;
}
}
}
@media (prefers-color-scheme: dark) {
.hero-screenshot {
img {
&.hero-light {
display: none;
}
&.hero-dark {
display: block;
box-shadow: 0 7px 185px rgba(0, 0, 0, 0.8);
}
}
}
}
</style>

View File

@@ -2,7 +2,7 @@
<section class="main-features page-wrapper medium">
<PageTitle
type="center"
title="The Fastest Growing <span style='color: #41B883'>File Manager</span><br> on the CodeCanyon Market"
title="The Fastest Growing <span style='color: #41B883'>File Manager</span> on the CodeCanyon Market"
description="Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Trully freedom."
></PageTitle>
<div class="content">
@@ -147,4 +147,39 @@
margin-top: 50px;
}
}
@media only screen and (max-width: 960px) {
.content {
margin-top: 40px;
}
.features {
.feature {
margin-bottom: 35px;
.title {
@include font-size(22);
}
.description {
@include font-size(16);
}
}
}
}
@media (prefers-color-scheme: dark) {
.features {
.feature {
.description {
color: $dark_mode_text_secondary;
}
}
}
}
</style>

View File

@@ -1,7 +1,8 @@
<template>
<nav class="main-navigation">
<router-link :to="{name: 'SaaSLandingPage'}" tag="div" class="logo">
<img src="/assets/images/vuefilemanager-horizontal-logo.svg" alt="VueFileManager">
<img v-if="config.app_logo_horizontal" :src="config.app_logo_horizontal" :alt="config.app_name">
<b v-if="! config.app_logo_horizontal" class="logo-text">{{ config.app_name }}</b>
</router-link>
<div class="navigation">
<ul class="navigation-links">
@@ -36,8 +37,13 @@
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'IndexNavigation',
computed: {
...mapGetters(['config']),
},
}
</script>
@@ -55,12 +61,18 @@
}
.logo {
cursor: pointer;
img {
cursor: pointer;
height: 38px;
width: auto;
}
.logo-text {
font-weight: 800;
@include font-size(25);
}
}
.navigation-links {

View File

@@ -1,8 +1,9 @@
<template>
<footer class="page-wrapper medium">
<div class="logo">
<img src="/assets/images/vuefilemanager-horizontal-logo.svg" alt="VueFileManager">
</div>
<router-link :to="{name: 'SaaSLandingPage'}" tag="div" class="logo">
<img v-if="config.app_logo_horizontal" :src="config.app_logo_horizontal" :alt="config.app_name">
<b v-if="! config.app_logo_horizontal" class="logo-text">{{ config.app_name }}</b>
</router-link>
<ul class="navigation-links">
<li>
<a href="/#pricing">
@@ -14,31 +15,38 @@
Contact Us
</router-link>
</li>
</ul>
<ul class="navigation-links">
<li>
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms'}}">
Terms
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}">
Terms of Service
</router-link>
</li>
<li>
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy'}}">
Privacy
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}">
Privacy Policy
</router-link>
</li>
<li>
<router-link :to="{name: 'DynamicPage', params: {slug: 'cookies'}}">
Cookies
<router-link :to="{name: 'DynamicPage', params: {slug: 'cookie-policy'}}">
Cookie Policy
</router-link>
</li>
</ul>
<p class="copyright">
© 2020 VueFileManager. All rights reserved.
© 2020 {{ config.app_name }}. All rights reserved.
</p>
</footer>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'IndexPageFooter',
computed: {
...mapGetters(['config']),
},
}
</script>
@@ -49,15 +57,22 @@
footer {
text-align: center;
padding-top: 80px;
}
.logo {
margin-bottom: 15px;
cursor: pointer;
img {
height: 38px;
width: auto;
}
.logo-text {
font-weight: 800;
@include font-size(25);
}
}
.navigation-links {
@@ -67,6 +82,7 @@
display: inline-block;
a {
display: block;
padding: 19px;
font-weight: 700;
@include font-size(17);
@@ -86,7 +102,24 @@
padding-bottom: 20px;
}
@media only screen and (max-width: 690px) {
@media only screen and (max-width: 960px) {
.navigation-links {
display: block;
li {
display: block;
a {
padding: 10px 0;
}
}
}
}
@media (prefers-color-scheme: dark) {
.copyright {
color: $dark_mode_text_secondary;
}
}
</style>

View File

@@ -94,6 +94,11 @@
}
@media only screen and (max-width: 690px) {
.main-header {
padding-top: 50px;
}
.features {
display: block;
@@ -106,5 +111,9 @@
}
}
}
.sign-up-button {
margin-top: 30px;
}
}
</style>

View File

@@ -1,12 +1,12 @@
<template>
<div class="page-wrapper medium pricing">
<div class="page-wrapper medium pricing" v-if="! isEmpty">
<div id="pricing" class="page-title center">
<h1 class="title">
Pick the <span style="color: #41B883">Best Plan</span> For Your Needs
</h1>
</div>
<PricingTables class="pricing-tables"/>
<PricingTables class="pricing-tables" @load="pricingLoaded"/>
<div class="page-title center">
<h2 class="description">
@@ -33,6 +33,18 @@
PricingTables,
AuthButton,
CloudIcon,
},
data() {
return {
isEmpty: false,
}
},
methods: {
pricingLoaded(pricing) {
if (pricing.length === 0)
this.isEmpty = true
}
}
}
</script>
@@ -125,6 +137,10 @@
@media only screen and (max-width: 960px) {
.cloud-bg {
display: none;
}
.page-title {
.title {
@@ -143,5 +159,10 @@
margin-bottom: 30px;
}
}
.pricing {
padding-top: 50px;
padding-bottom: 120px;
}
}
</style>

View File

@@ -41,4 +41,13 @@
}
}
@media (prefers-color-scheme: dark) {
.form-label {
.label {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -53,7 +53,7 @@
.substring(imgPath.lastIndexOf('.') + 1)
.toLowerCase()
if (['png', 'jpg', 'jpeg'].includes(extn)) {
if (['png', 'jpg', 'jpeg', 'svg'].includes(extn)) {
const file = event.target.files[0],
reader = new FileReader()
@@ -156,6 +156,7 @@
@media (prefers-color-scheme: dark) {
.dropzone {
border-color: rgba(white, 0.2);
.dropzone-message {

View File

@@ -33,7 +33,7 @@
p {
@include font-size(15);
line-height: 1.6;
word-break: break-all;
word-break: break-word;
font-weight: 600;
}
@@ -72,14 +72,24 @@
.info-box {
padding: 15px;
}
}
@media (prefers-color-scheme: dark) {
.info-box {
background: $dark_mode_foreground;
background: rgba($yellow, 0.1);
p {
color: $yellow;
}
ul {
li {
color: $yellow;
}
}
}
}
</style>

View File

@@ -103,7 +103,6 @@
.option-item {
padding: 13px 20px;
display: block;
//border-bottom: 1px solid #EBEBEB;
cursor: pointer;
&:hover {
@@ -202,8 +201,18 @@
border-bottom: none;
&:hover {
color: $theme;
background: rgba($theme, .1);
.option-value {
color: $theme;
}
.option-icon {
path, circle {
stroke: $theme;
}
}
}
&:last-child {

View File

@@ -144,6 +144,44 @@
}
@media (prefers-color-scheme: dark) {
.plan {
.plan-wrapper {
background: $dark_mode_foreground;
}
.plan-header {
.title {
color: $dark_mode_text_primary;
}
.description {
color: $dark_mode_text_secondary;
}
}
.plan-features {
.storage-size {
color: $dark_mode_text_primary;
}
.storage-description {
color: $dark_mode_text_primary;
}
}
.plan-footer {
.sign-in-button {
background: rgba($theme, 0.1);
/deep/ .content {
color: $theme;
}
}
}
}
}
</style>

View File

@@ -182,7 +182,7 @@
.detail-storage-item {
&.others {
&.others, &.disk {
.icon {

View File

@@ -80,8 +80,22 @@
.cell-image-thumbnail {
.image {
img {
&.blurred {
display: none;
}
}
}
.info {
.name {
color: $dark_mode_text_primary;
}
.description {
color: $dark_mode_text_secondary;
}

View File

@@ -239,7 +239,7 @@
.table-body {
tr {
border-radius: 8px;
border-bottom: 1px solid #f5f5f5;
//border-bottom: 1px solid #f5f5f5;
&:hover {
background: $light_background;

View File

@@ -46,7 +46,13 @@ const Helpers = {
Vue.prototype.$scrollTop = function () {
var container = document.getElementById('vue-file-manager')
container.scrollTop = 0
if (container) {
container.scrollTop = 0
}
}
Vue.prototype.$getImage = function (source) {
return source ? '/' + source : ''
}
Vue.prototype.$getCreditCardBrand = function (brand) {

View File

@@ -32,6 +32,10 @@ import Invoices from './views/Admin/Invoices'
import Dashboard from './views/Admin/Dashboard'
import AppSettings from './views/Admin/AppSettings/AppSettings'
// Pages
import Pages from './views/Admin/Pages'
import PageEdit from './views/Admin/Pages/PageEdit'
// App Settings
import AppAppearance from './views/Admin/AppSettings/AppSettingsTabs/Appearance'
import AppPayments from './views/Admin/AppSettings/AppSettingsTabs/Payments'
@@ -106,6 +110,24 @@ const routesAdmin = [
title: 'Invoices'
},
},
{
name: 'Pages',
path: '/admin/pages',
component: Pages,
meta: {
requiresAuth: true,
title: 'Pages'
},
},
{
name: 'PageEdit',
path: '/admin/pages/:slug',
component: PageEdit,
meta: {
requiresAuth: true,
title: 'Edit Page'
},
},
{
name: 'Plans',
path: '/admin/plans',

View File

@@ -52,6 +52,14 @@
Invoices
</div>
</router-link>
<router-link :to="{name: 'Pages'}" class="menu-list-item link">
<div class="icon">
<monitor-icon size="17"></monitor-icon>
</div>
<div class="label">
Pages
</div>
</router-link>
</div>
</ContentGroup>
</ContentSidebar>
@@ -61,7 +69,7 @@
</template>
<script>
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon } from 'vue-feather-icons'
import { UsersIcon, SettingsIcon, FileTextIcon, CreditCardIcon, DatabaseIcon, BoxIcon, MonitorIcon } from 'vue-feather-icons'
import ContentSidebar from '@/components/Sidebar/ContentSidebar'
import ContentGroup from '@/components/Sidebar/ContentGroup'
import { mapGetters } from 'vuex'
@@ -72,6 +80,7 @@
...mapGetters(['config']),
},
components: {
MonitorIcon,
BoxIcon,
DatabaseIcon,
CreditCardIcon,

View File

@@ -27,14 +27,21 @@
<div class="block-wrapper">
<label>App Logo (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_logo', app.logo)" :image="'/' + app.logo" v-model="app.logo" :error="errors[0]"/>
<ImageInput @input="$updateImage('/settings', 'app_logo', app.logo)" :image="$getImage(app.logo)" v-model="app.logo" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Logo Horizontal (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo Horizontal" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_logo_horizontal', app.logo_horizontal)" :image="$getImage(app.logo_horizontal)" v-model="app.logo_horizontal" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Favicon (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
<ImageInput @input="$updateImage('/settings', 'app_favicon', app.favicon)" :image="'/' + app.favicon" v-model="app.favicon" :error="errors[0]"/>
<ImageInput @input="$updateImage('/settings', 'app_favicon', app.favicon)" :image="$getImage(app.favicon)" v-model="app.favicon" :error="errors[0]"/>
</ValidationProvider>
</div>
</div>
@@ -79,6 +86,7 @@
title: '',
description: '',
logo: undefined,
logo_horizontal: undefined,
favicon: undefined,
},
}
@@ -86,7 +94,7 @@
mounted() {
axios.get('/api/settings', {
params: {
column: 'app_title|app_description|app_logo|app_favicon'
column: 'app_title|app_description|app_logo|app_favicon|app_logo_horizontal'
}
})
.then(response => {
@@ -95,6 +103,7 @@
this.app.title = response.data.app_title
this.app.description = response.data.app_description
this.app.logo = response.data.app_logo
this.app.logo_horizontal = response.data.app_logo_horizontal
this.app.favicon = response.data.app_favicon
})
}

View File

@@ -10,13 +10,14 @@
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Storage Limitation:</label>
<small class="input-help">If this value is off, all users will have infinity storage capacity and you won't be <br/>able to charge your users for storage plan.</small>
</div>
<SwitchInput @input="$updateText('/settings', 'storage_limitation', app.storageLimitation)" v-model="app.storageLimitation" class="switch" :state="app.storageLimitation"/>
</div>
</div>
</div>
<div class="block-wrapper" v-if="app.storageLimitation">
<label>Default Storage Space for Accounts:</label>
<label>Default Storage Space for User Accounts:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Default Storage Space" rules="required" v-slot="{ errors }">
<input @input="$updateText('/settings', 'storage_default', app.defaultStorage)"
v-model="app.defaultStorage"
@@ -34,6 +35,7 @@
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Allow User Registration:</label>
<small class="input-help">You can disable public registration for new users. You will still able to <br/>create new users in administration panel.</small>
</div>
<SwitchInput @input="$updateText('/settings', 'registration', app.userRegistration)" v-model="app.userRegistration" class="switch" :state="app.userRegistration"/>
</div>

View File

@@ -4,7 +4,8 @@
<div class="dashboard-headline">
<div class="logo">
<a href="https://vuefilemanager.com" target="_blank">
<img src="/assets/images/vuefilemanager-horizontal-logo.svg" alt="VueFileManager">
<img src="/assets/images/vuefilemanager-horizontal-logo.svg" alt="VueFileManager" class="light-mode">
<img src="/assets/images/vuefilemanager-horizontal-logo-dark.svg" alt="VueFileManager" class="dark-mode">
</a>
</div>
<div class="metadata">
@@ -192,12 +193,34 @@
}
}
.logo {
.dark-mode {
display: none;
}
}
@media only screen and (max-width: 690px) {
}
@media (prefers-color-scheme: dark) {
.logo {
.dark-mode {
display: block;
}
.light-mode {
display: none;
}
}
.metadata {
.meta-title {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -0,0 +1,178 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading && pages.length > 0">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<div class="content-page">
<DatatableWrapper :paginator="false" :columns="columns" :data="pages" class="table table-users">
<template scope="{ row }">
<tr>
<td class="name" style="min-width: 200px">
<router-link :to="{name: 'PageEdit', params: {slug: row.data.attributes.slug}}" class="cell-item" tag="div">
<span>{{ row.data.attributes.title }}</span>
</router-link>
</td>
<td>
<span class="cell-item">
{{ row.data.attributes.slug }}
</span>
</td>
<td>
<span class="cell-item">
<SwitchInput @input="changeStatus($event, row.data.attributes.slug)" class="switch" :state="row.data.attributes.visibility"/>
</span>
</td>
<td>
<div class="action-icons">
<router-link :to="{name: 'PageEdit', params: {slug: row.data.attributes.slug}}">
<edit-2-icon size="15" class="icon icon-edit"></edit-2-icon>
</router-link>
</div>
</td>
</tr>
</template>
</DatatableWrapper>
</div>
</div>
<div id="loader" v-if="isLoading">
<Spinner></Spinner>
</div>
</div>
</template>
<script>
import DatatableWrapper from '@/components/Others/Tables/DatatableWrapper'
import MobileActionButton from '@/components/FilesView/MobileActionButton'
import EmptyPageContent from '@/components/Others/EmptyPageContent'
import SwitchInput from '@/components/Others/Forms/SwitchInput'
import MobileHeader from '@/components/Mobile/MobileHeader'
import SectionTitle from '@/components/Others/SectionTitle'
import ButtonBase from '@/components/FilesView/ButtonBase'
import {Trash2Icon, Edit2Icon} from "vue-feather-icons";
import PageHeader from '@/components/Others/PageHeader'
import ColorLabel from '@/components/Others/ColorLabel'
import Spinner from '@/components/FilesView/Spinner'
import axios from 'axios'
export default {
name: 'Pages',
components: {
MobileActionButton,
EmptyPageContent,
DatatableWrapper,
SectionTitle,
MobileHeader,
SwitchInput,
Trash2Icon,
PageHeader,
ButtonBase,
ColorLabel,
Edit2Icon,
Spinner,
},
data() {
return {
isLoading: true,
pages: undefined,
columns: [
{
label: 'Page',
field: 'data.attributes.title',
sortable: true
},
{
label: 'Slug',
field: 'data.attributes.slug',
sortable: true
},
{
label: 'Status',
field: 'data.attributes.visibility',
sortable: true
},
{
label: this.$t('admin_page_user.table.action'),
sortable: false
},
],
}
},
methods: {
changeStatus(val, slug) {
this.$updateText('/pages/' + slug, 'visibility', val)
}
},
created() {
axios.get('/api/pages')
.then(response => {
this.pages = response.data.data
this.isLoading = false
})
}
}
</script>
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.table-tools {
background: white;
display: flex;
justify-content: space-between;
padding: 15px 0 10px;
position: sticky;
top: 40px;
z-index: 9;
}
.table {
.cell-item {
@include font-size(15);
white-space: nowrap;
}
.name {
font-weight: 700;
cursor: pointer;
}
}
@media only screen and (max-width: 690px) {
.table-tools {
padding: 0 0 5px;
}
}
@media (prefers-color-scheme: dark) {
.table-tools {
background: $dark_mode_background;
}
.action-icons {
.icon {
cursor: pointer;
circle, path, line, polyline {
stroke: $dark_mode_text_primary;
}
}
}
.user-thumbnail {
.info {
.email {
color: $dark_mode_text_secondary;
}
}
}
}
</style>

View File

@@ -0,0 +1,114 @@
<template>
<div id="single-page">
<div id="page-content" v-if="! isLoading && page">
<MobileHeader :title="$router.currentRoute.meta.title"/>
<PageHeader :title="$router.currentRoute.meta.title"/>
<div class="content-page">
<ValidationObserver ref="personalInformation" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<FormLabel>{{ page.data.attributes.title }}</FormLabel>
<!--Visible-->
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Visibility:</label>
<small class="input-help">Status of your page visibility on website.</small>
</div>
<SwitchInput @input="changeStatus" class="switch" :state="page.data.attributes.visibility"/>
</div>
</div>
</div>
<div class="block-wrapper">
<label>Title:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input @input="$updateText('/pages/' + $route.params.slug, 'title', page.data.attributes.title)" v-model="page.data.attributes.title"
placeholder="Title name" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Slug:</label>
<div class="input-wrapper">
<input v-model="page.data.attributes.slug" type="text" disabled/>
</div>
</div>
<div class="block-wrapper">
<label>Title:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<textarea
@input="$updateText('/pages/' + $route.params.slug, 'content', page.data.attributes.content)"
v-model="page.data.attributes.content"
placeholder="Type your content here..."
:class="{'is-error': errors[0]}"
rows="18"
></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
</ValidationObserver>
</div>
</div>
<div id="loader" v-if="isLoading">
<Spinner></Spinner>
</div>
</div>
</template>
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import FormLabel from '@/components/Others/Forms/FormLabel'
import {required} from 'vee-validate/dist/rules'
import SwitchInput from '@/components/Others/Forms/SwitchInput'
import MobileHeader from '@/components/Mobile/MobileHeader'
import SectionTitle from '@/components/Others/SectionTitle'
import ButtonBase from '@/components/FilesView/ButtonBase'
import PageHeader from '@/components/Others/PageHeader'
import Spinner from '@/components/FilesView/Spinner'
import axios from 'axios'
export default {
name: 'PageEdit',
components: {
ValidationProvider,
ValidationObserver,
FormLabel,
SectionTitle,
MobileHeader,
SwitchInput,
PageHeader,
ButtonBase,
required,
Spinner,
},
data() {
return {
isLoading: true,
page: undefined,
}
},
methods: {
changeStatus(val) {
this.$updateText('/pages/' + this.$route.params.slug , 'visibility', val)
}
},
created() {
axios.get('/api/pages/' + this.$route.params.slug)
.then(response => {
this.page = response.data
this.isLoading = false
})
}
}
</script>
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
@import '@assets/vue-file-manager/_forms';
</style>

View File

@@ -44,10 +44,10 @@
</td>
<td>
<span class="cell-item">
{{ row.relationships.storage.data.attributes.used }}%
{{ row.relationships.storage.data.attributes.used_formatted }}
</span>
</td>
<td>
<td v-if="config.storageLimit">
<span class="cell-item">
{{ row.relationships.storage.data.attributes.capacity_formatted }}
</span>
@@ -155,7 +155,8 @@
{
label: this.$t('admin_page_user.table.storage_capacity'),
field: 'relationships.storage.data.attributes.capacity',
sortable: true
sortable: true,
hidden: ! this.config.storageLimit,
},
{
label: this.$t('admin_page_user.table.created_at'),
@@ -211,17 +212,6 @@
.table-tools {
background: $dark_mode_background;
}
.action-icons {
.icon {
cursor: pointer;
circle, path, line, polyline {
stroke: $dark_mode_text_primary;
}
}
}
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<PageTab :is-loading="isLoading" class="form-fixed-width" v-if="storage">
<PageTabGroup v-if="! config.isSaaS || ! user.data.attributes.subscription">
<PageTabGroup v-if="config.storageLimit || ! user.data.attributes.subscription">
<FormLabel>{{ $t('user_box_storage.title') }}</FormLabel>
<InfoBox>
<p>{{ $t('user_box_storage.description') }}</p>

View File

@@ -3,7 +3,9 @@
<!--Create new password-->
<AuthContent name="create-new-password" :visible="true">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<img v-if="config.app_logo" class="logo" :src="config.app_logo" :alt="config.app_name">
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_create_password.title') }}</h1>
<h2>{{ $t('page_create_password.subtitle') }}</h2>

View File

@@ -3,7 +3,9 @@
<!--Forgotten your password?-->
<AuthContent name="forgotten-password" :visible="true">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<img v-if="config.app_logo" class="logo" :src="config.app_logo" :alt="config.app_name">
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_forgotten_password.title') }}</h1>
<h2>{{ $t('page_forgotten_password.subtitle') }}</h2>

View File

@@ -3,7 +3,9 @@
<!--Log In by Email-->
<AuthContent name="log-in" :visible="true">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<img v-if="config.app_logo" class="logo" :src="config.app_logo" :alt="config.app_name">
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_login.title') }}</h1>
<h2>{{ $t('page_login.subtitle') }}</h2>
@@ -206,6 +208,9 @@
})
},
},
created() {
this.$scrollTop()
}
}
</script>

View File

@@ -3,7 +3,9 @@
<!--Registration-->
<AuthContent name="sign-up" :visible="true">
<img class="logo" :src="config.app_logo" :alt="config.app_name">
<img v-if="config.app_logo" class="logo" :src="config.app_logo" :alt="config.app_name">
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
<h1>{{ $t('page_registration.title') }}</h1>
<h2>{{ $t('page_registration.subtitle') }}</h2>
@@ -51,6 +53,12 @@
</div>
<div>
<p class="legal-agreement">
By clicking on 'Create Account' button I agree to the
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}" target="_blank">Terms of Service</router-link>
and
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}" target="_blank">Privacy Policy</router-link>.
</p>
<AuthButton icon="chevron-right" :text="$t('page_registration.button_create_account')" :loading="isLoading" :disabled="isLoading"/>
</div>
</ValidationObserver>
@@ -168,10 +176,26 @@
})
}
},
created() {
this.$scrollTop()
}
}
</script>
<style scoped lang="scss">
@import '@assets/vue-file-manager/_auth-form';
@import '@assets/vue-file-manager/_auth';
.legal-agreement {
@include font-size(16);
padding: 55px 0 0;
max-width: 400px;
font-weight: 700;
line-height: 1.6;
margin: 0 auto;
a {
color: $theme;
}
}
</style>

View File

@@ -3,7 +3,7 @@
<ContentSidebar>
<ContentGroup v-if="config.isSaaS && storage.used > 95">
<ContentGroup v-if="config.storageLimit && storage.used > 95">
<UpgradeSidebarBanner />
</ContentGroup>

View File

@@ -11,38 +11,42 @@
<PageTitle
class="headline"
title="Contact Us"
description="Dominion, open bearing brought may dominion male beginning."
description="Do you have any questions? Get in touch with us."
></PageTitle>
<!--Content-->
<div class="page-content">
<ValidationObserver @submit.prevent="contactForm" ref="contactForm" v-slot="{ invalid }" tag="form"
class="form block-form">
<ValidationObserver v-if="! isSuccess" @submit.prevent="contactForm" ref="contactForm" v-slot="{ invalid }" tag="form"
class="form block-form">
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
v-slot="{ errors }">
<input v-model="contact.email" :placeholder="$t('page_registration.placeholder_email')" type="email"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('page_registration.label_email') }}</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="E-Mail" rules="required"
v-slot="{ errors }">
<input v-model="contact.email" :placeholder="$t('page_registration.placeholder_email')" type="email"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Message:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Message" rules="required"
v-slot="{ errors }">
<textarea v-model="contact.message" placeholder="Type your message here..." rows="4" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>Message:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Message" rules="required"
v-slot="{ errors }">
<textarea v-model="contact.message" placeholder="Type your message here..." rows="4" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<div>
<AuthButton class="submit-button" icon="chevron-right" text="Send Message" :loading="isLoading" :disabled="isLoading"/>
</div>
</ValidationObserver>
</div>
<InfoBox v-if="isError">
<p>Something went wrong, please try it again.</p>
</InfoBox>
<div>
<AuthButton class="submit-button" icon="chevron-right" text="Send Message" :loading="isLoading" :disabled="isLoading"/>
</div>
</ValidationObserver>
<InfoBox v-if="isSuccess">
<p>Your message was send successfully.</p>
</InfoBox>
</div>
<!--Footer-->
@@ -52,12 +56,12 @@
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import AuthButton from '@/components/Auth/AuthButton'
import {required} from 'vee-validate/dist/rules'
import PageTitle from '@/components/Index/Components/PageTitle'
import PageFooter from '@/components/Index/IndexPageFooter'
import Navigation from '@/components/Index/IndexNavigation'
import InfoBox from '@/components/Others/Forms/InfoBox'
import AuthButton from '@/components/Auth/AuthButton'
import {required} from 'vee-validate/dist/rules'
import {mapGetters} from 'vuex'
import axios from 'axios'
@@ -71,6 +75,7 @@
Navigation,
PageTitle,
required,
InfoBox,
},
computed: {
...mapGetters(['config']),
@@ -78,6 +83,8 @@
data() {
return {
isLoading: false,
isSuccess: false,
isError: false,
contact: {
email: '',
message: '',
@@ -97,59 +104,20 @@
// Send request to get user token
axios
.post('/api/user/register', this.register)
.post('/api/contact', this.contact)
.then(() => {
// End loading
this.isLoading = false
// Set login state
this.$store.commit('SET_AUTHORIZED', true)
// Go to files page
this.$router.push({name: 'Files'})
this.isSuccess = true
})
.catch(error => {
if (error.response.status == 401) {
if (error.response.data.error === 'invalid_client') {
events.$emit('alert:open', {
emoji: '🤔',
title: this.$t('popup_passport_error.title'),
message: this.$t('popup_passport_error.message')
})
}
}
if (error.response.status == 500) {
events.$emit('alert:open', {
emoji: '🤔',
title: this.$t('popup_signup_error.title'),
message: this.$t('popup_signup_error.message')
})
}
if (error.response.status == 422) {
if (error.response.data.errors['email']) {
this.$refs.sign_up.setErrors({
'E-Mail': error.response.data.errors['email']
});
}
if (error.response.data.errors['password']) {
this.$refs.sign_up.setErrors({
'Your New Password': error.response.data.errors['password']
});
}
}
// End loading
this.isLoading = false
this.isError = true
})
}
},
@@ -165,21 +133,15 @@
@import '@assets/vue-file-manager/_mixins';
@import '@assets/vue-file-manager/_forms';
.form {
max-width: 100%;
}
.headline {
padding-top: 70px;
padding-bottom: 50px;
}
.page-content {
p {
@include font-size(20);
font-weight: 500;
line-height: 1.65;
padding-bottom: 30px;
}
}
.form.block-form {
.submit-button {
@@ -193,7 +155,10 @@
}
@media only screen and (max-width: 690px) {
@media only screen and (max-width: 960px) {
.headline {
padding-top: 50px;
padding-bottom: 30px;
}
}
</style>

View File

@@ -10,21 +10,11 @@
<!--Headline-->
<PageTitle
class="headline"
title="Terms & Conditions"
:title="page.data.attributes.title"
></PageTitle>
<!--Content-->
<div class="page-content">
<p>Dominion, open bearing brought may dominion male beginning god land greater forth there fruit whose creepeth two their great there morning multiply Third image
first. Waters waters. Which, moving place let said their saw, behold good appear of days very dominion called shall creeping creepeth subdue living, over set
subdue above under form make appear blessed, given shall midst likeness midst days him fruit seasons void hath light it him and days gathering give itself his
heaven fruitful fourth darkness bearing. Bring third a our gathered fruitful man sixth place.</p>
<p>Have give land may man together unto appear bring it is creature. Gathering abundantly. Beast night. Blessed be Lights, second brought. Yielding without set the
open give one seed of fowl said living years said female. Second hath subdue, give dry which very there night is. Whales very seed heaven set image.</p>
<p>Was moved, air seas Without. Winged years third. Dry under upon very Light tree. Given be meat seed fish. Over earth was beast fruitful. Abundantly great female
sixth. Which divide our days fly heaven seasons. Lights form created darkness third morning, and won't whales. Living fowl bearing saying dominion first female.
That to lesser our doesn't morning place.</p>
</div>
<div class="page-content" v-html="page.data.attributes.content_formatted"></div>
</div>
<!--Footer-->
@@ -40,7 +30,7 @@
import axios from 'axios'
export default {
name: 'SaaSLandingPage',
name: 'DynamicPage',
components: {
PageFooter,
Navigation,
@@ -52,10 +42,26 @@
data() {
return {
isLoading: false,
page: undefined,
}
},
watch: {
$route(to, from) {
this.getPage()
}
},
methods: {
getPage() {
axios.get('/api/page/' + this.$route.params.slug)
.then(response => {
this.page = response.data
this.$scrollTop()
})
}
},
created() {
this.$scrollTop()
this.getPage()
}
}
</script>
@@ -72,7 +78,7 @@
.page-content {
p {
/deep/ p {
@include font-size(20);
font-weight: 500;
line-height: 1.65;
@@ -84,7 +90,10 @@
}
@media only screen and (max-width: 690px) {
@media only screen and (max-width: 960px) {
.headline {
padding-top: 50px;
padding-bottom: 30px;
}
}
</style>

View File

@@ -47,12 +47,19 @@
},
computed: {
...mapGetters(['config']),
},
data() {
return {
isLoading: false,
}
},
beforeMount() {
if (! this.config.isSaaS) {
this.$router.push({name: 'SignIn'})
}
},
created() {
this.$scrollTop()
}
}
</script>
@@ -61,12 +68,4 @@
@import '@assets/vue-file-manager/_landing-page';
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
@media (prefers-color-scheme: dark) {
}
@media only screen and (max-width: 690px) {
}
</style>

View File

@@ -91,7 +91,7 @@
<span class="email">{{ user.data.attributes.email }}</span>
</div>
</div>
<div v-if="config.isSaaS && config.app_payments_active" class="headline-actions">
<div v-if="config.storageLimit && config.isSaaS && config.app_payments_active" class="headline-actions">
<router-link :to="{name: 'UpgradePlan'}" v-if="! user.relationships.subscription || (user.relationships.subscription && ! user.relationships.subscription.data.attributes.is_highest)">
<ButtonBase class="upgrade-button" button-style="secondary" type="button">
Upgrade Plan
@@ -219,6 +219,10 @@
.info {
.name {
color: $dark_mode_text_primary;
}
.email {
color: $dark_mode_text_secondary;
}

View File

@@ -36,6 +36,13 @@
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Logo Horizontal (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo" v-slot="{ errors }">
<ImageInput v-model="app.logo_horizontal" :error="errors[0]"/>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>App Favicon (optional):</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Favicon" v-slot="{ errors }">
@@ -71,6 +78,7 @@
<label class="input-label">Storage Limitation:</label>
</div>
<SwitchInput v-model="app.storageLimitation" class="switch" :state="app.storageLimitation"/>
<small class="input-help">If this value is off, all users will have infinity storage capacity and you won't be <br/>able to charge your users for storage plan.</small>
</div>
</div>
</div>
@@ -94,6 +102,7 @@
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Allow User Registration:</label>
<small class="input-help">You can disable public registration for new users. You will still able to <br/>create new users in administration panel.</small>
</div>
<SwitchInput v-model="app.userRegistration" class="switch" :state="app.userRegistration"/>
</div>
@@ -147,6 +156,7 @@
title: '',
description: '',
logo: undefined,
logo_horizontal: undefined,
favicon: undefined,
contactMail: '',
googleAnalytics: '',
@@ -182,6 +192,9 @@
if (this.app.logo)
formData.append('logo', this.app.logo)
if (this.app.logo_horizontal)
formData.append('logo_horizontal', this.app.logo_horizontal)
if (this.app.favicon)
formData.append('favicon', this.app.favicon)

View File

@@ -120,4 +120,13 @@
.auth-form input {
min-width: 380px;
}
@media (prefers-color-scheme: dark) {
.additional-link {
.black-link {
color: $dark_mode_text_primary;
}
}
}
</style>

View File

@@ -642,6 +642,64 @@
@media (prefers-color-scheme: dark) {
.plan-title {
h1 {
color: $dark_mode_text_primary;
}
h2 {
color: $dark_mode_text_secondary;
}
}
.credit-card {
background: $dark_mode_foreground;
span, .credit-card-numbers {
color: $dark_mode_text_primary;
}
}
.change-payment {
span {
color: $dark_mode_text_secondary;
}
a {
color: $theme;
}
}
.summary-list {
background: $dark_mode_foreground;
.disclaimer {
color: $dark_mode_text_secondary;
}
.row {
&:last-of-type {
border-top: 1px solid $dark_mode_border_color;
b {
color: $dark_mode_text_primary;
}
}
}
.cell {
b {
color: $dark_mode_text_primary;
}
small {
color: $dark_mode_text_secondary;
}
}
}
}
</style>

View File

@@ -89,7 +89,16 @@
}
@media (prefers-color-scheme: dark) {
.plan-title {
h1 {
color: $dark_mode_text_primary;
}
h2 {
color: $dark_mode_text_secondary;
}
}
}
</style>

View File

@@ -274,7 +274,7 @@
.cell-item {
white-space: nowrap;
color: $text;
//color: $text;
font-weight: 700;
}
}
@@ -350,6 +350,7 @@
&.horizontal {
border-bottom: 2px solid $dark_mode_border_color;
background: $dark_mode_background;
}
.menu-list-item {
@@ -391,4 +392,18 @@
}
}
}
.table {
.action-icons {
.icon {
circle, path, line, polyline {
stroke: $dark_mode_text_primary;
}
}
}
}
}

View File

@@ -1,6 +1,13 @@
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.auth-logo-text {
@include font-size(22);
font-weight: 800;
margin-bottom: 40px;
display: block;
}
.auth-form {
text-align: center;
max-width: 600px;

View File

@@ -237,12 +237,26 @@ input[type="email"] {
.form {
.input-help {
color: $dark_mode_text_secondary;
}
&.block-form {
.block-wrapper label {
color: $dark_mode_text_primary;
}
}
.inline-wrapper {
.switch-label {
.input-label {
color: $dark_mode_text_primary;
}
}
}
}
textarea,

View File

@@ -4,10 +4,6 @@
padding-left: 25px;
padding-right: 25px;
.page-content {
margin-bottom: 80px;
}
&.large {
width: 1490px;
}
@@ -45,8 +41,8 @@
@media only screen and (max-width: 960px) {
.page-wrapper {
padding-left: 25px;
padding-right: 25px;
padding-left: 35px;
padding-right: 35px;
&.small {
width: 100%;

View File

@@ -84,4 +84,18 @@
100% {
transform: rotate(360deg);
}
}
@media (prefers-color-scheme: dark) {
.duplicator {
.duplicator-item {
background: $dark_mode_foreground;
input,
textarea {
background: $dark_mode_background;
}
}
}
}

View File

@@ -34,7 +34,8 @@
app_name: '{{ isset($settings->app_title) && $settings->app_title ? $settings->app_title : 'VueFileManager' }}',
app_description: '{{ isset($settings->app_description) && $settings->app_description ? $settings->app_description : 'Your self-hosted storage cloud software powered by Laravel and Vue' }}',
app_logo: '{{ isset($settings->app_logo) && $settings->app_logo ? $settings->app_logo : asset(config('vuefilemanager.app_logo')) }}',
app_logo: '{{ isset($settings->app_logo) && $settings->app_logo ? $settings->app_logo : null }}',
app_logo_horizontal: '{{ isset($settings->app_logo_horizontal) && $settings->app_logo_horizontal ? $settings->app_logo_horizontal : null }}',
app_payments_active: {{ isset($settings->payments_active) ? $settings->payments_active : 0 }},

View File

@@ -0,0 +1 @@
<p>{{ $request['message'] }}</p>

View File

@@ -61,6 +61,10 @@ Route::group(['middleware' => ['api']], function () {
Route::post('/user/check', 'Auth\AuthController@check_account');
Route::post('/user/register', 'Auth\AuthController@register');
Route::post('/user/login', 'Auth\AuthController@login');
// Pages
Route::post('/contact', 'AppFunctionsController@contact_form');
Route::get('/page/{slug}', 'AppFunctionsController@get_page');
});
// User master Routes
@@ -142,6 +146,11 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m
Route::get('/plans/{id}', 'Admin\PlanController@show');
Route::get('/plans', 'Admin\PlanController@index');
// Pages
Route::get('/pages', 'Admin\PagesController@index');
Route::get('/pages/{slug}', 'Admin\PagesController@show');
Route::patch('/pages/{slug}', 'Admin\PagesController@update');
// Invoices
Route::get('/invoices/{token}', 'Admin\InvoiceController@show');
Route::get('/invoices', 'Admin\InvoiceController@index');

View File

@@ -1 +0,0 @@
9999999999a:2:{s:4:"plan";a:20:{s:2:"id";s:12:"starter-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:999;s:14:"amount_decimal";s:3:"999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593769244;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HZvEp2UNNs7zYx";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HZvEp2UNNs7zYx";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593769243;s:11:"description";s:24:"The best for starting up";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"200";}s:4:"name";s:12:"Starter Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593769244;}}

View File

@@ -1 +1 @@
9999999999a:3:{i:0;a:2:{s:4:"plan";a:20:{s:2:"id";s:13:"business-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:4990;s:14:"amount_decimal";s:4:"4990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593792006;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_Ha1LO6Ji2JLKYI";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_Ha1LO6Ji2JLKYI";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593792005;s:11:"description";s:29:"Best for your business growth";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:4:"1000";}s:4:"name";s:13:"Business Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593792006;}}i:1;a:2:{s:4:"plan";a:20:{s:2:"id";s:17:"professional-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:1999;s:14:"amount_decimal";s:4:"1999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593791361;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_Ha1AMwcPYAuxrU";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_Ha1AMwcPYAuxrU";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593791359;s:11:"description";s:26:"The best for professionals";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"500";}s:4:"name";s:17:"Professional Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593791361;}}i:2;a:2:{s:4:"plan";a:20:{s:2:"id";s:12:"starter-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:999;s:14:"amount_decimal";s:3:"999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593769244;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HZvEp2UNNs7zYx";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HZvEp2UNNs7zYx";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593769243;s:11:"description";s:24:"The best for starting up";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"200";}s:4:"name";s:12:"Starter Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593769244;}}}
9999999999a:4:{i:0;a:2:{s:4:"plan";a:20:{s:2:"id";s:9:"uber-pack";s:6:"object";s:4:"plan";s:6:"active";b:0;s:15:"aggregate_usage";N;s:6:"amount";i:9990;s:14:"amount_decimal";s:4:"9990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1594221277;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HbskYkFaOAiNik";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HbskYkFaOAiNik";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1594221277;s:11:"description";s:19:"For your best needs";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:5:"10000";}s:4:"name";s:9:"Uber Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1594221277;}}i:1;a:2:{s:4:"plan";a:20:{s:2:"id";s:13:"business-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:4990;s:14:"amount_decimal";s:4:"4990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593792006;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_Ha1LO6Ji2JLKYI";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_Ha1LO6Ji2JLKYI";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593792005;s:11:"description";s:29:"Best for your business growth";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:4:"1000";}s:4:"name";s:13:"Business Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593792006;}}i:2;a:2:{s:4:"plan";a:20:{s:2:"id";s:17:"professional-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:1999;s:14:"amount_decimal";s:4:"1999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593791361;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_Ha1AMwcPYAuxrU";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_Ha1AMwcPYAuxrU";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593791359;s:11:"description";s:26:"The best for professionals";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"500";}s:4:"name";s:17:"Professional Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593791361;}}i:3;a:2:{s:4:"plan";a:20:{s:2:"id";s:12:"starter-pack";s:6:"object";s:4:"plan";s:6:"active";b:1;s:15:"aggregate_usage";N;s:6:"amount";i:999;s:14:"amount_decimal";s:3:"999";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1593769244;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HZvEp2UNNs7zYx";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HZvEp2UNNs7zYx";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1593769243;s:11:"description";s:24:"The best for starting up";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:3:"200";}s:4:"name";s:12:"Starter Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1593769244;}}}

View File

@@ -1 +1 @@
1593942265i:1593942265;
1594282067i:1594282067;

View File

@@ -1 +0,0 @@
9999999999a:0:{}

View File

@@ -0,0 +1 @@
9999999999a:2:{s:4:"plan";a:20:{s:2:"id";s:9:"uber-pack";s:6:"object";s:4:"plan";s:6:"active";b:0;s:15:"aggregate_usage";N;s:6:"amount";i:9990;s:14:"amount_decimal";s:4:"9990";s:14:"billing_scheme";s:8:"per_unit";s:7:"created";i:1594221277;s:8:"currency";s:3:"usd";s:8:"interval";s:5:"month";s:14:"interval_count";i:1;s:8:"livemode";b:0;s:8:"metadata";a:0:{}s:8:"nickname";N;s:7:"product";s:19:"prod_HbskYkFaOAiNik";s:5:"tiers";N;s:10:"tiers_mode";N;s:15:"transform_usage";N;s:17:"trial_period_days";N;s:10:"usage_type";s:8:"licensed";}s:7:"product";a:14:{s:2:"id";s:19:"prod_HbskYkFaOAiNik";s:6:"object";s:7:"product";s:6:"active";b:1;s:10:"attributes";a:0:{}s:7:"created";i:1594221277;s:11:"description";s:19:"For your best needs";s:6:"images";a:0:{}s:8:"livemode";b:0;s:8:"metadata";a:1:{s:8:"capacity";s:5:"10000";}s:4:"name";s:9:"Uber Pack";s:20:"statement_descriptor";N;s:4:"type";s:7:"service";s:10:"unit_label";N;s:7:"updated";i:1594221277;}}

View File

@@ -1 +1 @@
1593942265i:1;
1594282067i:1;

6
webpack.mix.js vendored
View File

@@ -23,4 +23,10 @@ mix.js('resources/js/main.js', 'public/js')
}
},
})
.options({
hmrOptions: {
host: '172.20.10.5',
port: '8080'
},
})
.disableNotifications();