diff --git a/.env.example b/.env.example
new file mode 100644
index 000000000..5a4275504
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,25 @@
+
+DB_CONNECTION=mysql
+DB_HOST=数据库地址
+DB_PORT=数据库端口
+DB_DATABASE=数据库名称
+DB_USERNAME=用户名
+DB_PASSWORD=密码
+
+
+# 下面配置无需修改
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=false
+APP_LOG_LEVEL=error
+APP_LOG=daily
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+QUEUE_DRIVER=sync
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..967315dd3
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+* text=auto
+*.css linguist-vendored
+*.scss linguist-vendored
+*.js linguist-vendored
+CHANGELOG.md export-ignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..7f8b02e84
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+/node_modules
+/public/hot
+/public/storage
+/storage/*.key
+/vendor
+/.idea
+/.vagrant
+Homestead.json
+Homestead.yaml
+npm-debug.log
+yarn-error.log
+/.env
+/database/seeds/MyPayTableSeeder.php
+.phpstorm.meta.php
+_ide_helper*
\ No newline at end of file
diff --git a/.version b/.version
new file mode 100644
index 000000000..7643b3efa
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+{"version":"2.8","md5":"734c79b5b39f298efbc7fba546e6c0fa","url":"https:\/\/github.com\/Tai7sy\/card-system\/releases\/download\/2.8\/card_release.tar.gz"}
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..c5d0febe1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,26 @@
+
+### 关于
+
+> 当前版本: 2.8
+
+> [安装教程 V2.X](https://github.com/Tai7sy/card-system/wiki/BT%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B---V2.X)
+
+> [更新教程 V2.X](https://github.com/Tai7sy/card-system/wiki/V2.X-%E6%9B%B4%E6%96%B0%E6%95%99%E7%A8%8B)
+
+> 广告: 商业版 [http://demo.fakaxitong.com/](http://demo.fakaxitong.com/)
+### 常见问题
+ - 修改 `.env` 文件无效 / 修改网站设置无效
+ ```
+ cd /www/wwwroot/example.com #进入网站目录
+ php artisan config:clear
+ php artisan cache:clear
+ ```
+ - 忘记密码后重置
+ ```
+ cd /www/wwwroot/example.com #进入网站目录
+ php artisan reset:password admin@qq.com 123456
+ ```
+ - 500错误
+ ```
+ storage/logs 里面有错误详细内容, 可以自行参考解决, 或者附录log文件提交issue/mail
+ ```
diff --git a/app/Card.php b/app/Card.php
new file mode 100644
index 000000000..b80ebb237
--- /dev/null
+++ b/app/Card.php
@@ -0,0 +1,2 @@
+hasMany(Order::class); } function product() { return $this->belongsTo(Product::class); } public static function add_cards($spfaef2f, $spad8100, $spdc3fe5, $spc3ee59, $sp28982f, $sp425ca9) { DB::statement('call add_cards(?,?,?,?,?,?)', array($spfaef2f, $spad8100, $spdc3fe5, $spc3ee59, $sp28982f, (int) $sp425ca9)); } public static function _trash($spe440a8) { DB::transaction(function () use($spe440a8) { $sp822fce = clone $spe440a8; $sp822fce->selectRaw('`product_id`,SUM(`count_all`-`count_sold`) as `count_left`')->groupBy('product_id')->orderByRaw('`product_id`')->chunk(100, function ($speab77e) { foreach ($speab77e as $sp9bfdd7) { $spaeec37 = \App\Product::where('id', $sp9bfdd7->product_id)->lockForUpdate()->first(); if ($spaeec37) { $spaeec37->count_all -= $sp9bfdd7->count_left; $spaeec37->saveOrFail(); } } }); $spe440a8->delete(); return true; }); } public static function _restore($spe440a8) { DB::transaction(function () use($spe440a8) { $sp822fce = clone $spe440a8; $sp822fce->selectRaw('`product_id`,SUM(`count_all`-`count_sold`) as `count_left`')->groupBy('product_id')->orderByRaw('`product_id`')->chunk(100, function ($speab77e) { foreach ($speab77e as $sp9bfdd7) { $spaeec37 = \App\Product::where('id', $sp9bfdd7->product_id)->lockForUpdate()->first(); if ($spaeec37) { $spaeec37->count_all += $sp9bfdd7->count_left; $spaeec37->saveOrFail(); } } }); $spe440a8->restore(); return true; }); } }
\ No newline at end of file
diff --git a/app/CardOrder.php b/app/CardOrder.php
new file mode 100644
index 000000000..bc528da83
--- /dev/null
+++ b/app/CardOrder.php
@@ -0,0 +1,2 @@
+belongsTo(Order::class); } function card() { return $this->belongsTo(Card::class)->withTrashed(); } }
\ No newline at end of file
diff --git a/app/Category.php b/app/Category.php
new file mode 100644
index 000000000..f9e870779
--- /dev/null
+++ b/app/Category.php
@@ -0,0 +1,2 @@
+id, Helper::ID_TYPE_CATEGORY); } function products() { return $this->hasMany(Product::class); } function user() { return $this->belongsTo(User::class); } function getTmpPassword() { return md5('$wGgMd45Jgi@dBDR' . $this->password . '1#DS2%!VLqJolmMD'); } function getProductsForShop() { $sp1cba4d = Product::where('category_id', $this->id)->where('enabled', 1)->orderBy('sort')->get(); foreach ($sp1cba4d as $spaeec37) { $spaeec37->setForShop($this->user); } $this->addVisible(array('products')); $this->setAttribute('products', $sp1cba4d); return $sp1cba4d; } }
\ No newline at end of file
diff --git a/app/Console/Commands/ResetPassword.php b/app/Console/Commands/ResetPassword.php
new file mode 100644
index 000000000..d7cfd560d
--- /dev/null
+++ b/app/Console/Commands/ResetPassword.php
@@ -0,0 +1,4 @@
+argument('email'); if (!$spd6b98d) { $this->warn('please input the user\'s email
+'); return false; } $sp694bd2 = \App\User::where('email', $spd6b98d)->first(); if (!$sp694bd2) { $this->warn("can't find the user: {$spd6b98d} \nplease input the user's email\n"); return false; } $spb07b5d = $this->argument('password'); $sp694bd2->password = bcrypt($spb07b5d); $sp694bd2->save(); $this->info("the password of '{$spd6b98d}' has been set to {$spb07b5d}\n"); return true; } }
\ No newline at end of file
diff --git a/app/Console/Commands/Update.php b/app/Console/Commands/Update.php
new file mode 100644
index 000000000..1c112cfe5
--- /dev/null
+++ b/app/Console/Commands/Update.php
@@ -0,0 +1,12 @@
+ 0) { echo '
download: ' . sprintf('%.2f', $sp67476b / $sp63dbe3 * 100) . '%'; } }); curl_setopt($sp4e752c, CURLOPT_NOPROGRESS, false); curl_setopt($sp4e752c, CURLOPT_HEADER, 0); curl_setopt($sp4e752c, CURLOPT_USERAGENT, 'card update'); curl_exec($sp4e752c); curl_close($sp4e752c); echo '
+'; return true; } public function handle() { set_time_limit(0); \Artisan::call('cache:clear'); \Artisan::call('config:clear'); echo '
+'; $this->comment('检查更新中...'); $this->info('当前版本: ' . config('app.version')); $sp48d343 = @json_decode(CurlRequest::get('https://github.com/Tai7sy/card-system/blob/master/.version'), true); if (!@$sp48d343['data']['version']) { $this->warn('检查更新失败!'); $this->warn('Error: ' . ((@$sp48d343['message'] ?? $sp48d343) ?? 'Network error')); goto LABEL_EXIT; } $sp48d343 = $sp48d343['data']; if (config('app.version') >= $sp48d343['version']) { $this->comment('您的版本已是最新!'); goto LABEL_EXIT; } $this->info('最新版本: ' . $sp48d343['version']); $this->info('版本说明: ' . (@$sp48d343['description'] ?? '无')); $sp7e8ab7 = strtolower($this->ask('是否现在更新 (yes/no)', 'no')); if ($sp7e8ab7 !== 'yes') { goto LABEL_EXIT; } $spcdad27 = realpath(sys_get_temp_dir()); if (strlen($spcdad27) < 3) { $this->warn('获取临时目录失败!'); goto LABEL_EXIT; } $spcdad27 .= DIRECTORY_SEPARATOR . Str::random(16); if (!mkdir($spcdad27) || !is_writable($spcdad27) || !is_readable($spcdad27)) { $this->warn('临时目录不可读写!'); goto LABEL_EXIT; } if (!function_exists('exec')) { $this->warn('函数 exec 已被禁用, 无法继续更新!'); goto LABEL_EXIT; } if (PHP_OS === 'WINNT') { $sp4eb5ef = 'C:\\Program Files\\7-Zip\\7z.exe'; if (!is_file($sp4eb5ef)) { $sp4eb5ef = strtolower($this->ask('未找到7-Zip, 请手动输入7zG.exe路径', $sp4eb5ef)); } if (!is_file($sp4eb5ef)) { $this->warn('7-Zip不可用, 请安装7-Zip后重试'); goto LABEL_EXIT; } $sp4eb5ef = '"' . $sp4eb5ef . '"'; } else { exec('tar --version', $sp245564, $spdf727a); if ($spdf727a) { $this->warn('Error: tar --version
+' . join('
+', $sp245564)); goto LABEL_EXIT; } } $this->comment('正在下载新版本...'); $sp89a419 = $spcdad27 . DIRECTORY_SEPARATOR . 'ka_update_' . Str::random(16) . '.tmp'; if (!$this->download_progress($sp48d343['url'], $sp89a419)) { $this->warn('写入临时文件失败!'); goto LABEL_EXIT; } $sp318f05 = md5_file($sp89a419); if ($sp318f05 !== $sp48d343['md5']) { $this->warn('更新文件md5校验失败!, file:' . $sp318f05 . ', require:' . $sp48d343['md5']); goto LABEL_EXIT; } $this->comment('正在解压...'); unset($sp245564); if (PHP_OS === 'WINNT') { exec("{$sp4eb5ef} x -so {$sp89a419} | {$sp4eb5ef} x -aoa -si -ttar -o{$spcdad27}", $sp245564, $spdf727a); } else { exec("tar -zxf {$sp89a419} -C {$spcdad27}", $sp245564, $spdf727a); } if ($spdf727a) { $this->warn('Error: 解压失败
+' . join('
+', $sp245564)); goto LABEL_EXIT; } $this->comment('正在关闭主站...'); \Artisan::call('down'); sleep(5); $this->comment(' --> 正在清理旧文件...'); $sp447462 = base_path(); foreach (array('app', 'bootstrap', 'config', 'public/dist', 'database', 'routes', 'vendor') as $spd55287) { \File::deleteDirectory($sp447462 . DIRECTORY_SEPARATOR . $spd55287); } $this->comment(' --> 正在复制新文件...'); \File::copyDirectory($spcdad27 . DIRECTORY_SEPARATOR . 'card_dist', $sp447462); $this->comment(' --> 正在创建缓存...'); \Artisan::call('cache:clear'); \Artisan::call('route:cache'); \Artisan::call('config:cache'); $this->comment(' --> 正在更新数据库...'); \Artisan::call('migrate'); if (PHP_OS === 'WINNT') { echo '
+'; $this->alert('请注意手动设置目录权限'); $this->comment(' storage 可读可写 '); $this->comment(' bootstrap/cache/ 可读可写 '); echo '
+
+'; } else { $this->comment(' --> 正在设置目录权限...'); exec('rm -rf storage/framework/cache/data/*'); exec('chmod -R 777 storage/'); exec('chmod -R 777 bootstrap/cache/'); } $this->comment('正在启用主站...'); \Artisan::call('up'); \Artisan::call('queue:restart'); $sp7d0ad5 = true; LABEL_EXIT: if (isset($spcdad27) && strlen($spcdad27) > 19) { $this->comment('清理临时目录...'); \File::deleteDirectory($spcdad27); } if (isset($sp7d0ad5) && $sp7d0ad5) { $this->info('更新成功!'); } if (PHP_OS === 'WINNT') { } else { exec('rm -rf storage/framework/cache/data/*'); exec('chmod -R 777 storage/'); exec('chmod -R 777 bootstrap/cache/'); } echo '
+'; die; } }
\ No newline at end of file
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
new file mode 100644
index 000000000..86fcb9076
--- /dev/null
+++ b/app/Console/Kernel.php
@@ -0,0 +1,4 @@
+runningInConsole()) { return; } if (System::_getInt('order_clean_unpay_open') === 1) { $sp135b94 = System::_getInt('order_clean_unpay_day', 7); $spba8a1c->call(function () use($sp135b94) { echo '[' . date('Y-m-d H:i:s') . "] cleaning unpaid orders({$sp135b94} days ago)...\n"; \App\Order::where('status', \App\Order::STATUS_UNPAY)->where('created_at', '<', (new Carbon())->addDays(-$sp135b94))->delete(); $sp06fc7d = '[' . date('Y-m-d H:i:s') . '] unpaid-orders cleaned
+'; echo $sp06fc7d; })->dailyAt('01:00'); } $spba8a1c->call(function () { $sp135b94 = 7; echo '[' . date('Y-m-d H:i:s') . "] cleaning deleted cards({$sp135b94} days ago)...\n"; \App\Card::onlyTrashed()->where('deleted_at', '<', (new Carbon())->addDays(-$sp135b94))->forceDelete(); $sp06fc7d = '[' . date('Y-m-d H:i:s') . '] deleted-cards cleaned
+'; echo $sp06fc7d; })->dailyAt('02:00'); } protected function commands() { $this->load(__DIR__ . '/Commands'); require base_path('routes/console.php'); } }
\ No newline at end of file
diff --git a/app/Coupon.php b/app/Coupon.php
new file mode 100644
index 000000000..8e0abe661
--- /dev/null
+++ b/app/Coupon.php
@@ -0,0 +1,2 @@
+belongsTo(Product::class); } function category() { return $this->belongsTo(Category::class); } }
\ No newline at end of file
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
new file mode 100644
index 000000000..8331bc310
--- /dev/null
+++ b/app/Exceptions/Handler.php
@@ -0,0 +1,2 @@
+isXmlHttpRequest() ? response()->json(array('message' => $sp06fc7d), $spc3ee59) : response()->view('errors._', array('code' => $spc3ee59, 'message' => $sp06fc7d), $spc3ee59); } public function render($spd5cc4d, Exception $spece20f) { if ($spece20f instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) { return $this->msg($spd5cc4d, '记录未找到', 404); } elseif ($spece20f instanceof \Illuminate\Auth\AuthenticationException) { return $this->msg($spd5cc4d, '您需要登录您的账户再进行此操作', 401); } elseif ($spece20f instanceof \Illuminate\Auth\Access\AuthorizationException) { return $this->msg($spd5cc4d, '未授权的操作', 403); } elseif ($spece20f instanceof \Illuminate\Validation\ValidationException) { return parent::render($spd5cc4d, $spece20f); } elseif ($spece20f instanceof \Illuminate\Session\TokenMismatchException) { return $this->msg($spd5cc4d, '请刷新页面后重试', 403); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) { return $this->msg($spd5cc4d, '页面未找到', 404); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException) { return $this->msg($spd5cc4d, '请求方法不允许', 405); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException) { Log::error('Caught a ServiceUnavailableHttpException', array('Exception' => $spece20f)); return $this->msg($spd5cc4d, '当前服务不可用,请稍后重试', 503); } elseif ($spece20f instanceof \Symfony\Component\HttpKernel\Exception\HttpException) { $sp6f36ad = $spd5cc4d->isXmlHttpRequest(); switch ($sp6f36ad) { case 429: return $this->msg($spd5cc4d, '您的请求过于频繁,请稍后重试', $sp6f36ad); break; default: Log::error('Caught a UnknownHttpException', array('Exception' => $spece20f)); return $this->msg($spd5cc4d, '当前服务不可用,请稍后重试', $sp6f36ad); } } Log::error('Uncaught Exception', array('Exception' => $spece20f)); if (config('app.debug')) { return parent::render($spd5cc4d, $spece20f); } else { return $this->msg($spd5cc4d, '未知错误,请查看错误日志(storage/logs)', 500); } } }
\ No newline at end of file
diff --git a/app/File.php b/app/File.php
new file mode 100644
index 000000000..1b3e20c4a
--- /dev/null
+++ b/app/File.php
@@ -0,0 +1,2 @@
+driver)->delete($this->path); } catch (\Exception $spece20f) { \Log::error('File.deleteFile Error: ' . $spece20f->getMessage(), array('exception' => $spece20f)); } } public static function getProductFolder() { return 'images/product'; } }
\ No newline at end of file
diff --git a/app/FundRecord.php b/app/FundRecord.php
new file mode 100644
index 000000000..43a9198b7
--- /dev/null
+++ b/app/FundRecord.php
@@ -0,0 +1,2 @@
+belongsTo(Order::class); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/Dashboard.php b/app/Http/Controllers/Admin/Dashboard.php
new file mode 100644
index 000000000..d557c94ca
--- /dev/null
+++ b/app/Http/Controllers/Admin/Dashboard.php
@@ -0,0 +1,2 @@
+ array('count' => 0, 'paid' => 0, 'profit' => 0), 'yesterday' => array('count' => 0, 'paid' => 0, 'profit' => 0)); $spf69415 = Order::whereUserId(\Auth::Id())->whereDate('paid_at', \Carbon\Carbon::now()->toDateString())->where(function ($spe440a8) { $spe440a8->where('status', Order::STATUS_PAID)->orWhere('status', Order::STATUS_SUCCESS); })->selectRaw('COUNT(*) as `count`,SUM(`paid`) as `paid`,SUM(`paid`-`sms_price`-`cost`-`fee`) as `profit`')->get()->toArray(); $spb33a22 = Order::whereUserId(\Auth::Id())->whereDate('paid_at', \Carbon\Carbon::yesterday()->toDateString())->where(function ($spe440a8) { $spe440a8->where('status', Order::STATUS_PAID)->orWhere('status', Order::STATUS_SUCCESS); })->selectRaw('COUNT(*) as `count`,SUM(`paid`) as `paid`,SUM(`paid`-`sms_price`-`cost`-`fee`) as `profit`')->get()->toArray(); if (isset($spf69415[0]) && isset($spf69415[0]['count'])) { $sp5bd36e['today'] = array('count' => (int) $spf69415[0]['count'], 'paid' => (int) $spf69415[0]['paid'], 'profit' => (int) $spf69415[0]['profit']); } if (isset($spb33a22[0]) && isset($spb33a22[0]['count'])) { $sp5bd36e['yesterday'] = array('count' => (int) $spb33a22[0]['count'], 'paid' => (int) $spb33a22[0]['paid'], 'profit' => (int) $spb33a22[0]['profit']); } $sp5bd36e['need_ship_count'] = Order::whereUserId(\Auth::Id())->where('status', Order::STATUS_PAID)->count(); $sp5bd36e['login'] = \App\Log::where('action', \App\Log::ACTION_LOGIN)->latest()->firstOrFail(); return Response::success($sp5bd36e); } function clearCache() { if (function_exists('opcache_reset')) { opcache_reset(); } try { \Artisan::call('cache:clear'); \Artisan::call('route:cache'); \Artisan::call('config:cache'); } catch (\Throwable $spece20f) { return Response::fail($spece20f->getMessage()); } return Response::success(); } function version() { return Response::success(array('version' => config('app.version'))); } function checkUpdate() { return Response::success(@json_decode(CurlRequest::get('https://github.com/Tai7sy/card-system/blob/master/.version'), true)); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/Login.php b/app/Http/Controllers/Admin/Login.php
new file mode 100644
index 000000000..a9b64b01a
--- /dev/null
+++ b/app/Http/Controllers/Admin/Login.php
@@ -0,0 +1,2 @@
+ 'geetest', 'geetest' => Geetest\API::get()); return Response::success($sp15097d); } public function login(Request $spd5cc4d) { if ((int) \App\System::_get('vcode_login') === 1) { $sp29a775 = Geetest\API::verify($spd5cc4d->post('gt_c'), $spd5cc4d->post('gt_v'), $spd5cc4d->post('gt_s')); if (!$sp29a775) { return Response::fail('滑动验证超时,请返回页面重试。'); } } $sp3544c7 = $spd5cc4d->input('remember') == 'true'; if (!Auth::attempt(array('email' => $spd5cc4d->input('email'), 'password' => $spd5cc4d->input('password')), $sp3544c7)) { return Response::fail('邮箱或密码错误, 请检查'); } else { $spe02bfd = new \App\Log(); $spe02bfd->user_id = Auth::Id(); $spe02bfd->ip = Helper::getIP(); $spe02bfd->action = \App\Log::ACTION_LOGIN; $spe02bfd->save(); $sp694bd2 = Auth::getUser(); $sp694bd2->addHidden(array('created_at', 'updated_at')); return Response::success(array('token' => 'login', 'user' => $sp694bd2->toArray())); } } function info() { $sp694bd2 = Auth::getUser(); $sp694bd2->addHidden(array('created_at', 'updated_at')); $sp694bd2->setAttribute('shop_name', \App\System::_get('app_name')); return Response::success(array('token' => 'login', 'user' => $sp694bd2->toArray())); } function logout(Request $spd5cc4d) { @Auth::logout(); return Response::success(); } function changePassword(Request $spd5cc4d) { $sp694bd2 = Auth::getUser(); $sp295f0e = $spd5cc4d->post('old', null); $spb07b5d = $spd5cc4d->post('password', null); if (strlen($spb07b5d) < 6 || strlen($spb07b5d) > 32) { return Response::fail('请输入6-32位密码'); } if (!Hash::check($sp295f0e, $sp694bd2->password)) { return Response::fail('旧密码错误,请检查'); } $sp694bd2->password = Hash::make($spb07b5d); $sp694bd2->setRememberToken(str_random(60)); $sp694bd2->saveOrFail(); event(new PasswordReset($sp694bd2)); Auth::guard()->login($sp694bd2); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/Order.php b/app/Http/Controllers/Admin/Order.php
new file mode 100644
index 000000000..ff1ec54ec
--- /dev/null
+++ b/app/Http/Controllers/Admin/Order.php
@@ -0,0 +1,2 @@
+validate($spd5cc4d, array('ids' => 'required|string', 'income' => 'required|integer', 'balance' => 'required|integer')); $spf46353 = $spd5cc4d->post('ids'); $sp3b40b3 = (int) $spd5cc4d->post('income'); $spdfb2bc = (int) $spd5cc4d->post('balance'); \App\Order::whereIn('id', explode(',', $spf46353))->chunk(100, function ($sp9d6f53) use($sp3b40b3, $spdfb2bc) { foreach ($sp9d6f53 as $sp7dcca7) { $sp7dcca7->cards()->detach(); try { if ($sp3b40b3) { $sp7dcca7->fundRecord()->delete(); } if ($spdfb2bc) { $sp694bd2 = \App\User::lockForUpdate()->firstOrFail(); $sp694bd2->m_all -= $sp7dcca7->income; $sp694bd2->saveOrFail(); } $sp7dcca7->delete(); } catch (\Exception $spece20f) { } } }); return Response::success(); } function freeze(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = explode(',', $spd5cc4d->post('ids')); $sp10a9c0 = $spd5cc4d->post('reason'); $sp058528 = 0; $spb914a1 = 0; foreach ($spf46353 as $sp1f742d) { $sp058528++; if (FundHelper::orderFreeze($sp1f742d, $sp10a9c0)) { $spb914a1++; } } return Response::success(array($sp058528, $spb914a1)); } function unfreeze(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = explode(',', $spd5cc4d->post('ids')); $sp058528 = 0; $spb914a1 = 0; $spd81133 = \App\Order::STATUS_FROZEN; foreach ($spf46353 as $sp1f742d) { $sp058528++; if (FundHelper::orderUnfreeze($sp1f742d, '后台操作', null, $spd81133)) { $spb914a1++; } } return Response::success(array($sp058528, $spb914a1, $spd81133)); } function set_paid(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = $spd5cc4d->post('id', ''); $spa24b71 = $spd5cc4d->post('trade_no', ''); if (strlen($spa24b71) < 1) { return Response::forbidden('请输入支付系统内单号'); } $sp7dcca7 = \App\Order::findOrFail($spe00284); if ($sp7dcca7->status !== \App\Order::STATUS_UNPAY) { return Response::forbidden('只能操作未支付订单'); } $spff31ad = 'Admin.SetPaid'; $spd56469 = $sp7dcca7->order_no; $sp9b2bb6 = $sp7dcca7->paid; try { Log::debug($spff31ad . " shipOrder start, order_no: {$spd56469}, amount: {$sp9b2bb6}, trade_no: {$spa24b71}"); (new \App\Http\Controllers\Shop\Pay())->shipOrder($spd5cc4d, $spd56469, $sp9b2bb6, $spa24b71); Log::debug($spff31ad . ' shipOrder end, order_no: ' . $spd56469); $spb914a1 = true; $sp2af324 = '发货成功'; } catch (\Exception $spece20f) { $spb914a1 = false; $sp2af324 = $spece20f->getMessage(); Log::error($spff31ad . ' shipOrder Exception: ' . $spece20f->getMessage()); } $sp7dcca7 = \App\Order::with(array('pay' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'name')); }, 'card_orders.card' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'card')); }))->findOrFail($spe00284); if ($sp7dcca7->status === \App\Order::STATUS_PAID) { if ($sp7dcca7->product->delivery === \App\Product::DELIVERY_MANUAL) { $spb914a1 = true; $sp2af324 = '已标记为付款成功 当前商品为手动发货商品, 请手动进行发货。'; } else { $spb914a1 = false; $sp2af324 = '已标记为付款成功, 但是买家库存不足, 发货失败, 请稍后尝试手动发货。'; } } return Response::success(array('code' => $spb914a1 ? 0 : -1, 'msg' => $sp2af324, 'order' => $sp7dcca7)); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/Pay.php b/app/Http/Controllers/Admin/Pay.php
new file mode 100644
index 000000000..d4023eb07
--- /dev/null
+++ b/app/Http/Controllers/Admin/Pay.php
@@ -0,0 +1,2 @@
+post('enabled'); if (strlen($spd508cb)) { $spe440a8->whereIn('enabled', explode(',', $spd508cb)); } $spc9965c = $spd5cc4d->post('search', false); $spee86b9 = $spd5cc4d->post('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'simple') { return Response::success($spe440a8->get(array('id', 'name'))); } elseif ($spc9965c == 'id') { $spe440a8->where('id', $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } $sp78c70b = $spe440a8->get(); return Response::success(array('list' => $sp78c70b, 'urls' => array('url' => config('app.url'), 'url_api' => config('app.url_api')))); } function stat(Request $spd5cc4d) { $this->validate($spd5cc4d, array('day' => 'required|integer|between:1,30')); $sp135b94 = (int) $spd5cc4d->input('day'); if ($sp135b94 === 30) { $sp584b3e = Carbon::now()->addMonths(-1); } else { $sp584b3e = Carbon::now()->addDays(-$sp135b94); } $sp78c70b = $this->authQuery($spd5cc4d, \App\Order::class)->where(function ($spe440a8) { $spe440a8->where('status', \App\Order::STATUS_PAID)->orWhere('status', \App\Order::STATUS_SUCCESS); })->where('paid_at', '>=', $sp584b3e)->with(array('pay' => function ($spe440a8) { $spe440a8->select(array('id', 'name')); }))->groupBy('pay_id')->selectRaw('`pay_id`,COUNT(*) as "count",SUM(`paid`) as "sum"')->get()->toArray(); $sp29a775 = array(); foreach ($sp78c70b as $sp338f71) { if (isset($sp338f71['pay']) && isset($sp338f71['pay']['name'])) { $spc23fd1 = $sp338f71['pay']['name']; } else { $spc23fd1 = '未知方式#' . $sp338f71['pay_id']; } $sp29a775[$spc23fd1] = array((int) $sp338f71['count'], (int) $sp338f71['sum']); } return Response::success($sp29a775); } function edit(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'name' => 'required|string', 'img' => 'required|string', 'driver' => 'required|string', 'way' => 'required|string', 'config' => 'required|string')); $spe00284 = (int) $spd5cc4d->post('id'); $spcc609a = $spd5cc4d->post('name'); $sp3f6d9e = $spd5cc4d->post('img'); $sp0f54c4 = $spd5cc4d->post('comment'); $sp5df6ee = $spd5cc4d->post('driver'); $sp8df86b = $spd5cc4d->post('way'); $spc27de0 = $spd5cc4d->post('config'); $spd508cb = (int) $spd5cc4d->post('enabled'); $sp1840d6 = \App\Pay::find($spe00284); if (!$sp1840d6) { $sp1840d6 = new \App\Pay(); } $sp1840d6->name = $spcc609a; $sp1840d6->img = $sp3f6d9e; $sp1840d6->comment = $sp0f54c4; $sp1840d6->driver = $sp5df6ee; $sp1840d6->way = $sp8df86b; $sp1840d6->config = $spc27de0; $sp1840d6->enabled = $spd508cb; $sp1840d6->fee_system = $spd5cc4d->post('fee_system'); $sp1840d6->saveOrFail(); return Response::success(); } function comment(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = (int) $spd5cc4d->post('id'); $sp1840d6 = \App\Pay::findOrFail($spe00284); $sp1840d6->comment = $spd5cc4d->post('comment'); $sp1840d6->save(); return Response::success(); } function sort(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = (int) $spd5cc4d->post('id'); $sp1840d6 = \App\Pay::findOrFail($spe00284); $sp1840d6->sort = (int) $spd5cc4d->post('sort', 1000); $sp1840d6->save(); return Response::success(); } function fee_system(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = (int) $spd5cc4d->post('id'); $sp1840d6 = \App\Pay::findOrFail($spe00284); $sp1840d6->fee_system = $spd5cc4d->post('fee_system'); $sp1840d6->saveOrFail(); return Response::success(); } function enable(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string', 'enabled' => 'required|integer|between:0,3')); $spf46353 = $spd5cc4d->post('ids'); $spd508cb = (int) $spd5cc4d->post('enabled'); \App\Pay::whereIn('id', explode(',', $spf46353))->update(array('enabled' => $spd508cb)); return Response::success(); } function delete(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = (int) $spd5cc4d->post('id'); \App\Pay::whereId($spe00284)->delete(); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Admin/System.php b/app/Http/Controllers/Admin/System.php
new file mode 100644
index 000000000..b53e75718
--- /dev/null
+++ b/app/Http/Controllers/Admin/System.php
@@ -0,0 +1,2 @@
+has($spcc609a)) { \App\System::_set($spcc609a, $spd5cc4d->post($spcc609a)); } } } private function setMoney(Request $spd5cc4d, $spad38fb) { foreach ($spad38fb as $spcc609a) { if ($spd5cc4d->has($spcc609a)) { \App\System::_set($spcc609a, (int) round($spd5cc4d->post($spcc609a) * 100)); } } } private function setInt(Request $spd5cc4d, $spad38fb) { foreach ($spad38fb as $spcc609a) { if ($spd5cc4d->has($spcc609a)) { \App\System::_set($spcc609a, (int) $spd5cc4d->post($spcc609a)); } } } function setItem(Request $spd5cc4d) { $spcc609a = $spd5cc4d->post('name'); $spc82d84 = $spd5cc4d->post('value'); if (!$spcc609a || !$spc82d84) { return Response::forbidden(); } \App\System::_set($spcc609a, $spc82d84); return Response::success(); } function info(Request $spd5cc4d) { $sp7ea948 = array('app_name', 'app_title', 'app_url', 'app_url_api', 'keywords', 'description', 'shop_ann', 'shop_ann_pop', 'shop_qq', 'company', 'js_tj', 'js_kf'); $spe7d73e = array('shop_inventory'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($sp7ea948 as $spcc609a) { $spc27de0[$spcc609a] = \App\System::_get($spcc609a); } foreach ($spe7d73e as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $sp3ae187 = array('app_url' => Helper::format_url($_POST['app_url']), 'app_url_api' => Helper::format_url($_POST['app_url_api'])); $spd5cc4d->merge($sp3ae187); $this->set($spd5cc4d, $sp7ea948); $this->setInt($spd5cc4d, $spe7d73e); return Response::success(); } function theme(Request $spd5cc4d) { if ($spd5cc4d->isMethod('GET')) { \App\ShopTheme::freshList(); return Response::success(array('themes' => \App\ShopTheme::get(), 'default' => \App\ShopTheme::defaultTheme()->name)); } $sp54ae95 = \App\ShopTheme::whereName($spd5cc4d->post('shop_theme'))->firstOrFail(); \App\System::_set('shop_theme_default', $sp54ae95->name); $sp54ae95->config = @json_decode($spd5cc4d->post('theme_config')) ?? array(); $sp54ae95->saveOrFail(); return Response::success(); } function order(Request $spd5cc4d) { $spad38fb = array('order_clean_unpay_open', 'order_clean_unpay_day'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($spad38fb as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $this->setInt($spd5cc4d, $spad38fb); return Response::success(); } function vcode(Request $spd5cc4d) { $sp7ea948 = array('vcode_driver', 'vcode_geetest_id', 'vcode_geetest_key'); $spe7d73e = array('vcode_login', 'vcode_shop_buy', 'vcode_shop_search'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($sp7ea948 as $spcc609a) { $spc27de0[$spcc609a] = \App\System::_get($spcc609a); } foreach ($spe7d73e as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $this->set($spd5cc4d, $sp7ea948); $this->setInt($spd5cc4d, $spe7d73e); return Response::success(); } function email(Request $spd5cc4d) { $sp7ea948 = array('mail_driver', 'mail_smtp_host', 'mail_smtp_port', 'mail_smtp_username', 'mail_smtp_password', 'mail_smtp_from_address', 'mail_smtp_from_name', 'mail_smtp_encryption', 'sendcloud_user', 'sendcloud_key'); $spe7d73e = array('mail_send_order'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($sp7ea948 as $spcc609a) { $spc27de0[$spcc609a] = \App\System::_get($spcc609a); } foreach ($spe7d73e as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $this->set($spd5cc4d, $sp7ea948); $this->setInt($spd5cc4d, $spe7d73e); return Response::success(); } function sms(Request $spd5cc4d) { $sp7ea948 = array('sms_api_id', 'sms_api_key'); $spe7d73e = array('sms_send_order', 'sms_price'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($sp7ea948 as $spcc609a) { $spc27de0[$spcc609a] = \App\System::_get($spcc609a); } foreach ($spe7d73e as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $this->set($spd5cc4d, $sp7ea948); $this->setInt($spd5cc4d, $spe7d73e); return Response::success(); } function storage(Request $spd5cc4d) { $sp7ea948 = array('storage_driver', 'storage_s3_access_key', 'storage_s3_secret_key', 'storage_s3_region', 'storage_s3_bucket', 'storage_oss_access_key', 'storage_oss_secret_key', 'storage_oss_bucket', 'storage_oss_endpoint', 'storage_oss_cdn_domain', 'storage_qiniu_domains_default', 'storage_qiniu_domains_https', 'storage_qiniu_access_key', 'storage_qiniu_secret_key', 'storage_qiniu_bucket', 'storage_qiniu_notify_url'); $spe7d73e = array('storage_oss_is_ssl', 'storage_oss_is_cname'); if ($spd5cc4d->isMethod('GET')) { $spc27de0 = array(); foreach ($sp7ea948 as $spcc609a) { $spc27de0[$spcc609a] = \App\System::_get($spcc609a); } foreach ($spe7d73e as $spcc609a) { $spc27de0[$spcc609a] = (int) \App\System::_get($spcc609a); } return Response::success($spc27de0); } $this->set($spd5cc4d, $sp7ea948); $this->set($spd5cc4d, $spe7d73e); return Response::success(); } function emailTest(Request $spd5cc4d) { $this->validate($spd5cc4d, array('to' => 'required')); $spa6aeab = $spd5cc4d->post('to'); try { $sp29a775 = Mail::to($spa6aeab)->send(new \App\Mail\Test()); return Response::success($sp29a775); } catch (\Throwable $spece20f) { \App\Library\LogHelper::setLogFile('mail'); \Log::error('Mail Test Exception:' . $spece20f->getMessage()); return Response::fail($spece20f->getMessage(), $spece20f); } } function orderClean(Request $spd5cc4d) { $this->validate($spd5cc4d, array('day' => 'required|integer|min:1')); $sp135b94 = (int) $spd5cc4d->post('day'); \App\Order::where('status', \App\Order::STATUS_UNPAY)->where('created_at', '<', (new \Carbon\Carbon())->addDays(-$sp135b94))->delete(); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
new file mode 100644
index 000000000..5e6153971
--- /dev/null
+++ b/app/Http/Controllers/Controller.php
@@ -0,0 +1,2 @@
+ '维护中', 'message' => $sp688da5)); die; } } protected function msg($sp06fc7d, $spa0e41f = null, $sp8f27c2 = null) { return view('message', array('message' => $sp06fc7d, 'title' => $spa0e41f, 'exception' => $sp8f27c2)); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/DevController.php b/app/Http/Controllers/DevController.php
new file mode 100644
index 000000000..e0046abe9
--- /dev/null
+++ b/app/Http/Controllers/DevController.php
@@ -0,0 +1,2 @@
+R '; return true; } else { echo $sp22019a . ' ...... R '; return false; } } else { if (file_exists($sp22019a)) { return is_readable($sp22019a); } } echo $sp22019a . ' ...... 文件不存在 '; return false; } private function check_writable_r($sp22019a) { if (is_dir($sp22019a)) { if (is_writable($sp22019a)) { $sp159e9b = scandir($sp22019a); foreach ($sp159e9b as $sp465be0) { if ($sp465be0 != '.' && $sp465be0 != '..') { if (!self::check_writable_r($sp22019a . '/' . $sp465be0)) { return false; } else { continue; } } } echo $sp22019a . ' ...... W '; return true; } else { echo $sp22019a . ' ...... W '; return false; } } else { if (file_exists($sp22019a)) { return is_writable($sp22019a); } } echo $sp22019a . ' ...... 文件不存在 '; return false; } private function checkPathPermission($spd55287) { self::check_readable_r($spd55287); self::check_writable_r($spd55287); } public function install() { $sp5f50ae = array(); @ob_start(); self::checkPathPermission(base_path('storage')); self::checkPathPermission(base_path('bootstrap/cache')); $sp5f50ae['permission'] = @ob_get_clean(); return view('install', array('var' => $sp5f50ae)); } public function test(Request $spd5cc4d) { } }
\ No newline at end of file
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
new file mode 100644
index 000000000..2aad08d48
--- /dev/null
+++ b/app/Http/Controllers/HomeController.php
@@ -0,0 +1,8 @@
+ config('app.url'), 'company' => config('app.company'), 'name' => config('app.name'), 'logo' => config('app.logo'), 'functions' => array()); if (System::_getInt('product_manual')) { $spc27de0['functions'][] = 'product_manual'; } if (System::_getInt('mail_send_order')) { $spc27de0['functions'][] = 'mail_send_order'; } if (System::_getInt('sms_send_order')) { $spc27de0['functions'][] = 'sms_send_order'; $spc27de0['sms_send_order'] = array('sms_price' => System::_getInt('sms_price')); } $spc27de0['shop'] = array('name' => config('app.name'), 'qq' => System::_get('shop_qq'), 'ann' => System::_get('shop_ann'), 'ann_pop' => System::_get('shop_ann_pop'), 'inventory' => System::_getInt('shop_inventory')); if ($spaeec37) { $sp2e76be->setVisible(array('id', 'name', 'password_open')); if ($sp2e76be->password_open) { $sp2e76be->setAttribute('password', $sp2e76be->getTmpPassword()); $sp2e76be->addVisible(array('password')); } $spaeec37->setForShop($sp694bd2); $spc27de0['categories'] = array($sp2e76be); $spc27de0['product'] = $spaeec37; $spcc609a = $spaeec37->name . ' - ' . $spc27de0['name']; $sp47517b = $spaeec37->description; if (@$sp47517b[0] === '{') { $sp54d272 = array(); preg_match_all('/"insert":"(.+?)"/', $sp47517b, $sp54d272); $sp47517b = str_replace('\\n', ' ', @join(' ', $sp54d272[1])); } } elseif ($sp2e76be) { $sp2e76be->setVisible(array('id', 'name', 'password_open')); $spc27de0['categories'] = array($sp2e76be); $spc27de0['product'] = null; $spcc609a = $sp2e76be->name . ' - ' . $spc27de0['name']; $sp47517b = $sp2e76be->name; } else { $spae88a9 = Category::where('user_id', $sp694bd2->id)->orderBy('sort')->where('enabled', 1)->get(); foreach ($spae88a9 as $sp2e76be) { $sp2e76be->setVisible(array('id', 'name', 'password_open')); } $spc27de0['categories'] = $spae88a9; $spcc609a = $spc27de0['name']; $sp47517b = $spc27de0['shop']['ann']; if (@$sp47517b[0] === '{') { $sp54d272 = array(); preg_match_all('/"insert":"(.+?)"/', $sp47517b, $sp54d272); $sp47517b = str_replace('\\n', ' ', @join(' ', $sp54d272[1])); } } $spc27de0['vcode'] = array('driver' => System::_get('vcode_driver'), 'buy' => (int) System::_get('vcode_shop_buy'), 'search' => (int) System::_get('vcode_shop_search')); if ($spc27de0['vcode']['driver'] === 'geetest' && ($spc27de0['vcode'] || $spc27de0['search'])) { $spc27de0['vcode']['geetest'] = Geetest\API::get(); } $spc27de0['pays'] = Pay::whereRaw('enabled&' . (Helper::is_mobile() ? Pay::ENABLED_MOBILE : Pay::ENABLED_PC) . '!=0')->orderBy('sort')->get(array('id', 'name', 'img')); $sp2e64ab = Cookie::get('customer'); $spc6c8e8 = Cookie::make('customer', strlen($sp2e64ab) !== 32 ? md5(str_random(16)) : $sp2e64ab, 43200, null, null, false, false); $sp54ae95 = null; if (isset($_GET['theme'])) { $sp54ae95 = \App\ShopTheme::whereName($_GET['theme'])->first(); } if (!$sp54ae95) { $sp54ae95 = \App\ShopTheme::defaultTheme(); } $spc27de0['theme'] = $sp694bd2->theme_config && isset($sp694bd2->theme_config[$sp54ae95->name]) ? $sp694bd2->theme_config[$sp54ae95->name] : $sp54ae95->config; if (isset($spc27de0['theme']['background']) && $spc27de0['theme']['background'] === '内置1') { $spc27de0['theme']['background'] = Helper::b1_rand_background(); } if ($spaeec37 === null) { if (@$spc27de0['theme']['list_type'] === 'list') { foreach ($spc27de0['categories'] as $sp822fce) { if (!$sp822fce->password_open) { $sp822fce->getProductsForShop(); } } } else { if (count($spc27de0['categories']) === 1) { $sp822fce = $spc27de0['categories'][0]; if (!$sp822fce->password_open) { $sp822fce->getProductsForShop(); } } } } return response()->view('shop_theme.' . $sp54ae95->name . '.index', array('name' => $spcc609a, 'title' => config('app.title'), 'keywords' => preg_replace('/[、,;。!?]/', ', ', $spcc609a), 'description' => $sp47517b, 'js_tj' => System::_get('js_tj'), 'js_kf' => System::_get('js_kf'), 'config' => $spc27de0))->cookie($spc6c8e8); } private function _shop_404() { $this->checkIsInMaintain(); return view('message', array('title' => '404 NotFound', 'message' => '该链接不存在
+查询订单 ')); } public function shop_default(Request $spd5cc4d) { $sp25a20e = $spd5cc4d->get('tab', ''); return response()->redirectTo('/?theme=Material#/record?tab=' . $sp25a20e); } public function shop_category($sp241ce1) { $this->checkIsInMaintain(); $sp2e76be = Category::whereId(Helper::id_decode($sp241ce1, Helper::ID_TYPE_CATEGORY))->with('user')->first(); if (!$sp2e76be && is_numeric($sp2e76be)) { $sp2e76be = Category::whereId($sp241ce1)->where('created_at', '<', \Carbon\Carbon::createFromDate(2019, 1, 1))->with('user')->first(); } if (!$sp2e76be) { return $this->_shop_404(); } return $this->_shop_render($sp2e76be->user, $sp2e76be); } public function shop_product(Request $spd5cc4d, $spc9a3dd) { $this->checkIsInMaintain(); $spaeec37 = Product::whereId(Helper::id_decode($spc9a3dd, Helper::ID_TYPE_PRODUCT))->with(array('user', 'category'))->first(); if (!$spaeec37 && is_numeric($spc9a3dd)) { $spaeec37 = Product::whereId($spc9a3dd)->where('created_at', '<', \Carbon\Carbon::createFromDate(2019, 1, 1))->with(array('user', 'category'))->first(); } if (!$spaeec37 || !$spaeec37->category) { return $this->_shop_404(); } if ($spaeec37->password_open && $spaeec37->password !== $spd5cc4d->input('p')) { return view('message', array('title' => '当前商品需要密码', 'message' => ($spd5cc4d->has('p') ? '密码错误,请重新输入' : '请输入密码') . '
+
+
+确认
+
+')); } return $this->_shop_render($spaeec37->user, $spaeec37->category, $spaeec37); } public function shop() { $this->checkIsInMaintain(); $sp694bd2 = User::firstOrFail(); return $this->_shop_render($sp694bd2); } public function admin() { $spc27de0 = array(); $spc27de0['url'] = config('app.url'); if (System::_getInt('product_manual')) { $spc27de0['functions'] = array('product_manual'); } $spc27de0['vcode'] = array('driver' => System::_get('vcode_driver'), 'login' => (int) System::_get('vcode_login')); if ($spc27de0['vcode']['driver'] === 'geetest') { $spc27de0['vcode']['geetest'] = Geetest\API::get(); } return view('admin', array('config' => $spc27de0)); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
new file mode 100644
index 000000000..b1d109bf8
--- /dev/null
+++ b/app/Http/Controllers/IndexController.php
@@ -0,0 +1,2 @@
+checkIsInMaintain(); $this->config = array('logo' => config('app.logo'), 'name' => config('app.name'), 'title' => config('app.title'), 'description' => config('app.description'), 'keywords' => config('app.keywords'), 'company' => config('app.company'), 'icp' => config('app.icp'), 'home_links' => System::_get('home_links'), 'js_tj' => System::_get('js_tj'), 'js_kf' => System::_get('js_kf')); } function docs() { return view('index.docs', array_merge($this->config, array())); } function docs_api() { return view('index.docs_api', array_merge($this->config, array())); } function help() { return view('index.help', array_merge($this->config, array())); } function about() { return view('index.about', array_merge($this->config, array())); } function legal_notice() { return view('index.legal_notice', array_merge($this->config, array())); } function forbid_product() { return view('index.forbid_product', array_merge($this->config, array())); } function tos() { return view('index.tos', array_merge($this->config, array())); } function privateAction() { return view('index.private', array_merge($this->config, array())); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Card.php b/app/Http/Controllers/Merchant/Card.php
new file mode 100644
index 000000000..03deb82e2
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Card.php
@@ -0,0 +1,4 @@
+authQuery($spd5cc4d, \App\Card::class)->with(array('product' => function ($spe440a8) { $spe440a8->select(array('id', 'name')); })); $spc9965c = $spd5cc4d->input('search', false); $spee86b9 = $spd5cc4d->input('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'id') { $spe440a8->where('id', $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } $sp7b7cc9 = (int) $spd5cc4d->input('category_id'); $spad8100 = $spd5cc4d->input('product_id', -1); if ($sp7b7cc9 > 0) { if ($spad8100 > 0) { $spe440a8->where('product_id', $spad8100); } else { $spe440a8->whereHas('product', function ($spe440a8) use($sp7b7cc9) { $spe440a8->where('category_id', $sp7b7cc9); }); } } $spc3ee59 = $spd5cc4d->input('status'); if (strlen($spc3ee59)) { $spe440a8->whereIn('status', explode(',', $spc3ee59)); } $sp361467 = (int) $spd5cc4d->input('onlyCanSell'); if ($sp361467) { $spe440a8->whereRaw('`count_all`>`count_sold`'); } $spdc3fe5 = $spd5cc4d->input('type'); if (strlen($spdc3fe5)) { $spe440a8->whereIn('type', explode(',', $spdc3fe5)); } $spa0de16 = $spd5cc4d->input('trashed') === 'true'; if ($spa0de16) { $spe440a8->onlyTrashed(); } if ($sp2852d8 === true) { if ($spa0de16) { $spe440a8->forceDelete(); } else { \App\Card::_trash($spe440a8); } return Response::success(); } else { if ($spa0de16 && $sp515941 === true) { \App\Card::_restore($spe440a8); return Response::success(); } else { $spe440a8->orderByRaw('`product_id`,`type`,`status`,`id`'); if ($sp42dd26 === true) { $sp953d91 = ''; $spe440a8->chunk(100, function ($spac6360) use(&$sp953d91) { foreach ($spac6360 as $sp21b3f0) { $sp953d91 .= $sp21b3f0->card . '
+'; } }); $sp6113bd = 'export_cards_' . $this->getUserIdOrFail($spd5cc4d) . '_' . date('YmdHis') . '.txt'; $spdf7b97 = array('Content-type' => 'text/plain', 'Content-Disposition' => sprintf('attachment; filename="%s"', $sp6113bd), 'Content-Length' => strlen($sp953d91)); return response()->make($sp953d91, 200, $spdf7b97); } $sp707577 = $spd5cc4d->input('current_page', 1); $sp82c87f = $spd5cc4d->input('per_page', 20); $sp78c70b = $spe440a8->paginate($sp82c87f, array('*'), 'page', $sp707577); return Response::success($sp78c70b); } } } function export(Request $spd5cc4d) { return self::get($spd5cc4d, true); } function trash(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids'); $spe440a8 = $this->authQuery($spd5cc4d, \App\Card::class)->whereIn('id', explode(',', $spf46353)); \App\Card::_trash($spe440a8); return Response::success(); } function restoreTrashed(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids'); $spe440a8 = $this->authQuery($spd5cc4d, \App\Card::class)->whereIn('id', explode(',', $spf46353)); \App\Card::_restore($spe440a8); return Response::success(); } function deleteTrashed(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids'); $this->authQuery($spd5cc4d, \App\Card::class)->whereIn('id', explode(',', $spf46353))->forceDelete(); return Response::success(); } function deleteAll(Request $spd5cc4d) { return $this->get($spd5cc4d, false, true); } function restoreAll(Request $spd5cc4d) { return $this->get($spd5cc4d, false, false, true); } function add(Request $spd5cc4d) { $spad8100 = (int) $spd5cc4d->post('product_id'); $spac6360 = $spd5cc4d->post('card'); $spdc3fe5 = (int) $spd5cc4d->post('type', \App\Card::TYPE_ONETIME); $sp425ca9 = $spd5cc4d->post('is_check') === 'true'; if (str_contains($spac6360, '<') || str_contains($spac6360, '>')) { return Response::fail('卡密不能包含 < 或 > 符号'); } $spfaef2f = $this->getUserIdOrFail($spd5cc4d); $spbfba52 = $this->authQuery($spd5cc4d, \App\Product::class)->where('id', $spad8100); $spbfba52->firstOrFail(array('id')); if ($spdc3fe5 === \App\Card::TYPE_REPEAT) { if ($sp425ca9) { if (\App\Card::where('product_id', $spad8100)->where('card', $spac6360)->exists()) { return Response::fail('该卡密已经存在,添加失败'); } } $sp21b3f0 = new \App\Card(array('user_id' => $spfaef2f, 'product_id' => $spad8100, 'card' => $spac6360, 'type' => \App\Card::TYPE_REPEAT, 'count_sold' => 0, 'count_all' => (int) $spd5cc4d->post('count_all', 1))); if ($sp21b3f0->count_all < 1 || $sp21b3f0->count_all > 10000000) { return Response::forbidden('可售总次数不能超过10000000'); } return DB::transaction(function () use($spbfba52, $sp21b3f0) { $sp21b3f0->saveOrFail(); $spaeec37 = $spbfba52->lockForUpdate()->firstOrFail(); $spaeec37->buy_max = 1; $spaeec37->count_all += $sp21b3f0->count_all; $spaeec37->saveOrFail(); return Response::success(); }); } else { $sp28982f = explode('
+', $spac6360); $spa13b43 = count($sp28982f); $sp4215f4 = 500; if ($spa13b43 > $sp4215f4) { return Response::fail('每次添加不能超过 ' . $sp4215f4 . ' 张'); } $sp93bef0 = array(); if ($sp425ca9) { $spb77256 = \App\Card::where('user_id', $spfaef2f)->where('product_id', $spad8100)->get(array('card'))->all(); foreach ($spb77256 as $spdef25e) { $sp93bef0[] = $spdef25e['card']; } } $sp72b4d9 = array(); $sp486293 = 0; for ($spb75665 = 0; $spb75665 < $spa13b43; $spb75665++) { $sp21b3f0 = trim($sp28982f[$spb75665]); if (strlen($sp21b3f0) < 1) { continue; } if (strlen($sp21b3f0) > 255) { return Response::fail('第 ' . $spb75665 . ' 张卡密 ' . $sp21b3f0 . ' 长度错误 卡密最大长度为255'); } if ($sp425ca9) { if (in_array($sp21b3f0, $sp93bef0)) { continue; } $sp93bef0[] = $sp21b3f0; } $sp72b4d9[] = array('user_id' => $spfaef2f, 'product_id' => $spad8100, 'card' => $sp21b3f0, 'type' => \App\Card::TYPE_ONETIME); $sp486293++; } if ($sp486293 === 0) { return Response::success(); } return DB::transaction(function () use($spbfba52, $sp72b4d9, $sp486293) { \App\Card::insert($sp72b4d9); $spaeec37 = $spbfba52->lockForUpdate()->firstOrFail(); $spaeec37->count_all += $sp486293; $spaeec37->saveOrFail(); return Response::success(); }); } } function edit(Request $spd5cc4d) { $spe00284 = (int) $spd5cc4d->post('id'); $sp240084 = $spd5cc4d->post('card'); $spdc3fe5 = (int) $spd5cc4d->post('type', \App\Card::TYPE_ONETIME); $sp21b3f0 = $this->authQuery($spd5cc4d, \App\Card::class)->findOrFail($spe00284); if ($sp21b3f0) { $sp21b3f0->card = $sp240084; $sp21b3f0->type = $spdc3fe5; $spd8fac0 = (int) $spd5cc4d->post('count_all', 1); $spbfba52 = $sp21b3f0->product(); if ($spdc3fe5 === \App\Card::TYPE_REPEAT) { return DB::transaction(function () use($spbfba52, $sp21b3f0, $spd8fac0) { $sp21b3f0 = \App\Card::where('id', $sp21b3f0->id)->lockForUpdate()->firstOrFail(); if ($spd8fac0 < $sp21b3f0->count_sold) { return Response::forbidden('可售总次数不能低于当前已售次数'); } if ($spd8fac0 < 1 || $spd8fac0 > 10000000) { return Response::forbidden('可售总次数不能超过10000000'); } $spaeec37 = $spbfba52->lockForUpdate()->firstOrFail(); $spaeec37->buy_max = 1; $spaeec37->count_all -= $sp21b3f0->count_all; $spaeec37->count_all += $spd8fac0; $spaeec37->saveOrFail(); $sp21b3f0->count_all = $spd8fac0; $sp21b3f0->saveOrFail(); return Response::success(); }); } else { return DB::transaction(function () use($spbfba52, $sp21b3f0, $spd8fac0) { $sp21b3f0 = \App\Card::where('id', $sp21b3f0->id)->lockForUpdate()->firstOrFail(); $spaeec37 = $spbfba52->lockForUpdate()->firstOrFail(); $spaeec37->count_all -= $sp21b3f0->count_all; $spaeec37->count_all += 1; $spaeec37->saveOrFail(); $sp21b3f0->count_all = 1; $sp21b3f0->saveOrFail(); return Response::success(); }); } } return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Category.php b/app/Http/Controllers/Merchant/Category.php
new file mode 100644
index 000000000..97a2bd2ba
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Category.php
@@ -0,0 +1,2 @@
+post('current_page', 1); $sp82c87f = $spd5cc4d->post('per_page', 20); $spe440a8 = $this->authQuery($spd5cc4d, \App\Category::class); $spc9965c = $spd5cc4d->post('search', false); $spee86b9 = $spd5cc4d->post('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'simple') { return Response::success($spe440a8->get(array('id', 'name'))); } elseif ($spc9965c == 'id') { $spe440a8->where('id', $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } $spd508cb = $spd5cc4d->post('enabled'); if (strlen($spd508cb)) { $spe440a8->whereIn('enabled', explode(',', $spd508cb)); } $sp78c70b = $spe440a8->withCount('products')->orderBy('sort')->paginate($sp82c87f, array('*'), 'page', $sp707577); foreach ($sp78c70b->items() as $sp2e76be) { $sp2e76be->setAppends(array('url')); } return Response::success($sp78c70b); } function sort(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $sp2e76be = $this->authQuery($spd5cc4d, \App\Category::class)->findOrFail($spd5cc4d->post('id')); $sp2e76be->sort = (int) $spd5cc4d->post('sort', 1000); $sp2e76be->save(); return Response::success(); } function edit(Request $spd5cc4d) { $this->validate($spd5cc4d, array('name' => 'required|string|max:128')); $spcc609a = $spd5cc4d->post('name'); $spd508cb = (int) $spd5cc4d->post('enabled'); $sp316cc7 = $spd5cc4d->post('sort'); $sp316cc7 = $sp316cc7 === NULL ? 1000 : (int) $sp316cc7; if (System::_getInt('filter_words_open') === 1) { $sp1bfcab = explode('|', System::_get('filter_words')); if (($sp29a775 = Helper::filterWords($spcc609a, $sp1bfcab)) !== false) { return Response::fail('提交失败! 分类名称包含敏感词: ' . $sp29a775); } } if ($sp316cc7 < 0 || $sp316cc7 > 1000000) { return Response::fail('排序需要在0-1000000之间'); } $spb07b5d = $spd5cc4d->post('password'); $sp9fe06e = $spd5cc4d->post('password_open') === 'true'; if ((int) $spd5cc4d->post('id')) { $sp2e76be = $this->authQuery($spd5cc4d, \App\Category::class)->findOrFail($spd5cc4d->post('id')); } else { $sp2e76be = new \App\Category(); $sp2e76be->user_id = $this->getUserIdOrFail($spd5cc4d); } $sp2e76be->name = $spcc609a; $sp2e76be->sort = $sp316cc7; $sp2e76be->password = $spb07b5d; $sp2e76be->password_open = $sp9fe06e; $sp2e76be->enabled = $spd508cb; $sp2e76be->saveOrFail(); return Response::success(); } function enable(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string', 'enabled' => 'required|integer|between:0,1')); $spf46353 = $spd5cc4d->post('ids', ''); $spd508cb = (int) $spd5cc4d->post('enabled'); $this->authQuery($spd5cc4d, \App\Category::class)->whereIn('id', explode(',', $spf46353))->update(array('enabled' => $spd508cb)); return Response::success(); } function delete(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids', ''); $this->authQuery($spd5cc4d, \App\Category::class)->whereIn('id', explode(',', $spf46353))->delete(); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Coupon.php b/app/Http/Controllers/Merchant/Coupon.php
new file mode 100644
index 000000000..26a167626
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Coupon.php
@@ -0,0 +1,3 @@
+authQuery($spd5cc4d, \App\Coupon::class)->with(array('category' => function ($spe440a8) { $spe440a8->select(array('id', 'name')); }))->with(array('product' => function ($spe440a8) { $spe440a8->select(array('id', 'name')); })); $spc9965c = $spd5cc4d->post('search', false); $spee86b9 = $spd5cc4d->post('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'id') { $spe440a8->where('id', $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } $sp7b7cc9 = (int) $spd5cc4d->post('category_id'); $spad8100 = $spd5cc4d->post('product_id', -1); if ($sp7b7cc9 > 0) { if ($spad8100 > 0) { $spe440a8->where('product_id', $spad8100); } else { $spe440a8->where('category_id', $sp7b7cc9); } } $spc3ee59 = $spd5cc4d->post('status'); if (strlen($spc3ee59)) { $spe440a8->whereIn('status', explode(',', $spc3ee59)); } $spdc3fe5 = $spd5cc4d->post('type'); if (strlen($spdc3fe5)) { $spe440a8->whereIn('type', explode(',', $spdc3fe5)); } $spe440a8->orderByRaw('expire_at DESC,category_id,product_id,type,status'); $sp707577 = $spd5cc4d->post('current_page', 1); $sp82c87f = $spd5cc4d->post('per_page', 20); $sp78c70b = $spe440a8->paginate($sp82c87f, array('*'), 'page', $sp707577); return Response::success($sp78c70b); } function create(Request $spd5cc4d) { $sp058528 = $spd5cc4d->post('count', 0); $spdc3fe5 = (int) $spd5cc4d->post('type', \App\Coupon::TYPE_ONETIME); $sp906db8 = $spd5cc4d->post('expire_at'); $spe6bab3 = (int) $spd5cc4d->post('discount_val'); $spf449f1 = (int) $spd5cc4d->post('discount_type', \App\Coupon::DISCOUNT_TYPE_AMOUNT); $spf420e3 = $spd5cc4d->post('remark'); if ($spf449f1 === \App\Coupon::DISCOUNT_TYPE_AMOUNT) { if ($spe6bab3 < 1 || $spe6bab3 > 1000000000) { return Response::fail('优惠券面额需要在0.01-10000000之间'); } } if ($spf449f1 === \App\Coupon::DISCOUNT_TYPE_PERCENT) { if ($spe6bab3 < 1 || $spe6bab3 > 100) { return Response::fail('优惠券面额需要在1-100之间'); } } $sp7b7cc9 = (int) $spd5cc4d->post('category_id', -1); $spad8100 = (int) $spd5cc4d->post('product_id', -1); if ($spdc3fe5 === \App\Coupon::TYPE_REPEAT) { $sp8c149f = $spd5cc4d->post('coupon'); if (!$sp8c149f) { $sp8c149f = strtoupper(str_random()); } $spdd957a = new \App\Coupon(); $spdd957a->user_id = $this->getUserIdOrFail($spd5cc4d); $spdd957a->category_id = $sp7b7cc9; $spdd957a->product_id = $spad8100; $spdd957a->coupon = $sp8c149f; $spdd957a->type = $spdc3fe5; $spdd957a->discount_val = $spe6bab3; $spdd957a->discount_type = $spf449f1; $spdd957a->count_all = (int) $spd5cc4d->post('count_all', 1); if ($spdd957a->count_all < 1 || $spdd957a->count_all > 10000000) { return Response::fail('可用次数不能超过10000000'); } $spdd957a->expire_at = $sp906db8; $spdd957a->saveOrFail(); return Response::success(array($spdd957a->coupon)); } elseif ($spdc3fe5 === \App\Coupon::TYPE_ONETIME) { if (!$sp058528) { return Response::forbidden('请输入生成数量'); } if ($sp058528 > 100) { return Response::forbidden('每次生成不能大于100张'); } $spa0d41d = array(); $sp73deea = array(); $spfaef2f = $this->getUserIdOrFail($spd5cc4d); $sp87a90e = Carbon::now(); for ($spb75665 = 0; $spb75665 < $sp058528; $spb75665++) { $spdd957a = strtoupper(str_random()); $sp73deea[] = $spdd957a; $spa0d41d[] = array('user_id' => $spfaef2f, 'coupon' => $spdd957a, 'category_id' => $sp7b7cc9, 'product_id' => $spad8100, 'type' => $spdc3fe5, 'discount_val' => $spe6bab3, 'discount_type' => $spf449f1, 'status' => \App\Coupon::STATUS_NORMAL, 'remark' => $spf420e3, 'created_at' => $sp87a90e, 'expire_at' => $sp906db8); } \App\Coupon::insert($spa0d41d); return Response::success($sp73deea); } else { return Response::forbidden('unknown type: ' . $spdc3fe5); } } function edit(Request $spd5cc4d) { $spe00284 = (int) $spd5cc4d->post('id'); $sp8c149f = $spd5cc4d->post('coupon'); $sp7b7cc9 = (int) $spd5cc4d->post('category_id', -1); $spad8100 = (int) $spd5cc4d->post('product_id', -1); $sp906db8 = $spd5cc4d->post('expire_at', NULL); $spc3ee59 = (int) $spd5cc4d->post('status', \App\Coupon::STATUS_NORMAL); $spdc3fe5 = (int) $spd5cc4d->post('type', \App\Coupon::TYPE_ONETIME); $spe6bab3 = (int) $spd5cc4d->post('discount_val'); $spf449f1 = (int) $spd5cc4d->post('discount_type', \App\Coupon::DISCOUNT_TYPE_AMOUNT); if ($spf449f1 === \App\Coupon::DISCOUNT_TYPE_AMOUNT) { if ($spe6bab3 < 1 || $spe6bab3 > 1000000000) { return Response::fail('优惠券面额需要在0.01-10000000之间'); } } if ($spf449f1 === \App\Coupon::DISCOUNT_TYPE_PERCENT) { if ($spe6bab3 < 1 || $spe6bab3 > 100) { return Response::fail('优惠券面额需要在1-100之间'); } } $spdd957a = $this->authQuery($spd5cc4d, \App\Coupon::class)->find($spe00284); if ($spdd957a) { $spdd957a->coupon = $sp8c149f; $spdd957a->category_id = $sp7b7cc9; $spdd957a->product_id = $spad8100; $spdd957a->status = $spc3ee59; $spdd957a->type = $spdc3fe5; $spdd957a->discount_val = $spe6bab3; $spdd957a->discount_type = $spf449f1; if ($spdc3fe5 === \App\Coupon::TYPE_REPEAT) { $spdd957a->count_all = (int) $spd5cc4d->post('count_all', 1); if ($spdd957a->count_all < 1 || $spdd957a->count_all > 10000000) { return Response::fail('可用次数不能超过10000000'); } } if ($sp906db8) { $spdd957a->expire_at = $sp906db8; } $spdd957a->saveOrFail(); } else { $sp011b8f = explode('
+', $sp8c149f); for ($spb75665 = 0; $spb75665 < count($sp011b8f); $spb75665++) { $sp24364e = str_replace('
', '', trim($sp011b8f[$spb75665])); $spdd957a = new \App\Coupon(); $spdd957a->coupon = $sp24364e; $spdd957a->category_id = $sp7b7cc9; $spdd957a->product_id = $spad8100; $spdd957a->status = $spc3ee59; $spdd957a->type = $spdc3fe5; $spdd957a->discount_val = $spe6bab3; $spdd957a->discount_type = $spf449f1; $sp011b8f[$spb75665] = $spdd957a; } \App\Product::find($spad8100)->coupons()->saveMany($sp011b8f); } return Response::success(); } function enable(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string', 'enabled' => 'required|integer|between:0,1')); $spf46353 = $spd5cc4d->post('ids'); $spd508cb = (int) $spd5cc4d->post('enabled'); $this->authQuery($spd5cc4d, \App\Coupon::class)->whereIn('id', explode(',', $spf46353))->update(array('enabled' => $spd508cb)); return Response::success(); } function delete(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids'); $this->authQuery($spd5cc4d, \App\Coupon::class)->whereIn('id', explode(',', $spf46353))->delete(); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/File.php b/app/Http/Controllers/Merchant/File.php
new file mode 100644
index 000000000..80159b425
--- /dev/null
+++ b/app/Http/Controllers/Merchant/File.php
@@ -0,0 +1,2 @@
+extension(); } catch (\Throwable $spece20f) { return Response::fail($spece20f->getMessage()); } if (!$sp59c898 || !in_array(strtolower($sp96804b), array('jpg', 'jpeg', 'png', 'gif'))) { return Response::fail('图片错误, 系统支持jpg/png/gif格式'); } if ($sp59c898->getSize() > 5 * 1024 * 1024) { return Response::fail('图片不能大于5MB'); } try { $spd55287 = $sp59c898->store($spe8caaa, array('disk' => System::_get('storage_driver'))); } catch (\Exception $spece20f) { \Log::error('File.uploadImg folder:' . $spe8caaa . ', error:' . $spece20f->getMessage(), array('exception' => $spece20f)); if (config('app.debug')) { return Response::fail($spece20f->getMessage()); } else { return Response::fail('上传文件失败, 内部错误, 请联系客服'); } } if (!$spd55287) { return Response::fail('系统保存文件出错, 请稍后再试'); } $sp5df6ee = System::_get('storage_driver'); $sp3ae187 = Storage::disk($sp5df6ee)->url($spd55287); $sp35cb60 = \App\File::insertGetId(array('user_id' => $spfaef2f, 'driver' => $sp5df6ee, 'path' => $spd55287, 'url' => $sp3ae187)); if ($sp35cb60 < 1) { Storage::disk($sp5df6ee)->delete($spd55287); return Response::fail('数据库繁忙,请稍后再试'); } $sp29a775 = array('id' => $sp35cb60, 'url' => $sp3ae187, 'name' => pathinfo($spd55287, PATHINFO_BASENAME)); if ($sp0aedba) { return $sp29a775; } return Response::success($sp29a775); } function upload_merchant(Request $spd5cc4d) { $sp694bd2 = $this->getUser($spd5cc4d); if ($sp694bd2 === null) { return Response::forbidden('无效的用户'); } $sp59c898 = $spd5cc4d->file('file'); return $this->uploadImg($sp59c898, $sp694bd2->id, \App\File::getProductFolder()); } public function renderImage(Request $spd5cc4d, $spe0a96b) { if (str_contains($spe0a96b, '..') || str_contains($spe0a96b, './') || str_contains($spe0a96b, '.\\') || !starts_with($spe0a96b, 'images/')) { $spf7f051 = file_get_contents(public_path('images/illegal.jpg')); } else { $spe0a96b = str_replace('\\', '/', $spe0a96b); $sp59c898 = \App\File::wherePath($spe0a96b)->first(); if ($sp59c898) { $sp5df6ee = $sp59c898->driver; } else { $sp5df6ee = System::_get('storage_driver'); } if (!in_array($sp5df6ee, array('local', 's3', 'oss', 'qiniu'))) { return response()->view('message', array('title' => '404', 'message' => '404 Driver NotFound'), 404); } try { $spf7f051 = Storage::disk($sp5df6ee)->get($spe0a96b); } catch (\Illuminate\Contracts\Filesystem\FileNotFoundException $spece20f) { \Log::error('File.renderImage error: ' . $spece20f->getMessage(), array('exception' => $spece20f)); return response()->view('message', array('title' => '404', 'message' => '404 NotFound'), 404); } } ob_end_clean(); header('Content-Type: ' . mimetype_from_filename($spe0a96b)); die($spf7f051); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Log.php b/app/Http/Controllers/Merchant/Log.php
new file mode 100644
index 000000000..63727f325
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Log.php
@@ -0,0 +1,2 @@
+post('user_id'); $spe8591d = $spd5cc4d->post('action', \App\Log::ACTION_LOGIN); $spe440a8 = \App\Log::where('action', $spe8591d); $spe440a8->where('user_id', Auth::id()); $sp70e85e = $spd5cc4d->post('start_at'); if (strlen($sp70e85e)) { $spe440a8->where('created_at', '>=', $sp70e85e . ' 00:00:00'); } $spd3c891 = $spd5cc4d->post('end_at'); if (strlen($spd3c891)) { $spe440a8->where('created_at', '<=', $spd3c891 . ' 23:59:59'); } $sp707577 = $spd5cc4d->post('current_page', 1); $sp82c87f = $spd5cc4d->post('per_page', 20); $sp78c70b = $spe440a8->orderBy('created_at', 'DESC')->paginate($sp82c87f, array('*'), 'page', $sp707577); return Response::success($sp78c70b); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Order.php b/app/Http/Controllers/Merchant/Order.php
new file mode 100644
index 000000000..3f8bd7209
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Order.php
@@ -0,0 +1,4 @@
+authQuery($spd5cc4d, \App\Order::class); $sp7b7cc9 = (int) $spd5cc4d->input('category_id'); $spad8100 = (int) $spd5cc4d->input('product_id'); $sp0a5f70 = (int) $spd5cc4d->input('profit'); $spce0a8f = $sp7b7cc9 === \App\Product::ID_API || $spad8100 === \App\Product::ID_API; $spc9965c = $spd5cc4d->input('search', false); $spee86b9 = $spd5cc4d->input('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'id' || $spc9965c == 'order_no' || $spc9965c === 'pay_trade_no' || $spc9965c === 'api_out_no') { $spe440a8->where($spc9965c, $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } if ($sp7b7cc9 > 0) { if ($spad8100 > 0) { $spe440a8->where('product_id', $spad8100); } else { $spe440a8->whereHas('product', function ($spe440a8) use($sp7b7cc9) { $spe440a8->where('category_id', $sp7b7cc9); }); } } $sp174056 = (int) $spd5cc4d->input('recent', 0); if ($sp174056) { $sp70e85e = (new Carbon())->addDay(-$sp174056); $spe440a8->where(function ($spe440a8) use($sp70e85e) { $spe440a8->where('paid_at', '>=', $sp70e85e)->orWhere(function ($spe440a8) use($sp70e85e) { $spe440a8->whereNull('paid_at')->where('created_at', '>=', $sp70e85e); }); }); } else { $sp70e85e = $spd5cc4d->input('start_at', false); if (strlen($sp70e85e)) { $spe440a8->where(function ($spe440a8) use($sp70e85e) { $spe440a8->where('paid_at', '>=', $sp70e85e . ' 00:00:00')->orWhere(function ($spe440a8) use($sp70e85e) { $spe440a8->whereNull('paid_at')->where('created_at', '>=', $sp70e85e . ' 00:00:00'); }); }); } $spd3c891 = $spd5cc4d->input('end_at', false); if (strlen($spd3c891)) { $spe440a8->where(function ($spe440a8) use($spd3c891) { $spe440a8->where('paid_at', '<=', $spd3c891 . ' 23:59:59')->orWhere(function ($spe440a8) use($spd3c891) { $spe440a8->whereNull('paid_at')->where('created_at', '<=', $spd3c891 . ' 23:59:59'); }); }); } } if ($sp0a5f70) { $spe440a8->where('status', \App\Order::STATUS_SUCCESS); $sp6fb90b = clone $spe440a8; $sp5e7f25 = $sp6fb90b->selectRaw('SUM(`income`) as income, SUM(`paid`-`sms_price`-`cost`-`fee`) as profit')->first(); } else { $spc3ee59 = $spd5cc4d->input('status'); if (strlen($spc3ee59)) { $spe440a8->whereIn('status', explode(',', $spc3ee59)); } else { $spe440a8->where('status', '!=', \App\Order::STATUS_UNPAY); } } if ($spce0a8f) { $spe440a8->where('product_id', \App\Product::ID_API); } else { $spe440a8->where('product_id', '>', 0); $spe440a8->with(array('product' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'name', 'delivery')); }, 'card_orders.card' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'card')); })); } $spe440a8->with(array('pay' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'name')); })); $spe440a8->orderBy('id', 'DESC'); if ($sp42dd26 === true) { $sp161f8e = (int) $spd5cc4d->input('export_update_status'); $sp1b27dc = $spd5cc4d->input('export_update_card'); $spd97963 = ''; $spd97963 .= '"订单号","商品名称","下单时间","订单金额","优惠金额","实付金额","手续费","成本价","利润","支付方式","支付流水号","支付时间","订单状态","买家联系方式","买家附加信息"' . '
+'; $spe440a8->chunk(100, function ($sp9d6f53) use(&$spd97963, $sp161f8e, $sp1b27dc) { foreach ($sp9d6f53 as $sp7dcca7) { if ($sp7dcca7->status === \App\Order::STATUS_PAID) { if ($sp161f8e === \App\Order::SEND_STATUS_CARD_PROCESSING) { $sp7dcca7->send_status = $sp161f8e; $sp7dcca7->saveOrFail(); } elseif ($sp161f8e === \App\Order::SEND_STATUS_CARD_SUCCESS) { $sp7dcca7->send_status = $sp161f8e; $sp7dcca7->saveOrFail(); $this->ship(new Request(array('id' => $sp7dcca7->id, 'card' => $sp1b27dc))); } } $sp7cc5a1 = $sp7dcca7->contact_ext; if ($sp7cc5a1) { if ($sp7cc5a1[0] === '[') { $sp7cc5a1 = substr($sp7cc5a1, 2); } if ($sp7cc5a1[strlen($sp7cc5a1) - 1] === ']') { $sp7cc5a1 = substr($sp7cc5a1, 0, -2); } } $spd97963 .= '"' . $sp7dcca7->order_no . '","' . $sp7dcca7->product_name . '","' . $sp7dcca7->created_at . '","' . sprintf('%.2f', $sp7dcca7->price / 100) . '","' . sprintf('%.2f', $sp7dcca7->discount / 100) . '","' . sprintf('%.2f', $sp7dcca7->paid / 100) . '","' . sprintf('%.2f', $sp7dcca7->fee / 100) . '","' . sprintf('%.2f', $sp7dcca7->cost / 100) . '","' . sprintf('%.2f', ($sp7dcca7->paid - $sp7dcca7->fee - $sp7dcca7->cost) / 100) . '","' . ($sp7dcca7->pay ? $sp7dcca7->pay->name : '未知#' . $sp7dcca7->pay_id) . '","' . $sp7dcca7->pay_trade_no . '","' . $sp7dcca7->paid_at . '","' . \App\Order::STATUS[$sp7dcca7->status] . '","' . $sp7dcca7->contact . '","' . $sp7cc5a1 . '"'; $spd97963 .= '
+'; } }); $sp6113bd = 'export_orders_' . $this->getUserIdOrFail($spd5cc4d) . '_' . date('YmdHis') . '.csv'; $spdf7b97 = array('Content-type' => 'text/plain', 'Content-Disposition' => sprintf('attachment; filename="%s"', $sp6113bd), 'Content-Length' => strlen($spd97963)); return response()->make($spd97963, 200, $spdf7b97); } $sp707577 = $spd5cc4d->input('current_page', 1); $sp82c87f = $spd5cc4d->input('per_page', 20); $sp78c70b = $spe440a8->paginate($sp82c87f, array('*'), 'page', $sp707577); if ($sp0a5f70) { $sp78c70b = $sp78c70b->toArray(); $sp78c70b['profit_sum'] = $sp5e7f25; } return Response::success($sp78c70b); } function export(Request $spd5cc4d) { return self::get($spd5cc4d, true); } function stat(Request $spd5cc4d) { $this->validate($spd5cc4d, array('day' => 'required|integer|between:7,30')); $sp135b94 = (int) $spd5cc4d->input('day'); if ($sp135b94 === 30) { $sp584b3e = Carbon::now()->addMonths(-1); } else { $sp584b3e = Carbon::now()->addDays(-$sp135b94); } $sp78c70b = $this->authQuery($spd5cc4d, \App\Order::class)->where(function ($spe440a8) { $spe440a8->where('status', \App\Order::STATUS_PAID)->orWhere('status', \App\Order::STATUS_SUCCESS); })->where('paid_at', '>=', $sp584b3e)->groupBy('date')->orderBy('date', 'DESC')->selectRaw('DATE(`paid_at`) as "date",COUNT(*) as "count",SUM(`paid`) as "paid",SUM(`paid`-`sms_price`-`cost`-`fee`) as "profit"')->get()->toArray(); $sp29a775 = array(); foreach ($sp78c70b as $sp338f71) { $sp29a775[$sp338f71['date']] = array((int) $sp338f71['count'], (int) $sp338f71['paid'], (int) $sp338f71['profit']); } return Response::success($sp29a775); } function info(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $spe00284 = $spd5cc4d->input('id'); $sp7dcca7 = $this->authQuery($spd5cc4d, \App\Order::class)->with(array('pay' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'name')); }, 'card_orders.card' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'card')); }))->findOrFail($spe00284); $sp7dcca7->addHidden(array('system_fee')); return Response::success($sp7dcca7); } function remark(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'remark' => 'required|string')); $spe00284 = $spd5cc4d->input('id'); $sp7dcca7 = $this->authQuery($spd5cc4d, \App\Order::class)->findOrFail($spe00284); $sp7dcca7->remark = $spd5cc4d->input('remark'); $sp7dcca7->save(); return Response::success(); } function set_send_status(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'send_status' => 'required|integer')); $spe00284 = $spd5cc4d->input('id'); $sp7dcca7 = $this->authQuery($spd5cc4d, \App\Order::class)->findOrFail($spe00284); if ($sp7dcca7->status !== \App\Order::STATUS_PAID) { return Response::fail('此订单不是未发货状态, 无法增加发货标记'); } $sp7dcca7->send_status = $spd5cc4d->input('send_status'); $sp7dcca7->saveOrFail(); return Response::success(); } function ship(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer')); $sp7dcca7 = $this->authQuery($spd5cc4d, \App\Order::class)->with('product')->findOrFail($spd5cc4d->input('id')); if ($sp7dcca7->status !== \App\Order::STATUS_PAID) { return Response::fail('订单不是待发货状态, 无法发货'); } if ($sp7dcca7->product === null) { return Response::fail('订单对应商品不存在, 无法发货'); } $spf03366 = $sp7dcca7->product->delivery; $spbf2ed4 = ''; if ($spf03366 === \App\Product::DELIVERY_MANUAL) { $this->validate($spd5cc4d, array('card' => 'required|string')); $spbf2ed4 = $spd5cc4d->input('card'); } $spa4a66c = null; $sp28982f = array(); if (FundHelper::orderSuccess($sp7dcca7->id, function () use(&$sp7dcca7, &$spa4a66c, &$sp28982f, $spf03366, $spbf2ed4) { $sp7dcca7 = \App\Order::where('id', $sp7dcca7->id)->lockForUpdate()->firstOrFail(); if ($sp7dcca7->cards && count($sp7dcca7->cards)) { $spa4a66c = '该订单已经发货,无需再次发货'; return false; } $spaeec37 = $sp7dcca7->product()->lockForUpdate()->firstOrFail(); if ($spf03366 === \App\Product::DELIVERY_MANUAL) { $sp7dcca7->status = \App\Order::STATUS_SUCCESS; $sp7dcca7->send_status = \App\Order::SEND_STATUS_CARD_SUCCESS; $sp7dcca7->saveOrFail(); $sp21b3f0 = \App\Card::create(array('user_id' => Auth::id(), 'product_id' => $spaeec37->id, 'card' => $spbf2ed4, 'type' => \App\Card::TYPE_ONETIME, 'status' => \App\Card::STATUS_SOLD, 'count_sold' => 1, 'count_all' => 1)); $sp28982f[] = $sp21b3f0->card; $sp7dcca7->cards()->attach($sp21b3f0->id); $spaeec37->count_sold += $sp7dcca7->count; $spaeec37->saveOrFail(); return FundHelper::ACTION_CONTINUE; } $spac6360 = \App\Card::where('product_id', $spaeec37->id)->whereRaw('`count_sold`<`count_all`')->take($sp7dcca7->count)->lockForUpdate()->get(); if (count($spac6360) !== $sp7dcca7->count) { $spa4a66c = '商品卡密不足, 请添加卡密后再发货'; return false; } else { $sp7dcca7->status = \App\Order::STATUS_SUCCESS; $sp7dcca7->saveOrFail(); $sp227200 = array(); foreach ($spac6360 as $sp21b3f0) { $sp227200[] = $sp21b3f0->id; $sp28982f[] = $sp21b3f0->card; } $sp7dcca7->cards()->attach($sp227200); \App\Card::whereIn('id', $sp227200)->update(array('status' => \App\Card::STATUS_SOLD, 'count_sold' => DB::raw('`count_sold`+1'))); $spaeec37->count_sold += $sp7dcca7->count; $spaeec37->saveOrFail(); return FundHelper::ACTION_CONTINUE; } })) { if (System::_getInt('mail_send_order')) { $sp7d9677 = @json_decode($sp7dcca7->contact_ext, true)['_mail']; if ($sp7d9677) { $sp7dcca7->sendEmail($sp7d9677); } } if ($sp7dcca7->status === \App\Order::STATUS_SUCCESS && System::_getInt('sms_send_order')) { $sp052029 = @json_decode($sp7dcca7->contact_ext, true)['_mobile']; if ($sp052029) { $sp7dcca7->sendSms($sp052029); } } $sp7dcca7['card_orders'] = array_map(function ($sp338f71) { return array('card' => array('card' => $sp338f71)); }, $sp28982f); $sp7dcca7->addHidden(array('system_fee')); return Response::success($sp7dcca7); } else { return Response::fail($spa4a66c ?? '数据库繁忙, 请联系客服'); } } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Merchant/Product.php b/app/Http/Controllers/Merchant/Product.php
new file mode 100644
index 000000000..c50cab066
--- /dev/null
+++ b/app/Http/Controllers/Merchant/Product.php
@@ -0,0 +1,2 @@
+authQuery($spd5cc4d, \App\Product::class)->with(array('category' => function (Relation $spe440a8) { $spe440a8->select(array('id', 'name', 'password_open')); })); $spc9965c = $spd5cc4d->post('search', false); $spee86b9 = $spd5cc4d->post('val', false); if ($spc9965c && $spee86b9) { if ($spc9965c == 'simple') { if ($spd5cc4d->post('from') === 'card') { $spe440a8->where('delivery', \App\Product::DELIVERY_AUTO); } return Response::success($spe440a8->where('category_id', $spee86b9)->get(array('id', 'name'))); } elseif ($spc9965c == 'id') { $spe440a8->where('id', $spee86b9); } elseif ($spc9965c == 'category_id') { $spe440a8->where('category_id', $spee86b9); } else { $spe440a8->where($spc9965c, 'like', '%' . $spee86b9 . '%'); } } $sp7b7cc9 = (int) $spd5cc4d->post('category_id'); if ($sp7b7cc9 > 0) { $spe440a8->where('category_id', $sp7b7cc9); } $spd508cb = $spd5cc4d->post('enabled'); if (strlen($spd508cb)) { $spe440a8->whereIn('enabled', explode(',', $spd508cb)); } $sp707577 = (int) $spd5cc4d->post('current_page', 1); $sp82c87f = (int) $spd5cc4d->post('per_page', 20); $sp78c70b = $spe440a8->orderBy('sort')->paginate($sp82c87f, array('*'), 'page', $sp707577); foreach ($sp78c70b->items() as $spaeec37) { $spaeec37->setAppends(array('count', 'url')); } return Response::success($sp78c70b); } function sort(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'sort' => 'required|integer')); $spaeec37 = $this->authQuery($spd5cc4d, \App\Product::class)->findOrFail($spd5cc4d->post('id')); $spaeec37->sort = $spd5cc4d->post('sort'); $spaeec37->saveOrFail(); return Response::success(); } function set_count(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'count' => 'required|integer')); $spaeec37 = $this->authQuery($spd5cc4d, \App\Product::class)->findOrFail($spd5cc4d->post('id')); $spaeec37->count_all = $spaeec37->count_sold + $spd5cc4d->post('count'); $spaeec37->saveOrFail(); return Response::success(); } function category_change(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'required|integer', 'category_id' => 'required|integer')); $sp2e76be = $this->authQuery($spd5cc4d, \App\Category::class)->findOrFail($spd5cc4d->post('category_id')); $spaeec37 = $this->authQuery($spd5cc4d, \App\Product::class)->findOrFail($spd5cc4d->post('id')); $spaeec37->category_id = $sp2e76be->id; $spaeec37->save(); return Response::success(); } function edit(Request $spd5cc4d) { $this->validate($spd5cc4d, array('id' => 'sometimes|integer', 'category_id' => 'required|integer', 'description' => 'required|string', 'instructions' => 'required|string', 'fields' => 'required|string', 'sort' => 'required|integer|min:0|max:10000000', 'inventory' => 'required|integer|between:0,2', 'buy_min' => 'required|integer|min:0|max:10000', 'buy_max' => 'required|integer|min:0|max:10000', 'cost' => 'required|numeric|min:0|max:10000000', 'price' => 'required|numeric|min:0.01|max:10000000', 'price_whole' => 'required|string', 'enabled' => 'required|integer|between:0,1')); $sp7b7cc9 = (int) $spd5cc4d->post('category_id'); if (!$this->authQuery($spd5cc4d, \App\Category::class)->where('id', $sp7b7cc9)->exists()) { return Response::fail('商品分类不存在'); } $spcc609a = $spd5cc4d->post('name'); $sp47517b = $spd5cc4d->post('description'); $spda9bb6 = $spd5cc4d->post('instructions'); $sp11a63f = (int) $spd5cc4d->post('buy_min', 0); $sp2a19ec = (int) $spd5cc4d->post('buy_max', 0); $sp92a485 = (int) round($spd5cc4d->post('cost') * 100); $spac16b8 = (int) round($spd5cc4d->post('price') * 100); $spf6a624 = $spd5cc4d->post('price_whole'); $sp0ad956 = @json_decode($spf6a624, true); foreach ($sp0ad956 as $sp49a67a) { if ($sp49a67a[1] < 1 || $sp49a67a[1] > 1000000000) { return Response::fail('商品批发价需要在 0.01-10000000 之间'); } } if (System::_getInt('filter_words_open') === 1) { $sp1bfcab = explode('|', System::_get('filter_words')); if (($sp29a775 = Helper::filterWords($spcc609a, $sp1bfcab)) !== false) { return Response::fail('提交失败! 商品名称包含敏感词: ' . $sp29a775); } if (($sp29a775 = Helper::filterWords($sp47517b, $sp1bfcab)) !== false) { return Response::fail('提交失败! 商品描述包含敏感词: ' . $sp29a775); } if (($sp29a775 = Helper::filterWords($spda9bb6, $sp1bfcab)) !== false) { return Response::fail('提交失败! 商品使用说明包含敏感词: ' . $sp29a775); } } if ((int) $spd5cc4d->post('id')) { $spaeec37 = $this->authQuery($spd5cc4d, \App\Product::class)->findOrFail($spd5cc4d->post('id')); if (\App\Card::whereProductId($spaeec37->id)->where('type', \App\Card::TYPE_REPEAT)->whereRaw('`count_all`>`count_sold`')->exists()) { if ($sp11a63f !== 1) { return Response::fail('该商品含有重复售卖的卡密, 最小购买量必须为1件'); } if ($sp2a19ec !== 1) { return Response::fail('该商品含有重复售卖的卡密, 最大购买量必须为1件'); } } } else { $spaeec37 = new \App\Product(); $spaeec37->count_sold = 0; $spaeec37->user_id = $this->getUserIdOrFail($spd5cc4d); } $spaeec37->category_id = $sp7b7cc9; $spaeec37->name = $spcc609a; $spce62c7 = new AntiXSS(); $spaeec37->description = $spce62c7->xss_clean($sp47517b); $spaeec37->instructions = $spce62c7->xss_clean($spda9bb6); $spaeec37->fields = $spd5cc4d->post('fields'); $spaeec37->delivery = (int) $spd5cc4d->post('delivery'); $spaeec37->sort = $spd5cc4d->post('sort'); $spaeec37->buy_min = $sp11a63f; $spaeec37->buy_max = $sp2a19ec; $spaeec37->count_warn = $spd5cc4d->post('count_warn'); $spaeec37->support_coupon = $spd5cc4d->post('support_coupon') === 'true'; $spaeec37->password = $spd5cc4d->post('password'); $spaeec37->password_open = $spd5cc4d->post('password_open') === 'true'; $spaeec37->cost = $sp92a485; $spaeec37->price = $spac16b8; $spaeec37->price_whole = $spf6a624; $spaeec37->enabled = (int) $spd5cc4d->post('enabled'); $spaeec37->inventory = (int) $spd5cc4d->post('inventory'); $spaeec37->saveOrFail(); return Response::success(); } function enable(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string', 'enabled' => 'required|integer')); $spf46353 = $spd5cc4d->post('ids'); $spd508cb = (int) $spd5cc4d->post('enabled'); $this->authQuery($spd5cc4d, \App\Product::class)->whereIn('id', explode(',', $spf46353))->update(array('enabled' => $spd508cb)); return Response::success(); } function delete(Request $spd5cc4d) { $this->validate($spd5cc4d, array('ids' => 'required|string')); $spf46353 = $spd5cc4d->post('ids'); $spf46353 = explode(',', $spf46353); $spbfba52 = $this->authQuery($spd5cc4d, \App\Product::class)->whereIn('id', $spf46353); $sp8a8c37 = $this->authQuery($spd5cc4d, \App\Card::class)->whereIn('product_id', $spf46353); return DB::transaction(function () use($spbfba52, $sp8a8c37) { $spbfba52->delete(); $sp8a8c37->forceDelete(); return Response::success(); }); } function count_sync(Request $spd5cc4d) { \App\Product::refreshCount($this->getUser($spd5cc4d)); return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Shop/Coupon.php b/app/Http/Controllers/Shop/Coupon.php
new file mode 100644
index 000000000..78bdc6383
--- /dev/null
+++ b/app/Http/Controllers/Shop/Coupon.php
@@ -0,0 +1,2 @@
+post('category_id', -1); $spad8100 = (int) $spd5cc4d->post('product_id', -1); $sp8c149f = $spd5cc4d->post('coupon'); if (!$sp8c149f) { return Response::fail('请输入优惠券'); } if ($sp7b7cc9 > 0) { $sp2e76be = Category::findOrFail($sp7b7cc9); $spfaef2f = $sp2e76be->user_id; } elseif ($spad8100 > 0) { $spaeec37 = Product::findOrFail($spad8100); $spfaef2f = $spaeec37->user_id; } else { return Response::fail('请先选择分类或商品'); } $spa0d41d = \App\Coupon::where('user_id', $spfaef2f)->where('coupon', $sp8c149f)->where('expire_at', '>', Carbon::now())->whereRaw('`count_used`<`count_all`')->get(); foreach ($spa0d41d as $sp8c149f) { if ($sp8c149f->category_id === -1 || $sp8c149f->category_id === $sp7b7cc9 && ($sp8c149f->product_id === -1 || $sp8c149f->product_id === $spad8100)) { $sp8c149f->setVisible(array('discount_type', 'discount_val')); return Response::success($sp8c149f); } } return Response::fail('您输入的优惠券信息无效 如果没有优惠券请不要填写'); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Shop/Order.php b/app/Http/Controllers/Shop/Order.php
new file mode 100644
index 000000000..d8d4ba90d
--- /dev/null
+++ b/app/Http/Controllers/Shop/Order.php
@@ -0,0 +1,2 @@
+post('geetest_challenge'), $spd5cc4d->post('geetest_validate'), $spd5cc4d->post('geetest_seccode')); if (!$sp29a775) { return Response::fail('系统无法接受您的验证结果,请刷新页面后重试。'); } } $spe440a8 = \App\Order::where('created_at', '>=', (new Carbon())->addDay(-30)); $spdc3fe5 = $spd5cc4d->post('type', ''); if ($spdc3fe5 === 'cookie') { $sp2e64ab = Cookie::get('customer'); if (strlen($sp2e64ab) !== 32) { return Response::success(); } $spe440a8->where('customer', $sp2e64ab); } elseif ($spdc3fe5 === 'order_no') { $spd56469 = $spd5cc4d->post('order_no', ''); if (strlen($spd56469) !== 19) { return Response::success(); } $spe440a8->where('order_no', $spd56469); } elseif ($spdc3fe5 === 'contact') { $spfe0489 = $spd5cc4d->post('contact', ''); if (strlen($spfe0489) < 6) { return Response::success(); } $spe440a8->where('contact', $spfe0489); } else { return Response::fail('请选择查询类型'); } $sp1aad7f = array('id', 'created_at', 'order_no', 'contact', 'status', 'send_status', 'count', 'paid'); if (1) { $sp1aad7f[] = 'product_name'; $sp1aad7f[] = 'contact'; $sp1aad7f[] = 'contact_ext'; } $sp78c70b = $spe440a8->orderBy('id', 'DESC')->get($sp1aad7f); $sp537325 = ''; return Response::success(array('list' => $sp78c70b, 'msg' => count($sp78c70b) ? $sp537325 : '')); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Shop/Pay.php b/app/Http/Controllers/Shop/Pay.php
new file mode 100644
index 000000000..9649fdfa4
--- /dev/null
+++ b/app/Http/Controllers/Shop/Pay.php
@@ -0,0 +1,15 @@
+goPay($spd53b1c, $spd56469, $sp4e6fa6, $sp4e6fa6, $sp1c061b); return self::renderResultPage($spd5cc4d, array('success' => false, 'title' => '请稍后', 'msg' => '支付方式加载中,请稍后')); } catch (\Exception $spece20f) { return self::renderResultPage($spd5cc4d, array('msg' => $spece20f->getMessage())); } } function buy(Request $spd5cc4d) { $sp2e64ab = $spd5cc4d->input('customer'); if (strlen($sp2e64ab) !== 32) { return self::renderResultPage($spd5cc4d, array('msg' => '提交超时,请刷新购买页面并重新提交
+当前网址: ' . $spd5cc4d->getQueryString() . '
+提交内容: ' . var_export($sp2e64ab) . ', 提交长度:' . strlen($sp2e64ab) . '
+若您刷新后仍然出现此问题. 请加网站客服反馈')); } if ((int) System::_get('vcode_shop_buy') === 1) { $sp29a775 = Geetest\API::verify($spd5cc4d->input('geetest_challenge'), $spd5cc4d->input('geetest_validate'), $spd5cc4d->input('geetest_seccode')); if (!$sp29a775) { return self::renderResultPage($spd5cc4d, array('msg' => '滑动验证超时,请返回页面重试。')); } } $sp7b7cc9 = (int) $spd5cc4d->input('category_id'); $spad8100 = (int) $spd5cc4d->input('product_id'); $sp058528 = (int) $spd5cc4d->input('count'); $sp8c149f = $spd5cc4d->input('coupon'); $spfe0489 = $spd5cc4d->input('contact'); $sp7cc5a1 = $spd5cc4d->input('contact_ext') ?? null; $sp9c0821 = !empty(@json_decode($sp7cc5a1, true)['_mobile']); $spba5a3b = (int) $spd5cc4d->input('pay_id'); if (!$sp7b7cc9 || !$spad8100) { return self::renderResultPage($spd5cc4d, array('msg' => '请选择商品')); } if (strlen($spfe0489) < 1) { return self::renderResultPage($spd5cc4d, array('msg' => '请输入联系方式')); } $sp2e76be = Category::findOrFail($sp7b7cc9); $spaeec37 = Product::where('id', $spad8100)->where('category_id', $sp7b7cc9)->where('enabled', 1)->with(array('user'))->first(); if ($spaeec37 == null || $spaeec37->user == null) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品未找到,请重新选择')); } if ($spaeec37->password_open) { if ($spaeec37->password !== $spd5cc4d->input('product_password')) { return self::renderResultPage($spd5cc4d, array('msg' => '商品密码输入错误')); } } else { if ($sp2e76be->password_open) { if ($sp2e76be->password !== $spd5cc4d->input('category_password')) { if ($sp2e76be->getTmpPassword() !== $spd5cc4d->input('category_password')) { return self::renderResultPage($spd5cc4d, array('msg' => '分类密码输入错误')); } } } } if ($sp058528 < $spaeec37->buy_min) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品最少购买' . $spaeec37->buy_min . '件,请重新选择')); } if ($sp058528 > $spaeec37->buy_max) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品限购' . $spaeec37->buy_max . '件,请重新选择')); } if ($spaeec37->count < $sp058528) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品库存不足')); } $sp1840d6 = \App\Pay::find($spba5a3b); if ($sp1840d6 == null || !$sp1840d6->enabled) { return self::renderResultPage($spd5cc4d, array('msg' => '支付方式未找到,请重新选择')); } $sp148756 = $spaeec37->price; if ($spaeec37->price_whole) { $spf6a624 = json_decode($spaeec37->price_whole, true); for ($spb75665 = count($spf6a624) - 1; $spb75665 >= 0; $spb75665--) { if ($sp058528 >= (int) $spf6a624[$spb75665][0]) { $sp148756 = (int) $spf6a624[$spb75665][1]; break; } } } $spac16b8 = $sp058528 * $sp148756; $sp1c061b = $spac16b8; $sp0af5c2 = 0; $sp6d1221 = null; if ($spaeec37->support_coupon && strlen($sp8c149f) > 0) { $spa0d41d = \App\Coupon::where('user_id', $spaeec37->user_id)->where('coupon', $sp8c149f)->where('expire_at', '>', Carbon::now())->whereRaw('`count_used`<`count_all`')->get(); foreach ($spa0d41d as $spdd957a) { if ($spdd957a->category_id === -1 || $spdd957a->category_id === $sp7b7cc9 && ($spdd957a->product_id === -1 || $spdd957a->product_id === $spad8100)) { if ($spdd957a->discount_type === \App\Coupon::DISCOUNT_TYPE_AMOUNT && $sp1c061b >= $spdd957a->discount_val) { $sp6d1221 = $spdd957a; $sp0af5c2 = $spdd957a->discount_val; break; } if ($spdd957a->discount_type === \App\Coupon::DISCOUNT_TYPE_PERCENT) { $sp6d1221 = $spdd957a; $sp0af5c2 = (int) round($sp1c061b * $spdd957a->discount_val / 100); break; } } } if ($sp6d1221 === null) { return self::renderResultPage($spd5cc4d, array('msg' => '优惠券信息错误,请重新输入')); } $sp1c061b -= $sp0af5c2; } $sp62e4c0 = (int) round($sp1c061b * $sp1840d6->fee_system); $sp7571bc = $sp1c061b - $sp62e4c0; $sp07e9d0 = $sp9c0821 ? System::_getInt('sms_price', 10) : 0; $sp1c061b += $sp07e9d0; $sp92a485 = $sp058528 * $spaeec37->cost; $spd56469 = \App\Order::unique_no(); try { DB::transaction(function () use($spaeec37, $spd56469, $sp6d1221, $spfe0489, $sp7cc5a1, $sp2e64ab, $sp058528, $sp92a485, $spac16b8, $sp07e9d0, $sp0af5c2, $sp1c061b, $sp1840d6, $sp62e4c0, $sp7571bc) { if ($sp6d1221) { $sp6d1221->status = \App\Coupon::STATUS_USED; $sp6d1221->count_used++; $sp6d1221->save(); $spf420e3 = '使用优惠券: ' . $sp6d1221->coupon; } else { $spf420e3 = null; } $sp7dcca7 = \App\Order::create(array('user_id' => $spaeec37->user_id, 'order_no' => $spd56469, 'product_id' => $spaeec37->id, 'product_name' => $spaeec37->name, 'count' => $sp058528, 'ip' => Helper::getIP(), 'customer' => $sp2e64ab, 'contact' => $spfe0489, 'contact_ext' => $sp7cc5a1, 'cost' => $sp92a485, 'price' => $spac16b8, 'sms_price' => $sp07e9d0, 'discount' => $sp0af5c2, 'paid' => $sp1c061b, 'pay_id' => $sp1840d6->id, 'fee' => $sp62e4c0, 'system_fee' => $sp62e4c0, 'income' => $sp7571bc, 'status' => \App\Order::STATUS_UNPAY, 'remark' => $spf420e3, 'created_at' => Carbon::now())); assert($sp7dcca7 !== null); }); } catch (\Throwable $spece20f) { Log::error('Shop.Pay.buy 下单失败', array('Exception' => $spece20f)); return self::renderResultPage($spd5cc4d, array('msg' => '发生错误,下单失败,请稍后重试')); } if ($sp1c061b === 0) { $this->shipOrder($spd5cc4d, $spd56469, $sp1c061b, null); return redirect('/pay/result/' . $spd56469); } $sp4e6fa6 = $spd56469; return $this->goPay($spd5cc4d, $spd56469, $sp4e6fa6, $sp1840d6, $sp1c061b); } function pay(Request $spd5cc4d, $spd56469) { $sp7dcca7 = \App\Order::whereOrderNo($spd56469)->first(); if ($sp7dcca7 == null) { return self::renderResultPage($spd5cc4d, array('msg' => '订单未找到,请重试')); } if ($sp7dcca7->status !== \App\Order::STATUS_UNPAY) { return redirect('/pay/result/' . $spd56469); } $spff31ad = 'pay: ' . $sp7dcca7->pay_id; $spd53b1c = $sp7dcca7->pay; if (!$spd53b1c) { \Log::error($spff31ad . ' cannot find Pay'); return $this->renderResultPage($spd5cc4d, array('msg' => '支付方式未找到')); } $spff31ad .= ',' . $spd53b1c->driver; $spc27de0 = json_decode($spd53b1c->config, true); $spc27de0['payway'] = $spd53b1c->way; $spc27de0['out_trade_no'] = $spd56469; try { $this->payApi = PayApi::getDriver($spd53b1c->id, $spd53b1c->driver); } catch (\Exception $spece20f) { \Log::error($spff31ad . ' cannot find Driver: ' . $spece20f->getMessage()); return $this->renderResultPage($spd5cc4d, array('msg' => '支付驱动未找到')); } if ($this->payApi->verify($spc27de0, function ($spd56469, $sp9b2bb6, $spa24b71) use($spd5cc4d) { try { $this->shipOrder($spd5cc4d, $spd56469, $sp9b2bb6, $spa24b71); } catch (\Exception $spece20f) { $this->renderResultPage($spd5cc4d, array('success' => false, 'msg' => $spece20f->getMessage())); } })) { \Log::notice($spff31ad . ' already success' . '
+
+'); return redirect('/pay/result/' . $spd56469); } if ($sp7dcca7->created_at < Carbon::now()->addMinutes(-5)) { return $this->renderResultPage($spd5cc4d, array('msg' => '当前订单长时间未支付已作废, 请重新下单')); } $spaeec37 = Product::where('id', $sp7dcca7->product_id)->where('enabled', 1)->first(); if ($spaeec37 == null) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品已下架')); } $spaeec37->setAttribute('count', count($spaeec37->cards) ? $spaeec37->cards[0]->count : 0); if ($spaeec37->count < $sp7dcca7->count) { return self::renderResultPage($spd5cc4d, array('msg' => '该商品库存不足')); } $sp4e6fa6 = $spd56469; return $this->goPay($spd5cc4d, $spd56469, $sp4e6fa6, $spd53b1c, $sp7dcca7->paid); } function qrcode(Request $spd5cc4d, $spd56469, $sp0d0ae4) { $sp7dcca7 = \App\Order::whereOrderNo($spd56469)->with('product')->first(); if ($sp7dcca7 == null) { return self::renderResultPage($spd5cc4d, array('msg' => '订单未找到,请重试')); } if ($sp7dcca7->product_id !== \App\Product::ID_API && $sp7dcca7->product == null) { return self::renderResultPage($spd5cc4d, array('msg' => '商品未找到,请重试')); } return view('pay/' . $sp0d0ae4, array('pay_id' => $sp7dcca7->pay_id, 'name' => $sp7dcca7->product->name . ' x ' . $sp7dcca7->count . '件', 'amount' => $sp7dcca7->paid, 'qrcode' => $spd5cc4d->get('url'), 'id' => $spd56469)); } function qrQuery(Request $spd5cc4d, $spba5a3b) { $spe43d3e = $spd5cc4d->input('id', ''); return self::payReturn($spd5cc4d, $spba5a3b, $spe43d3e); } function payReturn(Request $spd5cc4d, $spba5a3b, $spba04f6 = '') { $spff31ad = 'payReturn: ' . $spba5a3b; \Log::debug($spff31ad); $spd53b1c = \App\Pay::where('id', $spba5a3b)->first(); if (!$spd53b1c) { return $this->renderResultPage($spd5cc4d, array('success' => 0, 'msg' => '支付方式错误')); } $spff31ad .= ',' . $spd53b1c->driver; if (strlen($spba04f6) > 0) { $sp7dcca7 = \App\Order::whereOrderNo($spba04f6)->first(); if ($sp7dcca7 && ($sp7dcca7->status === \App\Order::STATUS_PAID || $sp7dcca7->status === \App\Order::STATUS_SUCCESS)) { \Log::notice($spff31ad . ' already success' . '
+
+'); if ($spd5cc4d->ajax()) { return self::renderResultPage($spd5cc4d, array('success' => 1, 'data' => '/pay/result/' . $spba04f6), array('order' => $sp7dcca7)); } else { return redirect('/pay/result/' . $spba04f6); } } } try { $this->payApi = PayApi::getDriver($spd53b1c->id, $spd53b1c->driver); } catch (\Exception $spece20f) { \Log::error($spff31ad . ' cannot find Driver: ' . $spece20f->getMessage()); return $this->renderResultPage($spd5cc4d, array('success' => 0, 'msg' => '支付驱动未找到')); } $spc27de0 = json_decode($spd53b1c->config, true); $spc27de0['out_trade_no'] = $spba04f6; $spc27de0['payway'] = $spd53b1c->way; \Log::debug($spff31ad . ' will verify'); if ($this->payApi->verify($spc27de0, function ($spd56469, $sp9b2bb6, $spa24b71) use($spd5cc4d, $spff31ad, &$spba04f6) { $spba04f6 = $spd56469; try { \Log::debug($spff31ad . " shipOrder start, order_no: {$spd56469}, amount: {$sp9b2bb6}, trade_no: {$spa24b71}"); $this->shipOrder($spd5cc4d, $spd56469, $sp9b2bb6, $spa24b71); \Log::debug($spff31ad . ' shipOrder end, order_no: ' . $spd56469); } catch (\Exception $spece20f) { \Log::error($spff31ad . ' shipOrder Exception: ' . $spece20f->getMessage()); } })) { \Log::debug($spff31ad . ' verify finished: 1' . '
+
+'); if ($spd5cc4d->ajax()) { return self::renderResultPage($spd5cc4d, array('success' => 1, 'data' => '/pay/result/' . $spba04f6)); } else { return redirect('/pay/result/' . $spba04f6); } } else { \Log::debug($spff31ad . ' verify finished: 0' . '
+
+'); return $this->renderResultPage($spd5cc4d, array('success' => 0, 'msg' => '支付验证失败,您可以稍后查看支付状态。')); } } function payNotify(Request $spd5cc4d, $spba5a3b) { $spff31ad = 'payNotify pay_id: ' . $spba5a3b; \Log::debug($spff31ad); $spd53b1c = \App\Pay::where('id', $spba5a3b)->first(); if (!$spd53b1c) { \Log::error($spff31ad . ' cannot find PayModel'); echo 'fail'; die; } $spff31ad .= ',' . $spd53b1c->driver; try { $this->payApi = PayApi::getDriver($spd53b1c->id, $spd53b1c->driver); } catch (\Exception $spece20f) { \Log::error($spff31ad . ' cannot find Driver: ' . $spece20f->getMessage()); echo 'fail'; die; } $spc27de0 = json_decode($spd53b1c->config, true); $spc27de0['payway'] = $spd53b1c->way; $spc27de0['isNotify'] = true; \Log::debug($spff31ad . ' will verify'); $sp29a775 = $this->payApi->verify($spc27de0, function ($spd56469, $sp9b2bb6, $spa24b71) use($spd5cc4d, $spff31ad) { try { \Log::debug($spff31ad . " shipOrder start, order_no: {$spd56469}, amount: {$sp9b2bb6}, trade_no: {$spa24b71}"); $this->shipOrder($spd5cc4d, $spd56469, $sp9b2bb6, $spa24b71); \Log::debug($spff31ad . ' shipOrder end, order_no: ' . $spd56469); } catch (\Exception $spece20f) { \Log::error($spff31ad . ' shipOrder Exception: ' . $spece20f->getMessage()); } }); \Log::debug($spff31ad . ' notify finished: ' . (int) $sp29a775 . '
+
+'); die; } function result(Request $spd5cc4d, $spd56469) { $sp7dcca7 = \App\Order::where('order_no', $spd56469)->first(); if ($sp7dcca7 == null) { return self::renderResultPage($spd5cc4d, array('msg' => '订单未找到,请重试')); } if ($sp7dcca7->status === \App\Order::STATUS_PAID) { $spb5e5ba = $sp7dcca7->user->qq; if ($sp7dcca7->product->delivery === \App\Product::DELIVERY_MANUAL) { $sp2af324 = '您购买的为手动充值商品,请耐心等待处理'; } else { $sp2af324 = '商家库存不足,因此没有自动发货,请联系商家客服发货'; } if ($spb5e5ba) { $sp2af324 .= '客服QQ:' . $spb5e5ba . ' '; } return self::renderResultPage($spd5cc4d, array('success' => false, 'title' => '订单已支付', 'msg' => $sp2af324), array('order' => $sp7dcca7)); } elseif ($sp7dcca7->status === \App\Order::STATUS_SUCCESS) { return self::showOrderResult($spd5cc4d, $sp7dcca7); } return self::renderResultPage($spd5cc4d, array('success' => false, 'msg' => $sp7dcca7->remark ? '失败原因: ' . $sp7dcca7->remark : '订单支付失败,请重试'), array('order' => $sp7dcca7)); } function renderResultPage(Request $spd5cc4d, $spb34b01, $sp0a1540 = array()) { if ($spd5cc4d->ajax()) { if (@$spb34b01['success']) { return Response::success($spb34b01['data']); } else { return Response::fail('error', $spb34b01['msg']); } } else { return view('pay.result', array_merge(array('result' => $spb34b01, 'data' => $sp0a1540), $sp0a1540)); } } function shipOrder($spd5cc4d, $spd56469, $sp9b2bb6, $spa24b71) { $sp7dcca7 = \App\Order::whereOrderNo($spd56469)->first(); if ($sp7dcca7 === null) { \Log::error('shipOrder: No query results for model [App\\Order:' . $spd56469 . ',trade_no:' . $spa24b71 . ',amount:' . $sp9b2bb6 . ']. die(\'success\');'); die('success'); } if ($sp7dcca7->paid > $sp9b2bb6) { \Log::alert('shipOrder, price may error, order_no:' . $spd56469 . ', paid:' . $sp7dcca7->paid . ', $amount get:' . $sp9b2bb6); $sp7dcca7->remark = '支付金额(' . sprintf('%0.2f', $sp9b2bb6 / 100) . ') 小于 订单金额(' . sprintf('%0.2f', $sp7dcca7->paid / 100) . ')'; $sp7dcca7->save(); throw new \Exception($sp7dcca7->remark); } $spaeec37 = null; if ($sp7dcca7->status === \App\Order::STATUS_UNPAY) { \Log::debug('shipOrder.first_process:' . $spd56469); $sp1f742d = $sp7dcca7->id; if (FundHelper::orderSuccess($sp7dcca7->id, function ($sp762ce1) use($sp1f742d, $spa24b71, &$sp7dcca7, &$spaeec37) { $sp7dcca7 = $sp762ce1; if ($sp7dcca7->status !== \App\Order::STATUS_UNPAY) { \Log::debug('Shop.Pay.shipOrder: .first_process:' . $sp7dcca7->order_no . ' already processed! #2'); return false; } $spaeec37 = $sp7dcca7->product()->lockForUpdate()->firstOrFail(); $sp7dcca7->pay_trade_no = $spa24b71; $sp7dcca7->paid_at = Carbon::now(); if ($spaeec37->delivery === \App\Product::DELIVERY_MANUAL) { $sp7dcca7->status = \App\Order::STATUS_PAID; $sp7dcca7->send_status = \App\Order::SEND_STATUS_CARD_UN; $sp7dcca7->saveOrFail(); return true; } $spac6360 = Card::where('product_id', $sp7dcca7->product_id)->whereRaw('`count_sold`<`count_all`')->take($sp7dcca7->count)->lockForUpdate()->get(); if (count($spac6360) !== $sp7dcca7->count) { Log::alert('Shop.Pay.shipOrder: 订单:' . $sp7dcca7->order_no . ', 购买数量:' . $sp7dcca7->count . ', 卡数量:' . count($spac6360) . ' 卡密不足(已支付 未发货)'); $sp7dcca7->status = \App\Order::STATUS_PAID; $sp7dcca7->saveOrFail(); return true; } else { $sp227200 = array(); foreach ($spac6360 as $sp21b3f0) { $sp227200[] = $sp21b3f0->id; } $sp7dcca7->cards()->attach($sp227200); Card::whereIn('id', $sp227200)->update(array('status' => Card::STATUS_SOLD, 'count_sold' => DB::raw('`count_sold`+1'))); $sp7dcca7->status = \App\Order::STATUS_SUCCESS; $sp7dcca7->saveOrFail(); $spaeec37->count_sold += $sp7dcca7->count; $spaeec37->saveOrFail(); return FundHelper::ACTION_CONTINUE; } })) { if ($spaeec37->count_warn > 0 && $spaeec37->count < $spaeec37->count_warn) { try { Mail::to($sp7dcca7->user->email)->Queue(new ProductCountWarn($spaeec37, $spaeec37->count)); } catch (\Throwable $spece20f) { LogHelper::setLogFile('mail'); Log::error('shipOrder.count_warn error', array('product_id' => $sp7dcca7->product_id, 'email' => $sp7dcca7->user->email, 'exception' => $spece20f->getMessage())); LogHelper::setLogFile('card'); } } if (System::_getInt('mail_send_order')) { $sp7d9677 = @json_decode($sp7dcca7->contact_ext, true)['_mail']; if ($sp7d9677) { $sp7dcca7->sendEmail($sp7d9677); } } if ($sp7dcca7->status === \App\Order::STATUS_SUCCESS && System::_getInt('sms_send_order')) { $sp052029 = @json_decode($sp7dcca7->contact_ext, true)['_mobile']; if ($sp052029) { $sp7dcca7->sendSms($sp052029); } } } else { } } else { Log::debug('Shop.Pay.shipOrder: .order_no:' . $sp7dcca7->order_no . ' already processed! #1'); } return FALSE; } private function showOrderResult($spd5cc4d, $sp7dcca7) { return self::renderResultPage($spd5cc4d, array('success' => true, 'msg' => $sp7dcca7->getSendMessage()), array('card_txt' => join('
', $sp7dcca7->getCardsArray()), 'order' => $sp7dcca7, 'product' => $sp7dcca7->product)); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Shop/Product.php b/app/Http/Controllers/Shop/Product.php
new file mode 100644
index 000000000..96b365d6e
--- /dev/null
+++ b/app/Http/Controllers/Shop/Product.php
@@ -0,0 +1,2 @@
+post('category_id'); if (!$sp7b7cc9) { return Response::forbidden('请选择商品分类'); } $sp2e76be = \App\Category::where('id', $sp7b7cc9)->first(); if (!$sp2e76be) { return Response::forbidden('商品分类未找到'); } if ($sp2e76be->password_open && $spd5cc4d->post('password') !== $sp2e76be->password) { return Response::fail('分类密码输入错误'); } $sp1cba4d = \App\Product::where('category_id', $sp7b7cc9)->where('enabled', 1)->orderBy('sort')->get(); foreach ($sp1cba4d as $spaeec37) { $spaeec37->setForShop(); } return Response::success($sp1cba4d); } function verifyPassword(Request $spd5cc4d) { $spad8100 = (int) $spd5cc4d->post('product_id'); if (!$spad8100) { return Response::forbidden('请选择商品'); } $spaeec37 = \App\Product::where('id', $spad8100)->first(); if (!$spaeec37) { return Response::forbidden('商品未找到'); } if ($spaeec37->password_open && $spd5cc4d->post('password') !== $spaeec37->password) { return Response::fail('商品密码输入错误'); } return Response::success(); } }
\ No newline at end of file
diff --git a/app/Http/Controllers/Shop/VerifyCode.php b/app/Http/Controllers/Shop/VerifyCode.php
new file mode 100644
index 000000000..9d180571c
--- /dev/null
+++ b/app/Http/Controllers/Shop/VerifyCode.php
@@ -0,0 +1,2 @@
+ 'geetest', 'geetest' => Geetest\API::get()); return Response::success($sp15097d); } }
\ No newline at end of file
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
new file mode 100644
index 000000000..9d6f9bc99
--- /dev/null
+++ b/app/Http/Kernel.php
@@ -0,0 +1,2 @@
+ array(\App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Ken\BladeMinify\Middleware\Minify::class), 'api' => array(\App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, 'throttle:120,1', \Illuminate\Routing\Middleware\SubstituteBindings::class)); protected $routeMiddleware = array('auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class); }
\ No newline at end of file
diff --git a/app/Http/Middleware/CORS.php b/app/Http/Middleware/CORS.php
new file mode 100644
index 000000000..0517e1c0b
--- /dev/null
+++ b/app/Http/Middleware/CORS.php
@@ -0,0 +1,2 @@
+ $spd5cc4d->header('Origin'), 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE', 'Access-Control-Allow-Headers' => 'Content-Type, Accept, Authorization, Cookie, X-Requested-With, X-XSRF-TOKEN', 'Access-Control-Allow-Credentials' => 'true'); if ($spd5cc4d->isMethod('OPTIONS')) { return response()->make('', 200, $spdf7b97); } $spad32e6 = $spe5aa98($spd5cc4d); foreach ($spdf7b97 as $sp7b7024 => $spc82d84) { $spad32e6->headers->set($sp7b7024, $spc82d84); } return $spad32e6; } return $spe5aa98($spd5cc4d); } }
\ No newline at end of file
diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php
new file mode 100644
index 000000000..90fb1b3c5
--- /dev/null
+++ b/app/Http/Middleware/EncryptCookies.php
@@ -0,0 +1,2 @@
+check()) { return redirect('/home'); } return $spe5aa98($spd5cc4d); } }
\ No newline at end of file
diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php
new file mode 100644
index 000000000..8e1e64fe5
--- /dev/null
+++ b/app/Http/Middleware/TrimStrings.php
@@ -0,0 +1,2 @@
+ 'FORWARDED', Request::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR', Request::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST', Request::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT', Request::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO'); }
\ No newline at end of file
diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php
new file mode 100644
index 000000000..0fc501c84
--- /dev/null
+++ b/app/Http/Middleware/VerifyCsrfToken.php
@@ -0,0 +1,2 @@
+mobile = $sp052029; $this->order = $sp7dcca7; } public function handle() { CurlRequest::post('https://api.his.cat/api/sms/send', http_build_query(array('id' => System::_get('sms_api_id'), 'key' => System::_get('sms_api_key'), 'to' => $this->mobile, 'msg' => config('app.url') . '/pay/result/' . $this->order->order_no))); } }
\ No newline at end of file
diff --git a/app/Library/CurlRequest.php b/app/Library/CurlRequest.php
new file mode 100644
index 000000000..e1db58675
--- /dev/null
+++ b/app/Library/CurlRequest.php
@@ -0,0 +1,3 @@
+ $sp3c80c1) { $sp3c23e5[] = $spee3fdf . ': ' . $sp3c80c1; } $sp3c23e5[] = 'Expect:'; $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($sp4e752c, CURLOPT_FOLLOWLOCATION, true); curl_setopt($sp4e752c, CURLOPT_MAXREDIRS, 3); if ($sp888af6 == 1) { curl_setopt($sp4e752c, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($sp4e752c, CURLOPT_POST, 1); if ($sp4aa83c !== '') { curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $sp4aa83c); curl_setopt($sp4e752c, CURLOPT_POSTREDIR, 3); } } if (defined('MY_PROXY')) { curl_setopt($sp4e752c, CURLOPT_PROXY, MY_PROXY); if (defined('MY_PROXY_PASS')) { curl_setopt($sp4e752c, CURLOPT_PROXYUSERPWD, MY_PROXY_PASS); } } curl_setopt($sp4e752c, CURLOPT_TIMEOUT, $sp8bccc7); curl_setopt($sp4e752c, CURLOPT_CONNECTTIMEOUT, $sp8bccc7); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($sp4e752c, CURLOPT_HEADER, 1); curl_setopt($sp4e752c, CURLOPT_HTTPHEADER, $sp3c23e5); $spad32e6 = curl_exec($sp4e752c); $sp5ec78e = curl_getinfo($sp4e752c, CURLINFO_HEADER_SIZE); $sp7b1947 = substr($spad32e6, 0, $sp5ec78e); $sp224c81 = substr($spad32e6, $sp5ec78e); curl_close($sp4e752c); if ($spc6c8e8 !== false) { $spdf7b97 = explode('
+', $sp7b1947); $sp54e52e = ''; foreach ($spdf7b97 as $sp7b1947) { if (strpos($sp7b1947, 'Set-Cookie') !== false) { if (strpos($sp7b1947, ';') !== false) { $sp54e52e = $sp54e52e . trim(Helper::str_between($sp7b1947, 'Set-Cookie:', ';')) . ';'; } else { $sp54e52e = $sp54e52e . trim(str_replace('Set-Cookie:', '', $sp7b1947)) . ';'; } } } $spc6c8e8 = self::combineCookie($spc6c8e8, $sp54e52e); } return $sp224c81; } public static function get($sp3ae187, $spdf7b97 = array(), $sp8bccc7 = 5, &$spc6c8e8 = false) { return self::curl($sp3ae187, 0, '', $spdf7b97, $sp8bccc7, $spc6c8e8); } public static function post($sp3ae187, $sp4aa83c = '', $spdf7b97 = array(), $sp8bccc7 = 5, &$spc6c8e8 = false) { return self::curl($sp3ae187, 1, $sp4aa83c, $spdf7b97, $sp8bccc7, $spc6c8e8); } public static function combineCookie($sp295f0e, $sp715262) { $sp19cc8a = explode(';', $sp295f0e); $spe9e346 = explode(';', $sp715262); foreach ($sp19cc8a as $spa4e3ce) { if (self::cookieIsExists($spe9e346, self::cookieGetName($spa4e3ce)) == false) { array_push($spe9e346, $spa4e3ce); } } $sp6dee20 = ''; foreach ($spe9e346 as $spa4e3ce) { if (substr($spa4e3ce, -8, 8) != '=deleted' && strlen($spa4e3ce) > 1) { $sp6dee20 .= $spa4e3ce . '; '; } } return substr($sp6dee20, 0, strlen($sp6dee20) - 2); } public static function cookieGetName($sp80fd62) { $spc23fd1 = strpos($sp80fd62, '='); return substr($sp80fd62, 0, $spc23fd1); } public static function cookieGetValue($sp80fd62) { $spc23fd1 = strpos($sp80fd62, '='); $spc63eed = substr($sp80fd62, $spc23fd1 + 1, strlen($sp80fd62) - $spc23fd1); return $spc63eed; } public static function cookieGet($spc6c8e8, $spcc609a, $spf2d562 = false) { $spc6c8e8 = str_replace(' ', '', $spc6c8e8); if (substr($spc6c8e8, -1, 1) != ';') { $spc6c8e8 = ';' . $spc6c8e8 . ';'; } else { $spc6c8e8 = ';' . $spc6c8e8; } $spb07ff0 = Helper::str_between($spc6c8e8, ';' . $spcc609a . '=', ';'); if (!$spf2d562 || $spb07ff0 == '') { return $spb07ff0; } else { return $spcc609a . '=' . $spb07ff0; } } private static function cookieIsExists($spbab9b9, $sp8dc415) { foreach ($spbab9b9 as $spa4e3ce) { if (self::cookieGetName($spa4e3ce) == $sp8dc415) { return true; } } return false; } function test() { $spc63eed = self::combineCookie('a=1;b=2;c=3', 'c=5'); var_dump($spc63eed); } }
\ No newline at end of file
diff --git a/app/Library/FundHelper.php b/app/Library/FundHelper.php
new file mode 100644
index 000000000..df8b227db
--- /dev/null
+++ b/app/Library/FundHelper.php
@@ -0,0 +1,2 @@
+lockForUpdate()->firstOrFail(); $sp29a775 = $sp0fcdbd($sp7dcca7); if ($sp29a775 !== self::ACTION_CONTINUE) { return $sp29a775; } $sp694bd2 = User::where('id', $sp7dcca7->user_id)->lockForUpdate()->firstOrFail(); $sp694bd2->m_all += $sp7dcca7->income; $sp694bd2->saveOrFail(); $sp0f9252 = new FundRecord(); $sp0f9252->user_id = $sp7dcca7->user_id; $sp0f9252->type = FundRecord::TYPE_IN; $sp0f9252->amount = $sp7dcca7->income; $sp0f9252->all = $sp694bd2->m_all; $sp0f9252->frozen = $sp694bd2->m_frozen; $sp0f9252->paid = $sp694bd2->m_paid; $sp0f9252->balance = $sp694bd2->m_balance; $sp0f9252->remark = '订单#' . $sp7dcca7->order_no; $sp0f9252->order_id = $sp7dcca7->id; $sp0f9252->saveOrFail(); return true; }); } catch (\Throwable $spece20f) { $sp2af324 = 'FundHelper.orderSuccess error, order_id:' . $sp1f742d; if ($sp7dcca7) { $sp2af324 .= ', user_id:' . $sp7dcca7->user_id . ',income:' . $sp7dcca7->income . ',order_no:' . $sp7dcca7->order_no; } Log::error($sp2af324 . ' with exception:', array('Exception' => $spece20f)); return false; } } public static function orderFreeze($sp1f742d, $sp10a9c0) { $sp7dcca7 = null; try { return DB::transaction(function () use($sp1f742d, &$sp7dcca7, $sp10a9c0) { $sp7dcca7 = \App\Order::where('id', $sp1f742d)->lockForUpdate()->firstOrFail(); if ($sp7dcca7->status === Order::STATUS_REFUND) { return false; } if ($sp7dcca7->status === Order::STATUS_FROZEN) { return true; } $spa218c4 = $sp7dcca7->status; if ($spa218c4 === \App\Order::STATUS_SUCCESS) { $sp0c5813 = '已发货'; } elseif ($spa218c4 === \App\Order::STATUS_UNPAY) { $sp0c5813 = '未付款'; } elseif ($spa218c4 === \App\Order::STATUS_PAID) { $sp0c5813 = '未发货'; } else { throw new \Exception('unknown'); } $sp694bd2 = User::where('id', $sp7dcca7->user_id)->lockForUpdate()->firstOrFail(); $sp0f9252 = new FundRecord(); $sp0f9252->user_id = $sp7dcca7->user_id; $sp0f9252->type = FundRecord::TYPE_OUT; $sp0f9252->order_id = $sp7dcca7->id; $sp0f9252->remark = $sp7dcca7 === $sp7dcca7 ? '' : '关联订单#' . $sp7dcca7->order_no . ': '; if ($spa218c4 === \App\Order::STATUS_SUCCESS) { $sp694bd2->m_frozen += $sp7dcca7->income; $sp694bd2->saveOrFail(); $sp0f9252->amount = -$sp7dcca7->income; $sp0f9252->remark .= $sp10a9c0 . ', 冻结订单#' . $sp7dcca7->order_no; } else { $sp0f9252->amount = 0; $sp0f9252->remark .= $sp10a9c0 . ', 冻结订单(' . $sp0c5813 . ')#' . $sp7dcca7->order_no; } $sp0f9252->all = $sp694bd2->m_all; $sp0f9252->frozen = $sp694bd2->m_frozen; $sp0f9252->paid = $sp694bd2->m_paid; $sp0f9252->balance = $sp694bd2->m_balance; $sp0f9252->saveOrFail(); $sp7dcca7->status = \App\Order::STATUS_FROZEN; $sp7dcca7->frozen_reason = ($sp7dcca7 === $sp7dcca7 ? '' : '关联订单#' . $sp7dcca7->order_no . ': ') . $sp10a9c0; $sp7dcca7->saveOrFail(); return true; }); } catch (\Throwable $spece20f) { $sp2af324 = 'FundHelper.orderFreeze error'; if ($sp7dcca7) { $sp2af324 .= ', order_no:' . $sp7dcca7->order_no . ', user_id:' . $sp7dcca7->user_id . ', amount:' . $sp7dcca7->income; } else { $sp2af324 .= ', order_no: null'; } Log::error($sp2af324 . ' with exception:', array('Exception' => $spece20f)); return false; } } public static function orderUnfreeze($sp1f742d, $spf3fa17, callable $spb23766 = null, &$spd81133 = null) { $sp7dcca7 = null; try { return DB::transaction(function () use($sp1f742d, &$sp7dcca7, $spf3fa17, $spb23766, &$spd81133) { $sp7dcca7 = \App\Order::where('id', $sp1f742d)->lockForUpdate()->firstOrFail(); if ($spb23766 !== null) { $sp29a775 = $spb23766(); if ($sp29a775 !== self::ACTION_CONTINUE) { return $sp29a775; } } if ($sp7dcca7->status === Order::STATUS_REFUND) { $spd81133 = $sp7dcca7->status; return false; } if ($sp7dcca7->status !== Order::STATUS_FROZEN) { $spd81133 = $sp7dcca7->status; return true; } $sp8d650d = $sp7dcca7->card_orders()->exists(); if ($sp8d650d) { $spd81133 = \App\Order::STATUS_SUCCESS; $sp0c5813 = '已发货'; } else { if ($sp7dcca7->paid_at === NULL) { $spd81133 = \App\Order::STATUS_UNPAY; $sp0c5813 = '未付款'; } else { $spd81133 = \App\Order::STATUS_PAID; $sp0c5813 = '未发货'; } } $sp694bd2 = User::where('id', $sp7dcca7->user_id)->lockForUpdate()->firstOrFail(); $sp0f9252 = new FundRecord(); $sp0f9252->user_id = $sp7dcca7->user_id; $sp0f9252->type = FundRecord::TYPE_IN; $sp0f9252->remark = $sp7dcca7 === $sp7dcca7 ? '' : '关联订单#' . $sp7dcca7->order_no . ': '; $sp0f9252->order_id = $sp7dcca7->id; if ($sp8d650d) { $sp694bd2->m_frozen -= $sp7dcca7->income; $sp694bd2->saveOrFail(); $sp0f9252->amount = $sp7dcca7->income; $sp0f9252->remark .= $spf3fa17 . ', 解冻订单#' . $sp7dcca7->order_no; } else { $sp0f9252->amount = 0; $sp0f9252->remark .= $spf3fa17 . ', 解冻订单(' . $sp0c5813 . ')#' . $sp7dcca7->order_no; } $sp0f9252->all = $sp694bd2->m_all; $sp0f9252->frozen = $sp694bd2->m_frozen; $sp0f9252->paid = $sp694bd2->m_paid; $sp0f9252->balance = $sp694bd2->m_balance; $sp0f9252->saveOrFail(); $sp7dcca7->status = $spd81133; $sp7dcca7->saveOrFail(); return true; }); } catch (\Throwable $spece20f) { $sp2af324 = 'FundHelper.orderUnfreeze error'; if ($sp7dcca7) { $sp2af324 .= ', order_no:' . $sp7dcca7->order_no . ', user_id:' . $sp7dcca7->user_id . ',amount:' . $sp7dcca7->income; } else { $sp2af324 .= ', order_no: null'; } Log::error($sp2af324 . ' with exception:', array('Exception' => $spece20f)); return false; } } }
\ No newline at end of file
diff --git a/app/Library/Geetest/API.php b/app/Library/Geetest/API.php
new file mode 100644
index 000000000..136818854
--- /dev/null
+++ b/app/Library/Geetest/API.php
@@ -0,0 +1,2 @@
+geetest_conf = $spc27de0; } public static function get() { $spe00284 = config('services.geetest.id'); $sp7b7024 = config('services.geetest.key'); if (!strlen($spe00284) || !strlen($sp7b7024)) { return null; } $sp1972d7 = new Lib($spe00284, $sp7b7024); $spfaef2f = time() . rand(1, 10000); $spc3ee59 = $sp1972d7->pre_process($spfaef2f); $sp29a775 = json_decode($sp1972d7->get_response_str()); Session::put('gt_server', $spc3ee59); Session::put('gt_user_id', $spfaef2f); return $sp29a775; } public static function verify($sp4a8740, $spad8d9f, $spc91770) { $sp1972d7 = new Lib(config('services.geetest.id'), config('services.geetest.key')); $spfaef2f = Session::get('gt_user_id'); if (Session::get('gt_server') == 1) { $spb34b01 = $sp1972d7->success_validate($sp4a8740, $spad8d9f, $spc91770, $spfaef2f); if ($spb34b01) { return true; } else { return false; } } else { if ($sp1972d7->fail_validate($sp4a8740, $spad8d9f, $spc91770)) { return true; } else { return false; } } } }
\ No newline at end of file
diff --git a/app/Library/Geetest/Lib.php b/app/Library/Geetest/Lib.php
new file mode 100644
index 000000000..088d3d2f1
--- /dev/null
+++ b/app/Library/Geetest/Lib.php
@@ -0,0 +1,4 @@
+captcha_id = $sp479a46; $this->private_key = $spcbc983; } public function pre_process($spfaef2f = null) { $sp3ae187 = 'http://api.geetest.com/register.php?gt=' . $this->captcha_id; if ($spfaef2f != null and is_string($spfaef2f)) { $sp3ae187 = $sp3ae187 . '&user_id=' . $spfaef2f; } $sp238fb6 = $this->send_request($sp3ae187); if (strlen($sp238fb6) != 32) { $this->failback_process(); return 0; } $this->success_process($sp238fb6); return 1; } private function success_process($sp238fb6) { $sp238fb6 = md5($sp238fb6 . $this->private_key); $spb34b01 = array('success' => 1, 'gt' => $this->captcha_id, 'challenge' => $sp238fb6); $this->response = $spb34b01; } private function failback_process() { $spfc92e7 = md5(rand(0, 100)); $spd78bac = md5(rand(0, 100)); $sp238fb6 = $spfc92e7 . substr($spd78bac, 0, 2); $spb34b01 = array('success' => 0, 'gt' => $this->captcha_id, 'challenge' => $sp238fb6); $this->response = $spb34b01; } public function get_response_str() { return json_encode($this->response); } public function get_response() { return $this->response; } public function success_validate($sp238fb6, $spf88ac7, $sp102a68, $spfaef2f = null) { if (!$this->check_validate($sp238fb6, $spf88ac7)) { return 0; } $spcb019a = array('seccode' => $sp102a68, 'sdk' => self::GT_SDK_VERSION); if ($spfaef2f != null and is_string($spfaef2f)) { $spcb019a['user_id'] = $spfaef2f; } $sp3ae187 = 'http://api.geetest.com/validate.php'; $spc63e87 = $this->post_request($sp3ae187, $spcb019a); if ($spc63e87 == md5($sp102a68)) { return 1; } else { if ($spc63e87 == 'false') { return 0; } else { return 0; } } } public function fail_validate($sp238fb6, $spf88ac7, $sp102a68) { if ($spf88ac7) { $spc82d84 = explode('_', $spf88ac7); try { $sp35017f = $this->decode_response($sp238fb6, $spc82d84['0']); $sp3d5639 = $this->decode_response($sp238fb6, $spc82d84['1']); $sp359a63 = $this->decode_response($sp238fb6, $spc82d84['2']); $sp291be5 = $this->get_failback_pic_ans($sp3d5639, $sp359a63); $sp7e8ab7 = abs($sp35017f - $sp291be5); } catch (\Exception $spece20f) { return 1; } if ($sp7e8ab7 < 4) { return 1; } else { return 0; } } else { return 0; } } private function check_validate($sp238fb6, $spf88ac7) { if (strlen($spf88ac7) != 32) { return false; } if (md5($this->private_key . 'geetest' . $sp238fb6) != $spf88ac7) { return false; } return true; } private function send_request($sp3ae187) { if (function_exists('curl_exec')) { $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_CONNECTTIMEOUT, self::$connectTimeout); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, self::$socketTimeout); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); $spcb019a = curl_exec($sp4e752c); if (curl_errno($sp4e752c)) { $sp858775 = sprintf('curl[%s] error[%s]', $sp3ae187, curl_errno($sp4e752c) . ':' . curl_error($sp4e752c)); $this->triggerError($sp858775); } curl_close($sp4e752c); } else { $sp4fabd4 = array('http' => array('method' => 'GET', 'timeout' => self::$connectTimeout + self::$socketTimeout)); $sp78d529 = stream_context_create($sp4fabd4); $spcb019a = file_get_contents($sp3ae187, false, $sp78d529); } return $spcb019a; } private function post_request($sp3ae187, $spd45814 = '') { if (!$spd45814) { return false; } $spcb019a = http_build_query($spd45814); if (function_exists('curl_exec')) { $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($sp4e752c, CURLOPT_CONNECTTIMEOUT, self::$connectTimeout); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, self::$socketTimeout); if (!$spd45814) { curl_setopt($sp4e752c, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); } else { curl_setopt($sp4e752c, CURLOPT_POST, 1); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $spcb019a); } $spcb019a = curl_exec($sp4e752c); if (curl_errno($sp4e752c)) { $sp858775 = sprintf('curl[%s] error[%s]', $sp3ae187, curl_errno($sp4e752c) . ':' . curl_error($sp4e752c)); $this->triggerError($sp858775); } curl_close($sp4e752c); } else { if ($spd45814) { $sp4fabd4 = array('http' => array('method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded
+' . 'Content-Length: ' . strlen($spcb019a) . '
+', 'content' => $spcb019a, 'timeout' => self::$connectTimeout + self::$socketTimeout)); $sp78d529 = stream_context_create($sp4fabd4); $spcb019a = file_get_contents($sp3ae187, false, $sp78d529); } } return $spcb019a; } private function decode_response($sp238fb6, $spd6e61f) { if (strlen($spd6e61f) > 100) { return 0; } $sp7b7024 = array(); $sp2e0177 = array(); $speae58d = array('0' => 1, '1' => 2, '2' => 5, '3' => 10, '4' => 50); $sp058528 = 0; $sp7098d5 = 0; $sp27a17c = str_split($sp238fb6); $spdfa8c2 = str_split($spd6e61f); for ($spb75665 = 0; $spb75665 < strlen($sp238fb6); $spb75665++) { $sp338f71 = $sp27a17c[$spb75665]; if (in_array($sp338f71, $sp2e0177)) { continue; } else { $spc82d84 = $speae58d[$sp058528 % 5]; array_push($sp2e0177, $sp338f71); $sp058528++; $sp7b7024[$sp338f71] = $spc82d84; } } for ($spd0447e = 0; $spd0447e < strlen($spd6e61f); $spd0447e++) { $sp7098d5 += $sp7b7024[$spdfa8c2[$spd0447e]]; } $sp7098d5 = $sp7098d5 - $this->decodeRandBase($sp238fb6); return $sp7098d5; } private function get_x_pos_from_str($sp8673f9) { if (strlen($sp8673f9) != 5) { return 0; } $sp006f75 = 0; $sp342805 = 200; $sp006f75 = base_convert($sp8673f9, 16, 10); $spb34b01 = $sp006f75 % $sp342805; $spb34b01 = $spb34b01 < 40 ? 40 : $spb34b01; return $spb34b01; } private function get_failback_pic_ans($spe90e03, $sp1dd2c5) { $sp585f92 = substr(md5($spe90e03), 0, 9); $sp5f7496 = substr(md5($sp1dd2c5), 10, 9); $spcc5db9 = ''; for ($spb75665 = 0; $spb75665 < 9; $spb75665++) { if ($spb75665 % 2 == 0) { $spcc5db9 = $spcc5db9 . $sp585f92[$spb75665]; } elseif ($spb75665 % 2 == 1) { $spcc5db9 = $spcc5db9 . $sp5f7496[$spb75665]; } } $sp7ec1a7 = substr($spcc5db9, 4, 5); $sp291be5 = $this->get_x_pos_from_str($sp7ec1a7); return $sp291be5; } private function decodeRandBase($sp238fb6) { $spcf59df = substr($sp238fb6, 32, 2); $sp2b33f6 = array(); for ($spb75665 = 0; $spb75665 < strlen($spcf59df); $spb75665++) { $space750 = ord($spcf59df[$spb75665]); $spb34b01 = $space750 > 57 ? $space750 - 87 : $space750 - 48; array_push($sp2b33f6, $spb34b01); } $spfa8087 = $sp2b33f6['0'] * 36 + $sp2b33f6['1']; return $spfa8087; } private function triggerError($sp858775) { } }
\ No newline at end of file
diff --git a/app/Library/Helper.php b/app/Library/Helper.php
new file mode 100644
index 000000000..15049038a
--- /dev/null
+++ b/app/Library/Helper.php
@@ -0,0 +1,2 @@
+= $sp7171e5) { return ''; } $sp1c9539 = strlen($sp5d78d8); $sp29a775 = substr($sp3868ff, $spd3a47a + $sp1c9539, $sp7171e5 - $spd3a47a - $sp1c9539); return $sp29a775; } public static function str_between_longest($sp3868ff, $sp5d78d8, $sp17cc54) { $spd3a47a = strpos($sp3868ff, $sp5d78d8); if ($spd3a47a === false) { return ''; } $sp7171e5 = strrpos($sp3868ff, $sp17cc54, $spd3a47a + strlen($sp5d78d8)); if ($sp7171e5 === false || $spd3a47a >= $sp7171e5) { return ''; } $sp1c9539 = strlen($sp5d78d8); $sp29a775 = substr($sp3868ff, $spd3a47a + $sp1c9539, $sp7171e5 - $spd3a47a - $sp1c9539); return $sp29a775; } public static function format_url($sp3ae187) { if (!strlen($sp3ae187)) { return $sp3ae187; } if (!starts_with($sp3ae187, 'http://') && !starts_with($sp3ae187, 'https://')) { $sp3ae187 = 'http://' . $sp3ae187; } while (ends_with($sp3ae187, '/')) { $sp3ae187 = substr($sp3ae187, 0, -1); } return $sp3ae187; } public static function lite_hash($sp3868ff) { $sp47eb81 = crc32((string) $sp3868ff); if ($sp47eb81 < 0) { $sp47eb81 &= 1 << 7; } return $sp47eb81; } const ID_TYPE_USER = 0; const ID_TYPE_CATEGORY = 1; const ID_TYPE_PRODUCT = 2; public static function id_encode($spe00284, $spdc3fe5) { $spb06778 = new Hashids(config('app.key'), 8, 'abcdefghijklmnopqrstuvwxyz1234567890'); return @$spb06778->encode(self::lite_hash($spe00284), $spe00284, self::lite_hash($spdc3fe5), $spdc3fe5); } public static function id_decode($spff9588, $spdc3fe5) { if (strlen($spff9588) < 8) { $spb06778 = new Hashids(config('app.key')); if ($spdc3fe5 === self::ID_TYPE_USER) { return intval(@$spb06778->decodeHex($spff9588)); } else { return intval(@$spb06778->decode($spff9588)[0]); } } $spb06778 = new Hashids(config('app.key'), 8, 'abcdefghijklmnopqrstuvwxyz1234567890'); return intval(@$spb06778->decode($spff9588)[1]); } public static function is_mobile() { if (isset($_SERVER['HTTP_USER_AGENT'])) { if (preg_match('/(iPhone|iPod|Android|ios|SymbianOS|Windows Phone)/i', $_SERVER['HTTP_USER_AGENT'])) { return true; } } return false; } public static function b1_rand_background() { if (self::is_mobile()) { $spdffb1d = array('//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpgyq8n5j20u01hcne2.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpfyjbd0j20u01hcte2.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpw3b5mkj20u01hcnfh.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxoybkicbj20u01hc7de.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpes8rmmj20u01hctn7.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxp8ond6gj20u01hctji.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxp4ljhhvj20u01hck0r.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpstrwnsj20u01hc7he.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxq2a1vthj20u01hc4gs.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpiebjztj20u01hcaom.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxow4b14kj20u01hc43x.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxohtyvgfj20u01hc7gk.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxp6vexa3j20u01hcdj3.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxqa0zhc6j20u01hc14e.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxomnbr0gj20u01hc79r.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpx57f0sj20u01hcqmd.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxoozjilyj20u01hcgt9.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxprigfw1j20u01hcam9.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxod70fcpj20u01hcajj.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpzb5p1tj20u01hcnca.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxozvry57j20u01hcgwo.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpv092lfj20u01hcx1o.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpdz6s0bj20u01hcaqj.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxoso79ayj20u01hcq9c.jpg', '//ww2.sinaimg.cn/large/ac1a0c4agy1ftxpqjrtjhj20u01hcapi.jpg'); } else { $spdffb1d = array('//ww1.sinaimg.cn/large/ac1a0c4agy1ftz78cfrj2j21hc0u0kio.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7qj6l3xj21hc0u0b29.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9tqa2fvpj21hc0u017a.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz71m76skj21hc0u0nnq.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz709py6fj21hc0u0wx2.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9sgqv33lj21hc0u04qp.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9s9soh4sj21hc0u01kx.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9s9r2vkzj21hc0u0x4e.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7etbcs8j21hc0u07p3.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9sgn1bluj21hc0u0kiy.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7r6tmv1j21hc0u0anj.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7c4h0xzj21hc0u01kx.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9tq7uypvj21hc0u01be.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1fwr4pjgbncj21hc0u0kjl.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7i6u1gxj21hc0u0tyk.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1fwr4s0fb2tj21hc0u01ky.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz72wkr9dj21hc0u0h1r.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7tj5ohrj21hc0u0qnp.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ft9sgp23zbj21hc0u0txl.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7l9dcokj21hc0u0k9k.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1fwr4lvumu1j21hc0u0x6p.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz7alxyhnj21hc0u0nkh.jpg', '//ww1.sinaimg.cn/large/ac1a0c4agy1ftz799gvb3j21hc0u0qdt.jpg'); } return $spdffb1d[rand(0, count($spdffb1d))]; } }
\ No newline at end of file
diff --git a/app/Library/LogHelper.php b/app/Library/LogHelper.php
new file mode 100644
index 000000000..a44575e06
--- /dev/null
+++ b/app/Library/LogHelper.php
@@ -0,0 +1,2 @@
+setHandlers(array()); \Log::useDailyFiles(storage_path() . '/logs/' . $sp59c898 . '.log', 0, config('app.log_level')); } }
\ No newline at end of file
diff --git a/app/Library/Pay/AliAop/Api.php b/app/Library/Pay/AliAop/Api.php
new file mode 100644
index 000000000..7ec9daea9
--- /dev/null
+++ b/app/Library/Pay/AliAop/Api.php
@@ -0,0 +1,8 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } private function aop($spc27de0) { if ($this->aop === null) { $sp15b07f = \Alipay\Key\AlipayKeyPair::create('-----BEGIN RSA PRIVATE KEY-----
+' . wordwrap($spc27de0['merchant_private_key'], 64, '
+', true) . '
+-----END RSA PRIVATE KEY-----', '-----BEGIN PUBLIC KEY-----
+' . wordwrap($spc27de0['alipay_public_key'], 64, '
+', true) . '
+-----END PUBLIC KEY-----'); $this->aop = new \Alipay\AopClient($spc27de0['app_id'], $sp15b07f); } return $this->aop; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); if ($spc27de0['payway'] === 'f2f') { $spd5cc4d = \Alipay\AlipayRequestFactory::create('alipay.trade.precreate', array('notify_url' => $this->url_notify, 'biz_content' => array('out_trade_no' => $spba04f6, 'total_amount' => $sp9b2bb6, 'subject' => $sp9f49de))); $spb34b01 = $this->aop($spc27de0)->execute($spd5cc4d)->getData(); header('location: /qrcode/pay/' . $spba04f6 . '/aliqr?url=' . urlencode($spb34b01['qr_code'])); } elseif ($spc27de0['payway'] === 'pc') { $spd5cc4d = \Alipay\AlipayRequestFactory::create('alipay.trade.page.pay', array('return_url' => $this->url_return, 'notify_url' => $this->url_notify, 'biz_content' => array('out_trade_no' => $spba04f6, 'product_code' => 'FAST_INSTANT_TRADE_PAY', 'total_amount' => $sp9b2bb6, 'subject' => $sp9f49de))); $spb34b01 = $this->aop($spc27de0)->pageExecuteUrl($spd5cc4d); header('location: ' . $spb34b01); } elseif ($spc27de0['payway'] === 'mobile') { $spd5cc4d = \Alipay\AlipayRequestFactory::create('alipay.trade.wap.pay', array('return_url' => $this->url_return, 'notify_url' => $this->url_notify, 'biz_content' => array('out_trade_no' => $spba04f6, 'product_code' => 'QUICK_WAP_WAY', 'total_amount' => $sp9b2bb6, 'subject' => $sp9f49de))); $spb34b01 = $this->aop($spc27de0)->pageExecuteUrl($spd5cc4d); header('location: ' . $spb34b01); } die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { if ($this->aop($spc27de0)->verify($_POST)) { if ($_POST['trade_status'] === 'TRADE_SUCCESS') { $spa24b71 = $_POST['trade_no']; $sp36f78e = (int) round($_POST['total_amount'] * 100); $sp4294a3($_POST['out_trade_no'], $sp36f78e, $spa24b71); } } else { Log::error('Pay.AliAop.goPay.verify Error: ' . json_encode($_POST)); } echo 'success'; die; } if (!empty($spc27de0['out_trade_no'])) { $spba04f6 = $spc27de0['out_trade_no']; $spd5cc4d = \Alipay\AlipayRequestFactory::create('alipay.trade.query', array('notify_url' => $this->url_notify, 'biz_content' => array('out_trade_no' => $spba04f6))); try { $spb34b01 = $this->aop($spc27de0)->execute($spd5cc4d)->getData(); } catch (\Throwable $spece20f) { return false; } if ($spb34b01['trade_status'] === 'TRADE_SUCCESS') { $spa24b71 = $spb34b01['trade_no']; $sp36f78e = (int) round($spb34b01['total_amount'] * 100); $sp4294a3($spb34b01['out_trade_no'], $sp36f78e, $spa24b71); return true; } } else { if (!isset($_GET['out_trade_no']) || !isset($_GET['total_amount'])) { return false; } $sp669554 = $this->aop($spc27de0)->verify($_GET); if (!$sp669554) { Log::error('Pay.AliAop.verify Error: 支付宝签名校验失败', array('$_GET' => $_GET)); return false; } $spa24b71 = $_GET['trade_no']; $sp36f78e = (int) round($_GET['total_amount'] * 100); $sp4294a3($_GET['out_trade_no'], $sp36f78e, $spa24b71); return true; } return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Alipay/Api.php b/app/Library/Pay/Alipay/Api.php
new file mode 100644
index 000000000..9191f8c34
--- /dev/null
+++ b/app/Library/Pay/Alipay/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; $this->pay_id = $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); $spcdbaf5 = $this->buildAliConfig($spc27de0); require_once __DIR__ . '/sdk/alipay_submit.class.php'; $spcdbaf5['notify_url'] = $this->url_notify; $spcdbaf5['return_url'] = $this->url_return . '/' . $spba04f6; $sp18b39b = array('service' => $spcdbaf5['service'], 'partner' => $spcdbaf5['partner'], 'seller_id' => $spcdbaf5['seller_id'], 'payment_type' => $spcdbaf5['payment_type'], 'notify_url' => $spcdbaf5['notify_url'], 'return_url' => $spcdbaf5['return_url'], 'out_trade_no' => $spba04f6, 'total_fee' => $sp9b2bb6, 'subject' => $sp9f49de, 'body' => $sp224c81, 'show_url' => config('app.url'), 'app_pay' => 'Y', '_input_charset' => 'utf-8'); $spb37eaa = new \AlipaySubmit($spcdbaf5); $sp997379 = $spb37eaa->buildRequestForm($sp18b39b, 'get', '确认'); echo '正在跳转到支付渠道... 正在跳转到支付渠道... '; echo $sp997379; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $spcdbaf5 = $this->buildAliConfig($spc27de0); require __DIR__ . '/sdk/alipay_notify.class.php'; $spd33029 = new \AlipayNotify($spcdbaf5); if ($spb2acff) { $spb34b01 = $spd33029->verifyNotify(); } else { $spb34b01 = $spd33029->verifyReturn(); } if ($spb34b01) { $spba04f6 = $_REQUEST['out_trade_no']; $spa24b71 = $_REQUEST['trade_no']; $spff1a8e = $_REQUEST['trade_status']; $sp36f78e = (int) round($_REQUEST['total_fee'] * 100); if ($spff1a8e == 'TRADE_FINISHED' || $spff1a8e == 'TRADE_SUCCESS') { $sp4294a3($spba04f6, $sp36f78e, $spa24b71); } if ($spb2acff) { echo 'success'; } return true; } else { if ($spb2acff) { echo 'fail'; $spff31ad = 'payNotify pay_id: ' . $this->pay_id . ',Alipay'; } else { $spff31ad = 'payReturn pay_id: ' . $this->pay_id . ',Alipay'; } \Log::error($spff31ad . ' Alipay.Api.verify failed'); return false; } } private function buildAliConfig($spc27de0) { return array('partner' => $spc27de0['partner'], 'seller_id' => $spc27de0['partner'], 'key' => $spc27de0['key'], 'sign_type' => 'MD5', 'input_charset' => 'utf-8', 'cacert' => __DIR__ . DIRECTORY_SEPARATOR . 'cacert.pem', 'transport' => 'https', 'payment_type' => '1', 'service' => $spc27de0['payway'] === 'wap' ? 'alipay.wap.create.direct.pay.by.user' : 'create_direct_pay_by_user'); } }
\ No newline at end of file
diff --git a/app/Library/Pay/Alipay/cacert.pem b/app/Library/Pay/Alipay/cacert.pem
new file mode 100644
index 000000000..cb8f7fadb
--- /dev/null
+++ b/app/Library/Pay/Alipay/cacert.pem
@@ -0,0 +1,3920 @@
+##
+## ca-bundle.crt -- Bundle of CA Root Certificates
+##
+## Certificate data from Mozilla as of: Thu Oct 18 19:05:59 2012
+##
+## This is a bundle of X.509 certificates of public Certificate Authorities
+## (CA). These were automatically extracted from Mozilla's root certificates
+## file (certdata.txt). This file can be found in the mozilla source tree:
+## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
+##
+## It contains the certificates in PEM format and therefore
+## can be directly used with curl / libcurl / php_curl, or with
+## an Apache+mod_ssl webserver for SSL client authentication.
+## Just configure this file as the SSLCACertificateFile.
+##
+
+# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.86 $ $Date: 2012/10/18 16:26:52 $
+
+GTE CyberTrust Global Root
+==========================
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
+Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
+A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
+MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
+Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
+IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
+sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
+HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
+AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
+M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
+NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
+-----END CERTIFICATE-----
+
+Thawte Server CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
+dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
+AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
+b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
+BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
+c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
+A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
+ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
+/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
+1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
+MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
+GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
+GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
+-----END CERTIFICATE-----
+
+Thawte Premium Server CA
+========================
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
+dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
+AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
+ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
+AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
+VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
+aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
+cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
+aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
+Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
+qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
+SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
+8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
+UCemDaYj+bvLpgcUQg==
+-----END CERTIFICATE-----
+
+Equifax Secure CA
+=================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
+ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
+B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
+nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
+fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
+8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
+A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
+CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
+A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
+spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
+Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
+zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
+BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
+70+sB3c4
+-----END CERTIFICATE-----
+
+Digital Signature Trust Co. Global CA 1
+=======================================
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
+ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy
+MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
+IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA
+A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE
+NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i
+o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
+BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
+dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
+IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY
+MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM
+BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
+ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq
+kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4
+RbyhkwS7hp86W0N6w4pl
+-----END CERTIFICATE-----
+
+Digital Signature Trust Co. Global CA 3
+=======================================
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
+ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy
+MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
+IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA
+A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD
+VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS
+xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
+BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
+dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
+IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
+MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM
+BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
+AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi
+up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1
+mPnHfxsb1gYgAlihw6ID
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
+XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
+f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
+hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
+TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
+WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
+Tqj/ZA1k
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority - G2
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd
+k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq
+WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB
+MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM
+XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC
+lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ
+-----END CERTIFICATE-----
+
+Verisign Class 2 Public Primary Certification Authority - G2
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
+cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
+Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
+c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
+cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
+Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
+c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx
+nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC
+wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA
+ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK
+1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk
+LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg==
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G2
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
+dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
+FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
+lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
+MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
+1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
+Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
+-----END CERTIFICATE-----
+
+GlobalSign Root CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
+GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
+b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
+BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
+VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
+DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
+THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
+Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
+c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
+gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
+AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
+Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
+j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
+hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
+X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
+ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
+s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
+S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
+TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
+ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
+YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
+BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
+9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
+01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
+9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+ValiCert Class 1 VA
+===================
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
+b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
+YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
+bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
+MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
+d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
+UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
+LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
+GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
+DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
+lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
+icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
+Orf1LXLI
+-----END CERTIFICATE-----
+
+ValiCert Class 2 VA
+===================
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
+b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
+YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
+bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
+MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
+d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
+UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
+LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
+CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
+ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
+SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
+UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
+W9ViH0Pd
+-----END CERTIFICATE-----
+
+RSA Root Certificate 1
+======================
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
+b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
+YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
+bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
+MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
+d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
+UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
+LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
+3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
+BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
+3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
+V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
+on+jjBXu
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E
+bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ
+rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+
+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB
+FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
+y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
+ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h
+a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc
+D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
+-----END CERTIFICATE-----
+
+Verisign Class 2 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
+azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug
+b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
+c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
+aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6
+tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7
+C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS
+0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs
+Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0
+JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
+0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
+sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx
+JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j
+GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
+EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
+cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
+EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
+055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
+j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
+xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
+t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+Verisign Class 4 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
+tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
+8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
+Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
+Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
+mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
+fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
+RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
+UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
+-----END CERTIFICATE-----
+
+Entrust.net Secure Server CA
+============================
+-----BEGIN CERTIFICATE-----
+MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
+BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
+cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
+ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
+A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
+eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
+dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
+aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
+gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
+ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
+CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
+dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
+bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
+dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
+NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
+HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
+BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
+Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
+n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
+-----END CERTIFICATE-----
+
+Entrust.net Premium 2048 Secure Server CA
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
+ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
+bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
+BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
+NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
+d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
+MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
+ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
+Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
+hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
+nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
+VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC
+AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER
+gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
+AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
+oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS
+o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z
+2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX
+OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
+-----END CERTIFICATE-----
+
+Baltimore CyberTrust Root
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
+ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
+ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
+SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
+dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
+uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
+UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
+G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
+XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
+l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
+VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
+cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
+hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
+Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
+RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+Equifax Secure Global eBusiness CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
+bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
+HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
+b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
+PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
+qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
+hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
+BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
+MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
+I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
+NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
+-----END CERTIFICATE-----
+
+Equifax Secure eBusiness CA 1
+=============================
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
+LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
+ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
+IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
+1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
+IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
+MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
+Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
+AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
+lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
+KpYrtWKmpj29f5JZzVoqgrI3eQ==
+-----END CERTIFICATE-----
+
+Equifax Secure eBusiness CA 2
+=============================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE
+ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
+MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
+DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB
+nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn
+2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5
+BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG
+A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx
+JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG
+A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e
+uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB
+Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1
+jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia
+78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm
+V+GRMOrN
+-----END CERTIFICATE-----
+
+AddTrust Low-Value Services Root
+================================
+-----BEGIN CERTIFICATE-----
+MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
+cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
+CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
+ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
+54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
+oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
+Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
+GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
+HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
+HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
+ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
+iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
+eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
+mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
+ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
+-----END CERTIFICATE-----
+
+AddTrust External Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
+VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
+NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
+cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
+Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
+Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
+aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
+2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
+7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
+VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
+VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
+IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
+j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
+e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
+G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+AddTrust Public Services Root
+=============================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
+cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
+BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
+dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
+nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
+d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
+Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
+HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
+A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
+A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
+JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
+GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
+Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
+EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
+-----END CERTIFICATE-----
+
+AddTrust Qualified Certificates Root
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
+cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
+CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
+IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
+64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
+KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
+L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
+wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
+MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
+BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
+azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
+ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
+GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
+dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
+RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
+iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
+b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
+A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
+MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
+MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
+Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
+dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
+A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
+Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
+j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
+rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
+MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
+hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
+Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
+v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
+W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
+tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+RSA Security 2048 v3
+====================
+-----BEGIN CERTIFICATE-----
+MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
+ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
+MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
+BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
+Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
+WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
+KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
+MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
+FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
+v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
+0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
+VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
+nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
+pKnXwiJPZ9d37CAFYd4=
+-----END CERTIFICATE-----
+
+GeoTrust Global CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
+MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
+BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
+8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
+T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
+vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
+zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
+d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
+mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
+XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
+Mw==
+-----END CERTIFICATE-----
+
+GeoTrust Global CA 2
+====================
+-----BEGIN CERTIFICATE-----
+MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
+MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
+NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
+LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
+Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
+HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
+K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
+srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
+ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
+OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
+x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
+H4z1Ir+rzoPz4iIprn2DQKi6bA==
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
+MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
+Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
+JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
+RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
+7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
+8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
+qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
+Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
+Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
+KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
+ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
+XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
+hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
+qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
+oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
+xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
+KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
+DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
+xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
+p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
+P/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA 2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
+MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
+SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
+DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
+j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
+JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
+QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
+WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
+20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
+ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
+SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
+8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
+BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
+4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
+A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
+Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
+pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
+FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
+gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
+X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+UTN-USER First-Network Applications
+===================================
+-----BEGIN CERTIFICATE-----
+MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp
+BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5
+WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T
+YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
+dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB
+cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug
+mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj
+DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu
+Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi
+P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE
+j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j
+cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
+CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y
+IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK
+RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp
+xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq
+DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE
+-----END CERTIFICATE-----
+
+America Online Root Certification Authority 1
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
+A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
+T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
+v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
+DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
+sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
+8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
+o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
+GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
+VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
+3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
+Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
+sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
+-----END CERTIFICATE-----
+
+America Online Root Certification Authority 2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
+QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
+A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
+T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
+fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
+f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
+qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
+RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
+gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
+6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
+FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
+Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
+B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
+aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
+T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
+JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
+zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
+ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
+1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
+GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
+Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
+cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
+-----END CERTIFICATE-----
+
+Visa eCommerce Root
+===================
+-----BEGIN CERTIFICATE-----
+MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
+EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
+QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
+WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
+VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
+bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
+F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
+RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
+TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
+/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
+GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
+CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
+YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
+zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
+YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
+398znM/jra6O1I7mT1GvFpLgXPYHDw==
+-----END CERTIFICATE-----
+
+Certum Root CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
+ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
+Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
+by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
+wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
+kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
+89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
+Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
+NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
+GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
+GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
+0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
+qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+
+Comodo AAA Services root
+========================
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
+MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
+c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
+C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
+i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
+Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
+Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
+Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
+BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
+cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
+LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
+7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
+8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
+12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+Comodo Secure Services root
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
+MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
+Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
+BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
+9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
+rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
+oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
+p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
+FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
+YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
+aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
+4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
+Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
+DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
+pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
+RR3B7Hzs/Sk=
+-----END CERTIFICATE-----
+
+Comodo Trusted Services root
+============================
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
+MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
+bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
+IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
+3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
+/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
+juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
+ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
+DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
+ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
+cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
+uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
+pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
+BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
+R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
+9y5Xt5hwXsjEeLBi
+-----END CERTIFICATE-----
+
+QuoVadis Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
+ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
+MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
+cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
+EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
+J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
+F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
+YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
+AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
+PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
+ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
+MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
+YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
+ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
+Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
+BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
+FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
+tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
+fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
+LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
+gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
+5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
+5nrQNiOKSnQ2+Q==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2
+==================
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
+ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
+XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
+lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
+lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
+lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
+66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
+wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
+D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
+BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
+J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
+DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
+a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
+Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
+UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
+VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
+IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
+WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
+f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
+4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
+VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3
+==================
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
+OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
+DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
+KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
+DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
+BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
+p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
+nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
+MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
+Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
+uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
+BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
+BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
+VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
+ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
+AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
+qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
+hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
+POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
+Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
+8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
+bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
+g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
+vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
+qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+Security Communication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
+8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
+DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
+5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
+DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
+JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
+0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
+mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
+s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
+6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
+FL39vmwLAw==
+-----END CERTIFICATE-----
+
+Sonera Class 1 Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
+U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw
+NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
+IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88
+7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9
+EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl
+0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645
+2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa
+HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT
+iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9
+28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV
+yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR
+vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P
+qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z
+IRlXvVWa
+-----END CERTIFICATE-----
+
+Sonera Class 2 Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
+U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
+NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
+IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
+/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
+dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
+f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
+tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
+nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
+XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
+0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
+cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
+Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
+EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
+llpwrN9M
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA
+=============================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
+ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
+HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
+bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
+vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
+jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
+C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
+vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
+22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
+HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
+dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
+BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
+EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
+MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
+nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
+iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
+
+TDC Internet Root CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
+ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
+NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
+ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
+xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
+znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
+5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
+otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
+AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
+VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
+MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
+AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
+UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
+CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
+gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
+2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
+O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
+Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
+-----END CERTIFICATE-----
+
+TDC OCES Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE
+ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5
+MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH
+nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0
+zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV
+iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde
+dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO
+3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB
+5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k
+ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm
+cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp
+Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
+LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM
+MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
+aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy
+MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647
++RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
+NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4
+A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc
+A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9
+AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1
+AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw==
+-----END CERTIFICATE-----
+
+UTN DATACorp SGC Root CA
+========================
+-----BEGIN CERTIFICATE-----
+MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
+BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
+MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
+HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
+dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
+raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
+wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
+9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
+33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
+DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
+BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
+LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
+DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
+Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
+I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
+EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
+DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
+-----END CERTIFICATE-----
+
+UTN USERFirst Email Root CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0
+BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05
+OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx
+FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
+ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz
+dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx
+B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8
+om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG
+TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl
+yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE
+AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV
+HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
+bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
+AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne
+xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+
+5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV
+NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ
+w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ=
+-----END CERTIFICATE-----
+
+UTN USERFirst Hardware Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
+BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
+OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
+eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
+ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
+wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
+tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
+i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
+Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
+gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
+lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
+UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
+BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
+//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
+XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
+lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
+iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
+nfhmqA==
+-----END CERTIFICATE-----
+
+UTN USERFirst Object Root CA
+============================
+-----BEGIN CERTIFICATE-----
+MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE
+BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
+IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb
+BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz
+NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx
+HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy
+dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR
+loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ
+w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu
+lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7
+RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL
+BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8
+ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly
+c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
+DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
+NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO
+PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE
+qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG
+hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
+-----END CERTIFICATE-----
+
+Camerfirma Chambers of Commerce Root
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
+NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
+cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
+MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
+AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
+xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
+NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
+DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
+d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
+EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
+cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
+AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
+bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
+VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
+aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
+fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
+L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
+UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
+ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
+erfutGWaIZDgqtCYvDi1czyL+Nw=
+-----END CERTIFICATE-----
+
+Camerfirma Global Chambersign Root
+==================================
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
+QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
+ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
+NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
+YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
+MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
+ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
+1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
+by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
+6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
+8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
+BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
+aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
+Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
+aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
+ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
+bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
+PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
+gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
+PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
+IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
+t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+
+NetLock Qualified (Class QA) Root
+=================================
+-----BEGIN CERTIFICATE-----
+MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
+CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
+BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn
+eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0
+bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER
+MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0
+LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0
+dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP
+aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV
+CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e
+8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb
+m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ
+0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM
+0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
+HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2
+YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
+biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p
+a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz
+YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg
+YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg
+ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov
+L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr
+Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0
+aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg
+YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0
+IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3
+DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN
+wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg
+W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc
+R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR
+5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko
+-----END CERTIFICATE-----
+
+NetLock Notary (Class A) Root
+=============================
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
+EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
+dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
+ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
+DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
+EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
+VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
+cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
+D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
+z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
+/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
+tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
+4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
+A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
+Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
+bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
+IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
+LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
+ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
+IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
+IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
+b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
+bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
+Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
+bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
+ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
+ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
+CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
+KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
+8CgHrTwXZoi1/baI
+-----END CERTIFICATE-----
+
+NetLock Business (Class B) Root
+===============================
+-----BEGIN CERTIFICATE-----
+MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
+CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
+BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
+VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
+VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
+bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
+VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
+iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
+o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
+1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
+HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
+RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
+dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
+ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
+c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
+YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
+c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
+Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
+bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
+IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
+YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
+cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
+43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
+stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
+-----END CERTIFICATE-----
+
+NetLock Express (Class C) Root
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
+CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
+BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
+KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
+BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
+dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
+ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
+jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
+W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
+euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
+DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
+RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
+YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
+IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
+aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
+ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
+ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
+dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
+emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
+IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
+UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
+YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
+xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
+gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
+-----END CERTIFICATE-----
+
+XRamp Global CA Root
+====================
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
+BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
+dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
+HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
+U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
+IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
+foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
+zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
+AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
+xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
+oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
+AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
+/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
+nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
+8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+Go Daddy Class 2 CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
+VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
+A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
+RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
+ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
+2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
+qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
+YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
+vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
+BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
+atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
+MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
+PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
+I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
+Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
+vZ8=
+-----END CERTIFICATE-----
+
+Starfield Class 2 CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
+U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
+MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
+A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
+SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
+bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
+JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
+epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
+F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
+MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
+hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
+bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
+afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
+PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
+KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
+QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
+YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
+AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
+Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
+U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
+LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
+cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
+dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
+AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
+3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
+vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
+fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
+fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
+EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
+1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
+lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
+g14=
+-----END CERTIFICATE-----
+
+Taiwan GRCA
+===========
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
+EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
+DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
+dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
+w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
+BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
+1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
+htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
+J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
+Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
+B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
+O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
+lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
+HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
+09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
+Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
+Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
+D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
+DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
+Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
+7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
+CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
+-----END CERTIFICATE-----
+
+Firmaprofesional Root CA
+========================
+-----BEGIN CERTIFICATE-----
+MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
+GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
+Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
+ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
+MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
+OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
+ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
+j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
+lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
+3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
+NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
+KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
+AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
+ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
+u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
+wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
+7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
+VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
+-----END CERTIFICATE-----
+
+Wells Fargo Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV
+BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
+MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl
+bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv
+MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX
+x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3
+E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5
+OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j
+sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj
+YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF
+BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD
+ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv
+m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
+OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
+x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023
+tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
+-----END CERTIFICATE-----
+
+Swisscom Root CA 1
+==================
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
+EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
+dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
+MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
+aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
+IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
+MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
+NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
+AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
+b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
+7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
+cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
+WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
+haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
+MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
+BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
+MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
+jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
+MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
+VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
+vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
+OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
+1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
+nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
+x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
+NY6E0F/6MBr1mmz0DlP5OlvRHA==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
+MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
+9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
+UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
+/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
+oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
+GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
+66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
+hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
+EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
+SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
+8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+DigiCert Global Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
+MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
+TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
+BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
+4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
+7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
+o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
+8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
+BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
+EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
+tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
+UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+DigiCert High Assurance EV Root CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
+KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
+MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
+MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
+Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
+Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
+OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
+MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
+NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
+h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
+JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
+V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
+myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
+mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
+-----END CERTIFICATE-----
+
+Certplus Class 2 Primary CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
+BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
+OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
+dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
+5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
+Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
+YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
+e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
+CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
+YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
+L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
+P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
+TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
+7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
+//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
+l7+ijrRU
+-----END CERTIFICATE-----
+
+DST Root CA X3
+==============
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
+ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
+DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
+cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
+rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
+UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
+xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
+utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
+MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
+dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
+GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
+RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
+fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+DST ACES CA X6
+==============
+-----BEGIN CERTIFICATE-----
+MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
+MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
+MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
+CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
+DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
+pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
+GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
+MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
+Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
+dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
+CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
+5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
+Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
+nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
+vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
+oKfN5XozNmr6mis=
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 1
+==============================================
+-----BEGIN CERTIFICATE-----
+MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
+MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
+acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
+MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
+U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
+TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
+aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
+yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
+Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
+8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
+W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
+BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
+sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
+q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
+B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
+nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
+-----END CERTIFICATE-----
+
+TURKTRUST Certificate Services Provider Root 2
+==============================================
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
+MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
+MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
+dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
+A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
+acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
+LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
+x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
+QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
+5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
+AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
+Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
+Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
+hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
+9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
+UrbnBEI=
+-----END CERTIFICATE-----
+
+SwissSign Platinum CA - G2
+==========================
+-----BEGIN CERTIFICATE-----
+MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT
+BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw
+HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM
+U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu
+669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF
+eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne
+WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo
+j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6
+8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T
+aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy
+domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D
++m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV
+CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv
+zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
+IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1
+Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3
+NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4
+U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8
+KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl
+9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B
+aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs
+OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY
+Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci
+IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
+-----END CERTIFICATE-----
+
+SwissSign Gold CA - G2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
+EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
+MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
+c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
+t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
+jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
+vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
+ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
+AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
+jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
+peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
+7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
+GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
+OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
+5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
+44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
+Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
+Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
+mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
+vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
+KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
+NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
+viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+
+SwissSign Silver CA - G2
+========================
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
+BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
+DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
+aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
+N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
+6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
+MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
+qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
+FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
+ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
+celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
+CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
+tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
+4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
+kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
+3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
+/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
+DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
+e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
+WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
+DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
+DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
+cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
+b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
+nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
+RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
+tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
+hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
+Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
+NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
+Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
+1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+
+thawte Primary Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
+MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
+SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
+KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
+FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
+oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
+1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
+q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
+aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
+afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
+AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
+uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
+jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
+z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G5
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
+dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
+j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
+Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
+fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
+BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
+SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
+KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
+Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
+ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+SecureTrust CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
+dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
+BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
+OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
+DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
+GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
+01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
+ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
+SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
+mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
+nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+Secure Global CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
+bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
+MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
+Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
+YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
+bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
+8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
+HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
+0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
+oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
+MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
+CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
+3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+COMODO Certification Authority
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
+MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
+T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
+xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
+4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
+1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
+rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
+b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
+AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
+OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
+IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
+-----END CERTIFICATE-----
+
+Network Solutions Certificate Authority
+=======================================
+-----BEGIN CERTIFICATE-----
+MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
+EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
+IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
+MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
+jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
+aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
+crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
+/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
+AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
+bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
+A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
+4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
+GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
+wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
+ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
+-----END CERTIFICATE-----
+
+WellsSecure Public Root Certificate Authority
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
+F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
+NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
+MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
+bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
+VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
+iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
+i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
+bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
+K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
+AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
+cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
+lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
+i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
+GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
+K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
+bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
+qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
+E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
+tylv2G0xffX8oRAHh84vWdw+WNs=
+-----END CERTIFICATE-----
+
+COMODO ECC Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
+GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
+4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
+wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
+FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
+U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+IGC/A
+=====
+-----BEGIN CERTIFICATE-----
+MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
+VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
+Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
+MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
+EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
+STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
+TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
+So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
+HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
+frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
+tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
+egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
+iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
+q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
+MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
+Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
+lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
+0mBWWg==
+-----END CERTIFICATE-----
+
+Security Communication EV RootCA1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
+BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
+Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
+/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
+WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
+ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
+bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
+9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
+SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
+iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
+Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
+mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
+T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GA CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
+BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
+A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
+bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
+VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
+IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
+IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
+Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
+Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
+d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
+/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
+LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
+MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
+okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
+-----END CERTIFICATE-----
+
+S-TRUST Authentication and Encryption Root CA 2005 PN
+=====================================================
+-----BEGIN CERTIFICATE-----
+MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
+BhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcpMRIwEAYDVQQHEwlTdHV0dGdh
+cnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVT
+LVRSVVNUIEF1dGhlbnRpY2F0aW9uIGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0w
+NTA2MjIwMDAwMDBaFw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFk
+ZW4tV3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMgRGV1dHNj
+aGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJVU1QgQXV0aGVudGljYXRp
+b24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob
+4QSwI7+Vio5bG0F/WsPoTUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXL
+g3KSwlOyggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1Xgqf
+eN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteFhy+S8dF2g08LOlk3
+KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm7QIDAQABo4GSMIGPMBIGA1UdEwEB
+/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJv
+bmxpbmUxLTIwNDgtNTAdBgNVHQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAU
+D8oeXHngovMpttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD
+pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFoLtU96G7m1R08
+P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersFiXOMy6ZNwPv2AtawB6MDwidA
+nwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0yh9WUUpY6RsZxlj33mA6ykaqP2vROJAA5Veit
+F7nTNCtKqUDMFypVZUF0Qn71wK/Ik63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8b
+Hz2eBIPdltkdOpQ=
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
+BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
+EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
+MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
+dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
+GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
+d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
+oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
+QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
+PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
+MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
+IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
+VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
+LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
+dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
+AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
+4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
+AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
+egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
+Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
+PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
+c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
+cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
+IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
+WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
+MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
+MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
+Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
+HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
+nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
+aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
+86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
+yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
+S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
+-----END CERTIFICATE-----
+
+Certigna
+========
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
+EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
+MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
+Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
+XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
+GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
+ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
+DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
+Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
+tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
+BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
+SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
+PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
+1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
+======================================
+-----BEGIN CERTIFICATE-----
+MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
+AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
+LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
+HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
+U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
+IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
+yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
+2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
+4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
+2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
+8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
+HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
+Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
+5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
+czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
+ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
+BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
+cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
+AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
+EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
+/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
+MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
+3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
+eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
+/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
+RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
+Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
+-----END CERTIFICATE-----
+
+TC TrustCenter Class 2 CA II
+============================
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
+IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
+MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
+c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
+AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
+IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
+xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
+Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
+SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
+7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
+Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
+cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
+SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
+dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
+KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
+TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
+JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
+vQ==
+-----END CERTIFICATE-----
+
+TC TrustCenter Class 3 CA II
+============================
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
+IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
+MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
+c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
+AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
+yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
+6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
+uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
+2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
+7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
+Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
+cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
+SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
+O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
+yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
+IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
+092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
+5A==
+-----END CERTIFICATE-----
+
+TC TrustCenter Universal CA I
+=============================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
+IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
+MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
+VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
+JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
+qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
+xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
+ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
+gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
+BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
+1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
+vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
+ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
+ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
+7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
+-----END CERTIFICATE-----
+
+Deutsche Telekom Root CA 2
+==========================
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
+RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
+A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
+MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
+A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
+b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
+bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
+KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
+AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
+Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
+jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
+HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
+E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
+zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
+rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
+dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
+Cm26OWMohpLzGITY+9HPBVZkVw==
+-----END CERTIFICATE-----
+
+ComSign CA
+==========
+-----BEGIN CERTIFICATE-----
+MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0MRMwEQYDVQQD
+EwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTMy
+MThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMTCkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNp
+Z24xCzAJBgNVBAYTAklMMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49q
+ROR+WCf4C9DklBKK8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTy
+P2Q298CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb2CEJKHxN
+GGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxCejVb7Us6eva1jsz/D3zk
+YDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7KpiXd3DTKaCQeQzC6zJMw9kglcq/QytNuEM
+rkvF7zuZ2SOzW120V+x0cAwqTwIDAQABo4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAy
+oDCgLoYsaHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0P
+AQH/BAQDAgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRLAZs+
+VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWdfoPPbrxHbvUanlR2
+QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0McXS6hMTXcpuEfDhOZAYnKuGntewI
+mbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb
+/627HOkthIDYIb6FUtnUdLlphbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VG
+zT2ouvDzuFYkRes3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U
+AGegcQCCSA==
+-----END CERTIFICATE-----
+
+ComSign Secured CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
+AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
+NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
+QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
+49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
+7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
+kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
+9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
+AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
+U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
+j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
+AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
+BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
+FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
+51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
+OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
+-----END CERTIFICATE-----
+
+Cybertrust Global Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
+ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
+MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
+ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
+0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
+AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
+89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
+8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
+MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
+A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
+lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
+5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
+hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
+X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+ePKI Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
+EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
+MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
+MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
+IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
+lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
+qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
+12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
+WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
+lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
+vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
+Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
+MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
+1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
+KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
+xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
+NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
+GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
+xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
+gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
+sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
+BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
+=============================================================================================================================
+-----BEGIN CERTIFICATE-----
+MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
+DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
+aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
+b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
+BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
+S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
+MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
+IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
+n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
+IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
+dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
+cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
+Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
+xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
+6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
+hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
+BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
+N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
+y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
+LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
+dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
+-----END CERTIFICATE-----
+
+Buypass Class 2 CA 1
+====================
+-----BEGIN CERTIFICATE-----
+MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
+MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
+c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
+cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
+0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
+0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
+uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
+1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
+7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
+fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
+wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
+-----END CERTIFICATE-----
+
+Buypass Class 3 CA 1
+====================
+-----BEGIN CERTIFICATE-----
+MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
+MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
+c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
+ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
+n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
+AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
+1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
+AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
+pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
+EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
+htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
+el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
+-----END CERTIFICATE-----
+
+EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
+==========================================================================
+-----BEGIN CERTIFICATE-----
+MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
+QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
+Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
+ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
+IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
+X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
+gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
+eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
+TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
+Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
+uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
+qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
+ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
+Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
+Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
+FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
+zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
+XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
+bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
+RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
+1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
+2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
+Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
+AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
+-----END CERTIFICATE-----
+
+certSIGN ROOT CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
+VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
+Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
+CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
+JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
+rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
+ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
+0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
+AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
+Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
+AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
+SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
+x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
+vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
+TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+CNNIC ROOT
+==========
+-----BEGIN CERTIFICATE-----
+MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
+ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
+OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
+o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
+VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
+VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
+czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
+y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
+wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
+lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
+Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
+O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
+BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
+G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
+mxE=
+-----END CERTIFICATE-----
+
+ApplicationCA - Japanese Government
+===================================
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
+SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
+MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
+cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
+fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
+wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
+jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
+nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
+WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
+BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
+vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
+o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
+/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
+io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
+dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
+rosot4LKGAfmt1t06SAZf7IbiVQ=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G3
+=============================================
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
+NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
+YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
+LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
+K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
+c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
+IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
+dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
+2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
+cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
+Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
+t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
+VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
+IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
+Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
+MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
+b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
+IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
+LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
+8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
+G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
+rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
+ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
+VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
+A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
+P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
+7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
+vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
+KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
+A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
+8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
+er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
+OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
+b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
+BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
+KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
+EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
+ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
+npaqBA+K
+-----END CERTIFICATE-----
+
+VeriSign Universal Root Certification Authority
+===============================================
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
+1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
+MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
+9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
+AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
+tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
+CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
+a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
+Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
+Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
+P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
+wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
+mJO37M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G4
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
+VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
+b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
+ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
+b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
+Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
+rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
+HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
+Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
+A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
+AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+NetLock Arany (Class Gold) F?tanstvny
+============================================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
+A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
+dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
+cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
+MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
+ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
+c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
+0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
+/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
+H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
+fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
+neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
+qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
+YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
+NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
+dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G2
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
+5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
+vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
+CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
+e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
+OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
+CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
+48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
+trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
+qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
+AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
+ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
+A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
+f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
+kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
+CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
+URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
+CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
+oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
+IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
+66+KAQ==
+-----END CERTIFICATE-----
+
+CA Disig
+========
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
+QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
+MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
+bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
+GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
+Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
+hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
+ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
+gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
+AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
+aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
+ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
+BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
+WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
+mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
+CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
+ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
+4Z7CRneC9VkGjCFMhwnN5ag=
+-----END CERTIFICATE-----
+
+Juur-SK
+=======
+-----BEGIN CERTIFICATE-----
+MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
+c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
+DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
+SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
+aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
+TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
++Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
+UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
+Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
+MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
+HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
+AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
+cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
+AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
+cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
+FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
+A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
+ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
+abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
+IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
+Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
+yyqcjg==
+-----END CERTIFICATE-----
+
+Hongkong Post Root CA 1
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
+DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
+NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
+IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
+ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
+auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
+qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
+V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
+HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
+h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
+l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
+IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
+T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
+c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
+-----END CERTIFICATE-----
+
+SecureSign RootCA11
+===================
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
+SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
+b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
+KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
+cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
+TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
+wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
+g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
+O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
+bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
+t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
+OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
+bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
+Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
+y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
+lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+ACEDICOM Root
+=============
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
+T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
+MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
+A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
+WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
+YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
+MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
+m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
+HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
+xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
+3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
+2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
+TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
+4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
+9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
+bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
+aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
+eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
+zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
+ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
+KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
+nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
+I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
+MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
+tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
+-----END CERTIFICATE-----
+
+Verisign Class 1 Public Primary Certification Authority
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
+XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAx
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0fzGVuDLDQ
+VoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHiTkVWaR94AoDa3EeRKbs2
+yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFgVKTk8d6Pa
+XCUDfGD67gmZPCcQcMgMCeazh88K4hiWNWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n
+0a3hUKw8fGJLj7qE1xIVGx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZ
+RjXZ+Hxb
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
+FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
+XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
+f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
+hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
+CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
+bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
+D/xwzoiQ
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
+MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
+c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
+BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
+U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
+fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
+0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
+pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
+1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
+AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
+QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
+FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
+lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
+I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
+yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
+LXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
+===================================================
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
+ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
+MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
+cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
+aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
+8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
+jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
+JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
+9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
+SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
+F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
+D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
+Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
+fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R3
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
+iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
+0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
+rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
+OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
+xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
+lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
+EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
+bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
+YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
+kpeDMdmztcpHWD9f
+-----END CERTIFICATE-----
+
+TC TrustCenter Universal CA III
+===============================
+-----BEGIN CERTIFICATE-----
+MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC
+REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
+IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe
+Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU
+QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex
+KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt
+QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO
+juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut
+CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1
+M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G
+A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA
+g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+
+KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK
+BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
+CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq
+woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
+-----END CERTIFICATE-----
+
+Autoridad de Certificacion Firmaprofesional CIF A62634068
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
+BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
+MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
+QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
+NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
+Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
+B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
+7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
+ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
+plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
+MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
+LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
+bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
+vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
+DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
+bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
+ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
+51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
+R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
+T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
+Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
+osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
+crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
+saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
+KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
+6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+Izenpe.com
+==========
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
+EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
+MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
+QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
+03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
+ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
+PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
+OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
+F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
+0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
+leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
+AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
+SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
+NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
+MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
+Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
+kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
+hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
+g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
+aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
+nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
+ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
+Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
+WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
+-----END CERTIFICATE-----
+
+Chambers of Commerce Root - 2008
+================================
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
+Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
+ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
+EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
+cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
+XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
+h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
+ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
+NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
+D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
+lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
+0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
+EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
+G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
+BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
+bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
+bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
+CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
+AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
+wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
+3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
+RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
+M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
+YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
+9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
+zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
+nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
+-----END CERTIFICATE-----
+
+Global Chambersign Root - 2008
+==============================
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
+NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
+Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
+QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
+VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
+XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
+ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
+/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
+TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
+H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
+Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
+HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
+AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
+BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
+BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
+aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
+aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
+1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
+dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
+/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
+ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
+dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
+9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
+foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
+qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
+P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
+c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+Go Daddy Root Certificate Authority - G2
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
+MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
+A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
+9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
+fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
+NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
+BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
+vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
+5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
+N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+Starfield Root Certificate Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
+DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
+VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
+dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
+W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
+bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
+N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
+ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
+JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
+TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
+4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
+F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
+c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+Starfield Services Root Certificate Authority - G2
+==================================================
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
+IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
+dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
+h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
+hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
+LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
+rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
+SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
+E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
+xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
+YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
+-----END CERTIFICATE-----
+
+AffirmTrust Commercial
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
+MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
+DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
+C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
+BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
+MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
+HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
+hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
+qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
+0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
+sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+AffirmTrust Networking
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
+MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
+Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
+dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
+/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
+h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
+HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
+UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
+12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
+WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
+/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+AffirmTrust Premium
+===================
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
+OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
+dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
+BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
+5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
+GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
+p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
+S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
+6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
+/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
+MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
+6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
+L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
+BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
+IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
+g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
+zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+AffirmTrust Premium ECC
+=======================
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
+BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
+MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
+cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
+N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
+BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
+BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
+57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
+eQ==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
+ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
+MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
+ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
+l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
+J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
+fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
+cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
+jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
+mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
+Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+Certinomis - Autorit Racine
+=============================
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
+LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
+A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
+JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
+wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
+Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
+2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
+jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
+c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
+lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
+xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
+530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
+4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
+KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
+WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
+R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
+nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
+CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
+JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
+qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
+WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
+wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
+vgt2Fl43N+bYdJeimUV5
+-----END CERTIFICATE-----
+
+Root CA Generalitat Valenciana
+==============================
+-----BEGIN CERTIFICATE-----
+MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
+ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
+IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
+WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
+CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
+F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
+ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
+D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
+JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
+AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
+dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
+ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
+AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
+YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
+AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
+aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
+AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
+YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
+AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
+OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
+dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
+BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
+A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
+b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
+TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
+Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
+NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
+iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
++GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
+-----END CERTIFICATE-----
+
+A-Trust-nQual-03
+================
+-----BEGIN CERTIFICATE-----
+MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
+Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
+dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
+RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
+ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
+c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
+zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
+yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
+SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
+iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
+cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
+eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
+ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
+sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
+JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
+mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
+ahq97BvIxYSazQ==
+-----END CERTIFICATE-----
+
+TWCA Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
+VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
+EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
+IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
+QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
+oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
+4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
+y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
+9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
+mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
+QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
+T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
+Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+Security Communication RootCA2
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
+SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
+aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
+3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
+spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
+EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
+QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
+u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
+3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
+tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
+mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+EC-ACC
+======
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
+BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
+ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
+VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
+CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
+BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
+MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
+SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
+Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
+cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
+w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
+ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
+HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
+E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
+0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
+VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
+Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
+dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
+lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
+Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
+l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
+E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
+5EI=
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2011
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
+O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
+aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
+AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
+IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
+1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
+71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
+8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
+3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
+MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
+MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
+b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
+XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
+/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
+7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+Actalis Authentication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
+BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
+AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
+MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
+IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
+wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
+by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
+zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
+YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
+oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
+EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
+hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
+EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
+jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
+iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
+WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
+JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
+K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
+Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
+4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
+2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
+lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
+OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
+vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+Trustis FPS Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
+EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
+IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
+BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
+RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
+H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
+cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
+o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
+AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
+BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
+GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
+yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
+8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
+l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
+iB6XzCGcKQENZetX2fNXlrtIzYE=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority
+================================
+-----BEGIN CERTIFICATE-----
+MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
+ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
+NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
+LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
+U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
+o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
+Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
+eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
+2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
+6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
+osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
+untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
+UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
+Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
+dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
+c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
+bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
+aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
+L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
+cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
+fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
+N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
+Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
+tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
+e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
+2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
+HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
+JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
+D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
+-----END CERTIFICATE-----
+
+StartCom Certification Authority G2
+===================================
+-----BEGIN CERTIFICATE-----
+MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
+U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
+ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
+o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
+4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
+Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
+Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
+O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
+vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
+nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
+FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
+z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
+KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
+2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
+J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
+/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
+nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
+blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
+l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
+7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
+obp573PYtlNXLfbQ4ddI
+-----END CERTIFICATE-----
+
+Buypass Class 2 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
+DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
+g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
+9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
+/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
+CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
+awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
+zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
+Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
+Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
+M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
+osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
+aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
+DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
+LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
+oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
+wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
+CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
+rJgWVqA=
+-----END CERTIFICATE-----
+
+Buypass Class 3 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
+DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
+sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
+5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
+7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
+ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
+2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
+/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
+RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
+Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
+j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
+uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
+Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
+ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
+KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
+6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
+UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
+eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
+Cp/HuZc=
+-----END CERTIFICATE-----
+
+TRKTRUST Elektronik Sertifika Hizmet Sa?lay?c?s?
+======================================================
+-----BEGIN CERTIFICATE-----
+MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
+MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
+DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
+a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
+YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
+KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
+KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
+rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
+AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
+Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
+aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
+Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
+BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
+poRq0Tl9
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 3
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
+MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
+9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
+NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
+iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
+0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
+AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
+fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
+ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
+P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
+e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
+-----END CERTIFICATE-----
+
+EE Certification Centre Root CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
+dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
+MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
+UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
+ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
+TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
+rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
+93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
+P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
+MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
+BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
+xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
+lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
+3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
+dcGWxZ0=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/app/Library/Pay/Alipay/sdk/alipay_core.function.php b/app/Library/Pay/Alipay/sdk/alipay_core.function.php
new file mode 100644
index 000000000..b80d9ae12
--- /dev/null
+++ b/app/Library/Pay/Alipay/sdk/alipay_core.function.php
@@ -0,0 +1,4 @@
+ $spcb4459) { $spe3a1c2 .= $sp7b7024 . '=' . $spcb4459 . '&'; } $spe3a1c2 = substr($spe3a1c2, 0, strlen($spe3a1c2) - 1); if (get_magic_quotes_gpc()) { $spe3a1c2 = stripslashes($spe3a1c2); } return $spe3a1c2; } function createLinkStringUrlEncode($sp012ade) { $spe3a1c2 = ''; foreach ($sp012ade as $sp7b7024 => $spcb4459) { $spe3a1c2 .= $sp7b7024 . '=' . urlencode($spcb4459) . '&'; } $spe3a1c2 = substr($spe3a1c2, 0, strlen($spe3a1c2) - 1); if (get_magic_quotes_gpc()) { $spe3a1c2 = stripslashes($spe3a1c2); } return $spe3a1c2; } function paraFilter($sp012ade) { $sp126299 = array(); foreach ($sp012ade as $sp7b7024 => $spcb4459) { if ($sp7b7024 == 'sign' || $sp7b7024 == 'sign_type' || $spcb4459 == '') { continue; } else { $sp126299[$sp7b7024] = $sp012ade[$sp7b7024]; } } return $sp126299; } function argSort($sp012ade) { ksort($sp012ade); reset($sp012ade); return $sp012ade; } function logResult($sp8dee18 = '') { $sp82a428 = fopen('log.txt', 'a'); flock($sp82a428, LOCK_EX); fwrite($sp82a428, '执行日期:' . strftime('%Y%m%d%H%M%S', time()) . '
+' . $sp8dee18 . '
+'); flock($sp82a428, LOCK_UN); fclose($sp82a428); } function getHttpResponsePOST($sp3ae187, $spdb994b, $sp012ade, $sp8cabb2 = '') { if (trim($sp8cabb2) != '') { $sp3ae187 = $sp3ae187 . '_input_charset=' . $sp8cabb2; } $spfe4f44 = curl_init($sp3ae187); curl_setopt($spfe4f44, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($spfe4f44, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($spfe4f44, CURLOPT_CAINFO, $spdb994b); curl_setopt($spfe4f44, CURLOPT_HEADER, 0); curl_setopt($spfe4f44, CURLOPT_RETURNTRANSFER, 1); curl_setopt($spfe4f44, CURLOPT_POST, true); curl_setopt($spfe4f44, CURLOPT_POSTFIELDS, $sp012ade); $sp15bb7f = curl_exec($spfe4f44); curl_close($spfe4f44); return $sp15bb7f; } function getHttpResponseGET($sp3ae187, $spb7d1b9) { $spfe4f44 = curl_init($sp3ae187); curl_setopt($spfe4f44, CURLOPT_HEADER, 0); curl_setopt($spfe4f44, CURLOPT_RETURNTRANSFER, 1); curl_setopt($spfe4f44, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($spfe4f44, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($spfe4f44, CURLOPT_CAINFO, $spb7d1b9); $sp15bb7f = curl_exec($spfe4f44); curl_close($spfe4f44); return $sp15bb7f; } function charsetEncode($spd72f9e, $sp5a20f4, $spc19241) { $sp5e4442 = ''; if (!isset($sp5a20f4)) { $sp5a20f4 = $spc19241; } if ($spc19241 == $sp5a20f4 || $spd72f9e == null) { $sp5e4442 = $spd72f9e; } elseif (function_exists('mb_convert_encoding')) { $sp5e4442 = mb_convert_encoding($spd72f9e, $sp5a20f4, $spc19241); } elseif (function_exists('iconv')) { $sp5e4442 = iconv($spc19241, $sp5a20f4, $spd72f9e); } else { die('sorry, you have no libs support for charset change.'); } return $sp5e4442; } function charsetDecode($spd72f9e, $spc19241, $sp5a20f4) { if (!isset($spc19241)) { $sp5a20f4 = $spc19241; } if ($spc19241 == $sp5a20f4 || $spd72f9e == null) { $sp5e4442 = $spd72f9e; } elseif (function_exists('mb_convert_encoding')) { $sp5e4442 = mb_convert_encoding($spd72f9e, $sp5a20f4, $spc19241); } elseif (function_exists('iconv')) { $sp5e4442 = iconv($spc19241, $sp5a20f4, $spd72f9e); } else { die('sorry, you have no libs support for charset changes.'); } return $sp5e4442; } function md5Sign($spf28067, $sp7b7024) { $spf28067 = $spf28067 . $sp7b7024; return md5($spf28067); } function md5Verify($spf28067, $sp75e4cc, $sp7b7024) { $spf28067 = $spf28067 . $sp7b7024; $sp072f3e = md5($spf28067); if ($sp072f3e == $sp75e4cc) { return true; } else { return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Alipay/sdk/alipay_notify.class.php b/app/Library/Pay/Alipay/sdk/alipay_notify.class.php
new file mode 100644
index 000000000..8d06c8508
--- /dev/null
+++ b/app/Library/Pay/Alipay/sdk/alipay_notify.class.php
@@ -0,0 +1,2 @@
+alipay_config = $spcdbaf5; } function AlipayNotify($spcdbaf5) { $this->__construct($spcdbaf5); } function verifyNotify() { if (empty($_POST)) { return false; } else { $sp2f21fb = $this->getSignVeryfy($_POST, $_POST['sign']); $sp4598be = 'false'; if (!empty($_POST['notify_id'])) { $sp4598be = $this->getResponse($_POST['notify_id']); } if (preg_match('/true$/i', $sp4598be) && $sp2f21fb) { return true; } else { return false; } } } function verifyReturn() { if (empty($_GET)) { return false; } else { $sp2f21fb = $this->getSignVeryfy($_GET, $_GET['sign']); $sp4598be = 'false'; if (!empty($_GET['notify_id'])) { $sp4598be = $this->getResponse($_GET['notify_id']); } if (preg_match('/true$/i', $sp4598be) && $sp2f21fb) { return true; } else { return false; } } } function getSignVeryfy($spa6f8bd, $sp75e4cc) { $sp126299 = paraFilter($spa6f8bd); $sp7775da = argSort($sp126299); $spf28067 = createLinkString($sp7775da); switch (strtoupper(trim($this->alipay_config['sign_type']))) { case 'MD5': $sp4953fd = md5Verify($spf28067, $sp75e4cc, $this->alipay_config['key']); break; default: $sp4953fd = false; } return $sp4953fd; } function getResponse($spe34c98) { $spef6a96 = strtolower(trim($this->alipay_config['transport'])); $sp982396 = trim($this->alipay_config['partner']); if ($spef6a96 == 'https') { $sp0c2923 = $this->https_verify_url; } else { $sp0c2923 = $this->http_verify_url; } $sp0c2923 = $sp0c2923 . 'partner=' . $sp982396 . '¬ify_id=' . $spe34c98; $sp4598be = getHttpResponseGET($sp0c2923, $this->alipay_config['cacert']); return $sp4598be; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Alipay/sdk/alipay_submit.class.php b/app/Library/Pay/Alipay/sdk/alipay_submit.class.php
new file mode 100644
index 000000000..17ed1042d
--- /dev/null
+++ b/app/Library/Pay/Alipay/sdk/alipay_submit.class.php
@@ -0,0 +1,2 @@
+alipay_config = $spcdbaf5; } function AlipaySubmit($spcdbaf5) { $this->__construct($spcdbaf5); } function buildRequestMysign($sp7775da) { $spf28067 = createLinkString($sp7775da); switch (strtoupper(trim($this->alipay_config['sign_type']))) { case 'MD5': $sp036b38 = md5Sign($spf28067, $this->alipay_config['key']); break; default: $sp036b38 = ''; } return $sp036b38; } function buildRequestPara($spa6f8bd) { $sp126299 = paraFilter($spa6f8bd); $sp7775da = argSort($sp126299); $sp036b38 = $this->buildRequestMysign($sp7775da); $sp7775da['sign'] = $sp036b38; $sp7775da['sign_type'] = strtoupper(trim($this->alipay_config['sign_type'])); return $sp7775da; } function buildRequestParaToString($spa6f8bd) { $sp012ade = $this->buildRequestPara($spa6f8bd); $sp66660e = createLinkStringUrlEncode($sp012ade); return $sp66660e; } function buildRequestForm($spa6f8bd, $sp888af6, $spbdc5cc) { $sp012ade = $this->buildRequestPara($spa6f8bd); $sp7461d6 = ''; $sp7461d6 = $sp7461d6 . ''; return $sp7461d6; } function query_timestamp() { $sp3ae187 = $this->alipay_gateway_new . 'service=query_timestamp&partner=' . trim(strtolower($this->alipay_config['partner'])) . '&_input_charset=' . trim(strtolower($this->alipay_config['input_charset'])); $sp7bba7e = new DOMDocument(); $sp7bba7e->load($sp3ae187); $sp7bf1e4 = $sp7bba7e->getElementsByTagName('encrypt_key'); $spa8489e = $sp7bf1e4->item(0)->nodeValue; return $spa8489e; } }
\ No newline at end of file
diff --git a/app/Library/Pay/ApiInterface.php b/app/Library/Pay/ApiInterface.php
new file mode 100644
index 000000000..782b6a8db
--- /dev/null
+++ b/app/Library/Pay/ApiInterface.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $spd08fa9 = CurlRequest::get('https://api.blockchain.info/tobtc?currency=CNY&value=' . sprintf('%.2f', $sp6956b3 / 100)); if (!$spd08fa9) { Log::error('Pay.BTC.goPay, get price error:' . @$spd08fa9); throw new \Exception('获取BTC价格失败,请联系客服'); } $sp0f0547 = CurlRequest::get('https://api.blockchain.info/v2/receive?xpub=' . $spc27de0['xpub'] . '&callback=' . urlencode($this->url_notify . '?secret=' . $spc27de0['secret']) . '&key=' . $spc27de0['key']); $sp2a7a4a = @json_decode($sp0f0547, true); if (!$sp2a7a4a || !isset($sp2a7a4a['address'])) { if ($sp2a7a4a['description'] === 'Gap between last used address and next address too large. This might make funds inaccessible.') { throw new \Exception('钱包地址到达限制, 请等待之前的用户完成付款'); } Log::error('Pay.BTC.goPay, get address error:' . @$sp0f0547); throw new \Exception('获取BTC地址失败,请联系客服'); } $sp9c791f = 'bitcoin:' . $sp2a7a4a['address'] . '?amount=' . $spd08fa9; if (\App\Order::wherePayTradeNo($sp9c791f)->exists()) { throw new \Exception('支付失败, 当前钱包地址重复'); } \App\Order::whereOrderNo($spba04f6)->update(array('pay_trade_no' => $sp9c791f)); header('location: /qrcode/pay/' . $spba04f6 . '/btc?url=' . urlencode(json_encode(array('address' => $sp2a7a4a['address'], 'amount' => $spd08fa9)))); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { if (@$_GET['secret'] !== $spc27de0['secret']) { echo 'error'; return false; } if (isset($_GET['confirmations'])) { $spac227e = $_GET['address']; $sp9c791f = 'bitcoin:' . $spac227e . '?amount=' . rtrim(rtrim(sprintf('%.8f', $_GET['value'] / 100000000.0), '0'), '.'); $sp7dcca7 = \App\Order::wherePayTradeNo($sp9c791f)->first(); if (!$sp7dcca7) { echo 'error'; Log::error('Pay.BTC.verify, cannot find order:' . json_encode(array('url' => $sp9c791f, 'params' => $_GET))); return false; } $spefaf7d = $sp9c791f; $sp4294a3($sp7dcca7->order_no, $sp7dcca7->paid, $spefaf7d); } echo '*ok*'; return true; } else { return false; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/CodePay/Api.php b/app/Library/Pay/CodePay/Api.php
new file mode 100644
index 000000000..6f54376ac
--- /dev/null
+++ b/app/Library/Pay/CodePay/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); $sp1341ed = $spc27de0['id']; $spdc28b0 = $spc27de0['key']; switch ($spc27de0['payway']) { case 'alipay': $spdc3fe5 = 1; break; case 'qq': $spdc3fe5 = 2; break; case 'weixin': $spdc3fe5 = 3; break; default: throw new \Exception('支付方式填写错误, alipay/qq/weixin'); } $spcb019a = array('id' => $sp1341ed, 'pay_id' => $spba04f6, 'type' => $spdc3fe5, 'price' => $sp9b2bb6, 'param' => '', 'notify_url' => $this->url_notify, 'return_url' => $this->url_return); ksort($spcb019a); $sp75e4cc = ''; $spbf6a13 = ''; foreach ($spcb019a as $sp7b7024 => $spcb4459) { if ($spcb4459 == '' || $sp7b7024 == 'sign') { continue; } if ($sp75e4cc != '') { $sp75e4cc .= '&'; $spbf6a13 .= '&'; } $sp75e4cc .= "{$sp7b7024}={$spcb4459}"; $spbf6a13 .= "{$sp7b7024}=" . urlencode($spcb4459); } $spe440a8 = $spbf6a13 . '&sign=' . md5($sp75e4cc . $spdc28b0); var_dump('加载中'); header('Location: http://api2.fateqq.com:52888/creat_order/?' . $spe440a8); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $sp1341ed = $spc27de0['id']; $spdc28b0 = $spc27de0['key']; if (empty($_POST)) { $_POST = $_GET; } ksort($_POST); reset($_POST); $sp75e4cc = ''; foreach ($_POST as $sp7b7024 => $spcb4459) { if ($spcb4459 == '' || $sp7b7024 == 'sign') { continue; } if ($sp75e4cc) { $sp75e4cc .= '&'; } $sp75e4cc .= "{$sp7b7024}={$spcb4459}"; } if (!isset($_POST['pay_no']) || md5($sp75e4cc . $spdc28b0) != $_POST['sign']) { if ($spb2acff) { echo 'fail'; } return false; } else { if (!isset($_POST['pay_id'])) { Log::error('CodePay.verify ERROR: there is no pay_id in $_POST', array('$_POST' => json_encode($_POST))); if ($spb2acff) { echo 'fail'; } return false; } $spba04f6 = $_POST['pay_id']; $sp36f78e = (int) round($_POST['price'] * 100); $spa24b71 = $_POST['pay_no']; $sp4294a3($spba04f6, $sp36f78e, $spa24b71); if ($spb2acff) { echo 'success'; } return true; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/CoinPayments/Api.php b/app/Library/Pay/CoinPayments/Api.php
new file mode 100644
index 000000000..53a29f353
--- /dev/null
+++ b/app/Library/Pay/CoinPayments/Api.php
@@ -0,0 +1,25 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; $this->pay_id = $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); if (!isset($spc27de0['merchant_id'])) { throw new \Exception('请填写 merchant_id (商家ID)'); } if (!isset($spc27de0['ipn_secret'])) { throw new \Exception('请填写 ipn_secret (IPN密钥)'); } die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if (!$spb2acff) { return false; } function errorAndDie($spfd84bb) { Log::error('Pay.CoinPayments.verify error: ' . $spfd84bb); die('IPN Error: ' . $spfd84bb); } if (!isset($_POST['ipn_mode']) || $_POST['ipn_mode'] != 'hmac') { errorAndDie('IPN Mode is not HMAC'); } if (!isset($_SERVER['HTTP_HMAC']) || empty($_SERVER['HTTP_HMAC'])) { errorAndDie('No HMAC signature sent.'); } $spd5cc4d = file_get_contents('php://input'); if ($spd5cc4d === FALSE || empty($spd5cc4d)) { errorAndDie('Error reading POST data'); } if (!isset($_POST['merchant']) || $_POST['merchant'] != trim($spc27de0['merchant_id'])) { errorAndDie('No or incorrect Merchant ID passed'); } $sp2d2369 = hash_hmac('sha512', $spd5cc4d, trim($spc27de0['ipn_secret'])); if (!hash_equals($sp2d2369, $_SERVER['HTTP_HMAC'])) { errorAndDie('HMAC signature does not match'); } $sp29d79c = floatval($_POST['amount1']); $spc13fdd = floatval($_POST['amount2']); $spbe80af = $_POST['currency1']; $sp1e772c = $_POST['currency2']; $spc3ee59 = intval($_POST['status']); $sp8953e9 = $_POST['status_text']; $spd56469 = $_POST['item_number']; $sp36f78e = (int) round($sp29d79c * 100); $spaa9795 = $_POST['txn_id']; if ($spbe80af !== 'CNY') { errorAndDie('Pay.CoinPayments.verify error, order_no:' . $spd56469 . ', Original currency(CNY) mismatch, current(' . $spbe80af . ')!'); } if ($spc3ee59 >= 100 || $spc3ee59 == 2) { $sp4294a3($spd56469, $sp36f78e, $spaa9795); } else { if ($spc3ee59 < 0) { Log::debug('Pay.CoinPayments.verify info: payment error, this is usually final but payments will sometimes be reopened if there was no exchange rate conversion or with seller consent', array('$_POST' => $_POST)); } else { Log::debug('Pay.CoinPayments.verify info: payment is pending, you can optionally add a note to the order page', array('$_POST' => $_POST)); } } die('IPN OK'); } }
\ No newline at end of file
diff --git a/app/Library/Pay/Demo/Api.php b/app/Library/Pay/Demo/Api.php
new file mode 100644
index 000000000..340574ce3
--- /dev/null
+++ b/app/Library/Pay/Demo/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { sleep(5); header('Location:' . $this->url_return . '/' . $spba04f6); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { } else { $spd56469 = @$spc27de0['out_trade_no']; if (strlen($spd56469) < 5) { throw new \Exception('交易单号未传入'); } $spefaf7d = date('YmdHis'); $sp4294a3($spd56469, \App\Order::whereOrderNo($spd56469)->first()->paid, $spefaf7d); return true; } return true; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Fakala/Api.php b/app/Library/Pay/Fakala/Api.php
new file mode 100644
index 000000000..88684ca73
--- /dev/null
+++ b/app/Library/Pay/Fakala/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; $this->pay_id = $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['gateway'])) { throw new \Exception('请填写gateway'); } if (!isset($spc27de0['api_id'])) { throw new \Exception('请填写api_id'); } if (!isset($spc27de0['api_key'])) { throw new \Exception('请填写api_key'); } include_once 'sdk.php'; $spf7d22d = new \fakala($spc27de0['gateway'], $spc27de0['api_id'], $spc27de0['api_key']); $spd53b1c = strtolower($spc27de0['payway']); $spf7d22d->goPay($spd53b1c, $sp9f49de, $spba04f6, 0, $sp6956b3, '', $this->url_return, $this->url_notify); } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; include_once 'sdk.php'; $spf7d22d = new \fakala($spc27de0['gateway'], $spc27de0['api_id'], $spc27de0['api_key']); if ($spb2acff) { $spb34b01 = $spf7d22d->notify_verify(); } else { $spb34b01 = $spf7d22d->return_verify(); } if ($spb34b01) { $spba04f6 = $_REQUEST['out_trade_no']; $sp36f78e = $_REQUEST['total_fee']; $spd4a405 = $_REQUEST['order_no']; $sp4294a3($spba04f6, $sp36f78e, $spd4a405); } return $spb34b01; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Fakala/sdk.php b/app/Library/Pay/Fakala/sdk.php
new file mode 100644
index 000000000..71d2d000f
--- /dev/null
+++ b/app/Library/Pay/Fakala/sdk.php
@@ -0,0 +1,24 @@
+gateway = $sp669180; $this->uid = $spe00284; $this->key = $sp7b7024; } function getSignStr($sp3e77f9) { ksort($sp3e77f9); $sp973e68 = ''; foreach ($sp3e77f9 as $spe3274c => $spd7786b) { if ('sign' !== $spe3274c) { $sp973e68 .= $spe3274c . '=' . $spd7786b . '&'; } } return $sp973e68; } function getSign($sp3e77f9, $sp7b7024, &$sp97657f = false) { $sp973e68 = self::getSignStr($sp3e77f9); $sp75e4cc = md5($sp973e68 . 'key=' . $sp7b7024); if ($sp97657f !== false) { $sp97657f = $sp973e68 . 'sign=' . $sp75e4cc; } return $sp75e4cc; } function goPay($spd53b1c, $sp9f49de, $spba04f6, $sp92a485, $sp36f78e, $spbcd190, $spe6f749, $sp6b0215) { $sp3e77f9 = array('version' => '20190501', 'uid' => (int) $this->uid, 'subject' => $sp9f49de, 'out_trade_no' => $spba04f6, 'total_fee' => (int) $sp36f78e, 'cost' => (int) $sp92a485, 'payway' => $spd53b1c, 'return_url' => $spe6f749, 'notify_url' => $sp6b0215, 'attach' => $spbcd190); $sp3e77f9['sign'] = $this->getSign($sp3e77f9, $this->key); die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } function notify_verify() { $sp3e77f9 = $_POST; if ($sp3e77f9['sign'] === $this->getSign($sp3e77f9, $this->key)) { echo 'success'; return true; } else { echo 'fail'; return false; } } function return_verify() { $sp3e77f9 = $_GET; if ($sp3e77f9['sign'] === $this->getSign($sp3e77f9, $this->key)) { return true; } else { return false; } } function get_order($spba04f6) { $spb34b01 = $this->curl_post($this->gateway . '/api/order/query', 'uid=' . $this->uid . '&out_trade_no=' . $spba04f6); $spb34b01 = @json_decode($spb34b01, true); if (is_array($spb34b01) && is_array($spb34b01['data']) && isset($spb34b01['data']['order'])) { return $spb34b01['data']['order']; } return array(); } private function curl_post($sp3ae187, $spcb019a) { $spfe4f44 = curl_init($sp3ae187); curl_setopt($spfe4f44, CURLOPT_HEADER, 0); curl_setopt($spfe4f44, CURLOPT_RETURNTRANSFER, 1); curl_setopt($spfe4f44, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($spfe4f44, CURLOPT_POST, true); curl_setopt($spfe4f44, CURLOPT_POSTFIELDS, $spcb019a); $spad32e6 = curl_exec($spfe4f44); curl_close($spfe4f44); return $spad32e6; } }
\ No newline at end of file
diff --git a/app/Library/Pay/HLPay/Api.php b/app/Library/Pay/HLPay/Api.php
new file mode 100644
index 000000000..7f4934ef8
--- /dev/null
+++ b/app/Library/Pay/HLPay/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['id'])) { throw new \Exception('请填写id'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写key'); } $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); $spd53b1c = $spc27de0['payway']; switch ($spd53b1c) { case '901': case '902': $spef6530 = 'wechat'; break; case '903': case '904': $spef6530 = 'aliqr'; break; default: throw new \Exception('支付渠道错误'); } $spe6f749 = SYS_URL . '/qrcode/pay/' . $spba04f6 . '/query'; $sp3e77f9 = array('pay_memberid' => $spc27de0['id'], 'pay_orderid' => $spba04f6, 'pay_applydate' => date('Y-m-d H:i:s'), 'pay_bankcode' => $spd53b1c, 'pay_notifyurl' => $this->url_notify, 'pay_callbackurl' => $spe6f749, 'pay_amount' => $sp9b2bb6, 'pay_productname' => $sp9f49de); $sp4aa83c = $this->getPostData($sp3e77f9, $spc27de0['key']); $sp4187a7 = $this->curl_post('http://henglpay.com/Pay_Index.html', $sp4aa83c); $sp29a775 = @json_decode($sp4187a7, true); if (!$sp29a775 || !isset($sp29a775['status'])) { Log::error('Pay.HLPay.goPay.order Error#1: ' . $sp4187a7); throw new \Exception('获取付款信息超时, 请刷新重试'); } if ($sp29a775['status'] !== '200' || !isset($sp29a775['data']['QRCodeUrl'])) { Log::error('Pay.HLPay.goPay.order Error#2: ' . $sp4187a7); throw new \Exception('获取付款信息失败, 请联系客服反馈'); } if (@$sp29a775['data']['type'] === 'qrcode') { header('location: /qrcode/pay/' . $spba04f6 . '/' . strtolower($spef6530) . '?url=' . urlencode($sp29a775['data']['QRCodeUrl'])); } elseif ($sp29a775['type'] === 'page') { echo $sp29a775['data']['QRCodeUrl']; } elseif ($sp29a775['type'] === 'jsapi') { var_dump('未启用此方式: '); var_dump($sp29a775['data']['QRCodeUrl']); } else { Log::error('Pay.HLPay.goPay.order Error#3: ' . $sp4187a7); throw new \Exception('获取付款信息失败, 请联系客服反馈'); } die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { $spbf6b8b = array('memberid', 'orderid', 'transaction_id', 'amount', 'datetime', 'returncode'); $sp3e77f9 = array(); foreach ($spbf6b8b as $sp1a98b7) { $sp3e77f9[$sp1a98b7] = $_POST[$sp1a98b7]; } if ($this->getSign($sp3e77f9, $spc27de0['key']) !== $_POST['sign']) { Log::error('Pay.HLPay.verify, sign error $post:' . json_encode($_POST)); echo 'sign error'; return false; } $spd56469 = $_POST['orderid']; $spefaf7d = $_POST['transaction_id']; $sp4294a3($spd56469, (int) round($_POST['amount'] * 100), $spefaf7d); echo 'ok'; return true; } else { return false; } } private function getPostData($sp3e77f9, $sp7b7024) { ksort($sp3e77f9); $sp822fce = array(); foreach ($sp3e77f9 as $spe3274c => $spd7786b) { if ($spd7786b !== '' && !is_array($spd7786b)) { array_push($sp822fce, "{$spe3274c}={$spd7786b}"); } } $sp3e77f9 = implode('&', $sp822fce); $sp03f84e = $sp3e77f9 . '&key=' . $sp7b7024; return $sp3e77f9 . '&pay_md5sign=' . strtoupper(md5($sp03f84e)); } private function getSign($sp3e77f9, $sp7b7024) { ksort($sp3e77f9); $sp822fce = array(); foreach ($sp3e77f9 as $spe3274c => $spd7786b) { if ($spd7786b !== '' && !is_array($spd7786b)) { array_push($sp822fce, "{$spe3274c}={$spd7786b}"); } } $sp3e77f9 = implode('&', $sp822fce); $sp03f84e = $sp3e77f9 . '&key=' . $sp7b7024; return strtoupper(md5($sp03f84e)); } private function curl_post($sp3ae187, $sp4aa83c = '') { $spdf7b97['Accept'] = '*/*'; $spdf7b97['Referer'] = $sp3ae187; $spdf7b97['Content-Type'] = 'application/x-www-form-urlencoded'; $sp3c23e5 = array(); foreach ($spdf7b97 as $spee3fdf => $sp3c80c1) { $sp3c23e5[] = $spee3fdf . ': ' . $sp3c80c1; } $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_POST, 1); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $sp4aa83c); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, 10); curl_setopt($sp4e752c, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($sp4e752c, CURLOPT_HEADER, 1); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($sp4e752c, CURLOPT_HTTPHEADER, $sp3c23e5); $spad32e6 = curl_exec($sp4e752c); $sp5ec78e = curl_getinfo($sp4e752c, CURLINFO_HEADER_SIZE); $sp224c81 = substr($spad32e6, $sp5ec78e); curl_close($sp4e752c); return $sp224c81; } }
\ No newline at end of file
diff --git a/app/Library/Pay/JCBPay/Api.php b/app/Library/Pay/JCBPay/Api.php
new file mode 100644
index 000000000..3473bc39f
--- /dev/null
+++ b/app/Library/Pay/JCBPay/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['url'])) { throw new \Exception('请填写支付网页 [url]'); } if (!isset($spc27de0['app_id'])) { throw new \Exception('请填写APPID [app_id]'); } if (!isset($spc27de0['app_key'])) { throw new \Exception('请填写APPKEY [app_key]'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写接口key [key]'); } if (!isset($spc27de0['md5key'])) { throw new \Exception('请填写校验key [md5key]'); } header('Location: ' . $spc27de0['url'] . '/pay/pay.php?appid=' . $spc27de0['app_id'] . '&payno=' . $spba04f6 . '&typ=' . $spc27de0['payway'] . '&money=' . sprintf('%.2f', $sp6956b3 / 100) . '&back_url=' . $this->url_return); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { $sp3ab68a = $_REQUEST['key']; $spb428f9 = $_REQUEST['tno']; $sp4b7093 = $_REQUEST['payno']; $sp49ac38 = $_REQUEST['money']; $sp75e4cc = $_REQUEST['sign']; $spc82866 = (int) $_REQUEST['typ']; if ($spc82866 == 1) { $sp0631f3 = '手工充值'; } else { if ($spc82866 == 2) { $sp0631f3 = '支付宝充值'; } else { if ($spc82866 == 3) { $sp0631f3 = '财付通充值'; } else { if ($spc82866 == 4) { $sp0631f3 = '手Q充值'; } else { if ($spc82866 == 5) { $sp0631f3 = '微信充值'; } } } } } if (!$spb428f9) { die('没有订单号'); } if (!$sp4b7093) { die('没有付款说明'); } if ($sp3ab68a !== $spc27de0['key']) { die('KEY错误'); } if (strtoupper($sp75e4cc) !== strtoupper(md5($spb428f9 . $sp4b7093 . $sp49ac38 . $spc27de0['md5key']))) { die('签名错误'); } $sp4294a3($sp4b7093, (int) round($sp49ac38 * 100), $spb428f9); die('1'); } else { if (isset($spc27de0['out_trade_no']) && $spc27de0['out_trade_no']) { return false; } if (!isset($_REQUEST['appid']) || !isset($_REQUEST['tno']) || !isset($_REQUEST['payno']) || !isset($_REQUEST['money']) || !isset($_REQUEST['typ']) || !isset($_REQUEST['paytime']) || !isset($_REQUEST['sign'])) { return false; } $sp1e31b3 = (int) $_REQUEST['appid']; $spb428f9 = $_REQUEST['tno']; $sp4b7093 = $_REQUEST['payno']; $sp49ac38 = $_REQUEST['money']; $spc82866 = (int) $_REQUEST['typ']; $spbd18c0 = $_REQUEST['paytime']; $sp75e4cc = $_REQUEST['sign']; if (!$sp1e31b3 || !$spb428f9 || !$sp4b7093 || !$sp49ac38 || !$spc82866 || !$spbd18c0 || !$sp75e4cc) { die('参数错误'); } if ($spc27de0['app_id'] != $sp1e31b3) { die('appid error'); } if ($sp75e4cc != md5($sp1e31b3 . '|' . $spc27de0['app_key'] . '|' . $spb428f9 . '|' . $sp4b7093 . '|' . $sp49ac38 . '|' . $spbd18c0 . '|' . $spc82866)) { die('签名错误'); } if ($spc82866 == 1) { $sp0631f3 = '手工充值'; } else { if ($spc82866 == 2) { $sp0631f3 = '支付宝充值'; } else { if ($spc82866 == 3) { $sp0631f3 = '财付通充值'; } else { if ($spc82866 == 4) { $sp0631f3 = '手Q充值'; } else { if ($spc82866 == 5) { $sp0631f3 = '微信充值'; } } } } } $sp4294a3($sp4b7093, (int) round($sp49ac38 * 100), $spb428f9); return true; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/JiPays/Api.php b/app/Library/Pay/JiPays/Api.php
new file mode 100644
index 000000000..0f4480729
--- /dev/null
+++ b/app/Library/Pay/JiPays/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['id'])) { throw new \Exception('请填写id'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写key'); } $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); $spd53b1c = $spc27de0['payway']; switch ($spd53b1c) { case '8001': case '8002': $spef6530 = 'wechat'; break; case '8004': case '8006': $spef6530 = 'aliqr'; break; default: throw new \Exception('支付渠道错误'); } $spe6f749 = SYS_URL . '/qrcode/pay/' . $spba04f6 . '/query'; $sp3e77f9 = array('mch_id' => $spc27de0['id'], 'sign_type' => 'MD5', 'charset' => 'utf-8', 'version' => '1.0', 'timestamp' => date('Y-m-d H:i:s'), 'notify_url' => $this->url_notify, 'payment_code' => $spd53b1c, 'out_trade_no' => $spba04f6, 'total_fee' => $sp9b2bb6, 'body' => $sp224c81); $spd6e61f = create_link_string($sp3e77f9); $sp3e77f9['sign'] = md5($spd6e61f . '&key=' . $spc27de0['key']); $sp7b1947 = array('Content-Type:application/x-www-form-urlencoded;charset=utf-8', 'X-Requested-With:XMLHttpRequest'); $sp669180 = 'http://pay.jipays.com/gateway'; $sp3ae187 = rtrim($sp669180, '/'); $sp4187a7 = curl_http(rtrim($sp3ae187, '/'), $sp3e77f9, 'post', $sp7b1947); $sp29a775 = @json_decode($sp4187a7, true); if (!$sp29a775 || !isset($sp29a775['state'])) { Log::error('Pay.JiPays.goPay.order Error#1: ' . $sp4187a7); throw new \Exception('获取付款信息超时, 请刷新重试'); } if ($sp29a775['state'] == '0') { Log::error('Pay.JiPays.goPay.order Error#2: ' . $sp4187a7); throw new \Exception($sp29a775['msg']); } if (is_mobile() && is_weixin()) { header('Location:' . $sp29a775['data']['jump_url']); die; } $sp3ae187 = @strlen($sp29a775['data']['qrcode_url']) ? $sp29a775['data']['qrcode_url'] : $sp29a775['data']['jump_url']; if (strlen($sp3ae187)) { header('location: /qrcode/pay/' . $spba04f6 . '/' . strtolower($spef6530) . '?url=' . urlencode($sp3ae187)); } else { Log::error('Pay.JiPays.goPay.order Error#3: ' . $sp4187a7); throw new \Exception('获取付款信息失败, 请联系客服反馈'); } die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { $sp3e77f9 = array('mch_id' => $spc27de0['id'], 'sign_type' => 'MD5', 'charset' => 'utf-8', 'version' => '1.0', 'out_trade_no' => $_POST['out_trade_no'], 'timestamp' => $_POST['timestamp'], 'payment_code' => $_POST['payment_code'], 'body' => $_POST['body'], 'attach' => $_POST['attach'], 'total_fee' => $_POST['total_fee'], 'trade_no' => $_POST['trade_no'], 'channel_trade_no' => $_POST['channel_trade_no'], 'trade_status' => $_POST['trade_status'], 'payment_time' => $_POST['payment_time'], 'sign' => $_POST['sign']); if (md5(create_link_string($sp3e77f9) . '&key=' . $spc27de0['key']) !== $sp3e77f9['sign']) { Log::error('Pay.JiPays.verify, sign error $post:' . json_encode($_POST)); echo 'fail'; return false; } if ($_POST['trade_status'] === 'TRADE_FINISHED') { $spd56469 = $_POST['out_trade_no']; $spefaf7d = $_POST['trade_no']; $sp4294a3($spd56469, (int) round($_POST['total_fee'] * 100), $spefaf7d); } echo 'success'; return true; } else { $spba04f6 = @$spc27de0['out_trade_no']; if (strlen($spba04f6) < 5) { throw new \Exception('交易单号未传入'); } $sp3e77f9 = array('mch_id' => $spc27de0['id'], 'sign_type' => 'MD5', 'charset' => 'utf-8', 'version' => '1.0', 'timestamp' => date('Y-m-d H:i:s'), 'out_trade_no' => $spba04f6); $sp3e77f9['sign'] = md5(create_link_string($sp3e77f9) . '&key=' . $spc27de0['key']); $sp7b1947 = array('Content-Type:application/x-www-form-urlencoded;charset=utf-8', 'X-Requested-With:XMLHttpRequest'); $sp669180 = 'http://pay.jipays.com/gateway'; $sp3ae187 = rtrim($sp669180, '/') . '/trade_query'; $sp4187a7 = curl_http(rtrim($sp3ae187, '/'), $sp3e77f9, 'post', $sp7b1947); $sp29a775 = @json_decode($sp4187a7, true); if (!$sp29a775 || !isset($sp29a775['state'])) { Log::error('Pay.JiPays.verify Error#1: ' . $sp4187a7); throw new \Exception('查询超时, 请刷新重试'); } if ($sp29a775['state'] == '0') { Log::error('Pay.JiPays.verify.verify Error#2: ' . $sp4187a7); throw new \Exception($sp29a775['msg']); } if ($sp29a775['data']['trade_status'] === 'TRADE_FINISHED') { $spd56469 = $sp29a775['data']['out_trade_no']; $spefaf7d = $sp29a775['data']['trade_no']; $sp4294a3($spd56469, (int) round($sp29a775['data']['total_fee'] * 100), $spefaf7d); return true; } return false; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/JiPays/common.php b/app/Library/Pay/JiPays/common.php
new file mode 100644
index 000000000..150e20bde
--- /dev/null
+++ b/app/Library/Pay/JiPays/common.php
@@ -0,0 +1,8 @@
+ $spd7786b) { if ($spe3274c == 'sign' || $spe3274c == 'sign_type' || strval($spd7786b) === '') { continue; } $sp822fce[$spe3274c] = $spd7786b; } ksort($sp822fce); reset($sp822fce); $spe3a1c2 = ''; foreach ($sp822fce as $spe3274c => $spd7786b) { $spe3a1c2 .= $spe3274c . '=' . strval($spd7786b) . '&'; } $spe3a1c2 = trim($spe3a1c2, '&'); if (get_magic_quotes_gpc()) { $spe3a1c2 = stripslashes($spe3a1c2); } return $spe3a1c2; } function curl_http($sp3ae187, $sp3e77f9 = '', $sp888af6 = 'GET', $sp7b1947 = array()) { $sp4fabd4 = array(CURLOPT_TIMEOUT => 5, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HEADER => 0, CURLOPT_FOLLOWLOCATION => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0, CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4); if ($sp7b1947) { $sp4fabd4[CURLOPT_HTTPHEADER] = $sp7b1947; } if (is_array($sp3e77f9)) { $sp3e77f9 = http_build_query($sp3e77f9); } switch (strtoupper($sp888af6)) { case 'GET': $sp4fabd4[CURLOPT_URL] = $sp3e77f9 ? $sp3ae187 . '?' . $sp3e77f9 : $sp3ae187; $sp4fabd4[CURLOPT_CUSTOMREQUEST] = 'GET'; break; case 'POST': $sp4fabd4[CURLOPT_URL] = $sp3ae187; $sp4fabd4[CURLOPT_POST] = 1; $sp4fabd4[CURLOPT_POSTFIELDS] = $sp3e77f9; break; default: break; } $sp4e752c = curl_init(); curl_setopt_array($sp4e752c, $sp4fabd4); $spb34b01 = curl_exec($sp4e752c); if ($spb34b01) { curl_close($sp4e752c); return $spb34b01; } else { $sp095a96 = curl_errno($sp4e752c); curl_close($sp4e752c); die('请求发起失败,错误码:' . $sp095a96); } } function create_rsa_sign($spd6e61f) { require './config.php'; $sp64a344 or die('私钥信息尚未配置,请检查'); $spcbc983 = '-----BEGIN RSA PRIVATE KEY-----
+' . wordwrap($sp64a344, 64, '
+', true) . '
+-----END RSA PRIVATE KEY-----'; openssl_sign($spd6e61f, $sp75e4cc, $spcbc983, OPENSSL_ALGO_SHA256); $sp75e4cc = base64_encode($sp75e4cc); return $sp75e4cc; } function check_sign($sp3e77f9, $sp7b7024) { if (empty($sp3e77f9)) { return false; } if (!is_array($sp3e77f9)) { return false; } if (!isset($sp3e77f9['sign'])) { return false; } $spd6e61f = create_link_string($sp3e77f9); switch (strtoupper($sp3e77f9['sign_type'])) { case 'RSA2': $sp956999 or die('尚未设置网关RSA公钥'); $sp75e4cc = str_replace(' ', '+', $sp3e77f9['sign']); $sp719099 = '-----BEGIN PUBLIC KEY-----
+' . wordwrap($sp956999, 64, '
+', true) . '
+-----END PUBLIC KEY-----'; $spb34b01 = (bool) openssl_verify($spd6e61f, base64_decode($sp75e4cc), $sp719099, OPENSSL_ALGO_SHA256); return $spb34b01; break; case 'SHA256': $sp75e4cc = hash('sha256', $spd6e61f . '&key=' . $sp3809aa); return boolval($sp75e4cc == $sp3e77f9['sign']); break; default: case 'MD5': $sp75e4cc = md5($spd6e61f . '&key=' . $sp3809aa); return boolval($sp75e4cc == $sp3e77f9['sign']); break; } } function is_weixin() { $sp1b63f1 = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; if (strpos($sp1b63f1, 'MicroMessenger') !== false) { return true; } else { return false; } } function is_mobile() { if (isset($_SERVER['HTTP_VIA']) && stristr($_SERVER['HTTP_VIA'], 'wap')) { return true; } elseif (isset($_SERVER['HTTP_ACCEPT']) && strpos(strtoupper($_SERVER['HTTP_ACCEPT']), 'VND.WAP.WML')) { return true; } elseif (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) { return true; } elseif (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(blackberry|configuration\\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])) { return true; } else { return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/JinfuPass/Api.php b/app/Library/Pay/JinfuPass/Api.php
new file mode 100644
index 000000000..1f32905e4
--- /dev/null
+++ b/app/Library/Pay/JinfuPass/Api.php
@@ -0,0 +1,73 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['mch_id'])) { throw new \Exception('请填写商户号 mch_id'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写key'); } $spd53b1c = $spc27de0['payway']; switch ($spd53b1c) { case 'wx': $sp347986 = '102'; return $this->api_scan($spc27de0, $sp347986, 'wechat', $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); break; case 'qq': $sp347986 = '103'; return $this->api_scan($spc27de0, $sp347986, 'qq', $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); break; case 'alipay': $sp347986 = '101'; return $this->api_scan($spc27de0, $sp347986, 'aliqr', $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); break; case 'unionpay': $sp347986 = '104'; return $this->api_scan($spc27de0, $sp347986, 'unionpay', $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); break; case 'jd': $sp347986 = '105'; return $this->api_scan($spc27de0, $sp347986, 'jd', $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); break; case 'wxwap': if (strpos(@$_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { $sp347986 = '3030'; return $this->api_pay_in_app($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } else { $sp347986 = '206'; return $this->api_wap($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } break; case 'qqwap': if (strpos(@$_SERVER['HTTP_USER_AGENT'], 'MQQBrowser') !== false) { $sp347986 = '304'; return $this->api_pay_in_app($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } else { $sp347986 = '203'; return $this->api_h5($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } break; case 'alipaywap': if (strpos(@$_SERVER['HTTP_USER_AGENT'], 'AlipayClient') !== false) { $sp347986 = '302'; return $this->api_pay_in_app($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } else { $sp347986 = '205'; return $this->api_h5($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3); } break; default: throw new \Exception('支付渠道错误'); } } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { $sp2ecab4 = $spc27de0['mch_id']; $sp803c46 = $spc27de0['key']; $spba04f6 = $_POST['out_trade_no']; $sp1fbc94 = $_POST['trade_state']; $spd7876e = 'CNY'; $sp2b9922 = $_POST['pay_type']; $sp072e60 = (int) $_POST['total_amount']; $sp05dbe1 = $_POST['receipt_amount']; $sp246b40 = $_POST['sys_trade_no']; $spaa9795 = $_POST['txn_id']; $spd07659 = $_POST['device_info']; $spbcd190 = $_POST['attach']; $sp3c63da = $_POST['time_end']; $sp75e4cc = $_POST['sign']; $sp485a3f = sprintf('mch_id=%s&fee_type=%s&pay_type=%s&total_amount=%s&device_info=%s&coupon_amount=%s&key=%s', $sp2ecab4, $spba04f6, $spd7876e, $sp2b9922, $sp072e60, $spd07659, $sp803c46); if ($sp75e4cc == md5($sp485a3f)) { $sp4294a3($spba04f6, $sp072e60, $sp246b40); echo 'success'; return true; } else { echo 'FAIL'; return false; } } else { $spba04f6 = @$spc27de0['out_trade_no']; if (strlen($spba04f6) < 5) { throw new \Exception('交易单号未传入'); } $sp75e4cc = md5('version=1.0&mch_id=' . $spc27de0['mch_id'] . '&out_trade_no=' . $spba04f6 . '&sys_trade_no=&key=' . $spc27de0['key']); $sp4aa83c = array('version' => '1.0', 'mch_id' => $spc27de0['mch_id'], 'out_trade_no' => $spba04f6, 'sys_trade_no' => '', 'sign' => $sp75e4cc); $sp4187a7 = CurlRequest::post('https://pay.jinfupass.com/gateway/query', http_build_query($sp4aa83c)); $sp29a775 = @json_decode($sp4187a7, true); if (!$sp29a775 || !isset($sp29a775['result_code']) || $sp29a775['result_code'] !== '1') { Log::error('Pay.JinfuPass.verify.order Error#1: ' . $sp4187a7); throw new \Exception('获取付款信息超时, 请刷新重试'); } if ($sp29a775['trade_state'] === '1') { $sp4294a3($sp29a775['out_trade_no'], (int) $sp29a775['total_amount'], $sp29a775['sys_trade_no']); return true; } return false; } } private function api_scan($spc27de0, $sp347986, $sp69de7e, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp2ecab4 = $spc27de0['mch_id']; $sp7b7024 = $spc27de0['key']; $sp6b0215 = $this->url_notify; $sp485a3f = sprintf("version=1.0&mch_id={$sp2ecab4}&pay_type={$sp347986}&total_amount={$sp6956b3}&out_trade_no={$spba04f6}¬ify_url={$sp6b0215}&key={$sp7b7024}"); $sp75e4cc = md5($sp485a3f); $spcb019a = array('version' => '1.0', 'mch_id' => $sp2ecab4, 'pay_type' => $sp347986, 'fee_type' => 'CNY', 'total_amount' => $sp6956b3, 'out_trade_no' => $spba04f6, 'device_info' => date('YmdHis'), 'notify_url' => $sp6b0215, 'body' => $sp9f49de, 'attach' => '', 'time_start' => '', 'time_expire' => '', 'limit_credit_pay' => '0', 'hb_fq_num' => '', 'hb_fq_percent' => '', 'sign' => $sp75e4cc); $sp4aa83c = $spcb019a; $sp4187a7 = CurlRequest::post('http://pay.jinfupass.com/gateway/pay', http_build_query($sp4aa83c)); $sp29a775 = @json_decode($sp4187a7, true); if (!$sp29a775 || !isset($sp29a775['result_code']) || $sp29a775['result_code'] !== '1') { Log::error('Pay.JinfuPass.api_scan Error#1: ' . $sp4187a7); throw new \Exception('获取付款信息超时, 请刷新重试'); } if (!isset($sp29a775['code_url'])) { Log::error('Pay.JinfuPass.api_scan Error#2: ' . $sp4187a7); throw new \Exception('获取付款信息失败, 请联系客服反馈'); } header('location: /qrcode/pay/' . $spba04f6 . '/' . strtolower($sp69de7e) . '?url=' . urlencode($sp29a775['code_url'])); die; } private function api_pay_in_app($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp2ecab4 = $spc27de0['mch_id']; $sp7b7024 = $spc27de0['key']; $sp6b0215 = $this->url_notify; $sp485a3f = sprintf("version=1.0&mch_id={$sp2ecab4}&pay_type={$sp347986}&total_amount={$sp6956b3}&out_trade_no={$spba04f6}¬ify_url={$sp6b0215}&key={$sp7b7024}"); $sp75e4cc = md5($sp485a3f); die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } private function api_h5($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp2ecab4 = $spc27de0['mch_id']; $sp7b7024 = $spc27de0['key']; $sp6b0215 = $this->url_notify; $sp485a3f = sprintf("version=1.0&mch_id={$sp2ecab4}&pay_type={$sp347986}&total_amount={$sp6956b3}&out_trade_no={$spba04f6}¬ify_url={$sp6b0215}&key={$sp7b7024}"); $sp75e4cc = md5($sp485a3f); die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } private function api_wap($spc27de0, $sp347986, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp2ecab4 = $spc27de0['mch_id']; $sp7b7024 = $spc27de0['key']; $sp6b0215 = $this->url_notify; $sp485a3f = sprintf("version=1.0&mch_id={$sp2ecab4}&pay_type={$sp347986}&total_amount={$sp6956b3}&out_trade_no={$spba04f6}¬ify_url={$sp6b0215}&key={$sp7b7024}"); $sp75e4cc = md5($sp485a3f); $sp3bdc58 = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://{$_SERVER['HTTP_HOST']}"; die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } }
\ No newline at end of file
diff --git a/app/Library/Pay/Meeol/Api.php b/app/Library/Pay/Meeol/Api.php
new file mode 100644
index 000000000..2e2748a95
--- /dev/null
+++ b/app/Library/Pay/Meeol/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp36f78e = sprintf('%.2f', $sp6956b3 / 100); if (!isset($spc27de0['appId'])) { throw new \Exception('请设置appId'); } if (!isset($spc27de0['key'])) { throw new \Exception('请设置key'); } $spd53b1c = $spc27de0['payway']; $spb18322 = array('amount' => $sp36f78e, 'appId' => $spc27de0['appId'], 'orderId' => $spba04f6, 'random' => md5(random_bytes(16)), 'tradeType' => $spd53b1c); $spb18322['sign'] = strtoupper(md5('amount=' . $spb18322['amount'] . '&appId=' . $spc27de0['appId'] . '&key=' . $spc27de0['key'] . '&orderId=' . $spb18322['orderId'] . '&random=' . $spb18322['random'] . '&tradeType=' . $spb18322['tradeType'])); $sp4187a7 = CurlRequest::post('http://api.meeol.cn/rest/mall/payment/order', json_encode($spb18322)); $sp29a775 = json_decode($sp4187a7, true); if (!isset($sp29a775['status']) || $sp29a775['status'] !== '0') { Log::error('Pay.Meeol.goPay.order Error: ' . $sp4187a7); throw new \Exception('支付请求失败, 请刷新重试'); } if (substr($spd53b1c, 0, 1) === 'W') { header('Location: /qrcode/pay/' . $spba04f6 . '/wechat?url=' . urlencode($sp29a775['qrcode'])); } elseif (substr($spd53b1c, 0, 1) === 'A') { header('Location: /qrcode/pay/' . $spba04f6 . '/aliqr?url=' . urlencode($sp29a775['qrcode'])); } die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if ($spb2acff) { $sp33b002 = json_decode(file_get_contents('php://input'), true); $sp75e4cc = strtoupper(md5('amount=' . $sp33b002['amount'] . '&appid=' . $sp33b002['appid'] . '&key=' . $spc27de0['key'] . '&orderId=' . $sp33b002['orderId'] . '&tradeTime=' . $sp33b002['tradeTime'] . '&tradeType=' . $sp33b002['tradeType'])); if ($sp75e4cc === $sp33b002['sign']) { $sp36f78e = (int) round($sp33b002['amount'] * 100); $sp4294a3($sp33b002['orderId'], $sp36f78e, $sp33b002['passTradeNo']); echo 'success'; return true; } else { Log::error('Pay.Meeol.verify notify sign error, post: ' . file_get_contents('php://input')); echo 'error'; } } else { if (!empty($spc27de0['out_trade_no'])) { $spb18322 = array('appId' => $spc27de0['appId'], 'orderId' => $spc27de0['out_trade_no'], 'random' => md5(random_bytes(16))); $spb18322['sign'] = strtoupper(md5('appId=' . $spc27de0['appId'] . '&key=' . $spc27de0['key'] . '&orderId=' . $spb18322['orderId'] . '&random=' . $spb18322['random'])); $spb18322 = json_encode($spb18322); $sp4187a7 = CurlRequest::post('http://api.meeol.cn/rest/mall/payment/query', $spb18322); $sp29a775 = json_decode($sp4187a7, true); if (!isset($sp29a775['status'])) { Log::error('Pay.Meeol.verify Error: ' . $sp4187a7); } if ($sp29a775['status'] === '0') { $sp36f78e = (int) round($sp29a775['amount'] * 100); $sp4294a3($sp29a775['orderId'], $sp36f78e, $sp29a775['passTradeNo']); return true; } Log::debug('Pay.Meeol.verify debug, req:' . $spb18322 . 'ret:' . $sp4187a7); return false; } else { throw new \Exception('请传递订单编号'); } } return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/MoTonePay/Api.php b/app/Library/Pay/MoTonePay/Api.php
new file mode 100644
index 000000000..b0e73cd6a
--- /dev/null
+++ b/app/Library/Pay/MoTonePay/Api.php
@@ -0,0 +1,32 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp36f78e = sprintf('%.2f', $sp6956b3 / 100); $sp48d343 = '1.0'; $spf14b2e = $spc27de0['payway']; $spad2b1e = '0'; $sp75e4cc = md5('version=' . $sp48d343 . '&customerid=' . $spc27de0['id'] . '&total_fee=' . $sp36f78e . '&sdorderno=' . $spba04f6 . '¬ifyurl=' . $this->url_notify . '&returnurl=' . $this->url_return . '&' . $spc27de0['key']); ?>
+
+
+
+
+ 正在转到付款页
+
+
+
+
+
+ driver = static::getDriver($spd53b1c->id, $spd53b1c->driver); $spc27de0 = json_decode($spd53b1c->config, true); $spc27de0['payway'] = $spd53b1c->way; $this->driver->goPay($spc27de0, $spd56469, $sp9f49de, $sp224c81, $sp9b2bb6); return true; } public static function getDriver($spba5a3b, $sp5df6ee) { $spddbdf6 = 'App\\Library\\Pay\\' . ucfirst($sp5df6ee) . '\\Api'; if (!class_exists($spddbdf6)) { throw new \Exception('支付驱动未找到'); } return new $spddbdf6($spba5a3b); } }
\ No newline at end of file
diff --git a/app/Library/Pay/PayPal/Api.php b/app/Library/Pay/PayPal/Api.php
new file mode 100644
index 000000000..8de50142c
--- /dev/null
+++ b/app/Library/Pay/PayPal/Api.php
@@ -0,0 +1,29 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; $this->pay_id = $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp8dca46 = self::getUsd($sp6956b3); $sp9b2bb6 = sprintf('%.2f', $sp8dca46 / 100); \App\Order::where('order_no', $spba04f6)->update(array('pay_trade_no' => $sp9b2bb6)); if (!isset($spc27de0['business'])) { throw new \Exception('请填写 business (商家邮箱)'); } die('
+
+
+
+
+正在转到付款页
+
+
+
+
+ '); } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; if (!$spb2acff && @(!isset($_POST['business']))) { return false; } $sp12b17d = file_get_contents('php://input'); $sp811050 = explode('&', $sp12b17d); $sp0c558d = array(); foreach ($sp811050 as $sp05dc5a) { $sp05dc5a = explode('=', $sp05dc5a); if (count($sp05dc5a) == 2) { $sp0c558d[$sp05dc5a[0]] = urldecode($sp05dc5a[1]); } } $spb18322 = 'cmd=_notify-validate'; if (function_exists('get_magic_quotes_gpc')) { $sp7eed35 = true; } foreach ($sp0c558d as $sp7b7024 => $spc82d84) { if ($sp7eed35 == true && get_magic_quotes_gpc() == 1) { $spc82d84 = urlencode(stripslashes($spc82d84)); } else { $spc82d84 = urlencode($spc82d84); } $spb18322 .= "&{$sp7b7024}={$spc82d84}"; } $sp4e752c = curl_init('https://ipnpb.paypal.com/cgi-bin/webscr'); curl_setopt($sp4e752c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($sp4e752c, CURLOPT_POST, 1); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $spb18322); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($sp4e752c, CURLOPT_FORBID_REUSE, 1); curl_setopt($sp4e752c, CURLOPT_HTTPHEADER, array('Connection: Close')); if (!($sp7098d5 = curl_exec($sp4e752c))) { Log::error('Pay.PayPal.verify notify fail, Got ' . curl_error($sp4e752c) . ' when processing IPN data'); curl_close($sp4e752c); die; } curl_close($sp4e752c); if (strcmp($sp7098d5, 'VERIFIED') == 0) { if ($spb2acff) { echo 'IPN OK'; } $spd56469 = $_POST['item_number']; $spb99da5 = $_POST['payment_status']; $spba0687 = $_POST['mc_gross']; $sp658add = $_POST['mc_currency']; $spaa9795 = $_POST['txn_id']; $sp6d82f2 = $spb2acff ? $_POST['receiver_email'] : $_POST['business']; if ($spb99da5 !== 'Completed') { Log::debug('Pay.PayPal.verify fail, order_no:' . $spd56469 . ', Payment status is not Completed, current(' . $spb99da5 . ')', array('$_POST' => $_POST)); return false; } if ($sp658add !== 'USD') { Log::error('Pay.PayPal.verify fail, order_no:' . $spd56469 . ', Payment currency is not USD, current(' . $sp658add . ')', array('$_POST' => $_POST)); return false; } $sp7dcca7 = \App\Order::where('order_no', $spd56469)->firstOrFail(); if ($sp7dcca7->status === \App\Order::STATUS_PAID || $sp7dcca7->status === \App\Order::STATUS_SUCCESS) { return true; } if ($sp7dcca7->pay_trade_no !== $spba0687) { Log::error('Pay.PayPal.verify fail, order_no:' . $spd56469 . ', Payment amount error (' . $sp7dcca7->pay_trade_no . '), current(' . $spba0687 . ')', array('$_POST' => $_POST)); } if ($sp6d82f2 !== $spc27de0['business']) { Log::error('Pay.PayPal.verify fail, order_no:' . $spd56469 . ', payment account is not yours(' . $spc27de0['business'] . '), current(' . $sp6d82f2 . ')', array('$_POST' => $_POST)); return false; } $sp4294a3($spd56469, $sp7dcca7->paid, $spaa9795); return true; } else { if (strcmp($sp7098d5, 'INVALID') == 0) { if ($spb2acff) { echo 'IPN OK'; } Log::debug('Pay.PayPal.verify notify fail, IPN INVALID', array('$res' => $sp7098d5, '$_POST' => $_POST)); } else { Log::debug('Pay.PayPal.verify notify fail, Unknown IPN error', array('$res' => $sp7098d5, '$_POST' => $_POST)); } } return false; } function getUsd($spa65b1f) { $spcb019a = @json_decode(CurlRequest::get('https://m.cmbchina.com/api/rate/getfxrate'), true); if (!isset($spcb019a['data'])) { throw new \Exception('获取汇率失败'); } $spd361d0 = 0.2; foreach ($spcb019a['data'] as $sp338f71) { if ($sp338f71['ZCcyNbr'] === '美元') { $spd361d0 = 100 / $sp338f71['ZRtcOfr']; break; } } return $spa65b1f * $spd361d0; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Payjs/Api.php b/app/Library/Pay/Payjs/Api.php
new file mode 100644
index 000000000..951ec8fa4
--- /dev/null
+++ b/app/Library/Pay/Payjs/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['mchid'])) { throw new \Exception('请填写mchid'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写key'); } $sp045e10 = new Payjs($spc27de0); $spd53b1c = strtolower($spc27de0['payway']); $spcb019a = array('total_fee' => $sp6956b3, 'out_trade_no' => $spba04f6, 'body' => $spba04f6, 'notify_url' => $this->url_notify, 'callback_url' => SYS_URL . '/pay/result/' . $spba04f6); if ($spd53b1c === 'native') { $spece3a7 = $sp045e10->native($spcb019a); if (@(int) $spece3a7['return_code'] !== 1) { die('支付渠道出错: ' . $spece3a7['msg'] . ' '); } header('location: /qrcode/pay/' . $spba04f6 . '/payjs/' . base64_encode($spece3a7['code_url'])); } elseif ($spd53b1c === 'cashier') { $spece3a7 = $sp045e10->cashier($spcb019a); header('Location: ' . $spece3a7); } else { die('请填写支付方式 '); } echo '正在跳转到支付渠道... 正在跳转到支付渠道... '; die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $sp045e10 = new Payjs($spc27de0); if ($spb2acff) { $spb34b01 = $sp045e10->checkSign($_POST); echo $spb34b01 ? 'success' : 'fail'; } else { $spb34b01 = false; } if ($spb34b01) { $spba04f6 = $_REQUEST['out_trade_no']; $sp36f78e = $_REQUEST['total_fee']; $sp9c010a = $_REQUEST['payjs_order_id']; $sp4294a3($spba04f6, $sp36f78e, $sp9c010a); return true; } return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Payjs/sdk/Payjs.php b/app/Library/Pay/Payjs/sdk/Payjs.php
new file mode 100644
index 000000000..8a620000e
--- /dev/null
+++ b/app/Library/Pay/Payjs/sdk/Payjs.php
@@ -0,0 +1,2 @@
+mchid = $spc27de0['mchid']; $this->key = $spc27de0['key']; $spf02c14 = isset($spc27de0['api_url']) ? $spc27de0['api_url'] : 'https://payjs.cn/api/'; $this->api_url_native = $spf02c14 . 'native'; $this->api_url_cashier = $spf02c14 . 'cashier'; $this->api_url_refund = $spf02c14 . 'refund'; $this->api_url_close = $spf02c14 . 'close'; $this->api_url_check = $spf02c14 . 'check'; $this->api_url_user = $spf02c14 . 'user'; $this->api_url_info = $spf02c14 . 'info'; $this->api_url_bank = $spf02c14 . 'bank'; } public function native(array $spcb019a) { $this->url = $this->api_url_native; return $this->post($spcb019a); } public function cashier(array $spcb019a) { $this->url = $this->api_url_cashier; $spcb019a = $this->sign($spcb019a); $sp3ae187 = $this->url . '?' . http_build_query($spcb019a); return $sp3ae187; } public function refund($sp9c010a) { $this->url = $this->api_url_refund; $spcb019a = array('payjs_order_id' => $sp9c010a); return $this->post($spcb019a); } public function close($sp9c010a) { $this->url = $this->api_url_close; $spcb019a = array('payjs_order_id' => $sp9c010a); return $this->post($spcb019a); } public function check($sp9c010a) { $this->url = $this->api_url_check; $spcb019a = array('payjs_order_id' => $sp9c010a); return $this->post($spcb019a); } public function user($sp2a473b) { $this->url = $this->api_url_user; $spcb019a = array('openid' => $sp2a473b); return $this->post($spcb019a); } public function info() { $this->url = $this->api_url_info; $spcb019a = array(); return $this->post($spcb019a); } public function bank($spcc609a) { $this->url = $this->api_url_bank; $spcb019a = array('bank' => $spcc609a); return $this->post($spcb019a); } public function notify() { $spcb019a = $_POST; if ($this->checkSign($spcb019a) === true) { return $spcb019a; } else { return '验签失败'; } } public function sign(array $spcb019a) { $spcb019a['mchid'] = $this->mchid; array_filter($spcb019a); ksort($spcb019a); $spcb019a['sign'] = strtoupper(md5(urldecode(http_build_query($spcb019a) . '&key=' . $this->key))); return $spcb019a; } public function checkSign($spcb019a) { $spe1cc1e = $spcb019a['sign']; unset($spcb019a['sign']); array_filter($spcb019a); ksort($spcb019a); $sp75e4cc = strtoupper(md5(urldecode(http_build_query($spcb019a) . '&key=' . $this->key))); return $spe1cc1e == $sp75e4cc ? true : false; } private static function curl_post($sp3ae187, $sp4aa83c = '') { $spdf7b97['Accept'] = '*/*'; $spdf7b97['Referer'] = $sp3ae187; $spdf7b97['Content-Type'] = 'application/x-www-form-urlencoded'; $spdf7b97['User-Agent'] = 'ni shi sha bi ba, yi ge sdk hai you di san fang ku'; $sp3c23e5 = array(); foreach ($spdf7b97 as $spee3fdf => $sp3c80c1) { $sp3c23e5[] = $spee3fdf . ': ' . $sp3c80c1; } $sp3c23e5[] = 'Expect:'; $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_POST, 1); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $sp4aa83c); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, 10); curl_setopt($sp4e752c, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($sp4e752c, CURLOPT_HEADER, 1); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($sp4e752c, CURLOPT_HTTPHEADER, $sp3c23e5); $spad32e6 = curl_exec($sp4e752c); $sp5ec78e = curl_getinfo($sp4e752c, CURLINFO_HEADER_SIZE); $sp224c81 = substr($spad32e6, $sp5ec78e); curl_close($sp4e752c); return $sp224c81; } public function post($spcb019a) { $spcb019a = $this->sign($spcb019a); return json_decode(self::curl_post($this->url, http_build_query($spcb019a)), true); } }
\ No newline at end of file
diff --git a/app/Library/Pay/QPay/Api.php b/app/Library/Pay/QPay/Api.php
new file mode 100644
index 000000000..cb8b08528
--- /dev/null
+++ b/app/Library/Pay/QPay/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['mch_id']) || !isset($spc27de0['mch_key'])) { throw new \Exception('请设置 mch_id 和 mch_key'); } $sp3e77f9 = array('out_trade_no' => $spba04f6, 'body' => $sp9f49de, 'device_info' => 'qq_19060', 'fee_type' => 'CNY', 'notify_url' => $this->url_notify, 'spbill_create_ip' => Helper::getIP(), 'total_fee' => $sp6956b3, 'trade_type' => 'NATIVE'); $sp4b1e8a = new \QpayMchAPI('https://qpay.qq.com/cgi-bin/pay/qpay_unified_order.cgi', null, 10); $spb16963 = $sp4b1e8a->req($sp3e77f9, $spc27de0); $spb34b01 = \QpayMchUtil::xmlToArray($spb16963); if (!isset($spb34b01['code_url'])) { Log::error('Pay.QPay.goPay, order_no:' . $spba04f6 . ', error:' . json_encode($spb34b01)); if (isset($spb34b01['err_code_des'])) { throw new \Exception($spb34b01['err_code_des']); } if (isset($spb34b01['return_msg'])) { throw new \Exception($spb34b01['return_msg']); } throw new \Exception('获取支付数据失败'); } header('location: /qrcode/pay/' . $spba04f6 . '/qq?url=' . urlencode($spb34b01['code_url'])); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $sp4b1e8a = new \QpayMchAPI('https://qpay.qq.com/cgi-bin/pay/qpay_order_query.cgi', null, 10); if ($spb2acff) { $sp3e77f9 = $sp4b1e8a->notify_params(); if (!$sp4b1e8a->notify_verify($sp3e77f9, $spc27de0)) { echo 'FAIL '; return false; } call_user_func_array($sp4294a3, array($sp3e77f9['out_trade_no'], $sp3e77f9['total_fee'], $sp3e77f9['transaction_id'])); echo 'SUCCESS '; return true; } else { $spba04f6 = @$spc27de0['out_trade_no']; $sp3e77f9 = array('out_trade_no' => $spba04f6); $spb16963 = $sp4b1e8a->req($sp3e77f9, $spc27de0); $spb34b01 = \QpayMchUtil::xmlToArray($spb16963); if (!is_array($spb34b01)) { Log::error('Pay.QPay.verify Error, $retXml' . $spb16963); return false; } if (array_key_exists('trade_state', $spb34b01) && $spb34b01['trade_state'] == 'SUCCESS') { call_user_func_array($sp4294a3, array($spb34b01['out_trade_no'], $spb34b01['total_fee'], $spb34b01['transaction_id'])); return true; } else { return false; } } } }
\ No newline at end of file
diff --git a/app/Library/Pay/QPay/qpay_mch_sp/qpayMch.config.php b/app/Library/Pay/QPay/qpay_mch_sp/qpayMch.config.php
new file mode 100644
index 000000000..e3f133619
--- /dev/null
+++ b/app/Library/Pay/QPay/qpay_mch_sp/qpayMch.config.php
@@ -0,0 +1,2 @@
+url = $sp3ae187; $this->isSSL = $spced08e; $this->timeout = $sp8bccc7; } public function notify_params() { $spbbfd2d = file_get_contents('php://input'); return QpayMchUtil::xmlToArray($spbbfd2d); } public function notify_verify($sp3e77f9, $spc27de0) { if (!isset($sp3e77f9['sign'])) { return false; } $sp75e4cc = QpayMchUtil::getSign($sp3e77f9, $spc27de0['mch_key']); return $sp75e4cc === $sp3e77f9['sign']; } public function req($sp3e77f9, $spc27de0) { $sp29a775 = array(); $sp3e77f9['mch_id'] = $spc27de0['mch_id']; $sp3e77f9['nonce_str'] = QpayMchUtil::createNoncestr(); $sp3e77f9['sign'] = QpayMchUtil::getSign($sp3e77f9, $spc27de0['mch_key']); $spbbfd2d = QpayMchUtil::arrayToXml($sp3e77f9); if (isset($this->isSSL)) { $sp29a775 = QpayMchUtil::reqByCurlSSLPost($spbbfd2d, $this->url, $this->timeout); } else { $sp29a775 = QpayMchUtil::reqByCurlNormalPost($spbbfd2d, $this->url, $this->timeout); } return $sp29a775; } }
\ No newline at end of file
diff --git a/app/Library/Pay/QPay/qpay_mch_sp/qpayMchUtil.class.php b/app/Library/Pay/QPay/qpay_mch_sp/qpayMchUtil.class.php
new file mode 100644
index 000000000..a742ef981
--- /dev/null
+++ b/app/Library/Pay/QPay/qpay_mch_sp/qpayMchUtil.class.php
@@ -0,0 +1,2 @@
+ $spd7786b) { if ($spe3274c != 'sign' && $spd7786b != '' && !is_array($spd7786b)) { array_push($spd3aafa, "{$spe3274c}={$spd7786b}"); } } return implode('&', $spd3aafa); } public static function getSign($sp3e77f9, $sp9c809d) { ksort($sp3e77f9); $sp68a7c4 = QpayMchUtil::buildQueryStr($sp3e77f9); $sp68a7c4 = $sp68a7c4 . '&key=' . $sp9c809d; $sp68a7c4 = md5($sp68a7c4); $sp75e4cc = strtoupper($sp68a7c4); return $sp75e4cc; } public static function arrayToXml($spdffb1d) { $spbbfd2d = ''; foreach ($spdffb1d as $sp7b7024 => $spcb4459) { if (is_numeric($spcb4459)) { $spbbfd2d .= "<{$sp7b7024}>{$spcb4459}{$sp7b7024}>"; } else { $spbbfd2d .= "<{$sp7b7024}>{$sp7b7024}>"; } } $spbbfd2d .= ' '; return $spbbfd2d; } public static function xmlToArray($spbbfd2d) { $spdffb1d = json_decode(json_encode(simplexml_load_string($spbbfd2d, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $spdffb1d; } public static function reqByCurlNormalPost($sp3e77f9, $sp3ae187, $sp8bccc7 = 10) { return QpayMchUtil::_reqByCurl($sp3e77f9, $sp3ae187, $sp8bccc7, false); } public static function reqByCurlSSLPost($sp3e77f9, $sp3ae187, $sp8bccc7 = 10) { return QpayMchUtil::_reqByCurl($sp3e77f9, $sp3ae187, $sp8bccc7, true); } private static function _reqByCurl($sp3e77f9, $sp3ae187, $sp8bccc7 = 10, $spfbb63c = false) { $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, $sp8bccc7); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($sp4e752c, CURLOPT_HEADER, FALSE); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, TRUE); if (isset($spfbb63c) && $spfbb63c != false) { curl_setopt($sp4e752c, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($sp4e752c, CURLOPT_SSLCERT, QpayMchConf::CERT_FILE_PATH); curl_setopt($sp4e752c, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($sp4e752c, CURLOPT_SSLKEY, QpayMchConf::KEY_FILE_PATH); } curl_setopt($sp4e752c, CURLOPT_POST, true); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $sp3e77f9); $sp29a775 = curl_exec($sp4e752c); if ($sp29a775) { curl_close($sp4e752c); return $sp29a775; } else { $sp095a96 = curl_errno($sp4e752c); print_r($sp095a96); curl_close($sp4e752c); return false; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/Qf/Api.php b/app/Library/Pay/Qf/Api.php
new file mode 100644
index 000000000..ad3bd3922
--- /dev/null
+++ b/app/Library/Pay/Qf/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $spef6530 = strtolower($spc27de0['payway']); if (!isset($spc27de0['id'])) { throw new \Exception('请设置 id'); } $spdf7b97 = array(); if ($spef6530 == 'qq') { $spdf7b97 = array('User-Agent' => 'Mozilla/5.0 Mobile MQQBrowser/6.2 QQ/7.2.5.3305'); } elseif ($spef6530 == 'alipay') { $spdf7b97 = array('User-Agent' => 'Mozilla/5.0 AlipayChannelId/5136 AlipayDefined(nt:WIFI,ws:411|0|2.625) AliApp(AP/10.1.10.1226101) AlipayClient/10.1.10.1226101'); } $spcbe183 = Request::get('https://o2.qfpay.com/q/info?code=&huid=' . $spc27de0['id'] . '&opuid=&reqid=' . $spba04f6, $spdf7b97); $spd660f1 = static::str_between($spcbe183, 'reqid":"', '"'); $sp8bd560 = static::str_between($spcbe183, 'currency":"', '"'); if ($spd660f1 == '' || $sp8bd560 == '') { Log::error('qfpay pay, 获取支付金额失败 - ' . $spcbe183); throw new \Exception('获取支付请求id失败'); } $spe54c5c = Request::post('https://o2.qfpay.com/q/payment', 'txamt=' . $sp6956b3 . '&openid=&appid=&huid=' . $spc27de0['id'] . '&opuid=&reqid=' . $spd660f1 . '&balance=0¤cy=' . $sp8bd560, $spdf7b97); $spb34b01 = json_decode($spe54c5c, true); $sp5deb2d = static::str_between($spe54c5c, 'syssn":"', '"'); if (!$spb34b01 || $sp5deb2d == '') { Log::error('qfpay pay, 生成支付单号失败#1 - ' . $spe54c5c); throw new \Exception('生成支付单号失败#1'); } if ($spb34b01['respcd'] !== '0000') { if (isset($spb34b01['respmsg']) && $spb34b01['respmsg'] !== '') { throw new \Exception($spb34b01['respmsg']); } Log::error('qfpay pay, 生成支付单号失败#2 - ' . $spe54c5c); throw new \Exception('生成支付单号失败#2'); } \App\Order::whereOrderNo($spba04f6)->update(array('pay_trade_no' => $sp5deb2d)); header('location: /qrcode/pay/' . $spba04f6 . '/qf_' . $spef6530 . '?url=' . urlencode(json_encode($spb34b01['data']['pay_params']))); } function verify($spc27de0, $sp4294a3) { $sp7dcca7 = \App\Order::whereOrderNo($spc27de0['out_trade_no'])->firstOrFail(); $sp5deb2d = $sp7dcca7->pay_trade_no; $sp37059f = Request::get('https://marketing.qfpay.com/v1/mkw/activity?syssn=' . $sp5deb2d); $sp0b52fc = json_decode($sp37059f, true); if (!$sp37059f) { throw new \Exception('query error'); } if (!isset($sp0b52fc['respcd'])) { Log::error('qfpay query, 获取支付结果失败 - ' . $sp37059f); throw new \Exception('获取支付结果失败'); } if ($sp0b52fc['respcd'] !== '0000') { return false; } $spddc088 = (int) static::str_between($sp37059f, 'trade_amt":', ','); if ($spddc088 === 0) { $spddc088 = (int) static::str_between($sp37059f, 'txamt":', ','); if ($spddc088 === 0) { Log::error('qfpay query, 获取支付金额失败 - ' . $sp37059f); throw new \Exception('获取支付金额失败'); } } if ($sp0b52fc['respcd'] === '0000') { $sp4294a3($spc27de0['out_trade_no'], $spddc088, $sp5deb2d); return true; } return false; } public static function str_between($sp3868ff, $sp5d78d8, $sp17cc54) { $spd3a47a = stripos($sp3868ff, $sp5d78d8); if ($spd3a47a === false) { return ''; } $sp7171e5 = stripos($sp3868ff, $sp17cc54, $spd3a47a + strlen($sp5d78d8)); if ($sp7171e5 === false || $spd3a47a >= $sp7171e5) { return ''; } $sp1c9539 = strlen($sp5d78d8); $sp29a775 = substr($sp3868ff, $spd3a47a + $sp1c9539, $sp7171e5 - $spd3a47a - $sp1c9539); return $sp29a775; } }
\ No newline at end of file
diff --git a/app/Library/Pay/QweBank/Api.php b/app/Library/Pay/QweBank/Api.php
new file mode 100644
index 000000000..7e5517a28
--- /dev/null
+++ b/app/Library/Pay/QweBank/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function getAccessToken($spc27de0) { $spbf3a2c = str_random(5); $sp5fcdf6 = time() . '00'; $sp75e4cc = strtoupper(md5('merchantNo=' . $spc27de0['mchid'] . '&nonce=' . $spbf3a2c . '×tamp=' . $sp5fcdf6 . '&key=' . $spc27de0['key'])); $sp3e77f9 = json_encode(array('merchantNo' => $spc27de0['mchid'], 'key' => $spc27de0['key'], 'nonce' => $spbf3a2c, 'timestamp' => $sp5fcdf6, 'sign' => $sp75e4cc), JSON_FORCE_OBJECT); $sp4187a7 = CurlRequest::post('http://api.qwebank.top/open/v1/getAccessToken/merchant', $sp3e77f9, array('Content-Type' => 'application/json')); $sp29a775 = @json_decode($sp4187a7, true); if (!is_array($sp29a775) || !isset($sp29a775['value']) || !isset($sp29a775['value']['accessToken'])) { Log::error('Pay.QweBank.getAccessToken Error: ' . $sp4187a7); throw new \Exception('获取支付渠道失败,请联系客服反馈'); } return $sp29a775['value']['accessToken']; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { if (!isset($spc27de0['mchid'])) { throw new \Exception('请填写 mchid'); } if (!isset($spc27de0['key'])) { throw new \Exception('请填写 key'); } $spd53b1c = $spc27de0['payway']; $sp3e77f9 = array('accessToken' => $this->getAccessToken($spc27de0), 'param' => array('outTradeNo' => $spba04f6, 'money' => $sp6956b3, 'type' => 'T0', 'body' => $sp9f49de, 'detail' => $sp9f49de, 'notifyUrl' => $this->url_notify, 'successUrl' => $this->url_return, 'productId' => '12313', 'timestamp' => strval(time()), 'sign' => '1')); if ($spd53b1c === 'wechatWapPay') { $sp3e77f9['param']['merchantIp'] = Helper::getIP(); } if ($spd53b1c === 'bankPay') { if (!isset($spc27de0['bankName'])) { throw new \Exception('请填写 bankName'); } $sp3e77f9['param']['bankName'] = $spc27de0['bankName']; } $sp4187a7 = CurlRequest::post('http://api.qwebank.top/open/v1/order/' . $spd53b1c, json_encode($sp3e77f9, JSON_FORCE_OBJECT), array('Content-Type' => 'application/json')); $sp29a775 = @json_decode($sp4187a7, true); if (!is_array($sp29a775) || !isset($sp29a775['success']) || !isset($sp29a775['value'])) { Log::error('Pay.QweBank.goPay Error: ' . $sp4187a7); throw new \Exception('提交订单到支付渠道失败,请联系客服反馈'); } header('Location: ' . $sp29a775['value']); die; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $spb34b01 = false; if ($spb2acff) { $sp3868ff = 'merchantNo=' . $_REQUEST['merchantNo'] . '&no=' . $_REQUEST['no'] . '&nonce=' . $_REQUEST['nonce'] . '×tamp=' . $_REQUEST['timestamp'] . '&key=' . $spc27de0['key']; if (md5($sp3868ff) !== $_REQUEST['sign']) { $spb34b01 = true; } echo $spb34b01 ? 'SUCCESS' : 'fail'; } else { $spba04f6 = $_REQUEST['outTradeNo']; $sp3e77f9 = array('accessToken' => $this->getAccessToken($spc27de0), 'param' => $spba04f6); $sp4187a7 = CurlRequest::post('http://api.qwebank.top/open/v1/order/getByCustomerNo', json_encode($sp3e77f9, JSON_FORCE_OBJECT), array('Content-Type' => 'application/json')); $sp29a775 = @json_decode($sp4187a7, true); if (!is_array($sp29a775) || !isset($sp29a775['success']) || !isset($sp29a775['value'])) { Log::error('Pay.QweBank.verify.getByCustomerNo Error: ' . $sp4187a7); return false; } $spb34b01 = $sp29a775['value']['done'] === true; } if ($spb34b01) { $spba04f6 = $_REQUEST['outTradeNo']; $sp36f78e = $_REQUEST['money']; $spa1a812 = $_REQUEST['no']; $sp4294a3($spba04f6, $sp36f78e, $spa1a812); return true; } return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/Api.php b/app/Library/Pay/WeChat/Api.php
new file mode 100644
index 000000000..dc2d56a13
--- /dev/null
+++ b/app/Library/Pay/WeChat/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = $sp6956b3; $spd53b1c = strtoupper($spc27de0['payway']); if (strpos(@$_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { $spd53b1c = 'JSAPI'; $sp6cc11c = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://{$_SERVER['HTTP_HOST']}" . '/pay/' . $spba04f6; $spbb3f80 = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $spc27de0['APPID'] . '&redirect_uri=' . urlencode($sp6cc11c) . '&response_type=code&scope=snsapi_base#wechat_redirect'; if (!isset($_GET['code'])) { header('Location: ' . $spbb3f80); die; } $sp064fed = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $spc27de0['APPID'] . '&secret=' . $spc27de0['APPSECRET'] . '&code=' . $_GET['code'] . '&grant_type=authorization_code'; $sp29a775 = @json_decode(CurlRequest::get($sp064fed), true); if (!$sp29a775 || !isset($sp29a775['openid'])) { if (isset($sp29a775['errcode']) && $sp29a775['errcode'] === 40163) { header('Location: ' . $spbb3f80); die; } die('获取微信OPENID 错误信息: ' . (isset($sp29a775['errcode']) ? $sp29a775['errcode'] : $sp29a775) . ' ' . (isset($sp29a775['errmsg']) ? $sp29a775['errmsg'] : $sp29a775) . ' 请返回重试 '); } $sp2a473b = $sp29a775['openid']; } else { if ($spd53b1c === 'JSAPI') { $sp6cc11c = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://{$_SERVER['HTTP_HOST']}" . '/pay/' . $spba04f6; header('Location: /qrcode/pay/' . $spba04f6 . '/wechat?url=' . urlencode($sp6cc11c)); die; } } $this->defineWxConfig($spc27de0); require_once __DIR__ . '/lib/WxPay.Api.php'; require_once 'WxPay.NativePay.php'; require_once 'WxLog.php'; $sp3da441 = new \NativePay(); $spd72f9e = new \WxPayUnifiedOrder(); $spd72f9e->SetBody($sp9f49de); $spd72f9e->SetAttach($spba04f6); $spd72f9e->SetOut_trade_no($spba04f6); $spd72f9e->SetTotal_fee($sp9b2bb6); $spd72f9e->SetTime_start(date('YmdHis')); $spd72f9e->SetTime_expire(date('YmdHis', time() + 600)); $spd72f9e->SetGoods_tag('pay'); $spd72f9e->SetTrade_type($spd53b1c); if ($spd53b1c === 'MWEB') { $spd72f9e->SetScene_info('{"h5_info": {"type":"Wap","wap_url": "' . SYS_URL . '","wap_name": "发卡平台"}}'); } if ($spd53b1c === 'JSAPI') { $spd72f9e->SetOpenid($sp2a473b); } $spd72f9e->SetProduct_id($spba04f6); $spd72f9e->SetSpbill_create_ip(Helper::getIP()); $spd72f9e->SetNotify_url($this->url_notify); $spb34b01 = $sp3da441->unifiedOrder($spd72f9e); function getValue($spba04f6, $spb34b01, $sp7b7024) { if (!isset($spb34b01[$sp7b7024])) { Log::error('Pay.WeChat.goPay, order_no:' . $spba04f6 . ', error:' . json_encode($spb34b01)); if (isset($spb34b01['err_code_des'])) { throw new \Exception($spb34b01['err_code_des']); } if (isset($spb34b01['return_msg'])) { throw new \Exception($spb34b01['return_msg']); } throw new \Exception('获取支付数据失败'); } return $spb34b01[$sp7b7024]; } if ($spd53b1c === 'NATIVE') { $sp3ae187 = getValue($spba04f6, $spb34b01, 'code_url'); header('Location: /qrcode/pay/' . $spba04f6 . '/wechat?url=' . urlencode($sp3ae187)); } elseif ($spd53b1c === 'JSAPI') { $sp3e77f9 = array('appId' => $spc27de0['APPID'], 'timeStamp' => strval(time()), 'nonceStr' => md5(time() . 'nonceStr'), 'package' => 'prepay_id=' . getValue($spba04f6, $spb34b01, 'prepay_id'), 'signType' => 'MD5'); $spcb019a = new \WxPayJsApiPay(); $spcb019a->FromArray($sp3e77f9); $sp3e77f9['paySign'] = $spcb019a->MakeSign(); header('Location: /qrcode/pay/' . $spba04f6 . '/wechat?url=' . urlencode(json_encode($sp3e77f9))); } elseif ($spd53b1c === 'MWEB') { $sp3ae187 = getValue($spba04f6, $spb34b01, 'mweb_url'); $spcc8d68 = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://{$_SERVER['HTTP_HOST']}" . '/qrcode/pay/' . $spba04f6 . '/wechat?url=query'; echo view('utils.redirect', array('url' => $sp3ae187 . '&redirect_url=' . urlencode($spcc8d68))); } die; } private function defineWxConfig($spc27de0) { if (!defined('wx_APPID')) { define('wx_APPID', $spc27de0['APPID']); } if (!defined('wx_MCHID')) { define('wx_MCHID', $spc27de0['MCHID']); } if (!defined('wx_SUBAPPID')) { define('wx_SUBAPPID', @$spc27de0['sub_appid']); } if (!defined('wx_SUBMCHID')) { define('wx_SUBMCHID', @$spc27de0['sub_mch_id']); } if (!defined('wx_KEY')) { define('wx_KEY', $spc27de0['KEY']); } if (!defined('wx_APPSECRET')) { define('wx_APPSECRET', $spc27de0['APPSECRET']); } } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; $this->defineWxConfig($spc27de0); require_once __DIR__ . '/lib/WxPay.Api.php'; require_once 'WxLog.php'; if ($spb2acff) { return (new PayNotifyCallBack($sp4294a3))->Handle(false); } else { $spba04f6 = @$spc27de0['out_trade_no']; $spd72f9e = new \WxPayOrderQuery(); $spd72f9e->SetOut_trade_no($spba04f6); if (isset($spc27de0['sub_mch_id'])) { $spd72f9e->SetSub_mch_id($spba04f6); } try { $spb34b01 = \WxPayApi::orderQuery($spd72f9e); if (array_key_exists('trade_state', $spb34b01) && $spb34b01['trade_state'] == 'SUCCESS') { call_user_func_array($sp4294a3, array($spb34b01['out_trade_no'], $spb34b01['total_fee'], $spb34b01['transaction_id'])); return true; } else { Log::debug('Pay.WeChat.verify, orderQuery failed. ' . json_encode($spb34b01)); return false; } } catch (\Throwable $spece20f) { Log::error('Pay.WeChat.verify, orderQuery exception:. ' . $spece20f->getMessage(), array('exception' => $spece20f)); return false; } } } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/PayNotifyCallBack.php b/app/Library/Pay/WeChat/PayNotifyCallBack.php
new file mode 100644
index 000000000..8202041e6
--- /dev/null
+++ b/app/Library/Pay/WeChat/PayNotifyCallBack.php
@@ -0,0 +1,2 @@
+successCallback = $sp4294a3; } public function QueryOrder($spb4e2d2) { $spd72f9e = new \WxPayOrderQuery(); $spd72f9e->SetTransaction_id($spb4e2d2); $spb34b01 = \WxPayApi::orderQuery($spd72f9e); \WxLog::DEBUG('query:' . json_encode($spb34b01)); if (array_key_exists('return_code', $spb34b01) && array_key_exists('result_code', $spb34b01) && $spb34b01['return_code'] == 'SUCCESS' && $spb34b01['result_code'] == 'SUCCESS') { return true; } return false; } public function NotifyProcess($spcb019a, &$sp2af324) { \WxLog::DEBUG('call back:' . json_encode($spcb019a)); if (!array_key_exists('transaction_id', $spcb019a)) { $sp2af324 = '输入参数不正确'; \WxLog::DEBUG('begin process 输入参数不正确'); return false; } if (!$this->QueryOrder($spcb019a['transaction_id'])) { $sp2af324 = '订单查询失败'; \WxLog::DEBUG('begin process 订单查询失败'); return false; } if ($this->successCallback) { call_user_func_array($this->successCallback, array($spcb019a['out_trade_no'], $spcb019a['total_fee'], $spcb019a['transaction_id'])); } return true; } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/README.md b/app/Library/Pay/WeChat/README.md
new file mode 100644
index 000000000..4b5611ea0
--- /dev/null
+++ b/app/Library/Pay/WeChat/README.md
@@ -0,0 +1,4 @@
+# weixin-pay
+微信H5支付sdk
+在原微信支付sdk基础上加入了H5支付
+H5支付主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。
diff --git a/app/Library/Pay/WeChat/WxLog.php b/app/Library/Pay/WeChat/WxLog.php
new file mode 100644
index 000000000..a27524c5b
--- /dev/null
+++ b/app/Library/Pay/WeChat/WxLog.php
@@ -0,0 +1,2 @@
+ $spcb4459) { if (array_key_exists('file', $spcb4459)) { $sp3381f8 .= ',file:' . $spcb4459['file']; } if (array_key_exists('line', $spcb4459)) { $sp3381f8 .= ',line:' . $spcb4459['line']; } if (array_key_exists('function', $spcb4459)) { $sp3381f8 .= ',function:' . $spcb4459['function']; } } $sp3381f8 .= ']'; \Illuminate\Support\Facades\Log::error($sp3381f8 . $sp2af324); } public static function INFO($sp2af324) { \Illuminate\Support\Facades\Log::info($sp2af324); } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/WxPay.NativePay.php b/app/Library/Pay/WeChat/WxPay.NativePay.php
new file mode 100644
index 000000000..7dde9694f
--- /dev/null
+++ b/app/Library/Pay/WeChat/WxPay.NativePay.php
@@ -0,0 +1,2 @@
+SetProduct_id($sp4ed760); $sp7e4958 = WxpayApi::bizpayurl($sp521e64); $sp3ae187 = 'weixin://wxpay/bizpayurl?' . $this->ToUrlParams($sp7e4958); return $sp3ae187; } private function ToUrlParams($sp5ac09e) { $sp74cad5 = ''; foreach ($sp5ac09e as $spe3274c => $spd7786b) { $sp74cad5 .= $spe3274c . '=' . $spd7786b . '&'; } $sp74cad5 = trim($sp74cad5, '&'); return $sp74cad5; } public function unifiedOrder($spd72f9e) { return WxPayApi::unifiedOrder($spd72f9e); } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/cert/apiclient_cert.pem b/app/Library/Pay/WeChat/cert/apiclient_cert.pem
new file mode 100644
index 000000000..a2b2bde2c
--- /dev/null
+++ b/app/Library/Pay/WeChat/cert/apiclient_cert.pem
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEdjCCA9+gAwIBAgICdTcwDQYJKoZIhvcNAQEFBQAwgYoxCzAJBgNVBAYTAkNO
+MRIwEAYDVQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQK
+EwdUZW5jZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAd
+BgkqhkiG9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnQwHhcNMTQxMjExMTE0ODA1WhcN
+MjQxMjA4MTE0ODA1WjCBpzELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1YW5nZG9u
+ZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDjAMBgNVBAsT
+BU1NUGF5MTwwOgYDVQQDFDPkuK3lm73lnLDotKjlpKflrabvvIjmrabmsYnvvInm
+lZnogrLlj5HlsZXln7rph5HkvJoxETAPBgNVBAQTCDEwMDYwMjY4MIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2lfWB/a41ppF+siCZkCVwYyLxRixuOwq
+EcajtHCS0zqCzF4/LHHX9yDZJqETWtPbPX2UYJIaug2/yMT/wzK0kxrDi1LOIqYo
+13wIJ0sntE6Bvb48JTfO6RtjOXD+Xane2pPzkMkpy7MAN+bXCjYWHuQ/4jj2bF8I
+y31j0AcS10kjI6O2athkMSRQ/JNMNyGCiuHe2gbLfbGTeG+3m14gxWcYJMbVxd7j
+SRpb7uh90wHqOVaYpsgd2SXulbXqHvPYUuJZdecn1gAbN1OFnnHyJfovbX5x2TK+
+rBr1xC7JHbvqfNTC9RdGjjCwdV1m7x3UsX61Sljt1fZ0666NzaUwjwIDAQABo4IB
+RjCCAUIwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdIkNFUy1DQSBHZW5lcmF0
+ZSBDZXJ0aWZpY2F0ZSIwHQYDVR0OBBYEFDa6vd5UCEPP9qL20yo0+PsLMKnvMIG/
+BgNVHSMEgbcwgbSAFD4FJvYiYrQVW4jNZH6w1GKn5YZ0oYGQpIGNMIGKMQswCQYD
+VQQGEwJDTjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQ
+MA4GA1UEChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1j
+aENBMR8wHQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50ggkAu1SXK7wA6Fcw
+DgYDVR0PAQH/BAQDAgbAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3
+DQEBBQUAA4GBAEiS/XnCrRXJG2NKJpW/l/7eu1yqi5XAQ3OiTilSQGiD1Pu3uuUy
+141ZGSoRxtsdPelOSfYKhLFHzDoqK82UsviMfUpeZq7vW3ZoTL7bMKgI3GJnGsRk
+4Wb/0JkmQJckhSKqM6FSEWrCFENK7HuPirlaztLhGRcZwXtPXqBLfooa
+-----END CERTIFICATE-----
diff --git a/app/Library/Pay/WeChat/cert/apiclient_key.pem b/app/Library/Pay/WeChat/cert/apiclient_key.pem
new file mode 100644
index 000000000..834a1fb58
--- /dev/null
+++ b/app/Library/Pay/WeChat/cert/apiclient_key.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA2lfWB/a41ppF+siCZkCVwYyLxRixuOwqEcajtHCS0zqCzF4/
+LHHX9yDZJqETWtPbPX2UYJIaug2/yMT/wzK0kxrDi1LOIqYo13wIJ0sntE6Bvb48
+JTfO6RtjOXD+Xane2pPzkMkpy7MAN+bXCjYWHuQ/4jj2bF8Iy31j0AcS10kjI6O2
+athkMSRQ/JNMNyGCiuHe2gbLfbGTeG+3m14gxWcYJMbVxd7jSRpb7uh90wHqOVaY
+psgd2SXulbXqHvPYUuJZdecn1gAbN1OFnnHyJfovbX5x2TK+rBr1xC7JHbvqfNTC
+9RdGjjCwdV1m7x3UsX61Sljt1fZ0666NzaUwjwIDAQABAoIBAQDEATXR0Fn9zGAl
+0Pm+cRv+s/yE4rYoG1lou7kZsjUcCdqBO9naPBhzcLl/Q/nr/2NAwAsC5iW3/7+6
+q54tzMbth4ki+SKzWBYx2tY27/CknBU8EBpODttfx4Y7eoPd8TBtZ4Ou5ebvRbFc
+fY1tTUBuWtg+bIRKpMVwZw/DH5Z6SzUHrDZNCY7h57GVKZVgjeq1upDfvy+fIf+x
+42KW1byhSi2WirD6D547u3pDk9KBxmnPXjJxkDQ5iHRKM1zG3yxTBQ56SHMJ7uw1
+AV9dtGDzO4TQGBLS16gfKVyGdjfkM4zmZDvOXxYB5Rbv0iJuTwEA/SENCkaYnBxv
++byughqBAoGBAPBVmJjM8SS/fkinJ4K9ka9BiWyo8xmi2RIslyx32zuZI3XfzMfn
+2j0URN2IgpPL+4S1rdjYrJ35cbPhN9wIF9J/bb2lsOlno/+9dSbN1nO0nHpmQwKv
++dh+rwdlDaV58p9hdjFXKDd8uv6hfJjpkwsmZubJPXrPGFOF22FhRRojAoGBAOiT
+Ru4GVj414mEvW94J8YaMFwrT7Cb3YjjxL0Xj1zE9OOq+JxEeanhYgf2sTpB4HzOA
+JKsg4F2CAd4G0mgQ47ykzYJneGV6iPydzdnXRloi/LBQI9HWZWjUBUHrMmmiWBVQ
+w7hQvsqx9bDmtMs8HpkEUB84uIAsPi/Tl4WkkMilAoGADLA4Mjj/sjT58dQBXgGs
+I1iObNIuo3fZhgAcqxhY1rirCpoaMaOn/fmH+TovyqXGTadZ2kz2MBDvU9PcIx26
+RD6+CHkq8eeq3OGfwcC0Rb+PU1b6yrWHt0pY60cGhWn+yTNYDhrP4L4REUhtT5Vl
+Uf1hCWYufMFaQ26ZunZsM4kCgYBO/QYP/RL5We+itiTrSlE/MwD4anU/3rD7Sd6W
+TAVf8b0M7Lvz8nKSoOy1LPoZ0tI1+YV6oVXSLD9aGtMHCQVvokEx0tZvEKjJswag
+v55jKpLLhsxDjh8u9SM7+hdLDRoBU0bFqJbD3KDnDdPFWovByFc141u2HFCaibBi
+cTvDCQKBgHCRbP/p9/8CJeFGWGdBIUDhJWLg39HQgSfIdN9qg3CJ7GMwO3MN5leL
+qT2v8GfNfzrnCKyCuV17U82D1MiWAR/LVW9/OwOoQG9l1QYLNhuPoNW72MtCuxtA
+HQD/8706yQZzLwdnDzUTuhQxJJtb1++pnNOBwi4NL0VfuYsO0/t1
+-----END RSA PRIVATE KEY-----
diff --git a/app/Library/Pay/WeChat/index.php b/app/Library/Pay/WeChat/index.php
new file mode 100644
index 000000000..b111b5c23
--- /dev/null
+++ b/app/Library/Pay/WeChat/index.php
@@ -0,0 +1,71 @@
+
+
+
+
+
+ 微信支付样例
+
+
+
+
+
+IsOut_trade_noSet()) { throw new WxPayException('缺少统一支付接口必填参数out_trade_no!'); } else { if (!$sp704f02->IsBodySet()) { throw new WxPayException('缺少统一支付接口必填参数body!'); } else { if (!$sp704f02->IsTotal_feeSet()) { throw new WxPayException('缺少统一支付接口必填参数total_fee!'); } else { if (!$sp704f02->IsTrade_typeSet()) { throw new WxPayException('缺少统一支付接口必填参数trade_type!'); } } } } if ($sp704f02->GetTrade_type() == 'JSAPI' && !$sp704f02->IsOpenidSet()) { throw new WxPayException('统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!'); } if ($sp704f02->GetTrade_type() == 'NATIVE' && !$sp704f02->IsProduct_idSet()) { throw new WxPayException('统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); if (@WxPayConfig::SUBAPPID) { $sp704f02->SetSub_appid(WxPayConfig::SUBAPPID); } if (@WxPayConfig::SUBMCHID) { $sp704f02->SetSub_mch_id(WxPayConfig::SUBMCHID); } $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function orderQuery($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/pay/orderquery'; if (!$sp704f02->IsOut_trade_noSet() && !$sp704f02->IsTransaction_idSet()) { throw new WxPayException('订单查询接口中,out_trade_no、transaction_id至少填一个!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); if (@WxPayConfig::SUBMCHID) { $sp704f02->SetSub_mch_id(WxPayConfig::SUBMCHID); } $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function closeOrder($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/pay/closeorder'; if (!$sp704f02->IsOut_trade_noSet()) { throw new WxPayException('订单查询接口中,out_trade_no必填!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function refund($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/secapi/pay/refund'; if (!$sp704f02->IsOut_trade_noSet() && !$sp704f02->IsTransaction_idSet()) { throw new WxPayException('退款申请接口中,out_trade_no、transaction_id至少填一个!'); } else { if (!$sp704f02->IsOut_refund_noSet()) { throw new WxPayException('退款申请接口中,缺少必填参数out_refund_no!'); } else { if (!$sp704f02->IsTotal_feeSet()) { throw new WxPayException('退款申请接口中,缺少必填参数total_fee!'); } else { if (!$sp704f02->IsRefund_feeSet()) { throw new WxPayException('退款申请接口中,缺少必填参数refund_fee!'); } else { if (!$sp704f02->IsOp_user_idSet()) { throw new WxPayException('退款申请接口中,缺少必填参数op_user_id!'); } } } } } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, true, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function refundQuery($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/pay/refundquery'; if (!$sp704f02->IsOut_refund_noSet() && !$sp704f02->IsOut_trade_noSet() && !$sp704f02->IsTransaction_idSet() && !$sp704f02->IsRefund_idSet()) { throw new WxPayException('退款查询接口中,out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function downloadBill($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/pay/downloadbill'; if (!$sp704f02->IsBill_dateSet()) { throw new WxPayException('对账单接口中,缺少必填参数bill_date!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); if (substr($spad32e6, 0, 5) == '') { return ''; } return $spad32e6; } public static function micropay($sp704f02, $spada703 = 10) { $sp3ae187 = 'https://api.mch.weixin.qq.com/pay/micropay'; if (!$sp704f02->IsBodySet()) { throw new WxPayException('提交被扫支付API接口中,缺少必填参数body!'); } else { if (!$sp704f02->IsOut_trade_noSet()) { throw new WxPayException('提交被扫支付API接口中,缺少必填参数out_trade_no!'); } else { if (!$sp704f02->IsTotal_feeSet()) { throw new WxPayException('提交被扫支付API接口中,缺少必填参数total_fee!'); } else { if (!$sp704f02->IsAuth_codeSet()) { throw new WxPayException('提交被扫支付API接口中,缺少必填参数auth_code!'); } } } } $sp704f02->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']); $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function reverse($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/secapi/pay/reverse'; if (!$sp704f02->IsOut_trade_noSet() && !$sp704f02->IsTransaction_idSet()) { throw new WxPayException('撤销订单API接口中,参数out_trade_no和transaction_id必须填写一个!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, true, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function report($sp704f02, $spada703 = 1) { $sp3ae187 = 'https://api.mch.weixin.qq.com/payitil/report'; if (!$sp704f02->IsInterface_urlSet()) { throw new WxPayException('接口URL,缺少必填参数interface_url!'); } if (!$sp704f02->IsReturn_codeSet()) { throw new WxPayException('返回状态码,缺少必填参数return_code!'); } if (!$sp704f02->IsResult_codeSet()) { throw new WxPayException('业务结果,缺少必填参数result_code!'); } if (!$sp704f02->IsUser_ipSet()) { throw new WxPayException('访问接口IP,缺少必填参数user_ip!'); } if (!$sp704f02->IsExecute_time_Set()) { throw new WxPayException('接口耗时,缺少必填参数execute_time_!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetUser_ip($_SERVER['REMOTE_ADDR']); $sp704f02->SetTime(date('YmdHis')); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); return $spad32e6; } public static function bizpayurl($sp704f02, $spada703 = 6) { if (!$sp704f02->IsProduct_idSet()) { throw new WxPayException('生成二维码,缺少必填参数product_id!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetTime_stamp(time()); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); return $sp704f02->GetValues(); } public static function shorturl($sp704f02, $spada703 = 6) { $sp3ae187 = 'https://api.mch.weixin.qq.com/tools/shorturl'; if (!$sp704f02->IsLong_urlSet()) { throw new WxPayException('需要转换的URL,签名用原串,传输需URL encode!'); } $sp704f02->SetAppid(WxPayConfig::APPID); $sp704f02->SetMch_id(WxPayConfig::MCHID); $sp704f02->SetNonce_str(self::getNonceStr()); $sp704f02->SetSign(); $spbbfd2d = $sp704f02->ToXml(); $sp1d20db = self::getMillisecond(); $spad32e6 = self::postXmlCurl($spbbfd2d, $sp3ae187, false, $spada703); $spb34b01 = WxPayResults::Init($spad32e6); self::reportCostTime($sp3ae187, $sp1d20db, $spb34b01); return $spb34b01; } public static function notify($sp23e433, &$sp2af324) { $spbbfd2d = file_get_contents('php://input'); try { $spb34b01 = WxPayResults::Init($spbbfd2d); } catch (WxPayException $spece20f) { $sp2af324 = $spece20f->errorMessage(); return false; } return call_user_func($sp23e433, $spb34b01); } public static function getNonceStr($sp5e0ffd = 32) { $sp65efa9 = 'abcdefghijklmnopqrstuvwxyz0123456789'; $sp3868ff = ''; for ($spb75665 = 0; $spb75665 < $sp5e0ffd; $spb75665++) { $sp3868ff .= substr($sp65efa9, mt_rand(0, strlen($sp65efa9) - 1), 1); } return $sp3868ff; } public static function replyNotify($spbbfd2d) { echo $spbbfd2d; } private static function reportCostTime($sp3ae187, $sp1d20db, $spcb019a) { if (WxPayConfig::REPORT_LEVENL == 0) { return; } if (WxPayConfig::REPORT_LEVENL == 1 && array_key_exists('return_code', $spcb019a) && $spcb019a['return_code'] == 'SUCCESS' && array_key_exists('result_code', $spcb019a) && $spcb019a['result_code'] == 'SUCCESS') { return; } $sp70e728 = self::getMillisecond(); $sp07cdbd = new WxPayReport(); $sp07cdbd->SetInterface_url($sp3ae187); $sp07cdbd->SetExecute_time_($sp70e728 - $sp1d20db); if (array_key_exists('return_code', $spcb019a)) { $sp07cdbd->SetReturn_code($spcb019a['return_code']); } if (array_key_exists('return_msg', $spcb019a)) { $sp07cdbd->SetReturn_msg($spcb019a['return_msg']); } if (array_key_exists('result_code', $spcb019a)) { $sp07cdbd->SetResult_code($spcb019a['result_code']); } if (array_key_exists('err_code', $spcb019a)) { $sp07cdbd->SetErr_code($spcb019a['err_code']); } if (array_key_exists('err_code_des', $spcb019a)) { $sp07cdbd->SetErr_code_des($spcb019a['err_code_des']); } if (array_key_exists('out_trade_no', $spcb019a)) { $sp07cdbd->SetOut_trade_no($spcb019a['out_trade_no']); } if (array_key_exists('device_info', $spcb019a)) { $sp07cdbd->SetDevice_info($spcb019a['device_info']); } try { self::report($sp07cdbd); } catch (WxPayException $spece20f) { } } private static function postXmlCurl($spbbfd2d, $sp3ae187, $sp5e6544 = false, $spac02f4 = 30) { $sp4e752c = curl_init(); curl_setopt($sp4e752c, CURLOPT_TIMEOUT, $spac02f4); if (WxPayConfig::CURL_PROXY_HOST != '0.0.0.0' && WxPayConfig::CURL_PROXY_PORT != 0) { curl_setopt($sp4e752c, CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST); curl_setopt($sp4e752c, CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT); } curl_setopt($sp4e752c, CURLOPT_URL, $sp3ae187); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($sp4e752c, CURLOPT_HEADER, FALSE); curl_setopt($sp4e752c, CURLOPT_RETURNTRANSFER, TRUE); if ($sp5e6544 == true) { curl_setopt($sp4e752c, CURLOPT_SSLCERTTYPE, 'PEM'); curl_setopt($sp4e752c, CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH); curl_setopt($sp4e752c, CURLOPT_SSLKEYTYPE, 'PEM'); curl_setopt($sp4e752c, CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH); } else { curl_setopt($sp4e752c, CURLOPT_SSL_VERIFYPEER, false); } curl_setopt($sp4e752c, CURLOPT_POST, TRUE); curl_setopt($sp4e752c, CURLOPT_POSTFIELDS, $spbbfd2d); $spcb019a = curl_exec($sp4e752c); if ($spcb019a) { curl_close($sp4e752c); return $spcb019a; } else { $sp095a96 = curl_errno($sp4e752c); \WxLog::error('WxPat.Api.postXmlCurl Error: ' . curl_error($sp4e752c)); curl_close($sp4e752c); throw new WxPayException("curl出错,错误码: {$sp095a96}"); } } private static function getMillisecond() { $spc2ab8d = explode(' ', microtime()); $spc2ab8d = $spc2ab8d[1] . $spc2ab8d[0] * 1000; $spda8686 = explode('.', $spc2ab8d); $spc2ab8d = $spda8686[0]; return $spc2ab8d; } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/lib/WxPay.Config.php b/app/Library/Pay/WeChat/lib/WxPay.Config.php
new file mode 100644
index 000000000..f75deb6f7
--- /dev/null
+++ b/app/Library/Pay/WeChat/lib/WxPay.Config.php
@@ -0,0 +1,2 @@
+MakeSign(); $this->values['sign'] = $sp75e4cc; return $sp75e4cc; } public function GetSign() { return $this->values['sign']; } public function IsSignSet() { return array_key_exists('sign', $this->values); } public function ToXml() { if (!is_array($this->values) || count($this->values) <= 0) { throw new WxPayException('数组数据异常!'); } $spbbfd2d = ''; foreach ($this->values as $sp7b7024 => $spcb4459) { if (is_numeric($spcb4459)) { $spbbfd2d .= '<' . $sp7b7024 . '>' . $spcb4459 . '' . $sp7b7024 . '>'; } else { $spbbfd2d .= '<' . $sp7b7024 . '>' . $sp7b7024 . '>'; } } $spbbfd2d .= ' '; return $spbbfd2d; } public function FromXml($spbbfd2d) { if (!$spbbfd2d) { throw new WxPayException('xml数据异常!'); } libxml_disable_entity_loader(true); $this->values = json_decode(json_encode(simplexml_load_string($spbbfd2d, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $this->values; } public function ToUrlParams() { $sp74cad5 = ''; foreach ($this->values as $spe3274c => $spd7786b) { if ($spe3274c != 'sign' && $spd7786b != '' && !is_array($spd7786b)) { $sp74cad5 .= $spe3274c . '=' . $spd7786b . '&'; } } $sp74cad5 = trim($sp74cad5, '&'); return $sp74cad5; } public function MakeSign() { ksort($this->values); $spd6e61f = $this->ToUrlParams(); $spd6e61f = $spd6e61f . '&key=' . WxPayConfig::KEY; $spd6e61f = md5($spd6e61f); $spb34b01 = strtoupper($spd6e61f); return $spb34b01; } public function GetValues() { return $this->values; } } class WxPayResults extends WxPayDataBase { public function CheckSign() { if (!$this->IsSignSet()) { throw new WxPayException('签名错误!'); } $sp75e4cc = $this->MakeSign(); if ($this->GetSign() == $sp75e4cc) { return true; } throw new WxPayException('签名错误!'); } public function FromArray($sp2550dd) { $this->values = $sp2550dd; } public static function InitFromArray($sp2550dd, $sp324e06 = false) { $spc714f2 = new self(); $spc714f2->FromArray($sp2550dd); if ($sp324e06 == false) { $spc714f2->CheckSign(); } return $spc714f2; } public function SetData($sp7b7024, $spc82d84) { $this->values[$sp7b7024] = $spc82d84; } public static function Init($spbbfd2d) { $spc714f2 = new self(); $spc714f2->FromXml($spbbfd2d); if ($spc714f2->values['return_code'] != 'SUCCESS') { return $spc714f2->GetValues(); } $spc714f2->CheckSign(); return $spc714f2->GetValues(); } } class WxPayNotifyReply extends WxPayDataBase { public function SetReturn_code($spc422a1) { $this->values['return_code'] = $spc422a1; } public function GetReturn_code() { return $this->values['return_code']; } public function SetReturn_msg($spe6eb87) { $this->values['return_msg'] = $spe6eb87; } public function GetReturn_msg() { return $this->values['return_msg']; } public function SetData($sp7b7024, $spc82d84) { $this->values[$sp7b7024] = $spc82d84; } } class WxPayUnifiedOrder extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function SetSub_appid($spc82d84) { $this->values['sub_appid'] = $spc82d84; } public function GetSub_appid() { return $this->values['sub_appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetSub_mch_id($spc82d84) { $this->values['sub_mch_id'] = $spc82d84; } public function GetSub_mch_id() { return $this->values['sub_mch_id']; } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetBody($spc82d84) { $this->values['body'] = $spc82d84; } public function GetBody() { return $this->values['body']; } public function IsBodySet() { return array_key_exists('body', $this->values); } public function SetDetail($spc82d84) { $this->values['detail'] = $spc82d84; } public function GetDetail() { return $this->values['detail']; } public function IsDetailSet() { return array_key_exists('detail', $this->values); } public function SetAttach($spc82d84) { $this->values['attach'] = $spc82d84; } public function GetAttach() { return $this->values['attach']; } public function IsAttachSet() { return array_key_exists('attach', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetFee_type($spc82d84) { $this->values['fee_type'] = $spc82d84; } public function GetFee_type() { return $this->values['fee_type']; } public function IsFee_typeSet() { return array_key_exists('fee_type', $this->values); } public function SetTotal_fee($spc82d84) { $this->values['total_fee'] = $spc82d84; } public function GetTotal_fee() { return $this->values['total_fee']; } public function IsTotal_feeSet() { return array_key_exists('total_fee', $this->values); } public function SetSpbill_create_ip($spc82d84) { $this->values['spbill_create_ip'] = $spc82d84; } public function GetSpbill_create_ip() { return $this->values['spbill_create_ip']; } public function IsSpbill_create_ipSet() { return array_key_exists('spbill_create_ip', $this->values); } public function SetTime_start($spc82d84) { $this->values['time_start'] = $spc82d84; } public function GetTime_start() { return $this->values['time_start']; } public function IsTime_startSet() { return array_key_exists('time_start', $this->values); } public function SetTime_expire($spc82d84) { $this->values['time_expire'] = $spc82d84; } public function GetTime_expire() { return $this->values['time_expire']; } public function IsTime_expireSet() { return array_key_exists('time_expire', $this->values); } public function SetGoods_tag($spc82d84) { $this->values['goods_tag'] = $spc82d84; } public function GetGoods_tag() { return $this->values['goods_tag']; } public function IsGoods_tagSet() { return array_key_exists('goods_tag', $this->values); } public function SetNotify_url($spc82d84) { $this->values['notify_url'] = $spc82d84; } public function GetNotify_url() { return $this->values['notify_url']; } public function SetTrade_type($spc82d84) { $this->values['trade_type'] = $spc82d84; } public function GetTrade_type() { return $this->values['trade_type']; } public function IsTrade_typeSet() { return array_key_exists('trade_type', $this->values); } public function SetProduct_id($spc82d84) { $this->values['product_id'] = $spc82d84; } public function GetProduct_id() { return $this->values['product_id']; } public function IsProduct_idSet() { return array_key_exists('product_id', $this->values); } public function SetOpenid($spc82d84) { $this->values['openid'] = $spc82d84; } public function GetOpenid() { return $this->values['openid']; } public function IsOpenidSet() { return array_key_exists('openid', $this->values); } public function SetScene_info($spc82d84) { $this->values['scene_info'] = $spc82d84; } public function IsScene_info() { return array_key_exists('scene_info', $this->values); } } class WxPayOrderQuery extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetSub_mch_id($spc82d84) { $this->values['sub_mch_id'] = $spc82d84; } public function GetSub_mch_id() { return $this->values['sub_mch_id']; } public function SetTransaction_id($spc82d84) { $this->values['transaction_id'] = $spc82d84; } public function GetTransaction_id() { return $this->values['transaction_id']; } public function IsTransaction_idSet() { return array_key_exists('transaction_id', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } } class WxPayCloseOrder extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } } class WxPayRefund extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetTransaction_id($spc82d84) { $this->values['transaction_id'] = $spc82d84; } public function GetTransaction_id() { return $this->values['transaction_id']; } public function IsTransaction_idSet() { return array_key_exists('transaction_id', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetOut_refund_no($spc82d84) { $this->values['out_refund_no'] = $spc82d84; } public function GetOut_refund_no() { return $this->values['out_refund_no']; } public function IsOut_refund_noSet() { return array_key_exists('out_refund_no', $this->values); } public function SetTotal_fee($spc82d84) { $this->values['total_fee'] = $spc82d84; } public function GetTotal_fee() { return $this->values['total_fee']; } public function IsTotal_feeSet() { return array_key_exists('total_fee', $this->values); } public function SetRefund_fee($spc82d84) { $this->values['refund_fee'] = $spc82d84; } public function GetRefund_fee() { return $this->values['refund_fee']; } public function IsRefund_feeSet() { return array_key_exists('refund_fee', $this->values); } public function SetRefund_fee_type($spc82d84) { $this->values['refund_fee_type'] = $spc82d84; } public function GetRefund_fee_type() { return $this->values['refund_fee_type']; } public function IsRefund_fee_typeSet() { return array_key_exists('refund_fee_type', $this->values); } public function SetOp_user_id($spc82d84) { $this->values['op_user_id'] = $spc82d84; } public function GetOp_user_id() { return $this->values['op_user_id']; } public function IsOp_user_idSet() { return array_key_exists('op_user_id', $this->values); } } class WxPayRefundQuery extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetTransaction_id($spc82d84) { $this->values['transaction_id'] = $spc82d84; } public function GetTransaction_id() { return $this->values['transaction_id']; } public function IsTransaction_idSet() { return array_key_exists('transaction_id', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetOut_refund_no($spc82d84) { $this->values['out_refund_no'] = $spc82d84; } public function GetOut_refund_no() { return $this->values['out_refund_no']; } public function IsOut_refund_noSet() { return array_key_exists('out_refund_no', $this->values); } public function SetRefund_id($spc82d84) { $this->values['refund_id'] = $spc82d84; } public function GetRefund_id() { return $this->values['refund_id']; } public function IsRefund_idSet() { return array_key_exists('refund_id', $this->values); } } class WxPayDownloadBill extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetBill_date($spc82d84) { $this->values['bill_date'] = $spc82d84; } public function GetBill_date() { return $this->values['bill_date']; } public function IsBill_dateSet() { return array_key_exists('bill_date', $this->values); } public function SetBill_type($spc82d84) { $this->values['bill_type'] = $spc82d84; } public function GetBill_type() { return $this->values['bill_type']; } public function IsBill_typeSet() { return array_key_exists('bill_type', $this->values); } } class WxPayReport extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetInterface_url($spc82d84) { $this->values['interface_url'] = $spc82d84; } public function GetInterface_url() { return $this->values['interface_url']; } public function IsInterface_urlSet() { return array_key_exists('interface_url', $this->values); } public function SetExecute_time_($spc82d84) { $this->values['execute_time_'] = $spc82d84; } public function GetExecute_time_() { return $this->values['execute_time_']; } public function IsExecute_time_Set() { return array_key_exists('execute_time_', $this->values); } public function SetReturn_code($spc82d84) { $this->values['return_code'] = $spc82d84; } public function GetReturn_code() { return $this->values['return_code']; } public function IsReturn_codeSet() { return array_key_exists('return_code', $this->values); } public function SetReturn_msg($spc82d84) { $this->values['return_msg'] = $spc82d84; } public function GetReturn_msg() { return $this->values['return_msg']; } public function IsReturn_msgSet() { return array_key_exists('return_msg', $this->values); } public function SetResult_code($spc82d84) { $this->values['result_code'] = $spc82d84; } public function GetResult_code() { return $this->values['result_code']; } public function IsResult_codeSet() { return array_key_exists('result_code', $this->values); } public function SetErr_code($spc82d84) { $this->values['err_code'] = $spc82d84; } public function GetErr_code() { return $this->values['err_code']; } public function IsErr_codeSet() { return array_key_exists('err_code', $this->values); } public function SetErr_code_des($spc82d84) { $this->values['err_code_des'] = $spc82d84; } public function GetErr_code_des() { return $this->values['err_code_des']; } public function IsErr_code_desSet() { return array_key_exists('err_code_des', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetUser_ip($spc82d84) { $this->values['user_ip'] = $spc82d84; } public function GetUser_ip() { return $this->values['user_ip']; } public function IsUser_ipSet() { return array_key_exists('user_ip', $this->values); } public function SetTime($spc82d84) { $this->values['time'] = $spc82d84; } public function GetTime() { return $this->values['time']; } public function IsTimeSet() { return array_key_exists('time', $this->values); } } class WxPayShortUrl extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetLong_url($spc82d84) { $this->values['long_url'] = $spc82d84; } public function GetLong_url() { return $this->values['long_url']; } public function IsLong_urlSet() { return array_key_exists('long_url', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } } class WxPayMicroPay extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetDevice_info($spc82d84) { $this->values['device_info'] = $spc82d84; } public function GetDevice_info() { return $this->values['device_info']; } public function IsDevice_infoSet() { return array_key_exists('device_info', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetBody($spc82d84) { $this->values['body'] = $spc82d84; } public function GetBody() { return $this->values['body']; } public function IsBodySet() { return array_key_exists('body', $this->values); } public function SetDetail($spc82d84) { $this->values['detail'] = $spc82d84; } public function GetDetail() { return $this->values['detail']; } public function IsDetailSet() { return array_key_exists('detail', $this->values); } public function SetAttach($spc82d84) { $this->values['attach'] = $spc82d84; } public function GetAttach() { return $this->values['attach']; } public function IsAttachSet() { return array_key_exists('attach', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetTotal_fee($spc82d84) { $this->values['total_fee'] = $spc82d84; } public function GetTotal_fee() { return $this->values['total_fee']; } public function IsTotal_feeSet() { return array_key_exists('total_fee', $this->values); } public function SetFee_type($spc82d84) { $this->values['fee_type'] = $spc82d84; } public function GetFee_type() { return $this->values['fee_type']; } public function IsFee_typeSet() { return array_key_exists('fee_type', $this->values); } public function SetSpbill_create_ip($spc82d84) { $this->values['spbill_create_ip'] = $spc82d84; } public function GetSpbill_create_ip() { return $this->values['spbill_create_ip']; } public function IsSpbill_create_ipSet() { return array_key_exists('spbill_create_ip', $this->values); } public function SetTime_start($spc82d84) { $this->values['time_start'] = $spc82d84; } public function GetTime_start() { return $this->values['time_start']; } public function IsTime_startSet() { return array_key_exists('time_start', $this->values); } public function SetTime_expire($spc82d84) { $this->values['time_expire'] = $spc82d84; } public function GetTime_expire() { return $this->values['time_expire']; } public function IsTime_expireSet() { return array_key_exists('time_expire', $this->values); } public function SetGoods_tag($spc82d84) { $this->values['goods_tag'] = $spc82d84; } public function GetGoods_tag() { return $this->values['goods_tag']; } public function IsGoods_tagSet() { return array_key_exists('goods_tag', $this->values); } public function SetAuth_code($spc82d84) { $this->values['auth_code'] = $spc82d84; } public function GetAuth_code() { return $this->values['auth_code']; } public function IsAuth_codeSet() { return array_key_exists('auth_code', $this->values); } } class WxPayReverse extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetTransaction_id($spc82d84) { $this->values['transaction_id'] = $spc82d84; } public function GetTransaction_id() { return $this->values['transaction_id']; } public function IsTransaction_idSet() { return array_key_exists('transaction_id', $this->values); } public function SetOut_trade_no($spc82d84) { $this->values['out_trade_no'] = $spc82d84; } public function GetOut_trade_no() { return $this->values['out_trade_no']; } public function IsOut_trade_noSet() { return array_key_exists('out_trade_no', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } } class WxPayJsApiPay extends WxPayDataBase { public function FromArray($sp2550dd) { $this->values = $sp2550dd; } public function SetAppid($spc82d84) { $this->values['appId'] = $spc82d84; } public function GetAppid() { return $this->values['appId']; } public function IsAppidSet() { return array_key_exists('appId', $this->values); } public function SetTimeStamp($spc82d84) { $this->values['timeStamp'] = $spc82d84; } public function GetTimeStamp() { return $this->values['timeStamp']; } public function IsTimeStampSet() { return array_key_exists('timeStamp', $this->values); } public function SetNonceStr($spc82d84) { $this->values['nonceStr'] = $spc82d84; } public function GetReturn_code() { return $this->values['nonceStr']; } public function IsReturn_codeSet() { return array_key_exists('nonceStr', $this->values); } public function SetPackage($spc82d84) { $this->values['package'] = $spc82d84; } public function GetPackage() { return $this->values['package']; } public function IsPackageSet() { return array_key_exists('package', $this->values); } public function SetSignType($spc82d84) { $this->values['signType'] = $spc82d84; } public function GetSignType() { return $this->values['signType']; } public function IsSignTypeSet() { return array_key_exists('signType', $this->values); } public function SetPaySign($spc82d84) { $this->values['paySign'] = $spc82d84; } public function GetPaySign() { return $this->values['paySign']; } public function IsPaySignSet() { return array_key_exists('paySign', $this->values); } } class WxPayBizPayUrl extends WxPayDataBase { public function SetAppid($spc82d84) { $this->values['appid'] = $spc82d84; } public function GetAppid() { return $this->values['appid']; } public function IsAppidSet() { return array_key_exists('appid', $this->values); } public function SetMch_id($spc82d84) { $this->values['mch_id'] = $spc82d84; } public function GetMch_id() { return $this->values['mch_id']; } public function IsMch_idSet() { return array_key_exists('mch_id', $this->values); } public function SetTime_stamp($spc82d84) { $this->values['time_stamp'] = $spc82d84; } public function GetTime_stamp() { return $this->values['time_stamp']; } public function IsTime_stampSet() { return array_key_exists('time_stamp', $this->values); } public function SetNonce_str($spc82d84) { $this->values['nonce_str'] = $spc82d84; } public function GetNonce_str() { return $this->values['nonce_str']; } public function IsNonce_strSet() { return array_key_exists('nonce_str', $this->values); } public function SetProduct_id($spc82d84) { $this->values['product_id'] = $spc82d84; } public function GetProduct_id() { return $this->values['product_id']; } public function IsProduct_idSet() { return array_key_exists('product_id', $this->values); } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/lib/WxPay.Exception.php b/app/Library/Pay/WeChat/lib/WxPay.Exception.php
new file mode 100644
index 000000000..58b97e3df
--- /dev/null
+++ b/app/Library/Pay/WeChat/lib/WxPay.Exception.php
@@ -0,0 +1,2 @@
+getMessage(); } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/lib/WxPay.Notify.php b/app/Library/Pay/WeChat/lib/WxPay.Notify.php
new file mode 100644
index 000000000..bf8527439
--- /dev/null
+++ b/app/Library/Pay/WeChat/lib/WxPay.Notify.php
@@ -0,0 +1,2 @@
+SetReturn_code('FAIL'); $this->SetReturn_msg($sp2af324); $this->ReplyNotify(false); return; } else { $this->SetReturn_code('SUCCESS'); $this->SetReturn_msg('OK'); } $this->ReplyNotify($sp84d80a); } public function NotifyProcess($spcb019a, &$sp2af324) { return true; } public final function NotifyCallBack($spcb019a) { $sp2af324 = 'OK'; $spb34b01 = $this->NotifyProcess($spcb019a, $sp2af324); if ($spb34b01 == true) { $this->SetReturn_code('SUCCESS'); $this->SetReturn_msg('OK'); } else { $this->SetReturn_code('FAIL'); $this->SetReturn_msg($sp2af324); } return $spb34b01; } private final function ReplyNotify($sp84d80a = true) { if ($sp84d80a == true && $this->GetReturn_code() == 'SUCCESS') { $this->SetSign(); } WxpayApi::replyNotify($this->ToXml()); } }
\ No newline at end of file
diff --git a/app/Library/Pay/WeChat/logs/.gitignore b/app/Library/Pay/WeChat/logs/.gitignore
new file mode 100644
index 000000000..d6b7ef32c
--- /dev/null
+++ b/app/Library/Pay/WeChat/logs/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/app/Library/Pay/Yeke/Api.php b/app/Library/Pay/Yeke/Api.php
new file mode 100644
index 000000000..8323e7f32
--- /dev/null
+++ b/app/Library/Pay/Yeke/Api.php
@@ -0,0 +1,2 @@
+url_notify = SYS_URL_API . '/pay/notify/' . $spe00284; $this->url_return = SYS_URL . '/pay/return/' . $spe00284; } function goPay($spc27de0, $spba04f6, $sp9f49de, $sp224c81, $sp6956b3) { $sp9b2bb6 = sprintf('%.2f', $sp6956b3 / 100); define('yeke_USER_ID', $spc27de0['id']); define('yeke_USER_KEY', $spc27de0['key']); define('yeke_USER_LOG_PREFIX', 'log'); define('yeke_API_GATE', 'http://www.yekepay.com/api/ApiGo.php'); $spef6530 = strtolower($spc27de0['payway']); $spaaed5c = ''; $sp3b9596 = ''; if ($spef6530 == 'alipay' || $spef6530 == 'alipay_wap') { $spaaed5c = 'alipay'; $sp3b9596 = 'ALIPAY'; } elseif ($spef6530 == 'tenpay' || $spef6530 == 'tenpay_wap') { $spaaed5c = 'tenpay'; $sp3b9596 = 'TENPAY'; } elseif ($spef6530 == 'weixin') { $spaaed5c = 'weixin'; $sp3b9596 = 'WEIXIN'; } elseif ($spef6530 == 'weixin_wap') { $spaaed5c = 'wxwap'; $sp3b9596 = 'wxwap'; } elseif ($spef6530 == 'qq' || $spef6530 == 'qq_wap') { $spaaed5c = 'sqzf'; $sp3b9596 = 'sqzf'; } elseif ($spef6530 == 'qq_wap') { $spaaed5c = 'sqzfqb'; $sp3b9596 = 'sqzfqb'; } require 'yekeApiLib.php'; require 'HttpClient.php'; $sp9f49de = mb_substr($sp9f49de, 0, 50, 'UTF-8'); $sp224c81 = mb_substr($sp224c81, 0, 100, 'UTF-8'); $sp3e77f9 = array('P_orderid' => $spba04f6, 'P_paymoney' => $sp9b2bb6, 'P_productname' => urlencode($sp9f49de), 'P_productinfo' => urlencode($sp224c81), 'P_remark' => urlencode($spba04f6), 'P_custom_1' => urlencode($sp3b9596), 'P_custom_2' => '', 'P_contact' => urlencode(SYS_NAME), 'P_paytype' => $spaaed5c, 'P_gateway' => $sp3b9596, 'P_cardnum' => '', 'P_cardpwd' => '', 'P_cardvalue' => '', 'P_notify_url' => $this->url_notify, 'P_return_url' => $this->url_return . '/' . $spba04f6); $sp8c29a5 = new \yekeAPI(); $spb34b01 = $sp8c29a5->payGate($sp3e77f9); echo $spb34b01; } function verify($spc27de0, $sp4294a3) { $spb2acff = isset($spc27de0['isNotify']) && $spc27de0['isNotify']; define('yeke_USER_ID', $spc27de0['id']); define('yeke_USER_KEY', $spc27de0['key']); define('yeke_USER_LOG_PREFIX', 'log'); define('yeke_API_GATE', 'http://www.yekepay.com/api/ApiGo.php'); require 'HttpClient.php'; require 'yekeApiLib.php'; $sp8c29a5 = new \yekeAPI(); if ($spb2acff) { $spb34b01 = $sp8c29a5->verifyNotify(); } else { $spb34b01 = $sp8c29a5->verifyReturn(); } if ($spb34b01) { $sp0a0b0b = $_REQUEST['P_orderid']; $sp15bf53 = $_REQUEST['P_api_orderid']; $spebb578 = $_REQUEST['P_money']; if ($_REQUEST['P_status'] == 'SUCCESS') { $sp4294a3($sp15bf53, (int) round($spebb578 * 100), $sp0a0b0b); if ($spb2acff) { echo 'success'; } return true; } else { if ($spb2acff) { echo '失败订单'; } } } else { if ($spb2acff) { echo '验证失败'; } } return false; } }
\ No newline at end of file
diff --git a/app/Library/Pay/Yeke/HttpClient.php b/app/Library/Pay/Yeke/HttpClient.php
new file mode 100644
index 000000000..ec152d326
--- /dev/null
+++ b/app/Library/Pay/Yeke/HttpClient.php
@@ -0,0 +1,5 @@
+host = $spc7dc40; $this->port = $sp79d3bb; } function get($spd55287, $spcb019a = false) { $this->path = $spd55287; $this->method = 'GET'; if ($spcb019a) { $this->path .= '?' . $this->buildQueryString($spcb019a); } return $this->doRequest(); } function post($spd55287, $spcb019a) { $this->path = $spd55287; $this->method = 'POST'; $this->postdata = $this->buildQueryString($spcb019a); return $this->doRequest(); } function buildQueryString($spcb019a) { $spa4b026 = ''; if (is_array($spcb019a)) { foreach ($spcb019a as $sp7b7024 => $spcb4459) { if (is_array($spcb4459)) { foreach ($spcb4459 as $spdc9e6e) { $spa4b026 .= urlencode($sp7b7024) . '=' . $spdc9e6e . '&'; } } else { $spa4b026 .= urlencode($sp7b7024) . '=' . $spcb4459 . '&'; } } $spa4b026 = substr($spa4b026, 0, -1); } else { $spa4b026 = $spcb019a; } return $spa4b026; } function doRequest() { if (!($sp82a428 = @fsockopen($this->host, $this->port, $sp549b3e, $sp7cc893, $this->timeout))) { switch ($sp549b3e) { case -3: $this->errormsg = 'Socket creation failed (-3)'; break; case -4: $this->errormsg = 'DNS lookup failure (-4)'; break; case -5: $this->errormsg = 'Connection refused or timed out (-5)'; break; default: $this->errormsg = 'Connection failed (' . $sp549b3e . ')'; $this->errormsg .= ' ' . $sp7cc893; $this->debug($this->errormsg); } return false; } socket_set_timeout($sp82a428, $this->timeout); $spd5cc4d = $this->buildRequest(); $this->debug('Request', $spd5cc4d); fwrite($sp82a428, $spd5cc4d); $this->headers = array(); $this->content = ''; $this->errormsg = ''; $sp81fe4d = true; $sp3707d3 = true; while (!feof($sp82a428)) { $spa4e3ce = fgets($sp82a428, 4096); if ($sp3707d3) { $sp3707d3 = false; if (!preg_match('/HTTP\\/(\\d\\.\\d)\\s*(\\d+)\\s*(.*)/', $spa4e3ce, $spf936b9)) { $this->errormsg = 'Status code line invalid: ' . htmlentities($spa4e3ce); $this->debug($this->errormsg); return false; } $this->status = $spf936b9[2]; $this->debug(trim($spa4e3ce)); continue; } if ($sp81fe4d) { if (trim($spa4e3ce) == '') { $sp81fe4d = false; $this->debug('Received Headers', $this->headers); if ($this->headers_only) { break; } continue; } if (!preg_match('/([^:]+):\\s*(.*)/', $spa4e3ce, $spf936b9)) { continue; } $sp7b7024 = strtolower(trim($spf936b9[1])); $spcb4459 = trim($spf936b9[2]); if (isset($this->headers[$sp7b7024])) { if (is_array($this->headers[$sp7b7024])) { $this->headers[$sp7b7024][] = $spcb4459; } else { $this->headers[$sp7b7024] = array($this->headers[$sp7b7024], $spcb4459); } } else { $this->headers[$sp7b7024] = $spcb4459; } continue; } $this->content .= $spa4e3ce; } fclose($sp82a428); if (isset($this->headers['content-encoding']) && $this->headers['content-encoding'] == 'gzip') { $this->debug('Content is gzip encoded, unzipping it'); $this->content = substr($this->content, 10); $this->content = gzinflate($this->content); } if ($this->persist_cookies && isset($this->headers['set-cookie']) && $this->host == $this->cookie_host) { $sp116ad3 = $this->headers['set-cookie']; if (!is_array($sp116ad3)) { $sp116ad3 = array($sp116ad3); } foreach ($sp116ad3 as $spc6c8e8) { if (preg_match('/([^=]+)=([^;]+);/', $spc6c8e8, $spf936b9)) { $this->cookies[$spf936b9[1]] = $spf936b9[2]; } } $this->cookie_host = $this->host; } if ($this->persist_referers) { $this->debug('Persisting referer: ' . $this->getRequestURL()); $this->referer = $this->getRequestURL(); } if ($this->handle_redirects) { if (++$this->redirect_count >= $this->max_redirects) { $this->errormsg = 'Number of redirects exceeded maximum (' . $this->max_redirects . ')'; $this->debug($this->errormsg); $this->redirect_count = 0; return false; } $spc56e3b = isset($this->headers['location']) ? $this->headers['location'] : ''; $spd6606f = isset($this->headers['uri']) ? $this->headers['uri'] : ''; if ($spc56e3b || $spd6606f) { $sp3ae187 = parse_url($spc56e3b . $spd6606f); return $this->get($sp3ae187['path']); } } return true; } function buildRequest() { $spdf7b97 = array(); $spdf7b97[] = "{$this->method} {$this->path} HTTP/1.0"; $spdf7b97[] = "Host: {$this->host}"; $spdf7b97[] = "User-Agent: {$this->user_agent}"; $spdf7b97[] = "Accept: {$this->accept}"; if ($this->use_gzip) { $spdf7b97[] = "Accept-encoding: {$this->accept_encoding}"; } $spdf7b97[] = "Accept-language: {$this->accept_language}"; if ($this->referer) { $spdf7b97[] = "Referer: {$this->referer}"; } if ($this->cookies) { $spc6c8e8 = 'Cookie: '; foreach ($this->cookies as $sp7b7024 => $spc82d84) { $spc6c8e8 .= "{$sp7b7024}={$spc82d84}; "; } $spdf7b97[] = $spc6c8e8; } if ($this->username && $this->password) { $spdf7b97[] = 'Authorization: BASIC ' . base64_encode($this->username . ':' . $this->password); } if ($this->postdata) { $spdf7b97[] = 'Content-Type: application/x-www-form-urlencoded'; $spdf7b97[] = 'Content-Length: ' . strlen($this->postdata); } $spd5cc4d = implode('
+', $spdf7b97) . '
+
+' . $this->postdata; return $spd5cc4d; } function getStatus() { return $this->status; } function getContent() { return $this->content; } function getHeaders() { return $this->headers; } function getHeader($sp7b1947) { $sp7b1947 = strtolower($sp7b1947); if (isset($this->headers[$sp7b1947])) { return $this->headers[$sp7b1947]; } else { return false; } } function getError() { return $this->errormsg; } function getCookies() { return $this->cookies; } function getRequestURL() { $sp3ae187 = 'http://' . $this->host; if ($this->port != 80) { $sp3ae187 .= ':' . $this->port; } $sp3ae187 .= $this->path; return $sp3ae187; } function setUserAgent($spd6e61f) { $this->user_agent = $spd6e61f; } function setAuthorization($spdde20c, $spb07b5d) { $this->username = $spdde20c; $this->password = $spb07b5d; } function setCookies($sp2550dd) { $this->cookies = $sp2550dd; } function useGzip($sp6bd478) { $this->use_gzip = $sp6bd478; } function setPersistCookies($sp6bd478) { $this->persist_cookies = $sp6bd478; } function setPersistReferers($sp6bd478) { $this->persist_referers = $sp6bd478; } function setHandleRedirects($sp6bd478) { $this->handle_redirects = $sp6bd478; } function setMaxRedirects($spc4b97b) { $this->max_redirects = $spc4b97b; } function setHeadersOnly($sp6bd478) { $this->headers_only = $sp6bd478; } function setDebug($sp6bd478) { $this->debug = $sp6bd478; } function quickGet($sp3ae187) { $sp096e7a = parse_url($sp3ae187); $spc7dc40 = $sp096e7a['host']; $sp79d3bb = isset($sp096e7a['port']) ? $sp096e7a['port'] : 80; $spd55287 = isset($sp096e7a['path']) ? $sp096e7a['path'] : '/'; if (isset($sp096e7a['query'])) { $spd55287 .= '?' . $sp096e7a['query']; } $sp352925 = new HttpClient($spc7dc40, $sp79d3bb); if (!$sp352925->get($spd55287)) { return false; } else { return $sp352925->getContent(); } } static function quickPost($sp3ae187, $spcb019a) { $sp096e7a = parse_url($sp3ae187); $spc7dc40 = $sp096e7a['host']; $sp79d3bb = isset($sp096e7a['port']) ? $sp096e7a['port'] : 80; $spd55287 = isset($sp096e7a['path']) ? $sp096e7a['path'] : '/'; $sp352925 = new HttpClient($spc7dc40, $sp79d3bb); if (!$sp352925->post($spd55287, $spcb019a)) { return false; } else { return $sp352925->getContent(); } } function debug($sp2af324, $sp465be0 = false) { if ($this->debug) { print 'HttpClient Debug: ' . $sp2af324; if ($sp465be0) { ob_start(); print_r($sp465be0); $sp1ecafd = htmlentities(ob_get_contents()); ob_end_clean(); print '
' . $sp1ecafd . ' '; } print '
'; } } }
\ No newline at end of file
diff --git a/app/Library/Pay/Yeke/yekeApiLib.php b/app/Library/Pay/Yeke/yekeApiLib.php
new file mode 100644
index 000000000..72bf67765
--- /dev/null
+++ b/app/Library/Pay/Yeke/yekeApiLib.php
@@ -0,0 +1,9 @@
+ 'getPayType', 'userid' => yeke_USER_ID, 'sign' => md5(yeke_USER_ID . yeke_USER_KEY)); $spb34b01 = HttpClient::quickPost(yeke_API_GATE, $sp3e77f9); return $spb34b01; } public static function getPayType() { $sp78c70b = json_decode(self::getPayGate(), true); $spcb019a = array(); if ($sp78c70b['status']) { foreach ($sp78c70b['list'] as $sp7b7024 => $spcb4459) { $spcb019a[] = array('paytype' => $spcb4459['paytype'], 'channelname' => $spcb4459['channelname']); } } return $spcb019a; } public static function getChannel($spb07ff0) { $sp78c70b = json_decode(self::getPayGate(), true); $spcb019a = array(); if ($spb07ff0 == 'card') { if ($sp78c70b['status'] && $sp78c70b['list']) { foreach ($sp78c70b['list'] as $spcb4459) { if ($spcb4459['paytype'] == $spb07ff0) { foreach ($spcb4459['datalist'] as $sp7b7024 => $spdc9e6e) { $spcb019a[] = array('channelid' => $spdc9e6e['channelid'], 'channelname' => $spdc9e6e['channelname'], 'imgurl' => $spdc9e6e['imgurl']); } } } } } else { if ($sp78c70b['status'] && $sp78c70b['list']) { foreach ($sp78c70b['list'] as $spcb4459) { if ($spcb4459['paytype'] == $spb07ff0) { foreach ($spcb4459['datalist'] as $sp7b7024 => $spdc9e6e) { $spcb019a[] = array('bankcode' => $spdc9e6e['bankcode'], 'bankname' => $spdc9e6e['bankname'], 'imgurl' => $spdc9e6e['imgurl']); } } } } } return $spcb019a; } public static function getCardValue() { $sp78c70b = json_decode(self::getPayGate(), true); $spcb019a = array(); if ($sp78c70b['status'] && $sp78c70b['list']) { foreach ($sp78c70b['list'] as $spcb4459) { if ($spcb4459['paytype'] == 'card') { foreach ($spcb4459['datalist'] as $sp7b7024 => $spcb4459) { $spcb019a[] = array('channelid' => $spcb4459['channelid'], 'channelname' => $spcb4459['channelname'], 'cardvalue' => $spcb4459['cardvalue'], 'cardlength' => $spcb4459['cardlength']); } } } } return $spcb019a; } public static function getOrderID() { return date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . rand(100000, 999999); } public function payGate($sp3e77f9) { $sp3e77f9 = array_merge(array('P_userid' => yeke_USER_ID), $sp3e77f9); $sp75e4cc = $this->makeSign($sp3e77f9); $sp3e77f9 = array_merge($sp3e77f9, array('P_sign' => $sp75e4cc, 'action' => 'payGate')); switch ($sp3e77f9['P_paytype']) { case 'bank': case 'alipay': case 'tenpay': case 'weixin': case 'wxwap': case 'sqzf': return $this->payGateBank($sp3e77f9); break; case 'card': return $this->payGateCard($sp3e77f9); break; default: return 'error,支付方式错误'; } } public function payGateBank($sp3e77f9) { $sp3868ff = '请稍候,正在跳转... '; $sp3868ff .= ''; $sp3868ff .= '请稍候,正在跳转...'; $sp3868ff .= '
+
+
+
+ json($spcb019a, $spc3ee59, $spdf7b97, $sp389e74); } public static function success($spcb019a = array()) { return self::json(array('message' => 'success', 'data' => $spcb019a)); } public static function fail($sp2af324 = 'fail', $spcb019a = array()) { return self::json(array('message' => $sp2af324, 'data' => $spcb019a), 500); } public static function forbidden($sp2af324 = 'forbidden', $spcb019a = array()) { return self::json(array('message' => $sp2af324, 'data' => $spcb019a), 403); } }
\ No newline at end of file
diff --git a/app/Log.php b/app/Log.php
new file mode 100644
index 000000000..4f8c088d7
--- /dev/null
+++ b/app/Log.php
@@ -0,0 +1,2 @@
+order = $sp7dcca7; $this->card_msg = $sp04825e; $this->cards_txt = $spa24ebf; } public function build() { return $this->subject('订单提醒(#' . $this->order->order_no . ')-' . config('app.name'))->view('emails.order'); } }
\ No newline at end of file
diff --git a/app/Mail/ProductCountWarn.php b/app/Mail/ProductCountWarn.php
new file mode 100644
index 000000000..2c1d53033
--- /dev/null
+++ b/app/Mail/ProductCountWarn.php
@@ -0,0 +1,2 @@
+product = $spaeec37; $this->product_count = $sp31a891; } public function build() { return $this->subject('您的商品库存不足-' . config('app.name'))->view('emails.product_count_warn'); } }
\ No newline at end of file
diff --git a/app/Mail/Test.php b/app/Mail/Test.php
new file mode 100644
index 000000000..b1fe1ae85
--- /dev/null
+++ b/app/Mail/Test.php
@@ -0,0 +1,2 @@
+subject(config('app.name') . '-测试邮件')->view('emails.test'); } }
\ No newline at end of file
diff --git a/app/Model_.php b/app/Model_.php
new file mode 100644
index 000000000..ff8b94e18
--- /dev/null
+++ b/app/Model_.php
@@ -0,0 +1,2 @@
+ '未支付', 1 => '未发货', 2 => '已发货', 3 => '已冻结', 4 => '已退款'); const SEND_STATUS_UN = 0; const SEND_STATUS_EMAIL_SUCCESS = 1; const SEND_STATUS_EMAIL_FAILED = 2; const SEND_STATUS_MOBILE_SUCCESS = 3; const SEND_STATUS_MOBILE_FAILED = 4; const SEND_STATUS_CARD_UN = 100; const SEND_STATUS_CARD_PROCESSING = 101; const SEND_STATUS_CARD_SUCCESS = 102; const SEND_STATUS_CARD_FAILED = 103; protected $casts = array('api_info' => 'array'); public static function unique_no() { $spd56469 = date('YmdHis') . str_random(5); while (\App\Order::where('order_no', $spd56469)->exists()) { $spd56469 = date('YmdHis') . str_random(5); } return $spd56469; } function user() { return $this->belongsTo(User::class); } function product() { return $this->belongsTo(Product::class); } function pay() { return $this->belongsTo(Pay::class); } function cards() { $spaec91b = $this->belongsToMany(Card::class); return $spaec91b->withTrashed(); } function card_orders() { return $this->hasMany(CardOrder::class); } function fundRecord() { return $this->hasMany(FundRecord::class); } function getCardsArray() { $spac6360 = array(); $this->cards->each(function ($sp21b3f0) use(&$spac6360) { $spac6360[] = $sp21b3f0->card; }); return $spac6360; } function getSendMessage() { if (count($this->cards) < $this->count && @$this->product->delivery !== \App\Product::DELIVERY_MANUAL) { if (count($this->cards)) { $sp04825e = '订单#' . $this->order_no . ' 已支付,目前库存不足,您还有' . ($this->count - count($this->cards)) . '件未发货,请联系商家客服发货 已发货商品见下方: '; } else { $sp04825e = '订单#' . $this->order_no . ' 已支付,目前库存不足,您购买的' . ($this->count - count($this->cards)) . '件未发货,请联系商家客服发货 '; } $spb5e5ba = $this->user->qq; if ($spb5e5ba) { $sp04825e .= '商家客服QQ:' . $spb5e5ba . ' '; } } else { $sp04825e = '订单#' . $this->order_no . ' 已支付,您购买的内容如下:'; } return $sp04825e; } function sendEmail($sp7d9677 = false) { if ($sp7d9677 === false) { $sp7d9677 = @json_decode($this->contact_ext)['_mail']; } if (!$sp7d9677 || !@filter_var($sp7d9677, FILTER_VALIDATE_EMAIL)) { return; } $spac6360 = $this->getCardsArray(); try { Mail::to($sp7d9677)->Queue(new OrderShipped($this, $this->getSendMessage(), join(' ', $spac6360))); $this->send_status = \App\Order::SEND_STATUS_EMAIL_SUCCESS; $this->saveOrFail(); } catch (\Throwable $spece20f) { $this->send_status = \App\Order::SEND_STATUS_EMAIL_FAILED; $this->saveOrFail(); LogHelper::setLogFile('mail'); Log::error('Order.sendEmail error', array('order_no' => $this->order_no, 'email' => $sp7d9677, 'cards' => $spac6360, 'exception' => $spece20f->getMessage())); LogHelper::setLogFile('card'); } } function sendSms($sp052029 = false) { if ($sp052029 === false) { $sp052029 = @json_decode($this->contact_ext)['_mobile']; } if (!$sp052029 || strlen($sp052029) !== 11) { return; } OrderSms::dispatch($sp052029, $this); } }
\ No newline at end of file
diff --git a/app/Pay.php b/app/Pay.php
new file mode 100644
index 000000000..6eff0dc50
--- /dev/null
+++ b/app/Pay.php
@@ -0,0 +1,2 @@
+id, Helper::ID_TYPE_PRODUCT); } function getCountAttribute() { return $this->count_all - $this->count_sold; } function category() { return $this->belongsTo(Category::class); } function cards() { return $this->hasMany(Card::class); } function coupons() { return $this->hasMany(Coupon::class); } function orders() { return $this->hasMany(Order::class); } function user() { return $this->belongsTo(User::class); } public static function refreshCount($sp694bd2) { \App\Card::where('user_id', $sp694bd2->id)->selectRaw('`product_id`,SUM(`count_sold`) as `count_sold`,SUM(`count_all`) as `count_all`')->groupBy('product_id')->orderByRaw('`product_id`')->chunk(1000, function ($speab77e) { foreach ($speab77e as $sp9bfdd7) { $spaeec37 = \App\Product::where('id', $sp9bfdd7->product_id)->first(); if ($spaeec37->delivery === \App\Product::DELIVERY_AUTO) { $spaeec37->update(array('count_sold' => $sp9bfdd7->count_sold, 'count_all' => $sp9bfdd7->count_all)); } else { $spaeec37->update(array('count_sold' => $sp9bfdd7->count_sold)); } } }); } function setForShop($sp694bd2 = null) { $spaeec37 = $this; $sp058528 = $spaeec37->count; $sp966951 = $spaeec37->inventory; if ($sp966951 == User::INVENTORY_AUTO) { $sp966951 = System::_getInt('shop_inventory'); } if ($sp966951 == User::INVENTORY_RANGE) { if ($sp058528 <= 0) { $sp75d3bc = '不足'; } elseif ($sp058528 <= 10) { $sp75d3bc = '少量'; } elseif ($sp058528 <= 20) { $sp75d3bc = '一般'; } else { $sp75d3bc = '大量'; } $spaeec37->setAttribute('count2', $sp75d3bc); } else { $spaeec37->setAttribute('count2', $sp058528); } $spaeec37->setAttribute('count', $sp058528); $spaeec37->setVisible(array('id', 'name', 'description', 'fields', 'delivery', 'count', 'count2', 'buy_min', 'buy_max', 'support_coupon', 'password_open', 'price', 'price_whole')); } }
\ No newline at end of file
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 000000000..64ed7b3c7
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,2 @@
+ 'App\\Policies\\ModelPolicy', 'App\\User' => 'App\\Policies\\UserPolicy'); public function boot() { $this->registerPolicies(); } }
\ No newline at end of file
diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php
new file mode 100644
index 000000000..fdca71ab7
--- /dev/null
+++ b/app/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,2 @@
+set(array('app.project' => 'card_free', 'app.version' => '2.8', 'app.name' => System::_get('app_name'), 'app.title' => System::_get('app_title'), 'app.url' => System::_get('app_url'), 'app.url_api' => System::_get('app_url_api'), 'app.logo' => System::_get('logo'), 'app.description' => System::_get('description'), 'app.keywords' => System::_get('keywords'), 'app.company' => System::_get('company'), 'app.icp' => System::_get('icp'), 'services.geetest.id' => System::_get('vcode_geetest_id'), 'services.geetest.key' => System::_get('vcode_geetest_key'), 'mail.driver' => System::_get('mail_driver'), 'mail.host' => System::_get('mail_smtp_host'), 'mail.port' => System::_get('mail_smtp_port'), 'mail.username' => System::_get('mail_smtp_username'), 'mail.password' => System::_get('mail_smtp_password'), 'mail.from.address' => System::_get('mail_smtp_from_address'), 'mail.from.name' => System::_get('mail_smtp_from_name'), 'mail.encryption' => System::_get('mail_smtp_encryption') === 'null' ? null : System::_get('mail_smtp_encryption'), 'services.sendcloud.api_user' => System::_get('sendcloud_user'), 'services.sendcloud.api_key' => System::_get('sendcloud_key'), 'filesystems.default' => System::_get('storage_driver'), 'filesystems.disks.s3.key' => System::_get('storage_s3_access_key'), 'filesystems.disks.s3.secret' => System::_get('storage_s3_secret_key'), 'filesystems.disks.s3.region' => System::_get('storage_s3_region'), 'filesystems.disks.s3.bucket' => System::_get('storage_s3_bucket'), 'filesystems.disks.oss.access_id' => System::_get('storage_oss_access_key'), 'filesystems.disks.oss.access_key' => System::_get('storage_oss_secret_key'), 'filesystems.disks.oss.bucket' => System::_get('storage_oss_bucket'), 'filesystems.disks.oss.endpoint' => System::_get('storage_oss_endpoint'), 'filesystems.disks.oss.cdnDomain' => System::_get('storage_oss_cdn_domain'), 'filesystems.disks.oss.ssl' => (int) System::_get('storage_oss_is_ssl') === 1, 'filesystems.disks.oss.isCName' => (int) System::_get('storage_oss_is_cname') === 1, 'filesystems.disks.qiniu.access_key' => System::_get('storage_qiniu_access_key'), 'filesystems.disks.qiniu.secret_key' => System::_get('storage_qiniu_secret_key'), 'filesystems.disks.qiniu.bucket' => System::_get('storage_qiniu_bucket'), 'filesystems.disks.qiniu.domains.default' => System::_get('storage_qiniu_domains_default'), 'filesystems.disks.qiniu.domains.https' => System::_get('storage_qiniu_domains_https'))); } catch (\Exception $spece20f) { \Log::error('Config init failed: ' . $spece20f->getMessage(), array('exception' => $spece20f)); } } public function register() { } }
\ No newline at end of file
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
new file mode 100644
index 000000000..3487a4967
--- /dev/null
+++ b/app/Providers/EventServiceProvider.php
@@ -0,0 +1,2 @@
+ array('App\\Listeners\\EventListener')); public function boot() { parent::boot(); } }
\ No newline at end of file
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
new file mode 100644
index 000000000..d78757e0e
--- /dev/null
+++ b/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,2 @@
+mapApiRoutes(); $this->mapWebRoutes(); } protected function mapWebRoutes() { Route::middleware('web')->namespace($this->namespace)->group(base_path('routes/web.php')); } protected function mapApiRoutes() { Route::prefix('api')->middleware('api')->namespace($this->namespace)->group(base_path('routes/api.php')); } }
\ No newline at end of file
diff --git a/app/ShopTheme.php b/app/ShopTheme.php
new file mode 100644
index 000000000..399a8dabf
--- /dev/null
+++ b/app/ShopTheme.php
@@ -0,0 +1,2 @@
+ 'array', 'config' => 'array'); private static $default_theme; public static function defaultTheme() { if (!static::$default_theme) { static::$default_theme = ShopTheme::query()->where('name', \App\System::_get('shop_theme_default', 'Material'))->first(); if (!static::$default_theme) { static::$default_theme = ShopTheme::query()->firstOrFail(); } } return static::$default_theme; } public static function freshList() { $spd55287 = realpath(app_path('..' . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'shop_theme')); \App\ShopTheme::query()->get()->each(function ($sp04f3b6) use($spd55287) { if (!file_exists($spd55287 . DIRECTORY_SEPARATOR . $sp04f3b6->name . DIRECTORY_SEPARATOR . 'config.php')) { $sp04f3b6->delete(); } }); foreach (scandir($spd55287) as $sp3575dd) { if ($sp3575dd === '.' || $sp3575dd === '..') { continue; } try { @($sp04f3b6 = (include $spd55287 . DIRECTORY_SEPARATOR . $sp3575dd . DIRECTORY_SEPARATOR . 'config.php')); } catch (\Exception $spece20f) { continue; } $sp04f3b6['config'] = array_map(function ($sp338f71) { return $sp338f71['value']; }, @$sp04f3b6['options'] ?? array()); $sp295f0e = \App\ShopTheme::query()->where('name', $sp3575dd)->first(); if ($sp295f0e) { $sp295f0e->description = $sp04f3b6['description']; $sp295f0e->options = @$sp04f3b6['options'] ?? array(); $sp295f0e->config = ($sp295f0e->config ?? array()) + $sp04f3b6['config']; $sp295f0e->saveOrFail(); } else { if ($sp04f3b6 && isset($sp04f3b6['description'])) { \App\ShopTheme::query()->create(array('name' => $sp3575dd, 'description' => $sp04f3b6['description'], 'options' => @$sp04f3b6['options'] ?? array(), 'config' => $sp04f3b6['config'])); } } } } }
\ No newline at end of file
diff --git a/app/System.php b/app/System.php
new file mode 100644
index 000000000..35a5e5e1d
--- /dev/null
+++ b/app/System.php
@@ -0,0 +1,2 @@
+get()->toArray(); foreach ($sp04b3bf as $sp86f37f) { static::$systems[$sp86f37f['name']] = $sp86f37f['value']; } return static::$systems; }); static::$systems['_initialized'] = true; } public static function _get($spcc609a, $sp5768dd = NULL) { if (!isset(static::$systems['_initialized'])) { static::_init(); } if (isset(static::$systems[$spcc609a])) { return static::$systems[$spcc609a]; } return $sp5768dd; } public static function _getInt($spcc609a, $sp5768dd = NULL) { return (int) static::_get($spcc609a, $sp5768dd); } public static function _set($spcc609a, $spc82d84) { static::$systems[$spcc609a] = $spc82d84; $spd7786b = System::query()->where('name', $spcc609a)->first(); if ($spd7786b) { $spd7786b->value = $spc82d84; $spd7786b->save(); } else { try { System::query()->insert(array('name' => $spcc609a, 'value' => $spc82d84)); } catch (\Exception $spece20f) { } } self::flushCache(); } public static function flushCache() { Log::debug('SystemSetting.flushCache'); Cache::forget('settings.all'); } protected static function boot() { parent::boot(); static::updated(function () { self::flushCache(); }); static::created(function () { self::flushCache(); }); } }
\ No newline at end of file
diff --git a/app/User.php b/app/User.php
new file mode 100644
index 000000000..e907c99b4
--- /dev/null
+++ b/app/User.php
@@ -0,0 +1,2 @@
+ 'array'); const ID_CUSTOMER = -1; const INVENTORY_RANGE = 0; const INVENTORY_REAL = 1; const INVENTORY_AUTO = 2; const FEE_TYPE_MERCHANT = 0; const FEE_TYPE_CUSTOMER = 1; const FEE_TYPE_AUTO = 2; const STATUS_OK = 0; const STATUS_FROZEN = 1; function getMBalanceAttribute() { return $this->m_all - $this->m_paid - $this->m_frozen; } function getRoleAttribute() { return 'admin'; } function getMBalanceWithoutTodayAttribute() { $sp9b8c87 = (int) \App\Order::where('user_id', $this->user_id)->where('status', \App\Order::STATUS_SUCCESS)->whereDate('paid_at', Carbon::today())->sum('income'); return $this->m_all - $this->m_paid - $this->m_frozen - $sp9b8c87; } function getShopThemeAttribute() { if ($this->theme_config) { $sp29a775 = \App\ShopTheme::whereName($this->theme_config['theme'])->first(); if ($sp29a775) { return $sp29a775; } } return \App\ShopTheme::defaultTheme(); } function categories() { return $this->hasMany(Category::class); } function products() { return $this->hasMany(Product::class); } function cards() { return $this->hasMany(Card::class); } function orders() { return $this->hasMany(Order::class); } function coupons() { return $this->hasMany(Coupon::class); } function logs() { return $this->hasMany(Log::class); } function shop_theme() { return $this->belongsTo(ShopTheme::class); } }
\ No newline at end of file
diff --git a/artisan b/artisan
new file mode 100644
index 000000000..5c23e2e24
--- /dev/null
+++ b/artisan
@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+ $input = new Symfony\Component\Console\Input\ArgvInput,
+ new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);
diff --git a/bootstrap/app.php b/bootstrap/app.php
new file mode 100644
index 000000000..9f14c6be7
--- /dev/null
+++ b/bootstrap/app.php
@@ -0,0 +1,2 @@
+singleton(Illuminate\Contracts\Http\Kernel::class, App\Http\Kernel::class); $spf0f142->singleton(Illuminate\Contracts\Console\Kernel::class, App\Console\Kernel::class); $spf0f142->singleton(Illuminate\Contracts\Debug\ExceptionHandler::class, App\Exceptions\Handler::class); return $spf0f142;
\ No newline at end of file
diff --git a/bootstrap/cache/packages.php b/bootstrap/cache/packages.php
new file mode 100644
index 000000000..c295d9a2d
--- /dev/null
+++ b/bootstrap/cache/packages.php
@@ -0,0 +1,2 @@
+ array('providers' => array(0 => 'Carbon\\Laravel\\ServiceProvider')), 'barryvdh/laravel-ide-helper' => array('providers' => array(0 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider')), 'fideloper/proxy' => array('providers' => array(0 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider')), 'jacobcyl/ali-oss-storage' => array('providers' => array(0 => 'Jacobcyl\\AliOSS\\AliOssServiceProvider')), 'ken/blade-minify' => array('providers' => array(0 => 'Ken\\BladeMinify\\ServiceProvider')), 'laravel/tinker' => array('providers' => array(0 => 'Laravel\\Tinker\\TinkerServiceProvider')), 'rap2hpoutre/laravel-log-viewer' => array('providers' => array(0 => 'Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider')), 'zgldh/qiniu-laravel-storage' => array('providers' => array(0 => 'zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider')));
\ No newline at end of file
diff --git a/bootstrap/cache/routes.php b/bootstrap/cache/routes.php
new file mode 100644
index 000000000..0336a1251
--- /dev/null
+++ b/bootstrap/cache/routes.php
@@ -0,0 +1,2 @@
+setRoutes(unserialize(base64_decode('TzozNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlQ29sbGVjdGlvbiI6NDp7czo5OiIAKgByb3V0ZXMiO2E6Nzp7czo0OiJQT1NUIjthOjcyOntzOjE1OiJhcGkvYWRtaW4vbG9naW4iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE1OiJhcGkvYWRtaW4vbG9naW4iO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToyOntpOjA7czozOiJhcGkiO2k6MTtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AbG9naW4iO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGxvZ2luIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjM6ImFwaSI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI4MTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE2OiIvYXBpL2FkbWluL2xvZ2luIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjIyOiIjXi9hcGkvYWRtaW4vbG9naW4kI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxNjoiL2FwaS9hZG1pbi9sb2dpbiI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9sb2dpbi9sb2dvdXQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vbG9naW4vbG9nb3V0IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mjp7aTowO3M6MzoiYXBpIjtpOjE7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGxvZ291dCI7czoxMDoiY29udHJvbGxlciI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AbG9nb3V0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjM6ImFwaSI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL2xvZ2luL2xvZ291dCI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL2xvZ2luL2xvZ291dCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL2xvZ2luL2xvZ291dCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9sb2dpbi92ZXJpZnkiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vbG9naW4vdmVyaWZ5IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mjp7aTowO3M6MzoiYXBpIjtpOjE7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGdldFZlcmlmeSI7czoxMDoiY29udHJvbGxlciI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AZ2V0VmVyaWZ5IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjM6ImFwaSI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL2xvZ2luL3ZlcmlmeSI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL2xvZ2luL3ZlcmlmeSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL2xvZ2luL3ZlcmlmeSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjA6ImFwaS9hZG1pbi9sb2dpbi9pbmZvIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMDoiYXBpL2FkbWluL2xvZ2luL2luZm8iO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AaW5mbyI7czoxMDoiY29udHJvbGxlciI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AaW5mbyI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTY6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMToiL2FwaS9hZG1pbi9sb2dpbi9pbmZvIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI3OiIjXi9hcGkvYWRtaW4vbG9naW4vaW5mbyQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIxOiIvYXBpL2FkbWluL2xvZ2luL2luZm8iO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI0OiJhcGkvYWRtaW4vbG9naW4vcGFzc3dvcmQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjI0OiJhcGkvYWRtaW4vbG9naW4vcGFzc3dvcmQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AY2hhbmdlUGFzc3dvcmQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGNoYW5nZVBhc3N3b3JkIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwODp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI1OiIvYXBpL2FkbWluL2xvZ2luL3Bhc3N3b3JkIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMxOiIjXi9hcGkvYWRtaW4vbG9naW4vcGFzc3dvcmQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyNToiL2FwaS9hZG1pbi9sb2dpbi9wYXNzd29yZCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTk6ImFwaS9hZG1pbi9kYXNoYm9hcmQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE5OiJhcGkvYWRtaW4vZGFzaGJvYXJkIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXERhc2hib2FyZEBpbmRleCI7czoxMDoiY29udHJvbGxlciI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cRGFzaGJvYXJkQGluZGV4IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5Mzp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIwOiIvYXBpL2FkbWluL2Rhc2hib2FyZCI7czoxMDoicGF0aF9yZWdleCI7czoyNjoiI14vYXBpL2FkbWluL2Rhc2hib2FyZCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIwOiIvYXBpL2FkbWluL2Rhc2hib2FyZCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjE6ImFwaS9hZG1pbi9zeXN0ZW0vaW5mbyI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjE6ImFwaS9hZG1pbi9zeXN0ZW0vaW5mbyI7czo3OiJtZXRob2RzIjthOjc6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7aToyO3M6NDoiUE9TVCI7aTozO3M6MzoiUFVUIjtpOjQ7czo1OiJQQVRDSCI7aTo1O3M6NjoiREVMRVRFIjtpOjY7czo3OiJPUFRJT05TIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cU3lzdGVtQGluZm8iO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBpbmZvIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5OTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIyOiIvYXBpL2FkbWluL3N5c3RlbS9pbmZvIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI4OiIjXi9hcGkvYWRtaW4vc3lzdGVtL2luZm8kI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMjoiL2FwaS9hZG1pbi9zeXN0ZW0vaW5mbyI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vdGhlbWUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3RoZW1lIjtzOjc6Im1ldGhvZHMiO2E6Nzp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjtpOjI7czo0OiJQT1NUIjtpOjM7czozOiJQVVQiO2k6NDtzOjU6IlBBVENIIjtpOjU7czo2OiJERUxFVEUiO2k6NjtzOjc6Ik9QVElPTlMiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AdGhlbWUiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUB0aGVtZSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDI6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMzoiL2FwaS9hZG1pbi9zeXN0ZW0vdGhlbWUiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjk6IiNeL2FwaS9hZG1pbi9zeXN0ZW0vdGhlbWUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMzoiL2FwaS9hZG1pbi9zeXN0ZW0vdGhlbWUiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIyOiJhcGkvYWRtaW4vc3lzdGVtL29yZGVyIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMjoiYXBpL2FkbWluL3N5c3RlbS9vcmRlciI7czo3OiJtZXRob2RzIjthOjc6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7aToyO3M6NDoiUE9TVCI7aTozO3M6MzoiUFVUIjtpOjQ7czo1OiJQQVRDSCI7aTo1O3M6NjoiREVMRVRFIjtpOjY7czo3OiJPUFRJT05TIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cU3lzdGVtQG9yZGVyIjtzOjEwOiJjb250cm9sbGVyIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1Ab3JkZXIiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzAyOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjM6Ii9hcGkvYWRtaW4vc3lzdGVtL29yZGVyIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI5OiIjXi9hcGkvYWRtaW4vc3lzdGVtL29yZGVyJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjM6Ii9hcGkvYWRtaW4vc3lzdGVtL29yZGVyIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMjoiYXBpL2FkbWluL3N5c3RlbS92Y29kZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vdmNvZGUiO3M6NzoibWV0aG9kcyI7YTo3OntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO2k6MjtzOjQ6IlBPU1QiO2k6MztzOjM6IlBVVCI7aTo0O3M6NToiUEFUQ0giO2k6NTtzOjY6IkRFTEVURSI7aTo2O3M6NzoiT1BUSU9OUyI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUB2Y29kZSI7czoxMDoiY29udHJvbGxlciI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cU3lzdGVtQHZjb2RlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL3N5c3RlbS92Y29kZSI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL3N5c3RlbS92Y29kZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL3N5c3RlbS92Y29kZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vZW1haWwiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL2VtYWlsIjtzOjc6Im1ldGhvZHMiO2E6Nzp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjtpOjI7czo0OiJQT1NUIjtpOjM7czozOiJQVVQiO2k6NDtzOjU6IlBBVENIIjtpOjU7czo2OiJERUxFVEUiO2k6NjtzOjc6Ik9QVElPTlMiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AZW1haWwiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBlbWFpbCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDI6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMzoiL2FwaS9hZG1pbi9zeXN0ZW0vZW1haWwiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjk6IiNeL2FwaS9hZG1pbi9zeXN0ZW0vZW1haWwkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMzoiL2FwaS9hZG1pbi9zeXN0ZW0vZW1haWwiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIwOiJhcGkvYWRtaW4vc3lzdGVtL3NtcyI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjA6ImFwaS9hZG1pbi9zeXN0ZW0vc21zIjtzOjc6Im1ldGhvZHMiO2E6Nzp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjtpOjI7czo0OiJQT1NUIjtpOjM7czozOiJQVVQiO2k6NDtzOjU6IlBBVENIIjtpOjU7czo2OiJERUxFVEUiO2k6NjtzOjc6Ik9QVElPTlMiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1Ac21zIjtzOjEwOiJjb250cm9sbGVyIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1Ac21zIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5Njp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIxOiIvYXBpL2FkbWluL3N5c3RlbS9zbXMiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjc6IiNeL2FwaS9hZG1pbi9zeXN0ZW0vc21zJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjE6Ii9hcGkvYWRtaW4vc3lzdGVtL3NtcyI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjQ6ImFwaS9hZG1pbi9zeXN0ZW0vc3RvcmFnZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjQ6ImFwaS9hZG1pbi9zeXN0ZW0vc3RvcmFnZSI7czo3OiJtZXRob2RzIjthOjc6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7aToyO3M6NDoiUE9TVCI7aTozO3M6MzoiUFVUIjtpOjQ7czo1OiJQQVRDSCI7aTo1O3M6NjoiREVMRVRFIjtpOjY7czo3OiJPUFRJT05TIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cU3lzdGVtQHN0b3JhZ2UiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBzdG9yYWdlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwODp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI1OiIvYXBpL2FkbWluL3N5c3RlbS9zdG9yYWdlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMxOiIjXi9hcGkvYWRtaW4vc3lzdGVtL3N0b3JhZ2UkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyNToiL2FwaS9hZG1pbi9zeXN0ZW0vc3RvcmFnZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6Mjc6ImFwaS9hZG1pbi9zeXN0ZW0vZW1haWwvdGVzdCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6Mjc6ImFwaS9hZG1pbi9zeXN0ZW0vZW1haWwvdGVzdCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AZW1haWxUZXN0IjtzOjEwOiJjb250cm9sbGVyIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AZW1haWxUZXN0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMxNzp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI4OiIvYXBpL2FkbWluL3N5c3RlbS9lbWFpbC90ZXN0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjM0OiIjXi9hcGkvYWRtaW4vc3lzdGVtL2VtYWlsL3Rlc3QkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyODoiL2FwaS9hZG1pbi9zeXN0ZW0vZW1haWwvdGVzdCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6Mjg6ImFwaS9hZG1pbi9zeXN0ZW0vb3JkZXIvY2xlYW4iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjI4OiJhcGkvYWRtaW4vc3lzdGVtL29yZGVyL2NsZWFuIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBvcmRlckNsZWFuIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1Ab3JkZXJDbGVhbiI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMjA6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyOToiL2FwaS9hZG1pbi9zeXN0ZW0vb3JkZXIvY2xlYW4iO3M6MTA6InBhdGhfcmVnZXgiO3M6MzU6IiNeL2FwaS9hZG1pbi9zeXN0ZW0vb3JkZXIvY2xlYW4kI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyOToiL2FwaS9hZG1pbi9zeXN0ZW0vb3JkZXIvY2xlYW4iO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjEzOiJhcGkvYWRtaW4vcGF5IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxMzoiYXBpL2FkbWluL3BheSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAZ2V0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAZ2V0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI3NTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE0OiIvYXBpL2FkbWluL3BheSI7czoxMDoicGF0aF9yZWdleCI7czoyMDoiI14vYXBpL2FkbWluL3BheSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE0OiIvYXBpL2FkbWluL3BheSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTg6ImFwaS9hZG1pbi9wYXkvc29ydCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTg6ImFwaS9hZG1pbi9wYXkvc29ydCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAc29ydCI7czoxMDoiY29udHJvbGxlciI7czozNToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QHNvcnQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MjkwOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTk6Ii9hcGkvYWRtaW4vcGF5L3NvcnQiO3M6MTA6InBhdGhfcmVnZXgiO3M6MjU6IiNeL2FwaS9hZG1pbi9wYXkvc29ydCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE5OiIvYXBpL2FkbWluL3BheS9zb3J0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNDoiYXBpL2FkbWluL3BheS9mZWVfc3lzdGVtIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyNDoiYXBpL2FkbWluL3BheS9mZWVfc3lzdGVtIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBmZWVfc3lzdGVtIjtzOjEwOiJjb250cm9sbGVyIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAZmVlX3N5c3RlbSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDg6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNToiL2FwaS9hZG1pbi9wYXkvZmVlX3N5c3RlbSI7czoxMDoicGF0aF9yZWdleCI7czozMToiI14vYXBpL2FkbWluL3BheS9mZWVfc3lzdGVtJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjU6Ii9hcGkvYWRtaW4vcGF5L2ZlZV9zeXN0ZW0iO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE3OiJhcGkvYWRtaW4vcGF5L2ZlZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTc6ImFwaS9hZG1pbi9wYXkvZmVlIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6MzQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBmZWUiO3M6MTA6ImNvbnRyb2xsZXIiO3M6MzQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBmZWUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjg3OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTg6Ii9hcGkvYWRtaW4vcGF5L2ZlZSI7czoxMDoicGF0aF9yZWdleCI7czoyNDoiI14vYXBpL2FkbWluL3BheS9mZWUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxODoiL2FwaS9hZG1pbi9wYXkvZmVlIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxODoiYXBpL2FkbWluL3BheS9lZGl0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxODoiYXBpL2FkbWluL3BheS9lZGl0IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6MzU6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBlZGl0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAZWRpdCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTA6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxOToiL2FwaS9hZG1pbi9wYXkvZWRpdCI7czoxMDoicGF0aF9yZWdleCI7czoyNToiI14vYXBpL2FkbWluL3BheS9lZGl0JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTk6Ii9hcGkvYWRtaW4vcGF5L2VkaXQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIxOiJhcGkvYWRtaW4vcGF5L2NvbW1lbnQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIxOiJhcGkvYWRtaW4vcGF5L2NvbW1lbnQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGNvbW1lbnQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBjb21tZW50IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5OTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIyOiIvYXBpL2FkbWluL3BheS9jb21tZW50IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI4OiIjXi9hcGkvYWRtaW4vcGF5L2NvbW1lbnQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMjoiL2FwaS9hZG1pbi9wYXkvY29tbWVudCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjA6ImFwaS9hZG1pbi9wYXkvZW5hYmxlIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMDoiYXBpL2FkbWluL3BheS9lbmFibGUiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGVuYWJsZSI7czoxMDoiY29udHJvbGxlciI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGVuYWJsZSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTY6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMToiL2FwaS9hZG1pbi9wYXkvZW5hYmxlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI3OiIjXi9hcGkvYWRtaW4vcGF5L2VuYWJsZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIxOiIvYXBpL2FkbWluL3BheS9lbmFibGUiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIwOiJhcGkvYWRtaW4vcGF5L2RlbGV0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjA6ImFwaS9hZG1pbi9wYXkvZGVsZXRlIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBkZWxldGUiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBkZWxldGUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjk2OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjE6Ii9hcGkvYWRtaW4vcGF5L2RlbGV0ZSI7czoxMDoicGF0aF9yZWdleCI7czoyNzoiI14vYXBpL2FkbWluL3BheS9kZWxldGUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMToiL2FwaS9hZG1pbi9wYXkvZGVsZXRlIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxODoiYXBpL2FkbWluL2NhdGVnb3J5IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxODoiYXBpL2FkbWluL2NhdGVnb3J5IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhdGVnb3J5QGdldCI7czoxMDoiY29udHJvbGxlciI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAZ2V0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5MDp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE5OiIvYXBpL2FkbWluL2NhdGVnb3J5IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI1OiIjXi9hcGkvYWRtaW4vY2F0ZWdvcnkkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxOToiL2FwaS9hZG1pbi9jYXRlZ29yeSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjM6ImFwaS9hZG1pbi9jYXRlZ29yeS9zb3J0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMzoiYXBpL2FkbWluL2NhdGVnb3J5L3NvcnQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAc29ydCI7czoxMDoiY29udHJvbGxlciI7czo0MzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAc29ydCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDU6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNDoiL2FwaS9hZG1pbi9jYXRlZ29yeS9zb3J0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMwOiIjXi9hcGkvYWRtaW4vY2F0ZWdvcnkvc29ydCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI0OiIvYXBpL2FkbWluL2NhdGVnb3J5L3NvcnQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIzOiJhcGkvYWRtaW4vY2F0ZWdvcnkvZWRpdCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjM6ImFwaS9hZG1pbi9jYXRlZ29yeS9lZGl0IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDM6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhdGVnb3J5QGVkaXQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDM6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhdGVnb3J5QGVkaXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzA1OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjQ6Ii9hcGkvYWRtaW4vY2F0ZWdvcnkvZWRpdCI7czoxMDoicGF0aF9yZWdleCI7czozMDoiI14vYXBpL2FkbWluL2NhdGVnb3J5L2VkaXQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyNDoiL2FwaS9hZG1pbi9jYXRlZ29yeS9lZGl0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNToiYXBpL2FkbWluL2NhdGVnb3J5L2VuYWJsZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjU6ImFwaS9hZG1pbi9jYXRlZ29yeS9lbmFibGUiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAZW5hYmxlIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXRlZ29yeUBlbmFibGUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzExOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjY6Ii9hcGkvYWRtaW4vY2F0ZWdvcnkvZW5hYmxlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMyOiIjXi9hcGkvYWRtaW4vY2F0ZWdvcnkvZW5hYmxlJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjY6Ii9hcGkvYWRtaW4vY2F0ZWdvcnkvZW5hYmxlIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNToiYXBpL2FkbWluL2NhdGVnb3J5L2RlbGV0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjU6ImFwaS9hZG1pbi9jYXRlZ29yeS9kZWxldGUiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAZGVsZXRlIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXRlZ29yeUBkZWxldGUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzExOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjY6Ii9hcGkvYWRtaW4vY2F0ZWdvcnkvZGVsZXRlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMyOiIjXi9hcGkvYWRtaW4vY2F0ZWdvcnkvZGVsZXRlJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjY6Ii9hcGkvYWRtaW4vY2F0ZWdvcnkvZGVsZXRlIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxNzoiYXBpL2FkbWluL3Byb2R1Y3QiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE3OiJhcGkvYWRtaW4vcHJvZHVjdCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGdldCI7czoxMDoiY29udHJvbGxlciI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBnZXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjg3OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTg6Ii9hcGkvYWRtaW4vcHJvZHVjdCI7czoxMDoicGF0aF9yZWdleCI7czoyNDoiI14vYXBpL2FkbWluL3Byb2R1Y3QkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxODoiL2FwaS9hZG1pbi9wcm9kdWN0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMjoiYXBpL2FkbWluL3Byb2R1Y3Qvc29ydCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjI6ImFwaS9hZG1pbi9wcm9kdWN0L3NvcnQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBzb3J0IjtzOjEwOiJjb250cm9sbGVyIjtzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QHNvcnQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzAyOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjM6Ii9hcGkvYWRtaW4vcHJvZHVjdC9zb3J0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI5OiIjXi9hcGkvYWRtaW4vcHJvZHVjdC9zb3J0JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjM6Ii9hcGkvYWRtaW4vcHJvZHVjdC9zb3J0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNzoiYXBpL2FkbWluL3Byb2R1Y3Qvc2V0X2NvdW50IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyNzoiYXBpL2FkbWluL3Byb2R1Y3Qvc2V0X2NvdW50IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAc2V0X2NvdW50IjtzOjEwOiJjb250cm9sbGVyIjtzOjQ3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QHNldF9jb3VudCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMTc6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyODoiL2FwaS9hZG1pbi9wcm9kdWN0L3NldF9jb3VudCI7czoxMDoicGF0aF9yZWdleCI7czozNDoiI14vYXBpL2FkbWluL3Byb2R1Y3Qvc2V0X2NvdW50JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6Mjg6Ii9hcGkvYWRtaW4vcHJvZHVjdC9zZXRfY291bnQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI2OiJhcGkvYWRtaW4vcHJvZHVjdC9jYXRlZ29yeSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjY6ImFwaS9hZG1pbi9wcm9kdWN0L2NhdGVnb3J5IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NTM6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAY2F0ZWdvcnlfY2hhbmdlIjtzOjEwOiJjb250cm9sbGVyIjtzOjUzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGNhdGVnb3J5X2NoYW5nZSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMTQ6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNzoiL2FwaS9hZG1pbi9wcm9kdWN0L2NhdGVnb3J5IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMzOiIjXi9hcGkvYWRtaW4vcHJvZHVjdC9jYXRlZ29yeSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI3OiIvYXBpL2FkbWluL3Byb2R1Y3QvY2F0ZWdvcnkiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIyOiJhcGkvYWRtaW4vcHJvZHVjdC9lZGl0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMjoiYXBpL2FkbWluL3Byb2R1Y3QvZWRpdCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGVkaXQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAZWRpdCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDI6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMzoiL2FwaS9hZG1pbi9wcm9kdWN0L2VkaXQiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjk6IiNeL2FwaS9hZG1pbi9wcm9kdWN0L2VkaXQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMzoiL2FwaS9hZG1pbi9wcm9kdWN0L2VkaXQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI0OiJhcGkvYWRtaW4vcHJvZHVjdC9lbmFibGUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjI0OiJhcGkvYWRtaW4vcHJvZHVjdC9lbmFibGUiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBlbmFibGUiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAZW5hYmxlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwODp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI1OiIvYXBpL2FkbWluL3Byb2R1Y3QvZW5hYmxlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMxOiIjXi9hcGkvYWRtaW4vcHJvZHVjdC9lbmFibGUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyNToiL2FwaS9hZG1pbi9wcm9kdWN0L2VuYWJsZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjQ6ImFwaS9hZG1pbi9wcm9kdWN0L2RlbGV0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjQ6ImFwaS9hZG1pbi9wcm9kdWN0L2RlbGV0ZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQ0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGRlbGV0ZSI7czoxMDoiY29udHJvbGxlciI7czo0NDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBkZWxldGUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzA4OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjU6Ii9hcGkvYWRtaW4vcHJvZHVjdC9kZWxldGUiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzE6IiNeL2FwaS9hZG1pbi9wcm9kdWN0L2RlbGV0ZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI1OiIvYXBpL2FkbWluL3Byb2R1Y3QvZGVsZXRlIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyODoiYXBpL2FkbWluL3Byb2R1Y3QvY291bnQvc3luYyI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6Mjg6ImFwaS9hZG1pbi9wcm9kdWN0L2NvdW50L3N5bmMiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBjb3VudF9zeW5jIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGNvdW50X3N5bmMiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzIwOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6Mjk6Ii9hcGkvYWRtaW4vcHJvZHVjdC9jb3VudC9zeW5jIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjM1OiIjXi9hcGkvYWRtaW4vcHJvZHVjdC9jb3VudC9zeW5jJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6Mjk6Ii9hcGkvYWRtaW4vcHJvZHVjdC9jb3VudC9zeW5jIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMToiYXBpL2FkbWluL2ZpbGUvdXBsb2FkIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMToiYXBpL2FkbWluL2ZpbGUvdXBsb2FkIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NTA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XEZpbGVAdXBsb2FkX21lcmNoYW50IjtzOjEwOiJjb250cm9sbGVyIjtzOjUwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxGaWxlQHVwbG9hZF9tZXJjaGFudCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTk6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMjoiL2FwaS9hZG1pbi9maWxlL3VwbG9hZCI7czoxMDoicGF0aF9yZWdleCI7czoyODoiI14vYXBpL2FkbWluL2ZpbGUvdXBsb2FkJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjI6Ii9hcGkvYWRtaW4vZmlsZS91cGxvYWQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE0OiJhcGkvYWRtaW4vY2FyZCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTQ6ImFwaS9hZG1pbi9jYXJkIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZ2V0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQGdldCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyNzg6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxNToiL2FwaS9hZG1pbi9jYXJkIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjIxOiIjXi9hcGkvYWRtaW4vY2FyZCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE1OiIvYXBpL2FkbWluL2NhcmQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE4OiJhcGkvYWRtaW4vY2FyZC9hZGQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE4OiJhcGkvYWRtaW4vY2FyZC9hZGQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBhZGQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAYWRkIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5MDp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE5OiIvYXBpL2FkbWluL2NhcmQvYWRkIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI1OiIjXi9hcGkvYWRtaW4vY2FyZC9hZGQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxOToiL2FwaS9hZG1pbi9jYXJkL2FkZCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTk6ImFwaS9hZG1pbi9jYXJkL2VkaXQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE5OiJhcGkvYWRtaW4vY2FyZC9lZGl0IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZWRpdCI7czoxMDoiY29udHJvbGxlciI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBlZGl0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5Mzp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIwOiIvYXBpL2FkbWluL2NhcmQvZWRpdCI7czoxMDoicGF0aF9yZWdleCI7czoyNjoiI14vYXBpL2FkbWluL2NhcmQvZWRpdCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIwOiIvYXBpL2FkbWluL2NhcmQvZWRpdCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjE6ImFwaS9hZG1pbi9jYXJkL2V4cG9ydCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjE6ImFwaS9hZG1pbi9jYXJkL2V4cG9ydCI7czo3OiJtZXRob2RzIjthOjc6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7aToyO3M6NDoiUE9TVCI7aTozO3M6MzoiUFVUIjtpOjQ7czo1OiJQQVRDSCI7aTo1O3M6NjoiREVMRVRFIjtpOjY7czo3OiJPUFRJT05TIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBleHBvcnQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZXhwb3J0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5OTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIyOiIvYXBpL2FkbWluL2NhcmQvZXhwb3J0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI4OiIjXi9hcGkvYWRtaW4vY2FyZC9leHBvcnQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMjoiL2FwaS9hZG1pbi9jYXJkL2V4cG9ydCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjE6ImFwaS9hZG1pbi9jYXJkL2RlbGV0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjE6ImFwaS9hZG1pbi9jYXJkL2RlbGV0ZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHRyYXNoIjtzOjEwOiJjb250cm9sbGVyIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHRyYXNoIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5OTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIyOiIvYXBpL2FkbWluL2NhcmQvZGVsZXRlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI4OiIjXi9hcGkvYWRtaW4vY2FyZC9kZWxldGUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMjoiL2FwaS9hZG1pbi9jYXJkL2RlbGV0ZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6Mjc6ImFwaS9hZG1pbi9jYXJkL3RyYXNoL2RlbGV0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6Mjc6ImFwaS9hZG1pbi9jYXJkL3RyYXNoL2RlbGV0ZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQGRlbGV0ZVRyYXNoZWQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZGVsZXRlVHJhc2hlZCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMTc6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyODoiL2FwaS9hZG1pbi9jYXJkL3RyYXNoL2RlbGV0ZSI7czoxMDoicGF0aF9yZWdleCI7czozNDoiI14vYXBpL2FkbWluL2NhcmQvdHJhc2gvZGVsZXRlJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6Mjg6Ii9hcGkvYWRtaW4vY2FyZC90cmFzaC9kZWxldGUiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI4OiJhcGkvYWRtaW4vY2FyZC90cmFzaC9yZXN0b3JlIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyODoiYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQ5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHJlc3RvcmVUcmFzaGVkIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHJlc3RvcmVUcmFzaGVkIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMyMDp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI5OiIvYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZSI7czoxMDoicGF0aF9yZWdleCI7czozNToiI14vYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI5OiIvYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MzI6ImFwaS9hZG1pbi9jYXJkL3RyYXNoL3Jlc3RvcmUvYWxsIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czozMjoiYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZS9hbGwiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEByZXN0b3JlQWxsIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHJlc3RvcmVBbGwiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzMyOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MzM6Ii9hcGkvYWRtaW4vY2FyZC90cmFzaC9yZXN0b3JlL2FsbCI7czoxMDoicGF0aF9yZWdleCI7czozOToiI14vYXBpL2FkbWluL2NhcmQvdHJhc2gvcmVzdG9yZS9hbGwkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czozMzoiL2FwaS9hZG1pbi9jYXJkL3RyYXNoL3Jlc3RvcmUvYWxsIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNToiYXBpL2FkbWluL2NhcmQvZGVsZXRlL2FsbCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjU6ImFwaS9hZG1pbi9jYXJkL2RlbGV0ZS9hbGwiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBkZWxldGVBbGwiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZGVsZXRlQWxsIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMxMTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI2OiIvYXBpL2FkbWluL2NhcmQvZGVsZXRlL2FsbCI7czoxMDoicGF0aF9yZWdleCI7czozMjoiI14vYXBpL2FkbWluL2NhcmQvZGVsZXRlL2FsbCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI2OiIvYXBpL2FkbWluL2NhcmQvZGVsZXRlL2FsbCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTY6ImFwaS9hZG1pbi9jb3Vwb24iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE2OiJhcGkvYWRtaW4vY291cG9uIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENvdXBvbkBnZXQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENvdXBvbkBnZXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjg0OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTc6Ii9hcGkvYWRtaW4vY291cG9uIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjIzOiIjXi9hcGkvYWRtaW4vY291cG9uJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTc6Ii9hcGkvYWRtaW4vY291cG9uIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMzoiYXBpL2FkbWluL2NvdXBvbi9jcmVhdGUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIzOiJhcGkvYWRtaW4vY291cG9uL2NyZWF0ZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AY3JlYXRlIjtzOjEwOiJjb250cm9sbGVyIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AY3JlYXRlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwNTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI0OiIvYXBpL2FkbWluL2NvdXBvbi9jcmVhdGUiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzA6IiNeL2FwaS9hZG1pbi9jb3Vwb24vY3JlYXRlJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjQ6Ii9hcGkvYWRtaW4vY291cG9uL2NyZWF0ZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjE6ImFwaS9hZG1pbi9jb3Vwb24vZWRpdCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjE6ImFwaS9hZG1pbi9jb3Vwb24vZWRpdCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AZWRpdCI7czoxMDoiY29udHJvbGxlciI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ291cG9uQGVkaXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjk5OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjI6Ii9hcGkvYWRtaW4vY291cG9uL2VkaXQiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjg6IiNeL2FwaS9hZG1pbi9jb3Vwb24vZWRpdCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIyOiIvYXBpL2FkbWluL2NvdXBvbi9lZGl0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMzoiYXBpL2FkbWluL2NvdXBvbi9lbmFibGUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIzOiJhcGkvYWRtaW4vY291cG9uL2VuYWJsZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AZW5hYmxlIjtzOjEwOiJjb250cm9sbGVyIjtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AZW5hYmxlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwNTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjI0OiIvYXBpL2FkbWluL2NvdXBvbi9lbmFibGUiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzA6IiNeL2FwaS9hZG1pbi9jb3Vwb24vZW5hYmxlJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjQ6Ii9hcGkvYWRtaW4vY291cG9uL2VuYWJsZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjM6ImFwaS9hZG1pbi9jb3Vwb24vZGVsZXRlIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMzoiYXBpL2FkbWluL2NvdXBvbi9kZWxldGUiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ291cG9uQGRlbGV0ZSI7czoxMDoiY29udHJvbGxlciI7czo0MzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ291cG9uQGRlbGV0ZSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDU6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNDoiL2FwaS9hZG1pbi9jb3Vwb24vZGVsZXRlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMwOiIjXi9hcGkvYWRtaW4vY291cG9uL2RlbGV0ZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI0OiIvYXBpL2FkbWluL2NvdXBvbi9kZWxldGUiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE1OiJhcGkvYWRtaW4vb3JkZXIiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE1OiJhcGkvYWRtaW4vb3JkZXIiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAZ2V0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxPcmRlckBnZXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MjgxOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTY6Ii9hcGkvYWRtaW4vb3JkZXIiO3M6MTA6InBhdGhfcmVnZXgiO3M6MjI6IiNeL2FwaS9hZG1pbi9vcmRlciQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE2OiIvYXBpL2FkbWluL29yZGVyIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMDoiYXBpL2FkbWluL29yZGVyL2luZm8iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIwOiJhcGkvYWRtaW4vb3JkZXIvaW5mbyI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxPcmRlckBpbmZvIjtzOjEwOiJjb250cm9sbGVyIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxPcmRlckBpbmZvIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5Njp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIxOiIvYXBpL2FkbWluL29yZGVyL2luZm8iO3M6MTA6InBhdGhfcmVnZXgiO3M6Mjc6IiNeL2FwaS9hZG1pbi9vcmRlci9pbmZvJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjE6Ii9hcGkvYWRtaW4vb3JkZXIvaW5mbyI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9vcmRlci9yZW1hcmsiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vb3JkZXIvcmVtYXJrIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHJlbWFyayI7czoxMDoiY29udHJvbGxlciI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAcmVtYXJrIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL29yZGVyL3JlbWFyayI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL29yZGVyL3JlbWFyayQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL29yZGVyL3JlbWFyayI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MzE6ImFwaS9hZG1pbi9vcmRlci9zZXRfc2VuZF9zdGF0dXMiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjMxOiJhcGkvYWRtaW4vb3JkZXIvc2V0X3NlbmRfc3RhdHVzIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NTE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHNldF9zZW5kX3N0YXR1cyI7czoxMDoiY29udHJvbGxlciI7czo1MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAc2V0X3NlbmRfc3RhdHVzIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMyOTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjMyOiIvYXBpL2FkbWluL29yZGVyL3NldF9zZW5kX3N0YXR1cyI7czoxMDoicGF0aF9yZWdleCI7czozODoiI14vYXBpL2FkbWluL29yZGVyL3NldF9zZW5kX3N0YXR1cyQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjMyOiIvYXBpL2FkbWluL29yZGVyL3NldF9zZW5kX3N0YXR1cyI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjA6ImFwaS9hZG1pbi9vcmRlci9zaGlwIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyMDoiYXBpL2FkbWluL29yZGVyL3NoaXAiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAc2hpcCI7czoxMDoiY29udHJvbGxlciI7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAc2hpcCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTY6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMToiL2FwaS9hZG1pbi9vcmRlci9zaGlwIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI3OiIjXi9hcGkvYWRtaW4vb3JkZXIvc2hpcCQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIxOiIvYXBpL2FkbWluL29yZGVyL3NoaXAiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjEzOiJhcGkvYWRtaW4vbG9nIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxMzoiYXBpL2FkbWluL2xvZyI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxMb2dAZ2V0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxMb2dAZ2V0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI3NTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE0OiIvYXBpL2FkbWluL2xvZyI7czoxMDoicGF0aF9yZWdleCI7czoyMDoiI14vYXBpL2FkbWluL2xvZyQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE0OiIvYXBpL2FkbWluL2xvZyI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9vcmRlci9kZWxldGUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vb3JkZXIvZGVsZXRlIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQGRlbGV0ZSI7czoxMDoiY29udHJvbGxlciI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cT3JkZXJAZGVsZXRlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL29yZGVyL2RlbGV0ZSI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL29yZGVyL2RlbGV0ZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL29yZGVyL2RlbGV0ZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjI6ImFwaS9hZG1pbi9vcmRlci9mcmVlemUiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vb3JkZXIvZnJlZXplIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQGZyZWV6ZSI7czoxMDoiY29udHJvbGxlciI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cT3JkZXJAZnJlZXplIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMwMjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjIzOiIvYXBpL2FkbWluL29yZGVyL2ZyZWV6ZSI7czoxMDoicGF0aF9yZWdleCI7czoyOToiI14vYXBpL2FkbWluL29yZGVyL2ZyZWV6ZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjIzOiIvYXBpL2FkbWluL29yZGVyL2ZyZWV6ZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjQ6ImFwaS9hZG1pbi9vcmRlci91bmZyZWV6ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjQ6ImFwaS9hZG1pbi9vcmRlci91bmZyZWV6ZSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxPcmRlckB1bmZyZWV6ZSI7czoxMDoiY29udHJvbGxlciI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cT3JkZXJAdW5mcmVlemUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzA4OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjU6Ii9hcGkvYWRtaW4vb3JkZXIvdW5mcmVlemUiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzE6IiNeL2FwaS9hZG1pbi9vcmRlci91bmZyZWV6ZSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI1OiIvYXBpL2FkbWluL29yZGVyL3VuZnJlZXplIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNDoiYXBpL2FkbWluL29yZGVyL3NldF9wYWlkIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyNDoiYXBpL2FkbWluL29yZGVyL3NldF9wYWlkIjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQHNldF9wYWlkIjtzOjEwOiJjb250cm9sbGVyIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxPcmRlckBzZXRfcGFpZCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMDg6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNToiL2FwaS9hZG1pbi9vcmRlci9zZXRfcGFpZCI7czoxMDoicGF0aF9yZWdleCI7czozMToiI14vYXBpL2FkbWluL29yZGVyL3NldF9wYWlkJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjU6Ii9hcGkvYWRtaW4vb3JkZXIvc2V0X3BhaWQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI1OiJhcGkvYWRtaW4vd2ViL2NhY2hlL2NsZWFyIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyNToiYXBpL2FkbWluL3dlYi9jYWNoZS9jbGVhciI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjM6e2k6MDtzOjM6ImFwaSI7aToxO3M6NDoiYXV0aCI7aToyO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjQ3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxEYXNoYm9hcmRAY2xlYXJDYWNoZSI7czoxMDoiY29udHJvbGxlciI7czo0NzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cRGFzaGJvYXJkQGNsZWFyQ2FjaGUiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzExOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjY6Ii9hcGkvYWRtaW4vd2ViL2NhY2hlL2NsZWFyIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMyOiIjXi9hcGkvYWRtaW4vd2ViL2NhY2hlL2NsZWFyJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjY6Ii9hcGkvYWRtaW4vd2ViL2NhY2hlL2NsZWFyIjt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxNToiYXBpL3Nob3AvdmVyaWZ5IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxNToiYXBpL3Nob3AvdmVyaWZ5IjtzOjc6Im1ldGhvZHMiO2E6MTp7aTowO3M6NDoiUE9TVCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mjp7aTowO3M6MzoiYXBpIjtpOjE7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDY6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcVmVyaWZ5Q29kZUBnZXRWZXJpZnkiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDY6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcVmVyaWZ5Q29kZUBnZXRWZXJpZnkiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6ODoiYXBpL3Nob3AiO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyODE6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxNjoiL2FwaS9zaG9wL3ZlcmlmeSI7czoxMDoicGF0aF9yZWdleCI7czoyMjoiI14vYXBpL3Nob3AvdmVyaWZ5JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTY6Ii9hcGkvc2hvcC92ZXJpZnkiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE2OiJhcGkvc2hvcC9wcm9kdWN0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxNjoiYXBpL3Nob3AvcHJvZHVjdCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjI6e2k6MDtzOjM6ImFwaSI7aToxO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFByb2R1Y3RAZ2V0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFByb2R1Y3RAZ2V0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjg6ImFwaS9zaG9wIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjg0OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MTc6Ii9hcGkvc2hvcC9wcm9kdWN0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjIzOiIjXi9hcGkvc2hvcC9wcm9kdWN0JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTc6Ii9hcGkvc2hvcC9wcm9kdWN0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyNToiYXBpL3Nob3AvcHJvZHVjdC9wYXNzd29yZCI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MjU6ImFwaS9zaG9wL3Byb2R1Y3QvcGFzc3dvcmQiO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToyOntpOjA7czozOiJhcGkiO2k6MTtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQcm9kdWN0QHZlcmlmeVBhc3N3b3JkIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFByb2R1Y3RAdmVyaWZ5UGFzc3dvcmQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6ODoiYXBpL3Nob3AiO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozMTE6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyNjoiL2FwaS9zaG9wL3Byb2R1Y3QvcGFzc3dvcmQiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzI6IiNeL2FwaS9zaG9wL3Byb2R1Y3QvcGFzc3dvcmQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyNjoiL2FwaS9zaG9wL3Byb2R1Y3QvcGFzc3dvcmQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE1OiJhcGkvc2hvcC9jb3Vwb24iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE1OiJhcGkvc2hvcC9jb3Vwb24iO3M6NzoibWV0aG9kcyI7YToxOntpOjA7czo0OiJQT1NUIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToyOntpOjA7czozOiJhcGkiO2k6MTtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxDb3Vwb25AaW5mbyI7czoxMDoiY29udHJvbGxlciI7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxDb3Vwb25AaW5mbyI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo4OiJhcGkvc2hvcCI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI4MTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE2OiIvYXBpL3Nob3AvY291cG9uIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjIyOiIjXi9hcGkvc2hvcC9jb3Vwb24kI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxNjoiL2FwaS9zaG9wL2NvdXBvbiI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTI6ImFwaS9zaG9wL2J1eSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTI6ImFwaS9zaG9wL2J1eSI7czo3OiJtZXRob2RzIjthOjc6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7aToyO3M6NDoiUE9TVCI7aTozO3M6MzoiUFVUIjtpOjQ7czo1OiJQQVRDSCI7aTo1O3M6NjoiREVMRVRFIjtpOjY7czo3OiJPUFRJT05TIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToyOntpOjA7czozOiJhcGkiO2k6MTtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozMzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQYXlAYnV5IjtzOjEwOiJjb250cm9sbGVyIjtzOjMzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBidXkiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6ODoiYXBpL3Nob3AiO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyNzI6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxMzoiL2FwaS9zaG9wL2J1eSI7czoxMDoicGF0aF9yZWdleCI7czoxOToiI14vYXBpL3Nob3AvYnV5JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTM6Ii9hcGkvc2hvcC9idXkiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE5OiJhcGkvc2hvcC9yZWNvcmQvZ2V0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxOToiYXBpL3Nob3AvcmVjb3JkL2dldCI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjI6e2k6MDtzOjM6ImFwaSI7aToxO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXE9yZGVyQGdldCI7czoxMDoiY29udHJvbGxlciI7czozNToiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxPcmRlckBnZXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6ODoiYXBpL3Nob3AiO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTM6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyMDoiL2FwaS9zaG9wL3JlY29yZC9nZXQiO3M6MTA6InBhdGhfcmVnZXgiO3M6MjY6IiNeL2FwaS9zaG9wL3JlY29yZC9nZXQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMDoiL2FwaS9zaG9wL3JlY29yZC9nZXQiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjI1OiJhcGkvcXJjb2RlL3F1ZXJ5L3twYXlfaWR9IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoyNToiYXBpL3FyY29kZS9xdWVyeS97cGF5X2lkfSI7czo3OiJtZXRob2RzIjthOjE6e2k6MDtzOjQ6IlBPU1QiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjI6e2k6MDtzOjM6ImFwaSI7aToxO3M6MzoiYXBpIjt9czo0OiJ1c2VzIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBxclF1ZXJ5IjtzOjEwOiJjb250cm9sbGVyIjtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBxclF1ZXJ5IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjM6ImFwaSI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjQxMjp7YTo4OntzOjQ6InZhcnMiO2E6MTp7aTowO3M6NjoicGF5X2lkIjt9czoxMToicGF0aF9wcmVmaXgiO3M6MTc6Ii9hcGkvcXJjb2RlL3F1ZXJ5IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjQyOiIjXi9hcGkvcXJjb2RlL3F1ZXJ5Lyg/UDxwYXlfaWQ+W14vXSsrKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjY6InBheV9pZCI7fWk6MTthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE3OiIvYXBpL3FyY29kZS9xdWVyeSI7fX1zOjk6InBhdGhfdmFycyI7YToxOntpOjA7czo2OiJwYXlfaWQiO31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czozNDoicGF5L3JldHVybi97cGF5X2lkfS97b3V0X3RyYWRlX25vfSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MzQ6InBheS9yZXR1cm4ve3BheV9pZH0ve291dF90cmFkZV9ub30iO3M6NzoibWV0aG9kcyI7YTo3OntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO2k6MjtzOjQ6IlBPU1QiO2k6MztzOjM6IlBVVCI7aTo0O3M6NToiUEFUQ0giO2k6NTtzOjY6IkRFTEVURSI7aTo2O3M6NzoiT1BUSU9OUyI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXlSZXR1cm4iO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcUGF5QHBheVJldHVybiI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7TjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6NTQ5OnthOjg6e3M6NDoidmFycyI7YToyOntpOjA7czo2OiJwYXlfaWQiO2k6MTtzOjEyOiJvdXRfdHJhZGVfbm8iO31zOjExOiJwYXRoX3ByZWZpeCI7czoxMToiL3BheS9yZXR1cm4iO3M6MTA6InBhdGhfcmVnZXgiO3M6NjE6IiNeL3BheS9yZXR1cm4vKD9QPHBheV9pZD5bXi9dKyspLyg/UDxvdXRfdHJhZGVfbm8+W14vXSsrKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjM6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjEyOiJvdXRfdHJhZGVfbm8iO31pOjE7YTo0OntpOjA7czo4OiJ2YXJpYWJsZSI7aToxO3M6MToiLyI7aToyO3M6NjoiW14vXSsrIjtpOjM7czo2OiJwYXlfaWQiO31pOjI7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxMToiL3BheS9yZXR1cm4iO319czo5OiJwYXRoX3ZhcnMiO2E6Mjp7aTowO3M6NjoicGF5X2lkIjtpOjE7czoxMjoib3V0X3RyYWRlX25vIjt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTk6InBheS9yZXR1cm4ve3BheV9pZH0iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE5OiJwYXkvcmV0dXJuL3twYXlfaWR9IjtzOjc6Im1ldGhvZHMiO2E6Nzp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjtpOjI7czo0OiJQT1NUIjtpOjM7czozOiJQVVQiO2k6NDtzOjU6IlBBVENIIjtpOjU7czo2OiJERUxFVEUiO2k6NjtzOjc6Ik9QVElPTlMiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQYXlAcGF5UmV0dXJuIjtzOjEwOiJjb250cm9sbGVyIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXlSZXR1cm4iO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjM5NDp7YTo4OntzOjQ6InZhcnMiO2E6MTp7aTowO3M6NjoicGF5X2lkIjt9czoxMToicGF0aF9wcmVmaXgiO3M6MTE6Ii9wYXkvcmV0dXJuIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjM2OiIjXi9wYXkvcmV0dXJuLyg/UDxwYXlfaWQ+W14vXSsrKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjY6InBheV9pZCI7fWk6MTthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjExOiIvcGF5L3JldHVybiI7fX1zOjk6InBhdGhfdmFycyI7YToxOntpOjA7czo2OiJwYXlfaWQiO31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxOToicGF5L25vdGlmeS97cGF5X2lkfSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTk6InBheS9ub3RpZnkve3BheV9pZH0iO3M6NzoibWV0aG9kcyI7YTo3OntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO2k6MjtzOjQ6IlBPU1QiO2k6MztzOjM6IlBVVCI7aTo0O3M6NToiUEFUQ0giO2k6NTtzOjY6IkRFTEVURSI7aTo2O3M6NzoiT1BUSU9OUyI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXlOb3RpZnkiO3M6MTA6ImNvbnRyb2xsZXIiO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcUGF5QHBheU5vdGlmeSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7TjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mzk0OnthOjg6e3M6NDoidmFycyI7YToxOntpOjA7czo2OiJwYXlfaWQiO31zOjExOiJwYXRoX3ByZWZpeCI7czoxMToiL3BheS9ub3RpZnkiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzY6IiNeL3BheS9ub3RpZnkvKD9QPHBheV9pZD5bXi9dKyspJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6Mjp7aTowO2E6NDp7aTowO3M6ODoidmFyaWFibGUiO2k6MTtzOjE6Ii8iO2k6MjtzOjY6IlteL10rKyI7aTozO3M6NjoicGF5X2lkIjt9aToxO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTE6Ii9wYXkvbm90aWZ5Ijt9fXM6OToicGF0aF92YXJzIjthOjE6e2k6MDtzOjY6InBheV9pZCI7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX19czozOiJHRVQiO2E6MzA6e3M6MjE6ImFwaS9hZG1pbi9zeXN0ZW0vaW5mbyI7cjoyMDU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS90aGVtZSI7cjoyNDU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS9vcmRlciI7cjoyODU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS92Y29kZSI7cjozMjU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS9lbWFpbCI7cjozNjU7czoyMDoiYXBpL2FkbWluL3N5c3RlbS9zbXMiO3I6NDA1O3M6MjQ6ImFwaS9hZG1pbi9zeXN0ZW0vc3RvcmFnZSI7cjo0NDU7czoxODoiYXBpL2FkbWluL3BheS9zdGF0IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxODoiYXBpL2FkbWluL3BheS9zdGF0IjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czozNToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QHN0YXQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6MzU6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBzdGF0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI5MDp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE5OiIvYXBpL2FkbWluL3BheS9zdGF0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI1OiIjXi9hcGkvYWRtaW4vcGF5L3N0YXQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoxOToiL2FwaS9hZG1pbi9wYXkvc3RhdCI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MjE6ImFwaS9hZG1pbi9jYXJkL2V4cG9ydCI7cjoxNDAzO3M6MjI6ImFwaS9hZG1pbi9vcmRlci9leHBvcnQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIyOiJhcGkvYWRtaW4vb3JkZXIvZXhwb3J0IjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAZXhwb3J0IjtzOjEwOiJjb250cm9sbGVyIjtzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxPcmRlckBleHBvcnQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6MzAyOnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjM6Ii9hcGkvYWRtaW4vb3JkZXIvZXhwb3J0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI5OiIjXi9hcGkvYWRtaW4vb3JkZXIvZXhwb3J0JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjM6Ii9hcGkvYWRtaW4vb3JkZXIvZXhwb3J0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoyMDoiYXBpL2FkbWluL29yZGVyL3N0YXQiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIwOiJhcGkvYWRtaW4vb3JkZXIvc3RhdCI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHN0YXQiO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHN0YXQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO3M6OToiYXBpL2FkbWluIjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mjk2OnthOjg6e3M6NDoidmFycyI7YTowOnt9czoxMToicGF0aF9wcmVmaXgiO3M6MjE6Ii9hcGkvYWRtaW4vb3JkZXIvc3RhdCI7czoxMDoicGF0aF9yZWdleCI7czoyNzoiI14vYXBpL2FkbWluL29yZGVyL3N0YXQkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czoyMToiL2FwaS9hZG1pbi9vcmRlci9zdGF0Ijt9fXM6OToicGF0aF92YXJzIjthOjA6e31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxODoiYXBpL2FkbWluL3dlYi9sb2dzIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxODoiYXBpL2FkbWluL3dlYi9sb2dzIjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo1NToiXFJhcDJocG91dHJlXExhcmF2ZWxMb2dWaWV3ZXJcTG9nVmlld2VyQ29udHJvbGxlckBpbmRleCI7czoxMDoiY29udHJvbGxlciI7czo1NToiXFJhcDJocG91dHJlXExhcmF2ZWxMb2dWaWV3ZXJcTG9nVmlld2VyQ29udHJvbGxlckBpbmRleCI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7czo5OiJhcGkvYWRtaW4iO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyOTA6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxOToiL2FwaS9hZG1pbi93ZWIvbG9ncyI7czoxMDoicGF0aF9yZWdleCI7czoyNToiI14vYXBpL2FkbWluL3dlYi9sb2dzJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTk6Ii9hcGkvYWRtaW4vd2ViL2xvZ3MiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE3OiJhcGkvYWRtaW4vdmVyc2lvbiI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTc6ImFwaS9hZG1pbi92ZXJzaW9uIjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YTozOntpOjA7czozOiJhcGkiO2k6MTtzOjQ6ImF1dGgiO2k6MjtzOjM6ImFwaSI7fXM6NDoidXNlcyI7czo0NDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cRGFzaGJvYXJkQHZlcnNpb24iO3M6MTA6ImNvbnRyb2xsZXIiO3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXERhc2hib2FyZEB2ZXJzaW9uIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI4Nzp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjE4OiIvYXBpL2FkbWluL3ZlcnNpb24iO3M6MTA6InBhdGhfcmVnZXgiO3M6MjQ6IiNeL2FwaS9hZG1pbi92ZXJzaW9uJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTg6Ii9hcGkvYWRtaW4vdmVyc2lvbiI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MzA6ImFwaS9hZG1pbi92ZXJzaW9uL2NoZWNrX3VwZGF0ZSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MzA6ImFwaS9hZG1pbi92ZXJzaW9uL2NoZWNrX3VwZGF0ZSI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6Mzp7aTowO3M6MzoiYXBpIjtpOjE7czo0OiJhdXRoIjtpOjI7czozOiJhcGkiO31zOjQ6InVzZXMiO3M6NDg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXERhc2hib2FyZEBjaGVja1VwZGF0ZSI7czoxMDoiY29udHJvbGxlciI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cRGFzaGJvYXJkQGNoZWNrVXBkYXRlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtzOjk6ImFwaS9hZG1pbiI7czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjMyNjp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjMxOiIvYXBpL2FkbWluL3ZlcnNpb24vY2hlY2tfdXBkYXRlIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjM3OiIjXi9hcGkvYWRtaW4vdmVyc2lvbi9jaGVja191cGRhdGUkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czozMToiL2FwaS9hZG1pbi92ZXJzaW9uL2NoZWNrX3VwZGF0ZSI7fX1zOjk6InBhdGhfdmFycyI7YTowOnt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTI6ImFwaS9zaG9wL2J1eSI7cjoyMjg5O3M6MToiLyI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MToiLyI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBzaG9wIjtzOjEwOiJjb250cm9sbGVyIjtzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBzaG9wIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtOO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyMzM6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoxOiIvIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjc6IiNeLyQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjE6e2k6MDthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjE6Ii8iO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjc6Imluc3RhbGwiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjc6Imluc3RhbGwiO3M6NzoibWV0aG9kcyI7YToyOntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcRGV2Q29udHJvbGxlckBpbnN0YWxsIjtzOjEwOiJjb250cm9sbGVyIjtzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xEZXZDb250cm9sbGVyQGluc3RhbGwiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI1NTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjg6Ii9pbnN0YWxsIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjE0OiIjXi9pbnN0YWxsJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6ODoiL2luc3RhbGwiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjQ6InRlc3QiO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjQ6InRlc3QiO3M6NzoibWV0aG9kcyI7YToyOntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcRGV2Q29udHJvbGxlckB0ZXN0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xEZXZDb250cm9sbGVyQHRlc3QiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI0Njp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjU6Ii90ZXN0IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjExOiIjXi90ZXN0JCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6NToiL3Rlc3QiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE5OiJzdG9yYWdlL3tmaWxlX3BhdGh9IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxOToic3RvcmFnZS97ZmlsZV9wYXRofSI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjQ2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxGaWxlQHJlbmRlckltYWdlIjtzOjEwOiJjb250cm9sbGVyIjtzOjQ2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxGaWxlQHJlbmRlckltYWdlIjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtOO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YToxOntzOjk6ImZpbGVfcGF0aCI7czoyOiIuKyI7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6Mzg3OnthOjg6e3M6NDoidmFycyI7YToxOntpOjA7czo5OiJmaWxlX3BhdGgiO31zOjExOiJwYXRoX3ByZWZpeCI7czo4OiIvc3RvcmFnZSI7czoxMDoicGF0aF9yZWdleCI7czozMjoiI14vc3RvcmFnZS8oP1A8ZmlsZV9wYXRoPi4rKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czoyOiIuKyI7aTozO3M6OToiZmlsZV9wYXRoIjt9aToxO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6ODoiL3N0b3JhZ2UiO319czo5OiJwYXRoX3ZhcnMiO2E6MTp7aTowO3M6OToiZmlsZV9wYXRoIjt9czoxMDoiaG9zdF9yZWdleCI7TjtzOjExOiJob3N0X3Rva2VucyI7YTowOnt9czo5OiJob3N0X3ZhcnMiO2E6MDp7fX19fXM6MTQ6InBheS97b3JkZXJfbm99IjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxNDoicGF5L3tvcmRlcl9ub30iO3M6NzoibWV0aG9kcyI7YToyOntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czozMzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQYXlAcGF5IjtzOjEwOiJjb250cm9sbGVyIjtzOjMzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXkiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjM3OTp7YTo4OntzOjQ6InZhcnMiO2E6MTp7aTowO3M6ODoib3JkZXJfbm8iO31zOjExOiJwYXRoX3ByZWZpeCI7czo0OiIvcGF5IjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjMxOiIjXi9wYXkvKD9QPG9yZGVyX25vPlteL10rKykkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToyOntpOjA7YTo0OntpOjA7czo4OiJ2YXJpYWJsZSI7aToxO3M6MToiLyI7aToyO3M6NjoiW14vXSsrIjtpOjM7czo4OiJvcmRlcl9ubyI7fWk6MTthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjQ6Ii9wYXkiO319czo5OiJwYXRoX3ZhcnMiO2E6MTp7aTowO3M6ODoib3JkZXJfbm8iO31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czozNDoicGF5L3JldHVybi97cGF5X2lkfS97b3V0X3RyYWRlX25vfSI7cjoyNDAxO3M6MTk6InBheS9yZXR1cm4ve3BheV9pZH0iO3I6MjQ1MztzOjE5OiJwYXkvbm90aWZ5L3twYXlfaWR9IjtyOjI0OTg7czozMjoicXJjb2RlL3BheS97b3JkZXJfbm99L3twYXlfZmlsZX0iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjMyOiJxcmNvZGUvcGF5L3tvcmRlcl9ub30ve3BheV9maWxlfSI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjM2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBxcmNvZGUiO3M6MTA6ImNvbnRyb2xsZXIiO3M6MzY6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcUGF5QHFyY29kZSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7TjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6NTM4OnthOjg6e3M6NDoidmFycyI7YToyOntpOjA7czo4OiJvcmRlcl9ubyI7aToxO3M6ODoicGF5X2ZpbGUiO31zOjExOiJwYXRoX3ByZWZpeCI7czoxMToiL3FyY29kZS9wYXkiO3M6MTA6InBhdGhfcmVnZXgiO3M6NTk6IiNeL3FyY29kZS9wYXkvKD9QPG9yZGVyX25vPlteL10rKykvKD9QPHBheV9maWxlPlteL10rKykkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YTozOntpOjA7YTo0OntpOjA7czo4OiJ2YXJpYWJsZSI7aToxO3M6MToiLyI7aToyO3M6NjoiW14vXSsrIjtpOjM7czo4OiJwYXlfZmlsZSI7fWk6MTthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjg6Im9yZGVyX25vIjt9aToyO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MTE6Ii9xcmNvZGUvcGF5Ijt9fXM6OToicGF0aF92YXJzIjthOjI6e2k6MDtzOjg6Im9yZGVyX25vIjtpOjE7czo4OiJwYXlfZmlsZSI7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjIxOiJwYXkvcmVzdWx0L3tvcmRlcl9ub30iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjIxOiJwYXkvcmVzdWx0L3tvcmRlcl9ub30iO3M6NzoibWV0aG9kcyI7YToyOntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czozNjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQYXlAcmVzdWx0IjtzOjEwOiJjb250cm9sbGVyIjtzOjM2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUByZXN1bHQiO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjQwMjp7YTo4OntzOjQ6InZhcnMiO2E6MTp7aTowO3M6ODoib3JkZXJfbm8iO31zOjExOiJwYXRoX3ByZWZpeCI7czoxMToiL3BheS9yZXN1bHQiO3M6MTA6InBhdGhfcmVnZXgiO3M6Mzg6IiNeL3BheS9yZXN1bHQvKD9QPG9yZGVyX25vPlteL10rKykkI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToyOntpOjA7YTo0OntpOjA7czo4OiJ2YXJpYWJsZSI7aToxO3M6MToiLyI7aToyO3M6NjoiW14vXSsrIjtpOjM7czo4OiJvcmRlcl9ubyI7fWk6MTthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjExOiIvcGF5L3Jlc3VsdCI7fX1zOjk6InBhdGhfdmFycyI7YToxOntpOjA7czo4OiJvcmRlcl9ubyI7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjU6ImFkbWluIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czo1OiJhZG1pbiI7czo3OiJtZXRob2RzIjthOjI6e2k6MDtzOjM6IkdFVCI7aToxO3M6NDoiSEVBRCI7fXM6NjoiYWN0aW9uIjthOjY6e3M6MTA6Im1pZGRsZXdhcmUiO2E6MTp7aTowO3M6Mzoid2ViIjt9czo0OiJ1c2VzIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBhZG1pbiI7czoxMDoiY29udHJvbGxlciI7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAYWRtaW4iO3M6OToibmFtZXNwYWNlIjtzOjIwOiJBcHBcSHR0cFxDb250cm9sbGVycyI7czo2OiJwcmVmaXgiO047czo1OiJ3aGVyZSI7YTowOnt9fXM6MTA6ImlzRmFsbGJhY2siO2I6MDtzOjEwOiJjb250cm9sbGVyIjtOO3M6ODoiZGVmYXVsdHMiO2E6MDp7fXM6Njoid2hlcmVzIjthOjA6e31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjI0OTp7YTo4OntzOjQ6InZhcnMiO2E6MDp7fXM6MTE6InBhdGhfcHJlZml4IjtzOjY6Ii9hZG1pbiI7czoxMDoicGF0aF9yZWdleCI7czoxMjoiI14vYWRtaW4kI3NEIjtzOjExOiJwYXRoX3Rva2VucyI7YToxOntpOjA7YToyOntpOjA7czo0OiJ0ZXh0IjtpOjE7czo2OiIvYWRtaW4iO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjExOiJhZG1pbi97YWxsfSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTE6ImFkbWluL3thbGx9IjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToxOntpOjA7czozOiJ3ZWIiO31zOjQ6InVzZXMiO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEhvbWVDb250cm9sbGVyQGFkbWluIjtzOjEwOiJjb250cm9sbGVyIjtzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBhZG1pbiI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7TjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MTp7czozOiJhbGwiO3M6MjoiLioiO31zOjEwOiJwYXJhbWV0ZXJzIjtOO3M6MTQ6InBhcmFtZXRlck5hbWVzIjtOO3M6MTg6ImNvbXB1dGVkTWlkZGxld2FyZSI7TjtzOjg6ImNvbXBpbGVkIjtDOjM5OiJTeW1mb255XENvbXBvbmVudFxSb3V0aW5nXENvbXBpbGVkUm91dGUiOjM1Nzp7YTo4OntzOjQ6InZhcnMiO2E6MTp7aTowO3M6MzoiYWxsIjt9czoxMToicGF0aF9wcmVmaXgiO3M6NjoiL2FkbWluIjtzOjEwOiJwYXRoX3JlZ2V4IjtzOjI0OiIjXi9hZG1pbi8oP1A8YWxsPi4qKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czoyOiIuKiI7aTozO3M6MzoiYWxsIjt9aToxO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6NjoiL2FkbWluIjt9fXM6OToicGF0aF92YXJzIjthOjE6e2k6MDtzOjM6ImFsbCI7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE4OiJjL3tlbl9jYXRlZ29yeV9pZH0iO086MjQ6IklsbHVtaW5hdGVcUm91dGluZ1xSb3V0ZSI6MTE6e3M6MzoidXJpIjtzOjE4OiJjL3tlbl9jYXRlZ29yeV9pZH0iO3M6NzoibWV0aG9kcyI7YToyOntpOjA7czozOiJHRVQiO2k6MTtzOjQ6IkhFQUQiO31zOjY6ImFjdGlvbiI7YTo2OntzOjEwOiJtaWRkbGV3YXJlIjthOjE6e2k6MDtzOjM6IndlYiI7fXM6NDoidXNlcyI7czo0OToiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAc2hvcF9jYXRlZ29yeSI7czoxMDoiY29udHJvbGxlciI7czo0OToiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAc2hvcF9jYXRlZ29yeSI7czo5OiJuYW1lc3BhY2UiO3M6MjA6IkFwcFxIdHRwXENvbnRyb2xsZXJzIjtzOjY6InByZWZpeCI7TjtzOjU6IndoZXJlIjthOjA6e319czoxMDoiaXNGYWxsYmFjayI7YjowO3M6MTA6ImNvbnRyb2xsZXIiO047czo4OiJkZWZhdWx0cyI7YTowOnt9czo2OiJ3aGVyZXMiO2E6MDp7fXM6MTA6InBhcmFtZXRlcnMiO047czoxNDoicGFyYW1ldGVyTmFtZXMiO047czoxODoiY29tcHV0ZWRNaWRkbGV3YXJlIjtOO3M6ODoiY29tcGlsZWQiO0M6Mzk6IlN5bWZvbnlcQ29tcG9uZW50XFJvdXRpbmdcQ29tcGlsZWRSb3V0ZSI6NDAwOnthOjg6e3M6NDoidmFycyI7YToxOntpOjA7czoxNDoiZW5fY2F0ZWdvcnlfaWQiO31zOjExOiJwYXRoX3ByZWZpeCI7czoyOiIvYyI7czoxMDoicGF0aF9yZWdleCI7czozNToiI14vYy8oP1A8ZW5fY2F0ZWdvcnlfaWQ+W14vXSsrKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjE0OiJlbl9jYXRlZ29yeV9pZCI7fWk6MTthOjI6e2k6MDtzOjQ6InRleHQiO2k6MTtzOjI6Ii9jIjt9fXM6OToicGF0aF92YXJzIjthOjE6e2k6MDtzOjE0OiJlbl9jYXRlZ29yeV9pZCI7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX1zOjE3OiJwL3tlbl9wcm9kdWN0X2lkfSI7TzoyNDoiSWxsdW1pbmF0ZVxSb3V0aW5nXFJvdXRlIjoxMTp7czozOiJ1cmkiO3M6MTc6InAve2VuX3Byb2R1Y3RfaWR9IjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToxOntpOjA7czozOiJ3ZWIiO31zOjQ6InVzZXMiO3M6NDg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEhvbWVDb250cm9sbGVyQHNob3BfcHJvZHVjdCI7czoxMDoiY29udHJvbGxlciI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAc2hvcF9wcm9kdWN0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtOO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjozOTY6e2E6ODp7czo0OiJ2YXJzIjthOjE6e2k6MDtzOjEzOiJlbl9wcm9kdWN0X2lkIjt9czoxMToicGF0aF9wcmVmaXgiO3M6MjoiL3AiO3M6MTA6InBhdGhfcmVnZXgiO3M6MzQ6IiNeL3AvKD9QPGVuX3Byb2R1Y3RfaWQ+W14vXSsrKSQjc0QiO3M6MTE6InBhdGhfdG9rZW5zIjthOjI6e2k6MDthOjQ6e2k6MDtzOjg6InZhcmlhYmxlIjtpOjE7czoxOiIvIjtpOjI7czo2OiJbXi9dKysiO2k6MztzOjEzOiJlbl9wcm9kdWN0X2lkIjt9aToxO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjoiL3AiO319czo5OiJwYXRoX3ZhcnMiO2E6MTp7aTowO3M6MTM6ImVuX3Byb2R1Y3RfaWQiO31zOjEwOiJob3N0X3JlZ2V4IjtOO3M6MTE6Imhvc3RfdG9rZW5zIjthOjA6e31zOjk6Imhvc3RfdmFycyI7YTowOnt9fX19czoxOiJzIjtPOjI0OiJJbGx1bWluYXRlXFJvdXRpbmdcUm91dGUiOjExOntzOjM6InVyaSI7czoxOiJzIjtzOjc6Im1ldGhvZHMiO2E6Mjp7aTowO3M6MzoiR0VUIjtpOjE7czo0OiJIRUFEIjt9czo2OiJhY3Rpb24iO2E6Njp7czoxMDoibWlkZGxld2FyZSI7YToxOntpOjA7czozOiJ3ZWIiO31zOjQ6InVzZXMiO3M6NDg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEhvbWVDb250cm9sbGVyQHNob3BfZGVmYXVsdCI7czoxMDoiY29udHJvbGxlciI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAc2hvcF9kZWZhdWx0IjtzOjk6Im5hbWVzcGFjZSI7czoyMDoiQXBwXEh0dHBcQ29udHJvbGxlcnMiO3M6NjoicHJlZml4IjtOO3M6NToid2hlcmUiO2E6MDp7fX1zOjEwOiJpc0ZhbGxiYWNrIjtiOjA7czoxMDoiY29udHJvbGxlciI7TjtzOjg6ImRlZmF1bHRzIjthOjA6e31zOjY6IndoZXJlcyI7YTowOnt9czoxMDoicGFyYW1ldGVycyI7TjtzOjE0OiJwYXJhbWV0ZXJOYW1lcyI7TjtzOjE4OiJjb21wdXRlZE1pZGRsZXdhcmUiO047czo4OiJjb21waWxlZCI7QzozOToiU3ltZm9ueVxDb21wb25lbnRcUm91dGluZ1xDb21waWxlZFJvdXRlIjoyMzY6e2E6ODp7czo0OiJ2YXJzIjthOjA6e31zOjExOiJwYXRoX3ByZWZpeCI7czoyOiIvcyI7czoxMDoicGF0aF9yZWdleCI7czo4OiIjXi9zJCNzRCI7czoxMToicGF0aF90b2tlbnMiO2E6MTp7aTowO2E6Mjp7aTowO3M6NDoidGV4dCI7aToxO3M6MjoiL3MiO319czo5OiJwYXRoX3ZhcnMiO2E6MDp7fXM6MTA6Imhvc3RfcmVnZXgiO047czoxMToiaG9zdF90b2tlbnMiO2E6MDp7fXM6OToiaG9zdF92YXJzIjthOjA6e319fX19czo0OiJIRUFEIjthOjMwOntzOjIxOiJhcGkvYWRtaW4vc3lzdGVtL2luZm8iO3I6MjA1O3M6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vdGhlbWUiO3I6MjQ1O3M6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vb3JkZXIiO3I6Mjg1O3M6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vdmNvZGUiO3I6MzI1O3M6MjI6ImFwaS9hZG1pbi9zeXN0ZW0vZW1haWwiO3I6MzY1O3M6MjA6ImFwaS9hZG1pbi9zeXN0ZW0vc21zIjtyOjQwNTtzOjI0OiJhcGkvYWRtaW4vc3lzdGVtL3N0b3JhZ2UiO3I6NDQ1O3M6MTg6ImFwaS9hZG1pbi9wYXkvc3RhdCI7cjoyNTUxO3M6MjE6ImFwaS9hZG1pbi9jYXJkL2V4cG9ydCI7cjoxNDAzO3M6MjI6ImFwaS9hZG1pbi9vcmRlci9leHBvcnQiO3I6MjU4NztzOjIwOiJhcGkvYWRtaW4vb3JkZXIvc3RhdCI7cjoyNjIyO3M6MTg6ImFwaS9hZG1pbi93ZWIvbG9ncyI7cjoyNjU3O3M6MTc6ImFwaS9hZG1pbi92ZXJzaW9uIjtyOjI2OTI7czozMDoiYXBpL2FkbWluL3ZlcnNpb24vY2hlY2tfdXBkYXRlIjtyOjI3Mjc7czoxMjoiYXBpL3Nob3AvYnV5IjtyOjIyODk7czoxOiIvIjtyOjI3NjM7czo3OiJpbnN0YWxsIjtyOjI3OTY7czo0OiJ0ZXN0IjtyOjI4Mjk7czoxOToic3RvcmFnZS97ZmlsZV9wYXRofSI7cjoyODYyO3M6MTQ6InBheS97b3JkZXJfbm99IjtyOjI5MDM7czozNDoicGF5L3JldHVybi97cGF5X2lkfS97b3V0X3RyYWRlX25vfSI7cjoyNDAxO3M6MTk6InBheS9yZXR1cm4ve3BheV9pZH0iO3I6MjQ1MztzOjE5OiJwYXkvbm90aWZ5L3twYXlfaWR9IjtyOjI0OTg7czozMjoicXJjb2RlL3BheS97b3JkZXJfbm99L3twYXlfZmlsZX0iO3I6Mjk0NjtzOjIxOiJwYXkvcmVzdWx0L3tvcmRlcl9ub30iO3I6Mjk5MztzOjU6ImFkbWluIjtyOjMwMzM7czoxMToiYWRtaW4ve2FsbH0iO3I6MzA2NjtzOjE4OiJjL3tlbl9jYXRlZ29yeV9pZH0iO3I6MzEwNztzOjE3OiJwL3tlbl9wcm9kdWN0X2lkfSI7cjozMTQ3O3M6MToicyI7cjozMTg3O31zOjM6IlBVVCI7YToxMjp7czoyMToiYXBpL2FkbWluL3N5c3RlbS9pbmZvIjtyOjIwNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3RoZW1lIjtyOjI0NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL29yZGVyIjtyOjI4NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3Zjb2RlIjtyOjMyNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL2VtYWlsIjtyOjM2NTtzOjIwOiJhcGkvYWRtaW4vc3lzdGVtL3NtcyI7cjo0MDU7czoyNDoiYXBpL2FkbWluL3N5c3RlbS9zdG9yYWdlIjtyOjQ0NTtzOjIxOiJhcGkvYWRtaW4vY2FyZC9leHBvcnQiO3I6MTQwMztzOjEyOiJhcGkvc2hvcC9idXkiO3I6MjI4OTtzOjM0OiJwYXkvcmV0dXJuL3twYXlfaWR9L3tvdXRfdHJhZGVfbm99IjtyOjI0MDE7czoxOToicGF5L3JldHVybi97cGF5X2lkfSI7cjoyNDUzO3M6MTk6InBheS9ub3RpZnkve3BheV9pZH0iO3I6MjQ5ODt9czo1OiJQQVRDSCI7YToxMjp7czoyMToiYXBpL2FkbWluL3N5c3RlbS9pbmZvIjtyOjIwNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3RoZW1lIjtyOjI0NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL29yZGVyIjtyOjI4NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3Zjb2RlIjtyOjMyNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL2VtYWlsIjtyOjM2NTtzOjIwOiJhcGkvYWRtaW4vc3lzdGVtL3NtcyI7cjo0MDU7czoyNDoiYXBpL2FkbWluL3N5c3RlbS9zdG9yYWdlIjtyOjQ0NTtzOjIxOiJhcGkvYWRtaW4vY2FyZC9leHBvcnQiO3I6MTQwMztzOjEyOiJhcGkvc2hvcC9idXkiO3I6MjI4OTtzOjM0OiJwYXkvcmV0dXJuL3twYXlfaWR9L3tvdXRfdHJhZGVfbm99IjtyOjI0MDE7czoxOToicGF5L3JldHVybi97cGF5X2lkfSI7cjoyNDUzO3M6MTk6InBheS9ub3RpZnkve3BheV9pZH0iO3I6MjQ5ODt9czo2OiJERUxFVEUiO2E6MTI6e3M6MjE6ImFwaS9hZG1pbi9zeXN0ZW0vaW5mbyI7cjoyMDU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS90aGVtZSI7cjoyNDU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS9vcmRlciI7cjoyODU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS92Y29kZSI7cjozMjU7czoyMjoiYXBpL2FkbWluL3N5c3RlbS9lbWFpbCI7cjozNjU7czoyMDoiYXBpL2FkbWluL3N5c3RlbS9zbXMiO3I6NDA1O3M6MjQ6ImFwaS9hZG1pbi9zeXN0ZW0vc3RvcmFnZSI7cjo0NDU7czoyMToiYXBpL2FkbWluL2NhcmQvZXhwb3J0IjtyOjE0MDM7czoxMjoiYXBpL3Nob3AvYnV5IjtyOjIyODk7czozNDoicGF5L3JldHVybi97cGF5X2lkfS97b3V0X3RyYWRlX25vfSI7cjoyNDAxO3M6MTk6InBheS9yZXR1cm4ve3BheV9pZH0iO3I6MjQ1MztzOjE5OiJwYXkvbm90aWZ5L3twYXlfaWR9IjtyOjI0OTg7fXM6NzoiT1BUSU9OUyI7YToxMjp7czoyMToiYXBpL2FkbWluL3N5c3RlbS9pbmZvIjtyOjIwNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3RoZW1lIjtyOjI0NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL29yZGVyIjtyOjI4NTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL3Zjb2RlIjtyOjMyNTtzOjIyOiJhcGkvYWRtaW4vc3lzdGVtL2VtYWlsIjtyOjM2NTtzOjIwOiJhcGkvYWRtaW4vc3lzdGVtL3NtcyI7cjo0MDU7czoyNDoiYXBpL2FkbWluL3N5c3RlbS9zdG9yYWdlIjtyOjQ0NTtzOjIxOiJhcGkvYWRtaW4vY2FyZC9leHBvcnQiO3I6MTQwMztzOjEyOiJhcGkvc2hvcC9idXkiO3I6MjI4OTtzOjM0OiJwYXkvcmV0dXJuL3twYXlfaWR9L3tvdXRfdHJhZGVfbm99IjtyOjI0MDE7czoxOToicGF5L3JldHVybi97cGF5X2lkfSI7cjoyNDUzO3M6MTk6InBheS9ub3RpZnkve3BheV9pZH0iO3I6MjQ5ODt9fXM6MTI6IgAqAGFsbFJvdXRlcyI7YTo5MDp7czoxOToiUE9TVGFwaS9hZG1pbi9sb2dpbiI7cjo0O3M6MjY6IlBPU1RhcGkvYWRtaW4vbG9naW4vbG9nb3V0IjtyOjM3O3M6MjY6IlBPU1RhcGkvYWRtaW4vbG9naW4vdmVyaWZ5IjtyOjcwO3M6MjQ6IlBPU1RhcGkvYWRtaW4vbG9naW4vaW5mbyI7cjoxMDM7czoyODoiUE9TVGFwaS9hZG1pbi9sb2dpbi9wYXNzd29yZCI7cjoxMzc7czoyMzoiUE9TVGFwaS9hZG1pbi9kYXNoYm9hcmQiO3I6MTcxO3M6Mjg6Ik9QVElPTlNhcGkvYWRtaW4vc3lzdGVtL2luZm8iO3I6MjA1O3M6Mjk6Ik9QVElPTlNhcGkvYWRtaW4vc3lzdGVtL3RoZW1lIjtyOjI0NTtzOjI5OiJPUFRJT05TYXBpL2FkbWluL3N5c3RlbS9vcmRlciI7cjoyODU7czoyOToiT1BUSU9OU2FwaS9hZG1pbi9zeXN0ZW0vdmNvZGUiO3I6MzI1O3M6Mjk6Ik9QVElPTlNhcGkvYWRtaW4vc3lzdGVtL2VtYWlsIjtyOjM2NTtzOjI3OiJPUFRJT05TYXBpL2FkbWluL3N5c3RlbS9zbXMiO3I6NDA1O3M6MzE6Ik9QVElPTlNhcGkvYWRtaW4vc3lzdGVtL3N0b3JhZ2UiO3I6NDQ1O3M6MzE6IlBPU1RhcGkvYWRtaW4vc3lzdGVtL2VtYWlsL3Rlc3QiO3I6NDg1O3M6MzI6IlBPU1RhcGkvYWRtaW4vc3lzdGVtL29yZGVyL2NsZWFuIjtyOjUxOTtzOjE3OiJQT1NUYXBpL2FkbWluL3BheSI7cjo1NTM7czoyMjoiSEVBRGFwaS9hZG1pbi9wYXkvc3RhdCI7cjoyNTUxO3M6MjI6IlBPU1RhcGkvYWRtaW4vcGF5L3NvcnQiO3I6NTg3O3M6Mjg6IlBPU1RhcGkvYWRtaW4vcGF5L2ZlZV9zeXN0ZW0iO3I6NjIxO3M6MjE6IlBPU1RhcGkvYWRtaW4vcGF5L2ZlZSI7cjo2NTU7czoyMjoiUE9TVGFwaS9hZG1pbi9wYXkvZWRpdCI7cjo2ODk7czoyNToiUE9TVGFwaS9hZG1pbi9wYXkvY29tbWVudCI7cjo3MjM7czoyNDoiUE9TVGFwaS9hZG1pbi9wYXkvZW5hYmxlIjtyOjc1NztzOjI0OiJQT1NUYXBpL2FkbWluL3BheS9kZWxldGUiO3I6NzkxO3M6MjI6IlBPU1RhcGkvYWRtaW4vY2F0ZWdvcnkiO3I6ODI1O3M6Mjc6IlBPU1RhcGkvYWRtaW4vY2F0ZWdvcnkvc29ydCI7cjo4NTk7czoyNzoiUE9TVGFwaS9hZG1pbi9jYXRlZ29yeS9lZGl0IjtyOjg5MztzOjI5OiJQT1NUYXBpL2FkbWluL2NhdGVnb3J5L2VuYWJsZSI7cjo5Mjc7czoyOToiUE9TVGFwaS9hZG1pbi9jYXRlZ29yeS9kZWxldGUiO3I6OTYxO3M6MjE6IlBPU1RhcGkvYWRtaW4vcHJvZHVjdCI7cjo5OTU7czoyNjoiUE9TVGFwaS9hZG1pbi9wcm9kdWN0L3NvcnQiO3I6MTAyOTtzOjMxOiJQT1NUYXBpL2FkbWluL3Byb2R1Y3Qvc2V0X2NvdW50IjtyOjEwNjM7czozMDoiUE9TVGFwaS9hZG1pbi9wcm9kdWN0L2NhdGVnb3J5IjtyOjEwOTc7czoyNjoiUE9TVGFwaS9hZG1pbi9wcm9kdWN0L2VkaXQiO3I6MTEzMTtzOjI4OiJQT1NUYXBpL2FkbWluL3Byb2R1Y3QvZW5hYmxlIjtyOjExNjU7czoyODoiUE9TVGFwaS9hZG1pbi9wcm9kdWN0L2RlbGV0ZSI7cjoxMTk5O3M6MzI6IlBPU1RhcGkvYWRtaW4vcHJvZHVjdC9jb3VudC9zeW5jIjtyOjEyMzM7czoyNToiUE9TVGFwaS9hZG1pbi9maWxlL3VwbG9hZCI7cjoxMjY3O3M6MTg6IlBPU1RhcGkvYWRtaW4vY2FyZCI7cjoxMzAxO3M6MjI6IlBPU1RhcGkvYWRtaW4vY2FyZC9hZGQiO3I6MTMzNTtzOjIzOiJQT1NUYXBpL2FkbWluL2NhcmQvZWRpdCI7cjoxMzY5O3M6Mjg6Ik9QVElPTlNhcGkvYWRtaW4vY2FyZC9leHBvcnQiO3I6MTQwMztzOjI1OiJQT1NUYXBpL2FkbWluL2NhcmQvZGVsZXRlIjtyOjE0NDM7czozMToiUE9TVGFwaS9hZG1pbi9jYXJkL3RyYXNoL2RlbGV0ZSI7cjoxNDc3O3M6MzI6IlBPU1RhcGkvYWRtaW4vY2FyZC90cmFzaC9yZXN0b3JlIjtyOjE1MTE7czozNjoiUE9TVGFwaS9hZG1pbi9jYXJkL3RyYXNoL3Jlc3RvcmUvYWxsIjtyOjE1NDU7czoyOToiUE9TVGFwaS9hZG1pbi9jYXJkL2RlbGV0ZS9hbGwiO3I6MTU3OTtzOjIwOiJQT1NUYXBpL2FkbWluL2NvdXBvbiI7cjoxNjEzO3M6Mjc6IlBPU1RhcGkvYWRtaW4vY291cG9uL2NyZWF0ZSI7cjoxNjQ3O3M6MjU6IlBPU1RhcGkvYWRtaW4vY291cG9uL2VkaXQiO3I6MTY4MTtzOjI3OiJQT1NUYXBpL2FkbWluL2NvdXBvbi9lbmFibGUiO3I6MTcxNTtzOjI3OiJQT1NUYXBpL2FkbWluL2NvdXBvbi9kZWxldGUiO3I6MTc0OTtzOjE5OiJQT1NUYXBpL2FkbWluL29yZGVyIjtyOjE3ODM7czoyNjoiSEVBRGFwaS9hZG1pbi9vcmRlci9leHBvcnQiO3I6MjU4NztzOjI0OiJQT1NUYXBpL2FkbWluL29yZGVyL2luZm8iO3I6MTgxNztzOjI2OiJQT1NUYXBpL2FkbWluL29yZGVyL3JlbWFyayI7cjoxODUxO3M6MzU6IlBPU1RhcGkvYWRtaW4vb3JkZXIvc2V0X3NlbmRfc3RhdHVzIjtyOjE4ODU7czoyNDoiUE9TVGFwaS9hZG1pbi9vcmRlci9zaGlwIjtyOjE5MTk7czoxNzoiUE9TVGFwaS9hZG1pbi9sb2ciO3I6MTk1MztzOjI0OiJIRUFEYXBpL2FkbWluL29yZGVyL3N0YXQiO3I6MjYyMjtzOjI2OiJQT1NUYXBpL2FkbWluL29yZGVyL2RlbGV0ZSI7cjoxOTg3O3M6MjY6IlBPU1RhcGkvYWRtaW4vb3JkZXIvZnJlZXplIjtyOjIwMjE7czoyODoiUE9TVGFwaS9hZG1pbi9vcmRlci91bmZyZWV6ZSI7cjoyMDU1O3M6Mjg6IlBPU1RhcGkvYWRtaW4vb3JkZXIvc2V0X3BhaWQiO3I6MjA4OTtzOjI5OiJQT1NUYXBpL2FkbWluL3dlYi9jYWNoZS9jbGVhciI7cjoyMTIzO3M6MjI6IkhFQURhcGkvYWRtaW4vd2ViL2xvZ3MiO3I6MjY1NztzOjIxOiJIRUFEYXBpL2FkbWluL3ZlcnNpb24iO3I6MjY5MjtzOjM0OiJIRUFEYXBpL2FkbWluL3ZlcnNpb24vY2hlY2tfdXBkYXRlIjtyOjI3Mjc7czoxOToiUE9TVGFwaS9zaG9wL3ZlcmlmeSI7cjoyMTU3O3M6MjA6IlBPU1RhcGkvc2hvcC9wcm9kdWN0IjtyOjIxOTA7czoyOToiUE9TVGFwaS9zaG9wL3Byb2R1Y3QvcGFzc3dvcmQiO3I6MjIyMztzOjE5OiJQT1NUYXBpL3Nob3AvY291cG9uIjtyOjIyNTY7czoxOToiT1BUSU9OU2FwaS9zaG9wL2J1eSI7cjoyMjg5O3M6MjM6IlBPU1RhcGkvc2hvcC9yZWNvcmQvZ2V0IjtyOjIzMjg7czoyOToiUE9TVGFwaS9xcmNvZGUvcXVlcnkve3BheV9pZH0iO3I6MjM2MTtzOjU6IkhFQUQvIjtyOjI3NjM7czoxMToiSEVBRGluc3RhbGwiO3I6Mjc5NjtzOjg6IkhFQUR0ZXN0IjtyOjI4Mjk7czoyMzoiSEVBRHN0b3JhZ2Uve2ZpbGVfcGF0aH0iO3I6Mjg2MjtzOjE4OiJIRUFEcGF5L3tvcmRlcl9ub30iO3I6MjkwMztzOjQxOiJPUFRJT05TcGF5L3JldHVybi97cGF5X2lkfS97b3V0X3RyYWRlX25vfSI7cjoyNDAxO3M6MjY6Ik9QVElPTlNwYXkvcmV0dXJuL3twYXlfaWR9IjtyOjI0NTM7czoyNjoiT1BUSU9OU3BheS9ub3RpZnkve3BheV9pZH0iO3I6MjQ5ODtzOjM2OiJIRUFEcXJjb2RlL3BheS97b3JkZXJfbm99L3twYXlfZmlsZX0iO3I6Mjk0NjtzOjI1OiJIRUFEcGF5L3Jlc3VsdC97b3JkZXJfbm99IjtyOjI5OTM7czo5OiJIRUFEYWRtaW4iO3I6MzAzMztzOjE1OiJIRUFEYWRtaW4ve2FsbH0iO3I6MzA2NjtzOjIyOiJIRUFEYy97ZW5fY2F0ZWdvcnlfaWR9IjtyOjMxMDc7czoyMToiSEVBRHAve2VuX3Byb2R1Y3RfaWR9IjtyOjMxNDc7czo1OiJIRUFEcyI7cjozMTg3O31zOjExOiIAKgBuYW1lTGlzdCI7YTowOnt9czoxMzoiACoAYWN0aW9uTGlzdCI7YTo4ODp7czozODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AbG9naW4iO3I6NDtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxMb2dpbkBsb2dvdXQiO3I6Mzc7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cTG9naW5AZ2V0VmVyaWZ5IjtyOjcwO3M6Mzc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGluZm8iO3I6MTAzO3M6NDc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXExvZ2luQGNoYW5nZVBhc3N3b3JkIjtyOjEzNztzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxEYXNoYm9hcmRAaW5kZXgiO3I6MTcxO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBpbmZvIjtyOjIwNTtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AdGhlbWUiO3I6MjQ1O3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBvcmRlciI7cjoyODU7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cU3lzdGVtQHZjb2RlIjtyOjMyNTtzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AZW1haWwiO3I6MzY1O3M6Mzc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBzbXMiO3I6NDA1O3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFN5c3RlbUBzdG9yYWdlIjtyOjQ0NTtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1AZW1haWxUZXN0IjtyOjQ4NTtzOjQ0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxTeXN0ZW1Ab3JkZXJDbGVhbiI7cjo1MTk7czozNDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGdldCI7cjo1NTM7czozNToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QHN0YXQiO3I6MjU1MTtzOjM1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAc29ydCI7cjo1ODc7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGZlZV9zeXN0ZW0iO3I6NjIxO3M6MzQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBmZWUiO3I6NjU1O3M6MzU6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXFBheUBlZGl0IjtyOjY4OTtzOjM4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxQYXlAY29tbWVudCI7cjo3MjM7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGVuYWJsZSI7cjo3NTc7czozNzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cUGF5QGRlbGV0ZSI7cjo3OTE7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2F0ZWdvcnlAZ2V0IjtyOjgyNTtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXRlZ29yeUBzb3J0IjtyOjg1OTtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXRlZ29yeUBlZGl0IjtyOjg5MztzOjQ1OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXRlZ29yeUBlbmFibGUiO3I6OTI3O3M6NDU6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhdGVnb3J5QGRlbGV0ZSI7cjo5NjE7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBnZXQiO3I6OTk1O3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAc29ydCI7cjoxMDI5O3M6NDc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAc2V0X2NvdW50IjtyOjEwNjM7czo1MzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBjYXRlZ29yeV9jaGFuZ2UiO3I6MTA5NztzOjQyOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGVkaXQiO3I6MTEzMTtzOjQ0OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxQcm9kdWN0QGVuYWJsZSI7cjoxMTY1O3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XFByb2R1Y3RAZGVsZXRlIjtyOjExOTk7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcUHJvZHVjdEBjb3VudF9zeW5jIjtyOjEyMzM7czo1MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcRmlsZUB1cGxvYWRfbWVyY2hhbnQiO3I6MTI2NztzOjM4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQGdldCI7cjoxMzAxO3M6Mzg6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAYWRkIjtyOjEzMzU7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBlZGl0IjtyOjEzNjk7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBleHBvcnQiO3I6MTQwMztzOjQwOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDYXJkQHRyYXNoIjtyOjE0NDM7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEBkZWxldGVUcmFzaGVkIjtyOjE0Nzc7czo0OToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ2FyZEByZXN0b3JlVHJhc2hlZCI7cjoxNTExO3M6NDU6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAcmVzdG9yZUFsbCI7cjoxNTQ1O3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENhcmRAZGVsZXRlQWxsIjtyOjE1Nzk7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcQ291cG9uQGdldCI7cjoxNjEzO3M6NDM6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENvdXBvbkBjcmVhdGUiO3I6MTY0NztzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AZWRpdCI7cjoxNjgxO3M6NDM6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XENvdXBvbkBlbmFibGUiO3I6MTcxNTtzOjQzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxDb3Vwb25AZGVsZXRlIjtyOjE3NDk7czozOToiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAZ2V0IjtyOjE3ODM7czo0MjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAZXhwb3J0IjtyOjI1ODc7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAaW5mbyI7cjoxODE3O3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHJlbWFyayI7cjoxODUxO3M6NTE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHNldF9zZW5kX3N0YXR1cyI7cjoxODg1O3M6NDA6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XE9yZGVyQHNoaXAiO3I6MTkxOTtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xNZXJjaGFudFxMb2dAZ2V0IjtyOjE5NTM7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcTWVyY2hhbnRcT3JkZXJAc3RhdCI7cjoyNjIyO3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQGRlbGV0ZSI7cjoxOTg3O3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQGZyZWV6ZSI7cjoyMDIxO3M6NDE6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXE9yZGVyQHVuZnJlZXplIjtyOjIwNTU7czo0MToiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cT3JkZXJAc2V0X3BhaWQiO3I6MjA4OTtzOjQ3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pblxEYXNoYm9hcmRAY2xlYXJDYWNoZSI7cjoyMTIzO3M6NTQ6IlJhcDJocG91dHJlXExhcmF2ZWxMb2dWaWV3ZXJcTG9nVmlld2VyQ29udHJvbGxlckBpbmRleCI7cjoyNjU3O3M6NDQ6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEFkbWluXERhc2hib2FyZEB2ZXJzaW9uIjtyOjI2OTI7czo0ODoiQXBwXEh0dHBcQ29udHJvbGxlcnNcQWRtaW5cRGFzaGJvYXJkQGNoZWNrVXBkYXRlIjtyOjI3Mjc7czo0NjoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxWZXJpZnlDb2RlQGdldFZlcmlmeSI7cjoyMTU3O3M6Mzc6IkFwcFxIdHRwXENvbnRyb2xsZXJzXFNob3BcUHJvZHVjdEBnZXQiO3I6MjE5MDtzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFByb2R1Y3RAdmVyaWZ5UGFzc3dvcmQiO3I6MjIyMztzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXENvdXBvbkBpbmZvIjtyOjIyNTY7czozMzoiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxQYXlAYnV5IjtyOjIyODk7czozNToiQXBwXEh0dHBcQ29udHJvbGxlcnNcU2hvcFxPcmRlckBnZXQiO3I6MjMyODtzOjM3OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBxclF1ZXJ5IjtyOjIzNjE7czo0MDoiQXBwXEh0dHBcQ29udHJvbGxlcnNcSG9tZUNvbnRyb2xsZXJAc2hvcCI7cjoyNzYzO3M6NDI6IkFwcFxIdHRwXENvbnRyb2xsZXJzXERldkNvbnRyb2xsZXJAaW5zdGFsbCI7cjoyNzk2O3M6Mzk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXERldkNvbnRyb2xsZXJAdGVzdCI7cjoyODI5O3M6NDY6IkFwcFxIdHRwXENvbnRyb2xsZXJzXE1lcmNoYW50XEZpbGVAcmVuZGVySW1hZ2UiO3I6Mjg2MjtzOjMzOiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXkiO3I6MjkwMztzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXlSZXR1cm4iO3I6MjQ1MztzOjM5OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBwYXlOb3RpZnkiO3I6MjQ5ODtzOjM2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUBxcmNvZGUiO3I6Mjk0NjtzOjM2OiJBcHBcSHR0cFxDb250cm9sbGVyc1xTaG9wXFBheUByZXN1bHQiO3I6Mjk5MztzOjQxOiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBhZG1pbiI7cjozMDY2O3M6NDk6IkFwcFxIdHRwXENvbnRyb2xsZXJzXEhvbWVDb250cm9sbGVyQHNob3BfY2F0ZWdvcnkiO3I6MzEwNztzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBzaG9wX3Byb2R1Y3QiO3I6MzE0NztzOjQ4OiJBcHBcSHR0cFxDb250cm9sbGVyc1xIb21lQ29udHJvbGxlckBzaG9wX2RlZmF1bHQiO3I6MzE4Nzt9fQ==')));
\ No newline at end of file
diff --git a/bootstrap/cache/services.php b/bootstrap/cache/services.php
new file mode 100644
index 000000000..2e23321d7
--- /dev/null
+++ b/bootstrap/cache/services.php
@@ -0,0 +1,2 @@
+ array(0 => 'Illuminate\\Auth\\AuthServiceProvider', 1 => 'Illuminate\\Broadcasting\\BroadcastServiceProvider', 2 => 'Illuminate\\Bus\\BusServiceProvider', 3 => 'Illuminate\\Cache\\CacheServiceProvider', 4 => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 5 => 'Illuminate\\Cookie\\CookieServiceProvider', 6 => 'Illuminate\\Database\\DatabaseServiceProvider', 7 => 'Illuminate\\Encryption\\EncryptionServiceProvider', 8 => 'Illuminate\\Filesystem\\FilesystemServiceProvider', 9 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider', 10 => 'Illuminate\\Hashing\\HashServiceProvider', 11 => 'Illuminate\\Mail\\MailServiceProvider', 12 => 'Illuminate\\Notifications\\NotificationServiceProvider', 13 => 'Illuminate\\Pagination\\PaginationServiceProvider', 14 => 'Illuminate\\Pipeline\\PipelineServiceProvider', 15 => 'Illuminate\\Queue\\QueueServiceProvider', 16 => 'Illuminate\\Redis\\RedisServiceProvider', 17 => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider', 18 => 'Illuminate\\Session\\SessionServiceProvider', 19 => 'Illuminate\\Translation\\TranslationServiceProvider', 20 => 'Illuminate\\Validation\\ValidationServiceProvider', 21 => 'Illuminate\\View\\ViewServiceProvider', 22 => 'Carbon\\Laravel\\ServiceProvider', 23 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider', 24 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider', 25 => 'Jacobcyl\\AliOSS\\AliOssServiceProvider', 26 => 'Ken\\BladeMinify\\ServiceProvider', 27 => 'Laravel\\Tinker\\TinkerServiceProvider', 28 => 'Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider', 29 => 'zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider', 30 => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider', 31 => 'App\\Providers\\AppServiceProvider', 32 => 'App\\Providers\\AuthServiceProvider', 33 => 'App\\Providers\\EventServiceProvider', 34 => 'App\\Providers\\RouteServiceProvider', 35 => 'App\\Providers\\ConfigServiceProvider', 36 => 'Naux\\Mail\\SendCloudServiceProvider', 37 => 'Jacobcyl\\AliOSS\\AliOssServiceProvider', 38 => 'zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider', 39 => 'Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider'), 'eager' => array(0 => 'Illuminate\\Auth\\AuthServiceProvider', 1 => 'Illuminate\\Cookie\\CookieServiceProvider', 2 => 'Illuminate\\Database\\DatabaseServiceProvider', 3 => 'Illuminate\\Encryption\\EncryptionServiceProvider', 4 => 'Illuminate\\Filesystem\\FilesystemServiceProvider', 5 => 'Illuminate\\Foundation\\Providers\\FoundationServiceProvider', 6 => 'Illuminate\\Notifications\\NotificationServiceProvider', 7 => 'Illuminate\\Pagination\\PaginationServiceProvider', 8 => 'Illuminate\\Session\\SessionServiceProvider', 9 => 'Illuminate\\View\\ViewServiceProvider', 10 => 'Carbon\\Laravel\\ServiceProvider', 11 => 'Fideloper\\Proxy\\TrustedProxyServiceProvider', 12 => 'Jacobcyl\\AliOSS\\AliOssServiceProvider', 13 => 'Ken\\BladeMinify\\ServiceProvider', 14 => 'Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider', 15 => 'zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider', 16 => 'App\\Providers\\AppServiceProvider', 17 => 'App\\Providers\\AuthServiceProvider', 18 => 'App\\Providers\\EventServiceProvider', 19 => 'App\\Providers\\RouteServiceProvider', 20 => 'App\\Providers\\ConfigServiceProvider', 21 => 'Naux\\Mail\\SendCloudServiceProvider', 22 => 'Jacobcyl\\AliOSS\\AliOssServiceProvider', 23 => 'zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider', 24 => 'Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider'), 'deferred' => array('Illuminate\\Broadcasting\\BroadcastManager' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider', 'Illuminate\\Contracts\\Broadcasting\\Factory' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider', 'Illuminate\\Contracts\\Broadcasting\\Broadcaster' => 'Illuminate\\Broadcasting\\BroadcastServiceProvider', 'Illuminate\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider', 'Illuminate\\Contracts\\Bus\\Dispatcher' => 'Illuminate\\Bus\\BusServiceProvider', 'Illuminate\\Contracts\\Bus\\QueueingDispatcher' => 'Illuminate\\Bus\\BusServiceProvider', 'cache' => 'Illuminate\\Cache\\CacheServiceProvider', 'cache.store' => 'Illuminate\\Cache\\CacheServiceProvider', 'memcached.connector' => 'Illuminate\\Cache\\CacheServiceProvider', 'command.cache.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.cache.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.clear-compiled' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.auth.resets.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.config.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.config.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.down' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.environment' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.key.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.fresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.install' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.refresh' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.reset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.rollback' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.status' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.optimize' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.package.discover' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.preset' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.failed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.flush' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.forget' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.listen' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.restart' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.retry' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.work' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.route.cache' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.route.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.route.list' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.seed' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'Illuminate\\Console\\Scheduling\\ScheduleFinishCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'Illuminate\\Console\\Scheduling\\ScheduleRunCommand' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.storage.link' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.up' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.view.clear' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.app.name' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.auth.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.cache.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.console.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.controller.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.event.generate' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.event.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.exception.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.factory.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.job.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.listener.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.mail.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.middleware.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.migrate.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.model.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.notification.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.notification.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.policy.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.provider.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.failed-table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.queue.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.request.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.resource.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.rule.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.seeder.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.session.table' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.serve' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.test.make' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'command.vendor.publish' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'migrator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'migration.repository' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'migration.creator' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'composer' => 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider', 'hash' => 'Illuminate\\Hashing\\HashServiceProvider', 'mailer' => 'Illuminate\\Mail\\MailServiceProvider', 'swift.mailer' => 'Illuminate\\Mail\\MailServiceProvider', 'swift.transport' => 'Illuminate\\Mail\\MailServiceProvider', 'Illuminate\\Mail\\Markdown' => 'Illuminate\\Mail\\MailServiceProvider', 'Illuminate\\Contracts\\Pipeline\\Hub' => 'Illuminate\\Pipeline\\PipelineServiceProvider', 'queue' => 'Illuminate\\Queue\\QueueServiceProvider', 'queue.worker' => 'Illuminate\\Queue\\QueueServiceProvider', 'queue.listener' => 'Illuminate\\Queue\\QueueServiceProvider', 'queue.failer' => 'Illuminate\\Queue\\QueueServiceProvider', 'queue.connection' => 'Illuminate\\Queue\\QueueServiceProvider', 'redis' => 'Illuminate\\Redis\\RedisServiceProvider', 'redis.connection' => 'Illuminate\\Redis\\RedisServiceProvider', 'auth.password' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider', 'auth.password.broker' => 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider', 'translator' => 'Illuminate\\Translation\\TranslationServiceProvider', 'translation.loader' => 'Illuminate\\Translation\\TranslationServiceProvider', 'validator' => 'Illuminate\\Validation\\ValidationServiceProvider', 'validation.presence' => 'Illuminate\\Validation\\ValidationServiceProvider', 'command.ide-helper.generate' => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider', 'command.ide-helper.models' => 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider', 'command.tinker' => 'Laravel\\Tinker\\TinkerServiceProvider'), 'when' => array('Illuminate\\Broadcasting\\BroadcastServiceProvider' => array(), 'Illuminate\\Bus\\BusServiceProvider' => array(), 'Illuminate\\Cache\\CacheServiceProvider' => array(), 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' => array(), 'Illuminate\\Hashing\\HashServiceProvider' => array(), 'Illuminate\\Mail\\MailServiceProvider' => array(), 'Illuminate\\Pipeline\\PipelineServiceProvider' => array(), 'Illuminate\\Queue\\QueueServiceProvider' => array(), 'Illuminate\\Redis\\RedisServiceProvider' => array(), 'Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider' => array(), 'Illuminate\\Translation\\TranslationServiceProvider' => array(), 'Illuminate\\Validation\\ValidationServiceProvider' => array(), 'Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider' => array(), 'Laravel\\Tinker\\TinkerServiceProvider' => array()));
\ No newline at end of file
diff --git a/bootstrap/cache/test.txt b/bootstrap/cache/test.txt
new file mode 100644
index 000000000..999b5844c
--- /dev/null
+++ b/bootstrap/cache/test.txt
@@ -0,0 +1 @@
+ignore me
\ No newline at end of file
diff --git a/composer.json b/composer.json
new file mode 100644
index 000000000..024af3dbe
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,39 @@
+{
+ "name": "card",
+ "description": "card system free",
+ "keywords": [
+ "card system free"
+ ],
+ "license": "MIT",
+ "type": "project",
+ "require": {
+ "php": ">=7.0.0",
+ "ext-curl": "*",
+ "ext-json": "*",
+ "barryvdh/laravel-ide-helper": "^2.4",
+ "doctrine/dbal": "~2.3",
+ "fideloper/proxy": "~3.3",
+ "hashids/hashids": "2.0.4",
+ "jacobcyl/ali-oss-storage": "dev-master",
+ "ken/blade-minify": "^1.0",
+ "laravel/framework": "5.5.*",
+ "laravel/tinker": "~1.0",
+ "naux/sendcloud": "^1.1",
+ "predis/predis": "^1.0",
+ "rap2hpoutre/laravel-log-viewer": "^0.13.0",
+ "voku/anti-xss": "4.0.1",
+ "wi1dcard/alipay-sdk": "^1.2",
+ "zgldh/qiniu-laravel-storage": "^0.9.2"
+ },
+ "require-dev": {},
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/"
+ }
+ },
+ "config": {
+ "preferred-install": "dist",
+ "sort-packages": true,
+ "optimize-autoloader": true
+ }
+}
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 000000000..764756ea6
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,2 @@
+ env('APP_NAME', 'Laravel'), 'project' => env('APP_PROJECT', 'card_free'), 'version' => env('APP_VERSION', 'unknown'), 'env' => env('APP_ENV', 'production'), 'debug' => env('APP_DEBUG', false), 'url' => env('APP_URL', 'http://localhost'), 'url_api' => env('APP_URL_API', 'http://localhost'), 'timezone' => 'PRC', 'locale' => 'en', 'fallback_locale' => 'en', 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC', 'log' => env('APP_LOG', 'single'), 'log_level' => env('APP_LOG_LEVEL', 'debug'), 'providers' => array(Illuminate\Auth\AuthServiceProvider::class, Illuminate\Broadcasting\BroadcastServiceProvider::class, Illuminate\Bus\BusServiceProvider::class, Illuminate\Cache\CacheServiceProvider::class, Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, Illuminate\Cookie\CookieServiceProvider::class, Illuminate\Database\DatabaseServiceProvider::class, Illuminate\Encryption\EncryptionServiceProvider::class, Illuminate\Filesystem\FilesystemServiceProvider::class, Illuminate\Foundation\Providers\FoundationServiceProvider::class, Illuminate\Hashing\HashServiceProvider::class, Illuminate\Mail\MailServiceProvider::class, Illuminate\Notifications\NotificationServiceProvider::class, Illuminate\Pagination\PaginationServiceProvider::class, Illuminate\Pipeline\PipelineServiceProvider::class, Illuminate\Queue\QueueServiceProvider::class, Illuminate\Redis\RedisServiceProvider::class, Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, Illuminate\Session\SessionServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class, Illuminate\View\ViewServiceProvider::class, Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\ConfigServiceProvider::class, Naux\Mail\SendCloudServiceProvider::class, Jacobcyl\AliOSS\AliOssServiceProvider::class, zgldh\QiniuStorage\QiniuFilesystemServiceProvider::class, Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class), 'aliases' => array('App' => Illuminate\Support\Facades\App::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, 'Auth' => Illuminate\Support\Facades\Auth::class, 'Blade' => Illuminate\Support\Facades\Blade::class, 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, 'Bus' => Illuminate\Support\Facades\Bus::class, 'Cache' => Illuminate\Support\Facades\Cache::class, 'Config' => Illuminate\Support\Facades\Config::class, 'Cookie' => Illuminate\Support\Facades\Cookie::class, 'Crypt' => Illuminate\Support\Facades\Crypt::class, 'DB' => Illuminate\Support\Facades\DB::class, 'Eloquent' => Illuminate\Database\Eloquent\Model::class, 'Event' => Illuminate\Support\Facades\Event::class, 'File' => Illuminate\Support\Facades\File::class, 'Gate' => Illuminate\Support\Facades\Gate::class, 'Hash' => Illuminate\Support\Facades\Hash::class, 'Lang' => Illuminate\Support\Facades\Lang::class, 'Log' => Illuminate\Support\Facades\Log::class, 'Mail' => Illuminate\Support\Facades\Mail::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, 'Queue' => Illuminate\Support\Facades\Queue::class, 'Redirect' => Illuminate\Support\Facades\Redirect::class, 'Redis' => Illuminate\Support\Facades\Redis::class, 'Request' => Illuminate\Support\Facades\Request::class, 'Response' => Illuminate\Support\Facades\Response::class, 'Route' => Illuminate\Support\Facades\Route::class, 'Schema' => Illuminate\Support\Facades\Schema::class, 'Session' => Illuminate\Support\Facades\Session::class, 'Storage' => Illuminate\Support\Facades\Storage::class, 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class));
\ No newline at end of file
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 000000000..be94d40a0
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,2 @@
+ array('guard' => 'web', 'passwords' => 'users'), 'guards' => array('web' => array('driver' => 'session', 'provider' => 'users'), 'api' => array('driver' => 'token', 'provider' => 'users')), 'providers' => array('users' => array('driver' => 'eloquent', 'model' => App\User::class)), 'passwords' => array('users' => array('provider' => 'users', 'table' => 'password_resets', 'expire' => 60)));
\ No newline at end of file
diff --git a/config/broadcasting.php b/config/broadcasting.php
new file mode 100644
index 000000000..3a7cfdd82
--- /dev/null
+++ b/config/broadcasting.php
@@ -0,0 +1,2 @@
+ env('BROADCAST_DRIVER', 'null'), 'connections' => array('pusher' => array('driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => array()), 'redis' => array('driver' => 'redis', 'connection' => 'default'), 'log' => array('driver' => 'log'), 'null' => array('driver' => 'null')));
\ No newline at end of file
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 000000000..759755a97
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,2 @@
+ env('CACHE_DRIVER', 'file'), 'stores' => array('apc' => array('driver' => 'apc'), 'array' => array('driver' => 'array'), 'database' => array('driver' => 'database', 'table' => 'cache', 'connection' => null), 'file' => array('driver' => 'file', 'path' => storage_path('framework/cache/data')), 'memcached' => array('driver' => 'memcached', 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 'sasl' => array(env('MEMCACHED_USERNAME'), env('MEMCACHED_PASSWORD')), 'options' => array(), 'servers' => array(array('host' => env('MEMCACHED_HOST', '127.0.0.1'), 'port' => env('MEMCACHED_PORT', 11211), 'weight' => 100))), 'redis' => array('driver' => 'redis', 'connection' => 'default')), 'prefix' => env('CACHE_PREFIX', str_slug(env('APP_NAME', 'laravel'), '_') . '_cache'));
\ No newline at end of file
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 000000000..254688f0a
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,2 @@
+ env('DB_CONNECTION', 'mysql'), 'connections' => array('sqlite' => array('driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => ''), 'mysql' => array('driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => 'InnoDB'), 'pgsql' => array('driver' => 'pgsql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', 'sslmode' => 'prefer'), 'sqlsrv' => array('driver' => 'sqlsrv', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '1433'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '')), 'migrations' => 'migrations', 'redis' => array('client' => 'predis', 'default' => array('host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0)));
\ No newline at end of file
diff --git a/config/filesystems.php b/config/filesystems.php
new file mode 100644
index 000000000..fe2946cc0
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,2 @@
+ env('FILESYSTEM_DRIVER', 'local'), 'cloud' => env('FILESYSTEM_CLOUD', 's3'), 'disks' => array('local' => array('driver' => 'local', 'root' => storage_path('app'), 'url' => '/storage'), 'public' => array('driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL') . '/storage', 'visibility' => 'public'), 's3' => array('driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET')), 'oss' => array('driver' => 'oss', 'access_id' => '', 'access_key' => '', 'bucket' => '', 'endpoint' => '', 'cdnDomain' => '', 'ssl' => false, 'isCName' => false, 'debug' => false), 'qiniu' => array('driver' => 'qiniu', 'domains' => array('default' => 'xxxxx.com1.z0.glb.clouddn.com', 'https' => 'dn-yourdomain.qbox.me', 'custom' => 'static.abc.com'), 'access_key' => '', 'secret_key' => '', 'bucket' => '', 'notify_url' => '', 'access' => 'public')));
\ No newline at end of file
diff --git a/config/mail.php b/config/mail.php
new file mode 100644
index 000000000..92c3bb9e0
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,2 @@
+ env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'from' => array('address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), 'name' => env('MAIL_FROM_NAME', 'Example')), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'sendmail' => '/usr/sbin/sendmail -bs', 'markdown' => array('theme' => 'default', 'paths' => array(resource_path('views/vendor/mail'))));
\ No newline at end of file
diff --git a/config/queue.php b/config/queue.php
new file mode 100644
index 000000000..16f81a4e0
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,2 @@
+ env('QUEUE_DRIVER', 'sync'), 'connections' => array('sync' => array('driver' => 'sync'), 'database' => array('driver' => 'database', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 90), 'beanstalkd' => array('driver' => 'beanstalkd', 'host' => 'localhost', 'queue' => 'default', 'retry_after' => 90), 'sqs' => array('driver' => 'sqs', 'key' => env('SQS_KEY', 'your-public-key'), 'secret' => env('SQS_SECRET', 'your-secret-key'), 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), 'queue' => env('SQS_QUEUE', 'your-queue-name'), 'region' => env('SQS_REGION', 'us-east-1')), 'redis' => array('driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90)), 'failed' => array('database' => env('DB_CONNECTION', 'mysql'), 'table' => 'failed_jobs'));
\ No newline at end of file
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 000000000..c71873473
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,2 @@
+ array('domain' => env('MAILGUN_DOMAIN'), 'secret' => env('MAILGUN_SECRET')), 'ses' => array('key' => env('SES_KEY'), 'secret' => env('SES_SECRET'), 'region' => 'us-east-1'), 'sparkpost' => array('secret' => env('SPARKPOST_SECRET')), 'stripe' => array('model' => App\User::class, 'key' => env('STRIPE_KEY'), 'secret' => env('STRIPE_SECRET')), 'geetest' => array('id' => env('GEETEST_ID'), 'key' => env('GEETEST_KEY')));
\ No newline at end of file
diff --git a/config/session.php b/config/session.php
new file mode 100644
index 000000000..7b9a982ad
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,2 @@
+ env('SESSION_DRIVER', 'file'), 'lifetime' => env('SESSION_LIFETIME', 120), 'expire_on_close' => false, 'encrypt' => false, 'files' => storage_path('framework/sessions'), 'connection' => null, 'table' => 'sessions', 'store' => null, 'lottery' => array(2, 100), 'cookie' => env('SESSION_COOKIE', str_slug(env('APP_NAME', 'laravel'), '_') . '_session'), 'path' => '/', 'domain' => env('SESSION_DOMAIN', null), 'secure' => env('SESSION_SECURE_COOKIE', false), 'http_only' => true, 'same_site' => null);
\ No newline at end of file
diff --git a/config/view.php b/config/view.php
new file mode 100644
index 000000000..c9076a1f8
--- /dev/null
+++ b/config/view.php
@@ -0,0 +1,2 @@
+ array(resource_path('views')), 'compiled' => realpath(storage_path('framework/views')));
\ No newline at end of file
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 000000000..9b1dffd90
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1 @@
+*.sqlite
diff --git a/database/factories/OrderFactory.php b/database/factories/OrderFactory.php
new file mode 100644
index 000000000..600c8d21c
--- /dev/null
+++ b/database/factories/OrderFactory.php
@@ -0,0 +1,2 @@
+define(App\Order::class, function (Faker $sp51d880) { $spd56469 = date('YmdHis') . mt_rand(10000, 99999); while (\App\Order::whereOrderNo($spd56469)->exists()) { $spd56469 = date('YmdHis') . mt_rand(10000, 99999); } $spd6b98d = random_int(0, 1) ? $sp51d880->email : 'user01@qq.com'; $spac16b8 = 1000; $sp806ba4 = random_int(0, 1) * 100; $sp1060be = $spac16b8 - $sp806ba4; return array('user_id' => 2, 'order_no' => $spd56469, 'product_id' => 1, 'count' => 1); });
\ No newline at end of file
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
new file mode 100644
index 000000000..a280b6f28
--- /dev/null
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->string('email', 100)->unique(); $speb36c4->string('mobile')->nullable(); $speb36c4->string('password', 100); $speb36c4->integer('m_paid')->default(0); $speb36c4->integer('m_frozen')->default(0); $speb36c4->integer('m_all')->default(0); $speb36c4->rememberToken(); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('users'); } }
\ No newline at end of file
diff --git a/database/migrations/2017_12_23_223031_create_categories_table.php b/database/migrations/2017_12_23_223031_create_categories_table.php
new file mode 100644
index 000000000..d0a4b5b5e
--- /dev/null
+++ b/database/migrations/2017_12_23_223031_create_categories_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->text('name'); $speb36c4->integer('sort')->default(1000); $speb36c4->string('password')->nullable(); $speb36c4->boolean('password_open')->default(false); $speb36c4->boolean('enabled'); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('groups'); } }
\ No newline at end of file
diff --git a/database/migrations/2017_12_23_223124_create_products_table.php b/database/migrations/2017_12_23_223124_create_products_table.php
new file mode 100644
index 000000000..4ad7aa849
--- /dev/null
+++ b/database/migrations/2017_12_23_223124_create_products_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->integer('category_id')->index(); $speb36c4->string('name'); $speb36c4->longText('description'); $speb36c4->integer('sort')->default(1000); $speb36c4->integer('buy_min')->default(1); $speb36c4->integer('buy_max')->default(10); $speb36c4->integer('count_sold')->default(0); $speb36c4->integer('count_all')->default(0); $speb36c4->integer('count_warn')->default(0); $speb36c4->boolean('support_coupon')->default(false); $speb36c4->string('password')->nullable(); $speb36c4->boolean('password_open')->default(false); $speb36c4->integer('cost')->default(0); $speb36c4->integer('price'); $speb36c4->text('price_whole')->nullable(); $speb36c4->text('instructions')->nullable(); $speb36c4->text('fields')->nullable(); $speb36c4->boolean('enabled'); $speb36c4->tinyInteger('inventory')->default(\App\User::INVENTORY_AUTO); $speb36c4->tinyInteger('fee_type')->default(\App\User::FEE_TYPE_AUTO); $speb36c4->tinyInteger('delivery')->default(\App\Product::DELIVERY_AUTO); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('goods'); } }
\ No newline at end of file
diff --git a/database/migrations/2017_12_23_223252_create_cards_table.php b/database/migrations/2017_12_23_223252_create_cards_table.php
new file mode 100644
index 000000000..4f292492e
--- /dev/null
+++ b/database/migrations/2017_12_23_223252_create_cards_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->integer('product_id')->index(); $speb36c4->text('card'); $speb36c4->integer('type'); $speb36c4->integer('status')->default(\App\Card::STATUS_NORMAL); $speb36c4->integer('count_sold')->default(0); $speb36c4->integer('count_all')->default(1); $speb36c4->timestamps(); $speb36c4->softDeletes(); }); DB::unprepared('ALTER TABLE `cards` CHANGE COLUMN `created_at` `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP;'); } public function down() { Schema::dropIfExists('cards'); try { DB::unprepared('DROP PROCEDURE `add_cards`;'); } catch (\Exception $spece20f) { } } }
\ No newline at end of file
diff --git a/database/migrations/2017_12_23_223508_create_orders_table.php b/database/migrations/2017_12_23_223508_create_orders_table.php
new file mode 100644
index 000000000..a4a7a13cb
--- /dev/null
+++ b/database/migrations/2017_12_23_223508_create_orders_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->string('order_no', 128)->index(); $speb36c4->integer('product_id'); $speb36c4->string('product_name')->nullable(); $speb36c4->integer('count'); $speb36c4->string('ip')->nullable(); $speb36c4->string('customer', 32)->nullable(); $speb36c4->string('contact')->nullable(); $speb36c4->text('contact_ext')->nullable(); $speb36c4->tinyInteger('send_status')->default(App\Order::SEND_STATUS_UN); $speb36c4->text('remark')->nullable(); $speb36c4->integer('cost')->default(0); $speb36c4->integer('price')->default(0); $speb36c4->integer('discount')->default(0); $speb36c4->integer('paid')->default(0); $speb36c4->integer('fee')->default(0); $speb36c4->integer('system_fee')->default(0); $speb36c4->integer('income')->default(0); $speb36c4->integer('pay_id'); $speb36c4->string('pay_trade_no')->nullable(); $speb36c4->integer('status')->default(\App\Order::STATUS_UNPAY); $speb36c4->string('frozen_reason')->nullable(); $speb36c4->string('api_out_no', 128)->nullable(); $speb36c4->text('api_info')->nullable(); $speb36c4->dateTime('paid_at')->nullable(); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('orders'); } }
\ No newline at end of file
diff --git a/database/migrations/2017_12_23_223755_create_pays_table.php b/database/migrations/2017_12_23_223755_create_pays_table.php
new file mode 100644
index 000000000..972a42e56
--- /dev/null
+++ b/database/migrations/2017_12_23_223755_create_pays_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->string('name'); $speb36c4->integer('sort')->default(1000); $speb36c4->string('img'); $speb36c4->string('driver'); $speb36c4->string('way'); $speb36c4->text('config'); $speb36c4->text('comment')->nullable(); $speb36c4->float('fee_system', 8, 4)->default(0.01); $speb36c4->boolean('enabled'); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('pays'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_01_02_142012_create_card_order_table.php b/database/migrations/2018_01_02_142012_create_card_order_table.php
new file mode 100644
index 000000000..6ad6d4e67
--- /dev/null
+++ b/database/migrations/2018_01_02_142012_create_card_order_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('order_id')->index(); $speb36c4->integer('card_id'); }); } public function down() { Schema::dropIfExists('card_order'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_01_28_183143_create_coupons_table.php b/database/migrations/2018_01_28_183143_create_coupons_table.php
new file mode 100644
index 000000000..afdfcf93a
--- /dev/null
+++ b/database/migrations/2018_01_28_183143_create_coupons_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->integer('category_id')->default(-1); $speb36c4->integer('product_id')->default(-1); $speb36c4->integer('type')->default(\App\Coupon::TYPE_REPEAT); $speb36c4->integer('status')->default(\App\Coupon::STATUS_NORMAL); $speb36c4->string('coupon', 100)->index(); $speb36c4->integer('discount_type'); $speb36c4->integer('discount_val'); $speb36c4->integer('count_used')->default(0); $speb36c4->integer('count_all')->default(1); $speb36c4->string('remark')->nullable(); $speb36c4->dateTime('expire_at')->nullable(); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('coupons'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_01_29_195459_create_logs_table.php b/database/migrations/2018_01_29_195459_create_logs_table.php
new file mode 100644
index 000000000..77f4edc41
--- /dev/null
+++ b/database/migrations/2018_01_29_195459_create_logs_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->string('ip'); $speb36c4->integer('action')->default(\App\Log::ACTION_LOGIN); $speb36c4->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP')); }); } public function down() { Schema::dropIfExists('logs'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_01_29_205026_create_systems_table.php b/database/migrations/2018_01_29_205026_create_systems_table.php
new file mode 100644
index 000000000..1c452b887
--- /dev/null
+++ b/database/migrations/2018_01_29_205026_create_systems_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->string('name', 100)->unique(); $speb36c4->longText('value')->nullable(); $speb36c4->timestamps(); }); } public function down() { Schema::dropIfExists('systems'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_02_01_174100_create_fund_records_table.php b/database/migrations/2018_02_01_174100_create_fund_records_table.php
new file mode 100644
index 000000000..cf6b62fab
--- /dev/null
+++ b/database/migrations/2018_02_01_174100_create_fund_records_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id')->index(); $speb36c4->integer('type')->default(\App\FundRecord::TYPE_OUT); $speb36c4->integer('amount'); $speb36c4->integer('balance')->default(0); $speb36c4->integer('order_id')->nullable(); $speb36c4->string('withdraw_id')->nullable(); $speb36c4->string('remark')->nullable(); $speb36c4->timestamps(); }); DB::unprepared('ALTER TABLE `fund_records` CHANGE COLUMN `created_at` `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP;'); } public function down() { Schema::dropIfExists('fund_records'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_02_01_202439_create_jobs_table.php b/database/migrations/2018_02_01_202439_create_jobs_table.php
new file mode 100644
index 000000000..da3dd4a37
--- /dev/null
+++ b/database/migrations/2018_02_01_202439_create_jobs_table.php
@@ -0,0 +1,2 @@
+bigIncrements('id'); $speb36c4->string('queue', 128)->index(); $speb36c4->longText('payload'); $speb36c4->unsignedTinyInteger('attempts'); $speb36c4->unsignedInteger('reserved_at')->nullable(); $speb36c4->unsignedInteger('available_at'); $speb36c4->unsignedInteger('created_at'); }); } public function down() { Schema::dropIfExists('jobs'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_02_01_234941_create_files_table.php b/database/migrations/2018_02_01_234941_create_files_table.php
new file mode 100644
index 000000000..edbce8fda
--- /dev/null
+++ b/database/migrations/2018_02_01_234941_create_files_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->integer('user_id'); $speb36c4->string('driver'); $speb36c4->string('path'); $speb36c4->string('url'); $speb36c4->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP')); }); } public function down() { Schema::dropIfExists('files'); } }
\ No newline at end of file
diff --git a/database/migrations/2018_05_17_112228_create_shop_themes_table.php b/database/migrations/2018_05_17_112228_create_shop_themes_table.php
new file mode 100644
index 000000000..e5c025275
--- /dev/null
+++ b/database/migrations/2018_05_17_112228_create_shop_themes_table.php
@@ -0,0 +1,2 @@
+increments('id'); $speb36c4->string('name', 128)->unique(); $speb36c4->string('description')->nullable(); $speb36c4->text('options')->nullable(); $speb36c4->text('config')->nullable(); $speb36c4->boolean('enabled')->default(true); }); \App\ShopTheme::freshList(); } public function down() { Schema::dropIfExists('shop_themes'); } }
\ No newline at end of file
diff --git a/database/migrations/2019_02_07_195259_add_count_to_products.php b/database/migrations/2019_02_07_195259_add_count_to_products.php
new file mode 100644
index 000000000..9cfbe7372
--- /dev/null
+++ b/database/migrations/2019_02_07_195259_add_count_to_products.php
@@ -0,0 +1,2 @@
+integer('count_all')->default(0)->after('count_sold'); }); App\Product::whereRaw('1')->update(array('count_sold' => 0, 'count_all' => 0)); \App\Card::selectRaw('`product_id`,SUM(`count_sold`) as `count_sold`,SUM(`count_all`) as `count_all`')->groupBy('product_id')->orderByRaw('`product_id`')->chunk(100, function ($speab77e) { foreach ($speab77e as $sp9bfdd7) { \App\Product::where('id', $sp9bfdd7->product_id)->update(array('count_sold' => $sp9bfdd7->count_sold, 'count_all' => $sp9bfdd7->count_all)); } }); } } public function down() { if (Schema::hasColumn('products', 'count_all')) { Schema::table('products', function (Blueprint $speb36c4) { $speb36c4->dropColumn(array('count_all')); }); } } }
\ No newline at end of file
diff --git a/database/migrations/2019_02_14_203213_add_name_to_orders.php b/database/migrations/2019_02_14_203213_add_name_to_orders.php
new file mode 100644
index 000000000..c984b972c
--- /dev/null
+++ b/database/migrations/2019_02_14_203213_add_name_to_orders.php
@@ -0,0 +1,2 @@
+string('product_name')->nullable()->after('product_id'); }); } } public function down() { } }
\ No newline at end of file
diff --git a/database/migrations/2019_04_28_230220_add_inventory_to_products.php b/database/migrations/2019_04_28_230220_add_inventory_to_products.php
new file mode 100644
index 000000000..d43fa2285
--- /dev/null
+++ b/database/migrations/2019_04_28_230220_add_inventory_to_products.php
@@ -0,0 +1,2 @@
+tinyInteger('inventory')->default(\App\User::INVENTORY_AUTO)->after('enabled'); $speb36c4->tinyInteger('fee_type')->default(\App\User::FEE_TYPE_AUTO)->after('inventory'); }); } } public function down() { foreach (array('inventory', 'fee_type') as $sp1a98b7) { try { Schema::table('products', function (Blueprint $speb36c4) use($sp1a98b7) { $speb36c4->dropColumn($sp1a98b7); }); } catch (\Throwable $spece20f) { } } } }
\ No newline at end of file
diff --git a/database/migrations/2019_05_18_131719_add_all_to_fund_records.php b/database/migrations/2019_05_18_131719_add_all_to_fund_records.php
new file mode 100644
index 000000000..02ac249cf
--- /dev/null
+++ b/database/migrations/2019_05_18_131719_add_all_to_fund_records.php
@@ -0,0 +1,2 @@
+integer('all')->nullable()->after('amount'); $speb36c4->integer('frozen')->nullable()->after('all'); $speb36c4->integer('paid')->nullable()->after('frozen'); }); } } public function down() { foreach (array('all', 'frozen', 'paid') as $sp1a98b7) { try { Schema::table('fund_records', function (Blueprint $speb36c4) use($sp1a98b7) { $speb36c4->dropColumn($sp1a98b7); }); } catch (\Throwable $spece20f) { } } } }
\ No newline at end of file
diff --git a/database/migrations/2019_06_04_214122_modify_cards_created_at.php b/database/migrations/2019_06_04_214122_modify_cards_created_at.php
new file mode 100644
index 000000000..8d44444f3
--- /dev/null
+++ b/database/migrations/2019_06_04_214122_modify_cards_created_at.php
@@ -0,0 +1,2 @@
+text('options')->nullable()->after('description'); }); } } public function down() { } }
\ No newline at end of file
diff --git a/database/migrations/2019_06_18_112211_add_manual_products.php b/database/migrations/2019_06_18_112211_add_manual_products.php
new file mode 100644
index 000000000..3137ac7e9
--- /dev/null
+++ b/database/migrations/2019_06_18_112211_add_manual_products.php
@@ -0,0 +1,6 @@
+text('fields')->nullable()->after('instructions'); $speb36c4->tinyInteger('delivery')->default(\App\Product::DELIVERY_AUTO)->after('fee_type'); }); } if (!Schema::hasColumn('orders', 'contact_ext')) { DB::unprepared('
+ALTER TABLE `orders`
+CHANGE COLUMN `email` `contact` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `customer`,
+CHANGE COLUMN `email_sent` `send_status` tinyint(4) NOT NULL DEFAULT 0 AFTER `contact`;
+ '); Schema::table('orders', function (Blueprint $speb36c4) { $speb36c4->text('contact_ext')->nullable()->after('contact'); }); } } public function down() { } }
\ No newline at end of file
diff --git a/database/migrations/2019_07_03_213426_add_sms_price_to_orders.php b/database/migrations/2019_07_03_213426_add_sms_price_to_orders.php
new file mode 100644
index 000000000..4a4307ccd
--- /dev/null
+++ b/database/migrations/2019_07_03_213426_add_sms_price_to_orders.php
@@ -0,0 +1,2 @@
+integer('sms_price')->default(0)->after('discount'); }); } } public function down() { } }
\ No newline at end of file
diff --git a/database/seeds/CardsSeeder.php b/database/seeds/CardsSeeder.php
new file mode 100644
index 000000000..169c218e2
--- /dev/null
+++ b/database/seeds/CardsSeeder.php
@@ -0,0 +1,2 @@
+id; \App\Card::insert(array(array('user_id' => $spfaef2f, 'product_id' => 1, 'card' => '11111', 'type' => \App\Card::TYPE_ONETIME, 'status' => \App\Card::STATUS_NORMAL, 'count_sold' => 0, 'count_all' => 1), array('user_id' => $spfaef2f, 'product_id' => 1, 'card' => '11112', 'type' => \App\Card::TYPE_ONETIME, 'status' => \App\Card::STATUS_SOLD, 'count_sold' => 1, 'count_all' => 1), array('user_id' => $spfaef2f, 'product_id' => 1, 'card' => '11113', 'type' => \App\Card::TYPE_ONETIME, 'status' => \App\Card::STATUS_NORMAL, 'count_sold' => 0, 'count_all' => 1), array('user_id' => $spfaef2f, 'product_id' => 2, 'card' => '123456', 'type' => \App\Card::TYPE_REPEAT, 'status' => \App\Card::STATUS_SOLD, 'count_sold' => 2, 'count_all' => 100))); } }
\ No newline at end of file
diff --git a/database/seeds/CouponsSeeder.php b/database/seeds/CouponsSeeder.php
new file mode 100644
index 000000000..791731a4c
--- /dev/null
+++ b/database/seeds/CouponsSeeder.php
@@ -0,0 +1,2 @@
+ 2, 'category_id' => -1, 'product_id' => -1, 'type' => \App\Coupon::TYPE_REPEAT, 'status' => \App\Coupon::STATUS_NORMAL, 'coupon' => 'happy-new-year', 'discount_type' => \App\Coupon::DISCOUNT_TYPE_PERCENT, 'discount_val' => 10, 'count_used' => 0, 'count_all' => 10, 'remark' => '系统生成', 'expire_at' => (new \Carbon\Carbon())->addDays(-30)))); } }
\ No newline at end of file
diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php
new file mode 100644
index 000000000..f9f4f034c
--- /dev/null
+++ b/database/seeds/DatabaseSeeder.php
@@ -0,0 +1,2 @@
+call(array(SystemSeeder::class, UsersSeeder::class, ProductsSeeder::class, CardsSeeder::class, CouponsSeeder::class, OrdersSeeder::class)); $this->call(PayTableSeeder::class); } }
\ No newline at end of file
diff --git a/database/seeds/OrdersSeeder.php b/database/seeds/OrdersSeeder.php
new file mode 100644
index 000000000..67788e506
--- /dev/null
+++ b/database/seeds/OrdersSeeder.php
@@ -0,0 +1,2 @@
+ 1000, 'user_id' => 0, 'order_no' => '123456', 'product_id' => \App\Product::first()->id, 'count' => 0, 'contact' => '', 'pay_id' => 0, 'status' => \App\Order::STATUS_UNPAY)); try { \App\Order::where('id', 1000)->delete(); } catch (Exception $spece20f) { } } public function run() { self::increaseId(); } }
\ No newline at end of file
diff --git a/database/seeds/PayTableSeeder.php b/database/seeds/PayTableSeeder.php
new file mode 100644
index 000000000..f02401ee6
--- /dev/null
+++ b/database/seeds/PayTableSeeder.php
@@ -0,0 +1,70 @@
+name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'Fakala'; $sp1840d6->way = 'alipay'; $sp1840d6->comment = 'alipay、alipaywap、wx、wxwap、qq、qqwap'; $sp1840d6->config = '{
+ "gateway": "https://www.327ka.com",
+ "api_id": "your api_id",
+ "api_key": "your api_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_PC; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'Fakala'; $sp1840d6->way = 'alipaywap'; $sp1840d6->comment = 'alipay、alipaywap、wx、wxwap、qq、qqwap'; $sp1840d6->config = '{
+ "gateway": "https://www.327ka.com",
+ "api_id": "your api_id",
+ "api_key": "your api_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_MOBILE; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'Fakala'; $sp1840d6->way = 'wx'; $sp1840d6->comment = 'alipay、alipaywap、wx、wxwap、qq、qqwap'; $sp1840d6->config = '{
+ "gateway": "https://www.327ka.com",
+ "api_id": "your api_id",
+ "api_key": "your api_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_PC; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'Fakala'; $sp1840d6->way = 'wxwap'; $sp1840d6->comment = 'alipay、alipaywap、wx、wxwap、qq、qqwap'; $sp1840d6->config = '{
+ "gateway": "https://www.327ka.com",
+ "api_id": "your api_id",
+ "api_key": "your api_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_MOBILE; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'Alipay'; $sp1840d6->way = 'pc'; $sp1840d6->comment = '支付宝 - 即时到账套餐(企业)V2'; $sp1840d6->config = '{
+ "partner": "partner",
+ "key": "key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'Aliwap'; $sp1840d6->way = 'wap'; $sp1840d6->comment = '支付宝 - 高级手机网站支付V4'; $sp1840d6->config = '{
+ "partner": "partner",
+ "key": "key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝扫码'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'AliAop'; $sp1840d6->way = 'f2f'; $sp1840d6->comment = '支付宝 - 当面付'; $sp1840d6->config = '{
+ "app_id": "app_id",
+ "alipay_public_key": "alipay_public_key",
+ "merchant_private_key": "merchant_private_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'AliAop'; $sp1840d6->way = 'pc'; $sp1840d6->comment = '支付宝 - 电脑网站支付 (新)'; $sp1840d6->config = '{
+ "app_id": "app_id",
+ "alipay_public_key": "alipay_public_key",
+ "merchant_private_key": "merchant_private_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '手机支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'AliAop'; $sp1840d6->way = 'mobile'; $sp1840d6->comment = '支付宝 - 手机网站支付 (新)'; $sp1840d6->config = '{
+ "app_id": "app_id",
+ "alipay_public_key": "alipay_public_key",
+ "merchant_private_key": "merchant_private_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信扫码'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'WeChat'; $sp1840d6->way = 'NATIVE'; $sp1840d6->comment = '微信支付 - 扫码'; $sp1840d6->config = '{
+ "APPID": "APPID",
+ "APPSECRET": "APPSECRET",
+ "MCHID": "商户ID",
+ "KEY": "KEY"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信H5'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'WeChat'; $sp1840d6->way = 'MWEB'; $sp1840d6->comment = '微信支付 - H5 (需要开通权限)'; $sp1840d6->config = '{
+ "APPID": "APPID",
+ "APPSECRET": "APPSECRET",
+ "MCHID": "商户ID",
+ "KEY": "KEY"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '手机QQ'; $sp1840d6->img = '/plugins/images/qq.png'; $sp1840d6->driver = 'QPay'; $sp1840d6->way = 'NATIVE'; $sp1840d6->comment = '手机QQ - 扫码'; $sp1840d6->config = '{
+ "mch_id": "mch_id",
+ "mch_key": "mch_key"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'Youzan'; $sp1840d6->way = 'alipay'; $sp1840d6->comment = '有赞支付 - 支付宝'; $sp1840d6->config = '{
+ "client_id": "client_id",
+ "client_secret": "client_secret",
+ "kdt_id": "kdt_id"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'Youzan'; $sp1840d6->way = 'wechat'; $sp1840d6->comment = '有赞支付 - 微信'; $sp1840d6->config = '{
+ "client_id": "client_id",
+ "client_secret": "client_secret",
+ "kdt_id": "kdt_id"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '手机QQ'; $sp1840d6->img = '/plugins/images/qq.png'; $sp1840d6->driver = 'Youzan'; $sp1840d6->way = 'qq'; $sp1840d6->comment = '有赞支付 - 手机QQ'; $sp1840d6->config = '{
+ "client_id": "client_id",
+ "client_secret": "client_secret",
+ "kdt_id": "kdt_id"
+}'; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '支付宝'; $sp1840d6->img = '/plugins/images/ali.png'; $sp1840d6->driver = 'CodePay'; $sp1840d6->way = 'alipay'; $sp1840d6->comment = '码支付 - 支付宝'; $sp1840d6->config = '{
+ "id": "id",
+ "key": "key"
+}'; $sp1840d6->fee_system = 0; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '微信'; $sp1840d6->img = '/plugins/images/wx.png'; $sp1840d6->driver = 'CodePay'; $sp1840d6->way = 'weixin'; $sp1840d6->comment = '码支付 - 微信'; $sp1840d6->config = '{
+ "id": "id",
+ "key": "key"
+}'; $sp1840d6->fee_system = 0; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); $sp1840d6 = new \App\Pay(); $sp1840d6->name = '手机QQ'; $sp1840d6->img = '/plugins/images/qq.png'; $sp1840d6->driver = 'CodePay'; $sp1840d6->way = 'qq'; $sp1840d6->comment = '码支付 - 手机QQ'; $sp1840d6->config = '{
+ "id": "id",
+ "key": "key"
+}'; $sp1840d6->fee_system = 0; $sp1840d6->enabled = \App\Pay::ENABLED_DISABLED; $sp1840d6->save(); } public function run() { self::initPay(); } }
\ No newline at end of file
diff --git a/database/seeds/ProductsSeeder.php b/database/seeds/ProductsSeeder.php
new file mode 100644
index 000000000..73a0ea321
--- /dev/null
+++ b/database/seeds/ProductsSeeder.php
@@ -0,0 +1,2 @@
+id; $sp2e76be = new \App\Category(); $sp2e76be->user_id = $spfaef2f; $sp2e76be->name = '测试分组'; $sp2e76be->enabled = true; $sp2e76be->save(); $sp2e76be = new \App\Category(); $sp2e76be->user_id = $spfaef2f; $sp2e76be->name = '这里是一个啦啦啦啦啦啦超级无敌爆炸螺旋长的商品类别标题'; $sp2e76be->enabled = true; $sp2e76be->save(); $sp2e76be = new \App\Category(); $sp2e76be->user_id = $spfaef2f; $sp2e76be->name = '密码123456'; $sp2e76be->enabled = true; $sp2e76be->password = '123456'; $sp2e76be->password_open = true; $sp2e76be->save(); $spaeec37 = new \App\Product(); $spaeec37->id = 1; $spaeec37->user_id = $spfaef2f; $spaeec37->category_id = 1; $spaeec37->name = '测试商品'; $spaeec37->description = '这里是测试商品的一段简短的描述'; $spaeec37->price = 1; $spaeec37->enabled = true; $spaeec37->support_coupon = true; $spaeec37->count_sold = 1; $spaeec37->count_all = 3; $spaeec37->instructions = '充值网址: XXXXX'; $spaeec37->save(); $spaeec37 = new \App\Product(); $spaeec37->id = 2; $spaeec37->user_id = $spfaef2f; $spaeec37->category_id = 1; $spaeec37->name = '重复测试密码123456'; $spaeec37->description = '商品描述 所十二星座运势查询,提前预测2016年十二星座运势内容,让你能够占卜吉凶;2016年生肖运势测算,生肖开运,周易风水。'; $spaeec37->instructions = '充值网址: XXXXX'; $spaeec37->password = '123456'; $spaeec37->password_open = true; $spaeec37->support_coupon = true; $spaeec37->price = 10; $spaeec37->price_whole = '[["2","8"],["10","5"]]'; $spaeec37->enabled = true; $spaeec37->count_sold = 2; $spaeec37->count_all = 100; $spaeec37->count_warn = 10; $spaeec37->save(); $spaeec37 = new \App\Product(); $spaeec37->user_id = $spfaef2f; $spaeec37->category_id = 2; $spaeec37->name = '测试商品_2'; $spaeec37->description = '这里是测试商品的一段简短的描述, 可以插入多媒体文本'; $spaeec37->price = 1; $spaeec37->enabled = true; $spaeec37->save(); $spaeec37 = new \App\Product(); $spaeec37->user_id = $spfaef2f; $spaeec37->category_id = 3; $spaeec37->name = '测试商品_3'; $spaeec37->description = '这里是测试商品的一段简短的描述, 可以插入多媒体文本'; $spaeec37->price = 1; $spaeec37->enabled = true; $spaeec37->save(); } }
\ No newline at end of file
diff --git a/database/seeds/SystemSeeder.php b/database/seeds/SystemSeeder.php
new file mode 100644
index 000000000..f40f31d4f
--- /dev/null
+++ b/database/seeds/SystemSeeder.php
@@ -0,0 +1,2 @@
+ 'XX小店', 'app_title' => '自动发卡, 自动发货', 'app_url' => 'http://www.example.com', 'app_url_api' => 'http://www.example.com', 'company' => '©2019 Windy', 'keywords' => '在线发卡系统', 'description' => '我是一个发卡系统, 这里填写描述', 'shop_bkg' => 'http://api.izhao.me/img', 'shop_ann' => '欢迎来到XXX小店', 'shop_ann_pop' => '', 'shop_inventory' => 1, 'js_tj' => '
', 'js_kf' => '', 'vcode_driver' => 'geetest', 'vcode_login' => '0', 'vcode_shop_buy' => '0', 'vcode_shop_search' => '0', 'storage_driver' => 'local', 'order_clean_unpay_open' => '0', 'order_clean_unpay_day' => '7', 'mail_driver' => 'smtp', 'mail_smtp_host' => 'smtp.mailtrap.io', 'mail_smtp_port' => '25', 'mail_smtp_username' => 'xxx', 'mail_smtp_password' => 'xxx', 'mail_smtp_from_address' => 'hello@example.com', 'mail_smtp_from_name' => 'test', 'mail_smtp_encryption' => 'null'); $sp04b3bf = array(); foreach ($spcc2e30 as $spe3274c => $spd7786b) { $sp04b3bf[] = array('name' => $spe3274c, 'value' => $spd7786b); } DB::table('systems')->insert($sp04b3bf); } }
\ No newline at end of file
diff --git a/database/seeds/UsersSeeder.php b/database/seeds/UsersSeeder.php
new file mode 100644
index 000000000..3b9fda9eb
--- /dev/null
+++ b/database/seeds/UsersSeeder.php
@@ -0,0 +1,2 @@
+insert(array('email' => 'admin@qq.com', 'password' => bcrypt('123456'), 'created_at' => \Carbon\Carbon::now())); } }
\ No newline at end of file
diff --git a/public/.htaccess b/public/.htaccess
new file mode 100644
index 000000000..b75525bed
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,21 @@
+
+
+ Options -MultiViews -Indexes
+
+
+ RewriteEngine On
+
+ # Handle Authorization Header
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect Trailing Slashes If Not A Folder...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Handle Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+
diff --git a/public/assets/css/index.css b/public/assets/css/index.css
new file mode 100644
index 000000000..4b1c8be18
--- /dev/null
+++ b/public/assets/css/index.css
@@ -0,0 +1,2322 @@
+
+.f-tit, .h2 {
+ color: #FFF
+}
+
+.h2, .h3 {
+ letter-spacing: 1px
+}
+
+.block-btn, a, button {
+ cursor: pointer
+}
+
+html {
+ line-height: 1.15
+}
+
+body {
+ font-family: "PingFang SC UltraLight", PingFangSC-Light, "Microsoft YaHei", Tahoma, "Hiragino Sans GB", "WenQuanYi Micro Hei", sans-serif, "Theme by Windy";
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-size: 100px;
+ margin: 0
+}
+
+a, button, input {
+ font-family: "PingFang SC", "PingFang SC UltraLight", PingFangSC-Light, "Microsoft YaHei", sans-serif, "Theme by Windy"
+}
+
+ol, ul {
+ margin: 0;
+ padding: 0
+}
+
+ul li {
+ list-style: none
+}
+
+figure {
+ display: block;
+ margin: 0;
+}
+.q19060{
+ display: block;
+ margin: 0;
+}
+a {
+ text-decoration: none
+}
+
+button:focus {
+ outline: 0
+}
+
+.container {
+ width: calc(100% - 48px);
+ margin-left: 24px;
+ margin-right: 24px;
+}
+
+.container-other {
+ width: calc(100% - 48px);
+ margin-left: 24px;
+ margin-right: 24px;
+}
+
+@media only screen and (min-width: 1100px) {
+ .container, .container-other {
+ width: 1100px;
+ margin: auto !important;
+ }
+
+}
+
+.margin-left-30 {
+ margin-left: 30px
+}
+
+.h2 {
+ z-index: 4;
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 2.4rem;
+ font-weight: 400;
+ line-height: 50px;
+ white-space: nowrap;
+ font-family: PingFangSC-Light, "PingFang SC", "PingFang SC UltraLight", "Microsoft YaHei", sans-serif
+}
+
+.f-tit {
+ opacity: .7;
+ font-size: 1.1rem;
+ line-height: 29px;
+ font-weight: 400
+}
+
+.h3, .h4 {
+ font-weight: 400;
+ color: #002059;
+ font-family: PingFangSC-Light, "PingFang SC", "PingFang SC UltraLight", "Microsoft YaHei", sans-serif
+}
+
+.h3 {
+ font-size: 32px;
+ line-height: 45px;
+ text-align: center
+}
+
+.h4 {
+ font-size: 1.4rem;
+ line-height: 2rem;
+ margin: 0
+}
+
+.p-text, .p-text-tit {
+ line-height: 26px;
+ text-align: center
+}
+
+.little-icon {
+ width: 68px;
+ height: auto
+}
+
+.p-text {
+ color: rgba(51, 77, 122, .85);
+ font-size: .9rem
+}
+
+.p-text-tit {
+ color: rgba(0, 33, 89, .6);
+ font-size: 1rem
+}
+
+.header-free-activity .header-container .case-tit-box .ch-tit, .header-free-case .header-container .case-tit-box .ch-tit {
+ line-height: 62px;
+ white-space: nowrap
+}
+
+.quote-mask {
+ opacity: 0;
+ -webkit-transition: all .2s cubic-bezier(0, 0, .4, .99);
+ transition: all .2s cubic-bezier(0, 0, .4, .99)
+}
+
+.quote-mask-active {
+ opacity: .55
+}
+
+.quote {
+ opacity: 0;
+ -webkit-transform: translateY(40px);
+ -ms-transform: translateY(40px);
+ transform: translateY(40px);
+ -webkit-transition: all 1s cubic-bezier(.5, -.01, 0, 1.005);
+ transition: all 1s cubic-bezier(.5, -.01, 0, 1.005)
+}
+
+.quote-active {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0)
+}
+
+.quote-pic {
+ opacity: 0;
+ -webkit-transform: translateY(60px);
+ -ms-transform: translateY(60px);
+ transform: translateY(60px);
+ -webkit-transition: all 1.2s cubic-bezier(0, 0, .4, .99);
+ transition: all 1.2s cubic-bezier(0, 0, .4, .99)
+}
+
+.quote-pic-active {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transition-delay: .3s;
+ transition-delay: .3s
+}
+
+.quote-index-circle {
+ opacity: 0;
+ -webkit-transform: translateY(10px);
+ -ms-transform: translateY(10px);
+ transform: translateY(10px);
+ -webkit-transition: all 1s cubic-bezier(0, 0, .4, .99);
+ transition: all 1s cubic-bezier(0, 0, .4, .99)
+}
+
+.quote-index-circle-active {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0)
+}
+
+.quote-bg-circle {
+ opacity: 0;
+ transform: translate(-50%, -50%) scale(.98);
+ -webkit-transform: translate(-50%, -50%) scale(.98);
+ -moz-transform: translate(-50%, -50%) scale(.98);
+ -ms-transform: translate(-50%, -50%) scale(.98);
+ -o-transform: translate(-50%, -50%) scale(.98);
+ -webkit-transition: all .5s cubic-bezier(0, 0, .4, .99);
+ transition: all .5s cubic-bezier(0, 0, .4, .99)
+}
+
+.quote-bg-circle-active3 {
+ opacity: .8;
+ transform: translate(-50%, -50%) scale(1);
+ -webkit-transform: translate(-50%, -50%) scale(1);
+ -moz-transform: translate(-50%, -50%) scale(1);
+ -ms-transform: translate(-50%, -50%) scale(1);
+ -o-transform: translate(-50%, -50%) scale(1)
+}
+
+.quote-bg-circle-active2 {
+ opacity: .7;
+ transform: translate(-50%, -50%) scale(1);
+ -webkit-transform: translate(-50%, -50%) scale(1);
+ -moz-transform: translate(-50%, -50%) scale(1);
+ -ms-transform: translate(-50%, -50%) scale(1);
+ -o-transform: translate(-50%, -50%) scale(1)
+}
+
+.quote-bg-circle-active1 {
+ opacity: .4;
+ transform: translate(-50%, -50%) scale(1);
+ -webkit-transform: translate(-50%, -50%) scale(1);
+ -moz-transform: translate(-50%, -50%) scale(1);
+ -ms-transform: translate(-50%, -50%) scale(1);
+ -o-transform: translate(-50%, -50%) scale(1)
+}
+
+.quote-circle-l1 {
+ opacity: 0;
+ -webkit-transform: translate(6px, 6px);
+ -ms-transform: translate(6px, 6px);
+ transform: translate(6px, 6px);
+ -webkit-transition: all 1.4s cubic-bezier(0, 0, .4, .99);
+ transition: all 1.4s cubic-bezier(0, 0, .4, .99)
+}
+
+.quote-circle-l1-active {
+ opacity: 1;
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0)
+}
+
+.delay14 {
+ -webkit-transition-delay: 1.4s;
+ transition-delay: 1.4s
+}
+
+.delay13 {
+ -webkit-transition-delay: 1.3s;
+ transition-delay: 1.3s
+}
+
+.delay12 {
+ -webkit-transition-delay: 1.2s;
+ transition-delay: 1.2s
+}
+
+.delay10 {
+ -webkit-transition-delay: 1s;
+ transition-delay: 1s
+}
+
+.delay8 {
+ -webkit-transition-delay: .8s;
+ transition-delay: .8s
+}
+
+.delay6 {
+ -webkit-transition-delay: .6s;
+ transition-delay: .6s
+}
+
+.delay5 {
+ -webkit-transition-delay: .5s;
+ transition-delay: .5s
+}
+
+.delay4 {
+ -webkit-transition-delay: .4s;
+ transition-delay: .4s
+}
+
+.delay3 {
+ -webkit-transition-delay: .3s;
+ transition-delay: .3s
+}
+
+.delay2 {
+ -webkit-transition-delay: .2s;
+ transition-delay: .2s
+}
+
+.delay1 {
+ -webkit-transition-delay: .1s;
+ transition-delay: .1s
+}
+
+.header-hehe {
+ position: absolute;
+ z-index: -1;
+ width: 100%;
+ display: grid;
+ -webkit-transform: skewY(4deg);
+ -ms-transform: skewY(4deg);
+ transform: skewY(4deg);
+ top: 0;
+ grid: repeat(5, 200px)/repeat(7, 1fr);
+ -webkit-transform-origin: 100% 0;
+ -ms-transform-origin: 100% 0;
+ transform-origin: 100% 0;
+ background: -webkit-linear-gradient(226.44deg, #6CECA2 0, #005EFF 100%);
+ background: linear-gradient(223.56deg, #6CECA2 0, #005EFF 100%);
+ height: 668px;
+ overflow: hidden
+}
+
+.header-box .header-container .mask, .header-box-small .header-container .mask {
+ z-index: 2
+}
+
+.header-box, .header-box-small {
+ background: -webkit-linear-gradient(226.44deg, #6CECA2 0, #005EFF 100%);
+ overflow: hidden
+}
+
+.header-box {
+ height: 480px;
+ background: linear-gradient(223.56deg, #6CECA2 0, #005EFF 100%);
+}
+
+.header-box .header-container {
+ height: 400px;
+ margin: 20px 0 \9;
+ position: relative
+}
+
+.header-box .header-container .mask .mask1 {
+ position: absolute;
+ left: -14%;
+ top: -40px
+}
+
+.header-box .header-container .mask .mask1 img {
+ width: 838px
+}
+
+.header-box .header-container .mask .mask2 {
+ position: absolute;
+ right: -12%;
+ bottom: -62px
+}
+
+.header-box .header-container .mask .mask2 img {
+ width: 855px
+}
+
+.header-box .header-container .mask .mask3 {
+ position: absolute;
+ right: 30px;
+ top: -54px
+}
+
+.header-box .header-container .mask .mask3 img {
+ width: 250px
+}
+
+.header-box-small {
+ height: 300px;
+ background: linear-gradient(223.56deg, #6CECA2 0, #005EFF 100%);
+ margin-top: 80px
+}
+
+.header-free-activity .header-container .case-tit-box .ch-line, .header-free-case .header-container .case-tit-box .ch-line {
+ border-top: 1px solid rgba(255, 255, 255, .3);
+ padding-top: 42px;
+ margin-top: 38px
+}
+
+.header-box-small .header-container {
+ position: relative
+}
+
+.header-box-small .header-container .mask .mask1 {
+ position: absolute;
+ left: -1.2em;
+ top: -2.2em
+}
+
+.header-box-small .header-container .mask .mask1 img {
+ width: 838px
+}
+
+.header-box-small .header-container .mask .mask2 {
+ position: absolute;
+ right: -1.8em
+}
+
+.header-box-small .header-container .mask img {
+ width: 855px
+}
+
+.header-box-small .header-container .mask3 {
+ position: absolute;
+ top: -1.35em;
+ right: .3em
+}
+
+.header-box-small .header-container .mask3 img {
+ width: 250px
+}
+
+.header-free-case {
+ font-size: 1rem;
+ overflow: hidden;
+ height: 530px;
+ background: -webkit-linear-gradient(226.44deg, #6CECA2 0, #005EFF 100%);
+ background: linear-gradient(223.56deg, #6CECA2 0, #005EFF 100%)
+}
+
+.header-free-case .header-container {
+ position: relative
+}
+
+.header-free-case .header-container .case-tit-box {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ -webkit-transform: translate(-50%);
+ -ms-transform: translate(-50%);
+ transform: translate(-50%);
+ text-align: center;
+ height: 100%
+}
+
+.header-free-case .header-container .worldmap {
+ -webkit-transform: scale(1.3);
+ -ms-transform: scale(1.3);
+ transform: scale(1.3);
+ opacity: .4
+}
+
+.header-free-activity {
+ font-size: 1rem;
+ overflow: hidden;
+ height: 750px;
+ background: -webkit-linear-gradient(219.94deg, #F5BF73 0, #E26C59 100%);
+ background: linear-gradient(230.06deg, #F5BF73 0, #E26C59 100%)
+}
+
+.header-free-activity .header-container {
+ position: relative
+}
+
+.header-free-activity .header-container .case-tit-box {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ -webkit-transform: translate(-50%);
+ -ms-transform: translate(-50%);
+ transform: translate(-50%);
+ text-align: center;
+ height: 100%
+}
+
+.border-btn, .border-btn-white {
+ display: block;
+ font-weight: 600;
+ padding: 13px 30px
+}
+
+.panel-base {
+ -webkit-box-shadow: 0 1px 5px 0 rgba(24, 44, 79, .07), 0 5px 10px 0 rgba(24, 44, 79, .1);
+ box-shadow: 0 1px 5px 0 rgba(24, 44, 79, .07), 0 5px 10px 0 rgba(24, 44, 79, .1);
+ border-radius: 4px;
+ -webkit-transition: all 250ms cubic-bezier(.02, .01, .47, 1);
+ transition: all 250ms cubic-bezier(.02, .01, .47, 1);
+ overflow: hidden
+}
+
+.border-btn {
+ border: 2px solid #005EFF;
+ border-radius: 4px;
+ background-color: #FFF;
+ text-align: center;
+ color: #005EFF;
+ font-size: 16px;
+ -webkit-transition: all .3s;
+ transition: all .3s
+}
+
+.block-btn, .border-btn-white {
+ text-align: center;
+ font-size: 16px;
+ -webkit-transition: all .3s;
+ color: #fff
+}
+
+.border-btn:hover {
+ opacity: .7
+}
+
+.border-btn-white {
+ border: 2px solid #fff;
+ border-radius: 4px;
+ background-color: transparent;
+ transition: all .3s
+}
+
+.border-btn-white:hover {
+ opacity: .8
+}
+
+.block-btn {
+ padding: 14px 30px;
+ background-color: #005EFF;
+ border-radius: 4px;
+ display: inline-block;
+ font-weight: 500;
+ transition: all .3s;
+ border: none
+}
+
+.G1-block-btn, .block-btn > i {
+ -webkit-transition: all .3s
+}
+
+.block-btn > i {
+ position: relative;
+ left: 0;
+ transition: all .3s
+}
+
+.block-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem #e0e2e8, 0 .3rem .6rem rgba(12, 14, 27, .065);
+ box-shadow: 0 .7rem 1.4rem #e0e2e8, 0 .3rem .6rem rgba(12, 14, 27, .065);
+ -webkit-transform: translateY(-.2rem);
+ -ms-transform: translateY(-.2rem);
+ transform: translateY(-.2rem);
+ -webkit-transition-duration: .45s;
+ transition-duration: .45s;
+ background-color: #2274ff
+}
+
+.G1-block-btn:hover, .G1-block-white-btn:hover {
+ -webkit-transform: translateY(-.2rem);
+ -ms-transform: translateY(-.2rem)
+}
+
+.block-btn:hover > i {
+ left: 8px
+}
+
+.rectangle {
+ border: 1px solid #EFEFEF;
+ background-color: #FFF;
+ border-radius: 4px;
+ padding: 56px 80px
+}
+
+.G1-block-btn, .G1-block-white-btn {
+ border-radius: 4px;
+ text-align: center;
+ font-size: 16px;
+ display: inline-block;
+ cursor: pointer
+}
+
+.G1-block-btn, .G1-block-white-btn, .head-btn {
+ padding: 14px 30px;
+ font-weight: 500
+}
+
+.rectangle button {
+ margin-left: 99px
+}
+
+.G1-block-btn {
+ background-color: #00CCA7;
+ color: #fff;
+ transition: all .3s;
+ border: none
+}
+
+.G1-block-btn > i {
+ position: relative;
+ left: 0;
+ -webkit-transition: all .3s;
+ transition: all .3s
+}
+
+.G1-block-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem #e0e2e8, 0 .3rem .6rem rgba(12, 14, 27, .065);
+ box-shadow: 0 .7rem 1.4rem #e0e2e8, 0 .3rem .6rem rgba(12, 14, 27, .065);
+ transform: translateY(-.2rem);
+ -webkit-transition-duration: .45s;
+ transition-duration: .45s;
+ background-color: rgba(0, 204, 167, .8)
+}
+
+.G1-block-btn:hover > i {
+ left: 8px
+}
+
+.G1-block-white-btn {
+ background-color: #fff;
+ color: #00CCA7;
+ -webkit-transition: all .3s;
+ transition: all .3s;
+ border: none
+}
+
+.G1-block-white-btn > i, .head-btn {
+ -webkit-transition: all .3s;
+ position: relative
+}
+
+.G1-block-white-btn > i {
+ left: 0;
+ transition: all .3s
+}
+
+.G1-block-white-btn i.sj-icon {
+ background: url(/assets/images/btn-arrow-green.svg) center no-repeat;
+ width: 22px;
+ height: 14px;
+ display: inline-block;
+ margin-right: 8px;
+ position: relative;
+ top: 1px
+}
+
+.G1-block-white-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem rgba(130, 130, 130, .2), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ box-shadow: 0 .7rem 1.4rem rgba(130, 130, 130, .2), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ transform: translateY(-.2rem);
+ -webkit-transition-duration: .45s;
+ transition-duration: .45s
+}
+
+.G1-block-white-btn:hover > i {
+ left: 6px
+}
+
+.full-btn {
+ height: 48px;
+ width: 100%;
+ border-radius: 4px;
+ background-color: #005EFF
+}
+
+.head-btn {
+ border-radius: 4px;
+ background-color: #FFF;
+ font-size: 1rem;
+ color: #005EFF;
+ border: 0;
+ transition: all .3s
+}
+
+.head-btn > i {
+ position: relative;
+ left: 0;
+ -webkit-transition: all .3s;
+ transition: all .3s
+}
+
+.head-btn:hover > i {
+ left: 6px
+}
+
+.head-btn i.sj-icon {
+ background: url(/assets/images/btn-arrow.svg) center no-repeat;
+ width: 22px;
+ height: 14px;
+ display: inline-block;
+ margin-right: 8px;
+ position: relative;
+ top: 1px
+}
+
+.head-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem rgba(55, 109, 202, .7), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ box-shadow: 0 .7rem 1.4rem rgba(55, 109, 202, .7), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ -webkit-transform: translateY(-.2rem);
+ -ms-transform: translateY(-.2rem);
+ transform: translateY(-.2rem);
+ -webkit-transition-duration: .45s;
+ transition-duration: .45s
+}
+
+.a-base {
+ color: #005EFF;
+ font-size: 16px;
+ line-height: 22px;
+ font-weight: 600;
+ margin-top: 0;
+ -webkit-transition: all .4s;
+ transition: all .4s;
+ margin-bottom: 16px;
+ display: block
+}
+
+.a-base > i {
+ position: relative;
+ top: 2px;
+ left: 3px
+}
+
+.grid {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex
+}
+
+.center-box, .right-box {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox
+}
+
+.center-box {
+ display: flex;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -moz-box-align: center;
+ -ms-flex-align: center;
+ align-items: center
+}
+
+.right-box {
+ display: flex;
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -moz-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end
+}
+
+.space-between-box {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ -moz-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between
+}
+
+.auto-row {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -moz-box-orient: horizontal;
+ -moz-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -moz-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: start
+}
+
+.header .linkGroup .product-text, .header .linkGroup li a, .header-box .header-container .left, .logowar .logo, .product .pro-box .top {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -moz-box-orient: vertical;
+ -moz-box-direction: normal
+}
+
+.header, .meiqia {
+ position: fixed;
+ z-index: 99
+}
+
+.container-lg, .meiqia {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox
+}
+
+.header {
+ font-size: .9rem;
+ -webkit-perspective: 2000px;
+ perspective: 2000px;
+ width: 100%;
+ height: 80px;
+ top: 0;
+ left: 0;
+ background-color: #fff
+}
+
+.header .logo img {
+ width: 110px;
+ height: 55px
+}
+
+.header-transparent {
+ font-size: .9rem;
+ -webkit-perspective: 2000px;
+ perspective: 2000px;
+ width: 100%;
+ height: 80px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 99;
+ background-color: transparent;
+ -webkit-transition: .6s all ease;
+ transition: .6s all ease
+}
+
+.header-transparent .navRoot .rootLink {
+ display: inline-block;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ font-size: .9rem;
+ color: #fff;
+ margin: 0 32px 0 0
+}
+
+.Location-nav li, .rootLink {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none
+}
+
+.head-fixed {
+ border-bottom: 1px solid rgba(224, 224, 224, .5);
+}
+
+.header-transparent .navRoot .rootLink a {
+ text-decoration: none;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-transition: color .1s;
+ transition: color .1s
+}
+
+.container-lg {
+ width: 1100px;
+ display: flex;
+ margin: 0 auto;
+ -webkit-align-content: space-between;
+ -ms-flex-line-pack: justify;
+ align-content: space-between
+}
+
+.header .linkGroup li a, .navRoot {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox
+}
+
+.navRoot {
+ display: flex;
+ line-height: 38px;
+ height: 38px;
+ padding: 10px 0;
+}
+
+.navRoot-Mobile {
+ display: none
+}
+
+.rootLink {
+ display: inline-block;
+ white-space: nowrap;
+ user-select: none;
+ font-size: .9rem;
+ color: #7F8FAC;
+ margin: 0 32px 0 0
+}
+
+.header .navSection .regbtn {
+ padding: 0 30px;
+ margin-top: 0;
+ white-space: nowrap;
+}
+
+.header .colorize {
+ -webkit-transition: color .1s ease;
+ transition: color .1s ease
+}
+
+.header .dropdownRoot {
+ position: absolute;
+ z-index: 1000;
+ left: 0;
+ right: 0;
+ top: 68px;
+ pointer-events: none;
+ -webkit-transform: rotateX(-15deg);
+ transform: rotateX(-15deg);
+ -webkit-transform-origin: 50% -50px;
+ -ms-transform-origin: 50% -50px;
+ transform-origin: 50% -50px;
+ opacity: 0;
+ will-change: transform, opacity;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-transition-duration: .25s;
+ transition-duration: .25s;
+ display: none
+}
+
+@media (min-width: 670px) {
+ .header .dropdownRoot {
+ display: block
+ }
+}
+
+.header.dropdownActive .dropdownRoot {
+ opacity: 1;
+ pointer-events: auto;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
+}
+
+.header .dropdownBackground, .header .dropdownContainer {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ overflow: hidden
+}
+
+.header .dropdownBackground {
+ background: #fff;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1);
+ box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1);
+ width: 380px;
+ height: 400px;
+ transform: translateX(0);
+ -webkit-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0
+}
+
+.header .alternateBackground, .header .dropdownBackground {
+ position: absolute;
+ top: 0;
+ left: 0;
+ will-change: transform;
+ -webkit-transition-property: -webkit-transform;
+ transition-property: -webkit-transform;
+ transition-property: transform, -webkit-transform;
+ -webkit-transition-duration: .25s;
+ transition-duration: .25s
+}
+
+.header .alternateBackground {
+ right: 0;
+ height: 1000px;
+ background: #f6f9fc
+}
+
+.header .dropdownArrow {
+ position: absolute;
+ top: -6px;
+ left: 0;
+ margin: 0 0 0 -6px;
+ width: 12px;
+ height: 12px;
+ -webkit-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ border-radius: 4px 0 0;
+ background: #fff;
+ -webkit-box-shadow: -3px -3px 5px rgba(82, 95, 127, .04);
+ box-shadow: -3px -3px 5px rgba(82, 95, 127, .04);
+ will-change: transform;
+ -webkit-transition-property: -webkit-transform;
+ transition-property: -webkit-transform;
+ transition-property: transform, -webkit-transform;
+ -webkit-transition-duration: .25s;
+ transition-duration: .25s
+}
+
+.header .dropdownContainer, .header .dropdownContent {
+ position: absolute;
+ top: 0;
+ left: 0
+}
+
+.header .dropdownContainer {
+ width: 500px;
+ transform: translateX(0);
+ will-change: transform, width, height;
+ -webkit-transition-property: width, height, -webkit-transform;
+ transition-property: transform, width, height, -webkit-transform;
+ -webkit-transition-duration: .25s;
+ transition-duration: .25s
+}
+
+.header .dropdownSection {
+ opacity: 0;
+ pointer-events: none;
+ will-change: transform, opacity;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-transition-duration: .25s;
+ transition-duration: .25s;
+ background: red
+}
+
+.header .dropdownSection.active {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0)
+}
+
+.header .dropdownSection.left {
+ -webkit-transform: translateX(-150px);
+ -ms-transform: translateX(-150px);
+ transform: translateX(-150px)
+}
+
+.header .dropdownSection.right {
+ -webkit-transform: translateX(150px);
+ -ms-transform: translateX(150px);
+ transform: translateX(150px)
+}
+
+.header.dropdownActive .dropdownSection.active {
+ pointer-events: auto
+}
+
+.header.noDropdownTransition .alternateBackground, .header.noDropdownTransition .dropdownArrow, .header.noDropdownTransition .dropdownBackground, .header.noDropdownTransition .dropdownContainer, .header.noDropdownTransition .dropdownSection {
+ -webkit-transition: none;
+ transition: none
+}
+
+.header .linkGroup {
+ padding: 20px 34px
+}
+
+.header .linkGroup li {
+ margin-top: 8%;
+ border-bottom: 1px solid #f1f1f1;
+ list-style: none
+}
+
+.header .linkGroup li:first-child {
+ margin-top: 0
+}
+
+.header .linkGroup li:last-child {
+ border-bottom: none
+}
+
+.header .linkGroup li a {
+ display: flex;
+ -webkit-box-align: start;
+ -webkit-align-items: flex-start;
+ -moz-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ -webkit-align-content: flex-start;
+ -ms-flex-line-pack: start;
+ align-content: flex-start;
+ line-height: 30px;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ padding-top: 8px;
+ color: #7F8FAC;
+ -webkit-transition: all .2s;
+ transition: all .2s
+}
+
+.header .linkGroup li a:hover {
+ opacity: .7
+}
+
+.header .linkGroup li .oth-pad {
+ padding-top: 3px
+}
+
+.header .linkGroup .product-icon-G1, .header .linkGroup .product-icon-G2, .header .linkGroup .product-icon-G3 {
+ width: auto;
+ height: auto
+}
+
+.header .linkGroup .product-text {
+ margin-bottom: 16px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -moz-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ color: #0A65FF;
+ white-space: nowrap
+}
+
+.header .linkGroup .product-text p {
+ text-align: left;
+ font-size: 14px;
+ margin-top: 4px;
+ color: #7F8FAC;
+ margin-bottom: 0
+}
+
+.header .linkGroup .clear-margin {
+ margin-bottom: 0
+}
+
+.footer {
+ color: #7a7d82;
+ font-size: .12px
+}
+
+.footer .right .block-btn {
+ margin-top: 32px
+}
+
+.footer .map {
+ margin-bottom: 168px;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -moz-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ margin-top: 78px
+}
+
+.footer .map .map-box {
+ position: relative;
+ width: 50%;
+ height: auto
+}
+
+.footer .panbox {
+ position: absolute;
+ left: 50%;
+ -webkit-transform: translate(-50%);
+ -ms-transform: translate(-50%);
+ transform: translate(-50%);
+ top: -102px
+}
+
+.Location-nav li, .link-box, .link-box .other-link .other, .map-container {
+ position: relative
+}
+
+.footer .panel {
+ height: 172px;
+ width: 534px;
+ background-color: #FFF
+}
+
+.footer .panel:hover {
+ -webkit-transform: translateY(-6px);
+ -ms-transform: translateY(-6px);
+ transform: translateY(-6px);
+ -webkit-box-shadow: 0 15px 35px 0 rgba(24, 44, 79, .15);
+ box-shadow: 0 15px 35px 0 rgba(24, 44, 79, .15)
+}
+
+.footer .panel .text {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ -moz-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1
+}
+
+.footer .san, .footer .zuans {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 25%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%
+}
+
+.footer .zuans svg {
+ position: relative;
+ bottom: -26px;
+ left: 0
+}
+
+.link-box {
+ color: #002059;
+ padding-top: 60px;
+ height: auto;
+ background-color: #F6F9FC;
+}
+
+.link-box .root-link .left {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 25%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%
+}
+
+.link-box .root-link .center {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 50%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 50%;
+ flex: 0 0 50%
+}
+
+.link-box .root-link .center .link-item {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ -moz-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ font-size: .85rem;
+ line-height: 20px;
+ color: #FFF
+}
+
+.link-box .root-link .center .link-item .tit {
+ margin-top: 0;
+ opacity: .4;
+ color: #002059
+}
+
+.link-box .root-link .center .link-item .a-link {
+ display: block;
+ line-height: 35px;
+ height: 35px;
+ color: #002059
+}
+
+.link-box .root-link .right, .link-box .ship-link .right {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox
+}
+
+.link-box .root-link .right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 25%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 25%;
+ flex: 0 0 25%;
+ display: flex;
+ text-align: right;
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -moz-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end
+}
+
+.link-box .root-link .right .other img {
+ width: 68px;
+ height: auto
+}
+
+.link-box .root-link .right .ios {
+ margin-left: 26px
+}
+
+.link-box .other-link {
+ border-bottom: 1px solid rgba(51, 77, 122, .1);
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ -moz-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding-top: 26px;
+ padding-bottom: 22px
+}
+
+.link-box .other-link .cop {
+ font-size: .8rem;
+ color: #BFC7D5
+}
+
+.link-box .other-link .icon {
+ margin-left: 20px
+}
+
+.link-box .ship-link {
+ padding-top: 24px;
+ padding-bottom: 8px;
+ font-size: .8rem;
+ opacity: .4;
+ color: #002059
+}
+
+.link-box .ship-link .left {
+ width: 11%;
+ padding-top: 5px
+}
+
+.link-box .ship-link .right {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ display: flex
+}
+
+.link-box .ship-link .right a {
+ margin-right: 10px;
+ line-height: 24px;
+ white-space: nowrap;
+ color: #002059
+}
+
+.link-box .beian {
+ text-align: center;
+ padding-top: 18px;
+ padding-bottom: 30px;
+ font-size: .8rem;
+ color: rgba(0, 32, 89, .5)
+}
+
+.link-box .beian p {
+ margin: 6px 0
+}
+
+.link-box .beian a {
+ color: rgba(0, 32, 89, .4)
+}
+
+#map-svg {
+ width: 900px;
+ max-width: 100%;
+ height: auto
+}
+
+.Location-nav {
+ margin-top: 30px;
+ color: rgba(255, 255, 255, .75)
+}
+
+.Location-nav ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center
+}
+
+.wx, .wx img {
+ display: block
+}
+
+.Location-nav li {
+ margin: 15px;
+ cursor: default;
+ user-select: none
+}
+
+.Location-nav li::after {
+ content: '';
+ position: absolute;
+ bottom: -2px;
+ left: 0;
+ width: 100%;
+ height: 2px;
+ color: rgba(255, 255, 255, .75);
+ opacity: 0;
+ -webkit-transform: translateY(100%);
+ -ms-transform: translateY(100%);
+ transform: translateY(100%);
+ -webkit-transition: opacity .25s linear, -webkit-transform .25s cubic-bezier(.68, -.55, .265, 1.55);
+ transition: opacity .25s linear, transform .25s cubic-bezier(.68, -.55, .265, 1.55), -webkit-transform .25s cubic-bezier(.68, -.55, .265, 1.55)
+}
+
+.Location-nav li:hover::after {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0)
+}
+
+.wx {
+ opacity: 0;
+ position: absolute;
+ left: -135px;
+ top: -10px;
+ width: 140px;
+ height: 140px;
+ z-index: 0;
+ -webkit-transition: all .3s ease-in-out;
+ transition: all .3s ease-in-out
+}
+
+.header-box .header-container .left {
+ z-index: 4;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ -moz-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: start;
+ -webkit-align-items: flex-start;
+ -moz-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start
+}
+
+.header-box .header-container .left .f-tit {
+ margin: 32px 0 40px
+}
+
+.header-box .header-container .left .tit-style {
+ font-size: 1.48rem;
+ line-height: 32px;
+ color: rgba(255, 255, 255, .7)
+}
+
+.header-box .header-container .left h2 {
+ font-size: 2.9rem
+}
+
+.header-box .header-container .right {
+ z-index: 4;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ -moz-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1
+}
+
+.header-box .header-container .right .big-circle {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 60%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 60%;
+ flex: 0 0 60%;
+ position: relative
+}
+
+.header-box .header-container .right .big-circle .anim-bg-circle {
+ z-index: -1
+}
+
+.header-box .header-container .right .big-circle .anim-bg-circle span {
+ display: block;
+ position: absolute;
+ top: 50%;
+ left: 50%
+}
+
+.header-box .header-container .right .big-circle .anim-bg-circle .anim-c1 {
+ background: url(/assets/images/index/head-bg-circle1_a5b8c.svg) center no-repeat;
+ width: 520px;
+ height: 520px
+}
+
+.header-box .header-container .right .big-circle .anim-bg-circle .anim-c2 {
+ background: url(/assets/images/index/head-bg-circle2_e1996.svg) center no-repeat;
+ width: 460px;
+ height: 460px
+}
+
+.header-box .header-container .right .big-circle .anim-bg-circle .anim-c3 {
+ background: url(/assets/images/index/head-bg-circle3_8db76.svg) center no-repeat;
+ width: 400px;
+ height: 400px
+}
+
+.header-box .header-container .right .big-circle img {
+ width: 338px;
+ height: auto
+}
+
+.header-box .header-container .right .small-circle {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 35%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 35%;
+ flex: 0 0 35%;
+ position: relative
+}
+
+.header-box .header-container .right .circle {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ border-radius: 100%;
+ position: absolute
+}
+
+.header-box .header-container .right .circle img {
+ height: auto;
+ width: 92px
+}
+
+.header-box .header-container .right .cir-1 {
+ left: 68%;
+ top: -8%
+}
+
+.header-box .header-container .right .cir-2 {
+ left: 44%;
+ top: 38%
+}
+
+.header-box .header-container .right .cir-3 {
+ left: 74%;
+ top: 80%
+}
+
+.product {
+ -webkit-box-shadow: 0 1px 0 0 rgba(224, 224, 224, .5);
+ box-shadow: 0 1px 0 0 rgba(224, 224, 224, .5);
+ padding-bottom: 80px;
+ padding-top: 40px
+}
+
+.product .pro-panel {
+ margin-top: .5em
+}
+
+.product .pro-panel .center-box {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ -moz-box-flex: 1;
+ -ms-flex: 1;
+ flex: 1;
+ opacity: 0;
+ -webkit-transform: translateX(-30px);
+ -ms-transform: translateX(-30px);
+ transform: translateX(-30px);
+ -webkit-transition: all 6s cubic-bezier(0, 1, 0, 1);
+ transition: all 6s cubic-bezier(0, 1, 0, 1)
+}
+
+.product .anim-item1 {
+ -webkit-transition-delay: 0s;
+ transition-delay: 0s
+}
+
+.product .anim-item2 {
+ -webkit-transition-delay: .1s;
+ transition-delay: .2s
+}
+
+@media only screen and (max-width: 950px) {
+ .pro-panel {
+ display: block !important;
+ }
+
+ .anim-item1, .anim-item2 {
+ display: block !important;
+ }
+
+ .anim-item1 {
+ margin-bottom: 48px;
+ }
+
+ .pro-box {
+ margin: auto;
+ }
+}
+
+.product .pro-box {
+ height: 322px;
+ width: 328px;
+ max-width: calc(100% - 92px);
+ border-radius: 4px;
+ background-color: #FFF;
+ -webkit-box-shadow: 0 1px 5px 0 rgba(24, 44, 79, .07), 0 5px 10px 0 rgba(24, 44, 79, .1);
+ box-shadow: 0 1px 5px 0 rgba(24, 44, 79, .07), 0 5px 10px 0 rgba(24, 44, 79, .1);
+ padding: 46px;
+ position: relative;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transition: all .25s linear;
+ transition: all .25s linear
+}
+
+.product .pro-box .top .G1-icon img, .product .pro-box .top .G2-icon img {
+ width: auto
+}
+
+.product .pro-box .top {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ border-bottom: 1px solid rgba(155, 155, 155, .15);
+ height: auto;
+ padding-bottom: 6%;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column
+}
+
+.product .pro-box .top .G1-logo-height {
+ height: 38px
+}
+
+.product .pro-box .top .G1-icon {
+ text-align: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center
+}
+
+.product .pro-box .top p.p-text {
+ text-align: center;
+ margin-top: 28px
+}
+
+.product .pro-box .top .G1-pro-tit, .product .pro-box .top .G2-pro-tit {
+ color: #00CCA7;
+ font-size: 2rem;
+ line-height: 40px;
+ margin-top: 10px;
+ margin-bottom: 12px;
+ font-weight: 400
+}
+
+.product .pro-box .top .G2-pro-tit {
+ color: #005EFF
+}
+
+.product .pro-box .bottom .pro-detail-text {
+ color: rgba(51, 77, 122, .85);
+ font-size: .9rem;
+ line-height: 22px;
+ margin: 38px 0 0
+}
+
+.product .pro-box .G1-pro-btn, .product .pro-box .G2-pro-btn {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ height: 58px;
+ width: 100%;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ background: -webkit-linear-gradient(317.35deg, #66E4A7 0, #11BFCA 100%);
+ background: linear-gradient(132.65deg, #66E4A7 0, #11BFCA 100%);
+ font-size: 1rem;
+ color: #fff;
+ line-height: 58px;
+ text-align: center;
+ letter-spacing: .8px
+}
+
+.product .pro-box .G2-pro-btn {
+ background: -webkit-gradient(linear, left top, right top, from(#0097FF), to(#005EFF));
+ background: -webkit-linear-gradient(left, #0097FF 0, #005EFF 100%);
+ background: linear-gradient(90deg, #0097FF 0, #005EFF 100%)
+}
+
+.product .pro-box:hover {
+ -webkit-transform: translateY(-6px);
+ -ms-transform: translateY(-6px);
+ transform: translateY(-6px);
+ -webkit-box-shadow: 0 15px 35px 0 rgba(24, 44, 79, .15);
+ box-shadow: 0 15px 35px 0 rgba(24, 44, 79, .15)
+}
+
+.anim-product .pro-panel .center-box {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0)
+}
+
+#banner-area {
+ position: relative;
+ height: 480px;
+ overflow: hidden;
+ margin-top: 80px
+}
+
+#banner-area .banner.fiverd-bg {
+ background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#EFF6FC));
+ background: -webkit-linear-gradient(top, #FFF 0, #EFF6FC 100%);
+ background: linear-gradient(180deg, #FFF 0, #EFF6FC 100%);
+ opacity: 0;
+ z-index: 1
+}
+
+#banner-area .banner.fiverd-bg .left {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 72%;
+ -moz-box-flex: 0;
+ -ms-flex: 0 0 72%;
+ flex: 0 0 72%
+}
+
+#banner-area .banner.fiverd-bg .left .tit-style {
+ font-size: 1.84rem;
+ line-height: 42px;
+ color: #002159
+}
+
+#banner-area .banner.fiverd-bg .left .tit-style img {
+ display: inline-block;
+ height: 26px;
+ width: auto
+}
+
+#banner-area .banner.fiverd-bg .left .head-btn-group .head-btn {
+ background-color: #E83A3F;
+ color: #fff
+}
+
+#banner-area .banner.fiverd-bg .left .head-btn-group .head-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem rgba(103, 18, 21, .21), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ box-shadow: 0 .7rem 1.4rem rgba(103, 18, 21, .21), 0 .3rem .6rem rgba(12, 27, 22, .065)
+}
+
+#banner-area .banner.fiverd-bg .left .head-btn-group .head-btn .sj-icon {
+ background: url(/assets/images/btn-arrow-white.svg) center no-repeat
+}
+
+#banner-area .banner.fiverd-bg .right img {
+ height: 430px;
+ width: auto
+}
+
+#banner-area .banner.op {
+ opacity: 0;
+ z-index: 1;
+ background: -webkit-linear-gradient(315deg, #5967FF 0, #7036F3 100%);
+ background: linear-gradient(135deg, #5967FF 0, #7036F3 100%)
+}
+
+#banner-area .banner.op .left h2 {
+ font-size: 2.5rem
+}
+
+#banner-area .banner.op .left h2 .optext {
+ height: 62px
+}
+
+#banner-area .banner.op .left .f-tit {
+ margin: 36px 0 48px
+}
+
+#banner-area .banner.op .left .tit-style {
+ line-height: 34px
+}
+
+#banner-area .banner.op .left .head-btn-group .head-btn {
+ color: #502EE4;
+ border-radius: 4px;
+ background-color: #FFF
+}
+
+#banner-area .banner.op .left .head-btn-group .head-btn:hover {
+ -webkit-box-shadow: 0 .7rem 1.4rem rgba(18, 21, 103, .21), 0 .3rem .6rem rgba(12, 27, 22, .065);
+ box-shadow: 0 .7rem 1.4rem rgba(18, 21, 103, .21), 0 .3rem .6rem rgba(12, 27, 22, .065)
+}
+
+#banner-area .banner.op .left .head-btn-group .head-btn .sj-icon {
+ background: url(../images/btn-arrow-purple.svg) center no-repeat;
+ -webkit-transform: scale(1.1);
+ -ms-transform: scale(1.1);
+ transform: scale(1.1)
+}
+
+#banner-area .banner.op .right {
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -moz-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end
+}
+
+#banner-area .banner.op .right img {
+ height: 400px;
+ width: auto;
+ position: relative;
+ left: 8%
+}
+
+#banner-area .dashnav-progress {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 18px;
+ height: 20px;
+ width: 114px;
+ margin: auto;
+ overflow: hidden;
+ border-radius: 2px;
+ z-index: 98;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -moz-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -moz-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center
+}
+
+#banner-area .dashnav-progress li {
+ width: 8px;
+ height: 8px;
+ background: rgba(255, 255, 255, .377);
+ border-radius: 50%;
+ margin: 0 4px;
+ cursor: pointer;
+ -webkit-transition: all 1s;
+ transition: all 1s
+}
+
+#opvideo, .video-con, .video-js {
+ margin: auto
+}
+
+#banner-area .dashnav-progress .line {
+ height: 100%;
+ width: 100%;
+ background-color: rgba(255, 255, 255, .48);
+ position: relative
+}
+
+#banner-area .dashnav-progress .line .slide-line {
+ position: absolute;
+ opacity: .4;
+ background-color: #436DB5;
+ width: 100%;
+ height: 8px;
+ -webkit-transition: all 7.8s ease-in;
+ transition: all 7.8s ease-in;
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ transform: translateX(-100%)
+}
+
+#banner-area .dashnav-progress .on {
+ background: rgba(255, 255, 255, .9)
+}
+
+@-webkit-keyframes dashInProgress {
+ 0% {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%)
+ }
+
+ 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+}
+
+@keyframes dashInProgress {
+ 0% {
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%)
+ }
+
+ 100% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0)
+ }
+}
+
+.on {
+ opacity: 1
+}
+
+.order {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: flex
+}
+
+@-webkit-keyframes rotating {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+
+ 3% {
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+
+ 13.5% {
+ opacity: .4;
+ -webkit-filter: blur(13px);
+ filter: blur(13px)
+ }
+
+ 25% {
+ opacity: 1;
+ -webkit-filter: blur(0);
+ filter: blur(0)
+ }
+
+ 50% {
+ opacity: 1;
+ -webkit-filter: blur(0);
+ filter: blur(0);
+ -webkit-transform: scale(1);
+ transform: scale(1)
+ }
+
+ 75% {
+ -webkit-transform: scale(1.2);
+ transform: scale(1.2);
+ opacity: 0;
+ -webkit-filter: blur(10px);
+ filter: blur(10px);
+ z-index: 20
+ }
+
+ 77% {
+ opacity: .4;
+ z-index: 0
+ }
+
+ 80% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+}
+
+@keyframes rotating {
+ 0% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+
+ 3% {
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+
+ 13.5% {
+ opacity: .4;
+ -webkit-filter: blur(13px);
+ filter: blur(13px)
+ }
+
+ 25% {
+ opacity: 1;
+ -webkit-filter: blur(0);
+ filter: blur(0)
+ }
+
+ 50% {
+ opacity: 1;
+ -webkit-filter: blur(0);
+ filter: blur(0);
+ -webkit-transform: scale(1);
+ transform: scale(1)
+ }
+
+ 75% {
+ -webkit-transform: scale(1.2);
+ transform: scale(1.2);
+ opacity: 0;
+ -webkit-filter: blur(10px);
+ filter: blur(10px);
+ z-index: 20
+ }
+
+ 77% {
+ opacity: .4;
+ z-index: 0
+ }
+
+ 80% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ -webkit-filter: blur(13px);
+ filter: blur(13px);
+ opacity: .4
+ }
+}
+
+.wrapper {
+ width: 100vw;
+ height: 482px;
+ margin: 2vh auto;
+ background: 0 0;
+ position: relative;
+ text-align: center
+}
+
+.bubble {
+ width: 150px;
+ height: 150px;
+ -webkit-box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .08), 0 15px 35px 0 rgba(49, 65, 93, .1);
+ box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .08), 0 15px 35px 0 rgba(49, 65, 93, .1);
+ border-radius: 100%;
+ position: absolute;
+ margin-left: -3vw
+}
+
+.one {
+ left: 20%;
+ top: 20%
+}
+
+.two {
+ left: 40%;
+ top: 10%;
+ -webkit-animation-delay: -.4s;
+ animation-delay: -.4s
+}
+
+.three {
+ left: 60%;
+ top: 30%;
+ -webkit-animation-delay: -.6s;
+ animation-delay: -.6s
+}
+
+.four {
+ left: 80%;
+ top: 20%;
+ -webkit-animation-delay: -.8s;
+ animation-delay: -.8s
+}
+
+.five {
+ left: 20%;
+ top: 80%;
+ -webkit-animation-delay: .2s;
+ animation-delay: .2s
+}
+
+.six {
+ left: 40%;
+ top: 70%;
+ -webkit-animation-delay: .4s;
+ animation-delay: .4s
+}
+
+.seven {
+ left: 60%;
+ top: 90%;
+ -webkit-animation-delay: .6s;
+ animation-delay: .6s
+}
+
+.eight {
+ left: 80%;
+ top: 80%;
+ -webkit-animation-delay: .8s;
+ animation-delay: .8s
+}
+
+@-webkit-keyframes float {
+ 0%, 100% {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+ }
+
+ 50% {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-transform: translate3d(0, 1vh, 0);
+ transform: translate3d(0, 1vh, 0);
+ -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 6px 12px 0 rgba(49, 65, 93, .2);
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 6px 12px 0 rgba(49, 65, 93, .2)
+ }
+}
+
+@keyframes float {
+ 0%, 100% {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0)
+ }
+
+ 50% {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-transform: translate3d(0, 1vh, 0);
+ transform: translate3d(0, 1vh, 0);
+ -webkit-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 6px 12px 0 rgba(49, 65, 93, .2);
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 6px 12px 0 rgba(49, 65, 93, .2)
+ }
+}
+
+.float {
+ -webkit-animation-name: float;
+ animation-name: float;
+ -webkit-transform-origin: center bottom;
+ -ms-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+ -webkit-animation-duration: 6s;
+ animation-duration: 6s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both
+}
+
+.gray {
+ -webkit-filter: grayscale(90%);
+ -moz-filter: grayscale(90%);
+ -ms-filter: grayscale(90%);
+ -o-filter: grayscale(90%);
+ filter: grayscale(90%);
+ filter: gray;
+}
+
+.docs-container {
+ font-size: 14px;
+ line-height: 24px;
+ margin-bottom: 80px;
+}
+
+.api-block {
+ display: inline-block;
+ padding: 4px 8px;
+ margin: 4px 8px;
+ border-radius: 2px;
+ transition: all .5s ease;
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, .1);
+}
+
+.api-block:hover {
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .15) !important
+}
+
+
+
+.icon .side-toggle {
+ display: -ms-flexbox;
+ display: flex;
+ height: 100%;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.icon .side-toggle div {
+ width: 26px;
+ height: 20px;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -ms-flex-pack: justify;
+ justify-content: space-between
+}
+
+.icon .side-toggle div span {
+ display: inline-block;
+ width: 100%;
+ height: 2px;
+ background-color: #5588f7;
+ transition: all .6s;
+}
+
+.icon .side-toggle div span.toggle1 {
+ transform: rotate(45deg) translateY(13px)
+}
+
+.icon .side-toggle div span.toggle2 {
+ height: 0;
+ width: 0;
+ opacity: 0
+}
+
+.icon .side-toggle div span.toggle3 {
+ transform: rotate(-45deg) translateY(-13px)
+}
+
+header .mask {
+ width: 100%;
+ position: absolute;
+ top: 81px;
+ left: 0;
+ height: 100vh;
+ transition: all .4s ease-in-out;
+}
+
+header .mask .sidebar {
+ position: fixed;
+ right: 0;
+ width: 50%;
+ height: 100vh;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ background: #fff no-repeat bottom;
+ background-size: cover;
+ box-shadow: -2px 0 2px -2px #d4d6d7
+}
+
+header .mask .sidebar, header .mask .sidebar ul {
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -ms-flex-align: center;
+ align-items: center
+}
+
+header .mask .sidebar ul {
+ margin: 20px 0 36px;
+ width: 100%
+}
+
+header .mask .sidebar ul li {
+ margin-top: 16px;
+ height: 24px;
+ line-height: 16px;
+ width: 100%;
+ text-align: center;
+}
+
+header .mask .sidebar ul li a {
+ font-size: 16px;
+ display: block;
+ color: #2a2a2a
+}
+
+header .mask .sidebar ul li a.active {
+ color: #3686ff
+}
+
+header .sidebar-mask {
+ position: fixed;
+ left: 0;
+ width: 50%;
+ height: 100%;
+}
+
+header .slide-fade-enter, header .slide-fade-enter-active {
+ transform: translate3d(50vw, 0, 0)
+}
+
+header .slide-fade-enter, header .slide-fade-leave-active {
+ transform: translate3d(50vw, 0, 0)
+}
+
+header .side-mask {
+ position: absolute;
+ height: 100%;
+ width: 2px;
+ left: 0;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFwAAASUCAYAAADqG2qSAAAJ+0lEQVR4nO3QORLDIBAAQfD/3wzOLQsfQUfTVRQSu9HMtdYcY4y99+/33nPfzG73vvj+5//4dnp/M7vMP+we91/OY4QqOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcKzgWMGxgmMFxwqOFRwrOFZwrOBYwbGCYwXHCo4VHCs4VnCs4FjBsYJjBccKjhUcKzhWcOwJamnZmqpNmPsAAAAASUVORK5CYII=) no-repeat
+}
\ No newline at end of file
diff --git a/public/assets/css/index_mobile.css b/public/assets/css/index_mobile.css
new file mode 100644
index 000000000..12ab1b6f6
--- /dev/null
+++ b/public/assets/css/index_mobile.css
@@ -0,0 +1,73 @@
+@media only screen and (max-width: 660px) {
+ .rootLink {
+ margin: 0 16px 0 0
+ }
+
+ .banner, .banner .header-container {
+ display: block;
+ }
+
+ .banner .header-container .left {
+ padding-top: 48px;
+ }
+
+ .banner .header-container .right {
+ display: none;
+ }
+
+ .banner .header-container {
+ height: 440px;
+ }
+}
+
+@media only screen and (max-width: 600px) {
+ .navRoot {
+ display: none;
+ }
+
+ .navRoot-Mobile {
+ display: flex;
+ }
+
+
+ .root-link {
+ display: none;
+ }
+}
+
+@media only screen and (max-width: 480px) {
+ .header {
+ height: 64px;
+ }
+
+ #banner-area {
+ margin-top: 64px;
+ }
+
+ header .mask {
+ top: 65px;
+ }
+
+ .product {
+ padding-bottom: 48px;
+ padding-top: 24px
+ }
+
+ .footer .link-box {
+ padding-top: 24px;
+ }
+
+
+ .ship-link .left {
+ min-width: 72px;
+ }
+
+}
+
+/* 开始缩减 */
+@media only screen and (max-width: 468px) {
+ .product .pro-box {
+ height: auto;
+ padding-bottom: 92px;
+ }
+}
\ No newline at end of file
diff --git a/public/assets/demo/api_demo_php.zip b/public/assets/demo/api_demo_php.zip
new file mode 100644
index 000000000..da58f6ed0
Binary files /dev/null and b/public/assets/demo/api_demo_php.zip differ
diff --git a/public/assets/images/btn-arrow-green.svg b/public/assets/images/btn-arrow-green.svg
new file mode 100644
index 000000000..dec1633f0
--- /dev/null
+++ b/public/assets/images/btn-arrow-green.svg
@@ -0,0 +1,20 @@
+
+
+ Group 88
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/btn-arrow-purple.svg b/public/assets/images/btn-arrow-purple.svg
new file mode 100644
index 000000000..85e0accb2
--- /dev/null
+++ b/public/assets/images/btn-arrow-purple.svg
@@ -0,0 +1,20 @@
+
+
+Group 88
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/btn-arrow-white.svg b/public/assets/images/btn-arrow-white.svg
new file mode 100644
index 000000000..92b62bdde
--- /dev/null
+++ b/public/assets/images/btn-arrow-white.svg
@@ -0,0 +1,23 @@
+
+
+
+ Group 88
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/btn-arrow.svg b/public/assets/images/btn-arrow.svg
new file mode 100644
index 000000000..bba207a5c
--- /dev/null
+++ b/public/assets/images/btn-arrow.svg
@@ -0,0 +1,23 @@
+
+
+
+ Group 88
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/alipay.png b/public/assets/images/index/alipay.png
new file mode 100644
index 000000000..9562ceeb1
Binary files /dev/null and b/public/assets/images/index/alipay.png differ
diff --git a/public/assets/images/index/area_chart.png b/public/assets/images/index/area_chart.png
new file mode 100644
index 000000000..42ff70d1a
Binary files /dev/null and b/public/assets/images/index/area_chart.png differ
diff --git a/public/assets/images/index/bg-mask1_47d5d.png b/public/assets/images/index/bg-mask1_47d5d.png
new file mode 100644
index 000000000..4ed068f96
Binary files /dev/null and b/public/assets/images/index/bg-mask1_47d5d.png differ
diff --git a/public/assets/images/index/bg-mask2_b8afa.png b/public/assets/images/index/bg-mask2_b8afa.png
new file mode 100644
index 000000000..914455a18
Binary files /dev/null and b/public/assets/images/index/bg-mask2_b8afa.png differ
diff --git a/public/assets/images/index/bg-mask3_af41b.png b/public/assets/images/index/bg-mask3_af41b.png
new file mode 100644
index 000000000..3936e5031
Binary files /dev/null and b/public/assets/images/index/bg-mask3_af41b.png differ
diff --git a/public/assets/images/index/head-bg-circle1_a5b8c.svg b/public/assets/images/index/head-bg-circle1_a5b8c.svg
new file mode 100644
index 000000000..405f9cc99
--- /dev/null
+++ b/public/assets/images/index/head-bg-circle1_a5b8c.svg
@@ -0,0 +1,11 @@
+
+
+ head-bg-circle3
+ Created with Sketch.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/head-bg-circle2_e1996.svg b/public/assets/images/index/head-bg-circle2_e1996.svg
new file mode 100644
index 000000000..423c822b3
--- /dev/null
+++ b/public/assets/images/index/head-bg-circle2_e1996.svg
@@ -0,0 +1,25 @@
+
+
+ head-bg-circle3
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/head-bg-circle3_8db76.svg b/public/assets/images/index/head-bg-circle3_8db76.svg
new file mode 100644
index 000000000..49faee9e1
--- /dev/null
+++ b/public/assets/images/index/head-bg-circle3_8db76.svg
@@ -0,0 +1,19 @@
+
+
+ head-bg-circle3
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/ills-1_02237.svg b/public/assets/images/index/ills-1_02237.svg
new file mode 100644
index 000000000..a07bf1744
--- /dev/null
+++ b/public/assets/images/index/ills-1_02237.svg
@@ -0,0 +1,41 @@
+
+
+
+ Group 70
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/ills-2_6c2eb.svg b/public/assets/images/index/ills-2_6c2eb.svg
new file mode 100644
index 000000000..dd8f9bfd4
--- /dev/null
+++ b/public/assets/images/index/ills-2_6c2eb.svg
@@ -0,0 +1,36 @@
+
+
+
+ Group 48
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/ills-3_bd288.svg b/public/assets/images/index/ills-3_bd288.svg
new file mode 100644
index 000000000..4e7b5ad91
--- /dev/null
+++ b/public/assets/images/index/ills-3_bd288.svg
@@ -0,0 +1,33 @@
+
+
+
+ Group 46
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/assets/images/index/ills_69b23.png b/public/assets/images/index/ills_69b23.png
new file mode 100644
index 000000000..f6b53f605
Binary files /dev/null and b/public/assets/images/index/ills_69b23.png differ
diff --git a/public/dist/css/app.d8372ac8.css b/public/dist/css/app.d8372ac8.css
new file mode 100644
index 000000000..0f8d7106a
--- /dev/null
+++ b/public/dist/css/app.d8372ac8.css
@@ -0,0 +1,8 @@
+.ways-container[data-v-368ddd26]{white-space:normal}.payway[data-v-368ddd26]{position:relative;display:inline-block;margin:4px 12px 4px 0;padding:4px;cursor:pointer;border:1px solid transparent}.payway img[data-v-368ddd26]{height:48px}.payway p[data-v-368ddd26]{line-height:14px;text-align:center;margin:0}.payway.checked[data-v-368ddd26]{border:1px solid #03a9f4}.payway.checked[data-v-368ddd26]:after{content:"";position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;right:0;bottom:0;border-bottom:12px solid #03a9f4;border-left:12px solid transparent}.payway[data-v-368ddd26]:last-child{margin-right:0}.mu-card[data-v-5440d840]{margin-bottom:12px}.shop-info .title[data-v-5440d840]{display:inline-block;margin-right:4px;white-space:nowrap}.shop-info .qq[data-v-5440d840]{color:rgba(0,0,0,.87)}.shop-info .qq[data-v-5440d840]:hover{text-decoration:underline}.shop-info .mu-chip[data-v-5440d840]{float:right;font-size:12px;line-height:24px}.my-card[data-v-b009f624]{margin-bottom:12px}.list-select-title .mu-card-title[data-v-b009f624]{font-size:15px;line-height:15px}.list-select table[data-v-b009f624]{width:100%;border-collapse:collapse;border-top:1px solid #f2f2f2}.list-select table td[data-v-b009f624],.list-select table th[data-v-b009f624]{font-weight:inherit;padding:8px;min-width:58px;overflow:auto}.list-select table th[data-v-b009f624]{background-color:#f6f6f6}.list-select table tr[data-v-b009f624]{text-align:left;height:40px;border-bottom:1px solid #f2f2f2;-webkit-transition:background-color .5s ease;transition:background-color .5s ease}.list-select table>tbody>tr>td[data-v-b009f624]{min-width:48px}.list-select table>tbody>tr a[data-v-b009f624]{width:100%;height:100%;display:inline-block;cursor:pointer}.list-select table>tbody>tr a[data-v-b009f624]:hover{text-decoration:underline}.list-select table>tbody>tr .pass[data-v-b009f624]{width:auto;cursor:pointer}.list-select table>tbody>tr .pass[data-v-b009f624]:hover{text-decoration:underline}.list-select-pc[data-v-b009f624]{margin:0 -2px;padding-top:0}.list-select-mobile[data-v-b009f624]{padding-top:0}.list-select-mobile .mu-chip[data-v-b009f624]{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:12px;line-height:18px}.list-select-mobile .count-mobile[data-v-b009f624]{display:inline-block}.list-select-mobile .delivery-mobile[data-v-b009f624]{display:inline-block;margin-left:8px}.list-select-mobile .price-mobile[data-v-b009f624]{display:inline-block;margin-left:8px;color:red}.list-select-mobile .buy-btn-mobile[data-v-b009f624]{display:inline-block;float:right}.s-opacity-75 .list-select table{border-top:1px solid hsla(0,0%,94.9%,.6)}.s-opacity-75 .list-select table th{background-color:hsla(0,0%,94.9%,.4)}.s-opacity-75 .list-select table tr{border-bottom:1px solid hsla(0,0%,94.9%,.6)}.shop-select[data-v-3105c652]{width:100%;margin-bottom:0}.button-select[data-v-9a873eae]{margin-bottom:4px}.button-select .label[data-v-9a873eae]{color:rgba(0,0,0,.54);font-size:12px;margin-bottom:4px}.button-select .button-select-item[data-v-9a873eae]{position:relative;border-radius:2px;border:1px solid transparent;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;padding:4px 8px;margin:0 12px 8px 0;-webkit-transition:all .3s ease;transition:all .3s ease;-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.2);box-shadow:0 1px 4px 0 rgba(0,0,0,.2)}.button-select .button-select-item[data-v-9a873eae]:hover{-webkit-box-shadow:0 1px 4px 0 rgba(3,169,244,.3);box-shadow:0 1px 4px 0 rgba(3,169,244,.3)}.button-select .button-select-item.checked[data-v-9a873eae]{border:1px solid #03a9f4}.button-select .input-help[data-v-9a873eae]{font-size:12px;line-height:12px}.button-select[data-v-61a609c2]{margin-bottom:4px}.button-select .label[data-v-61a609c2]{color:rgba(0,0,0,.54);font-size:12px;margin-bottom:4px}.button-select .button-select-item[data-v-61a609c2]{position:relative;border-radius:2px;border:1px solid transparent;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;padding:4px 8px;margin:0 12px 8px 0;-webkit-transition:all .3s ease;transition:all .3s ease;-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.2);box-shadow:0 1px 4px 0 rgba(0,0,0,.2)}.button-select .button-select-item[data-v-61a609c2]:hover{-webkit-box-shadow:0 1px 4px 0 rgba(3,169,244,.3);box-shadow:0 1px 4px 0 rgba(3,169,244,.3)}.button-select .button-select-item.checked[data-v-61a609c2]{border:1px solid #03a9f4}.button-select .input-help[data-v-61a609c2]{font-size:12px;line-height:12px}.mu-card[data-v-82ddf5d0]{margin-bottom:12px}.pay-btn-container[data-v-82ddf5d0]{margin-top:12px}.pay-btn-container .btn-pay[data-v-82ddf5d0]{background-color:#21b3f5;color:#fff;width:132px}.discount-tip[data-v-82ddf5d0]{position:absolute;font-size:13px;background:#fff;color:rgba(0,0,0,.87);border:1px solid #e0e0e0;padding:8px 12px;z-index:1}.product-flow[data-v-82ddf5d0]{margin-bottom:12px}.product-flow .label[data-v-82ddf5d0]{color:rgba(0,0,0,.54);font-size:12px;margin-bottom:4px}.product-flow .info-item[data-v-82ddf5d0]{white-space:nowrap}.product-flow .info-item p[data-v-82ddf5d0]{margin:0;display:inline-block;width:220px}@media only screen and (max-width:767px){.product-flow .info-item p[data-v-82ddf5d0]{width:calc(50% - 2px)}}.product-flow .info-item .title[data-v-82ddf5d0]{display:inline-block;width:72px;white-space:nowrap}.product-flow .info-item .val[data-v-82ddf5d0]{display:inline-block;color:#03a9f4}.product-flow .price-item[data-v-82ddf5d0]{display:inline-block;line-height:32px}.product-flow .price-item .money[data-v-82ddf5d0]{font-size:18px;color:#ff7a22}.product-flow .price-item .money-discount[data-v-82ddf5d0],.product-flow .price-item .money-fee[data-v-82ddf5d0]{font-size:14px}.product-flow .pay-way-item[data-v-82ddf5d0]{margin-top:8px;margin-bottom:24px}.product-flex[data-v-82ddf5d0]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.product-flex .product-description[data-v-82ddf5d0]{width:44%;max-width:420px}.product-flex .product-info[data-v-82ddf5d0]{width:44%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.product-flex .product-info .product-name[data-v-82ddf5d0]{padding:24px 0 0}.product-flex .product-info .product-name>h2[data-v-82ddf5d0]{margin:0;font-size:24px;line-height:30px;font-weight:400}.product-flex .product-info>.info-item[data-v-82ddf5d0]{white-space:nowrap;line-height:32px}.product-flex .product-info>.info-item .info-title[data-v-82ddf5d0]{display:inline-block;white-space:nowrap}.product-flex .product-info>.info-item .info-val[data-v-82ddf5d0]{display:inline-block;white-space:nowrap;margin-left:4px}.product-flex .product-info>.price-container[data-v-82ddf5d0]{margin-top:12px}.product-flex .product-info .price-whole-container[data-v-82ddf5d0]{margin-left:16px;display:inline-block}.product-flex .product-info .price[data-v-82ddf5d0]{color:#ff7a22;font-size:16px}.product-flex .product-info .count-left[data-v-82ddf5d0]{display:inline-block;margin-left:8px}.product-flex .product-info .money-total[data-v-82ddf5d0]{display:inline-block}.product-flex .product-info .money-total .money[data-v-82ddf5d0]{font-size:16px;color:#ff7a22}.product-flex .product-info .money-total .money-discount[data-v-82ddf5d0],.product-flex .product-info .money-total .money-fee[data-v-82ddf5d0]{font-size:14px}.product-flex .product-info .info-delivery .mu-chip[data-v-82ddf5d0]{cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:12px;line-height:18px}.product-flex .product-info .input-coupon .mu-input[data-v-82ddf5d0],.product-flex .product-info .input-fields .mu-input[data-v-82ddf5d0]{width:100%}.product-flex .product-info .input-count .mu-input[data-v-82ddf5d0]{width:70%}.product-flex .product-info .pay-btn-container[data-v-82ddf5d0]{margin-bottom:24px}.product-flex .product-info .pay-btn-container .btn-pay[data-v-82ddf5d0]{background-color:#da3b01}.product-flex .product-info .pay-btn-container .btn-cancel[data-v-82ddf5d0]{margin-left:14px;width:86px}.product-flex .product-gap[data-v-82ddf5d0]{width:2%;max-width:26px;vertical-align:top}@media only screen and (max-width:767px){.product-flex[data-v-82ddf5d0]{display:block}.product-flex .product-info[data-v-82ddf5d0]{-webkit-box-flex:0;-ms-flex:none;flex:none;width:100%;max-width:none}.product-flex .product-info .product-name[data-v-82ddf5d0]{padding:4px 0 0}.product-flex .product-description[data-v-82ddf5d0],.product-flex .product-gap[data-v-82ddf5d0]{display:none}}.description-mobile[data-v-82ddf5d0]{display:none}.description-mobile .description-title h3[data-v-82ddf5d0]{margin:0;font-weight:400}@media only screen and (max-width:767px){.description-mobile[data-v-82ddf5d0]{display:block}}.confirm-item .title[data-v-82ddf5d0]{display:inline-block;margin-right:4px;white-space:nowrap}.confirm-item .money[data-v-82ddf5d0]{font-size:14px;color:#ff7a22}.confirm-item .money-discount[data-v-82ddf5d0],.confirm-item .money-fee[data-v-82ddf5d0]{font-size:12px}.pay-confirm-card .confirm-title h3[data-v-82ddf5d0]{margin:0;font-weight:400}.pay-confirm-card .confirm-btn-container[data-v-82ddf5d0]{margin-top:12px;margin-bottom:24px}.pay-confirm-card .confirm-btn-container .btn-confirm[data-v-82ddf5d0]{background-color:#21b3f5;color:#fff;width:132px}.pay-confirm-card .confirm-btn-container .btn-cancel[data-v-82ddf5d0]{margin-left:14px;width:86px}.buy-count .mu-text-field-help>div{margin-right:-800px}.info-item.input-item .mu-input-label{-webkit-transform:none;transform:none;color:rgba(0,0,0,.87);font-size:14px}.info-item.input-item .mu-input-line{background-color:rgba(0,0,0,.3)}.record-tabs[data-v-7f66a2d0]{background-color:transparent;margin-bottom:16px}.record-input[data-v-7f66a2d0]{width:calc(100% - 100px);margin-right:6px}.record-input-btn[data-v-7f66a2d0]{vertical-align:super;width:88px}.mu-tab[data-v-7f66a2d0]{-webkit-box-flex:1;-ms-flex:1;flex:1;color:rgba(0,0,0,.87);max-width:none}.mu-tab-active[data-v-7f66a2d0]{color:#03a9f4}.mu-chip[data-v-7f66a2d0]{float:right;font-size:12px;line-height:24px}.cx_tab[data-v-7f66a2d0]{border:1px solid #eee;text-align:left;border-collapse:collapse;margin-bottom:10px;font-size:14px}.cx_tab th[data-v-7f66a2d0]{font-weight:inherit;background-color:hsla(0,0%,97.3%,.2)}.main{max-width:1154px;margin:0 auto;padding-bottom:0;position:relative}header{width:100%;-webkit-box-shadow:0 3px 9px -4px rgba(0,0,0,.25);box-shadow:0 3px 9px -4px rgba(0,0,0,.25)}header .header{margin:0 auto;max-width:1154px;width:100%;height:65px;padding:0 10px;font-size:12px;overflow:hidden}header .header .header-title{white-space:nowrap;display:inline-block;line-height:65px;font-weight:lighter;font-size:28px;color:#000}header .header .logo{margin:5px 0;height:55px;width:110px}.top-nav{margin:24px 0;float:right}.top-nav .header-btn{font-size:16px;cursor:pointer;display:inline-block;margin-left:8px;color:#000;-webkit-transition:all .4s;transition:all .4s;text-decoration:none;white-space:nowrap}.top-nav .header-btn:hover{color:#03a9f4}.top-nav .header-btn.active{cursor:inherit;text-decoration:none;color:#03a9f4}footer{max-width:1154px;width:100%;margin:50px auto 0;height:24px;padding:0 8px}footer a{-webkit-transition:all .4s;transition:all .4s}.content{margin:18px 8px 8px}@media only screen and (max-width:767px){.content{margin:18px 4% 0!important}.header,footer{padding:0 4%!important}footer{height:100px}}@media only screen and (min-width:767px){.slide-fade-enter-active,.slide-fade-leave-active{-webkit-transition:all .2s ease;transition:all .2s ease}.slide-fade-enter,.slide-fade-leave-active{opacity:0}.slide-fade-enter{-webkit-transform:translateX(100px);transform:translateX(100px)}.slide-fade-leave-active{top:0;position:absolute;-webkit-transform:translateX(-100px);transform:translateX(-100px)}.list-complete-item{-webkit-transition:all 1s;transition:all 1s;display:inline-block;margin-right:10px}.list-complete-enter,.list-complete-leave-to{opacity:0;-webkit-transform:translateY(30px);transform:translateY(30px)}.list-complete-leave-active{top:0;position:absolute}.top-slide-enter-active,.top-slide-leave-active{-webkit-transition:all .2s ease;transition:all .2s ease}.top-slide-enter,.top-slide-leave-active{opacity:0}.top-slide-enter,.top-slide-leave-active{-webkit-transform:translateY(-32px);transform:translateY(-32px)}}.float-left{float:left}.float-right{float:right}.text-center{text-align:center}.cursor-pointer{cursor:pointer}.w100{width:100%}.h100{height:100%}.mt0{margin-top:0}.mt6{margin-top:6px}.mt12{margin-top:12px}.mb0{margin-bottom:0}.mb12{margin-bottom:12px}.ml0{margin-left:0}.mr0{margin-right:0}.mr12{margin-right:12px}.pt0{padding-top:0}.pt12{padding-top:12px}.p12{padding:12px}body{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}a{color:#03a9f4}input:-webkit-autofill{background-color:#fff;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.over-ellipsis{overflow:hidden;text-overflow:ellipsis}body,html{height:100vh;margin:0}#bkg{content:" ";position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;background-position:top;background-repeat:no-repeat;background-size:cover}.full-height{height:100vh;overflow:auto}.flex-center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative}.flex-center .content{text-align:center}.my-card{-webkit-transition:all .5s ease;transition:all .5s ease;-webkit-box-shadow:0 1px 6px 0 rgba(0,0,0,.1);box-shadow:0 1px 6px 0 rgba(0,0,0,.1)}.my-card:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.15)!important;box-shadow:0 2px 12px 0 rgba(0,0,0,.15)!important}.mu-bottom-nav{z-index:1;-webkit-box-shadow:0 -3px 9px -4px rgba(0,0,0,.25);box-shadow:0 -3px 9px -4px rgba(0,0,0,.25)}.s-opacity-75 .header-title{color:#fff!important}.s-opacity-75 .header-btn{color:hsla(0,0%,100%,.56)}.s-opacity-75 .header-btn.active,.s-opacity-75 .header-btn:hover{color:#fff}.s-opacity-75 .gray-background{background:none!important;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,.4)),to(rgba(0,0,0,.4)))!important;background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4))!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000)!important}.s-opacity-75 .gray-background .s-item:hover{color:#333!important;background-color:transparent!important;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,94.1%,.45)),to(hsla(0,0%,94.1%,.45)))!important;background-image:linear-gradient(hsla(0,0%,94.1%,.45),hsla(0,0%,94.1%,.45))!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#72f0f0f0,endColorstr=#72f0f0f0)!important}.s-opacity-75 .white-background{background:none!important;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,100%,.75)),to(hsla(0,0%,100%,.75)))!important;background-image:linear-gradient(hsla(0,0%,100%,.75),hsla(0,0%,100%,.75))!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#bfffffff,endColorstr=#bfffffff)!important}.s-opacity-75 footer .text>*{will-change:opacity;mix-blend-mode:overlay;color:#fff!important}.s-opacity-75 footer .text>.link:hover{mix-blend-mode:difference}.s-opacity-75 .mu-tabs .mu-tab,.s-opacity-75 .record-title{color:hsla(0,0%,100%,.7)!important}.s-opacity-75 .mu-tabs .mu-tab-active{color:#fff!important}.s-opacity-75 .mu-tabs .mu-tab-active>div>.mu-ripple-wrapper{background-color:hsla(0,0%,100%,.07)!important}.s-opacity-75 .mu-table{background-color:transparent!important}.s-opacity-75 .mu-table .mu-tr{-webkit-transition:all .3s ease;transition:all .3s ease}.s-opacity-75 .mu-table .mu-tr.hover{background-color:hsla(0,0%,100%,.4)}.s-opacity-75 .mu-bottom-nav{-webkit-box-shadow:none;box-shadow:none}.quill-html img{max-width:100%}.equal-with-mu{display:inline-block!important;height:72px!important;vertical-align:top;line-height:96px!important}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.equal-with-mu{vertical-align:bottom}}.geetest_btn{width:248px!important;margin-bottom:24px;min-width:auto!important}.gt_holder{width:290px;margin:0 auto;padding-top:20px;z-index:4}.gt_holder .gt_holder_top{display:none}.gt_holder .gt_box_holder{border:1px solid transparent!important;background:transparent!important;margin-bottom:10px}.gt_holder .gt_bottom{display:none}.step-content{margin:0 16px!important}@media (max-width:600px){.step-content{margin:0!important}.mu-step-connector{padding:0 12px!important}.mu-step-label{padding:0!important}}.mu-dialog{width:75%!important;max-width:565px!important}.mu-dialog .mu-dialog-body{word-break:break-all;white-space:normal}@media (max-width:500px){.mu-dialog{width:80%!important}}@media (max-width:400px){.mu-dialog{width:90%!important}}.mu-dialog-title.scrollable{border-bottom:0!important}.mu-dialog-actions.scrollable{border-top:0!important}.mu-td,.mu-th{padding-left:0}.mu-input{margin-bottom:8px!important}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.e79bfd88.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.570eb838.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.012cf6a1.woff) format("woff"),url(../fonts/MaterialIcons-Regular.a37b0c01.ttf) format("truetype")}.material-icons,.mu-input .mu-input-help{white-space:nowrap}.material-icons{font-family:Material Icons,serif;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"}@font-face{font-family:iconfont;src:url(data:application/vnd.ms-fontobject;base64,2AoAADAKAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAbUPxJwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7lDPAAABfAAAAFZjbWFw17uEnwAAAeQAAAGcZ2x5ZmhxjhUAAAOMAAAD+GhlYWQQdRmzAAAA4AAAADZoaGVhB98DhgAAALwAAAAkaG10eA/qAAAAAAHUAAAAEGxvY2ECcgGWAAADgAAAAAptYXhwARMBCQAAARgAAAAgbmFtZT5U/n0AAAeEAAACbXBvc3To9z7sAAAJ9AAAADkAAQAAA4D/gABcBAEAAAAABAEAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAACfxQ21fDzz1AAsEAAAAAADWqmrcAAAAANaqatwAAP+LBAEDcwAAAAgAAgAAAAAAAAABAAAABAD9AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP7AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHju4gOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAABAEAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAAAAeOYj7uL//wAAAHjmI+7i//8AAAAAAAAAAQAIAAgACAAAAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAAB4AAAAeAAAAAEAAOYjAADmIwAAAAIAAO7iAADu4gAAAAMAAAAAAHYBlgH8AAAABQAA/+EDvAMYABMAKAAxAEQAUAAAAQYrASIOAh0BISc0LgIrARUhBRUXFA4DJyMnIQcjIi4DPQEXIgYUFjI2NCYXBgcGDwEOAR4BMyEyNicuAicBNTQ+AjsBMhYdAQEZGxpTEiUcEgOQAQoYJx6F/koCogEVHyMcDz4t/kksPxQyIBMIdwwSEhkSEowIBgUFCAICBA8OAW0XFgkFCQoG/qQFDxoVvB8pAh8BDBknGkxZDSAbEmGING4dJRcJAQGAgAETGyAOpz8RGhERGhF8GhYTEhkHEA0IGBoNIyQUAXfkCxgTDB0m4wAAAAABAAD/5AOJAxwA/AAAJS8KNT8DNS8gIw8aFQ8CFQ8CFRcPDhUXFR8DFTM/CDU3NTM3FTMfDBUjByMHIw8KFQcVHwozFzM3Mz8IFzMfBDM/CDU3NS8BNS8EIyc/CjMfBzMXMz8JNTc1A4cCBwMCBwwFDwkMAQEEAgEBBgMDAgQFAQICAwcDAgQNBQUEEw0JBQMJFAsXCw0LDTAwGAwWCgoVChoIBQwJCAcHBwgEBQUDBwQBBAMFBAUFBQMHAwMHCgcVBwsHDAQFBwEEBwQDAgIDAgcKBwUNBwQBBgECAgEEAgMDBAoFAggcCAQBAQIMCgUGAwMFAgcDAgQBAgICAgECAgwUCQgJHQoVQAkHBwwPDgYGFAUFCRsHGA4XPjgMJgMODQ4CBwEEAgIDAg4sBQIBCgUDBQcLBgUEAwICCgcDBAMCAwICAwkBBAUBBAMCAgEEAv0NHwcIERgMGgwUAgIFBQoFEQUXBgYGBgoBEAgYHQkIByEIBwgYDgcDBAUNBgoDBAMDBwMEAwMFBwUQBwYJCgkICwgOAwoJBxEHCAcOHhMCChYJCAcYEQwCBQoFFQgRCRMKCBMJCiApDAQKAwUEAgIEAwMOCgQFBwMCAwICCgkIBwkUBQUKHAcBAgIBBAIDAgECAwYBBwUECgMOAwYDAgMMCgQBBAUDAQICAwcCAwoEBQIDBwUHCAEHAgUHCAQKAgEHCQMFBAMDDhoDAgoDBgoIEREQCAcCFQoHBQMEAQIDAQIFBAEHBQQKCgoHEwABAAD/iwQBA3MAPgAAERYSFxY2JzUGJicuATc2Fx4BNzY3LgE3NDcmNjc2Fhc2Mhc+ARceAQceARUUBgceAR0BFBYXNhI3JgAnBgAHA7yYEwUBcDkDEy0IND0YRxgKHnhtATcPEAU0Ugc4kTkMTzAFEA4bHW14FBcFDZq/AwX+39ra/t8FAXOr/v43BBMLWAdaExoZCxtdIAUHKR0XhFlWQTVMCAEuBw8PCikBCEs0IE0qWoMXFDYegQgMATYBBKzZASEGBv7f2QAAAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAgEDAQQBBQABeAJxcQZnaXRodWIAAAAAAA==);src:url(data:application/vnd.ms-fontobject;base64,2AoAADAKAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAbUPxJwAAAAAAAAAAAAAAAAAAAAAAABAAaQBjAG8AbgBmAG8AbgB0AAAADgBSAGUAZwB1AGwAYQByAAAAFgBWAGUAcgBzAGkAbwBuACAAMQAuADAAAAAQAGkAYwBvAG4AZgBvAG4AdAAAAAAAAAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7lDPAAABfAAAAFZjbWFw17uEnwAAAeQAAAGcZ2x5ZmhxjhUAAAOMAAAD+GhlYWQQdRmzAAAA4AAAADZoaGVhB98DhgAAALwAAAAkaG10eA/qAAAAAAHUAAAAEGxvY2ECcgGWAAADgAAAAAptYXhwARMBCQAAARgAAAAgbmFtZT5U/n0AAAeEAAACbXBvc3To9z7sAAAJ9AAAADkAAQAAA4D/gABcBAEAAAAABAEAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAACfxQ21fDzz1AAsEAAAAAADWqmrcAAAAANaqatwAAP+LBAEDcwAAAAgAAgAAAAAAAAABAAAABAD9AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP7AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHju4gOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAABAEAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAAAAeOYj7uL//wAAAHjmI+7i//8AAAAAAAAAAQAIAAgACAAAAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAAB4AAAAeAAAAAEAAOYjAADmIwAAAAIAAO7iAADu4gAAAAMAAAAAAHYBlgH8AAAABQAA/+EDvAMYABMAKAAxAEQAUAAAAQYrASIOAh0BISc0LgIrARUhBRUXFA4DJyMnIQcjIi4DPQEXIgYUFjI2NCYXBgcGDwEOAR4BMyEyNicuAicBNTQ+AjsBMhYdAQEZGxpTEiUcEgOQAQoYJx6F/koCogEVHyMcDz4t/kksPxQyIBMIdwwSEhkSEowIBgUFCAICBA8OAW0XFgkFCQoG/qQFDxoVvB8pAh8BDBknGkxZDSAbEmGING4dJRcJAQGAgAETGyAOpz8RGhERGhF8GhYTEhkHEA0IGBoNIyQUAXfkCxgTDB0m4wAAAAABAAD/5AOJAxwA/AAAJS8KNT8DNS8gIw8aFQ8CFQ8CFRcPDhUXFR8DFTM/CDU3NTM3FTMfDBUjByMHIw8KFQcVHwozFzM3Mz8IFzMfBDM/CDU3NS8BNS8EIyc/CjMfBzMXMz8JNTc1A4cCBwMCBwwFDwkMAQEEAgEBBgMDAgQFAQICAwcDAgQNBQUEEw0JBQMJFAsXCw0LDTAwGAwWCgoVChoIBQwJCAcHBwgEBQUDBwQBBAMFBAUFBQMHAwMHCgcVBwsHDAQFBwEEBwQDAgIDAgcKBwUNBwQBBgECAgEEAgMDBAoFAggcCAQBAQIMCgUGAwMFAgcDAgQBAgICAgECAgwUCQgJHQoVQAkHBwwPDgYGFAUFCRsHGA4XPjgMJgMODQ4CBwEEAgIDAg4sBQIBCgUDBQcLBgUEAwICCgcDBAMCAwICAwkBBAUBBAMCAgEEAv0NHwcIERgMGgwUAgIFBQoFEQUXBgYGBgoBEAgYHQkIByEIBwgYDgcDBAUNBgoDBAMDBwMEAwMFBwUQBwYJCgkICwgOAwoJBxEHCAcOHhMCChYJCAcYEQwCBQoFFQgRCRMKCBMJCiApDAQKAwUEAgIEAwMOCgQFBwMCAwICCgkIBwkUBQUKHAcBAgIBBAIDAgECAwYBBwUECgMOAwYDAgMMCgQBBAUDAQICAwcCAwoEBQIDBwUHCAEHAgUHCAQKAgEHCQMFBAMDDhoDAgoDBgoIEREQCAcCFQoHBQMEAQIDAQIFBAEHBQQKCgoHEwABAAD/iwQBA3MAPgAAERYSFxY2JzUGJicuATc2Fx4BNzY3LgE3NDcmNjc2Fhc2Mhc+ARceAQceARUUBgceAR0BFBYXNhI3JgAnBgAHA7yYEwUBcDkDEy0IND0YRxgKHnhtATcPEAU0Ugc4kTkMTzAFEA4bHW14FBcFDZq/AwX+39ra/t8FAXOr/v43BBMLWAdaExoZCxtdIAUHKR0XhFlWQTVMCAEuBw8PCikBCEs0IE0qWoMXFDYegQgMATYBBKzZASEGBv7f2QAAAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAgEDAQQBBQABeAJxcQZnaXRodWIAAAAAAA==#iefix) format("embedded-opentype"),url(data:font/woff;base64,d09GRgABAAAAAAcAAAsAAAAACjAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7lDPY21hcAAAAYAAAABoAAABnNe7hJ9nbHlmAAAB6AAAAx0AAAP4aHGOFWhlYWQAAAUIAAAALwAAADYQdRmzaGhlYQAABTgAAAAcAAAAJAffA4ZobXR4AAAFVAAAABAAAAAQD+oAAGxvY2EAAAVkAAAACgAAAAoCcgGWbWF4cAAABXAAAAAfAAAAIAETAQluYW1lAAAFkAAAAUUAAAJtPlT+fXBvc3QAAAbYAAAAKAAAADno9z7seJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/s04gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVLx7xNzwv4EhhrmBoQEozAiSAwA1uw1ZeJxjYGBgZWBgYAZiHSBmYWBgzGBgZACBJKAoI1icmYELLM7CYAbkcwAhE5CueKb87tH//ygsEGAEq+AAs5hAJjOyMQwYYBw4q1EBD5g0gfJA4V0BxUAnPlOGYFC4vnsEwQzMANWTE6d4nC1TS4skRRCuyMzIyMyuR9erq7r6Pe10Oe5uz9iv2kW22wVB1BVFQdwFD/6AEWEPuwcPKyoqetCbeBTBg/6EAX/H7mUQ92doa/RoVhIZRHzxRcZHloee988f8kKWXuo9773oveK97Xmgr8FRKAYwqVdzcQ3yCeZFFsp6Wk9oejSXt6E40llnsVnNCk06ghCGsJwsNvVc1LBebcVLsOgMALq96t3kuJ/I78CV9fCL/eviJ8hH0360vbF/7fouW4xT89BPkm6SfGs0ohFCRSGcFx2L1un9zxhV+cXoRIzA79bV3XvBuJd8+NXqo8FxYQEeP4a0Nw5/2cVVzPuTqpMmXWoHpqyC6XMZPHzWKlN/MPvT4wU86zP5tex7f3ne8alb7+T6dDzlBpE47CIK8yIfyXy5M+tmvWzy5cjPp8Rf5HLKR25ZLBtOFsuR+g9zCutTNa13bjkiTu4sx+SXgqQgHyPrAygBoKUUCkEIyQkVIKo0sCht1ipaQSs4Oyv9jnO5qwz61hCRUYiSFCiJ7LErJTnKqUW+QgJFSjKZ4BgGDNNMzY2kVA6F6RsFIHyH3BYPV1GcZoAQfmaNHbj8ZUvkR6HWGaLtURkW25v+TIZBKJj8wBxeRwEOJVJL46GZI8nHoasFHuUQYuTfwYhMXPqVnwmB6DDGQvNy0DblgEeZGDJlyLUYaMcM8kDDrNgmbZ01LRNKZykmQ+EwFa7DNWXsC6bKTWxTZ1Lrxie+cqwEPw0pQ8cKXN2Ey8nyBK5P/8/PM0oNhIwOpWaQ71hDlFfKC8mVfCIZIMFWOQFkmZdJKymc1M7EcduQyFlXyapxIaorPucovXo/3yiQD7yt58WdpOhs6rWe1XNoNsWQTcPeqpltmk2n2CyKLXCUhpBnmu0AMo4mzcyrtUfy4ocU4eNbMr1hVrfLV0s3fHQOTdTG1Tt08/tb/ltn2A57g/NHWYHBj79L3F8+fbq/RHjw637fqLT1Pt1Pq26r98EY6WRQfH7vvTvruwbmFEXuBMwbq/GbL9z/rMg2w0+NDxtQvz2Bidb7yyf8K/wLFYZqMAAAAHicY2BkYGAAYvWPmrXx/DZfGbhZGEDg2qqsOwj6fzcLI3MxkMvBwAQSBQA2sQsKAHicY2BkYGBu+N/AEMMCZDEwAEkwjQRYAEc2Am8EAAAAA+kAAAQAAAAEAQAAAAAAAAB2AZYB/AAAeJxjYGRgYGBh+MvAygACTEDMBYQMDP/BfAYAId4CHQB4nGWPTU7DMBCFX/oHpBKqqGCH5AViASj9EatuWFRq911036ZOmyqJI8et1ANwHo7ACTgC3IA78EgnmzaWx9+8eWNPANzgBx6O3y33kT1cMjtyDRe4F65TfxBukF+Em2jjVbhF/U3YxzOmwm10YXmD17hi9oR3YQ8dfAjXcI1P4Tr1L+EG+Vu4iTv8CrfQ8erCPuZeV7iNRy/2x1YvnF6p5UHFockikzm/gple75KFrdLqnGtbxCZTg6BfSVOdaVvdU+zXQ+ciFVmTqgmrOkmMyq3Z6tAFG+fyUa8XiR6EJuVYY/62xgKOcQWFJQ6MMUIYZIjK6Og7VWb0r7FDwl57Vj3N53RbFNT/c4UBAvTPXFO6stJ5Ok+BPV8bUnV0K27LnpQ0kV7NSRKyQl7WtlRC6gE2ZVeOEXpc0Yk/KGdI/wAJWm7IAAAAeJxjYGKAAC4G7ICFkYmRmZGFkZWBsYKpsJAtPbMkozSJgQEAIcMECQ==) format("woff"),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJW7lDPAAABfAAAAFZjbWFw17uEnwAAAeQAAAGcZ2x5ZmhxjhUAAAOMAAAD+GhlYWQQdRmzAAAA4AAAADZoaGVhB98DhgAAALwAAAAkaG10eA/qAAAAAAHUAAAAEGxvY2ECcgGWAAADgAAAAAptYXhwARMBCQAAARgAAAAgbmFtZT5U/n0AAAeEAAACbXBvc3To9z7sAAAJ9AAAADkAAQAAA4D/gABcBAEAAAAABAEAAQAAAAAAAAAAAAAAAAAAAAQAAQAAAAEAACfxKX1fDzz1AAsEAAAAAADWqmrcAAAAANaqatwAAP+LBAEDcwAAAAgAAgAAAAAAAAABAAAABAD9AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQP7AZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABAAHju4gOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAPpAAAEAAAABAEAAAAAAAUAAAADAAAALAAAAAQAAAFoAAEAAAAAAGIAAwABAAAALAADAAoAAAFoAAQANgAAAAgACAACAAAAeOYj7uL//wAAAHjmI+7i//8AAAAAAAAAAQAIAAgACAAAAAEAAgADAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAA0AAAAAAAAAAMAAAB4AAAAeAAAAAEAAOYjAADmIwAAAAIAAO7iAADu4gAAAAMAAAAAAHYBlgH8AAAABQAA/+EDvAMYABMAKAAxAEQAUAAAAQYrASIOAh0BISc0LgIrARUhBRUXFA4DJyMnIQcjIi4DPQEXIgYUFjI2NCYXBgcGDwEOAR4BMyEyNicuAicBNTQ+AjsBMhYdAQEZGxpTEiUcEgOQAQoYJx6F/koCogEVHyMcDz4t/kksPxQyIBMIdwwSEhkSEowIBgUFCAICBA8OAW0XFgkFCQoG/qQFDxoVvB8pAh8BDBknGkxZDSAbEmGING4dJRcJAQGAgAETGyAOpz8RGhERGhF8GhYTEhkHEA0IGBoNIyQUAXfkCxgTDB0m4wAAAAABAAD/5AOJAxwA/AAAJS8KNT8DNS8gIw8aFQ8CFQ8CFRcPDhUXFR8DFTM/CDU3NTM3FTMfDBUjByMHIw8KFQcVHwozFzM3Mz8IFzMfBDM/CDU3NS8BNS8EIyc/CjMfBzMXMz8JNTc1A4cCBwMCBwwFDwkMAQEEAgEBBgMDAgQFAQICAwcDAgQNBQUEEw0JBQMJFAsXCw0LDTAwGAwWCgoVChoIBQwJCAcHBwgEBQUDBwQBBAMFBAUFBQMHAwMHCgcVBwsHDAQFBwEEBwQDAgIDAgcKBwUNBwQBBgECAgEEAgMDBAoFAggcCAQBAQIMCgUGAwMFAgcDAgQBAgICAgECAgwUCQgJHQoVQAkHBwwPDgYGFAUFCRsHGA4XPjgMJgMODQ4CBwEEAgIDAg4sBQIBCgUDBQcLBgUEAwICCgcDBAMCAwICAwkBBAUBBAMCAgEEAv0NHwcIERgMGgwUAgIFBQoFEQUXBgYGBgoBEAgYHQkIByEIBwgYDgcDBAUNBgoDBAMDBwMEAwMFBwUQBwYJCgkICwgOAwoJBxEHCAcOHhMCChYJCAcYEQwCBQoFFQgRCRMKCBMJCiApDAQKAwUEAgIEAwMOCgQFBwMCAwICCgkIBwkUBQUKHAcBAgIBBAIDAgECAwYBBwUECgMOAwYDAgMMCgQBBAUDAQICAwcCAwoEBQIDBwUHCAEHAgUHCAQKAgEHCQMFBAMDDhoDAgoDBgoIEREQCAcCFQoHBQMEAQIDAQIFBAEHBQQKCgoHEwABAAD/iwQBA3MAPgAAERYSFxY2JzUGJicuATc2Fx4BNzY3LgE3NDcmNjc2Fhc2Mhc+ARceAQceARUUBgceAR0BFBYXNhI3JgAnBgAHA7yYEwUBcDkDEy0IND0YRxgKHnhtATcPEAU0Ugc4kTkMTzAFEA4bHW14FBcFDZq/AwX+39ra/t8FAXOr/v43BBMLWAdaExoZCxtdIAUHKR0XhFlWQTVMCAEuBw8PCikBCEs0IE0qWoMXFDYegQgMATYBBKzZASEGBv7f2QAAAAAAABIA3gABAAAAAAAAABUAAAABAAAAAAABAAgAFQABAAAAAAACAAcAHQABAAAAAAADAAgAJAABAAAAAAAEAAgALAABAAAAAAAFAAsANAABAAAAAAAGAAgAPwABAAAAAAAKACsARwABAAAAAAALABMAcgADAAEECQAAACoAhQADAAEECQABABAArwADAAEECQACAA4AvwADAAEECQADABAAzQADAAEECQAEABAA3QADAAEECQAFABYA7QADAAEECQAGABABAwADAAEECQAKAFYBEwADAAEECQALACYBaQpDcmVhdGVkIGJ5IGljb25mb250Cmljb25mb250UmVndWxhcmljb25mb250aWNvbmZvbnRWZXJzaW9uIDEuMGljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAaQBjAG8AbgBmAG8AbgB0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAgEDAQQBBQABeAJxcQZnaXRodWIAAAAAAA==) format("truetype"),url(../img/iconfont.12f65fae.svg#iconfont) format("svg")}.iconfont,.material-icons{-moz-osx-font-smoothing:grayscale}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px}.materialize-red.lighten-5{background-color:#fdeaeb!important}.materialize-red-text.text-lighten-5{color:#fdeaeb!important}.materialize-red.lighten-4{background-color:#f8c1c3!important}.materialize-red-text.text-lighten-4{color:#f8c1c3!important}.materialize-red.lighten-3{background-color:#f3989b!important}.materialize-red-text.text-lighten-3{color:#f3989b!important}.materialize-red.lighten-2{background-color:#ee6e73!important}.materialize-red-text.text-lighten-2{color:#ee6e73!important}.materialize-red.lighten-1{background-color:#ea454b!important}.materialize-red-text.text-lighten-1{color:#ea454b!important}.materialize-red{background-color:#e51c23!important}.materialize-red-text{color:#e51c23!important}.materialize-red.darken-1{background-color:#d0181e!important}.materialize-red-text.text-darken-1{color:#d0181e!important}.materialize-red.darken-2{background-color:#b9151b!important}.materialize-red-text.text-darken-2{color:#b9151b!important}.materialize-red.darken-3{background-color:#a21318!important}.materialize-red-text.text-darken-3{color:#a21318!important}.materialize-red.darken-4{background-color:#8b1014!important}.materialize-red-text.text-darken-4{color:#8b1014!important}.red.lighten-5{background-color:#ffebee!important}.red-text.text-lighten-5{color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important}.red-text.text-lighten-4{color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important}.red-text.text-lighten-3{color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important}.red-text.text-lighten-2{color:#e57373!important}.red.lighten-1{background-color:#ef5350!important}.red-text.text-lighten-1{color:#ef5350!important}.red{background-color:#f44336!important}.red-text{color:#f44336!important}.red.darken-1{background-color:#e53935!important}.red-text.text-darken-1{color:#e53935!important}.red.darken-2{background-color:#d32f2f!important}.red-text.text-darken-2{color:#d32f2f!important}.red.darken-3{background-color:#c62828!important}.red-text.text-darken-3{color:#c62828!important}.red.darken-4{background-color:#b71c1c!important}.red-text.text-darken-4{color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important}.red-text.text-accent-1{color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important}.red-text.text-accent-2{color:#ff5252!important}.red.accent-3{background-color:#ff1744!important}.red-text.text-accent-3{color:#ff1744!important}.red.accent-4{background-color:#d50000!important}.red-text.text-accent-4{color:#d50000!important}.pink.lighten-5{background-color:#fce4ec!important}.pink-text.text-lighten-5{color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important}.pink-text.text-lighten-4{color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important}.pink-text.text-lighten-3{color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important}.pink-text.text-lighten-2{color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important}.pink-text.text-lighten-1{color:#ec407a!important}.pink{background-color:#e91e63!important}.pink-text{color:#e91e63!important}.pink.darken-1{background-color:#d81b60!important}.pink-text.text-darken-1{color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important}.pink-text.text-darken-2{color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important}.pink-text.text-darken-3{color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important}.pink-text.text-darken-4{color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important}.pink-text.text-accent-1{color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important}.pink-text.text-accent-2{color:#ff4081!important}.pink.accent-3{background-color:#f50057!important}.pink-text.text-accent-3{color:#f50057!important}.pink.accent-4{background-color:#c51162!important}.pink-text.text-accent-4{color:#c51162!important}.purple.lighten-5{background-color:#f3e5f5!important}.purple-text.text-lighten-5{color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important}.purple-text.text-lighten-4{color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important}.purple-text.text-lighten-3{color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important}.purple-text.text-lighten-2{color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important}.purple-text.text-lighten-1{color:#ab47bc!important}.purple{background-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple.darken-1{background-color:#8e24aa!important}.purple-text.text-darken-1{color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important}.purple-text.text-darken-2{color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important}.purple-text.text-darken-3{color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important}.purple-text.text-darken-4{color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important}.purple-text.text-accent-1{color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important}.purple-text.text-accent-2{color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important}.purple-text.text-accent-3{color:#d500f9!important}.purple.accent-4{background-color:#a0f!important}.purple-text.text-accent-4{color:#a0f!important}.deep-purple.lighten-5{background-color:#ede7f6!important}.deep-purple-text.text-lighten-5{color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important}.deep-purple-text.text-lighten-4{color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important}.deep-purple-text.text-lighten-3{color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important}.deep-purple-text.text-lighten-2{color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important}.deep-purple-text.text-lighten-1{color:#7e57c2!important}.deep-purple{background-color:#673ab7!important}.deep-purple-text{color:#673ab7!important}.deep-purple.darken-1{background-color:#5e35b1!important}.deep-purple-text.text-darken-1{color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important}.deep-purple-text.text-darken-2{color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important}.deep-purple-text.text-darken-3{color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important}.deep-purple-text.text-darken-4{color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important}.deep-purple-text.text-accent-1{color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important}.deep-purple-text.text-accent-2{color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important}.deep-purple-text.text-accent-3{color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important}.deep-purple-text.text-accent-4{color:#6200ea!important}.indigo.lighten-5{background-color:#e8eaf6!important}.indigo-text.text-lighten-5{color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important}.indigo-text.text-lighten-4{color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important}.indigo-text.text-lighten-3{color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important}.indigo-text.text-lighten-2{color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important}.indigo-text.text-lighten-1{color:#5c6bc0!important}.indigo{background-color:#3f51b5!important}.indigo-text{color:#3f51b5!important}.indigo.darken-1{background-color:#3949ab!important}.indigo-text.text-darken-1{color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important}.indigo-text.text-darken-2{color:#303f9f!important}.indigo.darken-3{background-color:#283593!important}.indigo-text.text-darken-3{color:#283593!important}.indigo.darken-4{background-color:#1a237e!important}.indigo-text.text-darken-4{color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important}.indigo-text.text-accent-1{color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important}.indigo-text.text-accent-2{color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important}.indigo-text.text-accent-3{color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important}.indigo-text.text-accent-4{color:#304ffe!important}.blue.lighten-5{background-color:#e3f2fd!important}.blue-text.text-lighten-5{color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important}.blue-text.text-lighten-4{color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important}.blue-text.text-lighten-3{color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important}.blue-text.text-lighten-2{color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important}.blue-text.text-lighten-1{color:#42a5f5!important}.blue{background-color:#2196f3!important}.blue-text{color:#2196f3!important}.blue.darken-1{background-color:#1e88e5!important}.blue-text.text-darken-1{color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important}.blue-text.text-darken-2{color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important}.blue-text.text-darken-3{color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important}.blue-text.text-darken-4{color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important}.blue-text.text-accent-1{color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important}.blue-text.text-accent-2{color:#448aff!important}.blue.accent-3{background-color:#2979ff!important}.blue-text.text-accent-3{color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important}.blue-text.text-accent-4{color:#2962ff!important}.light-blue.lighten-5{background-color:#e1f5fe!important}.light-blue-text.text-lighten-5{color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important}.light-blue-text.text-lighten-4{color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important}.light-blue-text.text-lighten-3{color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important}.light-blue-text.text-lighten-2{color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important}.light-blue-text.text-lighten-1{color:#29b6f6!important}.light-blue{background-color:#03a9f4!important}.light-blue-text{color:#03a9f4!important}.light-blue.darken-1{background-color:#039be5!important}.light-blue-text.text-darken-1{color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important}.light-blue-text.text-darken-2{color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important}.light-blue-text.text-darken-3{color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important}.light-blue-text.text-darken-4{color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important}.light-blue-text.text-accent-1{color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important}.light-blue-text.text-accent-2{color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important}.light-blue-text.text-accent-3{color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important}.light-blue-text.text-accent-4{color:#0091ea!important}.cyan.lighten-5{background-color:#e0f7fa!important}.cyan-text.text-lighten-5{color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important}.cyan-text.text-lighten-4{color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important}.cyan-text.text-lighten-3{color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important}.cyan-text.text-lighten-2{color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important}.cyan-text.text-lighten-1{color:#26c6da!important}.cyan{background-color:#00bcd4!important}.cyan-text{color:#00bcd4!important}.cyan.darken-1{background-color:#00acc1!important}.cyan-text.text-darken-1{color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important}.cyan-text.text-darken-2{color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important}.cyan-text.text-darken-3{color:#00838f!important}.cyan.darken-4{background-color:#006064!important}.cyan-text.text-darken-4{color:#006064!important}.cyan.accent-1{background-color:#84ffff!important}.cyan-text.text-accent-1{color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important}.cyan-text.text-accent-2{color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important}.cyan-text.text-accent-3{color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important}.cyan-text.text-accent-4{color:#00b8d4!important}.teal.lighten-5{background-color:#e0f2f1!important}.teal-text.text-lighten-5{color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important}.teal-text.text-lighten-4{color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important}.teal-text.text-lighten-3{color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important}.teal-text.text-lighten-2{color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important}.teal-text.text-lighten-1{color:#26a69a!important}.teal{background-color:#009688!important}.teal-text{color:#009688!important}.teal.darken-1{background-color:#00897b!important}.teal-text.text-darken-1{color:#00897b!important}.teal.darken-2{background-color:#00796b!important}.teal-text.text-darken-2{color:#00796b!important}.teal.darken-3{background-color:#00695c!important}.teal-text.text-darken-3{color:#00695c!important}.teal.darken-4{background-color:#004d40!important}.teal-text.text-darken-4{color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important}.teal-text.text-accent-1{color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important}.teal-text.text-accent-2{color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important}.teal-text.text-accent-3{color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important}.teal-text.text-accent-4{color:#00bfa5!important}.green.lighten-5{background-color:#e8f5e9!important}.green-text.text-lighten-5{color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important}.green-text.text-lighten-4{color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important}.green-text.text-lighten-3{color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important}.green-text.text-lighten-2{color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important}.green-text.text-lighten-1{color:#66bb6a!important}.green{background-color:#4caf50!important}.green-text{color:#4caf50!important}.green.darken-1{background-color:#43a047!important}.green-text.text-darken-1{color:#43a047!important}.green.darken-2{background-color:#388e3c!important}.green-text.text-darken-2{color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important}.green-text.text-darken-3{color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important}.green-text.text-darken-4{color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important}.green-text.text-accent-1{color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important}.green-text.text-accent-2{color:#69f0ae!important}.green.accent-3{background-color:#00e676!important}.green-text.text-accent-3{color:#00e676!important}.green.accent-4{background-color:#00c853!important}.green-text.text-accent-4{color:#00c853!important}.light-green.lighten-5{background-color:#f1f8e9!important}.light-green-text.text-lighten-5{color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important}.light-green-text.text-lighten-4{color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important}.light-green-text.text-lighten-3{color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important}.light-green-text.text-lighten-2{color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important}.light-green-text.text-lighten-1{color:#9ccc65!important}.light-green{background-color:#8bc34a!important}.light-green-text{color:#8bc34a!important}.light-green.darken-1{background-color:#7cb342!important}.light-green-text.text-darken-1{color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important}.light-green-text.text-darken-2{color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important}.light-green-text.text-darken-3{color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important}.light-green-text.text-darken-4{color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important}.light-green-text.text-accent-1{color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important}.light-green-text.text-accent-2{color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important}.light-green-text.text-accent-3{color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important}.light-green-text.text-accent-4{color:#64dd17!important}.lime.lighten-5{background-color:#f9fbe7!important}.lime-text.text-lighten-5{color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important}.lime-text.text-lighten-4{color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important}.lime-text.text-lighten-3{color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important}.lime-text.text-lighten-2{color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important}.lime-text.text-lighten-1{color:#d4e157!important}.lime{background-color:#cddc39!important}.lime-text{color:#cddc39!important}.lime.darken-1{background-color:#c0ca33!important}.lime-text.text-darken-1{color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important}.lime-text.text-darken-2{color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important}.lime-text.text-darken-3{color:#9e9d24!important}.lime.darken-4{background-color:#827717!important}.lime-text.text-darken-4{color:#827717!important}.lime.accent-1{background-color:#f4ff81!important}.lime-text.text-accent-1{color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important}.lime-text.text-accent-2{color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important}.lime-text.text-accent-3{color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important}.lime-text.text-accent-4{color:#aeea00!important}.yellow.lighten-5{background-color:#fffde7!important}.yellow-text.text-lighten-5{color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important}.yellow-text.text-lighten-4{color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important}.yellow-text.text-lighten-3{color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important}.yellow-text.text-lighten-2{color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important}.yellow-text.text-lighten-1{color:#ffee58!important}.yellow{background-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow.darken-1{background-color:#fdd835!important}.yellow-text.text-darken-1{color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important}.yellow-text.text-darken-2{color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important}.yellow-text.text-darken-3{color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important}.yellow-text.text-darken-4{color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important}.yellow-text.text-accent-1{color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important}.yellow-text.text-accent-2{color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important}.yellow-text.text-accent-3{color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important}.yellow-text.text-accent-4{color:#ffd600!important}.amber.lighten-5{background-color:#fff8e1!important}.amber-text.text-lighten-5{color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important}.amber-text.text-lighten-4{color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important}.amber-text.text-lighten-3{color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important}.amber-text.text-lighten-2{color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important}.amber-text.text-lighten-1{color:#ffca28!important}.amber{background-color:#ffc107!important}.amber-text{color:#ffc107!important}.amber.darken-1{background-color:#ffb300!important}.amber-text.text-darken-1{color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important}.amber-text.text-darken-2{color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important}.amber-text.text-darken-3{color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important}.amber-text.text-darken-4{color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important}.amber-text.text-accent-1{color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important}.amber-text.text-accent-2{color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important}.amber-text.text-accent-3{color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important}.amber-text.text-accent-4{color:#ffab00!important}.orange.lighten-5{background-color:#fff3e0!important}.orange-text.text-lighten-5{color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important}.orange-text.text-lighten-4{color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important}.orange-text.text-lighten-3{color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important}.orange-text.text-lighten-2{color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important}.orange-text.text-lighten-1{color:#ffa726!important}.orange{background-color:#ff9800!important}.orange-text{color:#ff9800!important}.orange.darken-1{background-color:#fb8c00!important}.orange-text.text-darken-1{color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important}.orange-text.text-darken-2{color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important}.orange-text.text-darken-3{color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important}.orange-text.text-darken-4{color:#e65100!important}.orange.accent-1{background-color:#ffd180!important}.orange-text.text-accent-1{color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important}.orange-text.text-accent-2{color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important}.orange-text.text-accent-3{color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important}.orange-text.text-accent-4{color:#ff6d00!important}.deep-orange.lighten-5{background-color:#fbe9e7!important}.deep-orange-text.text-lighten-5{color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important}.deep-orange-text.text-lighten-4{color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important}.deep-orange-text.text-lighten-3{color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important}.deep-orange-text.text-lighten-2{color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important}.deep-orange-text.text-lighten-1{color:#ff7043!important}.deep-orange{background-color:#ff5722!important}.deep-orange-text{color:#ff5722!important}.deep-orange.darken-1{background-color:#f4511e!important}.deep-orange-text.text-darken-1{color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important}.deep-orange-text.text-darken-2{color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important}.deep-orange-text.text-darken-3{color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important}.deep-orange-text.text-darken-4{color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important}.deep-orange-text.text-accent-1{color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important}.deep-orange-text.text-accent-2{color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important}.deep-orange-text.text-accent-3{color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important}.deep-orange-text.text-accent-4{color:#dd2c00!important}.brown.lighten-5{background-color:#efebe9!important}.brown-text.text-lighten-5{color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important}.brown-text.text-lighten-4{color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important}.brown-text.text-lighten-3{color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important}.brown-text.text-lighten-2{color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important}.brown-text.text-lighten-1{color:#8d6e63!important}.brown{background-color:#795548!important}.brown-text{color:#795548!important}.brown.darken-1{background-color:#6d4c41!important}.brown-text.text-darken-1{color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important}.brown-text.text-darken-2{color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important}.brown-text.text-darken-3{color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important}.brown-text.text-darken-4{color:#3e2723!important}.blue-grey.lighten-5{background-color:#eceff1!important}.blue-grey-text.text-lighten-5{color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important}.blue-grey-text.text-lighten-4{color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important}.blue-grey-text.text-lighten-3{color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important}.blue-grey-text.text-lighten-2{color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important}.blue-grey-text.text-lighten-1{color:#78909c!important}.blue-grey{background-color:#607d8b!important}.blue-grey-text{color:#607d8b!important}.blue-grey.darken-1{background-color:#546e7a!important}.blue-grey-text.text-darken-1{color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important}.blue-grey-text.text-darken-2{color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important}.blue-grey-text.text-darken-3{color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important}.blue-grey-text.text-darken-4{color:#263238!important}.grey.lighten-5{background-color:#fafafa!important}.grey-text.text-lighten-5{color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important}.grey-text.text-lighten-4{color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important}.grey-text.text-lighten-3{color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important}.grey-text.text-lighten-2{color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important}.grey-text.text-lighten-1{color:#bdbdbd!important}.grey{background-color:#9e9e9e!important}.grey-text{color:#9e9e9e!important}.grey.darken-1{background-color:#757575!important}.grey-text.text-darken-1{color:#757575!important}.grey.darken-2{background-color:#616161!important}.grey-text.text-darken-2{color:#616161!important}.grey.darken-3{background-color:#424242!important}.grey-text.text-darken-3{color:#424242!important}.grey.darken-4{background-color:#212121!important}.grey-text.text-darken-4{color:#212121!important}.shades.black{background-color:#000!important}.shades-text.text-black{color:#000!important}.shades.white{background-color:#fff!important}.shades-text.text-white{color:#fff!important}.shades.transparent{background-color:transparent!important}.shades-text.text-transparent{color:transparent!important}.black{background-color:#000!important}.black-text{color:#000!important}.white{color:#666!important;background-color:#fff!important}.white-text{color:#fff!important}.transparent{background-color:transparent!important}.transparent-text{color:transparent!important}
+
+/*!
+ * Quill Editor v1.3.6
+ * https://quilljs.com/
+ * Copyright (c) 2014, Jason Chen
+ * Copyright (c) 2013, salesforce.com
+ */.ql-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.42;height:100%;outline:0;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}
\ No newline at end of file
diff --git a/public/dist/css/app.e3ed2d94.css b/public/dist/css/app.e3ed2d94.css
new file mode 100644
index 000000000..a4861968c
--- /dev/null
+++ b/public/dist/css/app.e3ed2d94.css
@@ -0,0 +1 @@
+.app-levelbar.el-breadcrumb[data-v-721652cb]{display:inline-block;font-size:14px;line-height:50px;padding-left:10px}.app-levelbar.el-breadcrumb .no-redirect[data-v-721652cb]{color:#97a8be;cursor:text}.tabs-view-container{display:inline-block;vertical-align:top;margin-left:10px;position:absolute;height:50px;white-space:nowrap}.tabs-view-container .tabs-view{margin-left:10px}.tabs-view-container .tabs-view.router-link-active .el-tag{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;vertical-align:text-top;margin-top:2px;background-color:#fff;color:#303133;border-color:#e6e6e6}.tabs-view-container .tabs-view.router-link-active .el-tag .el-icon-close{color:#303133}.tabs-view-container .tabs-view.router-link-active .el-tag .el-icon-close:hover{color:#fff;background-color:#ff4949}.hamburger[data-v-1286de0b]{display:inline-block;cursor:pointer;width:20px;height:20px;-webkit-transform:rotate(0deg);transform:rotate(0deg);transition:.38s;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.hamburger.is-active[data-v-1286de0b]{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.bug-svg[data-v-9ff5e3e4]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.navbar[data-v-374ded6c]{height:50px;line-height:50px;border-radius:0!important}.navbar .hamburger-container[data-v-374ded6c]{line-height:58px;height:50px;float:left;padding:0 10px;outline:none}.navbar .errLog-container[data-v-374ded6c]{display:inline-block;position:absolute;right:150px}.navbar .screen-full[data-v-374ded6c]{position:absolute;right:90px;top:16px;color:red}.navbar .avatar-container[data-v-374ded6c]{height:50px;display:inline-block;position:absolute;right:35px}.navbar .avatar-container .avatar-wrapper[data-v-374ded6c]{cursor:pointer;margin-top:5px;position:relative}.navbar .avatar-container .avatar-wrapper .user-avatar[data-v-374ded6c]{width:40px;height:40px;border-radius:10px}.navbar .avatar-container .avatar-wrapper .el-icon-caret-bottom[data-v-374ded6c]{position:absolute;right:-20px;top:25px;font-size:12px}.user-dropdown[data-v-374ded6c]{-webkit-transform:none!important;transform:none!important;-webkit-transition:none!important;transition:none!important}.menu-title[data-v-640a5037]{margin-left:4px}.fa-icon[data-v-640a5037]{line-height:16px;vertical-align:middle}.el-menu[data-v-7dba3c74]{min-height:100%}.el-menu--collapse .el-submenu .el-menu{z-index:1001!important}.app-wrapper[data-v-01f5b9ce]{position:relative;height:100%;width:100%;display:table-row}.app-wrapper[data-v-01f5b9ce]:after{content:"";display:table;clear:both}.app-wrapper.hideSidebar .sidebar-container[data-v-01f5b9ce]{width:36px}.app-wrapper.hideSidebar .main-container[data-v-01f5b9ce]{margin-left:36px}.app-wrapper.showSidebar .sidebar-container[data-v-01f5b9ce]{overflow-x:hidden!important}.app-wrapper .sidebar-container[data-v-01f5b9ce]{display:table-cell;-webkit-transition:width .28s ease-out;transition:width .28s ease-out;width:180px;height:100%;position:fixed;top:0;bottom:0;left:0;z-index:1010}.app-wrapper .main-container[data-v-01f5b9ce]{min-height:100%;-webkit-transition:margin-left .28s ease-out;transition:margin-left .28s ease-out;margin-left:180px;position:relative}.app-wrapper .main-container .main-content[data-v-01f5b9ce]{width:375px}@media (max-width:768px){.wscn-http404[data-v-54f6003a]{padding:0 48px!important}}.wscn-http404[data-v-54f6003a]{position:relative;margin:20px auto 60px;padding:0 100px;overflow:hidden}@media screen and (max-width:1100px){.wscn-http404 .pic-404[data-v-54f6003a]{display:none!important}.wscn-http404 .bullshit[data-v-54f6003a]{width:auto!important}}.wscn-http404 .pic-404[data-v-54f6003a]{position:relative;float:left;width:600px;padding:150px 0 0;overflow:hidden}.wscn-http404 .pic-404__parent[data-v-54f6003a]{width:100%}.wscn-http404 .pic-404__child[data-v-54f6003a]{position:absolute}.wscn-http404 .pic-404__child.left[data-v-54f6003a]{width:80px;top:17px;left:220px;opacity:0;-webkit-animation-name:cloudLeft-data-v-54f6003a;animation-name:cloudLeft-data-v-54f6003a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}.wscn-http404 .pic-404__child.mid[data-v-54f6003a]{width:46px;top:10px;left:420px;opacity:0;-webkit-animation-name:cloudMid-data-v-54f6003a;animation-name:cloudMid-data-v-54f6003a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1.2s;animation-delay:1.2s}.wscn-http404 .pic-404__child.right[data-v-54f6003a]{width:62px;top:100px;left:500px;opacity:0;-webkit-animation-name:cloudRight-data-v-54f6003a;animation-name:cloudRight-data-v-54f6003a;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-delay:1s;animation-delay:1s}@-webkit-keyframes cloudLeft-data-v-54f6003a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@keyframes cloudLeft-data-v-54f6003a{0%{top:17px;left:220px;opacity:0}20%{top:33px;left:188px;opacity:1}80%{top:81px;left:92px;opacity:1}to{top:97px;left:60px;opacity:0}}@-webkit-keyframes cloudMid-data-v-54f6003a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@keyframes cloudMid-data-v-54f6003a{0%{top:10px;left:420px;opacity:0}20%{top:40px;left:360px;opacity:1}70%{top:130px;left:180px;opacity:1}to{top:160px;left:120px;opacity:0}}@-webkit-keyframes cloudRight-data-v-54f6003a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}@keyframes cloudRight-data-v-54f6003a{0%{top:100px;left:500px;opacity:0}20%{top:120px;left:460px;opacity:1}80%{top:180px;left:340px;opacity:1}to{top:200px;left:300px;opacity:0}}.wscn-http404 .bullshit[data-v-54f6003a]{position:relative;float:left;width:300px;padding:150px 0;overflow:hidden}.wscn-http404 .bullshit__oops[data-v-54f6003a]{font-size:32px;font-weight:700;line-height:40px;margin-bottom:20px;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__headline[data-v-54f6003a],.wscn-http404 .bullshit__oops[data-v-54f6003a]{color:#1482f0;opacity:0;-webkit-animation-name:slideUp-data-v-54f6003a;animation-name:slideUp-data-v-54f6003a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__headline[data-v-54f6003a]{font-size:20px;line-height:24px;margin-bottom:10px;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-54f6003a]{font-size:13px;line-height:21px;color:grey;margin-bottom:30px;-webkit-animation-delay:.2s;animation-delay:.2s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}.wscn-http404 .bullshit__info[data-v-54f6003a],.wscn-http404 .bullshit__return-home[data-v-54f6003a]{opacity:0;-webkit-animation-name:slideUp-data-v-54f6003a;animation-name:slideUp-data-v-54f6003a;-webkit-animation-duration:.5s;animation-duration:.5s}.wscn-http404 .bullshit__return-home[data-v-54f6003a]{display:block;float:left;width:110px;height:36px;background:#1482f0;border-radius:100px;text-align:center;color:#fff;font-size:14px;line-height:36px;cursor:pointer;-webkit-animation-delay:.3s;animation-delay:.3s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes slideUp-data-v-54f6003a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes slideUp-data-v-54f6003a{0%{-webkit-transform:translateY(60px);transform:translateY(60px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.title[data-v-3299ba58]{font-weight:400;margin:0 0 12px 0}.about-card-body{padding:4px 8px}.update-tip{font-size:14px}.update-tip code{background-color:#eee;display:inline-block;padding:2px 4px;border-radius:4px}.el-form-item[data-v-36e9dd31],.el-form-item[data-v-7619aae0],.el-form-item[data-v-edcceac2]{margin-bottom:20px!important}.el-checkbox-bin .el-checkbox-button--mini .el-checkbox-button__inner{padding:4px 8px!important}.el-checkbox-bin .el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:#4cd964!important;border-color:#4cd964!important;box-shadow:-1px 0 0 0 #aad9ad!important}@media only screen and (max-width:480px){.category-password .el-input-group__append,.category-password .el-input-group__prepend{padding:0 4px}.category-password .el-checkbox__label{padding-left:0}}.quill-editor .ql-toolbar{line-height:1!important;padding-bottom:0!important}@media only screen and (max-width:615px){.quill-editor .ql-toolbar .ql-picker.ql-size{width:64px!important}}.quill-editor .ql-toolbar .ql-picker-label:before{vertical-align:top}.quill-editor .ql-toolbar .ql-picker.ql-expanded .ql-picker-options{z-index:2}.quill-editor .ql-toolbar svg{vertical-align:top}.quill-editor .ql-container{min-height:135px}.quill-editor .ql-tooltip{z-index:1020}.quill-editor_disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.quill-editor_disabled button,.quill-editor_disabled select{cursor:not-allowed!important}.quill-editor_disabled button:hover .ql-stroke,.quill-editor_disabled select:hover .ql-stroke{stroke:#444!important}.upload-box{position:relative;display:inline-block;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;min-width:100px;min-height:100px}.upload-box .el-upload-dragger{padding:0 48px;width:auto!important}.product-form-item{margin-bottom:8px}.product-form-item .el-form-item__label{padding-bottom:0!important;margin-bottom:-4px!important}.product-form-item .el-checkbox,.product-form-item .el-select{display:block}.product-form-item .el-checkbox+.el-checkbox{margin-left:0}.product-form-item .el-radio-group{display:block}.price-whole{color:#606266}.price-whole .price-body{line-height:normal}.price-whole .price-body>div{line-height:32px}.price-whole .add-btn,.price-whole .del-btn{cursor:pointer;color:#58b7ff;font-size:14px}.price-whole .del-btn{display:inline-block;margin-left:4px}.price-whole .item-label{white-space:nowrap}.price-whole .item-input{width:100px;border:1px solid #dcdfe6;outline:0;border-radius:2px;padding:1px 4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}@media only screen and (max-width:480px){.price-whole .item-input{width:60px}}.price-whole .item-input:hover{border-color:#409eff}@media only screen and (max-width:320px){.buy-password .el-input-group__append,.buy-password .el-input-group__prepend{padding:0 4px}.buy-password .el-checkbox__label{padding-left:0}}.input-retail-code .el-input__inner{border-radius:4px!important}.input-retail-code .el-input-group__append{text-align:center;background-color:inherit;border:none}.input-retail-code .el-button--text{color:#409eff!important}.retail-root-info[data-v-54d867f1]{font-size:14px}.retail-root-info p[data-v-54d867f1]{margin:4px 0}.product-category .item-container{margin-bottom:8px}.product-category .item-container .el-form-item__label{padding-bottom:0!important;margin-bottom:-4px!important}.product-category .item-container .el-checkbox,.product-category .item-container .el-select{display:block}.product-category .item-container .el-checkbox+.el-checkbox{margin-left:0}.product-category .item-container .el-radio-group{display:block}.el-tag-label{margin-left:4px;line-height:22px;height:22px;padding:0 3px}.small-input{width:100px;border:1px solid #dcdfe6;outline:0;border-radius:2px;padding:2px 4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.small-input:hover{border-color:#409eff}.expand-description{color:#58b7ff!important;font-size:14px;padding:0}.expand-description:hover{text-decoration:underline}.coupon-form-item{margin-bottom:8px}.coupon-form-item .el-form-item__label{padding-bottom:0!important;margin-bottom:-4px!important}.coupon-form-item .el-checkbox,.coupon-form-item .el-select{display:block}.coupon-form-item .el-checkbox+.el-checkbox{margin-left:0}.coupon-form-item .el-radio-group{display:block}.order-info-table{overflow:auto;font-size:14px;color:#606266}.order-info-table table{width:100%}.order-info-table table td,.order-info-table table th{padding:0 4px;height:24px}.order-info-table table td.title{white-space:nowrap;text-align:right;width:80px}.order-info-table table td.content-half{white-space:nowrap;min-width:90px;max-width:280px}.order-info-table table td.content-full{min-width:160px;word-wrap:break-word;line-height:1}.order-info-table table,.order-info-table table tr td,.order-info-table table tr th{border:1px solid #ebeef5;border-collapse:collapse}.order-info-table .el-tag{line-height:22px!important;height:22px!important;padding:0 3px!important}.order-info-table .a-btn{text-decoration:underline;white-space:nowrap;cursor:pointer;color:#409eff}.order-info-container .el-dialog{width:100%!important;max-width:560px!important}.order-info-container .el-dialog__body{padding-top:12px}.order-info-container .el-collapse-item__header{font-weight:700}.el-select-group__title{padding-left:12px!important;line-height:24px!important}.send_status-select .el-input__inner{padding:0 4px!important}.el-upload input[type=file]{display:none!important}.el-upload__input{display:none}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.my-card{box-shadow:0 2px 12px 0 rgba(0,0,0,.1);overflow:visible!important;margin-bottom:24px;transition:all .5s ease}.my-card .el-card__body,.my-card .el-card__header{padding:10px 14px}.my-card .icon-btn{line-height:22px}.my-card .el-select{vertical-align:top}.my-card:after{content:attr(index);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%)}@media only screen and (max-width:480px){.my-card{box-shadow:none!important}.card-mobile-padding .el-card__body{padding:4px}}.el-select-dropdown{margin:0!important}.el-select-dropdown .el-select-dropdown__list{padding:0!important}@media screen and (max-width:850px){.el-dialog--small{width:80%!important}}.el-radio-warning .el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#f7ba2a;border-color:#f7ba2a;box-shadow:-1px 0 0 0 #f7ba2a}.el-radio-warning .el-radio-button__inner:hover{color:#f7ba2a}.el-radio-warning .el-radio__inner:hover,.el-radio-warning .el-radio__input.is-focus .el-radio__inner{border-color:#f7ba2a}.el-radio-warning .el-radio__input.is-checked .el-radio__inner{border-color:#f7ba2a;background:#f7ba2a}.el-radio-danger .el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#ff4949;border-color:#ff4949;box-shadow:-1px 0 0 0 #ff4949}.el-radio-danger .el-radio-button__inner:hover{color:#ff4949}.el-radio-danger .el-radio__inner:hover,.el-radio-danger .el-radio__input.is-focus .el-radio__inner{border-color:#ff4949}.el-radio-danger .el-radio__input.is-checked .el-radio__inner{border-color:#ff4949;background:#ff4949}.el-radio-gray .el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#909399;border-color:#909399;box-shadow:-1px 0 0 0 #909399}.el-radio-gray .el-radio-button__inner:hover{color:#909399}.el-radio-gray .el-radio__inner:hover,.el-radio-gray .el-radio__input.is-focus .el-radio__inner{border-color:#909399}.el-radio-gray .el-radio__input.is-checked .el-radio__inner{border-color:#909399;background:#909399}.el-notification__content{text-align:left!important}.el-message-box{vertical-align:baseline!important}.list-table{width:100%}.list-table .cell{padding-left:8px!important;padding-right:0!important}.list-table .cell .line-btn{width:100%;display:inline-block;cursor:pointer;height:24px}.list-table .cell .line-btn:hover{text-decoration:underline}.list-table td,.list-table th{height:30px!important;padding:4px 0!important}.list-table .el-tag{line-height:22px!important;height:22px!important;padding:0 3px!important}.list-table .el-table__fixed-right{height:100%!important}.list-pre-table{margin-bottom:14px!important}.list-pre-table .el-form-item{margin-bottom:2px!important}@media only screen and (max-width:480px){.list-pre-table .el-form-item__content{width:100%!important}}.list-pre-table .fix-height{vertical-align:bottom}.list-pre-table .fix-height .el-form-item__content{line-height:39px!important}.list-after-action .el-form-item{margin-bottom:0}@media only screen and (max-width:480px){.list-after-action .el-pagination__jump{display:block!important;margin-top:4px!important;margin-right:14px!important}}.el-form-item__label2{font-size:14px;color:#606266;line-height:14px}.el-form-item__tip{color:#99a9bf;font-size:12px;line-height:1;padding-top:4px;margin-top:-2px}@media only screen and (max-width:1200px){.el-dialog{width:70%!important}}@media only screen and (max-width:768px){.el-dialog{width:80%!important}.el-range-editor--small{width:100%!important}}@media only screen and (max-width:480px){.el-dialog,.el-message-box{width:90%!important}.el-select-dropdown{max-width:100%!important}}@media only screen and (max-width:320px){.el-dialog{width:90%!important}}.table-input{padding:0 4px!important;width:100%;height:24px!important;border:1px solid #dcdfe6;outline:0;border-radius:4px;font-size:14px;margin-left:-4px}.table-input:focus,.table-input:hover{border-color:#409eff}.el-switch span{color:#606266!important;font-weight:500!important}.el-blue{color:#20a0ff}.el-blue-light{color:#58b7ff}.el-blue-dark{color:#1d8ce0}.el-success{color:#13ce66}.el-warning{color:#f7ba2a}.el-danger{color:#ff4949}.el-black{color:#1f2d3d}.el-black-light{color:#324057}.el-black-light-extra{color:#475669}.el-silver{color:#8492a6}.el-silver-light{color:#99a9bf}.el-silver-light-extra{color:#c0ccda}.el-gray{color:#d3dce6}.el-gray-light{color:#e5e9f2}.el-gray-light-extra{color:#eff2f7}.el-white{color:#fff}.el-white-dark{color:#f9fafc}.el-alert--success2{background-color:#13ce66}.el-alert--info2{background-color:#50bfff}.el-alert--warning2{background-color:#ffd05e!important}.el-alert--error2{background-color:#ff4949}.materialize-red.lighten-5{background-color:#fdeaeb!important}.materialize-red-text.text-lighten-5{color:#fdeaeb!important}.materialize-red.lighten-4{background-color:#f8c1c3!important}.materialize-red-text.text-lighten-4{color:#f8c1c3!important}.materialize-red.lighten-3{background-color:#f3989b!important}.materialize-red-text.text-lighten-3{color:#f3989b!important}.materialize-red.lighten-2{background-color:#ee6e73!important}.materialize-red-text.text-lighten-2{color:#ee6e73!important}.materialize-red.lighten-1{background-color:#ea454b!important}.materialize-red-text.text-lighten-1{color:#ea454b!important}.materialize-red{background-color:#e51c23!important}.materialize-red-text{color:#e51c23!important}.materialize-red.darken-1{background-color:#d0181e!important}.materialize-red-text.text-darken-1{color:#d0181e!important}.materialize-red.darken-2{background-color:#b9151b!important}.materialize-red-text.text-darken-2{color:#b9151b!important}.materialize-red.darken-3{background-color:#a21318!important}.materialize-red-text.text-darken-3{color:#a21318!important}.materialize-red.darken-4{background-color:#8b1014!important}.materialize-red-text.text-darken-4{color:#8b1014!important}.red.lighten-5{background-color:#ffebee!important}.red-text.text-lighten-5{color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important}.red-text.text-lighten-4{color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important}.red-text.text-lighten-3{color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important}.red-text.text-lighten-2{color:#e57373!important}.red.lighten-1{background-color:#ef5350!important}.red-text.text-lighten-1{color:#ef5350!important}.red{background-color:#f44336!important}.red-text{color:#f44336!important}.red.darken-1{background-color:#e53935!important}.red-text.text-darken-1{color:#e53935!important}.red.darken-2{background-color:#d32f2f!important}.red-text.text-darken-2{color:#d32f2f!important}.red.darken-3{background-color:#c62828!important}.red-text.text-darken-3{color:#c62828!important}.red.darken-4{background-color:#b71c1c!important}.red-text.text-darken-4{color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important}.red-text.text-accent-1{color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important}.red-text.text-accent-2{color:#ff5252!important}.red.accent-3{background-color:#ff1744!important}.red-text.text-accent-3{color:#ff1744!important}.red.accent-4{background-color:#d50000!important}.red-text.text-accent-4{color:#d50000!important}.pink.lighten-5{background-color:#fce4ec!important}.pink-text.text-lighten-5{color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important}.pink-text.text-lighten-4{color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important}.pink-text.text-lighten-3{color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important}.pink-text.text-lighten-2{color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important}.pink-text.text-lighten-1{color:#ec407a!important}.pink{background-color:#e91e63!important}.pink-text{color:#e91e63!important}.pink.darken-1{background-color:#d81b60!important}.pink-text.text-darken-1{color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important}.pink-text.text-darken-2{color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important}.pink-text.text-darken-3{color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important}.pink-text.text-darken-4{color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important}.pink-text.text-accent-1{color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important}.pink-text.text-accent-2{color:#ff4081!important}.pink.accent-3{background-color:#f50057!important}.pink-text.text-accent-3{color:#f50057!important}.pink.accent-4{background-color:#c51162!important}.pink-text.text-accent-4{color:#c51162!important}.purple.lighten-5{background-color:#f3e5f5!important}.purple-text.text-lighten-5{color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important}.purple-text.text-lighten-4{color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important}.purple-text.text-lighten-3{color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important}.purple-text.text-lighten-2{color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important}.purple-text.text-lighten-1{color:#ab47bc!important}.purple{background-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple.darken-1{background-color:#8e24aa!important}.purple-text.text-darken-1{color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important}.purple-text.text-darken-2{color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important}.purple-text.text-darken-3{color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important}.purple-text.text-darken-4{color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important}.purple-text.text-accent-1{color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important}.purple-text.text-accent-2{color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important}.purple-text.text-accent-3{color:#d500f9!important}.purple.accent-4{background-color:#a0f!important}.purple-text.text-accent-4{color:#a0f!important}.deep-purple.lighten-5{background-color:#ede7f6!important}.deep-purple-text.text-lighten-5{color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important}.deep-purple-text.text-lighten-4{color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important}.deep-purple-text.text-lighten-3{color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important}.deep-purple-text.text-lighten-2{color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important}.deep-purple-text.text-lighten-1{color:#7e57c2!important}.deep-purple{background-color:#673ab7!important}.deep-purple-text{color:#673ab7!important}.deep-purple.darken-1{background-color:#5e35b1!important}.deep-purple-text.text-darken-1{color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important}.deep-purple-text.text-darken-2{color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important}.deep-purple-text.text-darken-3{color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important}.deep-purple-text.text-darken-4{color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important}.deep-purple-text.text-accent-1{color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important}.deep-purple-text.text-accent-2{color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important}.deep-purple-text.text-accent-3{color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important}.deep-purple-text.text-accent-4{color:#6200ea!important}.indigo.lighten-5{background-color:#e8eaf6!important}.indigo-text.text-lighten-5{color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important}.indigo-text.text-lighten-4{color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important}.indigo-text.text-lighten-3{color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important}.indigo-text.text-lighten-2{color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important}.indigo-text.text-lighten-1{color:#5c6bc0!important}.indigo{background-color:#3f51b5!important}.indigo-text{color:#3f51b5!important}.indigo.darken-1{background-color:#3949ab!important}.indigo-text.text-darken-1{color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important}.indigo-text.text-darken-2{color:#303f9f!important}.indigo.darken-3{background-color:#283593!important}.indigo-text.text-darken-3{color:#283593!important}.indigo.darken-4{background-color:#1a237e!important}.indigo-text.text-darken-4{color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important}.indigo-text.text-accent-1{color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important}.indigo-text.text-accent-2{color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important}.indigo-text.text-accent-3{color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important}.indigo-text.text-accent-4{color:#304ffe!important}.blue.lighten-5{background-color:#e3f2fd!important}.blue-text.text-lighten-5{color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important}.blue-text.text-lighten-4{color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important}.blue-text.text-lighten-3{color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important}.blue-text.text-lighten-2{color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important}.blue-text.text-lighten-1{color:#42a5f5!important}.blue{background-color:#2196f3!important}.blue-text{color:#2196f3!important}.blue.darken-1{background-color:#1e88e5!important}.blue-text.text-darken-1{color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important}.blue-text.text-darken-2{color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important}.blue-text.text-darken-3{color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important}.blue-text.text-darken-4{color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important}.blue-text.text-accent-1{color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important}.blue-text.text-accent-2{color:#448aff!important}.blue.accent-3{background-color:#2979ff!important}.blue-text.text-accent-3{color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important}.blue-text.text-accent-4{color:#2962ff!important}.light-blue.lighten-5{background-color:#e1f5fe!important}.light-blue-text.text-lighten-5{color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important}.light-blue-text.text-lighten-4{color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important}.light-blue-text.text-lighten-3{color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important}.light-blue-text.text-lighten-2{color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important}.light-blue-text.text-lighten-1{color:#29b6f6!important}.light-blue{background-color:#03a9f4!important}.light-blue-text{color:#03a9f4!important}.light-blue.darken-1{background-color:#039be5!important}.light-blue-text.text-darken-1{color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important}.light-blue-text.text-darken-2{color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important}.light-blue-text.text-darken-3{color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important}.light-blue-text.text-darken-4{color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important}.light-blue-text.text-accent-1{color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important}.light-blue-text.text-accent-2{color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important}.light-blue-text.text-accent-3{color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important}.light-blue-text.text-accent-4{color:#0091ea!important}.cyan.lighten-5{background-color:#e0f7fa!important}.cyan-text.text-lighten-5{color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important}.cyan-text.text-lighten-4{color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important}.cyan-text.text-lighten-3{color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important}.cyan-text.text-lighten-2{color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important}.cyan-text.text-lighten-1{color:#26c6da!important}.cyan{background-color:#00bcd4!important}.cyan-text{color:#00bcd4!important}.cyan.darken-1{background-color:#00acc1!important}.cyan-text.text-darken-1{color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important}.cyan-text.text-darken-2{color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important}.cyan-text.text-darken-3{color:#00838f!important}.cyan.darken-4{background-color:#006064!important}.cyan-text.text-darken-4{color:#006064!important}.cyan.accent-1{background-color:#84ffff!important}.cyan-text.text-accent-1{color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important}.cyan-text.text-accent-2{color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important}.cyan-text.text-accent-3{color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important}.cyan-text.text-accent-4{color:#00b8d4!important}.teal.lighten-5{background-color:#e0f2f1!important}.teal-text.text-lighten-5{color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important}.teal-text.text-lighten-4{color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important}.teal-text.text-lighten-3{color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important}.teal-text.text-lighten-2{color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important}.teal-text.text-lighten-1{color:#26a69a!important}.teal{background-color:#009688!important}.teal-text{color:#009688!important}.teal.darken-1{background-color:#00897b!important}.teal-text.text-darken-1{color:#00897b!important}.teal.darken-2{background-color:#00796b!important}.teal-text.text-darken-2{color:#00796b!important}.teal.darken-3{background-color:#00695c!important}.teal-text.text-darken-3{color:#00695c!important}.teal.darken-4{background-color:#004d40!important}.teal-text.text-darken-4{color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important}.teal-text.text-accent-1{color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important}.teal-text.text-accent-2{color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important}.teal-text.text-accent-3{color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important}.teal-text.text-accent-4{color:#00bfa5!important}.green.lighten-5{background-color:#e8f5e9!important}.green-text.text-lighten-5{color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important}.green-text.text-lighten-4{color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important}.green-text.text-lighten-3{color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important}.green-text.text-lighten-2{color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important}.green-text.text-lighten-1{color:#66bb6a!important}.green{background-color:#4caf50!important}.green-text{color:#4caf50!important}.green.darken-1{background-color:#43a047!important}.green-text.text-darken-1{color:#43a047!important}.green.darken-2{background-color:#388e3c!important}.green-text.text-darken-2{color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important}.green-text.text-darken-3{color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important}.green-text.text-darken-4{color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important}.green-text.text-accent-1{color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important}.green-text.text-accent-2{color:#69f0ae!important}.green.accent-3{background-color:#00e676!important}.green-text.text-accent-3{color:#00e676!important}.green.accent-4{background-color:#00c853!important}.green-text.text-accent-4{color:#00c853!important}.light-green.lighten-5{background-color:#f1f8e9!important}.light-green-text.text-lighten-5{color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important}.light-green-text.text-lighten-4{color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important}.light-green-text.text-lighten-3{color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important}.light-green-text.text-lighten-2{color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important}.light-green-text.text-lighten-1{color:#9ccc65!important}.light-green{background-color:#8bc34a!important}.light-green-text{color:#8bc34a!important}.light-green.darken-1{background-color:#7cb342!important}.light-green-text.text-darken-1{color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important}.light-green-text.text-darken-2{color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important}.light-green-text.text-darken-3{color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important}.light-green-text.text-darken-4{color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important}.light-green-text.text-accent-1{color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important}.light-green-text.text-accent-2{color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important}.light-green-text.text-accent-3{color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important}.light-green-text.text-accent-4{color:#64dd17!important}.lime.lighten-5{background-color:#f9fbe7!important}.lime-text.text-lighten-5{color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important}.lime-text.text-lighten-4{color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important}.lime-text.text-lighten-3{color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important}.lime-text.text-lighten-2{color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important}.lime-text.text-lighten-1{color:#d4e157!important}.lime{background-color:#cddc39!important}.lime-text{color:#cddc39!important}.lime.darken-1{background-color:#c0ca33!important}.lime-text.text-darken-1{color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important}.lime-text.text-darken-2{color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important}.lime-text.text-darken-3{color:#9e9d24!important}.lime.darken-4{background-color:#827717!important}.lime-text.text-darken-4{color:#827717!important}.lime.accent-1{background-color:#f4ff81!important}.lime-text.text-accent-1{color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important}.lime-text.text-accent-2{color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important}.lime-text.text-accent-3{color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important}.lime-text.text-accent-4{color:#aeea00!important}.yellow.lighten-5{background-color:#fffde7!important}.yellow-text.text-lighten-5{color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important}.yellow-text.text-lighten-4{color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important}.yellow-text.text-lighten-3{color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important}.yellow-text.text-lighten-2{color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important}.yellow-text.text-lighten-1{color:#ffee58!important}.yellow{background-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow.darken-1{background-color:#fdd835!important}.yellow-text.text-darken-1{color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important}.yellow-text.text-darken-2{color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important}.yellow-text.text-darken-3{color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important}.yellow-text.text-darken-4{color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important}.yellow-text.text-accent-1{color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important}.yellow-text.text-accent-2{color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important}.yellow-text.text-accent-3{color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important}.yellow-text.text-accent-4{color:#ffd600!important}.amber.lighten-5{background-color:#fff8e1!important}.amber-text.text-lighten-5{color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important}.amber-text.text-lighten-4{color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important}.amber-text.text-lighten-3{color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important}.amber-text.text-lighten-2{color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important}.amber-text.text-lighten-1{color:#ffca28!important}.amber{background-color:#ffc107!important}.amber-text{color:#ffc107!important}.amber.darken-1{background-color:#ffb300!important}.amber-text.text-darken-1{color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important}.amber-text.text-darken-2{color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important}.amber-text.text-darken-3{color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important}.amber-text.text-darken-4{color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important}.amber-text.text-accent-1{color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important}.amber-text.text-accent-2{color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important}.amber-text.text-accent-3{color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important}.amber-text.text-accent-4{color:#ffab00!important}.orange.lighten-5{background-color:#fff3e0!important}.orange-text.text-lighten-5{color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important}.orange-text.text-lighten-4{color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important}.orange-text.text-lighten-3{color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important}.orange-text.text-lighten-2{color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important}.orange-text.text-lighten-1{color:#ffa726!important}.orange{background-color:#ff9800!important}.orange-text{color:#ff9800!important}.orange.darken-1{background-color:#fb8c00!important}.orange-text.text-darken-1{color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important}.orange-text.text-darken-2{color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important}.orange-text.text-darken-3{color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important}.orange-text.text-darken-4{color:#e65100!important}.orange.accent-1{background-color:#ffd180!important}.orange-text.text-accent-1{color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important}.orange-text.text-accent-2{color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important}.orange-text.text-accent-3{color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important}.orange-text.text-accent-4{color:#ff6d00!important}.deep-orange.lighten-5{background-color:#fbe9e7!important}.deep-orange-text.text-lighten-5{color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important}.deep-orange-text.text-lighten-4{color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important}.deep-orange-text.text-lighten-3{color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important}.deep-orange-text.text-lighten-2{color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important}.deep-orange-text.text-lighten-1{color:#ff7043!important}.deep-orange{background-color:#ff5722!important}.deep-orange-text{color:#ff5722!important}.deep-orange.darken-1{background-color:#f4511e!important}.deep-orange-text.text-darken-1{color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important}.deep-orange-text.text-darken-2{color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important}.deep-orange-text.text-darken-3{color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important}.deep-orange-text.text-darken-4{color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important}.deep-orange-text.text-accent-1{color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important}.deep-orange-text.text-accent-2{color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important}.deep-orange-text.text-accent-3{color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important}.deep-orange-text.text-accent-4{color:#dd2c00!important}.brown.lighten-5{background-color:#efebe9!important}.brown-text.text-lighten-5{color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important}.brown-text.text-lighten-4{color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important}.brown-text.text-lighten-3{color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important}.brown-text.text-lighten-2{color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important}.brown-text.text-lighten-1{color:#8d6e63!important}.brown{background-color:#795548!important}.brown-text{color:#795548!important}.brown.darken-1{background-color:#6d4c41!important}.brown-text.text-darken-1{color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important}.brown-text.text-darken-2{color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important}.brown-text.text-darken-3{color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important}.brown-text.text-darken-4{color:#3e2723!important}.blue-grey.lighten-5{background-color:#eceff1!important}.blue-grey-text.text-lighten-5{color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important}.blue-grey-text.text-lighten-4{color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important}.blue-grey-text.text-lighten-3{color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important}.blue-grey-text.text-lighten-2{color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important}.blue-grey-text.text-lighten-1{color:#78909c!important}.blue-grey{background-color:#607d8b!important}.blue-grey-text{color:#607d8b!important}.blue-grey.darken-1{background-color:#546e7a!important}.blue-grey-text.text-darken-1{color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important}.blue-grey-text.text-darken-2{color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important}.blue-grey-text.text-darken-3{color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important}.blue-grey-text.text-darken-4{color:#263238!important}.grey.lighten-5{background-color:#fafafa!important}.grey-text.text-lighten-5{color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important}.grey-text.text-lighten-4{color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important}.grey-text.text-lighten-3{color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important}.grey-text.text-lighten-2{color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important}.grey-text.text-lighten-1{color:#bdbdbd!important}.grey{background-color:#9e9e9e!important}.grey-text{color:#9e9e9e!important}.grey.darken-1{background-color:#757575!important}.grey-text.text-darken-1{color:#757575!important}.grey.darken-2{background-color:#616161!important}.grey-text.text-darken-2{color:#616161!important}.grey.darken-3{background-color:#424242!important}.grey-text.text-darken-3{color:#424242!important}.grey.darken-4{background-color:#212121!important}.grey-text.text-darken-4{color:#212121!important}.shades.black{background-color:#000!important}.shades-text.text-black{color:#000!important}.shades.white{background-color:#fff!important}.shades-text.text-white{color:#fff!important}.shades.transparent{background-color:transparent!important}.shades-text.text-transparent{color:transparent!important}.black{background-color:#000!important}.black-text{color:#000!important}.white{color:#666!important;background-color:#fff!important}.white-text{color:#fff!important}.transparent{background-color:transparent!important}.transparent-text{color:transparent!important}.sidebar-container>.el-menu{width:100%!important}.sidebar-container .svg-icon{margin-right:16px}.hideSidebar .el-submenu>.el-submenu__title,.hideSidebar .submenu-title-noDropdown{padding-left:10px!important}.hideSidebar .el-submenu>.el-submenu__title>span,.hideSidebar .submenu-title-noDropdown span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.hideSidebar .nest-menu .el-submenu__title{text-align:initial!important;padding-left:20px!important}.hideSidebar .nest-menu .el-submenu__title span{height:auto;width:auto;visibility:visible;display:inline}.hideSidebar .nest-menu .el-submenu__title .el-submenu__icon-arrow{display:block!important}.hideSidebar .menu-wrapper>.el-menu-item,.hideSidebar .menu-wrapper>.el-submenu .el-submenu__title,.hideSidebar .submenu-title-noDropdown{text-align:center}.hideSidebar .el-menu-item .el-submenu__icon-arrow,.hideSidebar .el-submenu .el-submenu__title .el-submenu__icon-arrow{display:none}.hideSidebar .submenu-title-noDropdown{position:relative}.hideSidebar .submenu-title-noDropdown span{transition:opacity .3s cubic-bezier(.55,0,.1,1);opacity:0}.hideSidebar .submenu-title-noDropdown:hover span{display:block;border-radius:2px;z-index:1002;width:140px;height:56px;visibility:visible;position:absolute;right:-145px;text-align:left;text-indent:20px;top:0;background-color:#fff;opacity:1;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-submenu .el-menu-item{min-width:180px!important}.blue-btn{background:#324157}.blue-btn:hover{color:#324157}.blue-btn:hover:after,.blue-btn:hover:before{background:#324157}.light-blue-btn{background:#3a71a8}.light-blue-btn:hover{color:#3a71a8}.light-blue-btn:hover:after,.light-blue-btn:hover:before{background:#3a71a8}.red-btn{background:#c03639}.red-btn:hover{color:#c03639}.red-btn:hover:after,.red-btn:hover:before{background:#c03639}.pink-btn{background:#e65d6e}.pink-btn:hover{color:#e65d6e}.pink-btn:hover:after,.pink-btn:hover:before{background:#e65d6e}.green-btn{background:#30b08f}.green-btn:hover{color:#30b08f}.green-btn:hover:after,.green-btn:hover:before{background:#30b08f}.tiffany-btn{background:#4ab7bd}.tiffany-btn:hover{color:#4ab7bd}.tiffany-btn:hover:after,.tiffany-btn:hover:before{background:#4ab7bd}.yellow-btn{background:#fec171}.yellow-btn:hover{color:#fec171}.yellow-btn:hover:after,.yellow-btn:hover:before{background:#fec171}.pan-btn{font-size:14px;color:#fff;padding:14px 36px;border-radius:8px;border:none;outline:none;margin-right:25px;transition:all .6s ease;position:relative;display:inline-block}.pan-btn:hover{background:#fff}.pan-btn:hover:after,.pan-btn:hover:before{width:100%;transition:all .6s ease}.pan-btn:after,.pan-btn:before{content:"";position:absolute;top:0;right:0;height:2px;width:0;transition:all .4s ease}.pan-btn:after{right:inherit;top:inherit;left:0;bottom:0}.custom-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;color:#fff;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;padding:10px 15px;font-size:14px;border-radius:4px}.icon-btn{font-size:14px;margin-right:4px;line-height:24px;color:#1f2d3d;padding:0}.icon-btn:focus,.icon-btn:hover{color:#20a0ff}.icon-btn:active{color:#1d90e6;outline:0}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.mb12{margin-bottom:12px!important}.mb16{margin-bottom:16px!important}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif}body,html{height:100%}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}a:active,a:focus{outline:none}a,a:focus,a:hover{cursor:pointer;color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px;height:8px}::-webkit-scrollbar-track{border-radius:4px}::-webkit-scrollbar-thumb{background:rgba(144,146,152,.3);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgba(144,146,152,.5)}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background-color:transparent}.clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.fade-enter-active,.fade-leave-active{transition:all .2s ease}.fade-enter,.fade-leave-active{opacity:0}body{display:table;width:100%;table-layout:fixed;position:relative}.app-main{min-height:100%}.app-container{padding:20px}@media only screen and (max-width:480px){.app-container{padding:14px}.mobile-full-width{width:100%}}.fa-icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.ann-box{width:60%;max-width:600px}.quill-html img{max-width:100%}.geetest_holder{width:100%!important;margin-bottom:24px;min-width:auto!important}.gt_holder{width:290px;margin:0 auto;padding-top:20px;z-index:2}.gt_holder .gt_holder_top{display:none}.gt_holder .gt_box_holder{border:1px solid transparent!important;background:transparent!important;margin-bottom:10px}.gt_holder .gt_bottom{display:none}h3{font-weight:400}.no-bottom-form{padding-bottom:0}
\ No newline at end of file
diff --git a/public/dist/css/chunk-16304536.aff17982.css b/public/dist/css/chunk-16304536.aff17982.css
new file mode 100644
index 000000000..239a96ccc
--- /dev/null
+++ b/public/dist/css/chunk-16304536.aff17982.css
@@ -0,0 +1 @@
+.el-form-item-title-btn[data-v-201639f9]{display:inline-block;margin-left:4px}
\ No newline at end of file
diff --git a/public/dist/css/chunk-2439f615.5bbc4001.css b/public/dist/css/chunk-2439f615.5bbc4001.css
new file mode 100644
index 000000000..58bc0e063
--- /dev/null
+++ b/public/dist/css/chunk-2439f615.5bbc4001.css
@@ -0,0 +1 @@
+.login-container[data-v-2b001737]{height:100%;background-size:100% 1000px}.login-form[data-v-2b001737]{border-radius:5px;-moz-border-radius:5px;background-clip:padding-box;width:350px;padding:35px 35px 15px 35px;background:#fff;border:1px solid #eaeaea;-webkit-box-shadow:0 15px 30px 0 rgba(0,0,0,.2);box-shadow:0 15px 30px 0 rgba(0,0,0,.2)}.login-form .title[data-v-2b001737]{margin:0 auto 40px auto;text-align:center;color:#505458}.login-form .remember[data-v-2b001737]{margin:0 0 28px 0}.forget-btn[data-v-2b001737]{color:#606266;font-size:14px;cursor:pointer;float:right}.reg-btn[data-v-2b001737]{color:#606266;font-size:14px;text-align:center;padding-top:16px}.reg-btn a[data-v-2b001737]{color:#20a0ff}@media only screen and (max-width:350px){.login-form[data-v-2b001737],.reg-btn[data-v-2b001737]{width:100%}}
\ No newline at end of file
diff --git a/public/dist/css/chunk-3f9945b0.a261e2a4.css b/public/dist/css/chunk-3f9945b0.a261e2a4.css
new file mode 100644
index 000000000..8a3f8d249
--- /dev/null
+++ b/public/dist/css/chunk-3f9945b0.a261e2a4.css
@@ -0,0 +1 @@
+.charts-tooltip-name{font-size:14px;color:#8b93a7}.charts-tooltip-value{color:#333;font-size:18px;line-height:30px;vertical-align:text-bottom}.charts-tooltip-title{color:#c8d0dc;font-size:12px}.home-report{position:relative}.home-report .el-card__body{padding:0}.home-report .el-tabs{-webkit-box-shadow:none!important;box-shadow:none!important;border:none!important}.home-report .body-amount{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:4px}.home-report .body-amount>.body-balance{-webkit-box-flex:1;-ms-flex:1;flex:1}.home-report .body-amount>.body-balance>.amount-title{font-size:14px;color:#8b93a7;text-align:left;height:20px;line-height:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.home-report .body-amount>.body-balance>.balance-money{color:#333;font-size:24px;font-family:Microsoft Yahei UI Light,sans-serif;font-weight:700}.home-account-top[data-v-fea55cec]{height:200px;padding:10px}.home-account-top>.avatar[data-v-fea55cec]{margin-bottom:20px;height:48px}.home-account-top>.avatar>img[data-v-fea55cec]{float:left;border-radius:50%;width:48px;height:48px;vertical-align:top}.home-account-top>.avatar>.avatar-name[data-v-fea55cec]{font-size:16px;line-height:24px;word-break:break-all;text-overflow:ellipsis;overflow:hidden;height:48px;color:#181818;padding-left:16px;font-weight:500;display:-webkit-box;-webkit-box-orient:vertical;-ms-box-orient:vertical;-webkit-line-clamp:2;-ms-line-clamp:2;-webkit-box-pack:center;-ms-box-pack:center}.home-account-top>.info[data-v-fea55cec]{height:20px;line-height:20px;font-size:14px;color:#333;margin:9px 0}.home-account-top>.info>[data-v-fea55cec],.home-account-top>.info[data-v-fea55cec]{display:-webkit-box;display:-ms-flexbox;display:flex}.home-account-top>.info>.label[data-v-fea55cec]{font-size:14px;color:#8b93a7;letter-spacing:0}.home-account-top>.info>.value[data-v-fea55cec]{max-width:212px;white-space:nowrap;word-break:keep-all;word-wrap:normal;overflow:hidden;text-overflow:ellipsis}.home-account-top>.action[data-v-fea55cec]{margin:24px 0 16px}.home-account-top>.action .el-dropdown[data-v-fea55cec]{width:100%}.home-account-top>.action button[data-v-fea55cec]{border:1px solid #108ee9;border-radius:4px;font-size:14px;color:#108ee9;width:100%;height:32px;padding:8px}.home-top-info-el-dropdown-menu[data-v-fea55cec]{width:274px}.home-link-card .el-card__body{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:100%;overflow-x:hidden;overflow-y:auto}.home-link[data-v-4942bf96]{margin:10px}.home-link>.header[data-v-4942bf96]{font-weight:700}.home-link>.header>.header-title[data-v-4942bf96]{font-size:17px;color:#333;line-height:25px}.home-link>.functions[data-v-4942bf96]{display:block;margin:12px -6px 0}.home-link>.functions>.function[data-v-4942bf96]{margin:12px 6px 0;display:inline-block;width:120px;height:36px;background:#f5f6fa;border-radius:4px;font-size:14px;color:#333;text-align:center;line-height:36px;-webkit-transition:color .3s ease;transition:color .3s ease}.home-link>.functions>.function[data-v-4942bf96]:hover{color:#409eff}.order-chart-day{position:absolute;top:-1px;right:-1px;width:90px;z-index:1}.order-chart-day input{border:none;background:transparent}.home-row[data-v-3ddce504]{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.home-row[data-v-3ddce504]:last-child{margin-bottom:0}.home-row .my-card[data-v-3ddce504]{margin:0 0 20px}.row-reverse[data-v-3ddce504]{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.col-home-right[data-v-3ddce504]{width:324px;margin-left:18px}.col-home-left[data-v-3ddce504]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.col-home-left-balance[data-v-3ddce504]{width:324px}.col-home-left-chart[data-v-3ddce504]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.home-left-balance[data-v-3ddce504],.home-left-chart[data-v-3ddce504]{height:308px}.col-home-account[data-v-3ddce504],.col-home-link[data-v-3ddce504]{width:324px}.home-notice-2 .my-card[data-v-3ddce504]{margin:0 0 20px}.home-notice-1[data-v-3ddce504]{display:-webkit-box;display:-ms-flexbox;display:flex}.home-notice-2[data-v-3ddce504]{display:none}@media only screen and (max-width:1199px){.home-notice-1[data-v-3ddce504]{display:none}.home-notice-2[data-v-3ddce504]{display:-webkit-box;display:-ms-flexbox;display:flex}.row-reverse[data-v-3ddce504]{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.col-home-left[data-v-3ddce504],.col-home-right[data-v-3ddce504]{margin:0;width:100%;-webkit-box-flex:0;-ms-flex:none;flex:none}.col-home-link[data-v-3ddce504]{width:auto;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;margin-left:18px}.home-link[data-v-3ddce504]{height:222px}.col-home-left-chart[data-v-3ddce504]{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0}}@media only screen and (max-width:836px){.col-home-account[data-v-3ddce504],.col-home-left-balance[data-v-3ddce504],.col-home-left-chart[data-v-3ddce504],.col-home-link[data-v-3ddce504]{width:100%;-webkit-box-flex:initial;-ms-flex:initial;flex:initial;margin:0}.home-left-balance[data-v-3ddce504]{height:278px}.col-home-right[data-v-3ddce504]{display:none}}.todo-overview[data-v-3ddce504]{font-size:14px}.todo-overview .info[data-v-3ddce504]{display:inline-block}
\ No newline at end of file
diff --git a/public/dist/css/chunk-538673b6.f457901a.css b/public/dist/css/chunk-538673b6.f457901a.css
new file mode 100644
index 000000000..cfae9a755
--- /dev/null
+++ b/public/dist/css/chunk-538673b6.f457901a.css
@@ -0,0 +1 @@
+.home-link-card .el-card__body{-webkit-box-sizing:border-box;box-sizing:border-box;max-height:100%;overflow-x:hidden;overflow-y:auto}.home-link[data-v-4942bf96]{margin:10px}.home-link>.header[data-v-4942bf96]{font-weight:700}.home-link>.header>.header-title[data-v-4942bf96]{font-size:17px;color:#333;line-height:25px}.home-link>.functions[data-v-4942bf96]{display:block;margin:12px -6px 0}.home-link>.functions>.function[data-v-4942bf96]{margin:12px 6px 0;display:inline-block;width:120px;height:36px;background:#f5f6fa;border-radius:4px;font-size:14px;color:#333;text-align:center;line-height:36px;-webkit-transition:color .3s ease;transition:color .3s ease}.home-link>.functions>.function[data-v-4942bf96]:hover{color:#409eff}
\ No newline at end of file
diff --git a/public/dist/css/chunk-6b21f7af.07854e3c.css b/public/dist/css/chunk-6b21f7af.07854e3c.css
new file mode 100644
index 000000000..c31b1e312
--- /dev/null
+++ b/public/dist/css/chunk-6b21f7af.07854e3c.css
@@ -0,0 +1 @@
+.theme-select[data-v-1c4921e1]{display:block}.child-option[data-v-1c4921e1]{-webkit-box-shadow:none!important;box-shadow:none!important;margin-bottom:16px}.child-option .child-option-title[data-v-1c4921e1]{margin:0 0 4px 0}.el-form-item-title-btn[data-v-201639f9]{display:inline-block;margin-left:4px}.title{font-weight:400;margin:0 0 12px 0}.item-container{margin-bottom:8px!important}.item-container .tip{font-size:12px}.item-container .el-checkbox{display:block}.item-container .el-checkbox+.el-checkbox{margin-left:0}.item-container .el-switch span{color:#606266!important;font-weight:500!important}.item-container .el-radio-group{display:block!important}
\ No newline at end of file
diff --git a/public/dist/css/chunk-9b8ac54e.8868b1fa.css b/public/dist/css/chunk-9b8ac54e.8868b1fa.css
new file mode 100644
index 000000000..8c0ecd6ea
--- /dev/null
+++ b/public/dist/css/chunk-9b8ac54e.8868b1fa.css
@@ -0,0 +1 @@
+.theme-select[data-v-1c4921e1]{display:block}.child-option[data-v-1c4921e1]{-webkit-box-shadow:none!important;box-shadow:none!important;margin-bottom:16px}.child-option .child-option-title[data-v-1c4921e1]{margin:0 0 4px 0}
\ No newline at end of file
diff --git a/public/dist/css/chunk-vendors.2bba6a91.css b/public/dist/css/chunk-vendors.2bba6a91.css
new file mode 100644
index 000000000..dd476ed26
--- /dev/null
+++ b/public/dist/css/chunk-vendors.2bba6a91.css
@@ -0,0 +1,3 @@
+.mu-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#2196f3;color:hsla(0,0%,100%,.7);position:relative;z-index:100;width:100%;overflow:hidden}.mu-tabs-inverse{background-color:#fafafa;color:rgba(0,0,0,.54)}.mu-tabs-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.mu-tab-link-highlight{position:absolute;left:0;bottom:0;height:2px;background-color:#ff4081;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1) 0ms;transition:all .3s cubic-bezier(.4,0,.2,1) 0ms;will-change:width transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-tab{font-size:14px;min-width:72px;max-width:264px;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-decoration:none;border:none;outline:none;color:inherit;position:relative;line-height:normal;-webkit-transition:all .45s cubic-bezier(.445,.05,.55,.95);transition:all .45s cubic-bezier(.445,.05,.55,.95);cursor:pointer}.mu-tabs-full-width .mu-tab{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%}.mu-tab .mu-icon{margin-bottom:8px}.mu-tab-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:48px;padding:12px}.mu-tab-active{color:#fff}.mu-tab-active.is-inverse{color:rgba(0,0,0,.87)}@media (min-width:960px){.mu-tab{min-width:160px}}.mu-ripple-wrapper{overflow:hidden}.mu-circle-ripple,.mu-ripple-wrapper{height:100%;width:100%;position:absolute;top:0;left:0}.mu-circle-ripple{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:50%;background-color:currentColor;background-clip:padding-box;opacity:.1}.mu-ripple-enter-active,.mu-ripple-leave-active{-webkit-transition:opacity 2s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity 2s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity 2s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1);transition:opacity 2s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1)}.mu-ripple-enter{-webkit-transform:scale(0);transform:scale(0)}.mu-ripple-leave-active{opacity:0!important}.mu-focus-ripple-wrapper{height:100%;width:100%;position:absolute;top:0;left:0;overflow:hidden}.mu-linear-progress{position:relative;height:4px;display:block;width:100%;margin:0;overflow:hidden}.mu-linear-progress.mu-secondary-color{background-color:transparent}.mu-linear-progress.mu-secondary-color .mu-linear-progress-background,.mu-linear-progress.mu-secondary-color .mu-linear-progress-determinate,.mu-linear-progress.mu-secondary-color .mu-linear-progress-indeterminate{background-color:#ff4081}.mu-linear-progress.mu-success-color{background-color:transparent}.mu-linear-progress.mu-success-color .mu-linear-progress-background,.mu-linear-progress.mu-success-color .mu-linear-progress-determinate,.mu-linear-progress.mu-success-color .mu-linear-progress-indeterminate{background-color:#4caf50}.mu-linear-progress.mu-warning-color{background-color:transparent}.mu-linear-progress.mu-warning-color .mu-linear-progress-background,.mu-linear-progress.mu-warning-color .mu-linear-progress-determinate,.mu-linear-progress.mu-warning-color .mu-linear-progress-indeterminate{background-color:#fdd835}.mu-linear-progress.mu-info-color{background-color:transparent}.mu-linear-progress.mu-info-color .mu-linear-progress-background,.mu-linear-progress.mu-info-color .mu-linear-progress-determinate,.mu-linear-progress.mu-info-color .mu-linear-progress-indeterminate{background-color:#2196f3}.mu-linear-progress.mu-error-color{background-color:transparent}.mu-linear-progress.mu-error-color .mu-linear-progress-background,.mu-linear-progress.mu-error-color .mu-linear-progress-determinate,.mu-linear-progress.mu-error-color .mu-linear-progress-indeterminate{background-color:#f44336}.mu-linear-progress.mu-primary-color{background-color:transparent}.mu-linear-progress-background{position:absolute;top:0;bottom:0;left:0;right:0;background-color:#2196f3;opacity:.3}.mu-linear-progress-indeterminate{position:absolute;top:0;bottom:0;width:40%;background-color:#2196f3;-webkit-animation:mu-linear-progress-animate .84s cubic-bezier(.445,.05,.55,.95);animation:mu-linear-progress-animate .84s cubic-bezier(.445,.05,.55,.95);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.mu-linear-progress-determinate{position:absolute;top:0;bottom:0;left:0;background-color:#2196f3;-webkit-transition:width .3s linear;transition:width .3s linear}@-webkit-keyframes mu-linear-progress-animate{0%{left:-40%}to{left:100%}}@keyframes mu-linear-progress-animate{0%{left:-40%}to{left:100%}}.mu-focus-ripple{position:absolute;height:100%;width:100%;border-radius:50%;opacity:.16;background-color:currentColor;-webkit-animation:mu-pulsate .75s cubic-bezier(.445,.05,.55,.95);animation:mu-pulsate .75s cubic-bezier(.445,.05,.55,.95);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:alternate;animation-direction:alternate}@-webkit-keyframes mu-pulsate{0%{-webkit-transform:scale(.72);transform:scale(.72)}to{-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes mu-pulsate{0%{-webkit-transform:scale(.72);transform:scale(.72)}to{-webkit-transform:scale(.85);transform:scale(.85)}}.mu-circle-wrapper{display:inline-block;position:relative;width:48px;height:48px}.mu-circle-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}.mu-circle-wrapper .mu-circle{border-radius:50%}.mu-circle-wrapper .left{float:left!important}.mu-circle-wrapper .right{float:right!important}.mu-circle-spinner{position:absolute;width:100%;height:100%;opacity:0;border-color:#2196f3;opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-spinner.mu-secondary-color{border-color:#ff4081;background-color:transparent}.mu-circle-spinner.mu-success-color{border-color:#4caf50;background-color:transparent}.mu-circle-spinner.mu-warning-color{border-color:#fdd835;background-color:transparent}.mu-circle-spinner.mu-info-color{border-color:#2196f3;background-color:transparent}.mu-circle-spinner.mu-error-color{border-color:#f44336;background-color:transparent}.mu-circle-spinner.mu-primary-color{background-color:transparent}.mu-circle-spinner.mu-inverse{color:inherit}.mu-circle-clipper{display:inline-block;position:relative;width:50%}.mu-circle-clipper,.mu-circle-gap-patch{height:100%;overflow:hidden;border-color:inherit}.mu-circle-gap-patch{position:absolute;top:0;left:45%;width:10%}.mu-circle-gap-patch .mu-circle{width:1000%;left:-450%}.mu-circle-clipper .mu-circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.mu-circle-spinner.active .mu-circle-clipper.left .mu-circle{-webkit-animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-spinner.active .mu-circle-clipper.right .mu-circle{-webkit-animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-clipper.left .mu-circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.mu-circle-clipper.right .mu-circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(3turn)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(3turn);transform:rotate(3turn)}}@-webkit-keyframes left-spin{0%{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{0%{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{0%{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{0%{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(1turn)}}@keyframes container-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.mu-circular-progress{display:inline-block;position:relative;overflow:hidden}.mu-circular-progress.mu-secondary-color{background:transparent}.mu-circular-progress.mu-secondary-color .mu-circular-progress-determinate-path{stroke:#ff4081}.mu-circular-progress.mu-success-color{background:transparent}.mu-circular-progress.mu-success-color .mu-circular-progress-determinate-path{stroke:#4caf50}.mu-circular-progress.mu-warning-color{background:transparent}.mu-circular-progress.mu-warning-color .mu-circular-progress-determinate-path{stroke:#fdd835}.mu-circular-progress.mu-info-color{background:transparent}.mu-circular-progress.mu-info-color .mu-circular-progress-determinate-path{stroke:#2196f3}.mu-circular-progress.mu-error-color{background:transparent}.mu-circular-progress.mu-error-color .mu-circular-progress-determinate-path{stroke:#f44336}.mu-circular-progress.mu-primary-color{background:transparent}.mu-circular-progress.mu-inverse{color:inherit}.mu-circular-progress-determinate{position:relative}.mu-circular-progress-determinate-path{stroke:#2196f3;stroke-linecap:round;-webkit-transition:all .3s linear;transition:all .3s linear}.mu-checkbox{position:relative;display:inline-block;height:24px;line-height:24px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;color:rgba(0,0,0,.54)}.mu-checkbox input[type=checkbox]{display:none}.mu-checkbox.disabled{cursor:not-allowed;color:rgba(0,0,0,.38)}.mu-checkbox-checked{color:#2196f3}.mu-checkbox-checked .mu-checkbox-icon-uncheck{opacity:0;-webkit-transition:opacity .65s cubic-bezier(.23,1,.32,1) .15s;transition:opacity .65s cubic-bezier(.23,1,.32,1) .15s}.mu-checkbox-checked .mu-checkbox-icon-checked{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity 0ms cubic-bezier(.23,1,.32,1),-webkit-transform .8s cubic-bezier(.23,1,.32,1);transition:opacity 0ms cubic-bezier(.23,1,.32,1),-webkit-transform .8s cubic-bezier(.23,1,.32,1);transition:opacity 0ms cubic-bezier(.23,1,.32,1),transform .8s cubic-bezier(.23,1,.32,1);transition:opacity 0ms cubic-bezier(.23,1,.32,1),transform .8s cubic-bezier(.23,1,.32,1),-webkit-transform .8s cubic-bezier(.23,1,.32,1)}.mu-checkbox-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.mu-checkbox-icon{width:24px;height:24px;vertical-align:middle;position:relative;margin-right:8px}.mu-checkbox.label-left .mu-checkbox-icon{margin-right:0;margin-left:8px}.mu-checkbox.no-label .mu-checkbox-icon{margin-left:0;margin-right:0}.mu-checkbox-label{color:rgba(0,0,0,.87)}.mu-checkbox.disabled .mu-checkbox-label{color:rgba(0,0,0,.38)}.mu-checkbox-svg-icon{display:inline-block;fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-checkbox-icon-uncheck{position:absolute;left:0;top:0;opacity:1;-webkit-transition:opacity 1s cubic-bezier(.23,1,.32,1) .2s;transition:opacity 1s cubic-bezier(.23,1,.32,1) .2s}.mu-checkbox-icon-checked{position:absolute;left:0;top:0;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform 0ms cubic-bezier(.23,1,.32,1) .45s;transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform 0ms cubic-bezier(.23,1,.32,1) .45s;transition:opacity .45s cubic-bezier(.23,1,.32,1),transform 0ms cubic-bezier(.23,1,.32,1) .45s;transition:opacity .45s cubic-bezier(.23,1,.32,1),transform 0ms cubic-bezier(.23,1,.32,1) .45s,-webkit-transform 0ms cubic-bezier(.23,1,.32,1) .45s}.mu-checkbox-ripple-wrapper{width:48px;height:48px;top:-12px;left:-12px;position:absolute}.mu-checkbox.label-left .mu-checkbox-ripple-wrapper{right:-12px;left:auto}.mu-chip{border-radius:16px;line-height:32px;white-space:nowrap;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#e0e0e0;color:rgba(0,0,0,.87);font-size:13px;padding:0 12px;outline:none;cursor:default}.mu-chip .mu-avatar:first-child{margin-left:-12px;margin-right:4px}.mu-chip.is-deletable,.mu-chip:active,.mu-chip:focus{background-color:#ccc;-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mu-chip:hover{background-color:#ccc;cursor:pointer}.mu-chip:hover .mu-chip-delete-icon{color:rgba(0,0,0,.4)}.mu-chip.mu-primary-color{background-color:#2196f3}.mu-chip.mu-secondary-color{background-color:#ff4081}.mu-chip.mu-success-color{background-color:#4caf50}.mu-chip.mu-warning-color{background-color:#fdd835}.mu-chip.mu-info-color{background-color:#2196f3}.mu-chip.mu-error-color{background-color:#f44336}.mu-chip-delete-icon{display:inline-block;margin-right:-8px;margin-left:4px;color:rgba(0,0,0,.26);fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .45s cubic-bezier(.23,1,.32,1);transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-card{background-color:#fff;position:relative;border-radius:2px;-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mu-card__raised{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mu-card-actions{padding:8px;position:relative}.mu-card-header{padding:16px;font-weight:500;position:relative;white-space:nowrap}.mu-card-header .mu-avatar{margin-right:16px}.mu-card-header-title{display:inline-block;vertical-align:top;white-space:normal;padding-right:90px}.mu-card-header-title .mu-card-title{font-size:15px;color:rgba(0,0,0,.87)}.mu-card-header-title .mu-card-sub-title{font-size:14px;color:rgba(0,0,0,.57)}.mu-card-media{position:relative}.mu-card-media>img{width:100%;max-width:100%;min-width:100%;display:block;vertical-align:top}.mu-card-media-title{position:absolute;left:0;right:0;bottom:0;padding:16px;background-color:rgba(0,0,0,.54)}.mu-card-media-title .mu-card-title{font-size:24px;color:hsla(0,0%,100%,.87);line-height:36px}.mu-card-media-title .mu-card-sub-title{color:hsla(0,0%,100%,.54);font-size:14px}.mu-card-text{padding:16px;font-size:14px;color:rgba(0,0,0,.87)}.mu-card-title-container{padding:16px;position:relative}.mu-card-title-container .mu-card-title{font-size:24px;color:rgba(0,0,0,.87);line-height:36px}.mu-card-title-container .mu-card-sub-title{font-size:14px;color:rgba(0,0,0,.54);display:block}.mu-bottom-nav{height:56px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;text-align:center;outline:none;position:relative;color:rgba(0,0,0,.54)}.mu-bottom-nav-shift{background-color:#2196f3;color:hsla(0,0%,100%,.7)}.mu-bottom-nav-shift-wrapper{height:100%;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center}.mu-bottom-item{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:80px;max-width:168px;position:relative;height:100%;padding:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-decoration:none;border:none;outline:none;-webkit-transition:all .4s cubic-bezier(.445,.05,.55,.95);transition:all .4s cubic-bezier(.445,.05,.55,.95);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:6px;cursor:pointer;color:inherit}.mu-bottom-nav-shift .mu-bottom-item{padding:8px 12px 10px;min-width:56px;max-width:96px}.mu-bottom-item-wrapper{display:block;height:100%}.mu-bottom-item-active{padding-top:6px;padding-bottom:5px;color:#2196f3}.mu-bottom-item-active.is-shift{color:#fff}.mu-bottom-item-active .mu-bottom-item-text{font-size:14px}.mu-bottom-nav-shift .mu-bottom-item-active{-webkit-box-flex:1.7;-ms-flex:1.7;flex:1.7;min-width:96px;max-width:168px;padding-top:6px;padding-bottom:5px}.mu-bottom-item-text{display:block;text-align:center;font-size:12px;-webkit-transition:opacity .4s cubic-bezier(.23,1,.32,1),font-size .3s cubic-bezier(.23,1,.32,1),-webkit-transform .4s cubic-bezier(.23,1,.32,1);transition:opacity .4s cubic-bezier(.23,1,.32,1),font-size .3s cubic-bezier(.23,1,.32,1),-webkit-transform .4s cubic-bezier(.23,1,.32,1);transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1),font-size .3s cubic-bezier(.23,1,.32,1);transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1),font-size .3s cubic-bezier(.23,1,.32,1),-webkit-transform .4s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-bottom-nav-shift .mu-bottom-item-text{opacity:0;-webkit-transform:scale(1) translate3d(0,6px,0);transform:scale(1) translate3d(0,6px,0)}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-text{-webkit-transform:scale(1) translate3d(0,2px,0);transform:scale(1) translate3d(0,2px,0);opacity:1}.mu-bottom-item-icon{display:block;margin:auto;-webkit-transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;width:24px}.mu-bottom-nav-shift .mu-bottom-item-icon{-webkit-transform:translate3d(0,8px,0);transform:translate3d(0,8px,0)}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-icon{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0)}.mu-elevation-0{-webkit-box-shadow:none;box-shadow:none}.mu-elevation-1{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mu-elevation-2{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mu-elevation-3{-webkit-box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12);box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mu-elevation-4{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mu-elevation-5{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mu-elevation-6{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mu-elevation-7{-webkit-box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mu-elevation-8{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mu-elevation-9{-webkit-box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12);box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mu-elevation-10{-webkit-box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mu-elevation-11{-webkit-box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12);box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mu-elevation-12{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mu-elevation-13{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mu-elevation-14{-webkit-box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12);box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mu-elevation-15{-webkit-box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12);box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mu-elevation-16{-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mu-elevation-17{-webkit-box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12);box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mu-elevation-18{-webkit-box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12);box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mu-elevation-19{-webkit-box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12);box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mu-elevation-20{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12);box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mu-elevation-21{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12);box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mu-elevation-22{-webkit-box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12);box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mu-elevation-23{-webkit-box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12);box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mu-elevation-24{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mu-appbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:start;align-self:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:rgba(0,0,0,.87);background-color:#f5f5f5;height:56px;padding:0 4px;z-index:100}.mu-appbar .mu-icon-button{color:inherit}.mu-appbar .mu-flat-button{color:inherit}.mu-appbar .mu-flat-button,.mu-appbar .mu-menu{height:100%;line-height:100%;min-width:auto}.mu-appbar-left,.mu-appbar-right{-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%}.mu-appbar-left{padding-right:8px}.mu-appbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-left:12px;padding-right:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:20px;font-weight:400;line-height:56px}@media only screen and (min-width:600px){.mu-appbar-title{line-height:64px}.mu-appbar{height:64px}.mu-appbar-title{font-size:24px}}.mu-drawer{width:256px;position:fixed;top:0;bottom:0;background-color:#fff;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-transition-property:visibility,-webkit-transform;transition-property:visibility,-webkit-transform;transition-property:transform,visibility;transition-property:transform,visibility,-webkit-transform;-webkit-transition-duration:.45s;transition-duration:.45s;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);border-radius:0;left:0;visibility:hidden;z-index:200}.mu-drawer::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.mu-drawer.is-right{right:0;left:auto;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mu-drawer.is-open{-webkit-transform:translateZ(0);transform:translateZ(0);visibility:visible}.mu-paper{-webkit-transition:all .45s cubic-bezier(.23,1,.32,1);transition:all .45s cubic-bezier(.23,1,.32,1);color:rgba(0,0,0,.87);background-color:#fff}.mu-paper-round{border-radius:2px}.mu-paper-circle{border-radius:50%}.mu-overlay{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#000;opacity:.4;z-index:1000}.mu-expand-enter-active,.mu-expand-leave-active{-webkit-transition:all .45s cubic-bezier(.23,1,.32,1);transition:all .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.mu-fade-transition-enter-active,.mu-fade-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1)}.mu-fade-transition-enter,.mu-fade-transition-leave-active{opacity:0!important}.mu-popover-transition-enter-active,.mu-popover-transition-leave-active{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-popover-transition-enter,.mu-popover-transition-leave-active{-webkit-transform:scale(.6);transform:scale(.6);opacity:0}.mu-bottom-sheet-transition-enter-active,.mu-bottom-sheet-transition-leave-active{-webkit-transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-bottom-sheet-transition-enter,.mu-bottom-sheet-transition-leave-active{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.mu-slide-top-transition-enter-active,.mu-slide-top-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-slide-top-transition-enter,.mu-slide-top-transition-leave-active{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);opacity:0}.mu-slide-bottom-transition-enter-active,.mu-slide-bottom-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-slide-bottom-transition-enter,.mu-slide-bottom-transition-leave-active{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);opacity:0}.mu-slide-left-transition-enter-active,.mu-slide-left-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-slide-left-transition-enter,.mu-slide-left-transition-leave-active{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);opacity:0}.mu-slide-right-transition-enter-active,.mu-slide-right-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-slide-right-transition-enter,.mu-slide-right-transition-leave-active{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.mu-scale-transition-enter-active,.mu-scale-transition-leave-active{-webkit-transition:all .45s cubic-bezier(.23,1,.32,1);transition:all .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-scale-transition-enter,.mu-scale-transition-leave-active{-webkit-transform:scale(0);transform:scale(0);opacity:0}.mu-button{display:inline-block;overflow:hidden;position:relative;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.23,1,.32,1);transition-timing-function:cubic-bezier(.23,1,.32,1);text-decoration:none;text-align:center;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;text-transform:uppercase;margin:0;padding:0;cursor:pointer;-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0}.mu-button .mu-icon-left{margin-right:8px}.mu-button .mu-icon-right{margin-left:8px}.mu-button.hover:before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background-color:currentColor;opacity:.12}.mu-button-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;height:100%}.mu-raised-button{font-size:14px;min-width:88px;height:36px;line-height:36px;border-radius:2px;background-color:#fff;color:rgba(0,0,0,.87);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mu-raised-button.mu-inverse .mu-circle-ripple{opacity:.3}.mu-raised-button.disabled{color:rgba(0,0,0,.3);cursor:not-allowed;background-color:#e6e6e6}.mu-raised-button.disabled,.mu-raised-button.disabled.hover,.mu-raised-button.disabled:active,.mu-raised-button.disabled:hover{-webkit-box-shadow:none;box-shadow:none}.mu-raised-button.focus{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mu-raised-button:active{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mu-raised-button .mu-button-wrapper{padding:0 16px}.mu-raised-button.mu-button-round{border-radius:36px}.mu-raised-button.mu-button-full-width{width:100%}.mu-raised-button.mu-button-small{font-size:13px;height:28px}.mu-raised-button.mu-button-small.mu-button-round{border-radius:28px}.mu-raised-button.mu-button-small .mu-button-wrapper{padding:0 8px}.mu-raised-button.mu-button-small .mu-icon{font-size:20px}.mu-raised-button.mu-button-large{font-size:15px;height:44px}.mu-raised-button.mu-button-large.mu-button-round{border-radius:44px}.mu-raised-button.mu-button-large .mu-button-wrapper{padding:0 32px}.mu-raised-button.mu-button-large .mu-icon{font-size:28px}.mu-flat-button{border-radius:2px;height:36px;line-height:36px;min-width:88px;font-size:14px;color:rgba(0,0,0,.87);background:transparent}.mu-flat-button.disabled{color:rgba(0,0,0,.38);cursor:not-allowed;background:none}.mu-flat-button .mu-button-wrapper{padding:0 16px}.mu-flat-button.mu-button-small{font-size:13px;height:28px}.mu-flat-button.mu-button-small .mu-button-wrapper{padding:0 8px}.mu-flat-button.mu-button-small .mu-icon{font-size:20px}.mu-flat-button.mu-button-large{font-size:15px;height:44px}.mu-flat-button.mu-button-large .mu-button-wrapper{padding:0 32px}.mu-flat-button.mu-button-large .mu-icon{font-size:28px}.mu-icon-button{line-height:1;width:48px;height:48px;border-radius:50%;font-size:24px;padding:12px;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;color:inherit;background-color:transparent}.mu-icon-button.disabled{color:rgba(0,0,0,.38);cursor:not-allowed}.mu-icon-button.mu-button-small{width:32px;height:32px}.mu-icon-button.mu-button-small .mu-icon{font-size:20px}.mu-icon-button.mu-button-large{width:56px;height:56px}.mu-icon-button.mu-button-large .mu-icon{font-size:28px}.mu-fab-button{line-height:1;width:56px;height:56px;border-radius:50%;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#2196f3;color:#fff;-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mu-fab-button.hover,.mu-fab-button:active{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mu-fab-button.disabled{color:rgba(0,0,0,.3);cursor:not-allowed;background-color:#e6e6e6}.mu-fab-button.disabled,.mu-fab-button.disabled.hover,.mu-fab-button.disabled:active,.mu-fab-button.disabled:hover{-webkit-box-shadow:none;box-shadow:none}.mu-fab-button .mu-circle-ripple{opacity:.3}.mu-fab-button.mu-button-small{width:40px;height:40px}.mu-fab-button.mu-button-small .mu-icon{font-size:18px}.mu-fab-button.mu-button-large{width:72px;height:72px}.mu-fab-button.mu-button-large .mu-icon{font-size:30px}.mu-text-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.mu-text-field-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:none;background:none;border-radius:0 0 0 0;-webkit-box-shadow:none;box-shadow:none;display:block;padding:0;margin:0;width:100%;height:32px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;color:rgba(0,0,0,.87);font-family:inherit;position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1}.mu-text-field-action{padding:0 6px;cursor:pointer}.mu-text-field-action,.mu-text-field-suffix{-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0}.mu-text-field-suffix{color:rgba(0,0,0,.54);white-space:nowrap}.mu-text-field-textarea{resize:vertical;line-height:1.5;position:relative;height:100%;resize:none}.mu-text-field-multiline{width:100%;position:relative}.mu-text-field-textarea-hide{width:100%;height:auto;resize:none;position:absolute;padding:0;overflow:auto;visibility:hidden}.mu-input{font-size:16px;width:256px;min-height:48px;display:inline-block;position:relative;color:rgba(0,0,0,.54);margin-bottom:16px;padding-bottom:12px;padding-top:4px}.mu-input.has-label{padding-top:28px;padding-bottom:12px}.mu-input.is-solo{padding-top:8px;padding-bottom:8px}.mu-input.full-width{width:100%}.mu-input.has-icon{padding-left:56px}.mu-input.has-label{min-height:72px}.mu-input.is-solo{margin-bottom:0}.mu-input__focus{color:#2196f3}.mu-input__error{color:#f44336}.mu-input-icon{position:absolute;left:16px;top:8px}.mu-input.has-label .mu-input-icon{top:32px}.mu-input.is-solo .mu-input-icon{top:12px}.mu-input-content{height:100%;position:relative}.mu-input.disabled .mu-input-content{color:rgba(0,0,0,.38);cursor:not-allowed}.mu-input-help{position:absolute;font-size:12px;line-height:12px;bottom:-16px;color:rgba(0,0,0,.54);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;left:0;right:0}.mu-input__error .mu-input-help{color:#f44336}.mu-input.disabled .mu-input-help{color:inherit}.mu-input-action-icon{-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;padding:0 6px;cursor:pointer}.mu-input-suffix-text{padding-left:4px}.mu-input-prefix-text{padding-right:4px}.mu-input-prefix-text,.mu-input-suffix-text{color:rgba(0,0,0,.54);white-space:nowrap;-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0}.mu-input-label{line-height:20px;-webkit-transition:all .45s cubic-bezier(.23,1,.32,1);transition:all .45s cubic-bezier(.23,1,.32,1);z-index:1;cursor:text;-webkit-transform:translateZ(0) scale(.75);transform:translateZ(0) scale(.75);-webkit-transform-origin:left top;transform-origin:left top;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-input.has-label .mu-input-label{top:8px;position:absolute}.mu-input.has-label .mu-input-label.float{-webkit-transform:translate3d(0,28px,0) scale(1);transform:translate3d(0,28px,0) scale(1);color:rgba(0,0,0,.38)}.mu-input-line{margin:0;height:1px;border:none;background-color:rgba(0,0,0,.12);left:0;right:0;bottom:-1px;position:absolute}.mu-input-line.disabled{height:auto;background-color:transparent;border-bottom:2px dotted rgba(0,0,0,.38)}.mu-input-focus-line,.mu-input__error .mu-input-line{background-color:currentColor}.mu-input-focus-line{margin:0;height:2px;border:none;position:absolute;left:0;right:0;bottom:-1px;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1)}.mu-input-focus-line.focus{-webkit-transform:scaleX(1);transform:scaleX(1)}.mu-dialog-wrapper{position:fixed;left:0;top:0;right:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mu-dialog{padding:0;max-width:75%;background-color:#fff;border-radius:2px;font-size:16px;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mu-dialog-scrollable .mu-dialog-body{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.mu-dialog-fullscreen{position:absolute;left:0;right:0;top:0;bottom:0;max-width:100%!important;width:100%!important;height:100%!important;max-height:100%!important;border-radius:0}.mu-dialog-fullscreen .mu-dialog-body{padding:0}.mu-dialog-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:24px 24px 20px;margin:0;font-size:22px;font-weight:400;line-height:32px;color:rgba(0,0,0,.87)}.mu-dialog-title+.mu-dialog-body{padding-top:0}.mu-dialog-body{padding:24px 24px 20px;color:rgba(0,0,0,.6)}.mu-dialog-actions{min-height:48px;padding:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mu-dialog-actions .mu-raised-button+.mu-raised-button{margin-left:10px}.mu-dialog-transition-enter-active,.mu-dialog-transition-leave-active{-webkit-transition:opacity .45s cubic-bezier(.23,1,.32,1);transition:opacity .45s cubic-bezier(.23,1,.32,1)}.mu-dialog-transition-enter-active .mu-dialog.mu-scale,.mu-dialog-transition-enter-active .mu-dialog.mu-slide-bottom,.mu-dialog-transition-enter-active .mu-dialog.mu-slide-left,.mu-dialog-transition-enter-active .mu-dialog.mu-slide-right,.mu-dialog-transition-enter-active .mu-dialog.mu-slide-top,.mu-dialog-transition-leave-active .mu-dialog.mu-scale,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-bottom,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-left,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-right,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-top{-webkit-transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1);transition:transform .45s cubic-bezier(.23,1,.32,1),-webkit-transform .45s cubic-bezier(.23,1,.32,1)}.mu-dialog-transition-enter,.mu-dialog-transition-leave-active{opacity:0}.mu-dialog-transition-enter .mu-dialog,.mu-dialog-transition-leave-active .mu-dialog{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-dialog-transition-enter .mu-dialog.mu-slide-top,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-top{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.mu-dialog-transition-enter .mu-dialog.mu-slide-bottom,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-bottom{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.mu-dialog-transition-enter .mu-dialog.mu-slide-right,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mu-dialog-transition-enter .mu-dialog.mu-slide-left,.mu-dialog-transition-leave-active .mu-dialog.mu-slide-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mu-dialog-transition-enter .mu-dialog.mu-scale,.mu-dialog-transition-leave-active .mu-dialog.mu-scale{-webkit-transform:scale(.6);transform:scale(.6)}.mu-select{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;outline:none;cursor:pointer}.mu-select.is-disabled,.mu-select.is-readonly{cursor:default}.mu-select-content{-webkit-box-flex:1;-ms-flex:1;flex:1;color:rgba(0,0,0,.87);width:100%;min-height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mu-select-content .mu-chip{margin:4px 4px 4px 0}.mu-select-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:none;background:none;border-radius:0 0 0 0;-webkit-box-shadow:none;box-shadow:none;display:block;padding:0;margin:0;width:100%;height:32px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;color:rgba(0,0,0,.87);font-family:inherit;position:relative;-webkit-box-flex:1;-ms-flex:1;flex:1;cursor:inherit}.mu-select-input.is-enable{cursor:text}.mu-select-input.is-break{min-width:100%}.mu-select-action{-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;padding:0 6px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.mu-select-icon{fill:currentColor;width:24px;height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:.3s cubic-bezier(.23,1,.32,1);transition:.3s cubic-bezier(.23,1,.32,1)}.mu-select.is-open .mu-select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.mu-selection-text.is-active{color:#2196f3}.mu-select-no-data{height:36px;padding:0 16px;line-height:36px;color:rgba(0,0,0,.38)}.mu-option-list.mu-list{outline:none;overflow:auto;-webkit-overflow-scrolling:touch;overflow-x:hidden;overflow-y:auto}.mu-option.is-selected .mu-item{color:#ff4081}.mu-option.is-focused{background-color:rgba(0,0,0,.1)}.mu-option.is-disabled .mu-item{color:rgba(0,0,0,.38)}.mu-list{padding:8px 0;width:100%;position:relative;overflow-x:hidden;overflow-y:visible;margin:0}.mu-list,.mu-list>li{display:block}.mu-list .mu-sub-header:first-child{margin-top:-8px}.mu-list .mu-list{padding:0}.mu-item-wrapper{display:block;color:inherit;position:relative;outline:none;cursor:pointer}.mu-item-wrapper.hover{background-color:rgba(0,0,0,.1)}.mu-item-wrapper.disabled{cursor:default}.mu-list-dense .mu-item{height:36px}.mu-list-dense .mu-icon{font-size:22px}.mu-list-dense .mu-item-title{font-size:14px}.mu-item{height:48px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 16px;color:rgba(0,0,0,.87)}.mu-item.has-avatar{height:56px}.mu-list-two-line .mu-item{height:72px}.mu-list-three-line .mu-item{height:88px}.mu-item.is-selected{color:#2196f3}.mu-item.mu-icon-left{margin-right:16px}.mu-item-action{min-width:56px;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:rgba(0,0,0,.54)}.mu-item-action:first-child .mu-icon-button{margin-left:-12px}.mu-item-action:last-child .mu-icon-button{margin-right:-12px}.mu-item-action.is-more{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;padding-top:8px;padding-bottom:8px}.mu-list-three-line .mu-item-action .mu-avatar{margin-top:-18px}.mu-item-content,.mu-item-title{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:left;min-width:1px}.mu-item-content+.mu-item-action:not(.is-more),.mu-item-title+.mu-item-action:not(.is-more){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.mu-item-title{font-size:16px;height:24px;line-height:24px}.mu-item-sub-title,.mu-item-title{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-wrap:break-word}.mu-item-sub-title{font-size:14px;line-height:1.5;color:rgba(0,0,0,.54)}.mu-list.mu-list-three-line .mu-item-sub-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.mu-item-after-text{color:rgba(0,0,0,.54);font-size:12px}.mu-popover{position:fixed;background:#fff;border-radius:2px;max-height:100%;max-width:80%;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mu-popover.transition-bottom-start{-webkit-transform-origin:left top;transform-origin:left top}.mu-popover.transition-bottom{-webkit-transform-origin:center top;transform-origin:center top}.mu-popover.transition-bottom.mu-popover-transition-enter,.mu-popover.transition-bottom.mu-popover-transition-leave-active{-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mu-popover.transition-bottom-end{-webkit-transform-origin:right top;transform-origin:right top}.mu-popover.transition-top-start{-webkit-transform-origin:left bottom;transform-origin:left bottom}.mu-popover.transition-top{-webkit-transform-origin:center bottom;transform-origin:center bottom}.mu-popover.transition-top.mu-popover-transition-enter,.mu-popover.transition-top.mu-popover-transition-leave-active{-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mu-popover.transition-top-end{-webkit-transform-origin:right bottom;transform-origin:right bottom}.mu-popover.transition-left-start{-webkit-transform-origin:right top;transform-origin:right top}.mu-popover.transition-left{-webkit-transform-origin:right center;transform-origin:right center}.mu-popover.transition-left-end{-webkit-transform-origin:right bottom;transform-origin:right bottom}.mu-popover.transition-right-start{-webkit-transform-origin:left top;transform-origin:left top}.mu-popover.transition-right{-webkit-transform-origin:left center;transform-origin:left center}.mu-popover.transition-right-end{-webkit-transform-origin:left bottom;transform-origin:left bottom}
+
+/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}body{font-family:Roboto,Lato,sans-serif;line-height:1.5;font-size:14px;font-weight:400;width:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:#fafafa;color:rgba(0,0,0,.87)}pre{white-space:pre-wrap;word-break:break-all;margin:0}a{text-decoration:none;color:#ff4081;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.mu-primary-color{background-color:#2196f3}.mu-secondary-color{background-color:#ff4081}.mu-success-color{background-color:#4caf50}.mu-warning-color{background-color:#fdd835}.mu-info-color{background-color:#2196f3}.mu-error-color{background-color:#f44336}.mu-inverse{color:#fff}.mu-primary-text-color{color:#2196f3}.mu-secondary-text-color{color:#ff4081}.mu-success-text-color{color:#4caf50}.mu-warning-text-color{color:#fdd835}.mu-info-text-color{color:#2196f3}.mu-error-text-color{color:#f44336}
\ No newline at end of file
diff --git a/public/dist/css/chunk-vendors.d313cf4b.css b/public/dist/css/chunk-vendors.d313cf4b.css
new file mode 100644
index 000000000..0e46e748a
--- /dev/null
+++ b/public/dist/css/chunk-vendors.d313cf4b.css
@@ -0,0 +1,11 @@
+.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{border-radius:4px;overflow:hidden}.fa-icon{display:inline-block;fill:currentColor}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-spin{-webkit-animation:fa-spin 1s linear 0s infinite;animation:fa-spin 1s linear 0s infinite}.fa-inverse{color:#fff}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-notification-fade-leave-active{opacity:0}.el-button,.el-input__inner{-webkit-appearance:none;outline:0}.el-message-box,.el-popup-parent--hidden{overflow:hidden}.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}.el-card{border-radius:4px;overflow:hidden}.el-upload-cover__title,.el-upload-list__item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-progress-bar,.el-progress-bar__inner:after{display:inline-block;vertical-align:middle}.el-progress-bar__inner:after{content:""}.el-progress-bar__innerText{display:inline-block;vertical-align:middle}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-cover:after{content:""}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24{position:relative}.el-col-0{display:none}.el-row{position:relative}.el-row:after,.el-row:before{content:""}.el-row--flex:after,.el-row--flex:before{display:none}.el-alert-fade-enter,.el-alert-fade-leave-active{opacity:0}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.el-form--inline .el-form-item,.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item:after,.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group,.el-form-item__label{vertical-align:middle}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{border-color:#f56c6c}.el-date-table td,.el-date-table td div{height:30px}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-checkbox,.el-checkbox__input{white-space:nowrap}.el-checkbox-button__inner,.el-tag{-webkit-box-sizing:border-box;white-space:nowrap}.el-table--hidden,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-checkbox-button__inner,.el-table th{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;white-space:nowrap}.el-checkbox-button__inner{vertical-align:middle}.el-table,.el-tag{-webkit-box-sizing:border-box}.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing){outline-width:0}.el-table .hidden-columns{visibility:hidden}.el-select-dropdown__item,.el-tag{white-space:nowrap;-webkit-box-sizing:border-box}.el-switch__core,.el-switch__label{vertical-align:middle}.el-switch__core:after{content:""}.el-checkbox-button__inner,.el-checkbox__input{white-space:nowrap;vertical-align:middle;outline:0}.el-checkbox{color:#606266;font-weight:500;white-space:nowrap}.el-checkbox-button__inner{font-weight:500;color:#606266;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio,.el-radio__input{white-space:nowrap;line-height:1;outline:0}.el-radio{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.el-menu:after,.el-menu:before,.el-radio__inner:after{content:""}.el-menu--collapse .el-submenu .el-menu{z-index:10}.el-button{-moz-user-select:none;-webkit-user-select:none}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{z-index:10}.el-dialog{background:#fff}.el-input__inner,.el-tag{-webkit-box-sizing:border-box}.el-input__suffix{pointer-events:none}.el-tag{display:inline-block}.el-tag .el-icon-close{vertical-align:middle}.el-pagination--small .arrow.disabled{visibility:hidden}.el-pager li{background:#fff}.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-setting:before{content:"\E6CA"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-finished:before{content:"\E6CD"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort:before{content:"\E6D2"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-delete:before{content:"\E6D7"}.el-icon-minus:before{content:"\E6D8"}.el-icon-plus:before{content:"\E6D9"}.el-icon-check:before{content:"\E6DA"}.el-icon-close:before{content:"\E6DB"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-key:before{content:"\E6E2"}.el-icon-user:before{content:"\E6E3"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-top:before{content:"\E6E6"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-star-off:before{content:"\E717"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-circle-check:before{content:"\E720"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-bell:before{content:"\E725"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-help:before{content:"\E73D"}.el-icon-news:before{content:"\E73E"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-data-line:before{content:"\E76D"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-video-camera:before{content:"\E772"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-search:before{content:"\E778"}.el-icon-camera:before{content:"\E779"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-upload2:before{content:"\E77B"}.el-icon-download:before{content:"\E77C"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit:before{content:"\E78C"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-date:before{content:"\E78E"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-share:before{content:"\E793"}.el-icon-more:before{content:"\E794"}.el-icon-phone:before{content:"\E795"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-star-on:before{content:"\E797"}.el-icon-menu:before{content:"\E798"}.el-icon-message-solid:before{content:"\E799"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-success:before{content:"\E79C"}.el-icon-error:before{content:"\E79D"}.el-icon-location:before{content:"\E79E"}.el-icon-picture:before{content:"\E79F"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-info:before{content:"\E7A1"}.el-icon-remove:before{content:"\E7A2"}.el-icon-warning:before{content:"\E7A3"}.el-icon-question:before{content:"\E7A4"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-goods:before{content:"\E7C2"}.el-icon-upload:before{content:"\E7C3"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-dialog,.el-pager li{background:#fff;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager,.el-radio,.el-table th{-webkit-user-select:none;-moz-user-select:none}.el-date-table,.el-radio,.el-table th{-ms-user-select:none}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-menu:after,.el-menu:before,.el-radio__inner:after,.el-switch__core:after{content:""}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0;margin-right:30px}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item,.el-select .el-tag,.el-table{-webkit-box-sizing:border-box}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0);transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table th div{padding-right:10px;overflow:hidden;text-overflow:ellipsis}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell,.el-table th div{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{white-space:nowrap;overflow:hidden;-ms-user-select:none;user-select:none}.el-date-table,.el-table th,.el-time-panel{-webkit-user-select:none;-moz-user-select:none}.el-table th div{line-height:40px;white-space:nowrap}.el-table th>.cell,.el-table th div{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;vertical-align:middle;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal;word-break:break-all;line-height:23px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,.el-table__body tr.current-row>td,.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:14px;vertical-align:middle;margin-right:5px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;text-align:center;cursor:pointer;position:relative}.el-date-table td,.el-date-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td div{padding:3px 0}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409eff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel,.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-ms-user-select:none;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper,.el-time-panel{-webkit-user-select:none;-moz-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{position:relative;padding:10px 15px;color:#606266;font-size:14px}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-container,.el-container.is-vertical,.el-link,.el-steps--vertical{-webkit-box-direction:normal}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item__content .el-input-group,.el-form-item__label,.el-tag .el-icon-close{vertical-align:middle}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item.is-success .el-input__inner,.el-form-item.is-success .el-input__inner:focus,.el-form-item.is-success .el-textarea__inner,.el-form-item.is-success .el-textarea__inner:focus{border-color:#67c23a}.el-form-item.is-success .el-input-group__append .el-input__inner,.el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-success .el-input__validateIcon{color:#67c23a}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409eff inset;box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-alert,.el-tag{-webkit-box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--top.el-tabs--card .el-tabs__item:last-child,.el-tabs--top .el-tabs--left .el-tabs__item:last-child,.el-tabs--top .el-tabs--right .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tag,.slideInLeft-transition,.slideInRight-transition{display:inline-block}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tag{background-color:rgba(64,158,255,.1);padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(64,158,255,.2);white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;top:-1px;right:-5px;color:#409eff}.el-tag .el-icon-close:before{display:block}.el-tag .el-icon-close:hover{background-color:#409eff;color:#fff}.el-tag--info,.el-tag--info .el-tag__close{color:#909399}.el-tag--info{background-color:rgba(144,147,153,.1);border-color:rgba(144,147,153,.2)}.el-tag--info.is-hit{border-color:#909399}.el-tag--info .el-tag__close:hover{background-color:#909399;color:#fff}.el-tag--success{background-color:rgba(103,194,58,.1);border-color:rgba(103,194,58,.2);color:#67c23a}.el-tag--success.is-hit{border-color:#67c23a}.el-tag--success .el-tag__close{color:#67c23a}.el-tag--success .el-tag__close:hover{background-color:#67c23a;color:#fff}.el-tag--warning{background-color:rgba(230,162,60,.1);border-color:rgba(230,162,60,.2);color:#e6a23c}.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--warning .el-tag__close:hover{background-color:#e6a23c;color:#fff}.el-tag--danger{background-color:rgba(245,108,108,.1);border-color:rgba(245,108,108,.2);color:#f56c6c}.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--danger .el-tag__close:hover{background-color:#f56c6c;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{vertical-align:middle;display:inline-block}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-ms-user-select:none;user-select:none}.el-button,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px}.el-slider.is-vertical .el-slider__button-wrapper,.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner:after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner:after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .4s;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader .el-input,.el-cascader .el-input__inner{cursor:pointer}.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input__icon{-webkit-transition:none;transition:none}.el-cascader .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-icon-arrow-down.is-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-cascader .el-icon-circle-close{z-index:2;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-cascader .el-icon-circle-close:hover{color:#909399}.el-cascader__clearIcon{z-index:2;position:relative}.el-cascader__label{position:absolute;left:0;top:0;height:100%;padding:0 25px 0 15px;color:#606266;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-align:left;font-size:inherit}.el-cascader__label span{color:#000}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader-menus{white-space:nowrap;background:#fff;position:absolute;margin:5px 0;z-index:2;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader-menu,.el-cascader-menu__item.is-disabled:hover{background-color:#fff}.el-cascader-menu{display:inline-block;vertical-align:top;height:204px;overflow:auto;border-right:1px solid #e4e7ed;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:6px 0;min-width:160px}.el-cascader-menu:last-child{border-right:0}.el-cascader-menu__item{font-size:14px;padding:8px 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;outline:0}.el-cascader-menu__item span{padding-right:10px}.el-cascader-menu__item--extensible:after{font-family:element-icons;content:"\E6E0";font-size:14px;color:#bfcbd9;position:absolute;right:15px}.el-cascader-menu__item.is-disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-cascader-menu__item.is-active{color:#409eff}.el-cascader-menu__item:focus:not(:active),.el-cascader-menu__item:hover{background-color:#f5f7fa}.el-cascader-menu__item.selected{color:#fff;background-color:#f5f7fa}.el-cascader-menu__item__keyword{font-weight:700}.el-cascader-menu--flexible{height:auto;max-height:180px;overflow:auto}.el-cascader-menu--flexible .el-cascader-menu__item{overflow:visible}.el-color-predefine{font-size:12px;margin-top:8px;width:280px}.el-color-predefine,.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex}.el-color-predefine__colors{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409eff;box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,color-stop(0,hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;cursor:pointer}.el-color-picker__color,.el-color-picker__trigger{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-color-picker__color{display:block;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-button-group>.el-button.is-active,.el-button-group>.el-button.is-disabled,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;line-height:16px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;-webkit-transition:all .3s;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px}.el-input__icon,.el-input__prefix{-webkit-transition:all .3s;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-checkbox,.el-checkbox__input{position:relative;display:inline-block}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-checkbox,.el-checkbox-button__inner{font-weight:500;color:#606266;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;white-space:nowrap}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-checkbox{font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox-button__inner,.el-transfer-panel{-webkit-box-sizing:border-box;vertical-align:middle}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-child{margin-right:0}.el-checkbox-button__inner{line-height:1;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-aside,.el-container,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{-webkit-box-sizing:border-box;box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{display:inline-block}.el-image__inner{vertical-align:top}.el-image__error{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table td.is-today{color:#409eff}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;-webkit-box-shadow:0 0 10px #29d,0 0 5px #29d;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;-webkit-box-sizing:border-box;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
+
+
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}
+
+/*!
+ * Quill Editor v1.3.6
+ * https://quilljs.com/
+ * Copyright (c) 2014, Jason Chen
+ * Copyright (c) 2013, salesforce.com
+ */.ql-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover{color:#06c}.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{-webkit-box-sizing:border-box;box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;-webkit-transform:translateY(10px);transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 8px;box-shadow:0 2px 8px rgba(0,0,0,.2)}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:0 0 5px #ddd;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}
\ No newline at end of file
diff --git a/public/dist/fonts/MaterialIcons-Regular.012cf6a1.woff b/public/dist/fonts/MaterialIcons-Regular.012cf6a1.woff
new file mode 100644
index 000000000..b648a3eea
Binary files /dev/null and b/public/dist/fonts/MaterialIcons-Regular.012cf6a1.woff differ
diff --git a/public/dist/fonts/MaterialIcons-Regular.570eb838.woff2 b/public/dist/fonts/MaterialIcons-Regular.570eb838.woff2
new file mode 100644
index 000000000..9fa211252
Binary files /dev/null and b/public/dist/fonts/MaterialIcons-Regular.570eb838.woff2 differ
diff --git a/public/dist/fonts/MaterialIcons-Regular.a37b0c01.ttf b/public/dist/fonts/MaterialIcons-Regular.a37b0c01.ttf
new file mode 100644
index 000000000..7015564ad
Binary files /dev/null and b/public/dist/fonts/MaterialIcons-Regular.a37b0c01.ttf differ
diff --git a/public/dist/fonts/MaterialIcons-Regular.e79bfd88.eot b/public/dist/fonts/MaterialIcons-Regular.e79bfd88.eot
new file mode 100644
index 000000000..70508ebab
Binary files /dev/null and b/public/dist/fonts/MaterialIcons-Regular.e79bfd88.eot differ
diff --git a/public/dist/fonts/element-icons.535877f5.woff b/public/dist/fonts/element-icons.535877f5.woff
new file mode 100644
index 000000000..02b9a2539
Binary files /dev/null and b/public/dist/fonts/element-icons.535877f5.woff differ
diff --git a/public/dist/fonts/element-icons.732389de.ttf b/public/dist/fonts/element-icons.732389de.ttf
new file mode 100644
index 000000000..91b74de36
Binary files /dev/null and b/public/dist/fonts/element-icons.732389de.ttf differ
diff --git a/public/dist/img/404.a57b6f31.png b/public/dist/img/404.a57b6f31.png
new file mode 100644
index 000000000..3d8e2305c
Binary files /dev/null and b/public/dist/img/404.a57b6f31.png differ
diff --git a/public/dist/img/404_cloud.0f4bc32b.png b/public/dist/img/404_cloud.0f4bc32b.png
new file mode 100644
index 000000000..c6281d090
Binary files /dev/null and b/public/dist/img/404_cloud.0f4bc32b.png differ
diff --git a/public/dist/img/iconfont.12f65fae.svg b/public/dist/img/iconfont.12f65fae.svg
new file mode 100644
index 000000000..640310aee
--- /dev/null
+++ b/public/dist/img/iconfont.12f65fae.svg
@@ -0,0 +1,39 @@
+
+
+
+
+
+Created by iconfont
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/dist/index_dev.html b/public/dist/index_dev.html
new file mode 100644
index 000000000..f4ea87974
--- /dev/null
+++ b/public/dist/index_dev.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+ 管理后台
+
+
+
+ We're sorry but this page doesn't work properly without JavaScript enabled.
+ Please enable it to continue.
+
+
+
+
+
+
diff --git a/public/dist/js/app.940b9396.js b/public/dist/js/app.940b9396.js
new file mode 100644
index 000000000..615e4ae80
--- /dev/null
+++ b/public/dist/js/app.940b9396.js
@@ -0,0 +1 @@
+!function(t){function e(e){for(var a,i,o=e[0],r=e[1],l=e[2],c=0,f=[];c"+JSON.stringify(e.errors))}return r()({message:n,type:"error",duration:3e3,showClose:!0,dangerouslyUseHTMLString:!0}),Promise.reject({message:n,data:t.response.data?t.response.data.data:null})}),e.a=i},"45fe":function(t,e,n){"use strict";var a=n("81bc"),i=n.n(a),o=n("9177"),r=n.n(o),l=n("7413"),s=n("5d16"),c=n("51d1");e.a={props:{inBox:{default:!1},userInfo:{},_project:{default:"admin_free"}},data:function(){return{loading:!1,labelWidth:this.$store.state.app.isMobile?"50px":"90px",CARD_STATUS:l.a,CARD_TYPE:l.b,categories:[],products:[],form:{category_id:null,product_id:null,card:"",type:l.b.TYPE_ONETIME,count_all:null,is_check:!1},formRules:{product_id:[{required:!0,message:"请选择商品",trigger:"blur"}],card:[{required:!0,message:"请输入卡密",trigger:"blur"}]},upload:{now:0,all:0}}},computed:{uploading:function(){return this.upload.now\n最新版本: ").concat(this.version_latest," \n\n您可以在网站目录运行命令尝试更新: \nsudo php artisan update
"):"当前版本 ".concat(this.version," 已是最新版 "):"检查更新失败"}},mounted:function(){this.can_update&&this.checkUpdate()},methods:{clearCache:function(){var t=this;this.$http.post("web/cache/clear").then(function(){t.$notify({title:"成功",message:"系统缓存已经成功清除,若仍有问题请检查CDN缓存",type:"success"})})},checkUpdate:function(){var t=this;this.version_checking=2,this.$http.get("version").then(function(e){e.data.version&&(t.version=e.data.version)}).finally(function(){t.version_checking--}),this.$http.get("version/check_update").then(function(e){e.data.version&&(t.version_latest=e.data.version)}).catch(function(){t.version_latest=!1}).finally(function(){t.version_checking--})}}},n("8a74"),n("1a62"),x=Object(b.a)(C,y,w,!1,null,"3299ba58",null).exports,k=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"container",staticClass:"app-container"},[n("el-col",{staticClass:"no-bottom-form",attrs:{span:24}},[n("el-form",{staticClass:"list-pre-table",attrs:{inline:!0}},[n("el-form-item",{staticClass:"mobile-full-width"},[n("el-input",{attrs:{placeholder:"请输入",size:"small"},model:{value:t.search.value,callback:function(e){t.$set(t.search,"value",e)},expression:"search.value"}},[n("el-select",{staticStyle:{width:"90px"},attrs:{slot:"prepend",placeholder:"搜索类型",value:"",size:"small"},slot:"prepend",model:{value:t.search.type,callback:function(e){t.$set(t.search,"type",e)},expression:"search.type"}},[n("el-option",{attrs:{label:"ID",value:"id"}}),n("el-option",{attrs:{label:"名称",value:"name"}}),n("el-option",{attrs:{label:"备注",value:"comment"}})],1)],1)],1),n("el-form-item",{staticClass:"fix-height"},[n("el-button",{attrs:{size:"small"},on:{click:t.handleSearch}},[t._v("搜索")])],1),n("el-form-item",{staticStyle:{float:"right","margin-right":"0"}},[n("el-button",{attrs:{size:"small"},on:{click:t.handleAdd}},[t._v("添加")])],1)],1)],1),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-table",attrs:{data:t.list,stripe:"",border:""},on:{"filter-change":t.handleFilterChange,"selection-change":function(e){return t.checkedIds=e.map(function(t){return t.id}).join(",")}}},[n("el-table-column",{attrs:{prop:"id",label:"ID",width:"70"}}),n("el-table-column",{attrs:{prop:"name",label:"名称",width:"150","show-overflow-tooltip":""},scopedSlots:t._u([{key:"default",fn:function(e){return[n("a",{staticClass:"line-btn",on:{click:function(n){return t.handleEdit(e.row)}}},[t._v(t._s(e.row.name))])]}}])}),n("el-table-column",{attrs:{prop:"way",label:"方式",width:"90"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("a",{staticClass:"line-btn",on:{click:function(n){return t.handleEdit(e.row)}}},[t._v(t._s(e.row.way))])]}}])}),n("el-table-column",{attrs:{prop:"driver",label:"驱动",width:"90"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("a",{staticClass:"line-btn",on:{click:function(n){return t.handleEdit(e.row)}}},[t._v(t._s(e.row.driver))])]}}])}),n("el-table-column",{attrs:{prop:"fee_system",label:"系统费率",width:"80"},scopedSlots:t._u([{key:"default",fn:function(e){return["string"==typeof e.row.fee_system?n("input",{directives:[{name:"model",rawName:"v-model",value:e.row.fee_system,expression:"scope.row.fee_system"}],staticClass:"table-input",attrs:{size:"small",title:"系统费率"},domProps:{value:e.row.fee_system},on:{blur:function(n){return t.handleEditSystemFee(e.row)},keyup:function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.handleEditSystemFee(e.row)},input:function(n){n.target.composing||t.$set(e.row,"fee_system",n.target.value)}}}):t._e(),"number"==typeof e.row.fee_system?n("a",{staticClass:"line-btn",on:{click:function(){e.row.fee_system_old=e.row.fee_system,e.row.fee_system=e.row.fee_system+""}}},[t._v("\n "+t._s((100*e.row.fee_system).toFixed(2))+"%\n ")]):t._e()]}}])}),n("el-table-column",{attrs:{prop:"fee",label:"商户费率",width:"80"},scopedSlots:t._u([{key:"default",fn:function(e){return["string"==typeof e.row.fee?n("input",{directives:[{name:"model",rawName:"v-model",value:e.row.fee,expression:"scope.row.fee"}],staticClass:"table-input",attrs:{size:"small",title:"商户费率"},domProps:{value:e.row.fee},on:{blur:function(n){return t.handleEditFee(e.row)},keyup:function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.handleEditFee(e.row)},input:function(n){n.target.composing||t.$set(e.row,"fee",n.target.value)}}}):t._e(),"number"==typeof e.row.fee?n("a",{staticClass:"line-btn",on:{click:function(){e.row.fee_old=e.row.fee,e.row.fee=e.row.fee+""}}},[t._v("\n "+t._s((100*e.row.fee).toFixed(2))+"%\n ")]):t._e()]}}])}),n("el-table-column",{attrs:{prop:"comment",label:"备注","min-width":"120","show-overflow-tooltip":""},scopedSlots:t._u([{key:"default",fn:function(e){return[n("a",{staticClass:"line-btn",on:{click:function(n){t.editCommentInfo=e.row}}},[t._v(t._s(e.row.comment))])]}}])}),n("el-table-column",{attrs:{prop:"sort",label:"排序",width:"70"},scopedSlots:t._u([{key:"default",fn:function(e){return["string"==typeof e.row.sort?n("input",{directives:[{name:"model",rawName:"v-model",value:e.row.sort,expression:"scope.row.sort"}],staticClass:"table-input",attrs:{size:"small",title:"排序"},domProps:{value:e.row.sort},on:{blur:function(n){return t.handleSetSort(e.row)},keyup:function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.handleSetSort(e.row)},input:function(n){n.target.composing||t.$set(e.row,"sort",n.target.value)}}}):t._e(),"number"==typeof e.row.sort?n("a",{staticClass:"line-btn",on:{click:function(){e.row.sort_old=e.row.sort,e.row.sort=e.row.sort+""}}},[t._v("\n "+t._s(e.row.sort)+"\n ")]):t._e()]}}])}),n("el-table-column",{attrs:{prop:"enabled",label:"启用",width:"100","column-key":"enabled",filters:t.enabledFilter,"filter-placement":"bottom"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("check-box-group-bin",{attrs:{size:"mini",items:t.enabledCheckbox},on:{change:function(n){return t.handlePaywayEnable(e.row)}},model:{value:e.row.enabled,callback:function(n){t.$set(e.row,"enabled",n)},expression:"scope.row.enabled"}})]}}])}),n("el-table-column",{attrs:{label:"操作",width:"75",fixed:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("a",{staticClass:"icon-btn",staticStyle:{"font-size":"14px"},on:{click:function(n){return t.handleEdit(e.row)}}},[n("icon",{attrs:{name:"light/pencil"}})],1),n("a",{staticClass:"icon-btn",on:{click:function(n){return t.handleDelete(e.row)}}},[n("icon",{attrs:{name:"light/trash-alt"}})],1),n("a",{staticClass:"icon-btn",staticStyle:{"font-size":"14px"},on:{click:function(n){return t.handleSeeLink(e.row)}}},[n("icon",{attrs:{name:"light/link"}})],1)]}}])})],1),t.boxAct?n("payway-edit",{attrs:{act:t.boxAct,info:t.boxInfo},on:{close:t.boxCallback}}):t._e(),t.enableInfo?n("payway-enable",{attrs:{info:t.enableInfo},on:{close:t.enableCallback}}):t._e(),t.editCommentInfo?n("payway-edit-comment",{attrs:{info:t.editCommentInfo},on:{close:t.onEditCommentCallback}}):t._e()],1)},A=[],n("e901"),n("e83a"),n("c377"),S=n("7618"),E=n("637b"),O=n.n(E),I=n("2da5"),T=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-dialog",{attrs:{title:t.actLabel,visible:t.visible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.visible=e}}},[n("el-form",{ref:"form",attrs:{model:t.form,rules:t.formRules,"label-width":"70px"}},[n("el-form-item",{attrs:{label:"名称",prop:"name"}},[n("el-input",{attrs:{type:"text",placeholder:"请输入名称"},model:{value:t.form.name,callback:function(e){t.$set(t.form,"name",e)},expression:"form.name"}})],1),n("el-form-item",{attrs:{label:"图片",prop:"img"}},[n("el-input",{attrs:{type:"text",placeholder:"图片"},model:{value:t.form.img,callback:function(e){t.$set(t.form,"img",e)},expression:"form.img"}})],1),n("el-form-item",{attrs:{label:"方式",prop:"way"}},[n("el-input",{attrs:{type:"text",placeholder:"支付方式代码"},model:{value:t.form.way,callback:function(e){t.$set(t.form,"way",e)},expression:"form.way"}})],1),n("el-form-item",{attrs:{label:"费率",prop:"fee_system"}},[n("el-input",{attrs:{type:"text",placeholder:"支付通道费率"},model:{value:t.form.fee_system,callback:function(e){t.$set(t.form,"fee_system",e)},expression:"form.fee_system"}})],1),"admin"===t._project?n("el-form-item",{attrs:{label:"费率",prop:"fee",rules:[{required:!0,message:"请输入给用户的费率",trigger:"blur"}]}},[n("el-input",{attrs:{type:"text",placeholder:"给用户的费率"},model:{value:t.form.fee,callback:function(e){t.$set(t.form,"fee",e)},expression:"form.fee"}})],1):t._e(),n("el-form-item",{attrs:{label:"启用"}},[n("el-checkbox-group",{model:{value:t.enableIn,callback:function(e){t.enableIn=e},expression:"enableIn"}},[n("el-checkbox",{attrs:{label:t.PAYWAY_ENABLED.PC.id}},[t._v("电脑端")]),n("el-checkbox",{attrs:{label:t.PAYWAY_ENABLED.MOBILE.id}},[t._v("手机端")])],1)],1),n("el-form-item",{attrs:{label:"驱动",prop:"driver"}},[n("el-input",{attrs:{type:"text",placeholder:"支付驱动代码"},model:{value:t.form.driver,callback:function(e){t.$set(t.form,"driver",e)},expression:"form.driver"}})],1),n("el-form-item",{attrs:{label:"备注",prop:"comment"}},[n("el-input",{attrs:{type:"textarea",autosize:{minRows:2,maxRows:4},maxlength:100,placeholder:"请输入备注"},model:{value:t.form.comment,callback:function(e){t.$set(t.form,"comment",e)},expression:"form.comment"}})],1),n("div",[n("el-form-item",{attrs:{label:"配置"}},[n("el-radio-group",{on:{change:t.syncConfig},model:{value:t.showJson,callback:function(e){t.showJson=e},expression:"showJson"}},[n("el-radio",{attrs:{label:!0}},[t._v("JSON")]),n("el-radio",{attrs:{label:!1}},[t._v("Parse")])],1)],1),t.showJson?n("div",[n("el-form-item",[n("el-input",{attrs:{type:"textarea",autosize:{minRows:7,maxRows:20},placeholder:"请输入JSON格式配置"},model:{value:t.form.config,callback:function(e){t.$set(t.form,"config",e)},expression:"form.config"}})],1)],1):n("div",t._l(this.configForm,function(e){return n("el-form-item",{key:e.name,attrs:{label:e.name}},[n("el-input",{attrs:{type:"text"},model:{value:e.value,callback:function(n){t.$set(e,"value",n)},expression:"item.value"}})],1)}),1)],1)],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{nativeOn:{click:function(e){return t.handleClose(!1)}}},[t._v("取消")]),n("el-button",{attrs:{type:"primary",loading:t.loading},nativeOn:{click:function(e){return t.handleSubmit(e)}}},[t._v(t._s(t.actLabel))])],1)],1)},R=[],$=n("34cd").a,n("a01f"),j=Object(b.a)($,T,R,!1,null,"36e9dd31",null).exports,P=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-dialog",{attrs:{title:"启用",visible:t.visible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.visible=e}}},[n("el-form",{ref:"form",attrs:{"label-width":"70px"}},[n("el-form-item",{attrs:{label:"启用"}},[n("el-checkbox-group",{model:{value:t.enableIn,callback:function(e){t.enableIn=e},expression:"enableIn"}},[n("el-checkbox",{attrs:{label:t.paywayEnabled.PC.id}},[t._v("电脑端")]),n("el-checkbox",{attrs:{label:t.paywayEnabled.MOBILE.id}},[t._v("手机端")])],1)],1)],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{nativeOn:{click:function(e){return t.handleClose(!1)}}},[t._v("取消")]),n("el-button",{attrs:{type:"primary",loading:t.loading},nativeOn:{click:function(e){return t.handleSubmit(e)}}},[t._v("保存")])],1)],1)},D=[],n("0a01"),M={props:{info:{}},data:function(){var t=[];return this.info.enabled&I.b.PC.id&&t.push(I.b.PC.id),this.info.enabled&I.b.MOBILE.id&&t.push(I.b.MOBILE.id),{loading:!1,visible:!0,paywayEnabled:I.b,enableIn:t}},watch:{visible:function(t){t||this.$emit("close",!1)}},methods:{handleSubmit:function(){var t,e=this;this.loading=!0,t=0,this.enableIn.forEach(function(e){return t|=e}),Object(I.f)(this.info.id,t).then(function(){e.loading=!1,e.handleClose(!0)}).catch(function(){e.loading=!1})},handleClose:function(){var t=0异步通知回调: ").concat(this.url_api,"/pay/notify/").concat(t.id),dangerouslyUseHTMLString:!0})},handleEdit:function(t){this.boxInfo=t,this.boxAct="edit"},boxCallback:function(t){this.boxAct=null,this.boxInfo=null,t&&this.getList()},handleEnable:function(t){this.enableInfo=t},enableCallback:function(t){this.enableInfo=null,t&&this.getList()}}},q=Object(b.a)(H,k,A,!1,null,null,null).exports,W=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"container",class:{"app-container":!t.userInfo}},[n("el-col",{staticClass:"no-bottom-form",attrs:{span:24}},[n("el-form",{staticClass:"list-pre-table",attrs:{inline:!0}},[n("el-form-item",{staticClass:"mobile-full-width"},[n("el-date-picker",{attrs:{size:"small",type:"daterange",align:"right",placeholder:"日期范围","picker-options":t.pickerOptions},model:{value:t.date_range,callback:function(e){t.date_range=e},expression:"date_range"}})],1),t.isMobile?t._e():n("el-form-item",{staticClass:"fix-height"},[n("el-button",{attrs:{size:"small"},on:{click:t.handleSearch}},[t._v("搜索")])],1)],1)],1),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"list-table",attrs:{data:t.list.data,stripe:"",border:""},on:{"filter-change":t.handleFilterChange,"selection-change":function(e){return t.checkedIds=e.map(function(t){return t.id}).join(",")}}},[n("el-table-column",{attrs:{prop:"id",label:"ID",width:"70"}}),n("el-table-column",{attrs:{prop:"created_at",label:"登录时间",width:"160"}}),n("el-table-column",{attrs:{prop:"ip",label:"登录IP","min-width":"150","show-overflow-tooltip":""}})],1),n("el-col",{staticClass:"list-after-action",staticStyle:{"padding-top":"12px","text-align":"right"},attrs:{span:24}},[0').concat(t.url,"");t.password_open&&(e+=" 密码: "+t.password),this.$msgbox({title:"单独链接",message:e,dangerouslyUseHTMLString:!0})},handleDelete:function(t){var e=this,n=t.name;this.$confirm("删除分类<"+n+">? 此操作不可恢复","提示",{type:"warning"}).then(function(){e.loading=!0,Object(at.a)(t.id).then(function(){e.$notify({title:"操作成功",message:"分类<"+n+">已删除",type:"info"}),e.getList()}).catch(function(){e.loading=!1})})},checkDelete:function(){var t=this;this.checkedIds.length&&this.$confirm("批量删除选中分类? 此操作不可恢复","提示",{type:"warning"}).then(function(){t.loading=!0,Object(at.a)(t.checkedIds).then(function(){t.$notify({title:"操作成功",message:"选中分类已删除",type:"info"}),t.getList()}).catch(function(){t.loading=!1})})},editCallback:function(t){this.editAction=null,t&&this.getList()},handleAdd:(oi=Object(nt.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("admin"!==this._project||this.userInfo){t.next=2;break}return t.abrupt("return",this.$alert("请在商户列表选择商户后添加",{type:"error"}));case 2:return window.scrollTo(0,0),this.addBoxLoaded=!0,t.next=6,this.$nextTick();case 6:this.showAddBox=!0;case 7:case"end":return t.stop()}},t,this)})),function(){return oi.apply(this,arguments)}),onAdd:function(){this.getList(),this.showAddBox=!1}}},pt=Object(b.a)(ft,tt,et,!1,null,null,null).exports,ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:{"app-container":!t.inBox}},[n("h3",{staticStyle:{margin:"4px 0 28px 0"}},[t._v(t._s(t.isAdd?"添加商品":"编辑商品")+"\n "),"admin_free"!==t._project&&t.isAdd?n("el-button",{staticStyle:{float:"right"},attrs:{size:"small",round:"",icon:"el-icon-plus",disabled:t.loading},on:{click:t.addRetailProduct}},[t._v("\n 添加分销商品\n ")]):t._e()],1),t.isFromRetail?n("el-alert",{staticStyle:{"margin-bottom":"36px"},attrs:{type:"info",title:"",closable:!1}},[n("div",{staticClass:"retail-root-info"},[t._v("\n 当前商品为分销商品:\n "),t.retail_from?n("el-button",{staticStyle:{padding:"4px"},attrs:{type:"text"},on:{click:function(e){t.showRetailFromInfo=!t.showRetailFromInfo}}},[t._v("\n 查看货源\n ")]):n("span",{staticStyle:{color:"red"}},[t._v("原商品已删除!")]),t.showRetailFromInfo?n("div",{staticStyle:{"margin-top":"12px"}},[n("p",[t._v("商品名称: "+t._s(t.retail_from.name))]),n("p",[t._v("商品分类: "+t._s(t.retail_from.category?t.retail_from.category.name:"?未知?"))]),n("p",[t._v("商品介绍: \n "),n("span",{staticStyle:{border:"1px solid #eee",display:"block"},domProps:{innerHTML:t._s(t.renderDelta(t.retail_from.description))}})]),n("p",[t._v("进货价格: ¥"+t._s((t.retail_from.price/100).toFixed(2)))])]):t._e()],1)]):t._e(),n("el-form",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],ref:"form",attrs:{model:t.form,"label-position":t.isMobile?"top":"","label-width":"90px",rules:t.formRules}},[n("el-form-item",{class:t.formItemClass,style:t.isMobile?"margin-top: -24px":"",attrs:{label:"分类",prop:"category_id"}},[n("el-select",{attrs:{"no-data-text":"请先添加分类",placeholder:"请选择商品分类"},model:{value:t.form.category_id,callback:function(e){t.$set(t.form,"category_id",e)},expression:"form.category_id"}},t._l(t.categories,function(t){return n("el-option",{key:t.id,attrs:{value:t.id,label:t.name}})}),1)],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"名称",prop:"name"}},[n("el-input",{attrs:{type:"text",placeholder:"商品名称,如:91游戏30元点卡",disabled:t.isFromRetail&&t.retail_from&&!t.retail_from.retail_options.can_edit},model:{value:t.form.name,callback:function(e){t.$set(t.form,"name",e)},expression:"form.name"}}),t.isFromRetail&&t.retail_from&&!t.retail_from.retail_options.can_edit?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 供货商不允许修改商品信息")])]):t._e()],1),t.isFromRetail?n("el-form-item",{class:t.formItemClass,attrs:{label:"自动更新",prop:"retail_keep_sync"}},[n("el-switch",{staticStyle:{display:"inline-block"},attrs:{disabled:!t.canEditRetail,"inactive-text":"","active-value":1,"inactive-value":0},model:{value:t.form.retail_keep_sync,callback:function(e){t.$set(t.form,"retail_keep_sync",e)},expression:"form.retail_keep_sync"}}),n("div",{staticClass:"el-form-item__tip",staticStyle:{"margin-top":"-10px"}},[n("span",[t._v('* 保持 "名称/描述/使用说明" 与供货商一致\n '),n("a",{staticClass:"icon-btn",attrs:{title:"查看详情"}},[n("i",{staticClass:"el-icon-info",on:{click:function(e){return t.$msgbox({message:"开启后, 供货商修改 名称/描述/使用说明 时, 您的商品信息会自动更新 注意,开启后您修改的信息可能被覆盖",title:"提示",dangerouslyUseHTMLString:!0})}}})])])]),t.canEditRetail?t._e():n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 供货商不允许修改商品信息")])])],1):t._e(),n("el-form-item",{class:t.formItemClass,attrs:{label:"排序",prop:"sort"}},[n("el-input-number",{attrs:{"controls-position":"right",min:0,max:1e7,size:"small"},model:{value:t.form.sort,callback:function(e){t.$set(t.form,"sort",e)},expression:"form.sort"}}),n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 数字越小越靠前")])])],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"成本价(元)",prop:"cost"}},[n("el-input",{attrs:{type:"number",placeholder:"请输入商品成本价",disabled:t.isFromRetail},model:{value:t.form.cost,callback:function(e){t.$set(t.form,"cost",e)},expression:"form.cost"}}),t.isFromRetail?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 商品进货价格")])]):n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 成本价用于商户后台计算利润(建议填写)")])])],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"售价(元)",prop:"price"}},[n("el-input",{attrs:{type:"number",placeholder:"请输入商品售价"},on:{change:function(e){t.form.price=+e,t.checkRetailPrice()}},model:{value:t.form.price,callback:function(e){t.$set(t.form,"price",e)},expression:"form.price"}}),t.isFromRetail?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 当供货商修改价格时,您的售价会根据加价幅度同步修改\n "),n("a",{staticClass:"icon-btn",attrs:{title:"查看详情"}},[n("i",{staticClass:"el-icon-info",on:{click:t.showRetailPriceTip}})])])]):t._e()],1),n("el-form-item",{staticClass:"price-whole",class:t.formItemClass,attrs:{label:"批发价",prop:"price_whole"}},[n("div",{style:{"line-height":t.isMobile?"18px":"inherit"}},[n("a",{staticClass:"add-btn",on:{click:function(){t.price_whole.push([1,t.form.price]),t.checkRetailPriceWhole()}}},[t._v("添加")]),n("div",{staticClass:"price-body"},t._l(t.price_whole,function(e,a){return n("div",{key:"product_price_whole_"+a},[n("label",{staticClass:"item-label"},[t._v("件数\n "),n("input",{directives:[{name:"model",rawName:"v-model.number",value:e[0],expression:"item[0]",modifiers:{number:!0}}],staticClass:"item-input",attrs:{type:"number",min:"1",max:"10000"},domProps:{value:e[0]},on:{change:t.checkRetailPriceWhole,input:function(n){n.target.composing||t.$set(e,0,t._n(n.target.value))},blur:function(e){return t.$forceUpdate()}}})]),n("label",{staticClass:"item-label",staticStyle:{"margin-left":"8px"}},[t._v("价格\n "),n("input",{directives:[{name:"model",rawName:"v-model.number",value:e[1],expression:"item[1]",modifiers:{number:!0}}],staticClass:"item-input",attrs:{type:"number",min:"0.01",max:"10000000"},domProps:{value:e[1]},on:{change:t.checkRetailPriceWhole,input:function(n){n.target.composing||t.$set(e,1,t._n(n.target.value))},blur:function(e){return t.$forceUpdate()}}})]),n("a",{staticClass:"del-btn",on:{click:function(){t.price_whole.splice(a,1),t.checkRetailPriceWhole()}}},[t._v("删除")])])}),0)]),t.form.retail_open?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 只对普通用户有效, 代理分销时按原价计算")])]):t._e()]),n("el-form-item",{class:t.formItemClass,attrs:{label:"商品描述",prop:"description"}},[n("quill-editor",{key:"editor-description",ref:"editor-description",attrs:{"user-info":t.userInfo_,disabled:!t.canEditRetail,placeholder:"本图文说明将显示在商品购买页面"},model:{value:t.form.description,callback:function(e){t.$set(t.form,"description",e)},expression:"form.description"}}),t.canEditRetail?t._e():n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 供货商不允许修改商品信息")])])],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"使用说明",prop:"instructions"}},[n("quill-editor",{key:"editor-instructions",ref:"editor-instructions",attrs:{"user-info":t.userInfo_,disabled:!t.canEditRetail,placeholder:"本图文说明将显示在订单查询网站且购买成功的订单中,一般设置详细使用说明,售后QQ群,或者下载地址类"},model:{value:t.form.instructions,callback:function(e){t.$set(t.form,"instructions",e)},expression:"form.instructions"}}),t.canEditRetail?t._e():n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 供货商不允许修改商品信息")])])],1),t.PRODUCT_MANUAL?n("el-form-item",{class:t.formItemClass,attrs:{label:"发货模式",prop:"delivery"}},[n("el-radio-group",{model:{value:t.form.delivery,callback:function(e){t.$set(t.form,"delivery",e)},expression:"form.delivery"}},[n("el-radio",{attrs:{label:t.DELIVERY.AUTO}},[t._v("自动发货")]),n("el-radio",{attrs:{label:t.DELIVERY.MANUAL}},[t._v("手动充值")])],1)],1):t._e(),t.isFromRetail?t._e():n("el-form-item",{staticClass:"price-whole",class:t.formItemClass,attrs:{label:"买家信息",prop:"fields"}},[n("el-select",{attrs:{size:"small"},model:{value:t.fields.type,callback:function(e){t.$set(t.fields,"type",e)},expression:"fields.type"}},[n("el-option",{attrs:{label:"可以输入任意字符",value:"any"}}),n("el-option",{attrs:{label:"只能输入邮箱",value:"email"}}),n("el-option",{attrs:{label:"只能输入手机号",value:"mobile"}}),n("el-option",{attrs:{label:"只能输入QQ号",value:"qq"}})],1),n("div",[t.PRODUCT_MANUAL?n("el-checkbox",{model:{value:t.fields.need_ext,callback:function(e){t.$set(t.fields,"need_ext",e)},expression:"fields.need_ext"}},[t._v("需要填写收货信息")]):t._e()],1),n("transition",{attrs:{name:"el-zoom-in-center"}},[t.fields.need_ext?n("div",{staticClass:"price-body",style:{"line-height":t.isMobile?"18px":"inherit",margin:t.isMobile?"8px 0 4px":"0"}},[n("a",{staticClass:"add-btn",on:{click:function(){t.fields.ext.push("名称"),t.checkFieldsExt()}}},[t._v("添加")]),t._l(t.fields.ext,function(e,a){return n("div",{key:"product_field_"+a},[n("label",{staticClass:"item-label"},[t._v("字段名\n "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.fields.ext[a],expression:"fields.ext[index]"}],staticClass:"item-input",staticStyle:{width:"50%"},attrs:{type:"text"},domProps:{value:t.fields.ext[a]},on:{change:t.checkFieldsExt,input:function(e){e.target.composing||t.$set(t.fields.ext,a,e.target.value)}}})]),n("a",{staticClass:"del-btn",on:{click:function(){t.fields.ext.splice(a,1),t.checkFieldsExt()}}},[t._v("删除")])])})],2):t._e()]),t.fields_check.message?n("div",{staticClass:"el-form-item__tip",style:{color:t.fields_check.color}},[n("span",[t._v(t._s(t.fields_check.message))])]):t._e()],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"优惠券",prop:"support_coupon"}},[n("el-checkbox",{model:{value:t.form.support_coupon,callback:function(e){t.$set(t.form,"support_coupon",e)},expression:"form.support_coupon"}},[t._v("支持")])],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"购买限制",prop:"buy_min"}},[n("el-tooltip",{attrs:{effect:"dark",content:"最小购买量",placement:"top-start"}},[n("el-input-number",{attrs:{"controls-position":"right",min:1,max:1e4,size:"small"},model:{value:t.form.buy_min,callback:function(e){t.$set(t.form,"buy_min",e)},expression:"form.buy_min"}})],1),n("el-tooltip",{attrs:{effect:"dark",content:"最大购买量",placement:"top-start"}},[n("el-input-number",{attrs:{"controls-position":"right",min:1,max:1e4,size:"small"},model:{value:t.form.buy_max,callback:function(e){t.$set(t.form,"buy_max",e)},expression:"form.buy_max"}})],1),t.form.retail_open?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 只对普通用户有效, 代理分销时不受限制")])]):t._e()],1),n("el-form-item",{staticClass:"buy-password",class:t.formItemClass,attrs:{label:"购买密码",prop:"password"}},[n("el-tooltip",{attrs:{effect:"dark",content:"设置商品购买密码,开启后只有输入密码才能购买",placement:"top-start"}},[n("el-input",{attrs:{type:"text",placeholder:"购买密码(可选)"},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}},[n("el-checkbox",{attrs:{slot:"prepend"},slot:"prepend",model:{value:t.form.password_open,callback:function(e){t.$set(t.form,"password_open",e)},expression:"form.password_open"}},[t._v("开启")])],1)],1),t.form.retail_open?n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 只对普通用户有效, 代理分销时不受限制\n "),n("a",{staticClass:"icon-btn",attrs:{title:"查看详情"}},[n("i",{staticClass:"el-icon-info",on:{click:t.showRetailPasswordTip}})])])]):t._e()],1),t.isFromRetail?t._e():n("el-form-item",{class:t.formItemClass,attrs:{label:"库存预警",prop:"count_warn"}},[n("el-input-number",{attrs:{"controls-position":"right",min:0,max:1e7,size:"small"},model:{value:t.form.count_warn,callback:function(e){t.$set(t.form,"count_warn",e)},expression:"form.count_warn"}}),n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 到达预警值后会发送通知邮件,填0不预警")])])],1),n("el-form-item",{class:t.formItemClass,attrs:{label:"库存显示",prop:"inventory"}},[n("el-radio-group",{attrs:{size:"small"},model:{value:t.form.inventory,callback:function(e){t.$set(t.form,"inventory",e)},expression:"form.inventory"}},[n("el-radio-button",{attrs:{label:t.INVENTORY_TYPE.RANGE}},[t._v("大致范围")]),n("el-radio-button",{attrs:{label:t.INVENTORY_TYPE.REAL}},[t._v("实际库存")]),n("el-radio-button",{staticClass:"el-radio-gray",attrs:{label:t.INVENTORY_TYPE.AUTO}},[t._v("跟随店铺")])],1)],1),t.canRetail?n("el-form-item",{class:t.formItemClass,attrs:{label:"代理分销",prop:"retail_open"}},[n("el-radio-group",{attrs:{size:"small"},model:{value:t.form.retail_open,callback:function(e){t.$set(t.form,"retail_open",e)},expression:"form.retail_open"}},[n("el-radio-button",{attrs:{label:1}},[t._v("开启")]),n("el-radio-button",{staticClass:"el-radio-gray",attrs:{label:0}},[t._v("关闭")])],1),n("transition",{attrs:{name:"el-zoom-in-center"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.form.retail_open,expression:"form.retail_open"}],class:t.formItemClass},[n("el-switch",{staticStyle:{display:"inline-block"},attrs:{"inactive-text":"允许下级代理编辑商品信息","active-value":1,"inactive-value":0},model:{value:t.retail_options.can_edit,callback:function(e){t.$set(t.retail_options,"can_edit",e)},expression:"retail_options.can_edit"}}),n("div",{staticStyle:{"margin-top":"8px"}},[n("span",{staticClass:"el-form-item__label2",staticStyle:{display:"block"}},[t._v("代理零售价限制(元)")]),n("div",[n("el-input",{style:{display:t.isMobile?"block":"inline-block","max-width":t.isMobile?"auto":"180px","margin-right":t.isMobile?"0":"8px"},attrs:{size:"mini",placeholder:"代理最低零售价",type:"number"},on:{change:t.checkRetailPrice},model:{value:t.retail_options.min_price,callback:function(e){t.$set(t.retail_options,"min_price",t._n(e))},expression:"retail_options.min_price"}}),n("el-input",{style:{display:t.isMobile?"block":"inline-block","max-width":t.isMobile?"auto":"180px"},attrs:{size:"mini",placeholder:"代理最高零售价",type:"number"},on:{change:t.checkRetailPrice},model:{value:t.retail_options.max_price,callback:function(e){t.$set(t.retail_options,"max_price",t._n(e))},expression:"retail_options.max_price"}}),t.retail_price_check.message?n("div",{staticClass:"el-form-item__tip",style:{color:t.retail_price_check.color}},[n("span",[t._v(t._s(t.retail_price_check.message))])]):n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 当改变售价时,价格限制会根据加价幅度同步更改")])])],1)]),n("div",{staticStyle:{"margin-top":"16px"}},[n("span",{staticClass:"el-form-item__label2",staticStyle:{display:"block"}},[t._v("分销代码")]),n("div",[n("el-input",{staticClass:"input-retail-code",style:{"max-width":t.isMobile?"auto":"372px"},attrs:{minlength:6,maxlength:32,disabled:t.retail_code_check.loading,placeholder:"分销代码",size:"mini"},on:{change:t.checkRetailCodeAvailable},model:{value:t.form.retail_code,callback:function(e){t.$set(t.form,"retail_code",e)},expression:"form.retail_code"}},[n("el-button",{attrs:{slot:"append",size:"mini",type:"text",disabled:t.retail_code_check.loading},on:{click:t.handleRandomRetailCode},slot:"append"},[t._v("随机\n ")])],1),t.retail_code_check.message?n("div",{staticClass:"el-form-item__tip",style:{color:t.retail_code_check.color}},[n("span",[t._v(t._s(t.retail_code_check.message))])]):n("div",{staticClass:"el-form-item__tip"},[n("span",[t._v("* 凭借本代码可以代理分销当前商品")])])],1)])],1)])],1):t._e(),n("el-form-item",{class:t.formItemClass,attrs:{label:"状态",prop:"enabled"}},[n("el-radio-group",{attrs:{size:"small"},model:{value:t.form.enabled,callback:function(e){t.$set(t.form,"enabled",e)},expression:"form.enabled"}},[n("el-radio-button",{attrs:{label:1}},[t._v("上架")]),n("el-radio-button",{staticClass:"el-radio-gray",attrs:{label:0}},[t._v("下架")])],1)],1),n("el-form-item",{staticStyle:{"margin-top":"36px"}},[n("el-button",{style:{float:t.isMobile?"right":""},attrs:{type:"primary",loading:t.loading},on:{click:t.handleSubmit}},[t._v("\n "+t._s(t.isAdd?"添加":"编辑")+"商品\n ")])],1)],1)],1)},mt=[],n("2ada"),n("b107"),_t={RANGE:0,REAL:1,AUTO:2},gt=n("51d1"),bt=n("bd60"),vt=n("b130"),yt=n("8b01"),wt=window.config.functions&&window.config.functions.includes("product_manual"),Ct={components:{QuillEditor:bt.a},props:{_project:{default:"admin_free"},info:{},inBox:{default:!1},userInfo:{},_categories:{}},data:function(){var t=this;return{loading:!1,isMobile:this.$store.state.app.isMobile,PRODUCT_MANUAL:wt,userInfo_:null,upload_url:window.API_HOST+"product/upload",INVENTORY_TYPE:_t,DELIVERY:gt.a,form:{id:null,user_id:null,category_id:null,name:"",description:"",instructions:"",fields:"",delivery:gt.a.AUTO,sort:1e3,buy_min:1,buy_max:100,count_warn:"",inventory:_t.AUTO,support_coupon:!1,password:"",password_open:!1,cost:0,price:0,price_whole:"",enabled:1,retail_open:0,retail_code:"",retail_from_id:null,retail_keep_sync:1},fields:{type:"any",need_ext:!1,ext:[]},price_whole:[],categories:[],retail_options:{can_edit:1,min_price:"",max_price:""},formRules:{category_id:[{required:!0,message:"请选择商品分类",trigger:"change"}],name:[{required:!0,message:"请输入商品名称",trigger:"change"}],cost:[{validator:function(t,e,n){var a=Math.round(100*e);a<0?n(Error("成本价不能低于 0")):1e9t.retail_from.retail_options.max_price)?a(Error("* 供货商限定价格为: ".concat(Object(yt.a)(t.retail_from.retail_options.min_price)," - ").concat(Object(yt.a)(t.retail_from.retail_options.max_price)))):a()},trigger:"change"}],price_whole:[{validator:function(e,n,a){var i,o;for(i=0;it.retail_from.retail_options.max_price))return void a(Error("* 供货商限定价格为: ".concat(Object(yt.a)(t.retail_from.retail_options.min_price)," - ").concat(Object(yt.a)(t.retail_from.retail_options.max_price))))}a()},trigger:"change"}],enabled:[{required:!0,message:"请选择状态",trigger:"change"}]},showRetailFromInfo:!1,retail_from:null,fields_check:{message:"",color:""},retail_price_check:{message:"",color:""},retail_code_check:{loading:!1,message:"",color:""}}},computed:{isAdd:function(){return!this.info},formItemClass:function(){return this.isMobile?"product-form-item":""},isFromRetail:function(){return!1},canEditRetail:function(){return!(this.isFromRetail&&null!==this.retail_from&&0===this.retail_from.retail_options.can_edit)},canRetail:function(){return!1}},watch:{loading:function(t,e){this.$emit("update:loading",t),t?e||J.a.isStarted()||J.a.start():J.a.done()}},beforeMount:function(){if(this.userInfo?this.userInfo_=this.userInfo:this.userInfo_=this.$store.state.user.userInfo,this._categories&&this._categories.length&&0您设置的售价会根据供货商的修改幅度同步更改。 \n\n 举例: \n 供货商设置进货价为 10 元, 您设置的零售价为 15 元; \n 当供货商将进货价提高为 11 元时, 您的零售价将自动修改为 16 元。\n ",title:"代理售价说明",dangerouslyUseHTMLString:!0})},showRetailPasswordTip:function(){this.$msgbox({message:"\n此选项仅在用户直接购买时有效, 代理进货时不受限制。 \n\n如果 此商品仅用于代理分销,您并不打算让普通用户购买 您可以设置一个密码将此商品保护起来。\n",title:"购买密码说明",dangerouslyUseHTMLString:!0})},checkFieldsExt:function(){if(this.fields_check.message="",!this.fields.need_ext)return!0;if(!this.fields.ext.length)return this.fields_check.message="请至少添加一个字段",!(this.fields_check.color="#FF4949");for(var t=0;t+this.retail_options.max_price?(this.retail_price_check.message="代理最高零售价 需要大于 代理最低零售价",!(this.retail_price_check.color="#FF4949")):1e7<+this.retail_options.min_price||1e7<+this.retail_options.max_price?(this.retail_price_check.message="价格不能超过 10000000",!(this.retail_price_check.color="#FF4949")):(this.retail_price_check.message="",!(this.retail_price_check.color=""))},checkRetailPriceWhole:function(){return this.$refs.form.validateField("price_whole")},checkRetailCodeAvailable:(si=Object(nt.a)(regeneratorRuntime.mark(function t(){var e,n,a=arguments;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(e=!(0商品名称: ".concat(t.name).concat(t.retail_from_id?'分销商品 ':"","\n 商品分类: ").concat(t.category?t.category.name:"未知#"+t.category_id,'
\n 商品介绍: 查看 \n
').concat(Object(vt.d)(t.description),"
\n \n 售价: ¥").concat((t.price/100).toFixed(2),"
\n 成本价: ¥").concat((t.cost/100).toFixed(2),'
\n 商品链接: ').concat(t.url," \n ").concat(t.password_open?"密码: "+t.password:"","
\n ");t.retail_open&&(n+='\n 分销代码:
\n ')),this.$msgbox({title:"商品详情",message:n,dangerouslyUseHTMLString:!0,customClass:"ann-box"})},showUrl:function(t){var e='').concat(t.url," ");t.password_open&&(e+=" 密码: "+t.password),this.$msgbox({title:"单独链接",message:e,dangerouslyUseHTMLString:!0})},goCards:function(t,e){this.$router.push({path:"/admin/product/card/list",query:{type:t,category_id:e.category_id,product_id:e.id}})},handleProductEnabled:function(t){if(t.retail_from&&!t.retail_from.enabled)return t.enabled=0,void this.$msgbox("此商品为分销商品, 原始商品已经下架, 您无法上架此商品","错误");Object(gt.g)(t.id,t.enabled)},handleSetSort:function(t){var e=this;parseInt(t.sort)!==t.sort_old?(this.loading=!0,Object(gt.j)(t.id,t.sort).then(function(){e.getList()}).catch(function(){e.loading=!1})):t.sort=parseInt(t.sort)},handleSetCount:function(t){var e=this;parseInt(t.count)!==t.count_old?(this.loading=!0,Object(gt.i)(t.id,t.count).finally(function(){t.count=parseInt(t.count),e.loading=!1})):t.count=parseInt(t.count)},handleDelete:function(t){var e=this,n=t.name;this.$confirm("删除商品<"+n+">? 选中商品的卡密将会一起删除 此操作不可恢复","提示",{type:"warning",dangerouslyUseHTMLString:!0}).then(function(){e.loading=!0,Object(gt.e)(t.id).then(function(){e.$notify({title:"操作成功",message:"商品<"+n+">已删除",type:"info"}),e.getList()}).catch(function(){e.loading=!1})})},checkDelete:function(){var t=this;this.checkedIds.length&&this.$confirm("批量删除选中商品? 选中商品的卡密将会一起删除 此操作不可恢复","提示",{type:"warning",dangerouslyUseHTMLString:!0}).then(function(){t.loading=!0,Object(gt.e)(t.checkedIds).then(function(){t.$notify({title:"操作成功",message:"选中商品已删除",type:"info"}),t.getList()}).catch(function(){t.loading=!1})})},checkEnable:function(){var t=this;this.checkedIds.length&&this.$confirm("批量上架选中商品? ","提示",{type:"warning"}).then(function(){t.loading=!0,Object(gt.g)(t.checkedIds,1).then(function(){t.$notify({title:"操作成功",message:"选中商品已上架",type:"success"}),t.getList()}).catch(function(){t.loading=!1})})},checkDisable:function(){var t=this;this.checkedIds.length&&this.$confirm("批量下架选中商品? ","提示",{type:"warning"}).then(function(){t.loading=!0,Object(gt.g)(t.checkedIds,0).then(function(){t.$notify({title:"操作成功",message:"选中商品已下架",type:"info"}),t.getList()}).catch(function(){t.loading=!1})})},handleCountSync:function(){var t=this;this.$notify.info({title:"请稍等",message:"刷新库存可能会消耗较长时间",duration:2e3}),this.loading=!0,Object(gt.d)(this.userInfo?this.userInfo.id:null).then(function(){t.$notify.success({title:"成功",message:"商品库存已刷新",duration:2e3}),t.getList()}).catch(function(){t.loading=!1})},handleAdd:(di=Object(nt.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:this.$router.push("/admin/product/add"),t.next=18;break;case 8:if(this.userInfo){t.next=10;break}return t.abrupt("return",this.$alert("请在商户列表选择商户后添加",{type:"error"}));case 10:if(window.scrollTo(0,0),this.showAddBox&&this.editInfo)return t.next=14,this.onBoxSubmit(!1);t.next=14;break;case 14:return this.addBoxLoaded=!0,t.next=17,this.$nextTick();case 17:this.showAddBox=!0;case 18:case"end":return t.stop()}},t,this)})),function(){return di.apply(this,arguments)}),onBoxSubmit:(ci=Object(nt.a)(regeneratorRuntime.mark(function t(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e&&this.getList(),this.showAddBox=!1,t.next=4,this.$nextTick();case 4:this.addBoxLoaded=!1,this.editInfo=null;case 6:case"end":return t.stop()}},t,this)})),function(t){return ci.apply(this,arguments)}),goUserDetail:function(t){},handleEdit:(li=Object(nt.a)(regeneratorRuntime.mark(function t(e){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(window.scrollTo(0,0),this.showAddBox)return t.next=4,this.onBoxSubmit(!1);t.next=4;break;case 4:return this.editInfo=e,this.addBoxLoaded=!0,t.next=8,this.$nextTick();case 8:this.showAddBox=!0;case 9:case"end":return t.stop()}},t,this)})),function(t){return li.apply(this,arguments)}),editCallback:function(t){this.editInfo=null,t&&this.getList()},handleEditCategory:function(t){this.editCategory=t},editCategoryCallback:function(t){t&&t.category&&(this.editCategory.category_id=t.category.id,this.editCategory.category=t.category),this.editCategory=null}}},n("8180"),Rt=Object(b.a)(Tt,kt,At,!1,null,null,null).exports,$t=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:{"app-container":!t.inBox}},[n("h3",{staticStyle:{margin:"4px 0 28px 0"}},[t._v("添加卡密")]),n("el-form",{ref:"form",attrs:{model:t.form,"label-width":t.labelWidth,rules:t.formRules}},[n("el-form-item",{attrs:{label:"类型"}},[n("el-radio-group",{attrs:{size:"small"},on:{change:t.handleTypeChange},model:{value:t.form.type,callback:function(e){t.$set(t.form,"type",e)},expression:"form.type"}},[n("el-radio-button",{attrs:{label:t.CARD_TYPE.TYPE_ONETIME}},[t._v("一次性")]),n("el-radio-button",{attrs:{label:t.CARD_TYPE.TYPE_REPEAT}},[t._v("重复销售")])],1),t.form.type===t.CARD_TYPE.TYPE_REPEAT?n("span",{staticClass:"red-text",staticStyle:{"font-size":"12px",display:"block","line-height":"18px"}},[t._v("注意:将会限制商品最大购买量为1件")]):t._e()],1),n("el-form-item",{attrs:{label:"商品",prop:"product_id"}},[n("el-select",{attrs:{"no-data-text":"请先添加分类"},on:{change:t.getProducts},model:{value:t.form.category_id,callback:function(e){t.$set(t.form,"category_id",e)},expression:"form.category_id"}},t._l(t.categories,function(t){return n("el-option",{key:t.id,attrs:{value:t.id,label:t.name}})}),1),n("el-select",{model:{value:t.form.product_id,callback:function(e){t.$set(t.form,"product_id",e)},expression:"form.product_id"}},t._l(t.products,function(t){return n("el-option",{key:t.id,attrs:{value:t.id,label:t.name}})}),1)],1),n("el-form-item",{attrs:{label:"卡密",prop:"card"}},[t.form.type===t.CARD_TYPE.TYPE_ONETIME?n("el-input",{attrs:{type:"textarea",autosize:{minRows:10,maxRows:10},placeholder:"卡号+空格+密码,一行一张卡\n如:ABCDEFG 123456\n(卡密长度不得超过100位)"},model:{value:t.form.card,callback:function(e){t.$set(t.form,"card",e)},expression:"form.card"}}):n("el-input",{attrs:{type:"text",placeholder:"卡号+空格+密码"},model:{value:t.form.card,callback:function(e){t.$set(t.form,"card",e)},expression:"form.card"}})],1),t.form.type===t.CARD_TYPE.TYPE_REPEAT?n("el-form-item",{attrs:{label:"可售",prop:"count_all",rules:[{required:!0,message:"请输入可售总次数",trigger:"blur"},{type:"number",min:1,max:1e7,message:"可售总次数不能超过10000000"}]}},[n("el-input",{attrs:{type:"number",placeholder:"请输入可售总次数"},model:{value:t.form.count_all,callback:function(e){t.$set(t.form,"count_all",t._n(e))},expression:"form.count_all"}})],1):t._e(),n("el-form-item",[n("el-tooltip",{attrs:{effect:"dark",content:"选中后表示重复的卡密将不会加入库存中",placement:"top-start"}},[n("el-checkbox",{model:{value:t.form.is_check,callback:function(e){t.$set(t.form,"is_check",e)},expression:"form.is_check"}},[t._v("检查重复的卡密")])],1)],1),n("el-form-item",[n("el-button",{attrs:{type:"primary",loading:t.loading||t.uploading},on:{click:t.onSubmit}},[t._v("添加")]),"admin"===t._project||"merchant"===t._project?n("p",{staticClass:"red-text"},[t._v("注意:每位商户最多可以添加 "),n("b",[t._v("10000")]),t._v(" 条卡密记录(不包含已售出)(重复销售类型只算1条),"),n("br"),t._v("\n 超出限制会添加失败,请合理配置商品库存。")]):t._e()],1)],1),t.uploading?n("div",{staticClass:"v-modal",staticStyle:{"z-index":"1010"}}):t._e(),t.uploading?n("div",{staticClass:"el-message-box__wrapper",staticStyle:{"z-index":"1011"}},[n("div",{staticStyle:{position:"relative",display:"inline-block",width:"250px","background-color":"#fff","border-radius":"4px",border:"1px solid #ebeef5"}},[n("p",[t._v("正在上传 "+t._s(t.upload.now)+"/"+t._s(t.upload.all))])])]):t._e()],1)},jt=[],Pt=n("45fe").a,Dt=Object(b.a)(Pt,$t,jt,!1,null,null,null).exports,Mt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"container",class:{"app-container":!t.userInfo}},[n("el-collapse-transition",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.showAddBox,expression:"showAddBox"}],staticClass:"apply-box"},[n("el-button",{staticStyle:{float:"right",margin:"10px 15px"},attrs:{icon:"el-icon-close",type:"danger",size:"small"},on:{click:function(e){t.showAddBox=!1}}}),t.showAddBox||t.addBoxLoaded?n("el-card",{staticClass:"my-card"},[n("card-add",{attrs:{"in-box":!0,userInfo:t.userInfo},on:{submit:t.onAdd}})],1):t._e()],1)]),n("el-col",{staticClass:"no-bottom-form",attrs:{span:24}},[n("el-form",{staticClass:"list-pre-table",attrs:{inline:!0}},[n("el-form-item",{staticClass:"mobile-full-width"},[n("el-select",{staticClass:"mobile-full-width",attrs:{size:"small","no-data-text":"无分类数据"},on:{change:t.getProducts},model:{value:t.where.category_id,callback:function(e){t.$set(t.where,"category_id",e)},expression:"where.category_id"}},[n("el-option",{attrs:{label:"全部",value:-1}}),t._l(t.categories,function(t){return n("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})],2),0 (当前列表共"+this.list.total+"条)","警告",{type:"warning",dangerouslyUseHTMLString:!0}).then(function(){t.loading=!0,Object(Ut.d)(t._generateWhere()).then(function(){t.$notify({title:"操作完成",message:t.onlyTrashed?"当前回收站列表已清空":"当前卡密列表已删除",type:"info"}),t.getList()}).catch(function(){t.loading=!1})})},handleRestoreAll:function(){var t=this;this.$confirm("是否还原当前回收站列表? (当前列表共"+this.list.total+"条)","询问",{type:"warning",dangerouslyUseHTMLString:!0}).then(function(){t.loading=!0,Object(Ut.j)(t._generateWhere()).then(function(){t.$notify({title:"操作完成",message:"当前回收站列表已还原",type:"success"}),t.getList()}).catch(function(){t.loading=!1})})},handleAdd:(fi=Object(nt.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:this.$router.push("/admin/product/card/add"),t.next=13;break;case 8:return window.scrollTo(0,0),this.addBoxLoaded=!0,t.next=12,this.$nextTick();case 12:this.showAddBox=!0;case 13:case"end":return t.stop()}},t,this)})),function(){return fi.apply(this,arguments)}),onAdd:function(){this.getList(),this.showAddBox=!1},handleEdit:function(t){this.editInfo=t},editCallback:function(t){this.editInfo=null,t&&this.getList()},toggleTrash:(ui=Object(nt.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return this.onlyTrashed=!this.onlyTrashed,this.destroying=!0,t.next=4,this.$nextTick();case 4:this.destroying=!1,this.getList();case 6:case"end":return t.stop()}},t,this)})),function(){return ui.apply(this,arguments)})}},Ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("card-list",{attrs:{_trashed:!0}})},qt=[],Wt={components:{cardList:Yt=Object(b.a)(Vt,Mt,zt,!1,null,null,null).exports}},Qt=Object(b.a)(Wt,Ht,qt,!1,null,null,null).exports,Gt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"container",class:{"app-container":!t.userInfo}},[n("el-collapse-transition",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.showAddBox,expression:"showAddBox"}],staticClass:"apply-box"},[n("el-button",{staticStyle:{float:"right",margin:"10px 15px"},attrs:{icon:"el-icon-close",type:"danger",size:"small"},on:{click:function(e){t.showAddBox=!1}}}),t.showAddBox||t.addBoxLoaded?n("el-card",{staticClass:"my-card"},[n("coupon-add",{attrs:{"in-box":!0,userInfo:t.userInfo},on:{submit:t.onAdd}})],1):t._e()],1)]),n("el-col",{staticClass:"no-bottom-form",attrs:{span:24}},[n("el-form",{staticClass:"list-pre-table",attrs:{inline:!0}},[n("el-form-item",{staticClass:"mobile-full-width"},[n("el-select",{staticClass:"mobile-full-width",attrs:{size:"small","no-data-text":"无分类数据"},on:{change:t.getProducts},model:{value:t.where.category_id,callback:function(e){t.$set(t.where,"category_id",e)},expression:"where.category_id"}},[n("el-option",{attrs:{label:"全部",value:-1}}),t._l(t.categories,function(t){return n("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})],2),0"))}})],1):t._e()],1)},oe=[],re=n("70da"),se=n.n(re),le={props:{inBox:{default:!1},userInfo:{}},data:function(){var t=new Date;return t.setTime(6048e5+t.getTime()),{loading:!1,isMobile:this.$store.state.app.isMobile,COUPON_TYPE:Xt,COUPON_DISCOUNT_TYPE:Kt,categories:[],products:[],form:{category_id:-1,product_id:-1,type:Xt.TYPE_ONETIME,coupon:null,discount_val:"",discount_type:Kt.AMOUNT,count:null,expire_at:t},formRules:{discount_val:[{required:!0,message:"请输入优惠券面额",trigger:"blur"},{type:"number",min:.01,max:1e6,message:"数字需要在0.01-1000000之间"}]},list:[]}},computed:{formItemClass:function(){return this.isMobile?"coupon-form-item":""}},watch:{loading:function(t,e){t?e||J.a.isStarted()||J.a.start():J.a.done()}},mounted:function(){this.getCategories(),this.userInfo&&(this.form.user_id=this.userInfo.id)},methods:{getCategories:function(){var t,e=this;this.categories=[],t={search:"simple",val:"list"},this.userInfo&&(t.user_id=this.userInfo.id),Object(at.d)(t).then(function(t){e.categories=t.data})},getProducts:function(t){var e,n=this;this.category_id_old!==t&&(this.category_id_old=t,this.products=[],e={search:"simple",val:t},this.userInfo&&(e.user_id=this.userInfo.id),Object(gt.h)(e).then(function(t){n.products=t.data}))},onTypeChange:function(){},onDiscountTypeChange:function(){this.form.discount_type===Kt.AMOUNT?this.formRules.discount_val=[{required:!0,message:"请输入优惠券面额",trigger:"blur"},{type:"number",min:.01,max:1e7,message:"数字需要在0.01-10000000之间"}]:this.form.discount_type===Kt.PERCENT&&(this.formRules.discount_val=[{required:!0,message:"请输入优惠百分比",trigger:"blur"},{type:"number",min:1,max:100,message:"数字需要在1-100之间"}])},onSubmit:function(){var t=this;this.$refs.form.validate(function(e){if(e){t.list=[],t.loading=!0;var n,a=Object.assign({},t.form);a.discount_type===Kt.AMOUNT&&(a.discount_val*=100),a.expire_at&&(a.expire_at=a.expire_at.format("yyyy-MM-dd")),(n=a,Object(Z.a)({url:"coupon/create",method:"post",data:n})).then(function(e){t.loading=!1,t.list=e.data;var n=t.list.join("\r\n");t.$msgbox({title:"生成优惠券成功",message:'优惠券列表: ",showCancelButton:!0,dangerouslyUseHTMLString:!0,cancelButtonText:"一键复制"}).catch(function(e){"cancel"===e&&se()(t.$refs["copy-coupons"].$el).click()}),t.$emit("submit",!0)}).catch(function(){t.loading=!1})}})}}},n("ad2b"),ce=Object(b.a)(le,ie,oe,!1,null,null,null).exports,de={props:{userInfo:{type:Object,default:null},onlyTrashed:{default:!1},_project:{default:"admin_free"}},components:{couponEdit:ae,couponAdd:ce},data:function(){return{loading:!1,exporting:!1,showAddBox:!1,addBoxLoaded:!1,COUPON_TYPE:Xt,COUPON_STATUS:Zt,COUPON_DISCOUNT_TYPE:Kt,search:{type:"coupon",value:""},where:{category_id:-1,product_id:-1},categories:[{id:-2,name:"加载中"}],products:[{id:-2,name:"加载中"}],list:{current_page:1,data:[],from:1,last_page:1,next_page_url:null,per_page:+localStorage.getItem("pageSize")||20,prev_page_url:null,to:0,total:0},checkedIds:"",statusFilter:[{text:"未用",value:Zt.STATUS_NORMAL,type:"primary"},{text:"已用",value:Zt.STATUS_USED,type:"info"}],typeFilter:[{text:"重复使用",value:Xt.TYPE_REPEAT,type:"info"},{text:"一次性",value:Xt.TYPE_ONETIME,type:"info"}],editInfo:null}},watch:{loading:function(t,e){t?e||J.a.isStarted()||J.a.start():J.a.done()}},mounted:function(){this.getCategories()},methods:{getCategories:function(){var t,e=this;this.loading=!0,t={search:"simple",val:"list"},this.userInfo&&(t.user_id=this.userInfo.id),Object(at.d)(t).then(function(t){e.categories=t.data,e.getList()})},getProducts:function(t){var e,n=this;this.where.product_id=-1,this.getList(),this.products=[],e={search:"simple",val:t},this.userInfo&&(e.user_id=this.userInfo.id),Object(gt.h)(e).then(function(t){n.products=t.data})},getList:function(){var t,e=this;this.loading=!0,this.where.current_page=this.list.current_page,this.where.per_page=this.list.per_page,this.where.trashed=this.onlyTrashed,this.userInfo&&(this.where.user_id=this.userInfo.id),(t=this.where,Object(Z.a)({url:"coupon",method:"post",data:t})).then(function(t){e.list=t.data,e.loading=!1})},handleSearch:function(){var t={search:this.search.type,val:this.search.value};Object.assign(this.where,t),this.getList()},handleFilterChange:function(t){var e={};t.status?e.status=t.status.join(","):e.status=null,t.type?e.type=t.type.join(","):e.type=null,Object.assign(this.where,e),this.getList()},onChangePage:function(){this.getList()},onChangePageSize:function(t){localStorage.setItem("pageSize",t),this.list.per_page=t,this.getList()},renderUseFor:function(t){return 0?","提示",{type:"warning"}).then(function(){e.loading=!0,a(t.id,0).then(function(){e.$notify({title:"操作成功",message:"优惠券<"+n+">已禁用",type:"info"}),t.enabled=0,e.loading=!1}).catch(function(){e.loading=!1})})},handleEnable:function(t){var e=this,n=t.coupon;this.$confirm("启用优惠券<"+n+">?","提示",{type:"warning"}).then(function(){e.loading=!0,a(t.id,1).then(function(){e.$notify({title:"操作成功",message:"优惠券<"+n+">已启用",type:"success"}),t.enabled=1,e.loading=!1}).catch(function(){e.loading=!1})})},handleDelete:function(t){var e=this,n=t.coupon;this.$confirm("删除优惠券"+n+"? 您可以稍后在回收站查看","提示",{type:"warning"}).then(function(){e.loading=!0,i(t.id).then(function(){e.$notify({title:"操作成功",message:"优惠券"+n+"已删除",type:"info"}),e.getList()}).catch(function(){e.loading=!1})})},checkDelete:function(){var t=this;this.checkedIds.length&&this.$confirm("批量删除选中优惠券? 您可以稍后在回收站查看","提示",{type:"warning"}).then(function(){t.loading=!0,i(t.checkedIds).then(function(){t.$notify({title:"操作成功",message:"选中优惠券已删除",type:"info"}),t.getList()}).catch(function(){t.loading=!1})})},handleAdd:(pi=Object(nt.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:t.next=4;break;case 4:this.$router.push("/admin/coupon/add"),t.next=13;break;case 8:return window.scrollTo(0,0),this.addBoxLoaded=!0,t.next=12,this.$nextTick();case 12:this.showAddBox=!0;case 13:case"end":return t.stop()}},t,this)})),function(){return pi.apply(this,arguments)}),onAdd:function(){this.getList()},handleEdit:function(t){this.editInfo=t},editCallback:function(t){this.editInfo=null,t&&this.getList()}}},ue=Object(b.a)(de,Gt,Jt,!1,null,null,null).exports,fe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"container",class:{"app-container":!t.userInfo}},[n("el-col",{staticClass:"no-bottom-form",attrs:{span:24}},[n("el-form",{staticClass:"list-pre-table",attrs:{inline:!0}},[t.onlyProfit?t._e():n("el-form-item",{staticClass:"mobile-full-width"},[n("el-select",{staticClass:"mobile-full-width",attrs:{size:"small","popper-class":"el-select-group-less-padding","no-data-text":"无分类数据"},on:{change:t.changeCategory},model:{value:t.where.category_id,callback:function(e){t.$set(t.where,"category_id",e)},expression:"where.category_id"}},["admin_free"!==t._project?n("el-option-group",{attrs:{label:"API订单"}},[n("el-option",{attrs:{label:"所有订单(API)",value:t.API_ORDER_ID}})],1):t._e(),n("el-option-group",{attrs:{label:"卡密订单"}},[n("el-option",{attrs:{label:"所有订单",value:-1}}),t._l(t.categories,function(t){return n("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})],2)],1),0t.ORDER_STATUS.UN_PAY.id?n("a",{staticClass:"a-btn",attrs:{onclick:"bus.$emit('"+t.identifier+":show:pay')"}},[t._v("查看")]):t._e()]),n("td",{staticClass:"title"},[t._v(t._s(t.orderInfo.status>t.ORDER_STATUS.UN_PAY.id?"支付":"提交")+"金额")]),n("td",{staticClass:"content-half"},[t._v(t._s(t._f("moneyFilter")(t.orderInfo.paid))+"元 \n "),t.orderInfo.sms_price?n("span",{staticStyle:{"font-size":"12px"}},[t._v("(短信费¥"+t._s(t.orderInfo.sms_price.toFixed(2))+")")]):t._e()])]),n("tr",[n("td",{staticClass:"title"},[t._v("付款时间")]),n("td",{staticClass:"content-half"},[t._v(t._s(t.orderInfo.paid_at))]),n("td",{staticClass:"title"},[t._v("成本")]),n("td",{staticClass:"content-half"},[t._v(t._s(t._f("moneyFilter")(t.orderInfo.cost))+"元")])]),n("tr",[t.isApiOrder?t._e():n("td",{staticClass:"title"},[t._v("联系方式")]),t.isApiOrder?t._e():n("td",{staticClass:"content-half",staticStyle:{"word-wrap":"break-word","line-height":"1"}},[t._v("\n "+t._s(t.orderInfo.contact)+"\n ")]),t.isApiOrder?n("td",{staticClass:"title"},[t._v("通知状态")]):t._e(),t.isApiOrder?n("td",{staticClass:"content-half",staticStyle:{"word-wrap":"break-word","line-height":"1"}},[t.orderInfo.status!==t.ORDER_STATUS.UN_PAY.id?n("div",[n("span",{class:"el-tag el-tag--"+(t.isNotified(t.orderInfo)?"success":"warning")},[t._v("\n "+t._s(t.isNotified(t.orderInfo)?"已通知":"通知失败")+"\n ")]),t._v(" \n "),t.isNotified(t.orderInfo)?t._e():n("a",{staticClass:"a-btn",attrs:{onclick:"bus.$emit('"+t.identifier+":send:notify')"}},[t._v("重发通知")])]):n("div",[n("span")])]):t._e(),n("td",{staticClass:"title"},[t._v("入账")]),n("td",{staticClass:"content-half"},[t._v(t._s(t._f("moneyFilter")(t.orderInfo.income))+"元")])]),n("tr",[n("td",{staticClass:"title"},[t._v("订单状态")]),n("td",{staticClass:"content-half"},[n("span",{class:"el-tag el-tag--"+t.ORDER_STATUS.get(t.orderInfo.status).type},[t._v("\n "+t._s(t.ORDER_STATUS.get(t.orderInfo.status).name)+"\n ")]),t._v(" \n "),t.isApiOrder?t._e():n("div",{staticStyle:{display:"inline"}},[n("span",{class:t.isShipped(t.orderInfo)?"green-text":"amber-text"},[t._v("\n "+t._s(t.isShipped(t.orderInfo)?"(已发货)":""+t.renderOrderSendStatus(t.orderInfo))+"\n ")]),t.isShipped(t.orderInfo)||t.orderInfo.status===t.ORDER_STATUS.UN_PAY.id?t._e():n("a",{staticClass:"a-btn",attrs:{onclick:"bus.$emit('"+t.identifier+":send:card')"}},[t._v("发货")]),t.isShipped(t.orderInfo)?n("a",{staticClass:"a-btn",attrs:{onclick:"bus.$emit('"+t.identifier+":show:card')"}},[t._v("查看")]):t._e()])]),n("td",{staticClass:"title"},[t._v("净利润")]),n("td",{staticClass:"content-half"},[t._v(t._s(t._f("moneyFilter")(t.orderInfo.paid-t.orderInfo.sms_price-t.orderInfo.fee-t.orderInfo.cost))+"元")])]),t.isApiOrder?n("tr",[n("td",{staticClass:"title"},[t._v("通知地址")]),n("td",{staticClass:"content-full",attrs:{colspan:"3"}},[t._v(t._s(t.orderInfo.api_info.notify_url))])]):t._e(),t.isApiOrder?n("tr",[n("td",{staticClass:"title"},[t._v("返回地址")]),n("td",{staticClass:"content-full",attrs:{colspan:"3"}},[t._v(t._s(t.orderInfo.api_info.return_url))])]):t._e(),n("tr",[n("td",{staticClass:"title"},[t._v("备注")]),n("td",{staticClass:"content-full",attrs:{colspan:"3"}},[t._v(t._s(t.orderInfo.remark))])]),n("tr",[n("td",{staticClass:"title"},[t._v("附加信息")]),n("td",{staticClass:"content-full",attrs:{colspan:"3"}},[t.orderInfo.contact_ext?n("div",[t._v("\n "+t._s(t.orderInfo.contact_ext)+"\n "),n("br")]):t._e(),t.orderInfo.status===t.ORDER_STATUS.FROZEN.id?n("span",[t._v("\n 冻结原因: "+t._s(t.orderInfo.frozen_reason||"无")+"\n ")]):t._e()])])])])},ve=[],ye=0,we=1,Ce={props:{orderInfo:{}},data:function(){var t=-1001===this.orderInfo.product_id;return{loading:!1,ORDER_STATUS:he.a,ID_INNER_RETAIL:I.a,FEE_TYPE_MERCHANT:ye,FEE_TYPE_CUSTOMER:we,cardInfo:null,isApiOrder:t,identifier:"orderInfo_"+Math.random()}},watch:{loading:function(t){this.$emit("update:loading",t)}},mounted:function(){var t=this;this._on_show_card=function(){if(t.orderInfo){var e=t.orderInfo.card_orders.map(function(t){return t.card?t.card.card:"未知卡密#"+t.card_id}).join(" ");t.$msgbox({title:"订单卡密信息",message:e,dangerouslyUseHTMLString:!0})}},window.bus.$on(this.identifier+":show:card",this._on_show_card),this._on_show_pay=function(){var e,n;t.orderInfo&&(n="支付方式: "+(e=t.orderInfo.pay?t.orderInfo.pay.name:"支付方式#"+t.orderInfo.pay_id)+" 支付时间: "+t.orderInfo.paid_at+" "+e+"单号(流水号): "+t.orderInfo.pay_trade_no,t.$msgbox({title:"支付信息",message:n,dangerouslyUseHTMLString:!0}))},window.bus.$on(this.identifier+":show:pay",this._on_show_pay),this._on_send_card=function(){if(t.orderInfo){if(!t.orderInfo.product)return t.$msgbox("订单对应商品不存在, 无法发货");(t.orderInfo.product.delivery===gt.a.AUTO?t.$confirm("当前订单状态为<".concat(he.a.get(t.orderInfo.status).name,">, 是否确认发货?"),"询问"):t.$prompt("当前订单状态为<".concat(he.a.get(t.orderInfo.status).name,">, 是否确认发货? 请输入发货卡密"),"提示",{dangerouslyUseHTMLString:!0,confirmButtonText:"确认",cancelButtonText:"取消",inputPattern:/^[\s\S]{1,255}$/,inputErrorMessage:"需1-255字符以内",inputType:"text",closeOnClickModal:!1})).then(function(e){var n=e.value;t.loading=!0,Object(he.k)(t.orderInfo.id,n).then(function(e){Object.assign(t.orderInfo,e.data),t.$notify({title:"发货成功",message:"当前订单已发货成功",type:"success",duration:3e3})}).finally(function(){t.loading=!1})})}},window.bus.$on(this.identifier+":send:card",this._on_send_card),this._on_send_notify=function(){t.orderInfo&&(t.loading=!0,Object(he.g)(t.orderInfo.id).then(function(e){Object.assign(t.orderInfo.api_info,e.data.api_info),t.$msgbox({title:"重发结果",message:e.data.notify_html,dangerouslyUseHTMLString:!1})}).finally(function(){t.loading=!1}))},window.bus.$on(this.identifier+":send:notify",this._on_send_notify)},beforeDestroy:function(){window.bus.$off(this.identifier+":show:card",this._on_show_card),window.bus.$off(this.identifier+":show:pay",this._on_show_pay),window.bus.$off(this.identifier+":send:card",this._on_send_card),window.bus.$off(this.identifier+":send:notify",this._on_send_notify)},methods:{isShipped:function(t){return t.status===he.a.SUCCESS.id||t.card_orders&&t.card_orders.length},isNotified:function(t){return t.api_info&&"success"===t.api_info.notify_ret},renderOrderSendStatus:function(t){return t.status===he.a.UN_PAY.id?"":t.status===he.a.PAID.id?t.send_status===he.b.CARD_UN.id?"待发货":t.send_status===he.b.CARD_PROCESSING.id?"正在处理":t.send_status===he.b.CARD_SUCCESS.id?"已发货":t.send_status===he.b.CARD_FAILED.id?"发货失败":"未发货":"UNKNOWN"}}},n("7431"),xe=Object(b.a)(Ce,be,ve,!1,null,null,null).exports,ke={props:{from:{type:String,default:""},info:{type:Object},_project:{default:"admin_free"}},components:{InfoItem:xe},data:function(){return{loading:!1,loadingRetail:!1,ID_INNER_RETAIL:I.a,orderInfo:null,orderVisible:!0,title:"",showOrders:[]}},mounted:function(){this.showOrder(this.info)},watch:{orderVisible:function(t){t||this.$emit("close")}},methods:{showOrder:function(t){this.orderInfo=t,"complaint"===this.from&&this.orderInfo.retail_chain&&this.orderInfo.retail_chain.length?this.showOrders=[this.orderInfo.retail_chain[0].id]:this.showOrders=[this.info.id],this.title="订单信息"},getRetailChain:function(){var t=this;this.loadingRetail=!0,Object(he.f)(this.orderInfo.id).then(function(e){t.showOrder(e.data)}).finally(function(){t.loadingRetail=!1})}}},n("ea43"),Ae=Object(b.a)(ke,_e,ge,!1,null,null,null).exports,Se=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-dialog",{attrs:{title:"导出订单",visible:t.visible},on:{"update:visible":function(e){t.visible=e},close:function(e){return t.$emit("close")}}},[n("div",[n("p",[t._v("导出同时改变状态")]),n("el-select",{attrs:{size:"small"},model:{value:t.status,callback:function(e){t.status=e},expression:"status"}},[n("el-option",{attrs:{label:"不改变状态",value:-1}}),n("el-option",{attrs:{label:"标记位已完成",value:t.SEND_STATUS.CARD_SUCCESS.id}}),n("el-option",{attrs:{label:"标记位正在处理",value:t.SEND_STATUS.CARD_PROCESSING.id}})],1),t.status===t.SEND_STATUS.CARD_SUCCESS.id?n("div",[n("p",[t._v("请输入发货卡密(当前导出订单都将使用此相同卡密)")]),n("el-input",{attrs:{autocomplete:"false",size:"small"},model:{value:t.card,callback:function(e){t.card=e},expression:"card"}})],1):t._e()],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){return t.$emit("close")}}},[t._v("取消")]),n("el-button",{attrs:{type:"primary"},on:{click:t.handleSubmit}},[t._v("确认导出")])],1)])},Ee=[],Oe={name:"exportDialog",data:function(){return{visible:!0,SEND_STATUS:he.b,status:-1,card:""}},methods:{handleSubmit:function(){this.$emit("export",{status:this.status,card:this.card})}}},Ie=Object(b.a)(Oe,Se,Ee,!1,null,"7484a86d",null).exports,Te=-1001,Re=window.config.functions&&window.config.functions.includes("product_manual"),$e={props:{userInfo:{type:Object,default:null},recentDay:{default:!1},onlyProfit:{default:!1},_project:{default:"admin_free"}},components:{ExportDialog:Ie,OrderInfo:Ae},data:function(){return{isMobile:this.$store.state.app.isMobile,loading:!1,ORDER_STATUS:he.a,SEND_STATUS:he.b,API_ORDER_ID:Te,ID_INNER_RETAIL:me.a,PRODUCT_MANUAL:Re,search:{type:"order_no",value:""},date_range:"",where:{category_id:-1,product_id:-1,showUnPay:0,showUnSend:0},categories:[{id:-2,name:"加载中"}],products:[{id:-2,name:"加载中"}],list:{current_page:1,data:[],from:1,last_page:1,next_page_url:null,per_page:+localStorage.getItem("pageSize")||20,prev_page_url:null,to:0,total:0,profit_sum:{income:0,profit:0}},checkedVal:[],statusFilter:function(){var t,e=[];for(t in he.a)he.a.hasOwnProperty(t)&&"object"===Object(S.a)(he.a[t])&&e.push({text:he.a[t].name,value:he.a[t].id,type:he.a[t].type});return e}(),statusFilterValue:[],pickerOptions:{shortcuts:[{text:"最近一周",onClick:function(t){var e=new Date,n=new Date;n.setTime(n.getTime()-6048e5),t.$emit("pick",[n,e])}},{text:"最近一个月",onClick:function(t){var e=new Date,n=new Date;n.setTime(n.getTime()-2592e6),t.$emit("pick",[n,e])}},{text:"最近三个月",onClick:function(t){var e=new Date,n=new Date;n.setTime(n.getTime()-7776e6),t.$emit("pick",[n,e])}}]},exportDialogVisible:!1,destroyForLoad:!1,isApiOrder:!1,orderInfo:null}},watch:{loading:function(t,e){t?e||J.a.isStarted()||J.a.start():J.a.done()},isApiOrder:function(){var t=this;this.destroyForLoad=!0,this.$nextTick(function(){t.destroyForLoad=!1})}},mounted:function(){"api"===this.$route.query.type&&(this.where.category_id=Te,this.isApiOrder=!0),"admin"===this._project?(this.categories=[],this._loadOrders()):this.getCategories()},methods:{getCategories:function(){var t,e=this;this.loading=!0,t={search:"simple",val:"list"},this.userInfo&&(t.user_id=this.userInfo.id),Object(at.d)(t).then(function(t){e.categories=t.data,e._loadOrders()})},_loadOrders:function(){"paid"===this.$route.query.status?(this.where.showUnSend=1,this.handleShowUnSend(1)):"un_pay"===this.$route.query.status?(this.where.showUnPay=1,this.handleShowUnPay(1)):this.handleShowWithoutUnpay()},changeCategory:function(t){this.isApiOrder?(t!==Te&&(this.isApiOrder=!1),this.getList()):t===Te?(this.isApiOrder=!0,this.getList()):this.getProducts(t)},getProducts:function(t){var e,n=this;this.getList(),this.where.product_id=-1,this.products=[],e={search:"simple",val:t},this.userInfo&&(e.user_id=this.userInfo.id),Object(gt.h)(e).then(function(t){n.products=t.data})},getList:function(){var t=this;this.loading=!0,this.where.current_page=this.list.current_page,this.where.per_page=this.list.per_page,this.where.recent=this.recentDay,this.where.profit=this.onlyProfit?1:0,this.userInfo&&(this.where.user_id=this.userInfo.id),Object(he.e)(this.where).then(function(e){t.list=e.data,t.loading=!1})},handleSearch:function(){var t={search:this.search.type,val:this.search.value};this.date_range&&this.date_range[0]&&this.date_range[1]?(t.start_at=this.date_range[0].format("yyyy-MM-dd"),t.end_at=this.date_range[1].format("yyyy-MM-dd")):(t.start_at=null,t.end_at=null),Object.assign(this.where,t),this.getList()},handleExport:function(){var t=0"),dangerouslyUseHTMLString:!0})},showRemark:function(t){var e=this;this.$prompt("可以在这里修改备注","提示",{confirmButtonText:"保存",cancelButtonText:"取消",inputValue:t.remark,inputPattern:/^[\s\S]{0,100}$/,inputErrorMessage:"备注需100字符以内",inputType:"textarea",closeOnClickModal:!1}).then(function(n){var a=n.value;e.loading=!0,Object(he.c)(t.id,a).then(function(){e.loading=!1,t.remark=a}).catch(function(){e.loading=!1})})},showOrder:function(t){this.orderInfo=t},handleFreeze:function(t){var e=this;if(t.pay_id===me.a)return this.$msgbox({title:"提示",message:"此订单为分销商品自动生成的订单, 请操作原始订单",type:"error"});this.$prompt("冻结订单 ".concat(t.order_no," ? 请输入与冻结原因"),"提示",{dangerouslyUseHTMLString:!0,confirmButtonText:"保存",cancelButtonText:"取消",inputValue:t.frozen_reason,inputPattern:/^[\s\S]{2,100}$/,inputErrorMessage:"冻结原因需2-100字符以内",inputType:"textarea",closeOnClickModal:!1}).then(function(n){var a=n.value;e.loading=!0,Object(he.d)(t.id,a).then(function(n){return 1!==n.data[0]?e.$msgbox({title:"操作失败",message:"未知错误",type:"error"}):1!==n.data[1]?e.$msgbox({title:"操作失败",message:"冻结订单失败, 内部错误",type:"error"}):(e.$notify({title:"操作完成",message:t.order_no+" 已冻结",type:"success"}),void(t.status=he.a.FROZEN.id))}).finally(function(){e.loading=!1})})},handleUnfreeze:function(t){var e=this;if(t.pay_id===me.a)return this.$msgbox({title:"提示",message:"此订单为分销商品自动生成的订单, 请操作原始订单",type:"error"});this.$confirm("解冻订单 "+t.order_no+" ? ","提示",{type:"warning"}).then(function(){e.loading=!0,Object(he.m)(t.id).then(function(n){return 1!==n.data[0]?e.$msgbox({title:"操作失败",message:"未知错误",type:"error"}):1!==n.data[1]?e.$msgbox({title:"操作失败",message:"解冻订单失败, 内部错误",type:"error"}):(e.$notify({title:"操作完成",message:t.order_no+" 已解冻",type:"success"}),void(t.status=n.data[2]))}).finally(function(){e.loading=!1})})},handleRefund:function(t){var e=this;if(t.pay_id===me.a)return this.$msgbox({title:"提示",message:"此订单为分销商品自动生成的订单, 请操作原始订单",type:"error"});this.$confirm("退款订单 "+t.order_no+" ? ","提示",{type:"warning"}).then(function(){e.loading=!0,Object(he.h)(t.id).then(function(n){return 1!==n.data[0]?e.$msgbox({title:"操作失败",message:"未知错误",type:"error"}):1!==n.data[1]?e.$msgbox({title:"操作失败",message:"退款订单失败, 内部错误",type:"error"}):(e.$notify({title:"操作完成",message:t.order_no+" 已退款",type:"success"}),void(t.status=he.a.REFUND.id))}).finally(function(){e.loading=!1})})},checkFreeze:function(){var t,e=this;if(this.checkedVal.length){if(1===this.checkedVal.length)return this.handleFreeze(this.checkedVal[0]);t=this.checkedVal.map(function(t){return t.id}).join(","),this.$prompt("批量冻结选中订单? (只冻结交易成功订单) 请输入与冻结原因","提示",{dangerouslyUseHTMLString:!0,confirmButtonText:"确认",cancelButtonText:"取消",inputPattern:/^[\s\S]{2,100}$/,inputErrorMessage:"冻结原因需2-100字符以内",inputType:"textarea",closeOnClickModal:!1}).then(function(n){var a=n.value;e.loading=!0,Object(he.d)(t,a).then(function(t){e.$notify({title:"操作完成",message:"总订单: ".concat(t.data[0]," 笔,冻结成功 ").concat(t.data[1]," 笔"),type:t.data[0]&&t.data[0]===t.data[1]?"success":"info"}),e.getList()}).catch(function(){e.loading=!1})})}},checkUnfreeze:function(){var t,e=this;if(this.checkedVal.length){if(1===this.checkedVal.length)return this.handleUnfreeze(this.checkedVal[0]);t=this.checkedVal.map(function(t){return t.id}).join(","),this.$confirm("批量解冻选中订单? (只处理已冻结订单)","提示",{type:"warning"}).then(function(){Object(he.m)(t).then(function(t){e.$notify({title:"操作完成",message:"总订单: ".concat(t.data[0]," 笔,解冻成功 ").concat(t.data[1]," 笔"),type:t.data[0]&&t.data[0]===t.data[1]?"success":"info"}),e.getList()}).catch(function(){e.loading=!1})})}},checkRefund:function(){var t,e=this;if(this.checkedVal.length){if(1===this.checkedVal.length)return this.handleRefund(this.checkedVal[0]);t=this.checkedVal.map(function(t){return t.id}).join(","),this.$confirm("批量退款选中订单? (请手动联系用户打款)","提示",{type:"warning"}).then(function(){Object(he.h)(t).then(function(t){e.$notify({title:"操作完成",message:"总订单: ".concat(t.data[0]," 笔,退款成功 ").concat(t.data[1]," 笔"),type:t.data[0]&&t.data[0]===t.data[1]?"success":"info"}),e.getList()}).catch(function(){e.loading=!1})})}},handleSetPaid:function(t){var e,n=this;if(t.pay_id===me.a)return this.$msgbox({title:"提示",message:"此订单为分销商品自动生成的订单, 请操作原始订单",type:"error"});e=t.pay?t.pay.name:"支付方式#"+t.pay_id,this.$prompt("请仔细确认已经收到款项, 确认将订单 ".concat(t.order_no," 设置为已付款并发货? 请输入").concat(e,"内单号(流水号)"),"提示",{dangerouslyUseHTMLString:!0,confirmButtonText:"确认",cancelButtonText:"取消",inputPattern:/^[\s\S]{2,100}$/,inputErrorMessage:"单号需2-100字符以内",inputType:"text",closeOnClickModal:!1}).then(function(e){var a=e.value;n.loading=!0,Object(he.i)(t.id,a).then(function(e){var a=e.data;if(n.loading=!1,Object.assign(t,a.order),0!==a.code)return n.$msgbox({title:"提示",message:a.msg,type:"error",dangerouslyUseHTMLString:!0});n.$notify({title:"操作完成",message:t.order_no+" 已补单成功",type:"success"})}).catch(function(){n.loading=!1})})},handleSendCard:function(t){var e=this;if(!t.product)return this.$msgbox("订单对应商品不存在, 无法发货");(t.product.delivery===gt.a.AUTO?this.$confirm("当前订单状态为<".concat(he.a.get(t.status).name,">, 是否确认发货?"),"询问"):this.$prompt("当前订单状态为<".concat(he.a.get(t.status).name,">, 是否确认发货? 请输入发货卡密"),"提示",{dangerouslyUseHTMLString:!0,confirmButtonText:"确认",cancelButtonText:"取消",inputValue:"已充值成功",inputPattern:/^[\s\S]{1,255}$/,inputErrorMessage:"需1-255字符以内",inputType:"text",closeOnClickModal:!1})).then(function(n){var a=n.value;e.loading=!0,Object(he.k)(t.id,a).then(function(n){Object.assign(t,n.data),e.$notify({title:"发货成功",message:"当前订单已发货成功",type:"success",duration:3e3})}).finally(function(){e.loading=!1})})},handleSetSendStatus:function(t,e){if(e===he.b.CARD_SUCCESS.id)return this.handleSendCard(t);var n=t.send_status;t.send_status=e,Object(he.j)(t.id,e).catch(function(){t.send_status=n})}}},n("1e6a"),Pe=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("order-list",{attrs:{recentDay:7}})},De=[],Me={components:{orderList:je=Object(b.a)($e,fe,pe,!1,null,null,null).exports}},ze=Object(b.a)(Me,Pe,De,!1,null,null,null).exports,Ue=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("order-list",{attrs:{onlyProfit:!0}})},Le=[],Ne={components:{orderList:je}},Fe=Object(b.a)(Ne,Ue,Le,!1,null,null,null).exports,Be=function(t){return function(){return n("1a5d")("./"+t+".vue")}},l.default.use(c.default),Ve=[{path:"/admin/login",name:"登录",component:Be("login/login"),hidden:!0},{path:"/admin/404",name:"404 Not Found",component:v,hidden:!0},{path:"/admin/",redirect:"/admin/dashboard/index",hidden:!0},{path:"/admin/dashboard",component:d.default,redirect:"/admin/dashboard/index",hidden:!1,noDropdown:!0,icon:"tachometer-alt",children:[{path:"index",name:"概览",component:Be("dashboard/index")}]},{path:"/admin/system",component:d.default,redirect:"noredirect",hidden:!1,icon:"cogs",name:"管理中心",children:[{path:"set",name:"网站设置",icon:"cog",component:Be("system/set/index")},{path:"pay",name:"支付渠道",icon:"credit-card",component:q},{path:"logs",name:"登录日志",icon:"regular/sticky-note",component:K},{path:"security",name:"修改密码",icon:"regular/shield-alt",component:Be("system/security/index")}]},{path:"/admin/product",component:d.default,redirect:"noredirect",hidden:!1,icon:"cubes",name:"商品管理",children:[{path:"category",name:"商品分类",icon:"bars",component:pt},{path:"list",name:"商品列表",icon:"bars",component:Rt},{path:"add",name:"添加商品",icon:"regular/plus",component:xt},{path:"card/add",name:"添加卡密",icon:"regular/plus",component:Dt},{path:"card/list",name:"卡密管理",icon:"bars",component:Yt},{path:"card/recycle",name:"卡密回收站",icon:"light/trash-alt",component:Qt}]},{path:"/admin/order",component:d.default,redirect:"noredirect",hidden:!1,icon:"list-ul",name:"交易管理",children:[{path:"list",name:"订单记录",icon:"bars",component:je},{path:"recent",name:"7日订单",icon:"bars",component:ze},{path:"analysis",name:"收益统计",icon:"chart-bar",component:Fe}]},{path:"/admin/coupon",component:d.default,redirect:"noredirect",hidden:!1,icon:"tags",name:"营销助手",children:[{path:"add",name:"添加优惠券",icon:"regular/plus",component:ce},{path:"list",name:"管理优惠券",icon:"bars",component:ue}]}],Ye=new c.default({mode:"history",scrollBehavior:function(){return{y:0}},routes:Ve}),He=[{path:"/admin/about",component:d.default,redirect:"/admin/about/index",hidden:!1,noDropdown:!0,icon:"info",children:[{path:"index",name:"关于系统",component:x}]},{path:"/*",redirect:"/admin/404",hidden:!0}],qe=n("2f62"),We=n("768b"),n("ac4d"),n("8a81"),Ge={state:{sidebar:{opened:!(Qe=n("a80e")).a.isMobile()&&!+localStorage.getItem("sidebarStatus")},theme:"default",livenewsChannels:localStorage.getItem("livenewsChannels")||"[]",visitedViews:[],isMobile:Qe.a.isMobile()},mutations:{TOGGLE_SIDEBAR:function(t){t.sidebar.opened?localStorage.setItem("sidebarStatus","1"):localStorage.setItem("sidebarStatus","0"),t.sidebar.opened=!t.sidebar.opened},ADD_VISITED_VIEWS:function(t,e){t.visitedViews.some(function(t){return t.path===e.path})||t.visitedViews.push({name:e.name,path:e.path})},DEL_VISITED_VIEWS:function(t,e){var n,a,i,o,r,s=!0,l=!1,c=void 0;try{for(a=t.visitedViews.entries()[Symbol.iterator]();!(s=(i=a.next()).done);s=!0)if(r=(o=Object(We.a)(i.value,2))[0],o[1].path===e.path){n=r;break}}catch(t){l=!0,c=t}finally{try{s||null==a.return||a.return()}finally{if(l)throw c}}t.visitedViews.splice(n,1)}},actions:{ToggleSideBar:function(t){(0,t.commit)("TOGGLE_SIDEBAR")},addVisitedViews:function(t,e){(0,t.commit)("ADD_VISITED_VIEWS",e)},delVisitedViews:function(t,e){(0,t.commit)("DEL_VISITED_VIEWS",e)}}},Je=n("7ded"),Ze=n("a78e"),Xe=n.n(Ze),Ke="admin_free-token",tn={state:{token:o(),userInfo:{},role:""},mutations:{SET_TOKEN:function(t,e){t.token=e},SET_USER_INFO:function(t,e){t.userInfo=e},SET_ROLE:function(t,e){t.role=e}},actions:{Login:function(t,e){var n=t.commit;return new Promise(function(t,a){Object(Je.d)(e).then(function(a){var i,o=a.data,r=o.user;i=o.token,e.remember,Xe.a.set(Ke,i),n("SET_TOKEN",o.token),n("SET_USER_INFO",r),n("SET_ROLE",r.role),t(o)}).catch(function(t){a(t)})})},GetInfo:function(t){var e=t.commit,n=t.state;return new Promise(function(t,a){Object(Je.b)(n.token).then(function(n){var a=n.data.user;e("SET_USER_INFO",a),e("SET_ROLE",a.role),t(n)}).catch(function(t){a(t)})})},Logout:function(t){var e=t.commit,n=t.state;return new Promise(function(t,a){Object(Je.e)(n.token).then(function(){e("SET_TOKEN",""),e("SET_ROLE",""),r(),t()}).catch(function(){e("SET_TOKEN",""),e("SET_ROLE",""),r(),t()})})}}},en={state:{routers:Ve,addRouters:[]},mutations:{SET_ROUTERS:function(t,e){t.addRouters=e,t.routers=Ve.concat(e)}},actions:{GenerateRoutes:function(t,e){var n=t.commit,a=e.user;return new Promise(function(t){var e;e=-1=a.length-1){if(r(!0),e){t.error_code=508;var c=n+a[l]+i;k(t,c)}}else s(l+1);else r(!1)})}(0)},x=function(e,n,a,i){if(c(a.getLib))return a._extend(a.getLib),void i(a);if(a.offline)i(a._get_fallback_config());else{var o="geetest_"+_();t[o]=function(e){"success"==e.status?i(e.data):e.status?i(a._get_fallback_config()):i(e),t[o]=void 0;try{delete t[o]}catch(e){}},C(a,!0,a.protocol,e,n,{gt:a.gt,callback:o},function(t){t&&i(a._get_fallback_config())})}},k=function(t,e){C(t,!1,t.protocol,["monitor.geetest.com"],"/monitor/send",{time:m(),captcha_id:t.gt,challenge:t.challenge,pt:f,exception_url:e,error_code:t.error_code},function(t){})},A=function(t,e){var n={networkError:"网络错误",gtTypeError:"gtå—段ä¸æ˜¯å—符串类型"};if("function"!=typeof e.onError)throw Error(n[t]);e.onError(n[t])},function(){return t.Geetest||a.getElementById("gt_lib")}()&&(h.slide="loaded"),t.initGeetest=function(e,a){var i=new n(e);e.https?i.protocol="https://":e.protocol||(i.protocol=t.location.protocol+"//"),"050cffef4ae57b5d5e529fea9540b0d1"!==e.gt&&"3bd38408ae4af923ed36e13819b14d42"!==e.gt||(i.apiserver="yumchina.geetest.com/",i.api_server="yumchina.geetest.com"),c(e.getType)&&i._extend(e.getType),x([i.api_server||i.apiserver],i.typePath,i,function(e){var n,o=e.type,r=function(){i._extend(e),a(new t.Geetest(i))};p[o]=p[o]||[],"init"===(n=h[o]||"init")?(h[o]="loading",p[o].push(r),C(i,!0,i.protocol,e.static_servers||e.domains,e[o]||e.path,null,function(t){var e,n,a,r;if(t)h[o]="fail",A("networkError",i);else{for(h[o]="loaded",n=0,a=(e=p[o]).length;n'.concat(new l.QuillDeltaToHtmlConverter(e.ops).convert(),"
")}function o(t){var e=document.createElement("div"),n=document.createTextNode(t);return e.appendChild(n),e.innerHTML.replace(/"/g,""").replace(/'/g,"'")}function r(){var t,e,n=0'.concat(new v.QuillDeltaToHtmlConverter(e.ops).convert(),"
")}function r(t){var e=document.createElement("div"),n=document.createTextNode(t);return e.appendChild(n),e.innerHTML.replace(/"/g,""").replace(/'/g,"'")}function s(){var t,e,n=0=parseInt(t[e][0])){o=t[e][1];break}return o},priceAll:function(){var t=parseInt(this.buyCount)||0;return this.pricePer*t},renderPrice:function(){var t,e=this.priceAll,n=0;return this.couponInfo&&(this.couponInfo.discount_type===q?e>=this.couponInfo.discount_val&&(n=this.couponInfo.discount_val):this.couponInfo.discount_type===H&&(n=Math.round(e*this.couponInfo.discount_val/100)),e-=n),t=0,1==+this.shop.fee_type&&this.payway&&0<(t=Math.round(e*this.payway.fee/(1-this.payway.fee)))&&(e+=t),this.sendSms&&(e+=this.sms_send_order.sms_price),{price:e,fee:t,discount:n}},renderDiscount:function(){var t,e;return this.canPriceWhole?(t=this.product.price_whole,e="",t.forEach(function(t){e+="满".concat(t[0],"件,每件¥").concat((t[1]/100).toFixed(2)," ")}),e):"无"},canPriceWhole:function(){return this.product.price_whole&&"object"===Object(h.a)(this.product.price_whole)&&this.product.price_whole.length},showType_List_ShowList:function(){return"list"===this.showType&&null===this.product}},watch:{category:function(t){null===t&&this.$refs.category&&(this.$refs.category.isFocused=!1),this.handleCategoryChange(t)},product:function(t){null===t&&this.$refs.product&&(this.$refs.product.isFocused=!1),this.handleProductChange(t)},buyCount:function(){this.checkCoupon()}},mounted:function(){var t=this;this.shop?("product"===this.shopType?(this.categories=this.config.categories,this.category=this.config.categories[0],this.product=this.config.product,this.product.password=function(t,e){e||(e=window.location.href),t=t.replace(/[\[\]]/g,"\\$&");var n=RegExp("[?&]"+t+"(=([^]*)|&|#|$)").exec(e);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null}("p"),this.product=this.config.product):this.config.categories&&this.config.categories.length?(this.categories=this.config.categories,"dropdown"!==this.showType&&"button"!==this.showType||1!==this.categories.length||this.categories[0].password_open||(this.category=this.categories[0])):(this.categories=[{id:-2,name:"没有在售商品"}],this.category=this.categories[0]),window.config.vcode.buy&&(this.verifyCodeLoading=!0,this.$nextTick(function(){t.$verifyCode.init().then(function(){t.verifyCodeLoading=!1}).catch(function(e){t.$alert(e.message+" 请刷新页面重试","验证码加载失败")})})),this.onContactInput(!1),this.onContactExtInput(!1)):"buy"===window.$router.nav&&window.$router.push("record")},methods:{renderDelta:i,handleCategoryChange:(he=Object(b.a)(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if("product"===this.shopType)return t.abrupt("return");t.next=2;break;case 2:if(!e||e.id<=0||e.progress)return t.abrupt("return");t.next=4;break;case 4:if(this.product=null,e.products){t.next=43;break}if(n="",e.password_open)return t.prev=8,t.next=11,this.$alert({message:"分类密码",title:"请输入分类密码",needInput:!0,cancelBtnTitle:"取消"});t.next=19;break;case 11:n=t.sent.input,t.next=19;break;case 14:return t.prev=14,t.t0=t.catch(8),console.log("cancel",t.t0),this.category=null,t.abrupt("return");case 19:return t.prev=19,this.$set(e,"progress",!0),t.t1=this,t.t2=e,t.next=25,this.$http.post("product",{category_id:e.id,password:n});case 25:if(t.t3=t.sent.data,t.t1.$set.call(t.t1,t.t2,"products",t.t3),e.password=n,e.products&&e.products.length){t.next=32;break}return e.products=[{id:-2,name:"此分类下没有商品"}],this.product=e.products[0],t.abrupt("return");case 32:t.next=38;break;case 34:return t.prev=34,t.t4=t.catch(19),this.category=null,t.abrupt("return");case 38:return t.prev=38,this.$set(e,"progress",!1),t.finish(38);case 41:t.next=44;break;case 43:e.products.length||(e.products=[{id:-2,name:"此分类下没有商品"}]);case 44:"dropdown"!==this.showType&&"button"!==this.showType||1!==e.products.length||e.products[0].password_open||(this.product=e.products[0]);case 45:case"end":return t.stop()}},t,this,[[8,14],[19,34,38,41]])})),function(t){return he.apply(this,arguments)}),handleProductChange:(pe=Object(b.a)(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e||e.id<=0)return t.abrupt("return");t.next=2;break;case 2:if(e.price_whole&&"string"==typeof e.price_whole&&"["===e.price_whole[0]&&(e.price_whole=JSON.parse(e.price_whole)),e.fields&&"string"==typeof e.fields&&"{"===e.fields[0]&&(Object.assign(this.fields,JSON.parse(e.fields)),this.fields.values=Array(this.fields.ext.length),this.fields.errors=Array(this.fields.ext.length)),this.onContactInput(!1),this.onContactExtInput(!1),"product"===this.shopType){t.next=33;break}if(e.password_open&&void 0===e.password)return n="",t.prev=9,this.$set(e,"progress",!0),t.next=13,this.$alert({message:"商品密码",title:"请输入商品密码",needInput:!0,cancelBtnTitle:"取消"});t.next=33;break;case 13:n=t.sent.input,t.next=21;break;case 16:return t.prev=16,t.t0=t.catch(9),this.$set(e,"progress",!1),this.product=null,t.abrupt("return");case 21:return t.prev=21,t.next=24,this.$http.post("product/password",{product_id:e.id,password:n});case 24:e.password=n,t.next=30;break;case 27:t.prev=27,t.t1=t.catch(21),this.product=null;case 30:return t.prev=30,this.$set(e,"progress",!1),t.finish(30);case 33:case"end":return t.stop()}},t,this,[[9,16],[21,27,30,33]])})),function(t){return pe.apply(this,arguments)}),showDiscount:function(t){var e="";t.price_whole.forEach(function(t){e+="满".concat(t[0],"件,每件¥").concat((t[1]/100).toFixed(2)," ")}),this.$alert(e,"批发优惠")},onCountInput:function(){this.buyCount=this.buyCount?parseInt(this.buyCount):0,this.buyCountthis.product.buy_max?this.countErr="该商品限购".concat(this.product.buy_max,"件,请重新选择"):this.countErr=""},onCouponChange:function(t){var e=this;if(this.coupon="string"==typeof t?t:t.target.value,!this.coupon||!this.coupon.length)return this.couponErr="",void(this.couponInfo=null);this.submitting=!0,this.$http.post("coupon",{category_id:this.category.id,product_id:this.product.id,coupon:this.coupon}).then(function(t){e.couponInfo=t.data,e.checkCoupon()}).catch(function(){e.couponInfo=null,e.couponErr="优惠券信息无效"}).finally(function(){e.submitting=!1})},checkCoupon:function(){this.couponErr="",this.couponInfo&&this.couponInfo.discount_type===q&&this.priceAll"),"联系信息无效"));t.next=21;break;case 21:case 25:t.next=30;break;case 27:return t.prev=27,t.t0=t.catch(22),t.abrupt("return");case 30:this.payConfirmShow=!0;case 31:case"end":return t.stop()}},t,this,[[22,27]])})),function(){return de.apply(this,arguments)}),showWarningTip:(ue=Object(b.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.$alert({message:'\n \n 本站仅提供自动发货服务,不做任何商品售后 \n 发现假卡或欺诈,请于当天来发卡平台投诉 ,\n 过期概不受理 \n (下单后请于15分钟内完成支付)
\n ',title:"重要声明",cancelBtnTitle:"返回",submitBtnTitle:"继续购买"}));case 2:case"end":return t.stop()}},t,this)})),function(){return ue.apply(this,arguments)}),confirmPay:(le=Object(b.a)(regeneratorRuntime.mark(function t(){var e,n,i;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(window.config.vcode.buy)return t.prev=1,t.next=4,this.$verifyCode.verify();t.next=11;break;case 4:this.validate=t.sent,t.next=11;break;case 7:return t.prev=7,t.t0=t.catch(1),this.$alert(t.t0.message||"请重新验证","验证码验证失败"),t.abrupt("return");case 11:if((e=g.get("customer"))&&32===e.length||(e=o(32),g.set("customer",e,2592e6)),n=window.config.url+"/api/shop/buy?category_id=".concat(this.category.id,"&product_id=").concat(this.product.id),this.category.password&&(n+="&category_password="+encodeURIComponent(this.category.password)),this.product.password&&(n+="&product_password="+encodeURIComponent(this.product.password)),this.coupon&&(n+="&coupon="+encodeURIComponent(this.coupon)),n+="&count=".concat(this.buyCount),n+="&contact=".concat(encodeURIComponent(this.contact),"&contact_ext=").concat(encodeURIComponent(this.calcContactExt())),n+="&customer=".concat(e,"&pay_id=").concat(this.payway.id),window.config.vcode.buy)for(i in this.validate)this.validate.hasOwnProperty(i)&&(n+="&".concat(i,"=").concat(encodeURIComponent(this.validate[i])));return window.open(n,"_blank"),"flow"===this.singleMode&&(this.payConfirmShow=!1),t.prev=23,this.$alert({message:"请在弹出的窗口中完成付款",title:"提示",cancelBtnTitle:"返回",submitBtnTitle:"已付款,查询订单"}),window.$router.push("record",{tab:"cookie"}),t.next=28,this.$nextTick();case 28:window.vm.$emit("goRecordCookie"),t.next=34;break;case 31:t.prev=31,t.t1=t.catch(23),console.log("cancel");case 34:case"end":return t.stop()}},t,this,[[1,7],[23,31]])})),function(){return le.apply(this,arguments)})}},n("6d1f"),n("348e"),K=Object(A.a)(X,_,y,!1,null,"82ddf5d0",null).exports,tt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"content"},[n("div",{staticClass:"record-title",staticStyle:{"margin-top":"-4px"}},[t._v("订单查询方式:")]),n("mu-tabs",{staticClass:"record-tabs",attrs:{value:t.tab},on:{change:t.handleChangeTab}},[n("mu-tab",{attrs:{value:"cookie"}},[t._v("浏览器缓存")]),n("mu-tab",{attrs:{value:"order_no"}},[t._v("订单号")]),n("mu-tab",{attrs:{value:"contact"}},[t._v("联系方式")])],1),n("mu-card",{staticClass:"my-card white-background",staticStyle:{"margin-bottom":"24px"}},[n("mu-card-text",{directives:[{name:"show",rawName:"v-show",value:"cookie"===t.tab,expression:"tab === 'cookie'"}]},[t._v("\n 订单提交时浏览器会自动保存您的订单信息,不同浏览器可能显示结果不同。"),n("br"),n("p",{staticClass:"text-center",staticStyle:{"margin-top":"9px"}},[n("mu-button",{staticClass:"record-input-btn",attrs:{disabled:t.verifyLoading},on:{click:t.handleSearch}},[t._v(t._s(t.verifyLoading?"加载中":"查询")+"\n ")])],1),t._v("\n 订单查询仅能查询最近30天的数据。\n ")]),n("mu-card-text",{directives:[{name:"show",rawName:"v-show",value:"order_no"===t.tab,expression:"tab === 'order_no'"}]},[n("mu-text-field",{staticClass:"record-input",attrs:{name:"order_no",type:"text",label:"订单号",placeholder:"请输入订单号"},on:{input:function(e){t.loaded=!1}},model:{value:t.order_no,callback:function(e){t.order_no=e},expression:"order_no"}}),n("div",{staticClass:"equal-with-mu"},[n("mu-button",{staticClass:"record-input-btn",attrs:{disabled:t.verifyLoading},on:{click:t.handleSearch,change:t.onOrderNoChange}},[t._v(t._s(t.verifyLoading?"加载中":"查询")+"\n ")])],1),t._v("\n 订单查询仅能查询最近30天的数据。\n ")],1),n("mu-card-text",{directives:[{name:"show",rawName:"v-show",value:"contact"===t.tab,expression:"tab === 'contact'"}]},[n("mu-text-field",{staticClass:"record-input",attrs:{name:"contact",type:"text",label:"联系方式",placeholder:"购买时填写的联系方式"},on:{input:function(e){t.loaded=!1}},model:{value:t.contact,callback:function(e){t.contact=e},expression:"contact"}}),n("div",{staticClass:"equal-with-mu"},[n("mu-button",{staticClass:"record-input-btn",attrs:{disabled:t.verifyLoading},on:{click:t.handleSearch,change:t.onContactChange}},[t._v(t._s(t.verifyLoading?"加载中":"查询")+"\n ")])],1),t._v("\n 订单查询仅能查询最近30天的数据。\n ")],1)],1),n("mu-card",{directives:[{name:"show",rawName:"v-show",value:t.loading||t.list.length||t.loaded,expression:"loading || list.length || loaded"}],staticClass:"my-card white-background"},[n("mu-card-text",[t.loading?n("mu-circular-progress",{staticStyle:{width:"100%","text-align":"center"},attrs:{size:40}}):t._e(),n("p",{directives:[{name:"show",rawName:"v-show",value:!(t.loading||t.list&&0!==t.list.length),expression:"!loading && (!list || list.length === 0)"}]},[t._v("没有订单记录")]),t._l(t.list,function(e){return n("table",{key:e.id,staticClass:"cx_tab",attrs:{width:"100%",border:"1",cellspacing:"0",cellpadding:"10"}},[n("tbody",[e.product_name?n("tr",[n("th",{attrs:{scope:"row",width:"260"}},[t._v("商品名称")]),n("td",[t._v(t._s(e.product_name))])]):t._e(),n("tr",[n("th",{attrs:{scope:"row",width:"260"}},[t._v("下单时间")]),n("td",[t._v(t._s(e.created_at))])]),n("tr",[n("th",{attrs:{scope:"row"}},[t._v("订单号")]),n("td",[t._v(t._s(e.order_no))])]),n("tr",[n("th",{attrs:{scope:"row"}},[t._v("订单数目")]),n("td",[t._v(t._s(e.count)+" ("+t._s(t._f("moneyFormatterFilter")(t._f("moneyFilter")(e.paid)))+")")])]),n("tr",[n("th",{attrs:{scope:"row"}},[t._v("订单信息")]),n("td",{staticClass:"over-ellipsis"},[e.status===t.STATUS_SUCCESS||e.status===t.STATUS_FROZEN?n("a",{staticClass:"cursor-pointer",staticStyle:{"line-height":"24px","text-decoration":"underline"},attrs:{target:"_blank",href:"/pay/result/"+e.order_no}},[t._v("查看卡密\n ")]):e.status===t.STATUS_UNPAY?n("span",{staticStyle:{"line-height":"24px"}},[t._v("未支付\n "),n("a",{staticClass:"cursor-pointer",attrs:{target:"_blank",href:"/pay/"+e.order_no}},[t._v("支付")])]):e.status===t.STATUS_PAID?n("a",{staticClass:"cursor-pointer",staticStyle:{"line-height":"24px"},on:{click:function(n){return t.handleShowPaidTip(e)}}},[t._v(t._s(t.renderOrderSendStatus(e)))]):e.status===t.STATUS_REFUND?n("span",{staticStyle:{"line-height":"24px"}},[t._v("已退款")]):n("span",{staticStyle:{"line-height":"24px"}},[t._v("未知状态")]),"shop"===t.PROJECT?[e.complaint?t._e():n("mu-chip",{attrs:{color:"#fb4b4b","text-color":"#fff"},on:{click:function(n){return t.handleReport(e)}}},[t._v("投诉\n ")]),e.complaint?n("mu-chip",{attrs:{color:"#03a9f4","text-color":"#fff"},on:{click:function(n){return t.handleShowReport(e)}}},[t._v("查看投诉\n ")]):t._e()]:t._e()],2)]),e.contact?n("tr",[n("th",{attrs:{scope:"row"}},[t._v("联系信息")]),n("td",[t._v(t._s(e.contact))])]):t._e(),e.contact_ext?n("tr",[n("th",{attrs:{scope:"row"}},[t._v("附加信息")]),n("td",[t._v(t._s(e.contact_ext))])]):t._e()])])})],2)],1)],1)},et=[],n("386d"),nt={STATUS_UN:{id:0,name:"投诉待处理",type:"info"},STATUS_ING:{id:1,name:"投诉处理中",type:"primary"},STATUS_APPROVE:{id:2,name:"已退款",type:"success"},STATUS_DENIED:{id:3,name:"投诉失败",type:"warning"},STATUS_CANCEL:{id:4,name:"投诉已撤销",type:"info"},get:function(t){for(var e in this)if(this.hasOwnProperty(e)&&this[e].id===t)return this[e];return{id:t,type:"danger",name:"未知状态"}}},ot=0,it=1,rt=2,st=3,at=4,ct=100,lt=101,ut=102,dt=103,pt={data:function(){return{STATUS_UNPAY:ot,STATUS_PAID:it,STATUS_SUCCESS:rt,STATUS_FROZEN:st,STATUS_REFUND:at,COMPLAINT_STATUS:nt,PROJECT:"shop_free",verifyLoading:!1,verifying:!1,loading:!1,loaded:!1,columns:[{title:"时间",width:140,name:"created_at",align:"center"},{title:"订单",width:160,name:"order_no",align:"center"},{title:"数目/金额",width:100,name:"count"},{title:"订单信息",width:120,name:"iron"}],order_no:"",contact:"",list:[],list_bak:{cookie:[],order_no:[],contact:[]},tab:""}},mounted:(me=Object(b.a)(regeneratorRuntime.mark(function t(){var e=this;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(window.$router.query.tab?this.tab=window.$router.query.tab:this.tab="contact",window.config.vcode.search)return this.verifyLoading=!0,t.prev=3,t.next=6,this.$nextTick();t.next=19;break;case 6:return t.next=8,this.$verifyCode.init();case 8:console.log("this.$verifyCode.init success"),t.next=16;break;case 11:t.prev=11,t.t0=t.catch(3),console.log(t.t0),console.log("this.$verifyCode.init failed"),this.$alert(t.t0.message+" 请刷新页面重试","验证码加载失败");case 16:return t.prev=16,this.verifyLoading=!1,t.finish(16);case 19:window.vm.$on("goRecordCookie",function(){e.tab="cookie",e.handleSearch()});case 20:case"end":return t.stop()}},t,this,[[3,11,16,19]])})),function(){return me.apply(this,arguments)}),beforeDestroy:function(){window.vm.$off("goRecordCookie")},methods:{handleChangeTab:function(t){"cookie"===this.tab?this.list_bak.cookie=this.list:"order_no"===this.tab?this.list_bak.order_no=this.list:"contact"===this.tab&&(this.list_bak.contact=this.list),this.tab=t,window.$router.push(window.$router.nav,{tab:t}),this.loaded=!1,this.loading=!1,this.verifying=!1,"cookie"===this.tab?this.list=this.list_bak.cookie:"order_no"===this.tab?this.list=this.list_bak.order_no:"contact"===this.tab&&(this.list=this.list_bak.contact)},onOrderNoChange:function(t){this.order_no=t.target?t.target.value:t},onContactChange:function(t){this.contact=t.target?t.target.value:t},handleSearch:(fe=Object(b.a)(regeneratorRuntime.mark(function t(e){var n,o,i=this;return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(this.order_no=this.order_no.trim(),this.contact=this.contact.trim(),"order_no"!==(n=this.tab)){t.next=7;break}if(19!==this.order_no.length)return t.abrupt("return",this.$alert("请输入19位订单号进行查询"));t.next=6;break;case 6:this.list_bak.order_no=[];case 7:if("contact"!==n){t.next=11;break}if(this.contact.length<6)return t.abrupt("return",this.$alert("输入的联系方式格式不正确"));t.next=10;break;case 10:this.list_bak.contact=[];case 11:if(o={},window.config.vcode.search)return this.verifying=!0,t.prev=14,t.next=17,this.$verifyCode.verify();t.next=29;break;case 17:o=t.sent,t.next=26;break;case 20:return t.prev=20,t.t0=t.catch(14),console.log("this.$verifyCode.verify failed"),console.log(t.t0),this.$alert(t.t0.message||"请重新验证","验证码验证失败"),t.abrupt("return");case 26:return t.prev=26,this.verifying=!1,t.finish(26);case 29:this.list=[],this.loading=!0,this.$http.post("record/get",Object(p.a)({type:n,order_no:this.order_no,contact:this.contact},o)).then(function(t){n===i.tab&&(t.data.list&&(i.list=t.data.list),i.loading=!1,i.loaded=!0,t.data.msg&&i.$alert({message:t.data.msg,submitBtnTitle:"我已知晓"}))}).catch(function(){i.loading=!1,i.loaded=!1});case 32:case"end":return t.stop()}},t,this,[[14,20,26,29]])})),function(t){return fe.apply(this,arguments)}),showCardDetail:function(t){t&&t.length?this.$alert({message:'由于安全原因订单商品详情不予显示
",title:"卡密详情",scrollable:!0}):this.$alert("该订单无卡密信息 或 卡密信息已隐藏")},renderOrderSendStatus:function(t){return t.status===it?t.send_status===ct?"未发货":t.send_status===lt?"正在处理":t.send_status===ut?"已发货":t.send_status===dt?"发货失败":"未发货":"UNKNOWN"},handleShowPaidTip:function(t){return t.send_status===ct?this.$alert("此订单暂未发货,请耐心等待"):t.send_status===lt?this.$alert("此订单正在处理中,请耐心等待"):t.send_status===ut?this.$alert("此订单已成功发货,有疑问请联系店铺客服"):t.send_status===dt?this.$alert("此订单发货失败,请联系店铺客服"):void this.$alert("此商品库存不足,请联系店铺客服补货")},handleReport:function(t){window.vm.$emit("goReport",{order_no:t.order_no}),window.$router.push("report",{order_no:t.order_no})},handleShowReport:function(t){window.vm.$emit("goReportInfo",{info:t.order_no}),window.$router.push("report",{info:t.order_no})}}},n("78d9"),ht=Object(A.a)(pt,tt,et,!1,null,"7f66a2d0",null).exports,ft=null,ft=l.default.extend({template:"disabled
"}),mt="https://github.com/Tai7sy/card-system",vt=window.config.company,Ct={components:{BuyView:K,RecordView:ht,ReportView:ft},data:function(){return{config:window.config,PROJECT:"shop_free",opacity:!1,isMobile:C(),topNav:"",bottomNav:"",cp_link:mt,cp_company:vt}},created:function(){var t,e,n=this,o=[];o=["buy","record"],window.$router={nav:"",query:{},push:function(t){var e=1=o.length-1){if(s(!0),e){t.error_code=508;var l=n+o[c]+i;A(t,l)}}else a(c+1);else s(!1)})}(0)},k=function(e,n,o,i){if(l(o.getLib))return o._extend(o.getLib),void i(o);if(o.offline)i(o._get_fallback_config());else{var r="geetest_"+C();t[r]=function(e){"success"==e.status?i(e.data):e.status?i(o._get_fallback_config()):i(e),t[r]=void 0;try{delete t[r]}catch(e){}},x(o,!0,o.protocol,e,n,{gt:o.gt,callback:r},function(t){t&&i(o._get_fallback_config())})}},A=function(t,e){x(t,!1,t.protocol,["monitor.geetest.com"],"/monitor/send",{time:v(),captcha_id:t.gt,challenge:t.challenge,pt:p,exception_url:e,error_code:t.error_code},function(t){})},E=function(t,e){var n={networkError:"网络错误",gtTypeError:"gtå—段ä¸æ˜¯å—符串类型"};if("function"!=typeof e.onError)throw Error(n[t]);e.onError(n[t])},function(){return t.Geetest||o.getElementById("gt_lib")}()&&(m.slide="loaded"),t.initGeetest=function(e,o){var i=new n(e);e.https?i.protocol="https://":e.protocol||(i.protocol=t.location.protocol+"//"),"050cffef4ae57b5d5e529fea9540b0d1"!==e.gt&&"3bd38408ae4af923ed36e13819b14d42"!==e.gt||(i.apiserver="yumchina.geetest.com/",i.api_server="yumchina.geetest.com"),l(e.getType)&&i._extend(e.getType),k([i.api_server||i.apiserver],i.typePath,i,function(e){var n,r=e.type,s=function(){i._extend(e),o(new t.Geetest(i))};f[r]=f[r]||[],"init"===(n=m[r]||"init")?(m[r]="loading",f[r].push(s),x(i,!0,i.protocol,e.static_servers||e.domains,e[r]||e.path,null,function(t){var e,n,o,s;if(t)m[r]="fail",E("networkError",i);else{for(m[r]="loaded",n=0,o=(e=f[r]).length;n handleVerifySuccess")),this.promise.verify.resolve&&this.promise.verify.resolve(this.validate||{})},reloadCapture:(ve=Object(b.a)(regeneratorRuntime.mark(function t(){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return console.log("verifyCode-".concat(this.selfId," - reloadCapture -> init")),this.loaded=!1,t.next=4,this.$nextTick();case 4:return this.selfId="-"+ ++window.geetestCount,console.log("verifyCode-".concat(this.selfId," - reloadCapture -> init next")),this.capture=!1,this.loaded=!0,t.next=10,this.$nextTick();case 10:return t.next=12,this.init();case 12:return t.abrupt("return",t.sent);case 13:case"end":return t.stop()}},t,this)})),function(){return ve.apply(this,arguments)})}},Et={components:{Layout:gt,Alert:wt,VerifyCode:Object(A.a)(At,xt,kt,!1,null,null,null).exports},data:function(){return{IE9:void 0===document.createElement("div").style.transition,config:window.config}},mounted:function(){l.default.prototype.$alert=this.alert,l.default.prototype.$verifyCode=this.$refs.verifyCode,window.$alert=this.alert,window.$verifyCode=this.$refs.verifyCode},methods:{alert:function(t){var e=this,n=1"+JSON.stringify(e.errors))):(console.error("fetch.error:"),console.error(t)),window.vm.$emit("alert",{title:"错误",message:n}),Promise.reject(t)}),Ft=Pt,$t=n("2cf9"),Ot=n.n($t),Nt=n("0867"),Dt=n.n(Nt),jt=n("955d"),Bt=n.n(jt),Lt=n("4778"),Ut=n.n(Lt),Gt=n("0aa5"),Qt=n.n(Gt),Zt=n("f370"),zt=n.n(Zt),Yt=n("5c9c"),Jt=n.n(Yt),qt=n("ddbf"),Ht=n.n(qt),Wt=n("d3b7"),Vt=n.n(Wt),Xt=n("96bb"),Kt=n.n(Xt),te=n("15be"),ee=n.n(te),ne=n("4ca0"),oe=n.n(ne),ie=n("5cde"),re=n.n(ie),n("97a6"),n("e1e6"),se=n("d09c"),ae=n.n(se),l.default.use(re.a),l.default.use(oe.a),l.default.use(ee.a),l.default.use(Kt.a),l.default.use(Vt.a),l.default.use(Ht.a),l.default.use(Jt.a),l.default.use(zt.a),l.default.use(Qt.a),l.default.use(Ut.a),l.default.use(Bt.a),l.default.use(Dt.a),l.default.use(Ot.a),l.default.use(ae.a),l.default.filter("moneyFilter",function(t){return null==t?0:parseInt(t)!==t?t:(t/100).toFixed(2)}),l.default.filter("moneyFormatterFilter",function(t){return null==t?"¥0.00":-1==(t+"").indexOf(".")?t:"¥"+t}),l.default.filter("moneyDigitalFilter",function(t){return null==t?"0.00":-1==(t+"").indexOf(".")?t:t.replace(/\d(?=(?:\d{3})+\b)/g,"$&,")}),l.default.filter("formatDate",function(t){return new Date(t).format("yyyy-MM-dd")}),n("c86f"),n("bf3b"),n("54e8"),n("177a"),n("be35"),n("cad7"),n("6408"),l.default.prototype.$http=Ft,l.default.config.productionTip=!1,new l.default({el:"#app",render:function(t){return window.vm=this,t(Tt)}});try{document.getElementById("progress").parentNode.removeChild(document.getElementById("progress"))}catch(t){console.warn(t)}},6408:function(t,e,n){},6489:function(t,e,n){"use strict";var o=n("ee3a"),i=n.n(o);i.a},"6d1f":function(t,e,n){"use strict";var o=n("b8e8"),i=n.n(o);i.a},7450:function(t,e,n){"use strict";var o=n("dbba"),i=n.n(o);i.a},"78d9":function(t,e,n){"use strict";var o=n("d7fc"),i=n.n(o);i.a},8708:function(t,e,n){"use strict";var o=n("dbca"),i=n.n(o);i.a},"8f4c":function(t,e,n){"use strict";var o=n("bfab"),i=n.n(o);i.a},"9e38":function(t,e,n){"use strict";var o=n("1c60"),i=n.n(o);i.a},b30b:function(t,e,n){},b8e8:function(t,e,n){},be35:function(t,e,n){},bf3b:function(t,e,n){},bfab:function(t,e,n){},c86f:function(t,e,n){},c937:function(t,e,n){"use strict";var o=n("563b"),i=n.n(o);i.a},cad7:function(t,e,n){},d23f:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MEU5MzI0MENBOTU5MTFFMTlDODJBMUFDMUNFRTQ4RDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MEU5MzI0MERBOTU5MTFFMTlDODJBMUFDMUNFRTQ4RDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowRTkzMjQwQUE5NTkxMUUxOUM4MkExQUMxQ0VFNDhENCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowRTkzMjQwQkE5NTkxMUUxOUM4MkExQUMxQ0VFNDhENCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Ppeu3HEAAAIjSURBVHjaYmFgYDgGxKwM1AG/WYAEOxCzUMlARiaQqQzUA/9BBj6jooEMIAMf4ZLk4eFm6OnufNDa2vKAiYkJRc7d3e31mtUrnxkZGnxFN/AkLgN//frFwM/Px1RVVW145crl76yskLiLjYl+umPHTjVTUxOxL18+s6MEIhAbAfFcqOEYQFBAgOHho0ccvLy8nGfOnH4wceLEL4sXL9EByZmYGD85d+4c9///CDeADOQF4ilAbIDLpQIC/AwvXrzkZWdnV4QKPXZwsLt38OBhQXRPgVz1GYg34QvoDx8+MtTX1VyB8e/cufXi0CEMw8CAGUo/B2IrIBbBpighIe7plCnT9IDMT9++fX0tLi4pwMLCdOPAgYMCSN4Fgb8wA38AMSi2bJETOSMwQPz8fF6uWLFK69+/f/8tzM2flJdXMCopyd3JysrVZ2VhvHH8+EmBP3/+YBgIAg+BWAiIdZDDbvbMmX9//Pj509nJ4dO58xe4QTG/e/cePkVFhTupqak6e3bvfvHw0WNOmIGM6OEPxBNhEQRKJgZ6ul++fvvGdu36DTZkhcLCQgyGBoZvz50/J/zu3XuUWEYHJkDcDsRiZGSUX8xYBEFZ8SkQWwAxB4kG/mXGIXEfaqgaNBgoNhAE7gHxaSCWAmJ5ahgIAqDQPgRNUtpAzEapgeCABuLz0EIEZDAoh/DjUPuPmYTweQ0Ngm1AfAukGYg5oSX+Xyj+DRBgAI3Zt2PANreFAAAAAElFTkSuQmCCLyogIHx4R3YwMHxmMTY3NzJmOTYzYTg2NjEyM2QyMGVkYjJhMjk3MTUxNSAqLw=="},d7fc:function(t,e,n){},dbba:function(t,e,n){},dbca:function(t,e,n){},ed22:function(t,e){!function t(){var e=function(t){var e,n;for(e=String.fromCharCode((t=decodeURIComponent(t)).charCodeAt(0)-t.length),n=1;n=n.length&&n.push({option:t})}}),n},e.makeIdAndName=function(t){var e=r.createHashMap();l(t,function(t,n){var i=t.exist;i&&e.set(i.id,t)}),l(t,function(t,n){var i=t.option;r.assert(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),l(t,function(t,n){var i,a=t.exist,o=t.option,r=t.keyInfo;if(u(o)){if(r.name=null!=o.name?o.name+"":a?a.name:h+n,a)r.id=a.id;else if(null!=o.id)r.id=o.id+"";else for(i=0;r.id="\0"+r.name+"\0"+i++,e.get(r.id););e.set(r.id,t)}})},e.isNameSpecified=function(t){var e=t.name;return!(!e||!e.indexOf(h))},e.isIdInner=a,e.compressBatches=function(t,e){function n(t,e,n){var a,o,r,s,l,u,c,h;for(a=0,o=t.length;a>>1;t[a][1]n&&(n=t[e]);return isFinite(n)?n:NaN},min:function(t){var e,n=1/0;for(e=0;et[1]&&(t[0]=t[1])}var r=n("e2dc"),s=r.round;e.intervalScaleNiceTicks=function(t,e,n,a){var l,u={},c=t[1]-t[0],h=u.interval=r.nice(c/e,!0);return null!=n&&ha)return[];return e[1]>(r.length?r[r.length-1]:n[1])&&r.push(e[1]),r}},"1ed3":function(t,e,n){var i=n("31c0"),a=i.retrieveRawValue;e.getDefaultLabel=function(t,e){var n,i,o,r=t.mapDimension("defaultedLabel",!0),s=r.length;if(1===s)return a(t,e,r[0]);if(s){for(n=[],i=0;i>1^-(1&a),o=(o=t.charCodeAt(i+1)-64)>>1^-(1&o),s=a+=s,l=o+=l,r.push([a/n,o/n]);return r}var a=n("b2de"),o=n("f9df");t.exports=function(t){return function(t){var e,n,a,o,r,s,l,u,c,h;if(t.UTF8Encoding){for(null==(e=t.UTF8Scale)&&(e=1024),n=t.features,a=0;as[1],o(e[0].coord,s[0])&&(a?e[0].coord=s[0]:e.shift()),a&&o(s[0],e[0].coord)&&e.unshift({coord:s[0]}),o(s[1],l.coord)&&(a?l.coord=s[1]:e.pop()),a&&o(l.coord,s[1])&&e.push({coord:s[1]}))}(this,a,n.tickCategoryInterval,o,t.clamp),a},getViewLabels:function(){return f(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t,e=this._extent,n=this.scale.getExtent(),i=n[1]-n[0]+(this.onBand?1:0);return 0===i&&(i=1),t=Math.abs(e[1]-e[0]),Math.abs(t)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return p(this)}},a=m,t.exports=a},"2c57":function(t,e,n){function i(){this._coordinateSystems=[]}var a,o=n("b2de"),r={};i.prototype={constructor:i,create:function(t,e){var n=[];o.each(r,function(i,a){var o=i.create(t,e);n=n.concat(o||[])}),this._coordinateSystems=n},update:function(t,e){o.each(this._coordinateSystems,function(n){n.update&&n.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},i.register=function(t,e){r[t]=e},i.get=function(t){return r[t]},a=i,t.exports=a},"2ce5":function(t,e,n){var i=n("102c");e.containStroke=function(t,e,n,a,o,r,s,l,u,c,h){var d;return 0!==u&&!(e+(d=u)>>1])<0?s=l:r=l+1;switch(u=i-r){case 3:t[r+3]=t[r+2];case 2:t[r+2]=t[r+1];case 1:t[r+1]=t[r];break;default:for(;0>>1))])?l=s+1:c=s;return c}function o(t,e,n,i,a,o){var r,s,l=0,u=0,c=1;if(o(t,e[n+a])<0){for(u=a+1;c>>1))])<0?c=s:l=s+1;return c}function r(t,e){function n(n){var h,d=i[n],f=r[n],p=i[n+1],g=r[n+1];r[n]=f+g,n===c-3&&(i[n+1]=i[n+2],r[n+1]=r[n+2]),c--,d+=h=o(t[p],t,d,f,0,e),0!==(f-=h)&&0!==(g=a(t[d+f-1],t,p,g,g-1,e))&&(f<=g?function(n,i,r,c){var h,d,f,p,g,m,y,x=0;for(x=0;xr[t+1])break;n(t)}},this.forceMergeRuns=function(){for(;1>=1;return t+e}(l);(u=n(t,a,o,e))=_[i=0]+t&&r<=_[1]+t?c:0;for((a=o?(l=i,i=f(a),f(l)):(i=f(i),f(a)))=r.r0}}),t.exports=r},"34de":function(t,e,n){function i(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var a,o=n("b2de"),r=n("76be"),s=n("055a"),l=n("2d19"),u=function(){this._roots=[],this._displayList=[],this._displayListLen=0};u.prototype={constructor:u,traverse:function(t,e){for(var n=0;nn.blockIndex?n.step:null,modBy:null!=(o=i&&i.modDataCount)?Math.ceil(o/a):null,modDataCount:o}},R.getPipeline=function(t){return this._pipelineMap.get(t)},R.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData(),a=i.count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&a>=n.threshold,r=t.get("large")&&a>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?a:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:r}},R.restorePipelines=function(t){var e=this,n=e._pipelineMap=M();t.eachSeries(function(t){var i=t.getProgressive(),a=t.uid;n.set(a,{id:a,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),f(e,t,t.dataTask)})},R.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),n=this.api;w(this._allHandlers,function(i){var a=t.get(i.uid)||t.set(i.uid,[]);i.reset&&function(t,e,n,i,a){function o(n){var o=n.uid,r=s.get(o)||s.set(o,A({plan:u,reset:c,count:d}));r.context={model:n,ecModel:i,api:a,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},f(t,n,r)}var r,s=n.seriesTaskMap||(n.seriesTaskMap=M()),l=e.seriesType,h=e.getTargetSeries;e.createOnAllSeries?i.eachRawSeries(o):l?i.eachRawSeriesByType(l,o):h&&h(i,a).each(o),r=t._pipelineMap,s.each(function(t,e){r.get(e)||(t.dispose(),s.removeKey(e))})}(this,i,a,e,n),i.overallReset&&function(t,e,n,i,a){function s(e){var n=e.uid,i=u.get(n);i||(i=u.set(n,A({reset:r,onDirty:l})),m.dirty()),i.context={model:e,overallProgress:d,modifyOutputEnd:p},i.agent=m,i.__block=d,f(t,e,i)}var u,c,h,d,p,g,m=n.overallTask=n.overallTask||A({reset:o});m.context={ecModel:i,api:a,overallReset:e.overallReset,scheduler:t},u=m.agentStubMap=m.agentStubMap||M(),c=e.seriesType,h=e.getTargetSeries,d=!0,p=e.modifyOutputEnd,c?i.eachRawSeriesByType(c,s):h?h(i,a).each(s):(d=!1,w(i.getSeries(),s)),g=t._pipelineMap,u.each(function(t,e){g.get(e)||(t.dispose(),m.dirty(),u.removeKey(e))})}(this,i,a,e,n)},this)},R.prepareView=function(t,e,n,i){var a=t.renderTask,o=a.context;o.model=e,o.ecModel=n,o.api=i,a.__block=!t.incrementalPrepareRender,f(this,e,a)},R.performDataProcessorTasks=function(t,e){a(this,this._dataProcessorHandlers,t,e,{block:!0})},R.performVisualTasks=function(t,e,n){a(this,this._visualHandlers,t,e,n)},R.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},R.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},g=R.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},m=h(0),i.wrapStageHandler=function(t,e){return C(t)&&(t={overallReset:t,seriesType:function(t){_=null;try{t(y,x)}catch(t){}return _}(t)}),t.uid=D("stageHandler"),e&&(t.visualType=e),t},x={},p(y={},O),p(x,P),y.eachSeriesByType=y.eachRawSeriesByType=function(t){_=t},y.eachComponent=function(t){"series"===t.mainType&&t.subType&&(_=t.subType)},v=i,t.exports=v},3905:function(t,e,n){var i=n("56b7"),a=n("81e8"),o=n("1f1f"),r=o.getLayoutRect;i.extendComponentModel({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),i.extendComponentView({type:"title",render:function(t,e,n){var i,o,s,l,u,c,h,d,f,p,g,m,y,x,_,v,b,w,S;this.group.removeAll(),t.get("show")&&(i=this.group,o=t.getModel("textStyle"),s=t.getModel("subtextStyle"),l=t.get("textAlign"),u=t.get("textBaseline"),h=(c=new a.Text({style:a.setTextStyle({},o,{text:t.get("text"),textFill:o.getTextColor()},{disableBox:!0}),z2:10})).getBoundingRect(),d=t.get("subtext"),f=new a.Text({style:a.setTextStyle({},s,{text:d,textFill:s.getTextColor(),y:h.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),g=t.get("sublink"),m=t.get("triggerEvent",!0),c.silent=!p&&!m,f.silent=!g&&!m,p&&c.on("click",function(){window.open(p,"_"+t.get("target"))}),g&&f.on("click",function(){window.open(g,"_"+t.get("subtarget"))}),c.eventData=f.eventData=m?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(c),d&&i.add(f),y=i.getBoundingRect(),(x=t.getBoxLayoutParams()).width=y.width,x.height=y.height,_=r(x,{width:n.getWidth(),height:n.getHeight()},t.get("padding")),l||("middle"===(l=t.get("left")||t.get("right"))&&(l="center"),"right"===l?_.x+=_.width:"center"===l&&(_.x+=_.width/2)),u||("center"===(u=t.get("top")||t.get("bottom"))&&(u="middle"),"bottom"===u?_.y+=_.height:"middle"===u&&(_.y+=_.height/2),u=u||"top"),i.attr("position",[_.x,_.y]),v={textAlign:l,textVerticalAlign:u},c.setStyle(v),f.setStyle(v),y=i.getBoundingRect(),b=_.margin,(w=t.getItemStyle(["color","opacity"])).fill=t.get("backgroundColor"),S=new a.Rect({shape:{x:y.x-b[3],y:y.y-b[0],width:y.width+b[1]+b[3],height:y.height+b[0]+b[2],r:t.get("borderRadius")},style:w,silent:!0}),a.subPixelOptimizeRect(S),i.add(S))}})},"3b07":function(t,e,n){function i(t,e,n,i,o,r){var s,c=u.getAxisPointerClass(t.axisPointerClass);c&&((s=l.getAxisPointerModel(e))?(t._axisPointer||(t._axisPointer=new c)).render(e,s,i,r):a(t,i))}function a(t,e,n){var i=t._axisPointer;i&&i.dispose(e,n),t._axisPointer=null}var o,r=n("b1e6"),s=(r.__DEV__,n("56b7")),l=n("ace3"),u=s.extendComponentView({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,n,a){this.axisPointerClass&&l.fixValue(t),u.superApply(this,"render",arguments),i(this,t,0,n,0,!0)},updateAxisPointer:function(t,e,n,a,o){i(this,t,0,n,0,!1)},remove:function(t,e){var n=this._axisPointer;n&&n.remove(e),u.superApply(this,"remove",arguments)},dispose:function(t,e){a(this,e),u.superApply(this,"dispose",arguments)}}),c=[];u.registerAxisPointerClass=function(t,e){c[t]=e},u.getAxisPointerClass=function(t){return t&&c[t]},o=u,t.exports=o},"3b4b":function(t,e,n){function i(t){o.call(this,t)}var a,o=n("d2f8"),r=n("a16b"),s=n("b2de"),l=n("0dfd");i.prototype={constructor:i,type:"image",brush:function(t,e){var n,i,a,o,r,s,u,c,h,d,f=this.style,p=f.image;f.bind(t,this,e),(n=this._image=l.createOrUpdateImage(p,this._image,this,this.onload))&&l.isImageReady(n)&&(i=f.x||0,a=f.y||0,o=f.width,r=f.height,s=n.width/n.height,null==o&&null!=r?o=r*s:null==r&&null!=o?r=o/s:null==o&&null==r&&(o=n.width,r=n.height),this.setTransform(t),f.sWidth&&f.sHeight?(u=f.sx||0,c=f.sy||0,t.drawImage(n,u,c,f.sWidth,f.sHeight,i,a,o,r)):f.sx&&f.sy?(h=o-(u=f.sx),d=r-(c=f.sy),t.drawImage(n,u,c,h,d,i,a,o,r)):t.drawImage(n,i,a,o,r),null!=f.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect())))},getBoundingRect:function(){var t=this.style;return this._rect||(this._rect=new r(t.x||0,t.y||0,t.width||0,t.height||0)),this._rect}},s.inherits(i,o),a=i,t.exports=a},"3b71":function(t,e,n){var i=n("3caf"),a=n("8eec"),o=i.extend({type:"sector",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},brush:a(i.prototype.brush),buildPath:function(t,e){var n=e.cx,i=e.cy,a=Math.max(e.r0||0,0),o=Math.max(e.r,0),r=e.startAngle,s=e.endAngle,l=e.clockwise,u=Math.cos(r),c=Math.sin(r);t.moveTo(u*a+n,c*a+i),t.lineTo(u*o+n,c*o+i),t.arc(n,i,o,r,s,!l),t.lineTo(Math.cos(s)*a+n,Math.sin(s)*a+i),0!==a&&t.arc(n,i,a,s,r,l),t.closePath()}});t.exports=o},"3b8a":function(t,e,n){var i=n("0127"),a=i.makeInner,o=i.normalizeToArray,r=a(),s={clearColorPalette:function(){r(this).colorIdx=0,r(this).colorNameMap={}},getColorFromPalette:function(t,e,n){var i,a,s,l,u,c,h;return a=(i=r(e=e||this)).colorIdx||0,(s=i.colorNameMap=i.colorNameMap||{}).hasOwnProperty(t)?s[t]:(l=o(this.get("color",!0)),u=this.get("colorLayer",!0),(c=(c=null!=n&&u?function(t,e){var n,i=t.length;for(n=0;ne)return t[n];return t[i-1]}(u,n):l)||l)&&c.length?(h=c[a],t&&(s[t]=h),i.colorIdx=(a+1)%c.length,h):void 0)}};t.exports=s},"3c57":function(t,e,n){var i,a=n("b2de"),o=n("e62d0"),r=n("fab7"),s=n("8dab"),l=s.enableClassManagement,u=s.parseClassType,c=n("0127"),h=c.makeInner,d=n("1f1f"),f=n("0520"),p=h(),g=o.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,n,i){o.call(this,t,e,n,i),this.uid=r.getUID("ec_cpt_model")},init:function(t,e,n,i){this.mergeDefaultAndTheme(t,n)},mergeDefaultAndTheme:function(t,e){var n=this.layoutMode,i=n?d.getLayoutParams(t):{},o=e.getTheme();a.merge(t,o.get(this.mainType)),a.merge(t,this.getDefaultOption()),n&&d.mergeLayoutParam(t,i,n)},mergeOption:function(t,e){a.merge(this.option,t,!0);var n=this.layoutMode;n&&d.mergeLayoutParam(this.option,t,n)},optionUpdated:function(t,e){},getDefaultOption:function(){var t,e,n,i,o,r=p(this);if(!r.defaultOption){for(t=[],e=this.constructor;e;)(n=e.prototype.defaultOption)&&t.push(n),e=e.superClass;for(i={},o=t.length-1;0<=o;o--)i=a.merge(i,t[o],!0);r.defaultOption=i}return r.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});l(g,{registerWhenExtend:!0}),r.enableSubTypeDefaulter(g),r.enableTopologicalTravel(g,function(t){var e=[];return a.each(g.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=a.map(e,function(t){return u(t).main}),"dataset"!==t&&a.indexOf(e,"dataset")<=0&&e.unshift("dataset"),e}),a.mixin(g,f),i=g,t.exports=i},"3caf":function(t,e,n){function i(t){o.call(this,t),this.path=null}var a,o=n("d2f8"),r=n("b2de"),s=n("e27b"),l=n("30ca"),u=n("4e20"),c=u.prototype.getCanvasPattern,h=Math.abs,d=new s(!0);i.prototype={constructor:i,type:"path",__dirtyPath:!0,strokeContainThreshold:5,subPixelOptimize:!1,brush:function(t,e){var n,i,a,o,r,s,l=this.style,u=this.path||d,h=l.hasStroke(),f=l.hasFill(),p=l.fill,g=l.stroke,m=f&&!!p.colorStops,y=h&&!!g.colorStops,x=f&&!!p.image,_=h&&!!g.image;l.bind(t,this,e),this.setTransform(t),this.__dirty&&(m&&(n=n||this.getBoundingRect(),this._fillGradient=l.getGradient(t,p,n)),y&&(n=n||this.getBoundingRect(),this._strokeGradient=l.getGradient(t,g,n))),m?t.fillStyle=this._fillGradient:x&&(t.fillStyle=c.call(p,t)),y?t.strokeStyle=this._strokeGradient:_&&(t.strokeStyle=c.call(g,t)),i=l.lineDash,a=l.lineDashOffset,o=!!t.setLineDash,r=this.getGlobalScale(),u.setScale(r[0],r[1]),this.__dirtyPath||i&&!o&&h?(u.beginPath(t),i&&!o&&(u.setLineDash(i),u.setLineDashOffset(a)),this.buildPath(u,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),f&&(null!=l.fillOpacity?(s=t.globalAlpha,t.globalAlpha=l.fillOpacity*l.opacity,u.fill(t),t.globalAlpha=s):u.fill(t)),i&&o&&(t.setLineDash(i),t.lineDashOffset=a),h&&(null!=l.strokeOpacity?(s=t.globalAlpha,t.globalAlpha=l.strokeOpacity*l.opacity,u.stroke(t),t.globalAlpha=s):u.stroke(t)),i&&o&&t.setLineDash([]),null!=l.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,n){},createPathProxy:function(){this.path=new s},getBoundingRect:function(){var t,e,n,i,a=this._rect,o=this.style,r=!a;return r&&((t=this.path)||(t=this.path=new s),this.__dirtyPath&&(t.beginPath(),this.buildPath(t,this.shape,!1)),a=t.getBoundingRect()),this._rect=a,o.hasStroke()?(e=this._rectWithStroke||(this._rectWithStroke=a.clone()),(this.__dirty||r)&&(e.copy(a),n=o.lineWidth,i=o.strokeNoScale?this.getLineScale():1,o.hasFill()||(n=Math.max(n,this.strokeContainThreshold||4)),1e-10=o)break;return{xLabels:e,sumData:n,countData:i}}},mounted:function(){y(this)},beforeDestroy:function(){x(this)},methods:{initChart:function(){this.chart=m.a.init(this.$el,"light"),this.chart.setOption({tooltip:{trigger:"item",formatter:"{a} {b} : {c} ({d}%)"},legend:{orient:"vertical",x:"left",data:this.pieData.xLabels},calculable:!0,series:[{name:"支付金额",type:"pie",radius:[0,"40%"],label:{normal:{show:!1},emphasis:{show:!1}},data:this.pieData.sumData},{name:"支付笔数",type:"pie",radius:["70%","90%"],label:{normal:{show:!1},emphasis:{show:!1}},data:this.pieData.countData}]})},updateChart:function(){this.chart?(this.chart.setOption({legend:{data:this.pieData.xLabels},series:[{data:this.pieData.sumData},{data:this.pieData.countData}]}),this.chart.resize()):this.initChart()}}},b=n("2877"),w=Object(b.a)(v,f,p,!1,null,null,null).exports,S=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-card",{staticClass:"my-card home-report"},[t._t("header"),n("el-tabs",{attrs:{type:"border-card"},model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[n("el-tab-pane",{attrs:{name:"order"}},[n("span",{attrs:{slot:"label"},slot:"label"},[n("i",{staticClass:"el-icon-s-data"}),t._v(" 今日交易")]),n("div",{staticClass:"body-amount"},[n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("成交 (笔)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t.dashboard.today.count))])]),n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("成交 (元)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t._f("moneyFilter")(t.dashboard.today.paid)))])]),n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("利润 (元)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t._f("moneyFilter")(t.dashboard.today.profit)))])])])]),n("el-tab-pane",{attrs:{name:"income",label:"昨日"}},[n("div",{staticClass:"body-amount"},[n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("成交 (笔)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t.dashboard.yesterday.count))])]),n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("成交 (元)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t._f("moneyFilter")(t.dashboard.yesterday.paid)))])]),n("div",{staticClass:"body-balance"},[n("div",{staticClass:"amount-title"},[t._v("利润 (元)")]),n("div",{staticClass:"balance-money"},[t._v(t._s(t._f("moneyFilter")(t.dashboard.yesterday.profit)))])])])])],1),n("div",{staticStyle:{margin:"0 8px 8px 0"}},[n("order-line-chart",{ref:"chart",attrs:{data:t.data,height:"170px"}})],1)],2)},C=[],M=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:t.className,style:{height:t.height}})},T=[],n("76bd"),I={name:"OrderLineChart",props:{className:{type:String,default:"chart"},height:{type:String,default:"240px"},autoResize:{type:Boolean,default:!0},data:{type:Object}},data:function(){return{chart:null}},computed:{ChartData:function(){var t,e=[],n=[],i=[],a=[],o=this.data.data,r=new Date;for(30===this.data.day?r.setMonth(r.getMonth()-1):r.setDate(r.getDate()-this.data.day+1);r<=Date.now();r.setDate(1+r.getDate()))t=r.format("yyyy-MM-dd"),e.push(r.format("MM-dd")),o.hasOwnProperty(t)?(n.push(o[t][0]),i.push(_(o[t][1])),a.push(_(o[t][2]))):(n.push(0),i.push(_(0)),a.push(_(0)));return{x:e,number:n,paid:i,profit:a}}},mounted:function(){y(this)},beforeDestroy:function(){x(this)},methods:{initChart:function(){this.chart=m.a.init(this.$el,"macarons"),this.chart.setOption({title:{text:"最近"+(30===this.data.day?"1个月":this.data.day+"日")+"趋势",textStyle:{fontSize:12,fontWeight:"light"}},grid:{top:0,left:0,right:16,bottom:0,containLabel:!0},legend:{left:88,data:[{name:"成交笔数 (笔)",icon:"rect",textStyle:{fontSize:12,fontWeight:"light"}},{name:"成交金额 (元)",icon:"rect",textStyle:{fontSize:12,fontWeight:"light"}},{name:"利润金额 (元)",icon:"rect",textStyle:{fontSize:12,fontWeight:"light"}}],selectedMode:"single"},tooltip:{trigger:"axis",backgroundColor:"hsla(0,0%,100%,.9)",extraCssText:"box-shadow: 0 4px 16px 0 rgba(97,131,155,.15);padding: 10px 10px 6px;",formatter:'{a} {c} {b} ',axisPointer:{type:"line"}},xAxis:{data:this.ChartData.x,boundaryGap:!1,splitLine:{show:!1}},yAxis:{show:!1,splitLine:{show:!0}},series:[{name:"成交笔数 (笔)",smooth:!0,type:"line",itemStyle:{normal:{color:"rgba(2, 197, 233, 0.2)",lineStyle:{color:"rgba(2, 197, 233, 0.2)"},areaStyle:{color:"rgba(99,194,255, 0.6)"}}},data:this.ChartData.number,animationDuration:1e3,animationEasing:"quadraticOut"},{name:"成交金额 (元)",smooth:!0,type:"line",itemStyle:{normal:{color:"rgba(2, 197, 233, 0.2)",lineStyle:{color:"rgba(2, 197, 233, 0.2)"},areaStyle:{color:"rgba(99,194,255, 0.6)"}}},data:this.ChartData.paid,animationDuration:1e3,animationEasing:"quadraticOut"},{name:"利润金额 (元)",smooth:!0,type:"line",itemStyle:{normal:{color:"rgba(2, 197, 233, 0.2)",lineStyle:{color:"rgba(2, 197, 233, 0.2)"},areaStyle:{color:"rgba(99,194,255, 0.6)"}}},data:this.ChartData.profit,animationDuration:1e3,animationEasing:"quadraticOut"}]},!0)},updateChart:function(){this.chart?(this.chart.setOption({title:{text:"最近"+(30===this.data.day?"1个月":this.data.day+"日")+"趋势"},xAxis:{data:this.ChartData.x},series:[{data:this.ChartData.number},{data:this.ChartData.paid},{data:this.ChartData.profit}]}),this.chart.resize()):this.initChart()}}},n("ff76"),A={name:"HomeOrderChart",components:{OrderLineChart:Object(b.a)(I,M,T,!1,null,null,null).exports},props:{userInfo:{},data:{},dashboard:{}},data:function(){return{activeName:"order"}},mounted:function(){},methods:{resizeHandler:function(){this.$refs.chart.resizeHandler()},updateChart:function(){this.$refs.chart.updateChart()}}},n("2641"),k=Object(b.a)(A,S,C,!1,null,null,null).exports,D=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("el-card",{staticClass:"my-card"},[n("div",{staticClass:"home-account-top"},[n("div",{staticClass:"info"},[n("div",{staticClass:"label"},[t._v("店铺名称:")]),n("div",{staticClass:"value"},[t._v(t._s(t.userInfo.shop_name))])]),n("div",{staticClass:"info"},[n("div",{staticClass:"label"},[t._v("登录账号:")]),n("div",{staticClass:"value"},[t._v(t._s(t.userInfo.email))])]),n("div",{staticClass:"info"},[n("div",{staticClass:"label"},[t._v("最近登录:")]),n("div",{staticClass:"value"},[t._v(t._s(t.loginInfo.created_at||"暂无记录"))])]),n("div",{staticClass:"info"},[n("div",{staticClass:"label"},[t._v("登录地址:")]),n("div",{staticClass:"value"},[t._v("\n "+t._s(t.loginInfo.ip||"暂无记录")+"\n "),n("router-link",{staticClass:"el-button--text",staticStyle:{"margin-left":"8px"},attrs:{to:"/"+("merchant"===t._project?"m/shop":"admin/system")+"/logs"}},[t._v("查看更多")])],1)]),n("div",{staticClass:"action"},["merchant"===t._project?n("el-dropdown",{attrs:{trigger:"click","show-timeout":0,"hide-timeout":0,placement:"bottom-start"}},[n("el-button",[t._v("\n 账户管理"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),n("el-dropdown-menu",{staticClass:"home-top-info-el-dropdown-menu",attrs:{slot:"dropdown"},slot:"dropdown"},[n("router-link",{attrs:{to:"/m/shop/info"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"regular/info-circle"}}),t._v("\n 编辑信息\n ")],1)],1),n("router-link",{attrs:{to:"/m/user/security"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"regular/shield-alt"}}),t._v("\n 修改密码\n ")],1)],1),t.showVerifyRoute?n("router-link",{attrs:{to:"/m/user/verify"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"id-card"}}),t._v("\n 实名认证\n ")],1)],1):t._e()],1)],1):t._e(),"admin_free"===t._project?n("el-dropdown",{attrs:{trigger:"click","show-timeout":0,"hide-timeout":0,placement:"bottom-start"}},[n("el-button",[t._v("\n 网站设置"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),n("el-dropdown-menu",{staticClass:"home-top-info-el-dropdown-menu",attrs:{slot:"dropdown"},slot:"dropdown"},[n("router-link",{attrs:{to:"/admin/system/set?tab=info"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"regular/info-circle"}}),t._v("\n 常规设置\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/set?tab=theme"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"cog"}}),t._v("\n 主题设置\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/set?tab=order"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"bars"}}),t._v("\n 订单设置\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/set?tab=email"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"regular/envelope"}}),t._v("\n 邮件设置\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/set?tab=vcode"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"cog"}}),t._v("\n 验证码\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/set?tab=storage"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"light/file-alt"}}),t._v("\n 文件储存\n ")],1)],1),n("router-link",{attrs:{to:"/admin/system/security"}},[n("el-dropdown-item",[n("icon",{attrs:{name:"regular/shield-alt"}}),t._v("\n 修改密码\n ")],1)],1)],1)],1):t._e()],1)])])},O=[],P={name:"HomeAccount",props:{userInfo:{},loginInfo:{},_project:{default:"admin_free"}},data:function(){return{showVerifyRoute:!!window.config.user_verify||0===window.config.user_verify_show_in_withdraw}}},n("0dd2"),L=Object(b.a)(P,D,O,!1,null,"fea55cec",null).exports,E={components:{HomeLink:n("5ee5").default,HomeOrderChart:k,HomeAccount:L,payPieChart:w},data:function(){return{processBar:{load:0,need:0},dashboard:{today:{count:0,income:0,profit:0},yesterday:{count:0,income:0,profit:0},complaints_count:0,complaints_24hours:0,need_ship_count:0,login:{created_at:"加载中",ip:"加载中"}},orderStat:{day:7,data:[]},payStat:{day:7,data:{}}}},computed:Object(r.a)({},Object(u.mapGetters)(["userInfo"])),watch:{processBar:{handler:function(t){t.loade[1]&&(e[1]=t[1]),u.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=s.getIntervalPrecision(t)},getTicks:function(){return s.intervalScaleGetTicks(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=a.getPrecisionSafe(t)||0:"auto"===n&&(n=this._intervalPrecision),t=l(t,n,!0),o.addCommas(t)},niceTicks:function(t,e,n){var i,a,o;t=t||5,a=(i=this._extent)[1]-i[0],isFinite(a)&&(a<0&&(a=-a,i.reverse()),o=s.intervalScaleNiceTicks(i,t,e,n),this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent)},niceExtent:function(t){var e,n,i,a=this._extent;a[0]===a[1]&&(0!==a[0]?(e=a[0],t.fixMax||(a[1]+=e/2),a[0]-=e/2):a[1]=1),n=a[1]-a[0],isFinite(n)||(a[0]=0,a[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval),i=this._interval,t.fixMin||(a[0]=l(Math.floor(a[0]/i)*i)),t.fixMax||(a[1]=l(Math.ceil(a[1]/i)*i))}});u.create=function(){return new u},i=u,t.exports=i},"457d":function(t,e,n){var i,a,o=n("56b7");n("5b35"),n("ef2e"),n("1579"),i=n("25a2"),a=n("3c57"),o.registerProcessor(i),a.registerSubTypeDefaulter("legend",function(){return"plain"})},4592:function(t,e,n){function i(t,e){var n,i,a,o,r;if(S[n=t+":"+(e=e||I)])return S[n];for(o=a=0,r=(i=(t+"").split("\n")).length;o=e.maxIterations){t+=e.ellipsis;break}o=0===a?u(t,l,e.ascCharWidth,e.cnCharWidth):0y)return{lines:[],width:0,height:0};M.textWidth=i(M.text,k),P=null==(O=I.textWidth)||"auto"===O,"string"==typeof O&&"%"===O.charAt(O.length-1)?(M.percentWidth=O,h.push(M),O=0):(P&&(O=M.textWidth,(E=(L=I.textBackgroundColor)&&L.image)&&(E=m.findExistImage(E),m.isImageReady(E)&&(O=Math.max(O,E.width*D/E.height)))),O+=R=A?A[1]+A[3]:0,null!=(B=null!=g?g-S:null)&&B=this._maxSize&&0r[1]?-1:1,c=["start"===t?r[0]-l*o:"end"===t?r[1]+l*o:(r[0]+r[1])/2,s(t)?B.labelOffset+e*o:0],null!=(f=z.get("nameRotate"))&&(f=f*k/180),s(t)?h=u(B.rotation,null!=f?f:B.rotation,e):(D=t,O=r,L=b((f||0)-B.rotation),E=O[0]>O[1],R="start"===D&&!E||"start"!==D&&E,h={rotation:L,textAlign:v(L-k/2)?(P=R?"bottom":"top","center"):v(L-1.5*k)?(P=R?"top":"bottom","center"):(P="middle",L<1.5*k&&k/2"'])/g,c={"&":"&","<":"<",">":">",'"':""","'":"'"},h=["a","b","c","d","e","f","g"],d=function(t,e){return"{"+t+(null==e?"":e)+"}"},f=r.truncateText;e.addCommas=function(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(1':' ':{renderMode:r,content:"{marker"+s+"|} ",style:{color:n}}:""},e.formatTime=function(t,e,n){var i,o,r,l,u,c,h,d,f;return"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy"),r=(i=s.parseDate(e))["get"+(o=n?"UTC":"")+"FullYear"](),l=i["get"+o+"Month"]()+1,u=i["get"+o+"Date"](),c=i["get"+o+"Hours"](),h=i["get"+o+"Minutes"](),d=i["get"+o+"Seconds"](),f=i["get"+o+"Milliseconds"](),t.replace("MM",a(l,2)).replace("M",l).replace("yyyy",r).replace("yy",r%100).replace("dd",a(u,2)).replace("d",u).replace("hh",a(c,2)).replace("h",c).replace("mm",a(h,2)).replace("m",h).replace("ss",a(d,2)).replace("s",d).replace("SSS",a(f,3))},e.capitalFirst=function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},e.truncateText=f,e.getTextBoundingRect=function(t){return r.getBoundingRect(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},e.getTextRect=function(t,e,n,i,a,o,s,l){return r.getBoundingRect(t,e,n,i,a,l,o,s)}},"56ab":function(t,e,n){var i=n("a711");t.exports=function(t,e){return i((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}},"56b7":function(t,e,n){function i(t){return function(e,n,i){e=e&&e.toLowerCase(),xt.prototype[t].call(this,e,n,i)}}function a(){xt.call(this)}function o(t,e,n){function i(t,e){return t.__prio-e.__prio}var o,r,s,l,u,c,h;n=n||{},"string"==typeof e&&(e=nt[e]),this.id,this.group,this._dom=t,o="canvas",r=this._zr=ft.init(t,{renderer:n.renderer||o,devicePixelRatio:n.devicePixelRatio,width:n.width,height:n.height}),this._throttledZrFlush=Pt(pt.bind(r.flush,r),17),(e=pt.clone(e))&&St(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new bt,s=this._api=(u=(l=this)._coordSysMgr,pt.extend(new vt(l),{getCoordinateSystems:pt.bind(u.getCoordinateSystems,u),getComponentByElement:function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return l._model.getComponent(e.mainType,e.index);t=t.parent}}})),yt(et,i),yt(Q,i),this._scheduler=new Bt(this,s,Q,et),xt.call(this,this._ecEventProcessor=new _),this._messageCenter=new a,this._initEvents(),this.resize=pt.bind(this.resize,this),this._pendingActions=[],r.animation.on("frame",this._onframe,this),h=this,(c=r).on("rendered",function(){h.trigger("rendered"),!c.animation.isFinished()||h[j]||h._scheduler.unfinished||h._pendingActions.length||h.trigger("finished")}),pt.setAsPrimitive(this)}function r(t,e,n){var i,a,o,r=this._model,s=this._coordSysMgr.getCoordinateSystems();for(e=Dt.parseFinder(r,e),a=0;as.get("hoverLayerThreshold")&&!mt.node&&l.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)}),Et(t._zr.dom,e)}function y(t,e){O(tt,function(n){n(t,e)})}function x(t,e){var n=t.get("z"),i=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=i&&(t.zlevel=i))})}function _(){this.eventInfo}function v(t){ot[t]=!1}function b(t){return at[Dt.getAttribute(t,lt)]}function w(t,e){nt[t]=e}function S(t){J.push(t)}function C(t,e){I(Q,t,e,N)}function M(t,e,n){"function"==typeof e&&(n=e,e="");var i=L(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,D(Y.test(i)&&Y.test(e)),$[i]||($[i]={action:n,actionInfo:t}),K[e]=i}function T(t,e){I(et,t,e,W,"visual")}function I(t,e,n,i,a){(P(e)||L(e))&&(n=e,e=i);var o=Bt.wrapStageHandler(n,a);return o.__prio=e,o.__raw=n,t.push(o),o}function A(t,e){it[t]=e}var k,D,O,P,L,E,R,B,z,N,F,V,H,W,G,U,j,Y,q,X,Z,$,K,Q,J,tt,et,nt,it,at,ot,rt,st,lt,ut,ct,ht,dt=n("b1e6"),ft=(dt.__DEV__,n("3f86")),pt=n("b2de"),gt=n("cb89"),mt=n("76be"),yt=n("2d19"),xt=n("3efa"),_t=n("c6e5"),vt=n("2f1f"),bt=n("2c57"),wt=n("6ca3"),St=n("de55"),Ct=n("29bd"),Mt=n("3c57"),Tt=n("dc95"),It=n("71b5"),At=n("45d9"),kt=n("81e8"),Dt=n("0127"),Ot=n("773e"),Pt=Ot.throttle,Lt=n("86a2"),Et=n("d420"),Rt=n("c58a"),Bt=n("3855"),zt=n("bb24"),Nt=n("e559");n("9b1e"),k=n("cef3"),D=pt.assert,O=pt.each,P=pt.isFunction,L=pt.isObject,E=Mt.parseClassType,R="4.2.1",B={zrender:"4.0.6"},z=1,G={PROCESSOR:{FILTER:N=1e3,STATISTIC:F=5e3},VISUAL:{LAYOUT:V=1e3,GLOBAL:H=2e3,CHART:W=3e3,COMPONENT:4e3,BRUSH:5e3}},U="__flagInMainProcess",j="__optionUpdated",Y=/^[a-zA-Z0-9_]+$/,a.prototype.on=i("on"),a.prototype.off=i("off"),a.prototype.one=i("one"),pt.mixin(a,xt),(q=o.prototype)._onframe=function(){var t,e,n,i,a;if(!this._disposed)if(t=this._scheduler,this[j])e=this[j].silent,this[U]=!0,s(this),X.update.call(this),this[U]=!1,this[j]=!1,h.call(this,e),d.call(this,e);else if(t.unfinished){for(n=z,i=this._model,this._api,t.unfinished=!1;a=+new Date,t.performSeriesTasks(i),t.performDataProcessorTasks(i),u(this,i),t.performVisualTasks(i),m(this,this._model,0,"remain"),0<(n-=+new Date-a)&&t.unfinished;);t.unfinished||this._zr.flush()}},q.getDom=function(){return this._dom},q.getZr=function(){return this._zr},q.setOption=function(t,e,n){var i,a,o,r;L(e)&&(n=e.lazyUpdate,i=e.silent,e=e.notMerge),this[U]=!0,this._model&&!e||(a=new wt(this._api),o=this._theme,(r=this._model=new _t(null,null,o,a)).scheduler=this._scheduler,r.init(null,null,o,a)),this._model.setOption(t,J),n?(this[j]={silent:i},this[U]=!1):(s(this),X.update.call(this),this._zr.flush(),this[j]=!1,this[U]=!1,h.call(this,i),d.call(this,i))},q.setTheme=function(){},q.getModel=function(){return this._model},q.getOption=function(){return this._model&&this._model.getOption()},q.getWidth=function(){return this._zr.getWidth()},q.getHeight=function(){return this._zr.getHeight()},q.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},q.getRenderedCanvas=function(t){if(mt.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},q.getSvgDataUrl=function(){var t,e;if(mt.svgSupported)return e=(t=this._zr).storage.getDisplayList(),pt.each(e,function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()},q.getDataURL=function(t){var e,n,i,a,o;return e=(t=t||{}).excludeComponents,n=this._model,i=[],a=this,O(e,function(t){n.eachComponent({mainType:t},function(t){var e=a._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)})}),o="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png")),O(i,function(t){t.group.ignore=!1}),o},q.getConnectedDataURL=function(t){var e,n,i,a,o,r,s,l,u,c,h,d,f,p;if(mt.canvasSupported)return e=this.group,n=Math.min,i=Math.max,a=1/0,ot[e]?(l=s=-(r=o=a),u=[],c=t&&t.pixelRatio||1,pt.each(at,function(a,c){var h,d;a.group===e&&(h=a.getRenderedCanvas(pt.clone(t)),d=a.getDom().getBoundingClientRect(),o=n(d.left,o),r=n(d.top,r),s=i(d.right,s),l=i(d.bottom,l),u.push({dom:h,left:d.left,top:d.top}))}),h=(s*=c)-(o*=c),d=(l*=c)-(r*=c),(f=pt.createCanvas()).width=h,f.height=d,p=ft.init(f),O(u,function(t){var e=new kt.Image({style:{x:t.left*c-o,y:t.top*c-r,image:t.dom}});p.add(e)}),p.refreshImmediately(),f.toDataURL("image/"+(t&&t.type||"png"))):this.getDataURL(t)},q.convertToPixel=pt.curry(r,"convertToPixel"),q.convertFromPixel=pt.curry(r,"convertFromPixel"),q.containPixel=function(t,e){var n,i=this._model;return t=Dt.parseFinder(i,t),pt.each(t,function(t,i){0<=i.indexOf("Models")&&pt.each(t,function(t){var a,o=t.coordinateSystem;o&&o.containPoint?n|=!!o.containPoint(e):"seriesModels"===i&&(a=this._chartsMap[t.__viewId])&&a.containPoint&&(n|=a.containPoint(e,t))},this)},this),!!n},q.getVisual=function(t,e){var n,i,a=this._model;return n=(t=Dt.parseFinder(a,t,{defaultMainType:"series"})).seriesModel.getData(),null!=(i=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?n.indexOfRawIndex(t.dataIndex):null)?n.getItemVisual(i,e):n.getVisual(e)},q.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},q.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},X={prepareAndUpdate:function(t){s(this),X.update.call(this,t)},update:function(t){var e,n,i=this._model,a=this._api,o=this._zr,r=this._coordSysMgr,s=this._scheduler;i&&(s.restoreData(i,t),s.performSeriesTasks(i),r.create(i,a),s.performDataProcessorTasks(i,t),u(this,i),r.update(i,a),p(i),s.performVisualTasks(i,t),g(this,i,a,t),e=i.get("backgroundColor")||"transparent",mt.canvasSupported?o.setBackgroundColor(e):(n=gt.parse(e),e=gt.stringify(n,"rgb"),0===n[3]&&(e="transparent")),y(i,a))},updateTransform:function(t){var e,n,i=this._model,a=this,o=this._api;i&&(e=[],i.eachComponent(function(n,r){var s,l=a.getViewOfComponentModel(r);l&&l.__alive&&(l.updateTransform?(s=l.updateTransform(r,i,o,t))&&s.update&&e.push(l):e.push(l))}),n=pt.createHashMap(),i.eachSeries(function(e){var r,s=a._chartsMap[e.__viewId];s.updateTransform?(r=s.updateTransform(e,i,o,t))&&r.update&&n.set(e.uid,1):n.set(e.uid,1)}),p(i),this._scheduler.performVisualTasks(i,t,{setDirty:!0,dirtyMap:n}),m(a,i,0,t,n),y(i,this._api))},updateView:function(t){var e=this._model;e&&(At.markUpdateMethod(t,"updateView"),p(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),g(this,this._model,this._api,t),y(e,this._api))},updateVisual:function(t){X.update.call(this,t)},updateLayout:function(t){X.update.call(this,t)}},q.resize=function(t){var e,n,i;this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[U]=!0,n&&s(this),X.update.call(this),this[U]=!1,h.call(this,i),d.call(this,i))},q.showLoading=function(t,e){var n,i;L(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),it[t]&&(n=it[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n))},q.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},q.makeActionFromEvent=function(t){var e=pt.extend({},t);return e.type=K[t.type],e},q.dispatchAction=function(t,e){L(e)||(e={silent:!!e}),$[t.type]&&this._model&&(this[U]?this._pendingActions.push(t):(c.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&mt.browser.weChat&&this._throttledZrFlush(),h.call(this,e.silent),d.call(this,e.silent)))},q.appendData=function(t){var e=t.seriesIndex,n=this.getModel(),i=n.getSeriesByIndex(e);i.appendData(t),this._scheduler.unfinished=!0},q.on=i("on"),q.off=i("off"),q.one=i("one"),Z=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"],q._initEvents=function(){O(Z,function(t){var e=function(e){var n,i,a,o,r,s,l=this.getModel(),u=e.target,c="globalout"===t;c?n={}:u&&null!=u.dataIndex?n=(i=u.dataModel||l.getSeriesByIndex(u.seriesIndex))&&i.getDataParams(u.dataIndex,u.dataType,u)||{}:u&&u.eventData&&(n=pt.extend({},u.eventData)),n&&(a=n.componentType,o=n.componentIndex,"markLine"!==a&&"markPoint"!==a&&"markArea"!==a||(a="series",o=n.seriesIndex),s=(r=a&&null!=o&&l.getComponent(a,o))&&this["series"===r.mainType?"_chartsMap":"_componentsMap"][r.__viewId],n.event=e,n.type=t,this._ecEventProcessor.eventInfo={targetEl:u,packedEvent:n,model:r,view:s},this.trigger(t,n))};e.zrEventfulCallAtLast=!0,this._zr.on(t,e,this)},this),O(K,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},q.isDisposed=function(){return this._disposed},q.clear=function(){this.setOption({series:[]},!0)},q.dispose=function(){var t,e;this._disposed||(this._disposed=!0,Dt.setAttribute(this.getDom(),lt,""),t=this._api,e=this._model,O(this._componentsViews,function(n){n.dispose(e,t)}),O(this._chartsViews,function(n){n.dispose(e,t)}),this._zr.dispose(),delete at[this.id])},pt.mixin(o,xt),_.prototype={constructor:_,normalizeQuery:function(t){var e,n,i,a={},o={},r={};return pt.isString(t)?(e=E(t),a.mainType=e.main||null,a.subType=e.sub||null):(n=["Index","Name","Id"],i={name:1,dataIndex:1,dataType:1},pt.each(t,function(t,e){var s,l,u,c,h=!1;for(s=0;s=e[0]&&t<=e[1]},i.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},i.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},i.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},i.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},i.prototype.getExtent=function(){return this._extent.slice()},i.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},i.prototype.isBlank=function(){return this._isBlank},i.prototype.setBlank=function(t){this._isBlank=t},i.prototype.getLabel=null,o.enableClassExtend(i),o.enableClassManagement(i,{registerWhenExtend:!0}),a=i,t.exports=a},6403:function(t,e,n){},"67de":function(t,e,n){var i,a=n("b2de"),o={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},r={};r.categoryAxis=a.merge({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},o),r.valueAxis=a.merge({boundaryGap:[0,0],splitNumber:5},o),r.timeAxis=a.defaults({scale:!0,min:"dataMin",max:"dataMax"},r.valueAxis),r.logAxis=a.defaults({scale:!0,logBase:10},r.valueAxis),i=r,t.exports=i},"68c2":function(t,e,n){},"6a88":function(t,e,n){function i(t,e,n,i,a,o,r){function s(e,n,i,a){for(var o=e;ot[o].y+t[o].height)return void l(o,i/2);l(n-1,i/2)}function l(e,n){for(var i=e;0<=i&&(t[i].y-=n,!(0t[i-1].y+t[i-1].height));i--);}function u(t,e,n,i,a,o){var r,s,l,u,c,h,d=e?Number.MAX_VALUE:0;for(r=0,s=t.length;r=n?p.push(t[g]):f.push(t[g]);u(f,!1,e,n,i,a),u(p,!0,e,n,i,a)}function a(t){return"center"===t.position}var o=n("4592");t.exports=function(t,e,n,r){var s,l,u=t.getData(),c=[],h=!1;u.each(function(n){var i,a,r,d,f,p,g,m,y,x,_,v,b,w,S=u.getItemLayout(n),C=u.getItemModel(n),M=C.getModel("label"),T=M.get("position")||C.get("emphasis.label.position"),I=C.getModel("labelLine"),A=I.get("length"),k=I.get("length2"),D=(S.startAngle+S.endAngle)/2,O=Math.cos(D),P=Math.sin(D);s=S.cx,l=S.cy,f="inside"===T||"inner"===T,d="center"===T?(i=S.cx,a=S.cy,"center"):(i=(p=(f?(S.r+S.r0)/2*O:S.r*O)+s)+3*O,a=(g=(f?(S.r+S.r0)/2*P:S.r*P)+l)+3*P,f||(i=(y=(m=p+O*(A+e-S.r))+(O<0?-1:1)*k)+(O<0?-5:5),r=[[p,g],[m,x=g+P*(A+e-S.r)],[y,a=x]]),f?"center":0e[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},a.inherits(r,o),i=r,t.exports=i},"7d81":function(t,e,n){function i(t){if(t){var e=f();return g(t,function(t,n){if(null==(t=b({},x(t)?t:{name:t})).name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function a(t,e,n,i){var a,o;if(null==i&&(i=1/0),e===D)for(a=0;ao[0]&&(o[0]=i[0]),i[1]>o[1]&&(o[1]=i[1]);return{min:e?a:o,max:e?o:a}}var r=n("3caf"),s=n("df91"),l=n("8eec"),u=s.min,c=s.max,h=s.scaleAndAdd,d=s.copy,f=[],p=[],g=[],m=r.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:l(r.prototype.brush),buildPath:function(t,e){var n=e.points,r=0,s=n.length,l=o(n,e.smoothConstraint);if(e.connectNulls){for(;0Math.abs(o[1])?0f[1]&&(f[1]=d);e&&(this._nameList[s]=e[l])}this._rawCount=this._count=v,this._extent={},r(this)},N._initDataFromProvider=function(t,e){var n,i,a,s,l,u,c,h,d,f,p,g,m,y,x,_,v,b,w,S,C,M,T,I,A,k,D,O;if(!(e<=t)){for(n=this._chunkSize,i=this._rawData,a=this._storage,l=(s=this.dimensions).length,u=this._dimensionInfos,c=this._nameList,h=this._idList,d=this._rawExtent,f=this._nameRepeatCount={},g=this._chunkCount,m=0;mT[1]&&(T[1]=M);i.pure||(I=c[v],_&&null==I&&(null!=_.name?c[v]=I=_.name:null!=p&&(k=a[A=s[p]][b])&&(I=k[w],(D=u[A].ordinalMeta)&&D.categories.length&&(I=D.categories[I]))),null==(O=null==_?null:_.id)&&null!=I&&(f[I]=f[I]||0,0=this._rawCount||t<0)return-1;if(null!=(n=(e=this._indices)[t])&&nt))return o;a=o-1}return-1},N.indicesOfNearest=function(t,e,n){var i,a,o,r,s,l,u=this._storage,c=u[t],h=[];if(!c)return h;for(null==n&&(n=1/0),i=Number.MAX_VALUE,a=-1,o=0,r=this.count();ot[A][1])&&(I=!1);I&&(r[s++]=this.getRawIndex(_))}return sT[1]&&(T[1]=M)}return a},N.downSample=function(t,e,n,a){var o,r,s,l,c,h,f,p,g=d(this,[t]),m=g._storage,y=[],x=Math.floor(1/e),_=m[t],v=this.count(),b=this._chunkSize,w=g._rawExtent[t],S=new(i(this))(v),C=0;for(o=0;ow[1]&&(w[1]=h),S[C++]=f}return g._count=C,g._indices=S,g.getRawIndex=u,g},N.getItemModel=function(t){var e=this.hostModel;return new _(this.getRawDataItem(t),e,e&&e.ecModel)},N.diff=function(t){var e=this;return new v(t?t.getIndices():[],this.getIndices(),function(e){return c(t,e)},function(t){return c(e,t)})},N.getVisual=function(t){var e=this._visual;return e&&e[t]},N.setVisual=function(t,e){if(I(t))for(var n in t)t.hasOwnProperty(n)&&this.setVisual(n,t[n]);else this._visual=this._visual||{},this._visual[t]=e},N.setLayout=function(t,e){if(I(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},N.getLayout=function(t){return this._layout[t]},N.getItemLayout=function(t){return this._itemLayouts[t]},N.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?x.extend(this._itemLayouts[t]||{},e):e},N.clearItemLayouts=function(){this._itemLayouts.length=0},N.getItemVisual=function(t,e,n){var i=this._itemVisuals[t],a=i&&i[e];return null!=a||n?a:this.getVisual(e)},N.setItemVisual=function(t,e,n){var i,a=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=a,I(e))for(i in e)e.hasOwnProperty(i)&&(a[i]=e[i],o[i]=!0);else a[e]=n,o[e]=!0},N.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}},g=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType},N.setItemGraphicEl=function(t,e){var n=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(g,e)),this._graphicEls[t]=e},N.getItemGraphicEl=function(t){return this._graphicEls[t]},N.eachItemGraphicEl=function(t,e){x.each(this._graphicEls,function(n,i){n&&t&&t.call(e,n,i)})},N.cloneShallow=function(t){var e,n;return t||(e=x.map(this.dimensions,this.getDimensionInfo,this),t=new z(e,this.hostModel)),t._storage=this._storage,a(t,this),this._indices?(n=this._indices.constructor,t._indices=new n(this._indices)):t._indices=null,t.getRawIndex=t._indices?u:l,t},N.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(x.slice(arguments)))})},N.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],N.CHANGABLE_METHODS=["filterSelf","selectRange"],m=z,t.exports=m},"96eb":function(t,e,n){function i(t){return parseInt(t,10)}var a,o=n("1f2e"),r=o.devicePixelRatio,s=n("b2de"),l=n("5810"),u=n("a16b"),c=n("2d19"),h=n("fd9f"),d=n("74a8"),f=n("3b4b"),p=n("76be"),g=1e5,m=314159,y=.01,x=.001,_=new u(0,0,0,0),v=new u(0,0,0,0),b=function(t,e,n){var i,a,o,l,u,c,d,f,p,g,y;this.type="canvas",i=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase(),this._opts=n=s.extend({},n||{}),this.dpr=n.devicePixelRatio||r,this._singleCanvas=i,(a=(this.root=t).style)&&(a["-webkit-tap-highlight-color"]="transparent",a["-webkit-user-select"]=a["user-select"]=a["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e,o=this._zlevelList=[],l=this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,i?(c=t.width,d=t.height,null!=n.width&&(c=n.width),null!=n.height&&(d=n.height),this.dpr=n.devicePixelRatio||1,t.width=c*this.dpr,t.height=d*this.dpr,this._width=c,this._height=d,(f=new h(t,this,this.dpr)).__builtin__=!0,f.initContext(),(l[m]=f).zlevel=m,o.push(m),this._domRoot=t):(this._width=this._getSize(0),this._height=this._getSize(1),u=this._domRoot=(p=this._width,g=this._height,(y=document.createElement("div")).style.cssText=["position:relative;overflow:hidden","width:"+p+"px","height:"+g+"px","padding:0;margin:0;border-width:0"].join(";")+";",y),t.appendChild(u)),this._hoverlayer=null,this._hoverElements=[]};b.prototype={constructor:b,getType:function(){return"canvas"},isSingleCanvas:function(){return this._singleCanvas},getViewportRoot:function(){return this._domRoot},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(t){var e,n,i,a,o=this.storage.getDisplayList(!0),r=this._zlevelList;for(this._redrawId=Math.random(),this._paintList(o,t,this._redrawId),e=0;ea[0]){for(s=0;st);s++);r=i[a[s]]}a.splice(s+1,0,t),(i[t]=e).virtual||(r?(n=r.dom).nextSibling?u.insertBefore(e.dom,n.nextSibling):u.appendChild(e.dom):u.firstChild?u.insertBefore(e.dom,u.firstChild):u.appendChild(e.dom))}else l("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var n,i,a=this._zlevelList;for(i=0;ii[0]?1:-1,i[0]+=n*e,i[1]-=n*e),i}function r(t,e,n,i){return"polar"===t.type?(w=e,S=n,C=i,A=(v=t).getAngleAxis(),k=v.getRadiusAxis(),(D=k.getExtent().slice())[0]>D[1]&&D.reverse(),M=A.getExtent(),T=Math.PI/180,S&&(D[0]-=.5,D[1]+=.5),I=new p.Sector({shape:{cx:b(v.cx,1),cy:b(v.cy,1),r0:b(D[0],1),r:b(D[1],1),startAngle:-M[0]*T,endAngle:-M[1]*T,clockwise:A.inverse}}),w&&(I.shape.endAngle=-M[0]*T,p.initProps(I,{shape:{endAngle:-M[1]*T}},C)),I):(r=e,s=n,l=i,d=o((a=t).getAxis("x")),f=o(a.getAxis("y")),g=a.getBaseAxis().isHorizontal(),m=Math.min(d[0],d[1]),y=Math.min(f[0],f[1]),x=Math.max(d[0],d[1])-m,_=Math.max(f[0],f[1])-y,s?(m-=.5,x+=.5,y-=.5,_+=.5):(u=l.get("lineStyle.width")||2,c=l.get("clipOverflow")?u/2:Math.max(x,_),g?(y-=c,_+=2*c):(m-=c,x+=2*c)),h=new p.Rect({shape:{x:m,y:y,width:x,height:_}}),r&&(h.shape[g?"width":"height"]=0,p.initProps(h,{shape:{width:x,height:_}},l)),h);var a,r,s,l,u,c,h,d,f,g,m,y,x,_,v,w,S,C,M,T,I,A,k,D}function s(t,e,n){var i,a,o,r,s,l,u=e.getBaseAxis(),c="x"===u.dim||"radius"===u.dim?0:1,h=[];for(i=0;ir)return!1;return!0}(i,e)))return a=e.mapDimension(i.dim),o={},c.each(i.getViewLabels(),function(t){o[t.tickValue]=1}),function(t){return!o.hasOwnProperty(e.get(a,t))}}var u=n("b1e6"),c=(u.__DEV__,n("b2de")),h=n("8101"),d=n("6e36"),f=n("7f8a"),p=n("81e8"),g=n("0127"),m=n("8172"),y=m.Polyline,x=m.Polygon,_=n("45d9"),v=n("e2dc"),b=v.round,w=n("7635"),S=w.prepareDataCoordInfo,C=w.getStackedOnPoint,M=_.extend({type:"line",init:function(){var t=new p.Group,e=new h;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,n){var o,u,h,d,f,g=t.coordinateSystem,m=this.group,y=t.getData(),x=t.getModel("lineStyle"),_=t.getModel("areaStyle"),v=y.mapArray(y.getItemLayout),b="polar"===g.type,w=this._coordSys,M=this._symbolDraw,T=this._polyline,I=this._polygon,A=this._lineGroup,k=t.get("animation"),D=!_.isEmpty(),O=_.get("origin"),P=S(g,y,O),L=function(t,e,n){var i,a,o;if(!n.valueDim)return[];for(i=[],a=0,o=e.count();au[h-1].coord&&(u.reverse(),d.reverse()),f=10,g=u[0].coord-f,m=u[h-1].coord+f,(y=m-g)<.001?"transparent":(c.each(u,function(t){t.offset=(t.coord-g)/y}),u.push({offset:h?u[h-1].offset:.5,color:d[1]||"transparent"}),u.unshift({offset:h?u[0].offset:.5,color:d[0]||"transparent"}),(x=new p.LinearGradient(0,0,0,0,u,!0))[n]=g,x[n+"2"]=m,x)}}(y,g)||y.getVisual("color"),T.useStyle(c.defaults(x.getLineStyle(),{fill:"none",stroke:u,lineJoin:"bevel"})),h=t.get("smooth"),h=a(t.get("smooth")),T.setShape({smooth:h,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),I&&(d=y.getCalculationInfo("stackedOnSeries"),f=0,I.useStyle(c.defaults(_.getAreaStyle(),{fill:u,opacity:.7,lineJoin:"bevel"})),d&&(f=a(d.get("smooth"))),I.setShape({smooth:h,stackedOnSmooth:f,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})),this._data=y,this._coordSys=g,this._stackedOnPoints=L,this._points=v,this._step=o,this._valueOrigin=O},dispose:function(){},highlight:function(t,e,n,i){var a,o,r=t.getData(),s=g.queryDataIndex(r,i);if(!(s instanceof Array)&&null!=s&&0<=s){if(!(a=r.getItemGraphicEl(s))){if(!(o=r.getItemLayout(s)))return;(a=new d(r,s)).position=o,a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(o[0])||isNaN(o[1]),a.__temp=!0,r.setItemGraphicEl(s,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else _.prototype.highlight.call(this,t,e,n,i)},downplay:function(t,e,n,i){var a,o=t.getData(),r=g.queryDataIndex(o,i);null!=r&&0<=r?(a=o.getItemGraphicEl(r))&&(a.__temp?(o.setItemGraphicEl(r,null),this.group.remove(a)):a.downplay()):_.prototype.downplay.call(this,t,e,n,i)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new y({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e},_newPolygon:function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new x({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(n),this._polygon=n},_updateAnimation:function(t,e,n,i,a,o){var r,l,u,c,h=this._polyline,d=this._polygon,g=t.hostModel,m=f(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),y=m.current,x=m.stackedOnCurrent,_=m.next,v=m.stackedOnNext;for(a&&(y=s(m.current,n,a),x=s(m.stackedOnCurrent,n,a),_=s(m.next,n,a),v=s(m.stackedOnNext,n,a)),h.shape.__points=m.current,h.shape.points=y,p.updateProps(h,{shape:{points:_}},g),d&&(d.setShape({points:y,stackedOnPoints:x}),p.updateProps(d,{shape:{points:_,stackedOnPoints:v}},g)),r=[],l=m.status,u=0;u=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height},clone:function(){return new i(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},i.create=function(t){return new i(t.x,t.y,t.width,t.height)},a=i,t.exports=a},a434:function(t,e,n){function i(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var a,o,r=n("73a1"),s=function(){this._track=[]};s.prototype={constructor:s,recognize:function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,n){var i,a,o,s,l,u=t.touches;if(u){for(i={points:[],touches:[],target:e,event:t},a=0,o=u.length;a "):(i=new c(e),this._newLine="\n"),this._tooltipContent=i)},render:function(t,e,n){if(!l.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel,e=t.get("triggerOn");y.register("itemTooltip",this._api,w(function(t,n,i){"none"!==e&&(0<=e.indexOf(t)?this._tryShow(n,i):"leave"===t&&this._hide(i))},this))},_keepShow:function(){var t,e=this._tooltipModel,n=this._ecModel,i=this._api;null!=this._lastX&&null!=this._lastY&&"none"!==e.get("triggerOn")&&(clearTimeout((t=this)._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){t.manuallyShowTip(e,n,i,{x:t._lastX,y:t._lastY})}))},manuallyShowTip:function(t,e,n,i){var o,r,s,u,c,h;if(i.from!==this.uid&&!l.node)if(o=a(i,n),this._ticket="",r=i.dataByCoordSys,i.tooltip&&null!=i.x&&null!=i.y)(s=M).position=[i.x,i.y],s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},o);else if(r)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,event:{},dataByCoordSys:i.dataByCoordSys,tooltipOption:i.tooltipOption},o);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;c=(u=p(i,e)).point[0],h=u.point[1],null!=c&&null!=h&&this._tryShow({offsetX:c,offsetY:h,position:i.position,target:u.el,event:{}},o)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target,event:{}},o))},manuallyHideTip:function(t,e,n,i){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,i.from!==this.uid&&this._hide(a(i,n))},_manuallyAxisShowTip:function(t,e,n,a){var o,r=a.seriesIndex,s=a.dataIndex,l=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=s&&null!=l&&(o=e.getSeriesByIndex(r))&&"axis"===(t=i([o.getData().getItemModel(s),o,(o.coordinateSystem||{}).model,t])).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:s,position:a.position}),!0},_tryShow:function(t,e){var n,i=t.target,a=this._tooltipModel;a&&(this._lastX=t.offsetX,this._lastY=t.offsetY,(n=t.dataByCoordSys)&&n.length?this._showAxisTooltip(n,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e)))},_showOrMove:function(t,e){var n=t.get("showDelay");e=s.bind(e,this),clearTimeout(this._showTimout),0u[1]&&u.reverse(),(null==s||s>u[1])&&(s=u[1]),sn)||!!l&&(i=d.getAxisInfo(t).seriesDataCount,a=r.getExtent(),Math.abs(a[0]-a[1])/i>n)):!0===o)},makeElOption:function(t,e,n,i,a){},createPointerEl:function(t,e,n,i){var a,o=e.pointer;o&&(a=y(t).pointerEl=new h[o.type](x(e.pointer)),t.add(a))},createLabelEl:function(t,e,n,i){if(e.label){var a=y(t).labelEl=new h.Rect(x(e.label));t.add(a),o(a,i)}},updatePointerEl:function(t,e,n){var i=y(t).pointerEl;i&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,n,i){var a=y(t).labelEl;a&&(a.setStyle(e.label.style),n(a,{shape:e.label.shape,position:e.label.position}),o(a,i))},_renderHandle:function(t){var e,n,i,a,o,r,l,c;if(!this._dragging&&this.updateHandleTransform){if(e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,a=e.getModel("handle"),o=e.get("status"),!a.get("show")||!o||"hide"===o)return i&&n.remove(i),void(this._handle=null);this._handle||(r=!0,i=this._handle=h.createIcon(a.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){f.stop(t.event)},onmousedown:_(this._onHandleDragMove,this,0,0),drift:_(this._onHandleDragMove,this),ondragend:_(this._onHandleDragEnd,this)}),n.add(i)),s(i,e,!1),l=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"],i.setStyle(a.getItemStyle(null,l)),c=a.get("size"),u.isArray(c)||(c=[c,c]),i.attr("scale",[c[0]/2,c[1]/2]),p.createOrUpdate(this,"_doDispatchAxisPointer",a.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){a(this._axisPointerModel,!e&&this._moveAnimation,this._handle,r(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var n,i=this._handle;i&&(this._dragging=!0,n=this.updateHandleTransform(r(i),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=n,i.stopAnimation(),i.attr(r(n)),y(i).lastProp=null,this._doDispatchAxisPointer())},_doDispatchAxisPointer:function(){var t,e,n=this._handle;n&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},_onHandleDragEnd:function(t){var e;this._dragging=!1,this._handle&&(e=this._axisPointerModel.get("value"),this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"}))},getHandleTransform:null,updateHandleTransform:null,clear:function(t){var e,n,i;this._lastValue=null,this._lastStatus=null,e=t.getZr(),n=this._group,i=this._handle,e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}}).constructor=i,c.enableClassExtend(i),l=i,t.exports=l},bc82:function(t,e){function n(t){return t}function i(t,e,i,a,o){this._old=t,this._new=e,this._oldKeyGetter=i||n,this._newKeyGetter=a||n,this.context=o}function a(t,e,n,i,a){var o,r,s;for(o=0;or[1]?(i=r[1],r[0]):(i=r[0],r[1]),(o=e.toGlobalCoord(e.dataToCoord(0)))e);n++);n=Math.min(n-1,U-2)}if(P=e,0!==(i=S[(O=n)+1]-S[n]))if(L=(e-S[n])/i,G)if(R=C[n],E=C[0===n?n:n-1],B=C[U-2>4|(3840&a)>>8,240&a|(240&a)>>4,15&a|(15&a)<<4,1),h(t,e),e):void u(e,0,0,0,1):7===i.length?0<=(a=parseInt(i.substr(1),16))&&a<=16777215?(u(e,(16711680&a)>>16,(65280&a)>>8,255&a,1),h(t,e),e):void u(e,0,0,0,1):void 0;if(s=i.indexOf("("),l=i.indexOf(")"),-1!==s&&l+1===i.length)switch(d=i.substr(0,s),p=i.substr(s+1,l-(s+1)).split(","),g=1,d){case"rgba":if(4!==p.length)return void u(e,0,0,0,1);g=r(p.pop());case"rgb":return 3!==p.length?void u(e,0,0,0,1):(u(e,o(p[0]),o(p[1]),o(p[2]),g),h(t,e),e);case"hsla":return 4!==p.length?void u(e,0,0,0,1):(p[3]=r(p[3]),f(p,e),h(t,e),e);case"hsl":return 3!==p.length?void u(e,0,0,0,1):(f(p,e),h(t,e),e);default:return}u(e,0,0,0,1)}}function f(t,e){var n=(parseFloat(t[0])%360+360)%360/360,a=r(t[1]),o=r(t[2]),l=o<=.5?o*(a+1):o+a-o*a,c=2*o-l;return u(e=e||[],i(255*s(c,l,n+1/3)),i(255*s(c,l,n)),i(255*s(c,l,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function p(t,e,n){var o,r,s,u,c,h;if(e&&e.length&&0<=t&&t<=1)return n=n||[],o=t*(e.length-1),r=Math.floor(o),s=Math.ceil(o),u=e[r],c=e[s],h=o-r,n[0]=i(l(u[0],c[0],h)),n[1]=i(l(u[1],c[1],h)),n[2]=i(l(u[2],c[2],h)),n[3]=a(l(u[3],c[3],h)),n}function g(t,e,n){var o,r,s,u,c,h,f;if(e&&e.length&&0<=t&&t<=1)return o=t*(e.length-1),r=Math.floor(o),s=Math.ceil(o),u=d(e[r]),c=d(e[s]),h=o-r,f=m([i(l(u[0],c[0],h)),i(l(u[1],c[1],h)),i(l(u[2],c[2],h)),a(l(u[3],c[3],h))],"rgba"),n?{color:f,leftIndex:r,rightIndex:s,value:o}:f}function m(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}var y=n("4ff5"),x={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},_=new y(20),v=null,b=p,w=g;e.parse=d,e.lift=function(t,e){var n,i=d(t);if(i){for(n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,255l?i+=n(o("data.partialData"),{displayCnt:l}):i+=o("data.allData"),p=[],g=0;ge.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function s(t,e){d.each(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,d.curry(l,e))})}function l(t){var e=u(t);e&&e.setOutputEnd(this.count())}function u(t){var e,n,i=(t.ecModel||{}).scheduler,a=i&&i.getPipeline(t.uid);if(a)return(e=a.currentTask)&&(n=e.agentStubMap)&&(e=n.get(t.uid)),e}var c,h=n("b1e6"),d=(h.__DEV__,n("b2de")),f=n("76be"),p=n("542f"),g=p.formatTime,m=p.encodeHTML,y=p.addCommas,x=p.getTooltipMarker,_=n("0127"),v=n("3c57"),b=n("3b8a"),w=n("18a6"),S=n("1f1f"),C=S.getLayoutParams,M=S.mergeLayoutParam,T=n("6f05"),I=T.createTask,A=n("7d81"),k=A.prepareSource,D=A.getSource,O=n("31c0"),P=O.retrieveRawValue,L=_.makeInner(),E=v.extend({type:"series.__base__",seriesIndex:0,coordinateSystem:null,defaultOption:null,legendDataProvider:null,visualColorAccessPath:"itemStyle.color",layoutMode:null,init:function(t,e,n,r){this.seriesIndex=this.componentIndex,this.dataTask=I({count:a,reset:o}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),k(this);var l=this.getInitialData(t,n);s(l,this),this.dataTask.context.data=l,L(this).dataBeforeProcessed=l,i(this)},mergeDefaultAndTheme:function(t,e){var n=this.layoutMode,i=n?C(t):{},a=this.subType;v.hasClass(a)&&(a+="Series"),d.merge(t,e.getTheme().get(this.subType)),d.merge(t,this.getDefaultOption()),_.defaultEmphasis(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&M(t,i,n)},mergeOption:function(t,e){var n,a;t=d.merge(this.option,t,!0),this.fillDataTextStyle(t.data),(n=this.layoutMode)&&M(this.option,t,n),k(this),s(a=this.getInitialData(t,e),this),this.dataTask.dirty(),this.dataTask.context.data=a,L(this).dataBeforeProcessed=a,i(this)},fillDataTextStyle:function(t){var e,n;if(t&&!d.isTypedArray(t))for(e=["show"],n=0;n ":"\n",r="richText"===i,s={},l=0,u=this.getData(),h=(c=u.mapDimension("defaultedTooltip",!0)).length,f=this.getRawValue(t),p=d.isArray(f),v=u.getItemVisual(t,"color"),d.isObject(v)&&v.colorStops&&(v=(v.colorStops[0]||{}).color),v=v||"transparent",b=(1 ":"")+p.join(o||", "),{renderMode:i,content:h,style:s}}(f):a(h?P(u,t,c[0]):p?f[0]:f)).content,w=I.seriesIndex+"at"+l,S=x({color:v,type:"item",renderMode:i,markerId:w}),s[w]=v,++l,C=u.getName(t),M=this.name,_.isNameSpecified(this)||(M=""),M=M?m(M)+(e?": ":o):"",T="string"==typeof S?S:S.content,{html:e?T+M+b:M+T+(C?m(C)+": "+b:b),markers:s}},isAnimationEnabled:function(){if(f.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,n){var i=this.ecModel,a=b.getColorFromPalette.call(this,t,e,n);return a||(a=i.getColorFromPalette(t,e,n)),a},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});d.mixin(E,w),d.mixin(E,b),c=E,t.exports=c},de55:function(t,e,n){function i(t){o(h,function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])})}var a=n("b2de"),o=a.each,r=a.isArray,s=a.isObject,l=n("a48d"),u=n("0127"),c=u.normalizeToArray,h=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],d=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"];t.exports=function(t,e){l(t,e),t.series=c(t.series),o(t.series,function(t){var e,n;s(t)&&("pie"!==(e=t.type)&&"gauge"!==e||null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===e&&null!=(n=function(t,e){var n,i;for(e=e.split(","),n=t,i=0;ithis._ux||v(e-this._yi)>this._uy||this._len<5;return this.addData(c.L,t,e),this._ctx&&n&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,n,i,a,o){return this.addData(c.C,t,e,n,i,a,o),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,n,i,a,o):this._ctx.bezierCurveTo(t,e,n,i,a,o)),this._xi=a,this._yi=o,this},quadraticCurveTo:function(t,e,n,i){return this.addData(c.Q,t,e,n,i),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},arc:function(t,e,n,i,a,o){return this.addData(c.A,t,e,n,n,i,a-i,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,a,o),this._xi=y(a)*n+t,this._yi=x(a)*n+e,this},arcTo:function(t,e,n,i,a){return this._ctx&&this._ctx.arcTo(t,e,n,i,a),this},rect:function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(c.R,t,e,n,i),this},closePath:function(){var t,e,n;return this.addData(c.Z),t=this._ctx,e=this._x0,n=this._y0,t&&(this._needsDash()&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){var e,n;if(t instanceof Array){for(this._lineDash=t,n=e=this._dashIdx=0;ne.length&&(this._expandData(),e=this.data),n=0;nT||v(r-a)>I||s===A-1)&&(t.lineTo(o,r),i=o,a=r);break;case c.C:t.bezierCurveTo(M[s++],M[s++],M[s++],M[s++],M[s++],M[s++]),i=M[s-2],a=M[s-1];break;case c.Q:t.quadraticCurveTo(M[s++],M[s++],M[s++],M[s++]),i=M[s-2],a=M[s-1];break;case c.A:u=M[s++],h=M[s++],d=M[s++],f=M[s++],p=M[s++],g=M[s++],m=M[s++],_=M[s++],b=f=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/a*o+n[0]},e.parsePercent=function(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+/,"").replace(/\s+$/,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n},e.round=function(t,e,n){return null==e&&(e=10),t=(+t).toFixed(e=Math.min(Math.max(0,e),20)),n?t:+t},e.asc=function(t){return t.sort(function(t,e){return t-e}),t},e.getPrecision=function(t){var e,n;if(isNaN(t=+t))return 0;for(e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n},e.getPrecisionSafe=function(t){var e,n,i=t.toString(),a=i.indexOf("e");return 0h&&(h=c[f],d=f);++l[d],c[d]=0,++u}return l[e]/o},e.MAX_SAFE_INTEGER=r,e.remRadian=function(t){var e=2*Math.PI;return(t%e+e)%e},e.isRadianAroundZero=function(t){return-o> /dev/null 2>&1 & echo\n 'card_job';")]),n("br"),e._v("\n 你也可以点此 "),n("el-button",{attrs:{size:"mini"},on:{click:e.clearOrder}},[e._v("手动清理")])],1)],1),n("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[n("el-button",{on:{click:e.handleResetForm}},[e._v("刷新")]),n("el-button",{attrs:{type:"primary",loading:e.loading},nativeOn:{click:function(t){return e.handleSubmit(t)}}},[e._v("保存更改")])],1)],1)},r=[],o=n("323e"),i=n.n(o),c=n("967f"),s={components:{},data:function(){return{loading:!1,labelWidth:"0px",form:{order_clean_unpay_open:0,order_clean_unpay_day:7},formRules:{}}},watch:{loading:function(e,t){e?t||i.a.isStarted()||i.a.start():i.a.done()}},mounted:function(){this.getSet()},methods:{getSet:function(){var e=this;this.loading=!0,Object(c.d)().then(function(t){Object.assign(e.form,t.data),e.loading=!1})},handleResetForm:function(){this.getSet()},handleSubmit:function(){var e=this;this.$refs.form.validate(function(t){t&&(e.loading=!0,Object(c.d)(e.form).then(function(){e.loading=!1,e.$notify({title:"操作成功",message:"配置保存成功",type:"success"})}).catch(function(){e.loading=!1}))})},clearOrder:function(){var e=this;this.$confirm("是否要删除 ".concat(this.form.order_clean_unpay_day,"天 前未支付订单?")).then(function(){Object(c.e)(e.form.order_clean_unpay_day).then(function(){e.$notify({title:"成功",message:"".concat(e.form.order_clean_unpay_day,"天 前未支付订单已删除"),type:"success"})})})}}},u=n("2877"),d=Object(u.a)(s,a,r,!1,null,null,null),t.default=d.exports}}]);
\ No newline at end of file
diff --git a/public/dist/js/chunk-538673b6.0b064a14.js b/public/dist/js/chunk-538673b6.0b064a14.js
new file mode 100644
index 000000000..f94ff8f20
--- /dev/null
+++ b/public/dist/js/chunk-538673b6.0b064a14.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-538673b6"],{"048a":function(t,a,s){},"3fd8":function(t,a,s){"use strict";var n=s("aef7"),i=s.n(n);i.a},"5ee5":function(t,a,s){"use strict";var n,i,r,e,o;s.r(a),n=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("el-card",{staticClass:"my-card home-link-card"},[s("div",{staticClass:"home-link"},[s("div",{staticClass:"header"},[s("span",{staticClass:"header-title"},[t._v("常用功能")])]),s("div",{staticClass:"functions"},[s("router-link",{staticClass:"function",attrs:{to:"/admin/system/set?tab=info"}},[t._v("店铺信息")]),s("router-link",{staticClass:"function",attrs:{to:"/admin/product/category"}},[t._v("商品分类")]),s("router-link",{staticClass:"function",attrs:{to:"/admin/product/list"}},[t._v("商品列表")]),s("router-link",{staticClass:"function",attrs:{to:"/admin/order/list"}},[t._v("订单记录")]),s("router-link",{staticClass:"function",attrs:{to:"/admin/order/analysis"}},[t._v("收益统计")]),s("router-link",{staticClass:"function",attrs:{to:"/admin/system/pay"}},[t._v("支付渠道")])],1)])])},i=[],r={name:"HomeLink",props:{userInfo:{}},data:function(){return{}}},s("3fd8"),s("a591"),e=s("2877"),o=Object(e.a)(r,n,i,!1,null,"4942bf96",null),a.default=o.exports},a591:function(t,a,s){"use strict";var n=s("048a"),i=s.n(n);i.a},aef7:function(t,a,s){}}]);
\ No newline at end of file
diff --git a/public/dist/js/chunk-6b21f7af.bd66349f.js b/public/dist/js/chunk-6b21f7af.bd66349f.js
new file mode 100644
index 000000000..3bba944f4
--- /dev/null
+++ b/public/dist/js/chunk-6b21f7af.bd66349f.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-6b21f7af","chunk-9b8ac54e","chunk-16304536","chunk-cfda387e","chunk-775f0977","chunk-520bbfda","chunk-fd8ae5d8","chunk-3821d039"],{"07b7":function(e,t,a){},"0a49":function(e,t,a){var s=a("9b43"),o=a("626a"),i=a("4bf8"),n=a("9def"),r=a("cd1c");e.exports=function(e,t){var a=1==e,l=2==e,c=3==e,m=4==e,p=6==e,u=5==e||p,d=t||r;return function(t,r,_){for(var f,v,h=i(t),g=o(h),b=s(r,_,3),y=n(g.length),k=0,x=a?d(t,y):l?d(t,0):void 0;k 个人中心 ] 设置并获取到访问密钥")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_secret_key"}},[a("span",[e._v("SecretKey (安全密钥)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 SecretKey (安全密钥)"},model:{value:e.form.storage_oss_secret_key,callback:function(t){e.$set(e.form,"storage_oss_secret_key",t)},expression:"form.storage_oss_secret_key"}}),a("span",{staticClass:"tip"},[e._v("可以在 [ 阿里云 > 个人中心 ] 设置并获取到安全密钥")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_bucket"}},[a("span",[e._v("Bucket (空间名称)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 Bucket (空间名称)"},model:{value:e.form.storage_oss_bucket,callback:function(t){e.$set(e.form,"storage_oss_bucket",t)},expression:"form.storage_oss_bucket"}}),a("span",{staticClass:"tip"},[e._v("填写存储空间名称,如:xxx")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_endpoint"}},[a("span",[e._v("Endpoint (节点域名)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 Endpoint (节点域名)"},model:{value:e.form.storage_oss_endpoint,callback:function(t){e.$set(e.form,"storage_oss_endpoint",t)},expression:"form.storage_oss_endpoint"}}),a("span",{staticClass:"tip"},[e._v("例如: oss-cn-hangzhou.aliyuncs.com")])],1),a("el-form-item",{staticClass:"item-container"},[a("el-switch",{attrs:{"inactive-text":"自定义域名","active-value":1,"inactive-value":0},model:{value:e.form.storage_oss_is_cname,callback:function(t){e.$set(e.form,"storage_oss_is_cname",t)},expression:"form.storage_oss_is_cname"}}),a("br"),a("span",{staticClass:"tip"},[e._v("开启此选项后, 请确认Endpoint为OSS绑定的CNAME域名")]),a("br"),a("span",{staticClass:"tip"},[e._v("开启此选项后, 可以使用CDN配置")])],1),e.form.storage_oss_is_cname?a("el-form-item",{staticClass:"item-container"},[a("el-switch",{attrs:{"inactive-text":"开启SSL","active-value":1,"inactive-value":0},model:{value:e.form.storage_oss_is_ssl,callback:function(t){e.$set(e.form,"storage_oss_is_ssl",t)},expression:"form.storage_oss_is_ssl"}})],1):e._e(),e.form.storage_oss_is_cname?a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_cdn_domain"}},[a("span",[e._v("CDN Domain (CDN 域名)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 CDN Domain (CDN 域名)"},model:{value:e.form.storage_oss_cdn_domain,callback:function(t){e.$set(e.form,"storage_oss_cdn_domain",t)},expression:"form.storage_oss_cdn_domain"}}),a("span",{staticClass:"tip"},[e._v("OSS绑定的CDN域名, 填写后将使用CDN")])],1):e._e()],1):e._e(),"qiniu"===e.form.storage_driver?a("div",[a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_access_key"}},[a("span",[e._v("AccessKey (访问密钥)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 AccessKey (访问密钥)"},model:{value:e.form.storage_qiniu_access_key,callback:function(t){e.$set(e.form,"storage_qiniu_access_key",t)},expression:"form.storage_qiniu_access_key"}}),a("span",{staticClass:"tip"},[e._v("可以在 [ 七牛云 > 个人中心 ] 设置并获取到访问密钥")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_secret_key"}},[a("span",[e._v("SecretKey (安全密钥)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 SecretKey (安全密钥)"},model:{value:e.form.storage_qiniu_secret_key,callback:function(t){e.$set(e.form,"storage_qiniu_secret_key",t)},expression:"form.storage_qiniu_secret_key"}}),a("span",{staticClass:"tip"},[e._v("可以在 [ 七牛云 > 个人中心 ] 设置并获取到安全密钥")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_bucket"}},[a("span",[e._v("Bucket (空间名称)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 Bucket (空间名称)"},model:{value:e.form.storage_qiniu_bucket,callback:function(t){e.$set(e.form,"storage_qiniu_bucket",t)},expression:"form.storage_qiniu_bucket"}}),a("span",{staticClass:"tip"},[e._v("填写存储空间名称,如:static")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_domains_default"}},[a("span",[e._v("Domain (七牛域名)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 Domain (七牛域名)"},model:{value:e.form.storage_qiniu_domains_default,callback:function(t){e.$set(e.form,"storage_qiniu_domains_default",t)},expression:"form.storage_qiniu_domains_default"}}),a("span",{staticClass:"tip"},[e._v("例如: xxxxx.com1.z0.glb.clouddn.com")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_domains_https"}},[a("span",[e._v("HTTPS Domain (HTTPS域名)")]),a("el-input",{attrs:{type:"text",placeholder:"请输入 HTTPS Domain (HTTPS域名)"},model:{value:e.form.storage_qiniu_domains_https,callback:function(t){e.$set(e.form,"storage_qiniu_domains_https",t)},expression:"form.storage_qiniu_domains_https"}})],1)],1):e._e()],1),a("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[a("el-button",{on:{click:e.handleResetForm}},[e._v("刷新")]),a("el-button",{attrs:{type:"primary",loading:e.loading},nativeOn:{click:function(t){return e.handleSubmit(t)}}},[e._v("保存更改")])],1)],1)},o=[],i=a("323e"),n=a.n(i),r=a("967f"),l={components:{},data:function(){return{loading:!1,labelWidth:"0px",form:{storage_driver:"",storage_s3_access_key:"",storage_s3_secret_key:"",storage_s3_region:"",storage_s3_bucket:"",storage_oss_access_key:"",storage_oss_secret_key:"",storage_oss_bucket:"",storage_oss_endpoint:"",storage_oss_is_ssl:"",storage_oss_is_cname:"",storage_oss_cdn_domain:"",storage_qiniu_access_key:"",storage_qiniu_secret_key:"",storage_qiniu_bucket:"",storage_qiniu_domains_default:"",storage_qiniu_domains_https:""},formRules:{}}},watch:{loading:function(e,t){e?t||n.a.isStarted()||n.a.start():n.a.done()}},mounted:function(){this.getSet()},methods:{getSet:function(){var e=this;this.loading=!0,Object(r.g)().then(function(t){Object.assign(e.form,t.data),e.loading=!1})},handleResetForm:function(){this.getSet()},handleSubmit:function(){var e=this;this.$refs.form.validate(function(t){t&&(e.loading=!0,Object(r.g)(e.form).then(function(){e.loading=!1,e.$notify({title:"操作成功",message:"配置保存成功",type:"success"})}).catch(function(){e.loading=!1}))})}}},c=a("2877"),m=Object(c.a)(l,s,o,!1,null,null,null),t.default=m.exports},a2c9:function(e,t,a){},aefc:function(e,t,a){"use strict";var s,o,i,n,r,l,c,m;a.r(t),s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-card",[a("el-form",{directives:[{name:"loading",rawName:"v-loading.body",value:e.loading,expression:"loading",modifiers:{body:!0}}],ref:"form",attrs:{model:e.form,"label-width":e.labelWidth,rules:e.formRules}},[a("h2",{staticClass:"title"},[e._v("主题设置")]),a("el-form-item",{staticClass:"item-container",attrs:{prop:"shop_theme"}},[a("span",{staticStyle:{display:"block"}},[e._v("默认主题")]),a("el-select",{staticClass:"theme-select",on:{change:function(t){e.form.shop_theme=e.theme.name}},model:{value:e.theme,callback:function(t){e.theme=t},expression:"theme"}},e._l(e.themes,function(e){return a("el-option",{key:"theme_"+e.id,attrs:{label:e.name+" - "+e.description,value:e}})}),1)],1),e.theme?a("el-card",{staticClass:"child-option"},[a("p",{staticClass:"child-option-title"},[e._v("主题默认配置")]),e._l(e.theme.options,function(t,s){return a("el-form-item",{key:"theme_option_"+s,staticClass:"item-container"},["checkbox"!==t.type?a("span",{staticStyle:{display:"block"}},[e._v(e._s(t.label))]):e._e(),"text"===t.type?a("el-input",{attrs:{type:t.inputType||"text",maxlength:t.size,placeholder:t.placeholder||""},model:{value:t.value,callback:function(a){e.$set(t,"value",a)},expression:"option.value"}}):e._e(),"textarea"===t.type?a("el-input",{attrs:{type:"textarea",maxlength:t.size,rows:t.rows,placeholder:t.placeholder||""},model:{value:t.value,callback:function(a){e.$set(t,"value",a)},expression:"option.value"}}):e._e(),"checkbox"===t.type?a("el-checkbox",{attrs:{"true-label":1,"false-label":0},model:{value:t.value,callback:function(a){e.$set(t,"value",a)},expression:"option.value"}},[e._v("\n "+e._s(t.label)+"\n ")]):e._e(),"select"===t.type?a("el-select",{model:{value:t.value,callback:function(a){e.$set(t,"value",a)},expression:"option.value"}},e._l(t.values,function(e,t){return a("el-option",{key:"theme_option_"+s+"_"+t,attrs:{value:t,label:e.label}})}),1):e._e(),"radio"===t.type?a("el-radio-group",{model:{value:t.value,callback:function(a){e.$set(t,"value",a)},expression:"option.value"}},e._l(t.values,function(t,o){return a("el-radio",{key:"theme_option_"+s+"_"+o,attrs:{label:o}},[e._v(e._s(t.label)+"\n ")])}),1):e._e()],1)})],2):e._e()],1),a("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[a("el-button",{on:{click:e.handleResetForm}},[e._v("刷新")]),a("el-button",{attrs:{type:"primary",loading:e.loading},nativeOn:{click:function(t){return e.handleSubmit(t)}}},[e._v("保存更改")])],1)],1)},o=[],a("456d"),a("7514"),a("7f7f"),a("ac6a"),i=a("323e"),n=a.n(i),r=a("967f"),l={components:{},data:function(){return{loading:!1,labelWidth:"0px",themes:[],theme:null,form:{shop_theme:""},formRules:{}}},watch:{loading:function(e,t){e?t||n.a.isStarted()||n.a.start():n.a.done()}},mounted:function(){this.getSet()},methods:{getSet:function(){var e=this;this.loading=!0,Object(r.h)().then(function(t){e.themes=t.data.themes,e.themes.forEach(function(e){if(e.value=e.name,e.options&&e.config)for(var t in e.options)e.options.hasOwnProperty(t)&&e.config.hasOwnProperty(t)&&(e.options[t].value=e.config[t])}),e.form.shop_theme=t.data.default,e.theme=e.themes.find(function(t){return t.name===e.form.shop_theme})}).finally(function(){e.loading=!1})},handleResetForm:function(){this.getSet()},handleSubmit:function(){var e=this;this.$refs.form.validate(function(t){t&&(e.loading=!0,e.form.theme_config={},Object.keys(e.theme.options).map(function(t){e.form.theme_config[t]=e.theme.options[t].value}),e.form.theme_config=JSON.stringify(e.form.theme_config),Object(r.h)(e.form).then(function(){e.loading=!1,e.$notify({title:"操作成功",message:"配置保存成功",type:"success"})}).catch(function(){e.loading=!1}))})}}},a("98bb"),c=a("2877"),m=Object(c.a)(l,s,o,!1,null,"1c4921e1",null),t.default=m.exports},cd1c:function(e,t,a){var s=a("e853");e.exports=function(e,t){return new(s(e))(t)}},daef:function(e,t,a){"use strict";var s,o,i,n,r,l,c,m;a.r(t),s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-card",[a("el-form",{directives:[{name:"loading",rawName:"v-loading.body",value:e.loading,expression:"loading",modifiers:{body:!0}}],ref:"form",attrs:{model:e.form,"label-width":e.labelWidth,rules:e.formRules}},[a("h2",{staticClass:"title"},[e._v("常规设置")]),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_name"}},[a("span",[e._v("名称")]),a("el-input",{attrs:{type:"text",placeholder:"网站名称"},model:{value:e.form.app_name,callback:function(t){e.$set(e.form,"app_name",t)},expression:"form.app_name"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_title"}},[a("span",[e._v("标题")]),a("el-input",{attrs:{type:"text",placeholder:"网站标题"},model:{value:e.form.app_title,callback:function(t){e.$set(e.form,"app_title",t)},expression:"form.app_title"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"shop_ann"}},[a("span",[e._v("店铺公告")]),a("quill-editor",{ref:"editor-shop_ann",attrs:{placeholder:"本说明将显示在商户首页"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"shop_ann_pop"}},[a("span",[e._v("首页弹窗")]),a("quill-editor",{ref:"editor-shop_ann_pop",attrs:{placeholder:"本说明将在商户首页弹窗"}})],1),a("el-form-item",{staticClass:"item-container"},[a("span",[e._v("库存显示")]),a("el-radio-group",{attrs:{size:"small"},model:{value:e.form.shop_inventory,callback:function(t){e.$set(e.form,"shop_inventory",t)},expression:"form.shop_inventory"}},[a("el-radio-button",{attrs:{label:0}},[e._v("大致范围")]),a("el-radio-button",{attrs:{label:1}},[e._v("实际库存")])],1)],1),a("h2",{staticClass:"title",staticStyle:{"margin-top":"48px"}},[e._v("网站设置")]),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_url"}},[a("span",[e._v("网站地址")]),a("el-input",{attrs:{type:"text",placeholder:"格式: http://example.com"},model:{value:e.form.app_url,callback:function(t){e.$set(e.form,"app_url",t)},expression:"form.app_url"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_url_api"}},[a("span",[e._v("网站API地址")]),a("el-input",{attrs:{type:"text",placeholder:"格式: http://api.example.com"},model:{value:e.form.app_url_api,callback:function(t){e.$set(e.form,"app_url_api",t)},expression:"form.app_url_api"}}),a("span",{staticStyle:{"font-size":"12px"}},[e._v("用于支付API通知,如主站开启5秒盾等,请在这里提供一个没有盾的地址,否则会造成通知失败")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"keywords"}},[a("span",[e._v("关键词")]),a("el-input",{attrs:{type:"text",placeholder:"请输入网站关键词(keywords)"},model:{value:e.form.keywords,callback:function(t){e.$set(e.form,"keywords",t)},expression:"form.keywords"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"description"}},[a("span",[e._v("描述")]),a("el-input",{attrs:{type:"text",placeholder:"请输入网站描述(description)"},model:{value:e.form.description,callback:function(t){e.$set(e.form,"description",t)},expression:"form.description"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"company"}},[a("span",[e._v("底部版权")]),a("el-input",{attrs:{type:"text",placeholder:"备案号以及版权号等信息"},model:{value:e.form.company,callback:function(t){e.$set(e.form,"company",t)},expression:"form.company"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"qq"}},[a("span",[e._v("客服QQ")]),a("el-input",{attrs:{type:"text",placeholder:"请输入联系QQ"},model:{value:e.form.shop_qq,callback:function(t){e.$set(e.form,"shop_qq",t)},expression:"form.shop_qq"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"js_kf"}},[a("span",[e._v("客服代码(QQ等)")]),a("el-input",{attrs:{type:"textarea",placeholder:"请输入客服代码",autosize:{minRows:3,maxRows:15}},model:{value:e.form.js_kf,callback:function(t){e.$set(e.form,"js_kf",t)},expression:"form.js_kf"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"js_tj"}},[a("span",[e._v("统计代码")]),a("el-input",{attrs:{type:"textarea",placeholder:"请输入统计代码",autosize:{minRows:3,maxRows:15}},model:{value:e.form.js_tj,callback:function(t){e.$set(e.form,"js_tj",t)},expression:"form.js_tj"}})],1)],1),a("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[a("el-button",{on:{click:e.handleResetForm}},[e._v("刷新")]),a("el-button",{attrs:{type:"primary",loading:e.loading},nativeOn:{click:function(t){return e.handleSubmit(t)}}},[e._v("保存更改")])],1)],1)},o=[],i=a("323e"),n=a.n(i),r=a("967f"),l={components:{QuillEditor:a("bd60").a},data:function(){return{loading:!1,labelWidth:"0px",form:{app_name:"加载中",app_title:"",app_url:"",app_url_api:"",keywords:"",description:"",shop_ann:"",shop_inventory:0,company:"",shop_qq:"",js_tj:"",js_kf:""},formRules:{app_name:[{required:!0,message:"请输入网站名称",trigger:"blur"}],app_url:[{required:!0,message:"请输入网站地址",trigger:"blur"}],app_url_api:[{required:!0,message:"请输入网站API地址",trigger:"blur"}],keywords:[{required:!0,message:"请输入网站关键词",trigger:"blur"}]}}},mounted:function(){this.loadInfo()},watch:{loading:function(e,t){e?t||n.a.isStarted()||n.a.start():n.a.done()}},methods:{loadInfo:function(){var e=this;this.loading=!0,Object(r.c)().then(function(t){Object.assign(e.form,t.data),e.$refs["editor-shop_ann"].setValue(e.form.shop_ann),e.$refs["editor-shop_ann_pop"].setValue(e.form.shop_ann_pop),e.loading=!1})},handleResetForm:function(){this.loadInfo()},handleSubmit:function(){var e=this;this.$refs.form.validate(function(t){t&&(e.loading=!0,e.form.shop_ann=e.$refs["editor-shop_ann"].getValue(),e.form.shop_ann_pop=e.$refs["editor-shop_ann_pop"].getValue(),Object(r.c)(e.form).then(function(){e.$notify({title:"提示",message:"修改设置成功",type:"success",duration:3e3}),e.loading=!1}).catch(function(){e.loading=!1}))})}}},c=a("2877"),m=Object(c.a)(l,s,o,!1,null,null,null),t.default=m.exports},e853:function(e,t,a){var s=a("d3f4"),o=a("1169"),i=a("2b4c")("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),s(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},f2c9:function(e,t,a){"use strict";var s,o,i,n,r,l,c,m;a.r(t),s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-card",[a("el-form",{directives:[{name:"loading",rawName:"v-loading.body",value:e.loading,expression:"loading",modifiers:{body:!0}}],ref:"form",attrs:{model:e.form,"label-width":e.labelWidth,rules:e.formRules}},[a("h2",{staticClass:"title"},[e._v("订单设置")]),a("el-form-item",{staticClass:"item-container"},[a("el-switch",{attrs:{"inactive-text":"清理未支付订单","active-value":1,"inactive-value":0},model:{value:e.form.order_clean_unpay_open,callback:function(t){e.$set(e.form,"order_clean_unpay_open",t)},expression:"form.order_clean_unpay_open"}})],1),a("el-form-item",{directives:[{name:"show",rawName:"v-show",value:e.form.order_clean_unpay_open,expression:"form.order_clean_unpay_open"}],staticClass:"item-container",attrs:{prop:"order_clean_unpay_day",rules:{required:!0,message:"请输入未支付订单保留天数",trigger:"blur"}}},[a("span",[e._v("未支付订单保留天数")]),a("el-input",{attrs:{type:"number",placeholder:"请输入未支付订单保留天数"},model:{value:e.form.order_clean_unpay_day,callback:function(t){e.$set(e.form,"order_clean_unpay_day",t)},expression:"form.order_clean_unpay_day"}}),a("span",{staticClass:"tip"},[e._v("超过此天数的未支付订单将被删除")])],1),a("div",{directives:[{name:"show",rawName:"v-show",value:e.form.order_clean_unpay_open,expression:"form.order_clean_unpay_open"}],staticStyle:{"font-size":"12px"}},[a("span",[e._v("注意: 本功能需要开启定时任务")]),a("code",{staticStyle:{display:"block"}},[e._v(" * * * * * php /www/wwwroot/card_dist/artisan schedule:run >> /dev/null 2>&1 & echo\n 'card_job';")]),a("br"),e._v("\n 你也可以点此 "),a("el-button",{attrs:{size:"mini"},on:{click:e.clearOrder}},[e._v("手动清理")])],1)],1),a("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[a("el-button",{on:{click:e.handleResetForm}},[e._v("刷新")]),a("el-button",{attrs:{type:"primary",loading:e.loading},nativeOn:{click:function(t){return e.handleSubmit(t)}}},[e._v("保存更改")])],1)],1)},o=[],i=a("323e"),n=a.n(i),r=a("967f"),l={components:{},data:function(){return{loading:!1,labelWidth:"0px",form:{order_clean_unpay_open:0,order_clean_unpay_day:7},formRules:{}}},watch:{loading:function(e,t){e?t||n.a.isStarted()||n.a.start():n.a.done()}},mounted:function(){this.getSet()},methods:{getSet:function(){var e=this;this.loading=!0,Object(r.d)().then(function(t){Object.assign(e.form,t.data),e.loading=!1})},handleResetForm:function(){this.getSet()},handleSubmit:function(){var e=this;this.$refs.form.validate(function(t){t&&(e.loading=!0,Object(r.d)(e.form).then(function(){e.loading=!1,e.$notify({title:"操作成功",message:"配置保存成功",type:"success"})}).catch(function(){e.loading=!1}))})},clearOrder:function(){var e=this;this.$confirm("是否要删除 ".concat(this.form.order_clean_unpay_day,"天 前未支付订单?")).then(function(){Object(r.e)(e.form.order_clean_unpay_day).then(function(){e.$notify({title:"成功",message:"".concat(e.form.order_clean_unpay_day,"天 前未支付订单已删除"),type:"success"})})})}}},c=a("2877"),m=Object(c.a)(l,s,o,!1,null,null,null),t.default=m.exports}}]);
\ No newline at end of file
diff --git a/public/dist/js/chunk-775f0977.c030fe17.js b/public/dist/js/chunk-775f0977.c030fe17.js
new file mode 100644
index 000000000..7ebf346a6
--- /dev/null
+++ b/public/dist/js/chunk-775f0977.c030fe17.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-775f0977"],{"967f":function(t,e,a){"use strict";function o(t){return Object(u.a)({url:"system/info",method:t?"post":"get",data:t})}function r(t){return Object(u.a)({url:"system/theme",method:t?"post":"get",data:t})}function n(t){return Object(u.a)({url:"system/order",method:t?"post":"get",data:t})}function s(t){return Object(u.a)({url:"system/vcode",method:t?"post":"get",data:t})}function i(t){return Object(u.a)({url:"system/email",method:t?"post":"get",data:t})}function l(t){return Object(u.a)({url:"system/sms",method:t?"post":"get",data:t})}function p(t){return Object(u.a)({url:"system/storage",method:t?"post":"get",data:t})}function c(t){return Object(u.a)({url:"system/email/test",method:"post",data:{to:t}})}function m(t){return Object(u.a)({url:"system/order/clean",method:"post",data:{day:t}})}a.d(e,"c",function(){return o}),a.d(e,"h",function(){return r}),a.d(e,"d",function(){return n}),a.d(e,"i",function(){return s}),a.d(e,"a",function(){return i}),a.d(e,"f",function(){return l}),a.d(e,"g",function(){return p}),a.d(e,"b",function(){return c}),a.d(e,"e",function(){return m});var u=a("41bb")},daef:function(t,e,a){"use strict";var o,r,n,s,i,l,p,c;a.r(e),o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-card",[a("el-form",{directives:[{name:"loading",rawName:"v-loading.body",value:t.loading,expression:"loading",modifiers:{body:!0}}],ref:"form",attrs:{model:t.form,"label-width":t.labelWidth,rules:t.formRules}},[a("h2",{staticClass:"title"},[t._v("常规设置")]),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_name"}},[a("span",[t._v("名称")]),a("el-input",{attrs:{type:"text",placeholder:"网站名称"},model:{value:t.form.app_name,callback:function(e){t.$set(t.form,"app_name",e)},expression:"form.app_name"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_title"}},[a("span",[t._v("标题")]),a("el-input",{attrs:{type:"text",placeholder:"网站标题"},model:{value:t.form.app_title,callback:function(e){t.$set(t.form,"app_title",e)},expression:"form.app_title"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"shop_ann"}},[a("span",[t._v("店铺公告")]),a("quill-editor",{ref:"editor-shop_ann",attrs:{placeholder:"本说明将显示在商户首页"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"shop_ann_pop"}},[a("span",[t._v("首页弹窗")]),a("quill-editor",{ref:"editor-shop_ann_pop",attrs:{placeholder:"本说明将在商户首页弹窗"}})],1),a("el-form-item",{staticClass:"item-container"},[a("span",[t._v("库存显示")]),a("el-radio-group",{attrs:{size:"small"},model:{value:t.form.shop_inventory,callback:function(e){t.$set(t.form,"shop_inventory",e)},expression:"form.shop_inventory"}},[a("el-radio-button",{attrs:{label:0}},[t._v("大致范围")]),a("el-radio-button",{attrs:{label:1}},[t._v("实际库存")])],1)],1),a("h2",{staticClass:"title",staticStyle:{"margin-top":"48px"}},[t._v("网站设置")]),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_url"}},[a("span",[t._v("网站地址")]),a("el-input",{attrs:{type:"text",placeholder:"格式: http://example.com"},model:{value:t.form.app_url,callback:function(e){t.$set(t.form,"app_url",e)},expression:"form.app_url"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"app_url_api"}},[a("span",[t._v("网站API地址")]),a("el-input",{attrs:{type:"text",placeholder:"格式: http://api.example.com"},model:{value:t.form.app_url_api,callback:function(e){t.$set(t.form,"app_url_api",e)},expression:"form.app_url_api"}}),a("span",{staticStyle:{"font-size":"12px"}},[t._v("用于支付API通知,如主站开启5秒盾等,请在这里提供一个没有盾的地址,否则会造成通知失败")])],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"keywords"}},[a("span",[t._v("关键词")]),a("el-input",{attrs:{type:"text",placeholder:"请输入网站关键词(keywords)"},model:{value:t.form.keywords,callback:function(e){t.$set(t.form,"keywords",e)},expression:"form.keywords"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"description"}},[a("span",[t._v("描述")]),a("el-input",{attrs:{type:"text",placeholder:"请输入网站描述(description)"},model:{value:t.form.description,callback:function(e){t.$set(t.form,"description",e)},expression:"form.description"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"company"}},[a("span",[t._v("底部版权")]),a("el-input",{attrs:{type:"text",placeholder:"备案号以及版权号等信息"},model:{value:t.form.company,callback:function(e){t.$set(t.form,"company",e)},expression:"form.company"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"qq"}},[a("span",[t._v("客服QQ")]),a("el-input",{attrs:{type:"text",placeholder:"请输入联系QQ"},model:{value:t.form.shop_qq,callback:function(e){t.$set(t.form,"shop_qq",e)},expression:"form.shop_qq"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"js_kf"}},[a("span",[t._v("客服代码(QQ等)")]),a("el-input",{attrs:{type:"textarea",placeholder:"请输入客服代码",autosize:{minRows:3,maxRows:15}},model:{value:t.form.js_kf,callback:function(e){t.$set(t.form,"js_kf",e)},expression:"form.js_kf"}})],1),a("el-form-item",{staticClass:"item-container",attrs:{prop:"js_tj"}},[a("span",[t._v("统计代码")]),a("el-input",{attrs:{type:"textarea",placeholder:"请输入统计代码",autosize:{minRows:3,maxRows:15}},model:{value:t.form.js_tj,callback:function(e){t.$set(t.form,"js_tj",e)},expression:"form.js_tj"}})],1)],1),a("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[a("el-button",{on:{click:t.handleResetForm}},[t._v("刷新")]),a("el-button",{attrs:{type:"primary",loading:t.loading},nativeOn:{click:function(e){return t.handleSubmit(e)}}},[t._v("保存更改")])],1)],1)},r=[],n=a("323e"),s=a.n(n),i=a("967f"),l={components:{QuillEditor:a("bd60").a},data:function(){return{loading:!1,labelWidth:"0px",form:{app_name:"加载中",app_title:"",app_url:"",app_url_api:"",keywords:"",description:"",shop_ann:"",shop_inventory:0,company:"",shop_qq:"",js_tj:"",js_kf:""},formRules:{app_name:[{required:!0,message:"请输入网站名称",trigger:"blur"}],app_url:[{required:!0,message:"请输入网站地址",trigger:"blur"}],app_url_api:[{required:!0,message:"请输入网站API地址",trigger:"blur"}],keywords:[{required:!0,message:"请输入网站关键词",trigger:"blur"}]}}},mounted:function(){this.loadInfo()},watch:{loading:function(t,e){t?e||s.a.isStarted()||s.a.start():s.a.done()}},methods:{loadInfo:function(){var t=this;this.loading=!0,Object(i.c)().then(function(e){Object.assign(t.form,e.data),t.$refs["editor-shop_ann"].setValue(t.form.shop_ann),t.$refs["editor-shop_ann_pop"].setValue(t.form.shop_ann_pop),t.loading=!1})},handleResetForm:function(){this.loadInfo()},handleSubmit:function(){var t=this;this.$refs.form.validate(function(e){e&&(t.loading=!0,t.form.shop_ann=t.$refs["editor-shop_ann"].getValue(),t.form.shop_ann_pop=t.$refs["editor-shop_ann_pop"].getValue(),Object(i.c)(t.form).then(function(){t.$notify({title:"提示",message:"修改设置成功",type:"success",duration:3e3}),t.loading=!1}).catch(function(){t.loading=!1}))})}}},p=a("2877"),c=Object(p.a)(l,o,r,!1,null,null,null),e.default=c.exports}}]);
\ No newline at end of file
diff --git a/public/dist/js/chunk-9b8ac54e.15f24baf.js b/public/dist/js/chunk-9b8ac54e.15f24baf.js
new file mode 100644
index 000000000..62570936a
--- /dev/null
+++ b/public/dist/js/chunk-9b8ac54e.15f24baf.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-9b8ac54e"],{"07b7":function(e,t,n){},"0a49":function(e,t,n){var o=n("9b43"),a=n("626a"),i=n("4bf8"),r=n("9def"),c=n("cd1c");e.exports=function(e,t){var n=1==e,l=2==e,s=3==e,u=4==e,f=6==e,d=5==e||f,m=t||c;return function(t,c,h){for(var p,v,b=i(t),y=a(b),_=o(c,h,3),g=r(y.length),x=0,k=n?m(t,g):l?m(t,0):void 0;x 个人中心 ] 设置并获取到访问密钥")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_secret_key"}},[s("span",[t._v("SecretKey (安全密钥)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 SecretKey (安全密钥)"},model:{value:t.form.storage_oss_secret_key,callback:function(e){t.$set(t.form,"storage_oss_secret_key",e)},expression:"form.storage_oss_secret_key"}}),s("span",{staticClass:"tip"},[t._v("可以在 [ 阿里云 > 个人中心 ] 设置并获取到安全密钥")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_bucket"}},[s("span",[t._v("Bucket (空间名称)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 Bucket (空间名称)"},model:{value:t.form.storage_oss_bucket,callback:function(e){t.$set(t.form,"storage_oss_bucket",e)},expression:"form.storage_oss_bucket"}}),s("span",{staticClass:"tip"},[t._v("填写存储空间名称,如:xxx")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_endpoint"}},[s("span",[t._v("Endpoint (节点域名)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 Endpoint (节点域名)"},model:{value:t.form.storage_oss_endpoint,callback:function(e){t.$set(t.form,"storage_oss_endpoint",e)},expression:"form.storage_oss_endpoint"}}),s("span",{staticClass:"tip"},[t._v("例如: oss-cn-hangzhou.aliyuncs.com")])],1),s("el-form-item",{staticClass:"item-container"},[s("el-switch",{attrs:{"inactive-text":"自定义域名","active-value":1,"inactive-value":0},model:{value:t.form.storage_oss_is_cname,callback:function(e){t.$set(t.form,"storage_oss_is_cname",e)},expression:"form.storage_oss_is_cname"}}),s("br"),s("span",{staticClass:"tip"},[t._v("开启此选项后, 请确认Endpoint为OSS绑定的CNAME域名")]),s("br"),s("span",{staticClass:"tip"},[t._v("开启此选项后, 可以使用CDN配置")])],1),t.form.storage_oss_is_cname?s("el-form-item",{staticClass:"item-container"},[s("el-switch",{attrs:{"inactive-text":"开启SSL","active-value":1,"inactive-value":0},model:{value:t.form.storage_oss_is_ssl,callback:function(e){t.$set(t.form,"storage_oss_is_ssl",e)},expression:"form.storage_oss_is_ssl"}})],1):t._e(),t.form.storage_oss_is_cname?s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_oss_cdn_domain"}},[s("span",[t._v("CDN Domain (CDN 域名)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 CDN Domain (CDN 域名)"},model:{value:t.form.storage_oss_cdn_domain,callback:function(e){t.$set(t.form,"storage_oss_cdn_domain",e)},expression:"form.storage_oss_cdn_domain"}}),s("span",{staticClass:"tip"},[t._v("OSS绑定的CDN域名, 填写后将使用CDN")])],1):t._e()],1):t._e(),"qiniu"===t.form.storage_driver?s("div",[s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_access_key"}},[s("span",[t._v("AccessKey (访问密钥)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 AccessKey (访问密钥)"},model:{value:t.form.storage_qiniu_access_key,callback:function(e){t.$set(t.form,"storage_qiniu_access_key",e)},expression:"form.storage_qiniu_access_key"}}),s("span",{staticClass:"tip"},[t._v("可以在 [ 七牛云 > 个人中心 ] 设置并获取到访问密钥")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_secret_key"}},[s("span",[t._v("SecretKey (安全密钥)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 SecretKey (安全密钥)"},model:{value:t.form.storage_qiniu_secret_key,callback:function(e){t.$set(t.form,"storage_qiniu_secret_key",e)},expression:"form.storage_qiniu_secret_key"}}),s("span",{staticClass:"tip"},[t._v("可以在 [ 七牛云 > 个人中心 ] 设置并获取到安全密钥")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_bucket"}},[s("span",[t._v("Bucket (空间名称)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 Bucket (空间名称)"},model:{value:t.form.storage_qiniu_bucket,callback:function(e){t.$set(t.form,"storage_qiniu_bucket",e)},expression:"form.storage_qiniu_bucket"}}),s("span",{staticClass:"tip"},[t._v("填写存储空间名称,如:static")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_domains_default"}},[s("span",[t._v("Domain (七牛域名)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 Domain (七牛域名)"},model:{value:t.form.storage_qiniu_domains_default,callback:function(e){t.$set(t.form,"storage_qiniu_domains_default",e)},expression:"form.storage_qiniu_domains_default"}}),s("span",{staticClass:"tip"},[t._v("例如: xxxxx.com1.z0.glb.clouddn.com")])],1),s("el-form-item",{staticClass:"item-container",attrs:{prop:"storage_qiniu_domains_https"}},[s("span",[t._v("HTTPS Domain (HTTPS域名)")]),s("el-input",{attrs:{type:"text",placeholder:"请输入 HTTPS Domain (HTTPS域名)"},model:{value:t.form.storage_qiniu_domains_https,callback:function(e){t.$set(t.form,"storage_qiniu_domains_https",e)},expression:"form.storage_qiniu_domains_https"}})],1)],1):t._e()],1),s("div",{staticClass:"text-center",staticStyle:{"margin-top":"24px"}},[s("el-button",{on:{click:t.handleResetForm}},[t._v("刷新")]),s("el-button",{attrs:{type:"primary",loading:t.loading},nativeOn:{click:function(e){return t.handleSubmit(e)}}},[t._v("保存更改")])],1)],1)},o=[],r=s("323e"),i=s.n(r),n=s("967f"),c={components:{},data:function(){return{loading:!1,labelWidth:"0px",form:{storage_driver:"",storage_s3_access_key:"",storage_s3_secret_key:"",storage_s3_region:"",storage_s3_bucket:"",storage_oss_access_key:"",storage_oss_secret_key:"",storage_oss_bucket:"",storage_oss_endpoint:"",storage_oss_is_ssl:"",storage_oss_is_cname:"",storage_oss_cdn_domain:"",storage_qiniu_access_key:"",storage_qiniu_secret_key:"",storage_qiniu_bucket:"",storage_qiniu_domains_default:"",storage_qiniu_domains_https:""},formRules:{}}},watch:{loading:function(t,e){t?e||i.a.isStarted()||i.a.start():i.a.done()}},mounted:function(){this.getSet()},methods:{getSet:function(){var t=this;this.loading=!0,Object(n.g)().then(function(e){Object.assign(t.form,e.data),t.loading=!1})},handleResetForm:function(){this.getSet()},handleSubmit:function(){var t=this;this.$refs.form.validate(function(e){e&&(t.loading=!0,Object(n.g)(t.form).then(function(){t.loading=!1,t.$notify({title:"操作成功",message:"配置保存成功",type:"success"})}).catch(function(){t.loading=!1}))})}}},_=s("2877"),l=Object(_.a)(c,a,o,!1,null,null,null),e.default=l.exports}}]);
\ No newline at end of file
diff --git a/public/dist/js/chunk-vendors.87be6e22.js b/public/dist/js/chunk-vendors.87be6e22.js
new file mode 100644
index 000000000..f7270fac5
--- /dev/null
+++ b/public/dist/js/chunk-vendors.87be6e22.js
@@ -0,0 +1,122 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([["chunk-vendors"],{"001b":function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},"014b":function(e,t,n){"use strict";var r,i,o,s,a=n("e53d"),l=n("07e3"),u=n("8e60"),c=n("63b6"),f=n("9138"),d=n("ebfd").KEY,p=n("294c"),h=n("dbdb"),m=n("45f2"),v=n("62a0"),y=n("5168"),g=n("ccb9"),b=n("6718"),_=n("47ee"),x=n("9003"),w=n("e4ae"),C=n("f772"),k=n("36c3"),O=n("1bc3"),S=n("aebd"),E=n("a159"),T=n("0395"),j=n("bf0b"),A=n("d9f6"),P=n("c3a1"),N=j.f,M=A.f,D=T.f,$=a.Symbol,L=a.JSON,I=L&&L.stringify,R="prototype",F=y("_hidden"),q=y("toPrimitive"),B={}.propertyIsEnumerable,H=h("symbol-registry"),z=h("symbols"),V=h("op-symbols"),U=Object[R],W="function"==typeof $,Y=a.QObject,G=!Y||!Y[R]||!Y[R].findChild,K=u&&p(function(){return 7!=E(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=N(U,t);r&&delete U[t],M(e,t,n),r&&e!==U&&M(U,t,r)}:M,X=function(e){var t=z[e]=E($[R]);return t._k=e,t},Z=W&&"symbol"==typeof $.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof $},J=function(e,t,n){return e===U&&J(V,t,n),w(e),t=O(t,!0),w(n),l(z,t)?(n.enumerable?(l(e,F)&&e[F][t]&&(e[F][t]=!1),n=E(n,{enumerable:S(0,!1)})):(l(e,F)||M(e,F,S(1,{})),e[F][t]=!0),K(e,t,n)):M(e,t,n)},Q=function(e,t){var n,r,i,o;for(w(e),r=0,i=(n=_(t=k(t))).length;ri;)l(z,t=n[i++])||t==F||t==d||r.push(t);return r},ie=function(e){for(var t,n=e===U,r=D(n?V:k(e)),i=[],o=0;r.length>o;)!l(z,t=r[o++])||n&&!l(U,t)||i.push(z[t]);return i};for(W||(f(($=function(){var e,t;if(this instanceof $)throw TypeError("Symbol is not a constructor!");return e=v(0i;)y(r[i++]);for(o=P(y.store),s=0;o.length>s;)b(o[s++]);c(c.S+c.F*!W,"Symbol",{for:function(e){return l(H,e+="")?H[e]:H[e]=$(e)},keyFor:function(e){if(!Z(e))throw TypeError(e+" is not a symbol!");for(var t in H)if(H[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),c(c.S+c.F*!W,"Object",{create:ee,defineProperty:J,defineProperties:Q,getOwnPropertyDescriptor:ne,getOwnPropertyNames:re,getOwnPropertySymbols:ie}),L&&c(c.S+c.F*(!W||p(function(){var e=$();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);if(n=t=r[1],(C(t)||void 0!==e)&&!Z(e))return x(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Z(t))return t}),r[1]=t,I.apply(L,r)}}),$[R][q]||n("35e8")($[R],q,$[R].valueOf),m($,"Symbol"),m(Math,"Math",!0),m(a.JSON,"JSON",!0)},"016f":function(e,t,n){},"01f9":function(e,t,n){"use strict";var r=n("2d00"),i=n("5ca1"),o=n("2aba"),s=n("32e9"),a=n("84f2"),l=n("41a0"),u=n("7f20"),c=n("38fd"),f=n("2b4c")("iterator"),d=!([].keys&&"next"in[].keys()),p="@@iterator",h="keys",m="values",v=function(){return this};e.exports=function(e,t,n,y,g,b,_){var x,w,C,k,O,S,E,T,j,A,P,N;if(l(n,t,y),w=t+" Iterator",C=g==m,k=!(x=function(e){if(!d&&e in O)return O[e];switch(e){case h:case m:return function(){return new n(this,e)}}return function(){return new n(this,e)}}),O=e.prototype,E=(S=O[f]||O[p]||g&&O[g])||x(g),T=g?C?x("entries"):E:void 0,(j="Array"==t&&O.entries||S)&&(N=c(j.call(new e)))!==Object.prototype&&N.next&&(u(N,w,!0),r||"function"==typeof N[f]||s(N,f,v)),C&&S&&S.name!==m&&(k=!0,E=function(){return S.call(this)}),r&&!_||!d&&!k&&O[f]||s(O,f,E),a[t]=E,a[w]=v,g)if(A={values:C?E:x(m),keys:b?E:x(h),entries:T},_)for(P in A)P in O||o(O,P,A[P]);else i(i.P+i.F*(d||k),t,A);return A}},"02f4":function(e,t,n){var r=n("4588"),i=n("be13");e.exports=function(e){return function(t,n){var o,s,a=i(t)+"",l=r(n),u=a.length;return l<0||u<=l?e?"":void 0:(o=a.charCodeAt(l))<55296||56319').concat((s=this.title,s.replace(/[<>"&]/g,function(e){return v[e]||e})),"").concat(i)),t.domProps={innerHTML:i}),o=this.title?[e("title",{attrs:{id:n}},this.title)]:[],e("svg",t,this.raw?null:o.concat(this.$slots.default||[].concat(r(this.icon.paths.map(function(t,n){return e("path",{attrs:t,key:"path-".concat(n)})})),r(this.icon.polygons.map(function(t,n){return e("polygon",{attrs:t,key:"polygon-".concat(n)})}))))))},register:function(e){var t,n,r,o,s,a,l,u;for(t in e)o=void 0===(r=(n=e[t]).paths)?[]:r,s=n.d,l=void 0===(a=n.polygons)?[]:a,u=n.points,s&&o.push({d:s}),u&&l.push({points:u}),p[t]=i({},n,{paths:o,polygons:l})},icons:p},m=870711,v={"<":"<",">":">",'"':""","&":"&"},y=h,g=(n("df9a"),n("2877")),b=Object(g.a)(y,void 0,void 0,!1,null,null,null);t.a=b.exports},"097d":function(e,t,n){"use strict";var r=n("5ca1"),i=n("8378"),o=n("7726"),s=n("ebd6"),a=n("bcaa");r(r.P+r.R,"Promise",{finally:function(e){var t=s(this,i.Promise||o.Promise),n="function"==typeof e;return this.then(n?function(n){return a(t,e()).then(function(){return n})}:e,n?function(n){return a(t,e()).then(function(){throw n})}:e)}})},"09b7":function(e,t,n){"use strict";var r,i,o;Object.defineProperty(t,"__esModule",{value:!0}),r=n("bf06"),i=n("6002"),o=function(){function e(){}return e.prototype.nest=function(e){var t=this,n=this.convertListBlocksToListGroups(e),o=this.groupConsecutiveListGroups(n),s=i.flatten(o.map(function(e){return Array.isArray(e)?t.nestListSection(e):e})),a=i.groupConsecutiveElementsWhile(s,function(e,t){return e instanceof r.ListGroup&&t instanceof r.ListGroup&&e.items[0].item.op.isSameListAs(t.items[0].item.op)});return a.map(function(e){if(!Array.isArray(e))return e;var t=e.map(function(e){return e.items});return new r.ListGroup(i.flatten(t))})},e.prototype.convertListBlocksToListGroups=function(e){return i.groupConsecutiveElementsWhile(e,function(e,t){return e instanceof r.BlockGroup&&t instanceof r.BlockGroup&&e.op.isList()&&t.op.isList()&&e.op.isSameListAs(t.op)&&e.op.hasSameIndentationAs(t.op)}).map(function(e){return Array.isArray(e)?new r.ListGroup(e.map(function(e){return new r.ListItem(e)})):e instanceof r.BlockGroup&&e.op.isList()?new r.ListGroup([new r.ListItem(e)]):e})},e.prototype.groupConsecutiveListGroups=function(e){return i.groupConsecutiveElementsWhile(e,function(e,t){return e instanceof r.ListGroup&&t instanceof r.ListGroup})},e.prototype.nestListSection=function(e){var t=this,n=this.groupByIndent(e);return Object.keys(n).map(Number).sort().reverse().forEach(function(r){n[r].forEach(function(n){var r=e.indexOf(n);t.placeUnderParent(n,e.slice(0,r))&&e.splice(r,1)})}),e},e.prototype.groupByIndent=function(e){return e.reduce(function(e,t){var n=t.items[0].item.op.attributes.indent;return n&&(e[n]=e[n]||[],e[n].push(t)),e},{})},e.prototype.placeUnderParent=function(e,t){var n,r,i;for(n=t.length-1;0<=n;n--)if(r=t[n],e.items[0].item.op.hasHigherIndentThan(r.items[0].item.op))return(i=r.items[r.items.length-1]).innerList?i.innerList.items=i.innerList.items.concat(e.items):i.innerList=e,!0;return!1},e}(),t.ListNester=o},"09f4":function(e,t,n){e.exports=!n("2992")&&!n("a822")(function(){return 7!=Object.defineProperty(n("33bb")("div"),"a",{get:function(){return 7}}).a})},"0a01":function(e,t,n){var r,i,o,s,a,l,u,c=n("935f"),f=n("90e3"),d=n("52fb"),p=n("e0bc"),h=n("1445"),m=n("58ee"),v=n("eb31"),y=v("iterator"),g=v("toStringTag"),b=m.Array,_={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1};for(r=f(_),i=0;i, total"},pageSizes:{type:Array,default:function(){return[10,20,30,40,50,100]}},popperClass:String,prevText:String,nextText:String,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},data:function(){return{internalCurrentPage:1,internalPageSize:0,lastEmittedPage:-1,userChangePageSize:!1}},render:function(e){var t,n,r,i,o,s=this.layout;return s&&(!this.hideOnSinglePage||this.internalPageCount&&1!==this.internalPageCount)?(t=e("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),n={prev:e("prev"),jumper:e("jumper"),pager:e("pager",{attrs:{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,disabled:this.disabled},on:{change:this.handleCurrentChange}}),next:e("next"),sizes:e("sizes",{attrs:{pageSizes:this.pageSizes}}),slot:e("slot",[this.$slots.default?this.$slots.default:""]),total:e("total")},r=s.split(",").map(function(e){return e.trim()}),i=e("div",{class:"el-pagination__rightwrapper"}),o=!1,t.children=t.children||[],i.children=i.children||[],r.forEach(function(e){"->"!==e?o?i.children.push(n[e]):t.children.push(n[e]):o=!0}),o&&t.children.unshift(i),t):null},components:{Prev:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage<=1},class:"btn-prev",on:{click:this.$parent.prev}},[this.$parent.prevText?e("span",[this.$parent.prevText]):e("i",{class:"el-icon el-icon-arrow-left"})])}},Next:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage===this.$parent.internalPageCount||0===this.$parent.internalPageCount},class:"btn-next",on:{click:this.$parent.next}},[this.$parent.nextText?e("span",[this.$parent.nextText]):e("i",{class:"el-icon el-icon-arrow-right"})])}},Sizes:{mixins:[v.a],props:{pageSizes:Array},watch:{pageSizes:{immediate:!0,handler:function(e,t){Object(y.valueEquals)(e,t)||Array.isArray(e)&&(this.$parent.internalPageSize=-1this.internalPageCount&&(t=this.internalPageCount):(isNaN(e)||e<1)&&(t=1),void 0===t&&isNaN(e)?t=1:0===t&&(t=1),void 0===t?e:t},emitChange:function(){var e=this;this.$nextTick(function(){(e.internalCurrentPage!==e.lastEmittedPage||e.userChangePageSize)&&(e.$emit("current-change",e.internalCurrentPage),e.lastEmittedPage=e.internalCurrentPage,e.userChangePageSize=!1)})}},computed:{internalPageCount:function(){return"number"==typeof this.total?Math.max(1,Math.ceil(this.total/this.internalPageSize)):"number"==typeof this.pageCount?Math.max(1,this.pageCount):null}},watch:{currentPage:{immediate:!0,handler:function(e){this.internalCurrentPage=this.getValidCurrentPage(e)}},pageSize:{immediate:!0,handler:function(e){this.internalPageSize=isNaN(e)?10:e}},internalCurrentPage:{immediate:!0,handler:function(e){this.$emit("update:currentPage",e),this.lastEmittedPage=-1}},internalPageCount:function(e){var t=this.internalCurrentPage;0x.cacheLength&&delete t[e.shift()],t[n+" "]=r}}function r(e){return e[R]=!0,e}function i(e){var t=P.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ke(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function f(e){return e&&void 0!==e.getElementsByTagName&&e}function d(){}function p(e){for(var t=0,n=e.length,r="";t+~]|"+te+")"+te+"*"),ue=RegExp(te+"|>"),ce=RegExp(ie),fe=RegExp("^"+ne+"$"),de={ID:RegExp("^#("+ne+")"),CLASS:RegExp("^\\.("+ne+")"),TAG:RegExp("^("+ne+"|[*])"),ATTR:RegExp("^"+re),PSEUDO:RegExp("^"+ie),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+te+"*(even|odd|(([+-]|)(\\d*)n|)"+te+"*(?:([+-]|)"+te+"*(\\d+)|))"+te+"*\\)|)","i"),bool:RegExp("^(?:"+ee+")$","i"),needsContext:RegExp("^"+te+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+te+"*((?:-\\d)?\\d*)"+te+"*\\)|)(?=[^-]|$)","i")},pe=/HTML$/i,he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ge=/[+~]/,be=RegExp("\\\\([\\da-f]{1,6}"+te+"?|("+te+")|.)","ig"),_e=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},xe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,we=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ce=function(){A()},ke=h(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{Z.apply(G=J.call(F.childNodes),F.childNodes),G[F.childNodes.length].nodeType}catch(n){Z={apply:G.length?function(e,t){X.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}for(b in _=t.support={},C=t.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!pe.test(t||n&&n.nodeName||"HTML")},A=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:F;return r!==P&&9===r.nodeType&&r.documentElement&&(N=(P=r).documentElement,M=!C(P),F!==P&&(n=P.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),_.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),_.getElementsByTagName=i(function(e){return e.appendChild(P.createComment("")),!e.getElementsByTagName("*").length}),_.getElementsByClassName=ve.test(P.getElementsByClassName),_.getById=i(function(e){return N.appendChild(e).id=R,!P.getElementsByName||!P.getElementsByName(R).length}),_.getById?(x.filter.ID=function(e){var t=e.replace(be,_e);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&M){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var t=e.replace(be,_e);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&M){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=_.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):_.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=_.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&M)return t.getElementsByClassName(e)},$=[],D=[],(_.qsa=ve.test(P.querySelectorAll))&&(i(function(e){N.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&D.push("[*^$]="+te+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||D.push("\\["+te+"*(?:value|"+ee+")"),e.querySelectorAll("[id~="+R+"-]").length||D.push("~="),e.querySelectorAll(":checked").length||D.push(":checked"),e.querySelectorAll("a#"+R+"+*").length||D.push(".#.+[+~]")}),i(function(e){e.innerHTML=" ";var t=P.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&D.push("name"+te+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&D.push(":enabled",":disabled"),N.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&D.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),D.push(",.*:")})),(_.matchesSelector=ve.test(L=N.matches||N.webkitMatchesSelector||N.mozMatchesSelector||N.oMatchesSelector||N.msMatchesSelector))&&i(function(e){_.disconnectedMatch=L.call(e,"*"),L.call(e,"[s!='']:x"),$.push("!=",ie)}),D=D.length&&RegExp(D.join("|")),$=$.length&&RegExp($.join("|")),t=ve.test(N.compareDocumentPosition),I=t||ve.test(N.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!_.sortDetached&&t.compareDocumentPosition(e)===n?e===P||e.ownerDocument===F&&I(F,e)?-1:t===P||t.ownerDocument===F&&I(F,t)?1:T?Q(T,e)-Q(T,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],l=[t];if(!i||!o)return e===P?-1:t===P?1:i?-1:o?1:T?Q(T,e)-Q(T,t):0;if(i===o)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;a[r]===l[r];)r++;return r?s(a[r],l[r]):a[r]===F?-1:l[r]===F?1:0}),P},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==P&&A(e),_.matchesSelector&&M&&!U[n+" "]&&(!$||!$.test(n))&&(!D||!D.test(n)))try{var r=L.call(e,n);if(r||_.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){U(n,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,_e),e[3]=(e[3]||e[4]||e[5]||"").replace(be,_e),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ce.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,_e).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=H[e+" "];return t||(t=RegExp("(^|"+te+")"+e+"("+te+"|$)"))&&H(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0==o.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,en.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?en.find.matchesSelector(r,e)?[r]:[]:en.find.matches(e,en.grep(t,function(e){return 1===e.nodeType}))},en.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(en(e).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,(en.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||oe,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):Xt(e)?void 0!==n.ready?n.ready(e):e(en):en.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:se.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof en?t[0]:t,en.merge(this,en.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:Rt,!0)),ie.test(r[1])&&en.isPlainObject(t))for(r in t)Xt(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=Rt.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=en.fn,oe=en(Rt),ae=/^(?:parents|prev(?:Until|All))/,le={children:!0,contents:!0,next:!0,prev:!0},en.fn.extend({has:function(e){var t=en(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Pe=/^$|^module$|\/(?:java|ecma)script/i,(Ne={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]}).optgroup=Ne.option,Ne.tbody=Ne.tfoot=Ne.colgroup=Ne.caption=Ne.thead,Ne.th=Ne.td,Me=/<|?\w+;/,Nt=Rt.createDocumentFragment().appendChild(Rt.createElement("div")),(Mt=Rt.createElement("input")).setAttribute("type","radio"),Mt.setAttribute("checked","checked"),Mt.setAttribute("name","t"),Nt.appendChild(Mt),Kt.checkClone=Nt.cloneNode(!0).cloneNode(!0).lastChild.checked,Nt.innerHTML="",Kt.noCloneChecked=!!Nt.cloneNode(!0).lastChild.defaultValue,De=/^key/,$e=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Le=/^([^.]*)(?:\.(.+)|)/,en.event={global:{},add:function(e,t,n,r,i){var o,s,a,l,u,c,f,d,p,h,m,v=ve.get(e);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&en.find.matchesSelector(Ce,i),n.guid||(n.guid=en.guid++),(l=v.events)||(l=v.events={}),(s=v.handle)||(s=v.handle=function(t){return void 0!==en&&en.event.triggered!==t.type?en.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(ue)||[""]).length;u--;)p=m=(a=Le.exec(t[u])||[])[1],h=(a[2]||"").split(".").sort(),p&&(f=en.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=en.event.special[p]||{},c=en.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&en.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=l[p])||((d=l[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,s)||e.addEventListener&&e.addEventListener(p,s)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),en.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,l,u,c,f,d,p,h,m,v=ve.hasData(e)&&ve.get(e);if(v&&(l=v.events)){for(u=(t=(t||"").match(ue)||[""]).length;u--;)if(p=m=(a=Le.exec(t[u])||[])[1],h=(a[2]||"").split(".").sort(),p){for(f=en.event.special[p]||{},d=l[p=(r?f.delegateType:f.bindType)||p]||[],a=a[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)c=d[o],!i&&m!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||en.removeEvent(e,p,v.handle),delete l[p])}else for(p in l)en.event.remove(e,p+t[u],n,r,!0);en.isEmptyObject(l)&&ve.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=en.event.fix(e),l=Array(arguments.length),u=(ve.get(this,"events")||{})[a.type]||[],c=en.event.special[a.type]||{};for(l[0]=a,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Re=/
diff --git a/resources/assets/sass/_variables.scss b/resources/assets/sass/_variables.scss
new file mode 100644
index 000000000..53202ac15
--- /dev/null
+++ b/resources/assets/sass/_variables.scss
@@ -0,0 +1,38 @@
+
+// Body
+$body-bg: #f5f8fa;
+
+// Borders
+$laravel-border-color: darken($body-bg, 10%);
+$list-group-border: $laravel-border-color;
+$navbar-default-border: $laravel-border-color;
+$panel-default-border: $laravel-border-color;
+$panel-inner-border: $laravel-border-color;
+
+// Brands
+$brand-primary: #3097D1;
+$brand-info: #8eb4cb;
+$brand-success: #2ab27b;
+$brand-warning: #cbb956;
+$brand-danger: #bf5329;
+
+// Typography
+$icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
+$font-family-sans-serif: "Raleway", sans-serif;
+$font-size-base: 14px;
+$line-height-base: 1.6;
+$text-color: #636b6f;
+
+// Navbar
+$navbar-default-bg: #fff;
+
+// Buttons
+$btn-default-color: $text-color;
+
+// Inputs
+$input-border: lighten($text-color, 40%);
+$input-border-focus: lighten($brand-primary, 25%);
+$input-color-placeholder: lighten($text-color, 30%);
+
+// Panels
+$panel-default-heading-bg: #fff;
diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss
new file mode 100644
index 000000000..1bbc55086
--- /dev/null
+++ b/resources/assets/sass/app.scss
@@ -0,0 +1,9 @@
+
+// Fonts
+@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600");
+
+// Variables
+@import "variables";
+
+// Bootstrap
+@import "~bootstrap-sass/assets/stylesheets/bootstrap";
diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php
new file mode 100644
index 000000000..e5506df29
--- /dev/null
+++ b/resources/lang/en/auth.php
@@ -0,0 +1,19 @@
+ 'These credentials do not match our records.',
+ 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
+
+];
diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php
new file mode 100644
index 000000000..d48141187
--- /dev/null
+++ b/resources/lang/en/pagination.php
@@ -0,0 +1,19 @@
+ '« Previous',
+ 'next' => 'Next »',
+
+];
diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php
new file mode 100644
index 000000000..e5544d201
--- /dev/null
+++ b/resources/lang/en/passwords.php
@@ -0,0 +1,22 @@
+ 'Passwords must be at least six characters and match the confirmation.',
+ 'reset' => 'Your password has been reset!',
+ 'sent' => 'We have e-mailed your password reset link!',
+ 'token' => 'This password reset token is invalid.',
+ 'user' => "We can't find a user with that e-mail address.",
+
+];
diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php
new file mode 100644
index 000000000..edc036dd0
--- /dev/null
+++ b/resources/lang/en/validation.php
@@ -0,0 +1,121 @@
+ 'The :attribute must be accepted.',
+ 'active_url' => 'The :attribute is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'after_or_equal' => 'The :attribute must be a date after or equal to :date.',
+ 'alpha' => 'The :attribute may only contain letters.',
+ 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
+ 'alpha_num' => 'The :attribute may only contain letters and numbers.',
+ 'array' => 'The :attribute must be an array.',
+ 'before' => 'The :attribute must be a date before :date.',
+ 'before_or_equal' => 'The :attribute must be a date before or equal to :date.',
+ 'between' => [
+ 'numeric' => 'The :attribute must be between :min and :max.',
+ 'file' => 'The :attribute must be between :min and :max kilobytes.',
+ 'string' => 'The :attribute must be between :min and :max characters.',
+ 'array' => 'The :attribute must have between :min and :max items.',
+ ],
+ 'boolean' => 'The :attribute field must be true or false.',
+ 'confirmed' => 'The :attribute confirmation does not match.',
+ 'date' => 'The :attribute is not a valid date.',
+ 'date_format' => 'The :attribute does not match the format :format.',
+ 'different' => 'The :attribute and :other must be different.',
+ 'digits' => 'The :attribute must be :digits digits.',
+ 'digits_between' => 'The :attribute must be between :min and :max digits.',
+ 'dimensions' => 'The :attribute has invalid image dimensions.',
+ 'distinct' => 'The :attribute field has a duplicate value.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'file' => 'The :attribute must be a file.',
+ 'filled' => 'The :attribute field must have a value.',
+ 'image' => 'The :attribute must be an image.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'in_array' => 'The :attribute field does not exist in :other.',
+ 'integer' => 'The :attribute must be an integer.',
+ 'ip' => 'The :attribute must be a valid IP address.',
+ 'ipv4' => 'The :attribute must be a valid IPv4 address.',
+ 'ipv6' => 'The :attribute must be a valid IPv6 address.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ 'max' => [
+ 'numeric' => 'The :attribute may not be greater than :max.',
+ 'file' => 'The :attribute may not be greater than :max kilobytes.',
+ 'string' => 'The :attribute may not be greater than :max characters.',
+ 'array' => 'The :attribute may not have more than :max items.',
+ ],
+ 'mimes' => 'The :attribute must be a file of type: :values.',
+ 'mimetypes' => 'The :attribute must be a file of type: :values.',
+ 'min' => [
+ 'numeric' => 'The :attribute must be at least :min.',
+ 'file' => 'The :attribute must be at least :min kilobytes.',
+ 'string' => 'The :attribute must be at least :min characters.',
+ 'array' => 'The :attribute must have at least :min items.',
+ ],
+ 'not_in' => 'The selected :attribute is invalid.',
+ 'numeric' => 'The :attribute must be a number.',
+ 'present' => 'The :attribute field must be present.',
+ 'regex' => 'The :attribute format is invalid.',
+ 'required' => 'The :attribute field is required.',
+ 'required_if' => 'The :attribute field is required when :other is :value.',
+ 'required_unless' => 'The :attribute field is required unless :other is in :values.',
+ 'required_with' => 'The :attribute field is required when :values is present.',
+ 'required_with_all' => 'The :attribute field is required when :values is present.',
+ 'required_without' => 'The :attribute field is required when :values is not present.',
+ 'required_without_all' => 'The :attribute field is required when none of :values are present.',
+ 'same' => 'The :attribute and :other must match.',
+ 'size' => [
+ 'numeric' => 'The :attribute must be :size.',
+ 'file' => 'The :attribute must be :size kilobytes.',
+ 'string' => 'The :attribute must be :size characters.',
+ 'array' => 'The :attribute must contain :size items.',
+ ],
+ 'string' => 'The :attribute must be a string.',
+ 'timezone' => 'The :attribute must be a valid zone.',
+ 'unique' => 'The :attribute has already been taken.',
+ 'uploaded' => 'The :attribute failed to upload.',
+ 'url' => 'The :attribute format is invalid.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+
+ 'attributes' => [],
+
+];
diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php
new file mode 100644
index 000000000..af657b31b
--- /dev/null
+++ b/resources/views/admin.blade.php
@@ -0,0 +1,22 @@
+管理后台 We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
\ No newline at end of file
diff --git a/resources/views/emails/forget.blade.php b/resources/views/emails/forget.blade.php
new file mode 100644
index 000000000..814c07791
--- /dev/null
+++ b/resources/views/emails/forget.blade.php
@@ -0,0 +1,16 @@
+
+
+
+
重置登录密码
+
+
尊敬的用户:
+
您在 {{ config('app.name') }} 申请重置登录密码,您只需点击下面的链接即可重置您的密码:
+
{{ $url }}
+
如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问。
+
提示:为了您的信息安全请及时删除本邮件!
+
感谢您的访问,祝您使用愉快! 此致
+
+
此邮件为系统自动发送,请勿回复。
+
+
+
\ No newline at end of file
diff --git a/resources/views/emails/message.blade.php b/resources/views/emails/message.blade.php
new file mode 100644
index 000000000..2583c37b7
--- /dev/null
+++ b/resources/views/emails/message.blade.php
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/resources/views/emails/order.blade.php b/resources/views/emails/order.blade.php
new file mode 100644
index 000000000..3f33ec14e
--- /dev/null
+++ b/resources/views/emails/order.blade.php
@@ -0,0 +1,19 @@
+
+
+
+
+ 订单提醒
+
+
尊敬的用户:
+
+ {!! $card_msg !!} {!! $cards_txt !!}
+
感谢您的访问,祝您使用愉快! 此致
+
+
+ 此邮件为系统自动发送,请勿回复。
+
+
+
\ No newline at end of file
diff --git a/resources/views/emails/product_count_warn.blade.php b/resources/views/emails/product_count_warn.blade.php
new file mode 100644
index 000000000..c519dad80
--- /dev/null
+++ b/resources/views/emails/product_count_warn.blade.php
@@ -0,0 +1,20 @@
+
+
+
+
+ 库存预警
+
+
尊敬的用户:
+
+ 商品#{{ $product['name'] }} 库存仅剩余 {{ $product_count }} 件,请及时补货
+ 您可以将商品的库存预警设置为0来禁用本通知
+
感谢您的访问,祝您使用愉快! 此致
+
+
+ 此邮件为系统自动发送,请勿回复。
+
+
+
\ No newline at end of file
diff --git a/resources/views/emails/test.blade.php b/resources/views/emails/test.blade.php
new file mode 100644
index 000000000..49e1dd42b
--- /dev/null
+++ b/resources/views/emails/test.blade.php
@@ -0,0 +1,19 @@
+
+
+
+
+ 测试邮件
+
+
管理员:
+
+ 如果您收到了此邮件,代表您的邮件发送测试成功。
+
感谢您的访问,祝您使用愉快! 此致
+
+
+ 此邮件为系统自动发送,请勿回复。
+
+
+
\ No newline at end of file
diff --git a/resources/views/errors/_.blade.php b/resources/views/errors/_.blade.php
new file mode 100644
index 000000000..8cc83955d
--- /dev/null
+++ b/resources/views/errors/_.blade.php
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ {!! isset($code)?(string)$code:'error' !!}
+
+
+
+
+
+
+
+
+
+
+
+ {!! isset($message)?$message:'喵~' !!}
+
+
+
+
+
+
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
new file mode 100644
index 000000000..f2530f7ca
--- /dev/null
+++ b/resources/views/index.blade.php
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+ Hello World!
+
+
+
+
+
+
+
+
+
+
+
+ This is
+ An Awesome Project
+
+
+ Mail: 19060@qq.com
+
+
+
+
+
+
diff --git a/resources/views/install.blade.php b/resources/views/install.blade.php
new file mode 100644
index 000000000..3f45a9d2c
--- /dev/null
+++ b/resources/views/install.blade.php
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+ card
+
+
+
+
+
+
+ 安装检测
+
+
+
正在初始化...
+
+
+
+
+
进行目录检测...
+ W :可写,
+ R :可读
+
+
+
+
+
祝您使用愉快!
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/message.blade.php b/resources/views/message.blade.php
new file mode 100644
index 000000000..029187c5e
--- /dev/null
+++ b/resources/views/message.blade.php
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+ {{ isset($title) && $title ? $title : '提示' }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
×
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/btc.blade.php b/resources/views/pay/btc.blade.php
new file mode 100644
index 000000000..7f3b13a51
--- /dev/null
+++ b/resources/views/pay/btc.blade.php
@@ -0,0 +1,107 @@
+
+
+
+
+
+ Bitcoin
+
+
+
+
+
+
+
+
+
+ Bitcoin
+
+
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
地址:
+
数量:
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/payjs.blade.php b/resources/views/pay/payjs.blade.php
new file mode 100644
index 000000000..02d95d565
--- /dev/null
+++ b/resources/views/pay/payjs.blade.php
@@ -0,0 +1,101 @@
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+
+
+ 微信支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
+
+ 商品
+ 用户充值
+
+ 订单号
+
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/qf_qq.blade.php b/resources/views/pay/qf_qq.blade.php
new file mode 100644
index 000000000..ff125f33e
--- /dev/null
+++ b/resources/views/pay/qf_qq.blade.php
@@ -0,0 +1,142 @@
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
+
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
请使用手机QQ扫一扫
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+');
+ }
+ ?>
+
+
+ var jumpToPay = function () {
+ $('#pay_body').show();
+ $('#jump_to_pay').hide();
+ };
+ if (/ QQ\//i.test(navigator.userAgent) && mqq !== undefined) {
+ jumpToPay = function () {
+ $('#pay_body').hide();
+ $('#jump_to_pay').show();
+ var pay_params = decodeURIComponent('{!! urlencode($qrcode) !!}');
+ // 一个超级无敌尴尬的事情: pay_params是有了, 但是mqq.tenpay.pay()需要从腾讯认证的域名调用
+ // 所以这个支付方式宣告破产
+ mqq.tenpay.pay(pay_params, function (e) {
+ e.resultCode = parseInt(e.resultCode);
+ 0 === e.resultCode ? alert('支付成功') :
+ e.resultCode === -11001 || e.resultCode === -1 || alert("唤起QQ钱包失败,请稍后再试"),alert(e)
+ });
+ }
+ }
+
+ var code_url = location.href;
+ var qrcode = new QRCode("qrcode", {
+ text: code_url,
+ width: 230,
+ height: 230,
+ colorDark: "#000000",
+ colorLight: "#ffffff",
+ title:'test',
+ correctLevel: QRCode.CorrectLevel.H
+ });
+
+ // 订单详情
+ var orderDetail = $('#orderDetail');
+ orderDetail.find('.arrow').click(function (event) {
+ if (orderDetail.hasClass('detail-open')) {
+ orderDetail.find('.detail-ct').slideUp(500, function () {
+ orderDetail.removeClass('detail-open');
+ });
+ } else {
+ orderDetail.find('.detail-ct').slideDown(500, function () {
+ orderDetail.addClass('detail-open');
+ });
+ }
+ });
+
+ $(document).ready(function () {
+ if (jumpToPay) jumpToPay();
+
+ var time = 4000, interval;
+
+ function getData() {
+ $.post('/api/qrcode/query/{!! $pay_id !!}', {
+ id: '{!! $id !!}',
+ t: Math.random()
+ },
+ function (r) {
+ clearInterval(interval);
+ $('.qr-image').remove();
+ $('.tip').html('已支付,正在处理...
');
+ window.location = r.data;
+ }, 'json');
+ }
+
+ (function run() {
+ interval = setInterval(getData, time);
+ })();
+ });
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/qq.blade.php b/resources/views/pay/qq.blade.php
new file mode 100644
index 000000000..736a5fb60
--- /dev/null
+++ b/resources/views/pay/qq.blade.php
@@ -0,0 +1,127 @@
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
+
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
请截屏此界面或保存二维码,打开手机QQ扫码,选择相册图片
+
点击打开手机QQ
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
请使用手机QQ扫一扫
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/query.blade.php b/resources/views/pay/query.blade.php
new file mode 100644
index 000000000..48af3fd30
--- /dev/null
+++ b/resources/views/pay/query.blade.php
@@ -0,0 +1,57 @@
+
+
+
+
+
+ 支付结果
+
+
+
+
+
+
+
+
+ 支付处理中
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/result.blade.php b/resources/views/pay/result.blade.php
new file mode 100644
index 000000000..304ac8fda
--- /dev/null
+++ b/resources/views/pay/result.blade.php
@@ -0,0 +1,68 @@
+ false,
+ 'msg' => '未知错误, 渲染失败'
+ ];
+}
+if (!isset($result['success'])) {
+ $result['success'] = false;
+}
+?>
+
+
+
+
+
+
+
+ @if(isset($product))
+
+
+
+ @endif
+ 支付结果
+
+
+{{ isset($result['title']) ? $result['title'] : ($result['success'] ? '订单已支付' : '支付失败!' ) }}
+
+
{!! $result['msg'] !!}
+ @if(isset($card_txt))
+
+ @endif
+
+ @if(isset($product))
+
+
+
+ @endif
+
首页
+
+
+
+
diff --git a/resources/views/pay/wechat.blade.php b/resources/views/pay/wechat.blade.php
new file mode 100644
index 000000000..67d4ac727
--- /dev/null
+++ b/resources/views/pay/wechat.blade.php
@@ -0,0 +1,163 @@
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+
+
+ 微信支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
请截屏此界面或保存二维码,打开微信扫码,选择相册图片
+
点击打开微信
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/youzan_alipay.blade.php b/resources/views/pay/youzan_alipay.blade.php
new file mode 100644
index 000000000..1a26a6500
--- /dev/null
+++ b/resources/views/pay/youzan_alipay.blade.php
@@ -0,0 +1,129 @@
+
+
+
+
+
+ 支付宝扫码
+
+
+
+
+
+
+
+
+
+
+ 支付宝扫码
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
+
请截屏此界面或保存二维码,打开支付宝扫码,选择相册图片
+
请支付成功后直接返回,不要重复支付!
+
请支付成功后直接返回,不要重复支付!
+
点击打开支付宝
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
请使用支付宝扫一扫
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/youzan_qq.blade.php b/resources/views/pay/youzan_qq.blade.php
new file mode 100644
index 000000000..1ea2661ad
--- /dev/null
+++ b/resources/views/pay/youzan_qq.blade.php
@@ -0,0 +1,126 @@
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
+
+
+
+
+
+
+ QQ钱包支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
请截屏此界面或保存二维码,打开手机QQ扫码,选择相册图片
+
请支付成功后直接返回,不要重复支付!
+
请支付成功后直接返回,不要重复支付!
+
点击打开手机QQ
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
请使用手机QQ扫一扫
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/youzan_wechat.blade.php b/resources/views/pay/youzan_wechat.blade.php
new file mode 100644
index 000000000..fb6dda6c8
--- /dev/null
+++ b/resources/views/pay/youzan_wechat.blade.php
@@ -0,0 +1,125 @@
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+
+
+ 微信支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
请截屏此界面或保存二维码,打开微信扫码,选择相册图片
+
请支付成功后直接返回,不要重复支付!
+
请支付成功后直接返回,不要重复支付!
+
点击打开微信
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/pay/youzan_youzan.blade.php b/resources/views/pay/youzan_youzan.blade.php
new file mode 100644
index 000000000..ca5d7bd29
--- /dev/null
+++ b/resources/views/pay/youzan_youzan.blade.php
@@ -0,0 +1,100 @@
+
+
+
+
+
+ 有赞支付
+
+
+
+
+
+
+
+
+
+ 有赞支付
+
+
+
+
¥{{ sprintf('%0.2f',$amount/100) }}
+
+
+
+
+ 商品
+ {{ $name }}
+
+ 订单号
+ {{ $id }}
+ 时间
+
+
+
+
+
+
+
+
+
+
支持QQ/微信/支付宝
+
扫描二维码完成支付
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/views/shop_close.blade.php b/resources/views/shop_close.blade.php
new file mode 100644
index 000000000..8374a17c4
--- /dev/null
+++ b/resources/views/shop_close.blade.php
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ 店铺已被冻结
+
+
+
+
+
+
+
+
+
+
+
+ {{ $message }}}
+
+
+
+
+
+
+
diff --git a/resources/views/shop_theme/Classic/config.php b/resources/views/shop_theme/Classic/config.php
new file mode 100644
index 000000000..3c43d871b
--- /dev/null
+++ b/resources/views/shop_theme/Classic/config.php
@@ -0,0 +1,20 @@
+ '经典主题',
+ 'options' => [
+ 'list_type' => [
+ 'label' => '商品显示方式',
+ 'type' => 'select',
+ 'values' => [
+ 'dropdown' => [
+ 'label' => '下拉式'
+ ],
+ 'button' => [
+ 'label' => '按钮式'
+ ]
+ ],
+ 'value' => 'dropdown'
+ ]
+ ]
+];
\ No newline at end of file
diff --git a/resources/views/shop_theme/Classic/index.blade.php b/resources/views/shop_theme/Classic/index.blade.php
new file mode 100644
index 000000000..160a2cdc3
--- /dev/null
+++ b/resources/views/shop_theme/Classic/index.blade.php
@@ -0,0 +1,8 @@
+
+@if(@preg_match('/(iPhone|iPod|Android|ios|SymbianOS|Windows Phone)/i', $_SERVER['HTTP_USER_AGENT']))
+ @include('shop_theme.Classic.mobile')
+@else
+ @include('shop_theme.Classic.pc')
+@endif
diff --git a/resources/views/shop_theme/Classic/mobile.blade.php b/resources/views/shop_theme/Classic/mobile.blade.php
new file mode 100644
index 000000000..000a3bda5
--- /dev/null
+++ b/resources/views/shop_theme/Classic/mobile.blade.php
@@ -0,0 +1,194 @@
+
+
+
+
+
+ {{ $name }}
+
+
+
+
+
+
+
+
+ @if($config['vcode']['buy'] && $config['vcode']['driver'] === 'geetest')
+
+ @endif
+
+
+
+
+
+
+
+
+
请选择支付方式
+
+
商品问题请联系客服QQ:{{ strlen($config['shop']['qq']) ? $config['shop']['qq'] : '该商户没有填写QQ' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{!! $js_tj !!} {!! $js_kf !!}
+
+
\ No newline at end of file
diff --git a/resources/views/shop_theme/Classic/pc.blade.php b/resources/views/shop_theme/Classic/pc.blade.php
new file mode 100644
index 000000000..e1baad0fd
--- /dev/null
+++ b/resources/views/shop_theme/Classic/pc.blade.php
@@ -0,0 +1,203 @@
+
+
+
+
+
+ {{ $name }}
+
+
+
+
+
+
+
+
+
+
+ @if($config['vcode']['buy'] && $config['vcode']['driver'] === 'geetest')
+
+ @endif
+
+
+
+
+
+
+
+
+
+
+
+ 首页
+ @if(config('app.project') === 'card')
+ 投诉订单
+ @endif
+
+
+
+
+
+
+
+
+
+
+
+
+{!! $js_tj !!} {!! $js_kf !!}
+
+
\ No newline at end of file
diff --git a/resources/views/shop_theme/Material/config.php b/resources/views/shop_theme/Material/config.php
new file mode 100644
index 000000000..0fd405bac
--- /dev/null
+++ b/resources/views/shop_theme/Material/config.php
@@ -0,0 +1,48 @@
+ 'Material Design 简洁风格',
+ 'options' => [
+ 'list_type' => [
+ 'label' => '商品列表显示方式',
+ 'type' => 'select',
+ 'values' => [
+ 'dropdown' => [
+ 'label' => '下拉式'
+ ],
+ 'button' => [
+ 'label' => '按钮式'
+ ],
+ 'list' => [
+ 'label' => '列表式'
+ ]
+ ],
+ 'value' => 'button'
+ ],
+ 'single_mode' => [
+ 'label' => '单商品显示方式',
+ 'type' => 'select',
+ 'values' => [
+ 'flow' => [
+ 'label' => '上下平铺'
+ ],
+ 'flex' => [
+ 'label' => '左右并排'
+ ],
+ ],
+ 'value' => 'flow'
+ ],
+ 'background' => [
+ 'label' => '背景图片',
+ 'type' => 'text',
+ 'inputType' => 'text',
+ 'placeholder' => '请填写背景图片URL',
+ 'value' => 'https://open.saintic.com/api/bingPic/'
+ ],
+ 'show_background' => [
+ 'label' => '显示背景图片',
+ 'type' => 'checkbox',
+ 'value' => 1
+ ],
+ ]
+];
\ No newline at end of file
diff --git a/resources/views/shop_theme/Material/index.blade.php b/resources/views/shop_theme/Material/index.blade.php
new file mode 100644
index 000000000..230a4053a
--- /dev/null
+++ b/resources/views/shop_theme/Material/index.blade.php
@@ -0,0 +1 @@
+{{ $name }} We're sorry but web_shop doesn't work properly without JavaScript enabled. Please enable it to continue.
{!! $js_tj !!} {!! $js_kf !!}
\ No newline at end of file
diff --git a/resources/views/utils/redirect.blade.php b/resources/views/utils/redirect.blade.php
new file mode 100644
index 000000000..f6e8e16df
--- /dev/null
+++ b/resources/views/utils/redirect.blade.php
@@ -0,0 +1,13 @@
+
+Loading
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/vendor/laravel-log-viewer/.gitkeep b/resources/views/vendor/laravel-log-viewer/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/resources/views/vendor/laravel-log-viewer/log.blade.php b/resources/views/vendor/laravel-log-viewer/log.blade.php
new file mode 100644
index 000000000..9e5db7068
--- /dev/null
+++ b/resources/views/vendor/laravel-log-viewer/log.blade.php
@@ -0,0 +1,168 @@
+
+
+
+
+
+ 管理日志
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @if ($logs === null)
+
+ 日志文件 >50M, 请下载.
+
+ @else
+
+
+
+ Level
+ Context
+ Date
+ Content
+
+
+
+
+ @foreach($logs as $key => $log)
+
+ {{$log['level']}}
+ {{$log['context']}}
+ {{{$log['date']}}}
+
+ @if ($log['stack']) @endif
+ {{{$log['text']}}}
+ @if (isset($log['in_file'])) {{{$log['in_file']}}}@endif
+ @if ($log['stack'])
+ {{{ trim($log['stack']) }}}
+
@endif
+
+
+ @endforeach
+
+
+
+ @endif
+
+ @if($current_file)
+
+ 下载文件
+ -
+
删除文件
+ @if(count($files) > 1)
+ -
+
删除全部文件
+ @endif
+ @endif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/routes/api.php b/routes/api.php
new file mode 100644
index 000000000..160d0f9bf
--- /dev/null
+++ b/routes/api.php
@@ -0,0 +1,2 @@
+middleware('api'); Route::post('admin/login/logout', 'Admin\\Login@logout')->middleware('api'); Route::post('admin/login/verify', 'Admin\\Login@getVerify')->middleware('api'); Route::group(array('prefix' => 'admin', 'middleware' => array('auth', 'api')), function () { Route::post('login/info', 'Admin\\Login@info'); Route::post('login/password', 'Admin\\Login@changePassword'); Route::post('dashboard', 'Admin\\Dashboard@index'); Route::any('system/info', 'Admin\\System@info'); Route::any('system/theme', 'Admin\\System@theme'); Route::any('system/order', 'Admin\\System@order'); Route::any('system/vcode', 'Admin\\System@vcode'); Route::any('system/email', 'Admin\\System@email'); Route::any('system/sms', 'Admin\\System@sms'); Route::any('system/storage', 'Admin\\System@storage'); Route::post('system/email/test', 'Admin\\System@emailTest'); Route::post('system/order/clean', 'Admin\\System@orderClean'); Route::post('pay', 'Admin\\Pay@get'); Route::get('pay/stat', 'Admin\\Pay@stat'); Route::post('pay/sort', 'Admin\\Pay@sort'); Route::post('pay/fee_system', 'Admin\\Pay@fee_system'); Route::post('pay/fee', 'Admin\\Pay@fee'); Route::post('pay/edit', 'Admin\\Pay@edit'); Route::post('pay/comment', 'Admin\\Pay@comment'); Route::post('pay/enable', 'Admin\\Pay@enable'); Route::post('pay/delete', 'Admin\\Pay@delete'); Route::post('category', 'Merchant\\Category@get'); Route::post('category/sort', 'Merchant\\Category@sort'); Route::post('category/edit', 'Merchant\\Category@edit'); Route::post('category/enable', 'Merchant\\Category@enable'); Route::post('category/delete', 'Merchant\\Category@delete'); Route::post('product', 'Merchant\\Product@get'); Route::post('product/sort', 'Merchant\\Product@sort'); Route::post('product/set_count', 'Merchant\\Product@set_count'); Route::post('product/category', 'Merchant\\Product@category_change'); Route::post('product/edit', 'Merchant\\Product@edit'); Route::post('product/enable', 'Merchant\\Product@enable'); Route::post('product/delete', 'Merchant\\Product@delete'); Route::post('product/count/sync', 'Merchant\\Product@count_sync'); Route::post('file/upload', 'Merchant\\File@upload_merchant'); Route::post('card', 'Merchant\\Card@get'); Route::post('card/add', 'Merchant\\Card@add'); Route::post('card/edit', 'Merchant\\Card@edit'); Route::any('card/export', 'Merchant\\Card@export'); Route::post('card/delete', 'Merchant\\Card@trash'); Route::post('card/trash/delete', 'Merchant\\Card@deleteTrashed'); Route::post('card/trash/restore', 'Merchant\\Card@restoreTrashed'); Route::post('card/trash/restore/all', 'Merchant\\Card@restoreAll'); Route::post('card/delete/all', 'Merchant\\Card@deleteAll'); Route::post('coupon', 'Merchant\\Coupon@get'); Route::post('coupon/create', 'Merchant\\Coupon@create'); Route::post('coupon/edit', 'Merchant\\Coupon@edit'); Route::post('coupon/enable', 'Merchant\\Coupon@enable'); Route::post('coupon/delete', 'Merchant\\Coupon@delete'); Route::post('order', 'Merchant\\Order@get'); Route::get('order/export', 'Merchant\\Order@export'); Route::post('order/info', 'Merchant\\Order@info'); Route::post('order/remark', 'Merchant\\Order@remark'); Route::post('order/set_send_status', 'Merchant\\Order@set_send_status'); Route::post('order/ship', 'Merchant\\Order@ship'); Route::post('log', 'Merchant\\Log@get'); Route::get('order/stat', 'Merchant\\Order@stat'); Route::post('order/delete', 'Admin\\Order@delete'); Route::post('order/freeze', 'Admin\\Order@freeze'); Route::post('order/unfreeze', 'Admin\\Order@unfreeze'); Route::post('order/set_paid', 'Admin\\Order@set_paid'); Route::post('web/cache/clear', 'Admin\\Dashboard@clearCache'); Route::get('web/logs', '\\Rap2hpoutre\\LaravelLogViewer\\LogViewerController@index'); Route::get('version', 'Admin\\Dashboard@version'); Route::get('version/check_update', 'Admin\\Dashboard@checkUpdate'); }); Route::group(array('prefix' => 'shop', 'middleware' => array('api')), function () { Route::post('verify', 'Shop\\VerifyCode@getVerify'); Route::post('product', 'Shop\\Product@get'); Route::post('product/password', 'Shop\\Product@verifyPassword'); Route::post('coupon', 'Shop\\Coupon@info'); Route::any('buy', 'Shop\\Pay@buy'); Route::post('record/get', 'Shop\\Order@get'); }); Route::post('qrcode/query/{pay_id}', 'Shop\\Pay@qrQuery')->middleware('api');
\ No newline at end of file
diff --git a/routes/channels.php b/routes/channels.php
new file mode 100644
index 000000000..df2da0651
--- /dev/null
+++ b/routes/channels.php
@@ -0,0 +1,2 @@
+id === (int) $spe00284; });
\ No newline at end of file
diff --git a/routes/console.php b/routes/console.php
new file mode 100644
index 000000000..84e042664
--- /dev/null
+++ b/routes/console.php
@@ -0,0 +1,2 @@
+comment(Inspiring::quote()); })->describe('Display an inspiring quote');
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
new file mode 100644
index 000000000..a69cffd96
--- /dev/null
+++ b/routes/web.php
@@ -0,0 +1,2 @@
+where('file_path', '.+'); Route::get('/pay/{order_no}', 'Shop\\Pay@pay'); Route::any('/pay/return/{pay_id}/{out_trade_no}', 'Shop\\Pay@payReturn'); Route::any('/pay/return/{pay_id}', 'Shop\\Pay@payReturn'); Route::any('/pay/notify/{pay_id}', 'Shop\\Pay@payNotify'); Route::get('/qrcode/pay/{order_no}/{pay_file}', 'Shop\\Pay@qrcode'); Route::get('/pay/result/{order_no}', 'Shop\\Pay@result'); Route::get('/admin', 'HomeController@admin'); Route::get('/admin/{all}', 'HomeController@admin')->where('all', '.*'); Route::get('/c/{en_category_id}', 'HomeController@shop_category'); Route::get('/p/{en_product_id}', 'HomeController@shop_product'); Route::get('/s', 'HomeController@shop_default');
\ No newline at end of file